棋子 · 2019年12月18日

AHB WRAP地址边界?

//forums.arm.com。AMBA规范(v2.0)仅显示hsize = 2(字)时地址如何包装。是否因为每种WRAP4,WRAP8和WRAP16情况的地址边界都相同?还是应该基于hsize重新计算环绕边界?

例如,我从规范知道HSIZE = 2和WRAP4将通过这样的地址序列
为0x4 - 0x8中-位于0xC -为0x0

然后,不HSIZE = 1(半字)和WRAP4,意味着序列应
为0x4 -为0x6 - 0x8中-0xA(使用4个字边界)

0x4-0x6-0x0-0x2(使用4个半字边界)?

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2019年12月18日

裹边界取决于两个水平尺寸和节拍的否(4,8,16)。

  根据规范“ [color =”#0000FF“]对于包装突发,如果传输的起始地址未与

突发中的字节总数对齐(大小为x个节拍),则
突发中的传输地址到达边界时将换行[/ color]”。

让我采取您分析过的相同方案。

[color =“#0000FF”]情况1:起始地址为0x4,Wrap4,Hsize为2。[/ color] 0000 0100-beat1-0x4

             0000 1000-beat2-0x8
             0000 1100-beat3-0xc
             0000 0000-beat4-0x0
       这里Hsize为2,表示要传输4个字节。
       由于它是Wrap4,因此节拍数为4。
       字节总数为16(节拍数*高字节数)。
       因此要进行4位对齐。
       在beat3中,地址为00001100。由于Hsize为2,地址将增加4。0000
                                  1100
                                +0000 0100
                                ------------------------ -
                                  0001 0000 --->它跨越地址边界(4位)。

    因此,我们将其对齐到0000 0000。
                             
[color =“#0000FF”]情况2:起始地址为0x4,Wrap4,Hsize为1。[/ color]               
             0000 0100-beat1-0x4
             0000 0110-beat2-0x6
             0000 0000-beat3-0x0
             0000 0010-beat4-0x2
       此处由于Hsize为1,这意味着要传输2个字节。
       由于是Wrap4,因此节拍数为4。
       字节总数为8(节拍数* Hsize字节数)。
       因此要进行3位对齐。
       在beat2中,地址为00000110。现在,由于Hsize为1,地址将递增2。0000
                                  0 110
                                +0000 0010
                                -------------------------
                                  0000 1 000 --->跨越地址边界(3位)。

    因此,我们将其与0000 0000对齐。-beat3

[color =“#0000FF”]情况3:起始地址为0x4,Wrap8,Hsize为1。[/ color]
             0000 0100-beat1-0x4
             0000 0110-beat2-0x6
             0000 1000 -节拍3-0x8
             0000 1010-节拍4-0xa
             0000 1100-节拍5-0xc
             0000 1110-节拍6-0xe
             0000 0000-节拍7-0x0
             0000 0010-节拍8-0x2

     这里Hsize为1,表示要传输2个字节。
       因为是Wrap8,所以节拍数为8。
       字节总数为16(节拍数* Hsize字节数)。
       因此要进行4位对齐。
       在beat6中,地址为00001110。现在,由于Hsize为1,地址将递增2。0000
                                  1110
                                +0000 0010
                                ------------------------ -
                                  0001 0000 --->它跨越地址边界(4位)。

    因此,我们将其对齐到0000 0000.-beat7。

因此地址的包装取决于Hsize和节拍数。

你的回答