您的位置:首页 > 健康 > 美食 > Zynq7000系列中的静态存储器控制器(SMC)简要介绍

Zynq7000系列中的静态存储器控制器(SMC)简要介绍

2024/10/6 0:32:31 来源:https://blog.csdn.net/u011565038/article/details/142326751  浏览:    关键词:Zynq7000系列中的静态存储器控制器(SMC)简要介绍

静态存储器控制器(SMC)可以用作NAND闪存控制器或支持以下存储器类型的并行端口存储器控制器:

  • NAND闪存
  • 异步SRAM
  • NOR闪存

系统总线主控器可以访问SMC控制器,如图11-1所示。SMC的操作寄存器通过APB接口进行配置。系统地址中描述了SMC的内存映射。SMC处理所有命令、地址、数据和存储设备协议。它允许用户通过读取或写入操作寄存器来访问控制器。SMC基于Arm的PL353静态存储控制器。

SMC(Static Memory Controller,静态内存控制器)的特征根据其支持的内存类型而有所不同。以下是针对NAND Flash接口和Parallel(SRAM/NOR)接口的主要特征概述:

NAND Flash接口特征

  • ONFI Specification 1.0:支持ONFI(Open NAND Flash Interface)规范1.0,这是NAND闪存设备的一个标准接口规范,旨在提供统一的接口标准和性能优化。
  • 设备容量限制:由于NAND Flash接口仅支持1位ECC(错误校正码)和一个芯片选择信号,因此其密度被限制在最多1GB。
  • IO宽度:支持8位或16位IO宽度,但仅使用一个芯片选择信号。
  • FIFOs:配备16字的读数据FIFO和16字的写数据FIFO,以及8字的命令FIFO,用于缓存数据和命令,提高数据传输效率。
  • 可编程IO周期定时:允许用户根据具体需求编程IO操作的周期定时,以适应不同速度的内存设备。
  • 1位ECC硬件与软件辅助:内置1位ECC硬件,同时提供软件辅助,以增强数据传输的可靠性。
  • 异步内存操作模式:支持异步内存操作模式,即内存设备的操作不与系统时钟同步。

Parallel(SRAM/NOR)接口特征

  • 数据总线宽度:提供8位数据总线宽度,适用于SRAM和NOR Flash等并行内存设备。
  • 芯片选择:支持单个芯片选择信号,最多可达25个地址信号(对应32MB内存),或两个芯片选择信号,每个信号最多可达25个地址(对应总共64MB内存)。
  • FIFOs:同样配备16字的读数据FIFO和16字的写数据FIFO,以及8字的命令FIFO,以提高数据传输效率。
  • 可编程I/O周期定时:允许对每个芯片选择信号进行独立的I/O周期定时编程,以适应不同配置和速度的内存设备。
  • 异步内存操作模式:与NAND Flash接口一样,Parallel接口也支持异步内存操作模式。

这些特征使得SMC能够灵活地配置和管理不同类型的内存设备,满足系统对存储性能、容量和可靠性的不同需求。在实际应用中,用户可以根据具体需求选择适当的接口模式和配置参数,以优化系统的整体性能和稳定性。

SMC的方框图

SMC的框图如图11-2所示。

互连接口

对于NOR/SRAM控制器模式,AXI接口是内存映射的,因此软件可以对内存进行读写操作。对于NAND闪存控制器模式,软件通过AXI接口向NAND控制器写入命令。

APB总线接口为软件提供了一个内存映射区域,用于读取和写入控制和状态寄存器。

内存管理器

内存管理器跟踪并控制CPU_1x时钟域状态机的当前状态。该块负责更新在存储器时钟域中使用的寄存器值,控制向存储器发出的直接命令,并通过APB接口控制低功耗模式的进入和退出。

格式

格式块在AXI从属接口和内存管理器的内存访问之间进行仲裁。来自经理的请求具有最高优先级。AR和AW渠道的请求以循环方式进行仲裁。格式块还将AXI传输映射到适当的内存传输上,并通过命令FIFO将这些传输传递到内存接口。

注意事项

7z007s单核和7z010双核CLG225设备不支持NOR/SRAM接口。8位接口支持NAND接口,但16位接口不支持。

MIO引脚1可以被编程为NOR/SRAM控制器的CS1或地址位25。该引脚也可以编程为GPIO。编程由寄存器slcr.MIO_PIN_01控制。当系统中有两个NOR器件时,将此引脚编程到CS1。当设备大于32MB时,将此引脚编程为地址位25。表11-1总结了SMC如何用于NOR/SRAM:

SMC的功能操作

启动设备

NOR和NAND闪存控制器可以配置为引导设备。其内存接口只能通过MIO路由。

时钟

SMC有两个时钟域,由CPU_1x和SMC_Ref时钟驱动,见表11-2。这些时钟由时钟发生器控制,请参阅时钟。这两个时钟域彼此异步。异步时钟的主要好处是在以固定的系统频率运行互连接口的同时,最大限度地提高内存性能。

对于电源管理,slcr寄存器中的时钟启用可用于关闭时钟。时钟门控用于停止时钟以节省电源。

Resets

控制器有两个复位输入,由复位子系统控制。此SMC CPU_1x复位用于AXI和APB接口。SMC_Ref复位用于FIFO和控制器的其余部分,包括控制和状态寄存器。

ECC支持

用户代码可以通过读取闪存设备中的制造商和设备ID来确定NAND设备是否包含片上ECC。AR50991中列出了支持的引导设备。应审查NAND设备的供应商规格,以获得ECC支持。
使用NAND中断标记片上ECC错误。

当闪存设备不支持片上ECC时,可以使用SMC控制器中的1位ECC单元。SMC控制器检测到的ECC错误用ECC中断标记。在对NAND进行编程时,如果ECC块(512字节=4096比特)中的1的数量(比特=1)是奇数,则SMC控制器会添加ECC码的反转。为了与硬件行为相匹配,如果ECC块(512字节=4096位)中的个数(位=1)为偶数,软件应添加ECC码的反转。

中断

控制器包括三个中断源。这些中断由smc控制。MEMC_STATUS寄存器。启用时,中断会向系统中断控制器发出IRQ ID#50信号。

  • NAND ECC由SMC ECC逻辑触发。
  • NAND中断在MIO上的NAND_BUSY输入引脚的上升沿触发。
  • SRAM中断在PL的EMIOSRAMINTIN信号的上升沿触发。

通过读取smc.MEMC_STATUS寄存器来确定中断的来源。

PL353功能

SMC是基于Arm的PL353 Primecell内核,并经过硬编码,使得控制器0可以在SRAM/NOR模式下运行,控制器1可以在NAND闪存模式下运行。SRAM/NOR或NAND接口可以在系统中使用,但不能同时使用。SRAM/NOR接口不支持PSRAM。NAND闪存控制器不支持损耗均衡。
在参考Arm文档时,出于编程和其他目的,请参考表11-3中的实施说明。

表11-4列出了寄存器和存储器基址。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com