器發(fā)出地址和控制信號給擴展功能單元;計算設(shè)備發(fā)出數(shù)據(jù)信號,數(shù)據(jù)信號依次經(jīng)過第一數(shù)據(jù)緩沖器、數(shù)據(jù)復(fù)用模塊、第三數(shù)據(jù)緩沖器,擴展功能單元根據(jù)用戶總線控制器發(fā)出的地址和控制信號將第三數(shù)據(jù)緩沖器的數(shù)據(jù)寫入到擴展功能單元相應(yīng)地址。
[0025]優(yōu)選地,所述擴展功能單元經(jīng)由設(shè)備擴展裝置訪問外部存儲器包括:在讀操作中,計算設(shè)備發(fā)出地址和控制信號給譯碼器和旁路開關(guān)陣列,譯碼器對地址和控制信號進行譯碼,解析出計算設(shè)備發(fā)出的指令為擴展功能單元對外部存儲器的讀操作,旁路開關(guān)陣列打開,同時地址和控制信號經(jīng)譯碼器譯碼后由用戶總線控制器發(fā)出地址和控制信號給擴展功能單元;外部存儲器根據(jù)接收到的地址和控制信號后,外部存儲器的相應(yīng)數(shù)據(jù)信號依次提供給第二數(shù)據(jù)緩沖器、數(shù)據(jù)復(fù)用模塊選擇、第三數(shù)據(jù)緩沖器,擴展功能單元讀取第三數(shù)據(jù)緩沖器緩存的數(shù)據(jù);在寫操作中,計算設(shè)備發(fā)出地址和控制信號給譯碼器和旁路開關(guān)陣列,譯碼器對地址和控制信號進行譯碼,解析出計算設(shè)備發(fā)出的指令為擴展功能單元對外部存儲器的寫操作,旁路開關(guān)陣列打開,同時地址和控制信號經(jīng)譯碼器譯碼后由用戶總線控制器發(fā)出地址和控制信號給擴展功能單元;擴展功能單元根據(jù)用戶總線發(fā)出的地址和控制信號將數(shù)據(jù)依次提供給第三數(shù)據(jù)緩沖器、數(shù)據(jù)復(fù)用模塊、第二數(shù)據(jù)緩沖器,從而將擴展功能單元的數(shù)據(jù)寫入外部存儲器相應(yīng)地址。
[0026]本發(fā)明提供的擴展功能單元,擁有多個片上數(shù)據(jù)緩沖區(qū),可以很好的支持CPEs的流水處理,增大計算效率。包括該擴展功能單元的計算設(shè)備擴展系統(tǒng)利用SOC/處理器現(xiàn)有的內(nèi)存接口作為擴展功能單元的擴展接口,減少對SOC/處理器接口資源需求;利用擴展功能單元,擁有多個片上數(shù)據(jù)緩沖區(qū),可以很好的支持CPEs的流水處理,增大計算效率;利用外部SRAM的容量和速度支持CPEs處理較大的幀/包數(shù)據(jù),以及帶有反饋算法的數(shù)據(jù),實現(xiàn)SOC/處理器與擴展設(shè)備核心處理單元CPEs之間的數(shù)據(jù)緩沖以及數(shù)據(jù)共享,提高了計算設(shè)備和擴展功能單元之間協(xié)處理能力。
【附圖說明】
[0027]通過以下參照附圖對本發(fā)明實施例的描述,本發(fā)明的上述以及其他目的、特征和優(yōu)點將更為清楚,在附圖中:
[0028]圖1示出根據(jù)現(xiàn)有技術(shù)的計算設(shè)備擴展系統(tǒng)的示意性框圖;
[0029]圖2示出根據(jù)本發(fā)明的計算設(shè)備擴展系統(tǒng)的示意性框圖;
[0030]圖3示出根據(jù)本發(fā)明的計算設(shè)備擴展系統(tǒng)中使用的設(shè)備擴展裝置的第一實施例的示意性框圖;
[0031]圖4示出根據(jù)本發(fā)明的計算設(shè)備擴展系統(tǒng)中使用的設(shè)備擴展裝置的第二實施例的示意性框圖;
[0032]圖5示出根據(jù)本發(fā)明的計算設(shè)備擴展方法的流程圖;
[0033]圖6示出根據(jù)本發(fā)明的計算設(shè)備擴展系統(tǒng)中使用的擴展功能單元的示意性框圖;以及
[0034]圖7示出根據(jù)本發(fā)明的計算設(shè)備擴展系統(tǒng)中采用的內(nèi)存映射模型。
【具體實施方式】
[0035]以下將參照附圖更詳細地描述本發(fā)明的各種實施例。在各個附圖中,相同的元件采用相同或類似的附圖標記來表示。為了清楚起見,附圖中的各個部分沒有按比例繪制。
[0036]本發(fā)明可以各種形式呈現(xiàn),以下將描述其中一些示例。
[0037]圖2示出根據(jù)本發(fā)明的計算設(shè)備擴展系統(tǒng)的示意性框圖。該計算設(shè)備擴展系統(tǒng)包括計算設(shè)備100、擴展功能單元200、動態(tài)隨機訪問存儲器DRAM 400和靜態(tài)隨機訪問存儲器SRAM 500ο計算設(shè)備100可以是片上系統(tǒng)(SOC)或通用處理器。擴展功能單元200例如是現(xiàn)場可編程門陣列(FPGA)或復(fù)雜可編程邏輯器件(CPLD)或?qū)S脴藴孰娐樊a(chǎn)品(ASSP)。
[0038]與圖1所示的現(xiàn)有技術(shù)的計算設(shè)備擴展系統(tǒng)不同,根據(jù)本發(fā)明的計算設(shè)備擴展系統(tǒng)還包括附加的設(shè)備擴展裝置600。計算設(shè)備100與設(shè)備擴展裝置600之間經(jīng)由第一內(nèi)存總線連接,擴展功能單元200與設(shè)備擴展裝置600之間經(jīng)由用戶自定義總線連接,DRAM 400與設(shè)備擴展裝置600之間經(jīng)由第二內(nèi)存總線連接。此外,擴展功能單元200與SRAM 500之間經(jīng)由第三內(nèi)存總線連接。
[0039]計算設(shè)備100經(jīng)由第一內(nèi)存總線、設(shè)備擴展裝置600和第二內(nèi)存總線訪問DRAM400,以及經(jīng)由第一內(nèi)存總線、設(shè)備擴展裝置600、擴展功能單元200和第三內(nèi)存總線訪問SRAM 500。計算設(shè)備100還可以經(jīng)由第一內(nèi)存總線、設(shè)備擴展裝置600和用戶自定義總線訪問擴展功能單元200的某些內(nèi)部緩沖區(qū),從而建立了計算設(shè)備100和擴展功能單元200之間的直接高速數(shù)據(jù)緩沖和數(shù)據(jù)共享。
[0040]擴展功能單元200的主功能模塊為協(xié)處理引擎(即,CPEs CoordinateProcessing Engines)。協(xié)處理引擎可以是任何可能的計算單元,比如FFT/DCT運算、FIR濾波、Huffman編解碼、TOE等。協(xié)處理引擎也可以是一個獨立、完善的加速引擎,如視頻編解碼引擎。協(xié)處理引擎甚至可以支持某種指令集的專用處理器/控制器,如音頻處理DSP。當然,協(xié)處理引擎也可以上述的計算單元、加速引擎、以及專用處理器/控制器的混合。
[0041]擴展功能單元200還包括片上RAM,用于提供CPEs工作所需的數(shù)據(jù)緩沖區(qū)OnChipRAM-A,指令存儲區(qū)OnChipRAM-B和本地數(shù)據(jù)緩沖區(qū)OnChipRAM_C。數(shù)據(jù)緩沖區(qū)OnChipRAM-A的數(shù)量為一個或多個。采用多個數(shù)據(jù)緩沖區(qū)OnChipRAM-A可以提高CPEs流水線處理效率的。數(shù)據(jù)緩沖區(qū)OnChipRAM-A也有可能是I個或者多個FIFO的形式存在。指令存儲區(qū)OnChipRAM-B用于存儲計算設(shè)備100寫入的指令。當擴展功能單元200中的CPEs是帶指令集的處理器/控制器時,或者其內(nèi)部包含了帶指令集的處理器/控制器時,就需要指令存儲區(qū)OnChipRAM-B的支持。本地數(shù)據(jù)緩沖區(qū)OnChipRAM-C是CPEs在處理數(shù)據(jù)時的臨時緩沖區(qū)。
[0042]DRAM 400是計算設(shè)備100和擴展功能單元200共用的外部動態(tài)隨機訪問存儲器。對DRAM 400訪問效率不如訪問SRAM 500高,而且會占用計算設(shè)備100的帶寬。在擴展功能單元200的CPEs需要較大的存儲空間,但不支持外部SRAM的情況下可以使用DRAM 400。
[0043]SRAM 500是計算設(shè)備100和擴展功能單元200共用的外部靜態(tài)隨機訪問存儲器。它能夠支持的容量通常比數(shù)據(jù)緩沖區(qū)要大。當CPEs需要處理的幀/包數(shù)據(jù)比較大,且需要反復(fù)使用時,需要外部共享SRAM的支持。比如MPEG-4視頻解碼,源數(shù)據(jù)由計算設(shè)備100寫入外部SRAM,而CPEs從SRAM讀出原始數(shù)據(jù)并處理。這個SRAM增加了 CPEs的處理數(shù)據(jù)能力,它支持CPEs獨立完成一個較大的數(shù)據(jù)處理過程,其過程可以不需要計算設(shè)備100的協(xié)助。
[0044]圖3分別示出根據(jù)本發(fā)明的計算設(shè)備擴展系統(tǒng)中使用的設(shè)備擴展裝置第一實施例的示意性框圖。在根據(jù)本發(fā)明的計算設(shè)備擴展系統(tǒng)中,設(shè)備擴展裝置610例如具有第一至第三端口。第一端口用于提供第一內(nèi)存接口,從而與計算設(shè)備100的內(nèi)存接口之間的連接。第二端口用于提供第二內(nèi)存接口,從而提供設(shè)備擴展裝置610與DRAM 400之間的連接。第三端口用于提供用戶自定義接口,從而提供擴展功能單元200的內(nèi)存接口之間的連接。
[0045]在優(yōu)選的實施例中,數(shù)據(jù)緩沖器6101和6105分別由三態(tài)緩沖器組成。在三態(tài)緩沖器的使能輸出端有效時,三態(tài)緩沖器實現(xiàn)正常邏輯輸出,即邏輯值為O或I。在三態(tài)緩沖器的使能輸出端無效時,三態(tài)緩沖器的輸入端可以接收數(shù)據(jù),但是輸出端為高阻狀態(tài)。數(shù)據(jù)緩沖6107則不需要由三態(tài)緩沖器組成,只需要提供輸入輸出緩沖功能即可。
[0046]譯碼器6102和旁路開關(guān)陣列6103經(jīng)由內(nèi)存總線,從計算設(shè)備100的內(nèi)存接口獲取地址和控制信號。譯碼器6102根據(jù)地址和控制信號產(chǎn)生選擇信號。
[0047]在另一個示例中,譯碼器6102根據(jù)地址和控制信號中的存儲器片選信號產(chǎn)生選擇信號。如果存儲器片選信號為高電平,則選擇信號指示存儲操作。如果存儲器片選信號為低電平,則選擇信號指示擴展通信操作。
[0048]在另一個示例中,譯碼器6102根據(jù)地址和控制信號中的地址信號產(chǎn)生選擇信號。例如,地址信號包括地址數(shù)據(jù)和保留數(shù)據(jù)。假定地址數(shù)據(jù)為N位,例如32位,那么可以將其中的M位(例如I位)作為保留位,用于指示計算設(shè)備100期望的操作類型。如果保留位為高電平,則選擇信號指示存儲操作。如果保留位為低電平,則選擇信號指示擴展通信操作。
[0049]譯碼器6102將選擇信號分別提供至數(shù)據(jù)緩沖器6101、6105和6107、旁路開關(guān)陣列6103、數(shù)據(jù)復(fù)用模塊6104和用戶總線控制器6106。
[0050]數(shù)據(jù)復(fù)用模塊6134包括一個多路復(fù)用器6134a。根據(jù)選擇信號,多路復(fù)用器6134a將數(shù)據(jù)緩沖器6131與數(shù)據(jù)緩沖器6135和6137中的一個相連。同時,根據(jù)選擇信號,數(shù)據(jù)緩沖器6131以及數(shù)據(jù)緩沖