song 4年前提问
0
AHB & APB相关问题
  1. The arbiter indicates that the current transfer is part of a locked
    sequence by asserting the HMASTLOCK.

The signals indicate if the transfer is:
. an opcode fetch or data access
. a privileged mode access or user mode access.

1) hprot是动态调的,还是tie死的,比如访问存放code的ram时,是否因为是opcode fetch,HPORT[0]就接0?

2)可以举Normal Memory,Device Memory,Strongly-ordered memory 具体例子吗?

访问这些memory时,用户需要根据memory的情况把master prot相关信号的bufferable, cacheable tie成相应值?

3) AHB slave对上述hprot应作何反应/处理?

  1. AHB传输中wrap何种场景需要? 软件code如何发起wrap操作?

  2. AHB-Lite 针对单个master而设计是什么意思呢?
    AHB-Lite协议是整个AHB协议的子集,只支持一个总线主设备,不需要总线仲裁器及相应的总线请求/授权协议
    AHB-Lite系统中,经常可以看到多master的情形。

  3. 如何理解AHB是基于transfer的,AXI是基于burst的?

  4. APB读或写操作,假设为APB2,无pready。
    有的习惯用第一拍,有的习惯用第二拍decode读、写,两种方式对于不同的总线架构都是适用的吗?

问题有点杂,望不吝指教!

被浏览 :  517
收起
( 0 ) 评论
Jim 4年前回复
0

1.1. 从CPU的角度来说,CPU会根据MPU(Memory Protection unit) 软件对memory属性的配置,决定hprot的值,当然一些memory region在某些CPU看来,memory的属性是固定的,所以CPU对这些memory region访问的时候,hprot是固定死的。比如对于ARM Cortex-M系列处理器来说,如果从rom里面取指令的话,这时候hprot是固定成cachable, bufferable,opcode fetch, 因为指令是normal memory 数据;

如果从非CPU的角度来说的话,比如DMA,这时候需要AHB master通过寄存器去配置HPROT的这个信号。

1.2. 一般存在SRAM, ROM, DDR等memory里面的数据都是normal memory
device memory是指对它的访问,能够对系统有一定的影响,最典型的案例就是memory controller中data registers, 对此寄存器的写操作,可以先把数据放到写buffer里面,然后马上给cpu回response,不用等到memory controller给response。对data registers的读操作,很可能两次读操作得到的不同的值。

Stronglyed memory比device memory 更严格,比如 pll 的clock enable寄存器,cpu对这个寄存器的访问一定要等到这个访问生效了之后,cpu才能往下执行指令,否则clock没打开运行指令就会出错,所以它是non-cacheable, non-bufferable

1.3 AHB slave对于strongly-ordered memory要确保写操作一定生效了才给response,对于device和strongly-ordered memory 访问的AHB burst, slave不能合并和拆分再写到对应的地址空间。对于normal memory,不需要特别处理。

  1. wrap只有在cache line fill 的时候才会用到。这个跟软件没有关系

  2. AHB-lite的协议没有对仲裁器进行相关定义,但是Full-AHB的协议里面却定义了仲裁。因为Full-AHB是针对多个master设计的,就是多个master需要共享一组AHB bus信号,而AHB-lite是针对单个master设计的bus协议,一个master需要一组AHB bus信号,多个master需要多组AHB bus信号

  3. 理解两个概念,一个transaction, 一个是transfer。一个transaction可以是一个burst,或者单个transfer。每个burst里面的每一笔数据叫做transfer。比如inc4就是由4个transfer组成。这个概念对AHB和AXI是没有区别的

  4. 这个问题不是很清楚,你可以看下课程APB章节

添加评论
我的答案
提交答案