国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      指令的尋址范圍相關并行化的數據處理設備的制作方法

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


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