系统级芯片,英文简写:SoC,全称为:system-on-a-chip和system-on芯片,是集成了计算机或其他电子系统的所有或大部分组件的集成电路(也称为“芯片”)。这些组件几乎总是包括中央处理单元(CPU)、内存接口、片上输入/输出设备、输入/输出接口和辅助存储接口,通常与无线电调制解调器和图形处理单元(GPU) 等其他组件一起位于单个基板或微芯片上。它可能包含数字、模拟、混合信号和射频 信号处理功能(否则它被认为只是一个应用处理器)。 更高性能的 SoC通常与专用且物理上独立的内存和辅助存储(例如分别为LPDDR和eUFS或eMMC)芯片配对,这些芯片可以分层在 SoC之上,采用所谓的封装(PoP) 配置,或放置在靠近 SoC的位置。此外,SoC可以使用单独的无线调制解调器。 SoC与常见的基于主板的PC 架构形成鲜明对比,后者基于功能分离组件并通过中央接口电路板将它们连接起来。[nb2]主板容纳并连接可拆卸或可更换的组件,而 SoC将所有这些组件集成到单个集成电路中。SoC通常将 CPU、图形和内存接口、[nb 3]二级存储和USB 连接、[nb4] 随机访问和只读 存储器以及二级存储和/或其控制器集成在单个电路芯片上,而主板会将这些模块连接为分立元件或扩展卡。 SoC集成了一个微控制器、微处理器,或者可能是几个处理器内核与外围设备,如GPU、Wi-Fi和蜂窝网络无线电调制解调器,和/或一个或多个协处理器。类似于微控制器如何将微处理器与外围电路和存储器集成在一起,SoC可以被视为将微控制器与更先进的外围设备集成在一起。有关集成系统组件的概述,请参阅系统集成。 与具有同等功能的多芯片设计相比,更紧密集成的计算机系统设计提高了性能并降低了功耗以及半导体芯片面积。这是以降低组件的可更换性为代价的。根据定义,SoC设计完全或几乎完全集成在不同的组件模块中。出于这些原因,计算机硬件行业中的组件更紧密集成的总体趋势,部分原因是 SoC的影响以及从移动和嵌入式计算市场吸取的经验教训。SoC可以被视为嵌入式计算和更大趋势的一部分硬件加速。 SoC在移动计算(例如智能手机和平板电脑)和边缘计算市场中非常普遍。 它们也常用于WiFi 路由器和物联网等嵌入式系统。 类型 一般而言,存在三种可区分类型的 SoC: A、围绕微控制器构建的 SoC, B、围绕微处理器构建的 SoC,常见于手机; C、专为不属于上述两类的特定应用而设计的专用集成电路SoC 应用 SoC可以应用于任何计算任务。然而,它们通常用于移动计算,如平板电脑、智能手机、智能手表和上网本以及嵌入式系统以及以前使用微控制器的应用程序。 嵌入式系统 在以前只能使用微控制器的情况下,SoC在嵌入式系统市场中的地位正在上升。更紧密的系统集成提供了更好的可靠性和平均故障间隔时间,并且 SoC提供了比微控制器更先进的功能和计算能力。应用包括人工智能加速、嵌入式机器视觉、 数据收集、遥测、矢量处理和环境智能。嵌入式 SoC通常针对物联网、工业物联网和边缘计算市场。 移动计算 基于移动计算的 SoC总是捆绑处理器、存储器、片上缓存、无线网络功能以及通常的数码相机硬件和固件。随着内存大小的增加,高端 SoC通常没有内存和闪存存储,而是将内存和闪存放置在 SoC旁边或上方(封装上封装)。移动计算 SoC的一些示例包括: 三星电子:列表,通常基于ARM Exynos,主要用于三星的Galaxy系列智能手机 高通: Snapdragon(列表),用于许多LG、小米、Google Pixel、HTC和三星 Galaxy 智能手机。2018年,Snapdragon SoC被用作运行Windows10的笔记本电脑的主干,以“始终连接的 PC”的名义销售。 个人电脑 1992年,Acorn Computers生产了配备 ARM250SoC的A3010、A3020和A4000系列个人计算机。它将原始 Acorn ARM2处理器与内存控制器 (MEMC)、视频控制器 (VIDC) 和I/O 控制器 (IOC) 结合在一起。在以前的 Acorn ARM驱动的计算机中,这些是四个独立的芯片。ARM7500芯片是他们的第二代 SoC,基于 ARM700、VIDC20和IOMD 控制器,并在嵌入式设备(如机顶盒)以及后来的 Acorn个人电脑中获得了广泛的许可。 截至2018年,SoC已应用于主流个人电脑。它们特别适用于笔记本电脑和平板电脑。平板电脑和笔记本电脑制造商从嵌入式系统和智能手机市场吸取了经验教训,即通过更紧密地集成硬件和固件 模块以及集成在芯片上的LTE和其他无线网络通信(集成网络接口控制器)来降低功耗、提高性能和可靠性。 基于 ARM: 高通骁龙 ARM250 ARM7500(FE) 苹果M1 基于x86: 英特尔酷睿 CULV 结构 SoC由硬件功能单元组成,包括运行软件代码的微处理器,以及用于连接、控制、指导和接口这些功能模块之间的通信子系统。 功能组件 处理器核心 SoC必须具有至少一个处理器内核,但通常 SoC具有多个内核。处理器内核可以是微控制器、微处理器(μP)、 数字信号处理器(DSP) 或专用指令集处理器(ASIP) 内核。 ASIP 具有针对应用程序域定制的指令集,其设计比针对特定类型工作负载的通用指令更有效。根据定义,多处理器 SoC具有多个处理器内核。 无论是单核、多核还是多核,SoC处理器内核通常使用RISC指令集架构。RISC 架构优于SoC的CISC处理器,因为它们需要更少的数字逻辑,因此板载的功率和面积也更少,而在嵌入式和移动计算市场中,面积和功率通常受到高度限制。特别是 SoC处理器内核经常使用ARM 架构,因为它是一种指定为IP 内核的软处理器,并且比x86更节能。 记忆 SoC必须具有半导体存储器块来执行其计算,微控制器和其他嵌入式系统也是如此。根据应用的不同,SoC内存可能会形成内存层次结构和缓存层次结构。在移动计算市场,这很常见,但在许多低功耗嵌入式微控制器中,这不是必需的。SoC的存储器技术包括只读存储器(ROM)、随机存取存储器(RAM)、电可擦可编程 ROM ( EEPROM ) 和闪存。与其他计算机系统一样,RAM 可以细分为相对更快但更昂贵的静态 RAM (SRAM) 和更慢但更便宜的动态 RAM (DRAM)。 当 SoC具有缓存层次结构时,SRAM 通常用于实现处理器寄存器和内核的内置缓存,而 DRAM 将用于主存储器。当 SoC具有多个处理器时, “主存储器”可能特定于单个处理器(可以是多核) ,在这种情况下,它是分布式存储器,必须通过§片上模块间通信发送,以供不同的处理器访问处理器。有关多处理内存问题的进一步讨论,请参阅缓存一致性和内存延迟。 接口 SoC包括外部接口,通常用于通信协议。这些通常基于行业标准,例如USB、FireWire、以太网、USART、SPI、HDMI、I2C等。这些接口将根据预期应用而有所不同。还可以支持 无线网络协议,例如Wi-Fi、蓝牙、6LoWPAN和近场通信。 需要时,SoC包括模拟接口,包括模数和数模转换器,通常用于信号处理。这些可能能够与不同类型的传感器或执行器连接,包括智能传感器。它们可以与特定于应用程序的模块或屏蔽接口。[nb5]或者它们可能在 SoC内部,例如,如果模拟传感器内置在 SoC中,并且必须将其读数转换为数字信号以进行数学处理。 数字信号处理器 数字信号处理器(DSP) 内核通常包含在 SoC中。它们在 SoC中执行传感器、执行器、数据收集、数据分析和多媒体处理的信号处理操作。DSP 内核通常具有超长指令字(VLIW) 和单指令多数据(SIMD)指令集架构,因此非常适合通过并行处理和超标量执行来利用指令级并行性。 DSP 内核通常具有特定于应用程序的指令,因此通常是特定于应用程序的指令集处理器(ASIP)。这种特定于应用程序的指令对应于计算这些指令的专用硬件功能单元。典型的 DSP 指令包括乘法累加、快速傅里叶变换、融合乘加和卷积。 其他 与其他计算机系统一样,SoC需要时序源来生成时钟信号、控制 SoC功能的执行并在需要时为 SoC的信号处理应用程序提供时间上下文。流行的时间源是晶体振荡器和锁相环。SoC外设包括计数器定时器、实时定时器和上电复位发生器。SoC还包括稳压器和电源管理电路。 模块间通信 SoC包含许多执行单元。这些单元必须经常来回发送数据和指令。正因为如此,除了最普通的 SoC之外,所有的 SoC都需要通信子系统。最初,与其他微型计算机技术一样,使用数据总线架构,但最近基于称为片上网络(NoC)的稀疏互通网络的设计已经兴起,预计在不久的将来将超过总线架构用于 SoC设计. 基于总线的通信 从历史上看,共享的全球计算机总线通常连接不同的组件,也称为 SoC的“块”。一种非常常见的 SoC通信总线是 ARM的免版税高级微控制器总线架构 ( AMBA ) 标准。直接内存访问控制器直接在外部接口和SoC内存之间路由数据,绕过 CPU 或控制单元,从而提高 SoC的数据吞吐量。这类似于基于组件的多芯片模块PC 架构 上的一些外围设备驱动程序。 计算机总线的可扩展性有限,单个芯片上最多只能支持数十个内核(多核)。由于持续的小型化,线延迟不可扩展,系统性能不会随着连接的内核数量而扩展,SoC的工作频率必须随着连接的每个额外内核而降低,以使功率可持续,并且长线消耗大量的电力。这些挑战对于支持芯片上的众核系统来说是非常困难的。 片上网络 在2010年代后期,出现了 SoC以类似网络的拓扑结构而不是基于总线的协议来实现通信子系统的趋势。SoC上更多处理器内核的趋势已导致片上通信效率成为决定整体系统性能和成本的关键因素之一。这导致了互连网络的出现,这种互连网络具有基于路由器的分组交换,称为“片上网络”(NoC),以克服基于总线的网络的瓶颈。 片上网络的优势包括目的地和应用特定的路由、更高的功率效率和减少总线争用的可能性。片上网络架构的灵感来自于TCP等通信协议和用于片上通信的互联网协议套件 ,尽管它们通常具有较少的网络层。最佳片上网络网络架构是一个备受研究关注的持续领域。NoC 架构的范围包括传统的分布式计算网络拓扑,例如环面、超立方体、从网格和树网络到遗传算法调度到随机算法,例如带有分支的随机游走和随机生存时间(TTL)。 许多 SoC研究人员认为 NoC 架构是 SoC设计的未来,因为它们已被证明可以有效地满足 SoC设计的功率和吞吐量需求。当前的 NoC 架构是二维的。随着 SoC中内核数量的增加,2D IC 设计的布局规划选择有限,因此随着三维集成电路(3DIC)的出现,SoC设计人员正在寻求构建被称为 3DNoC的三维片上网络。 设计流程 系统级芯片由第 § 结构中描述的硬件和控制微控制器、微处理器或数字信号处理器内核、外围设备和接口的软件组成。SoC的设计流程旨在同时开发此硬件和软件,也称为架构协同设计。设计流程还必须考虑优化(§ 优化目标)和约束。 大多数 SoC是根据硬件元件和执行单元(统称为“块”)的预认证硬件组件IP 内核规范开发的,以及可以控制其操作的软件设备驱动程序。特别重要的是驱动USB等行业标准接口的协议栈。使用计算机辅助设计工具,特别是电子设计自动化工具,将硬件模块组合在一起;使用软件集成开发环境集成软件模块。 SoC组件也经常使用C++、MATLAB或SystemC等高级编程语言设计,并通过C 到 HDL或流程到 HDL等高级综合(HLS) 工具转换为RTL设计。称为“算法综合”的 HLS 产品允许设计人员使用 C++ 建模和综合系统、电路、软件和验证级别,所有这些都以计算机工程师通常知道的一种高级语言以独立于时间尺度的方式进行建模,时间尺度通常是指定的在高密度脂蛋白。其他组件可以保留为软件,并作为 HDL 中的模块作为IP 内核编译并嵌入到 SoC中包含的软核处理器中。 一旦定义了 SoC的架构,任何新的硬件元素都将用一种称为寄存器传输级别(RTL)的抽象硬件描述语言编写,该语言定义了电路行为,或者通过高级综合从高级语言合成为 RTL。这些元素以硬件描述语言连接在一起,以创建完整的 SoC设计。指定用于连接这些组件并在不同供应商提供的可能不同接口之间进行转换的逻辑称为胶合逻辑。 设计验证 芯片在发送到半导体代工厂之前经过验证的正确性验证。这个过程称为功能验证,它占芯片设计生命周期中花费的时间和精力的很大一部分,通常被引用为70%。 随着芯片复杂性的不断提高,SystemVerilog、SystemC、e和OpenVera等硬件验证语言正在被使用。在验证阶段发现的错误会报告给设计人员。 传统上,工程师在可重编程硬件上使用仿真加速、仿真或原型设计,以在设计完成之前验证和调试 SoC设计的硬件和软件,这称为流片。现场可编程门阵列(FPGA) 被青睐用于原型设计 SoC,因为FPGA 原型是可重新编程的,允许调试并且比专用集成电路(ASIC) 更灵活。 凭借高容量和快速编译时间,仿真加速和仿真是强大的技术,可提供对系统的广泛可见性。然而,这两种技术的运行速度都很慢,大约为 MHz,这可能比 SoC的运行频率慢得多——最多慢100倍。加速和仿真盒也非常大且昂贵,超过100万美元。 相比之下,FPGA 原型直接使用 FPGA,使工程师能够以或接近于系统的全工作频率以及真实世界的激励来验证和测试。诸如 Certus 之类的工具用于在 FPGA RTL 中插入探针,使信号可用于观察。这用于调试跨多个 FPGA的硬件、固件和软件交互,其功能类似于逻辑分析仪。 并行地,将硬件元素分组并通过逻辑综合过程,在此过程中应用性能限制,例如操作频率和预期信号延迟。这会生成一个称为网表的输出,将设计描述为物理电路及其互连。这些网表与连接组件的胶合逻辑相结合,以生成 SoC的示意图描述,作为可以打印到芯片上的电路。如果将 SoC生产为专用集成电路(ASIC) ,则此过程称为布局和布线,并在流片之前进行。 优化目标 SoC必须优化功耗、芯片面积、通信、模块化单元之间的位置定位和其他因素。优化必然是 SoC的设计目标。如果不需要优化,工程师会使用多芯片模块架构,而不会同等程度地考虑系统的面积使用、功耗或性能。 以下是 SoC设计的常见优化目标,并对每个目标进行了解释。一般来说,优化这些量中的任何一个都可能是一个困难的组合优化问题,并且确实可以相当容易地成为NP-hard 。因此,通常需要复杂的优化算法,并且在某些情况下使用近似算法或启发式算法可能是实用的。此外,大多数 SoC设计包含多个要同时优化的变量,因此帕累托有效在 SoC设计中寻求解决方案。通常,优化其中一些数量的目标直接不一致,进一步增加了 SoC设计优化的复杂性,并在系统设计中 引入了权衡取舍。 目标 功耗 SoC经过优化,可最大限度地减少用于执行 SoC功能的电力。大多数 SoC必须使用低功耗。SoC系统通常需要较长的电池寿命(例如智能手机),可能会在没有电源的情况下花费数月或数年的时间,同时需要保持自主功能,并且通常由于在一个区域内联网在一起的大量嵌入式SoC在功率使用方面受到限制. 此外,能源成本可能很高,节约能源将降低SoC的总拥有成本。最后,废热如果散热过多,高能耗可能会损坏其他电路元件,这为节约能源提供了另一个务实的理由。电路中使用的能量是功耗与时间的积分,平均功耗率是电流与电压的乘积。 SoC经常嵌入便携式设备中,例如智能手机、GPS 导航设备、数字手表(包括智能手表)和上网本。客户希望移动计算设备的电池寿命更长,这是 SoC必须最大限度降低功耗的另一个原因。多媒体应用程序通常在这些设备上执行,包括视频游戏、视频流、图像处理;近年来,随着用户对更高质量的需求和期望,所有这些都增加了计算复杂性多媒体。随着人们对具有多种标准的高分辨率3D 视频的期望越来越高,计算的要求也越来越高,因此执行多媒体任务的 SoC必须是具有计算能力的平台,同时具有低功耗以消耗标准移动电池。 每瓦性能 SoC经过优化以最大限度地提高每瓦性能的功率效率:在给定功耗预算的情况下最大限度地提高 SoC的性能。边缘计算、分布式处理和环境智能等许多应用都需要一定水平的计算性能,但在大多数 SoC环境中,功率有限。ARM 架构在嵌入式系统中的每瓦性能比x86更高,因此对于大多数需要嵌入式处理器的 SoC应用程序来说,它优于 x86。 余热 SoC设计经过优化,可最大限度地减少芯片上的废热 输出。与其他集成电路一样,由于高功率密度产生的热量是组件进一步小型化的瓶颈。高速集成电路的功率密度,特别是微处理器和包括 SoC,已经变得非常不平衡。随着时间的推移,过多的废热会损坏电路并削弱电路的可靠性。高温和热应力对可靠性、应力迁移、平均故障间隔时间缩短、电迁移产生负面影响、引线键合、亚稳态和SoC的其他性能随着时间的推移而下降。 特别是,大多数 SoC位于较小的物理区域或体积中,因此废热的影响更加复杂,因为它几乎没有空间扩散出系统。由于现代设备上的晶体管数量较多,因此通常可以通过制造工艺在物理上实现具有足够吞吐量和高晶体管密度的布局,但会导致电路体积中的热量过高。 这些热效应迫使 SoC和其他芯片设计人员采用保守的设计余量,制造出性能较低的设备来降低灾难性故障的风险。由于随着长度尺度变小晶体管密度增加,每一代工艺产生的热量输出都比上一代多。使这个问题更加复杂的是,SoC架构通常是异构的,会产生空间上不均匀的热通量,这无法通过均匀的被动冷却来有效缓解。 延迟 SoC经过优化,可最大限度地减少其部分或全部功能的延迟。这可以通过布置相互之间具有适当接近性和局部性的元素来实现,以最大限度地减少互连延迟并最大限度地提高模块、功能单元和存储器之间的数据通信速度。一般来说,优化以最小化延迟是一个NP 完全问题,相当于布尔可满足性问题。 对于在处理器内核上运行的任务,可以通过任务调度来改善延迟和吞吐量。然而,一些任务在特定于应用程序的硬件单元中运行,甚至任务调度也可能不足以优化所有基于软件的任务以满足时序和吞吐量限制。 制造 SoC芯片通常使用金属氧化物半导体(MOS) 技术制造。上述网表用作物理设计(布局和布线)流程的基础,以将设计人员的意图转化为 SoC的设计。在整个转换过程中,使用静态时序建模、仿真和其他工具对设计进行分析,以确保其满足指定的操作参数,例如频率、功耗和耗散、功能完整性(如寄存器传输级代码中所述)和电气正直。 当所有已知的错误都得到纠正并重新验证并完成所有物理设计检查后,描述芯片每一层的物理设计文件被发送到代工厂的掩模车间,在那里蚀刻全套玻璃光刻掩模. 这些被送到晶圆制造厂,在封装和测试之前创建 SoC裸片。 SoC可以通过多种技术制造,包括: 1、完全定制的 ASIC 2、标准单元ASIC 3、现场可编程门阵列(FPGA) ASIC 比 FPGA 消耗更少的功率并且速度更快,但不能重新编程并且制造成本很高。FPGA 设计更适合小批量设计,但在生产足够多的 ASIC 单元后,总拥有成本会降低。与它们所取代的多芯片系统相比,SoC设计消耗的功率更少,成本更低,可靠性更高。由于系统中的封装更少,组装成本也随之降低。 然而,与大多数超大规模集成(VLSI) 设计一样,一个大芯片的总成本比分布在几个较小芯片上的相同功能要高,因为产量较低和更高的非- 经常性工程成本。 当为特定应用构建 SoC不可行时,另一种选择是在单个封装中包含多个芯片的系统级封装(SiP) 。在大批量生产时,SoC比 SiP 更具成本效益,因为它的封装更简单。可能首选 SiP的另一个原因是,对于给定目的,SoC中的废热可能太高,因为功能组件靠得太近,而在 SiP 中,由于它们在物理上相距较远,不同功能模块的热量会更好地消散。 |