XC语言

在计算机编程中,XC是一种用于实时嵌入式并行处理器的编程语言,运行目标是XMOS的XCore处理器架构[1]

XC
并发, 并行, 分布式, 多核, 实时, 指令式
設計者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开发的并建立在通信顺序进程(CSP)之上,CSP是Tony Hoare开发的进程代数系统。

参见

引用

  1. David May. (PDF). [2012-03-01]. ISBN 1-907361-01-4.
  2. Douglas R. Watt. (PDF). XMOS Limited. [2012-03-01]. ISBN 978-1-907361-03-6.

延伸阅读

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

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.