CN112347031A - 基于fpga的嵌入式数据缓存系统 - Google Patents
基于fpga的嵌入式数据缓存系统 Download PDFInfo
- Publication number
- CN112347031A CN112347031A CN202011018471.7A CN202011018471A CN112347031A CN 112347031 A CN112347031 A CN 112347031A CN 202011018471 A CN202011018471 A CN 202011018471A CN 112347031 A CN112347031 A CN 112347031A
- Authority
- CN
- China
- Prior art keywords
- data
- dcache
- module
- fpga
- soft core
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种基于FPGA的嵌入式数据缓存系统,包括FPGA软核、DDR控制器和Dcache模块,所述FPGA软核与所述DDR控制器、所述Dcache模块通过总线通信连接;所述DDR控制器用于对外部DDR的数据访问;所述Dcache模块用于进行数据的强制刷新或强制写回;所述FPGA软核发送强制刷新或强制回写指令,所述Dcache模块接收强制刷新将所述Dcache模块中的Tag清零,或所述Dcache模块接收强制回写指令将所述Dcache模块中的数据回写至DDR。本发明利用FPGA软核发送强制回写或强制刷新起始信号,触发Dcache模块执行强制回写或强制刷新操作,即将Dcache模块的数据回写DDR颗粒中或将Dcache模块中Tag信息清除,当强制回写或强制刷新完成后将结束标志反馈至FPGA软核中,从而解决片外的存储设备DDR中的数据被更新后与Dcache模块中数据不一致的问题。
Description
【技术领域】
本发明涉及FPGA技术领域,尤其涉及一种基于FPGA的嵌入式数据缓存系统。
【背景技术】
FPGA(Field Programmable GateArray现场可编程逻辑门阵列)具有灵活编程和可重构的特点,以及丰富的底层硬件资源和IP核,使其在嵌入式工业控制领域有较大的应用空间。尤其是在FPAG中实现嵌入式软核,即MUC,是FPGA支持工业控制的重要体现。但是,在数据缓存或外设数据较大的场景下,嵌入式软核需要给数据段分配较大空间。因此,仅仅利用FPGA片上的存储空间和简单的数据通道已无法满足复杂应用场景的需求。
在实际应用中,FPGA处理的数据量往往远超FPGA片上的存储空间,且某些全局变量或常数需要一直占用存储资源,因此,需要片外的存储设备(例如DDR颗粒)和数据通道(例如AXI4)进行读写数据;但在高速外设的应用场景下,例如以太网外设,大量的高速数据无法直接被FPGA软核处理,只能存储在DDR颗粒中,此时就会面临DDR颗粒中的数据被更新后与DCACHE中已存储的数据不一致。
为解决上述问题,在FPGA平台上实现嵌入式软核技术的同时,还需在FPGA平台上实现DCache(数据缓存)技术,否则将成为制约FPGA应用的瓶颈之一。
【发明内容】
本发明的目的在于提供了一种解决片外的存储设备DDR中的数据被更新后与缓存数据不一致问题的基于FPGA的嵌入式数据缓存系统。
为达到上述目的,本发明提供一种基于FPGA的嵌入式数据缓存系统,包括FPGA软核、DDR控制器和Dcache模块,所述FPGA软核与所述DDR控制器、所述Dcache模块通过总线通信连接;所述DDR控制器用于对外部DDR的数据访问;所述Dcache模块用于进行数据的强制刷新或强制写回;所述FPGA软核发送强制刷新或强制回写指令,所述Dcache模块接收强制刷新将所述Dcache模块中的Tag清零,或所述Dcache模块接收强制回写指令将所述Dcache模块中的数据回写至DDR。
优选的,所述Dcache模块包括Tag存储体、Cache存储体和Cache控制器,所述Tag存储体与地址总线连接,所述Cache存储体与数据总线连接,所述Cache控制器判断所述Tag存储体中的数据地址是否与所述FPGA软核提供的数据地址匹配,如是则所述FPGA软核读取或写入的数据存储在所述Cache存储体中。
优选的,所述Cache存储体采用1路、512个缓存行、每个缓存行4个32bit指令的存储结构。
优选的,所述缓存行包括Valid位和Dirty位,所述Dirty位用于判断缓存行中的数据是否更新。
优选的,所述FPGA软核进行读取数据或写入数据时,读取或写入的数据地址划分为三段,包括Tag段、Index段和DATA Index段,其中,
若所述FPGA软核的Tag地址与所述Dcache模块的Tag地址一致,则表示命中;
若所述FPGA软核的Index地址与所述Dcache模块的Index地址一致,则表示选中对应的缓存行;
若所述FPGA软核的DATA Index地址与所述Dcache模块的DATA Index地址一致,则表示选中对应的32位数据。
优选的,所述强制刷新包括,
S11、所述FPGA软核将待刷新数据的起始地址和数据长度,通过AHB总线发送至所述Dcache模块;
S12、所述FPGA软核发送强制刷新指令;同时,所述FPGA软核强制挂起;
S13、所述Dcache模块接收所述强制刷新指令;
S14、所述Dcache模块扫描每一条缓存行的Tag,并判断Tag是否命中;若命中将缓存行对应的Tag清零;若未命中,跳过该缓存行;
S15、强制刷新结束后,通过AHB总线将结束状态信息反馈至所述FPGA软核。
优选的,所述强制回写包括,
S21、所述FPGA软核将待回写数据的起始地址和数据长度,通过AHB总线发送至所述Dcache模块;
S22、所述FPGA软核发送强制回写指令;同时,所述FPGA软核强制挂起;
S23、所述Dcache模块接收所述强制回写指令;
S24、所述Dcache模块扫描每一缓存行的Tag,并判断Tag是否命中;若命中将对应的缓存行回写至DDR;若未命中,跳过该缓存行;
S25、强制回写结束后,通过AHB总线将结束状态信息反馈至所述FPGA软核。
本发明的有益效果在于:提供了一种基于FPGA的嵌入式数据缓存系统,利用FPGA软核发送强制回写或强制刷新起始信号,触发Dcache模块执行强制回写或强制刷新操作,即将Dcache模块的数据回写DDR颗粒中或将Dcache模块中Tag信息清除,当强制回写或强制刷新完成后将结束标志反馈至FPGA软核中,从而解决片外的存储设备DDR中的数据被更新后与Dcache模块中数据不一致的问题。
【附图说明】
图1为本发明实施例嵌入式数据缓存系统的结构示意图;
图2为本发明实施例嵌入式数据缓存系统的直接映射原理图;
图3为本发明实施例嵌入式数据缓存系统的Dcache存储原理图;
图4为本发明实施例嵌入式数据缓存系统的强制刷新流程图;
图5为本发明实施例嵌入式数据缓存系统的强制回写流程图。
【具体实施方式】
下面结合附图和实施方式对本发明作进一步说明。
需要说明的是,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后、内、外、顶部、底部……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
实施例1
请一并参考图1至图5,本发明实施例提供一种基于FPGA的嵌入式数据缓存系统,包括FPGA软核1、其为Cortex M1软核,DDR控制器(DDR Controller)2、其用于对片外的存储设备DDR4的数据访问,以及Dcache模块3、用于进行数据的强制刷新或强制写回,所述FPGA软核1与所述DDR控制器2、所述Dcache模块3通过总线通信连接。
参见图1,所述FPGA软核1的HADDR/HWRI TE数据通道与所述DDR控制器2的AXI_WADDR/AXI_RADDR数据通道通过地址总线通信,所述FPGA软核1的HWDATA/HWDATA数据通道与所述DDR控制器2的AXI_WDATA/AXI_WDATA数据通道通过数据总线通信。所述FPGA软核1发送强制刷新或强制回写指令,所述Dcache模块3接收强制刷新将所述Dcache模块3中的Tag清零,或所述Dcache模块3接收强制回写指令将所述Dcache模块3中的数据回写至DDR4。
参见图3,当所述FPGA软核1发出数据请求时,即所述FPGA软核1进行读取数据或写入数据时,读取或写入的数据地址划分为三段,包括Tag段、Index段和DATA Index段。
若所述FPGA软核1的Tag地址与所述Dcache模块3的Tag地址一致,则表示命中;若所述FPGA软核1的Index地址与所述Dcache模块3的Index地址一致,则表示选中对应的缓存行;若所述FPGA软核1的DATA Index地址与所述Dcache模块3的DATA Index地址一致,则表示选中对应的32位数据。其中,DATA Index段为固定的4个,可支持4个(地址按4累加,该地址为所述FPGA软核1给出的数据地址)不同的32位数据在Dcache模块3中定位。
进一步的,由于片外的存储设备DDR4中的数据被更新后与Dcache模块3中数据不一致,需进行强制刷新或强制回写操作。
其中,所述强制刷新包括,
S11、所述FPGA软核1将待刷新数据的起始地址和数据长度,通过AHB总线发送至所述Dcache模块3;
S12、所述FPGA软核1发送强制刷新指令;同时,所述FPGA软核1强制挂起,即暂停指令与数据的执行操作;
S13、所述Dcache模块3接收所述强制刷新指令,触发Dcache模块3进行强制刷新操作;
S14、所述Dcache模块扫描每一条缓存行(Cache line)的Tag,并判断Tag是否命中;若命中将缓存行对应的Tag清零;若未命中,跳过该缓存行;其中,命中为所述FPGA软核1中待刷新数据的Tag与所述Dcache模块3扫描缓存行的Tag一致;
S15、强制刷新结束后,通过AHB总线将结束状态信息反馈至所述FPGA软核1。
优选的,步骤S14包括,
S141、所述Dcache模块3扫描缓存行的Tag信息,并判断该缓存行的Tag是否命中;若命中将该缓存行对应的Tag清零即完成该缓存行刷新;若未命中,跳过该缓存行;
S142、所述Dcache模块3扫描每一缓存行,并执行上述步骤S141。
其中,所述强制回写包括,
S21、所述FPGA软核1将待回写数据的起始地址和数据长度,通过AHB总线发送至所述Dcache模块3;
S22、所述FPGA软核1发送强制回写指令;同时,所述FPGA软核1强制挂起,即暂停指令与数据的执行操作;
S23、所述Dcache模块3接收所述强制回写指令;
S24、所述Dcache模块扫描每一缓存行的Tag,并判断Tag是否命中;若命中将对应的缓存行回写至DDR;若未命中,跳过该缓存行;其中,命中为所述FPGA软核1中待回写数据的Tag与所述Dcache模块3扫描缓存行的Tag一致;
S25、强制回写结束后,通过AHB总线将结束状态信息反馈至所述FPGA软核1。
优选的,步骤S24包括,
S241、所述Dcache模块3扫描缓存行的Tag,并判断该缓存行的Tag是否命中;若命中将该缓存行回写至与其对应位置的DDR;若未命中,跳过该缓存行;
S242、所述Dcache模块3扫描每一缓存行,并执行上述步骤S241。
其中,AHB总线是所述FPGA软核与Dcache模块通信的总线;AXI总线是Dcache模块与DDRC通信的总线。
本发明的基于FPGA的嵌入式数据缓存系统,利用FPGA软核发送强制回写或强制刷新起始信号,触发Dcache模块执行强制回写或强制刷新操作,即将Dcache模块的数据回写DDR颗粒中或将Dcache模块中Tag信息清除,当强制回写或强制刷新完成后将结束标志反馈至FPGA软核中,从而解决片外的存储设备DDR中的数据被更新后与Dcache模块中数据不一致的问题。
实施例2
请一并参考图1至图5,本发明实施例提供一种基于FPGA的嵌入式数据缓存系统,包括FPGA软核1、其为Cortex M1软核,DDR控制器2、其用于对片外的存储设备DDR4的数据访问,以及Dcache模块3、用于进行数据的强制刷新或强制写回,所述FPGA软核1与所述DDR控制器2、所述Dcache模块3通过总线通信连接。
参见图3,所述FPGA软核1的HADDR/HWRITE数据通道与所述DDR控制器2的AXI_WADDR/AXI_RADDR数据通道通过地址总线通信,所述FPGA软核1的HWDATA/HWDATA数据通道与所述DDR控制器2的AXI_WDATA/AXI_WDATA数据通道通过数据总线通信。所述FPGA软核1发送强制刷新或强制回写指令,所述Dcache模块3接收强制刷新将所述Dcache模块3中的Tag清零,或所述Dcache模块3接收强制回写指令将所述Dcache模块3中的数据回写至DDR4。
当所述FPGA软核1发出数据请求时,即所述FPGA软核1进行读取数据或写入数据时,读取或写入的数据地址划分为三段,包括Tag段、Index段和DATA Index段。
进一步的,由于片外的存储设备DDR4中的数据被更新后与Dcache模块3中数据不一致,需进行强制刷新或强制回写操作。
其中,所述强制刷新包括,
S11、所述FPGA软核1将待刷新数据的起始地址和数据长度,通过AHB总线发送至所述Dcache模块3;
S12、所述FPGA软核1发送强制刷新指令;同时,所述FPGA软核1强制挂起,即暂停指令与数据的执行操作;
S13、所述Dcache模块3接收所述强制刷新指令,触发Dcache模块3进行强制刷新操作;
S14、所述Dcache模块3扫描缓存行的Tag信息,并判断该缓存行的Tag是否命中;若命中将该缓存行对应的Tag清零即完成该缓存行刷新;若未命中,跳过该缓存行;其中,命中为所述FPGA软核1中待刷新数据的Tag与所述Dcache模块3扫描缓存行的Tag一致;
S15、所述Dcache模块3扫描每一缓存行,并执行上述步骤S14;
S16、强制刷新结束后,通过AHB总线将结束状态信息反馈至所述FPGA软核1。
其中,所述强制回写包括,
S21、所述FPGA软核1将待回写数据的起始地址和数据长度,通过AHB总线发送至所述Dcache模块3;
S22、所述FPGA软核1发送强制回写指令;同时,所述FPGA软核1强制挂起,即暂停指令与数据的执行操作;
S23、所述Dcache模块3接收所述强制回写指令;
S24、所述Dcache模块3扫描缓存行的Tag,并判断该缓存行的Tag是否命中;若命中将该缓存行回写至与其对应位置的DDR;若未命中,跳过该缓存行;其中,命中为所述FPGA软核1中待回写数据的Tag与所述Dcache模块3扫描缓存行的Tag一致;
S25、所述Dcache模块3扫描每一缓存行,并执行上述步骤S24;
S26、强制回写结束后,通过AHB总线将结束状态信息反馈至所述FPGA软核1。
可选地,在本发明实施例中,所述Dcache模块3包括Tag存储体31、Cache存储体32和Cache控制器33。其中,所述Tag存储体31与地址总线连接,所述Cache存储体32与数据总线连接,所述Cache控制器33判断所述Tag存储体31中的数据地址是否与所述FPGA软核1提供的数据地址匹配,如是则所述FPGA软核1读取或写入的数据存储已在所述Cache存储体32中。
所述Tag存储体31用于存储高20位的32位数据地址、1位的valid状态位以及1位的dirty状态位,每行22位,总共512行;所述Cache存储体32cache按行存储数据,用于存储数据地址对应的具体数据(FPGA软核1读取或写入的数据),单行128bit,共512行;所述Cache控制器33通过FPGA软核提供的数据地址,判断所需数据(FPGA软核1读取或写入的数据)是否在Dcache模块3中,即在Tag存储体31中找到与之匹配的内容(与FPGA软核提供的数据地址匹配),匹配则所需数据存在Cache存储体32中,否则无。
其中,Tag存储体31、Cache存储体32和Cache控制器33三者之间通过普通的寄存器或触发器进行相关的数据和控制信号传递。
优选的,所述Cache存储体32采用1路(way)、512个缓存行(Cache line)、每个缓存行4个32bit指令的存储结构。即,所述Dcache模块3采用1路、512个缓存行、每个缓存行4个32bit指令的直接映射方式进行读取数据或写入数据操作。其中,直接映射方式为当数据没有命中时,直接替换Dcache模块的某整块数据。
可选地,在本发明实施例中,Dcache模块3读写策略采用写回法与写分配法结合方式实现数据的回写,所述缓存行包括Valid(有效标记)位和Dirty(脏数据标记)位,其中,所述Valid位用于表示Cache line存储的数据是否有效,即当判断FPGA软核1所需数据是否在Dcache模块3时,先判断Cache line是否有效,若无效则不进行Tag比较;所述Dirty位用于判断缓存行中的数据是否更新。
当所述FPGA软核1发出数据请求时,即所述FPGA软核1进行读取数据或写入数据时,读取或写入的数据地址划分为三段,包括Tag段、Index段和DATA Index段。
若所述FPGA软核1的Tag地址与所述Dcache模块3的Tag地址一致,则表示命中;若所述FPGA软核1的Index地址与所述Dcache模块3的Index地址一致,则表示选中对应的缓存行;若所述FPGA软核1的DATA Index地址与所述Dcache模块3的DATA Index地址一致,则表示选中对应的32位数据。其中,DATA Index段为固定的4个,可支持4个(地址按4累加,该地址为所述FPGA软核1给出的数据地址)不同的32位数据在Dcache模块3中定位。
当所述FPGA软核1读取数据时,先从所述Dcache模块3中查找所需数据。具体的,所述FPGA软核1通过所述Dcache模块3采用直接映射方式进行读取数据操作包括,
S31、所述FPGA软核1发送数据读取请求;
S32、所述Dcache模块3接收数据读取请求,并判断所述FPGA软核1的Tag地址与所述Dcache模块3的Tag地址是否一致,一致即为命中;
S33、若命中,将所述Dcache模块3中的数据写入所述FPGA软核1;
S34、若未命中,判断当前缓存行的Dirty位是否为1,即判断当前缓存行的数据是否被更新;若是,执行步骤S35,若否,执行步骤S36;
S35、根据当前缓存行的Tag地址,将所述Dcache模块3中的数据回写至DDR中;
S36、将DDR中的数据读取到所述Dcache模块3,再将所述Dcache模块3读取的数据输入所述FPGA软核1。
当所述FPGA软核1写入数据时,所述FPGA软核1将数据写入所述Dcache模块3中。具体的,所述FPGA软核1通过所述Dcache模块3采用直接映射方式进行写入数据操作包括,
S41、所述FPGA软核1发送数据写入请求,
S42、所述Dcache模块3接收数据写入请求,并判断所述FPGA软核1的Tag地址与所述Dcache模块3的Tag地址是否一致,一致即为命中;
S43、若命中、且Dirty位为0,将所述FPGA软核1的数据写入所述Dcache模块3;
S44、若未命中,判断当前缓存行的Dirty位是否为1,即判断当前缓存行的数据是否被更新;若是,执行步骤S45,若否,执行步骤S46;
S45、根据当前缓存行的Tag地址,将所述Dcache模块3中的数据写入DDR中;再将DDR中地址与所述FPGA软核1的Tag地址对应块的数据写入所述Dcache模块3的缓存行;
S46、将DDR中地址与所述FPGA软核1的Tag地址对应块的数据写入所述Dcache模块3的缓存行,并将Dirty位置1。
上述步骤S35、根据当前缓存行的Tag地址,将所述Dcache模块3中的数据回写至DDR中;以及步骤S45、根据当前缓存行的Tag地址,将所述Dcache模块3中的数据写入DDR中;再将DDR中地址与所述FPGA软核1的Tag地址对应块的数据写入所述Dcache模块3的缓存行;均存在对数据回写至DDR,从而导致片外的存储设备DDR中的数据被更新后与Dcache模块3中数据不一致,需进行强制刷新或强制回写操作。
以上所述的仅是本发明的实施方式,在此应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
Claims (7)
1.一种基于FPGA的嵌入式数据缓存系统,其特征在于,包括FPGA软核、DDR控制器和Dcache模块,所述FPGA软核与所述DDR控制器、所述Dcache模块通过总线通信连接;
所述DDR控制器用于对外部DDR的数据访问;
所述Dcache模块用于进行数据的强制刷新或强制写回;
所述FPGA软核发送强制刷新或强制回写指令,所述Dcache模块接收强制刷新将所述Dcache模块中的Tag清零,或所述Dcache模块接收强制回写指令将所述Dcache模块中的数据回写至DDR。
2.根据权利要求1所述的基于FPGA的嵌入式数据缓存系统,其特征在于,所述Dcache模块包括Tag存储体、Cache存储体和Cache控制器,所述Tag存储体与地址总线连接,所述Cache存储体与数据总线连接,所述Cache控制器判断所述Tag存储体中的数据地址是否与所述FPGA软核提供的数据地址匹配,如是则所述FPGA软核读取或写入的数据存储在所述Cache存储体中。
3.根据权利要求2所述的基于FPGA的嵌入式数据缓存系统,其特征在于,所述Cache存储体采用1路、512个缓存行、每个缓存行4个32bit指令的存储结构。
4.根据权利要求3所述的基于FPGA的嵌入式数据缓存系统,其特征在于,所述缓存行包括Valid位和Dirty位,所述Dirty位用于判断缓存行中的数据是否更新。
5.根据权利要求1所述的基于FPGA的嵌入式数据缓存系统,其特征在于,所述FPGA软核进行读取数据或写入数据时,读取或写入的数据地址划分为三段,包括Tag段、Index段和DATA Index段,其中,
若所述FPGA软核的Tag地址与所述Dcache模块的Tag地址一致,则表示命中;
若所述FPGA软核的Index地址与所述Dcache模块的Index地址一致,则表示选中对应的缓存行;
若所述FPGA软核的DATA Index地址与所述Dcache模块的DATA Index地址一致,则表示选中对应的32位数据。
6.根据权利要求5所述的基于FPGA的嵌入式数据缓存系统,其特征在于,所述强制刷新包括,
S11、所述FPGA软核将待刷新数据的起始地址和数据长度,通过AHB总线发送至所述Dcache模块;
S12、所述FPGA软核发送强制刷新指令;同时,所述FPGA软核强制挂起;
S13、所述Dcache模块接收所述强制刷新指令;
S14、所述Dcache模块扫描每一条缓存行的Tag,并判断Tag是否命中;若命中将缓存行对应的Tag清零;若未命中,跳过该缓存行;
S15、强制刷新结束后,通过AHB总线将结束状态信息反馈至所述FPGA软核。
7.根据权利要求5所述的基于FPGA的嵌入式数据缓存系统,其特征在于,所述强制回写包括,
S21、所述FPGA软核将待回写数据的起始地址和数据长度,通过AHB总线发送至所述Dcache模块;
S22、所述FPGA软核发送强制回写指令;同时,所述FPGA软核强制挂起;
S23、所述Dcache模块接收所述强制回写指令;
S24、所述Dcache模块扫描每一缓存行的Tag,并判断Tag是否命中;若命中将对应的缓存行回写至DDR;若未命中,跳过该缓存行;
S25、强制回写结束后,通过AHB总线将结束状态信息反馈至所述FPGA软核。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011018471.7A CN112347031A (zh) | 2020-09-24 | 2020-09-24 | 基于fpga的嵌入式数据缓存系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011018471.7A CN112347031A (zh) | 2020-09-24 | 2020-09-24 | 基于fpga的嵌入式数据缓存系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112347031A true CN112347031A (zh) | 2021-02-09 |
Family
ID=74360468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011018471.7A Pending CN112347031A (zh) | 2020-09-24 | 2020-09-24 | 基于fpga的嵌入式数据缓存系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112347031A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102160040A (zh) * | 2008-09-17 | 2011-08-17 | 松下电器产业株式会社 | 高速缓存存储器、存储器系统、数据复制方法及数据改写方法 |
CN103279309A (zh) * | 2013-05-15 | 2013-09-04 | 清华大学 | 基于fpga的ddr控制装置及方法 |
CN108027778A (zh) * | 2015-09-19 | 2018-05-11 | 微软技术许可有限责任公司 | 与断言的存储指令相关联的预取 |
-
2020
- 2020-09-24 CN CN202011018471.7A patent/CN112347031A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102160040A (zh) * | 2008-09-17 | 2011-08-17 | 松下电器产业株式会社 | 高速缓存存储器、存储器系统、数据复制方法及数据改写方法 |
CN103279309A (zh) * | 2013-05-15 | 2013-09-04 | 清华大学 | 基于fpga的ddr控制装置及方法 |
CN108027778A (zh) * | 2015-09-19 | 2018-05-11 | 微软技术许可有限责任公司 | 与断言的存储指令相关联的预取 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6366977B1 (en) | Semiconductor storage device employing cluster unit data transfer scheme and data management method thereof | |
EP0548564B1 (en) | Storage device employing a flash memory | |
US7373452B2 (en) | Controller for controlling nonvolatile memory | |
US7064995B2 (en) | Storage device employing a flash memory | |
US8954648B2 (en) | Memory device and operating method thereof | |
US10042576B2 (en) | Method and apparatus for compressing addresses | |
KR20060127760A (ko) | 기억장치 | |
KR20060050585A (ko) | 반도체 기억장치 및 그 액세스 방법 및 메모리 제어 시스템 | |
CN105893275A (zh) | 缓存及读取即将写入储存单元的数据的方法以及使用该方法的装置 | |
US10929303B2 (en) | Data storage device utilizing virtual blocks to improve performance and data storage method thereof | |
CN106569732B (zh) | 数据迁移方法及装置 | |
US11386960B2 (en) | Semiconductor memory device | |
CN102859504B (zh) | 复制数据的方法和系统以及获得数据副本的方法 | |
WO2018090255A1 (zh) | 内存访问技术 | |
CN111258925B (zh) | 非易失内存的访问方法、装置、内存控制器、设备及介质 | |
CN110874337A (zh) | 一种ospi控制装置及方法 | |
KR20160024550A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN112347029A (zh) | 基于fpga的嵌入式数据缓存系统 | |
CN112347031A (zh) | 基于fpga的嵌入式数据缓存系统 | |
CN116540950B (zh) | 一种存储器件及其写入数据的控制方法 | |
EP0093428B1 (en) | Buffer storage including a swapping circuit | |
CN109710547B (zh) | 一种工业物联网中的缓冲内存管理设计与实现方法 | |
CN210639608U (zh) | 一种ospi控制装置 | |
US20100125444A1 (en) | Method And Apparatus For Reducing Read Latency In A Pseudo Nor Device | |
JPWO2015118623A1 (ja) | 情報処理装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210209 |
|
RJ01 | Rejection of invention patent application after publication |