返回

自适应处理器

01/14/2022 浏览次数:3756
字体大小: 14px 16px 18px

 

1 自适应架构概述

当集成电路的制程工艺越来越接近原子级别,新的芯片制造费用越来越高,硅工艺快走到极限的时候,还有什么办法来满足社会上不断增长的计算量需求?以IntelARM为代表的公司采用多核并行执行来提升计算能力,但是随着核数增加,核与核之间数据的等待,既增加了能耗,也导致真正计算性能远远低于预期,尤其是功耗成了移动计算平台的头号难题。高性能与低功耗是芯片设计的两个相悖方向,所有计算芯片公司都在努力寻求一个高性能低功耗的解决方案。如Intel通过兼并Altera AMD兼并Xilinx,都是想通过CPU+FPGA异构的方式来实现高性能低功耗的目的,这种方案无疑加大了项目设计难度,因为FPGACPU编程与原理各不相同,既使可以通过高级语言综合将C/C++/SystemC转化成RTL,也很难在软硬件结合的环境中准确控制其时序,这种方案要求设计人员精通完全不同的软件与硬件设计模式,但是这两套设计模式相冲突,普通人很难灵活切换与掌控。随着技术的发展,片上网络(NOCNetwork on chip)架构也逐渐进入产业界,也就是一颗芯片内部集成成百上千的精简化的RISC处理器核心,然后核与核之间通过特制网络协议进行通讯。当大量数据涌入的时候,每个核都要将传输到自己位置上的包识别一次,如果确认该包属于自己,则执行数据,否则转发到下一个核。海量数据在片上多核网络芯片的网络上传输,会大大降低数据到达时间,增加延迟与功耗,每个核等待时间和包识别时间都是功耗上升的关键因素。

 

除了常见的芯片架构外,还有一些特殊架构也在不断兴起,首先是不做芯片的GoogleAlphabet)开始入手设计芯片,并推出了Tensor深度学习芯片,之后又有IBM推出的模拟人类大脑的神经元芯片TrueNorth,该类芯片将深度学习神经网络做成芯片,用来做人工智能和图像识别以及大数据处理等。但是神经网络不是采用传统编程模式来设计的,而是通过海量数据训练来达到预期效果,所以,在使用上,要采用数据训练的方式进行应用,比传统芯片开发周期长。海量数据获取与样本鉴别又是一个巨大的挑战。另外,TrueNorth芯片的运行频率受限制,计算带宽自然无法获得显著提升。

 

Robei沉芯芯片架构是基于吴国盛提出的时空转换理论,是一种超越摩尔定律的集成电路设计方案。随着摩尔定律的失效,计算性能的提升无法再依赖于工艺提升。传统的SOC架构注定芯片设计走向垄断,虽然SOC集成了很多IP,但是并不是每个IP同时都在使用,IP模块是通过关断与切换来实现应用的,比如一开始在使用A模块,但是程序要运行B模块,就需要把A模块关掉,给B模块上电,重置一下寄存器,然后再使用B模块。关断与切换的过程大概耗时100ns1us的时间,而且关断与切换的方式需要同时把AB模块预先集成到硅晶圆上,会增加硅晶圆面积,也增加了功耗。沉芯异构芯片采用另外一种模式,采用高速动态可重构的计算阵列重构的方式实现,功能模块可以通过软件配置,不需要预先集成,减少了晶圆面积和降低了功耗。沉芯自适应芯片可以通过不断的重构,来实现同一芯片上可以配置无限的功能,一眨眼可以重配置10万次以上,让用户感觉不到切换的时间,反而感觉到芯片需要什么就可以用什么功能,实现感觉上的芯片硅面积无限大。

13-1 时空转换理论

 

 

沉芯芯片通过软件定义芯片的模式打造出一种全新的架构,实现串并行无缝切换,传统CPU/MCU架构负责串行数据处理,自适应动态可重构阵列处理器负责数据并行处理,两个处理器之间采用DMA进行数据交换。沉芯芯片是按需配置的芯片,根据不同的时刻对硬件不同要求,进行调用不同的配置,达到微秒到纳秒级别的重构。当数据不需要并行处理的时候,传统CPUMCU架构完全满足串行处理的需求,并行部分可以处于待机状态,节约能耗。当需要采用并行加速的时候,启用自适应并行处器,采用先配置后使用的方式来实现软件定义芯片。在运行过程中,传统架构可以随时响应自适应处理器的中断请求,实现实时动态可重构。沉芯打造出数据流与控制流的一体化,实现了软件定义芯片。数据在自适应处理器中可以多重复制与数据交叉,降低了反复存取数据带来的功耗的消耗。沉芯芯片适合在很多对计算性能有比较高要求同时功耗受限的场合,为客户提供最优化的处理方案。该芯片不仅内部结构可以软件重构,外部引脚也可以软件重构,用户的程序运行不需要重写程序,只需要提前配置引脚重映射就可以继续执行。

 

2 自适应阵列处理器

    自适应阵列处理器由MemioBusmatrixRocell阵列组成。Memio是由行一行的32位存储器所构成,既可以作为输出,也可以作为输入,具体长度依据不同的沉芯芯片的型号来定。Busmatrix作为数据走向的控制,用于链接Rocell的具体行与Memio的具体行数据。通过Busmatrix可以实现任一一行的Memio的数据传输到任一一行的Rocell阵列种。Rocell阵列是由一堆异构的Rocell单元进行二维排布实现的,每个Rocell单元都可以与相邻的8Rocell进行通信。

 

 Rocell阵列中每个Rocell只执行一种计算,将计算结果直接传递给相邻Rocell进行下一步计算。整个阵列中可以只使用部分Rocell,未被使用的Rocell的时钟被关断,不会有动态功耗,只有漏电功耗。由于采用了多个Rocell同时运算,将基于指令的计算方式打破,采用更深流水线级别实现并行加速,在维持计算性能不变的情况下,平行处理器阵列可以有效降低整个系统的运行频率,进而降低功耗。

2.1 Rocell 单元

Rocell是平行处理器阵列的基本组成单元,根据功能不同,可以划分为三类:仅负责单周期运算的基础计算模块Roce,带有浮点加减运算的Rofl和乘法器RomulRoce含有32种基本的指令操作,RobuRoce的基础上增加了4条专用指令,RomulRoce的基础上增加了2条专用指令。每个Rocell根据结构划分为两个部分:输入输出控制器和计算核心Rocal

Rocell指令集的归类按照Rocell的种类不同进行划分,Roce指令涵盖32条基本指令,RoflRomul拥有特殊指令单独介绍。

1 RoceRoflRomul共有指令集

编号

指令名

符号

功能

描述

00

Nop

o

空运算

不做任何事情,该单元不启用

01

Pass

->

传递

将数据传递到下一个单元

02

And

&

与运算

实现按位与操作

03

Or

|

或运算

实现按位或操作

04

Xor

^

异或运算

实现按位异或操作

05

Cmp

<> 

0比大小

X[0]=a>0;

X[1]=a<0;

X[2]=(a!=0)

06

Lsl

<< 

逻辑左移

逻辑左移,co也参与移位

07

Lsr

>> 

逻辑右移

逻辑右移,co也参与移位

08

Inc

++

自加运算

cin1重置起始值,cin0开始自加运算

09

Absi

|i|

整型数取绝对值

对整型数据取绝对值

10

Negi

~

整型数取反

对整型数取反

11

Merge

>=

双路合并

当两路数据都有效时,a取低16位,b取高16

12

Addu

u+

无符号加法

无符号的加法运算,cinco都参与

{co,x}=a+b+cin

13

Subu

u-

无符号减法

无符号的减法运算,cinco都参与

{co,x}=a-b-cin

14

Adds

s+

有符号加法

x=a+b

15

Const

C

常数

输出常数a的值,a可以存储到Rocell

16

Sgn

sgn

获取符号位

获取符号位数据,输出为co

17

Mux

=|-

两路数据选通

数据选择器,x=cin?b:a

18

Nand

~&

Nand运算

按位Nand运算

19

Nor

~|

Nor运算

按位Nor运算

20

Xnor

~^

Xnor运算

按位xnor运算

21

Zero

z

判断为0

如果输入为0co输出1,否则为0

22

Rol

@

循环左移

co参与的循环左移运算

23

Asr

<<< 

算术右移

带符号位的算术右移

24

Dec

--

递减运算

cin1重置起始值,cin0开始自加运算

25

Absf

|f|

浮点数绝对值

对浮点数取绝对值操作

26

Negf

-f

浮点取反

对浮点数取反操作

27

Lut

lut

查找运算

co输出在a中查找位置为b5位的比特值

28

Carry

<co

进位运算

co输出加法运算的进位

29

Borrow

bo>

借位运算

co输出减法运算的借位

30

Subs

s-

有符号减法

有符号减法运算

31

Equal

==

判断相等

判断两个数是否相等

 

2 Rofl独有指令集

编号

符号

符号

功能

描述

33

F2I

f=i

浮点转整型

IEEE-754格式浮点转整型

34

I2F

i=f

整型转浮点

IEEE-754格式整型转浮点

35

Addf

f+

浮点加法

浮点数的加法运算

36

Subf

f-

浮点减法

浮点数的减法运算

 

 

 

 

 

 

 

 

 

 

3 Romul独有指令集

编号

符号

符号

功能

描述

37

Muli

i*

整型乘法

整型乘法器

38

Mulf

f*

浮点乘法

IEEE-754标准浮点乘法


 
Copyright © Robei | | 鲁ICP备14018662号 |