自堆栈快取存储器进行快速推测性弹出操作方法及装置制造方法及图纸

技术编号:2861490 阅读:193 留言:0更新日期:2012-04-11 18:40
本发明专利技术是关于一种自堆栈快取存储器进行快速推测性弹出操作的方法及装置,是公开一种微处理器的堆栈快取存储器及进行推测性快速弹出操作的方法及装置。此堆栈快取存储器以一种后入先出方式储存压入指令相关的多个快取单位的数据。最新的非弹出性压入数据储存在堆栈快取顶层的快取单位内,一用以指定该压入数据位置的偏移量被维持着。当遭遇一使堆栈指针寄存器更新指令时,此偏移量亦被更新。当一弹出指令要求数据,在确定弹出指令的来源地址是否与所提供数据的地址相匹配之前,堆栈快取就推测性地自顶层提供由该偏移量所定的数据给弹出指令。如果来源地址与所提供数据的地址随后被判定为不匹配,则进行一异常操作,以提供正确数据。本发明专利技术能为大多数弹出指令提供较快速存取。

【技术实现步骤摘要】

本专利技术涉及一种微处理器的快取存储器,特别是涉及一种其内区分为堆栈存储器与非堆栈存储器存取的快取存储器。
技术介绍
微处理器是一种数字装置,用以执行电脑程序的指令。一典型的电脑系统包括一微处理器,其连接一系统存储器,而系统存储器储存程序指令及将被程序指令处理的数据(即资料,以下均称为数据)。如此一系统的运作受限于如下事实从系统存储器读取数据进入微处理器,或自微处理器将数据写入系统存储器所需的时间,远长于微处理器执行处理这些数据的指令所需的时间。此一时间差常在一到二个级数之间。因此,在等待存储器(即内存、存储器,以下均称为存储器)读取或写入数据时,微处理器是处于闲置状态而无事可做。微处理器的设计者长久以来就认识到以下一个事实程序倾向于在相对较长的时间内存取相对较小的一部份数据,例如频繁地存取程序变数。具有此一特征的程序被称为具有良好的时间局部性(temporal locality),此一特征被称为存储存取局部性原理(the locality of reference principle)。为了利用此一原理,典型的现代微处理器通常包括一个或多个快取存储器。快取存储器或快取,在电气上接近微处理器的核心,且为相对较小的存储器,用于暂时性地储存数据内容的一部份,这些数据通常常驻于较大且较远离微处理器的核心的存储器,例如系统存储器。进行数据的快取操作是将数据存入快取的储存元件中,然后,比起自较远的存储器提供数据,自该快取存储器可以较快的速度提供数据。当微处理器执行一存储器读取指令,如载入或弹出指令,微处理器先检查所要的数据是否出现在快取存储器,即要读取的地址是否命中快取存储器。如否,则要读取的地址在快取存储器发生失误,微处理器除了将数据载入特定寄存器外,亦提取该数据进入快取存储器。在数据已存在快取存储器之后,下次再碰到一存储器读取指令要求相同的数据时,就可自快取存储器,而不是系统存储器,提取数据进入寄存器。于是,既然数据已存在快取存储器,基本上,存储器读取指令可以较快速地被执行。一快取存储器将数据(即资料)储存于快取单位(cache line,or cacheblock)。快取单位是在快取存储器与系统存储器之间传递的最小的数据单位。在一个例子中,一个快取单位数据量的大小是六十四个字节。当一存储器读取指令在快取存储器失误,与失误地址相关的一整个快取单位的数据量,被提取进入快取存储器,而不只是存储器读取指令所要求的数据而已。此后,要求在相同快取单位的数据的存储器读取指令就可以较快速地被执行,因为数据可自快取供应,而无庸再去存取系统存储器。当一存储器写入指令被执行,例如存入或压入指令,如果存储器写入指令地址命中快取存储器,则数据可立即被写入快取存储器的快取单位,而使数据写入系统存储器被椎迟。稍后,快取存储器会将此一快取单位写入系统存储器,通常是为了腾出空间给新的快取单位。此一操作通常被称为写回(writeback)操作。而且,当存储器写入指令地址在快取存储器失误,某些快取存储器会在其内配置一层(entry)。即,快取存储器会对在其内一层中的快取单位进行写回操作,而与写入地址相关的新快取单位则自系统存储器被读取,并进入之前被旧的快取单位所占据的层。此一操作通常被称为写入配置操作(writeallocate operation)。正如所见,一个有效的快取存储器能大幅度提高微处理器的运作。两个影响快取存储器效率的主要因素为快取命中率(cache hit rate)及快取存取时间(cache access time)。快取命中率是快取命中次数对快取命中次数加快取失误次数之和的比值。快取存取时间是将特定数据读出或写入快取存储器所需的微处理器核心时钟周期数。影响快取命中率最大的因素是快取存储器容量的大小,即,能储存于快取存储器的数据字节数。快取存储器容量越大,储存于快取存储器的系统存储器的部份数据的量也就越大,于是,相关的快取单位也就越有可能出现于快取存储器。由于此一原因,始终存在着要增加快取存储器容量的驱力。就历史的角度来看,快取存储器的大小通常受限于微处理器芯片能够提供给快取存储器的实体空间。然而随着集成电路中元件尺寸持续的变小,这个限制亦不复存在。快取存储器的大小亦影响现有快取存储器的存取时间。很不凑巧的是较大的快取存储器通常需要较长的存取时间。这是由于现有的快取存储器是一种随机存取存储器(random access memories)之故,即,存取快取存储器中的任一快取单位均需相同的时间。在快取存储器内,可用以储存数据的位置越多,用以标定数据位置所需的电路也就越复杂。所幸集成电路中元件尺寸持续的变小亦可减少快取存取时间,因而可以补偿增加快取存储器容量的负面效应。然而,亦始终存在着持续提高微处理器时钟频率的要求,此意味着时钟周期的时间长度不断的缩短,而这又意味着快取的存取需要更多数目的时钟周期。于是,微处理器就倾向于使用较小的快取存储器,尤其是在第一级快取存储器(L1 cache)。例如,第一级快取就自Pentium III的16KB降为Pentium4的8KB。驱使快取存储器大小降低的并非芯片的实体限制,而是微处理器核心时钟周期的缩短,虽然这样做伴随着快取存储器表现的降低。因此,所需要的是增加快取存储器的有效容量,或降低快取存储器的存取时间,或两者皆是。由此可见,上述现有的快取存储器在结构与使用上,显然仍存在有不便与缺陷,而亟待加以进一步改进。为了解决快取存储器存在的问题,相关厂商莫不费尽心思来谋求解决之道,但长久以来一直未见适用的设计被发展完成,而一般产品又没有适切的结构能够解决上述问题,此显然是相关业者急欲解决的问题。有鉴于上述现有的快取存储器存在的缺陷,本专利技术基于从事此类产品设计制造多年丰富的实务经验及专业知识,并配合理论的运用,专利技术出一种新型的自堆栈快取存储器进行快速推测性弹出操作的方法及装置,能够改进一般现有的快取存储器,使其更具有实用性。经过不断的研究、设计,并经反复试作样品及改进后,终于专利技术出确具实用价值的本专利技术。
技术实现思路
本专利技术的目的在于,克服现有的快取存储器存在的缺陷,而提供一种新的装置堆栈快取存储器,所要解决的技术问题是使其能为大多数的弹出指令提供较快速的存取,从而更加适于实用。本专利技术的另一目的在于,提供一种新的方法,所要解决的技术问题是提供一种快速有效存取的方式,从而更加适于实用。本专利技术的目的及解决其技术问题是采用以下技术方案来实现的。依据本专利技术提出的一种快取存储器(cache memory),其包括一后入先出(last-in-first-out)存储器,该后入先出存储器用于快取压入(push)指令的目位置相关的快取单位(cache line)的数据,该后入先出存储器并具一顶层(top entry),用以储存最新的压入(push)指令的目的地址相关的一快取单位;一输入单元,连接该后入先出存储器,该输入单元用于指示一自该快取存储器要求数据的指令是一指定该数据来源地址的弹出(pop)指令;以及逻辑单元,连接该输入单元,该逻辑单元用于回应该输入单元,并在决定该来源地址与储存在该顶层的快取单位的地址是否匹配之前,控制该后入先出存储器推测性地自该顶层提供该数据至该弹出指令。本专利技术的目的及本文档来自技高网
...

【技术保护点】
一种自堆栈快取存储器进行快速推测性弹出操作的装置,其特征在于,其包括:一后入先出(last-in-first-out)存储器,该后入先出存储器用于快取压入(push)指令的目位置相关的快取单位(cacheline)的数据,该后入 先出存储器并具一顶层(topentry),用以储存最新的压入(push)指令的目的地址相关的一快取单位;一输入单元,连接该后入先出存储器,该输入单元用于指示:一自该快取存储器要求数据的指令是一指定该数据来源地址的弹出(pop)指 令;以及逻辑单元,连接该输入单元,该逻辑单元用于回应该输入单元,并在决定该来源地址与储存在该顶层的快取单位的地址是否匹配之前,控制该后入先出存储器推测性地自该顶层提供该数据至该弹出指令。

【技术特征摘要】
US 2004-1-16 10/759,5591.一种自堆栈快取存储器进行快速推测性弹出操作的装置,其特征在于,其包括一后入先出(last-in-first-out)存储器,该后入先出存储器用于快取压入(push)指令的目位置相关的快取单位(cache line)的数据,该后入先出存储器并具一顶层(top entry),用以储存最新的压入(push)指令的目的地址相关的一快取单位;一输入单元,连接该后入先出存储器,该输入单元用于指示一自该快取存储器要求数据的指令是一指定该数据来源地址的弹出(pop)指令;以及逻辑单元,连接该输入单元,该逻辑单元用于回应该输入单元,并在决定该来源地址与储存在该顶层的快取单位的地址是否匹配之前,控制该后入先出存储器推测性地自该顶层提供该数据至该弹出指令。2.根据权利要求1所述的堆栈快取存储器的装置,其特征在于,还包括一比较器,连接该逻辑单元,在该逻辑单元控制该后入先出存储器推测性地提供该数据至该弹出指令之后,该比较器用于比较该来源地址与储存在该顶层的快取单位的地址。3.根据权利要求2所述的堆栈快取存储器的装置,其特征在于,还包括一输出单元,连接该逻辑单元,如果该比较器指示该弹出指令的该来源地址与储存在该顶层的该快取单位的地址不匹配,该输出单元用于指示该后入先出存储器不正确地推测性提供该数据至该弹出指令。4.根据权利要求1所述的堆栈快取存储器的装置,其特征在于,其中所述的弹出指令包括一指令,其用于自一系统存储器的堆栈弹出该数据,而该系统存储器连接一包括此快取存储器的微处理器。5.根据权利要求4所述的堆栈快取存储器的装置,其特征在于,其中所述的堆栈的地址包括有最新压入指令的目的地址、弹出指令的来源地址包括在该堆栈地址,而该堆栈地址是在该系统存储器上、或自该弹出数据的返回地址。6.根据权利要求4所述的堆栈快取存储器的装置,其特征在于,其中所述的快取单位包括多个字节的数据,这些字节数目等于能在快取存储器与该系统存储器之间传递的最小字节数目。7.根据权利要求1所述的堆栈快取存储器的装置,其特征在于,其中所述的快取单位包括一第一字节组的数据,其中提供给该弹出指令的该数据包括一第二字节组的数据,且其中该第一字节组的字节数至少二倍于该第二字节组的字节数。8.根据权利要求1所述的堆栈快取存储器的装置,其特征在于,其中所述的快取自该快取存储器的该快取单位的数据与一包括该快取存储器的系统的其他存储器保持一致性。9.根据权利要求1所述的堆栈快取存储器的装置,其特征在于,其还包括一偏移量,供应该逻辑单元,该偏移量用于指定位于该顶层的快取单位的数据的位置,而该数据是由最新的压入指令所定。10.根据权利要求9所述的堆栈快取存储器的装置,其特征在于,其中所述的逻辑单元控制该后入先出存储器,推测性地自该顶层的快取单位的数据的地址,提供该数据,而该地址是由该偏移量所定。11.根据权利要求10所述的堆栈快取存储器的装置,其特征在于,其中,如果为回应该弹出指令,而更新该偏移量,致使该偏移量绕越该顶层的快取单位,该逻辑单元将令该后入先出存储器移出其内的该顶层。12.根据权利要求9所述的堆栈快取存储器的装置,其特征在于,其中,如果在存入该最新的压入指令所定的该数据之前,更新该偏移量,致使该偏移量绕穿该顶层的快取单位,该逻辑单元将令该后入先出存储器下移,因而产生一新的顶层,其中该逻辑单元将由该最新的压入指令所定的该数据存入该新的顶层中由该偏移量所定的地址。13.根据权利要求9所述的堆栈快取存储器的装置,其特征在于,其还包括一算术单元,连接该逻辑单元,该算术单元用于更新该偏移量。14.根据权利要求13所述的堆栈快取存储器的装置,其特征在于,其中所述的算术单元更新该偏移量包括将一由指令所定的运算元加于该偏移量,其中该指令指定该运算元加至一微处理器内的堆栈指针寄存器,而该微处理器包括该快取存储器。15.根据权利要求14所述的堆栈快取存储器的装置,其特征在于,其中,如果该偏移量的更新致使该偏移量绕越该顶层的快取单位,该逻辑单元将令该后入先出存储器移出其内的该顶层。16.根据权利要求1所述的堆栈快取存储器的装置,其特征在于,其中所述的最新的压入指令是指相对于储存于该后入先出存储器的多个该快取单位的数据及尚未被弹出的数据的至少一者为最新。17.根据权利要求1所述的堆栈快取存储器的装置,其特征在于,其中所述的最新压入指令的该目的地址所相关的该快取单位包括一尚未自系统存储器堆栈弹出的最新压入指令的数据。18.一种自堆栈快取存储器进行快速推测性弹出操作的装置,其特征在于,其包括多个第一类储存元件,规划为一随机存取快取存...

【专利技术属性】
技术研发人员:胡克E罗德尼
申请(专利权)人:智权第一公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1