指令调度方法和寄存器竞争检查方法技术

技术编号:2891581 阅读:185 留言:0更新日期:2012-04-11 18:40
一种用于超级标量微处理器的指令调度方法,在指令取出阶段之后具有指令译码阶段,其特征在于:包括预译码处理阶段和调度处理阶段,在前进到指令译码阶段之前将第1区域和第2区域附加到经过取出处理的指令上,在对经过取出处理的指令进行预译码处理的级,上述第1区域包含从经过取出处理的指令中抽出的供应元信息,上述第2区域包含以与经过取出处理过的指令类似形式的指令识别供应元类别的供应元分类区域;使上述经过取出处理的指令前进到用于生成译码指令的指令译码阶段后,对该指令进行调度处理; 上述调度处理阶段使用上述第1区域和第2区域引导到处理经过译码处理指令的功能单元。(*该技术在2014年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一般流水线化的超级标量微处理器。特别是本专利技术涉及正常处理中和异常处理后的流水线化超级标量微处理器的指令调度处理。微处理器具有地址处理、执行和控制动作用的有限个单片供应元。即,在微处理器(在经济性和执行速度两方面)所花费用与供应元数量之间,存在一定的折衷条件。另外,微处理器的设计者在设计特定的供应元组合时,应考虑以最高的效率使用这些供应元,以便发挥最高的性能。例如,在标量处理器的情况下,作为有意义的供应元的限制例子,可以举出从存储器取出只传送给ALU(运算器)芯片的有效性。该ALU根据数据操作,并供应输出,然后,从存储器传送其他操作数时,则应与执行其他运算对应。由于ALU是关键部件,所以,可以很容易识别未处于暂停状态。另外,为了提高性能,在ALU之前加了流水线状的结构。即,利用流水线结构可以用尽可能高的速度处理操作数。由于不需要操作数等待,所以,可以提高性能。但是,在流水线中含有非法数据的状态下,将发生各种问题。这种状态的一个例子是从状态转移产生的。即,流水线可能含有只与转移状态的一个可能性对应的数据,但有时数据是非法的。因此,异常或者陷阱这样的用语就是为了识别由该系统执行的异常处理要求而使用的。为了处置这种异常情况,开发了各种对策,而新的对策又反复出现新的问题,现在仍继续看。但是,在这种继续进行的新的改良系统的开发中,本来的目的是最大限度地发挥性能。超级标量微处理器也存在同样的问题,这些问题曾是庞大而复杂的问题。超级标量微处理器具有多功能单元,同一单元不仅执行指令,而且可以作为其他功能单元而执行其他动作。例如,标量处理器具有每一个流水线阶段有1个指令的流水线时,超级标量微处理器就具有每一个阶段可以有多个指令的流水线。巨型计算机常常采用这种超级标量结构,这时,性能和费用的综合也是重要的问题。同时,由微处理器所具有的供应元发挥最大的计算能力是非常重要的。另外,在发挥最高性能的要点中包括可以迅速处理异常情况的高速而高效率的流水线。这时,用于使功能单元尽可能迅速对应的程序指令需要对处于忙碌状态的供应元进行高速分析。本专利技术在具有多种执行能力的超级标量微处理器中提供具有高速且高效率流水线的装置和方法。本专利技术的流水线,在可利用的供应元流水线内可以迅速地适应于调度的指令。另外,在该流水线中发生的异常情况都可以在同一流水线级中用相同的方法高效率地处理。按照本专利技术的一种形式,具有5阶段的超级标量整数流水线,流水线对数据进行取出、译码、地址处理、执行并且写入寄存器文件。这时,预译码器在取出阶段对指令进行预处理,确定供应元的竞争状态,给各指令附加包含特殊分类码的代码,改善指令的调度处理(分配发送处理)。在译码阶段,按照供应元的记录板和其他供应元的关联状态,将整数指令按程序的顺序传送给功能单元。另外,在地址处理和执行阶段,浮点指令在重新格式化后供给的供应元代码顺序内循环,在4个指令同时写入的阶段,在与浮点单元对应的先进先出(FIFO)队列内循环。按照本专利技术的其他形式,在指令执行错误、多种高速缓冲存储器位错误和转移预测错误等情况下的异常处理都在上述执行阶段确定。即,在超级标量流水线中,利用指令优先位,可以可靠地执行具有比异常因素优先性高的指令。另一方面,异常指令和优先性低的指令及其效果被抵消。此外,参照包括附图和权利要求范围在内的本说明书的其余部分,可以理解本专利技术的其他特征和优点。附图说明图1是具有整数单元12和浮点单元14的超级标量微处理器单元(SMU)10的框图。图2是表示SMU10的功能指令流程路径(流水线)的一种形式的框图。图3表示SMU10流水线结构的5阶段整数流水线部分250的同时也是用于说明各阶段执行功能的框图。图4是表示SMU10流水线结构的浮点流水线300与整数流水线250去耦的框图。图5是表示包括整数流水线250、外部高速缓存流水线302和浮点流水线300的组合流水线350的框图。图6是图2所示的调度单元202的详细框图。图7是表示预译码处理后的重新格式化指令450的模板图。图8是通过图6所示整数调度单元402的数据通路流程的框图。图9是用来说明用于设定并确定供应元竞争的寄存器记录板480使用方法的概要图。图10是基于极佳的实施例的取出和调度系统500的简化框图。图11是示出在4个周期中图10所示指令排队的动作图。图12是表示重新格式化浮点操作指令550的模板和重新格式化处理后的重新格式化浮点存储器操作指令552的模板图。图13是用于执行浮点装入(供给)操作的SMU10调度处理概要图。图14是用于执行浮点存储操作的SMU10的调度处理概要图。下面,参照附图按照以下内容的顺序说明本专利技术。内容I.绪论II.流水线结构III.调度处理IV.流水线的再填充和异常处理V.结论I.绪论图1是具有整数单元12和浮点单元14的超级标量微处理器单元10的框图。在该极佳的实施例中,整数单元12和浮点单元14共同相互作用构成单一的微处理器,但是,这些功能在两种隔离的集成电路装置之间在物理上分割开来。微处理器单元10具有通过特征存储器单元18进行存取的全局外部高速缓冲存储器(GS)16。即,外部高速缓冲存储器16从对整数单元12和浮点单元14两方面利用的角度看,是全局的。整数单元12具有多个功能单元。这些功能单元具有与整数寄存器文件52连接的整数处理执行单元50。另外,执行处理单元50具有2个整数运算逻辑单元(IALUs)和移位器及乘法—加法单元。该执行单元50根据从寄存器文件52接收的数据动作,再将结果写回去。整数单元12将整数数据从单板数据高速缓冲存储器(DS)54装入寄存器文件52,将数据从寄存器文件52装入DS54,并通过浮点单元14存储到外部高速缓冲存储器内。地址发生器56向DS54供给虚拟地址,并使用寄存器文件52的数据产生地址。存储在该DS54内的数据只是全有效存储器的一部分,整数单元12所需要的数据有时在DS54中也是无效的。这时,整数单元12对外部高速缓冲存储器16进行存取,并将所希望的数据供给DS54。为了对外部高速缓冲存储器16进行存取,整数单元12利用转换后备缓冲器(TLB)58将从地址生成器56供给的虚拟地址变换为物理地址。并且,TLB58将物理地址供给外部高速缓冲存储器16和特征存储器单元18。然后,外部高速缓冲存储器16用所希望的数据填充DS54。整数单元12为了控制数据流和操作而使用指令。因此,整数单元12具有指令高速缓冲存储器(IS)70、转移预测高速缓冲存储器(BS)72、指令缓冲器74、调度单元80和浮动小数点指令排队缓冲器(FPQ)82,在超级标量微处理器单元10内按照适当的顺序进行指令的收集和向适当的供应元供给。IS70存储并供应指令,一部分指令是转移指令,生成程序流程中的不连续点。BS72与IS70连接,存储与IS70中各转移指令对应的转移目标指针。指令缓冲器74另外还和IS70的输出连接,按照所希望的顺序装入IS70的指令。调度单元80读取指令缓冲器74的指令,取出这些指令检查所需要的硬件供应元是否有效,并且,将指令供给微处理器单元10的适当功能单元。该调度单元80将传送给浮点单元14的预定的指令调度给浮点排队缓冲器82。调度单元80向执行单元50调度整本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:约瑟夫P·布拉特彼得·苏颜特钱达·S·乔希莫妮卡R·诺法尔保罗·罗德曼约瑟夫T·斯坎伦唐曼希
申请(专利权)人:株式会社东芝MIPS技术公司
类型:发明
国别省市:

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

1