CN101178644B - 一种基于复杂指令集计算机结构的微处理器架构 - Google Patents
一种基于复杂指令集计算机结构的微处理器架构 Download PDFInfo
- Publication number
- CN101178644B CN101178644B CN2006101182746A CN200610118274A CN101178644B CN 101178644 B CN101178644 B CN 101178644B CN 2006101182746 A CN2006101182746 A CN 2006101182746A CN 200610118274 A CN200610118274 A CN 200610118274A CN 101178644 B CN101178644 B CN 101178644B
- Authority
- CN
- China
- Prior art keywords
- instruction
- register
- data
- address
- architecture design
- 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.)
- Expired - Fee Related
Links
- 230000006870 function Effects 0.000 claims abstract description 13
- 238000004891 communication Methods 0.000 claims abstract description 8
- 238000013461 design Methods 0.000 claims description 23
- 238000000034 method Methods 0.000 claims description 11
- 238000006073 displacement reaction Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000000605 extraction Methods 0.000 claims description 2
- 238000010977 unit operation Methods 0.000 claims description 2
- 230000002093 peripheral effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 2
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 2
- 102100040856 Dual specificity protein kinase CLK3 Human genes 0.000 description 2
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 2
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 2
- 101000749304 Homo sapiens Dual specificity protein kinase CLK3 Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101001013167 Argopecten irradians Myosin essential light chain, striated adductor muscle Proteins 0.000 description 1
- 101100446688 Caenorhabditis elegans fld-1 gene Proteins 0.000 description 1
- 101000686034 Homo sapiens Nuclear receptor ROR-gamma Proteins 0.000 description 1
- 101000686909 Homo sapiens Resistin Proteins 0.000 description 1
- 101001013166 Mizuhopecten yessoensis Myosin, essential light chain, adductor muscle Proteins 0.000 description 1
- 102100023421 Nuclear receptor ROR-gamma Human genes 0.000 description 1
- 101150013395 ROLC gene Proteins 0.000 description 1
- 102100024735 Resistin Human genes 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
一种基于复杂指令集计算机结构的微处理器架构,包括程序存储器,随机数据存储器,特殊功能寄存器,数据缓冲寄存器,通用寄存器,数据总线和地址总线,存储器接口,运算和控制模块,指令读取及译码器,指令队列控制模块,所述的数据总线分为各自分离的8位程序数据总线和8位内部随机数据总线。本发明适用于实时控制各类嵌入式、SOC系统,可广泛应用于家电、民用通信、汽车电子等电子产品中。
Description
技术领域
本发明涉及微处理器领域,特别是涉及一种基于CISC(ComplexInstruction Set Computer,复杂指令集计算机)结构的微处理器架构。
背景技术
20世纪80年代以来,随着计算机嵌入式系统的广泛应用,微处理器得到了飞速的发展。早期的单片机是按照嵌入式应用技术要求设计的计算机的单芯片化集成电路器件,也就是电子计算机的全部特性器件都集成到一片芯片上,故被形象的称为单片机。微处理器最大的特点是单片化,体积小,从而使功耗和成本下降。目前的微处理器是以某一种微处理器内核为核心,芯片内部集成程序存储器,数据存储器,数据和地址总线、定时计数器、看门狗、输入/输出端口、同步串行传输口、模/数、数/模、液晶显示器驱动、通用异步串行传输口等各种必要的外设。针对不同的应用领域,微处理器可以有各种不同的外设资源和封装形式。所以微处理器有很强的适应性和广泛的应用性,是目前嵌入式系统应用市场的主流。
以CPU架构而言,微处理器可分为RISC(Reduced Instruction SetComputer,精简指令集计算机)和CISC(Complex Instruction Set Computer,复杂指令集计算机)两大主流。RSIC指令集的指令相对较少,执行速度快,但通常需要多个指令组合才能完成功能的实现,这样就需要较多的编译时间来 执行。CISC指令集的指令丰富,功能较为强大。CISC体系丰富的指令集便于实现复杂的功能任务。
传统的基于CISC体系的微处理器的主要缺点有:多数指令的利用率不高;指令的运行效率低,难以满足快速处理的应用需求。
发明内容
本发明的目的在于提供一种基于复杂指令集计算机结构的微处理器架构,使得指令更为丰富,可扩展性更强,同时使指令处理速度加快,在一定程度上弥补了CISC微处理器指令集利用率不高、执行效率低的缺点。
为达到上述目的,本发明的技术方案如下:该微处理器包括程序存储器,随机数据存储器,特殊功能寄存器,数据缓冲寄存器,通用寄存器,数据总线和地址总线,存储器接口,运算和控制模块,指令读取及译码器,指令队列控制模块,所述的数据总线分为各自分离的8位程序数据总线和8位内部随机数据总线。
进一步地,所述的运算控制单元包括算术逻辑单元,移位控制单元和十进制调整单元。
进一步地,所述的存储器接口控制单元包括程序计数器,地址寄存器,存储器地址的产生电路,和数据的读写功能的电路。
进一步地,所述的指令读取及译码器包括对指令的译码和CPU核中其他单元的控制。
进一步地,所述的程序存储器,随机数据存储器,特殊功能寄存器和数据缓冲寄存器区域是空间独立的,利用地址映射电路将他们的地址映射在连续的空间上,并具有可扩展性。
进一步地,所述的微处理器的指令集共有220条基本指令,支持各类常见的微处理器指令,包括数据传送交换、算术逻辑运算、乘除法运算、比较、移位循环、半字节操作、位操作、跳转、调用返回、进栈出栈、空操作和软中断等指令,指令执行的周期为1~8个机器周期,指令集具有相应的可扩展性。
进一步地,所述的指令集包括42条数据传送指令,每条指令有其唯一的操作码识别,指令实现将源地址的数据传送到目的地址中,由于源地址和目的地址可以是多种寻址方式,使得每条指令包含1~4个字节不等的指令编码,产生一类控制信号控制完成:a.控制有关寄存器将数据传送至通用算术逻辑单元b.控制通用算术逻辑单元完成地址的计算c.控制从源地址提取数据d.控制数据写入目的地址。
进一步地,所述的指令集包括70条算术逻辑运算指令,每条指令有其唯一的操作码识别,指令实现将源地址的数据与目的地址的数据进行算术或逻辑运算,每条指令包含1~4个字节不等的指令编码,产生一类控制信号控制完成:a.控制有关寄存器将地址数据传送至通用算术逻辑单元b.控制通用算术逻辑单元完成地址的计算c.控制从源地址和目的地址提取数据传送至通用算术逻辑单元d.控制通用算术逻辑单元执行指令要求的算术逻辑操作e.控制将运算的结果写入目的寄存器。
进一步地,所述的指令集包括2条乘除法指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现寄存器y与累加器a中的无符号数相乘并回写结果,指令实现寄存器对y、a与寄存器b中的无符号数相除并回写。
进一步地,所述的指令集包括12条比较指令,每条指令有其唯一的操作 码识别,指令实现将源地址的数据与目的地址的数据进行比较,每条指令包含1~4个字节不等的指令编码,产生一类控制信号控制完成:a.控制有关寄存器将地址数据传送至通用算术逻辑单元b.控制通用算术逻辑单元完成地址的计算c.控制从源地址和目的地址提取数据传送至通用算术逻辑单元d.控10制通用算术逻辑单元执行减法操作e.控制将减法的结果设置标志寄存器。
进一步地,所述的指令集包括16条循环移位和半字节操作指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现寄存器或者寄存器与内存的数据的移位或者半字节移位。
进一步地,所述的指令集包括48条位操作指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现对寄存器或者内存单元数据的位进行设置和运算。
进一步地,所述的指令集包括4条跳转指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令根据偏移量实现程序的跳转。
进一步地,所述的指令集包括10条调用、返回指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,根据不同的寻址方式,指令实现子程序的调用和返回。
进一步地,所述的指令集包括4条进栈退栈指令,产生控制信号,指令实现对程序状态字和寄存器内容的压栈和出栈。
进一步地,所述的指令集包括1条软中断指令,产生控制信号,指令实现软件中断。
进一步地,所述的指令集包括1条空操作指令,产生控制信号,指令实现空操作。
进一步地,所述的读入的指令通过所述的指令读取及译码器分解,按分解后的微指令码进行译码,并执行相应的操作,根据寻址方式不同,译码后将操作数或者操作码分别存储于不同的操作数寄存器、微指令码寄存器、内存或者特殊的寄存器。
进一步地,所述不同的寻址方式按寻址类型分别为立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、相对寻址、绝对寻址、向量寻址、直接位寻址和存储器位寻址共9种类型。
进一步地,所述指令执行的顺序是在时钟的第一相读入指令码并译码,同时处理中断等,第二相读内存单元或者寄存器的数据并存储,第三相执行通用算术逻辑单元操作,完成指令要求的各种运算或者偏移量的计算,第四相将指令运算得的结果写入内存及相关寄存器,同时在每一相时钟内进行相关标志位的设置和指令周期计算的操作。
进一步地,所述中断处理的方式为当中断请求发生时,置位中断锁存器,在前一条指令执行的第四相时钟时检测中断锁存器,响应中断,并清零中断使能标志和中断锁存器,程序计数器在中断程序执行前后自动压栈和出栈;所述的中断的种类包括软件中断、外部中断、定时器中断、看门狗中断、串行接口中断、异步传送接口中断、地址陷阱中断,中断可嵌套。除了软件中断,看门狗中断和地址陷阱中断外,可对中断请求进行屏蔽。
本发明在复杂指令集的基础上,实现方式做了较大改进,使得指令更为丰富,具备更佳的可扩展性。同时,数据线和指令线的分离,使指令处理速度加快,在一定程度上弥补了CISC微处理器指令集过于庞大、执行效率低的缺点。本发明的微处理器支持220条指令,可配置合适的外围资源,适用于各类实时控制嵌入式、SOC系统,可广泛应用于家电、民用通信、汽车电子 等电子产品中。
附图说明
图1是本发明微处理器的内部结构示意图;
图2是本发明微处理器的指令执行硬件结构示意图;
图3是本发明微处理器的指令执行节拍流程示意图;
图4是本发明微处理器的中断处理过程示意图;
图5是本发明微处理器和外围资源的整体结构示意图。
具体实施方式
下面结合附图对本发明做具体细节说明。
如图1为本发明微处理器的内部结构。外部时钟发生器提供基本时钟,分频产生内核需要的时钟信号。程序存储器和数据存储器有各自的数据总线。指令读取及译码器具有指令译码和控制微处理器内核其他模块的功能。运算控制模块包括算术逻辑单元,移位控制单元和十进制调整单元。PSW为程序状态字,存储的是程序的一些标志位,包括JF,ZF,CF,HF,SF,VF。JF为跳转标志位,ZF为零标志位,CF位进位标志位,HF为半进位标志位,SF为符号标志位,VF为溢出标志位。
所述的流水线指令结构为单级四段流水线指令结构,程序执行首先读取指令码,然后译码。译码是根据微码的定义,以及寻址方式的不同,将操作数或者操作码分别存储于操作数寄存器、微指令码寄存器、内存或者特殊功能寄存器。根据译码后得到的指令的类型,将操作数或者需要计算的地址送入运算控制单元进行运算。然后存储运算的结果,写入寄存器或者内存单元。 然后再读入下一字节的指令,进行译码、ALU运算、回写存储数据,以此类推,直到指令结束。由于本微处理器的指令集为变长的CISC指令,每条指令长度不同,指令周期从1个机器周期到8个机器周期不等。在指令执行的过程中,要对每条指令所执行的机器周期和程序计数器进行计数,以控制指令的运行。
如图2为本发明微处理器的指令执行硬件结构。首先根据复位向量找到程序的入口地址,程序计数器指向程序存储器的程序入口单元,从程序存储器读入指令,送到两级指令队列控制器中的指令存储寄存器,然后在两级指令队列控制器中的指令译码器中进行译码。如果是操作码,存入操作码寄存器;如果是操作数,根据对操作码的判断确定是写入数据存储器还是要作为立即数送入ALU进行运算。数据准备好后,即可进行ALU运算操作。运算的结果存入寄存器或者数据存储器单元。当执行调用、返回等指令时,会对程序指针进行压栈和出栈操作;执行跳转等指令时,有指针偏移操作;同时在每读下一字节指令时,会对程序计数器有加1的操作。这些构成程序计数器的来源,也是确保程序正常执行的重要因素之一。
如图3为本发明微处理器的指令执行节拍流程。由主时钟分频后获得的四相时钟(CLK0、CLK1、CLK2和CLK3)来控制。每个机器周期根据4相时钟分为4个节拍,每一节拍对应一相时钟。对读入的每个微码在4相时钟分别执行以下操作:CLK0取指译码、CLK1读所需要的寄存器中的数据、CLK2进行ALU运算、CLK3存储运算结果(包括调整程序计数器指针)。同时,根据微码判断并记录当前指令总的周期数,并在读入指令下一个字节的时候递加,调整程序计数器,直至当前指令的最后一个周期,指向下一条指令,标志位清零,开放中断,开始执行下一条指令。如此循环操作,直到程序结 束。
本发明的微处理器包括软件中断,地址陷阱中断,看门狗中断,定时器中断和外部中断等基本中断。其中软件中断,地址陷阱中断和看门狗中断为不可屏蔽中断。当有中断请求时,设置中断请求标志并锁存在中断锁存器中,同时自动程序计数器压栈。执行完当前指令后,响应中断,设置中断使能标志,使响应当前中断过程中禁止可屏蔽中断。中断执行完或复位后,开放锁存。如图4为本发明微处理器的中断处理过程。
本发明微处理器可扩展各类通用的外设和通讯接口,包括同步/异步串行接口、A/D转换器、定时计数器、LCD驱动器等,同时也可根据微码定义对220条指令进行扩展。一种典型的微处理器外设资源的应用实现方式如图5所示。图5是本发明微处理器和外围资源的整体结构示意图,在这个实施例中,整体结构大致包括总线以及前面提到的各种外设和通信接口,以及控制模块和时钟、定时器模块。
时钟发生器产生基本时钟,通过时序发生器分频产生主系统时钟和外围设备的工作时钟。可输出所需要的分频脉冲到外部端口上,并产生基本定时、串口、控制电路等系统所需要的各种时钟。空闲状态控制器转换微处理器的工作状态,进入各种空闲和睡眠模式。CPU为本发明的核心部分,如图1所示,包括运算和控制单元,指令读取及译码器,指令队列控制模块,存储器接口控制模块,特殊功能寄存器,数据缓冲寄存器,通用寄存器等。系统上电复位后,根据复位指针从程序存储器中找到程序的入口地址,以字节为单位读入要执行的指令并存储。然后对指令进行译码。译码时根据微码的定义,执行相应的操作。表1是对每个微码含义的解释。
二进制微码 | 指令 | 二进制微码 | 指令 |
00000000 | NOP | 00rrraaa | ALUOP r,g |
00000100 | CLR CF | 01000rrr | MV r,g |
00000101 | SET CF | 01001rrr | MV rr,gg |
00000110 | CPL CF | 01010bbb | XOR CF,g.b |
00000111 | CMP(x),n | 01011bbb | MV CF,g.b |
00001000 | MVW(x),mn | 01100aaa | ALUOP g,n |
00001001 | MVW(HL),mn | 01101aaa | ALUOP gg,mn |
00001010 | MV(x),n | 01110rrr | XCH r,g |
00001011 | MV(HL),n | 01111rrr | XCH rr,gg |
00001100 | MV A,(x) | 10rrraaa | ALUOP rr,gg |
00001101 | MV A,(HL) | 11000bbb | SET g.b |
00001110 | MV(x),A | 11001bbb | CLR g.b |
00001111 | MV(HL),A | 11010ccc | JR ccc,$+3+d |
00010rrr | MV A,r | 11011000 | PUSH gg |
00011rrr | MV r,n | 11011001 | POP gg |
00100rrr | INC r | 11011010 | DAA g |
00101rrr | DEC r | 11011011 | DAS g |
00110rrr | INC rr | 11011100 | PUSH PSW |
00110111 | MV SP,SP+d | 11011101 | POP PSW |
00111rrr | DEC rr | 11011110 | MV PSW,n |
00111111 | MV SP,SP-d | 11100bbb | CPL g.b |
01000rrr | MV r,A | 11101bbb | MV g.b,CF |
01001rrr | MV rr,mn | 11110000 | SHLCA gg |
01001111 | SRCOP(PC+A) | 11110001 | SHRCA gg |
010100rr | PUSH rr | 11110010 | MUL ggh,ggl |
010101rr | DStop(rr+d) | 11110011 | DIV gg,C |
11110100 | SHLC gg | ||
01011bbb | MV CF,(x).b | 11110101 | SHRC gg |
01100aaa | ALUOP A,n | 11110110 | ROLC gg |
0111nnnn | CALV n | 11110111 | RORC gg |
100ddddd | JS T,$+2+d | 11111010 | NEG CS,gg |
101ddddd | JS F,$+2+d | 11111011 | RETN |
11000bbb | SET(x).b | 11111101 | CAL gg |
11001bbb | CLR(x).b | 11111110 | JP gg |
110100rr | POP rr | 11111111 | SXYP g |
110101rr | SRCOP(rr+d) | 00rrraaa | ALUOP r,(src) |
11011ccc | JR cc,$+2+d | 01000rrr | MV r,(src) |
11100000 | SRCOP(x) | 01001rrr | MV rr,(src) |
11100001 | SRCOP(vw) | 01010bbb | XOR CF,(src).b |
11100010 | SRCOP(DE) | 01011bbb | MV CF,(src).b |
11100011 | SRCOP(HL) | 01100aaa | ALUOP(src),n |
11100100 | SRCOP(IX) | 01110rrr | XCH r,(src) |
11100101 | SRCOP(IY) | 10rrraaa | ALUOP rr,(src) |
11100110 | SRCOP(+SP) | 11000bbb | SET(src).b |
11100111 | SRCOP(HL+C) | 11001bbb | CLR(src).b |
11101ggg | REGOP g/gg | 11011rrr | XCH rr,(src) |
11110000 | DStop(x) | 11100bbb | CPL(src).b |
11110001 | DStop(vw) | 11101bbb | MV(src).b,CF |
11110010 | DStop(DE) | 11110000 | INC(src) |
11110011 | DStop(HL) | 11110010 | SET(src).A |
11110100 | DStop(IX) | 11110011 | MV(src).A,CF |
11110101 | DStop(IY) | 11110110 | ROMV A,(src) |
11110110 | DStop(SP-) | 11110111 | RORD A,(src) |
11110111 | DStop(HL+C) | 11111000 | DEC(src) |
11111010 | RET | 11111010 | CLR(src).A |
11111011 | RETI | 11111011 | CPL(src).A |
11111100 | JR $+2+d | 11111100 | MV CF,(src).A |
11111101 | CAL mn | 11111101 | CAL(src) |
11111110 | JP mn | 11111110 | JP(src) |
11111111 | SWI | 01101rrr | MV(dst),rr |
11111001 | MV(dst),n | 01111rrr | MV(dst),r |
表1
本发明的微处理器的指令长度为1~4个字节,执行周期为1~8个机器 周期。根据译码结果,将寻址方式分为立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、相对寻址、绝对寻址、向量寻址、直接位寻址和存储器位寻址共9种类型。如图2所示,译码后提取出立即数或者寄存器信息或者内存的直接地址,通过多路选择器进入ALU进行运算,结果输出到RAM或者相应的寄存器单元。除程序计数器加1以外,根据不同的指令对程序计数器指针进行调整,包括偏移量寻址、内部堆栈的地址、跳转指令的地址等。在指令读取及译码器中对读入的微码进行辨识以后,除了对当前操作码或者立即数进行相应的操作以外,还要判断指令总的执行周期数并记录,以此作为标志判断指令是否执行完毕,是否需要清除或者设置相应的标志寄存器,以保证系统执行时序的正确性。UART为异步传送模块,本系统采用了两个这样的模块进行数据的接受和发送。为监视定时器,当CPU处于死机时,会产生复位,跳出死循环。ADC为模拟数字转换器,本系统为10位8通道的逐次逼近ADC。中断控制器为处理中断相应模块。当中断请求发生并向CPU申请中断响应时,置位中断锁存器,在上一条指令执行的第四相时钟时检测中断锁存器,发现有中断,响应中断,清中断使能标志和中断锁存器,程序计数器自动压栈,根据向量地址表读中断服务程序的入口地址,写入程序计数器,然后执行中断服务程序。返回后,原来的程序计数器指针自动出栈,继续执行主程序。其时序图见图4所示。
具体的应用如图5所示,TC1为16位定时计数器,TC3、TC4为两个8位定时计数器,也可一起作为16位定时器使用。串口为时钟同步串行接口,用于器件之间的通信。本系统的程序存储器使用的是FLASH ROM,大小为32K字节。随机数据存储器RAM为1536个字节的SRAM。程序存储器、随机数据存储器、特殊功能寄存器和数据缓冲寄存器可连续寻址,便于访问。 通过地址映射电路可以连续的寻址64K地址空间。
本微处理器为CISC结构,支持各类常见的微处理器指令。本发明的微处理器的指令集共有220条基本指令,支持各类常见的微处理器指令,包括数据传送交换、算术逻辑运算、乘除法运算、比较、移位循环、半字节操作、位操作、跳转、调用返回、进栈出栈、空操作和软中断等指令,指令执行的周期为1~8个机器周期。根据微码的定义,指令集具有相应的可扩展性。指令的微码为二进制8位代码和1位的前缀码,1位前缀码将指令微码分为四类:0表示无特定前缀操作微码(none);1表示寄存器操作微码(regop);2表示源操作微码(src);3表示目标操作微码(dstop);4表示reset指令。例如:
0_00001010:MV(x),n前缀=0(none),指令微码=00001010(0x0A)
1_01101101:XOR gg,mn前缀=1(regop),指令微码=01101101(0x6D)
表2为标识位一栏为对标志位影响的操作结果。标识位栏中的各项含义如表2所示。
标识位 | JF | ZF | CF | HF | SF | VF |
fHLD | - | - | - | - | - | - |
fJF1 | 1 | - | - | - | - | - |
fCLRCF | ~c | - | 0 | - | - | - |
fSETCF | ~c | - | 1 | - | - | - |
fCPLCF | ~c | - | ~CF | - | - | - |
fXORCF | ~c | - | ^~aluz | - | - | - |
fLDCF | ~c | - | ~aluz | - | - | - |
fLD | 1 | aluz | - | - | - | - |
fLOGIC | z | aluz | - | - | - | - |
fLOGMS | z | &aluz | - | - | - | - |
fCMP | z | aluz | aluc | aluh | alus | aluv |
fCMPMS | z | &aluz | aluc | aluh | alus | aluv |
fINC | aluc | aluz | - | - | - | - |
fINCMS | aluc | &aluz | - | - | - | - |
fALU | aluc | aluz | aluc | aluh | alus | aluv |
fALUMS | aluc | &aluz | aluc | aluh | alus | aluv |
fDAX | aluc | aluz | aluc | aluh | - | - |
fSHF1 | shfc | shfz | shfc | - | - | - |
fSHF2 | shfc | shfz | shfc | - | shfs | shfv |
fDIV | aluc | - | aluc | - | - | - |
表2
其中“-”表示保持原来的值,“~c”表示标志位的值取为CF的相反值。“z”表示标志位的值取为ZF的值。“&aluz”表示标志位的值取为与ZF相与结果的值。“^~aluz”表示标志位的值取为与ZF相异或非结果的值。
以上是对本发明的详细介绍,任何对本发明的装置做本技术领域内熟知的部件的替换、组合、分立均不超出本发明的保护范围。
Claims (19)
1.一种基于复杂指令集计算机结构的微处理器架构,其特征在于:该微处理器包括程序存储器,随机数据存储器,特殊功能寄存器,数据缓冲寄存器,通用寄存器,数据总线和地址总线,存储器接口,运算和控制模块,指令读取及译码器,指令队列控制模块,所述的数据总线分为各自分离的8位程序数据总线和8位内部随机数据总线;
该微处理器的指令集共有220条基本指令,支持各类常见的微处理器指令,包括数据传送交换、算术逻辑运算、乘除法运算、比较、移位循环、半字节操作、位操作、跳转、调用返回、进栈出栈、空操作和软中断指令,指令执行的周期为1~8个机器周期,指令集具有相应的可扩展性;
中断处理的方式为当中断请求发生时,置位中断锁存器,在前一条指令执行的第四相时钟时检测中断锁存器,响应中断,并清零中断使能标志和中断锁存器,程序计数器在中断程序执行前后自动压栈和出栈;所述的中断的种类包括软件中断、外部中断、定时器中断、看门狗中断、串行接口中断、异步传送接口中断、地址陷阱中断,中断可嵌套,除了软件中断,看门狗中断和地址陷阱中断外,可对中断请求进行屏蔽。
2.如权利要求1所述的微处理器架构,其特征在于:所述的运算和控制模块包括算术逻辑单元,移位控制单元和十进制调整单元。
3.如权利要求1所述的微处理器架构,其特征在于:所述的存储器接口的控制单元包括程序计数器,地址寄存器,存储器地址的产生电路,和数据的读写功能的电路。
4.如权利要求1所述的微处理器架构,其特征在于:所述的指令读取及译码器包括对指令的译码和CPU核中其他单元的控制。
5.如权利要求1所述的微处理器架构,其特征在于:所述的程序存储器,随机数据存储器,特殊功能寄存器和数据缓冲寄存器区域是空间独立的,利用地址映射电路将他们的地址映射在连续的空间上,并具有可扩展性。
6.如权利要求1所述的微处理器架构,其特征在于:所述的指令集包括42条数据传送指令,每条指令有其唯一的操作码识别,指令实现将源地址的数据传送到目的地址中,由于源地址和目的地址可以是多种寻址方式,使得每条指令包含1~4个字节不等的指令编码,产生一类控制信号控制完成:a.控制有关寄存器将数据传送至通用算术逻辑单元b.控制通用算术逻辑单元完成地址的计算c.控制从源地址提取数据d.控制数据写入目的地址。
7.如权利要求1所述的微处理器架构,其特征在于:所述的指令集包括70条算术逻辑运算指令,每条指令有其唯一的操作码识别,指令实现将源地址的数据与目的地址的数据进行算术或逻辑运算,每条指令包含1~4个字节不等的指令编码,产生一类控制信号控制完成:a.控制有关寄存器将地址数据传送至通用算术逻辑单元b.控制通用算术逻辑单元完成地址的计算c.控制从源地址和目的地址提取数据传送至通用算术逻辑单元d.控制通用算术逻辑单元执行指令要求的算术逻辑操作e.控制将运算的结果写入目的寄存器。
8.如权利要求1所述的微处理器架构,其特征在于:所述的指令集包括2条乘除法指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现寄存器y与累加器a中的无符号数相乘并回写结果,指令实现寄存器对y、a与寄存器b中的无符号数相除并回写。
9.如权利要求1所述的微处理器架构,其特征在于:所述的指令集包括12条比较指令,每条指令有其唯一的操作码识别,指令实现将源地址的数据与目的地址的数据进行比较,每条指令包含1~4个字节不等的指令编码,产生一类控制信号控制完成:a.控制有关寄存器将地址数据传送至通用算术逻辑单元b.控制通用算术逻辑单元完成地址的计算c.控制从源地址和目的地址提取数据传送至通用算术逻辑单元d.控制通用算术逻辑单元执行减法操作e.控制将减法的结果设置标志寄存器。
10.如权利要求1所述的微处理器架构,其特征在于:所述的指令集包括16条循环移位和半字节操作指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现寄存器或者寄存器与内存的数据的移位或者半字节移位。
11.如权利要求1所述的微处理器架构,其特征在于:所述的指令集包括48条位操作指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现对寄存器或者内存单元数据的位进行设置和运算。
12.如权利要求1所述的微处理器架构,其特征在于:所述的指令集包括14条跳转指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令根据偏移量实现程序的跳转。
13.如权利要求1所述的微处理器架构,其特征在于:所述的指令集包括10条调用、返回指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,根据不同的寻址方式,指令实现子程序的调用和返回。
14.如权利要求1所述的微处理器架构,其特征在于:所述的指令集包括4条进栈退栈指令,产生控制信号,指令实现对程序状态字和寄存器内容的压栈和出栈。
15.如权利要求1所述的微处理器架构,其特征在于:所述的指令集包括1条软中断指令,产生控制信号,指令实现软件中断。
16.如权利要求1所述的微处理器架构,其特征在于:所述的指令集包括1条空操作指令,产生控制信号,指令实现空操作。
17.如权利要求1所述的微处理器架构,其特征在于:读入的指令通过所述的指令读取及译码器分解,按分解后的微指令码进行译码,并执行相应的操作,根据寻址方式不同,译码后将操作数或者操作码分别存储于不同的操作数寄存器、微指令码寄存器、内存或者特殊的寄存器。
18.如权利要求10所述的微处理器架构,其特征在于:所述不同的寻址方式按寻址类型分别为立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、相对寻址、绝对寻址、向量寻址、直接位寻址和存储器位寻址共9种类型。
19.如权利要求1所述的微处理器架构,其特征在于:指令执行的顺序是在时钟的第一相读入指令码并译码,同时处理中断,第二相读内存单元或者寄存器的数据并存储,第三相执行通用算术逻辑单元操作,完成指令要求的各种运算或者偏移量的计算,第四相将指令运算得的结果写入内存及相关寄存器,同时在每一相时钟内进行相关标志位的设置和指令周期计算的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101182746A CN101178644B (zh) | 2006-11-10 | 2006-11-10 | 一种基于复杂指令集计算机结构的微处理器架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101182746A CN101178644B (zh) | 2006-11-10 | 2006-11-10 | 一种基于复杂指令集计算机结构的微处理器架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101178644A CN101178644A (zh) | 2008-05-14 |
CN101178644B true CN101178644B (zh) | 2012-01-25 |
Family
ID=39404910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101182746A Expired - Fee Related CN101178644B (zh) | 2006-11-10 | 2006-11-10 | 一种基于复杂指令集计算机结构的微处理器架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101178644B (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667114B (zh) * | 2009-09-30 | 2012-07-04 | 西安电子科技大学 | 适于矩阵求逆的超长指令集微处理系统 |
KR20110097447A (ko) * | 2010-02-25 | 2011-08-31 | 삼성전자주식회사 | 인터럽트 프록시 기능을 구비한 시스템 온 칩 및 그에 따른 인터럽트 프록시 처리방법 |
US8539206B2 (en) * | 2010-09-24 | 2013-09-17 | Intel Corporation | Method and apparatus for universal logical operations utilizing value indexing |
CN102591823A (zh) * | 2011-01-17 | 2012-07-18 | 上海华虹集成电路有限责任公司 | 一种具有指令队列功能的Nandflash控制器 |
CN102221987B (zh) * | 2011-05-11 | 2014-10-01 | 西安电子科技大学 | 基于嵌入式专用指令集处理器的指令集编码方法 |
CN103186977B (zh) * | 2011-12-30 | 2016-02-03 | 无锡华润矽科微电子有限公司 | 微处理器中实现遥控信号发射指令控制的电路结构 |
CN103631561B (zh) * | 2012-08-27 | 2017-02-08 | 长沙富力电子科技有限公司 | 一种基于超复杂指令集系统的微处理器架构 |
CN102902644B (zh) * | 2012-09-28 | 2016-02-17 | 忆正科技(武汉)有限公司 | 一种闪存控制器以及闪存控制方法 |
KR20150022241A (ko) * | 2013-08-22 | 2015-03-04 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 |
CN104809073B (zh) * | 2014-01-23 | 2018-05-29 | 比亚迪股份有限公司 | 一种片上系统及其位操作逻辑控制方法 |
CN103970508A (zh) * | 2014-06-04 | 2014-08-06 | 上海航天电子通讯设备研究所 | 一种精简的微处理器ip核 |
CN106447036B (zh) * | 2015-10-08 | 2019-03-15 | 上海兆芯集成电路有限公司 | 执行随机舍入的神经网络单元 |
CN107315566B (zh) * | 2016-04-26 | 2020-11-03 | 中科寒武纪科技股份有限公司 | 一种用于执行向量循环移位运算的装置和方法 |
CN111857821A (zh) * | 2016-04-26 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种用于生成服从一定分布的随机向量装置和方法 |
US10241757B2 (en) * | 2016-09-30 | 2019-03-26 | International Business Machines Corporation | Decimal shift and divide instruction |
DE102017208818A1 (de) | 2017-05-24 | 2018-11-29 | Wago Verwaltungsgesellschaft Mbh | Initialisierung von Datenbusteilnehmern |
CN108416431B (zh) * | 2018-01-19 | 2021-06-01 | 上海兆芯集成电路有限公司 | 神经网络微处理器与宏指令处理方法 |
US20200042322A1 (en) * | 2018-08-03 | 2020-02-06 | Futurewei Technologies, Inc. | System and method for store instruction fusion in a microprocessor |
CN111353595A (zh) * | 2018-12-20 | 2020-06-30 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111290786B (zh) * | 2018-12-12 | 2022-05-06 | 展讯通信(上海)有限公司 | 一种信息处理方法、设备及存储介质 |
CN112130899A (zh) * | 2019-06-25 | 2020-12-25 | 海宁先进半导体与智能技术研究院 | 一种堆栈计算机 |
CN110688304B (zh) * | 2019-08-30 | 2021-04-27 | 中国科学院信息工程研究所 | 处理器指令集的完备性检测方法、装置与电子设备 |
CN111258651B (zh) * | 2020-01-16 | 2022-05-17 | 合肥磐芯电子有限公司 | 一种8位risc-cpu系统 |
CN112463723A (zh) * | 2020-12-17 | 2021-03-09 | 王志平 | 一种微内核阵列的实现方法 |
WO2022174542A1 (zh) * | 2021-02-19 | 2022-08-25 | 华为技术有限公司 | 一种数据处理的方法、装置、处理器和计算设备 |
CN115686635B (zh) * | 2023-01-03 | 2023-04-18 | 杭州米芯微电子有限公司 | 一种无时钟电路的mcu结构以及相应的电子设备 |
CN116227614B (zh) * | 2023-01-17 | 2024-01-26 | 深圳国际量子研究院 | 一种使用指令集的实时微系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1991014225A1 (en) * | 1990-03-15 | 1991-09-19 | Sun Microsystems, Inc. | Apparatus and method for providing a stall cache |
EP0730238A2 (en) * | 1995-03-02 | 1996-09-04 | Motorola, Inc. | Digital signal processor |
US5706423A (en) * | 1994-09-12 | 1998-01-06 | Nec Corporation | Data processor having data bus and instruction fetch bus provided separately from each other |
CN1206145A (zh) * | 1997-06-30 | 1999-01-27 | 索尼公司 | 带有流水线处理电路的信号处理器及其方法 |
CN1285934A (zh) * | 1997-11-03 | 2001-02-28 | 内部技术公司 | 微处理器,尤其用于芯片卡的微处理器 |
US6205536B1 (en) * | 1989-07-05 | 2001-03-20 | Mitsubishi Denki Kabushiki Kaisha | Combined Instruction and address caching system using independent buses |
CN1584824A (zh) * | 2003-08-18 | 2005-02-23 | 上海海尔集成电路有限公司 | 一种基于cisc结构的微处理器构架及指令实现方式 |
-
2006
- 2006-11-10 CN CN2006101182746A patent/CN101178644B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6205536B1 (en) * | 1989-07-05 | 2001-03-20 | Mitsubishi Denki Kabushiki Kaisha | Combined Instruction and address caching system using independent buses |
WO1991014225A1 (en) * | 1990-03-15 | 1991-09-19 | Sun Microsystems, Inc. | Apparatus and method for providing a stall cache |
US5706423A (en) * | 1994-09-12 | 1998-01-06 | Nec Corporation | Data processor having data bus and instruction fetch bus provided separately from each other |
EP0730238A2 (en) * | 1995-03-02 | 1996-09-04 | Motorola, Inc. | Digital signal processor |
CN1206145A (zh) * | 1997-06-30 | 1999-01-27 | 索尼公司 | 带有流水线处理电路的信号处理器及其方法 |
CN1285934A (zh) * | 1997-11-03 | 2001-02-28 | 内部技术公司 | 微处理器,尤其用于芯片卡的微处理器 |
CN1584824A (zh) * | 2003-08-18 | 2005-02-23 | 上海海尔集成电路有限公司 | 一种基于cisc结构的微处理器构架及指令实现方式 |
Also Published As
Publication number | Publication date |
---|---|
CN101178644A (zh) | 2008-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101178644B (zh) | 一种基于复杂指令集计算机结构的微处理器架构 | |
CN100545804C (zh) | 一种基于cisc结构的微控制器及其指令集的实现方法 | |
JP6351682B2 (ja) | 装置および方法 | |
US11714875B2 (en) | Apparatuses, methods, and systems for instructions of a matrix operations accelerator | |
JP5933725B2 (ja) | ベクトル散乱演算機能及びベクトル収集演算機能を提供する命令及びロジック | |
JP5933011B2 (ja) | ストライド機能を有するベクトルロード演算/ストア演算を提供する命令及びロジック | |
US11029958B1 (en) | Apparatuses, methods, and systems for configurable operand size operations in an operation configurable spatial accelerator | |
EP3776229A1 (en) | Apparatuses, methods, and systems for remote memory access in a configurable spatial accelerator | |
TWI541658B (zh) | 資料處理裝置及半導體積體電路裝置 | |
WO2019190687A1 (en) | Apparatus, methods, and systems for integrated performance monitoring in a configurable spatial accelerator | |
WO2020005444A1 (en) | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator | |
KR19980018072A (ko) | 벡터 레지스터의 복수 뱅크를 사용한 단일 명령 복수 데이터 처리 | |
TW201729078A (zh) | 用於以通道為基礎的跨步儲存操作之指令及邏輯 | |
CN110909882A (zh) | 用于执行水平铺块操作的系统和方法 | |
US11907713B2 (en) | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator | |
CN102682232B (zh) | 一种高性能超标量椭圆曲线密码处理器芯片 | |
US6986028B2 (en) | Repeat block with zero cycle overhead nesting | |
JPH081604B2 (ja) | マイクロプロセッサ | |
KR101539173B1 (ko) | 단 정수 곱셈들의 수를 감소시키기 위한 시스템들, 장치들 및 방법들 | |
KR19980018065A (ko) | 스칼라/벡터 연산이 조합된 단일 명령 복수 데이터 처리 | |
CN1203402C (zh) | 一种16位微处理器的系统结构 | |
KR19980018071A (ko) | 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리 | |
CN100430890C (zh) | 一种8位risc微控制器 | |
CN112130899A (zh) | 一种堆栈计算机 | |
CN112149050A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120125 |
|
CF01 | Termination of patent right due to non-payment of annual fee |