TWI741357B - 用於記憶體操作之運算系統及其操作方法 - Google Patents

用於記憶體操作之運算系統及其操作方法 Download PDF

Info

Publication number
TWI741357B
TWI741357B TW108131228A TW108131228A TWI741357B TW I741357 B TWI741357 B TW I741357B TW 108131228 A TW108131228 A TW 108131228A TW 108131228 A TW108131228 A TW 108131228A TW I741357 B TWI741357 B TW I741357B
Authority
TW
Taiwan
Prior art keywords
block
storage
sub
access
memory
Prior art date
Application number
TW108131228A
Other languages
English (en)
Other versions
TW202030594A (zh
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 TW202030594A publication Critical patent/TW202030594A/zh
Application granted granted Critical
Publication of TWI741357B publication Critical patent/TWI741357B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • 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/061Improving I/O performance
    • 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/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/44568Immediately runnable code
    • G06F9/44584Portable applications, i.e. making applications self-contained, e.g. U3 standard
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本發明包含與一混合式記憶體系統介面有關之設備及方法。一例示性運算系統包含一處理資源及經由一混合式介面耦合至該處理資源之一儲存系統。該混合式介面可提供至該儲存系統之一輸入/輸出(I/O)存取路徑,其支援區塊級儲存I/O存取請求及子區塊級儲存I/O存取請求兩者。

Description

用於記憶體操作之運算系統及其操作方法
本發明大體上係關於半導體記憶體及方法,且更特定言之係關於與一混合式記憶體系統介面有關之設備及方法。
可在諸如電腦、行動電話、手持式電子裝置等之電子系統中實施諸如儲存系統之記憶體系統。諸如固態磁碟(SSD)、嵌入式多媒體控制器(eMMC)裝置、通用快閃儲存(UFS)裝置及類似者之各種電子器件可包含用於儲存可由若干處理資源(例如,一主處理器、一周邊裝置之一處理器等)存取之資料的非揮發性儲存組件。非揮發性儲存組件藉由在未供電時留存所儲存資料而提供持久性資料且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可擦除可程式化ROM(EEPROM)、可擦除可程式化ROM(EPROM)、及電阻可變記憶體(諸如相變隨機存取記憶體(PCRAM)、電阻式隨機存取記憶體(RRAM)、鐵電隨機存取記憶體(FeRAM)、磁阻式隨機存取記憶體(MRAM)及可程式化導電記憶體)以及其他類型之記憶體。記憶體系統亦可包含需要電力來維護資料的揮發性儲存組件。揮發性記憶體組件通常用於主系統記憶體及/或用於臨時儲存器。揮發性記憶體之實例包含動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、同步動態隨機存取記憶體 (SDRAM)、及閘流體隨機存取記憶體(TRAM)以及其他記憶體。
100:運算系統
101:快取區
102:主機
103:處理資源
104:儲存系統
105:記憶體管理單元
106:控制器
107-1至107-N:通信通道
108-1至108-N:記憶體資源
109:主記憶體
173:輸入/輸出(I/O)存取路徑
210:運算系統
212:使用者空間
214:系統空間
216:應用程式
218:程式庫組件
220:虛擬檔案系統組件
222:檔案系統組件
224:頁面快取區/頁面快取組件
226:裝置映射器組件
228:區塊層
230:驅動程式組件
232:儲存系統
300:運算系統
304:儲存系統
334:使用者空間
336:核心/系統空間
338:應用程式
340:混合式介面
342-1:第一部分
342-2:第二部分
344-1:驅動程式
344-2:驅動程式
404:儲存系統
409:主記憶體
450:運算系統
452:中央處理單元(CPU)
458:無線電組件
460:周邊組件
473:I/O存取路徑
570:方法
572:方塊
574:方塊
576:方塊
578:方塊
圖1係根據本發明之若干實施例之呈包含包括一主記憶體之一主機及記憶體系統之一運算系統之形式之一設備的一方塊圖。
圖2係根據一些方法之一設備之一方塊圖。
圖3繪示根據本發明之若干實施例之表示一運算系統之一部分之一系統/應用程式級方塊圖。
圖4繪示根據本發明之若干實施例之包含一中央處理單元(CPU)之一運算系統之一部分的一示意圖。
圖5繪示繪示根據本發明之若干實施例之用於操作一運算系統之一方法之一實例的一例示性流程圖。
本發明包含與一混合式記憶體系統介面有關之設備及方法。一例示性運算系統包含一處理資源及經由一混合式介面耦合至該處理資源之一儲存系統。混合式介面可提供至儲存系統之一輸入/輸出(I/O)存取路徑,其支援區塊級儲存I/O存取請求及子區塊級儲存I/O存取請求兩者。
諸如個人電腦、膝上型電腦、平板電腦、平板手機、智慧型電話、啟用物聯網(IoT)之裝置等之運算系統可包含用以儲存與運算系統相關聯之資料及/或指令的一或多個記憶體資源。如本文中使用,「啟用IoT之裝置」包含實體裝置、運載工具、家用電器、及嵌入有電子器件、軟體、感測器、致動器、及/或使此等物件能夠連接並交換資料之網路連 接能力的其他裝置。啟用IoT之裝置之實例包含可穿戴技術、智慧型家用裝置、智能購物系統、及監測裝置以及其他網宇實體系統。另外,運算系統可包含一或多個處理資源以執行諸如一作業系統之系統軟體以為運算系統上運行之應用程式提供共同服務。作業系統之實例包含Android®、Linux®、Unix®、Windows®等。
在操作期間,諸如運算系統之一中央處理單元(CPU)的一處理器可執行諸如韌體、電腦程式碼、元程式碼、資料庫檔案等之指令以提供功能性至運算系統。為執行指令,可藉由執行若干各自存取操作而從一儲存系統存取與指令相關聯之若干資料請求、及與若干資料請求相關聯之資料及/或指令。在一些方法中,CPU與儲存系統之間之一I/O匯流排可僅具有一特定大小,且CPU本端之一記憶體(例如,諸如運算系統之一主記憶體內部及/或外部之一快取區)可充當一中間裝置,其中可修改若干資料請求之一大小以符合I/O匯流排之一大小要求。舉例而言,具有比特定大小更小之一大小之若干資料請求可在主記憶體處彙總。接著,可基於彙總資料請求來產生一I/O存取請求(例如,具有等於特定大小之一大小之請求)且經由特定大小之I/O匯流排將該I/O存取請求傳送至儲存系統。因此,缺乏支援各種大小之請求或與請求相關聯之資料及/或指令之靈活性可能消耗運算系統之資源。
相比之下,本文中之本發明之若干實施例可藉由利用一混合式記憶體系統介面而減少結合執行指令所消耗之資源量。舉例而言,與請求(諸如子區塊級儲存I/O請求)相關聯之資料及/或指令可由一處理資源(例如,CPU)從儲存資料及/或指令之一儲存系統直接存取。相應地,在一些實施例中,根據若干實施例之一主記憶體不一定用作中間裝置,此可減 少與透過主記憶體傳送資料及/或指令相關聯之延時。
在本發明之以下詳細描述中,參考形成本發明之一部分且其中藉由圖解展示可如何實踐本發明之一或多項實施例的隨附圖式。足夠詳細地描述此等實施例以使一般技術者能夠實踐本發明之實施例,且應瞭解,可利用其他實施例且可進行程序、電氣及結構改變而不脫離本發明之範疇。如本文中使用,標示符(諸如「N」等,尤其關於圖式中之元件符號)指示可包含如此標示之若干特定特徵。如本文中使用,「若干」特定事項係指此等事項之一或多者(例如,若干記憶體陣列可係指一或多個記憶體陣列)。「複數個」意欲係指一個以上此等事項。
本文中之圖遵循一編號慣例,其中首位數字或前幾位數字對應於圖式圖號且其餘數字識別圖式中之一元件或組件。可藉由使用類似數字識別不同圖之間之類似元件或組件。舉例而言,104可指涉圖1中之元件「04」,且一類似元件在圖3中可指涉為304。如將瞭解,可添加、交換及/或消除本文中之各項實施例中展示之元件以便提供本發明之若干額外實施例。另外,如將瞭解,圖中提供之元件之比例及相對尺度意欲繪示本發明之特定實施例,且不應被視為限制意義。
圖1係根據本發明之若干實施例之呈包含包括一主記憶體109之一主機102及一儲存系統104之一運算系統100之形式之一設備的一方塊圖。如本文中使用,主機102及/或儲存系統104亦可單獨視為一「設備」。
運算系統100(例如,行動系統)可為一運算裝置,諸如一行動裝置。如本文中使用,一「行動裝置」係指可攜式、利用一可攜式電源供應器且小至足以在手上固持並操作的一裝置。然而,實施例並不限於 此。作為一實例,主機102可包含一個人膝上型電腦、一桌上型電腦、一數位相機、一智慧型電話、一記憶卡讀取器、啟用IoT之裝置以及各種其他類型之主機。
系統100包含經由一I/O存取路徑耦合(例如,連接)至包含一或多個記憶體資源之儲存系統104的一主機102,如本文中繪示。系統100可包含單獨積體電路或主機102及儲存系統104兩者可處於相同積體電路上。系統100可為(例如)一伺服器系統及/或一高效能運算(HPC)系統及/或其之一部分。
主機102可包含一系統母板及/或背板且可包含若干處理資源(例如,一或多個處理器、微處理器、或一些其他類型之控制電路),諸如一處理資源103。處理資源103可回應於接收可結合執行指令所產生之資料請求而存取儲存於記憶體資源108-1、…、108-N中之資料及/或指令。舉例而言,回應於接收起始一應用程式之一請求,處理資源103可存取記憶體資源108-1、…、108-N以擷取與啟動該應用程式相關聯之指令。舉例而言,處理資源103可存取記憶體資源108-1、…、108-N以擷取與執行指令相關聯之資料。如本文中進一步描述,提供一I/O存取路徑173之一混合式介面(未展示)可基於資料請求之一大小來適應各種類型之儲存I/O存取請求。
主機102包含一快取區101(例如,CPU快取區),快取區101可包含儲存處理資源103本端之資料之一硬體及/或軟體裝置。可將從儲存系統104擷取之資料及/或一指令集(例如,可由處理資源103執行之一指令集)複製至快取區101使得處理資源103可從快取區101存取資料及/或指令集。
主機102包含一記憶體管理單元105。記憶體管理單元105可係執行虛擬記憶體位址與實體記憶體位址之間之轉譯的一硬體組件。記憶體管理單元105可進一步定義可需要匹配資料請求之一大小之一平台記憶體管理模型。在若干實施例中,記憶體管理單元105可靈活地定義平台記憶體管理模型使得區塊大小及子區塊大小資料請求兩者可在未相互轉換之情況下(例如,尚未將子區塊大小資料請求彙總至一區塊大小資料請求)被服務。
主機102包含一主記憶體109。在若干實施例中,主記憶體109可為可用於儲存與運算系統100之操作相關聯之一或多頁資料的揮發性記憶體(諸如RAM、DRAM、SRAM等)。實施例不限於揮發性記憶體;然而,且除揮發性記憶體以外或代替揮發性記憶體,主記憶體亦可包含非揮發性記憶體。
如圖1中繪示,儲存系統104可包含一控制器106及記憶體資源108-1、…、108-N。如本文中使用,一主機102、儲存系統104、控制器106及/或記憶體資源108-1、…、108-N亦可單獨視為一「設備」。
控制器106可為一狀態機、定序器或某一其他類型之控制器,且包含呈一特定應用積體電路(ASIC)、場可程式化閘陣列等之形式的硬體及/或韌體(例如,微程式碼指令)。控制器106可控制(舉例而言)執行以促成運算系統100之操作之指令之存取型樣。
如圖1中展示,控制器106經由各自通信通道107-1、…、107-N通信耦合至記憶體資源108-1、…、108-N。通信通道107-1、…、107-N可允許在控制器106與記憶體資源108-1、…、108-N之間傳送請求、資料及/或指令。
如圖1中繪示,儲存系統104可包含耦合至一控制器106的一或多個記憶體資源108-1、…、108-N。在一些實施例中,儲存系統104可為一混合式儲存系統且記憶體資源108-1、…、108-N可為不同種類之記憶體資源。舉例而言,記憶體資源108-1可為一新興非揮發性記憶體資源(諸如一3D Xpoint記憶體資源、鐵電RAM(FeRAM)等),而記憶體資源108-N可為一NAND記憶體資源。實施例不限於此等特定實例,且記憶體資源108-1、…、108-N可為相同種類之記憶體資源,諸如新興非揮發性記憶體資源。
不同種類之記憶體資源108-1、…、108-N可支援(例如,用於執行)展示各種特性之儲存I/O存取請求。舉例而言,各種特性可包含一特定儲存I/O請求之執行頻率、請求之大小、執行請求所消耗之資源(例如,記憶體資源及/或處理資源)量、可執行請求之速度、或其他適合特性。此外,不同種類之記憶體資源108-1、…、108N可支援具有不同大小之儲存I/O存取請求,如本文中描述。舉例而言,諸如NAND快閃資源之一些記憶體資源可僅支援區塊級儲存I/O請求,而其他記憶體資源可支援子區塊級儲存I/O請求。
主機102可經由提供至儲存系統104之一I/O存取路徑173之一混合物介面(未展示)通信耦合至儲存系統104。I/O存取路徑173可支援區塊級儲存I/O存取請求及子區塊級儲存I/O請求兩者。在各項實施例中,區塊級儲存I/O請求可指代具有大於一主機快取線大小的一大小(例如,4千位元組)之儲存I/O請求,而子區塊級儲存I/O請求可指代具有不大於主機快取線大小的一大小(例如,32、64及/或128個位元組)之儲存I/O請求。
由於I/O存取路徑173可支援區塊級及子區塊級I/O存取請求兩者,故混合式介面可基於(例如,結合執行一應用程式所產生之)資料請求之一大小來產生各種類型之儲存I/O存取請求。舉例而言,當一所接收資料請求係一區塊大小資料請求時,混合式介面可產生一區塊級儲存I/O存取請求。舉例而言,當一所接收資料請求係一子區塊大小資料請求時,混合式介面可產生一子區塊級儲存I/O存取請求。相應地,複數個子區塊大小資料請求在尚未經彙總以傳送至儲存系統104/從儲存系統104傳送的情況下可經由複數個單獨子區塊級儲存I/O存取請求被服務。換言之,混合式介面可經組態以防止複數個子區塊大小資料請求彙總至一區塊大小資料請求以傳送至儲存系統104/從儲存系統104傳送。
複數個子區塊大小資料請求可在尚未彙總以供傳送之情況下被服務使得處理資源103能夠針對子區塊大小資料請求直接存取記憶體資源108-1、…、108-N。舉例而言,若一資料請求係一子區塊大小資料請求,則混合式介面可將對具有一子區塊級可存取性之記憶體資源108-1、…、108-N(例如,儲存與資料請求相關聯之資料及/或一指令集)之一特定者之一直接存取提供至處理資源103。如本文中使用,支援一區塊級儲存I/O存取請求之一記憶體資源可被稱為具有一區塊級可存取性之一記憶體資源,且支援一子區塊級儲存I/O存取請求之一記憶體資源可被稱為具有一子區塊級可存取性之一記憶體資源。舉例而言,一第一類型之記憶體資源108-1、…、108-N(諸如一新興非揮發性記憶體資源)可支援一子區塊級存取請求,而一第二類型之記憶體資源108-1、…、108-N(諸如一NAND)可支援一區塊級存取請求但可不支援子區塊級存取請求。儘管實施例並不限於此,然僅第一類型及第二類型之非揮發性記憶體資源之一者 可支援子區塊級儲存I/O存取請求。相較於具有一區塊級可存取性之記憶體資源108-1、…、108-N之其他部分,具有一子區塊級可存取性之記憶體資源108-1、…、108-N之一部分可具有一更低存取時間及/或一更高耐久性。
可以多種方式利用在未使用主記憶體(例如,109)作為一中間機構之情況下實現對儲存系統104之記憶體資源108之一直接存取。通常,在主機102與儲存系統104之間傳遞請求、資料、及/或指令時,主記憶體109可充當一中間裝置,透過該中間裝置傳送請求、資料及/或指令。作為一實例,執行儲存於儲存系統104中之資料及/或指令之一讀取操作可能涉及將資料及/或指令集複製至主記憶體109使得處理資源103可從主記憶體109存取資料及/或指令集。
然而,根據若干實施例之混合式介面可提供對一儲存系統104之直接存取。作為一實例,混合式介面可消除(例如,藉由提供亦支援子區塊級I/O存取請求之I/O存取路徑)對於將複數個子區塊大小資料請求彙總至一區塊大小請求的需求;因此,儲存I/O存取請求、資料及/或一指令集亦可在未透過主記憶體109傳送的情況下在處理資源103與記憶體資源108-1、…、108-N之間直接傳遞。因而,可保留主記憶體109之資源以用於其他操作。在若干實施例中,直接存取請求之大小可限於小於或等於CPU快取線大小之請求,舉例而言;然而,實施例並不限於此。結合圖3、圖4及圖5描述可利用如何實現與一子區塊大小資料請求相關聯之直接存取之進一步細節。
圖2係根據一些方法之表示一運算系統210之一部分之一系統/應用程式級方塊圖。運算系統210之部分可包含負責一運算系統之操作 之一軟體堆疊(諸如一使用者空間212及一系統空間214(例如,核心空間))及包含一儲存系統232之一硬體部分。
使用者空間212及系統空間214可為一作業系統之一部分。舉例而言,使用者空間212及系統空間214之作業系統可分別表示一Android®使用者及與其相關聯之一Linux®核心之一作業系統。在此等實施例中,運算系統210之一部分可被視為一「軟體儲存堆疊」(例如,運算系統210之一部分可表示一作業系統之一基於軟體之核心實施方案)。
作為執行與使用者空間212之應用程式216相關聯之指令之一部分,可向程式庫組件218發出執行操作(例如,讀取及/或寫入)以存取儲存系統232中之資料/指令(例如,組織為檔案)之命令(例如,請求)。可從使用者空間212(例如,使用者空間212之應用程式216)發出之命令可包含fread()及/或fwrite()以分別對儲存系統232執行一讀取操作及一寫入操作,舉例而言。
使用者空間212之程式庫組件218可儲存可由使用者空間212使用以將命令投送至核心空間214的若干指令。舉例而言,使用者空間212可尋找對應於與執行應用程式216相關聯之命令的指令(例如,基於C之指令),且可將從程式庫組件218擷取之指令投送至核心空間(例如,頁面快取區224)。所擷取指令可將一原始位元組級(例如,子區塊級)命令轉譯為一區塊級(例如,區塊級)命令,諸如4kB命令。程式庫組件218可為包含呈包括至少基於C之語言之多種語言之指令的標準功能之一程式庫。
除寫入及/或讀取命令以外,程式庫組件亦可向(舉例而言)頁面快取區224發出其他命令。其他命令可包含:映射命令(例如,mmap),其將檔案映射至一特定記憶體位置;及分配命令(例如, malloc),其將一檔案分配至一記憶體位置及/或將一指標傳回至其中分配檔案之一記憶體位置。
虛擬檔案系統組件220可包含可由一處理資源(例如,與一主機相關聯之一處理資源)執行的指令及/或可供應有硬體資源,最終可在該等硬體資源上執行指令以在檔案系統組件222之頂部上提供一抽象層。舉例而言,虛擬檔案系統組件220可包含可經執行以存取本端及/或網路儲存裝置之指令。在一些實施例中,虛擬檔案系統220可包含可經執行以透明地(例如,無一用戶端應用程式互動)存取本端及/或網路儲存裝置之指令。與虛擬檔案系統組件220相關聯之指令可指定核心空間與檔案系統組件222之間之一介面。
檔案系統組件222可包含可由一處理資源(例如,與一主機相關聯之一處理資源)執行的指令及/或可供應有硬體資源,最終可在該等硬體資源上執行指令以控制如何儲存及/或擷取與運算系統210相關聯之資料。舉例而言,檔案系統組件222可包含可執行以儲存及/或擷取來自儲存系統104之資料的指令。
裝置映射器組件226可包含可由一處理資源(例如,與一主機相關聯之一處理資源)執行的指令及/或可供應有硬體資源,最終可在該等硬體資源上執行指令以將實體區塊裝置映射至較高級虛擬區塊裝置上。裝置映射器組件226形成邏輯卷管理(LVM)、獨立磁碟軟體冗餘陣列(RAID)及/或dm-crypt磁碟加密(例如,核心空間214中之透明磁碟加密子系統)之基礎,且提供諸如檔案系統快照之額外特徵。
頁面快取組件224可包含可由一處理資源(例如,與一主機相關聯之一處理資源)執行的指令及/或可供應有硬體資源,最終可在該等 硬體資源上執行指令以緩衝從虛擬檔案系統組件220投送之命令。頁面快取組件224可被稱為一「磁碟快取區」且可定位於一儲存系統(例如,圖1中展示之儲存系統104)上且與一特定儲存系統記憶體資源(例如,記憶體資源108-1至108-N)a之存取請求相關聯。
在欲修改儲存於若干裝置之一者(例如,運算系統210之儲存系統232)上之資料時,運算系統210可首先修改頁面快取組件223中之頁面之快取版本且將頁面標記為一「已變更(dirty)」頁面。稍後,可將「已變更」頁面之新內容從頁面快取區複製至驅動程式組件230中以減少在相同頁面在一短時段中更新兩次的情況下儲存裝置232上所需之寫入操作次數。
當在頁面快取組件224處緩衝命令時,經緩衝命令可經彙總以形成具有一較大大小(例如,一子區塊級至一區塊級)之一個別命令以匹配由記憶體管理單元(MMU)定義之平台記憶體管理模型,記憶體管理單元係執行虛擬記憶體位址與實體記憶體位址之間的轉譯之一硬體組件。
區塊層228可儲存可由一處理資源(例如,與一主機相關聯之一處理資源)執行之指令及/或可供應有硬體資源,最終可在該等硬體資源上執行指令以組織並排程從頁面快取組件224投送之命令且進一步投送至儲存系統232(例如,經由驅動程式組件230)。區塊層228可將緩衝存取提供至儲存系統232以最終將所投送命令重新排序、變更優先順序及/或合併。
驅動程式組件230可包含可由一處理資源(例如,與一主機相關聯之一處理資源)執行的指令及/或可供應有硬體資源,最終可在該等硬體資源上執行指令以為與運算系統210相關聯之各種組件提供驅動程式 支援。舉例而言,驅動程式組件230可經組態以執行指令以載入及/或更新與一主機、一記憶體系統、及/或可與運算系統200相關聯之其他周邊裝置(未展示)相關聯的驅動程式。從區塊層228投送之命令可經由驅動程式組件230投送至包含(舉例而言)一控制器及一儲存裝置之儲存系統232。可由儲存裝置上之控制器(例如,圖1中展示之控制器106)執行彙總至一區塊級命令且在儲存系統232處接收之位元組級命令。
在一些方法中,運算系統232之部分可能缺少可提供支援區塊級儲存I/O存取請求及子區塊級儲存I/O存取請求兩者之一I/O存取路徑之一混合式介面;藉此,缺乏一子區塊級可存取性。因此,可要求複數個位元組級命令(例如,複數個子區塊大小資料請求)在頁面快取組件224處彙總至一區塊級命令(例如,一區塊大小資料請求)以經由缺乏子區塊級可存取性之一I/O存取路徑進行傳送。相比之下,在若干實施例中,無需透過一頁面快取組件224投送複數個子區塊大小資料請求,此係因為可透過混合式介面之I/O存取路徑傳送對應子區塊級儲存I/O存取請求。相應地,在本發明之一些實施例中,儲存系統104之一部分可在不具有諸如頁面快取組件224之一單獨組件之情況下分配為用於提供已由頁面快取組件224提供之功能之一頁面快取區。
圖3繪示根據本發明之若干實施例之表示一運算系統300之一部分之一系統/應用程式級方塊圖。運算系統300之部分及儲存系統304可分別類似於運算系統100之至少一部分及儲存系統104,如結合圖1描述。此外,一混合式介面340可類似於具有I/O存取路徑173之混合式介面,如結合圖1描述。
運算系統300之部分可包含負責一運算系統之操作之一軟 體堆疊(諸如一使用者空間334(例如,「使用者區」)及一核心336(例如,一系統空間)及包含一儲存系統304之一硬體部分。如本文中使用,一「系統空間」或「核心空間」係與運算系統300之部分相關聯之一記憶體位置,其中可儲存由與一運算系統300相關聯之硬體處理器執行以控制運算系統之指令。相比之下,如本文中使用,一「使用者空間」係與運算系統300之部分相關聯之一記憶體位置,其中儲存由一運算系統執行對應於應用程式338之指令。可由硬體處理器(諸如,如結合圖1描述之處理資源103)執行對應於應用程式338之指令以針對一使用者之益處執行一群組之協調功能、任務或活動。
在一些實施例中,使用者空間334及系統空間336可為一作業系統之一部分。舉例而言,使用者空間334及系統空間336之作業系統可分別表示一Android®使用者及與其相關聯之一Linux®核心之一作業系統。在此等實施例中,運算系統300之一部分可被視為一「軟體儲存堆疊」(例如,運算系統300之一部分可表示一作業系統之一基於軟體之核心實施方案)。
檔案系統342可包含於混合式介面430中。檔案系統342可具有各耦合至一各自驅動程式(例如,驅動程式344-1及344-2)的一第一部分342-1及一第二部分342-2。檔案系統342之部分342-1及342-2可為虛擬檔案系統且包含可經執行以存取本端及/或網路儲存裝置(諸如儲存系統304)的指令。包含於虛擬檔案系統中之指令可指定檔案系統340之部分342-1及342-2之一者以用於將資料及/或其他指令傳遞至儲存系統304及/或從儲存系統304傳遞資料及/或其他指令。驅動程式344-1及344-2可為用以與相關聯於一運算系統(例如,運算系統100)之各種硬體組件(例如,處 理器、記憶體裝置、周邊裝置等)介接的虛擬(例如,軟體)驅動程式。
在若干實施例中,檔案系統342可經組態以管理區塊級儲存I/O存取請求及子區塊級儲存I/O存取請求兩者。可利用檔案系統342之各部分以管理不同類型之儲存I/O存取請求。舉例而言,第一部分可經組態以管理區塊級儲存I/O存取請求,而第二部分可經組態以管理子區塊級儲存I/O存取請求。
相應地,對應於子區塊級儲存I/O存取請求之子區塊大小資料請求可在尚未彙總至區塊級大小資料請求之情況下被服務。作為一實例,一處理資源(例如,如結合圖1描述之處理資源103)可經組態以回應於一子區塊大小資料請求之接收而經由混合式介面340直接存取儲存系統304(例如,其之具有子區塊級可存取性之一記憶體資源),且從儲存系統304直接執行與子區塊大小資料請求相關聯之一指令集。該指令集可導致處理資源啟動一行動應用程式。
在各項實施例中,混合式介面340之檔案系統342可包含一具備直接存取(DAX)能力之檔案系統部分。一具備DAX能力之檔案系統係指能夠對儲存系統304(例如,來自使用者空間334)直接執行讀取及/或寫入操作的一檔案系統。換言之,資料、命令、指令及/或請求在未透過一主記憶體(例如,主記憶體109)投送、傳送及/或複製之情況下可直接投送、傳送及/或複製至儲存系統304且從儲存系統304直接投送、傳送及/或複製。因而,在一些實施例中,儲存系統304可直接映射至使用者空間334以直接存取儲存系統304(例如,執行讀取/寫入)。
在一些實施例中,請求、資料及/或指令可經由一共用匯流排傳遞至儲存系統304及/或從儲存系統304傳遞。舉例而言,無論請求、 資料及/或指令是否對應於區塊級或子區塊級,可經由相同共用匯流排從儲存系統304傳遞請求、資料及/或指令。然而,實施例並不限於此。舉例而言,區塊級及子區塊級請求、資料及/或指令可經由不同各自匯流排傳遞至儲存系統304及/或從儲存系統304傳遞。舉例而言,可經由不同於用於傳遞一區塊級儲存I/O存取之一匯流排的一匯流排傳遞一子區塊級儲存I/O存取請求。
在一些實施例中,可由一處理資源(例如,處理資源103)經由檔案系統342之第二部分342-2直接存取子區塊大小資料庫檔案(諸如與資料庫管理系統(DBMS)相關聯之資料、檔案後設資料、及/或檔案系統340之後設資料)。舉例而言,可藉由由處理資源同時執行之程序同時存取多個子區塊大小資料庫檔案(諸如與DBMS相關聯之資料、檔案後設資料、及/或檔案系統340之後設資料)。DBMS(諸如NoSQL、SQLite、基於雲端之DBMS、或其他適合DBMS)可為在使用者空間334中執行之資料庫系統程序及/或應用程式。DBMS可允許一終端使用者建立、讀取、更新及/或刪除與運算系統300之部分相關聯之一資料庫中之資料。
圖4繪示根據本發明之若干實施例之包含一中央處理單元(CPU)452之一運算系統450之一部分的一示意圖。一主記憶體409及一儲存系統404可類似於如結合圖1描述之主記憶體109及儲存系統104。
如圖4中繪示,CPU 452經由一I/O存取路徑473耦合至運算系統450之部分之其他組件(例如,主記憶體409、無線電458、周邊組件460及/或儲存系統404)。可由一混合式介面(例如,混合式介面340)提供I/O存取路徑473,主機102可經由該混合式介面耦合至儲存系統404,如本文中描述。I/O存取路徑可支援區塊級儲存I/O存取請求及子區塊級儲 存I/O存取請求兩者,其可由檔案系統管理使得子區塊級儲存存取請求可在尚未彙總以傳送至儲存系統/從儲存系統傳送之情況下被服務。I/O存取路徑473可包含:一系統匯流排,其連接一運算系統之主要組件,從而組合一資料匯流排之功能以傳遞資料;一位址匯流排,其用以判定資料之一目的地;及一控制匯流排,其用以判定與資料相關聯之操作。
無線電組件458可為運算系統450之部分之一收發器。作為一實例,一收發器可為包含運算系統450之部分之一傳輸器及一接收器兩者的一裝置。運算系統450之部分可利用無線電組件458與其他裝置無線地通信。
周邊組件460(例如,周邊I/O裝置)可包含可執行以將資訊放入一運算系統(例如,運算系統450之部分)中且從該運算系統獲取資訊的指令。作為一實例,周邊組件460可包含運算系統450之各種組件,諸如一輸入裝置(例如,滑鼠及/或鍵盤)、一輸出裝置(例如,監測器及/或印表機)及/或儲存裝置(例如,硬碟機(HDD)及/或固態硬碟(SDD))。此外,其他運算系統(諸如一數位手錶、一智慧型電話及/或一平板電腦)亦可包含允許該等裝置用作周邊裝置的特定介面。一周邊組件460亦可為容置於運算系統之一主要容器內的一整合周邊裝置。作為一實例,與作為(舉例而言)一膝上型電腦及/或一桌上型電腦之外部周邊裝置之鍵盤、滑鼠及/或印表機相比,一行動裝置之一數位相機可為一整合周邊裝置。
周邊組件460(例如,整合周邊裝置)可進一步包含一影像信號處理器(ISP),可利用該影像信號處理器來執行各種操作,包含色彩校正操作(諸如缺陷校正)、去馬賽克(色彩內插)、白平衡、色彩調整、用於亮度及/或對比度增強之伽瑪調整、色彩轉換、及/或減少取樣。包含一 影像信號處理器之周邊組件460可包含一運算裝置之一數位相機(例如,一行動裝置之數位相機)。
主記憶體409可為可用於儲存與運算系統450之部分之操作相關聯之一或多頁資料的揮發性記憶體(諸如RAM、DRAM、SRAM等)。實施例不限於揮發性記憶體;然而,且除揮發性記憶體以外或代替揮發性記憶體,主記憶體亦可包含非揮發性記憶體。
在一些方法中,一主記憶體可充當一中間裝置,透過該中間裝置傳送請求、資料、及/或指令。作為一實例,可將從一儲存系統擷取之資料及/或指令集複製至主記憶體使得諸如CPU 452之一處理資源可從主記憶體存取資料及/或指令集。作為另一實例,子區塊大小資料請求可在執行之前在主記憶體處緩衝,使得子區塊大小資料請求可彙總至一區塊大小資料請求。在此等方法中,請求、資料及/或指令之傳送可能引起可使主記憶體處於壓力下之額外操作。特定言之,一行動系統之一主記憶體之資源可能相對稀少且施加至主記憶體之壓力可能引起與操作行動系統相關聯之嚴重延時。
相應地,在若干實施例中,主記憶體409可藉由在運算系統(例如,行動系統)之裝置之間直接傳送請求、資料及/或指令且未透過主記憶體409傳送資料而卸載執行額外操作之負擔,如下文進一步描述。
舉例而言,CPU 452可從儲存系統404(例如,其之具有子區塊級可存取性之一記憶體資源)直接執行對應於一子區塊大小資料請求之一資料集。換言之,相對於其中將一指令集複製至一主記憶體且一CPU從主記憶體存取指令集的該等方法,CPU 452可經組態以在未首先將指令集傳送至主記憶體之情況下從(例如,儲存系統404之)具有子區塊級可存 取性之記憶體資源執行指令集。
舉例而言,可在未透過主記憶體傳送與DMA相關聯之資料之情況下執行一直接記憶體存取(DMA)傳送。如本文中使用,一DMA傳送係指獨立於一CPU(例如,CPU 452)之一源裝置與一目標裝置之間之一資料傳送。藉由執行DMA傳送,而非由CPU引導之操作,CPU可從引導整個程序無需由CPU供應之操作之負擔卸載。在一些方法中,DMA傳送已與利用一主記憶體相關聯,使得待在源裝置與目標裝置(例如,組件458、460及/或462之一者)之間傳送之資料在目標裝置處接收之前已透過主記憶體傳送。
相比之下,混合式介面可經組態以允許來自周邊組件460(例如,周邊I/O裝置)之資料在未首先從周邊組件460傳送至主記憶體409之情況下直接儲存至儲存系統之一記憶體資源。換言之,周邊組件460(例如,儲存系統404經由I/O存取路徑473之一匯流排耦合至其)之一處理器(例如,ISP)可經組態以經由混合式介面直接存取儲存系統404,使得(舉例而言)具有子區塊級可存取性之一記憶體資源可由處理器直接存取。
圖5繪示繪示根據本發明之若干實施例之用於操作一運算系統(例如,一行動系統)之一方法570之一實例的一例示性流程圖。除非明確規定,否則本文中描述之方法之元件不限於一特定順序或序列。此外,可在相同時間點或在實質上相同時間點執行本文中描述之若干方法實施例或其元件。
在方塊572,方法570可包含經由一處理資源執行一指令集,其導致對一儲存系統之具有一特定大小之一資料請求。儲存系統可分別類似於結合圖1、圖3及/或圖4描述之儲存系統104、304及/或404。儲存 系統可經由可提供至儲存系統之一輸入/輸出(I/O)存取路徑之一混合式介面耦合至處理資源(例如,如結合圖1描述之處理資源103)。I/O存取路徑可支援區塊級儲存I/O存取請求及子區塊級儲存I/O存取請求兩者,如本文中描述。
在方塊574,方法570可包含在對儲存系統執行對應於資料請求之資料之一I/O傳送之前,判定資料請求是否對應於一區塊級儲存I/O存取請求或一子區塊級儲存I/O存取請求。在方塊576,方法570可包含回應於判定資料請求對應於一區塊級儲存I/O存取請求,經由與彙總其大小小於一區塊大小之資料請求相關聯之一第一檔案系統部分管理資料請求。在方塊578,方法570可包含回應於判定資料請求對應於一子區塊級儲存I/O存取請求,經由與防止彙總其大小小於區塊大小之資料請求相關聯之一第二檔案系統部分管理資料請求。第一檔案系統部分及第二檔案系統部分可分別類似於檔案系統342之第一部分342-1及第二部分342-2,如結合圖3描述。在一些實施例中,由第二檔案系統部分管理之資料可包含一資料庫管理系統(DBMS)、檔案後設資料、及/或一檔案系統之後設資料。
在一些實施例中,方法570可進一步包含在執行指令集之前,藉由處理資料直接存取儲存指令集之儲存系統之一記憶體資源。方法570可進一步包含在未將所儲存指令集傳送至行動系統之一主記憶體之情況下從記憶體資源直接執行指令集。
在一些實施例中,儲存系統可包含儲存多個子區塊大小資料庫檔案的一記憶體資源。在此實例中,方法570可進一步包含藉由由處理資源同時執行之程序而提供對多個子區塊大小資料庫檔案之同時存取。
在一些實施例中,行動系統可包含一周邊I/O裝置(例如, 周邊組件460)及一主記憶體。在此實例中,方法570可進一步包含藉由允許來自周邊(I/O)裝置之子區塊大小資料在未首先從周邊I/O裝置傳送至主記憶體之情況下直接儲存至具有一子區塊級可存取性之儲存系統之一記憶體資源而執行一DMA。如結合圖4描述,一DMA傳送係指獨立於一處理資源(諸如一CPU)之一源裝置與一目標裝置之間之一資料傳送。
儘管本文中已繪示且描述特定實施例,然一般技術者將明白,經計算以達成相同結果之一配置可取代所展示之特定實施例。本發明意欲涵蓋本發明之一或多項實施例之調適或變動。應瞭解,已依一闡釋性方式而非一限制性方式進行上文描述。一般技術者在檢視上文描述後將明白上述實施例及本文中未明確描述之其他實施例之組合。本發明之一或多項實施例之範疇包含其中使用上述結構及方法之其他應用。因此,應參考隨附發明申請專利範圍以及此等發明申請專利範圍所授權之等效物之完整範圍來判定本發明之一或多項實施例之範疇。
在前述[實施方式]中,為簡化本發明之目的,將一些特徵在一起群組於一單一實施例中。本發明之此方法不應解釋為反映本發明之所揭示實施例必須使用比各請求項中明確敘述更多之特徵的意圖。實情係,如以下發明申請專利範圍反映,本發明標的在於少於一單一所揭示實施例之全部特徵。因此,以下發明申請專利範圍特此併入至[實施方式]中,其中各請求項獨立作為一單獨實施例。
100:運算系統
101:快取區
102:主機
103:處理資源
104:儲存系統
105:記憶體管理單元
106:控制器
107-1至107-N:通信通道
108-1至108-N:記憶體資源
109:主記憶體
173:輸入/輸出(I/O)存取路徑

Claims (18)

  1. 一種用於記憶體操作之運算系統,其包括:一處理資源;一主記憶體;及一儲存系統,其經由一混合式介面耦合至該處理資源;其中該混合式介面提供至該儲存系統之一輸入/輸出(I/O)存取路徑,其支援區塊級(block level)儲存I/O存取請求及子區塊級(sub-block level)儲存I/O存取請求兩者,其中該等區塊級儲存I/O存取請求對應於具有大於一主機快取線大小(host cache line size)的一大小之儲存I/O請求,且其中該等子區塊級儲存I/O存取請求對應於具有不大於該主機快取線大小的一大小之儲存I/O請求;其中該混合式介面經組態以:接收一子區塊大小(sized)資料請求;及回應於該子區塊大小資料請求之接收,防止該子區塊大小資料請求在該主記憶體處被彙總(aggregated)至一區塊大小資料請求並允許該處理資源直接存取該儲存系統。
  2. 如請求項1之運算系統,其中該混合式介面包括一檔案系統,該檔案系統包含:一第一部分,其經組態以管理該等區塊級儲存I/O存取請求;及一第二部分,其經組態以管理該等子區塊級儲存I/O存取請求,其中該第二部分係一具備直接存取能力之檔案系統部分。
  3. 如請求項1之運算系統,其中該儲存系統係一混合式記憶體儲存系統,其包括:一第一類型之非揮發性記憶體資源;及一第二類型之非揮發性記憶體資源;其中僅該第一類型及該第二類型之非揮發性記憶體資源之一者支援子區塊級儲存I/O存取請求。
  4. 如請求項1至3中任一項之運算系統,其中該混合式介面經組態以回應於接收結合(in association with)執行若干應用程式而產生之複數個子區塊大小資料請求而產生各自複數個單獨子區塊大小儲存I/O存取請求,使得在尚未彙總以傳送至該儲存系統/從該儲存系統傳送之情況下服務該等各自子區塊大小資料請求。
  5. 如請求項1至3中任一項之運算系統,其中該儲存系統包括儲存多個子區塊大小資料庫檔案的一記憶體資源,且其中該混合式介面經組態以藉由由該處理資源同時執行之程序而提供對該多個子區塊大小資料庫檔案之同時存取。
  6. 如請求項1至3中任一項之運算系統,其中該運算系統係一行動系統,且其中:該儲存系統經組態以儲存可結合起始各自應用程式而由該處理資源執行之指令集;且 其中該混合式介面經組態以回應於起始一特定應用程式之一請求而在未將該所儲存指令集傳送至該行動系統之一主記憶體的情況下藉由該處理資源提供對對應於該請求之該所儲存指令集之直接存取。
  7. 如請求項1至3中任一項之運算系統,其進一步包括:一周邊I/O裝置;及一主記憶體;其中該周邊I/O裝置及該主記憶體經由一匯流排耦合至該處理資源及該儲存系統;且其中該混合式介面經組態以允許來自該周邊I/O裝置之資料在未首先從該周邊I/O裝置傳送至該主記憶體之情況下直接儲存至該儲存系統之一記憶體資源。
  8. 一種用於記憶體操作之運算系統,其包括:一儲存系統,其包括:一第一記憶體資源,其具有一區塊級可存取性(accessibility);一第二記憶體資源,其具有一子區塊級可存取性;一混合式介面,其經組態以管理區塊級及子區塊級儲存輸入/輸出(I/O)存取請求兩者,其中該等區塊級儲存I/O存取請求對應於具有大於一主機快取線大小的一大小之儲存I/O請求,且其中該等子區塊級儲存I/O存取請求對應於具有不大於該主機快取線大小的一大小之儲存I/O請求;一主記憶體;及一處理資源,其經由該混合式介面耦合至該儲存系統且經組態以: 回應於一子區塊大小資料請求之接收,藉由防止該子區塊大小資料請求在該主記憶體處被彙總至一區塊大小資料請求而產生一子區塊大小儲存I/O存取請求;經由該混合式介面及使用該子區塊大小資料請求而直接存取該第二記憶體資源;且直接從該第二記憶體資源執行與該子區塊大小資料請求相關聯之一指令集。
  9. 如請求項8之運算系統,其進一步包括經由一匯流排耦合至該儲存系統及該處理資源的一主記憶體,其中該處理資源係一中央處理單元(CPU),且其中該處理資源經組態以在未首先將該指令集傳送至該主記憶體之情況下從該第二記憶體資源執行該指令集。
  10. 如請求項8之運算系統,其中該處理資源係該儲存系統經由一匯流排所耦合至之一周邊I/O裝置之一處理器。
  11. 如請求項9之運算系統,其中該運算系統係一行動系統,且其中該指令集導致該CPU啟動一行動應用程式。
  12. 如請求項8至10中任一項之運算系統,其中具有該區塊級可存取性之該第一記憶體資源係一NAND快閃記憶體資源。
  13. 如請求項8至10中任一項之運算系統,其中具有該子區塊級可存取性 之該第二記憶體資源包含一新興非揮發性記憶體資源。
  14. 一種用於操作一運算系統之方法,其包括:經由耦接至一主記憶體之一處理資源執行一指令集,其導致對一儲存系統之具有一特定大小之一資料請求;其中該儲存系統經由提供至該儲存系統之一輸入/輸出(I/O)存取路徑之一混合式介面耦合至該處理資源,該輸入/輸出(I/O)存取路徑支援區塊級儲存I/O存取請求及子區塊級儲存I/O存取請求兩者,其中該等區塊級儲存I/O存取請求對應於具有大於一主機快取線大小的一大小之儲存I/O請求,且其中該等子區塊級儲存I/O存取請求對應於具有不大於該主機快取線大小的一大小之儲存I/O請求;在對該儲存系統執行對應於該資料請求之該資料之一I/O傳送之前,判定該資料請求是否對應於一區塊級儲存I/O存取請求或一子區塊級儲存I/O存取請求;回應於判定該資料請求對應於一區塊級儲存I/O存取請求,經由與彙總其大小小於一區塊大小之資料請求相關聯之一第一檔案系統部分管理該資料請求及經由該主記憶體存取該儲存系統;及回應於判定該資料請求對應於一子區塊級儲存I/O存取請求,經由與防止彙總其大小小於該區塊大小之資料請求相關聯之一第二檔案系統部分管理該資料請求及直接存取該儲存系統。
  15. 如請求項14之方法,其中藉由該第二檔案系統部分管理之該資料包含與一資料庫管理系統(DBMS)相關聯之資料。
  16. 如請求項14之方法,其中該運算系統係一行動系統,且其中該方法進一步包括:在執行該指令集之前,藉由該處理資源直接存取儲存該指令集之該儲存系統之一記憶體資源;及在未將該所儲存指令集傳送至該行動系統之該主記憶體之情況下直接從該記憶體資源執行該指令集。
  17. 如請求項14之方法,其中:該儲存系統包括儲存多個子區塊大小資料庫檔案的一記憶體資源;且該方法進一步包括藉由由該處理資源同時執行之程序而提供對該多個子區塊大小資料庫檔案之同時存取。
  18. 如請求項14之方法,其中:該運算系統係一行動系統,其進一步包括一周邊I/O裝置及一主記憶體;且該方法進一步包括藉由允許來自該周邊I/O裝置之子區塊大小資料在未首先從該周邊I/O裝置傳送至該主記憶體之情況下直接被儲存至具有一子區塊級可存取性之該儲存系統之一記憶體資源而執行一直接記憶體存取(DMA)。
TW108131228A 2018-09-12 2019-08-30 用於記憶體操作之運算系統及其操作方法 TWI741357B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/128,882 US10977198B2 (en) 2018-09-12 2018-09-12 Hybrid memory system interface
US16/128,882 2018-09-12

Publications (2)

Publication Number Publication Date
TW202030594A TW202030594A (zh) 2020-08-16
TWI741357B true TWI741357B (zh) 2021-10-01

Family

ID=69720771

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108131228A TWI741357B (zh) 2018-09-12 2019-08-30 用於記憶體操作之運算系統及其操作方法

Country Status (7)

Country Link
US (2) US10977198B2 (zh)
EP (1) EP3850474A4 (zh)
JP (1) JP2021536643A (zh)
KR (1) KR20210043001A (zh)
CN (1) CN112703481A (zh)
TW (1) TWI741357B (zh)
WO (1) WO2020055534A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160328169A1 (en) * 2015-05-05 2016-11-10 Sap Se Managed energy-efficient hybrid main memory systems
US20160342341A1 (en) * 2014-02-28 2016-11-24 Hewlett-Packard Development Company, L.P. Mapping mode shift
TW201710910A (zh) * 2015-08-27 2017-03-16 三星電子股份有限公司 交易式混合記憶體模組及其操作方法
US20170206166A1 (en) * 2016-01-14 2017-07-20 Seagate Technology Llc Cache bypass utilizing a binary tree
TW201805825A (zh) * 2016-08-03 2018-02-16 美光科技公司 混合式記憶體驅動器,電腦系統,及用於操作多重模式混合式驅動器之相關方法

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3516963B2 (ja) * 1993-03-12 2004-04-05 株式会社東芝 メモリアクセス制御装置
US6128669A (en) * 1997-09-30 2000-10-03 Compaq Computer Corporation System having a bridge with distributed burst engine to decouple input/output task from a processor
US7103357B2 (en) * 1999-11-05 2006-09-05 Lightsurf Technologies, Inc. Media spooler system and methodology providing efficient transmission of media content from wireless devices
US6785767B2 (en) 2000-12-26 2004-08-31 Intel Corporation Hybrid mass storage system and method with two different types of storage medium
US6480939B2 (en) * 2000-12-29 2002-11-12 Intel Corporation Method and apparatus for filtering prefetches to provide high prefetch accuracy using less hardware
JP2003330871A (ja) * 2002-05-13 2003-11-21 Nec Engineering Ltd データ転送装置
JP4406604B2 (ja) * 2002-06-11 2010-02-03 アシシュ エイ パンドヤ Tcp/ip、rdma、及びipストレージアプリケーションのための高性能ipプロセッサ
US20050195975A1 (en) * 2003-01-21 2005-09-08 Kevin Kawakita Digital media distribution cryptography using media ticket smart cards
US7660306B1 (en) * 2006-01-12 2010-02-09 Chelsio Communications, Inc. Virtualizing the operation of intelligent network interface circuitry
US7716411B2 (en) 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
US8332575B2 (en) * 2007-06-20 2012-12-11 Samsung Electronics Co., Ltd. Data management systems, methods and computer program products using a phase-change random access memory for selective data maintenance
US8095735B2 (en) 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US20090055157A1 (en) * 2007-08-23 2009-02-26 Beyond Blades Ltd. Server Having Remotely Manageable Emulated Functions
US8170062B2 (en) * 2009-04-29 2012-05-01 Intel Corporation Packetized interface for coupling agents
US9123409B2 (en) 2009-06-11 2015-09-01 Micron Technology, Inc. Memory device for a hierarchical memory architecture
US20110103391A1 (en) * 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US20110119469A1 (en) * 2009-11-13 2011-05-19 International Business Machines Corporation Balancing workload in a multiprocessor system responsive to programmable adjustments in a syncronization instruction
US8364844B2 (en) * 2009-11-13 2013-01-29 International Business Machines Corporation Deadlock-free class routes for collective communications embedded in a multi-dimensional torus network
US9087200B2 (en) * 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
US9263102B2 (en) * 2010-09-28 2016-02-16 SanDisk Technologies, Inc. Apparatus, system, and method for data transformations within a data storage device
US8892844B2 (en) 2011-03-07 2014-11-18 Micron Technology, Inc. Methods of accessing memory cells, methods of distributing memory requests, systems, and memory controllers
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US9058338B2 (en) 2011-10-26 2015-06-16 International Business Machines Corporation Storing a small file with a reduced storage and memory footprint
US9665521B2 (en) * 2012-05-18 2017-05-30 Dell Products, Lp System and method for providing a processing node with input/output functionality by an I/O complex switch
US9602437B1 (en) * 2012-10-03 2017-03-21 Tracey M. Bernath System and method for accelerating network applications using an enhanced network interface and massively parallel distributed processing
KR20150098649A (ko) * 2012-12-22 2015-08-28 퀄컴 인코포레이티드 비-휘발성 메모리의 이용을 통한 휘발성 메모리의 전력 소비 감소
US10042750B2 (en) * 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US9910675B2 (en) * 2013-08-08 2018-03-06 Linear Algebra Technologies Limited Apparatus, systems, and methods for low power computational imaging
US9921980B2 (en) * 2013-08-12 2018-03-20 Micron Technology, Inc. Apparatuses and methods for configuring I/Os of memory for hybrid memory modules
US9648148B2 (en) * 2013-12-24 2017-05-09 Intel Corporation Method, apparatus, and system for QoS within high performance fabrics
JP6637906B2 (ja) * 2014-05-08 2020-01-29 マイクロン テクノロジー,インク. ハイブリッドメモリキューブシステム相互接続ディレクトリベースキャッシュコヒーレンス方法
US9460019B2 (en) * 2014-06-26 2016-10-04 Intel Corporation Sending packets using optimized PIO write sequences without SFENCEs
JP2016062406A (ja) * 2014-09-19 2016-04-25 国立大学法人 筑波大学 メモリシステム、メモリシステムの制御方法及びプログラム
US10685042B2 (en) 2014-12-22 2020-06-16 Amazon Technologies, Inc. Identifying join relationships based on transactional access patterns
US9495303B2 (en) * 2015-02-03 2016-11-15 Intel Corporation Fine grained address remapping for virtualization
US20160378545A1 (en) * 2015-05-10 2016-12-29 Apl Software Inc. Methods and architecture for enhanced computer performance
CN108351829B (zh) * 2015-09-25 2022-06-28 英特尔公司 用于输入/输出计算资源控制的系统和方法
US9620201B1 (en) 2016-04-26 2017-04-11 Sandisk Technologies Llc Storage system and method for using hybrid blocks with sub-block erase operations
US10762030B2 (en) * 2016-05-25 2020-09-01 Samsung Electronics Co., Ltd. Storage system, method, and apparatus for fast IO on PCIE devices
US10713202B2 (en) * 2016-05-25 2020-07-14 Samsung Electronics Co., Ltd. Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports
US10521118B2 (en) * 2016-07-13 2019-12-31 Sandisk Technologies Llc Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB)
PL3812900T3 (pl) * 2016-12-31 2024-04-08 Intel Corporation Systemy, sposoby i aparaty do obliczania heterogenicznego
US10402335B2 (en) * 2017-03-31 2019-09-03 Intel Corporation Method and apparatus for persistently caching storage data in a page cache
US10261708B1 (en) * 2017-04-26 2019-04-16 EMC IP Holding Company LLC Host data replication allocating single memory buffers to store multiple buffers of received host data and to internally process the received host data
US11379411B2 (en) * 2019-01-07 2022-07-05 Vast Data Ltd. System and method for replicating file systems in remote object storages
DE112020000925T5 (de) * 2019-02-25 2021-11-04 Mobileye Vision Technologies Ltd. Systeme und verfahren zur fahrzeugnavigation
US11127167B2 (en) * 2019-04-29 2021-09-21 Nvidia Corporation Efficient matrix format suitable for neural networks
CN117073704A (zh) * 2020-03-30 2023-11-17 御眼视觉技术有限公司 使用电子地平线导航交通工具
US20220027379A1 (en) * 2020-07-21 2022-01-27 Observe, Inc. Data capture and visualization system providing temporal data relationships

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160342341A1 (en) * 2014-02-28 2016-11-24 Hewlett-Packard Development Company, L.P. Mapping mode shift
US20160328169A1 (en) * 2015-05-05 2016-11-10 Sap Se Managed energy-efficient hybrid main memory systems
TW201710910A (zh) * 2015-08-27 2017-03-16 三星電子股份有限公司 交易式混合記憶體模組及其操作方法
US20170206166A1 (en) * 2016-01-14 2017-07-20 Seagate Technology Llc Cache bypass utilizing a binary tree
TW201805825A (zh) * 2016-08-03 2018-02-16 美光科技公司 混合式記憶體驅動器,電腦系統,及用於操作多重模式混合式驅動器之相關方法

Also Published As

Publication number Publication date
WO2020055534A1 (en) 2020-03-19
US20200081853A1 (en) 2020-03-12
US11835992B2 (en) 2023-12-05
US20210191887A1 (en) 2021-06-24
EP3850474A4 (en) 2022-06-29
TW202030594A (zh) 2020-08-16
EP3850474A1 (en) 2021-07-21
KR20210043001A (ko) 2021-04-20
JP2021536643A (ja) 2021-12-27
CN112703481A (zh) 2021-04-23
US10977198B2 (en) 2021-04-13

Similar Documents

Publication Publication Date Title
JP6709245B2 (ja) 適応持続性システム、方法、インタフェース
WO2016082196A1 (zh) 文件访问方法、装置及存储设备
EP3073384B1 (en) Fork-safe memory allocation from memory-mapped files with anonymous memory behavior
TWI696188B (zh) 混合式記憶體系統
JP2022548642A (ja) タイプ付けされていないメモリアクセスのタイプ付けされているメモリアクセスに対するマッピング
TWI764265B (zh) 用於將資料連結至記憶體命名空間的記憶體系統
US10114763B2 (en) Fork-safe memory allocation from memory-mapped files with anonymous memory behavior
US11645011B2 (en) Storage controller, computational storage device, and operational method of computational storage device
JP2022548887A (ja) メモリタイプへのページテーブルフック
US10126962B2 (en) Adapted block translation table (BTT)
US20190294356A1 (en) Hybrid memory system
US11151064B2 (en) Information processing apparatus and storage device access control method
US20240053917A1 (en) Storage device, operation method of storage device, and storage system using the same
KR20180041037A (ko) 멀티 코어 솔리드 스테이트 드라이브의 공유 분산 메모리 관리 방법
KR20200117032A (ko) 하이브리드 메모리 시스템
KR20220050177A (ko) 3단의 계층적 메모리 시스템
TWI741357B (zh) 用於記憶體操作之運算系統及其操作方法
EP4105771A1 (en) Storage controller, computational storage device, and operational method of computational storage device
US20200348874A1 (en) Memory-fabric-based data-mover-enabled memory tiering system
KR20220159270A (ko) 스토리지 장치 및 그 동작 방법
CN115525604A (zh) 键-值存储设备、主机和主机存储系统