关于存储器按字节寻址和按字寻址的理解
近日在学习MOOC上学习哈工大刘宏伟老师的“计算机系统组成原理”课程,在4.1节提到主存的时候简单地提到一下关于按字节寻址和按字寻址的寻址空间问题,个人非常疑惑于是各处搜索查找资料,下面是本人就这个问题的理解,诸多不足请各位网友批评指正
对于位、字、字长、字节的理解
位(bit,简写为b):是计算机中最小的数据单位,一个位的值只可能是0或1,如四位二进制数0101。
字节(Byte,简写为B):8个二进制位构成1个字节,它是存储空间的基本计量单位。1个字节可以储存1个英文字母或者半个汉字,如11111111表示的则是一个字节,如果换成十进制则一个字节表示的数字范围为0-255,如关于二进制和十进制转换不清楚的可以自行百度,这里不做详细说明。
字长:计算机中对CPU在单位时间内(同一时间)能处理的最大二进制数的位数叫做字长。根据机器的性能不同那么不同的机器有不同的字长。如一台8位的CPU,这里的8位指的即是它的字长为8位,换句话说也就是单位时间最多处理一个长度为8位的二进制数也就是一个字节。
字(Word,简写为W):字是不同计算机系统中占据一个单独的地址(内存单元的编号)并作为一个单元(由一个或多个字节组合而成)处理的一组二进制数。8位的CPU字长为8位,一个字等于一个字节,一次只能处理一个字节,而32位的CPU字长为32位,一个字等于4个字节,一次就能处理4个字节,同理字长为64位的CPU一次可以处理8个字节,一个字等于8个字节。
看上去好像不好理解,那么这是什么意思呢?根据我个人的理解,假设有两个人A和B,他们都爱吃包子,他们约定一个时间(单位时间)一起买包子,A(8位的CPU)一顿能吃8个包子(8位即一个字节),于是他买了8个包子(一个字节)装进一个袋子(字)里;而B(32位的CPU)一顿能吃32个包子(32位即四个字节),于是他买了32个包子(四个字节)装进一个袋子里(字)。相信大家看出来了吧,同样是一袋包子,因为A和B食量不同里面装的包子数量不同,这也就是为什么同样是一个字在不同机器上的包含字节不同!地址线和数据线
地址线:用于传输地址信息,就像网线一样,内部的线缆有很多但是都封装起来了所以我们看不到,一根地址线可以通过高电平(1)或低电平(0)的电流,根据电流的不同来传输地址数据,这样就很清楚了,每1根地址线有2个状态,那么N根地址线就可以表示 2N