Home
Li Shi
Cancel

《片上网络》笔记(二):系统架构与接口

在这一章中我们研究三种主要的系统架构:共享内存芯片多处理器(shared-memory chip multiprocessor, CMP)、消息传递系统、多处理器SoC(multiprocessor SoC, MPSoC)。 共享内存CMP 并行编程中,一个全局的地址空间通常比分区的地址空间设计起来更简单。在现代SMP设计中,分区全局地址空间(partitioned global add...

《片上网络》笔记(一):基础

《片上网络》原书英文名为 On-Chip Networks,和《处理器微架构实现》一样隶属于Synthesis Lectures on Computer Architecture系列,简单介绍了片上网络设计的一些关键概念。 按照维基百科的描述,片上网络(NoC)是一种基于传统计算机网络概念的通信系统电路,最常见于SoC的各个模块之间,NoC技术将计算机网络的理论和方法应用于片上通信,提高了...

《处理器微架构实现》笔记(五):提交

在乱序流水线中,为了模拟指令的顺序执行,最常见的解决方案是在流水线的末尾实现额外的一个阶段,称为提交。在任何指令被提交之前,指令做出的任何行为都是推测性、或者叫投机性的,不会真正改变处理器的状态。通过这种方式也可以实现精确异常。 对于x86等CISC处理器,一条CISC指令可能被拆分成多条微指令,当所有对应的微指令都已经执行完成时,该条CISC指令也会随之被提交并更新处理器状态。这条规则的...

《处理器微架构实现》笔记(四):执行

处理器执行单元 执行阶段真正开始执行一条指令的计算,包括算术操作、访存、分支等,大多数乱序处理器都会采用上图中的执行单元组织结构,灰色阴影区域表示功能单元(FU),如FPU进行浮点运算,ALU进行整数的算术和逻辑运算等。除此之外,执行阶段的另一个重点是旁路网络,以支持指令背对背执行。 功能单元 整数算术和逻辑单元(ALU) ALU对两个整数输入进行操作,并产生一个整数结果。一些复杂...

《处理器微架构实现》笔记(三):分配与发射

分配阶段包括两个任务:寄存器重命名和指令分派,前者的目的是消除由于寄存器的重复使用而产生的不必要的数据依赖,而后者的目的是保留一些指令执行所需的资源。发射阶段负责向FU发射指令并执行,通常可以分为顺序发射和乱序发射。 分配 如上所述,分配阶段由两大任务。首先是寄存器重命名,此处我们讨论的重命名只限于寄存器的范畴,事实上这个概念也适用于内存操作数,会在之后进一步讨论。寄存器重命名最早是在T...

《处理器微架构实现》笔记(二):取指与解码

取指单元负责向处理器提供接下来要执行的指令,解码单元负责理解一条指令的语义并定义这条指令将如何被执行。 取指单元主要包括一个指令缓存和相关的逻辑。高性能处理器也需要在这一阶段预测下一条指令地址,包括两个部分:分支方向与分支目标地址。下图中是一个简单的取指流水线。 简单的取指流水线 解码单元则负责将原始字节流分割成有效的指令,为指令生成一系列流水线控制信号,包括指令类型、执行什么操作、...

《处理器微架构实现》笔记(一):缓存

《处理器微架构实现》(英文名为Processor Microarchitecture: An Implementation Perspective)是CMU 18-447 Introduction to Computer Architecture推荐阅读的一本教材。首先介绍的内容是缓存,关于缓存的基本概念在网络上可以找到很多介绍,这里就不再详细展开了。我们在此只讨论一些缓存具体的实现问题。 ...