存储器系统以及处理器系统的制作方法

文档序号:13886866阅读:151来源:国知局

本申请以日本专利申请2016-164845(申请日:2016年8月25日)为基础,享有该申请的优先权。通过参照该申请而包括该申请的所有内容。

本发明的实施方式涉及存储器系统以及处理器系统。



背景技术:

伴随大数据处理等的普及,针对存储器存取的高速化和低功耗化的要求正在提高。存储器存取的速度根据高速缓冲存储器的结构而大幅变化。存在有过存取请求的地址被再次存取的可能性高这样的被称为时间局部性的性质。另外,存在有过存取请求的地址附近的地址被存取的可能性高这样的被称为空间局部性的性质。时间局部性和空间局部性处于折中的关系,有可能如果重视时间局部性则无法保证空间局部性、如果重视空间局部性则无法保证时间局部性。



技术实现要素:

基于一种方式的存储器系统,具备:

第1存储器,该第1存储器的存储器容量比保存第2粒度的数据的第2存储器小,保存比所述第2粒度小的第1粒度的数据;

控制部,从所述第2存储器所保存的数据中读出所述第1粒度以上的第3粒度的数据;以及

数据抽出部,从由所述控制部读出的所述第3粒度的数据抽出所述第1粒度的数据,保存于所述第1存储器。

根据本实施方式,能够提供实现了存储器存取的时间局部性和空间局部性的最佳化的存储器系统以及处理器系统。

附图说明

图1是示出第1实施方式的处理器系统的概略结构的框图。

图2是示出存储器模块的内部结构的一个例子的框图。

图3是示出主存储器的内部结构的一个例子的框图。

图4是示出高速缓冲存储器的1组标签信息的图。

图5是示出第3粒度标签存储器的数据结构的图。

图6是示出写入缓冲器的数据结构的图。

图7是示出写入请求时的第2存储器控制器的处理动作的流程图。

图8a是示出读出请求时的第2存储器控制器的读出处理的流程图。

图8b是接着图8a的流程图。

图9是图8b的步骤s27的调换处理的详细流程图。

图10是从写入缓冲器向存储器模块的回写处理的流程图。

图11是示出第2实施方式的处理器系统的概略结构的框图。

图12是示出l4高速缓存的内部结构的一个例子的框图。

图13是示出第2粒度标签存储器的数据结构的一个例子的图。

图14是示出第3粒度标签存储器的数据结构的一个例子的图。

图15是针对l4高速缓存的写入处理的流程图。

图16a是示出l4高速缓存的读出处理和未命中l4高速缓存时的数据提取处理的流程图。

图16b是接着图16a的流程图。

(符号说明)

1:存储器系统;2:处理器系统;3:处理器;4:主存储器;5:第1存储器控制器;6:第2存储器控制器;7:第2存储器;8:存储器模块;9:第1存储器;10:第3存储器;11:存储器阵列;12:行缓冲器;21:第2粒度标签存储器;22:第3粒度标签存储器;23:数据抽出部;24:存储器存取控制器;25:写入缓冲器;31:处理器内核;32:l1高速缓存;33:l2高速缓存;34:l3高速缓存;35:l4高速缓存;36:高速缓存控制器。

具体实施方式

以下,参照附图,说明本发明的实施方式。

(第1实施方式)

图1是示出第1实施方式的具备存储器系统1的处理器系统2的概略结构的框图。图1的处理器系统2具备处理器3和主存储器4。主存储器4构成存储器系统1的至少一部分。

在处理器3的内部,设置了第1存储器控制器5。另外,在处理器3的内部,设置了多个处理器内核、高速缓冲存储器等,但在图1中省略。第1存储器控制器5控制主存储器4内的第2存储器控制器6。更具体而言,第1存储器控制器5依照针对主存储器4的存取请求,控制第2存储器控制器6。

主存储器4除了具有上述第2存储器控制器6以外,还具有第1存储器7和存储器模块8。第1存储器7是例如mram(magnetoresistiverandomaccessmemory,磁阻随机存取存储器)等非易失存储器。

存储器模块8也可以被设为能够以使存储器容量可变的方式装卸。

存储器模块8具有第2存储器9和第3存储器10。第2存储器9例如是dram(dynamicrandomaccessmemory,动态随机存取存储器)。第3存储器10例如是sram(staticrandomaccessmemory,静态随机存取存储器)。

第2存储器9保存第2粒度的数据。第1存储器7的存储器容量例如比第2存储器9小,并且保存第1粒度的数据。第3存储器10的存储器容量例如比第1存储器7小,并且保存第3粒度的数据。

在此,“粒度”是指高速缓存中的线大小,是一般的主存储器(dram)的页大小。例如,对第2存储器9进行存取时的第2粒度大于对第1存储器7进行存取时的第1粒度。在该情况下,第2粒度的页大小大于第1粒度的线大小。另外,例如作为第1存储器7的线大小的第1粒度小于作为第3存储器10的页大小的第3粒度。在该情况下,第1存储器7的线大小小于第3存储器10的页大小。第2粒度和第3粒度的大小关系是任意的。以下,作为一个例子,说明第2粒度和第3粒度相等的例子。

作为具体的一个例子,存储器模块8如通用的ddr(drouble-data-rate,双倍数据速率)sdram(synchronousdynamicrandomaccessmemory,同步动态随机存取存储器)那样,以几k字节的页大小保存数据,相对于此,第1存储器7以几10字节的单位保存数据。以下,将存储器模块8的页大小设为1k字节,将第1存储器7的数据大小设为64字节。

第2存储器9、第1存储器7及第3存储器10的存取速度是任意的,典型的情况是第2存储器9相比于第1存储器7和第3存储器10存取速度更慢。第1存储器7和第3存储器10的存取速度既可以不同也可以相同。

图2是示出存储器模块8的内部结构的一个例子的框图。图2的存储器模块8具有多个存储体,针对各存储体的每一个,具有存储器阵列11和行缓冲器12。存储器阵列11是上述第2存储器9,由例如dram构成。行缓冲器12是上述第3存储器10,是例如sram、寄存器等比存储器阵列11更高速的存储器。行缓冲器12如上所述,保存第3粒度的数据。行缓冲器12保存在存储器阵列11中保存的数据中的一部分数据。例如,行缓冲器12保存刚刚对对应的存储体的存储器阵列11进行存取的数据。存储器模块8以页为单位存取,所以行缓冲器12具有大于等于页大小的存储器容量。即,行缓冲器12保存针对将存储器阵列11的字线作为单位来存取的多个存储器单元进行读写的数据。

图3是示出主存储器4的内部结构的一个例子的框图。如图3所示,第2存储器控制器6具有第1粒度标签存储器(第2标签存储器)21、第3粒度标签存储器(第1标签存储器)22、数据抽出部23、存储器存取控制器(控制部)24以及写入缓冲器(第4存储器)25。

第1粒度标签存储器21保存用于确定第1存储器7的数据的地址信息等。图4是示出第1粒度标签存储器21的数据结构的图。如图4所示,第1粒度标签存储器21针对各条目的每一个将第1粒度的地址信息21a、有效标志信息21b、lru(leaserecentlyused:最近最少使用)管理信息21c以及脏标志信息21d对应起来保存。地址信息具有能够识别例如64字节的数据的地址的比特数。

第1粒度标签存储器21和第1存储器7作为例如组相联的高速缓冲存储器发挥功能。例如,进行回写方式的写入数据管理。第1粒度标签存储器21以lru策略管理高速缓存替换。图4例示了4路组相联的高速缓冲存储器的1组标签信息。

第1粒度标签存储器21内的lru管理信息21c为了决定所调换的数据,保存优先级信息。例如,如果是4路,则保存数字0~3。例如,从刚刚有过存取的数据起分配从小到大的数字。在调换第1存储器7内的数据时,调换数值是3的数据。

第1粒度标签存储器21内的有效标志信息21b是表示在第1存储器7中是否保存了与地址信息对应的数据的标志信息。有效标志信息21b例如在保存了数据的情况下被设置成1,在未保存的情况被复位成0。能够通过参照第1粒度标签存储器21内的地址信息21a和有效标志信息21b,判定在第1存储器7中是否保存了期望的数据。即,如果在第1粒度标签存储器21内,保存了期望的数据的地址信息、并且对应的有效标志信息被设置成1,则能够判断为在第1存储器7中保存了该数据。脏标志信息21d是表示是否将与第1粒度标签存储器21内的地址信息对应的数据写回到第2存储器9的标志信息。例如,在未被改写的情况下,被设置成0,在被改写了的情况下,被设置成1。

第3粒度标签存储器22保存用于确定第3存储器10的数据的地址信息等。图5是示出第3粒度标签存储器22的数据结构的图。如图5所示,第3粒度标签存储器22针对各存储体的每一个将第3粒度的地址信息22a、有效标志信息22b、存取标志信息22c、脏标志信息22d以及回写标志信息22e对应起来保存。

第3粒度的地址信息22a是能够识别例如1k字节的数据的地址信息。有效标志信息22b是表示在第3存储器10中是否保存了与地址信息对应的数据的标志信息。有效标志信息22b例如在保存了数据的情况下被设置成1,在未保存的情况下被复位成0。

存取标志信息22c是表示是否存取过对应的数据的标志信息。存取标志信息22c例如针对每个第1粒度存储是否存取过第1存储器7内的数据。在第2存储器9的数据粒度是1k字节、并且第1存储器7的数据粒度是64字节的情况下,在第3粒度标签存储器22中保持有与16个条目相应的量的存取标志信息。例如,在针对第2存储器9的每1数据设置1比特的存取标志信息的情况下,针对第3粒度标签存储器22的每1条目设置16比特的存取标志信息。

脏标志信息22d是表示对应的数据是否被改写过的标志信息。例如,针对第1存储器7内的第1粒度的每个数据,设置脏标志信息22d。例如,在第2存储器9的第2粒度是1k字节、并且第1存储器7的第1粒度是64字节的情况下,保持与16个条目相应的量的脏标志信息22d。例如,在针对第2存储器9内的每1数据设置1比特的情况下,针对第3粒度标签存储器22的每1条目设置16比特的脏标志信息22d。

回写标志信息22e是表示是否将对应的第3存储器10的数据写回到第2存储器9的标志信息。写入缓冲器25是指,在从处理器3有读出请求而将新的数据保存于第1存储器7时第1存储器7内的应消除的数据被改写(脏标志被设置成1)且尚未写回到第3存储器10时临时地保存该数据的存储器。

存储器存取控制器24控制针对第1存储器7和存储器模块8的存取。即,存储器存取控制器24进行第2存储器控制器6进行的控制处理中的、数据抽出部23进行的抽出处理以外的控制处理。更具体而言,存储器存取控制器24从保存在第2存储器9的数据中,读出第1粒度以上的第3粒度的数据。数据抽出部23从由存储器存取控制器24读出的第3粒度的数据抽出第1粒度的数据,并保存到第1存储器7。

图6是示出写入缓冲器25的数据结构的图。如图6所示,写入缓冲器25针对各条目的每一个,将有效标志信息25a、第1粒度的地址信息25b以及第1粒度的数据区域25c对应起来保存,所述有效标志信息25a表示是否需要向存储器模块8内的第3存储器10写回。写入缓冲器25例如是fifo(first-in-first-out,先入先出)队列。例如,如果有效标志信息25a是1,则表示是需要向存储器模块8写回的数据,如果有效标志信息25a是0,则表示是无效的数据。

图7是示出从处理器3有写入请求的情况下的第2存储器控制器6的处理动作的流程图。此外,写入处理不限定于图7所示的流程图。第2存储器控制器6如果从第1存储器控制器5接受到例如64字节的突发写入请求(步骤s1),则确定应写入的存储器模块8的存储体(步骤s2)。接下来,判定有写入请求的地址是否命中了与确定出的存储体对应的第3粒度标签存储器22(步骤s3)。

在命中了第3粒度标签存储器22的情况下,将有写入请求的数据写入第3存储器10(步骤s4),并且更新第3粒度标签存储器22内的存取标志信息22c和脏标志信息22d(步骤s5)。

另一方面,在步骤s3中,判定为未命中第3粒度标签存储器22的情况下,向第1存储器7写入数据(步骤s6),并且更新第1粒度标签存储器21内的lru管理信息21c和脏标志信息21d(步骤s7)。

这样,在从处理器3有写入请求时,在命中了第3粒度标签存储器22的情况下,向第3存储器10写入数据,在未命中的情况下,向第1存储器7写入数据。在向第3存储器10写入数据时,更新第3粒度标签存储器22内的存取标志信息22c和脏标志信息22d。在向第1存储器7写入数据时,更新第1粒度标签存储器21内的lru管理信息21c和脏标志信息21d。

图8a以及图8b是示出从处理器3有读出请求的情况下的第2存储器控制器6的读出处理的流程图。读出处理根据写入策略而不同。图8a以及图8b示出了采用了图7的写入策略的情况下的读出处理。

此外,读出处理不限定于图8a以及图8b所示的流程图。另外,在图3的结构中,有时还需要从写入缓冲器25读出数据,但为了简化,在本例子中省略。

首先,如果设为第2存储器控制器6从第1存储器控制器5接受到例如64字节的突发读出请求(步骤s11),则确定应读出的存储体(步骤s12)。

接下来,判定有读出请求的地址是否命中了与确定出的存储体对应的第1粒度标签存储器21和第3粒度标签存储器22这双方(步骤s13)。

如果判定为命中了第1粒度标签存储器21和第3粒度标签存储器22这双方,则判定是否设置了第3粒度标签存储器22内的脏标志信息、即是否尚未将与相应的地址对应的数据写回到第2存储器9(步骤s14)。

如果判定为设置了脏标志信息,则对存储器模块8发出读出命令(步骤s15),从存储器模块8内的第3存储器10读出数据(步骤s16),将读出的数据送给第1存储器控制器5(步骤s17)。

如果在步骤s14中判定为未设置有第3粒度标签存储器22内的脏标志信息22d,则判定是否设置了第1粒度标签存储器21内的脏标志信息21d(步骤s18)。如果判定为设置了第1粒度标签存储器21内的脏标志信息21d,则从第1存储器7读出与有读出请求的地址对应的数据(步骤s19),将读出的数据送给第1存储器控制器5(步骤s17)。

如果在步骤s18中判定为未设置有第1粒度标签存储器21内的脏标志信息21d,则对存储器模块8发出读出命令(步骤s19)。然后,从第3存储器10读出与有读出请求的地址对应的数据(步骤s20),将读出的数据送给第1存储器控制器5(步骤s16)。

在步骤s13的判定成为否定的情况下,判定有读出请求的地址是否命中了第3粒度标签存储器22(步骤s22)。在命中了的情况下,对存储器模块8发出读出命令(步骤s20)。然后,从第3存储器10读出与有读出请求的地址对应的数据(步骤s21),将读出的数据送给第1存储器控制器5(步骤s17),并且更新第3粒度标签存储器22内的存取标志信息22c(步骤s23)。

如果在步骤s22中判定为未命中,则判定有读出请求的地址是否命中了第1粒度标签存储器21(步骤s24)。在命中了的情况下,从第1存储器7读出与有读出请求的地址对应的数据(步骤s25),将读出的数据送给第1存储器控制器5(步骤s17)。

如果在步骤s24中判定为未命中,则对存储器模块8进行数据提取处理。首先,判定在第3粒度标签存储器22中是否存在无效的数据(步骤s26)。如果存在无效的数据,则并行地进行发出激活命令而从第2存储器9读出数据并保存到第3存储器10的处理(步骤s27)、第3粒度标签存储器22内的地址信息的更新(步骤s28)以及第3粒度标签存储器22内的有效标志信息的更新(步骤s29)。

如果步骤s27~s29的处理结束,则对存储器模块8发出读出命令(步骤s30),从第3存储器10读出数据(步骤s31)。

如果在步骤s26中判定为不存在无效的数据,则进行保存在第3存储器10的数据的调换处理(步骤s32)。步骤s32的调换处理的详细内容以后叙述。如果调换处理结束,则对存储器模块8发出读出命令(步骤s30),将从存储器模块8内的第3存储器10读出的数据送给第1存储器控制器5(步骤s31),更新第3粒度标签存储器22内的存取标志信息(步骤s33)。

图9是图8b的步骤s27的调换处理的详细流程图。首先,参照第3粒度标签存储器22内的存取标志信息(步骤s40),读出设置有存取标志信息的数据(步骤s41)。接下来,并行地进行以下的第1处理~第3处理合计3个处理。

在第1处理中,从第1存储器7读出应消除的数据,判定是否设置了与该数据对应的脏标志信息和有效标志信息(步骤s42)。在设置了这些标志信息的情况下,在将应消除的数据保存到写入缓冲器25之后,消除(步骤s43)。之后,将在步骤s50中读出的第3存储器10内的数据保存到第1存储器7(步骤s44),并且更新第1粒度标签存储器21(步骤s45)。通过该步骤s44的处理,将刚刚有过存取的第1粒度的数据从第3存储器10传送到第1存储器7。

此外,在步骤s44中应保存到第1存储器7的数据已经保存于第1存储器7的情况下,无需将该数据再次保存到第1存储器7。另外,即使应保存的数据已经保存于第1存储器7,如果从第3存储器10向第1存储器7转送的数据是脏数据,则也可以将该数据重写到第1存储器7。

第2处理是第3粒度标签存储器22的更新。首先,使第3粒度标签存储器22内的相应的标签信息无效化(步骤s46)。进行无效化的区域是保存有从第3存储器10转送到第1存储器7的数据的第3存储器10内的空闲区域。接下来,将在该空闲区域中保存的数据的地址信息保存到第3粒度标签存储器22(步骤s47),并且更新第3粒度标签存储器22内的有效标志信息(步骤s48)。

在第3处理中,对存储器模块8发出预充电命令(步骤s49),在预充电结束之后,发出激活命令(步骤s50)。由此,从第2存储器9读出新的数据,保存到第3存储器10的上述空闲区域。

图10是从写入缓冲器25向存储器模块8的回写处理的流程图。该回写处理可以在任意的定时进行。例如,也可以在设置了写入缓冲器25的全部条目的有效标志信息的定时进行。或者,也可以按照与时钟周期同步的预定间隔的每个来进行。或者,也可以在第2存储器控制器6未处理来自处理器3的存取请求的定时进行。以下,说明在写入缓冲器25内存在设置了1个以上的有效标志信息25a的条目的情况下的回写处理。

首先,判定在写入缓冲器25内是否存在有效的数据(步骤s51)。在此,判定是否设置了图6所示的写入缓冲器25内的有效标志信息25a。然后,如果存在设置了有效标志信息25a的条目,则选择该条目的数据(步骤s52),确定所选择的数据存在的存储器模块8的存储体(步骤s53)。

接下来,参照与确定出的存储体对应的第3粒度标签存储器22,判定是否命中(步骤s54)。如果命中了第3粒度标签存储器22,则对存储器模块8发出写入命令(步骤s55),并且对写入缓冲器25的有效标志信息25a进行复位(步骤s56)。由此,写入缓冲器25内的数据被写入到第3存储器10。

如果在步骤s54判定为未命中,则利用图9的处理步骤进行第3存储器10的调换处理(步骤s57),并且设置与进行了调换的数据对应的第3粒度标签存储器22的回写标志信息22e(步骤s58)。接下来,对存储器模块8发出写入命令(步骤s55),并且对写入缓冲器25的有效标志信息25a进行复位(步骤s56)。由此,在从第3存储器10逐出的数据的保存目的地中保存写入缓冲器25内的数据,并且设置第3粒度标签存储器22的回写标志信息22e。

针对设置了写入缓冲器25内的有效标志信息25a的全部条目进行以上的处理。如果不存在设置有写入缓冲器25内的有效标志信息25a的条目,则参照第3粒度标签存储器22,对设置有回写标志信息22e的存储体发出预充电命令,并且使对应的第3粒度标签存储器22无效化(步骤s59)。由此,设置有回写标志信息22e的数据被写回到第2存储器9。

这样,在第1实施方式中,在主存储器4内设置第1~第3存储器10,将在第2存储器9以第2粒度保存的数据的至少一部分以第3粒度保存到第3存储器10,将在第3存储器10保存的第3粒度的数据的至少一部分以第3粒度以下的第1粒度保存到第1存储器7。由此,能够在第3存储器10中高速地存取具有空间局部性的数据。同时,能够将具有时间局部性的数据以细的粒度保存到第1存储器7,能够在第二存储器中使对具有时间局部性的数据的存取高速化。能够期待对具有空间局部性的数据和具有时间局部性的数据这两方进行高速存取,能够使针对主存储器4的存取高速化。

(第2实施方式)

图11是示出第2实施方式的具备存储器系统1的处理器系统2的概略结构的框图。图11的处理器系统2具备处理器内核31和存储器系统1。存储器系统1具有1次高速缓冲存储器(以下l1高速缓存)32、2次高速缓冲存储器(以下l2高速缓存)33、3次高速缓冲存储器(以下l3高速缓存)34、4次高速缓冲存储器(以下l4高速缓存)35以及存储器存取控制器24。对图11的存储器系统1连接了主存储器4,但也可以在存储器系统1的内部设置主存储器4。

l1高速缓存32与处理器内核31和l2高速缓存33连接。l2高速缓存33与l1高速缓存32和l3高速缓存34连接。l3高速缓存34与l2高速缓存33和l4高速缓存35连接。存储器存取控制器24与l4高速缓存35连接。

在l1高速缓存32~l4高速缓存35中保存在主存储器4中保存的数据、或者应被保存在主存储器4的数据的至少一部分。l1高速缓存32~l4高速缓存35具有保持能够识别在其内部保持的数据的地址信息的标签部。标签部也可以由专用的存储器区域构成。或者,标签部也可以由保持数据的存储器区域的一部分构成。这样,l1高速缓存32~l2高速缓存33的内部结构是任意的。

图11示出具有l1高速缓存32~l4高速缓存35这4层的高速缓冲存储器的例子,但高速缓冲存储器的层数是任意的。

在图11中,主存储器4以外的处理器内核31和l1高速缓存32~l4高速缓存35既可以集成在一个芯片上,也可以分开安装于多个芯片。在分开安装于多个芯片的情况下,也可以利用金属布线直接接合各芯片。

图11的存储器系统1除了具有l1高速缓存32~l4高速缓存35以外,还具有主存储器4。主存储器4既可以安装于与l1高速缓存32~l4高速缓存35相同的芯片或者基板上,也可以安装于不同的芯片或者基板上。另外,也可以将处理器内核31和l1高速缓存32集成到单片,将l2高速缓存33~l4高速缓存35集成到不同的单片。这样,存储器系统1内的l1高速缓存32~l4高速缓存35和主存储器4的安装方式是任意的。

l1高速缓存32~l4高速缓存35由能够比主存储器4更高速地存取的半导体存储器构成。在向各个高速缓存的数据配置策略中考虑各种变化。例如有inclusion(包含)方式。在inclusion方式中,在l2高速缓存33中,保存在l1高速缓存32中保存的所有数据。同样地,在l3高速缓存34中保存在l2高速缓存33中保存的所有数据,在l4高速缓存35中保存在l3高速缓存34中保存的所有数据。

另外,例如有exclusion(排除)方式。在该方式中,例如,在l1高速缓存32和l2高速缓存33中不配置相同的数据。另外,例如,还考虑inclusion方式和exclusion方式的混合方式。在该方式中,例如既有在l1高速缓存32和l2高速缓存33中重复地保持的数据,也有排他地保持的数据。

这些方式是l1高速缓存32~l4高速缓存35之间的数据配置策略,在多层的高速缓存结构中考虑了各种组合。例如,也可以在所有层中是inclusion方式。例如,也可以l1高速缓存32和l2高速缓存33是exclusive方式,l4高速缓存35和主存储器4是inclusion方式。本实施方式所示的方式能够与这些上述记载的各种数据配置策略组合。

在高速缓存的更新方式中也存在各种方式,本实施方式能够与这些方式全部组合。例如,高速缓存写入命中时的写入方式既可以是透写,也可以是回写。另外,高速缓存写入未命中时的写入方式既可以是写分配,也可以是非写分配。

l4高速缓存35的存储器容量大于等于l3高速缓存34的存储器容量。这样,越是高级的高速缓冲存储器,存储器容量越大。因此,期望在高级的高速缓冲存储器中,使用集成度高、并且具有与容量成比例的倾向的泄漏电力少的存储器。作为这样的存储器,考虑例如mram(magnetoresistiverandomaccessmemory,磁阻随机存取存储器)等非易失存储器。另外,例如,也可以是使用了低泄漏电力工艺的sram、dram。

主存储器4的存储器容量相比于l1高速缓存32~l4高速缓存35大,所以很多情况用与安装有处理器内核31等的芯片不同的1个以上的芯片构成。构成主存储器4的存储器单元例如是dram(dynamic(动态)ram)单元。此外,也可以使用tsv(throughsiliconvia,硅穿孔)等技术,与处理器内核31等混合搭载于一个芯片。

将与处理器内核31发出的虚拟地址对应的物理地址,首先最优先地送到l1高速缓存32。在与该物理地址对应的数据(以下对象数据)处于l1高速缓存32的情况下,处理器内核31存取该数据。l1高速缓存32的存储器容量例如是几10k字节左右。

在l1高速缓存32中无对象数据的情况下,对应的物理地址被送到l2高速缓存33。在l2高速缓存33中有对象数据的情况下,处理器内核31存取该数据。l2高速缓存33的存储器容量例如是几100k字节~几m字节左右。同样地,在l2高速缓存32中无对象数据的情况下,向l3高速缓存33存取,在l3高速缓存33中也无对象数据的情况下,向l4高速缓存34存取。

在l4高速缓存35中无对象数据的情况下,对应的物理地址被送到主存储器4。在本实施方式中,设为在主存储器4中保存有在l4高速缓存35中保存的全部数据。本实施方式不限定于上述高速缓存间数据配置策略。在主存储器4中,保存页单位的数据。一般,页单位的数据配置于主存储器4和辅助存储装置,但在本实施方式中,为了简化,设为所有数据配置于主存储器4。在本实施方式中,在主存储器4中有对象数据的情况下,处理器内核31存取该数据。主存储器4的存储器容量例如是几g字节左右。

这样,l1高速缓存32~l4高速缓存35被分层化,级数越大的(低位层的)高速缓冲存储器,存储器容量越大。

以下,为了简化,设为通过lru(leastrecentlyused,最近最少使用)算法管理l1高速缓存32~l4高速缓存35的标签阵列来进行说明。但是,本实施方式能够与lru以外的各种数据优先级管理算法组合。例如,也可以与nru(notrecentlyused,最近未使用)、随机替换算法组合。另外,在以下的说明中,为了简化,将标签阵列表示为全相联高速缓存。但是,本实施方式能够应用于各种高速缓存方式,例如,既可以是组相联,也可以是直接映射。

图11的处理器系统2具备处理器内核31和4层高速缓存。图11的处理器系统2通过例如ddr那样的接口,与主存储器4连接。主存储器4的数据粒度例如是1k字节。主存储器4具有未图示的行缓冲器,行缓冲器具有至少与主存储器4的数据粒度相应的量的存储器容量。主存储器4由例如dram构成。l1高速缓存32~l3高速缓存34的数据粒度例如是64字节。

图12是示出l4高速缓存35的内部结构的一个例子的框图。如图12所示,l4高速缓存35具有第1存储器7、第3存储器10以及高速缓存控制器36。

第1存储器7的存储器容量相比于第3存储器10大。第1存储器7以第1粒度进行数据的读写。第3存储器10以比第1粒度大的第3粒度进行数据的读写。例如,第1粒度是64字节,第3粒度是1k字节。第1存储器7由例如mram构成,第3存储器10由例如sram构成。

高速缓存控制器36具有第1粒度标签存储器21、第3粒度标签存储器22以及数据抽出部23。第1粒度标签存储器21保存能够识别保存在第1存储器7的数据的信息。第3粒度标签存储器22保存能够识别保存在第3存储器10的数据的信息。数据抽出部23读出第3存储器10内的数据,以第1粒度写入第1存储器7。

图13是示出第1粒度标签存储器21的数据结构的一个例子的图。图13的第1粒度标签存储器21与图4同样地,针对各条目的每一个将第1粒度的地址信息21a、有效标志信息21b、lru(leaserecentlyused)管理信息21c以及脏标志信息21d对应起来保存。

图14是示出第3粒度标签存储器22的数据结构的一个例子的图。图14的第3粒度标签存储器22针对各条目的每一个将第3粒度的地址信息22a、有效标志信息22b、lru管理信息22f、存取标志信息22c以及脏标志信息22d对应起来保存。

图15是针对l4高速缓存35的写入处理的流程图。针对l4高速缓存35的写入例如是写回l3高速缓存34内的数据中的设置有脏标志信息的数据的处理,从l3高速缓存34针对l4高速缓存35送出64字节的数据的写入请求。

如果有针对l4高速缓存35的写入请求(步骤s61),则高速缓存控制器36向第3粒度标签存储器22进行存取,判定是否命中了第3粒度标签存储器22(步骤s62)。在命中了第3粒度标签存储器22的情况下,将有写入请求的数据写入第3存储器10(步骤s63),并且更新第3粒度标签存储器22内的存取标志信息22c和脏标志信息22d(步骤s64)。

另一方面,在步骤s62中,判定为未命中第3粒度标签存储器22的情况下,写入第1存储器7的相应地址的数据(步骤s65),并且更新第1粒度标签存储器21内的lru管理信息21c和脏标志信息21d(步骤s66)。

此外,向l4高速缓存35写入的写入处理也可以采用与图15不同的处理步骤。例如,也可以对第1存储器7和第3存储器10这两方进行数据的写入。

图16a以及图16b是示出l4高速缓存35的读出处理和未命中l4高速缓存35时的数据提取处理的流程图。例如,伴随l3高速缓存34的高速缓存未命中,进行针对l4高速缓存35的读出,从l3高速缓存34针对l4高速缓存35送出64字节的数据的读出请求。

此外,读出处理根据写入策略而不同。以下,说明采用了图14的写入策略的情况下的读出处理,但读出处理不限定于下述说明的例子。

如果在l4高速缓存35中有读出请求(步骤s71),则高速缓存控制器36判定是否命中了第1粒度标签存储器21和第3粒度标签存储器22这双方(步骤s72)。在命中了双方的情况下,判定是否设置了第3粒度标签存储器22的脏标志信息(步骤s73)。在设置了第3粒度标签存储器22的脏标志信息22d的情况下,从第3存储器10读出有读出请求的数据(步骤s74)。读出的数据被送给l3高速缓存34(步骤s75)。

在未设置第3粒度标签存储器22的脏标志信息22d的情况下,判定是否设置了第1粒度标签存储器21的脏标志信息21d(步骤s76)。在设置了第1粒度标签存储器21的脏标志信息21d的情况下,从第1存储器7读出有读出请求的数据(步骤s77),送给l3高速缓存34(步骤s75)。在未设置第1粒度标签存储器21的脏标志信息21d的情况下,从第3存储器10读出有读出请求的数据(步骤s78),送给l3高速缓存34(步骤s75)。

这样,在命中了第1粒度标签存储器21和第3粒度标签存储器22这双方的情况下,根据第1粒度标签存储器21和第3粒度标签存储器22的脏标志信息21d、22d,从第1存储器7或者第3存储器10,读出有读出请求的数据。

如果在步骤s72中判定为未命中,则判定有读出请求的地址是否命中了第3粒度标签存储器22(步骤s79)。在判定为命中了的情况下,从第3存储器10,读出有读出请求的数据(步骤s78),并且更新第3粒度标签存储器22(步骤s80)。在此,设置与从第3存储器10读出的数据对应的存取标志。

如果在步骤s79中判定为未命中,则判定是否命中了第1粒度标签存储器21(步骤s81)。如果判定为命中了第1粒度标签存储器21,则从第1存储器7读出有读出请求的数据(步骤s82),送给l3高速缓存34(步骤s75)。

如果在步骤s81中判定为未命中,则进行向l4高速缓存35的数据提取处理。首先,判定在第3粒度标签存储器22中是否存在无效的数据(步骤s83)。如果存在无效的数据,则从第2存储器9读出第3粒度的数据(步骤s84),将读出的数据与第3存储器10内的无效的数据调换(步骤s85)。另外,将读出的数据中的64字节的数据送给l3高速缓存34(步骤s75)。

如果在步骤s83中判定为不存在无效的数据,则进行第3存储器10的无效化处理、和与其相伴的从第3存储器10向第1存储器7的数据转送处理。首先,对第3粒度标签存储器22存取,参照进行无效化的数据的存取标志信息22c(步骤s86)。数据抽出部23从第3存储器10,抽出设置了存取标志信息22c的第1粒度的数据(步骤s87),保存到第1存储器7(步骤s88)。另外,进行第3粒度标签存储器22的无效化(步骤s89)。接下来,高速缓存控制器36从第2存储器9读出数据,将读出的数据送给l3高速缓存34,并且在第3存储器10中保存该数据,设置与该数据对应的第3粒度标签存储器22的存取标志信息22c。

应保存在第1存储器7的数据已经存在于第1存储器7内的情况下,也可以不进行该数据的保存处理。即使应保存在第1存储器7的数据已经存在于第1存储器7内,如果从第3存储器10向第1存储器7转送的数据是脏数据,则也可以将该数据重写到第1存储器7。

这样,在第2实施方式中,在l4高速缓存35内设置第1存储器7及第3存储器10,将以第2粒度保存在第2存储器9的数据的至少一部分以第3粒度保存到第3存储器10,将保存在第3存储器10的第3粒度的数据的至少一部分以第3粒度以下的第1粒度保存于第1存储器7。由此,能够在第3存储器10中使对具有空间局部性的数据的存取高速化。同时,能够将具有时间局部性的数据以细的粒度保存到第1存储器7,能够在第1存储器7中使对具有时间局部性的数据的存取高速化。关于l4高速缓存35,能够期待对具有空间局部性的数据和具有时间局部性的数据这两方进行存取,能够提高l4高速缓存35的命中率。由于l4高速缓存35的命中率提高,能够使存储器存取高速化。

此外,能够将上述实施方式总结为以下的技术方案。

技术方案1

一种存储器系统,具备:

第1存储器,存储器容量比保存第2粒度的数据的第2存储器小,且保存第1粒度的数据;

控制部,从在所述第2存储器中保存了的数据中,读出所述第1粒度以上的第3粒度的数据;以及

数据抽出部,从由所述控制部读出的所述第3粒度的数据,抽出所述第1粒度的数据,保存到所述第1存储器。

技术方案2

根据技术方案1,具备存储器容量比所述第1存储器小,且保存所述第3粒度的数据的第3存储器,

所述数据抽出部将在所述第3存储器中保存了的数据的至少一部分,以所述第1粒度保存到所述第1存储器。

技术方案3

具备:

第1存储器,存储器容量比保存第2粒度的数据的第2存储器小,且保存第1粒度的数据;

第3存储器,保存所述第1粒度以上的第3粒度的数据;

控制部,从在所述第2存储器中保存了的数据中,读出所述第3粒度的数据,保存到所述第3存储器;以及

数据抽出部,将在所述第3存储器中保存的数据中的、有存取的数据,以所述第1粒度保存到所述第1存储器。

技术方案4

根据技术方案2或者3,具备保存确定在所述第3存储器中保存了的所述第3粒度的数据的地址信息、和表示各数据的存取状况的存取信息的第1标签存储器,

所述数据抽出部根据所述第1标签存储器内的所述存取信息,将在所述第3存储器中保存了的数据的至少一部分,以所述第1粒度保存到所述第1存储器。

技术方案5

根据技术方案4,具备保存确定在所述第1存储器中保存了的所述第1粒度的数据的地址信息、和表示是否改写了在所述第1存储器中保存了的所述第1粒度的数据的脏信息的第2标签存储器,

所述第1标签存储器保存表示是否改写了在所述第3存储器中保存了的所述第3粒度的数据的脏信息,

所述控制部如果从处理器接受到读出请求,则在有所述读出请求的地址命中了所述第1标签存储器以及所述第2标签存储器这双方的情况下,根据所述第2标签存储器内的脏信息和所述第1标签存储器内的脏信息,从所述第1存储器或者所述第3存储器,读出有所述读出请求的数据。

技术方案6

根据技术方案2或者3,具备保存确定在所述第1存储器中保存了的所述第1粒度的数据的地址信息、和表示是否改写了在所述第1存储器中保存了的所述第1粒度的数据的脏信息的第2标签存储器,

所述数据抽出部根据所述脏信息,将在所述第3存储器中保存了的数据的至少一部分,以所述第1粒度保存到所述第1存储器。

技术方案7

根据技术方案2至6中的任意一个,所述数据抽出部与消除在所述第3存储器中保存了的所述第3粒度的数据的至少一部分的定时符合地,将在所述第3存储器中保存了的数据的至少一部分,以所述第1粒度保存到所述第1存储器。

技术方案8

根据技术方案1至7中的任意一个,所述控制部在从处理器接受到读出请求时,如果有所述读出请求的地址未命中所述第1存储器以及所述第3存储器,则从所述第2存储器读出数据。

技术方案9

根据技术方案1至8中的任意一个,所述控制部在从处理器有读出请求的地址未命中所述第1存储器以及所述第3存储器时,进行在所述第3存储器中保存了的数据的调换处理。

技术方案10

根据技术方案9,具备在从处理器有读出请求的地址未命中所述第1存储器以及所述第3存储器时,保存到所述第1存储器并从所述第1存储器保存消除对象的有效数据的第4存储器,

所述控制部将在所述第4存储器中保存了的数据,在预定的定时,保存到所述第3存储器。

技术方案11

根据技术方案9或者10,所述控制部在从处理器有读出请求的地址未命中所述第1存储器以及所述第3存储器时,在通过从所述第1存储器向所述第4存储器保存数据而得到了的所述第1存储器的空闲区域中,从所述第3存储器传送一部分的数据,在通过该数据的传送得到了的所述第3存储器的空闲区域中,保存来自所述第2存储器的数据。

技术方案12

根据技术方案4或者5,具备在从处理器有读出请求的地址未命中所述第1存储器以及所述第3存储器时,保存到所述第1存储器并从所述第1存储器保存消除对象的有效数据的第4存储器,

所述第1标签存储器在与所述第4存储器内的数据对应的地址未命中所述第1标签存储器时,保存表示将该数据写回到所述第3存储器的回写标志信息,

所述控制部根据所述回写标志信息,将从所述第4存储器写回到所述第3存储器的数据保存到所述第2存储器。

技术方案13

根据技术方案1至12中的任意一个,所述控制部在从处理器接受到写入请求时,如果有所述写入请求的地址命中了所述第3存储器,则在所述第3存储器中写入有所述写入请求的数据,如果未命中所述第3存储器,则在所述第1存储器中写入所述数据。

技术方案14

根据技术方案1至13中的任意一个,所述第2存储器是dram(dynamicrandomaccessmemory),

所述第1存储器是mram(magnetoresistiverandomaccessmemory)。

技术方案15

根据技术方案1至14中的任意一个,所述第3存储器是mram或者sram(staticrandomaccessmemory)。

技术方案16

根据技术方案1至15中的任意一个,所述第2存储器、所述第1存储器以及所述第3存储器是同一层次的存储器。

技术方案17

根据技术方案1至16中的任意一个,所述第2存储器、所述第1存储器以及所述第3存储器是存取优先级比主存储器高的高速缓冲存储器。

技术方案18

根据技术方案1至17中的任意一个,所述第2存储器是存储器阵列,

所述第3存储器是保存将所述存储器阵列的字线作为单位针对存取的多个存储器单元读写的数据的行缓冲器。

技术方案19

一种处理器系统,具备:

处理器;

第1存储器,保存第1粒度的数据;

第2存储器,保存比所述第1粒度大的第2粒度的数据,该第2存储器的存储器容量比所述第1存储器大;

控制部,从在所述第2存储器中保存了的数据中,读出所述第1粒度以上的第3粒度的数据;以及

数据抽出部,从由所述控制部读出的所述第3粒度的数据,抽出所述第1粒度的数据,保存到所述第1存储器。

技术方案20,

根据技术方案19,具备第3存储器,存储器容量比所述第1存储器小,保存所述第3粒度的数据,

所述数据抽出部以所述第1粒度将保存于所述第3存储器的数据的至少一部分保存于所述第1存储器。

虽然说明了本发明的几个实施方式,但这些实施方式仅为例示,未限定发明的范围。这些新的实施方式能够通过其他各种方式实施,能够在不脱离发明的要旨的范围内,进行各种省略、置换、变更。这些实施方式、其变形包含于发明的范围、要旨内,并且记载于与权利要求书记载的发明和其均等的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1