CN110716887B - 一种支持写暗示的硬件高速缓存数据装入方法 - Google Patents

一种支持写暗示的硬件高速缓存数据装入方法 Download PDF

Info

Publication number
CN110716887B
CN110716887B CN201910857256.7A CN201910857256A CN110716887B CN 110716887 B CN110716887 B CN 110716887B CN 201910857256 A CN201910857256 A CN 201910857256A CN 110716887 B CN110716887 B CN 110716887B
Authority
CN
China
Prior art keywords
cache
main memory
line
cache line
data
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.)
Active
Application number
CN201910857256.7A
Other languages
English (en)
Other versions
CN110716887A (zh
Inventor
过锋
陈芳园
高红光
吴珊
赵冠一
孙红辉
陈正博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910857256.7A priority Critical patent/CN110716887B/zh
Publication of CN110716887A publication Critical patent/CN110716887A/zh
Application granted granted Critical
Publication of CN110716887B publication Critical patent/CN110716887B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes

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

本发明包括下述步骤:S1、确定需要目标主存的主存数据行的地址信息,该地址信息由写暗示指令携带;S2、通过CPU向目标Cache发出写暗示指令,所述写暗示指令生成写暗示标记,并且将要携带的目标主存的主存数据行地址映射为目标Cache中的缓存行;S3、判断映射的目标Cache中对应的缓存行是否访问命中;S4、确定映射的目标Cache中对应的缓存行命中,则判断缓存行是否有效;S5、确定缓存行有效时,则将该缓存行淘汰回主存;S6、设置缓存行有效,并结束处理,后续对写暗示装入的缓存行进行访问时,按照正常的高速缓存访问方式进行。本发明通过在硬件高速缓存中直接占用缓存行,而不读取并装入对应的主存行,显著降低缓存行第一次访问主存的延迟。

Description

一种支持写暗示的硬件高速缓存数据装入方法
技术领域
本发明涉及计算机存储系统领域,具体涉及一种支持写暗示的硬件高速缓存数据装入方法。
背景技术
随着处理器计算能力的大幅提高,提升缓慢的芯片访存能力成为制约芯片性能发挥的重要因素。硬件高速缓存(Cache)装置是提高具有空间局部性和时间局部性的数据访问性能的重要技术途径。
目前,高速缓存cache大小是CPU的重要指标之一,其结构与大小对CPU速度的影响非常大。简单地讲,缓存就是用来存储一些常用或即将用到的数据或指令,当需要这些数据或指令的时候直接从缓存中读取,这样比到内存甚至硬盘中读取要快得多,能够大幅度提升CPU的处理速度。
现有的硬件高速缓存在第一次装入主存数据时延迟较长,由此产生的数据相关性对后续指令流水线的性能影响较大。特别是对于不关心原始数据内容的主存写访问,带来了不必要的第一次访问延迟,以致造成了大量的数据读写时间的浪费,从而造成了不必要的性能损失。
因此,需要一种支持写暗示的硬件高速缓存数据装入方法,可以对于不关心原始数据内容的主存写访问,通过在硬件高速缓存中直接占用缓存行,而不再实际读取并装入对应的主存行,显著降低缓存行第一次访问主存的延迟,从而提高应用的实际运行性能。
发明内容
为了解决上述问题,本发明采用的技术方案是提出了一种支持写暗示的硬件高速缓存数据装入方法,该方法用于CPU对高速缓冲存储器与主存的读写的调控,从而降低缓存行第一次访问主存的延迟。
本发明的一种支持写暗示的硬件高速缓存数据装入方法包括下述步骤:S1、确定需要目标主存的主存数据行的地址信息,该地址信息由写暗示指令携带;S2、通过CPU向目标Cache发出写暗示指令,所述写暗示指令生成写暗示标记,并且将要携带的目标主存的主存数据行地址映射为目标Cache中的缓存行;S3、判断映射的目标Cache中对应的缓存行是否访问命中;S4、确定映射的目标Cache中对应的缓存行命中,则判断缓存行是否有效;S5、确定缓存行有效时,则将该缓存行淘汰回主存;S6、设置缓存行有效,并结束处理,后续对写暗示装入的缓存行进行访问时,按照正常的高速缓存访问方式进行。
进一步,步骤S1中所述目标主存的主存数据行是和目标Cache的缓存行相同大小的数据单位,写暗示指令拾的目标主存的地址信息可以是主存数据行内的任一地址位置。
进一步,步骤S2中所述进行映射的目标主存的地址信息是该地址所在主存行的起始地址,由于目标主存的主存数据行和目标Cache的缓存行具有相同大小,因此映射的目标Cache的地址也是缓存行的起始地址。
进一步,步骤S3中“判断映射的目标Cache中对应的缓存行是否访问命中”具体包括:S31、目标Cache读出映射缓存行对应的标签域(Tag)内容;S32、将Tag中的作用地址的内容与目标主存的主存数据行的起始地址进行比较;S33、确定两个地址相同,且Tag中标示的缓存行有效时,则判断映射的目标Cache缓存行命中。
进一步,步骤S4中“则判断缓存行是否有效” 具体为:对缓冲行的数据的有效位的数据进行读取,进而根据有效位的标记来判断缓存行数据是否存在,若有效位的标记存在,则说明缓冲行的数据存在、该缓存行有效。
进一步,步骤S6中“按照正常的高速缓存访问方式进行”是指,随后对该缓存行的写操作采用细粒度写掩码方式标记,即首先将写数据更新到缓存行对应的位置,并根据数据粒度更新写掩码。
进一步,当该缓存行被显式或隐式淘汰回主存时,硬件高速缓存装置提供缓存行更新对应的写掩码,保证数据访问的一致性。
本发明的数据写入Cache的缓存行是通过写掩码方式来保证数据访问的一致性。同时本发明在该缓存行被显式或隐式淘汰回主存时,硬件高速缓存装置提供缓存行更新对应的写掩码,保证数据访问的一致性。本发明通过CPU访问Cache控制器内的写暗示接口进行写暗示操作,从而方便写暗示流程根据应用需要进行调整。本发明可通过在硬件高速缓存中直接占用缓存行,而不再实际读取并装入对应的主存行,显著降低缓存行第一次访问主存的延迟,从而优化本发明作用的高速缓存存储器的应用性能。
附图说明
图1为本发明一种支持写暗示的硬件高速缓存数据装入方法的总流程图;
图2为本发明一种支持写暗示的硬件高速缓存数据装入方法的步骤S3的子步骤流程图。
具体实施方式
为了更清楚地说明本发明实施例和/或现有技术中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
现有的存储器是分层次的,离CPU越近的存储器,速度越快,每字节的成本越高,同时容量也因此越小。寄存器速度最快,离CPU最近,成本最高,所以个数容量有限,其次是高速缓存(缓存也是分级,有L1,L2等缓存),再次是主存(普通内存),再次是本地磁盘。Cache的内容除了存的数据(data)之外,还包含存的数据的物理内存的地址信息。Cache可有效的提高主存的读写速度。
现有的主存写入方式采用的为通过(Write-through)方式和写回方式(Write-back)。写通过方式支持改写Cache中的内容,但是不允许Cache和主存内容不一致,因此,对在对Cache进行写操作时,对主存也要进行写操作。这会延长写操作的时间。而写回方式则是对相应的Cache进行写操作,但是并不立即对主存进行写操作,这能有效的减少访问主存的延迟。但是这种方式的实现比较复杂,因为Cache和主存的内容存在不一致性,而本发明中采用的主体是通过方式,但本发明的对于不关心原始数据内容的主存写访问,通过在硬件高速缓存中直接占用缓存行,而不再实际读取并装入对应的主存行,同时通过写掩码方式保证数据访问的一致性。
如图1所示,本发明的实施例中的方法主要包括S1至S6。
步骤S1、确定需要目标主存的主存数据行的地址信息,该地址信息由写暗示指令携带。
其中,步骤S1中所述目标主存的主存数据行的地址信息包括各主存数据行的起始位置与终止位置信息,而地址信息全部设置在写暗示指令的数据行中。所述目标主存的主存数据行是和目标Cache的缓存行相同大小的数据单位,写暗示指令拾的目标主存的地址信息可以是主存数据行内的任一地址位置。
S2、通过CPU向目标Cache发出写暗示指令,所述写暗示指令生成写暗示标记,并且将要携带的目标主存的主存数据行地址映射为目标Cache中的缓存行。
其中,所述进行映射的目标主存的地址信息是该地址所在主存行的起始地址,由于目标主存的主存数据行和目标Cache的缓存行具有相同大小,因此映射的目标Cache的地址也是缓存行的起始地址。
S3、判断映射的目标Cache中对应的缓存行是否访问命中。
其中,如图2所示步骤S3中“判断映射的目标Cache中对应的缓存行是否访问命中”具体包括:S31、目标Cache读出映射缓存行对应的标签域Tag内容;S32、将Tag中的作用地址的内容与目标主存的主存数据行的起始地址进行比较;S33、确定两个地址相同,且Tag中标示的缓存行有效时,则判断映射的目标Cache缓存行命中。
S4、确定映射的目标Cache中对应的缓存行命中,则判断缓存行是否有效。步骤S4中“则判断缓存行是否有效” 具体为:对缓冲行的数据的有效位的数据进行读取,进而根据有效位的标记来判断缓存行数据是否存在,若有效位的标记存在,则说明缓冲行的数据存在、该缓存行有效。
S5、确定缓存行有效时,则将该缓存行淘汰回主存。
S6、设置缓存行有效,并结束处理,后续对写暗示装入的缓存行进行访问时,按照正常的高速缓存访问方式进行。
步骤S6中“按照正常的高速缓存访问方式进行”是指,随后对该缓存行的写操作采用细粒度写掩码方式标记,即首先将写数据更新到缓存行对应的位置,并根据数据粒度更新写掩码。
另外,在本发明中,当该缓存行被显式或隐式淘汰回主存时,硬件高速缓存装置提供缓存行更新对应的写掩码,保证数据访问的一致性。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (5)

1.一种支持写暗示的硬件高速缓存数据装入方法,其特征在于用于提高Cache数据第一次装入主存的读写速度,包括步骤:S1、确定需要目标主存的主存数据行的地址信息,该地址信息由写暗示指令携带;S2、通过CPU向目标Cache发出写暗示指令,所述写暗示指令生成写暗示标记,并且将要携带的目标主存的主存数据行地址映射为目标Cache中的缓存行;S3、判断映射的目标Cache中对应的缓存行是否访问命中;S4、确定映射的目标Cache中对应的缓存行命中,则判断缓存行是否有效;S5、确定缓存行有效时,则将该缓存行淘汰回主存;S6、设置缓存行有效,并结束处理,后续对写暗示装入的缓存行进行访问时,对该缓存行的写操作采用细粒度写掩码方式标记,即首先将写数据更新到缓存行对应的位置,并根据数据粒度更新写掩码,当该缓存行被显式或隐式淘汰回主存时,硬件高速缓存装置提供缓存行更新对应的写掩码,保证数据访问的一致性。
2.如权利要求1所述的一种支持写暗示的硬件高速缓存数据装入方法,其特征在于:步骤S1中所述目标主存的主存数据行是和目标Cache的缓存行相同大小的数据单位,写暗示指令拾的目标主存的地址信息可以是主存数据行内的任一地址位置。
3.如权利要求1所述的一种支持写暗示的硬件高速缓存数据装入方法,其特征在于:步骤S2中进行映射的所述目标主存的地址信息是该地址所在主存行的起始地址,由于目标主存的主存数据行和目标Cache的缓存行具有相同大小,因此映射的目标Cache的地址也是缓存行的起始地址。
4.如权利要求1所述的一种支持写暗示的硬件高速缓存数据装入方法,其特征在于:步骤S3中“判断映射的目标Cache中对应的缓存行是否访问命中”具体包括:S31、目标Cache读出映射缓存行对应的标签域Tag内容;S32、将Tag中的作用地址的内容与目标主存的主存数据行的起始地址进行比较;S33、确定两个地址相同,且Tag中标示的缓存行有效时,则判断映射的目标Cache缓存行命中。
5.如权利要求1所述的一种支持写暗示的硬件高速缓存数据装入方法,其特征在于,步骤S4中“则判断缓存行是否有效” 具体为:对缓冲行的数据的有效位的数据进行读取,进而根据有效位的标记来判断缓存行数据是否存在,若有效位的标记存在,则说明缓冲行的数据存在、该缓存行有效。
CN201910857256.7A 2019-09-11 2019-09-11 一种支持写暗示的硬件高速缓存数据装入方法 Active CN110716887B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910857256.7A CN110716887B (zh) 2019-09-11 2019-09-11 一种支持写暗示的硬件高速缓存数据装入方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910857256.7A CN110716887B (zh) 2019-09-11 2019-09-11 一种支持写暗示的硬件高速缓存数据装入方法

Publications (2)

Publication Number Publication Date
CN110716887A CN110716887A (zh) 2020-01-21
CN110716887B true CN110716887B (zh) 2021-08-10

Family

ID=69209855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910857256.7A Active CN110716887B (zh) 2019-09-11 2019-09-11 一种支持写暗示的硬件高速缓存数据装入方法

Country Status (1)

Country Link
CN (1) CN110716887B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113973502B (zh) * 2020-05-25 2023-11-17 华为技术有限公司 一种高速缓存冲撞处理方法及装置
CN112835532A (zh) * 2021-02-25 2021-05-25 上海壁仞智能科技有限公司 用于缓存控制的方法以及计算装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681295B1 (en) * 2000-08-31 2004-01-20 Hewlett-Packard Development Company, L.P. Fast lane prefetching
CN103377141A (zh) * 2012-04-12 2013-10-30 无锡江南计算技术研究所 高速存储区的访问方法以及访问装置
CN106610900A (zh) * 2015-10-22 2017-05-03 蜂巢数据有限公司 消除nand闪存设备中的无用单元收集
CN108509354A (zh) * 2018-03-22 2018-09-07 雷科防务(西安)控制技术研究院有限公司 存储芯片硬件空间回收和管理方法
CN108701070A (zh) * 2016-03-31 2018-10-23 英特尔公司 对多级系统存储器的存储器侧高速缓存的容易出错的高速缓存行槽的处理

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130339620A1 (en) * 2012-06-15 2013-12-19 Futurewei Technololgies, Inc. Providing Cache Replacement Notice Using a Cache Miss Request
CN102929588B (zh) * 2012-09-28 2015-04-08 无锡江南计算技术研究所 众核处理器虚实地址转换方法
KR102069696B1 (ko) * 2013-11-20 2020-01-23 한국전자통신연구원 캐시 제어 장치 및 방법
US20180067854A1 (en) * 2016-09-07 2018-03-08 Intel Corporation Aggressive write-back cache cleaning policy optimized for non-volatile memory
CN106502584B (zh) * 2016-10-13 2019-10-25 记忆科技(深圳)有限公司 一种提高固态硬盘写缓存的利用率的方法
CN107832236B (zh) * 2017-10-24 2021-08-03 记忆科技(深圳)有限公司 一种提高固态硬盘写性能的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681295B1 (en) * 2000-08-31 2004-01-20 Hewlett-Packard Development Company, L.P. Fast lane prefetching
CN103377141A (zh) * 2012-04-12 2013-10-30 无锡江南计算技术研究所 高速存储区的访问方法以及访问装置
CN106610900A (zh) * 2015-10-22 2017-05-03 蜂巢数据有限公司 消除nand闪存设备中的无用单元收集
CN108701070A (zh) * 2016-03-31 2018-10-23 英特尔公司 对多级系统存储器的存储器侧高速缓存的容易出错的高速缓存行槽的处理
CN108509354A (zh) * 2018-03-22 2018-09-07 雷科防务(西安)控制技术研究院有限公司 存储芯片硬件空间回收和管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
片上多核的软件指令缓存技术研究;过锋, 李宏亮, 谢向辉, 黄永勤;《计算机工程与科学》;20091015;1-4 *

Also Published As

Publication number Publication date
CN110716887A (zh) 2020-01-21

Similar Documents

Publication Publication Date Title
US10346302B2 (en) Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
US8949544B2 (en) Bypassing a cache when handling memory requests
JP5580894B2 (ja) Tlbプリフェッチング
JP3707854B2 (ja) キャッシュ機能を有するコンピュータ及びキャッシュメモリ制御方法
US6782453B2 (en) Storing data in memory
US9418011B2 (en) Region based technique for accurately predicting memory accesses
US20050204088A1 (en) Data acquisition methods
US20110173400A1 (en) Buffer memory device, memory system, and data transfer method
CN108701070B (zh) 对多级系统存储器的存储器侧高速缓存的容易出错的高速缓存行槽的处理
JP2000250813A (ja) I/oキャッシュ・メモリにおけるデータ管理方法
KR20090108716A (ko) 프로세서의 캐시 폴리시를 설정하기 위한 방법 및 장치
US20180095884A1 (en) Mass storage cache in non volatile level of multi-level system memory
US20140075086A1 (en) Durable transactions with storage-class memory
CN110716887B (zh) 一种支持写暗示的硬件高速缓存数据装入方法
CN106354664A (zh) 一种固态硬盘数据传输方法及装置
US20110167223A1 (en) Buffer memory device, memory system, and data reading method
US8069312B2 (en) Apparatus, circuit and method of controlling memory initialization
US11645209B2 (en) Method of cache prefetching that increases the hit rate of a next faster cache
CN111966608B (zh) 一种外存储器的直接内存储器访问方法和装置
US20040064643A1 (en) Method and apparatus for optimizing line writes in cache coherent systems
TWI243999B (en) Apparatus and related method for maintaining read caching data of south bridge with north bridge
JP2008176612A (ja) マルチプロセッサシステム
JP2000047942A (ja) キャッシュメモリ制御装置及びその制御方法
US20230305968A1 (en) Cache replacement policy optimization for producer-consumer flows
EP4328755A1 (en) Systems, methods, and apparatus for accessing data in versions of memory pages

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
GR01 Patent grant
GR01 Patent grant