CN111679856B - 高效能复杂指令译码的微处理器 - Google Patents

高效能复杂指令译码的微处理器 Download PDF

Info

Publication number
CN111679856B
CN111679856B CN202010541581.5A CN202010541581A CN111679856B CN 111679856 B CN111679856 B CN 111679856B CN 202010541581 A CN202010541581 A CN 202010541581A CN 111679856 B CN111679856 B CN 111679856B
Authority
CN
China
Prior art keywords
instruction
complex
microprocessor
multiplexer
microcode
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.)
Active
Application number
CN202010541581.5A
Other languages
English (en)
Other versions
CN111679856A (zh
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 Zhaoxin Semiconductor Co Ltd
Original Assignee
Shanghai Zhaoxin Semiconductor 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 Zhaoxin Semiconductor Co Ltd filed Critical Shanghai Zhaoxin Semiconductor Co Ltd
Priority to CN202010541581.5A priority Critical patent/CN111679856B/zh
Publication of CN111679856A publication Critical patent/CN111679856A/zh
Application granted granted Critical
Publication of CN111679856B publication Critical patent/CN111679856B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请提出一种高效能复杂指令译码的微处理器。一微处理器包括一指令队列、一指令译码器、一译码控制电路以及一扩位译码控制电路。该指令译码器耦接该指令队列,且包括一复杂指令译码器。该微处理器的流水线宽度为n,且该复杂指令译码器包括k个子译码器,k大于n。该译码控制电路在该指令队列的第一个存储格弹出一复杂指令时,判断该复杂指令的一微指令数量。该扩位译码控制电路在该微指令数量大于n、且不超过k时,输出一暂停信号至该指令队列,令该指令队列暂停弹出指令,直至该复杂指令译码器完成该复杂指令的译码。

Description

高效能复杂指令译码的微处理器
技术领域
本申请涉及微处理器架构,特别涉及复杂指令译码。
背景技术
微处理器通常以只读存储器(ROM)存储复杂指令的微码,期以节省译码器硬件成本。但只读存储器的存取仍有一定的时间成本:陷入(trap)微码读取需承担陷入延时。如何高效应付复杂指令陷入延时为本技术领域一项重要课题。
发明内容
本申请以复杂指令译码器的硬件扩位减少陷入微码读取的机会。
根据本申请一种实施方式实现的一微处理器包括一指令队列以及一指令译码器。该指令译码器耦接该指令队列,且包括一复杂指令译码器。该微处理器的流水线宽度为n,且该复杂指令译码器包括k个子译码器,k大于n。该微处理器还包括一译码控制电路以及一扩位译码控制电路。该译码控制电路在该指令队列的第一个存储格弹出一复杂指令时,判断该复杂指令的一微指令数量。该扩位译码控制电路在该微指令数量大于n、且不超过k时,输出一暂停信号至该指令队列,令该指令队列暂停弹出指令,直至该复杂指令译码器完成该复杂指令的译码。
上述k个子译码器中,每n个子译码器可为一组,不同组运作的周期不同。
一种实施方式中,该指令译码器还包括(n-1)个简单指令译码器。该指令队列的第一至第n个存储格弹出n条简单指令时,该复杂指令译码器的第一个子译码器、以及上述(n-1)个简单指令译码器在同一周期运作。
一种实施方式中,该微处理器还包括一第一多工器,具有第一至第n个输入端分别耦接该复杂指令译码器的第一至第n个子译码器,且具有第(n+1)至第(2n-1)个输入端耦接上述(n-1)个简单指令译码器。该第一多工器更具有第一至第n个输出端。
一种实施方式中,该指令队列的第一个存储格弹出一复杂指令时,该译码控制电路令该第一多工器选择该第一多工器的上述第一至第n个输入端所接收内容由该第一多工器的上述第一至第n个输出端输出。该指令队列的第一个存储格弹出一简单指令时,该译码控制电路令该第一多工器的第一个输入端所接收的内容由该第一多工器的第一个输出端输出,但不选择该第一多工器的第二至第n个输入端所接收的内容由该第一多工器的第二至第n个输出端输出。
一种实施方式中,该微处理器还包括一第二多工器,具有第一至第n个输入端分别耦接该第一多工器的上述第一至第n个输出端,且具有第(n+1)至第2n个输入端分别耦接该复杂指令译码器的第(n+1)至第2n个子译码器。该第二多工器更具有第一至第n个输出端。
一种实施方式中,该微处理器还包括一暂存器。该暂存器由该扩位译码控制电路填写。该暂存器初始为一第一值。根据存储该第一值的该暂存器,该第二多工器的上述第一至第n个输入端所接收的内容由该第二多工器的上述第一至第n个输出端输出。该第一个存储格弹出一复杂指令、且该复杂指令的一微指令数量大于n、且不超过k时,该扩位译码控制电路令该暂存器在接续一第一周期的一第二周期为一第二值。根据存储该第二值的该暂存器,该第二多工器上述第(n+1)至第2n个输入端所接收的内容由该第二多工器的上述第一至第n个输出端输出。
一种实施方式中,该微处理器还包括一微码控制器,具有一存储器。该存储器存储微指令数量超过k的复杂指令的微码。该指令译码器还包括一陷入决定电路。该第一个存储格弹出的一复杂指令的微指令数量不超过k时,该陷入决定电路略去操作该微码控制器进行陷入微码读取。
一种实施方式中,k为2n。
一种实施方式中,该微处理器硬件运算位宽为m,且指令队列所队列为位宽2m的复杂指令。
下文特举实施例,并配合所附图示,详细说明本发明内容。
附图说明
图1为根据本申请一种实施方式所实现的一微处理器100;
图2图解Syscall-Swapgs融合微码112、以及Swapgs-Sysret融合微码114的结构;
图3为时序图,图解传统技术与本申请差异;
图4根据本申请一种实施方式图解一微处理器400;
图5图解根据本申请一种实施方式实现的一微处理器500;以及
图6为时序图,图解传统技术与本申请差异。
【符号说明】
100、400、500~微处理器;
102、402、502~指令队列;
104、404、504~指令译码器;
106、406、506~微码控制器;
108、408~检测电路;
110、410、510~存储器;
112~Syscall-Swapgs融合微码;
114~Swapgs-Sysret融合微码;
116~Syscall个体微码;
118~Swapgs个体微码;
120~Sysret个体微码;
122、422、522~复杂指令译码器;
124、126、128、524、526、528~简单指令译码器;
130、132、134以及136~子译码器;
138、438、538~陷入决定电路;
140、440~指令略过信号;
142、442~型式信号;
202~Syscall个体微码;
204~Swapgs个体微码;
206~Swapgs个体微码;
208~Sysret个体微码;
302~传统技术的微码读取时序;
304、306~两次陷入微码读取;
308~本申请融合微码的微码读取时序;
412~融合微码;
416_1至416_M~第一至第M个体微码;
508~译码控制电路;
550~扩位译码控制电路;
552~暂存器;
554~(微指令数量)信号;
556~暂停信号;
558~(指令I1类型)信号;
602~传统技术的复杂指令译码时序;
604~本申请硬件扩位的复杂指令译码时序;
D1…Dn、D1-1…D1-8~微指令;
End_Lastclk~界线微指令;
Entry1、…EntryM、…Entryn~存储格;
I1、…IM、…In~存储格弹出的指令;
M1…Mn~微指令;
Mux1、Mux2~多工器;
U1…U4~微指令。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求界定。
以下列举多种微处理器架构,使得复杂指令的译码得以低成本且高效完成。
图1为根据本申请一种实施方式所实现的一微处理器100,其中包括一指令队列102、一指令译码器104、一微码控制器106以及一检测电路108。指令译码器104耦接该指令队列102。微码控制器106耦接该指令译码器104且具有一存储器110。该存储器110可为只读存储器(ROM),其中对应微处理器100的复杂指令集烧录有多段微码。
除了单条复杂指令有相应的个体微码,本申请更提出多条复杂指令的融合技术。本申请将多条复杂指令的微码融合,并将融合微码存储在微码控制器106的存储器110中,应付该等复杂指令的译码。传统技术因应多条复杂指令需多次陷入(trap)微码读取,陷入延时累积起来相当可观。本申请融合微码只要单一次陷入微码读取就可以获得。微处理器100效能大幅提升。
以下实施例特别讨论一系统调用程序(例如,用户栈呼叫系统栈)所涉及的三条复杂指令:系统呼叫指令Syscall;寄存器切换指令Swapgs;以及系统返还指令Sysret。寄存器切换指令Swapgs一般用于保护用户栈和系统栈的栈指针。连续使用系统呼叫指令Syscall以及寄存器切换指令Swapgs(”Syscall+Swapgs”指令序列)可进入该系统调用程序。连续使用寄存器切换指令Swapgs以及系统返还指令Sysret(“Swapgs+Sysret”指令序列)可离开该系统调用程序。在微处理器100运作上,“Syscall+Swapgs”以及“Swapgs+Sysret”指令序列相当常见,首选作融合微码。
本申请为“Syscall+Swapgs”指令序列在存储器110烧录一Syscall-Swapgs融合微码112,并为”Swapgs+Sysret”指令序列在该存储器110烧录一Swapgs-Sysret融合微码114。融合微码虽然相应多条复杂指令,却只单一次陷入微码读取,陷入延时有效降低。纵然存储器110依旧为系统呼叫指令Syscall烧录有Syscall个体微码116,为寄存器切换指令Swapgs烧录有Swapgs个体微码118,为系统返还指令Sysret烧录有Sysret个体微码120,但仅用来应付非以“Syscall+Swapgs”、“Swapgs+Sysret”指令序列出现的状况。
图2图解Syscall-Swapgs融合微码112、以及Swapgs-Sysret融合微码114的结构。Syscall-Swapgs融合微码112以界线微指令End_Lastclk区隔Syscall个体微码202以及Swapgs个体微码204。Swapgs-Sysret融合微码114以界线微指令End_Lastclk区隔Swapgs个体微码206以及Sysret个体微码208。界线微指令End_Lastclk更用于应付中断要求,响应其前方微指令执行时发生的中断要求。
回到图1,以下说明各硬件的运作。
微处理器100的流水线宽度为4。指令译码器104包括一复杂指令译码器122、以及三个简单指令译码器124、126以及128。复杂指令译码器122包括四个子译码器130、132、134以及136、以及一陷入决定电路138。复杂指令译码器122接收指令队列102第一个存储格Entry1弹出的指令I1。简单指令译码器124、126、128分别接收第二至第四个存储格Entry2至Entry4弹出的指令I2至I4。检测电路108检测指令I1以及I2,判断其是否为“Syscall+Swapgs”、或“Swapgs+Sysret”指令序列,以进行本申请为如此特定指令序列所提供的译码程序。
检测到指令I1以及I2为“Syscall+Swapgs”、或“Swapgs+Sysret”指令序列时,检测电路108提供一指令略过信号140给指令队列102,使弹出的指令I2(寄存器切换指令Swapgs或系统返还指令Sysret)不进入第一个存储格Entry1,而是自该指令队列102删除。如此一来,指令队列102的状况确实反映“Syscall+Swapgs”指令序列(或“Swapgs+Sysret”指令序列)是一起译码。指令I1是交由复杂指令译码器122的子译码器130、132、134以及136译出头四条微指令D1、D2、D3以及D4。指令I1以及I2的其余译码则是由融合微码提供。如图所示,检测电路108藉一型式信号142指示该陷入决定电路138操作该微码控制器106单一次陷入微码读取,自该存储器110读出该型式信号142相应的融合微码。
一种实施方式中,指令I1以及I2为“Syscall+Swapgs”指令序列时,复杂指令译码器122接收系统呼叫指令Syscall,其中子译码器130、132、134以及136译出系统呼叫指令Syscall头四条微指令D1~D4。检测电路108令该型式信号142为“01”,代表所检测到的“Syscall+Swapgs”指令序列。相应地,陷入决定电路138操作该微码控制器106,使该微控制器106单一次陷入微码读取,自该存储器110读取Syscall-Swapgs融合微码112。“Syscall+Swapgs”指令序列剩余的微指令就是由该Syscall-Swapgs融合微码112提供,在接续周期呈微指令码M1~M4输出。执行第一个周期输出的微指令D1~D4以及接续周期输出的多组M1~M4,用户栈进入该系统调用程序。
一种实施方式中,指令I1以及I2为“Swapgs+Sysret”指令序列时,复杂指令译码器122接收寄存器切换指令Swapgs,其中子译码器130、132、134以及136译出寄存器切换指令Swapgs头四条微指令D1~D4。检测电路108令该型式信号142为“11”,代表所检测到的“Swapgs+Sysret”指令序列。相应地,陷入决定电路138操作该微码控制器106,使该微控制器106单一次陷入微码读取,自该存储器110读取Swapgs-Sysret融合微码114。“Swapgs+Sysret”指令序列剩余的微指令就是由该Swapgs-Sysret融合微码114提供,在接续周期呈微指令码M1~M4输出。执行第一个周期输出的微指令D1~D4以及接续周期输出的多组M1~M4,用户栈离开该系统调用程序。
图3为时序图,图解传统技术与本申请差异。传统技术的微码读取时序302两次陷入微码读取(标号304与306),须面对两段陷入延时。本申请融合微码(如,Syscall-Swapgs融合微码112、Swapgs-Sysret融合微码114)的微码读取时序308则只单一次陷入微码读取,只有单段陷入延时,显著改善微处理器100效能。
本申请不限定融合的复杂指令数量。一融合微码可以对应以一特定顺序排列的M条复杂指令。M为大于1的整数。不论是由多少条复杂指令融合,一融合微码只单一次陷入微码读取就可以获得。本申请微处理器流水线宽度也不限定,为整数n。
图4根据本申请一种实施方式图解一微处理器400,包括一指令队列402、一指令译码器404、以及一微码控制器406。指令译码器404耦接该指令队列402。微码控制器406耦接该指令译码器404且具有一存储器410。该存储器410存储以一特定顺序排列的M条复杂指令的一融合微码412,M为大于1的整数。该指令队列402的第一至第M个存储格Entry1至EntryM遵循该特定顺序队列上述M条复杂指令并将之弹出(为I1至IM)时,该指令译码器404令该微码控制器406单一次陷入微码读取,读取该存储器410存储的该融合微码412。该存储器410更分开存储上述M条复杂指令的个体微码,分别为第一至第M个体微码416_1至416_M,各自对应一次陷入微码读取。该特定顺序的队列不成立时,该微码控制器406是以分开存储的第一至第M个体微码416_1至416_M响应上述M条复杂指令。
检测电路408检测上述第一至第M个存储格Entry1至EntryM弹出的指令I1至IM是否为该特定顺序队列的上述M条复杂指令。若是,该检测电路408提供一指令略过信号440给该指令队列402,使上述M条复杂指令中,除已交给译码的第一条复杂指令外的第二至第M条复杂指令自该指令队列402删除。
该指令译码器404包括一复杂指令译码器422,耦接该指令队列402的第一个存储格Entry1。上述第一至第M个存储格Entry1至EntryM弹出的指令I1至IM为该特定顺序队列的上述M条复杂指令时,该复杂指令译码器422译出头n条微指令(D1至Dn),且上述M条复杂指令的剩余微指令由该微码控制器406单一次陷入微码读取,自该融合微码412获得。在接续周期中以微指令M1至Mn输出。
该指令译码器422还包括一陷入决定电路438。上述第一至第M个存储格Entry1至EntryM弹出的指令I1至IM为该特定顺序队列的上述M条复杂指令时,该检测电路408藉一型式信号442指示该陷入决定电路438操作该微码控制器406,使该微控制器406单一次陷入微码读取,自该存储器读410取该融合微码412。
凡多条复杂指令融合的融合微码,将多次陷入微码读取,调整成单一次陷入微码读取,都属于本申请技术范围。
更有其他实施方式并不限定只使用单一个复杂指令译码器。指令译码器可有多个复杂指令译码器。
以下更介绍另一种微处理器架构,其中以复杂指令译码器的硬件扩位,使得复杂指令的译码得以高效完成。
图5图解根据本申请一种实施方式实现的一微处理器500,包括一指令队列502、以及一指令译码器504。该指令译码器504耦接该指令队列502、且包括一复杂指令译码器522。该微处理器500的流水线宽度为4。该复杂指令译码器522包括8个子译码器,子译码器数量(8)两倍于该微处理器500的流水线宽度(4)。如此架构下,微指令数量8条以内的短复杂指令可以由复杂指令译码器522以硬件快速应付。微处理器500也包括一微码控制器506,其中一存储器510存储微指令数量超过8条的长复杂指令的微码。本实施例令超过8条微指令的长复杂指令才陷入存储器510微码读取。
如图所示,该指令译码器504还包括一陷入决定电路538,根据指令I1类型决定是否陷入存储器510的微码读取。指令I1为微指令数量超过8的长指令时,陷入决定电路538方操作该微码控制器506陷入微码读取。指令I1为微指令数量不超过8的短指令时,陷入决定电路538略去操作该微码控制器506进行陷入微码读取。
所示8个子译码器中,每4个子译码器为一组,不同组运作的周期不同。例如,前四个子译码器是在第一周期译出四条微指令D1-1…D1-4,后四个子译码器是在第二周期译出四条微指令D1-5…D1-8。相应如此扩位的复杂指令译码器522,微处理器500还包括硬件设计:一译码控制电路508(或称pair电路、或称检测电路);一扩位译码控制电路550;一暂存器552;以及两个多工器Mux1以及Mux2。
译码控制电路508在该指令队列502的第一个存储格Entry1弹出的指令I1为复杂指令时,判断该复杂指令(I1)的一微指令数量,并以信号554将该微指令数量传递给该扩位译码控制电路550。该扩位译码控制电路550在该微指令数量(554)大于4、且不超过8时,输出一暂停信号556至该指令队列502,令该指令队列502暂停弹出指令,直至该复杂指令译码器522完成该复杂指令(I1)的译码。
举例说明,指令I1为涉及八条微指令的复杂指令时,复杂指令译码器522在第一周期操作头四个子译码器译出四条微指令D1-1…D1-4,并在第二周期译出操作另外四个子译码器译出四条微指令D1-5…D1-8。指令I1的硬件译码需要两个周期。相应地,该扩位译码控制电路550即以暂停信号556使指令队列502暂停第二周期的指令弹出,使复杂指令译码器522第一周期以及第二周期是对同一条复杂指令译码两段微指令(第一周期的微指令D1-1…D1-4、以及第二周期的微指令D1-5…D1-8),在第三周期才进入下一条指令的译码。
指令译码器504以硬件译出的微指令则是以多工器Mux1、Mux2适时输出为微指令U1至U4。
首先讨论第一存储格Entry1弹出指令I1为微指令数量8的复杂指令的状况。第一周期,该复杂指令译码器522的第一至第四个子译码器译出的微指令D1-1至D1-4由多工器Mux1作为微处理器M1至M4输入多工器Mux2,再由多工器Mux2输出为微指令U1至U4。第二周期,该复杂指令译码器522的第五至第八个子译码器译出的微指令D1-5至D1-8由多工器Mux2输出为微指令U1至U4。复杂指令译码器522的硬件扩位成功运作。
图示指令译码器504还包括三个简单指令译码器524、526以及528。该指令队列502的第一至第四个存储格Entry1至Entry4弹出的四条指令I1至I4为简单指令时,该复杂指令译码器522的第一个子译码器、以及上述三个简单指令译码器524、526以及528在同一周期运作,译出四条微指令D1-1、D2、D3以及D4。由多工器Mux1作为微处理器M1至M4输入多工器Mux2,再由多工器Mux2输出为微指令U1至U4。微处理器500也完全可以应付简单指令的译码。至于非连续四个为简单指令的例子,也完全可由微处理器500架构应付。例如,若只有指令I1以及I2为简单指令,该复杂指令译码器522的第一个子译码器、以及第一个简单指令译码器524在同一周期运作,译出两条微指令D1-1以及D2,由多工器Mux1作为微处理器M1以及M2输入多工器Mux2,再由多工器Mux2输出为微指令U1以及U2。
如图所示,多工器Mux1可由译码控制电路508以信号558设定。译码控制电路508将辨识出指令I1至I4类型(复杂指令或简单指令),以信号558控制多工器Mux1运作。
多工器Mux2则是由暂存器552操作。暂存器552由该扩位译码控制电路550填写。该暂存器552初始为一第一值。根据存储该第一值的该暂存器552,该多工器Mux2选择微指令M1至M4为微指令U1至U4输出。该第一个存储格Entry1弹出的指令I1为一复杂指令、且该复杂指令的一微指令数量大于4、且不超过8时,该扩位译码控制电路550令该暂存器552在接续一第一周期的一第二周期为一第二值。根据存储该第二值的该暂存器552,该多工器Mux2选择微指令D1-5…D1-8为微指令U1至U4输出。
藉由复杂指令译码器522的硬件扩位,纵使微处理器500的运算位宽有限(例如,为128位)、而指令队列502所队列为位宽256位的复杂指令,微处理器500也能高效完成指令译码。即使运算拆位(以两个128位运算完成256位宽运算)使得一复杂指令的微指令数量加倍,复杂指令译码器522扩位的硬件就能完成译码,无须陷入存储器510微码读取。
一种实施方式中,硬件运算位宽有限只有128位。256位的运算涉及两条128位存储器读取微指令、两条128位运算微指令,以及两条128位回存微指令,微指令数量加倍,由三条因应拆位变成六条。然而,本申请硬件扩位的复杂指令译码器522有能力译出八条微指令。因此,流程完全不陷入存储器510微码读取。
在其他实施方式中,流水线宽度不限定为4,可为整数n。甚至,复杂指令译码器的扩位不限定为两倍于流水线宽度。复杂指令译码器可具有k个子译码器,k大于n,且为n的整数倍。迭加多工器即可应付更大量扩位的例子。
图6为时序图,图解传统技术与本申请差异。所处理的复杂指令的微指令数量为2n,两倍于流水线宽度n。
时序602对应传统未硬件扩位的复杂指令译码器,必然陷入微码读取。微指令1至微指令n在一周期硬件译码出后,剩余n条微指令(微指令n+1至微指令2n)需陷入微码读取,经陷入延时后方从微码控制器的存储器取出。
时序604对应本申请硬件扩位的复杂指令译码器,完全不陷入微码读取。微指令1至微指令n在一周期硬件译码出后,剩余n条微指令(微指令n+1至微指令2n)在接续周期同样以硬件译码获得。陷入延时完美消除。
虽然本发明已以优选实施例公开如上,然其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视所附权利要求书界定范围为准。

Claims (10)

1.一种微处理器,包括:
指令队列;以及
指令译码器,耦接该指令队列,其中,该指令译码器包括复杂指令译码器,且该复杂指令译码器包括k个子译码器,k大于n,该微处理器的流水线宽度为n;
译码控制电路,在该指令队列的第一个存储格弹出复杂指令时,判断该复杂指令的微指令数量;以及
扩位译码控制电路,在该微指令数量大于n、且不超过k时,输出暂停信号至该指令队列,令该指令队列暂停弹出指令,直至该复杂指令译码器完成该复杂指令的译码。
2.如权利要求1所述的微处理器,其中:
上述k个子译码器中,每n个子译码器为一组,不同组运作的周期不同。
3.如权利要求1所述的微处理器,其中:
该指令译码器还包括(n-1)个简单指令译码器;且
该指令队列的第一至第n个存储格弹出n条简单指令时,该复杂指令译码器的第一个子译码器、以及上述(n-1)个简单指令译码器在同一周期运作。
4.如权利要求3所述的微处理器,还包括:
第一多工器,具有第一至第n个输入端分别耦接该复杂指令译码器的第一至第n个子译码器,且具有第(n+1)至第(2n-1)个输入端耦接上述(n-1)个简单指令译码器,
其中,该第一多工器还具有第一至第n个输出端。
5.如权利要求4所述的微处理器,其中:
该指令队列的第一个存储格弹出复杂指令时,该译码控制电路令该第一多工器的上述第一至第n个输入端所接收的内容由该第一多工器的上述第一至第n个输出端输出;且
该指令队列的第一个存储格弹出简单指令时,该译码控制电路令该第一多工器的第一个输入端耦接该第一多工器的第一个输出端,但不选择该第一多工器的第二至第n个输入端所接收的内容由该第一多工器的第二至第n个输出端输出。
6.如权利要求4所述的微处理器,还包括:
第二多工器,具有第一至第n个输入端分别耦接该第一多工器的上述第一至第n个输出端,且具有第(n+1)至第2n个输入端分别耦接该复杂指令译码器的第(n+1)至第2n个子译码器,
其中,该第二多工器还具有第一至第n个输出端。
7.如权利要求6所述的微处理器,还包括:
暂存器,由该扩位译码控制电路填写,
其中:
该暂存器初始为第一值;
根据存储该第一值的该暂存器,该第二多工器的上述第一至第n个输入端所接收的内容由该第二多工器的上述第一至第n个输出端输出;
该第一个存储格弹出复杂指令、且该复杂指令的微指令数量大于n、且不超过k时,该扩位译码控制电路令该暂存器在接续第一周期的第二周期为第二值;且
根据存储该第二值的该暂存器,该第二多工器上述第(n+1)至第2n个输入端所接收的内容由该第二多工器的上述第一至第n个输出端输出。
8.如权利要求1所述的微处理器,还包括:
微码控制器,具有存储器,该存储器存储微指令数量超过k的复杂指令的微码,
其中:
该指令译码器还包括陷入决定电路;且
该第一个存储格弹出的复杂指令的微指令数量不超过k时,该陷入决定电路略去操作该微码控制器进行陷入微码读取。
9.如权利要求1所述的微处理器,其中:
k为2n。
10.如权利要求1所述的微处理器,其中:
该微处理器硬件运算位宽为m;且
该指令队列所队列为位宽2m的复杂指令。
CN202010541581.5A 2020-06-15 2020-06-15 高效能复杂指令译码的微处理器 Active CN111679856B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010541581.5A CN111679856B (zh) 2020-06-15 2020-06-15 高效能复杂指令译码的微处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010541581.5A CN111679856B (zh) 2020-06-15 2020-06-15 高效能复杂指令译码的微处理器

Publications (2)

Publication Number Publication Date
CN111679856A CN111679856A (zh) 2020-09-18
CN111679856B true CN111679856B (zh) 2023-09-08

Family

ID=72455074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010541581.5A Active CN111679856B (zh) 2020-06-15 2020-06-15 高效能复杂指令译码的微处理器

Country Status (1)

Country Link
CN (1) CN111679856B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658561B1 (en) * 1999-05-31 2003-12-02 International Business Machines Corporation Hardware device for executing programmable instructions based upon micro-instructions
CN101114217A (zh) * 2006-07-27 2008-01-30 中国科学院计算技术研究所 对复杂指令译码生成微码的译码装置和方法
CN101114216A (zh) * 2006-07-27 2008-01-30 中国科学院计算技术研究所 复杂指令系统中tlbr内部例外的处理方法和处理器
CN102707927A (zh) * 2011-04-07 2012-10-03 威盛电子股份有限公司 具有条件指令的微处理器及其处理方法
CN104572016A (zh) * 2013-10-09 2015-04-29 Arm有限公司 对应于多个微操作的复杂程序指令的译码
CN106066786A (zh) * 2016-05-26 2016-11-02 上海兆芯集成电路有限公司 处理器以及处理器操作方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658561B1 (en) * 1999-05-31 2003-12-02 International Business Machines Corporation Hardware device for executing programmable instructions based upon micro-instructions
CN101114217A (zh) * 2006-07-27 2008-01-30 中国科学院计算技术研究所 对复杂指令译码生成微码的译码装置和方法
CN101114216A (zh) * 2006-07-27 2008-01-30 中国科学院计算技术研究所 复杂指令系统中tlbr内部例外的处理方法和处理器
CN102707927A (zh) * 2011-04-07 2012-10-03 威盛电子股份有限公司 具有条件指令的微处理器及其处理方法
CN104572016A (zh) * 2013-10-09 2015-04-29 Arm有限公司 对应于多个微操作的复杂程序指令的译码
CN106066786A (zh) * 2016-05-26 2016-11-02 上海兆芯集成电路有限公司 处理器以及处理器操作方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Mark Smotherman,et al.Improving CISC Instruction Decoding Performance Using a Fill Unit.《IEEE》.2002,正文第1-11页. *

Also Published As

Publication number Publication date
CN111679856A (zh) 2020-09-18

Similar Documents

Publication Publication Date Title
US7366874B2 (en) Apparatus and method for dispatching very long instruction word having variable length
CN111679857B (zh) 高效能复杂指令译码的微处理器
US7958339B2 (en) Instruction execution control device and instruction execution control method
KR100462261B1 (ko) 멀티-코드-북가변길이디코더
JPH06110683A (ja) マイクロプロセッサの拡張ブランチターゲット方法及びその装置
US4287561A (en) Address formulation interlock mechanism
CN111679856B (zh) 高效能复杂指令译码的微处理器
EP0810518B1 (en) Method and circuit for delayed branch control
JPH07507888A (ja) 命令高速解読パイプラインプロセッサ
US6230258B1 (en) Processor using less hardware and instruction conversion apparatus reducing the number of types of instructions
WO2002088941A1 (en) System and method including distributed instruction buffers holding a second instruction form
JPS62117039A (ja) コントロ−ラ
KR900010552A (ko) 명령을 페치(fetch)하기 위한 제어 시스템
US20050160254A1 (en) Multithread processor architecture for triggered thread switching without any clock cycle loss, without any switching program instruction, and without extending the program instruction format
GB2400694A (en) Executing conditional instructions by setting a flag
JPH0342723A (ja) データ処理装置
JPH0561901A (ja) プログラム制御型プロセツサ
JP3074790B2 (ja) マイクロプロセッサ
JPWO2020014424A5 (zh)
US20060294345A1 (en) Methods and apparatus for implementing branching instructions within a processor
SU1109751A1 (ru) Микропрограммное устройство управлени
SU1043651A1 (ru) Мультимикропрограммное устройство управлени
SU1042017A1 (ru) Мультимикропрограммное устройство управлени
TWI325562B (en) High efficient pipelined decompression method with back-up for flushing unit
JPH01173132A (ja) マイクロプログラム制御装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203

Applicant after: Shanghai Zhaoxin Semiconductor Co.,Ltd.

Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203

Applicant before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd.

GR01 Patent grant
GR01 Patent grant