擴(kuò)展功能單元及計(jì)算設(shè)備擴(kuò)展系統(tǒng)和擴(kuò)展方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于可編程器件的應(yīng)用技術(shù),具體地,涉及擴(kuò)展功能單元及計(jì)算設(shè)備擴(kuò)展系統(tǒng)和擴(kuò)展方法。
【背景技術(shù)】
[0002]隨著嵌入式計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算設(shè)備的集成度越來(lái)越高,性能及功能越來(lái)越強(qiáng)大,其復(fù)雜度也不斷提高。
[0003]計(jì)算設(shè)備不僅包括計(jì)算機(jī)中使用的通用處理器,還包括將處理器與外圍電子系統(tǒng)集成在一個(gè)芯片中的片上系統(tǒng)(簡(jiǎn)稱(chēng)為SOC)。片上系統(tǒng)是客戶定制的或面向特定用途的標(biāo)準(zhǔn)產(chǎn)品,雖然這樣可以降低制造成本,但卻存在著欠缺特定功能和擴(kuò)展性差的問(wèn)題。在SOC的硬件資源不能滿足需求時(shí),可以采用附加的可編程器件(例如現(xiàn)場(chǎng)可編程門(mén)陣列,BPFPGA,或者復(fù)雜可編程邏輯器件,即CPLD)等添加計(jì)算單元資源,以彌補(bǔ)產(chǎn)品計(jì)算能力方面或功能性方面的不足。
[0004]圖1示出現(xiàn)有的計(jì)算設(shè)備擴(kuò)展系統(tǒng)的示意性框圖。該計(jì)算設(shè)備擴(kuò)展系統(tǒng)包括計(jì)算設(shè)備100、擴(kuò)展功能單元200、動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器DRAM 400和靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器SRAM500。計(jì)算設(shè)備100可以是片上系統(tǒng)(SOC)或通用處理器。擴(kuò)展功能單元200例如是現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或復(fù)雜可編程邏輯器件(CPLD)或?qū)S脴?biāo)準(zhǔn)電路產(chǎn)品(ASSP)。DRAM400采用動(dòng)態(tài)刷新來(lái)保持?jǐn)?shù)據(jù),由于成本低,通常作為大容量的主存儲(chǔ)器。SRAM 500可以靜態(tài)保持?jǐn)?shù)據(jù),不需要?jiǎng)討B(tài)刷新,由于訪問(wèn)效率高且速度快,通常作為高速緩存。
[0005]計(jì)算設(shè)備100具有存儲(chǔ)器接口(例如SRAM接口和DRAM接口),使得計(jì)算設(shè)備100可以經(jīng)由內(nèi)存總線分別訪問(wèn)DRAM 400和SRAM 500。計(jì)算設(shè)備100經(jīng)由SERDES接口、HPI接口或SPI接收連接至擴(kuò)展功能單元200。如果需要,計(jì)算設(shè)備100可以訪問(wèn)DRAM 400和SRAM 500ο
[0006]然而,在上述現(xiàn)有的計(jì)算設(shè)備擴(kuò)展系統(tǒng)中,計(jì)算設(shè)備100和擴(kuò)展功能單元200缺乏針對(duì)共用的存儲(chǔ)器的訪問(wèn)高效的協(xié)調(diào)機(jī)制,在計(jì)算設(shè)備100和擴(kuò)展功能單元200之間不能實(shí)現(xiàn)高速數(shù)據(jù)緩沖和數(shù)據(jù)共享。因此,現(xiàn)有的計(jì)算設(shè)備擴(kuò)展系統(tǒng)限制了計(jì)算設(shè)備100和擴(kuò)展功能單元200的協(xié)處理能力和效率。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的在于提供一種可以提高計(jì)算設(shè)備和擴(kuò)展功能單元之間數(shù)據(jù)共享效率的計(jì)算設(shè)備擴(kuò)展系統(tǒng)和擴(kuò)展方法。
[0008]根據(jù)本發(fā)明的一方面,提供一種擴(kuò)展功能單元,包括:片上RAM,包括指令存儲(chǔ)區(qū)和數(shù)據(jù)緩沖區(qū);片上RAM控制器,用于將指令存儲(chǔ)區(qū)和數(shù)據(jù)緩沖區(qū)與外部用戶自定義總線相連;協(xié)處理引擎,經(jīng)由第一 SRAM總線與指令存儲(chǔ)區(qū)和數(shù)據(jù)緩沖區(qū)相連,并經(jīng)由互連總線與SRAM封裝器相連;接口橋,用于將外部用戶自定義總線與SRAM封裝器相連;以及SRAM封裝器,用于協(xié)處理引擎和接口橋中的一個(gè)與外部?jī)?nèi)存總線相連,其中,所述外部用戶自定義總線和所述片上RAM控制器一起提供外部設(shè)備訪問(wèn)指令存儲(chǔ)區(qū)和數(shù)據(jù)緩沖區(qū)的路徑,所述外部用戶自定義總線、所述接口橋、所述第二 SRAM總線、所述SRAM封裝器和所述外部?jī)?nèi)存總線一起形成外部設(shè)備訪問(wèn)外部SRAM的路徑。
[0009]優(yōu)選地,所述互連總線、所述SRAM封裝器和所述外部?jī)?nèi)存總線一起形成協(xié)處理引擎訪問(wèn)外部SRAM的路徑。
[0010]優(yōu)選地,所述協(xié)處理引擎至少包括計(jì)算單元、加速引擎、支持某種指令集的專(zhuān)用處理器/控制器中的一種。
[0011]優(yōu)選地,所述接口橋包括控制邏輯、寫(xiě)入緩沖器和讀取緩沖器,所述控制邏輯用于產(chǎn)生激活SOC/CPEs數(shù)據(jù)共享通道的請(qǐng)求信號(hào),并發(fā)送至SRAM封裝器;所述寫(xiě)入緩沖器和讀取緩沖器,用于緩存經(jīng)由用戶自定義總線傳送的數(shù)據(jù)信號(hào)。
[0012]優(yōu)選地,所述SRAM封裝器包括SRAM控制器、旁路通道和I/O復(fù)用接口,其中,所述SRAM控制器用于接收所述接口橋發(fā)送的請(qǐng)求信號(hào),并根據(jù)該請(qǐng)求信號(hào)暫停來(lái)自互連總線的操作,并產(chǎn)生授權(quán)信號(hào)發(fā)送至I/O復(fù)用接口 ;所述旁路通道用于接收接口橋的總線信號(hào),并旁路至I/O復(fù)用接口 ;所述I/O復(fù)用接口接收SRAM控制器發(fā)送的授權(quán)信號(hào),并根據(jù)所述授權(quán)信號(hào)選取對(duì)應(yīng)的總線信號(hào)。
[0013]優(yōu)選地,所述擴(kuò)展功能單元還包括本地?cái)?shù)據(jù)緩沖區(qū)作為協(xié)處理引擎在處理數(shù)據(jù)時(shí)的臨時(shí)緩沖區(qū)。
[0014]根據(jù)本發(fā)明的另一方面,提供一種計(jì)算設(shè)備擴(kuò)展系統(tǒng),包括:上述的擴(kuò)展功能單元;計(jì)算設(shè)備,經(jīng)由第一內(nèi)存總線與設(shè)備擴(kuò)展裝置相連;設(shè)備擴(kuò)展裝置,經(jīng)由第二內(nèi)存總線與動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器相連;擴(kuò)展功能單元,經(jīng)由用戶自定義總線與設(shè)備擴(kuò)展裝置相連;靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器,經(jīng)由第三內(nèi)存總線與擴(kuò)展功能單元相連。
[0015]優(yōu)選地,計(jì)算設(shè)備為選自通用處理器和片上系統(tǒng)中的一種。
[0016]優(yōu)選地,所述設(shè)備擴(kuò)展裝置包括第一端口提供第一內(nèi)存總線,用于與外部的計(jì)算設(shè)備相連;第二端口提供第二內(nèi)存總線,用于與動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器相連;第三端口提供用戶自定義總線,用于與擴(kuò)展功能單元相連。
[0017]優(yōu)選地,所述設(shè)備擴(kuò)展裝置根據(jù)內(nèi)存總線信號(hào)產(chǎn)生選擇信號(hào),使得第一至第三端口中的任一個(gè)端口與第一至第三端口中的其余兩個(gè)端口中的一個(gè)端口相連,從而提供內(nèi)存總線的路由功能,所述內(nèi)存總線信號(hào)包括數(shù)據(jù)信號(hào)以及地址和控制信號(hào)。
[0018]優(yōu)選地,所述第一內(nèi)存總線、所述第二內(nèi)存總線、所述第二內(nèi)存總線為SDRAM總線。
[0019]根據(jù)本發(fā)明的另一方面,提供一種計(jì)算設(shè)備擴(kuò)展方法,用于配置包括計(jì)算設(shè)備、設(shè)備擴(kuò)展裝置、以及擴(kuò)展功能單元的計(jì)算設(shè)備擴(kuò)展系統(tǒng),所述方法包括:計(jì)算設(shè)備經(jīng)由內(nèi)存總線向設(shè)備擴(kuò)展裝置傳輸內(nèi)存總線信號(hào);設(shè)備擴(kuò)展裝置接收所述內(nèi)存總線信號(hào),并根據(jù)所述內(nèi)存總線信號(hào)產(chǎn)生選擇信號(hào);所述設(shè)備擴(kuò)展裝置根據(jù)所述選擇信號(hào)提供計(jì)算設(shè)備、擴(kuò)展功能單元和外部存儲(chǔ)器之間的訪問(wèn)路徑,所述內(nèi)存總線信號(hào)包括數(shù)據(jù)信號(hào)以及地址和控制信號(hào)。
[0020]優(yōu)選地,所述設(shè)備擴(kuò)展裝置根據(jù)所述內(nèi)存總線信號(hào)產(chǎn)生選擇信號(hào)包括:譯碼器根據(jù)地址和控制信號(hào)中的片選信號(hào)和/或地址信號(hào)產(chǎn)生選擇信號(hào)。
[0021]優(yōu)選地,所述計(jì)算設(shè)備擴(kuò)展方法提供以下訪問(wèn)路徑中的至少之一:計(jì)算設(shè)備直接訪問(wèn)設(shè)備擴(kuò)展裝置,擴(kuò)展功能單元直接訪問(wèn)設(shè)備擴(kuò)展裝置,計(jì)算設(shè)備經(jīng)由設(shè)備擴(kuò)展裝置訪問(wèn)外部存儲(chǔ)器,擴(kuò)展功能單元經(jīng)由設(shè)備擴(kuò)展裝置訪問(wèn)外部存儲(chǔ)器,以及計(jì)算設(shè)備經(jīng)由設(shè)備擴(kuò)展裝置訪問(wèn)擴(kuò)展功能單元。
[0022]優(yōu)選地,所述設(shè)備擴(kuò)展裝置包括:第一端口,用于經(jīng)由內(nèi)存總線與外部的計(jì)算設(shè)備相連;第二端口,用于經(jīng)由內(nèi)存總線與外部的外部存儲(chǔ)器相連;第三端口,用于經(jīng)由用戶自定義總線與擴(kuò)展功能單元相連;第一數(shù)據(jù)緩沖器,用于緩存經(jīng)由第一端口傳送的數(shù)據(jù)信號(hào);第二數(shù)據(jù)緩沖器,用于緩存經(jīng)由第二端口傳送的數(shù)據(jù)信號(hào);第三數(shù)據(jù)緩沖器,用于緩存經(jīng)由第三端口傳送的數(shù)據(jù)信號(hào);譯碼器,用于根據(jù)經(jīng)由第一端口傳送的地址和控制信號(hào),產(chǎn)生所述選擇信號(hào);數(shù)據(jù)復(fù)用模塊,用于根據(jù)選擇信號(hào),將第一至第三數(shù)據(jù)緩沖器中的至少兩個(gè)數(shù)據(jù)緩沖器相連;以及旁路開(kāi)關(guān)陣列,所述旁路開(kāi)關(guān)陣列根據(jù)選擇信號(hào),選擇性地將地址和控制信號(hào)從第一端口傳送至第二端口。
[0023]優(yōu)選地,所述計(jì)算設(shè)備經(jīng)由設(shè)備擴(kuò)展裝置訪問(wèn)外部存儲(chǔ)器包括:在讀操作中,計(jì)算設(shè)備發(fā)出地址和控制信號(hào)給譯碼器和旁路開(kāi)關(guān)陣列,譯碼器對(duì)地址和控制信號(hào)進(jìn)行譯碼,解析出計(jì)算設(shè)備發(fā)出的指令為計(jì)算設(shè)備對(duì)外部存儲(chǔ)器的讀操作,旁路開(kāi)關(guān)陣列打開(kāi),地址和控制信號(hào)經(jīng)旁路開(kāi)關(guān)陣列傳遞到外部存儲(chǔ)器;外部存儲(chǔ)器根據(jù)接收到的地址和控制信號(hào)后,外部存儲(chǔ)器的相應(yīng)數(shù)據(jù)信號(hào)依次提供給第二數(shù)據(jù)緩沖器、數(shù)據(jù)復(fù)用模塊選擇、第一數(shù)據(jù)緩沖器,計(jì)算設(shè)備讀取第一數(shù)據(jù)緩沖器緩存的數(shù)據(jù);在寫(xiě)操作中,計(jì)算設(shè)備發(fā)出地址和控制信號(hào)給譯碼器和旁路開(kāi)關(guān)陣列,譯碼器對(duì)地址和控制信號(hào)進(jìn)行譯碼,解析出計(jì)算設(shè)備發(fā)出的指令為計(jì)算設(shè)備對(duì)外部存儲(chǔ)器的寫(xiě)操作,旁路開(kāi)關(guān)陣列打開(kāi),地址和控制信號(hào)經(jīng)旁路開(kāi)關(guān)陣列傳遞到外部存儲(chǔ)器;計(jì)算設(shè)備發(fā)出數(shù)據(jù)信號(hào),數(shù)據(jù)信號(hào)依次經(jīng)過(guò)第一數(shù)據(jù)緩沖器、數(shù)據(jù)復(fù)用模塊、第二數(shù)據(jù)緩沖器,外部存儲(chǔ)器根據(jù)接收到的地址和控制信號(hào)將第二數(shù)據(jù)緩沖器的數(shù)據(jù)寫(xiě)入到外部存儲(chǔ)器相應(yīng)地址。
[0024]優(yōu)選地,所述計(jì)算設(shè)備經(jīng)由設(shè)備擴(kuò)展裝置訪問(wèn)擴(kuò)展功能單元包括:在讀操作中,計(jì)算設(shè)備發(fā)出地址和控制信號(hào)給譯碼器和旁路開(kāi)關(guān)陣列,譯碼器對(duì)地址和控制信號(hào)進(jìn)行譯碼,解析出計(jì)算設(shè)備發(fā)出的指令為計(jì)算設(shè)備對(duì)擴(kuò)展功能單元的讀操作,旁路開(kāi)關(guān)陣列關(guān)閉,地址和控制信號(hào)經(jīng)譯碼器譯碼后由用戶總線控制器發(fā)出地址和控制信號(hào)給擴(kuò)展功能單元;擴(kuò)展功能單元根據(jù)接用戶總線控制器發(fā)出的地址和控制信號(hào),擴(kuò)展功能單元的相應(yīng)數(shù)據(jù)信號(hào)依次提供給第三數(shù)據(jù)緩沖器、數(shù)據(jù)復(fù)用模塊選擇、第一數(shù)據(jù)緩沖器,計(jì)算設(shè)備讀取第一數(shù)據(jù)緩沖器緩存的數(shù)據(jù);在寫(xiě)操作中,計(jì)算設(shè)備發(fā)出地址和控制信號(hào)給譯碼器和旁路開(kāi)關(guān)陣列,譯碼器對(duì)地址和控制信號(hào)進(jìn)行譯碼,解析出計(jì)算設(shè)備發(fā)出的指令為計(jì)算設(shè)備對(duì)擴(kuò)展功能單元的寫(xiě)操作,旁路開(kāi)關(guān)陣列關(guān)閉,地址和控制信號(hào)經(jīng)譯碼器譯碼后由用戶總線控制