專利名稱:信息處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種信息處理裝置,更具體地說,是涉及采用一種用于寄存器的組織方法和存取方法的信息處理裝置,這種方法特別適用于寄存器的存取時(shí)間遠(yuǎn)短于主存儲(chǔ)器存取時(shí)間的情況。
到現(xiàn)在為止,對(duì)于包括大量寄存器的計(jì)算機(jī)系統(tǒng),已經(jīng)討論過一種對(duì)單個(gè)寄存器賦值的方法,例如見D.A.Patterson和C.H.Sequin1982年9月在IEEE(pp8-21)上發(fā)表的一種超大規(guī)模集成電路RISC計(jì)算機(jī)(AVISIRISC,COMPUTER),這種方法通常是以RISCI-微處理器(下面簡稱為RISCI)的形式實(shí)現(xiàn)的。
在RISC I中,有32個(gè)可由指令賦值的邏輯寄存器,和138個(gè)物理寄存器。由L0,L1,…及L31表示被指令賦值的邏輯寄存器,R0,R1,…及R937表示物理寄存器。寄存器L0,L1,…及L9在任何時(shí)間里總是分別對(duì)應(yīng)于寄存器R0,R1,…R9。寄存器L10,L11…L31只是在初始化時(shí)分別對(duì)應(yīng)于寄存器R116,R117…R137。但是,在調(diào)用第一個(gè)子程序之后,它們就分別與寄存器R100,R101,…R121對(duì)應(yīng),在調(diào)用僅低于第一子程序等級(jí)的子程序之后,它們又分別與寄存器R84,R85,…R105對(duì)應(yīng)。根據(jù)這種方式,寄存器之間的對(duì)應(yīng)依照子程序調(diào)用的嵌套級(jí)以每16個(gè)寄存器為一組而下移。在從子程序返回時(shí),其對(duì)應(yīng)情況是以每16個(gè)寄存器為一組而上移。在調(diào)用子程序的前后,邏輯寄存器L26,L27,…L31分別指示對(duì)應(yīng)于寄存器L10,L11,…L15的物理寄存器。
根據(jù)這種方式,依照子程序調(diào)用的嵌套級(jí)以利用部分不同的寄存器置位,從而希望減少寄存器的“保存”和“恢復(fù)”操作。當(dāng)子程序調(diào)用的嵌套級(jí)很多,而且物理寄存器已被用完時(shí),將產(chǎn)生中斷。
在如上所述的先有技術(shù)中存在下列問題(a)只有當(dāng)從子程序返回或被調(diào)用時(shí),所使用的寄存器區(qū)域才以一定數(shù)量上移或下移,它完全沒有考慮通過改變寄存器位置來適應(yīng)程序的特點(diǎn)或編程形式,因此不可能有效地利用寄存器。(b)當(dāng)交換任務(wù)時(shí),大量的物理寄存器需要保存和恢復(fù),而且物理寄存器數(shù)量的進(jìn)一步提高不會(huì)導(dǎo)致速度的提高。(c)當(dāng)物理寄存器被用完時(shí),寄存器存貯等操作由一個(gè)中斷處理程序來完成,因此,處理時(shí)需要很長的時(shí)間。
其中,(b)項(xiàng)是一個(gè)很嚴(yán)重的問題,它使得大規(guī)模集成電路的高密度集成技術(shù)不能得到充分的利用。
本發(fā)明的目的是改進(jìn)上述問題,并提供一種信息處理裝置,其中,隨著物理寄存器數(shù)量的增加,當(dāng)子程序引用和任務(wù)交換時(shí),寄存器的保存和恢復(fù)操作可以大大減少,從而簡化對(duì)一個(gè)程序的寄存器分配,提高處理速度。
實(shí)現(xiàn)該目的的本發(fā)明的信息處理裝置,其特征在于,包括這樣的裝置,它通過利用同一指令對(duì)主存貯器的地址空間區(qū)域和一個(gè)寄存器塊同時(shí)賦值,由每條指令所使用的一個(gè)寄存器的賦值表示為一個(gè)區(qū)域寄存器的賦值和一個(gè)寄存器位移的賦值的結(jié)合,前者具有作為一個(gè)數(shù)值的寄存器區(qū)域的寄存器地址,后者表示在該寄存器區(qū)域中的一個(gè)相對(duì)寄存器地址。
下面介紹本發(fā)明的基本原理。
在計(jì)算機(jī)運(yùn)行進(jìn)行處理的每個(gè)時(shí)間點(diǎn)上,由軟件根據(jù)寄存器使用的情況對(duì)區(qū)域寄存器置值??偟膩碚f,盡管很可能只有一個(gè)區(qū)域寄存器,但設(shè)置多個(gè)區(qū)域寄存器也是可以的。每條指令的寄存器字段由一個(gè)區(qū)域寄存器部分和一個(gè)寄存器位移部分構(gòu)成,前者指示將使用的區(qū)域寄存器,后者表示指定區(qū)域內(nèi)的一個(gè)相對(duì)寄存器地址。在某些情況下,區(qū)域寄存器由一個(gè)專用寄存器實(shí)現(xiàn),在另一些情況下,它由一個(gè)其特定區(qū)域在寄存器塊范圍內(nèi)的寄存器(以下簡稱為“特定寄存器”)實(shí)現(xiàn),該寄存器塊中由通用寄存器所組成。在使用專用寄存器的情況下,提供有裝入和存貯寄存器值的指令。相反,在使用特定寄存器的情況下,省略了相應(yīng)于特定區(qū)域的區(qū)域寄存器的賦值,所使用的區(qū)域寄存器的地址只由寄存器位移賦值。
作為一個(gè)合成賦值的區(qū)域寄存器值和寄存器位移值成為寄存器地址的裝置,在一些情況下使用對(duì)兩個(gè)值進(jìn)行算術(shù)相加的加法器,在另一些情況下使用一個(gè)高速“OR”電路。
寄存器以環(huán)形構(gòu)成,對(duì)于每個(gè)寄存器,都要確定其在前寄存器和后續(xù)寄存器,這樣可以同樣對(duì)所用寄存器位置的前移和恢復(fù)進(jìn)行處理。
此外,為消除在每個(gè)程序中由于所用的寄存器的安排而產(chǎn)生的程序干擾,為有效地使用寄存器以及簡化寄存器的配置,設(shè)有寄存器工作區(qū),每個(gè)寄存器工作區(qū)包含一定數(shù)量的寄存器,任一個(gè)所使用的寄存器工作區(qū)都可由置入?yún)^(qū)域寄存器的值來確定。
另外,為縮短子程序調(diào)用和任務(wù)交換時(shí)的寄存器存貯和恢復(fù)過程,將寄存器塊分為多個(gè)寄存器區(qū)(寄存器工作區(qū)),該區(qū)又進(jìn)一步分為包括多個(gè)工作區(qū)的一個(gè)環(huán)形工作區(qū)和多個(gè)整體工作區(qū),該環(huán)形工作區(qū)在調(diào)用和返回子程序時(shí)以環(huán)形形式前移和恢復(fù)一個(gè)工作區(qū)位置,而整體工作區(qū)可隨著任務(wù)交換而改變它們的賦值,并且因此提供了用于控制它們的使用的工作區(qū)控制指令和工作區(qū)控制指針。
進(jìn)一步來說,若一個(gè)環(huán)形工作區(qū)由m個(gè)包括10個(gè)寄存器的工作區(qū)組成,而且一組整體工作區(qū)由n個(gè)分別由l1,l2,…ln個(gè)寄存器組成的工作區(qū)構(gòu)成,則寄存器的總數(shù)為l0×m+l1+l2+…+ln。在這種情況下,寄存器l0,l1…ln的最大數(shù)目可以由指令的寄存器位移部分賦值。環(huán)形工作區(qū)中的每一工作區(qū)以對(duì)應(yīng)嵌套子程序調(diào)用的嵌套級(jí)之一的形式進(jìn)行分配,而每個(gè)整體工作區(qū)以對(duì)應(yīng)異步執(zhí)行的作業(yè)之一的形式進(jìn)行分配。特別是,關(guān)于環(huán)形工作區(qū),當(dāng)子程序調(diào)用的嵌套級(jí)增加一級(jí)時(shí),在環(huán)形位置下一個(gè)位置上的一個(gè)工作區(qū)用作現(xiàn)行工作區(qū),至那時(shí)為止作為現(xiàn)行工作區(qū)的那一工作區(qū)被置為在先工作區(qū)。當(dāng)由于從子程序返回而減少嵌套級(jí)時(shí),環(huán)形位置恢復(fù)一位,從而將在先工作區(qū)置為現(xiàn)行工作區(qū),在環(huán)形位置前一個(gè)位置上的那一工作區(qū)被置為新的在先工作區(qū)。整體工作區(qū)的分配可隨著任務(wù)交換而變化,但在同一個(gè)任務(wù)中調(diào)用和返回子程序時(shí),其分配保持不變而且其內(nèi)容不能自動(dòng)地被保存和恢復(fù)。整體工作區(qū)之一被系統(tǒng)任務(wù)固定用于處理中斷等,因而這個(gè)整體工作區(qū)被稱為“系統(tǒng)工作區(qū)”。
只在一個(gè)子程序中使用的信息被放入環(huán)形工作區(qū),而超出子程序調(diào)用部分之外的整體信息和在子程序調(diào)用時(shí)不需要被保存和恢復(fù)的暫時(shí)信息放入整體工作區(qū)。當(dāng)被提供給低一級(jí)子程序的信息保持在現(xiàn)行工作區(qū)的寄存器中時(shí),被調(diào)用的子程序可將其視為在先工作區(qū)的寄存器。當(dāng)從調(diào)用的子程序回到高一級(jí)子程序的作為函數(shù)值及其類似的信息存放在先工作區(qū)的寄存器中時(shí),在返回時(shí)它可被視為一個(gè)現(xiàn)行工作區(qū)的寄存器。
工作區(qū)控制指針包括,一個(gè)指示正在使用的現(xiàn)行工作區(qū)位置的現(xiàn)行工作區(qū)指針,一個(gè)指示在先工作區(qū)位置的在先工作區(qū)指針,一個(gè)指示整體工作區(qū)位置的整體工作區(qū)指針,此外,還有一個(gè)指示有效信息項(xiàng)邊界的有效工作區(qū)指針以及一個(gè)指示環(huán)形工作區(qū)存貯位置的工作區(qū)指針。
作為工作區(qū)控制指令,有一個(gè)控制環(huán)形工作區(qū)前移和恢復(fù)的前移環(huán)形工作區(qū)指令和一個(gè)恢復(fù)環(huán)形工作區(qū)指令,它們在有效信息消失前將其自動(dòng)保存起來并在需要引用之前將存貯的信息自動(dòng)恢復(fù);執(zhí)行整體工作區(qū)分配的一個(gè)裝入工作區(qū)狀態(tài)指令和一個(gè)存貯工作區(qū)狀態(tài)指令,用于置入環(huán)形工作區(qū)控制信息并為環(huán)形工作區(qū)存貯區(qū)域賦值;以及集中轉(zhuǎn)移工作區(qū)內(nèi)容的一個(gè)塊轉(zhuǎn)移指令。
為了能對(duì)現(xiàn)行工作區(qū)寄存器中的寄存器(其在后續(xù)的環(huán)形工作區(qū)前移或恢復(fù)中保持其內(nèi)容不變)進(jìn)行賦值,設(shè)有一個(gè)指示向量,當(dāng)與之相應(yīng)的寄存器為i時(shí),該向量的第i位置為1,否則該位為0并且該向量被置入現(xiàn)行工作區(qū)的特定存貯器中。
作為一種指令圖,幾乎所有指令的寄存器區(qū)域都被允許分配給整體工作區(qū)的寄存器,使得也可產(chǎn)生只使用整體工作區(qū)的程序。
進(jìn)而,還設(shè)有一種整體工作區(qū)模式,在這種模式中,環(huán)形工作區(qū)的寄存器與整體工作區(qū)的寄存器被同等處理,因而可提高整體工作區(qū)的數(shù)量,采用環(huán)形工作區(qū)的環(huán)形工作區(qū)模式和整體工作區(qū)模式之間可由程序控制進(jìn)行變換。
為避免或消除任務(wù)轉(zhuǎn)換時(shí)的環(huán)形工作區(qū)的存貯操作,設(shè)有多個(gè)環(huán)形工作區(qū),將一個(gè)環(huán)形工作區(qū)和一個(gè)整體工作區(qū)分配給多個(gè)任務(wù)中的一個(gè)任務(wù)。不需要對(duì)環(huán)形工作區(qū)或整體工作區(qū)執(zhí)行保存和恢復(fù)處理,就可以交換具有指定工作區(qū)的任務(wù)。
若寄存器的位置被表示為一個(gè)二進(jìn)制數(shù)的寄存器地址,每個(gè)寄存器區(qū)的寄存器數(shù)量被表示為2的乘方,并且一個(gè)區(qū)域寄存器的值是2的乘方的整數(shù)倍,則實(shí)際使用的寄存器的位置,可以由一個(gè)OR電路根據(jù)該區(qū)域寄存器的值和所賦給一個(gè)寄存器位移部分的值來確定,這樣可以提高處理速度。若寄存器位置被表示為二進(jìn)制數(shù)0~2P-1,則可以很容易地計(jì)算出在寄存器地址為i的寄存器前后的寄存器,它們的寄存器地址的模分別為(i-1,2)和(i+1,2)。當(dāng)一個(gè)環(huán)形工作區(qū)包括2r個(gè)寄存器工作區(qū),而每個(gè)寄存器工作區(qū)又包括2g個(gè)寄存器時(shí),工作區(qū)控制指針的值被置為2
的整數(shù)倍,可以很容易地計(jì)算出一個(gè)以i×2
為起始地址的工作區(qū)的在先和后續(xù)工作區(qū),它們的前寄存器地址的模分別為((i-1)×28,2P+8)和((i+1)×2q.,2P+8)。
若一組整體工作區(qū)中的每個(gè)整體工作區(qū)的寄存器數(shù)目都為l1,每個(gè)環(huán)形工作區(qū)的工作區(qū)數(shù)都為m,并且環(huán)形工作區(qū)中的每一工作區(qū)所包含的寄存器數(shù)目都為l0,則在程序運(yùn)行中可選用任一整體工作區(qū)或環(huán)形工作區(qū)。
由于將寄存器塊和寄存器存儲(chǔ)機(jī)構(gòu)集成在同一半導(dǎo)體芯片上作為算術(shù)一邏輯單元,因此可以大大降低半導(dǎo)體芯片與外部之間的信息交換頻率,從而提高處理速度。
在本發(fā)明的信息處理裝置中,在執(zhí)行一條使用通用寄存器的指令前面部分如一個(gè)程序或子程序的首部設(shè)置了一個(gè)區(qū)域寄存器的值。若所使用的寄存器區(qū)根據(jù)所處理的信息類型而改變時(shí),對(duì)于每一種類型的信息,可以使用不同的區(qū)域寄存器。當(dāng)一條指令,其區(qū)域寄存器部分為i而寄存器位移部分為d,在一個(gè)區(qū)域寄存器i的值被置為Ai時(shí)到來,則被指令實(shí)際使用的寄存器的地址變?yōu)锳i+d。若由一個(gè)OR電路根據(jù)一個(gè)區(qū)域寄存器的值和一個(gè)寄存器位移值合成一個(gè)寄存器地址,則程序這樣擬定,寄存器位移值可限定為一個(gè)最多表示為l′位的數(shù)值,其中l(wèi)′表示一個(gè)小于寄存器位移部分位長的數(shù),而區(qū)域寄存器的值可限定為一個(gè)在l′位以下均為0的數(shù)值。這樣,OR電路中的合成值就與加法器中的相加值相同了,從而不會(huì)引起誤動(dòng)作。
可以在任何需要的時(shí)刻置入?yún)^(qū)域寄存器的值,而不必只限于子程序的首部分等。因此,當(dāng)程序運(yùn)行時(shí),可以根據(jù)寄存器過去的使用狀態(tài)和將來要求的狀態(tài)改變所使用的寄存器的賦值。
圖1是根據(jù)本發(fā)明的信息處理裝置的第一實(shí)施例的塊排列圖;
圖2(a)-2(e)是用于根據(jù)本發(fā)明的信息處理裝置的指令的基本部分的格式圖;
圖3是表示本發(fā)明第二實(shí)施例的信息處理裝置的基本部分的排列圖;
圖4是本發(fā)明第三實(shí)施例的基本部分的排列圖;
圖5是表示圖4中一個(gè)寄存器塊的結(jié)構(gòu)圖;
圖6是本發(fā)明第四實(shí)施例中一條指令的寄存器指示部分;
圖7是圖6中一條工作區(qū)狀態(tài)控制指令的一種格式;
圖8是解釋本發(fā)明中寄存器工作區(qū)的保存和恢復(fù)的細(xì)節(jié);
圖9是本發(fā)明第五實(shí)施例的基本部分的排列圖;
圖10是圖4中的指令處理器集成在一個(gè)半導(dǎo)體芯片上時(shí)的情況。
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
首先,詳細(xì)說明本發(fā)明的信息處理裝置中寄存器工作區(qū)使用方法的一個(gè)例子,設(shè)l表示由用于信息處理裝置的一條指令的寄存器位移部分賦值的寄存器數(shù)目,m表示環(huán)形工作區(qū)的數(shù)目,n表示整體工作區(qū)的數(shù)目。
當(dāng)啟動(dòng)程序時(shí),用一條工作區(qū)狀態(tài)輸入指令將現(xiàn)行工作區(qū)指針的值置為0,將先行工作區(qū)指針的值置為l(m-1),整體工作區(qū)指針的值置為分配給該程序的工作區(qū)地址,有效工作區(qū)指針的值置為l(m-1),工作區(qū)堆棧指針的值置為用作程序中的工作區(qū)存儲(chǔ)區(qū)域的位置。
當(dāng)調(diào)用子程序時(shí),作為自變量傳送給子程序的信息項(xiàng)被放入現(xiàn)行工作區(qū)的寄存器中,保存指示向量被放入現(xiàn)行工作區(qū)的特定寄存器,隨后執(zhí)行用于啟動(dòng)子程序的指令序列。當(dāng)自變量的數(shù)太大以至于現(xiàn)行工作區(qū)的寄存器已安排不下時(shí),則通過存貯器傳送溢出部分。
在調(diào)用的子程序中,首先執(zhí)行一條前移環(huán)形工作區(qū)指令。在這條指令中,在調(diào)用前就將現(xiàn)行工作區(qū)指針的值置為新的在先工作區(qū)指針的值,并由環(huán)形地址表示的直接后續(xù)工作區(qū)地址被置為新的現(xiàn)行工作區(qū)指針的值(如果在調(diào)用前,現(xiàn)行工作區(qū)指針的值i小于l(m-1),則工作區(qū)地址為i+l,如果它等于l(m-1),則工作區(qū)地址為0)。在這種情況下,新的在先工作區(qū)指針將一個(gè)寄存器塊的內(nèi)容存入由工作區(qū)棧指針指示的位置。(而該寄存器塊是由一個(gè)有效工作區(qū)指針指示的工作區(qū)中的一個(gè)保存指示向量所指示的),而且它還將有效工作區(qū)指針的值前移到以環(huán)形地址表示的下一個(gè)工作區(qū)地址,并根據(jù)所存貯數(shù)據(jù)的量前移工作區(qū)堆棧指針的值。除非新的在先工作區(qū)指針要超過有效工作區(qū)指針,否則不執(zhí)行由前移工作區(qū)指令控制的工作區(qū)存貯。
在子程序中利用傳送的信息項(xiàng)作為自變量時(shí),將由程序給出一條關(guān)于在先存貯器內(nèi)容的指令。在調(diào)用端置入寄存器位移部分i的現(xiàn)行寄存器中的信息,可被認(rèn)為是被調(diào)用端寄存器位移部分i的在先寄存器的內(nèi)容。在調(diào)用端置入整體工作區(qū)的信息可與被調(diào)用端同樣使用。
從子程序返回時(shí),如果需要的話,交還給調(diào)用端的信息(如函數(shù)值)首先被置入在先寄存器。然后,執(zhí)行一條恢復(fù)環(huán)形工作區(qū)指令。這條指令的功能是在返回前,將在先工作區(qū)指針的值置為一個(gè)新的現(xiàn)行工作區(qū)指針的值,并將在先的環(huán)形地址置為新的在先工作區(qū)指針的值(若新的在先工作區(qū)指針的地址i大于0,則為i-l,若等于0,則為l(m-1))。在這種情況下,當(dāng)新的現(xiàn)行工作區(qū)指針的值與有效工作區(qū)指針的值成為相等時(shí),由新的在先工作區(qū)指針指示的工作區(qū)存貯區(qū)域的內(nèi)容被轉(zhuǎn)移,因而恢復(fù)原內(nèi)容,而新的在先工作區(qū)指針的值被置為新的有效工作區(qū)指針的值,并且工作區(qū)堆棧指針根據(jù)轉(zhuǎn)移的量而恢復(fù)。一個(gè)保存指示向量指示一個(gè)向其轉(zhuǎn)移內(nèi)容的寄存器,該向量被包含在從工作區(qū)存貯區(qū)域轉(zhuǎn)移的數(shù)據(jù)的首部之中。
當(dāng)有異常情況(如中斷)發(fā)生時(shí),利用一個(gè)系統(tǒng)工作區(qū)的堆棧指針將此時(shí)在執(zhí)行的指令地址推入棧中,然后,所執(zhí)行的操作轉(zhuǎn)移到相應(yīng)于該情況類型的異常處理單元。在異常處理單元中,根據(jù)存貯工作區(qū)狀態(tài)指令存貯異常情況發(fā)生時(shí)的現(xiàn)行工作區(qū)指針的值,在先工作區(qū)指針的值及工作區(qū)棧指針的值,根據(jù)輸入工作區(qū)狀態(tài)指令,將異常處理單元所用的值置入各指針。
當(dāng)用操作系統(tǒng)的軟件或及其類似的軟件進(jìn)行任務(wù)交換時(shí),根據(jù)保存工作區(qū)狀態(tài)指令保存用于現(xiàn)行任務(wù)的現(xiàn)行工作區(qū)指針的值,在先工作區(qū)指針的值、整體工作區(qū)指針的值、有效工作區(qū)指針的值及工作區(qū)堆棧指針的值,然后,根據(jù)裝入工作區(qū)狀態(tài)指令,置入用于下一個(gè)任務(wù)的各指針的值。那時(shí),若一個(gè)環(huán)形工作區(qū)被另一個(gè)任務(wù)共享,則亦根據(jù)塊轉(zhuǎn)移指令保存和恢復(fù)環(huán)形工作區(qū)的內(nèi)容。
利用這種方式,當(dāng)子程序引用時(shí)將極少產(chǎn)生寄存器保存和恢復(fù)操作,因而能夠提高操作速度。
還可以只使用整體工作區(qū),而不使用環(huán)形工作區(qū)來運(yùn)行一個(gè)程序。因此,當(dāng)這樣的程序作為任務(wù)運(yùn)行時(shí),不需要進(jìn)行環(huán)形工作區(qū)的保存和恢復(fù)處理。若這樣的一個(gè)任務(wù)有自己單獨(dú)的整體工作區(qū),而不需要與另一個(gè)任務(wù)競爭,則它就完全不需要寄存器的保存和恢復(fù)處理。若一個(gè)中斷處理單元或類似單元以這種方式構(gòu)成,則其處理速度會(huì)提高。通過利用整體工作區(qū)模式,可以完成大量的這種任務(wù),其中,環(huán)形工作區(qū)可按整體工作區(qū)同等處理。
既使在使用環(huán)形工作區(qū)的情況下,在只使用少量寄存器的一個(gè)小子程序中,并不總是需要子程序首部的前移環(huán)形工作區(qū)指令和位于其尾部的恢復(fù)環(huán)形工作區(qū)指令,它們可以被省略,以實(shí)現(xiàn)高速子程序引用。至于一個(gè)以這種形式分配的任務(wù),它既不與另一個(gè)任務(wù)分享整體工作區(qū),也不與其共用環(huán)形工作區(qū),則既使當(dāng)任務(wù)被交換時(shí),整體工作區(qū)和環(huán)形工作區(qū)的內(nèi)容都被沒有任何改變的存貯起來。因此,當(dāng)重新啟動(dòng)任務(wù)時(shí),可以立刻從斷點(diǎn)重新開始處理。
圖1是表示本發(fā)明第一個(gè)實(shí)施例的信息處理裝置的基本部分的排列圖。
第一個(gè)實(shí)施例中的信息處理裝置基本上由指令處理器1和主存貯器2構(gòu)成。指令處理器1包括由多個(gè)操作寄存器R0,R1,R2…RN組成的寄存器塊3,算術(shù)-邏輯單元4,寄存器存取機(jī)構(gòu)5,主存貯存存取機(jī)構(gòu)6及指令譯碼器10。主存貯器2的主存地址空間和寄存器塊3的寄存器地址空間分別限定不同的地址空間。在本實(shí)施例中,寄存器地址被表示為L位二進(jìn)制整數(shù)0,1,2,…2L-1并保持N=2L-1。在寄存器存取機(jī)構(gòu)5中,有一個(gè)區(qū)域寄存器選擇電路20,寄存器區(qū)域指針22,用于合成寄存器地址的OR電路30及寄存器選擇電路31。在主存貯器存取機(jī)構(gòu)6中,有轉(zhuǎn)移寄存器41和主存地址寄存器42。
指令譯碼器10或者從用戶直接給出的指令列中抽取指令,作為用于進(jìn)行信息處理的指令序列,或者從語言加工程序產(chǎn)生的指令序列中抽取指令,也可從主存貯器2中的預(yù)定序列中抽取指令,而且根據(jù)指令中各組成部份的作用,指令譯碼器對(duì)每條指令進(jìn)行處理。典型的指令包含指示操作類型的操作碼部份11,寄存器指示部分12和主存貯器指示部份15。寄存器指示部份進(jìn)一步包括區(qū)域寄存器部份13和長度為L位的寄存器位移部份14。設(shè)i表示某特定指令的區(qū)域寄存器部份13的值,則值i被送入寄存器存取機(jī)構(gòu)5的區(qū)域寄存器選擇電路20中,位于寄存器塊3中的寄存器Ri(21)便被選中作為區(qū)域寄存器。設(shè)bi表示Ri寄存器21中的內(nèi)容,將值bi送入寄存器區(qū)域指示器22。如果寄存器位移部份14的位長用l表示,則把L位寄存器地址中低l位部份24的內(nèi)容與寄存器位移部份14的內(nèi)容輸入OR電路30進(jìn)行邏輯或運(yùn)算,并將由此得到的邏輯和送入寄存器選擇電路31。此外,寄存器地址的高(L-1)位按照區(qū)域寄存器指針22中高(L-1)位23的值設(shè)置。
當(dāng)區(qū)域寄存器21的值用bi表示且某個(gè)低l位為0的二進(jìn)制數(shù)已事先設(shè)置時(shí),則按照上述由OR電路30合成的寄存器地址等于值bi與寄存器位移部分14的值d之間的算術(shù)和bi+d。區(qū)域寄存器21內(nèi)容中的低l位無需總設(shè)置為0,一條指令中,令l′表示等于或小于寄存器位移部份14的位長L,某個(gè)區(qū)域寄存器的內(nèi)容根據(jù)其低l′位為零的數(shù)目進(jìn)行設(shè)置,并且區(qū)域寄存器的地址用在區(qū)域寄存器部份13;如果寄存器位移部分的值限制在由l′位表示的數(shù)內(nèi),則與之類似,由OR電路30合成的寄存器號(hào)與由區(qū)域寄存器值和寄存器位移部分的值之間的算術(shù)和所表示的值相同。用于限定置入寄存器位移部分14的l′值可以由軟件選擇。因此,值l′可根據(jù)每個(gè)所用的區(qū)域寄存器不同而不同。更進(jìn)一步,甚至對(duì)于一個(gè)區(qū)域寄存器來說,它可以根據(jù)使用的時(shí)間而變。
現(xiàn)在,當(dāng)按照上述方法,根據(jù)某指令所選的區(qū)域寄存器的值bi和寄存器位移部分的值d合成出存存器號(hào)bi+d,并將其送入寄存器選擇電路31時(shí),寄存器地址bi+d對(duì)應(yīng)的寄存器(Rbi+d)32被選中作為指令所用的寄存器。如果指令操作碼部分11的內(nèi)容表示操作指令,且操作數(shù)是所選寄存器的內(nèi)容,則寄存器Rbi+d中的內(nèi)容送入ALU單元4,并且運(yùn)算從這里開始執(zhí)行。換句話說,如果操作碼部分11的內(nèi)容表示操作結(jié)果寄存器是選中的寄存器,則ALU4輸出的操作結(jié)果裝入寄存器Rbi+d中。如果操作碼部分11的內(nèi)容是裝入指令,則由主存貯器指示部分15指定的主存貯器地址的內(nèi)容裝入寄存器Rbi+d中,如果是存貯指令,則寄存器Rbi+d中的內(nèi)容存入由主存貯指示部分15指定的主存貯器地址的對(duì)應(yīng)單元。位于主存貯器存取機(jī)構(gòu)6中的轉(zhuǎn)移寄存器41是用于暫時(shí)存放信息的寄存器,這些信息在主存貯器2與指令處理器1之間傳遞,而主存貯器地址寄存器42用于暫時(shí)存貯當(dāng)時(shí)被選中的主存貯器2的地址。
在本實(shí)施例中,就其區(qū)域寄存器部分13的內(nèi)容是零的指令而言,寄存器位移部分14的內(nèi)容d被不失真地送入寄存器選擇電路31中,并且地址為d的寄存器被選作該指令所用的寄存器。即,寄存器地址從零開始的這個(gè)寄存器區(qū)域被置為區(qū)域寄存器的一個(gè)特定寄存器區(qū)域。因此,通過使用其區(qū)域寄存器部分13為零的指令,能夠設(shè)置或涉及區(qū)域寄存器的值。
圖2(a)-2(e)是用于本發(fā)明的信息處理裝置的指令格式圖。該圖給出不同的指令格式,它涉及信息處理裝置中每條指令的主存貯器地址標(biāo)志、寄存器地址以及操作代碼。作為指令的組成部分,除了圖中所示的各個(gè)部分之外,還有表示附加信息的部分,表示所用常數(shù)的部分等等。
圖2(a)示出一種指令格式,它包括操作碼部分101,寄存器指示部分102以及主存貯器指示部分103。在寄存器指示部分102中,包含區(qū)域寄存器部分105和寄存器位移部分106,并且以與圖1相同的方式選擇所用的寄存器。同樣,在主存貯器指示器部分103中,有用于指示基址寄存器的寄存器指示部分104,主存貯器位移部分109,用于指示相對(duì)于基址寄存器的值的相對(duì)地址。在這種指令中,所用的寄存器的寄存器地址只是按照上述方式,根據(jù)寄存器指示部分107和寄存器位移部分108而得到的,并且,B+D被設(shè)置為指令所用的主存貯器的地址,B+D是通過將上述寄存器地址對(duì)應(yīng)的寄存器Rb的內(nèi)容B與主存貯器位移部分109的值D相加后得到的。
圖2(b)示出一種指令,該指令的主存貯器指示部分112包括表示基址寄存器的寄存器指示部分,用于指示變址寄存器的寄存器指示部分114和主存貯器位移部分121。在這種指令中,用作基址寄存器的寄存器Rb是依照上述形式、根據(jù)一側(cè)的區(qū)域寄存器部分117和寄存器位移部分118得到的,而用作變址寄存器的寄存器Rx是依照上述形式,根據(jù)另一側(cè)的區(qū)域寄存器部分119和寄存器位移部分120而得到的,用作指令中使用的主存貯器2的地址,三部分內(nèi)容是基址寄存器Rb的內(nèi)容,變址寄存器Rx的內(nèi)容和主存貯器位移部分12的值。
圖2(c)示出使用二個(gè)寄存器的指令格式圖。在該指令中,以上述形式并根據(jù)區(qū)域寄存器部分124和一個(gè)寄存器指示部分122的寄存器位移部分125確定的地址,是作為第一寄存器的地址,而根據(jù)區(qū)域寄存器部分126以及另一個(gè)寄存器指示部分123的寄存器位移部分,并以上述形式確定的寄存器地址,作為第二個(gè)寄存器的地址,并用第一和第二寄存器執(zhí)行處理。
圖2(d)示出了另一指令,根據(jù)這種指令,如果使用專用寄存器區(qū)域作為區(qū)域寄存器,則專用區(qū)域寄存器的值存貯在主存貯器中。該指令包括用于指示專用區(qū)域寄存器地址的專用寄存器部分130以及主存貯器指示部分131。
圖2(e)示出了使用一個(gè)專用區(qū)域寄存器和一個(gè)通用寄存器的的指令。在指令中,包括專用區(qū)域寄存器部分133和通用存存器部分134,通過使用區(qū)域寄存器部分135和寄存器位移部分136,并按前述方式選擇寄存器。
圖3是信息處理裝置基本組成部分的排列圖,用于說明本發(fā)明的第二個(gè)實(shí)施例。在這個(gè)實(shí)施例中,區(qū)域寄存器塊207是一組專用區(qū)域寄存器,在指令處理器201中,它與通用寄存器塊203分開排列。通用寄存器塊203由通用寄存器R0,R1…RN組成,而區(qū)域寄存器塊由區(qū)域寄存器Q0、Q1、…QK構(gòu)成。當(dāng)一條指令的寄存器指示部分212中包含的區(qū)域寄存器部分213的內(nèi)容i被送入寄存器存取機(jī)構(gòu)205中的區(qū)域寄存器選擇電路220時(shí),區(qū)域寄存器塊207中的區(qū)域寄存器(Qi)221的內(nèi)容bi被置入?yún)^(qū)域寄存器指針222中。區(qū)域寄存器Qi的內(nèi)容bi與指令中寄存器位移部分214的內(nèi)容d通過寄存器地址運(yùn)算電路230相加,其和bi+d被送入寄存器選擇電路231。結(jié)果,位于通用寄存器塊203中的寄存器(Rbi+d)232被選中作為該指令所用的寄存器。諸如ALU204、主存貯器存取機(jī)構(gòu)206等其它部分與圖1中所描述的第一個(gè)實(shí)施例相同。
圖4是本發(fā)明第三個(gè)實(shí)施例的信息處理裝置基本組成部分的結(jié)構(gòu)圖。在這個(gè)實(shí)施例中,信息處理裝置的主要部分是指令處理器301和主存貯器302。這里的指令處理器301包括操作寄存器塊303,ALU306,區(qū)域寄存器塊310,寄存器存取機(jī)構(gòu)320,主存貯器存取機(jī)構(gòu)330,指令譯碼器340,操作寄存器塊指針323(BMR),和工作區(qū)堆棧指針324(BSP)。其中,操作寄存器塊303包括一個(gè)環(huán)形工作區(qū)304和一個(gè)整體工作區(qū)集305。區(qū)域寄存器塊包括四個(gè)區(qū)域寄存器,分別是在先工作區(qū)指針311(PBNR),現(xiàn)行工作區(qū)指針312(CBNR),有效工作區(qū)指針313(VBNR)和整體工作區(qū)指針314(GBNR)。為了實(shí)現(xiàn)保存環(huán)形工作區(qū)304的內(nèi)容的功能,安排了工作區(qū)堆棧指針324(BSP)和位于主存貯器302中的工作區(qū)堆棧325。更進(jìn)一步而言,設(shè)有指示“工作區(qū)用途模式”的工作區(qū)模式寄存器323(BMR)。圖4中的虛線示范地說明區(qū)域寄存器和工作區(qū)堆棧指針指向的目標(biāo)。
圖5(a)和5(b)用于說明圖4中的寄存器區(qū)的安排。如圖5(a)所示,環(huán)形工作區(qū)304由m個(gè)工作區(qū)RB0、RB1、…RBm1構(gòu)成,每個(gè)工作區(qū)由l個(gè)寄存器,即R0、R1、R2、……Re1構(gòu)成。這里,數(shù)351所指的RBx指出了任一需要的工作區(qū),352指出工作區(qū)中的寄存器塊。
如圖5(b)所示,整體工作區(qū)集305由n個(gè)整體工作區(qū)GB0、GB1、GB2、……GBn1構(gòu)成,每個(gè)工作區(qū)由k個(gè)寄存器R0′、R1′、R2′……R′k-1構(gòu)成。其中,353所指的工作區(qū)GBy表示任一需要的工作區(qū),數(shù)354表示位于整體工作區(qū)中的寄存器塊。
作為第三個(gè)實(shí)施例的這個(gè)信息處理裝置,其環(huán)形工作區(qū)304的工作區(qū)數(shù)量m和整體工作區(qū)集305中的工作區(qū)數(shù)量n可以在信息處理裝置運(yùn)行期間改變。即有用于改變環(huán)形工作區(qū)304的工作區(qū)數(shù)量m和改變整體工作區(qū)集的工作區(qū)數(shù)量n的指令,例如m可變?yōu)?、4、8,n可變?yōu)?、4、8和16。環(huán)形工作區(qū)304的工作區(qū)數(shù)大于1的情況稱作“環(huán)形工作區(qū)模式”,而環(huán)形工作區(qū)304的工作區(qū)數(shù)量等于零且僅能使用整體工作區(qū)集的情況稱為“整體工作區(qū)模式”。涉及環(huán)形工作區(qū)304的工作區(qū)數(shù)量和整體工作區(qū)集305的工作區(qū)數(shù)量時(shí),信息處理裝置的狀態(tài)由工作區(qū)模式寄存器323給定。后面將要描述,有一類可以設(shè)置控制寄存器的指令,使用這些指令可以改變工作區(qū)模式,這樣,工作區(qū)模式寄存器323發(fā)生變化,從而指示工作區(qū)模式改變的時(shí)刻。
在后面的描述中,將首先解釋環(huán)形工作區(qū)模式的操作,然后解釋整體工作區(qū)模式的操作。
圖6是本發(fā)明第四個(gè)實(shí)施例的指令的寄存器部分的框圖。這個(gè)信息處理裝置的許多指令除了有如圖6所示的操作碼部分416以外,還有寄存器指示部分417。該寄存器指示部分417包括區(qū)域寄存器部分418和寄存器位移部分419,區(qū)域寄存器部分用于指示含有指令所用的寄存器的任一個(gè)整體工作區(qū),現(xiàn)行工作區(qū)或在先工作區(qū),位移部分419指示位于工作區(qū)中的相對(duì)地址。在寄存器位移部分419中,其數(shù)值可為0到(l-1)。在某些指令中,所用的寄存器固定于整體工作區(qū)、現(xiàn)行工作區(qū)和在先工作區(qū)中之一。在這種情況下,區(qū)域寄存器部分418通??蓮闹噶畹闹甘静糠种惺〉簟?br>
考慮這樣一種情況,即指令中寄存器位移部分419的內(nèi)容是從0~(l-1)的整數(shù)值i,如果區(qū)域寄存器部分418指示整體工作區(qū),則由整體工作區(qū)指針(圖4)指示的工作區(qū)中的寄存器i被使用;如果區(qū)域寄存器部分418指示現(xiàn)行工作區(qū),則由現(xiàn)行寄存器指針312所指示的工作區(qū)中的寄存器i被選用;如果區(qū)域寄存器部分418指示在先工作區(qū),則由在先工作區(qū)指針311指示的工作區(qū)中的寄存器i被選用。
在環(huán)形工作區(qū)模式中,若環(huán)形工作區(qū)中寄存器的數(shù)量大于1,則工作區(qū)控制指針(如現(xiàn)行工作區(qū)指針)的值必須初始化。為此,需使用工作區(qū)狀態(tài)裝入指令BSL或控制寄存器裝入指令MTCR。
圖7給出圖6中工作區(qū)狀態(tài)控制指令的一種格式圖。如圖7所示,工作區(qū)狀態(tài)裝入指令421有一個(gè)操作數(shù)指示部分422。在使用它時(shí),在存貯器中提供五個(gè)字段,它們分別是423、424、425、426和427。將送入整體工作區(qū)指針314中的工作區(qū)號(hào)事先存在字段423中,將送入在先工作區(qū)指針311的工作區(qū)號(hào)存在字段424中,送入現(xiàn)行工作區(qū)指針312的工作區(qū)號(hào)位于字段425中,送入有效工作區(qū)指針313的內(nèi)容放在字段426中,送入工作區(qū)棧指針324的位置值位于字段427中。字段序列的首位置由操作數(shù)指示部分422指示。當(dāng)在此狀態(tài)下,執(zhí)行工作區(qū)狀態(tài)裝入指令時(shí),則按照上述對(duì)應(yīng)關(guān)系,字段422到427的值被作為工作區(qū)控制寄存器的值。當(dāng)執(zhí)行工作區(qū)狀態(tài)存貯指令時(shí),五個(gè)指針被存貯在由指令操作數(shù)指示部分422指示的內(nèi)存位置中,其形式如圖7中數(shù)值423、424、425、426和477所示。
圖8是本發(fā)明中寄存器工作區(qū)保存恢復(fù)操作的詳細(xì)說明圖。
作為與子程序調(diào)用有關(guān)的指令,除了調(diào)用指令和返回指令,還有前移環(huán)形工作區(qū)指令和恢復(fù)環(huán)形工作區(qū)指令。當(dāng)子程序被調(diào)用時(shí),所傳遞的作為變量的信息被置于現(xiàn)行工作區(qū)的寄存器中,之后,稱為保存指示向量(如圖8數(shù)字429所指)的這一信息置于現(xiàn)行工作區(qū)439中的第0個(gè)寄存器440中,即由現(xiàn)行工作區(qū)指針312所指示的工作區(qū)。保存指示向量429是具有l(wèi)位長度的信息,其中l(wèi)表示每個(gè)工作區(qū)所含寄存器的數(shù)量。設(shè)i表示整數(shù)值0-(l-1),如果需要保持現(xiàn)行工作區(qū)439中443所指的第i個(gè)寄存器Ri的內(nèi)容,則保存指示向量429中433所指的第i位bi的值假設(shè)為“1”;同樣,如果其內(nèi)容不需保留,則假設(shè)bi為零。數(shù)430所指的第0位bo總保持為“1”。當(dāng)設(shè)置完現(xiàn)行工作區(qū)的第0個(gè)寄存器R0(440)中的保存指示向量而執(zhí)行調(diào)用指令時(shí),該指令的下一個(gè)地址被送入用于子程序引用的棧中,并開始執(zhí)行指定的子程序的指令序列。
在子程序指令序列的起始處,首先執(zhí)行前移環(huán)形工作區(qū)指令。當(dāng)執(zhí)行前移環(huán)形工作區(qū)指令時(shí),圖4所示的現(xiàn)行工作區(qū)指針312(CBNR)和在先工作區(qū)指針311(PBNR)的值前移,并且如必要的話,有效工作區(qū)指針313(VBNR)和工作區(qū)棧指針324(BSP)的值也發(fā)生變化。下面,將引用符號(hào)CBNR1、CNB1、VBNR1、BSP1和符號(hào)CBNR2、PBNR2、VBNR2和BSP2說明前移環(huán)形工作區(qū)指令的功能,第一組符號(hào)表示前移環(huán)形工作區(qū)指令執(zhí)行前,四個(gè)指針各自的值,而第二組符號(hào)表示前移指令執(zhí)行后,四個(gè)指針各自的值。在執(zhí)行前移環(huán)形工作區(qū)指令過程中,首先,將表示指令執(zhí)行前現(xiàn)行工作區(qū)的值CBNR1置入表示同條指令執(zhí)行后在先工作區(qū)指針的值PBNR2中,然后現(xiàn)行工作區(qū)指針的值更新為值m(CBNR1+1,m)。這里,模(a,b)表示用整數(shù)b除整數(shù)a后所得的余數(shù),m表示一個(gè)工作區(qū)內(nèi)寄存器的數(shù)量。這樣,如果保持CBNR1=VBNR1,即如果更新前的現(xiàn)行工作區(qū)指針值與更新后有效工作區(qū)指針值相等,則由更新后現(xiàn)行工作區(qū)指針的值CMNR2所指示的工作區(qū)中的寄存器之間,由包含于所指示工作區(qū)中第0個(gè)寄存器里的保存指示向量所指示的寄存器的內(nèi)容被有選擇地延遲保存在由工作區(qū)指針BSP1所指示的位置中。
下面,將參考圖8進(jìn)一步詳細(xì)說明這個(gè)工作區(qū)保存結(jié)構(gòu)。更新后,由現(xiàn)行工作區(qū)指針CBNR2所指示的工作區(qū)439中有1個(gè)寄存器;第0個(gè)寄存器R0是440,第1個(gè)寄存器R1是441,第2個(gè)寄存器R2是442,……,第(l-1)個(gè)寄存器Re1是444。在保存指示向量429中也有1位;第0位b0是430,第1位b1是431,第2位b3是432,……第(l-1)位bl-1是434。如果要保持第i個(gè)寄存器443(0≤i≤l-1)的內(nèi)容,則要預(yù)先將保存指示向量的第i位bi433量“1”,如果該內(nèi)容不需保留,則bi位置“0”。這個(gè)保存指示向量429被存貯在工作區(qū)439的第0個(gè)寄存器R0440中。如果更新前的現(xiàn)行工作區(qū)指針值CBNR1(即更新后在先工作區(qū)指針的值PBNR2)等于更新前的有效工作區(qū)指針值VBNR1,則將更新后的保存指示向量429從bl-1位434向b0位430的方向順序掃描,該向量429存貯在由現(xiàn)行工作區(qū)指針值CBNR2所指示的新的現(xiàn)行工作區(qū)439的第0個(gè)寄存器R0440中。若bi位為“1”(0≤i≤l-1),則工作區(qū)棧指針(BSP)324的值前移一個(gè)寄存器,而且寄存器Ri的內(nèi)容被存貯在由工作區(qū)堆棧325中的工作區(qū)棧指針的新值所指示的位置。若bi位為“0”,則工作區(qū)棧指針324不前移,也不執(zhí)行寄存器Ri的存貯。當(dāng)對(duì)保存指示向量429進(jìn)行掃描而改變i為l-1,l-2,……2,1,及0,并且已經(jīng)重復(fù)了所需要的寄存器保存操作時(shí),工作區(qū)棧指針324的值是由前移環(huán)形工作區(qū)指令所更新的值BSP2。因?yàn)楸4嬷甘鞠蛄康牡?位b0總是置為“1”,所以在更新后保存的工作區(qū)的寄存器R0的值存貯在由工作區(qū)棧指針?biāo)甘镜奈恢弥?,即工作區(qū)棧325的最上端。
當(dāng)這個(gè)工作區(qū)存貯操作結(jié)束時(shí),根據(jù)更新前的VBNR1值,有效工作區(qū)指針313的新值VBNR2被置為VBNR2=mod(CBNR1+1,m)。
除非更新后的在先工作區(qū)指針值PBNR2等于更新前的有效工作區(qū)指針值VBNR4,否則不執(zhí)行上述工作區(qū)存貯操作,而且工作區(qū)棧指針324和有效工作區(qū)指針313的值均不改變。
從上是前移環(huán)形工作區(qū)指令的功能。
從子程序返回時(shí),根據(jù)需要,將待送回調(diào)用端的功能值置于現(xiàn)行工作區(qū)的寄存器中,然后執(zhí)行恢復(fù)環(huán)形工作區(qū)指令,接著執(zhí)行返回指令。當(dāng)執(zhí)行恢復(fù)環(huán)形工作區(qū)指令時(shí),恢復(fù)現(xiàn)行工作區(qū)指針CBNR312和在先工作區(qū)指針PBNR311的值,并根據(jù)需要改變有效工作區(qū)指針VBNR313和工作區(qū)指針BSP324的值。下面,用符號(hào)CBNR3、PBNR3、VBNR3及BSP3和符號(hào)CBNR4、PBWP4、VBNR4及BSP4來說明恢復(fù)環(huán)形工作區(qū)指令的功能,前一組符號(hào)表示執(zhí)行該指令前的四個(gè)指針的值,后一組符號(hào)表示執(zhí)行該指令后的四個(gè)指針的值。
在執(zhí)行恢復(fù)環(huán)形工作區(qū)指令的過程中,首先,將更新前的在先工作區(qū)指針311的值BPNR3置為現(xiàn)行工作區(qū)指針312的新值CBNR4。并更新在先工作區(qū)指針的值,以建立關(guān)系PBNR4=mod(PBNR3l,m)。如果更新后的現(xiàn)行工作區(qū)指針的值CBNR4與更新前的有效工作區(qū)指針313的值VBNR3相同,則更新后的在先工作區(qū)指針值BBNR3所指示的工作區(qū)的內(nèi)容,按照工作區(qū)堆棧325中的工作區(qū)棧指針?biāo)甘镜男畔⒂羞x擇地被恢復(fù)。
這種工作區(qū)恢復(fù)結(jié)構(gòu)將參考圖8加以描述。首先,把由更新前的工作區(qū)棧指針324的值BSP3所指示的工作區(qū)堆棧325的最上端內(nèi)容置入由更新前的在先工作區(qū)指針311的值PBNR4所指示的工作區(qū)中的第0個(gè)寄存器R0中,然后工作區(qū)指針324的值以一個(gè)寄存器的量進(jìn)行恢復(fù)。在工作區(qū)堆棧325的最上端,保存指示向量在子程序調(diào)用時(shí)已被置入。因此,隨著上述操作,保存指示向量429進(jìn)入寄存器R0(440)中。隨后,將保存指示向量的內(nèi)容沿從b1位431向b8-1位434的方向依次掃描。如果bi位的值(1≤i≤l-1)433是“1”,則位于工作區(qū)堆棧325中工作區(qū)棧指針324的新值所指示的位置的數(shù)據(jù)被傳送至寄存器Ri(443)中,并且以一個(gè)寄存器的量恢復(fù)工作區(qū)棧指針324的值。如果bi位的值是“0”,則不執(zhí)行向寄存器Ri(443)的傳送操作,并且也不恢復(fù)工作區(qū)棧指針324。當(dāng)i從1、2、3、向(l-1)變化時(shí),通過重復(fù)上述操作(l-1)次所得到的工作區(qū)棧指針324的值即為由恢復(fù)環(huán)形工作區(qū)指令更新前的BSP4值。之后,有效工作區(qū)指針313的值恢復(fù)一個(gè)單位。即VBNR4=mod(VBNR3-1,m)。該值與更新后的在先工作區(qū)指針的值相同。
除非更新后的現(xiàn)行工作區(qū)指針值CBNR4與更新前有效工作區(qū)指針值VBNR3相同,否則不執(zhí)行上述工作區(qū)恢復(fù)操作,并且工作區(qū)棧指針324的值和有效工作區(qū)指針313的值也不改變。
上面所介紹的是恢復(fù)環(huán)形工作區(qū)指令的功能。
當(dāng)執(zhí)行返回指令時(shí),返回地址從子程序引用棧中壓出,然后從返回地址所指示的位置開始執(zhí)行指令。
在交換任務(wù)時(shí),通常需要保存和恢復(fù)環(huán)形工作區(qū)的內(nèi)容。為此,提供了工作區(qū)塊存貯指令和工作區(qū)塊裝入指令,作為塊傳送指令。
當(dāng)執(zhí)行工作區(qū)塊存貯指令時(shí),通過與前移環(huán)形工作區(qū)指令的工作區(qū)保存操作相同的處理,從有效工作區(qū)指針VBNR所指示的工作區(qū)的下一個(gè)工作區(qū)到由現(xiàn)行工作區(qū)指針CBNR所指示的工作區(qū)之間的這些工作區(qū)的內(nèi)容,都被存貯于工作區(qū)堆棧中。操作過程詳述如下。
當(dāng)執(zhí)行工作區(qū)塊存貯指令時(shí),首先核查有效工作區(qū)指針313的值VBNR是否等于現(xiàn)行工作區(qū)指針312的值CBNR。如果它們不等,則把由值VBNR所指示的工作區(qū)的下一個(gè)工作區(qū)的內(nèi)容(即由mod(VBNR+1,m)所指示工作區(qū))存貯在工作區(qū)堆棧中,其操作過程與描述前移環(huán)形工作區(qū)指令時(shí)的工作區(qū)保存操作過程相同。這樣,工作區(qū)棧指針324的值BSP前移,并且有效工作區(qū)指針313的值BSP前移至下一工作區(qū)。對(duì)于VBNR的新值,也要核查它與現(xiàn)行工作區(qū)指針的值CBNR是否相同。如果相等,則重復(fù)執(zhí)行上述工作區(qū)保存操作。當(dāng)現(xiàn)行工作區(qū)指針的值與有效工作區(qū)指針的值相等時(shí),或開始時(shí)就它們就相同,則不執(zhí)行工作區(qū)保存操作就結(jié)束執(zhí)行工作區(qū)塊存貯指令。
工作區(qū)塊裝入指令的功能是把執(zhí)行工作區(qū)塊存貯指令時(shí)存貯的在先工作區(qū)和現(xiàn)行工作區(qū)的內(nèi)容從各自的工作區(qū)中取出。執(zhí)行該指令時(shí),有效工作區(qū)指針與現(xiàn)行工作區(qū)指針具有相同的值。當(dāng)執(zhí)行工作區(qū)塊裝入指令過程中,所執(zhí)行的工作區(qū)恢復(fù)操作與描述的工作區(qū)恢復(fù)指令的操作一樣,其功能是首先恢復(fù)由現(xiàn)行工作區(qū)指針312所指示的工作區(qū)的內(nèi)容,而后恢復(fù)由在先工作區(qū)指針311所指示的工作區(qū)的內(nèi)容。結(jié)果,有效工作區(qū)指針的值與在先工作區(qū)指針的值相同。
作為改變工作區(qū)狀態(tài)的指令,有控制寄存器裝入指令MTCR和控制寄存器存貯指令MFCR,它們可以改變指示環(huán)形工作區(qū)或整體工作區(qū)狀態(tài)的控制信息,并且也可被使用。由這兩條指條,能夠單獨(dú)設(shè)置或單獨(dú)訪問現(xiàn)行工作區(qū)指針312、在先工作區(qū)指針311、有效工作區(qū)指針313、整體工作區(qū)指針314、工作區(qū)棧指針324和工作區(qū)模式寄存器323(參考圖4)各自的值。當(dāng)工作區(qū)模式寄存器323的內(nèi)容發(fā)生變化時(shí),環(huán)形工作區(qū)中的寄存器數(shù)量和整體工作區(qū)集中寄存器的數(shù)量也可改變。當(dāng)環(huán)形工作區(qū)中的工作區(qū)數(shù)設(shè)置為0時(shí),則確定了整體工作區(qū)模式,這樣,所有工作區(qū)均能作為整體工作區(qū)使用。即,在整體工作區(qū)模式時(shí),在另一種模式里作為環(huán)形工作區(qū)使用的工作區(qū)也能作為整體工作區(qū)使用。在整體工作區(qū)模式下執(zhí)行指令時(shí),其中的地址模式部分不能指示在先工作區(qū)或現(xiàn)行工作區(qū)。除此之外,在整體工作區(qū)模式下,不能使用前移環(huán)形工作區(qū)指令和恢復(fù)環(huán)形工作區(qū)指令。
圖9是說明信息處理裝置第四個(gè)實(shí)施例的基本組成部分的排列圖。在該例中,指令處理器501中的寄存器塊503由n個(gè)整體工作區(qū)GB0(510)、GB1(511)、……、GB(513)和n個(gè)環(huán)形工作區(qū)R0(520)、R1(521)、……、Rn-1(523)所構(gòu)成。每個(gè)整體工作區(qū)(GB0、GB1、…GBn-1)由如圖5(b)所示的K′個(gè)寄存器構(gòu)成。如圖5(a)所示,每個(gè)環(huán)形工作區(qū)(R0、R1、……、Rn-1)由m個(gè)工作區(qū)構(gòu)成,而每個(gè)工作區(qū)包括1個(gè)寄存器。
在圖9的實(shí)施例中,一個(gè)整體工作區(qū)和一個(gè)環(huán)形工作區(qū)分配給異步運(yùn)行的程序之一。按照這種方式,可消除任務(wù)交換時(shí)用于寄存器塊的保存和恢復(fù)的開銷。
圖10所示的例子是針對(duì)圖4的實(shí)施例的,指令處理器在一個(gè)半導(dǎo)體芯片上制成。該例以這樣的形式實(shí)現(xiàn),其中,單半導(dǎo)體芯片包包算術(shù)寄存器塊610、寄存器存取機(jī)構(gòu)620、ALU630、主存貯器存取機(jī)構(gòu)640、指令譯碼器650和控制電路。
按照本實(shí)施例的這種方式,可被賦值的寄存器數(shù)目由區(qū)域寄存器的位數(shù)所確定,并且大于指令寄存器指示部分的位數(shù)。因此,既使當(dāng)每條指令的寄存器指示部分較短時(shí),也能使用大量的寄存器。這樣,通過能使用大批量寄存器這一事實(shí),可使寄存器塊作為一個(gè)或多個(gè)棧加以利用。因此,既使在含有一個(gè)大容量寄存器塊的情況下,無需保存和恢復(fù)寄存器,或通過僅保存并恢復(fù)少量區(qū)域寄存器,就能夠執(zhí)行子程序調(diào)用或任務(wù)交換,并且能夠無開銷的大量使用高速寄存器以實(shí)現(xiàn)高速處理。特別地,使用第三個(gè)實(shí)施例,在環(huán)形工作區(qū)模式下,除了當(dāng)現(xiàn)行工作區(qū)指針前移超過有效工作區(qū)指令,并當(dāng)在先工作區(qū)指針恢復(fù)到超出有效工作區(qū)指針時(shí),就無需伴隨子程序調(diào)用和返回而保存和恢復(fù)寄存器,因此,能夠提高子程序引用的速度。此外,考慮僅使用少量寄存器的程序時(shí),能夠?qū)⒉煌恼w工作區(qū)分配給異步運(yùn)行的各程序,并且能設(shè)計(jì)出僅有由給定方式分配的整體工作區(qū)的程序。因此,在這種情況下,可以避免程序轉(zhuǎn)換時(shí)的寄存器位移,而且程序轉(zhuǎn)換(如任務(wù)交換)的速度亦可提高,當(dāng)子程序引用時(shí),直到執(zhí)行工作區(qū)被看作是下一個(gè)在先工作區(qū)的情況下,變量和函數(shù)值可以通過寄存器傳送而不必進(jìn)行復(fù)制,因此而提高子程序引用的速度。既使在環(huán)形工作區(qū)且需要保存和恢復(fù)的情況下,保存指示寄存器保存在環(huán)形工作區(qū)的每個(gè)工作區(qū)中,由此,待保存和待恢復(fù)的寄存器被限制為確實(shí)需要的一個(gè)。因此,提高了處理速度。
現(xiàn)有技術(shù)的困難是當(dāng)物理寄存器數(shù)量增加時(shí),在子程序引用任務(wù)交換操作中所需的寄存器保存和恢復(fù)的開銷也隨之增加。相反,根據(jù)本實(shí)施例,寄存器數(shù)量的增加減少了保存和恢復(fù)的次數(shù),因此,減少了開銷。此外,使用整體工作區(qū)模式,本處理裝置可在無保存和無恢復(fù)的條件下運(yùn)行,使得可以增量地提供以高速交換的任務(wù)。
在第四個(gè)實(shí)施例中,當(dāng)提供若干環(huán)形工作區(qū)時(shí),甚至在使用環(huán)形工作區(qū)的情況下,隨著任務(wù)的交換,可以沒有寄存器的保存和恢復(fù)操作,從而實(shí)現(xiàn)了高速任務(wù)交換操作。
如上所述,根據(jù)本發(fā)明,每條指令所用的寄存器可在程序運(yùn)行過程中,而不是在程序生成時(shí)確定。因此,在任何時(shí)刻,根據(jù)寄存器的先使用和該一時(shí)刻對(duì)寄存器的使用要求,可以對(duì)寄存器進(jìn)行最佳分配。此外,能賦值的寄存器數(shù)目由區(qū)域寄存器的位數(shù)確定,而且區(qū)域寄存器的位數(shù)大于一條指令的寄存器指示部分的位數(shù),因此,既使當(dāng)每條指令的寄存器指示部分較短時(shí),也能使用大量的寄存器。
權(quán)利要求
1.一種信息處理裝置包括具有主存貯器地址空間的主存貯器裝置;用于存取上述主存貯器的主存貯器存取裝置;具有寄存器地址空間并備有通用寄存器和一個(gè)區(qū)域寄存器的寄存器塊;用于指令的譯碼裝置,這類指令有向區(qū)域寄存器賦值的區(qū)域寄存器部分,該區(qū)域寄存器指出包含在上述寄存器塊的寄存器區(qū)域的位置,這類指令還有用于向在被指示位置處的寄存器區(qū)內(nèi)的相對(duì)寄存器位置賦值的寄存器位移部分;以及根據(jù)上述指令譯碼裝置的輸出,對(duì)位于相對(duì)寄存器位置處的寄存器進(jìn)行存取的寄存器存取裝置;和對(duì)來自上述主存貯器裝置和所存取的寄存器中的數(shù)據(jù)進(jìn)行運(yùn)算的算術(shù)裝置。
2.根據(jù)權(quán)利要求1的信息處理裝置,其中,有按照上述方式進(jìn)行賦值的多個(gè)區(qū)域寄存器,以及可用同一指令賦值的、位于上述主存貯器裝置的地址和位于相對(duì)寄存器位置處的寄存器的地址。
3.根據(jù)權(quán)利要求1的信息處理裝置,其中,上述寄存器塊中任一需要的寄存器所賦的值被設(shè)置在上述區(qū)域寄存器。
4.根據(jù)權(quán)利要求1的信息處理裝置,其中,上述區(qū)域寄存器是單獨(dú)由上述寄存器塊提供的專用寄存器,而且它指示寄存器區(qū)域的位置。
5.根據(jù)權(quán)利要求1的信息處理裝置,其中,區(qū)域寄存器是由包含在上述寄存器塊中的特定寄存器區(qū)提供的,用于指示在上述特定寄存器區(qū)中相對(duì)位置的區(qū)域寄存器由使用通用寄存器的指令的區(qū)域寄存器部分賦值,上述特定寄存器區(qū)由每條指令的區(qū)域寄存器部分(這些指令將期望值賦在上述區(qū)域寄存器中)和涉及所置值的指令所指示,并且,在上述特定寄存器內(nèi)的相對(duì)位置由上述每條指令的寄存器位移部分賦值。
6.根據(jù)權(quán)利要求1的信息處理裝置,其中,上述寄存器存取裝置包括一個(gè)“OR”電路,該電路把由寄存器地址賦值的區(qū)域寄存器中的值作為存貯在上述區(qū)域寄存器部分的數(shù)字值,與由上述寄存器位移部分給出的值相加。
7.根據(jù)權(quán)利要求1的信息處理裝置,其中,包含在上述寄存器塊內(nèi)的多個(gè)寄存器,按照下一個(gè)寄存器和前一個(gè)寄存器的關(guān)系,被設(shè)置成為一個(gè)序列,并且在上述序列中的尾部寄存器的下一個(gè)寄存器成為首部寄存器,而首部寄存器的前一個(gè)寄存器即成為尾部寄存器。
8.一種信息處理裝置包括具有主存貯器地址空間的主存貯裝置;具有寄存器地址空間并備有區(qū)域寄存器的寄存器塊;指令譯碼裝置,所述指令具有向多個(gè)寄存器中任一寄存器賦值的區(qū)域寄存器部分,上述寄存器用于指示在多個(gè)寄存器工作區(qū)之間某個(gè)將被使用的寄存器工作區(qū)的位置,這些寄存器工作區(qū)構(gòu)成了包含在上述寄存器塊中的寄存器區(qū),而且,每個(gè)寄存器工作區(qū)具有相同預(yù)置數(shù)目的寄存器,上述指令還有寄存器位移部分和主存貯器指示部分,寄存器位移部分用于向位于所指位置的寄存器工作區(qū)中的相對(duì)寄存器位置賦值,主存貯器指示部分向上述主存貯裝置的地址賦值;寄存器存取裝置,它根據(jù)上述指令譯碼裝置的輸出,對(duì)位于相對(duì)寄存器位置處的寄存器進(jìn)行存取;主存貯器存取裝置,它根據(jù)上述指令譯碼裝置的另一個(gè)輸出,對(duì)上述主存貯器裝置進(jìn)行存取;和對(duì)上述主存貯的裝置和寄存器塊的數(shù)據(jù)進(jìn)行操作的算術(shù)裝置。
9.根據(jù)權(quán)利要求8的信息處理裝置,其中,多個(gè)寄存器工作區(qū)以工作區(qū)列的形式排布,每個(gè)寄存器工作區(qū)具有相同預(yù)置數(shù)目的寄存器,在上述工作區(qū)列中,按照在先寄存器工作區(qū)和下一個(gè)寄存器工作區(qū)的關(guān)系將各工作區(qū)排成一個(gè)序列,并且,在該工作區(qū)列中位于尾部寄存器工作區(qū)的下一個(gè)寄存器工作區(qū)作為首部寄存器工作區(qū),而位于首部寄存器工作區(qū)的前一個(gè)寄存器工作區(qū)是作為尾部寄存器工作區(qū),由此上述寄存器工作區(qū)被連接成一個(gè)環(huán)狀的環(huán)形工作區(qū)。
10.根據(jù)權(quán)利要求9的信息處理裝置,其中,上述多個(gè)寄存器工作區(qū)由至少一個(gè)環(huán)形工作區(qū)和至少一個(gè)整體工作區(qū)構(gòu)成,在環(huán)形工作區(qū)中,包含預(yù)定數(shù)量寄存器的每個(gè)寄存器工作區(qū)按環(huán)狀連接,而整體工作區(qū)集包括由上述環(huán)形工作區(qū)分別提供的寄存器區(qū)。
11.根據(jù)權(quán)利要求10的信息處理裝置,其中,在上述環(huán)形工作區(qū)中的多個(gè)寄存器工作區(qū)之間,在某一時(shí)刻主要使用的寄存器工作區(qū)被設(shè)置為現(xiàn)行工作區(qū),在上述環(huán)形工作區(qū)所用的狀態(tài)轉(zhuǎn)換之前的某一時(shí)刻作為現(xiàn)行工作區(qū)使用的寄存器工作區(qū)被置成為在先工作區(qū),而在上述整體工作區(qū)集中某一時(shí)刻使用的寄存器工作區(qū)被置成為該時(shí)刻的整體工作區(qū),作為各種區(qū)域寄存器,上述寄存器工作區(qū)分別由指示上述現(xiàn)行工作區(qū)位置的現(xiàn)行工作區(qū)指針、指示上述在先工作區(qū)位置的在先工作區(qū)指針和指示上述整體工作區(qū)位置的整體工作區(qū)指針?biāo)x值。
12.根據(jù)權(quán)利要求11的信息處理裝置,其中,作為在上述環(huán)形工作區(qū)更新上述現(xiàn)行工作區(qū)和上述在先工作區(qū)的使用位置的指令,設(shè)置了一條前移環(huán)形工作區(qū)指令,根據(jù)該指令,更新前的上述現(xiàn)行工作區(qū)指針的值被置為更新后上述在先工作區(qū)指針的值,且更新后的上述現(xiàn)行工作區(qū)指針的值被置為更新前位于現(xiàn)行工作區(qū)下面的工作區(qū)的位置,還設(shè)置了一條恢復(fù)環(huán)形工作區(qū)指令,根據(jù)該指令,更新前的上述在先工作區(qū)指針的值置為更新前的上述現(xiàn)行工作區(qū)指針,且更新后上述在先工作區(qū)指針的值被置為位于更新前在先工作區(qū)前一工作區(qū)的位置。
13.根據(jù)權(quán)利要求12的信息處理裝置,其中,設(shè)置了一個(gè)有效工作區(qū)指針和一個(gè)工作區(qū)棧指針,有效工作區(qū)指針用于指示位于上述環(huán)形工作區(qū)中有效信息項(xiàng)的邊界,工作區(qū)棧指針用于指示位于上述主存貯器內(nèi)作為工作區(qū)保存區(qū)域的工作區(qū)堆棧位置,并且,在前移上述環(huán)形工作區(qū)的使用位置時(shí),根據(jù)上述現(xiàn)行工作區(qū)指針的值與上述有效工作區(qū)指針的值之間的關(guān)系,確定工作區(qū)保存的必要性;如果確定有必要進(jìn)行工作區(qū)保存,則將更新后由上述現(xiàn)行工作區(qū)指針?biāo)甘镜募拇嫫鞴ぷ鲄^(qū)的內(nèi)容存貯到由上述工作區(qū)棧指針指向的工作區(qū)堆棧中;根據(jù)存貯量,前移上述工作區(qū)棧指針使之一致;并更新上述有效工作區(qū)指針的值,以指向環(huán)形工作區(qū)中下一工作區(qū);當(dāng)恢復(fù)上述環(huán)形工作區(qū)的使用位置時(shí),由在先工作區(qū)指示的值和有效工作區(qū)指針的值之間的關(guān)系確定進(jìn)行工作區(qū)恢復(fù)的必要性;如果確定有必要進(jìn)行工作區(qū)恢復(fù),則將更新前工作區(qū)棧指針?biāo)赶虻墓ぷ鲄^(qū)堆棧的內(nèi)容轉(zhuǎn)送到由更新后在先工作區(qū)指針?biāo)傅募拇嫫鲄^(qū)域中;上述工作區(qū)棧指針按傳送的量進(jìn)行恢復(fù);并且,更新上述有效工作區(qū)指針的值,使它指向在上述環(huán)形工作區(qū)中的前一工作區(qū)。
14.根據(jù)權(quán)利要求13的信息處理裝置,其中,保存指示信息項(xiàng)用于指示在各自寄存器區(qū)或寄存器工作區(qū)中需要保存和恢復(fù)的寄存器,這些信息項(xiàng)事先存在相應(yīng)的寄存器區(qū)或寄存器工作區(qū)中,并且,當(dāng)有必要保存上述寄存器區(qū)或寄存器工作區(qū)之一時(shí),僅有選擇地將相應(yīng)的保存指示信息所指示的寄存器延遲存貯,當(dāng)需要恢復(fù)所保存的寄存器區(qū)或寄存器工作區(qū)的內(nèi)容時(shí),則僅將由在此之前所提取的保存指示信息指向的寄存器恢復(fù)即可。
15.根據(jù)權(quán)利要求11的信息處理裝置,對(duì)于上述現(xiàn)行工作區(qū)指針,上述在先工作區(qū)指針和上述整體工作區(qū)指針以及有效工作區(qū)指針和工作區(qū)棧指針,可使用設(shè)置指針值的工作區(qū)狀態(tài)裝入指令和保存指針值的工作區(qū)狀態(tài)保存指令。
16.根據(jù)權(quán)利要求21的信息處理裝置,其中,考慮現(xiàn)行工作區(qū)以及在先工作區(qū)和整體工作區(qū),在一個(gè)子程序中,從調(diào)用該子程序的上一層子程序傳送來的變量信息和將返送回上一層子程序的信息被分配給上述在先工作區(qū),作為變量從上述子程序向下一層子程序傳送的信息以及由上述下一層子程序接收到的、作為函數(shù)值的信息被分配給上述現(xiàn)行工作區(qū),并且,安排了一個(gè)指令序列,用于從子程序返回時(shí)執(zhí)行恢復(fù)環(huán)形工作區(qū)操作,從而使得變量和函數(shù)值通過寄存器在子程序間傳送。
17.根據(jù)權(quán)利要求8的信息處理裝置,其中,一個(gè)程序所使用的寄存器工作區(qū)與另一個(gè)程序所用的寄存器工作區(qū)的分配不同,且另一個(gè)程序與上述程序是異步運(yùn)行的。
18.根據(jù)權(quán)利要求17的信息處理裝置,其中,一個(gè)整體工作區(qū)和一個(gè)環(huán)形工作區(qū)配成一對(duì),并提供了多個(gè)這種工作區(qū)對(duì)從而由上述一個(gè)整體工作區(qū)和一個(gè)環(huán)形工作區(qū)構(gòu)成一個(gè)工作區(qū)對(duì)被分配給多個(gè)異步運(yùn)行的程序之一。
19.根據(jù)權(quán)利要求18的信息處理裝置,其中,構(gòu)成上述每個(gè)寄存器工作的寄存器數(shù)量是2的乘方。
20.根據(jù)權(quán)利要求19的信息處理裝置,其中,上述每個(gè)寄存器的位置作為數(shù)值的地址表示,在上述環(huán)形工作區(qū)中,位于非尾部工作區(qū)的任何其它工作區(qū)的下一工作區(qū)表示這個(gè)地址的寄存器區(qū),所謂這個(gè)地址即是鄰接上述任何其它工作區(qū)的寄存器地址的地址,并且,位于尾部工作區(qū)的下一工作區(qū)表示首部地址的寄存器區(qū)。
21.根據(jù)權(quán)利要求20的信息處理裝置,其中,指向下一工作區(qū)位置的下一工作區(qū)指針和指向前一工作區(qū)位置的在先工作區(qū)指針用于上述每個(gè)寄存器工作區(qū)。
22.根據(jù)權(quán)利要求21的信息處理裝置,其中,在上述整體工作區(qū)集中的各整體工作所含的寄存器的數(shù)目設(shè)置成是一致的,并且,就上述多個(gè)環(huán)形工作區(qū)而言,構(gòu)成環(huán)形工作區(qū)的每個(gè)工作區(qū)所含的寄存器數(shù)量也設(shè)置為相同。
23.根據(jù)權(quán)利要求22的信息處理裝置,其中,上述主存貯器存取裝置與指令譯碼器一起位于指令處理器中,使用上述存取裝置,則由信息處理裝置外部提供的,并存貯在主存貯器中的指令序列在上述指令處理器中執(zhí)行。
24.根據(jù)權(quán)利要求23的信息處理裝置,其中,上述寄存器塊、寄存器存取裝置和算術(shù)裝置均制造在同一半導(dǎo)體芯片內(nèi)。
全文摘要
在備有多個(gè)寄存器,且寄存器的存取時(shí)間遠(yuǎn)小于主存貯器的存取時(shí)間的計(jì)算機(jī)系統(tǒng)中,每條指令有表示地址部分的寄存器,在地址部分中,具有寄存器區(qū)的寄存器地址的區(qū)域寄存器賦值與表示寄存器區(qū)某一相對(duì)寄存器地址的寄存器位移賦值結(jié)合在一起,因此,即使實(shí)際寄存器的數(shù)目增加,伴隨任務(wù)交換等所需的寄存器保存與恢復(fù)可被減少,由此程序運(yùn)行、處理的速度提高。
此外,在同條指令中,還有用于指示主存貯器的地址部分。
文檔編號(hào)G06F12/08GK1030986SQ8710499
公開日1989年2月8日 申請日期1987年7月20日 優(yōu)先權(quán)日1987年7月20日
發(fā)明者渡邊擔(dān), 倉員桂一, 柏木有吾, 十山圭介, 野尻徹 申請人:株式日立制作所