什么是内存BANK_内存的bank是什么_谭坤的博客-程序员秘密

技术标签: 内存  存储  

这篇文章来至“脚本之家”。

关于内存Bank的探讨 目前很多人对内存Bank(电脑系统与内存之间数据总线的基本工作单位)都有一种误解,认为单面内存就是单Bank,双面内存就是双Bank的。其实这种观念是不对的,内存的Bank(指物理Bank)数和内存颗粒的面无关,它们之间有什么联系呢?
要讲清这个问题,就要提到内存的逻辑Bank,下面就给大家介绍一下物理Bank和逻辑Bank的概念。在介绍之前,我们先简单看一下现在市场上的DRAM内存产品.现在市场上的内存主要有:SDRAM、DDR SDRAM及Rambus。其中Rambus内存的控制器和前两者不同,且内部Bank和前两者也不同,将在后面单独介绍。先主要介绍SDRAM和DDR SDRAM的Bank问题,因为SDRAM就内核、Bank结构而言,和DDR SDRAM没有什么区别,这里作为一个整体来讲。逻辑Bank及其结构内存芯片存储数据的基本单位是bit(位),而进行寻址的基本单位则是Byte(字节),一个Byte就等于8bit。大家知道,在平面坐标系中,要确定一个点就要先找到它的横坐标和纵坐标。而在内存中数据的定位也很相似,内存中的数据结构就是一个大的数据阵列,为了便于理解,我们把它假想成一个大的表格,前面我们提到的平面坐标系中的点,在这里我们可以理解为经过定位后的单元格,当然在一个单元格中不是只有1bit的数据,而是由多个bit组成一个组放在单元格内,这里一个单元格我们可以称作一个组,这个单元格的位数也就是内存逻辑Bank的位宽。在进行数据读取时,先进行行的选定,再进行列的选定,最后再从这个单元格中读取出所需要的数据。而这由许许多多的单元格组成的大表我们就可以理解成逻辑Bank,当然因为制造工艺及数据寻址的原因,不可能让这个表格无限大,一般内存芯片中都是将内存容量分成几个阵列来制造,即多逻辑Bank。随着内存芯片容量的不断增加,逻辑Bank数量也在不断增加,早期的16Mbit之类的芯片采用的还是两个逻辑Bank的设计,现阶段常见内存芯片的Bank一般为4个(不包括Rambus),这点大家可通过内存条的编码进行识别。内存芯片设计时在一个时钟周期内只允许对一个逻辑Bank进行操作(实际上内存芯片的位宽就是逻辑Bank的位宽),而不能对所有逻辑Bank同时操作。所以逻辑Bank的地址线是通用的,只要再有一个逻辑Bank编号加以区别就可以了。内存芯片的位宽决定了一次能从它那里读出多少数据,并不是内存芯片里所有单元的数据能够一次全部读出。为了加深大家对逻辑Bank的理解,我们来看看一个单芯片的逻辑Bank示意图这里不用过于注意结构细节,只需要看看4个内存阵列。从图中可以很清楚地看到这个芯片是一个Bank数为4的芯片,其列和行分别为4096和2048,而逻辑位宽是4bit,将这三者相乘就是这个逻辑Bank的容量,这里是4096×2048×4 bit =32Mb。再乘以Bank的数量,则芯片的容量就可以算出来了,这里很显然是4个Bank,那么芯片的容量就是128Mb了。用虚线框起来的就是一个完整的逻辑Bank。可见一个Bank由内存阵列、传感放大器、一个行解码器、一个列解码器组成。
物理Bank了解了逻辑Bank后,接下来我们简单看看物理Bank,物理Bank的含义就是指内存和主板北桥芯片之间传递数据的通道,自586以后的CPU数据总线均为64bit位宽,而CPU一次只能对一个物理Bank进行访问,所以一般情况下我们就把64bit作为一个物理Bank(Physical Bank),在前面我们已经讲过了逻辑Bank,所以在这里我给大家讲一下如何自己算出物理Bank,大家就会非常好理解了。由于CPU一次只能打开一个物理Bank,在单芯片上也只能打开一个逻辑Bank,这样我们就知道逻辑Bank的位宽也就是单芯片的位宽了,我们把芯片的数据宽度和芯片的数量相乘再除以64就得到了内存条的物理Bank数了,即内存的Bank数=数据宽度×芯片数量/64。现在大家初步明白了内存的物理Bank和内存的面数无关了吧?后面我还会举例说明。在大概了解了SDRAM和DDR内存的物理Bank及逻辑Bank之后。
下面我们来简单了解一下Rambus的Bank情况。Rambus的Bank为了讲解方便,下面以PC800 Rambus为例。Rambus不再采用SDRAM和DDR内存的并联技术,而是采用了更先进的串联技术。就现阶段而言,PC800 Rambus使用400MHz的16位总线,在一个时钟周期内可以在上升沿和下降沿同时传输数据,实际操作频率为400MHz×2=800MHz,理论带宽为16bit×2×400MHz/8=1.6GB/s,再配合850主板芯片的双通道模式,可以达到3.2GB/s的数据带宽。这也是大家熟知的高带宽,而它最重要的优势在于其逻辑Bank上,就现阶段的主流 Rambus来说,其逻辑Bank数高达32个,拥有更多的Bank数则意味着具有较少的Bank冲突,寻址流更加短暂随意。另外还可以提高寻址命中率和降低潜伏周期。当然,更多的Bank也使Rambus的制作模具制造更复杂,也就增加了成本。于是RAMBUS随后又推出了4i 架构的DRDRAM──在每个颗粒芯片上只有4个Bank。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011872210/article/details/50921123

智能推荐

SQL各个子句: outer join,on,where,group by,having,select case子句执行_out join放在什么子句_dongzhiquan的博客-程序员秘密

where与having1.作用的对象不同。WHERE 子句作用于表和视图,HAVING 子句作用于组(group)。eg:SELECT city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weather);2.WHERE 在分组和聚集计算之前选取输入行(因此,它控制哪些行进入聚集计算), 而

java.nio.channels.NotYetConnectedException: null_我要做个有钱人2020的博客-程序员秘密

最近在学习Java AIO操作时,出现如下异常比较奇怪的是,该异常仅仅在两个操作间隔非常短的时候,才会出现。根据调式与排查,发现问题出现在AsynchronousSocketChannel的connect方法调用上。/** * Connects this channel. * * <p> This method initiates an operat...

Walle 瓦力 web部署系统_清,纯一色的博客-程序员秘密

Walle 一个web部署系统工具,可能也是个持续发布工具,配置简单、功能完善、界面流畅、开箱即用!安装步骤:1. git clone 首先配置成功(去百度找答案) 打开git bash命令窗口执行:git clone [email protected]:meolu/walle-web.git如下为成功后结果2.切换目录cd walle-web3.配置数据库...

带你高效学习MVP+RxJava+Retrofit_北辰丶的博客-程序员秘密

引言自上次用老旧的mvc做了一个仿微信项目之后,我给自己做了一个短期的规划,先把MVP+RxJava+Retrofit这新的安卓三剑客给学了,于是,经过一个多星期的折腾,总算是对MVP+RxJava+Retrofit入了门。经过这两年的洗礼,这三门技术不断成熟稳定,得到了广大程序猿的一致认可。网上有许多优秀的文章对这三门技术进行讲解,所以,本文只作为一个学习指引,一、RxJava1、入...

dgl.DGLGraph的理解_一只迷茫的小狗的博客-程序员秘密

类形式:classdgl.DGLGraph(graph_data=None,node_frame=None,edge_frame=None,multigraph=None,readonly=False,sort_csr=False,batch_num_nodes=None,batch_num_edges=None,parent=None)是图的基类,图存储顶点,边和他们的特征。DGL图总是有向的。无向图可以通过两个有向的边来表示。节点由从零开始的连续整数标识。边可...

django rest framework如何一次性序列化同一个数据库下多个model表数据在一个json页面下_django rest post多个model数据_Z_single的博客-程序员秘密

在django项目中,首先我们要安装django-rest-mutiple-modelspip install django-rest-multiple-models然后在setting配置中配置一下APPINSTALLED_APPS = ( .... 'drf_multiple_model',)在我们的views视图函数下引入from drf_multiple_mo...

随便推点

手机端禁止手指滑动屏幕触发点击事件_guorui_cara的博客-程序员秘密

function stopTouchendPropagationAfterScroll(){ var locked = false; window.addEventListener('touchmove', function(ev){ locked || (locked = true, window.addEventListener('touchend', stopTouchen...

Poly-YOLO:更快,更精确的检测(主要解决Yolov3两大问题,附源代码)_计算机视觉研究院的博客-程序员秘密

关注并星标从此不迷路计算机视觉研究院公众号ID|ComputerVisionGzq学习群|扫码在主页获取加入方式论文地址:https://arxiv.org/pdf/2005.13243....

ErrorException: curl_setopt(): The usage of the @filename API for file uploading is deprecated._geeyeek的博客-程序员秘密

ErrorException: curl_setopt(): The usage of the @filename API for file uploading is deprecated. Please use the CURLFile class instead5.5版本及之后:new CURLFile(realpath())

【JavaScript】——正则表达式_正则表达式域名替换_Mandy_i的博客-程序员秘密

JS中刚刚接触到一个个人觉得非常新颖的东西——正则表达式。觉得 有必要总结一下。首先一张图,把正则表达式分为一下几个部分。定义——干什么用的?    正则表达式(regular expression)简写为Regex:是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。ECMAScript 的

verilog实现pwm_verilog pwm_Mr.zhang_FPGA的博客-程序员秘密

1.用verilog实现PWM控制呼吸灯。呼吸周期2秒:1秒逐渐变亮,1秒逐渐变暗。系统时钟24MHz,pwm周期1ms,精度1us。====```verilog`timescale 1ns/1psmodule pwm( input Sys_clk,//24Mhz, 42ns input Sys...

推荐文章

热门文章

相关标签