CN110716887B - 一种支持写暗示的硬件高速缓存数据装入方法 - Google Patents
一种支持写暗示的硬件高速缓存数据装入方法 Download PDFInfo
- 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
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/0877—Cache 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中“则判断缓存行是否有效” 具体为:对缓冲行的数据的有效位的数据进行读取,进而根据有效位的标记来判断缓存行数据是否存在,若有效位的标记存在,则说明缓冲行的数据存在、该缓存行有效。
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)
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)
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)
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 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘写性能的方法 |
-
2019
- 2019-09-11 CN CN201910857256.7A patent/CN110716887B/zh active Active
Patent Citations (5)
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)
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 |