亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

信息處理系統(tǒng)中的協(xié)同式多任務(wù)處理方法及信息處理系統(tǒng)的制作方法

文檔序號(hào):6462481閱讀:245來源:國知局

專利名稱::信息處理系統(tǒng)中的協(xié)同式多任務(wù)處理方法及信息處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域
:本申請(qǐng)涉及信息處理系統(tǒng),并且更加特別地,涉及使用用于存儲(chǔ)來自多個(gè)程序或小應(yīng)用程序的指令結(jié)果的寄存器文件的處理器系統(tǒng)。
背景技術(shù)
:信息處理系統(tǒng)(informationhandlingsystem,IHS)可以包括用于信息處理、操作、通信或其它操作的多個(gè)處理器。每個(gè)處理器自身可以包括共同工作以處理信息的多個(gè)處理器內(nèi)核。處理器或處理器內(nèi)核可以包括處理器功能單元,如堆棧指針、程序計(jì)數(shù)器、取指和譯碼單元、發(fā)送(issue)和執(zhí)行單元、寄存器文件,和其它處理器單元。處理器單元與處理器系統(tǒng)軟件功能協(xié)作地形成處理器系統(tǒng)。處理器系統(tǒng)軟件可以包括高等級(jí)操作系統(tǒng)(OS)或者管理處理器系統(tǒng)內(nèi)部的處理器功能單元的其它軟件。應(yīng)用程序軟件典型地包含在處理器系統(tǒng)的操作系統(tǒng)軟件下運(yùn)行的一系列軟件指令。應(yīng)用程序軟件可以貯存在系統(tǒng)存儲(chǔ)器直到操作系統(tǒng)軟件指示處理器系統(tǒng)讀取和執(zhí)行應(yīng)用^^序軟件指令。應(yīng)用程序軟件可以包含在軟件應(yīng)用程序軟件的控制下運(yùn)行的小應(yīng)用程序(a卯let)或者多個(gè)更小的小應(yīng)用程序。小應(yīng)用程序是以小的可執(zhí)行模塊運(yùn)行的一系列小應(yīng)用程序指令或指令文本。Java編程語言是許多專業(yè)軟件(softwareprofessionals)共同與小應(yīng)用程序相關(guān)聯(lián)的語言(Java是太陽計(jì)算機(jī)系統(tǒng)有限公司的商標(biāo)).小應(yīng)用程序是需要完整軟件應(yīng)用程序來包含或管理它們的小段可執(zhí)行代碼。小應(yīng)用程序在虛擬機(jī)中的應(yīng)用程序內(nèi)部運(yùn)行。虛擬機(jī)是形成小應(yīng)用程序可以執(zhí)行的環(huán)境的一組處理器系統(tǒng)資源和指令。小應(yīng)用程序典型地必須相互協(xié)同地運(yùn)行在多任務(wù)處理環(huán)境中,因此,軟件應(yīng)用程序可以包含以協(xié)同的多任務(wù)處理方式共同運(yùn)行的多個(gè)小應(yīng)用程序。軟件應(yīng)用程序和操作系統(tǒng)軟件以及處理器硬件必須管理小應(yīng)用程序狀態(tài)以避免沖突。例如,小應(yīng)用程序狀態(tài)包括小應(yīng)用程序硬件寄存器文件值、小應(yīng)用程序程序計(jì)數(shù)器數(shù)據(jù)、小應(yīng)用程序存儲(chǔ)器數(shù)據(jù)值,和其它小應(yīng)用程序數(shù)據(jù)。多任務(wù)處理環(huán)境,即多個(gè)應(yīng)用程序也就是多個(gè)并發(fā)運(yùn)行的小應(yīng)用程序,在從一個(gè)小應(yīng)用程序的執(zhí)行過渡到另一個(gè)的執(zhí)行的期間需要對(duì)小應(yīng)用程序的狀態(tài)進(jìn)行仔細(xì)地管理。典型地,當(dāng)小應(yīng)用程序撤銷(deactivates)或者臨時(shí)掛起(suspend)操作時(shí),OS軟件在系統(tǒng)存儲(chǔ)器和本地硬件寄存器文件中保存小應(yīng)用程序狀態(tài)信息。因此,OS軟件能夠在后面的時(shí)間中從存儲(chǔ)器恢復(fù)或修復(fù)小應(yīng)用程序狀態(tài)信息并且重新激活用以在處理器系統(tǒng)內(nèi)操作的在前小應(yīng)用程序。多個(gè)小應(yīng)用程序可以以通過在OS軟件的控制下撤銷和重新激活的方式而并發(fā)地運(yùn)行并且因此可以使用僅僅一個(gè)處理器系統(tǒng)的硬件。小應(yīng)用程序切換是撤銷一個(gè)小應(yīng)用程序并且激活相同處理器系統(tǒng)資源內(nèi)的另一個(gè)小應(yīng)用程序的機(jī)制。小應(yīng)用程序切換消耗系統(tǒng)存儲(chǔ)器和其它處理器系統(tǒng)資源。這種資源消耗是因?yàn)镺S軟件管理小應(yīng)用程序狀態(tài)值以及因此導(dǎo)致的處理器系統(tǒng)的開銷(overhead)增加而出現(xiàn)。不適當(dāng)?shù)男?yīng)用程序狀態(tài)管理可能導(dǎo)致處理器系統(tǒng)異常運(yùn)行并且導(dǎo)致處理器系統(tǒng)軟件死鎖、系統(tǒng)存儲(chǔ)器減少或其它負(fù)面的處理器系統(tǒng)狀態(tài)影響。操作系統(tǒng)軟件可以將處理器系統(tǒng)資源(如系統(tǒng)存儲(chǔ)器、硬件寄存器和其它處理器系統(tǒng)資源)劃分為小應(yīng)用程序分部(division),以在多任務(wù)處理環(huán)境中的小應(yīng)用程序切換期間消除小應(yīng)用程序之間的任何重疊。還可以將寄存器文件位置劃分為離散的小應(yīng)用程序分部或分區(qū)以支持多于一個(gè)的數(shù)據(jù)值的小應(yīng)用程序集.在此情況下,小應(yīng)用程序狀態(tài)的寄存器文件小應(yīng)用程序數(shù)據(jù)值不需要在每個(gè)小應(yīng)用程序切換期間從系統(tǒng)存儲(chǔ)器讀取或?qū)懭?。然而,因?yàn)榧拇嫫魑募哂袛?shù)目有限的文件位置,復(fù)制能夠并發(fā)運(yùn)行的相似或相同小應(yīng)用程序是一種效率低的用以管理多個(gè)小應(yīng)用程序的方法。小應(yīng)用程序包含定義處理器操作的一系列小應(yīng)用程序指令文本或者指令序列。小應(yīng)用程序的共同功能或指令文本是對(duì)處理器系統(tǒng)內(nèi)的硬件寄存器文件的讀取或?qū)懭?。寄存器地址典型地是立即?immediatevalues),即實(shí)際值(realvalues)或者地址指針。因?yàn)榧拇嫫鞯刂肥橇⒓粗?,小?yīng)用程序指令文本必須對(duì)寄存器文件位置進(jìn)行直接尋址。在多個(gè)小應(yīng)用程序執(zhí)行相同指令文本的情況中,寄存器文件尋址的管理變成了關(guān)鍵問題。因?yàn)槌蜂N和激活小應(yīng)用程序需要處理器系統(tǒng)資源的顯著開銷,因而需要管理相同小應(yīng)用程序的另一種方法。一種管理相同小應(yīng)用程序而不具有重寫寄存器文件位置的風(fēng)險(xiǎn)的方法包括針對(duì)每個(gè)小應(yīng)用程序的使用而唯一地劃分寄存器文件。每個(gè)相同的小應(yīng)用程序可以在存儲(chǔ)器中具有其自身的副本。編程人員或編譯軟件重寫小應(yīng)用程序的每個(gè)副本以修改寄存器文件地址,從而對(duì)OS軟件指定給該特定小應(yīng)用程序的唯一分區(qū)進(jìn)行尋址。例如,使用寄存器文件分區(qū)以執(zhí)行8個(gè)共同小應(yīng)用程序的處理器系統(tǒng)可能需要相同程序指令文本的8個(gè)副本。而且,寄存器文件地址典型地必須被預(yù)先選擇以表示8個(gè)不同的寄存器文件分區(qū)。該方法需要小應(yīng)用程序的復(fù)制、寄存器文件地址的重寫,并且最終消耗寶貴的存儲(chǔ)器資源。所需要的是解決與上述的在處理器系統(tǒng)的多任務(wù)處理環(huán)境中管理多個(gè)小應(yīng)用程序相關(guān)聯(lián)的問題的方法和裝置。
發(fā)明內(nèi)容因此,在一個(gè)實(shí)施例中,一種信息處理系統(tǒng)中協(xié)同式多任務(wù)處理方法被公開,在一個(gè)實(shí)施例中,該方法包括通過取指和譯碼單元,從存儲(chǔ)器中的第一和笫二小應(yīng)用程序之一取指令,從而提供所取的指令,該方法還包括如果所取的指令來自第一小應(yīng)用程序,則為所取的指令分配第一小應(yīng)用程序ID,如果指令來自第二小應(yīng)用程序,則為所取的指令分配第二小應(yīng)用程序ID,該方法進(jìn)一步包括通過發(fā)送和執(zhí)行單元執(zhí)行所取的指令從而提供指令結(jié)果。該方法仍進(jìn)一步包括通過定向器電路,如果所取的指令展示(exhibits)第一小應(yīng)用程序ID則將指令結(jié)果定向至寄存器文件的第一分區(qū)中的寄存器,并且如果所取的指令展示第二小應(yīng)用程序ID則將指令結(jié)果定向至寄存器文件的第二分區(qū)中的寄存器。在另一個(gè)實(shí)施例中,包括存儲(chǔ)軟件程序的第一和第二小應(yīng)用程序的存儲(chǔ)器的信息處理系統(tǒng)(IHS)被公開。IHS還包括處理器,耦接至存儲(chǔ)器。處理器包括取指和譯碼單元,用以從存儲(chǔ)器中的第一和第二小應(yīng)用程序之一取指令,從而提供所取的指令。處理器還包括小應(yīng)用程序ID存儲(chǔ)器,如果所取的指令來自第一小應(yīng)用程序則為所取的指令分配第一小應(yīng)用程序ID,如果指令來自第二小應(yīng)用程序,則為所取的指令分配第二小應(yīng)用程序ID。處理器進(jìn)一步包括發(fā)送和執(zhí)行單元,耦接至取指和譯碼單元,執(zhí)行所取的指令從而提供指令結(jié)果,處理器仍進(jìn)一步包括寄存器文件,所述寄存器文件包括具有多個(gè)寄存器的第一分區(qū)和具有不同的多個(gè)寄存器的第二分區(qū)。處理器還包括耦接至作為輸入的發(fā)送和執(zhí)行單元和小應(yīng)用程序ID存儲(chǔ)器以及作為輸出的寄存器文件的定向器電路。定向器電路,如果所取的指令展示第一小應(yīng)用程序ID,則將指令結(jié)果定向至寄存器文件的第一分區(qū)中的寄存器,如果所取的指令展示第二小應(yīng)用程序ID則將指令結(jié)果定向至寄存器文件的第二分區(qū)中的寄存器。附圖僅僅例示了本發(fā)明的示例性實(shí)施例并且因此不限制本發(fā)明的范圍,因?yàn)榘l(fā)明原理可以應(yīng)用于其它等效實(shí)施例。圖1A顯示了小應(yīng)用程序指令文本的表示。圖IB顯示了被分區(qū)的處理器系統(tǒng)寄存器文件的表示.圖2是描述用于多個(gè)小應(yīng)用程序的執(zhí)行和跳轉(zhuǎn)(branching)的傳統(tǒng)方法的流程圖。圖3顯示了使用小應(yīng)用程序指令文本的處理器的框圖。圖4顯示了具有所公開的寄存器文件分區(qū)方法的所公開的處理器系統(tǒng)的框圖。圖5A顯示了所公開的處理器系統(tǒng)使用的定向器電路的輸入和輸出的二進(jìn)制表示。圖5B顯示了所公開的處理器系統(tǒng)使用的定向器電路的輸入和輸出的二進(jìn)制表示的另一個(gè)示例。圖6A是描述所公開的處理器系統(tǒng)和方法中的寄存器文件分區(qū)的框圖。圖6B是描述所公開的處理器系統(tǒng)和方法中的寄存器文件分區(qū)的另一個(gè)示例的框圖。圖6C是描述所公開的處理器系統(tǒng)和方法中的寄存器文件分區(qū)的又另一個(gè)示例,即使用固定和共享寄存器文件分區(qū)的框圖。圖7是描述所公開的寄存器文件分區(qū)和小應(yīng)用程序ID管理方法的一個(gè)實(shí)施例的流程圖。圖8是使用所公開的寄存器文件分區(qū)和小應(yīng)用程序ID管理方法的信息處理系統(tǒng)的框圖。具體實(shí)施例方式在由操作系統(tǒng)(OS)軟件操作的多任務(wù)處理器系統(tǒng)中,小應(yīng)用程序或小型應(yīng)用程序可以在專用操作系統(tǒng)控制下彼此通信。為了避免小應(yīng)用程序之間的沖突,每個(gè)小應(yīng)用程序在相同處理器系統(tǒng)中協(xié)同運(yùn)行時(shí)典型地必須遵循共同的規(guī)則集。因?yàn)槊總€(gè)小應(yīng)用程序共享處理器系統(tǒng)資源,一個(gè)小應(yīng)用程序在沒有OS軟件的同意時(shí)不應(yīng)該修改另一個(gè)小應(yīng)用程序的小應(yīng)用程序狀態(tài)信息。OS軟件典型地必須保護(hù)小應(yīng)用程序狀態(tài)信息如程序計(jì)數(shù)器、堆棧指針、寄存器文件(registerfile)數(shù)據(jù),和其它狀態(tài)信息。在協(xié)同式多任務(wù)處理環(huán)境中,小應(yīng)用程序能夠跨越(across)小應(yīng)用程序狀態(tài)進(jìn)行讀取和寫入。小應(yīng)用程序典型地是相同軟件應(yīng)用程序的段或片。在一個(gè)傳統(tǒng)的多任務(wù)處理環(huán)境中,在任何特定時(shí)間點(diǎn)僅僅一個(gè)小應(yīng)用程序執(zhí)行,但是小應(yīng)用程序狀態(tài),如程序計(jì)數(shù)器、寄存器文件值等等,可以在小應(yīng)用程序間跳轉(zhuǎn)(branch)。OS軟件通過在存儲(chǔ)器中臨時(shí)地存儲(chǔ)小應(yīng)用程序狀態(tài)信息(如程序計(jì)數(shù)器、寄存器文件值,和其它狀態(tài)信息),并且與小應(yīng)用程序之間的跳轉(zhuǎn)進(jìn)行交換來管理多個(gè)小應(yīng)用程序狀態(tài)。這種方法的一個(gè)主要問題是被OS軟件消耗以管理這種小應(yīng)用程序切換的系統(tǒng)資源的數(shù)目,如存儲(chǔ)器和處理器系統(tǒng)時(shí)鐘周期。循環(huán)(Rotating)寄存器文件是解決當(dāng)處理器系統(tǒng)執(zhí)行多個(gè)小應(yīng)用程序時(shí)復(fù)制代碼和跳轉(zhuǎn)開銷的問題的另一種方法。OS軟件將寄存器文件地址組織為與小應(yīng)用程序指令文本所需的大小相同的分區(qū)或幀。在該方法中,小應(yīng)用程序指令文本必須包括指定寄存器文件地址至寄存器文件中的新位置的循環(huán)幀命令。該方法不需要上述擴(kuò)展存儲(chǔ)器使用和跳轉(zhuǎn)技術(shù)的開銷。然而,軟件應(yīng)用程序典型地必須保持小應(yīng)用程序指令文本內(nèi)的循環(huán)幀命令,從而導(dǎo)致不期望的小應(yīng)用程序大小的增加。而且,幀循環(huán)在小應(yīng)用程序太大而不能允許已有的寄存器文件中的多個(gè)幀大小的環(huán)境中不能有效地運(yùn)行。下面的表1顯示了來自更大的小應(yīng)用程序的單個(gè)指令或指令文本,單個(gè)小應(yīng)用程序指令(ldr6,15)是指示處理器系統(tǒng)"寫入數(shù)據(jù)值15至寄存器6"的代碼序列。在該示例中,小應(yīng)用程序指令指示處理器系統(tǒng)硬件和操作系統(tǒng)以執(zhí)行值15到處理器系統(tǒng)內(nèi)的寄存器文件位置6的寫入。表lldr6,15圖1A描述了表1的小應(yīng)用程序指令文本的二進(jìn)制表示。指令文本的三個(gè)條目的第一個(gè)是操作碼110、寄存器文件地址120和立即數(shù)據(jù)值130。操作碼(opcode)110表示定義該特定小應(yīng)用程序指令的主要操作的寫寄存器指令10100,寄存器文件地址值120指定處理器系統(tǒng)將要寫入的寄存器文件中的特定寄存器位置。在該特定示例中,"6"或者二進(jìn)制0110是表1的指令文本中的第二個(gè)條目。因此,小應(yīng)用程序指令寫入立即值至寄存器6,即第三個(gè)條目130指示的實(shí)際數(shù)據(jù)值。在此情況下,表l的指令文本的最后和第三個(gè)條目是圖1中"15"或者二進(jìn)制1111的數(shù)據(jù)值130。因此,二進(jìn)制1111是處理器系統(tǒng)針對(duì)該特定小應(yīng)用程序指令而寫入至寄存器文件的特定寄存器6的立即數(shù)據(jù)值。表l的指令文本表示更大的小應(yīng)用程序指令序列中的一個(gè)指令。更大的指令集可以表示小應(yīng)用程序0指令集或者序列。在相同多任務(wù)處理器系統(tǒng)中并發(fā)執(zhí)行的可以是另一個(gè)小應(yīng)用程序指令集即,小應(yīng)用程序1。小應(yīng)用程序0和小應(yīng)用程序1表示可以在支持多任務(wù)處理環(huán)境的處理器系統(tǒng)中并發(fā)運(yùn)行的多個(gè)小應(yīng)用程序中的兩個(gè)小應(yīng)用程序。一種理解在多任務(wù)處理環(huán)境中共享寄存器文件的基本方法是考慮小應(yīng)用程序0和小應(yīng)用程序l是相同小應(yīng)用程序的情形。OS軟件期望在相同處理器系統(tǒng)資源內(nèi)同時(shí)協(xié)同式地執(zhí)行小應(yīng)用程序0和1。相同的小應(yīng)用程序常見于向量處理中如在計(jì)算機(jī)圖像顯示中重復(fù)操作圖形圖像。相同的小應(yīng)用程序0和小應(yīng)用程序l共享如表l中所描述的寄存器文件地址代碼。如果小應(yīng)用程序0的指令文本在執(zhí)行期間使用8個(gè)寄存器文件位置,即寄存器文件地址0至7,小應(yīng)用程序l必須通過不使用相同寄存器文件位置來避免與小應(yīng)用程序1沖突。一種用以允許小應(yīng)用程序0和小應(yīng)用程序1協(xié)同式地運(yùn)行的方法是重新指定小應(yīng)用程序1的寄存器文件地址值為新寄存器文件分區(qū)。換言之,一種解決方案是調(diào)整或修改小應(yīng)用程序1以重新指定所有的寄存器值為寄存器文件的新區(qū)域。按照這種方式,小應(yīng)用程序0可以使用寄存器0至7,而編程人員或編譯軟件修改相同的小應(yīng)用程序1為引用除寄存器0至7以外的新的8個(gè)寄存器分區(qū)。例如,編譯器軟件可以修改小應(yīng)用程序1以按照值8來移動(dòng)或偏移每個(gè)寄存器文件地址。更具體地,小應(yīng)用程序1的每個(gè)寄存器文件地址引用是對(duì)小應(yīng)用程序0的寄存器文件地址的復(fù)本加上偏移量8.按照這種方式,小應(yīng)用程序1將對(duì)寄存器文件的寄存器8至15進(jìn)行尋址。在小應(yīng)用程序0寫入數(shù)據(jù)值至寄存器6的表1的示例中,小應(yīng)用程序1的相應(yīng)指令文本引用寄存器地址6加上偏移量8,即寄存器文件地址14。下面的表2表示了具有處理器系統(tǒng)可能解釋的跳轉(zhuǎn)指令在其間的兩個(gè)小應(yīng)用程序指令文本行代碼。第一個(gè)小應(yīng)用程序0指令文本(ldr6,15)指示處理器系統(tǒng)導(dǎo)入或?qū)懭肓⒓磾?shù)據(jù)值15至寄存器6。接下來,跳轉(zhuǎn)命令(br,apl)指示處理器系統(tǒng)切換至小應(yīng)用程序1。小應(yīng)用程序l的(ldr14,15)指令對(duì)應(yīng)小應(yīng)用程序0的(1dr6,15)指令。換言之,兩個(gè)小應(yīng)用程序?qū)牖驅(qū)懭胫噶钪械拿恳粋€(gè)除寄存器文件地址值之外均相同。小應(yīng)用程序1的相應(yīng)(ldrl4,15)指令文本指示處理器系統(tǒng)將立即數(shù)據(jù)值15寫入至寄存器14。表2ldr6,15br,ap11drl4,15圖1B是包括一組16個(gè)寄存器0-15的寄存器文件140的表示,其中操作系統(tǒng)(OS)軟件分組或者分區(qū)為每組8個(gè)寄存器的兩個(gè)組。在該示例中,每個(gè)寄存器的地址對(duì)應(yīng)寄存器的編號(hào)。例如,寄存器0展示了地址0,寄存器l展示了地址l,并且如此向上至展示地址15的寄存器15。小應(yīng)用程序0使用如分區(qū)140A所示的寄存器文件地址位置0至7。為了運(yùn)行與小應(yīng)用程序0相同的小應(yīng)用程序,編程人員或軟件編譯器例程修改小應(yīng)用程序0的指令文本以調(diào)整每個(gè)寄存器文件地址引用為新分區(qū)140B。例如,小應(yīng)用程序1包括為小應(yīng)用程序0的指令文本的副本的指令文本,除了編譯器軟件將每個(gè)寄存器文件地址引用增加偏移值8。圖1B顯示了展示總共16個(gè)寄存器的寄存器文件大小的寄存器文件。通過示例的方式,針對(duì)小應(yīng)用程序0寫入至寄存器6的特定指令文本,小應(yīng)用程序1的相應(yīng)指令將寫入至寄存器14,即6加上偏移量8。如圖1B所示,寄存器文件分區(qū)140B的寄存器8至15表示在整個(gè)小應(yīng)用程序1指令文本集中使用的寄存器組。按照這種方式,小應(yīng)用程序0和小應(yīng)用程序1可以在沒有重寫其它小應(yīng)用程序的寄存器文件數(shù)據(jù)的風(fēng)險(xiǎn)時(shí)并發(fā)運(yùn)行。圖2描述了運(yùn)行以傳統(tǒng)方式管理多個(gè)小應(yīng)用程序的操作系統(tǒng)(OS)軟件的處理器系統(tǒng)的流程圖。對(duì)于該示例,OS軟件在多任務(wù)處理軟件和硬件環(huán)境中運(yùn)行小應(yīng)用程序0和小應(yīng)用程序1。多任務(wù)處理軟件操作啟動(dòng)于開始框210。OS軟件從處理器系統(tǒng)存儲(chǔ)器讀取包含小應(yīng)用程序0指令文本的應(yīng)用程序軟件的第一行。OS軟件執(zhí)行小應(yīng)用程序0代碼,如執(zhí)行小應(yīng)用程序0代碼框220。OS軟件接著讀取或?qū)胲浖?yīng)用程序的下一個(gè)指令。在該示例中,該下一個(gè)指令對(duì)應(yīng)不同的小應(yīng)用程序,即小應(yīng)用程序1。響應(yīng)于遇到從小應(yīng)用程序0跳轉(zhuǎn)至小應(yīng)用程序1的這種指令,OS軟件存儲(chǔ)小應(yīng)用程序0的處理器系統(tǒng)狀態(tài)并且跳轉(zhuǎn)至小應(yīng)用程序1代碼,如跳轉(zhuǎn)至小應(yīng)用程序1代碼框230。在OS軟件控制下的處理器系統(tǒng)接著執(zhí)行小應(yīng)用程序1代碼,如執(zhí)行小應(yīng)用程序l代碼框240。上述的執(zhí)行和跳轉(zhuǎn)至新小應(yīng)用程序過程通常被稱為"小應(yīng)用程序切換操作"。通過存儲(chǔ)小應(yīng)用程序0的狀態(tài)條件,OS軟件接著能夠切換回小應(yīng)用程序0的代碼指令并且繼續(xù)處理其中的指令文本。OS軟件跳轉(zhuǎn)至小應(yīng)用程序0,如跳轉(zhuǎn)至小應(yīng)用程序0代碼框250。OS軟件在決定框260執(zhí)行測試以確定是否所有的小應(yīng)用程序被完成。如果軟件應(yīng)用程序包含更多小應(yīng)用程序指令文本,決定框260返回假結(jié)果,流程繼續(xù)返回至小應(yīng)用程序代碼執(zhí)行繼續(xù)的框220。如果軟件應(yīng)用程序被完成,即所有的小應(yīng)用程序代碼被完成,那么所有小應(yīng)用程序完成決定框260返回真結(jié)果并且圖2的多任務(wù)處理操作完成,如結(jié)束框270。圖2的方法于在多任務(wù)處理器系統(tǒng)中運(yùn)行任意數(shù)目的多個(gè)小應(yīng)用程序時(shí)特別有用。然而,這種方法的主要缺點(diǎn)是編程人員或編譯軟件典型地必須復(fù)制每個(gè)小應(yīng)用程序。每個(gè)小應(yīng)用程序,不論與另外的小應(yīng)用程序多么相同,除了寄存器文件地址指針可能被偏移以與寄存器文件分區(qū)對(duì)齊外,在整體上都是復(fù)制版本。其表明多個(gè)小應(yīng)用程序占用多個(gè)系統(tǒng)存儲(chǔ)器位置.圖2清楚地描述了在2個(gè)小應(yīng)用程序運(yùn)行的例子中,系統(tǒng)存儲(chǔ)器必須包含2個(gè)代碼副本以及跳轉(zhuǎn)開銷。3個(gè)相同的小應(yīng)用程序需要3個(gè)代碼副本,4個(gè)小應(yīng)用程序需要4個(gè)代碼副本,等等。容易看到隨著小應(yīng)用程序數(shù)目的增加,處理器系統(tǒng)存儲(chǔ)器和資源需求遞增地并且充分地增長。圖3是簡化的傳統(tǒng)處理器系統(tǒng)300,即具有寄存器文件寫入能力的處理器310的框圖。小應(yīng)用程序指令文本形式的小應(yīng)用程序軟件貯存在典型地位于處理器內(nèi)核或處理器310之外的系統(tǒng)存儲(chǔ)器320。處理器300包括若干功能單元如取指和譯碼單元340以及發(fā)送和執(zhí)行單元350。系統(tǒng)存儲(chǔ)器320耦接至取指和譯碼單元340。取指和譯碼單元340負(fù)責(zé)從系統(tǒng)存儲(chǔ)器320取程序指令并且譯碼指令文本以用于處理器310內(nèi)的解釋和使用。更具體地,取指和譯碼單元340接收程序指令數(shù)據(jù)作為輸入,并且將指令數(shù)據(jù)譯碼為表示其指令流的數(shù)據(jù)流的一系列微操作。微操作或匯編語言指令是處理器系統(tǒng)中使用的基本計(jì)算機(jī)語言。操作系統(tǒng)(OS)軟件330控制處理器310和其中的功能單元的操作。操作系統(tǒng)(OS)軟件330通過從系統(tǒng)存儲(chǔ)器320讀取小應(yīng)用程序指令文本至取指和譯碼單元340而啟動(dòng)取指和譯碼操作。取指和譯碼單元340耦接至發(fā)送和執(zhí)行單元350中的發(fā)送隊(duì)列。發(fā)送和執(zhí)行單元350累積取指和譯碼單元340作為微操作而提供的指令。發(fā)送和執(zhí)行單元350累積多個(gè)小應(yīng)用程序軟件如小應(yīng)用程序0指令文本和小應(yīng)用程序1指令文本。發(fā)送和執(zhí)行單元350耦接至寄存器文件360并且提供用于小應(yīng)用程序?qū)牖驅(qū)懭胫噶钪廉?dāng)前寄存器文件地址并寫入數(shù)據(jù)至寄存器文件360的硬件機(jī)制。針對(duì)表1和圖1A以及圖1B的操作碼示例,發(fā)送和執(zhí)行單元350寫入數(shù)據(jù)值15至寄存器文件360的寄存器6。發(fā)送和執(zhí)行單元350的該寫入動(dòng)作發(fā)生在其指令操作碼文本的執(zhí)行期間.而且,在發(fā)送和執(zhí)行單元350的操作期間,處理器310使用處理器單元如程序計(jì)數(shù)器370、條件寄存器372、專用寄存器(specialpurposeregister)374、堆棧指針376,以及未示出的其它處理器單元。處理器310的發(fā)送和執(zhí)行單元350耦接并且提供機(jī)制以寫入或存儲(chǔ)數(shù)據(jù)至系統(tǒng)存儲(chǔ)器320。圖3的處理器系統(tǒng)300進(jìn)一步示出了編程人員和系統(tǒng)設(shè)計(jì)人員使用多任務(wù)處理器系統(tǒng)時(shí)與其相關(guān)聯(lián)的一個(gè)問題,更具體地,小應(yīng)用程序管理問題在寄存器文件360硬件直接耦接至發(fā)送和執(zhí)行單元350時(shí)出現(xiàn)。如果多個(gè)小應(yīng)用程序在多任務(wù)處理環(huán)境中執(zhí)行相同代碼序列或小應(yīng)用程序指令文本,操作系統(tǒng)(OS)軟件330典型地必須針對(duì)每個(gè)小應(yīng)用程序分割或劃分寄存器文件360為分區(qū),即離散的大小相等的寄存器文件區(qū)域。OS軟件330可以以每個(gè)小應(yīng)用程序的方式管理寄存器文件分區(qū)的分配。軟件編程人員或編譯軟件典型地重寫小應(yīng)用程序指令文本以關(guān)聯(lián)寄存器文件讀取或?qū)懭氩僮鞯拿總€(gè)引用和適當(dāng)?shù)募拇嫫魑募謪^(qū)。這種重寫操作導(dǎo)致系統(tǒng)存儲(chǔ)器320中小應(yīng)用程序指令文本的浪費(fèi)性地完全復(fù)制以及處理器系統(tǒng)300中管理額外的小應(yīng)用程序指令文本的開銷。更大量的小應(yīng)用程序指令文本不僅需要更多的系統(tǒng)存儲(chǔ)器,而且還在取指、譯碼、發(fā)送和執(zhí)行操作期間消耗更大量的處理器系統(tǒng)300資源和操作。一種理解傳統(tǒng)的在多任務(wù)處理環(huán)境中共享寄存器文件的方法是考慮寄存器文件360包括128個(gè)寄存器的情形。一個(gè)軟件應(yīng)用程序可以包括每一個(gè)使用8個(gè)寄存器的16個(gè)相同的小應(yīng)用程序。因?yàn)?6個(gè)小應(yīng)用程序乘以8個(gè)寄存器的結(jié)果是總共128個(gè)寄存器的寄存器文件大小,16是這個(gè)處理器系統(tǒng)針對(duì)這種特定小應(yīng)用程序而可以執(zhí)行的小應(yīng)用程序的最大數(shù)目。圖4顯示了所公開的包括具有小應(yīng)用程序標(biāo)識(shí)符(ID)寄存器功能的處理器410的處理器系統(tǒng)400的框圖。小應(yīng)用程序軟件415中的一個(gè)或更多小應(yīng)用程序以小應(yīng)用程序指令文本形式貯存在位于處理器內(nèi)核或處理器410之外的系統(tǒng)存儲(chǔ)器420中。系統(tǒng)存儲(chǔ)器420耦接至處理器410內(nèi)的取指和譯碼單元440。取指和譯碼單元440負(fù)責(zé)從系統(tǒng)存儲(chǔ)器420中的小應(yīng)用程序415取程序指令并且譯碼小應(yīng)用程序的指令文本以用于處理器410內(nèi)的解釋和使用。更具體地,取指和譯碼單元440接收程序指令數(shù)據(jù)作為輸入,并且將其中的指令文本數(shù)據(jù)譯碼為一系列微操作。這些微操作形成了取指和譯碼單元440從系統(tǒng)存儲(chǔ)器420中的小應(yīng)用程序軟件415接收的指令流的數(shù)據(jù)流。操作系統(tǒng)(OS)軟件430控制處理器410和其中的功能單元的操作。操作系統(tǒng)(OS)軟件430通過從系統(tǒng)存儲(chǔ)器420讀取小應(yīng)用程序指令文本至取指和譯碼單元440而啟動(dòng)取指和譯碼操作。取指和譯碼單元440耦接至包括發(fā)送隊(duì)列的發(fā)送和執(zhí)行單元450,發(fā)送和執(zhí)行單元450累積取指和譯碼單元440作為微操作提供的指令。發(fā)送和執(zhí)行單元450,在OS軟件430的指示下,管理多個(gè)小應(yīng)用程序如小應(yīng)用程序0指令文本和小應(yīng)用程序1指令文本。并發(fā)地進(jìn)行這樣的管理,(OS)軟件430啟動(dòng)存儲(chǔ)小應(yīng)用程序ID數(shù)據(jù)至存儲(chǔ)器位置,即小應(yīng)用程序ID寄存器460。操作系統(tǒng)軟件430保持對(duì)應(yīng)于由處理器系統(tǒng)400使用的當(dāng)前活動(dòng)小應(yīng)用程序的唯一小應(yīng)用程序ID。小應(yīng)用程序ID寄存器460的輸出耦接至下面將更加詳細(xì)地描述的或單元(ORunit)465的兩個(gè)輸入中的一個(gè)。在該示例中,小應(yīng)用程序ID寄存器460耦接至或單元465的輸入465A以向其提供小應(yīng)用程序ID。如圖所示,或單元465耦接在發(fā)送和執(zhí)行單元450和寄存器文件470之間?;蜷T465因此提供發(fā)送和執(zhí)行單元450和寄存器文件470之間的間接耦接。訪問寄存器文件470的小應(yīng)用程序指令文本包括寄存器文件地址和數(shù)據(jù)值。發(fā)送和執(zhí)行單元450耦接至或單元465的剩佘輸入465B以在地址總線454上提供通常稱為"線程ID"的寄存器地址值。發(fā)送和執(zhí)行單元450還耦接至寄存器文件470的輸入470B以在數(shù)據(jù)總線456上向寄存器文件提供數(shù)據(jù)。或單元465生成輸入465A上的輸入"小應(yīng)用程序ID"和輸入465B上的"線程ID"的二進(jìn)制結(jié)果并且在或單元465的輸出上呈現(xiàn)結(jié)果。或單元465耦接至寄存器文件470以向其提供寄存器文件地址。如下面的等式l所示,或單元465在其輸出上提供的寄存器文件地址是來自小應(yīng)用程序ID寄存器460的小應(yīng)用程序ID與線程ID進(jìn)行或的結(jié)果,或者來自發(fā)送和執(zhí)行單元450的小應(yīng)用程序指令文本值輸出。等式l寄存器文件地址-小應(yīng)用程序ID"或"線程ID在一個(gè)代表性實(shí)施例中,寄存器文件470包括128個(gè)離散的可尋址文件位置,即128個(gè)寄存器,每個(gè)寄存器具有各自地址或者數(shù)字代碼,在發(fā)送和執(zhí)行單元450操作期間,處理器410使用處理器功能單元如程序計(jì)數(shù)器480、條件寄存器482、專用寄存器484、堆棧指針486,以及未示出的其它處理器單元。處理器410的發(fā)送和執(zhí)行單元450耦接至系統(tǒng)存儲(chǔ)器420,并且提供機(jī)制以寫入數(shù)據(jù)至系統(tǒng)存儲(chǔ)器420。在該裝置和方法的一個(gè)實(shí)施例中,系統(tǒng)存儲(chǔ)器420包括小應(yīng)用程序軟件415內(nèi)的小應(yīng)用程序0的指令文本和小應(yīng)用程序1的相同的指令文本。傳統(tǒng)的軟件應(yīng)用程序可以包括對(duì)它們自身內(nèi)部的多個(gè)小應(yīng)用程序的指針或者引用。例如,傳統(tǒng)的軟件程序應(yīng)用程序可以包括指令文本以并發(fā)地運(yùn)行小應(yīng)用程序和該小應(yīng)用程序的副本。然而,在所公開的裝置和方法中,小應(yīng)用程序1指令文本不需要對(duì)系統(tǒng)存儲(chǔ)器420的小應(yīng)用程序軟件415中的小應(yīng)用程序0的完全復(fù)制。而且,OS軟件430使用OS軟件為小應(yīng)用程序0所保持的相同系統(tǒng)存儲(chǔ)器指令文本,并且針對(duì)小應(yīng)用程序1再次相同地使用它。OS軟件在小應(yīng)用程序ID寄存器460中保留或保持小應(yīng)用程序ID數(shù)據(jù)值。編譯器軟件488在系統(tǒng)軟件的編譯期間定義小應(yīng)用程序ID數(shù)據(jù)值以追蹤每個(gè)單獨(dú)的小應(yīng)用程序。在該示例中,小應(yīng)用程序0和小應(yīng)用程序1都需要使用寄存器文件470中總共128個(gè)寄存器中的8個(gè)寄存器。因此,操作系統(tǒng)軟件430需要使用寄存器文件470中可用的128個(gè)寄存器中的16個(gè)寄存器以管理小應(yīng)用程序0和小應(yīng)用程序1。對(duì)于該示例,來自系統(tǒng)存儲(chǔ)器420的小應(yīng)用程序軟件415的小應(yīng)用程序指令文本不需要副本。OS軟件430關(guān)聯(lián)每個(gè)小應(yīng)用程序的小應(yīng)用程序ID,即小應(yīng)用程序0和小應(yīng)用程序1,提供兩個(gè)相同程序之間的區(qū)別。在一個(gè)實(shí)施例中,小應(yīng)用程序ID提供兩個(gè)相同程序,小應(yīng)用程序0和小應(yīng)用程序1之間的區(qū)別。如果小應(yīng)用程序0包括使用寄存器0至7的操作碼,即寄存器文件分區(qū)470-0,小應(yīng)用程序l仍然可以通過使用寄存器8至15,即寄存器文件分區(qū)470-1來執(zhí)行,而不沖突。小應(yīng)用程序ID寄存器460和或單元465提供機(jī)制以調(diào)整小應(yīng)用程序1指令代碼,在運(yùn)行中(onthefly),使用寄存器8-15以替代相同的程序0使用的寄存器0-7。小應(yīng)用程序1通過有效地添加數(shù)據(jù)值或偏移量8至每個(gè)寄存器地址值的軟件和硬件機(jī)制而使用寄存器8-15,在這個(gè)特定示例中。更具體地,在一個(gè)實(shí)施例中,OS軟件430通過或單元465的或掩碼(masking)功能而修改小應(yīng)用程序1的每個(gè)寄存器地址值。按照這種方式,或單元465作為定向器電路(DIR.CKT.)根據(jù)發(fā)送和執(zhí)行單元當(dāng)前執(zhí)行的指令的小應(yīng)用程序ID而在總線456上發(fā)送結(jié)果數(shù)據(jù)至寄存器0-7(分區(qū)470-0)或者寄存器8-15(分區(qū)470-1)。這種指令結(jié)果數(shù)據(jù),或者指令結(jié)果,是發(fā)送和執(zhí)行單元450執(zhí)行當(dāng)前指令的結(jié)果。發(fā)送和執(zhí)行單元450在其地址輸出454生成的地址信息指定了寄存器文件470中寄存器文件將要存儲(chǔ)結(jié)果數(shù)據(jù)的目標(biāo)寄存器地址,除非或單元465修改該地址。如上所解釋的一樣,如果小應(yīng)用程序ID指示當(dāng)前指令來自小應(yīng)用程序0則或單元465可以保持目標(biāo)寄存器地址不變。在此情況下,或電路465提供指令結(jié)果,即數(shù)據(jù),至分區(qū)470-0中的寄存器。然而,如果小應(yīng)用程序ID指示當(dāng)前指令來自小應(yīng)用程序1,那么或單元465將改變目標(biāo)地址至小應(yīng)用程序0不使用的范圍或分區(qū)內(nèi)的寄存器地址,即該示例中的分區(qū)470-1。操作系統(tǒng)軟件430在小應(yīng)用程序ID寄存器460中保持小應(yīng)用程序IDO。更具體地,OS軟件為小應(yīng)用程序O在小應(yīng)用程序ID寄存器460中保持十六進(jìn)制(hex)0或者二進(jìn)制0000的小應(yīng)用程序ID。操作系統(tǒng)軟件430還為小應(yīng)用程序1在小應(yīng)用程序ID寄存器460中保持十六進(jìn)制8或者二進(jìn)制1000的小應(yīng)用程序ID。因?yàn)槊總€(gè)小應(yīng)用程序指令在準(zhǔn)備執(zhí)行時(shí)到達(dá)發(fā)送和執(zhí)行單元450,對(duì)寄存器文件470的任何讀取或?qū)懭胫噶罘胖帽环Q為"線程ID"的原始寄存器文件地址在或單元465的輸入465B。操作系統(tǒng)軟件430保持小應(yīng)用程序ID寄存器460的輸出和在發(fā)送和執(zhí)行單元450中當(dāng)前執(zhí)行的任何小應(yīng)用程序一致。OS軟件430還使用小應(yīng)用程序ID寄存器460以在小應(yīng)用程序指令文本執(zhí)行期間保持小應(yīng)用程序狀態(tài)。小應(yīng)用程序ID是或單元465施加至小應(yīng)用程序指令文本的線程ID以在寄存器文件470的輸入470A生成適當(dāng)?shù)募拇嫫魑募刂返幕蚰J交蛘哐诖a?;騿卧?65為小應(yīng)用程序0施加一個(gè)掩碼并且為小應(yīng)用程序1施加另一個(gè)掩碼,從而寄存器文件輸入470B的數(shù)據(jù)值轉(zhuǎn)換為針對(duì)小應(yīng)用程序0的寄存器0-7或者針對(duì)小應(yīng)用程序1的寄存器8-15。來自O(shè)S軟件430的用戶模式指令寫入小應(yīng)用程序ID至小應(yīng)用程序ID寄存器460。在小應(yīng)用程序切換期間,OS軟件430通過專用寄存器484的讀取和寫入操作而在處理器系統(tǒng)中存儲(chǔ)和獲取小應(yīng)用程序ID數(shù)據(jù)??商娲?,OS軟件430可以通過讀取來自小應(yīng)用程序指令文本的跳轉(zhuǎn)指令數(shù)據(jù)而修改小應(yīng)用程序ID寄存器460中的小應(yīng)用程序ID。提供小應(yīng)用程序ID的小應(yīng)用程序指令增加具有當(dāng)前小應(yīng)用程序指令文本的小應(yīng)用程序ID的數(shù)據(jù)至程序計(jì)數(shù)器480。在一個(gè)實(shí)施例中,寄存器文件470包括耦接至發(fā)送和執(zhí)行單元450的輸出470C以提供來自寄存器文件470的操作數(shù)至單元450。在所有寄存器文件分區(qū)展示相等大小的一個(gè)實(shí)施例中,小應(yīng)用程序ID提供的偏移量等于分區(qū)的寄存器數(shù)目。例如,如果小應(yīng)用程序0需要4個(gè)寄存器并且小應(yīng)用程序0分區(qū)的大小是4個(gè)寄存器,那么處理器用于小應(yīng)用程序l分區(qū)的偏移量就是4。如果小應(yīng)用程序0需要8個(gè)寄存器并且小應(yīng)用程序0分區(qū)的大小是8個(gè)寄存器,那么處理器用于小應(yīng)用程序l分區(qū)的偏移量就是8。圖5A描述了包含小應(yīng)用程序ID信息或者數(shù)據(jù)的處理器系統(tǒng)400的功能單元中的值,即發(fā)送和執(zhí)行單元450、小應(yīng)用程序ID寄存器460,和或單元465。圖5A顯示了使用表1的簡單小應(yīng)用程序指令文本作為示例的圖4的示例的代表性數(shù)據(jù)狀態(tài)。當(dāng)發(fā)送和執(zhí)行單元450執(zhí)行小應(yīng)用程序0時(shí),操作軟件430保持在小應(yīng)用程序ID寄存器460的輸出展示值為十六進(jìn)制0或者二進(jìn)制0000的小應(yīng)用程序0ID510(小應(yīng)用程序ID)。使用表l的單個(gè)小應(yīng)用程序指令測試操作碼和操作數(shù),即"Idr6,15",發(fā)送和執(zhí)行單元450在地址總線454呈現(xiàn)十六進(jìn)制6或者二進(jìn)制0110的寄存器地址線程ID515(線程ID)值至或單元465的輸入465B。寄存器地址線程ID515表示小應(yīng)用程序0指令文本代碼為寫入或其它操作而指定的實(shí)際小應(yīng)用程序指令文本寄存器地址,或單元465計(jì)算或者確定兩個(gè)輸入值的布爾或函數(shù),即十六進(jìn)制0和十六進(jìn)制6,以在或單元的輸出上提供十六進(jìn)制6的結(jié)果?;騿卧?65的輸出是驅(qū)動(dòng)寄存器文件470的地址輸入470A的真實(shí)或者實(shí)際的寄存器文件地址520,即該例子中十六進(jìn)制6的值。發(fā)送和執(zhí)行單元450在數(shù)據(jù)總線456上呈現(xiàn)接著寫入十六進(jìn)制6的寄存器文件位置的數(shù)據(jù)值15并且小應(yīng)用程序0指令代碼完成對(duì)寄存器文件470的寫入操作。因此,在小應(yīng)用程序0的情況中,小應(yīng)用程序ID寄存器460提供給或單元465的輸入465A的小應(yīng)用程序ID(或掩碼),不改變或偏移或單元465提供給寄存器文件470的地址輸入470A的地址線程ID。圖5B描述了圖5A描述的處理器系統(tǒng)400的相同功能單元中的值,除了圖5B顯示小應(yīng)用程序1的值。發(fā)送和執(zhí)行單元450中的下一個(gè)指令與上述的圖5A示例中的指令代碼相同,即再次來自表1的示例的"ldr6,15"。然而,操作系統(tǒng)軟件430將該指令解釋為小應(yīng)用程序1的一部分。因?yàn)閬碜孕?yīng)用程序0和小應(yīng)用程序1的指令文本在結(jié)構(gòu)上相同,其由唯一小應(yīng)用程序ID寄存器460和或單元465來在該示例的兩個(gè)小應(yīng)用程序之間進(jìn)行區(qū)分。因?yàn)樾?yīng)用程序1由發(fā)送和執(zhí)行單元450執(zhí)行,操作系統(tǒng)軟件430保持展示十六進(jìn)制8或者二進(jìn)制IOOO的值作為小應(yīng)用程序ID寄存器460的輸出的小應(yīng)用程序1ID530(小應(yīng)用程序ID)。再次使用表1的單個(gè)小應(yīng)用程序指令測試操作碼和操作數(shù),發(fā)送和執(zhí)行單元450在地址總線454將展示十六進(jìn)制6或者二進(jìn)制0110的值的寄存器地址線程ID536值(線程ID)呈現(xiàn)至或單元465的輸入465B。或單元465計(jì)算或者確定兩個(gè)輸入值的布爾或函數(shù),即十六進(jìn)制8和十六進(jìn)制6,以提供十六進(jìn)制E或者基于10的十進(jìn)制(dec)14的結(jié)果?;騿卧?65的輸出是驅(qū)動(dòng)寄存器文件470的地址輸入470A的真實(shí)或者實(shí)際的寄存器文件地址540,即該例子中十六進(jìn)制E的值。發(fā)送和執(zhí)行單元450在數(shù)據(jù)總線456呈現(xiàn)接著寫入十六進(jìn)制E或者十進(jìn)制14的寄存器文件位置的數(shù)據(jù)值15。小應(yīng)用程序l接著完成對(duì)寄存器文件470的寫入操作。因此,不同于針對(duì)小應(yīng)用程序0的寫入15至寄存器地址6(即,寄存器6),在小應(yīng)用程序1的情況中寄存器文件470將寫入值15至寄存器地址14(即,8+6)?;騿卧?65因此應(yīng)用地址偏移量,即小應(yīng)用程序ID-8,其等于小應(yīng)用程序0需要的唯一寄存器數(shù)目。該地址偏移量保證小應(yīng)用程序O和小應(yīng)用程序1不寫入寄存器文件470中的相同寄存器。范圍從0至7的小應(yīng)用程序0寄存器文件地址通過或單元465轉(zhuǎn)化為范圍從8至15的小應(yīng)用程序1寄存器文件地址。因此,小應(yīng)用程序0和1在任何寄存器文件470位置都沒有重疊。管理相同小應(yīng)用程序而不需要在存儲(chǔ)器中復(fù)制整個(gè)小應(yīng)用程序的這種能力為終端用戶提供了更加有效的多任務(wù)處理器系統(tǒng)環(huán)境。使用或單元465的或掩碼功能為軟件應(yīng)用程序編程人員提供了運(yùn)行大量相同小應(yīng)用程序而沒有用盡寄存器文件470地址位置(即寄存器)的風(fēng)險(xiǎn)的靈活性。操作系統(tǒng)軟件還可以在總的寄存器文件470大小的限制內(nèi)管理許多不同小應(yīng)用程序寄存器文件大小程序。對(duì)于圖4至圖5的這個(gè)示例,寄存器文件470包括總共128個(gè)寄存器文件地址位置。在實(shí)際操作中,寄存器文件470根據(jù)特定應(yīng)用可以包括更大量或者少量的寄存器文件地址位置或寄存器。圖4和圖5表示了分區(qū)寄存器文件為每一個(gè)包括8個(gè)寄存器或寄存器文件地址位置的兩個(gè)寄存器文件分區(qū)的示例。寄存器文件470地址包括允許總共16個(gè)寄存器的4個(gè)位。通過增加總的寄存器地址段至7位,操作系統(tǒng)軟件430可以尋址大小為128個(gè)地址位置的整個(gè)寄存器文件470。圖6A描述了圖4、圖5A和圖5B的寄存器文件尋址方案。操作系統(tǒng)軟件430指定與每個(gè)小應(yīng)用程序所需的寄存器總數(shù)相對(duì)應(yīng)的寄存器文件分區(qū)。小應(yīng)用程序0需要8個(gè)寄存器。因?yàn)樾?yīng)用程序l是小應(yīng)用程序0的相同復(fù)制,OS軟件430劃分相同的寄存器文件470以為小應(yīng)用程序1保留另外8個(gè)唯一寄存器。顯示為a000的小應(yīng)用程序ID描述了其中"a"表示針對(duì)每個(gè)小應(yīng)用程序的增量的二進(jìn)制集.例如,針對(duì)小應(yīng)用程序0,OS軟件在小應(yīng)用程序ID寄存器460中保持0000的小應(yīng)用程序ID值,其中a-0。該小應(yīng)用程序ID在任何小應(yīng)用程序0指令文本的發(fā)送和執(zhí)行期間保持活動(dòng).當(dāng)小應(yīng)用程序0指令文本發(fā)送讀取或?qū)懭胫良拇嫫魑募?70,發(fā)送和取指單元440將線程ID值,即當(dāng)前指令文本的目標(biāo)地址,放置在地址總線454上。對(duì)于表l的示例代碼,該代表性地址線程ID值是指定寄存器6的十六進(jìn)制值6?;騿卧?65將十六進(jìn)制0的小應(yīng)用程序ID值與十六進(jìn)制6的線程ID值進(jìn)行或,其產(chǎn)生十六進(jìn)制6的結(jié)果寄存器文件地址,即,沒有地址偏移。十六進(jìn)制6的結(jié)果地址落入在針對(duì)小應(yīng)用程序0的寄存器0至7的兩個(gè)分區(qū)寄存器文件區(qū)域中的第一個(gè)。更具體地,十六進(jìn)制6的結(jié)果地址在圖6A的分區(qū)470-0中。圖6A還顯示了與分區(qū)470-0相同大小的第二個(gè)分區(qū)470-1。分區(qū)470-0包括由小應(yīng)用程序0使用的寄存器0-7并且分區(qū)470-1包括由小應(yīng)用程序1使用的寄存器8-15。當(dāng)小應(yīng)用程序1的指令文本到達(dá)發(fā)送和取指單元450時(shí),表1的相同示例的線程ID也呈現(xiàn)十六進(jìn)制6的線程ID作為輸入至或單元465的輸入465B。OS軟件保持二進(jìn)制1000的小應(yīng)用程序ID值,其中"a"=1以訪問寄存器文件470中的兩個(gè)分區(qū)中的第二個(gè)。小應(yīng)用程序ID寄存器460施加其中a-l的二進(jìn)制1000的小應(yīng)用程序ID值至或單元465的剩余輸入465A。在二進(jìn)制中,1000對(duì)應(yīng)于十進(jìn)制的8。因此,或單元465提供的或掩碼操作有效地增加十六進(jìn)制8的偏移量至十六進(jìn)制6的線程ID值。這導(dǎo)致當(dāng)前小應(yīng)用程序1指令寫入至十六進(jìn)制14的寄存器,即十六進(jìn)制6加上十六進(jìn)制8的偏移量的和。圖6B描述了使用小應(yīng)用程序ID數(shù)據(jù)或信息的寄存器文件分區(qū)的另一個(gè)示例。OS軟件保持二進(jìn)制串bbb,b000的小應(yīng)用程序ID值。更具體地,詞"b"表示能夠是"0"或者是"1"值的二進(jìn)制字段。4個(gè)"b"位,表示小應(yīng)用程序ID數(shù)據(jù)值能夠影響到的寄存器地址的部分,對(duì)應(yīng)寄存器文件470總共128個(gè)寄存器中的16個(gè)唯一地址。顯示為bbb,b000的整個(gè)地址段的總分區(qū)效果對(duì)應(yīng)于每個(gè)寄存器分區(qū)8個(gè)寄存器的16個(gè)寄存器分區(qū)。每個(gè)寄存器展示不同的寄存器地址,OS軟件410可以使用這種特定的分區(qū)方法以提供每一個(gè)使用8個(gè)寄存器的16個(gè)相同小應(yīng)用程序。例如,小應(yīng)用程序0使用分區(qū)470-0中的寄存器文件0至7,小應(yīng)用程序l使用分區(qū)470-1中的寄存器8至15,等等,直到使用分區(qū)470-15中的寄存器28-31的小應(yīng)用程序15。如圖6B所示,每個(gè)分區(qū)對(duì)應(yīng)8個(gè)寄存器文件。每個(gè)完整地址能夠看成是針對(duì)小應(yīng)用程序1的二進(jìn)制"000,0000"至二進(jìn)制"000,0111",針對(duì)小應(yīng)用程序1的"000,1000"至"000,1111"等等,直到最后寄存器文件地址"111,1000"至"111,1111"表示針對(duì)小應(yīng)用程序15的顯示為119至127的最后分區(qū)。圖6A和圖6B的例子表示在協(xié)同式多任務(wù)處理環(huán)境中的小應(yīng)用程序軟件。兩個(gè)例子都反應(yīng)了操作系統(tǒng)軟件根據(jù)每個(gè)寄存器文件分區(qū)中寄存器的數(shù)目而指定給相同大小的每個(gè)分區(qū)的針對(duì)小應(yīng)用程序的寄存器文件分區(qū)。這種寄存器文件分區(qū)機(jī)制和方法避免不同小應(yīng)用程序試圖訪問寄存器文件中的相同寄存器的小應(yīng)用程序干擾情形。更具體地,這種方法限制了一個(gè)小應(yīng)用程序讀取或?qū)懭隣S軟件通過小應(yīng)用程序ID表示的方式而關(guān)聯(lián)至其它小應(yīng)用程序的任何寄存器的能力。盡管這種分區(qū)方法有效,但在一些應(yīng)用中,允許在操作系統(tǒng)軟件430的嚴(yán)格控制下的寄存器文件地址位置的一些交叉共享是有用的。通過在小應(yīng)用程序ID值中包括與線程ID中為"1"位的相同位置對(duì)應(yīng)的"1"位,可以讓寄存器共享和固定分區(qū)空間在寄存器文件470中共存。圖6C就顯示了寄存器文件470的寄存器文件地址中的寄存器共享和固定分區(qū)空間的這樣一個(gè)示例。對(duì)于該示例,操作系統(tǒng)軟件430管理和劃分寄存器文件470的32個(gè)低地址文件位置,即寄存器0-31。4個(gè)小應(yīng)用程序,即小應(yīng)用程序20、小應(yīng)用程序21、小應(yīng)用程序22,和小應(yīng)用程序23表示在處理器系統(tǒng)400的一個(gè)軟件應(yīng)用程序中運(yùn)行的小應(yīng)用程序的完整集。OS軟件在小應(yīng)用程序ID460寄存器中保持二進(jìn)制00c,cc00的小應(yīng)用程序ID。換言之,詞"c"描述的每個(gè)二進(jìn)制元在OS軟件430可以表示為"0"或者"1"位的地址位的范圍內(nèi)。圖6C還表示了針對(duì)4個(gè)小應(yīng)用程序,即該實(shí)施例中的小應(yīng)用程序20-小應(yīng)用程序23的4個(gè)尋址方案和寄存器文件分配。下面的表3顯示了圖6C進(jìn)一步描述的例子的32個(gè)寄存器文件位置中的每一個(gè)。在該示例中,寄存器文件470劃分為5個(gè)分區(qū),即包括寄存器0-7的分區(qū)470-0',包括寄存器8-11的分區(qū)470-1,,包括寄存器12-15的分區(qū)470-2,,包括寄存器16-27的分區(qū)470-3,和包括寄存器28-31的分區(qū)470-4,。分區(qū)470-0,、分區(qū)470-1,、分區(qū)470-2,和分區(qū)470-3,是不共享分區(qū),因?yàn)樾?yīng)用程序20使用分區(qū)470-O,的寄存器而不與其它小應(yīng)用程序共享那些寄存器。類似地,小應(yīng)用程序21使用分區(qū)470-l,的寄存器而不與其它小應(yīng)用程序共享那些寄存器。小應(yīng)用程序22使用分區(qū)470-2,的寄存器而不與其它小應(yīng)用程序共享那些寄存器,小應(yīng)用程序23使用分區(qū)470-3,的寄存器而不與其它小應(yīng)用程序共享那些寄存器。然而,小應(yīng)用程序可以在操作系統(tǒng)對(duì)這種共享的控制和管理下共享被共享的分區(qū)470-4,。在共享分區(qū)470-4,的情況中,操作系統(tǒng)管理這個(gè)分區(qū)的共享寄存器以防止共享這個(gè)共享分區(qū)的寄存器的小應(yīng)用程序之間的沖突問題。表3<table>tableseeoriginaldocumentpage25</column></row><table>操作系統(tǒng)軟件430針對(duì)4個(gè)小應(yīng)用程序中的一個(gè),即處理器系統(tǒng)400中的小應(yīng)用程序20的執(zhí)行期間的使用而在小應(yīng)用程序ID寄存器460中保持二進(jìn)制0,0000的小應(yīng)用程序ID。圖6C示出了OS軟件針對(duì)小應(yīng)用程序20的使用而創(chuàng)建并且保持了8個(gè)寄存器文件位置0至7的分區(qū)470-0,。如在表3中更加詳細(xì)地看到,小應(yīng)用程序20生成線程ID值0,0000至0,0111,對(duì)應(yīng)分區(qū)470-0,中的8個(gè)寄存器文件位置。OS軟件和處理器系統(tǒng)硬件通過使用或單元465并且提供小應(yīng)用程序ID0,0000和線程IDO,OOOO至0,0111的輸入至或單元465來生成實(shí)際寄存器文件地址?;騿卧?65應(yīng)用布爾或函數(shù)至一個(gè)或輸入值,即小應(yīng)用程序ID0,0000,而另一個(gè)或輸入值,即線程ID,在0,0000至O,Olll之間變化,寄存器文件位置0至7針對(duì)小應(yīng)用程序20的使用而變成可用。相反,參考表3,如果小應(yīng)用程序ID數(shù)據(jù)值是二進(jìn)制1,1100,那么小應(yīng)用程序20可以尋址寄存器文件位置28至31。在這個(gè)特定的實(shí)施例中,OS軟件為在處理器系統(tǒng)400中運(yùn)行多個(gè)小應(yīng)用程序的軟件應(yīng)用程序的所有其它小應(yīng)用程序提供寄存器文件位置28至31的共享。圖6C和表3顯示了4個(gè)小應(yīng)用程序中的第二個(gè),即小應(yīng)用程序21。操作系統(tǒng)軟件430針對(duì)處理器系統(tǒng)400中的小應(yīng)用程序21的執(zhí)行期間的使用而在小應(yīng)用程序ID寄存器460中保持二進(jìn)制0,1000的小應(yīng)用程序ID。圖6C顯示了OS軟件針對(duì)小應(yīng)用程序21的使用而創(chuàng)建和保持包括4個(gè)寄存器文件位置或寄存器8至11的分區(qū)470-l,.如在表3中更加詳細(xì)地看到,小應(yīng)用程序21生成線程ID值0,0000至0,0011,分別對(duì)應(yīng)4個(gè)寄存器文件位置8至11。OS軟件和處理器系統(tǒng)硬件通過應(yīng)用小應(yīng)用程序ID或輸入值0,1000、而另一個(gè)或輸入值在0,0000至0,0011之間變化來生成實(shí)際寄存器文件地址。寄存器文件位置或寄存器8至11因此針對(duì)小應(yīng)用程序21的尋址而變成可用。而且,如果小應(yīng)用程序ID數(shù)據(jù)值變成二進(jìn)制1,1100,那么小應(yīng)用程序21可以尋址共享的寄存器文件位置28至31。OS軟件為在處理器系統(tǒng)400中運(yùn)行多個(gè)小應(yīng)用程序的軟件應(yīng)用程序的所有其它小應(yīng)用程序提供寄存器文件位置28至31的共享。圖6C和表3還顯示了4個(gè)小應(yīng)用程序中的第三個(gè),即小應(yīng)用程序22。操作系統(tǒng)軟件430針對(duì)處理器系統(tǒng)400中的小應(yīng)用程序22的執(zhí)行期間的使用而在小應(yīng)用程序ID寄存器460中保持具有二進(jìn)制0,1100的小應(yīng)用程序ID。圖6C顯示了OS軟件針對(duì)小應(yīng)用程序22的使用而創(chuàng)建和保持包括4個(gè)寄存器文件位置或寄存器12至15的分區(qū)470-2,。如在表3中更加詳細(xì)地看到,小應(yīng)用程序22生成分別對(duì)應(yīng)4個(gè)寄存器文件位置12-15的線程ID值0,0000至0,0011。OS軟件和處理器系統(tǒng)硬件通過應(yīng)用小應(yīng)用程序ID或輸入值O,llOO,同時(shí)另一個(gè)或輸入值在線程IDO,OOOO至0,0011之間變化來生成實(shí)際寄存器文件地址。寄存器文件位置或寄存器12至15因此針對(duì)小應(yīng)用程序22的尋址而變成可用。而且,如果小應(yīng)用程序ID數(shù)據(jù)值變成二進(jìn)制1,1100,那么小應(yīng)用程序22可以尋址共享的寄存器文件位置28至31。OS軟件為在處理器系統(tǒng)400中運(yùn)行多個(gè)小應(yīng)用程序的軟件應(yīng)用程序的所有其它小應(yīng)用程序提供寄存器文件位置28至31的共享。圖6C和表3進(jìn)一步顯示了4個(gè)小應(yīng)用程序中的第四個(gè),即小應(yīng)用程序23。操作系統(tǒng)軟件430針對(duì)處理器系統(tǒng)400中的小應(yīng)用程序23的執(zhí)行期間的使用而在小應(yīng)用程序ID寄存器460中保持具有二進(jìn)制1,0000的小應(yīng)用程序ID。圖6C顯示了OS軟件針對(duì)小應(yīng)用程序23的使用而創(chuàng)建和保持包括12個(gè)寄存器文件位置或寄存器16至27的分區(qū)470-3,。如在表3中更加詳細(xì)地看到,小應(yīng)用程序23生成分別對(duì)應(yīng)于12個(gè)寄存器文件位置16-27的線程ID值0,0000至0,1011。OS軟件和處理器系統(tǒng)硬件通過應(yīng)用小應(yīng)用程序ID或輸入值1,0000而另一個(gè)或輸入值在線程IDO,OOOO至0,1011之間變化來生成實(shí)際寄存器文件地址。寄存器文件位置或寄存器16至27因此針對(duì)小應(yīng)用程序23的尋址而變成可用,而且,如果小應(yīng)用程序ID數(shù)據(jù)值變成二進(jìn)制1,1100,那么小應(yīng)用程序23可以尋址共享的寄存器文件位置28至31。OS軟件為在處理器系統(tǒng)400中運(yùn)行多個(gè)小應(yīng)用程序的軟件應(yīng)用程序的所有其它小應(yīng)用程序提供寄存器文件位置28至31的共享。圖6C的例子示出了OS軟件430所生成的用以使能小應(yīng)用程序之間的寄存器文件位置共享的共享分區(qū)470-4,。OS軟件使用所公開的分區(qū)方案來提供特定于并且專用于(dedicatedto)各自小應(yīng)用程序的分區(qū)。小應(yīng)用程序分區(qū)大小包括4個(gè)寄存器、8個(gè)寄存器,和更大的12個(gè)寄存器分區(qū)。這些分區(qū)大小是用于示例的目的。在實(shí)際操作中,分區(qū)大小根據(jù)特定應(yīng)用可以小于或大于示例所給的大小。寄存器文件大小也可以根據(jù)特定應(yīng)用而變化。多個(gè)小應(yīng)用程序的分區(qū)大小的這種混合表示了處理器系統(tǒng)400內(nèi)靈活的協(xié)同式多任務(wù)處理環(huán)境。而且,小應(yīng)用程序可以尋址寄存器文件位置而不用明確地命名實(shí)際寄存器文件470位置的地址。許多不同的分區(qū)大小,分區(qū)分割和分區(qū)共享方案在本文的教導(dǎo)下都是可能的。圖7是顯示了協(xié)同式小應(yīng)用程序寄存器文件管理方法的一個(gè)實(shí)施例的流程圖。更具體地,圖7表示了來自小應(yīng)用程序指令文本的寄存器文件寫操作。小應(yīng)用程序軟件415內(nèi)的一或更多小應(yīng)用程序貯存在系統(tǒng)存儲(chǔ)器420中,并且在操作系統(tǒng)軟件430和處理器系統(tǒng)400硬件的控制下執(zhí)行。流程開始于開始框710。操作系統(tǒng)軟件協(xié)作處理器系統(tǒng)400的取指和譯碼單元440從系統(tǒng)存儲(chǔ)器420取小應(yīng)用程序指令文本,如框715。OS軟件從專用寄存器484讀取小應(yīng)用程序ID數(shù)據(jù),并且用與當(dāng)前小應(yīng)用程序指令文本相關(guān)聯(lián)的小應(yīng)用程序ID來修改小應(yīng)用程序ID寄存器460,如修改小應(yīng)用程序ID框720。發(fā)送和執(zhí)行單元450生成來自當(dāng)前小應(yīng)用程序指令文本的線程ID,并且將線程ID放置在地址總線454上,如框725。來自小應(yīng)用程序ID寄存器460的小應(yīng)用程序ID和來自發(fā)送和執(zhí)行單元450的線程ID數(shù)據(jù)提供兩個(gè)輸入值至或單元465。作為響應(yīng),或門單元465對(duì)這兩個(gè)輸入值進(jìn)行邏輯或以生成實(shí)際寄存器文件地址或者寄存器編號(hào),如框730。發(fā)送和執(zhí)行單元450在寫入寄存器文件操作的情況中在數(shù)據(jù)總線456上提供指令文本數(shù)據(jù)。操作系統(tǒng)寫入小應(yīng)用程序指令文本數(shù)據(jù)至或操作指定的特定實(shí)際寄存器文件地址位置,如寫入寄存器文件框735。如果最后小應(yīng)用程序指令測試框740確定當(dāng)前小應(yīng)用程序指令不是小應(yīng)用程序的最后指令,那么流程返回至框715。當(dāng)流程按照這種方式返回至框715,OS軟件協(xié)作取指和譯碼單元440從系統(tǒng)存儲(chǔ)器420取下一個(gè)小應(yīng)用程序指令文本并且流程繼續(xù)。然而,如果小應(yīng)用程序完成,測試框740返回真結(jié)果并且處理流程結(jié)束,如結(jié)束框750。盡管上述特定例子涉及對(duì)寄存器文件位置的寫或讀操作,但本文的教導(dǎo)同樣應(yīng)用至來自寄存器文件位置的讀操作。在那種情況下,讀操作代替了本文教導(dǎo)的寫操作。不是寫入至或單元465指定的寄存器文件地址,而是處理器系統(tǒng)400從或單元465指定的寄存器文件地址進(jìn)行讀取。在使用分區(qū)裝置和方法時(shí),處理器不需要相同小應(yīng)用程序的多個(gè)副本。圖8顯示了使用處理器410的代表性信息處理系統(tǒng)(IHS)800的簡化框圖。在一個(gè)實(shí)施例中,處理器410包括耦接至或單元465的小應(yīng)用程序ID寄存器460。寄存器文件470耦接至或單元465。盡管由于附圖空間的限制,圖8沒有復(fù)制圖4中所示的處理器410的全部組件,但圖8的處理器410包括圖4中所示的那些處理器組件。IHS800進(jìn)一步包括用于將處理器410耦接至存儲(chǔ)器控制器815的總線810和視頻圖形控制器820。更具體地,如圖所示,系統(tǒng)存儲(chǔ)器總線830耦接至系統(tǒng)存儲(chǔ)器835。在實(shí)際操作中,總線810可能包括多個(gè)總線,例如存儲(chǔ)器總線和I/O總線。顯示器840耦接至視頻圖形控制器820。非易失性存儲(chǔ)器845,如硬盤驅(qū)動(dòng)器、CD驅(qū)動(dòng)器、DVD驅(qū)動(dòng)器,或者其它非易失性存儲(chǔ)器耦接至總線810以為IHS800提供信息的永久存儲(chǔ),I/O設(shè)備850,如鍵盤和鼠標(biāo)指向設(shè)備,經(jīng)由I/O總線855和I/O控制器860耦接至總線810。一條或更多擴(kuò)展總線865,如USB、IEEE1394總線、ATA、SATA、PCI、PCIE和其它總線,耦接至總線810以促進(jìn)外圍設(shè)備與IHS800的連接。網(wǎng)絡(luò)接口適配器870耦接至總線810以使能IHS800通過有線或無線連接至網(wǎng)絡(luò)和其它信息處理系統(tǒng)。盡管圖8顯示了使用小應(yīng)用程序管理處理器410的一種IHS,但I(xiàn)HS可以有多種形式。例如,IHS800可以采用桌面型、服務(wù)器、便攜式、膝上型、筆記本,或其它形狀因子計(jì)算機(jī)或數(shù)據(jù)處理系統(tǒng)的形式。IHS800可以采用其它形狀因子如游戲設(shè)備、個(gè)人數(shù)字助理(PDA)、便攜式電話設(shè)備、通信設(shè)備或者包括處理器和存儲(chǔ)器的其它設(shè)備。鑒于本發(fā)明的說明書,本發(fā)明的修改和替代實(shí)施例對(duì)于本領(lǐng)域技術(shù)人員是顯然的。因此,該說明書教導(dǎo)了本領(lǐng)域技術(shù)人員實(shí)現(xiàn)本發(fā)明的方法并且意圖被構(gòu)造成僅用以進(jìn)行示例說明。所示出的和描述的本發(fā)明的方式構(gòu)成了本實(shí)施例。本領(lǐng)域技術(shù)人員可以在形狀、大小和部件安排上做出各種改變。例如,本領(lǐng)域技術(shù)人員可以用等效元件來替代本文所闡明的和描述的元件。而且,從本發(fā)明的說明書中獲益的本領(lǐng)域技術(shù)人員在不脫離本發(fā)明范圍的前提下,可以與其它特征的使用相獨(dú)立地使用本發(fā)明的某些特征。權(quán)利要求1.一種信息處理系統(tǒng)中協(xié)同式多任務(wù)處理方法,所述方法包含通過取指和譯碼單元,從存儲(chǔ)器中的第一和第二小應(yīng)用程序之一取指令,從而提供所取的指令;如果所取的指令來自所述第一小應(yīng)用程序,則為所取的指令分配第一小應(yīng)用程序ID,如果所取的指令來自所述第二小應(yīng)用程序,則為所取的指令分配第二小應(yīng)用程序ID;通過發(fā)送和執(zhí)行單元,執(zhí)行所取的指令從而提供指令結(jié)果;以及通過定向器電路,如果所取的指令展示所述第一小應(yīng)用程序ID則將所述指令結(jié)果定向至寄存器文件的第一分區(qū)中的寄存器,如果所取的指令展示所述第二小應(yīng)用程序ID則將所述指令結(jié)果定向至所述寄存器文件的第二分區(qū)中的寄存器。2.如權(quán)利要求1所述的方法,其中所述定向器電路執(zhí)行邏輯或運(yùn)算以確定指示所述指令結(jié)果被定向至所述寄存器文件的第一還是第二分區(qū)的寄存器文件地址位置。3.如權(quán)利要求2所述的方法,其中所述邏輯或運(yùn)算包括將小應(yīng)用程序ID和所述指令結(jié)果指定的寄存器文件寄存器地址進(jìn)行邏輯或運(yùn)算,所述小應(yīng)用程序ID指示所取的指令來自所述第一小應(yīng)用程序還是所述第二小應(yīng)用程序。4.如權(quán)利要求1所述的方法,其中所述第二分區(qū)中的寄存器展示關(guān)于所述第一分區(qū)中的寄存器的偏移地址。5.如權(quán)利要求1所述的方法,其中所述分配步驟包含響應(yīng)于所述發(fā)送和執(zhí)行單元執(zhí)行所取的指令而在存儲(chǔ)器位置中存儲(chǔ)小應(yīng)用程序ID。6.如權(quán)利要求5所述的方法,其中如果所取的指令來自所述笫一小應(yīng)用程序則所述小應(yīng)用程序ID是所述第一小應(yīng)用程序ID,如果所取的指令來自所述第二小應(yīng)用程序則所述小應(yīng)用程序ID是所述笫二小應(yīng)用程序ID。7.—種信息處理系統(tǒng)中協(xié)同式多任務(wù)處理方法,所述方法包含通過取指和譯碼單元,從存儲(chǔ)器取指令從而提供所取的指令;為所取的指令分配小應(yīng)用程序ID,所述小應(yīng)用程序ID指示所取的指令來自軟件程序的第一小應(yīng)用程序還是軟件程序的第二小應(yīng)用程序;通過發(fā)送和執(zhí)行單元,執(zhí)行所取的指令,以提供請(qǐng)求訪問寄存器文件中被請(qǐng)求的寄存器地址位置的所執(zhí)行的指令結(jié)果;以及通過邏輯或電路,將所取的指令的小應(yīng)用程序ID和所請(qǐng)求的寄存器地址位置進(jìn)行邏輯或,從而如果所述小應(yīng)用程序ID指示所取的指令來自所述第一小應(yīng)用程序則授權(quán)訪問所述寄存器文件的第一分區(qū)中的寄存器,如果所述小應(yīng)用程序ID指示所取的指令來自所述第二小應(yīng)用程序則授權(quán)訪問所述寄存器文件的第二分區(qū)中的寄存器。8.如權(quán)利要求7所述的方法,其中所執(zhí)行的指令結(jié)果請(qǐng)求對(duì)所述寄存器文件中被請(qǐng)求的寄存器地址位置的寫操作。9.如權(quán)利要求8所述的方法,其中所執(zhí)行的指令結(jié)果請(qǐng)求從所述寄存器文件中被請(qǐng)求的寄存器地址位置的讀操作。10.如權(quán)利要求7所述的方法,其中所述寄存器文件的第二分區(qū)中的寄存器展示關(guān)于所述寄存器文件的第一分區(qū)中的寄存器的偏移地址。11.如權(quán)利要求7所述的方法,其中所述分配步驟包含響應(yīng)于所述發(fā)送和執(zhí)行單元執(zhí)行所取的指令而在存儲(chǔ)器位置中存儲(chǔ)所述小應(yīng)用程序ID。12.—種信息處理系統(tǒng)(1HS),包含存儲(chǔ)器,用以存儲(chǔ)軟件程序的第一和笫二小應(yīng)用程序;處理器,耦接至所述存儲(chǔ)器,所述處理器包括取指和譯碼單元,用以從所述存儲(chǔ)器中的第一和第二小應(yīng)用程序之一取指令,從而提供所取的指令;小應(yīng)用程序ID存儲(chǔ)器,如果所取的指令來自所述第一小應(yīng)用程序,則為所取的指令分配指定第一小應(yīng)用程序ID,如果所取的指令來自所述第二小應(yīng)用程序,則為所取的指令分配第二小應(yīng)用程序ID;發(fā)送和執(zhí)行單元,耦接至所述取指和譯碼單元,執(zhí)行所取的指令從而提供指令結(jié)果;寄存器文件,包括具有多個(gè)寄存器的第一分區(qū)和具有不同的多個(gè)寄存器的第二分區(qū);定向器電路,耦接至作為輸入的所述發(fā)送和執(zhí)行單元和所述小應(yīng)用程序ID存儲(chǔ)器以及作為輸出的所述寄存器文件,如果所取的指令展示所述第一小應(yīng)用程序ID,則將所述指令結(jié)果定向至所述寄存器文件的第一分區(qū)中的寄存器,如果所取的指令展示所述第二小應(yīng)用程序ID,則將所述指令結(jié)果定向至所述寄存器文件的第二分區(qū)中的寄存器。13.如權(quán)利要求12所述的IHS,其中所述指令結(jié)果包括所述寄存器文件中的寄存器文件地址。14.如權(quán)利要求12所述的IHS,進(jìn)一步包含控制所述小應(yīng)用程序ID存儲(chǔ)器的操作系統(tǒng)。15.如權(quán)利要求12所述的IHS,其中所述小應(yīng)用程序ID存儲(chǔ)器包含小應(yīng)用程序ID寄存器。16.如權(quán)利要求12所述的IHS,其中所述定向器電路包含邏輯或電路,所述邏輯或電路執(zhí)行邏輯或運(yùn)算以確定所述指令結(jié)果被定向至所述寄存器文件的第一還是第二分區(qū)。17.如權(quán)利要求16所述的IHS,其中所述指令結(jié)果包括寄存器文件地址,并且進(jìn)一步其中所述邏輯或電路對(duì)指令的小應(yīng)用程序ID和該指令的指令結(jié)果的寄存器文件地址執(zhí)行邏輯或運(yùn)算。18.如權(quán)利要求12所述的IHS,其中所述笫二分區(qū)中的寄存器展示關(guān)于所述第一分區(qū)中的寄存器的偏移地址。19.如權(quán)利要求12所述的IHS,其中所取的指令請(qǐng)求對(duì)所述寄存器文件中的寄存器地址的寫操作。20.如權(quán)利要求12所述的IHS,其中所取的指令請(qǐng)求從所述寄存器文件中的寄存器地址的讀操作。全文摘要本發(fā)明公開了信息處理系統(tǒng)中的協(xié)同式多任務(wù)處理方法及信息處理系統(tǒng)。處理器系統(tǒng)執(zhí)行信息處理系統(tǒng)中軟件應(yīng)用程序內(nèi)的多個(gè)小應(yīng)用程序。信息處理系統(tǒng)包括管理多任務(wù)處理環(huán)境中的處理器系統(tǒng)硬件和軟件的操作系統(tǒng)軟件。特別地,操作系統(tǒng)軟件管理處理器系統(tǒng)中的寄存器文件的分區(qū)以實(shí)現(xiàn)寄存器文件的各自分區(qū)內(nèi)的多個(gè)小應(yīng)用程序之間的協(xié)同關(guān)系。在一個(gè)實(shí)施例中,操作系統(tǒng)軟件管理唯一小應(yīng)用程序ID以在小應(yīng)用程序指令文本執(zhí)行期間修改寄存器文件分區(qū)大小和位置。在一個(gè)實(shí)施例中,小應(yīng)用程序ID掩碼硬件在小應(yīng)用程序代碼的多個(gè)副本之間提供寄存器文件空間的共享。文檔編號(hào)G06F9/46GK101320335SQ20081009539公開日2008年12月10日申請(qǐng)日期2008年5月5日優(yōu)先權(quán)日2007年6月7日發(fā)明者B·W·邁克爾,B·弗拉奇斯,H·P·霍夫斯蒂申請(qǐng)人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1