信息处理系统中的协同式多任务处理方法及信息处理系统的制作方法

文档序号:6462481阅读:193来源:国知局

专利名称::信息处理系统中的协同式多任务处理方法及信息处理系统的制作方法
技术领域
:本申请涉及信息处理系统,并且更加特别地,涉及使用用于存储来自多个程序或小应用程序的指令结果的寄存器文件的处理器系统。
背景技术
:信息处理系统(informationhandlingsystem,IHS)可以包括用于信息处理、操作、通信或其它操作的多个处理器。每个处理器自身可以包括共同工作以处理信息的多个处理器内核。处理器或处理器内核可以包括处理器功能单元,如堆栈指针、程序计数器、取指和译码单元、发送(issue)和执行单元、寄存器文件,和其它处理器单元。处理器单元与处理器系统软件功能协作地形成处理器系统。处理器系统软件可以包括高等级操作系统(OS)或者管理处理器系统内部的处理器功能单元的其它软件。应用程序软件典型地包含在处理器系统的操作系统软件下运行的一系列软件指令。应用程序软件可以贮存在系统存储器直到操作系统软件指示处理器系统读取和执行应用^^序软件指令。应用程序软件可以包含在软件应用程序软件的控制下运行的小应用程序(a卯let)或者多个更小的小应用程序。小应用程序是以小的可执行模块运行的一系列小应用程序指令或指令文本。Java编程语言是许多专业软件(softwareprofessionals)共同与小应用程序相关联的语言(Java是太阳计算机系统有限公司的商标).小应用程序是需要完整软件应用程序来包含或管理它们的小段可执行代码。小应用程序在虚拟机中的应用程序内部运行。虚拟机是形成小应用程序可以执行的环境的一组处理器系统资源和指令。小应用程序典型地必须相互协同地运行在多任务处理环境中,因此,软件应用程序可以包含以协同的多任务处理方式共同运行的多个小应用程序。软件应用程序和操作系统软件以及处理器硬件必须管理小应用程序状态以避免沖突。例如,小应用程序状态包括小应用程序硬件寄存器文件值、小应用程序程序计数器数据、小应用程序存储器数据值,和其它小应用程序数据。多任务处理环境,即多个应用程序也就是多个并发运行的小应用程序,在从一个小应用程序的执行过渡到另一个的执行的期间需要对小应用程序的状态进行仔细地管理。典型地,当小应用程序撤销(deactivates)或者临时挂起(suspend)操作时,OS软件在系统存储器和本地硬件寄存器文件中保存小应用程序状态信息。因此,OS软件能够在后面的时间中从存储器恢复或修复小应用程序状态信息并且重新激活用以在处理器系统内操作的在前小应用程序。多个小应用程序可以以通过在OS软件的控制下撤销和重新激活的方式而并发地运行并且因此可以使用仅仅一个处理器系统的硬件。小应用程序切换是撤销一个小应用程序并且激活相同处理器系统资源内的另一个小应用程序的机制。小应用程序切换消耗系统存储器和其它处理器系统资源。这种资源消耗是因为OS软件管理小应用程序状态值以及因此导致的处理器系统的开销(overhead)增加而出现。不适当的小应用程序状态管理可能导致处理器系统异常运行并且导致处理器系统软件死锁、系统存储器减少或其它负面的处理器系统状态影响。操作系统软件可以将处理器系统资源(如系统存储器、硬件寄存器和其它处理器系统资源)划分为小应用程序分部(division),以在多任务处理环境中的小应用程序切换期间消除小应用程序之间的任何重叠。还可以将寄存器文件位置划分为离散的小应用程序分部或分区以支持多于一个的数据值的小应用程序集.在此情况下,小应用程序状态的寄存器文件小应用程序数据值不需要在每个小应用程序切换期间从系统存储器读取或写入。然而,因为寄存器文件具有数目有限的文件位置,复制能够并发运行的相似或相同小应用程序是一种效率低的用以管理多个小应用程序的方法。小应用程序包含定义处理器操作的一系列小应用程序指令文本或者指令序列。小应用程序的共同功能或指令文本是对处理器系统内的硬件寄存器文件的读取或写入。寄存器地址典型地是立即值(immediatevalues),即实际值(realvalues)或者地址指针。因为寄存器地址是立即值,小应用程序指令文本必须对寄存器文件位置进行直接寻址。在多个小应用程序执行相同指令文本的情况中,寄存器文件寻址的管理变成了关键问题。因为撤销和激活小应用程序需要处理器系统资源的显著开销,因而需要管理相同小应用程序的另一种方法。一种管理相同小应用程序而不具有重写寄存器文件位置的风险的方法包括针对每个小应用程序的使用而唯一地划分寄存器文件。每个相同的小应用程序可以在存储器中具有其自身的副本。编程人员或编译软件重写小应用程序的每个副本以修改寄存器文件地址,从而对OS软件指定给该特定小应用程序的唯一分区进行寻址。例如,使用寄存器文件分区以执行8个共同小应用程序的处理器系统可能需要相同程序指令文本的8个副本。而且,寄存器文件地址典型地必须被预先选择以表示8个不同的寄存器文件分区。该方法需要小应用程序的复制、寄存器文件地址的重写,并且最终消耗宝贵的存储器资源。所需要的是解决与上述的在处理器系统的多任务处理环境中管理多个小应用程序相关联的问题的方法和装置。
发明内容因此,在一个实施例中,一种信息处理系统中协同式多任务处理方法被公开,在一个实施例中,该方法包括通过取指和译码单元,从存储器中的第一和笫二小应用程序之一取指令,从而提供所取的指令,该方法还包括如果所取的指令来自第一小应用程序,则为所取的指令分配第一小应用程序ID,如果指令来自第二小应用程序,则为所取的指令分配第二小应用程序ID,该方法进一步包括通过发送和执行单元执行所取的指令从而提供指令结果。该方法仍进一步包括通过定向器电路,如果所取的指令展示(exhibits)第一小应用程序ID则将指令结果定向至寄存器文件的第一分区中的寄存器,并且如果所取的指令展示第二小应用程序ID则将指令结果定向至寄存器文件的第二分区中的寄存器。在另一个实施例中,包括存储软件程序的第一和第二小应用程序的存储器的信息处理系统(IHS)被公开。IHS还包括处理器,耦接至存储器。处理器包括取指和译码单元,用以从存储器中的第一和第二小应用程序之一取指令,从而提供所取的指令。处理器还包括小应用程序ID存储器,如果所取的指令来自第一小应用程序则为所取的指令分配第一小应用程序ID,如果指令来自第二小应用程序,则为所取的指令分配第二小应用程序ID。处理器进一步包括发送和执行单元,耦接至取指和译码单元,执行所取的指令从而提供指令结果,处理器仍进一步包括寄存器文件,所述寄存器文件包括具有多个寄存器的第一分区和具有不同的多个寄存器的第二分区。处理器还包括耦接至作为输入的发送和执行单元和小应用程序ID存储器以及作为输出的寄存器文件的定向器电路。定向器电路,如果所取的指令展示第一小应用程序ID,则将指令结果定向至寄存器文件的第一分区中的寄存器,如果所取的指令展示第二小应用程序ID则将指令结果定向至寄存器文件的第二分区中的寄存器。附图仅仅例示了本发明的示例性实施例并且因此不限制本发明的范围,因为发明原理可以应用于其它等效实施例。图1A显示了小应用程序指令文本的表示。图IB显示了被分区的处理器系统寄存器文件的表示.图2是描述用于多个小应用程序的执行和跳转(branching)的传统方法的流程图。图3显示了使用小应用程序指令文本的处理器的框图。图4显示了具有所公开的寄存器文件分区方法的所公开的处理器系统的框图。图5A显示了所公开的处理器系统使用的定向器电路的输入和输出的二进制表示。图5B显示了所公开的处理器系统使用的定向器电路的输入和输出的二进制表示的另一个示例。图6A是描述所公开的处理器系统和方法中的寄存器文件分区的框图。图6B是描述所公开的处理器系统和方法中的寄存器文件分区的另一个示例的框图。图6C是描述所公开的处理器系统和方法中的寄存器文件分区的又另一个示例,即使用固定和共享寄存器文件分区的框图。图7是描述所公开的寄存器文件分区和小应用程序ID管理方法的一个实施例的流程图。图8是使用所公开的寄存器文件分区和小应用程序ID管理方法的信息处理系统的框图。具体实施例方式在由操作系统(OS)软件操作的多任务处理器系统中,小应用程序或小型应用程序可以在专用操作系统控制下彼此通信。为了避免小应用程序之间的冲突,每个小应用程序在相同处理器系统中协同运行时典型地必须遵循共同的规则集。因为每个小应用程序共享处理器系统资源,一个小应用程序在没有OS软件的同意时不应该修改另一个小应用程序的小应用程序状态信息。OS软件典型地必须保护小应用程序状态信息如程序计数器、堆栈指针、寄存器文件(registerfile)数据,和其它状态信息。在协同式多任务处理环境中,小应用程序能够跨越(across)小应用程序状态进行读取和写入。小应用程序典型地是相同软件应用程序的段或片。在一个传统的多任务处理环境中,在任何特定时间点仅仅一个小应用程序执行,但是小应用程序状态,如程序计数器、寄存器文件值等等,可以在小应用程序间跳转(branch)。OS软件通过在存储器中临时地存储小应用程序状态信息(如程序计数器、寄存器文件值,和其它状态信息),并且与小应用程序之间的跳转进行交换来管理多个小应用程序状态。这种方法的一个主要问题是被OS软件消耗以管理这种小应用程序切换的系统资源的数目,如存储器和处理器系统时钟周期。循环(Rotating)寄存器文件是解决当处理器系统执行多个小应用程序时复制代码和跳转开销的问题的另一种方法。OS软件将寄存器文件地址组织为与小应用程序指令文本所需的大小相同的分区或帧。在该方法中,小应用程序指令文本必须包括指定寄存器文件地址至寄存器文件中的新位置的循环帧命令。该方法不需要上述扩展存储器使用和跳转技术的开销。然而,软件应用程序典型地必须保持小应用程序指令文本内的循环帧命令,从而导致不期望的小应用程序大小的增加。而且,帧循环在小应用程序太大而不能允许已有的寄存器文件中的多个帧大小的环境中不能有效地运行。下面的表1显示了来自更大的小应用程序的单个指令或指令文本,单个小应用程序指令(ldr6,15)是指示处理器系统"写入数据值15至寄存器6"的代码序列。在该示例中,小应用程序指令指示处理器系统硬件和操作系统以执行值15到处理器系统内的寄存器文件位置6的写入。表lldr6,15图1A描述了表1的小应用程序指令文本的二进制表示。指令文本的三个条目的第一个是操作码110、寄存器文件地址120和立即数据值130。操作码(opcode)110表示定义该特定小应用程序指令的主要操作的写寄存器指令10100,寄存器文件地址值120指定处理器系统将要写入的寄存器文件中的特定寄存器位置。在该特定示例中,"6"或者二进制0110是表1的指令文本中的第二个条目。因此,小应用程序指令写入立即值至寄存器6,即第三个条目130指示的实际数据值。在此情况下,表l的指令文本的最后和第三个条目是图1中"15"或者二进制1111的数据值130。因此,二进制1111是处理器系统针对该特定小应用程序指令而写入至寄存器文件的特定寄存器6的立即数据值。表l的指令文本表示更大的小应用程序指令序列中的一个指令。更大的指令集可以表示小应用程序0指令集或者序列。在相同多任务处理器系统中并发执行的可以是另一个小应用程序指令集即,小应用程序1。小应用程序0和小应用程序1表示可以在支持多任务处理环境的处理器系统中并发运行的多个小应用程序中的两个小应用程序。一种理解在多任务处理环境中共享寄存器文件的基本方法是考虑小应用程序0和小应用程序l是相同小应用程序的情形。OS软件期望在相同处理器系统资源内同时协同式地执行小应用程序0和1。相同的小应用程序常见于向量处理中如在计算机图像显示中重复操作图形图像。相同的小应用程序0和小应用程序l共享如表l中所描述的寄存器文件地址代码。如果小应用程序0的指令文本在执行期间使用8个寄存器文件位置,即寄存器文件地址0至7,小应用程序l必须通过不使用相同寄存器文件位置来避免与小应用程序1冲突。一种用以允许小应用程序0和小应用程序1协同式地运行的方法是重新指定小应用程序1的寄存器文件地址值为新寄存器文件分区。换言之,一种解决方案是调整或修改小应用程序1以重新指定所有的寄存器值为寄存器文件的新区域。按照这种方式,小应用程序0可以使用寄存器0至7,而编程人员或编译软件修改相同的小应用程序1为引用除寄存器0至7以外的新的8个寄存器分区。例如,编译器軟件可以修改小应用程序1以按照值8来移动或偏移每个寄存器文件地址。更具体地,小应用程序1的每个寄存器文件地址引用是对小应用程序0的寄存器文件地址的复本加上偏移量8.按照这种方式,小应用程序1将对寄存器文件的寄存器8至15进行寻址。在小应用程序0写入数据值至寄存器6的表1的示例中,小应用程序1的相应指令文本引用寄存器地址6加上偏移量8,即寄存器文件地址14。下面的表2表示了具有处理器系统可能解释的跳转指令在其间的两个小应用程序指令文本行代码。第一个小应用程序0指令文本(ldr6,15)指示处理器系统导入或写入立即数据值15至寄存器6。接下来,跳转命令(br,apl)指示处理器系统切换至小应用程序1。小应用程序l的(ldr14,15)指令对应小应用程序0的(1dr6,15)指令。换言之,两个小应用程序导入或写入指令中的每一个除寄存器文件地址值之外均相同。小应用程序1的相应(ldrl4,15)指令文本指示处理器系统将立即数据值15写入至寄存器14。表2ldr6,15br,ap11drl4,15图1B是包括一组16个寄存器0-15的寄存器文件140的表示,其中操作系统(OS)软件分组或者分区为每组8个寄存器的两个组。在该示例中,每个寄存器的地址对应寄存器的编号。例如,寄存器0展示了地址0,寄存器l展示了地址l,并且如此向上至展示地址15的寄存器15。小应用程序0使用如分区140A所示的寄存器文件地址位置0至7。为了运行与小应用程序0相同的小应用程序,编程人员或软件编译器例程修改小应用程序0的指令文本以调整每个寄存器文件地址引用为新分区140B。例如,小应用程序1包括为小应用程序0的指令文本的副本的指令文本,除了编译器软件将每个寄存器文件地址引用增加偏移值8。图1B显示了展示总共16个寄存器的寄存器文件大小的寄存器文件。通过示例的方式,针对小应用程序0写入至寄存器6的特定指令文本,小应用程序1的相应指令将写入至寄存器14,即6加上偏移量8。如图1B所示,寄存器文件分区140B的寄存器8至15表示在整个小应用程序1指令文本集中使用的寄存器组。按照这种方式,小应用程序0和小应用程序1可以在没有重写其它小应用程序的寄存器文件数据的风险时并发运行。图2描述了运行以传统方式管理多个小应用程序的操作系统(OS)软件的处理器系统的流程图。对于该示例,OS软件在多任务处理软件和硬件环境中运行小应用程序0和小应用程序1。多任务处理软件操作启动于开始框210。OS软件从处理器系统存储器读取包含小应用程序0指令文本的应用程序软件的第一行。OS软件执行小应用程序0代码,如执行小应用程序0代码框220。OS软件接着读取或导入软件应用程序的下一个指令。在该示例中,该下一个指令对应不同的小应用程序,即小应用程序1。响应于遇到从小应用程序0跳转至小应用程序1的这种指令,OS软件存储小应用程序0的处理器系统状态并且跳转至小应用程序1代码,如跳转至小应用程序1代码框230。在OS软件控制下的处理器系统接着执行小应用程序1代码,如执行小应用程序l代码框240。上述的执行和跳转至新小应用程序过程通常被称为"小应用程序切换操作"。通过存储小应用程序0的状态条件,OS软件接着能够切换回小应用程序0的代码指令并且继续处理其中的指令文本。OS软件跳转至小应用程序0,如跳转至小应用程序0代码框250。OS软件在决定框260执行测试以确定是否所有的小应用程序被完成。如果软件应用程序包含更多小应用程序指令文本,决定框260返回假结果,流程继续返回至小应用程序代码执行继续的框220。如果软件应用程序被完成,即所有的小应用程序代码被完成,那么所有小应用程序完成决定框260返回真结果并且图2的多任务处理操作完成,如结束框270。图2的方法于在多任务处理器系统中运行任意数目的多个小应用程序时特别有用。然而,这种方法的主要缺点是编程人员或编译软件典型地必须复制每个小应用程序。每个小应用程序,不论与另外的小应用程序多么相同,除了寄存器文件地址指针可能被偏移以与寄存器文件分区对齐外,在整体上都是复制版本。其表明多个小应用程序占用多个系统存储器位置.图2清楚地描述了在2个小应用程序运行的例子中,系统存储器必须包含2个代码副本以及跳转开销。3个相同的小应用程序需要3个代码副本,4个小应用程序需要4个代码副本,等等。容易看到随着小应用程序数目的增加,处理器系统存储器和资源需求递增地并且充分地增长。图3是简化的传统处理器系统300,即具有寄存器文件写入能力的处理器310的框图。小应用程序指令文本形式的小应用程序软件贮存在典型地位于处理器内核或处理器310之外的系统存储器320。处理器300包括若干功能单元如取指和译码单元340以及发送和执行单元350。系统存储器320耦接至取指和译码单元340。取指和译码单元340负责从系统存储器320取程序指令并且译码指令文本以用于处理器310内的解释和使用。更具体地,取指和译码单元340接收程序指令数据作为输入,并且将指令数据译码为表示其指令流的数据流的一系列微操作。微操作或汇编语言指令是处理器系统中使用的基本计算机语言。操作系统(OS)软件330控制处理器310和其中的功能单元的操作。操作系统(OS)软件330通过从系统存储器320读取小应用程序指令文本至取指和译码单元340而启动取指和译码操作。取指和译码单元340耦接至发送和执行单元350中的发送队列。发送和执行单元350累积取指和译码单元340作为微操作而提供的指令。发送和执行单元350累积多个小应用程序软件如小应用程序0指令文本和小应用程序1指令文本。发送和执行单元350耦接至寄存器文件360并且提供用于小应用程序导入或写入指令至当前寄存器文件地址并写入数据至寄存器文件360的硬件机制。针对表1和图1A以及图1B的操作码示例,发送和执行单元350写入数据值15至寄存器文件360的寄存器6。发送和执行单元350的该写入动作发生在其指令操作码文本的执行期间.而且,在发送和执行单元350的操作期间,处理器310使用处理器单元如程序计数器370、条件寄存器372、专用寄存器(specialpurposeregister)374、堆栈指针376,以及未示出的其它处理器单元。处理器310的发送和执行单元350耦接并且提供机制以写入或存储数据至系统存储器320。图3的处理器系统300进一步示出了编程人员和系统设计人员使用多任务处理器系统时与其相关联的一个问题,更具体地,小应用程序管理问题在寄存器文件360硬件直接耦接至发送和执行单元350时出现。如果多个小应用程序在多任务处理环境中执行相同代码序列或小应用程序指令文本,操作系统(OS)软件330典型地必须针对每个小应用程序分割或划分寄存器文件360为分区,即离散的大小相等的寄存器文件区域。OS软件330可以以每个小应用程序的方式管理寄存器文件分区的分配。软件编程人员或编译软件典型地重写小应用程序指令文本以关联寄存器文件读取或写入操作的每个引用和适当的寄存器文件分区。这种重写操作导致系统存储器320中小应用程序指令文本的浪费性地完全复制以及处理器系统300中管理额外的小应用程序指令文本的开销。更大量的小应用程序指令文本不仅需要更多的系统存储器,而且还在取指、译码、发送和执行操作期间消耗更大量的处理器系统300资源和操作。一种理解传统的在多任务处理环境中共享寄存器文件的方法是考虑寄存器文件360包括128个寄存器的情形。一个软件应用程序可以包括每一个使用8个寄存器的16个相同的小应用程序。因为16个小应用程序乘以8个寄存器的结果是总共128个寄存器的寄存器文件大小,16是这个处理器系统针对这种特定小应用程序而可以执行的小应用程序的最大数目。图4显示了所公开的包括具有小应用程序标识符(ID)寄存器功能的处理器410的处理器系统400的框图。小应用程序软件415中的一个或更多小应用程序以小应用程序指令文本形式贮存在位于处理器内核或处理器410之外的系统存储器420中。系统存储器420耦接至处理器410内的取指和译码单元440。取指和译码单元440负责从系统存储器420中的小应用程序415取程序指令并且译码小应用程序的指令文本以用于处理器410内的解释和使用。更具体地,取指和译码单元440接收程序指令数据作为输入,并且将其中的指令文本数据译码为一系列微操作。这些微操作形成了取指和译码单元440从系统存储器420中的小应用程序软件415接收的指令流的数据流。操作系统(OS)软件430控制处理器410和其中的功能单元的操作。操作系统(OS)软件430通过从系统存储器420读取小应用程序指令文本至取指和译码单元440而启动取指和译码操作。取指和译码单元440耦接至包括发送队列的发送和执行单元450,发送和执行单元450累积取指和译码单元440作为微操作提供的指令。发送和执行单元450,在OS软件430的指示下,管理多个小应用程序如小应用程序0指令文本和小应用程序1指令文本。并发地进行这样的管理,(OS)软件430启动存储小应用程序ID数据至存储器位置,即小应用程序ID寄存器460。操作系统软件430保持对应于由处理器系统400使用的当前活动小应用程序的唯一小应用程序ID。小应用程序ID寄存器460的输出耦接至下面将更加详细地描述的或单元(ORunit)465的两个输入中的一个。在该示例中,小应用程序ID寄存器460耦接至或单元465的输入465A以向其提供小应用程序ID。如图所示,或单元465耦接在发送和执行单元450和寄存器文件470之间。或门465因此提供发送和执行单元450和寄存器文件470之间的间接耦接。访问寄存器文件470的小应用程序指令文本包括寄存器文件地址和数据值。发送和执行单元450耦接至或单元465的剩佘输入465B以在地址总线454上提供通常称为"线程ID"的寄存器地址值。发送和执行单元450还耦接至寄存器文件470的输入470B以在数据总线456上向寄存器文件提供数据。或单元465生成输入465A上的输入"小应用程序ID"和输入465B上的"线程ID"的二进制结果并且在或单元465的输出上呈现结果。或单元465耦接至寄存器文件470以向其提供寄存器文件地址。如下面的等式l所示,或单元465在其输出上提供的寄存器文件地址是来自小应用程序ID寄存器460的小应用程序ID与线程ID进行或的结果,或者来自发送和执行单元450的小应用程序指令文本值输出。等式l寄存器文件地址-小应用程序ID"或"线程ID在一个代表性实施例中,寄存器文件470包括128个离散的可寻址文件位置,即128个寄存器,每个寄存器具有各自地址或者数字代码,在发送和执行单元450操作期间,处理器410使用处理器功能单元如程序计数器480、条件寄存器482、专用寄存器484、堆栈指针486,以及未示出的其它处理器单元。处理器410的发送和执行单元450耦接至系统存储器420,并且提供机制以写入数据至系统存储器420。在该装置和方法的一个实施例中,系统存储器420包括小应用程序软件415内的小应用程序0的指令文本和小应用程序1的相同的指令文本。传统的软件应用程序可以包括对它们自身内部的多个小应用程序的指针或者引用。例如,传统的软件程序应用程序可以包括指令文本以并发地运行小应用程序和该小应用程序的副本。然而,在所公开的装置和方法中,小应用程序1指令文本不需要对系统存储器420的小应用程序软件415中的小应用程序0的完全复制。而且,OS软件430使用OS软件为小应用程序0所保持的相同系统存储器指令文本,并且针对小应用程序1再次相同地使用它。OS软件在小应用程序ID寄存器460中保留或保持小应用程序ID数据值。编译器软件488在系统软件的编译期间定义小应用程序ID数据值以追踪每个单独的小应用程序。在该示例中,小应用程序0和小应用程序1都需要使用寄存器文件470中总共128个寄存器中的8个寄存器。因此,操作系统软件430需要使用寄存器文件470中可用的128个寄存器中的16个寄存器以管理小应用程序0和小应用程序1。对于该示例,来自系统存储器420的小应用程序软件415的小应用程序指令文本不需要副本。OS软件430关联每个小应用程序的小应用程序ID,即小应用程序0和小应用程序1,提供两个相同程序之间的区别。在一个实施例中,小应用程序ID提供两个相同程序,小应用程序0和小应用程序1之间的区别。如果小应用程序0包括使用寄存器0至7的操作码,即寄存器文件分区470-0,小应用程序l仍然可以通过使用寄存器8至15,即寄存器文件分区470-1来执行,而不冲突。小应用程序ID寄存器460和或单元465提供机制以调整小应用程序1指令代码,在运行中(onthefly),使用寄存器8-15以替代相同的程序0使用的寄存器0-7。小应用程序1通过有效地添加数据值或偏移量8至每个寄存器地址值的软件和硬件机制而使用寄存器8-15,在这个特定示例中。更具体地,在一个实施例中,OS软件430通过或单元465的或掩码(masking)功能而修改小应用程序1的每个寄存器地址值。按照这种方式,或单元465作为定向器电路(DIR.CKT.)根据发送和执行单元当前执行的指令的小应用程序ID而在总线456上发送结果数据至寄存器0-7(分区470-0)或者寄存器8-15(分区470-1)。这种指令结果数据,或者指令结果,是发送和执行单元450执行当前指令的结果。发送和执行单元450在其地址输出454生成的地址信息指定了寄存器文件470中寄存器文件将要存储结果数据的目标寄存器地址,除非或单元465修改该地址。如上所解释的一样,如果小应用程序ID指示当前指令来自小应用程序0则或单元465可以保持目标寄存器地址不变。在此情况下,或电路465提供指令结果,即数据,至分区470-0中的寄存器。然而,如果小应用程序ID指示当前指令来自小应用程序1,那么或单元465将改变目标地址至小应用程序0不使用的范围或分区内的寄存器地址,即该示例中的分区470-1。操作系统软件430在小应用程序ID寄存器460中保持小应用程序IDO。更具体地,OS软件为小应用程序O在小应用程序ID寄存器460中保持十六进制(hex)0或者二进制0000的小应用程序ID。操作系统软件430还为小应用程序1在小应用程序ID寄存器460中保持十六进制8或者二进制1000的小应用程序ID。因为每个小应用程序指令在准备执行时到达发送和执行单元450,对寄存器文件470的任何读取或写入指令放置被称为"线程ID"的原始寄存器文件地址在或单元465的输入465B。操作系统软件430保持小应用程序ID寄存器460的输出和在发送和执行单元450中当前执行的任何小应用程序一致。OS软件430还使用小应用程序ID寄存器460以在小应用程序指令文本执行期间保持小应用程序状态。小应用程序ID是或单元465施加至小应用程序指令文本的线程ID以在寄存器文件470的输入470A生成适当的寄存器文件地址的或模式或者掩码。或单元465为小应用程序0施加一个掩码并且为小应用程序1施加另一个掩码,从而寄存器文件输入470B的数据值转换为针对小应用程序0的寄存器0-7或者针对小应用程序1的寄存器8-15。来自OS软件430的用户模式指令写入小应用程序ID至小应用程序ID寄存器460。在小应用程序切换期间,OS软件430通过专用寄存器484的读取和写入操作而在处理器系统中存储和获取小应用程序ID数据。可替代地,OS软件430可以通过读取来自小应用程序指令文本的跳转指令数据而修改小应用程序ID寄存器460中的小应用程序ID。提供小应用程序ID的小应用程序指令增加具有当前小应用程序指令文本的小应用程序ID的数据至程序计数器480。在一个实施例中,寄存器文件470包括耦接至发送和执行单元450的输出470C以提供来自寄存器文件470的操作数至单元450。在所有寄存器文件分区展示相等大小的一个实施例中,小应用程序ID提供的偏移量等于分区的寄存器数目。例如,如果小应用程序0需要4个寄存器并且小应用程序0分区的大小是4个寄存器,那么处理器用于小应用程序l分区的偏移量就是4。如果小应用程序0需要8个寄存器并且小应用程序0分区的大小是8个寄存器,那么处理器用于小应用程序l分区的偏移量就是8。图5A描述了包含小应用程序ID信息或者数据的处理器系统400的功能单元中的值,即发送和执行单元450、小应用程序ID寄存器460,和或单元465。图5A显示了使用表1的简单小应用程序指令文本作为示例的图4的示例的代表性数据状态。当发送和执行单元450执行小应用程序0时,操作软件430保持在小应用程序ID寄存器460的输出展示值为十六进制0或者二进制0000的小应用程序0ID510(小应用程序ID)。使用表l的单个小应用程序指令测试操作码和操作数,即"Idr6,15",发送和执行单元450在地址总线454呈现十六进制6或者二进制0110的寄存器地址线程ID515(线程ID)值至或单元465的输入465B。寄存器地址线程ID515表示小应用程序0指令文本代码为写入或其它操作而指定的实际小应用程序指令文本寄存器地址,或单元465计算或者确定两个输入值的布尔或函数,即十六进制0和十六进制6,以在或单元的输出上提供十六进制6的结果。或单元465的输出是驱动寄存器文件470的地址输入470A的真实或者实际的寄存器文件地址520,即该例子中十六进制6的值。发送和执行单元450在数据总线456上呈现接着写入十六进制6的寄存器文件位置的数据值15并且小应用程序0指令代码完成对寄存器文件470的写入操作。因此,在小应用程序0的情况中,小应用程序ID寄存器460提供给或单元465的输入465A的小应用程序ID(或掩码),不改变或偏移或单元465提供给寄存器文件470的地址输入470A的地址线程ID。图5B描述了图5A描述的处理器系统400的相同功能单元中的值,除了图5B显示小应用程序1的值。发送和执行单元450中的下一个指令与上述的图5A示例中的指令代码相同,即再次来自表1的示例的"ldr6,15"。然而,操作系统软件430将该指令解释为小应用程序1的一部分。因为来自小应用程序0和小应用程序1的指令文本在结构上相同,其由唯一小应用程序ID寄存器460和或单元465来在该示例的两个小应用程序之间进行区分。因为小应用程序1由发送和执行单元450执行,操作系统软件430保持展示十六进制8或者二进制IOOO的值作为小应用程序ID寄存器460的输出的小应用程序1ID530(小应用程序ID)。再次使用表1的单个小应用程序指令测试操作码和操作数,发送和执行单元450在地址总线454将展示十六进制6或者二进制0110的值的寄存器地址线程ID536值(线程ID)呈现至或单元465的输入465B。或单元465计算或者确定两个输入值的布尔或函数,即十六进制8和十六进制6,以提供十六进制E或者基于10的十进制(dec)14的结果。或单元465的输出是驱动寄存器文件470的地址输入470A的真实或者实际的寄存器文件地址540,即该例子中十六进制E的值。发送和执行单元450在数据总线456呈现接着写入十六进制E或者十进制14的寄存器文件位置的数据值15。小应用程序l接着完成对寄存器文件470的写入操作。因此,不同于针对小应用程序0的写入15至寄存器地址6(即,寄存器6),在小应用程序1的情况中寄存器文件470将写入值15至寄存器地址14(即,8+6)。或单元465因此应用地址偏移量,即小应用程序ID-8,其等于小应用程序0需要的唯一寄存器数目。该地址偏移量保证小应用程序O和小应用程序1不写入寄存器文件470中的相同寄存器。范围从0至7的小应用程序0寄存器文件地址通过或单元465转化为范围从8至15的小应用程序1寄存器文件地址。因此,小应用程序0和1在任何寄存器文件470位置都没有重叠。管理相同小应用程序而不需要在存储器中复制整个小应用程序的这种能力为终端用户提供了更加有效的多任务处理器系统环境。使用或单元465的或掩码功能为软件应用程序编程人员提供了运行大量相同小应用程序而没有用尽寄存器文件470地址位置(即寄存器)的风险的灵活性。操作系统软件还可以在总的寄存器文件470大小的限制内管理许多不同小应用程序寄存器文件大小程序。对于图4至图5的这个示例,寄存器文件470包括总共128个寄存器文件地址位置。在实际操作中,寄存器文件470根据特定应用可以包括更大量或者少量的寄存器文件地址位置或寄存器。图4和图5表示了分区寄存器文件为每一个包括8个寄存器或寄存器文件地址位置的两个寄存器文件分区的示例。寄存器文件470地址包括允许总共16个寄存器的4个位。通过增加总的寄存器地址段至7位,操作系统软件430可以寻址大小为128个地址位置的整个寄存器文件470。图6A描述了图4、图5A和图5B的寄存器文件寻址方案。操作系统软件430指定与每个小应用程序所需的寄存器总数相对应的寄存器文件分区。小应用程序0需要8个寄存器。因为小应用程序l是小应用程序0的相同复制,OS软件430划分相同的寄存器文件470以为小应用程序1保留另外8个唯一寄存器。显示为a000的小应用程序ID描述了其中"a"表示针对每个小应用程序的增量的二进制集.例如,针对小应用程序0,OS软件在小应用程序ID寄存器460中保持0000的小应用程序ID值,其中a-0。该小应用程序ID在任何小应用程序0指令文本的发送和执行期间保持活动.当小应用程序0指令文本发送读取或写入至寄存器文件470,发送和取指单元440将线程ID值,即当前指令文本的目标地址,放置在地址总线454上。对于表l的示例代码,该代表性地址线程ID值是指定寄存器6的十六进制值6。或单元465将十六进制0的小应用程序ID值与十六进制6的线程ID值进行或,其产生十六进制6的结果寄存器文件地址,即,没有地址偏移。十六进制6的结果地址落入在针对小应用程序0的寄存器0至7的两个分区寄存器文件区域中的第一个。更具体地,十六进制6的结果地址在图6A的分区470-0中。图6A还显示了与分区470-0相同大小的第二个分区470-1。分区470-0包括由小应用程序0使用的寄存器0-7并且分区470-1包括由小应用程序1使用的寄存器8-15。当小应用程序1的指令文本到达发送和取指单元450时,表1的相同示例的线程ID也呈现十六进制6的线程ID作为输入至或单元465的输入465B。OS软件保持二进制1000的小应用程序ID值,其中"a"=1以访问寄存器文件470中的两个分区中的第二个。小应用程序ID寄存器460施加其中a-l的二进制1000的小应用程序ID值至或单元465的剩余输入465A。在二进制中,1000对应于十进制的8。因此,或单元465提供的或掩码操作有效地增加十六进制8的偏移量至十六进制6的线程ID值。这导致当前小应用程序1指令写入至十六进制14的寄存器,即十六进制6加上十六进制8的偏移量的和。图6B描述了使用小应用程序ID数据或信息的寄存器文件分区的另一个示例。OS软件保持二进制串bbb,b000的小应用程序ID值。更具体地,词"b"表示能够是"0"或者是"1"值的二进制字段。4个"b"位,表示小应用程序ID数据值能够影响到的寄存器地址的部分,对应寄存器文件470总共128个寄存器中的16个唯一地址。显示为bbb,b000的整个地址段的总分区效果对应于每个寄存器分区8个寄存器的16个寄存器分区。每个寄存器展示不同的寄存器地址,OS软件410可以使用这种特定的分区方法以提供每一个使用8个寄存器的16个相同小应用程序。例如,小应用程序0使用分区470-0中的寄存器文件0至7,小应用程序l使用分区470-1中的寄存器8至15,等等,直到使用分区470-15中的寄存器28-31的小应用程序15。如图6B所示,每个分区对应8个寄存器文件。每个完整地址能够看成是针对小应用程序1的二进制"000,0000"至二进制"000,0111",针对小应用程序1的"000,1000"至"000,1111"等等,直到最后寄存器文件地址"111,1000"至"111,1111"表示针对小应用程序15的显示为119至127的最后分区。图6A和图6B的例子表示在协同式多任务处理环境中的小应用程序软件。两个例子都反应了操作系统软件根据每个寄存器文件分区中寄存器的数目而指定给相同大小的每个分区的针对小应用程序的寄存器文件分区。这种寄存器文件分区机制和方法避免不同小应用程序试图访问寄存器文件中的相同寄存器的小应用程序干扰情形。更具体地,这种方法限制了一个小应用程序读取或写入OS软件通过小应用程序ID表示的方式而关联至其它小应用程序的任何寄存器的能力。尽管这种分区方法有效,但在一些应用中,允许在操作系统软件430的严格控制下的寄存器文件地址位置的一些交叉共享是有用的。通过在小应用程序ID值中包括与线程ID中为"1"位的相同位置对应的"1"位,可以让寄存器共享和固定分区空间在寄存器文件470中共存。图6C就显示了寄存器文件470的寄存器文件地址中的寄存器共享和固定分区空间的这样一个示例。对于该示例,操作系统软件430管理和划分寄存器文件470的32个低地址文件位置,即寄存器0-31。4个小应用程序,即小应用程序20、小应用程序21、小应用程序22,和小应用程序23表示在处理器系统400的一个软件应用程序中运行的小应用程序的完整集。OS软件在小应用程序ID460寄存器中保持二进制00c,cc00的小应用程序ID。换言之,词"c"描述的每个二进制元在OS软件430可以表示为"0"或者"1"位的地址位的范围内。图6C还表示了针对4个小应用程序,即该实施例中的小应用程序20-小应用程序23的4个寻址方案和寄存器文件分配。下面的表3显示了图6C进一步描述的例子的32个寄存器文件位置中的每一个。在该示例中,寄存器文件470划分为5个分区,即包括寄存器0-7的分区470-0',包括寄存器8-11的分区470-1,,包括寄存器12-15的分区470-2,,包括寄存器16-27的分区470-3,和包括寄存器28-31的分区470-4,。分区470-0,、分区470-1,、分区470-2,和分区470-3,是不共享分区,因为小应用程序20使用分区470-O,的寄存器而不与其它小应用程序共享那些寄存器。类似地,小应用程序21使用分区470-l,的寄存器而不与其它小应用程序共享那些寄存器。小应用程序22使用分区470-2,的寄存器而不与其它小应用程序共享那些寄存器,小应用程序23使用分区470-3,的寄存器而不与其它小应用程序共享那些寄存器。然而,小应用程序可以在操作系统对这种共享的控制和管理下共享被共享的分区470-4,。在共享分区470-4,的情况中,操作系统管理这个分区的共享寄存器以防止共享这个共享分区的寄存器的小应用程序之间的冲突问题。表3<table>tableseeoriginaldocumentpage25</column></row><table>操作系统软件430针对4个小应用程序中的一个,即处理器系统400中的小应用程序20的执行期间的使用而在小应用程序ID寄存器460中保持二进制0,0000的小应用程序ID。图6C示出了OS软件针对小应用程序20的使用而创建并且保持了8个寄存器文件位置0至7的分区470-0,。如在表3中更加详细地看到,小应用程序20生成线程ID值0,0000至0,0111,对应分区470-0,中的8个寄存器文件位置。OS软件和处理器系统硬件通过使用或单元465并且提供小应用程序ID0,0000和线程IDO,OOOO至0,0111的输入至或单元465来生成实际寄存器文件地址。或单元465应用布尔或函数至一个或输入值,即小应用程序ID0,0000,而另一个或输入值,即线程ID,在0,0000至O,Olll之间变化,寄存器文件位置0至7针对小应用程序20的使用而变成可用。相反,参考表3,如果小应用程序ID数据值是二进制1,1100,那么小应用程序20可以寻址寄存器文件位置28至31。在这个特定的实施例中,OS软件为在处理器系统400中运行多个小应用程序的软件应用程序的所有其它小应用程序提供寄存器文件位置28至31的共享。图6C和表3显示了4个小应用程序中的第二个,即小应用程序21。操作系统软件430针对处理器系统400中的小应用程序21的执行期间的使用而在小应用程序ID寄存器460中保持二进制0,1000的小应用程序ID。图6C显示了OS软件针对小应用程序21的使用而创建和保持包括4个寄存器文件位置或寄存器8至11的分区470-l,.如在表3中更加详细地看到,小应用程序21生成线程ID值0,0000至0,0011,分别对应4个寄存器文件位置8至11。OS软件和处理器系统硬件通过应用小应用程序ID或输入值0,1000、而另一个或输入值在0,0000至0,0011之间变化来生成实际寄存器文件地址。寄存器文件位置或寄存器8至11因此针对小应用程序21的寻址而变成可用。而且,如果小应用程序ID数据值变成二进制1,1100,那么小应用程序21可以寻址共享的寄存器文件位置28至31。OS软件为在处理器系统400中运行多个小应用程序的软件应用程序的所有其它小应用程序提供寄存器文件位置28至31的共享。图6C和表3还显示了4个小应用程序中的第三个,即小应用程序22。操作系统软件430针对处理器系统400中的小应用程序22的执行期间的使用而在小应用程序ID寄存器460中保持具有二进制0,1100的小应用程序ID。图6C显示了OS软件针对小应用程序22的使用而创建和保持包括4个寄存器文件位置或寄存器12至15的分区470-2,。如在表3中更加详细地看到,小应用程序22生成分别对应4个寄存器文件位置12-15的线程ID值0,0000至0,0011。OS软件和处理器系统硬件通过应用小应用程序ID或输入值O,llOO,同时另一个或输入值在线程IDO,OOOO至0,0011之间变化来生成实际寄存器文件地址。寄存器文件位置或寄存器12至15因此针对小应用程序22的寻址而变成可用。而且,如果小应用程序ID数据值变成二进制1,1100,那么小应用程序22可以寻址共享的寄存器文件位置28至31。OS软件为在处理器系统400中运行多个小应用程序的软件应用程序的所有其它小应用程序提供寄存器文件位置28至31的共享。图6C和表3进一步显示了4个小应用程序中的第四个,即小应用程序23。操作系统软件430针对处理器系统400中的小应用程序23的执行期间的使用而在小应用程序ID寄存器460中保持具有二进制1,0000的小应用程序ID。图6C显示了OS软件针对小应用程序23的使用而创建和保持包括12个寄存器文件位置或寄存器16至27的分区470-3,。如在表3中更加详细地看到,小应用程序23生成分别对应于12个寄存器文件位置16-27的线程ID值0,0000至0,1011。OS软件和处理器系统硬件通过应用小应用程序ID或输入值1,0000而另一个或输入值在线程IDO,OOOO至0,1011之间变化来生成实际寄存器文件地址。寄存器文件位置或寄存器16至27因此针对小应用程序23的寻址而变成可用,而且,如果小应用程序ID数据值变成二进制1,1100,那么小应用程序23可以寻址共享的寄存器文件位置28至31。OS软件为在处理器系统400中运行多个小应用程序的软件应用程序的所有其它小应用程序提供寄存器文件位置28至31的共享。图6C的例子示出了OS软件430所生成的用以使能小应用程序之间的寄存器文件位置共享的共享分区470-4,。OS软件使用所公开的分区方案来提供特定于并且专用于(dedicatedto)各自小应用程序的分区。小应用程序分区大小包括4个寄存器、8个寄存器,和更大的12个寄存器分区。这些分区大小是用于示例的目的。在实际操作中,分区大小根据特定应用可以小于或大于示例所给的大小。寄存器文件大小也可以根据特定应用而变化。多个小应用程序的分区大小的这种混合表示了处理器系统400内灵活的协同式多任务处理环境。而且,小应用程序可以寻址寄存器文件位置而不用明确地命名实际寄存器文件470位置的地址。许多不同的分区大小,分区分割和分区共享方案在本文的教导下都是可能的。图7是显示了协同式小应用程序寄存器文件管理方法的一个实施例的流程图。更具体地,图7表示了来自小应用程序指令文本的寄存器文件写操作。小应用程序软件415内的一或更多小应用程序贮存在系统存储器420中,并且在操作系统软件430和处理器系统400硬件的控制下执行。流程开始于开始框710。操作系统软件协作处理器系统400的取指和译码单元440从系统存储器420取小应用程序指令文本,如框715。OS软件从专用寄存器484读取小应用程序ID数据,并且用与当前小应用程序指令文本相关联的小应用程序ID来修改小应用程序ID寄存器460,如修改小应用程序ID框720。发送和执行单元450生成来自当前小应用程序指令文本的线程ID,并且将线程ID放置在地址总线454上,如框725。来自小应用程序ID寄存器460的小应用程序ID和来自发送和执行单元450的线程ID数据提供两个输入值至或单元465。作为响应,或门单元465对这两个输入值进行逻辑或以生成实际寄存器文件地址或者寄存器编号,如框730。发送和执行单元450在写入寄存器文件操作的情况中在数据总线456上提供指令文本数据。操作系统写入小应用程序指令文本数据至或操作指定的特定实际寄存器文件地址位置,如写入寄存器文件框735。如果最后小应用程序指令测试框740确定当前小应用程序指令不是小应用程序的最后指令,那么流程返回至框715。当流程按照这种方式返回至框715,OS软件协作取指和译码单元440从系统存储器420取下一个小应用程序指令文本并且流程继续。然而,如果小应用程序完成,测试框740返回真结果并且处理流程结束,如结束框750。尽管上述特定例子涉及对寄存器文件位置的写或读操作,但本文的教导同样应用至来自寄存器文件位置的读操作。在那种情况下,读操作代替了本文教导的写操作。不是写入至或单元465指定的寄存器文件地址,而是处理器系统400从或单元465指定的寄存器文件地址进行读取。在使用分区装置和方法时,处理器不需要相同小应用程序的多个副本。图8显示了使用处理器410的代表性信息处理系统(IHS)800的简化框图。在一个实施例中,处理器410包括耦接至或单元465的小应用程序ID寄存器460。寄存器文件470耦接至或单元465。尽管由于附图空间的限制,图8没有复制图4中所示的处理器410的全部组件,但图8的处理器410包括图4中所示的那些处理器组件。IHS800进一步包括用于将处理器410耦接至存储器控制器815的总线810和视频图形控制器820。更具体地,如图所示,系统存储器总线830耦接至系统存储器835。在实际操作中,总线810可能包括多个总线,例如存储器总线和I/O总线。显示器840耦接至视频图形控制器820。非易失性存储器845,如硬盘驱动器、CD驱动器、DVD驱动器,或者其它非易失性存储器耦接至总线810以为IHS800提供信息的永久存储,I/O设备850,如键盘和鼠标指向设备,经由I/O总线855和I/O控制器860耦接至总线810。一条或更多扩展总线865,如USB、IEEE1394总线、ATA、SATA、PCI、PCIE和其它总线,耦接至总线810以促进外围设备与IHS800的连接。网络接口适配器870耦接至总线810以使能IHS800通过有线或无线连接至网络和其它信息处理系统。尽管图8显示了使用小应用程序管理处理器410的一种IHS,但IHS可以有多种形式。例如,IHS800可以采用桌面型、服务器、便携式、膝上型、笔记本,或其它形状因子计算机或数据处理系统的形式。IHS800可以采用其它形状因子如游戏设备、个人数字助理(PDA)、便携式电话设备、通信设备或者包括处理器和存储器的其它设备。鉴于本发明的说明书,本发明的修改和替代实施例对于本领域技术人员是显然的。因此,该说明书教导了本领域技术人员实现本发明的方法并且意图被构造成仅用以进行示例说明。所示出的和描述的本发明的方式构成了本实施例。本领域技术人员可以在形状、大小和部件安排上做出各种改变。例如,本领域技术人员可以用等效元件来替代本文所阐明的和描述的元件。而且,从本发明的说明书中获益的本领域技术人员在不脱离本发明范围的前提下,可以与其它特征的使用相独立地使用本发明的某些特征。权利要求1.一种信息处理系统中协同式多任务处理方法,所述方法包含通过取指和译码单元,从存储器中的第一和第二小应用程序之一取指令,从而提供所取的指令;如果所取的指令来自所述第一小应用程序,则为所取的指令分配第一小应用程序ID,如果所取的指令来自所述第二小应用程序,则为所取的指令分配第二小应用程序ID;通过发送和执行单元,执行所取的指令从而提供指令结果;以及通过定向器电路,如果所取的指令展示所述第一小应用程序ID则将所述指令结果定向至寄存器文件的第一分区中的寄存器,如果所取的指令展示所述第二小应用程序ID则将所述指令结果定向至所述寄存器文件的第二分区中的寄存器。2.如权利要求1所述的方法,其中所述定向器电路执行逻辑或运算以确定指示所述指令结果被定向至所述寄存器文件的第一还是第二分区的寄存器文件地址位置。3.如权利要求2所述的方法,其中所述逻辑或运算包括将小应用程序ID和所述指令结果指定的寄存器文件寄存器地址进行逻辑或运算,所述小应用程序ID指示所取的指令来自所述第一小应用程序还是所述第二小应用程序。4.如权利要求1所述的方法,其中所述第二分区中的寄存器展示关于所述第一分区中的寄存器的偏移地址。5.如权利要求1所述的方法,其中所述分配步骤包含响应于所述发送和执行单元执行所取的指令而在存储器位置中存储小应用程序ID。6.如权利要求5所述的方法,其中如果所取的指令来自所述笫一小应用程序则所述小应用程序ID是所述第一小应用程序ID,如果所取的指令来自所述第二小应用程序则所述小应用程序ID是所述笫二小应用程序ID。7.—种信息处理系统中协同式多任务处理方法,所述方法包含通过取指和译码单元,从存储器取指令从而提供所取的指令;为所取的指令分配小应用程序ID,所述小应用程序ID指示所取的指令来自软件程序的第一小应用程序还是软件程序的第二小应用程序;通过发送和执行单元,执行所取的指令,以提供请求访问寄存器文件中被请求的寄存器地址位置的所执行的指令结果;以及通过逻辑或电路,将所取的指令的小应用程序ID和所请求的寄存器地址位置进行逻辑或,从而如果所述小应用程序ID指示所取的指令来自所述第一小应用程序则授权访问所述寄存器文件的第一分区中的寄存器,如果所述小应用程序ID指示所取的指令来自所述第二小应用程序则授权访问所述寄存器文件的第二分区中的寄存器。8.如权利要求7所述的方法,其中所执行的指令结果请求对所述寄存器文件中被请求的寄存器地址位置的写操作。9.如权利要求8所述的方法,其中所执行的指令结果请求从所述寄存器文件中被请求的寄存器地址位置的读操作。10.如权利要求7所述的方法,其中所述寄存器文件的第二分区中的寄存器展示关于所述寄存器文件的第一分区中的寄存器的偏移地址。11.如权利要求7所述的方法,其中所述分配步骤包含响应于所述发送和执行单元执行所取的指令而在存储器位置中存储所述小应用程序ID。12.—种信息处理系统(1HS),包含存储器,用以存储软件程序的第一和笫二小应用程序;处理器,耦接至所述存储器,所述处理器包括取指和译码单元,用以从所述存储器中的第一和第二小应用程序之一取指令,从而提供所取的指令;小应用程序ID存储器,如果所取的指令来自所述第一小应用程序,则为所取的指令分配指定第一小应用程序ID,如果所取的指令来自所述第二小应用程序,则为所取的指令分配第二小应用程序ID;发送和执行单元,耦接至所述取指和译码单元,执行所取的指令从而提供指令结果;寄存器文件,包括具有多个寄存器的第一分区和具有不同的多个寄存器的第二分区;定向器电路,耦接至作为输入的所述发送和执行单元和所述小应用程序ID存储器以及作为输出的所述寄存器文件,如果所取的指令展示所述第一小应用程序ID,则将所述指令结果定向至所述寄存器文件的第一分区中的寄存器,如果所取的指令展示所述第二小应用程序ID,则将所述指令结果定向至所述寄存器文件的第二分区中的寄存器。13.如权利要求12所述的IHS,其中所述指令结果包括所述寄存器文件中的寄存器文件地址。14.如权利要求12所述的IHS,进一步包含控制所述小应用程序ID存储器的操作系统。15.如权利要求12所述的IHS,其中所述小应用程序ID存储器包含小应用程序ID寄存器。16.如权利要求12所述的IHS,其中所述定向器电路包含逻辑或电路,所述逻辑或电路执行逻辑或运算以确定所述指令结果被定向至所述寄存器文件的第一还是第二分区。17.如权利要求16所述的IHS,其中所述指令结果包括寄存器文件地址,并且进一步其中所述逻辑或电路对指令的小应用程序ID和该指令的指令结果的寄存器文件地址执行逻辑或运算。18.如权利要求12所述的IHS,其中所述笫二分区中的寄存器展示关于所述第一分区中的寄存器的偏移地址。19.如权利要求12所述的IHS,其中所取的指令请求对所述寄存器文件中的寄存器地址的写操作。20.如权利要求12所述的IHS,其中所取的指令请求从所述寄存器文件中的寄存器地址的读操作。全文摘要本发明公开了信息处理系统中的协同式多任务处理方法及信息处理系统。处理器系统执行信息处理系统中软件应用程序内的多个小应用程序。信息处理系统包括管理多任务处理环境中的处理器系统硬件和软件的操作系统软件。特别地,操作系统软件管理处理器系统中的寄存器文件的分区以实现寄存器文件的各自分区内的多个小应用程序之间的协同关系。在一个实施例中,操作系统软件管理唯一小应用程序ID以在小应用程序指令文本执行期间修改寄存器文件分区大小和位置。在一个实施例中,小应用程序ID掩码硬件在小应用程序代码的多个副本之间提供寄存器文件空间的共享。文档编号G06F9/46GK101320335SQ20081009539公开日2008年12月10日申请日期2008年5月5日优先权日2007年6月7日发明者B·W·迈克尔,B·弗拉奇斯,H·P·霍夫斯蒂申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1