TW202238371A - 用於虛擬計算儲存設備的方法及計算儲存設備 - Google Patents

用於虛擬計算儲存設備的方法及計算儲存設備 Download PDF

Info

Publication number
TW202238371A
TW202238371A TW111108799A TW111108799A TW202238371A TW 202238371 A TW202238371 A TW 202238371A TW 111108799 A TW111108799 A TW 111108799A TW 111108799 A TW111108799 A TW 111108799A TW 202238371 A TW202238371 A TW 202238371A
Authority
TW
Taiwan
Prior art keywords
application
controller
slot
command
storage device
Prior art date
Application number
TW111108799A
Other languages
English (en)
Inventor
蓋亞蒂瑞 凡卡塔拉曼
維許瓦那斯 馬蘭
馬修 肖恩 布萊森
星旭 柳
Original Assignee
南韓商三星電子股份有限公司
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 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW202238371A publication Critical patent/TW202238371A/zh

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
    • 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/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
    • 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)
  • Nitrogen Condensed Heterocyclic Rings (AREA)
  • Furan Compounds (AREA)
  • Stored Programmes (AREA)

Abstract

一種方法包括在儲存設備的控制器處接收將所述儲存設備的處理設備的程式槽保留給應用的命令。所述方法更包括由所述儲存設備的所述控制器儲存所述程式槽與所述應用之間的關聯。所述方法更包括在所述儲存設備的所述控制器處接收將所述應用加載至所述程式槽中的請求。所述方法更包括由所述儲存設備的所述控制器基於所述關聯及所述請求而將所述應用加載至所述程式槽中。所述方法更包括在所述儲存設備的所述處理設備處執行所述程式槽中的所述應用。

Description

計算存儲設備中的安全應用
本揭露大體而言是有關於用於虛擬計算儲存設備的系統及方法。
計算儲存設備提供計算功能及資料儲存。據以,主機設備可將資料儲存於計算儲存設備處且將計算卸載至計算儲存設備。在一些實施方案中,可在計算儲存設備處執行各種程式。然而,將可執行程式引入至計算儲存設備可能會給計算儲存設備的組件帶來增加的安全風險。
本背景部分中揭露的以上資訊僅用於增強對本揭露的背景的理解,且因此以上資訊可能包含不構成先前技術的資訊。
在各種實施例中,本文中所闡述者包括與虛擬計算儲存設備相關的系統、方法及裝置。
一種方法包括在儲存設備的控制器處接收將所述儲存設備的處理設備的程式槽(program slot)保留給應用的命令。所述方法更包括由所述儲存設備的所述控制器儲存所述程式槽與所述應用之間的關聯。所述方法更包括在所述儲存設備的所述控制器處接收將所述應用加載至所述程式槽中的請求。所述方法更包括由所述儲存設備的所述控制器基於所述關聯及所述請求而將所述應用加載至所述程式槽中。所述方法更包括在所述儲存設備的所述處理設備處執行所述程式槽中的所述應用。
一種計算儲存設備包括:處理設備;記憶體;以及控制器。所述控制器被配置成接收將所述處理設備的程式槽保留給應用的命令。所述控制器被進一步配置成將所述程式槽與所述應用之間的關聯儲存於所述記憶體中。所述控制器被進一步配置成接收將所述應用加載至所述程式槽中的請求。所述控制器被進一步配置成基於所述關聯及所述請求而將所述應用加載至所述程式槽中。所述控制器被進一步配置成啟動所述程式槽中的所述應用在所述處理設備處的執行。
一種電腦可讀取儲存設備儲存可由控制器執行的指令,以接收將處理設備的程式槽保留給應用的命令。所述指令進一步可被執行以將所述程式槽與所述應用之間的關聯儲存於記憶體中。所述指令進一步可被執行以接收將所述應用加載至所述程式槽中的請求。所述指令進一步可被執行以基於所述關聯及所述請求而將所述應用加載至所述程式槽中。所述指令進一步可被執行以啟動所述程式槽中的所述應用在所述處理設備處的執行。
在隨附圖式及以下說明中闡述本文中所闡述的標的物的一或多個實施例的細節。根據說明、圖式及申請專利範圍,標的物的其他特徵、態樣及優點將變得顯而易見。
現在將在下文中參照隨附圖式更全面地闡述本揭露的各種實施例,在隨附圖式中示出一些實施例,但非所有實施例。實際上,本揭露可以諸多不同的形式來實施且不應被解釋為限於本文中闡述的實施例;相反,提供該些實施例是為了使此揭露內容將滿足適用的法律要求。除非另有指示,否則用語「或」在本文中以替代及結合兩種意義使用。用語「例示性的」及「示例性的」被用作不具有品質水準指示的實例。相同的編號始終指代相同的元件。各所述圖中的箭頭繪示雙向資料流及/或雙向資料流能力。用語「路徑」、「途徑」及「路線」在本文中可互換使用。
本揭露的實施例可以各種方式(包括作為包括製造物品的電腦程式產品)實施。電腦程式產品可包括儲存應用、程式、程式組件、腳本、源代碼、程式代碼、目標代碼、位元組代碼、編譯代碼、解釋代碼、機器代碼、可執行指令及/或類似物(本文中亦稱為可執行指令、用於執行的指令、電腦程式產品、程式代碼及/或本文中可互換使用的相似用語)的非暫時性電腦可讀取儲存媒體。此種非暫時性電腦可讀取儲存媒體包括所有電腦可讀取媒體(包括揮發性媒體及非揮發性媒體)。
在一個實施例中,非揮發性電腦可讀取儲存媒體可包括軟碟、軟性碟、硬碟、固態儲存體(solid-state storage,SSS)(例如固態驅動機(solid-state drive,SSD))、固態卡(solid state card,SSC)、固態組件(solid state component,SSM)、企業快閃驅動機(enterprise flash drive)、磁帶或任何其他非暫時性磁性媒體及/或類似物。非揮發性電腦可讀取儲存媒體亦可包括打孔卡(punch card)、紙帶、光學標記片(optical mark sheet)(或具有孔洞圖案或其他光學可辨別記號的任何其他實體媒體)、光碟唯讀記憶體(compact disc read only memory,CD-ROM)、可重寫光碟(compact disc-rewritable,CD-RW)、數位多功能碟(digital versatile disc,DVD)、藍光碟(Blu-ray disc,BD)、任何其他非暫時性光學媒體及/或類似物。此種非揮發性電腦可讀取儲存媒體亦可包括唯讀記憶體(read-only memory,ROM)、可程式化唯讀記憶體(programmable read-only memory,PROM)、可抹除可程式化唯讀記憶體(erasable programmable read-only memory,EPROM)、電性可抹除可程式化唯讀記憶體(electrically erasable programmable read-only memory,EEPROM)、快閃記憶體(例如串列、反及、反或、及/或類似物)、多媒體記憶卡(multimedia memory card,MMC)、安全數位(secure digital,SD)記憶卡、智慧媒體卡、緊湊快閃(CompactFlash,CF)卡、記憶棒及/或類似物。此外,非揮發性電腦可讀取儲存媒體亦可包括導電橋接隨機存取記憶體(conductive-bridging random access memory,CBRAM)、相變隨機存取記憶體(phase-change random access memory,PRAM)、鐵電隨機存取記憶體(ferroelectric random-access memory,FeRAM)、非揮發性隨機存取記憶體(non-volatile random-access memory,NVRAM)、磁阻式隨機存取記憶體(magnetoresistive random-access memory,MRAM)、電阻式隨機存取記憶體(resistive random-access memory,RRAM)、矽-氧化物-氮化物-氧化物-矽記憶體(Silicon-Oxide-Nitride-Oxide-Silicon memory,SONOS)、浮置接面閘極隨機存取記憶體(floating junction gate random access memory,FJG RAM)、馬陸記憶體(Millipede memory)、跑道記憶體(racetrack memory)及/或類似物。
在一個實施例中,揮發性電腦可讀取儲存媒體可包括隨機存取記憶體(random access memory,RAM)、動態隨機存取記憶體(dynamic random access memory,DRAM)、靜態隨機存取記憶體(static random access memory,SRAM)、快速頁面模式動態隨機存取記憶體(fast page mode dynamic random access memory,FPM DRAM)、擴展資料輸出動態隨機存取記憶體(extended data-out dynamic random access memory,EDO DRAM)、同步動態隨機存取記憶體(synchronous dynamic random access memory,SDRAM)、雙倍資料速率同步動態隨機存取記憶體(double data rate synchronous dynamic random access memory,DDR SDRAM)、雙倍資料速率類型二同步動態隨機存取記憶體(double data rate type two synchronous dynamic random access memory,DDR2 SDRAM)、雙倍資料速率類型三同步動態隨機存取記憶體(double data rate type three synchronous dynamic random access memory,DDR3 SDRAM)、蘭巴斯(Rambus)動態隨機存取記憶體(Rambus dynamic random access memory,RDRAM)、雙電晶體RAM(Twin Transistor RAM,TTRAM)、閘流體RAM(Thyristor RAM,T-RAM)、零位電容器(Zero-capacitor,Z-RAM)、蘭巴斯直插記憶體組件(Rambus in-line memory component,RIMM)、雙直插記憶體組件(dual in-line memory component,DIMM)、單直插記憶體組件(single in-line memory component,SIMM)、視訊隨機存取記憶體(video random access memory,VRAM)、快取記憶體(包括各種層階)、快閃記憶體、暫存器記憶體及/或類似物。應理解,在實施例被闡述為使用電腦可讀取儲存媒體的情況下,其他類型的電腦可讀取儲存媒體可取代上述電腦可讀取儲存媒體,或者除上述電腦可讀取儲存媒體以外,亦可使用其他類型的電腦可讀取儲存媒體。
應領會,本揭露的各種實施例亦可被實施成方法、裝置、系統、計算設備、計算實體及/或類似物。因此,本揭露的實施例可採取執行儲存於電腦可讀取儲存媒體上的指令以實行某些步驟或操作的裝置、系統、計算設備、計算實體及/或類似物的形式。因此,本揭露的實施例亦可採取完全硬體實施例、完全電腦程式產品實施例及/或包括電腦程式產品與實行特定步驟或操作的硬體的組合的實施例的形式。
以下參照方塊圖及流程圖例示來闡述本揭露的實施例。因此,應理解,方塊圖的每一方塊及流程圖例示可以電腦程式產品、完全硬體實施例、硬體與電腦程式產品的組合及/或對電腦可讀取儲存媒體施行指令、操作、步驟及可互換使用的相似措詞(例如,可執行指令、用於執行的指令、程式代碼及/或類似物)以用於執行的裝置、系統、計算設備、計算實體及/或類似物的形式來實施。舉例而言,可依序實行對代碼的擷取、加載及執行,進而使得一次擷取、加載及執行一個指令。在一些示例性實施例中,可並行地實行擷取、加載及/或執行,進而使得一起擷取、加載及/或執行多個指令。因此,此種實施例可產生實行方塊圖及流程圖例示中規定的步驟或操作的經特定配置的機器。據以,方塊圖及流程圖例示支援用於實行規定指令、操作或步驟的實施例的各種組合。
如本文中所使用的計算儲存設備指代支援計算任務的儲存設備。舉例而言,計算儲存設備可包括儲存元件(例如,非揮發性記憶體,比如快閃記憶體、硬碟驅動機等)及計算元件(例如,中央處理器單元(central processor unit,CPU)、圖形處理器單元(graphics processor unit,GPU)、現場可程式化閘陣列(field programmable gate array,FPGA)、特殊應用積體電路(application specific integrated circuit,ASIC)(例如張量處理單元)、處理器內核等)且被配置成支援資料在計算元件處的儲存及計算任務在計算元件處的執行。據以,計算儲存設備可向計算儲存客戶端(例如,計算設備)提供儲存能力,且可支援將計算任務自計算儲存客戶端卸載至計算儲存設備。
本文中揭露用於增加計算儲存設備中的安全性的系統及方法。圖1示出包括與主機102進行通訊的計算儲存設備104的示例性系統100。計算儲存設備104包括控制器106、處理設備108、記憶體105及儲存媒體124。控制器106可包括ASIC、FPGA、中央處理器單元或被配置成處理與儲存媒體124相關聯的輸入及輸出操作的其他處理單元。舉例而言,因應於來自主機102的寫入命令,控制器106可自主機102讀取資料且將所述資料寫入至儲存媒體中。作為另一實例,因應於來自主機102的讀取命令,控制器106可自儲存媒體124讀取資料且將所述資料寫入至主機102。除處理輸入及輸出操作以外,控制器106可處理與計算任務相關聯的命令。與計算任務相關聯的該些命令可包括將程式加載至處理設備108中的命令、對與此種程式相關聯的一或多個許可進行設定的命令或者其組合。
儲存媒體124可包括非揮發性電腦可讀取儲存媒體、揮發性電腦可讀取儲存媒體或其組合。在所示實例中,儲存媒體124儲存第一資料126及第二資料128。第一資料126及第二資料128可對應於名稱空間(namespace)、檔案、頁面、邏輯區塊位址(logical block address,LBA)範圍、其他資料單元或其組合。儘管儲存媒體124被示出為具有兩個資料單元,然而應注意,儲存媒體124可包括不同數目的資料單元。
記憶體105可包括揮發性電腦可讀取儲存媒體、非揮發性電腦可讀取儲存媒體或其組合。記憶體105被配置成作為操作記憶體來進行操作,且儲存用於在處理設備108處執行的程式的程式資料。在一些實施方案中,記憶體105與儲存媒體124可藉由資料單元在相應設備中如何被定址來區分。舉例而言,記憶體105可為位元組可定址的(byte addressable),而儲存媒體124可為區塊可定址的(block addressable)。在一些實施方案中,計算儲存設備104可包括用於長期儲存以及用作操作記憶體的單一電腦可讀取儲存媒體。
處理設備108可包括ASIC、FPGA、中央處理器單元、圖形處理器單元、其他類型的處理器單元或其組合。處理設備108被配置成執行加載至程式槽中的應用。系統100的處理設備108被示出為具有第一程式槽110、第二程式槽120及第三程式槽122。其他程式槽數目亦是可能的。程式槽110、120、122可對應於處理設備108的能力的邏輯表示,且處理設備108可執行多達所述程式槽數目的程式數目。該些邏輯表示可由控制器106來維持。對應於每一程式槽110、120、122的元資料(metadata)可由控制器106儲存於記憶體105中、儲存媒體124中或其組合中。對應於所述程式槽的元資料可指示槽辨識符、保留給所述槽的程式、與所述槽相關聯的一或多個許可或者其組合。與所述槽相關聯的所述一或多個許可可辨識被授權將程式加載至所述槽中、執行所述槽中的程式或者進行其組合的實體(例如,主機、程式等)。處理設備108中所包括的程式槽數目可為可配置的,或者可基於處理設備108的一些下層硬體特徵(underlying hardware feature)。舉例而言,程式槽數目可基於處理設備108或另一硬體特徵中所包括的核心數目。在一些實施方案中,每一程式槽對應於記憶體(例如記憶體105)中的記憶體位址或範圍,且將應用加載至程式槽中包括將所述應用(或例如指針(pointer)等對所述應用的引用)儲存於對應的位址或範圍中以供處理設備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中的多租戶環境(multi-tenant environment)等各種背景下可為有用的。另外,控制器106可管理與一個程式將程式加載至程式槽110、120、122中的一者且啟動執行相關聯的權利。據以,計算儲存設備104可在維持安全性的同時支援相對複雜的工作流程。一種此種複雜工作流程的一個實例是其中檢查總和程式(checksum program)選擇性地加載及執行修復程式(repair program)的工作流程。在一些實施方案中,控制器106根據快速非揮發性記憶體(Non-Volatile Memory express,NVMe)協定來進行操作。
應注意,儘管計算儲存設備104被闡述為實體設備,然而計算儲存設備104及/或其一或多個組件可對應於由一或多個下層實體設備提供的虛擬設備。舉例而言,在計算系統中執行的超管理器(hypervisor)可向主機102提供計算儲存設備104。主機102可同樣對應於實體計算設備或虛擬計算設備。
圖2A至圖2C是示出支援槽保留功能的控制器106的系統100的圖。在圖2A中所示實例中,主機102向計算儲存設備104發送將第一程式槽110保留給第一應用208(示出於圖2B中)的命令202。控制器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藉由查閱與第一程式槽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可如何將程式槽保留給應用。此種保留可確保優先權應用(priority application)在需要時有資源來執行。在其中多個實體將應用加載至處理設備108中的情況下(例如,在多租戶系統中),可防止一個租戶消耗可用程式槽中的所有者且阻擋另一租戶的重要應用。
除對保留及與程式槽相關聯的其他元資料進行設定以外,系統100亦支援對與應用相關聯的特權進行設定。圖3繪示其中主機102對應用的應用特權進行設定的實例。在圖3所示實例中,主機102發送對用於第一應用的應用特權進行設定的命令302。基於命令302,控制器106將第一應用特權304儲存於記憶體105中。第一應用特權304可指示第一應用的特權及/或其他實體相對於第一應用的特權。參照圖4至圖7及圖9更詳細地闡述應用特權。
儘管圖3繪示源自主機102的命令302,然而在一些實例中,其他實體(例如,在處理設備108上執行的應用)可發出對應用特權進行設定的命令。因應於對應用特權進行設定的命令(例如命令302),控制器106可判斷發送所述命令的實體是否具有對應用特權進行設定的權限。舉例而言,控制器106可因應於自具有管理者層階特權的實體接收到命令來對應用的特權進行設定。作為另一實例,控制器可因應於自與應用相關聯的擁有者接收到命令來對應用的特權進行設定。可在儲存於記憶體105中或儲存於另一位置中的與應用相關聯的元資料中辨識所述應用的擁有者。因應於確定出發出對應用特權進行設定的命令的實體未被授權,控制器106可拒絕所述命令。
應注意,控制器106可將第一應用特權304儲存於除記憶體105以外的其他位置中。舉例而言,控制器106可將第一應用特權304儲存於儲存媒體124、位於處理設備108內部的記憶體、位於控制器106內部的記憶體等中。
圖4A繪示其中主機102准予第一應用在第一程式槽110中執行的特權的實例。除將槽保留給特定應用以外,系統100亦可支援將應用限於一或多個特定槽。在所示實例中,主機102發送准予第一應用407(示出於圖4B中)在第一程式槽110中執行的特權的命令402。命令402可對應於圖3所示命令302。因應於命令402,控制器106可儲存第一應用407與第一程式槽110之間的關聯404。關聯404可對應於第一應用特權304。
控制器106可基於關聯404選擇性地容許及不容許將第一應用407加載至程式槽中的請求。舉例而言,在圖4B中,主機102發送將第一應用407加載至第一程式槽110中的請求406。基於指示第一應用407被允許在第一程式槽110中執行的關聯404,控制器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可基於實體加載第一應用407的特權來選擇性地處理請求406。
因此,圖4A至圖4C示出系統100支援將應用限於指定程式槽。據以,特定程式可不被加載至多於所期望數目的槽中,且程式槽資源可得到保護。
除將應用限於一或多個所定義的程式槽以外,系統100亦可支援限制應用對儲存於儲存媒體124上的資料進行存取的能力。圖5A至圖5C繪示其中系統100限制對儲存媒體124的存取的例示性實例。
在圖5A中所示實例中,主機102發送准予第一應用506對儲存媒體124上的第一資料126進行存取的命令502。命令502可對應於命令302。命令502可包括名稱空間的辨識符、位置(例如,LBA、LBA範圍等)的辨識符、頁面的辨識符、鍵(key)的辨識符、與第一資料126相關聯的一些其他辨識符或者其組合。另外,所述命令可包括存取類型辨識符(例如,讀取存取、寫入存取或執行存取)。
在所示實例中,因應於命令502,控制器106將第一應用506與第一資料126之間的關聯504儲存於記憶體105中。在其他實例中,關聯504可儲存於除記憶體105以外或替代記憶體105的另一位置中。舉例而言,關聯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進行寫入的請求。因應於確定出關聯504指示第一應用506有權對第一資料126進行存取,控制器106可相似地啟動對第一資料126的寫入。
然而,在一些實施方案中,關聯504可指示被准予給第一應用506的特定類型的存取。舉例而言,關聯504可指示第一應用506有權對第一資料126進行讀取存取、寫入存取、執行存取或其組合。在其中不容許應用對資料進行存取(例如,在應用與資料之間不存在關聯)的情形中,或者在其中未准予所述應用對資料的存取的類型的情形中,控制器106可拒絕同意對資料進行存取的請求。圖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將第一應用與引導特權之間的關聯604儲存於記憶體105中。應注意,在其他實例中,另一實體(例如,在處理設備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可包括自儲存媒體124下載第二應用610及/或擷取第二應用610。在特定實例中,第一應用606可對應於檢查總和應用,且第二應用610可對應於修復程式。因應於確定出特定資料的所計算檢查總和與所儲存檢查總和不匹配,檢查總和應用可向控制器106發送加載修復應用的請求。如由關聯604所指示,控制器106可基於檢查總和應用是否具有引導特權來選擇性地准予所述請求。
因此,圖6A至圖6B示出系統100支援在計算儲存設備104處執行的應用加載及執行其他應用。計算儲存設備104的控制器106基於引導特權來選擇性地准予來自應用的此種請求。據以,可支援複雜工作流程,所述複雜工作流程例如為在處理設備108中執行的診斷程式(diagnostic program)加載及執行另一程式以補救所偵測到的錯誤。此外,由於控制器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將第一應用706與第一記憶體空間708之間的關聯704儲存於記憶體105中。
控制器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的擁有者讀取寫入特權(owner read write privilege)相關聯。因此,控制器106可准予來自第一應用802的指向第一位址空間806的讀取請求及寫入請求。第二應用804與第一位址空間806的群組讀取特權(group read privilege)相關聯。據以,控制器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。舉例而言,因應於確定出主機102具有管理者權限層階,控制器106可基於命令902來對處理設備108及記憶體105進行去能。
應注意,可對上述操作加以組合。舉例而言,控制器106可基於以下的組合來判斷是否准予來自第一應用的將第二應用加載至第二程式槽120中的請求:A第一應用是否具有對應的引導特權;B第二程式槽120是否被保留給另一應用;以及C第二應用是否限於特定的槽。上述許可的其他組合可由控制器使用以判斷是否准予給定的請求。因此,控制器106可以組合形式強制實施各種規則,以提供安全的計算儲存設備。
參照圖10,示出表1000,表1000示出與應用相關聯的特權(例如,第一應用特權304)的實例。在所示實例中,所述表指示應用可在第一欄位1002中執行什麼。第一欄位1002可對應於圖4所示關聯404。控制器(例如,控制器106)可基於對應的第一欄位1002的內容而將應用的執行限於特定槽。在所示實例中,基於第一欄位1002,第一應用被限於第一槽。據以,控制器106可准予將第一應用加載至第一槽中的請求(假定滿足所有其他條件),但拒絕同意將第一應用加載至其他槽中的請求。相比之下,表1000中所示針對第二應用的第一欄位1002指示所述第二應用可被加載至任何槽中。據以,控制器可在不考量哪一槽被請求的情況下准予將第二應用加載至程式槽中的請求。
表1000更包括第二欄位1004,第二欄位1004定義對應的應用有權對什麼儲存空間(例如,儲存媒體124中的儲存空間)進行存取。在所示實例中,第二欄位1004指示第一應用有權對第一名稱空間進行讀取存取及寫入存取。據以,控制器可准予來自第一應用的指向第一名稱空間的讀取請求及寫入請求。然而,控制器可不容許來自第一應用的對其他名稱空間進行存取的請求。相似地,第二欄位1004指示第二應用有權對第二名稱空間進行讀取存取及寫入存取。第二欄位1004可對應於關聯504。
表1000更包括第三欄位1006,第三欄位1006定義對應的應用有權對什麼記憶體空間(例如,記憶體105中的記憶體空間)進行存取。在所示實例中,第三欄位1006指示第一應用有權對第一虛擬位址空間進行讀取存取及寫入存取。據以,控制器可准予來自第一應用的指向第一虛擬位址空間的讀取請求及寫入請求。然而,控制器可不容許來自第一應用的對其他虛擬位址空間進行存取的請求。第三欄位1006可包括由第三欄位1006辨識的每一虛擬位址空間的資料結構(例如,頁面表)的索引或其他指示符。第三欄位1006進一步指示第二應用有權對第一虛擬位址空間進行讀取存取。第三欄位1006可對應於關聯704。
表1000更包括第四欄位1008,第四欄位1008定義對應應用是否具有引導特權。在所示實例中,第四欄位1008指示第一應用具有引導第二應用(由括號中的2指定)的特權。據以,控制器可准予來自第一應用的加載第二應用的請求。然而,控制器可不容許來自第一應用的加載其他應用的請求。在所有實例中,引導特權可不限於特定的目標應用。第四欄位1008進一步指示第二應用不具有引導特權。第四欄位1008可對應於關聯604。
表1000更包括第五欄位1010,第五欄位1010定義應用於由對應應用引導的應用的特殊規則。在所示實例中,第五欄位1010指示由第一應用引導的應用獲得對第一虛擬位址空間的讀取存取。據以,准予來自第一應用的引導另一應用的請求的控制器可准予對第一虛擬位址空間的讀取存取。在一些實施方案中,第五欄位1010可指定對應應用的欲由引導應用承繼的特權的集合或子集。即,第五欄位1010可指示引導應用的一或多個第二特權。第五欄位1010可對應於第一應用特權304中的欄位。
表1000更包括第六欄位1012,第六欄位1012定義什麼實體可加載對應應用。在所示實例中,第六欄位1012指示第一應用可由第一主機加載。據以,控制器可准予由第一主機發出的加載第一應用的請求,但拒絕同意來自其他實體的加載第一應用的請求。相似地,第六欄位1012指示第二應用可由第一應用加載。第六欄位1012可對應於第一應用特權304中的欄位。
表1000更包括第七欄位1014,第七欄位1014定義什麼實體可執行對應應用。在所示實例中,第七欄位1014指示第一應用可由第一主機執行。據以,控制器可准予由第一主機發出的執行第一應用的請求,但拒絕同意來自其他實體的執行第一應用的請求。相似地,第七欄位1014指示第二應用可由第一應用執行。第七欄位1014可對應於第一應用特權304中的欄位。
表1000更包括第八欄位1016,第八欄位1016定義對應應用具有什麼權限層階。在所示實例中,第八欄位1016指示第一應用具有管理者層階的權限層階(admin level authority level)。據以,控制器可准予來自第一應用的與滿足於管理者層階的權限層階相關聯的請求。相似地,第八欄位1016指示第二應用具有普通使用者權限層階。據以,控制器可准予來自第二應用的與滿足於普通使用者層階的權限層階相關聯的請求。儘管示出2個權限層階,然而根據本揭露的實施例不限於2個權限層階。第八欄位1016可對應於第一應用特權304中的欄位。
因此,圖10示出可與應用相關聯的各種權利及特權。該些權利及特權可由控制器(例如,由控制器106)因應於來自一或多個實體(例如,主機102、在處理設備108上執行的應用或其組合)的一或多個命令(例如,命令302、命令402、命令502、命令602、命令702或其組合)而儲存於記憶體(例如,記憶體105或其他位置)中。控制器106可因應於確定出發出命令的實體具有指定權限層階而基於所述命令來選擇性地更新權利及特權。舉例而言,控制器106可基於來自具有管理者層階權限的實體而非來自其他實體的命令來更新權利及特權。儘管示出表,然而應注意,特權可儲存於其他資料結構中。此外,在各種實例中,特權可包括較圖10中所示者更多或更少的欄位。另外,本揭露不限於所示出的應用。根據本揭露的其他實例包括不同數目的應用。此外,在一些實例中,表1000中所示的資料可儲存於多於一個資料結構中。
圖11是示出與程式槽相關聯的資訊的圖1100。圖1100包括針對處理設備(例如,處理設備108)中可用的槽的列。每一列均具有指示對應槽的屬性的數個欄位。在所示實例中,圖1100包括第一欄位1102,第一欄位1102指示對應槽是否被保留(以及所述槽被保留給什麼應用)。在圖11所示實例中,針對第一槽的第一欄位1102指示所述第一槽未被保留。相比之下,針對第二槽的第一欄位1102指示所述第二槽被保留給第一應用。據以,基於圖1100,控制器(例如,控制器106)可將任何應用加載至第一槽中,但僅將第一應用加載至第二槽中。第一欄位1102可對應於關聯204。
圖1100更包括第二欄位1104,第二欄位1104辨識當前加載至所述對應槽中的應用。在圖11所示實例中,針對第一槽的第二欄位1104指示第二應用被加載至第一槽中。相比之下,針對第二槽的第二欄位1104指示第二槽是空的(empty)。控制器可在將應用加載至槽中時及在自所述槽移除所述應用時更新第二欄位1104。
圖1100更包括第三欄位1106,第三欄位1106辨識保留所述對應槽所需的權限層階。在圖11所示實例中,針對第一槽及第二槽的第三欄位1106指示第一槽及第二槽可由具有滿足管理者層階(例如,管理者層階或更高層階)的權限層階的實體保留。控制器可在創建槽時更新第三欄位1106(例如,由主機(比如主機102))。控制器(例如,控制器106)可基於針對槽(例如,第一程式槽110)的第三欄位1106來選擇性地准予保留所述槽的命令(例如,命令202)。
儘管示出表,然而應注意,槽資訊可儲存於其他資料結構中。此外,在各種實例中,槽資訊可包括較圖11中所示者更多或更少的欄位。另外,本揭露不限於所示出的槽。根據本揭露的其他實例包括不同數目的槽。此外,在一些實例中,圖1100中所示的資料可儲存於多於一個資料結構中。
參照圖12,示出流程圖,所述流程圖示出儲存程式槽與應用之間的關聯的方法1200。方法1200可由計算儲存設備的控制器(例如,控制器106)來實行。方法1200包括在1202處,接收將槽保留給應用的命令。舉例而言,控制器106可接收將第一程式槽110保留給第一應用208的命令202。
方法1200更包括在1204處,判斷所述命令是否來自具有發出所述命令的權限的實體。舉例而言,藉由判斷是否存在用於保留第一程式槽110的規定權限層階以及判斷發出命令202的實體是否具有所述權限層階,控制器106可判斷發出命令202的實體是否具有發出保留第一程式槽110的命令的權限。藉由在與圖1100中所繪示的資料結構相似的資料結構中查找第一程式槽110以及判斷與第一程式槽110對應的列中的第三欄位1106是否指示發出針對第一程式槽110的保留命令所需的權限層階,控制器106可判斷第一程式槽110是否具有用於保留第一程式槽的規定權限層階。所述資料結構可儲存於記憶體105或其他地方中。藉由在資料結構(例如在表1000中(針對應用)繪示的資料結構)中或在相似的主機資料結構中查找發出命令202的實體,控制器106可確定所述實體的權限層階。如圖10中所示,資料結構的第八欄位1016指示權限層階。
因應於確定出所述實體不具有發出所述命令的權限,方法1200包括在1206處,拒絕所述命令。舉例而言,控制器106可因應於確定出發出命令202的實體(例如,主機102或應用)不具有發出命令202的權限而向所述實體發出拒絕訊息。作為另一選擇,控制器106可簡單地忽略命令202,而不發送拒絕訊息。
因應於確定出實體確實具有發出所述命令的權限,方法1200包括在1208處,儲存程式槽與應用之間的關聯。舉例而言,控制器106可儲存指示第一程式槽110被保留給第一應用208的關聯204。關聯204可儲存於與圖1100中所繪示的資料結構相似的資料結構中(例如,儲存於第一欄位1102中)。
因此,圖12示出可如何將槽保留給應用。圖13是示出選擇性地將應用加載至槽中且執行所述應用的方法1300的流程圖。
方法1300包括在1302處,接收將應用加載至槽中的請求。舉例而言,控制器106可接收將第一應用208加載至第一程式槽110中的命令206。
方法1300包括在1304處,判斷請求是否來自具有發出所述請求的權限的實體。舉例而言,藉由判斷是否存在用於加載第一應用208的規定權限層階或指定實體以及判斷發出命令206的實體是否具有所述權限層階或對應於指定實體,控制器106可判斷發出命令206的實體是否具有加載第一應用208的權限。藉由在與表1000中所繪示的資料結構相似的資料結構中查找第一應用208以及判斷與第一應用208對應的列中的第六欄位1012是否指示發出針對第一應用208的加載命令所需的規定實體或權限層階,控制器106可判斷第一應用208是否具有規定權限層階或指定實體。所述資料結構可儲存於記憶體105或其他地方中。藉由在資料結構(例如在表1000中(針對應用)繪示的資料結構)中或在相似的主機資料結構中查找發出命令206的實體,控制器106可確定所述實體的權限層階。如圖10中所示,資料結構的第八欄位1016指示權限層階。此外,在其中所述實體對應於應用的情況下,控制器106可藉由檢查表1000中所示的資料結構的第四欄位1008來判斷所述應用是否具有引導特權。不具有引導特權的應用或者具有限於與命令206中所規定的應用不匹配的特定應用的引導特權的應用可能不被授權發出命令206。
方法1300更包括在1306處,因應於確定出所述實體未被授權發出所述請求而拒絕所述請求。舉例而言,控制器106可因應於確定出發出命令206的實體(例如,主機102或應用)不具有發出命令206的權限而向所述實體發出拒絕訊息。作為另一選擇,控制器106可簡單地忽略命令206,而不發送拒絕訊息。
方法1300更包括在1308處,因應於確定出所述實體被授權發出所述請求而判斷所述槽是否被保留給另一應用。舉例而言,控制器106可藉由查閱與圖1100中所繪示的資料結構相似的資料結構來判斷第一程式槽110是否被保留給除第一應用208以外的應用。與第一程式槽110相關聯的第一欄位1102可指示第一程式槽110是否被保留給另一應用。
方法1300更包括在1306處,因應於確定出第一程式槽110被保留給另一應用而拒絕所述請求。舉例而言,控制器106可因應於確定出第一程式槽110被保留給另一應用而向發出命令206的實體(例如,主機102或應用)發出拒絕訊息212。作為另一選擇,控制器106可簡單地忽略命令206,而不發送拒絕訊息。
方法1300更包括在1310處,因應於確定出程式槽未被保留或者被保留給所述應用而將所述應用加載至所述槽中。舉例而言,控制器106可將第一應用208加載至第一程式槽110中。加載第一應用208可包括更新例如圖1100中所示的資料結構等資料結構,以指示第一應用208被加載至第一程式槽110中。此外,加載第一應用208可包括向第一應用208傳遞權利及特權資料(例如,如表1000中所示的資料結構中所示)。另外,加載第一應用208可包括下載第一應用208、自儲存媒體124擷取第一應用208或者其組合。加載第一應用208可更包括向處理設備108發送應用資料。
方法1300更包括在1312處,接收執行所述應用的命令。舉例而言,控制器106可接收執行第一應用208的命令。
方法1300包括在1314處,判斷執行所述應用的命令是否來自具有發出所述命令的權限的實體。舉例而言,藉由判斷是否存在用於執行第一應用208的規定權限層階或指定實體以及判斷發出所述命令的實體是否具有所述權限層階或對應於指定實體,控制器106可判斷發出所述命令的實體是否具有執行第一應用208的權限。藉由在與表1000中所繪示的資料結構相似的資料結構中查找第一應用208以及判斷與第一應用208對應的列中的第七欄位1014是否指示發出針對第一應用208的執行命令所需的規定實體或權限層階,控制器106可判斷第一應用208是否具有規定權限層階或指定實體。所述資料結構可儲存於記憶體105或其他地方中。藉由在資料結構(例如在表1000中(針對應用)繪示的資料結構)中或在相似的主機資料結構中查找發出所述命令的實體,控制器106可確定所述實體的權限層階。如圖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可判斷所述實體是否具有權限。藉由在資料結構(例如在表1000中(針對應用)繪示的資料結構)中或在相似的主機資料結構中查找發出命令302的實體,控制器106可確定所述實體的權限層階。如圖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處,判斷發出所述命令的實體是否被授權發出所述命令。舉例而言,藉由在與表1000中所繪示的資料結構相似的資料結構中查找第一應用506以及判斷對應的第二欄位1004是否准予對第一資料126的存取(或特定類型的存取),控制器106可判斷第一應用506是否有權對第一資料126進行存取(或特定類型的存取)。相似地,藉由判斷對應的第三欄位1006是否准予對第一記憶體空間708的存取(或特定類型的存取),控制器106可判斷第一應用706是否有權對第一記憶體空間708進行存取(或特定類型的存取)。
方法1500更包括在1506處,因應於確定出所述實體不具有發出所述命令的許可而拒絕所述命令。舉例而言,控制器106可因應於確定出第一應用506未被授權對第一資料126(或第一記憶體空間708)進行存取而向第一應用506(或第一應用706)發出拒絕訊息。作為另一選擇,控制器106可簡單地忽略所述命令,而不發送拒絕訊息。
方法1500更包括在1508處,因應於確定出所述應用被授權而准予對所述資源的存取。舉例而言,控制器106可因應於確定出第一應用506被授權對第一資料126進行存取而促進對第一資料126的存取(例如,轉發命令、對所述命令進行轉譯等)。相似地,控制器106可促進由第一應用706對第一記憶體空間708的存取。
因此,圖14及圖15示出用於對與運行於計算儲存設備上的應用相關聯的特權進行設定以及強制實施所述特權的方法。該些方法可阻止一個租戶的應用對指派至另一租戶的資源進行存取。
某些實施例可以硬體、韌體及軟體中的一者或者硬體、韌體及軟體的組合來實施。其他實施例亦可被實施為儲存於電腦可讀取儲存設備上的、可被至少一個處理器讀取並執行以實行本文中闡述的操作的指令。電腦可讀取儲存設備可包括用於以可由機器(例如,電腦)讀取的形式儲存資訊的任何非暫時性記憶體機制。舉例而言,電腦可讀取儲存設備可包括唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟儲存媒體、光學儲存媒體、快閃記憶體設備以及其他儲存設備及媒體。
措詞「示例性的」在本文中用於意指「用作實例、例子或例示」。本文中闡述為「示例性」的任何實施例並不一定被解釋為相較於其他實施例而言是較佳的或有利的。本文中所使用的用語「計算設備」、「使用者設備」、「通訊站」、「站」、「手持式設備」、「行動設備」、「無線設備」及「使用者裝備(user equipment,UE)」指代無線通訊設備,例如蜂巢式電話、智慧型電話、平板電腦、隨身型易網機、無線終端、膝上型電腦、毫微微小區、高資料速率(High Data Rate,HDR)用戶站、存取點、列印機、銷售點設備、存取終端或其他個人通訊系統(personal communication system,PCS)設備。所述設備可為行動的或固定的中的任一種狀態。
本文件中所使用的用語「通訊」旨在包括發射或接收、或者發射與接收二者。當闡述由一個設備發射且由另一設備接收的資料的組織時,此在申請專利範圍中可能特別有用,但是侵犯申請專利範圍僅需要該些設備中的一者的功能。相似地,兩個設備之間的雙向資料交換(兩個設備在交換期間進行發射及接收)可被闡述為「正在通訊」,此時僅主張該些設備中的一者的功能。本文中針對無線通訊訊號所使用的用語「正在通訊」包括正在發射無線通訊訊號及/或正在接收無線通訊訊號。舉例而言,能夠傳送無線通訊訊號的無線通訊單元可包括將無線通訊訊號發射至至少一個其他無線通訊單元的無線發射機、及/或自至少一個其他無線通訊單元接收無線通訊訊號的無線通訊接收機。
一些實施例可與例如以下等各種設備及系統結合使用:個人電腦(Personal Computer,PC)、桌上型電腦、行動電腦、膝上型電腦、筆記型電腦、平板電腦、伺服器電腦、手持式電腦、手持式設備、個人數位助理(Personal Digital Assistant,PDA)設備、手持式PDA設備、車載設備(on-board device)、非車載設備、混合設備、車用設備(vehicular device)、非車用設備、行動或可攜式設備、消費者設備、非行動或非可攜式設備、無線通訊站、無線通訊設備、無線存取點(Access Point,AP)、有線或無線路由器、有線或無線數據機、視訊設備、音訊設備、音訊-視訊(audio-video,A/V)設備、有線或無線網路、無線區域網路、無線視訊區域網路(Wireless Video Area Network,WVAN)、局部區域網路(Local Area Network,LAN)、無線LAN(Wireless LAN,WLAN)、個人區域網路(Personal Area Network,PAN)、無線PAN(Wireless PAN,WPAN)及類似物。
一些實施例可與單向及/或雙向無線電通訊系統、蜂巢式無線電-電話通訊系統、行動電話、蜂巢式電話、無線電話、個人通訊系統(Personal Communication System,PCS)設備、結合無線通訊設備的PDA設備、行動或可攜式全球定位系統(Global Positioning System,GPS)設備、結合GPS接收機或收發機或晶片的設備、結合射頻辨識(radio frequency identification,RFID)元件或晶片的設備、多輸入多輸出(Multiple Input Multiple Output,MIMO)收發機或設備、單輸入多輸出(Single Input Multiple Output,SIMO)收發機或設備、多輸入單輸出(Multiple Input Single Output,MISO)收發機或設備、具有一或多個內部天線及/或外部天線的設備、數位視訊廣播(Digital Video Broadcast,DVB)設備或系統、多標準無線電設備或系統、有線或無線手持式設備(例如,智慧型電話)、無線應用協定(Wireless Application Protocol,WAP)設備或者類似物結合使用。
一些實施例可與遵循一或多個無線通訊協定的例如以下等一或多種類型的無線通訊訊號及/或系統結合使用:射頻(Radio Frequency,RF)、紅外(Infrared,IR)、頻分多工(Frequency-Division Multiplexing,FDM)、正交FDM(Orthogonal FDM,OFDM)、分時多工(Time-Division Multiplexing,TDM)、分時多重存取(Time-Division Multiple Access,TDMA)、擴展TDMA(Extended TDMA,E-TDMA)、通用封包無線電服務(General Packet Radio Service,GPRS)、擴展GPRS、分碼多重存取(Code-Division Multiple Access,CDMA)、寬頻CDMA(Wideband CDMA,WCDMA)、CDMA 2000、單載波CDMA、多載波CDMA、多載波調變(Multi-Carrier Modulation,MDM)、離散多音(Discrete Multi-Tone,DMT)、藍牙 TM、全球定位系統(Global Positioning System,GPS)、無線保真度(Wireless Fidelity,Wi-Fi)、全球互通微波存取(Worldwide Interoperability for Microwave Access,Wi-Max)、紫蜂 TM(ZigBee TM)、超寬頻(Ultra-Wideband,UWB)、全球行動通訊系統(Global System for Mobile communication,GSM)、2G、2.5G、3G、3.5G、4G、第五代(Fifth Generation,5G)行動網路、第三代行動通訊合作計畫(3rd Generation Partnership Project,3GPP)、長期演進(Long Term Evolution,LTE)、高級LTE、增強型資料速率GSM演進(Enhanced Data rates for GSM Evolution,EDGE)或類似物。其他實施例可用於各種其他設備、系統及/或網路中。
儘管以上已闡述示例性處理系統,然而本文中闡述的標的物及功能性操作的實施例可在其他類型的數位電子電路系統中實施,或者在電腦軟體、韌體或硬體(包括本說明書中所揭露的結構及其結構等效物)中實施,或者在其中的一或多者的組合中實施。
本文中所闡述的標的物及操作的實施例可在數位電子電路系統中實施,或者在電腦軟體、韌體或硬體(包括本說明書中所揭露的結構及其結構等效物)中實施,或者在其中的一或多者的組合中實施。本文中所闡述的標的物的實施例可被實施為一或多個電腦程式(即,被編碼於電腦儲存媒體上以用於由資訊/資料處理裝置執行或用於控制資訊/資料處理裝置的操作的電腦程式指令的一或多個組件。作為另一種選擇或者另外,程式指令可被編碼於人工產生的傳播訊號(例如機器產生的電性訊號、光學訊號或電磁訊號)上,人工產生的傳播訊號是被產生用來對資訊/資料進行編碼,以用於傳輸至適合的接收機裝置,以由資訊/資料處理裝置執行。電腦儲存媒體可為或包括於電腦可讀取儲存設備、電腦可讀取儲存基板、隨機或串列存取記憶體陣列或設備、或者其中的一或多者的組合中。此外,儘管電腦儲存媒體並非傳播訊號,然而電腦儲存媒體可為被編碼於人工產生的傳播訊號中的電腦程式指令的源或目的地。電腦儲存媒體亦可為或包括於一或多個分開的實體組件或媒體(例如多個CD、磁碟或其他儲存設備)中。
本文中所闡述的操作可被實施為由資訊/資料處理裝置對儲存於一或多個電腦可讀取儲存設備上或自其他源接收到的資訊/資料實行的操作。
用語「資料處理裝置」囊括用於對資料進行處理的所有種類的裝置、設備及機器,舉例而言,包括可程式化處理器、電腦、系統晶片、或者前述物中的多者或前述物的組合。所述裝置可包括專用邏輯電路系統,例如FPGA(現場可程式化閘陣列)或ASIC(特殊應用積體電路)。除硬體以外,所述裝置亦可包括為所考慮的電腦程式創建執行環境的代碼,例如構成處理器韌體、協定堆疊、資料庫管理系統、作業系統、跨平台運行時環境、虛擬機、或者其中的一或多者的組合的代碼。所述裝置及執行環境可達成各種不同的計算模型基礎設施,例如網路服務(web service)、分佈式計算及網格計算基礎設施。
電腦程式(亦稱為程式、軟體、軟體應用、腳本或代碼)可以任何形式的程式化語言(包括編譯或解釋語言、聲明性或過程性語言)來寫,並且其可以任何形式(包括作為單獨程式或作為組件、組件、子例程、對象、或其他適合於在計算環境中使用的單元)來部署。電腦程式可(但並非必須)與檔案系統中的檔案對應。程式可儲存於保存其他程式或資訊/資料(例如,儲存於標示語言文件中的一或多個腳本)的檔案的一部分中,儲存於專用於所考慮的程式的單個檔案中,或者儲存於多個協同檔案(例如,儲存一或多個組件、子程式、或代碼的部分的檔案)中。電腦程式可被部署成在一台電腦上或位於一個站點處或跨越多個站點分佈並藉由通訊網路互連的多台電腦上執行。
本文中所闡述的製程及邏輯流程可由執行一或多個電腦程式的一或多個可程式化處理器來實行,以藉由對輸入資訊/資料進行操作並產生輸出來實行動作。舉例而言,適合於執行電腦程式的處理器包括通用微處理器與專用微處理器二者、以及任何種類的數位電腦的任何一或多個處理器。一般而言,處理器將自唯讀記憶體或隨機存取記憶體或者二者接收指令及資訊/資料。電腦的基本元件是根據指令實行動作的處理器以及用於儲存指令及資料的一或多個記憶體設備。一般而言,電腦亦將包含資訊/資料或者可操作地耦合以自用於儲存資料的一或多個巨量儲存設備(例如磁碟、磁光碟或光碟)接收資訊/資料或將資訊/資料傳送至所述一或多個巨量儲存設備、或者進行所述兩種操作。然而,電腦不需要此種設備。適合於儲存電腦程式指令及資訊/資料的設備包括所有形式的非揮發性記憶體、媒體及記憶體設備,舉例而言,包括:半導體記憶體設備,例如EPROM、EEPROM及快閃記憶體設備;磁碟,例如內部硬碟或可移動碟;磁光碟;以及CD-ROM及DVD-ROM碟。處理器及記憶體可由專用邏輯電路系統來補充或併入專用邏輯電路系統中。
為提供與使用者的交互,本文中所闡述的標的物的實施例可在以下電腦上實施:所述電腦具有用於向使用者顯示資訊/資料的顯示設備(例如陰極射線管(cathode ray tube,CRT)或液晶顯示器(liquid crystal display,LCD)監視器)以及鍵盤及指針設備(例如滑鼠或軌跡球),使用者可藉由所述鍵盤及指針設備向電腦提供輸入。亦可使用其他種類的設備來提供與使用者的交互;例如,提供給使用者的回饋可為任何形式的感官回饋(例如視覺回饋、聽覺回饋或觸覺回饋);且可以任何形式接收來自使用者的輸入(包括聽覺輸入、語音輸入或觸覺輸入)。另外,電腦可藉由向使用者所使用的設備發送文件及自使用者所使用的設備接收文件來與使用者進行交互;例如,藉由因應於自使用者的客戶端設備上的網路瀏覽器接收到的請求而將網頁發送至所述網路瀏覽器。
本文中所闡述的標的物的實施例可在計算系統中實施,所述計算系統包括後端組件(back-end component)(例如作為資訊/資料伺服器)、或者包括中間軟體組件(middleware component)(例如應用伺服器)、或者包括前端組件(front-end component)(例如客戶端電腦,所述客戶端電腦具有圖形使用者介面或網路瀏覽器,使用者可藉由圖形使用者介面或網路瀏覽器與本文中所闡述的標的物的實施例進行交互)、或者一或多個此種後端組件、中間軟體組件或前端組件的任意組合。系統的組件可藉由任何形式或媒體的數位資訊/資料通訊(例如通訊網路)進行互連。通訊網路的實例包括局部區域網路(「(LAN」)及廣域網路(「(wide area network,WAN)」)、內部網路(例如網際網路)以及同級間網路(例如自組織同級間網路(ad hoc peer-to-peer network))。
計算系統可包括客戶端及伺服器。客戶端與伺服器一般而言彼此遠離且通常藉由通訊網路進行交互。客戶端與伺服器的關係是借助於運行於相應的電腦上且彼此具有客戶端-伺服器關係的電腦程式而出現。在一些實施例中,伺服器將資訊/資料(例如,超文件標示語言(HyperText Markup Language,HTML)頁面)傳輸至客戶端設備(例如,出於向與客戶端設備進行交互的使用者顯示資訊/資料並自所述使用者接收使用者輸入的目的)。可在伺服器處自客戶端設備接收在客戶端設備處產生的資訊/資料(例如,使用者交互的結果)。
儘管此說明書包含諸多特定實施例細節,然而該些細節不應被解釋為對任何實施例或可主張的範圍的限制,而是對專用於具體實施例的特徵的說明。本文在分開的實施例的上下文中闡述的某些特徵亦可在單一實施例中組合實施。相反,在單一實施例的上下文中闡述的各種特徵亦可在多個實施例中分開實施或者在任何適合的子組合中實施。此外,儘管特徵可在以上被闡述為在某些組合中起作用且甚至最初被如此主張,但在一些情形中,來自所主張的組合的一或多個特徵可自所述組合被刪除,且所主張的組合可有關於子組合或子組合的變型。
相似地,儘管在圖式中以特定次序繪示出操作,但此不應被理解為要求以所示的特定次序或以順序實行此種操作或者要求實行所有示出的操作以達成所期望的結果。在某些情況下,多任務及並行處理可能是有利的。此外,上述實施例中的各種系統組件的分離不應被理解為在所有實施例中均要求此種分離,且應被理解成,所闡述的程式組件及系統一般而言可一起整合於單個軟體產品中或者封裝至多個軟體產品中。
因此,已闡述標的物的特定實施例。其他實施例處於以下申請專利範圍的範圍內。在一些情形中,申請專利範圍中列舉的動作可以不同的次序實行且仍然達成所期望的結果。另外,附圖中所繪示的製程並不一定要求所示的特定次序或順序來達成所期望的結果。在某些實施例中,多任務及並行處理可能是有利的。
受益於前述說明及相關聯的圖式中呈現的教示內容,熟習該些實施例所屬技術者將會想到本文中陳述的本揭露的諸多修改及其他實施例。因此,應理解,實施例並不限於所揭露的特定實施例,且修改及其他實施例旨在包括於所附申請專利範圍的範圍內。儘管本文中採用特定的用語,然而其僅用於一般性及闡述性意義,而非出於限制的目的。
100:系統 102:主機 104:計算儲存設備 105:記憶體 106:控制器 108:處理設備 110:第一程式槽/程式槽 120:第二程式槽/程式槽 122:第三程式槽/程式槽 124:儲存媒體 126:第一資料 128:第二資料 202、206、210、302、402、502、602、702、902:命令 204、404、504、604、704:關聯 208、407、506、606、706、802:第一應用 212、514、616:拒絕訊息 304:特權 406、408、508、512、608、614:請求 410:拒絕 510:箭頭 610、804:第二應用 708:第一記憶體空間 806:第一位址空間 808:第二位址空間 1000:表 1002、1102:第一欄位 1004、1104:第二欄位 1006、1106:第三欄位 1008:第四欄位 1010:第五欄位 1012:第六欄位 1014:第七欄位 1016:第八欄位 1100:圖 1200、1300、1400、1500:方法 1202、1204、1206、1208、1302、1304、1306、1308、1310、1312、1314、1316、1402、1404、1406、1408、1502、1504、1506、1508:步驟
當根據以下圖閱讀本申請案時,將更佳地理解本技術的上述態樣及其他態樣,在以下圖中,相同的編號指示相似或相同的元件: 圖1是用於在計算儲存設備中提供安全應用的系統的方塊圖。 圖2A、圖2B及圖2C是繪示與在所述系統中將程式槽保留給特定應用相關的各種操作的圖。 圖3繪示與對和欲由所述系統中的計算儲存設備執行的應用相關聯的特權進行設定相關的操作。 圖4A、圖4B及圖4C是繪示與將應用限於指定槽相關的各種操作的圖。 圖5A、圖5B及圖5C是繪示與保全儲存媒體中的資料相關的操作的圖,所述儲存媒體可由所述系統中的計算儲存設備所執行的應用存取。 圖6A、圖6B及圖6C是繪示與一個應用引導(bootstrap)另一應用相關的操作的圖。 圖7是示出與准予在計算儲存設備中執行的應用對與計算儲存設備的記憶體相關聯的記憶體空間進行存取相關的操作的圖。 圖8是繪示對記憶體中的不同記憶體空間具有存取權利的各種應用的圖。 圖9是繪示與對所述系統的組件進行去能相關的操作的圖。 圖10是儲存與應用相關聯的權利及特權的資料結構的圖。 圖11是示出儲存與程式槽相關聯的資料的資料結構的圖。 圖12是示出保留程式槽的方法的流程圖。 圖13是示出加載及執行應用的方法的流程圖。 圖14是示出儲存應用與權利或特權之間的關聯的方法的流程圖。 圖15是示出准予由在計算儲存設備上執行的應用對資源進行存取的方法的流程圖。
儘管本技術易受各種修改及替代形式的影響,但其特定實施例在圖式中以實例的方式示出並將在本文中進行闡述。圖式可能並非按比例繪製。然而,應理解,圖式及其詳細說明並非旨在將本技術限制於所揭露的具體形式,而相反,其意圖是涵蓋以及落於所附申請專利範圍所界定的本技術的精神及範圍內的所有修改、等效物、替代方案。
100:系統
102:主機
104:計算儲存設備
105:記憶體
106:控制器
108:處理設備
110:第一程式槽/程式槽
120:第二程式槽/程式槽
122:第三程式槽/程式槽
124:儲存媒體
126:第一資料
128:第二資料

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所述的電腦可讀取儲存設備,其中加載所述應用的所述請求是自在所述處理設備處執行的第二應用接收。
TW111108799A 2021-03-23 2022-03-10 用於虛擬計算儲存設備的方法及計算儲存設備 TW202238371A (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 2021-10-01
US17/492,544 US20220308770A1 (en) 2021-03-23 2021-10-01 Secure applications in computational storage devices

Publications (1)

Publication Number Publication Date
TW202238371A true TW202238371A (zh) 2022-10-01

Family

ID=81307441

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111108799A TW202238371A (zh) 2021-03-23 2022-03-10 用於虛擬計算儲存設備的方法及計算儲存設備

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
CN115113809A (zh) 2022-09-27
EP4064086A1 (en) 2022-09-28
US20220308770A1 (en) 2022-09-29
KR20220132416A (ko) 2022-09-30

Similar Documents

Publication Publication Date Title
TW202238371A (zh) 用於虛擬計算儲存設備的方法及計算儲存設備
US20140164544A1 (en) Enabling a computing device to utilize another computing device
US10904255B2 (en) Method for controlling contents and electronic device thereof
WO2017118330A1 (zh) 一种应用程序数据访问隔离方法及装置
CN111971661B (zh) 安全接口禁用
US11269700B2 (en) System call interception for file providers
US11928349B2 (en) Access control configurations for shared memory
US20240143203A1 (en) Systems and methods for storage device resource management
JP5338435B2 (ja) 情報処理プログラム、情報処理装置および情報処理方法
US9330016B2 (en) Systems and methods for managing read-only memory
US9684525B2 (en) Apparatus for configuring operating system and method therefor
US9329784B2 (en) Managing policies using a staging policy and a derived production policy
GB2515736A (en) Controlling access to one or more datasets of an operating system in use
US20190334919A1 (en) Flexible resource access control
KR20230137257A (ko) 저장 장치에 명령을 전송하기 위한 시스템 및 방법
US11941266B2 (en) Resource isolation in computational storage devices
CN116795282A (zh) 用于向贮存设备发送命令的系统和方法
CN115987981A (zh) 一种区块链权限管理方法、装置、计算机设备和存储介质
KR20070030041A (ko) 페이징 기법을 이용한 이동통신 단말기의 메모리 관리 방법