一种片上指令cache的实现方法

文档序号:87250阅读:380来源:国知局
专利名称:一种片上指令cache的实现方法
技术领域
本发明属于计算机技术领域
,涉及高性能信号处理器的设计和制造,特别涉及到一种片上指令cache控制系统的硬件实现方法。
背景技术
自计算机发明以来,计算速度和I/O速度不匹配的矛盾就存在,cache技术就是解决此矛盾的技术之一。传统的cache控制系统通常是由软件完成,如PC机的操作系统就负责完成cache的控制管理,整个cache的存储状态、数据调度、替换策略、异常处理等都是由操作系统中的软件程序负责完成。随着微电子制造工艺的进步,计算机系统可在一个芯片上实现,cache也被集成在片上,如何对片上的cache进行有效的控制管理,是高性能处理芯片设计中的重要内容。
目前国内外的有关指令cache的实现方法主要是采用硬件和软件相结合的方法,通过大型计算机硬件和软件操作系统来实现。这种方法实现cache指令的控制具有功耗较大、取指令的时间较长和可靠性差的缺点。

发明内容本发明的技术解决问题克服现有技术的不足,提供一种片上指令cache的实现方法,采用该方法提高了指令cache的工作速度,同时结构简单,面积小,功耗低,便于在芯片上实现,且可靠性高。
本发明的技术解决方案一种片上指令cache的实现方法,其特点在于指令cache的结构由一cache控制寄存器、cache段起始地址寄存器、匹配标志P位、cache段字存储器以及LRU替换堆栈构成,cache控制寄存器用于控制或表示cache的状态,cache段起始地址寄存器用于存储指令地址的段地址,匹配标志P位用于标识是否有一个段内字已经对准,cache段字存储器用于存储指令,LRU替换堆栈用于记录cache段替换的顺序;当请求外部存储器给出指令字时,会出现两种情况,cache命中或cache未命中,如果cache命中,从cache中读出指令,该分段号压入LRU替换堆栈的顶部,配置相应的P标记;如果cache未命中,存在两种情况第一种情况是cache段起始地址寄存器与该指令地址相匹配,但没有设置相应的匹配标志P位,此时同时进行如下操作从存储器中读出指令并拷贝到cache,将该分段号压入LRU替换堆栈的顶部,配置相应的匹配标志P位;第二种情况是cache段起始地址寄存器与指令地址不匹配,此时同时进行如下操作从LRU替换堆栈中选择将被替换的分段号,该段中的所有匹配标志P位清除,将指令的地址的相应位宽值载到替换的分段的cache段起始地址寄存器中,取得指令并拷贝到cache并将P标志置位,将替换的分段号压入LRU替换堆栈的栈顶。
本发明与现有技术相比的优点在于(1)本发明的片上cache指令结构,具有结构简单,面积小,功耗低,便于在芯片上实现。
(2)根据本发明的片上指令cache的结构而设计的工作流程简单,提高了指令cache工作的可靠性。
(3)采用硬件替换堆栈选择替换段号,避免了现有技术的软件判断,提高了指令cache的工作速度。
图1为本发明的一种片上指令cache的结构示意图;图2为本发明的一种片上指令cache的工作流程;图3为本发明的LRU替换堆栈的结构图。
具体实施方式如图1所示,在SMDSP信号处理器中,指令cache容量为64×32位字,将其分为两个32字段,一个19位的段起始地址寄存器和每一段相关联。cache中的每个字,都有相应的匹配标志P位,P为1表示cache中字有效反之则无效。
指令cache的结构由一cache控制寄存器、cache段起始地址寄存器、匹配标志P位、cache段字存储器以及LRU替换堆栈构成,cache控制寄存器用于控制或表示cache的状态,cache段起始地址寄存器用于存储指令地址的段地址,匹配标志P位用于标识是否有一个段内字已经对准,cache段字存储器用于存储指令,LRU替换堆栈用于记录cache段替换的顺序。
如图2所示,当请求外部存储器给出指令字时,会出现两种情况,cache命中或cache未命中,如果cache命中,从cache中读出指令,该分段号压入LRU替换堆栈的顶部,配置相应的P标记;如果cache未命中,存在两种情况第一种情况是cache段起始地址寄存器与该指令地址相匹配,但没有设置相应的匹配标志P位,此时同时进行如下操作从存储器中读出指令并拷贝到cache,将该分段号压入LRU替换堆栈的顶部,配置相应的匹配标志P位;第二种情况是cache段起始地址寄存器与指令地址不匹配,此时同时进行如下操作从LRU替换堆栈中选择将被替换的分段号,该段中的所有匹配标志P位清除,将指令的地址的相应位宽值载到替换的分段的cache段起始地址寄存器中,取得指令并拷贝到cache并将P标志置位,将替换的分段号压入LRU替换堆栈的栈顶。
LRU替换堆栈用于确定两段中的哪段是最近最少使用。每次访问一段时,分段号离开LRU堆栈并被推进到LRU替换堆栈的顶部。因此,堆栈顶部的序号是最近最多使用的分段号,堆栈底部的序号是最近最少使用的分段号,复位时,LRU堆栈用0初始化顶部和用1初始化低部。
如图3所示,本发明的LRU的替换堆栈结构有效位CE(cache enable)和读信号位R(Read)经过与门AND_1,输出与复位RESET或非,经或非门NOR_2,输出到传输门T1的控制端,NOR_2的输出经反向器INV_1连接到T1的互补控制端,时钟CLK1经T1后连接到与门And_2的一个输入端,Reset和SSA0(段0)经或门or_1的输出和Reset和SSA1(段1)经或非门Nor_1的输出连接到与非门Nand_1,输出连到与门And_2,与门And_2的输出连接到反向器INV_2,输出连接到反向器INV_3和传输门T3。反向器INV_3的输出为MRU_SN(近期使用最多的段号),同时连接传输门T2。传输门T2的输出连接到反向器INV_2;传输门T3的输出为LRU_SN(近期使用最少的段号),传输门T2和T3的控制端都接CLK2,互补控制信号接CLK2经反向器INV_1的输出。
cache控制寄存器有3位(1)清cache位CC,当CC=1,使Cache中的所有通道无效。写入cache后此位被置为0,复位时该位置为0。(2)cache有效位CE,当CE=1,使能cache,允许依照LRU算法使用cache;当CE=0,禁止cache,可以防止cache被更新修改;复位时该位置0。(3)冻结Cache位CF,当CF=1冻结cache和LRU替换堆栈的操作。如果出现CE=1并且CF=1时,允许从cache中读取但不允许修改cache。当CF=1或0时,允许cache清除(CC=1),复位时CF位设为0。
当请求外部存储器给出指令时,指令cache的工作流程如图2所示,即当请求外部存储器给出指令字时,会出现两种情况,cache命中或cache未命中。如果cache命中,从cache中读出指令;该分段号压入LRU替换堆栈的顶部;配置相应的P标记。如果cache未命中,存在两种情况第一种情况,是cache段始地址寄存器与指令地址相匹配,但没有设置相应的匹配标志P位,此时同时进行3个操作,从存储器中读出指令并拷贝到Cache,该分段号压入LRU替换堆栈的顶部,配置相应的匹配标志P位;第二种情况,是caohe段起始地址寄存器与指令地址不匹配,此时同时进行4个操作,从LRU替换堆栈中选择将被替换的分段号,该段中的32个匹配标志P位清除,将请求指令的19位高地址载到LRU替换堆栈的LRU_SN信号表示的分段的cache段起始地址寄存器中,取得指令并拷贝到cache并将P标志置位,将替换的分段号压入LRU替换堆栈的栈顶。
权利要求
1.一种片上指令cache的实现方法,其特征在于指令cache的结构由一cache控制寄存器、cache段起始地址寄存器、匹配标志P位、cache段字存储器以及LRU替换堆栈构成,cache控制寄存器用于控制或表示cache的状态,cache段起始地址寄存器用于存储指令地址的段地址,匹配标志P位用于标识是否有一个段内字已经对准,cache段字存储器用于存储指令,LRU替换堆栈用于记录cache段替换的顺序;当请求外部存储器给出指令字时,会出现两种情况,cache命中或cache未命中,如果cache命中,从cache中读出指令,该分段号压入LRU替换堆栈的顶部,配置相应的P标记;如果cache未命中,存在两种情况第一种情况是cache段起始地址寄存器与该指令地址相匹配,但没有设置相应的匹配标志P位,此时同时进行如下操作从存储器中读出指令并拷贝到cache,将该分段号压入LRU替换堆栈的顶部,配置相应的匹配标志P位;第二种情况是cache段起始地址寄存器与指令地址不匹配,此时同时进行如下操作从LRU替换堆栈中选择将被替换的分段号,该段中的所有匹配标志P位清除,将指令的地址的相应位宽的值载到替换的分段的cache段始地址寄存器中,取得指令并拷贝到cache并将P标志置位,将替换的分段号压入LRU替换堆栈的栈顶。
2.根据权利要求
1所述的一种片上指令cache的实现方法,其特征在于所述的LRU的替换堆栈结构cache的有效位CE和读信号位R经过与门AND_1,输出与复位RESET或非,经或非门NOR_2,输出到传输门T1的控制端,NOR_2的输出经反向器INV_1连接到T1的互补控制端,CLK1经T1后连接到与门And_2的一个输入端,Reset和SSA0(段起始地址寄存器0,SSA0)经或门or_1的输出和Reset和SSA1(段起始地址寄存器1,SSA1)经或非门Nor_1的输出连接到与非门Nand_1,输出连到与门And_2,与门And_2的输出连接到反向器INV_2,输出连接到反向器INV_3和传输门T3,反向器INV_3的输出为近期使用最多的段号MRU_SN,同时连接传输门T2,传输门T2的输出连接到反向器INV_2,传输门T3的输出为近期使用最少的段号LRU_SN,传输门T2和T3的控制端都接时钟CLK2,互补控制信号接CLK2经反向器INV_1的输出。
3.根据权利要求
1所述的一种片上指令cache的实现方法,其特征在于所述的cache控制寄存器有3位,(1)清cache位CC,当CC=1,使cache中的所有通道无效,写入cache后此位被置为0,复位时该位置为0;(2)cache有效位CE,当CE=1,使能cache,允许依照LRU算法使用cache,当CE=0,禁止cache,防止cache被更新修改,复位时该位置0;(3)冻结cache位CF,当CF=1冻结cache和LRU替换堆栈的操作,如果出现CE=1,且CF=1时,允许从cache中读取但不允许修改cache;当CF=1或0时,允许cache清除(CC=1),复位时CF位设为0。
专利摘要
一种片上指令cache的实现方法,指令cache的结构由cache控制寄存器、cache段起始地址寄存器、匹配标志P位、cache段字存储器以及LRU替换堆栈等组成。本发明特点在于,片上指令cache结构简单,面积小,功耗低,便于在芯片上实现,根据本发明的片上指令cache的结构而设计的工作流程简单,与其它功能部件的时序配合容易,提高了指令cache工作的可靠性,采用硬件替换堆栈选择替换段号,避免了软件判断,提高了指令cache的工作速度。
文档编号G06F12/12GK1996268SQ200610169724
公开日2007年7月11日 申请日期2006年12月28日
发明者车德亮, 黄玮, 权海洋 申请人:北京时代民芯科技有限公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1