CN106255954B - 主从环境中的通信命令数据的系统和方法 - Google Patents
主从环境中的通信命令数据的系统和方法 Download PDFInfo
- Publication number
- CN106255954B CN106255954B CN201580016415.0A CN201580016415A CN106255954B CN 106255954 B CN106255954 B CN 106255954B CN 201580016415 A CN201580016415 A CN 201580016415A CN 106255954 B CN106255954 B CN 106255954B
- Authority
- CN
- China
- Prior art keywords
- data
- host apparatus
- storage device
- memory
- order
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Time Recorders, Dirve Recorders, Access Control (AREA)
Abstract
一种方法包含,在包含非易失性存储器的数据存储装置中,执行从具有数据存储装置的、以主从配置的主机装置接收对应于第一读取命令的第一通知。方法还包含基于第一通知,将第一条目存储在通知队列中。第一条目对应于第一读取命令。方法还包含将对应于第二命令的第一数据存储在非易失性存储器位置上。位置对应于地址,其一经执行第一读取命令将被读取。第二命令与由主机装置进行的操作相关。方法包含,在存储第二数据之后,设置对应于第一条目的指示符。设置的指示符转达数据存储装置准备好执行第一读取命令。
Description
技术领域
本公开总体上涉及在主从环境中通信命令数据。
背景技术
非易失性数据存储装置,比如嵌入式存储器装置(例如,嵌入式多媒体卡(eMMC)装置),和可移动存储器装置(例如,可移动通用串行总线(USB)闪存存储器装置,以及其他可移动存储卡),已经允许提升了数据和软件应用的便携性。非易失性数据存储装置的用户日渐依赖非易失性存储装置,以存储大量数据并提供对其快速存取。
数据存储装置(例如,非易失性数据存储装置)可以是耦合到a主机装置。数据存储装置和主机装置可以各自具有对应的易失性存储器,比如随机存取存储器(RAM),用于临时存储。然而,主机RAM的容量典型地大于数据存储装置RAM的容量(例如,非易失性数据存储装置的控制器的RAM)。当主机装置和数据存储装置配置为使用双通道通信(例如,两个装置都可以向另一装置下达命令,以及从另一装置接收命令)进行通信时,主机装置和数据存储装置可以利用统一存储器架构(UMA),以使能数据存储装置将主机RAM用作数据存储装置的工作存储器(例如,二级物理表缓存,写入缓冲区,等等)。例如,一个或多个协议可以使能数据存储装置利用(例如,控制)主机RAM指定由数据存储装置使用的部分。
然而,当主机装置和数据存储装置使用单通道通信时,比如当主机装置和数据存储装置以主从配置时(例如,主机装置是主装置,而数据存储装置是从装置),数据存储装置可能无法向主机装置下达命令。相应地,当在主从配置(例如,主从环境)的情况下,数据存储装置可能无法控制和/或存取主机RAM。
发明内容
本发明公开了用于在主从环境(例如,主从配置)中通信命令数据的技术。命令数据可以使能在主从环境中使用统一存储器架构(UMA)。为使能UMA架构,主机装置(例如,主装置)可以包含统一存储器(UM),其可以由数据存储装置(例如,从装置)利用。为使能数据存储装置向主机装置发送命令数据,主机装置可以向数据存储装置发送通知。通知可以对应于将由主机装置下达的读取命令(例如,统一存储器(UM)使能命令),以读取数据存储装置的存储器(例如,非易失性存储器)的位置。基于通知,数据存储装置可以将条目填入与数据存储装置的控制器相关的通知队列中。条目可以与对应的指示符相关,当设置了所述指示符,指示着数据存储装置准备好执行读取命令(例如,UM使能命令)。
当数据存储装置决定为向主机装置通信命令数据(例如,UM命令数据,操作命令数据,或信息请求命令数据)的目的使用读取命令时,数据存储装置可以将命令数据存储在(数据存储装置的)存储器的一位置处,所述位置将基于读取命令被读取。在将命令写入到存储器的该位置之后,数据存储装置可以设置指示符。当设置了指示符,主机装置可以发送读取命令(到数据存储装置),以从存储器的该位置读取,并且可以接收响应于数据存储装置执行读取命令的命令数据。
主机装置可以处理命令数据。例如,主机装置可以确定命令数据对应于UM读取操作还是对应于UM写入操作。如果命令数据对应于UM读取操作,主机装置可以读取主机装置的UM的一部分,并且可以下达写入命令,以读取自UM该部分的数据写入到数据存储装置。如果命令数据对应于UM写入操作,主机装置可以下达读取命令,以从数据存储装置的存储器的一部分读取数据,并且将读取自(数据存储装置的)存储器的该部分的数据写入到主机装置的UM。
通过通知读取命令(例如,可用UM使能读取命令)的数据存储装置,主机装置使能数据存储装置产生命令数据(例如,UM操作数据),其可以被提供到主机装置。相应地,主机装置(例如,主装置)可以从数据存储装置(例如,从装置)接收指挥(例如,指令),以在数据存储装置由于主从关系无法直接向主机装置下达命令的情况下,存取主机装置的UM。
附图说明
图1是使能主从环境中的命令数据通信的系统的特定示例性的实施例的框图;
图2是使能主从环境中命令数据通信的示例性操作的梯形图;以及
图3是使能主从环境中命令数据通信的示例性实施例的流程图。
具体实施方式
本公开的特定实施例参考附图进行描述。在说明书部分,整个附图部分中相同的特征由相同的附图标记指代。
图1是包含数据存储装置102和主机装置130的系统100的特定示例性的实施例的框图。系统100可使能主从环境(例如,主从配置)中命令数据通信,其中主机装置130是主装置,并且数据存储装置102是从装置。例如,系统100可以使能统一存储器架构(UMA)的使用,其中数据存储装置102可以存取主机装置130的存储器134的统一存储器部分。可以比如依据嵌入式多媒体卡(所在地阿灵顿,弗吉尼亚的电子工程设计发展联合协会(JEDEC)固态技术协会的商标)的配置,将数据存储装置102嵌入主机装置130中。可替代地,数据存储装置102可以是从主机装置130可移动的(即,“可移动地”耦合到主机装置130)。例如,可以依据可移动通用串行总线(USB)配置,将数据存储装置102可移动地耦合到主机装置130。
主机装置130可以包含处理器132、存储器134,以及统一存储器(UM)驱动器136。存储器134(比如随机存取存储器,RAM),可以包含统一存储器(UM)区域138(例如,UM部分)以及系统区域140(例如,系统部分)。系统区域140可以由主机装置130控制和/或利用。例如,系统区域140可以是由主机装置130的处理器132和/或操作系统(OS)可用的(例如,被利用)。UM区域138可以是由数据存储装置102可用的,并且主机装置130可以配置为在数据存储装置102的指挥(例如,指令)下存取(例如,读取到或写入自)UM区域138。例如,UM区域138可以与统一存储器架构(UMA)相关,并且可以被分配由数据存储装置102使用。举例而言,UM区域138可以被逻辑地分配给数据存储102,就像UM区域138是数据存储装置102的物理存储器(例如,RAM)一样,并且数据存储装置102可以将UM区域138用作数据存储装置102的工作存储器(例如,二级物理表缓存、写入缓冲区,等等)。
可以经由通信路径110,比如有线通信路径和/或无线通信路径,将数据存储装置102耦合到主机装置130。例如,数据存储装置102可以包含接口108(例如,主机接口),其使能数据存储装置102与主机装置130之间耦合的通信(经由通信路径110),比如当接口108耦合到主机装置130时。主机装置130和数据存储装置102可以使用嵌入式存储器协议彼此通信(经由通信路径110)。嵌入式存储器协议可以对应于单通道通信,其中主机装置130和数据存储装置102以主从配置。例如,主机装置130可以是主装置,并且数据存储装置102可以是从装置。举例而言,嵌入式存储器协议可以是嵌入式闪存存储器协议,比如协议。为使能嵌入式存储器协议的使用,主机装置130和数据存储装置102中的每一个可以包含嵌入式存储器协议驱动器(例如,协议驱动器)。主机装置130可以使用嵌入式存储器协议向数据存储装置102下达一个或多个命令,比如一个或多个请求,以与数据存储装置102的存储器(例如,存储器104)往复读取写入数据。数据存储装置102可以使用嵌入式存储器协议,以响应由主机装置130下达的一个或多个命令。
数据存储装置102可以包含耦合到控制器120的存储器104,比如非易失性存储器。可以经由总线106、接口、其他结构,或其组合,将控制器120耦合到存储器104。存储器104可以具有三维(3D)存储器配置。可替换地,存储器104可以具有其他存储器配置,比如二维(2D)存储器配置。多个存储元件可以配置在一个或多个页面、字线,和/或区块内。多个存储元件可以包含在单个裸芯或多个裸芯中。尽管未在图1中图示,存储器104可以包含读取/写入电路,其配置为与多个存储器区块162中的一个或多个往复读取写入数据。
控制器120可以包含随机存取存储器(RAM)122。RAM 122,比如易失性存储器,可以配置为存储通知队列128。通知队列128可以包含条目150和对应于条目150的指示符152。条目150可以对应于由主机装置130下达到数据存储装置102的命令。指示符152的值可以向主机装置130转达数据存储装置102是否准备好执行对应于条目150的命令。例如,当指示符152清空时(例如,无效(deasserted),比如逻辑0值),数据存储装置102可能未准备好执行对应于条目150的命令。当指示符被设置时(例如,有效(asserted),比如逻辑1值),数据存储装置可以准备好执行对应于条目150的命令。在一些实施例中,指示符152可以是包含在条目150中的位。在其他实施例中,指示符152可以对应于接口108的插针(例如,物理接触),并且控制器120可以通过激活接口108的插针设置指示符152。
控制器120可以配置为从主机装置130接收数据和命令(例如,指令),并且可以基于命令向主机装置130发送数据。对于从主机装置130接收的特定命令,比如读取命令或写入命令,控制器120可以从主机装置130接收特定通知。可以在接收特定命令之前或连同其一起,接收特定通知。特定通知可以指示特定命令是对应于读取操作还是对应于写入操作,将被读取或写入的数据的量,以及从存储器104读取或向其写入的位置。例如,特定通知可以包含特定命令的一部分或全部。
响应于接收特定通知,控制器120可以填入条目150,以识别特定命令。每次控制器120填入条目时,控制器120可以清空指示符152。当控制器120准备好执行特定命令时(例如,激活特定命令),控制器120可以设置对应于条目150的指示符152。
比如通过周期性地轮询指示符152的值,主机装置130可以检测到指示符152被设置。当主机装置130确定指示符152被设置时,主机装置130可以向数据存储装置102发送执行的特定命令。在一些实施例中,特定命令可以是读取命令,其指示数据存储装置102从存储器104的扇区(例如,512字节)读取数据。读取命令使能数据存储装置102将数据,比如命令数据,(例如,UM命令数据,操作命令数据,或信息请求命令数据)通信到主机装置130。例如,如本文还描述的,命令数据可以是UM命令数据,其使能数据存储装置102存取主机装置130的统一存储器区域138。作为另一示例,命令数据可以是操作命令数据,其使能数据存储装置102指示主机装置130执行动作,比如作为示例性的、非限制性示例,使数据存储装置102进入睡眠模式、向数据存储装置102提供附加的功率、向数据存储装置102提供空闲时间(例如,节流将发送到数据存储装置102的一个或多个命令),等等。作为另一示例,命令数据可以包含信息请求命令数据,其使能数据存储装置102指示主机装置130将信息(例如,供应商具体信息,比如能耗信息)从主机装置130提供到数据存储装置102。由主机装置130提供的信息可以包含数据的扇区(例如,512字节),其从主机装置130被写入到数据存储装置102。
通知队列128的示例性的例子在180处图示。通知队列128可以配置为多个条目(例如,多个槽)的阵列。多个条目可以包含第一组条目182和第二组条目184。第一组条目182可以与非UM相关的条目(例如,非UM使能槽)相关。例如,非UM相关的条目可以与由主机装置130下达的、不使能数据存储装置102造成将由主机装置130进行的UM操作的读取命令和/或写入命令相关。第二组条目184(例如,UM使能槽)可以与由主机装置130下达的、使能数据存储装置102将命令数据通信到主机装置130的读取命令相关。例如,由主机装置130下达的读取命令使能数据存储装置102造成将由主机装置130进行的UM操作。尽管第二组条目184(例如,一个或多个条目)被描述为“UM使能”槽,第二组条目184不限制于使能数据存储装置102造成将由主机装置进行的一个或多个UM操作。例如,第二组条目184可以替代地或附加地用来使能数据存储装置102将命令数据,比如操作命令数据和/或信息请求命令数据,通信到主机装置130。
作为通知队列128的示例,通知队列128的第一部分,比如代表性条目192,可以配置为使能数据存储装置102指挥主机装置130在主机装置130的统一存储器区域138上执行读取操作。代表性条目192可以包含或对应于系统100的条目150。通知队列128的第二部分,比如代表性条目196,可以配置为使能数据存储装置102指挥主机装置130在主机装置130的存储器的统一存储器区域138上执行写入操作。可替换地,或附加地,通知队列128可以包括包含在第二组条目184中的一个或多个其他条目。例如,通知队列128的第三部分(例如,代表性条目)可以配置为使能数据存储装置102指挥主机装置130执行一个或多个操作命令,比如作为示例性的、非限制性示例,使数据存储装置102进入睡眠模式、向数据存储装置102提供附加的功率、向数据存储装置102提供空闲时间(例如,节流将发送到数据存储装置102的一个或多个命令),等等。作为另一示例,通知队列128的第四部分(例如,代表性条目)可以配置为使能数据存储装置102指挥主机装置130执行一个或多个信息请求命令,比如向数据存储装置120提供供应商具体信息。
尽管通知队列128在180处图示为包含四个条目,通知队列128可以包含少于四个条目,比如单个条目,,或多于四个条目。例如,当通知队列128包含单个条目时,单个条目可以对应于第二组条目184,并且使能数据存储装置102指挥主机装置130在主机装置130的存储器的同一存储器部分上执行读取操作或写入操作。
数据存储装置102可以从主机装置130接收对应于命令(例如,非UM使能命令,比如读取命令和/或写入命令)的通知,所述命令由主机装置130下达,其不使能数据存储装置102造成将由主机装置130进行的UM操作。作为示例性的、非限制性示例,对应于非UM使能命令的通知可以识别将在存储器104上进行的操作的类型(例如,读取操作或写入操作),存储器104的位置,将读取或写入的数据的量,或其组合。基于接收的非UM使能命令,控制器120可以填入条目,比如包含在通知队列128的第一组条目182中的条目。当控制器120(例如,数据存储装置102)准备好执行非UM使能命令时,控制器120可以设置对应于填入的条目的指示符。当控制器120接收将从主机装置130执行的非UM使能命令时,控制器120可以基于非UM使能命令,与存储器104往复读取写入数据。
此外,数据存储装置102可以从主机装置130接收通知,所述通知对应于由主机装置130下达的、使能数据存储装置102将命令数据通信到主机装置130的命令(例如,读取命令,比如UM使能读取命令),比如造成将由主机装置130进行的UM操作命令数据。基于接收的对应于读取命令(例如,UM使能命令)的通知,控制器120可以填入条目,比如包含在通知队列128的第二组条目182中的条目。例如,基于接收的对应于读取命令(例如,UM使能命令)的通知,控制器120可以填入条目150。作为示例性的、非限制性示例,对应于读取命令(例如,UM使能命令)的通知可以包含数据,其识别存储器104将读取的地址,指示将读取的数据量(例如,扇区),或其组合。除填入条目150外,当条目150被填入时,比如在填入条目150之前、期间,或之后,控制器120还可以清空对应于条目150的指示符152。
当条目150与对应于读取命令(例如,UM使能命令)的通知相关时,控制器120可以确定是否或何时向主机装置130通信命令数据。例如,命令数据可以发起对主机装置130的统一存储器区域138的存取(例如,造成主机装置130与其往复读取写入数据)。例如,控制器120可以将第一命令数据(例如,UM命令数据)存储在由条目150指示的存储位置处。当被主机装置130读取时,第一命令数据可以造成主机装置130在UM区域138处执行读取操作,并且将数据读取从UM区域138提供到数据存储装置102。通过向数据存储装置102下达写入命令,主机装置130可以将从UM区域138读取的数据提供到数据存储装置102。作为另一示例,控制器120可以将第二命令数据(例如,UM命令数据)存储在由条目150指示的存储位置处。当被主机装置130读取时,第二命令数据可以造成主机装置130将特定数据写入到UM区域138。举例而言,第二命令数据可以造成主机装置130执行写入操作,以将特定数据存储到UM区域138中。基于第二命令数据(将特定数据写入到UM区域138),主机装置130可以下达读取命令(例如,非UM使能读取命令),以从存储器104的特定存储位置接收特定数据,并且可以将特定数据写入到UM区域138。
作为另一示例,控制器120可以存储第三命令数据(例如,操作命令数据)在由条目150指示的存储位置处。第三命令数据,当被主机装置130读取时,可以造成主机装置130执行动作,比如使数据存储装置102进入睡眠模式、向数据存储装置102提供附加的功率、向数据存储装置102提供空闲时间(例如,节流将要发送到数据存储装置102的一个或多个命令),等等,作为示例性的、非限制性示例。作为另一示例,控制器120可以将第四命令数据(例如,信息请求命令数据)存储在由条目150指示的存储位置处。当被主机装置130读取时,第四命令数据可以造成主机装置130将信息(例如,供应商具体信息,比如能耗信息)从主机装置130提供到数据存储装置102。由主机装置130提供的信息可以包含数据的扇区(例如,512字节),其从主机装置130被写入到数据存储装置102。
当控制器120准备好执行读取命令(例如,UM使能命令)时,控制器120可以设置指示符152。例如,在控制器120将数据(例如,UM命令数据、操作命令数据,或信息请求命令数据)存储在存储器104由条目150指示的位置处之后,控制器120可以设置指示符152。当控制器120从主机装置130接收读取命令(例如,UM使能命令)时,基于读取命令(例如,UM使能命令),控制器120可以从存储器104读取数据。
当数据存储装置102(例如,控制器120)执行特定命令(例如,非UM使能命令和/或UM使能命令)时,基于特定命令,控制器120可以将数据和命令发送到存储器104,并且可以从存储器104接收数据。例如,控制器120可以将一个或多个写入命令,比如写入命令126,发送到存储器104,以将数据存储到存储器104的特定地址。写入命令可以指定存储器104将存储数据的部分的的物理地址(例如,存储器104的字线的物理地址)。控制器120可以配置为向存储器104发送读取命令,以从存储器104的特定地址存取数据。作为示例,控制器120可以发送读取命令(比如读取命令124),以存取存储在存储器104中的数据。读取命令可以指定存储器104将要被读取的部分的物理地址(例如,存储数据的字线的物理地址)。
UM驱动器136可以配置为识别从数据存储装置102读取的数据(例如,命令数据),其对应于将由主机装置130和/或执行的动作(例如,UM操作)或操作。尽管驱动器136被描述为“UM”驱动器,驱动器136不限制为识别由命令数据指示的UM操作。例如,驱动器136可以处理命令数据以识别(例如,确定)将由主机装置130进行和/或执行的UM命令、操作命令,或信息请求命令。基于从主机装置130下达到数据存储装置102的读取命令,主机装置130可以从数据存储装置102接收命令数据。可以作为使用嵌入式存储器协议从数据存储装置102发送的通信的一部分,接收命令数据。通信可以由主机装置130的较低层驱动器(例如,低级硬件),比如嵌入式存储器协议驱动器(例如,协议驱动器)处理(例如,解析)。在由较低层驱动器处理之后,包含在通信中的命令数据可以由较高层驱动器,比如UM驱动器136,处理(例如解析),以确定命令数据对应于UM命令数据、操作命令数据,或信息请求命令数据。
如果UM驱动器136确定数据对应于UM操作,UM驱动器136可以确定UM操作对应于UM读取操作还是对应于UM写入操作。如果UM操作是UM写入操作,处理器132可以发起对UM区域138的UM写入操作。发起UM写入操作可以包含向数据存储装置102发送读取命令,以读取存储器104由命令数据指示的特定位置,并且基于命令数据将读取自特定位置的数据读取写入到UM区域138中。如果操作是UM读取操作,处理器132可以发起UM读取操作,以从UM区域138读取数据。发起UM读取操作可以包含向数据存储装置102发送写入命令。将发送到数据存储装置102的写入命令可以包含从UM区域138读取的数据。
如果命令数据对应于操作命令数据,UM驱动器136可以确定由主机装置130进行哪个操作命令,比如作为示例性的、非限制性示例,使数据存储装置102进入睡眠模式的操作命令、向数据存储装置102提供附加的功率的操作命令、向数据存储装置102提供空闲时间(例如,节流将发送到数据存储装置102的一个或多个命令)的操作命令,等等。如果命令数据对应于信息请求命令数据,UM驱动器136可以确定主机装置130将要执行哪个信息请求命令,比如提供供应商具体信息(例如,与主机装置130的供应商相关的)的信息请求命令。
在操作期间,主机装置可以向数据存储装置102发送通知142。通知142可以对应于第一读取命令146,比如UM使能命令,其使能数据存储装置102指挥主机装置存取UM区域138。通知142可以指示存储器104基于第一读取命令146将被读取的位置(例如,地址),并且可以指示基于第一读取命令146将被读取的数据量。当控制器120接收通知142时,控制器120可以填入通知队列128的条目152,并且可以清空指示符152。
主机装置130可以周期性地或不定期地轮询通知队列128,以识别是否设置了对应于通知队列128的一个或多个条目的一个或多个指示符。举例而言,主机装置130可以向数据存储装置102发送轮询请求144。当控制器120准备好执行与特定指示符相关的特定命令时,控制器120设置特定指示符。例如,基于控制器120确定使用第一读取命令146,以将命令数据(例如,第一数据154)通信到主机装置130,指示符152可以被有效(asserted)。第一命令数据154可以包含或对应于UM命令数据、操作命令数据,或信息请求命令数据。在控制器120将第一数据154(例如,命令数据)存储在存储器104由通知142指示的位置处,比如由条目150指示的位置,之后,控制器120可以判断指示符152。
基于指示符152被有效的确定,主机装置130可以将第一读取命令146发送到数据存储装置102。第一读取命令146可以指定存储器104将被读取的地址(例如,位置)。当由数据存储装置102(例如,控制器120)执行时,第一读取命令146可以造成控制器120从存储器104的位置读取第一数据154(例如,命令数据),并且将第一数据154发送到主机装置130。
第一数据154可以作为使用嵌入式存储器协议发送的通信的一部分被主机装置130接收。主机装置130可以处理通信,以识别第一数据154,并且驱动器(例如,UM驱动器136)可以确定第一数据154对应于UM读取操作、UM存储器操作、操作命令,还是信息请求命令。基于第一数据154对应于UM写入命令的确定,基于第一数据154,主机装置130可以确定存储器104存储将基于UM写入命令写入到UM区域138的数据(例如,第二数据156)的特定存储位置。主机装置130可以产生并且发送第二读取命令148到数据存储装置102,以读取存储器104存储第二数据156的特定存储位置。
主机装置130可以接收第二数据156,并且可以执行UM写入命令,以将第二数据156写入到存储器134的UM区域138。例如,主机装置130可以将第二数据156写入到UM区域138由第一数据154指示的区域。
基于第一数据154对应于UM读取命令的确定,基于第一数据154,主机装置130可以确定UM区域138将被读取的位置。在读取UM区域138的位置之后,主机装置130可以产生写入命令(例如,非UM使能命令),以将数据读取从UM区域138写入到存储器104的位置,比如存储器104由第一数据154指示的位置。
基于第一数据154对应于操作命令的确定,主机装置130可以识别(例如,确定)特定操作命令,并且将特定操作命令发送到数据存储装置102。基于第一数据154对应于指令请求命令的确定,主机装置130可以识别(例如,确定)由数据存储装置102请求的特定信息,并且可以将特定信息发送到数据存储装置102。例如,特定信息可以作为将数据(例如,数据的扇区)写入到数据存储装置102的存储位置,比如数据存储装置102由第一数据154指示的存储位置,的写入命令的一部分,被主机装置130发送到数据存储装置102。
在一些实施例中,当主机装置130将特定通知发送到通知队列128时,主机装置130可以确定通知队列128是否包含与使能数据存储装置102向主机装置130提供存储器共享命令(例如,命令数据)相关的特定条目。如果主机装置130确定通知队列128不包含特定条目,主机装置130可以造成在通知队列128中产生特定条目。相应地,主机装置130能够以条目周期性地或不定期地填入通知队列128,所述条目使能数据存储装置102向主机装置130提供命令数据,比如与由主机装置130进行的UM操作相关的命令数据。
在一些实施例中,通知队列128的一个或多个槽可以被预留为(例如,被指定)接收对应于特定命令的通知,比如作为示例性的、非限制性示例,与UM使能命令相关的第一读取命令、与操作命令相关的第二读取命令,或与信息请求命令相关的第三读取命令。例如,第一槽可以被预留给由数据存储装置102用来发起UM写入操作的UM使能命令。第二槽可以被预留给由数据存储装置用来发起UM读取操作的UM使能命令。作为另一示例,可以为UM使能命令预留单个槽,比如由数据存储装置102用来发起UM读取操作和/或UM写入操作的UM使能命令。
在其他实施例中,主机装置130和数据存储装置102可以识别逻辑区块地址的范围。逻辑区块地址的第一部分(例如第一子范围)可以用于非UM使能命令,并且逻辑区块地址的第二部分(例如,第二子范围)可以用于UM使能命令。例如,包含在第二子范围中的每个逻辑区块地址可以对应于预留给由控制器120产生的命令数据的存储位置。相应地,当数据存储装置102从主机装置130接收包含与第二子范围相关的地址的命令时,数据存储装置102可以将命令识别为UM使能命令。此外,逻辑区块地址的第三部分(例如第三子范围)可以用于使能操作命令,并且第四部分(例如,第四子范围)可以用于使能信息请求命令。
尽管主机装置130图示为包含单个存储器(例如,存储器134),主机装置130可以包含一个或多个附加的存储器。存储器134、一个或多个附加的存储器,或其两者,可以配置为存储可以由处理器132执行的数据和/或指令。此外,存储器134可以是单个存储器或可以包含多于一个存储器,比如一个或多个非易失性存储器、一个或多个易失性存储器,或其组合。
尽管通知队列128被图示为存储在包含于控制器120的RAM 122中,在其他实施方式中,通知队列128可以存储在存储器104中,或在耦合到控制器120的其他存储器中。附加地或可替换地,控制器120可以包含单个存储器部件,比如RAM 122,或可以包含多个不同的存储器部件和/或多个不同类型的存储器部件。
此外,数据存储装置102可以包含纠错代码(ECC)引擎(未示出)。ECC引擎可以配置为接收数据,并且配置为基于数据生成一个或多个纠错代码(ECC)码字(例如,包含数据部分和奇偶部分)。例如,ECC引擎可以包含编码器,其配置为使用ECC编码技术编码数据。作为示例性的,非限制性的示例,ECC引擎可以包含里德-所罗门编码器(Reed-Solomonencoder),博斯-查德胡里-霍昆格母编码器(BCH,Bose-Chaudhuri-Hocquenghemencoder),低密度奇偶校验(LDPC)编码器,turbo编码器(turbo encoder),配置为根据一个或多个其他ECC技术或其组合编码数据的编码器。
ECC引擎可以包含解码器,其配置为将从存储器104读取的数据解码,以检测并纠正数据中可能存在的位错误。例如,ECC引擎可以纠正位错误的数量相当于由ECC引擎使用的ECC技术的纠错能力。由ECC引擎识别的一定数量的错误可以被控制器120追踪,比如通过ECC引擎。例如,基于错误的数量,ECC引擎可以确定与存储器104的一个或多个区块相关的位错误率(BER)。
通过利用通知队列128的条目150,数据存储装置102(例如,从装置)能够产生可以提供到主机装置130的命令数据(例如,UM操作数据、操作命令数据,和/或信息请求命令数据)。此外,基于何时数据存储装置102设置指示符152,数据存储装置102可以控制何时将命令数据提供到主机装置130。当响应于由主机装置130下达的UM使能命令将命令数据提供到主机装置130时,主机装置130可以识别并且执行由数据存储装置102指挥的UM操作。相应地,在数据存储装置102由于主从关系无法直接向主机装置130下达命令的情况下,主机装置130(例如,主装置)可以从数据存储装置102(例如,从装置)接收指挥(例如,指令),以存取主机装置130的UM区域138。
参考图2,示出了在代表性主机装置202与代表性数据存储装置204之间通信的方法200的第一示例性的实施例。通过梯形图图示了方法200。方法200可以用来使能主从环境中的命令数据的通信。例如,方法200使能统一存储器架构(UMA)的使用,其中数据存储装置204可以存取主机装置202的存储器的统一存储器部分。主机装置202和数据存储装置204可以分别包含或对应于图1的主机装置130和数据存储装置102。
数据存储装置204可以包含通知队列206和控制器208。通知队列206和控制器208可以分别包含或对应于图1的通知队列128和控制器120。如图2所示,为了图示简洁,主机装置202被图示为与通知队列206直接通信。可以经由控制器208,发生从主机装置202到通知队列206的通信。
在210处,主机装置202可以向数据存储装置204发送对应于第一读取命令的第一通知。第一通知可以包含或对应于图1的通知142。
在212处,基于第一通知,第一条目可以被存储在通知队列206中。第一条目可以对应于第一读取命令(例如,UM使能命令)。例如,第一条目可以包含或对应于图1的条目150。第一条目可以被存储在为UM使能条目指定的通知队列206的槽(例如,部分)中。第一读取命令可以包含或对应于图1的第一读取命令146。
在214处,控制器208可以将对应于第二命令,比如第二读取命令,的第一数据存储在数据存储装置204的非易失性存储器的存储位置处。例如,第一数据可以包含或对应于图1的第一数据154(例如,命令数据)。举例而言,第一数据可以包含或对应于统一存储器写入命令数据,其可以造成主机装置向统一存储器区域写入数据。数据存储装置204的非易失性存储器可以包含或对应于图1的存储器104。存储位置可以对应于地址,所述地址一经执行第一读取命令将被读取。地址可以已经被包含在由数据存储装置204从主机装置130接收的第一通知中。
在216处,控制器208可以存储第二数据。例如,第二数据可以包含或对应于图1的第二数据156。第二数据可以对应于第二读取命令,比如将基于由数据存储装置204执行第二读取命令读取的数据。例如,第二读取命令可以包含或对应于第二读取命令148。尽管第二数据图示为存储在第一数据之后,在其他实施例中第二数据可以存储在第一数据之前。
在存储第一数据和/或第二数据之后,在218处,控制器208可以设置对应于第一条目的指示符。当被设置时,指示符可以向主机装置202转达数据存储装置204准备好了执行第一读取命令。例如,指示符可以包含或对应于图1的指示符152。在设置指示符之后,数据存储装置204可以从主机装置202接收第一读取命令。在220处,主机装置202可以轮询通知队列206,以识别第一指示符是否被设置。基于轮询,主机装置202可以确定第一指示符被设置,并且数据存储装置204准备好了执行第一读取命令。
在222处,主机装置202可以将第一读取命令发送到数据存储装置204(例如,控制器208)。响应于第一读取命令,在224处,数据存储装置204(例如,控制器208)可以将第一数据发送到主机装置202。
基于第一数据,在226处,主机装置202可以产生第二读取命令。例如,主机装置202可以确定第一数据对应于将由主机装置202进行的UM写入操作。例如,UM写入操作可以与主机装置202的存储器的UM区域相关,比如图1的存储器134的UM区域138。基于第一数据,在228处,主机装置202可以产生并且发送第二读取命令到数据存储装置204(例如,控制器208)。第二读取命令可以配置为造成数据存储装置204从数据存储装置204的非易失性存储器读取第二数据。
响应于从主机装置202接收第二命令,在230处,数据存储装置204(例如,控制器208)可以将第二数据发送到主机装置202。举例而言,控制器208可以由第二命令指定的非易失性存储器的部分读取第二数据。在232处,主机装置202可以将第二数据存储在主机装置的易失性存储器处。例如,易失性存储器可以包含或对应于图1的存储器134,并且主机装置202可以将第二数据存储在易失性存储器的UM区域处。在234处,主机装置202可以将第二通知发送到数据存储装置204。第二通知可以对应于第三读取命令(例如,UM使能命令)。
基于第二通知,在236处,数据存储装置204可以将第二条目存储在通知队列206中。当第二条目被产生,控制器208可以清空对应于第二条目的指示符(比如第二指示符)。例如,在238处,控制器208可以清空对应于第二条目的第二指示符。
在240处,控制器208可以将第三数据(例如,命令数据)储存在数据存储装置204的非易失性存储器的第二存储位置处。例如,第三数据可以对应于与从主机装置202的存储器取回第二数据相关的第一写入命令。举例而言,第三数据可以包含或对应于统一存储器读取命令数据,其可以造成主机装置从统一存储器区域读取数据。第二存储位置可以对应于地址,所述地址一经执行第三读取命令将被读取。在存储第三数据之后,在242处,控制器208可以设置通知队列206的第二旗标。
在244处,主机装置202可以轮询通知队列206,以识别第二指示符是否被设置。基于轮询,主机装置202可以确定第二指示符被设置,并且数据存储装置204准备好了执行第三命令。在246处,主机装置202可以将第三读取命令发送到数据存储装置204(例如,控制器208)。
响应于第三读取命令,在248处,数据存储装置204(例如,控制器208)可以将第三数据发送到主机装置202。主机装置202可以处理第三数据,并且确定第三数据(例如,命令数据)与UM读取操作相关。基于第三数据,在250处,主机装置可以读取UM区域的位置,比如存储第二数据的位置,并且可以产生第一写入命令。第一写入命令可以包含第二数据,其基于UM读取操作被由主机装置202指挥的数据存储装置204读取。
在252处,主机装置202可以将包含第二数据的第一写入命令发送到数据存储装置204(例如,控制器208)。响应于接收第一写入命令,在260处,数据存储装置204(例如,控制器208)可以将第二数据存储在数据存储装置204的非易失性存储器处。
利用通知队列206,数据存储装置204可以造成主机装置202将读取命令发送到数据存储装置204。数据存储装置204可以将命令数据存储在将响应于读取命令而被读取的位置。命令数据可以对应于由主机装置202进行的UM读取操作或UM写入操作。相应地,当主机装置202和数据存储装置204为主从关系时,当主机装置202发送读取命令时,主机装置202可以从数据存储装置204接收指挥(例如,指令),以存取主机装置202的存储器的UM部分。
参考图3,示出了使能主从环境中的命令数据的通信的方法300的示例性的实施例。例如,方法300使能统一存储器架构(UMA)的使用,其中数据存储装置可以存取主机装置的存储器的统一存储器部分。例如,方法300可以由数据存储装置的控制器进行,比如由图1的数据存储装置102的控制器120或图2的数据存储装置204控制器208。主机装置可以包含或对应于图1的主机装置130或图2的主机装置202。
方法300包含在302处从主机装置接收对应于第一读取命令的第一通知。控制器可以配置为通过使用嵌入式存储器协议与主机装置相互作用。举例而言,嵌入式存储器协议可以是嵌入式闪存存储器协议。主机装置可以包含或对应于图1的主机装置130或图2的主机装置202。第一通知和第一读取命令可以分别对应于图1的通知142和第一读取命令146。方法300还包含基于第一通知,在304处,将第一条目存储在通知队列中,第一条目对应于第一读取命令。控制器可以包含易失性存储器,比如图1的RAM 122。易失性存储器可以包含通知队列。例如,通知队列可以包含或对应于图1的通知队列128或图2的通知队列206。通知队列可以包含与第一读取命令相关的专用条目位置。
在306处,方法300包含将对应于第二命令的第一数据存储在非易失性存储器的存储位置处。第一数据可以包含或对应于图1的第一数据154。非易失性存储器可以被包含在数据存储装置中。例如,非易失性存储器可以包含或对应于存储器104。存储位置可以对应于地址,所述地址一经执行第一读取命令将被读取。第一数据可以与命令数据相关,比如统一存储器读取命令数据、统一存储器写入命令数据、操作命令数据,或信息请求命令数据。第二命令可以与由主机装置进行的操作相关,比如将在主机装置的存储器(例如,存储器的UM区域)处进行的操作。主机装置的存储器可以包含或对应于图1的存储器134。
在存储第一数据之后,在308处,方法300还包含,在存储第一数据之后,设置对应于第一条目的指示符,其中指示符当被设置时,向主机装置转达数据存储装置准备好执行第一读取命令。例如,指示符可以包含或对应于图1的指示符152。
尽管数据存储装置204被描述为存储第一数据(例如,统一存储器写入命令数据)和存储第三数据(例如,统一存储器读取命令数据),数据存储装置204可以存储其他命令数据。例如,数据存储装置204可以存储其他命令数据,比如操作命令数据和/或信息请求命令数据,并且将其他命令数据作为从主机装置202发送到数据存储装置204的读取命令的执行的一部分,提供到主机装置202。方法300使能数据存储装置产生命令数据,其可以被提供到主机装置。相应地,当主机装置和数据存储装置为主从关系时,数据存储装置可以向主机装置提供指挥(例如,指令),以存取主机装置的存储器的UM部分。
图2的方法200和/或图3的方法300可以由特定用途集成电路(ASIC)、处理单元(比如中央处理单元,CPU)、数字信号处理器(DSP)、控制器,其他硬件装置、固件装置、现场可编程门阵列(FPGA)装置,或其任意组合发起或控制。作为示例,图2的方法200和/或图3的方法300可以由包含于或耦合到图1的数据存储装置102的一个或多个处理器发起或控制,比如包含于或耦合到图1的控制器120的一个或多个处理器、包含于或耦合到图1的主机装置130(例如,处理器132)的一个或多个处理器、包含于或耦合到图2的主机装置202或数据存储装置204的一个或多个处理器。
配置为执行图2的方法200和/或图3的方法300的控制器能够有利地使能主从环境中的命令数据的通信,比如由数据存储装置(例如,从装置)产生并且通信到主机装置(例如,主装置)的命令数据。
尽管本文图示的数据存储装置102和主机装置130的各个部件被图示为区块部件,并且概括地描述,这样的部件可以包含一个或多个微处理器,状态机,或配置为使能图1的控制器120和/或处理器132执行本文描述的操作的其他电路。可以使用编写为执行本文描述的操作的微处理器或微控制器,实施控制器120和/或处理器132的一个或多个方面,比如图2的方法200和/或图3的方法300的一个或多个操作。在特定的实施例中,控制器120和/或处理器132包含执行存储在存储器处的指令的处理器,其中所述存储器比如数据存储装置102或主机装置130的非易失性存储器。可替代地或附加地,由处理器执行的可执行的指令可以存储在分开的存储器位置处,其不是非易失性存储器的一部分,比如在处数据存储装置102或主机装置130的只读取存储器(ROM)。
在示例性的例子中,处理器可以执行指令,以从主机装置接收对应于第一读取命令的第一通知。作为示例性的、非限制性示例,接收第一通知的指令可以包含接收使用嵌入式存储器协议产生的通信的指令、处理识别通知数据的通信的指令,和/或确定通知是否对应于UM使能命令的指令。处理器可以执行指令,以基于第一通知,将第一条目存储在通知队列中。第一条目可以对应于第一读取命令。作为示例性的、非限制性示例,存储第一通知的指令可以包含识别通知队列的可用槽的指令、识别对应于UM使能命令的通知队列的槽指令、清空对应于第一条目的指示符的指令,和/或填入第一条目的指令。处理器可以执行指令,以将对应于第二命令的第一数据存储在非易失性存储器的存储位置处。存储位置可以对应于地址,所述地址一经执行第一读取命令将被读取。作为示例性的、非限制性示例,存储第一数据的指令可以包含将第一条目识别为UM使能命令的指令、基于第一条目确定存储位置的指令、确定是否发起UM读取操作或UM写入操作的指令、识别主机装置的UM区域的地址(例如,存储位置)的指令的指令,和/或识别非易失性存储器包含将被写入到主机装置的UM区域的数据的存储位置的指令。在存储第一数据之后,处理器可以执行指令,以设置对应于第一条目的指示符。当被设置时,指示符可以向主机装置转达数据存储装置准备好了执行第一读取命令。作为示例性的、非限制性示例,设置指示符的指令可以包含设置第一条目的位值的指令和/或激活接口(例如,数据存储装置的主机接口)的插针的指令。
数据存储装置102可以附接到或嵌入到一个或多个主机装置之中,比如在可以对应于主机装置130的主机通信装置的外壳之中。数据存储装置102可以在封装的设备之中,比如无线电话、个人数字助理(PDA)、游戏装置或控制器、便携导航装置、计算机装置(例如,平板电脑或膝上电脑),或其他使用内部非易失性存储器的装置。然而,在其他实施例中,数据存储装置102可以配置为选择性地耦合到一个或多个外部装置(,比如主机装置130,的便携装置。例如,作为示例性的例子,数据存储装置102可以是可移动装置,比如通用串行总线(USB)闪存驱动器或可移动存储器卡。
在示例性的例子中,处理器可以执行指令,以响应于由主机装置发送到数据存储装置的第一读取命令,从数据存储装置接收第一数据。作为示例性的、非限制性示例,接收第一数据的指令可以包含轮询对应于第一读取命令的指示符的指令、确定与数据存储装置的通知队列相关的指示符被设置的指令,和/或产生第一读取命令以从数据存储装置的存储器的位置读取第一数据的指令。处理器可以执行指令,以确定第一数据是否对应于统一存储器(UM)存取操作。作为示例性的、非限制性示例,确定第一数据是否对应于统一存储器(UM)存取操作的指令可以包含接收包含第一数据的通信的指令、使用嵌入式存储器协议来处理通信的指令、使用主机装置的UM驱动器来处理第一数据的指令、解析第一数据的指令、确定第一数据是否对应于UM读取操作的指令、确定第一数据是否对应于UM写入操作的指令、基于第一数据识别数据存储装置的存储器的存储位置的指令,和/或识别主机装置的存储器的UM区域的存储位置的指令。基于第一数据对应于UM存取操作的确定,处理器可以执行指令,以执行特定UM存取操作。作为示例性的、非限制性的示例,执行特定UM存取操作的指令可以包含读取主机装置的UM区域的位置的指令、产生将发送到数据存储装置以写入从主机装置的UM区域读取的数据的写入命令的指令、产生将发送到数据存储装置以从数据存储装置的存储器的位置读取数据的读取命令的指令的指令、向主机装置的UM区域写入的指令,和/或基于从主机装置向数据存储装置下达的读取命令读取的数据。
主机装置130可以对应于移动电话、音乐播放器、视频播放器、游戏装置或操控器、电子书阅读器、个人数字助理(PDA)、计算机,比如膝上型电脑、平板电脑,或笔记本电脑,便携导航装置、另一电子装置,或其组合。主机装置130可以经由主机控制器通信,其可以使能主机装置130与数据存储装置102通信。可以遵照JEDEC固态技术协会的行业规范,比如嵌入式多媒体卡(eMMC)规范或通用闪存(UFS)主机控制器接口规范,操作主机装置130。可以遵照一个或多个其他规范,比如,作为示例性的例子,安全数字(SD)主机控制器规范,操作主机装置130。可替代地,可以遵照其他通信协议,使主机装置130与数据存储装置102通信。
数据存储装置102可以配置为作为嵌入式存储器耦合到主机装置130,比如作为示例性的例子,与嵌入式多媒体卡(所在地阿灵顿,弗吉尼亚的JEDEC固态技术协会的商标)配置。数据存储装置102可以对应于eMMC装置。作为另一个示例,数据存储装置102可以对应于存储器卡,比如数字安全卡、微卡、迷你SDTM卡(所在地特拉华州,威明顿市的SD-3C LLC的商标)、多媒体卡TM(MMCTM)(所在地阿灵顿,弗吉尼亚的电子工程设计发展联合协会(JEDEC)固态技术协会的商标),或(CF)卡(所在地加利福尼亚州,苗必达市的SanDisk公司的商标)。可以遵照JEDEC行业规范,操作数据存储装置102。例如,可以遵照JEDEC的eMMC规范、JEDEC通用闪存(UFS)规范、一个或多个其他规范,或其组合,操作数据存储装置102。
半导体存储器装置,比如存储器104和/或存储器134,包含易失性存储器装置,比如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)装置,非易失性存储器装置(比如电阻式随机存取存储器(“ReRAM”)、电力可擦除可编程只读存储器(“EEPROM”)、闪存存储器(其可以认为是EEPROM的子集),铁电式随机存取存储器(“FRAM”)),以及其他能够存储信息的半导体元件。每种类型的存储器装置可以具有不同配置。例如,闪存存储器装置可以配置为NAND或NOR配置。
存储器装置可以由无源元件和/或有源元件以任意组合形成。作为非限制性的示例,无源半导体存储器元件包含ReRAM装置元件,其在一些实施例中包含电阻率切换存储元件(比如非熔丝式(anti-fuse)相变材料,等等),并且可选地包含导向(steering)元件(比如二极管,等等)。也作为非限制性的示例,有源半导体存储器元件包含EEPROM和闪存存储器装置元件,其在一些实施例中包含含有电荷存储区域(比如浮置栅极、导电纳米颗粒或电荷存储介电材料)的元件。
可以配置多个存储器元件,使得它们串联耦合,或使得每个元件可以单独存取。作为非限制性的示例,以NAND配置(NAND存储器)的闪存存储器装置典型地包含串联耦合的存储器元件。可以配置NAND存储器阵列,使得阵列由多个存储器串构成,其中串由多个存储器元件构成,所述多个存储器元件共用单个位线,并且作为组存取。可替代地,可以配置存储器元件,使得每个元件可以单独存取,例如,以NOR存储器阵列。已经作为示例提出了描述的NAND和NOR存储器配置,而存储器元件可以不同地配置。
位于衬底衬底之中和/或之上的半导体存储器元件可以配置为二维或三维,比如二维存储器结构或三维存储器结构。
在二维存储器结构中,半导体存储器元件配置为单个平面或单个存储器装置级。典型地,在二维存储器结构中,存储器元件配置在平面中(例如,在x-z方向上的平面),其实质上平行于支承存储器元件的主要衬底表面延伸。衬底可以是晶片,在其上或其中形成存储器元件的层,或者它可以是载体衬底,其在形成之后附接到存储器元件。作为非限制性的示例,衬底可以包含半导体材料,比如硅。
存储器元件可以依有序的阵列配置在单个存储器装置级中,比如在多个行和/或列中。然而,存储器元件可以配置为不规则的或非正交的配置。存储器元件可以各自具有两个或更多的电极或接触线,比如位线和字线。
配置三维存储器阵列,使得存储器元件占据多个平面或多个存储器装置级,从而形成三维结构(即,在x、y和z方向上,其中y方向实质上垂直于主要衬底表面,并且x和z方向实质上平行于主要衬底表面)。
作为非限制性的示例,三维存储器结构可以垂直地配置为多个二维存储器装置级的堆叠体。作为另一非限制性示例,三维存储器阵列可以配置为多个垂直列(例如,实质上垂直于主要衬底表面延伸的列,即,在y方向上),所述垂直列具有每个列在每列中具有多个存储器元件。列可以配置为二维配置(例如,在x-z平面中),产生存储器元件的三维配置,其具有设置在多个垂直地堆叠的存储器平面上的元件。存储器元件的其他三维配置也可以构成三维存储器阵列。
作为非限制性的示例,在三维NAND存储器阵列中,可以将存储器元件耦合到一起,以形成在单个水平(例如,x-z)存储器装置级中的NAND串。可替代地,可以将存储器元件耦合到一起,以形成垂直NAND串,其横向跨过多个水平存储器装置级。可以预期其他三维配置,其中一些NAND串包含单个存储器级中的存储器元件,而其他串包含跨过多个存储器级的存储器元件。也可以依NOR配置和ReRAM配置设计三维存储器阵列。
典型地,在单片三维存储器阵列中,一个或多个存储器装置级形成在单个衬底之上。可选地,单片三维存储器阵列还可以具有至少部分地在单个衬底中的一个或多个存储器层。作为非限制性的示例,衬底可以包含半导体材料,比如硅。在单片三维阵列中,组成阵列的每个存储器装置级的层典型地形成在阵列的存储器装置级下面的层上。然而,单片三维存储器阵列的相邻存储器装置级的层可以被共用,或在存储器装置级之间具有中间层。
二维阵列可以分开形成,并且然后封装到一起,以形成具有多层存储器的非单片的存储器装置。例如,可以通过在分开的衬底上形成存储器级,以及然后将存储器级叠置,来构建非单片的堆叠的存储器。举例来说,存储器装置级中的每一个可以具有对应的衬底,其在堆叠存储器装置级以形成存储器阵列之前被制薄或移除。由于存储器装置级中的每一个初始地在分开的衬底之上形成,产生的存储器阵列并非单片三维存储器阵列。此外,可以在分开的芯片上形成多个二维存储器阵列或三维存储器阵列(单片或非单片),并且然后将其封装到一起,以形成堆叠芯片存储器装置。
在一些实施方式中,存储器104和/或存储器134是具有三维(3D)存储器配置的非易失性存储器,其单片地形成在具有设置于硅衬底之上的有源区域的存储器元阵列的一个或多个物理级中。存储器元的有源区域可以是存储器元的区域,其由存储器元的电荷捕捉部分导电地节流。数据存储装置102可以包含电路,比如作为示例性的、非限制性的示例,与存储器元操作相关的读取写入电路。相关电路典型地用于存储器元件操作,以及用于与存储器元件通信。作为非限制性示例,存储器装置可以具有用于控制和驱动存储器元件执行功能(比如编写和读取)的电路。相关电路可以与存储器元件在相同的衬底上和/或在分开的衬底上。例如,用于存储器读取-写入操作的控制器可以放置在分开的控制器芯片上和/或与存储器元件相同的衬底上。
本领域技术人员将认识到,本公开不限制为描述的二维和三维结构,而如本文描述并为本领域技术人员理解的,覆盖本公开精神和范围之内全部相关的存储器结构。
提交本公开的摘要连同以下理解:其不应被用来解释或限制权利要求的范围或含义。此外,在前面的具体实施方式部分,为了使本公开更简单化的目的,各种特征可以被组合到一起,或在单个实施例中描述。本公开不应解释为反映所要求的实施例比每条权利要求中明确列举的特征需要更多的特征的意图。反之,如下面的权利要求反映的,发明主题可以导向为比任意公开的实施例的全部特征都少。
本文描述的实施例的解释意图提供各种实施例的普遍性理解。可以利用其他实施例,并且可以从本公开衍生其他实施例,使得可以在不背离本公开范围的情况下,进行结构上和逻辑上的替换与改变。本公开意图覆盖各种实施例的任意以及全部的后续改编或变化。
上面公开的主题应认为是示例性的,而非限制性的,并且所附权利要求意图覆盖全部这样的修改、增强,和其他实施例,其落入本公开的范围之内。从而,为最大化法律允许的范围,本公开的范围应由随后的权利要求及其等同的可允许的最宽泛解读确定,而不应被前面的详细说明书限制或局限。
Claims (20)
1.一种通信数据的方法,包括:
在包含非易失性存储器、并且耦合到以主从配置的主机装置的数据存储装置中,执行:
从所述主机装置接收对应于第一读取命令的第一通知;
基于所述第一通知将第一条目存储在通知队列中,所述第一条目对应于所述第一读取命令;
将对应于第二命令的第一数据存储在所述非易失性存储器的存储位置处,其中所述存储位置对应于一经执行所述第一读取命令将被读取的地址,并且其中所述第二命令与将由所述主机装置进行的操作相关;以及
在存储所述第一数据之后,设置对应于所述第一条目的指示符,其中所述指示符当被设置时,向所述主机装置转达所述数据存储装置准备好了执行所述第一读取命令。
2.如权利要求1所述的方法,其中所述数据存储装置是从装置,其中所述主机装置是所述数据存储装置的主装置,并且其中所述第一通知识别所述非易失性存储器的所述存储位置。
3.如权利要求1所述的方法,其中所述第一数据与命令数据相关,并且其中所述命令数据包含统一存储器读取命令数据,统一存储器写入命令数据,操作命令数据,或信息请求命令数据。
4.如权利要求1所述的方法,其中所述操作将在所述主机装置的存储器处被进行,其中所述存储器包括所述主机装置的随机存取存储器(RAM),并且其中所述第二命令对应于将在所述随机存取存储器(RAM)的统一存储器区域上进行的存储器存取操作。
5.如权利要求4所述的方法,其中所述通知队列的第一部分设置为使能所述数据存储装置指挥所述主机装置执行所述主机装置的所述随机存取存储器(RAM)的所述统一存储器区域的读取操作,并且其中所述通知队列的第二部分设置为使能所述数据存储装置指挥所述主机装置在所述主机装置的所述随机存取存储器(RAM)的所述统一存储器区域上执行写入操作。
6.如权利要求1所述的方法,还包括:
在设置所述指示符之后,从所述主机装置接收所述第一读取命令;以及响应于所述第一读取命令,将所述第一数据发送到所述主机装置,其中在所述第一数据被发送到所述主机装置之后,所述数据存储装置接收所述第二命令。
7.如权利要求6所述的方法,其中所述第二命令是第二读取命令,并且还包括,响应于从所述主机装置接收所述第二命令,将第二数据从所述数据存储装置发送到所述主机装置,其中所述第二数据读取自所述数据存储装置的所述非易失性存储器的由所述第二命令指定的部分。
8.如权利要求7所述的方法,还包括:
在设置所述指示符之后,从所述主机装置接收对应于第三读取命令的第二通知;
基于所述第二通知,将第二条目存储在所述通知队列中,所述第二条目对应于所述第三读取命令;以及
清空对应于所述第二条目的第二指示符。
9.如权利要求8所述的方法,还包括:
在清空所述第二指示符之后,通过以下步骤发起所述第二数据从所述主机装置的所述易失性存储器到所述数据存储装置的取回:
将对应于第一写入命令的第三数据存储在所述非易失性存储器的第二存储位置处,其中所述第二存储位置对应于经执行所述第三读取命令将被读取的地址;以及
在存储所述第三数据之后,设置所述通知队列的所述第二指示符。
10.如权利要求9所述的方法,还包括:
在设置所述第二指示符之后,从所述主机装置接收所述第一写入命令,所述第一写入命令包含所述第二数据;以及
响应于所述第一写入命令,将所述第二数据存储在所述非易失性存储器处。
11.如权利要求1所述的方法,其中所述非易失性存储器包含三维(3D)存储器配置,所述三维(3D)存储器配置单片地形成在具有设置在硅衬底之上的有源区域的存储器元阵列的一个或多个物理级中,并且其中所述数据存储装置包含与所述存储器元的操作相关的电路。
12.一种数据存储装置,包括:
准备包含多个存储位置的非易失性存储器;以及
控制器,所述控制器操作地耦合到所述非易失性存储器,并且配置为耦合到以主从配置的主机装置,其中所述控制器配置为基于从所述主机装置接收的第一通知,将第一条目存储在通知队列中,所述第一条目对应于第一读取命令,其中所述控制器配置为将对应于第二命令的第一数据存储在所述非易失性存储器的存储位置处,所述第二命令与将由所述主机装置进行的操作相关,所述存储位置对应于一经执行所述第一读取命令将被读取的地址,其中所述控制器被配置为,在所述第一数据被存储之后,设置对应于所述第一条目的指示符,并且其中所述指示符当被设置时,向所述主机装置转达控制器将发起所述第一读取命令的执行。
13.如权利要求12所述的数据存储装置,其中所述控制器包含易失性存储器,其中所述易失性存储器包含所述通知队列。
14.如权利要求12所述的数据存储装置,其中所述通知队列包含与所述第一读取命令相关的指定的条目位置,并且其中所述存储位置对应于逻辑区块地址为由所述控制器产生的命令数据所预留的范围。
15.如权利要求12所述的数据存储装置,其中所述控制器配置为通过使用嵌入式存储器协议,与所述主机装置相互作用。
16.如权利要求15所述的数据存储装置,其中所述嵌入式存储器协议是嵌入式闪存存储器协议。
17.如权利要求12所述的数据存储装置,其中,当所述主机装置将特定通知发送到所述通知队列时,所述主机装置配置为确定所述通知队列包含的特定条目是否与使能所述数据存储装置向所述主机装置提供存储器共享命令相关,并且,如果所述通知队列不包含所述特定条目,所述主机装置配置为造成在所述通知队列中产生所述特定条目。
18.如权利要求12所述的数据存储装置,其中所述通知队列由所述主机装置周期性地轮询,以识别对应于一个或多个条目的一个或多个指示符是否被设置,并且其中,当设置了特定指示符时,所述控制器配置为从所述主机装置接收与所述特定指示符相关的将被执行的特定命令。
19.如权利要求12所述的数据存储装置,还包括主机接口,其中所述主机接口当所述主机接口耦合到所述主机装置时,使能所述控制器与所述主机装置之间的通信,并且其中所述控制器配置为通过激活所述主机接口的插针来设置所述指示符。
20.如权利要求12所述的数据存储装置,其中所述非易失性存储器包含三维(3D)存储器配置,所述三维(3D)存储器配置单片地形成在具有设置在硅衬底上的有源区域的存储器元阵列的一个或多个物理级中,并且还包括与所述存储器元的操作相关的电路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/305,758 US8935465B1 (en) | 2014-06-16 | 2014-06-16 | System and method of communicating command data in a master-slave environment |
US14/305,758 | 2014-06-16 | ||
PCT/US2015/035289 WO2015195457A1 (en) | 2014-06-16 | 2015-06-11 | System and method of communicating command data in a master-slave environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106255954A CN106255954A (zh) | 2016-12-21 |
CN106255954B true CN106255954B (zh) | 2019-08-02 |
Family
ID=52247882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580016415.0A Active CN106255954B (zh) | 2014-06-16 | 2015-06-11 | 主从环境中的通信命令数据的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8935465B1 (zh) |
KR (1) | KR101903570B1 (zh) |
CN (1) | CN106255954B (zh) |
WO (1) | WO2015195457A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9690953B2 (en) * | 2013-03-14 | 2017-06-27 | Apple Inc. | Generating efficient reads for a system having non-volatile memory |
CN103631534B (zh) * | 2013-11-12 | 2017-01-11 | 北京兆芯电子科技有限公司 | 数据存储系统以及其管理方法 |
US9971522B2 (en) * | 2014-07-21 | 2018-05-15 | Toshiba Memory Corporation | Memory system and method |
US10061515B2 (en) * | 2014-09-11 | 2018-08-28 | Toshiba Memory Corporation | Information processing apparatus and memory system |
US9940379B2 (en) * | 2014-09-30 | 2018-04-10 | International Business Machines Corporation | Hybrid data replication |
US9542122B2 (en) * | 2014-10-23 | 2017-01-10 | Seagate Technology Llc | Logical block addresses used for executing host commands |
US9558064B2 (en) | 2015-01-28 | 2017-01-31 | Micron Technology, Inc. | Estimating an error rate associated with memory |
US20170068480A1 (en) * | 2015-09-09 | 2017-03-09 | Mediatek Inc. | Power Saving Methodology for Storage Device Equipped with Task Queues |
US10318193B2 (en) | 2015-09-14 | 2019-06-11 | Sandisk Technologies Llc | Systems and methods of command authorization |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10296473B2 (en) * | 2017-03-24 | 2019-05-21 | Western Digital Technologies, Inc. | System and method for fast execution of in-capsule commands |
US11442628B2 (en) | 2018-07-31 | 2022-09-13 | SK Hynix Inc. | Apparatus and method for engaging a plurality of memory systems with each other |
US11157207B2 (en) | 2018-07-31 | 2021-10-26 | SK Hynix Inc. | Apparatus and method for engaging plural memory system with each other to store data |
US11249919B2 (en) | 2018-07-31 | 2022-02-15 | SK Hynix Inc. | Apparatus and method for managing meta data for engagement of plural memory system to store data |
KR20200034360A (ko) | 2018-09-21 | 2020-03-31 | 에스케이하이닉스 주식회사 | 내부채널을 통해 서로 간에 연결된 다수의 메모리 시스템을 포함하는 데이터 처리 시스템 |
US11099779B2 (en) * | 2018-09-24 | 2021-08-24 | Micron Technology, Inc. | Addressing in memory with a read identification (RID) number |
US10768837B2 (en) * | 2018-10-31 | 2020-09-08 | EMC IP Holding Company LLC | Non-disruptive migration of a virtual volume in a clustered data storage system |
US10977139B1 (en) * | 2019-10-14 | 2021-04-13 | Micron Technology, Inc. | Detailed failure notifications in memory sub-systems |
US11537320B2 (en) * | 2020-02-03 | 2022-12-27 | Western Digital Technologies, Inc. | Storage system and method for host memory access |
US11327684B2 (en) | 2020-05-14 | 2022-05-10 | Western Digital Technologies, Inc. | Storage system and method for host memory access |
US11429663B2 (en) | 2020-06-02 | 2022-08-30 | Western Digital Technologies, Inc. | Storage system and method for host-assisted memory block color coding for faster media search |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312623A (zh) * | 2012-03-08 | 2013-09-18 | 百度在线网络技术(北京)有限公司 | 任务协作装置及方法 |
CN103678193A (zh) * | 2012-09-14 | 2014-03-26 | 三星电子株式会社 | 控制非易失性存储卡的主机、包括主机的系统、操作方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100880379B1 (ko) * | 2006-05-25 | 2009-01-23 | 삼성전자주식회사 | 외부로부터 제공받는 부트 코드로 부팅되는 정보기기시스템 |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US9141296B2 (en) | 2012-05-31 | 2015-09-22 | Sandisk Technologies Inc. | Method and host device for packing and dispatching read and write commands |
KR101988260B1 (ko) * | 2012-09-14 | 2019-06-12 | 삼성전자주식회사 | 임베디드 멀티미디어 카드, 및 이의 동작 방법 |
-
2014
- 2014-06-16 US US14/305,758 patent/US8935465B1/en active Active
-
2015
- 2015-06-11 KR KR1020167026391A patent/KR101903570B1/ko active IP Right Grant
- 2015-06-11 CN CN201580016415.0A patent/CN106255954B/zh active Active
- 2015-06-11 WO PCT/US2015/035289 patent/WO2015195457A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312623A (zh) * | 2012-03-08 | 2013-09-18 | 百度在线网络技术(北京)有限公司 | 任务协作装置及方法 |
CN103678193A (zh) * | 2012-09-14 | 2014-03-26 | 三星电子株式会社 | 控制非易失性存储卡的主机、包括主机的系统、操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106255954A (zh) | 2016-12-21 |
KR20170020308A (ko) | 2017-02-22 |
WO2015195457A1 (en) | 2015-12-23 |
US8935465B1 (en) | 2015-01-13 |
KR101903570B1 (ko) | 2018-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106255954B (zh) | 主从环境中的通信命令数据的系统和方法 | |
US11061721B2 (en) | Task queues | |
US10318193B2 (en) | Systems and methods of command authorization | |
US20160011790A1 (en) | Systems and methods to enable access to a host memory associated with a unified memory architecture (uma) | |
CN105874420B (zh) | 对数据进行压缩的系统和方法 | |
US20160019160A1 (en) | Methods and Systems for Scalable and Distributed Address Mapping Using Non-Volatile Memory Modules | |
WO2017058301A1 (en) | Zero read on trimmed blocks in a non-volatile memory system | |
US10824335B2 (en) | Device and method to store predicted data at a host memory | |
CN108470006B (zh) | 用于进行非阻塞控制同步操作的技术 | |
US10114743B2 (en) | Memory erase management | |
US10740243B1 (en) | Storage system and method for preventing head-of-line blocking in a completion path | |
CN107980126B (zh) | 用于调度多裸芯储存装置的方法、数据储存装置及设备 | |
US9870167B2 (en) | Systems and methods of storing data | |
CN107430491A (zh) | 存储器健康监视 | |
CN109783008A (zh) | 数据存储装置及其操作方法 | |
CN107810533A (zh) | 使用位线缺陷信息解码数据 | |
US11288017B2 (en) | Devices, systems, and methods for storing data using distributed control | |
CN108172261A (zh) | 由数据存储设备的解码期间的流水线延迟检测 | |
US11461052B1 (en) | Storage system with dual submission queue doorbell registers and method for use in a multi-tenant system | |
US11301168B2 (en) | Storage system and method for user-defined data archiving | |
US11914900B2 (en) | Storage system and method for early command cancelation | |
US20230409234A1 (en) | Data Storage Device and Method for Host Multi-Command Queue Grouping Based on Write-Size Alignment in a Multi-Queue-Depth Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |