XC語言
編程範型 | 並行, 並列, 分散式, 多核, 即時, 指令式 |
---|---|
設計者 | XMOS |
實作者 | XMOS |
面市時間 | 2005年 |
型態系統 | 強型別, 靜態 |
副檔名 | .xc |
主要實作產品 | |
xcc | |
啟發語言 | |
C, occam, CSP |
在電腦編程中,XC是一種用於即時嵌入式並列處理器的程式語言,執行目標是XMOS的XCore處理器架構[1]。
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開發的並建立在交談循序程式(CSP)之上,CSP是Tony Hoare開發的行程代數系統。
參見
參照
- ^ David May. The XMOS XS1 Architecture (PDF). [2012-03-01]. ISBN 1-907361-01-4.
- ^ Douglas R. Watt. Programming XC on XMOS Devices (PDF). XMOS Limited. [2012-03-01]. ISBN 978-1-907361-03-6.