Hardware Organization Of A System

今天阅读的是《深入理解计算机系统》英文版的1.4节。
对于我这种基础薄弱的coder来说,今天的阅读还是蛮有用的。

首先上个图,方便讲解:

Buses

总线:用于系统间各个组件的通信。
用来传输固定大小的字节块(把它叫做字words),大部分机器的字的大小为4字节(32位)或者8字节(64位)

I/O Devices

I/O设备是计算机连接外部世界的桥梁。

典型的I/O设备

  • 键盘: 接收用户输入
  • 鼠标: 接收用户输入
  • 显示器: 输出结果给用户
  • 硬盘: 长期存储程序和数据

I/O总线 和 I/O设备的连接

两种方式:

  • controller: 主板上的芯片组
  • adapter: 就是插在主板插槽上的那些模块

不管哪种模式,它们的目的都是为了在I/O总线和I/O设备之间传输信息。

Main Memory

主存的是一个暂存设备,当处理器执行程序的时候主存就负责临时保存所执行的程序和与之相关的数据。

物理上:主存是由动态随机访问存储(DRAM)芯片组成的。

逻辑上:主存是一个线性的byte数组,每个元素有自己唯一的地址,地址从0开始。

Processor

CPU(cental processing unit),是解释执行主存里的指令的引擎。
它的核心部分有一个字(word)大小的存储设备(寄存器/register),叫做程序计数器(program counter)。任何时候程序计数器里存储的信息都指向主存里要执行的机器指令。

CPU的部分操作

  • load: 把一个byte或者word从主存复制到寄存器,并覆盖寄存器原来的内容。
  • store: 把一个byte或者word从寄存器复制到主存,并覆盖主存原来位置的内容。
  • operate: 把两个寄存器的内容(两个word)复制到ALU,ALU对这两个word做算术运算,并把结果存入一个寄存器中,覆盖这个寄存器之前的内容。
  • jump: 从指令本身中抽取一个字,复制到程序计数器(PC)中,覆盖PC中之前的值。
加载评论框需要科学上网