本文是参考几篇CSDN和自己做的修改笔记整理:
cache、内存、虚拟内存:
原文:https://blog.csdn.net/Com_ma/article/details/78145333
DMA:
原文:https://blog.csdn.net/dadalan/article/details/2802979
原文:http://www.cnblogs.com/TaigaCon/archive/2012/12/03/2799407.html
TBL和MMU:
原文:https://www.baidu.com/link?url=FtIgOsEXqNyq0Q_JHOYwmr0GeaFyyTwMdYI1K8_4YwDkK2olMbTIe4r4ZMTW2l7eWoUZ_JpYUgjjvcF9XBYCRq&wd=&eqid=ec7ab12700001b44000000035c93172a
https://www.cnblogs.com/findumars/p/4068418.html
文章目录
一、内存
内存就是RAM!
RAM和ROM是相对的,RAM在断电后会丢失其中的信息,而ROM在断电后信息还会被保存。,
RAM 分为 静态RAM 和 动态RAM:
静态RAM即SRAM,是仅次于CPU访问速度的RAM,L1 cache就是SRAM。
而我们用的物理内存是动态RAM,即DRAM,DRAM的访问速度比SRAM要慢很多,但是体积小,价格便宜。
二、cache
cache就是高速缓存,是为了调和CPU得过快访问速度和内存过慢的速度的一个硬件,现代计算机一般都有三级高速缓存,L1、L2、L3,访问速度依次递减。
因为CPU要从内存中读取数据的时候会很慢,大部分时间会浪费在等待上,所以引入cache,把预计将要读取的数据先存放到cache中,这样CPU就可以先到cache中读取,从而节约了等待时间,如果cache中没有要读取的数据,那么继续往下到内存中读取,读到后再写入cache。
三、虚拟内存
虚拟内存是为了防止内存不够用,从硬盘上分割出一些空间,给内存扩展使用,这样程序就认为运行内存还够用。
实际上呢,是把内存中一些