CN202720631U - 基于单/双发射指令集的微处理器指令处理系统 - Google Patents

基于单/双发射指令集的微处理器指令处理系统 Download PDF

Info

Publication number
CN202720631U
CN202720631U CN 201220023847 CN201220023847U CN202720631U CN 202720631 U CN202720631 U CN 202720631U CN 201220023847 CN201220023847 CN 201220023847 CN 201220023847 U CN201220023847 U CN 201220023847U CN 202720631 U CN202720631 U CN 202720631U
Authority
CN
China
Prior art keywords
instruction
register
single transmit
microprocessor
line apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CN 201220023847
Other languages
English (en)
Inventor
沙力
兰军强
朱磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI SUANXIN MICROELECTRONICS CO Ltd
Original Assignee
SHANGHAI SUANXIN MICROELECTRONICS CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI SUANXIN MICROELECTRONICS CO Ltd filed Critical SHANGHAI SUANXIN MICROELECTRONICS CO Ltd
Priority to CN 201220023847 priority Critical patent/CN202720631U/zh
Application granted granted Critical
Publication of CN202720631U publication Critical patent/CN202720631U/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

本实用新型涉及基于单/双发射指令集的微处理器指令处理系统,包括:寄存器,用于存储数据;指令读取装置,根据指令的地址读取一条指令,其中所述指令中包含指示所述指令为单发射指令或双发射指令的标识位;指令译码装置,对所读取的指令进行译码,根据所述标识位,确定所述指令为单发射指令或双发射指令;指令流水线装置,包括第一流水线装置和第二流水线装置,其中如果确定该指令为单发射指令,则在该第一流水线装置中完成该单发射指令的操作,如果确定该指令为双发射指令,则在第一流水线中完成该双发射指令中的第一操作,在第二流水线中完成该双发射指令的第二操作;写回装置,运算结果写回到寄存器。

Description

基于单/双发射指令集的微处理器指令处理系统
技术领域
本实用新型涉及微处理器的指令处理系统,特别涉及基于混合单发射/双发射指令集的微处理器指令处理系统。
背景技术
在微处理器的基本架构中,在一个指令周期内执行的指令处理过程主要包括指令寻址、指令读取、指令译码、读操作数、运算、结果写回等步骤。传统的基于单发射指令的微处理器在处理一条指令的过程中仅执行一次运算。虽然实际上很多运算可以并行处理,但是由于运算单元ALU在一个周期内仅执行一次运算的限制而无法实现,因此ALU成为了传统微处理器效率的瓶颈,使得这种传统的基于单发射指令的微处理器的工作效率较低。
为了提高微处理器的工作效率,目前已经提出了双发射指令技术。双发射的概念是,每一条指令能够读取四个操作数,进行两个不同(也可能是相同)的运算,目前的高端处理器一般都支持双发射指令,甚至多发射指,使得微处理器工作效率大大提高。
现有的基于双发射指令的微处理器的指令处理方式主要有以下几种:
第一种方式是每条指令仍只包含一个运算,在指令处理的过程中,指令处理系统同时读取两条指令,通过硬件根据两条指令之间的依赖关系临时计算这两条指令是否可以同时进行,如果计算的结果为可以同时进行,则将两条指令分别写入两条流水线。由于两条指令在两个流水线中分别执行的过程中可能出现先后次序颠倒,因此在两条流水线分别完成运算之后,要对两个运算结果进行重新排序,再进行结果的写回。这种处理方式的问题在于实现起来比较复杂,在指令依赖关系的计算以及结果重新排序等环节,都会引入相当庞大的逻辑复杂度和硬件开销。
第二种方式是在一条指令中实现单发射或双发射,也就是说,在指令集中包含单发射指令和双发射指令两种指令,通过额外的状态变量来区分这两种指令,也就是说,在微处理器的应用中通过程序来修改这个状态变量来指示微处理器当前的指令是单发射指令还是双发射指令。在现有技术中,ARM系列微处理器是基于这种方式工作的典型微处理器,其双发射指令也支持微处理器的全部功能,目的是为了节省指令空间。这种方式使得微处理器的硬件结构相对简单,但软件编程十分复杂。由于单发射/双发射指令之间并非动态切换,而是需要通过修改微处理器的状态从而用两套不同的逻辑来处理单发射和双发射指令,因此需要显式的告诉微处理器下一条指令是单发射指令还是双发射指令,这使得微处理器的编程复杂度大大增加。而且因为单发射指令和双发射指令都是全集,即分别实现微处理器的全部功能,导致两条流水线都要实现全部指令,也就是说所有的操作都要重复两遍。并且,由于指令数量巨大,导致指令编码(操作码)字段很长,压缩了地址字段、立即数字段等其他字段的空间,这就限制了微处理器在其他方面的性能。例如典型的ARM微处理器由于指令字段占用较大空间,导致寄存器字段减小,使得寄存器深度只能支持16位。
由此可见,在性能和成本/功耗之间难以兼得,是传统微处理器的关键局限性。尤其是在图形处理或多媒体处理等特定应用场合,需要一种高性能、低成本、低功耗、低应用复杂度的新型的微处理器的指令处理系统和方法。
实用新型内容
本实用新型提出了一种基于混合单发射/双发射指令集的微处理器指令处理系统,解决了现有技术中存在的问题,通过非对称式单发射/双发射指令集设置减小了指令字段空间,通过静态切换简化了单发射/双发射指令切换机制,大大降低了硬件成本以及编程复杂度。
利用本实用新型的微处理器指令处理方法和装置设计的微处理器,具有低成本,低功耗,高处理效率的优点,在40nm工艺下,以小于0.03mm2的芯片面积,可实现超过1Ghz的工作频率以及约1.5Mips/Mhz的指令执行速度。
根据本实用新型的一方面,提出了一种基于单/双发指令集的微处理器指令处理系统,包括:
寄存器,存储包括指令,操作数,运算结果的数据;
指令读取装置,根据指令的地址,从存储器中读取一条指令,其中所述指令中包含指示所述指令为单发射指令或双发射指令的标识位;
指令译码装置,对所读取的指令进行译码,获得包括所述标识位、操作码、操作数的译码结果,根据所述标识位,确定所述指令为单发射指令或双发射指令;
指令流水线装置,包括第一流水线装置和第二流水线装置,其中如果确定该指令为单发射指令,则在该第一流水线装置中完成该单发射指令的操作,如果确定该指令为双发射指令,则在第一流水线中完成该双发射指令中的第一操作,在第二流水线中完成该双发射指令的第二操作,第一流水线装置和第二流水线装置以完全相同的方式并行运行;
写回装置,将所述第一流水线的运算结果和所述第二流水线的运算结果写回到寄存器。
优选地,所述指令读取装置由程序计数器、地址寄存器和指令寄存器来实现。
优选地,所述第一流水线装置包括由第一暂存器构成的第一级,由第二暂存器构成的第二级和由第一运算器构成的第三级;所述第二流水线包括由第三暂存器构成的第一级,由第四暂存器构成的第二级和由第二运算器构成的第三级。
优选地,如果确定所述指令为单发射指令,则在所述第一暂存器中读取指令的第一操作数,在所述第二暂存器中读取指令的第二操作数,在所述第一运算器中对第一操作数和第二操作数进行运算;如果确定所述指令为双发射指令,则在所述第一暂存器中读取指令的第一操作的第一操作数,在所述第二暂存器中读取指令的第一操作的第二操作数,在第一运算器中对第一操作的第一操作数和第一操作的第二操作数进行运算;在所述第三暂存器中读取指令的第二操作的第一操作数,在所述第四暂存器中读取指令的第二操作的第二操作数,在第二运算器中对第二操作的第一操作数和第二操作的第二操作数进行运算。
优选地,所述写回装置包括连接于第一运算器的第一结果暂存器和连接于第二运算器的第二结果暂存器,分别存储两个运算器的运算结果,并通过总线写回到寄存器中的相应地址。
附图说明
图1是本实用新型的微处理器指令处理方法的流程图;
图2a和图2b是根据本实用新型的一个实施例的一条单发射指令和一条双发射指令的指令码结构示例;
图3是本实用新型的一种微处理器指令处理系统的结构图;
图4是本实用新型的指令处理系统的一个优选实施例的结构图;
图5是根据本实用新型的一个优选实施例的流水线装置的结构图。
具体实施方式
本实用新型提出了一种基于混合单发射/双发射指令集的新的微处理器指令处理方法和系统。
图1是本实用新型的微处理器指令处理方法的流程图,主要包括:
指令读取步骤,根据指令的地址,从存储器中读取一条指令,其中所述指令中包含指示所述指令为单发射指令或双发射指令的标识位;
指令译码步骤,对所读取的指令进行译码,获得包括所述标识位、操作码、操作数的译码结果,根据所述标识位,确定所述指令为单发射指令或双发射指令;
运算步骤:如果确定该指令为单发射指令,则在第一流水线中完成该单发射指令的操作,如果确定该指令为双发射指令,则在第一流水线中完成该双发射指令中的第一操作,在第二流水线中完成该双发射指令的第二操作,第一流水线和第二流水线以完全相同的方式并行运行;
写回步骤:将所述第一流水线的运算结果和所述第二流水线的运算结果写回到寄存器。
不同于传统的混合单发射/双发射指令集方式,本实用新型的指令处理方法中所涉及的单发射指令集和双发射指令集采取了非对称的设计,也就是说,单发射指令集和双发射指令集并非分别完成微处理器的所有功能,而是分别实现微处理器的部分功能,由单发射指令集和双发射指令集的功能总和来完成微处理器的所有功能。在本实用新型的一个优选实施例中,可将微处理器的指令按照这样的原则进行划分:
-频繁使用的常规指令,例如常用算数运算指令、逻辑运算指令、读写内存指令、位操作指令等,既由单发射指令集支持,又由双发射指令集支持;
-使用频率低但必要的非常规指令,例如跳转指令等,仅在单发射指令集中支持,或仅在双发射指令集中支持。
这样的分配原则,使得双发射指令的数量相对较少,因此在支持双发射的前提下,减小了操作码字段的长度,使得根据本实用新型的指令处理系统在提高了处理效率的同时,仍能支持很大的寄存器阵列,提高了综合性能。
在本实用新型中,并非如现有技术那样通过计算来组合相邻的单发射指令来形成双发射指令,也不是在编程过程中通过额外的状态变量来区分这两种指令,相反地,在本实用新型的指令处理方法中,使得每条指令都是独立事件,在每条指令中设置一个标识位(例如次高位),根据每条指令的独立译码结果识别该标识位,从而决定其为单发射指令还是双发射指令。
图2a和图2b是根据本实用新型的一个实施例的一条单发射指令和一条双发射指令的指令码结构示例,在图2a中,给出了单发射指令的指令码结构,其从左至右由标识位、操作码、操作数1、操作数2、其他可选字段等部分构成,其中标识位为“0”指示该指令为单发射指令,图2b中,给出了双发射指令的指令码结构,其从左至右标识位、第一操作码、操作数1、操作数2、第二操作码、操作数3,操作数4,其他可选字段等部分构成,其中标识位为“1”指示该指令为双发射指令。该双发射指令可同时完成所包含的第一操作和第二操作。
从硬件的角度来讲,由于本实用新型没有引入动态分配到两个或多个流水线中的机制,而是根据译码结果静态地分配单发射指令和双发射指令,这种方法避免了额外的硬件负担,使得硬件成本大大下降,从上层应用的角度来讲,本实用新型的方法使得程序空间完全一致,上层编程中不需特别定义何时为单发射指令或双发射指令,单发射指令和双发射指令之间的切换对于上层软件来说是完全透明的,这就大大降低了应用中的编程复杂度。
下面以跳转指令为例,说明本实用新型的非对称机制在降低硬件成本方面的贡献。在执行跳转程序时,需要根据标志FLAG来决定是否跳转,例如实现“当a>b时则跳转”的程序时,按照传统处理方式,在两条对称的流水线中都引入FLAG,为了区分两条流水线上同时产生的FLAG,就必须记录历史条件来决定后续的状态转移,逻辑十分复杂,这种情况在微处理器的运行过程中十分罕见,但为了解决这一罕见的问题,必须引入很大的硬件开销。相比之下,本实用新型仅在其中一条流水线中对FLAG进行更新,不再需要进行两条流水线上的FLAG的区分,这使得流水线设计独立简单,降低了硬件成本。
如果经过指令译码之后,得到的标识位指示该指令为单发射指令,则在第一流水线中完成该单发射指令的操作,例如在典型的微处理器体系结构中,第一流水线可包括第一级:读取第一操作数;第二级:读取第二操作数;和第三级:运算,得到运算结果。
如果经过指令译码之后,得到的标识位指示该指令为双发射指令,则在第一流水线中完成该双发射指令中的第一操作,在第二流水线中完成该双发射指令的第二操作,第一流水线和第二流水线以完全相同的方式并行运行。
在微处理器工作的绝大多数情况中,两条流水线中的两个运算器ALU产生的结果的写回地址是不同的,因此可以简单地将两个运算结果同时写回各自的寄存器地址中。在本实用新型的一个优选实施例中,考虑到在极特殊情况下,两个运算结果的地址如果发生冲突,则把两个结果进行“或”OR运算,通过这种简单的逻辑处理,使得两条流水线中的操作都部分生效。
图3是本实用新型的一种微处理器指令处理系统的结构图,主要包括:
寄存器301,存储包括指令,操作数,运算结果的数据;
指令读取装置302,根据指令的地址,从存储器中读取一条指令,其中所述指令中包含指示所述指令为单发射指令或双发射指令的标识位;
指令译码装置303,对所读取的指令进行译码,获得包括所述标识位、操作码、操作数的译码结果,根据所述标识位,确定所述指令为单发射指令或双发射指令;
指令流水线装置304,包括第一流水线装置3041和第二流水线装置3042,其中如果确定该指令为单发射指令,则在该第一流水线装置中完成该单发射指令的操作,如果确定该指令为双发射指令,则在第一流水线中完成该双发射指令中的第一操作,在第二流水线中完成该双发射指令的第二操作,第一流水线装置和第二流水线装置以完全相同的方式并行运行;
写回装置305:将所述第一流水线的运算结果和所述第二流水线的运算结果写回到寄存器。
图4是本实用新型的指令处理系统的一个优选实施例的结构图,该优选实施例基于典型的微处理器架构,其中指令读取装置可由程序计数器PC、地址寄存器ITCM和指令寄存器INS来实现,程序计数器PC用于存放和指示要执行的指令的地址,地址寄存器用于保存PC中的地址,指令寄存器用于暂时存放根据地址取出的指令,等待译码。
指令译码装置可由指令译码器IND实现,其将指令码转变成执行此指令所需要的电信号,在本实用新型中,译码结果中包含指示该指令为单发射指令还是双发射指令的标识位。
图5是根据本实用新型的一个优选实施例的流水线装置的结构图,第一流水线装置V-PIPE和第二流水线装置U-PIPE可分别包括由暂存器VR1/UR1构成的第一级S1,用于读取第一操作数;由暂存器VR2/UR2构成的第二级S2,用于读取第二操作数,以及由运算器ALU1/AUL2构成的第三级S3,用于完成运算。可根据需要设计流水线的级数而不局限于本实施例给出的方式。在本实用新型中,如果确定该指令为单发射指令,则在该第一流水线装置中完成该单发射指令的操作,即读取指令的第一操作数至第一暂存器VR1,读取指令的第二操作数至第二暂存器VR2,并在第一运算器中对第一和第二操作数进行计算,得到运算结果。如果确定该指令为双发射指令,则在第一流水线中完成该双发射指令中的第一操作,即读取第一操作的第一操作数至暂存器VR1,读取第一操作的第二操作数至暂存器VR2,并在第一运算器ALU1中对这两个操作数进行运算;在第二流水线中完成该双发射指令的第二操作,即读取第二操作的第一操作数至暂存器UR1,读取第二操作的第二操作数至暂存器UR2,并在第二运算器ALU2中对这两个操作数进行运算;第一流水线装置和第二流水线装置以完全相同的方式并行运行。
写回装置可包括分别连接于第一运算器和第二运算器的两个暂存器,其分别存储两个运算器的结果,并通过总线写回到寄存器中的相应地址。
上述实施例是用于例示性说明本实用新型的原理及其功效,而非用于限制本实用新型。任何本领域技术人员均可在不违背本实用新型的精神及范畴下,对上述实施例进行修改。因此本实用新型的保护范围,应如本实用新型的权利要求书所列。

Claims (4)

1.一种基于单/双发射指令集的微处理器指令处理系统,其特征在于该系统包括:
寄存器,存储包括指令,操作数,运算结果的数据;
指令读取装置,根据指令的地址,从存储器中读取一条指令,其中所述指令中包含指示所述指令为单发射指令或双发射指令的标识位;
指令译码装置,对所读取的指令进行译码,获得包括所述标识位、操作码、操作数的译码结果,根据所述标识位,确定所述指令为单发射指令或双发射指令;
指令流水线装置,包括第一流水线装置和第二流水线装置,其中如果确定该指令为单发射指令,则在该第一流水线装置中完成该单发射指令的操作,如果确定该指令为双发射指令,则在第一流水线中完成该双发射指令中的第一操作,在第二流水线中完成该双发射指令的第二操作,第一流水线装置和第二流水线装置以完全相同的方式并行运行;
写回装置,将所述第一流水线的运算结果和所述第二流水线的运算结果写回到寄存器。
2.根据权利要求1所述的基于单/双发射指令集的微处理器指令处理系统,其特征在于所述指令读取装置由程序计数器、地址寄存器和指令寄存器来实现。
3.根据权利要求1所述的基于单/双发射指令集的微处理器指令处理系统,其特征在于所述第一流水线装置包括由第一暂存器构成的第一级,由第二暂存器构成的第二级和由第一运算器构成的第三级;所述第二流水线包括由第三暂存器构成的第一级,由第四暂存器构成的第二级和由第二运算器构成的第三级。
4.根据权利要求1所述的基于单/双发射指令集的微处理器指令 处理系统,其特征在于所述写回装置包括连接于第一运算器的第一结果暂存器和连接于第二运算器的第二结果暂存器,分别存储两个运算器的运算结果,并通过总线写回到寄存器中的相应地址。 
CN 201220023847 2012-01-18 2012-01-18 基于单/双发射指令集的微处理器指令处理系统 Expired - Lifetime CN202720631U (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201220023847 CN202720631U (zh) 2012-01-18 2012-01-18 基于单/双发射指令集的微处理器指令处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201220023847 CN202720631U (zh) 2012-01-18 2012-01-18 基于单/双发射指令集的微处理器指令处理系统

Publications (1)

Publication Number Publication Date
CN202720631U true CN202720631U (zh) 2013-02-06

Family

ID=47622446

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201220023847 Expired - Lifetime CN202720631U (zh) 2012-01-18 2012-01-18 基于单/双发射指令集的微处理器指令处理系统

Country Status (1)

Country Link
CN (1) CN202720631U (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218207A (zh) * 2012-01-18 2013-07-24 上海算芯微电子有限公司 基于单/双发射指令集的微处理器指令处理方法及系统
CN108182082A (zh) * 2017-12-06 2018-06-19 中国航空工业集团公司西安航空计算技术研究所 一种流水处理双发射处理器记分板电路

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218207A (zh) * 2012-01-18 2013-07-24 上海算芯微电子有限公司 基于单/双发射指令集的微处理器指令处理方法及系统
CN103218207B (zh) * 2012-01-18 2016-08-24 上海算芯微电子有限公司 基于单/双发射指令集的微处理器指令处理方法及系统
CN108182082A (zh) * 2017-12-06 2018-06-19 中国航空工业集团公司西安航空计算技术研究所 一种流水处理双发射处理器记分板电路

Similar Documents

Publication Publication Date Title
CN103098020B (zh) 由多个指令集使用的寄存器间映射
CN102004719B (zh) 支持同时多线程的超长指令字处理器结构
CN100480997C (zh) 选择可实质同时处理的多重线程的系统与方法
CN101178644B (zh) 一种基于复杂指令集计算机结构的微处理器架构
CN103150146B (zh) 基于可扩展处理器架构的专用指令集处理器及其实现方法
CN102750133B (zh) 支持simd的32位三发射的数字信号处理器
CN105103122B (zh) 异构处理器装置和方法
CN101957744B (zh) 一种用于微处理器的硬件多线程控制方法及其装置
CN102156637A (zh) 向量交叉多线程处理方法及向量交叉多线程微处理器
CN101930358B (zh) 一种单指令多数据流结构上的数据处理方法及处理器
KR20110038185A (ko) 텍스트 문자열을 처리하기 위한 명령 및 논리
CN105051678A (zh) 异构处理器装置和方法
CN103226463A (zh) 用于使用预解码数据调度指令的方法和装置
CN110321159A (zh) 用于实现链式区块操作的系统和方法
CN108351786A (zh) 在指令集架构中对数据进行排序并且合并经排序数据
KR20220151134A (ko) 이종 처리 자원들에 대한 작업을 적응적으로 스케줄링하기 위한 장치 및 방법
CN101739235A (zh) 将32位dsp与通用risc cpu无缝混链的处理器装置
CN107111489A (zh) 莫顿坐标调整处理器、方法、系统和指令
CN103984530A (zh) 一种提高store指令执行效率的流水线结构及方法
CN108292220A (zh) 用于加速图形分析的装置和方法
CN104049937A (zh) 裸露向量管线之间的链接
CN101211256A (zh) 一种专用双流水线risc指令系统及其操作方法
CN107357552A (zh) 基于bwdsp芯片实现浮点复数向量求和的优化方法
CN102682232B (zh) 一种高性能超标量椭圆曲线密码处理器芯片
CN104536914B (zh) 基于寄存器访问标记的相关处理装置和方法

Legal Events

Date Code Title Description
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Assignee: Galaxycore Microelectronics (Shanghai) Co., Ltd.

Assignor: Shanghai Suanxin Microelectronics Co., Ltd.

Contract record no.: 2015990000743

Denomination of utility model: Single/double transmission instruction set-based microprocessor instruction processing system

Granted publication date: 20130206

License type: Common License

Record date: 20150821

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20130206