Multi-Die系统介绍
一个典型的存储系统一般是有几片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系统介绍的更多相关文章
- 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 ...
- 艺萌TCP文件传输及自动更新系统介绍(TCP文件传输)(四)
艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开源,作者是英国的,开发时间5年多,框架很稳定. 项 ...
- 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)
艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...
- 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 ...
- python学习笔记4-redis multi watch实现锁库存
python 关于redis的基本操作网上已经很多了,这里主要介绍点个人觉得有意思的内容1.redis的事务操作以及watch 乐观锁:后面描述2.tornado下异步使用redis的方式 ...
- Elasticsearch——multi termvectors的用法
前一篇已经翻译过termvectors的使用方法了,这对于学习如何使用tf-idf来说是很有帮助的了. 更多内容参考我整理的ELK教程 什么是TF-IDF? 今天早晨起来,看<ES IN ACT ...
- Linux文件系统介绍(转)
文章转自:http://www.iteye.com/topic/816268 文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文 ...
- php的exit和die
首先, 两者是相等的: exit is equivalent to die; 其次, 都是语言构造器, language construct. 不是函数! 后面的内容用括号括起来只是为了方便... 用 ...
- IE6 Must Die
最近 Twitter 上很多人在推一个名为 IE6 Must Die 的活动, 参与的朋友可以通过头像转换服务在自己的头像上加上一个禁止 IE6 的图标, 很是拉风. Internet Explore ...
- Xamarin Android教程Android基本知识版本介绍与系统介绍
Xamarin Android教程Android基本知识版本介绍与系统介绍 Xamarin Android教程Android基本知识版本介绍与系统介绍,开发Andriod有时候不像iOS一样轻松,因为 ...
随机推荐
- .Net程序员快速学习安卓开发-布局和点击事件的写法
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 本系列课程 致力于老手程序员可以快速入门学习安卓开发.系统全面的从一个.Net程序员的角度一步步学习总结安 ...
- SQL语句修改表
-- 更改字段类型 默认值 alter table 表名 alter column 字段名 类型 ALTER TABLE 表名 add DEFAULT ('修改后的默认值') for 字段名 WITH ...
- LSJ_NHibernate第二章 ManagerPage
前言: 项目为传统的三层架构,可以根据个人的需求进行拓展. 很多人都在质疑B层的作用,我认为B层才是核心,这个取决于业务的复杂度 项目的结构也比较的简单,我们先从最底层说起,ManagerPage,这 ...
- 取caml查询结果的前多少行
取查询结果的前多少行的方法?spQuery.RowLimit = 1; SPList list = SPContext.Current.Web.Lists[ListNames. ...
- sharedPreference的奇怪bug
一定要清楚sp的结构,而且要知道是什么类型的.类型不对,会引起很多不知道的bug,比如本来是int类型的值,如果用String的类型去匹配,会让Activity开Activity Thread,不断地 ...
- problems record
1,java类中字体MS Gothic 2,得到请求资源,例如,http://localhost:8080 public static URL serverURL(HttpServletRequest ...
- MVC小系列(六)【无刷新的验证码】
做个无刷新的验证码功能: 第一步:首先,在公用项目中建立一个生成图片验证码的类型ValidateCode /// <summary> /// 生成验证码对象 /// </summar ...
- Jquery基础整理
1.简单的JQuery (1) $(document).ready(function(){ $(document).ready(mydays); alert(“加载完毕,请检查!”); functi ...
- powerbulider9.0在数据窗口中实现滚动到新添加行
powerbuilder9.0对数据窗口进行增加行操作,然后实现滚动到指定行时,应先滚动到指定行dw_1.scrolltorow( row),然后设置新添加的行为当前行dw_1.setrow( row ...
- 14_Xml继承
[工程截图] [Person.java] package com.HigginCui; public class Person { private String name; public String ...