一种提高片上系统指令缓存命中率的系统及其方法

文档序号:9631499阅读:217来源:国知局
一种提高片上系统指令缓存命中率的系统及其方法
【技术领域】
[0001]本发明涉及片上系统的指令缓存实现技术,具体涉及一种提高片上系统指令缓存命中率的系统及其方法。
【背景技术】
[0002]指令缓存可以加快中央处理器取指操作访问主存的速度,提高了系统的整体性能,而缓存性能的高低,最重要的指标就是命中率。在提高指令缓存命中率的方法上,通常都在缓存未命中时替换哪个Way的算法上做工作,例如目前较为流行的算法为轮询缓存算法(Round-Robin)、随机缓存算法(Random)、最近最少使用算法(Least Recently Used,简称LRU )等。

【发明内容】

[0003]本发明的目的在于提供一种提高片上系统指令缓存命中率的系统及其方法,采用缓存寄存器、预读寄存器、第一逻辑判断模块、第二逻辑判断模块及预读发起判断模块组成上述系统。本发明通过在传统指令缓存内部添加可独立判断指令是否命中的预读寄存器,使得预读寄存器与缓存寄存器内的存储单元具有相同的功能,都能够存储预读反馈指令;只有当预读寄存器与缓存寄存器均未命中时,缓存寄存器将预读寄存器内的指令数据进行存储,预读寄存器中的数据更新为最新的预读反馈指令。本发明结构简单、容易实现、灵活度尚,能够大大提尚微小循环代码的命中率。
[0004]为了达到上述目的,本发明通过以下技术方案实现:
一种提高片上系统指令缓存命中率的系统,其特点是,该系统包含:
缓存寄存器;
预读寄存器,与所述缓存寄存器进行数据通讯;
第一逻辑判断模块,与所述缓存寄存器连接;
第二逻辑判断模块,与所述预读寄存器连接;
预读发起判断模块,分别与所述第一逻辑判断模块、所述第二逻辑判断模块及所述预读寄存器连接。
[0005]优选地,
所述缓存寄存器用于存储预读反馈指令及所述预读寄存器内存储的预读反馈指令的地址信息;
所述预读寄存器用于获取并存储最新的预读反馈指令;
所述第一逻辑判断模块用于判断所述缓存寄存器是否命中;当该缓存寄存器命中时,所述第一逻辑判断模块输出标识信号置为1;当该缓存寄存器未命中时,所述第一逻辑判断模块输出标识信号置为0 ;
所述第二逻辑判断模块用于判断所述所述预读寄存器是否命中;当该预读寄存器命中时,所述第二逻辑判断模块输出标识信号置为1;当该缓存寄存器未命中时,所述第二逻辑判断模块输出标识信号置为0 ;
所述预读发起判断模块获取所述第一逻辑判断模块的输出标识信号、所述第二逻辑判断模块的输出标识信号,并将上述信号进行逻辑运算处理后,判断所述缓存寄存器、所述预读寄存器是否均未命中;当均未命中时,该预读发起判断模块控制所述预读寄存器获取并存储最新的预读反馈指令。
[0006]—种提尚片上系统指令缓存命中率的方法,其特点是,该方法包含:
S1,第二逻辑判断模块判断预读寄存器是否命中,当判断所述预读寄存器未命中时,执行步骤S2 ;
S2,预读发起判断模块获取所述第一逻辑判断模块的输出标识信号、所述第二逻辑判断模块的输出标识信号,并将上述信号进行逻辑运算处理后,判断所述缓存寄存器、所述预读寄存器是否均未命中;当均未命中时,执行步骤S3 ;当所述缓存寄存器、所述预读寄存器中任一寄存器命中时,结束;
S3,所述预读发起判断模块控制所述预读寄存器获取并存储最新的预读反馈指令。
[0007]优选地,在所述步骤S1之前,还包含:
第一逻辑判断模块判断缓存寄存器是否命中,并将获取的输出标识信号发送至所述预读发起判断模块。
[0008]优选地,所述步骤S1包含:
S1.1,所述第二逻辑判断模块获取所述预读寄存器中的锁存指令对应的地址信息;
S1.2,所述第二逻辑判断模块获取中央处理器当前发起访问的地址信息;
S1.3,该第二逻辑判断模块将所述预读寄存器中的锁存指令对应的地址信息与所述中央处理器当前发起访问的地址信息按位进行异或运算处理后进行或非运算处理,获取所述第二逻辑判断模块输出标识信号;
51.4,当所述预读寄存器命中时,所述第二逻辑判断模块输出标识信号置为1,结束操作;当该缓存寄存器未命中时,所述第二逻辑判断模块输出标识信号置为0,执行所述步骤S2o
[0009]优选地,所述步骤S2包含:
S2.1,所述预读发起判断模块获取所述第一逻辑判断模块的输出标识信号、所述第二逻辑判断模块的输出标识信号,并将上述信号分别进行取反运算后,再进行逻辑与运算;
52.2,当所述预读发起判断模块经步骤S2.1运算后,输出的预读取信号为1时,表明所述缓存寄存器、所述预读寄存器均未命中,执行步骤S3 ;否则,结束操作。
[0010]优选地,所述步骤S3包含:
53.1,所述预读发起判断模块控制所述预读寄存器将其内的数据写入所述缓存寄存器;
S3.2,所述预读发起判断模块控制所述预读寄存器获取并存储最新的预读反馈指令。
[0011]本发明与现有技术相比具有以下优点:
本发明公开的一种提高片上系统指令缓存命中率的系统及其方法,采用缓存寄存器、预读寄存器、第一逻辑判断模块、第二逻辑判断模块及预读发起判断模块组成上述系统。本发明通过在传统指令缓存内部添加可独立判断指令是否命中的预读寄存器,使得预读寄存器与缓存寄存器内的存储单元具有相同的功能,都能够存储预读反馈指令;只有当预读寄存器与缓存寄存器均未命中时,缓存寄存器将预读寄存器内的指令数据进行存储,预读寄存器中的数据更新为最新的预读反馈指令,也即缓存寄存器与预读寄存器同时进行更新。本发明结构简单、容易实现、灵活度高,能够大大提高微小循环代码的命中率。
【附图说明】
[0012]图1为本发明一种提高片上系统指令缓存命中率的系统的整体结构示意图。
[0013]图2为本发明一种提高片上系统指令缓存命中率的方法的整体流程示意图。
[0014]图3为本发明一种提高片上系统指令缓存命中率的方法的实施例示意图之一。
[0015]图4为本发明一种提高片上系统指令缓存命中率的方法的实施例示意图之二。
【具体实施方式】
[0016]以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
[0017]如图1所示,一种提高片上系统指令缓存命中率的系统,该系统包含:缓存寄存器1 (也称CacheMemory)、预读寄存器2 (也称FeedBuffer)、第一逻辑判断模块3 (也称CMHitLogic模块)、第二逻辑判断模块4 (也称FBHitLogic模块)及预读发起判断模块5 (也称PreRead模块)。
[0018]其中,预读寄存器2与缓存寄存器1进行数据通讯;第一逻辑判断模块3与缓存寄存器1连接;第二逻辑判断模块4与预读寄存器2连接;预读发起判断模块5分别与第一逻辑判断模块3、第二逻辑判断模块4及预读寄存器2连接。
[0019]本发明中,缓存寄存器1用于存储预读反馈指令及预读寄存器2内存储的预读反馈指令的地址信息。预读寄存器2用于获取并存储最新的预读反馈指令。第一逻辑判断模块3用于判断缓存寄存器1是否命中;当该缓存寄存器1命中时,第一逻辑判断模块3输出标识信号置为1 ;当该缓存寄存器1未命中时,第一逻辑判断模块3输出标识信号置为0。第二逻辑判断模块4用于判断预读寄存器2是否命中;当该预读寄存器2命中时,第二逻辑判断模块4输出标识信号置为1 ;当该缓存寄存器1未命中时,第二逻辑判断模块4输出标识信号置为0。预读发起判断模块5获取第一逻辑判断模块3的输出标识信号、第二逻辑判断模块4的输出标识信号,并将上述信号进行逻辑运算处理后,判断缓存寄存器1、预读寄存器2是否均未命中;当均未命中时,该预读发起判断模块5控制预读寄存器2获取并存储最新的预读反馈指令。
[0020]本实施例中,只有当CMHitLogic模块判断产生的命中信号CMHit与FBHitLogic模块判断产生的命中信号FBHit均为0时,即FeedBuffer与CacheMemory均未命中时,CacheMemory才会发起预读操作。预读过程中,CacheMemory会将FeedBuffer中存储的预读反馈指令根据其对应的在FeedBuffer的地址,更新到CacheMemory相对应的存储单元中。而FeedBuffer中的数据更新为最新的预读反馈指令。
[0021]如图2所示,一种提高片上系统指令缓存命中率的方法,该方法包含:
在步骤S1之前,还包含:
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1