新四季網

處理器、協處理器、信息處理系統及其方法

2023-05-26 12:35:56

專利名稱:處理器、協處理器、信息處理系統及其方法
技術領域:
本發明涉及信息處理系統,並且具體地,涉及用於執行由不具有操作數的多個指 令形成的指令序列的處理器、協處理器、信息處理系統以及用於控制處理器、協處理器和信 息處理系統的方法。
背景技術:
微處理器具有基本的運算指令(基本指令)。通過組合多個指令,微處理器可以 執行期望的操作。為了改善用於具體應用的微處理器的性能,可以添加提供多個所選擇的 指令的操作的新指令。也就是,通過將多個指令組合為單一指令,可以得到壓縮指令的優 點。因此,可以提高性能。這是因為減少了所需處理周期(cycle)的數量,並減少了指令的 數量。即使當將多個指令成群為單一指令時,仍可以在與基本指令所需的周期數量(通常 一個周期)相同的周期數量內執行指令,如果處理負載不是太高的話。然而,如果處理負載 高,則即使在將多個指令組合為單一指令之後,指令的周期的數量也可能與多個指令所需 的處理周期的數量相同。即使在這樣的情況下,仍減少了指令的數量,因此,可以得到可以 減少處理周期的數量的如下三個優點。第一優點是在具有指令高速緩存(cache)的處理器中,可以增加可以針對一個指 令高速緩存線而定義的處理量。通常,主要指令高速緩存的容量是幾KB。如果將執行大量 處理的指令序列取到有限的容量中,則相比於僅僅使用基本指令的情況,可以得到與增大 容量時得到的相同的優點。因此,可以增大高速緩存命中率(hit rate),因此,可以減少處 理周期的數量(增大指令高速緩存命中率的優點)。第二優點是通過循環展開(loop unroll),可以減少循環處理指令(例如,分支指 令)的數量,因此,可以減少處理周期的數量。在循環處理中,大約需要四個指令用於循環 條件變量初始化、循環條件變量更新、循環條件變量比較以及分支。例如,在下面討論四個 循環處理。如果循環包括5條基本指令,則生成20條指令(5條指令乂4個循環)。在這之 後,去除4條循環處理指令。因此通過循環展開來生成總共16條指令。相反,當將五條基 本指令組合為單一指令時,僅僅生成包括用於循環的4條單一指令的四個指令。在這樣的 情況下,指令的數量小於在執行循環展開之前的五條指令、即四個循環處理指令加上將被 循環的指令。通常,流水線處理器(pipeline processor)被設計來使得分支指令具有比正 常指令多的周期的數量,因為分支指令導致分支操作。因此,即使當指令的數量比循環展開 之前的指令的數量大時,仍可以減少處理周期的數量,因為減少了分支指令的執行數(當 利用循環展開時獲得的優點)。第三優點是減少了用於取出(fetch)指令的總線訪問數,因為減少了程序大小。 因此,可以減小總線的擁塞程度,因此,可以減小在多處理器系統中指令取出和數據取出的 訪問等待時間。也就是,可以間接減少處理周期的數量(減少總線流量的優點)。如上所述,將多個指令組合為單一指令的優點是明顯的。然而,所組合的指令的數 量受限,因為操作碼的位數量受限,並且減小了指令解碼器(decoder)的處理速度。因此,通過對每個應用提供一定數量的成群(grouped)指令,可以實現對特定應用具有改善性能 的處理器。另外,最近幾年,開發了執行不具有操作數的指令的計算機(例如,堆棧機(stack machine)和隊列機(queue machine)).例如,開發了在圖形對象協處理器的像素組合模塊 中使用堆棧機的信息處理裝置(例如,參見日本未實審專利申請公開No. 2001-005776並且 特別是圖9)。

發明內容
在上述現有技術中,通過將多個指令組合為單一指令、或者在堆棧機或隊列機中 使用不具有操作數的指令,可以壓縮指令,因此,可以減少處理周期的數量。然而,即使當使用這樣的技術壓縮指令時,也需要分支指令,以提供處理的分支。 因此,需要以某種方式來保持或生成分支地址。另外,如果在分支地址上沒有強加限制,則 很難在指令解碼之前確定分支地址的候選者。因此,很難有效地預取出分支目的地。因此,本發明提供了通過限制分支指令的分支目的地來增加壓縮指令的效率的技 術。為了解決上述問題,根據本發明的實施例,一種處理器包括指令緩衝器,用於將 由不具有操作數的多個指令形成的指令序列分離為多個段,並存儲這些段;數據保存單元, 用於保存將通過使用多個指令處理的數據;解碼器,用於參考保存在數據保存單元中的數 據,並逐個從位於指令序列的頂部處的指令順序地解碼這些指令中的至少一個;指令執行 單元,用於根據由解碼器執行的解碼的結果,執行指令;以及指令序列更新控制單元,用於 根據由解碼器執行的解碼的結果,控制指令序列的更新。當所解碼的頂部指令是分支指令 時,如果發生分支,則指令序列更新控制單元更新指令序列,使得這些段中的任何一個的頂 部指令變得位於指令序列的頂部處,以及如果不發生分支,則指令序列更新控制單元更新 指令序列,使得緊跟在分支指令之後的下一個指令變得位於指令序列的頂部處。以這種方 式,可以提供將分支目的地限制到段的頂部的優點。可以將分支指令的分支目的地限制到在包括分支指令的段之前的段的頂部處的 指令。以這種方式,可以防止死鎖的發生。解碼器可以解碼與用於執行指令的功能有關的功能類型和與在執行指令之後的 指令序列的更新有關的執行類型,指令執行單元可以根據功能類型執行指令,以及指令序 列更新控制單元可以根據執行類型來控制指令序列的更新。以這種方式,可以根據功能類 型和執行類型來更新指令序列。解碼器可以參考保存在數據保存單元中的數據,並從位於指令序列的頂部處的指 令開始順序地解碼多個指令,以及指令執行單元可以同時執行與根據功能類型確定的數量 相等的多個指令。指令序列更新控制單元可以控制指令序列的更新,使得從指令緩衝器輸 出與根據執行類型確定的數量相等的數量的指令。以這種方式,可以通過收攏(fold)來執 行指令。指令序列更新控制單元具有如下功能逐個偏移多個段中僅僅頂部段的指令,並 保存狀態標籤,其指示被包含在頂部段中的每個指令是否僅僅被保存在頂部段中。存儲在數據保存單元中的數據可以包括堆棧,以及當完成指令序列的執行時,可以輸出保存在堆棧的頂部處的數據項。在這樣的情況下,堆棧可以具有預定數量的級 (stage),如果向堆棧輸入超過預定數量的級的多個數據項,則從保存在堆棧的底部處的數 據項開始,數據項可以消失。以這種方式,可以限制堆棧的級數。保存在數據保存單元中的數據包括隊列,以及當完成指令序列的執行時,可以輸 出保存在隊列的尾部處的數據項。該處理器還可以包括數據格式指定單元,用於指定當完成指令序列的執行時輸出 的數據項的格式。根據本發明的另一實施例,提供了一種協處理器和包括該協處理器的信息處理系 統。該協處理器包括指令緩衝器,用於從更高層處理器接收由不具有操作數的多個指令形 成的指令序列,將這些指令分離為多個段,並存儲這些段;數據保存單元,用於保存將通過 使用多個指令處理的數據;解碼器,用於參考保存在數據保存單元中的數據,並從位於指令 序列的頂部處的指令順序地解碼這些指令中的至少一個;指令執行單元,用於根據由解碼 器執行的解碼的結果來執行指令;指令序列更新控制單元,用於根據由解碼器執行的解碼 的結果來控制指令序列的更新;以及輸出單元,用於當完成指令序列的執行時,輸出保存在 數據保存單元中的數據。當所解碼的頂部指令是分支指令時,如果發生分支,則指令序列更 新控制單元更新指令序列,使得這些段中的任何一個的頂部指令變得位於指令序列的頂部 處,以及如果不發生分支,則指令序列更新控制單元更新指令序列,使得緊跟在分支指令之 後的下一個指令變得位於指令序列的頂部處。以這種方式,在協處理器執行的處理中,可以 提供將分支目的地限制到段的頂部的優點。根據本發明的再一實施例,提供了一種在處理器中使用的指令序列更新控制方 法。該處理器包括指令緩衝器,用於將由不具有操作數的多個指令形成的指令序列分離 為多個段,並存儲這些段;數據保存單元,用於保存將通過使用多個指令處理的數據;解碼 器,用於參考保存在數據保存單元中的數據,並從位於指令序列的頂部處的指令順序地譯 碼這些指令中的至少一個;指令執行單元,用於根據由解碼器執行的解碼的結果,執行指 令;以及指令序列更新控制單元,用於根據由解碼器執行的解碼的結果,控制指令序列的更 新。該方法包括如下步驟當所解碼的頂部指令是分支指令時,如果發生分支,則更新指令 序列,使得這些段中的任何一個的頂部指令變得位於指令序列的頂部處,以及如果不發生 分支,則更新指令序列,使得緊跟在分支指令之後的下一個指令變得位於指令序列的頂部 處。以這種方式,可以提供將分支目的地限制到段的頂部的優點。根據本發明,通過限制分支指令的分支目的地,可以提供壓縮指令的效率增大的 明顯優點。


圖1圖示了根據本發明的第一實施例的信息處理系統的示例配置;圖2圖示了根據本發明的第一實施例的微指令處理協處理器的示例配置;圖3A至3C圖示了根據本發明的第一實施例的存儲在微程序存儲器中的微程序的 例子結構;圖4圖示了根據本發明的第一實施例的微程序執行單元的示例配置;圖5A至5B圖示了根據本發明的第一實施例的存儲在工作寄存器中的工作數據的例子結構;圖6A至6D圖示了根據本發明的第一實施例的存儲在寫回格式寄存器中的寫回格 式和數據的處理之間關係的例子;圖7圖示了根據本發明的第一實施例的微指令緩衝器的示例配置;圖8圖示了根據本發明的第一實施例的四個指令緩衝器的示例配置;圖9圖示了根據本發明的第一實施例的段(segment)更新選擇器的示例配置;圖10圖示了根據本發明的第一實施例的信息處理系統的微指令集合的例子;圖IlA至IlC圖示了根據本發明的第一實施例的信息處理系統的分支指令的分支 目的地;圖12圖示了根據本發明的第一實施例的微指令緩衝器的狀態;圖13圖示了根據本發明的第一實施例的指令緩衝器狀態標籤的狀態轉換的例子 (當每個周期執行單一指令時);圖14圖示了根據本發明的第一實施例的指令緩衝器狀態標籤的狀態轉換的例子 (當每個周期執行最多兩個指令時);圖15圖示了根據本發明的第一實施例的指令緩衝器狀態標籤的狀態轉換的例子 (當每個周期執行最多三個指令時);圖16圖示了根據本發明的第一實施例的指令緩衝器狀態標籤的狀態轉換的例子 (當每個周期執行最多四個指令時);圖17圖示了根據本發明的第一實施例的微程序指令解碼器的配置的第一例子;圖18圖示了根據本發明的第一實施例的由功能類型確定單元的第一配置執行的 處理過程;圖19圖示了根據本發明的第一實施例的執行類型確定單元的第一配置的處理過 程;圖20圖示了根據本發明的第一實施例的微程序指令解碼器的配置的第二例子;圖21圖示了根據本發明的第一實施例的功能類型確定單元的第二示例配置的處 理過程(例子1);圖22圖示了根據本發明的第一實施例的功能類型確定單元的第二示例配置的處 理過程(例子2);圖23圖示了根據本發明的第一實施例的由功能類型確定單元的第二示例配置執 行的處理過程(例子3);圖M圖示了根據本發明的第一實施例的由執行類型確定單元的第二示例配置執 行的處理過程(例子1);圖25圖示了根據本發明的第一實施例的由執行類型確定單元的第二示例配置執 行的處理過程(例子2);圖沈圖示了根據本發明的第一實施例的由微指令集合中的NOP指令執行的數據 操作的例子;圖27圖示了根據本發明的第一實施例的由微指令集合中的DUP指令執行的數據 操作的例子;圖28圖示了根據本發明的第一實施例的由微指令集合中的POP指令執行的數據操作的例子;圖四圖示了根據本發明的第一實施例的由微指令集合中的P0PX2指令執行的數 據操作的例子;圖30圖示了根據本發明的第一實施例的由微指令集合中的ROT指令執行的數據 操作的例子;圖31圖示了根據本發明的第一實施例的由微指令集合中的R0T4指令執行的數據 操作的例子;圖32圖示了根據本發明的第一實施例的由微指令集合中的SWAP指令執行的數據 操作的例子;圖33圖示了根據本發明的第一實施例的由微指令集合中的SORT指令執行的數據 操作的例子;圖34圖示了根據本發明的第一實施例的由微指令集合中諸如NOT指令之類的第 一操作數運算指令執行的數據操作的例子;圖35圖示了根據本發明的第一實施例的由微指令集合中諸如EQ指令之類的第二 操作數運算指令執行的數據操作的例子;圖36圖示了根據本發明的第一實施例的由微指令集合中的SER指令執行的數據 操作的例子;圖37圖示了根據本發明的第一實施例的由微指令集合中的ONE指令或^RO指令 執行的數據操作的例子;圖38圖示了根據本發明的第一實施例的由微指令集合中的LDO指令執行的數據 操作的例子;圖39圖示了根據本發明的第一實施例的由微指令集合中的LDl指令執行的數據 操作的例子;圖40圖示了根據本發明的第一實施例的由微指令集合中的LD2指令執行的數據 操作的例子;圖41圖示了根據本發明的第一實施例的由微指令集合中的STO指令執行的數據 操作的例子;圖42圖示了根據本發明的第一實施例的由微指令集合中的STl指令執行的數據 操作的例子;圖43圖示了根據本發明的第一實施例的由微指令集合中的ST2指令執行的數據 操作的例子;圖44圖示了根據本發明的第一實施例的用於微指令集合的雙操作數 (two-operand)運算單元的配置的例子;圖45圖示了根據本發明的第一實施例的用於微指令集合的MIN(最小值)運算單 元的配置的例子;圖46圖示了根據本發明的第一實施例的用於微指令集合的MAX (最大值)運算單 元的配置的例子;圖47圖示了根據本發明的第一實施例的用於微指令集合的GT運算單元的配置的 例子;
圖48圖示了根據本發明的第一實施例的用於微指令集合的GE運算單元的配置的 例子;圖49圖示了根據本發明的第一實施例的用於微指令集合的EQ運算單元的配置的 例子;圖50圖示了根據本發明的第一實施例的用於微指令集合的SER運算單元的配置 的例子;圖51圖示了根據本發明的第一實施例的用於微指令集合的PAR運算單元的配置 的例子;圖52圖示了根據本發明的第一實施例的用於微指令集合的單操作數 (one-operand)運算單元的配置的例子;圖53圖示了根據本發明的第一實施例的用於微指令集合的ORLU運算單元的配置 的例子;圖M圖示了根據本發明的第一實施例的用於微指令集合的LU運算單元的配置的 例子;圖55A和55B圖示了根據本發明的第一實施例的DUP_ST0的收攏(folding)的例 子;圖56A和56B圖示了根據本發明的第一實施例的LD0_EQ_ST1的收攏的例子;圖57A和57B圖示了根據本發明的第一實施例的LD0_EQ_SWAP的收攏的例子;圖58圖示了根據本發明的第一實施例的用於信息處理系統的微程序的列表的例 子;圖59圖示了根據本發明的第一實施例的NULL微程序的分支路徑;圖60圖示了根據本發明的第一實施例的MEAN微程序的分支路徑;圖61圖示了根據本發明的第一實施例的MEDIAN3微程序的分支路徑;圖62圖示了根據本發明的第一實施例的MEDIAN4微程序的分支路徑;圖63圖示了根據本發明的第一實施例的MEDCND微程序的分支路徑;圖64圖示了根據本發明的第一實施例的MED3微程序的分支路徑;圖65圖示了根據本發明的第一實施例的SMOD微程序的分支路徑;圖66圖示了根據本發明的第一實施例的DBMD_FRM微程序的分支路徑;圖67圖示了根據本發明的第一實施例的DBMD_FLD微程序的分支路徑;圖68圖示了根據本發明的第一實施例的DBIDX微程序的分支路徑;圖69圖示了根據本發明的第一實施例的使用JP指令的第一範例(sample)的分 支路徑;圖70圖示了根據本發明的第一實施例的使用JP指令的第二範例的分支路徑;圖71圖示了根據本發明的第一實施例的更高層處理器的協處理器指令的列表的 例子;圖72A和72B圖示了根據本發明的第一實施例的指令格式的例子;圖73A至73E圖示了根據本發明的第一實施例的來自更高層處理器的用於指示執 行微程序的指令群的例子;以及圖74A和74B圖示了根據本發明的第二實施例的存儲在工作寄存器中的隊列寄存器的配置的例子。
具體實施例方式下面描述本發明的實施例。以如下順序進行描述1.第一實施例(包括堆棧機的示例配置)2.第二實施例(包括隊列機的示例配置)3.修改1.第一實施例信息處理系統的示例配置圖1圖示了根據本發明的第一實施例的信息處理系統的示例配置。信息處理系統 包括更高層處理器100、微指令處理協處理器200、指令高速緩存310、數據高速緩存320、 存儲器總線390和存儲器400。更高層處理器100位於比微指令處理協處理器200更高的層中。更高層處理器 100指示微指令處理協處理器200執行協處理器指令。更高層處理器100使用存儲在存儲 器400中的數據來執行處理。指令高速緩存310和數據高速緩存320使用存儲器總線390 在更高層處理器100和存儲器400之間相連。存儲器400保存由更高層處理器100執行的處理所需的指令和數據。在指令高速 緩存310和數據高速緩存320中保存在存儲器400中的一部分數據的拷貝。指令高速緩存 310是用於存儲更高層處理器100的指令(處理器指令)的高速緩存存儲器。數據高速緩 存320是用於存儲更高層處理器100處理指令所需的數據的高速緩存存儲器。處理器總線 390用於將存儲器400連接到指令高速緩存310和數據高速緩存320。更高層處理器100包括程序計數器更新單元110、處理器指令解碼器120、處理器 運算單元流水線130、通用寄存器文件140和負載存儲單元150。程序計數器更新單元110包括存儲當前執行的程序的指令(處理器指令)地址的 程序計數器。程序計數器更新單元110還包括用於更新程序計數器的電路。程序計數器更 新單元110響應於從處理器指令解碼器120發送的控制信號來更新程序計數器。存儲在程 序計數器中的地址被提供給指令高速緩存310,並用作指令取出地址。處理器指令解碼器120使用指令取出地址來解碼所取出的指令(處理器指令)。 作為由處理器指令解碼器120執行的解碼的結果,控制信號被提供給更高層處理器100的 各種部件。處理器運算單元流水線130是在更高層處理器100中執行運算操作的運算單元。 通用寄存器文件140存儲更高層處理器100的通用寄存器(GPR)。負載存儲單元150從存 儲器400裝載數據,並將數據存儲在存儲器400中。微指令處理協處理器200是在更高層處理器100的控制下操作的協處理器。當處 理器指令解碼器120檢測到協處理器指令時,指示微指令處理協處理器200經由協處理器 指令隊列210執行協處理器指令。將微指令處理協處理器200的執行結果經由寫回緩衝器 250寫回通用寄存器文件140。圖2圖示了根據本發明的第一實施例的微指令處理協處理器200的示例配置。微 指令處理協處理器200包括協處理器指令隊列210、協處理器指令解碼器220、微程序存儲器230、微程序執行單元240和寫回緩衝器250。協處理器指令隊列210是用於存儲從更高層處理器100遞交的協處理器指令的先 進先出(FIFO)隊列。順序地將被存儲在協處理器指令隊列210中的協處理器指令提供給 協處理器指令解碼器220。注意,存儲在協處理器指令隊列210中的協處理器指令不一定與 在更高層處理器100中使用的協處理器指令相同。例如,可以僅僅將通用寄存器所需的值 嵌入到協處理器指令隊列210中。協處理器指令解碼器220是解碼從協處理器指令隊列210提供的協處理器指令的 解碼器。作為由協處理器指令解碼器220執行的解碼操作的結果,生成微程序存儲器230 中的微程序號(MPID)、數據和控制信號。微程序存儲器230是用於存儲微程序組的存儲器。微程序存儲器230包括微程序 ROM 231和微程序寄存器A至IK232至23幻。微程序ROM 231是用於存儲預定微程序組的 存儲器。通常,微程序ROM 231是不可重寫的。相反,微程序寄存器A至IK232至235)用 作可以存儲可以由用戶定義的微程序組的存儲器。微程序寄存器A至IK232至23 通過 微程序更新指令是可重寫的。當從協處理器指令解碼器220接收微程序號時,微程序存儲 器230將存儲在相應地址處的微程序經由信號線239提供給微程序執行單元M0。微程序指令單元240執行從微程序存儲器230提供的微程序。微程序執行單元 240將執行的結果輸出給寫回緩衝器250。根據第一實施例,微程序執行單元240具有堆棧 機配置。注意,微程序執行單元240是在權利要求書中限定的指令執行單元。在下面更詳 細描述微程序指令單元M0。寫回緩衝器250是用於存儲從微程序執行單元240輸出的執行結果的緩衝器。寫 回緩衝器250將由微指令處理協處理器200執行的執行結果寫回到更高層處理器100的通 用寄存器文件140。圖3A至3C圖示了根據本發明的第一實施例的存儲在微程序存儲器230中的微 程序的例子結構。在該例子中,每個微程序包括16條微指令(miO至mil5)411、寫回格式 (mwf)418 和常數(ml2)419。每個微指令411具有5位數量據結構。從具有最小號(miO)的微指令開始順序地 執行微指令411。然而,如下所述,可以同時執行多個微處理器。如圖3A所述,四個微指令 411形成段。也就是,微指令#0至#3形成段#0。微指令#4至#7形成段#1。微指令#8至 #11形成段#2。微指令#12至#15形成段#3。如圖:3B所示,寫回格式(mwf)418具有2位數量據結構。寫回格式(mwf)418定 義了在將數據寫回到更高層處理器100時使用的數據格式。在下面更詳細描述寫回格式 (mwf)4180如圖3C所示,常數419具有32位數據結構。每個微指令參考用作常數數據的常 數 419。根據本發明的第一實施例,微程序執行單元240具有堆棧機配置。因此,操作數不 是必要的,以及分支地址的指定不是必要的。以這種方式,定義5位固定長度微指令。另外, 因為可以減小指令的長度、並且可以在簡化的工作寄存器中操縱數據,所以可以簡化電路。 因此,可以實現高頻率操作。圖4圖示了根據本發明的第一實施例的微程序執行單元240的示例配置。微程序執行單元240包括微指令緩衝器Ml、工作寄存器M2、微程序指令解碼器500、寫回格式 寄存器對3、運算單元M4-1至M4-N、選擇器M5、執行類型識別單元246和寫回數據處理 單元對7。微指令緩衝器241存儲從微程序存儲器230提供的微指令411中的16條微指令 411。將存儲在微指令緩衝器Ml中的微指令411經由信號線609提供給微程序指令解碼 器 500。工作寄存器242是用於存儲執行微程序所需的工作數據的寄存器。在下面更詳細 描述工作數據的示範性數據格式。注意,工作寄存器242是在權利要求書中限定的數據保 存單元的例子。微程序指令解碼器500解碼存儲在微指令緩衝器Ml中的微指令411。當微程序 指令解碼器500執行解碼操作時,參考存儲在工作寄存器M2中的工作數據。作為解碼操 作的結果,確定功能類型和執行類型。經由信號線519和5 輸出功能類型和執行類型。功 能類型用於識別指令執行的功能。執行類型是與微指令緩衝器241的更新以及在執行指令 之後的數據的寫回有關的類型。注意,微程序指令解碼器500是在權利要求書中限定的譯 碼器的例子。寫回格式寄存器243是用於存儲從微程序存儲器230提供的微程序的寫回格式 418的寄存器。存儲在寫回格式寄存器對3中的寫回格式在完成微程序的執行之前保持不 變。當完成微程序的執行時,將寫回格式提供給寫回數據處理單元對7。注意,寫回格式寄 存器243是在權利要求書中限定的數據格式指定單元的例子。運算單元244-1至244-N是可以並行地操作的N個SMD (單指令多數據)運算單 元。運算單元對4-1至對44可以執行不同功能類型的計算或者相同類型的計算。注意在 下文中,在恰當時將運算單元244-1至244-N統稱為「運算單元M4」。選擇器245是根據作為由微程序指令解碼器500執行的解碼操作的結果的功能類 型、選擇由N個運算單元244執行的計算的結果之一的選擇器。在這之後,選擇器245將所 選擇的一個結果提供給工作寄存器對2。如下所述,可以對於某功能類型,選擇多個計算結果。執行類型識別單元246識別作為由微程序指令解碼器500執行的解碼操作的結果 的執行類型。也就是,執行類型識別單元246確定執行類型是否指示代表微程序的執行完 成的RET指令。如果執行類型指示RET指令,則執行類型識別單元246指示寫回數據處理 單元247處理寫回數據。當執行類型識別單元246指示時,寫回數據處理單元247處理存儲在工作寄存器 242中的數據,並以寫回數據的形式將處理後的數據輸出給信號線M8。寫回數據處理單元 247根據從寫回格式寄存器243提供的寫回格式來處理數據。另外,當輸出有效寫回數據 時,從信號線249輸出寫回數據使能信號。圖5A和5B圖示了根據本發明的第一實施例的存儲在工作寄存器242中的工作數 據的例子結構。根據第一實施例,微程序執行單元240作為堆棧機的部件而操作。因此,工 作數據包括4級堆棧寄存器421至424以及每個具有32位長度的三個本地變量寄存器425 至427。可以同時讀和寫寄存器。分別將堆棧寄存器421至似4稱為「堆棧寄存器#0至#3(STK0至STK3) 」。將新的數據項推到具有更小號的堆棧寄存器。每次推入新的數據項,偏移所有數據項。也就是, 當沒有存儲數據項時,如果推入第一數據項,則將第一數據存儲在堆棧寄存器#0中。在這 之後,如果推入第二數據項,則將第一數據項偏移到堆棧寄存器#1中,並將第二數據項存 儲在堆棧寄存器#0中。以這種方式,每次執行推入操作,數據項向下偏移。當所有堆棧寄 存器#0至#3存儲數據項時,如果推入新的數據項,則所有數據項偏移。所以,存儲在堆棧 寄存器#3中的數據項消失。相反,當執行彈出操作時,輸出存儲在堆棧寄存器#0中的數據項。在這之後,所有 數據項向上偏移。存儲在堆棧寄存器#3中的數據項保持不變。當完成微程序的執行時,存儲在堆棧寄存器#(K421)中的數據項被提供給寫回數 據處理單元對7,並用於生成寫回數據。注意,堆棧寄存器421至424的集合是在權利要求書中限定的堆棧的例子。每個本地變量寄存器425至427代表用作單獨(stand-alone)寄存器的區域。可 以使用裝載微指令將每個本地變量寄存器425至427中的值推到堆棧寄存器#0。另外,每 個本地變量寄存器425至427可以使用存儲微指令,來存儲從堆棧寄存器#0彈出的值。本 地變量寄存器427是專用(special)寄存器。當從微程序存儲器230提供微程序時,將包 括在微程序中的常數(ml2) 419設置在本地變量寄存器427中。因此,可以由微指令411使 用常數419。圖6A至6D圖示了根據本發明的第一實施例的存儲在寫回格式寄存器243中的寫 回格式和數據的處理之間的關係的例子。在該例子中,寫回格式具有2位長度。因此,寫回 格式的值在「0」至「3」的範圍內。根據寫回格式,由寫回數據處理單元247對存儲在堆棧 寄存器#0中的32位數據STKO執行如下數據處理。首先,當寫回格式代表「0」時,直接將存儲在堆棧寄存器#0中的數據STKO[31:0] 輸出作為寫回數據。可替代地,當寫回格式代表「1」時,用「0」填充在數據STK0[31:0]中的 從第8位到第15位的八個位以及從第沈位到第31位的八個位。在這之後,將該值輸出作 為寫回數據。再一可替代地,當寫回格式代表「2」時,將具有與STK[15:0]的相同的較低16 位和為「0」的較高16位的值輸出作為寫回數據。又一可替代地,當寫回格式代表「3」時, 將具有與STKO[31:16]的相同的較低16位和為「0」的較高16位的值輸出作為寫回數據。 以這種方式,可以根據期望的數據格式得到計算的結果而無需由更高層層處理器100執行 的額外計算。圖7圖示了根據本發明的第一實施例的微指令緩衝器241的示例配置。微指令緩 衝器Ml包括存儲微指令的序列的指令緩衝器610和更新微指令的指令序列的指令序列更 新控制單元601。指令緩衝器610包括分別用於四個段#0至#3的指令緩衝器610-0至610_3。指 令緩衝器610-0至610-3的每個保存四個微指令。在下面更詳細地描述每個指令緩衝器 610-0至610-3的配置。指令序列更新控制單元601包括段更新選擇器620、執行類型識別單元630和選 擇器 640-0 至 640-3。段更新選擇器620是用於從存儲在指令緩衝器610-0至610_1中的八條微指 令segO和segl中選擇作為隨後將被存儲在指令緩衝器610_0中的候選者的四個微指令nsegO的選擇器。也就是,將由段更新選擇器620更新的段是段#0。在下面更詳細地描述 段更新選擇器620的配置的例子。執行類型識別單元630識別作為由微程序指令解碼器500執行的解碼操作的結果 的執行類型。也就是,如果執行類型指示作為有條件分支指令的BR指令,則執行類型識別 單元630將具有值「2」的選擇信號segsft提供給選擇器640-0至640-3。然而,如果執行 類型是作為無條件分支指令的JP指令,則執行類型識別單元630將具有值「1」的選擇信號 segsft提供給選擇器640-0至640-3。否則,執行類型識別單元630將具有值「O」的選擇 信號segsft提供給選擇器640-0至640-3。選擇器640-0至640-3是用於選擇將在隨後被存儲在指令緩衝器610_0至610_3 中的四個微指令的選擇器。將四個RET指令輸入到選擇器640-2至640-3中的每一個。在 下面,與分支類型的描述一起來詳細描述該操作。微指令緩衝器241從與段#0相應的指令緩衝器610-0中的頂部順序地將微指令 經由信號線609提供給微程序指令解碼器500。圖8圖示了根據本發明的第一實施例的每個指令緩衝器610-0至610-3的示例配 置。指令緩衝器610-0至610-3的每個包括四個選擇器611-a至611-d以及四個寄存器 612-a 至 612-d。選擇器611-a至611_d的每個是用於選擇從微程序存儲器230提供的微指令和來 自選擇器640-0至640-3的輸出的集合中的一個的選擇器。從協處理器指令解碼器220經 由信號線2 提供用於選擇器611-a至611-d的選擇信號。寄存器612-a至612-d分別存儲由選擇器611-a至611-d選擇的5位微指令。分 別經由信號線619-0至619-3輸出存儲在寄存器612-a至612_d中的微指令。圖9圖示了根據本發明的第一實施例的段更新選擇器620的示例配置。段更新選 擇器620是用於從存儲在指令緩衝器610-和610-1中的八條微指令segO和segl中選擇 作為將在隨後被存儲在指令緩衝器610-0中的候選者的四個微指令nsegO。段更新選擇器 620包括指令緩衝器狀態標籤621、指令緩衝器狀態標籤轉換確定單元622和選擇器623。指令緩衝器狀態標籤621是用於指示存儲在指令緩衝器610-0中的四個微指令中 的每一個是否是僅僅存儲在指令緩衝器610-0中的指令。通常,指令緩衝器610-0存儲該 段#0的微指令,以及指令緩衝器610-1存儲該段#1的微指令。然而,如下所述,為了簡化 偏移操作,可能發生例外狀態。因此,對於存儲在指令緩衝器610-0中的四個微指令,提供 指令緩衝器狀態標籤621來確定該微指令是否還存儲在指令緩衝器610-1至610-3中。指令緩衝器狀態標籤轉換確定單元622根據指令緩衝器狀態標籤621的值和由微 程序指令解碼器500解碼的執行類型來確定指令緩衝器狀態標籤621的更新值。另外,指 令緩衝器狀態標籤轉換確定單元622確定針對選擇器623的偏移量。在該例子中,執行類 型指示在作為有條件分支指令的BR指令中發生分支。在下面更詳細描述由指令緩衝器狀 態標籤轉換確定單元622引起的轉換。選擇器623是用於選擇偏移操作的選擇器,其中根據由指令緩衝器狀態標籤轉換 確定單元622確定的偏移量來偏移存儲在指令緩衝器610-0和610-1中的八條微指令。選 擇器623的輸出被輸入到選擇器640-0的輸入「0」。微指令緩衝器的狀態轉換圖10圖示了根據本發明的第一實施例的信息處理系統的微指令集合的例子。在該例子中,提供了 32種類型的微指令。在圖10的「堆棧狀態」中,在「= >」的左側示出了在 執行微指令之前的堆棧狀態,並在「= >,,的右側示出了在執行了微指令之後的堆棧狀態。 在每個堆棧狀態中,堆棧的頂部在右側。項目「操作」指示在微指令中如何執行該處理。項 目「功能類型」指示通過使用指令執行的功能的類型。RET指令(指令代碼=0)是用於完成當前執行的微程序的返回指令。RET指令是 無條件分支指令之一。即使在執行RET指令之後,堆棧狀態保持不變。JP指令(指令代碼 =1)是跳轉到位於當前執行的段的下一段的頂部處的微指令的無條件分支指令。在執行 JP指令之後,堆棧狀態保持不變。注意,RET指令和JP指令的功能類型是「NOP」,其指示基 本上不操縱數據的指令。BR指令(指令代碼=2)是如果發生分支、則分支到位於當前之段前兩段的段的 頂部處的微指令的有條件分支指令。BP指令的功能類型是「POP」,其指示數據操縱正從堆 棧寄存器彈出(pop)數據。也就是,為了確定是否發生分支,從堆棧寄存器彈出一個數據項 (Ni)。如果所彈出的數據項(Ni)的LSB是「1」,則發生分支。然而,如果所彈出的數據項 (Ni)的LSB是「0」,則不發生分支。NOT指令(指令代碼=3)是反相32位數據的較高16位數據和較低16位數據的 每個的邏輯值的邏輯反相指令。從堆棧寄存器彈出32位數據項(Ni)。在這之後,將32位 執行結果數據(Rl)推入到堆棧寄存器上。注意,在NOT指令之後的指令的功能類型與指令 的名稱相同。功能類型指示如何處理數據。NEG指令(指令代碼=4)是反相32位數據的較高16位數據和較低16位數據中 每一個的符號的符號反相指令。從堆棧寄存器彈出32位數據項(Ni)。在這之後,將32位 執行結果數據(Rl)推入到堆棧寄存器上。ABS指令(指令代碼=5)是用於生成32位數據的較高16位數據和第16位數據 中的每一個的絕對值的指令。從堆棧寄存器彈出32位數據項(Ni)。在這之後,將32位執 行結果數據(Rl)推入到堆棧寄存器上。MUL2指令(指令代碼=6)是對32位數據的較高16位數據和較低16位數據中的 每一個執行1位運算左移的雙倍值生成指令。從堆棧寄存器彈出32位數據項(Ni)。在這 之後,將32位執行結果數據(Rl)推入到堆棧寄存器上。DIV2指令(指令代碼=7)是對32位數據的較高16位數據和較低16位數據中的 每一個執行1位運算右移的減半值生成指令。從堆棧寄存器彈出32位數據項(Ni)。在這 之後,將32位執行結果數據(Rl)推入到堆棧寄存器上。ORLU指令(指令代碼=8)是生成32位數據的較高16位數據和較低16位數據的 邏輯和、分配得到的結果作為32位數據的較高16位數據和較低16位數據、並輸出32位數 據的邏輯求和分配指令。也就是,邏輯地對多個運算單元的結果值求和,並將得到的值視為 所有運算單元的結果值。從堆棧寄存器彈出32位數據項(Ni)。在這之後,將32位執行結 果值(Rl)推入到堆棧寄存器上。LU指令(指令代碼=9)是分配32位數據的較低16位數據作為32位數據的較高 16位數據和較低16位數據並輸出32位數據的分配指令。從堆棧寄存器彈出32位數據項 (Ni)。在這之後,將32位執行結果數據(Rl)推入到堆棧寄存器上。GT指令(指令代碼=10)是將32位數據項(Ni)的較低16位數據和32位數據項(擬)的較低16位數據相比較、並將32位數據項(Ni)的較高16位數據和32位數據項 (N2)的較高16位數據相比較的運算比較指令。如果m>N2,則輸出「1」。反之,輸出「0」。 從堆棧寄存器彈出兩個32位數據項(首先N2,然後W)。在這之後,將32位執行結果數據 (Rl)推入到堆棧寄存器上。GE指令(指令代碼=11)是將32位數據項(Ni)的較低16位數據和32位數據 項(擬)的較低16位數據相比較、並將32位數據項(Ni)的較高16位數據和32位數據項 (N2)的較高16位數據相比較的運算比較指令。如果附彡N2,則輸出「1」。反之,輸出「0」。 從堆棧寄存器彈出兩個32位數據項(首先N2,然後W)。在這之後,將32位執行結果數據 (Rl)推入到堆棧寄存器上。EQ指令(指令代碼=12)是將32位數據項(Ni)的較低16位數據和32位數據 項(擬)的較低16位數據相比較、並將32位數據項(Ni)的較高16位數據和32位數據項 (N2)的較高16位數據相比較的運算比較指令。如果附=N2,則輸出「1」。反之,輸出「0」。 從堆棧寄存器彈出兩個32位數據項(首先N2,然後W)。在這之後,將32位執行結果數據 (Rl)推入到堆棧寄存器上。AND (與)指令(指令代碼=13)是生成32位數據項(Ni)的較低16位數據和32 位數據項(擬)的較低16位數據的邏輯與(AND)、並生成32位數據項(Ni)的較高16位數 據和32位數據項(擬)的較高16位數據的邏輯與的邏輯與生成指令。從堆棧寄存器彈出 兩個32位數據項(首先N2,然後W)。在這之後,將32位執行結果數據(Rl)推入到堆棧 寄存器上。OR指令(指令代碼=14)是生成32位數據項(Ni)的較低16位數據和32位數據 項(擬)的較低16位數據的邏輯或(OR)、並生成32位數據項(Ni)的較高16位數據和32 位數據項(擬)的較高16位數據的邏輯或的邏輯或生成指令。從堆棧寄存器彈出兩個32位 數據項(首先N2,然後W)。在這之後,將32位執行結果數據(Rl)推入到堆棧寄存器上。XOR指令(指令代碼=15)是生成32位數據項(Ni)的較低16位數據和32位數 據項(N2)的較低16位數據的邏輯異或(exclusive logical OR)、並生成32位數據項(Ni) 的較高16位數據和32位數據項(擬)的較高16位數據的邏輯異或的邏輯異或生成指令。 從堆棧寄存器彈出兩個32位數據項(首先N2,然後W)。在這之後,將32位執行結果數據 (Rl)推入到堆棧寄存器上。ADD指令(指令代碼=16)是執行32位數據項(Ni)的較低16位數據和32位數 據項(擬)的較低16位數據的運算加法、並執行32位數據項(Ni)的較高16位數據和32位 數據項(擬)的較高16位數據的運算加法的運算加法指令。從堆棧寄存器彈出兩個32位 數據項(首先N2,然後W)。在這之後,將32位執行結果數據(Rl)推入到堆棧寄存器上。SUB指令(指令代碼=17)是在32位數據項(Ni)的較低16位數據和32位數據 項(擬)的較低16位數據之間執行運算減法、並在32位數據項(Ni)的較高16位數據和32 位數據項(擬)的較高16位數據之間執行運算減法(m-擬)的運算減法指令。從堆棧寄存 器彈出兩個32位數據項(首先N2,然後W)。在這之後,將32位執行結果數據(Rl)推入 到堆棧寄存器上。PAR指令(指令代碼18)是將32位數據項(Ni)的較低16位數據與32位數據項 (N2)的較低16位數據相組組合輸出32位數據項的封裝指令。從堆棧寄存器彈出兩個32位數據項m和N2(首先N2,然後Ni)。在這之後,將32位執行結果數據(Rl)推入到堆棧 寄存器上。通常,從堆棧的頂部順序地彈出多個數據項。將數據項的預定位位置處的數據 或預定堆棧的數據項被連結(concatenate)為一個數據項,將該數據項推入堆棧頂部。DUP指令(指令代碼=19)是從堆棧寄存器彈出32位數據項(Ni)、並將數據項兩 次推入堆棧寄存器、使得堆疊了兩個32位數據項(Rl和似)的拷貝指令。SER指令(指令代碼=20)是檢索32位數據項(Ni)的較高16位、將該16位用作 32位數據項(Rl)的較高16位、檢索數據項(Ni)的較低16位、並將該16位用作另一 32位 數據項(似)的較高16位或較低16位的封裝指令。從堆棧寄存器彈出用作源的32位數據 項(Ni)。在這之後,將兩個32位執行結果數據項(Rl和似)推入堆棧寄存器(首先R1,然 後似)。通常,堆棧的頂部處的數據項被分離為多個數據項,並以預定方式處理每個分離的 數據項。在這之後,將數據項順序地推入到堆棧頂部上。ROT指令(指令代碼=21)是從堆棧寄存器彈出三個32位數量據項、並執行三次 推入操作、使得將底部處的數據項偏移到第三位置的旋轉指令。SWAP指令(指令代碼=22)是從堆棧寄存器彈出兩個32位數據項、並執行兩次推 入操作、使得在堆棧寄存器中交換(exchange)數據項的交換(swap)指令。SORT指令(指令代碼=2 是將32位數據項(Ni)的較高16位數據和32位數據 項(擬)的較高16位數據相比較、並將32位數據項(Ni)的較低16位數據和32位數據項 (N2)的較低16位數據相比較的挑選(sort)指令。在這之後,較小者用作執行結果數據R1, 以及較大者用作執行結果數據R2。從堆棧寄存器彈出兩個32位數量據項(首先N2,然後 Ni).在這之後,將兩個執行結果數據項Rl和R2推入到堆棧寄存器上(首先R1,然後R2)。 也就是,彈出堆棧寄存器的頂部處的數據項和頂部第二的數據項。使用兩者之間的大小關 系來選擇兩個數據項之一。在這之後,推入沒有選擇的數據項,之後,推入選擇的數據項。^RO指令(指令代碼=24)是將具有為「0」的較高16位和為「0」的較低16位的 32位數據項額外地推入堆棧寄存器中的零推入指令。ONE指令(指令代碼=25)是將具有 為「1」的較高16位和為「1」的較低16位的32位數據項額外地推入堆棧寄存器中的一推 入指令。LDO指令(指令代碼=26)是將存儲在本地寄存器#(K425)中的值額外地推入堆 棧寄存器中的裝載0指令。LDl指令(指令代碼=27)是將存儲在本地寄存器#1(426)中 的值額外推入堆棧寄存器的裝載1指令。LD2指令(指令代碼=28)是將存儲在本地寄存 器#2(427)中的值額外推入堆棧寄存器中的裝載2指令。STO指令(指令代碼=29)是將從堆棧寄存器彈出的數據存儲到本地變量寄存器 #0(425)中的存儲0指令。STl指令(指令代碼=30)是將從堆棧寄存器彈出的數據存儲 到本地變量寄存器#1(426)中的存儲1指令。ST2指令(指令代碼=31)是將從堆棧寄存 器彈出的數據存儲到本地變量寄存器#2(427)中的存儲2指令。圖IlA至IlC圖示了根據本發明的第一實施例的信息處理系統中的分支指令的分 支目的地的例子。如上所述,微程序包括四個段和16條微指令。為了統一分支指令的操作, 提供兩個虛擬段。也就是,提供每個包括四個RET指令的段#4和段#5。然而,不需要將段 #4和#5存儲在微程序存儲器230中。如圖7所示,通過設計對於選擇器640-2和640-3的 某種類型的輸入,容易實現段#4和#5。
圖IlA圖示了當RET指令出現在微程序中時的分支目的地。從具有較小號的指令 到具有較大號的指令地執行普通指令。如果執行RET指令,則完成微程序。即使當第16微 指令是普通指令時,如果虛擬段#4的頂部是RET指令,則仍可以完成微程序。圖IlB圖示了當JP指令出現在微程序中時的分支目的地。從具有較小號的指令 到具有較大號的指令地執行普通指令。如果執行JP指令,則控制傳遞到下一段的頂部處的 微指令。即使當在段#3中執行JP指令時,如果虛擬段#4的頂部是RET指令,則可以完成 微程序。圖IlC圖示了當在微程序中發生BR指令的有條件分支時的分支目的地。從具有 較小號的指令到具有較大號的指令地順序執行普通指令。然而,如果發生BR指令的有條件 分支,則控制傳遞到該段之前兩段的段的頂部處的指令。即使當在段#2或#3中發生BR指 令的分支時,可以通過在虛擬段#3或#4的頂部處設置RET指令來完成微程序。也就是,通過使用BR指令來非隱式地指定分支目的地的微地址,即使當微程序中 的指令的數量增加時,分支指令的指定的變化仍是不必要的,因此,分支目的地地址的位數 量改變。因此,指示控制是傳遞到當前段之前一段的段的頂部還是當前段之前兩段的段的 頂部的單一規則的變化不是必要的。以這種方式,本發明的第一實施例可以提供微程序中 的指令的數量的擴展的可伸縮性。另外,根據本發明的第一實施例,因為段中的分支目的地僅僅具有三種類型,所以 可以有效執行預取(prefetch)。也就是,可以設計它來使得參考如下三個指令下一指令、 當前段之前一段的段的頂部處的指令、以及當前段之前兩段的段的頂部處的指令。因此,可 以簡化電路配置。此外,根據本發明的第一實施例,通過將BR指令的分支目的地限制為前向 (forward)分支目的地,可以防止死鎖。微程序寄存器232至235可以存儲用戶定義的微程 序。如果對於普通處理器指令允許後向(backward)分支,則可能發生由無限循環引起的死 鎖。因此,根據本發明的第一實施例,為了防止這樣的死鎖,在所有時刻僅僅允許前向分支 目的地。圖12圖示了根據本發明的第一實施例的微指令緩衝器Ml的狀態。根據執行類 型,在執行微指令之後微指令緩衝器Ml的狀態改變。xl、x2、x3和x4的執行類型分別指 示執行單一指令、同時執行兩個指令、同時執行三個指令以及同時執行四個指令。另外,執 行類型指示分支不發生。RET、JP和BR的執行類型分別指示當發生分支時的RET指令、JP 指令和BR指令的執行。當執行類型是xl、x2、x3、x4或RET時,除了第一段之外的段的狀態保持不變。在 執行期間僅僅第一段經受偏移操作。在偏移操作期間,將微指令從下一段偏移到第一段中。 即使在這樣的情況下,除了第一段之外的段保持不變。圖9所示的指令緩衝器狀態標籤621 中的每一個指示存儲在指令緩衝器610-0中的四個微指令的相應一個是否是僅僅存儲在 指令緩衝器610-0中的指令。以這種方式,每次執行指令時,不執行整個微指令緩衝器241中的偏移。因此,可 以使用指令緩衝器狀態標籤621,將第一段與其他段相區分,直到逐段地執行偏移操作。圖13至16圖示了根據本發明的第一實施例的指令緩衝器狀態標籤621的狀態轉 換的例子。在圖13至16中,在段更新選擇器620中,格式A指示執行類型,格式B指示在逐段的偏移操作的數量,以及格式C指示逐個微指令的偏移操作的數量。在格式A中,執行 類型「BR1」指示將在BR指令中發生分支。在格式B中,「0」指示不執行逐段的偏移,以及 「1」指示以一段為單位執行逐段偏移。「2」指示以兩段為單位執行逐段偏移。在格式C中, 「0」指示不執行逐個微指令的偏移,以及「1」指示以一個微指令為單位執行逐個微指令的偏 移。「 2 」指示以兩個微指令為單位執行逐個微指令的偏移。在圖13中,每個周期執行一個指令。在圖14中,每個周期執行最多兩個指令。在 圖15中,每個周期執行最多三個指令。在圖16中,每個周期執行最多四個指令。在可同時 執行的微指令的最大數量以及電路維度和最大操作頻率中的每一個之間存在折中。因此, 根據使用環境來確定可同時執行的微指令的最大數量。如圖13所示,隨著分支數減少,電 路變得更簡單,電路維度變得更小,並且最大操作頻率變得更高。下面描述當每個周期執行 單一指令時和當每個周期執行最多三個指令時執行的微指令的解碼。微指令的解碼圖17圖示了根據本發明的第一實施例的微程序指令解碼器500的配置的第一例 子。在配置的第一例子中,每個周期執行單一指令。微程序指令解碼器500的配置的第一 例子包括功能類型確定單元510和執行類型確定單元520。功能類型確定單元510用於確定與指令的執行的功能有關的功能類型。在配置的 第一例子中,功能類型確定單元510使用在微指令緩衝器241的頂部處的第一指令i0 (501) 和從堆棧寄存器彈出的數據項(50 來確定功能類型519。執行類型確定單元520用於確定與執行指令之後微指令緩衝器241的更新和寫回 有關的執行類型。在配置的第一例子中,執行類型確定單元520使用在微指令緩衝器241 的頂部處的第一指令i0(501)和從堆棧寄存器彈出的數據項(50 確定執行類型529。圖18圖示了根據本發明的第一實施例的由功能類型確定單元510的第一配置執 行的處理過程。首先,確定微指令緩衝器Ml的頂部處的第一指令i0(501)的指令代碼(步驟 S911)。如果指令iO是RET指令或JP指令,則將功能類型確定為「NOP」 (步驟S914)。當指令iO是BR指令時,如果從堆棧寄存器彈出的數據項(505)的LSB是「1」(步 驟S912),則將功能類型確定為「POP」 (步驟S913)。然而,當指令 0是BR指令時,如果從 堆棧寄存器彈出的數據項(505)的LSB是「0」(步驟S912),則將功能類型確定為「iO」(步 驟 S915)。如果指令iO是除了上述指令之外的指令(步驟S911),則將功能類型確定為 「iO」(步驟S915)。注意,功能類型「iO」是指示每個周期執行單一指令的數據操作的功能類型。圖19圖示了根據本發明的第一實施例的由執行類型確定單元520的第一配置執 行的處理過程。首先,確定在微指令緩衝器Ml的頂部處的第一指令iO (501)的指令代碼(步驟 S921)。如果指令iO是RET指令,則將執行類型確定為「RET」(步驟S9M)。然而,如果指 令iO是JP指令,則將執行類型確定為「 Jp」 (步驟S925)。當指令iO是BR指令時,如果從堆棧寄存器彈出的數據項(505)的LSB是「1」(步 驟S922),則將執行類型確定為「BR」(步驟S923)。然而,當指令iO是BR指令時,如果從堆棧寄存器彈出的數據項(505)的LSB是「0」(步驟S922),則將執行類型確定為「xl」(步驟 S926)。如果指令i0是除了上述指令之外的指令(步驟S921),則將執行類型確定為 「xl」(步驟S擬6)。如上所述,當每個周期執行單一指令時,顯著簡化了指令解碼器。注意,步驟S923或S925是在權利要求書中限定的第一步驟的例子。另外,步驟 S926是在權利要求書中限定的第二步驟的例子。圖20圖示了根據本發明的第一實施例的微程序指令解碼器500的配置的第二例 子。在微程序指令解碼器500的配置的第二例子中,每個周期執行最多三個指令。微程序 指令解碼器500的配置的第二例子包括功能類型確定單元510、執行類型確定單元520和運 算單元530。在第二配置中,功能類型確定單元510參考位於從微指令緩衝器Ml的頂部開始 的三個指令iO至i2 (501至503)以及作為從頂部開始的第九指令的指令i8 (504)。另外, 功能類型確定單元510參考首先從堆棧寄存器彈出的數據項(505)、存儲在本地變量寄存 器#0中的數據項(507)以及運算單元530的輸出。通過參考這些數據項,功能類型確定單 元510可以確定功能類型519。另外,在配置的第二例子中,執行類型確定單元520參考作為從微指令緩衝器241 的頂部開始的第二指令的第二指令il (502)、第三指令i2 (50 和第九指令i8 (504)。此 外,執行類型確定單元520參考首先從堆棧寄存器彈出的數據項(50 、存儲在本地變量寄 存器#0中的數據項(507)以及運算單元530的輸出。通過參考這些數據項,執行類型確定 單元520可以確定執行類型529。當運算單元530在一個周期中執行GE、ORLU或BR時,運算單元530使用如下等式 來計算作為指示是否將發生分支的位的GE_ORLU W]GE_0RLU
= (STK1[15:0] >= STKO [15:0] ?1:0)(STK1[31:16] >= STKO[3116] ?1:0)GE_0RLU
用於確定下面描述的圖22和25所示的過程中的功能類型和執行類型。圖21至23圖示了根據本發明的第一實施例的由功能類型確定單元510的第二示 例配置執行的處理過程。圖對和25圖示了根據本發明的第一實施例的由執行類型確定單 元520的第二配置執行的處理過程。雖然在圖21至25中沒有提供詳細描述,但是可以看 到該配置的第二例子比該配置的第一例子複雜。在處理過程中,通過下劃線來指示執行收攏的指令圖案。在解碼的路徑中示出了 這樣的圖案。如在此使用的,術語「收攏」指多個指令的同時執行。例如,在ADD_DIV2_RET 的情況下,按照該順序排列微指令ADD指令、DIV2指令和RET指令,並且在一個周期中同時 執行這些指令。對於指令的每個組合,預先確定在一個周期中同時執行哪些指令。當在同時執行了除了分支指令之外的多個微指令之後執行RET指令時,在執行了 除了 RET指令之外的微指令之後完成微程序。當在同時執行了除了分支指令之外的多個微指令之後執行BR指令時,如果發生分支,則執行指令直到緊挨在BR指令之前的指令。下一 指令是BR指令。然而,如果不發生分支,則還執行BR指令。下一指令是緊跟在BR指令之 後的指令。當在同時執行了除了分支指令之外的多個微指令之後執行JP指令時,執行指令 直到緊挨在JP指令之前的指令。下一指令是包括JP段的段的下一段的頂部處的指令。圖沈至43圖示了根據本發明的第一實施例的由微指令集合中的每個微指令執行 的數據操作的例子。在圖26至43中,在上部示出了微指令的名稱。另外,STKO至SK3分 別指示在執行指令之前的堆棧寄寄存器421至424的值。LO至L2分別指示在執行指令之 前的本地變量寄存器425至427的值。另外,nSTKO至nSTK3分別指示在執行了指令之後 堆棧寄存器421至424的值。nLO至nL2分別指示在執行了指令之後本地變量寄存器425 至427的值。圖44至M圖示了根據本發明的第一實施例的用於微指令集合的運算單元的配置 的例子。每個運算單元接收第一次從堆棧寄存器彈出的數據項(STKO)或第二次彈出的數 據項(STKl)。運算操作與在圖10中所說明的那些相同。因此,不重複其描述。圖55至57圖示了根據本發明的第一實施例的收攏的例子。圖55A圖示了 DUP_ST0的收攏的例子。連結並重寫圖27所示的DUP指令和圖41 所示的ST0。另外,圖55B圖示了修改並優化圖55A所示的例子使得數據操作更加簡化的例 子。在DUP指令和STO指令之間,取消推入操作和彈出操作。因此,這樣的修改是可用的。 以這種方式,可以保留當順序執行指令時由於每次堆棧操作而消失的數據項。圖56圖示了 LD0_EQ_ST1的收攏的例子。圖57圖示了 LD0_EQ_SWAP的收攏的例 子。例如,在圖57A中,用STK2重寫STK3。然而,在圖57B中,保持STK3。因此,可以得到 當堆棧深度是5時與在執行計算之後的堆棧狀態相同的堆棧狀態。通過這樣的優化,當執行收攏時,通過僅僅推入由最後一個指令執行的計算的結 果,可以使得堆棧的深度看起來好像該深度大於實際深度。另外,如可以從圖55A和55B的比較、圖56A和56B的比較以及圖57A和57B的比 較中看到的,即使當執行收攏時,數據操作也不一定變得複雜。如圖55A和55B所示的例 子,通過僅僅用STKO重寫L0,操作變得比在執行收攏之前的DUP或STO簡單。這是堆棧機 的特點。微程序的例子圖58圖示了根據本發明的第一實施例的用於信息處理系統的微程序的列表的例 子。在微程序存儲器230中,將具有MPID 「0」至「11」的12種微程序預存儲(prestore) 在微程序ROM 231中。另外,用戶可以將具有MPID 「 12」至「 15」的4種微程序存儲在微程 序寄存器232至235中。圖58所示的微程序是可用於諸如MPEG2、VCl或H. 264之類的視 頻編解碼器的實際程序的例子。NUL微程序(MPID = 0、1和11)是無需執行數據操作而完成的微程序。當執行微 程序時,需要將符合接口的自變量(argument)推入到堆棧寄存器上或將自變量設置到本 地變量寄存器中。啟動微程序執行的更高層處理器100的指令可以一次僅僅將數據項傳輸 到通用寄存器RT和RS中。為了傳輸三個或更多的數據項,需要推入數據項。因此,提供僅 僅執行推入操作的宏指令,使得可以在執行之前設置三個或更多的自變量。為了使用啟動 微程序的執行的更高層處理器100的指令的機制來實現推入專用指令,使用NULL微程序。
21也就是,通過將MPID設置為「0」或「1」並使用NULL微程序,可以使用僅僅執行數據設置的 宏指令。MEAN微程序(MPID = 2)是計算某種類型的兩個運動向量的分量的平均值的微程 序。MEDIAN2微程序(MPID = 3)是計算某種類型的三個運動向量的分量的中間值的微程 序。MEDIAN4微程序(MPID = 4)是計算四個某類型運動向量的分量的中間值的微程序。MEDCND微程序(MPID = 5)是對MED3微程序(MPID = 6)執行預處理的微程序。 在預處理中,確定是否滿足例外處理的條件。MED3微程序是根據從MEDCND微程序輸出的結 果來計算某種類型的三個運動向量的分量的中間值的微程序。SMOD微程序(MPID = 7)是按照如下執行帶符號的取模(modulus)計算的微程序SMOD (A,b) = ((A+b)&Ob_l))-b DBMD_FRM微程序(MPID = 8)是執行與H. 264幀處理的解塊(deblocking)模式有 關的計算的微程序。DBMD_FLD微程序(MPID = 9)是執行與H. 264場(field)處理的解塊 模式有關的計算的微程序。DBIDX微程序(MPID = 10)是執行與H. 264解塊濾波器的參數 表格有關的索引計算的微程序。圖59至68圖示了根據本發明的第一實施例的圖58所示的每個微程序的分支路 徑。在圖59至68中的每張圖中,在左側部分示出了微程序的細節,並在右側部分示出了微 程序的分支路徑。執行類型被附接到分支路徑的每個分支。另外,在上部示出了工作寄存 器的狀態。在「= > 」的左側示出了在執行微程序之前的狀態,並在「= >,,的右側示出了 執行微程序之後的狀態。在每個堆棧狀態中,堆棧頂部位於右側。另外,在括號中示出了在 本地變量寄存器中設置的值。可以從該例子看到,即使對於實際微程序,最多三個指令的收攏也是可用的。通過 壓縮指令,可以執行有效的處理。圖69圖示了根據本發明的第一實施例的使用JP指令的第一範例的分支路徑。在 第一範例中,作為無條件分支指令的JP指令是有必要的。分支路徑是固定的。因此,即使 當在mi5、mi6和mi7中不存在將被處理的指令時,仍需要執行微程序。在這樣的情況下,通 過使用JP指令將控制分支到下一段,使得周期的數量最小化。圖70圖示了根據本發明的第一實施例的使用JP指令的第二範例的分支路徑。在 第二範例中,微程序不包括JP指令。當不使用JP指令時,可以安排三個NOP指令來調整。 然而,為了執行收攏,希望分配運算指令而不使用NOP指令。因此,因為通過執行ROT指令三 次來恢復數據,所以在該例子中消除了 NOP指令的使用。注意,在兩個NOP指令的情況下, 可以執行SWAP指令兩次。對更高層處理器的接口圖71圖示了根據本發明的第一實施例的更高層處理器100的協處理器指令的列 表的例子。記憶符號的前綴「cop_」指示該指令是協處理器指令。cop_setprg0和cop_setprgl是用於重寫微程序寄存器232至235的指令。cop_ push和COp_pUSh2是用於將存儲在通用寄存器中的數據推入堆棧寄存器421至4 中的指 令。在其記憶符號中包括「invoke(調用)」的其他指令是用於指示微指令處理協處理 器200執行微程序的指令。因為用於工作寄存器242的設計方法彼此不同,所以提供多種類型的指令。cop_invoke指令是用於指示微指令處理協處理器200執行與在指令中指定的 號MPID相應的微程序的指令。c0p_r0t4push_inv0ke指令是用於將更高層處理器100的寄 存器的值推入到堆棧上、在堆棧中檢索最老數據、將所檢索的最老數據推入堆棧的頂部、並 指示微指令處理協處理器200執行與號MPID相應的微程序的指令。copjnvokej指令是 用於使用更高層處理器100的寄存器的值來確定號MPID、並指示微指令處理協處理器200 執行與該號MPID相應的微程序的指令。COp_inVOke_C指令是用於彈出堆棧頂部處的值、使 用所彈出的值確定將被執行的微程序的號MPID、並指示微指令處理協處理器200執行與該 號MPID相應的微程序的指令。圖72A和72B圖示了根據本發明的第一實施例的更高層處理器100的指令格式的 例子。圖72A圖示了基本指令格式。基本指令格式具有包括操作碼(OPC)、讀操作數(RS和 RT)、功能(FUNC)、寫操作數(RD)和中間值(IMM5)的32位欄位結構。圖72B圖示了協處理器指令的指令格式。操作碼欄位指示協處理器指令(COP)。 功能欄位指示協處理器指令的類型(C0P_FUNC)。另外,中間值欄位可以指示微程序號 (MPID)。圖73A至73E圖示了根據本發明的第一實施例的用於由更高層處理器100指示微 程序的執行的指令群。圖73A圖示了用於執行MEDCND微程序和MED3微程序的協處理器指令。通過使用 cop_push2指令和cop_ldOpush_invoke指令,執行MEDCND微程序。另外,通過使用cop_ push2指令和cop_rot4push_invoke指令,執行MED3微程序。在該例子中,由MEDCND進行 條件確定,並將結果存儲在微指令處理協處理器200的工作寄存器242中。之後,將新的自 變量推入工作寄存器M2,並執行用於選擇三個值的中間值的中間過程。因為推入了新的自 變量,所以使用C0p_r0t4pUSh_inV0ke指令來在開始執行之前將MEDCND的執行結果偏移到 堆棧的頂部。圖7 圖示了用於執行MEAN2的協處理器指令。圖73C圖示了用於執行MEDIAN3 的協處理器指令。圖73D圖示了用於執行MEDIAN4的協處理器指令。圖73E圖示了用於使用rs_MPID的值在NULL、MEAN2、MEDIAN3和MEDIAN4之間切 換並執行所切換的那一個的協處理器指令。c0p_inV0ke_i^g令用於切換。當如圖58所示 分配微程序時,如果rs_MPID指示特定值「0」或「 1 」,則執行NULL微程序。因此,寫回堆棧 的頂部處的值。如果rs_MPID指示特定值「2」,則寫回MEAN2的執行結果。如果rs_MPID指 示特定值「3」,則寫回MEDIAN3的執行結果。如果rs_MPID指示特定值「4」,則寫回MEDIAN4 的執行結果。通常,當由更高層處理器100執行這樣的切換時,複雜的分支處理是必要的。 然而,在該例子中,僅僅四個指令實現了分支處理。注意,當使用作為緊挨在之前的微程序 的執行結果的STKO來進行相同MPID確定時,可以使用copjnvokej指令。如上所述,根據本發明的第一實施例,通過限制諸如JP指令、BR指令和RET指令 之類的分支指令的分支目的地,可以增加指令壓縮效率。另外,促進預取操作。此外,可以 防止死鎖。2.第二實施例在第一實施例中,微程序執行單元240被配置為堆棧機。然而,微程序執行單元 MO的配置不限於此。在如下第二實施例中,微程序執行單元240被配置為隊列機。注意,信息處理系統的基本配置與第一實施例的相同。因此,不重複基本配置的詳細描述。隊列機的基本概念圖74A和74B圖示了根據本發明的第二實施例的存儲在工作寄存器242中的隊列 寄存器的配置的例子。隊列機使用FIFO隊列來利用隊列寄存器。在該例子中,使用包括四 個隊列寄存器431至434的FIFO隊列。注意,隊列寄存器431至434是在權利要求書中限 定的隊列的例子。在堆棧機中,從堆棧的頂部彈出數據,並執行計算。在這之後,將計算的結果推入 堆棧的頂部上。相反,在隊列機中,從隊列的頭部輸出數據,並執行計算。在這之後,將計算 的結果輸入到隊列的尾部。以這種方式,執行處理。為了實現用作微程序執行單元MO的 工作寄存器M2的隊列,將隊列的頭部固定為隊列寄存器431,並將隊列的長度存儲在隊列 長度寄存器435中。因此,實現隊列機的功能。因此,通過使用工作寄存器M2中的隊列寄 存器431至434,可以實現與第一實施例相同的功能。也就是,根據本發明的第二實施例,通過將隊列機用作微程序執行單元MO的配 置,可以提供與第一實施例相同的優點。特別地,因為根據隊列的深度來優化隊列機,所 以隊列機具有如下優點隨著隊列的深度增大,可以更容易地提取出微指令層並行處理 (parallelism)。因此,隊列機更適合於諸如SIMD之類的並行計算。3.修改雖然參考利用堆棧機或隊列機來處理微指令的應用描述了本發明的實施例,但是 該技術不試圖限制微程序的這樣的應用。例如,本發明可應用到普通指令集合。另外,雖然參考在協處理器的執行單元中利用堆棧機或隊列機的應用描述了本發 明的實施例,但是該技術不試圖限於協處理器。例如,本發明可應用到普通處理器。所描述的本發明的實施例在所有方面僅僅被視為是說明性的而不是限制性的。如 在本發明的實施例中提請注意的,本發明實施例中的每個元件具有與權利要求中描述的本 發明的某特徵的相應性。類似地,在權利要求中描述的本發明的某特徵具有與具有相同名 稱的本發明實施例中的元件的相應性。然而,本發明不限於實施例,並且可以進行各種修改 而不脫離本發明的範圍。此外,在本發明的實施例中描述的處理過程可以被視為包括處理過程的一系列步 驟的方法,可以被視為導致計算機執行處理過程的一系列步驟的程序,或者可以被視為存 儲程序的記錄介質。記錄介質的例子包括壓縮盤(CD)、迷你盤(MD)、數字多功能盤(DVD)、 存儲卡、藍光碟(註冊商標名稱)。本申請包括與2009年12月28日提交給日本專利局的日本優先權專利申請JP 2009-297764中公開的主題相關的主題,通過參考將其全部內容組合於此。本領域技術人員應該理解的是,取決於設計要求和其他因素,可以發生各種修改、 組合、子組合和替代,只有它們在所附權利要求或其等價物的範圍內即可。
權利要求
1.一種處理器,包括指令緩衝器,用於將由不具有操作數的多個指令形成的指令序列分離為多個段,並存 儲這些段;數據保存單元,用於保存將通過使用所述多個指令處理的數據;解碼器,用於參考保存在所述數據保存單元中的數據,並逐個從位於指令序列的頂部 處的指令順序地解碼這些指令中的至少一個;指令執行單元,用於根據由所述解碼器執行的解碼的結果,執行指令;以及指令序列更新控制單元,用於根據由所述解碼器執行的解碼的結果,控制指令序列的更新;其中當所解碼的頂部指令是分支指令時,如果發生分支,則所述指令序列更新控制單 元更新指令序列,使得這些段中的任何一個的頂部指令變得位於指令序列的頂部處,以及 如果不發生分支,則所述指令序列更新控制單元更新指令序列,使得緊跟在所述分支指令 之後的下一個指令變得位於指令序列的頂部處。
2.根據權利要求1所述的處理器,其中將所述分支指令的分支目的地限制到在包括所 述分支指令的段之前的段的頂部處的指令。
3.根據權利要求2所述的處理器,其中所述解碼器解碼與用於執行指令的功能有關的 功能類型和與執行該指令之後更新指令序列有關的執行類型,以及其中所述指令執行單元 根據所述功能類型執行該指令,以及其中所述指令序列更新控制單元根據所述執行類型控 制指令序列的更新。
4.根據權利要求3所述的處理器,其中所述解碼器參考保存在所述數據保存單元中的 數據,並從位於指令序列的頂部處的指令開始順序地解碼多個指令,以及其中所述指令執 行單元同時執行與根據所述功能類型確定的數量相等的多個指令,以及其中所述指令序列 更新控制單元控制指令序列的更新,使得從所述指令緩衝器輸出與根據所述執行類型確定 的數量相等的多個指令。
5.根據權利要求4所述的處理器,其中所述指令序列更新控制單元具有逐個偏移多個 段中僅僅頂部段的指令的功能,並保存指示在所述頂部段中包含的每個指令是否僅僅被保 存在所述頂部段中的狀態標籤。
6.根據權利要求2所述的處理器,其中存儲在所述數據保存單元中的數據包括堆棧, 以及其中當完成指令序列的執行時,輸出保存在所述堆棧的頂部處的數據項。
7.根據權利要求6所述的處理器,其中所述堆棧具有預定數量的級,以及如果向所述 堆棧輸入超過所述預定數量的級的多個數據項,則從在所述堆棧的底部處保存的數據項開 始,數據項消失。
8.根據權利要求6所述的處理器,還包括數據格式指定單元,用於指定當完成指令序列的執行時輸出的數據項的格式。
9.根據權利要求2所述的處理器,其中保存在所述數據保存單元中的數據包括隊列, 以及其中當完成指令序列的執行時,輸出在所述隊列的尾部處保存的數據項。
10.根據權利要求9所述的處理器,還包括數據格式指定單元,用於指定當完成指令序列的執行時輸出的數據項的格式。
11.一種協處理器,包括指令緩衝器,用於從更高層處理器接收由不具有操作數的多個指令形成的指令序列,將這些指令分離為多個段,並存儲這些段;數據保存單元,用於保存將通過使用所述多個指令處理的數據; 解碼器,用於參考保存在所述數據保存單元中的數據,並逐個從位於指令序列的頂部 處的指令順序地解碼這些指令中的至少一個;指令執行單元,用於根據由所述解碼器執行的解碼的結果,執行指令; 指令序列更新控制單元,用於根據由所述解碼器執行的解碼的結果,控制指令序列的 更新;以及輸出單元,用於當完成指令序列的執行時,輸出保存在所述數據保存單元中的數據; 其中當所解碼的頂部指令是分支指令時,如果發生分支,則所述指令序列更新控制單 元更新指令序列,使得這些段中的任何一個的頂部指令變得位於指令序列的頂部處,以及 如果不發生分支,則所述指令序列更新控制單元更新指令序列,使得緊跟在所述分支指令 之後的下一個指令變得位於指令序列的頂部處。
12.一種信息處理系統,包括 更高層處理器;以及協處理器;其中所述更高層處理器向所述協處理器輸出由不具有操作數的多個指令形成的指令 序列,以及所述協處理器從所述更高層處理器接收所述指令序列,並當完成指令序列的執 行時,向所述更高層處理器輸出指令序列的執行的結果,以及其中所述協處理器包括指令 緩衝器,用於從所述更高層處理器接收由不具有操作數的多個指令形成的指令序列,將這 些指令分離為多個段,並存儲這些段;數據保存單元,用於保存將通過使用所述多個指令處 理的數據;解碼器,用於參考保存在所述數據保存單元中的數據,並從位於指令序列的頂部 處的指令順序地解碼這些指令中的至少一個;指令執行單元,用於根據由所述解碼器執行 的解碼的結果,執行指令;指令序列更新控制單元,用於根據由所述解碼器執行的解碼的結 果,控制指令序列的更新;以及輸出單元,用於當完成指令序列的執行時,輸出保存在所述 數據保存單元中的數據;以及其中當所解碼的頂部指令是分支指令時,如果發生分支,則所 述指令序列更新控制單元更新指令序列,使得這些段中的任何一個的頂部指令變得位於指 令序列的頂部處,以及如果不發生分支,則所述指令序列更新控制單元更新指令序列,使得 緊跟在所述分支指令之後的下一個指令變得位於指令序列的頂部處。
13.—種在處理器中使用的指令序列更新控制方法,所述處理器包括指令緩衝器,用 於將由不具有操作數的多個指令形成的指令序列分離為多個段,並存儲這些段;數據保存 單元,用於保存將通過使用所述多個指令處理的數據;解碼器,用於參考保存在所述數據保 存單元中的數據,並從位於指令序列的頂部處的指令順序地解碼這些指令中的至少一個; 指令執行單元,用於根據由所述解碼器執行的解碼的結果,執行指令;以及指令序列更新控 制單元,用於根據由所述解碼器執行的解碼的結果,控制指令序列的更新,所述方法包括第一步驟當所解碼的頂部指令是分支指令時,如果發生分支,則更新指令序列,使得 這些段中的任何一個的頂部指令變得位於指令序列的頂部處;以及第二步驟如果不發生分支,則更新指令序列,使得緊跟在所述分支指令之後的下一個 指令變得位於指令序列的頂部處。
全文摘要
一種處理器包括緩衝器,用於將不具有操作數的指令序列分離為多個段,並存儲這些段;數據保存器,用於保存將被處理的數據;解碼器,用於參考所述數據,並從序列的頂部順序地解碼這些指令中的至少一個;指令執行單元,用於執行指令;以及指令序列控制單元,用於根據解碼結果來控制指令序列的更新。當所解碼的頂部指令是分支指令時,如果發生分支,則指令序列控制單元更新序列,使得段之一的頂部指令位於序列的頂部處。如果不發生分支,則指令序列控制單元更新序列,使得緊跟在分支指令之後的下一個指令位於序列的頂部處。
文檔編號G06F9/38GK102109979SQ20101059824
公開日2011年6月29日 申請日期2010年12月21日 優先權日2009年12月28日
發明者坂口浩章 申請人:索尼公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀