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

指令的尋址范圍相關(guān)并行化的數(shù)據(jù)處理設(shè)備的制作方法

文檔序號:6422299閱讀:139來源:國知局
專利名稱:指令的尋址范圍相關(guān)并行化的數(shù)據(jù)處理設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種數(shù)據(jù)處理設(shè)備,例如一種VLIW(很長指令字)處理器,能夠并行執(zhí)行來自一個(gè)指令字的多個(gè)指令。
VLIW處理器使得有可能以高度的指令并行性執(zhí)行程序。通常,在每一指令周期中的該VLIW處理器取得包含大于一的一個(gè)固定數(shù)目的指令的指令字(時(shí)常稱為操作)。該VLIW處理器在相同指令周期(或幾個(gè)周期)中并行執(zhí)行這些操作。為此目的,VLIW處理器包含多個(gè)功能單元,每一功能單元能夠每次執(zhí)行來自該該指令字的操作之一。通常提供不同種類的功能部件,例如ALU(算術(shù)邏輯單元)、乘法器、轉(zhuǎn)移控制單元、存儲器存取單元等。時(shí)常還包括專門用途的功能單元,設(shè)計(jì)來對具體的應(yīng)用程序加速。例如,可以因此添加用于執(zhí)行MPEG編碼或解碼的一部分的功能單元。
但是,在程序的大部分中不可能在每個(gè)指令周期中把操作提供到所有功能單元。例如在得不到充足的數(shù)據(jù)開始在所有功能單元中操作時(shí)將出現(xiàn)這種情況。在此情況中,在該指令字中必須包括″無操作″指令,用于得不到指令的功能單元。當(dāng)此種指令字必須被保持在指令存儲器中時(shí),將導(dǎo)致過度的存儲器使用。
已經(jīng)建議了幾種措施降低這種存儲器的過度使用。例如,可以通過比對其它指令更高效地編碼該無操作指令來壓縮該指令。然而,這仍然包括存儲器的額外開銷并且可能減緩處理器。在另一研發(fā)中,已經(jīng)知道在用于功能單元的分組的指令字中使用字段,使得一個(gè)分組的任何一種功能單元在每一指令周期都能夠從該字段獲取一個(gè)指令。由于該指令字因此只包含用于多個(gè)功能單元的一個(gè)字段,所以這將降低指令字的大小,但是其將降低并行性的最高水平。
美國專利5,774,737描述了可以使用具有不同長度的指令的單一VLIW處理器。該指令可以包含一長度代碼來指示它們的長度。另外,可以使用一個(gè)指令長度寄存器來指示一個(gè)當(dāng)前長度。該功能單元執(zhí)行由在該指令長度寄存器中的該長度的值所指示的指令數(shù)目。通過設(shè)置該當(dāng)前長度,該指令長度能夠被適應(yīng)在不同程序部分中允許的并行性的等級。但是,對當(dāng)前長度進(jìn)行的設(shè)置包括執(zhí)行附加指令。
在其它各種目的當(dāng)中,本發(fā)明的一個(gè)目的是,提高能夠并行地執(zhí)行來自一個(gè)指令字的多個(gè)指令的處理器的存儲器效率。
在其它各種目的當(dāng)中,本發(fā)明的進(jìn)一步的目的是,在不引起過度存儲器使用的條件下,促進(jìn)專用目標(biāo)功能單元的使用。
權(quán)利要求1中給出了根據(jù)本發(fā)明的處理設(shè)備。根據(jù)本發(fā)明,從其取得一個(gè)指令字的地址范圍的檢測被用于確定該指令執(zhí)行單元并行處理來自該指令字的該指令的方式。
比如在一個(gè)實(shí)施例中,該指令字的長度取決于其地址所屬的范圍。因此,當(dāng)這些字來自涉及一個(gè)程序的內(nèi)循環(huán)的指令的地址范圍時(shí),該指令執(zhí)行單元可以把來自指令存儲器的信息作為相對較長的指令字來處置,而當(dāng)這些碼字來自其它的地址范圍時(shí),則該指令執(zhí)行單元可以把該信息作為包含相對少的指令的相對短的指令碼字來處置。所以,在進(jìn)入或離開內(nèi)循環(huán)的變化時(shí),不需要明確指令改變該指令字長度就能夠?qū)崿F(xiàn)內(nèi)循環(huán)中的高并行性以及能夠?qū)崿F(xiàn)內(nèi)循環(huán)之外的高存儲效率。
在另外一個(gè)實(shí)施例中,該指令存儲器系統(tǒng)被用于調(diào)整根據(jù)該地址范圍取得的該指令字的寬度。不同存儲器類型,例如具有不同速度的存儲器可被用于不同的范圍。當(dāng)該指令地址不是在映射到指令存儲器部分的一個(gè)范圍中時(shí),最好禁止把時(shí)鐘信號提供到該指令存儲器部分。
在另一個(gè)實(shí)施例中,指令執(zhí)行單元包含多個(gè)用于執(zhí)行來自該指令字的不同指令的功能單元。在本實(shí)施例中,根據(jù)該指令字所被讀出的地址范圍選擇不同的功能單元執(zhí)行來自該指令字的指令。
因此,來自該指令字的指令可被處置作為在一個(gè)地址范圍中的用于專用目的功能單元的指令,以及作為在其它地址范圍中的用于其它功能單元的指令。例如,MPEG解碼和編碼通常局限于具體的程序部分,因此專用于此種解碼和編碼用途的功能單元僅在該程序部分中才需要。通過根據(jù)該地址范圍選擇這些功能單元,使得不需要增加該指令字的寬度,就能選擇哪些功能單元將處理該指令。
在另一實(shí)施例中,該功能單元可以使用具有不同寬度的指令。因此,用于一個(gè)ALU功能單元的指令可以包括一個(gè)操作的指定、兩個(gè)操作寄存器和一個(gè)結(jié)果寄存器,其中用于一個(gè)專用目的功能單元的指令可以包括四個(gè)操作寄存器和兩個(gè)結(jié)果寄存器的指定。可以根據(jù)該地址范圍調(diào)整該指令字中的指令的寬度。
使用下列附圖將更詳細(xì)地描述根據(jù)本發(fā)明的設(shè)備和方法的這些以及其它目的和有益的方面。


圖1示出一個(gè)數(shù)據(jù)處理設(shè)備。
圖2示出一個(gè)指令存儲器系統(tǒng)的一個(gè)實(shí)施例。
圖2A示出一個(gè)數(shù)據(jù)處理設(shè)備的一部分。
圖2B示出一個(gè)數(shù)據(jù)處理設(shè)備的一部分。
圖3示出一個(gè)地址范圍檢測器。
圖4示出用于該處理設(shè)備的指令字。
圖5示出編程該數(shù)據(jù)處理設(shè)備的流程圖。
圖6示出一個(gè)指令存儲器系統(tǒng)的一個(gè)實(shí)施例。
圖7示出一個(gè)數(shù)據(jù)處理器設(shè)備。
圖1示出一個(gè)數(shù)據(jù)處理設(shè)備,具有指令地址單元10、指令存儲器系統(tǒng)12、指令執(zhí)行單元14和地址范圍檢測器16。該指令地址單元10具有耦合到指令存儲器系統(tǒng)12的一個(gè)地址輸出。指令存儲器系統(tǒng)12具有一個(gè)耦合到指令執(zhí)行單元14的指令輸出。指令執(zhí)行單元14具有一個(gè)耦合到指令尋址單元的輸出。地址范圍檢測器16具有一個(gè)耦合到指令尋址單元10的地址輸出的一個(gè)輸入,以及耦合到指令執(zhí)行單元14的控制輸入11和指令存儲器系統(tǒng)12的一個(gè)輸出。
指令執(zhí)行單元14包含一個(gè)輸入部分140、多個(gè)功能單元142、一個(gè)寄存器文件144。輸入部分140耦合在指令存儲器系統(tǒng)12和功能單元142之間。地址范圍檢測器16耦合到輸入部分140。而且,輸入部分140具有耦合到寄存器文件144的選擇輸出。功能單元142具有耦合到寄存器文件144的輸入和輸出。該功能單元的至少之一是一個(gè)具有耦合到指令尋址單元10的一個(gè)輸出的分支控制單元。
操作中,該設(shè)備以連續(xù)的指令周期操作。在每一指令周期中,指令尋址單元10都把一個(gè)指令地址提供到指令存儲器系統(tǒng)12。作為響應(yīng),指令存儲器系統(tǒng)12檢取由指令地址編址的一個(gè)指令字,并且把該檢取的指令字提供到指令執(zhí)行單元14。輸入部分140把操作選擇代碼從該指令字傳送到功能單元142,并且把寄存器選擇代碼從指令字寄存到寄存器文件144的選擇輸入。響應(yīng)該寄存器選擇代碼,寄存器文件144從寄存器文件144的寄存器中檢取操作并且將此數(shù)據(jù)提供到功能單元142。響應(yīng)該操作選擇代碼,功能單元142使用該操作碼作為輸入數(shù)據(jù)而執(zhí)行選擇的處理操作,并且把這些操作的結(jié)果提供到寄存器文件144。寄存器文件144把這些結(jié)果儲存在由來自指令字的寄存器選擇代碼選擇的寄存器中。通常,操作將被流水線化,即每次在執(zhí)行針對在前的和/或后繼指令地址執(zhí)行其他操作之時(shí),在不同的指令周期過程中,將執(zhí)行響應(yīng)一個(gè)指令地址的各種操作(檢取該指令、檢取操作、處理、儲存該結(jié)果)。
處置該指令字的方式取決于該指令字所在的指令地址的地址范圍。在一個(gè)實(shí)施例中,該指令字的寬度取決于該范圍。當(dāng)該指令地址是在一個(gè)第一范圍中時(shí),由功能單元142執(zhí)行來自該指令字的第一指令數(shù)量,并且當(dāng)該指令地址是在一個(gè)第二范圍中時(shí),由功能單元142執(zhí)行來自該指令字的第二指令數(shù)量。因此,輸入部分140從地址范圍檢測器16接收指示該指令地址所在范圍的一個(gè)檢測信號(如果有必要,適當(dāng)針對在編址和指令提供之間的流水線延遲而延遲幾個(gè)指令周期),該輸入部分140根據(jù)該范圍利用一個(gè)信號從該指令字檢取更大或更小數(shù)目的操作選擇代碼,提供到該功能單元來執(zhí)行該指令。
圖2示出使用不同長度的指令的指令存儲器系統(tǒng)12的一個(gè)實(shí)施例。指令存儲器系統(tǒng)12包含多個(gè)存儲單元20、22,復(fù)用器24、時(shí)鐘單元26和時(shí)鐘門控電路28a、b。指令存儲器系統(tǒng)12的地址輸入23至少部分地耦合以尋址存儲器單元20、22。第一存儲器單元20具有的字長大于第二存儲單元22具有的字長。用符號示出的第一存儲器單元20的寬度大于第二存儲器單元22的寬度,以便表示該第一存儲器單元的較寬的指令字大小,而示出的第二存儲器單元22高于第一存儲器單元20,以便表示該第二存儲器包含有用于更多指令字?jǐn)?shù)的存儲位置)。存儲單元20、22的指令輸出耦合到復(fù)用器24的輸入,第二存儲單元22的輸出與缺省輸入29結(jié)合地耦合到復(fù)用器24的輸入(提供例如無操作指令)。復(fù)用器24的一個(gè)輸出耦合到指令執(zhí)行單元14(沒示出)。時(shí)鐘單元26通過分別的時(shí)鐘門控電路28a、b耦合到存儲器單元20、22的時(shí)鐘輸入。地址范圍檢測器16的一個(gè)輸出耦合到指令存儲器系統(tǒng)12的一個(gè)輸入11,該指令存儲器系統(tǒng)12耦合到復(fù)用器24的一個(gè)控制輸入并且耦合到時(shí)鐘門控電路28a、b的禁止輸入。
操作中,指令存儲器系統(tǒng)12響應(yīng)指令地址而把指令字輸出到指令執(zhí)行單元14。當(dāng)檢測器16指示該該指令地址是在一個(gè)第一范圍中時(shí),復(fù)用器24則把指令字從該第一存儲單元22輸出到指令執(zhí)行單元14。當(dāng)檢測器16指示該該指令地址是在一個(gè)第二范圍中時(shí),復(fù)用器24則把指令字從該第二存儲單元22輸出到指令執(zhí)行單元14。
通常,該第一存儲器單元22包含來自一個(gè)程序的內(nèi)循環(huán)的指令字,即被重復(fù)執(zhí)行最高次數(shù)的程序的一部分。通常,此種內(nèi)循環(huán)的指令字被優(yōu)化,使得能夠?qū)崿F(xiàn)通過指令執(zhí)行單元14并行執(zhí)行的最大使用。因此,每一個(gè)來自該內(nèi)循環(huán)的指令字大都包含用于相對大數(shù)目的功能單元的指令。該第二存儲器單元22輸出來自該內(nèi)循環(huán)外部的指令字,屬于是較少執(zhí)行的指令。這些指令字包含針對相對較少的功能單元的指令。因此,該第二存儲器單元22具有一個(gè)較小的指令字尺寸,響應(yīng)一個(gè)指令地址而輸出比第一存儲器單元20少的比特。因此,有可能更有效地使用存儲器空間。該第一存儲器單元20儲存較寬的指令字,這將增加在該內(nèi)循環(huán)中執(zhí)行的效率。該第一存儲器單元20還可以有比第二存儲器單元22更快的速度,實(shí)現(xiàn)在該內(nèi)循環(huán)中的較短的指令周期。
原則上,每個(gè)存儲單元20、22只需要響應(yīng)來自地址范圍不同之一的地址。對于在其它存儲器單元響應(yīng)的范圍中的地址不需要提供存儲空間。但是實(shí)際上,該第二個(gè)存儲器單元22也可能響應(yīng)在第一存儲器單元20的范圍中的地址。當(dāng)此范圍僅包括內(nèi)循環(huán)時(shí),將產(chǎn)生少量存儲器系統(tǒng)開銷并且將允許在第二存儲器單元22中的任何空間定位第一存儲器單元20的地址范圍,使得第二存儲器單元22在此地址范圍之前和之后都迅速地提供地址。
當(dāng)該指令地址不是在由存儲器20、22之一支持的范圍內(nèi)時(shí),最好禁止提供到此存儲器單元20、22的時(shí)鐘。
因此降低功耗。一方面,在執(zhí)行來自該內(nèi)循環(huán)的指令字過程中,不需要把時(shí)鐘提供到第二存儲器單元22。在另一方面,在執(zhí)行來自該內(nèi)循環(huán)之外的指令過程中,不需要把時(shí)鐘提供到第一存儲器單元20。在不需要對應(yīng)的存儲器單元20、22時(shí),把一個(gè)用于禁止其時(shí)鐘的電路提供到存儲器單元20、22之一或兩者將降低功耗。
圖2示出兩個(gè)存儲器,每一存儲器都具有由指令地址編址的位置,該位置具有取決于存儲器的不同寬度。雖然僅示出兩個(gè)存儲器20、22,但將理解,能使用更大數(shù)目的此種存儲器,每個(gè)都具有其自己的寬度和自己的地址范圍。因此,該存儲器單元的寬度能夠更接近適應(yīng)于不同程序部分的需要。
改變在該指令字中的指令數(shù)量僅是能夠?qū)崿F(xiàn)地址范圍的檢測的一種方式。在本發(fā)明的另一方面中,輸入部分140使用該檢測范圍,來選擇哪些功能單元142或哪些功能單元組將執(zhí)行來自指令字的指令。在最基礎(chǔ)的VLIW處理器中,來自一個(gè)指令字的每一個(gè)指令都轉(zhuǎn)到功能單元142的一個(gè)相應(yīng)指令。這將提供一種高可能的并行性,但是涉及高存儲器使用。在更高級的VLIW處理器中的,來自一個(gè)指令字的每個(gè)指令字段能夠包含一個(gè)指令,用于功能單元142的不同組的可編程之一。在此情況中,在該指令字中的一個(gè)代碼通常確定該組的哪一個(gè)功能單元將執(zhí)行該指令。同樣是在此情況中,輸入部分140將通知該選擇的功能單元142其將執(zhí)行該指令。在其它更多的高級VLIW處理器中,提供所謂的超級功能單元,由包含來自該指令字中的多個(gè)字段的信息的指令編程,而這些字段的每一個(gè)都能夠或通常被用于一個(gè)單獨(dú)的指令。因此,例如能夠傳送具有異常大操作數(shù)目的指令。
圖2A示出具有指令字存儲系統(tǒng)204的一個(gè)數(shù)據(jù)處理器的一部分,具有地址輸入206、功能單元200(或更多個(gè)功能單元的常規(guī)組200)以及地址范圍檢測器208。指令存儲器系統(tǒng)204具有用于來自一個(gè)被尋址指令字的相應(yīng)指令的輸出。這些輸出被耦合到功能單元(或相應(yīng)的功能單元組)200和一個(gè)寄存器文件(沒示出)。地址范圍檢測器208接收該指令字地址并且根據(jù)該檢測的指令地址所屬的指令地址范圍,選擇若干功能單元(即功能單元的不同組)200的哪些將執(zhí)行來自一個(gè)指令字的指令。雖然功能單元(即不同功能單元組)200已經(jīng)被示出用于指令字之一,但是該選擇當(dāng)然可以被用于來自該指令字的任何數(shù)量的指令。因此,在第一個(gè)實(shí)施例中,如果檢測到該指令地址是在一個(gè)確定范圍中,地址范圍檢測器208就選擇某些功能單元(或不同的功能單元組)200,而不是其它功能單元來執(zhí)行一個(gè)指令,當(dāng)指令地址不在那個(gè)范圍內(nèi)時(shí),則選擇其它功能單元。因此需要較小的指令字。因此,指令存儲器系統(tǒng)204可以禁止某些存儲單元,或者可以減小在連續(xù)指令地址之間的地址步長。兩者都降低了針對指令字所需要的存儲器的總量。
在另一個(gè)實(shí)施例中,當(dāng)該指令地址是在一個(gè)確定的范圍中時(shí),指令存儲器系統(tǒng)204把來自指令字的指令提供到所有的功能單元(或功能單元組)。在本實(shí)施例中,地址范圍檢測器208響應(yīng)該指令地址是在該范圍中的檢測,而選擇全部用于執(zhí)行指令的功能單元。當(dāng)該指令地址是在該范圍之外時(shí),地址范圍檢測器208僅選擇該功能單元的一個(gè)子集。
圖2B示出另外包含復(fù)用器202的一個(gè)實(shí)施例,該復(fù)用器202由地址范圍檢測器208控制,是在指令存儲器系統(tǒng)204和某些功能單元(或相應(yīng)的功能單元子組)200之間。每個(gè)復(fù)用器202的一個(gè)輸入耦合到指令存儲器系統(tǒng)204的一個(gè)共用指令輸出,以供一組功能單元200共享。為了清楚起見,僅示出指令存儲器系統(tǒng)204的一個(gè)輸出,來以符號表示到功能單元200和寄存器文件的連接。每個(gè)復(fù)用器202都將其另一輸入耦合到指令存儲器系統(tǒng)204的分別的不同指令輸出。
當(dāng)?shù)刂贩秶鷻z測器208檢測到該指令地址是在一確定的范圍中時(shí),地址范圍檢測器208可以例如通過把該組拆分成兩個(gè)或多個(gè)子組,而增加功能單元200的組數(shù),由此選擇功能單元執(zhí)行來自一個(gè)指令字的指令。當(dāng)指令地址是在該確定的范圍中時(shí),地址范圍檢測器208選擇復(fù)用器202,把來自該指令字的不同的各個(gè)指令提供到不同的功能單元200或一組功能單元200的功能單元的子組。當(dāng)該指令地址是在該范圍之外時(shí),地址范圍檢測器208把來自該指令字的同一個(gè)指令提供到在該組中的全部功能單元。在此情況中,需要較小的指令字。因此,指令存儲器系統(tǒng)204可以禁止某些存儲器單元,或可以減小在連續(xù)指令地址之間的地址步長。兩者都降低了針對指令字所需要的存儲器的總量。
當(dāng)然,可以使用更復(fù)雜的重新分組形式,功能單元200(功能單元200的子組)作為在一個(gè)范圍中的一個(gè)組的一部分并且作為在另一范圍中的另一組的一部分,和/或本身形成在一個(gè)另外范圍中的一個(gè)組。而且,圖2A的實(shí)施例可以與圖2B的實(shí)施例結(jié)合,使得可以根據(jù)該指令地址的范圍選擇不同的功能單元200,來執(zhí)行來自一個(gè)指令字的指令,該功能單元200的每一個(gè)都在另一范圍中并行地接收自己的指令字。
當(dāng)然可以結(jié)合圖2、2A和2B的實(shí)施例,僅針對其中要求來自這些存儲單元的指令的情況下的地址范圍提供存儲單元。
同樣,輸入部分可以根據(jù)該范圍把功能單元加到該組或從該組刪除功能單元。
圖3示出地址范圍檢測器16的一個(gè)實(shí)施例。地址范圍檢測器包含一個(gè)下界信號源30、上界信號源32、下界比較器34、上界比較器36和與(AND)門38。下界信號源30耦合到下界比較器34的第一輸入,上界信號源32耦合到上界比較器36的第一輸入。指令地址的一個(gè)輸入耦合到上界比較器36和下界比較器34的第二輸入。上界比較器36和下界比較器34的輸出耦合到″與″門38的輸入,該″與″門38的輸出是地址范圍檢測器16的輸出。
操作中,比較器34、36把該指令地址與來自信號源30、32的上、下界比較。當(dāng)該指令地址是在這些邊界之間時(shí),″與″門38輸出一個(gè)信號值,并且如果不是在這些邊界之間,則輸出另一信號值。當(dāng)知道在哪些地址范圍中程序包括內(nèi)循環(huán)指令時(shí),信號源30、32可被硬布線。另外,信號源30、32可以包括一個(gè)或多個(gè)寄存器,該寄存器的內(nèi)容確定了上界值和下界值(通過設(shè)置上、下界值,或通過只設(shè)置例如一個(gè)下界,該上界相對于該下界具有一個(gè)預(yù)定的偏移)。當(dāng)把程序裝入存儲器單元20、22中時(shí),這些寄存器可被加載適當(dāng)?shù)闹?。另外,可按照指令的?zhí)行結(jié)果來設(shè)置這些值。
第一存儲器單元20儲存相對寬的指令的地址范圍最好也是可調(diào)的??赡芡ㄟ^僅使用該指令地址的一個(gè)較低有效部分(lesssignificant part)來尋址該第一個(gè)存儲器單元20以實(shí)現(xiàn)這種可調(diào)性,該地址范圍檢測被用于啟動(dòng)該第一存儲單元20。另外,在此情況中,可從該指令地址減去下界并且用作該第一存儲單元20的地址。當(dāng)一個(gè)或者多個(gè)寄存器用于提供該邊界時(shí),相關(guān)的地址范圍則因此能夠通過加載這些寄存器來設(shè)置。因此能夠根據(jù)涉及的程序設(shè)置具有較寬指令的地址范圍。在執(zhí)行包括進(jìn)入一個(gè)內(nèi)循環(huán)和退出一個(gè)內(nèi)循環(huán)的一個(gè)程序的準(zhǔn)備中,能夠加載該邊界。
當(dāng)然,地址范圍檢測器16能夠容易地?cái)U(kuò)展,以便在兩個(gè)以上范圍之間區(qū)分,或檢測具有不連接部分的范圍中的指令地址。在此情況中,可以對于來自每一個(gè)范圍的指令給出不同處理,并且可以針對每一個(gè)范圍提供存儲器單元20、22。
一般地說,一個(gè)存儲器變換單元(MMU)可用于在運(yùn)行之時(shí)選擇哪些物理內(nèi)存由哪些邏輯指令地址所編址。在此情況中,根據(jù)本發(fā)明的一個(gè)方面,不同的物理內(nèi)存的寬度不同。當(dāng)一個(gè)程序被裝入時(shí),來自一個(gè)內(nèi)循環(huán)的指令字被存儲在一個(gè)較寬的存儲器中。設(shè)置該MMU,以便把這些指令字的邏輯指令地址映射到在較寬的物理指令存儲器中的物理地址。在執(zhí)行中,MMU相應(yīng)地映射邏輯指令地址,并且該存儲器給指令返回一個(gè)寬度,該寬度取決于由MMU物理編址的物理存儲器。
圖4示出可被提供到指令執(zhí)行單元14的功能指令字40、42的實(shí)例。當(dāng)該指令地址在一個(gè)范圍中時(shí),使用第一類型的指令字40,而當(dāng)該指令地址在另一范圍中時(shí),使用第二類型的指令字42。包含多個(gè)指令44a-f的該第一類型的指令字比第二類型的指令字42要寬(第二類型的指令字42具有指令46a、b和一個(gè)代碼47,用于選擇功能單元142的哪個(gè)將執(zhí)行該指令)。
可以通過利用從接收的指令字到該功能單元的指令的地址范圍相關(guān)的路由選擇,來設(shè)計(jì)輸入部分而實(shí)現(xiàn)指令字的不同處理。另外,可以使用壓縮的指令字的一般處理實(shí)現(xiàn)不同的處置。在此情況中,該裝置添加或修改被提供來指導(dǎo)該指令字的解壓縮的代碼,該代碼是根據(jù)該指令的地址范圍構(gòu)造的。該代碼被提供在指令執(zhí)行單元14中,使得指令執(zhí)行單元根據(jù)作為該加或修改的代碼的結(jié)果的地址范圍,來處理該指令字。例如,當(dāng)該指令地址是在一個(gè)第一范圍中時(shí),指示功能單元的全部組的一個(gè)代碼將處理能夠被添加的指令,而當(dāng)該指令地址是在一個(gè)第二范圍中時(shí),則能夠提供來自指令存儲器的指示該功能單元的一個(gè)子集的選擇的代碼,或當(dāng)該指令地址是在該第二范圍中時(shí),能夠產(chǎn)生在總是使用相同的功能單元時(shí)的后一個(gè)代碼。
該功能單元可以包括專門用途的功能單元,例如執(zhí)行加速M(fèi)PEG解碼或編碼功能的單元。通常僅程序的特定部分才包含具有用于這種特殊用途功能單元的指令的指令字。通過僅在該指令地址是在一個(gè)確定范圍中時(shí),才接受用于這些功能單元的指令,則不需要提供用于這種功能單元的指令空間,用于具有在該范圍之外的地址的指令。在此情況中,在兩個(gè)范圍中的指令字甚至可以具有相同的寬度。由于已知當(dāng)該指令地址是在一個(gè)確定范圍之外時(shí),沒有用于該功能單元的一個(gè)子集的指令被編碼,所以可得到更多的空間,用于編碼在儲存在該確定范圍外的指令字中的其它功能單元的指令。
圖5示出圖1的用于編程該數(shù)據(jù)處理設(shè)備的流程圖。在該流程圖的第一步51中,編輯一個(gè)程序并且產(chǎn)生用于執(zhí)行該程序的指令。在第二步驟52中,確定在該程序中的該內(nèi)循環(huán)(或循環(huán))的位置。這可以通過配置文件的自動(dòng)編碼檢驗(yàn)來實(shí)現(xiàn)(即,在通常的輸入數(shù)據(jù)的嘗試執(zhí)行過程中計(jì)數(shù)不同指令被執(zhí)行的次數(shù))。在第三步驟53中形成指令字,例如通過使用象(局部)循環(huán)展開的已知技術(shù)或通過提供用于特殊用途的功能單元的指令,優(yōu)化在該內(nèi)循環(huán)中的指令字。在第四步驟54中,指令字加載到指令存儲器系統(tǒng)12中,使得內(nèi)循環(huán)中的該指令字在被儲存在具有在其中指令存儲器系統(tǒng)儲存較寬指令字的范圍中的指令地址的存儲位置,或其中指令執(zhí)行單元選擇來并行執(zhí)行來自那指令字的多個(gè)指令的范圍中的指令地址的存儲位置。另外,根據(jù)已經(jīng)裝載了該內(nèi)循環(huán)的指令字的位置來設(shè)置該范圍的邊界。
圖6示出用于實(shí)現(xiàn)本發(fā)明的一個(gè)方面的另一個(gè)指令存儲器系統(tǒng)60。指令存儲器系統(tǒng)60具有單一指令地址輸入64、控制器66,并且包含多個(gè)存儲器單元62a-d。指令地址輸入64的至少一部分耦合到存儲器單元62a-d的每一個(gè)的地址輸入。至少部分該指令地址輸入耦合到控制器66??刂破?6耦合到存儲器單元62a-d的每一個(gè),分別使得每一存儲器單元62a-d響應(yīng)在對于該存儲器特定的相應(yīng)的地址范圍中的指令地址;不同存儲器單元62a-d的地址范圍可以重疊并且它們可以包含互不相同的指令地址數(shù)。(這由圖中的跨距不同垂直高度范圍的存儲單元62a-d所符號表示)。類似地,每一個(gè)存儲器單元62a-d可以具有其自己的寬度,即以一個(gè)指令地址編址的指令數(shù)據(jù)的寬度可以隨著存儲器的不同而不同。(圖中通過該存儲單元62a-d跨距不同水平寬度來符號表示該事實(shí))。
操作中,一個(gè)處理單元(沒示出)把連續(xù)的指令地址提供到指令存儲器系統(tǒng)60。根據(jù)該指令地址的值,控制器66通知一個(gè)或者多個(gè)存儲器單元62a-d來響應(yīng)。該選擇的存儲單元62a-d的每一個(gè)都從該存儲器單元62a-d恢復(fù)一個(gè)指令的部分(如果只選定一個(gè)存儲器單元62a-d,則為完整的指令字)。來自不同存儲器單元62a-d的指令部分按照組合的形式被作為一個(gè)指令字提供到處理單元(沒示出)。當(dāng)指令部件62a-d中的一個(gè)或者多個(gè)不被選擇時(shí),最好禁止在該指令部件62a-d的一個(gè)或者多個(gè)中的時(shí)鐘信號。
圖7示出使用圖6存儲器系統(tǒng)60的一個(gè)處理器。該處理器包含多個(gè)功能單元組70a-g、寄存器文件72和程序計(jì)數(shù)器74。每個(gè)功能單元組都可以包含一個(gè)或者多個(gè)功能單元(沒示出)。存儲系統(tǒng)60中的控制器66的選擇輸出耦合到該功能單元組70a-g的時(shí)鐘啟動(dòng)輸入。指令存儲器系統(tǒng)60的存儲單元(為了清楚起見沒示出)的指令輸出被耦合到功能單元組70a-g的功能單元組的指令選擇輸入、操作寄存器選擇輸入以及寄存器文件72的結(jié)果寄存器選擇輸入。功能單元組70a-g具有操作輸入和耦合到寄存器文件72的結(jié)果輸出(雖然在實(shí)踐中使用獨(dú)立的連接,但是為了清楚起見,全部這些連接由單線表示)。
操作中,指令存儲器系統(tǒng)60的每一個(gè)存儲器單元被專用于功能單元70a-g的一組或者多組。當(dāng)來自控制器66的選擇信號指示該功能單元組70a-g的對應(yīng)的存儲器單元不被選擇時(shí),則禁止功能單元組70a-g的一個(gè)或者多個(gè)中的時(shí)鐘信號。因此,該組中的功能單元不接收時(shí)鐘信號并且進(jìn)一步降低功耗。
但是將理解到,圖6的指令存儲器系統(tǒng)能被獨(dú)立于圖7的實(shí)施例使用。即,該功能單元組中的時(shí)鐘信號無需被禁止。存儲單元和功能單元組之間也不需要有一個(gè)固定關(guān)系(雖然這種固定聯(lián)系將加速處理并且簡化電路)。
權(quán)利要求
1.數(shù)據(jù)處理設(shè)備,包括一個(gè)指令地址產(chǎn)生電路,用于輸出一個(gè)指令地址;一個(gè)指令存儲器系統(tǒng),用于輸出由該指令地址尋址的一個(gè)指令字;一個(gè)指令執(zhí)行單元,用于并行處理來自指令字的多個(gè)指令;一個(gè)檢測單元,用于檢測該指令地址存在于多個(gè)范圍的哪一個(gè)中,該檢測單元耦合到該指令執(zhí)行單元和/或該指令存儲器系統(tǒng),根據(jù)一個(gè)檢測的范圍而控制該指令執(zhí)行單元并行處理來自該指令字的指令的方式。
2.根據(jù)權(quán)利要求1的數(shù)據(jù)處理設(shè)備,其中該指令執(zhí)行單元和/或該指令存儲器系統(tǒng)用于根據(jù)該檢測的范圍,調(diào)整該指令字的一個(gè)寬度,該指令字確定來自被并行處理的指令字的指令數(shù)。
3.根據(jù)權(quán)利要求1的數(shù)據(jù)處理設(shè)備,其中該指令執(zhí)行單元包括多個(gè)功能單元,該指令執(zhí)行單元被用于根據(jù)該檢測的范圍而選擇可供處理該指令使用的該功能單元的一個(gè)子集。
4.根據(jù)權(quán)利要求1的數(shù)據(jù)處理設(shè)備,其中該指令執(zhí)行單元包括多個(gè)功能單元,該指令執(zhí)行單元被用于根據(jù)該檢測的范圍,選擇功能單元集合中的功能單元或功能單元組,時(shí)每一個(gè)都從該指令字接收相應(yīng)的指令、還是從該指令字接收一個(gè)共享指令。
5.根據(jù)權(quán)利要求2的數(shù)據(jù)處理設(shè)備,其中該指令存儲器包括一個(gè)第一存儲器單元和一個(gè)第二存儲器單元,利用第一和第二單元提供對不同長度指令字的可尋址存儲器位置的寬度的存儲,不同長度的指令字的地址分別在第一和第二范圍中,該第一和第二寬度單元的寬度互不相同。
6.根據(jù)權(quán)利要求5的數(shù)據(jù)處理設(shè)備,被編程執(zhí)行一個(gè)程序,來自該程序的一個(gè)內(nèi)循環(huán)的相對較長的指令字被存儲在該第一存儲器單元中,來自該內(nèi)循環(huán)之外的多數(shù)程序的相對較短的指令字被存儲在該第二存儲器單元中,第一單元的寬度大于該第二單元的寬度。
7.根據(jù)權(quán)利要求5的數(shù)據(jù)處理設(shè)備,包括一個(gè)存儲器映射單元,用于根據(jù)該檢測范圍把該指令地址映射到該第一存儲器單元或該第二存儲器單元。
8.根據(jù)權(quán)利要求5的數(shù)據(jù)處理設(shè)備,其中該指令存儲器系統(tǒng)被用于在檢測到該第二范圍中的地址時(shí),禁止把時(shí)鐘信號提供到該第一存儲器單元。
9.根據(jù)權(quán)利要求5的數(shù)據(jù)處理設(shè)備,其中該指令存儲器系統(tǒng)被用于禁止把時(shí)鐘信號提供到除了從其地址范圍檢測到地址的存儲器單元之外的全部存儲器單元。
10.根據(jù)權(quán)利要求2的數(shù)據(jù)處理設(shè)備,其中該指令存儲器系統(tǒng)包括多個(gè)存儲單元,每一個(gè)存儲單元用于響應(yīng)在一個(gè)相應(yīng)范圍中的指令地址,該指令存儲器允許這些相應(yīng)范圍的部分重疊,該指令存儲器系統(tǒng)被用于提供指令字,作為來自指令地址位于其相應(yīng)范圍內(nèi)的那些存儲器單元的指令的組合。
11.根據(jù)權(quán)利要求10的數(shù)據(jù)處理設(shè)備,其中該指令存儲器系統(tǒng)被用于在該指令地址不是在存儲器單元的至少一個(gè)的相應(yīng)的范圍中時(shí),禁止把時(shí)鐘信號提供到至少一個(gè)存儲器單元。
12.根據(jù)權(quán)利要求10的數(shù)據(jù)處理設(shè)備,其中該執(zhí)行單元包含一個(gè)或多個(gè)功能單元組,每一個(gè)功能單元組耦合到該存儲單元的相應(yīng)預(yù)定之一,當(dāng)該指令地址是在該組耦合的存儲器單元的相應(yīng)預(yù)定之一的相應(yīng)范圍中時(shí),用于從該指令字接收指令。
13.根據(jù)權(quán)利要求3的數(shù)據(jù)處理設(shè)備,其中該指令執(zhí)行單元能夠可選地處理具有第一長度的一個(gè)指令或具有不同于該第一長度的一個(gè)第二長度的一個(gè)指令,該第一和該第二指令至少部分地從在該指令字中的一個(gè)相同位置得出,根據(jù)利用其取得該指令字的該指令地址的檢測范圍,選擇該第一或該第二指令的執(zhí)行。
14.編程根據(jù)權(quán)利要求1的一個(gè)數(shù)據(jù)處理設(shè)備的方法,該方法包括步驟產(chǎn)生一個(gè)用于該設(shè)備的機(jī)器指令程序;標(biāo)識該程序的一個(gè)內(nèi)循環(huán);把該程序加載到該指令存儲器系統(tǒng),使得來自該內(nèi)循環(huán)的指令被加載在具有在一個(gè)地址范圍中的指令地址的存儲位置,該設(shè)備對于該地址范圍提供了一個(gè)比另一地址范圍更高程度的并行性。
15.利用一個(gè)數(shù)據(jù)處理設(shè)備執(zhí)行一個(gè)程序的方法,該方法包括步驟使用一個(gè)指令地址來取得一個(gè)指令字;執(zhí)行來自該取得指令字的指令;檢測該指令地址存在于多個(gè)范圍的哪一個(gè)中;根據(jù)一個(gè)檢測的范圍控制指令并行執(zhí)行的一種方法。
16.根據(jù)權(quán)利要求15的方法,該方法包括步驟根據(jù)該檢測范圍調(diào)節(jié)該取得的指令字的寬度。
17.根據(jù)權(quán)利要求15的方法,該方法包括步驟根據(jù)該檢測范圍改變用于執(zhí)行該指令的這設(shè)備的功能單元的選擇。
全文摘要
數(shù)據(jù)處理設(shè)備具有用于輸出由指令地址尋址的一個(gè)指令字的指令存儲器系統(tǒng)。一個(gè)指令執(zhí)行單元,并行地處理來自指令字的多個(gè)指令;一個(gè)檢測單元,檢測該指令地址存在于多個(gè)范圍的哪一個(gè)中。該檢測單元耦合到該指令執(zhí)行單元和/或該指令存儲器系統(tǒng),根據(jù)一個(gè)檢測范圍來控制該指令執(zhí)行單元并行處理來自該指令字的指令的方式。在一個(gè)實(shí)施例中,該指令執(zhí)行單元和/或指令存儲器系統(tǒng)根據(jù)該檢測范圍調(diào)整該指令字的寬度,該指令字的寬度確定來自被并行處理的該指令字的指令數(shù)。
文檔編號G06F9/30GK1703670SQ200380101196
公開日2005年11月30日 申請日期2003年10月1日 優(yōu)先權(quán)日2002年10月11日
發(fā)明者R·塞圖拉曼, B·斯里尼瓦桑, C·A·阿巴平托, H·J·A·M·佩特斯, R·佩塞特洛皮斯 申請人:皇家飛利浦電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1