CN115509956A - cache、数据处理系统、方法、计算机设备和存储介质 - Google Patents
cache、数据处理系统、方法、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115509956A CN115509956A CN202211206160.2A CN202211206160A CN115509956A CN 115509956 A CN115509956 A CN 115509956A CN 202211206160 A CN202211206160 A CN 202211206160A CN 115509956 A CN115509956 A CN 115509956A
- Authority
- CN
- China
- Prior art keywords
- tag value
- data
- target
- memory
- reading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种cache、数据处理系统、方法、计算机设备、存储介质和计算机程序产品。所述cache包括:控制器、地址存储器和数据存储器,控制器,用于解析访问指令,获得目标tag值、entry索引信息和数据地址信息,在目标tag值满足第一预设条件的情况下,从寄存器中读取保存的tag值;在目标tag值与保存的tag值相同的情况下,从数据存储器中与保存的tag值对应的地址处读取数据,并反馈读取的数据;在目标tag值不满足第一预设条件的情况下,根据entry索引信息读取连续的第一tag值和第二tag值,并从数据存储器中与数据地址信息对应的地址处读取数据,在第一tag值和第二tag值中存在与目标tag值相同的tag值的情况下,反馈读取的数据。采用本系统,能够降低处理器的性能损失。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种cache、数据处理系统、方法、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,出现了各种类型的处理器,比如CPU(CentralProcessing Unit,中央处理器)。在处理器工作之前,先将需要的数据暂时存储至处理器内的高速缓存中,比如cache,然后在工作时再从该高速缓存中读取出相应的数据,并对读取出来的数据进行处理。
传统技术中,高速缓存由TAG(Tag memory,存放地址的存储器)和DATA(Datamemory,存放数据的存储器)构成,TAG用于存储地址,DATA用于存储数据。在读取数据时,一般是先将处理器发送的数据读取请求中的访问地址与TAG中的地址进行比较,在访问地址与TAG中的地址相同的情况下,再从DATA中读取出相应的数据并返回至处理器。但是,在每次读取数据之前,都需要先判断处理器的访问地址与TAG中的地址是否相同,导致数据读取出现延迟,从而造成处理器的性能损失。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低处理器的性能损失的cache、数据处理系统、方法、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种cache。所述cache包括:控制器、地址存储器和数据存储器,所述地址存储器包括寄存器和至少一个way,所述way包括多个entry,每个entry存储有连续两个缓存行的tag值;
所述控制器,用于接收并解析访问指令,获得目标tag值、entry索引信息和数据地址信息,在所述目标tag值满足第一预设条件的情况下,从所述寄存器中读取保存的tag值;在所述目标tag值与所述保存的tag值相同的情况下,从所述数据存储器中与所述保存的tag值对应的地址处读取数据,并反馈读取的数据;在所述目标tag值不满足所述第一预设条件的情况下,根据所述entry索引信息读取连续的第一tag值和第二tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据,在所述第一tag值和所述第二tag值中存在与所述目标tag值相同的tag值的情况下,反馈读取的数据,将所述第一tag值和所述第二tag值中与所述目标tag值不同的tag值存储至所述寄存器中。
在其中一个实施例中,所述控制器,还用于在所述目标tag值与所述保存的tag值不相同的情况下,根据所述entry索引信息读取连续的第三tag值和第四tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据,在所述第三tag值和所述第四tag值中存在与所述目标tag值相同的tag值的情况下,反馈读取的数据,将所述第三tag值和所述第四tag值中与所述目标tag值不同的tag值存储至所述寄存器中。
在其中一个实施例中,所述控制器,还用于在所述第三tag值和所述第四tag值中不存在与所述目标tag值相同的tag值的情况下,从目标存储器中与所述目标tag值对应的地址处读取数据,并反馈读取的数据。
在其中一个实施例中,所述控制器,还用于在所述第一tag值和所述第二tag值中不存在与所述目标tag值相同的tag值的情况下,从目标存储器中与所述目标tag值对应的地址处读取数据,并反馈读取的数据。
在其中一个实施例中,每个entry还存储有tag值对应的状态标识;所述状态标识用于表示对应的tag值是否有效;
所述控制器,还用于在所述目标tag值不满足所述第一预设条件的情况下,根据所述entry索引信息读取所述第一tag值对应的状态标识和所述第二tag值对应的状态标识,在所述第一tag值对应的状态标识和所述第二tag值对应的状态标识均为有效的情况下,确定所述第一tag值和所述第二tag值中存在与所述目标tag值相同的tag值。
第二方面,本申请提供了一种数据处理系统。所述系统包括:处理器和第一方面的任一项实施例中所述的cache;
所述处理器,用于将访问指令发送至所述cache;
所述处理器,还用于接收所述cache基于所述访问指令返回的数据。
第三方面,本申请提供了一种数据处理方法。所述方法包括:
接收并解析访问指令,获得目标tag值、entry索引信息和数据地址信息;
在所述目标tag值满足第一预设条件的情况下,从所述寄存器中读取保存的tag值;在所述目标tag值与所述保存的tag值相同的情况下,从所述数据存储器中与所述保存的tag值对应的地址处读取数据,并反馈读取的数据;
在所述目标tag值不满足所述第一预设条件的情况下,根据所述entry索引信息读取连续的第一tag值和第二tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据,在所述第一tag值和所述第二tag值中存在与所述目标tag值相同的tag值的情况下,反馈读取的数据,将所述第一tag值和所述第二tag值中与所述目标tag值不同的tag值存储至所述寄存器中。
在其中一个实施例中,在所述目标tag值满足第一预设条件的情况下,从所述寄存器中读取保存的tag值之后,还包括:
在所述目标tag值与所述保存的tag值不相同的情况下,根据所述entry索引信息读取连续的第三tag值和第四tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据;
在所述第三tag值和所述第四tag值中存在与所述目标tag值相同的tag值的情况下,反馈读取的数据,将所述第三tag值和所述第四tag值中与所述目标tag值不同的tag值存储至所述寄存器中。
在其中一个实施例中,在根据所述entry索引信息读取连续的第三tag值和第四tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据之后,还包括:
在所述第三tag值和所述第四tag值中不存在与所述目标tag值相同的tag值的情况下,从目标存储器中与所述目标tag值对应的地址处读取数据,并反馈读取的数据。
在其中一个实施例中,在根据所述entry索引信息读取连续的第一tag值和第二tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据之后,还包括:
在所述第一tag值和所述第二tag值中不存在与所述目标tag值相同的tag值的情况下,从目标存储器中与所述目标tag值对应的地址处读取数据,并反馈读取的数据。
在其中一个实施例中,所述方法还包括:
在所述目标tag值不满足所述第一预设条件的情况下,根据所述entry索引信息读取所述第一tag值对应的状态标识和所述第二tag值对应的状态标识;所述状态标识用于表示对应的tag值是否有效;
在所述第一tag值对应的状态标识和所述第二tag值对应的状态标识均为有效的情况下,确定所述第一tag值和所述第二tag值中存在与所述目标tag值相同的tag值。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收并解析访问指令,获得目标tag值、entry索引信息和数据地址信息;
在所述目标tag值满足第一预设条件的情况下,从所述寄存器中读取保存的tag值;在所述目标tag值与所述保存的tag值相同的情况下,从所述数据存储器中与所述保存的tag值对应的地址处读取数据,并反馈读取的数据;
在所述目标tag值不满足所述第一预设条件的情况下,根据所述entry索引信息读取连续的第一tag值和第二tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据,在所述第一tag值和所述第二tag值中存在与所述目标tag值相同的tag值的情况下,反馈读取的数据,将所述第一tag值和所述第二tag值中与所述目标tag值不同的tag值存储至所述寄存器中。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收并解析访问指令,获得目标tag值、entry索引信息和数据地址信息;
在所述目标tag值满足第一预设条件的情况下,从所述寄存器中读取保存的tag值;在所述目标tag值与所述保存的tag值相同的情况下,从所述数据存储器中与所述保存的tag值对应的地址处读取数据,并反馈读取的数据;
在所述目标tag值不满足所述第一预设条件的情况下,根据所述entry索引信息读取连续的第一tag值和第二tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据,在所述第一tag值和所述第二tag值中存在与所述目标tag值相同的tag值的情况下,反馈读取的数据,将所述第一tag值和所述第二tag值中与所述目标tag值不同的tag值存储至所述寄存器中。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
接收并解析访问指令,获得目标tag值、entry索引信息和数据地址信息;
在所述目标tag值满足第一预设条件的情况下,从所述寄存器中读取保存的tag值;在所述目标tag值与所述保存的tag值相同的情况下,从所述数据存储器中与所述保存的tag值对应的地址处读取数据,并反馈读取的数据;
在所述目标tag值不满足所述第一预设条件的情况下,根据所述entry索引信息读取连续的第一tag值和第二tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据,在所述第一tag值和所述第二tag值中存在与所述目标tag值相同的tag值的情况下,反馈读取的数据,将所述第一tag值和所述第二tag值中与所述目标tag值不同的tag值存储至所述寄存器中。
上述cache、数据处理系统、方法、计算机设备、存储介质和计算机程序产品,该cache包括:控制器、地址存储器和数据存储器,地址存储器包括寄存器和至少一个way,way包括多个entry,每个entry存储有连续两个缓存行的tag值;控制器,用于接收并解析访问指令,获得目标tag值、entry索引信息和数据地址信息,在目标tag值满足第一预设条件的情况下,从寄存器中读取保存的tag值;在目标tag值与保存的tag值相同的情况下,从数据存储器中与保存的tag值对应的数据地址中读取数据,并反馈读取的数据;在目标tag值不满足第一预设条件的情况下,根据entry索引信息读取连续的第一tag值和第二tag值,并从数据存储器中与数据地址信息对应的地址处读取数据,在第一tag值和第二tag值中存在与目标tag值相同的tag值的情况下,反馈读取的数据,将第一tag值和第二tag值中与目标tag值不同的tag值存储至寄存器中。这样,通过cache中的控制器在接收到的访问指令中的目标tag值不满足第一预设条件的情况下,在根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值的同时,从数据存储器中与数据地址信息对应的地址处读取数据,有利于后续在第一tag值和第二tag值中存在与访问指令中的目标tag值相同的tag值的情况下,直接将读取的数据返回,不会造成数据读取延迟,避免了处理器的性能损失,从而提高了处理器的性能。此外,根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值,并将第一tag值和第二tag值中与目标tag值不同的tag值存储至寄存器中,使得后续在目标tag值满足第一预设条件的情况下,直接从寄存器中读取出保存的tag值,并在目标tag值与保存的tag值相同的情况下,从数据存储器中与保存的tag值对应的地址处读取数据,并返回读取的数据,无需在根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值的同时,从数据存储器中与数据地址信息对应的地址处读取数据,从而避免了在每次不清楚第一tag值和第二tag值中是否存在与目标tag值相同的tag值的情况下,都从数据存储器中与数据地址信息对应的地址处读取数据,造成数据访问过程的功耗较大的缺陷,从而实现了在降低功耗的基础上,提高处理器的性能的目的。
附图说明
图1为一个实施例中cache的结构框图;
图2为另一个实施例中cache的结构框图;
图3为一个实施例中数据处理方法的流程示意图;
图4为一个实施例中数据返回步骤的流程示意图;
图5为另一个实施例中数据处理方法的流程示意图;
图6为又一个实施例中数据处理方法的流程示意图;
图7为一个实施例中数据处理系统的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种cache,该cache包括:控制器101、地址存储器102和数据存储器103,地址存储器102包括寄存器和至少一个way,way包括多个entry,每个entry存储有连续两个缓存行的tag值;控制器101,用于接收并解析访问指令,获得目标tag值、entry索引信息和数据地址信息,在目标tag值满足第一预设条件的情况下,从寄存器中读取保存的tag值;在目标tag值与保存的tag值相同的情况下,从数据存储器103中与保存的tag值对应的地址处读取数据,并反馈读取的数据;在目标tag值不满足第一预设条件的情况下,根据entry索引信息读取连续的第一tag值和第二tag值,并从数据存储器103中与数据地址信息对应的地址处读取数据,在第一tag值和第二tag值中存在与目标tag值相同的tag值的情况下,反馈读取的数据,将第一tag值和第二tag值中与目标tag值不同的tag值存储至寄存器中。
其中,cache是指包括控制器101、地址存储器102和数据存储器103的高速缓存器。
其中,控制器101用于解析访问指令,并从地址存储器102中读取出相应的tag值,以及从数据存储器103中读取出相应的数据。
其中,地址存储器102是指用于存储地址的改进型TAG存储器,地址存储器102中包括一个寄存器和至少一个way,寄存器用于存储一个tag值,比如参考图2,寄存器用于存储第n+1个tag值:TAG(n+1),n为大于或者等于0的偶数。控制器101从地址存储器102中读取第n个tag值时,也会将第n+1个tag值读取出来,并将第n+1个tag值存储至寄存器中,以通过寄存器保存第n+1个tag值TAG(n+1)以及TAG(n+1)对应的vld值VLD(n+1)。比如,参考图2,控制器101在读取第2个缓存行的tag值(如TAG2)时,也会将第3个缓存行的tag值(如TAG3)读取出来,并将TAG3存储至寄存器中,以通过寄存器保存TAG3和VLD3。
其中,tag值是指存储地址,由多位二进制数组成,比如10000100000010000111000;需要说明的是,若tag值中第一位二进制数的数值为0,表示该tag值对应的十进制数为偶数;若tag值中第一位二进制数的数值为1,表示该tag值对应的十进制数为奇数。
其中,entry是指条目,每个条目包括连续两个缓存行;缓存行是指数据单元,每个缓存行存储有一个vld值和一个tag值,vld值用于表示对应的tag值是否有效;比如,若vld值为1,表示对应的tag值有效,若vld值为0,表示对应的tag值无效。比如,参考图2,第二个entry包括VLD2和TAG2所在的缓存行,以及VLD3和TAG3所在的缓存行。
其中,每个entry存储有连续两个缓存行的tag值,左边缓存行的tag值对应的地址标识(比如编号)为偶数,右边缓存行的tag值对应的地址标识为奇数,而且这两个tag值对应的地址标识连续。比如,参考图2,在第一个entry中,左边缓存行的tag值为TAG0,且TAG0对应的地址标识为0,右边缓存行的tag值为TAG1,且TAG1对应的地址标识为1;在第二个entry中,左边缓存行的tag值为TAG2,且TAG2对应的地址标识为2,右边缓存行的tag值为TAG3,且TAG3对应的地址标识为3。当然,左边缓存行的tag值对应的地址标识也可以为奇数,右边缓存行的tag值对应的地址标识也可以为偶数,本申请在此不做具体限定。
其中,way是指存储单元,每个存储单元包括多个entry,比如图2中,WAY0包括(n+2)/2个entry。
其中,数据存储器103是指用于存储数据的DATA存储器。数据存储器103存储的是与地址存储器102中的各个tag值一一对应的数据;比如参考图2,与TAG0对应的数据是DATA0,与TAG1对应的数据是DATA1……与TAGn对应的数据是DATAn。
需要说明的是,本申请的cache是指设置在处理器所在芯片内部的改进型cache。传统技术中,cache中的TAG存储器没有包括用于存储第n+1个缓存行的tag值TAG(n+1)的寄存器,而且该TAG存储器中的每个entry仅仅包括一个缓存行的tag值,比如第一个entry包括TAG0,第二个entry包括TAG1……第n个entry包括TAG(n-1)。
其中,访问指令是指处理器(比如CPU)发起的访问指令,比如图2中的request;访问指令中携带有访问地址,比如图2中的M_ADDR。访问地址中包括多种信息,通过对访问地址进行解析,可以得到目标tag值、entry索引信息和数据地址信息。目标tag值是指目标存储地址,具体是指处理器需要访问的具体地址。entry索引信息是指处理器需要访问的entry的索引信息,具体是指图2中的Index1;比如,entry索引信息为2,表示处理器要访问地址存储器102中的第2个entry。数据地址信息是指处理器需要读取的数据的存储地址,用于存储与目标tag值对应的数据,具体是指图2中的Index2;比如,参考图2,目标tag值为TAG2,则Index2对应的地址处存储的是DATA2。
其中,目标tag值满足第一预设条件,是指目标tag值对应的十进制数为奇数,且奇数大于0;目标tag值不满足第一预设条件,是指目标tag值对应的十进制数为偶数。需要说明的是,目标tag值满足第一预设条件,也可以是指目标tag值对应的十进制数为偶数;目标tag值不满足第一预设条件,也可以是指目标tag值对应的十进制数为奇数,具体可以根据实际情况进行调整,本申请在此不做具体限定。
其中,在目标tag值满足第一预设条件的情况下,由于寄存器中存储有上一次保存的tag值,比如TAG(n+1),故控制器101可以从寄存器中读取出保存的tag值。
其中,在目标tag值与保存的tag值相同的情况下,从数据存储器103中与保存的tag值对应的地址处读取数据,是指控制器101判断到目标tag值与寄存器保存的tag值相同,说明处理器要访问的数据在数据存储器103中有缓存,则从数据存储器103中与保存的tag值对应的地址处读取出数据,并将该数据返回至处理器,无需在不清楚第一tag值和第二tag值中是否存在与目标tag值相同的tag值的情况下,都从数据存储器103中与数据地址信息对应的地址处读取数据,造成数据访问过程的功耗较大的缺陷,从而降低了数据访问过程的功耗。
其中,在目标tag值不满足第一预设条件的情况下,与entry索引信息对应的entry中,左边缓存行存储的是第一tag值,比如TAGn,右边缓存行存储的是第二tag值,比如TAG(n+1)。根据entry索引信息读取连续的第一tag值和第二tag值,并从数据存储器103中与数据地址信息对应的地址处读取数据,是指处理器101在从地址存储器102中与entry索引信息对应的entry中读取出第一tag值时,也将第二tag值一并读取出来,同时从数据存储器103中与数据地址信息对应的地址处读取出数据。在第一tag值和第二tag值中存在与目标tag值相同的tag值的情况下,反馈读取的数据,是指控制器101判断到目标tag值与第一tag值和第二tag值中的一个tag值(比如第一tag值)相同,而数据存储器103中存储的是与地址存储器102中的tag值对应的数据,说明处理器要访问的数据在数据存储器103中有缓存,则直接将先前读取出的数据返回至处理器,无需tag hit判定后再从数据存储器103中与数据地址信息对应的地址处读取数据,再将该数据返回至处理器,从而降低了处理器的数据读取延迟。
需要说明的是,根据entry索引信息读取连续的第一tag值和第二tag值,与从数据存储器103中与数据地址信息对应的地址处读取数据,是同时进行的,这两个过程之间没有先后顺序。
其中,当第一tag值和第二tag值中存在与目标tag值相同的tag值时,说明之前从数据存储器103中与数据地址信息对应的地址处读取出的数据,就是与目标tag值对应的数据,故可以将之前从数据存储器103中与数据地址信息对应的地址处读取出的数据直接返回至处理器;同时,控制器101将第一tag值和第二tag值中与目标tag值不同的tag值(比如第二tag值)存储至寄存器中,以通过寄存器暂时保存第一tag值和第二tag值中与目标tag值不同的tag值,便于后续在目标tag值满足第一预设条件的情况下,直接从寄存器中读取保存的tag值;在目标tag值与保存的tag值相同的情况下,从数据存储器103中与保存的tag值对应的地址处读取数据,并反馈读取的数据,无需每次在不清楚第一tag值和第二tag值中是否存在与目标tag值相同的tag值的情况下,都从数据存储器103中与数据地址信息对应的地址处读取数据,造成数据访问过程的功耗较大的缺陷,从而降低了数据访问过程的功耗。
具体地,控制器101接收处理器发送的访问指令,并对该访问指令进行解析,得到目标tag值、entry索引信息和数据地址信息;根据目标tag值对应的十进制数,判断目标tag值是否满足第一预设条件,在目标tag值满足第一预设条件的情况下,从寄存器中读取保存的tag值,比如TAG(n+1),并判断目标tag值与保存的tag值是否相同;在目标tag值与保存的tag值相同的情况下,从数据存储器103中与保存的tag值对应的地址处读取数据,并将该数据返回至处理器。在目标tag值不满足第一预设条件的情况下,控制器101从地址存储器102中与entry索引信息对应的entry中,读取出连续的第一tag值和第二tag值,比如TAGn和TAG(n+1),同时从数据存储器103中与数据地址信息对应的地址处读取出数据。接着,控制器101判断第一tag值和第二tag值中是否存在与目标tag值相同的tag值,在第一tag值和第二tag值中存在与目标tag值相同的tag值的情况下,比如目标tag值与第一tag值相同,直接将之前从数据存储器103中与数据地址信息对应的地址处读取出的数据返回至处理器,并将第一tag值和第二tag值中与目标tag值不同的tag值存储至寄存器中,以通过寄存器暂时保存第一tag值和第二tag值中与目标tag值不同的tag值,比如第二tag值。
上述cache,包括控制器、地址存储器和数据存储器,地址存储器包括寄存器和至少一个way,way包括多个entry,每个entry存储有连续两个缓存行的tag值;控制器,用于接收并解析访问指令,获得目标tag值、entry索引信息和数据地址信息,在目标tag值满足第一预设条件的情况下,从寄存器中读取保存的tag值;在目标tag值与保存的tag值相同的情况下,从数据存储器中与保存的tag值对应的数据地址中读取数据,并反馈读取的数据;在目标tag值不满足第一预设条件的情况下,根据entry索引信息读取连续的第一tag值和第二tag值,并从数据存储器中与数据地址信息对应的地址处读取数据,在第一tag值和第二tag值中存在与目标tag值相同的tag值的情况下,反馈读取的数据,将第一tag值和第二tag值中与目标tag值不同的tag值存储至寄存器中。这样,通过cache中的控制器在接收到的访问指令中的目标tag值不满足第一预设条件的情况下,在根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值的同时,从数据存储器中与数据地址信息对应的地址处读取数据,有利于后续在第一tag值和第二tag值中存在与访问指令中的目标tag值相同的tag值的情况下,直接将读取的数据返回,不会造成数据读取延迟,避免了处理器的性能损失,从而提高了处理器的性能。此外,根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值,并将第一tag值和第二tag值中与目标tag值不同的tag值存储至寄存器中,使得后续在目标tag值满足第一预设条件的情况下,直接从寄存器中读取出保存的tag值,并在目标tag值与保存的tag值相同的情况下,从数据存储器中与保存的tag值对应的地址处读取数据,并返回读取的数据,无需在根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值的同时,从数据存储器中与数据地址信息对应的地址处读取数据,从而避免了在每次不清楚第一tag值和第二tag值中是否存在与目标tag值相同的tag值的情况下,都从数据存储器中与数据地址信息对应的地址处读取数据,造成数据访问过程的功耗较大的缺陷,从而实现了在降低功耗的基础上,提高处理器的性能的目的。
在一个实施例中,如图1所示,控制器101,还用于在目标tag值与保存的tag值不相同的情况下,根据entry索引信息读取连续的第三tag值和第四tag值,并从数据存储器103中与数据地址信息对应的地址处读取数据,在第三tag值和第四tag值中存在与目标tag值相同的tag值的情况下,反馈读取的数据,将第三tag值和第四tag值中与目标tag值不同的tag值存储至寄存器中。
其中,在目标tag值满足第一预设条件,且目标tag值与保存的tag值不相同的情况下,与entry索引信息对应的entry中,左边缓存行存储的是第三tag值,比如TAG2,右边缓存行存储的是第四tag值,比如TAG3。根据entry索引信息读取连续的第三tag值和第四tag值,并从数据存储器103中与数据地址信息对应的地址处读取数据,是指处理器101在从地址存储器102中与entry索引信息对应的entry中读取出第三tag值时,也将第四tag值一并读取出来,同时从数据存储器103中与数据地址信息对应的地址处读取出数据。在第三tag值和第四tag值中存在与目标tag值相同的tag值的情况下,反馈读取的数据,是指控制器101判断到目标tag值与第三tag值和第四tag值中的一个tag值(比如第三tag值)相同,而数据存储器103中存储的是与地址存储器102中的tag值对应的数据,说明处理器要访问的数据在数据存储器103中有缓存,则直接将先前读取出的数据返回至处理器,无需tag hit判定后再从数据存储器103中与数据地址信息对应的地址处读取数据,再将该数据返回至处理器,从而降低了处理器的数据读取延迟。
需要说明的是,根据entry索引信息读取连续的第三tag值和第四tag值,与从数据存储器103中与数据地址信息对应的地址处读取数据,是同时进行的,这两个过程之间没有先后顺序。
其中,当第三tag值和第四tag值中存在与目标tag值相同的tag值时,说明之前从数据存储器103中与数据地址信息对应的地址处读取出的数据,就是与目标tag值对应的数据,故可以将之前从数据存储器103中与数据地址信息对应的地址处读取出的数据直接返回至处理器;同时,控制器101将第三tag值和第四tag值中与目标tag值不同的tag值(比如第四tag值)存储至寄存器中,以通过寄存器暂时保存第三tag值和第四tag值中与目标tag值不同的tag值,便于后续在目标tag值满足第一预设条件的情况下,直接从寄存器中读取保存的tag值;在目标tag值与保存的tag值相同的情况下,从数据存储器103中与保存的tag值对应的地址处读取数据,并反馈读取的数据。
具体地,参考图1,在目标tag值满足第一预设条件的情况下,控制器101从寄存器中读取出保存的tag值,并判断目标tag值与保存的tag值是否相同,在目标tag值与保存的tag值不相同的情况下,从地址存储器102中与entry索引信息对应的entry中,读取出连续的第三tag值和第四tag值,比如TAG2和TAG3,同时从数据存储器103中与数据地址信息对应的地址处读取出数据。接着,控制器101判断第三tag值和第四tag值中是否存在与目标tag值相同的tag值,在第三tag值和第四tag值中存在与目标tag值相同的tag值的情况下,比如目标tag值与第三tag值相同,直接将之前从数据存储器103中与数据地址信息对应的地址处读取出的数据返回至处理器,并将第三tag值和第四tag值中与目标tag值不同的tag值存储至寄存器中,以通过寄存器暂时保存第三tag值和第四tag值中与目标tag值不同的tag值,比如第四tag值。
举例说明,参考图2,假设entry索引信息为2;在目标tag值与保存的tag值不相同的情况下,控制器101从第二个entry中读取出TAG2和TAG3,同时从数据存储器103中读取出DATA2;在目标tag值与TAG2相同的情况下,直接将之前读取出的DATA2返回至处理器,并将TAG3存储至寄存器中。
在本实施例中,在目标tag值满足第一预设条件,且目标tag值与保存的tag值不相同的情况下,从与entry索引信息对应的entry中,读取出连续的第三tag值和第四tag值,同时从数据存储器中与数据地址信息对应的地址处读取数据,使得在第三tag值和第四tag值中存在与目标tag值相同的tag值的情况下,直接将之前读取出的数据返回,不会造成数据读取延迟,从而避免了处理器的性能损失,进而提高了处理器的性能。同时,在读取第三tag值的同时,读取出相连续的第四tag值,并将第三tag值和第四tag值中与目标tag值不同的tag值存储至寄存器中,使得后续在目标tag值满足第一预设条件的情况下,直接从寄存器中读取出保存的tag值,并在目标tag值与保存的tag值相同的情况下,从数据存储器中与保存的tag值对应的地址处读取数据,并反馈读取的数据,实现了数据的精准读取,避免了在不清楚读取出的连续两个tag值是否存在与目标tag值相同的tag值的情况下,都从数据存储器中与数据地址信息对应的地址处读取数据,造成数据访问过程的功耗较大的缺陷。
在一个实施例中,如图1所示,控制器101,还用于在第三tag值和第四tag值中不存在与目标tag值相同的tag值的情况下,从目标存储器中与目标tag值对应的地址处读取数据,并反馈读取的数据。
其中,目标存储器是指位于处理器之外的存储器,比如DDR(DDR SDRAM,双倍速率同步动态随机存储器)。
具体地,参考图1,在目标tag值与保存的tag值不相同的情况下,控制器101从地址存储器102中与entry索引信息对应的entry中,读取出连续的第三tag值和第四tag值,同时从数据存储器103中与数据地址信息对应的地址处读取出数据;判断第三tag值和第四tag值中是否存在与目标tag值相同的tag值,在第三tag值和第四tag值中不存在与目标tag值相同的tag值的情况下,从目标存储器中与目标tag值对应的地址处读取数据,并将该数据返回至处理器。
举例说明,参考图2,假设读取出的连续两个tag值为TAG2和TAG3;在TAG2和TAG3中不存在与目标tag值相同的tag值的情况下,控制器101从DDR中与目标tag值对应的地址处读取出相应的数据,并将该数据返回至处理器。
在本实施例中,在第三tag值和第四tag值中不存在与目标tag值相同的tag值的情况下,从目标存储器中与目标tag值对应的地址处读取数据,并反馈读取的数据,避免了数据存储器中没有存储与目标tag值对应的数据,则造成数据读取失败的缺陷,进而保证了数据的成功读取。
在一个实施例中,参考图1,控制器101,还用于在第一tag值和第二tag值中不存在与目标tag值相同的tag值的情况下,从目标存储器中与目标tag值对应的地址处读取数据,并反馈读取的数据。
具体地,参考图1,在目标tag值不满足第一预设条件的情况下,控制器101从地址存储器102中与entry索引信息对应的entry中,读取出连续的第一tag值和第二tag值,比如TAGn和TAG(n+1),同时从数据存储器103中与数据地址信息对应的地址处读取出数据。接着,控制器101判断第一tag值和第二tag值中是否存在与目标tag值相同的tag值,在第一tag值和第二tag值中不存在与目标tag值相同的tag值的情况下,从目标存储器中与目标tag值对应的地址处读取数据,并将该数据返回至处理器。
举例说明,参考图2,假设目标tag值不满足第一预设条件,且读取出的连续两个tag值为TAG4和TAG5;在TAG4和TAG5中不存在与目标tag值相同的tag值的情况下,控制器101从DDR中与目标tag值对应的地址处读取出相应的数据,并将该数据返回至处理器。
在本实施例中,在第一tag值和第二tag值中不存在与目标tag值相同的tag值的情况下,从目标存储器中与目标tag值对应的地址处读取数据,并反馈读取的数据,避免了数据存储器中没有存储与目标tag值对应的数据,则造成数据读取失败的缺陷,进而保证了数据的成功读取。
在一个实施例中,参考图1,每个entry还存储有tag值对应的状态标识;状态标识用于表示对应的tag值是否有效;控制器101,还用于在目标tag值不满足第一预设条件的情况下,根据entry索引信息读取第一tag值对应的状态标识和第二tag值对应的状态标识,在第一tag值对应的状态标识和第二tag值对应的状态标识均为有效的情况下,确定第一tag值和第二tag值中存在与目标tag值相同的tag值。
其中,在每个entry中,左边缓存行的tag值对应有状态标识,比如VLD2,右边缓存行的tag值也对应有状态标识,比如VLD3。每个tag值对应的状态标识,用于表示该tag值是否有效;比如,若tag值TAG2的状态标识为预设状态标识,比如VLD2=1,说明该tag值TAG2有效;若tag值TAG2的状态标识不是预设状态标识,比如VLD2=0,说明该tag值TAG2无效。
具体地,参考图1,在目标tag值不满足第一预设条件的情况下,控制器101从地址存储器102中与entry索引信息对应的entry中,读取出连续的第一tag值和第二tag值,以及第一tag值对应的状态标识和第二tag值对应的状态标识,同时从数据存储器103中与数据地址信息对应的地址处读取出数据。接着,控制器101判断第一tag值对应的状态标识和第二tag值对应的状态标识是否均为有效,在第一tag值对应的状态标识和第二tag值对应的状态标识均为有效的情况下,确认第一tag值和第二tag值均为有效;进一步判断第一tag值和第二tag值中是否存在与目标tag值相同的tag值,在第一tag值和第二tag值中存在与目标tag值相同的tag值的情况下,直接将之前从数据存储器103中与数据地址信息对应的地址处读取出的数据,返回至处理器。
进一步地,控制器101若识别到第一tag值对应的状态标识和第二tag值对应的状态标识均为无效,则确认第一tag值和第二tag值均为无效,则从目标存储器中与目标tag值对应的地址处读取数据,并将该数据返回至处理器。
此外,在目标tag值满足第一预设条件,且目标tag值与保存的tag值不相同的情况下,控制器101从地址存储器102中与entry索引信息对应的entry中,读取出连续的第三tag值和第四tag值,以及第三tag值对应的状态标识和第四tag值对应的状态标识,同时从数据存储器103中与数据地址信息对应的地址处读取出数据。接着,控制器101判断第三tag值对应的状态标识和第四tag值对应的状态标识是否均为有效,在第三tag值对应的状态标识和第四tag值对应的状态标识均为有效的情况下,确认第三tag值和第四tag值均为有效;进一步判断第三tag值和第四tag值中是否存在与目标tag值相同的tag值,在第三tag值和第四tag值中存在与目标tag值相同的tag值的情况下,直接将之前从数据存储器103中与数据地址信息对应的地址处读取出的数据,返回至处理器。控制器101若识别到第三tag值对应的状态标识和第四tag值对应的状态标识均为无效,则确认第三tag值和第四tag值均为无效,则从目标存储器中与目标tag值对应的地址处读取数据,并将该数据返回至处理器。
在本实施例中,在识别到目标tag值不满足第一预设条件,且第一tag值对应的状态标识和第二tag值对应的状态标识均为有效的情况下,才判断第一tag值和第二tag值中是否存在与目标tag值相同的tag值,避免了在读取出的tag值无效的情况下,还判断第一tag值和第二tag值中是否存在与目标tag值相同的tag值,并在第一tag值和第二tag值中存在与目标tag值相同的tag值的情况下,将之前从数据存储器103中与数据地址信息对应的地址处读取出的数据返回至处理器,造成数据访问过程的功耗较大的缺陷,从而降低了数据访问过程的功耗。
在一个实施例中,如图3所示,提供了一种数据处理方法,该方法可以应用于控制器中,包括以下步骤:
步骤S301,接收并解析访问指令,获得目标tag值、entry索引信息和数据地址信息。
步骤S302,在目标tag值满足第一预设条件的情况下,从寄存器中读取保存的tag值;在目标tag值与保存的tag值相同的情况下,从数据存储器中与保存的tag值对应的地址处读取数据,并反馈读取的数据。
步骤S303,在目标tag值不满足第一预设条件的情况下,根据entry索引信息读取连续的第一tag值和第二tag值,并从数据存储器中与数据地址信息对应的地址处读取数据,在第一tag值和第二tag值中存在与目标tag值相同的tag值的情况下,反馈读取的数据,将第一tag值和第二tag值中与目标tag值不同的tag值存储至寄存器中。
具体地,控制器101接收处理器发送的访问指令,并对该访问指令进行解析,得到目标tag值、entry索引信息和数据地址信息;根据目标tag值对应的十进制数,判断目标tag值是否满足第一预设条件,在目标tag值满足第一预设条件的情况下,从寄存器中读取保存的tag值,比如TAG(n+1),并判断目标tag值与保存的tag值是否相同;在目标tag值与保存的tag值相同的情况下,从数据存储器103中与保存的tag值对应的地址处读取数据,并将该数据返回至处理器。在目标tag值不满足第一预设条件的情况下,控制器101从地址存储器102中与entry索引信息对应的entry中,读取出连续的第一tag值和第二tag值,比如TAGn和TAG(n+1),同时从数据存储器103中与数据地址信息对应的地址处读取出数据。接着,控制器101判断第一tag值和第二tag值中是否存在与目标tag值相同的tag值,在第一tag值和第二tag值中存在与目标tag值相同的tag值的情况下,比如目标tag值与第一tag值相同,直接将之前从数据存储器103中与数据地址信息对应的地址处读取出的数据返回至处理器,并将第一tag值和第二tag值中与目标tag值不同的tag值存储至寄存器中,以通过寄存器暂时保存第一tag值和第二tag值中与目标tag值不同的tag值,比如第二tag值。
需要说明的是,关于上述步骤的具体限定,可以参考图1和图2的cache的相关实施例,在此不再赘述。
上述数据处理方法中,在接收到的访问指令中的目标tag值不满足第一预设条件的情况下,在根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值的同时,从数据存储器中与数据地址信息对应的地址处读取数据,有利于后续在第一tag值和第二tag值中存在与访问指令中的目标tag值相同的tag值的情况下,直接将读取的数据返回,不会造成数据读取延迟,避免了处理器的性能损失,从而提高了处理器的性能。此外,根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值,并将第一tag值和第二tag值中与目标tag值不同的tag值存储至寄存器中,使得后续在目标tag值满足第一预设条件的情况下,直接从寄存器中读取出保存的tag值,并在目标tag值与保存的tag值相同的情况下,从数据存储器中与保存的tag值对应的地址处读取数据,并返回读取的数据,无需在根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值的同时,从数据存储器中与数据地址信息对应的地址处读取数据,从而避免了在每次不清楚第一tag值和第二tag值中是否存在与目标tag值相同的tag值的情况下,都从数据存储器中与数据地址信息对应的地址处读取数据,造成数据访问过程的功耗较大的缺陷,从而实现了在降低功耗的基础上,提高处理器的性能的目的。
在一个实施例中,如图4所示,上述步骤S302,在目标tag值满足第一预设条件的情况下,从寄存器中读取保存的tag值之后,还包括如下步骤:
步骤S401,在目标tag值与保存的tag值不相同的情况下,根据entry索引信息读取连续的第三tag值和第四tag值,并从数据存储器中与数据地址信息对应的地址处读取数据。
步骤S402,在第三tag值和第四tag值中存在与目标tag值相同的tag值的情况下,反馈读取的数据,将第三tag值和第四tag值中与目标tag值不同的tag值存储至寄存器中。
在本实施例中,在目标tag值满足第一预设条件,且目标tag值与保存的tag值不相同的情况下,从与entry索引信息对应的entry中,读取出连续的第三tag值和第四tag值,同时从数据存储器中与数据地址信息对应的地址处读取数据,使得在第三tag值和第四tag值中存在与目标tag值相同的tag值的情况下,直接将之前读取出的数据返回,不会造成数据读取延迟,从而避免了处理器的性能损失,进而提高了处理器的性能。同时,在读取第三tag值的同时,读取出相连续的第四tag值,并将第三tag值和第四tag值中与目标tag值不同的tag值存储至寄存器中,使得后续在目标tag值满足第一预设条件的情况下,直接从寄存器中读取出保存的tag值,并在目标tag值与保存的tag值相同的情况下,从数据存储器中与保存的tag值对应的地址处读取数据,并反馈读取的数据,实现了数据的精准读取,避免了在不清楚读取出的连续两个tag值是否存在与目标tag值相同的tag值的情况下,都从数据存储器中与数据地址信息对应的地址处读取数据,造成数据访问过程的功耗较大的缺陷。
在一个实施例中,上述步骤S401,在根据entry索引信息读取连续的第三tag值和第四tag值,并从数据存储器中与数据地址信息对应的地址处读取数据之后,还包括如下步骤:
步骤S403,在第三tag值和第四tag值中不存在与目标tag值相同的tag值的情况下,从目标存储器中与目标tag值对应的地址处读取数据,并反馈读取的数据。
在本实施例中,在第三tag值和第四tag值中不存在与目标tag值相同的tag值的情况下,从目标存储器中与目标tag值对应的地址处读取数据,并反馈读取的数据,避免了数据存储器中没有存储与目标tag值对应的数据,则造成数据读取失败的缺陷,进而保证了数据的成功读取。
在一个实施例中,上述步骤S303,在根据entry索引信息读取连续的第一tag值和第二tag值,并从数据存储器中与数据地址信息对应的地址处读取数据之后,还包括如下内容:在第一tag值和第二tag值中不存在与目标tag值相同的tag值的情况下,从目标存储器中与目标tag值对应的地址处读取数据,并反馈读取的数据。
在本实施例中,在第一tag值和第二tag值中不存在与目标tag值相同的tag值的情况下,从目标存储器中与目标tag值对应的地址处读取数据,并反馈读取的数据,避免了数据存储器中没有存储与目标tag值对应的数据,则造成数据读取失败的缺陷,进而保证了数据的成功读取。
在一个实施例中,本申请提供的数据处理方法还包括如下内容:在目标tag值不满足第一预设条件的情况下,根据entry索引信息读取第一tag值对应的状态标识和第二tag值对应的状态标识;状态标识用于表示对应的tag值是否有效;在第一tag值对应的状态标识和第二tag值对应的状态标识均为有效的情况下,确定第一tag值和第二tag值中存在与目标tag值相同的tag值。
在本实施例中,在识别到目标tag值不满足第一预设条件,且第一tag值对应的状态标识和第二tag值对应的状态标识均为有效的情况下,才判断第一tag值和第二tag值中是否存在与目标tag值相同的tag值,避免了在读取出的tag值无效的情况下,还判断第一tag值和第二tag值中是否存在与目标tag值相同的tag值,并在第一tag值和第二tag值中存在与目标tag值相同的tag值的情况下,将之前从数据存储器103中与数据地址信息对应的地址处读取出的数据返回至处理器,造成数据访问过程的功耗较大的缺陷,从而降低了数据访问过程的功耗。
在一个实施例中,如图5所示,提供了另一种数据处理方法,该方法可以应用于数据处理系统中,包括以下步骤:
步骤S501,接收并解析访问指令,获得目标tag值、entry索引信息和数据地址信息。
需要说明的是,若目标tag值满足第一预设条件,则执行步骤S502;若目标tag值不满足第一预设条件,则执行步骤S507。
步骤S502,在目标tag值满足第一预设条件的情况下,从寄存器中读取保存的tag值。
需要说明的是,若目标tag值与保存的tag值相同,则执行步骤S503,若目标tag值与保存的tag值不相同,则执行步骤S504。
步骤S503,在目标tag值与保存的tag值相同的情况下,从数据存储器中与保存的tag值对应的地址处读取数据,并反馈读取的数据。
步骤S504,在目标tag值与保存的tag值不相同的情况下,根据entry索引信息读取连续的第三tag值和第四tag值,并从数据存储器中与数据地址信息对应的地址处读取数据。
需要说明的是,若第三tag值和第四tag值中存在与目标tag值相同的tag值,则执行步骤S505;若第三tag值和第四tag值中不存在与目标tag值相同的tag值,则执行步骤S506。
步骤S505,在第三tag值和第四tag值中存在与目标tag值相同的tag值的情况下,反馈读取的数据,将第三tag值和第四tag值中与目标tag值不同的tag值存储至寄存器中。
步骤S506,在第三tag值和第四tag值中不存在与目标tag值相同的tag值的情况下,从目标存储器中与目标tag值对应的地址处读取数据,并反馈读取的数据。
步骤S507,在目标tag值不满足第一预设条件的情况下,根据entry索引信息读取连续的第一tag值和第二tag值,并从数据存储器中与数据地址信息对应的地址处读取数据。
需要说明的是,若第一tag值和第二tag值中存在与目标tag值相同的tag值,则执行步骤S508;若第一tag值和第二tag值中不存在与目标tag值相同的tag值,则执行步骤S509。
步骤S508,在第一tag值和第二tag值中存在与目标tag值相同的tag值的情况下,反馈读取的数据,将第一tag值和第二tag值中与目标tag值不同的tag值存储至寄存器中。
步骤S509,在第一tag值和第二tag值中不存在与目标tag值相同的tag值的情况下,从目标存储器中与目标tag值对应的地址处读取数据,并反馈读取的数据。
上述数据处理方法中,在接收到的访问指令中的目标tag值不满足第一预设条件的情况下,在根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值的同时,从数据存储器中与数据地址信息对应的地址处读取数据,有利于后续在第一tag值和第二tag值中存在与访问指令中的目标tag值相同的tag值的情况下,直接将读取的数据返回,不会造成数据读取延迟,避免了处理器的性能损失,从而提高了处理器的性能。此外,根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值,并将第一tag值和第二tag值中与目标tag值不同的tag值存储至寄存器中,使得后续在目标tag值满足第一预设条件的情况下,直接从寄存器中读取出保存的tag值,并在目标tag值与保存的tag值相同的情况下,从数据存储器中与保存的tag值对应的地址处读取数据,并返回读取的数据,无需在根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值的同时,从数据存储器中与数据地址信息对应的地址处读取数据,从而避免了在每次不清楚第一tag值和第二tag值中是否存在与目标tag值相同的tag值的情况下,都从数据存储器中与数据地址信息对应的地址处读取数据,造成数据访问过程的功耗较大的缺陷,从而实现了在降低功耗的基础上,提高处理器的性能的目的。
在一个实施例中,为了更清晰阐明本申请实施例提供的数据处理方法,以下以一个具体的实施例对该数据处理方法进行具体说明。在一个实施例中,参考图2,对TAGmemory进行了重构,每一个entry(条目)包含了连续两个cacheline(缓存行)的tag值,在读取第n个cacheline的tag值时,第n+1个cacheline的tag值也被一并读取出来,并存放于register buffer(寄存器)中,以通过register buffer暂时保存第n+1(奇数)个cacheline的tag值。在CPU(处理器)访问第n+1个cacheline时,可以直接从register buffer中读取出第n+1个cacheline的tag值,并将数据读取请求中的目标tag值与第n+1个cacheline的tag值进行比较;如果hit,即数据读取请求中的目标tag值与第n+1个cacheline的tag值相同,说明CPU要访问的数据在cache中有缓存,则直接从数据存储器中读取出与保存的tag值相对应的数据,并将该数据返回至CPU;因此不需要执行对数据存储器的投机读取行为,从而有效减少了约50%的数据投机读取行为,从而降低了功耗。而且,针对访问的cacheline的tag值是n(偶数)还是n+1(奇数),选择不同的处理流程;如果是n,则直接从地址存储器中读取tag值并进行hit/miss判定;如果是n+1,则先读取register buffer中保存的tag值,并进行hit/miss判定。
图6提供了一种基于改进后的cache的数据处理方法的流程示意图。参考图6,cache中的控制器先接收CPU发送的数据读取请求,并对数据读取请求进行解析,得到目标tag值、entry索引信息和数据地址信息;对目标tag值进行判断,在目标tag值对应的十进制数为n+1(奇数)的情况下,从register buffer中读取出保存的tag值;如果Hit,即目标tag值与register buffer中保存的tag值相同,则从数据存储器中读取出与register buffer中保存的tag值对应的数据,并将该数据返回至CPU。如果Miss,即目标tag值与registerbuffer中保存的tag值不相同,则从entry索引信息对应的entry中,读取出连续两个缓存行的tag值,即TAGn和TAG(n+1),并将TAG(n+1)存储至register buffer中,同时对数据存储器进行投机读取,即从数据存储器中与数据地址信息对应的地址处,读取出与TAGn对应的数据;如果Hit,即目标tag值与TAGn相同,说明CPU要访问的数据在cache中有缓存,则直接将之前读取出的与TAGn对应的数据返回至CPU;如果Miss,即目标tag值与TAGn不相同,说明CPU要访问的数据在cache中没有缓存,则从下级memory(比如DDR)中读取出与目标tag值对应的数据,并将该数据返回至CPU。
进一步地,在目标tag值对应的十进制数为n(偶数)的情况下,控制器从entry索引信息对应的entry中,读取出连续两个缓存行的tag值,即TAGn和TAG(n+1),并将TAG(n+1)存储至register buffer中,同时执行数据投机读取行为,即从数据存储器中与数据地址信息对应的地址处,读取出与TAGn对应的数据;如果Hit,即目标tag值与TAGn相同,说明CPU要访问的数据在cache中有缓存,则直接将之前读取出的与TAGn对应的数据返回至CPU;如果Miss,即目标tag值与TAGn不相同,说明CPU要访问的数据在cache中没有缓存,则从下级memory(比如DDR)中读取出与目标tag值对应的数据,并将该数据返回至CPU。
上述数据处理方法,通过在读取tag值的同时,对数据进行投机读取,使得在Hit的情况下,直接将之前读取出的数据返回至CPU,提高了处理器的性能;同时,在CPU访问第n+1个cacheline时,可以直接从register buffer中读取出第n+1个cacheline的tag值,如果hit,则直接从数据存储器中读取出相对应的数据,并将该数据返回至CPU,能够有效减少约50%的数据投机读取行为,从而降低了功耗,进而实现了在降低功耗的基础上,提高处理器的性能。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,本申请还提供了一种数据处理系统,包括:处理器20和cache 10;处理器20,用于将访问指令发送至cache 10;处理器20,还用于接收cache 10基于访问指令返回的数据。
其中,cache 10可以是指图1或者图2中的cache。
具体地,参考图7,处理器20将访问指令发送至cache 10;cache 10根据接收到的访问指令,进行一系列处理,得到对应的数据,并将该数据返回至处理器20。
上述数据处理系统中,在目标tag值不满足第一预设条件的情况下,在根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值的同时,从数据存储器中与数据地址信息对应的地址处读取数据,有利于后续在第一tag值和第二tag值中存在与访问指令中的目标tag值相同的tag值的情况下,直接将读取的数据返回,不会造成数据读取延迟,避免了处理器的性能损失,从而提高了处理器的性能。此外,根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值,并将第一tag值和第二tag值中与目标tag值不同的tag值存储至寄存器中,使得后续在目标tag值满足第一预设条件的情况下,直接从寄存器中读取出保存的tag值,并在目标tag值与保存的tag值相同的情况下,从数据存储器中与保存的tag值对应的地址处读取数据,并返回读取的数据,无需在根据entry索引信息从地址存储器中读取连续的第一tag值和第二tag值的同时,从数据存储器中与数据地址信息对应的地址处读取数据,从而避免了在每次不清楚第一tag值和第二tag值中是否存在与目标tag值相同的tag值的情况下,都从数据存储器中与数据地址信息对应的地址处读取数据,造成数据访问过程的功耗较大的缺陷,从而实现了在降低功耗的基础上,提高处理器的性能的目的。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储地址、数据等信息。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (14)
1.一种cache,其特征在于,所述cache包括:控制器、地址存储器和数据存储器,所述地址存储器包括寄存器和至少一个way,所述way包括多个entry,每个entry存储有连续两个缓存行的tag值;
所述控制器,用于接收并解析访问指令,获得目标tag值、entry索引信息和数据地址信息,在所述目标tag值满足第一预设条件的情况下,从所述寄存器中读取保存的tag值;在所述目标tag值与所述保存的tag值相同的情况下,从所述数据存储器中与所述保存的tag值对应的地址处读取数据,并反馈读取的数据;在所述目标tag值不满足所述第一预设条件的情况下,根据所述entry索引信息读取连续的第一tag值和第二tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据,在所述第一tag值和所述第二tag值中存在与所述目标tag值相同的tag值的情况下,反馈读取的数据,将所述第一tag值和所述第二tag值中与所述目标tag值不同的tag值存储至所述寄存器中。
2.根据权利要求1所述的cache,其特征在于,所述控制器,还用于在所述目标tag值与所述保存的tag值不相同的情况下,根据所述entry索引信息读取连续的第三tag值和第四tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据,在所述第三tag值和所述第四tag值中存在与所述目标tag值相同的tag值的情况下,反馈读取的数据,将所述第三tag值和所述第四tag值中与所述目标tag值不同的tag值存储至所述寄存器中。
3.根据权利要求2所述的cache,其特征在于,所述控制器,还用于在所述第三tag值和所述第四tag值中不存在与所述目标tag值相同的tag值的情况下,从目标存储器中与所述目标tag值对应的地址处读取数据,并反馈读取的数据。
4.根据权利要求1所述的cache,其特征在于,所述控制器,还用于在所述第一tag值和所述第二tag值中不存在与所述目标tag值相同的tag值的情况下,从目标存储器中与所述目标tag值对应的地址处读取数据,并反馈读取的数据。
5.根据权利要求1所述的cache,其特征在于,每个entry还存储有tag值对应的状态标识;所述状态标识用于表示对应的tag值是否有效;
所述控制器,还用于在所述目标tag值不满足所述第一预设条件的情况下,根据所述entry索引信息读取所述第一tag值对应的状态标识和所述第二tag值对应的状态标识,在所述第一tag值对应的状态标识和所述第二tag值对应的状态标识均为有效的情况下,确定所述第一tag值和所述第二tag值中存在与所述目标tag值相同的tag值。
6.一种数据处理系统,其特征在于,包括:处理器和权利要求1至5中任一项所述的cache;
所述处理器,用于将访问指令发送至所述cache;
所述处理器,还用于接收所述cache基于所述访问指令返回的数据。
7.一种数据处理方法,其特征在于,所述方法包括:
接收并解析访问指令,获得目标tag值、entry索引信息和数据地址信息;
在所述目标tag值满足第一预设条件的情况下,从所述寄存器中读取保存的tag值;在所述目标tag值与所述保存的tag值相同的情况下,从所述数据存储器中与所述保存的tag值对应的地址处读取数据,并反馈读取的数据;
在所述目标tag值不满足所述第一预设条件的情况下,根据所述entry索引信息读取连续的第一tag值和第二tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据,在所述第一tag值和所述第二tag值中存在与所述目标tag值相同的tag值的情况下,反馈读取的数据,将所述第一tag值和所述第二tag值中与所述目标tag值不同的tag值存储至所述寄存器中。
8.根据权利要求7所述的方法,其特征在于,在所述目标tag值满足第一预设条件的情况下,从所述寄存器中读取保存的tag值之后,还包括:
在所述目标tag值与所述保存的tag值不相同的情况下,根据所述entry索引信息读取连续的第三tag值和第四tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据;
在所述第三tag值和所述第四tag值中存在与所述目标tag值相同的tag值的情况下,反馈读取的数据,将所述第三tag值和所述第四tag值中与所述目标tag值不同的tag值存储至所述寄存器中。
9.根据权利要求8所述的方法,其特征在于,在根据所述entry索引信息读取连续的第三tag值和第四tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据之后,还包括:
在所述第三tag值和所述第四tag值中不存在与所述目标tag值相同的tag值的情况下,从目标存储器中与所述目标tag值对应的地址处读取数据,并反馈读取的数据。
10.根据权利要求7所述的方法,其特征在于,在根据所述entry索引信息读取连续的第一tag值和第二tag值,并从所述数据存储器中与所述数据地址信息对应的地址处读取数据之后,还包括:
在所述第一tag值和所述第二tag值中不存在与所述目标tag值相同的tag值的情况下,从目标存储器中与所述目标tag值对应的地址处读取数据,并反馈读取的数据。
11.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述目标tag值不满足所述第一预设条件的情况下,根据所述entry索引信息读取所述第一tag值对应的状态标识和所述第二tag值对应的状态标识;所述状态标识用于表示对应的tag值是否有效;
在所述第一tag值对应的状态标识和所述第二tag值对应的状态标识均为有效的情况下,确定所述第一tag值和所述第二tag值中存在与所述目标tag值相同的tag值。
12.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求7至11中任一项所述的方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求7至11中任一项所述的方法的步骤。
14.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求7至11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211206160.2A CN115509956A (zh) | 2022-09-30 | 2022-09-30 | cache、数据处理系统、方法、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211206160.2A CN115509956A (zh) | 2022-09-30 | 2022-09-30 | cache、数据处理系统、方法、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115509956A true CN115509956A (zh) | 2022-12-23 |
Family
ID=84509255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211206160.2A Pending CN115509956A (zh) | 2022-09-30 | 2022-09-30 | cache、数据处理系统、方法、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115509956A (zh) |
-
2022
- 2022-09-30 CN CN202211206160.2A patent/CN115509956A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237728B2 (en) | Method for accessing extended memory, device, and system | |
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
CN107025130B (zh) | 处理节点、计算机系统及事务冲突检测方法 | |
WO2017041570A1 (zh) | 向缓存写入数据的方法及装置 | |
CN105677580A (zh) | 访问缓存的方法和装置 | |
US10901640B2 (en) | Memory access system and method | |
CN109933543B (zh) | Cache的数据锁定方法、装置和计算机设备 | |
US11487473B2 (en) | Memory system | |
CN113961483A (zh) | 高速缓存存储器和使用高速缓存存储器的方法 | |
US11288012B2 (en) | Memory system | |
CN110910249B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
KR102680596B1 (ko) | 캐시 엔트리 전송을 위한 캐시 위치 정보를 저장하기 위한 시스템 및 방법 | |
US20170199819A1 (en) | Cache Directory Processing Method for Multi-Core Processor System, and Directory Controller | |
CN112368676A (zh) | 处理数据的方法和设备 | |
JP4113524B2 (ja) | キャッシュ・メモリ・システムとその制御方法 | |
CN116701246B (zh) | 一种提升缓存带宽的方法、装置、设备及存储介质 | |
US5895496A (en) | System for an method of efficiently controlling memory accesses in a multiprocessor computer system | |
CN107783909B (zh) | 一种内存地址总线扩展方法及装置 | |
CN108519860B (zh) | 一种ssd读命中的处理方法和装置 | |
CN115509956A (zh) | cache、数据处理系统、方法、计算机设备和存储介质 | |
CN115509611A (zh) | 基于精简指令集的指令获取方法、装置及计算机设备 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
KR100737741B1 (ko) | 다차원 데이터 선인출 캐쉬를 이용한 메모리 장치 및 그제어 방법 | |
KR101939361B1 (ko) | 비휘발성 메모리를 이용한 로깅 방법 | |
US6996675B2 (en) | Retrieval of all tag entries of cache locations for memory address and determining ECC based on same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |