新四季網

位移緩存器引擎的製作方法

2023-07-17 17:44:06

專利名稱:位移緩存器引擎的製作方法
技術領域:
本發明是有關一種位移緩存器引擎(shift register engine)。

發明內容
本發明是關於一種位移緩存器引擎。在一實施例中,一位移緩存器引擎包括至少一位移緩存器及一執行單元耦接於至少一位移緩存器。至少一位移緩存器包括多個數據存儲單元,每一該數據存儲單元可操作於儲存至少一數據值。典型地,位移緩存器可操作於位移儲存在該多個數據存儲單元的第一數據存儲單元的數據值到多個數據存儲單元的第二數據存儲單元。
執行單元耦接於至少一位移緩存器,使得執行單可讀取儲存在位移緩存器的第二資料包的數據值。此外,執行單元可操作於執行一算法,使用儲存在第二數據存儲單元的該至少一數據值作為算法的操作數。
在執行單元實質上已經完成執行該算法後,至少一位移緩存器可操作於位移該數據值從第一數據存儲單元到第二數據存儲單元,執行單元可因應於至少一位移緩存器位移新資料到第二數據存儲單元,使得執行單元以新資料再次執行算法。
在另一實施例中,位移緩存器引擎包括一微碼存儲器,可操作於儲存多個微碼程序;一微碼執行單元,能執行每一微碼程序,且電性耦接於微碼存儲器;以及至少一線性位移緩存器,電性耦接於微碼執行單元。
至少一線性位移緩存器包括可操作於儲存至少一數據值的多個數據存儲單元。至少一線性位移緩存器可操作於位移數據值從多個數據存儲單元的一第一存儲單元到多個數據存儲單元的一第二存儲單元。再者,微碼執行單元可操作於讀取儲存在第二數據存儲單元的數據值,且可操作於因應至少一位移緩存器位移一新數據值到第二數據存儲單元而執行多個微碼程序的至少其一。
在又一實施例中,一中央處理單元包括一固定執行單元,可操作於執行一第一多個功能;一可程序化執行單元,可操作於執行一第二多個功能;一控制器,耦接於固定執行單元與可程序化執行單元;以及至少一線性位移緩存器,耦接於固定執行單元與可程序化執行單元的至少其一。
控制器可操作於接收來自一耦接於控制器的存儲器的一指令,基於指令而決定第一與第二多個功能中的至少其一的一第一功能要被執行,以及產生一信號給固定執行單元與可程序化執行單元中的至少其一,以執行第一功能。
至少一線性位移緩存器包括多個數據存儲單元,可操作於儲存能成為第一與第二多個功能的至少其一的操作數的至少一數據值。再者,至少一線性位移緩存器可操作於位移儲存在多個存儲單元的一第一存儲單元的數據值到多個存儲單元的一第二存儲單元。
固定執行單元包括一第一輸入,耦接於控制器,且可操作於接收該信號;一第二輸入,耦接於線性位移緩存器,且可操作於接收該儲存在第二存儲單元的至少一數據值;以及多個分離式的邏輯組件,耦接於第一與第二輸入。每一分離式的邏輯組件互連分離式的邏輯組件中的其它至少一個。此外,每一分離式的邏輯組件更耦接於第一輸入,以因應信號而實踐第一多個功能的至少其一。第一多個功能中的至少其一基於該信號而被決定,以引發固定執行單元使用儲存在第二存儲單元的至少一數據值作為一操作數執行第一功能。
可程序化執行單元包括一第三輸入,耦接於控制器,且可操作於接收信號;一第四輸入,耦接於線性位移緩存器,且可操作於接收儲存在第二存儲單元的至少一數據值;一微碼存儲器,可操作於儲存多個微碼程序,每一微碼程序可操作於實踐第二多個功能的至少其一;一微碼執行單元,耦接於微碼存儲器,能選擇性地執行每一微碼程序;以及一微碼控制器,耦接於第三與第四輸入,更耦接於微碼執行單元。
微碼控制器可操作於引發微碼執行單元因應信號,而執行微碼程序中的至少其一,以引發可程序化執行單元使用儲存在第二存儲單元的至少一數據值作為一操作數執行第一功能。
典型地,當至少一線性位移緩存器位移一新資料到第二數據存儲單元時,固定執行單元與可程序化執行單元的至少其一可因應而執行第一與第二多個功能的至少其一。


圖1是一具有一微碼引擎的中央處理單元的一個實施例的示意圖;圖2是一具有一微碼引擎的中央處理單元的第二實施例的示意圖;圖3是一具有一線性位移緩存器的微碼引擎的一個實施例的示意圖;圖4是在一組目標資料上的一可位移窗口的示意圖;
圖5顯示一線性位移緩存器的一個可能對應的示意圖;圖6A是在一位移操作以前的一線性位移緩存器的一個實施例的示意圖;圖6B是圖6A的線性位移緩存器在一位移操作以後的一個實施例的示意圖;以及圖7是一位移緩存器微引擎的示意圖。
符號說明100 中央處理單元102 系統存儲器104 CPU執行單元106 微碼引擎108 指令解碼器110 參數提取單元112 ALU執行單元113 硬接線操作114 寫回單元115 電性耦接116 微碼執行單元118 微碼存儲器119 交握信號200 中央處理單元202 系統存儲器204 CPU執行單元206 微碼引擎
220 DMA信道221 交握信號300 微碼引擎302 微碼執行單元304 微碼存儲器306 可位移窗口406 線性位移緩存器408 可位移窗口410 操作數504 可位移窗口506 線性位移緩存器602 線性位移緩存器604 可位移窗口606 操作數608 黑區610 灰區700 位移緩存器微引擎701 微碼存儲器702 微碼執行單元704 可位移緩存器串706 邏輯組件
具體實施例方式
請先參考圖1,圖1顯示一種具有一微碼引擎的中央處理單元100,其包括有一系統存儲器102,一CPU執行單元104,耦接於系統存儲器102,以及一微碼引擎106,耦接於CPU執行單元104。此處,「耦接」一詞的定義是指直接地連接到或經由一或更多中介組件間接地連接到,此等中介組件可包括以硬體或軟體為基礎的組件。
系統存儲器102可為能儲存一程序/對象碼指令與微碼的任何型態的存儲器,並可包括中介存儲器,例如高速緩存。在一實施例中,CPU執行單元104是一硬體單元或其它固定執行單元,經硬接線以執行各種操作與發出各種命令給微碼引擎106。典型地,硬體單元包括多個分離式的邏輯組件,其中每一該分離式的邏輯組件互連至所述多個分離式的邏輯組件中的其它至少一個,以執行多個功能。
微碼引擎106是一種諸如處理器或其它可程序化執行單元的裝置,能執行微碼程序,以執行在一較高階的處理器中的各種操作,也就是說,微碼引擎106實踐一或更多可供程序設計者使用的較高階的對象碼指令。如同稍後將更詳細描述的,一微碼引擎106可額外地使用或取代硬接線電路與邏輯,以實踐一較高階的中央處理單元的功能。
系統存儲器102、CPU執行單元104及微碼引擎106可全數字於一單一集成電路上,也可以是分離式的組件。在一實施例中,至少該CPU執行單元104與該微碼引擎106位於同一集成電路上。
在其它實施例中,CPU執行單元104與微碼引擎106可全數字於一場可程序化門陣列(Field Programmable Gate Array;FPGA)上,或在分離式的場可程序化門陣列上。在其它不同實施例中,中央處理單元可能具有多個系統存儲器單元102、CPU執行單元104或微碼引擎106,其可全數字於單一組件上,例如一集成電路或一場可程序化門陣列,或者所述多個單元可位於分離式的組件上。
一般而言,系統存儲器102為CPU執行單元104儲存程序/對象碼指令,在一實施例中,為微碼引擎106儲存微碼。CPU執行單元104如同一控制器作動,讀取及解碼系統存儲器102中的每一指令。根據每一解碼的指令,CPU執行單元104決定,從可供CPU執行單元112的ALU執行單元112執行的多個硬接線功能,與可供微碼引擎106執行的多個微碼功能當中,選出要執行指令所需的功能。典型地,CPU執行單元104產生一信號,包括至少一參數,以指出ALU執行單元112與微碼引擎106當中的那些功能(如果有的話)在實踐該指令時需要被執行。因應該信號,ALU執行單元112與微碼引擎106執行他們的操作,而且典型地會回傳結果給CPU執行單元104,該結果可包括一動作、一第二信號及/或一結果參數。因應該結果,CPU執行單元104可儲存該結果在系統存儲器102中,或決定從該第一及第二多個功能當中選出一第二功能,給該ALU執行單元112與微碼引擎106當中至少一個去執行。
微碼是可直接控制一微處理器的最低階程序。典型地,微碼非可程序化尋址,但可以被修改,例如現存微碼可以經修改而更正瑕疵或加強性能,或額外的微碼程序可以加入微碼引擎106中,例如增加可供操作的新指令型態。在一實施例中,借著經由CPU執行單元104下載微碼程序加入微碼引擎106中。在其它不同實施例中,藉直接下載微碼程序加入微碼引擎106中。
典型地,微碼引擎106能執行微碼程序,該微碼程序可包括多個微指令或該微碼引擎106的一或更多功能/指令。在一實施例中,微碼程序用來仿真一處理器中典型地是硬接線的操作。具有硬接線操作的處理器執行操作的速度通常比使用微碼引擎的處理器快,但是要付出犧牲系統彈性的代價。一旦處理器經過硬接線,使用諸如邏輯閘或電晶體等組件以執行操作,該處理器在沒有重新設計處理器的硬接線操作時無法執行新的指令型態。此等重新設計耗時耗財,而且可能引入設計錯誤到整體處理器設計中。
相較於在處理器中的硬接線操作,微碼引擎106允許降低矽面積,而且藉由允許使用者寫入額外的微碼程序以執行新的指令型態,或修改現存的微碼程序以更正瑕疵或加強性能,提供了彈性。舉例而言,假如在系統的初始設計之後,為了一新的算法需要新的指令型態,則一新的微碼程序可以僅單純地撰寫及下載至微碼引擎106中,因而更改處理器的操作。再者,假如在處理器的操作中發現瑕疵或性能議題,則微碼可以被更改或研議,以更正該問題或加強性能。
微碼引擎106也減輕對於獨立的數位訊號處理器(Digital SignalProcessor;DSP)的需求。為了加速影像處理,一些系統使用具有內建影像處理功能的完全分離式的中央處理單元的獨立DSP。使用獨立的DSP來加速影像處理要付出增加需要的矽面積的代價,而且缺乏控制中央處理單元及獨立DSP之間的溝通。如同此處所揭示的,微碼引擎可以用來取代或配合該DSP。
在一具有一微碼引擎的中央處理單元的實施例中,CPU執行單元104電性耦接於系統存儲器102,使得CPU執行單元104可以讀取系統存儲器102中儲存的指令或寫入數據到系統存儲器102中。CPU執行單元104通常包括一指令解碼器108、一參數提取單元110、一ALU執行單元112、以及一寫回單元114。較佳者,指令解碼器108、參數提取單元110、ALU執行單元112、以及寫回單元114彼此互相電性耦接,使得每一個指令的參數可以輕易地在CPU執行單元104的不同單元之間傳遞。
微碼引擎106也經電性耦接115至CPU執行單元104,使得CPU執行單元104可將微碼引擎106視為一硬體輔助指令。典型地,CPU執行單元104與微碼引擎106是以平行的方式排置,二者能夠在執行相同或不同功能時實質上同時地操作。在其它不同實施例中,CPU執行單元104與微碼引擎106也可以用串接或管線的方式排置,或此技藝中已知的其它任何排置。經由電性耦接115,CPU執行單元104控制微碼引擎106將執行的指令與微碼引擎106如何及何時執行每一指令。特別地,CPU執行單元104典型地控制微碼引擎106接收的微碼與指令參數,以及微碼引擎106傳遞給CPU執行單元104或系統存儲器102的數據。
典型地,微碼引擎106包括一微碼執行單元116與一微碼存儲器118。微碼執行單元116與微碼存儲器118典型地彼此電性耦接,使得微碼執行單元116能讀取儲存在微碼存儲器118中的指令參數或微碼,或寫入資料到微碼存儲器118中。
在操作期間,CPU執行單元104讀取儲存在系統存儲器102中的一個程序/對象碼指令。典型地,在CPU執行單元104中的指令解碼器108如同一控制器作動,以檢查指令集與決定什麼操作被要求來執行指令集的各個指令。依一給定的指令所需要的操作,CPU執行單元104可以使用CPU執行單元104的硬接線操作113執行該指令,CPU執行單元104可以致動微碼引擎106執行該指令,或者CPU執行單元104可以使用CPU執行單元104的硬接線操作113執行該指令的一部分,而微碼引擎106執行該指令的另一部分。
假如CPU執行單元104使用CPU執行單元104的硬接線操作113執行該指令,則參數提取單元110典型地傳遞指令參數給ALU執行單元112。ALU執行單元112在硬接線邏輯的指引下執行必要的操作,且寫回單元114記錄指令結果在系統存儲器102、一緩存器或其它儲存裝置中。
假如CPU執行單元104致動微碼引擎106執行該指令,則參數提取單元110典型地傳遞指令參數、任何必要的微碼(若尚未加載)、以及任何其它命令給微碼引擎106。微碼執行單元116如同一微碼控制器作動,接收來自CPU執行單元104的信息,並讀取可以儲存在微碼存儲器118中的任何其它信息。微碼執行單元116執行操作,即實踐指令的微碼程序,且記錄指令結果在微碼存儲器118中,或者傳遞結果給CPU執行單元104。如果有必要的話,寫回單元114記錄指令結果在系統存儲器102、一緩存器或其它儲存裝置中。在一實施例中,當微碼引擎106正在處理操作時,CPU執行單元104有空閒處理其它操作。在其它不同實施例中,CPU執行單元104在執行其它動作以前,等待微碼引擎106完成操作。
假如CPU執行單元104使用CPU執行單元104的硬接線操作113執行該指令的一部分,而微碼引擎106執行該指令的另一部分,則參數提取單元110傳遞指令參數給ALU執行單元112與微碼執行單元116。ALU執行單元112與微碼執行單元116依照算法,以平行或循序的方式執行他們的操作,而且指令結果被寫入系統存儲器102、一緩存器或其它儲存裝置中。在一實施例中,ALU執行單元112可將微碼引擎106的輸出因子化為最終的結果。
在另一實施例中,CPU執行單元104與微碼引擎106能在同一時間或不同時間對相同或不同的資料執行操作。為了確保CPU執行單元104與微碼引擎106以正確的順序執行操作,可在CPU執行單元104與微碼引擎106之間實施交握(hand shake)信號119。交握信號119是諸如WAIT信號或其它在一處理器的至少二單元之間傳遞的狀態指示器的信號,以確保算法以正確的順序執行。透過交握信號119,CPU執行單元104與微碼引擎106能傳遞信號,使得CPU執行單元104與微碼引擎106可以同步地操作。雖然交握信號119允許CPU執行單元104與微碼引擎106相對於對方同步地操作,所述多個信號119也允許在CPU執行單元104與微碼引擎106之間訊令,以允許CPU執行單元104與微碼引擎106二者其中之一或同時在內部同步地或異步地操作。
在又另一實施例中,如圖2所示,提供獨立的直接存儲器存取(DirectMemory Access;DMA)信道220在系統存儲器202與微碼引擎206之間,以及額外的交握信號221在CPU執行單元204與微碼引擎206之間。藉由允許微碼引擎206直接讀取在系統存儲器202中的資料,而非只能讀取CPU執行單元204已自系統存儲器202讀取的數據,獨立的DMA信道220允許系統更快速且更有效率地操作。
在CPU執行單元204與微碼引擎206之間的額外交握信號221允許CPU執行單元204與微碼引擎206同步地操作更複雜的執行。相較於其它只有CPU執行單元204發出命令給微碼引擎206的實施例,額外的交握信號221允許微碼引擎206與CPU執行單元204彼此溝通。使CPU執行單元204與微碼引擎206二者傳遞交握信號的能力允許CPU執行單元204與微碼引擎206以點對點(peer-to-peer)的方式動作,而非以主僕(master-slave)式動作。
根據所揭示的實施例,具有一微碼引擎的中央處理單元可以使用在諸如數字相機等裝置中,與獨立的DSP並用或取代一獨立的DSP,以實踐及/或加速影像處理。一微碼引擎允許數字相機製造商變更微碼引擎中的微碼程序,以更正問題、改善功能、實踐適當的影像處理算法、或在無需重新設計相機硬體的成本下增加特色以響應市場驅使的需求。由於微碼引擎的彈性,在相機設計與製造期間或其後,甚至在相機被購買以後,一數字相機製造商可以在任何時間變更微碼程序及因而導致的數字相機功能。
在一具有所揭示的中央處理單元與微碼引擎的數字相機的實施例中,微碼引擎執行一或更多實踐特定操作的微碼程序,以壓縮該相機的影像傳感器產生的像素資料。在另一實施例中,微碼引擎執行一或更多實踐特定操作的微碼程序,來為該相機的影像傳感器產生的像素資料去馬賽克,其中該影像傳感器使用一彩色濾光片數組(Color Filter Array;CFA),例如一Bayer圖樣的彩色濾光片數組。
在另一具有一微碼引擎的中央處理單元的實施例中,如圖3所示,一微碼引擎300包括一線性位移緩存器(Linear Shift Register;LSR),以執行一可位移窗口的操作。一具有線性位移緩存器的微碼引擎300通常包括一微碼執行單元302、一微碼存儲器304、以及一實踐一可位移窗口306的線性位移緩存器。較佳者,該微碼引擎300是一能執行微碼程序的特定用途集成電路,不過該微碼引擎300也可以藉此技藝中任何已知的方式實踐。此外,線性位移緩存器206與其它邏輯組件的結合可以藉此技藝中任何已知的方式實踐。
典型地,微碼執行單元302電性耦接微碼存儲器304,使得微碼執行單元302可讀取儲存在微碼存儲器304中的指令或微碼,以及寫入資料到微碼存儲器304中。較佳者,當新的指令型態成為可供操作時,額外的微碼可以在任何時候加入微碼存儲器304中。
在一實施例中,如圖4所示,一實踐可位移窗口408的線性位移緩存器406對一組從(1,1)到(5,18)的資料操作。圖4的算法所需的可位移窗口408是一十字形,但是由於微碼程序的彈性,實踐可位移窗口408的線性位移緩存器406可以是大小為n×n的方形、大小為n×m的矩形、或不規則的大小與形狀,其定義那些數據元素會在任一給定的位移事件中同時被存取。可位移窗口408的形狀取決於一算法的參數,僅有大小及形狀的要求是可位移窗口408包括執行該算法的所有必要的操作數。在圖4的範例中,執行一算法所需的一操作數410以灰色顯示。
如圖4所示,資料是連續地饋入線性位移緩存器406中。藉由在使用可位移窗口408的微碼執行單元302(圖3)中執行一微碼程序,微碼執行單元302(圖3)能連續地對儲存在該組線性緩存器406中的資料執行一算法。
可位移窗口408提供一能力,對藉由在微碼執行單元302(圖3)完成一操作後,從線性位移緩存器406的一新區段位移資料到可位移窗口408中,而循序地輸入線性位移緩存器406中的連續資料持續地執行一算法。典型地,在線性位移緩存器406中的每一緩存器可以被尋址為可位移窗口408中的一個操作數410。從線性位移緩存器406一新區段位移該新資料到可位移窗口408中,會變更該操作數410,使得在線性位移緩存器406中的新的、後續的目標位置的數據在正確的相對位置上。因此,下一個要藉微碼執行單元302(圖3)操作所用的數據值,可以不必在藉由CPU執行引擎或微碼引擎300重新提取資料或重排資料下便取得。
單純地只位移新資料到可位移窗口408中,而不重排舊資料,便藉由增加微碼引擎300(圖3)的效率而加速影像處理。位移新資料到可位移窗口408中,避免了典型地與諸如額外提取操作、加載操作、或儲存操作等處理器功能有關的重複操作。中央處理單元或微碼引擎300(圖3)將能使用節省下來的時間及周期以執行算法,增進整體的效率。
先前為了加速數字相機中的影像處理,設計者使用一經由軟體製成的可位移窗口或一經由硬接線操作製成的可位移窗口。經由軟體製成的可位移窗口提供彈性,但缺乏硬接線操作的速度。硬接線操作執行影像處理功能快速,但付出犧牲彈性的代價,因為可位移窗口的大小及形狀是固定的。使用實踐可位移窗口的線性位移緩存器增加處理器的效率,補償了速度與彈性之間的妥協,因此,提供一窗口操作,能為一算法快速地執行操作,也對滿足未來的變更更具彈性,其中所述多個未來的變更例如要求新的窗口大小或形狀的新指令或新算法。
圖5顯示實踐圖4的可位移窗口504的線性位移緩存器506的對應(mapping)。在可位移窗口504的每一元素中的數目,表示在線性位移緩存器506中該元素的順序。當數據位移通過線性位移緩存器506時,元素1中的數據位移到元素2,而元素2中的數據位移到元素3。此一過程持續循序地穿過線性位移緩存器。
圖6A及6B顯示使用圖5對應的可位移窗口604的一個實施例在一位移操作之前與之後。一位移操作位移新資料到可位移窗口604的操作數606中。在圖6A及6B顯示的實施例中,資料由右向左位移通過可位移窗口604,但是可位移窗口604可以設計為資料可從任一方向位移進入可位移窗口604的操作數606中。當資料由右向左位移時,以黑區608及灰區610顯示的可位移窗口604的區域表示影像處理操作不再需要的數據值。因此,縱使所述多個數據值存在於線性位移緩存器602中,也可以被當作不存在。行610的緩存器是表示新資料可儲存於其內的下一組緩存器。可位移窗口604可經由一串行的緩存器組、一環形的緩存器組、或此技藝中任何其它已知的緩存器設計來實踐。
在另一實施例中,如圖7所示,一位移緩存器微引擎700通常包括一微碼存儲器701、一微碼執行單元702、一串的可位移緩存器704、以及一串的邏輯組件706。在一實施例中,邏輯組件706電性耦接可位移緩存器704,使得邏輯組件706對微碼執行單元702當前的可位移窗口中包括的操作數執行一運算。此外,微碼存儲器701及微碼執行單元702電性耦接可位移緩存器704,使得藉由讀取儲存在微碼存儲器701中的微碼程序,微碼執行單元702得知在線性位移緩存器上操作的方向及資料流的方向。
一般而言,資料,例如像素資料,來自諸如數字相機CCD的組件,或藉諸如DMA的中介組件,或藉經由中央處理單元核心加載,而恆常地串行輸入該串可位移緩存器704中。當資料位移通過該串可位移緩存器704時,邏輯組件706基於存在可位移窗口中當前的操作數計算一結果。此操作可以是基於在窗口中當前資料的過濾操作或解譯操作,或是其它任何在邏輯上或算術上有用的操作。在該算法完成目前的操作數之後,一位移操作線性地位移數據,且有效地移動可位移窗口往前一個像素。在該位移操作後,可位移窗口對準一個新的像素,縱使算法所用的周邊像素的一半將被留置在他們的正確相對位置時亦然。只有需要且可位移窗口中不存在的新資料被位移進入可位移窗口中。在位移操作後,邏輯組件706自動地為該組新的操作數計算一結果,並輸出一結果。此一過程在資料循序地輸入通過該串可位移緩存器604時持續地重複。
在另一實施例中,DMA信道可以加在線性位移緩存器與微碼引擎之間,以更進一步加速影像處理操作。在又另一增強性能的實施例中,額外的指令可以增加給可位移窗口,俾在每一指令及/或周期執行超過一次的位移操作。
在一具有一中央處理單元與一包括一線性位移緩存器以執行可位移窗口操作的微碼引擎的數字相機的實施例中,可位移窗口用來對像素資料執行諸如過濾或解譯的特定操作。在其它實施例中,可位移窗口可以用來執行壓縮算法、去馬賽克算法、或其它使用像素資料作為操作數任何其它型態的算法。
舉例而言,在一使用一可位移窗口施行一去馬賽克算法的實施例中,可位移窗口圍繞一目標像素及其鄰近像素,所述多個鄰近像素是從每像素影像單一顏色生成每像素影像三顏色所需者。當一數字相機使用一彩色濾光片數組,例如一Bayer彩色濾光片數組,紅、綠及藍色像素以一預定的圖樣排列,使得每色像素鄰接其它兩色像素。去馬賽克算法用來從每像素影像單一顏色生成每像素影像三顏色,使用例如雙線性內插的程序。在此程序中,一個單色目標像素及其周邊的單色像素被用來生成一個單一的三顏色像素。一可位移窗口藉由在每一次對一目標像素的雙線性內插完成後,快速地位移新的像素數據到可位移窗口中,加速該去馬賽克算法。
以上的詳細敘述企圖僅僅當作解說,而非對本發明的保護範圍進行限定,本發明的保護範圍以權利要求所界定的為準。
權利要求
1.一種位移緩存器引擎,包括至少一位移緩存器,包括一第一多個存儲單元,每一該存儲單元可操作於儲存至少一數據值,該至少一位移緩存器可操作於位移儲存在該第一多個存儲單元的一第一存儲單元的該至少一數據值到該第一多個存儲單元的一第二存儲單元;以及一執行單元,耦接於該至少一位移緩存器,且能讀取儲存在該第二存儲單元的至少該至少一數據值,該執行單元可操作於至少基於儲存在該第二存儲單元的該至少一數據值而執行一算法;其中,該第一多個存儲單元的該第二存儲單元的該至少一數據值包括一第一數據值,該第一多個存儲單元的該第一存儲單元的該至少一數據值包括一第二數據值;以及其中,該執行單元可操作於至少基於該第一數據值而執行該算法,該至少一位移緩存器可操作於在該執行單元實質上已經完成該算法後,位移儲存在該第一多個存儲單元的第一存儲單元的至少該第二值到該第一多個存儲單元的該第二存儲單元,該執行單元可因應該位移,使得該執行單元至少基於該第二數據值而再次執行該算法。
2.根據權利要求1所述的位移緩存器引擎,其中該至少一位移緩存器更包括一第二多個存儲單元,每一該存儲單元可操作於儲存該至少一數據值,該至少一位移緩存器可操作於位移儲存在該第二多個存儲單元的一第一存儲單元的該至少一數據值到該第二多個存儲單元的一第二存儲單元;其中,該執行單元耦接於該第一多個存儲單元的至少一存儲單元與該第二多個存儲單元的至少一存儲單元;以及其中,該第二多個存儲單元的該第二存儲單元的該至少一數據值包括一第三數據值,該第二多個存儲單元的該第一存儲單元的該至少一數據值包括一第四數據值;以及其中,該執行單元可操作於至少基於該第一值與該第三值而執行該算法。
3.根據權利要求2所述的位移緩存器引擎,其中該至少一位移緩存器可操作於位移儲存在該第一多個存儲單元的至少一數據存儲單元的至少一數據值到該第二多個存儲單元的至少一存儲單元。
4.根據權利要求2所述的位移緩存器引擎,其中該至少一位移緩存器可操作於位移儲存在該第一多個存儲單元的該第一存儲單元的該第二數據值到該第一多個存儲單元的該第二存儲單元,且實質上為同時地位移儲存在該第二多個存儲單元的該第一存儲單元的該第四數據值到該第二多個存儲單元的第二存儲單元。
5.根據權利要求1所述的位移緩存器引擎,其中該執行單元可操作於儲存該算法的一結果在包括該至少一位移緩存器的該第一多個存儲單元的至少一存儲單元。
6.根據權利要求1所述的位移緩存器引擎,其中該至少一位移緩存器是一串行緩存器組。
7.根據權利要求1所述的位移緩存器引擎,其中該至少一位移緩存器是一環型緩存器組。
8.根據權利要求1所述的位移緩存器引擎,其中該執行單元包括一微碼存儲器,可操作於儲存多個微程序;一微碼執行單元,耦接於該微碼存儲器,且能執行每一該微程序;以及一微碼控制器,耦接於該微碼執行單元,且可操作於引發該微碼執行單元執行該多個微碼程序的至少其一。
9.根據權利要求1所述的位移緩存器引擎,其中該執行單元包括多個分離式的邏輯組件,每一該分離式的邏輯組件互連所述多個分離式的邏輯組件中的其它至少一個,以執行多個功能。
10.一種位移緩存器引擎,包括一微碼存儲器,可操作於儲存多個微碼程序;一微碼執行單元,電性耦接於該微碼存儲器,該微碼執行單元能執行每一該微碼程序;以及至少一線性位移緩存器,電性耦接於該微碼執行單元,該至少一線性位移緩存器包括一第一多個存儲單元,可操作於儲存至少一數據值;其中,該至少一線性位移緩存器可操作於位移儲存在該第一多個存儲單元的一第一存儲單元的該至少一數據值到該第一多個存儲單元的一第二存儲單元;其中,該微碼執行單元可操作於讀取儲存在該第一多個存儲單元的該第二存儲單元的該至少一數據值;以及其中,該微碼執行單元可因應於當該至少一線性位移緩存器位移至少一新數據值到該第一多個存儲單元的該第二存儲單元時,執行該多個微碼程序的至少其一。
11.根據權利要求10所述的位移緩存器引擎,其中該至少一位移緩存器更包括一第二多個存儲單元,每一該第二多個存儲單元可操作於儲存該至少一數據值,該至少一位移緩存器可操作於位移儲存在該第二多個存儲單元的一第一存儲單元的該至少一數據值到該第二多個存儲單元的一第二存儲單元;其中,該微碼執行單元耦接於該第一多個存儲單元的至少一存儲單元與該第二多個存儲單元的至少一存儲單元;以及其中,該微碼執行單元可操作於執行該多個微碼程序的至少其一,使用儲存在該第一多個存儲單元的該第二存儲單元的該至少一數據值與該第二多個存儲單元的該第二存儲單元的該至少一數據值作為該微碼程序的操作數。
12.根據權利要求10所述的位移緩存器引擎,其中該至少一位移緩存器可操作於位移儲存在該第一多個存儲單元的至少一存儲單元的該至少一數據值到該第二多個存儲單元的至少一存儲單元。
13.根據權利要求10所述的位移緩存器引擎,其中該至少一位移緩存器可操作於位移儲存在該第一多個存儲單元的該第一存儲單元的該至少一數據值到該第一多個存儲單元的該第二存儲單元,且實質上同時地位移儲存在該第二多個存儲單元的該第一存儲單元的該至少一數據值到該第二多個存儲單元的該第二存儲單元。
14.根據權利要求10所述的位移緩存器引擎,其中該微碼執行單元更可操作於儲存一結果到該至少一線性位移緩存器中該多個微碼程序的該至少其一。
15.一種中央處理單元,包括一固定執行單元,可操作於執行一第一多個功能;一可程序化執行單元,可操作於執行一第二多個功能;一控制器,耦接於該固定執行單元與該可程序化執行單元,該控制器可操作於接收來自一耦接該控制器的存儲器的一指令,基於該指令而決定該第一與第二多個功能中的至少其一的一第一功能要被執行,以及產生一信號給該固定執行單元與該可程序化執行單元中的至少其一,以執行該第一功能;以及至少一線性位移緩存器,耦接該固定執行單元與該可程序化執行單元的至少其一,該至少一線性位移緩存器包括一第一多個存儲單元,可操作於儲存能成為該第一與第二多個功能的至少其一的操作數的至少一數據值;其中,該至少一線性位移緩存器可操作於位移儲存在該第一多個存儲單元的一第一存儲單元的該至少一數據值到該第一多個存儲單元的一第二存儲單元;其中,該固定執行單元更包括一第一輸入,耦接於該控制器,且可操作於接收該信號;一第二輸入,耦接於該線性位移緩存器,且可操作於接收至少該儲存在該第一多個存儲單元的該第二存儲單元的至少一數據值;以及多個分離式的邏輯組件,耦接於該第一與第二輸入,每一該分離式的邏輯組件互連所述多個分離式的邏輯組件中的其它至少一個,且更耦接於該第一輸入,以因應該信號而實踐該第一多個功能的至少其一,該第一多個功能中的該至少其一基於該信號而被決定,以引發該固定執行單元使用儲存在該第二多個存儲單元的該第二存儲單元的該至少一數據值作為一操作數執行該第一功能;以及其中,該可程序化執行單元更包括一第三輸入,耦接於該控制器,且可操作於接收該信號;一第四輸入,耦接於該線性位移緩存器,且可操作於接收儲存在該第一多個存儲單元的該第二存儲單元的該至少一數據值;一微碼存儲器,可操作於儲存多個微碼程序,每一該微碼程序可操作於實踐該第二多個功能的至少其一;一微碼執行單元,耦接於該微碼存儲器,能選擇性地執行每一該微碼程序;一微碼控制器,耦接於該第三與第四輸入,更耦接於該微碼執行單元,該微碼控制器可操作於引發該微碼執行單元因應該信號,而執行所述多個微碼程序中的至少其一,以引發該可程序化執行單元使用儲存在該第一多個存儲單元的該第二存儲單元的該至少一數據值作為一操作數執行該第一功能;以及其中,該固定執行單元與該可程序化執行單元的至少其一可因應於當該至少一線性位移緩存器至少位移一新數據值到該第一多個存儲單元的該第二存儲單元時,執行該第一與第二多個功能的至少其一。
16.根據權利要求15所述的中央處理單元,其中該至少一線性位移緩存器更包括一第二多個存儲單元,每一該存儲單元可操作於儲存該至少一數據值,該至少一線性位移緩存器可操作於位移儲存在該第二多個存儲單元的一第一存儲單元的該至少一數據值到該第二多個存儲單元的一第二存儲單元;其中,該固定執行單元與該可程序化執行單元的至少其一耦接於該第一多個存儲單元的至少一存儲單元與該第二多個存儲單元的至少一存儲單元;以及其中,該固定執行單元與該可程序化執行單元的至少其一可操作於使用儲存在該第一多個存儲單元的該第二存儲單元的該至少一數據值與該第二多個存儲單元的該第二存儲單元的該至少一數據值作為該第一與第二多個功能的至少其一的一操作數執行該第一與第二多個功能的至少其一。
17.根據權利要求16所述的中央處理單元,其中該至少一線性位移緩存器可操作於位移儲存在該第一多個存儲單元的至少一存儲單元的該至少一數據值到該第二多個存儲單元的至少一數據存儲單元。
18.根據權利要求16所述的中央處理單元,其中該至少一線性位移緩存器可操作於位移儲存在該第一多個存儲單元的該第一存儲單元的該至少一數據值到該第一多個存儲單元的該第二存儲單元,且實質上同時地位移儲存在該第二多個存儲單元的該第一存儲單元的該至少一數據值到該第二多個存儲單元的該第二存儲單元。
19.一種使用一位移緩存器引擎執行一算法的方法,包括下列步驟位移一第一數據值到一位移緩存器的至少一數據存儲單元;因應該位移該第一數據值,基於該至少一數據存儲單元的一內容在一執行單元中執行一算法;位移一第二數據值到該至少一數據存儲單元;以及因應該位移該第二數據值到該至少一數據存儲單元,基於該至少一數據存儲單元的該內容再次執行該算法。
20.根據權利要求19所述的方法,更包括儲存對該算法的一響應在該緩存器的該至少一資料包。
21.根據權利要求19所述的方法,其中該因應該位移該第一數據值,基於該至少一數據存儲單元的一內容在一執行單元中執行一算法的步驟包括下列步驟在一微碼執行單元中使用該第一數據值作為至少一操作數執行一微碼程序。
22.根據權利要求19所述的方法,其中該因應該位移該第一數據值,基於該至少一數據存儲單元的一內容在一執行單元中執行一算法的步驟包括下列步驟在一固定執行單元中使用該第一數據值作為至少一操作數執行一功能。
23.根據權利要求19所述的方法,更包括下列步驟改變該執行單元所執行的該算法,使得該執行單元將因應該位移該第一數據值而執行一新算法。
24.一種中央處理單元,包括一位移緩存器,可操作於周期性地循序位移資料經過一序列內連接數據存儲單元;以及一執行單元,耦接於該位移緩存器,且可操作於讀取該序列內連接數據存儲單元的一部分的內容;其中,該執行單元可操作於執行一算法,該算法基於該內容,當該部分的該內容隨著該資料循序位移經過包括該部分的該序列內連接數據存儲單元而改變時,該算法被再次執行。
25.一種計算一結果的方法,包括下列步驟提供多個數據存儲單元,每一該數據存儲單元能儲存資料,每一該數據存儲單元依序耦接於該多個數據存儲單元的另一個,以致於能位移該資料循序經過該多個數據存儲單元;讀取該多個數據存儲單元的一部分的內容;基於該內容計算一第一結果;取得該第一結果;引發每一該數據存儲單元位移該資料到該多個數據存儲單元的另一個;因應引發而讀取該部分的該內容;基於該內容計算一第二結果;以及取得該第二結果。
全文摘要
一種具有一線性位移緩存器的位移緩存器引擎,包括至少一位移緩存器及一執行單元,位移緩存器含有多個數據存儲單元,每一數據存儲單元儲存至少一數據值。當新資料輸入位移緩存器時,位移緩存器可操作於位移數據值從一第一數據存儲單元到一第二數據存儲單元。執行單元電性耦接線性位移暫單元,使得執行單元執行一算法時,執行單元使用儲存在第二數據存儲單元的數據值作為一操作數。在執行單元實質上完成算法後,線性位移緩存器位移一新數據值到第二數據存儲單元。因應線性位移緩存器位移新資料到第二數據存儲單元,執行單元再次執行算法。
文檔編號G06F13/00GK1828521SQ20051000866
公開日2006年9月6日 申請日期2005年3月1日 優先權日2005年3月1日
發明者程力方, 勞思蒙, 康銘欽 申請人:華晶科技股份有限公司

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀