使用cache的必要性
所谓cache即高速缓冲存储器,它位于cpu与主存即dram之间,是通常由sram构成的规模较小但存取速度很快的存储器。
目前计算机主要使用的内存为dram,它具有价格低、容量大等特点,但由于使用电容存储信息,存取速度难以提高,而cpu每执行一条指令都要访问一次或多次主存,dram的读写速度远低于cpu速度,因此为了实现速度上的匹配,只能在cpu指令周期中插入wait状态,高速cpu处于等待状态将大大降低系统的执行效率。
由于sram采用了与cpu相同的制作工艺,因此与dram相比,它的存取速度快,但体积大、功耗大、价格高,不可能也不必要将所有的内存都采用sram。
因此为了解决速度与成本的矛盾就产生了一种分级处理的方法,即在主存和cpu之间加装一个容量相对较小的sram作为高速缓冲存储器。
当采用cache后,在cache中保存着主存中部分内容的副本(称为存储器映像),cpu在读写数据时,首先访问cache(由于cache的速度与cpu相当,所以cpu可以在零等待状态下完成指令的执行),只有当cache中无cpu所需的数据时(这称之“未命中”,否则称为“命中”),cpu才去访问主存。
而目前大容量cache能使cpu访问cache命中率高达90%~98%,从而大大提高了cpu访问数据的速度,提高了系统的性能。
使用cache的可行性
对大量的典型程序的运行情况分析结果表明,在一个较短的时间内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。
在多数情况下,指令是顺序执行的,因此指令地址的分布就是连续的,再加上循环程序段和子程序段要重复执行多次,因此对这些地址的访问就自然具有时间上集中分布的趋向。
数据的这种集中倾向不如指令明显,但对数组的访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址的频繁访问,而对此范围以外的地址则访问甚少的现象称为程序访问的局部性。
根据程序的局部性原理,在主存和cpu之间设置cache,把正在执行的指令地址附近的一部分指令或数据从主存装入cache中,供cpu在一段时间内使用,是完全可行的。
多种栅极驱动供电选项和基本驱动要求
缺货潮后,芯片买家旧习难改
TDA2030A功放板原理图
FPGA专家教您如何在FPGA设计中使用HLS
全球供应链透明化的技术关键及应用实现
使用Cache的必要性与可行性
碳化硅SiC的高温氧化研究
韩媒担忧华为降低三星依赖,更多采购本土厂商元器件
江波龙推出首颗自研32Gb 2D MLC NAND Flash
电源管理芯片是什么 电源管理芯片厂家有哪些
多功能食品安全检测仪的特点
大疆又搞机,这款无人机体积小但活超好
SharePointOnline到SharePointOnline的迁移过程
基于CXL的直接访问高性能内存分解框架
FPGA在汽车核心电子系统中的机遇
紫外线传感器在紫外辐射照度计中的应用分析
你知道R型干式变压器的分类有哪些吗?
ASML供应商Prodrive发生火灾 供货日期被推迟
机器视觉技术或成为锂电池新的增长点
新突破!腾讯觅影联手医学研究中心降低结直肠癌的发病率和死亡率