1、SOC总线是一种性能较低的总线,主要用于将处理器核心和其他较简单的外设(例如GPIO、UART、SPI等)连接起来,并组织这些外设的访问和控制。SOC总线的一个重要功能是可重定向中断,可以将来自不同外设的中断转到处理器核心上。AHB=Advanced High Performance Bus,译作高级高性能总线。AHB总线是一种性能更高、功能更强的总线,通常用于连接处理器和其他复杂外设,例如DMA、存储控制器和带宽要求更高的高速外设。AHB总线具有更高的数据传输效率和更强的控制方法,可以分时复用总线,以实现数据和指令的并行传输。SOC总线和AHB总线在芯片内部扮演不同的角色。SOC总线用于连接低速外设和简单组件,而AHB总线用于连接CPU和其他高性能组件。同时使用两种总线可以实现对不同类型设备的适配和集成。
2、CPU(Central Processing Unit)和其他设备之间的通信通常是通过系统总线来实现的。系统总线是一种用于在计算机系统内部传输数据和控制信号的通信介质。它充当了各个硬件组件之间的桥梁,使它们可以相互通信和交换信息。
系统总线由多条并行传输的信号线组成,其中包括数据线、地址线和控制线。数据线用于传输具体的数据,地址线用于指示数据在系统中的位置或目标设备的地址,而控制线则用于传输各种控制信号,如读取、写入、中断和时钟等。
系统总线通常分为内部总线和外部总线。内部总线用于连接CPU和主内存,使CPU能够读取和写入内存中的数据。外部总线则用于连接CPU和外部设备,如硬盘驱动器、显卡、网络接口等,以实现CPU与这些设备之间的数据传输与交互。
常见的系统总线包括以下几种:
-
PCI(Peripheral Component Interconnect)总线:用于连接各种外部设备,如独立显卡、网卡等。
-
SATA(Serial ATA)总线:用于连接硬盘驱动器和光驱等存储设备。
-
USB(Universal Serial Bus)总线:用于连接各种外部设备,如键盘、鼠标、打印机等。
-
Ethernet总线:用于连接网络接口卡,实现计算机之间的网络通信。
这些总线提供了不同的数据传输速率和协议,以满足不同设备之间的通信需求。通过这些总线,CPU能够与其他设备进行数据交换,并实现计算机系统的正常运行。
3、DMA,全称Direct Memory Access,即直接存储器访问。DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。DMA主机有控制AHB总线的权利,当DMA执行数据传输时,CPU会把总线的控制权交给DMA控制器。DMA技术包括控制模块和传输模块,其中控制模块用于管理和配置DMA操作,传输模块用于实际进行数据的传输。它们共同协作,实现高效的数据传输,减少CPU的干预。
4、状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作,完成特定操作的控制中心。
5、LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本。LLVM是一个框架包含了诸多组件和工具,其中最重要的是LLVM Core(编译器核心)、Clang(C/C++/Objective-C编译器前端)和LLD(链接器)。LLVM还提供了丰富的API,使开发者能够构建自己的编译器、调试器、静态分析工具等。
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研究的就是各种互联结构,及对应的路由、流控或调度算法,并将他们与上层编程和下层实现结合起来。