深入理解计算机系统 之 处理器读并解释存储在存储器中的指令
系统的硬件组成
总线
携带信息字节并负责哉各个部件间传递,通常被设计成传送定长的字节块,也就是字。一个字的字节数是基本的系统参数,比如4个字节(32位)。
I / O设备
通过控制器与适配器与总线相连,在I/O总线与I/O设备之间传递信息。控制器和适配器的区别是封装方式不同,控制器是置于I/O设备本身的主板上,适配器是插在主板插槽上的卡。
主存
主存是一个临时的存储设备。
从物理上说 主存由一组 动态随机存取存储器(DRAM)芯片组成
从逻辑上说 它是一个线性的字节数组,每个字节都有其唯一的地址。
处理器
CPU是 解释执行存储在主存中指令 的引擎。CPU核心是寄存器和程序计数器(PC)。任何时刻,PC都指向 主存 中的某条机器指令(就是含有该条指令的地址)。
运行hello程序
hello.c中已经被编译系统翻译成了目标文件hello并存放在磁盘上。
当我们在键盘上输入“./hello”后,shell将字符逐一读入寄存器,再放到存储器当中。
回车
shell将hello目标文件代码和数据,从磁盘复制到主存。
利用DMA可以直接从磁盘到主存。
加载到主存后,处理器执行机器语言指令,将结果字符串的字节从主存复制到寄存器文件,再从寄存器复制到显示设备。