![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ARM64_V8V9
文章平均质量分 84
RopenYuan
这个作者很懒,什么都没留下…
展开
-
Linux性能基础:CPU、内存、磁盘等概述
影响CPU性能的指标主要分为:主频、 CPU位数、CPU缓存指令集、CPU核心数和IPC。① CPU主频CPU主频是指CPU内核工作的时钟频率,单位Hz。它直接的决定了CPU的性能,也可以通过超频来提高CPU主频来获得更高性能。主频越大,运算越快。例如CPU在一个时钟周期内运算一条指令,2GHz运行一条指令需要10ns,那么1GHz需要20ns,运算速度慢了一倍。因为2GHz的时钟周期比1GHz的时钟周期占用的时间减少了一半,速度自然就快了一倍。主频不代表CPU整体速度。原创 2023-10-16 16:16:00 · 948 阅读 · 11 评论 -
014 - ARM64上的GIC-400(GICv2)
一个高优先级的中断可以抢占一个处于 active 状态的低优先级中断,即 GIC 的分发器会先找出并记录当前优先级最高并且处于 peding 的中断,然后抢占当前的中断服务,转而先处理高优先级中断,上述内容是从 GIC 角度分析的。GICD_ISENABLER1 的访问地址 = GIC-400 的基地址+ GIC-400 的 Distributor的偏移量+ 指定寄存器的偏移量 = 0x FF84 0000 + 0x100 + (0x100+4*1) = 0x FF84 0204。n=50/4=12。原创 2023-10-20 10:41:44 · 358 阅读 · 0 评论 -
Linux ARMv8 异常向量表
对于向量表vectors中的kernel_ventry 1, irq , 则 b el\()\el\()_\label跳转到el1_irq函数。2、系统调用:el0_sync->el0_svc->el0_svc_handler->el0_svc_common(__NR_syscalls, sys_call_table)->invoke_syscall。1、数据异常:el0/1_sync->el1_da->do_mem_abort->do_page_fault.点击(此处)折叠或打开。原创 2023-10-19 10:02:45 · 796 阅读 · 0 评论 -
Linux 内核启动分析
注:__idmap_text_start到__idmap_text_end的数据,其实就是启用mmu前后,需调用的那几个函数(因为CPU有加速指令处理的关系, 有些指令是乱序执行,防止开启mmu后,因为地址空间切换,导致的代码混乱的问题),因为有一段是va=pa因此, 之后即使还有code在用老的物理地址,也是不会出问题的。4、__create_page_tables: 创建内存映射表,一共两张,一张存放在swapper_pg_dir(线性映射),一张存放在idmap_pg_dir(一对一映射)。原创 2023-10-19 09:59:59 · 372 阅读 · 0 评论 -
linux 性能分析perf
perf是用于性能分析的一个工具,功能强大,用法也非常多。但是要真正用明白,懂得分析,需要长时间的学习和沉淀。例如必须得知道cycles分支预测等这些是什么意思,每个性能事件的统计值高低所带来的影响分别是什么,如何增加/降低某个性能事件的统计值等等,只有在具备这些理论基础的情况下,去分析perf的统计值才比较有意义。end。原创 2023-10-09 12:27:05 · 256 阅读 · 0 评论 -
Arm64体系架构-MPIDR_EL1寄存器
CPU MIPDR的设置原创 2023-10-08 18:37:12 · 2068 阅读 · 0 评论