專利名稱:硬件抽象數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)處理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù),尤其涉及一種硬件抽象數(shù)據(jù)結(jié)構(gòu)(Hardware AbstractData Structure, HADS)、數(shù)據(jù)處理方法及系統(tǒng)。
背景技術(shù):
用處理器處理一個(gè)具體任務(wù)時(shí),需要將具體任務(wù)抽象成適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),基本的類型包括集合、線性結(jié)構(gòu)、樹(shù)形結(jié)構(gòu)、圖狀結(jié)構(gòu)等,這些結(jié)構(gòu)的實(shí)現(xiàn)大都是通過(guò)軟件實(shí)現(xiàn)的,效率低、實(shí)現(xiàn)復(fù)雜、能耗比較大。下面以堆棧(STACK)為例說(shuō)明軟件如何實(shí)現(xiàn)特定的數(shù)據(jù)結(jié)構(gòu)。STACK是限定僅在棧頂(TOP)和棧底(BASE)進(jìn)行插入或刪除操作的線性表。實(shí)現(xiàn)軟件STACK的過(guò)程是先根據(jù)棧的最大使用量申請(qǐng)存儲(chǔ)空間,設(shè)置STACK棧底指針和棧頂指針,初始化時(shí)STACK為NULL,棧頂指針指向棧底,即TOP = BASE,然后,通過(guò)壓入(PUSH)指令將數(shù)據(jù)壓入STACK,每執(zhí)行一次PUSH操作,TOP加I ;通過(guò)彈出(POP)指令彈出STACK保存的數(shù)據(jù),每執(zhí)行一次POP操作,TOP減I。這里的TOP和BASE指針都是保存在寄存器或存儲(chǔ)器內(nèi)的,加I或減I操作也需要通過(guò)指令來(lái)完成。軟件STACK的實(shí)現(xiàn)原理如圖1所示,可以看出,對(duì)STACK的每次操作至少需要兩條指令,如果需要實(shí)現(xiàn)STACK的防覆蓋等功能,每次操作將需要更多的指令,從而STACK的處理效率較低。雖然目前出現(xiàn)了硬件實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu),但是也只能實(shí)現(xiàn)結(jié)構(gòu)較簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),如先入先出隊(duì)列(FIFO)、STACK、堆(HEAP)、隊(duì)列(QUEUE)等集合或線性結(jié)構(gòu),但由于現(xiàn)有硬件實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)通常是采用固定硬件實(shí)現(xiàn)的,從而可配置性不強(qiáng)、不靈活、浪費(fèi)系統(tǒng)資源。硬件實(shí)現(xiàn)的FIFO結(jié)構(gòu)如圖2所示,可以看出,硬件FIFO由讀地址生成(Read AddressGenerate)、寫地址生成(Write Address Generate)、雙端口 SRAM (Double Port RAM)、FIFO的空滿狀態(tài)(Full and Empty Flag)組成,同時(shí)還需要考慮輸入輸出接口的兼容性問(wèn)題。雖然硬件實(shí)現(xiàn)的FIFO效率相當(dāng)高,設(shè)置不需要配置就可以直接使用,但是實(shí)現(xiàn)的FIFO大小、接口等都是固定不變的,另外,當(dāng)處理器不用FIFO的時(shí)候,這部分資源白白浪費(fèi)了,不可能將這種硬件FIFO用作HEAP或其它結(jié)構(gòu)。如果采用硬件實(shí)現(xiàn)TREE結(jié)構(gòu),除了不能重用外,設(shè)計(jì)也較復(fù)雜。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種硬件抽象數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)處理方法及系統(tǒng),能夠?qū)崿F(xiàn)可動(dòng)態(tài)配置、靈活多變、高效率、接口通用、互聯(lián)特性好的硬件抽象數(shù)據(jù)結(jié)構(gòu),提高數(shù)據(jù)處理效率。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:—種硬件抽象數(shù)據(jù)結(jié)構(gòu),該硬件抽象數(shù)據(jù)結(jié)構(gòu)HADS包括:通用接口 G1、控制和配置邏輯CCL和存儲(chǔ)庫(kù)MP ;其中,所述GI,用于實(shí)現(xiàn)HADS與處理器之間的交互;
所述CCL,用于根據(jù)GI接收的配置命令對(duì)MP進(jìn)行硬件數(shù)據(jù)結(jié)構(gòu)配置;所述MP,用于存儲(chǔ)數(shù)據(jù)。 該HADS還包括一致性接口 Cl,所述Cl,用于多核之間的互聯(lián)以及直接數(shù)據(jù)訪問(wèn)。該HADS還包括智慧邏輯IL,所述CCL,還用于根據(jù)GI接收的命令控制數(shù)據(jù)在MP到接口之間的傳輸、數(shù)據(jù)在IL內(nèi)的處理、以及數(shù)據(jù)的旁路;所述IL,用于根據(jù)CCL的控制,對(duì)MP中存儲(chǔ)的數(shù)據(jù)進(jìn)行處理。所述IL,還用于根據(jù)CCL的控制輸出處理后的數(shù)據(jù),或?qū)⑻幚砗蟮臄?shù)據(jù)寫回MP。一種數(shù)據(jù)處理方法,包括:處理器對(duì)HADS進(jìn)行配置,將HADS內(nèi)的存儲(chǔ)塊配置成需要的硬件數(shù)據(jù)結(jié)構(gòu),之后采用所述配置的存儲(chǔ)塊進(jìn)行數(shù)據(jù)存儲(chǔ)。所述處理器對(duì)HADS進(jìn)行配置,將HADS內(nèi)的存儲(chǔ)塊配置成需要的硬件數(shù)據(jù)結(jié)構(gòu)為:處理器通過(guò)GI將配置命令發(fā)送給CCL,所述配置命令至少攜帶需要配置的硬件數(shù)據(jù)結(jié)構(gòu)信息;所述CCL根據(jù)所述配置命令對(duì)MP進(jìn)行硬件數(shù)據(jù)結(jié)構(gòu)配置,將MP中的存儲(chǔ)塊配置成需要的硬件數(shù)據(jù)結(jié)構(gòu)。該方法還包括:處理器通過(guò)Cl或GI直接訪問(wèn)MP內(nèi)的數(shù)據(jù);所述CCL控制數(shù)據(jù)在MP與接口之間的傳輸、數(shù)據(jù)在IL內(nèi)的處理、以及數(shù)據(jù)在Cl與GI間的旁路。該方法還包括:所述CCL控制IL輸出處理后的數(shù)據(jù),或?qū)⑻幚砗蟮臄?shù)據(jù)寫回MP。所述處理器為本地處理器和/或遠(yuǎn)端處理器。一種數(shù)據(jù)處理系統(tǒng),包括處理器和權(quán)利要求1至4任一項(xiàng)所述的HADS。所述處理器為本地處理器和/或遠(yuǎn)端處理器。本發(fā)明硬件抽象數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)處理方法及系統(tǒng)中的硬件抽象數(shù)據(jù)結(jié)構(gòu)(HADS)包括:通用接口(GI)、控制和配置邏輯(CCL)和存儲(chǔ)庫(kù)(MP);其中,所述GI,用于實(shí)現(xiàn)HADS與處理器之間的互聯(lián);所述CCL,用于根據(jù)GI接收的配置命令對(duì)MP進(jìn)行硬件數(shù)據(jù)結(jié)構(gòu)配置;所述MP,用于存儲(chǔ)數(shù)據(jù)。本發(fā)明實(shí)現(xiàn)了完全可動(dòng)態(tài)配置、靈活多變、高效率、接口通用、互聯(lián)特性好的硬件抽象數(shù)據(jù)結(jié)構(gòu),采用所述硬件抽象數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)Cache、TCM、CAM等存儲(chǔ)結(jié)構(gòu),以及實(shí)現(xiàn)FIFO、BUFFER、HEAP、STACK、QUEUE、LINK、TABLE等線性結(jié)構(gòu),以及實(shí)現(xiàn)TREE型結(jié)構(gòu)以及實(shí)現(xiàn)圖等其它結(jié)構(gòu),可以使這些結(jié)構(gòu)的實(shí)現(xiàn)更加高效、靈活;同時(shí),本發(fā)明具有對(duì)數(shù)據(jù)的智慧處理和轉(zhuǎn)換功能,盡量將數(shù)據(jù)的處理靠近存儲(chǔ)器、減少對(duì)總線的依賴,從而能夠減輕處理器的負(fù)擔(dān),提高性能、降低功耗、節(jié)省成本。
圖1為現(xiàn)有軟件STACK的實(shí)現(xiàn)原理示意圖2為現(xiàn)有硬件實(shí)現(xiàn)的FIFO結(jié)構(gòu)示意圖;圖3為本發(fā)明硬件抽象數(shù)據(jù)結(jié)構(gòu)的示意圖;圖4為HADS可實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例1中HADS實(shí)現(xiàn)FIFO的示意圖;圖6為本發(fā)明實(shí)施例2中HADS實(shí)現(xiàn)TCM的示意圖;圖7為本發(fā)明實(shí)施例3中HADS實(shí)現(xiàn)STACK的示意圖;圖8為本發(fā)明實(shí)施例4中HADS實(shí)現(xiàn)Cache的示意圖;圖9為本發(fā)明實(shí)施例5中HADS實(shí)現(xiàn)查找表的示意圖;圖10為本發(fā)明實(shí)施例6中HADS實(shí)現(xiàn)TREE的示意圖;圖11為HADS內(nèi)對(duì)數(shù)據(jù)處理的實(shí)例示意圖;圖12為HADS在系統(tǒng)中可能的使用情況示意圖;圖13為HADS與其他存儲(chǔ)器共用的實(shí)例示意圖。
具體實(shí)施例方式本發(fā)明的基本思想是:硬件抽象數(shù)據(jù)結(jié)構(gòu)(HADS)包括:通用接口(GI)、控制和配置邏輯(CCL)和存儲(chǔ)庫(kù)(MP);其中,所述GI,用于實(shí)現(xiàn)HADS與處理器之間的交互;所述CCL,用于根據(jù)GI接收的配置命令對(duì)MP進(jìn)行硬件數(shù)據(jù)結(jié)構(gòu)配置;所述MP,用于存儲(chǔ)數(shù)據(jù)。圖3為本發(fā)明硬件抽象數(shù)據(jù)結(jié)構(gòu)的示意圖,如圖3所示,該硬件抽象數(shù)據(jù)結(jié)構(gòu)包括:通用接口(General Interface,GI)、控制和配置邏輯(Control and Configure Logic,CCL)和存儲(chǔ)庫(kù)(Memory Pool, MP),其中,所述GI,與處理器實(shí)現(xiàn)互聯(lián),用于實(shí)現(xiàn)HADS與處理器之間的交互;所述CCL,用于根據(jù)GI接收的配置命令對(duì)MP進(jìn)行硬件數(shù)據(jù)結(jié)構(gòu)配置;具體的,可以將MP內(nèi)的存儲(chǔ)陣列(Memory Array,MA)動(dòng)態(tài)配置成需要的硬件數(shù)據(jù)結(jié)構(gòu),如Cache、TCM、CAM、FIFO、BUFFER、HEAP、STACK、QUEUE、TABLE、LINK、TREE、GRAPHIC 等結(jié)構(gòu)。所述MP,用于存儲(chǔ)數(shù)據(jù)。這里所述的數(shù)據(jù)是一個(gè)廣義的概念,除了具體的數(shù)據(jù),還可以包括索引、指針等。MP—般由大量的存儲(chǔ)塊(可以以陣列表示,但不限于陣列)組成,一定大小的存儲(chǔ)器可以配置成η塊存儲(chǔ)陣列(Memory Array, MA),每個(gè)存儲(chǔ)陣列的作用完全可配置,可能存儲(chǔ)的是索引,也可能是指針或數(shù)據(jù)。本發(fā)明將MP以外的部分稱為硬件抽象的數(shù)據(jù)結(jié)構(gòu)智慧控制和互聯(lián)(HADS_ICI)。該HADS還包括一致性接口(Coherence Interface, Cl),用于多核之間的互聯(lián)以及直接數(shù)據(jù)訪問(wèn)。該HADS 還包括智慧邏輯(Intelligence Logic, IL),所述CCL,還用于根據(jù)GI接收的命令控制數(shù)據(jù)在MP到接口之間的傳輸、數(shù)據(jù)在IL內(nèi)的處理、以及數(shù)據(jù)的旁路;所述IL,用于根據(jù)CCL的控制,對(duì)MP中存儲(chǔ)的數(shù)據(jù)進(jìn)行處理。所述IL,還用于根據(jù)CCL的控制輸出處理后的數(shù)據(jù),或?qū)⑻幚砗蟮臄?shù)據(jù)寫回MP。HADS還可以包括一致性接口(Coherence Interface, Cl):用于多核之間的互聯(lián),也可用于直接數(shù)據(jù)訪問(wèn)(如DMA);需要說(shuō)明的是,基于HADS,可以根據(jù)軟件的需求,將整個(gè)MP配置成不同的數(shù)據(jù)結(jié)構(gòu),圖4為HADS可實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)示意圖,如圖4所示,系統(tǒng)可以將MP配置成不同的數(shù)據(jù)結(jié)構(gòu),即使這種數(shù)據(jù)結(jié)構(gòu)正在使用也可以動(dòng)態(tài)的改變其屬性,另外,所有這些數(shù)據(jù)結(jié)構(gòu)輸入或輸出的數(shù)據(jù)或索引等都可以通過(guò)IL進(jìn)行處理,不是所有訪問(wèn)都必須返回?cái)?shù)值給處理器,數(shù)據(jù)甚至可以在不同的數(shù)據(jù)結(jié)構(gòu)之間進(jìn)行流動(dòng),以達(dá)到節(jié)省總線帶寬,減輕處理器負(fù)擔(dān)的目的,處理器僅負(fù)責(zé)復(fù)雜的運(yùn)算和控制,從而提高處理性能。本發(fā)明還相應(yīng)地提出一種數(shù)據(jù)處理方法,該方法包括:處理器對(duì)HADS進(jìn)行配置,將HADS內(nèi)的存儲(chǔ)塊配置成需要的硬件數(shù)據(jù)結(jié)構(gòu),之后采用所述配置的存儲(chǔ)塊進(jìn)行數(shù)據(jù)存儲(chǔ)。所述處理器對(duì)HADS進(jìn)行配置,將HADS內(nèi)的存儲(chǔ)塊配置成需要的硬件數(shù)據(jù)結(jié)構(gòu)為:處理器通過(guò)GI將配置命令發(fā)送給CCL,所述配置命令至少攜帶需要配置的硬件數(shù)據(jù)結(jié)構(gòu)信息;所述CCL根據(jù)所述配置命令對(duì)MP進(jìn)行硬件數(shù)據(jù)結(jié)構(gòu)配置,將MP中的存儲(chǔ)塊配置成需要的硬件數(shù)據(jù)結(jié)構(gòu)。該方法還包括:處理器通過(guò)Cl或GI直接訪問(wèn)MP內(nèi)的數(shù)據(jù);所述CCL控制數(shù)據(jù)在MP到接口之間的傳輸、數(shù)據(jù)在IL內(nèi)的處理、以及數(shù)據(jù)在Cl和GI間的直通旁路。該方法還包括:所述CCL控制IL輸出處理后的數(shù)據(jù),或?qū)⑻幚砗蟮臄?shù)據(jù)寫回MP。所述處理器為本地處理器和/或遠(yuǎn)端處理器。本發(fā)明還相應(yīng)地提出一種數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括處理器和上述的HADS。所述處理器為本地處理器和/或遠(yuǎn)端處理器,多個(gè)處理器間可以共享同一種或多種數(shù)據(jù)結(jié)構(gòu)。下面結(jié)合具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步詳細(xì)說(shuō)明。實(shí)施例1圖5為本發(fā)明實(shí)施例1中HADS實(shí)現(xiàn)FIFO的示意圖,如圖5所示,本實(shí)施例中,根據(jù)一條簡(jiǎn)單的在MP內(nèi)配置一個(gè)FIFO的命令(①),HADS在CCL的控制(②)下將生成一個(gè)硬件FIFO,這個(gè)硬件FIFO的特性,包括大小、數(shù)據(jù)輸入輸出的方向(來(lái)自GI或Cl,也可以指定從Cl或GI輸出)、以及可以使能旁路、是否支持?jǐn)?shù)據(jù)覆蓋,甚至可以根據(jù)FIFO的狀態(tài)產(chǎn)生中斷,在使用過(guò)程中也可以使用命令適當(dāng)改變FIFO的屬性。在IL的支持下,可以對(duì)數(shù)據(jù)的輸入(③)和輸出(④)作運(yùn)算或變換等操作,F(xiàn)IFO的數(shù)據(jù)輸入既可以來(lái)自處理器,也可以是HADS內(nèi)其它結(jié)構(gòu)輸出的數(shù)據(jù);同樣輸出可以直接返回給處理器,也可以送到其它的數(shù)據(jù)結(jié)構(gòu)。實(shí)施例2圖6為本發(fā)明實(shí)施例2中HADS實(shí)現(xiàn)TCM的示意圖,可以看出,通過(guò)配置,HADS可以簡(jiǎn)單地當(dāng)作TCM來(lái)使用,該TCM甚至可以在一個(gè)時(shí)鐘周期返回處理器或其它數(shù)據(jù)結(jié)構(gòu)需要的數(shù)據(jù),節(jié)省對(duì)存儲(chǔ)器的訪問(wèn)延遲,提高處理器性能。實(shí)施例3
圖1為本發(fā)明實(shí)施例3中HADS實(shí)現(xiàn)STACK的示意圖,圖7所示的STACK完全可以達(dá)到圖1所示STACK的靈活程度,當(dāng)軟件覺(jué)得大小不夠使用時(shí),隨時(shí)可以通過(guò)指令動(dòng)態(tài)配置,與圖1不同的是,這種方法實(shí)現(xiàn)的STACK讀寫地址的生成完全由IL來(lái)做,不需要專門的地址生成邏輯。實(shí)施例4圖8為本發(fā)明實(shí)施例4中HADS實(shí)現(xiàn)Cache的示意圖,Cache的實(shí)現(xiàn)至少需要兩塊存儲(chǔ)陣列,分別作為TAG和DATA使用。通過(guò)IL和CCL,可以實(shí)現(xiàn)虛實(shí)地址轉(zhuǎn)換,甚至可以使用一塊存儲(chǔ)陣列來(lái)實(shí)現(xiàn)TLB的功能。通過(guò)一致性接口,可以進(jìn)行多核的互聯(lián)以及實(shí)現(xiàn)cache的一致性功能。實(shí)施例5本實(shí)施例以查找表為例說(shuō)明TABLE的實(shí)現(xiàn),圖9為本發(fā)明實(shí)施例5中HADS實(shí)現(xiàn)查找表的示意圖,具體的,可以使用一個(gè)存儲(chǔ)陣列來(lái)實(shí)現(xiàn)查找表,也可以使用多個(gè)存儲(chǔ)陣列。圖9中④表示索引,可以直接查表得到數(shù)據(jù)⑥,實(shí)現(xiàn)一級(jí)查找表的功能,也可能查表得到的是下一個(gè)索引⑤,實(shí)現(xiàn)多級(jí)鏈表。實(shí)施例6圖10為本發(fā)明實(shí)施例6中HADS實(shí)現(xiàn)TREE的示意圖,其中,④表示樹(shù)的根(root)指針,⑤表示由root指針得到的兩個(gè)分支指針,其中一個(gè)指針取到了數(shù)據(jù)⑥,到達(dá)了樹(shù)的葉(leaf),該分支結(jié)束;另一個(gè)分支指針取到的還是指針⑦,將繼續(xù)追蹤(trace),直到所追蹤的樹(shù)葉,取得需要的數(shù)據(jù)⑧。根據(jù)軟件的需要,HADS可以實(shí)現(xiàn)復(fù)雜的樹(shù)形結(jié)構(gòu),而不限于圖10的示例。需要說(shuō)明的是,從圖5到圖10僅是列舉了 HADS可以實(shí)現(xiàn)的幾種數(shù)據(jù)結(jié)構(gòu),在CCL和IL的控制下,HADS可以實(shí)現(xiàn)所有可以想到的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)可以在這些數(shù)據(jù)結(jié)構(gòu)之間流動(dòng),IL可以對(duì)這些數(shù)據(jù)進(jìn)行處理。舉例來(lái)說(shuō),兩個(gè)核之間通過(guò)FIFO進(jìn)行通信,如果兩個(gè)核的大小端是動(dòng)態(tài)可配置的,在它們之間傳輸?shù)臄?shù)據(jù)也必須根據(jù)兩個(gè)核配置的變化進(jìn)行大小端的匹配,如果兩個(gè)核的大小端是一致的,則數(shù)據(jù)直接傳輸?shù)紺l接口 ;如果大小端不一致,則需要將數(shù)據(jù)按字節(jié)扭一下,通過(guò)IL很容易實(shí)現(xiàn)這個(gè)功能,HADS內(nèi)對(duì)數(shù)據(jù)處理的實(shí)例如圖11所示。需要說(shuō)明的是,對(duì)于矩陣變換或位操作(如位提取或插入)等數(shù)據(jù)量大的操作,使用HADS更方便,可以在HADS內(nèi)定義一個(gè)BUFFER,將處理的中間結(jié)果先存入BUFFER內(nèi),待數(shù)據(jù)處理完后再返回給處理器。HADS在系統(tǒng)中可能的使用情況如圖12所示,可以看出,HADS的使用非常靈活,可以作為單核的內(nèi)部存儲(chǔ)器,也可以作為多核的共享存儲(chǔ)器;還可以每個(gè)核擁有一個(gè)或多個(gè)HADS,核間通過(guò)一致性接口保證多核的HADS內(nèi)數(shù)據(jù)的一致性;當(dāng)然,也可以作為外部存儲(chǔ)器使用。另外,多個(gè)HADS能相互連接組合成較大的HADS ;HADS與其它類型的存儲(chǔ)器也是可以共存的,且HADS與其它存儲(chǔ)器間可以相互通信。也就是說(shuō),HADS可以適用于任何處理器架構(gòu),可以使用作為處理器的唯一存儲(chǔ)器,也可以與其它存儲(chǔ)器一起使用,HADS與其他存儲(chǔ)器共用的實(shí)例如圖13所示??偟膩?lái)說(shuō),與現(xiàn)有技術(shù)相比,HADS具有如下特點(diǎn):
I)動(dòng)態(tài)可配置,靈活多變,Memory作為何種數(shù)據(jù)結(jié)構(gòu)使用完全由軟件決定;2)效率高,完全可以達(dá)到固定硬件實(shí)現(xiàn)的效率;3)Memory內(nèi)多種數(shù)據(jù)結(jié)構(gòu)可以并存,數(shù)據(jù)可以在各種數(shù)據(jù)結(jié)構(gòu)之間流動(dòng),減少了數(shù)據(jù)總線的流量,有利于性能的提升和功耗的降低;4)可以對(duì)各種數(shù)據(jù)結(jié)構(gòu)的輸入輸出數(shù)據(jù)進(jìn)行處理,減輕了處理器的負(fù)擔(dān),可以提高處理器的性能;5)使用靈活,可以適用于任何處理器架構(gòu)。采用本發(fā)明所述的HADS,與現(xiàn)有技術(shù)相比,取得了軟件實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的靈活,達(dá)到了硬件實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的高效,HADS可以在任何處理器架構(gòu)下使用,完全動(dòng)態(tài)可配置,智慧邏輯具有數(shù)據(jù)處理和轉(zhuǎn)換能力,降低了總線訪問(wèn)的頻率,有利于性能的提高和功耗的降低。在HADS內(nèi),多種數(shù)據(jù)結(jié)構(gòu)可以并存,數(shù)據(jù)可以在各種數(shù)據(jù)結(jié)構(gòu)之間流動(dòng),智慧邏輯可以對(duì)流動(dòng)的數(shù)據(jù)進(jìn)行處理,減輕總線和處理器的負(fù)擔(dān),從而達(dá)到提升性能和降低功耗的目的。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種硬件抽象數(shù)據(jù)結(jié)構(gòu),其特征在于,該硬件抽象數(shù)據(jù)結(jié)構(gòu)HADS包括:通用接口 G1、控制和配置邏輯CCL和存儲(chǔ)庫(kù)MP ;其中, 所述GI,用于實(shí)現(xiàn)HADS與處理器之間的交互; 所述CCL,用于根據(jù)GI接收的配置命令對(duì)MP進(jìn)行硬件數(shù)據(jù)結(jié)構(gòu)配置; 所述MP,用于存儲(chǔ)數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的硬件抽象數(shù)據(jù)結(jié)構(gòu),其特征在于,該HADS還包括一致性接口Cl, 所述Cl,用于多核之間的互聯(lián)以及直接數(shù)據(jù)訪問(wèn)。
3.根據(jù)權(quán)利要求1或2所述的硬件抽象數(shù)據(jù)結(jié)構(gòu),其特征在于,該HADS還包括智慧邏輯IL, 所述CCL,還用于根據(jù)GI接收的命令控制數(shù)據(jù)在MP到接口之間的傳輸、數(shù)據(jù)在IL內(nèi)的處理、以及數(shù)據(jù)的旁路; 所述IL,用于根據(jù)CCL的控制,對(duì)MP中存儲(chǔ)的數(shù)據(jù)進(jìn)行處理。
4.根據(jù)權(quán)利要求3所述的硬件抽象數(shù)據(jù)結(jié)構(gòu),其特征在于, 所述IL,還用于根據(jù)CCL的控制輸出處理后的數(shù)據(jù),或?qū)⑻幚砗蟮臄?shù)據(jù)寫回MP。
5.一種數(shù)據(jù)處理方法,其特征在于,該方法包括: 處理器對(duì)HADS進(jìn)行配置,將HADS內(nèi)的存儲(chǔ)塊配置成需要的硬件數(shù)據(jù)結(jié)構(gòu),之后采用所述配置的存儲(chǔ)塊進(jìn)行數(shù)據(jù)存儲(chǔ)。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)處理方法,其特征在于,所述處理器對(duì)HADS進(jìn)行配置,將HADS內(nèi)的存儲(chǔ)塊配置成需要的硬件數(shù)據(jù)結(jié)構(gòu)為: 處理器通過(guò)GI將配置命令發(fā)送給CCL,所述配置命令至少攜帶需要配置的硬件數(shù)據(jù)結(jié)構(gòu)信息; 所述CCL根據(jù)所述配置命令對(duì)MP進(jìn)行硬件數(shù)據(jù)結(jié)構(gòu)配置,將MP中的存儲(chǔ)塊配置成需要的硬件數(shù)據(jù)結(jié)構(gòu)。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)處理方法,其特征在于,該方法還包括: 處理器通過(guò)Cl或GI直接訪問(wèn)MP內(nèi)的數(shù)據(jù); 所述CCL控制數(shù)據(jù)在MP與接口之間的傳輸、數(shù)據(jù)在IL內(nèi)的處理、以及數(shù)據(jù)在Cl與GI間的旁路。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理方法,其特征在于,該方法還包括: 所述CCL控制IL輸出處理后的數(shù)據(jù),或?qū)⑻幚砗蟮臄?shù)據(jù)寫回MP。
9.根據(jù)權(quán)利要求5至8任一項(xiàng)所述的數(shù)據(jù)處理方法,其特征在于,所述處理器為本地處理器和/或遠(yuǎn)端處理器。
10.一種數(shù)據(jù)處理系統(tǒng),其特征在于,該系統(tǒng)包括處理器和權(quán)利要求1至4任一項(xiàng)所述的 HADS。
11.根據(jù)權(quán)利要求10所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述處理器為本地處理器和/或遠(yuǎn)端處理器。
全文摘要
本發(fā)明公開(kāi)了一種硬件抽象數(shù)據(jù)結(jié)構(gòu),包括通用接口(GI)、一致性接口(CI)、控制和配置邏輯(CCL)、智慧邏輯(IL)和存儲(chǔ)庫(kù)(MP);其中,所述GI,用于實(shí)現(xiàn)硬件抽象數(shù)據(jù)結(jié)構(gòu)(HADS)與處理器之間的交互;所述CI,用于實(shí)現(xiàn)多處理器間的一致性存儲(chǔ);所述CCL,用于根據(jù)GI接收的配置命令對(duì)MP進(jìn)行硬件數(shù)據(jù)結(jié)構(gòu)配置;所述IL,用于完成簡(jiǎn)單、大量、頻繁的數(shù)據(jù)處理;所述MP,用于存儲(chǔ)數(shù)據(jù)。本發(fā)明還相應(yīng)地公開(kāi)了一種數(shù)據(jù)處理方法及系統(tǒng)。通過(guò)本發(fā)明,能夠?qū)崿F(xiàn)可動(dòng)態(tài)配置、靈活多變、高效率、接口通用、互聯(lián)特性好的硬件抽象數(shù)據(jù)結(jié)構(gòu),進(jìn)而提高數(shù)據(jù)處理效率。
文檔編號(hào)G06F5/06GK103186359SQ20111045400
公開(kāi)日2013年7月3日 申請(qǐng)日期2011年12月30日 優(yōu)先權(quán)日2011年12月30日
發(fā)明者元西西, 毛二坤, 汪堅(jiān), 田學(xué)紅, 曾代兵, 田萬(wàn)廷, 陳前 申請(qǐng)人:中興通訊股份有限公司