一个典型的存储系统一般是有几片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. 分享4个网址二维码API接口

    说明:把url=后面的网址改成你的,四种任选一.http://pan.baidu.com/share/qrcode?w=150&h=150&url=http://lanyes.org ...

  2. java Spring 在WEB应用中的实例化

    .前面讲解的都是通过直接读取配置文件,进行的实例化ApplicationContext AbstractApplicationContext app = new ClassPathXmlApplica ...

  3. Path类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  4. ACM/ICPC ZOJ1006-Do the Untwist 解题代码

    #include <iostream> #include <string> #include <stdlib.h> using namespace std; int ...

  5. 常见错误总结_1_对java类进行修改后,无法按修改的类型加载

    1.这是因为没有run的原因,对类进行修改一定要run一遍 2.至于要不要重新tomcat部署,取决于你是修改了变量还是方法,拿不定的时候都重新加载一遍看看.

  6. 几种JavaScript富应用MVC MVVM框架

    Ember.js.Backbone.js.Knockout.js.Spine.js.Batman.js , Angular.js 前端中的MVVM设计模式让UI与数据模型可以很轻松的相互更新,这意味着 ...

  7. 淘宝开源Web服务器Tengine安装教程

    简介Tengine是由淘宝核心系统部基于Nginx开发的Web服务器,它在Nginx的基础上,针对大访问量网站的需求,添加了很多功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,淘宝商 ...

  8. iOS 动画基础

    原文:http://www.cnblogs.com/lujianwenance/p/5733846.html   今天说一下有关动画的基础,希望能帮助到一些刚接触iOS动画或者刚开始学习iOS的同学, ...

  9. iOS支付宝集成步骤;王刚韧的技术博客

  10. zlib压缩解压示例

    #include <stdio.h> #include <string.h> #include <assert.h> #include "zlib.h&q ...