当前位置: 首页 > 专利查询>艾迪尔公司专利>正文

用于在寄存器栈和存储器资源之间传送数据的方法和设备技术

技术编号:2885749 阅读:240 留言:0更新日期:2012-04-11 18:40
一种计算机实现的用于把寄存器栈(86)里的某通用寄存器(80)的内容传送到主存储器(82)里的后备存储器(94)中的单元上的方法和设备。当向后备存储器里的单元传送通用寄存器的内容时,本发明专利技术推荐在一个临时集合寄存器(108或110)中收集寄存器预定组中每个通用寄存器所包含的属性位。一旦填满该临时集合寄存器,就把该寄存器中的内容写到后备存储器里的下一个可用的单元上。类似地,在从后备存储器恢复各寄存器时,把后备寄存器中保存的属性位的集合发送到临时集合寄存器。然后,把每个属性位和相关的数据一起保持到通用寄存器中,从而恢复每个通用寄存器以前的内容。(*该技术在2018年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般地涉及微处理器的体系结构状态。具体地,本专利技术涉及用于在寄存器栈和由微处理器的存储器定义的后备存储器之间传送数据的方法和设备。寄存器栈可由微处理器的一些通用寄存器构成,这些寄存器被指定成用于存储由该微处理器执行的某已存储的程序的各过程所要求的以及有关的数据。具体地,一旦执行某特定过程,就在该寄存器栈内建立一个和该过程相关的栈帧。栈帧包括保留的寄存器组(含有有关过程的本地变量)、赋活记录和帧标记。当某过程调用另一个过程时,被调用的帧接着在该调用过程的栈式帧的顶上建立另一个栈式帧。从而,对于其中要执行一些嵌套过程的程序,寄存器栈可包括对应数量的栈帧。从而寄存器栈通过在单片上的寄存器组中堆栈多个相关的栈帧能使多个过程有效地共享一个大的寄存器文件。程序的典型调用/返回模式呈现出高频的调用/返回但其范围较小。寄存器栈明显地减少过程调用点处的存储数量(即寄存器节约)并且明显地减少过程返回点处的装入(即寄存器恢复),从而提供对和嵌套过程有关的信息的“高速缓存”。随着处理器运行频率的加快快于对存储器资源(例如RAM)的存取时间的缩短,减少由于过程调用和返回所造成的由程序进行的存储器存取次数,在性能上可提供好处。从模块化的流行、面向对象的程序设计以及采用动态链接库的角度来看,该优点变得更为突出。由于寄存器栈长度有限,可以理解在深嵌套过程调用序列下,寄存器栈的容量可能被超出,造成所谓的“信息漏失”。在这样的情况下,必须从寄存器栈把某些前面的栈帧的寄存器传送到后备存储器中,以便创造寄存器栈内的容量。类似地,由于过程回送而使寄存器栈变空,需要把已存储到后备存储器中的前栈帧的寄存器恢复到寄存器栈中。当寄存器栈的寄存器中所包含的位数不是后备存储器所驻留的存储器资源定址所采用的定址模式的倍数的情况下,寄存器栈和后备存储器之间的栈帧传送可能是有问题的。依据本专利技术提供一种用于从寄存器帧向存储器资源或存储部件传送数据的设备。该设备包括一个临时存储器和传送逻辑。该传送逻辑把寄存器栈里的第一寄存器内容中的N位传送到存储器资源中的第一单元,并且还把第一寄存器内容中的M位传送到临时存储器中的第一单元。当已经在寄存器栈和存储器资源之间出现预定数量的数据传送时,该传送逻辑把临时存储器的累积内容传送到存储器资源中的第二单元。从附图以及下面的详细说明,本专利技术的其它特征将会清楚。本专利技术是通过示例的方式示出的并且不受各附图的限制,其中用相同的标号表示类似的部件,附图是附图说明图1示意表示可在其中实现和运用本专利技术的一种计算机系统。图2示意表示可在其中实现和运用本专利技术的一种处理机。图3示意表示一种依据本专利技术的一种实施例的设备,其用于在寄存器和存储器资源之间传送数据。图4是一个流程图,表示一种依据本专利技术的用于把寄存器中的内容存储到存储器资源中的方法。图5是一个流程图,表示一种依据本专利技术从存储器资源中恢复寄存器的内容的方法。图6示意表示依据本专利技术的在主存储器中构建出的后备存储器。说明一种在集成电路内的用于在寄存器和存储器资源之间传送数据的方法和设备。在下述说明中,出于解释的目的,为了对本专利技术提供完整的理解,陈述了许多具体细节。然而对于业内人士,很明显,可以不在这些具体细节下实现本专利技术。计算机系统和微处理器概述参见图1,图1以方块图的形式示出计算机系统10的概况,该系统可和所说明的任一本专利技术的实施例一起使用。请理解,虽然图1用于提供一种计算机系统的总描述,但未示出该系统的某些细节。如公开本专利技术所需的那样,参照本说明书所提供的其它附图描述其它细节。此外,本专利技术是通过示范实施例说明的。在本专利技术的范围内业内人士可设想替代实施例。如图1中所示,计算机系统10包括一条用于在处理器14和总线桥路16之间传递信息的处理器总线12。处理器14还通过一条专用总线和二级(L2)高速缓存器18连接。处理器14通过总线桥路16和计算机系统10的其余部分通信,和总线桥路16连接的有三级(L3)高速缓存器20以及典型地为随机存取存储器(RAM)的主存储器22。为了便利一些外围设备、处理器14和主存储器22之间的通信,系统总线24还和总线桥路16连接。在系统总线24和相关的外围设备之间连接着一些专用输入/输出(I/O)端口26。外围设备包括显示器28(例如阴极射线管(CRT)或液晶显示器(LCD))、字母数字输入部件30(例如键盘)、光标控制部件32(例如鼠标或其它指点器)、硬拷贝部件34(例如打印机或提供计算机图象的可视表示的绘图仪)以及信号生成部件36(例如麦克风或扬声器)。计算机系统10还包括一个海量存储部件38,例如磁盘以及相关的经专用I/O端口26连接于系统总线24的驱动器。现参照图2,图中以方块图的形式更详细地说明图1的处理器14。处理器14包括一个总线接口单元40,后者提供微处理器14和系统总线12之间的接口。总线接口单元40连接成允许预取器42通过指令高速缓存器44访问计算机系统10的主存储器22。预取器42经总线接口单元40从指令高速缓存器44或从主存储器22检索由指令指针定址的指令。转移预测单元46为预取器42检索的转移指令提供推测性预测,并且还根据是否发生预测的转移输出对顺序存储器地址或目标存储器地址定址的指令指针。在复杂指令集计算(CISC)体系结构下,预取器42把指令传送到译码器48,以便译码成一组供下游处理的微操作。受控只读存储器(ROM)50和译码器48连接并从译码器48接收入口点。译码器48和受控ROM50向控制单元52提供微操作。可以理解,在精简指令集计算(RISC)实施方式下,可以从处理器体系结构中省略指令译码器48和受控ROM50。控制单元52分别向整数执行单元54和浮点执行单元56提供供执行用的整数指令或浮点指令。整数执行单元54及浮点执行单元56在执行指令时访问数据高速缓存器58。还从控制单元52向地址生成单元60提供微操作,而地址生成单元60生成和翻译地址信息。图3示意表示根据本专利技术的一种示范实施例的一组通用寄存器80、主存储器82和传送设备84,传送设备84用于便利通用寄存器组80和主存储器82之间的信息传送。寄存器栈和后备存储器通用寄存器组中的一个子集指定成充当寄存器栈86。例如,可把128个通用寄存器中的96个指定为构成寄存器栈86。在程序执行时,可向每个过程分配寄存器栈中的一定数量的寄存器作为本地栈帧。参照图3,寄存器栈86相应地包括分别和过程A、B、C相关的栈帧88、90和92。每个栈帧88、90和92包括预定数量的具有特定位长的寄存器。在图3中示出的实施例中,寄存器栈中的每个寄存器具有65位的位长。当调用另一个过程时自动地保留每个栈帧。例如,当过程A调用过程B时保留用于过程A的栈帧88。类似地,当过程B调用过程C时在寄存器栈中保留用于过程B的栈帧90。当出现过程的返回时,则从寄存器帧中去掉有关的栈帧。例如,当从过程C返回到过程B时,就从寄存器栈86去掉栈帧92。可理解寄存器栈86的容量是固定的并且有限。在具有大量相继被调用过程的情况下,寄存器栈86可能不具有能容纳所有被调用过程的栈帧的容量,从而寄存器栈可能溢出或“信息漏失”。在这种情况下,必须把一些较老的栈帧保存到主存储器82中被指定成后备存储器94的部分中本文档来自技高网...

【技术保护点】
一种把寄存器的内容存储到存储器资源中的方法,该方法包括步骤: 把第一寄存器的内容中的N位存储到该存储器资源的第一单元中; 把第一寄存器的内容中的M位存储到集合存储器中; 判定该集合存储器是否含有预定位数的要存储的信息;以及 若该集合存储器含有预定位数的要存储的信息,则把该集合存储器的内容存储到该存储器资源的第二存储器单元中。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:约那森K罗斯凯利A考坦特卡罗尔L桑普森阿彻姆德R扎赫
申请(专利权)人:艾迪尔公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1