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

您所在的位置:网站首页 4k字节是几字节组成的 关于芯片寄存器地址的理解(字节地址,字地址)

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

2024-07-14 18:57| 来源: 网络整理| 查看: 265

众所周知,绝大多数芯片的寄存器地址都是以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中也称为窄传输



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3