Zynq7000系列FPGA中的DDR内存控制器

DDR内存控制器是一个高度集成的组件,支持多种DDR内存类型(DDR2、DDR3、DDR3L、LPDDR2),并通过精心设计的架构来优化内存访问效率。

DDR内存控制器架构

  • AXI内存端口接口(DDRI):该部分负责处理与多个AXI主设备之间的通信。通过四个64位的同步AXI接口,DDRI能够同时服务多个AXI主设备,每个接口都配备了专用的交易FIFO,以确保数据的高效传输和缓存。

  • 核心控制器与事务调度器(DDRC):DDRC是DDR内存控制器的核心,它包含两个32条目的内容可寻址存储器(CAMs),用于执行DDR数据服务调度,以最大化DDR内存的效率。此外,它还提供了低延迟的飞线通道(fly-by channel),允许直接访问DDR内存而无需经过CAM,从而进一步减少延迟。

  • 数字PHY控制器(DDRP):DDRP负责处理来自控制器的读写请求,并将这些请求转换为符合目标DDR内存时序约束的特定信号。这些信号通过数字PHY连接到DDR引脚,最终与DDR设备通过PCB信号迹线直接相连。

访问机制

  • AXI端口分配:系统通过DDRI的四个64位AXI内存端口访问DDR内存。其中,一个端口专用于CPU和ACP的L2缓存,两个端口专用于AXI_HP接口,第四个端口则由AXI互连上的所有其他主设备共享。

  • 仲裁机制:DDRI负责仲裁来自八个端口(四个读端口和四个写端口)的请求。仲裁器基于请求的等待时间、请求的紧急程度以及请求是否与前一个请求在同一页面内等因素来选择请求,并将其传递给DDR控制器和事务调度器(DDRC)。

  • 读写流程:读写请求通过DDRC的单一接口传递。读请求包括一个标签字段,该字段与从DDR返回的数据一起返回,以便于数据的匹配和确认。DDR控制器PHY(DDRP)则负责驱动DDR事务的完成。

整个DDR内存控制器通过精心设计的接口和调度机制,实现了对多种DDR内存类型的支持,并优化了内存访问的效率和性能。无论是通过AXI接口的并行处理能力,还是通过DDRC和DDRP的精细调度和物理层处理,都确保了系统能够高效、可靠地访问DDR内存。

DDRI

DDR Controller System Interface (DDRI) 是一个关键组件,它连接了处理器或主设备与DDR内存系统,提供了高效、灵活的数据传输和控制机制。以下是DDRI的一些核心特性详解:

  • 四个相同的64位AXI端口:DDRI提供了四个独立的64位AXI端口,每个端口都支持INCR(递增)和WRAP(回环)两种突发类型。这使得系统能够同时处理来自多个主设备的读写请求,提高了数据传输的并行性和效率。

  • 独立的读写端口和32位寻址:每个64位AXI接口都包含独立的读写端口,这有助于优化数据传输流程,减少冲突。同时,使用32位寻址允许访问大量的内存地址空间。

  • 写数据字节使能支持:对于每个数据节拍(beat),DDRI支持写数据字节使能(write data byte enable),这意味着可以仅更新数据总线上的特定字节,而不是整个数据字,从而提高了写操作的灵活性和效率。

  • 复杂的仲裁方案:为了防止数据饥饿(即某些主设备长时间无法获得访问权),DDRI采用了复杂的仲裁方案。这些方案可以根据请求的优先级、等待时间等因素来公平地分配访问权。

  • 低延迟路径:DDRI提供了一个低延迟路径,使用紧急位(urgent bit)来绕过仲裁逻辑,允许高优先级的请求快速获得访问权。

  • 深度读写命令接受能力:DDRI具有深度读写命令队列,能够同时接受并处理多个读写命令,提高了系统的吞吐量和响应速度。

  • 乱序读数据返回:对于来自不同主设备ID的请求,DDRI可以乱序返回读数据。这有助于优化数据传输流程,减少等待时间。

  • 九位AXI ID信号:所有端口上的AXI ID信号均为九位,这允许系统支持更多的主设备,提高了系统的可扩展性。

  • 灵活的突发长度和大小:DDRI支持从1到16个数据节拍的突发长度,以及1、2、4、8字节每节拍的突发大小。这提供了灵活的数据传输选项,以适应不同的应用场景。

  • 不支持锁定访问:DDRI不支持从任何AXI端口发起锁定访问(locked accesses),这有助于简化系统设计并减少潜在的冲突。

  • 低延迟读机制:通过使用HPR(高优先级读)队列,DDRI实现了低延迟读机制,可以更快地响应高优先级读请求。

  • 特殊紧急信号:DDRI向每个端口发送特殊紧急信号,以便在需要时快速响应高优先级请求。

  • TrustZone区域可编程:DDRI支持在64MB边界上编程TrustZone区域,这有助于实现安全分区,保护敏感数据不被未授权访问。

  • 独占访问:对于每个端口,DDRI支持两个不同ID的独占访问。然而,需要注意的是,不支持跨不同端口的独占访问,且不支持锁定事务。

这些特性共同构成了DDRI的强大功能,使得DDR内存系统能够高效地支持各种复杂的应用场景。

DDRP

DDR Controller PHY (DDRP) 是DDR内存控制器中的物理层接口,它负责处理与DDR内存模块之间的物理信号传输。DDRP 的特性直接关系到内存访问的速度、稳定性和效率。以下是DDRP的一些关键特性:

  • 兼容多种DDR I/O电压:DDRP支持多种DDR接口电压标准,包括1.2V的LPDDR2、1.8V的DDR2、以及1.5V的DDR3和1.35V的DDR3L。这种兼容性使得DDRP能够适配不同版本的DDR内存,增强了系统的灵活性和扩展性。

  • 可选的16位和32位数据总线宽度:DDRP支持配置为16位或32位的数据总线宽度。这种灵活性允许系统设计者根据具体的性能需求和内存容量来选择合适的总线宽度,以达到最佳的系统性能。

  • 可选的ECC在16位数据宽度配置中:在16位数据宽度配置下,DDRP支持可选的错误检查与纠正(ECC)功能。ECC能够检测并纠正数据传输中的错误,提高数据的完整性和可靠性。

  • 软件控制的自刷新进入和命令到达时的自动退出:DDRP支持通过软件命令进入自刷新模式,以在不需要访问内存时降低功耗。当新的命令到达时,DDRP会自动退出自刷新模式,准备处理新的内存访问请求。

  • 基于可编程空闲周期的自主DDR掉电进入和退出:DDRP能够根据预设的空闲周期自动进入和退出DDR掉电模式。这种自主管理功能有助于进一步降低系统功耗,特别是在系统负载较低时。

  • 数据读选通(strobe)自动校准:为了确保数据传输的准确性和稳定性,DDRP支持数据读选通自动校准功能。该功能能够自动调整读选通信号的相位和时序,以匹配数据信号的边缘,从而减少数据传输中的错误和失真。

这些特性共同构成了DDRP的强大功能,使得DDR内存控制器能够高效地与DDR内存模块进行通信,确保数据的快速、准确和可靠传输。通过优化DDRP的配置和使用,可以显著提高系统的整体性能和稳定性。

DDRC

DDR Controller Core and Transaction Scheduler (DDRC) 是DDR控制器中的核心组件,它主要负责管理内存事务的调度和执行,以确保数据的高效传输和访问。

  • 高效的事务调度以优化数据带宽和延迟

DDRC通过智能地调度内存访问请求,使得数据能够在CPU、图形处理器或其他系统组件之间高效传输。它能够识别并优先处理高优先级或紧急的数据传输请求,从而最大化数据带宽的利用率。通过精细控制事务的执行顺序和时间,DDRC能够减少数据访问的延迟。它可以根据系统的实时需求动态调整调度策略,确保关键数据的快速访问。

  • 先进的重排序引擎以最大化内存访问效率

对于连续读写操作,DDRC的重排序引擎能够识别并重新排列内存访问请求,以减少DRAM的页面切换和激活延迟。这通过减少不必要的DRAM操作来提高整体访问效率。

对于随机读写操作,DDRC能够利用重排序引擎来合并相邻的内存访问请求,从而减少内存总线的负载并提高访问效率。这种优化对于处理来自多个处理器或系统组件的随机访问请求尤为重要。

  • 读写地址冲突检测以避免数据损坏

DDRC在调度内存访问请求时,会检查读写地址是否存在冲突。如果发现冲突(即同一地址在同一时间被不同的读写请求访问),它会暂停或重新调度相关请求,以避免数据损坏或不一致性。除了地址冲突检测外,DDRC还可能包含其他保护机制,如错误纠正码(ECC)等,以确保数据的完整性和可靠性。

  • 遵守AXI排序规则

DDRC通常与AXI总线接口紧密集成,以支持高级别的数据传输和控制。它必须遵守AXI协议的排序规则,以确保不同主设备之间的数据访问顺序一致性和正确性。

在AXI协议中,事务ID(Transaction ID)用于标识和跟踪内存访问请求。DDRC需要管理这些事务ID,以确保它们按照正确的顺序被处理和返回给请求者。

综上所述,DDRC及其交易调度器是DDR控制器中的关键组件,它们通过高效的事务调度、先进的重排序引擎、读写地址冲突检测以及遵守AXI排序规则等特性,确保了数据的高效传输和访问。这些特性对于提高系统性能、降低延迟和保护数据完整性至关重要。

方框图

DDR内存控制器的框图如下图所示。DDR内存控制器由一个仲裁器、一个带有事务调度器的内核和DDR内存信号的物理排序组成。

控制器核心和事务调度器中包含两个32条目的CAMs(内容可寻址存储器),用于执行DDR数据服务重排序。这种重排序机制旨在最大化DDR内存访问的效率,特别是对于连续读写和随机读写操作。通过重新排列内存访问请求的顺序,可以减少DRAM的页面切换和激活延迟,从而提高整体性能。除了通过CAM进行重排序外,该控制器还包含一个Fly-by通道,允许某些内存访问请求绕过CAM进行低延迟访问。这对于需要快速响应的关键任务特别有用,因为它们可以更快地访问DDR内存而无需等待CAM的重排序过程。

PHY(物理层)负责处理来自控制器的读写请求,并将这些请求转换为符合目标DDR内存时序约束的特定信号。这些信号包括时钟信号、命令信号、地址信号和数据信号等,它们共同构成了DDR内存操作的完整序列。PHY使用来自控制器的信号来产生内部信号,这些内部信号通过PHY连接到PS的焊盘(pads)。这些焊盘直接通过PCB信号迹线连接到外部内存设备,从而实现DDR内存与处理器系统之间的物理连接。

仲裁器负责跨四个AXI端口进行仲裁,以确定哪个端口可以访问DDR核心。仲裁是基于优先级的,允许系统根据当前的任务需求和资源利用率来动态调整各个端口的访问权限。此外,仲裁器还支持通过紧急机制来提升某些任务的优先级,以确保关键任务能够及时获得DDR内存的访问权限。

注意事项:

  • 通常情况下,CLG225系列设备支持32位和16位两种数据总线宽度选项。这意味着大多数CLG225设备可以根据系统需求配置为使用32位或16位的数据总线,以适应不同的数据传输速率和带宽要求。

  • 然而,对于7z007s单核心和7z010双核心这两款特定的CLG225设备,它们的数据总线宽度支持受到了限制。这两款设备仅支持16位数据总线宽度,而不支持32位数据总线。这意味着在设计和使用这两款设备时,需要特别注意它们的数据传输能力和系统接口兼容性,确保它们能够与其他系统组件正确协作。

AXI的互联系统

该系统在处理器与DDR内存之间提供高效的数据传输。这里详细说明了AXI_HP(高性能)接口、DDR内存端口仲裁器、互联开关、QoS(服务质量)信号以及L2缓存的连接和配置方式。

  • AXI_HP接口:有四个AXI_HP接口,它们被成对复用,并连接到图10-2中所示的端口2和端口3。这些端口通常配置为高带宽流量使用,以支持大量数据的快速传输。

  • DDR内存端口仲裁器:从这四个AXI_HP接口到DDR内存的路径包括DDR内存端口仲裁器上的两个端口。互联开关负责在这两个端口之间进行双向仲裁,以决定何时允许哪一侧进行数据传输。

  • 读/写通道分离:在互联系统中,读和写通道是分开操作的,这意味着它们可以独立地管理数据的读取和写入,从而提高数据传输的效率。

  • QoS(服务质量)仲裁:互联桥接器中的仲裁受到来自每个PL接口的QoS信号的影响。具有更高QoS值的请求者会被互联桥接器优先处理。这种基于优先级的仲裁机制确保了关键任务或高优先级的数据传输能够优先进行。

  • LRG方案:在QoS值相同的情况下,即出现优先级相同的情况时,会使用LRG(可能是指某种负载均衡或随机选择)方案来打破这种平局,确保公平性和系统的稳定性。

  • L2缓存:L2缓存连接到端口0,并用于服务CPU和PL的ACP(加速器一致性端口)接口。这个端口通常配置为低延迟,以快速响应CPU和ACP的数据请求。

  • 其他AXI主设备:AXI互联上的其他主设备(如其他处理器或外设)连接到端口1,这些设备通过AXI互联与DDR内存、L2缓存等资源进行通信。

总的来说,这个互联系统通过高效的仲裁机制、QoS支持和缓存技术,为处理器和DDR内存之间提供了高性能、低延迟的数据传输路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/871933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

雷赛运动控制卡编程(2)限位设定与回原方式、脉冲模式设置

一、限位开关及急停开关的设置 限位开关的设置 //设置限位开关// dmc_set_el_modeushort _cardNo0;ushort _axisNo 0;ushort _enable 1; // 正负限位使能 ushort _elLogic 0; // 正负限位 低电平 有效ushort _model 0;// 正负限位停止方式为立即停止LTDMC.dmc_set_el_m…

构建实用的NLP应用程序:重塑人类与计算机的协同工作方式

文章目录 一、NLP技术的核心价值二、构建实用NLP应用程序的关键步骤三、NLP应用程序在协同工作中的创新应用《赠ChatGPT中文范例的自然语言处理入门书》编辑推荐内容简介作者简介精彩书评目录前言/序言获取方式 在数字化时代,自然语言处理(NLP&#xff0…

手机数据恢复:适用于 Android 的 4 大数据恢复应用程序

没有人希望丢失设备上的重要数据。如果发生这种情况,请不要惊慌。以下是可帮助您恢复丢失或删除的数据的 Android 数据恢复应用程序列表。 有多种方法可以恢复已删除或丢失的 Android 数据,最简单、最快捷的方法是使用第三方恢复应用程序。这些应用程序会…

Transformer模型:Postion Embedding实现

前言 这是对上一篇WordEmbedding的续篇PositionEmbedding。 视频链接:19、Transformer模型Encoder原理精讲及其PyTorch逐行实现_哔哩哔哩_bilibili 上一篇链接:Transformer模型:WordEmbedding实现-CSDN博客 正文 先回顾一下原论文中对Posit…

[Windows] 号称最快免费小巧的远程桌面 AnyDesk v8.0.11单文件版

描述 对于经常在互联网上进行操作的学生,白领等! 一款好用的软件总是能得心应手,事半功倍。 今天给大家带了一款高科技软件 虽然 QQ 拥有远程协助功能,但很多时候连接并不够流畅,而且被控电脑那方也必须要有人操作才行…

电脑关机被阻止

1. winR输入regedit进入注册表 2. 选择HKEY_USERS-》.DEFAULT-》Control Panel-》Desktop 3. 右键DeskTop新建字符串值,命名为AutoEndTasks,数值设置为1

C++中链表的底层迭代器实现

大家都知道在C的学习中迭代器是必不可少的,今天我们学习的是C中的链表的底层迭代器的实现,首先我们应该先知道链表的底层迭代器和顺序表的底层迭代器在实现上有什么区别,为什么顺序表的底层迭代器更加容易实现,而链表的底层迭代器…

不会编程怎么办?量化交易不会编程可以使用吗?

量化交易使用计算机模型程序代替人工进行交易,一般需要投资者自己编写程序建模,然后回测无误之后再进行实盘交易,那么不会编程的投资者能使用量化软件进行量化交易吗? 不会编程使用量化软件有两种方法 一种是请人代写代码&#x…

Java软件设计模式-单例设计模式

目录 1.软件设计模式的概念 2.设计模式分类 2.1 创建型模式 2.2 结构型模式 2.3 行为型模式 3.单例设计模式 3.1 单例模式的结构 3.2 单例模式的实现 3.2.1 饿汉式-方式1(静态变量方式) 3.2.2 懒汉式-方式1(线程不安全) 3.…

办公灯多普勒雷达模组感应开关,飞睿智能24G毫米波雷达超低功耗uA级,节能LED灯新搭档

在科技日新月异的今天,节能、环保已经成为我们生活和工作中不可或缺的一部分。作为新时代的办公人,我们不仅要追求高效的工作方式,更要关注我们所使用的设备是否足够环保、节能。今天,我们就来聊聊一个令人兴奋的创新——飞睿智能…

如何30分钟下载完368G的Android系统源码?

如何30分钟下载完368G的Android系统源码? Android系统开发的一个痛点问题就是Android系统源码庞大,小则100G,大则,三四百G。如标题所言,本文介绍通过局域网高速网速下载源码的方法。 制作源码mirror 从源码git服务器A&#xff0c…

推荐系统:从协同过滤到深度学习

目录 一、协同过滤(Collaborative Filtering, CF)1. 基于用户的协同过滤2. 基于物品的协同过滤 二、深度学习在推荐系统中的应用1. 深度学习模型的优势2. 深度学习在推荐系统中的应用实例 三、总结与展望 推荐系统是现代信息处理和传播中不可或缺的技术&…

【话题】破茧而出:打破AI“信息茧房”,捍卫信息自由与多样性

目录 AI发展下的伦理挑战,应当如何应对? 方向一:构建可靠的AI隐私保护机制 方向二:确保AI算法的公正性和透明度 方向三:管控深度伪造技术 AI发展下的伦理挑战,应当如何应对? 在人工智能&…

Tita的OKR:高端制造行业的OKR案例

高端设备制造行业的发展趋势: 产业规模持续扩大:在高技术制造业方面,航空、航天器及设备制造业、电子工业专用设备制造等保持较快增长。新能源汽车保持产销双增,新材料新产品生产也高速增长。 标志性装备不断突破:例如…

Flink Window 窗口【更新中】

Flink Window 窗口 在Flink流式计算中,最重要的转换就是窗口转换Window,在DataStream转换图中,可以发现处处都可以对DataStream进行窗口Window计算。 窗口(window)就是从 Streaming 到 Batch 的一个桥梁。窗口将无界流…

系统架构师考点--软件工程(上)

大家好。今天我来总结一下软件工程的相关考点。这部分是考试的重点。在上午场客观题、下午场案例题以及下午场论文都有可能考到,在上午场客观题中大约占12-15分左右。 一、软件工程概述 软件开发生命周期 软件定义时期:包括可行性研究和详细需求分析过…

uniapp打包成Android时,使用uni.chooseLocation在App端显示的地址列表是空白?一直转圈的解决办法

问题描述: uniapp打包后的测试版app在ios里可以显示高德地图的定位列表,但是安卓手机却不显示定位列表,一直在转圈圈,怎么回事?之前的功能在正式版都能用,真机运行也能用,为什么测试版的安卓手…

ADC性能规格--动态性能

所有真正的ADC都有额外的噪声源和失真过程,会降低性能。 动态性能规范报告了ADC动态行为中的这些缺陷,包括总谐波失真(THD)、信噪比加失真(SND)、信号噪声比(SNR)和无杂散动态范围&a…

Study--Oracle-07-ASM自动存储管理(二)

一、ASM安装准备条件 1、ASM支持存储类型 本地祼设备(本地的磁盘和分区) 网络附加存储(NAS) 存储区域网络(SAN) 2、ASM使用本地裸设备,要点: 已经被挂载到操作系统上或者已经做了分区 映射裸设备为文件名 设置正确的权限(针对grid用户和asmadmin组,权限为660) 二、OR…

【CUDA】CUDA中缓存机制对计时的影响

笔者在阅读知乎上一个关于CUDA编程的专栏时,发现作者写的很多文章中都会附带计时的模块用于评估程序的运行效率,然而笔者发现,在运行这篇文章中的代码时时,得到的结果和作者的结果有较大差异,主要体现在:使…