一种加快存储指令执行效率的数据处理器制造技术

技术编号:7437399 阅读:196 留言:0更新日期:2012-06-15 20:47
一种加快存储指令执行效率的数据处理器,包括:存器堆,指令译码单元,指令调度单元,用以根据指令操作数的相关性信息完成存储指令地址操作数的前馈和其他指令所有操作数的前馈,将操作数前馈完成的指令发射到对应的指令执行单元中;存储指令队列,用以接收来自指令译码单元的存储指令,保存存储指令的回写数据和相关性信息,监测各个执行单元的出口数据,根据存储指令数据操作数的相关性信息完成存储指令回写数据的前馈;指令执行单元,用以接收来自指令调度单元发射的指令,根据指令类型分为不同的执行单元。本发明专利技术有效减少由于数据读后写的真相关导致的流水线停顿、加快存储指令的执行效率、提升处理器性能。

【技术实现步骤摘要】

本专利技术涉及一种数据处理器。
技术介绍
在处理器的流水化技术中,流水线的冲突主要包括结构冲突,数据冲突和控制冲突。随着流水线的不断加深,这几类冲突导致流水线的停顿,严重影响了处理器的性能。对于结构冲突可以通过增加资源的方式给予解决;对于控制冲突,采用了各类分支预测器、分支目标缓存器等各种技术减少控制冲突带来的性能损失;对于数据冲突,特别是读后写的真相关,硬件上通常采用前馈的机制去缓解其带来的性能损失。对于存储指令而言,其操作数分为地址操作数和数据操作数,其操作数可能来自于各类指令的执行结果,包括运算类指令和内存载入指令。解决存储指令的数据冲突,最简单的方法就是在指令发射的时候去前馈各个执行单元的执行结果,当其操作数消除了数据相关性时才发射到执行单元中去处理。该方法的优点是简单并且与其他指令数据相关性的处理机制统一;缺点是存储指令堵住发射阶段且有可能堵住后续没有相关性指令的发射, 从而影响了性能。从存储指令本身的特点出发,我们可以看到,存储的回写数据只有在存储指令真正需要内存时才需要,而从存储指令的发射到回写内存中间存在着一个时间差。因此有人提出了在存储地址相关性已经消除,数据操作数只在与载入指令有相关性,与其它类型指令没有相关性的情况下将该存储指令发射到执行单元中去,存储指令在执行单元内部完成对载入指令的前馈操作。该方法的优点是提高了内存拷贝的速率,缺点是存储指令的数据操作数在与除了载入指令之外的其他类型指令有相关性时被堵在指令发射阶段,且在执行单元内部但凡有存储指令的地方都需要存储的回写数据和对载入结果进行前馈的逻辑,导致后端布线的复杂性。专利技术内容为了克服已有的数据处理器在解决存储数据相关性中存在的数据读后写的真相关时流水线停顿较长、存储指令执行效率较低、限制了处理器性能的不足,本专利技术提出了一种有效减少由于数据读后写的真相关导致的流水线停顿、加快存储指令的执行效率、提升处理器性能的加快存储指令执行效率的数据处理器。本专利技术解决其技术问题所采用的技术方案是一种加快存储指令执行效率的数据处理器,所述数据处理器包括寄存器堆;指令译码单元,用以根据指令操作码译出指令的类型信息和操作数信息,访问寄存器堆,并对指令操作数的相关性进行检测;指令调度单元,用以接收来自指令译码单元的所有指令,监测各个执行单元的出口数据,根据指令操作数的相关性信息完成存储指令地址操作数的前馈和其他指令所有操作数的前馈,将操作数前馈完成的指令发射到对应的指令执行单元中;存储指令队列,用以接收来自指令译码单元的存储指令,保存存储指令的回写数据和相关性信息,监测各个执行单元的出口数据,根据存储指令数据操作数的相关性信息完成存储指令回写数据的前馈;指令执行单元,用以接收来自指令调度单元发射的指令,根据指令类型分为不同的执行单元,存储指令被发射到存储指令执行单元中执行,其他指令根据指令类型在相应的执行单元中完成;所述存储指令执行单元中,从指令调度单元的出口获取存储指令的地址操作数,从存储指令队列的出口获取存储指令的回写数据。本专利技术的“其他指令”是指,各类算术指令,逻辑操作指令,载入指令,跳转指令和其他杂类指令。进一步,当指令译码单元译出是一条存储指令时,该存储指令被输送到指令调度单元,输送的信息包括从寄存器堆中取到的地址操作数和指令译码单元产生的地址操作数的相关性信息;并同时该存储指令被创建进入存储指令队列中,创建的信息包括从寄存器堆中取到的回写数据和指令译码单元产生的数据操作数的相关性信息;存储指令队列的深度是指令调度单元最多可调度的存储指令数与存储指令执行单元最多能同时处理的存储指令数之和。再进一步,存储指令的相关性包括地址操作数的相关性与数据操作数的相关性两种。在所述指令译码单元中,如果不存在相关性,则各个操作数从寄存器堆中直接获取,如果存在相关性,则需要通过由指令调度单元或存储指令队列从各个执行单元的出口前馈获得。在指令调度单元中,当存储指令的地址操作数不存在相关性或者相关性通过前馈消除时,该存储指令即可被发射到存储指令执行单元。更进一步,存储指令在存储指令队列中进行的数据操作数的前馈与存储指令在指令调度单元中接受调度并行开展;存储指令在存储指令队列中进行的数据操作数的前馈与存储指令在存储指令执行单元中接受处理并行开展;即在数据操作数相关性消除之前,存储指令可以执行地址产生、物理地址转换、高速缓存访问准备操作。优选的,在存储指令执行单元中,当存储指令确定可以回写内存或者回写片上存储器时,从存储指令队列中读取存储指令的相关性信息,若数据相关性已消除则回写内存或者回写片上存储器;若相关性没有消除,该存储指令不能回写内存或者回写片上存储器, 继续等待数据相关性消除。存储指令队列的存储指令在数据回写到内存或者回写到片上存储器时从存储指令队列中退休。本专利技术的技术构思为将存储指令的地址操作数和数据操作数的前馈分开进行, 当存储指令地址操作数相关性消除时就发射到执行单元去处理,存储指令的数据操作数的前馈集中在一个存储指令队列中进行,当存储指令回写内存时才从该队列中获得数据。本专利技术的有益效果主要表现在减少由于数据读后写的真相关导致的流水线停顿,加快存储指令的执行效率,从而提高了数据处理器的性能。附图说明图1是数据处理器的一个示例图;图2是处理器核心的一部分的一个示例图。图3是存储指令队列的一个示例图。具体实施例方式下面结合附图对本专利技术作进一步描述。参照图1 图2,一种加快存储指令执行效率的数据处理器,所述数据处理器包括寄存器堆;指令译码单元,根据指令操作码译出指令的类型信息和操作数信息,访问寄存器堆,并对指令操作数的相关性进行检测;指令调度单元,接收来自指令译码单元的所有指令,监测各个执行单元的出口数据,根据指令操作数的相关性信息完成存储指令地址操作数的前馈和其他指令所有操作数的前馈,将操作数前馈完成的指令发射到对应的指令执行单元中;存储指令队列,接收来自指令译码单元的存储指令,保存存储指令的回写数据和相关性信息,监测各个执行单元的出口数据,根据存储指令数据操作数的相关性信息完成存储指令回写数据的前馈;指令执行单元,接收来自指令调度单元发射的指令,根据指令类型分为不同的执行单元,存储指令被发射到存储指令执行单元中执行,其他指令根据指令类型在相应的执行单元中完成;存储指令执行单元从指令调度单元的出口获取存储指令的地址操作数,从存储指令队列的出口获取存储指令的回写数据。图1说明数据处理器10,在一个实施例中,数据处理器10包括处理器核心12,存储器14,总线接口单元18和其他单元16,它们通过总线20相互双向连接,总线接口单元18 通过外部总线22将外部设备和数据处理器10相连。图2说明图1的处理器核心12的一部分。在一个实施例中,处理器核心包括指令提取单元30,寄存器堆32,指令译码单元34,指令调度单元36,存储指令队列38,存储指令执行单元40,其他指令执行单元42,指令高速缓存器44和数据高速缓存器46。指令提取单元30访问指令高速缓存器44获取所需指令发送到指令译码单元34中,指令译码单元根据指令的操作码译出指令的类型信息和操作数信息,检测出各个操作数的相关性,并同时访问寄存器堆32获取指令的操作数。指令调度单元36接收来自指令本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:葛海通项晓燕杨军陈志坚
申请(专利权)人:杭州中天微系统有限公司
类型:发明
国别省市:

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

1
相关领域技术