按字寻址和按字节寻址的区别

问题背景:

新人在考研的路上奔走,当在学习哈工大刘宏伟老师教授的计算机组成原理课程的时候,学到4.1节的时候提到的关于按字寻址和按字节寻址时,我就比较懵了,于是开始查询资料,然后总结理解,希望前辈们看见的时候能够给出自己的看法,不足的地方请各位前辈们多多指教。

按字寻址和按字节寻址的区别_第1张图片

 

自己的理解:

  字长度为8的整数倍,如32位包含4个字节、16位包含两个字节。

  字长=字节地址*8,如上图(大端、大尾方式):字长=4*8=32位(bit)

  地址线需留出2根来区分四个字节的位置(几根需要看字节地址的个数,这个地方是4)。按字节寻址的话,则不需要留出地址线来分区了,因为就一个字节。

 

什么是位、字节、字、KB、MB?

  1、位(bit) 来自英文bit,音译为“比特”,表示二进制位。位是计算机内部数据储存的最小单位,11010100是一个8位二进制数。

    2、字节 (byte) 字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。 字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。八位二进制数最小为00000000,最大为11111111;通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码。

    3、字 计算机进行数据处理时,一次存取、加工和传送的数据长度称为字(word)。一个字通常由一个或多个(一般是字节的整数位)字节构成。例如286微机的字由2个字节组成,它的字长为16;486微机的字由4个字节组成,它的字长为32位机。 计算机的字长决定了其CPU一次操作处理实际位数的多少,由此可见计算机的字长越大,其性能越优越。

         4、KB:在一般的计量单位中,通常K表示1000。例如:1公里= 1000米,经常被写为1km;1公斤=1000克,写为1kg。同样K在二进制中也有类似的含义。只是这时K表示1024,也就是2的10次 方。1KB表示1K个Byte,也就是1024个字节。

    5、MB:计量单位中的M(兆)是10的6次方,见到M自然想起要在该数值的后边续上六个0,即扩大一百万倍。在二进制中,MB也表示到了百万级的数量级,但1MB不正好等于1000000字节,而是1048576字节,即 1MB = 2E+20 Bytes = 1048576Bytes。

    MB就是通常说的兆

    KB 1KB=1024B

    MB 1MB=1024KB

  • 地址线和数据线 
    地址线:用于传输地址信息,就像网线一样,内部的线缆有很多但是都封装起来了所以我们看不到,一根地址线可以通过高电平(1)或低电平(0)的电流,根据电流的不同来传输地址数据,这样就很清楚了,每1根地址线有2个状态,那么N根地址线就可以表示2N2N个不同状态,这些不同的状态即可以用来表示不同的地址。 
    数据线:用于传输数据,可以简单的理解为字长为16位的计算机的数据线有16根,因为单位时间内最多传输16位二进制数,所以16根数据线每根都要变换高低电平来输出0或1。

例:一个16K×32位的主,其地址线和数据线的总和是?

答:首先看后面的32位,这个说明该的字长为32个字节即有32根数据线。然后看到前面16K,这个是什么意思呢?这里的16K就是寻址范围(即寻址空间),简单说这里的寻址范围就是我上面提到的地址线表示的状态,那么根据题意一共有16K个不同状态,那么需要多少根地址线呢? 16K=16*210=24210=214N线2N210=24∗210=214,上面说了有N根地址线就有2N个状态,所以地址线为14根。那么总和为32+14=46根。怎么样?是不是感觉简单了很多呢?

    GB 1GB=1024MB

 


按字节寻址和按字寻址

终于回到正题上了,首先我们讲讲什么叫寻址,寻址就是寻找地址,当CPU请求数据的时候就会对进行读数据的请求。假设我们有一块硬盘,那么硬盘在接收到请求之后就开始查找这个CPU需求的数据具体是放在哪呢?实际上,硬盘上储存的所有数据都有一个自己的地址,在物理上实现是通过磁头在盘片上定位数据的一个过程。不同存储器计算机这两个有什么区别呢?下面我们从三个例题来入手:

  • 例1:设有一台机器有24根地址线,按字节寻址,求其寻址范围。 
    解:如果按照字节寻址,就是一个地址线表示的数(即状态)对应一个字节的地址。由此可以得到地址的范围(即状态总和)就是224224,即2^24Bit=16M。那么寻址的范围就是16MB,注意单位是MB,地址的范围表示的仅仅是数量值,而按字节寻址的范围其单位则为容量单位,自然要带上字节B。 
  • 例2:设有一台机器有24根地址线,其字长为16位,按字寻址,求其寻址范围。 
    解:字里面封装了字节,为了确保每个字节或者说每个数据都有自己的一个编号,那么需要牺牲一部分地址线来实现。16位字长的机器,每个字表示2个字节,用1位地址线就能区分出来,这边可以类比成“每个袋子装了两个包子,而我现在只给袋子编号,那么你想要找到袋子里面的包子到底是第一个还是第二个就必须在拿出一位的0和1来表示第一个还是第二个包子”。由此表示字地址的数据线位数就只剩下了24-1=23位了。所以寻址的范围就变成了2^23MW,即4MW了。 
  • 例3:设有一台机器有24根地址线,其字长为32位,按字寻址,求其寻址范围。 
    这个问题就留给后来的读者思考吧,想通了的话其实也很简单! 

你可能感兴趣的:(按字寻址和按字节寻址的区别)