CN103809933A - 可重新配置的指令编码方法、执行方法及电子装置 - Google Patents
可重新配置的指令编码方法、执行方法及电子装置 Download PDFInfo
- Publication number
- CN103809933A CN103809933A CN201210491698.2A CN201210491698A CN103809933A CN 103809933 A CN103809933 A CN 103809933A CN 201210491698 A CN201210491698 A CN 201210491698A CN 103809933 A CN103809933 A CN 103809933A
- Authority
- CN
- China
- Prior art keywords
- instruction
- encoding
- application program
- code corresponding
- corresponding table
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000013507 mapping Methods 0.000 claims abstract description 80
- 238000012545 processing Methods 0.000 claims abstract description 65
- 238000009434 installation Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 235000012364 Peperomia pellucida Nutrition 0.000 claims description 2
- 240000007711 Peperomia pellucida Species 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 6
- 230000007306 turnover Effects 0.000 description 5
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- UWNXGZKSIKQKAH-UHFFFAOYSA-N Cc1cc(CNC(CO)C(O)=O)c(OCc2cccc(c2)C#N)cc1OCc1cccc(c1C)-c1ccc2OCCOc2c1 Chemical compound Cc1cc(CNC(CO)C(O)=O)c(OCc2cccc(c2)C#N)cc1OCc1cccc(c1C)-c1ccc2OCCOc2c1 UWNXGZKSIKQKAH-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
本发明公开了一种可重新配置的指令编码方法、执行方法及电子装置。指令编码方法的一实施例是根据应用程序使用的前后指令配对次数多寡进行重新编码后更进行重复编码以产生指令编码表及指令码映对表,并依据此指令编码表产生对应此应用程序的执行码。指令执行方法包括以下步骤:载入指令码映对表至包括指令映对模块、指令解码模块及执行模块的处理单元,经指令映对模块,依据指令码映对表,将撷取的应用程序的第一指令信号转换为目标指令信号。藉由指令解码模及执行模块,分别对目标指令信号解码及执行解码后的目标指令信号。
Description
技术领域
本发明是有关于一种可重新配置的指令编码方法、执行方法及处理器架构。
背景技术
针对某一种处理器进行程序编译时,编译器(compiler)会依据对应于此种处理器指令集架构的固定的指令表(instruction table)将应用程序的原始码转换为机器码(machine code)以供此种处理器执行相对应的运算动作。
另外,在运算装置中执行应用程序时,运算装置的记忆体中所储存的应用程序的机器码,传输于总线而到达运算装置的处理器时,可能会导致连续的执行指令间,在指令总线上的信号相位产生剧烈的变化,进而使得电路输入端会发生信号逻辑位准的频繁转换,并伴随着严重的功率消耗。
发明内容
本发明是有关于一种可重新配置的指令编码方法、执行方法及处理器架构。
根据一实施例,提出一种可重新配置的指令执行方法。此方法执行于电子装置,包括以下步骤。载入指令码映对表至电子装置的处理单元,其中此处理单元包括指令映对模块、指令解码模块及执行模块。藉由此处理单元,撷取应用程序的第一指令信号。藉由此指令映对模块,依据此指令码映对表,将第一指令信号转换为目标指令信号。藉由此指令解码模块,对目标指令信号解码,并藉由此执行模块,执行此解码后的目标指令信号。
根据另一实施例,提供一种电子装置。电子装置,包括处理单元,此处理单元用以依据指令码映对表以进行指令的执行。处理单元包括指令映对模块、指令解码模块和执行模块。指令映对模块,依据此指令码映对表,将此处理单元撷取的第一指令信号转换为目标指令信号。指令解码模块,对此目标指令信号解码。执行模块,执行此解码后的目标指令信号。
根据另一实施例,提供一种可重新配置的指令编码方法。此方法包括以下步骤。统计应用程序的相邻指令的配对分布,并据以找出指令配对集,此指令配对集包括此应用程序的具较高使用率的多个指令配对。对此指令配对集中较高使用率的此些指令配对进行编码以赋予各指令配对相近的指令编码,从而产生指令编码表,其中此指令编码表与原始指令编码表具有相同数量的指令,且至少有多个指令于此指令编码表与此原始指令编码表中对应到不同的指令编码。产生指令码映对表,其中此指令码映对表储存将此指令编码表映对到此原始指令编码表的映对关系。
根据另一实施例,提供一种运算装置可读式信息储存媒体,其上储存有程序码,此程序码的执行能实现上述的可重新配置的指令编码方法。
为了对本发明的上述及其他方面有更佳的了解,下文特举多个实施例,并配合附图,作详细说明如下:
附图说明
图1为可重新配置的指令编码的硬件架构的一实施例的方块图。
图2为可重新配置的指令执行方法的一实施例的流程图。
图3为图1的指令映对模块的一实施例的电路方块图。
图4为可重新配置的指令编码的处理器架构的另一实施例的方块图。
图5为可重新配置的指令编码方法的一实施例的流程图。
图6为图5的程序码概况分析步骤的一实施例的流程图。
其中,附图标记:
1:硬件架构
10:处理单元 20:记忆单元
30:总线 100:指令撷取模块
110、300、410:指令映对模块
120:指令解码模块 130:执行模块
210:指令码映对表 220:应用程序的执行码
310:记忆体 320:控制电路
400:指令撷取模块 420:多工器
S10、S20、S110-S140、S210-S250:步骤
具体实施方式
以下提供有关于可重新配置的指令编码方法、执行方法及处理器架构的实施例。一些实施例提出具有指令映对模块的处理器架构,使处理器能执行基于重新配置的指令集的应用程序。一些实施例提出产生重新配置的指令集的应用程序的编译方法。一些实施例更提出可减少相邻指令间汉明距离的可重新配置的指令编码方法。
图1为可重新配置的指令编码的硬件架构1的一实施例的方块图。此硬件架构1包括处理单元10和记忆单元20。以下举处理单元10包括指令映对模块110、指令解码模块120和执行模块130为例说明。但是,处理单元10并不受限于此,处理单元10亦可实施为单或多核心的处理器,又或处理器以管线(pipeline)架构的电路或超长指令字(Very long instruction word,VLIW)或其他的架构的电路实现。又例如,处理单元10的指令映对模块110可包含于指令撷取模块100中,或耦接于指令撷取模块与指令解码模块120之间。
在图1中,处理单元10,用以依据指令码映对表210以进行指令的执行动作,例如执行应用程序的执行码220。指令映对模块110,依据指令码映对表210,将处理单元10撷取的指令信号(以下记作第一指令信号S1)转换为目标指令信号S2。指令解码模块120,对目标指令信号S2解码。执行模块130,执行此解码后的目标指令信号。记忆单元20,通过总线30与处理单元10耦接,例如用以储存指令码映对表210及应用程序220的多个执行码,记忆单元20可实施为相同或不同的记忆体模块或装置。又,应用程序的执行码220执行的过程中,处理单元10从记忆单元20可能撷取至少一或多个指令,执行码220的至少一个或多个指令,可以为并行或串列的数据信号,皆可以此第一指令信号S1代表。
在图1中,处理单元10具有本身的指令集(instruction set)架构,例如是基于精简指令集(RISC)的处理器架构,如基于无内部互锁管线阶层微处理器(Microprocessor without Interlocked Pipeline Stage,MIPS)架构。而藉由具有指令映对模块110的架构,使处理单元10能执行基于重新配置的指令集而产生(或编译)的应用程序。指令映对模块110依据指令码映对表210所输出的目标指令信号S2所代表的指令编码符合处理单元10本身的指令集。故此,指令解码模块120得以依据处理单元10本身的指令集进行解码及由执行模块130执行。由此,处理单元10可视为可动态调整指令集的处理单元。
请参照图2,其为可重新配置的指令执行方法的实施例的流程图。以下举图1的硬件架构1为例说明,然而图2的方法并不受限于此。
在步骤S110中,载入指令码映对表至电子装置的处理单元10。电子装置可视为此处理单元10,或亦可视为基于此处理单元10的系统级芯片(systemon chip),又可视为基于处理单元10的各种运算装置,例如智能型手机、平板电脑、笔记型电脑、个人电脑、或各种移动装置或嵌入式系统如多媒体播放器等。步骤S110可实现为于处理单元10依据指令码映对表执行应用程序以前,处理单元10令指令映对模块110载入对应的指令码映对表。又步骤S110可实现为于处理单元10中预先储存一个或多个指令码映对表,如此可供执行应用程序执行时使用,其中更可实现依执行的应用程序选用对应的指令码映对表。
在步骤S120中,藉由处理单元10,撷取应用程序的第一指令信号S1。步骤S120可实施为由处理单元10的指令撷取模块或指令映对模块110来完成。又例如处理单元10从电子装置的记忆单元20取得指令码映对表及撷取第一指令信号S1,第一指令信号S1代表此应用程序的多个执行码中的至少一者。
在步骤S130中,藉由指令映对模块110,依据此载入的指令码映对表,将第一指令信号S1转换为目标指令信号S2。
在步骤S140中,藉由指令解码模块120,对目标指令信号S2解码,并藉由执行模块130,执行解码后的目标指令信号。
于转换步骤S130中,例如第一指令信号S1包括编码的指令编码(例如是1001代表指令ADD),目标指令信号S2包括原始指令编码(例如是1110代表指令ADD),指令码映对表储存将此编码的指令编码映对为此原始指令编码的一对一的映对关系。依据此指令码映对表的映对关系,藉由指令映对模块110将第一指令信号S1转换为目标指令信号S2。在另一例子中,指令码映对表亦可储存将多个不同的编码的指令编码(例如1001、1101皆代表同一指令ADD)映对为此原始指令编码的多对一的映对关系。
在一实施例中,步骤S110-S140执行于电子装置。
从另一方面来说,指令码映对表储存将多个编码的指令编码映对到多个原始指令编码的函数关系(1对1或/及多对1的映对),而应用程序的执行码基于这些编码的指令编码表产生,又这些原始指令编码表的指令包括于处理单元本身的指令集中。
由上述的实施例,处理单元10可视为可动态调整指令集编码的处理单元。因为处理单元10可以执行基于不同指令集编码的应用程序,如此,可带来在实现处理单元10及执行应用程序时相当大的弹性以及产生不同的应用。在一实施例中,对于其他处理器指令集的程序,可以设计或产生指令码映对表,与指令映对模块配合,藉由指令映对模块的转换动作令基于其他处理器指令集的程序也能于处理单元10中执行。在一些实施例中,可设计或产生指令码映对表,令应用程序的执行码中两相邻的执行码的汉明距离整体上(亦即在指令配对的分布上)小于经此指令映对模块依据此指令码映对表的转换后的两邻的执行码的汉明距离。有关于产生指令码映对表及重新配置的指令编码方法,将举例说明于后。
请参考图3,其为图1的指令映对模块的一实施例的电路方块图。在图3中,指令映对模块300包括:记忆体310(例如是暂存器或其他记忆体)及控制电路320(例如是逻辑电路或其他电路的组合)。控制电路320,用以载入指令码映对表于记忆体310中,并用以依据指令码映对表,将第一指令信号S1转换为目标指令信号S2。
图4为可重新配置的指令编码的处理器架构的另一实施例的方块图。相较于图1的处理单元10,图4的架构包括指令撷取模块400和多工器420。指令撷取模块400用以撷取第一指令信号S1。多工器420的多个输入端耦接指令映对模块410及指令撷取模块400,多工器420的输出端耦接指令解码模块120。处理单元40依据指示信号(例如来自电子装置的作业系统或电子装置的系统电路),控制多工器420选择指令映对模块410及指令撷取模块400之一者的输出作为多工器420的输出。在一实施例中,处理单元40可以具有映对模式及原始模式。在原始模式中,处理单元40可以执行以原始指令编码编译成的程序的执行码(例如系统程序或作业系统的指令,也可以是一般应用程序)而不用经过指令映对模块410的处理,故利用多工器420,将指令撷取模块400的输出传送指令解码模块120处理。在映对模式中,藉由指令映对模块410的处理,处理单元40可以执行以编码的指令集而编译成的程序的执行码(例如是应用程序,如以下图5所举例所产生的应用程序),故利用多工器420,将指令映对模块410的输出传送到指令解码模块120处理。此外,在另一实施例中,在原始模式中,又可令指令映对模块410进入省电状态。如此,可重新配置的指令编码的处理器架构的实施例可作具有多种实施方式,并不受限于此。
图5为可重新配置的指令编码方法的一实施例的流程图。此实施例可利用具有处理器及记忆体的运算装置中执行。步骤S10代表应用程序的原始码(source code)被编译为基于某一种指令集的目标码的过程,例如可由编译器(compiler)实现。目标码如机器码(machine code)或执行码(executable code)或二进位码(binary code)。在步骤S10产生目标码的过程中,原始码会被编译为以组合语言(assembly)或虚拟语言(pseudo code)表示的程序码,最后再基于某一指令集编码而转换为目标码,能被基于此指令集所建构的处理器的指令解码模块及执行模块处理。
在步骤S20中,执行程序码概况分析(profiling),藉由统计程序码(如以组合语言表示)中指令配对分布,产生指令编码表及指令码映对表。步骤S20例如可实作于编译器中或者是实作为编译器所使用的一个或多个软件模块。指令编码表给步骤S10的编译过程使用,步骤S10基于此指令编码表,代替原始的指令集编码,将组合语言表示的程序码转换为目标码。指令编码表中的指令与指令编码(即机器码)的对应关系,是有别于原始的指令集编码,故可视为重新配置的指令集编码。故此,指令码映对表用以于目标码藉由基于原始指令集编码所建构的处理单元执行时使用。如图1至图4的实施例所示,处理单元藉由使用指令映对模块依据指令码映对表,令应用程序得以执行。指令码映对表储存将此指令编码表映对到原始指令编码表的映对关系。指令码映对表及目标码可皆包含于应用程序的文件中,亦可分开作为不同的文件或软件模块。
图6为图5的程序码概况分析步骤的一实施例的流程图,用以实现可重新配置的指令编码方法。
如步骤S210所示,统计一应用程序的相邻指令的配对分布,并据以找出指令配对集(例如至少含有原始指令编码表中的部分指令),此指令配对集包括此应用程序的具较高使用率(例如出现次数较多)的多个指令配对。
在步骤S220中,对此指令配对集中较高使用率的多个指令配对(一些或全部)进行编码以赋予各指令配对相近的指令编码,从而产生第一指令编码表。此第一指令编码表与原始指令编码表具有相同数量的指令,且至少有多个指令于此第一指令编码表与此原始指令编码表中对应到不同的指令编码。
在步骤S230中,依据此第一指令编码表,找出此指令配对集内配对指令的汉明距离,并依据此指令配对集的此些配对指令的汉明距离和出现次数,从此指令配对集中找出多个指令。
在步骤S240中,对这些找出的指令进行重复编码,以得到第二指令编码表。重复编码赋予各个找出的指令至少一额外的指令编码。此第二指令编码表系基于前述的第一指令编码表延伸且包含此些额外的指令编码。
在步骤S250中,产生指令码映对表,其中此指令码映对表储存将此第二指令编码表映对到前述的原始指令编码表的映对关系。
如此,利用编译器依据此第二指令编码表及此应用程序的指令,能产生此应用程序的执行码。
在一些实施例中,可在编译器或组译器内实施一编码方式选择模块或步骤,当一个指令对应到多个编码的指令编码时,使编译器、组译器产生连续指令间指令总线上信号相位变化最少的机器码。此编译器的编码方式选择模块或步骤,依据指令编码表选择一个最佳的编码方式,使其与前后指令汉明距离较短。例如在处理两相邻的指令,如对于指令IN1-IN2,IN1对应到(1001,0101),IN2对应到(0100),选择能使指令IN1及IN2的汉明距离较小的指令编码,即IN1:0101,IN2:0100。
此外,于一实施列中,产生指令编码表的步骤S220可包括以下。对指令配对集的多个指令配对,依据使用率高低依序从使用率最高的指令配对开始对此些指令配对进行编码以赋予各个这些指令配对相近的指令编码。基于此些指令配对进行编码,产生此指令编码表。
又于一些实施列中,步骤S230依据汉明距离和出现次数的各种关系来决定此些找出的指令。例如基于汉明距离和出现次数的乘积的大小来决定;换言之,此例子中此些找出的指令为指令配对集中汉明距离和出现次数的乘积较大的配对指令,例如选出2、4或10个乘积较大的配对指令。
以下举例说明程序码概况分析步骤的实施例。兹举台湾工业技术研究院(ITRI)的“平行架构核心”(Parallel Architecture Core,PAC)计画所研发出的其中之一处理器PAC-Lite为例。PAC-Lite采用32-位元的固定位元长度指令集,指令的格式大致可表示为:oooo ccc fff dddddd sssssttttt aaaaaa,其中与指令的操作码(opcode)相关的是o代表操作码的型态(type)共4位元,f代表操作码的功能(function)共3位元。而一操作码是由型态码及功能码,即oooo fff所组成。PAC-Lite的原始的指令集可示意如表一。
表一
为简洁表述,在表一中以易记码代表的指令,只有列出类型码,而同一类型的指令,可以依照表一中指令排列的顺序加以定义指令相对应的功能码,例如以二进位码、格雷码或其他方式编码。例如,指令NOP及TRAP的操作码可分别定义为000 0000及0000 0001。
在以下的举例说明中,假设图1的处理单元10基于上述的PAC-Lite的指令集架构而成。为了减少应用程序在执行时,由于应用程序的指令传输于总线30产生频繁的总线信号切换动作导致的功率消耗,故利用如图5及6的方法以产生指令编码表和指令映对表以及此应用程序的目标码。
以下依据图6的方法,举例说明产生指令编码表和指令映对表的产生过程。
依据步骤S210,统计应用程序的相邻指令的配对分布(如表二所示),并据以找出指令配对集。表二的“指令对”(instruction pairs)栏位表示应用程序(例如以组合语言表示)的两相邻指令,例如MOVI.H-MOVI.L、ADD-SRLI、ADD-SLLI;栏位N代表指令对的出现次数,其中可统计应用程序码中所有的或是某一出现次数以上的相邻指令。指令配对集IP0,例如是至少含有原始指令编码表OIT(如表一)中的部分指令,此指令配对集包括此应用程序的具较高使用率的多个指令配对。例如将指令对的统计分布按高低排序,如表二所示,可将出现次数较多(即使用率较高)的指令对排列在前,出现次数较少(即使用率较低)的指令对排列在后。
指令对 | T | N | 指令对 | T | N |
MOVI.H–MOVI.L | 1(1) | 8162 | B-MOVI.H | 1(3) | 479 |
ADD-SRLI | 2(5) | 6720 | MOVI.L-LW | 2(2) | 384 |
ADD-SLLI | 3(4) | 5760 | MOIV.L-ADD | 1(1) | 384 |
SLLI-ADD | 3(4) | 5760 | LW-SEQ | 3(3) | 192 |
MOVI.L-MOVI.H | 1(1) | 5378 | ADD-SW | 3(5) | 192 |
LHU-ADD | 2(5) | 3840 | AND-SEQ | 3(3) | 192 |
SRLI-SH | 3(2) | 3840 | MOVI.L-LHU | 3(3) | 192 |
SH-LHU | 2(3) | 2880 | LBCB-MOVI.H | 3(3) | 192 |
SRLI-ADD | 2(5) | 2880 | LW-AND | 4(4) | 192 |
SW-MOVI.H | 3(4) | 1920 | ADD-ADDI | 3(5) | 96 |
MOVI.L-SW | 3(3) | 1728 | ADD-MOVI.H | 1(1) | 96 |
SH-LBCB | 5(2) | 960 | ADDI-MOVI.H | 2(4) | 96 |
LBCB-LHU | 3(3) | 768 | MOVI.L-SEQ | 3(2) | 96 |
SEQ-B | 2(2) | 480 |
表二
依据步骤S220中,对指令配对集IP0中较高使用率的多个指令配对进行编码以赋予各指令配对相近的指令编码,从而产生第一指令编码表IET0(如表三所示)。例如对表二中使用率较高的前5对、10对、或对使用率超过门槛值的指令对(如出现次数在1000以上),或对表二所有的指令对,以进行编码。例如从指令配对集IP0中使用率最高的指令对开始编码,接着按照使用率高低对指令对进行编码。此处的编码动作意味着重新定义此指令对中两个指令的操作码,例如本例的操作码的型态代码或功能代码或两者,令此两指令具有相近(即汉明距离较小)的指令编码。例如表一中的指令例如MOVI.H、MOVI.L、ADD、SW、SH的类型码在表三中已分别改变为0111、0111、0011、0010、0010。基于此类型码,更可以配置指令的功能码,令两相邻指令具有相近的指令编码。例如表二的栏位T指出经过编码动作后,例如指令对ADD-SRLI的汉明距离或转换数(toggle count)从原来的5(即括号中的数字)改为2,指令对ADD-SLLI的汉明距离从4改为3。此外,如表三所示的第一指令编码表与如表一所示的原始指令编码表OIT具有相同数量的指令,且至少有多个指令(例如MOVI.H、MOVI.L、ADD、SW、SH)于第一指令编码表与原始指令编码表中对应到不同的指令编码。
表三
此外,依据表二,此应用程序的指令对的总转换数(total toggle count),即所有指令对的出现次数与转换数的乘积的总和,经过编码之后,从原有的168968减少为117420,即减少了30.50%。
接着,依据步骤S230,依据第一指令编码表,找出此指令配对集IP0内所有配对指令的汉明距离(如表二的栏位T中的经编码后的指令对的转换数),并依据此指令配对集的这些配对指令的汉明距离和出现次数(例如其乘积),从指令配对集IP0中找出多个指令IP1。如表四所示,依据配对指令的汉明距离和出现次数的乘积(P),从大至小排序,从而找出此乘积较高的多个配对指令(即指令对)IP1,例如取乘积较高的前5对、10对、或取其乘积超过门槛值(如1000或7000以上)的指令对,来进行下一步骤中的重复编码。为便于说明,在此例中选出表四中乘积数排行前四对的指令(加注*号)。
指令对 | T | P | 指令对 | T | P |
*ADD-SLLI | 3(4) | 17280 | MOVI.L-LW | 2(2) | 768 |
*SLLI-ADD | 3(4) | 17280 | LW-AND | 4(4) | 768 |
*ADD-SRLI | 2(5) | 13440 | LW-SEQ | 3(3) | 576 |
*SRLI-SH | 3(2) | 11520 | ADD-SW | 3(5) | 576 |
MOVI.H-MOVI.L | 1(1) | 8162 | AND-SEQ | 3(3) | 576 |
LHU-ADD | 2(5) | 7680 | MOVI.L-LHU | 3(3) | 576 |
SH-LHU | 2(3) | 5760 | LBCB-MOVI.H | 3(3) | 576 |
SRLI-ADD | 2(5) | 5760 | B-MOVI.H | 1(3) | 479 |
SW-MOVI.H | 3(4) | 5760 | MOIV.L-ADD | 1(1) | 384 |
MOVI.L-MOVI.H | 1(1) | 5378 | ADD-ADDI | 3(5) | 288 |
MOVI.L-SW | 3(3) | 5184 | MOVI.L-SEQ | 3(2) | 288 |
SH-LBCB | 5(2) | 4800 | ADDI-MOVI.H | 2(4) | 192 |
LBCB-LHU | 3(3) | 2304 | ADD-MOVI.H | 1(1) | 96 |
SEQ-B | 2(2) | 960 |
表四
依据步骤S240中,对这些找出的指令IP1进行重复编码,以得到第二指令编码表IET1。例如表五所示,重复编码步骤赋予各个这些找出的指令IP1(如SLLI、ADD、SRLI、SH)至少一额外的指令编码。在决定如何赋予额外的指令编码时,设定这些找出的指令彼此间的拓扑关系(topology),例如令SLLI-ADD、ADD-SRLI、SRLI-SH两两指令之间具有汉明距离为1的指令编码。此外,此例的第二指令编码表IET1系基于如表三所示的第一指令编码表IET0延伸且包含如表五所示的这些额外的指令编码。如此,第二指令编码表中这些经重复编码动作的指令具有两个不同的指令编码,如加法运算ADD具有两个指令编码:0011 000及0110 011。
指令 | 型态 | 功能 |
SLLI | 0110 | 010 |
ADD | 0110 | 011 |
SRLI | 0110 | 001 |
SH | 0110 | 000 |
表五
然而,重复编码赋予额外的指令编码的方式并不受限于此。例如,可利用如表三所示的第一指令编码表IET0中保留区段或保留位元(reservedbits)(如某些型态中未被使用的可能编码),上述这些被找出的指令集IP1亦可依据拓扑关系而分别决定要填入的保留区段,进而产生对应的重新配置编码的额外的指令编码。此外,重复编码亦可同时利用保留区段及延伸区段(即新增型态如表五所示)来赋予额外的指令编码。又对于前述找出的指令进行重复编码时,各个指令可以被赋予不同或相同数目的额外指令编码。这些额外的指令编码可以具有相同或不同的型态码,而这些指令之间的拓扑关系及亦可对应到不同或相同的汉明距离。
依据步骤S250中,产生指令码映对表,其中此指令码映对表储存将第二指令编码表IET1映对到原始指令编码表OIT(如表一)的映对关系。举例而言,如表六所示,指令码映对表储存着将代表同一指令的多个指令编码映对至原始指令编码的映对关系,例如加法运算指令ADD来说,在第二指令编码表IET1中具有两个不同的编码。此外,如表六所示,指令码映对表亦储存着重新配置编码的指令码映对到原始指令编码的映对关系,例如将32位元的字组储存到数据记忆体的指令SW。
指令 | 指令编码 | 原始指令编码 |
ADD | 0110 011,0011 000 | 1010 000 |
SW | 0010 001 | 0101 010 |
表六
依据上述例子的第二指令编码表IET1,此应用程序的指令对的总转换数,再经过重复编码之后,从原有的168968降为73740,亦即减少了56.36%。
故此,基于处理器PAC-Lite的原始指令编码表的所实现的处理单元10,藉由指令映对模块110依据前述例子所产生的指令码映对表,可以执行依据本例的第二指令编码表IET1所产生的应用程序的目标码。又因此应用程序的执行码中两相邻的执行码的汉明距离整体上小于经此指令映对模块110依据此指令码映对表的转换后的两邻的执行码的汉明距离,执行码在总线30上传输时将会产生较低的切换损耗,从而有助减少处理单元10的电子装置在执行应用程序时的电源消耗。
除了上述采用PAC-Lite处理器的指令集为例的说明外,上述如图5及6所示的方法的实施例可应用其他合适的指令集架构,例如以MIPS处理器为例的32位元固定长度编码的指令集,例如其指令格式可表示为:oooooosssssttttt dddddaaa aaffffff,与指令相关的是o:opcode(6位元)与f:function(6位元)。又例如ARM的32位元的指令集架构或其他如32或64位元的指令集架构。本领域技术人员当可以相似于上述例子的方式来实施例的方法及电子装置于其他处理器的指令集架构。
上述程序码概况分析步骤S20的实施例以产生第二指令编码表为例,然而,实现方式并不受限于此。如在一些实施例中,程序码概况分析步骤S20可实施为基于步骤S210及S220产生第一指令编码表(IET0),且基于第一指令编码表产生指令码映对表,其中第一指令编码表(IET0)用以供编译器产生此应用程序的执行码之用,此指令码映对表储存将此第一指令编码表(IET0)映对到此原始指令编码表(OIT)的映对关系。此外,在一些实施例中,程序码概况分析步骤S20可实施为其他方式,例如基于步骤S210、S230至S250以实施,其中原步骤S230中所依据的第一指令编码表可以用原始指令编码表代替。又上述这些与图6不同的实施例亦可更进一步加上其他最佳化或处理以产生新的指令编码表,进而通过步骤S250产生指令码映对表。
再者,其他实施例更发明一种电脑或运算装置可读式信息储存媒体,其上储存有程序码或一个或多个程序模块,此程序码的执行能实现上述实施例如图5的可重新配置的指令编码方法,其中程序码概况分析步骤可依据图6或其他实施例而实现。这些实施例的可读式信息储存媒体比如但不受限于:光学式信息储存媒体,磁式信息储存媒体或记忆体,如记忆卡、固件或ROM或RAM或可程序化的微控制器的内建记忆体。另外,上述的方法可以实施为一个或多个应用程序界面的程序库。依据前述实施例,信息储存媒体储存的程序码或一个或多个程序模块例如可实作为编译器或者是实作为编译器所使用的一个或多个软件模块。
综上所述,虽然以实施例公开如上,但其并非用以限定本发明的实施方式。本发明所属技术领域的技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与修改。因此,本案的保护范围当视后附的权利要求保护范围所界定者为准。
Claims (22)
1.一种可重新配置的指令执行方法,执行于电子装置,其特征在于,包括:
载入指令码映对表至该电子装置的处理单元,其中该处理单元包括指令映对模块、指令解码模块及执行模块;
藉由该处理单元,撷取应用程序的第一指令信号;
藉由该指令映对模块,依据该指令码映对表,将该第一指令信号转换为目标指令信号;以及
藉由该指令解码模块,对该目标指令信号解码,并藉由该执行模块,执行该解码后的目标指令信号。
2.如权利要求1所述的可重新配置的指令执行方法,其特征在于,该处理单元从该电子装置的记忆单元取得该指令码映对表及撷取该第一指令信号,该第一指令信号代表该应用程序的多个执行码的至少一者。
3.如权利要求1所述的可重新配置的指令执行方法,其特征在于,于该转换步骤中,该第一指令信号包括编码的指令编码,该目标指令信号包括原始指令编码,该指令码映对表储存将该编码的指令编码映对为该原始指令编码的一对一的映对关系;依据该指令码映对表的该映对关系,藉由该指令映对模块将该第一指令信号转换为该目标指令信号。
4.如权利要求1所述的可重新配置的指令执行方法,其特征在于,于该转换步骤中,该第一指令信号包括编码的指令编码,该目标指令信号包括原始指令编码,该指令码映对表储存将多个不同的编码的指令编码映对为该原始指令编码的多对一的映对关系;依据该指令码映对表的该映对关系,藉由该指令映对模块将该第一指令信号转换为该目标指令信号。
5.如权利要求2所述的可重新配置的指令执行方法,其特征在于,该指令码映对表储存将多个编码的指令编码映对到多个原始指令编码的函数关系,该应用程序的该些执行码基于该些编码的指令编码,该些原始指令编码的指令包括于该处理单元的指令集中。
6.如权利要求5所述的可重新配置的指令执行方法,其特征在于,该些编码的指令编码中具有第一多个编码的指令编码对应到该些原始指令编码的多对一的映对关系。
7.如权利要求6所述的可重新配置的指令执行方法,其特征在于,该处理器撷取的该应用程序的该些执行码中两相邻的执行码的汉明距离整体上小于经该指令映对模块依据该指令码映对表的转换后的两邻的执行码的汉明距离。
8.一种电子装置,其特征在于,包括:
处理单元,用以依据指令码映对表以进行指令的执行,其中该处理单元包括:
指令映对模块,依据该指令码映对表,将该处理单元撷取的第一指令信号转换为目标指令信号;
指令解码模块,对该目标指令信号解码;以及
执行模块,执行该解码后的目标指令信号。
9.如权利要求8所述的电子装置,其特征在于,更包括:
记忆单元,用以储存该指令码映对表及应用程序的多个执行码;
其中该第一指令信号代表该些执行码的至少一者。
10.如权利要求9所述的电子装置,其特征在于,该处理单元依据该指令码映对表执行该应用程序以前,令该指令映对模块载入该指令码映对表。
11.如权利要求8所述的电子装置,其特征在于,该指令映对模块包括:
记忆体;以及
控制电路,用以载入该指令码映对表于该记忆体中,并用以依据该指令码映对表,将该第一指令信号转换为该目标指令信号。
12.如权利要求8所述的电子装置,其特征在于,更包括:
指令撷取模块,用以撷取该第一指令信号;以及
多工器,该多工器的多个输入端耦接该指令映对模块及该指令撷取模块,该多工器的多个输出端耦接该指令解码模块;
其中该处理单元依据指示信号,控制该多工器选择该指令映对模块及该指令撷取模块中之一的输出作为该多工器的输出。
13.如权利要求8所述的电子装置,其特征在于,该指令码映对表储存将多个编码的指令码映对到多个原始指令编码的函数关系,该应用程序的该些执行码基于该些编码的指令编码,该些原始指令编码的指令包括于该处理单元的指令集中。
14.如权利要求13所述的电子装置,其特征在于,该处理器撷取的该应用程序的该些执行码中两相邻的执行码的汉明距离整体上小于经该指令映对模块依据该指令码映对表的转换后的两邻的执行码的汉明距离。
15.一种可重新配置的指令编码方法,其特征在于,包括:
统计应用程序的相邻指令的配对分布,并据以找出指令配对集,该指令配对集包括该应用程序的具较高使用率的多个指令配对;
对该指令配对集中较高使用率的该些指令配对进行编码以赋予各指令配对相近的指令编码,从而产生指令编码表,其中该指令编码表与原始指令编码表具有相同数量的指令,且至少有多个指令于该指令编码表与该原始指令编码表中对应到不同的指令编码;以及
产生指令码映对表,其中该指令码映对表储存将该指令编码表映对到该原始指令编码表的映对关系。
16.如权利要求15所述的可重新配置的指令编码方法,其特征在于,产生该指令编码表的步骤包括:
对该指令配对集的该些指令配对,依据使用率高低依序从使用率最高的指令配对开始对该些指令配对进行编码以赋予各该些指令配对相近的指令编码;以及
基于该些指令配对进行编码后的指令编码,产生该指令编码表。
17.如权利要求15所述的可重新配置的指令编码方法,其特征在于,更包括:
依据该指令编码表及该应用程序的指令进行编译产生该应用程序的执行码。
18.如权利要求17所述的可重新配置的指令编码方法,其特征在于,在对该指令配对集进行编码以赋予各指令配对相近的指令编码,从而产生该指令编码表的步骤中,该指令编码表作为第一指令编码表,该方法更包括:
(b1)依据该第一指令编码表,找出该指令配对集的配对指令的汉明距离,并依据该指令配对集的该些配对指令的汉明距离和出现次数,从该指令配对集中找出多个指令;以及
(b2)对该些找出的指令进行重复编码,以得到第二指令编码表,其中重复编码赋予各该些找出的指令至少一额外的指令编码,该第二指令编码表基于该第一指令编码表延伸且包含该些额外的指令编码;
其中在产生该指令码映对表的步骤和在产生该应用程序的执行码的步骤中,以该第二指令编码表代替该指令编码表以执行该些步骤。
19.如权利要求18所述的可重新配置的指令编码方法,其特征在于,在该步骤(b1)中,该些找出的指令为该指令配对集中汉明距离和出现次数的乘积较大的配对指令。
20.如权利要求18所述的可重新配置的指令编码方法,其特征在于,在产生该应用程序的执行码的步骤中,依据该第二指令编码表,对该应用程序的两相邻指令产生汉明距离较小的执行码。
21.如权利要求17所述的可重新配置的指令编码方法,其特征在于,该应用程序的执行码执行于基于该原始指令编码表的电子装置时,该电子装置依据指令码映对表将该应用程序的执行码转换后执行。
22.一种运算装置可读式信息储存媒体,其上储存有程序码,此程序码的执行能实现权利要求15至20中任一所述的可重新配置的指令编码方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101141138 | 2012-11-06 | ||
TW101141138A TW201419140A (zh) | 2012-11-06 | 2012-11-06 | 可重新配置的指令編碼方法、執行方法及電子裝置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103809933A true CN103809933A (zh) | 2014-05-21 |
Family
ID=50706773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210491698.2A Pending CN103809933A (zh) | 2012-11-06 | 2012-11-27 | 可重新配置的指令编码方法、执行方法及电子装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103809933A (zh) |
TW (1) | TW201419140A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111542037A (zh) * | 2020-05-11 | 2020-08-14 | Tcl移动通信科技(宁波)有限公司 | 指令传输方法、装置及存储介质 |
CN112822468A (zh) * | 2020-12-31 | 2021-05-18 | 成都极米科技股份有限公司 | 一种投影控制方法、装置、投影设备及激光控制器 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11422812B2 (en) * | 2019-06-25 | 2022-08-23 | Advanced Micro Devices, Inc. | Method and apparatus for efficient programmable instructions in computer systems |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040154006A1 (en) * | 2003-01-28 | 2004-08-05 | Taketo Heishi | Compiler apparatus and compilation method |
CN101533342A (zh) * | 2007-12-27 | 2009-09-16 | 英特尔公司 | 压缩指令格式 |
CN102270111A (zh) * | 2011-08-11 | 2011-12-07 | 中国科学院声学研究所 | 一种指令译码方法和指令集模拟装置 |
CN102426534A (zh) * | 2011-11-02 | 2012-04-25 | 大唐移动通信设备有限公司 | 一种实现测试脚本语言转换成可执行指令的方法及系统 |
US20120159444A1 (en) * | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Fusing debug information from different compiler stages |
-
2012
- 2012-11-06 TW TW101141138A patent/TW201419140A/zh unknown
- 2012-11-27 CN CN201210491698.2A patent/CN103809933A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040154006A1 (en) * | 2003-01-28 | 2004-08-05 | Taketo Heishi | Compiler apparatus and compilation method |
CN1264089C (zh) * | 2003-01-28 | 2006-07-12 | 松下电器产业株式会社 | 编译设备和编译方法 |
CN101533342A (zh) * | 2007-12-27 | 2009-09-16 | 英特尔公司 | 压缩指令格式 |
US20120159444A1 (en) * | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Fusing debug information from different compiler stages |
CN102270111A (zh) * | 2011-08-11 | 2011-12-07 | 中国科学院声学研究所 | 一种指令译码方法和指令集模拟装置 |
CN102426534A (zh) * | 2011-11-02 | 2012-04-25 | 大唐移动通信设备有限公司 | 一种实现测试脚本语言转换成可执行指令的方法及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111542037A (zh) * | 2020-05-11 | 2020-08-14 | Tcl移动通信科技(宁波)有限公司 | 指令传输方法、装置及存储介质 |
CN111542037B (zh) * | 2020-05-11 | 2023-07-21 | 深圳康盈半导体科技有限公司 | 指令传输方法、装置及存储介质 |
CN112822468A (zh) * | 2020-12-31 | 2021-05-18 | 成都极米科技股份有限公司 | 一种投影控制方法、装置、投影设备及激光控制器 |
Also Published As
Publication number | Publication date |
---|---|
TW201419140A (zh) | 2014-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102473086B (zh) | 提供分布式判定预测的方法、系统和计算机可访问介质 | |
CN103019656B (zh) | 可动态重构的多级并行单指令多数据阵列处理系统 | |
US20170123775A1 (en) | Compilation of application into multiple instruction sets for a heterogeneous processor | |
US10078357B2 (en) | Power gating functional units of a processor | |
US9304898B2 (en) | Hardware-based array compression | |
CN102576318A (zh) | 集成电路、计算机系统、控制方法 | |
CN102306141B (zh) | 一种描述动态可重构阵列配置信息的方法 | |
CN109871951A (zh) | 一种深度学习处理器及电子设备 | |
CN109388373B (zh) | 用于低功耗内核的乘除法器 | |
CN103809933A (zh) | 可重新配置的指令编码方法、执行方法及电子装置 | |
CN101211256A (zh) | 一种专用双流水线risc指令系统及其操作方法 | |
CN116680269A (zh) | 一种时序数据的编码及压缩方法、系统、设备、介质 | |
Ouyang et al. | Active SSD design for energy-efficiency improvement of web-scale data analysis | |
CN102662635A (zh) | 超长指令字变长指令实现方法及实现该方法的处理器 | |
US20130275721A1 (en) | Reconfigurable instruction encoding method, execution method, and electronic apparatus | |
US20130262787A1 (en) | Scalable memory architecture for turbo encoding | |
CN103597829A (zh) | 对视频量化参数编码的方法和对视频量化参数解码的方法 | |
Zhang et al. | EPA: The effective pipeline architecture for CNN accelerator with high performance and computing efficiency based on FPGA | |
CN102411490B (zh) | 一种针对动态可重构处理器的指令集的优化方法 | |
CN101246435A (zh) | 一种支持高级语言部分语句功能的处理器指令集 | |
CN114528248A (zh) | 阵列重构方法、装置、设备及存储介质 | |
Guo et al. | Shifted gray encoding to reduce instruction memory address bus switching for low-power embedded systems | |
TWI442317B (zh) | 可重新配置的指令編碼方法及處理器架構 | |
CN101907999B (zh) | 超长指令字程序的二进制翻译方法 | |
CN216527140U (zh) | 一种分支预测的装置及处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140521 |