1、SoC称为系统级芯片。
2、AHB=Advanced High Performance Bus,译作高级高性能总线。
3、DMA,全称Direct Memory Access,即直接存储器访问。DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。DMA主机有控制AHB总线的权利,当DMA执行数据传输时,CPU会把总线的控制权交给DMA控制器。
4、状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作,完成特定操作的控制中心。
5、LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本。
6、Halide是一种编程语言,主要在图片处理和矩阵计算时具有方便快捷高性能的特点。
7、Clang是一个C语言、C++、Objective-C语言的轻量级编译器。
8、美国超威半导体公司(AMD)专门为计算机、通信和消费电子行业设计和制造各种创新的微处理器(中央处理器(CPU)、图形处理器(GPU)、加速处理器(APU)、主板芯片组、电视卡芯片等),以及提供闪存和低功率处理器解决方案。
9、流片就是像流水线一样把芯片生产出来。流片为了测试。把刚设计好的芯片,生产几片出来测试测试。
10、GOPS (Giga Operations per second) 表示每秒可进行10亿次操作。 是评价神经网络算力的一个通用指标。
11、芯片行业中所说的IP,一般称为IP核。IP 核(Intellectual Property)是具有知识产权核的集成电路芯核的总称,是芯片设计 环节中逐步分离出来的经过反复验证过的、具有特定功能的、可以重复使用的、包含特 定核心元素的(指令集、功能描述、代码等)集成电路设计宏模块(逻辑或功能单元), 可以理解为部分可重复使用的“芯片设计模块”,如 AHB、APB、以太网、SPI、I2C、MIPI、USB、 UART 内核等,其作用就是在芯片设计环节中降低冗余设计成本,降低错误发生的风险, 提高芯片设计效率。该电路模块的成熟设计凝聚着设计者的智慧,体现了设计者的知识产权,因此,芯片行业就用IP核(Intellectual Property Core)来表示这种电路模块的成熟设计。IP核也可以理解为芯片设计的中间组件。
12、NoC(Network on Chip)片上网络,目的是为片上系统SoC提供高效通信方式。SoC的通信一般基于总线BUS结构,但随着芯片内部集成IP数量和种类越来越多,此时各处理器(包括同构或异构处理器内核)和IP之间的互联成为了SoC综合性能的关键。
一般来说,核数小于等于8个的处理器被称为多核处理器,具有更多核数的处理器被称为众核处理器。高效众核处理器的SoC设计面临着三个关键挑战:
-
并行编程模式层:通常应用程序开发者希望使用隐藏硬件实现的编程模式,即软件开发不依赖底层硬件实现细节,从而降低编程难度并提高程序可移植性;而体系结构设计者希望使用感知硬件特色的编程模式,这样能够有效利用底层硬件特色提升性能。
-
片上网络互连层:传统的总线BUS和交叉开关等结构存在可扩展性差、带宽较低、延迟较大、功耗较高等缺陷。NoC将报文交换思想引入芯片内部通信机制,现已成为众核处理器事实上的片上通信标准。
-
逻辑电路实现层:功耗过大。需要底层路由器,网络上缓存和拓扑进行高效的低功耗设计和实现。
综上,NoC的设计包括了从底层路由器和拓扑结构的逻辑实现,到网络层路由和流控机制设计,再到片上网络与高层编程模型的协同优化。实际上,NoC研究的就是各种互联结构,及对应的路由、流控或调度算法,并将他们与上层编程和下层实现结合起来。