TW201227297A - Method and system for hijacking writes to a non-volatile memory - Google Patents

Method and system for hijacking writes to a non-volatile memory Download PDF

Info

Publication number
TW201227297A
TW201227297A TW100143198A TW100143198A TW201227297A TW 201227297 A TW201227297 A TW 201227297A TW 100143198 A TW100143198 A TW 100143198A TW 100143198 A TW100143198 A TW 100143198A TW 201227297 A TW201227297 A TW 201227297A
Authority
TW
Taiwan
Prior art keywords
command
data
subsequent
commands
storage device
Prior art date
Application number
TW100143198A
Other languages
English (en)
Inventor
Rotem Sela
Moshe Raz
Paul Yaroshenko
Original Assignee
Sandisk Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sandisk Technologies Inc filed Critical Sandisk Technologies Inc
Publication of TW201227297A publication Critical patent/TW201227297A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Read Only Memory (AREA)

Description

201227297 六、發明說明: 【發明所屬之技術領域】 本申4案大體而言係關於管理一記憶體系統中之資料。 更具體而言,本申請案係關於一記憶體系統之操作,其使 得一主機應用程式能夠在資料儲存於該記憶體系統中之前 發送該資料以進行操縱(例如,加密 此申。青案主張對2010年12月10曰提出申請之美國申請案 第12/965,503號之優先權,美國申請案第12/965,5〇3號之整 體以引用方式併入本文中。 【先前技術】 已廣泛採用非揮發性記憶體系統(例如,快閃記憶體)用 於主機裝置中,例如消費者產品。快閃記憶體可呈不同形 式存在,例如,呈可在主機裝置之間攜載之一便攜式記憶 體卡之形式或作為嵌入一主機裝置中之一固態磁碟 (SSD) 〇 、 與一主機系統100組合之一記憶體系統1〇2之一實例展示 於圖1中。主機系統1〇〇包含一或多個主機應用程式11〇及 一主機作業系統108。主機作業系統1〇8包含裝置驅動程式 Π4。記憶體系統1〇2包含一系統控制器U8及一記憶體 116。記憶體系統102可呈一卡之形式,該卡經由圖i中所 圖解說明之一機械與電連接器之配接部分1〇4及1〇6以可拆 卸方式連接至主機系統100。 主機應用程式110在主機作業系統108之頂部執行,包含 使用一應用程式設計介面(八!>1)112向主機作業系統發出系 160101.doc 201227297 統呼叫。更具體而言,API 112係由主機應用程式u〇(或其 他軟體程式)所實施使得主機應用程式110能夠與其他軟體 (例如’記憶體系統1 〇2)互動之一介面。 在涉及存取記憶體系統102之系統呼叫中,主機作業系 統108具有其可相對於記憶體系統102執行之一命令集,且 使用裝置驅動程式114組態來自該命令集之一命令。特定 而言’裝置驅動程式114針對記憶體系統1〇2之特定類型 (例如,快閃記憶體、RAM、靜態RAM等)及特定動作(例 如’讀取、寫入等)來格式化該命令。 舉例而言,主機作業系統1〇8發送一命令以讀取特定邏 輯區塊位址(LBA)處之記憶體位置。邏輯區塊係經定義而 具有與一實體區塊相同大小之一虛擬位址空間單位。_邏 輯區塊通f係由—邏輯分區内之-邏輯區塊位址(LBA)所 識別之512個主機資料位元組。每-邏輯區塊包含與自該 主機裝置接收之資料相關聯之—系列邏輯區塊位址 (LBA)。接著將LBA映射至該資料實體儲存於其中之該快 ^ °己隐體_之—或多個實體區塊。系統控制器118可在命 令中之LBA與記憶體116之實體位址之間進行轉換。 纟向主機#業***添加新功能性彳包含擴展該主機作業系 :先中之命令集。舉例而t,向該主機作業系統中之命令集 、、資料加密可包含—升級,例如藉由修改現有裝置驅動 式或添加新驅動程式。然而,存在升級該主機作業系統 係不可行或不可能之時候。 文所_述,主機作業系統可存取LBA,該等用 16010 丨 201227297 於表述對記憶體卡102之命令。然而,主機裝置之其他部 分(例如,主機應用程式110)通常不曝露於LBA。為了使用 主機應用程式實施新功能性,先前解決方案將LB A提供至 主機應用程式。 種解決方案係使主機應用程式自儲存裝置複製主機槽 案系統,且使用所複製主機檔案系統提供檔案之LBA。然 而,此解決方案導致檔案系統之多個拷貝,其中傳統主機 擋案系統係由主機作業系統管理且複製品主機檔案系統係 由主機應用程式管理。一第二種解決方案係使主機應用程 式針對檔案之LBA查詢主機作業系統。然而,此解決方案 不可用,乃因主機作業系統可不支援針對LBA之查詢。 因此,用以使用檔案系統將LBA提供至主機應用程式之 兩種解決方案皆遭受缺點。 【發明内容】 本發明之實施例由申請專利範圍定義,且不應將此章節 中之任何内容視為對彼等申請專利範圍之一限制。為應對 對存取記憶體系統上之增強功能之需要,本文中揭示用於 在不修改主機作業系統之情形下實現對記憶體系統中之增 力月b之存取之方法及系統。根據一個實施例,一種用於 攔截命令之方法係由以操作方式耦合至一主機之一儲存裝 置來執仃。該方法包含該儲存裝置自該主機接收一命令及 。或多個後續命令。該命令指示欲由該儲存裝置執行之一 操作(例如,加密)且包含一識別符。該一或多個後續命令 札不另一操作(例如,到該儲存裝置之記憶體之一寫入)。 16010 l.doc 201227297 該儲存裝置接著使用該識別符分析該一或多個後續命令以 判定是否執行該操作。前面的命令可係關於一搁截操作之 一「棚截」命令。該方法使用來自該攔截命令之該識別符 分析後續接收之命令以判定是否攔截一後續接收之命令。 後續接收之命令之棚截可包含代替一後續接故之命令中所 指示之操作執行該棚截操作,或其可包含除該後續接收之 命令中所指示之該操作外亦執行該棚截操作。以此方式, 該儲存裝置可藉由分析該攔截命令且使用該搁截命令中所 發送之該識別符來執行該棚截操作代替一後續接收之命令 中所扣不之操作來判定是否攔該後續接收之命令。 在一項態樣中,該命令中之該識別符係—資料序列⑽ 如 簽早且由該儲存裝置所執行之該分析涉及判定 ㈣續命令是否包含該資料序列(例如,判定在 人寫入命令之有效負載十是否存在指示一信任快閃搁截命 v之簽章)。在另一態樣中該命令中之該識別符係一 命“立址(例如’ _LBA),且由該儲存裝置執行之該分析 係比較該-或多個後續命令中之一或多個後續位址與該命 :位址(例如’判定該一或多個後續位址是否在如由該命 疋義之範圍中或判定該一或多個後續位址是否 #於該命令位址)。 該^截命令可係呈若干形式中之一者。-種形式係該攔 命7與該或多個後續命令係相同類型之命令,例如攔 截命7與該一或多個後續命令係儲存命令。舉例而言,該 棚截命令及該等後續命令兩種命令可係寫入命令。除被識 I6010l.doc 201227297 广寫入命令之外’該摘截命令亦可包八— 序列(例如,-簽章)以將該寫入命 卜或多個預定 該攔截命令可推 ^^ 吨〜為一攔截命令。 -加密操作)之一操作識別符(例如 ;^作(例如, 式係該攔戴命令係不同於該-或多個後嘖二)。另一種形 令。舉例而言,該搁截命令可係一控之類型之命 作碼或其他搁位指示該搁戴命令之操作:如令,其中-操 作)。 F(例如,一加密操 了判定攔截該後續命令’則對該後續命 至少-部分執行該棚截操作。除該後續之 ㈣亦可包含在該攔截命令卜 該資料之後,可使用該後續命令中所包含之一位址 將該經操縱資料(包含來自# + 一^a 該經操縱資料及來自 一後續命令之該經操縱資料)储存在該儲存裝置之—記憶 體中。 μ 根據另一實施例,提供包含一記憶體、一介面及一控制 器之-儲存裝置。該介面經組態以接收一命令及一或多個 後續命令’該命令指示欲由該儲存裝置執行之一操作且包 含一識別符’該-或多個後續命令中之每一者指示欲由該 儲存裝置執打之另-操作且包含資料。該控制器經組態以 使用該識別符分析該一或多個後續命令以判定是否對該一 或多個後續命令中之該資料執行該操作。回應於判定執行 »亥操作,該控制器對該一或多個後續命令中之該資料之至 ’ 邛刀執行該操作。在一項態樣中,該命令中之該識別 160101.doc 201227297 符係-資料序列(例如,一簽章),且由該儲存褒置所執行 之該分析係判;t該-或多個後續命令是否包含該資料序 列。在另-態樣中,該命令中之該識別符係一命令位址 (例如’ -LBA),且由該儲存裝置所執行之該分析係比較 該-或多個後續命令中之—或多個後續位址與該命令。 根據又_實施例,提供—種管理以操作方式轉合至一主 機之-儲存裝置。該方法包含該儲存裝置經由一控制器介 面自該主機接收-控制器命令。該控制器命令可係一進階 安全SD(ASSD)命令,且該控制器介面包含用於與該储存 裝置上之該控制器通信之—或多個Αρι。該儲存裝置針對 指不-操作(例如加密操作)之資訊分析該控制器命令 之至少-部分。該儲存裝置接著經由該儲存裝置之一儲存 介面自該主機接收-儲存命令。該儲存命令與針對該儲存 裝置之該記憶體之儲存動作相關(例如,對該記憶體之一 讀取或寫人命令),且㈣存介面包含用於關㈣储存裝 置上之-記憶艘執行儲存動作之一或多個應用程式設叶介 面叫該儲存裝置判定該儲存命令是否包含一預定序 列(例如,一簽章)。如果是,則該儲存裝置藉助該控制器 命令中所指示之操作修改該儲存命令中之資料之至少一部 分0 根據另-實施例,提供一種包含一記憶體、一控制器介 面、-儲存介面及-控制器之一儲存裝置。該控制器介面 經組態以處理-或多個控制器命令,且可包含用於處理該 等控制器命令之-或多個API。該餘存介面經組態以處理 160101.doc 201227297 或夕個儲存命令,且可包含用於處理該等儲存命令之一 $多個API。該控制器經組態以··針對指示—操作之 分析該-或多個控制器命令之至少一部分;判定該—或多 個儲存命令是否包含―預^資料序列;及回應於判定該一 或多個儲存命令包含該預定資料序列,藉助該操作修改該 一或多個儲存命令中之資料之至少一部分。 在審閱以下圖式、詳細說明及中請專利範圍之後,將明 瞭其他特徵及優點。另夕卜,揭示其他實施例,且可獨立地 使用該等實施例中之每—者或將其組合在—起來使用。現 在將參考附圖闞述該等實施例。 【實施方式】 適用於實施本發明之若干態樣之一快閃記憶體系統展示 於圖2至圖7中。圖2之一主機系統200將資料儲存至一記憶 體系統202中且自該記憶體系統2〇2擷取資料。記憶體系統 2〇2可係嵌入於該主機内之快閃記憶體,例如呈安裝於— 個人電腦中之一固態磁碟(SSD)機之形式。另一選擇為, 記憶體系統202可係呈一卡之形式,該卡經由圖2中所圖解 說明之一機械與電連接器之配接部分1〇4及1〇6以可拆卸方 式連接至該主機。經組態以用作一内部或嵌入式SSD機之 一快閃記憶體看起來可類似於圖2之示意圖,其中主要差 異在於記憶體系統202在主機内部之位置。SSD機可係呈 離散模組之形式,該等離散模組係用於使磁碟機旋轉之簡 易替換件。 一市場上可購得之SSD機之一個實例係由SanDisk公司所 160101.doc 201227297 生產之一32十億位元組SSD。市場上可購得之可抽換式快 閃記憶體卡之實例包含c〇mpactFUsh(CF)、MuhiMediaCd (MMC)、Secure Digital(SD)、、記憶體棒及 TransFlash+。儘管此等卡中之每一者根據其標準化規範 而具有一唯一機械及/或電介面,但每一卡中所包含之快 閃記憶體系統皆類似。此等卡皆可自SanDisk公司(本申請 案之受讓人)購得。SanDisk還以其Cruzer商標提供一系列 快閃隨身碟,其為呈小封裝形式之手持式記憶體系統,該 等手持式記憶體系統具有用於藉由***至一主機之usb插 孔内而與該主機連接之一通用串列匯流排(USB)插頭。此 等記憶體卡及快閃隨身碟中之每一者皆包含與該主機介接 並控制快閃記憶體在其中之操作之控制器。 可使用SSD、記憶體卡及快閃隨身碟之主機系統數量眾 夕且多種多樣。其包含個人電腦(PC),例如桌上型或膝上 型及其他便攜式電腦、蜂巢式電話、個人數位助理 (PDA)、數位照相機、數位攝像機及便攜式音訊播放器。 對於便攜式記憶體卡應用,一主機可包含用於一或多種類 型之s己憶體卡或快閃隨身碟之一内建插孔,或一主機可需 要一記憶體卡***其中之配接器。記憶體系統通常含有其 自身的記憶體控制器及驅動程式,但亦存在某些替代地由 該記憶體連接至其之主機執行之軟體所控制之唯記憶體系 統。在某些含有控制器之記憶體系統(尤其係彼等嵌入於 一主機内之記憶體系統)中’記憶體、控制器及驅動程式 通常形成於一單個積體電路晶片上。 160101.doc -10· 201227297 就記憶體系統202而言,可將圖2之主機系統2〇〇視為具 有兩個主要部件,該兩個主要部件由電路與軟體之一組合 構成。該兩個主要部件係一應用程式部分(其包含主機應 用程式204及增強API 206)及主機作業系統丨〇8(其包含裝置 驅動程式114)。 如下文更詳細地論述,該應用程式部分實現存取主機作 業系統108無法存取之記憶體系統2〇2之增強功能性。圖2 將增強API 206繪示為使得主機應用程式能夠存取記憶體 系統202之增強功能性之部分。另一選擇為,用以存取記 憶體系統202之增強功能性之軟體可駐存於主機應用程式 204中或主機應用程式2〇4與增強API 206之一組合中。 主機系統200可包含一處理器(例如,一微處理器、中央 處理單元(CPU)、微控制器等)及一記憶體(例如,揮發性 及非揮發性§己憶體)(未展示)以便執行應用程式部分及主機 作業系統,例如運行一或多個主機應用程式2〇4及主機作 業系統108。主機應用程式204可包含(例如)文字處理、圖 形、控制或其他普遍應用程式軟體。主機作業系統1〇8可 包括用於管理主機系統2〇〇上之資料之軟體。在主要專門 執行單一組功能之一相機、蜂巢式電話或其他主機系統 中,主機應用程式204可包括操作相機來照相及儲存圖 片、操作蜂巢式電話來發出呼叫及接收呼叫等之軟體。 圖2之記憶體系統202可包含非揮發性記憶體(例如,— 多圯憶體庫快閃記憶體116)及一系統控制器2丨8。該系統 控制器與記憶體系統202連接至其以用於來回傳遞資料之 160101.doc -11 · 201227297 主機系統200介接,且控制記憶體丨“。系統控制器2i8可 在資料程式化及讀取期間在由主機2〇〇所使用之資料之邏 輯位址與多記憶體庫快閃記憶體116之實體位址之間轉 換。多記憶體庫快閃記憶體116可包含任一數目之記憶體 庫12 0且在圖2中簡單地以圖解說明方式展示四個記憶體 庫。在功能上,系統控㈣器218可包含與主機系統2〇〇介接 之一前端222、用於協調記憶體116之操作之控制器邏輯 224、用於内部記憶體管理操作(例如,系統初始化、寫入 資料於-區塊内、壞區塊管理及處置區塊鏈接資訊)之快 閃記憶體管理邏輯2 2 6以及用以在系統控制器2 i 8與快問記 憶體216之間提供-通信介面之—或多個快閃記憶體介面 模組(觀)228。如下文更詳細地論述,控制器邏輯η4包 含增強功能性(例如’加密)且處理往來於主機系統2⑼的與 增強功能性相關之通信(例如,由增強Αρι 2〇6所產生之命 令)。 系統控制器218可實施於一單個積體電路晶片上,例如 圖3中所展示之一專用積體電路(ASIC)。系統控制器2 i 8之 處理器306可組態為一多執行緒處理器,其能夠經由一記 憶體介面304與各別記憶體庫22G中之每—者單獨通信該 記憶體介面304具有針對多記憶體庫㈣記憶體ιΐ6中之各 別記憶體庫220中之每-者之1/〇槔。系統控制器218可包 3内部時鐘318。處理器306經由一内部資料匯流排3〇2 與一錯誤校正碼(ECC)模組314、一 RAM緩衝器312、一主 機介面316及開機程式碼R〇M31〇通信。 160101.doc 201227297 多β己憶體庫快閃記憶體116中之每一記憶體庫22〇可包括 一或多個積體電路晶片,其中每一晶片可含有組織成多個 平面之一記憶體胞陣列。對一單個晶片上之一記憶體庫 4〇〇之一圖解說明展示於圖4中。圖4之記憶體庫4〇〇出於簡 單起見展示此等平面410及412,但可替代使用更大數目個 平面’例如四個或八個平面。另一選擇為,可不將一記憶 體庫之記憶體胞陣列劃分成平面。然而,當如此劃分時, 每一平面皆具有其自身的可相互獨立操作之行控制電路 414及416。電路414及416自系統匯流排402之位址部分4〇6 接收其各別記憶體胞陣列之位址,並將其解碼,以對各別 位元線418及420中之特定一或多者進行定址。回應於在位 址匯流排上接收之位址藉由列控制電路424對字線422進行 定址。源極電壓控制電路426及428亦與各別平面連接,ρ 井電壓控制電路430及432亦係如此。若記憶體庫4〇〇呈具 有一單個記憶體胞陣列之一記憶體晶片之形式,且若在系 統中存在兩個或兩個以上此類晶片,則每一晶片之陣列皆 可類似於上述多平面晶片内之一平面進行操作。 資料透過與系統匯流排402之資料部分404連接之各別資 料輸入/輸出電路434及436傳送至平面410及412及自平面 410及412傳送出。電路434及436使得藉由透過各別行控制 電路414及416連接至該等平面之線438及440既能夠將資料 程式化至記憶體胞内,又能夠自其各別平面之記憶體胞讀 取資料。 每一記憶體庫220中之每一記憶體晶片含有執行來自控 160101.doc -13- 201227297 制器218之命令以執行此等功能之某一控制電路。介面電 、 . 路442連接至系統匯流排402之控制及狀態部分4〇8。將來 自控制Is 218之命令提供至一狀態機444,狀態機444接著 提供對其他電路之特定控制,以便執行此等命令。控制線 446至454將狀態機444與此等其他電路連接,如在圖4中所 展示。來自狀態機444之狀態資訊經由線456傳遞至介面 442,以便經由匯流排部分408傳輸至控制器218。 下文論述記憶體胞陣列410及412之一 NAND架構,但替 代地可使用其他非揮發性記憶體架構或技術,單獨形式或 組合形式的’例如NOR。圖5之電路圖圖解說明一實例性 NAND陣列,其係圖4之記憶體庫400之記憶體胞陣列41〇之 一部分。提供大量全域位元線,然而為使解釋簡明起見, 在圖5中僅展示四個此類線502至5〇8。若干個串聯連接之 記憶體胞串510至524連接於此等位元線中之一者與一參考 電位之間。使用記憶體胞串5 14作為代表性實例,複數個 電何儲存記憶體胞526至532與所述串兩端處之選擇電晶體 534及536串聯連接。當使一串之選擇電晶體導電時,所述 串便連接於其位元線與參考電位之間。接著每次對該串内 之一個記憶體胞進行程式化或讀取。 圖5之子線538至544個別地延伸跨越若干個記憶體胞串 中之每一者中之一個記憶體胞之電荷儲存元件,且閘極 546及550控制所述串每一端處之選擇電晶體之狀態。使共 用共同字線及控制閘極線538至550之記憶體胞串形成被一 同擦除之一 §己憶體胞區塊552。此記憶體胞區塊含有可同 160101.doc 14 201227297 時實體擦除之最小數目之記憶體胞。每次對沿字線53 8至 544中之一者之彼等記憶體胞中之一列記憶體胞進行程式 化。通常’以一指定次序對一 NAND陣列之若干列進行程 式化’在此情況下自沿最靠近於連接至接地或另一共同電 位之串之端部的字線544之列開始。接下來程式化沿字線 542之記憶體胞列,且依此類推而貫穿整個區塊552。最 後’對沿字線538之列進行程式化。 一第二個區塊554與此類似,其記憶體胞串與第一個區 塊552中之串連接至相同全域位元線,但具有一組不同字 線及控制閘極線。字線及控制閘極線由列控制電路524驅 動至其適當操作電壓。若在系統中存在-個以上平面(例 如圖4之平面丨及2),則一個記憶體架構使用在其之間延伸 之共同字線》另一選擇為’可存在兩個以上共用共同字線 之平面在其他s己憶體架構中,單獨驅動個別平面之字 線。 —該等。己隐體胞可經操作以儲存兩個電荷位準,以使得在 母- §己憶體胞中健存—單個f料位元^此通常稱為二進 或皁位階記憶體胞(SLC)記憶體。另-選擇為,記憶體胎 可經操作以在每—電荷儲存元件或區域中儲 偵測電荷位準’藉此在每-者中儲存-個以上資料位Γ 此後-組態稱為多位階記憶體胞(MLC)記憶 :。 中可使用兩種齠刑> —& a 甘一糸統 種類1之§己憶體胞,舉例而言, 憶體可用於快取資Μ Β 退制快閃記 玳取貢枓且MLC記憶體可用於長期 體胞之電荷儲存元 烯存。記憶 兩仔疋件最常見地係導電浮動閘極 |一乃一選 I60101.doc 201227297 擇為可係非導電介電電荷陷獲材料β 圖6在概念上圖解說明多記憶體庫快閃記憶體ιΐ6(圖”之 一個記憶體庫220之一組織,在下文之進一步說明中使用 該組織作為一實例。四個記憶體胞平面6〇2至6〇8可位於一 單個積體記憶體胞晶片上、兩個晶片上(每一晶片上兩個 平面)或四個單獨晶片上。該特定配置對於下文論述並不 重要。當然,在一系統中還可存在其他數目個平面,例如 1個、2個、8個、16個或更多個。所述平面個別地劃分成 在圖6中由矩形所展示之記憶體胞區塊,例如位於各別平 面602至608内之區塊610、612、614及616»每一平面内可 存在數百個或數千個區塊。 如上文所提及,記憶體胞區塊係擦除單位,即可一同實 體擦除之最小記憶體胞數目。然而,為增加平行性各區 塊以更大的後設區塊單位操作。將來自每一平面之一個區 塊邏輯上鏈接在一起以形成一後設區塊。圖中展示四個區 塊610至616形成一個後設區塊618。一後設區塊内之所有 記憶體胞通常被一同擦除。用於形成一後設區塊之區塊無 需限於在其各別平面内之相同相對位置,如由區塊622至 628所構成之一第二後設區塊62〇中所展示。儘管通常較佳 -地使後設區塊延伸跨越所有平面,然而為獲得高系統效 能,該記憶體系統可經操作而能夠動態地形成由不同平面 内一個、兩個或二個區塊中之任一或所有區塊組成之後設 區塊。此允許後設區塊之大小更密切地匹配在一次程式化 操作中可供儲存之資料量。 160101.doc •16.
201227297 出於操作目的,如在圖7中所圖解說明,又將個別區塊 劃分成記憶體胞頁。舉例而言,區塊61〇至616中之每一者 之記憶體胞各自被劃分成八個頁p〇至p7。另一選擇為,每 一區塊内可存在16個、32個或更多個記憶體胞頁。頁係一 區塊内之資料程式化單位,其含有可同時程式化或讀取之 最小資料量。在圖4之NAND架構中,一頁係由沿一區塊内 之子線之s己憶體胞形成。然而,為增加記憶體系統操作 平行性,可將兩個或兩個以上區塊内之此類頁在邏輯上鏈 接成後設頁。圖7中圖解說明一後設頁7〇2,其係由來自四 個區塊610至616中之每一者之一個實體頁形成。舉例而 言’後設頁702包含四個區塊中之每一者中之頁p2,但一 後》又頁之各頁未必需要在每一區塊内具有相同相對位置。 在一 έ己憶體庫内,一後設頁係最大程式化單位。 如上文所述’圖6至圖7圖解說明可在多記憶體庫記憶體 116之一個記憶體庫22〇中存在之記憶體胞配置之一個實施 例在一項實施例中’無論每一記憶體庫220之個別記憶 體胞組態如何’皆將記憶體分解成複數個實體子陣列,該 複數個實體子陣列各自映射至唯——組主機LBA位址(本 文中稱為LB Α區域)。 如上文所論述’主機作業系統108與裝置驅動程式114組 〇將命令發送至記憶體系統2G2。在記憶體系統202包含主 機作業系統108無法存取之額外或增強功能性之情形下, 主機作業系統1〇8無法發送一命令以存取該增強功能性。 並非升級或修改主機作業系統丨以便存取記憶體系統2〇2 160101.doc •17· 201227297 上之額外或增強功能性,修改主機系統2〇〇之一不同部分 以便通知記憶體系統2()2應用增強功能性。舉例而言修 改該應用程式部分(例如’主機應用程式⑽或一趟(包含 增強API 206)中之-者或兩者)以使纟機系統2〇〇能夠存取 記憶體系統202上之增強功能性。 應用程式部分可仍然使用主機作業系統丨〇 8之現有功能 性,例如主機作業系統丨〇8可發送之一或多個命令。舉例 而言,應用程式部分可呼叫主機作業系統1〇8產生對記憶 體系統之一寫入命令以將資料寫入至記憶體116。一寫入 命令之一個實例係一 SD寫入命令,其中SD寫入命令指示 對記憶體系統202之一命令以將資料寫入至記憶體116。一 SD寫入命令之實例僅係用於說明之目的。預期其他命令。 使用主機作業系統1〇8之現有命令,應用程式部分可發 送一攔截命令及用於攔截之一或多個後續命令。實務中, 記憶體系統202接收該攔截命令,且在檢閱該攔截命令之 後’將該命令識別為一攔截命令。記憶體系統2〇2接著可 儲存該攔截命令中之一識別符(例如,一資料序列或一位 址)。S §己憶體系統202接收後續命令時,記憶體系統202 可使用所儲存識別符分析後續命令中之至少一項態樣(例 如’後續命令之有效負載中之資料之一部分或後續命令中 所包含之一位址)’且基於該分析判定是否攔截後續命 令。 在一項態樣中,當存取主機作業系統108之現有功能性 時’應用程式部分包含一或多個預定資料序列(例如,一
160101.doc S 201227297 1多個簽章)。舉例而言,作為對主機作業系統108之-呼 寫入命令之部分,應用程式部分發送一或多 貝料序列作為欲寫入至記憶體116之資料。主機作 統⑽包含-或多個預定資料序列作為—㈣入命令 之效負载’且將該SD寫入命令發送至記憶體系統 自記憶體系統202之角度來看,記憶體系統加使用在一 先前命令中接收之識別符來判定是否棚截—所接收命令。 該識別符可係料序列(例如,—簽章),且記憶體系統 2〇2可分析該所接收命令以判定該所接收命令是否包含該 資料序列。若所接收命令包含該資料序列(或該資料序列 之一變化形式)’則攔截所接收命令。另一選擇為,該識 別符可係-位址(例如,一攔截命令中之—位址),且記憶 體系統202可比較所接收命令中之位址與攔截命令令之位 址以判定是否棚截該所接收命令。 在第一態樣中,記憶體系統202接收一摘截命令,且儲 存該攔截識別符(例如,預定資料序列記憶體系統2〇2在 後續所接收命令中搜尋-或多個預定資料序列,且若發現 該等職資料序列,則解譯該SD寫入命令以進行棚戴,如 下文更詳細地論述。自主機作業系統1〇8之角度來看該 命令指示記憶體系統202執行一特定動作。由二該一或= 個預定序列’記憶體系統202藉由在執行由主機:業系統 ⑽所指示之動作之前執行一不同動作或藉由代替執行由 主機作業系統108所指示之動作而執行不同動作來「攔 截」該命令。舉例而言,經攔截命令可你一 、3 焉入命令之 160101.doc •19- 201227297 邛分^記憶體系統202可檢閱該SD寫入命令、狀該如寫 °匕3該或多個預定序列(例如,藉由檢閱該SD寫 入命令之有效負載)且在使用該SD寫入命令令之命令引數 (例如LBA)將資料寫入至記憶體j 16之前執行一動作(例 如,加密)。 。己憶體系統上之增強功能性之實例可包含(但不限於)資 料加密、資料解密、資料串流化、資料置亂、資料解置亂 及/或資料浮水印。 在一第一實施例中,記憶體系統2〇2處理在不依賴於命 令中之LBA之情形下存取增強功能性之命令。然而,lba 可由3己憶體系統202用於與該命令相關之其他動作,例如 回應於接收到一寫入命令而將資料寫入於記憶體ιΐ6中。 在一項實施例中,初始命令(例如,攔截命令)可包含一或 多個預定資料序列(例如,一或多個簽章)及藉助增強功能 性操縱之資料。如下文更詳細地論述,主機可分離經受操 縱之資料,且與該攔截命令一起發送該資料之部分,且在 後續命令中發送該資料之一其餘部分。與該攔截命令一起 發送之資料之大小可取決於與後續命令一起發送之攔截資 料(包含下文相對於圖12所論述之簽章、NHS等)之大小。 在一替代實施例中,該等命令可包含一或多個預定資料 序列。該攔截命令不包含欲操縱之資料之任何部分,所有 欲操縱之資料皆在後續命令中發送。在又一卷 Q八貫施例 中,可在攔截命令中發送指示一操作之一識別符(例如 一串流ID)。該串流ID因此可指示不同於如該命令中所指 -20· 160101.doc
S 201227297 不之操作之一操作’如下文所論述。記憶體系統202中之 2統控制器218搜尋-或多個預定f料序列,且若發現該 -或多個預定資料序列,則系統控制器218藉助增強功能 性操縱該資料。 在一第二實施例中,記憶體系統202在命令中使用一位 址作為攔截識別符。舉例而言,記憶體系統2〇2處理藉由 依賴於命令中之LBA存取增強功能性之命令。應用程式部 分將-或多個預定資料序列(例如,一或多個簽章)及記憶 體116之。卩分之一識別(例如,一檔案名稱)發送至主機作業 系統108。主機作業系統丨〇8判定對應於該記憶體之該部分 之識別之LBA(例如,LBA或與儲存所識別擋案之記憶體相 關聯之一LBA範圍),且將一或多個預定資料序列及LBA發 送至δ己憶體系統202。記憶體系統202中之系統控制器2 J 8 搜尋一或多個預定資料序列,且若發現該一或多個預定資 料序列,則系統控制器2 18儲存自主機作業系統J〇8發送之 LBA。系統控制器218接著針對該等LBA搜尋來自主機系 統200之後續通信。舉例而言’系統控制器2丨8可比較後續 通k中之LB A與所儲存LB A,且基於該比較,藉助增強功 能性操縱在後續通信中發送之資料。特定而言,若後續通 4吕中之LBA在所儲存LBA之範圍内或相同於所儲存[βα, 則系統控制器21 8藉助增強功能性操縱在後續通信中發送 之資料。 該攔截命令可以若干方式中之一者自主機系統8〇〇發送 至記憶體系統808,如圖8之方塊圖中所繪示。特定而十, 16010 丨.doc -21- 201227297 圖8圖解說明其中可將細 明'爛截命令自主機系統8〇〇發送至記憶 體系統808之兩種不同古4、 J乃式。—種方式係經由命令通道發 送攔截命令。一命令诵# 遇道之一個實例包括主機應用程式 802藉以將一命令發样e 达至記憶體系統808之進階安全 SD(ASSD)通道,例如具古 ^丹有資料之一 ASSD寫入命令(圖8中 展示為ASSD寫入(資料u。, 、貝了叶))。經由ASSD通道發送之命令不經 由主機檔案系統1〇8發详,1 π 〇 赞送,如圖8中所展示。ASSD寫入命 7中之資料可包含―命令操作碼或規定攔n續發送之 命7之操作之其他機器語言指令。該資料亦可包含用於操 縱之資料’例如經受操縱之每—叢集之第―資料區塊之前 16個位元組,如圖12中所展示。ASSD命令係經由assd驅 動程式804發送至記憶體系統8〇8之系統控制器218。一介 面814可接收ASSD命令、檢閱ASSD命令且判定ASSD命令 應路由至控制器介面81〇。控制器介面81〇可包含用於與記 憶體系統上之控制器通信之一或多個Αρι。特定而言,控 制器介面810可處理ASSD命令以便將該ASSD命令識別為 一攔截命令且相應地通知該控制器(包含將LBa發送至該 控制器以用於後續監視)。 用以發送攔截命令之一第二種方式係經由使用主機作業 系統108之一主機檔案系統通道。此通道之一個實例係使 用基於擋案之命令通道(FBCC)。主機應用程式802可發送 包含「擋案名稱」及資料之一檔案寫入請求。該資料包含 棚截命令(例如,一或多個預定序列)及用於操縱之資料。 在圖12至圖14中圖解說明該資料之一實例。主機作業系統 -22- 160101.doc
S 201227297 i〇8接收檔案寫入請求且基於「檔案名稱」來判定lba。 主機作業系統108接著產生將LBA作為命令引數中之一者 且將該資料作為有效負載之一 SD寫入命令。接著經由SD 驅動程式806將SD寫入命令發送至記憶體系統8〇8。介面 814可接收該SD寫入命令、檢閱該81)寫入命令且判定該sd 寫入命令應路由至儲存介面812。儲存介面812可包含用於 藉助儲存裝置上之一記憶體執行儲存動作之一或多個應用 程式設計介面(APIp特定而言,儲存介面812可處理81)寫 入命令以便將SD寫入命令識別為一攔截命令且相應地通知 該控制器(包含將LBA發送至該控制器以用於後續監視)。 如圖8中所展示,用以發送攔截命令之兩種方式(經由命令 通道及基於檔案之命令通道)係由兩個箭頭816、818繪 示。可經由同一電線針對兩種方式發送攔截命令(例如, 主機800與記憶體系統808之間的同一4電線連接)。然後, 取決於命令之類型,該攔截命令由不同Αρι處理(經由控制 器介面810及儲存介面812)。 可經由主機檔案系統通道將後續寫入命令自主機系統 800發送至s己憶體系統808,如圖9之方塊圖中所繪示。'主 機應用程式802發送包含「擋案名稱」及資料乏一擋案寫 入請求°肖「樓案名稱」係與相對於圖8闡述之槽案名稱 相同之槽案名稱。該資料包含—或多個預定資料序列及用 於操縱之資料。圖12中圖解說明該資料之一實例。主機作 業系統1G8接收播案寫人請求且基於該「標案名稱」判定 ⑽。主機作業系統m接著產生將LBA作為命令引數中 160101.doc •23· 201227297 之一者且將該資料作為有效負載之一 SD寫入命令。接著, 經由SD驅動程式806將SD寫入命令發送至記憶體系統 80^介面814可接收SD寫入命令、檢閱SD寫入命令且判 定該SD寫入命令應路由至儲存介面812。 如下文更詳細地論述,在記憶體系統8〇8接收該攔截命 令(透過命令通道或透過主機檔案系統通道)之後,記憶體 系統808開始監視一或多個預定值(例如,在自主機系統接 收之每一磁區之開始處之一「基本簽章值」,如圖12中所 展示)。在記憶體系統808識別該一或多個預定值之情形 下,該s己憶體系統藉由藉助一或多個功能操縱該命令中之 資料來「棚截」該命令。 圖10係圖解說明自主機系統之角度來看之第 一流程圖麵。在—項實施例中’主機系統產生在不依 於命令中之LBA之情形下存取記憶體系統中之增強功能 的包含-攔截命令及—或多個後續命令之_系列命令。 1002處,主機系_啟用於寫人之-信任㈣_流以便 生串机ID 〇如下文更詳細地論述,該棚截命令可包含欲 記憶體系統2〇2執行之操作之-指示。欲執行之操作之 指示之—個實例係串流ID。主機系統可開啟串流以便向 S己憶體系統定義一數學函數。作為回 將該串流ID發送至“ ㈣體系統 該主機系統,該串流ID可係已在該主 系統·與該記憶體系統2〇2之間開啟之「争流 別。該串流定義欲勃你+ 1 ’」 功能所必須之定義,:能’例如加密’且包含執行. 例如定義用於加密及解密之密碼編: 16010l.doc
•24- 201227297 金鑰。因此’該串流①可充奁 飭宜 死备用以向記憶體卡定義功能之 一簡寫。舉例而言,該串Λ ;, 可係發送至記憶體系統202 之一命令中之一引數( ’―SD寫入命令之有效負載 中),且向記憶體系統2〇2指 a不主機系統200請求記憶體系 統202藉助特定功能操縱(例如, 藉助預定義金鑰加密)》 在1004處,應用程式部分 刀(例如,主機應用程式2〇4及/或 增強API 206)針對叢集大小杳 直巧主機作業系統。在1006 處,應用程式部分可蔣業隹Μ% 刀·Γ將叢集讀取至主機系統2〇〇上之記憶 體(例如’ RAM)之一部分中。 接者’該應用程式部分可太= ^ 、I刀J在輸送至記憶體系統之前重新 組織儲存於編中之資料。特定而言,在麵處,針對 AM中之資料,應用程式部分可自—個、某些或每一叢集 擷取部分(例如’ 16個位元組)且可用一或多個預定資料 序列(例如,一或多個簽章)替換所擷取部分。自每—叢集 。取之量可等於簽章之大小(或其他預定資料序列)。來自 二集之所擷取部分可包含於一攔截命令中該攔截命 7亦可包含$丨數’例如—或多個預定資料序列及所請求操 作之一指示(例如,串流ID)。 在1010處,主機系統將該攔截命令發送至記憶體系統。 相對於圖8所論述,該攔截命令可經由命令通道(例如, 使用一 ASSD命令)或經由主機檔案系統通道(例如,使用— 七任快閃命令)發送。當經由命令通道發送攔截命令時, 產生—ASSD命令,該ASSD命令包含規定攔截一後續發送 之命令之操作之一命令操作碼及視情況用於操縱之資料, 160I01,d〇c -25- 201227297 例如經由刼縱之每一叢集之第一資料區塊之前ι6個位元 組如上文所論述。當經由主機檔案系統通道發送攔截命 二時,應用程式部分發送一請求至主機作業系統1〇8以請 求主機作業系統1G8產生欲發送至記憶體系統之—命令(例 寫入命令)。連同該請求一起,該應用程式部分視 清況發送包含定義該攔截命令之-或多個引數(例如圖13 及圖14中所展示)之資料。回應於該請求,主機作業系統 ⑽產生包含具有圖13及圖14中所展示之引數之—有效負 載之一寫入命令。 在1012處,主機系統發送針對儲存於RAM中之資料之一 系列後續命令,如相對於圖 應用程式部分發送-請求至t 而言’ 人=嶋生欲發送至記憶㈣統之—命令(例如,一 馬入命令)。連同該請求一起, 之-指示’及資料(其包含簽章及讀播案 於該請求,主機作業—生一:入^^ 令包含-或多個LBA(基於該槽案之該指示)及;效載 (其可包含包括簽章、叢集編號、欲操縱:二載 知縱之資料的資料因此,經受操縱之 量及用於 命令中又在該系列後續命令中發送。 在攔截 縱之所有資料可在攔截命令中發送之 擇為’在欲操 後續命令。 甲’不需要發送 /曰 < 第一實 圖11圖解却 解說明記憶體系 圖11係圖解說明自記憶體系 之一流程圖1100。特定而言, 160I0i.(j〇c •26· 201227297 -強功之LBA之情形下存取記憶體系統中之 令,包含一摘戴命令。在1102處,該記憶 你收—命令。在1104處,該記憶體系統判定該所接 人7疋否為-峨命^如上文所論述,—攔截命令可 :含-或多個預定序列及一操作識別(例如,一串流叫。 :、命7係、_截命令,則在i i 1 〇處該記憶體系統處理 β亥搁截命令。在其中該棚截命令嵌人於第二命令中之例項 中,忒圮憶體系統可藉由儲存該攔截命令中之部分或所有 資料及儲存串流ID(例如’將該攔截命令中之部分或所有 資料儲存於揮發性記憶體中)來處理該搁截命令。此外, 該記憶體系統可忽略該第二命令。如上文所論述,該搁截 命·?可嵌入於一 SD寫入命令中。該記憶體系統可分析該 SD寫入命令以判定其是否為一攔截命令(例如,在ιι〇4處 所執行)。若將該SD寫入命令識別為一攔截命令,則該記 憶體系統可忽略該命令以將有效負載之内容寫入至記憶體 116。如圖12中所圖解說明,該攔截命令可係自該主機發 送之一系列命令中之第一者,其中操縱該攔截命令及後續 命令中之每一者中之資料。在處理該攔截命令之後,流程 圖1100返回至方塊1102以等待接收一後續命令。 若該命令不係一攔截命令,則在丨丨06處,該記憶體系統 判定在該命令中是否存在一簽章。在欲操縱之資料大於可 在該攔截命令中發送之資料之情形下,將包含該資料之後 續命令發送至該記憶體系統。該等後續命令包含該簽章以 識別該命令與該攔截命令相關β該等後續命令可進一步包 160101.doc -27- 201227297 :額:資料以指示該資料之配置。如圖12中所論述,欲操 =資料可係-系列叢集,其中該資料係在一系列寫入命 送。該等後續命令中所包含之額外資料指示該資料 在該系列叢集中之配置。 :在該命令中存在該簽章,則在iu2處儲存該命令中之 f料(例如儲存於揮發性記憶體(例如,RAM)中)。在⑴4 二:記憶體系統檢查該命令是否為與該攔截命令相關聯 個命令°若是最後-個命令,則在方塊心處使 乂=或重新配置資料。交錯之—個實例係將與該搁截 二,之資料與在後績命令中發送之資料聯合,如 ㈣細地論述。在資料之交錯之後,詩量可係與 :交:…資料量相同、大於或小於在交錯之前之資料 例而言,該攔截命令t之資料之部分可精確地替換 在後續命令令發送之資料之一部分,以使得在交錯之後之 資料量與在交錯之前之資料量相同。作為另-實例,可將 棚截命令中之資料之部分附加至在後續命令中 之一部分,歧得在交錯之後之貧科 資料量。作為又-實例,该棚截侖人办於在交錯之前之 換在後續命令中發送之資Π::::資料之部分可替 之後之資料量小於在交錯之前之資大料^刀’以使得在交錯 在im處,根據宰流ID操縱交錯資料。如上 串流1D指示欲對資料執行之操作(例如,加密)二 處,將經操縱交錯資料儲存在記憶體ii6 !20 若在搁截命令之後發送之一或多個命令係奶寫入^言則 16010l.doc -28· 201227297 記憶體系統202可根據該等SD寫入命令中之一或多個命令 引數儲存經操縱交錯資料。若在該命令中不存在簽章,則 在1108處,正常地處理該命令。 如下文相對於圖12更詳細地論述,應用程式部分分離資 料(例如’移除每一叢集之16個位元組),以使得在初始命 令(例如,攔截命令)中發送該資料之部分且在一或多個後 續命令中發送該資料之一其餘部分。該記憶體卡可將來自 攔截命令及一或多個後續命令之資料儲存在非揮發性記憶 體(例如,RAM)中’且重新組織儲存於ram中之資料(例 如’使資料處於與在應用程式部分分離該資料之前該資料 在主機系統中被組織之次序相同之次序)。如上文所論 述’在一項態樣中,在記憶體卡重新組織該資料之後,該 經重新組織資料之大小匹配該一或多個後續命令中之Lb a 之大小。因此,除根據串流ID執行資料之操縱外,記憶體 卡亦可使用一或多個後續命令中之一或多個Lba來執行該 或多個後續命令中之命令。 舉例而言’該一或多個後續命令可包含多個SD寫入命 令。在資料之重新組織之後,經重新組織資料之量(其中 移除簽章並用與攔截命令一起發送之資料替換)等於如SD 寫入命令中之LBA中所指示之資料之量。因此,在記憶體 卡根據串流ID操縱該資料之後,該記憶體卡可根據SD寫 入命令中之L^A將經操縱資料儲存在記憶體116中。 圖12係圖解㉟明主機系統與記憶體系統之間的通信(包 含—攔截命令)之一方塊圖。圖12之上部部分繪示欲發送 160101.doc -29- 201227297 至記憶體系統202以用於操縱及儲存之資料。如所展示, 存在多個資料叢集,例如資料叢集#〇(資料區塊〇至資料區 塊N-1)及資料叢集#31(資料區塊〇至資料區塊卜儘管在 圖12中繪示32個資料叢集,但可將更多或更少個資料叢集 發送至記憶體系統202以用於操縱。 如圖12中所展示,該攔截命令及在該攔截命令之後發送 之命令係SD寫入命令。另一選擇為,該攔截命令可係不同 於在該攔截命令之後發送之命令之類型之命令(例如,除 一 SD寫入命令之外之一命令)。 該主機作業系統經呼叫以產生一 SD寫入命令,該SD寫 入命令包含自應用程式部分發送之命令引數及資料。特定 而言,該應用程式部分產生資料區塊0至資料區塊。一 個資料區塊(展示為資料區塊0)包含信任快閃命令標頭。在 圖13中所展示之表中繪示此一實例。另一資料區塊(展示 為資料區塊1)包含欲操縱之資料。如上文所論述,在攔截 命令中發送欲操縱之資料之部分。如圖12及圖14中所展 示將來自母一叢集之資料區塊0之前16個資料位元組配 置在一單個資料區塊中。自每一叢集擷取且經由攔截命令 發送之16個資料位元組僅用於說明目的。可擷取及在攔截 命令中發送更少或更多之資料量。舉例而言,若簽章大於 16個位元組(例如,32個位元組),則可自每一叢集擷取且 經由攔截命令發送32個位元組。用「〇」填補其他資料區 塊(展示為資料區塊2至資料區塊M-1),以使得該命令之有 效負載為叢集大小。 160101.doc -30· 201227297 該攔截命令可作為一個通信自主機系統200發送至記憶 體系統202。另一選擇為,該攔截命令可包含一系列通 七。舉例而言,主機作業系統108可首先將SD CMD WR一MULTIPLE命令發送至記憶體系統2〇2,該SD cMD WR 一 MULTIPLE命令包含用於SD寫入命令之命令引數。回 應於接收SD CMD WR一MULTIPLE命令,記憶體系統202發 送一 SD回應。主機系統2〇〇接著發送一系列資料區塊(展示 為資料區塊0至資料區塊Μ-1)。 在發送該攔截命令之後,該主機系統可發送一系列額外 命令(例如,SD寫入命令)以便發送欲操縱之資料之剩餘部 分。類似於該攔戴命令之發送,該應用程式部分可在該資 料中包含一簽章以指示該命令與攔截命令相關。此外,該 應用程式部分可包含該資料之序列之一指示。 可將經攔截磁區之數目(圖13中之NHS)附加至「基本簽 章值」。該記憶體卡在接收該等命令中攔截寫入至第一磁 區之連續LBA之所有NHS磁區(透過單個或多個SD命令之 任一組合寫入),自含有該簽章之第一磁區開始。舉例而 言,該等命令可包含一「簽章#N」,其包含該簽章及該資 料與哪一叢集相關聯之一指示(例如,一索引副檔名),如 圖12中所展示。舉例而言,資料區塊〇可包含「簽章#〇」, 其包含該簽章及指示該資料與叢集#〇相關之#〇兩者。如圖 12中所展示,「簽章#N」係在有效負載之開始處。另一選 擇為’「簽章#N」可在該有效負載之一不同區段中。此 外’該有效負載可用「0」填補(如圖12中之資料區塊N處 160101.doc 31 201227297 所展 )。gj & ^ ^ ,S"系列額外命令可包含一共同基本簽 早、額外序列資訊及刪。 202藉*〜摘截命令及該等後續寫入命令時,記憶體系統 合Μ使在該攔截命令中發送之資料與在該等後續寫入 用、咨.,·送之資料交錯來重新配置資料。可將序列指示符 料之父錯。舉例而言在32個叢集(叢集#〇至叢集 入 sx序列彳日示符(例如,#2)可指示與該命 =關聯U料係用於叢㈣。該記憶體卡可在透過該串 L寫入痛截資料之前用連同該贼命令-起發送之適當 原始資料(例如’來自叢集#2之資料區塊#0之前16個位元 組)替代簽章。因此,由於「簽章州」之大小係自每一叢 集操取且與棚截命令—起發送,因此記憶體系統可用在該 攔截命v中發送之資料替換「簽章#N」。圖Η中之圖例繪 丁將那些資料寫人至快閃記憶體且不將哪些資料寫入至快 閃。己隐體。-旦關閉該串流,該記憶體系統可摒棄該命令 及任何剩餘簽章’且可將該資料寫入至記憶體(丨6作為規 則資料。此外,可使用後續寫入命令中之NHS來判定欲用 於交錯的該命令之有效負載中之資料之量。舉例而言, NHS可&不用於攔截之區段之數目。使用該nhs ’該記憶 體系統可自有效負載(如由NHS所指示)獲得該數目個區段 用於攔截操作。 圖13係列出攔截命令中之寫入命令引數之一表。圖㈣ 列出攔截命令中之資料區塊之組織之一表。 在一第二實施例中,記憶體系統202使用LBA處理一系 16 ⑴ 0l.doc
.32· S 201227297 列兩個或兩個以上命令中之攔截命令。在一第一命令中, 主機系統200將攔戴命令發送至記憶體系統,該攔截命令 包含由主機檔案作業系統1〇8所提供之一或多個預定資料 序列及LBA °在—後續命♦中,i機系統200發送資料及 LBA。作為回應,記憶體系統2〇2比較該第一命令中之 LBA與該後續命令中之LBA以判定是否對該資料執行操 作。舉例而言,記憶體系統2〇2比較該等ίΒΑ以判定該第 一及後續命令中之LBA是否相同,或判定後續命令中之 LBA是否在如第一命令中所指示之LBA之範圍中。 圖15係圖解說明自主機系統之角度來看之第二實施例之 一流程圖1500。類似於圖主機系統在1002處開啟用於 寫入之一信任快閃串流以產生串流IDe該主機系統(例如 該應用程式部分)在1502處將用以產生一寫入命令之一第 一請求發送至該主機作業系統。用以產生該第一寫入命令 之該第請求包含資料(例如,一或多個預定資料序列及 串流ID)及記憶體之一部分之一識別(例如,_擋案)。回應 於接收該第一請求,在1504處,主機作業系統判定該記憶 體之該部分之LBA(例如,該檔案之LBA)。在15〇6處,該 主機作業系統接著產生將LBA作為命令引數且將資料(包 含一或多個預定資料序列及串流ID)作為有效負載之第一 寫入命令(例如,一 SD寫入命令在1508處,該主機系統 發送該第一寫入命令。在151〇處,該主機系統將用以產生 一寫入命令之一第二請求發送至該主機作業系統。用以產 生該第一寫入命令之該第二請求包含欲操縱(例如,加密) 160101.doc -33· 201227297 之資料及與該第一請求中所發送之識別相同之該記憶體之 該部分之識別。回應於接收該第二請求,在1512處,該主 機作業系統判定該記憶體之該部分之LBA »在1514處,該 主機作業系統接著產生將LB A作為命令引數且將用於操縱 之資料作為有效負載之第二寫入命令。在1516處,該主機 系統發送該第二寫入命令。在圖15中使用一寫入命令僅係 用於圖解說明目的。可同樣使用包含LBA作為命令引數之 主機作業系統之不同命令。 圖16係圖解說明自記憶體系統之角度來看之第二實施々 之流程圖16〇〇。特定而言,圖16圖解說明記憶體系統J 理依賴於命令中之LB A來存取記憶體系統中之增強功能七 之命令,包含一攔截命令。在1602處,該記憶體系統接叱 •7在1604處,4 s己憶體系統接著判定該所接收命^ 是否為-攔截命令。如上文所論述,若一所接收命令包4 :或多個預定序列(例如,一簽章),則該記憶體系統可岁 疋該命令;^否為—攔截命令。若該命令係—棚截命令,貝| :1610處,該記憶體系統處理該攔截命令。處理該攔截, 令之一個實例係儲存該攔截命令中之部分或所有[BA且德 存與該攔截命令相關聯之_流山。在處理該攔截命令之 後二流程圖1600返回至方塊1602以等待接收一後續命二 :::令不係一攔截命令,則在16〇6處’該記憶體系統 審查該命令中之LBA(例如,判㈣㈣命令及後續命令 否相同)。如上文在圖15中所論述,在該攔截 7 發送-第二寫入命令,該第二寫入命令包含欲 160101.doc
S -34 - 201227297 操縱之資料及與攔截命令中所定義之LB A相同之LBA。若 該LBA與該攔截命令中所定義之彼等LBA相同或若該LBA 在該攔截命令中所定義之彼等LBA之範圍中,則在1612 處根據該攔截命令中之串流ID操縱該命令之有效負栽中 之資料。如上文所論述,串流ID指示欲對資料執行之操作 (例如’加密)。在1614處,將經操縱資料儲存於記憶體116 中。若LB A與攔截命令中所定義之彼等lb A不相同,則在 1608處,正常處理該命令。 在一項實施例中’提供一種用於供一主機裝置管理—儲 存裝置之方法。該方法包括:在以操作方式耦合至一儲存 裝置之一主機中’該主機:識別用於欲由該儲存裝置執行 之一操縱操作之資料;組態一命令,該命令指示欲由該儲 存裝置執行之一操作且包含一識別符;將該命令發送至該 儲存裝置;組態一或多個後續命令,該一或多個後續命令 指示不同於該操作之另一操作,該一或多個後續命令包含 k資料之至 部分及一操縱識別符,該操縱識別符係基 於該識別符;及將該-或多個後續命令發送至該儲存裝 置。 、 該方法包含:其中該一或多個後續命令包含該資料之該 至少-分部’且其中該命令包含該資料之—其餘部分。該 方法進-步包含:丨中用於操作之該資料在不同部分中; 該方法進-步包括複製該等部分中之每—者之—部分該 等部分中之每-者之該部分等於該操縱識別符;且其中該 等部分中之每一者之該等經複製部分包含於該命令中。該 160101.doc -35- 201227297 方法還包含:其中兮 V, . 具或多個後續命令包含複數個後續命 令,該方法進一步自扭.“ "^括.針對該等部分中之每一者,用該 ^縱^符替換該等部分中之每—者之該經複製部分以產 :換資枓部分;且其中該等經替換資料部分包含在該 複數個後續命令中。另冰 卜,§亥方法包含其中該複數個後續 令之每一者包含指示該LBA之一範圍之一邏輯區塊位 } m續命令之該LBA之該範圍等於該經替 換資料部分之量。 ::法=含··其t該一或多個後續命令包含複數個後 =令且:中該複數個後續命令中之每一者包含一操縱識 '中該#縱識別符針對該複數個後續命令中之每 的。該方法進-步包含··其中-各別後續命令 ==符包含該储存命令中之該識別符及指示該等 中之該資料之一序列次序之一序列 該方法還包含:其巾久么&人 弗4入4 、各別後續命令中之該操縱識別符進一 符=不該各別後續命令中之該資料之量之一量指示 中.其中該命令包括針對該儲存裝置 :::控制器之一控制器命令]其中該-或多個後續命 i:tr該儲存裝置中之—記憶體之-或多個儲存命 :二其中該命令包括針對該儲存裝置中之- 個後續命令包括針 存裝置中之該δ己憶體之一或多個後續儲存命令。該 其含其中該識別符包括—簽章。該方法還包含 其中在組態該-或多個後續命令之前執行 «60101.doc
-36 - 201227297 該=存裝置。該方法進-步包含:其中該操作包含解密、 '、或’、,,且δ,且其中§亥另一操作包含讀取或寫入至該 儲存裝置。 在另-實施例中’揭示一種主機裝置。該主機裝置包 括:用於以操作方式麵合至一儲存裝置之-介面;及與該 介面通信之一控制器。該控制器經組態以:判定用於欲由 該储存裝置執行之—操縱操作之資料;組態-命令,該命 令指示欲由該料裝置執行之—操作且包含_識別符;經 由該介面將該命令發送至該儲存裝置;組態―或多個後續 命令,該一或多個後續命令指示不同於該操作之另一操 作’該-或多個後續命令包含該資料之至少—部分及一操 縱識別符’該操縱識別符係基於該識別符;及經由該介面 將°亥或多個後續命令發送至該儲存裝置》 ^主機裝置包含.其中該一或多個後續命令包含該資料 1至>、刀,且其中該命令包含該資料之一其餘部 刀該主機裝置還包含:其中用於操縱之該資料在不同部 刀中’其中$控制器進—步經組態以複製該等部分中之每 :者,-部分’該等部分中之每—者之該部分等於該操縱 識别符’且其中該等部分中之每一者之該經複製部分包含 在該命7巾。該主機裝置進-步包含:其中該-或多個後 續命7匕3複數個後續命令;其中該控制器進一步經組態 W針^等部分令之每一者用該操縱識別符替換該等部分 者之該經複製部分以產生經替換資料部分;且其 中該等丄替換資料部分包含在該複數個後續命令中。 160I01.doc -37· 201227297 該主機裝置還可句合.甘 .^ A 匕3 ·其中该複數個後續命令中之每一 =::!LBA之一範圍之一_塊―),-、命7之該LBA之該範圍等於該經替換資料部分之 ==置進一步包含:其中該-或多個後續命令包 <續命令,其中該複數個後續命令中之每一者包 含一操縱識別符;且其中 .^ ^ 操縱識。別符針對該複數個後續 命=之每-者係不同的。另外,該主機裝置包含:其中 別符1Γ命令之該操縱識別符包含該儲存命令中之該識 -序列指示符。該d:該資料之-序列次序之 /主機裝置還包含:其中該各別後續命令 中之該操縱識別符進一步包令 資料之量之-量指示符^該各別後續命令+之該 _=主機装置包含:其中該命令包括針對該館存裝置中之 制器之一控制器命令;且其中該—或多個後續 括針對該儲存裝置中之一圮情 包 主機维番心A 或多個儲存命令。該 機裝置還包3 :其中該命令包括針對該健存 記憶體之一儲存命令;且其 對該儲存裝置中之該記情體續命令包括針 …且其中該另一操作包中二包含解密、加密或其- 3謂取或寫入至該儲存裝置。 意欲將前述詳細說明理解為對本發明可呈現之 :圖解說明而不理解為對本發明之定義。意欲僅由下^
3所有專效内容之申請專利範圍來定義本發明 L 外,某些以下中請專利範圍可陳述—組件操作以執行某2 160I01.doc -38- 201227297 功能或經組態以用於某一任務。應注 限定。亦應注意,申請專利範圍中匕4並非限制性 次序執行,且未必以對其進行敍述之次序^動作可以任何 【圖式簡單說明】 订° 圖1圖解說明與一記憶體系統連接之一習用 /2圖解說明與具有多個記憶體庫非揮發性記憶體之一 3己憶體系統連接之一主機。 實二,在圖2之多β憶體庫非揮發性記憶體中使用之-_Η快閃記憶體系統控制器之—實例性方塊圖。 圖4係適於作為圖2中所圖解說明之快閃記憶體庫中之一 者之一個實例性快閃記憶體庫。 圖5係可用於圖4之記憶體庫中之一記憶體胞陣列之一代 表性電路圖。 圖6圖解說明圖4之記憶體庫之—實例性實體記憶體組 織0 圖7展示圖6之實體記憶體之一部分之一展開視圖; 圖8係其m機系統將—攔截命令發送至該記憶體系 統之方式之一實例性方塊圖。 圖9係其中°亥主機'系統將命令發送至該記憶ϋ系統之方 式之一實例性方塊圖。 ® ίο係圖解說明該主機系統產生在不依賴於命令中之 LBA之隋形下存取記憶體系統中之增強功能性之命令(包 含一攔截命令)之-個實施例之-流程圖。 圖11係圖解說明該記憶體系統處理在不依賴於命令中之 160101.doc -39- 201227297 LB A之情形下存取該記憶體系統中之增強功能性之命令 (包含一攔截命令)之一個實施例之一流程圖。 圖12係圖解說明主機系統與該記憶體系統之間的通信 (包含一攔截命令)之一方塊圖。 圖13係列出棚截命令中之寫入命令引數之一表。 圖14係列出攔截命令中之資料區塊之組織之一表。 圖15係圖解說明該主機系統產生藉由依賴於命令中之 LB A來存取該記憶體系統中之增強功能性之命令(包含一 攔截命令)之一個實施例之一流程圖。 圖16係圖解說明該記憶體系統處理藉由依賴於命令中之 LBA來存取記憶體系統中之增強功能性之命令(包含一攔 截命令)之一個實施例之一流程圖。 【主要元件符號說明】 100 主機系統 102 記憶體系統 104 配接部分 106 配接部分 108 主機作業系統 110 主機應用程式 112 應用程式設計介面 114 裝置驅動程式 116 記憶體 118 系統控制器 200 主機系統 160101.doc 201227297 202 記憶體系統 204 主機應用程式 206 增強應用程式設計介面 218 系統控制器 220 記憶體庫 222 前端 224 控制器邏輯 226 快閃記憶體管理邏輯 228 快閃記憶體介面模組 302 内部資料匯流排 304 記憶體介面. 306 處理器 310 開機程式碼唯讀記憶體 312 隨機存取記憶體緩衝器 314 錯誤校正碼模組 316 主機介面 318 内部時鐘 400 記憶體庫 402 系統匯流排 404 資料部分 406 位址部分 408 控制及狀態部分 410 記憶體胞陣列 412 記憶體胞陣列 .41 · 160101.doc 201227297 414 行控制電路 416 行控制電路 418 位元線 420 位元線 422 字線 424 列控制電路 426 源極電壓控制電路 428 源極電壓控制電路 430 P井電壓控制電路 432 P井電壓控制電路 434 資料輸入/輸出電路 436 資料輸入/輸出電路 438 線 440 線 442 介面電路 444 狀態機 446 控制線 448 控制線 450 控制線 452 控制線 454 控制線 456 線 502 線 504 線 160101.doc -42. 201227297 506 線 508 線 510 記憶體胞串 512 記憶體胞串 514 記憶體胞串 516 記憶體胞串 518 記憶體胞串 520 記憶體胞串 522 記憶體胞串 524 記憶體胞串 526 電荷儲存記憶體胞 528 電荷儲存記憶體胞 530 電荷儲存記憶體胞 532 電荷儲存記憶體胞 534 選擇電晶體 536 選擇電晶體 538 字線 540 字線 542 字線 544 字線 546 閘極 550 閘極 552 區塊 554 區塊 160101.doc -43- 201227297 602 平面 604 平面 606 平面 608 平面 610 區塊 612 區塊 614 區塊 616 區塊 618 後設區塊 620 後設區塊 622 區塊 624 區塊 626 區塊 628 區塊 702 後設頁 800 主機系統 802 主機應用程式 804 進階安全SD驅動程式 806 SD驅動程式 808 記憶體系統 810 控制器介面 812 儲存介面 814 介面 816 發送攔截命令 160101.doc - 44 - 201227297 818 P0 PI P2 P3 P4 P5 P6 P7 發送攔截命令 頁 頁 頁 頁 頁 頁 頁 頁 160101.doc •45-

Claims (1)

  1. 201227297 七、申請專利範園·· 1· 一種用於管理一儲存裝置之方法,該方法包括: 在以操作方式搞合至一主機之該儲存裝置中,該儲存 裝置: 接收-命令及-或多個後續命令,該命令指示欲由該 儲存裝置執行之-操作且包含—識別符,該一或多個後 續命令中之每L欲由該儲存裝置執行之另一操作 且包含資料; 使用該識別符分析該一或多個後續命令以判定是否對 該一或多個後續命令中之該資料執行該操作;及 回應於判定對該資料執行該操作而除對該資料之至少 -部分執行該另—操作之外亦執行該操作或代替該另一 ㈣㈣㈣u少—部分執行該操作,且回應於判定 作執仃錢作而不對該資料之該至少一部分執行該操 2. 如請求項1之方法 表其中該識別符包括一簽章;且 其中分析該一咬容χ 續命令是否包含命令包含判定該-或多個彳 3. 如請求項1之方沐 操作產生經修改資料對該資料之至少一部分執行1 該方法進— 4·如請求項3之 一或多個位址 其中執行核 步包括對該經修改資料執行該另一操作。 方法’其中該一或多個後續命令包括包含 之或多個寫入命令;且 〇 操作包含使用該一或多個位址儲存該 160101.doc 201227297 經修改資料。 5.如請求項4之方法,其令該命令包含命令資料; 其令執行該操作進一步包含對該命令資料之至少一部 为執行該操作以產生經修改命令資料;且 其中儲存包含使用該一或多個位址儲存該經修改資料 及該經修改命令資料。 6· 士明求項5之方法,其中如由該一或多個位址所指示之 大小等於該經修改資料之一大小及該經修改命令資料 之一大小。 7. 士》青求項5之方法,其中該一或多個後續命令進一步包 含一或多個簽章; 其中使用該識別符分析該一或多個後續命令包含分析 該或多個簽章以判定該一或多個簽章之至少一部分是 否包含該識別符; 該方法進一步包括: 將該一或多個簽章及該資料儲存於該儲存裝置之一 記憶體中; 用該命令資料之至少一部分替換儲存於該記憶體中 之該一或多個簽章以產生經替換資料;且 其中執行該操作包含對該經替換資料執行該操作。 8. 如請求項7之方法,其中該一或多個位址包含一邏輯區 塊位址(LBA),其指示該LBA之一範圍;且 其中該-或多個後續命令中之一各別者中之該經替換 資料及該資料之量匹配該—或多個後續命令中之該各別 160101.doc S' -2- 201227297 者中之該LBA之該範圍。 月求項5之方法,其中該一或多個後續命令 一 含-或多個簽章; 步包 其中使用該識別符分析該一或多個後續命令包含分析 ο或夕個簽章以判定該一或多個簽章之至少—A 否包含該識別符; 該方法進一步包括: 竹辟存於該儲存裝&〜甲; 將該命令資料之至少一部分附加至儲存於 之該資料以產生經替換資料;且 ’’ 其中執行該操作包含對該經替換資料 10.如請求項1之方法,1 士吟人 叮邊_作0 其中該命令包含一攔戴命令; 、透過一儲存介面處理該攔截命令 續命令。 及该一或多個後 :項1之方法,其中該命令包含一攔截命令. 其中透過一儲存介面處理該一, 其中透過除該儲存介面之外之一八優續命令;且 令。 ;丨面處理該攔截命 12·如清求項11之方法 道;且 其中該儲存介面包含-槽案系統通 其中除該儲存介面之外之該介面包含 13·如凊求項1之方法,其中該命令進一步二通道。 之一操作識別符。 匕3指不該操作 14.如請求項π之方法, 其中該命令包括一寫入命令; 160101.doc 201227297 =該操作識別符在該寫入命令之一有效負載r· 其中該等後續命令包括寫入命令; 、s “己隐體系統分析該有效負载中之該操作識別符 以將該命令解譯為指示該操作之-攔截命令,·且 其中該操作包含解密、加密或其一組合。 15.::求之方法,其中該-或多個後續命令進-步包 量扣不4 ’該量指示符指示欲經受該操作之該一或 多個後續命令中之該資料之量;且 、對該資料之至少一部分執行該操作包含對該資料 之該量執行該操作。 1 6 ·如s奢求項1之^太朴丄 去,其中該一或多個後續命令包含複數 個後續命令,該等命令 複數 、 中之每一者包含該資料之至少一 刀一簽章及指示該複數個後續命令中之該資料之次 序之一序列的一序列指示符; ^去進纟包括基於該序列指示符來配置該複數個 後續命令中之該資料以產生經配置資料;且 其中對該資料之至少一部分執行該操作包含對該經配 置資料執行該操作。 配 17·如請求項1之方沐,#丄1 ^ 其中該識別符包含一命令位址. 其中該-或多個後續命令進一步包含一或灸 址丨且 又員徂 其中分析該-或多個後續命令包含比較該命令 =令位址與該-或多個後續命令中之該—或多個後續: 160101.doc 201227297 18. 19. 20. 21. 22. 如請求項17之方法’其中比較該命令位址與該一或多個 後續位址包含判定該一或多個後續位址之至少一部分是 否相同於該命令位址之至少一部分。 如π求項17之方法,其中該命令位址指示一位置範 圍;且 其中比較該命令位址與該一或多個後續位址包含判定 該一或多個後續位址是否在如由該命令位址所指示之該 位置範圍内。 如請求項19之方法,其中該命令指示一第一寫入命令; 其中該一或多個後續命令指示一第二寫入命令;且 其中該操作指示一加密命令。 如請求項20之方法,其中該命令位址包括一第一邏輯區 塊位址(LBA); 其中該第一寫入命令包含該第一 LBA作為一命令引 數; 其中該一或多個後續位址包括一第二邏輯區塊位址 (LBA);且 其中該後續命令包含該第二LB A作為一命令引數。 一種儲存裝置,其包括: 一記憶體; 一介面,其經組態以接收一命令及一或多個後續命 令,該命令指示欲由該儲存裝置執行之一操作且包含— 識別符’該一或多個後續命令中之每一者指示欲由該儲 存裝置執行之另一操作且包含資料;及 160101.doc 201227297 一控制器,其與該記憶體及該 組態以: 通l,該控制器經 使用該識別符分析該一或 ^^ ... 次多個後續命令以判定是否 對该-或多個後續命令中 疋否 資枓執行該操作;及 回應於判定對該資料執 钒仃該操作而除對該資料之至 少-部分執行該另一操作之外… 貝卄之至 » _^ , 卜亦執行該操作或代替該 二㈣對該資料之至少-部分執行該操作,且回應 於判定不執行該操作而不對該資料之該 = 行該操作。 '刀孰 23.如請求項22之儲存裝置,其中該識別符包括一簽章;且 其中該控制器經組態以藉由判定該一或多個後續命令 是否包含該簽章來分析該—或多個後續命令。 24·如請求項22之儲存裝置,其中該控制器經組態以對該資 料之至少一部分執行該操作以產生經修改資料; 其中該控制器進-步經組態以對該經修改資料執行該 另一操作。 25. 如請求項24之健存裝置’其中該一或多個後續命令包括 包含一或多個位址之一或多個寫入命令,·且 其令該控制器經組態以藉由使用該一或多個位址儲存 該經修改資料來執行該另一操作。 26. 如凊求項25之儲存裝置,其中該命令包含命令資料; 其中該控制器經組態以藉由對該命令資料之至少一部 分執行該操作以產生經修改命令資料來執行該操作;且 其中該控制器經組態以使用該一或多個位址儲存該經 160101.doc S -6 - 201227297 修改資料及該經修改命令資料。 27 28. 29. 30. 如請求項26之儲存裝置,其中如由該一或多個位址所指 示之一大小等於該經修改資料之一大小及該經修改命令 資料之一大小。 如凊求項26之儲存裝置,其中該一或多個後續命令進一 步包含一或多個簽章; 其中該控制器經組態以藉由分析該一或多個簽章以判 定該一或多個簽章之至少一部分是否包含該識別符而使 用該識別符分析該一或多個後續命令; 其中該控制器進一步經組態以: 將該一或多個簽章及該資料儲存於該儲存裝置之一 記憶體中; 用該命令資料之至少一部分替換儲存於該記憶體中 之該一或多個簽章以產生經替換資料;且 其中該控制器經組態以對該經替換資料執行該操作。 如請求項28之儲存裝置,其中該一或多個位址包含一邏 輯區塊位址(LBA) ’其指示該LB A之一範圍;且 次其中該-或多個後續命令中之—各別者中之該經替換 - 貝料及該資料之量匹配該一或多個後續命令中之該各別 者中之該LBA之該範圍。 如請求項26之儲存裝置’纟中該一或多個後續命令進一 步包含一或多個簽章; '、中該控制器經組態以藉由分析該一或多個簽章以判 定該-或多個簽章之至少一部分是否包含該識別符而使 160101.doc 201227297 用該識別符分析該一或多個後續命令; 其中該控制器進一步經組態以: 將該資料儲存於該儲存裝置之一記憶體中; 將該命令㈣之至少—部分附加至儲存於該記憶體 尹之該資料以產生經替換資料;且 其中該控制器對該經替換資料執行該操作。 31. 如晴求項22之健在姑里 ^ 置’其中該命令包含一攔截命 令:且 其中該攔截命令及該一或多個後續命令係透過一儲存 介面來處理。 32. 如請求項22之儲存裝置’其中該命令包含一棚截命令; 其中該-或多個後續命令係透過一储存介面來處 理;且 其中該攔截命令係透過除該儲存介面之外之—介面來 處理。 33·如請求項32之儲存裝置,其 統通道;且 丨中”亥储存介面包含-槽案系 其中除該儲存介面之外之該介面包含_命令通道。 請求項22之儲存裝置,其中該一或多個後續命令進- -量指示符,該量指示符指示欲經受該操作之該 或多個後續命令中之該資料之量;且 作器經組態以藉由對該資料之該量執行該操 作而對該資料之至少-部分執行該操作。 35·如請求項22之儲存裝置,其中 *中該-或多個後續命令包含 160101.doc 201227297 複數個後續命令’該等命令中之每一者包含該資料之至 少一部分、一簽章及指示該複數個後續命令中之該資料 之次序之一序列的一序列指示符; 其中該控制器進一步經組態以基於該序列指示符來配 置該複數個後續命令中之該資料以產生經配置資料;且 其中該控制器對該經配置資料執行該操作。 36. 如請求項22之儲存裝置’其中該識別符包含一命令位 址; 其中該一或多個後續命令進一步包含一或多個後續位 址;且 其中該控制器經組態以藉由比較該命令中之該命令位 址與該一或多個後續命令中之該一或多個後續位址來分 析該一或多個後續命令。 37. 如請求項36之儲存裝置,其中該控制器經組態以藉由判 定該一或多個後續位址之至少一部分是否相同於該命令 位址之至少一部分來比較該命令位址與該一或多個後續 位址。 3 8 ’如凊求項3 6之儲存裝置,其中該命令位址指示一位址範 圍;且 a其中該_器經組態以藉由判定該—或多個後續位址 在由該命令位址所指示之該位址範圍内來比較該 命令位址與該一或多個後續位址。 39.如請求項38之儲存裝置’丨中該命令指示一第一寫入命 令; 160101.doc 201227297 其中該一或多個後續命令指示一第二寫入命令,·且 其中該操作指示一加密命令。 40.如請求項39之儲存裝置,其中該命令位址包括一 輯區塊位址(LBA); 一邏 其中s亥第一寫入命令包含該第一 ^ A作 數; 卜馮一命令引 其中該一或多個後續位址包括一第二 (LBA) ; ^ 乐邏“塊位址 其中該後續命令包含該第二LBA作為一命令引數。 41· 一種用於管理一儲存裝置之方法,該方法包括:。 在以操作方式耦合至一主換 ^ ^ ^ 口至纟機之一儲存裝置中,該儲存 ,…一 1工W孬令广今、,· 針對才曰不-操作之資訊分析該控制器命令之 部分; 經由-儲存介面自該主機接收一健存命令; 判定該儲存命令是否包含一預定資料序列·及 :::判定該儲存命令包含該預定資料序列而藉] 該操作修改該儲存命令中 艾資枓之至少一部分,且! 應於判定該儲存命令不力人 ^ 包3該預定資料序列而不藉ί 該刼作修改該儲存命令中 42 ,. S/)1 Ρ 7 Τ之資科之該至少一部分。 42.如凊求項41之方法,其 ^ u 儲存"面包含用於關於該隹 設計介面(APH 存動作之一或多個應用程式 I60i0i.doc 201227297 其中該控制器介面包含用於與該儲存裝置上之一控制 器通信之一或多個API。 43. 44. 45. 46. 如請求項41之方法,其中該儲存介面包含一標案系統通 道;且 其中該控制器介面包含一命令通道。 如請求項41之方法’其中該控制器命令包括指示一第一 操作之一攔截命令; 其中該儲存命令指示一第二操作;且 其中修改該資料之至少一部分包含對該資料之該至少 -部分執行該第一操作’該第一操作不同於該第二操 作,或除對該資料之該至少一部分執行該第二操作之外 亦執行該第一操作。 如凊求項44之方法,其中該儲存命令包括一寫入命令或 一讀取命令。 一種儲存裝置,其包括: 一記憶體; 一控制器介面,其經組態虛 令. 〜乂處理一或多個控制器命 處理針對該記憶體之一或多 、該控制器介面及該儲存介 一儲存介面,其經組態以 個健存命令;及 一控制器,其與該記憶體 面通L,該控制器經組態以: 或多個控制器命令 針對指示一操作之資訊分析該一 之至少一部分; 160I01.doc • 11 · 201227297 列判Γ—或多個健存命令是否包含-預定資料序 二::判定該健存命令包含該預定資料序列而藉助 操作修改_存命令t之資料之至少-部分,且 應於判定該儲存命令不包含該預定資料序列而不藉^ 該操作修改該儲存命令中之㈣之該至少一部分不藉助 47·如凊求項46之儲存裝置,其中該儲存介面包於 該儲存裝置上之一 於關於 程式設計介面心Γ存動作之-或多個應用 其中該控制H介面包含用於與該儲存裝置上 器通信之一或多個API。 一控制 示 48.如請求項46之健存裝置,其中該控制器命令包 第一操作之一攔截命令; θ 其中該儲存命令指示一第二操作;且 其中該控制器經組態以藉由對該資料之至少〜 行該第-操作來修改該資料之該至少一部分::邹分執 作不同於該第二操作,或對該資料之該至少_^第一操 除該第二操作之外亦執行該第一操作。 刀執行 49·如請求項48之儲存裝置,其中該儲存命令包括〜 令或一讀取命令。 寫入命 16010I.doc •12-
TW100143198A 2010-12-10 2011-11-24 Method and system for hijacking writes to a non-volatile memory TW201227297A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/965,503 US8966201B2 (en) 2010-12-10 2010-12-10 Method and system for hijacking writes to a non-volatile memory

Publications (1)

Publication Number Publication Date
TW201227297A true TW201227297A (en) 2012-07-01

Family

ID=45063220

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100143198A TW201227297A (en) 2010-12-10 2011-11-24 Method and system for hijacking writes to a non-volatile memory

Country Status (3)

Country Link
US (2) US8966201B2 (zh)
TW (1) TW201227297A (zh)
WO (1) WO2012078296A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI497511B (zh) * 2012-11-08 2015-08-21 Ind Tech Res Inst 具嵌入式非揮發性記憶體之晶片及其測試方法
US10866905B2 (en) 2016-05-25 2020-12-15 Samsung Electronics Co., Ltd. Access parameter based multi-stream storage device access
TWI714800B (zh) * 2016-09-02 2021-01-01 南韓商三星電子股份有限公司 固態硬碟、非暫時性儲存媒體以及操作固態硬碟的方法
US11392297B2 (en) 2015-07-13 2022-07-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US11955204B2 (en) 2014-08-15 2024-04-09 Micron Technology, Inc. Apparatuses and methods for concurrently accessing different memory planes of a memory

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8966201B2 (en) 2010-12-10 2015-02-24 Sandisk Technologies Inc. Method and system for hijacking writes to a non-volatile memory
US20130268726A1 (en) * 2011-07-01 2013-10-10 Xin Guo Dual Mode Write Non-Volatile Memory System
US8843676B2 (en) * 2012-06-27 2014-09-23 International Business Machines Corporation Optimizing an operating system I/O operation that pertains to a specific program and file
US9684593B1 (en) * 2012-11-30 2017-06-20 EMC IP Holding Company LLC Techniques using an encryption tier property with application hinting and I/O tagging
US10459847B1 (en) * 2015-07-01 2019-10-29 Google Llc Non-volatile memory device application programming interface
US9910594B2 (en) * 2015-11-05 2018-03-06 Micron Technology, Inc. Apparatuses and methods for concurrently accessing multiple memory planes of a memory during a memory access operation
US10768829B2 (en) * 2017-02-15 2020-09-08 Microsoft Technology Licensing, Llc Opportunistic use of streams for storing data on a solid state device
US10754549B2 (en) * 2018-02-15 2020-08-25 Microsoft Technology Licensing, Llc Append only streams for storing data on a solid state device
US11507402B2 (en) 2019-04-15 2022-11-22 Microsoft Technology Licensing, Llc Virtualized append-only storage device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694381B1 (en) 1997-12-17 2004-02-17 Vicom Systems, Inc. Platform-independent communications protocol supporting communications between a processor and subsystem controller
US7334077B2 (en) 2003-10-17 2008-02-19 Renesas Technology America, Inc. Method and apparatus for smart memory pass-through communication
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US20060288166A1 (en) 2005-06-17 2006-12-21 Wanderback Llc System, method, and computer program product for nonvolatile memory devices
US20070136501A1 (en) 2005-12-08 2007-06-14 Chang Robert C Media card command pass through methods
US20090069049A1 (en) 2007-09-12 2009-03-12 Devicefidelity, Inc. Interfacing transaction cards with host devices
KR101601790B1 (ko) * 2009-09-22 2016-03-21 삼성전자주식회사 암호키 선택장치를 구비하는 스토리지 시스템 및 암호 키 선택방법
US8966201B2 (en) 2010-12-10 2015-02-24 Sandisk Technologies Inc. Method and system for hijacking writes to a non-volatile memory
US8819328B2 (en) * 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI497511B (zh) * 2012-11-08 2015-08-21 Ind Tech Res Inst 具嵌入式非揮發性記憶體之晶片及其測試方法
US11955204B2 (en) 2014-08-15 2024-04-09 Micron Technology, Inc. Apparatuses and methods for concurrently accessing different memory planes of a memory
US11392297B2 (en) 2015-07-13 2022-07-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US10866905B2 (en) 2016-05-25 2020-12-15 Samsung Electronics Co., Ltd. Access parameter based multi-stream storage device access
TWI714800B (zh) * 2016-09-02 2021-01-01 南韓商三星電子股份有限公司 固態硬碟、非暫時性儲存媒體以及操作固態硬碟的方法

Also Published As

Publication number Publication date
US9760299B2 (en) 2017-09-12
US20150199145A1 (en) 2015-07-16
US8966201B2 (en) 2015-02-24
WO2012078296A1 (en) 2012-06-14
US20120151157A1 (en) 2012-06-14

Similar Documents

Publication Publication Date Title
TW201227297A (en) Method and system for hijacking writes to a non-volatile memory
CN106354425B (zh) 基于数据属性的数据布局的方法和***
US9811678B2 (en) Method and system for transferring data and instructions through a host file system
CN109085997A (zh) 用于非易失性存储器的存储器高效持续键值储存
US10997297B1 (en) Validating firmware for data storage devices
US20070143567A1 (en) Methods for data alignment in non-volatile memories with a directly mapped file storage system
US20070156998A1 (en) Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US20070143566A1 (en) Non-volatile memories with data alignment in a directly mapped file storage system
US20070143560A1 (en) Non-volatile memories with memory allocation for a directly mapped file storage system
US10289568B2 (en) Application-driven storage systems for a computing system
US20090182791A1 (en) Non-Volatile Memories And Method With Adaptive File Handling In A Directly Mapped File Storage System
US20140032935A1 (en) Memory system and encryption method in memory system
US20230107344A1 (en) Analytics, Algorithm Architecture, and Data Processing System and Method
JP5068754B2 (ja) 改良されたホストインターフェイス
US11616767B2 (en) Storage system with encrypted data storage device telemetry data
JP4441577B2 (ja) 固定サイズ格納ブロックを有するメモリシステムにおける変換データ単位格納
WO2007073538A2 (en) Non-volatile memories and methods with data alignment in a directly mapped file storage system
TW201918868A (zh) 認證韌體資料之資料儲存裝置與資料儲存方法
US10540505B2 (en) Technologies for protecting data in an asymmetric storage volume
CN115639952A (zh) 存储设备及其操作方法
KR102493864B1 (ko) 스토리지 장치의 동작 방법 및 호스트 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법
US20240037233A1 (en) Ransomware and malicious software protection in ssd/ufs by nvme instructions log analysis based on machine-learning
US20220197510A1 (en) Storage device for executing processing code and operating method of the storage device
WO2007073536A2 (en) Non-volatile memories and methods with memory allocation for a directly mapped file storage system
US11914879B2 (en) Storage controller and storage system comprising the same