在計算機編程中,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)

外部連結

編輯