CN101751244A - 微处理器 - Google Patents
微处理器 Download PDFInfo
- Publication number
- CN101751244A CN101751244A CN 201010033646 CN201010033646A CN101751244A CN 101751244 A CN101751244 A CN 101751244A CN 201010033646 CN201010033646 CN 201010033646 CN 201010033646 A CN201010033646 A CN 201010033646A CN 101751244 A CN101751244 A CN 101751244A
- Authority
- CN
- China
- Prior art keywords
- instruction
- unit
- subelement
- microprocessor
- register
- 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.)
- Granted
Links
Images
Abstract
本发明公开了一种微处理器,该微处理器包括:指令获取模块,其用于获取将要执行的指令;指令分发模块,其用于将从指令获取模块得到的指令进行分发;指令执行模块,其用于对从指令分发模块得到的指令进行解码并执行指令;寄存器堆,其用于存储指令执行结果;管理系统,管理指令执行过程中的程序和数据,指令执行模块包括完成算术逻辑运算和移位计算的A单元、完成乘法运算的M单元、实现管理系统存取和程序跳转的D单元以及完成浮点运算的F单元。该微处理器采用超长指令结构,并利用增加的F单元来进行浮点运算,使其同时具备了单周期多指令和单指令多数据的特点,提高了微处理器的操作性能。
Description
技术领域
本发明涉及计算机技术领域,具体地是涉及一种微处理器,适合于复杂数据处理。
背景技术
微处理器是一种集成在一片上的半导体集成电路,可以对一系列算术逻辑操作进行控制和执行。微处理器大致可以分为两类:通用微处理器和专用微处理器。通用微处理器可以使用户通过编程的方法实现广泛的功能,因此常在个人电脑(PC)上用作中央处理器(CPU)。与之对应地,专用处理器只用于特定的环境,因为知道处理器的主要功能,设计者可以使用需求来建立处理器结构,这使得在性能上专用处理器的专用单元可以比通用处理器对应单元显著增强。
数字信号处理是专用处理器的一个典型应用。数字信号处理包括信号获取、信号传输、信号处理等,使用大量数字信号处理技术的一种专用微处理器,即数字信号处理器(DSP)。数字信号处理需要处理大量数据,为了适应此特征,数字信号处理器优化了密集运算和存储器访问的效率。比如,在快速傅里叶变换(FFTs)和数字滤波器的实现中包括如乘加和位移的大量重复操作,数字信号处理器提供了特别的功能以适应这些重复的操作,因此在实际应用中,如图像和声音处理等应用中,其性能比起通用处理器有了很大的提升。
目前,DSP在电子产品中有广泛的应用,比如数字电话、视频会议设备、复杂自动化系统等。可以预见的是,DSP在将来会在更多的数字系统中得到更广泛的应用。
近年来,DSP处理器的更高性能由于不能从传统结构中得到解决,因此提出了各种提高性能的策略。但是,提高时钟频率是有限的,比较好的方法是提高并行性。要提高专用处理器的操作并行性,可以由两个途径实现:提高每条指令执行的操作的数量,或者是提高每个指令周期中执行的指令的数量。随着对处理器性能的要求不断提高,处理器的性能还需要进一步地提高。
发明内容
为了克服现有技术的不足,本发明的目的是要提供一个操作性能更高的微处理器。
为了实现上述目的,本发明提供了一种微处理器,该微处理器包括:指令获取模块,其用于获取将要执行的指令;指令分发模块,其用于将从指令获取模块得到的指令进行分发;指令执行模块,其用于对从指令分发模块得到的指令进行解码并执行指令;寄存器堆,其用于存储指令执行结果;管理系统,管理指令执行过程中的程序和数据,指令执行模块包括完成算术逻辑运算和移位计算的A单元、完成乘法运算的M单元、实现管理系统存取和程序跳转的D单元以及完成浮点运算的F单元。
本发明的有益效果是,该微处理器利用增加的浮点运算单元F来进行浮点数和浮点向量的运算,使其同时具备了单周期多指令和单指令多数据的特点,因此该微处理器具有操作性能高的优点,非常适合于多媒体信号、4G移动通信等对数据处理的容量和速度要求很高的场合。此外,该微处理器采用超长指令结构,所有指令都采用32位定长编码,可以有效减少处理器面积并减少时延。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明实施例的微处理器的结构示意图;
图2是根据本发明实施例的微处理器的指令流示意图;
图3是根据本发明实施例的微处理器的D单元工作流程图;
图4是根据本发明实施例的微处理器的寄存器堆的结构示意图;以及
图5是根据本发明实施例的微处理器的指令编码原理图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
根据本发明实施例,微处理器(Magnolia处理器)可以采用32位定长的指令编码,能够支持定点数和浮点数运算,也能够支持128位向量运算。其采用超长指令字架构,拥有八个独立运算功能单元。图1示出的是根据本发明实施例的微处理器的结构,该微处理器包含指令获取模块(INSTRUNCTIONS FETCH)、指令分发模块(INSTRUNCTIONSDISPATCH)、指令执行模块(INSTRUNCTIONS EXECUTE)、寄存器堆和管理系统。当然可以理解的是,微处理器还可以包括许多其他模块,但是其他模块不是本发明需要改进的重点,此处不再赘述。
其中,指令执行模块包括完成算数逻辑运算和移位计算的A单元、完成乘法运算的M单元、实现管理系统存取和程序跳转的D单元以及完成浮点运算的F单元,根据本发明的一个实施例,指令执行模块包括八个执行单元,即图1所示的A0、A1、M0、M1、D0、D1、F0和F1。寄存器堆包括一个由64个64bits通用寄存器构成的通用寄存器堆(Gregister)和一个由64个128bits浮点寄存起构成的浮点寄存器堆(F register)。管理系统包括数据存储器(RAM)、数据缓存(cache)、程序存储器(RAM)、程序缓存(cache)以及管理上述RAM和cache的存储器管理单元(MMU)。在图1中,MMU包括用于管理数据RAM和数据cache的数据存储器管理单元(DMMU),以及用于管理程序RAM和程序cache的程序存储器管理单元(PMMU)。
在本发明中,由于增加了浮点运算单元F,使得微处理器能够完成浮点操作和相应的浮点向量操作,极大地提高了微处理器的处理能力。因此,在指令执行模块中,八个执行单元的组合方式具有了更大的灵活性,执行单元的个数和类型可以根据应用需求和性能需求进行重组。例如只需要执行定点计算功能,可以采用AAMMDD的单元组成方式。又如执行并行度不高的浮点计算应用可以采用AMDF的单元组成方式。当然,由于该微处理器的主要特点是执行的是并行度比较高的浮点计算,因此通常需要采用AAMMDDFF的单元组成方式。执行单元的增减对DSP核面积和功耗的影响是线性的。为了能够更清楚完整地理解浮点运算单元F在本发明中的作用,下文将采用AAMMDDFF的结构为例进行详细说明。
Magnolia处理器流水线结构按功能可分为指令获取模块(INSTRUNCTIONS FETCH)、指令分发模块(INSTRUNCTIONSDISPATCH)和指令执行模块(INSTRUNCTIONS EXECUTE)。
其中,指令获取模块(INSTRUNCTIONS FETCH)的功能是为指令分发模块提供读取的指令,即产生下条指令地址,从指令RAM中读取相应指令,并将读取的指令送给指令分发模块。指令获取模块每个时钟周期可以读取8条地址连续的指令,取指包大小为256bits。
指令获取模块共有四级流水线,分别为:指令地址产生、指令地址发送、等待和指令读取。指令地址产生阶段的功能是根据上一个周期的程序地址,跳转信号,循环并产生下一个单元应该执行的指令的地址;指令地址发送阶段的功能是将指令产生阶段生成的PC送给指令cache控制单元,同时备份指令有效位标志等到寄存器中;等待阶段的功能是等待指令cache控制单元读取指令,并备份指令有效位标志等到寄存器中;指令读取阶段的功能是根据当前流水线的状态,从指令cache中获得指令包发送给指令分发模块。
指令分发模块(INSTRUNCTIONS DISPATCH)的功能是将从指令获取模块取回的指令分发给各执行单元,指令分发模块一个周期可以从指令获取模块中获得一个取指包,即大小为32bytes的指令。指令分发模块的输入为一个取指包寄存器(FU_IR)中的值,输出为各功能单元指令寄存器中的值以及指令分发完毕指示信号。整个模块只设计有一级流水。指令分发模块根据上次的分发情况从指令中选取待分发指令包,然后由指令分发模块上的判决单元根据并行位得出可以并行发送的指令,并由分发执行单元分发相应的指令。
在进行指令并行判决时,判决单元通过指令中功能单元选择位来完成指令并行的判定。在本发明的一个实施例中,可以选用00表示选择A单元,01表示选择M单元,10表示选择D单元,11表示选择F单元。将指令的高两位设定为功能单元选择位,在一个执行包内各条指令的高两位按照指令顺序进行升序排列,如果并行位相同的指令个数小于等于2,则处理器认为可以将这组指令并行执行。例如在图2所示的指令流中,指令ins0的最高两位为00,ins1为01,ins2为01,ins3为10,ins4为00,ins5为00,ins6为00,根据并行处理原则,处理器cycle0执行ins0、ins1、ins2和ins3,cycle1并行执行ins4和ins5,cycle2并行执行ins6。
指令执行模块(INSTRUNCTIONS EXECUTE)由各个功能单元来执行特定的指令,每个功能单元的操作都可以分为两部分,即解码和执行,解码在一个周期完成,执行则需要花费一到多个周期不等。
其中,A单元是微处理器中完成算术逻辑运算以及移位运算的单元。A单元包括完成对接收的指令进行解码的解码子单元、完成逻辑运算的算术逻辑运算子单元和根据数据运算结果进行相应移位操作的移位子单元等多个功能子单元。A单元中共有两级流水线:解码和执行。解码阶段的功能是接收指令,并根据指令产生其余各部分的控制码。在解码阶段开始的时钟上升沿,指令分发模块将需要在A单元执行的指令写入指令寄存器(A_IR),然后根据解码逻辑由指令寄存器(A_IR)中的内容产生各部分的控制码。执行阶段接收两个操作数,然后根据其控制代码对两个操作数进行相应的运算,并在执行阶段结束时的时钟上升沿将运算结果写入目标寄存器。
M单元是微处理器中完成乘法运算的单元,可以完成32位乘法、16位乘法、8位乘法等运算,以及部分算术逻辑操作和位操作。M单元包括完成对接收的指令进行解码的解码子单元、控制流水线执行过程的流水线控制旁路子单元、完成乘法运算的乘法运算子单元、完成逻辑运算的算术逻辑子单元和控制目标寄存器的目标寄存器写使能信号产生子单元等部分。M单元中实现乘法功能需要三级流水线:解码、乘法执行一级和乘法执行二级。其中乘法执行一级采用乘法单元实现,乘法执行二级采用加法单元来实现。M单元中实现算术逻辑操作以及位操作需要两级流水线:解码和执行。执行不同的指令采用不同的流水线结构,流水线控制旁路单元通过解码单元产生的旁路信号(bypass)进行控制。解码阶段的功能是接收指令,并根据指令产生其余各部分的控制码。在解码阶段开始的时钟上升沿,需要在M单元执行的指令被写入指令寄存器(M_IR),然后根据解码逻辑由指令寄存器(M_IR)中的内容产生各部分的控制码。
D单元的主要功能是实现存储器的存取以及实现程序的跳转,同时它也可以完成部分算术逻辑运算。D单元共包括完成对接收的指令进行解码的解码子单元、根据解码后的指令选择操作数的操作数选择子单元、完成逻辑运算的算术逻辑子单元(ALU)和控制目标寄存器的目标寄存器写使能信号产生子单元等四大部分。D单元中共有两级流水线:解码和执行。解码阶段的功能是接收指令,并根据指令产生其余各部分的控制码。在解码阶段开始的时钟上升沿,指令分发单元将需要在D单元执行的指令写入指令寄存器(D_IR),然后根据解码逻辑由指令寄存器(D_IR)中的内容产生各部分的控制码。执行阶段接收两个操作数,然后根据其控制代码对两个操作数进行相应的运算,并在执行阶段结束时的时钟上升沿将运算结果写入目标寄存器。
D单元中执行存储器读写操作的是存取子单元(LSU),LSU子单元的操作分4级流水线进行,E1为地址产生级,E2为地址发送级,E3为等待D Cache处理级,E4为获取数据和寄存器回写或存储器写入级。LSU子单元根据D单元E1级组合逻辑输出存储器访问使能信号和存储器访问模式信号等控制信号以控制存储器访问。
图3是根据本发明实施例的微处理器的D单元工作流程图,D单元从D_IR中获取指令和指令模式(D_IM)后,开始解码,解码阶段的功能是接收指令,并根据指令产生其余各部分的控制码。若不是存储器操作指令,解码后进入执行级,根据解码产生的控制信号执行相应的指令,将源寄存器数据运算为目标寄存器数据,若是存储器操作指令,则LSU子单元根据解码和执行级的组合逻辑产生的控制信号开始存储器操作,存储器操作需要四个流水周期完成。
其中,存储器写操作步骤如下:LSU子单元首先访问执行E1级,此时数据地址产生(Data Address Generate),根据D单元E1级组合逻辑输出和解码所得存储器访问控制信号,获得存储器访问地址和存储器访问模式信号,并产生需要存储数据的寄存器地址及读使能信号;然后执行E2级,即数据地址发送(Data Address Send),存储器根据存储器使能、存储器访问地址及访问模式将数据发送给存储器系统;接着执行E3级,即数据等待(Data Wait),LSU等待D cache写存储器数据;最后执行E4级,即数据获取(Data Get),根据需要写堆栈缓存寄存器(STBUF),STBUF始终保存堆栈顶端的存储器内容。
存储器读操作步骤如下:LSU存储器首先访问执行E1级,即数据地址产生(Data Address Generate),根据D单元E1级组合逻辑输出和解码所得存储器访问控制信号,获得存储器访问地址和存储器访问模式信号,并产生需要获取数据的寄存器地址及写使能信号;然后执行E2级,即数据地址发送(Data Address Send),存储器根据存储器使能、存储器访问地址及访问模式从存储器中读取数据;接着执行E3级,即数据等待(Data Wait),LSU等待D cache读取存储器数据;最后执行E4级,即数据获取(Data Get),LSU将输出数据传输给需要数据的寄存器,根据需要写堆栈缓存寄存器(STBUF),STBUF始终保存堆栈顶端的存储器内容。
F单元是微处理器中完成浮点及向量运算的单元,可以完成单精度、双精度算术运算以及部分逻辑操作和位操作。F单元共包括完成对接收的指令进行解码的解码子单元、控制流水线执行过程的流水线控制旁路子单元、完成乘法运算的乘法运算子单元、完成除法运算的除法运算子单元、完成开方运算的开平方运算子单元、完成逻辑运算的算术逻辑子单元和控制目标寄存器的目标寄存器写使能信号产生子单元等部分。F单元执行不同类型的指令需要不同数量的周期数。指令进入F单元后,首先进入解码级,解码阶段的功能是接收指令,并根据指令产生其余各部分的控制码。在解码阶段开始的时钟上升沿,需要在F单元执行的指令被写入指令寄存器(F_IR),然后解码逻辑根据指令寄存器(F_IR)中的内容产生各部分的控制码。
图4示出的根据本发明实施例的微处理器的寄存器堆结构,如图4所示,微处理器拥有64个64位通用寄存器(G register)和64个128位浮点寄存器(F register)。指令执行模块中的A单元、M单元和D单元可以与通用寄存器堆连接,D单元和F单元可以与浮点寄存器堆连接。通过D单元可以实现两个寄存器堆之间的数据传输。
根据本发明,微处理器指令可以采用32位定长编码,分为定点指令和浮点指令两大类,同时支持相应的定点向量指令和浮点向量指令。Magnolia处理器采用了超长指令结构(vliw),并扩充了向量运算结构,同时具备单周期多指令和单指令多数据的特点。这种体系结构提高了处理器性能,将更加适合多媒体数据处理。
定点数指令和定点向量指令由A单元、M单元和D单元执行,共有186条,指令功能如表1所示,每个指令名称可以对应8bit整数、16bit整数、32位整数、无符号数、有符号数等多个指令。
表1
指令类型 | 指令名称 |
算术 | ADD、SADD、SUB、MAX、MIN、AVG、ABS、NEG、SAT、DQUANT |
逻辑 | AND、ANDN、OR、ORN、XOR、XORN、NOT |
移位/旋转 | ASL、ASR、LSR、SASL、ASRR、XASL、XLSR、ROL、SLAC、SLSU、SAVSL、SAVSR |
乘法 | MUL、MULR、SMULL、MAC、SMACL、MSU、SMSUL、DTP、BTFDTP |
指令类型 | 指令名称 |
数据移动/存取 | MOV、LD、ST.、FIFO、PUSH、POP |
比较 | CMP |
位排序 | PACK、UNPK、SPACK、SWAP、SHLMB、EXP、EXT、DEP、NORM、LMBD、DEAL、SHFL、ZERO |
程序控制 | B、BD、CALL、RET、RETD、NOP、NOPN、PAUSE、 |
IDLE、SLEEP、LPSETUP、PUSH | |
向量操作 | ADD、SADD、AVG、SUB、SSUB、SAA、ABS、NEG.、MAX.、MIN、ASL、ASR、LSR、MUL、CMP |
浮点数指令和浮点向量指令由D单元和F单元来执行,共137条,指令功能如表2所示,每个指令名称都可以对应单精度浮点数、双精度浮点数、4位单精度浮点向量、2位双精度浮点数向量等四条指令。
表2
指令类型 | 指令名称 |
算术 | ADD、SUB、MUL、DIV、MULADD、MULSUB、NMULSUB、HADD、HSUB、ADDSUB、MADDSUB、MIN、MAX、ABS、RCQ、SQRT |
逻辑 | BROADCAST、SRL、SLL、AND、OR |
比较 | CMP |
数据转化 | ROUND、CVT、32bits_data→64bits_data、64bits_data→32bits_data |
数据移动/存取 | MOV、MOVH、MOVL、FLD、FST |
数据排序 | SHUFPS、UNPCKH、UPPCKL |
缓存控制 | MASKMOVQ、MOVNTQ |
在根据本发明的微处理器中,所有指令都采用32位定长编码,A单元有3种格式,具体编码方式如图5(a)所示,M单元有3种格式,具体编码方式如图5(b)所示,D单元有6种格式,具体编码方式如图5(c)所示,F单元有2种格式,具体编码方式如图5(d)所示,F单元的指令采用不同的比特段来分别表示该浮点数的基数和精度。
在图5(a)至图5(d)所示的各条指令编码中,如果没有其他说明,采用的标识分别表示以下具体含义:
bits31~30:功能单元选择位;
op、op_1、op_2:操作码;
rd:目的寄存器地址,长度为6bits;
rs、rs1、rs2:源寄存器地址,长度为6bits;
PRI:跳转指示;
const:无符号立即数,数字代表位宽;
scst:有符号立即数,数字代表位宽;
cst:无符号立即数,数字代表位宽;
hint:存储访问控制标志;
mode:存取寻址方式;
offsetR:偏移地址;
baseR:基址寄存器;
LPRop:循环控制标志;
X:表示无效位。
存取寻址方式mode的具体内容如表3所示,循环控制标志LPRop的具体内容如表4所示,跳转指示PRI的具体内容如表5所示。
表3
Syntax | Mode | 基址修改方式 | 偏移地址对齐 |
*Base | 0000 | 保持 | 是 |
*+BaseR[Offset] | 0010 | 保持 | 是 |
*-BaseR[Offset] | 0011 | 保持 | 是 |
*BaseR++[Offset] | 0100 | 后加 | 是 |
*BaseR--[Offset] | 0101 | 后减 | 是 |
*++BaseR[Offset] | 0110 | 先加 | 是 |
*--BaseR[Offset] | 0111 | 先减 | 是 |
Syntax | Mode | 基址修改方式 | 偏移地址对齐 |
*+BaseR(ucst5) | 1000 | 保持 | 否 |
*-BaseR(ucst5) | 1001 | 保持 | 否 |
*+BaseR[ucst5] | 1010 | 保持 | 是 |
*-BaseR[ucst5] | 1011 | 保持 | 是 |
*BaseR++[ucst5] | 1100 | 后加 | 是 |
*BaseR--[ucst5] | 1101 | 后减 | 是 |
*++BaseR[ucst5] | 1110 | 先加 | 是 |
*--BaseR[ucst5] | 1111 | 先减 | 是 |
表4
LPRop | LPSETUPselect | |
000 | LPSETUP0a | 将Loop0_Begin:地址的低16位赋值给LPT0的低16位 |
001 | LPSETUP0b | 将L00p0_Begin:地址的高16位赋值给LPT0的高16位 |
010 | LPSETUP0c | 将L00p0_End:地址加上LPTO的结果赋值给LPB0 |
011 | LPSETUP0d | 将Loop0_Num-1赋值给LPC0 |
100 | LPSETUP1a | 将Loop1_Begin:地址的低16位赋值给LPT1的低16位 |
LPRop | LPSETUPselect | |
101 | LPSETUP1b | 将Loop1_Begin:地址的高16位赋值给LPT1的高16位 |
110 | LPSETUP1c | 将Loop1_End:地址加上LPT1的结果赋值给LPB1 |
111 | LPSETUP1d | 将Loop1_Num-1赋值给LPC1 |
表5
通常可以使用通用寄存器作为条件寄存器,以实现条件跳转。指令编码使用4bits连续位作为跳转指示位PRI(Predicate Register Index),从表5中可以看出,PRI的值与16位定点控制寄存器(PR)和16位浮点控制寄存器(FPR)一一对应,PR和FPR每个比特位的值与通用寄存器堆(GR)和浮点寄存器堆(FR)也一一对应。在表5中,PRI=0000和1111表示无条件跳转,PRI=0001时对应于PR0,通用寄存器设定值为1时条件执行,为0时条件不执行,PR1对应的通用寄存器的值与PR0相反。
本发明的有益效果是,该微处理器利用增加的浮点运算单元F来进行浮点数和浮点向量的运算,使其同时具备了单周期多指令和单指令多数据的特点,因此该微处理器具有操作性能高的优点,非常适合于多媒体信号、4G移动通信等对数据处理的容量和速度要求很高的场合。此外,该微处理器采用超长指令结构,所有指令都采用32位定长编码,可以有效减少处理器面积并减少时延。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
Claims (10)
1.一种微处理器,其特征在于,包括:
指令获取模块,其用于获取将要执行的指令;
指令分发模块,其用于将从所述指令获取模块得到的指令进行分发;
指令执行模块,其用于对从所述指令分发模块得到的指令进行解码并执行所述指令;
寄存器堆,其用于存储指令执行结果;
管理系统,管理指令执行过程中的程序和数据,
其中,所述指令执行模块包括完成算术逻辑运算和移位计算的A单元、完成乘法运算的M单元、实现管理系统存取和程序跳转的D单元以及完成浮点运算的F单元。
2.根据权利要求1所述的微处理器,其特征在于,所述寄存器堆包括通用寄存器和浮点寄存器。
3.根据权利要求2所述的微处理器,其特征在于,所述A单元、所述M单元和所述D单元与所述通用寄存器连接,所述D单元和所述F单元与所述浮点寄存器连接。
4.根据权利要求1所述的微处理器,其特征在于,所述管理系统包括存储器管理单元和所述存储器管理单元管理的数据存储器、数据缓存、程序存储器和程序缓存。
5.根据权利要求1所述的微处理器,其特征在于,所述A单元包括完成对接收的指令进行解码的解码子单元、完成逻辑运算的算术逻辑运算子单元和根据数据运算结果进行相应移位操作的移位子单元。
6.根据权利要求1所述的微处理器,其特征在于,所述M单元包括完成对接收的指令进行解码的解码子单元、控制流水线执行过程的流水线控制旁路子单元、完成乘法运算的乘法运算子单元、完成逻辑运算的算术逻辑子单元和控制目标寄存器的目标寄存器写使能信号产生子单元。
7.根据权利要求1所述的微处理器,其特征在于,所述D单元包括完成对接收的指令进行解码的解码子单元、根据解码后的指令选择操作数的操作数选择子单元、完成逻辑运算的算术逻辑子单元和控制目标寄存器的目标寄存器写使能信号产生子单元。
8.根据权利要求1所述的微处理器,其特征在于,所述F单元包括完成对接收的指令进行解码的解码子单元、控制流水线执行过程的流水线控制旁路子单元、完成乘法运算的乘法运算子单元、完成除法运算的除法运算子单元、完成开方运算的开平方运算子单元、完成逻辑运算的算术逻辑子单元和控制目标寄存器的目标寄存器写使能信号产生子单元。
9.根据权利要求1所述的微处理器,其特征在于,所述微处理器的指令采用32位编码,所述指令包括定点数指令、浮点数指令、定点向量指令和浮点向量指令。
10.根据权利要求9所述的微处理器,其特征在于,所述微处理器的指令的高两位为用于指令并行判决的功能单元选择位,所述指令并行判决包括对于一个执行包内的指令的高两位按照指令顺序排列,如果所述功能单元选择位相同的指令个数小于等于2,则所述功能单元选择位相同的指令并行执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010033646 CN101751244B (zh) | 2010-01-04 | 2010-01-04 | 微处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010033646 CN101751244B (zh) | 2010-01-04 | 2010-01-04 | 微处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101751244A true CN101751244A (zh) | 2010-06-23 |
CN101751244B CN101751244B (zh) | 2013-05-08 |
Family
ID=42478265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010033646 Active CN101751244B (zh) | 2010-01-04 | 2010-01-04 | 微处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101751244B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901130A (zh) * | 2010-07-26 | 2010-12-01 | 清华大学 | 一种指令分配和预处理指令译码的装置 |
CN102063287A (zh) * | 2011-01-06 | 2011-05-18 | 清华大学 | 一种处理器的指令执行结果存储结构 |
CN102681822A (zh) * | 2011-03-17 | 2012-09-19 | 中兴通讯股份有限公司 | 一种处理器地址缓冲管理的实现装置及方法 |
CN102799418A (zh) * | 2012-08-07 | 2012-11-28 | 清华大学 | 融合了顺序和vliw的处理器体系结构及指令执行方法 |
CN103988171A (zh) * | 2011-12-13 | 2014-08-13 | 国际商业机器公司 | 使用大和小浮点值二者来执行算术运算 |
CN104794630A (zh) * | 2015-03-12 | 2015-07-22 | 杨子武 | 一种电子商务职业经纪系统 |
CN104916311A (zh) * | 2014-03-11 | 2015-09-16 | 爱思开海力士有限公司 | 电子装置 |
CN105426161A (zh) * | 2015-11-12 | 2016-03-23 | 天津大学 | 一种power指令集向量协处理器的译码电路 |
CN105573959A (zh) * | 2016-02-03 | 2016-05-11 | 清华大学 | 一种计算存储一体的分布式计算机架构 |
CN107077322A (zh) * | 2014-11-03 | 2017-08-18 | Arm 有限公司 | 用于执行转换运算的装置和方法 |
CN108647044A (zh) * | 2011-12-28 | 2018-10-12 | 英特尔公司 | 浮点缩放处理器、方法、系统和指令 |
CN109739556A (zh) * | 2018-12-13 | 2019-05-10 | 北京空间飞行器总体设计部 | 一种基于多并行缓存交互及计算的通用深度学习处理器 |
CN109960188A (zh) * | 2017-12-26 | 2019-07-02 | 宁波菲仕运动控制技术有限公司 | 一种通用伺服控制处理器 |
CN111078288A (zh) * | 2019-11-21 | 2020-04-28 | 中国航空工业集团公司西安航空计算技术研究所 | 一种命令处理器中risc核存储访问指令电路 |
CN111078190A (zh) * | 2019-11-13 | 2020-04-28 | 珠海格力电器股份有限公司 | 一种小型plc的单精度浮点数算术运算控制系统及方法 |
US11169802B2 (en) | 2016-10-20 | 2021-11-09 | Intel Corporation | Systems, apparatuses, and methods for fused multiply add |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1266592C (zh) * | 2003-11-26 | 2006-07-26 | 中国人民解放军国防科学技术大学 | 依据确定延迟的动态vliw指令调度方法 |
CN100514281C (zh) * | 2004-03-03 | 2009-07-15 | 浙江大学 | 一种应用于数字信号处理器流水线中的数据旁路系统 |
CN101256546A (zh) * | 2007-03-01 | 2008-09-03 | 黄新亚 | 32位微处理器 |
-
2010
- 2010-01-04 CN CN 201010033646 patent/CN101751244B/zh active Active
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901130A (zh) * | 2010-07-26 | 2010-12-01 | 清华大学 | 一种指令分配和预处理指令译码的装置 |
CN101901130B (zh) * | 2010-07-26 | 2014-01-08 | 清华大学 | 一种指令分配和预处理指令译码的装置 |
CN102063287A (zh) * | 2011-01-06 | 2011-05-18 | 清华大学 | 一种处理器的指令执行结果存储结构 |
CN102681822B (zh) * | 2011-03-17 | 2016-06-15 | 中兴通讯股份有限公司 | 一种处理器地址缓冲管理的实现装置及方法 |
US9389859B2 (en) | 2011-03-17 | 2016-07-12 | Zte Corporation | Device and method for implementing address buffer management of processor |
CN102681822A (zh) * | 2011-03-17 | 2012-09-19 | 中兴通讯股份有限公司 | 一种处理器地址缓冲管理的实现装置及方法 |
CN103988171A (zh) * | 2011-12-13 | 2014-08-13 | 国际商业机器公司 | 使用大和小浮点值二者来执行算术运算 |
CN103988171B (zh) * | 2011-12-13 | 2016-10-12 | 国际商业机器公司 | 在数据处理系统中用于执行浮点算术运算的方法和装置 |
US9665346B2 (en) | 2011-12-13 | 2017-05-30 | International Business Machines Corporation | Performing arithmetic operations using both large and small floating point values |
CN108647044B (zh) * | 2011-12-28 | 2022-09-13 | 英特尔公司 | 浮点缩放处理器、方法、系统和指令 |
CN108647044A (zh) * | 2011-12-28 | 2018-10-12 | 英特尔公司 | 浮点缩放处理器、方法、系统和指令 |
CN102799418A (zh) * | 2012-08-07 | 2012-11-28 | 清华大学 | 融合了顺序和vliw的处理器体系结构及指令执行方法 |
CN104916311A (zh) * | 2014-03-11 | 2015-09-16 | 爱思开海力士有限公司 | 电子装置 |
CN104916311B (zh) * | 2014-03-11 | 2019-01-11 | 爱思开海力士有限公司 | 电子装置 |
CN107077322A (zh) * | 2014-11-03 | 2017-08-18 | Arm 有限公司 | 用于执行转换运算的装置和方法 |
CN107077322B (zh) * | 2014-11-03 | 2021-07-09 | Arm 有限公司 | 用于执行转换运算的装置和方法 |
CN104794630A (zh) * | 2015-03-12 | 2015-07-22 | 杨子武 | 一种电子商务职业经纪系统 |
CN105426161A (zh) * | 2015-11-12 | 2016-03-23 | 天津大学 | 一种power指令集向量协处理器的译码电路 |
CN105426161B (zh) * | 2015-11-12 | 2017-11-07 | 天津大学 | 一种power指令集向量协处理器的译码电路 |
CN105573959B (zh) * | 2016-02-03 | 2018-10-19 | 清华大学 | 一种计算存储一体的分布式计算机 |
CN105573959A (zh) * | 2016-02-03 | 2016-05-11 | 清华大学 | 一种计算存储一体的分布式计算机架构 |
US11526353B2 (en) | 2016-10-20 | 2022-12-13 | Intel Corporation | Systems, apparatuses, and methods for fused multiply add |
US11169802B2 (en) | 2016-10-20 | 2021-11-09 | Intel Corporation | Systems, apparatuses, and methods for fused multiply add |
TWI761367B (zh) * | 2016-10-20 | 2022-04-21 | 美商英特爾股份有限公司 | 用於融合乘加運算的系統、裝置及方法 |
US11507369B2 (en) | 2016-10-20 | 2022-11-22 | Intel Corporation | Systems, apparatuses, and methods for fused multiply add |
US11526354B2 (en) | 2016-10-20 | 2022-12-13 | Intel Corporation | Systems, apparatuses, and methods for fused multiply add |
US11544058B2 (en) | 2016-10-20 | 2023-01-03 | Intel Corporation | Systems, apparatuses, and methods for fused multiply add |
US11782709B2 (en) | 2016-10-20 | 2023-10-10 | Intel Corporation | Systems, apparatuses, and methods for addition of partial products |
CN109960188A (zh) * | 2017-12-26 | 2019-07-02 | 宁波菲仕运动控制技术有限公司 | 一种通用伺服控制处理器 |
CN109739556B (zh) * | 2018-12-13 | 2021-03-26 | 北京空间飞行器总体设计部 | 一种基于多并行缓存交互及计算的通用深度学习处理器 |
CN109739556A (zh) * | 2018-12-13 | 2019-05-10 | 北京空间飞行器总体设计部 | 一种基于多并行缓存交互及计算的通用深度学习处理器 |
CN111078190A (zh) * | 2019-11-13 | 2020-04-28 | 珠海格力电器股份有限公司 | 一种小型plc的单精度浮点数算术运算控制系统及方法 |
CN111078190B (zh) * | 2019-11-13 | 2021-06-18 | 珠海格力电器股份有限公司 | 一种小型plc的单精度浮点数算术运算控制系统及方法 |
CN111078288A (zh) * | 2019-11-21 | 2020-04-28 | 中国航空工业集团公司西安航空计算技术研究所 | 一种命令处理器中risc核存储访问指令电路 |
Also Published As
Publication number | Publication date |
---|---|
CN101751244B (zh) | 2013-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101751244B (zh) | 微处理器 | |
CN102750133B (zh) | 支持simd的32位三发射的数字信号处理器 | |
US10713059B2 (en) | Heterogeneous graphics processing unit for scheduling thread groups for execution on variable width SIMD units | |
CN102004719B (zh) | 支持同时多线程的超长指令字处理器结构 | |
US20170315812A1 (en) | Parallel instruction scheduler for block isa processor | |
CN103150146B (zh) | 基于可扩展处理器架构的专用指令集处理器及其实现方法 | |
CN101802779B (zh) | 具有可重新组构的浮点单元的处理器 | |
CN113032012B (zh) | 用于低能加速器处理器架构的设备 | |
US20200334197A1 (en) | Low Energy Accelerator Processor Architecture with Short Parallel Instruction Word | |
KR20170110684A (ko) | 묵시적으로 분류된 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 | |
JP2012174016A (ja) | データ処理装置およびそのデータ処理方法 | |
KR20150005062A (ko) | 미니-코어를 사용하는 프로세서 | |
CN101495959A (zh) | 组合微处理器内的多个寄存器单元的方法和系统 | |
US11847427B2 (en) | Load store circuit with dedicated single or dual bit shift circuit and opcodes for low power accelerator processor | |
US11726912B2 (en) | Coupling wide memory interface to wide write back paths | |
US6341300B1 (en) | Parallel fixed point square root and reciprocal square root computation unit in a processor | |
CN102576302A (zh) | 微处理器及用于微处理器上增强精确度乘积和计算的方法 | |
CN102411490B (zh) | 一种针对动态可重构处理器的指令集的优化方法 | |
JP2021152868A (ja) | 行列乗算を加速する方法、装置、製造物品 | |
Song et al. | Gpnpu: Enabling efficient hardware-based direct convolution with multi-precision support in gpu tensor cores | |
CN112074810B (zh) | 并行处理设备 | |
Lin et al. | A unified processor architecture for RISC & VLIW DSP | |
Ezer | Xtensa with user defined DSP coprocessor microarchitectures | |
Karlsson et al. | ePUMA: A unique memory access based parallel DSP processor for SDR and CR | |
CN108845832B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |