專利名稱::一種基于自定義指令的多核通信系統(tǒng)及方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及多核通信領(lǐng)域,尤其涉及在SOG(System-on-a-chip,片上系統(tǒng))上實(shí)現(xiàn)多核通信的系統(tǒng)及方法。
背景技術(shù):
:隨著聲音、圖像以及視頻處理技術(shù)的快速發(fā)展,消費(fèi)類電子市場(chǎng)需要性能更加強(qiáng)勁的SOC來實(shí)現(xiàn)這些多媒體處理技術(shù),因此多核SOC受到越來越多的研究和重視。而決定多核SOC性能的一個(gè)主要因素是SOC中多個(gè)處理器(CPU)之間的通信速度,多個(gè)處理器通信速度直接影響SOC產(chǎn)品的性能?,F(xiàn)在的多核通信方法通常是基于共享內(nèi)存技術(shù)。共享內(nèi)存是指在多處理器的計(jì)算機(jī)系統(tǒng)中,內(nèi)存被多處理器共同訪問。共享內(nèi)存的多核通信方法是指不同處理器通過向預(yù)設(shè)的地址單元(共享內(nèi)存的地址)寫入數(shù)據(jù),并通知與其通信的另一處理器讀取由該處理器寫入的數(shù)據(jù),從而實(shí)現(xiàn)數(shù)據(jù)共享和交互的通信機(jī)制。但是由于GPU在訪問共享內(nèi)存時(shí)需要對(duì)數(shù)據(jù)進(jìn)行緩存(Cache),因此每次CPU訪問共享內(nèi)存時(shí)都需要刷新緩存。因此在多核SOC芯片中共享內(nèi)存的多核通信方法需要引入大量時(shí)延。該時(shí)延等于片內(nèi)總線時(shí)延+緩存更新時(shí)延+共享內(nèi)存訪問時(shí)延,大大降低了通信執(zhí)行效率。由此可以看出,如果能夠避免共享內(nèi)存帶來的延時(shí),多核通信系統(tǒng)的通信效率將會(huì)得到大大改善。
發(fā)明內(nèi)容本發(fā)明提供了一種能夠避免共享內(nèi)存帶來時(shí)延的基于自定義指令的多核通信系統(tǒng)及方法。在第一方面,本發(fā)明提供了一種基于自定義指令的多核通信系統(tǒng),包括兩個(gè)或兩個(gè)以上GPU以及自定義指令處理單元。源CPU用于識(shí)別"發(fā)送數(shù)據(jù)"自定義指令并解析數(shù)據(jù)所在位置,以及發(fā)送該自定義指令碼和所述數(shù)據(jù)。目標(biāo)CPU用于識(shí)別"接收數(shù)據(jù)"自定義指令,以及發(fā)送該自定義指令碼和接收所述數(shù)據(jù)。自定義指令處理單元用于解析來自源GPU的"發(fā)送數(shù)據(jù)"自定義指令碼,并根據(jù)解柝到的內(nèi)容向目標(biāo)CPU發(fā)送信息以便目標(biāo)CPU調(diào)用"接收數(shù)據(jù)"自定義指令,以及解析來自目標(biāo)CPU的"接收數(shù)據(jù)"自定義指令碼,并根據(jù)解析到的內(nèi)容向目標(biāo)CPU發(fā)送信息以便目標(biāo)CPU接收來自源GPU的所述數(shù)據(jù)。在第二方面,本發(fā)明提供了一種基于自定義指令的多核通信方法,包括以下步驟源CPU識(shí)別"發(fā)送數(shù)據(jù)"自定義指令并解析數(shù)據(jù)所在位置,以及將該數(shù)據(jù)和該自定義指令碼發(fā)送到自定義指令處理單元。自定義指令處理單元解析來自源GPU的"發(fā)送數(shù)據(jù)"自定義指令碼,根據(jù)解析到的內(nèi)容向目標(biāo)CPU發(fā)送信息以便目標(biāo)CPU調(diào)用"接收數(shù)據(jù)"自定義指令。目標(biāo)CPU識(shí)別"接收數(shù)據(jù)"自定義指令,以及將該自定義指令碼發(fā)送到自定義指令處理單元。自定義指令處理單元解析來自目標(biāo)CPU的"接收數(shù)據(jù)"自定義指令碼,并根據(jù)解析到的內(nèi)容向目標(biāo)CPU發(fā)送信息以便目標(biāo)CPU接收所述數(shù)據(jù)。在本發(fā)明的一個(gè)實(shí)施例中,自定義指令處理單元包括解析單元,且每個(gè)CPU對(duì)應(yīng)一個(gè)解析單元,該解析單元用于解析來自與該解析單元相對(duì)應(yīng)GPU的自定義指令碼。在本發(fā)明的另一個(gè)實(shí)施例中,自定義指令處理單元包括仲裁單元,該仲裁單元用于仲裁一個(gè)源CPU與另一個(gè)源CPU同時(shí)訪問目標(biāo)CPU的順序,用以解決CPU之間訪問沖突問題。在本發(fā)明的又一個(gè)實(shí)施例中,CPU包括中斷控制器,用于控制該GPU調(diào)用"接收數(shù)據(jù)"自定義指令。本發(fā)明通過自定義指令方式,在多核通信系統(tǒng)中將若干源CPU中的數(shù)據(jù)發(fā)送到目標(biāo)GPU中,該自定義指令方法大大地提高了多核通信系統(tǒng)中CPU之間的通信效率,具有重要的應(yīng)用價(jià)值。下面將參照附圖對(duì)本發(fā)明的具體實(shí)施方案進(jìn)行更詳細(xì)的說明,在附圖中圖1本發(fā)明的基于自定義指令的多核通信系統(tǒng);圖2本發(fā)明的基于自定義指令的多核通信流程圖。具體實(shí)施例方式本發(fā)明的基于自定義指令的多核通信系統(tǒng)包括兩個(gè)或兩個(gè)以上CPU以及自定義指令處理單元。本說明書以三核通信系統(tǒng)為例對(duì)本發(fā)明的基于自定義指令的多核通信系統(tǒng)及方法做詳細(xì)說明。其它多核通信方法與三核通信方法的基本原理相同,不再重復(fù)。圖1是本發(fā)明的基于自定義指令的多核通信系統(tǒng),該系統(tǒng)包括CPU110、CPU120、GPU130及自定義指令處理單元140。CPU110包括取指單元111、解碼單元112、執(zhí)行單元113、寄存器Rs114、寄存器Rt115、寄存器Rd117以及中斷控制器116。CPU110用于執(zhí)行包含自定義指令的程序以及控制GPU110的各項(xiàng)操作。取指單元111用于從存儲(chǔ)單元中取出指令,并將指令發(fā)送到解碼單元112中。解碼單元112對(duì)指令解碼,并將自定義指令碼發(fā)送到自定義指令處理單元140,將其它指令發(fā)送到執(zhí)行單元113。執(zhí)行單元113根據(jù)解碼單元112發(fā)送的解碼內(nèi)容執(zhí)行相應(yīng)操作。寄存器Rs114、寄存器Rt115、寄存器Rd117用于暫存CPU110中待處理的數(shù)據(jù)。中斷控制器116用于接收中斷申請(qǐng),并控制CPU110進(jìn)入包含自定義指令的中斷服務(wù)程序。GPU120包括取指單元121、解碼單元122、執(zhí)行單元123、寄存器Rs124、寄存器Rt125、寄存器Rd127以及中斷控制器126。GPU130包括取指單元131、解碼單元132、執(zhí)行單元133、寄存器Rs134、寄存器Rt135、寄存器Rd137以及中斷控制器136。GPU120、CPU130中各單元的功能和作用與CPU110中各單元的功能和作用相同。自定義指令處理單元140中的解柝單元數(shù)量與系統(tǒng)中GPU數(shù)量相同,且每個(gè)CPU對(duì)應(yīng)一個(gè)解析單元,在三核通信系統(tǒng)中解析單元數(shù)量為三。自定義指令處理單元140包括第一解析單元141、第二解析單元142、第三解析單元143和仲裁單元144。自定義指令處理單元140用于解析自定義指令,以及打斷或釋放源CPU的指令流水線,以及向目標(biāo)GPU發(fā)送中斷申請(qǐng)。第一解析單元141用于解析由CPU110發(fā)送的自定義指令碼。第二解析單元142用于解析由CPU120發(fā)送的自定義指令碼。第三解析單元143用于解析由CPU130發(fā)送的自定義指令碼。仲裁單元144用于解決多個(gè)GPU共訪同一個(gè)GPU而存在的訪問沖突問題。如圖1所示在本發(fā)明的基于自定義指令的多核通信系統(tǒng)中,當(dāng)GPU110向CPU120發(fā)起通信時(shí),首先CPU110識(shí)別出其所調(diào)用的指令為"發(fā)送數(shù)據(jù)"自定義指令,并初步解析出待發(fā)送數(shù)據(jù)所在位置,進(jìn)而將待發(fā)送數(shù)據(jù)及自定義指令碼發(fā)送到第一解析單元141。第一解析單元141進(jìn)一步解析該自定義指令碼后向仲裁單元144提出仲裁申請(qǐng)。若GPU130同時(shí)也向CPU120發(fā)起通信,則仲裁單元144仲裁GPU110、CPU130發(fā)送數(shù)據(jù)的順序。假設(shè)仲裁結(jié)果是CPU110先發(fā)送數(shù)據(jù),則自定義指令處理單元140打斷CPU130的指令流水線,同時(shí)通知第一解析單元141向第二解析單元142發(fā)送數(shù)據(jù)。第二解析單元142接收到來自GPU110的數(shù)據(jù)后向中斷控制器126發(fā)出中斷申請(qǐng),以便CPU120調(diào)用"接收數(shù)據(jù)"自定義指令并將該自定義指令碼發(fā)送到第二解析單元142。第二解析單元142解析該自定義指令碼后將數(shù)據(jù)發(fā)送到CPU120中。最后自定義指令處理單元140釋放CPU130的指令流水線。在具體闡述基于自定義指令的多核通信方法之前,首先對(duì)本發(fā)明的一條自定義指令做詳細(xì)說明。MIPSCPU為用戶提供16條自定義指令功能,稱為UDI。下面以MIPSCPU為例定義一條用于多核通信的"發(fā)送數(shù)據(jù)"自定義指令UDIO,格式如表2所示。<table>tableseeoriginaldocumentpage7</column></row><table>表2自定義指令長(zhǎng)度固定為32bits,該自定義指令頭名稱為SPECLAL2。"發(fā)送數(shù)據(jù)"自定義指令的高六位即第31…26bit為011100,代表指令類型為自定義指令。低六位即第5…0bit為010000,其中01與高六位的011100共同表示指令類型為自定義指令;OOOO表示自定義指令號(hào)為第O號(hào)自定義指令,第0號(hào)自定義指令為"發(fā)送數(shù)據(jù)"自定義指令。第25…21bit為寄存器Rs的索引,通過該索引CPU能夠查詢到寄存器Rs中數(shù)據(jù)所在位置。第20…16bit為寄存器Rt的索引,通過該索引GPU能夠查詢到寄存器Rt中數(shù)據(jù)所在位置。第15…12bit為Reserved,無意義,可以取任意數(shù)。第11、10bit為寄存器可用標(biāo)志,共2bit。當(dāng)寄存器可用標(biāo)志為00時(shí),表示寄存器Rs、Rt中的數(shù)據(jù)都無效。當(dāng)寄存器可用標(biāo)志為01時(shí),表示寄存器Rs中的數(shù)據(jù)無效,寄存器Rt中的數(shù)據(jù)有效。當(dāng)寄存器可用標(biāo)志為10時(shí),表示寄存器Rs中的數(shù)據(jù)有效,寄存器Rt中的數(shù)據(jù)無效。當(dāng)寄存器可用標(biāo)志為11時(shí),表示寄存器Rs、Rt中的數(shù)據(jù)都有效。第9、8bit為目標(biāo)CPU號(hào),共2bit。當(dāng)目標(biāo)CPU號(hào)為00時(shí),表示目標(biāo)CPU為第O號(hào)CPU。當(dāng)目標(biāo)CPU號(hào)為01時(shí),表示目標(biāo)CPU為第1號(hào)CPU。當(dāng)目標(biāo)CPU號(hào)為10時(shí),表示目標(biāo)CPU為第2號(hào)GPU。當(dāng)目標(biāo)CPU號(hào)為11時(shí),表示目標(biāo)CPU為第3號(hào)CPU。第7、6bit為源CPU號(hào),共2bit。當(dāng)源GPU號(hào)為00時(shí),表示源GPU為第0號(hào)CPU。當(dāng)源CPU號(hào)為01時(shí),表示源CPU為第1號(hào)CPU。當(dāng)源GPU號(hào)為10時(shí),表示源CPU為第2號(hào)CPU。當(dāng)源CPU號(hào)為11時(shí),表示源CPU為第3號(hào)GPU。下面定義一條用于多核通信的"接收數(shù)據(jù)"自定義指令UDI1,格式如表3所示。<table>tableseeoriginaldocumentpage8</column></row><table>"接收數(shù)據(jù)"自定義指令的高六位即第31…26bit為011100,代表指令類型為自定義指令。低六位即第5…0bit為010000,其中01與高六位的011100共同表示指令類型為自定義指令;0001表示自定義指令號(hào)為第1號(hào)自定義指令,第1號(hào)自定義指令為"接收數(shù)據(jù)"自定義指令。第25…16bit為Reserved,無意義,可以取任意數(shù)。第15…11bit為目標(biāo)寄存器Rd的索引,通過該索引目標(biāo)GPU能夠查詢到寄存器Rd所在位置。第10…6bit為Reserved,無意義,可以取任意數(shù)。接下來以CPU110、CPU130向CPU120發(fā)起通信為例,闡述本發(fā)明的基于自定義指令的多核通信方法。圖2是本發(fā)明的基于自定義指令的多核通信流程圖。步驟210,CPU110執(zhí)行包含"發(fā)送數(shù)據(jù)"自定義指令的源程序,并通過調(diào)用源程序中的自定義指令將自定義指令碼及寄存器Rs114、Rt115中數(shù)據(jù),發(fā)送到自定義指令處理單元140的第一解析單元141中。源程序代碼如下指令1UDIORs,Rt,0x39指令nGPU110執(zhí)行該程序代碼,首先取指單元111從存儲(chǔ)單元中取出指令1。然后解碼單元112根據(jù)該指令1的高六位及低六位信息解出該指令1不是自定義指令,解碼單元112將該指令1解碼后發(fā)送到執(zhí)行單元113。執(zhí)行單元根據(jù)指令1的要求執(zhí)行相應(yīng)搡作。按照以上方式,CPU110順序調(diào)用源程序代碼中的其它指令,直到開始調(diào)用自定義指令UDIORs,Rt,0x39。CPU110調(diào)用自定義指令UDIORs,Rt,0x39,首先取指單元111從存儲(chǔ)單元中取出該指令。解碼單元112根據(jù)高六位及低六位信息解出該指令為"發(fā)送數(shù)據(jù)"自定義指令,并初步解析出待發(fā)送數(shù)據(jù)所在位置。然后GPU110將自定義指令碼及寄存器Rs114、寄存器Rt115中數(shù)據(jù)發(fā)送到自定義指令處理單元140的第一解析單元141中。在調(diào)用自定義指令UDIORs,Rt,0x39后,GPU110繼續(xù)調(diào)用源程序中的其它指令,即調(diào)用指令n……,具體方法與調(diào)用指令1方法相同。步驟211,第一解析單元141接收來自GPU110的數(shù)據(jù)和"發(fā)送數(shù)據(jù)"自定義指令碼,并進(jìn)一步解析該"發(fā)送數(shù)據(jù)"自定義指令碼。進(jìn)一步解析"發(fā)送數(shù)據(jù)"自定義指令碼方法為在自定義指令UDIORs,Rt,0x39中,UDIO表示第O號(hào)自定義指令,也就是"發(fā)送數(shù)據(jù)"自定義指令;Ox表示十六進(jìn)制,39換算成十六進(jìn)制為0011,1001。自定義指令碼的高六位011100、低六位010000以及寄存器Rs、Rt的索引均由系統(tǒng)自動(dòng)生成。根據(jù)表2可知,寄存器可用標(biāo)志為11;目標(biāo)GPU號(hào)為10,換算成十進(jìn)制為2;9源CPU號(hào)為01,換算成十進(jìn)制為1。因此自定義指令UDIORs,Rt,0x39表示1號(hào)CPU向2號(hào)CPU發(fā)起通信,且寄存器Rs、Rt中的數(shù)據(jù)有效。步驟212,當(dāng)?shù)谝唤馕鰡卧?41解析到寄存器Rs114、Rt115中的數(shù)據(jù)有效后,向仲裁單元144提出仲裁申請(qǐng)用以申請(qǐng)CPU110發(fā)送數(shù)據(jù)的順序,以便解決多CPU訪問沖突問題。所述寄存器Rs114、Rt115中的數(shù)據(jù)有效為,自定義指令碼高六位為011100低六位為01xxxx,且寄存器可用標(biāo)志為11。步驟220,GPU130執(zhí)行包含"發(fā)送數(shù)據(jù)"自定義指令的源程序,并通過調(diào)用源程序中的自定義指令將自定義指令碼及寄存器Rs134、Rt135中數(shù)據(jù),發(fā)送到自定義指令處理單元140的第三解析單元143中。步驟221,第三解析單元143接收來自CPU130的數(shù)據(jù)和"發(fā)送數(shù)據(jù)"自定義指令碼,并解析該自定義指令碼,具體方法與步驟211中CPU110解析"發(fā)送數(shù)據(jù)"自定義指令碼的方法相同。步驟222,當(dāng)?shù)谌馕鰡卧?43解析到寄存器Rs134、Rt135中的數(shù)據(jù)有效后,向仲裁單元144提出仲裁申請(qǐng)用以申請(qǐng)CPU130發(fā)送數(shù)據(jù)的順序,以便解決多CPU訪問沖突問題。所述寄存器Rs134、Rt135中的數(shù)據(jù)有效為,自定義指令碼高六位為011100低六位為01xxxx,且寄存器可用標(biāo)志為11。步驟230,仲裁單元144接收CPU110、CPU130分別向其發(fā)送的仲裁申請(qǐng),根據(jù)仲裁策略判定CPU110、GPU130訪問GPU120的順序。所述仲裁策略有多種,如CPU110與任何其它GPU通信時(shí)GPU110發(fā)送數(shù)據(jù)永遠(yuǎn)優(yōu)先等。下面以CPU110優(yōu)先訪問GPU120為例加以闡述。步驟240,仲裁單元144向第一解析單元141發(fā)送信息,通知第一解析單元141可以傳輸數(shù)據(jù)到第二解析單元142;同時(shí)仲裁單元144向CPU130發(fā)送信息用以打斷CPU130的指令流水線。步驟250,第一解析單元141將來自Rs114、Rt115中的數(shù)據(jù)發(fā)送到第二解析單元142。步驟251,第二解析單元142接收到來自第一解析單元141的數(shù)據(jù)后,向CPU120的中斷控制器126發(fā)送中斷申請(qǐng)。步驟260,中斷控制器126接收來自第二解析單元142的中斷申請(qǐng)后,控制CPU120進(jìn)入包含"接收數(shù)據(jù)"自定義指令的中斷服務(wù)程序,通過調(diào)用自定義指令以及初步解析其為"接收數(shù)據(jù)"自定義指令,將自定義指令碼發(fā)送到自定義指令處理單元140的第二解析單元142中。中斷服務(wù)程序代碼如下指令xUDI1Rd,0xXX在該中斷服務(wù)程序中,指令x……用于保存CPU120中斷前的相關(guān)信息。GPU120調(diào)用自定義指令UDI1Rd,OxXX,首先取指單元121取出該指令。解碼單元122根據(jù)高六位及低六位信息解出該指令為"接收數(shù)據(jù)"自定義指令。然后CPU120將自定義指令碼發(fā)送到自定義指令處理單元140的第二解析單元142中。步驟261,第二解析單元142接收"接收數(shù)據(jù)"自定義指令碼后,進(jìn)一步解析該"接收數(shù)據(jù)"自定義指令碼。所述進(jìn)一步解析"接收數(shù)據(jù)"自定義指令碼方法為在自定義指令UDMRd,OxXX中,UDM表示第1號(hào)自定義指令,也就是"接收數(shù)據(jù)"自定義指令;在0xXX中,Ox表示十六進(jìn)制,XX可以為任意數(shù);XX為任意數(shù)的原因是目標(biāo)寄存器Rd的索引由系統(tǒng)自定生成,并且bit25…16,bit10…6均為Reserved,無意義。第二解析單元142進(jìn)一步解析"接收數(shù)據(jù)"自定義指令碼實(shí)際上就是解析系統(tǒng)自動(dòng)生成的目標(biāo)寄存器Rd索引。步驟262,第二解析單元142將來自GPU110的數(shù)據(jù)以及目標(biāo)寄存器Rd的索引發(fā)送到CPU120中。步驟263,CPU120根據(jù)目標(biāo)寄存器Rd索引將來自CPU110的數(shù)據(jù)存儲(chǔ)在CPU120的寄存器Rd中。步驟270,CPU120發(fā)送信息到自定義指令處理單元140要求其釋放GPU130的指令流水線;然后自定義指令處理單元140釋放GPU130的指令流水線。步驟280,GPU120接收來自GPU130的數(shù)據(jù),接收數(shù)據(jù)方法與GPU120接收來自CPU110數(shù)據(jù)方法相同。具體過程是第三解析單元143將來自Rs134、Rt135中數(shù)據(jù)發(fā)送到第二解析單元142。第二解析單元142向CPU120發(fā)出中斷申請(qǐng),進(jìn)而CPU120ii進(jìn)入包含自定義指令的中斷服務(wù)程序。CPU120調(diào)用自定義指令并解析出"接收數(shù)據(jù)"自定義指令,再將該自定義指令碼發(fā)送到第二解析單元142中。第二解析單元142解析出目標(biāo)寄存器Rd的索引后,將數(shù)據(jù)發(fā)送到GPU120的寄存器Rd中。在本說明書中對(duì)于自定義指令處理單元140的接口有必要再做些說明下面以MIPSCPU為例定義自定義指令處理單元的接口,如表1所示。<table>tableseeoriginaldocumentpage12</column></row><table>表1需要說明的是,表1中接口UDI_ir—e[31:0]、UDI—irvalid_e、UDI_rs—e[31:0]、UDl一rt一e[31:0]、UDI_start—e、UDI_staM—m、UDI_present、Int—req、UDl_wreg—e[4:0]、UDI_rd_m[31:0]的數(shù)量與解析單元的數(shù)量一致,而接口UDI—greset、UDI_clk分別只需要一個(gè)。顯而易見,在不偏離本發(fā)明的真實(shí)精神和范圍的前提下,在此描述的本發(fā)明可以有許多變化。因此,所有對(duì)于本領(lǐng)域技術(shù)人員來說顯而易見的改變,都應(yīng)包括在本權(quán)利要求書所涵蓋的范圍之內(nèi)。本發(fā)明所要求保護(hù)的范圍僅由所迷的權(quán)利要求書進(jìn)行限定。權(quán)利要求1.一種基于自定義指令的多核通信系統(tǒng),包括第一CPU和第二CPU以及自定義指令處理單元(140);第一CPU用于識(shí)別“發(fā)送數(shù)據(jù)”自定義指令并解析數(shù)據(jù)所在位置,以及發(fā)送該自定義指令碼和所述數(shù)據(jù);第二CPU用于識(shí)別“接收數(shù)據(jù)”自定義指令,以及發(fā)送該自定義指令碼和接收所述數(shù)據(jù);自定義指令處理單元(140)用于解析來自第一CPU的“發(fā)送數(shù)據(jù)”自定義指令碼,并根據(jù)解析到的內(nèi)容向第二CPU發(fā)送信息以便第二CPU調(diào)用“接收數(shù)據(jù)”自定義指令,自定義指令處理單元(140)解析來自第二CPU的“接收數(shù)據(jù)”自定義指令碼,并根據(jù)解析到的內(nèi)容向第二CPU發(fā)送所述數(shù)據(jù)。2.如權(quán)利要求1所述的一種基于自定義指令的多核通信系統(tǒng),其特征在于所述自定義指令處理單元(140)包括解析單元,且每個(gè)CPU對(duì)應(yīng)一個(gè)解析單元,該解析單元用于解析來自與該解析單元對(duì)應(yīng)CPU的自定義指令碼。3.如權(quán)利要求1所述的一種基于自定義指令的多核通信系統(tǒng),其特征在于所述基于自定義指令的多核通信系統(tǒng)包括第三CPU,自定義指令處理單元(140)包括仲裁單元(144),該仲裁單元(144)用于仲裁第一CPU與第三GPU同時(shí)訪問第二CPU的順序,以便解決CPU之間訪問沖突問題。4.權(quán)利要求1所述的一種基于自定義指令的多核通信系統(tǒng),其特征在于所述CPU包括中斷控制器,用于控制該CPU調(diào)用"接收數(shù)據(jù)"自定義指令。5.如權(quán)利要求1所述的一種基于自定義指令的多核通信系統(tǒng),其特征在于所述"發(fā)送數(shù)據(jù)"自定義指令碼包括"目標(biāo)CPU號(hào)"和/或"寄存器可用標(biāo)志"信息。6.如權(quán)利要求1所述的一種基于自定義指令的多核通信系統(tǒng),其特征在于所述"接收數(shù)據(jù)"自定義指令碼包括"目標(biāo)寄存器索引"信息。7.如權(quán)利要求1所述的一種基于自定義指令的多核通信系統(tǒng),其特征在于所述自定義指令處理單元(140)接口包括用于輸入32位指令碼的接口;用于輸入指令操作數(shù)的接口;用于輸出指令操作數(shù)的接口;用于表示自定義自定義指令處理單元存在標(biāo)志且恒為1的輸出接口;用于輸出目標(biāo)寄存器Rd索引的接口以及用于表示指令有效標(biāo)志的輸入接口中的一個(gè)或多個(gè)。8.如權(quán)利要求1所述的一種基于自定義指令的多核通信系統(tǒng),其特征在于,所述CPU包括用于暫存數(shù)據(jù)的寄存器Rs、寄存器Rt和寄存器Rd。9.如權(quán)利要求1所述的一種基于自定義指令的多核通信方法,其特征在于所述CPU為MIPSGPU。10.—種基于自定義指令的多核通信方法,包括以下步驟步驟1,第一CPU識(shí)別"發(fā)送數(shù)據(jù)"自定義指令并解析數(shù)據(jù)所在位置,以及將該數(shù)據(jù)和該自定義指令碼發(fā)送到自定義指令處理單元(140);步驟2,自定義指令處理單元(140)解析來自第一GPU的"發(fā)送數(shù)據(jù)"自定義指令碼,并根據(jù)解析到的內(nèi)容向第二CPU發(fā)送信息以便第二CPU調(diào)用"接收數(shù)據(jù)"自定義指令;步驟3,第二CPU識(shí)別"接收數(shù)據(jù)"自定義指令,以及將該自定義指令碼發(fā)送到自定義指令處理單元(140);步驟4,自定義指令處理單元(140)解析來自第二CPU的"接收數(shù)據(jù)"自定義指令碼,并根據(jù)解析到的內(nèi)容向第二CPU發(fā)送所述數(shù)據(jù)。11.如權(quán)利要求10所述的一種基于自定義指令的多核通信方法,步驟2包括,當(dāng)?shù)谝籆PU、第三GPU同時(shí)向第二CPU發(fā)起通信時(shí),自定義指令處理單元(140)仲裁第一GPU與第三CPU訪問第二GPU順序。12.如權(quán)利要求11所述的一種基于自定義指令的多核通信方法,包括自定義指令處理單元(140)在仲裁第一CPU與第三GPU訪問第二CPU順序后,根據(jù)仲裁結(jié)果打斷第一CPU或第三CPU的指令流水線。13.如權(quán)利要求12所述的一種基于自定義指令的多核通信方法,包括第二CPU接收到數(shù)據(jù)后,釋放被打斷CPU的指令流水線。14.如權(quán)利要求10所述的一種基于自定義指令的多核通信方法,其特征在于,步驟2中所述自定義指令處理單元(140)根據(jù)解析到的內(nèi)容向第二CPU發(fā)送的信息是中斷申請(qǐng)。全文摘要本發(fā)明涉及多核通信領(lǐng)域,尤其涉及一種基于自定義指令的多核通信系統(tǒng)及方法。本發(fā)明通過自定義指令方式,在多核通信系統(tǒng)中實(shí)現(xiàn)CPU之間通信。在CPU(110)向CPU(120)發(fā)起通信時(shí),CPU(110)將數(shù)據(jù)及自定義指令碼發(fā)送到自定義指令處理單元。自定義指令處理單元解析該自定義指令碼并向CPU(120)發(fā)起中斷,同時(shí)打斷CPU(130)指令流水線。CPU(120)調(diào)用“接收數(shù)據(jù)”自定義指令并將自定義指令碼發(fā)送到自定義指令處理單元。自定義指令處理單元解析自定義指令碼,并向CPU(120)發(fā)送數(shù)據(jù),同時(shí)釋放CPU(130)指令流水線。本發(fā)明的系統(tǒng)及方法提高了多核通信效率,具有重要的價(jià)值。文檔編號(hào)G06F15/16GK101510190SQ20091008134公開日2009年8月19日申請(qǐng)日期2009年4月2日優(yōu)先權(quán)日2009年4月2日發(fā)明者劉陸陸,霍曉方申請(qǐng)人:北京中星微電子有限公司