半导体器件
高速缓存(Cache),高速缓存(Cache)原理是什么?
高速缓存Cache是位于CPU和主存储器之间规模较小、存取速度快捷的静态存储器。Cache一般由高速RAM (例如双极型存储器或静态MOs存储器)构成,采用的映射方式有直接映像方式、全相联映像和组相联映像方式。可以使程序和数据共享一个Cache,也可以按程序和数据分别设置。还可以把Cache存储器分成若干个体,采用多体N路相联映像。
Cache在CPU中起着举足轻重的作用,借助Cache, CPU可以以较快的速度存取静态存储器中的数据,而且系统成本上升不大。它是微机系统在不大幅度增加成本的前提下,使性能提升的一个非常有效的技术。
Cache的发展历史和现状
Intel 高速缓存结构
为了弥补CPU与内存之间的差距,从80486开始,在CPU内部采用了Cache CPU内部的Cache由硬件进行控制运行,对操作系统和应用软件都是透明的。在80486中,数据和指令都统一存储在同一个高速缓存中,因此也称为“统一的写通式高速缓存”。“写通”的含义是:对高速缓存单元内任何数据的修改,同时必须写入到内存中,以保持高速缓存与内存数据的一致性。这个过程不需要操作系统或应用软件干预。80486只有一级高速缓存。
Pentium 高速缓存结构
Pentium CPU 有两个独立的一级高速缓存,一个为8KB的指令高速缓存(LII Cache ),另一个为8KB的数据高速缓存(L1 Cache)。允许两个高速缓存同时进行指令和数据地存取。为了保证高速缓存中数据的一致性,采用了高速缓存一致性协议(MESI)。在Pentium CPU一级高速缓存中,公共的64位内部总线给两个高速缓存输入数据或指令,每个高速缓存的行长为32个字节,适合于数据的突发传输,一次突发传输可以传送4个64位的数据。
指令高速缓存和数据高速缓存都是双路组相关的(第1路和第2路)。相关是指高速缓存的静态存储器(SRAM)和特征位(TAG)存储区既是分割开的,又是相互联系的。每路分为128个组(0-127),每组分为:指令高速缓存一致性位(M ESI) 、指令特征位(TAG)、指令高速缓存(SRAM)、数据高速缓存一致性位(MESI) 、数据特征位(TAG)、数据高速缓存(SRAM)。
在数据高速缓存中,一共分为2路,每路4KB (128个双行组)。每个双行组由32个字节构成。每组有自己的特征位,特征位实际上是一个20位的地址,特征地址用于确定所请求的信息是否在高速缓存中。指令存放在指令高速缓存中,它连接在流水线的开头部分(预取单元)。数据高速缓存不必连接流水线的开头部分(预取单元)。数据高速缓存必须准备好,随时提供给寄存器单元(RU)、算术逻辑单元(ALU)、地址生成电路(AU)等使用。
高速缓存只能提供数据和指令的临时存储。当数据从数据高速缓存中撤销时,如果还没有进行对内存的修改,就必须将数据写入到内存中。数据高速缓存可以配置成为写回或写通的工作方式(目前大多为写回方式),以便一行一行地对内存进行修改。在写回方式中,内存的修改是为了保持数据的一致性。
高速缓存中很少使用的数据要清除掉,以便CPU从内存中读取一行数据时,有空间存放新的数据。为了确保提供最新的数据,目前CPU都采用“高速缓存一致性协议一MESI" 。该协议有4种状态:修改(M)、独占(E)、共享(S)无效(I)。每个高速缓存中的每一行都分配一种状态,以表示存在该处指令或数据的状态。MESI(高速缓存一致性协议)为2位,一般放在指令特征位前。
指令高速缓存中的每一行与一个MESI相关,指令只能够是两种状态的一种,无效状态(工)说明指令不在该高速缓存中,共享状态(S)说明高速缓存与内存的内容都是有效的,因为CPU不能写或修改指令高速缓存的内容。
数据高速缓存需要2个MESI位来表示4种数据状态。由于数据高速缓存可以工作在写回方式,因此数据高速缓存的内容可以修改。这就需要2个另外的标志来标明它们的状态。修改状态(M)说明只有该高速缓存中具有有效数据,独占状态(E )说明只有该高速缓存和内存中具有有效数据。Pentium CPU 的二级高速缓存设计在主板上。
在Pentium 11 CPU 中,一级指令高速缓存(LII Cache)用于预取指令单元(IFU)产生的指令请求。指令预取单元也是唯一可以访问指令高速缓存的单元。指令预取单元只能在指令高速缓存中读取指令,不能改写指令,因此指令高速缓存是只读的。一级数据高速缓存(Ll DCache)用于CPU执行单元(EXU),执行内存数据的读写请求。执行单元可以在数据高速缓存中读取指令,或者改写指令,因此数据高速缓存是可读的。
在Pentium 11CPU中,二级高速缓存为“统一式高速缓存”。它用于一级缓存中指令或数据没有命中时,由二级缓存提供。如果二级缓存也没有命中,它将发出一个事务请求给总线接口单元(BIU),从内存中读取指令和数据行。这些读取的指令或数据存放于二级缓存中,同时也被送到一级缓存中。
Alpha 系列处理器
Alpha 21064主频为166/200MHz,片上高缓包含两级。即在芯片内设有直接映像的8KB指令高缓和8KB的数据高缓,在芯片外设有128KB-16MB的片外高缓。Alp ha 2 1164微处理器是Alpha的最新产品,21164的时钟频率可达到300MHz,在Alpha 21164上,片上高缓也包含两级,即除了像21064那样,在芯片内设有直接映像的8KB指令高缓和8KB数据高缓以外,还在芯片内设有96KB三路组相联的统一高缓,作为指令和数据合用的第二级高缓。这个片上高缓极大地减少了一级高缓不命中时存储器访问的平均等待时间。
PowerPC系列处理器
由美国IBM、Apple和Motorola公司联合开发的微处理芯片。PowerPC 601采用0.6pmCMOS工艺,工作主频50/66MHz。只包含一级片上高缓,容量为32KB,组织形式为8路组相联,指令和数据合存。PowerPC 604只在芯片内设有四路组相联的16KB指令高缓和16KB的数据高缓。PowerPC 620包含两级片上高缓,在芯片内设有四路组相联的32KB指令高缓和32KB的数据高缓,在芯片外设有1一128MB的片外高缓。
Super SPARC
美国德州仪器公司(TI)为SUN微系统公司生产的第四代SPARC,采用超标量RISC体系结构。时钟频率最初为33至50MHz,最高可达100MHz。芯片上集成了36K字节Harvard结构的高缓(16KB数据和20KB指令)。
全部0条评论
快来发表一下你的评论吧 !