專利名稱:將用戶定義的執(zhí)行單元加至采用可配置長指令字(cliw)的處理器的方法和設備的制作方法
技術領域:
和背景包括專用數(shù)據處理器例如數(shù)字信號處理器(DSP)在內的數(shù)據處理器普遍用于各種設備例如蜂窩式電話,調制解調器,機頂盒,一般數(shù)字通信設備,音樂與視頻設備,聲音與圖象識別設備和許多其他系統(tǒng)中。這些設備能夠完成很大的計算任務和按照嚴格的實時約束要求進行操作。任何DSP的核心是執(zhí)行單元。一個DSP的執(zhí)行單元通常是高度專門化的,被設計為完成DSP應用中普通類型的計算。然而,迄今為止,沒有一個數(shù)據處理器能夠滿足所有或甚至于大多數(shù)應用要求。當可用的數(shù)據處理器不滿足系統(tǒng)要求時,以下選代手段是當今可行的1.將專用硬件加至系統(tǒng)中以便完成所需功能,此偏重于硬件的解決方案不靈活,并且比軟件方案難于維持。
2.修改數(shù)據處理器以便包括附加執(zhí)行單元(例如乘法累加單元或Galois域乘法器)。此解決方案是(a)對于并不要求附加功能的應用程序而言,不太有效(即它可能要求較大電路面積)及(b)由于涉及增加新功能,建立新指令和修改核心處理器的其他部分(例如核心處理器的指令解碼器)而成為昂貴和費時的過程。
3.增加一個松散偶合的協(xié)處理器例如數(shù)字協(xié)處理器的Intel的X87家族中的成員,以便協(xié)助完成附加計算。不是與核心緊密地偶合的協(xié)處理器必須接受一個程序和該協(xié)處理器需要一個“開始”指令以便被啟動。當協(xié)處理器被執(zhí)行完畢時,該協(xié)處理器通過例如中斷與核心同步。該核心處理器和協(xié)處理器可能花費相當多的時間來彼此等待同步信號。
4.提供一個能夠由ASIC開發(fā)商進行配置的處理器。這些處理器對硬件資源(例如ALU,乘法器,數(shù)據路徑等)和指令的選擇是固定的。對于此基線體系結構,能夠增加多條新指令。對于能夠作出的改變而言,這些芯片的靈活性是有限的。
5.增加一個緊密偶合的使用指令編碼中專門區(qū)域的協(xié)處理器。此區(qū)域被加于核心處理器的指令中并且被送至核心外單元以便控制這些核心外單元。此方案具有的缺點是(a)事先有限和固定的協(xié)處理器支持;和(b)犧牲大部分指令編碼空間,如果應用程序不需要協(xié)處理器,則將增加總的代碼規(guī)模。
因此,廣泛地認識到和非常有利的是具有一種核心外執(zhí)行單元或類似的核心外邏輯單元,他們允許處理器的執(zhí)行單元被定制而不改變核心處理器本身的指令集。附加地,非常有利的是具有一個非常靈活的解決方案,它能夠允許用戶定制核心處理器以便適合應用程序需要而不必在代碼規(guī)模,可變倍性和總系統(tǒng)參數(shù)方面進行妥協(xié)。
發(fā)明內容
圖1闡述本發(fā)明的一般原理,外部核心外處理單元54通過一個接口52以可互換和可選擇的方式連至一個核心處理器50。此核心外處理單元的可互換選擇允許根據具體應用程序的需要在處理能力,速度和靈活性方面加強核心處理器。
能夠使用可配置長指令字(CLIW)技術增加核心外邏輯單元而不修改核心處理器的指令集,該技術被描述于名為“可配置長指令字體系結構和指令集”的共同未決美國專利申請?zhí)?9/247,686中,它在此處被全部引為參考。CLIW指令是定制元指令,允許修改處理器能夠執(zhí)行的指令集而不影響核心處理器的指令空間。
將CLIW指令唯一地用于控制核心外執(zhí)行單元的操作的好處是允許增加一個或多個在設計核心處理器時并沒有考慮到的不同設計的核心外執(zhí)行單元而不要求修改核心處理器,其指令解碼器或其指令集,因為用于控制核心外執(zhí)行單元的控制信號是從CLIW存儲器中獲得并且通過核心外執(zhí)行單元接口送至核心外執(zhí)行單元的。
也稱為可重用塊的用于控制核心外執(zhí)行單元的任何具體配置的操作的CLIW指令能夠與核心處理器的指令集獨立地開發(fā)出來而不影響其他配置的軟件。此外,一個包括由CLIW唯一地進行控制的核心外執(zhí)行單元的處理器配置能夠單獨地運行為核心處理器編寫的軟件以及運行為只包括核心外執(zhí)行單元的子集的處理器的包括于處理器內的軟件,假如該處理器的子集位于相應的核心外執(zhí)行單元接口端口處。
一個高速數(shù)據處理器可以使用多條數(shù)據總線和多端口數(shù)據存儲器以便允許訪問任何一個處理器周期內的不止一個數(shù)據值。在本發(fā)明中,用于控制數(shù)據訪問的邏輯信號,包括那些允許訪問多條總線以及數(shù)據總線本身的邏輯信號可供核心外執(zhí)行單元使用。調用CLIW指令的基準指令能夠規(guī)定被讀和寫的數(shù)據操作數(shù)。包含于基準指令中的數(shù)據操作數(shù)尋址信息能夠以與包含于普通核心處理器指令內的數(shù)據操作數(shù)尋址信息相同的方式來加以處理。此數(shù)據操作數(shù)信息的處理能夠與從CLIW存儲器中檢索CLIW指令及CLIW指令的任何必要解碼同時進行,核心外執(zhí)行單元具有的與核心處理器相同的方式訪問操作數(shù)的能力是有利的,因為它加速執(zhí)行速度和與其他方法比較減少了編程的復雜性,例如將操作數(shù)放置于具體寄存器中,因為它避免了由核心外執(zhí)行單元執(zhí)行的指令的操作數(shù)的特殊處理所涉及的開銷。
因此,根據本發(fā)明,提供了一種數(shù)據處理器,包括(a)至少一個核心外執(zhí)行單元;(b)一個CLIW存儲器,用于存儲至少一個可配置長指令字(CLIW)指令;及(c)一個核心處理器,在操作上從CLIW存儲器中檢索至少一條CLIW指令并且將至少一條CLIW指令的至少一個相應部分送至至少一個核心外執(zhí)行單元中的至少一個。
優(yōu)選地,該核心處理器能夠在操作上執(zhí)行指令集的多條指令,而該指令集包括一個基準指令,用于啟動CLIW指令的檢索和執(zhí)行。
優(yōu)選地,該核心處理器還包括(d)一個數(shù)據存儲器;和(e)一個數(shù)據地址邏輯系統(tǒng),該數(shù)據地址邏輯系統(tǒng)在操作上控制核心處理器對數(shù)據存儲器的訪問,該數(shù)據地址邏輯系統(tǒng)還在操作上控制至少一個核心外執(zhí)行單元對數(shù)據存儲器的訪問。
優(yōu)選地,該核心處理器在操作上從CLIW存儲器中檢索CLIW指令,以及該數(shù)據地址邏輯系統(tǒng)在操作上控制核心處理器對數(shù)據存儲器的訪問和至少一個核心外執(zhí)行單元幾乎同時對數(shù)據存儲器的訪問。
優(yōu)選地,該數(shù)據處理器還包括(f)一個CLIW指令解碼器,其中該CLIW指令解碼器在操作上將CLIW指令解碼,及該數(shù)據地址邏輯系統(tǒng)在操作上控制核心處理器對數(shù)據存儲器的訪問及至少一個核心外執(zhí)行單元幾乎同時對數(shù)據存儲器的訪問。
同樣根據本發(fā)明,提供了一種用于處理數(shù)據的方法,包括以下步驟(a)提供一個核心外執(zhí)行單元;(b)提供一個核心處理器;及(c)由核心處理器和核心外執(zhí)行單元兩者都執(zhí)行一條CLIW指令以便處理數(shù)據。
優(yōu)選地,核心外執(zhí)行單元只執(zhí)行CLIW指令的一個相應部分,而核心處理器則執(zhí)行CLIW指令的剩余部分。更為優(yōu)選地,核心外執(zhí)行單元只執(zhí)行CLIW指令中與它相應的部分。
優(yōu)選地,該方法還包括以下步驟(d)提供一個CLIW存儲器;(e)存儲該CLIW指令于CLIW存儲器內;(f)由核心處理器從CLIW存儲器中檢索CLIW指令;及(g)在由核心外執(zhí)行單元執(zhí)行CLIW指令的相應部分之前,由核心處理器將CLIW指令的相應部分送至核心外執(zhí)行單元。
優(yōu)選地,核心外執(zhí)行單元執(zhí)行CLIW指令的一個相應部分,而核心處理器則同時執(zhí)行CLIW指令的剩余部分。
優(yōu)選地,該方法還包括以下步驟(h)由核心處理器發(fā)出一條基準指令以便啟動CLIW指令的檢索和執(zhí)行。
優(yōu)選地,該方法還包括以下步驟(i)提供一個數(shù)據存儲器;(j)提供一個數(shù)據地址邏輯系統(tǒng),用于控制核心處理器對數(shù)據存儲器的訪問和核心外執(zhí)行單元對數(shù)據存儲器的訪問;及(k)在數(shù)據地址邏輯系統(tǒng)的控制下由核心外執(zhí)行單元訪問數(shù)據和由核心處理器訪問數(shù)據。
優(yōu)選地,從CLIW存儲器中檢索CLIW指令的操作與核心外執(zhí)行單元訪問數(shù)據和核心處理器訪問數(shù)據的操作是同時的。
優(yōu)選地,該方法還包括以下步驟(l)將CLIW指令解碼,其中CLIW指令的解碼與核心外執(zhí)行單元訪問數(shù)據和核心處理器訪問數(shù)據的操作是同時的。
此處參照附圖通過例子描述本發(fā)明,其中圖1顯示如何根據本發(fā)明將核心外執(zhí)行單元加于和加強核心處理器;圖2是一個根據本發(fā)明的使用CLIW和連至核心外執(zhí)行單元的處理器系統(tǒng)的框圖。
具體實施例方式
本發(fā)明是一種用于將核心外邏輯單元加至一個核心處理器的方法,及因而產生的設備。這些核心外邏輯單元能夠以非常靈活的方式同時與其他核心上的和核心外的執(zhí)行單元工作。具體地,本發(fā)明通過將核心外邏輯單元加至一個處理器的核心以便增加處理器速度。能力和靈活性而不必在代碼規(guī)模,可變倍性和總系統(tǒng)參數(shù)方面進行妥協(xié)。
能夠參照附圖和相關說明來更好地理解根據本發(fā)明的核心外邏輯單元的原理和操作。
圖1闡述本發(fā)明的一般原理。外部邏輯單元54以可互換和可選擇方式連至核心處理器50。此可互換選擇允許根據具體設計的需要在處理能力,速度和靈活性方面加強核心處理器。
現(xiàn)在參照圖2。CLIW指令通過基準指令被調用。該基準指令是核心處理器50的指令集中的一條正規(guī)指令,它具有調用CLIW指令的功能?;鶞手噶畹牟僮鞔a部分向核心處理器的一個正規(guī)指令解碼器14標示有一條CLIW指令等待處理。CLIW信號線34由正規(guī)指令解碼器14根據當今正被處理的核心處理器指令是正規(guī)指令還是基準指令而進行設置。如果當今正被處理的核心處理器指令不是基準指令,則CLIW信號線34被正規(guī)指令解碼器14清除,以便由正規(guī)指令解碼器14的輸出來驅動控制多路轉接器16的輸出40,允許對指令進行正常處理。然而,如果當今正被處理的核心處理器指令是一條基準指令,則正規(guī)指令解碼器14向CLIW存儲器18傳送基準指令的一部分,這部分包含一個指向CLIW存儲器18中包含的合適的CLIW指令的指針。CLIW存儲器18在操作上發(fā)送此CLIW指令至CLIW指令解碼器20,以及CLIW信號線34被正規(guī)指令解碼器14設置以便由CLIW指令解碼器20的輸出38來驅動控制多路轉接器16的輸出40。CLIW信號線34還激勵一個核心外執(zhí)行單元接口52,促使核心外執(zhí)行單元接口52接收與核心外執(zhí)行單元54有關的解碼CLIW指令部分,并且將它們發(fā)送至核心外執(zhí)行單元54以供執(zhí)行。
對于正規(guī)和基準核心處理器指令兩者而言,指令的數(shù)據操作數(shù)地址部分被送至數(shù)據地址邏輯22。數(shù)據地址邏輯22在操作上根據該指令的數(shù)據操作數(shù)地址部分來控制數(shù)據存儲器26,以便將被核心執(zhí)行單元28和核心外執(zhí)行單元54讀取的數(shù)據值從數(shù)據存儲器26中傳輸至一條或多條數(shù)據總線42。數(shù)據地址邏輯22還在操作上把由核心執(zhí)行單元28和核心外執(zhí)行單元54寫至數(shù)據總線42的數(shù)據值傳輸至數(shù)據存儲器26。數(shù)據地址邏輯22還在操作上通過存儲器操作數(shù)來標記線44傳輸信號,用于向核心執(zhí)行單元28和核心外執(zhí)行單元54標示,每個數(shù)據項目是從數(shù)據總線中的那一條讀取或向它寫入的。
本發(fā)明讓系統(tǒng)設計者增加核心外邏輯單元而不修改核心處理器的正規(guī)指令集。這個容易的增加是可能的,這是由于描述于共同未決美國專利申請?zhí)?9/247,686中的可配置長指令字(CLIW)技術。CLIW指令是定制元指令,它們使用多條標準指令作為構成塊。
雖然已經結合有限的實施例描述了本發(fā)明,但應該知道,可以作出本發(fā)明的許多變動,修改和其他應用。
權利要求
1.一種數(shù)據處理器,包括(a)至少一個核心外執(zhí)行單元;(b)一個CLIW存儲器,用于存儲至少一個可配置長指令字(CLIW)指令;及(c)一個核心處理器,用于從所述CLIW存儲器獲取所述至少一條CLIW指令并且將所述至少一條CLIW指令的至少一個相應部分送至所述至少一個核心外執(zhí)行單元中的至少一個。
2.權利要求1的數(shù)據處理器,其中所述核心處理器在操作上執(zhí)行指令集的多條指令,而該指令集包括一條基準指令,用于啟動CLIW指令的檢索和執(zhí)行。
3.權利要求1的數(shù)據處理器,還包括(d)一個數(shù)據存儲器;及(e)一個數(shù)據地址邏輯系統(tǒng),所述數(shù)據地址邏輯系統(tǒng)在操作上控制所述核心處理器對所述數(shù)據存儲器的訪問,所述數(shù)據地址邏輯系統(tǒng)還在操作上控制所述至少一個核心外執(zhí)行單元對所述數(shù)據存儲器的訪問。
4.權利要求3的數(shù)據處理器,其中所述核心處理器在操作上從所述CLIW存儲器中檢索所述CLIW指令,以及所述數(shù)據地址邏輯系統(tǒng)在操作上控制所述核心處理器對所述數(shù)據存儲器的訪問和所述至少一個核心外執(zhí)行單元幾乎同時對所述數(shù)據存儲器的訪問。
5.權利要求3的數(shù)據處理器,還包括(f)一個CLIW指令解碼器,其中所述CLIW指令解碼器在操作上將所述CLIW指令解碼,及所述數(shù)據地址邏輯系統(tǒng)在操作上控制所述核心處理器對所述數(shù)據存儲器的訪問及所述至少一個核心外執(zhí)行單元幾乎同時對所述數(shù)據存儲器的訪問。{見權利要求4}
6.一種用于處理數(shù)據的方法,包括以下步驟(a)提供一個核心外執(zhí)行單元;(b)提供一個核心處理器;及(c)由所述核心處理器和所述核心外執(zhí)行單元兩者執(zhí)行一條CLIW指令以對數(shù)據進行處理。
7.權利要求6的方法,其中所述核心外執(zhí)行單元執(zhí)行所述CLIW指令的一個相應部分,而所述核心處理器則執(zhí)行所述CLIW指令的剩余部分。
8.權利要求7的方法,其中所述核心外執(zhí)行單元只執(zhí)行所述CLIW指令中所述相應部分。
9.權利要求7的方法,其中所述核心外執(zhí)行單元執(zhí)行所述CLIW指令的所述相應部分的操作是與所述核心處理器則執(zhí)行所述CLIW指令的所述剩余部分的操作同時進行的。
10.權利要求7的方法,還包括以下步驟(d)提供一個CLIW存儲器;(e)存儲所述CLIW指令于所述CLIW存儲器內;(f)由所述核心處理器從所述CLIW存儲器中檢索所述CLIW指令;及(g)在由所述核心外執(zhí)行單元進行所述執(zhí)行所述CLIW指令的所述相應部分的操作之前,由所述核心處理器將所述CLIW指令的所述相應部分送至所述核心外執(zhí)行單元。
11.權利要求10的方法,還包括以下步驟(h)由所述核心處理器發(fā)出一條基準指令以便啟動所述CLIW指令的檢索和執(zhí)行。
12.權利要求6的方法,還包括以下步驟(d)提供一個數(shù)據存儲器;(e)提供一個數(shù)據地址邏輯系統(tǒng),用于控制所述核心處理器對所述數(shù)據存儲器的訪問和所述核心外執(zhí)行單元對所述數(shù)據存儲器的訪問;及(f)在所述數(shù)據地址邏輯系統(tǒng)的控制下由所述核心外執(zhí)行單元訪問數(shù)據和由所述核心處理器訪問數(shù)據。
13.權利要求10的方法,還包括以下步驟(h)提供一個數(shù)據存儲器;(i)提供一個數(shù)據地址邏輯系統(tǒng),用于控制所述核心處理器對所述數(shù)據存儲器的訪問和所述核心外執(zhí)行單元對所述數(shù)據存儲器的訪問;及(j)在所述數(shù)據地址邏輯系統(tǒng)的控制下由所述核心外執(zhí)行單元訪問數(shù)據和由所述核心處理器訪問數(shù)據。及其中從所述CLIW存儲器中進行所述檢索所述CLIW指令的操作與所述核心外執(zhí)行單元進行所述訪問數(shù)據和所述核心處理器進行所述訪問數(shù)據的操作是同時進行的。
14.權利要求13的方法,還包括以下步驟(k)將所述CLIW指令解碼,及其中所述CLIW指令的所述解碼操作與所述核心外執(zhí)行單元進行所述訪問數(shù)據和所述核心處理器進行所述訪問數(shù)據的操作是同時進行的。
全文摘要
本發(fā)明是一個系統(tǒng)及操作該系統(tǒng)的方法,其中多個不同專用硬件核心外處理單元[圖2,單元1-n]被連至一個核心處理器[圖2,單元50],以便增加處理器的速度,處理能力和靈活性。由核心處理器執(zhí)行的基準指令啟動對存于CLIW存儲器內的可配置長指令字(CLIW)指令的執(zhí)行[圖2,單元18]。核心外執(zhí)行單元的操作由CLIW指令控制。這些CLIW指令還控制由核心處理器單獨地完成的操作。核心外邏輯單元在核心處理器的數(shù)據地址邏輯的控制下在操作上連至核心處理器的數(shù)據存儲器。將CLIW技術用于控制核心外硬件邏輯單元,允許增加多個不同核心外邏輯單元而不影響核心處理器的指令集,編碼空間或指令解碼器。
文檔編號G06F9/38GK1411578SQ01806116
公開日2003年4月16日 申請日期2001年3月16日 優(yōu)先權日2000年3月27日
發(fā)明者依耶爾·瑞森, 瑞吉斯·赫瑞格, 海姆·格萊諾特 申請人:英芬能技術公司