当前位置:   article > 正文

关于芯片寄存器地址的理解(字节地址,字地址)_芯片地址

芯片地址

众所周知,绝大多数芯片的寄存器地址都是以0,4,8,c结尾,那为什么是以0,4,8,c结尾呢?这个问题在我刚参加工作后的一段时间一直没太搞明白,后来才逐渐有了一定的理解。

说到这个问题又必须提到计算机中数据存储的单位,分为位,字节,字。一个位代表一个bit,一个字节代表8位。严格来讲,字在不同的计算机中大小不同,在32位机中一个字是32bit,而在64位机中一个字是64bit,但有些资料中不论CPU的位数是多少,都认为16bit为一个字。

在我们常用的地址空间中,一个地址对应一个字节,称为字节地址。但由于我们是32位的寄存器,包含4个字节,所以就对应了4个地址,称为字地址空间

那既然都是0,4,8,c结尾,地址的低两位都是0,那么这两个bit是不是就从来都是无效的呢?也不是,只是一般情况下我们的寄存器都是32位一起配置,那么这种情况下低两位是无效的,但我们如果是想在32位总线中实现字节地址空间,也就是8bit单独配置,就需要用到低两位进行32位寄存器中的字节选择。

一个典型的应用例子就是AHB协议中HSIZE[2:0]信号的使用,HSIZE信号规定了每次传输的大小,从3'b0到3'b111分别对应了8到1024的传输,如果我们的HSIZE配置成3'b0或者3'b1时,就需要根据地址的低两位判断写到32位寄存器的那个字节,这里有涉及到了大小端的问题,小端就是低地址写到地位,高地址写到高位,大端与之相反。这种操作方式在AHB中也称为窄传输

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/437695
推荐阅读
相关标签
  

闽ICP备14008679号