在電腦編程中,XC是一種用於即時嵌入式並列處理器的程式語言,執行目標是XMOS英語XMOS的XCore處理器架構[1]

XC
編程範型並行, 並列, 分散式, 多核, 即時, 指令式
設計者XMOS英語XMOS
實作者XMOS英語XMOS
面市時間2005年
型態系統強型別, 靜態
副檔名.xc
主要實作產品
xcc
啟發語言
C, occam, CSP

XC是指令式語言,基於了occam語言的並列和通訊特徵,和C語言的語法和順序特徵[2]。它提供的根本特徵對應於現有架構的各種資源,比如通道和定時器。

在結合於XCore處理器時,XC被用來建造具有低層I/O、即時效能和通常現場可程式化邏輯閘陣列(FPGA)或專用積體電路(ASIC)裝置特有的計算能力的嵌入式系統。

架構模型

編輯

XC程式在一組XCore瓦片(tile)上執行。每個瓦片包含一個或多個處理核心和在核心間共享的資源,包括I/O和主記憶體。所有瓦片都通過通訊網路連接,允許任何瓦片相互之間的通訊。給定的目標系統在編譯期間由編譯器規定,它確保能獲得充足數量的瓦片、核心和資源來執行編譯好的程式。

例子程式

編輯

多核Hello World

編輯
#include <stdio.h>
#include <platform.h>

void hello(int id, chanend cin, chanend cout){
  if (id > 0) cin :> int;
  printf("Hello from core %d!", id);
  if (id < 3) cout <: 1;
}

int main(void) {
  chan c[3];
  par (int i=0; i<4; i++)
    on tile[i] : hello(i, c[i], c[(i+1)%4]);
  return 0;
}

歷史影響

編輯

XC的設計受到occam程式語言的嚴重影響,occam首先介入了通道通訊、輪選、埠和定時器。Occam是David May英語David May (computer scientist)開發的並建立在交談循序程式(CSP)之上,CSP是Tony Hoare開發的行程代數系統。

參見

編輯

參照

編輯
  1. ^ David May. The XMOS XS1 Architecture (PDF). [2012-03-01]. ISBN 1-907361-01-4. 
  2. ^ Douglas R. Watt. Programming XC on XMOS Devices (PDF). XMOS Limited. [2012-03-01]. ISBN 978-1-907361-03-6. 

延伸閱讀

編輯
  • The XMOS programming guide (HTML, PDF)
  • The XC Specification (HTML, PDF)

外部連結

編輯