以下内容仅为个人理解,如有错误,还请各位大佬批评指正。
———————————————————————————————————————————
首先捋清楚一个概念。
按字节编址,不仅可以进行按字节寻址,也可以进行按字寻址;
按字编址只能进行按字寻址,是不可以进行按字节编址的(电路设计使然。)
所以凡是遇见对一个存储器进行按字节寻址的,那么默认这个存储芯片就是按字节编址的。
清楚了以上概念之后,我们再来说说按字节编址和按字编址的电路。
在按字节编址的电路中,其会空出几根地址线来表示字中字节的地址,而剩下的根数则表示字的容量。比如 1k*32bit 按字节编址的话,会有32/8 = 2^2,即2根地址线表示其中的字节地址,而剩下的10根地址线来表示字的容量。其总共有12根地址线。
而在按字编址的电路中,则没有空出的地址线来表示字中字节的地址,全部的地址线会用来表示容量。比如 1k*32bit 中共有10根地址线。
清楚了以上的内容之后,再来说说按字节寻址和按字寻址。
在上述按字节编址的1k*32bit的情况中,按字节寻址的范围就是 0-2^12-1,而按字寻址就是0-2^10-1。
在上述的按字编址的1k*32bit的情况中,按字寻址的范围就是0-2^10-1。
看完了上面的内容,我们可以就可以避免以下的误区:并不是按字寻址导致了需要多余的地址线来表示字内字节的地址,而是因为按字节编址的电路就是这样设计的。如果存储器是按字节编址的,那其在按字寻址的时候,就需要减去供区分字节使用的地址线,用剩下的地址线来寻址,而之所以要减去,是因为按字