北京大学《计算概论》课件:第五讲cpu内存基本工作原理_第1页
北京大学《计算概论》课件:第五讲cpu内存基本工作原理_第2页
北京大学《计算概论》课件:第五讲cpu内存基本工作原理_第3页
北京大学《计算概论》课件:第五讲cpu内存基本工作原理_第4页
北京大学《计算概论》课件:第五讲cpu内存基本工作原理_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Contents本讲目录北京大学《计算概论》第五讲:CPU与内存基本工作原理01冯·诺依曼体系结构回顾02CPU内部组成与工作原理03主存储器结构与访问机制04存储系统层次化设计05指令执行全流程与CPU-内存协作CHAPTER01冯·诺依曼体系结构回顾从整体框架理解计算机五大部件的协同关系ComputerArchitecture冯·诺依曼体系结构核心思想冯·诺依曼于1945年提出的"存储程序"概念是现代计算机的理论基石——程序与数据统一存储,自动连续执行指令序列。冯·诺依曼体系结构五大部件连接关系示意运算器ALU执行算术与逻辑运算,是数据加工的核心部件。现代CPU中ALU与寄存器组紧密协作,实现高速运算。控制器CU取出指令、译码并发出控制信号,协调各部件有序工作。指令周期包括取指、译码、执行、写回四个阶段。存储器Memory按地址编址、随机访问,是"存储程序"概念的物理载体。分为内存(RAM/ROM)与外存(磁盘、SSD)两级结构。输入/输出设备I/O完成外部信息与二进制编码之间的双向转换。包括键盘、鼠标、显示器、磁盘控制器等人机交互接口。总线系统BusSystem连接五大部件的公共通道,分为地址总线(单向传输内存地址)、数据总线(双向传输数据)和控制总线(传输读写控制信号)三类。总线带宽与频率直接影响系统整体性能。VonNeumannArchitecture“存储程序”概念的革命性意义“存储程序”概念的本质是将程序视为一种特殊的数据,使计算机从“专用计算器”进化为“通用计算平台”。PROGRAMASDATA程序即数据:指令以二进制编码形式与数据共同存储在内存中,CPU通过读取内存即可获取下一步操作,无需外部物理干预二进制编码AUTOEXECUTION自动连续执行:控制器内含程序计数器(PC),自动指向下一条待执行指令的地址,实现指令序列的自动化串行执行PC计数器UNIVERSALITY通用性飞跃:同一台硬件通过加载不同程序可完成科学计算、文字处理、图形渲染等完全不同的任务,硬件无需改动硬件不变CPUDESIGN对CPU设计的影响:CPU只需实现固定的“取指–译码–执行”周期,无需预知程序内容,这是现代处理器通用性的根源取指–译码–执行MEMORYDESIGN对内存设计的影响:内存必须同时存储指令和数据,支持按地址随机读写且访问速度与地址无关,这催生了RAM技术RAM技术CHAPTER02CPU内部组成与工作原理深入处理器核心,理解指令如何被取出、解析和执行COMPUTERARCHITECTURECPU三大核心组成部件CPU从功能上可划分为运算器、控制器和寄存器组三大核心模块,三者通过内部总线互联,在时钟信号的统一节拍下协同完成每一条指令的执行。运算器(ALU)算术逻辑单元是数据加工核心,执行加减乘除等算术运算和与或非等逻辑运算累加器暂存运算中间结果,减少对外部存储器的频繁访问,提升运算效率状态寄存器记录运算结果特征标志,如进位、溢出、零标志,供条件跳转使用ALU·ACC·PSW控制器(CU)程序计数器存放下一条待执行指令的内存地址,实现指令的顺序或跳转执行指令寄存器保存当前正在执行的指令内容,供译码电路分析操作类型时序控制单元产生节拍脉冲信号,协调运算器、存储器和寄存器组的同步操作PC·IR·CU寄存器组通用寄存器组提供高速数据暂存空间,支持操作数读取和结果回写的并行访问专用寄存器包括堆栈指针和基址寄存器,支持子程序调用和内存寻址操作寄存器堆采用多端口设计,允许同一时钟周期内完成多个数据的读写传输R0-R15·SP·BPCentralProcessingUnitCPU关键寄存器详解程序计数器(PC)和指令寄存器(IR)是CPU执行指令的核心驱动寄存器。PC决定程序执行流向,IR锁存当前指令,为译码和执行提供稳定信息源。CPU内部PC、IR、ALU等核心部件及数据流向示意图PC自动递增:每取出一条指令后,PC自动加上该指令字节数(如4字节则PC+4),保证顺序执行PC+4递增PC与跳转指令:遇到跳转时PC被直接写入目标地址,打破顺序执行,实现分支与循环Branch/JumpIR锁存当前指令:取出的指令存入IR后在执行周期内保持不变,确保译码和执行阶段信号稳定Latch锁存指令格式拆分:IR中指令分为Opcode和Operand,操作码指明运算类型,地址码指明数据来源Opcode·OperandMAR与MDR配合访存:MAR存放要访问的内存地址,MDR暂存读出或待写入的数据地址·数据INSTRUCTIONCYCLE指令周期的四个阶段CPU执行每条指令都经历取指、译码、执行、写回四个阶段的完整周期,在时钟信号驱动下周而复始地循环,使CPU能够自动、可靠地运行任意复杂的程序。01取指FetchCPU将PC中的地址通过地址总线发送到内存,内存返回对应地址的指令内容,经数据总线存入IR,PC自动递增PC→IR02译码Decode指令译码器解析IR中指令的操作码字段,确定操作类型(如加法、跳转)和操作数来源(寄存器或内存地址)操作码解析03执行ExecuteALU根据译码结果执行算术或逻辑运算,或控制器发出信号完成数据在寄存器与内存之间的传输ALU运算04写回Writeback将执行结果写入目标寄存器或回写到内存指定地址,为下一条指令的执行准备好数据状态结果写回INSTRUCTIONPIPELINE实例解析:ADD指令的完整执行过程追踪ADDR1,R2,R3从取指到写回的全过程,直观理解PC驱动取指、译码器拆分操作码、ALU运算与结果写回的完整机制。取指与译码01PC指向地址0x1000,CPU通过地址总线向内存发出读请求,内存返回ADD指令的32位二进制编码存入IR02PC自动加4(32位指令占4字节)更新为0x1004,指向下一条指令03译码器将IR中的编码拆分:操作码=ADD,源操作数1=R2(值30),源操作数2=R3(值50),目标=R1执行与写回01ALU从寄存器R2读取操作数30,从R3读取操作数50,两个操作数送入ALU的输入端口02ALU根据操作码'ADD'执行加法运算,输出结果80,同时更新状态寄存器中的零标志和进位标志03结果80通过内部总线写回到目标寄存器R1,至此该条指令执行完毕,CPU进入下一条指令的取指阶段PerformanceMetricsCPU核心性能指标体系评价CPU性能需从主频、核心数、缓存、微架构与指令集五维综合考量,不可仅凭单一指标判断。CPU核心性能指标对照表性能指标含义与影响典型示例主频(GHz)CPU每秒时钟周期数,主频越高单核处理速度越快(需结合架构IPC综合评估)3.5GHz基础/5.0GHz加速核心/线程数核心数=物理运算单元,线程数=逻辑运算单元(超线程技术1核模拟2线程),越多并行能力越强8核16线程(i7-13700K)缓存容量L1核心独占最快(KB级)、L2核心独占(MB级)、L3多核共享(MB级),越大CPU读取数据越快L1=512KB/L2=2MB/L3=16MB微架构CPU内部电路设计(流水线、分支预测等),直接影响每时钟周期执行指令数(IPC)IntelRaptorLake/AMDZen4指令集CPU支持的指令类型,扩展指令集可加速特定任务如视频编码、AI计算x86-64(PC端)/ARM(移动端)CPU性能是主频、核心数、缓存、架构和指令集五维协同的综合结果,不能仅看单一指标CHAPTER03主存储器结构与访问机制理解内存如何组织、编址和响应CPU的读写请求MemoryArchitecture内存的物理结构与编址方式主存储器(RAM)由海量存储单元组成的阵列构成,每个单元存储8位(1字节)数据并拥有唯一地址编号。这种按地址编址、随机访问的设计使CPU可以在O(1)时间内定位任意数据,是"随机存取"名称的由来,也是冯·诺依曼架构"存储程序"概念的物理实现基础。存储单元阵列内存由数十亿个存储单元排列成矩阵,每个单元存储1字节数据,通过行列地址交叉定位8bit/Cell地址编码原理每个存储单元拥有从0开始的连续唯一编号,4GB内存地址空间覆盖完整32位范围0x00–0xFFFF随机访问特性访问任何地址的延迟相同,无需顺序扫描,与磁盘的机械寻道形成本质区别O(1)容量计算公式总容量等于存储单元数量乘以每个单元位数,地址总线宽度决定可寻址上限2³²×8bit易失性特征RAM依赖电信号维持数据,断电后所有内容立即丢失,需持久化存储至硬盘或SSDVolatileMEMORYOPERATIONS内存读写操作与总线协作机制CPU与内存通过地址总线(单向定位)和数据总线(双向传输)协作完成数据交互,地址总线宽度直接决定最大可寻址空间。读操作流程CPU将目标地址写入MAR,经地址总线单向发送至内存地址译码器,定位对应存储单元内存将数据读出放到数据总线上,CPU接收并存入MDR供后续运算使用Read写操作流程CPU经地址总线发送目标地址,同时经数据总线发出待写入数据,激活写控制信号内存接收并覆盖指定地址单元原有内容,写入是破坏性操作——旧数据被永久替换Write总线宽度与寻址地址总线宽度决定最大寻址空间:32位可寻址4GB,64位理论可寻址16EB数据总线宽度决定单次传输量:64位一次传输8字节,比32位吞吐量翻倍BusWidthMemoryOrganization多字节数据的存储方式:字节序当多字节数据存入按字节编址的内存时,大端序将高位字节存放在低地址,小端序将低位字节存放在低地址,字节序的选择直接影响跨平台兼容性。BigEndian大端序高位字节存放在低地址,如0x12345678中0x12在地址0x00、0x78在0x03,符合直觉LittleEndian小端序低位字节存放在低地址,如0x12345678中0x78在地址0x00、0x12在0x03,便于低位优先运算Architecture架构差异x86/x86-64采用小端序,ARM可配置但默认小端序,Java虚拟机统一使用大端序保证跨平台一致性Network网络字节序TCP/IP协议规定采用大端序,x86主机网络编程时必须调用htonl/ntohl进行字节序转换DDR5内存条·数据按字节编址存储于内存芯片中Chapter04存储系统层次化设计在速度、容量与成本之间寻找最优平衡的多级存储策略STORAGEHIERARCHY存储系统金字塔层次结构多级存储金字塔以局部性原理为基础,使系统整体性能接近最快层而成本接近最慢层。高速层级CPU内部01寄存器组:容量数百字节,延迟<1ns,存放当前指令操作数02L1缓存:每核32-64KB,延迟约1ns,哈佛结构,命中率>95%03L2缓存:每核256KB-1MB,延迟3-10ns,L1未命中缓冲<10ns中速层级主板级01L3缓存:多核共享8-64MB,延迟10-40ns,协调多核数据共享02主存DRAM:4-128GB,延迟50-100ns,断电后数据丢失~100ns低速层级外存01SSD固态硬盘:256GB-8TB,延迟10-100μs,闪存芯片,抗震性强02HDD机械硬盘:1-20TB,延迟5-10ms,磁头寻道,单位成本最低~10msChapter05·CPUArchitecture高速缓存(Cache)工作原理高速缓存利用时间局部性与空间局部性,将CPU访存平均延迟从数十纳秒降至个位数纳秒,三级缓存命中率超过99%。缓存命中CPU请求数据已存在于Cache中,直接返回无需访问主存,极大提升数据读取效率,是现代处理器性能优化的核心机制之一。1–10ns缓存未命中数据不在Cache中时,需从主存读取并调入Cache,同时可能触发缓存行替换,延迟显著增加。~100ns缓存行Cache以固定数据块为单位与主存交换,利用空间局部性预取相邻数据,减少后续访问延迟。64Bytes替换策略Cache满时采用LRU等算法淘汰最少使用的缓存行,在有限容量下最大化命中率,平衡速度与成本。LRU多级缓存L1→L2→L3逐级查找,逐级放宽容量换取可接受延迟,形成层次化存储体系,兼顾速度与成本。L1–L3STORAGEHIERARCHY各级存储访问延迟对比分析从CPU寄存器到机械硬盘,访问延迟跨越了7个数量级。L1缓存命中仅需约1ns,而主存访问需约100ns(相当于300个CPU时钟周期),缓存每降低一级命中率,对性能的影响都是指数级放大的。各级存储访问延迟对比(对数刻度,纳秒)从寄存器到HDD延迟跨越7个数量级,缓存层级是弥合CPU与主存速度鸿沟的关键01CPU寄存器:访问延迟仅约0.3ns,是处理器内部最快的存储单元,直接参与ALU运算的数据暂存。02L1/L2/L3缓存:延迟依次为1ns、10ns、40ns。多级缓存结构是弥合CPU与主存之间速度鸿沟的核心设计。03主存DRAM:访问延迟约100ns,相当于约300个CPU时钟周期。缓存未命中时性能将显著下降。04SSD固态存储:访问延迟约100,000ns(100μs),相当于约30万个CPU周期,属于毫秒级I/O操作。05HDD机械硬盘:访问延迟约10,000,000ns(~10ms),相当于约3,000万个CPU周期,是存储层级中最慢的一级。PrincipleofLocality局部性原理:存储层次设计的理论基础局部性原理指出程序在执行过程中对内存的访问呈现显著的聚集特征:时间局部性使近期访问过的数据倾向于被再次访问,空间局部性使相邻内存地址倾向于被连续访问。这一规律是Cache能够有效工作的根本原因。时间局部性被访问的数据在短期内很可能再次被访问,典型场景包括循环变量、累加器和函数调用中的返回地址。Examplefor循环计数器i每次迭代都被读写,编译器将i分配到寄存器以最大化收益空间局部性被访问地址附近的内存很可能在短期内被访问,典型场景包括数组顺序遍历、结构体成员访问和指令顺序执行。2–5×行优先vs列优先遍历程序员优化策略将频繁一起访问的字段放在同一个struct中提高空间局部性,避免频繁跳转访问分散的链表节点。Technique循环分块(Blocking)将大型矩阵运算分成适合Cache大小的子块,在L1/L2缓存内完成计算CHAPTER05指令执行全流程与CPU-内存协作将CPU与内存的工作原理串联为完整的程序执行链条ProcessLifecycle从程序文件到CPU执行:启动全流程程序从硬盘中的静态文件变为CPU中运行的进程,需要经历操作系统加载、内存空间分配、代码段/数据段复制、PC初始化等关键步骤。一旦PC被设置为程序入口地址,CPU即进入"取指-译码-执行-写回"的持续循环,直至程序终止或被中断调度。01文件加载读取可执行文件(ELF/PE格式),解析文件头获取代码段、数据段尺寸与加载地址ELF/PE02内存分配在虚拟地址空间分配代码段(只读)、数据段(读写)、堆和栈区域V-Space03数据复制经DMA通道将机器指令和初始数据复制到内存,避免CPU逐字节搬运DMA04PC初始化将PC寄存器设为程序入口点地址,CPU开始第一条指令的取指周期EntryPoint05内存布局运行时内存划分为代码区、全局数据区、堆区(向上增长)和栈区(向下增长)Heap⇡Stack⇣INSTRUCTIONPIPELINELOAD指令执行全流程追踪以LOADR1,[0x2000]为例,一条访存指令需要两次内存访问:第一次取指令(PC→内存→IR),第二次取数据(MAR→内存→R1)。这两次访存若命中缓存仅需约2ns,若未命中则需约200ns,性能差距高达100倍。这正是多级缓存设计对CPU性能至关重要的直接体现。PHASE01·取指与译码PC中存放LOAD指令地址(如0x1000),CPU通过地址总线向内存发出读请求,内存返回指令编码存入IR,PC自动加4译码器解析IR:操作码=LOAD(内存读取),目标寄存器=R1,有效地址=0x2000(直接寻址模式)PHASE02·执行与写回CPU将有效地址0x2000写入MAR,通过地址总线发送到内存,内存地址译码器定位到0x2000对应的存储单元内存将0x2000单元的数据放到数据总线上,CPU接收后存入MDR,再从MDR传送到目标寄存器R1,指令执行完毕指令执行数据通路FETCH&DECODEPC→Memory→IR地址0x1000·取指令编码·PC+4IR→译码器操作码LOAD·目标R1·地址0x2000EXECUTE&WRITE-BACKMAR→Memory→MDR写入地址·读取数据·暂存MDRMDR→R1数据写入目标寄存器·执行完毕2ns缓存命中200ns缓存未命中100×性能差距INSTRUCTIONTRACESTORE指令执行全流程追踪STORER1,[0x3000]指令将寄存器R1的值写入内存指定地址,执行阶段CPU同时发出地址、数据和写控制信号,目标地址原有内容被永久覆盖。取指阶段CPU根据PC地址从内存取出STORE指令的二进制编码,存入IR,PC自动递增PC→IR译码阶段译码器识别操作码为STORE,源寄存器=R1,目标内存地址=0x3000STORE执行阶段将0x3000写入MAR,从R1读取数据放到数据总线,发出写使能信号MAR+WE写入确认内存将数据存入0x3000单元并覆盖原有内容,CPU继续取下一条指令0x3000CONTROLFLOW跳转指令与程序控制流跳转指令通过修改PC的值打破顺序执行,实现条件分支和循环控制流。条件跳转依赖状态寄存器中的标志位判断;无条件跳转则直接写入目标地址。条件跳转机制01比较指令(CMP)执行减法但不保存结果,仅更新零标志(ZF)、符号标志(SF)等状态位02条件跳转(JE、JNE、JG)根据状态标志决定是否修改PC,实现if/else分支逻辑03循环本质是"条件跳转回之前的地址",直到退出条件满足才跳出循环体分支预测与流水线04流水线深度14–20级,预测错误需清空流水线,惩罚约15–20个周期05动态分支预测器记录历史行为(2位饱和计数器),规律性分支预测准确率>95%分支预测流水线示意>95%预测准确率Fetch取指·从PC地址读取指令Decode译码·识别跳转类型Predict分支预测·推测跳转方向Execute执行·计算跳转目标地址Commit提交·验证预测并更新PC现代CPU分支预测器·2位饱和计数器机制PipelineFundamentals指令流水线技术基本原理流水线技术将指令执行拆分为多个独立阶段,各阶段由专用硬件并行处理不同指令。理想四阶段流水线可使吞吐量提升4倍。时间重叠原理第1条指令进入译码阶段时,第2条同时进入取指阶段,四条指令分别占据四个阶段并行推进。通过时间重叠实现硬件资源的高效复用,是流水线设计的核心思想。四阶段并行吞吐量提升理想情况下每周期完成1条指令(CPI≈1),相比非流水线每4周期1条,吞吐量提升约4倍。加速比随流水线深度增加而提高。4×加速比数据冒险后续指令依赖前序指令运算结果,需通过旁路转发(Forwarding)或插入气泡(Stall)解决。数据相关是流水线中最常见的冲突类型。旁路转发机制控制冒险跳转指令导致预取指令可能无效,分支预测器通过猜测跳转方向减少流水线清空惩罚。现代处理器预测准确率可达95%以上。分支预测技术超标量设计现代CPU在每个流水线阶段配置多个功能单元,可在同一周期发射多条指令。通过指令级并行(ILP)进一步提升执行效率。4-6条/周期COMPUTERARCHITECTURE·LECTURE05CPU-内存速度鸿沟与应对策略CPU速度年增长约55%而内存速度仅增长约7%,超过80%的晶体管面积用于缓存和调度逻辑,本质都在解决"如何让CPU不因等待内存而空转"这一核心矛盾。速度鸿沟的量化表现250×CPU主频增长1000倍vs内存延迟仅改善4倍,速度差距扩大250倍500CLOCKCYCLESWASTEDL1缓存未命中时,5GHzCPU等待主存数据的空闲周期数硬件层面的应对策略多级缓存体系L1/L2/L3三级缓存将平均访存延迟从100ns降至2-5ns,但消耗了CPU芯片80%以上的面积80%+ChipArea硬件预取器检测CPU访存模式(如顺序访问),在CPU请求之前主动将相邻数据块从主存调入缓存ProactiveFetch乱序执行(OoO)当一条指令等待内存时,CPU跳过它去执行后续不依赖该数据的指令,最大化利用计算资源MaxUtilizationCACHEOPTIMIZATION编写缓存友好的程序代码理解CPU缓存和内存层次结构,能帮助程序员在代码层面做出显著提升性能的设计决策。核心原则是最大化空间局部性与时间局部性,避免缓存不友好的访问模式。01数组遍历顺序优化C/C++二维数组按行优先存储,按行遍历命中率远高于按列遍历,可显著提升缓存效率2–5×02连续存储优于链式存储数组元素连续排列,Cache预取可批量加载;链表节点分散在内存各处,每次访问都可能触发CacheMissPREFETCH03AoS与SoA数据布局批量处理同一字段时,SoA(结构体数组)布局比AoS(数组结构体)更利于向量化和缓存利用SIMD04避免缓

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论