处理器以及处理器操作方法

文档序号:10697536阅读:173来源:国知局
处理器以及处理器操作方法
【专利摘要】一种处理器,包括:微码收集器、微运算存储器以及执行单元。微码收集器侦测并收集多个微码指令。微运算存储器存储多个微运算,并将每一微码指令转换为第一数量的微运算,并且根据每一微运算对应的并列指示位的状态而并列发射并列数量的微运算。执行单元并列执行并列数量的微运算。
【专利说明】
处理器以及处理器操作方法
技术领域
[0001]本发明涉及一种处理器,特别涉及一种并列执行微码指令的处理器操作方法。
【背景技术】
[0002]处理器执行的指令分为简单指令(simp Ie instruct 1n)和微码指令(microcodeinstruct1n)。简单指令可以被译码单元(decode unit)译码成单一的微运算(micro-operat1n ,micro-op,uop) 后由执行单元(execute unit)一次性执行。然而,一些处理器使用微码指令来执行特定的程序,一个微码指令可定义为一个复杂指令,可参考为不能简单译码为单一的微运算由执行单元执行的指令集结构的指令。微码指令可经由一或多的运算查找表,被转译成一连串储存于存储器(如,只读存储器)的微运算。上述「运算查找表」也可称为「微码(microcode) J,以微码指令为索引可查找出对应的多个微运算。
[0003]尽管一个微码指令会转译为多个微运算执行,但有些旧有的微码(例如遗产微码legal microcode)是为了帮助处理器支持旧有的功能或指令,由于这些旧有的微码开发完成已经许多年,加上过去处理器的硬件的限制,例如为单发射(single issue)处理器,通常每个时钟周期只能发射一条微运算至后端执行,使得发射速率低落。因此,有必要在不改变旧有微码本身的情况下,提升旧有微码的发射率(issue rate) ο

【发明内容】

[0004]有鉴于此,本发明提出一种处理器,包括:微码收集器、微运算存储器以及执行单元。上述微码收集器侦测并收集多个微码指令;上述微运算存储器存储多个微运算,并将每一上述微码指令转换为第一数量的上述微运算,并且根据每一上述微运算对应的并列指示位的状态而并列发射并列数量的上述微运算;上述执行单元并列执行上述并列数量的上述微运算。
[0005]本发明还提出一种处理器操作方法,包括:侦测并收集多个微码指令;将上述微码指令转换为第一数量的微运算;根据每一上述微运算的并列指示位的状态,并列发射并列数量的上述微运算;以及并列执行上述并列数量的上述微运算。
【附图说明】
[0006]图1为显示根据本发明的一实施例所述的处理器的方块图;
[0007]图2为显示根据本发明的一实施例所述的微运算对应的并列指示位的示意图;
[0008]图3为显示根据本发明的另一实施例所述的处理器的方块图;以及
[0009]图4为显示根据本发明的一实施例所述的处理器操作方法的流程图。
【具体实施方式】
[0010]以下说明为本发明的实施例。其目的是要举例说明本发明一般性的原则,不应视为本发明的限制,本发明的范围当以申请专利范围所界定者为准。
[0011]值得注意的是,以下所揭露的内容可提供多个用以实践本发明的不同特点的实施例或范例。以下所述的特殊的组件范例与安排仅用以简单扼要地阐述本发明的精神,并非用以限定本发明的范围。此外,以下说明书可能在多个范例中重复使用相同的组件符号或文字。然而,重复使用的目的仅为了提供简化并清楚的说明,并非用以限定多个以下所讨论的实施例以及/或配置之间的关系。此外,以下说明书所述的一个特征连接至、耦接至以及/或形成于另一特征之上等的描述,实际可包含多个不同的实施例,包括该等特征直接接触,或者包含其它额外的特征形成于该等特征之间等等,使得该等特征并非直接接触。
[0012]图1为显示根据本发明的一实施例所述的处理器的方块图。如图1所示,处理器100包括指令高速缓冲存储器110、微码收集器120、微运算存储器130、执行单元140以及指令译码单元150。要知道,整体的处理器100可再包括其他所需的组件,在此简化以利详细说明本发明的技术特征。
[0013]指令高速缓冲存储器110,其高速缓冲存放诸如x86指令集架构等的指令集架构的指令,包括简单指令以及微码指令。根据本发明的一实施例,一条简单指令可由译码单元150直接转译成单一微运算后由后端的执行单元140直接执行,而微码指令无法由译码单元150直接转译后执行,必须先将微码指令经由微码转译为对应的一系列微运算才可由执行单元140进行执行。
[0014]根据本发明的一实施例,简单指令经由第一路径Pl由译码单元150直接转译后送到执行单元140;根据本发明的另一实施例,微码指令经由第二路径P2送至微码收集器120。微码收集器120用以侦测并收集取自指令高速缓冲存储器110的多个微码指令,微运算存储器130用以存储多个微运算,并将每一微码指令转换为一定数量的微运算,并且根据每一微运算对应的并列指示位的状态而并列发射并列数量的微运算至执行单元140。执行单元140接收到并列数量的微运算时,对并列数量的微运算进行并列执行。在一实施例中,微码收集器120和微运算存储器130也可包含在与译码单元150并列的另一译码单元中。值得注意的是,微运算存储器130并非将微运算直接发射至执行单元140执行,中间省略了现有技术的多个处理器流水线级,例如寄存器别名表(RAT)、重排序缓冲器(ROB)及保留站(Reservat1n Stat1n)等,在此不再赞述。
[0015]根据本发明的一实施例,本发明针对微运算存储器130内所存储的每一行微运算,对应存储并列指示位,其指示每一微运算是否能与其前面的微运算并列发射。举例而言,一行微运算的并列指示位如果为逻辑「I」,表示其能与其前面的微运算并列发射,如果为逻辑「O」,表示其不能与其前面的微运算并列发射,当然本发明不限于此。并列指示位可存储于微运算存储器130中与各自对应的微运算的存储位置对应的位置;由于旧有的微码不便于修改,在其它实施例中,这些并列指示位可存储于位存储器(图未绘示)中,该位存储器可独立于微运算存储器130之外,按照微码中微运算的原本的排列顺序,在该位存储器中对应存储各个并列指示位。图2会描述关于并列指示位的详细细节。
[0016]根据本发明的一实施例,微运算存储器130还包括逻辑模块131,用以侦测微码指令所对应的每一微运算的并列指示位的状态。逻辑模块131可以由微码后或包括在微码末尾的一段代码来实现。图2为显示根据本发明的一实施例所述的微运算对应的并列指示位的示意图。如图2所示,第一微运算INSTl具有第一并列指示位PI1,第二微运算INST2具有第二并列指示位PI2,第N微运算具有第N并列指示位PIN。
[0017]当微运算存储器130将一微码指令转换成第一微运算INSTl、第二微运算INST2、……第N微运算INSTN时,逻辑模块131侦测第一并列指示位PIl、第二并列指示位PI2、……第N并列指示位PIN,判断第一微运算INSTl、第二微运算INST2、……第N微运算INSTN是否能够并列执行。举例而言,第二并列指示位PI2为逻辑「I」,表示第二微运算INST2能与第一微运算INSTl并列发射;第三并列指示位PI3为逻辑「I」,表示第三微运算INST3能与第二微运算INST2并列发射;……依此类推,直到有某个微运算(例如INSTM)的并列指示位(例如PIM)为逻辑「O」,则表示INSTM不能与其前面的运算并列发射,则逻辑模块131判定微运算INSTl?INST(M-1)能够并列发射。通常微码中的一般微运算,例如算术逻辑运算(ALU)、单指令流多数据流运算(SHffi)及访问存储器运算等都可以并行发射,而一些特殊的微运算,例如分支(branch)、中断(interrupt)及型号相关寄存器(Mod el SpecificRegister,MSR)读取和写入(RDMSR/WRMSR)等必须按顺序发射。
[0018]根据本发明的一实施例,当逻辑模块侦测到对应该微码指令的第一数量的微运算中有第二数量(例如微运算INSTl?INST(M-1))的并列指示位为第一逻辑位准时,代表对应的微运算(例如微运算INSTl?INST(M-1))可进行并列执行。根据本发明的一实施例,第一逻辑位准可根据设计的需要,而为逻辑「O」或逻辑「IJ。
[0019]在本实施例中,微运算存储器130自并列指示位为第一逻辑位准的第二数量的微运算中挑选并列数量的微运算并列发射至执行单元140进行并列执行。根据本发明的一实施例,并列数量根据处理器100的发射率(issue rat1,例如为4/6/8issue,S卩可以并行执行4/6/8个微运算)所决定;也就是,并列数量为处理器100的后端流水线(例如执行单元140)所能并列执行微运算的数量而定。在现有技术中,尽管处理器100的后端流水线具有多发射(mult1-1ssue)的处理能力,但由于旧有微码仅支持单发射(single issue),因此每个时钟周期只能向处理器100的后端发射一个微运算,而本发明在不改变旧有微码(例如遗产微码legacy microcode)的本身的前提下,向处理器100的后端实现多发射,充分利用处理器100的后端带宽,提尚指令执彳丁效率。
[0020]根据本发明的一实施例,当微运算存储器130由微码指令所产生的微运算的第一数量大于并列数量时,也就是当微运算存储器130微码指令根据微码转换所产生的微运算的数量大于执行单元140所能并列执行的数量时,微运算存储器130必须重复将微码指令转换成微运算,直到执行单元140完成所有微码指令对应的微运算。
[0021]举例来说,微运算存储器130将一微码指令转换成100条微运算,而执行单元140所能并列执行的数量仅有4条。假设100条微运算皆可并列发射,因此微运算存储器130必须利用25个时钟周期才能完成该微码指令。
[0022]图3为显示根据本发明的另一实施例所述的处理器的方块图。如图3所示,处理器300包括指令高速缓冲存储器310、微码收集器320、微运算存储器330、执行单元340、并列执行缓存器350以及译码单元360,其中指令高速缓冲存储器310、微码收集器320、微运算存储器330、执行单元340以及译码单元360分别对应至图1的指令高速缓冲存储器110、微码收集器120、微运算存储器130、执行单元140以及译码单元150。
[0023]指令高速缓冲存储器310所产生的简单指令以及微码指令,分别经由第一路径Pl以及第二路径P2送至执行单元340。相较于图1的处理器100,处理器300还包括并列执行缓存器350,其中并列执行缓存器350用以暂存微运算存储器330对应一微码指令所产生的第一数量的微运算中能够并列发射的(第二数量)部分或所有的微运算,在一实施例中,并列执行缓存器350还代替图1的逻辑模块131侦测并判断微运算所对应的并列指示位的状态。当并列执行缓存器350在第一数量的微运算中侦测到第二数量的微运算能够并列发射时,微运算存储器330于一个时钟周期将第二数量的微运算全部推送并暂存至并列执行缓存器350中;在某些实施例中,如果并列执行缓存器350的存储容量(第三数量)不足以容纳第二数量的微运算,则微运算存储器330于一个时钟周期将第二数量中的第三数量的微运算推送并暂存至并列执行缓存器350中。
[0024]根据本发明的一实施例,并列执行缓存器350接着于下一时钟周期中自其所暂存的微运算中选出并列数量的微运算,发射至执行单元340进行并列执行,并且暂存剩余的微运算。根据本发明的另一实施例,并列执行缓存器350还于下一时钟周期自剩余的微运算选出上述并列数量的上述微运算,发射至执行单元340进行并列执行。
[0025]举例来说,微运算存储器330将一微码指令转换成200条微运算,其中有100条微运算能够并列发射出去,而执行单元340每个时钟周期所能并列执行的数量仅有4条。假设并列执行缓存器350足以暂存所有的100条微运算,尽管执行缓存器350利用25个时钟周期才能将这100条微运算全部发射出去,但却使得微码收集器320以及微运算存储器330在将这100条微运算推送至并列执行缓存器350后就能够释出,用以处理下一微码指令,进而进一步提升处理器300的执行效率。
[0026]根据本发明的一实施例,当并列执行缓存器350发出并列数量的微运算至执行单元340进行并列执行后并列执行缓存器350仍存有未完成的微运算时,并列执行缓存器350于下一时钟周期会再次将能够并列执行的微运算发射至后端的执行单元340执行。
[0027]图4为显示根据本发明的一实施例所述的处理器操作方法的流程图。以下针对图4的流程图的叙述,将搭配图1、图3,以利详细说明本发明的技术特征。
[0028]首先,微码收集器120、320侦测并收集指令高速缓冲存储器110、310输出的多个微码指令(步骤SI),即从指令高速缓冲存储器110的所有指令中辨识出微码指令,并将微码指令收集起来;微运算存储器130、330将微码收集器120、320所储存的微码指令的每一个转译为第一数量的微运算(步骤S2)。微运算存储器130、330还根据每一微运算的并列指示位的状态,并列发射并列数量的微运算(步骤S3)。根据本发明的一实施例,微运算存储器130还侦测每一微运算对应的并列指示位的状态而判定第一数量的微运算中的第二数量的微运算能够进行并列执行,微运算存储器130自第二数量的微运算中选取并列数量的微运算发射。
[0029]与图3不同,根据本发明的另一实施例,并列执行缓存器350用以暂存微运算存储器330产生的第一数量(例如200条)的微运算,并且侦测微运算的并列指示位的状态而判断第一数量(例如200条)的微运算中第二数量(例如100条)的微运算能够进行并列执行,则该并列执行缓存器350于每个时钟周期自第二数量(例如100条)的微运算中选出并列数量(例如4条)的微运算,并发射并列数量的微运算。
[0030]处理器后端的执行单元140、340接收到并列数量的微运算时,对并列数量的微运算进行并列执行(步骤S4)。根据本发明的一实施例,并列数量根据处理器100、300的发射率所决定;也就是,并列数量为后端流水线(例如执行单元140、340)所能并列执行的微运算的数量而定。
[0031]根据本发明的另一实施例,当微运算的并列指示位为第二逻辑位准且第二逻辑位准与第一逻辑位准不相同时,代表该微运算无法与其之前的微运算并列执行。因此,微运算存储器130、330将单独发射该并列指示位为第二逻辑位准的微运算,使得后端的执行单元140、340对该微运算依序执行。
[0032]以上所述为实施例的概述特征。所属技术领域中具有通常知识者应可以轻而易举地利用本发明为基础设计或调整以实行相同的目的和/或达成此处介绍的实施例的相同优点。所属技术领域中具有通常知识者也应了解相同的配置不应背离本发明的精神与范围,在不背离本发明的精神与范围下他们可做出各种改变、取代和交替。说明性的方法仅表示示范性的步骤,但这些步骤并不一定要以所表示的顺序执行。可另外加入、取代、改变顺序和/或消除步骤以视情况而作调整,并与所揭露的实施例精神和范围一致。
【主权项】
1.一种处理器,其特征在于,包括: 微码收集器,侦测并收集多个微码指令; 微运算存储器,存储多个微运算,并将每一上述微码指令转换为第一数量的上述微运算,并且根据每一上述微运算对应的并列指示位的状态而并列发射并列数量的上述微运算;以及 执行单元,并列执行上述并列数量的上述微运算。2.根据权利要求1所述的处理器,其特征在于,还包括: 位存储器,对应每一上述多个微运算存储上述并列指示位。3.根据权利要求1所述的处理器,其特征在于,上述并列指示位指示每一上述微运算是否能与其前面的微运算并列发射。4.根据权利要求1所述的处理器,其特征在于,上述微运算存储器包括: 逻辑模块,侦测每一上述第一数量的微运算对应的上述并列指示位的状态,其中当上述逻辑模块侦测到上述第一数量的微运算中第二数量的上述微运算对应的上述并列指示位为第一逻辑位准时,上述逻辑模块判定上述第二数量的上述微运算能够并列发射。5.根据权利要求4所述的处理器,其特征在于,当上述逻辑模块判断上述第二数量的上述微运算能并列发射时,上述微运算存储器自上述第二数量的上述微运算选出上述并列数量的上述微运算并列发射至上述执行单元进行并列执行。6.根据权利要求1所述的处理器,其特征在于,还包括: 并列执行缓存器,存储容量为最多可存储第三数量的上述微运算,当侦测到上述第一数量的微运算中第二数量的微运算能够并列发射时,上述微运算存储器将上述第二数量的微运算中的上述第三数量的微运算推送并暂存至上述并列执行缓存器中,并且上述并列执行缓存器于一时钟周期中将自上述第三数量的上述微运算选出上述并列数量的上述微运算,发射至上述执行单元进行并列执行。7.根据权利要求1所述的处理器,其特征在于,还包括: 并列执行缓存器,当侦测到上述第一数量的微运算中第二数量的微运算能够并列发射时,上述微运算存储器将上述第二数量的微运算推送并暂存至上述并列执行缓存器中,并且上述并列执行缓存器于一时钟周期中将自上述第二数量的上述微运算选出上述并列数量的上述微运算,发射至上述执行单元进行并列执行。8.一种处理器操作方法,其特征在于,包括: 侦测并收集多个微码指令; 将上述微码指令转换为第一数量的微运算; 根据每一上述微运算的并列指示位的状态,并列发射并列数量的上述微运算;以及 并列执行上述并列数量的上述微运算。9.根据权利要求8所述的处理器操作方法,其特征在于,还包括: 侦测每一上述微运算对应的并列指示位的状态;以及 当侦测到上述第一数量的微运算中第二数量的上述微运算对应的上述并列指示位为第一逻辑位准时,判定上述第二数量的上述微运算能够并列执行。10.根据权利要求9所述的处理器操作方法,其特征在于,还包括: 当判断上述第二数量的上述微运算能并列发射时,自上述第二数量的上述微运算选出 上述并列数量的上述微运算并列发射至执行单元进行并列执行。
【文档编号】G06F9/30GK106066786SQ201610361995
【公开日】2016年11月2日
【申请日】2016年5月26日 公开号201610361995.3, CN 106066786 A, CN 106066786A, CN 201610361995, CN-A-106066786, CN106066786 A, CN106066786A, CN201610361995, CN201610361995.3
【发明人】杨梦晨
【申请人】上海兆芯集成电路有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1