小吴学汇编写的比较基础,针对没入门又想学习的小白比较适合。有什么问题大家留言一起探讨。写这个博客,主要还是记录自己在看书过程中,觉得比较重要的东西记录下来,然后看书遇到的问题,也会一一记录下来,大家一起探讨。
下面进入正难题,接着昨天的。
1.6存储单元
存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号,例如一个存储器有128个存储单元,编号从0~127,如图所示。
其实学过计算机组成原理的人都知道,计算机中最小信息的单位是bit(比特),也就是一个二进制数。8bit组成一个字节Byte,即8个二进制数。微型机存储的存储单元可以存储一个字节。一个存储器有128个存储单元也就是说可以存储128个字节的是数据。
其实对于微机存储器的容量是以字节最小的单位来计算,对于拥有128个存储单元的存储器来说,它的容量是128个字节。
对于大容量的存储器一般还用以下的单位来计算容量(B用来代替Byte)。
1KB = 1024B 1MB = 1024KB 1GB = 1024MB
1TB = 1024GB
1.7CPU对存储器的读写
刚才讲到。存储器被划为多个存储单元,存储单元从0开始编号。这些编号可以看做是存储单元在存储器中的地址。就像一条街,每个房子都有独特的门牌号。
CPU要从内存中读取数据,首先就要制定存储单元的地址。也就是说,要读取数据,要明确读那一个存储单元中的数据。就像在一条街上找人,要明确他在哪里。
另外,在一台微机中,不只有存储器这一种器件。CPU在读写数据时还要指明,它要对哪一个器件进行操作,进行哪种操作,是从器件里面读取数据还是向器件里面写入新的内容。
由此,我们可以得出一个结论,CPU要想进行数据的读写,必须和外部器件(标准的说法是芯片)进行下面3类信息的交互:
l 存储单元的地址(地址信息)
l 器件的选择,读或者写的命令(控制信息)
l 读或写的数据(数据信息)
在这里,相信大家都有一个疑问,CPU是通过什么将地址、数据和控制信息传导存储芯片中的呢?电子计算机能处理、传输的信息都是电信号,电信号当然是通过导线传送。在计算机中有专门连接CPU和其他芯片的导线,我们通常称之为总线。总线从物理上讲就是一根根线的集合。根据传送信息的不同,总线从逻辑上又分为3类,地址总线、控制总线和数据总线。
CPU从3号单元中读取数据的过程如下图所示
(1) CPU通过地址线将地址信息3发出
(2) CPU通过控制线发出内存读写命令,选中存储器芯片,并通知它,将要从中读取数据
(3) 存储器将3号单元中的数据8通过数据线送入CPU
写操作与读操作步骤相似,如向3号单元写入数据26
(1) CPU通过地址线将地址信息3发出
(2) CPU通过控制线发出内存写命令,选中存储器芯片,并通知它,将要从中写入数据
(3) CPU通过数据线将数据26送入内存3号单元
1.8地址总线
经过上一章,我们知道,CPU是通过地址总线来指定存储器单元的,可见地址总线上能传送多少个不同的信息,CPU就可以对多少个存储器单元进行寻址。
现在假设一下,一个CPU有10根渎职总线,让我们来看一下它的寻址情况。我们知道,在电子计算机中,一根导线可以传送的稳定状态只有两种,即高电平或者低电平。用二进制表示就是1和0,10根导线可以传送10位二进制数据。而10位二进制数据可以表示2的10次方个数据,即210个数据,最小为0,最大为1023。
下图展示了一个具有10根地址线的CPU向内存发出地址信息11时,10根地址线上传送的二进制信息。考虑一下,假设传送的不是11,是6、15等数据时,地址线上传送的数据时怎样的。
从上图我们可以看出,11的二进制是1101,因为有10根地址线,不足的补0。所以,如果传送其他二进制信息,不足10位的补0。只要不超过10根地址线的最大传输数据1023即可。还值得注意的是,数据先从低位开始发送。
1.9数据总线
CPU与内存或其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了CPU和外界的数据传送速度。8根数据总线一次可传送一个8位二进制数据(即一个字节)。16根数据总线一次可传送两个字节。
假设一个CPU1的数据总线宽度为8,一个CPU2的数据总线宽度为16。我们分别来看看它们向内存中写入89D8H时,时如何通过数据总线传送数据的。下图展示了CPU1和CPU2数据总线上的数据传送情况。
89D8=1000 1001 1101 1000
CPU2有16根数据线,可一次性传送16位数据,所以可一次性将数据89D8H;而CPU1只有8根数据线,一次只能传送8位数据,所以要分两次传送。
1.10控制总线
CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些不同控制线的集合。有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。所以,控制总线的宽度决定可CPU对外部器件的控制能力。
之前说过,内存读取或者写入是由几条控制线综合发出的,其中有一根称为“读信号输出”的控制线负责由CPU向外部传送信号,CPU向该控制线上输出低电平表示将要读取数据;有一根称为“写信号输出”的控制线则负责传送信号。
到这里,我们第一章算是完成了,还有一些零散的东西就不写出来。稍后还有有一个总结,总结一下第一章的内容。喜欢的点击右上角,关注走一波~