Skip to content

第 8 章 系统架构与集成

System Architecture and Integration

完成了对模拟电子学领域射频与无线技术的介绍之后,我们将把视角重新转回数字领域,深入探讨半导体生态系统中承担运算重任的核心部件——微处理器(microprocessor)。微处理器是计算系统的「大脑」,它包含执行指令、处理数据以及运行复杂软件程序所必需的算术、逻辑与控制电路。如今最先进的个人计算微处理器已集成超过 1000 亿个晶体管(transistor),系统复杂度和设计挑战前所未有(Apple Newsroom, 2022)。为应对这些挑战,设计领导者必须同时关注微架构与宏架构两个层面的决策,在灵活性与性能之间,以及更紧密的系统集成(system integration)所带来的成本与复杂性之间,审慎权衡。本章将分析这些领导者在打造下一代电子设备时所面临的架构抉择与取舍。

宏架构与微架构

「架构」一词在半导体工程中可以指代两种截然不同的概念——系统架构(System Architecture)或微架构(Microarchitecture)。

系统级(system level),即宏观层面的硅架构,用于定义整个芯片家族,在技术上由不同类型的指令集架构(Instruction Set Architecture,ISA)来描述。ISA 规定了指令从程序员传递到计算机的方式(Thornton, 2018)。由于软件充当程序员与其所运行的物理硬件之间的桥梁,构建该硬件所采用的架构类型,会对处理器能够运行的程序类型以及整体系统性能产生可量化的影响。

而微架构描述的是 ISA 在硬件设计层面的具体实现方式。一块片上系统(SoC)中的 CPU、GPU 和 PMU,可能都遵循同一个 ISA 进行设计,却各自拥有独特的微架构。

从历史上看,宏架构主要有两大类型。

常见芯片架构:冯·诺依曼架构与哈佛架构

冯·诺依曼架构(Von Neumann Architecture)是由物理学家兼数学家 John Von Neumann 在 20 世纪 40 年代提出的一种宏架构,也是当今绝大多数现代计算机的基础。冯·诺依曼框架依赖三个组成部分——CPU、输入/输出接口以及存储器(memory)。CPU 内部包含:(1)寄存器(register),负责接收来自存储器的数据和指令,并将结果回传;(2)控制单元(control unit),负责决定应执行哪些指令;(3)算术逻辑单元(arithmetic and logic unit),负责实际执行指令、处理信息(BBC, n.d.)。

哈佛架构(Harvard Architecture)具有与冯·诺依曼架构基本相同的系统组件——CPU、存储器和 I/O 接口。两者的主要区别在于访问(输入)和分发(输出)信息的方式。在冯·诺依曼设备中,CPU 通过同一组 I/O 接口既接收来自存储器的指令和数据,也输出结果(armDeveloper, n.d.)。而哈佛架构设备则将指令和数据分别存放在两个独立的存储体中,每种输入类型使用独立的总线(Khillar, 2018)。通过将数据与指令彼此分离,哈佛架构设备理论上可以同时访问存储器和指令集,从而减少执行一条指令所需的时钟周期(clock cycle)。难点在于需要精确地对指令和数据进行时序协调,即流水线(pipelining)操作,以使它们同时抵达 CPU(Khillar, 2018)。由于冯·诺依曼框架只有一条总线,设计复杂度较低,因而成本也更低(Khillar, 2018)。两种架构的差异可参见图 8-1,以及表 8-1 的对比总结。

哈佛架构与冯·诺依曼架构对比

图 8-1 哈佛架构与冯·诺依曼架构对比

图中英文标注:Harvard Architecture(上方)=哈佛架构;Von Neumann Architecture(下方)=冯·诺依曼架构;Data Memory (RAM - Volatile)=数据存储器(RAM,易失性);Core Program Memory (ROM - Nonvolatile)=核心程序存储器(ROM,非易失性);CPU=中央处理器;Address Bus=地址总线;Data Bus=数据总线;ROM + RAM=只读存储器+随机存取存储器;Central Processing Unit (CPU)=中央处理器;Single Memory Space=单一存储空间。

冯·诺依曼设备占据了大多数复杂设备的主流地位,而哈佛架构则在微控制器和数字信号处理器(DSP)等有限场景中有所应用。需要说明的是,冯·诺依曼架构与哈佛架构更多是理论层面的宏架构分类,而非实践中供选择的具体宏架构方案。绝大多数集成电路(IC)采用冯·诺依曼「类型」的宏架构——系统设计师必须权衡各自的优劣,来决定哪种冯·诺依曼宏架构最适合其所设计的设备。

指令集架构(ISA)与微架构

指令集架构(Instruction Set Architecture,ISA)决定了给定处理器所能支持的指令集合。而微架构则决定了处理器在实现层面如何接收和执行这些指令。换一种理解方式:ISA 提供较高层次的设计要求,定义系统必须能够执行的指令类型;而微架构则提供具体的低层次设计指南,规定如何构建一个支持这些指令的系统(Maity, 2022)。需要强调的是,这里所说的「指令(instruction)」是程序员编写的、供计算机遵循执行的代码行,并非你从 Ikea 买来书架附带的那种说明书。这些指令的目标,是让计算机执行某个特定的任务或函数(function),并完成所指定的操作。

借助第 7 章宏系统栈的一个更详细版本,我们可以更清晰地理解这些差异——我们称之为通用架构栈(universal architecture stack)(见图 8-2)。在通用架构栈中,我们从底部的晶体管出发,随着抽象层次的不断提升向上推进,直至顶部包含用户界面的应用层——那正是你我可能交互的地方。这种抽象在栈的每一层都清晰可见。在栈的第二层,底层的晶体管被组合成逻辑门(logic gate)构建模块,用于实现关键计算功能,以及作为 CPU 与外围电路接口的寄存器。再往上,微架构决定这些逻辑门构建模块如何组合,形成构成系统的功能模块。各设计团队的微架构所塑造的功能模块,必须遵守第 4 层宏观指令集架构——后者规定了系统必须能够执行的指令类型。在底部四个硬件层之上,包含操作系统的平台层通过固件(firmware)与硬件相连。最后,包含核心后端软件编程逻辑的中间件层,以及包含用户界面的应用层,均运行在其下方的操作系统之上。

每一层都依赖其下方所有层的集合,同时必须被设计为能够支撑其上方的层。无论你是在用笔记本保存一篇学校作文的学生,还是在对硬件与操作系统之间的接口进行编程的固件工程师,你的输入最终都必须由构成集成电路的晶体管和功能组件来执行。使这一切成为可能的翻译过程极为复杂,需要跨越众多领域和学科的工程技能。抽象层之所以对构建高性能系统至关重要,正是因为它弥合了这一鸿沟。

通用架构栈

图 8-2 通用架构栈

图中英文标注(从下至上):Transistors=晶体管;Registers & Logic Gates=寄存器与逻辑门;Microarchitecture=微架构;Instruction Set Architecture (ISA) Level=指令集架构(ISA)层;Firmware=固件;Platform Layer (Operating System with Kernel and Device Drivers)=平台层(含内核与设备驱动的操作系统);Middleware Layer (Application & Security Frameworks)=中间件层(应用与安全框架);Application Layer (User Interface & Communication Protocols)=应用层(用户界面与通信协议);Hardware=硬件;Software=软件;Increasing Level of Abstraction=抽象层次递增。

除系统内部面临的挑战之外,这些抽象层如此重要的另一个原因,在于它们使硬件设计师能够在系统之间保持兼容性,从而让软件程序能够运行在共享同一套基本指令集的不同设备上。如果没有基本指令的标准化,软件开发者将无法构建能够运行在支持各自独立指令集(ISA)的不同公司所设计设备上的应用程序。试想一下,如果每家软件公司都必须为其客户可能使用的每种笔记本电脑,分别创建十几个单独版本的软件,那将是多么令人头疼!

为进一步说明这一差异,我们可以思考不同公司开发的各具特色的 ISA。由 ARM Holdings 开发、广受欢迎的授权 ISA——ARM 架构(ARM Architecture),可同时被多家公司采用,用于设计同类设备,但各自拥有完全不同的微架构。例如,Samsung 和 Qualcomm 可能都采用 ARM 架构来为下一代智能手机设备构建定制处理器,但双方对各自授权的 ARM ISA 有着独立的实现方式(即微架构),各自具备独特的功能与性能水准等。

除了决定处理器支持的指令类型之外,ISA 还决定了系统可处理的每条指令的格式和最大长度(Maity, 2022)。这些差异构成了两大主要 ISA 类型——CISC 与 RISC——之间区别的基础。

指令流水线与处理器性能

在深入了解 CISC 与 RISC 的差异之前,有必要先回顾一下决定处理器性能的关键因素。这些差异在多种场景下都很有价值,尤其有助于理解 CISC 与 RISC 之间的取舍。从架构角度来看,提升给定处理器速度的方法主要有三种:(1)提高时钟频率(clock frequency);(2)同步任务执行;(3)流水线操作(Engheim, 2021)。以下各段将逐一加以阐述。

为提升处理器性能,我们首先寻求提高时钟频率的方法。如前几章所述,时钟频率是每秒的时钟周期数,是衡量处理器性能的常用指标。时钟周期衡量的是处理器振荡器(oscillator,即释放电信号的器件)两次脉冲之间的时间间隔(Intel, n.d.)。我们可以通过加快信号速度,或缩短信号完成电路所需传输的距离,来提高时钟频率、提升处理器速度。但这具体如何实现呢?为便于理解,我们不妨把电路(circuit)想象成学校食堂里制作学生午餐的流水线(见图 8-3)。为简化起见,假设今天是周二的塔可日,一开始只有一名厨师,在一条四步流水线上每次只处理一份塔可餐盘。

烹饪与时钟周期

图 8-3 烹饪与时钟周期

图中英文标注(从上至下的四种场景):Boost Clock Frequency=提高时钟频率;25% Shorter Distance=缩短 25% 距离;Synchronous Task Execution=同步任务执行;Pipelining=流水线操作。

如果一个时钟周期是信号穿越整个处理器、完成一次操作所需的时间,那么「烹饪周期」就是一份餐盘从头走完整条食品生产线、成为一份完整学生套餐所需的时间。要提高我们学校食堂的出餐速度,第一件能做的事就是缩短「烹饪周期」的时长。就像缩短时钟周期能降低时钟频率、提高处理速度一样,如果我们能让学校厨师动作更快,「烹饪频率」就会降低,「出餐处理」速度就会提升。遗憾的是,电子和学校厨师的移动速度都有上限,单靠提高处理速度来提升性能的方式因此十分有限。另一种思路是缩小处理器尺寸,或缩短流水线的长度,这样可以缩短信号或餐盘的传输距离,进而缩短时钟或烹饪周期,提高处理速度。但这个距离也只能压缩到一定程度——毕竟,厨师需要有地方放食材,处理器的缩小也有物理极限。在缩短时钟周期与缩短关键路径(critical path)距离之间,我们已经实现了可观的性能提升,但仍有改进空间。

下一件能做的事,是引入同步任务执行(synchronous task performance)。为此,我们需要在处理器中增加一个或多个处理核心(core),有时也称为协处理器(co-processor)。每个核心现在可以同步处理各自独立的任务,减少完成给定任务所需的总时间,提升整体性能。GPU 特别擅长这类并行处理,在机器学习和视觉处理等需要大量可重复计算的应用中表现出色。

在我们的烹饪类比中,同步任务执行就相当于再雇一名厨师。就像一个伪独立的处理器核心与其他核心并行执行函数一样,新厨师可以在一条独立但相同的餐线上工作。两名厨师合力应该能在更短时间内完成更多套餐。理论上,如果我们想提高学校午餐的产量,只需不断增加新的烹饪线,直到厨房被占满为止。然而,学生付款和取餐的窗口只有一个——到某个时刻,制作塔可餐盘的速度将超过学生取走的速度,餐盘就会开始积压。更多烹饪线意味着更高成本,这对资金有限的学校未必可行。这类似于微处理器面临的成本与吞吐量瓶颈——处理器只有有限的「电子取餐口」(寄存器)来接收输入和交付输出(到缓存存储器)。要是能有一种不依赖更多核心、同时又能应对吞吐量瓶颈的方法来提升处理速度就好了!幸运的是,确实存在这样一种方法——我们的第三个、也是最后一个提升处理器性能的选项:流水线。

流水线(Pipelining)是一种通过将冗长的工作流拆分为更小的并行子任务来加快任务处理速度的方法。与依赖沿独立路径并行执行任务的同步处理(多核处理器)不同,流水线将一个过程分解为沿给定路径并行执行的更小组成部分。流水线方法绝非微电子学独有,它广泛应用于各类领域(比如烹饪!)。

回到食堂——如果不让我们的厨师每次做一份完整的套餐,而是安排四名厨师并排站立,每人负责把套餐推进四分之一,然后传给身旁的下一名厨师,会怎样?今天是塔可周二,第一名厨师在第一个烹饪周期里把玉米饼加热好摆在餐盘上;第二个烹饪周期里,第二名厨师往玉米饼上铺鸡肉,而第一名厨师同时处理新一批玉米饼;第三个烹饪周期里,第三名厨师加入生菜,前两名厨师重复各自的步骤;到了第四个烹饪周期结束时,第四名厨师完成套餐、加入莎莎酱,准备好迎接下一个周期里的下一份餐盘。我们也许无法加快单个周期从头到尾的频率,但可以提高单位时间内的交付量。

回到我们的处理器:我们可以把较长的「复杂」指令拆分成四条等长的「精简」指令,每条大约只需四分之一的时间(25% 的时钟周期)来完成。在第一个时钟周期结束时,第一条指令完成了四分之一。第二个时钟周期结束时,第一条指令完成了一半,而第二条指令完成了四分之一。到第四个时钟周期,第一条指令完成的总时间与更长的「复杂」指令大致相同。然而,当流水线中充满了源源不断的指令时,不再是每完成一个完整的「复杂」时钟周期才产出一条指令,而是每过四分之一个周期就有一条流水线化的「精简」指令完成。这正是 RISC 相对于 CISC 的一个关键优势——精简指令远更适合流水线处理,从而在性能上胜过 CISC 对手。

无论是塔可还是电子,流水线都能显著提升我们的处理吞吐量(processing throughput),使我们每个周期能够完成更多套餐或指令(Engheim, 2021)。这可能带来相当大的优势,使某种 ISA 在特定应用场景下胜过另一种。

CISC 与 RISC

两种主要的 ISA 类型分别是 CISC(复杂指令集计算,Complex Instruction Set Computing)和 RISC(精简指令集计算,Reduced Instruction Set Computing)(Thornton, 2018)。采用 CISC 架构的常见处理器包括 Motorola 68k、PDP-11 以及多代 Intel x86,而采用 RISC ISA 的知名处理器则包括 ARM、RISC-V、MIPS、PowerPC 和 Atmel 的 AVR(McGregor, 2018)。RISC 与 CISC 之间存在诸多差异,其中最显著的是它们处理指令的方式。

每个处理器都有一个时钟周期,限制了其在给定时间内能够处理的指令数量。概念上,你可以把时钟周期想象成节拍器或心跳——每一次跳动都是处理器执行给定任务的一个时间窗口。要理解这一机制,需要记住计算机执行一条指令时究竟发生了什么——它将软件「输入」转换为物理信号(电子模式),让这些信号穿越电路,在那里被操控和处理,之后再转换回某种有用的软件「输出」。一个时钟周期就是一个「指令信号」脉冲穿越处理器电路的过程。处理器每秒能运行的时钟周期数(时钟速度)决定了它处理指令的速度。时钟周期频率(时钟频率)越高,处理器越快。CPU 每秒可以运行数百万个时钟周期,处理速度达到数百万乃至数十亿赫兹(hertz,即每秒周期数)(Intel, n.d.)。

CISC 与 RISC 处理器的关键区别在于:RISC 处理器将指令拆分成可以每次执行一条的更小片段,而 CISC 处理器运行的指令需要超过一个时钟周期才能完成——这也正是各自名称「精简指令集计算」与「复杂指令集计算」的由来(Engheim, 2020)。乍看之下,我们的直觉可能会认为 CISC 处理器更好,因为它们每个时钟周期可以运行更多指令单元。然而,对于前一节列出的许多处理器性能因素而言,RISC 在众多应用中往往被视为更有效的选择。与使用冗长的多时钟周期指令集的 CISC 处理器不同,RISC 处理器将指令拆分为更小的、标准化的指令集,更适合指令流水线处理,也更容易被编译器(compiler)消化。流水线是一种复杂的调度操作,必须确保执行给定任务或操作所需的数据和指令在恰当时机同时到达 CPU。RISC 处理器致力于将指令与时钟周期的比率维持在 1:1,从而确保稳定且可预测的时钟周期,显著提升处理速度(Engheim, 2020)。

这些差异的根源在于半导体的历史。CISC 出现于 1970 年,其后约十年,第一批 RISC 原型机才相继问世(IBM, n.d.)。在行业发展如此早期的阶段,编译器(compiler)并不可靠,程序员往往直接用汇编语言(assembly language)编写程序。编译器负责将 Java、C# 等高级编程语言翻译为计算机能够理解的机器语言,而汇编语言则更贴近硬件,相比编译语言有诸多劣势,包括复杂度更高、使用难度大以及可移植性差(Pedamkar, n.d.)。随着编译器的不断改进,RISC 架构逐渐在行业内得到更广泛的采用。

由于处理的是简化指令,RISC 处理器倾向于消耗更少的功率(power),使其成为功率(power)尤为有限的应用场景(如手机或其他电池供电设备)的理想选择。

这一优势在服务器或个人笔记本电脑等高性能应用中有所减弱,这类应用往往更多地使用 CISC 处理器。

尽管在许多方面更为高效,RISC 处理器确实需要更多 RAM(随机存取存储器,RAM,用于访问额外代码)以及更高的编程效率(更短的指令意味着更多的代码行)(Bisht, 2022)。在过去几十年 RISC 架构刚刚兴起时,存储芯片价格昂贵,这曾是一大显著劣势;但随着存储器变得越来越小、越来越便宜,这一劣势已大为减弱(Teach Computer Science, 2021)。CISC 与 RISC 之间的差异总结于表 8-2。

特性CISCRISC
时钟周期每条指令需要多个时钟周期每条指令仅需一个时钟周期
指令长度可变长度标准长度
指令数量指令数量少指令数量多
流水线处理流水线劣势流水线优势
内存占用RAM 占用少RAM 占用多
设计导向硬件中心设计(较少依赖编译器)软件中心设计(更多依赖编译器)

表 8-2 CISC 与 RISC 对比

选择 ISA

选择 ISA 是一项艰难而影响深远的决定。许多 ISA 可供授权使用,例如 MIPS 和 ARM Holdings 提供的 ISA,但也有一些是专有的或开源的,例如 RISC-V。通常,授权 ISA 会附带一个预先设计好的处理器核心,而开源 ISA 则不提供(McGregor, 2018)。授权费用和专利使用费是决定是否授权、自研还是借用的关键因素。

往往比直接成本更重要的,是每种 ISA 所伴随的风险。根据为特定设计所选择的 ISA,各有其优劣势。首先,工程领导层必须考虑内部自研核心处理器在时间和成本上的投入。大多数 ISA 授权公司所授权的处理器,都是任何定制化终端产品的核心基础。即便一款独特的核心处理器设计能在可行的时间框架内完成,也始终存在可能导致新处理器和架构失败的制造风险。

或许更为关键的是下游软件层面的影响。ARM 和 x86 等 ISA 拥有成熟的软件「生态系统」,配套完善的软件开发栈。采用专有架构构建新处理器,需要从头开发固件、操作系统以及开发工具(Hill et al., 2016)。即便硬件与软件的执行无缝衔接,上市时间也很可能成为问题。当你的公司在开发核心处理器和专有架构上耗费时间时,竞争对手已经在发布新产品了。

值得自问的一个问题是:客户购买的是处理器本身,还是处理器所实现的功能?如果客户购买的是你的新算法或集成处理器与传感器系统,那么授权使用现有 ISA 或许最具吸引力。但如果处理器本身构成你业务的核心,或能提供市场上独一无二的价值,那么定制设计可能才是正确答案。图 8-4 展示了一张比较不同 ISA 选择相对风险的表格。

ISA 取舍——专有 vs. 授权 vs. 开源

图 8-4 ISA 取舍——专有 vs. 授权 vs. 开源

图中英文标注:左列维度(从上至下)=Hardware Design Costs 硬件设计成本、Software Engineering Costs 软件工程成本、Existing Software Ecosystem 现有软件生态、Time-to-Market 上市时间、Manufacturing Risk 制造风险、Design Flexibility 设计灵活性、Royalties and Licensing Fees 专利与授权费;列标题:Proprietary ISA 专有 ISA、Licensed ISA 授权 ISA、Open Source ISA 开源 ISA;评级值:High 高、Low 低、Mid 中、Short 短、Long 长、None 无。

异构集成与单片集成——从 PCB 到 SoC

从历史上看,制造和光刻(photolithography)技术进步所带来的晶体管(transistor)尺寸不断缩小,使半导体设计公司能够持续提升设备性能,而无需过多关注设备架构和集成问题(Gupta & Franzon, 2020)。当时有足够的「容错空间」——即便一个设计包含数以百万计的冗余晶体管,仍可以以更低或持平的成本,用更少的功率和空间实现更高的性能。即便某家公司有动力提升芯片效率,打造完全集成化设备所需的额外设计投入成本不菲,而摩尔定律(Moore's law)的快速推进又使上市时间成为关键约束。在很多情况下,等到一款完全集成的设备面世,下一代制造技术已经远远超过了设计团队所能提供的额外效率提升。

这种通过不断缩小晶体管尺寸来提升性能的趋势,通常被称为几何缩放(geometric scaling),在近约十年前仍一路畅行,直到行业遭遇三大主要问题(Gupta & Franzon, 2020)。

第一,随着晶体管越来越小、逻辑器件密度越来越高,功耗管理(power management)问题成为先进系统的首要设计约束,取代频率(frequency)成为主导因素(Gupta & Franzon, 2020)。现代 CPU 和其他先进器件往往无法充分发挥其「全部火力」,因为以如此高速运行所产生的热量,将会从字面意义上烧毁相关电路。

第二,极紫外光刻(EUV)等光刻技术(Lithographic Technologies)依赖于不断缩短的光波长,才能蚀刻出越来越微小的裸片(die)特征(IRDS, 2020)。尽管这些技术或许使几何缩放延续至今,但研究人员在寻找能够有效蚀刻更小特征的光波长方面已遭遇困难(Brown et al., 2004)。

第三,晶体管所用材料的厚度如今仅为几个原子厚,几乎没有进一步缩小的空间(Gallego, 2016)。直白地说,在某个阈值以下,将没有足够的原子来构成可用的特征图案。

除上述三大物理限制之外,每个后继技术节点所需的工艺技术也愈加昂贵,这推高了新建晶圆厂(fab)的成本,进而抬升了制造单位成本。部分现代晶圆厂的造价高达 200 亿美元,在最先进工艺节点上制造芯片的代价极为高昂,这也促使设计师们想方设法从更旧的节点上榨取更多性能(Lewis, 2019)。

综上所述,随着摩尔定律近年来逐渐放缓,行业的重心已从几何缩放转向功能扩展(functional scaling)——通过针对特定应用优化设计、以及将系统架构转向包含更多异构集成(heterogeneous integration)和单片集成(monolithic integration)来提升性能(Gupta & Franzon, 2020)。

在异构集成中,多个芯片被集成在同一块电路板(PCB)上,或被封装在同一封装体内,后者称为系统级封装(system-in-package,SiP)(Lau, 2017)。对于板级异构集成,不同芯片和组件被焊接到板上并相互连线。对于 SiP,不同芯片和功能模块被封入同一封装(package)中,通过互连(interconnect)或穿硅通孔(through silicon via,TSV)相互连接——TSV 利用 2.5D/3D 裸片堆叠技术连接层叠在彼此之上的芯片。通过将各功能组件保持独立,系统架构师和设计师能够更好地实现「即插即用」,同时享有更紧密集成系统所带来的性能优势。

在单片或同构集成(monolithic or homogenous integration)中,众多功能模块被集成在单一集成电路上,形成一个功能完整的系统,称为片上系统(System-on-Chip,SoC)(IRDS, 2020)。系统集成度越高,信号到达芯片其他部分所需传输的距离就越短。然而,SoC 等完全集成系统设计复杂,也有诸多必须考量的缺点。

在 PPAC 四个维度——性能(performance)、功耗(power)、面积(area)和成本(cost)——上,异构集成(SiP)与同构集成(SoC)各有显著取舍。更小的封装尺寸(设备面积)使 SoC 在面积和功耗效率上具有明显优势,使其成为手机等小型电池供电设备的热门选择。然而,SoC 在性能上可能存在不足,具体取决于应用场景。芯片的每个功能部分可能需要不同的材料和工艺技术才能达到峰值性能,而这在单块晶圆(wafer)上很难甚至无法实现(IRDS, 2020)。将所有组件集成在单块晶圆上(如 SoC),某些部分可能表现良好,而其他部分则因所用材料和工艺未针对各自需求进行优化而性能欠佳(IRDS, 2020)。

成本差异也在选择单片集成还是异构集成的决策中扮演着重要角色。一方面,更高的集成度需要更多的设计工作,因而设计成本更高、制造复杂度更大(Gupta & Franzon, 2020)。然而,这并不一定在所有情况下都会导致异构设备的单位成本降低。单片设备所需面积在总量上更小,这使得单块晶圆上能够印制更多芯片,可以降低净制造成本(Gupta & Franzon, 2020)。与此同时,异构集成还催生了一种「制造套利」——系统的不同部分可以采用不同的工艺节点制造。例如在一个 SiP 中,内存或核心逻辑等先进模块可以采用最先进的 3 纳米(nm)工艺节点制造,而模拟或射频组件等不那么先进的部分,则可以采用 130 纳米工艺节点制造(IRDS, 2020)。通过只在部分组件上采用更先进的工艺节点,企业可以在使用更旧、更廉价技术的系统部分上节省大量成本。他们还可以仅更换内存和逻辑器件来构建下一代系统以实现更多功能,同时保持功耗管理或射频组件不变。工程管理层在决定采用哪种架构时,必须认真权衡额外的设计成本与制造成本的差异。

这些取舍在图 8-5 中一目了然。单片集成的 SoC 比板级异构集成系统消耗更少的功率、占用更小的空间。然而,板上系统(System-on-Board,SoB)具有更大的设计灵活性、更低的设计成本,并且能够更快地完成设计。系统级封装(SiP)则介于两者之间,在保留较高设计灵活性的同时,凭借更高的集成度获得更好的性能、功耗和面积优势。

异构集成与单片集成

图 8-5 异构集成与单片集成

图中英文标注:System-on-Chip (SoC)=片上系统;System-in-Package (SiP)=系统级封装;System-on-Board (SoB)=板上系统;左侧箭头(从上至下)=Lower Power 更低功耗、Smaller Area 更小面积;右侧箭头(从上至下)=Greater Design Flexibility 更高设计灵活性、Quicker Time to Market 更快上市速度、Lower Design Cost 更低设计成本;SoC 内部标注:CPU (logic) CPU(逻辑)、ROM、DRAM、USB、cache 高速缓存、RF & Analog 射频与模拟。

除核心 PPAC 因素之外,系统架构师和设计团队还必须牢记上市时间——作为经验法则,系统集成度越高,所需的设计时间越长。如果竞争对手正以新产品发布向你的团队施压,或许最好避免从零开始设计全新的 SoC。

第八章小结

本章首先厘清了宏架构与微架构之间的区别——系统级指令集架构(ISA)描述数据和指令如何传递到核心处理器以及如何从处理器接收,而微架构描述 ISA 在给定电路中的具体实现方式。随后,我们对比了冯·诺依曼架构与哈佛架构。哈佛架构理论上可以通过允许 CPU 同时从两个独立存储体获取数据和指令来加速处理,但在实践中,总线复杂度的提升等因素限制了其性能。冯·诺依曼架构将 CPU 与单一存储体之间的数据和指令交换限制在一条总线上,降低了设计复杂度和成本,自 1945 年诞生以来一直是实践中最常用的架构。

本章后半部分深入辨析了 CISC 与 RISC 的差异。CISC 最早出现于 1970 年代中期,比 RISC 的广泛应用早了将近十五年(RISC 发明于 1980 年,但直到 1990 年代初才被广泛使用)。两者各有优劣,但 RISC 凭借其流水线优势被普遍视为一种进步。在宏观架构分类之后,我们探讨了各种 ISA,以及如何在它们之间做出选择。最后,我们提出了当今硅设计团队面临的一个关键抉择——异构集成还是单片集成?两种方案各有优劣。单片集成电路(如 SoC)功耗更低、占用面积更小,但初始设计可能耗时数月乃至数年,成本高得令人望而却步。而异构集成则使我们能够获取部分 PPAC 优势,同时保留设计灵活性和更快的上市速度。

你的个人 SAT(半导体自测)

为确保你的知识能在全书中层层累积,以下是与上一章相关的五道问题。

  1. 宏架构与微架构之间的关键区别是什么?ISA 处于其中哪个位置?

  2. 哈佛架构在理论上相对于冯·诺依曼架构有哪些优势?为什么这些优势在现实中难以实现?

  3. 列出 CISC 与 RISC 之间四个主要差异。4. 在设计与市场约束最多的情况下,哪种 ISA 策略最具优势?它的不足之处是什么?

  4. 为什么单片集成与异构集成在成本优势上并非一目了然?这些因素与性能之间有何关联?

本站内容仅供学习交流,版权归原作者所有。