在计算机编程中,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)

外部链接

编辑