计算机系统基础
理解本课程在计算机学科中的定位;认识半导体产业从1957年至2021年的指数级演进;建立"不同计算平台对芯片数量与架构需求差异巨大"的直觉。
数字系统结构(Digital System Structure)、计算机体系结构(Computer Architecture)。建议提前了解摩尔定律的基本表述。
摩尔定律、晶体管密度指数增长、平台差异化(手机/汽车/服务器)、杀手级应用的不确定性。
本课程由西安交通大学人工智能与机器人研究所任鹏举教授主讲,参考教材为《深入理解计算机系统》(CS:APP,第三版)。课程的核心目标是建立一种"系统观"——不是孤立地看待软件或硬件,而是理解二者如何在多层抽象之下协同工作,以弥合高级应用与底层物理之间的巨大鸿沟。
在正式进入分层模型之前,课件首先用一张极具冲击力的对比图打开视野:1957年与2021年的半导体产业。
1957年,人类刚刚制造出可供实用的晶体管;而到了2021年,一颗5nm工艺、面积约1平方毫米的芯片上已经可以集成约10^9(十亿)个晶体管。这种跨越六十余年的指数级增长,正是摩尔定律(Moore's Law)最直观的体现。1965年,英特尔联合创始人戈登·摩尔提出:集成电路上可容纳的晶体管数量约每两年增加一倍。这一定律在此后半个多世纪里成为了半导体产业的"圣经",指导着制程节点从微米级不断缩进到如今的3nm乃至2nm。
然而,晶体管数量的爆炸并不意味着"一种架构打天下"。课件随即指出:现代计算不仅是数据处理能力的比拼,更是能力增强(enhancing capabilities)与场景适配的较量。
以智能手机和汽车为例,芯片数量的差异令人印象深刻:
一部Redmi Note 10 Pro手机中集成了114颗芯片;而一辆传统汽车需要500至600颗芯片,新能源车的芯片数量更是超过1000颗。这种差异背后的驱动力是平台目标的根本不同:手机追求极致的功耗效率、轻薄体积与单用户体验;汽车则对安全性、实时性和异构传感器融合提出了极高要求。
与此同时,应用趋势也在持续分化。课件抛出疑问:未来什么才是杀手级应用?是机器人、医疗健康,还是元宇宙?设备的部署数量持续增长,但需求的多元化决定了不可能存在唯一的"终极架构"。这种不确定性,恰恰是系统设计者面临的根本挑战,也是本课程试图回应的问题。
半导体产业在过去六十余年实现了晶体管数量的指数级增长,但不同计算平台(手机、汽车、服务器等)对芯片数量、功耗、安全性和实时性的需求截然不同。需求的多元化决定了计算机架构必须走向多样化,而非单一通用架构的垄断。
掌握从应用到物理的完整分层模型;理解每一层抽象所屏蔽的复杂性;认识"Gap too large to bridge in one step"的系统设计哲学。
对操作系统、编程语言、数字电路有基本概念即可。
系统分层、抽象/实现(Abstraction/Implementation)、软硬件界面(ISA)、多层次桥接。
计算机系统最深刻的本质之一,是它通过层层抽象将人类可理解的高级意图转化为物理世界中电子的流动。课件用一张经典的金字塔图展示了这一分层模型:
从顶层到底层,完整的层次结构如下:
Application(应用)
↓
Algorithm(算法)
↓
Programming Language(编程语言)
↓
Operating System / Virtual Machines(操作系统/虚拟机)
↓
Instruction Set Architecture(指令集架构,ISA)
↓
Microarchitecture(微架构)
↓
Register-Transfer Level(寄存器传输级,RTL)
↓
Gates(逻辑门)
↓
Circuits(电路)
↓
Devices(器件)
↓
Physics(物理)
任鹏举教授在课件中特别强调:应用与物理之间的鸿沟太大,无法一步到位地桥接。系统设计的本质,就是通过多层抽象与实现,在信息处理应用与可用制造技术之间建立高效的连接。每一层都向上层提供一组接口与语义承诺,同时屏蔽下层实现的复杂性。
这种分层思想与CSAPP(《深入理解计算机系统》)中的"系统观"一脉相承。CSAPP指出,操作系统通过进程、虚拟内存和文件三个核心抽象,为应用程序提供了看似独占整台计算机的幻觉;而虚拟机则是对整个计算机(包括操作系统、硬件)的更高层次抽象。本课程的分层模型则进一步向下延伸,将视线穿透ISA、微架构、RTL,直至逻辑门、晶体管和物理层面。
计算机系统通过应用、算法、编程语言、操作系统、ISA、微架构、RTL、逻辑门、电路、器件、物理共11个层次实现从人类意图到电子运动的转化。每一层都是一次抽象,屏蔽了下层的复杂性,使得上层设计者可以专注于本层的问题。
识别软件与硬件的分界线;理解编译器、汇编语言、硬件描述语言在分层模型中的位置;初步建立软硬件协同设计的意识。
了解至少一门高级编程语言(C/C++/Python)和基础数字电路概念。
软硬件界面(ISA)、编译器、汇编语言、硬件描述语言(HDL)、软硬件协同设计(HW/SW Co-design)。
在11层模型中,软件与硬件的边界并非一刀切,而是存在多个过渡地带。课件在第9至10页用另一张图细化了这一边界:
从软件侧向下看,高级语言程序(C、C++、Python等)首先经过编译器(Compiler)转换为目标机器的汇编语言或机器语言。汇编语言本质上是ISA(指令集架构)的人类可读形式,例如RISC-V、ARM、x86。ISA是软硬件之间的契约:它定义了处理器支持的操作、寄存器集合、寻址模式和调用约定。只要软件遵循ISA规范,就无需关心下层微架构的具体实现——无论是顺序执行还是乱序执行,无论是单发射还是超标量,对软件而言都是不可见的。
从硬件侧向上看,现代数字电路设计普遍使用硬件描述语言(HDL),如Verilog、SystemVerilog、Chisel等。HDL描述的是RTL(寄存器传输级)或门级的结构与行为,经过逻辑综合(Synthesis)和物理设计(Place & Route)后,最终转化为可在硅片上制造的版图。HDL与高级编程语言的关键区别在于:HDL描述的电路在空间中并行展开,而高级语言描述的算法在时间上顺序执行。
软硬件协同设计(Hardware/Software Co-design)正是本课程的核心理念。传统的开发流程往往是"先定硬件,再移植软件"或"先写软件,再挑选硬件"。但在嵌入式智能系统与新型计算架构的背景下,这种串行模式已难以满足能效比、实时性和灵活性的多重约束。协同设计要求设计者在算法、编译器、ISA和微架构之间进行联合优化,甚至让算法 aware of 硬件特性(如内存层次、并行度、数据流模式),让硬件 aware of 算法特征(如计算密度、数据复用、稀疏性)。
ISA是软硬件之间的核心契约。编译器将高级语言降至ISA层,硬件描述语言则从RTL层向上承接微架构实现。软硬件协同设计要求打破"先软后硬"或"先硬后软"的串行思维,在多层次之间进行联合优化。
理解计算机系统演进的双重动力:自上而下的应用牵引与自下而上的技术推动;认识到架构创新往往诞生于两者的交汇点。
对体系结构发展史有初步了解(如从单核到多核、从CPU到GPU/TPU)。
应用牵引(Application Pull)、技术推动(Technology Push)、架构创新、能效墙、内存墙。
课件第9页的系统分层图两侧,标注了两种相向而行的力量:左侧是Application Requirement(应用需求),右侧是Technology Constraints(技术约束)。
应用需求以自上而下的方式牵引架构演进。新的应用场景——从深度学习推理到自动驾驶感知,从端侧语音助手到云端大模型训练——不断对计算系统提出更高吞吐量、更低延迟、更低能耗的要求。这些需求直接转化为对架构的改进建议,并为相关研发提供商业回报与资金支撑。例如,深度学习浪潮催生了GPU的大规模并行架构、Google的TPU张量处理器、以及各类NPU(神经网络处理单元)。
技术约束则以自下而上的方式限制并启发架构创新。半导体物理规律决定了晶体管尺寸逼近原子级别时,量子隧穿和漏电流将使得传统的等比例缩小策略难以为继;功耗密度(即"功耗墙"或"暗硅"问题)使得芯片无法同时点亮所有晶体管;内存带宽与计算速度之间日益扩大的差距构成了"内存墙"。这些约束一方面限制了传统架构继续简单扩展的可能性,另一方面也催生了新的技术路径——如Chiplet芯粒集成、近存计算(Processing-in-Memory)、存内计算(Compute-in-Memory)和新型存储器件(如RRAM、MRAM)。
真正具有变革意义的架构创新,往往发生在应用需求与技术约束的交汇点。当深度学习算法需要海量矩阵乘法,而传统CPU的指令级并行已触及天花板时,GPU的SIMT(单指令多线程)架构应运而生;当端侧设备需要在毫瓦级功耗下运行神经网络时,各类专用加速器与量化/剪枝算法的协同设计成为必然选择。
计算机系统的演进不是单一方向的线性过程,而是应用需求(自上而下)与技术约束(自下而上)双向驱动的结果。架构创新的本质,是在这两股力量的张力中寻找最优解。
- 摩尔定律在物理极限逼近的背景下是否仍然适用?如果晶体管等比例缩小难以持续,计算机系统设计者应该从哪些层面寻找继续提升算力的路径?
- 在你的理解中,软硬件协同设计的最大难点是什么?是设计方法论(缺少工具与流程)、人才结构(缺少既懂算法又懂硬件的工程师),还是组织壁垒(软件团队与硬件团队的割裂)?
- 本课程提出的11层分层模型中,你认为哪一层是"最关键也最脆弱"的?换句话说,哪一层的变革最可能引发全栈的连锁反应?(提示:ISA层曾支撑了x86生态数十年的繁荣,而RISC-V的开源ISA正在打破这一格局。)
- 新能源车芯片数量超过1000颗,这意味着车内存在大量的异构计算单元。如果你是架构师,如何在保证功能安全(ISO 26262)和实时性的前提下,管理如此庞大且异构的芯片生态?