cpu和操作系统,操作系统内核与cpu的关系
终极管理员 知识笔记 67阅读
24 * 44M
4K 4M > 4M
所以说如果所有的页表项都被使用的话二级页表比一级页表还要耗内存
但是计算机存在局部性原理如果一级页表没有被用到的话就不会创建对应的二级页表这也是二级页表省内存的原因.

TLB
把最常访问的几个页表项存放入CPU中的Cache高速缓存里这个Cache就叫TLB
下文会详细说一下CPU中的Cache.
CPU无论是跟内存交换数据还是跟外设交换数据都是依赖总线
分别是控制总线数据总线地址总线

地址总线用于指定 CPU 将要操作的内存地址
数据总线用于读写内存的数据
控制总线用于发送和接收信号比如中断、设备复位等信号CPU 收到信号后自然进行响应这时也需要控制总线
执行程序的过程就是执行一条一条指令的过程
首先CPU会访问自己的【程序计数器PC】,程序计数器里存放的是指令的地址然后它会通过【控制器】操作【地址总线】来访问内存地址通知内存要访问的地址并等待内存把数据准备好然后接受内存的数据然后将指令数据存放入【指令寄存器(IR)里】
程序计数器PC自增自增的程度取决于CPU的位宽如果是32位CPU,代表一次能处理4个字节的数据所以PC自增4
检查【指令寄存器IR】中指令的类型如果是运算类型则交给算术逻辑单元ALU如果是存储类型则交给控制单元
高速缓存cacheCache是位于CPU和内存之间的临时存储器它的容量比内存小但数据交换速率却快很多。
CPU Cache 用的是一种叫 SRAMStatic Random-Access Memory静态随机存储器 的芯片。
内存用的芯片和 CPU Cache 有所不同它使用的是一种叫作 DRAM Dynamic Random Access Memory动态随机存取存储器 的芯片。
在 SRAM 里面一个 bit 的数据通常需要 6 个晶体管所以 SRAM 的存储密度不高同样的物理空间下能存储的数据是有限的不过也因为 SRAM 的电路简单所以访问速度非常快。DRAM 的数据访问电路和刷新电路都比 SRAM 更复杂所以访问的速度会更慢内存速度大概在 200~300 个 时钟周期之间。
当CPU需要读取数据时它会首先从Cache中查找。如果数据已经在Cache中即高速缓存命中CPU可以直接从Cache中读取数据并处理。这大大减少了从内存中读取数据的延迟提高了CPU的执行效率。
如果数据不在Cache中即高速缓存未命中CPU会从内存中读取数据并同时把这个数据所在的数据块调入Cache中。这样如果CPU后续还要读取这个数据块中的其他数据就可以直接从Cache中获取而不需要再次访问内存。这种方式有效地减少了CPU访问内存的次数提高了程序的执行效率。
此外除了读取本次要访问的数据CPU还会预取本次数据的周边数据到Cache中。这是基于程序运行的局部性和时间局部性原理即当一条指令正在被执行时在很短的时间内这条指令周围的指令也会有很大的概率被执行。因此预取周边数据到Cache中可以使得以后对整块数据的读取都从Cache中进行不必再调用内存。
总之Cache的出现是为了解决CPU处理速率和主存访问速率差异过大的问题。通过把数据暂时存放在Cache中CPU可以更快地获取需要的数据减少了访问内存的延迟提高了程序的执行效率。