【ARM CoreLink 系列 6 -- DMC-400控制器简介】

2023-10-09 08:36

本文主要是介绍【ARM CoreLink 系列 6 -- DMC-400控制器简介】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1.1 DMC-400 简介
      • 1.1.1 DFI(DDR PHY Interface)
      • 1.1.2 DFI 接口组
      • 1.1.3 DMC-400 兼容协议
      • 1.1.4 DMC-400 特性
      • 1.1.5 DMC-400 Interface

1.1 DMC-400 简介

DMC-400是一个由ARM开发、测试和授权的动态内存控制器,同时 DMC-400也是一个符合高级微控制器总线结构(AMBA)的片上系统(SoC)外设。它是一个高性能、区域优化的内存控制器,与 AMBA ACE-Lite 协议兼容。

它支持以下内存设备:

  • 双倍数据速率2(DDR2)同步动态随机存取存储器(SDRAM);

  • 低功耗双倍数据速率2(LPDDR2)-S2 SDRAM;

  • LPDDR2-S4 SDRAM;

  • 双倍数据速率3(DDR3)SDRAM;

  • 低电压 DDR3 SDRAM。

下面是 DMC-400 系统连接示例图:
在这里插入图片描述

DMC-400 实现了 SoC 和芯片外部 DRAM 设备之间的数据传输。它通过一个或多个 ACE-Lite 接口连接到片上系统。它通过其存储器接口块和 DFI 接口 连接到 DRAM 设备。

1.1.1 DFI(DDR PHY Interface)

现代电子系统设计中,经常将DDR内存接口分成内存控制逻辑(MC,Memory Controller)和物理层接口(PHY,Physical Interface)两个部分。这两个部分侧重点不同,往往需要不同的设计技巧和设计经验。

随着IP(intellectual property)厂商的发展,越来越多的工程师选择在设计中采用第三方的IP核,来加速项目进度。这就带了问题,由于MC和PHY两部分的设计者往往并不相同,为了能够实现两者之间的标准互联,需要一种 MC 与 PHY 之间的标准通信接口。而DFI就是这样的一种规范。DFI标准的提出旨在定义一个MC与PHY之间的通用接口,以提高独立模块(IP核等)的复用率,进而降低成本,缩减项目周期。

一般来说,DRAM 是一个焊接在 PCB 上的独立芯片,CPU 向 MC 发出读写命令时,其中的地址使用的是逻辑地址,MC 再将逻辑地址转换为物理地址后向 PHY 发出,MC 与 PHY 之间采用标准化接口 DFI 进行通信,PHY 将 MC 的命令转换为具体的底层信号,驱动 DRAM 的物理 IO 接口。

1.1.2 DFI 接口组

DFI 接口组共有:

  • Command(发送地址命令),
  • write data,
  • read data,
  • updata(请求更新,启动dfi总线idle),
  • status(系统初始化,Feature支持与否, mc给到dram的时钟有效性),
  • phy master(phy 请求控制dfi总线,发起主动能力),
  • Disconnect(传输过程中允许握手打断),
  • error(事务中的错误信息传递给MC),
  • 2N mode(将dram的传输速度减速),
  • Low Power Control(PHY 进入低功耗功能),
  • MC TO PHY MESSAGE(将定义的信息内容从mc传递到phy),
  • WCK Control(控制DRAM 用的WCK时钟开关是否toggle, 以及 同步计时功能)。

DFI 中定义的信号,都是由寄存器配置完,在时钟上升沿驱动起来的。dfi bus上执行命令的时候, 相关时序参数必须一致保持。必要的时候, 比如 频率改变, bus 执行到 idle状态等, 时序参数也可改变。

1.1.3 DMC-400 兼容协议

它实现了与以下协议的兼容:

  • ACE-Lite协议;

  • AMBA3 APB协议;

  • JEDEC LPDDR2 JESD209-2标准;

  • JEDEC DDR3 JESD79-3D标准;

  • JEDEC DDR2 JESD79-2E标准;

  • DFI v2.1.1规范。

1.1.4 DMC-400 特性

DMC-400有以下特性:

  • 可在 Verilog 中使用的软宏单元;

  • 可配置的硬件,支持面积和性能优化;

  • 多个ACE-Lite系统接口;

  • 多个未完成的交易;

  • 系统服务质量(QoS)和请求仲裁,以实现低延迟传输和内存带宽的最佳利用;

  • 对交易障碍的保护;

  • ACE-Lite系统接口的可配置位宽;

  • 独立的读接受能力和写接受能力

  • AMBA ACE-Lite独占访问传输

  • ACE-Lite和APB接口之间的同步 n:1 时钟连接;

  • 多个内存接口(multiple memory interfaces);

  • 优化使用外部存储器总线(optimal use of the external memory bus);

  • DRAM省电(DRAM power saving);

  • 可编程的外部存储器宽度(programmable external memory width);

  • 每个内存接口的可配置的内存芯片选择数量;

  • 用于64位和32位SDRAM的内存纠错码(ECC);

  • 使用 DFI 2.1.1接口的物理层(PHY)接口。

1.1.5 DMC-400 Interface

The DMC-400 provides the following interfaces:
• APB3 interface
• ACE-Lite interface
• PHY interface
• Clocks and resets
• Debug and profile interface
• Hardware power control interface(s)
在这里插入图片描述

推荐阅读
https://zhuanlan.zhihu.com/p/514892042

这篇关于【ARM CoreLink 系列 6 -- DMC-400控制器简介】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/171639

相关文章

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

详解如何在SpringBoot控制器中处理用户数据

《详解如何在SpringBoot控制器中处理用户数据》在SpringBoot应用开发中,控制器(Controller)扮演着至关重要的角色,它负责接收用户请求、处理数据并返回响应,本文将深入浅出地讲解... 目录一、获取请求参数1.1 获取查询参数1.2 获取路径参数二、处理表单提交2.1 处理表单数据三、

rust 中的 EBNF简介举例

《rust中的EBNF简介举例》:本文主要介绍rust中的EBNF简介举例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 什么是 EBNF?2. 核心概念3. EBNF 语法符号详解4. 如何阅读 EBNF 规则5. 示例示例 1:简单的电子邮件地址

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin