pg电子模拟器股份有限公司-pg电子官方网站-底层指令集与微处理器重构

您现在所在位置: 主页 > 前沿洞察 > 技术白皮书

技术白皮书

Company information

行业动态

Industry dynamics

开发者FAQ

Common Problem

高效能复杂指令译码的微处理器的制作方法

发布日期:2026-09-07 10:29 浏览次数:

  

高效能复杂指令译码的微处理器的制作方法(图1)

  微处理器通常以只读存储器(rom)存储复杂指令的微码,期以节省译码器硬件成本。但只读存储器的存取仍有一定的时间成本:陷入(trap)微码读取需承担陷入延时。如何高效应付复杂指令陷入延时为本技术领域一项重要课题。

  本申请提出多条复杂指令的融合技术,将多条复杂指令的微码融合存储在微码控制器的存储器中,使原本多次陷入(trap)微码读取的状况,精简为仅单一次陷入微码读取。微处理器效能大幅提升。

  根据本申请一种实施方式实现的一微处理器包括一指令队列、一指令译码器、以及一微码控制器。该指令译码器耦接该指令队列。该微码控制器耦接该指令译码器且具有一存储器。该存储器存储以一特定顺序排列的m条复杂指令的一融合微码,m为大于1的整数。指令队列的第一至第m个存储格遵循该特定顺序队列上述m条复杂指令并将之弹出时,该指令译码器令该微码控制器单一次陷入微码读取,读取该存储器存储的该融合微码。

  一种实施方式中,还包括界线微指令用于在该融合微码中区隔上述m条复杂指令的个体微码,并应付中断要求。

  一种实施方式中,微处理器还包括一检测电路。检测到上述第一至第m个存储格弹出以该特定顺序队列的上述m条复杂指令时,该检测电路提供一指令略过信号给该指令队列,使上述m条复杂指令中,除已交给译码的第一条复杂指令外的第二至第m条复杂指令自该指令队列删除。

  一种实施方式中,微处理器还包括一陷入决定电路。检测到上述第一至第m个存储格弹出以该特定顺序队列的上述m条复杂指令时,该检测电路藉一型式信号指示该陷入决定电路操作该微码控制器,使该微码控制器单一次陷入微码读取,自该存储器读取该融合微码。

  一种实施方式中,该存储器存储一第一融合微码以及一第二融合微码。该第一融合微码对应一第一复杂指令以及紧接该第一复杂指令的一第二复杂指令。该第二融合微码对应该第二复杂指令以及紧接该第二复杂指令的一第三复杂指令。当该指令队列的存储格遵循顺序分别队列该第一以及第二复杂指令、且将之弹出时,该指令译码器令该微码控制器单一次陷入微码读取,读取该存储器存储的该第一融合微码。当该指令队列的存储格遵循顺序分别队列该第二以及第三复杂指令、且将之弹出时,该指令译码器令该微码控制器单一次陷入微码读取,读取该存储器存储的该第二融合微码。

  一种实施方式中,该第一复杂指令为一系统调用程序的一系统呼叫指令,该第二复杂指令为该系统调用程序的一寄存器切换指令,且该第三复杂指令为该系统调用程序的一系统返还指令。连续使用该第一复杂指令以及该第二复杂指令用于进入该系统调用程序。连续使用该第二复杂指令以及该第三复杂指令用于离开该系统调用程序。

  以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书界定。

  图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”指令序列出现的状况。

  微处理器100的流水线、以及三个简单指令译码器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操作该微码控制pg电子官方网站器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的流水线个子译码器,子译码器数量(8)两倍于该微处理器500的流水线)。如此架构下,微指令数量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微码读取。

  在其他实施方式中,流水线,可为整数n。甚至,复杂指令译码器的扩位不限定为两倍于流水线宽度。复杂指令译码器可具有k个子译码器,k大于n,且为n的整数倍。迭加多工器即可应付更大量扩位的例子。

  图6为时序图,图解传统技术与本申请差异。所处理的复杂指令的微指令数量为2n,两倍于流水线对应传统未硬件扩位的复杂指令译码器,必然陷入微码读取。微指令1至微指令n在一周期硬件译码出后,剩余n条微指令(微指令n+1至微指令2n)需陷入微码读取,经陷入延时后方从微码控制器的存储器取出。

  时序604对应本申请硬件扩位的复杂指令译码器,完全不陷入微码读取。微指令1至微指令n在一周期硬件译码出后,剩余n条微指令(微指令n+1至微指令2n)在接续周期同样以硬件译码获得。陷入延时完美消除。

  虽然本发明已以优选实施例公开如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视所附权利要求书界定范围为准。

  针对现有微码融合技术在非连续微码处理中存在内存寄存器一致性、粒度对称性及依赖关系检测不足的问题,提出一种推测融合设计结构。通过融合预测器、微码列队、保留站和融合历史队列的协同工作,结合融合嵌套...

  针对传统译码逻辑生成中真值表规模过大、组合逻辑冗余的问题,提出通过遍历指令编码可能值并动态调整真值表生成策略的解决方案。当译码信号位来源于某编码值时,仅保留对应位为1b1,其余位保持原值,从...

  针对传统指令提取逻辑复杂、硬件开销大的问题,提出基于移位的指令提取与缓冲方法。通过构建有效字掩码、右对齐移位指令行、拆分提取有效字并排序写入缓冲队列,实现逻辑简化与高效取指。该方法优化了指令流...

  针对超标量微处理器中分支预测错误导致的性能损失问题,提出一种非顺序执行与顺序退指令的优化方法。当分支预测地址与实际解析地址不一致时,通过判断是否存在更早的未退指令需校正,若存在则暂缓执行当前分...

  针对乱序超纯量微处理器中重排序缓冲器(ROB)容量限制预看能力与执行效率的问题,提出通过区分例外与非例外指令,提前引退非例外指令以释放ROB通道的优化方案。该方法在非例外指令执行阶段前触发引退...

  发现传统微处理器在调试、远程诊断时难以快速暂停运行,且依赖软件介入。解决思路是设计带运行/停止端的微处理器,通过外部信号触发进入指令边界处的空闲状态,暂停译码器并保持部分功能运行,实现外部直接...

  针对旧微处理器指令在现代处理器上执行效率低的问题,提出通过将旧指令映射为等效主处理器指令(Ring0-Ring3分级处理)的解决方案。采用寄存器重映射、多指令协同执行及高级语言模拟等技术,提升...

  1.计算机网络安全 2.计算机仿线.网络安全;物联网安全 、大数据安全 2.安全态势感知、舆情分析和控制 3.区块链及应用

0335-3630388