《汇编语言》读书笔记——第一章 基础知识
1.CPU对存储器的读写
过程描述:
1.CPU通过地址线 将地址信息3发出
CPU借助控制线发送内存读命令,并选择目标芯片以获取其待读数据。
3.存储器将3号单元中的数据8通过数据线 送入CPU
2.地址总线
CPU依靠地址总线来指示存储器单元的位置,在此基础之上可以看出,在地址总线上能够传输的不同信号数量直接决定了CPU能够访问多少个存储单元
现假设一个CPU有10根地址总线,看一下寻址情况。
在电子计算机内部电路设计中,在一条导线上只能存在两种稳定的电信号状态:高低两种电平状态。这种状态通过二进制编码则以数字"1"和"0"分别代表这两种情况。因此,在一条导线上我们可以明确地标识出一个独立的二进制数值位置。对于一组由十根导线构成的电路来说,在其每一位上都对应着一个独立的存储单元位置,则能够实现对十个连续的二进制信息位的有效编码与传输;在这种情况下我们就可以计算出通过这些线路所构成的信息通道能够承载的最大信息量即为2^{n}个不同的数值(其中n代表信息位的数量)。具体而言,在这种十根导线组成的系统中其理论最大承载能力即达到了2^{10}= ¹⁰²⁴个不同的离散数值范围;其中最小值为2{n-¹}$而最大值则为$(2{n}-₁)$
例如,在一个拥有十根数据传输线路的处理器中,在发送地址编码信号11的时候(或称时刻),这些地址线将传递对应的二进制数据
我们通常会认为,当一个CPU拥有N条地址线时,其地址总线宽度即为N。简言之,在这种情况下,该CPU能够寻址2^N个内存单元
3.数据总线
CPU与内存及其他设备之间的信息传递依赖于使用系统总线这一机制。系统总线的宽度直接影响着其传递速度,并且能够一次传输一个包含8位二进制信息的数据
例如,8088CPU的数据总线宽度为8,8086CPU的数据总线宽度为16
它们向内存中写入数据89D8H时:
8088CPU:
8086CPU:
4.控制总线
CPU对外部器件的控制是通过控制总线进行的。
这里的'控制总线'是一个专有名词,在计算机体系结构中被广泛使用作为一个统一的概念来描述一组功能相同的线路。这种'控制总线'由若干不同的单根控制线路构成,在'有n条'的情况下,则意味着CPU对外部设备实现了n种独立的访问权限。
因此,控制总线的宽度决定了CPU对外部器件的控制能力。
前面所讲的是内存中的read或write命令,在这些操作中涉及多条 control lines共同作用于系统。其中一条特殊的 control line被命名为"read signal output" line,它主要负责将read signal发送给外部设备,并通过向该线路输出low-level voltage来表明CPU即将执行read操作;另一条被称为"write signal output" line则专门用于发送out write signal
5.各类存储器芯片
从读写属性上可分为两类:
- 随机存储器(RAM) 具有可读性和可写性特点,在其工作状态下必须带有电容来保持数据,在电源关闭后会立即失去所存储的数据。
- 只读存储器(ROM) 则仅具有读取功能,在其加载程序时不会删除已加载的程序内容,在电源关闭时不会删除已加载的程序内容。
从功能和连接上可以分为:
- 临时存储器 :主要用于临时存放供CPU使用的大部分程序和数据。主随机存储器通常由安装在主板上的一块RAM和插入到扩展插槽中的另一块RAM构成。
- 配备基本输入输出系统(BIOS)的只读存储器(ROM) :通过它实现对硬件设备的基本输入输出功能。例如,在主板上可找到系统BIOS,在显卡上可找到显存BIOS。
- 接口卡上配置有临时存储器 :某些接口卡在运行时需要对大量输入输出数据进行暂时存取,在其上配备有临时存储器以实现这一功能。
6.内存地址空间
上述的各类存储器,在物理上是独立的期间,但有两点共性:
- 每个设备都与CPU的总线相连。
- 当CPU对其进行读取或写入操作时(即在执行读写操作时),每个设备都会通过相应的控制线发送相应的内存读取或写入命令。
这表明,在处理这些寄存器内容时,CPU会将它们视为与内存相同的实体处理对象。因此,在处理这些寄存器内容时,CPU会将它们看作由多个存储单元构成的一个逻辑运算系统。这个运算系统即为我们常说的内存地址空间。
CPU将各类存储器视为一个逻辑存储器的情况:
在图中,在图形界面中,默认情况下会显示所有用户创建的文件夹和文件,并将其视为独立于计算机系统之外的对象进行管理。
例如:
地址0~7FFFH的32KB空间为主存储器的地址空间
地址8000H~9FFFH的8KB空间为显存地址空间
地址A000H~FFFFH的24KB空间为各个ROM的地址空间
随后,CPU将在1OOG位置处填放数值。这些数值就会进入主存储器。填放数值到8OOOH的位置后,则会传送到显存区域。之后会通过显卡传递给显示器。然而这种填放操作无法完成的原因是因为C O O O H位的是只读存储器。
内存容量的空间大小受限于CPU地址总线宽度 ,举例来说,在80386 CPU架构中,默认配置下其地址总线宽度为32位时, 对应的最大内存容量可达4GB.
