CN101339498A - 采用risc结构的单片机 - Google Patents
采用risc结构的单片机 Download PDFInfo
- Publication number
- CN101339498A CN101339498A CNA2007100939274A CN200710093927A CN101339498A CN 101339498 A CN101339498 A CN 101339498A CN A2007100939274 A CNA2007100939274 A CN A2007100939274A CN 200710093927 A CN200710093927 A CN 200710093927A CN 101339498 A CN101339498 A CN 101339498A
- Authority
- CN
- China
- Prior art keywords
- instruction
- module
- state
- address
- clock period
- 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
Images
Landscapes
- Microcomputers (AREA)
Abstract
本发明公开了一种支持MCS-51指令集的单片机,包括:ROM、取指令、RAM、算术逻辑单元、特殊功能寄存器和译码模块等,采用等长指令的方式,并添加3级流水线功能。ROM用来存放用户的应用程序;取指令模块提供程序计数器PC的值给ROM,从ROM中读出应用程序,完成了流水线操作的第1阶段取指令,将应用程序分解成操作码与操作数传输给译码模块;从中断模块接收到中断信号后,返回中断响应信号。译码模块从取指令模块中取出将要执行的操作码与操作数,根据操作码确定对其他模块的控制信号,并完成流水线操作的第2阶段和第3阶段。本发明在保持MCS-51系列单片机指令系统不变的情况下,能够有效地提高指令运行的速度。
Description
技术领域
本发明涉及一种单片微型计算机,特别是涉及一种采用RISC(Reduced Instruction Set Computer精简指令集计算机)结构的单片机,该单片机支持MCS-51系列单片机指令。
背景技术
单片微型计算机简称单片机,是微型计算机的一个重要分支,也是一种非常活跃且颇具生命力的机种。单片机特别适用于控制领域,故又称为微控制器。
MCS-51系列单片机是Intel公司推出的8位单片机,在嵌入式系统与装备制造行业有广泛的应用。随着电子行业的高速发展,各个行业对单片机的运行速度要求越来越高,传统的MCS-51单片机已逐渐不能满足用户的需求。
Intel-MCS51系列单片机的指令处理涉及如下时间概念,时钟周期、机器周期、指令周期。
时钟周期T又称为振荡周期,通常由内部振荡方式和外部振荡方式两种电路形式得到。例如,某单片机使用的时钟频率为1MHz,则它的时钟周期应为1us。
机器周期定义为实现特定功能所需要的时间,通常由若干时钟周期构成。MCS-51系列单片机的机器周期是固定的,均由12个时钟周期T组成,分为6个状态(S1~S6),每个状态又分为P1和P2两拍。因此,一个机器周期中的12个时钟周期可以表示为S1P1,S1P2,S2P1,S2P2,…,S6P2。
指令周期是时序中最大的时间单位,定义为执行一条指令所需要的时间。由于机器执行不同指令所需要的时间不同,因此不同指令所包含的机器周期数也不相同。通常,包含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令,包含四个机器周期的指令称为四周期指令。
Intel-MCS51系列单片机采用的是CISC(Complex Instruction SetComputer复杂指令集计算机),其指令的字节数不固定,分为单字节指令、双字节指令和三字节指令。执行任何一条指令时都可以分为取指令阶段和执行指令阶段。在取指令阶段可以把程序计数器PC中的地址送到程序储存器,并从中取出需要执行指令的操作码和操作数。指令执行阶段可以对指令操作码进行译码,以产生一系列控制信号完成指令的执行。图1给出了MCS-51系列单片机的取指令阶段/执行指令阶段时序。由图1可见,ALE(锁存允许)引脚上出现的信号是周期性的,每个机器周期内出现两次高电平,出现时刻为S1P2和S4P2,持续时间为一个状态S。ALE信号每出现一次,CPU就进行一次取指令操作,但由于不同指令的字节数和机器周期数不同,因此取指令操作也随指令不同而有小的差异。
单字节单指令周期指令的执行时序:这类指令的指令码只有一个字节,存放在程序存储器ROM中,单片机从取出指令码到完成指令的执行仅需要一个机器周期。图1中,单片机在ALE第一次有效(S1P1)时从ROM中读出指令码,把它送到指令寄存器,接着开始执行指令阶段。在执行期间,CPU一方面在ALE第二次有效(S4P2)时封锁程序计数器PC加“1”,使第二次读操作无效;另一方面在时钟周期S6P2时完成指令的执行。这样完成一句单字节单指令周期指令所需要的时间为单片机时钟周期的12倍。
双字节单指令周期指令的执行时序:MCS-51系列单片机在执行这类指令时需要分两次从ROM中读出指令码。图1中,机器在ALE第一次有效(S1P1)时从ROM中读出指令码,CPU进行译码后便知道是双字节指令,故使程序计数器PC加“1”,并在ALE第二次有效时读出指令的第二字节(程序计数器PC加“1”),最后在时钟周期S6P2时完成指令的执行。这样完成一句双字节单周期指令所需要的时间为单片机时钟周期的12倍。
单字节双指令周期指令的执行时序:MCS-51系列单片机在执行这类指令时(参见图1),CPU在机器周期的第一状态S1期间从程序存储器ROM中读出指令操作码,进行译码后便知道是单字节双周期指令,故控制器自动封锁后面的连续三次读操作,并在第二机器周期的时钟周期S6P2时完成指令的执行。这样完成一句单字节双周期指令所需要的时间为单片机时钟周期的24倍。
MCS-51系列单片机的运行速度由于取指令阶段和执行指令阶段的时序一定,因此很难提高其运行速度,无法适应现代技术的发展,满足工控系统对单片机运行速度提高的需求。
要提高现有MCS-51系列单片机运行速度,也可以采用改变指令系统的RISC结构实现,但是人们无法利用以前MCS-51系列单片机的程序资源,而且必须熟悉新的指令系统。因此在人们已经熟悉MCS-51系列单片机指令系统的情况下,不利于与现有技术的兼容和推广应用。
发明内容
本发明要解决的技术问题是提供一种采用RISC结构的单片机,在保持MCS-51系列单片机指令系统不变的情况下,有效地提高指令运行的速度。
为解决上述技术问题,本发明的采用RISC结构的单片机包括:RAM模块,是一个256字节的随机存取存储器;特殊功能寄存器模块,用于实现单片机中特殊功能寄存器的功能;算术逻辑单元模块,用组合逻辑来实现二进制数的算术运算和逻辑操作;算术逻辑单元的操作数选择模块,用来给算术逻辑单元模块提供所要进行计算的数据;进位选择模块,用于给算术逻辑单元模块提供进位信号;间接寻址模块,用于处理指令中含有间接寻址的操作;比较模块,用于处理指令中有比较运算的操作;
其中,采用3级流水线的处理方式处理指令系统;流水线在执行单周期指令的时运行,执行双周期指令和四周期指令时停止;
所述单片机还包括:
ROM模块,用于存放应用程序,能够在一个地址信号输入后,输出4个连续的数据;
取指令模块,与RAM、ROM、特殊功能寄存器和译码模块连接,采用等长指令的方式读取指令;确定单片机程序计数器PC的值;从ROM模块中读出应用程序,完成流水线操作的第1阶段取指令,将应用程序分解成操作码与操作数传输给译码模块;从中断模块接收到中断信号后,返回中断响应信号;
译码模块从取指令模块中取出将要执行的操作码与操作数,根据操作码确定对其他模块的控制信号,并完成流水线操作的第2阶段执行指令和第3阶段回写内存;译码模块中的指令执行状态信号STATE,用于控制各条指令的执行阶段。
本发明的有益效果是,给出了一种兼容已有MCS-51系列单片机程序的单片机实现方式,在没有改变MCS-51系列单片机指令系统的情况下,指令以时钟周期为运行单位,用等长指令的方式读取指令,使用RISC结构,并添加了3级流水线来加快单片机的运行速度。指令运行速度比现有MCS-51系列单片机提高8倍左右,最快可使8位MCU(微控制器)的性能提高到80~100 MIPS(兆条指令每秒)左右,减少了冗余周期,能够实现高速大量的数据流通,使单片机达到较高的性价比。
图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1是现有的MCS-51系列单片机取指令阶段/执行指令阶段时序图;
图2是本发明的实施方式中单片机内核结构框图;
图3、4是图2中的ROM模块结构图;
图5是本发明的实施方式中缓存器BUFFER的示意图;
图6是本发明的实施方式中各种指令周期的示意图;
图7是本发明的实施方式中运行单周期指令时控制流程示意图;
图8是本发明的实施方式中的中断向量地址、中断使能位、中断优先级设定示意图;
图9是本发明的实施方式中实现中断的电路图。
具体实施方式
CISC是要用最少的机器语言指令来完成所需的计算任务。比如对于乘法运算,在CISC架构的CPU上,可能需要这样一条指令:MUL A,B;就可以将A和B中的数相乘并将结果储存在A中。将A,B中的数据读入寄存器,相乘并将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。
RISC架构要求采用软件来指定各个操作步骤。上面的例子如果要在RISC架构上实现,将地址ADDRA、ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作都必须由软件来实现,例如:MOV A,ADDRA;MOV B,ADDRB;MUL A,B;STR ADDRA,A。
本发明的实施方式中单片机使用新的内核方案,在保持原有的MCS-51系列单片机指令系统不变的情况下,用等长指令的方式处理MCS-51系列单片机的指令,使用RISC结构,并添加3级流水线功能。
流水线是把一个重复的过程分解为若干个子过程,每个子过程可以与其他子过程并行进行。由于这种工作方式与工厂中的生产流水线十分相似,因此称为流水线技术。比如说进行一个程序,把进行取指令,执行指令和回写内存的操作分成3个子过程,这3个子过程可以并行进行,就是一条3级流水线。本发明的实施方式中各级流水线的功能是:
取指令——从程序存储器中取出一条指令,同时进行指令译码,准备寄存器、存储器的读地址,读/写控制信号;
执行指令——数据输入ALU模块进行运算,同时准备寄存器或存储器的写地址;
回写内存——将ALU模块输出的运算结果写入寄存器或存储器中。
图2是本发明的实施方式中单片机内核结构框图。其中,各个功能模块均由外部的时钟源提供时钟信号,由外部的复位控制器提供复位信号。每个模块的具体功能及实现方法如下:
1、ROM模块的功能及实现方法
ROM模块,是用于存放应用程序的存储器,含有32K字节,要满足RISC体系单片机流水线的要求,指令的操作码和操作数必须同时输出给IF模块。因此ROM模块必须在接收到读地址信号后的下一个周期输出连续4个8位的数据。
1.1 ROM的结构
使用FPGA(Field Programmable Gate Array现场可编程门阵列)内部的16个双通道的随机存取存储器RAM组成ROM模块。如图3所示,所述的双通道RAM含有16384bit的存储空间,包括A、B两个通道。其中,WEA、WEB分别为输入RAM的两个通道的写信号。ENA、ENB分别为输入RAM的两个通道的使能信号。SSRA、SSRB分别为输入RAM的两个通道的复位信号。CLKA、CLKB分别为输入RAM的两个通道的时钟信号。ADDRA、ADDRB分别为输入RAM的两个通道的地址信号。DIA、DIB分别为输入RAM的两个通道的数据信号。DOA、DOB分别为输出RAM的两个通道的数据信号。
将16个双通道的RAM分成两组:R[0][0]~R[0][7]为1组、R[1][0]~R[1][7]为1组。每组中各个RAM的A、B两个通道的地址信号addrA和addrB分别设定同一地址。根据输入到ROM的地址信号确定输入给每组中RAM的地址信号addrA和addrB的值,每组RAM都可以输出2个字节的数据。
图4为ROM的结构框图,BIT表示ROM输出端口的位数,其范围为0~7。OFFSET表示ROM输出端口的行数,其范围为0~1。SEGMENT表示ROM输出端口的列数,其范围为0~16383。
1.2从ROM读出数据的方法
当输入给ROM的地址address[0]=0时,输出的4个8位的数据分别是:
OFFSET=0行,SEGMENT=address[14:1]上的8位数据DATA0;
OFFSET=1行,SEGMENT=address[14:1]上的8位数据DATA1;
OFFSET=0行,SEGMENT=address[14:1]+1上的8位数据DATA2;
OFFSET=1行,SEGMENT=address[14:1]+1上的8位数据DATA3。
当输入给ROM的地址address[0]=1时,输出的4个8位的数据分别是:
OFFSET=1行,SEGMENT=address[14:1]上的8位数据DATA0;
OFFSET=0行,SEGMENT=address[14:1]+1上的8位数据DATA1;
OFFSET=1行,SEGMENT=address[14:1]+1上的8位数据DATA2;
OFFSET=0行,SEGMENT=address[14:1]+2上的8位数据DATA3。
将所述的4个数据:DATA0、DATA1、DATA2和DATA3进行输出。这样,ROM模块能够在输入一个地址信号address后,输出连续4个8位数据。
2、IF模块(取指令模块)的功能及实现方法
IF模块用等长指令的方式读取指令(在本发明的实施方式中由于没有改变原MCS-51系列单片机的指令系统,所以所述的指令均为原MCS-51系列单片机的指令);确定单片机程序记数器PC的值;根据PC的值从ROM模块中读出指令,完成了流水线操作的第1阶段取指令,将应用程序分解成操作码与操作数传输给Decoder模块;接收从Decoder模块传输过来的控制信号来确定读写RAM的地址。接收中断信号并返回响应信号。
2.1、取指令过程
要实现RISC体系结构,必须满足所有指令都是等长的。但是MCS-51系列单片机采用的是CISC结构体系,其指令是由操作码OP1和操作数OP2、OP3决定的。当指令是单字节指令时,指令等于操作码OP1;当指令是双字节指令时,指令等于操作码OP1加上操作数OP2;当指令是三字节指令时,指令等于操作码OP1加上操作数OP2和OP3。由于操作码OP1、操作数OP2和OP3都是8位的2进制数,这样由操作码和操作数组成的指令长度是不定的。IF模块通过对单地址多数据输出的ROM操作实现对不等长指令的一次性提取。
IF模块从ROM模块中读出应用程序,一次读出四个字节的数据。建立一个8个字节缓存器BUFFER,缓存器BUFFER的结构如图5所示。其中,BUFFER[0]~BUFFER[7]表示缓存器BUFFER中的8个8比特数据。op_pos表示当前指令的操作码OP1在这个缓存器BUFFER中的位置,op_pos值的范围是“0~7”;op_length表示当前指令的长度,取值范围是1、2或3。一条MCS-51系列单片机指令最少1个字节(1个操作码没有操作数),最多3个字节(1个操作码和2个操作数)。因此一次从ROM读出的数据必须大于等于3个字节,而且ROM中读出的数据的个数是偶数,所以ROM需要在一个地址信号输入后的下一个周期,输出自该地址起多个连续地址存储单元中的数据。
在单片机系统初始化时,op_pos的值为“00H”,程序计数器PC的值为“0000H”。缓存器BUFFER的值为“0000_0000_0000_0000H”,单片机的操作码OP1,操作数OP2和OP3的值为“00H”。由于程序计数器PC的值为“0000H”,ROM模块就将地址是00H~03H的数据放入IF模块中的缓存器BUFFER的高32位中,op_pos所指向的缓存器BUFFER最低位的一个字节“0”位置的数据作为当前指令的操作码OP1,由于OP1等于“00H”是空操作“NOP”指令,该指令所对应的op_length的值为“1”。下一个周期,op_pos等于op_pos加上op_length的值为“1”,op_pos所指向的缓存器BUFFER的一个字节“1”位置上的数据。这一位的数据仍然为“00H”,op_length的值为“1”,单片机继续执行空操作“NOP”指令。直到4个周期后,op_pos指向缓存器BUFFER的第4个字节,才开始真正的执行单片机的指令。因此单片机需要4个周期进行程序的初始化。
操作任何一条指令时,op_pos表示当前指令的操作码OP1在这个缓存器BUFFER中的位置,然后根据操作码确定op_length的值。由于OP1、OP2和OP3是连续的单字节数据。下面的式3表示了OP1、OP2和OP3从缓存器BUFFER的取值方法:
当op_pos=i,op_length的值等于“1”时:
OP1=BUFFER[i];
OP2=00;
OP3=00。
当op_pos=i,op_length的值等于“2”时: (式3)
OP1=BUFFER[i];
OP2=BUFFER[i+1];
OP3=00。
当op_pos=i,op_length的值等于“3”时:
OP1=BUFFER[i];
OP2=BUFFER[i+1];
OP3=BUFFER[i+2]。
其中,BUFFER[i]表示缓存器BUFFER的第i个字节,i∈[0,7]。
2.2、确定单片机程序记数器PC的值
程序计数器PC是一个二进制16位的程序地址寄存器,专门用来存放下一条需要执行指令的内存地址。当系统复位时,程序计数器PC的值为“0”。影响PC指针的信号有op_pos、op_length和运行转移指令或产生中断后的目的地址。当非跳跃转移指令或非中断程序运行时,当前指令的取指令结束后,这时判断op_pos的值加上op_length的值是否大于6;若小于等于6时,op_pos的值等于前一个op_pos的值加上op_length的值,然后进行新一轮的取指令过程;若大于6时,使程序计数器PC的值等于它的当前值加上“4”,将当前缓存器BUFFER高4个字节的数据放到低4个字节中去。由于程序计数器PC的值发生了变化,从ROM模块读出的新的4个字节数据放到缓存器BUFFER的高4个字节中,同时op_pos的值等于前一个op_pos的值加上op_length的值减去“4”,然后进行新一轮的取指令过程。如式4所示:
非跳跃转移指令或非中断程序运行时:
当op_pos+op_length≤6时:
op_pos=op_pos+op_length;
PC=PC。
当op_pos+op_length>6时: (式4)
op_pos=op_pos+op_length-4;
PC=PC+4。
当跳跃转移指令或产生中断:
op_pos=4;
PC=跳跃转移的目的地址或中断向量的地址。
3、Decoder模块(译码模块)的实现
Decoder模块是本发明的实施方式中一个关键模块,该模块从IF模块中取出将要执行的操作码,根据操作码产生对其他模块的控制信号,并在执行指令阶段和回写内存阶段中采用了流水线机制。
MCS-51系列单片机的指令按照周期划分可以分为单周期指令、双周期指令和四周期指令。在本发明的实施方式中RISC体系单片机使用3级流水线机制,同时可以进行取指令操作、执行指令操作和回写内存。每条指令在进行取指令操作和回写内存都需要1个周期的时间,而执行指令阶段所需要的周期数不一定相同。图6为单周期指令、双周期指令和4周期指令运行的时序以及指令执行状态信号STATE的变化过程。
Decoder模块中的指令执行状态信号STATE用于控制各条指令在流水线操作中的各个阶段,其默认状态为“4”。根据从IF模块传输过来的操作数对指令执行状态信号STATE进行赋值。当操作数是单周期指令时,指令执行状态信号STATE保持“4”不变;当操作数是双周期指令时,指令执行状态信号STATE的状态依次为“4”->“6”->“5”,每一个状态保持1个时钟周期;当操作数是四周期指令时,指令执行状态信号STATE的状态依次为“4”->“7”->“6”->“5”,每个状态保持1个时钟周期。
在本发明的实施方式中,四周期指令有5条指令:
MUL AB;DIV AB;RET;RETI;LCALL address16。
双周期指令有18条指令:
ACALL address11;LJMP address16;AJMP address11;SJMP rel;JMP @A+DPTR;CJNZ A,#data,rel;CJNZ A,direct,rel;CJNZRn,#data,rel;CJNZ Rn,direct,rel;JZ rel;JNZ rel;DJNZ Rn,direct,rel;DJNZ Rn,#data,rel;JC rel;JNC rel;JB bit,rel;JNB bit,rel;JBC bit,rel。
其余的指令都是单周期指令。
流水线只有在执行单周期指令的时候才运行,而执行双周期指令和四周期指令的时候停止。
3.1单周期指令的实现
单周期指令需要3个时钟周期才能完成。指令的第1个时钟周期由IF模块进行流水线第1阶段取指令操作,指令的后2个时钟周期在Decoder模块中完成。
在指令操作的第2个时钟周期,Decoder模块中的流水线第2阶段实现以下操作:
(1)、选择读RAM模块的地址或者寄存器,输出给取指令模块。
(2)、将指令跳跃的标志信号输出给取指令模块。
(3)、当发生指令跳跃时,将指令跳跃的目的地址输出给取指令模块。
(4)、在算术比较指令中,选择RAM的地址或者寄存器,并输出给比较模块。
(5)、将位操作的标志信号输出给取指令模块。
在指令操作的第3个时钟周期,Decoder模块中的流水线第3阶段实现以下操作:
(1)、选择写RAM模块的地址或者寄存器,输出给取指令模块。
(2)、将运行该条指令所需要的操作数输出给算术逻辑单元的操作数选择模块。
(3)、将ALU模块要进行的操作符,输出给算术逻辑单元模块。
(4)、产生写信号,输出给取指令模块、特殊功能寄存器模块、间接寻址模块和RAM模块。
(5)、选择对特殊功能寄存器模块中的程序状态字PSW寄存器进行操作的标志信号。
(6)、选择算术逻辑单元模块计算进位标志位,输出给进位模块。
(7)、产生对特殊功能寄存器模块中的累加器ACC或寄存器指针DPTR进行更新的标志信号。
运行单周期指令时,只有当两条连续的指令都是单周期指令时流水线才会启动,直到出现非单周期指令为止。流水线运行时,第2条单周期指令的流水线第1阶段的工作与第1条单周期指令的流水线第2阶段的工作同时进行,即当第1条指令在进行执行指令的时候,第2条指令的正在进行取指令操作。第2条单周期指令的流水线第3阶段的工作与第1条单周期指令的流水线第2阶段的工作同时进行,即当第1条指令在进行回写内存的时候,第2条指令的正在进行执行指令操作。这样大大增加了单片机的工作效率。具体流程如图7所示。
3.2双周期指令的实现
当执行的是双周期指令时,流水线停止,取指令操作、执行指令操作和回写内存操作不能并行进行,只能按照顺序依次进行。双周期指令需要4个时钟周期完成指令的操作。在取指令模块中进行取指令操作需要1个周期,指令的后3个时钟周期在Decoder模块中完成。Decoder模块中的指令执行状态信号STATE的状态依次为“4”->“6”->“5”,每个状态保持一个时钟周期。
执行双周期指令中的跳跃指令(如ACALL address11;LJMPaddress16;等)。
执行跳跃指令操作的第1个时钟周期,在取指令模块中进行取指令操作。
在执行跳跃指令操作的第2个时钟周期,指令执行状态信号STATE的状态为“4”,产生跳跃的标志信号,并选择跳跃的目的地址,输出给取指令模块。
在执行跳跃指令操作的第3个时钟周期,指令执行状态信号STATE的状态为“6”,此阶段算术逻辑单元模块进行计算或者取指令模块进行信号处理。
在执行跳跃指令操作的第4个时钟周期,指令执行状态信号STATE的状态为“5”,(1)选择进行写的寄存器是堆栈指针,输出给取指令模块。(2)将PC的值输出给算术逻辑单元的操作数选择模块。(3)将运算符空操作,输出给算术逻辑单元模块。(4)将位操作的标志信号输出给取指令模块。
执行MCS-51的双周期指令中的比较转移指令(如 CJNZ A,#data,rel;DJNZ Rn,direct,rel;等)。
执行比较转移指令操作的第1个时钟周期,在取指令模块中进行取指令操作。
在执行比较转移指令操作的第2个时钟周期,指令执行状态信号STATE的状态为“4”,选择对RAM进行读的地址或者寄存器,例如上两条指令选择对寄存器ACC和Rn进行读操作,输出给取指令模块。
在执行比较转移指令操作的第3个时钟周期,指令执行状态信号STATE的状态为“6”,(1)将指令跳跃的标志信号输出给取指令模块;(2)当发生指令跳跃时,将指令跳跃的目的地址输出给取指令模块;(3)在算术比较指令中,选择RAM的地址或者寄存器,并输出给比较模块;(4)将位操作的标志信号输出给取指令模块。
在执行比较转移指令操作的第4个时钟周期,指令执行状态信号STATE的状态为“5”,此阶段算术逻辑单元模块进行计算或者取指令模块进行信号处理。
3.3四周期指令的实现
当执行的是四周期指令时,流水线停止,取指令操作、执行指令操作和回写内存操作不能并行进行,只能按照顺序依次进行。四周期指令需要5个时钟周期完成指令的操作。IF模块中进行取指令操作需要一个周期,指令的后4个时钟周期在Decoder模块中完成。指令执行状态信号STATE的状态依次为“4”->“7”->“6”->“5”,每个状态保持1个时钟周期。
执行四周期指令的乘除法指令。
执行乘除法指令操作的第1个时钟周期,在取指令模块中进行取指令操作。
执行乘除法指令的第2个时钟周期,指令执行状态信号STATE的状态为“4”,设置取指令模块准备读取寄存器B和累加器ACC的值。
执行乘除法指令的第3个时钟周期,指令执行状态信号STATE的状态为“7”,(1)将运行该条指令所需要的操作数(累加器ACC或RAM模块的值)输出给算术逻辑单元的操作数选择模块;(2)将操作符(乘法或除法),输出给算术逻辑单元模块;(3)将算术逻辑单元模块计算中产生的进位标志位和溢出标志,输出给特殊功能寄存器模块中的PSW寄存器。
执行乘除法指令的第4个时钟周期,指令执行状态信号STATE的状态为“6”,此阶段算术逻辑单元模块进行运算。
执行乘除法指令的第5个时钟周期,指令执行状态信号STATE的状态为“5”,(1)选择要进行写的寄存器B和累加器ACC,输出给IF模块;
(2)将运行该条指令所需要的操作数(SFR模块中的累加器ACC和RAM模块)输出给算术逻辑单元的操作数选择模块;(3)将ALU模块要进行的操作符(乘法或除法),输出给ALU模块;(4)产生写信号输出给取指令模块、特殊功能寄存器模块、间接寻址模块和RAM模块;(5)将算术逻辑单元模块计算中产生的进位标志位和溢出标志,输出给特殊功能寄存器模块中的PSW寄存器;(6)产生对特殊功能寄存器模块中的累加器ACC或寄存器指针DPTR进行更新的标志信号。
执行四周期指令的返回指令。
执行返回指令操作的第1个时钟周期,在取指令模块中进行取指令操作。
执行返回指令的第2个时钟周期,指令执行状态信号STATE的状态为“4”,选择要进行读的堆栈指针寄存器SP,输出给取指令模块。
执行返回指令的第3个时钟周期,指令执行状态信号STATE的状态为“7”,(1)将指令跳跃的标志信号输出给取指令模块;(2)当前指令会产生跳跃操作的标志信号;(3)将指令跳跃的目的地址输出给取指令模块;(4)将运行该条指令所需要的操作数(RAM中的值)输出给算术逻辑单元的操作数选择模块;(5)将操作符空操作,输出给算术逻辑单元模块。
执行返回指令的第4个时钟周期,指令执行状态信号STATE的状态为“6”,将指令跳跃的标志信号和指令跳跃的目的地址,输出给取指令模块。
执行返回指令的第5个时钟周期,指令执行状态信号STATE的状态为“5”,此阶段算术逻辑单元模块进行计算或者取指令模块进行信号处理。
4、RAM模块
RAM模块是一个256字节的随机存取存储器,地址范围是00H~FFH。与MCS-51系列单片机的实现方法一致,功能基本相同。只是因为本发明的实施方式中单片机内核运用了3级流水线,当对同一个地址进行了写操作后马上对它进行读操作时,会出现相关现象。相关现象是指在一个流水线系统中,如果第二条指令需要用到第一条指令的结果。本发明出现相关现象时,即写RAM模块的地址与读RAM模块的地址相同,并且进行读RAM操作,则读出的数据与写入的数据相同。
5、SFR模块(特殊功能寄存器模块)
SFR模块主要是实现特殊功能寄存器的功能。它与MCS-51系列单片机的结构与功能基本一致。本发明出现相关现象时,即写SFR模块的地址与读SFR模块的地址相同,并且进行读RAM操作,则读出的数据与写入的数据相同。
6、INT模块(中断模块)
INT模块用于实现单片机的中断功能,与MCS-51系列单片机的实现方法和功能基本一致。本发明的实施方式中有四个中断优先级别的中断结构,可以支持10个中断源。每个中断源可以通过对寄存器IEN0和IEN1中的相应位置位或清零来使能和禁能。其中IEN0中的EA位可关闭所有中断。每个中断源可被单独设置为四个中断优先级之一,分别通过清零或置寄存器IPO、IPOH、IP1、IP1H中相应位来实现(00-最低,11-最高)。一个中断服务程序可响应更高级的中断,但不能响应同优先级或低级中断。最高级中断服务程序不响应其它任何中断,如果两个不同中断优先级的中断源同时申请中断时,响应较高优先级的中断申请。在图8中表示出了中断向量的地址分配、中断的使能位以及中断优先级的设定位。图9是实现中断的电路结构。其中虚线部分为本发明扩充的中断信号。
7、Alu_source_sel模块(算术逻辑单元的操作数选择模块)
Alu_source_sel模块是ALU模块的一个辅助模块,用来给ALU模块提供所要计算的数据。与MCS-51系列单片机的实现方法和功能一致。
8、CY_SEL模块(进位模块)
CY_SEL模块是ALU模块的一个辅助模块,用来给ALU模块提供进位信号。与MCS-51系列单片机的实现方法和功能一致。
9、Indirect_addr模块(间接寻址模块)
Indirect_addr模块用来处理指令中含有间接寻址的操作。与MCS-51系列单片机的实现方法和功能一致。
10、ALU模块(算术逻辑单元模块)
ALU模块是用组合逻辑来实现二进制数的算术运算和逻辑操作。其中包括加法、带进位的加法、带进位的减法、乘法、除法、十进制调整、与操作、或操作、非操作、异或操作、左移、带进位的左移、右移、带进位的右移、空操作、加“1”操作、减“1”操作和低四位与高四位交换操作。与MCS-51系列单片机的实现方法和功能一致。
11、Compare模块(比较模块)
Compare模块来实现单片机中进行数据比较的操作。与MCS-51系列单片机的实现方法和功能一致。
以上的模块组成了支持MCS-51系列单片机指令的RISC结构的单片机,并添加3级流水线功能,大大改善了原MCS-51系列单片机的指令运行速度。
Claims (18)
1、一种支持MCS-51指令集的RISC结构单片机,包括:RAM模块,是一个256字节的随机存取存储器;特殊功能寄存器模块,用于实现单片机中特殊功能寄存器的功能;算术逻辑单元模块,用组合逻辑来实现二进制数的算术运算和逻辑操作;算术逻辑单元的操作数选择模块,用来给算术逻辑单元模块提供所要进行计算的数据;进位选择模块,用于给算术逻辑单元模块提供进位信号;间接寻址模块,用于处理指令中含有间接寻址的操作;
其特征在于,采用3级流水线的处理方式处理指令系统;流水线在执行单周期指令的时候运行,执行双周期指令和四周期指令时停止;
所述单片机还包括:
ROM模块,用于存放应用程序,能够在一个地址信号输入后,输出4个连续的数据;
取指令模块,与RAM、ROM、特殊功能寄存器和译码模块连接,采用等长指令的方式读取指令;确定单片机程序计数器PC的值;从ROM模块中读出应用程序,完成流水线操作的第1阶段取指令,将应用程序分解成操作码与操作数传输给译码模块;从中断模块接收到中断信号后,返回中断响应信号;
译码模块从取指令模块中取出将要执行的操作码与操作数,根据操作码确定对其他模块的控制信号,并完成流水线操作的第2阶段执行指令和第3阶段回写内存;译码模块中的指令执行状态信号STATE,用于控制各条指令的执行阶段。
2、如权利要求1所述的单片机,其特征在于:所述3级流水线中,
第1阶段取指令——从ROM模块中取出一条指令,同时进行指令译码,准备寄存器、存储器的读地址,读/写控制信号;
第2阶段执行指令——数据输入算术逻辑单元模块进行运算,同时准备寄存器或存储器的写地址;
第3阶段回写内存——将算术逻辑单元模块输出的运算结果写入寄存器或存储器中。
3、如权利要求1所述的单片机,其特征在于:所述ROM模块采用FPGA内部的16个双通道的随机存取存储器RAM组成,将16个双通道的RAM分成两组:R[0][0]~R[0][7]为1组、R[1][0]~R[1][7]为1组;每组中各个RAM的A、B两个通道的地址信号addrA和addrB分别设定同一地址;根据输入到ROM的地址信号确定输入给每组中RAM的地址信号addrA和addrB的值,每组RAM都可以输出2个字节的数据。
4、如权利要求3所述的单片机,其特征在于:
当输入给ROM的地址address[0]=0时,输出4个8位的数据,分别是:
OFFSET=0行,SEGMENT=address[14:1]上的8位数据DATA0;
OFFSET=1行,SEGMENT=address[14:1]上的8位数据DATA1;
OFFSET=0行,SEGMENT=address[14:1]+1上的8位数据DATA2;
OFFSET=1行,SEGMENT=address[14:1]+1上的8位数据DATA3;
当输入给ROM的地址address[0]=1时,输出4个8位的数据,分别是:
OFFSET=1行,SEGMENT=address[14:1]上的8位数据DATA0;
OFFSET=0行,SEGMENT=address[14:1]+1上的8位数据DATA1;
OFFSET=1行,SEGMENT=address[14:1]+1上的8位数据DATA2;
OFFSET=0行,SEGMENT=address[14:1]+2上的8位数据DATA3;
将所述的4个数据:DATA0、DATA1、DATA2和DATA3进行输出;
其中,OFFSET表示ROM输出端口的行数,其范围为0~1;SEGMENT表示ROM输出端口的列数,其范围为0~16383。
5、如权利要求1所述的单片机,其特征在于:
所述取指令模块从ROM模块中读出应用程序,一次读出四个字节的数据;建立一个8个字节缓存器BUFFER,其中,BUFFER[0]~BUFFER[7]表示缓存器BUFFER中的8个8比特数据;采用op_pos表示当前指令的操作码OP1在该缓存器BUFFER中的位置,取值范围是“0~7”;op_length表示当前指令的长度,取值范围是1、2或3;ROM模块在一个地址信号输入后的下一个周期,输出自该地址起多个连续地址存储单元中的数据。
6、如权利要求5所述的单片机,其特征在于:
在单片机系统初始化时,op_pos的值为“00H”,程序计数器PC的值为“0000H”,缓存器BUFFER的值为“0000_0000_0000_0000H”,单片机的操作码OP1,操作数OP2和OP3的值为“00H”;
ROM模块将地址是00H~03H的数据放入缓存器BUFFER的高32位中,op_pos所指向的缓存器BUFFER最低位的一个字节“0”位置的数据作为当前指令-空操作“NOP”指令的操作码OP1,该指令所对应的op_length的值为“1”;下一个周期,op_pos的值等于前一个op_pos的值加上op_length的值为“1”,op_pos所指向的缓存器BUFFER的一个字节“1”位置上的数据;这一位的数据仍然为“00H”,op_length的值为“1”,单片机继续执行空操作“NOP”指令;直到4个周期后,op_pos指向缓存器BUFFER的第4个字节,才开始真正的执行单片机的指令。
7、如权利要求5所述的单片机,其特征在于:
操作任何一条指令时,op_pos表示当前指令的操作码OP1在所述缓存器BUFFER中的位置,然后根据操作码OP1确定op_length的值;
操作码OP1,操作数OP2和OP3从缓存器BUFFER的取值方法是:
当op_pos=i,op_length的值等于“1”时:
OP1=BUFFER[i];
OP2=00;
OP3=00;
当op_pos=i,op_length的值等于“2”时:
OP1=BUFFER[i];
OP2=BUFFER[i+1];
OP3=00;
当op_pos=i,op_length的值等于“3”时:
OP1=BUFFER[i];
OP2=BUFFER[i+1];
OP3=BUFFER[i+2]。
其中,BUFFER[i]表示缓存器BUFFER的第i个字节,i∈[0,7]。
8、如权利要求5所述的单片机,其特征在于:所述程序计数器PC在系统复位时的值为“0”;当非跳跃转移指令或非中断程序运行时,当前指令的取指令结束后,判断op_pos加上op_length的值是否大于6;若小于等于6,op_pos的值等于前一个op_pos的值加上op_length的值,然后进行新一轮的取指令过程;若大于6,使程序计数器PC的值等于它的当前值加上“4”,将当前缓存器BUFFER高4个字节的数据放到低4个字节中去,从ROM模块读出的新的4个字节数据放到缓存器BUFFER的高4个字节中,同时当前op_pos的值等于前一个op_pos的值加上op_length的值再减去“4”,然后进行新一轮的取指令过程。
9、如权利要求1所述的单片机,其特征在于:所述译码模块中的指令执行状态信号STATE用于控制各条指令在流水线操作中的各个阶段,其默认状态为“4”;根据从取指令模块传输过来的操作数对指令执行状态信号STATE进行赋值;当操作数是单周期指令时,指令执行状态信号STATE保持“4”不变;当操作数是双周期指令时,指令执行状态信号STATE的状态依次为“4”->“6”->“5”,每一个状态保持1个时钟周期;当操作数是四周期指令时,指令执行状态信号STATE的状态依次为“4”->“7”->“6”->“5”,每个状态保持1个时钟周期。
10、如权利要求1或9所述的单片机,其特征在于:所述执行MCS-51的单周期指令需要3个时钟周期,指令的第1个时钟周期由取指令模块进行流水线第1阶段取指令操作,指令的后2个时钟周期在译码模块中完成;
在指令操作的第2个时钟周期,译码模块中的流水线第2阶段实现以下操作:设置取指令模块准备读取寄存器或RAM的值;将位操作的标志信号输出给取指令模块;
在指令操作的第3个时钟周期,译码模块中的流水线第3阶段实现以下操作:选择写RAM模块的地址或者寄存器,输出给取指令模块;将运行该条指令所需要的操作数输出给算术逻辑单元的操作数选择模块;将要进行的操作符输出给算术逻辑单元模块;将产生的写信号,输出给取指令模块、特殊功能寄存器模块、间接寻址模块和RAM模块;将对程序状态字PSW寄存器进行操作的标志信号,输出对特殊功能寄存器模块;选择算术逻辑单元模块计算进位的标志位,输出给进位模块;将累加器ACC或寄存器指针DPTR进行更新的标志信号,输出给特殊功能寄存器模块。
11、如权利要求1或9所述的单片机,其特征在于:
所述执行MCS-51的双周期指令需要4个时钟周期,在取指令模块中进行取指令操作需要一个周期,指令的后3个时钟周期在译码模块中完成;译码模块中的指令执行状态信号STATE的状态依次为“4”->“6”->“5”,每个状态保持一个时钟周期。
12、如权利要求11所述的单片机,其特征在于,当执行MCS-51的跳跃指令需要4个时钟周期:
执行跳跃指令操作的第1个时钟周期进行取指令操作;
在执行跳跃指令操作的第2个时钟周期,指令执行状态信号STATE的状态为“4”,产生跳跃的标志信号,并选择跳跃的目的地址,输出给取指令模块;
在执行跳跃指令操作的第3个时钟周期,指令执行状态信号STATE的状态为“6”,此阶段算术逻辑单元模块进行计算或者取指令模块进行信号处理;
在执行跳跃指令操作的第4个时钟周期,指令执行状态信号STATE的状态为“5”,选择进行写的寄存器是堆栈指针,输出给取指令模块;将程序计数器PC的值输出给算术逻辑单元的操作数选择模块;将运算符空操作输出给算术逻辑单元模块;将位操作的标志信号输出给取指令模块。
13、如权利要求11所述的单片机,其特征在于,当执行MCS-51的比较转移指令需要4个时钟周期:
执行比较转移指令操作的第1个时钟周期进行取指令操作;
在执行比较转移指令操作的第2个时钟周期,指令执行状态信号STATE的状态为“4”,选择对RAM进行读的地址或者寄存器,输出给取指令模块;
在执行比较转移指令操作的第3个时钟周期,指令执行状态信号STATE的状态为“6”,将指令跳跃的标志信号输出给取指令模块;当发生指令跳跃时,将指令跳跃的目的地址输出给取指令模块;选择RAM的地址或者寄存器,并输出给比较模块;将位操作的标志信号输出给取指令模块;
在执行比较转移指令操作的第4个时钟周期,指令执行状态信号STATE的状态为“5”,此阶段算术逻辑单元模块进行计算或者取指令模块进行信号处理。
14、如权利要求1或9所述的单片机,其特征在于:
所述执行MCS-51的四周期指令需要5个时钟周期,取指令模块中进行取指令操作需要一个周期,指令的后4个时钟周期在译码模块中完成;指令执行状态信号STATE的状态依次为“4”->“7”->“6”->“5”,每个状态保持1个时钟周期。
15、如权利要求14所述的单片机,特征在于,当执行MCS-51的乘除法指令时需要5个时钟周期:
执行乘除法指令操作的第1个时钟周期进行取指令操作;
执行乘除法指令的第2个时钟周期,指令执行状态信号STATE的状态为“4”,设置取指令模块准备读取寄存器B和累加器ACC的值,输出给取指令模块;
执行乘除法指令的第3个时钟周期,指令执行状态信号STATE的状态为“7”,将运行该条指令所需要的操作数输出给算术逻辑单元的操作数选择模块;输出给算术逻辑单元模块要进行的操作符;将算术逻辑单元模块计算中产生的进位标志位和溢出标志,输出给特殊功能寄存器模块中的PSW寄存器;
执行乘除法指令的第4个时钟周期,指令执行状态信号STATE的状态为“6”,将运行该条指令所需要的操作数输出给算术逻辑单元的操作数选择模块;输出给算术逻辑单元模块要进行的操作符;
执行乘除法指令的第5个时钟周期,指令执行状态信号STATE的状态为“5”,选择要进行写的寄存器B和累加器ACC,输出给取指令模块;将运行该条指令所需要的操作数输出给算术逻辑单元的操作数选择模块;输出给算术逻辑单元模块要进行的操作符;产生写信号输出给取指令模块、特殊功能寄存器模块、间接寻址模块和RAM模块;将算术逻辑单元模块计算中产生的进位标志位和溢出标志,输出给特殊功能寄存器模块中的PSW寄存器;产生对特殊功能寄存器模块中的累加器ACC或寄存器指针DPTR进行更新的标志信号。
16、如权利要求14所述的单片机,其特征在于,当执行MCS-51的返回指令RET/RETI时需要5个时钟周期:
执行返回指令操作的第1个时钟周期进行取指令操作;
执行返回指令的第2个时钟周期,指令执行状态信号STATE的状态为“4”,将寄存器SP的地址输出给取指令模块,并读取寄存器SP的内容;
执行返回指令的第3个时钟周期,指令执行状态信号STATE的状态为“7”,将指令跳跃的标志信号输出给取指令模块;当前指令会产生跳跃操作的标志信号;将指令跳跃的目的地址输出给取指令模块;将运行该条指令所需要的操作数输出给算术逻辑单元的操作数选择模块;
执行返回指令的第4个时钟周期,指令执行状态信号STATE的状态为“6”,将指令跳跃的标志信号和指令跳跃的目的地址,输出给取指令模块;
执行返回指令的第5个时钟周期,指令执行状态信号STATE的状态为“5”,算术逻辑单元模块进行计算或者取指令模块进行信号处理。
17如权利要求1所述的单片机,其特征在于:所述RAM模块在使用流水线出现相关现象时,即写RAM模块的地址与读RAM模块的地址相同,并且进行读RAM操作,则读出的数据与写入的数据相同。
18如权利要求1所述的单片机,其特征在于:所述特殊功能寄存器模块在使用流水线出现相关现象时,即写寄存器的地址与读寄存器的地址相同,并且进行读操作,则读出的数据与写入的数据相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100939274A CN101339498A (zh) | 2007-07-05 | 2007-07-05 | 采用risc结构的单片机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100939274A CN101339498A (zh) | 2007-07-05 | 2007-07-05 | 采用risc结构的单片机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101339498A true CN101339498A (zh) | 2009-01-07 |
Family
ID=40213574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100939274A Pending CN101339498A (zh) | 2007-07-05 | 2007-07-05 | 采用risc结构的单片机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101339498A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102323766A (zh) * | 2011-05-24 | 2012-01-18 | 华润半导体(深圳)有限公司 | 一种智能玩具控制芯片 |
CN103049706A (zh) * | 2012-11-21 | 2013-04-17 | 飞天诚信科技股份有限公司 | 一种提高数据操作速率的方法 |
CN103488462A (zh) * | 2013-09-06 | 2014-01-01 | 暨南大学 | 一种改进型8051ip核 |
CN104011684A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 具有内嵌中断服务功能的中断返回指令 |
CN104063343A (zh) * | 2014-06-20 | 2014-09-24 | 珠海市杰理科技有限公司 | 数据总线扩展的单片机 |
CN110941211A (zh) * | 2019-10-17 | 2020-03-31 | 华晟现代电子科技(香港)有限公司 | 一种基于物联网精简功能的微处理器及控制方法 |
CN114661355A (zh) * | 2022-05-24 | 2022-06-24 | 深圳市智想科技有限公司 | Risc架构处理器的寄存器架构、寄存器组及risc架构处理器 |
-
2007
- 2007-07-05 CN CNA2007100939274A patent/CN101339498A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102323766A (zh) * | 2011-05-24 | 2012-01-18 | 华润半导体(深圳)有限公司 | 一种智能玩具控制芯片 |
CN104011684A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 具有内嵌中断服务功能的中断返回指令 |
CN104011684B (zh) * | 2011-12-22 | 2018-01-26 | 英特尔公司 | 具有内嵌中断服务功能的中断返回指令 |
CN103049706A (zh) * | 2012-11-21 | 2013-04-17 | 飞天诚信科技股份有限公司 | 一种提高数据操作速率的方法 |
CN103049706B (zh) * | 2012-11-21 | 2015-06-17 | 飞天诚信科技股份有限公司 | 一种提高数据操作速率的方法 |
CN103488462A (zh) * | 2013-09-06 | 2014-01-01 | 暨南大学 | 一种改进型8051ip核 |
CN103488462B (zh) * | 2013-09-06 | 2016-04-13 | 暨南大学 | 一种改进型8051ip核 |
CN104063343A (zh) * | 2014-06-20 | 2014-09-24 | 珠海市杰理科技有限公司 | 数据总线扩展的单片机 |
CN104063343B (zh) * | 2014-06-20 | 2017-03-29 | 珠海市杰理科技股份有限公司 | 数据总线扩展的单片机 |
CN110941211A (zh) * | 2019-10-17 | 2020-03-31 | 华晟现代电子科技(香港)有限公司 | 一种基于物联网精简功能的微处理器及控制方法 |
CN114661355A (zh) * | 2022-05-24 | 2022-06-24 | 深圳市智想科技有限公司 | Risc架构处理器的寄存器架构、寄存器组及risc架构处理器 |
CN114661355B (zh) * | 2022-05-24 | 2022-12-02 | 深圳市智想科技有限公司 | Risc架构处理器的寄存器架构、寄存器组及risc架构处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101299185B (zh) | 一种基于cisc结构的微处理器结构 | |
JP6849274B2 (ja) | 融合された単一のサイクルのインクリメント−比較−ジャンプを実施するための命令及びロジック | |
US5371860A (en) | Programmable controller | |
CN103765401B (zh) | 一种将有条件加载/存储指令编译成可变数目微指令的微处理器 | |
CN101339498A (zh) | 采用risc结构的单片机 | |
CN1809810B (zh) | 指令控制数据处理设备 | |
TWI476682B (zh) | 用以偵測向量暫存器內相等元素之裝置及方法 | |
CN107102844B (zh) | 超级乘加(超级madd)指令 | |
JPH0743646B2 (ja) | 条件コ−ド発生装置 | |
JPH09311786A (ja) | データ処理装置 | |
CN105468333A (zh) | 具有条件指令的微处理器及其处理方法 | |
WO1998006042A1 (en) | Wide instruction unpack method and apparatus | |
USRE32493E (en) | Data processing unit with pipelined operands | |
TW202307669A (zh) | 用於在異質處理資源上調適性地排程工作的設備及方法 | |
CN102184092A (zh) | 基于流水线结构的专用指令集处理器 | |
CN112579159A (zh) | 用于矩阵操作加速器的指令的装置、方法和系统 | |
TW201738758A (zh) | 用以提供基底暫存器交換狀態驗證功能之指令及邏輯 | |
JP2003005958A (ja) | データ処理装置およびその制御方法 | |
CN102866982A (zh) | 基于fpga的8位复杂指令集中央处理器 | |
CN104536914A (zh) | 基于寄存器访问标记的相关处理装置和方法 | |
EP1378824A1 (en) | A method for executing programs on multiple processors and corresponding processor system | |
CN112182999B (zh) | 一种基于mips32指令系统的三级流水线cpu设计方法 | |
WO2018005718A1 (en) | System and method for out-of-order clustered decoding | |
CN111752533A (zh) | 用于矩阵运算的加速器系统和方法 | |
TW202328926A (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 |
Open date: 20090107 |