这篇文章来至“脚本之家”。
关于内存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。
基于python的中文分词的实现及应用刘新亮 严姗姗(北京工商大学计算机学院,100037) 摘 要 中文分词的实现及应用属于自然语言处理范畴,完成的是中文分词在Python语言环境下的实现,以及利用这个实现的一个应用程序接口和一个中文文本处理的应用。设计共分为五个部分,分别是:分词模块、包装模块、应用程序接口、Nonsense模块,这个项目是为了下一步开放源...
增加、修改参数表do $$ beginif not exists(select * from sys_parameters WHERE productid =1 AND programid = 116001 and paramno = 92) thenINSERT INTO sys_parameters ("id", "productid", "programid", "privilege", "...
浙大版《C语言程序设计(第3版)》题目集,习题9-3 平面向量加法 (15 分)
数值微分和数值积分数值微分(1)数值差分与差商(2)数值微分的实现数值积分原理函数调用数值微分(1)数值差分与差商可以用差商近似计算导数值:(2)数值微分的实现diff() 向前差分函数dx=diff(x):计算向量x的一阶向前差分,dx[i]=x[i+1]-x[i],i=1,2,3…n-1.dx=diff(x,n):计算向量x的n阶向前差分。dx=diff(A,n,dim)...
1.1操作系统概念:I/O操作:计算机的主存和外围设备的介质之间的信息传送操作多道技术:指允许多个程序同时进入内存并运行,且它们交替在CPU中运行(针对单核)多道批处理系统:系统可以同时容纳多个作业,系统运行过程中,不允许用户与其他作业进行交互 操作系统:简单来说就是协调、管理和控制计算机硬件资源和软件资源的控制程序进程:指运行中的状态(就绪,运行,阻塞)。对于操作系...
2、Keil导入设备系列包2.1、导入芯片包详细步骤1. 下载芯片包Keil5不像Keil4那样自带了很多厂商的MCU型号,Kei5需要自己安装芯片包,例如我们用的STM32F103RET6。可以从官网下载芯片包:http://www.keil.com/dd2/pack/图 2-1 Keil官网下载包也可以直接使用Keil.STM32F1xx_DFP.2.3.0.pack,其中xx代表兼容不同版本,本芯片包可以支持我们当前所用的STM32F103系列,同时也支持其他F1系列,例如F100、F10
CSDN下载:哔哩哔哩视频:https://www.bilibili.com/vide...文件夹 PATH 列表卷序列号为 4E8D-6931C:.│ .txt│ Python数据分析与挖掘实战.pdf│├─chapter10│ │ code.py│ ││ ├─data│ │ original_data.xls│ │ test_neural_network_d...
JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。使用JFreeChart先要导入两个包jc.
今天想整理下关于HTML的先关知识。现在的业界的标准,网页技术严格的三层分离:html就是负责描述页面的语义;css负责描述页面的样式;js负责描述页面的动态效果的。所以,html不能让文字居中,不能更改文字字号、字体、颜色。因为这些都是属于样式范畴,都是css干的事儿;html不能让盒子运动起来,因为这些属性行为范畴,都是js干的事儿。html只能干一件事儿...
简介kafka可以使用java等编程语言实现topic以及消费消息,生产消息的操作,同样命令行也可以实现这些操作。Kafka的topic的增删改查对于kafka的topic操作,我们需要用到的是bin/kafka-topics.sh这个脚本文件。[email protected]:/opt/module/kafka_2.11-0.11.0.2# pwd/opt/module/kafka_2.11-0...
作者:程序猿(ID:imkuqin) 猿妹这几天,刷手机,到处都在讲佛系,佛系粉丝,佛系买家、佛系员工......简而言之,佛系就是有也行,没又也可以,不争不抢,不求输赢。那么,如果IT圈也开始追求佛系,那将会发生什么?佛系程序员面对需求:面对产品经理:面对bug:面对加薪:面对对象:面对加班:面对产品经理无理需求:关于代码:关于穿着:当公司要杀程序员“祭天”:佛系运维工程师面对宕机:佛系DBA佛
C++中构造函数的分类:(===构造函数是用来初始化数据成员的,当然不包括静态数据成员)(===无返回值)(是当对象在创建的时候系统会自动调用构造函数去初始化对象,但是如果构造函数有参数就需要在定义的时候加一个参数表)1.默认构造函数:类名();//即使自己不定义默认构造函数,系统也会自动定义一个默认构造函数,只不过此时对于数据成员的初始化是随机分配的数2.含参构造函数:类名(