專利名稱:互換地址寄存器所存內(nèi)容的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明與數(shù)字信息處理器相關(guān);更具體而言,本發(fā)明與用于數(shù)字信息量處理器的方法和設(shè)備有關(guān),這些方法和設(shè)備支持?jǐn)?shù)字存儲緩沖區(qū)。
背景技術(shù):
許多數(shù)字信息處理器具有數(shù)字存儲緩沖區(qū),這些數(shù)字存儲緩沖區(qū)可以暫時存儲信息。數(shù)字存儲緩沖區(qū)可由專用的寄存器硬件構(gòu)成,這些寄存器硬件通過電子線路連接在一起,數(shù)字存儲緩沖區(qū)也可只簡單地由一個更大的存儲器的某一專用部分構(gòu)成。
有一種類型的數(shù)字存儲緩沖區(qū)被稱為環(huán)形緩沖區(qū)。在環(huán)形緩沖區(qū)中,緩沖區(qū)的起始位置跟在緩沖區(qū)的結(jié)束位置之后。這就是說,當(dāng)對緩沖區(qū)的連續(xù)位置進(jìn)行訪問時,起始位置自動地跟隨在結(jié)束位置之后。
人們希望能對存儲在環(huán)形緩沖區(qū)中的信息進(jìn)行快速的訪問。舉例而言,數(shù)字信息處理器可帶有執(zhí)行流水線,從而提高輸入輸出總量,然而為了充分利用這一流水線,應(yīng)該對信息進(jìn)行快速的訪問。因此,存儲地址(被用來訪問緩沖區(qū)的位置)通常通過地址生成器硬件生成。一種類型的環(huán)形緩沖區(qū)地址生成器硬件對每個環(huán)形緩沖區(qū)準(zhǔn)備著4個寄存器(1)基礎(chǔ)寄存器B,該寄存器在緩沖區(qū)中的地址數(shù)字最小;(2)索引寄存器I;該寄存器含有下一個要被訪問的緩沖區(qū)地址;(3)變址寄存器M;該寄存器含有增量(或減量);(4)長度寄存器L,該寄存器含有緩沖區(qū)的長度。
圖1表明了環(huán)形緩沖區(qū)和地址寄存器的某一實(shí)例,該緩沖區(qū)是某一更大存儲器的一部分,地址寄存器與存儲緩沖區(qū)保持在一起。數(shù)字最小的地址被稱為基礎(chǔ)地址,數(shù)字最小的地址例如是地址19。基礎(chǔ)地址存儲在基礎(chǔ)寄存器B中。緩沖區(qū)中的最高地址,例如地址29被稱為終端地址,并以E代表。緩沖區(qū)的長度存儲在長度寄存器L中。索引寄存器用I表示,該寄存器是指向緩沖區(qū)的指針。索引寄存器通常含有下一個要被訪問位置的地址,例如含有地址26。在每次訪問后,指針便遞增或遞減到預(yù)定的地址數(shù)字,從而為環(huán)形緩沖區(qū)的下一次訪問做好準(zhǔn)備。指針遞增或遞減到的地址空間數(shù)量是變址量,這一地址空間數(shù)量存儲在變址寄存器M中。在通常情況下,變址量是一個固定不變的數(shù)字,雖然在一些應(yīng)用中,變址量是可以改變的。
許多數(shù)字信息量處理程序使用到了存儲緩沖區(qū)。這樣一種程序通常被稱為快速傅立葉變換。傅立葉變換程序使用一系列的“蝴蝶”計(jì)算來產(chǎn)生某個結(jié)果。一次蝴蝶計(jì)算得到的結(jié)果被用作下一次蝴蝶計(jì)算的輸入數(shù)據(jù)。
大多數(shù)傅立葉變換程序的結(jié)構(gòu)會使每次蝴蝶計(jì)算的輸入數(shù)據(jù)從某一特定的存儲緩沖區(qū)(在本文中被稱為輸入緩沖區(qū))中讀取,并且使每次蝴蝶計(jì)算得到的結(jié)果存儲在另一存儲緩沖區(qū)(在本文中被稱為輸出緩沖區(qū))中。由于每次蝴蝶計(jì)算的結(jié)果被用作下一次蝴蝶計(jì)算的輸入數(shù)據(jù),所以在下一次蝴蝶計(jì)算開始之前,這些計(jì)算結(jié)果必須被加載到輸入緩沖區(qū)中。
有許多種方式可使計(jì)算結(jié)果加載到輸入緩沖區(qū)中。一種方式就是簡單地將結(jié)果從輸出緩沖區(qū)拷貝到輸入緩沖區(qū)中。然而,將計(jì)算結(jié)果從一個緩沖區(qū)拷貝到另一緩沖區(qū)需要很長的時間,相對來說,這種方式明顯加大了一般性費(fèi)用,并由此降低了傅立葉變換程序的性能。
另一種方式是改變與輸入緩沖區(qū)相關(guān)的地址寄存器的地址,使其指向存儲有前次蝴蝶計(jì)算結(jié)果的輸出緩沖區(qū)的地址。同時,與輸出緩沖區(qū)相關(guān)的寄存器通常也被改變,從而指向先前被用于輸入緩沖區(qū)的地址。按照這種方式操作后,已知的蝴蝶計(jì)算結(jié)果在不覆蓋同次蝴蝶計(jì)算輸入數(shù)據(jù)的情況下而存儲起來。改變與輸入緩沖區(qū)和輸出緩沖區(qū)相關(guān)的地址寄存器所取得的總體效果與使用輸出緩沖區(qū)中內(nèi)容來改變輸入緩沖區(qū)中內(nèi)容所達(dá)到的效果是相同的。
改變地址寄存器通常按以下過程進(jìn)行(1)使用輸出緩沖區(qū)基礎(chǔ)寄存器中的內(nèi)容替換輸入緩沖區(qū)基礎(chǔ)寄存器中的內(nèi)容;(2)使用輸出緩沖區(qū)索引寄存器中的內(nèi)容替換輸入緩沖區(qū)索引寄存器中的內(nèi)容。
圖2A表明了在內(nèi)容改變之前,輸入緩沖區(qū)及輸出緩沖區(qū)的基礎(chǔ)寄存器及索引寄存器所存儲的內(nèi)容。在這一實(shí)例中,在內(nèi)容改變之前,基礎(chǔ)寄存器B0和索引寄存器I0與輸入緩沖區(qū)相關(guān),這兩個寄存器指向1號蝴蝶計(jì)算所用的輸入數(shù)據(jù)。基礎(chǔ)寄存器B1和索引寄存器I1與輸出緩沖區(qū)相關(guān),這兩個寄存器指向1號蝴蝶計(jì)算所生成的計(jì)算結(jié)果。
圖2B表明了在內(nèi)容改變之后,輸入緩沖區(qū)及輸出緩沖區(qū)的基礎(chǔ)寄存器及索引寄存器所存儲的內(nèi)容。在內(nèi)容改變之后,與輸入緩沖區(qū)相關(guān)的基礎(chǔ)寄存器B0和索引寄存器I0指向了1號蝴蝶計(jì)算的結(jié)果,而與輸出緩沖區(qū)相關(guān)的基礎(chǔ)寄存器B1和索引寄存器I1指向了1號蝴蝶計(jì)算所用的輸入數(shù)據(jù)。
圖3表明了某一程序,該程序一般被用來實(shí)現(xiàn)輸出緩沖區(qū)的基礎(chǔ)寄存器及索引寄存器所含內(nèi)容與輸入緩沖區(qū)的基礎(chǔ)寄存器及索引寄存器所含內(nèi)容的對換。該程序含有6條指令,并使用臨時寄存器R0和R1。
盡管目前的數(shù)字信息處理器的性能已達(dá)到了一定的水平,但仍需要進(jìn)一步的改善。
發(fā)明概述根據(jù)本發(fā)明的某一方面,某種方法被用于數(shù)字信息處理器,該數(shù)字信息處理器帶有第一地址寄存器和第二地址寄存器;其中第一地址寄存器用來存儲第一個地址,第二地址寄存器用來存儲第二個地址。該方法通過使第一地址寄存器中的內(nèi)容與第二地址寄存器中的內(nèi)容發(fā)生互換而對互換指令做出響應(yīng);其中的互換指令至少指定了兩個地址寄存器的互換操作,這兩個地址寄存器被明確標(biāo)識或被隱含標(biāo)識。
根據(jù)本發(fā)明的另一方面,數(shù)字信息處理器包括第一地址寄存器、第二地址寄存器和某一電路。第一地址寄存器用來存儲第一個地址;第二地址寄存器用來存儲第二個地址;電路接收互換指令,并通過使第二地址寄存器中的內(nèi)容與第一地址寄存器中的內(nèi)容發(fā)生互換來對互換指令做出響應(yīng);其中的互換指令至少指定了兩個明確標(biāo)識或隱含標(biāo)識的地址寄存器的互換操作。
根據(jù)本發(fā)明的另一方面,數(shù)字信息處理器包括第一地址寄存器第二地址寄存器以及對互換第一地址寄存器和第二地址寄存器中內(nèi)容的互換指令做出響應(yīng)的方法;其中的互換指令至少指定了兩個明確標(biāo)識或隱含標(biāo)識的地址寄存器的互換操作。
根據(jù)本發(fā)明的另一方面,數(shù)據(jù)地址發(fā)生器包括第一地址寄存器、第二地址寄存器以及某一電路。其中第一地址寄存器含有與第一環(huán)形緩沖區(qū)中地址相對應(yīng)的第一個地址,第二地址寄存器含有與第二環(huán)形緩沖區(qū)中地址相對應(yīng)的第二個地址,電路接收代表著互換指令的信號,并通過使第一地址寄存器中的內(nèi)容與第二地址寄存器中的內(nèi)容發(fā)生互換而對互換指令信號做出響應(yīng)。
根據(jù)這種方式,互換指令可完全不再需要臨時寄存器來執(zhí)行互換過程,這就降低了寄存器的需求壓力,并有助于降低由于寄存器需求過度所造的滯后可能性(滯后會降低處理上程序執(zhí)行的速度及性能)。此外,在這種方式下,如圖3所示,互換指令減少了或完全消除了程序中的數(shù)據(jù)依賴性以及任何相關(guān)的等待周期(數(shù)據(jù)依賴性和等待周期會降低處理上程序執(zhí)行的速度及性能)。
根據(jù)本發(fā)明的另一方面,某種用于數(shù)字信息處理器的方法包括根據(jù)互換指令而在未來文件中將第一地址寄存器中的內(nèi)容與第二地址寄存器中的內(nèi)容進(jìn)行互換;根據(jù)互換指令在未來文件中生成一個或多個控制信號,并將控制信號發(fā)送到結(jié)構(gòu)文件;根據(jù)一個或多個控制信號而將結(jié)構(gòu)文件中第一地址寄存器所含的內(nèi)容與第二地址寄存器所含的內(nèi)容進(jìn)行互換。
人們已經(jīng)認(rèn)識到,后來提到的本發(fā)明方面并不局限于互換指令,而是一般可以用于具有流水線處理結(jié)構(gòu)的數(shù)據(jù)處理器,尤其可以用于操作的結(jié)果為流水線多個階段所需要的情況。舉例而言,除了在某一階段執(zhí)行操作并將操作結(jié)果輸送給后面的階段外,流水線處理過程的多個階段具有實(shí)際執(zhí)行操作的能力。此后,只需向后面的階段提供控制信號(不是操作結(jié)果)。根據(jù)這一實(shí)施方案,這種方式可減小數(shù)據(jù)處理器所需的面積和/或耗電量。
盡管本發(fā)明一個或多個方面的一個或多個實(shí)施方案具有前面所述的各種潛在優(yōu)勢,但應(yīng)該理解的是,并不絕對需要本發(fā)明任何方面的任何實(shí)施方案來解決以前技術(shù)的缺陷。
圖示簡介圖1表明了某一環(huán)形緩沖區(qū)的實(shí)例,該緩沖區(qū)是某一更大存儲器的一部分。
圖2A表明的是,在與輸入緩沖區(qū)和輸出緩沖區(qū)相關(guān)的地址寄存器所含內(nèi)容發(fā)生互換之前,輸入緩沖區(qū)和輸出緩沖區(qū)的基礎(chǔ)寄存器和索引寄存器中所含的內(nèi)容。
圖2B表明的是,在與輸入緩沖區(qū)和輸出緩沖區(qū)相關(guān)的地址寄存器所含內(nèi)容發(fā)生互換之后,輸入緩沖區(qū)和輸出緩沖區(qū)的基礎(chǔ)寄存器和索引寄存器中所含的內(nèi)容。
圖3表明了某一程序,該程序通常被用來使輸出緩沖區(qū)基礎(chǔ)寄存器和索引寄存器中的內(nèi)容與輸入緩沖區(qū)基礎(chǔ)寄存器和索引寄存器中的內(nèi)容進(jìn)行互換。
圖4A表明的是本發(fā)明某一實(shí)施方案中互換指令格式的實(shí)例。
圖4B表明的是本發(fā)明另一實(shí)施方案中互換指令格式的實(shí)例。
圖5表明的是數(shù)字信息處理器某一部分的模塊圖;在本發(fā)明的某一實(shí)施方案中,數(shù)字信息處理器接收并執(zhí)行互換指令。
圖6是圖5所示數(shù)據(jù)地址發(fā)生器的某一實(shí)施方案的模塊圖。
圖7A是圖6所示寄存器單元某一實(shí)施方案的部分模塊圖。
圖7B是圖6所示寄存器單元另一實(shí)施方案的部分模塊圖。
圖8表明的是數(shù)字信息處理器流水線處理過程的實(shí)例,在本發(fā)明的某一實(shí)施方案中,該流水線處理過程能夠接收并執(zhí)行互換指令。
圖9是數(shù)字地址發(fā)生器某一實(shí)施方案的模塊圖,該數(shù)字地址發(fā)生器可被用于圖8所示的流水線處理過程。
本發(fā)明詳細(xì)說明人們已經(jīng)確定,圖3所示的程序存在有幾處缺陷。第一個缺陷是,該程序?qū)εR時寄存器的需求加大了處理器內(nèi)對寄存器需求的壓力(對臨時寄存器需求的水平)。如果對臨時寄存器的需求變得過大(與臨時寄存器的數(shù)量相比),則會出現(xiàn)臨時寄存器短缺,從而導(dǎo)致滯后現(xiàn)象出現(xiàn),而滯后現(xiàn)象將降低處理器上程序的執(zhí)行速度及性能。對于臨時寄存器相對較少的處理器而言,這一問題尤其應(yīng)加以注意。
第二個缺陷是,在前面的一個或多個指令執(zhí)行完畢之前,該程序的最后4條指令不能被執(zhí)行(這種情況在本文中被稱為數(shù)據(jù)依賴)。如果處理器具有很長的流水線處理過程(即流水線處理過程被分成許多階段),則因?yàn)榇嬖谟袛?shù)據(jù)依賴而需要加入等待周期(即確保在前面指令完成之前某些指令不能被執(zhí)行)。因此,即使圖3所示的程序只有6條指令,但要完成這一程序可能需要8-10個(甚至更多的)指令周期。在這一段時間內(nèi),其他的指令無法輸入到流水線處理過程中,這樣就降低了通過流水線處理過程的輸入輸出總量,并降低了處理器上程序的執(zhí)行速度及性能。
因此,人們不希望使用圖3所示的程序。
通過提供互換指令可以實(shí)現(xiàn)上面的愿望,這一點(diǎn)已得到證實(shí)。
圖4A表明的是本發(fā)明某一實(shí)施方案中互換指令格式100的實(shí)例。該指令格式帶有運(yùn)算代碼,即SWAP,該運(yùn)算代碼表明該指令是一條互換指令,并在101處進(jìn)行標(biāo)明。指令格式還含有兩個運(yùn)算對象區(qū),即地址寄存器id1和地址寄存器id2,這兩個運(yùn)算對象區(qū)指定了其內(nèi)容要進(jìn)行互換的地址寄存器,并在102、103處表明了這些地址寄存器的名稱。
正如本文所使用的,“互換”這一術(shù)語是指對內(nèi)容進(jìn)行交換?;Q操作可以以任何方式加以執(zhí)行?!暗刂芳拇嫫鳌边@一術(shù)語是指數(shù)據(jù)地址寄存器,這種數(shù)據(jù)地址寄存器被定義為任何一種寄存器,只要該寄存器含有訪問某一存儲位置所用的存儲地址或含有生成訪問某一存儲位置所用存儲地址所需的數(shù)據(jù)。具體的地址寄存器包括基礎(chǔ)寄存器B、索引指針寄存器(或簡單的索引寄存器)I、變址寄存器M、長度寄存器L以及終端寄存器E。地址寄存器通常與數(shù)據(jù)地址發(fā)生器集成在一起,這一點(diǎn)將在此后做進(jìn)一步的說明。
使用圖4A所示格式的互換指令的一個實(shí)例為SWAP I0,I1;該指令要求索引寄存器I1中的內(nèi)容與索引寄存器I0中的內(nèi)容互換。
使用圖4A中指令格式的互換指令的另一實(shí)例為SWAP B0,B1;該指令要求基礎(chǔ)寄存器B1中的內(nèi)容與基礎(chǔ)寄存器B0中的內(nèi)容互換。
互換指令的有效性降低了互換地址寄存器所含內(nèi)容所需的指令數(shù)量以及指令周期數(shù)量,因此提高了數(shù)字信息處理器的運(yùn)行速度及性能?;Q指令還降低了對臨時寄存器的需求,這樣就緩解了寄存器需求壓力,并由此降低了由于寄存器需求過度所引起的滯后現(xiàn)象出現(xiàn)可能性(滯后現(xiàn)象會降低處理器上程序的執(zhí)行速度及性能)。
應(yīng)該認(rèn)識到,本發(fā)明并不局限于圖4A所示的互換指令格式,其他的互換指令格式也可以使用。
舉例而言,在某些實(shí)施方案中,地址寄存器不在指令中指定,而是根據(jù)運(yùn)算代碼加以暗指。在這些實(shí)施方案中,數(shù)字信息處理器可設(shè)計(jì)成在收到互換指令時對某些特定的地址寄存器進(jìn)行自動互換。另外,數(shù)字信息處理器支持多種不同的互換指令,其中每種互換指令具有不同的運(yùn)算代碼。這些不同的運(yùn)算代碼暗指著要被互換的特定地址寄存器。例如,指令SWAP01可要求地址寄存器I1中的內(nèi)容與地址寄存器I0中的內(nèi)容進(jìn)行互換。指令SWAP23可要求用地址寄存器I3中的內(nèi)容與地址寄存器I2中的內(nèi)容進(jìn)行互換。
在某些實(shí)施方案中,單獨(dú)一個互換指令可引起多個互換操作。附加的地址寄存器可被運(yùn)算代碼所暗指(如前面所述)。此外,附加的地址寄存器也可以根據(jù)所提供的運(yùn)算對象加以暗指。舉例而言,數(shù)字信息處理器可設(shè)計(jì)為當(dāng)在一條互換指令中有兩個索引寄存器被指定為運(yùn)算對象時,則數(shù)字信息處理器互換這兩個索引寄存器中的內(nèi)容,并對與這兩個索引寄存器相關(guān)的基礎(chǔ)寄存器中的內(nèi)容進(jìn)行互換。舉例而言,在某一實(shí)施方案中,互換指令SWAP I0,I1(1)可導(dǎo)致寄存器I0中的內(nèi)容與寄存器I1中的內(nèi)容發(fā)生互換;(2)導(dǎo)致寄存器B0中的內(nèi)容與寄存器B1中的內(nèi)容發(fā)生互換。下面將結(jié)合圖7B對這一個實(shí)施方案進(jìn)行說明。
可導(dǎo)致多個互換操作的互換指令的另一種執(zhí)行方式是提供某種指令格式,這種指令格式包括兩個以上的運(yùn)算對象區(qū)。圖4B表明了具有兩個以上運(yùn)算對象區(qū)的指令格式104。指令格式104含有運(yùn)算代碼,即SWAP,這一運(yùn)算代碼指定這一指令為互換指令,運(yùn)算代碼在105處表明。指令格式有4個運(yùn)算對象區(qū),即地址寄存器id1、地址寄存器id2、地址寄存器id3、地址寄存器id4,這些運(yùn)算對象區(qū)指定了內(nèi)容要被互換的地址寄存器,這些地址寄存器在106、107、108、109處被表明。
使用圖4B所示指令格式的互換指令實(shí)例為SWAP I0,I1,B0,B1
該指令要求索引寄存器I0中的內(nèi)容與索引寄存器I1中的內(nèi)容進(jìn)行互換,并要求基礎(chǔ)寄存器B1中的內(nèi)容與基礎(chǔ)寄存器B0中的內(nèi)容進(jìn)行互換。
使用單獨(dú)一個互換指令來執(zhí)行多個互換操作還降低了互換地址寄存器中內(nèi)容所需的周期數(shù)量,因此提高了數(shù)字信息處理器的速度和性能。在某些實(shí)施方案中,互換地址寄存器中內(nèi)容所需的指令可以從6條降至1條,指令周期的數(shù)量從8(或更多)降至1。
現(xiàn)在對執(zhí)行互換指令的數(shù)字信息處理器進(jìn)行說明。
圖5是數(shù)字信息處理器110某一部分的模塊圖,其中的數(shù)字信息處理器根據(jù)本發(fā)明的某一實(shí)施方案接收并執(zhí)行互換指令。數(shù)字信息處理器110包括指令解碼器112、數(shù)據(jù)地址發(fā)生器114、指令執(zhí)行控制單元116以及加載/存儲單元118。數(shù)字地址發(fā)生器114生成將數(shù)據(jù)加載及存儲到存儲緩沖區(qū)(未在圖中表明)所需的地址。數(shù)字信息處理器110可設(shè)計(jì)成單一的單片集成電路,但數(shù)字信息處理器并不局限于這種單片集成電路形式。
指令解碼器112的輸入被連接到線段120所示的母線中。122所示的信號線將指令解碼器與數(shù)字地址發(fā)生器114連接起來。124所示的信號線將指令解碼器112與指令執(zhí)行控制單元116連接起來。126所示的信號線將數(shù)字地址發(fā)生器114與加載/存儲單元118連接起來。128所示的信號線將加載/存儲單元118與指令執(zhí)行控制單元116連接起來。
在操作過程中,指令被取得(即從指令高速緩沖存儲器或其他存儲器(未在圖中畫出)中取得),并通過母線120輸送給指令解碼器112。如果指令是數(shù)字地址發(fā)生器指令(即指令與數(shù)字地址發(fā)生器有關(guān)),則指令解碼器112輸出一個經(jīng)過解碼的數(shù)字地址發(fā)生器指令和/或其他控制信號,經(jīng)過解碼的數(shù)字地址發(fā)生器指令和其他控制信號通過信號線122輸送給數(shù)字地址發(fā)生器114。如果該指令不是數(shù)字地址發(fā)生器指令(即該指令與數(shù)字地址發(fā)生器無關(guān)),則指令解碼器112輸出一個解碼指令和/或其他控制信號,解碼指令和其他控制信號通過信號124輸送給執(zhí)行/控制單元116。
數(shù)據(jù)地址發(fā)生器114執(zhí)行數(shù)據(jù)地址發(fā)生器指令,如果合適,數(shù)字地址發(fā)生器114輸出存儲緩沖區(qū)中被訪問數(shù)據(jù)的地址。這些地址通過信號線126輸送給加載/存儲單元118,該單元向/從存儲緩沖區(qū)中的地址加載和/或存儲數(shù)據(jù)。加載/存儲單元118通過信號線128向/從指令執(zhí)行控制單元116傳輸數(shù)據(jù)。
應(yīng)該理解的是,數(shù)字地址發(fā)生器有多種不同的類型。本發(fā)明并不局限于使用任何一類特定類型的數(shù)字地址發(fā)生器。
圖6是數(shù)字地址發(fā)生器114(圖5所示)某一實(shí)施方案的模塊圖。該實(shí)施方案包括數(shù)字地址發(fā)生器控制單元130、數(shù)字地址發(fā)生器算法邏輯單元132以及數(shù)字地址發(fā)生器寄存器單元134。數(shù)字地址發(fā)生器寄存器單元134包括4個寄存器庫136-142以及一個或多個互換單元144。這4個寄存器庫包括L寄存器136、B寄存器138、I寄存器140以及M寄存器142。其中L寄存器存儲著表明每個存儲緩沖區(qū)長度的數(shù)據(jù);B寄存器138存儲每個存儲緩沖區(qū)的基礎(chǔ)地址;I寄存器140存儲每個存儲緩沖區(qū)的索引地址;M寄存器142存儲增量(或減量)值。舉例而言,索引地址表明目前正被訪問的地址或下一次將要訪問的地址。互換單元144通常以硬件的形式體現(xiàn),該互換單元將在下面做進(jìn)一步的說明。
數(shù)字地址發(fā)生器控制單元130通過信號線122與指令解碼器112(圖5所示)相連。146所示的信號線將數(shù)字地址發(fā)生器控制單元130與L,B,I,M寄存器136-142連接起來。148所示的信號線將數(shù)字地址發(fā)生器控制單元130與互換單元144連接起來。150所示的信號線經(jīng)及152所示的信號線將數(shù)字地址發(fā)生器寄存器單元134與數(shù)字地址發(fā)生器算法邏輯單元132連接起來。在某些實(shí)施方案中,L,B,I,M寄存器136-142還與地址和/或數(shù)據(jù)母線(未在圖中表明)相連,從而從存儲器中加載數(shù)據(jù)和/或向存儲器中存儲數(shù)據(jù)。
在操作過程中,數(shù)字地址發(fā)生器控制單元130從指令解碼器112(圖5所示)接收經(jīng)過解碼的數(shù)字地址發(fā)生器指令和/或控制信號。根據(jù)這些指令和/或控制信號,數(shù)字地址發(fā)生器控制單元130生成被用來執(zhí)行數(shù)字地址發(fā)生器指令的控制信號。在本文中,“根據(jù)”一詞意指“至少根據(jù)”,這樣就不排除對一個以上的事物發(fā)生響應(yīng)。例如,數(shù)字地址發(fā)生器控制單元130生成L、B、I、M寄存器控制信號,這些控制信號被輸送給L、B、I、M寄存器136-142。數(shù)字地址發(fā)生器控制單元130還生成互換控制信號和算法邏輯單元控制信號?;Q控制信號被輸送給互換單元144?;Q單元144根據(jù)互換控制信號使相應(yīng)地址寄存器中的內(nèi)容發(fā)生互換。算法邏輯單元控制信號被輸送給數(shù)字地址發(fā)生器算法邏輯單元132。數(shù)字地址發(fā)生器寄存器單元134產(chǎn)生輸出信號Lzout、B out、I out、M out;這些輸出信號分別表明了L、B、I、M寄存器中的內(nèi)容。這些信號被輸送給數(shù)字地址發(fā)生器算法邏輯單元132以及加載/存儲單元118(圖5所示)。數(shù)字地址發(fā)生器算法邏輯單元132進(jìn)行運(yùn)算,從而生產(chǎn)新的地址L in、B in、I in、M in,這些地址被輸送給數(shù)字地址發(fā)生器寄存器單元134,并被分別存儲在L、B、I、M寄存器中。
圖7A表明的是寄存器單元134某一實(shí)施方案中某一部分的模塊圖。在這一實(shí)施方案中,寄存器單元能夠互換B寄存器138中的內(nèi)容,并能夠按以下說明的過程互換I寄存器140中的內(nèi)容。
在這一實(shí)施方案中,寄存器單元包括B寄存器庫138、B寄存器互換單元160、I寄存器庫140以及I寄存器單元162。B寄存器庫138含有4個寄存器B0-B3。I寄存器庫140含有4個寄存器I0-I3。每個B寄存器和每個I寄存器帶有時鐘輸入,該輸入接收來自數(shù)字地址發(fā)生器控制單元(圖6所示)的時鐘信號(未在圖中表明)。
寄存器單元還包括B out多路轉(zhuǎn)換器166和I out多路轉(zhuǎn)換器170。每個多路轉(zhuǎn)換器都由數(shù)字地址發(fā)生器控制單元(圖6所示)產(chǎn)生的控制信號所控制。信號B in通過信號線150與B寄存器互換單元160的第一組輸入(in0)相連。B寄存器互換單元160的輸出通過192-188所示的信號線與B寄存器庫138的輸入相連。B寄存器庫138的輸出通過信號線與B寄存器互換單元160的第二組輸入以及B out多路轉(zhuǎn)換器166的輸入相連。B out多路轉(zhuǎn)換器166的輸出將B out信號輸送到信號線152上。
I in信號通過信號線150輸送給I寄存器互換單元162的第一組輸入(in0),I寄存器互換單元162的輸出通過206-212所示的信號線與I寄存器庫140的輸入相連。I寄存器庫140的輸出通過214-220所示的信號線與I寄存器互換單元162的第二組輸入和I out多路轉(zhuǎn)換器170的輸入相連。I out多路轉(zhuǎn)換器170的輸出將I out信號輸送到信號線152上。
B寄存器互換單元160的這一實(shí)施方案包括B0/B1互換單元222和B2/B3互換單元224。I寄存器互換單元162包括I0/I1互換單元226和I2/I3互換單元228。這4個互換單元222-228是彼此相同的。互換單元帶有選擇線,從而通過信號線148來接收數(shù)字地址發(fā)生器控制單元130(圖6所示)所產(chǎn)生的互換控制信號。舉例而言,在這一實(shí)施方案中,來自數(shù)字地址發(fā)生器控制單元(圖6所示)的互換控制信號包括以下4種控制信號B0/B1互換信號、B2/B3互換信號、I0/I1互換信號以及I2/I3互換信號。B0/B1互換信號被輸送給B0/B1互換單元224的選擇線。I0/I1互換信號被輸送給I0/I1互換單元226的選擇線。I2/I3互換信號被輸送給I2/I3互換單元228的選擇線。
現(xiàn)在結(jié)合B0/B1互換單元222對互換單元的操作進(jìn)行說明。B0/B1互換單元222有兩種操作狀態(tài),具體而言就是互換狀態(tài)和非互換狀態(tài)。在互換狀態(tài)下,B0/B1互換單元222將B1寄存器中的內(nèi)容與B0寄存器中的內(nèi)容進(jìn)行互換。在非互換狀態(tài)下,B0/B1互換單元222通過信號線150在B in信號與B寄存器138之間建立透明的連接。
操作狀態(tài)由B0/B1互換信號的狀態(tài)所決定,B0/B1互換信號輸送給B0/B1互換單元222的選擇輸入項(xiàng)。在這一實(shí)施方案中,如果B0/B1互換信號處于第一種邏輯狀態(tài)(即高邏輯狀態(tài)或邏輯值為1的狀態(tài)),則B0/B1處于互換操作狀態(tài)。如果B0/B1互換信號處于第二種邏輯狀態(tài)(即低邏輯狀態(tài)或邏輯值為0的狀態(tài)),則B0/B1互換單元處于非互換操作狀態(tài)。
在互換狀態(tài)下,互換單元222的多路轉(zhuǎn)換器選擇B1寄存器的輸出,互換單元222的多路轉(zhuǎn)換器1選擇B0寄存器的輸出。如果在時鐘線上給一個脈沖信號,則B0寄存器存儲B1寄存器中的內(nèi)容,B1寄存器存儲B0寄存器中的內(nèi)容,即B0寄存器中的內(nèi)容和B1寄存器中的內(nèi)容發(fā)生互換。
在非互換操作狀態(tài)下,互換單元222的多路轉(zhuǎn)換器0選擇信號線150上的B in信號,互換單元222的多路轉(zhuǎn)換器1選擇信號線150上的B in信號。如果在時鐘線上向B0寄存器或B1寄存器提供一個脈沖信號,則收到脈沖信號的寄存器存儲信號線150上B in信號所提供的地址。
其余互換單元224-228的操作與B0/B1互換單元222的操作相似。因此,B2/B3互換單元224可使B2寄存器中的內(nèi)容與B3寄存器中的內(nèi)容進(jìn)行對換。I0/I1互換單元226可使I0寄存器中的內(nèi)容與I1寄存器中的內(nèi)容對換。I2/I3互換單元228可使I2寄存器中的內(nèi)容與I3寄存器中的內(nèi)容對換。
如前面所述,在本發(fā)明的某些實(shí)施方案中,單獨(dú)一個互換指令可導(dǎo)致多個互換操作被執(zhí)行。在某些實(shí)施方案中,這種操作方式是通過提供含有附加運(yùn)算對象區(qū)的互換指令而實(shí)現(xiàn)的。在本發(fā)明的其他實(shí)施方案中,附加的地址寄存器可以被暗指。
舉例而言,在本發(fā)明某一實(shí)施方案中,互換指令SWAP I0、I1可導(dǎo)致I0寄存器中的內(nèi)容與I1寄存器中的內(nèi)容發(fā)生互換,并導(dǎo)致B0寄存器中的內(nèi)容與B1寄存器中的內(nèi)容發(fā)生互換。通過對數(shù)字地址發(fā)生器控制單元130進(jìn)行設(shè)置可以實(shí)現(xiàn)這一點(diǎn);這樣,互換指令SWAP I0、I1使數(shù)字地址發(fā)生器控制單元130即確認(rèn)I0/I1互換信號又確認(rèn)B0/B1互換信號。相類似的是,互換指令SWAP I2,I3可導(dǎo)致I2寄存器中的內(nèi)容與I3寄存器中的內(nèi)容進(jìn)行互換,并導(dǎo)致B2寄存器中的內(nèi)容與B3寄存器中的內(nèi)容進(jìn)行互換。通過對數(shù)字地址發(fā)生器控制單元130進(jìn)行設(shè)置可以實(shí)現(xiàn)這一點(diǎn);這樣,互換指令SWAP I2、I3使數(shù)字地址發(fā)生器控制單元130即確認(rèn)I2/I3互換信號又確認(rèn)B2/B3互換信號。通過對圖7A所示實(shí)施方案中適當(dāng)控制信號進(jìn)行確認(rèn)就可實(shí)現(xiàn)這一點(diǎn)。
圖7B表明的是這一實(shí)施方案的另一種形式。在圖7B所示的實(shí)施方案中,除了信號線148上來自于數(shù)字地址發(fā)生器控制單元130的互換控制信號包括I0/I1/B0/B1和I2/I3/B2/B3這兩個控制信號外,其余部分與圖7A所示的實(shí)施案是相同的。I0/I1/B0/B1互換信號輸送給B0/B1互換單元222的選擇線以及I0/I1互換單元226的選擇線?;Q信號I2/I3/B2/B3輸送給B2/B3互換單元224的選擇線以及I2/I3互換單元228的選擇線。
如前面所述,執(zhí)行互換指令的能力可以減少地址寄存器中內(nèi)容發(fā)生互換所需的指令周期數(shù)量,由此提高數(shù)字信息處理器的速度和性能(數(shù)據(jù)信賴性及等待循環(huán)會降低處理器上程序的運(yùn)行速度及性能)。此外,這種執(zhí)行互換指令的能力還降低了對臨時寄存器的需求,這樣會減少寄存器的需求壓力以及可能出現(xiàn)的由于寄存器需求過度所導(dǎo)致的滯后。(這些滯后會降低在處理上程序的運(yùn)行速度及性能)。
到目前為止,已經(jīng)討論了互換指令以及數(shù)字地址發(fā)生器,下面將說明具有流水線處理過程的數(shù)字信息處理器完成某一互換指令所涉及的某些方面。
應(yīng)該認(rèn)識到的是,圖7A、7B表明了帶有互換單元的數(shù)字地址發(fā)生器寄存器的不同實(shí)施方案。然而,數(shù)字地址發(fā)生器寄存器以及互換單元并不局限于圖7A、7B所示的形式。舉例而言,互換單元可以以多種方式體現(xiàn)。使用多路轉(zhuǎn)換器只是其中的一種方式。例如,可以用三態(tài)驅(qū)動器組來替換多路轉(zhuǎn)換器,其中每個三態(tài)驅(qū)動器接收不同的啟動信號。三態(tài)驅(qū)動器的啟動可根據(jù)互換控制信號而定。多路轉(zhuǎn)換器可被組合邏輯電路所替代。因此,本發(fā)明并不局限于互換操作的執(zhí)行方式。
圖8表明的是流水線處理過程240的實(shí)施方案。該流水線240含水量有一系列的階段,圖8中有7個階段;即IF1、IF2、DC、AC、LS、EX1、WB階段。流水線240的操作與數(shù)字地址發(fā)生器相關(guān),其中數(shù)字地址發(fā)生器包括兩種類型的地址寄存器(即兩種L寄存器、兩種B寄存器、兩種I寄存器和兩種M寄存器)。在本文中,如242、244所示,一種類型的寄存器被統(tǒng)稱為未來文件,另一種類型的寄存器被統(tǒng)稱為結(jié)構(gòu)文件。未來文件242和結(jié)構(gòu)文件244通過數(shù)字地址發(fā)生器流水線246連接起來。正如下面將要說明的,在生成及修改訪問存儲緩沖區(qū)所用的地址過程中,未來文件242被讀取和更新。未來文件242表明地址寄存器的預(yù)測狀態(tài)。另一方面,在互換指令執(zhí)行完畢時,結(jié)構(gòu)文件244隨互換指令而更新。使用這兩種類型的地址寄存器可使硬件在預(yù)測出現(xiàn)錯誤的情況下,以較小輸入輸出量的方式預(yù)測性地執(zhí)行指令。
指令被輸入到流水線240中,并經(jīng)過流水線的某些階段,直至該指令執(zhí)行完畢。更具體而言,248所示的指令在IF1階段被取得。在IF2階段,指令248被解碼為250,并被標(biāo)記為數(shù)字地址發(fā)生器指令或非數(shù)字地址發(fā)生器指令。如果指令248是一條數(shù)字地址發(fā)生器指令252,則在DC階段讀取未來文件242的I寄存器和M寄存器(254所示)。
在AC階段,數(shù)字地址發(fā)生器生成地址256,該地址將被輸送給加載/存儲單元260。舉例而言,數(shù)字地址發(fā)生器互換指令如前面所述按圖4-7B加以執(zhí)行。在LS階段,數(shù)字地址發(fā)生器所產(chǎn)生的地址提供給加載/存儲單元260,該加載/存儲單元根據(jù)該地址加載數(shù)據(jù)。數(shù)字地址發(fā)生器所生成的地址存儲在未來文件242中。此外,數(shù)字地址發(fā)生器信息被輸入到數(shù)字地址發(fā)生器流水線246中,如結(jié)合圖9所述的,該流水線被用來向結(jié)構(gòu)文件244發(fā)送數(shù)字地址發(fā)生器信息。
在EX階段,執(zhí)行算法邏輯單元的操作262。在WB階段,算法邏輯單元操作所產(chǎn)生的結(jié)果被存儲,指令到此執(zhí)行完畢。一旦指令完成,數(shù)字地址發(fā)生器流水線產(chǎn)生的信息被用來更新結(jié)構(gòu)文件244。照此方式,結(jié)構(gòu)文件244表明了在最近一條指令退出流水線240后地址寄存器的狀態(tài),但結(jié)構(gòu)文件244并不表明流水線240中當(dāng)前指令所產(chǎn)生的結(jié)果。
在本發(fā)明的某些實(shí)施方案中,數(shù)字地址發(fā)生器在任何指令周期中產(chǎn)生的新地址多達(dá)兩個。這兩個新地址提供給結(jié)構(gòu)文件,數(shù)字地址發(fā)生器流水線地址母線足夠?qū)?,可以同時輸送兩個地址。
應(yīng)該認(rèn)識到的是,在任何指令周期中,如果互換指令沒有互換兩個以上的地址寄存器,則雙地址寬的母線足以傳輸互換指令的結(jié)果。然而,如果在任何指令周期中互換指令引發(fā)了一個以上的互換操作(比如互換兩個以上地址寄予存器中的內(nèi)容),則情況就復(fù)雜了。舉例而言,前面結(jié)合圖7B所說明的互換指令導(dǎo)致了IO寄存器中的內(nèi)容與I1寄存器中的內(nèi)容發(fā)生對換,并導(dǎo)致BO寄存器中的內(nèi)容與BI寄存器中的內(nèi)容發(fā)生對換。這樣一種互換指令在一次指令周期中改變了四個地址寄存器(IO、IL、BO和BL寄存器)中的內(nèi)容。
雙地址寬的地址母線不足以傳輸四個地址。為了一次傳輸四個地址,地址母線的寬度需的寄存器數(shù)量加倍,并會導(dǎo)致芯片面積以及耗電量的增加。
圖9表明了某一數(shù)字地址發(fā)生器的實(shí)施方案,其中的數(shù)字地址發(fā)生器適用于在一個指令周期中一條互換指令導(dǎo)致多個互換操作的情況。在該實(shí)施方案中,該互換指令所產(chǎn)生的結(jié)果不通過數(shù)字地址發(fā)生器流水流進(jìn)行傳輸。更適合的是使用兩個互換單元,其中一個互換單元跟在另一互換單元之后。當(dāng)收到互換指令時,前一個互換單元對未來文件進(jìn)行互換操作??刂菩盘?而不是四個新地址)被生成并通過流水線傳輸?shù)较乱粋€互換單元,控制信號依次對結(jié)構(gòu)文件執(zhí)行互換操作。該實(shí)施方案的總體效果就如同流水線傳輸了四個新地址一樣,但無需將地址母線的寬度增加一倍。
在該實(shí)施方案中,數(shù)字地址發(fā)生器包括前端部分270、數(shù)字地址發(fā)生器流水線272以及后端部分274。前端部分270包括數(shù)字地址發(fā)生器控制單元276、數(shù)字地址發(fā)生器算法邏輯單元278以及寄存器單元280;其中寄存器單元280包括L、B、I、M寄存器282(即未來文件)以及一個或多個互換單元284。數(shù)字地址發(fā)生器控制單元276、數(shù)字地址發(fā)生器算法邏輯單元278以及寄存器單元280可分別與前面結(jié)合圖5-7B所說明的數(shù)字地址發(fā)生器控制單元130、數(shù)字地址發(fā)生器算法邏輯單元132以及寄存器單元134相似。
前端部分通過285所示的信號線接收數(shù)字地址發(fā)生器指令。數(shù)字地址發(fā)生器算法邏輯單元278進(jìn)行運(yùn)算,從而生成新的地址,互換單元284相應(yīng)地互換地址寄存器中的內(nèi)容。數(shù)字地址發(fā)生器控制單元276和互換單元284的設(shè)置方式可使單個互換指令在一個指令周期中導(dǎo)致一個以上的互換操作被執(zhí)行。這種設(shè)置意味著在一個指令周期中一條互換指令可改變四個(或更多)地址寄存器中的內(nèi)容。
后端部分274包括控制單元286以及寄存器單元288,其中寄存器單元包括L、B、I、M寄存器290(即結(jié)構(gòu)文件)以及一個或多個互換單元292,寄存器單元288例如可以與前面結(jié)合圖6-7B所述的寄存器單元134相似。正如本文下面將要進(jìn)一步說明的,數(shù)字地址發(fā)生器后端部分274的寄存器單元288如果帶有一個或多個互換單元292,則不必將互換指令的執(zhí)行結(jié)果傳輸給數(shù)字地址發(fā)生器的后端部分274。
數(shù)字地址發(fā)生器流水線272將前端部分270與后端部分274連接起來。在該實(shí)施方案中,流水線272包括第一、第二和第三分散式數(shù)據(jù)通道294-298。每個數(shù)據(jù)通道都包括一系列的分散式寄存器段。第一數(shù)據(jù)通道包括寄存器段1941-294N。第二數(shù)據(jù)通道包括寄存器段2961-296N。第三數(shù)據(jù)通道包括寄存器段2981-298N。
通過流水線可將前端部分270產(chǎn)生的結(jié)果傳輸?shù)胶蠖瞬糠?74,系統(tǒng)設(shè)計(jì)者可以降低后端部分274的復(fù)雜程度。舉例而言,與數(shù)字地址發(fā)生器前端部分270不同,數(shù)字地址發(fā)生器的后端部門274并不需要有能力接收數(shù)字地址發(fā)生器指令、并對該指令做出響應(yīng)的控制單元。數(shù)字地址發(fā)生器后端部分274也不需要執(zhí)行運(yùn)算從而生成新地址的算法邏輯單元。
第一數(shù)據(jù)通道294和第二數(shù)據(jù)通道296被用來傳輸數(shù)字地址發(fā)生器算法邏輯單元278所產(chǎn)生的地址。因此,第一數(shù)據(jù)通道294的寄存器段2941-294N以及第二數(shù)據(jù)通道的寄存器段2961-296N通常至少與數(shù)字地址發(fā)生器地址寄存器具有同等的寬度。當(dāng)數(shù)字地址發(fā)生器后端部分274中的控制單元收到來自第一和/或第二數(shù)據(jù)通道294、296的地址時,這些地址被復(fù)制到結(jié)構(gòu)文件290中的相應(yīng)地址寄存器中。
第三數(shù)據(jù)通道298被用來傳輸與互換指令相關(guān)的信息。正如前面所述的,由于數(shù)字地址發(fā)生器的前端部分270和后端部分274各帶有一個或多個互換單元,所以沒有必要將互換指令產(chǎn)生的結(jié)果傳給數(shù)字地址發(fā)生器的后端部分274。因此,第三數(shù)據(jù)通道的寄存器段2981-298N不必具有與第一、二數(shù)據(jù)通道294、296的寄存器段2941-294N及2961-296N相同的寬度。在本發(fā)明的某些實(shí)施方案中,第三數(shù)據(jù)通道298只是傳輸某一信號,該信號表明了數(shù)字地址發(fā)生器的前端部分270是否收到了互換指令。在本發(fā)明的其他實(shí)施方案中,第三數(shù)據(jù)通道298可用來傳送表明地址寄存器的信號,其中的地址寄存器的內(nèi)容將被互換。當(dāng)數(shù)字地址發(fā)生器的后端部分274收到來自第三數(shù)據(jù)通道298的信號時,控制單元286向后端部分274的寄存器單元288提供控制信號,從而使寄存器單元中相應(yīng)寄存器的內(nèi)容發(fā)生變更。
因此,如果數(shù)字地址發(fā)生器后端部分的寄存器單元帶有一個或多個互換單元,則不必將互換指令產(chǎn)生的結(jié)果傳輸給數(shù)字地址發(fā)生器的后端部分。這就有可能在無需一次傳輸四個地址的情況下完成一條使兩個基礎(chǔ)寄存器所含內(nèi)容發(fā)生對換以及使兩個索引寄存器所含內(nèi)容發(fā)生對換的互換指令。實(shí)際上,在這一實(shí)施方案中,互換指令是在結(jié)構(gòu)文件中執(zhí)行的,因?yàn)闆]必要傳輸任何與互換指令相關(guān)的地址。應(yīng)該注意的是,為了一次傳送四個地址,有可能需要另外二條數(shù)據(jù)通道,但這會增加數(shù)字信息處理器的成本、大小和/或耗電量。
應(yīng)該認(rèn)識到的是,本發(fā)明的各個方面并不局限于互換指令,而是可以用于一般性的傳輸數(shù)字處理器,尤其可用于操作的結(jié)果為處理過程多個階段所需的場合。舉例而言,流水線處理過程的多個階段都有實(shí)際執(zhí)行操作的能力,而不是在某一階段執(zhí)行操作,并將操作結(jié)果傳給以后的階段。在每個階段配備一個操作器(即執(zhí)行單元)就可實(shí)現(xiàn)這一功能。此后,只需向這些處理階段提供控制信號(不是完整的結(jié)果)即可;其中控制信號指揮每一階段中的操作器進(jìn)行操作。
雖然前面所示的數(shù)據(jù)地址發(fā)生器包括控制單元、算法邏輯單元以及帶有四個地址寄存器庫的寄存器單元,但應(yīng)該理解的是,數(shù)據(jù)地址寄存器并不局限于這種結(jié)構(gòu)。數(shù)據(jù)地址發(fā)生器只需能夠生成存儲于地址寄存器的地址并改變地址寄存器中的內(nèi)容即可。此外,應(yīng)該理解的是,本發(fā)明并不局限于與數(shù)據(jù)地址發(fā)生器連同使用。
雖然本文展示和說明了各種實(shí)施方案,但本領(lǐng)域技術(shù)人員應(yīng)該理解的是,本發(fā)明并不局限這些實(shí)施方案,這些實(shí)施方案只是以范例的形式呈現(xiàn)出來,在不脫離本發(fā)明原理及范圍的情況下,可以對本發(fā)明做出各種各樣的改變及修正。本發(fā)明只由本文所附的權(quán)利要求及同等條款所限定。
權(quán)利要求
1.某種用于數(shù)字信息處理器的方法,該數(shù)字信息處理器帶有存儲第一地址的第一地址寄存器以及存儲第二地址的第二地址寄存器;該方法包括通過將第一地址寄存器中的內(nèi)容與第二地址寄存器中的內(nèi)容進(jìn)行對換而對互換指令做出響應(yīng);其中的互換指令至少為兩個明確標(biāo)識的或隱含標(biāo)識的地址寄存器指定了某項(xiàng)互換操作。
2.如權(quán)利要求1中的方法,其中的響應(yīng)包括對互換指令進(jìn)行解碼,并生成代表互換指令的信號;通過將第一地址寄存中的內(nèi)容與第二地址寄存器中的內(nèi)容對換而對代表互換指令的信號做出響應(yīng)。
3.如權(quán)利要求2中的方法,其中對信號做出的響應(yīng)包括將第一地址寄存器的第一地址傳送給第二地址寄存器,并將第二地址寄存器的第二地址傳送給第一地址寄存器。
4.如權(quán)利要求2中的方法,其中對信號做出的響應(yīng)包括接收代表著互換指令的信號,并至少根據(jù)接收的信號生成控制信號;根據(jù)一個或多個控制信號將第一地址寄存器的第一地址傳送給第二地址寄存器;根據(jù)一個或多個控制信號將第二地址寄存器的第一地址傳送給第一地址寄存器;將第一地址存儲在第二個地址寄存器中,并將第二地址存儲在第一地址寄存器中。
5.如權(quán)利要求1中的方法,其中第一地址寄存器與第一存儲緩沖區(qū)相關(guān),第二地址寄存器與第二存儲緩沖區(qū)相關(guān)。
6.如權(quán)利要求1中的方法,其中互換指令含有代表互換操作的運(yùn)算代碼,并含有第一運(yùn)算對象及第二運(yùn)算對象;其中第一運(yùn)算對象代表著第一地址寄存器,第二運(yùn)算對象代表著第二地址寄存器。
7.如權(quán)利要求5中的方法,其中第一地址寄存器和第二地址寄存器分別包括第一存儲緩沖區(qū)的基礎(chǔ)寄存器和第二存儲緩沖區(qū)的基礎(chǔ)寄存器。
8.如權(quán)利要求5中的方法,其中第一地址寄存器和第二地址寄存器分別包括第一存儲緩沖區(qū)的索引寄存器和第二存儲緩沖區(qū)的索引寄存器。
9.如權(quán)利要求8中的方法,其中對互換指令的響應(yīng)還包括將第一存儲緩沖區(qū)的基礎(chǔ)寄存器中的內(nèi)容與第二存儲緩沖區(qū)的基礎(chǔ)寄存器中的內(nèi)容進(jìn)行對換。
10.某種數(shù)字信息處理器,該處理器包括存儲第一地址所用的第一地址寄存器;存儲第二地址所用的第二地址寄存器;接收互換指令的電路,該互換指令至少為兩個明確指定或隱含指定的地址寄存器指定了互換操作;并根據(jù)互換指令將第一地址寄存器中的內(nèi)容與第二地址寄存器中的內(nèi)容進(jìn)行對換。
11.如權(quán)利要求10中的數(shù)字信息處理器,其中電路包括指令解碼器;該指令解碼器接收指令,并對指令進(jìn)行解碼同時生成代表互換指令的信號;數(shù)據(jù)地址生成器;該數(shù)據(jù)地址生成根據(jù)代表著互換指令的信號將第一地址寄存器中的內(nèi)容與第二地址寄存器中的內(nèi)容進(jìn)行對換。
12.如權(quán)利要求11中的數(shù)字信息處理器,其中數(shù)字地址發(fā)生器包括互換單元;該互換單元將第一地址寄存器的第一地址提供給第二地址寄存器,并將第二地址寄存器的第二地址提供給第一地址寄存器。
13.如權(quán)利要求11中的數(shù)字信息處理器,其中數(shù)字地址發(fā)生器包括控制單元;該控制單元接收代表著互換指令的信號,并根據(jù)接收到的信號生成控制信號;寄存器互換單元;該寄存器互換單元接收來自于第一地址寄存器的第一地址以及接收來自于第二地址寄存器的第二地址,并根據(jù)一個或多個控制信號將第一地址提供給第二地址寄存器以及將第二地址提供給第一地址寄存器;其中第一地址存儲在第二地址寄存器中,第二地址存儲在第一地址寄存器中。
14.如權(quán)利要求10中的數(shù)字信息處理器,其中第一地址寄存器與第一存儲緩沖區(qū)相關(guān),第二地址寄存器與第二存儲緩沖區(qū)相關(guān)。
15.如權(quán)利要求10中的數(shù)字信息處理器,其中互換指令包括運(yùn)算代碼、第一運(yùn)算對象以及第二運(yùn)算對象。其中運(yùn)算代碼代表著互換操作;第一運(yùn)算對象代表著第一地址寄存器;第二運(yùn)算對象代表著第二地址寄存器。
16.如權(quán)利要求10中的數(shù)字信息處理器,其中來自于第一地址寄存器的地址和來自于第二地址寄存器的地址都傳送給加載/存儲單元。
17.如權(quán)利要求14中的數(shù)字信息處理器,其中第一地址寄存器和第二地址寄存器分別包括第一存儲緩沖區(qū)的基礎(chǔ)寄存器和第二存儲緩沖區(qū)的基礎(chǔ)寄存器。
18.如權(quán)利要求14中的數(shù)字信息處理器,其中第一地址寄存器和第二地址寄存器分別包括第一存儲緩沖區(qū)的索引寄存器和第二存儲緩沖區(qū)的索引寄存器。
19.如權(quán)利要求18中的數(shù)字信息處理器,其中數(shù)字信息處理器還包括根據(jù)互換指令將第一存儲緩沖區(qū)的基礎(chǔ)寄存器中的內(nèi)容與第二存儲緩沖區(qū)的基礎(chǔ)寄存器中的內(nèi)容進(jìn)行對換。
20.某種數(shù)字信息處理器,該處理器包括存儲第一地址所用的第一地址寄存器;存儲第二地址所用的第二地址寄存器;接收互換指令的裝置,其中互換指令至少為兩個明確指定或隱含指定的地址寄存器指定了互換操作;并根據(jù)互換指令將第一地址寄存器中的內(nèi)容與第二地址寄存器中的內(nèi)容進(jìn)行對換。
21.某種數(shù)字地址發(fā)生器,該數(shù)字地址發(fā)生器包括含有第一地址的第一地址寄存器;其中第一地址與第一環(huán)形緩沖區(qū)的位置相對應(yīng);含有第二地址的第二地址寄存器;其中第二地址與第二環(huán)形緩沖區(qū)的位置相對應(yīng);接收互換指令的電路,該互換指令至少為兩個明確指定或隱含指定的地址寄存器指定了互換操作;并根據(jù)互換指令將第一地址寄存器中的內(nèi)容與第二地址寄存器中的內(nèi)容進(jìn)行對換。
22.如權(quán)利要求21中的數(shù)字信息處理器,其中的電路含有互換單元;該互換單元接收來自于第一索引寄存器的第一地址以及接收來自于第二索引寄存器的第二地址,并將第一地址提供給第二索引寄存器以及將第二地址提供給第一索引寄存器。
23.權(quán)利要求21中的數(shù)字地址發(fā)生器還包括生成目標(biāo)地址的裝置;其中目標(biāo)地址位于一組環(huán)形緩沖區(qū)內(nèi),每個環(huán)形緩沖區(qū)延伸到由基礎(chǔ)地址及終端地址定義的存儲區(qū)內(nèi),其中終端地址等于基礎(chǔ)地址與某個長度的總和。該裝置能對所述緩沖區(qū)I中前一次被訪問的地址以及指定的補(bǔ)償M產(chǎn)生響應(yīng)。該裝置包括寄存器;該寄存器存儲所述緩沖區(qū)I中前一次被訪問的地址;一組寄存器;該組寄存器存儲對所述環(huán)形存儲緩沖區(qū)位置以及大小進(jìn)行定義的信息;算法邏輯單元;該算法邏輯單元通過計(jì)算I+M的值而生成地址增量,并通過按緩沖區(qū)的長度改變I+M值而生成一個地址;該算法邏輯單元還提供一個地址增量以及一個封閉地址,該封閉地址位于環(huán)形緩沖區(qū)邊界之內(nèi)。
24.某種用于數(shù)字信息處理器的方法;其中的數(shù)字信息處理器包括流水線處理過程,流水線處理過程帶有未來文件和結(jié)構(gòu)文件,未來文件在結(jié)構(gòu)文件之前,未來文件包括第一地址寄存器和第二地址寄存器;結(jié)構(gòu)文件包括第一地址寄存器和第二地址寄存器。該方法包括根據(jù)互換指令將未來文件中第一地址寄存所含的內(nèi)容與第二地址寄存器所含的內(nèi)容進(jìn)行對換;根據(jù)互換指令生成一個或多個控制信號,并將這些控制信號從未來文件傳送到結(jié)構(gòu)文件中;根據(jù)一個或多個控制信號將結(jié)構(gòu)文件中第一地址寄存器所含的內(nèi)容與第二地址寄存器所含的內(nèi)容進(jìn)行互換。
25.某種用于數(shù)字信息處理器的方法;該數(shù)字信息處理器包括流水線處理過程;流水線處理過程含有第一處理過程段和第二處理過程段,第一處理過程段在第二處理過程段之前,第一處理過程段和第二處理過程段都能執(zhí)行操作。該方法包括根據(jù)所收到的指令在第一處理過程段中執(zhí)行操作;根據(jù)所收到的指令生成一個或多個控制信號,并將這些控制信號從第一處理過程段發(fā)送到第二處理過程段;根據(jù)一個或多個控制信號在第二處理過程段內(nèi)執(zhí)行操作。
全文摘要
本文涉及用于數(shù)字信息處理器的方法和設(shè)備,這些方法和設(shè)備支持?jǐn)?shù)字存儲緩沖區(qū)。在本發(fā)明的某一方面,數(shù)字信號處理器接收互換指令,并通過將第一地址寄存器中的內(nèi)容與第二地址寄存器中的內(nèi)容進(jìn)行對換而對互換指令做出響應(yīng)。在另一方面,數(shù)字信號處理器接收互換指令,根據(jù)互換指令在未來文件中將第一地址寄存器中的內(nèi)容與第二地址寄存器中的內(nèi)容進(jìn)行對換,并為處于執(zhí)行流水線下游的結(jié)構(gòu)文件生成一個或多個控制信號,同時根據(jù)一個或多個控制信號將結(jié)構(gòu)文件中第一地址寄存器中的內(nèi)容與第二地址寄存器中的內(nèi)容進(jìn)行對換。
文檔編號G06F9/38GK1650257SQ03809763
公開日2005年8月3日 申請日期2003年4月30日 優(yōu)先權(quán)日2002年5月1日
發(fā)明者拉維·普拉塔仆·思恩赫 申請人:模擬裝置公司