1. DDR多通道技术

从DDR的访存特性来说,对同一块DDR,两个访存操作之间需要一些时间间隔,这里面包括CL (CAS时延), tRCD(RAS到CAS时延),tRP(预充电有效周期)等。

为了提高DDR的访存速度,可以使用多通道(channel)技术。如果数据存储在不同通道的内存条上,内存控制器就可以并行的读取这些数据:

总带宽 = 单个内存条带宽 * 通道数

但是由于程序的局限性,一个程序并不会把数据放到各个地方,从而落入另一个DIMM里,往往程序和数据都在一个DIMM里,加上CPU的Cache本身就会把数据帮你预取出来,这个多通道对速度的提高就不那么明显了。

另外一种提高访存带宽的技术就是让同一块内存分布到不同的通道中去,这种技术叫做交织(Interleaving), 此时多通道的技术才能发挥更大的用处。

2. 内存交织

2.1 SOC各组件访问内存架构

SOC中通常有多个master经过NOC访问DDR,结构如下图:

  • master数量多,访问行为不一致
  • 包含多个DDRC(DDRC可能支持多通道技术)


内存交织的实现方式:

  • 内存交织将内存按照粒度(256B, 512B, 1KB, 2KB …)分配到不同的memory controller
  • 内存交织将内存按照粒度(256B, 512B, 1KB, 2KB …)分配到同一个memory controller的不同通道上

各组件的视角:

  • 从master视角看(该视角也是软件视角),此时看到的仍然是一块连续的内存
  • 从NOC视角看,此时一块连续的内存已经被均匀的分布到不同的memory controller(或同一个memory controller不同通道)所控制的内存中。

由于软件看到的是连续内存,故不需要关注如何高效利用DDRC,各master的内存交织由NOC统一管理。若master发出跨粒度的trans,会被NOC拆分。

内存交织的优点:

  • 统一的地址空间
  • 自动负债均衡
  • 带宽与交织的通道数成正比

内存不交织的优点:

  • 根据流量类型、功能或其他考虑因素显式地划分工作负载
  • 独立电源模式切换和/或频率变化

3. NOC实现内存交织

参考文档

  1. DDR的多通道(channel)和交织(interleave)
  2. Versal ACAP Programmable Network on Chip and Integrated Memory Controller LogiCORE IP Product Guide

memory interleaving(内存交织)相关推荐

  1. Windows Mobile使用Shared Memory(共享内存)进行IPC(进程间通信)的开发

    背景 在Unix-like系统进行IPC(Inter-process communication)通信,Shared memory是效率最高的,我称之为IPC的王中王. 简介 本文讲述在Windows ...

  2. Advanced Memory Allocation 内存分配进阶

    Advanced Memory Allocation 内存分配进阶 URL: http://blog.csdn.net/amwihihc/article/details/7481656 May 01, ...

  3. Objective -C Memory Management 内存管理 第一部分

    Objective -C Memory Management  内存管理  第一部分 Memory management is part of a more general problem in pr ...

  4. MFCButton Memory leak(内存泄露问题)

    MFCButton Memory leak(内存泄露问题) http://m.blog.csdn.net/blog/haoekin/8851219 1.无法显示右边箭头的问题 无论怎么折腾都没显示不出 ...

  5. TC297 Memory Maps 内存映射

    TC297的框图 3.Memory Maps 内存映射 TC29x CPU相关内存如下: PMU0(程序存储器单元)特点如下: -8M 程序闪存 -Data Flash Memory -User Co ...

  6. Detected memory leaks!内存泄漏,溢出,内存越界问题分析

    应用程序发生 Detected memory leaks!内存泄漏 一直程序员面对的是一个很痛苦的问题,要查出泄漏的地方有时候需要大半天甚至更长时间.这里讲讲我的一些查找内存泄漏以及避免内存泄漏的一些 ...

  7. disk cache(磁盘缓存) 和 memory cache(内存缓存)的区别

    disk cache(磁盘缓存) 和 memory cache(内存缓存)的区别 同: 都属于强缓存,现在浏览器缓存存储图像和网页等(主要在磁盘上),而你的操作系统缓存文件可能大部分在内存缓存中. 使 ...

  8. Fatal Error: Out of memory php内存溢出处理三种方法

    有时候我们在运行php程序的时候会发现 Fatal Error: Out of memory 这样的提示,这有可能是程序中用到了大量了变量和对象,导致分配的内存不够用. 修改php.ini文件里的me ...

  9. 【内存泄露】Memory Leaks 内存优化

    什么是内存泄露 内存管理一直是Java 所鼓吹的强大优点.开发者只需要简单地创建对象,而Java的垃圾收集器将会自动管理内存空间的分配和释放. 但在很多情况下,事情并不那么简单,在 Java程序中总是 ...

最新文章

  1. 地脚螺钉直径系列_百科:螺栓、螺钉、螺丝三个概念,别再傻傻分不清!
  2. 2021年中国数据中心行业发展现状与数据需求分析 互联网产业发展带来良好发展机遇...
  3. 程序员必定会爱上的10款软件
  4. linux 编译多个文件,linux gcc编译多个源文件的方法
  5. linux如何查看端口被哪个进程占用?
  6. Typora列表段落(list paragraph)的行间距
  7. 干掉 SQL 中的 like,我用 es 后运营小姐姐们都说好快!
  8. hsf 架构_HSF源码剖析
  9. 银行家算法02--申请资源 (操作系统)
  10. 梵高画作再现?努比亚AI新旗舰Z18携“地外科技”亮相
  11. 流量+安全 平安WiFi卡位入口战略
  12. TypeScript 类型兼容性整理
  13. 世界顶级企业的数据中台打造之旅
  14. Spring微服务实战第1章 欢迎迈入云世界,Spring
  15. 帝国时代3如何快速实现增加建筑/农民数量上限
  16. MySQL之between and 临界值问题
  17. 融合通讯四大关键词和三个应用场景
  18. 电脑重新分区后文件怎么恢复?流水的难题铁打的办法
  19. 基于ThinkPHP框架的学生管理系统+留言板后台管理系统
  20. 3.3 将列表[mo,deng,ge]和[1,2,3] 转换成[(mo,1),(deng,2),(ge,3)]

热门文章

  1. Android中实现截图的几种方式
  2. 静生定,定生慧,慧至从容
  3. JavaScript之取消计时器clearTimeout()
  4. c++: Logger日志信息
  5. linux eclipse插件安装,Linux 下 EclipseME 插件的安装步骤
  6. 计算机与plc通信参数,PLC与PC计算机通信
  7. HCIP之MPLS中的LDP协议
  8. 来!学逆向都想的手游防护(下篇更新破解)
  9. python全栈开发书籍推荐_想写《物联网与Python全栈开发》,哪个出版社合适
  10. MySql InnoDB与MyISAM的区别