CN115113809A - 计算存储设备中的安全应用 - Google Patents

计算存储设备中的安全应用 Download PDF

Info

Publication number
CN115113809A
CN115113809A CN202210236183.1A CN202210236183A CN115113809A CN 115113809 A CN115113809 A CN 115113809A CN 202210236183 A CN202210236183 A CN 202210236183A CN 115113809 A CN115113809 A CN 115113809A
Authority
CN
China
Prior art keywords
application
controller
program
command
request
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.)
Pending
Application number
CN202210236183.1A
Other languages
English (en)
Inventor
G.文卡塔拉曼
V.马拉姆
M.S.布莱森
柳星旭
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN115113809A publication Critical patent/CN115113809A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0658Controller construction 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/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)
  • Nitrogen Condensed Heterocyclic Rings (AREA)
  • Furan Compounds (AREA)

Abstract

一种方法包括在存储设备的控制器处接收将存储设备的处理设备的程序插槽预留给应用的命令。该方法还包括由存储设备的控制器存储程序插槽和应用之间的关联。该方法还包括在存储设备的控制器处接收将应用加载到程序插槽中的请求。该方法还包括由存储设备的控制器基于关联和请求将应用加载到程序插槽中。该方法还包括在存储设备的处理设备处执行程序插槽中的应用。

Description

计算存储设备中的安全应用
相关申请的交叉引用
本申请要求于2021年3月23日提交的题为“用于计算存储的安全程序域的系统、方法和装置”的美国临时申请第63/165,027号的优先权和权益,其全部内容通过引用结合于此。
技术领域
本公开一般涉及用于虚拟计算存储设备的系统和方法。
背景技术
计算存储设备提供计算功能和数据存储。因此,主机设备可以在计算存储设备处存储数据并将计算卸载到计算存储设备。在一些实现方式中,各种程序可以在计算存储设备处执行。然而,将可执行程序引入计算存储设备可能会给计算存储设备的组件带来增加的安全风险。
在本背景技术部分中公开的上述信息仅用于增强对本公开背景的理解,因此其可能包含不构成现有技术的信息。
发明内容
在各种实施例中,本文所描述内容包括与虚拟计算存储设备相关的系统、方法和装置。
一种方法包括在存储设备的控制器处接收将存储设备的处理设备的程序插槽(slot)预留(reserve)给应用的命令。该方法还包括由存储设备的控制器存储程序插槽和应用之间的关联。该方法还包括在存储设备的控制器处接收将应用加载到程序插槽中的请求。该方法还包括由存储设备的控制器基于关联和请求将应用加载到程序插槽中。该方法还包括在存储设备的处理设备处执行程序插槽中的应用。
计算存储设备包括处理设备、存储器和控制器。该控制器被配置为接收将处理设备的程序插槽预留给应用的命令。该控制器还被配置为在存储器中存储程序插槽和应用之间的关联。该控制器还被配置为接收将应用加载到程序插槽中的请求。该控制器还被配置为基于关联和请求将应用加载到程序插槽中。该控制器还被配置为在处理设备处发起对程序插槽中的应用的执行。
计算机可读存储设备存储可由控制器执行的指令,以接收将处理设备的程序插槽预留给应用的命令。指令还可执行以在存储器中存储程序插槽和应用之间的关联。指令还可执行以接收将应用加载到程序插槽中的请求。指令还可执行以基于关联和请将应用加载到程序插槽中。指令还可被执行以在处理设备处发起对程序插槽中的应用的执行。
附图说明
在参考以下附图阅读本申请时,将更好地理解本技术的上述方面和其他方面,在附图中,相同的数字指示相似或相同的元素:
图1是用于在计算存储设备中提供安全应用的系统的框图。
图2A、图2B和图2C是描绘与为系统中的特定应用预留程序插槽相关的各种操作的图。
图3描绘了和设置与将可由系统中的计算存储设备执行的应用相关联的特权相关的操作。
图4A、图4B和图4C是描绘与将应用限制到指定插槽相关的各种操作的图。
图5A、图5B和图5C是描绘与保护存储介质中的数据相关的操作的图,该存储介质可由系统中的计算存储设备可执行的应用访问。
图6A、图6B和图6C是描绘与一个应用引导(bootstrap)另一个应用相关的操作的图。
图7是示出与许可在计算存储设备中执行的应用访问与计算存储设备的存储器相关联的存储器空间相关的操作的图。
图8是描绘对存储器中的不同存储器空间具有访问权的各种应用的图。
图9是描述与禁用系统的组件相关的操作的图。
图10是存储与应用相关联的权利(right)和特权(privilege)的数据结构的图。
图11是示出存储与程序插槽相关联的数据的数据结构的图。
图12是示出预留程序插槽的方法的流程图。
图13是示出加载和执行应用的方法的流程图。
图14是示出存储应用和权利或特权之间的关联的方法的流程图。
图15是示出由在计算存储设备上执行的应用许可对资源的访问的方法的流程图。
尽管本技术允许各种修改和替代形式,但是其具体实施例在附图中以示例的方式示出,并将在此进行描述。附图可能不是按比例的。然而,应当理解,附图及对其的详细描述并不旨在将本技术限制于所公开的特定形式,相反,本发明旨在覆盖落入由所附权利要求限定的本技术的精神和范围内的所有修改、等同和替代。
具体实施方式
在附图和下面的描述中阐述本文所描述的主题的一个或多个实施例的细节。根据描述、附图和权利要求,本主题的其他特征、方面和优点将变得清楚。
现在将参考附图在下文中更全面地描述本公开的各种实施例,在附图中示出了一些但不是所有实施例。事实上,本公开可以以多种不同的形式来实施,并且不应该被解释为局限于本文所阐述的实施例;相反,提供这些实施例是为了使本公开满足适用的法律要求。除非另有说明,否则术语“或”在本文中用作可替代和连接的意义。术语“说明性的”和“示例”用作没有质量级别指示的示例。相同的数字始终指代相同的元素。每个图中的箭头描绘了双向数据流和/或双向数据流能力。术语“路径”、“途径”和“路线”在本文中可互换使用。
本公开的实施例可以以各种方式(包括作为包括制品的计算机程序产品)来实现。计算机程序产品可以包括存储应用、程序、程序组件、脚本、源代码、程序代码、目标代码、字节代码、编译代码、解释代码、机器代码、可执行指令等的非暂时性计算机可读存储介质(这里也被称为可执行指令、用于执行的指令、计算机程序产品、程序代码和/或在本文中可互换使用的类似术语)。这样的非暂时性计算机可读存储介质包括所有计算机可读介质(包括易失性介质和非易失性介质)。
在一个实施例中,非易失性计算机可读存储介质可以包括软盘(floppy disk/flexible disk)、硬盘、固态存储(例如固态驱动(SSD))、固态卡(SSC)、固态组件(SSM)、企业闪存驱动、磁带或任何其他非暂时性磁介质等。非易失性计算机可读存储介质还可以包括穿孔卡、纸带(paper tape)、光学标记页(或具有孔图案或其他光学可识别标记的任何其他物理介质)、紧凑盘只读存储器(CD-ROM)、可重写紧凑盘(CD-RW)、数字多功能盘(DVD)、蓝光盘(BD)、以及任何其他非暂时性光学介质等。这样的非易失性计算机可读存储介质还可以包括只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存(例如串行、NAND、NOR等)、多媒体存储卡(MMC)、安全数字(SD)存储卡、智能媒体卡、压缩闪速(CF)卡、记忆棒等。此外,非易失性计算机可读存储介质还可以包括导电桥接随机存取存储器(CBRAM)、相变随机存取存储器(PRAM)、铁电随机存取存储器(FeRAM)、非易失性随机存取存储器(NVRAM)、磁阻式随机存取存储器(MRAM)、电阻式随机存取存储器(RRAM)、硅-氧化物-氮化物-氧化物-硅存储器(SONOS)、浮结门随机存取存储器(FJG RAM)、千足虫(Millipede)存储器、赛道(racetrack)存储器等。
在一个实施例中,易失性计算机可读存储介质可以包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、快速页模式动态随机存取存储器(FPM DRAM)、扩展的数据输出动态随机存取存储器(EDO DRAM)、同步动态随机存取存储器(SDRAM)、双数据速率同步动态随机存取存储器(DDR SDRAM)、双数据速率类型二同步动态随机存取存储器(DDR2 SDRAM)、双数据速率类型三同步动态随机存取存储器(DDR3SDRAM)、蓝博士(Rambus)动态随机存取存储器(RDRAM)、双晶体管RAM(TTRAM)、晶闸管RAM(T-RAM)、零电容器(Z-RAM)、蓝博士直插式存储器组件(RIMM)、双直插式存储器组件(DIMM)、单直插式存储器组件(SIMM)、视频随机存取存储器(VRAM)、高速缓存存储器(包括各种级别)、闪存、寄存器存储器等。应当理解,在实施例被描述为使用计算机可读存储介质的情况下,除了上述计算机可读存储介质之外,可以替代成或使用其他类型的计算机可读存储介质。
应当理解,本公开的各种实施例也可以被实现为方法、装置、系统、计算设备、计算实体等。这样,本公开的实施例可以采取执行存储在计算机可读存储介质上的指令以执行某些步骤或操作的装置、系统、计算设备、计算实体等的形式。因此,本公开的实施例也可以采取完全硬件实施例、完全计算机程序产品实施例和/或包括计算机程序产品和执行某些步骤或操作的硬件的组合的实施例的形式。
下面参考框图和流程图图示来描述本公开的实施例。因此,应当理解,框图和流程图图示中的每个框可以以计算机程序产品、完全硬件实施例、硬件和计算机程序产品的组合和/或执行用于执行的计算机可读存储介质上的指令、操作、步骤和可互换使用的类似词语(例如,可执行指令、用于执行的指令、程序代码等)的装置、系统、计算设备、计算实体等的形式来实现。例如,对代码的检索、加载和执行可以顺序执行,使得一次检索、加载和执行一条指令。在一些示例实施例中,检索、加载和/或执行可以并行执行,使得多个指令被一起检索、加载和/或执行。因此,这样的实施例可以产生执行框图和流程图图示中规定的步骤或操作的专门配置的机器。因此,框图和流程图图示支持用于执行规定的指令、操作或步骤的实施例的各种组合。
如本文所使用的,计算存储设备是指支持计算任务的存储设备。例如,计算存储设备可以包括存储元件(例如,非易失性存储器,诸如闪存、硬盘驱动等)和计算元件(例如,中央处理器单元(CPU)、图形处理器单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)(诸如张量处理单元)、处理器内核等),并且被配置为支持计算元件处对数据的存储和计算元件处对计算任务的执行。因此,计算存储设备可以向计算存储客户端(例如,计算设备)提供存储能力,并且可以支持将计算任务从计算存储客户端卸载到计算存储设备。
本文公开了用于增加计算存储设备中的安全性的系统和方法。图1示出了包括与主机102通信的计算存储设备104的示例系统100。计算存储设备104包括控制器106、处理设备108、存储器105和存储介质124。控制器106可以包括ASIC、FPGA、中央处理器单元或被配置为处理与存储介质124相关联的输入和输出操作的其他处理单元。例如,响应于来自主机102的写入命令,控制器106可以从主机102读取数据并将数据写入存储介质。作为另一个示例,响应于来自主机102的读取命令,控制器106可以从存储介质124读取数据并将数据写入主机102。除了处理输入和输出操作之外,控制器106还可以处理与计算任务相关联的命令。这些与计算任务相关联的命令可以包括将程序加载到处理设备108中的命令、设置与这样的程序相关联的一个或多个权限(permission)的命令或者它们的组合。
存储介质124可以包括非易失性计算机可读存储介质、易失性计算机可读存储介质或其组合。在所示示例中,存储介质124存储第一数据126和第二数据128。第一数据126和第二数据128可以对应于名称空间、文件、页、逻辑块地址范围、其他数据单元或其组合。尽管存储介质124被示为具有两个数据单元,但是应当注意,存储介质124也可以包括不同数量的数据单元。
存储器105可以包括易失性计算机可读存储介质、非易失性计算机可读存储介质或其组合。存储器105被配置为作为操作存储器操作,并且存储用于在处理设备108处执行的程序的程序数据。在一些实现方式中,存储器105和存储介质124可以通过数据单元在相应设备中如何被寻址来区分。例如,存储器105可以是字节可寻址的,而存储介质124可以是块可寻址的。在一些实现方式中,计算存储设备104可以包括用于长期存储以及用作操作存储器的单个计算机可读存储介质。
处理设备108可以包括ASIC、FPGA、中央处理器单元、图形处理器单元、其他类型的处理器单元或其组合。处理设备108被配置为执行被加载到程序插槽中的应用。系统100的处理设备108被示为具有第一程序插槽110、第二程序插槽120和第三程序插槽122。其他数量的程序插槽也是可能的。程序插槽110、120、122可以对应于处理设备108的容量的逻辑表示,并且处理设备108可以执行多达程序插槽数量的多个程序。这些逻辑表示可以由控制器106来维护。与每个程序插槽110、120、122相对应的元数据可以由控制器106存储在存储器105中、存储介质124中、或者其组合中。与程序插槽相对应的元数据可以指示插槽标识符、为插槽预留的程序、与插槽相关联的一个或多个权限、或者它们的组合。与插槽相关联的一个或多个权限可以标识被授权来将程序加载到插槽中、执行插槽中的程序或者其组合的实体(例如,主机、程序等)。包括在处理设备108中的程序插槽的数量可以是可配置的、或者可以是基于处理设备108的一些底层硬件特征的。例如,程序插槽的数量可以是基于包括在处理设备108中的内核的数量或另外的硬件特征的。在一些实现方式中,每个程序插槽对应于存储器(诸如存储器105)中的存储器地址或范围,并且将应用加载到程序插槽中包括将应用(或对应用的引用,诸如指针)存储在相应的地址或范围中以供处理设备108执行。
尽管未示出,但是计算存储设备104可以包括各种附加组件,诸如主机接口层、闪速转换层等。例如,主机接口层可以被配置为将从主机102接收到的命令转换为控制器106识别的形式。这种转换可以包括将主机102使用的寻址方案转换为控制器106使用的寻址方案。闪速转换层可以将来自控制器106的命令转换为存储介质124识别的格式。这种转换可以包括将主机102使用的寻址方案转换为存储介质124使用的寻址方案。此外,计算存储设备104中可以包括一个以上的所示组件。例如,计算存储设备104可以包括一个以上的存储器105、一个以上的存储介质124、一个以上的处理设备108、一个以上的控制器106等。此外,尽管未示出,计算存储设备104可以包括组件之间的各种连接。例如,计算存储设备104的组件可以通过总线、通过一个或多个直接连接或其组合来连接。此外,图1所示的一些组件可以被组合。例如,控制器106和处理设备108可以被实现为相同的处理设备(或多个处理设备)。
在操作中,控制器106管理与程序插槽110、120、122相关联的权利以及与程序相关联的权利。例如,控制器106可以实施为应用预留程序插槽,并且可以防止未经授权的程序被加载到该程序插槽中。作为另一个示例,控制器106可以管理程序对存储介质124、对存储器105或其组合的访问权。作为另一个示例,控制器106可以管理各种实体(例如,主机、程序等)的访问权,以加载和/或执行程序插槽110、120、122之一中的程序。因此,控制器106可以防止对计算存储设备104的各种资源的未经授权使用。防止这种未经授权的使用在各种上下文中可能是有用的,诸如在其中来自不同供应商的程序被加载到程序插槽110、120、122中的多租户环境中。此外,控制器106可以管理与将程序加载到程序插槽110、120、122之一中并发起执行的一个程序相关联的权利。因此,计算存储设备104可以在保持安全性的同时支持相对复杂的工作流。这种复杂的工作流的示例是其中校验和程序选择性地加载和执行修复程序的一个工作流。在一些实现方式中,控制器106根据非易失性快速存储器(NVMe)协议来操作。
应当注意,尽管计算存储设备104被描述为物理设备,但是计算存储设备104和/或其一个或多个组件可以对应于由一个或多个底层物理设备提供的虚拟设备。例如,在计算系统中执行的管理程序(hypervisor)可以向主机102提供计算存储设备104。主机102可以类似地对应于物理或虚拟计算设备。
图2A-图2C是示出了支持插槽预留功能的控制器106的系统100的示意图。在图2A所示的示例中,主机102向计算存储设备104发送命令202,以便为(图2B所示的)第一应用208预留第一程序插槽110。控制器106接收命令202,并且将第一程序插槽和第一应用208之间的关联204存储在存储器105中。关联204可以对应于第一程序插槽110对第一应用208的预留。存储关联204可以包括更新与第一程序插槽110相关联的元数据。应当注意,该元数据(以及关联204)可以被存储在其他位置,而不是被存储在存储器105中。例如,元数据可以被存储在存储介质124中、处理设备108的存储器中或另外的位置中。
在一些实现方式中,命令202可以源自不同于主机102的源。例如,命令202可以源自在程序插槽110、120、122之一中执行的程序。控制器106可以被配置为确定命令202的源是否有权发出命令202。例如,如下面结合图10进一步描述的,与插槽相关联的元数据可以指示哪些实体和/或权限级别可以预留特定插槽。控制器106可以确定命令202是否是由与第一程序插槽110相关联的元数据授权的实体发出的或者由与(由与第一程序插槽110相关联的元数据授权的)权限级别相关联的实体发出的。如下面结合图9进一步描述的,计算存储设备104可以存储与程序相关联的元数据,并且这样的程序可以指示与程序相关联的权限级别。响应于确定发出命令202的实体被授权发出命令202,控制器106可以存储关联204,如图所示。然而,如果控制器106确定实体未经授权,则控制器106可以拒绝命令202。拒绝命令202可以包括向实体发送拒绝消息。如下文进一步描述的,与程序和插槽相关联的元数据可以由主机102、在处理设备108中执行的程序或其组合来设置。
在图2B所示的示例中,主机102发送将第一应用208加载到第一程序插槽110中的命令206。响应于命令206,控制器106通过查阅(consult)与第一程序插槽110相关联的元数据来确定第一程序插槽110对于第一应用208是否可用。响应于第一应用208对应于关联204指示的预留,控制器106可以将第一应用208加载到第一程序插槽中。将第一应用208加载到第一程序插槽110中可以包括从外部源下载第一应用208。可以在命令206中指示外部源。可替代地,加载第一应用208可以包括从存储介质124检索第一应用208。
在控制器106确定加载应用的命令与预留不一致的情况下,控制器106可以拒绝该命令。例如,图2C描绘了主机102发送将第二应用加载到第一程序插槽110的命令210。响应于关联204指示第一程序插槽110被预留给第一应用208,控制器106拒绝命令210,并且不将第二应用加载到第一程序插槽110中。在所示示例中,控制器106向主机102发送指示命令210已被拒绝的拒绝消息212。
尽管图2B和图2C描绘了加载命令源自主机102,但是如下面进一步描述的,应用也可以发出加载命令。在这种情况下,控制器106可以如上所述地确定加载命令是否与存储在程序插槽元数据中的预留一致。
因此,图2A-图2C示出了系统100如何为应用预留程序插槽。这种预留可以确保优先应用在需要时有资源可以执行。在多个实体将应用加载到处理设备108中的情况下(例如,在多租户系统中),可以防止一个租户消耗所有可用的程序插槽并且阻止另一个租户的重要应用。
除了设置与程序插槽相关联的预留和其他元数据之外,系统100还支持设置与应用相关联的特权。图3描绘了主机102设置应用的应用特权的示例。在图3的示例中,主机102发送命令302来为第一应用设置应用特权。基于命令302,控制器106将第一应用特权304存储在存储器105中。第一应用特权304可以指示第一应用的特权和/或其他实体相对于第一应用的特权。参考图4-图7和图9更详细地描述了应用特权。
尽管图3描绘了命令302源自主机102,但是在一些示例中,其他实体(例如,在处理设备108上执行的应用)也可以发出设置应用特权的命令。响应于设置应用特权的命令(诸如命令302),控制器106可以确定发送该命令的实体是否有权设置应用特权。例如,控制器106可以响应于从具有管理员级别特权的实体接收到命令来设置应用的特权。作为另一个示例,控制器可以响应于从与应用相关联的所有者接收到命令来设置应用的特权。可以在存储在存储器105中或另外的位置中的与应用相关联的元数据中标识应用的所有者。响应于确定发出设置应用特权的命令的实体未经授权,控制器106可以拒绝该命令。
应当注意,控制器106可以将第一应用特权304存储在除存储器105之外的其他位置中。例如,控制器106可以将第一应用特权304存储在存储介质124中、处理设备108内部的存储器中、控制器106内部的存储器中等。
图4A描述了其中主机102许可第一应用在第一程序插槽110中执行的特权的示例。除了将插槽预留给特定应用之外,系统100还可以支持将应用限制到一个或多个特定插槽。在所示示例中,主机102向(如图4B所示的)第一应用407发送命令402,以许可在第一程序插槽110中执行的特权。命令402可以对应于图3的命令302。响应于命令402,控制器106可以存储第一应用407和第一程序插槽110之间的关联404。关联404可以对应于第一应用特权304。
控制器106可以基于关联404来选择性地允许和不允许将第一应用407加载到程序插槽中的请求。例如,在图4B中,主机102发送请求406以将第一应用407加载到第一程序插槽110中。基于关联404指示准许第一应用407在第一程序插槽110中执行,控制器106可以将第一应用407加载到第一程序插槽110中。图4C示出了其中主机102发送将第一应用407加载到第二程序插槽120中的请求408的另一个示例。响应于确定关联404未许可第一应用407访问第二程序插槽120,控制器106拒绝请求408。拒绝请求408可以包括拒绝将第一应用407加载到第二程序插槽120中,并向主机102发送拒绝410。
如上所述,在其他示例中,命令402可以源自不同于主机102的实体。此外,如上所述,控制器106可以基于实体的特权来选择性地存储关联404,以更新与第一应用407相关联的特权。此外,加载第一应用407的请求406可以源自除主机102之外的实体。控制器106可以基于实体的特权来选择性地处理请求406,以加载第一应用407。
因此,图4A-图4C示出了系统100支持将应用限制到指定程序插槽。因此,特定程序可能不被加载到多于期望数量的插槽中,并且程序插槽资源可以受到保护。
除了将应用限制到一个或多个所定义的程序插槽之外,系统100还可以支持限制应用访问存储在存储介质124上的数据的能力。图5A-图5C描绘了其中系统100限制对存储介质124的访问的说明性示例。
在图5A所示的示例中,主机102发送许可第一应用506访问存储介质124上的第一数据126的命令502。命令502可以对应于命令302。命令502可以包括与第一数据126相关联的名称空间的标识符、位置(例如,LBA、LBA范围等)、页,密钥、一些其他标识符或者其组合。此外,命令可以包括访问类型标识符(例如,读取访问、写入访问或执行访问)。
响应于命令502,在所示示例中,控制器106在存储器105中存储第一应用506和第一数据126之间的关联504。在其他示例中,除了存储器105之外或替代存储器105,关联504可以被存储在另外的位置中。例如,关联504可以被存储在处理设备108的存储器、控制器106的存储器、存储介质124等中。关联504可以对应于第一应用特权304或包括在第一应用特权304中。尽管在所示示例中由主机102发出,但是在其他示例中,命令502可以由另外的实体(例如,在处理设备108上执行的另一个应用)发出。在一些实现方式中,控制器106可以基于与发出命令502的实体相关联的权限级别来选择性地处理命令502。关联504还可以包括访问类型。
在图5B中,在第一程序插槽110中执行的第一应用506发送对第一数据126的请求508。响应于存储在存储器105中的关联504指示第一应用506能够访问第一数据126,控制器106发起第一数据126到第一应用506的传输,如箭头510所示。应当注意,尽管图5B描绘了第一应用506读取第一数据126,但是第一应用506也可以发送写入第一数据126的请求。控制器106可以类似地响应于确定关联504指示第一应用506能够访问第一数据126来发起对第一数据126的写入。
然而,在一些实现方式中,关联504可以指示经许可的、对第一应用506的特定类型访问。例如,关联504可以指示第一应用506可以读取访问、写入访问、执行访问或以其组合方式访问第一数据126。在不允许应用访问数据的情况下(例如,在应用和数据之间没有关联)或者在未许可应用对数据的访问类型的情况下,控制器106可以否决(deny)访问数据的请求。图5C描绘了其中第一应用506尝试访问未被许可给第一应用506的数据的示例。
在图5C的示例中,第一应用506发出对第二数据128的请求512。响应于第一应用506无权访问第二数据128,控制器106否决对第二数据128的访问。在所示示例中,控制器106向第一应用506发出拒绝消息514。在其他实现方式中,控制器106可以不发送拒绝消息514,并且可以简单地忽略请求512。控制器106可以通过确认被许可给第一应用506的权限(例如,关联504)不包括访问第二数据128的权限来确定第一应用506无权访问第二数据128。可替代地,控制器106可以确定第一应用506无权进行对第二数据128的特定类型访问。例如,存储器105可以存储指示第一应用506可以读取访问第二数据128的关联,但是请求512可能是对第二数据128的写入访问。因此,控制器106可以确定第一应用506无权执行所请求的访问类型。
因此,图5A-图5C描绘了系统100可以通过限制应用对特定数据的访问、特定访问类型或其组合来保护计算存储设备中的数据。
系统100还可以支持为一个应用许可加载和/或执行其他应用的能力。加载和/或执行另外的应用的一个应用可以被称为引导。图6A描绘了其中向第一应用606许可引导特权的示例。在图6A的示例中,主机102向计算存储设备104发送命令602。命令602可以对应于命令302。命令602指示第一应用606将被许可引导特权。控制器106在存储器105中存储第一应用和引导特权之间的关联604。应当注意,在其他示例中,另外的实体(例如,在处理设备108上执行的另一个应用)可以发出命令602。在一些实现方式中,控制器106可以基于发出命令602的实体的授权级别来选择性地处理命令602(例如,存储关联604)。此外,控制器106可以将关联604存储在除存储器105之外的位置中。例如,控制器106可以将关联604存储在控制器106的存储器、处理设备108的存储器、存储介质124、另外的位置或其组合中。关联604可以对应于第一应用特权304或包括在第一应用特权304中。
一般地,控制器106可以基于第一应用是否与引导特权相关联来选择性地许可第一应用606将另一个程序加载到程序插槽之一中的请求。在一些示例中,命令602和关联604指示可以由第一应用606引导的一个或多个特定应用。因此,具体地,控制器106可以基于第一应用606是否与引导另一个应用的特权相关联来选择性地许可第一应用606将该另一个应用加载到另一个程序插槽中的请求。
图6B描绘了其中第一应用606成功引导另一个应用的示例。在所示示例中,第一应用606发送将第二应用610加载到第二程序插槽120中的请求608。响应于确定关联604向第一应用606许可引导第二应用610的特权,控制器106将第二应用610加载到第二程序插槽120中。加载第二应用610可以包括下载第二应用610和/或从存储介质124检索第二应用610。在特定示例中,第一应用606可以对应于校验和应用,并且第二应用610可以对应于修复程序。响应于确定为特定数据计算出的校验和与存储的校验和不匹配,校验和应用可以向控制器106发送加载修复应用的请求。如关联604所指示的,控制器106可以基于校验和应用是否具有引导特权来选择性地许可请求。
因此,图6A-图6B示出了系统100支持在计算存储设备104处执行的应用加载和执行其他应用。计算存储设备104的控制器106基于引导特权来选择性地许可来自应用的这种请求。因此,可以支持复杂的工作流,诸如在处理设备108中执行的诊断程序加载并执行另一个程序来补救检测到的错误。此外,因为控制器106基于特权来选择性地许可引导请求,所以可以防止未经授权的应用加载其他应用。此外,因为引导特权可以限于特定应用,所以应用可以限于加载/执行特定的其他应用。
控制器106可以拒绝来自缺少引导特权的应用的引导请求。图6C描绘了第二应用610向控制器106发送加载第三应用的请求614的示例。响应于确定存储器105缺少第二应用610和引导特权之间的关联,控制器106可以拒绝请求614。可替代地,控制器106可以基于确定存储器105存储指示第二应用610不被允许引导特权的指示符,来确定第二应用610缺少引导特权。在所示示例中,控制器106响应于确定第二应用610缺少引导特权,向第二应用610发送拒绝消息616。
系统100还可以支持限制应用对存储器105的访问。图7示出了其中许可第一应用706访问存储器105的一部分的示例。在所示示例中,主机102发送许可第一应用706访问第一存储器空间708的命令702。第一存储器空间708可以对应于被映射到存储器105中的物理地址的虚拟存储器空间。在一些实现方式中,控制器106响应于命令702分配第一存储器空间708。在所示示例中,控制器106在存储器105中存储第一应用706和第一存储器空间708之间的关联704。
控制器106可以为每个存储器空间维护数据结构(诸如页表)。在一些实现方式中,关联704包括用于第一存储器空间708的数据结构(例如,页表)。如本文进一步描述的,在将应用加载到程序插槽期间,控制器106可以将应用和特权之间的关联传递给应用。这些关联(例如,第一应用特权304、关联404、关联504、关联604等)可以包括数据结构(例如,页表)。
关联704指示准许第一应用706访问第一存储器空间708。在一些实现方式中,这种访问可能基于类型而受到限制。例如,命令702和关联704可以指定第一应用706能够对第一存储器空间708进行特定类型访问(例如,读取访问、写入访问、执行访问)。基于关联704,控制器106可以选择性地将存储器访问请求从第一应用706传递到存储器105。
命令702可以对应于命令302,并且关联704可以对应于第一应用特权304或包括在第一应用特权304中。尽管命令702被示为源自主机102,但是在其他示例中,命令702可以源自另外的实体(例如,在处理设备108上执行的应用)。控制器106可以基于与发出命令702的实体相关联的授权级别来选择性地存储关联704。
尽管关联704被示为存储在存储器105中,但是应当注意,关联704可以存储在其他位置中。例如,控制器106可以将关联704存储在控制器106的存储器、处理设备108的存储器、存储介质124、另外的位置或其组合中。
尽管命令702向在处理设备108上执行的应用许可存储器空间,但是应当注意,控制器106也可以存储主机102和存储器105的存储器空间之间的关联。系统100可以支持将存储器105划分为可由处理设备108上运行的应用(但不是主机102)访问的存储器空间、可由主机102(但不是可由处理设备108执行的应用)访问的存储器空间、可由主机102和运行在处理设备108上的应用两者访问的存储器空间或其组合。
控制器106可以基于存储的实体和存储器空间之间的关联、访问类型或其组合来选择性地许可访问存储器105的请求。例如,控制器106可以基于关联704来向第一应用706许可访问第一存储器空间708的请求。向存储器105许可请求可以包括通过将请求中的地址(例如,基于存储的页表或其他数据结构)转换为存储器105的地址并将转换后的请求转发到存储器105,来生成转换后的请求。
图8图示了应用和存储器105中存储器地址空间之间的关联。在所示示例中,第一应用802与第一地址空间806的所有者读写特权相关联。因此,控制器106可以许可从第一应用802指向第一地址空间806的读取和写入请求。第二应用804与第一地址空间806的组读取特权相关联。因此,控制器106可以许可从第二应用804指向第一地址空间806的读取请求。第二应用804还与第二地址空间808的所有者读写特权相关联。因此,控制器106可以许可从第二应用804指向第二地址空间808的读取和写入请求。
然而,控制器106可以响应于确定第二应用804被许可对第一地址空间806的读取访问而不是写入访问,否决从第二应用804指向第一地址空间806的写入请求。类似地,控制器106可以否决来自第一应用802的访问第二地址空间808的请求。此外,第一应用802可能缺少与第二地址空间808相关联的页信息。
因此,系统100支持对计算存储设备中可由应用访问的存储器地址空间的安全管理。这在多租户环境中可能特别有益,在多租户环境中,一个租户的数据对另一个租户的应用应该是私密的。
图9示出了系统100支持响应于命令而禁用计算存储设备104的组件。控制器106可以不许可对禁用组件的访问。在所示示例中,主机102发送禁用处理设备108和存储器105的命令902。基于命令902,控制器106禁用处理设备108(包括程序插槽110、120、122)和存储器105。控制器106可以支持禁用计算存储设备104的组件的任何组合,包括处理设备108的各个程序插槽、存储器105中的各个存储器空间以及存储介质124中的各个部分(例如名称空间、位置、页等)。禁用组件在各种情况下(诸如在维护期间或错误恢复操作期间)都是有用的。控制器106可以清除被加载到禁用程序插槽中的任何应用。从程序插槽中清除应用可以包括信令通知处理设备108停止执行应用、删除与插槽相关联的数据中的条目或其组合。
尽管被示为源自主机102,但是在其他示例中,命令902可以源自不同的实体。控制器106可以基于与发出命令902的实体相关联的授权级别来选择性地处理命令902。例如,控制器106可以响应于确定主机102具有管理员授权级别,基于命令902来禁用处理设备108和存储器105。
应当注意,上述操作可以组合。例如,控制器106可以基于A)第一应用是否具有相应的引导特权、B)第二程序插槽120是否被预留给另一个应用、以及C)第二应用是否被限制到特定插槽的组合,来确定是否许可来自第一应用的、将第二应用加载到第二程序插槽120中的请求。控制器可以使用上述权限的其他组合来确定是否许可给定请求。因此,控制器106可以结合实施各种规则来提供安全计算存储设备。
参考图10,示出了示出与应用相关联的特权(例如,第一应用特权304)的示例的表1000。在所示示例中,表在第一字段1002中指示应用可以在什么中执行。第一字段1002可以对应于图4的关联404。控制器(例如,控制器106)可以基于相应的第一字段1002的内容来将应用的执行限制到特定插槽。在所示示例中,第一应用基于第一字段1002被限制到第一插槽。因此,控制器106可以许可将第一应用加载到第一插槽中的请求(假设满足所有其他条件),但是否决将第一应用加载到其他插槽中的请求。相反,表1000中针对第二应用示出的第一字段1002指示第二应用可以被加载到任何插槽中。因此,控制器可以在不考虑请求了哪个插槽的情况下,许可将第二应用加载到程序插槽中的请求。
表1000还包括定义相应的应用可以访问(例如,存储介质124中的)什么存储器空间的第二字段1004。在所示示例中,第二字段1004指示第一应用可以读取访问和写入访问第一名称空间。因此,控制器可以许可从第一应用指向第一名称空间的读取和写入请求。然而,控制器可以禁止来自第一应用的、访问其他名称空间的请求。类似地,第二字段1004指示第二应用可以读取访问和写入访问第二名称空间。第二字段1004可以对应于关联504。
表1000还包括定义相应的应用可以访问(例如,存储器105中的)什么存储器空间的第三字段1006。在所示示例中,第三字段1006指示第一应用可以读取访问和写入访问第一虚拟地址空间。因此,控制器可以许可从第一应用指向第一虚拟地址空间的读取和写入请求。然而,控制器可以禁止来自第一应用的、访问其他虚拟地址空间的请求。第三字段1006可以包括由第三字段1006标识的每个虚拟地址空间的数据结构(例如,页表)的索引或其他指示符。第三字段1006还指示第二应用可以读取访问第一虚拟地址空间。第三字段1006可以对应于关联704。
表1000还包括定义相应的应用是否具有引导特权的第四字段1008。在所示示例中,第四字段1008指示第一应用具有引导第二应用的特权(由括号中的2表示)。因此,控制器可以许可来自第一应用的、加载第二应用的请求。然而,控制器可以禁止来自第一应用的、加载其他应用的请求。在所有示例中,引导特权可能不限于特定的目标应用。第四字段1008还指示第二应用不具有引导特权。第四字段1008可以对应于关联604。
表1000还包括定义适用于由相应的应用引导的应用的特殊规则的第五字段1010。在所示示例中,第五字段1010指示由第一应用引导的应用获得对第一虚拟地址空间的读取访问。因此,许可来自第一应用的、引导另一个应用的请求的控制器可以许可对第一虚拟地址空间的读取访问。在一些实现方式中,第五字段1010可以指定将由经引导的应用继承的相应应用的特权集或特权子集。也就是说,第五字段1010可以指示经引导的应用的一个或多个第二特权。第五字段1010可以对应于第一应用特权304中的字段。
表1000还包括定义什么实体可以加载相应的应用的第六字段1012。在所示示例中,第六字段1012指示第一应用可以由第一主机加载。因此,控制器可以许可第一主机加载第一应用的请求,但是否决来自其他实体的加载第一应用的请求。类似地,第六字段1012指示第二应用可以由第一应用加载。第六字段1012可以对应于第一应用特权304中的字段。
表1000还包括定义什么实体可以执行相应的应用的第七字段1014。在所示示例中,第七字段1014指示第一应用可以由第一主机执行。因此,控制器可以许可第一主机执行第一应用的请求,但是否决来自其他实体的执行第一应用的请求。类似地,第七字段1014指示第二应用可以由第一应用执行。第七字段1014可以对应于第一应用特权304中的字段。
表1000还包括定义相应的应用具有什么授权级别的第八字段1016。在所示示例中,第八字段1016指示第一应用具有管理员级别授权级别。因此,控制器可以许可来自第一应用的、与管理员级别满足的授权级别相关联的请求。类似地,第八字段1016指示第二应用具有普通用户授权级别。因此,控制器可以许可来自第二应用的、与普通用户级别满足的授权级别相关联的请求。尽管示出了2个授权级别,但是根据本公开的实施例不限于2个授权级别。第八字段1016可以对应于第一应用特权304中的字段。
因此,图10示出了可能与应用相关联的各种权利和特权。响应于来自一个或多个实体(例如,主机102、在处理设备108上执行的应用或其组合)的一个或多个命令(例如,命令302、命令402、命令502、命令602、命令702或其组合),控制器(例如,控制器106)可以将这些权利和特权存储在存储器(例如,存储器105或其他位置)中。响应于确定发出命令的实体具有指定授权级别,控制器106可以基于命令来选择性地更新权利和特权。例如,控制器106可以基于来自具有管理员级别授权的实体而不是来自其他实体的命令来更新权利和特权。尽管示出了表,但是应该注意,特权可以以其他数据结构来存储。此外,在各种示例中,特权可以包括比图10所示更多或更少的字段。此外,本公开不限于所示的应用。根据本公开的其他示例包括不同数量的应用。此外,在一些示例中,表1000中所示的数据可以以一种以上的数据结构来存储。
图11是示出与程序插槽相关联的信息的图1100。图1100包括在处理设备(例如,处理设备108)中可用的插槽的行。每个行都有指示相应插槽的属性的若干个字段。在所示示例中,图1100包括指示相应的插槽是否被预留(以及该插槽被预留给什么应用)的第一字段1102。在图11的示例中,第一插槽的第一字段1102指示第一插槽未被预留。相反,第二插槽的第一字段1102指示第二插槽被预留给第一应用。因此,控制器(例如,控制器106)可以基于图1100来将任何应用加载到第一插槽中,但是仅将第一应用加载到第二插槽中。第一字段1102可以对应于关联204。
图1100还包括标识当前被加载到相应插槽中的应用的第二字段1104。在图11的示例中,第一插槽的第二字段1104指示第二应用被加载到第一插槽中。相反,第二插槽的第二字段1104指示第二插槽是空的。控制器可以在将应用加载到插槽中时以及从插槽中移除应用时更新第二字段1104。
图1100还包括标识预留相应插槽所需的授权级别的第三字段1106。在图11的示例中,第一插槽和第二插槽的第三字段1106指示第一插槽和第二插槽可以由具有满足管理员级别的授权级别(例如,管理员级别或更高级别)的实体预留。控制器可以在(例如,主机,诸如主机102)创建插槽时更新第三字段1106。控制器(例如,控制器106)可以基于插槽的第三字段1106选择性地许可命令(例如,命令202)来预留插槽(例如,第一程序插槽110)。
尽管示出了表,但是应当注意,插槽信息可以以其他数据结构来存储。此外,在各种示例中,插槽信息可以包括比图11所示更多或更少的字段。此外,本公开不限于所示的插槽。根据本公开的其他示例包括不同数量的插槽。此外,在一些示例中,图1100中所示的数据可以以一种以上的数据结构来存储。
参考图12,示出了示出存储程序插槽和应用之间的关联的方法1200的流程图。方法1200可以由计算存储设备的控制器(例如,控制器106)来执行。方法1200包括在1202接收为应用预留插槽的命令。例如,控制器106可以接收将第一程序插槽110预留给第一应用208的命令202。
方法1200还包括在1204确定命令是否来自具有发出命令的授权的实体。例如,控制器106可以通过确定是否存在用于预留第一程序插槽110的规定授权级别以及发出命令202的实体是否具有该授权级别,来确定发出命令202的实体是否具有发出预留第一程序插槽110的命令的授权。控制器106可以通过在类似于图1100中描绘的数据结构的数据结构中查找第一程序插槽110并确定与第一程序插槽110相对应的行中的第三字段1106是否指示发出针对第一程序插槽110的预留命令所需的授权级别,来确定第一程序插槽110是否具有用于预留第一程序插槽的规定授权级别。数据结构可以被存储在存储器105中或被存储在其他地方。控制器106可以通过在数据结构(诸如在(针对应用的)表1000中或类似的主机数据结构中描绘的数据结构)中查找发出命令202的实体,来确定发出命令202的实体的授权级别。如图10所示,数据结构的第八字段1016指示授权级别。
响应于确定实体不具有发出命令的授权,方法1200包括在1206拒绝命令。例如,控制器106可以响应于确定发出命令202的实体不具有发出命令202的授权,向发出命令202的实体(例如,主机102或应用)发出拒绝消息。可替代地,控制器106可以简单地忽略命令202,而不发送拒绝消息。
响应于确定实体确实具有发出命令的授权,方法1200包括在1208存储程序插槽和应用之间的关联。例如,控制器106可以存储指示第一程序插槽110被预留给第一应用208的关联204。关联204可以被存储在类似于图1100中描绘的数据结构的数据结构中(例如,在第一字段1102中)。
因此,图12示出了如何为应用预留插槽。图13是示出选择性地将应用加载到插槽中并执行该应用的方法1300的流程图。
方法1300包括在1302接收将应用加载到插槽中的请求。例如,控制器106可以接收将第一应用208加载到第一程序插槽110中的命令206。
方法1300包括在1304确定请求是否来自具有发出请求的授权的实体。例如,控制器106可以通过确定是否存在用于加载第一应用208的规定授权级别或指定实体、以及发出命令206的实体是否具有授权级别或对应于指定实体,来确定发出命令206的实体是否具有加载第一应用208的授权。控制器106可以通过在类似于表1000中描述的数据结构的数据结构中查找第一应用208、并确定与第一应用208相对应的行中的第六字段1012是否指示发出针对第一应用208的加载命令所需的规定实体或授权级别,来确定第一应用208是否具有规定授权级别或指定实体。数据结构可以被存储在存储器105中或被存储在其他地方。控制器106可以通过在数据结构(诸如在(针对应用的)表1000中或类似的主机数据结构中描绘的数据结构)中查找发出命令206的实体来确定发出命令206的实体的授权级别。如图10所示,数据结构的第八字段1016指示授权级别。此外,在实体对应于应用的情况下,控制器106可以通过检查表1000中所示的数据结构的第四字段1008,来确定应用是否具有引导特权。不具有引导特权或者具有被限制到与命令206中规定的应用不匹配的特定应用的引导特权的应用可能不被授权发出命令206。
方法1300还包括在1306,响应于确定实体未被授权发出请求,拒绝该请求。例如,控制器106可以响应于确定发出命令206的实体不具有发出命令206的授权,来向发出命令206的实体(例如,主机102或应用)发出拒绝消息。可替代地,控制器106可以简单地忽略命令206,而不发送拒绝消息。
方法1300还包括在1308,响应于确定实体被授权发出请求来确定插槽是否被预留给另一个应用。例如,控制器106可以通过查阅类似于图1100中描绘的数据结构的数据结构来确定第一程序插槽110是否被预留给除第一应用208之外的应用。与第一程序插槽110相关联的第一字段1102可以指示第一程序插槽110是否被预留给另一个应用。
方法1300还包括在1306,响应于确定第一程序插槽110被预留给另一个应用,拒绝请求。例如,响应于确定第一程序插槽110被预留给另一个应用,控制器106可以向发出命令206的实体(例如,主机102或应用)发出拒绝消息212。可替代地,控制器106可以简单地忽略命令206,而不发送拒绝消息。
方法1300还包括在1310,响应于确定程序插槽没有被预留或者被预留给应用,将该应用加载到该插槽中。例如,控制器106可以将第一应用208加载到第一程序插槽110中。加载第一应用208可以包括更新数据结构(诸如图1100中所示的数据结构),以指示第一应用208被加载到第一程序插槽110中。此外,加载第一应用208可以包括将(例如,如表1000中所示的数据结构所示的)权利和特权数据传递给第一应用208。此外,加载第一应用208可以包括下载第一应用208、从存储介质124检索第一应用208或其组合。加载第一应用208还可以包括向处理设备108发送应用数据。
方法1300还包括在1312接收执行应用的命令。例如,控制器106可以接收执行第一应用208的命令。
方法1300包括在1314确定执行应用的命令是否来自具有发出命令的授权的实体。例如,控制器106可以通过确定是否存在用于执行第一应用208的规定授权级别或指定实体、以及发出命令的实体是否具有授权级别或对应于指定实体,来确定发出命令的实体是否具有执行第一应用208的授权。控制器106可以通过在类似于表1000中描述的数据结构的数据结构中查找第一应用208、并确定与第一应用208相对应的行中的第七字段1014是否指示发出针对第一应用208的执行命令所需的规定实体或授权级别,来确定第一应用208是否具有规定授权级别或指定实体。数据结构可以被存储在存储器105中或被存储在其他地方。控制器106可以通过在数据结构(诸如在(针对应用的)表1000中或类似的主机数据结构中描绘的数据结构)中查找发出命令的实体来确定发出命令的实体的授权级别。如图10所示,数据结构的第八字段1016指示授权级别。此外,在实体对应于应用的情况下,控制器106可以通过检查表1000中所示的数据结构的第四字段1008来确定应用是否具有引导特权。不具有引导特权或者具有被限制到与命令206中规定的应用不匹配的特定应用的引导特权的应用可能不被授权发出执行第一应用208的命令。
方法1300还包括在1306,响应于确定第一程序插槽110被预留给另一个应用,拒绝命令。例如,控制器106可以响应于确定发出执行第一应用208的命令的实体(例如,主机102或应用)未被授权执行第一应用208,向该实体发出拒绝消息。可替代地,控制器106可以简单地忽略命令,而不发送拒绝消息。
方法1300还包括在1316,响应于确定实体被授权发出执行应用的命令,发起应用的执行。例如,控制器106可以发起第一应用208的执行。发起第一应用208的执行可以包括信令通知处理设备108正在执行第一应用208。
因此,方法1300可以用于在计算存储设备中选择性地加载和执行应用。选择性地加载和执行可以考虑各种方面,诸如授权级别和插槽预留。因此,可以防止未经授权的实体加载应用,并且可以防止经授权的应用使用所有可用的插槽。因此,可以保证重要的应用有可用的插槽。
参考图14,示出了用于设置与应用相关联的权利或特权的方法1400的流程图。方法1400包括在1402接收将权利或特权与应用相关联的命令。例如,控制器106可以接收为第一应用设置应用特权的命令302。命令302可以对应于许可在特定程序插槽上执行的特权的命令(例如,命令402)、许可应用访问存储介质124上的数据的命令(例如,命令502)、向应用许可引导特权的命令(例如,命令602)、许可应用访问存储器105的一部分的命令(例如,命令702)、设置哪个实体/授权级别可以加载应用的命令、设置哪个授权级别/实体可以执行应用的命令、设置应用的授权级别的命令或其组合。
方法1400还包括在1404确定发出命令的实体是否被授权发出命令。例如,控制器106可以确定发出命令302的实体是否具有存储第一应用特权304的授权。控制器106通过检查实体的授权级别并将该授权级别与目标授权级别进行比较来确定该实体是否具有授权。控制器106可以通过在数据结构(诸如在(针对应用的)表1000中或类似的主机数据结构中描绘的数据结构)中查找发出命令302的实体来确定发出命令302的实体的授权级别。如图10所示,数据结构的第八字段1016指示授权级别。目标授权级别可以是与命令302中规定的资源相关联的授权级别。例如,虚拟存储器空间可以具有特定的授权级别。
方法1400还包括在1406响应于确定实体不具有发出命令的权限,拒绝命令。例如,控制器106可以响应于确定发出命令302的实体(例如,主机102或应用)未被授权,向该实体发出拒绝消息。可替代地,控制器106可以简单地忽略命令,而不发送拒绝消息。
方法1400还包括在1408响应于确定实体被授权,存储应用和权利或特权之间的关联。例如,控制器106可以将第一应用特权304存储在存储器105中。存储第一应用特权304可以包括更新数据结构,诸如表1000中描绘的数据结构。
参考图15,示出了示出选择性地许可应用访问资源的方法1500的流程图。方法1500包括在1502从在计算存储设备上执行的应用接收访问资源的命令。例如,控制器106可以从第一应用506接收对第一数据126的请求508。作为另一个示例,控制器106可以从第一应用706接收访问第一存储器空间708的请求。
方法1500还包括在1504确定发出命令的实体是否被授权发出命令。例如,控制器106可以通过在类似于表1000中描绘的数据结构的数据结构中查找第一应用506、并确定相应的第二字段1004是否许可对第一数据126的访问(或特定类型的访问),来确定第一应用506是否可以对第一数据126进行访问(或特定类型的访问)。类似地,控制器106可以通过确定相应的第三字段1006是否许可对第一存储器空间708的访问(或特定类型的访问)来确定第一应用706是否可以对第一存储器空间708进行访问(或特定类型的访问)。
方法1500还包括在1506响应于确定实体不具有发出命令的权限,拒绝命令。例如,响应于确定第一应用506未被授权访问第一数据126(或第一存储器空间708),控制器106可以向第一应用506(或第一应用706)发出拒绝消息。可替代地,控制器106可以简单地忽略命令,而不发送拒绝消息。
方法1500还包括在1508响应于确定应用被授权,许可对资源的访问。例如,响应于确定第一应用506被授权访问第一数据126,控制器106可以促进对第一数据126的访问(例如,转发命令、转换命令等)。类似地,控制器106可以促进第一应用706对第一存储器空间708的访问。
因此,图14和图15示出了用于设置与在计算存储设备上运行的应用相关联的特权并实施该特权的方法。这些方法可以阻止一个租户的应用访问被分配给另一个租户的资源。
某些实施例可以用硬件、固件和软件之一或其组合来实现。其他实施例也可以被实现为存储在计算机可读存储设备上的指令,该指令可以被至少一个处理器读取和执行以执行本文所描述的操作。计算机可读存储设备可以包括用于以机器(例如,计算机)可读的形式存储信息的任何非暂时性存储机制。例如,计算机可读存储设备可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备以及其他存储设备和介质。
词语“示例性”在本文中用于表示“用作示例、实例或说明”。本文中被描述为“示例性”的任何实施例不一定被解释为比其他实施例更优或有利。本文所使用的术语“计算设备”、“用户设备”、“通信站”、“站”、“手持式设备”、“移动设备”、“无线设备”和“用户设备(UE)”是指无线通信设备,诸如蜂窝电话、智能电话、平板电脑、上网本、无线终端、膝上型计算机、毫微微小区、高数据速率(High Data Rate,HDR)订户站、接入点、打印机、销售点设备、接入终端或其他个人通信系统(personal communication system,PCS)设备。设备可以是移动的或固定的。
如本文档中使用的,术语“通信”旨在包括发送或接收或者发送和接收两者。在描述由一个设备发送并由另一个设备接收的数据的组织、但对于侵犯权利要求而言需要仅那些设备之一的功能时,这在权利要求中可以特别有用的。类似地,在只要求保护那些设备之一的功能时,两个设备之间的双向数据交换(在交换期间两个设备都发送和接收)可以被描述为“通信传送”。本文中相对于无线通信信号使用的术语“通信传送”包括发送无线通信信号和/或接收无线通信信号。例如,能够传送无线通信信号的无线通信单元可以包括将无线通信信号发送到至少一个其他无线通信单元的无线发送器、和/或从至少一个其他无线通信单元接收无线通信信号的无线通信接收器。
一些实施例可以与各种设备和系统结合使用,各种设备和系统例如,个人计算机(PC)、桌上型计算机、移动计算机、膝上型计算机、笔记本计算机、平板计算机、服务器计算机、手持式计算机、手持式设备、个人数字助理(PDA)设备、手持式PDA设备、机载设备、外置设备、混合设备、车载设备、非车载设备、移动或便携式设备、消费者设备、非移动或非便携式设备、无线通信站、无线通信设备、无线接入点(AP)、有线或无线路由器、有线或无线调制解调器、视频设备、音频设备、音频-视频(A/V)设备、有线或无线网络、无线局域网、无线视频局域网(WVAN)、局域网(LAN)、无线LAN(WLAN)、个人区域网(PAN)、无线PAN(WPAN)等。
一些实施例可以结合单向和/或双向无线电通信系统、蜂窝无线电电话通信系统、移动电话、蜂窝电话、无线电话、个人通信系统(PCS)设备、合并无线通信设备的PDA设备、移动或便携式全球定位系统(GPS)设备、合并GPS接收器或收发器或者芯片的设备、合并射频识别(RFID)元件或芯片的设备、多输入多输出(MIMO)收发器或设备、单输入多输出(SIMO)收发器或设备、多输入单输出(MISO)收发器或设备、具有一个或多个内部天线和/或外部天线的设备、数字视频广播(DVB)设备或系统、多标准无线电设备或系统、有线或无线手持式设备(例如智能电话、无线应用协议(WAP)设备)等来使用。
一些实施例可以与遵循一个或多个无线通信协议的一种或多种类型的无线通信信号和/或系统结合使用,该一个或多个无线通信协议例如,射频(RF)、红外(IR)、频分复用(FDM)、正交FDM(OFDM)、时分复用(TDM)、时分多址(TDMA)、扩展TDMA(E-TDMA)、通用分组无线电服务(GPRS)、扩展GPRS、码分多址(CDMA)、宽带CDMA(WCDMA)、CDMA 2000、单载波CDMA、多载波CDMA、多载波调制(MDM)、离散多音(DMT)、蓝牙TM、全球定位系统(GPS)、Wi-Fi、Wi-Max、ZigBeeTM、超宽带(UWB)、全球移动通信系统(GSM)、2G、2.5G、3G、3.5G、4G、第五代(5G)移动网络、3GPP、长期演进(LTE)、高级LTE、GSM演进的增强型数据速率(EDGE)等。其他实施例可以用于各种其他设备、系统和/或网络。
尽管上面已经描述了示例处理系统,但是本文描述的主题和功能操作的实施例可以在其他类型的数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等同物、或者在它们中的一个或多个的组合中实现。
本文描述的主题和操作的实施例可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等同物、或者在它们中的一个或多个的组合中实现。本文描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在计算机存储介质上的计算机程序指令的一个或多个组件,用于由信息/数据处理装置执行或控制信息/数据处理装置的操作。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,其被生成以编码信息/数据,用于到合适的接收器设备的传输,以由信息/数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基底、随机或串行访问存储器阵列或设备或它们中的一个或多个的组合,或被包括在计算机可读存储设备、计算机可读存储基底、随机或串行访问存储器阵列或设备或它们中的一个或多个的组合中。此外,尽管计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个分离的物理组件或介质(例如多个CD、盘或其他存储设备)或包括在一个或多个分离的物理组件或介质中。
本文描述的操作可以被实现为由信息/数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收到的信息/数据执行的操作。
术语“数据处理装置”包含用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、片上系统、或前述中的多个或组合。装置可以包括专用逻辑电路,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
计算机程序(也被称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言来编写,包括编译语言或解释语言、声明性语言或过程性语言,并且其可以以任何形式来部署,包括作为独立程序或作为组件、部件、子例程、对象或适于在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或信息/数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、存储在专用于所讨论的程序的单个文件中、或者存储在多个协同文件中(例如,存储一个或多个组件、子程序或代码部分的文件)。计算机程序可以被部署为在一个计算机上或者位于一个站点或分布在多个站点并通过通信网络互连的多个计算机上执行。
本文描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入信息/数据进行操作并生成输出来执行动作。例如,适于执行计算机程序的处理器包括通用微处理器和专用微处理器两者,以及任何种类的数字计算机的任何一个或多个处理器。一般地,处理器将从只读存储器或随机存取存储器或两者接收指令和信息/数据。计算机的基本元件是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或多个存储器设备。一般地,计算机还将包括或可操作地耦合到用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),以从其接收信息/数据或将信息/数据传送到其或者两者皆有。然而,计算机不需要具有这样的设备。适于存储计算机程序指令和信息/数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或合并在专用逻辑电路中。
为了提供与用户的交互,本文描述的主题的实施例可以在计算机上实现,该计算机具有用于向用户显示信息/数据的显示设备(例如阴极射线管(CRT)或液晶显示器(LCD)监视器),以及用户可以用来向计算机提供输入的键盘和指向设备(例如鼠标或轨迹球)。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从用户的客户端设备上的网络浏览器接收到的请求,将网页发送到该网络浏览器。
本文描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件(例如作为信息/数据服务器)、或包括中间件组件(例如应用服务器)、或包括前端组件(例如具有图形用户界面或网络浏览器的客户端计算机,用户可以通过该图形用户界面或网络浏览器与本文描述的主题的实施例进行交互)、或者一个或多个这样的后端、中间件或前端组件的任意组合。系统的组件可以通过任何形式或介质的数字信息/数据通信(例如通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、外部网络(例如互联网)和对等网络(例如ad hoc对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过运行在各自计算机上的计算机程序产生的,并且彼此之间具有客户端-服务器关系。在一些实施例中,服务器将信息/数据(例如,HTML页)发送到客户端设备(例如,出于向与客户端设备交互的用户显示信息/数据以及从其接收用户输入的目的)。可以在服务器处从客户端设备接收到在客户端设备处生成的信息/数据(例如,用户交互的结果)。
尽管本说明书包含许多具体的实施例细节,但是这些细节不应该被解释为对任何实施例的范围或可能要求保护的内容的限制,而是被解释为对特定实施例所特有的特征的描述。本文在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实现或者以任何合适的子组合实现。此外,尽管特征可以如上被描述为在某些组合中起作用,并且甚至最初是如此要求保护的,但是在一些情况下,可以从组合中删除要求保护的组合中的一个或多个特征,并且要求保护的组合可以指向子组合或子组合的变化。
类似地,尽管在附图中以特定次序描绘了操作,但是这不应该被理解为要求以所示的特定次序或顺序次序执行这些操作、或者要求执行所有示出的操作以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应该被理解为在所有实施例中都需要这种分离,并且应该理解,所描述的程序组件和系统一般可以一起集成到单个软件产品中或者被封装到多个软件产品中。
因此,已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。在一些情况下,权利要求中列举的动作可以以不同的次序来执行,并且仍然获得期望的结果。此外,附图中描绘的过程不一定需要所示的特定次序或顺序次序来获得期望的结果。在某些实施例中,多任务和并行处理可能是有利的。
受益于前述描述和相关附图中给出的教导,这些实施例所属领域的技术人员将会想到本文阐述的公开内容的多个修改和其他实施例。因此,应当理解,实施例不限于所公开的特定实施例,并且修改和其他实施例旨在被包括在所附权利要求的范围内。尽管本文使用了特定的术语,但是它们仅用于一般和描述性的意义,而不是出于限制的目的。

Claims (20)

1.一种由存储设备执行的方法,包括:
在存储设备的控制器处,接收将所述存储设备的处理设备的程序插槽预留给第一应用的命令;
由所述存储设备的控制器存储所述程序插槽和所述第一应用之间的关联;
在所述存储设备的控制器处,接收将所述第一应用加载到所述程序插槽中的请求;
由所述存储设备的控制器基于所述关联和所述请求将所述第一应用加载到所述程序插槽中;以及
在所述存储设备的处理设备处,执行所述程序插槽中的第一应用。
2.根据权利要求1所述的方法,还包括:
在所述存储设备的控制器处,接收将第二应用加载到所述程序插槽中的第二请求;以及
由所述存储设备的控制器基于所述程序插槽和所述第一应用之间的关联拒绝所述第二请求。
3.根据权利要求1所述的方法,其中,加载所述第一应用的请求从在所述处理设备处执行的第二应用被接收。
4.根据权利要求1所述的方法,还包括,在所述存储设备的控制器处,接收将一个或多个权限与所述第一应用相关联的请求,以及存储所述一个或多个权限的指示。
5.根据权利要求4所述的方法,其中,所述一个或多个权限包括将第二应用加载到所述处理设备中的权限。
6.根据权利要求5所述的方法,其中,所述一个或多个权限还指示所述第二应用的一个或多个第二权限。
7.根据权利要求4所述的方法,其中,所述一个或多个权限标识所述第一应用可访问的存储空间。
8.根据权利要求7所述的方法,其中,所述存储空间包括名称空间、文件、逻辑块地址范围或其组合。
9.根据权利要求4所述的方法,其中,所述一个或多个权限标识所述第一应用可访问的存储器的虚拟地址空间。
10.根据权利要求1所述的方法,还包括:
接收禁用所述程序插槽的命令;
从所述程序插槽中清除所述第一应用;以及
拒绝将所述第一应用加载到所述程序插槽中的请求。
11.一种计算存储设备,包括:
处理设备;
存储器;以及
控制器,被配置为:
接收将所述处理设备的程序插槽预留给第一应用的命令;
将所述程序插槽和所述第一应用之间的关联存储在所述存储器中;
接收将所述第一应用加载到所述程序插槽中的请求;
基于所述关联和所述请求将所述第一应用加载到所述程序插槽中;以及
在所述处理设备处,发起所述程序插槽中的第一应用的执行。
12.根据权利要求11所述的计算存储设备,其中,所述控制器还被配置为:
接收将第二应用加载到所述程序插槽中的第二请求;以及
基于所述程序插槽和所述第一应用之间的关联拒绝所述第二请求。
13.根据权利要求11所述的计算存储设备,其中,加载所述第一应用的请求从在所述处理设备处执行的第二应用被接收。
14.根据权利要求11所述的计算存储设备,其中,所述控制器还被配置为接收将一个或多个权限与所述第一应用相关联的请求,以及存储所述一个或多个权限的指示。
15.根据权利要求14所述的计算存储设备,其中,所述一个或多个权限包括将第二应用加载到所述处理设备中的权限。
16.根据权利要求15所述的计算存储设备,其中,所述一个或多个权限还指示所述第二应用的一个或多个第二权限。
17.根据权利要求14所述的计算存储设备,还包括存储介质,其中,所述一个或多个权限标识与所述存储介质相关联并且所述第一应用可访问的存储空间。
18.一种存储指令的计算机可读存储设备,所述指令可由控制器执行以使得:
接收将处理设备的程序插槽预留给第一应用的命令;
将所述程序插槽和所述第一应用之间的关联存储在存储器中;
接收将所述第一应用加载到所述程序插槽中的请求;
基于所述关联和所述请求将所述第一应用加载到所述程序插槽中;以及
在所述处理设备处,发起所述程序插槽中的第一应用的执行。
19.根据权利要求18所述的计算机可读存储设备,其中,所述指令还可由所述控制器执行,使得:
接收将第二应用加载到所述程序插槽中的第二请求;以及
基于所述程序插槽和所述第一应用之间的关联拒绝所述第二请求。
20.根据权利要求18所述的计算机可读存储设备,其中,加载所述第一应用的请求从在所述处理设备处执行的第二应用被接收。
CN202210236183.1A 2021-03-23 2022-03-11 计算存储设备中的安全应用 Pending CN115113809A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163165027P 2021-03-23 2021-03-23
US63/165,027 2021-03-23
US17/492,544 US20220308770A1 (en) 2021-03-23 2021-10-01 Secure applications in computational storage devices
US17/492,544 2021-10-01

Publications (1)

Publication Number Publication Date
CN115113809A true CN115113809A (zh) 2022-09-27

Family

ID=81307441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210236183.1A Pending CN115113809A (zh) 2021-03-23 2022-03-11 计算存储设备中的安全应用

Country Status (5)

Country Link
US (1) US20220308770A1 (zh)
EP (1) EP4064086A1 (zh)
KR (1) KR20220132416A (zh)
CN (1) CN115113809A (zh)
TW (1) TW202238371A (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230112448A1 (en) * 2021-10-12 2023-04-13 Seagate Technology Llc Computational storage drive using fpga implemented interface
US11880568B2 (en) 2021-11-17 2024-01-23 Seagate Technology Llc On demand configuration of FPGA interfaces
US20240143517A1 (en) * 2022-11-01 2024-05-02 Samsung Electronics Co., Ltd. Near storage computation system and methods for data protection
KR20240066845A (ko) * 2022-11-08 2024-05-16 삼성전자주식회사 오프로딩 프로그램을 실행하는 연산 저장 장치 및 이를 포함하는 전자 시스템
KR20240084902A (ko) * 2022-12-07 2024-06-14 삼성전자주식회사 연산 스토리지 장치 및 그 구동 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993018456A1 (en) * 1992-03-13 1993-09-16 Emc Corporation Multiple controller sharing in a redundant storage array
JPH0998375A (ja) * 1995-09-29 1997-04-08 Sony Corp デジタル画像信号の記録方法、記録装置及び記録再生装置
US6782550B1 (en) * 2000-06-16 2004-08-24 Minerva Networks, Inc. Program guide with a current-time bar
US7088910B2 (en) * 2001-02-09 2006-08-08 Microsoft Corporation Optimizing use of storage space in a video data recording system
JP2002351680A (ja) * 2001-05-29 2002-12-06 Matsushita Electric Ind Co Ltd アプリケーション管理装置とアプリケーション管理システム
JP2004102698A (ja) * 2002-09-10 2004-04-02 Ntt Docomo Inc ダウンロード方法、領域管理装置、携帯通信端末、プログラムおよび記録媒体
US7380087B2 (en) * 2004-08-25 2008-05-27 Microsoft Corporation Reclaiming application isolated storage
JP4361894B2 (ja) * 2005-09-15 2009-11-11 株式会社エヌ・ティ・ティ・ドコモ 外部メモリ管理装置、及び外部メモリ管理方法
JP4952308B2 (ja) * 2007-03-09 2012-06-13 日本電気株式会社 メモリ共有システム、方法、及び、プログラム
US8522249B2 (en) * 2007-06-27 2013-08-27 Bluestreak Technology, Inc. Management of software implemented services in processor-based devices
US8433296B2 (en) * 2009-05-01 2013-04-30 Ryan Hardin Exclusive delivery of content within geographic areas
US9055080B2 (en) * 2009-12-14 2015-06-09 Citrix Systems, Inc. Systems and methods for service isolation
US9426145B2 (en) * 2012-02-17 2016-08-23 Blackberry Limited Designation of classes for certificates and keys
US9271269B2 (en) * 2012-09-28 2016-02-23 Motorola Solutions, Inc. Method and system for assigning slot reservations to subscriber radios in a telecommunications system
JP5997110B2 (ja) * 2013-08-02 2016-09-28 株式会社日立製作所 計算機システム、デバイスドライバインストール方法
US9747218B2 (en) * 2015-03-20 2017-08-29 Mill Computing, Inc. CPU security mechanisms employing thread-specific protection domains
US11144347B2 (en) * 2019-08-20 2021-10-12 Microsoft Technology Licensing, Llc Protection domains for processes in shared address space

Also Published As

Publication number Publication date
TW202238371A (zh) 2022-10-01
KR20220132416A (ko) 2022-09-30
US20220308770A1 (en) 2022-09-29
EP4064086A1 (en) 2022-09-28

Similar Documents

Publication Publication Date Title
CN115113809A (zh) 计算存储设备中的安全应用
US8959657B2 (en) Secure data management
US8464319B2 (en) Resource access based on multiple scope levels
US9355261B2 (en) Secure data management
CN107688485B (zh) 用于对虚拟化应用程序的基于策略的访问的方法和系统
US10165007B2 (en) Securing data usage in computing devices
US20140164544A1 (en) Enabling a computing device to utilize another computing device
US9183391B2 (en) Managing device driver cross ring accesses
US10831915B2 (en) Method and system for isolating application data access
US20240143203A1 (en) Systems and methods for storage device resource management
US11068614B2 (en) System-level data security based on environmental properties
US9330016B2 (en) Systems and methods for managing read-only memory
EP3249540B1 (en) Method for writing multiple copies into storage device, and storage device
GB2515736A (en) Controlling access to one or more datasets of an operating system in use
US20190334919A1 (en) Flexible resource access control
EP2766845A1 (en) Managing policies
KR20170112855A (ko) 스토리지 디바이스에서 논리 블록 어드레싱 액세스 퍼미션을 정의하는 방법 및 시스템
CN115758330A (zh) 沙箱应用权限管控策略的配置方法及访问权限的管控方法
CN117688582A (zh) 面向Kubernetes集群的多租户资源配置方法和多租户管理方法

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