CN112711383B - 用于电力芯片的非易失性存储读取加速方法 - Google Patents
用于电力芯片的非易失性存储读取加速方法 Download PDFInfo
- Publication number
- CN112711383B CN112711383B CN202011643848.8A CN202011643848A CN112711383B CN 112711383 B CN112711383 B CN 112711383B CN 202011643848 A CN202011643848 A CN 202011643848A CN 112711383 B CN112711383 B CN 112711383B
- Authority
- CN
- China
- Prior art keywords
- flash
- cache
- data
- buffer register
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000001133 acceleration Effects 0.000 title claims abstract description 25
- 230000015654 memory Effects 0.000 claims abstract description 25
- 230000003044 adaptive effect Effects 0.000 claims abstract description 12
- 230000000977 initiatory effect Effects 0.000 claims abstract description 8
- 238000005429 filling process Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明属于存储器控制领域,涉及用于电力芯片的非易失性存储读取加速方法,通过行长自适应缓存加速处理器从Flash读取指令和跨步预取加速处理器从Flash读取数据,其中所述通过行长自适应缓存加速处理器从Flash读取指令包括:对处理器发起的取指请求,根据缓存命中和缺失判断,进行缓存行填充并重构缓存行长,向Flash发起读取指令请求;所述通过跨步预取加速处理器从Flash读取数据包括:对处理器发起的取数请求,根据缓冲寄存器命中和缺失的判断和跨步预取使能位的有效情况,向Flash发起读取数据请求。本发明硬件开销小,提高了处理器从Flash中读取指令和数据的速度,同时降低了访问功耗。
Description
技术领域
本发明属于存储器控制领域,涉及用于电力芯片的非易失性存储读取加速方法。
背景技术
非易失性存储既具备掉电不丢失的数据保存特性,又可多次重复编程和擦除,可广泛应用于电力芯片的程序、数据存储器。当前电力芯片中处理器的工作频率越来越高,而非易失性存储如Flash的读取延迟在几十纳秒左右,会大大降低处理器从Flash中读取指令和数据的效率,严重制约着电力芯片的整体性能。
为提升电力芯片处理器访问Flash的读取速度,当前Flash控制器中采用的主要方法有缓存和预取。缓存由SRAM(Static Random Access Memory,静态随机存储器)组成,相较Flash,SRAM具备很快的读取速度,控制器将处理器当前访问的指令从Flash中读取后写入缓存,并将相邻地址的指令提前从Flash读入缓存,以便处理器未来再次访问到该指令以及其相邻地址指令时,直接从缓存快速读取。预取则通过缓冲寄存器的方式实现,利用处理器处理已取出指令的间隙,提前将后续地址存储的指令预读入缓冲寄存器,处理器执行完前面的指令后,顺序执行的情况下直接从缓冲寄存器读取下一条指令。
现有控制器中采用固定行长的缓存,固定行长的缓存对特定的任务程序能起到较好的加速效果,但是缺乏对不同任务程序的普适性,尤其在多个不同特性的任务嵌套的场景下,加速效果欠佳。在程序空间局部性较好时,采用较长的缓存行性能更好,然而对于空间局部性较差的情况,出现跳转时由于填充较长缓存行而产生较长的等待延迟,可见固定的行大小对不同特性的任务程序可能不是最佳的。现有控制器中预取技术主要应用在处理器顺序读取的情况,对非顺序读取的情况,则由于预取失败,须等待当前预取结束后再发起正确的访问请求,会造成性能损失,并且由于多余的Flash访问操作,会造成功耗浪费。
发明内容
为了解决现有技术中存在的上述问题,本发明提出一种用于电力芯片的非易失性存储读取加速方法,通过行长自适应缓存和跨步预取加速非易失性存储Flash读取,其具体技术方案如下。
用于电力芯片的非易失性存储读取加速方法,通过行长自适应缓存加速处理器从Flash读取指令和跨步预取加速处理器从Flash读取数据,其中,
所述通过行长自适应缓存加速处理器从Flash读取指令包括:对处理器发起的取指请求,根据缓存命中和缺失判断,进行缓存行填充并重构缓存行长,向Flash发起读取指令请求;
所述通过跨步预取加速处理器从Flash读取数据包括:对处理器发起的取数请求,根据缓冲寄存器命中和缺失的判断和跨步预取使能位的有效情况,向Flash发起读取数据请求
进一步的,所述缓存命中和缺失判断,具体为:有总线读地址haddr[m:0],包括低位中的组地址位haddr[log2l+s-1:log2l]、高位中的标签haddr[m:log2l+s]、低位中的偏移地址haddr[log2l-1:0];以总线读地址haddr[m:0]低位中的组地址位haddr[log2l+s-1:log2l]为索引,寻址缓存中对应组,将该组中所有路的地址标签与总线读地址高位中的标签haddr[m:log2l+s]进行比较,若某路地址匹配且该路有效,则缓存命中;否则,缓存缺失。
进一步的,当缓存命中时,以总线读地址低位中的偏移地址haddr[log2l-1:0]为索引,将缓存行中对应字返回,并统计缓存行利用率信息;当缓存缺失时,进行邻接行信息的检测,按照最近最少使用的策略替换,回填缓存地址标签,同时将总线读地址进行译码,按照关键字优先的策略向Flash发起读取请求,等待缺失字返回时将数据返回总线,并进行缓存行填充,再依次填充缓存行中的其他字。
进一步的,所述缓存行填充时,根据所述缓存行利用率信息和邻接行信息,重构缓存行长,具体为:若上一次缺失时读取回来的缓存行的利用率低于50%,则接下来缓存行长缩小为之前缓存行长的一半,此次数据存储器填充过程中从Flash读回小行长对应数量的数据进行填充;若检测到邻接行,则接下来缓存行长增大为之前缓存行长的二倍,此次填充过程中从Flash读回大行长对应数量的数据进行填充;否则,缓存行长保持不变,此次填充过程中从Flash读回当前行长对应数量的数据进行填充。
进一步的,所述缓存行具体为:取缓存数据存储器的物理行长大小为最小缓存行长l,缓存行长增大时,将2的倍数个物理行拼接构成一个长缓存行;所述缓存包含的组数目s由缓存容量c,关联度w,最小缓存行长l计算得到:s=c/w/l;所述缓存数据存储器每填充一个最小缓存行长数量的数据,缓存标签存储器对应的回填一个最小地址标签。
进一步的,所述根据跨步预取使能位的有效情况具体为:
控制跨步预取的使能位,使能位有效的情况下,两个缓冲寄存器中的一个缓冲寄存器A用于存放处理器上一次发起取数请求时从Flash读回的数据,另一个缓冲寄存器B用于存放控制器发起跨步预取读请求时从Flash读回的数据;使能位无效的情况下,缓冲寄存器A和B均用于存放处理器之前发起取数请求时从Flash读回的数据;
在跨步预取使能的情况下,当控制器检测到处理器之前发起的取数请求的读地址按固定步幅变化时,若控制器空闲,则控制器发起跨步预取读请求,提前从Flash读回预测的数据存入缓冲寄存器B,处理器之后发起该数据的读请求时,直接从缓冲寄存器B中返回数据;
在跨步预取未使能的情况下,增加一个用于存放处理器之前发起取数请求时从Flash读回的数据的缓冲寄存器,当处理器再次请求缓冲寄存器A或B中的数据时,直接从对应的缓冲寄存器返回数据。
进一步的,所述缓冲寄存器命中和缺失的判断,具体为:将总线读地址的高位部分和缓冲寄存器的地址进行比较,若总线读地址的高位部分和某个缓冲寄存器的地址相等且该缓冲寄存器有效,则缓冲寄存器命中;否则,缓冲寄存器缺失。
进一步的,当缓冲寄存器命中时,以总线读地址低位中的偏移地址为索引,将缓冲寄存器中的对应字返回总线,如果此时跨步预取是使能的,并且命中了缓冲寄存器B,则将缓冲寄存器B中的内容复制到缓冲寄存器A;
当缓冲寄存器缺失时,向Flash发起读请求,等待数据读回时将对应的字返回总线,如果此时跨步预取未使能,则按照FIFO先入先出策略将从Flash读回的数据写入缓冲寄存器A或B;如果此时跨步预取是使能的,则清空缓冲寄存器B中的内容,将从Flash读回的数据写入缓冲寄存器A。
进一步的,当跨步预取使能时,处理器发起取数请求时,控制器会将读请求地址和上次记录的读请求地址进行相减运算,结果记为本次的跨步,并将本次的跨步信息和上次的跨步信息进行比较,如果二者相等,说明连续两次检测到读地址按照固定步幅变化,则跨步稳定状态有效,否则跨步稳定状态无效。
进一步的,当跨步预取使能,跨步稳定状态有效且控制器空闲时,将预取地址设定为上次总线读请求地址加跨步,如果预取地址和所述缓冲寄存器A或缓冲寄存器B的地址都不相等,则当前预取数据还未缓冲在缓冲寄存器中,控制器向Flash发起跨步预取读请求,将从Flash读回的预测数据存入缓冲寄存器B。
本发明通过行长自适应缓存加速Flash读取指令,仅通过较小的硬件开销,实现了对不同任务程序的局部性的普适性,在多个不同特性的任务嵌套的场景下,提高了处理器从Flash中读取指令的速度;高效的利用了缓冲寄存器,通过跨步预取的方法提高了预取的准确性,在跨步预取未使能的情况下,充分利用了缓冲寄存器来保存之前请求的数据,既提高了处理器从Flash中读取数据的速度,又降低了访问功耗。
附图说明
图1是本发明的缓存行长重构拼接示意图;
图2a是本发明的缓存标签存储器示意图;
图2b是本发明的缓存数据存储器示意图;
图3是本发明的判断缓存命中和缺失的示意图;
图4是本发明的缓存行取指填充过程示意图;
图5是本发明的跨步预取加速读取数据过程示意图。
具体实施方式
为了使本发明的目的、技术方案和技术效果更加清楚明白,以下结合说明书附图,对本发明作进一步详细说明。
用于电力芯片的非易失性存储读取加速方法,通过行长自适应缓存加速处理器从Flash读取指令和跨步预取加速处理器从Flash读取数据,其中,
所述通过行长自适应缓存加速处理器从Flash读取指令包括:对处理器发起的取指请求,根据缓存命中和缺失判断,进行缓存行填充并重构缓存行长,向Flash发起读取指令请求;
所述通过跨步预取加速处理器从Flash读取数据包括:对处理器发起的取数请求,根据缓冲寄存器命中和缺失的判断和跨步预取使能位的有效情况,向Flash发起读取数据请求
具体的,如图1所示,所述行长自适应缓存以最小缓存行长l为单位对缓存行长进行重构,具体的,取缓存数据存储器的物理行长大小为最小缓存行长l,缓存行长增大时,将2的倍数个物理行拼接构成一个长缓存行。
行长自适应缓存包含的组数目s由缓存容量c,关联度w,最小缓存行长l计算得到:s=c/w/l。
在缓存行填充过程中,根据邻接行信息和利用率信息来确定接下来缓存行长的大小;当出现邻接行时,缓存行长增大为之前行长大小的二倍;当缓存行利用率低于50%时,缓存行长缩小为之前行长大小的一半;否则,缓存行长大小保持不变。行长自适应缓存进行地址标签回填时,若当前缓存行由n个最小缓存行构成,则向标签存储器回填n个最小地址标签,如图2所示。
如图3所示,对处理器发起的取指请求,首先对所述缓存进行命中和缺失的判断,具体为:以总线读地址haddr[m:0]低位中的组地址位haddr
[log2l+s-1:log2l]为索引,去寻址缓存中对应组,将该组中所有路的地址标签与总线读地址高位中的标签haddr[m:log2l+s]进行比较,若某路地址匹配且该路有效,则缓存命中;否则,缓存缺失。
对所述缓存命中的情况,以总线读地址低位中的偏移地址haddr[log2l-1:0]为索引,将缓存行中对应字返回,并进行缓存行利用率信息的统计,具体为:若前一半缓存行中的所有字均未被访问,或者后一半缓存行中的所有字均未被访问,则该缓存行的利用率记为低于50%,否则该缓存行的利用率记为大于50%。
对所述缓存缺失的情况,按照最近最少使用的策略替换,回填缓存地址标签,同时将总线读地址进行译码,按照关键字优先的策略向Flash发起读取请求,等待缺失字返回时将数据返回总线,并进行缓存行填充,再依次填充缓存行中的其他字。
当缓存缺失时,进行邻接行信息的检测,具体为:如果此次缺失请求对应的读地址和上一次缺失请求对应的读地址落在相邻两个较小缓存行中,则认为检测到邻接行,否则认为未检测到邻接行。
在缓存行填充过程中,根据所述缓存行利用率信息和邻接行信息,更新接下来缓存行长的大小,如图4所示,具体为:若上一次缺失时读取回来的缓存行的利用率低于50%,则接下来缓存行长缩小为之前缓存行长的一半,此次数据存储器填充过程中从Flash读回小行长对应数量的数据进行填充;若检测到邻接行,则接下来缓存行长增大为之前缓存行长的二倍,此次填充过程中从Flash读回大行长对应数量的数据进行填充;否则,缓存行长保持不变,此次填充过程中从Flash读回当前行长对应数量的数据进行填充。缓存数据存储器每填充一个最小缓存行长数量的数据,缓存标签存储器对应的回填一个最小地址标签。
所述通过行长自适应缓存加速Flash读取,用于读取存储在Flash中的指令,仅通过较小的硬件开销,实现了对不同任务程序的局部性的普适性,在多个不同特性的任务嵌套的场景下,提高了处理器从Flash中读取指令的速度。
所述通过跨步预取加速Flash读取数据,包括:
控制跨步预取的使能位,使能位有效的情况下,两个缓冲寄存器中的一个寄存器A用于存放处理器上次发起取数请求时从Flash读回的数据,另一个缓冲寄存器B用于存放控制器发起跨步预取读请求时从Flash读回的数据。使能位无效的情况下,两个缓冲寄存器均用于存放处理器之前发起取数请求时从Flash读回的数据;
跨步预取使能的情况下,当控制器检测到处理器之前发起的取数请求的读地址按固定步幅变化时,若控制器空闲,则控制器发起跨步预取读请求,提前从Flash读回预测的数据存入缓冲寄存器B,处理器之后发起该数据的读请求时,直接从缓冲寄存器B中返回数据,加快了取数速度;
跨步预取未使能的情况下,增加了一个用于存放处理器之前发起取数请求时从Flash读回的数据的缓冲寄存器,当处理器再次请求缓冲寄存器A或B中的数据时,直接从缓冲寄存器返回数据,既加快了取数速度,又减小了对Flash的访问次数,降低功耗。如图5所示。
所述对处理器发起的取数请求,首先对所述缓冲寄存器进行命中和缺失的判断,具体为:将总线读地址的高位部分和缓冲寄存器的地址进行比较,若总线读地址的高位部分和某个缓冲寄存器的地址相等且该缓冲寄存器有效,则缓冲寄存器命中;否则,缓冲寄存器缺失。
在缓冲寄存器命中的情况下,以总线读地址低位中的偏移地址为索引,将缓冲寄存器中的对应字返回总线。如果此时跨步预取是使能的,并且命中了缓冲寄存器B,则将缓冲寄存器B中的内容复制到缓冲寄存器A。
在缓冲寄存器缺失的情况下,向Flash发起读请求,等待数据读回时将对应的字返回总线。如果此时跨步预取未使能,则按照FIFO(先入先出)策略将从Flash读回的数据写入缓冲寄存器A或B。如果此时跨步预取是使能的,则缓冲寄存器B中的内容被清空,将从Flash读回的数据写入缓冲寄存器A。
在跨步预取使能的情况下,每次处理器发起取数请求时,控制器会将读请求地址和上次记录的读请求地址进行相减运算,结果记为本次的跨步,并将本次的跨步信息和上次的跨步信息进行比较,如果二者相等,说明连续两次检测到读地址按照固定步幅变化,则跨步稳定状态有效,否则跨步稳定状态无效。
在跨步预取使能的情况下,如果跨步稳定状态有效,且控制器空闲,将预取地址设定为上次总线读请求地址加跨步,如果预取地址和所述缓冲寄存器A或缓冲寄存器B的地址都不相等,则当前预取数据还未缓冲在缓冲寄存器中,控制器向Flash发起跨步预取读请求,将从Flash读回的预测数据存入缓冲寄存器B。
所述通过跨步预取加速Flash读取的方法,用于读取存储在Flash中的数据。
Claims (9)
1.用于电力芯片的非易失性存储读取加速方法,其特征在于,通过行长自适应缓存加速处理器从Flash读取指令和跨步预取加速处理器从Flash读取数据,其中,
所述通过行长自适应缓存加速处理器从Flash读取指令包括:对处理器发起的取指请求,根据缓存命中和缺失判断,进行缓存行填充并重构缓存行长,向Flash发起读取指令请求;
所述通过跨步预取加速处理器从Flash读取数据包括:对处理器发起的取数请求,根据缓冲寄存器命中和缺失的判断和跨步预取使能位的有效情况,向Flash发起读取数据请求;
所述根据跨步预取使能位的有效情况具体为:
控制跨步预取的使能位,使能位有效的情况下,两个缓冲寄存器中的一个缓冲寄存器A用于存放处理器上一次发起取数请求时从Flash读回的数据,另一个缓冲寄存器B用于存放控制器发起跨步预取读请求时从Flash读回的数据;使能位无效的情况下,缓冲寄存器A和B均用于存放处理器之前发起取数请求时从Flash读回的数据;
在跨步预取使能的情况下,当控制器检测到处理器之前发起的取数请求的读地址按固定步幅变化时,若控制器空闲,则控制器发起跨步预取读请求,提前从Flash读回预测的数据存入缓冲寄存器B,处理器之后发起该数据的读请求时,直接从缓冲寄存器B中返回数据;
在跨步预取未使能的情况下,增加一个用于存放处理器之前发起取数请求时从Flash读回的数据的缓冲寄存器,当处理器再次请求缓冲寄存器A或B中的数据时,直接从相应的缓冲寄存器返回数据。
2.如权利要求1所述的用于电力芯片的非易失性存储读取加速方法,其特征在于,所述缓存命中和缺失判断,具体为:有总线读地址haddr[m:0],包括低位中的组地址位haddr[log2l+s-1:log2l]、高位中的标签haddr[m:log2 l+s]、低位中的偏移地址haddr[log2 l-1:0];以总线读地址haddr[m:0]低位中的组地址位haddr[log2 l+s-1:log2 l]为索引,寻址缓存中对应组,将该组中所有路的地址标签与总线读地址高位中的标签haddr[m:log2 l+s]进行比较,若某路地址匹配且该路有效,则缓存命中;否则,缓存缺失。
3.如权利要求2所述的用于电力芯片的非易失性存储读取加速方法,其特征在于,当缓存命中时,以总线读地址低位中的偏移地址haddr[log2 l-1:0]为索引,将缓存行中对应字返回,并统计缓存行利用率信息;
当缓存缺失时,进行邻接行信息的检测,按照最近最少使用的策略替换,回填缓存地址标签,同时将总线读地址进行译码,按照关键字优先的策略向Flash发起读取请求,等待缺失字返回时将数据返回总线,并进行缓存行填充,再依次填充缓存行中的其他字。
4.如权利要求3所述的用于电力芯片的非易失性存储读取加速方法,其特征在于,所述缓存行填充时,根据所述缓存行利用率信息和邻接行信息,重构缓存行长,具体为:若上一次缺失时读取回来的缓存行的利用率低于50%,则接下来缓存行长缩小为之前缓存行长的一半,此次数据存储器填充过程中从Flash读回小行长对应数量的数据进行填充;若检测到邻接行,则接下来缓存行长增大为之前缓存行长的二倍,此次填充过程中从Flash读回大行长对应数量的数据进行填充;否则,缓存行长保持不变,此次填充过程中从Flash读回当前行长对应数量的数据进行填充。
5.如权利要求4所述的用于电力芯片的非易失性存储读取加速方法,其特征在于,所述缓存行长重构具体为:取缓存数据存储器的物理行长大小为最小缓存行长l,缓存行长增大时,将2的倍数个物理行拼接构成一个长缓存行;所述缓存包含的组数目s由缓存容量c,关联度w,最小缓存行长l计算得到:s=c/w/l;所述缓存数据存储器每填充一个最小缓存行长数量的数据,缓存标签存储器对应的回填一个最小地址标签。
6.如权利要求1所述的用于电力芯片的非易失性存储读取加速方法,其特征在于,所述缓冲寄存器命中和缺失的判断,具体为:将总线读地址的高位部分和缓冲寄存器的地址进行比较,若总线读地址的高位部分和某个缓冲寄存器的地址相等且该缓冲寄存器有效,则缓冲寄存器命中;否则,缓冲寄存器缺失。
7.如权利要求6所述的用于电力芯片的非易失性存储读取加速方法,其特征在于,当缓冲寄存器命中时,以总线读地址低位中的偏移地址为索引,将缓冲寄存器中的对应字返回总线,如果此时跨步预取是使能的,并且命中了缓冲寄存器B,则将缓冲寄存器B中的内容复制到缓冲寄存器A;
当缓冲寄存器缺失时,向Flash发起读请求,等待数据读回时将对应的字返回总线,如果此时跨步预取未使能,则按照FIFO先入先出策略将从Flash读回的数据写入缓冲寄存器A或B;如果此时跨步预取是使能的,则清空缓冲寄存器B中的内容,将从Flash读回的数据写入缓冲寄存器A。
8.如权利要求7所述的用于电力芯片的非易失性存储读取加速方法,其特征在于,当跨步预取使能时,处理器发起取数请求时,控制器会将读请求地址和上次记录的读请求地址进行相减运算,结果记为本次的跨步,并将本次的跨步信息和上次的跨步信息进行比较,如果二者相等,说明连续两次检测到读地址按照固定步幅变化,则跨步稳定状态有效,否则跨步稳定状态无效。
9.如权利要求8所述的用于电力芯片的非易失性存储读取加速方法,其特征在于,当跨步预取使能,跨步稳定状态有效且控制器空闲时,将预取地址设定为上次总线读请求地址加跨步,如果预取地址和所述缓冲寄存器A或缓冲寄存器B的地址都不相等,则当前预取数据还未缓冲在缓冲寄存器中,控制器向Flash发起跨步预取读请求,将从Flash读回的预测数据存入缓冲寄存器B。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011643848.8A CN112711383B (zh) | 2020-12-30 | 2020-12-30 | 用于电力芯片的非易失性存储读取加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011643848.8A CN112711383B (zh) | 2020-12-30 | 2020-12-30 | 用于电力芯片的非易失性存储读取加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112711383A CN112711383A (zh) | 2021-04-27 |
CN112711383B true CN112711383B (zh) | 2022-08-26 |
Family
ID=75548061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011643848.8A Active CN112711383B (zh) | 2020-12-30 | 2020-12-30 | 用于电力芯片的非易失性存储读取加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112711383B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114625674B (zh) * | 2022-03-24 | 2023-07-18 | 广东华芯微特集成电路有限公司 | 预驱指令架构与预驱指令架构的预取方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102057359A (zh) * | 2009-04-10 | 2011-05-11 | 松下电器产业株式会社 | 高速缓冲存储器装置、高速缓冲存储器控制方法、程序及集成电路 |
CN103778069A (zh) * | 2012-10-18 | 2014-05-07 | 深圳市中兴微电子技术有限公司 | 高速缓冲存储器的高速缓存块长度调整方法及装置 |
CN109918131A (zh) * | 2019-03-11 | 2019-06-21 | 中电海康无锡科技有限公司 | 一种基于非阻塞指令cache的指令读取方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10671394B2 (en) * | 2018-10-31 | 2020-06-02 | International Business Machines Corporation | Prefetch stream allocation for multithreading systems |
-
2020
- 2020-12-30 CN CN202011643848.8A patent/CN112711383B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102057359A (zh) * | 2009-04-10 | 2011-05-11 | 松下电器产业株式会社 | 高速缓冲存储器装置、高速缓冲存储器控制方法、程序及集成电路 |
CN103778069A (zh) * | 2012-10-18 | 2014-05-07 | 深圳市中兴微电子技术有限公司 | 高速缓冲存储器的高速缓存块长度调整方法及装置 |
CN109918131A (zh) * | 2019-03-11 | 2019-06-21 | 中电海康无锡科技有限公司 | 一种基于非阻塞指令cache的指令读取方法 |
Non-Patent Citations (2)
Title |
---|
基于预取和缓存原理的片上Flash加速控制器设计;蒋进松;《计算机工程与科学》;20161230;全文 * |
结合指令预取和缓存划分的多核缓存WCEC优化;安立奎;《计算机工程与应用》;20190415;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112711383A (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3323212B2 (ja) | データプレフェッチの方法およびその装置 | |
KR100278328B1 (ko) | 캐시 미스 버퍼 | |
US6389514B1 (en) | Method and computer system for speculatively closing pages in memory | |
EP0604139B1 (en) | Computer system including a prefetch cache | |
US5361391A (en) | Intelligent cache memory and prefetch method based on CPU data fetching characteristics | |
US5577227A (en) | Method for decreasing penalty resulting from a cache miss in multi-level cache system | |
US5603004A (en) | Method for decreasing time penalty resulting from a cache miss in a multi-level cache system | |
US5586295A (en) | Combination prefetch buffer and instruction cache | |
US20170161197A1 (en) | Apparatuses and methods for pre-fetching and write-back for a segmented cache memory | |
TWI393050B (zh) | 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統 | |
US8499123B1 (en) | Multi-stage pipeline for cache access | |
US7047362B2 (en) | Cache system and method for controlling the cache system comprising direct-mapped cache and fully-associative buffer | |
US9146867B2 (en) | Methods and apparatus to access memory using runtime characteristics | |
JPH08328958A (ja) | 命令キャッシュ、キャッシュメモリ装置及びその方法 | |
US7237067B2 (en) | Managing a multi-way associative cache | |
US9569219B2 (en) | Low-miss-rate and low-miss-penalty cache system and method | |
US6959363B2 (en) | Cache memory operation | |
CN107562806B (zh) | 混合内存文件系统的自适应感知加速方法及系统 | |
CN112711383B (zh) | 用于电力芯片的非易失性存储读取加速方法 | |
JPH0616272B2 (ja) | メモリアクセス制御方式 | |
US20090210624A1 (en) | 3-Dimensional L2/L3 Cache Array to Hide Translation (TLB) Delays | |
CN109669881B (zh) | 一种基于Cache空间预约算法的计算方法 | |
CN107506139A (zh) | 一种面向相变存储器的写请求优化装置 | |
CN115563031A (zh) | 指令高速缓存的预取控制方法、装置、芯片及存储介质 | |
US20040078544A1 (en) | Memory address remapping method |
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 |