核間通信裝置及方法

核間通信裝置及方法

《核間通信裝置及方法》是深圳市中興微電子技術有限公司於2012年10月12日申請的專利,該專利的公布號為CN103729329A,授權公布日為2014年4月16日,發明人是王鵬。該發明涉及高性能晶片設計領域。

《核間通信裝置及方法》該裝置包括:信箱模組,用於存儲訊息傳送核傳送給訊息接收核的訊息,並通知訊息接收核讀取所述訊息;匯流排適配模組,連線於信箱模組與進行通信的訊息接收核和訊息傳送核之間,用於提供信箱模組與訊息接收核和訊息傳送核的讀寫接口,通過該發明,解決了2012年10月之前的技術中核間通信裝置和方法存在複雜度高、實時性差,以及多核套用時可擴展性差的問題,進而達到了顯著減少核間通信複雜度,減少通信時延,以及具備極好的可擴展性和可裁減性的效果。

2021年11月,《核間通信裝置及方法》獲得第八屆廣東專利獎金獎。

(概述圖為《核間通信裝置及方法》摘要附圖)

基本介紹

  • 中文名:核間通信裝置及方法
  • 申請人:深圳市中興微電子技術有限公司
  • 申請日:2012年10月12日
  • 申請號:2012103891189
  • 公布號:CN103729329A
  • 公布日:2014年4月16日
  • 發明人:王鵬
  • 地址:廣東省深圳市鹽田區大梅沙1號廠房
  • 分類號:G06F15/167(2006.01)I、G06F13/24(2006.01)I
  • 代理機構:北京安信方達智慧財產權代理有限公司
  • 代理人:田紅娟、龍洪
  • 類別:發明專利
專利背景,發明內容,專利目的,技術方案,改善效果,附圖說明,權利要求,實施方式,榮譽表彰,

專利背景

隨著多核處理器被越來越廣泛的套用到各個技術領域,其強大的並行計算能力,低功耗以及高集成度的優點逐漸被市場所接受。多核處理器的顯著特徵是同一個任務可以被分解到多個核心的執行緒或進程上並行運行,這種並行性帶來了性能的顯著提升。但是多核處理器帶來性能提升的同時,也帶來了頻繁的核間通信任務以及複雜的對多核通信進行管理等一系列問題,而且隨著同一晶片上集成的核越來越多,此問題變的越來越突出。因此,高速高效的核間通信裝置和方法成為多核處理器晶片的關鍵技術之一。
在相關技術中,普遍基於共享記憶體進行核間通信。例如,專利號為CN200510087321的專利“嵌入式實時作業系統中多核處理器的核間通信方法及裝置”,其採用共享記憶體實現核間通信所需的共享訊息池和訊息數據管道。該種方法需要作業系統軟體創建訊息佇列,需要建立核間通信的管道操作,因此複雜性較高;更關鍵的是為了完成對多核共享訊息記憶體的訪問一致性需要採用自旋鎖資源以及額外的申請鎖釋放鎖等同步操作,這些複雜的軟體互動步驟將大大降低核間通信的效率,同時在核數量顯著增加時可靠性降低;其分離的訊息操作和中斷通知機制也會導致效率下降。此外,基於共享記憶體的方法由於核間訊息必須與數據共用同一頻寬,在通信實時性上更增加了不確定性。
為解決基於共享記憶體的核間通信機制的高複雜性高時延問題,也產生了一些改進方法。例如,專利號為US20080988459的專利“MethodandSystemforGeneratingandDeliveringInter-ProcessorInterruptsinaMulti-CoreProcessorandinCertainSharedMemoryMulti-ProcessorSystems”,其通過軟體操作一組專用的中斷禁止暫存器(InterruptMaskRegister,簡稱為IMR)來指定共享存儲區域,並在寫操作針對所指定的共享存儲器區域時自動觸發核間中斷生成。但其訊息是存在共享存儲區的循環緩衝中,仍舊需要通過軟體實現的數據結構進行循環緩衝訪問;而訊息通知所產生的中斷由IMR產生。其仍需要提前設定IMR暫存器,且暫存器操作與訊息操作的分離以及軟體互動步驟多等因素直接導致其核間通信延遲較大,軟體編程複雜,無法滿足高性能多核通信的需要。同時,該專利也未能解決為保證核間通信可靠性必須引入互斥操作而帶來的資源消耗和複雜度提升的問題。
除了上面所述2012年10月之前的核間通信技術通信效率低,實時性無法保證的主要缺陷外,已有核間通信技術在核數量顯著增加時,其將需要更多的硬體資源和更加複雜的軟體處理步驟;在異構多核系統中,核的頻率,接口結構以及對數據結構的支持差異也大大增加了已有核間通信方法的軟體複雜性,異構核通信程式的兼容性和可靠性不足。即已有核間通信技術在適應核異構和核數量增加時的可擴展性和靈活性不足。
因此,在相關技術中的核間通信裝置和方法存在複雜度高、實時性差,以及多核套用時可擴展性差的問題。

發明內容

專利目的

該發明提供了一種核間通信裝置及方法,以至少解決2012年10月之前的技術中核間通信裝置和方法存在複雜度高、實時性差,以及多核套用時可擴展性差的問題。

技術方案

根據《核間通信裝置及方法》的一個方面,提供了一種核間通信裝置,包括:信箱模組,用於存儲訊息傳送核傳送給訊息接收核的訊息,並通知所述訊息接收核讀取所述訊息;匯流排適配模組,連線於所述信箱模組與進行通信的所述訊息接收核和訊息傳送核之間,用於提供所述信箱模組與所述訊息接收核和所述訊息傳送核的讀寫接口。
優選地,該核間通信裝置還包括:仲裁模組:用於在多個核同時向所述信箱模組發起用於請求讀寫訊息的讀寫訪問請求時,按照預定的規則對所述多個讀寫訪問請求進行仲裁,將所述多個讀寫訪問請求依次串列輸出。
優選地,所述信箱模組包括:匯流排接口單元,用於通過復用匯流排錯誤反饋暫存器實現讀寫訊息的互斥。
優選地,所述匯流排接口單元包括:第一互斥單元,用於通過復用所述匯流排錯誤反饋暫存器實現互斥鎖的功能,實現多個訊息傳送核向所述信箱模組寫訊息的互斥;和/或,第二互斥單元,用於通過復用所述匯流排錯誤反饋暫存器實現互斥鎖的功能,實現訊息傳送核向所述信箱模組寫訊息與訊息接收核從所述信箱模組讀訊息的互斥。
優選地,所述匯流排接口單元還包括:觸發子單元,用於在所述訊息傳送核向所述信箱模組寫入了訊息,或者,所述訊息接收核從所述信箱模組讀取了訊息之後,觸發所述匯流排錯誤反饋暫存器的狀態變化。
優選地,所述信箱模組包括:存儲單元,用於根據訊息訪問地址對所述訊息進行存儲。
優選地,所述信箱模組包括:通知單元,用於通過中斷請求通知所述訊息接收核接收訊息。
根據該發明的另一方面,提供了一種核間通信方法,包括:信箱模組通過匯流排適配模組接收來自訊息傳送核傳送的訊息;所述信箱模組向訊息接收核傳送中斷請求,其中,所述訊息接收核根據所述中斷請求讀取所述訊息。
優選地,該方法還包括:在多個核同時向所述信箱模組發起用於請求讀寫訊息的讀寫訪問請求時,按照預定的規則對所述多個讀寫訪問請求進行仲裁,將所述多個讀寫訪問請求依次串列輸出。
優選地,在多個核同時向所述信箱模組發起用於請求讀寫訊息的讀寫訪問請求時,通過復用匯流排錯誤反饋暫存器實現讀寫訊息的互斥。
優選地,通過復用匯流排錯誤反饋暫存器實現讀寫訊息的互斥包括:通過復用所述匯流排錯誤反饋暫存器實現互斥鎖的功能,實現多個訊息傳送核向所述信箱模組寫訊息的互斥;和/或,通過復用所述匯流排錯誤反饋暫存器實現互斥鎖的功能,實現訊息傳送核向所述信箱模組寫訊息與訊息接收核從所述信箱模組讀訊息的互斥。
優選地,在所述訊息傳送核向所述信箱模組寫入了訊息,或者,所述訊息接收核從所述信箱模組讀取了訊息之後,觸發所述匯流排錯誤反饋暫存器的狀態變化。
優選地,在所述訊息傳送核向所述信箱模組寫入了訊息之後,所述信箱模組向所述訊息傳送核傳送第一回響訊息,其中,所述訊息傳送核根據所述第一回響訊息確定所述訊息傳送核向所述信箱模組寫入訊息成功;和/或,在所述訊息接收核從所述信箱模組讀取了訊息之後,所述信箱模組向所述訊息接收核傳送第二回響訊息,其中,所述訊息接收核根據所述第二回響訊息確定所述訊息接收核讀取訊息成功。
優選地,在所述訊息接收核讀取了所述訊息之後,還包括,所述信箱模組將所述中斷請求清除。
根據該發明的再一方面,提供了一種核間通信裝置,包括:接收單元,位於信箱模組中,用於通過匯流排適配模組接收來自訊息傳送核傳送的訊息;傳送單元,位於所述信箱模組中,用於向訊息接收核傳送中斷請求,其中,所述訊息接收核根據所述中斷請求讀取所述訊息。

改善效果

《核間通信裝置及方法》採用信箱模組,用於存儲訊息傳送核傳送給訊息接收核的訊息,並通知所述訊息接收核讀取所述訊息;匯流排適配模組,連線於所述信箱模組與進行通信的所述訊息接收核和訊息傳送核之間,用於提供所述信箱模組與所述訊息接收核和所述訊息傳送核的讀寫接口,解決了2012年10月之前的技術中核間通信裝置和方法存在複雜度高、實時性差,以及多核套用時可擴展性差的問題,進而達到了顯著減少核間通信複雜度,減少通信時延,以及具備極好的可擴展性和可裁減性的效果。

附圖說明

圖1是根據該發明實施例的核間通信裝置的結構框圖;
圖2是根據該發明實施例的核間通信裝置的優選結構框圖;
圖3是根據該發明實施例的核間通信裝置中信箱模組12的優選結構框圖一;
圖4是根據該發明實施例的核間通信裝置中信箱模組12中匯流排接口單元32的優選結構框圖;
圖5是根據該發明實施例的核間通信裝置中匯流排接口單元32的優選結構框圖;
圖6是根據該發明實施例的核間通信裝置中信箱模組12的優選結構框圖二;
圖7是根據該發明實施例的核間通信裝置中信箱模組12的優選結構框圖三;
圖8是根據該發明實施例的核間通信方法的流程圖;
圖9是根據該發明實施例的核間通信裝置的結構框圖;
圖10是根據該發明實施例的多核晶片的核間通信裝置結構框圖;
圖11是根據該發明實施例的核間通信方法的流程圖;
圖12是根據該發明實施例的核間通信裝置中信箱模組的結構框圖;
圖13是根據該發明實施例的核間通信裝置中匯流排適配模組的結構框圖;
圖14是根據該發明實施例的核間通信裝置中仲裁模組的結構框圖。

權利要求

1.一種核間通信裝置,其特徵在於,包括:信箱模組,用於存儲訊息傳送核傳送給訊息接收核的訊息,並通知所述訊息接收核讀取所述訊息;匯流排適配模組,連線於所述信箱模組與進行通信的所述訊息接收核和訊息傳送核之間,用於提供所述信箱模組與所述訊息接收核和所述訊息傳送核的讀寫接口。
2.根據權利要求1所述的裝置,其特徵在於,還包括:仲裁模組:用於在多個核同時向所述信箱模組發起用於請求讀寫訊息的讀寫訪問請求時,按照預定的規則對所述多個讀寫訪問請求進行仲裁,將所述多個讀寫訪問請求依次串列輸出。
3.根據權利要求1所述的裝置,其特徵在於,所述信箱模組包括:匯流排接口單元,用於通過復用匯流排錯誤反饋暫存器實現讀寫訊息的互斥。
4.根據權利要求3所述的裝置,其特徵在於,所述匯流排接口單元包括:第一互斥單元,用於通過復用所述匯流排錯誤反饋暫存器實現互斥鎖的功能,實現多個訊息傳送核向所述信箱模組寫訊息的互斥;和/或,第二互斥單元,用於通過復用所述匯流排錯誤反饋暫存器實現互斥鎖的功能,實現訊息傳送核向所述信箱模組寫訊息與訊息接收核從所述信箱模組讀訊息的互斥。
5.根據權利要求3或4所述的裝置,其特徵在於,所述匯流排接口單元還包括:觸發子單元,用於在所述訊息傳送核向所述信箱模組寫入了訊息,或者,所述訊息接收核從所述信箱模組讀取了訊息之後,觸發所述匯流排錯誤反饋暫存器的狀態變化。
6.根據權利要求1所述的裝置,其特徵在於,所述信箱模組包括:存儲單元,用於根據訊息訪問地址對所述訊息進行存儲。
7.根據權利要求1所述的裝置,其特徵在於,所述信箱模組包括:通知單元,用於通過中斷請求通知所述訊息接收核接收訊息。
8.一種核間通信方法,其特徵在於,包括:信箱模組通過匯流排適配模組接收來自訊息傳送核傳送的訊息;所述信箱模組向訊息接收核傳送中斷請求,其中,所述訊息接收核根據所述中斷請求讀取所述訊息。
9.根據權利要求8所述的方法,其特徵在於,還包括:在多個核同時向所述信箱模組發起用於請求讀寫訊息的讀寫訪問請求時,按照預定的規則對所述多個讀寫訪問請求進行仲裁,將所述多個讀寫訪問請求依次串列輸出。
10.根據權利要求8所述的方法,其特徵在於,在多個核同時向所述信箱模組發起用於請求讀寫訊息的讀寫訪問請求時,通過復用匯流排錯誤反饋暫存器實現讀寫訊息的互斥。
11.根據權利要求10所述的方法,其特徵在於,通過復用匯流排錯誤反饋暫存器實現讀寫訊息的互斥包括:通過復用所述匯流排錯誤反饋暫存器實現互斥鎖的功能,實現多個訊息傳送核向所述信箱模組寫訊息的互斥;和/或,通過復用所述匯流排錯誤反饋暫存器實現互斥鎖的功能,實現訊息傳送核向所述信箱模組寫訊息與訊息接收核從所述信箱模組讀訊息的互斥。
12.根據權利要求10或11所述的方法,其特徵在於,在所述訊息傳送核向所述信箱模組寫入了訊息,或者,所述訊息接收核從所述信箱模組讀取了訊息之後,觸發所述匯流排錯誤反饋暫存器的狀態變化。
13.根據權利要求10或11所述的方法,其特徵在於,在所述訊息傳送核向所述信箱模組寫入了訊息之後,所述信箱模組向所述訊息傳送核傳送第一回響訊息,其中,所述訊息傳送核根據所述第一回響訊息確定所述訊息傳送核向所述信箱模組寫入訊息成功;和/或,在所述訊息接收核從所述信箱模組讀取了訊息之後,所述信箱模組向所述訊息接收核傳送第二回響訊息,其中,所述訊息接收核根據所述第二回響訊息確定所述訊息接收核讀取訊息成功。
14.根據權利要求8所述的方法,其特徵在於,在所述訊息接收核讀取了所述訊息之後,還包括,所述信箱模組將所述中斷請求清除。
15.一種核間通信裝置,其特徵在於,包括:接收單元,位於信箱模組中,用於通過匯流排適配模組接收來自訊息傳送核傳送的訊息;傳送單元,位於所述信箱模組中,用於向訊息接收核傳送中斷請求,其中,所述訊息接收核根據所述中斷請求讀取所述訊息。

實施方式

在該實施例中提供了一種核間通信裝置,圖1是根據該發明實施例的核間通信裝置的結構框圖,如圖1所示,該核間通信裝置包括信箱模組12和匯流排適配模組14,下面對該裝置進行說明。
信箱模組12,用於存儲訊息傳送核傳送給訊息接收核的訊息,並通知訊息接收核讀取該訊息;匯流排適配模組14,連線於上述信箱模組12,並且,處於信箱模組與進行通信的訊息接收核和訊息傳送核之間,用於提供信箱模組與訊息接收核和訊息傳送核的讀寫接口。
通過上述核間通信裝置,僅採用信箱模組以及連線於訊息接收核與訊息傳送核之間的匯流排適配模組的架構,相對於相關技術中採用共享記憶體的方式,或者,採用專用中斷配合共享記憶體的方式由於需要眾多軟體互動,從而導致核間通信步驟複雜,效率低下以及靈活性不高的問題,採用信箱模組與匯流排適配模組構成的簡單架構的核間通信裝置,通過核間通信裝置本身讀寫訊息訪問及回響讀寫訊息訪問的反饋,顯著地減少了核間通信的複雜度,有效地減少了通信時延,同時僅靠增加模組的方式就可以實現,具備較佳的可擴展性及可裁減性。
圖2是根據該發明實施例的核間通信裝置的優選結構框圖,如圖2所示,該裝置除包括圖1所示的所有模組外,還包括仲裁模組22,該仲裁模組22:連線於信箱模組12與匯流排適配模組14之間,用於在多個核同時向信箱模組發起用於請求讀寫訊息的讀寫訪問請求時,按照預定的規則對上述多個讀寫訪問請求進行仲裁,將該多個讀寫訪問請求依次串列輸出。
圖3是根據該發明實施例的核間通信裝置中信箱模組12的優選結構框圖一,如圖3所示,該信箱模組12包括:匯流排接口單元32,該匯流排接口單元32,用於通過復用匯流排錯誤反饋暫存器實現讀寫訊息的互斥。
圖4是根據該發明實施例的核間通信裝置中信箱模組12中匯流排接口單元32的優選結構框圖,如圖4所示,該匯流排接口單元32包括:第一互斥單元42和/或第二互斥單元44,下面對該優選匯流排接口單元進行說明。
第一互斥單元42,用於通過復用匯流排錯誤反饋暫存器實現互斥鎖的功能,實現多個訊息傳送核向該信箱模組寫訊息的互斥;和/或,第二互斥單元44,用於通過復用匯流排錯誤反饋暫存器實現互斥鎖的功能,實現訊息傳送核向該信箱模組寫訊息與訊息接收核從該信箱模組讀訊息的互斥。
圖5是根據該發明實施例的核間通信裝置中匯流排接口單元32的優選結構框圖,如圖5所示,該匯流排接口單元32包括:觸發子單元52,該觸發子單元52,用於在訊息傳送核向信箱模組寫入了訊息,或者,訊息接收核從信箱模組讀取了訊息之後,觸發匯流排錯誤反饋暫存器的狀態變化。
圖6是根據該發明實施例的核間通信裝置中信箱模組12的優選結構框圖二,如圖6所示,該信箱模組12包括:存儲單元62,該存儲單元62,用於根據訊息訪問地址對上述訊息進行存儲。
圖7是根據該發明實施例的核間通信裝置中信箱模組12的優選結構框圖三,如圖7所示,該信箱模組12包括:通知單元72,用於通過中斷請求通知上述訊息接收核接收訊息。
在該實施例中還提供了一種核間通信方法,圖8是根據該發明實施例的核間通信方法的流程圖,如圖8所示,該流程包括如下步驟:
步驟S802,信箱模組通過匯流排適配模組接收來自訊息傳送核傳送的訊息;
步驟S804,該信箱模組向訊息接收核傳送中斷請求,其中,該訊息接收核根據上述中斷請求讀取上述訊息。
通過上述步驟,通過信箱模組以及匯流排適配模組的組合實現核間通信,相對於相關技術中採用共享記憶體的方式,或者,採用專用中斷配合共享記憶體的方式由於需要眾多軟體互動,從而導致核間通信步驟複雜,效率低下以及靈活性不高的問題,不僅流程簡單,僅通過訊息讀寫訪問本身即可實現核間通信,顯著減少了核間通信的複雜度,而且在一定程度上有效地提高了核間通信效率。
優選地,在多個核同時向信箱模組發起用於請求讀寫訊息的讀寫訪問請求時,可以按照預定的規則對該多個讀寫訪問請求進行仲裁,將上述多個讀寫訪問請求依次串列輸出。需要說明的是,上述多個核可以是多個訊息傳送核,也可以是多個訊息接收核,也可以為兩者的混合,在進行讀寫訪問之前,對讀寫訪問請求先進行仲裁處理,避免核間通信的混亂,另外,該仲裁模組可以根據具體的進行核間通信的多個核的數量不同而靈活選擇,例如,當進行通信的核的數量較少時,可以不採用,而核的數量較多時,則也可以選擇一個或多個仲裁模組進行處理。
在多個核同時向信箱模組發起用於請求讀寫訊息的讀寫訪問請求時,通過復用匯流排錯誤反饋暫存器實現讀寫訊息的互斥。利用核間通信中已有的匯流排錯誤反饋暫存器實現讀寫訊息的互斥,相對於2012年10月之前的技術中為了實現互斥功能需要增加另外的互斥裝置和另外的互斥操作步驟,不僅能夠減少了核間通信裝置與外部結構的互動,並且在一定程度上有效地降低了資源的消耗。
需要指出的是,對於核間通信中較為容易出現的異常情況,復用匯流排錯誤反饋暫存器可以較好地實現讀寫訊息的互斥,例如,通過復用匯流排錯誤反饋暫存器實現互斥鎖的功能,實現多個訊息傳送核向信箱模組寫訊息的互斥;又例如,通過復用匯流排錯誤反饋暫存器實現互斥鎖的功能,實現訊息傳送核向信箱模組寫訊息與訊息接收核從信箱模組讀訊息的互斥。當然,兩者可以結合使用。操作時,在訊息傳送核向信箱模組寫入了訊息,或者,訊息接收核從信箱模組讀取了訊息之後,通過觸發匯流排錯誤反饋暫存器狀態的變化來實現信箱模組的讀寫狀態的變化,避免訊息的丟失,實現讀寫的有序性,保證讀寫訊息的可靠性。
較優地,在訊息傳送核向信箱模組寫入了訊息之後,信箱模組向訊息傳送核傳送第一回響訊息,其中,該訊息傳送核根據上述第一回響訊息確定訊息傳送核向信箱模組寫入訊息成功;和/或,在訊息接收核從信箱模組讀取了訊息之後,信箱模組向訊息接收核傳送第二回響訊息,其中,訊息接收核根據該第二回響訊息確定訊息接收核讀取訊息成功。在確定訊息接收核讀取了訊息之後,信箱模組將中斷請求自動清除。便於後續寫入新的訊息時,產生新的中斷請求,不僅保證讀寫訊息的對應性,而且減少了接收核清除中斷請求的操作步驟。
在該實施例中還提供了一種核間通信裝置,該裝置用於實現上述實施例及優選實施方式,已經進行過說明的不再贅述。如以下所使用的,術語“模組”可以實現預定功能的軟體和/或硬體的組合。儘管以下實施例所描述的裝置較佳地以硬體來實現,但是軟體,或者軟體和硬體的組合的實現也是可能並被構想的。
圖9是根據該發明實施例的核間通信裝置的結構框圖,如圖9所示,該裝置位於信箱模組90中,接收單元92和傳送單元94,下面對該裝置進行說明。
接收單元92,用於通過匯流排適配模組接收來自訊息傳送核傳送的訊息;傳送單元94,連線至上述接收單元92,用於向訊息接收核傳送中斷請求,其中,該訊息接收核根據上述中斷請求讀取上述訊息。
為解決相關技術中的核間通信裝置複雜度高,實時性差,以及在多核套用時的可擴展性差等問題。在該實施例中提供了一種新型的核間通信裝置ICN(Inter-coreCommunicationNetwork,簡稱為ICN)(在該部分為敘述方便,將核間通信裝置簡寫為ICN),該核間通信裝置ICN包括任意數量的以下3類模組:信箱模組(Postbox)(同上述信箱模組12),匯流排適配模組(BusAdapter,簡稱為BA)(同上述匯流排適配模組14)、以及仲裁模組(Arbiter)(同上述仲裁模組22)。ICN可以套用於採用層次結構以滿足核數量顯著增多和核異構的套用場景,圖10是根據該發明實施例的多核晶片的核間通信裝置結構框圖,如圖10所示,該結構包括信箱模組、匯流排適配模組、仲裁模組,下面對該裝置分別進行說明。
(1)信箱模組(Postbox)
訊息需要暫存在某個地方供接收核讀取,並且要具有可靠的通知接收核訊息到來的機制,在該實施例中提供的ICN中包括若干個Postbox模組。用以達到上述要求,該信箱模組提供以下功能:互斥的讀寫訊息、訊息存儲、產生通知中斷請求。
為實現信箱模組的上述功能,Postbox模組通過以下各個單元來完成,即在該信箱模組中包括若干匯流排接口單元(BusInterfaceUnit,簡稱為BIU),若干訊息存儲單元(RegFiles),以及若干中斷產生單元(IntGen)。下面分別對信箱模組所包括的各個單元進行說明。
BIU單元:用於實現讀寫訊息的互斥訪問功能。該BIU單元提供一個訊息接收核的讀訊息通道,和若干訊息傳送核的寫訊息通道。BIU單元復用匯流排錯誤(Error)反饋暫存器實現了一個鎖完成對同一資源(即下文說的RegFiles)的互斥訪問功能。
RegFiles單元:用於提供若干單元訊息存儲暫存器空間。對於每個Postbox來說,有幾個傳送訊息通道就有幾組訊息存儲暫存器。同時根據套用需求所決定的通信流量,也可以設定更多的訊息暫存器,不同的訊息暫存器之間通過地址進行區分。
IntGen單元:用於當有訊息到來時,負責產生中斷請求通知接收核。若檢測到接收核將訊息讀走後,中斷請求自動清除。可見,其避免了傳統核間通信方式中讀取訊息還需要額外的設定中斷清除暫存器的操作。其中,每根中斷線可以與一個或一組Regfiles單元捆綁在一起,從而接收核可以通過中斷請求編號進入特定ISR(中斷服務程式),並讀取對應RegFiles中的訊息。
需要說明的是,在該實施例的核間通信裝置中的Postbox具有相關技術中所不具備的互斥訪問保護功能:
在傳統的多核通信方式中,多核占用同一個核間通信資源需要利用互斥鎖或自旋鎖進行互斥操作。而Postbox復用匯流排Error反饋暫存器實現了一個鎖暫存器完成了互斥訪問功能,該操作實現如下:
BIU復用Error信息反饋暫存器實現了一個鎖暫存器。當鎖暫存器為0,代表鎖為釋放狀態;當鎖暫存器為1,代表鎖為占用狀態。在正常情況下,傳送核寫了PostboxRegFiles後,鎖暫存器自動變為1。之後,Postbox產生中斷通知接收核,接收核進行PostboxRegFiles讀操作,鎖暫存器自動變為0。
當第一種異常發生,即在接收核進行PostboxRegFiles讀操作之前又有某個傳送核想對一個Regfiles進行寫操作,如果此時Regfiles中的訊息被修改,則會造成之前的訊息丟失。但由於該實例中的Postbox中的鎖暫存器為1,表示鎖處於占用狀態,故傳送訊息寫操作未成功,即PostboxRegFiles信息未被修改;同時,鎖暫存器信息1將作為Error回響信息返回給傳送核通知其進行了異常操作。核進入異常處理,即可以等待若干指令周期後繼續進行訪問。直到當接收核進行了正常的讀PostboxRegFiles操作之後,鎖暫存器變為0,即鎖被釋放,其他傳送核可以進行正常寫操作。
當第二種異常發生,即在接收核讀取訊息的同時,發生了某個核的寫訊息操作,則BIU強制以先讀後寫的順序進行,即先保證前一個訊息被讀走,然後才能寫入新的訊息,這樣保證了核間通信的可靠性。
(2)匯流排適配模組(BA,BusAdapter):
由於進行通信的核之間匯流排協定可能不同,同時核需要訪問的Postbox比較多,故該實施例中的ICN包括若干BA模組,其包括1個核讀寫接口和若干個Postbox讀寫接口,該BA模組完成以下2個功能:
A、完成不同核接口匯流排協定向ICN內部數據讀寫協定的適配;
B、根據匯流排訪問的Postbox地址,進行地址過濾,即僅使唯一目的Postbox的內部接口上出現有效數據和有效控制信號。
可見,通過BA模組可以顯著隔離外部複雜的匯流排協定,內部僅採用簡單快速的數據讀寫協定,顯著減少了核間通信裝置的硬體延遲。
(3)仲裁模組(Arbiter):
當一個Cluster內部有多個核同時對一個Postbox發起訊息讀寫訪問時將發生衝突。因而在該實施例中的ICN包括若干Arbiter模組,其包括若干個訊息輸入接口和1個訊息輸出接口。用以提供如下功能:對若干數據通道的讀寫訪問請求按照特定原則進行仲裁,即將同時到達的訊息讀寫訪問請求串列化。
其中,Arbiter對同時到達仲裁模組的訊息讀寫訪問進行輪詢仲裁,即使多個同時到達的訊息讀寫訪問按照順序串列輸出;或者,對同時到達該仲裁模組的訊息讀寫訪問進行優先權仲裁,即使多個同時到達的訊息讀寫訪問請求按照優先權由高到低的順序串列輸出。
在該實施例中還提供了一種核間通信方法,圖11是根據該發明實施例的核間通信方法的流程圖,如圖11所示,該方法包括如下步驟:
步驟S1102,發訊息核通過BA進行寫訊息操作,並根據BA返回的信息確定訊息是否傳送成功。各個核的寫訊息操作是異步且獨立的,互不影響。如果BA返回的ErrorResponse信息為無效,則訊息傳送成功;反之,表示Postbox被占用,寫訊息未成功。此時,傳送核可以延遲若干周期後再進行寫訊息操作,直到訊息傳送成功為止。
步驟S1104,傳送核的傳送訊息經過Arbiter或不經過Arbiter傳送至具有特定地址的Postbox中,Postbox產生中斷請求(int)給接收訊息核。
步驟S1106,接收核接收到中斷,並進行訊息讀取操作。
步驟S1108,接收核的訊息讀操作請求信號進入ICN直至傳送到產生中斷請求的信箱模組(Postbox)中,並讀取到傳送給它的訊息,且Postbox的中斷請求自動拉低。
該發明所提供的實施例及優選實施方式具有天生的互斥功能。即在進行核間通信前,無需進行額外的申請鎖和釋放鎖的操作,互斥完全通過對ICN本身的讀寫訪問和ERROR返回機制完成,顯著減少了核間通信的複雜性,減少了通信時延;另外,無需要任何初始化步驟,ICN上電復位後即可正常工作;當訊息讀寫請求進入ICN後,完全由ICN自行管理,不僅實現了自動化管理,而且在一定程度上大大節省了資源。
採用分散式結構,可以使某些通信流量局限在特定區域的頻寬之內而不對其他通信區域造成任何影響,並且顯著減少了單一仲裁模組的仲裁開銷,從而顯著減少了多核整體的統計通信延遲。
當核數量顯著增加時,僅需增加相應數量的3類模組和對應的互聯線,同時互聯方式也可以根據套用需求靈活連線,不影響ICN的2012年10月之前的結構特徵和軟體操作步驟,因此具有極好的可擴展性和可裁減性。
下面結合附圖10對該發明實施例作進一步的具體說明。需要說明的是,多核不限於實施例子中所舉的CPU(中央處理器)和DSP(數位訊號處理器)。
整個ICN採用3級結構以滿足多核(一共10個核)和核異構(6DSP+4ARM)的套用需求。整個ICN包含15個Postbox,10個BA以及4個Arbiter,其整體結構如圖10所示。3個DSP構成一個Cluster。2個CPU構成1個Cluster,由於其數據流量比較小,數據通路未經過仲裁器。可見,ICN可以根據核的數量和通信流量選擇3類組件的數量,以及互聯方式(如實施例子中不經過仲裁器,直接連到Postbox上),不影響ICN的整個結構特徵和通信流程,可擴展現性和可裁減性極好。
按照負責功能區域,Postbox分為LocalPostbox(本地信箱)和CrossPostbox(交叉信箱)。具體來說,在該實施例中存在以下幾個:負責DSPcluster(簇)內部和DSPcluster(簇)內部進行核間通信的10個localPostbox,負責DSPcluster與CPUcluster之間的核間通信的1個localPostbox,負責DSPcluster之間進行核間通信1個CrossPostbox以及或負責CPUcluster之間進行核間通信1個CrossPostbox。可見,這種分散式結構可以使某些通信流量局限在特定區域的頻寬之內而不對其他通信區域造成任何影響,並且顯著減少了單一仲裁模組的仲裁開銷,顯著增大了多核整體頻寬效率,減少了多核整體的通信延遲。同時,當核數量顯著增加時,可能導致一個核接收的核間通信中斷請求過多,此時可將多個Postbox的中斷請求通過或邏輯進行合併從而減少到達核的核間中斷請求數量,從而大大增加了ICN的可擴展現性。
其中,ICN包括的3類模組的具體實施如下:
(1)信箱模組(Postbox)
訊息需要暫存在某個地方供接收核讀取,並且要具有可靠的通知接收核訊息到來的機制,故該發明所述ICN包括若干Postbox模組。其提供如下功能:訊息存儲、互斥的讀寫訊息、產生通知中斷請求。
圖12是根據該發明實施例的核間通信裝置中信箱模組的結構框圖,如圖12所示,該信箱模組(Postbox)包括若干BIU單元,若干RegFiles單元,和若干IntGen單元。其中,各功能單元如下:
BIU單元:實現讀寫訊息的互斥訪問功能。其中BUS0為該Postbox所屬接收核的讀訊息通道,BUS1~n為傳送核的寫訊息通道。BIU單元復用匯流排Error反饋暫存器實現了一個鎖完成對同一個RegFiles單元的互斥訪問功能。
RegFiles單元:提供若干單元訊息存儲暫存器空間。對於每個Postbox來說,有幾個傳送訊息通道就有幾組訊息存儲暫存器。同時根據套用需求所決定的通信流量,也可以設定更多的訊息暫存器,不同的訊息暫存器之間通過地址進行區分。
IntGen單元:當有訊息到來時,負責產生中斷請求通知接收核。若檢測到接收核將訊息讀走後,中斷請求自動清除。可見,其避免了傳統核間通信方式中讀取訊息還需要額外的設定中斷清除暫存器的操作。其中每根中斷線可以與一個或一組Regfiles單元捆綁在一起,從而接收核可以通過中斷請求編號進入特定ISR(中斷服務程式),並讀取對應RegFiles中的訊息。
其中,需要特彆強調的,本核間通信裝置中的Postbox具有其他方案所不具備的互斥訪問保護功能。
在傳統的多核通信方式中,多核占用同一個核間通信資源需要利用互斥鎖或自旋鎖進行互斥操作。而Postbox復用匯流排Error反饋暫存器實現了一個鎖暫存器完成了互斥訪問功能,其具體實現如下:
BIU復用Error信息反饋暫存器實現了一個鎖暫存器。當鎖暫存器為0,代表鎖為釋放狀態;當鎖暫存器為1,代表鎖為占用狀態。在正常情況下,傳送核寫了PostboxRegFiles後,鎖暫存器自動變為1。之後,Postbox產生中斷通知接收核,接收核進行PostboxRegFiles讀操作,鎖暫存器自動變為0;
當第一種異常發生,即在接收核進行PostboxRegFiles讀操作之前又有某個傳送核想對一個Regfiles進行寫操作,如果此時Regfiles中的訊息被修改,則會造成之前的訊息丟失。但由於該實施例Postbox中的鎖暫存器為1,表示鎖處於占用狀態,故傳送訊息寫操作未成功,即PostboxRegFiles信息未被修改;同時,鎖暫存器信息1將作為Error回響信息返回給傳送核通知其進行了異常操作。核進入異常處理,即等待若干指令周期後繼續進行訪問。直到當接收核進行了正常的讀PostboxRegFiles操作之後,鎖暫存器變為0,即鎖被釋放,其他傳送核可以進行正常寫操作。
當第二種異常發生,即在接收核讀取訊息的同時,發生了某個核的寫訊息操作,則BIU強制以先讀後寫的順序進行,即先保證前一個訊息被讀走,然後才能寫入新的訊息,這樣保證了核間通信的可靠性。
在實現時,鎖暫存器即從設備Error信息產生暫存器,即無需增加額外的如互斥鎖,信號量那樣的互斥功能單元;申請鎖操作成功即是訊息傳送操作成功,釋放鎖成功即是訊息讀取成功,訊息申請鎖失敗即是匯流排反饋Error回響,即互斥處理機制與匯流排通用的讀寫機制一致,即無需增加額外的互斥操作周期,顯著減少了編程複雜性和通信延遲。因此,上述實施例及優選實施方式所示的裝置和方法實現了對核間通信資源的互斥訪問保護。
(2)匯流排適配模組(BA,BusAdapter):
由於進行通信的核之間匯流排協定可能不同,同時核需要訪問的Postbox比較多,故該發明所述ICN包括若干BA模組,其包括1個核讀寫接口和若干個Postbox讀寫接口,其完成2個功能:
A.完成不同核接口匯流排協定向ICN內部數據讀寫協定的適配;
B.根據匯流排訪問的Postbox地址,進行地址過濾,即僅使唯一目的Postbox的內部接口上出現有效數據和有效控制信號。
可見,通過BA模組可以顯著隔離外部複雜的匯流排協定,內部僅採用簡單快速的數據讀寫協定,顯著減少了核間通信裝置的硬體延遲。
在該實施例子中,內部外部均採用比較簡單的增強外置匯流排(AdvancedPeripheralBus,簡稱為APB)協定,圖13是根據該發明實施例的核間通信裝置中匯流排適配模組的結構框圖,如圖13所示,BA根據APB的訪問地址和Postbox的暫存器地址是否匹配來使能輸出不同的APB選擇信號,從而選通不同的訊息通路。該APB接口可讀可寫,核通過APB接口對Postbox進行訊息讀寫操作。
(3)仲裁模組(Arbiter):
當一個Cluster內部有多個核同時對一個Postbox發起訊息讀寫訪問時將發生衝突。故該發明所述ICN包括若干Arbiter模組,圖14是根據該發明實施例的核間通信裝置中仲裁模組的結構框圖,如圖14所示,該仲裁模組包括若干個訊息輸入接口和1個訊息輸出接口。其提供如下功能:對若干數據通道的讀寫訪問請求按照特定原則進行仲裁,即將同時到達的訊息讀寫訪問請求串列化。
其中,Arbiter對同時到達所述仲裁模組的訊息讀寫訪問進行輪詢仲裁,即使多個同時到達的訊息讀寫訪問按照順序串列輸出;即對存在訊息讀寫請求的不同數據通路之間進行輪詢,即每次只能選通一個存在請求的數據通路,讀寫訪問完成後,再選通下一個存在訊息讀寫請求的數據通路;依次類推,直至處理完所有通路的訊息讀寫請求。
同時,根據模組設定的工作模式,可以對同時到達所述仲裁模組的訊息讀寫訪問進行優先權仲裁,即使多個同時到達的訊息讀寫訪問請求按照優先權由高到低的順序進行。
套用本核間通信裝置的核間通信方法步驟如下:待傳送訊息核通過BA進行寫訊息操作,並根據BA返回的信息確定訊息是否傳送成功。各個核的寫訊息操作是異步且獨立的,互不影響。如果BA返回的ErrorResponse通信息為無效,則訊息傳送成功;反之,表示Postbox被占用,寫訊息未成功。此時,傳送核可以延遲若干周期後再進行寫訊息操作,直到訊息傳送成功為止。
若干傳送核的傳送訊息經過Arbiter或不經過Arbiter傳送至具有特定地址的Postbox中,Postbox產生中斷請求給接收訊息核。當互相通信的核數量較少時,訊息讀寫可以不經過Arbiter。
接收核接收到中斷,並進行訊息讀取操作。
接收核的訊息讀操作請求信號進入ICN直至傳送到產生中斷請求的Postbox中,並讀取到傳送給它的訊息且Postbox的中斷請求自動拉低(即將讀取完畢訊息所對應的中斷請求自動清除)。
舉下面3個例子說明該發明所述核間方法:
A:一般套用下CLUSTER內部訊息通信過程:
1.發訊息核DSP2傳送訊息到屬於目的核DSP0的Postbox0;
2.Postbox0產生中斷請求給DSP0;
3.DSP0進入ISR,讀取Postbox中的訊息。
B.一般套用下同時有跨CLUSTER的訊息通信和CLUSTER內部的訊息通信過程:
1.DSPcluster0內部發訊息核DSP2傳送訊息到屬於目的核DSP0的Postbox0;DSPcluster1的發訊息核DSP3,4同時有訊息需要傳送給DSPcluster0DSP0。故首先經過了DSPcluster1內部的Arbiter2進行了仲裁,假設傳送核DSP3獲得了仲裁權,先把訊息寫到了DSPCLUSTER0的Postbox中,而後傳送核DSP4獲得了仲裁權,把訊息寫到了DSPCLUSTER0的Postbox中;
2.DSPCLUSTER0內部Postbox0和DSPCLUSTER0的Postbox同時有中斷請求產生;
3.DSP0核進入ISR,根據軟體設定的優先權,假設先讀取了內部Postbox0的訊息,再讀取DSPCLUSTER0的Postbox中的訊息。
C.互斥保護機制生效時的跨CLUSTER的核間通信過程:
1.CPUCORE0經過BA6傳送了一條訊息到CPU&DSPcrossPostbox;
2.CPU&DSPcrossPostbox產生中斷請求給DSP5,DSP5由於同時有優先權更高的事務未來得及處理該中斷,即未進行訊息讀取;
3.CPUCORE0經過BA6又傳送了一條訊息到CPU&DSPcrossPostbox,但返回ERROR信息,表示通信資源鎖未被釋放,該訊息未傳送成功;CPUCORE0進入等待周期後又再次進行訊息傳送操作。
4.DSP5處理完高優先權的事務,成功讀取第1條訊息。
5.CPUCORE0成功傳送第2條訊息,即返回的ERROR信息為無效。然後CPUcore0成功讀取了第2條訊息。可見在進行核間通信的過程中無需額外的互斥保護機制,即實現了可靠的核間通信。
需要強調的是,在實際的核間通信過程中,以上3種情況或更複雜的通信場景都是可能存在的。
另外,該發明實施例的核間通信裝置所包括的上述3個模組以及連線互動關係是解決相關技術所存在的技術問題的關鍵;該發明實施例的核間通信方法也是區別與2012年10月之前的技術也是顯而易見的。上述實施例及優選實施方式具有天生的互斥功能。即在進行核間通信前,無需進行額外的申請鎖和釋放鎖的操作,互斥完全通過對ICN本身的讀寫訪問和ERROR返回機制完成;另外,實施時無需要任何初始化步驟,ICN上電復位後即可正常工作;當訊息讀寫請求進入ICN後,完全由ICN自行管理,從而顯著減少了核間通信的複雜性,減少通信時延;該核間通信裝置採用分散式結構,可以使某些通信流量局限在特定區域的頻寬之內而不對其他通信區域造成任何影響,並且顯著減少了單一仲裁模組的仲裁開銷,從而顯著減少了多核整體的統計通信延遲;當核數量顯著增加時,通過上述實施例及優選實施方式,僅需增加相應數量的3類模組和對應的互聯線,同時互聯方式也可以根據套用需求靈活連線,不影響ICN的已有結構特徵和軟體操作步驟,因此具有極好的可擴展性和可裁減性。
顯然,該領域的技術人員應該明白,上述的該發明的各模組或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網路上,可選地,它們可以用計算裝置可執行的程式代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,並且在某些情況下,可以以不同於此處的順序執行所示出或描述的步驟,或者將它們分別製作成各個積體電路模組,或者將它們中的多個模組或步驟製作成單個積體電路模組來實現。這樣,該發明不限制於任何特定的硬體和軟體結合。

榮譽表彰

2021年11月,《核間通信裝置及方法》獲得第八屆廣東專利獎金獎。

相關詞條

熱門詞條

聯絡我們