内存的设计探索
本文作者:admin
点击:
2006-10-08 00:00
前言:
静态随机存取内存(SRAM)与缓存器(Register)在各种微处理器(Micro Processor)的应用系统中是不可或缺的数据存储元件,随着大型的嵌入式系统发展与PDA、Smart Phone的应用趋势,势必对于微处理器内部的内存与缓存器会有大量的需求。本文在介绍通过减少静态随机存取内存和缓存器的MOS元件数量来因应在相同的工艺因素、集成电路面积的要求下使微处理器系统拥有较多的内部存储空间、高密度的高速缓存,并且使用ADS(Advanced Design System)软件来仿真。
从6T到5T
投入减少SRAM cell技术的精神与时间的原由,一是来自于曾经撰写过超频(over clocking)计算机主机板的BIOS自动超频技术,不论主时钟频率如何的调高、CPU工作电压如何的加大、冷却方式如何的优越,最终的程序执行效率与视频显像速度还是受制于动态随机存取内存(DRAM)的读写时序的瓶颈,二是使用PDA搭配市售热门的卫星导航软件需要大量的内部存储器,然而嵌入式微处理器的主存储器仅仅内含了64KB SRAM,即使是再高贵的品牌也会因内存不够而当机。我们早已需要更快的执行效率与更大的内部存储器空间,但是到目前仍然没有足以喂饱我们饥渴的高速、高密度的随机存取内存。
随着DRAM从3颗晶体管的记忆细胞(3T DRAM cell)洐进到1T DRAM cell以及工艺技术从0.18μm到0.13μm以下,而SRAM基本上还是一直停留在6T SRAM cell的阶段,纵使目前Xilinx XC4036EX FPGA[1]已经采用了5T SRAM cell,亦因目前的5T SRAM cell必须调整MOS的通道宽度,甚至是MOS的信道长度来达成记忆效应与存取的能力,因此会增加晶体管的泄漏电流,所以有强调低泄漏电流(low leakage current)的论文发表。
图1是传统的6T SRAM cell的电路图,不论是DRAM还是SRAM,每个记忆细胞都要连接到内存数组的字组线(Word Line, WL)与位线(Bit Line, BL)才能被寻址及存取,字组线的用途是给予各个记忆细胞拥有自己的地址并且控制数据位的进出,位线则是数据写入与读取的传输线。如图中所示的这6颗晶体管的宽度与长度的参数都是设成Width/Length=0.22μm/0.18μm,然后经由如图2所示的仿真电路与参数进行电路仿真,并且将仿真的结果与5T SRAM cell和4T SRAM cell的仿真结果互相比较。
在参考论文数据[2]的图4.12是此篇论文中完成的5T SRAM cell的电路及晶体管参数图(Five-transistor SRAM cell with final sizes),在此图中有清楚的标示出各个晶体管的宽度与长度。然而在此文中的5T SRAM cell的组合结构有些许的不同,而且晶体管参数完全与6T SRAM cell的参数一致,甚至是后面的4T SRAM cell的仿真也全是采用相同的信道宽度与信道长度,也由于将所有的晶体管的通道宽度都固定在最小值,会将泄漏电流降到最低,自然拥有低耗电量的特性,而且采用最小的宽度与长度也让集积密度得以提高。
如图2所示的仿真电路与参数图是一个包含数据读写电路的32位5T SRAM cell (4-addresses × 8-bits),在此图中的7个信号源的时序数据请参考表1,其中有3个控制信号(chip select: cs#, write: wr# , read: rd#)、2个数据线信号(data: d0, d1)与2个地址线信号(address: ad0, ad1),仿真的时间单位是0.8纳秒(ns)、仿真电压源是1.80V,另外,数据读取之后的输出节点名称为bit0和bit1。图3的仿真图依序是观察图2中的wl0, wl1, bit1, bit0, wl2, wl3这6个节点的电压波形,并且将这6个节点的电压波形与表1的数据互相比对,图3中的wl0, wl1, wl2和wl3皆是连续3个脉波的循环时序,而这3个脉波是读取─写入─读取的控制顺序,以这样的顺序来仿真内存的存取的用意是在于写入之前必须确认原本存储的数据没有因为其它地址的存取而被破坏,在写入之后确认数据被正确的写入与读出,并且在下次同地址的读取时序中确认此次的读取并不会造成破坏性读取(destructive read)。
从5T到4T
5颗晶体管不会是静态随机存取内存的每个记忆细胞的晶体管的最小数量,这是在完成5T SRAM cell的仿真之后的想法,应该还可以再减去1颗晶体管!而且如今的1T DRAM cell仅须1条字组线与1条位线就可以做到记忆位的存取,为了让4T SRAM cell可以逼近于1T DRAM cell,因此连位线也要从2条减少到1条。在参考数据[3]与[4]的文件里所提到的4T SRAM cell是4颗晶体管和2颗电阻所组成的记忆细胞架构,这种4T2R SRAM cell的架构并没有减少记忆细胞的体积,而且位线也没有减少。在参考论文数据文件里有提出一种4T SRAM cell,但是必须加大晶体管的信道宽度、增加电流驱动力才能达到记忆存储的能力,并且仍然须要2条位线。
目前探讨所谓的4T SRAM cell的功率消耗、存取速度与集积密度,多数的相关论文文件是4T2R SRAM cell的架构,但是这里是将完成仿真之后的5T SRAM cell再进一步的修改成Real 4T SRAM cell。将记忆细胞的晶体管数量减少到4颗,而且要和1T DRAM cell一样仅用1条字组线与1条位线来达到记忆位的存取,这是不容易达成的基本要件。经由仿真软件的执行结果,可以看出Real 4T SRAM cell是能够做到记忆细胞的写入与读取,另外,Real 4T SRAM cell也可以单独地在记忆保持的期间仅将记忆细胞的工作电压从1.80V下降到(Vdd x 0.4) V,如此可以节省记忆细胞的耗电量,而且可以动态地在读取时序中提升工作电压至(Vdd x 0.6) V以上使得静态随机存取内存的读取速度不会因此而降低;在仿真记忆细胞的待机电压的电路模型中,Real 4T SRAM cell还可以降低到(Vdd x 0.15) V,然而5T SRAM cell仅能降低到(Vdd x 0.4) V。所以,Real 4T SRAM cell是拥有最高的集积度、最低的功率消耗与最小的存取时间于一身的静态随机存取内存。
消耗电流的比较
基本上,减少晶体管数量是可以降低消耗电流,但是如果所设计的晶体管是工作在饱和区,消耗电流倒是不减反增。为了观察静态随机存取内存的记忆细胞从6颗晶体管减少到4颗的动态消耗电流的情形,在图2的中间位置放置了一个仿真软件内建的电流探测对象—— I_Probe,并将这个电流探测的节点命名为“CellCP0”。如图4所示的电流仿真比较图是图2所有的记忆细胞的总消耗电流,5T SRAM cell的最大瞬间电流是46μA,4T SRAM cell的最大瞬间电流是47μA。
内存细胞的读取
一般内存的容量都很大,因此位线的长度会很长并且会增加导线的电阻值,在读取内存细胞的时候,位线的电阻会产生压降,必须使用感测放大器(Sense Amplifier)将微弱的读取电压放大至正确的数字逻辑的鉴别准位。在6T SRAM cell与4T2R SRAM cell的感测放大器是使用差动式的cross-coupled做为内存细胞的读取电路,然而在Real 4T SRAM cell仅有1条位线,不能使用差动式的感测放大器,但是可以利用扩展脉波触发器(Spread Pulse Trigger)[5]来当作感测放大器。如图5所示的读写电路即是在5T SRAM cell与Real 4T SRAM cell的仿真中皆有使用到的细胞读写的电路架构,在电路图中间的“SPT3W-RAM; SPT1”即是将扩展脉波触发器稍做修改来配合内存读取的电路模块,此时的扩展脉波触发器就相当于一个感测放大器;配合电路图下方的“MOSFET1”就含有在读取DRAM cell时所必须拥有的回写(restore)功能。
从内存到缓存器
内存和缓存器都是一种数据存储元件,差别在于内存主要用在大量数据的纪录与读取,而缓存器用于各种工作状态的保存以及处理器内部数据处理的缓冲与暂存。在此,将如图6所示的Fast DFF电路使用这套仿真软件来观察输出波形,并以更新的Ultra DFF电路来与它相互比较。
图7是Ultra DFF/Fast DFF的仿真电路与参数图,时钟频率设定在4.5GHz、工作电压1.80V,以交替的1和0作为数据输入。图8是Ultra DFF的仿真图,由上而下的电压波形依序是图7右方的clr节点、pls节点、D节点和Q节点,经由此图的仿真结果可以确定Ultra DFF的输出正确与否,以及在4.5GHz的时钟频率输入时,仍然可以运作。
图9是Ultra DFF和Fast DFF的Q节点以及包含clr信号的仿真比较图,Ultra DFF在数据输出的电压爬升和下降都比Fast DFF来得快,减少了数据的传递延迟。Fast DFF是直接利用逻辑闸来组成的数据缓存器,如果在晶体管阶层(Transistor Level)可以利用晶体管本身的特性来完成数据存储的目的,减少缓存器的占用面积、降低功率消耗,而Ultra DFF的架构还可以减少传递延迟时间。再将Ultra DFF的电路做些改变之后就可以实现转态缓存器(TFF)的功能。在图8的仿真电路中,是使用7颗晶体管来组成数据缓存器,其中包含了1颗用来处理clr信号的晶体管,另一种可以利用5T SRAM cell的架构以6颗晶体管来组成数据缓存器。
结语
直到目前,计算机的主存储器(Main Memory)与视频内存(Video RAM)都是由1T DRAM cell来担任数据存储的角色,而且计算机的每一条DDR/DDR2内存模块(memory module)必须含有1颗编号为24C02的Serial EEPROM,其中含有SPD(Serial Presence Detect)信息,主要纪录着这条内存模块标准的读写时序,也因为计算机要经由这些信息才能正确地设定北桥芯片组与内存之间的读写时序,所以在开机之初,BIOS程序不能使用到主存储器,反而要善加利用CPU内部的各个缓存器。
除了上述的小缺点之外,在多任务作业、多媒体播放与巨量数据存取的需求下,计算机的效能瓶颈受制于主存储器的存取速度,计算机的超频玩家必须对内存的CAS Latency(CL), Additive Latency(AL), Read Latency[6], Burst Lengths等读写参数的设定了如指掌,而且不论冷却方法是如何地优异到可以令CPU的时钟频率、工作电压提高,内存的读写时序已经大幅度地压缩了计算机所能超频的范围。
基本上,Real 4T SRAM cell的面积会是6T SRAM cell的2/3倍以下,约是1T DRAM cell的2倍,一方面可以提高嵌入式内存的容量,另一方面也有机会在效能与省电的双重要求下,逐步取代1T DRAM cell的地位。在高效率的多任务作业之下,CPU必须快速地读取分散在内存之中的BIOS呼叫、系统呼叫、中断处理、SMI处理等等,系统最底层的处理程序亦是被利用的最澈底、最频繁的程序代码,我们可以将这些系统程序代码以实际或虚拟寻址的方式移至计算机中已经插上Real 4T SRAM cell的内存模块里,甚至在计算机系统进入休眠(hibernation, S4)状态[7]时,善用Real 4T SRAM cell的省电能力,不再将内存中的数据存入系统的硬盘机里,减少系统从S0进入S4以及从S4状态恢复到S0状态所要花费的时间。
附注:
[1] Xilinx XC4036EX FPGA
Report Number: SCA 9706-544
[2] Design and Evaluation of High Density 5T SRAM Cache for Advanced Microprocessors
Master’s thesis performed in Electronic Devices by Ingvar Carlson
Reg nr: LiTH-ISY-EX-3481-2004
23rd March 2004
[3] TOSHIBA TC554161FTL-70L
4 Mbit (256K x 16) CMOS SRAM
Ref. report SCA 9508-428
[4] To appear in the Proceedings of 16th International Conference on VLSI Design, 2003
Analyzing Soft Errors in Leakage Optimized SRAM Design
V. Degalahal, N. Vijaykrishnan, M.J Irwin
Microsystems Design Laboratory,
Pennsylvania State University
E-mail: {degalaha,vijay,mji}@cse.psu.edu
[5] 《电子与电脑》杂志2006年7月刊,“扩展脉波触发器及ADS仿真技术”
[6] DDR的Read Latency等于CL,DDR2的Read Latency等于CL+AL。
[7] 先进的配置和电源接口(ACPI)规格将系统电源状态分为S0~S5。