新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 基于SystemC的異構多核通信模塊設計

基于SystemC的異構多核通信模塊設計

作者: 時間:2011-01-10 來源:網絡 收藏

通信控制模塊

  該模塊用來專門處理各個核之間的通信指令,對其進行解釋翻譯,并將最終行為直觀的 告訴總線,達到核間通信的目的。新架構設計按照SystemC 交易級建模(TLM)原則,為以后 多核功能的擴展性提供可能性。

  3.2 通信機制

  為了異構多核通信的實現(xiàn),需要向多核仿真器的每個模擬器內核擴展三條訪問共享存儲 區(qū)的指令,分別是:申請空間、讀取和寫入。

  在內核代碼中對共享存儲區(qū)訪問指令進行譯碼之后,需要對共享存儲區(qū)發(fā)出操作請求, 與操作請求一起發(fā)送的是操作的信息,對于申請、讀取和寫入三種操作,各自的操作信息如 下表所示:

操作信息

  當 CMCCtrl 受到接收到來自Core1/Core2 的訪問請求,模塊觸發(fā)。同時隨著請求一起接 收下來的其他信息,包括指令編碼、請求的數據類型、地址偏移等等。CMCCtrl 對這些請求 信息進行分析,當判斷出核間需要數據通信后,將需要的信息提取發(fā)送至總線模塊。具體模 塊描述如下:

  SC_MODULE(CMCCtrl)

  { sc_inout isCore1, isCore2; //來自Core1/Core2 的訪問請求,是本模塊的觸發(fā)信號

  sc_out core1_latency, core2_latency; //返回給Core1/Core2 的延時信息

  sc_inout data_value; //需要傳遞的數據

  sc_port bus_port; //通信總線模塊接口

  /*返回給Core1/Core2 的應答信號,表明CORE1/Core2 獲得了共享存儲區(qū)的訪問權,并

  且可以繼續(xù)執(zhí)行下一個周期的操作*/

  sc_inout ackCore1, ackCore2;

  /*隨著isCore1/isCore2 請求一起接收下來的請求信息,包括指令編碼、請求的數據類型、

  地址移等等*/

  sc_inout data_type, array_capacity, data_index, data_id;

  /*隨著is Core1/isCore2 請求一起接收下來的,表明當前Core1/Core2 運行的周期數,用

  于進行內核調度判斷和訪存沖突分析*/

  sc_in core1_cycle, core2_cycle;

  /*對isCore1 或者isCore2 的上升沿敏感的響應函數,它被定義為線程類型,是CMCCtrl

  類的實現(xiàn)函數。函數內部需要對兩個內核的訪問請求進行判斷、控制,并調用相應的其它成員函數。



關鍵詞: 收發(fā)器

評論


相關推薦

技術專區(qū)

關閉