(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023177037
(43)【公開日】2023-12-13
(54)【発明の名称】メモリシステムおよびアドレス照合方法
(51)【国際特許分類】
G06F 12/02 20060101AFI20231206BHJP
【FI】
G06F12/02 570A
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022089719
(22)【出願日】2022-06-01
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】松尾 英
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160AB26
5B160CA00
(57)【要約】
【課題】ホストから受け取るアドレスの妥当性を判定することができるメモリシステムおよびアドレス照合方法を提供する。
【解決手段】実施形態によれば、メモリシステムは、不揮発性メモリと、コントローラと、を具備する。コントローラは、ホストと通信可能であり、不揮発性メモリを制御する。コントローラは、不揮発性メモリ上の論理的な位置を示す論理アドレスと、論理アドレスに対応づけられている第1情報と、を含むリードコマンドをホストから受信した場合、論理アドレスに対する第1情報の妥当性を判定する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
不揮発性メモリと、
ホストと通信可能であり、前記不揮発性メモリを制御するコントローラと、
を具備し、
前記コントローラは、前記不揮発性メモリ上の論理的な位置を示す論理アドレスと、前記論理アドレスに対応づけられている第1情報と、を含むリードコマンドを前記ホストから受信した場合、前記論理アドレスに対する前記第1情報の妥当性を判定する、
メモリシステム。
【請求項2】
前記第1情報は、前記不揮発性メモリ上の物理的な位置を示す物理アドレスを含み、
前記コントローラは、
前記第1情報に含まれている前記物理アドレスを用いて、前記物理アドレスが割り当てられる前記不揮発性メモリの領域の各区画が備える冗長領域に記録されている論理アドレスとともに、前記不揮発性メモリからデータを読み出し、
前記妥当性の判定として、前記リードコマンドに含まれている論理アドレスと、前記冗長領域に記録されている論理アドレスと、を照合する、
請求項1に記載のメモリシステム。
【請求項3】
前記コントローラは、
前記リードコマンドに含まれている論理アドレスと、前記冗長領域に記録されている論理アドレスと、が一致する場合、前記不揮発性メモリから読み出したデータを前記ホストへ送信し、
前記リードコマンドに含まれている論理アドレスと、前記冗長領域に記録されている論理アドレスと、が一致しない場合、
前記論理アドレスと前記物理アドレスとの対応関係を保持するアドレス変換テーブルを参照して、前記リードコマンドに含まれている論理アドレスに対応する物理アドレスを取得し、
前記取得した物理アドレスを用いて、前記不揮発性メモリからデータを読み出し、
前記不揮発性メモリから読み出したデータを前記ホストへ送信する、
請求項2に記載のメモリシステム。
【請求項4】
前記コントローラは、
前記ホストからの要求に応じて、前記論理アドレスと、前記不揮発性メモリ上の物理的な位置を示す物理アドレスと、の対応関係を保持するアドレス変換テーブルを基に前記第1情報を生成して前記ホストへ送信し、
データが書き込まれており、物理アドレスが対応づけられている論理アドレスについては、データが書き込み済みであることを示す識別情報と、前記対応づけられている物理アドレスと、を含む前記第1情報を生成し、
データが書き込まれておらず、物理アドレスが対応づけられていない論理アドレスについては、データが未書き込みであることを示す識別情報と、前記物理アドレスが対応づけられていない論理アドレスと、を含む前記第1情報を生成し、
データが未書き込みであることを前記リードコマンド内の第1情報に含まれている識別情報が示す場合、前記妥当性の判定として、前記リードコマンドに含まれている論理アドレスと、前記リードコマンド内の第1情報に含まれている論理アドレスと、を照合する、
請求項1に記載のメモリシステム。
【請求項5】
前記コントローラは、
前記リードコマンドに含まれている論理アドレスと、前記リードコマンド内の第1情報に含まれている論理アドレスと、が一致する場合、あらかじめ定められたパターンのデータを生成して前記ホストへ送信し、
前記リードコマンドに含まれている論理アドレスと、前記リードコマンド内の第1情報に含まれている論理アドレスと、が一致しない場合、
前記アドレス変換テーブルを参照して、前記リードコマンドに含まれている論理アドレスに対してデータが書き込まれているか否かを判定し、
データが書き込み済みで、前記アドレス変換テーブル上において前記リードコマンドに含まれている論理アドレスに物理アドレスが対応づけられている場合、前記対応づけられている物理アドレスを用いて、前記不揮発性メモリからデータを読み出して前記ホストへ送信し、
データが未書き込みで、前記アドレス変換テーブル上において前記リードコマンドに含まれている論理アドレスに物理アドレスが対応づけられていない場合、前記あらかじめ定められたパターンのデータを生成して前記ホストへ送信する、
請求項4に記載のメモリシステム。
【請求項6】
前記コントローラは、
データが書き込み済みであることを前記リードコマンド内の第1情報に含まれている識別情報が示す場合、前記第1情報に含まれている物理アドレスを用いて、前記不揮発性メモリからデータを読み出して前記ホストへ送信する、
請求項4に記載のメモリシステム。
【請求項7】
前記コントローラは、
前記第1情報に含まれている前記物理アドレスを用いて、前記物理アドレスが割り当てられる前記不揮発性メモリの領域の各区画が備える冗長領域に記録されている論理アドレスとともに、前記不揮発性メモリからデータを読み出し、
前記妥当性の判定をするために、前記リードコマンドに含まれている論理アドレスと、前記冗長領域に記録されている論理アドレスと、を照合する、
請求項6に記載のメモリシステム。
【請求項8】
前記コントローラは、
前記リードコマンドに含まれている論理アドレスと、前記冗長領域に記録されている論理アドレスと、が一致する場合、前記不揮発性メモリから読み出したデータを前記ホストへ送信し、
前記リードコマンドに含まれている論理アドレスと、前記冗長領域に記録されている論理アドレスと、が一致しない場合、
前記論理アドレスと前記物理アドレスとの対応関係を保持するアドレス変換テーブルを参照して、前記リードコマンドに含まれている論理アドレスに対応する物理アドレスを取得し、
前記取得した物理アドレスを用いて、前記不揮発性メモリからデータを読み出し、
前記不揮発性メモリから読み出したデータを前記ホストへ送信する、
請求項7に記載のメモリシステム。
【請求項9】
前記コントローラは、前記論理アドレスおよび前記物理アドレスの共通の空きビットを用いて前記識別情報を前記第1情報に含ませる請求項4に記載のメモリシステム。
【請求項10】
不揮発性メモリを制御するコントローラのアドレス照合方法であって、
前記不揮発性メモリ上の論理的な位置を示す論理アドレスと、前記論理アドレスに対応づけられている第1情報と、を含むリードコマンドを受信した場合、前記論理アドレスに対する前記第1情報の妥当性を判定するアドレス照合方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリシステムおよびアドレス照合方法に関する。
【背景技術】
【0002】
近年、NANDフラッシュメモリ(NANDメモリ)を備えるUFS(Universal Flash Storage)装置やSSD(Solid State Drive)のような、不揮発性メモリを備えるメモリシステムが広く使用されている。この種のメモリシステムにおいては、不揮発性メモリを制御するコントローラが、ホストが使用する、不揮発性メモリ上の論理的な位置を示す論理アドレスに、不揮発性メモリ上の物理的な位置を示す物理アドレスを対応づけて、ホストの要求に応じた不揮発性メモリに対するデータの読み書きを実行する。
【0003】
メモリシステムは、論理アドレスと物理アドレスとの対応関係を保持するアドレス変換テーブルを管理し、このアドレス変換テーブルを都度参照して、ホストが指定する論理アドレスを物理アドレスへ変換する。論理アドレスから物理アドレスまたは物理アドレスから論理アドレスへの変換は、アドレス解決などと称される。
【0004】
アドレス変換テーブルのデータ量は、不揮発性メモリの容量の拡大に伴って膨大となってきている。アドレス変換テーブルのデータ量が膨大となることは、メモリシステムのリード性能などを悪化させる要因となり得る。このことから、アドレス変換テーブルの一部をホストが保持し、ホストがアドレス解決を行うことで、アドレス解決の負荷をメモリシステムから取り除くことができる規格が制定されるに至っている(たとえば、JESD220-3「Universal Flash Storage (UFS) Host Performance Booster(HPB) Extension」)。
【0005】
この規格に対応するホストは、たとえばリードコマンドを発行する場合、論理アドレスに加えて、その論理アドレスに対応づけられている物理アドレス(厳密には、メモリシステムにおいて物理アドレスを特定できる情報であればよく、物理アドレスそのものに限られない)をリードコマンドに付加する。メモリシステムのコントローラは、ホストから受け取った物理アドレスを使って、不揮発性メモリからのデータの読み出しを実行する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特表2016-506585号公報
【特許文献2】特開2009-211234号公報
【特許文献3】米国特許出願公開第2013/0191580号明細書
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の1つの実施形態は、ホストから受け取るアドレスの妥当性を判定することができるメモリシステムおよびアドレス照合方法を提供する。
【課題を解決するための手段】
【0008】
実施形態によれば、メモリシステムは、不揮発性メモリと、コントローラと、を具備する。コントローラは、ホストと通信可能であり、不揮発性メモリを制御する。コントローラは、不揮発性メモリ上の論理的な位置を示す論理アドレスと、論理アドレスに対応づけられている第1情報と、を含むリードコマンドをホストから受信した場合、論理アドレスに対する第1情報の妥当性を判定する。
【図面の簡単な説明】
【0009】
【
図1】第1実施形態のメモリシステムの一構成例を示す図。
【
図2】第1実施形態のメモリシステムにおける不揮発性メモリの冗長領域への論理アドレスの一保存例を示す図。
【
図3】一比較例のメモリシステムにおけるホストからリードコマンドを受信した場合の動作の流れを示すシーケンス図。
【
図4】第1実施形態のメモリシステムにおけるホストからリードコマンドを受信した場合の動作の流れを示す第1シーケンス図(アドレス照合(一致)の場合)。
【
図5】第1実施形態のメモリシステムにおけるホストからリードコマンドを受信した場合の動作の流れを示す第2シーケンス図(アドレス照合(不一致)の場合)。
【
図6】第2実施形態のメモリシステムにおいて生成されるアドレス情報の一例を示す図。
【
図7】第2実施形態のメモリシステムにおけるホストからデータが未書き込みの論理アドレスが付加されたリードコマンドを受信した場合の動作の流れを示す第1シーケンス図(アドレス照合(一致)の場合)。
【
図8】第2実施形態のメモリシステムにおけるホストが発行するリードコマンドの一例を示す第1図(アドレス照合(一致)の場合)。
【
図9】第2実施形態のメモリシステムにおけるホストからデータが未書き込みの論理アドレスが付加されたリードコマンドを受信した場合の動作の流れを示す第1シーケンス図(アドレス照合(不一致)の場合)。
【
図10】第2実施形態のメモリシステムにおけるホストが発行するリードコマンドの一例を示す第2図(アドレス照合(不一致)の場合)。
【発明を実施するための形態】
【0010】
以下、実施の形態について、図面を参照して説明する。
【0011】
(第1実施形態)
まず、第1実施形態について説明する。
【0012】
図1は、第1実施形態のメモリシステム1の一構成例を示す図である。
図1には、メモリシステム1のホスト2との一接続例が併せて示されている。
【0013】
メモリシステム1は、メモリコントローラ11と、不揮発性メモリ12と、を有する。
【0014】
メモリコントローラ11は、不揮発性メモリ12を制御する。メモリコントローラ11は、たとえば、ホスト2からのコマンドに応じて、不揮発性メモリ12へのデータの書き込みや、不揮発性メモリ12からのデータの読み出しを実行する。メモリコントローラ11は、不揮発性メモリ12の最適化等のために、ホスト2からのコマンドによらずに、不揮発性メモリ12へのデータの書き込みや、不揮発性メモリ12からのデータの読み出しを自律的に実行することがある。
【0015】
不揮発性メモリ12は、たとえばNANDメモリである。ここでは、メモリシステム1がUFS装置として実現されていることを想定する。
【0016】
ホスト2は、メモリシステム1をストレージとして使用する、たとえばスマートフォンやタブレット端末といった携帯機器である。ホスト2は、CPU(Central Processing Unit)21と、メインメモリ22とを有する。
【0017】
CPU21は、メモリシステム1の不揮発性メモリ12からホスト2のメインメモリ22へ各種プログラムをロードして実行する。各種プログラムの中には、OS(Operating System)や、OSの配下で動作する、ユーティリティなどを含むアプリケーションプログラムが含まれている。これら各種プログラムをCPU21で実行するホスト2は、各種プログラムの記述に基づき、メモリシステム1に対して、リードコマンドやライトコマンドを発行する。
【0018】
メインメモリ22は、たとえばDRAM(Dynamic RAM[Random Access Memory])である。メインメモリ22には、CPU21の作業領域として各種プログラムや各種データが格納される。各種データの中には、不揮発性メモリ12上の論理的な位置を示す論理アドレスに対応づけられている情報(以下、アドレス情報と称する)が含まれている。アドレス情報は、論理アドレスと、不揮発性メモリ12上の物理的な位置を示す物理アドレスと、の対応関係を保持するアドレス変換テーブルを基に、メモリシステム1によって生成される情報である。アドレス情報には、物理アドレスが含まれている。
【0019】
なお、不揮発性メモリ12上の論理的な位置とは、メモリシステム1がホスト2に提供する論理アドレス空間内の位置である。論理アドレス空間に対応する概念として、物理アドレス空間が存在する。従って、論理アドレスは論理アドレス空間内の位置を示し、物理アドレスは物理アドレス空間内の位置を示す、と捉えることも可能である。
【0020】
メインメモリ22上のアドレス情報は、ホスト2がメモリシステム1に対して適宜要求することで取得される。ホスト2は、メモリシステム1からデータを読み出す場合、論理アドレスに加えて、当該論理アドレスに対応づけられているアドレス情報を付加して、リードコマンドをメモリシステム1に対して発行する。このリードコマンドを受信したメモリシステム1のメモリコントローラ11は、アドレス変換テーブルの参照が必要な、論理アドレスから物理アドレスへのアドレス変換を行うことなく、リードコマンドで指定されているアドレス情報内の物理アドレスを使って、不揮発性メモリ12からのデータの読み出しを実行する。
【0021】
つまり、第1実施形態のメモリシステム1および当該メモリシステム1をストレージとして使用するホスト2の双方は、メモリシステム1に代わってホスト2がアドレス解決を行うことを可能とする規格に対応している。
【0022】
ここでは、リードコマンドやライトコマンドをメモリシステム1に対して発行する場合にホスト2が指定する論理アドレスは、LBA(Logical Block Address)であるものと想定する。論理アドレスは、論理アドレス空間に対して、たとえば4Kバイト単位で割り当てられている。また、アドレス情報は、たとえば16Mバイトの領域を一単位としてメモリシステム1とホスト2との間で授受される。換言すれば、ホスト2は、4000個の連続する論理アドレスのアドレス情報をメインメモリ22に保持しておくことができる。
【0023】
ホスト2は、ある論理アドレスからデータを読み出す際、その論理アドレスに対応づけられているアドレス情報がメインメモリ22に保持されているか否かを調べる。アドレス情報がメインメモリ22に保持されているならば、その論理アドレスとアドレス情報とをリードコマンドに付加して、リードコマンドをメモリシステム1に対して発行する。なお、ホスト2にとって、メモリシステム1から受け取るアドレス情報は、解釈不能(不要)なデータである。ホスト2は、リードコマンドを発行するにあたり、目的の論理アドレスに対応づけられているアドレス情報をメインメモリ22から読み出してリードコマンドに付加する。目的の論理アドレスに対応づけられているアドレス情報がメインメモリ22に保持されていない場合、ホスト2は、その論理アドレスを含む16Mバイト分の領域に関するアドレス情報を改めてメモリシステム1から取得する。
【0024】
ところで、ホスト2が、ある論理アドレスからデータを読み出す際、その論理アドレスに対応づけられている本来のアドレス情報ではなく、何らかの不具合により、別の論理アドレスに対応づけられているアドレス情報をリードコマンドに付加して、リードコマンドを発行するおそれがある。この場合、メモリシステム1のメモリコントローラ11は、異なるデータを不揮発性メモリ12から読み出してホスト2へ送信してしまう。
【0025】
そこで、第1実施形態のメモリシステム1は、ホスト2から受け取るアドレス情報の妥当性を判定する仕組みを備える。以下、この点について詳述する。
【0026】
図2は、第1実施形態のメモリシステム1における不揮発性メモリ12の冗長領域への論理アドレスの一保存例を示す図である。
【0027】
ここでは、論理アドレスが、論理アドレス空間に対して、4Kバイト単位で割り当てられていることを想定する。この4Kバイトは、不揮発性メモリ12の使用単位から導き出されている。不揮発性メモリ12のデータ保存領域は、1区画が(4K+α)バイトであり、各区画に対して物理アドレスが割り当てられている。つまり、各区画には、4Kバイトのデータ本体の保存領域に加えて、αバイトの冗長領域が備えられている。不揮発性メモリ12の冗長領域には、データ本体に関する制御情報などを複数格納することができる。データ本体に関する各種情報は、たとえばデータ本体の種別を示す識別情報や、内部管理データを参照するためのインデックスなどである。
【0028】
メモリコントローラ11は、論理アドレスが付加されたライトコマンドをホスト2から受信した場合、未使用状態のデータ保存領域の区画を1つ選択し、ホストのライトデータを、その区画のデータ本体の保存領域に格納する。同時に、メモリコントローラ11は、ホスト2が指定する論理アドレスを当該区画の冗長領域に格納する。冗長領域は、たとえば4バイトの整数倍の容量を有し、メモリコントローラ11は、論理アドレスを含む、データ本体に関する各種情報を1つ当たり4バイトで構成して冗長領域に格納する。
図2中、符号a1で示す、冗長領域内のハッチングが施されている領域は、データの書き込み時に論理アドレスが格納される領域である。たとえば、ホスト2から、ライトデータ0を論理アドレス0に格納するライトコマンドをメモリコントローラ11が受信すると、メモリコントローラ11は、物理アドレス0が割り当てられた保存領域にライトデータ0を格納する。この時、メモリコントローラ11は、物理アドレス0が割り当てられた保存領域に対応する冗長領域に論理アドレス0を格納する。
【0029】
メモリコントローラ11は、論理アドレスと、この論理アドレスに対応づけられているアドレス情報と、が付加されたリードコマンドをホスト2から受信した場合、そのアドレス情報を使って不揮発性メモリ12からのデータの読み出しを実行する。その際、メモリコントローラ11は、データ本体の保存領域からリードデータを取得するとともに、冗長領域から論理アドレスを取得する。メモリコントローラ11は、ホスト2が指定する論理アドレスと、ホスト2が指定するアドレス情報に基づいて不揮発性メモリ12から読み出された論理アドレスとを照合する。両者が一致していれば、メモリコントローラ11は、ホスト2が指定する論理アドレスに対して、同じくホスト2が指定するアドレス情報は妥当性が有ると判定する。両者が一致していなければ、メモリコントローラ11は、ホスト2が指定する論理アドレスに対して、同じくホスト2が指定するアドレス情報は妥当性が無いと判定する。
【0030】
ここで、まず、
図3を参照して、一比較例のメモリシステムにおけるホストからリードコマンドを受信した場合の動作の流れを説明する。
【0031】
まず、ホストが、アドレス変換を取得するためのアドレス取得コマンドをメモリシステムに対して発行する(1)。このコマンドを受信したメモリシステムのメモリコントローラは、不揮発性メモリに対して、ホストが要求するアドレス情報に対応するアドレス変換テーブルの一部の出力を指示する(2)。メモリコントローラは、不揮発性メモリからアドレス変換テーブルの一部が出力されると(3)、当該アドレス変換テーブルの一部を基にアドレス情報を生成し、ホストへ送信する(4)。
【0032】
その後、ホストは、メモリシステムから受信したアドレス情報を使って、論理アドレス(A)と、サイズ(B)と、アドレス情報(C)とを付加したリードコマンドをメモリシステムに対して発行する(5)。サイズ(B)は、たとえば、1ならば、4Kバイトを示し、2ならば、8Kバイト(4Kバイト×2)を示す。
【0033】
このコマンドを受信したメモリシステムのメモリコントローラは、指定されたアドレス情報(C)を使って、不揮発性メモリに対して、ホストが要求するデータの出力を指示する(6)。メモリコントローラは、この指示に応じて不揮発性メモリからデータが出力されると(7)、当該データをリードデータとしてホスト2へ送信する(8)。
【0034】
この一比較例のメモリシステムにおいては、もし、ホストが指定するアドレス情報が誤っていたとしても、当該誤ったアドレス情報によって不揮発性メモリから読み出されたデータがホストに送信されてしまう。
【0035】
以上の一比較例のメモリシステムにおける動作の流れを踏まえて、次に、
図4を参照して、第1実施形態のメモリシステム1がホスト2からリードコマンドを受信した場合の動作の流れを説明する。
図4は、アドレス照合の結果が一致であった場合におけるメモリシステム1の動作の流れを含んでいる。アドレス照合の結果が一致の場合とは、ホスト2が、目的の論理アドレスに対応づけられているアドレス情報をメインメモリ22から正確に読み出し、リードコマンドに付加した場合である。
【0036】
まず、ホスト2が、アドレス情報を取得するためのアドレス取得コマンドをメモリシステムに対して発行する(1)。このコマンドを受信したメモリシステム1のメモリコントローラ11は、不揮発性メモリ12に対して、ホスト2が要求するアドレス情報に対応するアドレス変換テーブルの一部の出力を指示する(2)。メモリコントローラ11は、不揮発性メモリ12からアドレス変換テーブルの一部が出力されると(3)、当該アドレス変換テーブルの一部を基にアドレス情報を生成し、ホスト2へ送信する(4)。
【0037】
その後、ホスト2は、メモリシステム1から受信したアドレス情報を使って、論理アドレス(A)と、サイズ(B)と、アドレス情報(C)とを付加したリードコマンドをメモリシステム1に対して発行する(5)。ここまでは、前述した一比較例のメモリシステムと同じである。
【0038】
このコマンドを受信したメモリシステム1のメモリコントローラ11は、指定されたアドレス情報(C)内の物理アドレスを使って、不揮発性メモリ12に対して、ホスト2が要求するデータの出力を指示する(6)。このとき、メモリコントローラ11は、冗長領域に格納されているデータ(論理アドレス)の出力を併せて指示する。
【0039】
メモリコントローラ11は、この指示に応じて不揮発性メモリ12からデータが出力されると(7)、リードコマンドで指定された論理アドレスと、不揮発性メモリ12の冗長領域から読み出された論理アドレスと、を比較するアドレス照合を実行する(8)。2つの論理アドレスが一致した場合、メモリコントローラ11は、不揮発性メモリから出力されたデータ(データ本体)を、リードデータとしてホスト2へ送信する(9)。
【0040】
続いて、
図5を参照して、アドレス照合の結果が不一致であった場合における動作の流れを説明する。アドレス照合の結果が不一致になる場合とは、たとえば、ホスト2が、目的の論理アドレスとは異なる論理アドレスに対応づけられているアドレス情報をメインメモリ22から読み出して、リードコマンドに付加した場合である。
【0041】
(1)~(7)までは
図4と同じであるため、説明を省略する。メモリコントローラ11は、リードコマンドで指定された論理アドレスと、不揮発性メモリ12の冗長領域から読み出された論理アドレスと、を比較するアドレス照合を実行する。メモリコントローラ11がアドレス照合を実行した結果、2つの論理アドレスが不一致であった場合(8)、メモリコントローラ11は不揮発性メモリ12に対して、リードコマンドで指定された論理アドレスを含むアドレス変換テーブルの一部の出力を指示する(9)。メモリコントローラ11は、不揮発性メモリ12からアドレス変換テーブルの一部が出力されると(10)、リードコマンドで指定された論理アドレスと対応づけられている物理アドレスをアドレス変換テーブルから取得し、今度は、当該取得した物理アドレスを使って、不揮発性メモリ12に対して、データの出力を指示する(11)。メモリコントローラ11は、不揮発性メモリから出力されたデータ(データ本体)を、リードデータとしてホスト2へ送信する(12)。
【0042】
アドレス変換テーブルの一部が出力された(10)のち、メモリコントローラ11は、リードコマンドで指定された論理アドレスと、物理アドレスに従って読み出したデータの冗長領域に書き込まれている論理アドレスと、を比較して、アドレス照合を更に行ってもよい。2つの論理アドレスが一致した場合、メモリコントローラ11は、当該取得した物理アドレスを使って、不揮発性メモリ12に対して、データの出力を指示する。2つの論理アドレスが不一致の場合、メモリコントローラ11は、エラー応答をホスト2に送信する。
【0043】
以上のように、第1実施形態のメモリシステム1においては、不揮発性メモリ12の冗長領域に論理アドレスを格納することで、メモリシステム1のリード性能を低下させることなく、リードコマンドで指定される論理アドレスに対する、同リードコマンドで指定されるアドレス情報の妥当性を判定することができる。
【0044】
また、もし、ホスト2が指定するアドレス情報が誤っていたとしても、ホスト2が指定する論理アドレスに対応づけられている本来のアドレス情報を使って不揮発性メモリ12から正しいデータを読み出し、ホスト2へ提供することができる。
【0045】
(第2実施形態)
次に、第2実施形態について説明する。
【0046】
第1実施形態のメモリシステム1と同様、第2実施形態のメモリシステム1も、UFS装置として実現されていることを想定する。第2実施形態のメモリシステム1の構成は、第1実施形態のメモリシステム1と同じであり、重複する説明を省略する。第1実施形態と同一の構成要素に対しては、同一の符号を使用する。
【0047】
第1実施形態では、メモリシステム1のメモリコントローラ11は、データの書き込み時において、不揮発性メモリ12の冗長領域に論理アドレスを格納する。データの読み出し時において、メモリコントローラ11がこの論理アドレスを使って、ホスト2がリードコマンドに付加するアドレス情報が正しいか否かを判定することについて説明した。
【0048】
ところで、ホスト2は、メモリシステム1のテストなどのために、論理アドレス空間内のデータの書き込みが行われていない領域からデータを読み出すリードコマンドを発行する場合がある。あるいは、このようなリードコマンドは、たとえば、ホスト2が、データが未書き込みの領域を含む論理アドレス空間内の連続領域に対してシーケンシャルアクセスを実行する場合に発行される可能性がある。
【0049】
不揮発性メモリ12のデータ保存領域の各区画のうち、データ本体の保存領域にデータが未格納の区画では、冗長領域に論理アドレスは格納されていない。従って、データが未書き込みの論理アドレスを指定するリードコマンドに、誤ったアドレス情報が付加されていても、指定された論理アドレスと照合すべき情報が存在しないため、そのアドレス情報の妥当性を判定することができない。
【0050】
そこで、第2実施形態のメモリシステム1は、データが未書き込みの論理アドレスが付加されたリードコマンドについても、ホスト2から受け取るアドレス情報の妥当性を判定する仕組みを備えたものであり、以下、この点について詳述する。
【0051】
第1実施形態で説明したように、メモリシステム1がアドレス変換テーブルに基づいて生成するアドレス情報は、ホスト2にとっては解釈不能(不要)なデータである。換言すれば、メモリシステム1がアドレス変換テーブルに基づいて生成するアドレス情報は、メモリシステム1において任意に生成可能なデータである。
【0052】
第2実施形態におけるメモリシステム1のメモリコントローラ11は、ホスト2から論理アドレスに対応するアドレス情報を要求され、このアドレス情報を生成する際に、アドレス変換テーブルに基づき、対象の論理アドレスにデータが書き込まれているか否かを判定する。データが書き込まれている論理アドレスについて、メモリコントローラ11は、データが書き込み済みであることを示す識別情報(書き込み済みフラグ)と、アドレス変換テーブル上において当該論理アドレスと対応づけられている物理アドレスと、を含むアドレス情報を生成する。一方、データが書き込まれていない論理アドレスについては、メモリコントローラ11は、データが未書き込みであることを示す識別情報と、物理アドレスに代えて当該論理アドレスと、を含むアドレス情報を生成する。
【0053】
図6は、第2実施形態のメモリコントローラ11によって生成されるアドレス情報の一例を示す図である。
【0054】
図6の例では、論理アドレス0には、データが書き込まれており(「1」)、かつ、物理アドレス0が対応づけられている。一方、論理アドレス1には、データが書き込まれておらず(「0」)、その結果、物理アドレスの代わりに論理アドレス1がアドレス情報に含まれている。なお、たとえば、論理アドレスおよび物理アドレスがNビットで構成されており、当該NビットのうちのM(M<N)ビットのみが実質的に使用されている場合、メモリコントローラ11は、空きビットである(N-M)ビットの一部または全部を書き込み済みフラグとして活用してもよい。
【0055】
図6に示すアドレス情報の構成を踏まえて、次に、
図7を参照して、第2実施形態のメモリシステム1におけるホスト2からリードコマンドを受信した場合の動作の流れを説明する。
図7は、データが未書き込みの論理アドレスがリードコマンドに付加され、かつ、アドレス照合の結果が一致であった場合におけるメモリシステム1の動作の流れを含んでいる。
【0056】
まず、ホスト2が、アドレス情報を取得するためのアドレス取得コマンドをメモリシステムに対して発行する(1)。このコマンドを受信したメモリシステム1のメモリコントローラ11は、不揮発性メモリ12に対して、ホスト2が要求するアドレス情報に対応するアドレス変換テーブルの一部の出力を指示する(2)。メモリコントローラ11は、不揮発性メモリ12からアドレス変換テーブルの一部が出力されると(3)、当該アドレス変換テーブルの一部を基にアドレス情報を生成する。このとき、メモリコントローラ11は、データが書き込まれているか否かを示す識別情報をアドレス情報に含める(4)。また、メモリコントローラ11は、データが未書き込みの論理アドレスについては、物理アドレスに代えて、当該論理アドレスをアドレス情報に含める。なお、データが書き込み済みの論理アドレスについては、いうまでもないが、メモリコントローラ11は、アドレス変換テーブル上で対応づけられている物理アドレスをアドレス情報に含める。メモリコントローラ11は、以上のように生成したアドレス情報をホスト2へ送信する(5)。
【0057】
その後、ホスト2は、メモリシステム1から受信したアドレス情報を使って、論理アドレス(A)と、サイズ(B)と、アドレス情報(C)とを付加したリードコマンドをメモリシステム1に対して発行する(6)。前述のように、ホスト2は、アドレス情報(C)については、論理アドレス(A)に対応づけられているものをメインメモリ22から読み出して付加しているだけである。
図8は、第2実施形態において、ホスト2によって発行されるリードコマンドの例を示す図である。
【0058】
図8(A)は、データが書込み済みの論理アドレス0からデータを読み出すためのリードコマンドの一例を示している。アドレス情報(C)には、データが書き込み済みであることを示す識別情報と、論理アドレス0に対応づけられている物理アドレス0と、が含まれている。一方、
図8(B)は、データが未書き込みの論理アドレス1からデータを読み出すためのリードコマンドの一例を示している。アドレス情報(C)には、データが未書き込みであることを示す識別情報と、物理アドレスに代わる当該論理アドレス1と、が含まれている。
【0059】
ホスト2からのリードコマンドを受信したメモリシステム1のメモリコントローラ11は、まず、アドレス情報内の識別情報が、データが書き込み済みであることを示しているのか、データが未書き込みであることを示しているのか、を判定する。ここでは、たとえば
図8(B)のコマンドのような、データが未書き込みであることを識別情報が示していることを想定する。
【0060】
図7に戻る。データが未書き込みであることを識別情報が示している場合、メモリコントローラ11は、リードコマンドで指定された論理アドレスと、アドレス情報に含まれている論理アドレスと、を比較して照合する(7)。2つの論理アドレスが一致した場合、メモリコントローラ11は、正しいアドレス情報が指定されていると判断して、データが未書き込みの論理アドレスから読み出されるべきデータとしてあらかじめ定められたパターンのデータを作成して(8)、リードデータとしてホスト2へ送信する(9)。あらかじめ定められたパターンのデータは、たとえば全てのビットが0のデータである。
【0061】
なお、
図8(A)のコマンドのような、データが書込み済みであることを識別情報が示しているコマンドを受信した場合には、第1実施形態で説明したように、アドレス情報に含まれている物理アドレスを使って不揮発性メモリ12からデータを読み出し、冗長領域に格納されている論理アドレスを用いた照合を実行する。
【0062】
続いて、
図9を参照して、データが未書き込みの論理アドレスが指定され、かつ、アドレス照合の結果が不一致であった場合における動作の流れを説明する。
図10(A)に、アドレス照合が不一致となるリードコマンドの一例を示す。
図10(A)に示すリードコマンドは、データが未書き込みの論理アドレス1を論理アドレス(A)として指定しつつも、当該論理アドレス1のアドレス情報ではなく、データが未書き込みの論理アドレスXのアドレス情報を指定している。
【0063】
(1)~(6)までは
図7と同じであるため、説明を省略する。メモリコントローラ11は、リードコマンドで指定された論理アドレスと、アドレス情報に含まれている論理アドレスと、を比較するアドレス照合を実行する。メモリコントローラ11がアドレス照合を実行した結果、2つの論理アドレスが不一致であった場合(7)、不揮発性メモリ12に対して、リードコマンドで指定された論理アドレスを含むアドレス変換テーブルの一部の出力を指示する(8)。この指示に応じて不揮発性メモリ12からデータが出力されると(9)、メモリコントローラ11は、リードコマンドで指定された論理アドレスの本来の書き込み状態を判定する(10)。リードコマンドで指定された論理アドレスが未書き込み状態であれば、メモリコントローラ11は、前述の、あらかじめ定められたパターンのデータを作成して(11)、リードデータとしてホスト2へ送信する(12)。
【0064】
また、
図10(A)には、データが未書き込みの他の論理アドレスのアドレス情報が誤って付加されているリードコマンドの例を示したが、データが書込み済みの他の論理アドレスのアドレス情報が誤って付加される場合も考えられる。
図10(B)に示すリードコマンドは、データが未書き込みの論理アドレス1を論理アドレス(A)として指定し、当該論理アドレス1のアドレス情報ではなく、データが書き込み済みのアドレス情報(識別情報1、物理アドレスY)を指定している。この場合、メモリコントローラ11は、まず、そのアドレス情報内の物理アドレスを使って不揮発性メモリ12からデータを読み出し、第1実施形態の
図5(6)~(12)と同様に、冗長領域に格納されている論理アドレスを用いたアドレス照合を実行する。
【0065】
以上のように、第2実施形態のメモリシステム1においては、さらに、データが未書き込みの論理アドレスが付加されたリードコマンドについても、当該リードコマンドで指定されているアドレス情報の妥当性を判定することができる。
【0066】
また、もし、ホスト2が指定するアドレス情報が誤っていたとしても、ホスト2が指定する論理アドレスに対応づけられている本来のアドレス情報を確認した上で、データが未書き込みの論理アドレスから読み出されるべき、あらかじめ定められたパターンのデータをホスト2へ提供することができる。
【0067】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0068】
1…メモリシステム、2…ホスト、11…メモリコントローラ、12…不揮発性メモリ、21…CPU、22…メインメモリ。