[发明专利]一种堆栈计算机在审
申请号: | 201910553732.6 | 申请日: | 2019-06-25 |
公开(公告)号: | CN112130899A | 公开(公告)日: | 2020-12-25 |
发明(设计)人: | 关宁 | 申请(专利权)人: | 海宁先进半导体与智能技术研究院 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 314400 浙江省嘉兴市海宁*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 堆栈 计算机 | ||
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)状态加载总线数据寄存器,以确保栈顶缓存寄存器的内容与内存中的栈顶匹配。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于海宁先进半导体与智能技术研究院,未经海宁先进半导体与智能技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910553732.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:数据查询方法、装置、设备和存储介质
- 下一篇:圆形猫盘包边机