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. TOMCAT的域名配置
  2. 【插件开发】—— 1 Eclipse插件开发导盲
  3. OpenBSD如何挂载USB闪存盘
  4. RSS 没有死亡 而是无所不在
  5. Eclipse新建web项目正常启动tomcat不报错,但不能访问项目的解决方法
  6. 重磅开源!《30天吃掉那只 TensorFlow2.0 》(附下载)
  7. 《深入浅出DPDK》读书笔记(四):并行计算-SIMD是Single-Instruction Multiple-Data(单指令多数据)
  8. [UVa 122] Trees On the Level
  9. nginx每日日志切割脚本
  10. python的pandas行数和索引_python – 使用索引值访问Pandas Data Frame行
  11. 【软件安装】IDM安装并扩展到FireFox和Google Chrome
  12. 基于Java+SpringBoot+Thymeleaf+Mysql多用户B2C商城平台系统设计与实现
  13. android固定标题表格,Android使用TableLayout之固定表头(标题栏)
  14. 计算机考研408必考重难点整理(2022考纲大改后,陆续更新中。。)
  15. 汽车领域多语种迁移学习挑战赛-Coggle 30 Days of ML
  16. list转Tree和手动过滤TreeNode
  17. jQuery实现表格导出Excel功能
  18. 西门子官网下载Eplan部件库
  19. 2021数据库课程设计培训笔记:【JAVA】部分
  20. python枪械_Python的七种武器

热门文章

  1. Amazon Web Services: Networking AWS:网络 Lynda课程中文字幕
  2. 1198: 考试排名(二)(结构体专题)
  3. java号码分身_[算法] 电话号码分身 (小米2017 秋招真题)[JavaScript]
  4. Vue 组件封装之 Questionnaire 问卷调查
  5. 基于Redis实现查找附近的人
  6. 漏洞解决方案-远程DNS服务允许递归查询
  7. 英语感叹句的构成规则
  8. ELF可执行文件的理解
  9. 免费杀毒软件卡巴斯基安装
  10. osrmt(开源的需求管理工具)的截图