CN112130899A - 一种堆栈计算机 - Google Patents

一种堆栈计算机 Download PDF

Info

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
Application number
CN201910553732.6A
Other languages
English (en)
Inventor
关宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haining Advanced Semiconductor And Intelligent Technology Research Institute
Original Assignee
Haining Advanced Semiconductor And Intelligent Technology Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Haining Advanced Semiconductor And Intelligent Technology Research Institute filed Critical Haining Advanced Semiconductor And Intelligent Technology Research Institute
Priority to CN201910553732.6A priority Critical patent/CN112130899A/zh
Publication of CN112130899A publication Critical patent/CN112130899A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register 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)状态下无效。
CN201910553732.6A 2019-06-25 2019-06-25 一种堆栈计算机 Pending CN112130899A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115237475A (zh) * 2022-06-23 2022-10-25 云南大学 一种Forth多核堆栈处理器及指令集

Citations (5)

* Cited by examiner, † Cited by third party
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位复杂指令集中央处理器

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
(美)BRANKO SOUCEK著: "《微处理器与微型计算机》", 31 December 1976 *
郑世荣: "堆栈存贮器应用和堆栈处理机结构", 《电子技术》 *

Cited By (1)

* Cited by examiner, † Cited by third party
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.
US20090228686A1 (en) Energy efficient processing device
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) 微控制器指令集
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