从零开始讲DDR(3)——DDRC与DDRPYH

一、DDR的使用

        在之前的文章中我们介绍了DDR的基本概念,但是DDR内存的操作不仅仅是简单的数据读取和写入,它包括许多时序要求和信号调度。为了让DDR内存有效运作,系统需要在逻辑层和物理层之间进行大量的协作。我们拿出一张DDR的操作简化状态图来看:

        显然对于一个DDR的使用者来说,我们不想应付这么复杂的初始化过程,这会大大增加我们的开发周期和难度,因此,最好有人可以给我们提供一个封装好的DDR操作接口,让我们只需要处理一些读写相关信号即可,芯片制造商也是这么想的,因此不同的厂商也会提供自己的解决方案,总体上,大家把DDR的操作最终设计了下图的样子:

  • MASTER(主机):其实就是我们这样的DDR使用者,我们在整个过程中扮演了对DDR内存进行操作的主设备。
  • DDRC(DDR控制器):负责处理内存访问的逻辑,管理数据的流入和流出,处理数据缓存、行开/关(Row Open/Close)、命令调度等高层逻辑操作。
  • DDRPHY(DDR物理层):则处理低层次的电信号转换和传输,确保信号在内存控制器和DDR芯片之间以高速度和稳定性传输。它还负责处理时钟、信号完整性和电源管理等。
  • DRAM:被操作的DDR内存

        其中DDRC(Dynamic Data Rate Controller)和 DDRPYH(DDR Physical Layer)通常作为一个整体的设计方案出现,它并不是由 DDR内存厂商(如三星、海力士、美光等)提供的,而是由 芯片制造商(如高通、联发科、英特尔、AMD等)在设计 SoC(片上系统) 时集成的。DDR厂商负责制造和提供DDR内存芯片本身,而 DDRC 是集成在主控芯片或处理器中的,用来管理和调节DDR内存的工作频率和带宽,DDRPHY通常由处理器或SoC制造商提供,和DDR控制器(DDRC)一起工作。DDRC负责逻辑控制和协议处理,而DDRPHY则负责底层的电信号传输。

  • DDR厂商:提供物理内存芯片,负责存储数据。
  • SoC或处理器厂商:提供DDRC,负责根据系统需求动态调整DDR内存的运行频率和性能。

        之所以要把DDRC和DDRPYH分开,主要是为了实现功能分离,提高性能和灵活性。将内存操作分为控制器和物理层有助于提高系统的整体效率和灵活性:DDRC和DDRPHY各自专注于不同层面的优化。控制器可以进行复杂的调度和内存管理策略,而物理层则可以专注于处理信号传输的速度和稳定性。这种分工让每个模块可以独立优化,从而提升整个系统的性能。另一方面,将逻辑控制和物理传输分开,允许不同厂商设计出不同的物理层和控制器,以适应不同类型的DDR内存(如DDR3、DDR4、DDR5)。通过这种模块化设计,系统设计者可以更容易地更换内存类型,保持兼容性和扩展性。

二、DDRC

        DDRC(Dynamic Data Rate Controller),主要就是起到一个对于DDR的控制的作用,负责把MASTER发送过来的命令,转换成DDR认识的命令。通俗点说,就是起到了一个翻译的作用。

        我们找两个DDRC的设计方案:

        上面的一张图中,只包含DDRC,下面的图中,左侧是DDRC,右侧是DDRPHY。我们暂时只关注DDRC的部分,可以看到,对于DDRC与MASTER之间的接口支持的是AXI接口,这对于开发者来说就非常友好了。对于DDRC与后级(也就是DDRPYH)的接口,这里用到的是DFI。其实对于使用者来说,我们也不关心这个DFI了,我们在文章的最后简单介绍一下它,这里就暂时跳过了。

        回到我们的DDRC上,这么看DDRC的功能就很清楚了,就是实现了DDR的访问通路,把用户的AXI总线信息转换成DFI给到DDRPHY,DDRPHY在给到DDR就行了。这是从宏观的角度对于DDRC功能的认知,这一个看似简单的事情又可以细分成很多的部分:

2.1 内存读写管理

        DDRC 的核心任务是管理和调度处理器对 DDR 内存的读写请求。它确保处理器发送的内存访问请求能够按照 DDR 内存的协议正确执行。

  • 读操作:DDRC 接收处理器的读取请求,调度 DDR 内存的相关行和列地址,读取数据并返回给处理器。
  • 写操作:处理器通过 DDRC 发出写入请求,DDRC 将数据写入指定的内存地址。

2.2 内存时序管理

        DDR 内存具有复杂的时序要求,例如激活(ACT)、读取(READ)、写入(WRITE)等操作都有严格的时序限制。DDRC 负责控制内存操作的时序,确保不同命令的发出、执行以及数据传输之间的延时符合内存的时序要求。

2.3 地址和数据调度

        DDR 内存控制器需要处理大量来自处理器的读写请求,并将这些逻辑地址映射到物理内存的行、列和银行地址。为了最大化内存的利用率,DDRC 会对这些请求进行调度和优化,以减少行开关和bank冲突,提高内存的访问速度。

2.4 刷新管理

        DDR 内存是基于电容存储数据的,电容会随时间流失电荷,导致数据丢失。因此,DDRC 必须定期刷新内存中的数据,以确保数据的正确性。刷新操作需要遵循一定的时序要求,同时要尽量避免影响正常的读写操作。

2.5 低功耗管理

        为了应对现代设备的功耗要求,DDRC 支持多种低功耗模式,通过动态调整内存的工作状态来降低功耗。这对于移动设备和嵌入式系统尤为重要。

2.6 错误检测与纠正(ECC)

        在一些高可靠性应用(如服务器、数据中心)中,DDRC 通常会支持 ECC(Error-Correcting Code)。这种机制能够检测和纠正内存中的单比特错误,从而提高系统的可靠性。

2.7 多通道和多端口支持

        现代系统中,内存控制器通常支持 多通道多端口,以提高内存带宽并支持多任务操作。DDRC 通过分配多个内存通道并行处理数据读写请求,提升系统的整体性能。

  • 多通道:多个内存通道可以同时处理多个数据流,从而大幅提高内存带宽。
  • 多端口:多个外设或处理器核可以同时通过 DDRC 访问内存,提升并行处理能力。

2.8 仲裁机制

        在多核处理器或多任务系统中,多个处理器核或外设会同时发出内存访问请求。DDRC 具有仲裁机制,用于合理分配资源,确保每个请求能够在公平的条件下得到处理,同时最大化带宽利用。

2.9 扩展性

        随着 DDR 技术的进步,DDRC 需要支持不同代的 DDR 标准(如 DDR3、DDR4、DDR5)以及 LPDDR(低功耗 DDR)。每代 DDR 内存的时序、命令集和数据传输速率有所不同,DDRC 通过适应这些标准,确保系统可以使用最新的内存技术。

三、DDRPHY

        我们已经知道了DDRC会把主机的AXI协议的DDR操作指令转换成DFI给到DDRPYH,那接下来就是DDRPYH的舞台了。

        DDRPHY(DDR物理层)是内存系统中的关键模块,负责在 DDR内存控制器(DDRC)与 DDR内存芯片 之间进行物理信号传输。它的主要功能包括将控制器发出的读写命令和数据转换为内存芯片能够理解的电信号,同时接收并恢复内存芯片返回的数据。此外,DDRPHY 通过 时钟同步 确保数据传输的时序准确,管理信号的完整性以减少干扰和噪声,提供 校准和训练机制 以优化数据传输延迟,确保在高频条件下系统的稳定运行。它还支持多种 低功耗模式,如自刷新和深度休眠,适用于移动设备和嵌入式系统,提升系统的功耗效率。同时,DDRPHY 能够兼容不同代的 DDR 标准,如 DDR3、DDR4、DDR5,实现对高速、高带宽内存系统的支持。

        DDRPHY 一般由多个子模块组成,它们共同完成数据的传输和校准工作。其结构通常包括:

  • 发射器(Transmitter):将来自 DDRC 的信号转化为内存芯片可识别的物理电信号,负责将命令、地址和数据发送到内存芯片。
  • 接收器(Receiver):从内存芯片中接收数据,恢复信号并传输回内存控制器。
  • 数据选通单元(Data Strobe Unit):用于生成和校准 DQS 信号,以保证数据传输的时钟同步。
  • 校准单元(Calibration Unit):负责在系统启动时对信号的时序进行校准,确保信号传输的可靠性和时序正确性。
  • 功耗管理单元(Power Management Unit):负责处理内存的低功耗模式,管理自刷新、深度睡眠等操作。

四、DFI

        DFIDDR PHY Interface)是一个标准化的接口,用于连接 DDR 内存控制器(DDRC)DDR PHY(物理层)。该接口由 DFI 协会制定,目的是为了简化和标准化内存控制器和物理层之间的通信,确保不同厂商设计的控制器和物理层可以无缝协同工作。通过 DFI,DDR 控制器和 PHY 层可以高效、灵活地协同操作,从而实现高性能的内存访问。

4.1 DFI 的主要目的和优势

  • 标准化接口:DFI 作为控制器和物理层之间的通信桥梁,确保了不同厂商设计的控制器和 PHY 模块可以互操作。这种标准化有助于减少设计复杂性,并提高不同内存解决方案的兼容性。

  • 高效数据传输:DFI 确保控制器和 PHY 层能够高效地交换数据和命令,同时处理高速时钟信号的同步。它支持 DDR2、DDR3、DDR4 和 LPDDR 等多种内存类型。

  • 低功耗设计支持:DFI 支持低功耗模式,通过该接口,控制器可以命令 PHY 进入低功耗状态,如自刷新模式或深度休眠模式。

  • 可扩展性:DFI 是可扩展的,支持最新的 DDR 内存标准(如 DDR4 和 DDR5),并为未来的内存技术提供扩展能力。

4.2 DFI 的关键模块和信号

        DFI 接口由多个模块和信号组成,涵盖了控制器与 PHY 之间的主要交互。以下是一些 DFI 的关键模块和信号:

  1. DFI 命令通道(Command Channel)

    • 控制器通过命令通道向 PHY 发送内存操作命令,如读取、写入、刷新等。
    • 命令信号包括 RAS(行选通信号)、CAS(列选通信号)、WE(写使能信号)等。
  2. DFI 地址通道(Address Channel)

    • 控制器通过地址通道向 PHY 发送内存地址信息,用于确定内存操作的目标地址。
    • 地址信号包括行地址、列地址和银行地址。
  3. DFI 数据通道(Data Channel)

    • 数据通道用于传输数据,支持读写数据操作。
    • PHY 会根据控制器的指令,从 DDR 内存中读取数据或向 DDR 内存写入数据。
  4. DFI 时钟和控制信号(Clock and Control Signals)

    • DFI 提供时钟信号和控制信号,用于控制时钟的相位对齐和命令的同步,确保控制器和 PHY 之间的操作在高频率下同步进行。
    • 包括时钟、复位等信号。
  5. 低功耗控制信号(Low Power Control Signals)

    • 该信号通道允许控制器通过 DFI 命令 PHY 进入低功耗状态,如自刷新模式或暂停模式,帮助系统降低功耗。

4.3 DFI 的工作原理

        DFI 通过定义控制器与物理层之间的标准化信号和接口规范,使 DDR 控制器与 PHY 层能够无缝协同工作。其基本工作原理如下:

  1. 控制器发送命令和地址:DDR 控制器通过 DFI 接口将内存操作命令(如读取、写入、刷新)以及相应的地址信息发送给 PHY 层。

  2. PHY 处理命令:PHY 层接收到命令后,执行相应的电信号操作,将命令转换为物理信号,完成对 DDR 内存芯片的实际读写操作。

  3. 数据传输:在读写操作中,数据通过 DFI 接口从 DDR 内存传回控制器或从控制器写入到内存。DFI 确保了数据通道的高速传输和同步。

  4. 时钟同步:DFI 还提供了时钟同步功能,确保控制器和 PHY 之间的时钟信号相位对齐,从而在高频率下维持高性能。

  5. 低功耗操作:通过 DFI 的低功耗通道,控制器可以命令 PHY 进入低功耗模式,当系统空闲时降低功耗。PHY 则根据控制器的命令进入或退出低功耗模式。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv8改进,YOLOv8 Neck结构引入BiFPN

摘要 模型效率在计算机视觉中变得越来越重要。本文系统地研究了神经网络架构设计选择用于目标检测,并提出了几项关键优化以提高效率。首先,提出了一种加权双向特征金字塔网络(BiFPN),它允许轻松快速的多尺度特征融合;其次,提出了一种复合缩放方法,该方法同时均匀地缩放…

数通。。。

通信:需要介质才能通信电话离信号塔(基站)越远,信号越弱。信号在基站之间传递。你离路由器越远,信号越差。一个意思 比如想传一张图片,这张图片就是数据载荷 网关,分割两个网络。路由器可以是网…

对接空号检测平台可以降低成本吗

空号检测主要关注的是电话号码的状态,如是否为空号、停机、关机等,它并不直接针对语音助手进行拦截。 呼叫中心系统对接空号检测确实可以在一定程度上降低成本,主要体现在以下几个方面: 1.提高接通率:空号检测能够剔除…

一文搞懂MES与MOM系统的区别

随着制造业信息化的不断发展,越来越多的企业开始引入信息化系统来提升生产效率与管理能力。在众多系统中,制造执行系统(MES)与制造运营管理(MOM)是最常见且重要的两种系统。然而,许多人对这两者…

增强现实系列—Diffusion Time-step Curriculum for One Image to 3D Generation

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

C++笔记---set和map

1. 序列式容器与关联式容器 前面我们已经接触过STL中的部分容器如:string、vector、list、deque、array、forward_list等,这些容器统称为序列式容器,因为逻辑结构为线性序列的数据结构,两个位置存储的值之间一般没有紧密的关联关…

灾难级漏洞:阿里云盘可看别人隐私照?2亿用户或面临隐私泄露隐患

此次事件将阿里云盘的数据安全问题推至风口浪尖,对其品牌信誉和市场地位构成严峻挑战。 转载:科技新知 原创 作者丨江蓠 编辑丨蕨影 阿里云盘惊现灾难级别bug! 9月14日晚,多名网友爆料称,可以在阿里云盘的相册中看到其…

三线城市的女玩家们不想“谈恋爱”,小游戏掘金新蓝海

女性玩家的游戏选项只有乙游吗? 在7月举办的微信小游戏开发者大会上,微信小游戏团队公布了一系列最新运营数据。数据显示,微信小游戏的用户规模已突破十亿大关。从用户画像来看,其年龄层主要集中在24至40岁之间,且三线…

一文读懂HPA弹性扩展自定义指标和缩放策略

一文读懂HPA弹性扩展自定义指标和缩放策略 目录 1 概念 1.1 什么是HPA1.2 HPA 的自定义指标(Custom Metrics)与扩展1.3 基于多指标的 HPA 1.3.1 工作原理1.3.2 例子:基于 CPU、内存和 QPS 的 HPA 配置 1.4 HPA 的扩缩容行为(Beh…

集合根据上下级关系转树结构

1、创建实体对象 public class TreeNode {private String id;private String pid;private String name;private List<TreeNode> children;public TreeNode(String id,String pid,String name){this.id id;this.pid pid;this.name name;}public String getId() {retur…

VBA日历进度

hi&#xff0c;大家好&#xff01; 经过两次台风的洗礼之后&#xff0c;我们这里终于开始降温了&#xff0c;终于感觉到秋天的存在了&#xff01;时间也在一天天的过去&#xff0c;马上要十一假期了&#xff0c;十一过了&#xff0c;就可以算着过年了&#xff0c;让今天就让我…

OpenAI o1的真正前世竟来自字节?ReFT技术超越传统的数学微调能力,让GPT实现进化

导语&#xff1a; 随着ChatGPT-o1的发布&#xff0c;大型语言模型在复杂推理上取得进展&#xff0c;但传统监督式微调&#xff08;SFT&#xff09;仍存在局限。字节跳动研究院提出的增强微调&#xff08;ReFT&#xff09;技术结合了SFT和PPO算法&#xff0c;旨在提升模型泛化能…

HCIP考试范围包含哪些内容?HCIP备考指南分享

在数字化浪潮汹涌的今天&#xff0c;网络技术已成为支撑现代社会高效运转的不可或缺之力。Huawei Certified ICT Professional(HCIP)认证&#xff0c;作为这一领域中的精英标识&#xff0c;正吸引着无数技术爱好者的目光。那么&#xff0c;那么要考取这一认证需要掌握哪些考试内…

Github上开源了一款AI虚拟试衣,看看效果

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 前几天我们聊过关于虚拟换装的话题&#xf…

Android RecyclerView 实现 GridView ,并实现点击效果及方向位置的显示

效果图 一、引入 implementation com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30 二、使用步骤 1.Adapter public class UnAdapter extends BaseQuickAdapter<UnBean.ResultBean, BaseViewHolder> {private int selectedPosition RecyclerView.NO_POSITIO…

CVE-2024-1112 Resource Hacker 缓冲区溢出分析

漏洞简述 CVE-2024-1112 是 Resource Hacker 软件的一个缓冲区溢出漏洞。该漏洞存在于版本 3.6.0.92 中。由于软件在处理命令行中的文件路径时未对文件字符串长度进行限制&#xff0c;过长的字符串参数导致内存被过度写入&#xff0c;从而引发缓冲区溢出。 漏洞复现 构造长度…

基于相关性分析和梯度提升的睡眠质量影响因素研究

1.项目背景 注意该数据为人工合成数据&#xff0c;结论与认知可能不符&#xff0c;仅供学习分析的方法。 睡眠质量作为人类健康的重要指标&#xff0c;受到多种复杂因素的共同影响&#xff0c;包括生理状况、生活习惯、环境因素以及心理状态等多个方面。这些因素在不同的情境…

编译内核lspcu 工具源码 util-linux

1. 获取源码 wget https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.34/util-linux-2.34.tar.xz 2. 解压 tar xvf util-linux-2.34.tar.gz cd util-linux-2.34 本次实验环境&#xff1a;使用云主机 1.查看Lscpu , dmesg ,lsblk 等版本 我们看到这些指令都是…

JSP 指令标识和脚本标识的使用

文章目录 前言一、JSP 页面是什么&#xff1f;二、JSP 基本语法 1.指令标识 &#xff08;1&#xff09;page 指令&#xff08;2&#xff09;include 指令&#xff08;3&#xff09;taglib 指令2.脚本标识总结 前言 在进行Java Web 应用开发的过程中&#xff0c;JSP 是必不可少的…