(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6588595
(24)【登録日】2019年9月20日
(45)【発行日】2019年10月9日
(54)【発明の名称】記憶装置、記録方法、およびプリフェッチ方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20191001BHJP
G06F 12/06 20060101ALI20191001BHJP
G06F 12/0862 20160101ALI20191001BHJP
G06F 12/0868 20160101ALI20191001BHJP
【FI】
G06F12/00 550A
G06F12/06 520F
G06F12/0862 105
G06F12/0868 110
【請求項の数】14
【全頁数】10
(21)【出願番号】特願2018-79759(P2018-79759)
(22)【出願日】2018年4月18日
(65)【公開番号】特開2018-190405(P2018-190405A)
(43)【公開日】2018年11月29日
【審査請求日】2018年4月18日
(31)【優先権主張番号】62/504,140
(32)【優先日】2017年5月10日
(33)【優先権主張国】US
(31)【優先権主張番号】106126215
(32)【優先日】2017年8月3日
(33)【優先権主張国】TW
(73)【特許権者】
【識別番号】508157130
【氏名又は名称】慧榮科技股▲分▼有限公司
(74)【代理人】
【識別番号】100106150
【弁理士】
【氏名又は名称】高橋 英樹
(74)【代理人】
【識別番号】100082175
【弁理士】
【氏名又は名称】高田 守
(72)【発明者】
【氏名】簡 介信
(72)【発明者】
【氏名】包 鎰華
【審査官】
後藤 彰
(56)【参考文献】
【文献】
米国特許出願公開第2014/0215199(US,A1)
【文献】
特公昭60−046452(JP,B1)
【文献】
特開2007−179089(JP,A)
【文献】
特開平03−226851(JP,A)
【文献】
米国特許出願公開第2014/0281458(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 12/06
G06F 12/0862
G06F 12/0868
(57)【特許請求の範囲】
【請求項1】
メモリ容量を有するダイナミックランダムアクセスメモリ、
複数のユーザーデータを記録するフラッシュメモリアレイ、および
初期化の手順を完成した後、複数のPC命令およびH2Fマッピングテーブルに従って、前記フラッシュメモリアレイの前記ユーザーデータを、前記ダイナミックランダムアクセスメモリにローディングし、前記ユーザーデータの複数のアドレス情報をパワーオンアクセステーブルに記録するコントローラを含み、
前記コントローラは、前記パワーオンアクセステーブルに対応する前記ユーザーデータの大きさが前記メモリ容量より大きいとき、前記パワーオンアクセステーブルに対応する前記ユーザーデータのうちの第1の部分だけを前記ダイナミックランダムアクセスメモリに予めローディングし、前記第1の部分がPCに読み出しされた後、前記ダイナミックランダムアクセスメモリに格納されている前記第1の部分を前記パワーオンアクセステーブルに対応する前記ユーザーデータのうちの第2の部分と置き換える記憶装置。
【請求項2】
前記パワーオンアクセステーブルの大きさは、前記H2Fマッピングテーブルより小さい請求項1に記載された記憶装置。
【請求項3】
前記アドレス情報は、前記ユーザーデータの複数の論理アドレス情報である請求項1に記載された記憶装置。
【請求項4】
前記アドレス情報は、前記ユーザーデータの複数の物理アドレス情報を更に含む請求項3に記載された記憶装置。
【請求項5】
前記コントローラは、前記ユーザーデータのアクセス順序に基づいて、前記アドレス情報を前記パワーオンアクセステーブルに順次に記録する請求項1に記載された記憶装置。
【請求項6】
メモリ容量を有するデータレジスタ、
複数のユーザーデータを記録するフラッシュメモリアレイ、および
初期化の手順を完成した後、パワーオンアクセステーブルが前記フラッシュメモリアレイに存在するかどうかを判定し、前記パワーオンアクセステーブルが存在する場合、前記パワーオンアクセステーブルに対応する前記ユーザーデータを前記データレジスタにアップロードするコントローラを含み、
前記コントローラは、前記パワーオンアクセステーブルに対応する前記ユーザーデータの大きさが前記メモリ容量より大きいとき、前記パワーオンアクセステーブルに対応する前記ユーザーデータのうちの第1の部分だけを前記データレジスタに予めアップロードし、前記第1の部分がPCに読み出しされた後、前記データレジスタに格納されている前記第1の部分を前記パワーオンアクセステーブルに対応する前記ユーザーデータのうちの第2の部分と置き換える記憶装置。
【請求項7】
前記コントローラは、H2Fマッピングテーブルに従って、前記パワーオンアクセステーブルに対応する前記ユーザーデータを前記データレジスタにアップロードする請求項6に記載された記憶装置。
【請求項8】
前記データレジスタが前記パワーオンアクセステーブルに対応した全ての前記ユーザーデータを記憶するのに十分でないとき、前記コントローラは、前記パワーオンアクセステーブルに対応する一部の前記ユーザーデータだけを前記データレジスタにアップロードする請求項6に記載された記憶装置。
【請求項9】
前記コントローラは、前記パワーオンアクセステーブルに対応する前記ユーザーデータを前記データレジスタにアップロードする請求項6に記載された記憶装置。
【請求項10】
前記コントローラは、前記初期化の手順を完成した後、PC命令を受ける前に、前記パワーオンアクセステーブルに対応した前記ユーザーデータを前記データレジスタにアップロードする請求項6に記載された記憶装置。
【請求項11】
初期化の手順を行うステップ、
複数のPC命令およびH2Fマッピングテーブルに従って、フラッシュメモリアレイに記憶された複数のユーザーデータを、ダイナミックランダムアクセスメモリにローディングするステップ、および
前記ユーザーデータのアドレス情報をパワーオンアクセステーブルに記録するステップを含み、
前記パワーオンアクセステーブルに対応する前記ユーザーデータの大きさが前記ダイナミックランダムアクセスメモリのメモリ容量より大きいとき、前記パワーオンアクセステーブルに対応する前記ユーザーデータのうちの第1の部分だけが前記ダイナミックランダムアクセスメモリに予めローディングされ、
前記第1の部分がPCに読み出しされた後、前記ダイナミックランダムアクセスメモリに格納されている前記第1の部分が前記パワーオンアクセステーブルに対応する前記ユーザーデータのうちの第2の部分と置き換えられる、
記憶装置のパワーオンアクセステーブルを確立する記録方法。
【請求項12】
初期化の手順を行うステップ、および
パワーオンアクセステーブルが存在するかどうかを判定し、前記パワーオンアクセステーブルが存在する場合、前記パワーオンアクセステーブルに対応するユーザーデータをフラッシュメモリアレイからデータレジスタにアップロードするステップ、を含み、
前記アップロードするステップは、
前記パワーオンアクセステーブルに対応する前記ユーザーデータの大きさが前記データレジスタのメモリ容量より大きいとき、前記パワーオンアクセステーブルに対応する前記ユーザーデータのうちの第1の部分だけを前記データレジスタに予めローディングするステップ、および
前記第1の部分がPCに読み出しされた後、前記データレジスタに格納されている前記第1の部分を前記パワーオンアクセステーブルに対応する前記ユーザーデータのうちの第2の部分と置き換えるステップ
を含む、記憶装置のパワーオンアクセステーブルを用いるプリフェッチ方法。
【請求項13】
複数のPC命令、前記パワーオンアクセステーブル、およびH2Fマッピングテーブルに従って、前記記憶装置にアクセスするステップを更に含む請求項12に記載されたプリフェッチ方法。
【請求項14】
前記パワーオンアクセステーブルが存在しないとき、複数のPC命令およびH2Fマッピングテーブルに従って、前記記憶装置にアクセスする請求項12に記載されたプリフェッチ方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フラッシュメモリ装置およびそのプリフェッチ方法に関するものである。
【背景技術】
【0002】
システムが電源投入されたとき、ソリッドステートドライブ(SSD)もそれに伴って直接電源投入される。しかしながら、ソリッドステートドライブが電源投入されてからソリッドステートドライブが最初にアクセスされるまでの間、待機時間がある。ソリッドステートドライブの機能を効果的に向上させるために、待機時間に対してより効率的な使用を行い、ソリッドステートドライブのアクセス速度を向上させる必要がある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2012−9048号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、ソリッドステートドライブのアクセス速度を向上させるフラッシュメモリ装置およびそのプリフェッチ方法を提供する。
【課題を解決するための手段】
【0005】
これに鑑み、本発明は、フラッシュメモリアレイ、ダイナミックランダムアクセスメモリ、およびコントローラを含む記憶装置を提供する。フラッシュメモリアレイは、複数のユーザーデータを記録する。コントローラは、初期化の手順を完成した後、複数のホストコンピュータ(PC)命令およびH2Fマッピングテーブルに従って、フラッシュメモリアレイのユーザーデータにアクセスし、アクセスしたユーザーデータの複数のアドレス情報をパワーオンアクセステーブルに記録する。
【0006】
本発明の実施形態に基づいて、パワーオンアクセステーブルの大きさは、H2Fマッピングテーブルより小さい。
【0007】
本発明の実施形態に基づいて、アドレス情報は、ユーザーデータの複数の論理アドレス情報である。
【0008】
本発明の実施形態に基づいて、アドレス情報は、ユーザーデータの複数の物理アドレス情報を更に含む。
【0009】
本発明の実施形態に基づいて、コントローラは、ユーザーデータのアクセス順序に基づいて、アドレス情報をパワーオンアクセステーブルに順次に記録する。
【0010】
本発明は、フラッシュメモリアレイおよびコントローラを含む記憶装置を提供する。フラッシュメモリアレイは、複数のユーザーデータを記録する。コントローラは、初期化の手順を完成した後、パワーオンアクセステーブルがフラッシュメモリアレイに存在するかどうかを判定し、存在する場合、パワーオンアクセステーブルに対応するユーザーデータをデータレジスタにアップロードする。
【0011】
本発明の実施形態に基づいて、コントローラは、H2Fマッピングテーブルに従って、パワーオンアクセステーブルに対応するユーザーデータをデータレジスタにアップロードする。
【0012】
本発明の実施形態に基づいて、データレジスタがパワーオンアクセステーブルに対応した全てのユーザーデータを記憶するのに十分でないとき、コントローラは、パワーオンアクセステーブルに対応する一部のユーザーデータだけをデータレジスタにアップロードする。
【0013】
本発明の実施形態に基づいて、コントローラは、パワーオンアクセステーブルに対応するユーザーデータをデータレジスタにアップロードする。
【0014】
本発明の実施形態に基づいて、コントローラは、初期化の手順を完成した後、PC命令を受ける前に、パワーオンアクセステーブルに対応したユーザーデータをデータレジスタにアップロードする。
【0015】
本発明は、初期化の手順を行うステップ、複数のPC命令およびH2Fマッピングテーブルに従って、フラッシュメモリアレイに記憶された複数のユーザーデータにアクセスするステップ、およびユーザーデータの複数のアドレス情報をパワーオンアクセステーブルに記録するステップを含む、記憶装置のパワーオンアクセステーブルを確立する記録方法を更に提供する。
【0016】
本発明は、初期化の手順を行うステップ、およびパワーオンアクセステーブルが存在するかどうかを判定し、存在する場合、パワーオンアクセステーブルに対応するユーザーデータをフラッシュメモリアレイからデータレジスタにアップロードするステップを含む、記憶装置のパワーオンアクセステーブルを用いるプリフェッチ方法を更に提供する。
【0017】
本発明の実施形態に基づいて、パワーオンアクセステーブルを用いる方法は、複数のPC命令、パワーオンアクセステーブル、およびH2Fマッピングテーブルに従って、記憶装置にアクセスするステップを更に含む。
【0018】
本発明の実施形態に基づいて、パワーオンアクセステーブルが存在しないとき、複数のPC命令およびH2Fマッピングテーブルに従って、記憶装置にアクセスするステップを更に含む。
【図面の簡単な説明】
【0019】
【
図1】本発明の実施形態に基づいた記憶装置のブロック図を示している。
【
図2A】本発明の実施形態に基づいたパワーオンアクセステーブルの概略図を示している。
【
図2B】本発明のもう1つの実施形態に基づいたパワーオンアクセステーブルの概略図を示している。
【
図3A】本発明の実施形態に基づいたパワーオンアクセステーブルを確立する方法のフローチャートを示している。
【
図3B】本発明の実施形態に基づいたパワーオンアクセステーブルを用いた方法のフローチャートを示している。
【発明を実施するための形態】
【0020】
以下の説明は、本発明を実施するベストモードが開示されている。この説明は、本発明の一般原理を例示する目的のためのもので本発明を限定するものではない。本発明の範囲は、添付の請求の範囲を参考にして決定される。
【0021】
留意すべきことは、以下に述べる内容は、本発明の異なる特徴を実践する複数の実施形態または範例を提供することができる。以下に述べる特殊な構成要素の代表例と配置は、本発明の精神を簡単に要約して述べたもので本発明の範囲を限定するものではない。また、以下の説明書は、複数の代表例において同じ構成要素の符号または文字を繰り返し用いる可能性がある。しかしながら、繰り返し用いる目的は、簡易化した、明確な説明を提供するためのもので、複数の以下に討論する実施形態および/または配置の関係を限定するものではない。また、以下の説明書で述べた1つの特徴がもう1つの特徴に接続、結合、および/または形成するなどの記述は、実際には複数の異なる実施形態を含み、前記特徴が直接接触するのを含む、またはその他の追加の特徴が前記特徴の間に形成されるなど、前記の特徴が直接接触しないのを含むことができる。
【0022】
図1は、本発明の実施形態に基づいた記憶装置のブロック図を示している。
図1に示されるように、記憶装置100は、フラッシュメモリアレイ101、ダイナミックランダムアクセスメモリ102、およびコントローラ103を含み、記憶装置100は、ホストコンピュータ(PC)10に接続され、PC10と記憶装置100は、システムを構成し、記憶装置100は、論理−物理(Host Logical−Flash Physical;H2F)を生成し、H2Fマッピングテーブルを維持し、ユーザーデータの論理アドレスと物理アドレスの対応関係を記録する。本発明の実施形態に基づいて、記憶装置100は、USB、SATA、PATA、PCIEを用いた物理インターフェースまたはUSB、NVME、AHCI、SCSIを用いた通信プロトコルのソリッドステートドライブを用いることができる。
【0023】
記憶装置100のデータのメモリ容量が256GBとした場合、システムの起動後、コントローラ103は、H2Fマッピングテーブルに従って、PC10が必要なユーザーデータを提供する以外に、これらのユーザーデータの論理アドレスまたは物理アドレスをパワーオンアクセステーブルに記録する。パワーオンアクセステーブルで1つの論理アドレスまたは物理アドレスの大きさが2Bであるとした場合、1つの論理アドレスまたは物理アドレスは、4KBのユーザーデータに対応し、コントローラ103は、8MBの大きさのパワーオンアクセステーブルを確立し、16GBの大きさのユーザーデータの論理アドレスを記録することができる。パワーオンアクセステーブルは、PC10が読み出したい、または書き込みたいユーザーデータを記録し、PC10の動作の特性に従って、パワーオンアクセステーブルに記録されたユーザーデータは、オペレーティングシステム、またはコンピュータゲームのファイルであることができ、且つパワーオンアクセステーブルは、主にPC10が読み出したいユーザーデータを記録し、小部分は、PC10が更新/書き込みたいユーザーデータを記録する。
【0024】
PC10が初期化を開始したとき、記憶装置100など、周辺装置も初期化を開始する。しかしながら、記憶装置100が初期化を完成するのに必要な時間は、PC10が初期化を完成するのに必要な時間より短い。そのため、記憶装置100が初期化を完成し、PC10がまだ初期化を完成しない期間(アイドル時間とも呼ばれる)、コントローラ103は、パワーオンアクセステーブルに記録されたアドレス情報に基づいて、ユーザーデータをフラッシュメモリアレイ101からダイナミックランダムアクセスメモリ102に予めローディングする。PC10が初期化を完成し、オペレーティングシステムのローディングを開始したとき、即ち、PC10が記憶装置100からオペレーティングシステムのファイルをローディングしたときに、記憶装置100は、フラッシュメモリアレイ101からでなく、ダイナミックランダムアクセスメモリ102からオペレーティングシステムのファイル(即ち、ユーザーデータ)をPC10に迅速に提供し、データアクセスが必要な時間を短縮させることができる。記憶装置100は、初期化を迅速に完成させることができるため、アイドル時間も記憶装置100が電源投入された後、PC10が記憶装置100にアクセスを開始する前の時間と見なすこともできる。
【0025】
本発明のもう1つの実施形態に基づいて、パワーオンアクセステーブルの記録は、ユーザーデータの読み出し順序に従って記録されることが好ましい。従って、コントローラ103がアイドル時間でパワーオンアクセステーブルに対応する全てのユーザーデータをダイナミックランダムアクセスメモリ102にローディングできない場合、先にローディングしたユーザーデータは、PC10に先に読み出しされる可能性があるため、データの読み出しおよびデータの処理の過程では、コントローラ103は、PC10が読み出しをし、本発明の目的を達成するまで、パワーオンアクセステーブルに対応する残りのユーザーデータをダイナミックランダムアクセスメモリ102にローディングし続けることができる。
【0026】
本発明のもう1つの実施形態に基づいて、コントローラ103は、フラッシュメモリアレイ101のパラメータに従って、パワーオンアクセステーブルの記録に対して配列を行う。フラッシュメモリアレイ101のパラメータは、チャネル(channel)数またはチップイネーブル(Chip Enable)数を含み、ユーザーデータの読み出し速度を加速する。
【0027】
本発明のもう1つの実施形態に基づいて、パワーオンアクセステーブルに対応するユーザーデータの大きさはダイナミックランダムアクセスメモリ102のデータのメモリ容量より小さいことが望ましい。従って、パワーオンアクセステーブルに対応する全てのユーザーデータは、ダイナミックランダムアクセスメモリ102に記憶されることができる。
【0028】
本発明のもう1つの実施形態に基づいて、パワーオンアクセステーブルに対応するユーザーデータの大きさがダイナミックランダムアクセスメモリ102のデータのメモリ容量より大きいとき、コントローラ103は、パワーオンアクセステーブルに対応する一部のユーザーデータだけをダイナミックランダムアクセスメモリ102にローディングし、これらのユーザーデータがPC10に先に読み出しされてから、パワーオンアクセステーブルに対応する残りのユーザーデータを既に記憶されたダイナミックランダムアクセスメモリ102のユーザーデータと置き換える。
【0029】
図2Aは、本発明の実施形態に基づいたパワーオンアクセステーブルの概略図を示している。本発明の実施形態に基づいて、パワーオンアクセステーブル200Aは、ユーザーデータの論理アドレスを記録するのに用いられ、H2Fマッピングテーブルに従って、コントローラ103は、フラッシュメモリアレイ101のアドレスに記憶された各ユーザーデータを得て、アクセスすることができる。ここでは、10個のアクセスデータでのみ説明を行っており、任意の形式でこれを限定するものではない。
【0030】
図2Bは、本発明のもう1つの実施形態に基づいたパワーオンアクセステーブルの概略図を示している。本発明の実施形態に基づいて、パワーオンアクセステーブル200Bは、小型のH2Fマッピングテーブルと同じように、ユーザーデータの論理アドレスおよび物理アドレスを記録する。従って、コントローラ103は、パワーオンアクセステーブルに従って、フラッシュメモリアレイ101のアドレスに記憶された各ユーザーデータを得て、アクセスすることができる。ここでは、10個のアクセスデータでのみ説明を行っており、任意の形式でこれを限定するものではない。
【0031】
図3Aは、本発明の実施形態に基づいたパワーオンアクセステーブルを確立する方法のフローチャートを示している。このパワーオンアクセステーブルを確立する方法は、記憶装置100に用いられる。まず、記憶装置100は、初期化を行う(ステップS10)。記憶装置100の初期化は、電源の再供給、またはPC10のPC命令により起動されることができる。
【0032】
次いで、PC命令およびH2Fマッピングテーブルに従って、フラッシュメモリアレイのユーザーデータにアクセスする(ステップS12)。記憶装置100が初期化を完成した後、PC10からのPC命令を受けるのを待つ。PC10も初期化を完成し、オペレーティングシステムがローディングを始めた場合、PC命令は、主にデータの読み出しの命令であり、記憶装置100にオペレーティングシステムのファイルを提供することを要求する。記憶装置100は、PC命令およびH2Fマッピングテーブルに従って、フラッシュメモリアレイ101のユーザーデータ(オペレーティングシステムのファイル)を読み出し、ユーザーデータをPC10に出力する。データの読み出し命令以外に、PC命令は、データの書き込み命令であることもできる。
【0033】
次いで、ユーザーデータのアドレス情報をパワーオンアクセステーブルに記録し(ステップS14)、パワーオンアクセステーブルがアドレス情報を既に記憶し終えたかどうかを判定し(ステップS16)、パワーオンアクセステーブルがアドレス情報をまだ記憶し終えていない場合、パワーオンアクセステーブルへのアドレス情報の記録を続け、パワーオンアクセステーブルがアドレス情報を記憶し終えた場合(例えば、8MBのアドレス情報を既に記憶している)、本発明のパワーオンアクセステーブルを確立する方法を行うことを終える。
【0034】
図3Bは、本発明の実施形態に基づいたパワーオンアクセステーブルを用いた方法のフローチャートを示している。このパワーオンアクセステーブルを確立する方法は、記憶装置100に用いられる。
【0035】
まず、記憶装置100は、初期化を行う(ステップS20)。記憶装置100の初期化は、電源の再供給、またはPC10のPC命令により起動されることができる。
【0036】
次いで、パワーオンアクセステーブルが存在するかどうかを判定し(ステップS22)、存在する場合、ステップS24を行うか、もしくは本発明のパワーオンアクセステーブルを用いる方法を行うのを終了する。
【0037】
次いで、H2Fマッピングテーブルに従って、パワーオンアクセステーブルに対応するユーザーデータをデータレジスタに順次にアップロードする(ステップS24)。データレジスタは、ダイナミックランダムアクセスメモリ102であることができる。パワーオンアクセステーブルに対応するユーザーデータのデータ量がデータレジスタのデータのメモリ容量より大きい場合、先にパワーオンアクセステーブルに対応したユーザーデータをデータレジスタに一部アップロードしてから、残りのパワーオンアクセステーブルに対応したユーザーデータをデータレジスタにアップロードする。パワーオンアクセステーブルの記録が
図2Bに示されるような場合、コントローラ103は、H2Fマッピングテーブルを用いなくてもパワーオンアクセステーブルに対応したユーザーデータをデータレジスタに順次にアップロードすることができる。
【0038】
次いで、PC命令、パワーオンアクセステーブル、およびH2Fマッピングテーブルに従って、記憶装置100のユーザーデータにアクセスする(ステップS26)。記憶装置100は、PC10からのPC命令を受け、まず、PC命令の論理アドレスがパワーオンアクセステーブルに記録されたかどうかを判定し、記録されている場合、記憶装置100は、データレジスタが記憶したユーザーデータをPC10に直接提供し、記録されていない場合、記憶装置100は、PC命令およびH2Fマッピングテーブルに従って、フラッシュメモリアレイ101に記憶されたユーザーデータにアクセスする。
【0039】
以上、実施形態の特徴を概説した。当業者には明らかであるように種々の変更及び同様の配置を含むように意図される。よって、添付の特許請求の範囲は、全てのそのような変更および同様の配置を包含するように、最も広義な解釈が与えられるべきである。上記実施の形態は、他のプロセスおよび構造を設計又は改変するための基礎となり得る。本開示の精神および範囲を逸脱せずに、ここで種々の変更、代替、および改変も含む。説明のための方法は、例示的なステップを示すものであるに過ぎず、これらのステップは、必ずしも示された順序で行われるものではなく、本開示の精神及び範囲を逸脱しない限りにおいては、他に、ステップの順序を追加、代替、且つ改変するおよび/またはステップの順序を除去することができる。
【符号の説明】
【0040】
100 記憶装置
101 フラッシュメモリアレイ
102 ダイナミックランダムアクセスメモリ
103 コントローラ
10 PC
200A、200B パワーオンアクセステーブル