CN112130899A - 一种堆栈计算机 - Google Patents
一种堆栈计算机 Download PDFInfo
- Publication number
- CN112130899A CN112130899A CN201910553732.6A CN201910553732A CN112130899A CN 112130899 A CN112130899 A CN 112130899A CN 201910553732 A CN201910553732 A CN 201910553732A CN 112130899 A CN112130899 A CN 112130899A
- Authority
- CN
- China
- Prior art keywords
- instruction
- data
- register
- state
- stack
- 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
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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明涉及一种读取指令、执行并处理数据的计算机架构,特别是一种符合ZPU指令集的堆栈式计算机。堆栈式计算机中的指令无需指定操作数,所有操作数都隐含在栈结构上,因此只需要实现程序计数器、栈指针寄存器等很少的寄存器。特别适合在民用灯光控制等大规模、低成本应用以及高可靠领域中中小规模反熔丝FPGA上使用。本发明公开了了一种堆栈式计算机的组成结构、控制状态机以及各模块的主要行为,并在不显著增加实现资源的前提下通过设置少量标志位和缓存提升性能。
Description
技术领域
本发明涉及一种读取指令、执行并处理数据的计算机架构,特别是一种符合ZPU指令集的堆栈式计算机。
背景技术
如今,高可靠电子***智能自主管理需求不断提升,需要单机、模块内部具有更强的数据采集和指令执行功能,传统单片机和现场可编程门阵列(Field-Programmable GateArray,以下简称FPGA)已经无法这类需求。另一方面,高可靠元器件用量小,开发成本高,很难为不同应用场景开发多种专用集成电路。需要进一步发掘现有中小规模反熔丝FPGA处理这类应用的潜力。
在民用领域,对于无线智能灯光控制、无线传感器网络、智能家居等大规模、低成本应用,对于处理能力的要求较低,但应用逻辑具有一定复杂性,需要片上***(System-on-a-Chip,以下简称SoC)中的处理器面积尽可能小并具有一定的通用性,因此需要使用创新型的指令集和架构满足这类特殊需求。
ZPU指令集是一种32位堆栈式指令集。和常见的复杂指令集计算机(ComplexInstruction Set Computer, 以下简称CISC)、精简指令集计算机(Reduced InstructionSet Computer,以下简称RISC)不同,堆栈式指令集中的指令无需指定操作数,所有操作数都隐含在栈结构上,因此指令密度一般高于CISC和RISC计算机。另一方面,因为栈结构一般都保存在内存里,所以堆栈式计算机只需要程序计数器、栈指针寄存器等很少的寄存器,可以使用非常少的寄存器实现。因此,堆栈式指令集具有在中小规模FPGA上实现,并保留实现定制接口控制器的资源。在一般堆栈式指令集的基础上,ZPU指令集进一步将指令划分必须硬件实现的指令和可以用软件模拟的指令。当所有软件模拟指令都使用软件模拟,没有对应硬件时,ZPU计算机的资源开销达到最小。
如附图1所示,ZPU指令集使用8位指令编码,正常程序执行只需要大写字母表示的15条硬件指令,实现调试中断(BREAK)和硬件中断返回(POPINT)可再增加2条硬件指令,其余小写字母表示的26条指令均可以用软件模拟。
硬件指令的功能如下:
IM:如果前一条指令不是IM,则将指令的低7位视为有符号数,扩展为32位并入栈。如果前一条指令也是IM,则将栈顶左移7位,并把低7位设为指令的低7位。连续执行IM指令时屏蔽中断。
NOP:空指令,不执行任何操作。
PUSHSP:将当前栈指针寄存器入栈。
POPSP:从栈顶取出32位数,并存入栈指针寄存器。
POPINT:从栈顶取出32位数,并存入程序计数器,同时清除中断状态。
POPPC:从栈顶取出32位数,并存入程序计数器。
ADD:从栈顶连续取出2个32位数,求“算数和”并将结果入栈。
AND:从栈顶连续取出2个32位数,求“逻辑与”并将结果入栈。
OR:从栈顶连续取出2个32位数,求“逻辑或”并将结果入栈。
NOT:将栈顶的32位数按位取反。
FLIP:颠倒栈顶的32位数的位序。即最高位和最低位交换,次高位和次低位交换,依此类推。
LOAD:从栈顶取出32位地址,读取位于该地址的32位数据并将结果入栈。
STORE:从栈顶依次取出地址和数据,并将32位数据写入该地址。
ADDSP:读取“栈指针寄存器+4×指令低4位”并将结果与栈顶数值相加。
LOADSP:如指令自低到高的第5位是1,则读取“栈指针寄存器+4×指令低4位”,并将结果入栈。如指令第5位是0,则读取“栈指针寄存器+4×指令低4位+64”,并将结果入栈。
STORESP:如指令自低到高的第5位是1,则将栈顶值出栈并写入“栈指针寄存器+4×指令低4位”。如指令第5位是0,则将栈顶值出栈并写入“栈指针寄存器+4×指令低4位+64”。
BREAK:进入调试中断状态。
当计算机执行到软件模拟指令时,如硬件配置要求该指令使用软件模拟,则将当前程序计数器入栈,并将程序计数器设置为“32×指令低5位”。反之,则由硬件执行。可软件模拟的指令功能定义如下:
loadh:从栈顶取出32位地址,读取位于该地址的16位数据,做符号扩展并将结果入栈。
loadb:从栈顶取出32位地址,读取位于该地址的8位数据,做符号扩展并将结果入栈。
storeh:从栈顶依次取出地址和数据,并将低16位数据写入该地址。
storeb:从栈顶依次取出地址和数据,并将低8位数据写入该地址。
neg:将栈顶的32位数出栈,计算其相反数再入栈。
xor:从栈顶连续取出2个32位数,求“逻辑异或”并将结果入栈。
sub:从栈顶依次取出减数和被减数,计算“算数差”并将结果入栈。
mult:从栈顶连续取出2个32位数,求“乘积”并将结果入栈。
div:从栈顶连续被除数和除数,求“有符号商”并将结果入栈。
mod:从栈顶连续被除数和除数,求“有符号余数”并将结果入栈。
lsr:从栈顶依次取出移位量和操作数,求“逻辑右移”并将结果入栈。
asl:从栈顶依次取出移位量和操作数,求“算数左移”并将结果入栈。
asr:从栈顶依次取出移位量和操作数,求“算数右移”并将结果入栈。
lt:从栈顶依次取出2个32位数,按有符号整数比较,如第一个小于第二个,则将1入栈,反之将0入栈。
le:从栈顶依次取出2个32位数,按有符号整数比较,如第一个小于等于第二个,则将1入栈,反之将0入栈。
ult:从栈顶依次取出2个32位数,按无符号整数比较,如第一个小于第二个,则将1入栈,反之将0入栈。
ule:从栈顶依次取出2个32位数,按无符号整数比较,如第一个小于等于第二个,则将1入栈,反之将0入栈。
eq:从栈顶依次取出2个32位数,如两者相等则将1入栈,反之将0入栈。
ne:从栈顶依次取出2个32位数,如两者不相等则将1入栈,反之将0入栈。
call:从栈顶取出被调用函数的地址,将“程序计数器+1”入栈,然后将程序计数器设为被调用函数的地址。
callpcrel:从栈顶取出偏移量,将“程序计数器+1”入栈,然后将程序计数器设为“程序计数器+偏移量”。
poppcrel:从栈顶取出偏移量,将程序计数器设为“程序计数器+偏移量”。
pushpc:将当前程序计数器的值入栈。
eqbranch:从栈顶依次取出偏移量和条件值,如条件值为0,则将程序计数器设为“程序计数器+偏移量”,反之执行下一条指令。
nebranch:从栈顶依次取出偏移量和条件值,如条件值非0,则将程序计数器设为“程序计数器+偏移量”,反之执行下一条指令。
pushspadd:从栈顶取出栈指针偏移量,将“栈指针寄存器+4×栈指针偏移量”入栈。该指令主要用于为当前函数分配帧空间。
发明内容
如图2所示,本发明涉及一种堆栈式计算机,其组成模块包括内部控制状态机(state)、程序计数寄存器(pc)、栈指针寄存器(sp)、指令缓存寄存器(text)、栈顶缓存寄存器(tos)、总线地址寄存器(addr)、总线数据寄存器(data),指令译码单元(decode)、算术逻辑单元(alu)以及外部总线接口(bus)。(权利要求1)。
如图3所示,内部控制状态机(state)包括包括取指空闲(IDLE)、指令读出(FETCH)、指令译码(DECODE)、指令执行(EXECUTE)、地址生成(ADDR)、数据读出(LOAD)、数据生成(DATA)、数据写入(STORE)等8个状态。(权利要求2)在每个指令周期里,取指空闲、指令读出两个状态可能因为内部指令缓存寄存器有效而不经历,指令译码、指令执行两个部分所有指令都会经历,其余四个状态是否经历按照指令译码的结果选择进入。
指令译码单元在指令译码(DECODE)状态依照当前指令产生独热编码的控制信号,控制各个模块配合完成当前指令的执行。如果指令需要加载第二个操作数,则依次进入地址生成(ADDR)、数据读出(LOAD)、数据生成(DATA)、数据写入(STORE)。反之,则依次进入数据生成(DATA)、数据写入(STORE)状态,跳过地址生成(ADDR)、数据读出(LOAD)状态。(权利要求16)。
为了使控制逻辑尽可能简单,状态机的设计符合类似Wishbone总线的时序,这样只需简单的组合逻辑即可实现总线访问。
外部总线接口(bus)在指令读出(FETCH)、指令执行(EXECUTE)、数据读出(LOAD)、数据写入(STORE)产生有效请求,分别读取程序计数器、读取栈指针寄存器、读取地址寄存器和写入地址寄存器。外部总线接口在取指空闲(IDLE)、指令译码(DECODE)、地址生成(ADDR)、数据生成(DATA)状态下无效。(权利要求19)。
总线地址寄存器(addr)用于给出数据读出(LOAD)和数据写入(STORE)状态下的外部总线地址。其内容在地址生成(ADDR)或数据生成(DATA)状态时依照当前执行的指令变化。(权利要求12)。
总线地址寄存器(addr)提前在指令译码(DECODE)状态加载算数逻辑单元输出,用于计算相对于栈指针的偏移值。(权利要求13)。
总线数据寄存器(data)用于给出数据写入(STORE)状态下的外部总线数据。其内容在数据读出(LOAD)或数据生成(DATA)状态时依照当前执行指令的变化。(权利要求14)。
总线数据寄存器(data)提前在指令执行周期保存程序计数器或栈指针寄存器,用于执行变更这些寄存器的特殊指令。(权利要求15)。
该计算机还通过设置一些标志位力图使状态转移逻辑尽可能规则。如果指令执行无需修改内存,则指令译码单元设置跳过存储标志(skip_store),则计算机在数据写入(STORE)状态下不产生实际的内存操作。(权利要求17)。
该计算机使用唯一的算术逻辑单元完成程序计数器、栈指针寄存器和数据处理操作,力求使整个资源开销最小。其具体措施包括:(权利要求15)。
程序计数寄存器的低位部分(如总线位宽是32位,则低位部分为2位)具有不向高位进位的自增功能,并在指令译码(DECODE)状态时储存自增结果到临时寄存器(npc_low),该临时寄存器和原来程序计数寄存器的高位共同构成指向下一条待执行指令的新程序计数器(npc),但新程序计数器只有在程序计数寄存器低位部分不全为1且当前指令不是流程控制指令时才有效,可以在指令执行(EXECUTE)状态时加载到程序计数寄存器。(权利要求18)。
如果程序计数寄存器低位部分全为1且当前指令不是流程控制指令时,则在指令执行(EXECUTE)状态时设置标志位(fetch_next),让状态控制器在数据写入(STORE)状态结束时跳转到取指空闲(IDLE)而不是指令译码(DECODE),并让程序计数寄存器在取指空闲(IDLE)状态时加载算术逻辑单元的输出。(权利要求4)标志位(fetch_next)在状态控制器处于取指空闲(IDLE)时清零。(权利要求5)反之,如果当前指令是流程控制指令,则当状态控制器处于数据写入(STORE)状态时,让程序计数寄存器加载算术逻辑单元的输出,让状态控制器在数据写入(STORE)状态结束时跳转到取指空闲(IDLE)而不是指令译码(DECODE),并设置标志位(pc_hold)使程序计数寄存器在取指空闲(IDLE)状态时不再改变。(权利要求6)标志位(pc_hold)在状态控制器处于取指空闲(IDLE)时清零。(权利要求7)。
栈指针寄存器不具备自增、自减功能,而是依照当前指令在指令执行(EXECUTE)状态加载算术逻辑单元输出、加载栈顶缓存寄存器或外部总线数据。如果当前指令需要执行两次出栈操作,则在数据读取(LOAD)状态下再加载一次算术逻辑单元输出。(权利要求8)。
除了资源最小化措施外,该计算机还在结构不变、不显著增加资源的前提下尽可能提升指令运行速度,其具体措施如下:
指令缓存寄存器缓存总线位宽相等的操作指令(如总线位宽是32位,则缓存4条指令),并使用程序计数寄存器的低位部分选择当前指令送到指令译码单元。(权利要求9)。
栈顶缓存寄存器缓存了栈顶操作数,并通过标志位(tos_valid)表示栈顶缓存寄存器中的内容是否有效。如当前指令直接设置了栈指针寄存器或仅执行了出栈操作,则在指令执行(EXECUTE)状态将该标志位置0,反之将将该标志位置1。(权利要求10)如栈顶缓存标志位(tos_valid)无效,则栈顶缓存寄存器在指令执行(EXECUTE)状态加载外部总线数据,反之则在数据写入(STORE)状态加载总线数据寄存器,以确保栈顶缓存寄存器的内容与内存中的栈顶匹配。(权利要求11)。
附图说明
图1 是ZPU指令集的指令编码表。ZPU指令集所有指令均为8位编码。其中大写字母表示的是必须硬件实现的指令。小写表示的是可以用软件模拟实现的指令。
图2 是本专利公开的堆栈式计算机的组成框图。主要包括内部控制状态机(state)、程序计数寄存器(pc)、栈指针寄存器(sp)、指令缓存寄存器(text)、栈顶缓存寄存器(tos)、总线地址寄存器(addr)、总线数据寄存器(data),指令译码单元(decode)、算术逻辑单元(alu)以及外部总线接口(bus)。
图3 是本专利公开的堆栈式计算机的主要状态转移图。主要包括取指空闲(IDLE)、指令读出(FETCH)、指令译码(DECODE)、指令执行(EXECUTE)、地址生成(ADDR)、数据读出(LOAD)、数据生成(DATA)、数据写入(STORE)等8个状态。其中重要的分支路径有:
当指令缓存寄存器非空时,可以从数据写入(STORE)状态直接跳转到指令译码(DECODE)状态,无需从总线上取指令。
指令执行(EXECUTE)状态之后,指令需要加载第二个操作数,则依次进入地址生成(ADDR)、数据读出(LOAD)、数据生成(DATA)、数据写入(STORE)。反之,则依次进入数据生成(DATA)、数据写入(STORE)状态,跳过地址生成(ADDR)、数据读出(LOAD)状态。
具体实施示例
基于本专利公开的架构,实现的处理器内核占用资源非常少,在最小配置时,即只实现最少的硬件指令时,在典型FPGA上占用资源如下表所示:
表1 堆栈式计算机最小配置资源开销
Spartan 6 | Cyclone V | Virtex 7 | Stratix V | |
主频(MHz) | 127.5 | 128.7 | 208.7 | 182.2 |
逻辑资源 | 618 | 582 | 540 | 621 |
寄存器 | 227 | 230 | 227 | 231 |
在最大配置时,即用硬件实现全部指令并使用硬件乘法器时,在典型FPGA上占用资源如下表所示:
表2 堆栈式计算机最大配置资源开销
Spartan 6 | Cyclone V | Virtex 7 | Stratix V | |
主频(MHz) | 70.4 | 125.8 | 138.4 | 105.6 |
逻辑资源 | 1567 | 2245 | 1506 | 1888 |
寄存器 | 331 | 354 | 316 | 301 |
乘法器 | 3 | 0 | 3 | 2 |
ZPU的指令集的工具链基于开源软件,具体包括:
bintuils:汇编器、连接器
gcc:C和C++编译器
newlib:C语言运行库
使用开源工具链运行Dhrystone 2.1性能测试程序,得到以下性能测试结果:
最小配置:0.5 DMIPS@50MHz
最大配置:2.4 DMIPS@50MHz。
Claims (19)
1.一种堆栈计算机,包括内部控制状态机(state)、程序计数寄存器(pc、npc_low、pc_hold、fetch_next)、栈指针寄存器(sp)、指令缓存寄存器(text、ins)、栈顶缓存寄存器(tos、tos_valid)、总线地址寄存器(addr)、总线数据寄存器(data),指令译码单元(skip_store、decode)、算术逻辑单元(alu)以及外部总线接口(bus)。
2.如状态要求1所述的计算机,其中:状态控制器包括取指空闲(IDLE)、指令读出(FETCH)、指令译码(DECODE)、指令执行(EXECUTE)、地址生成(ADDR)、数据读出(LOAD)、数据生成(DATA)、数据写入(STORE)等8个状态。
3.如权利要求1所述的计算机,其中:程序计数寄存器的低位部分具有不向高位进位的自增功能,并在指令译码(DECODE)状态时储存自增结果到临时寄存器(npc_low),该临时寄存器和原来程序计数寄存器的高位共同构成指向下一条待执行指令的新程序计数器(npc),但新程序计数器只有在程序计数寄存器低位部分不全为1且当前指令不是流程控制指令时才有效,可以在指令执行(EXECUTE)状态时加载到程序计数寄存器。
4.如权利要求3所述的计算机,其中:如果程序计数寄存器低位部分全为1且当前指令不是流程控制指令时,则在指令执行(EXECUTE)状态时设置标志位(fetch_next),让状态控制器在数据写入(STORE)状态结束时跳转到取指空闲(IDLE)而不是指令译码(DECODE),并让程序计数寄存器在取指空闲(IDLE)状态时加载算术逻辑单元的输出。
5.如权利要求4所述的的计算机,其中:标志位(fetch_next)在状态控制器处于取指空闲(IDLE)时清零。
6.如权利要求3所述的计算机,其中:如果当前指令是流程控制指令,则当状态控制器处于数据写入(STORE)状态时,让程序计数寄存器加载算术逻辑单元的输出,让状态控制器在数据写入(STORE)状态结束时跳转到取指空闲(IDLE)而不是指令译码(DECODE),并设置标志位(pc_hold)使程序计数寄存器在取指空闲(IDLE)状态时不再改变。
7.如权利要求6所述的计算机,其中:标志位(pc_hold)在状态控制器处于取指空闲(IDLE)时清零。
8.如权利要求1所述的计算机,其中:栈指针寄存器不具备自增、自减功能,而是依照当前指令在指令执行(EXECUTE)状态加载算术逻辑单元输出、加载栈顶缓存寄存器或外部总线数据,如果当前指令需要执行两次出栈操作,则在数据读取(LOAD)状态下再加载一次算术逻辑单元输出。
9.如权利要求1所述的计算机,其中:指令缓存寄存器(text)缓存了与总线位宽相等的操作指令,并使用程序计数寄存器的低位部分选择当前指令(ins)送到指令译码单元。
10.如权利要求1所述的计算机,其中:栈顶缓存寄存器(tos)缓存了栈顶操作数,并通过标志位(tos_valid)表示栈顶缓存寄存器中的内容是否有效,如当前指令直接设置了栈指针寄存器或仅执行了出栈操作,则在指令执行(EXECUTE)状态将该标志位置0,反之将将该标志位置1。
11.如权利要求1所述的计算机,其中:如栈顶缓存标志位(tos_valid)无效,则栈顶缓存寄存器在指令执行(EXECUTE)状态加载外部总线数据,反之则在数据写入(STORE)状态加载总线数据寄存器,以确保栈顶缓存寄存器的内容与内存中的栈顶匹配。
12.如权利要求1所述的计算机,其中:总线地址寄存器(addr)用于给出数据读出(LOAD)和数据写入(STORE)状态下的外部总线地址,其内容在地址生成(ADDR)或数据生成(DATA)状态时依照当前执行的指令变化。
13.如权利要求12所述的计算机,其中,总线地址寄存器(addr)提前在指令译码(DECODE)状态加载算数逻辑单元输出,用于计算相对于栈指针的偏移值。
14.如权利要求1所述的计算机,其中:总线数据寄存器(data)用于给出数据写入(STORE)状态下的外部总线数据,其内容在数据读出(LOAD)或数据生成(DATA)状态时依照当前执行指令的变化。
15.如权利要求14所述的计算机,其中:总线数据寄存器(data)提前在指令执行周期保存程序计数器或栈指针寄存器,用于执行变更这些寄存器的特殊指令。
16.如权利要求1所述的计算机,其中:指令译码单元在指令译码(DECODE)状态依照当前指令产生独热编码的控制信号,控制各个模块配合完成当前指令的执行,如果指令需要加载第二个操作数,则依次进入地址生成(ADDR)、数据读出(LOAD)、数据生成(DATA)、数据写入(STORE),反之,则依次进入数据生成(DATA)、数据写入(STORE)状态,跳过地址生成(ADDR)、数据读出(LOAD)状态。
17.如权利要求14所述的计算机,其中:如果指令执行无需修改内存,则指令译码单元设置跳过存储标志(skip_store),则计算机在数据写入(STORE)状态下不产生实际的内存操作。
18.如权利要求1所述的计算机,其中:单一算术逻辑单元(alu)完成了程序计数器、栈指针寄存器和数据处理操作。
19.如权利要求1所述的计算机,其中:外部总线接口(bus)在指令读出(FETCH)、指令执行(EXECUTE)、数据读出(LOAD)、数据写入(STORE)产生有效请求,分别读取程序计数器、读取栈指针寄存器、读取地址寄存器和写入地址寄存器,外部总线接口在取指空闲(IDLE)、指令译码(DECODE)、地址生成(ADDR)、数据生成(DATA)状态下无效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910553732.6A CN112130899A (zh) | 2019-06-25 | 2019-06-25 | 一种堆栈计算机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910553732.6A CN112130899A (zh) | 2019-06-25 | 2019-06-25 | 一种堆栈计算机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112130899A true CN112130899A (zh) | 2020-12-25 |
Family
ID=73849464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910553732.6A Pending CN112130899A (zh) | 2019-06-25 | 2019-06-25 | 一种堆栈计算机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112130899A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115237475A (zh) * | 2022-06-23 | 2022-10-25 | 云南大学 | 一种Forth多核堆栈处理器及指令集 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178644A (zh) * | 2006-11-10 | 2008-05-14 | 上海海尔集成电路有限公司 | 一种基于复杂指令集计算机结构的微处理器架构 |
US20100177714A1 (en) * | 2006-08-09 | 2010-07-15 | Seishi Hanaoka | Communication system using multi-radio mode, monitor node apparatus, control node apparatus and base station apparatus |
CN102662851A (zh) * | 2012-04-12 | 2012-09-12 | 江苏中科芯核电子科技有限公司 | 一种堆栈入栈出栈装置及方法 |
US20120297370A1 (en) * | 2011-05-16 | 2012-11-22 | Texas Instruments Incorporated | Stack Analysis for Post Mortem Analysis |
CN102866982A (zh) * | 2012-09-14 | 2013-01-09 | 复旦大学 | 基于fpga的8位复杂指令集中央处理器 |
-
2019
- 2019-06-25 CN CN201910553732.6A patent/CN112130899A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100177714A1 (en) * | 2006-08-09 | 2010-07-15 | Seishi Hanaoka | Communication system using multi-radio mode, monitor node apparatus, control node apparatus and base station apparatus |
CN101178644A (zh) * | 2006-11-10 | 2008-05-14 | 上海海尔集成电路有限公司 | 一种基于复杂指令集计算机结构的微处理器架构 |
US20120297370A1 (en) * | 2011-05-16 | 2012-11-22 | Texas Instruments Incorporated | Stack Analysis for Post Mortem Analysis |
CN102662851A (zh) * | 2012-04-12 | 2012-09-12 | 江苏中科芯核电子科技有限公司 | 一种堆栈入栈出栈装置及方法 |
CN102866982A (zh) * | 2012-09-14 | 2013-01-09 | 复旦大学 | 基于fpga的8位复杂指令集中央处理器 |
Non-Patent Citations (2)
Title |
---|
(美)BRANKO SOUCEK著: "《微处理器与微型计算机》", 31 December 1976 * |
郑世荣: "堆栈存贮器应用和堆栈处理机结构", 《电子技术》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115237475A (zh) * | 2022-06-23 | 2022-10-25 | 云南大学 | 一种Forth多核堆栈处理器及指令集 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101178644B (zh) | 一种基于复杂指令集计算机结构的微处理器架构 | |
US5001662A (en) | Method and apparatus for multi-gauge computation | |
RU2292581C2 (ru) | Команды загрузки/перемещения и копирования для процессора | |
US8832166B2 (en) | Floating point multiplier circuit with optimized rounding calculation | |
Nurmi | Processor design: system-on-chip computing for ASICs and FPGAs | |
US20090138685A1 (en) | Processor for processing instruction set of plurality of instructions packed into single code | |
US7346881B2 (en) | Method and apparatus for adding advanced instructions in an extensible processor architecture | |
US20020013691A1 (en) | Method and apparatus for processor code optimization using code compression | |
EP1102163A2 (en) | Microprocessor with improved instruction set architecture | |
CN110968346A (zh) | 用于执行用于快速元素解包到二维寄存器中的指令的*** | |
JPH09311786A (ja) | データ処理装置 | |
Turley et al. | TI’s new’C6x DSP screams at 1,600 MIPS | |
CN112148251A (zh) | 跳过无意义的矩阵运算的***和方法 | |
EP0954791A1 (en) | Eight-bit microcontroller having a risc architecture | |
Berenbaum et al. | Introduction to the CRISP Instruction Set Architecture. | |
JP2004086837A (ja) | データ処理装置 | |
JPS6014338A (ja) | 計算機システムにおける分岐機構 | |
US20030033503A1 (en) | Single instruction having opcode and stack control field | |
CN112130899A (zh) | 一种堆栈计算机 | |
Lin et al. | A unified processor architecture for RISC & VLIW DSP | |
CN1898641B (zh) | 微控制器指令集 | |
US6275925B1 (en) | Program execution method and program execution device | |
US20050223198A1 (en) | Optimized processors and instruction alignment | |
CN114721624A (zh) | 用于处理矩阵的处理器、方法和*** | |
CN111930426A (zh) | 一种可重构计算的双模指令集架构及其应用方法 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20201225 |