CN107787486B - 命令授权的系统和方法 - Google Patents

命令授权的系统和方法 Download PDF

Info

Publication number
CN107787486B
CN107787486B CN201680035287.9A CN201680035287A CN107787486B CN 107787486 B CN107787486 B CN 107787486B CN 201680035287 A CN201680035287 A CN 201680035287A CN 107787486 B CN107787486 B CN 107787486B
Authority
CN
China
Prior art keywords
command
unauthorized
mode
memory
authorized
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
Application number
CN201680035287.9A
Other languages
English (en)
Other versions
CN107787486A (zh
Inventor
R.哈恩
S.科恩
A.马尔库
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of CN107787486A publication Critical patent/CN107787486A/zh
Application granted granted Critical
Publication of CN107787486B publication Critical patent/CN107787486B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

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)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种包括非易失性存储器和耦合到非易失性存储器的控制器的设备。设备可以根据模式来配置,其中在设备被配置为处于该模式的同时、在其中特定命令的运行是未授权的。在处于该模式的同时,设备可以授权命令的运行以在该模式期间发生。

Description

命令授权的系统和方法
技术领域
本公开一般涉及命令授权。
背景技术
诸如嵌入式存储器设备和可移除存储器设备(例如,可移除通用串行总线(universal serial bus,USB)闪存设备和其他可移除储存卡)的非易失性数据存储设备,已经考虑到增加的数据和软件应用的可移植性。非易失性数据存储设备的用户越来越依赖于非易失性储存设备来存储大量数据和提供对大量数据的快速访问。
许多数据存储设备能够以多个不同的模式来操作。例如,当命令队列被使能并且不为空时,某些数据存储设备可以是可以以命令队列模式来进行操作的。操作的每个模式可以与操作的集合相关联,该操作被授权(例如,被允许)以通过数据存储设备被运行。授权命令的集合可以不包括由数据存储设备识别的全部命令。也就是说,在以特定模式操作的同时,一些命令可以是未被授权运行的。为了能够运行未授权的命令,数据存储设备可能必须退出当前的操作模式。例如,在以命令队列模式操作的同时,为了运行没有被授权来以命令队列模式运行的命令,数据存储设备可能需要例如通过冲洗(flashing)所有未决(pending)命令的命令队列(而不运行未决命令)或通过运行命令队列中的未决命令中的每一个来清空命令队列来退出命令队列模式。在命令队列被清空之后,设备可能能够改变模式并且运行在该命令队列模式中没有被授权的命令。
冲洗未决命令的命令队列或运行命令队列中的所有未决命令延迟了在命令队列模式下没有被授权的命令的运行。
发明内容
在特定方面,设备包括存储器和耦合到存储器的控制器。当控制器处于第一模式的同时,该控制器被配置为,经由第一命令,接收授权第二命令的运行的指示,该第二命令由控制器可用的数据分类为未授权的命令。控制器还被配置为,响应于该指示,当控制器处于第一模式的同时,修改该数据以授权所述第二命令的运行。
附图说明
图1是包括能够操作来授权未授权的命令的运行的数据存储设备的系统的特定例示性示例的框图;
图2是图1的数据存储设备的操作的特定例示性示例;
图3是授权未授权的命令的运行的方法的特定例示性示例的流程图;以及
图4是发送未授权的命令的运行被授权的指示的方法的特定例示性示例的流程图。
具体实施方式
下面参考附图描述本公开的特定的方面。在描述中,共同的特征通过共同的参考编号指定。虽然本文中参考数据存储设备描述某些示例,但是应该理解的是,这里所描述的技术可以应用于其他实施方式。另外,应该理解的是,某些序数词术语(例如,“第一”或“第二”)可以为了便于参考而被提供并且不一定暗示物理特性或顺序。因此,如这里所使用的,用于修改诸如结构、组件、操作等的元件的序数词术语(例如,“第一”、“第二”、“第三”等)不一定指示元件相对于另一元件的优先级或顺序,而是从另一具有相同名称(但是对于序数词术语的使用不同)的元件区分该元件。此外,如这里所使用的,不定冠词(“一”和“一个”)可以指示“一个或多个”而不是“一个”。另外,“基于”条件或事件而执行的操作也可以基于没有明确描述的一个或多个其他条件或事件而执行。如本文所使用的,“示例性”可以指示示例、实施方式、和/或方面,并且不应该被解释为限制性的或被解释为指示偏好或偏好的示例、实施方式、和/或方面。
本公开描述当数据存储设备处于诸如命令队列模式的第一模式的同时,授权特定命令的运行的系统和方法。当以第一模式(例如,当命令队列被使能和占用的同时)操作的同时,数据存储设备可以从诸如主机设备的接入设备接收指示,以授权(例如,许可)特定命令的运行,该特定命令在处于第一模式的操作期间没有被授权(例如,未授权的命令)。响应于该指示,数据存储设备可以在处于第一模式的同时,临时授权特定命令的运行。为了示出,数据存储设备可以维持比特的数组,其中每个比特对应于不同的命令。在处于第一模式的操作期间,特定比特的值可以指示特定的对应的命令是被分类为授权的还是未授权的。为了(临时地)授权特定命令的运行,数据存储设备可以将与特定命令相对应的比特值从第一值(例如,逻辑零)改变为第二值(例如,逻辑一)。当以第一模式操作的同时、在特定命令的运行之后,数据存储设备可以将与特定命令相对应的比特值从第二值(例如,逻辑一)改变为第一值(例如,逻辑零)来将特定命令分类为未授权的(例如,禁止的)。因此,本公开使得在第一模式(例如,命令队列模式)中被配置的设备能够临时授权运行其它未授权的命令,而不从第一模式改变为第二模式(例如,通过清空命令队列)。
图1描绘了系统100的例示性示例。系统100包括数据存储设备102和接入设备170。数据存储设备102包括控制器130和耦合到控制器130的存储器设备103。存储器设备103可以包括一个或多个存储器裸芯。
数据存储设备102和接入设备170可以经由连接(诸如总线或无线连接)被耦合(例如,通信路径180)。数据存储设备102可以包括第一接口110(例如,嵌入示多媒体卡(embedded MultiMedia Card,eMMC)接口),该第一接口110使能经由数据存储设备102和接入设备170之间的通信路径180的通信。
在一些实施方式中,数据存储设备102可以被附接到一个或多个接入设备、或嵌入一个或多个接入设备之内,诸如接入设备170的外壳之内。例如,数据存储设备102可以被嵌入在接入设备170之内,诸如根据联合电子器件工程委员会(Joint Electron DevicesEngineering Council,JEDEC)固态技术协会通用闪存(Solid State TechnologyAssociation Universal Flash Storage,UFS)配置。例如,数据存储设备102可以被配置为,被耦合到接入设备170或被嵌入在接入设备170之内作为嵌入的存储器,如例示性示例,诸如
Figure GDA0002716788660000031
(弗吉尼亚州阿灵顿,JEDEC固态技术协会的商标)和eSD。为了示出,数据存储设备102可以对应于嵌入式多媒体卡(eMMC)设备。作为另一示例,数据存储设备102可以对应于存储卡,诸如安全数字
Figure GDA0002716788660000032
卡、Micro
Figure GDA0002716788660000033
卡、miniSDTM卡(威尔明顿,特拉华州,SD-3C LLC的商标)、多媒体卡TM(MMCTM)(弗吉尼亚州阿灵顿,JEDEC固态技术协会的商标)、或紧凑式
Figure GDA0002716788660000041
(CompactFlash,CF)卡(米尔皮塔斯,加州,SanDisk公司的商标)。为了进一步示出,数据存储设备102可以集成在诸如移动电话、计算机(例如,膝上型计算机、平板型计算机、或笔记本计算机)、音乐播放器、视频播放器、游戏设备或游戏机、电子书阅读器、个人数字助理(personal digital assistant,PDA)、便携式导航设备、汽车电子系统、或使用非易失性存储器的其他设备的装置之内。
在其他实施方式中,数据存储设备102可以被实施在被配置为选择性地耦合到一个或多个外部接入设备的便携式设备中。例如,数据存储设备102可以是可从接入设备170移除的(即,“可移除地”耦合到接入设备170)。作为示例,根据可移除通用串行总线(USB)配置,数据存储设备102可以可移除地耦合到接入设备170。还在其他实施方式中,数据存储设备102可以是网络可访问数据存储系统的组件(例如,固态驱动器(solid-state drive,SSD)),诸如企业数据系统、网络附接存储系统、云数据存储系统等。
在一些实施方式中,数据存储设备102可以包括或对应于固态驱动器(SSD),其可以包括在接入设备170中、或不同于接入设备170(并且可以对接入设备170进行访问)。例如,作为例示性的非限制性示例,数据存储设备102可以包括或对应于SSD,所述SSD可以被用作嵌入示存储驱动器(例如,移动嵌入式储存驱动器)、企业存储驱动器(enterprisestorage drive,ESD)、客户存储设备、或云存储驱动器。在一些实施方式中,数据存储设备102直接耦合到接入设备170,例如,经由网络。例如,网络可以包括数据中心存储系统网络、企业存储系统网络、存储区域网络、云存储网络、局域网(local area network,LAN)、广域网(wide area network,WAN)、互联网、和/或其他网络。在一些实施方式中,数据存储设备102可以是网络附属存储(network attached storage,NAS)设备或数据中心储存系统、企业储存系统、或存储区域网络的组件(例如,固态驱动器(SSD))。
数据存储设备102可以遵照JEDEC工业规范来操作。例如,数据存储设备102可以遵照JEDEC eMMC规范、JEDEC通用闪存(Universal Flash Storage,UFS)规范、一个或多个其他规范、或它们的组合来操作。在一些实施方式中,作为例示性、非限制性示例,数据存储设备102和接入设备170可以被配置为,使用一个或多个协议来通信,诸如eMMC协议、通用闪存(UFS)协议、通用串行总线(USB)协议、串行高级技术附件(serial advanced technologyattachment,SATA)协议、和/或其他协议。
接入设备170可以包括第三接口172(eMMC接口),并且可以被配置为经由第三接口172与数据存储设备102通信,以从数据存储设备102的存储器设备103读取数据以及向数据存储设备102的存储器设备103写入数据。例如,接入设备170可以遵照诸如通用闪存(UFS)接入控制器接口规范的联合电子器件工程委员会(JEDEC)工业规范来操作。作为其他示例,作为例示性、非限制性示例,接入设备170可以遵照一个或多个其他规范来操作,诸如安全数字(SD)接入控制器规范。接入设备170可以根据任何其他合适的通信协议来与存储器设备103通信。
接入设备170可以包括处理器174和存储器176。存储器176可以被配置为存储数据和/或可通过处理器174被运行的指令。存储器176可以是单一存储器或可以包括多个存储器,诸如一个或多个非易失性存储器、一个或多个易失性存储器、或它们的组合。接入设备170可以向数据存储设备102发出一个或多个命令,诸如擦除数据存储设备102的存储器设备103的数据、从数据存储设备102的存储器设备103读取数据、或向数据存储设备102的存储器设备103写入数据的一个或多个请求。例如,接入设备170可以被配置为,提供要被存储在存储器设备103处的诸如用户数据160的数据、或被配置为请求要从存储器设备103读取的数据。作为例示性的、非限制性的示例,接入设备170可以对应于移动电话、计算机(例如,膝上型计算机、平板型计算机、或笔记本计算机)、音乐播放器、视频播放器、游戏设备或游戏机、电子书阅读器、个人数字助理(PDA)、便携式导航设备、计算机(诸如膝上型计算机或笔记本计算机)、网络计算机、服务器、汽车电子系统、任何其他电子设备、或它们的任何组合。
数据存储设备102的存储器设备103可以包括一个或多个存储器裸芯(例如,一个存储器裸芯、两个存储器裸芯、八个存储器裸芯、或其他数量的存储器裸芯)。存储器设备103包括存储器104,诸如包括在存储器裸芯中的存储元件的非易失性存储器。例如,作为例示性的、非限制性的示例,存储器104可以包括快闪存储器,诸如NAND快闪存储器。存储器104可以具有三维(three-dimensional,3D)存储器配置。作为示例,存储器104可以具有3D垂直比特线(vertical bit line,VBL)配置。在特定实施方式中,存储器104包括,具有在存储元件(例如存储器单元)的阵列的一个或多个物理水平中单片地形成的3D存储器配置的非易失性存储器,该存储元件具有布置在硅基底之上的有源区域。可替换地,存储器104可以具有其它配置,诸如二维(two-dimensional,2D)存储器配置或非单片的3D存储器配置(例如,堆叠裸芯3D存储器配置)。
存储器设备103(和/或存储器104)可以包括与存储器104的存储元件的操作相关联的电路。例如,存储器设备103(和/或存储器104)可以包括诸如读取/写入电路113的支持电路,以支持存储器设备103的一个或多个存储器裸芯的操作。虽然描绘为单一组件,但是读取/写入电路113可以被划分为存储器设备103的分离的组件,诸如读取电路和写入电路。读取/写入电路113可以在存储器设备103的一个或多个存储器裸芯的外部。可替换地,存储器设备103的一个或多个个别存储器裸芯可以包括相应的读取/写入电路,该相应的读取/写入电路可以操作以独立于在其他存储器裸芯中的任何一个处的任何其他读取和/或写入操作而从个别存储器裸芯之内的存储元件读取数据和/或向个别存储器裸芯之内的存储元件写入数据。
存储器104可以包括多个存储元件的组。例如,存储器104可以包括存储元件的代表性的组106(例如,存储器单元的组)。存储元件的组106可以包括代表性的存储元件108(例如,存储器单元)。作为例示性、非限制性的示例,存储元件108可以被配置为,起到单级单元(Single-level-cell,SLC)的作用、起到多级单元(Multi-level-cell,MLC)的作用、或起到三级单元(Tri-level-cell,TLC)的作用。每一组存储元件,诸如存储元件的组106、存储器104的组,可以对应于一个或多个字线、块、平面、或其他可定义的存储元件的组。
控制器130经由总线121、存储器接口(例如,诸如第二接口132的接口电路)、其他结构、或它们的组合被耦合到存储器设备103。例如,总线121可以包括一个或多个信道使得控制器130能够与存储器设备103的单一存储器裸芯通信。作为另一示例,总线121可以包括多个不同信道来使得控制器130能够与存储器设备103的每个存储器裸芯通信,该通信并行于、并且独立于与存储器设备103的其他存储器裸芯的通信。
控制器130被配置为,从接入设备170接收数据和指令并且被配置为向接入设备170发送数据。例如,控制器130可以经由第一接口110向接入设备170发送数据,并且控制器130可以经由第一接口110从接入设备170接收数据。控制器130被配置为,向存储器104发送数据和命令并且被配置为从存储器104接收数据。例如,控制器130被配置为,发送数据和写入命令以使得存储器104将数据存储到与指定的存储器104的地址相对应的存储元件。写入命令可以指定将要存储数据的存储器104的部分的地址(例如,存储器104的字线的物理地址)。作为例示性的、非限制性的示例,控制器130也可以被配置为,向存储器104发送与后台扫描操作、垃圾回收操作、和/或磨损均衡操作等相关联的数据和命令。控制器130被配置为,向存储器104发送读取命令以从与指定的存储器104的地址相对应的存储元件访问数据。读取命令可以指定存储器104的部分的物理地址(例如,存储器104的字线的物理地址)。
控制器130包括寄存器的集合133、命令模块138、和存储器150。寄存器的集合133可以包括比特的数组136。对于可以由数据存储设备102运行的多个命令中的每个命令,比特的数组136可以包括相应的比特。例如,比特的数组136的第一比特可以对应于第一命令(CMD1)、比特的数组136的第二比特可以对应于第二命令(CMD2)、比特的数组136的第三比特可以对应于第三命令(CMD3)、比特的数组136的第四比特可以对应于第四命令(CMD 4)、比特的数组136的第五比特可以对应于第五命令(CMD 5)。虽然比特的数组136被描述为包括五个比特,但是在其他实施方式中,比特的数组136可以包括多于或少于五个比特。
基于比特的数组136的相应比特值,多个命令中的每个命令可以被分类(标记)为被授权以运行或未被授权以运行。作为例示性的、非限制性的示例,比特值“0”可以指示被分类为未授权的特定的命令,并且比特值“1”可以指示被分类为授权的特定的命令。为了示出,如图1中所描绘的,比特的数组136指示第三命令(CMD 3)被授权以运行,并且第五命令(CMD 5)未被授权以运行。
存储器150可以包括第一授权方案152。第一授权方案152可以包括将(可由数据存储设备102运行的多个命令的)命令分类为对于特定的模式(诸如第一模式)被授权以运行或未被授权以运行的数据。为了示出,第一模式可以对应于命令队列模式,在其中命令队列134被使能和占用(例如,包括等待运行的一个或多个授权的命令)。第一授权方案152可以包括、或关联于分类(或标记)对于特定的模式的授权命令的集合146和未授权命令的集合的数据。例如,第一授权方案152可以包括、或关联于比特的数组136(例如,比特图),该比特的数组136响应于在特定的模式下被配置的控制器130(例如,命令模块138)被加载到寄存器133中。在这个示例中,比特的数组136中的每个比特可以对应于由命令模块138所识别的命令。因此,比特的数组136一起对应于所识别的命令的集合。另外,在这个示例中,具有第一值的比特的数组136的第一集合比特对应于在特定的模式下被授权以用于运行的命令(例如,授权命令的集合146),并且具有第二值的比特的数组136的第二集合比特对应于在特定的模式下没有被授权以用于运行的命令(例如,未授权的命令的集合148)。在其他实施方式中,第一授权方案152可以包括、或关联于授权的和/或未授权的命令的(多个)列表。
识别的命令的示例在eMMC规范中被定义。下面的表1列出了识别的命令的多个示例以及与每个命令相关联的命令索引。表1并不意图列出控制器130可以识别的所有命令。例如,eMMC规范也列出了在表1中没有被列出的若干保留的命令索引。
[表1]
Figure GDA0002716788660000081
Figure GDA0002716788660000091
Figure GDA0002716788660000101
命令模块138可以包括运行单元135、命令队列134、解析模块140、和模式指示器142。在一些实施方式中,运行单元135是控制器130的组件,并且命令模块138通过运行单元135运行或通过运行单元135实施。例如,运行单元135可以包括或对应于处理器、专用集成电路(application specific integrated circuit,ASIC)、或包括逻辑以使能软件或固件代码的运行的其他电路。在这个示例中,命令模块138可以包括或对应于由运行单元135运行的软件或固件代码。运行单元135也可以运行或实施被识别和被授权的命令(例如,授权命令的集合146的命令)。
模式指示器142可以指示控制器130(例如,命令模块138)是被配置为用于在第一模式下的操作还是被配置为用于在其他模式下的操作(例如,第二模式)。在一些实施方式中,第一授权方案152可以对应于第一模式。为了示出,第一模式可以包括命令队列模式,并且第二模式可以包括诸如传递模式的非命令队列模式。当控制器130被配置为用于在第一模式下的操作时(例如,当命令队列134被使能和占用时),模式指示器142可以具有第一值,并且当控制器130被配置以用于在第二模式下的操作时(例如,当命令队列134没有被使能或没有被占用时),模式指示器142可以具有第二值。第一模式(例如,命令队列模式)和第二模式(例如,非命令队列模式)可以与eMMC协议相关联。
当模式指示器142指示控制器130被配置以用于在第一模式下的操作时,控制器130可以被配置为:如果命令被接收到或在命令队列134中被放置,则运行命令的第一集合(例如,授权命令的集合146中的一个或多个命令)中的任何一个这样的命令。另外,当模式指示器142指示控制器130被配置以用于在第一模式下的操作时,控制器130可以被配置为:如果命令被接收到或在命令队列134中被放置,则丢弃、忽略或此外不运行诸如未授权的命令的集合的第二集合命令中的任何一个的这样的第二命令(例如,未授权的命令的集合148的一个或多个命令)。当模式指示器142指示控制器130被配置以用于在第二模式下的操作时,控制器130可以被配置为运行不同的集合命令、被配置为丢弃、忽略、或不运行不同的命令,或这两者。在一些实施方式中,当模式指示器142指示控制器130被配置以用于在第二模式下的操作时,识别的命令的集合的所有命令可以由控制器130授权以用于运行,并且不存在识别的命令可以未授权而运行。
从接入设备170接收到的诸如命令162的命令可以在命令队列134中被放入队列,以用于随后运行(例如,由运行单元135运行)。作为例示性的、非限制性的示例,虽然命令队列134被描述为单一队列,但是在其他实施方式中,命令队列134可以包括多个队列,诸如用于读取操作和写入操作的分离的队列。
解析模块140可以被配置为,从接入设备170接收诸如命令162的一个或多个命令。响应于接收命令162,解析模块140可以解析命令162以识别命令162的命令索引值166(例如,CMD2)。基于命令162的命令索引值166,命令模块138可以确定命令162(例如,CMD2)被授权以执行还是未被授权以执行。为了示出,命令模块138可以确定对应于命令索引值166的比特的数组136的比特值。如果比特值指示命令162被分类为未被授权以用于运行,则命令模块138可以丢弃、忽略或不运行命令162。可替换地,如果比特值指示命令162被分类为被授权以用于运行,则命令模块138可以向命令队列134提供命令162(例如,命令索引值166)。
额外地或者可替换地,解析模块140可以解析命令以确定命令162是否包括指示164来改变特定的命令的授权/未授权。在一些实施方式中,指示164可以被包括在命令162的自变量(argument)的保留比特中。例如,命令162可以包括指示与不同的命令索引(例如,CMD4)相关联的命令要被授权以用于运行的自变量。响应于指示164,命令模块138可以被配置为授权第四命令(CMD4)的运行。为了配置命令模块138来授权第四命令(CMD4)的运行,解析模块140可以向寄存器133发送数据168来修改与第四命令(CMD4)相对应的比特值来将第四命令(CMD4)分类为被授权的。为了示出,解析模块140可以向寄存器133发送数据168来将与第四命令(CMD4)相对应的比特值从0值(指示第四命令(CMD4)的运行没有被授权)改变为1值(指示第四命令(CMD4)的运行被授权)。因此,如果接入设备170在第一模式下操作的同时期望运行没有被正常地授权以用于运行的命令,接入设备170能够发送指示164来临时地使得命令被授权而不退出第一模式。
为了示出,当模式指示器142指示控制器130被配置以用于第一模式下的操作的同时,控制器130可以运行导致异常(exception)的特定的命令。为了确定异常的原因,接入设备170能够发出与命令索引CMD8相关联的命令(例如,请求卡特定数据寄存器的内容的命令)。然而,在命令队列模式(例如,第一模式)中的操作期间,CMD8不能被授权。根据特定的实施方式,接入设备170可以发出与命令索引CMD13相关联的命令(例如,以请求寄存器的状态),其被授权以用于在第一模式下运行。CMD13命令的自变量(或保留比特)可以指示CMD8要被授权以用于运行。基于自变量(或保留比特),比特的数组136的比特的值可以被改变为将CMD8命令分类为被授权的。因此,通过改变比特的数组136中的比特的值,被授权以用于在第一模式下运行的命令(例如,CMD13)可以被用于使得未授权命令(例如,CMD8)被授权。在使得CMD8命令被授权和运行之后,接入设备170可以发出另一命令来使得比特的数组136的比特的值再次被改变,以将CMD8命令再次分类为未授权的。
在一些实施方式中,模式指示器142可以指示多个模式下的一个模式。例如,模式指示器142可以被设置为指示第一模式(例如,命令队列模式)中的操作或第二模式(例如,非命令队列模式)中的操作。如上所述,第一模式可以对应于第一授权方案152,其包括授权的命令的集合146和未授权的命令的集合148。额外地或者可替换地,第一模式可以对应于未授权的命令的第二集合。当第一模式对应于第一授权方案152和第二授权方案两者时,当命令队列134不为空时第一授权方案152可以被用于设置比特的数组136的值,并且当命令队列134为空时第二授权方案可以被用于设置比特的数组136的值。在一些实施方式中,第一授权方案152可以比第二授权方案更具限制性,从而相比于第二授权方案,在第一授权方案152下更少的命令被授权以用于运行。额外地,第二模式(例如,非命令队列模式)可以对应于第三授权方案。在一些实施方式中,第三授权方案可以比第一授权方案152、第二授权方案、或两者更不具限制性。
在一些实施方式中,在数据存储设备102上电或退出待机(standby)时段之后,命令模块138可以设置模块指示器142来指示第二模式(例如,非命令队列模式)中的操作。接入设备170可以发送进入命令队列模式指令来使得命令模块将模式指示器142从第二模式(例如,非命令队列模式)改变为第一模式(例如,命令队列模式)。当模式指示器142被设置为第一模式的同时,接入设备170可以向数据存储设备102发送(被包括在授权命令的集合146中的)一个或多个第一命令以用于运行。
在例示性的、非限制性的示例中,接入设备170和数据存储设备102可以使用eMMC协议来通信。为了向数据存储设备102发送指示164,接入设备170可以将指示164包括在特定的命令中,诸如由eMMC协议所使用的命令13(CMD13)。例如,接入设备170可以将指示164包括在命令13(CMD13)的自变量或保留比特中。为了示出,eMMC协议的命令13(CMD13)的自变量可以包括32个比特,诸如比特[31:0]。命令13(CMD13)的格式可以指示:比特[31:16]指示相对卡地址(relative card address,RCA)、比特[15]指示发送队列状态(send queuestatus,SQS)、比特[14:1]是保留比特(例如,诸如全0或全1的填充(stuff)比特)、以及比特[0]是高优先级中断(high priority interrupt,HPI)指示符。接入设备170可以将指示164包括在保留比特[14:1]中。
作为例示性的、非限制性的示例,指示164可以包括在自变量的比特[7]处的、作为命令授权/未授权指示符的比特,和在自变量的比特[6:1]处的命令索引值(例如,命令的操作码)。在比特[7]处的命令授权/未授权指示符的值可以指示授权还是不授权与在比特[6:1]处的命令索引值相对应的命令的运行。例如,如果比特[7]是1值,则与命令索引值相对应的命令将被授权以用于运行。为了示出,命令索引值可以对应于eMMC协议的命令6(CMD6)或命令8(CMD8)。可替换地,如果比特[7]是0值,则与命令索引值相对应的命令将不被授权以用于运行。作为另一例示性的、非限制性的示例,指示164可以包括在比特[14]处的作为命令授权/未授权指示符的比特、在比特[13:7]处的命令索引值(例如,命令的操作码),并且比特[6:1]可以指示允许命令的运行的次数。在已经运行由比特[6:1]所指示的次数的命令之后,命令可以被分类为未被授权以用于运行。作为额外的例示性的、非限制性的示例,保留比特[14:1]中的指示164可以包括在比特[14]处的作为命令授权/未授权指示符的比特、在比特[13:7]处的第一命令索引值(例如,命令的操作码)、以及在比特[6:1]处的第二命令索引值(例如,其他命令的操作码)。通过包括两个命令索引值,指示164可以授权/不授权两个不同的命令的运行。
在一些实施方式中,命令模块138可以被配置为,响应于指示164,临时授权诸如第四命令(CMD4)的特定的命令的运行。在特定的命令的单一运行或多次运行之后,特定的命令的运行可以由命令模块138自动地不授权(例如,与特定的命令相关联的数据可以被修改以指示特定的命令被分类为未被授权的)。额外地或者可替换地,响应于从接入设备170接收到的、指示不授权特定的命令的第二指示,命令模块138可以禁止特定的命令的运行。在一些实施方式中,命令模块138可以在特定的命令的运行之后不授权特定的命令。在其他实施方式中,命令模块138可以在向命令队列134提供特定的命令之后,不授权特定的命令。在这样的实施方式中,一旦特定的命令被包括在命令队列134中,特定的命令可以独立于比特的数组136来运行。
在一些实施方式中,数据存储设备102可以包括(ECC)引擎(未示出)。ECC引擎可以被配置为接收诸如数据160的数据,并且基于该数据来生成一个或多个ECC码字(例如,包括数据部分和奇偶部分)。例如,ECC引擎可以接收数据160并且生成码字。为了示出,ECC引擎可以包括编码器,该编码器被配置为使用ECC编码技术来编码数据。作为例示性的、非限制性的示例,ECC引擎可以包括里德-所罗门(Reed-Solomon)编码器、博斯-乔赫里-黑姆(Bose-Chaudhuri-Hocquenghem)编码器、低密度奇偶校验(low-density parity check,LDPC)编码器、涡轮(turbo)编码器、被配置为根据一个或多个其他ECC技术来编码数据的编码器、或它们的组合。
ECC引擎可以包括解码器,该解码器被配置为解码从存储器104读取的数据,以检测和纠正数据中可能存在的比特错误。例如,ECC引擎可以纠正多达由ECC引擎所使用的ECC技术的错误纠正能力的若干比特错误。在一些实施方式中,ECC引擎可以被配置为,确定和/或跟踪与由ECC引擎所解码的数据相对应的失效比特计数(failed bit count,FBC)、误比特率、或两者。
在一些实施方式中,命令队列134、模式指示器142、和/或第一授权方案152可以被存储在存储器104处。在其他实施方式中,控制器130可以包括或可以被耦合到特定的存储器(例如,存储器150),诸如被配置为存储命令队列134、模式指示器142、和/或第一授权方案152的随机存取存储器(random access memory,RAM)。例如,存储器150的部分可以被配置为,被用作命令队列134。可替换地、或此外,控制器130可以包括或可以被耦合到其他存储器(未示出),诸如非易失性存储器、RAM、或只读存储器(read only memory,ROM)。其他存储器可以是单一存储器组件、多个不同的存储器组件、和/或可以包括多个不同类型(例如,易失性存储器和/或非易失性存储器)的存储器组件。在一些实施方式中,其他存储器可以被包括在接入设备170中。
虽然数据存储设备102的一个或多个组件已经针对控制器130被描述,但是在其他实施方式中,某些组件可以被包括在存储器设备103(例如,存储器104)中。例如,寄存器133、命令模块138、和/或存储器150中的一个或多个可以被包括在存储器设备103中。可替换地或此外,参考控制器130如上描述的一个或多个功能可以在存储器设备103处执行或通过存储器设备103执行。例如,寄存器133、命令模块138、和/或存储器150中的一个或多个功能可以通过包括在存储器设备103中的组件和/或电路来执行。可替换地或此外,数据存储设备102的一个或多个组件可以被包括在接入设备170中。可替换地或此外,参考控制器130如上描述的一个或多个功能可以在接入设备170处被执行或由接入设备170被执行。
通过配置命令模块138在保持在第一模式下的同时授权特定的命令(例如,未授权的命令)的运行,命令模块138可以在处于第一模式的同时接收和运行特定的命令。例如,特定的命令可以被运行而不清空命令队列134。
参考图2,描绘了数据存储设备的操作的阶段的特定的例示性示例。例如,数据存储设备可以包括或对应于图1的数据存储设备102。图2中描绘的操作的每个阶段示出了在一个或多个功能/操作已经被执行之后,命令队列134、模式指示器142、和比特的数组136的相应的状态。描绘了数据存储设备的操作的第一阶段,并且通常将其指定为200。如在操作的第一阶段200处所描绘的,模式指示器142已经被设置为第一命令队列模式202(例如,当命令队列134为空时的命令队列模式),并且比特的数组136已经被设置为对应于第一命令队列模式202的第一授权比特序列。
描绘了数据存储设备的操作的第二阶段,并且通常将其指定为210。如在操作的第二阶段210处所描绘的,响应于确定第二命令(CMD2)212被授权以用于运行,第二命令(CMD2)212已经被接收到并且被添加到命令队列134。例如,如操作的第一阶段200中所描绘的,根据比特的数组136,第二命令(CMD2)212可能已经被确定将要被授权以用于运行。响应于第二命令(CMD2)212被添加到命令队列134,模式指示器142可以被更新到第二命令队列模式214(例如,当命令队列134包括一个或多个命令时的命令队列模式)。比特的数组136可以被设置为对应于第二命令队列模式214的第二授权比特序列。第二授权比特序列可以不同于第一授权比特序列。例如,第四命令(CMD4)可以根据第一授权比特序列被授权以用于运行,并且可以根据第二授权比特序列不被授权以用于运行。
描绘了数据存储设备的操作的第三阶段,并且通常将其指定为220。如在操作的第三阶段220处所描绘的,响应于确定第三命令(CMD3)224被授权以用于运行,第三命令(CMD3)224已经被接收到并且被添加到命令队列134。例如,如操作的第二阶段210中所描绘的,根据比特的数组136,第三命令(CMD3)224可能已经被确定要被授权以用于运行。第三命令(CMD3)224可能已经包括授权第四命令(CMD4)以用于运行的指示。响应于该指示,与第四命令(CMD4)相对应的(如在操作的第二阶段210中所描绘的)比特的数组136的比特值可能已经从0值被修改为1值。因此,当模式指示器142是第二命令队列模式214的同时(例如,当命令队列134包括至少一个命令的同时),如在操作的第三阶段220处所描绘的比特的数组136将第四命令(CMD4)分类为授权以用于运行。
描绘了数据存储设备的操作的第四阶段,并且通常将其指定为230。如在操作的第四阶段230所描绘的,第二命令(CMD2)212已经被运行、并且响应于确定第四命令(CMD4)236被授权以用于运行,第四命令(CMD4)236已经被接收到并且被添加到命令队列134。例如,如操作的第三阶段220中所描绘的,根据比特的数组136,第四命令(CMD4)236可能已经被确定要被授权以用于运行。
描绘了数据存储设备的操作的第五阶段,并且通常将其指定为240。如在操作的第五阶段240处所描绘的,响应于确定第一命令(CMD1)242被授权以用于运行,第一命令(CMD1)242已经被接收并且已经被添加到命令队列134。例如,如操作的第四阶段230中所描绘的,根据比特的数组136,第一命令(CMD1)242已经被确定要被授权以用于运行。额外地,已经运行了第三命令(CMD3)224和第四命令(CMD4)236中的每一个。在第四命令(CMD4)的运行之后,与第四命令(CMD4)(如操作的第四阶段230中所描绘的)相对应的比特的数组136的比特值可能已经从1值被修改为0值。因此,当模式指示器142是第二命令队列模式214的同时(例如,当命令队列134包括至少一个命令的同时),如在操作的第五阶段240处所描绘的比特的数组136将第四命令(CMD4)分类为未授权以用于运行。例如,如在操作的第五阶段240处所描绘的比特的数组136可以对应于第二授权比特序列。
描绘了数据存储设备的操作的第六阶段,并且通常将其指定为250。如在操作的第六阶段250处所描绘的,第一命令(CMD1)424已经被运行。在第一命令(CMD1)的运行之后,命令队列134为空。响应于为空的命令队列134,模式指示器142可以被设置为第一命令队列模式202,并且比特的数组136可以被设置为第一授权比特序列。
描绘了数据存储设备的操作的第七阶段,并且通常将其指定为260。如在操作的第七阶段260处所描绘的,模式改变命令已经被接收到,并且模式指示器142已经从第一命令队列模式202改变为非命令队列模式254,诸如传递模式。响应于作为非命令队列模式254的模式指示器142,比特的数组136已经被设置为对应于非命令队列模式254的第三授权比特序列。第三授权比特序列可以不同于第一授权比特序列、第二授权比特序列、或两者。
因此,参考图2所描述的操作的不同阶段的示例示出了在命令队列模式(诸如第一命令队列模式202或第二命令队列模式214)期间,比特的数组136如何可以被修改为临时地授权要运行的特定的命令。例如,特定的命令可以被临时地授权而不必冲洗命令队列134并且不必运行命令队列134中的所有未决命令。
参考图3,描绘了授权未授权的命令的运行的方法的特定例示性示例,并且通常将其指定为300。如例示性、非限制性示例,方法300可以在诸如控制器130、和/或图1的接入设备170、或它们的组合的数据存储设备102处被执行。
该方法300包括,在302处,当数据存储设备处于第一模式的同时,经由第一命令接收指示来授权第二命令的运行,该第二命令被控制器可用的数据分类为未授权的命令。例如,指示可以包括或对应于经由命令162在控制器130处被接收的图1的指示164。为了识别指示已经被接收,接收到的命令的比特可以被解析以确定接收到的命令中的任何一个是否包括该指示。该指示可以包括命令索引和使能比特。命令索引与命令相关联。为了示出,命令索引可以包括命令的标识符,诸如对应于命令的操作码的比特值。使能比特可以具有指示将命令分类为授权还是未授权的值。第一模式可以包括命令队列模式,诸如(eMMC)协议的命令队列模式。
在一些实施方式中,指示可以由数据存储设备(诸如图1的数据存储设备102)接收。例如,指示可以经由接口(诸如数据存储设备的eMMC接口),在数据存储设备的控制器(诸如图1的控制器130)处被接收。控制器可以被配置为,当指示被接收到时,根据第一模式来操作。当处于第一模式的同时,控制器可以被配置为运行一个或多个授权命令的第一命令,以及被配置为丢弃(或不运行)一个或多个未授权命令的第二命令。
方法300还包括,在304处,响应于指示,当控制器处于第一模式的同时,修改数据来授权第二命令的运行。例如,控制器可访问的数据可以包括图1和图2的比特的数组136。在这个示例中,修改数据以授权第二命令的运行可以包括改变比特的数组136的一个或多个比特的值。
在一些实施方式中,命令可以被接收到并且第二命令可以包括指示。如果指示被包括在第二命令中,第二命令可以在修改数据之后运行以将第二命令分类为授权。在其他实施方式中,包括指示的第二命令可以被接收。例如,指示可以被包括在第二命令的保留比特中。
在一些实施方式中,在修改数据以将第二命令分类为授权的之后,方法300可以包括接收第二命令以及运行第二命令。为了示出,当数据存储设备(例如,控制器)被配置为处于第一模式的同时,数据存储设备可以接收第二命令。第二命令的命令索引值可以被识别,并且基于命令索引值,比特的数组的比特可以被识别。比特的数组的每个比特对应于不同的命令索引值。例如,比特的数组可以包括或对应于比特的数组136。比特的数组的所识别的比特可以对应于命令索引值(例如,命令),并且比特的值可以指示第二命令的运行是授权的(允许的)还是未授权的(禁止的)。响应于基于比特的值确定第二命令的运行是授权的,第二命令可以被提供给命令队列。
在运行第二命令之后(或第二命令被提供给命令队列之后),当处于第一模式的同时,命令模块可以被配置为拒绝(例如,丢弃)第二命令。例如,在运行第二命令之后(或第二命令被提供给命令队列之后),控制模块可以自动地修改数据以将第二命令分类为在第一模式下未授权以用于运行。作为另一示例,在运行第二命令之后(或第二命令被提供给命令队列之后),可以接收(例如,经由第三命令)第二命令的第二指示,并且基于第二指示,命令模块可以修改数据以将第二命令分类为在第一模式下未授权以用于运行。
通过使能命令模块以在保持处于第一模式的同时授权第二命令的运行,可以在命令模块在处于第一模式的同时接收和运行第二命令而不清空命令队列134。
参考图4,描绘了发送未授权的命令的运行被授权的指示的方法的特定例示性示例,并且通常其被指示为400。如例示性、非限制性示例,方法400可以在诸如图1的控制器130、和/或接入设备170、或它们的组合的数据存储设备102处执行。
方法400包括,在402处,确定设备被配置为处于第一模式。方法400还包括,在404处,当设备处于第一模式的同时,向设备发送在设备处于第一模式的同时授权与第一模式相关联的未授权的命令的运行的指示。例如,指示可以包括或对应于图1的指示164。指示可以经由接口被发送,诸如被配置为向设备发送指示的第三接口172。如例示性的、非限制性的示例,接口可以包括eMMC接口。
在一些实施方式中,方法400可以包括向设备发送未授权的命令。指示可以被包括在未授权的命令中。可替换地,指示可以被包括在其他命令中,该其他命令在未授权命令被发送到设备之前被发送到设备。该其他命令可以是授权的命令或其他未授权的命令。
在一些实施方式中,可以生成包括指示的命令(例如,未授权的命令或其他命令)。例如,诸如处理器174的处理器,可以被配置为生成被包括为命令的一部分的指示。例如,指示可以被包括在命令的保留比特的集合中。除了指示授权以运行未授权的命令之外,该指示还可以指示,当设备处于第一模式的同时授权与第一模式相关联的第二未授权命令的运行。为了示出,指示可以包括与未授权命令相关联(例如,识别未授权命令)的第一命令索引、和与第二未授权命令相关联(例如,识别第二未授权命令)的第二命令索引。
通过生成该指示,接入设备可以在处于第一模式期间,指示设备以临时性地授权未授权命令的运行。例如,一旦授权,命令可以在设备处于第一模式的同时被运行,而不必冲洗设备的命令队列并且不必运行命令队列中的所有未决命令。因此,通过向设备发送指示,在未授权命令的运行之前,接入设备可以不必等待命令队列被冲洗或等待命令队列中的所有未决命令被运行。
图3的方法300和/或图4的方法400可以通过以下各项被初始化或被控制:专用集成电路(application-specific integrated circuit,ASIC)、诸如中央处理单元(centralprocessing unit,CPU)的处理单元、控制器、其他硬件设备、固件设备、场可编程门阵列(field-programmable gate array,FPGA)设备、或它们的任何组合。作为示例,图3的方法300和/或图4的方法400能够通过一个或多个处理器被初始化或被控制,诸如包括在或耦合到图1的数据存储设备102或接入设备170的存储器的一个或多个处理器。被配置为执行图3的方法300和/或图4的方法400的控制器可能能够授权未授权命令的运行。作为示例,图3至图4的方法中的一个或多个可以由图1的控制器130单独地或组合地执行。为了示出,图3至图4的方法中的一个的一部分可以与图3至图4的方法中的一个的第二部分组合。额外地,参考图3至图4所描述的一个或多个操作可以是可选的、可以并行地被执行至少一部分、和/或可以以与示出或描述的不同的顺序被执行。
虽然诸如图1的控制器130、或接入设备170的数据存储设备102的各种组件在这里被描绘为块组件,并且以通用术语被描述,但是这样的组件可以包括诸如硬件控制器的一个或多个物理组件、一个或多个微处理器、状态机、逻辑电路、一个或多个其他结构、其他电路、或被配置为使得各种组件能够执行这里所描述的操作的它们的组合。
本文所描述的组件可以使用以下各项来可操作地耦合到另一组件:一个或多个节点、一个或多个总线(例如,数据总线和/或控制总线)、一个或多个其他结构、或它们的组合。各种组件的一个或多个方面可以使用微处理器或微控制器来实施,该微处理器或微控制器被编程以执行这里所描述的操作,诸如图3的方法300和/或图4的方法400的一个或多个操作。
可替换地或此外,诸如图1的控制器130或接入设备170的数据存储设备102的一个或多个方面可以使用微处理器或微控制器来实施,所述微处理器或微控制器被编程(例如,通过运行指令)以执行这里所描述的方法,如在这里进一步描述的图3的方法300的一个或多个操作和/或图4的方法400的一个或多个操作。作为例示性的、非限制性的示例,数据存储设备102包括运行从存储器104检索的指令(例如,固件)的处理器。可替换地或此外,由处理器运行的指令可以从不是存储器104的一部分的分开的存储器位置检索,诸如在只读存储器(read-only memory,ROM)处。
在一些实施方式中,图1的控制器130、存储器设备103、和/或接入设备170中的每一个可以包括运行存储在存储器处的指令的处理器,存储器诸如图1的数据存储设备102或接入设备170的非易失性存储器。可替换地或额外地,由处理器运行的可运行的指令可以被存储在不是非易失性存储器的一部分的分开的存储器位置处,诸如图1的数据存储设备102或接入设备170的只读存储器(ROM)处。
存储器104可以包括电阻式随机访问存储器(resistive random access memory,ReRAM)、三维(three-dimensional,3D)存储器、闪存存储器(例如NAND存储器、NOR存储器、单层单元(single-level cell,SLC)闪存存储器、多层单元(multi-level cell,MLC)闪存存储器、分位线NOR(divided bit-line NOR,DINOR)存储器、AND存储器、高电容耦合比率(high capacitive coupling ratio,HiCR)设备、非对称非接触式晶体管(asymmetricalcontactless transistor,ACT)设备、或其他闪存存储器)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)、电可擦除可编程只读存储器(electrically-erasable programmable read-only memory,EEPROM)、只读存储器(ROM)、一次性可编程存储器(one-time programmable,OTP)、或它们的组合。可替换地或此外,存储器104可以包括其他类型的存储器。存储器104可以包括半导体存储器设备。
半导体存储器设备包括诸如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)设备的易失性存储器、诸如磁阻随机存取存储器(“MRAM”)、电阻型随机存取存储器(“ReRAM”)、电可擦除可编程只读存储器(“EEPROM”)、快闪存储器(其也能够被认为是EEPROM的子集)、铁电随机存取存储器(“FRAM”)、以及能够存储信息的其它半导体元件的非易失性存储器。每个类型的存储器设备可以具有不同的配置。例如,快闪存储器设备可以以NAND或NOR配置被配置。
存储器设备能够根据无源和/或有源元件、以任何组合形成。通过非限制性示例的方式,无源半导体存储器元件包括ReRAM设备元件,其在某些实施方式中包括诸如反熔丝(anti-fuse)、相变材料等的电阻型开关(switching)存储器元件,以及可选地包括诸如二极管的转向(steering)元件。进一步通过非限制性示例的方式,有源半导体存储器元件包括EEPROM和快闪存储器设备元件,其在某些实施方式中包括包含诸如浮置栅极、导电纳米颗粒、或电荷存储器介电材料的电荷存储器区域的元件。
多个存储器元件可以被配置从而它们被串联或从而每个元件可单独地访问。通过非限制性示例的方式,NAND配置(NAND存储器)中的快闪存储器设备典型地包含串联的存储器元件。NAND存储器阵列可以被配置从而阵列由多个存储器的串所组成,在其中串由多个存储器元件所组成,所述多个存储器元件共享单一位线并且作为组被访问。可替换地,存储器元件可以被配置从而每个元件可以单独地被访问,例如,NOR存储器阵列。NAND和NOR存储器配置是示范性的,并且存储器元件可以被另外配置。
位于基底之内和/或之上的半导体存储器元件可以以二维或三维被排列,诸如二维存储器结构或三维存储器结构。在二维存储器结构中,半导体存储器元件以单一平面或单一存储器设备水平被排列。典型地,在二维存储器结构中,存储器元件以平面(例如,以x-z方向平面)被排列,其基本上平行于支持存储器元件的基底的主平面扩展。基底可以是在其上或在其中形成存储器元件的层的晶圆、或它可以是在存储器元件形成之后附接到存储器元件的载体基底。作为非限制性示例,基底可以包括诸如硅的半导体。
存储器元件可以在顺序的阵列中以单一存储器设备水平被排列,诸如以多个行和/或列。然而,存储器元件可以以非规则或非正交配置被排列。每个存储器元件可以具有两个或更多个电极或接触线,诸如位线或字线。
三维存储器阵列被排列从而存储器元件占用多个平面或多个存储器设备水平,以便以三维形成结构(即,在x、y、和z方向上,其中y方向基本上垂直于基底的主表面,并且x和z方向基本上平行于基底的主表面)。作为非限制性示例,三维存储器结构可以垂直地排列为多个二维存储器设备水平的堆叠。作为另一非限制性示例,三维存储器阵列可以被排列为多个垂直列(例如,基本上垂直于基底的主表面扩展的列,即,在y方向上),每个列具有在每个列中的多个存储器元件。可以以二维配置排列列(例如,x-z平面),导致随着元件垂直地堆叠(stacked)在多个存储器平面上,三维排列存储器元件。三维的存储器元件的其他配置也能够构成三维存储器阵列。
通过非限制性示例的方式,在三维NAND存储器阵列中,存储器元件可以被耦合到一起以形成单一横向(例如,x-z)存储器设备水平之内的NAND串。可替换地,存储器元件可以被耦合到一起以形成横跨多个横向存储器设备水平的垂直NAND串。能够设想其他三维配置,其中一些NAND串包含单一存储器水平中的存储器元件而其他串包含跨越多个存储器水平的存储器元件。三维存储器阵列也可以以NOR配置和以ReRAM配置被设计。
典型地,在单片三维存储器阵列中,一个或多个存储器设备水平在单一基底上形成。可选地,单片三维存储器阵列也可以具有至少部分在单一基底之内的一个或多个存储器层。作为非限制性示例,基底可以包括诸如硅的半导体材料。在单片三维阵列中,构成阵列的每个存储器设备水平的层典型地形成在阵列的底层存储器设备水平的层上。然而,单片三维存储器阵列的相邻存储器设备水平的层可以在存储器设备水平之间共享或具有存储器设备水平之间的插入其间的层。
可替换地,二维阵列可以分开地形成并且然后一起封装以形成具有多个存储器的层的非单片存储器设备。例如,非单片的堆叠的存储器能够通过在分开的基底上形成存储器水平然后将存储器水平彼此堆叠来构成。在堆叠之前,基底可以减薄或从存储器设备水平移除,但是随着存储器设备水平最初形成在分开的基底上,由此产生的(resulting)存储器阵列不是单片单位存储器阵列。另外,多个二维存储器阵列或三维存储器阵列(单片的或非单片的)可以在分开的芯片上形成,然后被一起封装以形成堆叠式芯片存储器设备。
相关联的电路被典型地用于存储器元件的操作、以及被用于与存储器元件通信。作为非限制性示例,存储器设备可以具有用于控制和驱动存储器元件以实现诸如编程和读取的功能的电路。相关联的电路可以与存储器元件在相同的基底上和/或在分开的基底上。例如,用于存储器读取-写入操作的控制器可以位于分开的控制器芯片上和/或与存储器元件在相同的基底上。
本领域技术人员将认识到,本公开不限于所描述的二维和三维例示性结构,而是覆盖如这里描述的和如本领域技术人员所理解的本公开的范围之内的所有相关的存储器结构。这里所描述的示例的例示不意图提供本公开的各种方面的通用理解。其他实施方式可以被利用以及从本公开派生,可以做出这样的结构的和逻辑的替代和改变而不脱离本公开的范围。本公开意图覆盖各种实施方式的任何以及所有随后的适配或变化。本领域技术人员将认识到,这样的修改是在本公开的范围之内的。
以上公开的主题将被认为是例示性的而不是限制性的,并且所附权利要求意图覆盖落入本公开的范围内的所有这样的修改、增强、和其它实施方式。因此,本公开的范围被对所附权利要求及其等同物的最广泛可允许解释确定到法律所允许的最大程度,并且不应该被前述详细描述所约束或限制。

Claims (24)

1.一种命令授权的设备,包括:
存储器;以及耦合到所述存储器的控制器,其中,当所述控制器被配置为处于第一模式以实施通过将被分类为授权的命令添加到命令队列、运行在命令队列中被分类为授权的命令以及丢弃被分类为未授权的命令来将命令分类为授权或未授权的第一授权方案的同时,所述控制器被配置为:
经由第一命令,接收授权第二命令的运行的指示,所述第二命令由所述控制器可用的数据根据所述第一授权方案分类为未授权的命令,所述指示包括指示所述第二命令的授权的比特;
响应于所述指示,根据所述比特修改所述数据以当所述控制器处于所述第一模式的同时临时授权所述第二命令的运行;
将所述第二命令添加到所述命令队列;
运行所述第二命令;以及
响应于所述第二命令的运行,修改所述数据以当所述控制器处于第一模式的同时将第二命令分类为未授权运行。
2.如权利要求1所述的设备,其中,所述第一模式包括命令队列模式。
3.如权利要求1所述的设备,其中,所述指示包括命令索引和使能比特,其中所述命令索引与所述第二命令相关联,并且其中所述使能比特指示授权所述第二命令的运行。
4.如权利要求1所述的设备,还包括寄存器的集合,所述寄存器的集合包括比特的数组,其中,对于多个命令中的每个命令,所述比特的数组包括所述数据的相应比特,并且其中所述多个命令中的每个命令基于相应比特的比特值被分类为授权的或未授权的。
5.如权利要求4所述的设备,其中,所述比特的数组的特定比特对应于所述第二命令,并且其中所述控制器被配置为,将所述特定比特的值从第一值改变为第二值以修改所述数据来授权所述第二命令的运行。
6.如权利要求5所述的设备,其中,当处于所述第一模式的同时,所述控制器被配置为,将所述特定比特的值从所述第二值改变为所述第一值,以禁止所述第二命令的运行。
7.如权利要求1所述的设备,其中,所述存储器包括非易失性存储器,所述非易失性存储器包括在存储元件的阵列的一个或多个物理水平中单片地形成的三维存储器配置,所述存储元件的阵列具有布置在硅基底之上的有源区域,并且所述非易失性存储器还包括与所述存储元件的操作相关联的电路。
8.一种命令授权的方法,包括:
在包括存储器和控制器的数据存储设备中,执行:
当所述控制器处于第一模式的同时,实施第一授权方案,所述第一授权方案通过将被分类为授权的命令添加到命令队列、运行在命令队列中被分类为授权的命令以及丢弃被分类为未授权的命令来将命令分类为授权或未授权;
接收包括授权第二命令的运行的指示的第一命令,其中所述第二命令由所述控制器可用的数据根据所述第一授权方案分类为未授权的命令,所述指示包括指示所述第二命令的授权的比特;
响应于所述指示,根据所述比特修改所述数据以当所述控制器处于所述第一模式的同时临时授权所述第二命令的运行;
将所述第二命令添加到所述命令队列;
运行所述第二命令;以及
响应于所述第二命令的运行,修改所述数据以当所述控制器处于第一模式的同时将第二命令分类为未授权运行。
9.如权利要求8所述的方法,还包括解析接收到的命令的比特以确定所述接收到的命令中的任何一个是否包括所述指示。
10.如权利要求8所述的方法,其中所述指示被包括在所述第一命令的保留比特中。
11.如权利要求8所述的方法,其中所述第一命令由所述数据分类为在所述第一模式下的授权的命令。
12.如权利要求8所述的方法,还包括,在修改所述数据之后:
接收所述第二命令;以及
当所述控制器处于所述第一模式的同时,运行所述第二命令。
13.如权利要求8所述的方法,其中,在所述第二命令的运行之后,所述数据被自动地修改以当所述控制器处于第一模式的同时将所述第二命令分类为未授权运行。
14.如权利要求8所述的方法,其中,响应于第三命令的接收,所述数据被修改以当所述控制器处于第一模式的同时将所述第二命令分类为未授权运行。
15.如权利要求8所述的方法,还包括,当所述控制器处于所述第一模式的同时:
接收所述第二命令;
识别所述第二命令的命令索引值;
基于所述命令索引值识别比特的数组中的比特,其中所述比特的值指示所述第二命令的运行是授权的还是未授权的;以及
响应于基于所述比特的值确定所述第二命令的运行是授权的,向命令队列提供所述第二命令。
16.如权利要求15所述的方法,其中所述比特的数组中的每个比特对应于不同的命令索引值。
17.一种接入设备,包括:
存储器,被配置为存储指令;以及
耦合到所述存储器的处理器,所述处理器被配置为,运行所述指令以使得所述处理器:
确定设备被配置为处于第一模式以实施第一授权方案,所述第一授权方案通过将被分类为授权的命令添加到命令队列、运行在命令队列中被分类为授权的命令以及丢弃被分类为未授权的命令来将命令分类为授权或未授权;
当所述设备处于所述第一模式的同时,向所述设备发送当所述设备处于所述第一模式的同时、由控制器可用的数据根据所述第一授权方案分类为未授权的未授权的命令的运行被授权的指示,所述指示包括指示所述未授权的命令的授权的比特以使得所述设备:
响应于所述指示,根据所述比特修改所述数据以当所述设备处于所述第一模式的同时临时授权所述未授权的命令的运行;
将所述未授权的命令添加到所述命令队列;
运行所述未授权的命令;以及
响应于所述未授权的命令的运行,修改所述数据以当所述设备处于第一模式的同时将所述未授权的命令分类为未授权运行。
18.如权利要求17所述的接入设备,还包括向所述设备发送所述指示的接口。
19.如权利要求17所述的接入设备,其中所述处理器被配置为生成所述指示。
20.一种命令授权的方法,包括:
在被耦合到数据存储设备的接入设备中,执行:
确定所述数据存储设备被配置为处于第一模式以实施第一授权方案,所述第一授权方案通过将被分类为授权的命令添加到命令队列、运行在命令队列中被分类为授权的命令以及丢弃被分类为未授权的命令来将命令分类为授权或未授权;
当所述数据存储设备处于所述第一模式的同时,向所述数据存储设备发送当所述数据存储设备处于所述第一模式的同时、由控制器可用的数据根据所述第一授权方案分类为未授权的未授权的命令的运行被授权的指示,所述指示包括指示所述未授权的命令的授权的比特以使得所述接入设备:
响应于所述指示,根据所述比特修改所述数据以当所述数据存储设备处于所述第一模式的同时临时授权所述未授权的命令的运行;
将所述未授权的命令添加到所述命令队列;
运行所述未授权的命令;以及
响应于所述未授权的命令的运行,修改所述数据以当所述数据存储设备处于第一模式的同时将所述未授权的命令分类为未授权运行。
21.如权利要求20所述的方法,还包括,生成包括所述指示的命令,其中所述命令是与所述第一模式相关联的授权的命令。
22.如权利要求20所述的方法,还包括,生成在命令的保留比特的集合中包括所述指示的命令。
23.如权利要求20所述的方法,其中,所述指示还指示,当所述数据存储设备处于第一模式的同时,与所述第一模式相关联的第二未授权命令的运行被授权,以及其中所述指示包括与未授权的命令相关联的第一命令索引、和与第二未授权的命令相关联的第二命令索引。
24.如权利要求20所述的方法,还包括,向所述数据存储设备发送所述未授权的命令。
CN201680035287.9A 2015-09-14 2016-06-10 命令授权的系统和方法 Active CN107787486B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/853,759 US10318193B2 (en) 2015-09-14 2015-09-14 Systems and methods of command authorization
US14/853,759 2015-09-14
PCT/US2016/037042 WO2017048338A1 (en) 2015-09-14 2016-06-10 Systems and methods of command authorization

Publications (2)

Publication Number Publication Date
CN107787486A CN107787486A (zh) 2018-03-09
CN107787486B true CN107787486B (zh) 2021-01-05

Family

ID=56236116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680035287.9A Active CN107787486B (zh) 2015-09-14 2016-06-10 命令授权的系统和方法

Country Status (4)

Country Link
US (1) US10318193B2 (zh)
CN (1) CN107787486B (zh)
DE (1) DE112016004148T5 (zh)
WO (1) WO2017048338A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547480B (zh) * 2015-09-17 2019-04-12 慧荣科技股份有限公司 数据储存装置及其数据读取方法
US10877673B2 (en) 2017-12-15 2020-12-29 Microchip Technology Incorporated Transparently attached flash memory security
KR102426107B1 (ko) * 2017-12-20 2022-07-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10514865B2 (en) * 2018-04-24 2019-12-24 EMC IP Holding Company LLC Managing concurrent I/O operations
US10732897B2 (en) 2018-07-03 2020-08-04 Western Digital Technologies, Inc. Quality of service based arbitrations optimized for enterprise solid state drives
US11392320B2 (en) * 2018-07-03 2022-07-19 Western Digital Technologies, Inc. Quality of service based arbitrations optimized for enterprise solid state drives
US10969973B2 (en) * 2018-09-20 2021-04-06 Microsoft Technology Licensing, Llc Software filtered memory devices in computing systems
KR20200076244A (ko) * 2018-12-19 2020-06-29 삼성전자주식회사 데이터 스토리지 장치를 포함하는 시스템 및 데이터 스토리지 장치의 디스카드 동작 제어 방법
CN109947664A (zh) * 2019-02-22 2019-06-28 珠海妙存科技有限公司 一种通过系统两端交互提高emmc的垃圾回收执行效果的方法
TWI730454B (zh) * 2019-07-10 2021-06-11 慧榮科技股份有限公司 主機輸出入命令的執行裝置及方法及電腦程式產品
US11556665B2 (en) 2019-12-08 2023-01-17 Western Digital Technologies, Inc. Unlocking a data storage device
US11366933B2 (en) 2019-12-08 2022-06-21 Western Digital Technologies, Inc. Multi-device unlocking of a data storage device
US11606206B2 (en) 2020-01-09 2023-03-14 Western Digital Technologies, Inc. Recovery key for unlocking a data storage device
US11831752B2 (en) 2020-01-09 2023-11-28 Western Digital Technologies, Inc. Initializing a data storage device with a manager device
US11265152B2 (en) * 2020-01-09 2022-03-01 Western Digital Technologies, Inc. Enrolment of pre-authorized device
US11334677B2 (en) 2020-01-09 2022-05-17 Western Digital Technologies, Inc. Multi-role unlocking of a data storage device
US11469885B2 (en) 2020-01-09 2022-10-11 Western Digital Technologies, Inc. Remote grant of access to locked data storage device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1048938A (zh) * 1989-06-09 1991-01-30 国际商业机器公司 计算系统的命令传递
US5509134A (en) * 1993-06-30 1996-04-16 Intel Corporation Method and apparatus for execution of operations in a flash memory array
EP1079340A2 (en) * 1999-08-19 2001-02-28 Nec Corporation Integrated circuit card protected from unauthorized access
CN1368685A (zh) * 2001-02-10 2002-09-11 深圳市中兴集成电路设计有限责任公司 带指令缓冲的总线接口装置及其访问外部存储器的方法
US8255615B1 (en) * 2009-01-08 2012-08-28 Marvell International Ltd. Flexible sequence design architecture for solid state memory controller
CN102841872A (zh) * 2011-05-02 2012-12-26 西部数据技术公司 用于命令处理的高性能路径

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2711831B1 (fr) * 1993-10-26 1997-09-26 Intel Corp Procédé et circuit de mémorisation et de hiérarchisation d'ordres d'effacement dans un dispositif de mémoire.
JP3641230B2 (ja) 2001-10-22 2005-04-20 株式会社東芝 メモリカードを制御するための装置および方法
US8850103B2 (en) * 2009-08-28 2014-09-30 Microsoft Corporation Interruptible NAND flash memory
US8966176B2 (en) 2010-05-27 2015-02-24 Sandisk Il Ltd. Memory management storage to a host device
WO2012109677A2 (en) * 2011-02-11 2012-08-16 Fusion-Io, Inc. Apparatus, system, and method for managing operations for data storage media
US9141296B2 (en) 2012-05-31 2015-09-22 Sandisk Technologies Inc. Method and host device for packing and dispatching read and write commands
KR101919903B1 (ko) 2012-09-14 2018-11-19 삼성전자 주식회사 임베디드 멀티미디어 카드, 이를 제어하는 호스트, 및 이들의 동작 방법
KR101988260B1 (ko) 2012-09-14 2019-06-12 삼성전자주식회사 임베디드 멀티미디어 카드, 및 이의 동작 방법
TWI479359B (zh) 2013-08-01 2015-04-01 Phison Electronics Corp 指令執行方法、記憶體控制器與記憶體儲存裝置
US9519440B2 (en) 2013-09-10 2016-12-13 Qualcomm Incorporated Providing command queuing in embedded memories
US8935465B1 (en) 2014-06-16 2015-01-13 Sandisk Technologies Inc. System and method of communicating command data in a master-slave environment
KR20160118836A (ko) * 2015-04-03 2016-10-12 에스케이하이닉스 주식회사 호스트 커맨드 큐를 포함하는 메모리 컨트롤러 및 그것의 동작 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1048938A (zh) * 1989-06-09 1991-01-30 国际商业机器公司 计算系统的命令传递
US5509134A (en) * 1993-06-30 1996-04-16 Intel Corporation Method and apparatus for execution of operations in a flash memory array
EP1079340A2 (en) * 1999-08-19 2001-02-28 Nec Corporation Integrated circuit card protected from unauthorized access
CN1368685A (zh) * 2001-02-10 2002-09-11 深圳市中兴集成电路设计有限责任公司 带指令缓冲的总线接口装置及其访问外部存储器的方法
US8255615B1 (en) * 2009-01-08 2012-08-28 Marvell International Ltd. Flexible sequence design architecture for solid state memory controller
CN102841872A (zh) * 2011-05-02 2012-12-26 西部数据技术公司 用于命令处理的高性能路径

Also Published As

Publication number Publication date
US20170075824A1 (en) 2017-03-16
CN107787486A (zh) 2018-03-09
US10318193B2 (en) 2019-06-11
DE112016004148T5 (de) 2018-07-19
WO2017048338A1 (en) 2017-03-23

Similar Documents

Publication Publication Date Title
CN107787486B (zh) 命令授权的系统和方法
US10643707B2 (en) Group write operations for a data storage device
US9875053B2 (en) Scheduling scheme(s) for a multi-die storage device
US9720769B2 (en) Storage parameters for a data storage device
US8935465B1 (en) System and method of communicating command data in a master-slave environment
US10250281B2 (en) ECC decoder having adjustable parameters
US10719267B2 (en) Partial reset of memory controller
US9905314B2 (en) Storage module and method for datapath bypass
US10528506B2 (en) Uniform performance monitor for a data storage device and method of operation
EP3084586B1 (en) Systems and methods of compressing data
US20160011790A1 (en) Systems and methods to enable access to a host memory associated with a unified memory architecture (uma)
US20180039541A1 (en) Data relocation
CN110383250B (zh) 配置为使用无线接口执行操作的数据存储设备
US10824335B2 (en) Device and method to store predicted data at a host memory
US9760481B2 (en) Multiport memory
CN107980126B (zh) 用于调度多裸芯储存装置的方法、数据储存装置及设备
US9824760B2 (en) Systems and methods of generating shaped random bits
US9870167B2 (en) Systems and methods of storing data
US10198383B2 (en) Systems and methods of adjusting an interface bus speed
US10013173B2 (en) Data storage device with command buffer management module and method of operating same
US9830108B2 (en) Write redirect
US10502780B2 (en) Selective event filtering
US10579611B2 (en) Selective event logging

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant