VideoCard 板


LINE

1. 1bit DRAM 1bit DRAM由一个电晶体以及一个电容器组成. Bitline | | +---| |--- VCC | | | | [---] --+-- | RowLine 利用电晶体控制线路是否与电容相接. 接着以电容内的电位高低(有无电荷) 决定这个bit内容是1还是0. 但是这样结果就是.电容内的资料只要一读取 就会消失.所以必须读取後将资料回写.同样的电容 一段时间没理他电荷还是会跑掉.因此必须一段时间内 (按:不超过几十ns等级的时间)就refresh一次. 当然DRAM(1T,T=transistor)因此可以比起SRAM的4T/6T 拥有较低成本以及高容量单位密度的优势.因此DRAM占据了 主流的记忆体系统很长的一段时间,而修正DRAM的效率的各种 实作也是曾出不穷.也几乎都曾经采用於显示系统上. =============================================== 详细原理请翻查数位系统或是电子电路相关教科书. 这里重点是.DRAM的效率问题来自於电容导致在读取 後需要写回以及必须定期refresh.限制了效率表现. =============================================== 2. DRAM array 实际上的DRAM晶片是以2D array的方式组成的. Col 0 ----------------------------------------- | | | | VCC ........................................... | | | | Col 1 ------------------------------------------ | | | | VCC ........................................... | | | | Col 2 ------------------------------------------ | | | | VCC ........................................... | | | | Col 3 ------------------------------------------ | | | | VCC ........................................... | | | | Row0 Row1 Row2 Row3 (每个Row,Col相连的地方都有如上图的1bit DRAM存在. 但是我画不进去...放弃) 每1bit的资料都可以Row/Col的位址决定.当在外部 决定好Row/Col的位址後.也就可以从DRAM array中 读写这1bit的资料. 一个典型的RAM晶片规格标示,如16Mx8,表示这颗的传输 资料宽度为8bit,而ADDRESS总共有8Mega"组"8bit资料. 因此总容量是128Mbit. 这样一颗晶片就可以看成有如上的DRAM array 8组. 而每组的Row/Col数量?通常两者数量会仅可能的接近. 那麽就是有4096 Row以及4096 Column. 3. A DRAM Chip 那麽要如何把以上16Mx8的设计出一个对应晶片的介面呢? Column以及Row的address各需要12bit.不过我们可以让它 使用同一组讯号线分两次传递(这称作row/column multiplexing, 而DRAM基本上都是采用此种方式.也因此影响了效能).因此只要 一组12bit的位址线就够了.但是需要额外的讯号线通知晶片 正在送的是Row还是Column,因此可以增加两条1bit的讯号线. RAS#(Row Access Signal)以及CAS#.当然还要讯号线告知 现在是读取或是写入.以及当晶片准备好传送资料时通知完成的 讯号线.以及8bit的资料线. [-------] Address=| |=Data Output(1:8) (0:11) | | | | WE#-| | RAS# -| |-OE# CAS# -| | [-------] 内部应该是长的这样: Address(0:11) ==================| || [Column Decoder] || ------------------ || Row | | === | DRAM Array | Dec | | ode | | r | | -------------------- | | | | | | | | v v v v v v v v ---------------- DRAM Sense --->Output Buffer==>Data Output Amplifier ---> Address送入後.依照RAS#,CAS#判断现在是Row还是Col的定址. 然後把位址送到ROW or Col的decoder,由decoder启动对应的 row/col的线路.Row/Col的位址都决定後.Sense Amplifier 会侦测电压变化来判定bit的1/0,并顺便回写资料. 最後读取到的资料送到output buffer.因为这颗是16Mx8的晶片. 所以晶片内部应该会有8组同上的Array/Decoder/Sense Amp. Output buffer将它组成8bit输出. DRAM Read Timing RAS# ----|__________________|-- CAS# --------|______________|-- ADR ====XOOOXOOOX============ 11:0 Row Col WE# _|-----------------------|_ OE# ----|____________________|- DQ ===============XOOOOOOX=== 8:1 Valid Data DRAM Write Timing RAS# ----|__________________|-- CAS# --------|______________|-- ADR ====XOOOXOOOX============ 11:0 Row Col WE# --------------|_______|--- OE# _|----------------------|_ DQ ===============XOOOOOOX=== 8:1 Write Data 嗯,好极了.终於可以开始传资料,我们只要"每次" 都送Row,Col位址进去,就可以读或者写入8bit的资料. 等等.这是否有哪里不对劲......?? 每次都要送Row/Col,那麽是不是花在送Row/Col的时间 比等待资料传输的时间还要多??没错..... 所以这显然不是个好现象.有没有办法改进呢? ================================== Row/Column multiplexing也限制了DRAM的性能 ================================== DRAM的加速: Paged Mode/Fast Paged Mode 既然送Row,Col要花很多时间,可不可以偷懒不送..?? 但是不送的话,又要怎麽知道要存取哪边呢?折衷一下. 只送一个.而另外一个不送的话就假设跟以前一样. 这是DRAM系统第一个普遍的加速手段.称为Paged Mode 或者是Fast Paged Mode(事实上这两者有少许差异, edge trigger的方式不同,但是原理相同) 原先DRAM中,Row,Col必须都送. Addr <Row><Col>------<Row><Col>------<Row><Col} Data <Data> <Data> <Data> Paged Mode/Fast Paged Mode Addr <Row><Col> <Col> <Col> <Row><Col> Data <Data> <data> <data> <data> 可以大幅度增加DRAM的效率. DRAM的加速: EDO RAM(Hyper Paged Mode DRAM) EDO RAM是在SDRAM之前普遍的一种加速DRAM.它进一步 扩展了fast paged mode,主要的改进为送下一个Column Address 的时候可以不用等待前一个Data输出完成.而重叠两者的时间. EDO RAM(Hyper Paged Mode) Addr <Row><Col 0><Col A><Col B> <Row><Col> Data <Data0><dataA><dataB> <data> 另外我还找到一个说法表示.EDO RAM会预设下个Col为这个Col 的次一个而预先准备,进一步缩短access time.不过我不确定 是否所有的EDO RAM都支援.或者是仅有部分access time 较低的EDO RAM是如此.还是这是burst EDO才加入的. Burst EDO:快速消失 Burst EDO支援burst Mode.基本原理为...在DRAM 内部将array再分割成更小可独立运作的internal bank. 然後同步存取这些internal bank,让它们在同一段latency 後差不多都准备好了.而可以在接下来最短的时间内依次 写入或读出资料. Normal Mode Burst Mode Buffer <---Bank 1 Buffer <-----Bank 1 <---Bank 2 <--Bank 1 <-Bank 2 Timing Addr <Row><Col> Data <Data> burst Addr <Row><Col> Data <Data><Data><Data><Data> 以基本Latency差不多的DRAM而言,晶片组 在66MHZ外频下使用Fast Paged Mode 可以达到X-3-3-3的Timing.使用EDO RAM可以达到 X-2-2-2.而使用burst EDO可以达到X-1-1-1. (以上是读取,写入都比较慢) 但是Burst EDO只存在少量以及短时间.而立即被JEDEC SDRAM取代. JEDEC SDRAM同样也是利用internal bank而支援burst Mode. ============================================== 你不想休息吗?我都想了 ============================================== SDRAM:采用同步传输 介绍SDRAM之前要先定义好SDRAM是什麽.是不是如字面上 一样.采用Synchoronos transfer的就算吗?不.事实上Rambus 跟1T-SRAM也都是同步传输.一般说的SDRAM指的是JEDEC SDRAM. 包含在PC66/PC100/PC133下的SDR SDRAM.DDR SDRAM,DDRII SDRAM 等.也有许多基於相关标准的衍生型,如SGRAM,GDDR/2/3,Enhanced SDRAM(又称为cached SDRAM,也就是加入SRAM为cache..另外也有 Enhanced/Cached EDO),NEC的Virtual Channel(PC133/DDR/DDR2) 等.. 所以,一般称的DDR RAM是不是JEDEC SDRAM?当然是. 只是在DDR SDRAM未出来之前,当然PC66/PC100/PC133 那时都直接称为SDRAM,在DDR SDRAM出现之後为了区分 才将它们称为SDR SDRAM.不过称DDR SDRAM是SDRAM的一种 或者是SDRAM的演进/改良仍然没错. synchronous bus ? 同步传输介面指的是什麽意思?与非同步Asynchronous的差异? 简单一点的比喻,就好像一堆人合作作事情. 非同步传输: A做好後通知B,C等待B完成後才开始作,D等待A以及C两个 人一起通知它开始做事etc..... 同步传输: 所有人都事先收到一份严格规定好的行程表(timing diagram) 随着时间的进行(clock).在行程表内定好的时间一定会完成. 没达成的就地处决(........有吗??) 效率上的差异是很明显的. 可是SDRAM只是把DRAM改成synchronous介面吗? 很不幸的,如果只是这样做对效率一点帮助都没有.虽然 如FPM DRAM及EDO RAM是非同步介面.但是主机板晶片组或者是 显示晶片上的记忆体控制器存取它们仍然是照着固定的Timing 如6-3-3-3,4-1-1-1,只是需要依照外频以及RAM的规格手动设定 不同的timing....... JEDEC SDRAM主要的加速机制仍然发扬了过去有的方法. 省略重复的Row Addr,传输Col Addr可以与资料读写同时进行, Burst Mode等..前面简介过的方法都以另外一种形式在JEDEC SDRAM上实作. 除此之外JEDEC SDRAM还有Mode Register可以动态改变 SDRAM的存取方式,burst length,各种相关的timing如CL等. (Mode Registry和SPD不要混淆,作用算是相反吧) ==================================================== 最早的SDRAM并没有SPD ==================================================== JEDEC PC66/PC100/P133 SDRAM在介面上增加了BA(Bank Address),以指定internal bank,SDR SDRAM有2组internal bank,DDR SDRAM有4组. internal bank Bank 0 Bank 1 v v Control |-------------| ----| Logic --> | Bank 0 array| nk1 | | | | |-------------|-----| |Sense Amp | Amp | --------------------| Buffer 所以SDRAM存取的时候会碰到三种情况. 1.在同一个page/row中(同一个row中的位址称为page). Timing : CL-1-1-1...传到burst length结束,SDRAM支援1/2/4/8 (CL=Cas Latency) 以及page结束这几种 2.不同的row address.没有bank conflict RtC-CL-1-1-1... (Ras to CAS latency) 3.不同的row address而碰上bank conflict. 该bank正在使用中 Precharge-RtC-CL-1-1-1.... 而三者发生的机率.除了应用程式的种类外,memory controller 的规划以及整个记忆体系统的配置(SDRAM不是拼命把记忆体频宽 加大或是增加多通道效率就会持续增加的)都会有影响.最佳化 记忆体系统.对SDRAM来讲可能就是平均有效传输速率33%与66% 的差异. 比如说以CL,RtC,Precharge都是3cycle的SDRAM来说 (其实哪里有这麽好的??),burst length=4,那麽有效传输比例 分别是66%,44%,33%.但是memory系统的排程决定了三者的机率. 尤其是效率的bank conflict,在不同的情况下比例可以由5% 到25%以上不等. Latency:货真价实的效能障碍. 相对於DRAM密度的快速成长.DRAM对於存取的latency 却是缓慢的改进.DRAM密度以符合电晶体密度的标准(1.5X/year) 成长的同时,DRAM latency的改进却不到每年7%. 也就是说,看的到的RAM,虽然好像PC133跳DDR400,DDR2-533, 或者GDDR3 1.xGHZ等.可是真正的latency没改进的情况下,采用的 是如同更多的internal bank去实作,得到的是更低的有效传输比例 .效能改进并没有如同帐面数字一般. ===================================== 待续: DDR2 DirectRambus 1T-SRAM Embedded DRAM 记忆体系统的设置参数对效能的影响 改进记忆体存取的软体技巧 ===================================== --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.23.107 ※ 编辑: eola 来自: 140.113.23.107 (02/06 04:32)
1F:推 saitoTK:I like it!!! 59.115.200.34 02/06 05:14
2F:推 nhsmallcat:推 61.230.53.203 02/06 06:46
3F:推 orinsinal:好文,~! 59.112.41.173 02/06 12:58
4F:推 nono17:不错文 不过有点看不懂! 219.68.190.149 02/06 13:21
5F:推 SuWeiLin:好文推! (还是有点看不懂...程度差>"<) 218.161.93.17 02/06 13:36
6F:推 Haiker:正点....!!218.169.242.148 02/06 14:08
7F:推 wen1981:太深澳了...... 59.121.186.105 02/06 15:09
8F:推 yen6991:这些计组课本不是都有吗@@ 59.115.201.199 02/06 15:11
9F:推 eola:不把这些介绍完怎麽介绍DDR2 SDRAM?? 140.114.79.128 02/06 15:18
10F:推 singy:推好文 多学了些有用的东西 61.231.164.134 02/06 16:14
11F:推 yen6991:期待DDR2的大作^^...感谢 59.115.201.199 02/06 16:49
12F:推 icome:好专业的文章@@218.171.214.157 02/07 00:18
13F:→ icome:不是念相关科系的 有些难理解 orz218.171.214.157 02/07 00:23
14F:推 storier:期待"改进记忆体存取的软体技巧"218.168.169.231 02/07 09:58
15F:推 eola:改进记忆体存取的软体技巧不是指拿套软体 140.113.23.107 02/07 20:55
16F:→ eola:按一下记忆体效能会变好..而是Compiler的最佳 140.113.23.107 02/07 20:55
17F:→ eola:化,指令排程,利用cache以及写程式的技巧等 140.113.23.107 02/07 20:56
18F:→ eola:改进程式存取记忆体的效能.但是这部分和 140.113.23.107 02/07 20:56
19F:→ eola:显示系统已经差太远了.可能会拿掉..... 140.113.23.107 02/07 20:56
20F:推 storier:恩..我想看的就这些 冏218.168.169.231 02/07 21:07
21F:推 Hoopt:我竟然看得懂.....220.138.221.114 02/07 23:42
22F:推 eola:呃..当然是希望大家看的懂才写的... 140.113.23.107 02/08 10:26
23F:推 hans0406:推一个,不过Synchoronos是不是多打一个o 61.57.98.91 02/08 16:51
24F:推 MRjk:赞!!!! 218.165.81.135 02/12 16:49







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP