CN103870204A - 一种cache中数据写入和读取方法、cache控制器 - Google Patents
一种cache中数据写入和读取方法、cache控制器 Download PDFInfo
- Publication number
- CN103870204A CN103870204A CN201210531583.1A CN201210531583A CN103870204A CN 103870204 A CN103870204 A CN 103870204A CN 201210531583 A CN201210531583 A CN 201210531583A CN 103870204 A CN103870204 A CN 103870204A
- Authority
- CN
- China
- Prior art keywords
- data
- cacheline
- cache
- written
- address
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明实施例公开了一种cache中数据写入和读取方法、cache控制器。本发明实施例方法包括:接收处理器发送的数据写入请求和待写入数据,数据写入请求中包含高速缓存块的地址;读取用于缓存待写入数据的高速缓存块中的第一数据;根据高速缓存块的地址将待写入数据替换第一数据中的部分或者全部数据,得到第二数据;检测第二数据是否为零;若第二数据为零,则将用于缓存待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入,能够有效的避免将第二数据写入所带来的功耗及所消耗的时间。
Description
技术领域
本发明涉及存储器领域,尤其涉及一种高速缓冲存储器(英文全称为:cache)中数据写入和读取方法、cache控制器。
背景技术
处理器处理数据的速度非常快,而内存的存取时间是处理器时钟周期的数百倍,为了缩小处理器和内存之间的速度不匹配,可在系统中增加cache,cache是存在于内存与处理器之间的一级存储器,容量较小但速度比内存高得多,接近于处理器的处理数据的速度,cache中可以保存内存中数据的子集,使得处理器从cache中读取数据或者将数据写入cache,提高数据处理速度。
目前,实验研究表明,cache作为内存中所保存的数据的缓存时,处理器读取的数据中有90%以上是从cache中读取的,且cache中存储的数据中有大约30%的数据为零数据,而零数据的读取和写入将消耗大量的功耗且浪费时间,其中,零数据是指cache中的高速缓存块中的缓存的数据为零。
发明内容
本发明实施例提供了一种cache中数据写入和读取方法、cache控制器,用于在写入的数据为零时,通过设置零数据标识位为真以完成数据写入,且用于在数据读取时,若待读取数据的高速缓存块(英文全称为:cache line)中的零数据标识位为真,则向处理器返回零,利用零数据标识位降低功耗,且缩短数据写入及读取的时间。
本发明一方面提供了一种高速缓存存储器cache中数据写入方法,包括:
接收处理器发送的数据写入请求和待写入数据,所述数据写入请求中包含高速缓存块的地址;
读取用于缓存所述待写入数据的高速缓存块中的第一数据;
根据所述高速缓存块的地址将所述待写入数据替换所述第一数据中的部分或者全部数据,得到第二数据;
检测所述第二数据是否为零;
若所述第二数据为零,则将所述用于缓存所述待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入。
在第一种可能的实现方式中,数据写入方法还包括:利用所述高速缓存块的地址确定所述用于缓存所述待写入数据的高速缓存块。
结合第一方面或者第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述高速缓存块的地址包括高速缓存索引值及高速缓存标识位,则在第二种可能的实现方式中,所述利用所述高速缓存块的地址确定用于缓存所述待写入数据的高速缓存块包括:利用所述高速缓存索引值查找cache,得到与所述高速缓存索引值对应的至少一个高速缓存块;从所述至少一个高速缓存块中选择高速缓存块作为所述用于缓存所述待写入数据的高速缓存块,所述选择的高速缓存块的高速缓存标识位与所述高速缓存块的地址中的所述高速缓存标识位相同。
结合第一方面第二种可能的实现方式,在第三种可能的实现方式中,所述高速缓存块的地址还包括偏移量,则在第三种可能的实现方式中,所述根据所述高速缓存块的地址将所述待写入数据替换所述第一数据中的部分或者全部数据,得到第二数据包括:按照所述偏移量将所述待写入数据替换所述第一数据中的部分或者全部数据,得到第二数据。
本发明第二方面提供了一种高速缓存存储器cache中数据读取方法,可包括:
接收处理器发送的数据读取请求,所述数据读取请求中包含高速缓存块的地址;
根据所述高速缓存块的地址确定待读取数据的高速缓存块;
若所述待读取数据的高速缓存块的零数据标识位为真,则向所述处理器返回零,以完成数据读取。
在第二方面第一种可能的实现方式中,所述高速缓存块的地址包括高速缓存索引值及高速缓存标识位;
则所述根据所述高速缓存块的地址确定待读取数据的高速缓存块包括:
利用所述高速缓存索引值查找cache,得到与所述高速缓存索引值对应的至少一个高速缓存块;
从所述至少一个高速缓存块中选择高速缓存块作为所述用于缓存所述待写入数据的高速缓存块,所述选择的高速缓存块的高速缓存标识位与所述高速缓存块的地址中的所述高速缓存标识位相同。
本发明第三方面提供了一种高速缓存存储器cache控制器,可包括:
接收单元,用于接收处理器发送的数据写入请求和待写入数据,所述数据写入请求中包含高速缓存块的地址;
读取单元,用于在所述接收单元接收所述数据写入请求和待写入数据之后,读取用于缓存所述待写入数据的高速缓存块中的第一数据;
替换单元,用于在所述读取单元读取第一数据之后,根据所述高速缓存块的地址将所述待写入数据替换所述第一数据中的部分或者全部数据,得到第二数据;
检测单元,用于在所述替换单元得到所述第二数据之后,检测所述第二数据是否为零;
设置单元,用于在所述检测单元确定所述第二数据为零时,将用于缓存所述待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入。
在第三方面第一种可能的实现方式中,cache控制器还包括:
确定单元,用于在所述接收单元接收到所述数据写入请求和待写入数据之后,利用所述高速缓存块的地址确定所述用于缓存所述待写入数据的高速缓存块。
结合第三方面或者第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述高速缓存块的地址包括高速缓存索引值及高速缓存标识位,则在第二种可能的实现方式中,所述确定单元包括:
查找单元,用于在所述接收单元接收到所述数据写入请求和待写入数据之后,利用所述高速缓存索引值查找cache,得到与所述高速缓存索引值对应的至少一个高速缓存块;
缓存块选择单元,用于在所述查找单元得到所述至少一个高速缓存块之后,从所述至少一个高速缓存块中选择高速缓存块作为所述用于缓存所述待写入数据的高速缓存块,所述选择的高速缓存块的高速缓存标识位与所述高速缓存块的地址中的所述高速缓存标识位相同。
本发明第四方面提供了一种高速缓存存储器cache控制器,可包括:
请求接收单元,用于接收处理器发送的数据读取请求,所述数据读取请求中包含高速缓存块的地址;
高速缓存块确定单元,用于在所述请求接收单元接收所述数据读取请求之后,根据所述高速缓存块的地址确定待读取数据的高速缓存块;
发送单元,用于在所述高速缓存块确定单元确定所述待读取数据的高速缓存块之后,若所述待读取数据的高速缓存块的零数据标识位为真,则向所述处理器返回零,以完成数据读取。
在第四方面第一种可能的实现方式中,所述高速缓存块确定单元包括:
缓存块查找单元,用于在所述请求接收单元接收到所述数据读取请求之后,利用所述高速缓存索引值查找cache,得到与所述高速缓存索引值对应的至少一个;
选择单元,用于在所述缓存块查找单元得到所述至少一个高速缓存块之后,从所述至少一个高速缓存块中选择高速缓存块作为所述用于缓存所述待写入数据的高速缓存块,所述选择的高速缓存块的高速缓存标识位与所述高速缓存块的地址中的所述高速缓存标识位相同。
从以上技术方案可以看出,本发明实施例具有以下优点:
cache控制器在接收到处理器发送的数据写入请求和待写入数据之后,该数据写入请求中包含高速缓存块的地址,将读取用于缓存该待写入数据的高速缓存块中的第一数据,并根据高速缓存块的地址将待写入数据替换第一数据中的数据,得到第二数据,检测该第二数据是否为零,若是,则将用于缓存该待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入,能够有效的避免将第二数据写入所带来的功耗及所消耗的时间,此外,cache控制器在接收到处理器发送的数据读取请求之后,将利用该数据读取请求中包含的高速缓存块的地址确定对应的高速缓存块,且在该确定的高速缓存块的零数据标识位为真时,向处理器返回零,以完成数据读取,能够有效的降低数据读取的功耗及缩短数据读取的时间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种cache中数据写入方法实施例的一个示意图;
图2为本发明实施例中一种cache中数据写入方法实施例的另一示意图;
图3为本发明实施例中一种cache中数据读取方法实施例的一个示意图;
图4为本发明实施例中cache控制器的结构的一个示意图;
图5为本发明实施例中cache控制器的结构的另一示意图;
图6为本发明实施例中cache控制器的结构的另一示意图;
图7为本发明实施例中cache控制器的结构的另一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种cache中数据写入和读取方法、cache控制器,用于在读取或者写入的数据为零时,降低数据读取或者数据写入带来的功耗及缩短数据读取或者数据写入的时间。
请参阅图1,为本发明实施例中一种cache数据写入方法的实施例,包括:
101、接收处理器发送的数据写入请求和待写入数据,数据写入请求中包含高速缓存块的地址;
在本发明实施例中,处理器可向cache发送请求,cache中的cache控制器可接收该请求,并执行相应的操作。
在本发明实施例中,cache控制器可接收处理器发送的数据写入请求及待写入的数据,该数据写入请求中包含高速缓存块的地址。
102、读取用于缓存待写入数据的高速缓存块中的第一数据;
在本发明实施例中,cache控制器接收到数据写入请求和待写入数据之后,可从用于缓存待写入数据的高速缓存块中读取第一数据,其中,该第一数据包含了用于缓存待写入数据的高速缓存块中的所有已缓存的数据。
103、根据数据缓存块的地址将待写入数据替换第一数据中的数据,得到第二数据;
在本发明实施例中,数据缓存块的地址中包含偏移量,cache控制器可根据数据缓存块的地址中的偏移量确定待写入数据的起始位置,并从该起始位置开始,将待写入数据替换第一数据中的部分或者全部数据,得到第二数据。
在本发明实施例中,待写入数据所替换的数据的长度与待写入数据的长度相同,例如:待写入数据的长度为10bit,用于缓存待写入数据的缓存数据块有64位,缓存了64bit的第一数据,当偏移量为4时,则从第一数据的第4个bit位的数据开始替换,即将待写入的10bit长度的数据替换第一数据中的第4个bit至第13个bit的数据,替换之后即得到第二数据。
104、检测第二数据是否为零;
在本发明实施例中,cache控制器得到第二数据之后,将检测第二数据是否为零,且cache控制器将按照检测结果执行相应的操作。
105、若第二数据为零,则将用于缓存待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入。
在本发明实施例中,若cache控制器检测到第二数据为零,cache控制器将用于缓存待写入数据的高速缓存块的零数据标识位设置为真,以标识该高速缓存块中缓存的数据为零,完成数据写入,而不用将第二数据写入用于缓存待写入数据的高速缓存块中,节约数据写入所消耗的功耗及时间。
需要说明的是,在本发明实施例中,若第二数据不为零,则cache控制器将第二数据写入用于缓存待写入数据的高速缓存块中,且将该待写入数据的高速缓存块的零数据标识位设置为假,以标识该缓冲数据块中缓存的数据为非真。
需要说明的是,在本发明实施例中,第一数据中的“第一”,与第二数据中的“第二”仅用于区别数据,而不做其他的限定。
在本发明实施例中,若cache控制器检测到第二数据为零,则将用于缓存该待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入,其中,零数据标识位用于标识高速缓存块缓存的数据是否为零,若零数据标识位为真,例如:零数据标识位的值为1,则说明对应的高速缓存块缓存的数据均为零,若零数据标识位为假,例如:零数据标识位为0,则说明对应的高速缓存块缓存的数据不为零。
在本发明实施例中,cache控制器在接收到数据写入请求和待写入数据后,可读取用于缓存待写入数据的高速缓存块中的第一数据,并根据数据写入请求中的高速缓存块的地址将待写入数据替换第一数据中的部分或者全部数据,得到第二数据,检测第二数据是否为零,若第二数据为零,则cache控制器将用于缓存待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入,由于不需要向用于缓存待写入数据的高速缓存块中写入第二数据就可以完成数据写入,能够有效的降低数据写入的功耗及缩短数据写入所消耗的时间。
为了更好的理解本发明实施例中的cache中数据写入方法的技术方案,请参阅图2,为本发明实施例中cache中数据写入方法的实施例,包括:
201、接收处理器发送的数据写入请求和待写入数据,数据写入请求中包含高速缓存块的地址,其中高速缓存块的地址包括高速缓存索引值、高速缓存标识位及cache偏移量;
在本发明实施例中,若处理器需要将待写入数据写入cache中,可向cache发送数据写入请求和待写入数据,该数据写入请求中包含高速缓存块的地址,且该高速缓存块的地址可用于确定用于缓存待写入数据的高速缓存块及数据写入的偏移量,具体的,高速缓存块的地址包括高速缓存索引值(英文全称为:cache index)、高速缓存标识位(英文全称为:cache tag)及偏移量(英文全称为:offset),其中,高速缓存索引值可用于确定高速缓存块在cache中的位置,高速缓存标识位可用于进一步确定利用高速缓存索引值查找到的高速缓存块是否可用于缓存待写入数据,偏移量则用于确定进行数据读取或者写入的开始位置。
在本发明实施例中,cache控制器可接收到处理器发送的数据写入请求及待写入数据。
202、利用高速缓存索引值查找cache,得到与高速缓存索引值对应的至少一个高速缓存块;
在本发明实施例中,cache中的缓存空间划分为多个高速缓存块,每个高速缓存块都分配了高速缓存索引值及高速缓存标识位,cache控制器在接收到处理器发送的数据写入请求和待写入数据之后,由于数据写入请求中的高速缓存块的地址中包含高速缓存索引值,因此,cache控制器将利用该高速缓存索引值查找cache,得到与高速缓存索引值对应的至少一个高速缓存块。
203、从至少一个高速缓存块中选择高速缓存块作为用于缓存待写入数据的高速缓存块,选择的高速缓存块的高速缓存标识位与高速缓存块的地址中的高速缓存标识位相同;
在本发明实施例中,cache控制器在查找到与高速缓存索引值对应的至少一个高速缓存块之后,还将进一步利用高速缓存块的地址中的高速缓存标识位确定该至少一个高速缓存块中是否有用于缓存待写入数据的高速缓存块,cache控制器将按照数据写入请求中的高速缓存块的地址中的高速缓存标识位从该至少一个高速缓存块中选择高速缓存块,且该选择的高速缓存块的高速缓存标识位于高速缓存块的地址中的高速缓存标识位相同。
在本发明实施例中,若该至少一个高速缓存块中不存在高速缓存标识位与高速缓存块地址中的高速缓存标识位相同的高速缓存块,cache控制器将向处理器返回写入失败消息,以通知处理器未完成数据的写入,使得处理器可重新发送数据写入请求及待写入数据。
204、读取用于缓存待写入数据的高速缓存块中的第一数据;
在本发明实施例中,cache控制器接收到数据写入请求和待写入数据之后,将根据请求中的高速缓存块的地址确定用于缓存待写入数据的高速缓存块,并将从用于缓存待写入数据的高速缓存块中读取第一数据,其中,该第一数据包含了用于缓存待写入数据的高速缓存块中的所有已缓存的数据。
205、按照偏移量将待写入数据替换第一数据中的部分或者全部数据,得到第二数据;
在本发明实施例中,高速缓存块的地址中包含偏移量,cache控制器可按照该偏移量将待写入数据替换第一数据中的部分或者全部数据,得到第二数据。
在本发明实施例中,待写入数据所替换的数据的长度与待写入数据的长度相同,例如:待写入数据的长度为10bit,用于缓存待写入数据的缓存数据块有64位,缓存了64bit的第一数据,当偏移量为4时,则从第一数据的第4个bit位的数据开始替换,即将待写入的10bit长度的数据替换第一数据中的第4个bit至第13个bit的数据,替换之后即得到第二数据。
206、检测第二数据是否为零,若是,则执行步骤207,若否,则执行步骤208;
在本发明实施例中,cache控制器在得到第二数据之后,将检测第二数据是否为零,以确定是否需要将第二数据写入用于缓存待写入数据的高速缓存块中。
需要说明的是,在本发明实施例中,执行检测第二数据是否为零的模块可以通过软件方式实现,也可以通过增加物理实体的方式实现,此处不做限定。
207、将用于缓存待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入;
在本发明实施例中,若待写入的数据为零,则将用于缓存待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入,而不需要将第二数据写入用于缓存待写入数据的高速缓存块中,能够有效节约功耗,缩短数据写入时间。
208、将第二数据写入用于缓存待写入数据的高速缓存块中。
在本发明实施例中,若待写入的数据不为零,则cache控制器将第二数据写入用于缓存待写入数据的高速缓存块中,此外,cache控制器还将该用于缓存待写入数据的高速缓存块的零数据标识位设置为假。
在本发明实施例中,通过利用数据写入请求中的高速缓存块的地址确定用于缓存待写入数据的高速缓存块,并读取该高速缓存块中的第一数据,且利用待写入数据替换第一数据中的部分或者全部数据,得到第二数据,在第二数据为零时,将用于缓存待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入,而不需要将第二数据写入用于缓存待写入数据的高速缓存块中,能够有效的降低数据写入的功耗及缩短数据写入消耗的时间。
图1及图2的实施例中描述了cache中数据写入方法的技术方案,下面将详细描述cache中数据读取方法的实施例,请参阅图3,包括:
301、接收处理器发送的数据读取请求,数据读取请求中包含高速缓存块的地址;
在本发明实施例中,若处理器需要从cache中读取数据,可向cache发送数据读取请求,cache中的cache控制器将接收该数据读取请求,其中,数据读取请求中包含高速缓存块的地址。
302、根据高速缓存块的地址确定待读取数据的高速缓存块;
在本发明实施例中,cache控制器在接收到数据读取请求之后,将根据数据读取请求中的高速缓存块的地址确定待读取数据的高速缓存块。
在本发明实施例中,高速缓存块的地址中包含高速缓存索引值、高速缓存标识位及cache偏移量,其中,高速缓存索引值可用于确定高速缓存块在cache中的位置,高速缓存标识位可用于进一步确定利用高速缓存索引值查找到的高速缓存块是否可用于缓存待写入数据或者是否是从该高速缓存块读取数据,cache偏移量则用于标识数据读取或者数据写入的起始位置,因此,cache控制器确定待写入数据的高速缓存块具体包括:利用高速缓存索引值查找cache,得到与高速缓存索引值对应的至少一个高速缓存块;并且将从该至少一个高速缓存块中选择高速缓存块作为用于缓存所述待写入数据的高速缓存块,且选择的高速缓存块的高速缓存标识位与高速缓存块的地址中的高速缓存标识位相同。
303、若待读取数据的高速缓存块的零数据标识位为真,则向处理器返回零,以完成数据读取。
在本发明实施例中,cache控制器在确定与高速缓存块的地址对应的高速缓存块之后,将检查该高速缓存块中零数据标识位,若该高速缓存块的零数据标识位为真,则说明该高速缓存块缓存的数据为零,则cache控制器向处理器返回零,以完成数据读取,而不需要从该高速缓存块中读取数据。若该高速缓存块的零数据标识位为假,则说明该高速缓存块中缓存的数据不为零,则cache控制器将读取该高速缓存块中的所有数据,并按照高速缓存块地址的偏移量获取所需要的数据,并获取的数据返回给处理器,以完成数据读取。
在本发明实施例中,在读取数据时,若cache控制器检测到与待读取数据的高速缓存块的零数据标识位为真,则向处理器返回零,以完成数据读取,而不需要从高速缓存块中读取数据,能够有效的降低数据读取的功耗及缩短数据读取的时间。
请参阅图4,为本发明实施例中cache控制器的结构的实施例,包括:
接收单元401,用于接收处理器发送的数据写入请求和待写入数据,所述数据写入请求中包含高速缓存块的地址;
读取单元402,用于在接收单元401接收数据写入请求和待写入数据之后,读取用于缓存待写入数据的高速缓存块中的第一数据;
替换单元403,用于在读取单元402读取第一数据之后,根据高速缓存块的地址将待写入数据替换第一数据中的部分或者全部数据,得到第二数据;
检测单元404,用于在替换单元403得到第二数据之后,检测第二数据是否为零;
设置单元405,用于在检测单元404确定第二数据为零时,将用于缓存待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入。
在本发明实施例中,接收单元401接收处理器发送的数据写入请求和待写入数据,所述数据写入请求中包含高速缓存块的地址;接着读取单元402读取用于缓存待写入数据的高速缓存块中的第一数据;并由替换单元403根据高速缓存块的地址将待写入数据替换第一数据中的部分或者全部数据,得到第二数据;接着,检测单元404检测第二数据是否为零;在检测单元404确定第二数据为零时,设置单元405将用于缓存待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入。
需要说明的是,在本发明实施例中,第一数据中的“第一”,与第二数据中的“第二”仅用于区别数据,而不做其他的限定。
在本发明实施例中,cache控制器在接收到数据写入请求和待写入数据后,可读取用于缓存待写入数据的高速缓存块中的第一数据,并根据数据写入请求中的高速缓存块的地址将待写入数据替换第一数据中的部分或者全部数据,得到第二数据,检测第二数据是否为零,若第二数据为零,则cache控制器将用于缓存待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入,由于不需要向用于缓存待写入数据的高速缓存块中写入第二数据就可以完成数据写入,能够有效的降低数据写入的功耗及缩短数据写入所消耗的时间。
为了更好的理解本发明实施例中的cache控制器,请参阅图5,为本发明实施例中cache控制器的结构的实施例,包括:
如图4所示实施例中描述的接收单元401,读取单元402,替换单元403,检测单元404,设置单元405,且与图4所示实施例中描述的内容相似,此处不再赘述。
在本发明实施例中,cache控制器还包括:
确定单元501,用于在接收单元接收到数据写入请求和待写入数据之后,利用高速缓存块的地址确定用于缓存待写入数据的高速缓存块。
在本发明实施例中,高速缓存块的地址包括高速缓存索引值及高速缓存标识位;其中,高速缓存索引值可用于确定高速缓存块在cache中的位置,高速缓存标识位可用于进一步确定利用高速缓存索引值查找到的高速缓存块是否可用于缓存待写入数据。
则确定单元501包括:
查找单元502,用于在接收单元401接收到数据写入请求和待写入数据之后,利用高速缓存索引值查找cache,得到与高速缓存索引值对应的至少一个高速缓存块;
缓存块选择单元503,用于在查找单元502得到至少一个高速缓存块之后,从至少一个高速缓存块中选择高速缓存块作为用于缓存待写入数据的高速缓存块,选择的高速缓存块的高速缓存标识位与所述高速缓存块的地址中的所述高速缓存标识位相同;
在本发明实施例中,接收单元401接收处理器发送的数据写入请求和待写入数据,所述数据写入请求中包含高速缓存块的地址;接着,确定单元501利用高速缓存块的地址确定用于缓存待写入数据的高速缓存块,具体包括:确定单元501中的查找单元502利用高速缓存索引值查找cache,得到至少一个与高速缓存索引值对应的高速缓存块;接着,缓存块选择单元503从至少一个高速缓存块中选择高速缓存块作为用于缓存所述待写入数据的高速缓存块,且选择的高速缓存块的高速缓存标识位与所述高速缓存块的地址中的所述高速缓存标识位相同,确定单元501确定用于缓存待写入数据的高速缓存块之后,读取单元402读取用于缓存待写入数据的高速缓存块中的第一数据;并由替换单元403根据高速缓存块的地址将待写入数据替换第一数据中的部分或者全部数据,得到第二数据;接着,检测单元404检测第二数据是否为零;在检测单元404确定第二数据为零时,设置单元405将用于缓存待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入。
在本发明实施例中,通过利用数据写入请求中的高速缓存块的地址确定用于缓存待写入数据的高速缓存块,并读取该高速缓存块中的第一数据,且利用待写入数据替换第一数据中的部分或者全部数据,得到第二数据,在第二数据为零时,将用于缓存待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入,而不需要将第二数据写入用于缓存待写入数据的高速缓存块中,能够有效的降低数据写入的功耗及缩短数据写入消耗的时间。
请参阅图6,为本发明实施例中cache控制器的结构的实施例,包括:
请求接收单元601,用于接收处理器发送的数据读取请求,数据读取请求中包含高速缓存块的地址;
高速缓存块确定单元602,用于在请求接收单元601接收数据读取请求之后,根据高速缓存块的地址确定待读取数据的高速缓存块;
发送单元603,用于在高速缓存块确定单元602确定待读取数据的高速缓存块之后,若待读取数据的高速缓存块的零数据标识位为真,则向处理器返回零,以完成数据读取。
在本发明实施例中,高速缓存块确定单元602包括:
缓存块查找单元604,用于在请求接收单元601接收到数据读取请求之后,利用高速缓存索引值查找cache,得到与高速缓存索引值对应的至少一个高速缓存块;
选择单元605,用于在缓存块查找单元604得到至少一个高速缓存块之后,从至少一个高速缓存块中选择高速缓存块作为用于缓存所述待写入数据的高速缓存块,且选择的高速缓存块的高速缓存标识位与所述高速缓存块的地址中的所述高速缓存标识位相同。
在本发明实施例中,请求接收单元601接收处理器发送的数据读取请求,该数据读取请求中包含高速缓存块的地址;接着,高速缓存块确定单元602根据高速缓存块的地址确定待读取数据的高速缓存块;由于高速缓存块的地址中包含高速缓存索引值及高速缓存标识位,高速缓存块确定单元602确定待读取数据的高速缓存块包括:缓存块查找单元604利用高速缓存索引值查找cache,得到与高速缓存索引值对应的至少一个高速缓存块;选择单元605从至少一个高速缓存块中选择高速缓存块作为用于缓存所述待写入数据的高速缓存块,且选择的高速缓存块的高速缓存标识位与所述高速缓存块的地址中的所述高速缓存标识位相同,接着,发送单元603,在高速缓存块确定单元602确定待读取数据的高速缓存块之后,若该待读取数据的高速缓存块的的零数据标识位为真,则发送单元603向处理器返回零,以完成数据读取。
在本发明实施例中,在读取数据时,若cache控制器检测到与待读取数据的高速缓存块的零数据标识位为真,则向处理器返回零,以完成数据读取,而不需要从高速缓存块中读取数据,能够有效的降低数据读取的功耗及缩短数据读取的时间。
请参阅图7,为本发明实施例中cache控制器的结构的实施例,包括:
cache处理器701,存储器702,发送装置703、接收装置704;
其中,接收装置704用于接收处理器发送的数据写入请求和待写入数据,数据写入请求中包含高速缓存块的地址;
其中,cache处理器701用于在接收装置接收数据写入请求和待写入数据之后,读取用于缓存待写入数据的高速缓存块中的第一数据;根据高速缓存块的地址将待写入数据替换第一数据中的部分或者全部数据,得到第二数据;检测第二数据是否为零;若第二数据为零,则将用于缓存待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入。
此外,在本发明实施例中,接收装置704还用于接收处理器发送的数据读取请求,所述数据读取请求中包含高速缓存块的地址;cache处理器704还用于根据高速缓存块的地址确定待写入数据的高速缓存块,及判断待写入数据的高速缓存块的零数据标识位是否为真,当待写入数据的高速缓存块的零数据标识位为真时,由发送装置703向处理器返回零,以完成数据读取。
在本发明实施例中,cache控制器在写入数据时,根据接收到的数据写入请求中的高速缓存块的地址确定待写入数据的高速缓存块,并在将该待写入数据的高速缓存块中的第一数据读取出来之后,将接收到的待写入数据替换第一数据中的数据,得到第二数据之后,若检测该第二数据为零则将用于缓存该待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入,能够有效的避免将第二数据写入所带来的功耗及所消耗的时间,此外,cache控制器数据读取时,若待读取数据的高速缓存块的零数据标识位为真时,则向处理器返回零,以完成数据读取,能够有效的降低数据读取的功耗及缩短数据读取的时间。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指定相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种cache中数据写入和读取方法、cache控制器进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种高速缓冲存储器cache中数据写入方法,其特征在于,包括:
接收处理器发送的数据写入请求和待写入数据,所述数据写入请求中包含高速缓存块的地址;
读取用于缓存所述待写入数据的高速缓存块中的第一数据;
根据所述高速缓存块的地址将所述待写入数据替换所述第一数据中的部分或者全部数据,得到第二数据;
检测所述第二数据是否为零;
若所述第二数据为零,则将所述用于缓存所述待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入。
2.根据权利要求1所述的数据写入方法,其特征在于,所述读取用于缓存所述待写入数据的高速缓存块中的第一数据之前还包括:
利用所述高速缓存块的地址确定所述用于缓存所述待写入数据的高速缓存块。
3.根据权利要求2所述的数据写入方法,其特征在于,所述高速缓存块的地址包括高速缓存索引值及高速缓存标识位;
则所述利用所述高速缓存块的地址确定用于缓存所述待写入数据的高速缓存块包括:
利用所述高速缓存索引值查找cache,得到与所述高速缓存索引值对应的至少一个高速缓存块;
从所述至少一个高速缓存块中选择高速缓存块作为所述用于缓存所述待写入数据的高速缓存块,所述选择的高速缓存块的高速缓存标识位与所述高速缓存块的地址中的所述高速缓存标识位相同。
4.根据权利要求3所述的数据写入方法,其特征在于,所述高速缓存块的地址还包括偏移量;
则所述根据所述高速缓存块的地址将所述待写入数据替换所述第一数据中的部分或者全部数据,得到第二数据包括:
按照所述偏移量将所述待写入数据替换所述第一数据中的部分或者全部数据,得到第二数据。
5.一种高速缓冲存储器cache中数据读取方法,其特征在于,包括:
接收处理器发送的数据读取请求,所述数据读取请求中包含高速缓存块的地址;
根据所述高速缓存块的地址确定待读取数据的高速缓存块;
若所述待读取数据的高速缓存块的零数据标识位为真,则向所述处理器返回零,以完成数据读取。
6.根据权利要求5所述的数据读取方法,其特征在于,所述高速缓存块的地址包括高速缓存索引值及高速缓存标识位;
则所述根据所述高速缓存块的地址确定待读取数据的高速缓存块包括:
利用所述高速缓存索引值查找cache,得到与所述高速缓存索引值对应的至少一个高速缓存块;
从所述至少一个高速缓存块中选择高速缓存块作为所述用于缓存所述待写入数据的高速缓存块,所述选择的高速缓存块的高速缓存标识位与所述高速缓存块的地址中的所述高速缓存标识位相同。
7.一种高速缓冲存储器cache控制器,其特征在于,包括:
接收单元,用于接收处理器发送的数据写入请求和待写入数据,所述数据写入请求中包含高速缓存块的地址;
读取单元,用于在所述接收单元接收所述数据写入请求和待写入数据之后,读取用于缓存所述待写入数据的高速缓存块中的第一数据;
替换单元,用于在所述读取单元读取第一数据之后,根据所述高速缓存块的地址将所述待写入数据替换所述第一数据中的部分或者全部数据,得到第二数据;
检测单元,用于在所述替换单元得到所述第二数据之后,检测所述第二数据是否为零;
设置单元,用于在所述检测单元确定所述第二数据为零时,将用于缓存所述待写入数据的高速缓存块的零数据标识位设置为真,以完成数据写入。
8.根据权利要求7所述的cache控制器,其特征在于,所述cache控制器还包括:
确定单元,用于在所述接收单元接收到所述数据写入请求和待写入数据之后,利用所述高速缓存块的地址确定所述用于缓存所述待写入数据的高速缓存块。
9.根据权利要求8所述的cache控制器,其特征在于,所述高速缓存块的地址包括高速缓存索引值及高速缓存标识位;
则所述确定单元包括:
查找单元,用于在所述接收单元接收到所述数据写入请求和待写入数据之后,利用所述高速缓存索引值查找cache,得到与所述高速缓存索引值对应的至少一个高速缓存块;
缓存块选择单元,用于在所述查找单元得到所述至少一个高速缓存块之后,从所述至少一个高速缓存块中选择高速缓存块作为所述用于缓存所述待写入数据的高速缓存块,所述选择的高速缓存块的高速缓存标识位与所述高速缓存块的地址中的所述高速缓存标识位相同。
10.一种高速缓冲存储器cache控制器,其特征在于,包括:
请求接收单元,用于接收处理器发送的数据读取请求,所述数据读取请求中包含高速缓存块的地址;
高速缓存块确定单元,用于在所述请求接收单元接收所述数据读取请求之后,根据所述高速缓存块的地址确定待读取数据的高速缓存块;
发送单元,用于在所述高速缓存块确定单元确定所述待读取数据的高速缓存块之后,若所述待读取数据的高速缓存块的零数据标识位为真,则向所述处理器返回零,以完成数据读取。
11.根据权利要求10所述的cache控制器,其特征在于,所述高速缓存块确定单元包括:
缓存块查找单元,用于在所述请求接收单元接收到所述数据读取请求之后,利用所述高速缓存索引值查找cache,得到与所述高速缓存索引值对应的至少一个;
选择单元,用于在所述缓存块查找单元得到所述至少一个高速缓存块之后,从所述至少一个高速缓存块中选择高速缓存块作为所述用于缓存所述待写入数据的高速缓存块,所述选择的高速缓存块的高速缓存标识位与所述高速缓存块的地址中的所述高速缓存标识位相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210531583.1A CN103870204B (zh) | 2012-12-11 | 2012-12-11 | 一种cache中数据写入和读取方法、cache控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210531583.1A CN103870204B (zh) | 2012-12-11 | 2012-12-11 | 一种cache中数据写入和读取方法、cache控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103870204A true CN103870204A (zh) | 2014-06-18 |
CN103870204B CN103870204B (zh) | 2018-01-09 |
Family
ID=50908792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210531583.1A Active CN103870204B (zh) | 2012-12-11 | 2012-12-11 | 一种cache中数据写入和读取方法、cache控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103870204B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019010703A1 (zh) * | 2017-07-14 | 2019-01-17 | 华为技术有限公司 | 读、部分写数据方法以及相关装置 |
CN112114756A (zh) * | 2020-09-27 | 2020-12-22 | 海光信息技术有限公司 | 存储系统及电子设备 |
CN114731282A (zh) * | 2019-11-22 | 2022-07-08 | 华为技术有限公司 | 处理非缓存写数据请求的方法、缓存器和节点 |
CN111124267B (zh) * | 2018-10-31 | 2023-10-31 | 伊姆西Ip控股有限责任公司 | 数据写入的方法、设备和计算机程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1206150A (zh) * | 1996-12-24 | 1999-01-27 | 国际商业机器公司 | 改良的高速缓存系统 |
US20080125046A1 (en) * | 2006-11-27 | 2008-05-29 | Juinn-Horng Deng | Transmission system with interference avoidance capability and method thereof |
CN101252589A (zh) * | 2008-03-25 | 2008-08-27 | 中国科学院计算技术研究所 | 数据缓存装置和采用该装置的网络存储系统及缓存方法 |
CN102662608A (zh) * | 2012-03-30 | 2012-09-12 | 华为技术有限公司 | 一种降低读延时的方法及装置 |
-
2012
- 2012-12-11 CN CN201210531583.1A patent/CN103870204B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1206150A (zh) * | 1996-12-24 | 1999-01-27 | 国际商业机器公司 | 改良的高速缓存系统 |
US20080125046A1 (en) * | 2006-11-27 | 2008-05-29 | Juinn-Horng Deng | Transmission system with interference avoidance capability and method thereof |
CN101252589A (zh) * | 2008-03-25 | 2008-08-27 | 中国科学院计算技术研究所 | 数据缓存装置和采用该装置的网络存储系统及缓存方法 |
CN102662608A (zh) * | 2012-03-30 | 2012-09-12 | 华为技术有限公司 | 一种降低读延时的方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019010703A1 (zh) * | 2017-07-14 | 2019-01-17 | 华为技术有限公司 | 读、部分写数据方法以及相关装置 |
CN110832466A (zh) * | 2017-07-14 | 2020-02-21 | 华为技术有限公司 | 读、部分写数据方法以及相关装置 |
CN110832466B (zh) * | 2017-07-14 | 2023-03-10 | 华为技术有限公司 | 读、部分写数据方法以及相关装置 |
CN111124267B (zh) * | 2018-10-31 | 2023-10-31 | 伊姆西Ip控股有限责任公司 | 数据写入的方法、设备和计算机程序产品 |
CN114731282A (zh) * | 2019-11-22 | 2022-07-08 | 华为技术有限公司 | 处理非缓存写数据请求的方法、缓存器和节点 |
US11789866B2 (en) | 2019-11-22 | 2023-10-17 | Huawei Technologies Co., Ltd. | Method for processing non-cache data write request, cache, and node |
CN112114756A (zh) * | 2020-09-27 | 2020-12-22 | 海光信息技术有限公司 | 存储系统及电子设备 |
CN112114756B (zh) * | 2020-09-27 | 2022-04-05 | 海光信息技术股份有限公司 | 存储系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103870204B (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558395B2 (en) | Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system | |
CN102306503B (zh) | 一种假容量存储器的检测方法及系统 | |
CN109582214B (zh) | 数据访问方法以及计算机系统 | |
KR20160016896A (ko) | 메모리 시스템, 메모리 액세스 요청 처리 방법 및 컴퓨터 프로그램 | |
CN102147757B (zh) | 一种测试装置和测试方法 | |
CN109952565B (zh) | 内存访问技术 | |
CN105808455B (zh) | 访问内存的方法、存储级内存及计算机系统 | |
CN104969168A (zh) | 具有用于分级写入的nvram的持久性存储装置 | |
CN101819509A (zh) | 一种固态硬盘读写方法 | |
US9977598B2 (en) | Electronic device and a method for managing memory space thereof | |
US20150143045A1 (en) | Cache control apparatus and method | |
US10901640B2 (en) | Memory access system and method | |
CN202472635U (zh) | 闪存磨损均衡装置 | |
CN103870204A (zh) | 一种cache中数据写入和读取方法、cache控制器 | |
CN102981966A (zh) | 一种均衡分配Flash存储块的数据存储方法 | |
CN104461750A (zh) | 一种NAND flash的访问方法和装置 | |
CN105980992A (zh) | 一种控制器、闪存装置、识别数据块稳定性的方法以及在闪存装置中存储数据的方法 | |
CN114860785A (zh) | 缓存数据处理系统、方法、计算机设备和存储介质 | |
CN102959548A (zh) | 数据存储方法、查找方法及装置 | |
CN110347338B (zh) | 混合内存数据交换处理方法、系统及可读存储介质 | |
CN102135943A (zh) | 闪存数据的存储、访问方法及装置 | |
CN103019963B (zh) | 一种高速缓存的映射方法及存储设备 | |
CN105550979A (zh) | 一种高数据通量纹理Cache层次结构 | |
CN102591823A (zh) | 一种具有指令队列功能的Nandflash控制器 | |
CN107506139B (zh) | 一种面向相变存储器的写请求优化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |