首页> 中国专利> 组相联方式的高速缓存装置、高速缓存方法及处理器系统

组相联方式的高速缓存装置、高速缓存方法及处理器系统

摘要

本发明提供组相联方式的高速缓存装置、高速缓存方法及处理器系统,其具有:标签存储器,存储地址的作为预定的高位的位的标签;标签比较器,比较请求地址(RA)之中的标签和存储在标签存储器中的标签;以及数据存储器,将标签比较器进行比较所得到的路信息加入Column地址的一部分中。

著录项

  • 公开/公告号CN101727406A

    专利类型发明专利

  • 公开/公告日2010-06-09

    原文格式PDF

  • 申请/专利权人 株式会社东芝;

    申请/专利号CN200910205040.9

  • 申请日2009-10-20

  • 分类号G06F12/08;

  • 代理机构北京市中咨律师事务所;

  • 代理人陈海红

  • 地址 日本东京都

  • 入库时间 2023-12-18 00:14:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-12-10

    未缴年费专利权终止 IPC(主分类):G06F12/08 授权公告日:20120718 终止日期:20131020 申请日:20091020

    专利权的终止

  • 2012-07-18

    授权

    授权

  • 2010-08-11

    实质审查的生效 IPC(主分类):G06F12/08 申请日:20091020

    实质审查的生效

  • 2010-06-09

    公开

    公开

说明书

本申请是以2008年10月20日提交的日本专利申请No.2008-269939的优先权为基础的,并且要求享受该优先权,前一个申请的全部内容在此给出作为参考。

技术领域

本发明涉及组相联方式的高速缓存装置、组相联方式的高速缓存方法及处理器系统。

背景技术

以往,在组相联方式的高速缓冲存储器中,在逻辑上具有和路(way)数相同的组的标签存储器和数据存储器。若存在对高速缓存的存取,则以按路数分割高速缓存整体容量所得的容量的量的地址位为边界,将MSB侧作为标签、将LSB侧作为索引,来分解地址。根据按存取单位分割索引所得的值,对标签存储器、数据存储器进行查找,比较来自标签存储器的输出和根据存取过的地址所生成的标签,如果一致,则为高速缓存命中。进而,还通过根据标签一致的路的编号选择来自数据存储器的输出,来获得与作为目标的地址对应的数据。(例如,参照柴山洁著的“コンピユ一タア一キテクチヤ”オ一ム社出版,平成9年3月20日p.292,以及、David.A.Patterson and John L.Hennessy著“Computer Organization andDesign-The Hardware/Software interface  -second edition”(1998Morgan Kaufmann:ISBN 1-55860-428-6)p.574Figure 7.19)。

但是,采用该方法,只能把按路数分割来自数据存储器的输出位数所得的位数的量作为数据来使用。

例如,在从处理器输出的地址为32位、整体的容量为256k字节、高速缓存的数据存取宽度为128位(16字节)、高速缓存行大小为128字节(1024位)、4路组相联构成的高速缓存中,每一路的高速缓存容量为256k字节/4路=64k字节。

也就是说,由于具有16位的地址空间,因而标签存储器的标签位数为32位-16位=16位。另外,索引的位数因为每一路的高速缓存的地址空间为64千字节(16位)、高速缓存行大小为128字节(地址空间为7位),所以成为16位-7位=9位。

另一方面,数据存储器由于数据的存取单位为16位(地址空间为4位),因而成为16位-4位=12位。

为了方便,高速缓存状态成为下述构成:被分割成标签存储器和具有相同地址的状态(state)存储器,将数据存储器的地址分割为与标签存储器的索引相当的9位和高速缓存行之中的块偏移(block offset)的3位。

这里,各数据存储器虽然具有128位宽的数据端口,若按4路的量进行了合计就是输出512位的读出数据,但是因为读出数据的输出要按来自标签存储器的路编号来选择,所以只能利用128位。也就是说,因为从各数据存储器输出的读出数据是与各个地址对应的数据,所以存在4组的数据存储器输出最多只能利用1组这样的问题。

发明内容

根据本发明的一个方式,可以提供一种组相联方式的高速缓存装置,在由多路构成的组相联方式的高速缓存装置中,具有:标签存储器,存储有地址的作为预定的高位的位的标签;标签比较器,比较请求地址之中的标签和存储在上述标签存储器中的上述标签;以及数据存储器,将由上述标签比较器进行比较而得到的路信息加入到地址的一部分中。

附图说明

图1是表示本发明的第1实施方式所涉及的处理器系统的构成的框图。

图2是说明高速缓冲存储器12的构成所用的构成图。

图3是说明地址映射所用的说明图。

图4是说明数据存储器的指令译码器的构成所用的说明图。

图5是说明数据存储器的存取流程的流程例所用的流程图。

图6是说明本发明的第2实施方式所涉及的高速缓冲存储器的构成所用的构成图。

具体实施方式

下面,参照附图,对于本发明的实施方式进行详细说明。

(第1实施方式)

首先,根据图1,对于本发明的第1实施方式所涉及的处理器系统的构成进行说明。图1是表示本发明的第1实施方式所涉及的处理器系统的构成的构成图。

如图1所示,处理器系统1具有中央处理装置(下面称为CPU)11、第1级(L1)的高速缓冲存储器12和作为主存储器的DRAM13,来构成。高速缓冲存储器12和DRAM13相互通过总线进行连接。CPU11是所谓的CPU内核。

还有,在本实施方式中,虽然是1个CPU11对DRAM13进行存取的例子,但也可以是CPU11和高速缓冲存储器12的对为多对,并且该多对经由系统总线等,与1个DRAM13进行连接的那种多内核的构成。

作为控制部的CPU11通过包括高速缓冲存储器控制电路的高速缓冲存储器12,读出在作为主存储装置的主存储器13中所存储的指令或者数据,并加以执行。CPU11从作为高速缓存装置的高速缓冲存储器12读出程序的执行所需要的指令或者数据(下面也简称为数据),并执行该程序。

高速缓冲存储器12以预定的块为单位读出主存储器13中所存储的指令或者数据,将其写入预定的存储区域中。

CPU11为了指定程序的执行所需要的数据,将请求地址(RA)输出给高速缓冲存储器12,高速缓冲存储器12如果在高速缓冲存储器12中存在与所输入的请求地址(RA)对应的数据,则将该数据输出给CPU11。另一方面,高速缓冲存储器12如果在高速缓冲存储器12中没有所存储的数据,则通过重新装填(refill)处理从DRAM13读出该数据,将其写入高速缓冲存储器12的预定存储区域中,把对应的数据输出给CPU11。

还有,CPU11输出给高速缓冲存储器12的请求地址RA可以是实际地址或者虚拟地址的任一种。

图2是说明高速缓冲存储器12的构成所用的构成图。

如图2所示,高速缓冲存储器12具有标签存储器21、标签比较器22、高速缓存状态存储器23、多路复用器(下面称为MUX)24、数据存储器25和MUX26,来构成。

高速缓冲存储器12采用4路组相联构成的高速缓冲存储器,实现作为L1高速缓存的功能。高速缓冲存储器12作为LI高速缓存的容量是256KB(千字节。下面相同)。各高速缓存行是128B,各高速缓存行中的各块是128位。

从CPU11输出的请求地址(RA)设为32位。还有,有关请求地址(RA)的地址映射,将使用下述的图3进行详细说明。

标签存储器21包括每一路的标签存储器,各标签存储器能够存储标签和表示各条目是否有效的Valid(V)、表示状态的状态等的状态信息。标签是与请求地址(RA)中的高位的位(31:16)对应的数据。各标签存储器的索引(Index)由请求地址(RA)中的位(15:7)来指定。各标签存储器的标签及Valid的各自被输出给4个标签比较器22。

对各标签比较器22,供给请求地址(RA)中的高位的位(31:16)。各标签比较器22执行从各标签存储器输出的标签与请求地址(RA)中的高位的位(31:16)之间的比较。各标签比较器22根据这种比较,执行高速缓存命中、高速缓存未中的判定,对数据存储器25输出高速缓存命中、高速缓存未中的判定结果。另外,各标签比较器22在判定为高速缓存命中时,把4位的路命中信息输出给MUX24及数据存储器25。

高速缓存状态存储器23包括每一路的高速缓存状态存储器。各高速缓存状态存储器23的各数据由请求地址(RA)中的9位(15:7)来指定,将所指定的各数据输出给MUX24。高速缓存状态存储器24是用来以高速缓存行为单位(也就是以高速缓存块为单位)执行高速缓存的状态管理的存储器。

4输入1输出的MUX24输出从高速缓存状态存储器23所输出的各数据之中的按照来自标签比较器22的路命中信息选择出的数据。

数据存储器25包括每一路的数据存储器。各数据存储器以128字节为单位管理着各数据。各数据存储器的各数据由作为Row地址的Row索引和作为Column地址的Column索引来指定。

Row地址使用请求地址(RA)中的9位(15:7)。另外,Column地址使用请求地址(RA)中的1位(6)和作为来自标签比较器22的路命中信息的4位。请求地址(RA)中的2位(5:4)作为数据选择信号,被供给MUX26。

在以往,由请求地址(RA)中的3位(6:4)指定Column地址,利用4位的路命中信号选择来自数据存储器的输出。在本实施方式中,将该3位(6:4)的低位2位(5:4)作为数据选择信号,取代该低位2位(5:4)而使用4位的路命中信息。还有,该低位2位(5:4)由数据存储器25内的未图示的译码器进行译码,成为4位的数据选择信号。因此,在本实施方式中,为了省去在数据存储器25中执行译码的处理,取代该低位2位(5:4)而使用来自标签比较器22的4位的路命中信息。根据Row地址及Column地址,从数据存储器25所输出的4组的128位的各数据被输入MUX26中。另外,采用本构成,数据存储器25也可以直接输出该512位的数据。

4输入1输出的MUX26输出从数据存储器25所输出的各数据之中的由请求地址(RA)中的2位(5:4)选择出的128位的数据。

图3是说明地址映射所用的说明图。

来自CPU内核的请求地址(RA)采用32位进行输出。

在来自CPU内核的请求地址(RA)被输出给高速缓存区域时,CPU11的地址以高速缓存行大小128B为边界,被分为表示高速缓存行的块号码的块编号(Block number)和表示块内的偏移的块偏移(Block offset)。

为了标签存储器21的存取,要将地址如下进行分解。高速缓存行大小128B以下忽略不计(Don’t Care)。从按路数4分割高速缓存容量256KB所得的64KB边界开始,将MSB侧作为标签(Tag)。标签因为用于在标签比较部22中进行比较、进行高速缓存命中或者高速缓存未中的判定,所以要存储于标签存储器21中。以64KB边界和128B边界之间的地址为索引(index),作为标签存储器21的地址来使用。

接着,为了数据存储器25的存取,要将地址如下进行分解。从按路数4分割高速缓存容量256KB所得的64KB边界开始,MSB侧作为don’t care忽略不计。将64KB边界和128B边界之间的地址作为Row地址。将128B边界和16B边界之间的地址作为Column地址。16B以下的地址是数据宽度,例如在写入中生成写入允许。

和以往的不同之处为,将Column地址之中的LSB侧2位分配为数据存储器编号,给不足的2位的量的信息,分配从标签存储器21输出的作为路信息的路命中信息。

在数据存储器中构成为,将从外部所提供的地址分解为Row(行)地址和Column(列)地址,对于提供Row地址、被输出的数据存储器内部的字,提供Column地址,根据字选择位。因此,其构成为,在提供Row地址之后,间隔一定的存取时间而提供Column地址。在将写入数据写入数据存储器中时,和Column地址大致同时提供写入允许,将从数据存储器单元按Row地址所读出的字之中的由Column地址所指定的位重写为从外部所提供的写入数据。因此,在数据存储器的内部,Column地址、写入允许及写入数据在比Row地址靠后被提供。换言之,可以采取下述那种构成,该构成为,预先根据时机(投机性地)提供Row地址之后,判定是否可以在直到提供Column地址、写入允许为止的期间实际进行写入。也就是说,如果与对标签存储器进行存取大致同时地事先给数据存储器提供Row地址,可以在直到提供Column地址及写入允许为止的期间利用标签存储器了解到高速缓存命中或者高速缓存未中和所命中的路编号,就能够根据时机提供Row地址,缩短存取时间。虽然即便在高速缓存未中的情况下,读出也不破坏数据,但是由于写入将破坏数据,因而在高速的高速缓冲存储器中需要进行设计,以便可以进行写入时的高速缓存命中判定、路选择。

在本实施方式中,虽然将路编号分配成Column地址的LSB侧2位,但是由于路编号在比提供Column地址的定时提前确定即可,因而不需要在提供Row地址的定时内知晓。在写入时,虽然根据高速缓存命中或者高速缓存未中信息和路编号信息来生成写入允许,但是由于和Column地址相同地使用标签存储器21的存取结果,因而即便在Column地址中使用路信息,也不会使得对数据存储器的写入的定时恶化。也就是说,只要本来确定定时的写入允许信号和Column地址是同等的延迟,就不会成为使定时恶化的原因。

在以往的地址分配中,因为标签存储器的路编号和数据存储器编号一致,所以直到查找标签存储器为止,无法判定在哪个数据存储器中存在处理器请求的数据。

在本实施方式中,由于根据来自CPU11的请求地址(RA),生成了用来指定选择哪个数据存储器的数据选择信号,因而即便不对标签存储器21进行存取,也可以判定要对哪个数据存储器进行存取。也就是说,由于根据来自CPU11的请求地址(RA)的地址信息,直接判明要进行存取的数据存储器,因而不需要对没有进行存取的可能性的数据存储器也供给Row地址,与以往的构成相比可以抑制消耗电力。

图4是说明数据存储器的指令译码器的构成所用的说明图。

对图4所示的数据存储器25的指令译码器,供给地址(5:4)、请求的数据宽度、读出或写入信号和路命中信息。指令译码器根据这些输入,将Row地址允许、Column地址允许、输出允许和写入允许输出给数据存储器25。

与以往例的不同之处为,在输入中存在地址(5:4)。如上所述,使用地址(5:4)来判定是哪个SRAM的地址。另外,根据数据宽度来判定是只使用1个数据存储器还是使用4个数据存储器。

图5是说明数据存储器的存取流程的流程例所用的流程图。

根据请求地址(RA)中的地址(5:4)选择数据存储器(步骤S1)。对所选择的数据存储器输出Row地址和Row地址允许(步骤S2)。在标签比较器22中,判定是否是高速缓存命中(步骤S3)。在未高速缓存命中时,为“否”,执行高速缓存未中处理。在已高速缓存命中时,为“是”,判定存取类型是读出还是写入(步骤S4)。在存取类型为写入时,对数据存储器输出Column地址、Column地址允许、写入允许及写入数据(步骤S5),成为写入结束。另一方面,在存取类型为读出时,对数据存储器输出Column地址、Column地址允许及输出允许(步骤S6),输出读出数据并结束。

若是以往的高速缓存构成,则在直到查找标签存储器、输出根据与请求的标签之间的比较所输出的路命中信号为止无法进行数据存储器的选择。因此,为了缩短高速缓存的存取时间,需要输出Row地址,根据时机对4个全部的数据存储器进行存取,并使用路命中信号来选择4个数据存储器的输出的一个。特别是,因为在写入存取中若确认了写入允许,则数据存储器内的数据被更新,所以路命中信号必须在直到确认写入允许为止进行确定。

在本实施方式中,因为使用CPU11输出的地址的一部分来作为数据选择信号,所以“在高速缓存命中时应对哪个数据存储器进行存取”已经预先判明。也就是说,由于在有来自CPU11的请求时,只通过查看地址和存取的数据宽度,就可以确定没有进行存取的可能性的数据存储器,因而只要是数据存储器的数据宽度以下的数据大小的存取,就可以判定,只给4个数据存储器之中的1个提供Row地址和允许,不需要给其他的3个数据存储器提供地址。在本实施方式中,若未从标签存储器21获取到路命中信息,则读出、写入全都不确定Column地址,而无法对数据存储器进行存取。但是,如果注意到在以往的高速缓存构成中在写入时若路命中信号不确定则无法确认写入允许这一点,则可以判明在本实施方式的高速缓存构成中定时设计也和以往大致相同。

如上,在高速缓冲存储器12中,通过执行上述那种地址的重新组合,来自4个数据存储器的输出数据就如下进行变化。例如,在存取了数据存储器的路0、索引0、偏移0时,在以往,4个数据存储器分别在按(路、索引、偏移)这样的形式来表述时,输出(0,0,0)、(1,0,0)、(2,0,0)、(3,0,0)。它们是属于各个高速缓存行的数据。因而,4个数据存储器的输出只有属于路0的128位是有效的。

与之相对,在本实施方式中,采用相同的表述方法输出(0,0,0)、(0,0,1)、(0,0,2)、(0,0,3)。它们是属于同一高速缓存行的数据,4个数据存储器的输出既可以只使用属于路0的128位,也可以将4个相连作为512位的数据来使用。

这样,在组相联方式的高速缓存中,以使用作为路信息的路命中信息来作为数据存储器的地址的一部分、并且取代路信息而使用以往作为数据存储器的索引所使用的地址的一部分来作为数据选择信号的方式,变更数据存储器的地址生成方法,由此就可以使来自组相联方式的高速缓存的数据存储器的输出信号全部成为有效,加以使用。

因而,根据本实施方式的组相联方式高速缓存装置,通过将数据存储器的地址的一部分和路信息进行互换,就可以同时利用多条路全部的输出。

另外,在本实施方式中,设置:128位的数据端口,由MUX26选择来自4个数据存储器的数据;和512位的数据端口,可以使用来自4个数据存储器的数据的全部。因此,可以适用于例如128位的数据端口输入处理器的ALU、512位的数据端口输入SIMD运算装置等需要不同数据宽度的处理器。

再者,例如在按数据和指令共用高速缓冲存储器12时,在128位的端口用于数据缓冲用、512位的端口用于指令缓冲等的普林斯顿型处理器中,也是有效的。

相对于在通常的ALU和SIMD运算器中需要不同的数据宽度的处理器而言,可以在将高速缓存的硬件量保持为大致相同的原状下,将位宽较宽的数据提供给SIMD运算器。

另外,若在按指令和数据共用高速缓存的普林斯顿型处理器中使用了本实施方式的高速缓存12,则通过给空间局部性较强的指令取出(fetch)分配位宽较宽的端口,就可以扩宽指令取出的执行带宽,可以用与在指令和数据的各自中需要专用的高速缓存的哈佛型处理器相比较少的硬件量,确保需要的带宽。

(第2实施方式)

下面,对于第2实施方式进行说明。图6是说明本发明的第2实施方式的高速缓冲存储器的构成所用的构成图。还有,本实施方式的处理器系统因为和第1实施方式相同,所以省略其说明。另外,在图6中,对于和图2相同的构成,附上相同的符号并省略其说明。

如图6所示,本实施方式的高速缓冲存储器12a通过在图2的高速缓冲存储器12中增加编码器27,来构成。

编码器27对从标签存储器21输出的4位的路命中信息进行编码。将来自编码器27、标签存储器21的4位路命中信息变换为2位的路编号(Way_Num)信息和1位的命中信息。作为路信息的路编号信息作为数据存储器25的Column地址的一部分来使用。也就是说,取代请求地址(RA)中的位(5:4),使用2位的路编号信息。

1位的命中信息用于给CPU11传送高速缓存命中或者高速缓存未中的信息。虽然在图6中未明确表示,但是根据编码所得的路编号信息和命中信息,生成写入允许信号或者对数据存储器25的输出允许信号等。

其他的构成及工作因为和第1实施方式相同,所以省略其说明。

这样,在组相联方式的高速缓存中,以使用作为路信息的路编号信息来作为数据存储器的地址的一部分、并且取代路信息而使用以往作为数据存储器的索引所使用的地址的一部分来作为数据选择信号的方式,变更数据存储器的地址生成方法,由此就可以使来自组相联方式的高速缓存的数据存储器的输出信号全部成为有效,加以使用。

因而,根据本实施方式的组相联方式的高速缓存装置,和第1实施方式相同,通过将数据存储器的地址的一部分与路信息进行互换,就可以同时利用多条路的全部的输出。

还有,本说明书内流程图中的各步骤也可以在不与其性质相背离的范围内,变更执行顺序,同时执行多个,或者每次执行按不同的顺序加以执行。

本发明并不限定为上述的实施方式,而能够在不改变本发明宗旨的范围内,进行各种变更、改变等。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号