读深入理解计算机系统 - 第一章 计算机系统漫游 -1.4 处理器读并解释存储在内存中的指令

1.4.1 系统的硬件组成

深入理解计算机系统1.4.1

1、 总线(BUS)

总线是整个系统的电子管道,如果把机子比作人体,那么总线就是血管(这个比喻不是很恰当,但不扣细节的话可以这么认为,原因看下文)

总线分为三部分: 总线控制器、接口、传输线(这才是真正的血管,传输线传输电流,血管传输血液)

总控制器: 把控全局,因为总线四通八达,与各个部件连接,所以必须有个掌控全局的角色.

接口: 总线与部件的连接处,由一个三态门和缓冲寄存器组成,三态门决定总线是否是要向这个组件传输数据,三个状态分别是0、1和高抗阻.

传输线: 传输电子(信号)的电导线.分为信息线,电源线,地线等.其中信息线又细分为数据总线、地址总线和控制总线.

资料: https://www.docin.com/p-936761978.html

2、I/O设备

输入设备、输出设备、磁盘设备. 每个I/O设备都通过一个控制器或者适配器与I/O总线相连.控制器是I/O设备本身或者系统的主印制电路板(主板)上的芯片组;适配器是一块插在主板插槽上的卡.

3、主存

主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据.从物理上来说,主存是由一组动态随机存储器(DRAM)芯片组成.从逻辑上来说,存储器是一个现象的字节数组,每个字节都有其唯一的地址(数组索引),这些地址是从零开始的.(现代计算机使用的是CPU、主存、辅存三级存储系统)

随机存储器(RAM):(Random Access Memory)我们不仅可以从中读取数据,而且还可以写入数据。但是机器电源关闭时,它中数据就会丢失。内存条(SIMM)就是把RAM集成块集中在一小块电路板上。

只读存储器(ROM):(Read Only Memory)它是把数据或程序永久保存在其中,不能更改,只能读取。即使机器断电,数据也不会丢失。

高级缓存(Cache,基于SRAM):它是介于CPU与内存之间,常用有一级缓存(L1)、二级缓存(L2)、三级缓存(L3)(一般存在于Intel系列)。它的读写速度比内存还快,当CPU在内存中读取或写入数据时,数据会被保存在高级缓冲存储器中,当下次访问该数据时,CPU直接读取高级缓冲存储器,而不是更慢的内存。
L1高速缓存: 容量可以达到数万字节,访问数据几乎与寄存器一样快
L2高速缓存: 容量为数十万到数百万字节,访问数据速度比L1慢5倍,但比访问内存快5~10倍.

辅助存储器又称外存储器(简称外存)。它是指除CPU缓存和计算机内存以外的存储器。

4、处理器

中央处理单元(CPU),是解释(或执行)存储在主存中指令的引擎.其构成包括PC(程序计数器)、寄存器文件、ALU(算数、逻辑单元)、总线接口.

PC: 一直都指向主存中的某条机器语言指令(实际是执行该条指令的内存地址),当一条指令执行结束或者跳转时,指令会修改PC的值使其指向下一条指令地址.

寄存器文件:一个小的存储设备,由一些单个字长的寄存器组成,每个寄存器都有唯一的名字.8个32位通用寄存器:eax,ebx,ecx,edx,ebp,esi,edi,esp(x86体系结构CPU).

ALU: 计算新的数据和地址值.

总线接口: CPU与外界相连的出入口.

下面是一些简单操作的例子,CPU在指令的要求下可能会执行这些操作:

●加载:从主存复制一个字节或者一个字到寄存器,以覆盖寄存器原来的内容。
●存储:从寄存器复制一一个字节或者一个字到主存的某个位置,以覆盖这个位置上原来的内容。
●操作:把两个寄存器的内容复制到ALU,ALU对这两个字做算术运算,并将结果存放到一个寄存器中,以覆盖该寄存器中原来的内容。
●跳转:从指令本身中抽取一个字,并将这个字复制到程序计数器(PC)中,以覆盖PC中原来的值。

1.4.2 运行hello程序

1、用户在命令行输入./shell: USB控制器接受用户输入“hello”,传入寄存器,然后由寄存器传入主存.
在这里插入图片描述
2、用户敲下回车: shell执行一系列指令加载hello文件,这些指令将hello文件内的代码从外存复制到主存中,其中包括最终输出的“hello,world\n”.
在这里插入图片描述
3、执行代码: 一旦代码被加载到主存内,处理器就开始执行hello程序的main程序中的机器语言指令.这些指令将“hello,world\n”字符串的字节从主存复制到寄存器文件,再从寄存器文件中复制到显示设备,最终显示在屏幕上.
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章