CN102915274B - 存储装置 - Google Patents
存储装置 Download PDFInfo
- Publication number
- CN102915274B CN102915274B CN201210070944.7A CN201210070944A CN102915274B CN 102915274 B CN102915274 B CN 102915274B CN 201210070944 A CN201210070944 A CN 201210070944A CN 102915274 B CN102915274 B CN 102915274B
- Authority
- CN
- China
- Prior art keywords
- mentioned
- write
- size
- write data
- data division
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2224/00—Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
- H01L2224/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L2224/42—Wire connectors; Manufacturing methods related thereto
- H01L2224/47—Structure, shape, material or disposition of the wire connectors after the connecting process
- H01L2224/48—Structure, shape, material or disposition of the wire connectors after the connecting process of an individual wire connector
- H01L2224/4805—Shape
- H01L2224/4809—Loop shape
- H01L2224/48091—Arched
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2224/00—Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
- H01L2224/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L2224/42—Wire connectors; Manufacturing methods related thereto
- H01L2224/47—Structure, shape, material or disposition of the wire connectors after the connecting process
- H01L2224/48—Structure, shape, material or disposition of the wire connectors after the connecting process of an individual wire connector
- H01L2224/481—Disposition
- H01L2224/48135—Connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip
- H01L2224/48145—Connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip the bodies being stacked
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2224/00—Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
- H01L2224/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L2224/42—Wire connectors; Manufacturing methods related thereto
- H01L2224/47—Structure, shape, material or disposition of the wire connectors after the connecting process
- H01L2224/48—Structure, shape, material or disposition of the wire connectors after the connecting process of an individual wire connector
- H01L2224/481—Disposition
- H01L2224/48135—Connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip
- H01L2224/48145—Connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip the bodies being stacked
- H01L2224/48147—Connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip the bodies being stacked with an intermediate bond, e.g. continuous wire daisy chain
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2224/00—Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
- H01L2224/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L2224/42—Wire connectors; Manufacturing methods related thereto
- H01L2224/47—Structure, shape, material or disposition of the wire connectors after the connecting process
- H01L2224/49—Structure, shape, material or disposition of the wire connectors after the connecting process of a plurality of wire connectors
- H01L2224/491—Disposition
- H01L2224/4912—Layout
- H01L2224/49175—Parallel arrangements
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2225/00—Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
- H01L2225/03—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
- H01L2225/04—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
- H01L2225/065—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
- H01L2225/06503—Stacked arrangements of devices
- H01L2225/06555—Geometry of the stack, e.g. form of the devices, geometry to facilitate stacking
- H01L2225/06562—Geometry of the stack, e.g. form of the devices, geometry to facilitate stacking at least one device in the stack being rotated or offset
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/10—Details of semiconductor or other solid state devices to be connected
- H01L2924/11—Device type
- H01L2924/13—Discrete devices, e.g. 3 terminal devices
- H01L2924/1304—Transistor
- H01L2924/1306—Field-effect transistor [FET]
- H01L2924/13091—Metal-Oxide-Semiconductor Field-Effect Transistor [MOSFET]
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/15—Details of package parts other than the semiconductor or other solid state devices to be connected
- H01L2924/181—Encapsulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Semiconductor Memories (AREA)
- Non-Volatile Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供存储装置,具备:以多个单元为写入单位而写入数据的非易失性的存储器;以及控制器。控制器对于来自主机装置的、将分配了逻辑地址的写入数据写入存储器的请求,对主机装置请求对于写入数据的分割部分、即写入数据部分指定其大小并进行发送。此外,控制器对写入数据附加数据而写入存储器。写入数据部分具有以该写入数据部分与对应的附加数据的总和的大小在写入单位的大小以下成为最大的方式确定的大小或其整数倍的大小。
Description
关联申请
本申请享有以日本专利申请2011-168552号(申请日:2011年8月1日)为基础申请的优先权。本申请通过参照该基础申请而包含基础申请的全部内容。
技术领域
本发明的实施方式涉及存储装置。
背景技术
作为保存数据的媒体,存在各种类型。作为这样的媒体,例如有基于客户机-服务器模型的存储装置。在基于客户机-服务器模型的、包含存储装置及主机装置的存储***中,存在与其他的存储***不同之处。例如,基于客户机-服务器模型的存储装置及主机装置的任务分担,与不基于客户机-服务器模型的存储装置及主机装置的任务分担不同。因而,主机装置与存储装置之间的通信内容,在基于客户机-服务器模型的***与不基于该模型的***中也不同。
存储***有时遵照特定的标准。例如,作为基于客户机-服务器模型的存储***,例如举出UFS(UniversalFlashStorage,通用闪存)存储装置及主机装置。关于由标准规定的方面,存储***必须遵照规范。但是,也存在未由标准规定的方面,关于这样的方面,能够由存储***的设计者确定。关于这样存在自由度的事项,应该确定得以适合于存储***的特性的形式实现优选的性能。期望对于伴有这样的自由度的事项进行适合的确定,提供能够实现更高性能的存储装置。
发明内容
本发明的实施方式,提供能够实现更高性能的存储装置。
实施方式所涉及的存储装置,包含以多个单元为写入单位而写入数据的非易失性的存储器;以及控制器。控制器对于来自主机装置的、将分配了逻辑地址的写入数据写入存储器的请求,对主机装置请求对于写入数据的分割出的部分、即写入数据部分指定其大小地进行发送。此外,控制器对写入数据附加附加数据而写入存储器。写入数据部分具有以该写入数据部分与对应的附加数据的总和大小在写入单位的大小以下成为最大的方式确定的大小(长度,尺寸)或其整数倍的大小。
根据本发明的实施方式,能够提供能够实现更高性能的存储装置。
附图说明
图1表示存储装置与主机装置之间的数据写入时的通信的例子。
图2表示参考例的基于客户机-服务器模型的存储装置与主机装置之间的数据写入时的通信的例子。
图3表示第1实施方式所涉及的存储装置的硬件上的结构。
图4是例示存储器的电路图。
图5是例示存储空间的构成的图。
图6是表示存储装置被封装起来的形态的例子。
图7表示第1实施方式所涉及的存储装置的功能块。
图8表示包的例子。
图9表示逻辑地址与物理块的变换表的例子。
图10是更详细地表示第1实施方式所涉及的LU的功能框图。
图11表示第1实施方式所涉及的数据写入时的通信的状况。
图12例示写入指令。
图13例示用于传送请求的通信内容。
图14例示用于数据传送的通信内容。
图15表示第2实施方式所涉及的数据写入时的通信的状况。
图16表示第3实施方式所涉及的数据写入时的通信的前半部分的状况。
图17表示第3实施方式所涉及的数据写入时的通信的后半部分的状况。
图18例示第1实施方式所涉及的1页中的数据的内部。
具体实施方式
在实施方式的说明之前,关于参考例简单地进行说明。作为参考例,关于基于客户机-服务器模型的存储***及不基于客户机-服务器模型的存储***进行说明。作为不基于客户机-服务器模型的存储***,取SDTM卡及eMMC为例。
图1表示存储装置(SDTM卡或eMMC)与主机装置之间的数据写入时的通信的例子。如图1所示,主机装置发布写入指令,由此开始写入。写入指令包含分配给写入数据的逻辑地址。逻辑地址对应于写入数据的开始位置。存储装置若接收到写入指令,则返回响应。主机装置若接收到响应,则向存储装置传送应该写入的数据(写入数据)。写入数据被分割为多个写入数据部分而传送。写入数据部分的大小,基于SDTM卡或eMMC的标准而预先确定。存储装置在接收数据的期间,使用就绪/忙信号通知就绪状态。存储装置,将接收的数据逐次写入存储装置内的存储器。另一方面,若例如因存储装置的缓冲器存满等原因而存储装置无法接收数据,则存储装置对主机装置通知忙状态。在存储装置的忙状态期间,主机装置中断数据的传送。若忙状态解除,则主机装置进而传送写入数据部分数据。这样,若接收到写入数据的全体,则主机装置发送写入停止指令。存储装置若接收到写入停止指令,则返回响应,从而写入结束。
这样,数据的写入位置由主机装置指定,写入数据部分的大小也由标准规定。即,在参考例的存储***中,主机装置具有数据传送的主导权,主机装置对存储装置发出指示,存储装置遵从该指示。存储装置所具有的自由度小。
图2表示基于客户机-服务器模型的存储装置与主机装置之间的数据写入时的通信的例子。如图2所示,主机装置发布写入指令,由此开始写入。写入指令包含指定写入的位置的逻辑地址和该写入指令的对象写入数据的大小的信息。若接收到写入指令,则存储装置确定写入数据的传送请求的内容。在传送请求中,包含写入数据之中的、存储装置期望从主机装置传送的部分的大小及偏移地址。偏移地址用于确定存储装置期望传送的部分的位置。主机装置若接收到传送请求,则向存储装置传送所请求的数据部分。存储装置执行将接收到的数据部分写入存储器的工作、发送其他的数据部分的传送请求的工作。该写入和传送请求持续至写入数据全体被写入为止。根据写入数据全体的写入的成功或失败,存储装置向主机装置发送相应的响应。
这样,在图2的例子中,存储装置确定写入数据部分,发送传送请求。在其写入中,存在由标准规定的事项和不由标准规定的事项。例如,由存储装置产生的传送请求内的偏移地址是顺序的还是随机的,在主机装置中任意地设定,偏移地址的选择必须遵照该设定。另一方面,例如由传送请求指定的数据部分的大小有时并不在规范中规定。
以下,关于基于这样的知识而构成的实施方式,参照附图进行说明。另外,在以下的说明中,关于具有大致相同的功能及结构的构成要素,赋予同一符号,并仅在必要的情况下进行重复说明。此外,以下所示的各实施方式,是例示用于将该实施方式的技术思想具体化的装置和/或方法的方式,实施方式的技术思想并不是要将构成部件的材质、形状、构造、配置等确定为下述的方式。实施方式的技术思想,在权利要求的范围内能够加以各种变更。
(第1实施方式)
图3概略地表示第1实施方式所涉及的存储装置。图3表示存储装置的硬件上的结构。如图3所示,存储装置(半导体存储装置)1构成为能够与主机装置(以下有时简称为主机)2通信。存储装置1与主机2以下述方式进行通信,即:至少对于来自主机2的写入请求,存储装置1能够指定写入数据的部分的大小及位置。更具体地,存储装置1与主机2基于客户机-服务器模型进行通信。存储装置1作为目标进行工作,主机2作为发起方进行工作。作为进一步具体的例子,存储装置1是UFS存储装置,主机2是支持UFS存储装置的主机。
存储装置1至少包括:非易失性的半导体存储器11和用于控制存储器11的存储器控制器12。存储器11以包括多个位的特定的写入单位进行数据的写入及读出。进而,存储器11以包括多个写入单位的擦除单位擦除数据。
例如,存储器11包括一个或多个NAND型闪存。在存储器11为NAND型闪存的情况下,存储器11以页单位进行数据的写入及读出。页,如图4所示,包括相连接的多个存储单元的集合的存储空间,被分配特有的物理地址。各存储单元包括所谓层叠栅构造的MOSFET(metaloxidesemiconductorfieldeffecttransistor,金属氧化物半导体场效应晶体管)MT。各单元晶体管MT,其阈值电压与蓄积于浮游栅电极FG的电子的数量相应地变化,存储与该阈值电压的不同相应的信息。单元晶体管MT其电流路径(源/漏SD)彼此相互串联连接而构成NAND串,在NAND串的两端连接选择晶体管S1、S2。选择晶体管S2的电流路径的另一端连接于位线BL,选择晶体管S1的电流路径的另一端连接于源线SL。
字线WL0~WL63在WL方向延伸,连接于属于相同行的多个单元晶体管MT的控制栅电极CG。单元晶体管MT设置于位线BL与字线WL的各交点处。选择栅线SGD在WL方向延伸,连接于块内的全部选择晶体管S2。选择栅线SGS在WL方向延伸,连接于块内的全部选择晶体管S1。与相同字线WL连接的多个存储单元晶体管MT构成页。
在存储器11为NAND型闪存的情况下,也可以将存储器11构成为:单元晶体管MT能够取得2个以上的阈值电压的不同状态、即1个存储单元能够存储多值(多位)。在这样的能够存储多值的存储器的情况下,对1条字线分配多个页。
存储器11如图5所示,具备:包含多个存储单元的存储单元阵列91;和在与存储单元之间进行数据的输入输出的页缓冲器92。页缓冲器92保存1页量的数据。在进行向存储器11的数据的写入的情况下,存储器控制器12与写入指令一同向存储器11发送表示写入目的地的页地址和1页量的写入数据。存储器11将从存储器控制器12接收到的写入数据存储于页缓冲器92,并将页缓冲器92内的写入数据向由页地址指定的存储单元写入。若开始该向存储单元的写入工作,则存储器11对存储器控制器12输出表示处于工作中的忙信号。在继续写入数据的情况下,在忙信号切换为就绪信号之后,对下一页地址进行与上述同样的工作。
在进行从存储器11的数据读出的情况下,存储器控制器12与读出指令一同向存储器11发送表示读出目的地的页地址。存储器11从由页地址指定的存储单元向页缓冲器92读出1页量的数据。若开始该从存储单元的读出工作,则存储器11对存储器控制器12输出忙信号。然后,在忙信号切换为就绪信号之后,将存储于页缓冲器92的读出数据输出至存储器控制器12。在继续读出数据的情况下,对下一页地址进行与上述同样的工作。
此外,在存储器11为NAND型闪存的情况下,存储器11以块单位进行数据的擦除。各块包含具有连续的物理地址的多个页。在以下的说明中,为了方便,将写入单位设定为页,将擦除单位设定为块。但是,存储器11并不一定限于NAND型闪存。
返回到图3,存储装置1包含I/O21、核心逻辑部22和I/O23。I/O21包含用于将存储装置1与主机2相连接的硬件上的结构。在存储装置1为UFS存储装置的情况下,在存储装置1与主机2之间的信号中,包含RESET、REF_CLK、DOUT、DOUT_c、DIN、DIN_c、VCC、VCCQ、VCCQ2、VDDi、VDDi2、VDDi3。RESET、REF_CLK、DOUT、DOUT_c、DIN、DIN_c在主机2与I/O21之间通信。RESET是硬件复位信号。REF_CLK是参照时钟。DOUT和DOUT_c形成差动信号对,是从主机2向存储装置1发送的信号。DIN和DIN_c形成差动信号对,是从存储装置1向主机2发送的信号。VCC、VCCQ、VCCQ2是供给于存储器11及核心逻辑部22的电源电压。VDDi、VDDi2、VDDi3供给于核心逻辑部22,是在核心逻辑部22内设置电压调节器时的输入端子。
核心逻辑部22是存储器控制器12之中的除I/O之外的主要部分。I/O23包含用于将存储器控制器12与存储器11相连接的硬件上的结构。核心逻辑部22包含:主机接口31、缓冲器32、数据总线33、存储器接口34、缓冲器35、ECC电路36、控制总线41、CPU(centralprocessingunit,中央处理单元)42、ROM(readonlymemory,只读存储器)43、工作RAM(randomaccessmemory,随机存储器)45、寄存器46。
I/O21与主机接口31连接。主机接口31进行存储装置1与主机2通信所需的处理。更具体地,主机接口31遵照存储装置1和主机2都遵从的通信协议承担存储装置1与主机2之间的通信。在存储装置1为UFS存储装置的情况下,例如主机接口31为UFS接口。UFS接口对于物理层遵照M-PHY标准,对于链路层遵照UniPro标准。
主机接口31与缓冲器32连接。缓冲器32经由主机接口31接收从主机2向存储装置1发送的数据,并暂时保存之。此外,缓冲器32暂时保存从存储装置1经由主机接口31向主机2发送的数据。缓冲器32与数据总线33连接。
I/O23与存储器接口34连接。存储器接口34进行存储器控制器12与存储器11通信所需的处理。更具体地,存储器接口34以存储器11可以识别的形式发送来自核心逻辑部22的指示。在存储器11为NAND型闪存的情况下,存储器接口34为NAND型快闪接口。
存储器接口34与缓冲器35连接。缓冲器35经由存储器接口34接收从存储器11向存储器控制器12发送的数据,并暂时保存之。此外,缓冲器35暂时保存从存储器控制器12经由存储器接口34向存储器11发送的预定数据。缓冲器35与数据总线33连接。存储器接口34及缓冲器35与ECC(errorcorrectingcode,纠错码)电路36连接。ECC电路36与数据缓冲器35连接。ECC电路36经由数据总线33接收来自主机2的写入数据,对写入数据附加纠错码,并将附加了纠错码的写入数据供给到缓冲器35。此外,ECC电路36经由缓冲器35接收从存储器11供给的数据,对该数据使用纠错码进行纠错,并将进行了纠错的数据供给至数据总线33。
在控制总线41上,连接着CPU42、ROM43、RAM45、寄存器46。CPU42、ROM43、RAM45、寄存器46经由控制总线41相互通信。CPU42管理存储装置1的全体的工作。CPU42按照存储于ROM43的控制程序(指令)执行预定的处理。CPU42按照控制程序、按照从主机2接收的指令执行对于存储器11的预定处理。
ROM43存储由CPU42控制的控制程序等。RAM45作为CPU42的工作区域而使用,暂时存储CPU42的工作所需的变量等。寄存器46保存存储装置1的工作所需的各种值。此外,寄存器46保存主机2对存储装置1进行控制所需的各种值。
在控制总线41上,连接着主机接口31、缓冲器32、存储器接口34、缓冲器35。CPU42基于控制程序和/或来自主机2的指示,控制主机接口31、缓冲器32、存储器接口34、缓冲器35。在存储器控制器12中,也可以设置模拟电路51。
存储装置1例如既可以是通过焊料安装在印刷基板上的嵌入型,也可以是相对于设置于主机2的卡槽可以装卸的可移动型。图6表示封装的形态的存储装置1的例子。如图6所示,在印刷基板201上层叠有芯片状的多个存储器11。各存储器11通过引线202连接于印刷基板201上的布线图形(未图示)。芯片状的存储器控制器12也设置于印刷基板201上,通过引线202连接于布线图形。在印刷基板201的背面,设置有未图示的外部端子(例如BGA(ballgridarray,球栅阵列))。对于外部端子,分配图3所示的信号(RESET、REF_CLK、DOUT、DOUT_c、DIN、DIN_c、VCC、VCCQ、VCCQ2、VDDi、VDDi2、VDDi3),经由该外部端子在与存储装置1外部的主机2之间进行信号的通信。印刷基板201、存储器11、存储器控制器12、引线202例如通过树脂制的封装203而封装。
接着,在图7中示出存储装置1的结构的另外的视点。更具体地,图7表示存储装置1的逻辑结构、即功能块。各块可以作为硬件、计算机软件的任意一种或两者的组合而实现。各功能块作为硬件而实现还是作为软件而实现依赖于对于具体的实施方式或***整体所要求的设计限制。本领域技术人员在各具体的实施方式中能够以各种方法实现这些功能,任一实现方法都包含于实施方式的范围。此外,如以下的具体例那样来区别各功能块并不是必须的。例如,一部分功能也可以由与在以下的说明中所例示的功能块不同的功能块来执行。进而,也可以将例示的块进一步分割为详细的功能子块。通过哪一块来确定,并不是限定实施方式的内容。
存储装置1包括:目标端口61、路由器62、装置管理器63、描述符64、属性65、标志66、多个LU(Logicalunit,逻辑单元)67。目标端口61是用于将存储装置1与主机2可以通信地相连接的端口,例如对应于主机接口31。路由器62将从主机2接收的通信(任务、指令、数据、查询等)路由至目的地的LU67。主机2通过以一个LU67为目的地的请求来请求指令的处理或任务管理功能。LU67彼此可以根据地址(例如LUN(logicalunitnumber,逻辑单元号))来相互识别。LUN例如如图8所示,可以包含于存储装置1与主机2之间的通信(包)。如图8所示,包101包含LUN102和实体部103。LUN102例如可以包含于包101的包头。实体部103包含包的功能所特有的内容,例如指令、数据、各种参数等。各包的目的地的LU67根据LUN唯一地确定。在UFS存储装置中,存储装置1与主机2之间的包都包含包头,在包头内描述了LUN。
路由器62将从主机2接收到的通信(任务、指令、数据、查询),基于该通信中的LUN路由至目的地的LU67。此外,路由器62将来自多个LU67的以主机2为目的地的通信例如通过时分复用以适当的顺序发送至目标端口61。路由器62例如通过CPU42、ROM43、寄存器46来实现。即,通过CPU42边参照寄存器46中的值边执行ROM43中的程序,由此来实现。
装置管理器63进行装置级别的工作及配置的管理。在装置级别的管理中,例如包含存储装置1的电源管理、睡眠等的控制等。在装置级别的配置中,包含保存描述符组等。装置管理器63处理来自主机2的存储装置1的配置信息的变更及作为输出请求的查询请求那样的指令。装置管理器63例如通过CPU42、ROM43、寄存器46实现。即,通过CPU42,边参照寄存器46中的值边执行ROM43中的程序,由此来实现。
描述符64、属性65、标志66例如作为工作RAM45中的数据而实现。描述符64具有预先定义的格式的数据结构,用于描述关于存储装置1的某种特征。在描述符64中,例如包含访问存储装置1所需的装置类、子类、协议等。属性65是表示对存储装置1提供的设定的可以变更或读出专用的参数。在属性65中,例如包含可以在存储装置1与主机2之间传送的数据的最大值等。标志66包括关于各种项目的择一的逻辑值,例如通过“真”或“假”、或者“0”或“1”等来表示。
各LU67例如通过存储器11、存储器接口34、缓冲器35、ECC电路36、CPU42、ROM43、寄存器46实现。各LU67相互独立,执行来自主机2的处理。从而,各LU67利用存储器11、接口21、23、缓冲器35、ECC电路36、CPU42、ROM43、寄存器46等资源的一部分而实现。各LU如上所述从主机2通过确定一个LU的LUN而相互区别。来自主机2的指令通过所指定的LU67而执行。
各LU67包含装置服务器71、任务管理器72、存储区域73。存储区域73包含存储器11的存储区域之中的一部分,实际存储来自主机2的写入数据。装置服务器71及任务管理器72例如通过CPU42、ROM43、寄存器46实现。即,通过CPU42,边参照寄存器46中的值边执行ROM43中的程序,由此来实现。装置服务器71对从主机2接收的请求LU级别的处理的指令进行解释、执行。在这样的处理中,例如包含数据的写入、读出、擦除(删除)等。LU67包含存储区域73,所以装置服务器71至少具有控制存储区域73(存储器11)的功能。任务管理器72控制多个指令(任务)的执行顺序,提供任务管理功能。
如上所述,装置服务器71进行与存储器11的控制有关的处理。在这样的处理中,包含逻辑地址与物理地址的转换。逻辑地址是由主机2对主机2所期望写入存储装置1的数据分配的地址。物理地址如上所述是用于确定存储器11的写入区域(页)或擦除区域(块)的地址。装置服务器71管理与自身对应的存储区域73所实现的数据的存储状态。所谓存储状态的管理,包含管理:哪一物理地址的页(或物理块)保存哪一逻辑地址的数据的关系及哪一物理地址的页(或物理块)处于擦除状态(任何都未写入或保存无效数据的状态)。为了该管理,装置服务器71例如保存逻辑地址-物理地址变换表(以下,有时简称为变换表)。
作为变换的例子,例如如图9所示,能够将分配设定为块。对各块中的各页,分配特有的逻辑地址偏移量。图9表示存储器11的写入单位的大小为16kB、逻辑地址按每512B大小的数据进行分配的例子。
接着,参照图10及图11,关于数据写入时的工作进行说明。图10是更详细地表示第1实施方式所涉及的LU67的功能框图。图11表示第1实施方式所涉及的数据写入时的通信的状况。多个LU67之中的至少一个、典型为全部具有以下参照图10所说明的结构。如图10所示,装置服务器71包含管理部81、指令分析部82、传送请求生成部83和存储器控制部84。
管理部81管理装置服务器71的全体。指令分析部82从主机2经由路由器62接收指令。指令分析部82对所接收的指令进行分析。指令控制部82若接收到写入指令,则对传送请求生成部83请求传送请求的确定(生成)。该向传送请求生成部83的请求,既可以由指令分析部82直接进行,也可以由管理部81进行。传送请求生成部83若接收到请求,则基于写入指令中所包含的写入数据的大小及地址生成传送请求。存储器控制部84按照管理部81的指示,承担对于存储器11的所有指示的发布。
接着,参照图11,关于数据写入时的序列进行说明。本例涉及对于一个LU67的数据写入请求。因此,各通信都相当于该一个LU67与主机2之间的通信(包(分组))。
如图11所示,写入指令从主机2发送至存储装置1。写入指令如图12所示,至少包含LUN102、写入指示111、地址112、写入数据大小113。地址112是写入数据的写入位置(逻辑地址)。写入数据大小113表示写入数据的全体大小。
在UFS存储***中,数据、指令、查询等都通过包传送。在存储装置1及主机2是UFS存储***的情况下,写入指令相当于指令传送包(CommandUPIU)。指令传送包包含包头(报头),在包的实体部包含指令描述部,在指令描述部中存储SCSI(smallcomputersysteminterface,小型计算机***接口)指令。在SCSI指令中,包含写入指令111、地址112、写入数据大小113。
写入指令通过目的地的LU67中的指令分析部82接收。若所接收的指令是写入指令,则指令分析部82直接或经由管理部81向传送请求生成部83请求传送请求的生成。若接收到生成请求,则传送请求生成部83考虑存储器11的特性,具体地考虑写入数据的逻辑地址及大小,来生成传送请求。更具体地,首先,传送请求生成部83参照写入数据的逻辑地址,检查写入请求是否相当于从写入目的地的页的开头开始的写入请求。在本例中,逻辑地址为0x0000,这相当于从块(即页)的开头开始的写入请求。传送请求生成部83若得知此情况,则对主机2请求写入数据之中的等于1页大小的部分的传送。这是因为,存储器11由于以页单位进行数据写入,所以若按写入数据之中的与1页相等的部分(写入数据部分)接收数据,则可高效地写入数据。相反,若例如为页的1.5倍的大小等,则由于写入数据部分的进而一部分需要暂时存储于缓冲器的原因,所以有可能降低数据写入效率。这样,如果写入请求相当于从写入目的地的页的开头开始的写入,则传送请求生成部83从写入数据全体的开头请求页大小部分的传送。更具体地,若根据本例,则生成从逻辑地址0x0000开始的16kB大小的写入数据部分的传送请求。该传送请求,如图11所示,经由管理部81、路由器62发送至主机2。另外,关于写入请求不相当于从页的开头开始的写入请求的情况,在第2实施方式中进行说明。
传送请求如图13所示,包含LUN(包头)102、传送数据地址121、传送数据大小122。传送数据地址121表示LU67请求传送的写入数据部分的偏移地址。传送数据大小122表示对应的写入数据部分的大小。在存储装置1及主机2为UFS存储***的情况下,传送请求相当于传送请求包(ReadyToTransferUPIN,传送就绪UPIN)。传送请求包在包的实体部中表示LU67能够进行数据传送的准备,并且包含传送数据地址121、传送数据大小122。
如图11所示,主机2若接收到传送请求,则发送与该传送请求对应的写入数据部分。传送数据如图14所示,包含LUN(包头)102、数据131。在存储装置1及主机2为UFS存储***的情况下,数据传送通过主机数据传送包(DataOutUPIN)传送。主机数据传送包在包的实体部中包含应该传送的数据。
来自主机2的写入数据部分,在存储装置1中接收,更具体地,由发布了对应的传送请求的LU67接收。所接收的写入数据部分通过存储器控制部84的控制而写入存储区域73的适合的位置。
接着,传送请求生成部83生成下一传送请求。该传送请求请求写入数据全体之中的最初的写入数据部分后续的页大小的部分的传送。该第2个写入数据部分相当于从逻辑地址0x0020开始的16kB大小的写入数据部分。传送请求被发送至主机2。接着,对应的数据部分以与参照第1个数据部分所说明的步骤同样的步骤写入存储区域73。
以下,反复同样的处理。即,传送请求生成部83生成第2个写入数据部分后续的从逻辑地址0x0040开始的16kB大小的第3个写入数据部分的传送请求。与之相应地,对应的数据部分被写入至存储区域73。进而,传送请求生成部83生成第3个写入数据部分后续的从逻辑地址0x0060开始的16kB大小的最后的写入数据部分的传送请求。与之相应地,对应的数据部分被写入至存储区域73。最后的写入数据部分的大小也为16kB。这是因为,写入数据的大小是页大小的整数倍,并且写入请求相当于从页的开头开始的写入请求。若最后的写入数据部分的传送请求的发送及写入结束,则对应的LU67的装置服务器71(更具体地为管理部81)向主机2发送写入成功的内容的响应。于是,数据写入结束。
如以上说明,第1实施方式所涉及的存储装置1具有对来自主机2的数据写入请求确定应该传送的各写入数据部分的大小的权限,并且请求页大小的写入数据部分的传送。因此,一次传送的写入数据部分具有页大小并且其开头及结尾与写入目的地的页的开头及结尾一致。于是,存储装置1能够与将接收的写入数据部分写入存储器11并行地,接收下一写入数据部分。在数据的写入中,存储器成为忙状态,但是存储器11以接收写入数据为基础。通过这样的写入序列,存储器11可高效地进行写入。
此外,在无论在写入数据的部分是否已经存储有数据、对曾经写入了数据的页均不擦除该数据地禁止再次写入数据的存储器中,在以存储器的页大小以上的单位进行逻辑地址与物理地址的转换的情况下,若为了不产生页的部分写入而从主机2不传送写入数据部分,则会降低写入效率。例如,在逻辑地址与物理地址的变换中,从0x0000至0x001F的逻辑地址对应于存储器11(页大小:16kB)的第1页的物理地址,0x0020至0x003F的逻辑地址对应于存储器11的第2页的物理地址。在此,若从主机传送从逻辑地址0x0010开始的16kB大小的写入数据部分,则逻辑地址0x0020至0x001F的数据存储于第1页的一半,逻辑地址0x0020至0x002F的数据存储于第2页的一半。此后,存储装置若从主机接收从逻辑地址0x0000开始的8kB大小的写入数据部分,则由于向第1页的再写入被禁止,所以必须读出存储于第1页的逻辑地址0x0010至0x001F的数据,与从主机接收的逻辑地址0x0000至0x000F的写入数据部分一起存储于新的第3页。该第3页的写入后,0x0000至0x001F的逻辑地址对应于存储器的第3页的物理地址。这样,若进行页的部分写入,则在从主机接收到对于页的未写入部分的写入请求时,存储装置必须将已写入数据部分复制到新的页。此外,在以存储器的块单位进行逻辑地址与物理地址的转换的情况下,由于必须以块单位将已写入数据复制到新的块,所以写入效率的降低更加显著。
另一方面,第1实施方式所涉及的存储装置1对主机2请求传送的写入数据部分具有页大小,并且其逻辑地址的开头对应于页的开头的物理地址,结尾对应于页的结尾的物理地址。因此,不会产生页的部分写入,能够避免与已写入数据的复制相伴的写入效率的降低。
此外,如上所述ECC电路36对写入数据附加纠错码。具体地,ECC电路36将接收到的数据部分基于ECC电路36的特性等分割为特定大小的部分(成为实数据部分)。并且,ECC电路36按每实数据部分生成ECC,附加于对应的实数据部分。即,实数据部分是用于ECC的处理单位。实数据部分、对应的ECC及对应的管理数据的组例如称为帧等。从ECC电路36输出帧。对应于写入数据的目的地的LU的装置服务器71基于以该帧为对象的接收完毕的数据写入请求,将来自ECC电路36的帧存储于缓冲器35。若存储于缓冲器35的帧的数量达到适当的数量,则对应的装置服务器71将多个帧的组写入对应的存储区域73。
在此,存储装置1考虑帧的大小及各种必要的管理数据的大小,来确定写入数据部分的大小。具体地,存储装置1请求以下述方式确定的大小的写入数据部分,该方式使得:将写入数据部分与对应于其的全部附加的数据(ECC、管理数据)合起来的大小在页以下成为最大。图18例示第1实施方式所涉及的存储装置1生成的1页中的数据的内部。即,存储装置1写入页的结果,请求如图18所示确定的大小的写入数据部分。如图18所示,1帧包括实数据部分301、对应的管理数据302、对应的ECC303。图18例示1024字节的实数据部分301、2字节的管理数据302、76字节的ECC303。进而,在每1页,有时包含管理数据306。对管理数据306也附加ECC307。管理数据306、ECC307的大小分别例如是8字节、76字节。存储装置1请求以下述方式确定的大小的写入数据部分,该方式使得:从页大小除去了将包括写入数据部分的多个实数据部分301与第1附加数据(例如ECC303、307及管理数据302、306)合起来的大小之后的未使用部308的大小,与实数据部分301和附加于该实数据部分的第2附加数据(例如ECC303及管理数据302)的大小相比小。通过使用这样的大小的写入数据部分,能够最大限地利用页。
根据所采用的ECC的方式,来确定相当于ECC处理单位的实数据部分301的大小。同样,也确定管理数据302、ECC303、管理数据307的大小。因而,在页大小以下最大的实数据部分301的个数,依ECC处理单位的大小而定。有时将这样的个数的实数据部分301全体的大小称为最大总实数据部分大小。
(第2实施方式)
第2实施方式涉及写入请求不相当于从页的开头开始的写入请求。第2实施方式所涉及的存储装置,具有与第1实施方式相同的硬件结构(图3)及功能块(图7)。以下,参照图15,关于写入序列,对于与第1实施方式不同的方面进行说明。另一方面,需要注意的是,关于在第2实施方式的说明中未提及的方面,将第1实施方式的描述全部应用于第2实施方式。
图15表示第2实施方式所涉及的数据写入时的通信的状况。如图15所示,主机2所产生的写入请求相当于从某页的中途开始的写入。在图15中,这通过写入数据的逻辑地址为0x0010来表示(在此,在逻辑地址与物理地址的转换中,从0x0000至0x001F的逻辑地址对应于存储器11的1页的物理地址)。另外,写入数据的大小为64kB。指令分析部82分析接收到的写入指令,识别出写入请求相当于从页的中途开始的写入。于是,指令分析部82从写入数据的开头请求相当于直至写入目的地的页的结尾的大小的部分作为第1个写入数据部分。即,在本例中,第1个写入数据部分包括从写入数据的开头开始的8kB部分,更具体地,从逻辑地址0x0010开始,为8kB。传送请求由主机2接收,与之相应地,所请求的写入数据部分由对应的装置服务器71接收。接着,将写入数据部分写入对应的存储区域72。
接着,传送请求生成部83生成第2个写入数据部分的传送请求。第1个写入数据部分的结尾与写入目的地的页的结尾一致。因此,通过将其以下的各写入数据部分设定为页大小,来使各写入数据部分的结尾与写入目的地的页的结尾一致。即,第2个写入数据部分从逻辑地址0x0020开始,大小为16kB。这样的写入数据部分的传送请求被发送至主机2,将对应的写入数据部分写入至存储区域72。接着,从逻辑地址0x0040开始的16kB大小的第3个数据写入部分的传送请求被发送至主机2,将对应的写入数据部分写入至存储区域72。进而,从逻辑地址0x0060开始,16kB大小的第4个数据写入部分的传送请求被发送至主机2,将对应的写入数据部分写入至存储区域72。接着,进行写入数据之中的剩余部分的传送请求及向存储区域72的写入。在本例中,最后的写入数据部分从逻辑地址0x0080开始,为8kB大小。该数据部分的传送请求被发送至主机2,将对应的写入数据部分写入至存储区域72。最后,写入成功的内容的响应被发送至主机2。
若将以上的写入一般化,则成为如下所述。以下的“N(单位为字节)”为页大小。若从主机2接收到从地址Y(512字节单位)开始的X块(1块为512字节)量的写入请求,则在Integer(Y*512/N)小于Integer((Y+X-1)*512/N)的情况下(这是写入数据没有收纳于同一页内的情况),存储装置从写入数据的开头开始请求((Integer(Y*512/N)+1)*N)-Y*512字节量作为第1个写入数据部分。在此,“Integer(P)”(P是任意的数值)是提取P的整数部分的函数。存储装置1将第1个写入数据部分写入存储区域72。接着,存储装置1从第1个写入数据部分后续的部分的开头开始各次连续地,进行Integer((Y+X-1)*512/N)-Integer(Y*512/N)-1次N字节的写入数据部分的向主机2的传送请求及所传送的写入数据部分的写入。最后,存储装置1进行剩余的(Y+X)*512-Integer((Y+X-1)*512/N)*N字节的写入数据部分的向主机2的传送请求及所传送的写入数据部分的写入。在Integer(Y*512/N)与Integer((Y+X-1)*512/N)为相同值的情况下(这是写入数据收纳在同一页内的情况),存储装置1从写入数据的开头请求X*512字节量作为写入数据部分,进行所传送的数据的写入。虽然进行了关于1块为512字节的说明,但是以上的说明可以将值512设定为M而一般化。
以上,如所说明,在第2实施方式所涉及的存储装置中,若接收到相当于从页的中途开始的写入的请求,则首先请求相当于直至写入目的地的页的结尾为止的大小部分作为第1个写入数据部分。其后,存储装置请求页大小的写入数据部分的传送。结果,即使是与从页的中途开始的数据写入对应的请求,各写入数据部分也具有页大小,并且其开头及结尾与写入目的地的页的开头及结尾一致。结果,由于与第1实施方式相同的原理,存储器11可高效地进行写入。
在第2实施方式中,也能够使用考虑了附加数据的大小的写入数据部分。在第2实施方式中,写入请求相当于从页的中途开始的写入。因此,指令分析部82从写入数据的开头请求具有以在直至写入目的地的页的结尾为止的大小以下成为最大的方式确定的大小的第1个写入数据部分。第2个及以后的写入数据部分的大小与上述最大总实数据部分的大小相同。
(第3实施方式)
第3实施方式涉及向2个LU的并行的数据写入。第3实施方式所涉及的存储装置具有与第1实施方式相同的硬件结构(图3)及功能块(图7)。以下,参照图16及图17,关于写入序列,对于与第1实施方式不同的方面进行说明。另一方面,需要注意的是,关于在第3实施方式的说明中未提及的方面,第1实施方式的描述可全部应用于第3实施方式。
图16及图17表示第3实施方式所涉及的数据写入时的通信的状况。
图17是与图16接续的部分。如图16所示,主机2向LUN0的LU(第1LU)67发送将逻辑地址0x0010的写入数据写入至第1LU67的指令。该写入指令与第2实施方式相同,相当于从页的中途开始的写入请求。写入数据的大小为64kB。接着,主机2向LUN1的LU(第2LU)67发送将逻辑地址0x0112的写入数据写入至第2LU67的指令。该写入指令也相当于从页的中途开始的写入请求。写入数据的大小为64kB。以后,第1LU67与主机2之间的处理及第2LU67与主机2之间的处理并行地进行。以下,取第1LU67与主机2之间的通信及第2LU67与主机2之间的通行交替地产生为例。但是,这样交替地产生并不是必须的。第1LU67用的通信与第2LU67用的通信的顺序由路由器62控制。
第1LU67的指令分析部82与第2实施方式同样,对所接收的写入指令进行分析,识别出写入请求相当于从页的中途开始的写入请求。于是,指令分析部82从写入数据的开头,请求相当于直至写入目的地的页的结尾为止的大小的部分作为第1个写入数据部分。即,在本例中,第1LU67用的第1个写入数据部分从写入数据的开头开始包括8kB的部分,更具体地,从逻辑地址0x0010开始为8kB。传送请求由主机2接收,与之相应地,所请求的写入部分由对应的装置服务器71接收。接着,将写入数据部分写入至第1LU67中的存储区域73。
此外,第2LU67的指令分析部82也识别出写入请求请求从页的中途开始的数据写入。并且,指令分析部82从写入数据的开头,请求相当于直至写入目的地的页的结尾为止的大小的部分作为第1个写入数据部分。即,在本例中,第2LU67用的第1个写入数据部分包括从写入数据的开头开始7kB的部分,更具体地,从逻辑地址0x0112开始为7kB。传送请求由主机2接收,与之相应地,所请求的写入部分由对应的装置服务器71接收。接着,将写入数据部分写入至第2LU67中的存储区域73。
第1LU67的指令分析部82生成从第1个写入数据部分后续的逻辑地址即从0x0020开始的16kB大小的第2个写入数据部分的传送请求。与之对应地,将对应的数据部分写入至第1LU67中的存储区域73。
第2LU67的指令分析部82生成从第1个写入数据部分后续的逻辑地址即从0x0120开始的16kB大小的第2个写入数据部分的传送请求。与之对应地,将对应的数据部分写入至第2LU67中的存储区域73。
以下,同样地,关于第1LU67用的第3个写入数据部分、第2LU67用的第3个写入数据部分、第1LU67用的第4个写入数据部分、第2LU67用的第4个写入数据部分,以该列举的顺序进行传送请求及写入对。
接着,进行第1LU67用的写入数据之中的剩余部分、即第4个写入数据部分后续的部分的传送请求及向存储器11的写入。在本例中,最后的写入数据部分从逻辑地址0x0080开始,大小为8kB。该数据部分的传送请求被发送至主机2,将对应的写入数据部分写入至存储区域73。
同样地,进行第2LU67用的写入数据之中的剩余部分、即第4个写入数据部分后续的部分的传送请求及向存储器11的写入。在本例中,最后的写入数据部分从逻辑地址0x0180开始,大小为9kB。该数据部分的传送请求被发送至主机2,将对应的写入数据部分写入至存储区域73。
最后,从第1LU67向主机2发送向第1LU67的写入成功的内容的响应,从第2LU67向主机2发送向第2LU67的写入成功的内容的响应.
如以上所说明,第3实施方式所涉及的存储装置1按每LU与第2实施方式同样地,若接收到相当于从页的中途开始的写入的请求,则首先请求相当于直至写入目的地的页的结尾为止的大小的部分作为第1个写入数据部分。其后,存储装置1按每LU,请求页大小的写入数据部分的传送。因此,即使对于针对2个以上LU的数据写入请求,也由于与第1及第2实施方式相同的原理,可获得与第1及第2实施方式相同的优点。
在第3实施方式中,也可应用关于考虑了附加数据的大小的写入数据部分的第1、第2实施方式用的描述。即,对于关于各LU的相当于从页的中途开始的写入的写入请求,以与第2实施方式相同的形式请求开头的写入数据部分。第2个及以后的写入数据部分的大小与上述的最大总实数据部分的大小相同。
此外,各实施方式并不限定于上述的形态,在实施阶段,可以在不脱离其主旨的范围内进行各种变形。进而,在上述实施方式中包含各种阶段,通过所公开的多个构成要件的适宜组合,能够提取各种实施方式。即使从上述各实施方式所示的全部构成要件删除几个构成要件,也可提取删除了该构成要件后的构成作为实施方式。
例如,在上述的实施方式中,存储装置1向主机2请求传送的写入数据部分是存储器11的1页量的大小,但是该写入数据部分的大小并不限于1页量,而也可以是页大小的整数倍。此外,在上述的实施方式中,在写入请求不相当于从页的开头开始的写入请求的情况下,从写入数据的开头请求相当于直至写入目的地的页的结尾为止的大小的部分作为第1个写入数据部分,但是也可以将该相当于写入目的地的页的结尾为止的大小的部分与其后续的页大小(或者页大小的整数倍)的数据合起来,作为第1个写入数据部分而进行请求。
考虑了附加数据的情况也是相同的。即,写入数据部分的大小也可以是最大总实数据部分大小的整数倍。进而,响应关于各LU的相当于从页的中途开始的写入的写入请求,第1个写入数据部分也可以是以在从写入数据的开头至写入目的地的页的结尾为止的大小以下成为最大的方式确定的大小与其后续的一个或多个最大总实数据部分的大小之和。
虽然描述了几种实施方式,但是这些实施方式仅是作为例子而呈现的,而并不是要限定本发明的范围。这些新的实施方式也可以以其他各种方式实施,在不脱离本发明的主旨的范围,可以进行各种省略、置换和变形。这些实施方式和/或其变形包含于发明的范围和/或主旨,并且包含于权利要求中记载的发明及其均等的范围。
Claims (19)
1.一种存储装置,具备:
存储器,其以多个单元作为写入单位而写入数据;以及
控制器,其对于来自主机装置的、将分配了逻辑地址的写入数据写入上述存储器的请求,对上述主机装置请求发送上述写入数据的分割部分、即写入数据部分,所述写入数据部分的大小由所述控制器指定;
其中,上述控制器,在接收上述写入数据部分时,
分别准备用于上述写入数据部分的附加数据,
在上述存储器写入上述写入数据部分和用于上述写入数据部分的附加数据,
各个上述写入数据部分具有相同的确定的大小,
各个上述附加数据具有相同的确定的大小,
上述写入数据部分具有以上述写入数据部分与用于上述写入数据部分的附加数据的总和的大小在小于上述写入单位的大小的范围内成为最大的方式确定的第1大小,或上述第1大小的整数倍的大小。
2.根据权利要求1所述的存储装置,其中:
各个上述附加数据包含用于对应的写入数据部分的管理数据及用于对应的写入数据部分的纠错码的至少一种。
3.根据权利要求2所述的存储装置,其中:
上述控制器具备按纠错单位生成纠错码的纠错码电路;
各个纠错单位的大小等于各个写入数据部分的大小。
4.根据权利要求3所述的存储装置,其中:
从上述写入单位的大小减去上述写入数据部分及用于上述写入数据部分的上述附加数据的大小之后的部分的大小,小于上述纠错单位与用于上述纠错单位的附加数据的总和的大小。
5.根据权利要求1所述的存储装置,其中:
上述第1大小是以上述写入数据部分和用于上述写入数据部分的上述附加数据的总和的大小在小于上述写入单位的范围内成为最大的方式确定的大小。
6.根据权利要求1所述的存储装置,其中:
上述存储装置是通用闪存存储装置。
7.根据权利要求1所述的存储装置,其中:
上述存储装置包括第1逻辑单元及第2逻辑单元,
该第1逻辑单元及第2逻辑单元分别包含上述控制器的功能的一部分和上述存储器的存储空间的一部分;
上述第1、第2逻辑单元相互独立地将数据写入各自的存储区域,并且发送各自的传送请求。
8.根据权利要求1所述的存储装置,其中:
上述控制器以上述写入数据的开头部分具有第2大小,一个或多个后续部分具有第3大小及最后部分具有第4大小的方式,请求上述写入数据的传送,
上述第3大小大于上述第2大小,
上述第4大小小于上述第3大小。
9.根据权利要求8所述的存储装置,其中:
上述第2大小以在小于写入上述开头部分的上述写入单元的从开头部分到结尾部分的大小的范围内成为最大的方式确定。
10.根据权利要求9所述的存储装置,其中:
上述第3大小以上述一个或多个后续部分及用于上述一个或多个后续部分的附加数据的总和的大小在小于上述写入单位的大小的范围内成为最大的方式确定。
11.根据权利要求8所述的存储装置,其中:
各个上述附加数据包含用于对应的一个上述写入数据部分的管理数据和用于上述对应的一个上述写入数据部分的纠错码中的至少一种。
12.根据权利要求11所述的存储装置,其中:
上述控制器具备按纠错单位生成上述纠错码的纠错码电路;
各个上述纠错单位的大小等于各个上述写入数据部分的大小。
13.根据权利要求8所述的存储装置,其中:
上述存储装置是通用闪存存储装置。
14.根据权利要求8所述的存储装置,其中:
上述存储装置包括第1逻辑单元及第2逻辑单元,该第1逻辑单元及第2逻辑单元分别包含上述控制器的功能的一部分和上述存储器的存储空间的一部分;
上述第1、第2逻辑单元相互独立地将数据写入对应的自身的存储区域,并且发送各自的传送请求。
15.一种存储装置,具备:
存储器,其以多个单元作为写入单位而写入数据;以及
控制器,其对于来自主机装置的、将分配了逻辑地址的写入数据写入上述存储器的请求,对上述主机装置请求发送上述写入数据的分割部分、即写入数据部分,所述写入数据部分的大小由所述控制器指定;
其中,上述写入数据部分具有上述写入单位的大小的整数倍的大小。
16.根据权利要求15所述的存储装置,其中:
上述控制器以上述写入数据的开头部分具有第1大小,一个或多个后续部分具有第2大小及最后部分具有第3大小的方式,请求上述写入数据的传送,
上述第2大小大于上述第1大小,
上述第3大小小于上述第2大小。
17.根据权利要求16所述的存储装置,其中:
上述写入单位具有N字节的大小,
上述控制器,若接收到从逻辑地址Y开始的X块量的写入请求,则在Integer(Y*M/N)小于Integer((Y+X-1)*M/N)的情况下,从上述写入数据的开头开始请求((Integer(Y*M/N)+1)*N)-Y*M字节的第1写入数据部分的传送,并从上述第1写入数据部分后续部分的开头开始各次依次连续地、进行Integer((Y+X-1)*M/N)-Integer(Y*M/N)-1次N字节的第2写入数据部分的传送请求,并请求(Y+X)*M-Integer((Y+X-1)*M/N)*N字节的第3写入数据部分的传送,其中,Integer(Y/N)是()内的Y/N的整数部分,Y以M字节为单位,1块为M字节。
18.根据权利要求15所述的存储装置,其中:
上述存储装置包括第1逻辑单元及第2逻辑单元,该第1逻辑单元及第2逻辑单元分别包含上述控制器的功能的一部分和上述存储器的存储区域的一部分;
上述第1、第2逻辑单元相互独立地将数据写入对应的自身的存储区域,并且发送各自的传送请求。
19.根据权利要求15所述的存储装置,其中:
上述写入数据部分具有与上述写入单位相同的大小,
在上述存储器写入的上述写入数据部分的开头及结尾分别与写入了上述写入数据的一个写入单位的开头及结尾一致。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011168552 | 2011-08-01 | ||
JP168552/2011 | 2011-08-01 | ||
JP2012024187A JP5677336B2 (ja) | 2011-08-01 | 2012-02-07 | メモリ・デバイス |
JP024187/2012 | 2012-02-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102915274A CN102915274A (zh) | 2013-02-06 |
CN102915274B true CN102915274B (zh) | 2016-04-06 |
Family
ID=47613647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210070944.7A Expired - Fee Related CN102915274B (zh) | 2011-08-01 | 2012-03-16 | 存储装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9183143B2 (zh) |
JP (1) | JP5677336B2 (zh) |
KR (1) | KR20130018482A (zh) |
CN (1) | CN102915274B (zh) |
TW (1) | TWI553480B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5547154B2 (ja) * | 2011-09-21 | 2014-07-09 | 株式会社東芝 | メモリ・デバイス |
TWI526838B (zh) * | 2013-02-27 | 2016-03-21 | 東芝股份有限公司 | 記憶體裝置 |
US20140310536A1 (en) * | 2013-04-16 | 2014-10-16 | Qualcomm Incorporated | Storage device assisted inline encryption and decryption |
US9137335B2 (en) * | 2013-08-19 | 2015-09-15 | Qualcomm Incorporated | Operating M-PHY based communications over mass storage-based interfaces, and related connectors, systems and methods |
US9824004B2 (en) | 2013-10-04 | 2017-11-21 | Micron Technology, Inc. | Methods and apparatuses for requesting ready status information from a memory |
US10108372B2 (en) | 2014-01-27 | 2018-10-23 | Micron Technology, Inc. | Methods and apparatuses for executing a plurality of queued tasks in a memory |
US9454310B2 (en) * | 2014-02-14 | 2016-09-27 | Micron Technology, Inc. | Command queuing |
KR20150112075A (ko) * | 2014-03-26 | 2015-10-07 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US10146475B2 (en) | 2014-09-09 | 2018-12-04 | Toshiba Memory Corporation | Memory device performing control of discarding packet |
KR102317787B1 (ko) * | 2015-02-11 | 2021-10-26 | 삼성전자주식회사 | 메시지 전송 플로우 관리 방법 및 이를 적용하는 스토리지 디바이스 |
JP6205386B2 (ja) * | 2015-05-18 | 2017-09-27 | 長瀬産業株式会社 | 半導体装置及び情報書込/読出方法 |
KR102447471B1 (ko) * | 2015-06-24 | 2022-09-27 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 스토리지 장치 |
TWI566096B (zh) * | 2015-09-11 | 2017-01-11 | 慧榮科技股份有限公司 | 資料儲存系統與其相關方法 |
JP6524039B2 (ja) * | 2016-09-23 | 2019-06-05 | 東芝メモリ株式会社 | メモリシステム及び制御方法 |
CN109116972B (zh) * | 2017-06-23 | 2023-05-12 | 三垦电气株式会社 | 微型计算机 |
JP7074453B2 (ja) * | 2017-10-30 | 2022-05-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10684965B2 (en) * | 2017-11-08 | 2020-06-16 | Advanced Micro Devices, Inc. | Method to reduce write responses to improve bandwidth and efficiency |
CN109254733B (zh) * | 2018-09-04 | 2021-10-01 | 北京百度网讯科技有限公司 | 用于存储数据的方法、装置和*** |
JP7213712B2 (ja) | 2019-02-14 | 2023-01-27 | キオクシア株式会社 | 不揮発性半導体記憶装置 |
JP2020155052A (ja) * | 2019-03-22 | 2020-09-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN111158451A (zh) * | 2019-12-31 | 2020-05-15 | 瓴盛科技有限公司 | 电子设备及供电方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101312387A (zh) * | 2007-05-24 | 2008-11-26 | 富士施乐株式会社 | 数据传输设备、数据发送和接收装置以及数据传输*** |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9903490D0 (en) * | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
US6725322B1 (en) | 1999-02-22 | 2004-04-20 | Renesas Technology Corp. | Memory card, method for allotting logical address, and method for writing data |
US6615282B1 (en) * | 1999-05-21 | 2003-09-02 | Intel Corporation | Adaptive messaging |
US6684289B1 (en) * | 2000-11-22 | 2004-01-27 | Sandisk Corporation | Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory |
JP3865629B2 (ja) * | 2001-07-09 | 2007-01-10 | 株式会社ルネサステクノロジ | 記憶装置 |
US20030172229A1 (en) * | 2002-03-08 | 2003-09-11 | Takasugi Robin Alexis | Systems and methods for detecting and compensating for runt block data transfers |
JP2005292925A (ja) * | 2004-03-31 | 2005-10-20 | Tdk Corp | メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法 |
JP4586469B2 (ja) * | 2004-09-15 | 2010-11-24 | ソニー株式会社 | メモリ制御装置、メモリ制御方法、プログラム |
US7389397B2 (en) * | 2005-06-01 | 2008-06-17 | Sandisk Il Ltd | Method of storing control information in a large-page flash memory device |
WO2007116476A1 (ja) | 2006-03-31 | 2007-10-18 | Hitachi Ulsi Systems Co., Ltd. | メモリカードおよびデータの書き込み方法 |
US20070300130A1 (en) * | 2006-05-17 | 2007-12-27 | Sandisk Corporation | Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices |
JP4640366B2 (ja) * | 2007-03-23 | 2011-03-02 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
US7971127B2 (en) * | 2007-03-31 | 2011-06-28 | Sandisk Technologies Inc. | Guided simulated annealing in non-volatile memory error correction control |
US8103942B2 (en) * | 2007-05-24 | 2012-01-24 | Fuji Xerox Co., Ltd. | Data transmission apparatus, data transmission device, data reception device and data transmission system |
JP4672742B2 (ja) * | 2008-02-27 | 2011-04-20 | 株式会社東芝 | メモリコントローラおよびメモリシステム |
JP2010020715A (ja) | 2008-07-14 | 2010-01-28 | Toshiba Corp | 半導体メモリコントローラおよび半導体メモリシステム |
US8327226B2 (en) * | 2010-02-03 | 2012-12-04 | Seagate Technology Llc | Adjustable error correction code length in an electrical storage device |
US8418026B2 (en) * | 2010-10-27 | 2013-04-09 | Sandisk Technologies Inc. | Hybrid error correction coding to address uncorrectable errors |
-
2012
- 2012-02-07 JP JP2012024187A patent/JP5677336B2/ja not_active Expired - Fee Related
- 2012-03-02 TW TW101107020A patent/TWI553480B/zh not_active IP Right Cessation
- 2012-03-13 KR KR1020120025570A patent/KR20130018482A/ko active Search and Examination
- 2012-03-16 CN CN201210070944.7A patent/CN102915274B/zh not_active Expired - Fee Related
- 2012-03-16 US US13/422,378 patent/US9183143B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101312387A (zh) * | 2007-05-24 | 2008-11-26 | 富士施乐株式会社 | 数据传输设备、数据发送和接收装置以及数据传输*** |
Also Published As
Publication number | Publication date |
---|---|
JP5677336B2 (ja) | 2015-02-25 |
KR20130018482A (ko) | 2013-02-25 |
US20130036339A1 (en) | 2013-02-07 |
JP2013050938A (ja) | 2013-03-14 |
TWI553480B (zh) | 2016-10-11 |
CN102915274A (zh) | 2013-02-06 |
US9183143B2 (en) | 2015-11-10 |
TW201308081A (zh) | 2013-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102915274B (zh) | 存储装置 | |
CN102999452B (zh) | 存储器设备 | |
CN103019970B (zh) | 存储装置及其控制方法 | |
US10996883B2 (en) | Storage system including host device and storage device configured to perform selective purge operation | |
US9026723B2 (en) | Storage device including flash memory and capable of predicting storage device performance based on performance parameters | |
US6426893B1 (en) | Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks | |
CN100487672C (zh) | 用于分割一逻辑块的方法及设备 | |
CN108073470A (zh) | 执行地址映射表的纠错的存储器***及其控制方法 | |
US9092320B2 (en) | Storage system which includes non-volatile semiconductor storage medium, and storage control method of storage system | |
CN102436406A (zh) | 半导体装置及其数据存取方法 | |
KR20140016440A (ko) | 솔리드 스테이트 메모리를 포멧팅하기 위한 메모리 제어기, 방법, 및 솔리드 스테이트 메모리 시스템 | |
CN110196684A (zh) | 数据存储装置、其操作方法以及具有其的存储*** | |
CN110764691A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN112988044A (zh) | 存储器***及包括该存储器***的数据处理*** | |
TWI808384B (zh) | 儲存裝置、快閃記憶體控制器及其控制方法 | |
KR20200029085A (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
KR20190106005A (ko) | 메모리 시스템, 그것의 동작 방법 및 전자 장치 | |
TW202318201A (zh) | 藉助於預定命令來進行記憶體裝置的資料存取控制的方法及設備 | |
KR20230043408A (ko) | 메모리 컨트롤러 및 스토리지 장치 | |
KR102649657B1 (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
TW202318200A (zh) | 儲存裝置及其操作方法 | |
TW202416133A (zh) | 用來在主機效能增幅器架構中藉助於裝置側表資訊編碼與解碼進行記憶裝置的存取管理的方法及設備 | |
CN110175134A (zh) | 数据存储装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170802 Address after: Tokyo, Japan, Japan Patentee after: Toshiba Storage Corporation Address before: Tokyo, Japan, Japan Patentee before: Toshiba Corporation |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160406 Termination date: 20200316 |
|
CF01 | Termination of patent right due to non-payment of annual fee |