基于龙芯2k1000 mips架构ddr调试心得(二)

1、内存控制器概述

龙芯处理器内部集成的内存控制器的设计遵守 DDR2/3 SDRAM 的行业标准
(JESD79-2 和 JESD79-3)。在龙芯处理器中,所实现的所有内存读/写操作都遵守 JESD79-2B 及 JESD79-3 的规定。龙芯处理器支持最大 4 个 CS(由 4 个 DDR2 SDRAM 片选信号实现,即两个双面内存条),一共含有 19 位的地址总线(即: 16 位的行列地址总线和 3 位的逻辑 Bank 总线)。龙芯处理器在具体选择使用不同内存芯片类型时,可以调整 DDR2/3 控制器参数设置进行支持。其中,支持的最大片选(CS_n)数为 4,行地址(RAS_n)数为 16,列地址(CAS_n)数为 15,逻辑体选择(BANK_n)数为 3。CPU 发送的内存请求物理地址可以根据控制器内部不同的配置进行多种不同的地址映射。龙芯处理器所集成的内存控制电路只接受来自处理器或者外部设备的内存读/写请求,在所有的内存读/写操作中,内存控制电路处于从设备状态( SlaveState)。
龙芯处理器中内存控制器具有如下特征:

#接口上命令、读写数据全流水操作

内存命令合并、排序提高整体带宽

#配置寄存器读写端口,可以修改内存设备的基本参数

#内建动态延迟补偿电路(DCC),用于数据的可靠发送和接收

#ECC 功能可以对数据通路上的 1 位和 2 位错误进行检测,并能对对 1 位错误进行自动纠错

#支持 133-800MHZ 工作频率

2、龙芯内存控制器结构

龙芯内存控制器主要结构图如上图所示,主要模块包括:

streambuffer:用于内存数据预取,以降低内存访问延时、提升内存带宽; command scheduler: 基于优化的调度策略,对接收到的访存命令重排序,以降低访存冲突,提升内存带宽。timing control: 该模块主要按照 JEDEC 协议的要求处理内存接口的时序,以保证访问内存的命令不会违反协议。PHY interface: 该模块主要处理内存接口的信号。内存训练相关的控制、 内存读写信号的时序处理以及输出驱动能力的调整、阻抗匹配这些功能都通过该模块实现。

configure manager: 管理内存控制器所有的配置寄存器,也是硬件与软件的接口。

3、龙芯内存控制器 PHY 结构

PHY 主要结构图如图 2 -2所示,主要模块包括:
Dll master:DLL 主控模块,用于计算一个时钟周期内延时单元个数;
Command control:控制发给内存的命令、地址及控制信号,同时实现 2T/3T
功能;
Clock control:控制发送到内存的时钟信号,为了便于调试,实现了内存时钟
信号的任意相位调整功能;
Dataslice: 数据控制模块,用于实现内存要求的 DQ-DQS 关系以及 PAD 输
出使能的控制等功能。
Datagather:用于收集读返回数据并送给上层逻辑电路。

相关推荐
Jia ming17 小时前
SRAM与DDR地址为何不同?
ddr·sram
Jia ming1 天前
SRAM与DDR映射:MMU如何工作
mmu·ddr·sram
大熊背4 天前
ISP 节点 DDR 读写位置图
ddr·isp pipeline
s09071365 天前
Xilinx FPGA ISERDES 使用详细介绍
fpga开发·xilinx·ddr·iserdes
【ql君】qlexcel2 个月前
DDR学习笔记1
学习·ddr
赖small强2 个月前
【Linux驱动开发】DDR 内存架构与 Linux 平台工作机制深度解析
linux·驱动开发·ddr·sdram·ddr controller
数字IC那些事儿3 个月前
DDR5 DFE(Decision Feedback Equalizer)
芯片·ddr·phy·内存控制器
数字IC那些事儿3 个月前
DDR5与DDR4差异
芯片·ddr·内存控制器
brave and determined3 个月前
硬件-内存学习DAY20——GDDR6革命:显存技术如何重塑游戏与AI未来
嵌入式硬件·ddr·ddr4·ddr5·ddr6·内存原理·内存技术
FPGA_小田老师3 个月前
《FPGA系统:总线接口及Xilinx IP核》专栏导览:从基础到架构的顿悟
fifo·pcie·ddr·通信接口·fpga系统架构·xilinx ip核·数据总线