垂直分层闸流体(Vertical Layered Thyristor;VLT),是Kilopass研发出的新型内存单元,能够显著降低动态随机存取内存(DRAM)的成本和复杂性。这是一种静态的内存单元,无需刷新操作;兼容于现有晶圆厂的制造设备,也无需任何新的材料或工艺。
相较于一般的DRAM,VLT内存数组能节约高达45%的成本;这是因为它具有更小的VLT内存单元,以及驱动更长行与列的能力,使其得以大幅提升内存数组效率。然而,想要发挥VLT的优势,就必须在依据产业标准发展的成熟DRAM市场展开设计与制造,才能确保兼容于不同供应商的内存产品。
目前,基于VLT技术的内存已经具备与现有“第四代低功耗双倍数据速率”(LPDDR4)规格完全兼容的能力。VLT内存组(bank)可以模拟传统DRAM的bank,并兼容于其频率;在设计VLT电路时,设计者可以选择连接标准DDR控制器,或是成本较低的简化版控制器。如果使用标准控制器,由于不需要刷新,VLT内存将会忽略刷新序列。系统的其他部份则会将VLT DRAM视为通用DRAM,因而无需任何改变。
传统DRAM内存单元
为了显示如何使用VLT内存单元构造LPDDR4内存,首先回顾一下传统DRAM以及LPDDR4的工作方式。熟悉DRAM者或许对其有所了解,但实际运用上还是有些微差异,在此先定义一些准则与术语以便于理解。
DRAM作业的许多方面取决于其电容储存单元。首先,电容的漏电特性导致了刷新的必要性;其次,储存单元的基本作业方式之一是读取,它会影响如何组织内存的其他方面。
图1显示电容储存单元的原理图,左右图分别代表了读取1和读取0时。电路透过“电荷分配”(charge sharing)侦测内存位值。位线(bitline)首先被预充电到一个在0和1之间的电压值,然后透过打开读数晶体管来选择一个内存单元,使电荷可以在位线与内存单元间流动。如果位线电压高于内存单元,那么负电荷就会从内存单元流出到位在线;而如果位线的电压低于内存,那么负电荷就会从位线流进内存单元。
图1:传统电容式DRAM内存单元的电荷分配原理 (图中绿色箭头所示为电流,与负电荷流动的方向相反)
这种电荷转移改变了位在线的电压,透过感测与锁存得到最终读取数值。然而,在储存电容中失去或取得的电荷,改变了节点上原有的电荷,这意味着读取的过程是破坏性的。因此,在每一次读取之后,都必须透过回写操作恢复内存单元中的电荷。
LPDDR4
LPDDR4标准是第四代双倍数据速率(DDR) DRAM的低功耗版本标准,透过整体架构定义了个别内存芯片的高层级结构,以及如何安排双列直插式内存模块(DIMM)。
分析DRAM的方式一般有两种:理论上,剖析其实体细节;实际上,则着眼于其芯片数组特性。本文首先探讨第一种逻辑观点,因为所有的实体布局都必须分解为相同的逻辑结构,因而能够从中了解传统DRAM和LVT途径如何实现逻辑功能。
LPDDR4内存芯片拥有8Gb的储存容量,通常由两个4Gb的独立通道共同组成。每信道拥有8个内存组,每一内存组包括32K储存页(page),每页有16K位,而使内存组的总容量达到512Mb。
图2:典型的DRAM架构和层级
一个完整的LPDDR4内存芯片包括两个高层级单元:内存数组和DDR接口。有些部份的操作会影响到内存数组;另一部份则会影响接口。DDR接口可以同时与内存数组以及外部系统进行通讯。
图3:LPDDR4的逻辑组织架构,图中将储存数组和DDR接口分开。(箭头代表一次读取操作以及回写)
图3说明了这种关系,即DDR缓存器作为外部系统和内存数组之间的主接口。而在读取数据时,数组数据会先被加载DDR缓存器中;进行写入作业时,所需的数据会先从外部写入缓存器中。
由于读取传统DRAM数组内容可能破坏原有数据,每一次读取后都必须进行回写作业,以恢复原有值。在进行读取后,DDR缓存器的内容被复制到“隐藏缓存器”(Shadow Register)中。当外部系统读取DDR缓存器中的数据时,隐藏缓存器负责将数据回写到所选页,以恢复原有数值。同样地,当写入数据时,DDR缓存器的数据会被传输到隐藏缓存器中等待写入;而在执行写入作业时,DDR缓存器就可以加载新的数据。
读取内存分页数据涉及一连串的活动,类似于两个巢式的软件DO回路(Do loop)。每一分页内存被分成由许多256字节成、成批(burst)读取的内存群组,因此,一组16K位分页就有64个burst内存群组,依序读取完整的内存页,这类似于外部DO回路。
图4:内存分页由分批依序读取的内存群组构成;每一批burst群组均依据16个连续的16位传送到I/O。
每个突发传输组被加载256位的DDR缓存器中,该缓存器被分为16个16位字,并依序读取其内容,为每一个频率边缘提供每一个16位字。这种操作方式则如同内部DO回路。
每一行的地址(RAS)负责选择分页。同时,每一列的地址(CAS)选择突发传输组,并设置从DDR缓存器中开始读取的字符,因而不必从DDR缓存器的左侧开始读取。
值得注意的是,在隐藏缓存器执行回写、读取或写入DDR缓存器中原先加载数据的同时,DDR缓存器已经开始从储存数组中读取数据或从外部加载所写数据了。
LPDDR的运作
LPDDR4功能本质上包含四项基本操作:启动、读取、写入和预充电。这些操作的其他变异形式,如突发读取/写入和自动预充电等,可能构成一个更长的指令列表,但并不至于带来新的技术挑战。此外,它还添加了刷新、训练和模式缓存器作业等维护性指令,以因应复杂的操作命令。
这些基本的操作简要介绍如下: 启动: 在内存数组中选择特定字符线(wordline),即可“开启”一个分页。该分页上的内容将会被感测到并进行锁存,然后保持开启以用于在读取作业时进行回写,或在“读取-修改-写入”作业时被再次写入。 读取: 开启读取数据序列,每个burst内存群组的数据会从感测放大锁存中被加载到DDR缓存器中。紧接着DDR缓存器开始依序读取,每次读取一个16bit字。同时,芯片透过隐藏缓存器在仍保持开启状态的分页上进行回写。 写入: 数据被加载DDR缓存器,每次一个16位字。数据随后被转移到隐藏缓存器中,待分页开启时写入数据。当进行写入时,DDR缓存器可依需要同时加载新的256位数据,等待下一次写入。 预充电: 在最后一个burst内存群组被读取或写入后,内存数组必须为下一次操作做好准备。在写入情况下,必须等待一个写入恢复延迟,以确保最后的burst群组可在继续其他操作前被成功写入。这时,开启的分页已被关闭,使位线能够自由浮动,并重新充电回到先前提到的VDD/2电位。
值得注意的是,只有启动操作才涉及内存数组感测;读取操作只涉及在锁存感测数据与DDR缓存器之间传输数据,以及读取DDR缓存器的数值。
根据所需的操作序列不同,有些DDR的时序可能极其复杂。但如果相邻读取操作发生在不同内存组的数据之间,则可大幅简化时序。因为在从下一个内存组中读取数据之前,不必在原有的内存组中等待回写和预充电。时序控制最困难的是来自同一内存组的连续读写。
实现内存数组:MAT
理论上,尽管一个内存组的逻辑容量可能达到32K行与16K列,但以现有技术而言,现实上并不可能制造出这样的内存数组。这是因为:
? 驱动器在选择分页时的驱动能力有限;在性能符合规格要求的前提下,只有一定数量的选定晶体管可以被驱动。
? 感测放大只能支持有限数量的储存单元。如果储存单元的数量太多,由于电荷分配造成电压变化减小,而被噪声淹没。
因此,为了确保内存芯片可靠且易于制造,每一种内存应用都存在不同程度的实体尺寸限制。达到这种上限的内存数组被称作“内存数组片”(memory array tile;MAT)。每个MAT都是功能齐全的数组,本身包含字符线和位线的译码以及感测放大器。
以一种采用2x-nm工艺节点的一般DRAM MAT为例,其位线和字符线的规模分别达到1,024条和620条。字符线的数量并不是2的整数次方,这带来了一些解码方面的挑战。该芯片或许只用了最后的几个MAT,但这是一个可以忽略的芯片建置细节。
透过打造一个16×53大小的MAT数组,可为具有这一尺寸的内存组实现总共848个MAT。一个完整分页整合一行MAT的内存单元:当开启一个分页时,同时启动同一行有MAT内存单元上相应的字符线。
图5:传统DRAM的实体布局
在了解了这些背景知识后,接下来将讨论全新的Kilopass内存单元,以及它如何打造与此相同的储存组。
VLT内存单元
Kilopasss的全新内存单元基于一种垂直分布的闸流体(也被称为半导体控制整流器,或SCR)。这种采取pnpn结构的堆栈建构于一个p-阱上,可带走来自底部n型层的任何空洞。
图6:VLT内存单元:带有写入辅助的PMOS晶体管的闸流体
在浅沟槽隔离(STI)结构中植入一个埋入式字符线,使底部的n层连接到一个字符。埋入式字符线与外部铜金属M1层字符线透过具有较大电阻的金属钨实现连接,因而可以制造比传统DRAM更长的字符线。
由于感测机制并非采用电荷分配,使感测放大器可承受更长的位线。因此,这种技术可以支持高达2Kbit宽、4Kbit深或总共8M位的MAT——远大于传统的DRAM MAT。采用更少片较大型MAT拼接成的内存芯片较采用多片小尺寸MAT的花费更低,因而可使VLT内存的数组效率达到77%,相形之下,同样采用2x-nm节点的传统DRAM效率只有64%。
以VLT内存单元打造LPDDR4内存
MAT容量增大后,LPDDR4内存组就可以用更少的MAT组成。单纯按照位数计算,基于VLT技术的内存组将包含64个MAT,相形之下,传统DRAM的内存组需要配置848个更小的MAT。不过,接下来的问题就是如何最有效配置这些MAT。
一种配置方式是每个MAT都带有512个支持4K位线的感测放大器,这意味着每个感测放大器都有多任务器用于在8条位线中进行选择。其中,多任务器的选择基于CAS地址;进一步针对图3的内存数组进行修改后,新的原理图如下:
图7:为VLT内存添加位线多任务器
因此,对于每个被选定的分页,每个MAT中只有八分之一的位线会被选择,这与普通DRAM实现方式中所有位线都被选中的情况不同。但在传统DRAM中并不可能实现这种更高效率的感测放大器使用方式,因为所有的位线都必须被读取,以实现回写的目的。由于VLT读取并不是破坏性的,因而无需回写操作,且多个内存单元可共享感测放大器。
另一个问题是如何在一个MAT实体数组中配置这些MAT。基于VLT MAT的灵活性,实体上配置这些MAT可以不必与逻辑上的配置完全吻合。只要妥善安排各总线的路径,任何形式的配置都是可能的。举例来说,一个内存组可被配置为4×16个MAT数组,同时传输理论上与传统LPDDR4相同的数据。
图8说明传统DRAM和VLT技术在内存分页选择上有什么不同:传统DRAM选择一行中的所有MAT,而VLT则从中选择了一个4×8的MAT区块。
图8:内存分页选择,其中被选定的MAT是红色的。传统DRAM透过行来选择分页,而VLT DRAM则以单元区块选择分页。
由VLT制造的LPDDR4,在外部操作上与传统LPDDR4完全相同。内部操作可能有所差异,例如不必再回写和预充电,但这并不会影响DDR控制器;如果满足了VLT的时序要求,其内存的逻辑组织方式与传统DDR完全一致。
免除刷新
VLT内存单元最明显的优点之一就是不需要刷新。不过,刷新已经成为DRAM作业的一部份了;无论内存处于闲置状态或是被接通,都必须进行刷新操作,以避免数据丢失。
完整的DDR控制器状态机说明了刷新对于运作的影响,如图9所示,所有红色的状态都与刷新或者基于刷新的分支相关;而使用了VLT技术,这些状态都是冗余的,而且能够被消除。
图9:传统DRAM建置的LPDDR4状态原理图,与刷新有关的状态以及与基于刷新的有关分支状态都被标注为红色,标注为灰色的状态则与接口相关。
图10则是一种简化的状态机,其中与刷新有关的状态都已经移除了。在设计基于VLT的内存时,设计者可以选择现有的DDR控制器,因应那些不需要的状态加以调整;也可以设计优化的DDR控制器,省去所有与刷新相关的电路——这种方法将占用更小的芯片面积,以及降低功耗。无论选择哪一种控制器,都不会影响其他系统与内存芯片的互动。
图10:移除与刷新相关状态后的LPDDR4状态原理图
结语
VLT内存单元可以打造一种比普通DRAM内存单元成本更少、功耗更低的内存,目前VLT内存芯片已能与现有的LPDDR4内存完全兼容了。透过适当设计架构、命令以及时序,VLT内存芯片就能与传统内存芯片无差别地应用在实际系统上。
基于VLT的内存数组采用一个可在内部作业处理差异的接口,使其得以与标准的LPDDR4控制器配合使用。换句话说,设计一款免刷新的LPDDR4控制器,使其仍具备完整的控制器功能以支持外部接口,并确保现有驱动器都能继续正常作业,而只是在内部忽略与刷新有关的操作,将有助于大幅节省成本,以及降低功耗。