一个典型的存储系统一般是有几片NAND存储器组成的。一般会使用8-bit的总线,用来将不同的存储器与控
制器进行连接,如图2.32所示。一个系统中多片NAND的存储系统可以提高存储容量,同时还可以提高读写速度。
    基于一个通道的操作是能够被插入的,也就是说当一个占有通道的芯片(die)处于空闲状态,而另一个芯
片(die)处于忙碌状态(例如写或者擦除),这个时候这个处于忙碌的芯片就可以去占有这个通道进行使用。
例如:如图2.37所示的一个需要多次写操作的序列。当使用这种可插入的读写方式之后,数据通道的利用率就因
为充分利用通道而被最大化了;同时也不用专门的通道去进行(以前的芯片读和写要分开);一个典型的系统
一般会同时操作一个并行的2到8个(甚至更多)通道。

如图2.38所示,当每个页的写入时间是固定的时候,使用了多die芯片之后,整个系统的吞吐效率就增加了
很多。

存储芯片的控制器要负责通过通道来对所有的数据进行分配存储。控制器一般会使用专门的低功耗通讯工具
来与NAND Flash进行通信。
    另外,和写操作(与输出的数据是同样的内容)对比起来,数据的负载阶段也是要特别注意的:持续增加的
输入/输出接口的传输速度是另一个可以考虑的提高输入/输出效能的方式。一些高速接口(比如DDR)我们会在
之后的内容中详细介绍。图2.39展示了DDR高速接口在写数据的时候对速度的影响。随着速度的增加,更多的
NAND芯片能够在同一时间被读写,当然,接口的速度也是会有极限的。例如:假设一个终端的接口速度只有
30MB/s,有两块NAND芯片,要求最低速的DDR频率至少为50MHz,给定NAND的一个页的写时间为200us,当在
50MHz的时候我们就可以通过切换芯片同时对4块NAND进行操作,这显然已经达到了终端写入速度的两倍。
4块NAND的计算方式:(1000000/200)*2K*4 略小于 50MHz的速度(这里以一个page为2K进行计算)。除此之外,功耗当然也是需要特别注意的一个问题。

除了单独的NAND芯片结构之外,还有一些将不同类的存储芯片集合在一起的存储结构体,例如一些存储体
里面除了包含NAND还使用了DRAM或者SRAM来做存储缓存;在写入阶段这些缓存就可以用来在真正写入NAND之前
暂存数据。这样做的好处就是可以得到更快的速度的同时还可以延长NAND的寿命。
    还有一种结构是使用NOR Flash和NAND Flash共用的形式,使用NOR Flash的目的是可以片上执行软件,从
而省去了读取数据的时间。
    对于这些使用不同存储芯片的混合存储体而言,在一个包装好的芯片里面打包多个die的方式是一种很不错的既可以降低空间又可以降低功耗的方式。

Multi-Die系统介绍的更多相关文章

  1. No zuo no die:DDD 应对具体业务场景,Domain Model 重新设计

    写在前面 上联:no zuo no die why you try 下联:no try no high give me five 横批: let it go上联:no zuo no die why y ...

  2. 艺萌TCP文件传输及自动更新系统介绍(TCP文件传输)(四)

    艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开源,作者是英国的,开发时间5年多,框架很稳定. 项 ...

  3. 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)

    艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...

  4. Also unsere eigene Christian Louboutin Webshop bietet die überragende Christian Louboutin Schuhe uk schiebt zusammen mit kostengünstigen Wert

    www.heelschuhe.de, Es ist wirklich eine der Frauen erfordern immer interessant und auch Louboutin Pu ...

  5. python学习笔记4-redis multi watch实现锁库存

    python 关于redis的基本操作网上已经很多了,这里主要介绍点个人觉得有意思的内容1.redis的事务操作以及watch 乐观锁:后面描述2.tornado下异步使用redis的方式       ...

  6. Elasticsearch——multi termvectors的用法

    前一篇已经翻译过termvectors的使用方法了,这对于学习如何使用tf-idf来说是很有帮助的了. 更多内容参考我整理的ELK教程 什么是TF-IDF? 今天早晨起来,看<ES IN ACT ...

  7. Linux文件系统介绍(转)

    文章转自:http://www.iteye.com/topic/816268 文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文 ...

  8. php的exit和die

    首先, 两者是相等的: exit is equivalent to die; 其次, 都是语言构造器, language construct. 不是函数! 后面的内容用括号括起来只是为了方便... 用 ...

  9. IE6 Must Die

    最近 Twitter 上很多人在推一个名为 IE6 Must Die 的活动, 参与的朋友可以通过头像转换服务在自己的头像上加上一个禁止 IE6 的图标, 很是拉风. Internet Explore ...

  10. Xamarin Android教程Android基本知识版本介绍与系统介绍

    Xamarin Android教程Android基本知识版本介绍与系统介绍 Xamarin Android教程Android基本知识版本介绍与系统介绍,开发Andriod有时候不像iOS一样轻松,因为 ...

随机推荐

  1. jasper3

    package jasper; import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileOutputStr ...

  2. HTTP协议认识

    一.HTTP协议概念 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议 HTTP是一个应用层协议,由请求和响应 ...

  3. JavaScript 学习笔记-- ES6学习(一)介绍以及Babel的使用

    本文摘自阮一峰老师的<ECMAScript 6入门>,原文地址:http://es6.ruanyifeng.com/#docs/intro ECMAScript 6 是一个泛指,含义是5. ...

  4. Core Canvas–Day1

    绘制 1.坐标系统: canvas的坐标以左上角为原点,如图 可对canvas的坐标系统进行变换,变换的方式有 平移translate 旋转rotate 缩放scale 创建自定义的变换方式,切变 2 ...

  5. 重新设置MySQL的root密码

    1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录 ...

  6. Ubuntu系统的安装

    在上一篇博客中,我们已经建立了一个“空白”的虚拟Ubuntu镜像,在这篇博客中,我们将介绍如何安装并进入完整的Ubuntu系统. 写在前面:不同版本的系统在安装过程中,有些操作可能会不同,但是其核心步 ...

  7. bzoj1007:[HNOI2008]水平可见直线

    思路:首先按斜率排序,如果斜率相同就取截距最大的,显然截距小的会被覆盖而对答案没有贡献,然后考虑斜率不同的如何统计答案,可以用一个单调栈维护,当前新插入的直线显然斜率是要比当前栈顶斜率要大的,然后如果 ...

  8. jQuery siblings()用法与实例。

    jQuery 的遍历方法siblings() $("给定元素").siblings(".selected") 其作用是筛选给定的同胞同类元素(不包括给定元素本身 ...

  9. MyEclipse 搭建webservice (axis1.4)

    0 引言  以前都是做javaweb的 最近因工作需要 接触了webservice 关于什么事webservice,与web的区别,soap,跟http的区别,asix1和asix2的区别,为什么不用 ...

  10. javascript进阶——面向对象特性

    面向对象的javascript是这门语言被设计出来时就考虑的问题,熟悉OOP编程的概念后,学习不同的语言都会发现不同语言的实现是不同的,javascript的面向对象特性与其他具有面向对象特性的语言的 ...