跳转至

第十章、ARM存储器接口及AMBA总线⚓︎

约 937 个字 预计阅读时间 5 分钟

Chapter1、ARM存储器接口⚓︎

时钟与时钟控制⚓︎

  • MCLK - 输入:处理器工作的时钟
  • nWAIT - 输入(等待时钟,用于照顾系统中最慢的路径,如rom):在ARM内部与MCLK相与;必须在MCLK为低的相位阶段改变;容许该信号从一个周期扩展到另一个周期,延长总线访问周期
  • ECLK - 输出:核心逻辑的时钟的输出。在正常和调试状态下反映内部时钟
  • ph1 & ph2 - 内部信号:双相位非覆盖的内部时钟;处理器内部工作周期

数据总线⚓︎

  • 32位双向/单向(由BUSENO/1决定);
  • 字节、半字、字访问;
  • 读数据必须有效且稳定到相位2结束,写数据在相位1改变,保持稳定贯穿相位2地址总线
  • 32位(4G字节)寻址能力
  • 默认时序:在前一周期的相位2阶段变为有效,保持稳定贯穿当前周期的相位1阶段;流水线地址
  • 地址时序可以通过APE(或ALE)移位。

周期类型(由nMREQ和SEQ决定,提前一个周期建立)⚓︎

  • 非连续(N):在接下来的周期中的地址与前一个地址无关。如:对于基于DRAM的系统的初始的行访问
  • 连续(S):在接下来的周期中的地址与前一个地址一样或大一个操作数(字或半字)
  • 内部(I):处理器正在执行一个内部操作,同时,没有有用的预取执行,即:处理器将在下一个周期执行内部操作。不驱动数据总线,驱动地址总线。如:乘操作、寄存器特定的移位操作、从存储器加载数据之后的回写操作
  • 协处理器寄存器传送(C):处理器和协处理器之间通讯,不涉及存储器访问,但D[31:0]用于传送数据
  • 合并的内部连续(IS):I和S周期的特殊组合,容许优化存储器访问可以在内部周期期间启动对地址位置的访问,在连续(S)周期期间,访问可以结束可以驱动数据总线,从而中间不需要设置等待

Chapter2、AMBA 总线⚓︎

在 AMBA 总线规范中,定义了 3 种总线:

  • AHB(Advanced High-performance Bus):用于高性能系统模块的连接,支持突发模式数据传输和事务分割;可以有效地连接处理器、片上和片外存储器,支持流水线操作
  • ASB(Advanced System Bus):也用于高性能系统模块的连接,支持突发数据数据传送模式,由 AHB 总线替代
  • APB(Advanced Peripheral Bus):用于较低性能外设的简单连接,一般是接在 AHB 或 ASB 系统总线上的第二级总线。

图例: - ARM core/CPU - on-chip RAM - test i/f ctrl - external bus interface - DMA controller - bridge - UART - timer - parallel i/f

AHB 总线和 ASB 总线有下列不同的特点: - AHB 总线支持分时处理 - 使用单一时钟沿控制所有操作,有利于综合和设计验证 - 使用中心多路器总线方案,而不是三态驱动的双向总线 - 支持更宽的 64 位或 128 位数据总线配置

AHB 总线包括: 主单元(可以任何时刻使用总线,一或多个),从单元(响应并反馈),仲裁器,译码器

AHB 工作过程: - 地址传送阶段:一个时钟周期,所有从单元在 HCLK 采地址 - 数据传送阶段:一到多个时钟周期,HREADY 低传输,高的时候结束

APB 组成: - APB 桥:唯一的主单元,是 AHB/ASB 的从单元,连接 APB 和 ASB/AHB - APB 从单元