存储载入单元投机执行控制装置制造方法及图纸

技术编号:7837648 阅读:185 留言:0更新日期:2012-10-12 02:21
一种存储载入单元投机执行控制装置,包括:存储/载入指令投机发射序列单元,用于以程序顺序接收存储/载入指令流,并创建保存指令顺序的程序序列矩阵;完成存储/载入指令的数据相关性消除工作,投机地将数据相关性已经消除但地址相关性无法判断的存储/载入指令发射到存储/载入指令执行单元中,并且将未消除数据相关性的存储/载入指令存入指令缓存器中;存储/载入指令执行单元,用于接收来自投机发射序列发射的存储/载入指令,按照指令的类型完成相应的操作;存储/载入指令重排序缓冲器,用于对存储/载入指令的执行进行监控。本发明专利技术在处理深流水线处理时加速存储载入操作、保证正确性、提升存储器性能。

【技术实现步骤摘要】

本专利技术涉及存储器管理技术,尤其是一种存储载入单元。
技术介绍
程序设计者将一段程序按照一定顺序交给微处理器进行计算运行,通常这个特定顺序叫做程序顺序。微处理器获得指令流后根据程序顺序,以及执行指令的特定规则下发给其各个执行单元进行运算。其中存储载入指令将发射给存储载入单元执行,修改存储器或者获得存储器中的数值,以及其他相关操作。一种可以使存储载入单元根据程序顺序正确执行存储载入指令的方法是简单根据程序顺序来执行存储载入指令,按序的读入指令,按序的读取或修改寄存器和存储器,按序的退休指令。然而当存储载入单元遇到的指令与前序指令,特别是长周期指令,有数据相关关系时,该阻塞指令将长期无法执行而导致后续无关的存储载入指令无法执行。而如果使用乱序投机的存储载入单元,可以避免阻塞指令后续的存储载入指令长期等待而可以提前执行,从而减少因为阻塞指令导致的长时间存储载入单元空闲,实现效能的提升。乱序执行的存储载入的控制单元,其能够乱序地对存储器进行存储和载入控制,使得无相关的存储载入行为能够最大限度地进行乱序高速执行。由于存储\载入单元需要直接修改内存和寄存器,不仅涉及到数据相关性的维护,而且还涉及地址相关性的消除,但是深流水线处理的地址相关性往往需要较晚才能得知,所以需要一种投机执行的乱序存储\载入单元,加速存储载入操作,并保证存储载入操作的正确性。
技术实现思路
为了克服已有乱序执行的存储载入单元在处理深流水线处理时操作速度较慢、操作正确性较差、限制了存储器性能的不足,本专利技术提供一种在处理深流水线处理时加速存储载入操作、保证正确性、提升存储器性能的存储载入单元投机执行控制装置。本专利技术解决其技术问题所采用的技术方案是一种存储载入单元投机执行控制装置,所述投机执行控制装置包括存储/载入指令投机发射序列单元,用于以程序顺序接收存储/载入指令流,并创建保存指令顺序的程序序列矩阵;根据存储/载入指令操作数的相关性信息,完成存储/载入指令的数据相关性消除工作,投机地将数据相关性已经消除但地址相关性无法判断的存储/载入指令发射到存储/载入指令执行单元中,并且将未消除数据相关性的存储/载入指令存入指令缓存器中;存储/载入指令执行单元,用于连接至存储/载入指令投机发射序列,接收来自投机发射序列发射的存储/载入指令,按照指令的类型完成相应的操作;存储/载入指令重排序缓冲器,用于根据位于存储/载入指令投机发射序列记录指令顺序的程序序列矩阵和存储/载入指令执行单元执行的存储/载入指令,对存储/载入指令的执行进行监控,检测乱序执行的指令是否因为地址相关性而出现投机错误,将指令执行指令投机错误的信息输出到存储/载入指令投机发射序列;存储/载入指令投机发射序列将指令执行的正确与否的信息输出给微处理器将指令错误信息反馈给微处理器。进一步,所述存储/载入指令投机发射序列单元中,建立程序序列矩阵时,运用矩阵行列二维更新的特性,记录指令序列的创建信息,为存储/载入指令重排序缓冲器提供依据。再进一步,所述存储/载入指令执行单元中,进行地址计算和内存存储访问,将执行完成的结果反馈回存储/载入指令乱序发射序列。更进一步,所述存储/载入指令重排序缓冲器中,对存储/载入指令的执行进行监控的过程为检查当前正在执行指令的前序指令是否还有未完成的;同时检查是否有和当前指令访问地址相同的前序指令;如果有未完成的并且访问地址相同的前序指令,则返回存储/载入指令重排序缓冲器投机执行错误;避免因为地址相关性导致的投机执行错误。优选的,如果发现存储/载入指令投机执行错误,则存储/载入单元获得投机失败信号并反馈给微处理器内部控制逻辑,由微处理器内部控制单元重新执行该指令之后的所有指令。本专利技术中,所述数据相关性是指前序指令的输出数据与后序存储载入指令的输入数据之间有相关关系,地址相关性是指前序指令的输出数据与后序指令的地址之间有相关关系。本专利技术的有益效果主要表现在在处理深流水线处理时加速存储载入操作、保证正确性、提升存储器性能。附图说明图I是乱序执行的存储载入单元框架图。图2是乱序执行的存储载入单元结构图。图3是存储/载入指令乱序发射序列流程图。图4是存储/载入指令执行单元流程图。图5是存储/载入指令重排序缓冲器流程图。图6是程序序列矩阵操作示意图,其中,Ca)为初始状态矩阵内所有位全部清零,(b)为指令m进入存储载入单元,(c)为对于指令n,程序顺序比它早的指令为指令2和指令m。具体实施例方式下面结合附图对本专利技术作进一步描述。参照图I 图6,一种存储载入单元投机执行控制装置,该单元包括存储/载入指令乱序发射序列、存储/载入指令执行单元、存储/载入指令重排序缓冲器。存储/载入指令投机发射序列(11)接收来自微处理器取指单元的顺序指令(31),判断该指令的数据相关性是否消除(32)。如果该存储\载入指令数据相关性,则顺序下发该指令(33)。如果该指令具有数据相关性,则存储该指令(34),发射后续无相关性的指令,等待该指令的数据相关性消除后再发射该指令(35),从而实现指令的投机乱序发射。存储/载入指令投机发射序列(11)接收来自微处理器取指单元的顺序指令(31),并根据指令的运行顺序,建立程序序列矩阵。该矩阵为二维N*N变方阵(N为存储载入单元最多能同时容纳的指令数目)(61)。一条指令进入存储/载入指令投机发射序列时,将程序序列矩阵该条指令对应的横列全部清除,将该条指令对应的纵列全部置位,以此来记录指令的先后顺序(62)。当需要得知在A指令之前的所有指令时,只要查看A指令所对应的横行,若某条横行标志位为I,则该指令的程序顺序在A指令之前;若某条横行标志位为1,则该指令的程序顺序在A指 令之后(63)。存储/载入指令执行单元(12)接收来自存储/载入指令乱序发射序列的指令,并根据存储载入指令的规则执行存储载入运算(41)。运算结果需要修改存储器时,按照存储指令在存储/载入指令乱序发射序列中记录的顺序按序提交请求给总线(44),若要修改寄存器,则按照载入指令在存储/载入指令乱序发射序列中记录的顺序按序修改寄存器(47)。运算结束信息返回存储/载入指令乱序发射序列,并由乱序发射序列反馈微处理器。存储/载入指令重排序缓冲器(13)监测存储/载入指令执行单元中指令的执行过程。存储/载入指令重排序缓冲器对每一条存储指令进行监测(51):当存储指令执行结束前,存储/载入指令重排序缓冲器根据程序序列矩阵中记录的指令顺序,监测是否有程序顺序位于该条存储指令之后的载入指令已经被执行(55),若存在这样的载入指令且该载入指令的地址和存储指令的地址相同(56),则存储/载入指令重排序缓冲器向微处理器反馈指令执行错误信息(57),否则投机执行正确。投机错误的指令将被存储/载入单元重新执行。本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种存储载入单元投机执行控制装置,其特征在于所述投机执行控制装置包括 存储/载入指令投机发射序列单元,用于以程序顺序接收存储/载入指令流,并创建保存指令顺序的程序序列矩阵;根据存储/载入指令操作数的相关性信息,完成存储/载入指令的数据相关性消除工作,投机地将数据相关性已经消除但地址相关性无法判断的存储/载入指令发射到存储/载入指令执行单元中,并且将未消除数据相关性的存储/载入指令存入指令缓存器中; 存储/载入指令执行单元,用于连接至存储/载入指令投机发射序列,接收来自投机发射序列发射的存储/载入指令,按照指令的类型完成相应的操作; 存储/载入指令重排序缓冲器,用于根据位于存储/载入指令投机发射序列记录指令顺序的程序序列矩阵和存储/载入指令执行单元执行的存储/载入指令,对存储/载入指令的执行进行监控,检测乱序执行的指令是否因为地址相关性而出现投机错误,将指令执行指令投机错误的信息输出到存储/载入指令投机发射序列;存储/载入指令投机发射序列将指令执行的正确与否的信息输出给微处理器将指令错误信息反馈给微处理...

【专利技术属性】
技术研发人员:严晓浪仇径葛海通孟建熠
申请(专利权)人:杭州中天微系统有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1