Skip to main content
欢迎来到PAWPAW技术文档网站了解更多信息

XCORE.AI平台简介

img
全新的XCORE.AI平台

XMOS 推出的 XCORE.AI 平台是专为 AIoT 设计的高速且经济高效的解决方案。它在不牺牲性能的同时,提供了前所未有的灵活性,让用户能够体验到单个 MCU 集成高效 AI、DSP、I/O 和控制功能的便利。

XCORE.AI 平台的亮点包括:

⚡️ 高达2400MIPS的处理速度,更具备硬件向量加速(VPU)单元,想象在一颗芯片上完成整个AI&DSP系统

🔧 具备完全自定义的GPIO,如同编写C一般简单,却像在使用FPGA一样开发您的产品

⏱️ 内置硬件RTOS,延时超低且精确,模拟时序误差低至纳秒(Nano Second)

命名规则

XMOS的处理器平台的芯片命名规则如下表:

XU316-1024-QF60B-PP24为例的命名规则

XU3161024QF60BPP24
集成USB PHY芯片XMOS第三代芯片XCORE.AI系列16个核心1024K Byte RAM(512kB/tile)QFN60 pin封装3v3 IO 电平2400 MIPS速度

其中它的芯片丝印为:V16A0PP

XU316芯片框图

XU316是一个多核MCU处理器芯片平台,需要通过类似C语言编程的固件才能处理应用程序。在芯片本体板块,可以看到已集成了XCORE,USB PHY 芯片,PLL,OTP等板块内容,同时也能大体推断出外围的硬件的最小系统仍需要电源芯片,Flash芯片,晶振。

下图中:

  • XU316芯片平台分2个tile,其对应Tile 0和Tile 1, 每个Tile 都有8个Logical Cores(可以理解为8个核心,或者线程),2个Tiles则共有16个核心。
  • XU316芯片平台叠封了USB 2.0 PHY收发芯片,而USB的协议(类如UAC协议)则是在XU316的核心编程实现,USB PHY仅负责数据打包收发。
  • XU316芯片平台集成了PLL板块,可以通过在利用核心进行配置以产生700MHz以内的方波频率,同样可用于产生音频所需要的24.576MHz/ 22.5792MHz的音频时钟信号
XU316芯片框图

XU316-1024-QF60B-PP24的芯片框图

最小系统

要使XU316芯片能够正常工作,XU316的最小系统需要简单的外围器件。需要3路电源供应(3V3,1V8和0V9),QSPI Flash(存储固件)和晶振便可启动工作。具体的应用和产品,需要额外的外围器件,如音频类的ADC、DAC等等。

电源供应

因XU316芯片中没有集成LDO,需要系统供应3路电源才能启动。在最小系统中,三路电源的基本供应的情况如下表

Power supply功能电流类型
0v9(VDD)Tile的电源供应,包含了核心和PLL约300mADC-DC
1v8USB PHY的模拟电源供应和
时钟和XTAG I/O电源供应
约30mADC-DC
3V3USB PHY的模拟电源供应
I/O口的电源供应
约33mALDO

时钟

需要外置晶振24MHz供应XU316的PLL进行升频到600MHz或者700MHz,支持无源晶振或者时钟输入。

flash

需要外置QSPI Flash芯片,存储XU316的程序固件。

  • 对于音频应用,选择16Mbit的Flash便可满足要求。
  • 对于使用神经网络或大型算法的应用,我们推荐使用64Mbit及以上大小的Flash。
XU316-1024-QF60B-PP24的应用框图

核心特性

XU316芯片的每个处理单元(tile)默认以600MHz的频率运行。对于每个tile,XCORE硬件调度器将主频通过时间分片的方式分配给各个逻辑核心。因此,当应用程序使用不同数量的逻辑核心时,每个核心可用的主频会相应变化。下表展示了逻辑核心数量与各核心主频之间的对应关系。

逻辑核心数量1 - 5678
每核心主频120MHz100MHz86MHz75MHz
600/5=120600/6=100600/7=86600/8=75

XCORE采用五级流水线设计,每条指令都需要5个时钟周期才能完成。因此,当运行的逻辑核心数不超过5个时,每个核心的最高频率可达120MHz(相当于每个逻辑核心的处理速度与Cortex-M3相似)。当运行的逻辑核心数超过5个时,为了平衡硬件调度器的时间分片影响,每个核心的主频会适当降低,导致单个逻辑核心的处理速度略有下降。然而,由于XCORE架构支持多任务并行运行,并能实现接近实时的性能控制,即使核心频率降低,整体系统的处理能力仍随着逻辑核心数量的增加而提升。

每个逻辑核心都独立运行,互不干扰,可以像独立的MCU那样调用所在tile的RAM、浮点计算单元、I/O等资源。逻辑核心间的数据交换通过通道端(channel end)完成,XU316拥有64个通道端(每个tile 32个)。

此外,每个Tile还可以设置为双发模式(dual issue mode),即在每个时钟周期的上升沿和下降沿分别执行一条指令,使得一个tile在600MHz的主频下,可以达到1200 MIPS(百万指令每秒)的处理速度,两个tile则可达到最高2400 MIPS。

I/O 特性

XU316的所有I/O端口均可编程,每个tile都配备了相应的I/O资源,每个I/O端口可以在代码中配置为输入或输出。初始状态下,XU316的I/O端口是未定义的,没有固定分配给特定接口如UART、I2C或I2S等,而是通过软件代码调用某个I/O端口作为输入或输出,以适配特定接口的时序,这与FPGA的I/O特性相似。例如,可以调用X0D35(1M)作为I2S接口的BCLK时序,而将X0D36配置为I2S接口的LRCLK时序。

XU316的I/O资源包括16个1位端口、2个4位端口和1个8位端口。

参考XU316-1024-QF60B-PP24数据手册:

34个通用I/O引脚,可配置为输入或输出

— 最多16 x 1位端口,2 x 4位端口,1 x 8位端口

1位端口

XU316的1位端口通常用于串行通信,如PWM或时钟信号,或作为串行输入。例如,我们可能会选择下表中的4个1位端口来实现I2S接口的时序,通过编程实现相应的时钟和协议,比如:1L作为MCLK,1M作为LRCLK,1O作为BCLK,1P作为DATA。

1bit port功能定义代码调用时的名称定义类型
X0D001AXS1_PORT_1AI/O
X0D011BXS1_PORT_1BI/O
X0D101CXS1_PORT_1CI/O
X0D111DXS1_PORT_1DI/O
X0D351LXS1_PORT_1LI/O
X0D361MXS1_PORT_1MI/O
X0D371NXS1_PORT_1NI/O
X0D381OXS1_PORT_1OI/O
X0D391PXS1_PORT_1PI/O

4位/8位端口

XU316的4位端口通常用于需要并行时序接口的场合,如QSPI Flash,需要连接D0、D1、D2和D3脚位进行数据传输。如果不需要实现复杂的并行时序接口,这些端口也可以作为简单的GPIO使用,例如按键、LED、I2C、输入边缘检测等。

提示

在软件层面,需要编写函数来解析并行数据并将其重新组合为串行数据。

8位端口的使用方式与4位端口类似。

4 bit port功能定义代码调用时的名称定义类型
X0D044B-0XS1_PORT_4BI/O
X0D054B-1XS1_PORT_4BI/O
X0D064B-2XS1_PORT_4BI/O
X0D074B-3XS1_PORT_4BI/O

时钟块

XU316拥有10个时钟块,可用于分频处理PLL产生的时钟,为I/O提供特定的时序输出,或接收外部时钟供程序内部使用。例如,一个时钟块可以接收外部的24.576MHz音频时钟信号,并以此为基准产生LRCLK和BCLK时序。

XU316的时钟块功能与FPGA的时钟特性相似,便于实现灵活的接口时序要求,结合XU316灵活的I/O特性,有助于实现低抖动。

总结

XMOS XU316集成了MCU、FPGA和DSP的特性,执行速度可高达2400 MIPS。其灵活的I/O特性和集成的浮点运算单元使其成为一个高性能处理器。在软件层面,XU316的应用程序主要通过C语言编程实现,同时包含了一小部分非标准C语言的底层硬件描述。