CN105408876B - 在存储设备中加标签 - Google Patents

在存储设备中加标签 Download PDF

Info

Publication number
CN105408876B
CN105408876B CN201380060813.3A CN201380060813A CN105408876B CN 105408876 B CN105408876 B CN 105408876B CN 201380060813 A CN201380060813 A CN 201380060813A CN 105408876 B CN105408876 B CN 105408876B
Authority
CN
China
Prior art keywords
block
equipment
label
storage
information
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
CN201380060813.3A
Other languages
English (en)
Other versions
CN105408876A (zh
Inventor
D.布奇霍尔兹
D.莫干
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN105408876A publication Critical patent/CN105408876A/zh
Application granted granted Critical
Publication of CN105408876B publication Critical patent/CN105408876B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

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)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

在实施例中,由实体发布的命令可以由被包含在存储设备中的控制器获取。命令可以由实体发布以访问存储设备中的块。实体可以与可以标识实体的标签相关联。标签可以与块相关联。关于标签与块之间的关联的信息可以存储在存储设备中。

Description

在存储设备中加标签
背景技术
计算设备可以使用一个或多个存储系统以存储信息。信息可以包括例如数据和/或可执行指令。存储系统可以包括主存储装置和辅助存储装置。主存储装置可以是对于可以被包含在计算设备中的处理器而言直接可访问的存储装置。处理器可以经由存储器总线访问主存储装置,所述存储器总线可以包含用于在处理器和主存储装置之间传递信息的规定。辅助存储装置可以是对处理器而言可能不直接可访问的存储装置。在此,可以经由可以是I/O总线的部分的一个或多个输入/输出(I/O)信道在处理器与辅助存储装置之间传递信息。
附图说明
被并入本说明书中并且构成本说明书的部分的附图图示了本文所描述的一个或多个实施例,并且与描述一起解释这些实施例。在附图中:
图1图示了计算设备的示例实施例的框图;
图2图示了存储设备的示例实施例;
图3图示了可以被包含在存储设备中的非易失性存储器设备的示例布局;
图4图示了可以与被包含在存储设备中的一个或多个块相关联的标签的示例实施例;
图5图示了可以与被包含在存储设备中的一个或多个块相关联的标签的示例;
图6图示了可以用于在存储设备中存储信息的示例动作的流程图;
图7图示了可以用于获取在存储设备中所存储的信息的示例动作的流程图;以及
图8图示了可以用于擦除在存储设备中所存储的信息的示例动作的流程图。
具体实施方式
以下详细描述参考附图。在不同附图中的相同参考标号可以标识相同或类似的元件。而且,以下详细描述不限制本发明。
计算设备可以包括计算设备可以使用以存储信息(例如数据)的非易失性存储设备,所述信息(例如数据)在对于计算设备失去电力之后幸存。例如,诸如智能电话、平板或超极本之类的计算设备可以包含处理器和固态盘(SSD)。SSD可以提供非易失性存储以用于存储由计算设备使用的信息。信息可以包括例如,可以由计算设备使用的数据和/或应用。通过在SSD中存储信息,信息可以持续,使得可以在对于计算设备失去电力之后保留信息。处理器可以在对于计算设备恢复电力之后从SSD检索持续的信息。
诸如SSD之类的非易失性存储设备可以在可以被包含在非易失性存储设备中的物理块中存储信息。与计算设备相关联的处理器可以通过使用逻辑块地址(LBA)来访问信息。LBA可以是逻辑块的地址。LBA可以映射到被包含在非易失性存储设备中的物理块地址(PBA)。PBA可以是可以与可以被包含在非易失性存储设备中的物理块相关联的地址。非易失性存储设备中的物理块还可以称为非易失性存储设备中的物理页。
非易失性存储设备可以维护逻辑到物理(L2P)表,非易失性存储设备可以使用所述逻辑到物理表来将LBA转化成PBA。L2P表可以是可以由非易失性存储设备维护的上下文的部分。
例如,假定计算设备包括处理器和非易失性存储设备。处理器可以发布命令以读取非易失性存储设备中的信息。处理器可以通过使用LBA在命令中指定信息的位置。非易失性存储设备可以获取(例如接收、读取)命令并且通过使用L2P表将LBA转化成PBA来标识信息的物理位置,所述L2P表可以由非易失性存储设备管理。假定PBA指向在非易失性存储设备中的非易失性储存中所包含的特定物理块。非易失性存储设备可以读取在物理块中所存储的信息并且向处理器返回信息。
图1图示了计算设备100的示例实施例的框图。参考图1,计算设备100可以包括各种组件,诸如例如,处理逻辑120、主存储装置130、辅助存储装置150、一个或多个输入设备160、一个或多个输出设备170和一个或多个通信接口180。
应当指出,图1图示了计算设备100的示例实施例。计算设备100的其它实施例可以包括比图1中图示的组件更多的组件或更少的组件。组件可以与图1中图示的不同地布置。
例如,在计算设备100的实施例中,辅助存储装置150可以被包含在提供“云”存储的远程站点处。经由诸如例如因特网之类的通信网络,站点对于计算设备100而言可以是可访问的。通信接口180可以用于将计算设备100与通信网络对接。
同样,应当指出的是,由被包含在计算设备100的其它实施例中的各种组件执行的功能可以与本文所描述的不同地分布在组件之中。
计算设备100可以包括可以用于在计算设备100中的组件之间传送信息的输入/输出(I/O)总线110。信息可以包括例如控制信号和/或数据。可以用于实现I/O总线110的I/O总线的示例可以包括串行AT附件(SATA)、外围组件互连(PCI)、PCI快速(PCI-e)、通用串行总线(USB)、小型计算机系统接口(SCSI)、串行附接的SCSI(SAS)或某种其它的I/O总线。
计算设备100可以包括存储器总线190,所述存储器总线190可以使得信息(其可以存储在主存储装置130中)能够在处理逻辑120与主存储装置130之间传递。信息可以包括计算机可执行指令和/或数据,其可以由处理逻辑120执行、操纵和/或以其它方式处理。
处理逻辑120可以包括用于解释、执行和/或以其它方式处理信息的逻辑。信息可以存储在例如主存储装置130和/或辅助存储装置150中。此外,信息可以通过一个或多个输入设备160和/或通信接口180来获取。
处理逻辑120可以包括各种异构硬件。例如,硬件可以包括一个或多个处理器、微处理器、现场可编程门阵列(FPGA)、专用指令集处理器(ASIP)、专用集成电路(ASIC)、复杂可编程逻辑设备(CPLD)、图形处理单元(GPU)和/或可以例如解释、执行、操纵和/或以其它方式处理信息的其它类型的处理逻辑的某种组合。处理逻辑120可以包括单核或多核。可以用于实现处理逻辑120的处理器的示例是从加利福尼亚州圣克拉拉的Intel公司可得到的Intel® Xeon®处理器。
输入设备160可以包括可以用于将信息输入到计算设备100中的一个或多个输入设备。输入设备可以包括例如键盘、计算机鼠标、麦克风、相机、跟踪球、陀螺设备(例如陀螺仪)、迷你鼠标、触摸板、触笔、图形输入板(tablet)、触摸屏、操纵杆(等压或等距)、定点杆、加速计、掌式鼠标、足式鼠标、圆盘、眼球控制的设备、手指式鼠标、光笔、光枪、神经设备、眼睛追踪设备、转向盘、轭(yoke)、微动转盘、空间球、定向垫、跳舞垫、滑鼠(soap mouse)、触觉设备、触知设备、神经设备、多点输入设备、离散定点设备和/或某种其它的输入设备。信息可以包括可以通过使用例如诸如计算机鼠标之类的定点设备被输入到计算设备100中的空间(例如连续、多维)数据。信息还可以包括其它形式的数据,诸如例如可以使用键盘被输入的文本。
输出设备170可以包括可以从计算设备100输出信息的一个或多个输出设备。输出设备可以包括例如阴极射线管(CRT)、等离子体显示设备、发光二极管(LED)显示设备、液晶显示(LCD)设备、真空荧光显示(VFD)设备、表面传导电子发射器显示(SED)设备、场发射显示(FED)设备、触觉设备、触知设备、打印机、扬声器、视频投影仪、体积显示设备、绘图机、触摸屏和/或某种其它的输出设备。输出设备170可以由例如处理逻辑120指引以从计算设备100输出信息。输出信息可以包括在输出设备170上呈现(例如显示、打印)信息。信息可以包括例如文本、图形用户接口(GUI)元素(例如窗口、微件(widget)和/或其它GUI元素)、音频(例如音乐、声音)和/或可以由输出设备170输出的其它信息。
通信接口180可以包括用于将计算设备100与例如一个或多个通信网络对接的逻辑并且使得计算设备100能够与耦合到通信网络的一个或多个实体(例如节点)通信。通信网络可以包括例如因特网、广域网(WAN)、局域网(LAN)、3G和/或4G网络。通信接口180可以包括一个或多个类收发器的机制,其可以使得计算设备100能够与耦合到通信网络的实体通信。通信接口180的示例可以包括内置网络适配器、网络接口卡(NIC)、个人计算机存储器卡国际协会(PCMCIA)网络卡、卡总线网络适配器、无线网络适配器、通用串行总线(USB)网络适配器、调制解调器和/或适合于将计算设备100对接到通信网络的其它设备。
主存储装置130和辅助存储装置150可以包括一个或存储器设备。存储器设备可以支持例如对被包含在存储器设备中的信息的串行或随机访问。支持对被存储在存储器设备中的信息的串行访问的存储器设备可以称为串行存储器设备。支持对被存储在存储器设备中的信息的随机访问的存储器设备可以称为随机存取存储器(RAM)设备。
存储器设备可以是例如易失性或非易失性的。易失性存储器设备可以是当从设备移除电力时可能失去被存储在设备中的信息的存储器设备。非易失性存储器设备可以是当从设备移除电力时可以保留被存储在设备中的信息的存储器设备。存储器设备的示例可以包括动态RAM(DRAM)设备、闪速存储器设备、静态RAM(SRAM)设备、零电容器RAM(ZRAM)设备、双晶体管RAM(TTRAM)设备、只读存储器(ROM)设备、铁电晶体管RAM(FeTRAM)设备、磁阻RAM(MRAM)设备、相变存储器(PCM)设备、PCM和开关(PCMS)设备、基于纳米线的设备、电阻式RAM设备(RRAM)、串行电可擦除可编程ROM(SEEPROM)设备、串行闪速设备和/或其它类型的存储器设备。
主存储装置130可以经由存储器总线190对于处理逻辑120而言可访问。主存储装置130可以包括可以存储信息以用于处理逻辑120的非暂时性有形计算机可读介质。信息可以包括例如可以实现操作系统(OS)132和应用(APP)136的计算机可执行指令和/或数据。计算机可执行指令可以由处理逻辑120执行、解释和/或以其它方式处理。计算机可执行指令和/或数据可以包括可以实现本发明的一个或多个实施例的计算机可执行指令和/或数据。
主存储装置130可以使用可以存储信息以用于处理逻辑120的一个或多个存储器设备实现。存储器设备可以包括易失性和/或非易失性存储器设备。
OS 132可以是可以实现各种常规操作系统功能的常规操作系统。功能可以包括例如(1)调度APP 136的一个或多个部分以运行在处理逻辑120上(例如由其执行),(2)管理主存储装置130,和/或(3)控制对计算设备100中的各种组件(例如输入设备160、输出设备170、通信接口180、辅助存储装置150)和由这些组件接收和/或发射的信息的访问。
可以用于实现OS 132的操作系统的示例可以包括Linux操作系统、MicrosoftWindows操作系统、Symbian操作系统、Mac OS操作系统和Android操作系统。可以使用的Linux操作系统的发行版(distribution)为从北卡罗来纳州罗利的Red Hat公司可得到的Red Hat Linux。可以使用的Microsoft Windows操作系统的版本包括从华盛顿雷德蒙德的Microsoft公司可得到的Microsoft Windows Mobile、Microsoft Windows 8、MicrosoftWindows 7、Microsoft Windows Vista和Microsoft Windows XP操作系统。Symbian操作系统从爱尔兰都柏林的Accenture PLC可得到。Mac OS操作系统从加利福尼亚州库比蒂诺的Apple公司可得到。Android操作系统从加利福尼亚州门洛帕克的Google公司可得到。
OS 132可以包括一个或多个驱动器134。驱动器134可以提供在OS 132和/或APP136和可以与计算设备100中的组件相关联的一个或多个设备之间的接口。这些组件可以包括例如输入设备160、输出设备170、通信接口180和/或辅助存储装置150。
例如,驱动器134可以提供在OS 132和/或APP 136和存储设备200之间的接口。驱动器134可以包含使得OS 132和/或APP 136能够与存储设备200通信的规定。通信在此可以包括例如向存储设备200写入信息、从存储设备200读取信息、获取存储设备200的状态等等。
APP 136可以是可以在OS 132的控制之下在计算设备100上执行的软件应用。APP136和/或OS 132可以包含用于对可以涉及在辅助存储装置150中在存储设备200中写入和/或读取信息的事务进行处理的规定。这些规定可以使用被包含在APP 136和/或OS 132中的数据和/或计算机可执行指令来实现。
辅助存储装置150可以包括存储设备200。存储设备200可以经由I/O总线110对于处理逻辑120而言是可访问的。存储设备200可以存储信息(例如数据、计算机可执行指令)。信息可以由处理逻辑120执行、解释、操纵和/或以其它方式处理。信息可以包括可以实现本发明的一个或多个实施例的计算机可执行指令和/或数据。
存储设备200可以包括用于存储信息的易失性或非易失性存储装置。可以用于实现存储设备200的设备示例可以包括一个或多个磁盘驱动装置、光盘驱动装置、RAM驱动装置、闪速驱动装置、SSD、混合驱动装置和/或其它存储设备。信息可以存储在被包含在存储设备中的一个或多个非暂时性有形计算机可读介质上。可以被包含在存储设备中的非暂时性有形计算机可读介质的示例可以包括磁盘、光盘、易失性存储器设备和/或非易失性存储器设备。
图2图示了存储设备200的示例实施例。参考图2,存储设备200可以包括控制器220和非易失性存储装置240。控制器220可以包括设备处理逻辑222和本地存储装置224。非易失性存储装置240可以包括一个或多个非易失性存储器设备300。
设备处理逻辑222可以包括可以处理被包含在本地存储装置224中的信息的处理逻辑。处理逻辑可以包括一个或多个处理器、微处理器、FPGA、ASIP、ASIC、CPLD和/或可以例如解释、执行、操纵和/或以其它方式处理信息的其它类型的处理逻辑的某个组合。例如,本地存储装置224可以存储可以由设备处理逻辑222执行以在非易失性存储装置240中写入和/或读取信息和/或执行可以与存储设备200相关联的其它功能和/或操作的计算机可执行指令。
本地存储装置224可以包括可以用于存储可以由设备处理逻辑222处理的信息的易失性和/或非易失性存储装置。信息可以包括可以与存储设备200的操作相关联的数据和/或计算机可执行指令。
存储设备200可以支持逻辑块,其可以用于在存储设备200中存储信息。逻辑块可以与可以用于标识逻辑块的LBA相关联。被存储在逻辑块中的信息可以由处理逻辑120(图1)通过使用与逻辑块相关联的LBA来访问(例如读取、写入)。
逻辑块可以与可以被包含在非易失性存储装置240中的物理块相关联。物理块可以与可以用于标识物理块的PBA相关联。物理块可以在非易失性存储装置240中物理上存储与逻辑块相关联的信息。
本地存储装置224可以包括上下文226,其可以包含可以与存储设备200相关联的上下文信息。上下文信息可以包括例如L2P表,所述L2P表可以包含可以由设备处理逻辑222用于将LBA转化成PBA的信息。
例如,假定处理逻辑120发布命令以读取与LBA“0”相关联的存储设备200中的逻辑块中的信息。还假定上下文226中的L2P表包含指示LBA“0”对应于非易失性存储装置240中的物理块“16”的条目。存储设备200可以获取命令并且处理它。处理可以包括访问L2P表中的条目以标识LBA“0”对应于物理块“16”。因此,响应于由处理逻辑120发布的命令,存储设备200可以读取在存储设备200中的物理块“16”处所存储的信息并且将所读取的信息返回到处理逻辑120。
标签可以与可以被包含在诸如存储设备200之类的存储设备中的一个或多个块(例如逻辑块、物理块)相关联。标签可以包括例如标识符(ID)和其它信息(例如访问特权)。如以下将进一步描述的,ID可以用于确定实体(例如用户、应用)是否与一个或多个逻辑块相关联。如以下还将进一步描述的,标签中的其它信息可以用于例如(1)标识实体关于一个或多个逻辑块可以具有的权限(例如访问权限),(2)指定用于被包含在一个或多个逻辑块中的信息的加密技术(方案),(3)使关键词与被包含在一个或多个逻辑块中的信息相关联,(4)指定与被包含在一个或多个逻辑块中的信息相关联的安全级别,和/或(5)描述被包含在一个或多个逻辑块中的信息的内容。
索引228可以例如包含可以使一个或多个标签与存储设备200中的一个或多个块相关联的信息。索引228可以组织为可以包含一个或多个条目的数据结构(例如表),所述一个或多个条目可以用于建立标签与块之间的关联。
例如,假定存储设备200包括第一组逻辑块和第二组逻辑块。另外,假定第一标签与第一组逻辑块相关联并且第二标签与第二组逻辑块相关联。索引228可以组织为具有可以使第一标签与第一组逻辑块相关联的第一条目和可以使第二标签与第二组逻辑块相关联的第二条目的数据结构。
非易失性存储装置240可以提供用于被存储在存储设备200上的信息的存储。存储可以是非易失性的。信息可以例如由处理逻辑120提供。
非易失性存储装置240可以包含可以用于存储信息的一个或多个非易失性存储器设备300a-b。可以用于实现非易失性存储器设备300的设备示例可以包括闪速存储器设备、PCM设备、PCMS设备、NAND存储器设备或其它非易失性存储设备。
非易失性存储器设备300可以在被包含在非易失性存储器设备300中的物理块中存储信息。物理块可以是可以写入在非易失性存储器设备300中的大小最小的单元。物理块可以在大小方面固定(例如2048个字节)。物理块可以组织成擦除块(EB),其中EB可以包括一个或多个物理块。
EB可以是与可以作为群组被擦除的一个或多个物理块的群组相关联的块的类型。例如,假定非易失性存储器设备300包括六十四个物理块,所述六十四个物理块被划分成八个EB,其中每一个EB包括八个不同物理块。擦除EB可以导致与EB相关联的所有八个物理块被擦除。
图3图示了非易失性存储器设备300的示例布局。参考图3,非易失性存储器设备300可以包括管芯(die)320。管芯320可以包含一个或多个EB 330,其中EB 330可以包含一个或多个物理块340。物理块还可以称为物理页。在图3中图示的示例布局中,管芯320包括八个EB(标记为“EB0”到“EB7”)和六十四个物理块(编号“0”到“63”)。另外,EB 330包括八个物理块。因此,例如,EB 330a包括编号为“0”到“7”的八个物理块。同样地,例如,EB 330b包括编号为“56”到“63”的八个物理块。
应当指出的是,图3中图示的布局是非易失性存储器设备300的实施例的示例布局。非易失性存储器设备300的其它实施例可以包括其它布局。例如,非易失性存储器设备300的其它实施例可以包括比图3中图示的内容更多的管芯、EB和/或物理块,或更少的EB和/或物理块。
如以上所指出的,标签可以与被包含在存储设备中的一个或多个块相关联。标签可以包括例如ID和其它信息。ID可以标识与一个或多个块相关联的实体(例如应用、用户)。其它信息可以包括可以描述实体与一个或多个块之间的关系的信息。例如,其它信息可以包括关于实体对一个或多个块所具有的访问权限的信息。其它信息可以包括可以与一个或多个块的内容有关的信息。例如,其它信息可以包括可以与可以存储在一个或多个块中的数据相关联的关键词。
图4图示了可以与存储设备中所包含的一个或多个块相关联的标签400的示例实施例。参考图4,标签400可以包括ID字段420和其它字段430。ID字段420可以用于持有ID,所述ID可以标识可以与一个或多个块相关联的实体(例如应用、用户)。其它字段430可以包括可以描述实体与一个或多个块之间的关系的信息。
图5图示了标签400的示例实施例。参考图5,块520图示了涉及元数据的标签400的示例实施例。元数据可以包括多个条目,其中条目可以包括名称字段和内容字段。名称字段可以包含描述内容字段的内容的信息。内容字段可以包括与条目相关联的内容(例如数据)。在块520中,行522可以包括可以被包含在标签400的ID字段420中的信息。行524到528可以包括可以被包含在标签400的其它字段430中的信息。
例如,假定标签400与存储设备200中的一个或多个块相关联。行522包含被设置成值“所有者”的名称字段和被设置成值“JDOE”的内容字段。在此,名称字段指示内容字段包含与存储设备200中的块相关联的所有者。在该示例中,所有者被标识为“JDOE”。
行524包含被设置成“描述”的名称字段和被设置成“年销售”的内容字段。名称字段可以指示内容字段包含可以存储在存储设备200中的块中的信息的描述。在该示例中,内容字段包含值“年销售”。因此,存储在块中的信息可以有关于例如组织的年销售。
行526包含被设置成“关键词”的名称字段和被设置成“财务,会计,电子表格”的内容字段。在此,名称字段可以指示内容字段包含与存储在存储设备200中的块中的信息有关的关键词。关键词可以例如在搜索块中所包含的信息时使用。
行528包含被设置成“SecLevel”的名称字段和被设置成“受限”的内容字段。在此,名称字段可以指示内容字段包含与存储在存储设备200中的块中的信息相关联的安全级别。内容字段的值(即“受限”)可以指示信息可以例如仅被具有使得它们能够访问该安全级别处的信息的特权的实体(例如用户、应用)访问。
块560图示了包括“用户名”和“权限”信息的标签400的另一示例实施例。在块560中,行562图示了可以在该示例实施例中使用的示例格式。格式包括“用户名”和“权限”信息。“用户名”信息可以被包含在标签400的ID字段420中并且“权限”信息可以被包含在标签的其它字段430中。
“用户名”信息可以包括可以与用户相关联的ID。“权限”信息可以包括可以例如给予用户的特权(例如访问特权)。特权可以包括例如对读取、写入、修改和/或删除被包含在与标签400相关联的一个或多个块中的信息的许可。
行564和566图示了利用在行562处图示的格式的标签400的示例。具体地,在行562处,第一标签400可以指示被指派用户名“系统”的用户可以被准予可以包括对与第一标签400相关联的块的读取和写入访问(分别由“R”和“W”指示)的特权。在行566处,第二标签400可以指示被指派用户名“JDOE”的用户可以被准予可以包括对与第二标签400相关联的块的读取、写入、修改和删除(分别由“R”、“W”、“M”和“D”指示)的特权。
标签400可以存储在可以与标签400相关联的一个或多个块中。标签400可以在处理对于访问一个或多个块的请求时被读取。标签400可以例如用于确定应当允许还是拒绝请求。
例如,假定标签400和信息(例如数据)存储在与存储设备200中的逻辑块相关联的物理块340中。另外,假定APP 136发布对于读取被存储在逻辑块中的信息的请求。控制器220可以接收请求并且处理它。处理可以包括确定APP 136是否具有读取逻辑块的特权。
具体地,控制器220可以从与逻辑块相关联的物理块340读取标签400。控制器220可以将与APP 136相关联的ID同标签400中(例如在ID字段420中)所包含的ID比较。控制器220可以确定与APP 136相关联的ID是否匹配标签400中所包含的ID。
假定ID匹配。控制器220可以基于请求的性质和/或被包含在标签400中的信息而确定是否应当允许请求。假定标签400在它的其它字段430中指示与所述ID相关联的实体可以读取被存储在逻辑块中的信息。控制器220可以基于该确定而确定将允许请求。允许请求可以包括控制器220读取被存储在块中的信息。可以将所读取的信息返回到APP 136。
应当指出的是,块520和560中图示的实施例是标签400的示例实施例并且标签400的其它实施例可以包括比块520和560中图示的更多的信息或更少的信息。例如,标签400的其它实施例可以包括关于可以用于对可以被包含在与标签400相关联的块中的信息加密的加密方法的信息和/或其它信息,诸如用户特定用户是否可以执行块中所包含的信息。
诸如应用之类的实体可以发布命令以访问(例如读取、写入)存储设备中的块。可以例如通过被包含在存储设备中的控制器来获取命令。实体可以与标签相关联并且使标签与块相关联的信息可以存储在存储设备中。信息可以用于使实体与块相关联。
图6图示了可以用于在存储设备中存储数据和标签的示例动作的流程图。参考图6,在块610处,可以发布请求以将数据存储在被包含在存储设备中的块中。请求可以例如是可以由实体发布以将数据写入到可以被包含在存储设备中的块的命令。
在块612处,可以获取请求。例如,请求可以由可以在操作系统的控制之下在计算设备中执行的应用所发布。操作系统可以从应用获取命令并且将命令传递到与存储设备相关联的驱动器。驱动器可以从操作系统获取命令。驱动器可以将命令转发到存储设备,其可以在被包含在存储设备中的控制器处获取命令。
在块614处,可以执行检查以确定实体是否与标签相关联。标签可以包括例如ID和其它信息。ID可以标识实体并且其它信息可以包括与将被存储在块中的数据有关的信息。
例如,应用可以与标签相关联。可以向可以获取标签的存储装置转发标签。存储设备中的控制器可以获取标签并且确定应用与标签相关联。
如果确定实体不与标签相关联,在块616处,默认标签可以与块相关联。默认标签可以是预定义标签,其可以包含例如默认ID和有关默认ID的信息(例如默认访问特权)。如果在块614处确定实体与标签相关联,在块618处与实体相关联的标签可以与块相关联。
使标签与块相关联的信息可以由存储设备维护(例如存储在其中)。例如,继续上述示例,控制器可以通过使用诸如索引228(图2)之类的索引使标签与块相关联。使标签与块相关联可以包括例如在索引中创建使标签和与块相关联的条目。索引可以存储在存储设备中。在另一示例中,使标签与块相关联的信息可以存储在块中。
使标签与块相关联的信息可以包含例如标签信息和可以标识块的地址。地址可以包括例如可以与块相关联的物理块地址或逻辑块地址。
在块620处,在块中存储数据。数据可以通过将数据写入到块而存储在块中。
例如,参考图1-4和6,假定APP 136生成将数据写入到存储设备200中的逻辑块的请求。另外假定逻辑块对应于物理块340并且APP 136与标签400相关联。APP 136可以向OS132发布请求。OS 132可以接收请求并且将请求传递到驱动器134。驱动器134可以接收请求并且处理它。处理可以包括例如向存储设备200传递标签400和数据并且指引存储设备200将数据写入在存储设备200中由逻辑块指定的位置处。
存储设备200可以从驱动器134接收请求、标签400和数据。设备处理逻辑222可以标识对应于逻辑块的非易失性存储装置240中的物理块。假定设备处理逻辑222标识到物理块340对应于逻辑块。设备处理逻辑222可以将数据写入到物理块340。设备处理逻辑222可以更新索引228以使标签400与物理块340和/或所述逻辑块相关联。
要指出,各种处理可以基于被包含在标签中的信息来执行。例如,在上述示例中,标签400可以包括要以经加密的形式将数据写入到存储设备200的指示。在此,标签400可以指定可以用于加密数据的加密技术。设备控制器220可以根据所述技术来加密数据并且将经加密的数据写入到物理块340。
在另一示例中,被包含在标签中的信息可以用于建立与被写入的逻辑块相关联的访问权限。例如,假定在上述示例中逻辑块在被擦除之后第一次被写入。标签可以包含访问权限信息,所述访问权限信息可以标识可以在块被写入之后访问块的一个或多个实体。而且,标签可以包括可以指示可以许可的访问类型(例如读取、写入、删除)的信息。
图7图示了可以用于获取被存储在存储设备中的信息的示例动作的流程图。参考图7,在块710处,实体发布请求以从存储设备中的块读取数据。在块712处,获取请求。在块714处,执行检查以确定标签是否与实体相关联。如果标签不与实体相关联,在块716处,默认标签与实体相关联。
在块718处,执行检查以确定与实体相关联的标签是否匹配与存储设备中的块相关联的标签。如果标签不匹配,在块720处,处置失配。失配可以例如通过在对请求的响应中指示错误状况(例如错误状态、错误代码)来处置。如果在块718处,确定了标签匹配,在块722处,读取和返回存储设备中的块的内容。
例如,参考图1-4和7,假定APP 136发布命令以从存储设备200中的逻辑块读取数据。另外,假定逻辑块对应于物理块340。OS 132可以接收请求并且将请求转发给驱动器134。驱动器134可以从OS 132接收请求并且确定APP 136是否与标签400相关联。
假定驱动器134确定了APP 136与标签400相关联。驱动器134可以向存储设备200传递标签400。此外,驱动器134可以指引存储设备200读取逻辑块的内容。设备处理逻辑222可以接收标签400并且访问索引228以确定标签400是否匹配关于逻辑块的标签信息。
假定设备处理逻辑222确定了标签匹配。设备处理逻辑222可以确定物理块340与逻辑块相关联。设备处理逻辑222可以读取物理块340的内容并且通过总线110向驱动器134返回内容。驱动器134可以经由OS 132向APP 136传递内容。
标签可以用于标识可以在存储设备中擦除的一个或多个块。图8图示了可以用于擦除存储设备中的一个或多个块的示例动作的流程图,其中一个或多个块可以基于与实体相关联的标签来标识。
参考图8,在块810处,实体可以发布请求以擦除存储设备中的一个或多个块。例如,实体可以是诸如APP 136之类的应用,并且块可以被包含在存储设备200中。APP 136可以发布命令以擦除存储设备200中的块。
在块812处,获取请求。例如,APP 136可以向OS 132发布命令。操作系统可以从APP136接收命令并且向驱动器134转发命令。驱动器134可以从OS 132接收命令。
在块814处,执行检查以确定请求是否指示擦除与匹配相关联于实体的标签的标签相关联的存储设备中的块。继续上述示例,在从OS 132接收命令之后,驱动器134可以例如处理请求。处理可以包括确定命令是否指示要擦除的块是与匹配相关联于实体的标签的标签相关联的块。
如果在块814处确定,请求指示擦除与匹配相关联于实体的标签的标签相关联的存储设备中的块,在块816处,擦除与匹配相关联于实体的标签的标签相关联的存储装置中的块。否则,在块818处,可以擦除存储装置中的所有块。在此,“可以擦除存储装置中的所有块”可以包括例如擦除存储设备中的块而不管它们是否与匹配相关联于实体的标签的标签相关联。
例如,参考图1-4和8,假定APP 136与标签400相关联。另外,假定APP 136发布命令以擦除与标签400相关联的存储设备200中的所有逻辑块。OS 132可以从APP 136接收命令并且向驱动器134转发命令。驱动器134可以从OS 132接收命令并且确定命令指示要擦除与标签400相关联的存储设备200中的所有逻辑块。
驱动器134可以向存储设备200传递标签400。此外,驱动器134可以指引存储设备200擦除与标签400相关联的所有块。设备处理逻辑222可以接收标签400并且处理请求。处理可以包括例如(1)搜索索引228以标识与标签400相关联的非易失性存储装置240中的块以及(2)擦除所标识的块。
实施例的前述描述意在提供说明和描述,但不意在是穷举的或将本发明限制于所公开的精确形式。修改和变型鉴于以上教导是可能的或者可以从本发明的实践获取。例如,虽然以上已关于图6、7和8描述了一系列动作,但是在其它实现中可以修改动作的次序。另外,可以并行执行不相关的动作。
而且,如本文所使用的术语“用户”意在被宽泛地解释成包括例如计算设备(例如固定的计算设备、移动计算设备)或计算设备的用户,除非以其它方式陈述。
将显然的是,本文所描述的一个或多个实施例可以以许多不同形式的软件和/或硬件来实现。用于实现本文所描述的实施例的软件代码和/或专用硬件不是本发明的限制。因此,在不参考特定软件代码和/或专用硬件的情况下描述实施例的操作和行为——理解的是,将能够基于本文的描述来设计实现实施例的软件和/或硬件。
另外,可以使用可以由诸如处理逻辑120和/或设备处理逻辑222之类的处理逻辑执行的计算机可执行指令来实现本发明的某些特征。计算机可执行指令可以存储在一个或多个非暂时性有形计算机可读存储介质上。介质可以是易失性的或非易失性的,并且可以包括例如DRAM、SRAM、闪速存储器、可移除盘、非可移除盘等等。
没有任何本文所使用的元件、动作或指令应当被解释为对本发明而言是关键或必需的,除非明确描述为这样。而且,如本文所使用的,冠词“一”意在包括一个或多个项。在仅意在一个项的情况中,使用术语“一个”或类似的语言。另外,短语“基于”意在意指“至少部分地基于”,除非以其它方式明确陈述。
意图在于,本发明不限于以上所公开的特定实施例,而是,本发明将包括落在以下随附权利要求的范围内的任何和所有特定实施例和等同物。

Claims (28)

1.一种用于在存储设备中存储信息的方法,包括:
获取由实体发布的命令以将数据存储在包含在所述存储设备中非易失存储装置的块中,命令由被包含在所述存储设备中的控制器获取,控制器具有本地存储装置,实体与标签相关联,所述标签包括第一字段和第二字段,第一字段包含标识包含在第二字段中的信息内容的信息以及第二字段包含与存储在块中的数据相关的信息;
在本地存储装置中存储使标签与块相关联的信息;以及
在所述块中存储数据。
2.权利要求1的方法,还包括:
从实体获取标签。
3.权利要求1的方法,其中标签是默认标签。
4.权利要求1的方法,其中实体是在计算设备中执行的应用。
5.权利要求4的方法,其中存储设备被包含在计算设备中。
6.权利要求1的方法,其中使标签与块相关联的信息包括标识块的地址。
7.权利要求6的方法,其中地址是与块相关联的物理块地址或逻辑块地址。
8.权利要求1的方法,其中使标签与块相关联的信息被存储在块中。
9.权利要求1的方法,其中使标签与块相关联的信息被存储在由控制器维护的索引中;以及其中索引被存储在本地存储装置中。
10.权利要求1的方法,其中实体是由被包含在计算设备中的处理逻辑执行的应用。
11.权利要求1的方法,其中标签还包括标识符。
12.权利要求1的方法,其中第二字段中的信息标识用于加密数据的加密技术以及其中将数据存储在所述块中还包括:
依照加密技术而加密数据;以及
将经加密的数据写入到块。
13.权利要求11的方法,其中标识符包括与实体相关联的用户名。
14.一种存储设备,包括:
包含用于存储数据的一个或多个块的非易失数据存储装置;以及
处理逻辑,其用于:
获取由实体发布的命令以将数据写入包含在所述存储装置中的块,实体与标签相关联,所述标签包括第一字段和第二字段,第一字段包含标识包含在第二字段中的信息内容的信息以及第二字段包含与存储在块中的数据相关的信息;以及
在存储设备中存储使标签与块相关联的信息。
15.权利要求14的存储设备,其中存储设备被包含在计算设备中并且实体是在计算设备中执行的应用。
16.权利要求14的存储设备,其中使标签与块相关联的信息被存储在块中。
17.权利要求14的存储设备,还包括:
本地存储装置,
其中使标签与块相关联的信息被存储在本地存储装置中。
18.权利要求17的存储设备,其中使标签与块相关联的信息存储在被包含在本地存储装置中的索引中。
19.权利要求14的存储设备,其中包含在第二字段中的信息包括与实体相关联的用户名。
20.权利要求14的存储设备,其中所述标签还包括标识符。
21.一种用于在云存储系统中存储数据的方法,包括:
接收由实体发布的命令以将数据存储在包含在所述云存储系统中非易失存储装置的块中,所述实体与标签相关联,所述标签包括:包含与所述实体相关联的用户名的第一字段以及包含标识用于加密数据的加密技术的第二字段;
在云存储系统中请求存储使标签与所述块相关联的信息;
依照加密技术而请求加密数据;以及
请求存储所述加密的数据在云存储系统中的所述块中。
22.权利要求21的方法,还包括:
从实体获取标签。
23.权利要求21的方法,其中实体是在计算设备中执行的应用并且云存储系统通过网络由所述计算设备可访问。
24.权利要求21的方法,其中所述第二字段还标识所述实体访问所述块的访问权。
25.权利要求21的方法,其中所述第二字段还将关键字和与存储在所述块中的数据相关联。
26.权利要求21的方法,其中所述第二字段还指定与存储在所述块中的数据相关联的安全级别。
27.一种计算机可读介质,在其上存储指令,当该指令被执行时导致计算设备执行根据权利要求1-13或21-26中任一个的方法。
28.一种用于存储数据的装置,包括用于执行根据权利要求1-13或21-26中任一个的方法的部件。
CN201380060813.3A 2012-12-21 2013-06-13 在存储设备中加标签 Active CN105408876B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/724,198 US9513803B2 (en) 2012-12-21 2012-12-21 Tagging in a storage device
US13/724198 2012-12-21
PCT/US2013/045541 WO2014098972A1 (en) 2012-12-21 2013-06-13 Tagging in a storage device

Publications (2)

Publication Number Publication Date
CN105408876A CN105408876A (zh) 2016-03-16
CN105408876B true CN105408876B (zh) 2019-06-14

Family

ID=50976084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380060813.3A Active CN105408876B (zh) 2012-12-21 2013-06-13 在存储设备中加标签

Country Status (3)

Country Link
US (3) US9513803B2 (zh)
CN (1) CN105408876B (zh)
WO (1) WO2014098972A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11700278B2 (en) * 2019-06-30 2023-07-11 Microsoft Technology Licensing, Llc Access management system with a multi-environment policy

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809522A (en) * 1995-12-18 1998-09-15 Advanced Micro Devices, Inc. Microprocessor system with process identification tag entries to reduce cache flushing after a context switch
TW200511028A (en) * 2003-06-21 2005-03-16 Samsung Electronics Co Ltd Portable storage apparatus and method for freely changing data bus width

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6406887B1 (en) * 1992-01-17 2002-06-18 The United States Of America As Represented By The Secretary Of The Department Of Health And Human Services Compositions for diagnosing Rochalimaea henselae and Rochalmaea quintana infection
US6797942B2 (en) * 2001-09-13 2004-09-28 University Of Chicago Apparatus and process for the lateral deflection and separation of flowing particles by a static array of optical tweezers
US6055543A (en) * 1997-11-21 2000-04-25 Verano File wrapper containing cataloging information for content searching across multiple platforms
US6745293B2 (en) * 2000-08-21 2004-06-01 Texas Instruments Incorporated Level 2 smartcache architecture supporting simultaneous multiprocessor accesses
GB0021007D0 (en) * 2000-08-26 2000-10-11 Gibbs Int Tech Ltd Power train
US6564286B2 (en) * 2001-03-07 2003-05-13 Sony Corporation Non-volatile memory system for instant-on
US6650835B2 (en) * 2001-06-14 2003-11-18 Konica Corporation Photographing device, recording medium, program, camera and camera production method
GB2385951A (en) * 2001-09-21 2003-09-03 Sun Microsystems Inc Data encryption and decryption
US7124236B1 (en) 2002-11-26 2006-10-17 Advanced Micro Devices, Inc. Microprocessor including bank-pipelined cache with asynchronous data blocks
US7917751B2 (en) * 2003-05-22 2011-03-29 International Business Machines Corporation Distributed filesystem network security extension
US20050027946A1 (en) * 2003-07-30 2005-02-03 Desai Kiran R. Methods and apparatus for filtering a cache snoop
US20050228952A1 (en) * 2004-04-13 2005-10-13 David Mayhew Cache coherency mechanism
JP2007011580A (ja) * 2005-06-29 2007-01-18 Toshiba Corp 情報処理装置
US20090164738A1 (en) * 2007-12-21 2009-06-25 Microsoft Corporation Process Based Cache-Write Through For Protected Storage In Embedded Devices
US20100023564A1 (en) * 2008-07-25 2010-01-28 Yahoo! Inc. Synchronous replication for fault tolerance
US9141475B2 (en) 2008-11-23 2015-09-22 Sandisk Technologies Methods for tag-grouping of blocks in storage devices
US8481938B2 (en) * 2009-07-01 2013-07-09 Advantest Corporation Electromagnetic wave measuring apparatus, measuring method, program, and recording medium
CN102236750B (zh) 2010-04-29 2016-03-30 国际商业机器公司 在云存储系统中进行权限控制的方法和装置
US20110276799A1 (en) * 2010-05-06 2011-11-10 Keicy Chung Personal communication system having independent security component
FR2963245B1 (fr) * 2010-07-29 2012-08-10 Rodolphe Argoud Dispositif d?absorption d?energie pour l?ancrage d?une ligne de vie ou similaire
US8863034B2 (en) 2010-08-11 2014-10-14 International Business Machines Corporation 3D tag clouds for visualizing federated cross-system tags
US8700896B1 (en) * 2010-08-25 2014-04-15 Symantec Corporation Techniques for automatic management of file system encryption drivers
JP2012203729A (ja) 2011-03-25 2012-10-22 Fujitsu Ltd 演算処理装置および演算処理装置の制御方法
US9336035B2 (en) * 2012-10-23 2016-05-10 Vmware, Inc. Method and system for VM-granular I/O caching

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809522A (en) * 1995-12-18 1998-09-15 Advanced Micro Devices, Inc. Microprocessor system with process identification tag entries to reduce cache flushing after a context switch
TW200511028A (en) * 2003-06-21 2005-03-16 Samsung Electronics Co Ltd Portable storage apparatus and method for freely changing data bus width

Also Published As

Publication number Publication date
WO2014098972A1 (en) 2014-06-26
CN105408876A (zh) 2016-03-16
US20140181448A1 (en) 2014-06-26
US9513803B2 (en) 2016-12-06
US20180074713A1 (en) 2018-03-15
US20170139632A1 (en) 2017-05-18

Similar Documents

Publication Publication Date Title
US8966160B2 (en) Storage device trimming
CN104714893B (zh) 用于缩放垃圾收集的方法和系统
CN109582599B (zh) 数据储存装置以及非挥发式存储器操作方法
US10437737B2 (en) Data storage device
US20170220299A1 (en) Hash map support in a storage device
US10409717B2 (en) Data storage device and method for operating data storage device
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
CN104412218B (zh) 存储控制程序的存储介质、控制信息处理设备的方法、信息处理系统,以及信息处理设备
EP3398075B1 (en) Transfer descriptor for memory access commands
JP2018181374A (ja) 不揮発性メモリの制御方法
TW201841118A (zh) 採用映射記憶體提供多重命名空間的方法及設備
US11042305B2 (en) Memory system and method for controlling nonvolatile memory
KR20170121046A (ko) NVMe 인터페이스를 사용하는 장치에 커널 모드 액세스 및 사용자 모드 액세스를 동시에 제공하는 시스템 및 방법
CN106708423A (zh) 多模存储管理系统
CN106062723A (zh) 禁用与存储器设备相关联的命令
JP2006277723A5 (zh)
US20180068695A1 (en) Managing disturbance induced errors
RU2012149789A (ru) Измерительное средство для функций адаптера
CN110187832B (zh) 一种数据操作的方法、设备和系统
KR20210111993A (ko) 컨트롤러 및 컨트롤러의 동작 방법
CN104011689A (zh) 非易失性存储器损耗管理
CN112684976A (zh) 用于执行迁移操作的存储器系统及其操作方法
CN105408876B (zh) 在存储设备中加标签
CN111625482B (zh) 顺序流检测方法与装置
CN104216834A (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
GR01 Patent grant
GR01 Patent grant