MMU作用
高性能处理器一般会提供一个内存管理单元(MMU),该单元辅助操作系统进行内存管理,提供虚拟地址和物理地址的映射、内存访问权限保护和Cache缓存控制等硬件支持。操作系统内核借助MMU可以让用户感觉到程序好像可以使用非常大的内存空间,从而使得编程人员在写程序时不用考虑计算机中物理内存的实际容量。
MMU中有:
1、TLB(Translation Lookside Buffer):即转换旁路缓存,TLB时MMU的核心部件,它缓存少量的虚拟地址和物理地址的转换关系,是转换表的cache,因此也经常被成为“快表”。
2、TTW(Translation Table Walk):即转换表漫游,当TLB中没有缓冲对应的地址转换关系时,需要通过通过对内存中转换页表(大多数处理器的转换为多级页表)的访问来获得虚拟地址和物理地址的对应关系.TTW成功后,结果写入TLB中。
MMU具有虚拟地址和物理地址转换、内存空间访问权限保护等功能,这将使得linux操作系统能单独为每个用户进程分配独立的内存空间并保证用户空间不能访问内核空间的地址,为操作系统的虚拟内存管理模块提供硬件基础。
Cache作用
缓存的原理是,CPU读取数据时,首先从CPU高速缓存中查找,找到后立即读取并发送给CPU进行处理,如果找不到的话,可以从速度比较慢的存储器中读取并发送给CPU,在进行处理的同时,将该数据所在的数据块调入高速缓存,这样就不用调用内存,以后就可以从高速缓存中读取整个块的数据,这种读取机制使处理器读取高速缓存的命中率非常高,大多数处理器都在90%左右,也就是说CPU下一次读取的数据中,90%位于CPU高速缓存中,只有约10%需要从内存中读取,这大大节省了CPU直接读取内存的时间,从而使CPU在读取数据时几乎不需要等待,一般来说,CPU读取数据的顺序是先缓存后内存。