还有小梅哥和正点原子的一些资料。
Zynq上的存储器接口
所有 Zynq-7000 AP芯片上的存储器接口单元包括一个动态存储器控制器和几个 静态存储器接口模块。动态存储器控制器可以用于 DDR3、DDR3L、DDR2 和 LPDDR2。 静态存储器控制器支持一个 NAND 闪存接口、一个 Quad-SPI 闪存接口、一个并行数 据总线和并行 NOR 闪存接口 [9]。
动态存储器接口
这个多协议双数据速率 (Double Data Rate,DDR)存储器控制器包括三个主要的模块:
一个核心存储器控制器和调度器 (DDRC) 、
一个 AXI 存储器端口接口 (DDRI)和
一个数字 PHY 以及控制器 (DDRP)[3]。
DDR 存储器控制器可以被配置为 16 位或 32 位模式,能在配置为 8、16 或 32 位 的单个块的 DRAM 存储器中访问 1GB 地址空间。
也支持 EEC 存储器,但是只能以 32 位模式访问。
用 DDR3 的时候支持最大 1333Mb/s 的速度 [9]。 对 PS 和 PL 的共享存储器的共享访问是通过多端口 DDRI 来支持的,
它具有四个 AXI 从机端口来满足这个要求 [9]:
• PL 通过两个专用的 64 位端口 (AXI_HP)来访问。
• 一个 64 位端口通过 L2 cache 控制器专用于 ARM CPU。这个端口可以被配置为 低延迟。
• 所有其他 AXI 主机通过中央互联共享剩下的端口。 每个 AXI 接口配备有专用的事务 FIFO。 DDRP PHY 处理从控制器来的读 / 写请求,并在 DDR 存储器的时序约束下,把请求翻译为信号。
PHY 用控制器来的信号创建内部信号,通过数字 PHY 传递到 DDR 引 脚上。最后通过 PCB 上的走线把 DDR 引脚接到实际的 DDR 芯片上。
静态存储器接口
静态存储器控制器 (Static Memory Controller,SMC) 可以用做 NAND 闪存控 制器,或并口存储器控制器。
SMC 支持下列存储器类型 [8]:
• NAND 闪存 • NOR 闪存
• 异步 SRAM 所有的地址、命令、数据和存储器芯片协议都是由 SMC 处理的,允许用户通过 向功能寄存器读取或写入来访问这个控制器。而 SMC 的选项寄存器是通过 APB 接口 来配置的。这个 SMC 是基于 ARM PL353 静态存储器控制器的。
片上存储器 (On-Chip Memory,OCM)
片上存储器包括 256kB 的 RAM 和 128kB 的 ROM
—— 这是 BootROM 驻留的地方。
OCM 支持两个 64 位 AXI 从机接口端口
—— 一个端口专用于通过 APU SCU 的 CPU/ ACP 访问,而另一个是由 PS 和 PL 内其他所有的总线主机所共享的。
BootROM 对于用 户是不可见的,专门保留只用于引导的过程 [6]。
由于 RAM 被实现为一个双宽度的存储器(128 位),OCM 能支持 RAM 访问时高吞 吐率的 AXI 读写。为了充分利用这个 RAM 访问的高吞吐率,用户应用程序必须使用 128 位对齐的地址和偶数的 AXI 批量大小 [6]。 TrustZone 安保手段支持 4kB 的存储器块,而这个 256kB 的 RAM 可以被分割为 64 个 4kB 的块,每个可以赋予不同的安全属性。