剪不断理还乱DDR13和GDDR15全解析.docx
- 文档编号:26720818
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:31
- 大小:1.67MB
剪不断理还乱DDR13和GDDR15全解析.docx
《剪不断理还乱DDR13和GDDR15全解析.docx》由会员分享,可在线阅读,更多相关《剪不断理还乱DDR13和GDDR15全解析.docx(31页珍藏版)》请在冰豆网上搜索。
剪不断理还乱DDR13和GDDR15全解析
剪不断理还乱!
DDR1-3和GDDR1-5全解析
日期:
2009-09-02 来源:
聚龙汇论坛
编者按:
目前CPU用的内存正在从DDR2向DDR3过渡,而GPU用的显存则是以GDDR2/3为主、跳过GDDR4、直奔GDDR5而去。
或许很多朋友一时还难以接受GDDR5那夸张的频率、不明白GDDR相比DDR发展速度为何如此“超前”、甚至搞不清楚GDDR1/2/3/4/5和DDR1/2/3之间“说不清道不明”的关系。
如果您是一位求知欲很强的电脑爱好者,那么本文非常适合您,笔者特意搜集了大量官方技术文档,为大家献上内存和显存鲜为人知的奥秘……
近年来CPU(中央处理器)和GPU(图形处理器)的发展速度之快让人目不暇接,新产品的运算能力成倍提升,此时就对内存子系统提出了严峻的需求,因为CPU/GPU运算所需的数据和生成的数据都是来自于内存/显存,如果存储速度跟不上,那么就会浪费很多时间在数据等待上面,从而影响CPU/GPU的性能发挥。
为了让内存/显存不至于造成瓶颈,芯片厂商都在想方设法的提高带宽:
AMD和Intel相继将内存控制器整合在了CPU内部,大大降低了延迟并提高存储效率,Intel旗舰级CPU能够支持三通道内存,带宽提升50%;ATI和NVIDIA也先后使用了512Bit的显存控制器,总带宽倍增。
是何原因导致业界三大巨头如此大费周折呢?
这是因为内存技术的发展速度,其实并不如大家想象中的那么快,受到很多技术难题和传统因素的制约,本文就对内存和显存的发展历程及相关技术进行详细分析。
●内存的存取原理及难以逾越的频障:
在半导体科技极为发达的台湾省,内存和显存被统称为记忆体(Memory),全名是动态随机存取记忆体(DynamicRandomAccessMemory,DRAM)。
基本原理就是利用电容内存储电荷的多寡来代表0和1,这就是一个二进制位元(bit),内存的最小单位。
DRAM的存储单元结构图
DRAM的结构可谓是简单高效,每一个bit只需要一个晶体管加一个电容。
但是电容不可避免的存在漏电现象,如果电荷不足会导致数据出错,因此电容必须被周期性的刷新(预充电),这也是DRAM的一大特点。
而且电容的充放电需要一个过程,刷新频率不可能无限提升(频障),这就导致DRAM的频率很容易达到上限,即便有先进工艺的支持也收效甚微。
“上古”时代的FP/EDO内存,由于半导体工艺的限制,频率只有25MHz/50MHz,自SDR以后频率从66MHz一路飙升至133MHz,终于遇到了难以逾越的障碍。
此后所诞生的DDR1/2/3系列,它们存储单元官方频率(JEDEC制定)始终在100MHz-200MHz之间徘徊,非官方(超频)频率也顶多在250MHz左右,很难突破300MHz。
事实上高频内存的出错率很高、稳定性也得不到保证,除了超频跑简单测试外并无实际应用价值。
既然存储单元的频率(简称内核频率,也就是电容的刷新频率)不能无限提升,那么就只有在I/O(输入输出)方面做文章,通过改进I/O单元,这就诞生了DDR1/2/3、GDDR1/2/3/4/5等形形色色的内存种类,首先来详细介绍下DDR1/2/3之间的关系及特色。
通常大家所说的DDR-400、DDR2-800、DDR3-1600等,其实并非是内存的真正频率,而是业界约定俗成的等效频率,这些DDR1/2/3内存相当于老牌SDR内存运行在400MHz、800MHz、1600MHz时的带宽,因此频率看上去很夸张,其实真正的内核频率都只有200MHz而已!
内存有三种不同的频率指标,它们分别是核心频率、时钟频率和有效数据传输频率。
核心频率即为内存Cell阵列(MemoryCellArray,即内部电容)的刷新频率,它是内存的真实运行频率;时钟频率即I/OBuffer(输入/输出缓冲)的传输频率;而有效数据传输频率就是指数据传送的频率(即等效频率)。
●SDR和DDR1/2/3全系列频率对照表:
常见DDR内存频率对照表
通过上表就能非常直观的看出,近年来内存的频率虽然在成倍增长,可实际上真正存储单元的频率一直在133MHz-200MHz之间徘徊,这是因为电容的刷新频率受制于制造工艺而很难取得突破。
而每一代DDR的推出,都能够以较低的存储单元频率,实现更大的带宽,并且为将来频率和带宽的提升留下了一定的空间。
●SDR和DDR1/2/3存储原理示意图:
虽然存储单元的频率一直都没变,但内存颗粒的I/O频率却一直在增长,再加上DDR是双倍数据传输,因此内存的数据传输率可以达到核心频率的8倍之多!
通过下面的示意图就能略知一二:
那么,内存IO频率为什么能达到数倍于核心频率呢?
相信很多人都知道,DDR1/2/3内存最关键的技术就是分别采用了2/4/8bit数据预取技术(Prefetch),由此得以将带宽翻倍,与此同时I/O控制器也必须做相应的改进。
●DDR1/2/3数据预取技术原理:
预取,顾名思义就是预先/提前存取数据,也就是说在I/O控制器发出请求之前,存储单元已经事先准备好了2/4/8bit数据。
简单来说这就是把并行传输的数据转换为串行数据流,我们可以把它认为是存储单元内部的Raid/多通道技术,可以说是以电容矩阵为单位的。
内存数据预取技术示意图:
并行转串行
这种存储阵列内部的实际位宽较大,但是数据输出位宽却比较小的设计,就是所谓的数据预取技术,它可以让内存的数据传输频率倍增。
试想如果我们把一条细水管安装在粗水管之上,那么水流的喷射速度就会翻几倍。
明白了数据预取技术的原理之后,再来看看DDR1/2/3内存的定义,以及三种频率之间的关系,就豁然开朗了:
●SDRAM(SynchronousDRAM):
同步动态随机存储器
之所以被称为“同步”,因为SDR内存的存储单元频率、I/O频率及数据传输率都是相同的,比如经典的PC133,三种频率都是133MHz。
SDR在一个时钟周期内只能读/写一次,只在时钟上升期读/写数据,当同时需要读取和写入时,就得等待其中一个动作完成之后才能继续进行下一个动作。
●DDR(DoubleDateRateSDRAM):
双倍速率同步动态随机存储器
双倍是指在一个时钟周期内传输两次数据,在时钟的上升期和下降期各传输一次数据(通过差分时钟技术实现),在存储阵列频率不变的情况下,数据传输率达到了SDR的两倍,此时就需要I/O从存储阵列中预取2bit数据,因此I/O的工作频率是存储阵列频率的两倍。
DQ频率和I/O频率是相同的,因为DQ在时钟上升和下降研能传输两次数据,也是两倍于存储阵列的频率。
●DDR2(DDR2 SDRAM):
第二代双倍速率同步动态随机存储器
DDR2在DDR1的基础上,数据预取位数从2bit扩充至4bit,此时上下行同时传输数据(双倍)已经满足不了4bit预取的要求,因此I/O控制器频率必须加倍。
至此,在存储单元频率保持133-200MHz不变的情况下,DDR2的实际频率达到了266-400MHz,而(等效)数据传输率达到了533-800MHz。
●DDR3(DDR 3 SDRAM):
第三代双倍速率同步动态随机存储器
DDR3就更容易理解了,数据预取位数再次翻倍到8bit,同理I/O控制器频率也加倍。
此时,在存储单元频率保持133-200MHz不变的情况下,DDR3的实际频率达到了533-800MHz,而(等效)数据传输率高达1066-1600MHz。
综上可以看出,DDR1/2/3的发展是围绕着数据预取而进行的,同时也给I/O控制器造成了不小的压力,虽然存储单元的工作频率保持不变,但I/O频率以级数增长,我们可以看到DDR3的I/O频率已逼近1GHz大关,此时I/O频率成为了新的瓶颈,如果继续推出DDR4(注意不是GDDR4,两者完全不是同一概念,后文会有详细解释)的话,将会受到很多未知因素的制约,必须等待更先进的工艺或者新解决方案的出现才有可能延续DDR的生命。
前面介绍的是关于历代内存的技术原理,可以说是比较微观的东西,反映在宏观上,就是常见的内存颗粒及内存条了,这都是些看得见摸得着的东西,但有些概念还是不容易理解,这里一一进行说明:
●内存位宽——SDR/DDR1/2/3单条内存都是64bit
内存模组的设计取决于内存控制器(集成在北桥或者CPU内部),理论上位宽可以无限提升,但受制因素较多:
高位宽将会让芯片组变得十分复杂,对主板布线提出严格要求,内存PCB更是丝毫马虎不得,内存颗粒及芯片设计也必须作相应的调整。
可谓是牵一发而动全身,所以多年来业界都是墨守成规,维持64bit的设计不变。
相比之下,显卡作为一个整体就没有那么多的顾忌,只需重新设计GPU内部的显存控制器,然后PCB按照位宽要求布线,焊更多的显存颗粒上去就行了,虽然成本也很高但实现512bit并没有太大难度。
●多通道内存——双通道/三通道
既然实现高位宽内存条太难,那么就退而求其次,让两条内存并行传输数据,同样可以让位宽翻倍。
目前流行的双通道技术就是如此,北桥或者CPU内部整合了两个独立的64bit内存控制器,同时传输数据等效位宽就相当于128bit。
IntelNehalem核心CPU直接整合三通道内存控制器,位宽高达192bit。
但由于CPU、主板、内存方面成本都增加不少,因此在主流Lynnfield核心CPU上面又回归了双通道设计。
事实上服务器芯片组已经能够支持四通道内存,对服务器来说成本方面不是问题,只是对稳定性和容错性要求很高。
●内存颗粒位宽:
4/8/16/32bit
理论上,完全可以制造出一颗位宽为64bit的芯片来满足一条内存使用,但这种设计对技术要求很高,良品率很低导致成本无法控制,应用范围很窄。
所以内存芯片的位宽一般都很小,台式机内存颗粒的位宽最高仅16bit,常见的则是4/8bit。
这样为了组成64bit内存的需要,至少需要4颗16bit的芯片、8颗8bit的芯片或者16颗4bit的芯片。
而显卡对位宽要求很高,容量反而退居其次,所以显存颗粒的位宽普遍比内存颗粒大(这就是显存和内存主要区别之一),比如GDDR3/4/5颗粒都是32bit,4颗就能满足低端卡128bit的需要,8颗可以满足高端卡256bit的需要;而低端GDDR2颗粒为16bit,需要8颗才能组成低端卡128bit的需要。
●内存芯片的逻辑Bank
在芯片的内部,内存的数据是以bit为单位写入一张大的矩阵中,每个单元称为CELL阵列,只要指定一个行一个列,就可以准确地定位到某个CELL,这就是内存芯片寻址的基本原理。
这个阵列我们就称为内存芯片的BANK,也称之为逻辑BANK(LogicalBANK)。
不可能只做一个全容量的逻辑Bank,因为单一的逻辑Bank将会造成非常严重的寻址冲突,大幅降低内存效率。
所以大容量内存颗粒都是由多个逻辑Bank叠加而成的。
简单来说,我们可以把一个Bank看作是一片平面的矩阵纸,而内存颗粒是由多片这样的纸叠起来的。
一个Bank的位宽就是内存颗粒的位宽,内存控制器一次只允许对一个Bank进行操作,由于逻辑Bank的地址线是公用的,所以在读写时需要加一个逻辑Bank的编号,这个动作被称为片选。
●内存条的物理Bank
内存控制器的位宽必须与内存条的位宽相等,这样才能在一个时钟周期内传输所有数据,这个位宽就被成为一个物理Bank(通常是64bit),每条内存至少包含一个Bank,多数情况下拥有二个物理Bank。
一个物理Bank不会造成带宽浪费,理论上是最合理的配置,但为了实现大容量内存,单条内存多物理Bank也是允许的,但内存控制器所能允许的最大Bank数存在上限,常见的是双物理Bank设计,只有特殊内存或者服务器内存才会使用四Bank以上的设计,因为这种内存兼容性不好,“挑”芯片组。
事实上显卡上也存在双物理Bank设计,目的就是为了实现超大显存容量,比如1GB的9800GT,正反两面共有16颗16M×32bit的GDDR3显存,总位宽达512bit,实际上显存控制器只支持256bit,这样就是双物理Bank。
早在SDRAM时代,显卡上用的“显存颗粒”与内存条上的“内存颗粒”是完全相同的。
在那个时候,GPU本身的运算能力有限,对数据带宽的要求自然也不高,所以高频的SDRAM颗粒就可以满足要求。
某TNT2显卡,使用的是PC166的SDR内存颗粒
●内存满足不了显卡的需求,显存应运而生
本是同根生的状况一直持续到SDR和DDR交接的时代,其实最早用在显卡上的DDR颗粒与用在内存上的DDR颗粒仍然是一样的。
后来由于GPU特殊的需要,显存颗粒与内存颗粒开始分道扬镳,这其中包括了几方面的因素:
1.GPU需要比CPU更高的带宽。
GPU不像CPU那样有大容量二三级缓存,GPU与显存之间的数据交换远比CPU频繁,而且大多都是突发性的数据流,因此GPU比CPU更加渴望得到更高的显存带宽支持。
位宽×频率=带宽,因此提高带宽的方法就是增加位宽和提高频率,但GPU对于位宽和频率的需求还有其它的因素。
2.显卡需要高位宽的显存。
显卡PCB空间是有限的,在有限的空间内如何合理的安排显存颗粒,无论高中低端显卡都面临这个问题。
从布线、成本、性能等多种角度来看,显存都需要达到更高的位宽。
最早的显存是单颗16bit的芯片,后来升级到32bit,将来甚至还会有更高的规格出现。
而内存则没有那么多要求,多年来内存条都是64bit,所以单颗内存颗粒没必要设计成高位宽,只要提高容量就行了,所以位宽一直维持在4/8bit。
3.显卡能让显存达到更高的频率。
显存颗粒与GPU配套使用时,一般都经过专门的设计和优化,而不像内存那样有太多顾忌。
GPU的显存控制器比CPU或北桥内存控制器性能优异,而且显卡PCB可以随意的进行优化,因此显存一般都能达到更高的频率。
而内存受到内存PCB、主板走线、北桥CPU得诸多因素的限制很难冲击高频率
由此算来,显存与内存“分家”既是意料之外,又是情理之中的事情了。
为了更好地满足显卡GPU的特殊要求,一些厂商(如三星等)推出了专门为图形系统设计的高速DDR显存,称为“GraphicsDoubleDataRateDRAM”,也就是我们现在常见的GDDR。
●GDDR——显存和内存正式分家
GDDR作为第一代专用的显存芯片,其实在技术方面与DDR没有任何区别,同样采用了2bit预取技术,理论频率GDDR并不比DDR高多少。
不过后期改进工艺的GDDR有了优秀PCB的显卡支持之后,GDDR显存最高冲刺至900MHz,而DDR内存只能达到600MHz左右,显存和内存的差距从此逐渐拉开。
∙TSOP封装的GDDR16bit:
8M×16Bit4.0nsTSOPII封装的GDDR,单颗16MB,理论频率500MHz
当年9550、FX5700等128Bit中端卡需要搭配8颗才能组成128Bit
TSOP封装的GDDR颗粒,外观规格特性都与DDR内存颗粒没有什么区别,所以在很多人看来“GDDR”与“DDR”是可以“划等号”的。
其实两者还是有些差别:
∙GDDR采用4K循环32ms的刷新周期,而DDR采用8K循环64ms的刷新周期;
∙GDDR为了追求频率在延迟方面放的更宽一些,毕竟GPU对延迟不太敏感;
∙GDDR颗粒的容量小、位宽大,一般是8×16Bit(16MB)的规格,而DDR颗粒的容量大、位宽小,虽然也有16Bit的颗粒,但最常见的还是8Bit和4Bit,单颗容量32MB或64MB。
为了实现更大的位宽,并进一步提升GDDR的性能,后期很多厂商改用了电气性能更好的MBGA封装,当然也有内存颗粒使用MBGA封装,但规格已有了较大差异,主要是颗粒位宽不同。
∙MBGA封装的GDDR32bit:
4M×32Bit2.2nsMBGA封装的GDDR,单颗16MB,理论频率900MHz
8颗组成128MB256Bit规格,是GDDR1最后的辉煌
MBGA封装GDDR的单颗位宽首次达到了32Bit,从此就标志着GDDR与DDR正式分道扬镳,32Bit的规格被GDDR2/3/4/5一直沿用至今。
GDDR显存的这两种封装:
MBGA与TSOP构成的高低配,曾一度一统显卡市场。
虽然GDDR已经退出历史舞台,但32Bit主攻中高端、16Bit主攻低端的局面,时至今日依然得到了延续。
●GDDR2第一版:
短命的早产儿高压高发热
GDDR2源于DDR2技术,也就是采用了4Bit预取,相比DDR1代可以将频率翻倍。
虽然技术原理相同,但GDDR2要比DDR2早了将近两年时间,首次支持DDR2内存的915P主板于2004年中发布,而首次搭载GDDR2显存的FX5800Ultra于2003年初发布,但早产儿往往是短命的。
NVIDIA在设计NV30芯片时依然保持128Bit显存位宽,为了提高带宽必须使用高频显存,700MHz的GDDR已经无法满足需求了,于是冒险尝试GDDR2。
第一代GDDR2受制造工艺限制,电压规格还是和DDR/GDDR一样的2.5V,虽然勉强将频率提升至1GHz左右,但功耗发热出奇的大。
4M×32Bit2.0nsMBGA144Ball封装的GDDR2,单颗16MB,理论频率1000MHz
GDDR2第一版只有2.2ns和2.0ns两种速度
GDDR2第一版只在FX5800/Ultra和FX5600Ultra这三款显卡上出现过(也包括对应的专业卡及个别非公版显卡),ATI也有极少数9800Pro使用了GDDR2。
高电压、高发热、高功耗、高成本给人的印象非常差。
随着FX5900改用GDDR及256Bit,GDDR2很快被人遗忘。
FX5800Ultra需要为显存专门安装厚重的散热片
GDDR2失败的主要原因是NVIDIAGeForceFX系列架构和性能的问题,之后即便改用了256Bit高频GDDR(此时GDDR的频率已被提升至850-900MHz,直逼GDDR2),FX5950Ultra依然不是9800XT的对手。
当然GDDR2自身规格的不完善也造成了它无法入住中低端显卡,被时代所遗弃。
GDDR2虽然坏毛病一大堆,但它也拥有一些新的特性,比如首次使用片内终结电阻,PCB设计比GDDR更加简洁,这个特性被后来的gDDR2和GDDR3继承。
●gDDR2第二版:
统一低端显卡永远的配角
由于第一代GDDR2的失败,高端显卡的显存是直接从GDDR跳至GDDR3的,但GDDR2并未消亡,而是开始转型。
几大DRAM大厂有针对性的对GDDR2的规格和特性做了更改(说白了就是DDR2的显存版),由此gDDR2第二版正式登上显卡舞台,时至今日依然活跃在低端显卡之上。
gDDR2第二版相对于第一版的改进主要有:
∙工作电压从2.5V降至1.8V,功耗发热大降;
∙制造工艺有所进步,功耗发热进一步下降,成本降低,同时良率和容量有所提升;
∙颗粒位宽从32Bit降至16Bit,只适合低端显卡使用;
∙封装形式从144BallMBGA改为84BallFBGA,外观上来看从正方形变成长方形或者长条形;
各大厂商均有gDDR2颗粒
由于电压的下降,第二代gDDR2的频率要比第一代GDDR2低,主要以2.5ns(800MHz)和2.2ns(900MHz)的规格为主,当然也有2.8ns(700MHz)的型号。
直到后期制造工艺上去之后,第二代gDDR2才以1.8V电压突破了1000MHz,最高可达1200MHz,赶超了第一代高压GDDR2的记录。
采用gDDR2显存的经典显卡有:
7300GT、7600GS、X1600Pro、8500GT……一大堆低端显卡。
注意三星官方网站对于显存的分类
相信很多朋友也注意到了,本页gDDR2的第一个字母为小写,几大DRAM厂商在其官方网站和PDF中就都是这么写的,以示区分。
我们可以这么认为:
大写G表示显卡专用,32bit定位高端的版本;而小写g表示为显卡优化,16bit定位低端的版本,本质上与内存颗粒并无区别。
事实上,GDDR3和gDDR3之间也是这种关系,稍后我们会做详细介绍。
GDDR源于DDR,GDDR2源于DDR2,而GDDR3在频率方面的表现又与DDR3比较相似,于是很多人认为GDDR3就是显存版的DDR3,这可是个天大的误区。
●GDDR3:
一代王者GDDR3源于DDR2技术
无论GDDR还是GDDR2,由于在技术方面与DDR/DDR2并无太大差别,因此最终在频率方面GDDR并不比DDR高太多。
在经历了GDDR2的失败之后,两大图形巨头NVIDIA和ATI对JEDEC组织慢如蜗牛般的标准制订流程感到越来越失望,认为他们制定的显存不能适应GPU快节奏的产品更新换代周期,于是NVIDIA和ATI的工作人员积极参与到了JEDEC组织当中,以加速显存标准的起草及制定。
双方一致认为,显存与内存在数据存储的应用方面完全不同,在内存核心频率(电容刷新频率)无法提升的情况下,单纯提高I/O频率来获得高带宽很不现实。
因此,必须要有一种针对高速点对点环境而重新定义的I/O接口。
于是GDDR3诞生了,这是第一款真正完全为GPU设计的存储器。
GDDR3和GDDR2/DDR2一样,都是4Bit预取架构,GDDR3主要针对GDDR2高功耗高发热的缺点进行改进,并提升传输效率来缓解高延迟的负面影响。
∙点对点DQS,读写无需等待
GDDR2只有一条数据选择脉冲(DQS),是单一双向的,而GDDR3则拥有读与写两条独立的DQS,而且是点对点设计。
这样做的好处在于,在读取之后如果马上进行写入时,不必再等DQS的方向转变,由此实现读写操作的快速切换。
相比GDDR2/DDR2,GDDR3的读写切换动作可以少一个时钟周期,如果需要对某一个连续的区块同时读写数据时,GDDR3的速度就要比GDDR2快一倍。
由于存储单元自身的特性,内存颗粒的逻辑Bank是无法同时读写数据的,并不存在“全双工”一说,但GDDR3的这项改进让顺序读写成为可能。
GPU本身缓存很小,与显存之间的数据交换极其频繁,读写操作穿插进行,因此GDDR3点对点设计的DQS可以让显存存储效率大增。
但对于CPU来说,读写切换并不如GPU那么频繁,而且CPU拥有大容量的二三级缓存,所以GDDR3这种设计并不能极大的提升内存带宽,也没有引入到下一代DDR3当中。
∙改
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 不断 理还乱 DDR13 GDDR15 解析
![提示](https://static.bdocx.com/images/bang_tan.gif)