内存概念理解:RANK,BANK,BURST,INTERLEAVING

embedded/2024/10/11 13:30:35/

背景:死磕内存bankrank概念的一天。网上的资料都差不多,还是有些地方没理通顺,有什么内存基础知识的书籍可以推荐吗?

物理RANK的概念

当我们给计算机购买内存条时候,上面显示的1RX8, 2RX8,其中R就是rank的意思,X8表示内存颗粒的位宽是8bit。RANK是指物理的内存条概念, 有时也称为P-RBANK(physical RANK)。

现在计算机内存总线一般是64bit,当接入如下图左边的那个内存条时候,每个黑色内存颗粒取1个8bit的数据,有8个这个的黑色内存颗粒就组成了一次总线传输所需要的64bit数据,把这8个黑色内存颗粒理解为1个RANK。2R的话表现为这个芯片正反面都有8个内存颗粒。下图是其中一个Rank的示意。

黑色内存颗粒也可以称为chip,图中每个chip的内存是128MB。每个chip上有8个bank,每个bank可以寻址的二维空间大小是16384*1024。

逻辑BANK的概念

在芯片的内部,内存的数据是以位(bit)为单位写入一张大的矩阵中,每个单元我们称为CELL,只要指定一个行(Row),再指定一个列(Column),就可以准确地定位到某个CELL,这就是内存芯片寻址的基本原理。这个阵列我们就称为内存芯片的BANK,也称之为逻辑BANK(Logical BANK)

下图中,当我们访问一个0x0-0x7地址的数据时候, 因为数据是存在不同的bank上都是(0,0)位置,所以可以通过一次内存事物请求得到。同理如果要访问地址是0x1-0x8的数据,因为0x8存在bank0中(0,1)位置,所以需要两次内存事物请求。

BURST的概念

Burst则是指对一个bank的地址矩阵,给定一个row,可以同时把col的burst_size个数一起取出来,增加取数效率。假设要取一个bank的4个数,需要给4个(row,col)组合,而burst mode情况下,只用给一个row,和burst_size=4的知识,即可取出所需的4个连续数据。

bank interleaving的概念


http://www.ppmy.cn/embedded/5500.html

相关文章

Hive基础3

一、表的分区 大数据开发数据量较大,在进行数据查询计算时,需要对数据进行拆分,提升的查询速度 1-1 单个分区 单个分区是创建单个目录 -- 创建表指定分区,对原始数据进行分区保存 create table new_tb_user(id int,name string,ag…

【Java笔记】第4章:深入学习循环结构

前言1. 循环的理解2. while循环3. do...while循环4. for循环5. 循环的控制语句6. 循环的嵌套结语 ↓ 上期回顾: 【Java笔记】第3章:深入学习分支结构 个人主页:C_GUIQU 归属专栏:【Java学习】 ↑ 前言 各位小伙伴大家好!上期小编…

ES-全文搜索

Elasticsearch学习笔记-CSDN博客 模糊查询: 写数据通过id路由到master分片 查询数据到一个节点,该节点会作为一个调度节点判断负载等情况将请求转发到真正节点(一般し轮询) 下面是乐观锁实现 跟上面的乐观锁一样

健身管理小程序|基于微信开发健身管理小程序的系统设计与实现(源码+数据库+文档)

健身管理小程序目录 基于微信开发健身管理小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 小程序端: 后台 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码…

Java基础之冒泡排序、二分查找、封装

Java基础 1.冒泡排序 public static void main(String[] args) {/*TODO 定义数组的 冒泡排序*/int[] intAr {3, 2, 1, 5, 6, 4, 2, 1, 8};bubbleSort(intAr);System.out.println(getArrStr(intAr)); }public static int[] bubbleSort(int[] intArr) {/*冒泡排序:…

专题【二分查找】刷题日记

题目列表 4. 寻找两个正序数组的中位数 33. 搜索旋转排序数组 34. 在排序数组中查找元素的第一个和最后一个位置 35. 搜索插入位置 69. x 的平方根 167. 两数之和 II - 输入有序数组 209. 长度最小的子数组 222. 完全二叉树的节点个数 287. 寻找重复数 2023.04.14 4. 寻找两…

C++进阶——继承

前言:从这篇文章开始,我们进入C进阶知识的分享,在此之前,我们需要先来回顾一个知识: C语言有三大特性,分别是封装、继承和多态,而我们前边所分享的各种容器类,迭代器等,…

设计模式学习笔记 - 开源实战三(中):剖析Google Guava中用到的设计模式

概述 上篇文章,我通过 Google Guava 这样一个优秀的开源类库,讲解了如何在业务开发中,发现跟业务无关、可以复用的通用功能模块,并将它们抽离出来,设计成独立的类库、框架或功能组件。 本章再来学习下,Go…