CN111930426A - 一种可重构计算的双模指令集架构及其应用方法 - Google Patents
一种可重构计算的双模指令集架构及其应用方法 Download PDFInfo
- Publication number
- CN111930426A CN111930426A CN202010816528.1A CN202010816528A CN111930426A CN 111930426 A CN111930426 A CN 111930426A CN 202010816528 A CN202010816528 A CN 202010816528A CN 111930426 A CN111930426 A CN 111930426A
- Authority
- CN
- China
- Prior art keywords
- instruction
- dual
- instruction set
- set architecture
- instructions
- 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 19
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 15
- 230000009977 dual effect Effects 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 7
- 238000004088 simulation Methods 0.000 claims description 7
- 238000006073 displacement reaction Methods 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 5
- 238000010295 mobile communication Methods 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 238000000926 separation method Methods 0.000 abstract description 3
- 101100396933 Pseudomonas aeruginosa (strain ATCC 15692 / DSM 22644 / CIP 104116 / JCM 14847 / LMG 12228 / 1C / PRS 101 / PAO1) imm2 gene Proteins 0.000 description 18
- 101100396930 Pseudomonas aeruginosa imm1 gene Proteins 0.000 description 18
- 238000013461 design Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- ATHVAWFAEPLPPQ-VRDBWYNSSA-N 1-stearoyl-2-oleoyl-sn-glycero-3-phosphocholine Chemical compound CCCCCCCCCCCCCCCCCC(=O)OC[C@H](COP([O-])(=O)OCC[N+](C)(C)C)OC(=O)CCCCCCC\C=C/CCCCCCCC ATHVAWFAEPLPPQ-VRDBWYNSSA-N 0.000 description 1
- 108010091769 Shiga Toxin 1 Proteins 0.000 description 1
- 102100040255 Tubulin-specific chaperone C Human genes 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 108010093459 tubulin-specific chaperone C Proteins 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3846—Speculative instruction execution using static prediction, e.g. branch taken strategy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明提供了一种可重构计算的双模指令集架构及其应用方法,在一条功能指令译码后控制信号将保持不变,多条操作指令根据控制器输出的控制信号取操作数并执行相应的运算,减少了控制信号的翻转,降低了处理器的功耗。同时数据流与控制流的分离有利于深度发掘数据流间存在的并行性且降低了分支预测错误丢弃指令的代价。
Description
【技术领域】
本发明涉及通信技术领域,尤其涉及一种可重构计算的双模指令集架构及其应用方法。
【背景技术】
现代移动通信算法中涉及大量矩阵运算和频繁的乘累加操作,如通信基带信号处理中的 FFT 算法、大规模 MIMO 检测算法、移动通信编码方案中的 TBCC 码和 Turbo 码的生成等,这些数据密集型算法使得能源效率和灵活性成为计算架构的主要标准。在现有的计算架构中指令流计算架构,灵活性高、适用范围广,但是性能和功耗是该架构存在的主要问题,虽然指令流计算架构推出了如同步多线程、事务内存、推测多线程等技术,但都只是减少了内存延迟和数据同步对并行性的影响,其性能仍然受限于控制流的执行方式。数据流计算架构针对特定的应用,一般设计为通用处理器的协处理器,在设计中每个加速器都是在ASIC中针对单个应用程序定制的,包含加速器的体系结构可以带来10到100倍的能源效率提升,但是其灵活性较差,限制了计算硬件的使用范围,并且应用算法更新的工程费用很高。可重构计算架构在提高特定领域内计算性能的同时还能保持功能灵活的特性,在面积、性能、功耗之间取得了更优的折中。但是从硬件角度来看,可重构计算架构与传统的顺序处理器完全不同,它必须合理调度和协调二维阵列的硬件资源这极大的增加了编译器的设计复杂度,同时由于空间架构和命令式编程之间的根本矛盾尚无法解决,具有高级命令式编程语言的可重构计算架构需要大量的人工工作才能进行优化,这使得编程模型和自动编译成为阻碍可重构计算架构发展的一个迫切问题。
因此,有必要研究一种可重构计算的双模指令集架构及其应用方法来应对现有技术的不足,以解决或减轻上述一个或多个问题。
【发明内容】
有鉴于此,本发明提供了一种可重构计算的双模指令集架构及其应用方法,在一条功能指令译码后控制信号将保持不变,多条操作指令根据控制器输出的控制信号取操作数并执行相应的运算,减少了控制信号的翻转,降低了处理器的功耗。同时数据流与控制流的分离有利于深度发掘数据流间存在的并行性且降低了分支预测错误丢弃指令的代价。
一方面,本发明提供一种可重构计算的双模指令集架构,所述双模指令集架构基于处理器构建,所述双模指令集架构包括:
多条实现控制流的功能指令,通过调用功能指令改变处理器的功能,实现处理器的重构;
多条实现数据流的操作指令,所述多条操作指令插设于任意两条功能指令之间,用以实现数据流计算,同时以一条功能指令接一条操作指令的方式实现指令流的计算。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述操作指令的格式包括:
三操作数指令,用于实现算术运算和逻辑运算;
双操作数指令,用于实现位移运算、逻辑算术运算和分支运算;
零操作数指令,用于实现无条件跳转。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述位移运算包括但不限于逻辑左移、逻辑右移和算数右移;所述逻辑算术运算但不限于立即数加法、立即数与和小于置位,所述分支运算包括但不限于分支跳转。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述逻辑运算包括但不限于与、或、非和异;所述算术运算包括但不限于加法、减法、乘法和除法。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述功能指令的第15位设计为标志位,14-10位设计为5位定长操作码,对应op字段,9-5位设计为配置位,对应rc字段,代表阵列的配置规模,4-0位设计为功能码,对应fuc字段。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述双模指令集架构中分配有16个16位通用寄存器,位移量字段和寄存器索引字段均设计为4位,其中第一个源寄存器索引均位于操作指令的14-11位,第二个源寄存器索引位于操作指令的10-7位,目的寄存器索引均位于操作指令的6-3位。
如上所述的方面和任一可能的实现方式,进一步提供一种双模指令集架构的应用方法,所述方法具体为:将处理元中的指令分为实现控制流的功能指令和实现数据流的操作指令,通过调用功能指令改变处理器的功能,实现处理器的重构,在两条功能指令之间的多条操作指令实现数据流的计算,用一条功能指令接一条操作指令的方式实现指令流的计算。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述应用方法具体包括以下步骤:
S1:对现代移动通信中的大规模MIMO检测算法进行分析并提取基本算子;
S2:根据提取的基本算子和通信算法中存在的大量矩阵乘加运算的特点设计指令格式以及指令集编码,定义操作数存取方式、操作数类型、地址大小端、寻址方式和寄存器分配
S3:采用五级流水线实现处理元微架构并进行仿真验证,最后通过所述双模指令集架构实现SIMD和MIMD。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述大规模MIMO检测算法包括但不限于破零检测、MMSE检测。
与现有技术相比,本发明可以获得包括以下技术效果:
本发明所述架构采用简单的静态分支预测,在预测错误时只额外执行一条功能指令而不会产生任何的数据流,因此不需要流水线停顿,提高了处理器的性能,该架构不采用分支延迟槽,这极大的简化了硬件电路的设计。本发明中所述架构是两条功能指令接多条操作指令,因此不会产生load-use冒险从而导致流水线停顿,这提高了电路的速度,提升了处理器的性能
针对通信算法中的矩阵运算、向量运算等频繁乘累加操作时,一条功能指令接多条操作指令的实现方式与传统指令系统设计相比,减少了大量取指、译码等指令准备时间,提升了处理器的性能。在一条功能指令译码后控制信号将保持不变,多条操作指令根据控制器输出的控制信号取操作数并执行相应的运算,减少了控制信号的翻转,降低了处理器的功耗。同时数据流与控制流的分离有利于深度发掘数据流间存在的并行性且降低了分支预测错误丢弃指令的代价。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有技术效果。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明一个实施例提供的双模指令集架构中的指令格式图;
图2是本发明一个实施例提供的双模指令集架构中的寻址方式图;
图3是本发明一个实施例提供的双模指令集架构中的双模指令集PE结构图;
图4是本发明一个实施例提供的仿真波形图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
本发明提供一种可重构计算的双模指令集架构,所述双模指令集架构基于处理器构建,所述双模指令集架构包括:
多条实现控制流的功能指令,通过调用功能指令改变处理器的功能,实现处理器的重构;
多条实现数据流的操作指令,所述多条操作指令插设于任意两条功能指令之间,用以实现数据流计算,同时以一条功能指令接一条操作指令的方式实现指令流的计算,所述操作指令的格式包括:
三操作数指令,用于实现算术运算和逻辑运算;
双操作数指令,用于实现位移运算、逻辑算术运算和分支运算;
零操作数指令,用于实现无条件跳转,所述位移运算包括但不限于逻辑左移、逻辑右移和算数右移;所述逻辑算术运算但不限于立即数加法、立即数与和小于置位,所述分支运算包括但不限于分支跳转,所述逻辑运算包括但不限于与、或、非和异;所述算术运算包括但不限于加法、减法、乘法和除法,所述功能指令的第15位设计为标志位,14-10位设计为5位定长操作码,对应op字段,9-5位设计为配置位,对应rc字段,代表阵列的配置规模,4-0位设计为功能码,对应fuc字段,所述双模指令集架构中分配有16个16位通用寄存器,位移量字段和寄存器索引字段均设计为4位,其中第一个源寄存器索引均位于操作指令的14-11位,第二个源寄存器索引位于操作指令的10-7位,目的寄存器索引均位于操作指令的6-3位。
一种双模指令集架构的应用方法,所述方法具体为:将处理元中的指令分为实现控制流的功能指令和实现数据流的操作指令,通过调用功能指令改变处理器的功能,实现处理器的重构,在两条功能指令之间的多条操作指令实现数据流的计算,用一条功能指令接一条操作指令的方式实现指令流的计算。
所述应用方法具体包括以下步骤:
S1:对现代移动通信中的大规模MIMO检测算法进行分析并提取基本算子;
S2:根据提取的基本算子和通信算法中存在的大量矩阵乘加运算的特点设计指令格式以及指令集编码,定义操作数存取方式、操作数类型、地址大小端、寻址方式和寄存器分配
S3:采用五级流水线实现处理元微架构并进行仿真验证,最后通过所述双模指令集架构实现SIMD和MIMD。
所述大规模MIMO检测算法包括但不限于破零检测、MMSE检测。
本发明所述架构采用简单的静态分支预测,在预测错 误时只额外执行一条功能指令而不会产生任何的数据流,因此不需要流水线停顿,提高了处理器的性能,该架构不采用分支延迟槽,这极大的简化了硬件电路的设计。本发明中所述架构是两条功能指令接多条操作指令,因此不会产生load-use冒险从而导致流水线停顿,这提高了电路的速度,提升了处理器的性能。
双模指令级架构将基于数据流计算与基于构令流计算的体系结构统一到基于指令流计算的体系结构上,在实现处理器重构的同时仍然可以使用命令式编程模型和命令式语言。
指令集中包括基本算术运算和逻辑运算(如:加、减、乘、比较、位移、与、或、或非等),并且在操作码字段预留部分编码,可以针对特通信算法对指令做进一步的扩展。为了加速取指和译码过程,指令位宽设计为16位。指令格式设计为两种类型:实现控制流的功能指令和实现数据流的操作指令。为了区分操作指令和功能指令,在指令的最高位加入一位标志位。其中,1表示功能指令,0表示操作指令。基于简单规整的指令格式设计原则对功能指令和操作指令的设计如下
1、功能指令:
功能指令的第15位设计为标志位,14-10位设计为5位定长操作码即op字段,9-5位设计为配置位即rc字段,其代表了阵列的配置规模,4-0位设计为功能码即fuc字段。
2、操作指令:
操作指令分为三操作数指令、双操作数指令和零操作数指令,其中三操作数指令用于实现如加法、减法、乘法等算术运算以及实现如与、或、非、异或等逻辑运算;双操作数指令用于实现如逻辑左移、逻辑右移、算数右移等位移运算以及实现如立即数加法、立即数与、小于置位、分支跳转等逻辑算术运算和分支运算;零操作数指令用于实现无条件跳转。双模指令集架构中分配有16个16位通用寄存器,因此位移量字段(shamt字段)和寄存器索引字段均设计为4位,其中第一个源寄存器索引(rs1)均位于操作指令的14-11位,第二个源寄存器索引(rs2)位于操作指令的10-7位,目的寄存器索引均位于操作指令的6-3位,这极大的简化了指令编码器的硬件设计,可以便捷的译码出通用寄存器索引并读取通用寄存器组。
双模指令集架构中设计简洁的存储器访问指令即load/store指令,数据在存储器中按字节存放,处理器以大端模式按字节访问存储器中的指令或数据。架构支持寄存器寻址、立即数寻址、寄存器相对寻址和PC相对寻址。其中寄存器相对寻址将双操作数操作指令中10-7位的imm1立即数字段和2-0位的imm2立即数字段进行拼接后做符号扩展和指定寄存器相加得到有效地址。PC相对寻址将两个立即数字段拼接后左移一位做符号扩展,然后与程序计数器PC相加得到有效地址,如图2所示。
双模指令集架构应适应多种执行模式,在SIMD模式下,PE执行来自行控制器和簇控制器的SIMD指令,数据来自本地存储和邻接共享存储;通屏蔽指令读写屏蔽寄存器,控制当前PE是否执行SIMD指令。在MIMD模式下,PE执行本地指令存储的指令,数据来自本地存储和邻接共享存储。PE直接从存储区读取指令和数据,且PE设计有直接寻址的邻接共享存储器和片内数据存储器两种存取模式。采用五级流水线的方式实现对双模指令集架构的单个处理元进行建模仿真,取指阶段从本地指令存储器中取出指令,译码阶段需根据指令最高位选择生成控制信号或者保持控制信号不变并取出源操作数,执行阶段在配置好的控制信号下进行操作数的运算,访存阶段如果是load/store指令则根据执行阶段运算出的地址进行存数或取数操作,如果为算术或逻辑等不需要访存的运算指令在本级只进行运算结果的传递,写回阶段将运算结果写回寄存器。具体PE结构如图3所示。
采用Verilog HDL硬件描述语言建立包含流水线硬件电路和指令存储器ROM的SOPC,在Modelsim工具下对如下连续多条相同的逻辑运算指令进行功能仿真验证,仿真波形图如图4所示。
lui $1 10111011
lui $2 10110111
lui $3 10100011
and $4 $1 $2
and $2 $3 $1
and $5 $1 $4
xori $3 $1 11100010
xori $2 $4 11100001
or $4 $2 $3
or $2 $4 $5
图4中可以看出前三条立即数高位加载指令在前三个时钟周期控制信号不变并将计算结果分别写入$1、$2、$3寄存器,第四个时钟周期通过功能指令对处理器进行配置改变其控制信号,各通用寄存器的值不发生改变,第五、第六、第七个时钟周期将与运算的结果分别写入$4、$2、$5寄存器。
本发明中指令编码具体如下:
AND
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 10100 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
OR
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 10101 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
XOR
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 10110 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
NOR
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 10111 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
ANDI
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 01100 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
ORI
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 01101 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
XORI
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 01110 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
LUI
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 01111 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
SLL
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 00000 |
标志位(15) | rs1(14-11) | shamt(10-7) | rd(6-3) | reserved(2-0) |
0 |
SRL
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 00010 |
标志位(15) | rs1(14-11) | shamt(10-7) | rd(6-3) | reserved(2-0) |
0 |
SRA
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 00011 |
标志位(15) | rs1(14-11) | shamt(10-7) | rd(6-3) | reserved(2-0) |
0 |
NOP
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 00000 |
标志位(15) | rs1(14-11) | shamt(10-7) | rd(6-3) | reserved(2-0) |
0 | 0000 | 0000 | 0000 | 000 |
MFHI
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 01000 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
MFLO
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 01010 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
MTHI
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 01001 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
MTLO
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 01011 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
ADD
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 10000 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
ADDU
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 10001 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
SUB
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 10010 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
SUBU
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 10011 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
SLT
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 11010 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
SLTU
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 11011 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
ADDI
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 01000 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
ADDIU
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 01001 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
SLTI
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 01010 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
SLTIU
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 01011 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
CLZ
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 11100 | 00000 | 10000 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
CLO
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 11100 | 00000 | 10001 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
MUL
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 11100 | 00000 | 00010 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
MULT
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 01100 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
MULTU
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00000 | 00000 | 01101 |
标志位(15) | rs1(14-11) | rs2(10-7) | rd(6-3) | reserved(2-0) |
0 |
J
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00010 | 00000 | 00000 |
标志位(15) | address(14-0) |
0 |
JAL
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00011 | 00000 | 00000 |
标志位(15) | address(14-0) |
0 |
BEQ
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00100 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
BGTZ
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00111 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
BLEZ
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00110 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
BNE
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 00101 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
LB
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 10000 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
LBU
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 10001 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
LW
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 10010 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
SB
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 10100 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
SW
标志位(15) | op(14-10) | rc(9-5) | fuc(4-0) |
1 | 10101 | 00000 | 00000 |
标志位(15) | rs1(14-11) | imm1(10-7) | rd(6-3) | imm2(2-0) |
0 |
以上对本申请实施例所提供的一种可重构计算的双模指令集架构及其应用方法,进行了详细介绍。以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
如在说明书及权利要求书当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求书当中所提及的“包含”、“包括”为一开放式用语,故应解释成“包含/包括但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求书所界定者为准。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求书的保护范围内。
Claims (9)
1.一种可重构计算的双模指令集架构,所述双模指令集架构基于处理器构建,其特征在于,所述双模指令集架构包括:
多条实现控制流的功能指令,通过调用功能指令改变处理器的功能,实现处理器的重构;
多条实现数据流的操作指令,所述多条操作指令插设于任意两条功能指令之间,用以实现数据流计算,同时以一条功能指令接一条操作指令的方式实现指令流的计算。
2.根据权利要求1所述的双模指令集架构,其特征在于,所述操作指令的格式包括:
三操作数指令,用于实现算术运算和逻辑运算;
双操作数指令,用于实现位移运算、逻辑算术运算和分支运算;
零操作数指令,用于实现无条件跳转。
3.根据权利要求2所述的双模指令集架构,其特征在于,所述位移运算包括但不限于逻辑左移、逻辑右移和算数右移;所述逻辑算术运算但不限于立即数加法、立即数与和小于置位,所述分支运算包括但不限于分支跳转。
4.根据权利要求2所述的双模指令集架构,其特征在于,所述逻辑运算包括但不限于与、或、非和异;所述算术运算包括但不限于加法、减法、乘法和除法。
5.根据权利要求4所述的双模指令集架构,其特征在于,所述功能指令的第15位设计为标志位,14-10位设计为5位定长操作码,对应op字段,9-5位设计为配置位,对应rc字段,代表阵列的配置规模,4-0位设计为功能码,对应fuc字段。
6.根据权利要求5所述的双模指令集架构,其特征在于,所述双模指令集架构中分配有16个16位通用寄存器,位移量字段和寄存器索引字段均设计为4位,其中第一个源寄存器索引均位于操作指令的14-11位,第二个源寄存器索引位于操作指令的10-7位,目的寄存器索引均位于操作指令的6-3位。
7.一种双模指令集架构的应用方法,基于上述权利要求1-6之一所述的双模指令集架构,其特征在于,所述方法具体为:将处理元中的指令分为实现控制流的功能指令和实现数据流的操作指令,通过调用功能指令改变处理器的功能,实现处理器的重构,在两条功能指令之间的多条操作指令实现数据流的计算,用一条功能指令接一条操作指令的方式实现指令流的计算。
8.根据权利要求7所述的应用方法,其特征在于,所述应用方法具体包括以下步骤:
S1:对现代移动通信中的大规模MIMO检测算法进行分析并提取基本算子;
S2:根据提取的基本算子和通信算法中存在的大量矩阵乘加运算的特点设计指令格式以及指令集编码,定义操作数存取方式、操作数类型、地址大小端、寻址方式和寄存器分配
S3:采用五级流水线实现处理元微架构并进行仿真验证,最后通过所述双模指令集架构实现SIMD和MIMD。
9.根据权利要求8所述的应用方法,其特征在于,所述大规模MIMO检测算法包括但不限于破零检测、MMSE检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010816528.1A CN111930426A (zh) | 2020-08-14 | 2020-08-14 | 一种可重构计算的双模指令集架构及其应用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010816528.1A CN111930426A (zh) | 2020-08-14 | 2020-08-14 | 一种可重构计算的双模指令集架构及其应用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111930426A true CN111930426A (zh) | 2020-11-13 |
Family
ID=73311480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010816528.1A Pending CN111930426A (zh) | 2020-08-14 | 2020-08-14 | 一种可重构计算的双模指令集架构及其应用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930426A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157636A (zh) * | 2021-04-01 | 2021-07-23 | 西安邮电大学 | 协处理器、近数据处理装置和方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5996070A (en) * | 1996-07-30 | 1999-11-30 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor capable of executing condition execution instructions using encoded condition execution field in the instructions |
JP2003248523A (ja) * | 2002-02-22 | 2003-09-05 | Sanyo Electric Co Ltd | クロック制御方法及びクロック制御回路 |
TW200727168A (en) * | 2006-01-03 | 2007-07-16 | Realtek Semiconductor Corp | Apparatus for removing unnecessary instruction and method thereof |
US20090240926A1 (en) * | 2008-03-21 | 2009-09-24 | Fujitsu Limited | Arithmetic operating apparatus and method for performing arithmetic operation |
CN101655784A (zh) * | 2008-08-21 | 2010-02-24 | 株式会社东芝 | 流水线操作处理器和控制系统 |
CN102221987A (zh) * | 2011-05-11 | 2011-10-19 | 西安电子科技大学 | 基于嵌入式专用指令集处理器的指令集编码方法 |
CN107483178A (zh) * | 2017-07-25 | 2017-12-15 | 深圳华视微电子有限公司 | 一种实现安全哈希算法sha3的装置及智能卡 |
-
2020
- 2020-08-14 CN CN202010816528.1A patent/CN111930426A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5996070A (en) * | 1996-07-30 | 1999-11-30 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor capable of executing condition execution instructions using encoded condition execution field in the instructions |
JP2003248523A (ja) * | 2002-02-22 | 2003-09-05 | Sanyo Electric Co Ltd | クロック制御方法及びクロック制御回路 |
TW200727168A (en) * | 2006-01-03 | 2007-07-16 | Realtek Semiconductor Corp | Apparatus for removing unnecessary instruction and method thereof |
US20090240926A1 (en) * | 2008-03-21 | 2009-09-24 | Fujitsu Limited | Arithmetic operating apparatus and method for performing arithmetic operation |
CN101655784A (zh) * | 2008-08-21 | 2010-02-24 | 株式会社东芝 | 流水线操作处理器和控制系统 |
CN102221987A (zh) * | 2011-05-11 | 2011-10-19 | 西安电子科技大学 | 基于嵌入式专用指令集处理器的指令集编码方法 |
CN107483178A (zh) * | 2017-07-25 | 2017-12-15 | 深圳华视微电子有限公司 | 一种实现安全哈希算法sha3的装置及智能卡 |
Non-Patent Citations (1)
Title |
---|
陈超;张盛兵;: "多发射多流水线结构数字信号处理器设计", 西北工业大学学报, no. 03, 15 June 2013 (2013-06-15), pages 422 - 428 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157636A (zh) * | 2021-04-01 | 2021-07-23 | 西安邮电大学 | 协处理器、近数据处理装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100705507B1 (ko) | 확장가능한 프로세서 아키텍처에 진보된 명령어들을부가하는 방법 및 장치 | |
Ye et al. | AC compiler for a processor with a reconfigurable functional unit | |
US7386844B2 (en) | Compiler apparatus and method of optimizing a source program by reducing a hamming distance between two instructions | |
US8443170B2 (en) | Apparatus and method for performing SIMD multiply-accumulate operations | |
JP3541669B2 (ja) | 演算処理装置 | |
EP1102163A2 (en) | Microprocessor with improved instruction set architecture | |
Turley et al. | TI’s new’C6x DSP screams at 1,600 MIPS | |
Yu et al. | Vector processing as a soft-core CPU accelerator | |
WO2015114305A1 (en) | A data processing apparatus and method for executing a vector scan instruction | |
Dandamudi | Guide to RISC processors: for programmers and engineers | |
JP2019511056A (ja) | 複素数乗算命令 | |
CN107357552B (zh) | 基于bwdsp芯片实现浮点复数向量求和的优化方法 | |
WO2006136764A1 (en) | A data processing apparatus and method for accelerating execution of subgraphs | |
Miyazaki et al. | RVCoreP: An optimized RISC-V soft processor of five-stage pipelining | |
US6799266B1 (en) | Methods and apparatus for reducing the size of code with an exposed pipeline by encoding NOP operations as instruction operands | |
Hagiwara et al. | A dynamically microprogrammable computer with low-level parallelism | |
CN111930426A (zh) | 一种可重构计算的双模指令集架构及其应用方法 | |
Lin et al. | A unified processor architecture for RISC & VLIW DSP | |
Huang et al. | ASIA: Automatic synthesis of instruction-set architectures | |
CN112130899A (zh) | 一种堆栈计算机 | |
Schilling et al. | Scheduling for an embedded architecture with a flexible datapath | |
US20070061551A1 (en) | Computer Processor Architecture Comprising Operand Stack and Addressable Registers | |
Musfiquzzaman et al. | An efficient dynamic switching mechanism (DSM) for hybrid processor architecture | |
Togawa et al. | Area and delay estimation in hardware/software cosynthesis for digital signal processor cores | |
Connors et al. | An architecture framework for introducing predicated execution into embedded microprocessors |
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 |