中级软考(软件攻城狮)第1章知识点——计算机体系结构(2) 一、计算机体系结构、计算机组织、计算机实现 三者的关系个复杂的系统构建时并不是一个单一方向的人才就可以实现的需要多种不同方向的人参与而为了保证各方能正常协作这种思维方式屏蔽了复杂性和兼容性只要是核心的体系不变那就可以通用这个大厦就不会崩塌经历概念设计 - 逻辑设计 - 物理实现1.1 计算机体系结构分类1 从宏观上按照处理机的数量分类2 从微观上按照并行程度分类1.2 指令系统(指令操作数)一台计算机能够执行的全部指令的集合是硬件CPU与软件之间的接口。程序员通过指令指挥CPU 完成运算、存取、跳转、输入输出等操作寻址方式确定指令地址或者操作数有效地址的方法。计算机中两类寻址指令寻址找到下一条指令存放地址操作数寻址找到指令需要的数据考试重点1指令的格式一条机器指令一般分为两大部分操作码OP指明要执行什么操作加、减、乘、移位、读内存等执行什么操作操作数地址码指明参与运算的数据在哪、结果存放位置,地址码参与操作的数据2指令的寻址方式指令寻址找到下一条指令存放地址3操作数的寻址方式操作数寻址找到指令需要的数据考试重点根据操作的功能找到需要参与操作的数据位置指令中需要指明操作数在哪里。寻址方式就是确定操作数地址的方法。不同的寻址方式影响指令的长度、执行速度和编程灵活性3、1 立即寻址特点操作数直接写在指令中优点不需要访问内存获取操作数速度快缺点操作数是固定的无法动态改变数值范围受指令字段长度限制3、2 直接寻址特点指令中给出操作数的内存地址优点只需一次内存访问即可得到操作数缺点地址字段长度限制了寻址范围3、3 间接寻址特点指令中给出的地址单元里存放的是操作数的真正地址地址的地址优点可访问更大的地址空间因为地址可以放在多个字中缺点需要两次内存访问速度慢3、4 寄存器寻址特点操作数在寄存器中优点速度快寄存器访问远快于内存指令短缺点寄存器数量有限3、4 寄存器间接寻址特点指令给出寄存器编号该寄存器中存放操作数的内存地址优点地址可动态修改改变寄存器的值即可比间接寻址快只有一次内存访问3、5 相对基址变址变址特点有效地址 基址存放在基址寄存器或指令中 变址存放在变址寄存器中优点适合数组访问、循环操作只需修改变址寄存器即可遍历数组相对特点有效地址 程序计数器 PC 偏移量偏移量通常由指令给出优点实现程序浮动代码在内存中移动仍能正确跳转3、5 操作数的寻址方式对比总结立即数就在指令中直接地址直接访存。间接再访一次存寄存器最快不用等。寄存器间接先找址变址基址加变址。相对寻址 PC 加偏移跳转浮动最相宜1、指令只给出地址线索CPU 通过寻址方式算出有效地址再去内存 / 寄存器读出数据2、直接寻址指令给出内存地址 → 去内存拿数据3、寄存器寻址指令给出寄存器编号 → 从 CPU 内部寄存器拿数据4、间接寻址、基址、变址、相对寻址都是根据地址信息算出真正存放数据的位置再读取数据通过指令根据寻址的方式去CPU内部或者内存拿数据进行操作运算,指令由操作码和地址字段组成CPU 利用指令提供的地址信息借助不同寻址方式确定操作数所在位置寄存器、存储单元进而取得操作数据仅立即寻址时操作数直接包含在指令内部。4常见的指令集系统重点是CISC 和 RISC重点是CISC 和 RISC的两者区别5指令的流水处理三种控制方式1、顺序方式一条做完做下一条慢设备利用率低。2、重叠方式第K条指令执行时第K1条开始取指类似流水线的雏形。3、流水方式将指令执行过程细分为多个阶段取指、分析、执行多条指令并行推进。5、1 指令流水线的计算流水线一条指令的执行时间取指分析执行时间总和例题1例题22 存储系统2、1 存储器的层次结构完整存储系统分层寄存器(CPU内部) → Cache → 主存内存 → 辅存磁盘、SSD速度递减、容量递增、每位价格递减 这里介绍一下各种存储器的速度、容量、价格之间的关系以及在CPU中的访问频率。1、CPU 内部通用寄存器速度最快容量极小直接参与运算。2、Cache (高速缓存)位于CPU 和内存之间缓解速度差异。缓存池3、主存储器 (RAM)存放当前运行的程序和数据。4、联机磁盘存储器硬盘/SSD用于持久化存储。5、脱机光盘、磁盘存储器用于归档备份速度最慢2、2 存储器分类按照存储器的工作方式分类1、随机存取存储器2、只读存储存储器ROM3、 高速缓存Cache——重点CPU-----高速缓存Cache)----主存内存原理基于局部性原理时间局部性刚访问过的指令可能再访问空间局部性刚访问过的数据附近的可能被访问。利用小容量、高速度的 SRAM 存储最活跃的数据副本。作用解决 CPU 速度快与主存DRAM速度慢之间的速度匹配问题缓存池的作用。运行方式CPU 读数据 → 查 Cache → 命中Hit则直接读取。未命中Miss → 访问主存 → 取出数据交给 CPU 并写入 Cache以备后用。利弊利大幅提升系统平均运行速度。弊增加了硬件成本和控制逻辑的复杂性如一致性问题平均存取时间计算3、1 Cache原理3、2主存与Cache的地址映射地址映射方式CPU 访问的是主存地址需要映射到 Cache 地址直接映射 (Direct Mapping)主存中的块只能映射到 Cache 中的固定位置。特点硬件简单成本低但冲突率最高Cache 空间利用率低。全相联映射 (Fully Associative Mapping)主存中的块可以映射到 Cache 中的任意位置。特点冲突率最低利用率高但比较电路极复杂成本最高只适合小容量 Cache。组相联映射 (Set Associative Mapping)折中方案。将 Cache 分组组间直接映射组内全相联。特点综合了前两者的优点是现代计算机的主流选择。2、3 虚拟存储器原理将主存物理内存和辅存磁盘视为一个整体。通过MMU内存管理单元 建立“逻辑地址”与“物理地址”的映射表页表/段表。作用扩充内存容量让 4GB 内存的电脑能运行需要 8GB 内存的游戏通过 Swap/分页。隔离保护每个进程有独立的地址空间互不干扰。运行方式程序访问逻辑地址 → 查页表若页在内存中 → 转换为物理地址访问若页不在内存中缺页中断 → 操作系统从磁盘调入该页 → 更新页表 → 重试利弊利逻辑容量大无需考虑物理内存大小程序编写方便。弊地址转换和页面调度需要时间如果频繁“抖动”频繁换入换出效率会急剧下降。2、4 输入 / 输出技术i/o**I/O输入 / 输出Input/Output实现主机CPU 主存与外部设备交换信息。**核心概念内存和接口是两个完全独立的世界。CPU 拥有两套独立的地址空间一套专门给内存如 RAM一套专门给接口I/O 端口。例如地址 0x0001 在内存空间中代表一个存储单元而在接口空间中可能代表鼠标的数据端口。它们互不冲突因为访问它们的指令不同。特点隔离性内存和接口互不干扰物理上和逻辑上都是隔离开的。缺点指令贫乏CPU 必须设计专门的 I/O 指令如 x86 汇编中的 IN 和 OUT 指令来访问接口。功能太弱由于只有专门的几条指令能操作接口通常只能进行简单的数据输入输出无法像操作内存那样直接进行复杂的算术运算或逻辑运算不能直接对端口做加法、移位等2、CPU与外部设备的信息交换方式2、CPU与I/O接口的信息交换1、程序查询方式2、程序中断方式3、DMA方式4、通道方式2、5 总线系统总线Bus计算机中设备和设备之间传输信息的公共数据通道。1、总线分类按连接部件位置最常考系统总线三层结构1、片内总线CPU 芯片内部总线连接寄存器、ALU 等。2、系统总线连接 CPU、主存、I/O 接口分为三组地址总线 AB单向CPU→存储器 / I/O传地址数据总线 DB双向传输指令 / 数据控制总线 CB双向传输读写、中断、应答信号3、通信总线外部总线主机与外部设备之间如 USB、以太网、SATA。简答背诵片内总线、系统总线、通信总线。4、按照总线传输信息类型地址总线单向数据总线双向控制总线5、常见的总线