CPU cache
SweeNeil
这个作者很懒,什么都没留下…
展开
-
进程与MMU、TLB之间的疑问
background在Linux中,进程操作的都是虚拟地址,而MMU是进行虚拟地址与物理地址的转化,TLB用于加快虚拟地址(线性地址)的转换~ 每个进程都有自己对应的页表,不同进程相同的虚拟地址映射的大概率不是相同的物理地址,同时不同进程不同的虚拟地址可能映射到相同的物理地址上。本文的疑问就是针对进程有不同的页表,那么MMU与TLB到底是怎么根据虚拟地址找到物理地址的呢,是不是MMU和TLB需要知道进程的信息呢,带着这些疑问来进行探究~疑问1 MMU、TLB是否需要知道进程信息?转换后援缓冲器T原创 2020-05-17 10:49:27 · 1897 阅读 · 0 评论 -
linux perf工具测试程序cpu cache刷回实验
一、perf安装进入自己编译的内核,一般目录是:/usr/src/linux-x.x.x/tools/perf编译安装之后,即可使用makemake installperf的使用可以查看本文参考文献1,下面介绍一下perf工具中与cache相关的内容sudo perf list cache可以看到与刷回有关的事件是:LLC-stores下面结合一个程序,来了解perf对于应用程序cacheline刷回事件的追踪~二、测试程序测试程序结合参考文献2、3进行.原创 2020-05-15 20:32:55 · 1069 阅读 · 0 评论 -
X86_64 CR3控制寄存器详解
CR3寄存器目前博客主要能查找到的内容都比较简单,例如《控制寄存器 cr0,cr2,cr3》等博客,只对CR3寄存器进行了简单的介绍:状态和控制寄存器组除了EFLAGS、EIP ,还有四个32位的控制寄存器,它们是CR0,CR1,CR2和CR3。CR3含有存放页目录表页面的物理地址,因此CR3也被称为PDBR。因为页目录表页面是页对齐的,所以该寄存器只有高20位是有效的。而低12位保留供更高级处理器使用,因此在往CR3中加载一个新值时低12位必须设置为0。使用MOV指令加载CR3时具有让页高原创 2020-05-18 14:18:39 · 16269 阅读 · 2 评论