CN102012872B - 一种用于嵌入式系统的二级缓存控制方法及装置 - Google Patents

一种用于嵌入式系统的二级缓存控制方法及装置 Download PDF

Info

Publication number
CN102012872B
CN102012872B CN2010105560459A CN201010556045A CN102012872B CN 102012872 B CN102012872 B CN 102012872B CN 2010105560459 A CN2010105560459 A CN 2010105560459A CN 201010556045 A CN201010556045 A CN 201010556045A CN 102012872 B CN102012872 B CN 102012872B
Authority
CN
China
Prior art keywords
request
address
read
data
write
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.)
Expired - Fee Related
Application number
CN2010105560459A
Other languages
English (en)
Other versions
CN102012872A (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.)
Fiberhome Telecommunication Technologies Co Ltd
Wuhan Fisilink Microelectronics Technology Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies 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 Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN2010105560459A priority Critical patent/CN102012872B/zh
Publication of CN102012872A publication Critical patent/CN102012872A/zh
Application granted granted Critical
Publication of CN102012872B publication Critical patent/CN102012872B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及一种用于嵌入式系统的二级缓存控制方法及装置,具体步骤如下:向端口仲裁和冲突检测模块发出写请求和/或读请求和/或预读请求;端口仲裁和冲突检测模块接收各请求后,仲裁出一个请求到下游模块,并给出响应到对应的上游模块;如果仲裁出读请求或预读请求,区分读命中或读不命中后,执行相应操作;如果仲裁出写请求,区分写命中或写不命中后,执行相应操作。本发明所述方法及装置,在嵌入式微处理器的指令地址连续时,将未来要读的数据通过预读操作,提前把数据从片外动态随机存储器中预读回来,除去数据流的首延迟,后续数据流中间无延迟,大大提高了嵌入式系统的效率并降低成本。

Description

一种用于嵌入式系统的二级缓存控制方法及装置
技术领域
本发明涉及嵌入式系统的设计领域,具体说是一种用于嵌入式系统的二级缓存控制方法及装置。可应用于高性能嵌入式系统芯片设计中数据存储提高效率的优化。
背景技术
随着嵌入式微处理器速度的提高,嵌入式微处理器的性能越来越受到片外动态随机存储器数据访问操作的影响,所述片外动态随机存储器可以是内存,例如:可以为DDR2内存,二级缓存(L2 CACHE)有效地解决了嵌入式微处理器和片外动态随机存储器之间的速度匹配问题。
相对于嵌入式微处理器频率以每年超过40%的速度提高,片外动态随机存储器的速度每年仅提高11%左右。可以预见,随着嵌入式微处理器与片外动态随机存储器之间的速度差异越来越大,二级缓存的设计将成为决定嵌入式系统整体性能的关键因素之一。
但传统的二级缓存仅由单一的替换算法来预测访问的局部性,并未充分考虑嵌入式系统的自身特点(比如连续性等),从而使得嵌入式系统中的二级缓存存在利用率低、控制性差的问题,导致整个嵌入式系统效率低。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种用于嵌入式系统的二级缓存控制方法及装置,目的在于解决进一步提高嵌入式系统效率的问题。
为达到以上目的,本发明采取的技术方案是:
一种用于嵌入式系统的二级缓存控制方法,其特征在于,其具体步骤如下:
步骤15:客户写请求处理:
步骤15.1,客户写请求、写请求对应信息和要写入片外动态随机存储器14的数据由嵌入式微处理器13按AMBA总线协议转换成AHB接口信号,所述写请求对应信息至少包括地址和步长;
步骤15.2,客户写请求接口模块4接收步骤15.1得到的AHB接口信号;
步骤15.3,客户写请求接口模块4锁存客户写请求、写请求对应信息和要写入片外动态随机存储器14的数据:客户写请求接口模块4将客户写请求、写请求对应信息按先后顺序放入同一个FIFO寄存器,客户写请求接口模块4将要写入片外动态随机存储器14的数据放在两块RAM中,完成锁存操作;
步骤15.4,客户写请求接口模块4向端口仲裁和冲突检测模块6发出写请求,由端口仲裁和冲突检测模块6完成地址相关性检测,所有的客户写请求都需经过地址相关性检测,无冲突后才被执行;
步骤16:客户读请求处理:
步骤16.1,客户读请求和读请求对应信息由嵌入式微处理器13按AMBA总线协议转换成AHB接口信号,所述读请求对应信息至少包括客户读地址;
步骤16.2,客户读请求接口和产生预读模块5接收步骤16.1得到的AHB接口信号;
步骤16.3,在客户读请求能被立即响应的情况下,不锁存客户读请求,向端口仲裁和冲突检测模块6发出读请求;
步骤16.4,若有地址相关性的数据竞争,客户读请求不能被立即响应,则锁存客户读请求和读请求对应信息直到该读请求对应地址的相关性的数据竞争消除后,才响应该客户读请求;所述地址相关性的数据竞争至少包括读后读RAR和先写后读RAW;
步骤17:当步骤16中有地址相关性的数据竞争的读请求被响应后,客户读请求接口和产生预读模块5产生预读操作,向端口仲裁和冲突检测模块6发出预读请求;
步骤18:端口仲裁和冲突检测模块6接收步骤15、步骤16和步骤17输出的写请求和/或读请求和/或预读请求后,根据优先级机制和地址相关性准则,仲裁出一个请求到下游模块,并给出响应到对应的上游模块,所述下游模块包括探测结果和更新控制模块10和写访存模块11,所述上游模块包括客户写请求接口模块4和客户读请求接口和产生预读模块5;
所采用的优先级机制为:写请求>读请求>预读请求,
所述端口仲裁和冲突检测模块6提供了相关性的消除机制,端口仲裁和冲突检测模块6将接收到请求根据优先级机制和地址相关性准则,挑选出一个请求,发出读TAG探测,将仲裁出的请求给到探测结果和更新控制模块10;
所述端口仲裁和冲突检测模块6有三个地址状态寄存器表:写请求地址状态寄存器表、读请求地址状态寄存器表、预读请求地址状态寄存器表,这三个表用于相关性检测和相关性消除;
步骤18.1,若为写请求,将写请求对应地址与读请求地址状态寄存器表、写请求地址状态寄存器表和预读请求地址状态寄存器表中有效地址进行比较,若与其中一个地址相等,则有地址相关性;若都不等,则无冲突,转步骤18.2;
步骤18.2,无冲突时,给出客户写请求接口模块4响应,同时给标记随机存储器7发读TAG探测使能,并将该写地址放入写请求地址状态寄存器表,将该地址对应寄存器有效位置高,直到该地址对应数据写入片外动态随机存储器14才拉低有效位;若与其中某一地址相等,则有冲突,要等对应该地址的有效位变低后才发该地址的读TAG探测使能,所述标记随机存储器采用两组相联的缓存结构,由两块1R1W的RAM组成,用于存储标记,即TAG值;
步骤18.3,若为读请求或预读请求,请求对应地址需与写请求地址状态寄存器表和预读请求地址状态寄存器表中的有效地址进行比较,看是否有地址相关性的数据竞争,所述地址相关性的数据竞争至少包括读后读RAR和先写后读RAW;
若有地址相关性的数据竞争,则等待之前地址相关性的请求操作完成,消除地址相关性的数据竞争后,才将请求转出去;
步骤19:如果步骤18仲裁出读请求或预读请求,则执行以下步骤:
探测结果和更新控制模块10接受端口仲裁和冲突检测模块6给出的请求和来自标记随机存储器TAG RAM的两个TAG值,将来自标记随机存储器的两个TAG值与请求地址中的TAG值比较,两个来自标记随机存储器的TAG值中有一个与读请求地址中的TAG值相等,则判断为读命中,若两个来自标记随机存储器的TAG值中没有一个与读请求地址中的TAG值相等,则判断为读不命中;
若相等判断为读命中,即请求地址要操作的数据就在存放数据的数据随机存储器DATA RAM中,若读命中,转至步骤21;
若不等则判断为读不命中,即请求地址要操作的数据不在数据随机存储器中,需操作片外动态随机存储器14,若读不命中,转至步骤22;所述数据随机存储器采用两组相联的缓存结构,由两块1R1W的RAM组成,用于存储数据;标记随机存储器和数据随机存储器构成二级缓存;
步骤20:如果步骤18仲裁出写请求,则执行以下步骤:
探测结果和更新控制模块10接受端口仲裁和冲突检测模块6给出的请求和来自标记随机存储器的两个TAG值,将来自标记随机存储器的两个TAG值与写请求地址中的TAG值比较,两个来自标记随机存储器的TAG值中有一个与写请求地址中的TAG值相等,则判断为写命中,若两个来自标记随机存储器的TAG值中没有一个与写请求地址中的TAG值相等,则判断为写不命中;
所述探测结果和更新控制模块10有一个寄存器,用于存放命中的写请求和写请求对应信息;
若相等判断为写命中,若写命中,转至步骤23;
若不等则判断为写不命中,若写不命中,转至步骤24;
步骤21:判断为读命中后,直接从数据随机存储器中读取客户所需数据返回给嵌入式微处理器13;即:直接读取数据随机存储器中的数据返回给嵌入式微处理器13;
步骤22:判断为读不命中后,需将客户读请求转化为外部存储区控制接口上的读请求信号,通过外部存储区控制接口从片外动态随机存储器14读回整块数据,在探测结果和更新控制模块10控制下将相应数据回填写入数据随机存储器中,同时给出客户所需数据返回给嵌入式微处理器13;
步骤23:判断为写命中后,根据探测结果和更新控制模块10中寄存器锁存的写请求对应信息,从客户写请求接口模块4中的两块数据RAM中的一块内取出对应数据直接写数据随机存储器,同时写访存模块11根据写请求对应信息,从客户写请求接口模块4中的另外一块数据RAM取出对应数据,转化为符合外部存储区控制接口的客户写请求信号和数据,写入片外动态随机存储器14;不管是否写命中,所有的写请求对应的数据都要写入片外动态随机存储器14;
步骤24:判断为写不命中后,写访存模块11将写请求对应信息和要写入片外动态随机存储器14的数据转化为符合外部存储区控制接口的客户写请求和数据,通过外部存储区控制接口写入片外动态随机存储器14。
在上述技术方案的基础上,步骤15.4中所述客户写请求的地址相关性检测的具体步骤如下:端口仲裁和冲突检测模块6将待执行的写请求对应的地址,与之前已发但读写操作未完成的地址进行比对,若有相等的情况,则认为地址相关,需等待之前地址相关性的请求对应的地址的读写操作完成后,才可将客户写请求、写请求对应信息转给探测结果和更新控制模块10和写访存模块11,此时,要写入片外动态随机存储器14的数据不跟随客户写请求、写请求对应信息往后走,而是存储在客户写请求接口模块4中。
在上述技术方案的基础上,步骤24具体操作如下:写访存模块11根据写请求对应信息把要写入片外动态随机存储器14的数据按步长和地址写入片外动态随机存储器14的对应地址中。
在上述技术方案的基础上,所述AHB接口信号是AMBA2.0的一个子集,只有某AHB端口被响应后才能切换到下一个AHB端口。
在上述技术方案的基础上,同一标记随机存储器地址对应两块构成标记随机存储器的RAM,但构成标记随机存储器的两块RAM中存放的TAG值不等,同一数据随机存储器地址对应两块构成数据随机存储器的RAM,但构成数据随机存储器的两块RAM中存放的数据也不同,以减少不命中率,
所述数据随机存储器地址格式如下:
  组号(12bit)   块内首地址(2bit,以字为单位)
所述标记随机存储器地址格式如下:
Figure BSA00000356842500061
所述组成标记随机存储器的RAM的内容分配是:
 TAG(9bit)   Valid(4bit,每位对应BYTE)
所述AHB接口信号中包含的地址信息格式如下:
 TAG(9bit)  组号(12bit)   块内首地址(2bit,以字为单位)
地址内均包含组号信息,地址可唯一确定组号,但同一组号可能对应不同的地址。
在上述技术方案的基础上,通过寄存器配置,给定客户读地址与预读地址相差阈值参数pf_num_limit的取值,给定该阈值后,当客户读地址与预读地址相差超过阈值,则预读动作以当前客户读地址为基础进行预读,即停止向前预读,以免从片外动态随机存储器14超前预读的数据转头将先前预读的数据覆盖,造成客户读不命中的结果。
在上述技术方案的基础上,客户读请求接口和产生预读模块5根据客户读请求做预读动作,预读回客户将来要读的数据,客户读请求接口和产生预读模块5结合嵌入式系统读取数据时地址具局部性和连续性的特点,设计连续命中的预读地址图案,
读地址连续是指TAG值相等且组号相差为4或4以内,
预读地址图案通过以下步骤生成:
将当前客户读请求对应地址与上一轮客户读请求对应地址进行比较,TAG值相等且组号相差在4以内,且当前客户读请求对应地址与上轮发出的最后一个预读地址相差不超过阈值pf_num_limit,则认为地址关联;
由客户读请求启动一轮预读,若本轮客户读请求地址与上轮客户读请求地址关联,预读地址在上轮发出的最后一个预读地址基础上加4,作为新一轮预读首地址;若地址不关联,则预读地址以本轮读客户地址为基础加4,作为新一轮预读首地址。
在上述技术方案的基础上,某一时间段被频繁访问的数据,优先停留在二级缓存中:采用了LRU替换原则,其具体替换步骤如下:
对应每个标记随机存储器地址都有一个LRU位,当LRU为0,则将从片外动态随机存储器14取回的数据回填入数据随机存储器中的标号为1的RAM;
若LRU为1,则将从片外动态随机存储器14取回的数据回填入数据随机存储器中的标号为0的RAM;
每次访问标记随机存储器中的某行,如果命中,LRU值修改为命中行。
在上述技术方案的基础上,端口仲裁和冲突检测模块6提供了四种类型相关性的消除机制:读后读RAR、写后写WAW、先写后读相关RAW、先读后写相关WAR性消除策略。
一种实现上述用于嵌入式系统的二级缓存控制方法的装置,其特征在于:二级缓存及二级缓存控制装置12通过AMBA总线与嵌入式微处理器13连接,接受来自嵌入式微处理器13的读、写请求指令;
二级缓存及二级缓存控制装置12根据读、写请求指令对应地址从片外动态随机存储器14中读取或写入数据;
所述二级缓存及二级缓存控制装置12包括:
客户写请求接口模块4,接受嵌入式微处理器13发来的写请求、写请求对应信息和要写入片外动态随机存储器14的数据,其输出送至端口仲裁和冲突检测模块6,
客户读请求接口和产生预读模块5,接受嵌入式微处理器13发来的读请求和读请求对应信息,其输出送至端口仲裁和冲突检测模块6,
端口仲裁和冲突检测模块6,分别和标记随机存储器7、数据随机存储器8、探测结果和更新控制模块10、写访存模块11连接,
用于存储TAG值的标记随机存储器7,接收经LRU控制替换模块9发来的命中指示,接收经探测结果和更新控制模块10发来的数据作为标记随机存储器RAM的内容,所述标记随机存储器采用两组相联的缓存结构,由两块1R1W的RAM组成,
用于存储数据的数据随机存储器8,接收经LRU控制替换模块9发来的命中指示,接收经探测结果和更新控制模块10发来的数据,所述数据随机存储器采用两组相联的缓存结构,由两块1R1W的RAM组成,
LRU控制替换模块9,接收经探测结果和更新控制模块10发来的数据,
探测结果和更新控制模块10,与片外动态随机存储器14连接,
写访存模块11,与片外动态随机存储器14连接,
标记随机存储器和数据随机存储器构成二级缓存;
客户写请求接口模块4内设有两块RAM,两块RAM中存储的数据一致,一块RAM中的部分数据写入数据随机存储器,另一块RAM中的数据要写入片外动态随机存储器14;
客户写请求接口模块4内还设有一个FIFO寄存器;
所述探测结果和更新控制模块10有一个用于存放命中的写请求和写请求对应信息的寄存器。
本发明所述的用于嵌入式系统的二级缓存控制方法及装置,在嵌入式微处理器的指令地址连续时,将未来要读的数据通过预读操作,提前把数据从片外动态随机存储器中预读回来,除去数据流的首延迟,后续数据流中间无延迟,大大提高了嵌入式系统的效率并降低成本。其具有以下特色和优点:
1、所述嵌入式系统,从片外动态随机存储器中读取数据时地址具局部性和连续性;
2、嵌入式微处理器与二级缓存间的接口信号是AMBA2.0的一个子集;
3、给定客户读地址与预读地址相差阈值,避免预读动作超前太多导致客户读不命中;
4、构成二级缓存的标记随机存储器(TAG RAM)和数据随机存储器(DATA RAM)均采用两组相联的缓存结构,以提高命中率;
5、由客户读请求启动预读,预读回客户将来要读的数据;
6、提供了四种类型地址相关性的消除机制;
7、被客户频繁访问的数据,优先停留在二级缓存中。
附图说明
本发明有如下附图:
图1:嵌入式系统的存储子系统结构框图。
图2:本发明所述的用于嵌入式系统的二级缓存控制装置的结构示意图。
图3:本发明所述的用于嵌入式系统的二级缓存控制方法的工作流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
图1为嵌入式系统的存储子系统结构框图。如图1所示,二级缓存2与嵌入式微处理器1之间通过AMBA(高级微控制器总线架构)总线连接,二级缓存2与片外动态随机存储器(可简称为外存)3之间通过外部存储区控制接口连接。所述AMBA总线和外部存储区控制接口均可采用现有技术实现。
本发明所述的用于嵌入式系统的二级缓存控制方法,工作流程图如图3所示,其具体步骤如下:
步骤15:客户写请求处理:
步骤15.1,客户写请求、写请求对应信息和要写入片外动态随机存储器14的数据由嵌入式微处理器13按AMBA总线协议转换成AHB接口信号,所述写请求对应信息至少包括地址和步长;
步骤15.2,客户写请求接口模块4接收步骤15.1得到的AHB接口信号;
步骤15.3,客户写请求接口模块4锁存客户写请求、写请求对应信息和要写入片外动态随机存储器14的数据:客户写请求接口模块4将客户写请求、写请求对应信息按先后顺序放入同一个FIFO(先进先出)寄存器,客户写请求接口模块4将要写入片外动态随机存储器14的数据放在两块RAM中,完成锁存操作;
客户写请求、写请求对应信息和要写入片外动态随机存储器14的数据放在不同的地方的:客户写请求、写请求对应信息放在FIFO寄存器中,客户写请求接口模块4内设有两块RAM,数据存两份,均放在两块RAM中;所述FIFO(先进先出)寄存器可设置在客户写请求接口模块4内,亦可单独设置;
步骤15.4,客户写请求接口模块4向端口仲裁和冲突检测模块6发出写请求,由端口仲裁和冲突检测模块6完成地址相关性检测,所有的客户写请求都需经过地址相关性检测,无冲突后才被执行;
所述客户写请求的地址相关性检测的具体步骤如下:端口仲裁和冲突检测模块6将待执行的写请求对应的地址(所述待执行的写请求对应的地址来自写请求对应信息内),与之前已发但读写操作未完成的地址进行比对,若有相等的情况,则认为地址相关,需等待之前地址相关性的请求(这里的请求包括所有的已发出但未被响应的写请求、读请求和预读请求)对应的地址的读写操作完成后,才可将客户写请求、写请求对应信息转给探测结果和更新控制模块10和写访存模块11,此时,要写入片外动态随机存储器14的数据不跟随客户写请求、写请求对应信息往后走,而是存储在客户写请求接口模块4中:在客户写请求接口模块4中,有两块RAM(随机存储器)将要写入片外动态随机存储器14的数据存储起来,客户写请求接口模块4中的两块RAM中存储的数据一致,有写命中时探测结果和更新控制模块10才根据对应的客户写请求和写请求对应信息到其中一块RAM中取相应的数据,写访存模块11也会根据客户写请求和写请求对应信息到其中另一块RAM中取相应的数据;
步骤16:客户读请求处理:
步骤16.1,客户读请求和读请求对应信息由嵌入式微处理器13按AMBA总线协议转换成AHB接口信号,所述读请求对应信息至少包括客户读地址;
步骤16.2,客户读请求接口和产生预读模块5接收步骤16.1得到的AHB接口信号;
步骤16.3,在客户读请求能被立即响应的情况下,不锁存客户读请求,向端口仲裁和冲突检测模块6发出读请求;
步骤16.4,若有地址相关性的数据竞争,客户读请求不能被立即响应,则锁存客户读请求和读请求对应信息直到该读请求对应地址的相关性的数据竞争消除后,才响应该客户读请求;所述地址相关性的数据竞争至少包括读后读RAR和先写后读RAW;
步骤17:当步骤16中有地址相关性的数据竞争的读请求被响应后,客户读请求接口和产生预读模块5产生预读操作,向端口仲裁和冲突检测模块6发出预读请求;预读是为了保证客户读地址连续的读请求能连续命中;
步骤18:端口仲裁和冲突检测模块6接收步骤15、步骤16和步骤17输出的写请求和/或读请求和/或预读请求后,根据优先级机制和地址相关性准则,仲裁出一个请求到下游模块,并给出响应到对应的上游模块,所述下游模块包括探测结果和更新控制模块10和写访存模块11,所述上游模块包括客户写请求接口模块4和客户读请求接口和产生预读模块5;
所采用的优先级机制为:写请求>读请求>预读请求,
所述端口仲裁和冲突检测模块6提供了相关性的消除机制,端口仲裁和冲突检测模块6将接收到请求根据优先级机制(优先级原则)和地址相关性准则(地址相关性检测),挑选出一个请求,发出读TAG探测(标记探测),将仲裁出的请求给到探测结果和更新控制模块10;
所述端口仲裁和冲突检测模块6有三个地址状态寄存器表:写请求地址状态寄存器表、读请求地址状态寄存器表、预读请求地址状态寄存器表,这三个表用于相关性检测和相关性消除;
步骤18.1,若为写请求,将写请求对应地址与读请求地址状态寄存器表、写请求地址状态寄存器表和预读请求地址状态寄存器表中有效地址进行比较,若与其中一个地址相等,则有地址相关性;若都不等,则无冲突,转步骤18.2;
步骤18.2,无冲突时,给出客户写请求接口模块4响应,同时给标记随机存储器7发读TAG探测使能,并将该写地址放入写请求地址状态寄存器表,将该地址对应寄存器有效位置高,直到该地址对应数据写入片外动态随机存储器14才拉低有效位;若与其中某一地址相等,则有冲突,要等对应该地址的有效位变低后才发该地址的读TAG探测使能,所述标记随机存储器采用两组相联的缓存结构,由两块1R1W的RAM组成,用于存储标记(TAG值);
步骤18.3,若为读请求或预读请求,请求对应地址需与写请求地址状态寄存器表和预读请求地址状态寄存器表中的有效地址进行比较,看是否有地址相关性的数据竞争,所述地址相关性的数据竞争至少包括读后读RAR和先写后读RAW;
若有地址相关性的数据竞争,则等待之前地址相关性的请求操作完成,消除地址相关性的数据竞争后,才将请求转出去;
步骤19:如果步骤18仲裁出读请求或预读请求,则执行以下步骤:
探测结果和更新控制模块10接受端口仲裁和冲突检测模块6给出的请求和来自标记随机存储器(TAG RAM)的两个TAG值,将来自标记随机存储器的两个TAG值与请求地址中的TAG值比较,两个来自标记随机存储器的TAG值中有一个与读请求地址中的TAG值相等,则判断为读命中,若两个来自标记随机存储器的TAG值中没有一个与读请求地址中的TAG值相等,则判断为读不命中;
若相等判断为读命中,即请求地址要操作的数据就在存放数据的数据随机存储器(DATA RAM)中,若读命中,转至步骤21;
若不等则判断为读不命中,即请求地址要操作的数据不在数据随机存储器中,需操作片外动态随机存储器14,若读不命中,转至步骤22;所述数据随机存储器采用两组相联的缓存结构,由两块1R1W的RAM组成,用于存储数据;标记随机存储器(TAG RAM)和数据随机存储器(DATA RAM)构成二级缓存;
步骤20:如果步骤18仲裁出写请求,则执行以下步骤:
探测结果和更新控制模块10接受端口仲裁和冲突检测模块6给出的请求和来自标记随机存储器的两个TAG值,将来自标记随机存储器的两个TAG值与写请求地址中的TAG值比较,两个来自标记随机存储器的TAG值中有一个与写请求地址中的TAG值相等,则判断为写命中,若两个来自标记随机存储器的TAG值中没有一个与写请求地址中的TAG值相等,则判断为写不命中;
所述探测结果和更新控制模块10有一个寄存器,用于存放命中的写请求和写请求对应信息;若读不命中,从片外动态随机存储器14取回数据需在该模块控制下将相应数据回填写入数据随机存储器中,而写命中也要操作数据随机存储器,数据随机存储器由两块1R1W的RAM组成,共用写口,需避开冲突,故采用寄存器锁存写命中信息(存放命中的写请求和写请求对应信息);
若相等判断为写命中,若写命中,转至步骤23;
若不等则判断为写不命中,若写不命中,转至步骤24;
步骤21:判断为读命中后,直接从数据随机存储器中读取客户所需数据返回给嵌入式微处理器13;即:直接读取数据随机存储器中的数据返回给嵌入式微处理器13;
步骤22:判断为读不命中后,需将客户读请求转化为外部存储区控制接口上的读请求信号,通过外部存储区控制接口从片外动态随机存储器14读回整块数据,在探测结果和更新控制模块10控制下将相应数据回填写入数据随机存储器中,同时给出客户所需数据返回给嵌入式微处理器13;
步骤23:判断为写命中后,根据探测结果和更新控制模块10中寄存器锁存的写请求对应信息,从客户写请求接口模块4中的两块数据RAM中的一块内取出对应数据直接写(更新)数据随机存储器,同时写访存模块11根据写请求对应信息,从客户写请求接口模块4中的另外一块数据RAM取出对应数据,转化为符合外部存储区控制接口的客户写请求信号和数据,写入片外动态随机存储器14;不管是否写命中,所有的写请求对应的数据都要写入片外动态随机存储器14;
步骤24:判断为写不命中后,写访存模块11将写请求对应信息和要写入片外动态随机存储器14的数据转化为符合外部存储区控制接口的客户写请求和数据,通过外部存储区控制接口写入片外动态随机存储器14,具体操作如下:
写访存模块11根据写请求对应信息把要写入片外动态随机存储器14的数据按步长和地址写入片外动态随机存储器14的对应地址中。
在上述技术方案的基础上,所述AHB接口信号是AMBA2.0的一个子集,只有某AHB端口被响应后才能切换到下一个AHB端口。
在上述技术方案的基础上,所述构成二级缓存的标记随机存储器(TAG RAM)和数据随机存储器(DATA RAM)均采用两组相联的缓存结构,即:由两块1R1W的RAM组成标记随机存储器存放TAG值,两块1R1W的RAM组成数据随机存储器存放数据;
同一标记随机存储器地址对应两块构成标记随机存储器的RAM,但构成标记随机存储器的两块RAM中存放的TAG值不等,同一数据随机存储器地址对应两块构成数据随机存储器的RAM,但构成数据随机存储器的两块RAM中存放的数据也不同,以减少不命中率,
所述数据随机存储器地址格式如下:
 组号(12bit)   块内首地址(2bit,以字为单位)
所述标记随机存储器地址格式如下:
Figure BSA00000356842500151
所述组成标记随机存储器的RAM的内容分配是:
 TAG(9bit)  Valid(4bit,每位对应BYTE)
所述AHB接口信号中包含的地址信息格式如下:
 TAG(9bit)  组号(12bit)   块内首地址(2bit,以字为单位)
地址内均包含组号信息,地址可唯一确定组号,但同一组号可能对应不同的地址。其中,标记存储器的地址就是组号,12位的组合加上9位TAG值,相当于是AHB接口地址了(没有块内首地址,只需看整个数据块是否在DATA RAM中即可,所以不需块地址),就能确定一个数据块是否在DATA RAM中了。
在上述技术方案的基础上,通过寄存器配置,给定客户读地址与预读地址相差阈值参数pf_num_limit的取值,该阈值避免因预读地址超过客户读地址太多,导致超前所做的预读动作无效;给定该阈值后,当客户读地址与预读地址相差超过阈值,则预读动作以当前客户读地址为基础进行预读,即停止向前预读,以免从片外动态随机存储器14超前预读的数据转头将先前预读的数据覆盖,造成客户读不命中的结果。
在上述技术方案的基础上,客户读请求接口和产生预读模块5根据客户读请求做预读动作,预读回客户将来要读的数据,客户读请求接口和产生预读模块5结合嵌入式系统读取数据时地址具局部性和连续性的特点,设计连续命中的预读地址图案,预读主要是保证客户读地址连续的读请求能连续命中,读地址连续是指TAG值相等且组号相差为4或4以内,即:在TAG值相等基础上,组号相差大于等于0且小于等于4即视为客户读地址连续,预读地址图案通过以下步骤生成:
将当前客户读请求对应地址与上一轮客户读请求对应地址进行比较,TAG值相等且组号相差在4以内,且当前客户读请求对应地址与上轮发出的最后一个预读地址相差不超过阈值pf_num_limit,则认为地址关联;
由客户读请求启动一轮预读,若本轮客户读请求地址与上轮客户读请求地址关联,预读地址在上轮发出的最后一个预读地址基础上加4,作为新一轮预读首地址;若地址不关联,则预读地址以本轮读客户地址为基础加4,作为新一轮预读首地址。
在上述技术方案的基础上,某一时间段被频繁访问的数据,优先停留在二级缓存中:采用了LRU替换原则,由于构成二级缓存的标记随机存储器(TAG RAM)和数据随机存储器(DATA RAM)均采用两组相联的缓存结构,当读不命中需从片外动态随机存储器14取数据回填数据随机存储器时,由于数据随机存储器包括有两块RAM,替换哪块数据不确定,如果不采用控制策略,可能被替换出去的数据正好是频繁被访问的数据,则导致后续不命中,降低了系统效率;
所述LRU替换原则是最近最少使用的条目被替换出去,其具体替换步骤如下:
对应每个标记随机存储器地址都有一个LRU位,当LRU为0,则将从片外动态随机存储器14取回的数据回填入数据随机存储器中的标号为1的RAM;
若LRU为1,则将从片外动态随机存储器14取回的数据回填入数据随机存储器中的标号为0的RAM;
每次访问标记随机存储器中的某行,如果命中,LRU值修改为命中行;
LRU控制中采用1R1W的RAM结构,这样的替换原则,保证了频繁用到的数据所在的RAM一直不被替换出去,提高命中率。
在上述技术方案的基础上,端口仲裁和冲突检测模块6提供了四种类型相关性的消除机制:读后读RAR(Read After Read)、写后写WAW(Write After Write)、先写后读相关RAW(Read After Write)、先读后写相关WAR(Write After Read)性消除策略;各种相关性的类别是根据客户读写请求和预读操作二级缓存(指的是整个技术方案,整个技术方案实现的就是个二级缓存的功能,在二级缓存中用两块数据随机存储器存储数据,用两块标记随机存储器存储标记)的先后次序不同,出现的竞争:
(1)读后读RAR(Read After Read):先后读同一地址的数据本不会引起数据冲突;出现竞争的步骤如下:
A0、对于两组相连的缓存结构,若先后读(先一次预读,后一次客户读)同一地址都是不命中,则都会从片外动态随机存储器14侧取对应数据,回填到二级缓存同一地址的两块不同RAM中,即标记随机存储器和数据随机存储器同一地址对应的TAG值和数据都相同;
A1、随后若再发生该地址的一次写操作,此时必写命中,随便写入哪块RAM都可以;
A2、随后再发生该地址的读操作,由于两块标记随机存储器的TAG值相等,能否读出写入的新数据不确定,而且同一地址两块RAM存放相同数据也是一种资源浪费;
读后读相关性的解决:读后读经端口仲裁和冲突检测模块挑选并发出一个读请求TAG探测后,该请求地址放入端口仲裁和冲突检测模块中的读地址比较队列寄存器,并将对应有效位拉高;后面再来读请求时,是否发出本轮读请求的读TAG探测,先与读地址比较寄存器中有效位为高的地址进行比较,都不等时才发出TAG探测;若相等,则等待之前同地址读操作完成后,即有效位拉低,才发出本轮读请求的读TAG探测;因为之前同地址读操作完成,表示已经从片外动态随机存储器14侧取回对应数据,并将对应TAG值和数据分别回填入标记随机存储器和数据随机存储器;本轮读请求的读TAG探测结果肯定为命中,则直接从数据随机存储器中读取数据,而不会从片外动态随机存储器14侧取数据;则避免了同地址先后从片外动态随机存储器14侧读取数据,也不会造成资源浪费;
(2)写后写WAW(Write After Write):先后写同一地址的数据本不会引起数据冲突;出现竞争的步骤如下:
B0、反复写同一地址的不同字节;
B1、有该地址的读请求;
若该地址写不命中,则需等该地址所有字节写请求写入片外存储之后,由片外的回馈信号才可拉低端口仲裁和冲突检测模块中的写地址比较队列寄存器中该地址的有效位;若写命中,为提高效率,此时的写命中信息也会拉低该地址对应的有效位,同时,片外的回馈信号也会拉低该地址对应的有效位,导致错误的拉低了该地址的有效位。再有该地址的读请求信号,错误发出读请求TAG探测,可能写命中的数据还未写入数据随机存储器,则读出的数据肯定不对。
WAW数据竞争的解决:同地址的写请求,等上一次写做完之后,下一个同地址不同字节的写才可做写请求TAG探测。同时,端口仲裁和冲突检测模块中的写地址比较队列寄存器中地址的有效位都由片外的回馈信号拉低,这样也不会出现错误的拉低有效位的情况。
(3)先写后读相关RAW(Read After Write):写请求和读请求操作同一地址,写请求还未将数据写入片外动态随机存储器14侧,读请求就读出一个不正确的旧数据,这是一种最普遍的数据竞争;
RAW数据竞争的解决:同地址的读请求等写请求做完后,才发出读请求的读TAG探测;写请求做完分两种情况:一种写不命中,即写请求的读TAG探测结果为写不命中,写请求对应数据需写入片外动态随机存储器14后,才算写请求做完;第二种情况写命中,即写请求的读TAG探测结果为写命中,写请求对应数据既写入数据随机存储器也写入片外动态随机存储器14,数据写入数据随机存储器就认为写请求做完,不会等到数据写入片外动态随机存储器14,减少等待时间,提高效率;等同地址的写请求做完后才发读请求的读TAG探测的操作,对整个系统效率有一定程度的影响,但保证了正确性;
(4)先读后写相关WAR(Write After Read):在二级缓存(L2CACHE)中用于存储数据的数据随机存储器采用1R1W RAM,读请求命中后可直接读取数据,而同一地址后来的写请求(同地址的读请求命中,则后来的写请求必为写命中),需进探测结果和更新控制模块的写命中队列来避开数据回填的冲突,将后来的写请求操作更加推迟,即不会出现先发的应读旧数据的读请求,却读出后发的写请求的新数据;但设计中采用了预读操作,即先发的读请求产生的预读请求可能会跟后来的写请求的地址相等;出现如下问题:若先发的读请求产生的预读请求为不命中,需向片外动态随机存储器14侧取数据,数据未写入数据随机存储器,还在返回途中时又有同地址的写请求,因为之前的该地址的预读不命中,则该地址的写请求TAG探测也为不命中;
设计采用“写通,写MISS不分配”模式,“写通”就是写命中的数据既写二级缓存同时也写片外动态随机存储器14,“不分配”表示写MISS的数据写入片外动态随机存储器14后不会再从片外动态随机存储器14返回二级缓存;写通模式意味写方向无真正意义上的二级缓存;故写不命中时,直接将数据写入片外动态随机存储器14,而同一地址的预读请求已将数据从片外动态随机存储器14中取出,准备回填入数据随机存储器;这就会出现对于同一地址,片外动态随机存储器14和二级缓存中数据却不一致的问题;若后续再有该地址的读请求,则读命中,但读出数据不对;
WAR数据竞争的解决:把同地址的读、预读和写请求串行做;即发出预读操作后,等该地址预读操作完成,才做写请求;预读操作完成也分两种情况:一种情况是预读请求的读TAG探测结果为命中,则就认为预读操作完成,这种情况也不会导致上述的问题;主要是第二种情况,预读请求的读TAG探测结果为不命中,则需等待从片外动态随机存储器14取回响应数据,并将该地址对应的TAG值和数据分别回填入标记随机存储器和数据随机存储器,回填完之后,才认为预读操作完成;此时,由于对应地址的TAG和数据回填完成,发写请求的读TAG探测时,肯定写命中,则采用写通模式,将写请求对应数据写二级缓存同时也写片外动态随机存储器14;若后续再有该地址的读请求,则读命中,读出数据亦正确。
图2为本发明所述的用于嵌入式系统的二级缓存控制装置的结构示意图,如图1、2所示,二级缓存及二级缓存控制装置12通过AMBA总线与嵌入式微处理器13连接,接受来自嵌入式微处理器13的读、写请求指令;
二级缓存及二级缓存控制装置12根据读、写请求指令对应地址从片外动态随机存储器14中读取或写入数据;
所述二级缓存及二级缓存控制装置12包括:
客户写请求接口模块4,接受嵌入式微处理器13发来的写请求、写请求对应信息和要写入片外动态随机存储器14的数据,其输出送至端口仲裁和冲突检测模块6,
客户读请求接口和产生预读模块5,接受嵌入式微处理器13发来的读请求和读请求对应信息,其输出送至端口仲裁和冲突检测模块6,
端口仲裁和冲突检测模块6,分别和标记随机存储器(TAG RAM)7、数据随机存储器(DATA RAM)8、探测结果和更新控制模块10、写访存模块11连接,
用于存储TAG值的标记随机存储器(TAG RAM)7,接收经LRU(最近最少使用)控制替换模块9发来的命中指示,接收经探测结果和更新控制模块10发来的数据作为标记随机存储器RAM的内容,所述标记随机存储器采用两组相联的缓存结构,由两块1R1W的RAM组成,
用于存储数据的数据随机存储器(DATA RAM)8,接收经LRU(最近最少使用)控制替换模块9发来的命中指示,接收经探测结果和更新控制模块10发来的数据,所述数据随机存储器采用两组相联的缓存结构,由两块1R1W的RAM组成,
LRU(最近最少使用)控制替换模块9,接收经探测结果和更新控制模块10发来的数据,
探测结果和更新控制模块10,与片外动态随机存储器14连接,
写访存模块11,与片外动态随机存储器14连接,
标记随机存储器(TAG RAM)和数据随机存储器(DATA RAM)构成二级缓存。
在上述技术方案的基础上,客户写请求接口模块4内设有两块RAM,两块RAM中存储的数据一致,一块RAM中的部分数据(即判断为写命中)写入数据随机存储器(DATA RAM),另一块RAM中的数据要写入片外动态随机存储器14。
在上述技术方案的基础上,客户写请求接口模块4内还设有一个FIFO(先进先出)寄存器。
在上述技术方案的基础上,所述探测结果和更新控制模块10有一个用于存放命中的写请求和写请求对应信息的寄存器。
在上述技术方案的基础上,二级缓存与片外动态随机存储器14容量比为4∶1000。以片外动态随机存储器14为例:如片外动态随机存储器14容量256Mb(16bit位宽),则选用大小为128KB的二级缓存,由8块1R1W宽度为8位深度为16384的RAM组成二级缓存。

Claims (10)

1.一种用于嵌入式系统的二级缓存控制方法,其特征在于,其具体步骤如下:
步骤15:客户写请求处理:
步骤15.1,客户写请求、写请求对应信息和要写入片外动态随机存储器(14)的数据由嵌入式微处理器(13)按AMBA总线协议转换成AHB接口信号,所述写请求对应信息至少包括地址和步长;
步骤15.2,客户写请求接口模块(4)接收步骤15.1得到的AHB接口信号;
步骤15.3,客户写请求接口模块(4)锁存客户写请求、写请求对应信息和要写入片外动态随机存储器(14)的数据:客户写请求接口模块(4)将客户写请求、写请求对应信息按先后顺序放入同一个FIFO寄存器,客户写请求接口模块(4)将要写入片外动态随机存储器(14)的数据放在两块RAM中,完成锁存操作;
步骤15.4,客户写请求接口模块(4)向端口仲裁和冲突检测模块(6)发出写请求,由端口仲裁和冲突检测模块(6)完成地址相关性检测,所有的客户写请求都需经过地址相关性检测,无冲突后才被执行;
步骤16:客户读请求处理:
步骤16.1,客户读请求和读请求对应信息由嵌入式微处理器(13)按AMBA总线协议转换成AHB接口信号,所述读请求对应信息至少包括客户读地址;
步骤16.2,客户读请求接口和产生预读模块(5)接收步骤16.1得到的AHB接口信号;
步骤16.3,在客户读请求能被立即响应的情况下,不锁存客户读请求,向端口仲裁和冲突检测模块(6)发出读请求;
步骤16.4,若有地址相关性的数据竞争,客户读请求不能被立即响应,则锁存客户读请求和读请求对应信息直到该读请求对应地址的相关性的数据竞争消除后,才响应该客户读请求;所述地址相关性的数据竞争至少包括读后读RAR和先写后读RAW;
步骤17:当步骤16中有地址相关性的数据竞争的读请求被响应后,客户读请求接口和产生预读模块(5)产生预读操作,向端口仲裁和冲突检测模块(6)发出预读请求;
步骤18:端口仲裁和冲突检测模块(6)接收步骤15、步骤16和步骤17输出的写请求和/或读请求和/或预读请求后,根据优先级机制和地址相关性准则,仲裁出一个请求到下游模块,并给出响应到对应的上游模块,所述下游模块包括探测结果和更新控制模块(10)和写访存模块(11),所述上游模块包括客户写请求接口模块(4)和客户读请求接口和产生预读模块(5);
所采用的优先级机制为:写请求>读请求>预读请求,
所述端口仲裁和冲突检测模块(6)提供了相关性的消除机制,端口仲裁和冲突检测模块(6)将接收到请求根据优先级机制和地址相关性准则,挑选出一个请求,发出读TAG探测,将仲裁出的请求给到探测结果和更新控制模块(10);
所述端口仲裁和冲突检测模块(6)有三个地址状态寄存器表:写请求地址状态寄存器表、读请求地址状态寄存器表、预读请求地址状态寄存器表,这三个表用于相关性检测和相关性消除;
步骤18.1,若为写请求,将写请求对应地址与读请求地址状态寄存器表、写请求地址状态寄存器表和预读请求地址状态寄存器表中有效地址进行比较,若与其中一个地址相等,则有地址相关性;若都不等,则无冲突;
步骤18.2,无冲突时,给出客户写请求接口模块(4)响应,同时给标记随机存储器(7)发读TAG探测使能,并将该写地址放入写请求地址状态寄存器表,将该地址对应寄存器有效位置高,直到该地址对应数据写入片外动态随机存储器(14)才拉低有效位;若与其中某一地址相等,则有冲突,要等对应该地址的有效位变低后才发该地址的读TAG探测使能,所述标记随机存储器采用两组相联的缓存结构,由两块1R1W的RAM组成,用于存储标记,即TAG值;
步骤18.3,若为读请求或预读请求,请求对应地址需与写请求地址状态寄存器表和预读请求地址状态寄存器表中的有效地址进行比较,看是否有地址相关性的数据竞争,所述地址相关性的数据竞争至少包括读后读RAR和先写后读RAW;
若有地址相关性的数据竞争,则等待之前地址相关性的请求操作完成,消除地址相关性的数据竞争后,才将请求转出去;
步骤19:如果步骤18仲裁出读请求或预读请求,则执行以下步骤:
探测结果和更新控制模块(10)接受端口仲裁和冲突检测模块(6)给出的请求和来自标记随机存储器的两个TAG值,将来自标记随机存储器的两个TAG值与请求地址中的TAG值比较,两个来自标记随机存储器的TAG值中有一个与读请求地址中的TAG值相等,则判断为读命中,若两个来自标记随机存储器的TAG值中没有一个与读请求地址中的TAG值相等,则判断为读不命中;
若相等判断为读命中,即请求地址要操作的数据就在存放数据的数据随机存储器中,若读命中,转至步骤21;
若不等则判断为读不命中,即请求地址要操作的数据不在数据随机存储器中,需操作片外动态随机存储器(14),若读不命中,转至步骤22;所述数据随机存储器采用两组相联的缓存结构,由两块1R1W的RAM组成,用于存储数据;标记随机存储器和数据随机存储器构成二级缓存;
步骤20:如果步骤18仲裁出写请求,则执行以下步骤:
探测结果和更新控制模块(10)接受端口仲裁和冲突检测模块(6)给出的请求和来自标记随机存储器的两个TAG值,将来自标记随机存储器的两个TAG值与写请求地址中的TAG值比较,两个来自标记随机存储器的TAG值中有一个与写请求地址中的TAG值相等,则判断为写命中,若两个来自标记随机存储器的TAG值中没有一个与写请求地址中的TAG值相等,则判断为写不命中;
所述探测结果和更新控制模块(10)有一个寄存器,用于存放命中的写请求和写请求对应信息;
若相等判断为写命中,若写命中,转至步骤23;
若不等则判断为写不命中,若写不命中,转至步骤24;
步骤21:判断为读命中后,直接从数据随机存储器中读取客户所需数据返回给嵌入式微处理器(13);即:直接读取数据随机存储器中的数据返回给嵌入式微处理器(13);
步骤22:判断为读不命中后,需将客户读请求转化为外部存储区控制接口上的读请求信号,通过外部存储区控制接口从片外动态随机存储器(14)读回整块数据,在探测结果和更新控制模块(10)控制下将相应数据回填写入数据随机存储器中,同时给出客户所需数据返回给嵌入式微处理器(13);
步骤23:判断为写命中后,根据探测结果和更新控制模块(10)中寄存器锁存的写请求对应信息,从客户写请求接口模块(4)中的两块数据RAM中的一块内取出对应数据直接写数据随机存储器,同时写访存模块(11)根据写请求对应信息,从客户写请求接口模块(4)中的另外一块数据RAM取出对应数据,转化为符合外部存储区控制接口的客户写请求信号和数据,写入片外动态随机存储器(14);不管是否写命中,所有的写请求对应的数据都要写入片外动态随机存储器(14);
步骤24:判断为写不命中后,写访存模块(11)将写请求对应信息和要写入片外动态随机存储器(14)的数据转化为符合外部存储区控制接口的客户写请求和数据,通过外部存储区控制接口写入片外动态随机存储器(14)。
2.如权利要求1所述的用于嵌入式系统的二级缓存控制方法,其特征在于:步骤15.4中所述客户写请求的地址相关性检测的具体步骤如下:端口仲裁和冲突检测模块(6)将待执行的写请求对应的地址,与之前已发但读写操作未完成的地址进行比对,若有相等的情况,则认为地址相关,需等待之前地址相关性的请求对应的地址的读写操作完成后,才可将客户写请求、写请求对应信息转给探测结果和更新控制模块(10)和写访存模块(11),此时,要写入片外动态随机存储器(14)的数据不跟随客户写请求、写请求对应信息往后走,而是存储在客户写请求接口模块(4)中。
3.如权利要求1所述的用于嵌入式系统的二级缓存控制方法,其特征在于,步骤24具体操作如下:写访存模块(11)根据写请求对应信息把要写入片外动态随机存储器(14)的数据按步长和地址写入片外动态随机存储器(14)的对应地址中。
4.如权利要求1所述的用于嵌入式系统的二级缓存控制方法,其特征在于:所述AHB接口信号是AMBA2.0的一个子集,只有某AHB端口被响应后才能切换到下一个AHB端口。
5.如权利要求1所述的用于嵌入式系统的二级缓存控制方法,其特征在于:同一标记随机存储器地址对应两块构成标记随机存储器的RAM,但构成标记随机存储器的两块RAM中存放的TAG值不等,同一数据随机存储器地址对应两块构成数据随机存储器的RAM,但构成数据随机存储器的两块RAM中存放的数据也不同,以减少不命中率,
所述数据随机存储器地址格式如下:
  组号(12bit)   块内首地址(2bit,以字为单位)
所述标记随机存储器地址格式如下:
  组号(12bit)
所述组成标记随机存储器的RAM的内容分配是:
  TAG(9bit)  Valid(4bit,每位对应BYTE)
所述AHB接口信号中包含的地址信息格式如下:
TAG(9bit) 组号(12bit) 块内首地址(2bit,以字为单位)
地址内均包含组号信息,地址可唯一确定组号,但同一组号可能对应不同的地址。
6.如权利要求1所述的用于嵌入式系统的二级缓存控制方法,其特征在于:通过寄存器配置,给定客户读地址与预读地址相差阈值参数pf_num_limit的取值,给定该阈值后,当客户读地址与预读地址相差超过阈值,则预读动作以当前客户读地址为基础进行预读,即停止向前预读,以免从片外动态随机存储器(14)超前预读的数据转头将先前预读的数据覆盖,造成客户读不命中的结果。
7.如权利要求1所述的用于嵌入式系统的二级缓存控制方法,其特征在于:客户读请求接口和产生预读模块(5)根据客户读请求做预读动作,预读回客户将来要读的数据,客户读请求接口和产生预读模块(5)结合嵌入式系统读取数据时地址具局部性和连续性的特点,设计连续命中的预读地址图案,
读地址连续是指TAG值相等且组号相差为4或4以内,
预读地址图案通过以下步骤生成:
将当前客户读请求对应地址与上一轮客户读请求对应地址进行比较,TAG值相等且组号相差在4以内,且当前客户读请求对应地址与上轮发出的最后一个预读地址相差不超过阈值pf_num_limit,则认为地址关联;
由客户读请求启动一轮预读,若本轮客户读请求地址与上轮客户读请求地址关联,预读地址在上轮发出的最后一个预读地址基础上加4,作为新一轮预读首地址;若地址不关联,则预读地址以本轮读客户地址为基础加4,作为新一轮预读首地址。
8.如权利要求1所述的用于嵌入式系统的二级缓存控制方法,其特征在于,某一时间段被频繁访问的数据,优先停留在二级缓存中:采用了LRU替换原则,其具体替换步骤如下:
对应每个标记随机存储器地址都有一个LRU位,当LRU为0,则将从片外动态随机存储器(14)取回的数据回填入数据随机存储器中的标号为1的RAM;
若LRU为1,则将从片外动态随机存储器(14)取回的数据回填入数据随机存储器中的标号为0的RAM;
每次访问标记随机存储器中的某行,如果命中,LRU值修改为命中行。
9.如权利要求1所述的用于嵌入式系统的二级缓存控制方法,其特征在于,端口仲裁和冲突检测模块(6)提供了四种类型相关性的消除机制:读后读RAR、写后写WAW、先写后读相关RAW、先读后写相关WAR性消除策略。
10.一种实现权利要求1所述用于嵌入式系统的二级缓存控制方法的装置,其特征在于:二级缓存及二级缓存控制装置(12)通过AMBA总线与嵌入式微处理器(13)连接,接受来自嵌入式微处理器(13)的读、写请求指令;
二级缓存及二级缓存控制装置(12)根据读、写请求指令对应地址从片外动态随机存储器(14)中读取或写入数据;
所述二级缓存及二级缓存控制装置(12)包括:
客户写请求接口模块(4),接受嵌入式微处理器(13)发来的写请求、写请求对应信息和要写入片外动态随机存储器(14)的数据,其输出送至端口仲裁和冲突检测模块(6),
客户读请求接口和产生预读模块(5),接受嵌入式微处理器(13)发来的读请求和读请求对应信息,其输出送至端口仲裁和冲突检测模块(6),
端口仲裁和冲突检测模块(6),分别和标记随机存储器(7)、数据随机存储器(8)、探测结果和更新控制模块(10)、写访存模块(11)连接,
用于存储TAG值的标记随机存储器(7),接收经LRU控制替换模块(9)发来的命中指示,接收经探测结果和更新控制模块(10)发来的数据作为标记随机存储器RAM的内容,所述标记随机存储器采用两组相联的缓存结构,由两块1R1W的RAM组成,
用于存储数据的数据随机存储器(8),接收经LRU控制替换模块(9)发来的命中指示,接收经探测结果和更新控制模块(10)发来的数据,所述数据随机存储器采用两组相联的缓存结构,由两块1R1W的RAM组成,
LRU控制替换模块(9),接收经探测结果和更新控制模块(10)发来的数据,
探测结果和更新控制模块(10),与片外动态随机存储器(14)连接,
写访存模块(11),与片外动态随机存储器(14)连接,
标记随机存储器和数据随机存储器构成二级缓存;
客户写请求接口模块(4)内设有两块RAM,两块RAM中存储的数据一致,一块RAM中的部分数据写入数据随机存储器,另一块RAM中的数据要写入片外动态随机存储器(14);
客户写请求接口模块(4)内还设有一个FIFO寄存器;
所述探测结果和更新控制模块(10)有一个用于存放命中的写请求和写请求对应信息的寄存器。
CN2010105560459A 2010-11-24 2010-11-24 一种用于嵌入式系统的二级缓存控制方法及装置 Expired - Fee Related CN102012872B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105560459A CN102012872B (zh) 2010-11-24 2010-11-24 一种用于嵌入式系统的二级缓存控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105560459A CN102012872B (zh) 2010-11-24 2010-11-24 一种用于嵌入式系统的二级缓存控制方法及装置

Publications (2)

Publication Number Publication Date
CN102012872A CN102012872A (zh) 2011-04-13
CN102012872B true CN102012872B (zh) 2012-05-02

Family

ID=43843047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105560459A Expired - Fee Related CN102012872B (zh) 2010-11-24 2010-11-24 一种用于嵌入式系统的二级缓存控制方法及装置

Country Status (1)

Country Link
CN (1) CN102012872B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591817B (zh) * 2011-12-30 2014-12-31 中山大学 一种多总线桥控制器及其实现方法
CN103595513A (zh) * 2012-08-15 2014-02-19 重庆重邮信科通信技术有限公司 一种harq数据存取方法及装置
CN103810122B (zh) * 2013-12-24 2017-03-22 苏州国芯科技有限公司 用于嵌入式系统的高速缓存器
CN103810117B (zh) * 2013-12-24 2017-03-22 苏州国芯科技有限公司 处理器用指令存储系统
CN103810116B (zh) * 2013-12-24 2017-06-20 苏州国芯科技有限公司 用于嵌入式系统的指令存储装置
US20170046167A1 (en) * 2015-08-14 2017-02-16 Qualcomm Incorporated Predicting memory instruction punts in a computer processor using a punt avoidance table (pat)
CN108595371B (zh) * 2016-01-20 2019-11-19 北京中科寒武纪科技有限公司 用于向量运算的数据读取、写入及读写调度器及保留站
CN106201935A (zh) * 2016-06-28 2016-12-07 田彬 用于处理存储队列中数据相关的装置及方法
CN106484521A (zh) * 2016-10-21 2017-03-08 郑州云海信息技术有限公司 一种数据请求处理方法及装置
CN106933512B (zh) * 2017-02-27 2020-03-27 深圳怡化电脑股份有限公司 一种数据读写的方法及其设备
CN109582214B (zh) * 2017-09-29 2020-04-28 华为技术有限公司 数据访问方法以及计算机系统
CN108959405B (zh) * 2018-06-06 2021-08-17 深圳市远行科技股份有限公司 数据的强一致性读取方法及终端设备
US10860388B1 (en) * 2019-07-09 2020-12-08 Micron Technology, Inc. Lock management for memory subsystems
CN110716888A (zh) * 2019-09-27 2020-01-21 山东华芯半导体有限公司 一种axi总线缓存机制的实现方法
CN111340460A (zh) * 2020-03-25 2020-06-26 江苏安泰信息科技发展有限公司 安全和职业健康技术服务机构的管理系统和运行方法
CN112527697A (zh) * 2020-05-11 2021-03-19 大唐半导体科技有限公司 Cache RAM与Retention RAM数据交换控制器及实现方法
CN113051194B (zh) * 2021-03-02 2023-06-09 长沙景嘉微电子股份有限公司 缓冲存储器、gpu、处理系统及缓存访问方法
CN113190475B (zh) * 2021-05-08 2022-08-02 中国电子科技集团公司第五十八研究所 一种二级cache控制器结构
CN116627857B (zh) * 2023-05-25 2023-11-24 合芯科技有限公司 一种处理器核外缓存模型及模拟方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1522410A (zh) * 2001-06-26 2004-08-18 �Ƚ�΢װ�ù�˾ 使用类型位跟踪二级高速缓存中储存的错误校正码及预解码位
US6931489B2 (en) * 2002-08-12 2005-08-16 Hewlett-Packard Development Company, L.P. Apparatus and methods for sharing cache among processors
CN101135993A (zh) * 2007-09-20 2008-03-05 华为技术有限公司 一种嵌入式系统芯片及数据读写处理方法
US7373462B2 (en) * 2005-03-29 2008-05-13 International Business Machines Corporation Snoop filter for filtering snoop requests

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1522410A (zh) * 2001-06-26 2004-08-18 �Ƚ�΢װ�ù�˾ 使用类型位跟踪二级高速缓存中储存的错误校正码及预解码位
US6931489B2 (en) * 2002-08-12 2005-08-16 Hewlett-Packard Development Company, L.P. Apparatus and methods for sharing cache among processors
US7373462B2 (en) * 2005-03-29 2008-05-13 International Business Machines Corporation Snoop filter for filtering snoop requests
CN101135993A (zh) * 2007-09-20 2008-03-05 华为技术有限公司 一种嵌入式系统芯片及数据读写处理方法

Also Published As

Publication number Publication date
CN102012872A (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
CN102012872B (zh) 一种用于嵌入式系统的二级缓存控制方法及装置
US6658533B1 (en) Method and apparatus for write cache flush and fill mechanisms
US20230254907A1 (en) Pipelined read-modify-write operations in cache memory
CN106104499B (zh) 存储器设备及用于操作高速缓冲存储器的方法
CN110226157A (zh) 用于减少行缓冲冲突的动态存储器重新映射
EP2686774B1 (en) Memory interface
CN100590609C (zh) 一种基于非连续页的动态内存管理方法
CN103856567A (zh) 基于Hadoop分布式文件系统的小文件存储方法
CN107924375A (zh) 用于高速存储器接口的命令仲裁
CN103345451B (zh) 一种在多核处理器中缓冲数据的方法
CN107391392A (zh) 一种基于闪存存储设备并行特征的垃圾回收优化方法
CN108121503A (zh) 一种NandFlash地址映射及块管理算法
CN106547612A (zh) 一种多任务处理方法及装置
CN101267361A (zh) 一种基于零拷贝技术的高速网络数据包捕获方法
CN111949578A (zh) 基于dfi标准的ddr3控制器
CN102968386B (zh) 数据供给设备、缓存设备及数据供给方法
CN104615386B (zh) 一种核外高速缓存装置
WO2019174206A1 (zh) 一种存储设备的数据读取方法、装置、终端设备和存储介质
CN117472815A (zh) 一种axi协议下的存储模块转换接口及其转换方法
CN115658625B (zh) 数据解压系统、图形处理系统、装置、设备及解压方法
CN115658571B (zh) 一种数据传输方法、装置、电子设备及介质
CN101667159A (zh) 传送请求区块的高速缓存系统及方法
CN106776390A (zh) 多设备访问存储器的实现方法
CN115048320A (zh) Vtc加速器及其计算vtc的方法
US7555603B1 (en) Transaction manager and cache for processing agent

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170607

Address after: 430074, Hubei Wuhan East Lake Development Zone, Kanto Industrial Park, beacon Road, optical communications building, industrial building, two floor

Patentee after: WUHAN FISILINK MICROELECTRONICS TECHNOLOGY Co.,Ltd.

Address before: China Science and Technology Park Dongxin road East Lake Development Zone 430074 Hubei Province, Wuhan City, No. 5

Patentee before: FIBERHOME TELECOMMUNICATION TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170809

Address after: 430000 East Lake high tech Development Zone, Hubei Province, No. 6, No., high and new technology development zone, No. four

Co-patentee after: WUHAN FISILINK MICROELECTRONICS TECHNOLOGY Co.,Ltd.

Patentee after: FIBERHOME TELECOMMUNICATION TECHNOLOGIES Co.,Ltd.

Address before: 430074, Hubei Wuhan East Lake Development Zone, Kanto Industrial Park, beacon Road, optical communications building, industrial building, two floor

Patentee before: WUHAN FISILINK MICROELECTRONICS TECHNOLOGY Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120502

Termination date: 20211124