计算机系统读书笔记(1)系统组成—冯诺依曼体系

时间:2022-10-12 03:42:04

基本认识: 
   计算机:接受用户的指令与数据,经过*处理器的数据与逻辑单元运算处理后,以产生或存储成有用的信息。广义上讲:我们周边有好多宽泛概念上的计算机,如加减乘除计算机,手机, GPS, ATM等等
计算机五大单元:
   输出单元:包括键盘,鼠标,扫描仪,读写板等。*处理器(CPU):含有算术逻辑,控制,记忆等单元。输出单元:显⽰器,打印机。

经典冯诺依曼体系:
计算机系统读书笔记(1)系统组成—冯诺依曼体系

    注意:这里存储器指内存CPU读取的数据都是从内存中来的, CPU处理完成的数据,必须要先写回内存,,最后数据才从内存传输到输出单元(忽略缓存)。
系统硬件组成
为了解程序运行时发生了什么,我们需要对典型系统的硬件组成有所了解。

主要由:总线、I/O 设备、主存、处理器组成

1 . 总线
   贯穿整个系统的是一组电子管道, 称做总线, 它携带信息字节并负责在各个部件间传递。 通常总线被设计成传送定长的字节块, 也就是字( word)。 字中的字节数(即字长) 是一个基本的系统参数, 在各个系统中的情况都不尽相同。 现在的大多数机器字长有的是 4 个字节( 32 位), 有的是 8 个字节( 64 位)。
2. I/O 设备
   输入 / 输出( I/O) 设备是系统与外部世界的联系通道。 我们的示例系统包括 4 个 I/O 设备 :作为用户输入的键盘和鼠标, 作为用户输出的显示器, 以及用于长期存储数据和程序的磁盘驱动器(简单地说就是磁盘)。每个 I/O 设备都通过一个控制 器或适配器与 I/O 总线相连。 控制器和适配器之间的区别主要在于它们的封装方式。 控制器是置于 I/O 设备本身的或者系统的主印制电路板( 通常称为主板)上的芯片组, 而适配器则是一块插在主板插槽上的卡。 无论如何, 它们的功能都是在 I/O 总线和I/O 设备之间传递信息。
3. 主存
   主存是一个临时存储设备, 在处理器执行程序时, 用来存放程序和程序处理的数据。 从物理上来说, 主存是由一组动态随机存取存储器( DRAM) 芯片组成的。 从逻辑上来说, 存储器是一个线性的字节数组, 每个字节都有其唯一的地址(即数组索引 ), 这些地址是从零开始的。 一般来说, 组成程序的每条机器指令都由不同数量的字节构成。 与 C 程序变量相对应的数据项的大小是根据类型变化的。
4. 处理器
   *处理单元( CPU), 简称处理器, 是解释( 或执行) 存储在主存中指令的引擎。 处理器的核心是一个字长的存储设备(或寄存器), 称为程序计数器( PC)。 在任何时刻, PC 都指向主存中的某条机器语言指令(即含有该条指令的地址)。从系统通电开始, 直到系统断电, 处理器一直在不断地执行程序计数器指向的指令, 再更新程序计数器, 使其指向下一条指令。 
    处理器从程序计数器( PC) 指向的存储器处读取指令, 解释指令中的位, 执行该指令指示的简单操作, 然后更新 PC, 使其指向下一条指令, 而这条指令并不一定与存储器中刚刚执行的指令相邻。
   这样的简单操作并不多, 而且操作是围绕着主存、 寄存器文件( register file) 和算术 / 逻辑单元( ALU) 进行的。 寄存器文件是一个小的存储设备, 由一些 1 字长的寄存器组成, 每个寄存器都有唯一的名字。 ALU 计算新的数据和地址值。 
   下面列举一些简单操作的例子, CPU 在指令的要求下可能会执行以下操作 :
• 加载 : 把一个字节或者一个字从主存复制到寄存器, 以覆盖寄存器原来的内容。
• 存储 : 把一个字节或者一个字从寄存器复制到主存的某个位置, 以覆盖这个位置上原来的内容。
• 操作 : 把两个寄存器的内容复制到 ALU, ALU 对这两个字做算术操作, 并将结果存放到一个寄存器中, 以覆盖该寄存器中原来的内容。
• 跳转 : 从指令本身中抽取一个字, 并将这个字复制到程序计数器( PC) 中, 以覆盖 PC 中原来的值。
简单了解系统的硬件组成和操作之后, 来看看程序运行时到底发生了些什么(忽略细节)。
   初始时, 外壳程序执行它的指令, 等待我们输入一个命令。 当我们在键盘上输入字符串“. /hello” 后, 外壳程序将字符逐一读入寄存器, 再把它存放到存储器中,当我们在键盘上敲回车键时, 外壳程序就知道我们已经结束了命令的输入。 然后外壳执行一系列指令来加载可执行的 hello 文件, 将 hello 目 标文件中的代码和数据从磁盘复制到主存。数据包括最终会被输出的字符串“hello, world\n”。利用直接存储器存取( DMA) 的技术, 数据可以不通过处理器而直接从磁盘到达主存。一旦目标文件hello中 的代码和数据被加载到 主存, 处理器就开始执行 hello 程序的main 程序中的机器语言指令。 这些指令将“hello, world\n” 字符串中的字节从主存复制到寄存器文件, 再从寄存器文件中复制到显示设备, 最终显示在屏幕上。
计算机系统读书笔记(1)系统组成—冯诺依曼体系