计算机组成:结构化方法 读书杂记
Warning本文发布于 2023/03/12,内容可能已过时。
本篇为《计算机组成:结构化方法 第六版》的读书杂记
![image](https://p.chilfish.top/blog/SCO.webp)
概述
小细节
x86 是来自 8088 的升级版 32 位 CPU 80386 系列的称呼,AMD 也这么叫,所以后来的 32 位都叫 x86 了
字(word)是主存和寄存器间交换数据的单位,32 位中的大小位 4 字节,64 位为 8 字节
程序计数器(PC)是计算机中的一个寄存器,用于存储当前正在执行的指令的地址(寄存器组的下标)。它是 CPU 中的一部分,用于控制程序的执行顺序。每当 CPU 执行一条指令时,PC 就会自动递增,指向下一条指令的地址。PC 的主要功能是指向下一条将要执行的指令的地址,以便 CPU 能够按照正确的顺序执行程序。当 CPU 需要执行一个新的指令时,它会从 PC 中读取指令的地址,并将该地址送入指令寄存器中,然后执行该指令
解释器程序 是一种能够解释执行源代码的程序。它会逐行读取源代码,并将其转换为计算机可以理解的指令,然后执行这些指令。与编译器不同,解释器不会将源代码转换为可执行文件,而是直接在计算机上执行源代码。解释器通常用于解释脚本语言、解释型语言和某些高级语言。它们的优点是易于使用和调试,但由于需要逐行解释代码,执行速度可能会比编译器慢
组成
计算机通常由以下几部分组成:
-
中央处理器 (Central Processing Unit,简称 CPU):计算机的“大脑”,负责控制和执行计算机程序中的指令,进行算术和逻辑运算等操作
-
存储器 (Memory):用于存储计算机程序和数据,分为主存储器和辅助存储器。主存储器(RAM)是计算机运行时临时存储数据和程序的地方,而辅助存储器(例如硬盘、光盘)则用于长期存储数据和程序
-
输入设备 (Input Devices):用于将数据或指令输入计算机,例如键盘、鼠标、扫描仪、摄像头等
-
输出设备 (Output Devices):将计算机处理的数据或结果输出,例如显示器、打印机、喇叭等
-
总线 (Bus):用于连接各个部件的数据传输通道,分为地址总线、数据总线和控制总线,分别用于传输地址、数据和控制信号
-
主板 (Motherboard):连接和支持计算机的各个部件的电路板
-
电源 (Power Supply):为计算机提供电能,确保各个部件正常运转
以上就是计算机的主要组成部分,其中 CPU、存储器和输入输出设备是计算机最基本的部件,总线和主板则负责协调各部分工作
其中,以 amd64 为例,现代 CPU 即冯诺依曼结构由以下部分组成:
-
指令集架构 (Instruction Set Architecture,ISA):定义 CPU 可以执行的指令集和编程模型。amd64 架构是一种 64 位指令集架构,可以处理 64 位数据和地址
-
控制单元 (Control Unit,CU):负责从存储器中读取指令,解码指令,控制执行指令的各个阶段,包括取指、译码、执行和写回等
-
算术逻辑单元 (Arithmetic Logic Unit,ALU):负责执行算术运算和逻辑运算,例如加减乘除、比较、位运算等
-
寄存器 (Registers):CPU 内部的存储器单元,用于暂时存储数据和地址,包括通用寄存器、指令指针寄存器、程序状态寄存器等
-
缓存 (Cache):高速缓存是 CPU 内部的一种快速存储器,用于存储频繁访问的数据和指令,可以提高数据访问速度和 CPU 性能
-
总线接口单元 (Bus Interface Unit,BIU):负责和系统总线通信,从存储器中读取指令和数据,将计算结果写回到存储器中
-
浮点运算单元 (Floating Point Unit,FPU):用于执行浮点数运算,例如加减乘除、开方、三角函数等
-
多核心处理器 (Multi-core Processor):现代 CPU 通常包含多个处理器核心,可以并行处理多个任务和线程,提高计算机的性能和效率
指令集
复杂指令集(Complex Instruction Set Computer, CISC)和精简指令集(Reduced Instruction Set Computer, RISC)是计算机的两种指令集架构。它们的区别在于指令集的复杂度和外理器的设计思想
RISC 的设计原则是“简单就是美”,旨在通过削减指令集的规模和复杂性来提高计算机的性能。RISC 指令通常只执行一种基本操作,如加法、减法或逻辑运算。每个指令的操作数数量都很少,大多数操作都是在寄存器中进行。RISC 设计的另一个重要特点是采用了流水线技术,使得指令可以按照顺序进行,从而提高了执行速度
CISC 的设计原则是“功能丰富”,旨在通过添加更多的指令和复杂的操作来提高计算机的功能。CISC 指令可以执行多个操作,如在一个指令中同时执行加法和乘法。CISC 设计的另一个重要特点是使用存储器寻址模式,即可以直接访问存储器中的数据,而不需要先将数据加载到寄存器中。由于指令的复杂性较高,因此 CISC 指令集的处理器一般需要较长的时钟周期,且不能很好地应用流水线技术
比较内容 | CISC | RISC |
---|---|---|
指令系统 | 复杂,庞大 | 简单,精简 |
指令数目 | 一般大于 200 | 一般小于 100 |
指令格式、寻址方式 | 一般大于 4 | 一般小于 4 |
指令字长 | 不固定 | 等长 |
可访存指令 | 不加限制 | 只有 LOAD/STORE 指令 |
各种指令使用频率 | 相差很大 | 相差不大 |
各种指令执行时间 | 相差很大 | 绝大多数在一个周期内完成 |
优化编译实现 | 很难 | 很容易 |
程序源代码长度 | 较短 | 较长 |
控制器实现方式 | 绝大多数为微程序控制 | 绝大多数为硬布线控制 |
软件系统开发时间 | 较短 | 较长 |
目前,大多数移动设备和服务器处理器都采用 RISC 指令集(Arm 架构),因为它们可以提供更高的性能和更低的功耗。此外,由于 RISC 指令集设计的简单性,其指令执行速度更快,这对于需要快速响应的应用程序非常重要
CISC 指令集仍然被用于某些特定领域,如桌面计算机和工业控制系统。这是因为在这些应用中,CISC 指令集的多功能性可以提供更多的功能和灵活性。然而,由于指令的复杂性和处理器的设计,CISC 指令集的性能和功耗方面的问题仍然存在,因此在某些情况下,RISC 指令集的优势仍然更为突出
CPU 架构
当前常见的 CPU 架构包括以下几种:
-
x86 架构:这是最常见的 CPU 架构,主要用于桌面计算机、服务器、工作站、超级计算机等场景。其最大的特点是向下兼容性强,即较早的 x86 处理器能够运行较新的软件和操作系统,且支持的指令集较为丰富。然而,由于历史原因和向下兼容性的负担,x86 处理器的设计和性能存在局限性
-
ARM 架构:这是用于移动设备、嵌入式系统和物联网等场景的 CPU 架构,具有低功耗、高效率和可扩展性等特点。ARM 处理器采用 RISC 指令集架构,其指令集简单、易于编码和调试,且支持高度并行化的指令流水线。ARM 架构还具有可扩展性强、可定制化等特点,能够满足不同场景的需求
-
Power 架构:这是 IBM 开发的 CPU 架构,主要用于服务器、超级计算机、工业控制等高性能场景。Power 架构的处理器具有高性能、高可靠性和可扩展性强等特点,且能够实现高度并行化的操作。此外,Power 架构还支持多个操作系统,并且其指令集与 x86 架构兼容
-
RISC-V 架构:这是由加州大学伯克利分校开发的开源 CPU 架构,其指令集采用 RISC 指令集,且设计原则与 ARM 和 MIPS 等 RISC 架构类似。RISC-V 架构的处理器具有可定制化强、可扩展性高等特点,且开放源代码,易于定制和改进。RISC-V 架构也正在逐步成为物联网、嵌入式系统、服务器等领域的主流 CPU 架构
-
苹果的 M1 处理器采用了苹果自主研发的 ARM 架构,但与传统 ARM 处理器不同的是,M1 处理器采用了苹果自主设计的 Firestorm 和 Icestorm 处理器核心,并且采用了更高效的内存和缓存系统等技术,使得 M1 处理器在性能上能够与传统的 x86 处理器相媲美,且功耗更低。M1 处理器主要用于苹果的 Mac 计算机系列
-
英特尔的 amd64 架构(也称 x86-64)是一种 64 位指令集架构,具有向下兼容性,能够运行传统的 32 位应用程序和操作系统。amd64 架构的处理器能够提供更大的寻址空间和更高的计算性能,适用于高性能计算、服务器、工作站等场景。目前,许多计算机厂商都采用 amd64 架构的处理器,其中英特尔是最主要的供应商之一
储存器
RAM (主存储器)
随机存储器(Random Access Memory,RAM),是计算机内部用于存储正在运行的程序和数据的临时存储器
RAM 通常采用集成电路芯片制造,可以随机存取其中的任何一段数据,读写速度非常快,但断电后数据会消失。它是计算机中最重要的存储器之一,也是计算机运行的基础
RAM 的容量通常是以字节(Byte)为单位来计算的,例如 1GB 的 RAM 可以存储大约 10 亿个字节的数据。它的容量越大,计算机运行的程序和数据就可以存储更多,从而提高计算机的运行速度和性能
RAM 通常是通过内存条(Memory Module)的形式插入计算机的内存插槽中安装的,不同类型的内存条有不同的接口和规格,需要根据计算机的需求和配置来选择合适的内存条
性能影响
- 时钟频率:RAM 的时钟频率越高,数据传输速率就越快,但也会增加能耗和发热
- CAS 延迟:CAS(Column Address Strobe)延迟是指在发出读写请求后,RAM 需要等待多少个时钟周期才能开始响应,延迟越短,性能就越好
- 内存通道:内存通道是指 CPU 与 RAM 之间的物理连接通道,不同数量和类型的内存通道会影响 RAM 的性能和响应速度
- 缓存:RAM 通常带有一些缓存,例如高速缓存(Cache)和临时存储器(Buffer),这些缓存可以加速数据访问和传输,提高 RAM 的性能
- 数据总线:RAM 与 CPU 之间的数据传输通常通过数据总线完成,不同类型和宽度的数据总线会影响 RAM 的数据传输速率和性能
辅助存储器
磁盘、IDE 盘、SCSI 盘、RAID 盘、固态硬盘、只读光盘、可刻光盘、可擦写光盘、DVD、Blu-Ray
![image](https://p.chilfish.top/blog/Notes-ROM.webp)