[发明专利]用于在堆栈机器中分配虚拟寄存器堆栈的方法有效

专利信息
申请号: 201780013704.4 申请日: 2017-02-27
公开(公告)号: CN108701024B 公开(公告)日: 2023-06-16
发明(设计)人: K·金辛格 申请(专利权)人: 金辛格自动化有限责任公司
主分类号: G06F9/30 分类号: G06F9/30;G06F9/34;G06F9/35
代理公司: 永新专利商标代理有限公司 72002 代理人: 郭毅
地址: 德国拉*** 国省代码: 暂无信息
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 用于 堆栈 机器 分配 虚拟 寄存器 方法
【说明书】:

要解决的问题是寻求已知的指令集架构的替代方案,其提供相同或相似的效果或更更成本有效。解决方案:该问题通过在堆栈机器中分配处理单元的虚拟寄存器堆栈(10)的方法来解决,所述方法包括在所述堆栈机器的物理寄存器文件(17)中分配所述虚拟寄存器堆栈(10)的给定数目的最顶层元素(11),并且在所述堆栈机器的分层寄存器缓存(13)中分配所述虚拟寄存器堆栈(10)的后续元素。

技术领域

发明涉及一种用于在堆栈机器中分配虚拟寄存器堆栈的方法以及相应的堆栈机器、计算机程序、数据载体和数据结构。

背景技术

在计算机科学、计算机工程和编程语言实现中,堆栈机器是指一种处理器,其指令在下推堆栈上而不是在寄存器上操作。传统的堆栈机器通常具有无限大小的堆栈,可以用硅实现或者在标准寄存器机上通过软件模拟。由于大多数机器指令集架构(ISA:Instruction Set Architectures)仅仅定义有限数目的所谓的架构寄存器,因此传统堆栈机器由于低效的堆栈寄存器映射而遭受性能损失。诸如Forth、RPL和各种汇编语言的面向堆栈的编程语言在很大程度上依赖于这种堆栈机器实现。

一种已知的基于硅的堆栈机器实现已经在Hand,Tom所著的“The Harris RTX2000Microcontroller”(Journal of Forth Application and Research6.1(1990年):第5-13页)中公开。对于在编译器设计的上下文中软件模拟堆栈机器的寄存器分配方法的讨论,参见SHANNON,Mark;BAILEY,Chris所著的“全局堆栈分配——用于堆栈机器的寄存器分配(在2006年Euroforth会议议程中)”。

发明内容

所要求保护的发明在下文中以这样的方式公开,即可以理解其所处理的技术问题并且可以理解该解决方案。

技术问题

要解决的问题是寻求已知指令集架构的替代方案,其提供相同或相似的效果或更成本有效。

问题的解决方案

为了阐明解决方案的性质,参考独立权利要求的特征部分。

发明的有利效果

本发明引起高效的数据处理、高效的数据存储和增强的安全性。

附图说明

图1示出处理单元的进程管理;

图2示出寄存器文件;

图3示出逐个元素增大的虚拟寄存器堆栈的简单示例;

图4示出相同用例的更复杂的实例。

具体实施方式

本发明引入处理器特定架构的抽象化并且命名为通用寄存器,这些寄存器是所有已知的现有技术处理器的和ISA的关键设计元素。(这些通用寄存器在下文中将简称为“寄存器”并且与保存诸如堆栈指针之类的程序状态或对应于专用硬件元件的专用寄存器区分开。)为此,实施例创建了一种通用抽象类型的寄存器,该寄存器在虚拟寄存器空间中声明并且通过ISA操作码借助于虚拟地址(与现有技术的单独“寄存器名称”相对)来寻址。在这个意义上,本发明定义了一种堆栈机器,其包括完全可寻址的虚拟寄存器堆栈和ISA。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于金辛格自动化有限责任公司,未经金辛格自动化有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201780013704.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top