[go: up one dir, main page]

CN106569961A - 一种基于访存地址连续性的cache模块及其访存方法 - Google Patents

一种基于访存地址连续性的cache模块及其访存方法 Download PDF

Info

Publication number
CN106569961A
CN106569961A CN201610965369.5A CN201610965369A CN106569961A CN 106569961 A CN106569961 A CN 106569961A CN 201610965369 A CN201610965369 A CN 201610965369A CN 106569961 A CN106569961 A CN 106569961A
Authority
CN
China
Prior art keywords
ccache
cache
data
address
memory access
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
Application number
CN201610965369.5A
Other languages
English (en)
Other versions
CN106569961B (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.)
Zhuhai Yiwei Technology Co Ltd
Original Assignee
Zhuhai Amicro Semiconductor Co Ltd
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 Zhuhai Amicro Semiconductor Co Ltd filed Critical Zhuhai Amicro Semiconductor Co Ltd
Priority to CN201610965369.5A priority Critical patent/CN106569961B/zh
Publication of CN106569961A publication Critical patent/CN106569961A/zh
Application granted granted Critical
Publication of CN106569961B publication Critical patent/CN106569961B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

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模块包括:若干块以连续性为原则划分的cache,其中包括缓存非连续访存数据的Dcache、缓存连续访存数据的Ccache;地址判断与数据返回单元,执行访存行为监测及地址连续性判断并将结果输出Dcache与Ccache的操作,同时执行数据返回的操作;接口转换单元,执行系统总线到flash memory接口的转换及cache的预取命令发出与作废的操作。本发明主要通过访存的连续性规律,将CPU需要的数据提前放在cache中,加快了访存速度,提升了SOC的性能。

Description

一种基于访存地址连续性的cache模块及其访存方法
【技术领域】
本发明涉及集成电路片上系统(SOC)架构设计技术领域,具体涉及一种基于访存地址连续性的cache模块及其访存方法。
【背景技术】
存储墙是计算机发展过程中的一个重大挑战,制约着计算机性能的提升。在SOC系统中存储器访问速度是评价计算机性能的一个重要指标。
为了应对存储墙问题,业界开发了一系技术,如使用层次化的存储系统,并采用预取、推断、指令调度、线程调度等技术。这些技术的目标是:利用缓存的速度优势,CPU直接读写缓存中的数据,最大程度的避免访问低速低层次的存储器。但CPU直接读写缓存的前提是目标数据必需备份在缓存中。现有的高性能计算机系统中几乎都采用层次化存储器设计。
在性能测试benchmark(测试工具)中,stream主要用来测试CPU的访存性能。
根据命中率、实现的复杂度及速度的快慢等各种因素,缓存cache的替换策略有随机法、先进先出、最近最少使用法等。这些替换策略应用在不同的场景,有着不同的侧重点。
Cache(快速缓冲贮存区)替换策略利用的是程序的局部性规律,减少CPU直接访问低速存储器的机率。然而不可忽视的是程序访存还具有很强的规律性。例如,从程序指令的角度来说,编译后生成的指令存放有很强的连续性,大块的数据作为一个对象时也总是连续的分布在存储空间内,循环的结构也使得访存地址变得有机可循。
【发明内容】
本发明旨在从CPU访存的连续性和规律性角度出发,提供一种加速访存的cache模块及其访存方法,有效地提升CPU访存性能。本发明由以下技术方案实现:
一种基于访存地址连续性的cache模块,设置于SOC系统总线到flash memory的路径上,其特征在于,所述cache模块包括:
若干块以连续性为原则划分的cache,其中包括缓存非连续访存数据的Dcache和缓存连续访存数据的Ccache;
地址判断与数据返回单元,执行访存行为监测及地址连续性判断并将结果输出Dcache与Ccache的操作,同时执行数据返回的操作;
接口转换单元,执行系统总线到flash memory接口的转换及cache的预取命令发出与作废的操作。
作为具体的技术方案,所述Ccache包括:cache line结构、数据预取模块和cacheline替换电路;所述cache line结构包含两部份内容:起始项和预取项,起始项为每个连续数据的前几个数据,预取项为连续数据预取部分的暂存空间;所述的数据预取模块用于对后面连续地址进行预取,预取到的数据存于预取项中;所述的cache line替换电路用于替换预取项中的内容或替换整个cache line。
作为具体的技术方案,所述访存地址连续性包括:地址自增、地址自减、移位的地址有规律的变化。
一种上述基于访存地址连续性的cache模块的访存方法,其特征在于,包括:
(1)访存行为产生时,cache命中比较同时在Dcache与Ccache中进行,如果在cache命中则进入步骤(2A),否则进入步骤(2B);
(2A)将当前地址与上一次地址比较,判断是否连续并将结果输出Dcache与Ccache,连续则进入步骤(2A1),否则进入步骤(2A2);
(2A1)判断Ccache中数据是否有效,是则由Ccache返回数据并预取后面连续地址的数据,否则等待flash memory返回数据;预取的过程中,如收到非连续请求,则中断当前预取;
(2A2)由Dcache返回数据,同时判断Ccache是否禁用未填充完成的cache line;
(2B)判断地址是否连续,连续则进入步骤(2B1),不连续则进入步骤(2B2);
(2B1)Ccache根据当前替换策略决定是否将这次连续的访存写入cache line中;
(2B2)判断是否满足Dcache的替换策略,是则从flash memory返回数据并将数据填入Dcache中,否则从flash memory返回数据;
(3)将步骤(2)所得结果返回给系统总线。
作为具体的技术方案,所述中断当前预取的情况下,Ccache的起始项没有填充完,Ccache的替换策略决定在起始项未填充完成时,是否disable当前的cache line。
作为具体的技术方案,所述Ccache的当前替换策略包括:在cache line的预取项未填满时,是否将该cache line置换出Ccache;在Ccache满时,如何替换新的cache line;如何看待连续数据中的子集。
本发明的有益效果在于:相比慢速的存储器,这种cache结构能有效的加快访存速度;无论哪种CPU体系结构,这种cache结构可以方便应用到各种SOC中;对于大部分程序而言,访存中包含了大量的重复连续性或规律性的访问,本发明对连续访存的加速效果较强;不需要在cache中存入所有的连续数据,只需要存入连续数据的前面几个,减少了cache大小,降低了电路成本。
【附图说明】
图1为本发明实施例提供的SOC的总线系统与访存的结构图。
图2为本发明实施例提供的cache模块中Ccache的cache line结构图。
图3为本发明实施例提供的cache模块结构下的访存流程图。
【具体实施方式】
为使本申请所阐述的技术方案及有益效果更加清晰明白,下面结合附图及具体实施例进行详细说明:
如图1所示,一个SOC的总线系统,包括CPU、DMA、系统总线、flash memory及cache模块,cache模块设置于CPU到flash memory的路径上,cache模块中包含一个Dcache、一个Ccache、地址判断与数据返回单元及接口转换单元。Dcache用于缓存非连续的访存数据,Ccache用于缓存连续数据的cache,Ccache中的连续性为特定的可识别序列即可,如地址自增,自减,移位等。
假定在上述电路中,flash memory的访问时间为3个时钟周期,且不能够流水化。如图2所示,Ccache每个cache line中起始项的个数为3,预取项的个数为3。
如图3所示,访存行为产生时,地址判断与数据返回单元把当前地址与上一次地址比较,判断是否连续并将结果输出Dcache与Ccache。当前地址送Dcache与Ccache中,如在Dcache命中则返回命中数据,如果在Ccache中命中则返回命中数据,在Ccache命中的同时,Ccache会进行预取,即进行后面第3个连续地址的预取。
反之,在所有cache都没有命中的情况下,如果不连续,则Dcache根椐当前替换策略替换cache line,此时访存结果需要从flash memory中取出。如果连续,则Ccache根据当前替换策略决定是否将这次连续的访存写入cache line中。在Ccache命中的同时,Ccache会进行预取。预取的过程中,如收到非连续请求,则中断当前预取。
中断预取的情况下,Ccache的起始项没有填充完,Ccache的替换策略决定在起始项未填充完成时,是否disable当前的cache line。每个cache项中有相应的使能标志,没有被填充或被disable的cache项有与之对应的标识。这些标识控制Ccache的命中与预取。
其中,Ccache的当前替换策略包括:在cache line的预取项未填满时,是否将该cache line置换出Ccache;在Ccache满时,如何替换新的cache line,可以采用常用的LRU、FIFO和随机等策略;如何看待连续数据中的子集,子集如果包含了相同的起始项,则可以不作为新的连续数据,因为Ccache的预取机制保证了子集的访存性能不受影响。
本发明主要通过访存的连续性规律,将CPU需要的数据提前放在cache中,加快了访存速度,提升了SOC的性能。
上述实施例仅为充分公开而非限制本发明,凡是依据本发明创新主旨且未经创造性劳动即可获得的等效技术特征替换及增减,均应属于本发明揭露的范围。

Claims (6)

1.一种基于访存地址连续性的cache模块,设置于SOC系统总线到flash memory的路径上,其特征在于,所述cache模块包括:
若干块以连续性为原则划分的cache,其中包括缓存非连续访存数据的Dcache和缓存连续访存数据的Ccache;
地址判断与数据返回单元,执行访存行为监测及地址连续性判断并将结果输出Dcache与Ccache的操作,同时执行数据返回的操作;
接口转换单元,执行系统总线到flash memory接口的转换及cache的预取命令发出与作废的操作。
2.根据权利要求1所述的基于访存地址连续性的cache模块,其特征在于,所述Ccache包括:cache line结构、数据预取模块和cache line替换电路;所述cacheline结构包含两部份内容:起始项和预取项,起始项为每个连续数据的前几个数据,预取项为连续数据预取部分的暂存空间;所述的数据预取模块用于对后面连续地址进行预取,预取到的数据存于预取项中;所述的cache line替换电路用于替换预取项中的内容或替换整个cache line。
3.根据权利要求1所述的基于访存地址连续性的cache模块,其特征在于,所述访存地址连续性包括:地址自增、地址自减、移位的地址有规律的变化。
4.一种权利要求3所述基于访存地址连续性的cache模块的访存方法,其特征在于,包括:
(1)访存行为产生时,cache命中比较同时在Dcache与Ccache中进行,如果在cache命中则进入步骤(2A),否则进入步骤(2B);
(2A)将当前地址与上一次地址比较,判断是否连续并将结果输出Dcache与Ccache,连续则进入步骤(2A1),否则进入步骤(2A2);
(2A1)判断Ccache中数据是否有效,是则由Ccache返回数据并预取后面连续地址的数据,否则等待flash memory返回数据;预取的过程中,如收到非连续请求,则中断当前预取;
(2A2)由Dcache返回数据,同时判断Ccache是否禁用未填充完成的cache line;
(2B)判断地址是否连续,连续则进入步骤(2B1),不连续则进入步骤(2B2);
(2B1)Ccache根据当前替换策略决定是否将这次连续的访存写入cache line中;
(2B2)判断是否满足Dcache的替换策略,是则从flash memory返回数据并将数据填入Dcache中,否则从flash memory返回数据;
(3)将步骤(2)所得结果返回给系统总线。
5.根据权利要求4所述的访存方法,其特征在于,所述中断当前预取的情况下,Ccache的起始项没有填充完,Ccache的替换策略决定在起始项未填充完成时,是否disable当前的cache line。
6.根据权利要求4或5所述的访存方法,其特征在于,所述Ccache的当前替换策略包括:在cache line的预取项未填满时,是否将该cache line置换出Ccache;在Ccache满时,如何替换新的cache line;如何看待连续数据中的子集。
CN201610965369.5A 2016-10-31 2016-10-31 一种基于访存地址连续性的cache模块及其访存方法 Active CN106569961B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610965369.5A CN106569961B (zh) 2016-10-31 2016-10-31 一种基于访存地址连续性的cache模块及其访存方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610965369.5A CN106569961B (zh) 2016-10-31 2016-10-31 一种基于访存地址连续性的cache模块及其访存方法

Publications (2)

Publication Number Publication Date
CN106569961A true CN106569961A (zh) 2017-04-19
CN106569961B CN106569961B (zh) 2023-09-05

Family

ID=58536444

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610965369.5A Active CN106569961B (zh) 2016-10-31 2016-10-31 一种基于访存地址连续性的cache模块及其访存方法

Country Status (1)

Country Link
CN (1) CN106569961B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256599A (zh) * 2019-07-22 2021-01-22 华为技术有限公司 一种数据预取方法、装置及存储设备
WO2021184141A1 (en) * 2020-03-15 2021-09-23 Micron Technology, Inc. Pre-load techniques for improved sequential read
CN113655954A (zh) * 2021-07-15 2021-11-16 广东赛昉科技有限公司 一种memory set的优化策略的实现方法及系统
CN117971501A (zh) * 2024-03-28 2024-05-03 北京壁仞科技开发有限公司 一种数据访问方法、设备、存储介质及程序产品
CN120872415A (zh) * 2025-09-28 2025-10-31 兰州大学 微处理器中异步多粒度访存控制方法、异步电路、访存模块

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137754A (ja) * 1994-11-10 1996-05-31 Fuji Xerox Co Ltd ディスクキャッシュ装置
CN1652091A (zh) * 2004-02-07 2005-08-10 华为技术有限公司 一种在数据存储系统中预取数据的方法
US7069388B1 (en) * 2003-07-10 2006-06-27 Analog Devices, Inc. Cache memory data replacement strategy
CN101266576A (zh) * 2008-05-15 2008-09-17 中国人民解放军国防科学技术大学 一种面向数据流的Cache管理方法
US20080229027A1 (en) * 2007-03-13 2008-09-18 Fujitsu Limited Prefetch control device, storage device system, and prefetch control method
CN105094686A (zh) * 2014-05-09 2015-11-25 华为技术有限公司 数据缓存方法、缓存和计算机系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137754A (ja) * 1994-11-10 1996-05-31 Fuji Xerox Co Ltd ディスクキャッシュ装置
US7069388B1 (en) * 2003-07-10 2006-06-27 Analog Devices, Inc. Cache memory data replacement strategy
CN1652091A (zh) * 2004-02-07 2005-08-10 华为技术有限公司 一种在数据存储系统中预取数据的方法
US20080229027A1 (en) * 2007-03-13 2008-09-18 Fujitsu Limited Prefetch control device, storage device system, and prefetch control method
CN101266576A (zh) * 2008-05-15 2008-09-17 中国人民解放军国防科学技术大学 一种面向数据流的Cache管理方法
CN105094686A (zh) * 2014-05-09 2015-11-25 华为技术有限公司 数据缓存方法、缓存和计算机系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256599A (zh) * 2019-07-22 2021-01-22 华为技术有限公司 一种数据预取方法、装置及存储设备
WO2021184141A1 (en) * 2020-03-15 2021-09-23 Micron Technology, Inc. Pre-load techniques for improved sequential read
US11868245B2 (en) 2020-03-15 2024-01-09 Micron Technology, Inc. Pre-load techniques for improved sequential memory access in a memory device
CN113655954A (zh) * 2021-07-15 2021-11-16 广东赛昉科技有限公司 一种memory set的优化策略的实现方法及系统
CN113655954B (zh) * 2021-07-15 2025-10-03 上海赛昉半导体科技有限公司 一种memory set的优化策略的实现方法及系统
CN117971501A (zh) * 2024-03-28 2024-05-03 北京壁仞科技开发有限公司 一种数据访问方法、设备、存储介质及程序产品
CN120872415A (zh) * 2025-09-28 2025-10-31 兰州大学 微处理器中异步多粒度访存控制方法、异步电路、访存模块

Also Published As

Publication number Publication date
CN106569961B (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
EP1031919B1 (en) Method for prefetching structured data
EP1421490B1 (en) Methods and apparatus for improving throughput of cache-based embedded processors by switching tasks in response to a cache miss
TWI437490B (zh) 微處理器及縮短分頁表尋訪時間之方法
CN104809179B (zh) 访问哈希表的装置和方法
US20090198909A1 (en) Jump Starting Prefetch Streams Across Page Boundaries
TWI431472B (zh) 微處理器之可組態快取
KR20180090284A (ko) 이벤트 기동된 프로그래머블 프리페처
CN106569961B (zh) 一种基于访存地址连续性的cache模块及其访存方法
CN101558390B (zh) 用于微处理器的可配置高速缓冲存储器
CN109461113B (zh) 一种面向数据结构的图形处理器数据预取方法及装置
KR102268601B1 (ko) 데이터 포워딩을 위한 프로세서, 그것의 동작 방법 및 그것을 포함하는 시스템
EP4264905B1 (en) Data placement with packet metadata
US10552334B2 (en) Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early
CN108874691B (zh) 数据预取方法和内存控制器
US6922753B2 (en) Cache prefetching
KR102464788B1 (ko) 업/다운 프리페쳐
US9697136B2 (en) Descriptor ring management
US20050198439A1 (en) Cache memory prefetcher
JP2015527684A (ja) スティッキー抜去エンジンを伴うシステムキャッシュ
CN119201004A (zh) 数据读写处理方法、装置、设备及介质
Mahling et al. Fetch me if you can: Evaluating cpu cache prefetching and its reliability on high latency memory
Cheng et al. Exploiting memory-level parallelism in reconfigurable accelerators
US10025717B1 (en) Multi-dimensional prefetching
US20090210662A1 (en) Microprocessor, method and computer program product for direct page prefetch in millicode capable computer system
CN206805520U (zh) 一种基于访存地址连续性的cache模块

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 519000 2706, No. 3000, Huandao East Road, Hengqin new area, Zhuhai, Guangdong

Patentee after: Zhuhai Yiwei Semiconductor Co.,Ltd.

Country or region after: China

Address before: Room 105-514, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province

Patentee before: AMICRO SEMICONDUCTOR Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 519000 Guangdong Province Zhuhai City Hengqin New District Zhi Shui Road 88 Office 1508

Patentee after: Zhuhai Yiwei Technology Co., Ltd.

Country or region after: China

Address before: 519000 2706, No. 3000, Huandao East Road, Hengqin new area, Zhuhai, Guangdong

Patentee before: Zhuhai Yiwei Semiconductor Co.,Ltd.

Country or region before: China