JP2022522595A - ホストベースのフラッシュメモリメンテナンス技術 - Google Patents

ホストベースのフラッシュメモリメンテナンス技術 Download PDF

Info

Publication number
JP2022522595A
JP2022522595A JP2021535543A JP2021535543A JP2022522595A JP 2022522595 A JP2022522595 A JP 2022522595A JP 2021535543 A JP2021535543 A JP 2021535543A JP 2021535543 A JP2021535543 A JP 2021535543A JP 2022522595 A JP2022522595 A JP 2022522595A
Authority
JP
Japan
Prior art keywords
memory
host
physical address
command
flash memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021535543A
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 JP2022522595A publication Critical patent/JP2022522595A/ja
Pending legal-status Critical Current

Links

Images

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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/10Address translation
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

フラッシュメモリデバイスのホストベースのメンテナンスを可能にするためのデバイス及び技術が本明細書に開示される。特定の例では、メモリ書き込み情報は、メモリデバイスにて暗号化することができ、メモリデバイスメンテナンス統計を更新及びメンテナンスするためにホストに提供することができる。

Description

優先権出願
本出願は、2018年12月21日に出願された米国出願整理番号第16/230,313号の利益を主張するものであり、参照によりその全体が本明細書に組み込まれる。
本開示は、メモリについて論じ、より具体的には、ホストベースのフラッシュメモリメンテナンス技術について論じる。
メモリデバイスは、典型的には、コンピュータまたは他の電子デバイスにおいて内部の半導体、集積回路として提供される。揮発性メモリ及び不揮発性メモリを含む多数の異なるタイプのメモリが存在する。揮発性メモリは、データを維持するために電力を必要とする場合があり、とりわけ、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、及び同期ダイナミックランダムアクセスメモリ(SDRAM)を含む。不揮発性メモリは、電力供給されていないときに記憶データを保持することによって永続的データを提供することができ、とりわけ、NANDフラッシュメモリ、NORフラッシュメモリ、リードオンリーメモリ(ROM)、電気的消去可能なプログラマブルROM(EEPROM)、消去可能なプログラマブルROM(EPROM)、ならびに相変化ランダムアクセスメモリ(PCRAM)、抵抗性ランダムアクセスメモリ(RRAM)及び磁気抵抗性ランダムアクセスメモリ(MRAM)などの抵抗可変メモリ、3D XPoint(商標)メモリを含むことができる。
メモリセルは、典型的には、マトリックスまたはアレイに配置される。複数のマトリックスまたはアレイを組み合わせてメモリデバイスにすることができ、複数のデバイスを組み合わせて、ソリッドステートドライブ(SSD)、ユニバーサルフラッシュストレージ(UFS(商標))デバイス、マルチメディアカード(MMC)ソリッドステートストレージデバイス、組み込みMMCデバイス(eMMC(商標))などのメモリシステムの記憶ボリュームを形成することができる。
メモリシステムは、メモリデバイスを操作するか、または外部システムとインターフェースするように論理機能を実行する1つ以上のプロセッサまたは他のメモリコントローラを含むことができる。メモリマトリックスまたはアレイは、複数の物理ページに編成されたメモリセルの複数のブロックを含むことができる。メモリシステムは、メモリデバイスとホストとの間でデータ(例えば、エラーデータ及びアドレスデータなどの、ユーザデータ及び関連する完全性データ)を転送するための読み出しもしくは書き込み動作、メモリデバイスからデータを消去するための消去動作などのメモリ動作に関連してホストからコマンドを受信することができ、または1つ以上の他のメモリ動作を実行することができる。
メモリは、例えば、パーソナルコンピュータ、ポータブルメモリスティック、デジタルカメラ、携帯電話、MP3プレーヤーなどのポータブルミュージックプレーヤー、ムービープレーヤー及び他の電子デバイスを含む、広範な電子的用途のための揮発性及び不揮発性データストレージとして利用される。メモリセルはアレイに配置することができ、アレイは、メモリデバイスにおいて使用される。
多くの電子デバイスは、いくつかの主要な構成要素、すなわち、ホストプロセッサ(例えば、中央処理ユニット(CPU)または他のメインプロセッサ)、メインメモリ(例えば、ダイナミックRAM(DRAM)、モバイルまたは低電力ダブルデータレート同期DRAM(DDR SDRAM)などの、1つ以上の揮発性または不揮発性メモリデバイス)、及びストレージデバイス(例えば、フラッシュメモリ、リードオンリーメモリ(ROM)、SSD、MMCもしくは他のメモリカード構造もしくはアセンブリなどの不揮発性メモリ(NVM)デバイス、または揮発性メモリと不揮発性メモリとの組み合わせなど)を含む。特定の例では、電子デバイスは、ユーザインターフェース(例えば、ディスプレイ、タッチスクリーン、キーボード、1つ以上のボタンなど)、グラフィックス処理ユニット(GPU)、電力管理回路、ベースバンドプロセッサまたは1つ以上のトランシーバ回路などを含むことができる。
フラッシュメモリデバイスのホストベースのメンテナンスを可能にするためのデバイス及び技術が本明細書に開示される。特定の例では、メモリ書き込み情報は、メモリデバイスにて暗号化することができ、メモリデバイスメンテナンス統計を更新及びメンテナンスするためにホストに提供することができる。
このセクションは、本特許出願の主題の概要を提供することを目的とする。本発明の排他的または網羅的な説明を提供することを意図するものではない。詳細な説明は、本特許出願に関するさらなる情報を提供するために含まれる。
必ずしも一定の縮尺で描かれているわけではない図面では、類似数字が異なる図中の類似構成要素を説明し得る。異なる文字の接尾辞を有する類似数字は、類似構成要素の異なる事例を表し得る。図面は、概して、限定ではなく例として、本文書で論じられる様々な実施形態を示す。
本主題の1つ以上の例が実装され得るメモリデバイスを含む環境の例示的なシステムを示す。 ホスト常駐FTLの態様を使用してフラッシュメモリシステムにてメモリ動作を実施するための例示的な方法のフローチャートを概略的に示す。 ホスト常駐FTL動作用のホストマッピングテーブルデータを効率的に監視及び更新するための例示的な方法のフローチャートを概略的に示す。 ホストにてメモリシステムのフラッシュメモリメンテナンス情報をメンテナンスするための例示的な方法のフローチャートを概略的に示す。 メモリデバイスにてホストからメンテナンスコマンドを受信するための例示的な方法のフローチャートを概略的に示す。 ホストを使用してフラッシュメモリデバイスをメンテナンスするための例示的な方法のフローチャートを概略的に示す。 本明細書で論じられる技術(例えば、方法論)のうちの任意の1つ以上が実行され得る例示的なマシンのブロック図を示す。
NANDメモリなどのフラッシュメモリベースのストレージデバイスは、フラッシュ変換層(FTL)を使用して、多くの場合には論理ブロックアドレス(LBA)と呼ばれるI/O要求の論理アドレスを、1つ以上のFTLマッピングテーブルに記憶された対応するフラッシュメモリアドレスに変換することができる。LBAは、データを管理するためにホストによって使用される論理アドレスとすることができる。モバイルストレージデバイスは、典型的には、制限されたサイズのキャッシュを有するため、マッピングテーブル全体を記憶するためのメモリが不足することが多い。したがって、マッピングテーブル(複数可)の一部を要求に応じてフラッシュメモリから取得することができるが、これにより、ランダム読み出し性能が低下する可能性がある。
ランダム読み出し性能を改善するために、本明細書で説明される技術は、FTLマッピングテーブル用のキャッシュとして、ホストに結合されたメモリデバイスのメモリセルに加えて、ホスト常駐メモリの使用を可能にする。ホスト常駐FTLの下で、FTLデータをフラッシュメモリよりも速くホストメモリから読み出すことができ、ホストは、フラッシュメモリの物理アドレス(PA)を取得し、そのPAをフラッシュメモリへのメモリ要求に含めることによってメモリ動作を開始することができる。PAは、ホストのFTLメモリキャッシュ及びホストのLBAを使用してホストによって取得することができる。メモリ要求を受信すると、フラッシュメモリデバイスまたはホスト外部のシステムなどのフラッシュメモリシステムは、フラッシュメモリベースのマッピングテーブルへのアクセスに関連した遅延を伴うことなく、物理アドレスを取得するためのLBAを使用して物理アドレスに関連したデータを即座に取得することができる。
ホスト常駐FTLの特定の実施態様では、ランダム読み出しの作業負荷性能を大幅に改善することができる。しかしながら、本発明者らは、ホストメモリ要求の完全性の検証を支援することができ、ホストFTLテーブルと実際のフラッシュマッピングテーブルとの間の一貫性のメンテナンスを支援することができ、ホストによってトリガされるメモリ動作がアイドル状態にあるか、またはアイドル状態付近にある間にホストFTLテーブルに対する適時の更新を提供するのを支援することができる、ホスト常駐FTLのための技術を特定した。ホスト常駐FTLの簡略的な実施態様は、ホストによって開始された動作の間でマッピングテーブルが依然として正確であることを仮定する場合がある。しかしながら、ホストに接続されたメモリシステムまたはメモリデバイスは、ホストによって開始された動作の間またはホストがアイドル状態であるときの間に、ハウスキーピング動作またはガベージコレクションプロシージャ及びウェアレベリングプロシージャなどのプロシージャを実行することが多い。ハウスキーピング動作は、データを周囲に移動し、多くの場合、メモリデバイスに常駐するマッピングテーブルを修正及び更新する。いくつかの妥当性確認がないと、フラッシュデータにアクセスするためにホストによって提供されたPAを盲目的に使用するメモリシステムなどの、ホスト常駐FTLの簡略的な実施態様では、多くの場合、間違ったPAでメモリシステムがフラッシュメモリにアクセスする可能性が生じる。
加えて、本発明者らはまた、フラッシュメモリデバイスまたはフラッシュメモリシステムのメモリメンテナンスをホストにオフロードすることにより、より単純なファームウェア、より単純なハードウェア、より単純な検証またはそれらの組み合わせを含む、より単純なフラッシュメモリデバイスを許容することができ、したがって、従来のマネージドNANDフラッシュメモリデバイスなどの従来のフラッシュメモリデバイスよりもコストを下げ、かつ市場投入までの時間をより早くすることができることを認めた。
図1は、通信インターフェースを経由して通信するように構成されたホスト105及びメモリデバイス110を含む環境100の例を示す。ホスト105またはメモリデバイス110は、IoTデバイス(例えば、冷蔵庫または他の機器、センサ、モータまたはアクチュエータ、移動通信デバイス、自動車、携帯電話、ドローンなど)などの様々な製品150に含まれて、製品150の処理、通信または制御をサポートし得る。
メモリデバイス110は、メモリコントローラ115と、例えば、1つ以上の個別のメモリダイ(例えば、3次元(3D)NANDダイのスタック)を含むメモリアレイ120とを含む。3Dアーキテクチャの半導体メモリ技術では、垂直構造が複数の層に積み重ねられ、結合されて物理ページを形成して、所与のフットプリント(すなわち、フォームファクタ)でメモリデバイス(例えば、ストレージデバイス)の記憶密度を高める。一例では、メモリデバイス110は、ディスクリートメモリデバイスとすることができる。特定の例では、メモリアレイ120の1つ以上のメモリダイは、ホストの論理ブロックアドレスをフラッシュメモリの物理アドレスにマッピングするための第1の完全なFTLテーブル161を含むことができる。
シリアルアドバンストテクノロジーアタッチメント(SATA)インターフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、UFSインターフェース、eMMC(商標)インターフェース、または1つ以上の他のコネクタもしくはインターフェースなどの、1つ以上の通信インターフェース111を使用して、メモリデバイス110とホスト105の他の1つ以上の構成要素との間でデータを転送することができる。ホスト105は、ホストシステム、電子デバイス、プロセッサ、メモリカードリーダ、またはメモリデバイス110の外部にある1つ以上の他の電子デバイスを含むことができる。いくつかの例では、ホスト105は、図7のマシン700を参照して論じられた構成要素のある一部または全てを有するマシンであり得る。データは、データが転送されているときに(例えば、メモリアレイとの間での読み出しまたは書き込みの前に)データを一時的に記憶するための1つ以上のラッチを含み得る入出力(I/O)バスを経由してメモリデバイス110と他の構成要素との間で転送され得る。
メモリコントローラ115は、ホスト105から命令を受信することができ、メモリアレイのメモリセル、プレーン、サブブロック、ブロックもしくはページのうちの1つ以上へのデータ転送(例えば、書き込みもしくは消去)またはメモリアレイのメモリセル、プレーン、サブブロック、ブロックもしくはページのうちの1つ以上からのデータ転送(例えば、読み出し)などのために、メモリアレイと通信することができる。メモリコントローラ115は、とりわけ、1つ以上の構成要素または集積回路を含む回路網またはファームウェアを含むことができる。例えば、メモリコントローラ115は、メモリアレイ120全体のアクセスを制御し、ホスト105とメモリデバイス110との間に変換層を提供するように構成された1つ以上のメモリ制御ユニット、回路、制御回路網または構成要素を含むことができる。メモリコントローラ115は、メモリアレイ120との間でデータを転送するための1つ以上のI/O回路(及び対応するラッチ)、キャッシュ、ラインまたはインターフェースを含むことができる。メモリコントローラ115は、メモリマネージャ125及びアレイコントローラ135を含むことができる。
アレイコントローラ135は、とりわけ、メモリコントローラ115に結合されたメモリデバイス110の1つ以上のメモリセルへのデータの書き込み、メモリセルからのデータの読み出し、またはメモリセルの消去に関連したメモリ動作を制御するように構成された回路網または構成要素を含むことができる。メモリ動作は、例えば、ホスト105から受信した、またはメモリマネージャ125によって内部的に生成された(例えば、摩耗レベリング、エラー検出または訂正などに関連した)ホストコマンドに基づくことができる。
アレイコントローラ135は、エラー訂正コード(ECC)構成要素140を含むことができ、これは、とりわけ、メモリコントローラ115に結合されたメモリデバイス110の1つ以上のメモリセルへのデータの書き込みまたはメモリセルからのデータの読み出しに関連したエラーを検出または訂正するように構成されたECCエンジンまたは他の回路網を含むことができる。ECC構成要素140は、例えば、複数のメモリ動作の実行に関連したビット誤り率(BER)を検出または計算し得る。BERは、I/Oバスのラッチで発生するビットエラー、メモリコントローラ115の内部エラー、NANDアレイの1つ以上で発生するエラー、またはメモリデバイス110のマルチレベルセル(複数可)(MLC)の任意の1つ以上に対応し得る。メモリコントローラ115は、ホスト105とメモリデバイス110との間で転送されるデータの完全性を維持しつつ、または(例えば、冗長RAIDストレージなどを使用して)記憶データの完全性を維持しつつ、データの様々な動作または記憶に関連したエラーの発生(例えば、ビットエラー、動作エラー、クラッシュ状態、ストール、ハングアップなど)を能動的に検出し、そのエラーの発生から回復するように構成することができ、障害のあるメモリリソース(例えば、メモリセル、メモリアレイ、ページ、ブロックなど)を除去(例えば、廃棄)して将来のエラーを防ぐことができる。アレイコントローラ135は、検出されたBER情報を記憶及び追跡のためにメモリマネージャ125に送信し得る。メモリコントローラ115は、ホストから受信したメモリコマンドを追跡するコマンドキュー(図示せず)を含み得る。キュー内のコマンドは、先入れ先出し(FIFO)方式で、スタック方式で、順不同で、優先順位に従って、または他の任意の適切な順序で、メモリコントローラ115によって実行され得る。
説明されたメモリデバイス110は、メモリアレイ120に関連した暗号回路網160を含む。特定の例では、暗号回路網160は、暗号化回路、復号化回路、またはそれらの組み合わせを含むことができる。いくつかの実施態様では、メモリデバイス110のメモリコントローラ115は、暗号回路160の機能を実装するように構成された制御回路網を含み得る。他の実施態様では、暗号回路160は、説明された機能を実装するための独立した制御回路網を含み得る。さらに他の実施態様では、制御回路網は、暗号回路160の説明された機能を実装するために暗号回路160とメモリコントローラ115との間で分割され得る。図示された例では、アレイコントローラ135はメモリコントローラ115の一部を形成し、暗号回路160はアレイコントローラの一部を形成する。他の実施態様では、暗号回路160は、アレイコントローラ135の外部及び/または外側にあり得る。例えば、暗号回路160(またはその任意の個々の構成要素)は、環境100内の1つ以上の構成要素に結合された独立した構成要素であり得る。しかしながら、物理的に配置されていても、暗号回路160の追加機能を提供する構造は、ホスト105によって提供された物理アドレスを検証してメモリデバイスへの誤ったまたは悪意のあるアクセスを防ぎ、ホストがホスト常駐マッピングテーブル情報をリフレッシュして環境100のホスト常駐FTL動作中にマッピング情報をメモリデバイスのマッピング情報と整合させる機会を提供するように機能する。
メモリマネージャ125は、とりわけ、様々なメモリ管理機能に関連した複数の構成要素または集積回路などの回路網またはファームウェアを含むことができる。本説明の目的のために、例示的なメモリ動作及び管理機能は、NANDメモリの文脈で説明される。当業者は、他の形態の不揮発性メモリが類似のメモリ動作または管理機能を有し得ることを認識するであろう。このようなNAND管理機能は、ウェアレベリング(例えば、ガベージコレクションまたは再生)、エラー検出(例えば、BER監視)もしくは訂正、ブロック退避、または1つ以上の他のメモリ管理機能を含む。メモリマネージャ125は、ホストコマンド(例えば、ホストから受信したコマンド)をデバイスコマンド(例えば、メモリアレイの動作に関連したコマンドなど)に解析もしくはフォーマットするか、またはメモリデバイス110のアレイコントローラ135もしくは1つ以上の他の構成要素に対して(例えば、様々なメモリ管理機能を達成するために)デバイスコマンドを生成することができる。
メモリアレイ120は、例えば、複数のデバイス、プレーン、サブブロック、ブロック、またはページに配置された複数のメモリセルを含むことができる。一例として、48GBのTLCNANDメモリデバイスは、ページあたり18,592バイトのデータ(16,384+2208バイト)、ブロックあたり1536ページ、プレーンあたり548ブロック、及びデバイスあたり4つ以上のプレーンを含むことができる。別の例として、32GBのMLCメモリデバイス(セルあたり2ビットのデータを記憶する(すなわち、4プログラマブル状態))は、ページあたり18,592バイト(B)のデータ(16,384+2208バイト)、ブロックあたり1024ページ、プレーンあたり548ブロック、及びデバイスあたり4プレーンを含むことができるが、対応するTLCメモリデバイスと同様に、必要な書き込み時間は半分で、プログラム/消去(P/E)サイクルは2倍である。他の例は、他の数または配置を含むことができる。いくつかの例では、メモリデバイスまたはその一部は、SLCモードで、または所望のMLCモード(TLC、QLCなど)で選択的に動作され得る。
動作中、データは通常、ページ単位でメモリデバイス110に書き込まれるか、またはこのメモリデバイスから読み出され、ブロック単位で消去される。しかしながら、1つ以上のメモリ動作(例えば、読み出し、書き込み、消去など)は、必要に応じて、より大きなまたはより小さなメモリセルのグループに対して実行することができる。メモリデバイス110のデータ転送サイズは通常ページと呼ばれ、一方でホストのデータ転送サイズは通常セクタと呼ばれる。
異なるタイプのメモリセルまたはメモリアレイ120は、異なるページサイズを提供することができ、またはそれに関連した異なる量のメタデータを必要とし得る。例えば、メモリデバイスタイプが異なればビットエラーレートも異なる可能性があり、このことにより、データページの完全性を確保するために必要なメタデータの量が異なる可能性がある(例えば、ビットエラーレートがより高いメモリデバイスでは、ビットエラーレートがより低いメモリデバイスよりも多くのバイトのデータのエラー訂正コードが必要になる場合がある)。一例として、MLCNANDフラッシュデバイスは、対応するシングルレベルセル(SLC)NANDフラッシュデバイスよりもビットエラーレートが高い場合がある。したがって、MLCデバイスは、対応するSLCデバイスよりも多くのエラーデータのメタデータバイトを必要とし得る。
特定の例では、ホストは第2のメモリ111を含むことができる。第2のメモリ111は、フラッシュタイプのメモリデバイスではない。特定の例では、第2のメモリ111を使用して、管理テーブル130のセットを記憶及びメンテナンスすることができる。管理テーブルは、メモリデバイス110の1つ以上の構成要素に関連した様々な情報(例えば、メモリコントローラ115に結合されたメモリアレイまたは1つ以上のメモリセルに関連した様々な情報、及びFTLテーブルを含むことができる)を含むことができる。例えば、管理テーブル130は、メモリコントローラ115に結合されたメモリセルの1つ以上のブロックに対するFTLマッピング情報、ブロック寿命、ブロック消去カウント、エラー履歴、エラーパラメータ情報、ホストリセットタイムアウト値、メモリ動作コマンドレイテンシ、または1つ以上のエラーカウント(例えば、書き込み動作エラーカウント、読み出しビットエラーカウント、読み出し動作エラーカウント、消去エラーカウントなど)に関する情報を含むことができる。特定の例では、エラーカウントの1つ以上の検出されたエラーの数(例えば、エラーパラメータ)が、閾値(例えば、許容エラー閾値)を超えている場合、ビットエラーは修正不可能なビットエラーと呼ばれる場合がある。管理テーブル130は、とりわけ、修正可能または修正不可能なビットエラーのカウントをメンテナンスすることができる。
特定の例では、第2のメモリは、ホストの論理ブロックアドレスをフラッシュメモリの物理アドレスにマッピングするための第2の完全なFTLテーブル162を含むことができる。いくつかの例では、環境100は、第1の完全なFTLテーブル162、または第2の完全なFTLテーブル162のうちの1つのみを含み得る。
図2は、ホスト常駐FTLの態様を使用してフラッシュメモリシステムにてメモリ動作を実施するための例示的な方法200のフローチャートを概略的に示す。特定の例では、この方法は、ホストから受信した物理アドレスがホストによって提供されたLBAに対応していることを検証するのを支援することができる。何らかの形式の検証がないと、悪意のあるホストがLBA及び無関係の物理アドレスを提供することにより、ホストによってアクセス可能であることが意図されないか、またはメモリシステムにて受信した特定のホストメモリ要求を使用してホストによってアクセスすることが意図されないフラッシュメモリデータへのアクセスが生じ得る。201で、メモリシステムは、ホスト常駐FTL動作モード中にLBA及び物理アドレスの表現を含むホストメモリ要求を受信することができる。LBAは、ホストのメモリシステム内のメモリ位置を表す。物理アドレスは、フラッシュメモリシステムのフラッシュメモリ内のメモリ位置を表す。ホスト常駐FTL動作モード以外では、フラッシュメモリシステムのメモリコントローラは、メモリコントローラのキャッシュ内のマッピング情報を使用するか、またはフラッシュメモリシステムのフラッシュメモリに記憶されたマッピングテーブル全体を使用して、受信したLBAにマッピングされた物理アドレスを特定することができる。ホスト常駐FTL動作モード中、ホストは、LBAに関連した、マッピングされた物理アドレスまたはその表現を提供することができる。特定の状況では、マッピングされた物理アドレスを提供することにより、メモリコントローラがフラッシュメモリシステムのフラッシュメモリからメモリ情報を取得する回数を減少させることができる。メモリマッピング情報を取得するためにフラッシュメモリにアクセスするとホストのメモリ動作の性能が大幅に低下する可能性があるため、メモリコントローラがメモリマッピング情報を取得する回数を減少させることによってホストのメモリ要求の性能を大幅に向上させることができる。
メモリシステムのフラッシュメモリの限定された領域への意図しないか、または悪意のあるアクセスを防ぐために、203で、物理アドレスの表現をフラッシュメモリシステムのキーを使用して復号化することができる。特定の例では、フラッシュメモリシステムは暗号回路を含むことができる。特定の例では、暗号回路はメモリコントローラの一部とすることができる。暗号回路は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装され得る。
205で、復号化済みの物理アドレスを、メモリ要求のためのフラッシュメモリシステムの有効な物理アドレスとして検証することができる。特定の例では、検証は、メモリコントローラのキャッシュ内のLBAを特定すること、及び復号化済みの物理アドレスをLBAにマッピングされた物理アドレスと比較することを含むことができる。LBAがメモリコントローラのキャッシュ内で特定されるかどうかに関係なく、メモリコントローラは、復号化済みの物理アドレスを、メモリ要求のために限定されていないアドレス領域を含むテーブルと比較し、復号化済みの物理アドレスがアドレス領域のうちの1つに含まれることを検証することができる。
207で、メモリコントローラが、復号化済みの物理アドレスがメモリ要求に対して有効な物理アドレスであることを検証したとき、メモリコントローラは、復号化済みの物理アドレスを使用してメモリ要求を実行することができる。メモリコントローラが、復号化済みの物理アドレスがメモリ要求に対して有効な物理アドレスであることを検証できなかったとき、メモリコントローラは、復号化済みの物理アドレスを使用してメモリ要求を実行しない。
209で、メモリコントローラが、復号化済みの物理アドレスがメモリ要求に対して有効な物理アドレスであることを検証できなかったとき、メモリコントローラは、メモリ要求を実行するために復号化済みの物理アドレスを使用しない。211で、メモリコントローラは任意選択でエラー指示をホストに返すことができる。213で、メモリコントローラが、復号化済みの物理アドレスがメモリ要求に対して有効な物理アドレスであることを検証できなかったとき、メモリコントローラは、任意選択で、キャッシュまたはフラッシュメモリシステムのフラッシュメモリのいずれかにおいて記憶及びメンテナンスされたマッピング情報を使用してLBAに関連した正しい物理アドレスを取得することができ、次いで213で、正しい物理アドレスを使用してメモリ要求を実行することができる。特定の例では、LBAは、メモリシステムにて有効なLBAとして検証され得る。このような検証は、受信したLBAを有効なLBAのテーブルのエントリと比較することを含むことができる。受信したLBAが有効なLBAのテーブルのエントリと一致しない場合、メモリコントローラは、メモリ要求を無視するか、エラー指示を返すか、またはそれらの組み合わせとすることができる。
特定の例では、ホスト常駐FTL動作モード中に使用するためにホストに提供されるマッピング情報は、メモリデバイスによって提供される。マッピング情報をホストに提供する前に、フラッシュメモリシステムのメモリコントローラは、物理アドレスを暗号化し、実際の物理アドレスの代わりに各物理アドレスの暗号化済みの表現を提供することができる。図3は、フラッシュメモリシステムからホストにマッピング情報を提供するための例示的な方法300のフローチャートを概略的に示す。メモリコントローラは、ホストからメモリ要求を受信するとマッピング情報を生成することができる。マッピング情報は、非常に大きくなる可能性があるため、記憶データと共にフラッシュメモリに記憶される。特定の例では、マッピング情報はテーブルに記憶させることができ、テーブル内のレコードは、ホストのメモリ位置に関連したLBA及びLBAにマッピングされたフラッシュメモリシステムのメモリ位置に関連した物理アドレスを含む。301で、メモリコントローラ、またはメモリコントローラの暗号回路は、マッピングテーブルレコードを受信することができる。マッピングテーブルレコードは、LBA及びLBAにマッピングされたフラッシュメモリシステムの物理アドレスを含むことができる。特定の例では、フラッシュメモリシステムのメモリ要求をホストが行うと、メモリコントローラは、ホストの各LBAをフラッシュメモリシステムの対応する物理アドレスにマッピングする。
301で、暗号回路は、ホストのLBA及びLBAにマッピングされたフラッシュメモリシステムの物理アドレスを含むマッピングテーブルのマッピングレコードなどのマッピング情報を受信することができる。暗号回路は、フラッシュメモリシステムの一部とすることができる。いくつかの例では、暗号回路は、フラッシュメモリシステムのメモリコントローラの一部とすることができる。303で、暗号回路はトークンを使用して物理アドレスに暗号化アルゴリズムを適用することができる。特定の例では、トークンは、フラッシュメモリシステムの不揮発性メモリにハードコーディングすることができる。暗号化アルゴリズムを適用することにより、暗号化済みのバージョンの物理アドレスが生成される。305で、マッピングレコードの物理アドレスを暗号化済みのバージョンの物理アドレスに置き換えることができる。特定の例では、暗号化済みの物理アドレスはシークレットを含むことができる。特定の例では、ホストはシークレットを使用してフラッシュメモリシステムに関する統計をメンテナンスすることができる。そのようなメモリ統計は、プログラムカウント、消去カウント、プログラム/消去サイクルカウント、サイクルカウント、無効なページカウント、予想される摩耗値、またはそれらの組み合わせを含むことができるが、これらに限定されない。307で、環境(例えば、100)のホスト常駐FTL動作モード中に使用するためにマッピング情報をホストに転送することができる。マッピング情報は、LBA及びLBAに対応する物理アドレスの対応する暗号化済みのバージョンを含むマッピングレコードを含むことができる。
図4は、ホストにてメモリシステムのフラッシュメモリメンテナンス情報をメンテナンスするための例示的な方法400のフローチャートを概略的に示す。401で、メモリシステムは、任意選択でマッピング情報をホストに提供することができる。マッピング情報は、メモリシステムにて受信した様々なメモリ要求に応答して提供することができ、フラッシュメモリを含むメモリシステムの完全なマップをホストに持たせることができる。403で、メモリシステムは、ホストから書き込みコマンドを受信することができる。書き込みコマンドは、論理ブロックアドレスを含むことができる。ホストがFTL動作モードで動作する例では、書き込みコマンドは、書き込みコマンドに関連した書き込みデータを記憶するためのフラッシュメモリの物理アドレスまたは物理ブロックの表現を含むことができる。
405で、メモリシステムは、フラッシュメモリの物理ブロックに書き込みデータを記憶することができる。いくつかの例では、物理ブロックは、ホストによって書き込みコマンドと共に供給された物理ブロックと同一にすることができる。407で、メモリシステムは、書き込みコマンドの実行に関する応答情報を暗号化することができる。特定の例では、応答情報は、書き込みデータが記憶された物理ブロックの指示を含むことができる。いくつかの例では、応答情報は、フラッシュメモリのメンテナンス統計をメンテナンスする目的でホストに物理ブロック情報を抽出させるための認識可能なシークレットを含むことができる。411で、応答情報を、応答メッセージを介して書き込みコマンドに応じてホストに送信することができる。
図5は、メモリデバイスにてホストからのメモリメンテナンスコマンドを受信するための例示的な方法500のフローチャートを概略的に示す。501で、メモリデバイスは、ホストからメンテナンスコマンドを受信することができる。メンテナンスコマンドは、メモリデバイスのフラッシュメモリブロックのアドレスの表現を含むことができる。特定の例では、メモリブロックの表現を暗号化することができ、メモリデバイスのコントローラがメモリブロックアドレスを復号化することができる。特定の例では、特にホストがFTL動作モードで動作していない場合、メモリデバイスは基本的なメンテナンス統計をメンテナンスすることができ、メンテナンスコマンドをヒントとして扱うことができる。メンテナンスコマンドがヒントとして扱われるとき、メモリデバイスは、基本的な統計を閾値と比較して、コマンドされたメンテナンスを実行するかどうかを決定することができる。特定の例では、メモリデバイスは、任意選択で、メンテナンスが実行されたかどうかを示す信頼メッセージを介してホストに応答情報を提供することができる。
505で、メモリデバイスは、メンテナンスコマンドがガベージコレクションコマンドであるとき、メモリブロックにてガベージコレクションを実行することができる。507で、メモリデバイスは、メンテナンスコマンドがウェアレベリングコマンドであるとき、メモリブロックにてウェアレベリング動作を実行することができる。511で、上記で論じられたように、メモリデバイスは、任意選択で、応答メッセージを介してメンテナンスコマンドに応じてホストに応答を提供することができる。
図6は、ホストを使用してフラッシュメモリデバイスをメンテナンスするための例示的な方法500のフローチャートを概略的に示す。601で、ホストは、ホストが情報を記憶するために使用するフラッシュメモリデバイスに関する統計を開始またはメンテナンスすることができる。特定の例では、統計には、フラッシュメモリデバイスのメモリセルの1つ以上のブロックに対するFTLマッピング情報、ブロック寿命、ブロック消去カウント、エラー履歴、エラーパラメータ情報、ホストリセットタイムアウト値、メモリ動作コマンドレイテンシ、または1つ以上のエラーカウント(例えば、書き込み動作エラーカウント、読み出しビットエラーカウント、読み出し動作エラーカウント、消去エラーカウントなど)を含めることができるが、これらに限定されない。603で、ホストは、書き込みコマンド及び関連した書き込みデータをフラッシュメモリデバイスに送信することができる。605で、ホストは、書き込みコマンドに関連した、または書き込みコマンドに応じた、暗号化済みの応答情報を受信することができる。暗号化済みの応答情報には、書き込みデータが記憶されているフラッシュメモリのブロックに関する情報を含めることができる。特定の例では、暗号化済みの応答情報には、ホストが認識することができるシークレットを含めることができ、そのシークレットを使用して、書き込みデータが記憶されているフラッシュメモリのブロックに関する情報などの暗号化済みの応答情報の少なくとも一部を復号化することができる。
607で、ホストは、暗号化済みの応答情報と共に提供された書き込みデータが記憶されているフラッシュメモリのブロックに関する情報を使用してフラッシュメモリデバイスに関する統計を更新することができる。特定の例では、ホストは、統計のうちの1つ以上をメンテナンス閾値と比較することができ、609で、メンテナンスコマンドをメモリデバイスに送信することができる。特定の例では、メンテナンスコマンドには、ガベージコレクションコマンドまたはウェアレベリングコマンドを含めることができるが、これらに限定されない。メンテナンスコマンドには、フラッシュメモリデバイスのフラッシュメモリのターゲットブロックのアドレスを含めることができる。特定の例では、ターゲットブロックのアドレスを暗号化することにより、フラッシュメモリデバイスによってのみ真の実ブロックを復号化することができるようになる。特定の例では、ホストによって保持されるフラッシュメモリデバイスに関する統計は、まさに過程の統計であり、ホストがメモリデバイスにメンテナンスコマンドを送信するとき、メモリデバイスは、そのコマンドを提案として扱い、ホストによって保持された統計と比較して、メモリデバイスにて保持されたより細かい粒度の統計がフラッシュメモリデバイスのメンテナンス閾値を満たす場合には、メンテナンスコマンドを実行しなくてもよい。特定の例では、メモリデバイスは、任意選択で、メンテナンスが実行されたかどうかを示す、信頼メッセージを介してホストに応答情報を提供することができる。
図7は、本明細書で論じられる技術(例えば、方法論)のうちの任意の1つ以上が実行され得る例示的なマシン700のブロック図を示す。代替的な実施形態では、マシン700は、スタンドアロンデバイスとして動作し得るか、または他のマシンに接続(例えば、ネットワーク接続)され得る。ネットワーク接続配置では、マシン700は、サーバクライアントネットワーク環境で、サーバマシン、クライアントマシン、またはその両方の能力で動作し得る。一例では、マシン700は、ピアツーピア(P2P)(または他の分散型)ネットワーク環境でピアマシンとして機能し得る。マシン700は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、IoTデバイス、自動車システム、またはそのマシンによって行われるアクションを指定する命令(シーケンシャルもしくはその他の方法)を実行することが可能な任意のマシンであり得る。さらに、単一のマシンのみが示されているが、「マシン」という用語はまた、クラウドコンピューティング、ソフトウェアアズアサービス(SaaS)、他のコンピュータクラスタ構成などの、本明細書で論じられる方法論のうちの任意の1つ以上を実行するために命令のセット(または複数のセット)を個別にまたは共同で実行するマシンの任意の集合を含むと解釈されるものとする。
本明細書で説明される例は、論理、構成要素、デバイス、パッケージ、もしくは機構を含み得るか、またはそれらによって動作し得る。回路網は、ハードウェア(例えば、単純な回路、ゲート、ロジックなど)を含む有形のエンティティに実装された回路の集合(例えば、セット)である。回路網の構成要素は、時間の経過及び基礎となるハードウェアの変動性に柔軟に対応し得る。回路網は、単独でまたは組み合わせて、動作時に特定のタスクを実行し得る構成要素を含む。一例では、回路網のハードウェアは、特定の動作(例えば、ハードワイヤード)を実行するように不変に設計され得る。一例では、回路網のハードウェアは、特定の動作の命令をエンコードするために、物理的に修正された(例えば、磁気的、電気的、不変質量粒子の可動配置など)コンピュータ可読媒体を含む、可変的に接続された物理的構成要素(例えば、実行ユニット、トランジスタ、単純な回路など)を含み得る。物理的構成要素を接続する際に、ハードウェア構成物の基礎となる電気的特性は、例えば、絶縁体から導体に、またはその逆に変更される。この命令により、関係するハードウェア(例えば、実行ユニットまたはロード機構)は、可変接続を介してハードウェア内に回路網の構成要素を作成し、動作中に特定のタスクの一部を実行することができる。したがって、コンピュータ可読媒体は、デバイスが動作しているときに、回路網の他の構成要素に通信可能に結合される。一例では、物理的構成要素のいずれかが、複数の回路網の複数の構成要素で使用され得る。例えば、動作中、実行ユニットは、ある時点で第1の回路網の第1の回路で使用され得、別の時点で第1の回路網の第2の回路によって再利用され得るか、または第2の回路網の第3の回路によって再利用され得る。
マシン(例えば、コンピュータシステム)700(例えば、ホスト105、メモリデバイス110など)は、処理デバイス702(例えば、ハードウェアプロセッサ、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、ハードウェアプロセッサコア、または、メモリデバイス110のメモリコントローラなどの、それらの任意の組み合わせなど)、メインメモリ704(例えば、リードオンリーメモリ(ROM)、フラッシュメモリ、シンクロナスDRAM(SDRAM)またはラムバスDRAM(RDRAM)などのダイナミックランダムアクセスメモリ(DRAM)など)、スタティックメモリ706(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、及びこれらの一部または全てがインターリンク(例えば、バス)730を介して互いに通信し得るデータストレージシステム718を含み得る。
処理デバイス702は、マイクロプロセッサ、中央処理ユニットまたは同種のものなどの、1つ以上の汎用処理デバイスを表すことができる。より具体的には、処理デバイスは、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、もしくは他の命令セットを実装するプロセッサ、または命令セットの組み合わせを実装するプロセッサとすることができる。処理デバイス702はまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサまたは同種のものなどの、1つ以上の専用処理デバイスとすることができる。処理デバイス702は、本明細書で論じられる動作及びステップを実行するための命令726を実行するように構成することができる。コンピュータシステム700は、ネットワーク720を介して通信するためのネットワークインターフェースデバイス708をさらに含むことができる。
データストレージシステム718は、本明細書で説明される方法論または機能のうちの任意の1つ以上を具体化する命令726またはソフトウェアの1つ以上のセットが記憶されるマシン可読記憶媒体724(コンピュータ可読媒体としても知られる)を含むことができる。命令726はまた、コンピュータシステム700によるその実行中、メインメモリ704内または処理デバイス702内に、完全にまたは少なくとも部分的に存在することができ、メインメモリ704及び処理デバイス702はまた、マシン可読記憶媒体を構成する。マシン可読記憶媒体724、データストレージシステム718またはメインメモリ704は、図1のメモリデバイス110に対応することができる。
一実施態様では、命令726は、図2または図3に関して上記で論じられた1つ以上のホスト常駐FTL動作に対応する機能を実装するための命令を含む。マシン可読記憶媒体724は、例示的な実施態様において単一の媒体であるように示されているが、「マシン可読記憶媒体」という用語は、命令の1つ以上のセットを記憶する単一の媒体または複数の媒体を含むと解釈されるべきである。「マシン可読記憶媒体」という用語はまた、マシンによって実行するための命令のセットを記憶またはエンコードすることが可能であり、マシンに本開示の方法論のうちの任意の1つ以上を実行させる任意の媒体を含むと解釈されるべきである。したがって、「マシン可読記憶媒体」という用語は、限定されないが、ソリッドステートメモリ、光学媒体及び磁気媒体を含むと解釈されるべきである。一例では、密集したマシン可読媒体は、不変(例えば、静止)質量を有する複数の粒子を有するマシン可読媒体を含む。したがって、密集したマシン可読媒体は一時的な伝播信号ではない。密集したマシン可読媒体の具体的な例には、半導体メモリデバイス(例えば、電気的プログラマブルリードオンリーメモリ(EPROM)、電子的消去可能プログラマブルリードオンリーメモリ(EEPROM)及びフラッシュメモリデバイスなどの不揮発性メモリ、内蔵ハードディスク及びリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROM及びDVD-ROMディスクが含まれ得る。
マシン700は、ディスプレイユニット、英数字入力デバイス(例えば、キーボード)、及びユーザインターフェース(UI)ナビゲーションデバイス(例えば、マウス)をさらに含み得る。一例では、ディスプレイユニット、入力デバイス、またはUIナビゲーションデバイスのうちの1つ以上は、タッチスクリーンディスプレイであり得る。マシン、信号生成デバイス(例えば、スピーカー)、または全地球測位システム(GPS)センサ、コンパス、加速度計もしくは1つ以上の他のセンサなどの、1つ以上のセンサ。マシン700は、1つ以上の周辺デバイス(例えば、プリンタ、カードリーダなど)との通信または制御を行うためのシリアル(例えば、ユニバーサルシリアルバス(USB)、パラレル、または他の有線もしくは無線(例えば、赤外線(IR)、近距離無線通信(NFC)など)接続などの出力コントローラを含み得る。
データストレージデバイス718に記憶される命令726(例えば、ソフトウェア、プログラム、オペレーティングシステム(OS)など)または他のデータは、処理デバイス702による使用のためにメインメモリ704によってアクセスすることができる。メインメモリ704(例えば、DRAM)は、典型的には、高速であるが揮発性であり、したがって、「オフ」状態にある間を含む長期記憶に適しているデータストレージデバイス718(例えば、SSD)とは異なるタイプのストレージである。ユーザまたはマシン700による使用における命令726またはデータは、典型的には、処理デバイス702による使用のためにメインメモリ704にロードされる。メインメモリ704が一杯になると、メインメモリ704を補うために、データストレージデバイス718からの仮想空間を割り当てることができるが、データストレージデバイス718が典型的にはメインメモリ704よりも遅く、書き込み速度が典型的には読み出し速度の少なくとも2倍遅いため、仮想メモリを使用すると、(例えば、DRAMといったメインメモリ704とは対照的に)ストレージデバイスのレイテンシによってユーザエクスペリエンスが大幅に低下する可能性がある。さらに、仮想メモリのためにデータストレージデバイス718を使用することにより、データストレージデバイス718の使用可能な寿命期間が大幅に低下する可能性がある。
仮想メモリとは対照的に、仮想メモリ圧縮(例えば、Linux(商標)カーネル機能「ZRAM」)は、データストレージデバイス718へのページングを回避するためにメモリの一部を圧縮ブロックストレージとして使用する。ページングは、そのようなデータをデータストレージデバイス718に書き込むことが必要となるまで圧縮ブロックにおいて行われる。仮想メモリ圧縮は、メインメモリ704の使用可能なサイズを増加させつつ、データストレージデバイス718での摩耗を減少させる。
モバイル電子デバイスまたはモバイルストレージ用に最適化されたストレージデバイスには、従来、MMCソリッドステートストレージデバイス(例えば、micro Secure Digital(microSD(商標))カードなど)が含まれる。MMCデバイスは、ホスト(例えば、ホストデバイス)との複数のパラレルインターフェース(例えば、8ビットパラレルインターフェース)を含み、多くの場合、ホストから取り外し可能で個別の構成要素である。対照的に、eMMC(商標)デバイスは回路基板に取り付けられ、ホストの構成要素と見なされ、シリアルATA(商標)(シリアルAT(アドバンストテクノロジ)アタッチメント、すなわちSATA)ベースのSSDデバイスに匹敵する読み出し速度を有する。しかしながら、仮想デバイスまたは拡張現実デバイスを完全に可能にすること、増加しつつあるネットワーク速度を利用することなど、モバイルデバイスの性能に対する需要は増え続けている。この需要に応えて、ストレージデバイスは、パラレル通信インターフェースからシリアル通信インターフェースに移行してきた。コントローラ及びファームウェアを含むユニバーサルフラッシュストレージ(UFS)デバイスは、専用の読み出し/書き込みパスを備えた低電圧差動信号(LVDS)シリアルインターフェースを使用してホストと通信することで、読み出し/書き込み速度をさらに向上させる。
命令724はさらに、複数の転送プロトコル(例えば、フレームリレー、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)など)のうちの任意の1つを利用するネットワークインターフェースデバイス708を介して伝送媒体を使用してネットワーク720を経由して送信または受信され得る。通信ネットワークの例には、とりわけ、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パケットデータネットワーク(例えば、インターネット)、携帯電話網(例えば、セルラーネットワーク)、従来型電話サービス(POTS)ネットワーク、及び無線データネットワーク(例えば、Wi-Fi(登録商標)として知られる電気電子技術者協会(IEEE)802.11ファミリの規格、WiMax(登録商標)として知られるIEEE802.16ファミリの規格)、IEEE802.15.4ファミリの規格、ピアツーピア(P2P)ネットワークが含まれ得る。一例では、ネットワークインターフェースデバイス708は、ネットワーク720に接続するための1つ以上の物理的ジャック(例えば、イーサネット、同軸ジャックもしくは電話ジャック)または1つ以上のアンテナを含み得る。一例では、ネットワークインターフェースデバイス708は、シングル入力マルチ出力(SIMO)技術、マルチ入力マルチ出力(MIMO)技術またはマルチ入力シングル出力(MISO)技術のうちの少なくとも1つを使用して無線通信するための複数のアンテナを含み得る。「伝送媒体」という用語は、マシン700による実行のための命令を記憶する、符号化する、または搬送することが可能である任意の無形媒体を含むと解釈されるべきであり、そのようなソフトウェアの通信を容易にするためにデジタルもしくはアナログ通信信号、または他の無形媒体を含む。
その他の注記及び実施例
実施例1は、メモリデバイスからホストにマッピングテーブル情報を提供することと、前記メモリデバイスにて前記ホストから書き込みコマンド及び書き込みデータを受信することと、前記メモリデバイスにて前記書き込みコマンドを実行して前記書き込みデータを前記メモリデバイスの物理ブロックに記憶することと、前記メモリデバイスにて、前記物理ブロックの物理アドレスを含む応答情報を暗号化することと、前記書き込みコマンドに応じて、前記暗号化済みの応答情報を含む応答メッセージを前記ホストに送信することとを含む方法である。
実施例2において、前記メモリデバイスにて前記ホストからメモリメンテナンスコマンドを受信することを含み、前記メモリメンテナンスコマンドが前記暗号化済みの応答情報の少なくとも一部を含む、実施例1に記載の主題。
実施例3において、前記物理アドレスを提供するために前記メモリデバイスにて前記暗号化済みの応答情報を復号化することを含む、実施例2に記載の主題。
実施例4において、前記メモリメンテナンスコマンドがガベージコレクションコマンドである、実施例3に記載の主題。
実施例5において、前記方法が、前記物理アドレスによって表現された前記メモリデバイスのメモリの物理ブロックにてガベージコレクションを実行することを含む、実施例4に記載の主題。
実施例6において、前記物理アドレスが前記メモリデバイスの有効な物理アドレスではないと判定することと、前記ガベージコレクションコマンドに応じてガベージコレクションプロシージャを実行しないことと、実施例4~5のいずれかに記載の主題。
実施例7において、前記メモリメンテナンスコマンドがウェアレベリングコマンドである、実施例3~6のいずれかに記載の主題。
実施例8において、前記物理アドレスによって表現された前記メモリデバイスのメモリの物理ブロックにてウェアレベリングプロシージャを実行することを含む、実施例7に記載の主題。
実施例9において、前記物理アドレスが前記メモリデバイスの有効な物理アドレスではないと判定することと、前記ウェアレベリングコマンドに応答してウェアレベリングプロシージャを実行しないこととを含む、実施例7~8のいずれかに記載の主題。
実施例10において、前記応答情報がシークレットを含み、前記応答情報を復号化することが、前記シークレットを使用して前記応答情報を復号化することを含む、実施例1~9のいずれかに記載の主題。
実施例11において、前記物理ブロックがフラッシュメモリを含む、実施例1~10のいずれかに記載の主題。
実施例12において、前記フラッシュメモリがNANDメモリを含む、実施例11に記載の主題。
実施例13は、ホストにて外部フラッシュメモリシステムのマッピングテーブル情報及びメモリ統計をメンテナンスすることと、前記ホストから前記外部フラッシュメモリシステムに書き込みコマンド及び書き込みデータを送信することと、前記書き込みコマンドに応じて前記外部フラッシュメモリシステムから暗号化済みの応答情報を受信することと、前記暗号化済みの応答情報を使用して前記ホストにて前記外部フラッシュメモリシステムの前記メモリ統計を更新することと、前記暗号化済みの応答情報に関連したメモリ統計がメンテナンス閾値を満たすときにメモリメンテナンスコマンドを送信することとを含み、前記メモリメンテナンスコマンドが前記暗号化済みの応答情報を含む、方法である。
実施例14において、前記暗号化済みの応答情報がシークレットを含む、実施例13に記載の主題。
実施例15において、前記外部フラッシュメモリシステムのメモリ統計をメンテナンスすることが、前記外部フラッシュメモリシステムの物理アドレスを提供するために前記シークレットを使用して前記暗号化済みの応答情報を復号化することを含む、実施例14に記載の主題。
実施例16において、前記外部フラッシュメモリシステムのメモリ統計をメンテナンスすることが、前記物理アドレスを使用して前記マッピングテーブル情報を更新することを含む、実施例15に記載の主題。
実施例17において、前記外部フラッシュメモリシステムのメモリ統計をメンテナンスすることが、前記物理アドレスを使用して有効なデータカウント統計をメンテナンスすることを含む、実施例15~16のいずれかに記載の主題。
実施例18において、前記外部フラッシュメモリシステムのメモリ統計をメンテナンスすることが、前記物理アドレスを使用してフル/エンプティステータス統計をメンテナンスすることを含む、実施例15~17のいずれかに記載の主題。
実施例19において、前記外部フラッシュメモリシステムのメモリ統計をメンテナンスすることが、前記物理アドレスを使用して最終書き込み統計後の時間をメンテナンスすることを含む、実施例15~18のいずれかに記載の主題。
実施例20において、前記メモリメンテナンスコマンドがガベージコレクションコマンドである、実施例13~19のいずれかに記載の主題。
実施例21において、前記メモリメンテナンスコマンドがウェアレベリングコマンドである、実施例13~20のいずれかに記載の主題。
実施例22は、少なくとも1つのマシン可読媒体であって、処理回路網によって実行されるとき、実施例1~21のいずれかを実施するための動作を前記処理回路網に実行させる命令を含む、前記少なくとも1つのマシン可読媒体である。
実施例23は、実施例1~21のいずれかを実施するための手段を含む装置である。
実施例24は、実施例1~21のいずれかを実施するシステムである。
実施例25は、実施例1~21のいずれかを実施する方法である。
上記の詳細な説明は、詳細な説明の一部を形成する添付の図面に対する参照を含む。図面は、例示として、本発明を実施できる特定の実施形態を示す。これらの実施形態は、本明細書では「実施例」とも称される。こうした実施例は、図示または説明された要素に加えて要素を含み得る。しかしながら、本発明者らは、図示または説明されたそれらの要素のみが提供される実施例も企図する。さらに、本発明者らは、本明細書に図示または説明された特定の実施例(あるいはその1つ以上の態様)に関して、または他の実施例(あるいはその1つ以上の態様)に関して、図示または説明されたそれらの要素(あるいはその1つ以上の態様)の任意の組み合わせまたは変形を使用する実施例も企図する。
本書では、用語「a」または「an」は、特許文書で一般的であるように、「少なくとも1つの(at least one)」または「1つ以上の(one or more)」の任意の他の例または使用法とは関係なく、1つまたは複数を含むために使用される。本書では、用語「または(or)」は非排他的を指すために使用されるか、または別段の指示がない限り、「AまたはB(A or B)」は「AであるがBではない(A but not B)」、「BであるがAではない(B but not A)」、及び「A及びB(A and B)」を含み得るように使用される。添付の特許請求の範囲では、用語「含む(including)」及び「~において(in which)」は、それぞれの用語「含む(comprising)」及び「そこで(wherein)」の分かりやすい英語の同等物として使用される。また、以下の特許請求の範囲では、用語「含む(including)」及び「含む(comprising)」は、オープンエンドである。請求項の中のそのような用語の後に示される要素に加えて要素を含むシステム、デバイス、商品、またはプロセスもその請求項の範囲に含まれると見なされる。さらに、以下の特許請求の範囲では、用語「第1の」、「第2の」、及び「第3の」などは、単にラベルとして使用されており、その対象に対する数的な要件を課すことを意図していない。
様々な実施例では、本明細書に記載される構成要素、コントローラ、プロセッサ、ユニット、エンジン、またはテーブルは、とりわけ、物理的回路網、または物理デバイスに記憶されるファームウェアを含むことができる。本明細書で使用される場合、「プロセッサ」は、限定されないが、マイクロプロセッサ、マイクロコントローラ、グラフィックスプロセッサ、デジタルシグナルプロセッサ(DSP)、または、プロセッサまたはマルチコアデバイスのグループを含む、任意の他のタイプのプロセッサまたは処理回路などの任意のタイプの計算回路を意味する。
本明細書で使用されるメモリセルの動作は、メモリセルからの読み出し、メモリセルへの書き込み、またはメモリセルの消去を含む。メモリセルを意図された状態にする動作は、本明細書では「プログラミング」と呼ばれ、メモリセルへの書き込みまたはメモリセルからの消去(例えば、メモリセルは消去状態にプログラムされ得る)の両方を含むことができる。
NORまたはNANDアーキテクチャの半導体メモリアレイ内の各フラッシュメモリセルは、個々にまたは一括して1つまたは複数のプログラムされた状態にプログラムすることができる。例えば、シングルレベルセル(SLC)は、2つのプログラムされた状態(例えば、1または0)のうちの1つを表すことができ、1ビットのデータを表す。ただし、フラッシュメモリセルは2つより多いプログラムされた状態のうちの1つを表すこともできることにより、各セルが1つより多い二進数(例えば、1ビットよりも多い)を表すことができるため、メモリセルの数を増やすことなく、より高密度のメモリの製造を可能にする。それらのようなセルは、マルチステートメモリセル、マルチデジットセル、またはマルチレベルセル(MLC)と称されることができる。特定の例では、MLCは、セルあたり2ビットのデータ(例えば、4つのプログラムされた状態のうちの1つ)を記憶することができるメモリセルを指すことができ、トリプルレベルセル(TLC)は、セルあたり3ビットのデータ(例えば、8つのプログラムされた状態のうちの1つ)を記憶することができるメモリセルを指すことができ、クアッドレベルセル(QLC)は、セルあたり4ビットのデータを記憶することができる。明確な言語または文脈によって明らかに指定されない限り、MLCは、本明細書では、より広い文脈において、セルあたり2ビット以上のデータを記憶することができる(すなわち、3つ以上のプログラムされた状態を表すことができる)任意のメモリセルを指すために使用される。
本開示の1つ以上の実施形態によれば、メモリデバイスの内部に、または外部に位置するメモリコントローラ(例えば、プロセッサ、コントローラ、ファームウェアなど)は、摩耗サイクルの量、または摩耗状態(例えば、摩耗サイクルを記録すること、摩耗サイクルの発生時にメモリデバイスの動作をカウントすること、カウントを開始するメモリデバイスの動作を追跡すること、摩耗状態に対応するメモリデバイス特性を評価することなど)を決定すること(例えば、選択すること、設定すること、調整すること、計算すること、変更すること、クリアすること、通信すること、適合させること、導出すること、定義すること、利用すること、修正すること、適用することなど)が可能である。
本開示の1つ以上の実施形態によれば、メモリアクセスデバイスは、メモリ動作ごとにメモリデバイスに摩耗サイクル情報を提供するように構成され得る。メモリデバイス制御回路網(例えば、制御ロジック)は、摩耗サイクル情報に対応するメモリデバイスパフォーマンスの変化を補償するようにプログラムされ得る。メモリデバイスは、摩耗サイクル情報を受信し、摩耗サイクル情報に応じて1つ以上の動作パラメータ(例えば、値、特性)を決定し得る。
本明細書で説明される方法の実施例は、少なくとも部分的に、マシン、デバイスまたはコンピュータに実装することができる。いくつかの例は、コンピュータ可読媒体、デバイス可読媒体、または上記の実施例に記載された方法を実行するように電子デバイスを構成するように動作可能な命令で符号化されたマシン可読媒体を含むことができる。このような方法の実装は、マイクロコード、アセンブリ言語コード、高水準言語コードなどのようなコードを含むことができる。このようなコードは、様々な方法を実施するためのコンピュータ可読命令を含むことができる。コードは、コンピュータプログラム製品の一部を形成し得る。さらに、コードは、実行中または他の時間などに、1つ以上の揮発性あるいは不揮発性の有形コンピュータ可読媒体に有形で記憶させることができる。これらの有形のコンピュータ可読媒体の例は、限定されないが、ハードディスク、リムーバブル磁気ディスク、リムーバブル光ディスク(例えば、コンパクトディスク及びデジタルビデオディスク)、磁気カセット、メモリカードまたはスティック、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ソリッドステートドライブ(SSD)、ユニバーサルフラッシュストレージ(UFS)デバイス、組み込みMMC(eMMC)デバイスなどを含むことができる。
上記の説明は、例示を意図したものであり、限定的なものではない。例えば、上述の実施例(またはその1つ以上の態様)は、相互に組み合わせて使用され得る。上記の説明を検討する際に当業者によってなど、他の実施形態を使用できる。これは、特許請求の範囲の範囲または意味を解釈または限定するために使用されないとの理解のもとに提案されている。また、上記の発明を実施するための形態では、様々な特徴が本開示を効率化するために一緒にグループ化され得る。これは、請求されていない開示された特徴がいずれかの請求項に対して不可欠であることを意図すると解釈されるべきではない。むしろ、本発明の主題は、特定の開示されている実施形態の全ての特徴に満たないものに存在し得る。したがって、次の特許請求の範囲は発明を実施するための形態にここで組み込まれ、各請求項は別個の実施形態として自立しており、このような実施形態は、様々な組み合わせまたは変形で相互に組み合わせることができると想到される。本発明の範囲は、添付の特許請求の範囲に関して、こうした特許請求の範囲によって権利が与えられる均等物の全範囲と一緒に決定されるべきである。

Claims (21)

  1. メモリデバイスからホストにマッピングテーブル情報を提供することと、
    前記メモリデバイスにて前記ホストから書き込みコマンド及び書き込みデータを受信することと、
    前記メモリデバイスにて前記書き込みコマンドを実行して前記書き込みデータを前記メモリデバイスの物理ブロックに記憶することと、
    前記メモリデバイスにて、前記物理ブロックの物理アドレスを含む応答情報を暗号化することと、
    前記書き込みコマンドに応じて、前記暗号化済みの応答情報を含む応答メッセージを前記ホストに送信することとを含む、方法。
  2. 前記メモリデバイスにて前記ホストからメモリメンテナンスコマンドを受信することを含み、前記メモリメンテナンスコマンドが前記暗号化済みの応答情報の少なくとも一部を含む、請求項1に記載の方法。
  3. 前記物理アドレスを提供するために前記メモリデバイスにて前記暗号化済みの応答情報を復号化することを含む、請求項2に記載の方法。
  4. 前記メモリメンテナンスコマンドがガベージコレクションコマンドである、請求項3に記載の方法。
  5. 前記方法が、前記物理アドレスによって表現された前記メモリデバイスのメモリの物理ブロックにてガベージコレクションを実行することを含む、請求項4に記載の方法。
  6. 前記物理アドレスが前記メモリデバイスの有効な物理アドレスではないと判定することと、
    前記ガベージコレクションコマンドに応じてガベージコレクションプロシージャを実行しないことと、請求項4に記載の方法。
  7. 前記メモリメンテナンスコマンドがウェアレベリングコマンドである、請求項3に記載の方法。
  8. 前記物理アドレスによって表現された前記メモリデバイスのメモリの物理ブロックにてウェアレベリングプロシージャを実行することを含む、請求項7に記載の方法。
  9. 前記物理アドレスが前記メモリデバイスの有効な物理アドレスではないと判定することと、
    前記ウェアレベリングコマンドに応答してウェアレベリングプロシージャを実行しないこととを含む、請求項7に記載の方法。
  10. 前記応答情報がシークレットを含み、
    前記応答情報を復号化することが、前記シークレットを使用して前記応答情報を復号化することを含む、請求項1に記載の方法。
  11. 前記物理ブロックがフラッシュメモリを含む、請求項1に記載の方法。
  12. 前記フラッシュメモリがNANDメモリを含む、請求項11に記載の方法。
  13. ホストにて外部フラッシュメモリシステムのマッピングテーブル情報及びメモリ統計をメンテナンスすることと、
    前記ホストから前記外部フラッシュメモリシステムに書き込みコマンド及び書き込みデータを送信することと、
    前記書き込みコマンドに応じて前記外部フラッシュメモリシステムから暗号化済みの応答情報を受信することと、
    前記暗号化済みの応答情報を使用して前記ホストにて前記外部フラッシュメモリシステムの前記メモリ統計を更新することと、
    前記暗号化済みの応答情報に関連したメモリ統計がメンテナンス閾値を満たすときにメモリメンテナンスコマンドを送信することとを含み、
    前記メモリメンテナンスコマンドが前記暗号化済みの応答情報を含む、方法。
  14. 前記暗号化済みの応答情報がシークレットを含む、請求項13に記載の方法。
  15. 前記外部フラッシュメモリシステムのメモリ統計をメンテナンスすることが、前記外部フラッシュメモリシステムの物理アドレスを提供するために前記シークレットを使用して前記暗号化済みの応答情報を復号化することを含む、請求項14に記載の方法。
  16. 前記外部フラッシュメモリシステムのメモリ統計をメンテナンスすることが、前記物理アドレスを使用して前記マッピングテーブル情報を更新することを含む、請求項15に記載の方法。
  17. 前記外部フラッシュメモリシステムのメモリ統計をメンテナンスすることが、前記物理アドレスを使用して有効なデータカウント統計をメンテナンスすることを含む、請求項15に記載の方法。
  18. 前記外部フラッシュメモリシステムのメモリ統計をメンテナンスすることが、前記物理アドレスを使用してフル/エンプティステータス統計をメンテナンスすることを含む、請求項15に記載の方法。
  19. 前記外部フラッシュメモリシステムのメモリ統計をメンテナンスすることが、前記物理アドレスを使用して最終書き込み統計後の時間をメンテナンスすることを含む、請求項15に記載の方法。
  20. 前記メモリメンテナンスコマンドがガベージコレクションコマンドである、請求項13に記載の方法。
  21. 前記メモリメンテナンスコマンドがウェアレベリングコマンドである、請求項13に記載の方法。
JP2021535543A 2018-12-21 2019-12-19 ホストベースのフラッシュメモリメンテナンス技術 Pending JP2022522595A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/230,313 US11226894B2 (en) 2018-12-21 2018-12-21 Host-based flash memory maintenance techniques
US16/230,313 2018-12-21
PCT/US2019/067531 WO2020132274A1 (en) 2018-12-21 2019-12-19 Host-based flash memory maintenance techniques

Publications (1)

Publication Number Publication Date
JP2022522595A true JP2022522595A (ja) 2022-04-20

Family

ID=71097701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021535543A Pending JP2022522595A (ja) 2018-12-21 2019-12-19 ホストベースのフラッシュメモリメンテナンス技術

Country Status (7)

Country Link
US (2) US11226894B2 (ja)
EP (1) EP3899731A4 (ja)
JP (1) JP2022522595A (ja)
KR (2) KR102377365B1 (ja)
CN (1) CN113439264A (ja)
TW (2) TW202141267A (ja)
WO (1) WO2020132274A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11263124B2 (en) 2018-08-03 2022-03-01 Micron Technology, Inc. Host-resident translation layer validity check
US11226907B2 (en) 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226894B2 (en) 2018-12-21 2022-01-18 Micron Technology, Inc. Host-based flash memory maintenance techniques
US20220326887A1 (en) * 2021-04-06 2022-10-13 Micron Technology, Inc. Log management maintenance operation and command
US11556482B1 (en) * 2021-09-30 2023-01-17 International Business Machines Corporation Security for address translation services
CN117632042B (zh) * 2024-01-25 2024-04-30 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005322201A (ja) * 2004-04-06 2005-11-17 Hitachi Ltd 暗号処理を行うストレージシステム
JP2013191174A (ja) * 2012-03-15 2013-09-26 Toshiba Corp 半導体記憶装置およびプログラム
US20170192902A1 (en) * 2015-12-30 2017-07-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device
JP2017519269A (ja) * 2014-04-09 2017-07-13 ビッツプレイ・コーポレーションBitspray Corporation 通信ネットワーク上の情報の安全な記憶と加速された伝送
JP2017162067A (ja) * 2016-03-08 2017-09-14 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
US20180060607A1 (en) * 2016-08-30 2018-03-01 Winbond Electronics Corporation Anti-Rollback Version Upgrade in Secured Memory Chip

Family Cites Families (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812861A (en) * 1995-06-22 1998-09-22 Intel Corporation Override signal for forcing a powerdown of a flash memory
JPH09252323A (ja) 1996-01-11 1997-09-22 Sony Corp 通信システムおよび通信装置
US6345347B1 (en) 1999-09-27 2002-02-05 International Business Machines Corporation Address protection using a hardware-defined application key
US7134138B2 (en) 2001-02-15 2006-11-07 Emc Corporation Methods and apparatus for providing security for a data storage system
JP3866597B2 (ja) 2002-03-20 2007-01-10 株式会社東芝 内部メモリ型耐タンパプロセッサおよび秘密保護方法
US8060756B2 (en) 2003-08-07 2011-11-15 Rao G R Mohan Data security and digital rights management system
US20080082736A1 (en) 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US7085190B2 (en) 2004-09-16 2006-08-01 Stmicroelectronics, Inc. Variable boost voltage row driver circuit and method, and memory device and system including same
US20060294299A1 (en) 2005-06-28 2006-12-28 Intel Corporation Techniques to verify storage of information
JP4932390B2 (ja) 2006-08-31 2012-05-16 株式会社日立製作所 仮想化システム及び領域割当て制御方法
US7681008B2 (en) 2006-09-29 2010-03-16 Sandisk Corporation Systems for managing file allocation table information
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US8489886B2 (en) 2007-10-03 2013-07-16 International Business Machines Corporation Double authentication for controlling disruptive operations on storage resources
US8375151B1 (en) 2009-02-12 2013-02-12 Siliconsystems, Inc. Command portal for securely communicating and executing non-standard storage subsystem commands
US8327066B2 (en) 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
JP2010146326A (ja) 2008-12-19 2010-07-01 Toshiba Storage Device Corp 記憶装置、その制御方法及びその記憶装置を用いた電子装置
US8412909B2 (en) 2009-04-08 2013-04-02 Samsung Electronics Co., Ltd. Defining and changing spare space and user space in a storage apparatus
US8176295B2 (en) 2009-04-20 2012-05-08 Imation Corp. Logical-to-physical address translation for a removable data storage device
KR101635502B1 (ko) 2009-07-22 2016-07-01 삼성전자주식회사 반도체 메모리 장치 및 그것의 프로그램 방법
US9003159B2 (en) 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory
US8539148B1 (en) * 2010-12-22 2013-09-17 Emc Corporation Deduplication efficiency
WO2012127266A1 (en) 2011-03-23 2012-09-27 Sandisk Il Ltd. Storage device and method for updating data in a partition of the storage device
JP2014513484A (ja) 2011-04-29 2014-05-29 エルエスアイ コーポレーション 暗号化トランスポート・ソリッドステート・ディスク・コントローラ
US9164887B2 (en) * 2011-12-05 2015-10-20 Industrial Technology Research Institute Power-failure recovery device and method for flash memory
WO2013095381A1 (en) 2011-12-20 2013-06-27 Intel Corporation Method and system for data de-duplication
US9208070B2 (en) 2011-12-20 2015-12-08 Sandisk Technologies Inc. Wear leveling of multiple memory devices
US9740439B2 (en) * 2011-12-23 2017-08-22 International Business Machines Corporation Solid-state storage management
KR20130081526A (ko) 2012-01-09 2013-07-17 삼성전자주식회사 저장 장치, 그것을 포함하는 전자 장치, 및 그것의 데이터 관리 방법들
BR112014017543A2 (pt) 2012-01-17 2017-06-27 Intel Corp técnicas de validação de comando para o acesso a um dispositivo de armazenamento por um cliente remoto
US20130269039A1 (en) 2012-04-04 2013-10-10 Infinidat Ltd. Data access control
CN104285206A (zh) 2012-04-26 2015-01-14 株式会社日立制作所 信息存储系统和控制信息存储系统的方法
US9244833B2 (en) 2012-05-30 2016-01-26 Silicon Motion, Inc. Data-storage device and flash memory control method
US9146920B2 (en) 2012-09-10 2015-09-29 Netronome Systems, Inc. Transactional memory that performs an atomic look-up, add and lock operation
KR20140057454A (ko) 2012-11-02 2014-05-13 삼성전자주식회사 비휘발성 메모리 장치 및 이와 통신하는 호스트 장치
US9164888B2 (en) * 2012-12-10 2015-10-20 Google Inc. Using a logical to physical map for direct user space communication with a data storage device
US9229854B1 (en) 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9407642B2 (en) 2013-03-13 2016-08-02 Samsung Electronics Co., Ltd. Application access control method and electronic apparatus implementing the same
US9592448B2 (en) 2013-03-15 2017-03-14 Skyera, Llc Apparatus and method for using fields in N-space translation of storage requests
US9898404B2 (en) 2013-07-14 2018-02-20 Cnex Labs Method and apparatus for providing improved garbage collection process in solid state drive
TWI516921B (zh) * 2013-10-02 2016-01-11 群聯電子股份有限公司 資料處理方法、記憶體儲存裝置與記憶體控制電路單元
WO2015087426A1 (ja) 2013-12-12 2015-06-18 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
KR102140792B1 (ko) 2013-12-24 2020-08-03 삼성전자주식회사 데이터 중복 제거를 수행할 수 있는 데이터 저장 장치의 동작 방법들
CN104794063A (zh) 2014-01-17 2015-07-22 光宝科技股份有限公司 一种具备电阻式存储器的固态储存装置的控制方法
KR20150126232A (ko) 2014-05-02 2015-11-11 삼성전자주식회사 암호화 데이터 결정 방법 및 이를 제공하는 호스트 장치
KR102148889B1 (ko) 2014-08-18 2020-08-31 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
US9411539B2 (en) 2014-09-24 2016-08-09 International Business Machines Corporation Providing access information to a storage controller to determine a storage tier for storing data
US9489317B2 (en) 2014-09-26 2016-11-08 Apple Inc. Method for fast access to a shared memory
US9824043B2 (en) * 2015-01-22 2017-11-21 Lite-On Technology Corporation System with solid state drive and control method thereof
CN106033319A (zh) 2015-03-11 2016-10-19 广明光电股份有限公司 固态硬盘动态建立转换层的方法
US9645757B2 (en) 2015-03-23 2017-05-09 International Business Machines Corporation Computer memory data security
US9749319B2 (en) 2015-05-20 2017-08-29 Google Inc. Address validation using signatures
US20170093823A1 (en) * 2015-09-25 2017-03-30 Vinodh Gopal Encrypting Observable Address Information
WO2017066601A1 (en) 2015-10-16 2017-04-20 Huang Yiren Ronnie Method and apparatus for providing hybrid mode to access ssd drive
US20170177497A1 (en) 2015-12-21 2017-06-22 Qualcomm Incorporated Compressed caching of a logical-to-physical address table for nand-type flash memory
KR20170081118A (ko) * 2015-12-30 2017-07-11 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법
US10380069B2 (en) 2016-05-04 2019-08-13 Western Digital Technologies, Inc. Generalized write operations verification method
US9967096B2 (en) 2016-05-23 2018-05-08 Accenture Global Solutions Limited Rewritable blockchain
US10489289B1 (en) 2016-09-30 2019-11-26 Amazon Technologies, Inc. Physical media aware spacially coupled journaling and trim
KR102643916B1 (ko) 2016-10-18 2024-03-08 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
US10620846B2 (en) 2016-10-26 2020-04-14 ScaleFlux, Inc. Enhancing flash translation layer to improve performance of databases and filesystems
US10235069B2 (en) 2016-12-22 2019-03-19 Western Digital Technologies, Inc. Load balancing by dynamically transferring memory range assignments
US10635584B2 (en) 2017-06-29 2020-04-28 Western Digital Technologies, Inc. System and method for host system memory translation
US10430117B2 (en) 2017-10-23 2019-10-01 Micron Technology, Inc. Host accelerated operations in managed NAND devices
JP6982468B2 (ja) * 2017-10-27 2021-12-17 キオクシア株式会社 メモリシステムおよび制御方法
TWI641966B (zh) * 2018-01-15 2018-11-21 群聯電子股份有限公司 記憶體儲存系統、主機系統驗證方法及記憶體儲存裝置
US10997066B2 (en) 2018-02-20 2021-05-04 Samsung Electronics Co., Ltd. Storage devices that support cached physical address verification and methods of operating same
JP7074519B2 (ja) 2018-03-19 2022-05-24 キオクシア株式会社 メモリシステム、および、メモリ制御方法
US10510419B1 (en) 2018-06-28 2019-12-17 Micron Technology, Inc. Monitoring and charging inhibit bit-line
US10459845B1 (en) 2018-06-29 2019-10-29 Micron Technology, Inc. Host accelerated operations in managed NAND devices
US11036651B2 (en) * 2018-06-29 2021-06-15 Micron Technology, Inc. Host side caching security for flash memory
US10923202B2 (en) 2018-08-03 2021-02-16 Micron Technology, Inc. Host-resident translation layer triggered host refresh
WO2020028804A1 (en) 2018-08-03 2020-02-06 Micron Technology, Inc. Host-resident translation layer validity check
US11263124B2 (en) 2018-08-03 2022-03-01 Micron Technology, Inc. Host-resident translation layer validity check
US10852964B2 (en) 2018-09-25 2020-12-01 Micron Technology, Inc. Host-resident translation layer validity check techniques
KR102567108B1 (ko) * 2018-11-05 2023-08-14 삼성전자주식회사 데이터 스토리지 디바이스 및 데이터 스토리지 시스템
US11144635B2 (en) * 2018-11-06 2021-10-12 International Business Machines Corporation Restricted command set management in a data storage system
US11226907B2 (en) 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226894B2 (en) 2018-12-21 2022-01-18 Micron Technology, Inc. Host-based flash memory maintenance techniques
US11036625B1 (en) 2020-04-24 2021-06-15 Micron Technology, Inc. Host-resident translation layer write command associated with logical block to physical address of a memory device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005322201A (ja) * 2004-04-06 2005-11-17 Hitachi Ltd 暗号処理を行うストレージシステム
JP2013191174A (ja) * 2012-03-15 2013-09-26 Toshiba Corp 半導体記憶装置およびプログラム
JP2017519269A (ja) * 2014-04-09 2017-07-13 ビッツプレイ・コーポレーションBitspray Corporation 通信ネットワーク上の情報の安全な記憶と加速された伝送
US20170192902A1 (en) * 2015-12-30 2017-07-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device
JP2017162067A (ja) * 2016-03-08 2017-09-14 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
US20180060607A1 (en) * 2016-08-30 2018-03-01 Winbond Electronics Corporation Anti-Rollback Version Upgrade in Secured Memory Chip

Also Published As

Publication number Publication date
KR20220038188A (ko) 2022-03-25
CN113439264A (zh) 2021-09-24
TW202038086A (zh) 2020-10-16
US20210365364A1 (en) 2021-11-25
KR20210075207A (ko) 2021-06-22
US11226894B2 (en) 2022-01-18
US20200201752A1 (en) 2020-06-25
TWI737088B (zh) 2021-08-21
US11809311B2 (en) 2023-11-07
EP3899731A1 (en) 2021-10-27
KR102377365B1 (ko) 2022-03-22
EP3899731A4 (en) 2022-09-21
WO2020132274A1 (en) 2020-06-25
TW202141267A (zh) 2021-11-01

Similar Documents

Publication Publication Date Title
US11138108B2 (en) Logical-to-physical map synchronization in a memory device
US11809311B2 (en) Host-based flash memory maintenance techniques
US11704254B2 (en) Host side caching security for flash memory
US11886339B2 (en) Secure logical-to-physical caching
US11687469B2 (en) Host-resident translation layer validity check techniques
US11775449B2 (en) Increased efficiency obfuscated logical-to-physical map management
US20230042487A1 (en) Host assisted operations in managed memory devices
KR20210035908A (ko) 호스트 상주 변환 계층 유효성 검사 기술

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211019

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220404

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220823

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230418