JP2017049713A - メモリコントローラ - Google Patents

メモリコントローラ Download PDF

Info

Publication number
JP2017049713A
JP2017049713A JP2015171270A JP2015171270A JP2017049713A JP 2017049713 A JP2017049713 A JP 2017049713A JP 2015171270 A JP2015171270 A JP 2015171270A JP 2015171270 A JP2015171270 A JP 2015171270A JP 2017049713 A JP2017049713 A JP 2017049713A
Authority
JP
Japan
Prior art keywords
address
latency
memory controller
host device
data
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.)
Granted
Application number
JP2015171270A
Other languages
English (en)
Other versions
JP6456799B2 (ja
Inventor
崇彦 菅原
Takahiko Sugawara
崇彦 菅原
大武 油谷
Hiromu Aburatani
大武 油谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MegaChips Corp
Original Assignee
MegaChips Corp
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 MegaChips Corp filed Critical MegaChips Corp
Priority to JP2015171270A priority Critical patent/JP6456799B2/ja
Priority to US15/242,713 priority patent/US20170060460A1/en
Publication of JP2017049713A publication Critical patent/JP2017049713A/ja
Application granted granted Critical
Publication of JP6456799B2 publication Critical patent/JP6456799B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】半導体記憶装置の違法な複製品を製造することを困難にする技術を提供することである。
【解決手段】メモリコントローラ30において、アドレス取得部32は、レイテンシ指定アドレス51を取得する。レイテンシ指定アドレス51は、読み出しコマンドを受け付けた場合に最短レイテンシで送信すべきデータを格納する半導体メモリ40のアドレスであり、ホスト装置10が保持するアドレスと同じである。事前取得部331は、レイテンシ指定アドレス51のデータを半導体メモリ40から読み出してバッファ36に格納させる。比較部332は、読み出しコマンドに含まれるアドレスをレイテンシ指定アドレス51と比較する。送信制御部333は、比較部332による比較結果に基づいて、最短レイテンシが終了するタイミングでバッファ36に格納されたデータをホスト装置10に送信する。
【選択図】図3

Description

本発明は、ホスト装置からの要求に応じて半導体メモリにアクセスするメモリコントローラに関する。
半導体記憶装置は、メモリコントローラと、NANDフラッシュメモリなどの半導体メモリとを備える。メモリコントローラは、データの読み出し指示、あるいはデータの書き込み指示等をホスト装置から受け付けた場合、ホスト装置の指示に応じて半導体メモリに対するアクセスを制御する。
半導体メモリに記憶されているコンテンツ等のデータのセキュリティを確保するために、認証や、データの暗号化などの様々な対策が従来から施されている。認証を用いる場合、ホスト装置及びメモリコントローラは、互いの正当性を確認した後に、半導体メモリに記憶されたデータの読み出しを行う。暗号化を用いる場合、メモリコントローラは、半導体メモリから読み出したデータを暗号化してホスト装置に送信する。あるいは、メモリコントローラは、データを暗号化して半導体メモリに書き込み、半導体メモリから読み出した暗号化データを復号してホスト装置に送信する。
特許文献1には、メモリセルから読み出したデータを外部に出力する際に、読み出したデータを暗号化する半導体メモリ装置が開示されている。半導体メモリ装置は、外部から読み出しコマンドを受け付けた場合、読み出しコマンドで指定されたアドレスのデータをメモリセルから読み出す。半導体メモリ装置は、内部に実装された論理回路を用いて、読み出したデータと、読み出しコマンドで指定されたアドレスとの排他的論理和をとることにより、読み出したデータを暗号化する。半導体メモリ装置は、暗号化されたデータを読み出しコマンドの応答として出力する。
特開平7−219852号公報
特許文献1に係る半導体メモリ装置のように暗号化を用いる場合、暗号鍵が悪意のある第三者により窃取されるおそれがある。暗号鍵が窃取された場合、半導体メモリ装置に記憶されたデータのセキュリティが無効化される。また、認証によりセキュリティを確保する場合であっても、認証に用いられるパスワードなどが窃取されることにより、半導体メモリに記憶されたデータのセキュリティが無効化される。
第三者が半導体記憶装置のアクセスに用いられる暗号鍵やパスワードを窃取することに成功した場合、第三者は、半導体メモリに記憶されたデータを全て読み出すことが可能となるため、半導体メモリに記憶されたデータの複製を容易に作成することが可能となる。この結果、半導体記憶装置の違法な複製品が市場に流通するという問題がある。
本発明の目的は、半導体記憶装置の違法な複製品を製造することを困難にする技術を提供することである。
上記課題を解決するため、請求項1記載の発明は、ホスト装置からの要求に応じて半導体メモリにアクセスするメモリコントローラであって、前記ホスト装置から受信した読み出しコマンドに応答して最短レイテンシで送信すべきデータを格納する半導体メモリのアドレスであって、前記ホスト装置により保持されるアドレスと同一のレイテンシ指定アドレスを取得するアドレス取得部と、前記レイテンシ指定アドレスのデータを前記半導体メモリから読み出してバッファに格納する事前取得部と、前記ホスト装置から受信した読み出しコマンドに含まれるアドレスを、前記アドレス取得部により取得されたレイテンシ指定アドレスと比較する比較部と、前記比較部による比較結果に基づいて、前記最短レイテンシが終了するタイミングで前記バッファに格納されたデータを前記ホスト装置に送信する送信制御部と、を備える。
請求項2記載の発明は、請求項1に記載のメモリコントローラであって、前記アドレス取得部は、前記送信制御部が前記バッファに格納されたデータを前記ホスト装置へ出力した後に、前記レイテンシ指定アドレスを更新し、前記事前取得部は、更新されたレイテンシ指定アドレスのデータを前記半導体メモリから読み出し、前記バッファに格納されたデータを前記更新されたレイテンシ指定アドレスのデータで更新する。
請求項3記載の発明は、請求項1に記載のメモリコントローラであって、前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスと一致すると前記比較部により判断された場合、前記送信制御部は、前記最短レイテンシが終了するタイミングで前記バッファに格納されたデータを前記ホスト装置に送信する。
請求項4記載の発明は、請求項1ないし請求項3のいずれかに記載のメモリコントローラであって、前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスと一致しないと前記比較部により判断された場合、前記読み出しコマンドに含まれるアドレスのデータを前記半導体メモリから読み出し、前記半導体メモリから読み出したデータを送信する。
請求項5記載の発明は、請求項1ないし請求項4のいずれかに記載のメモリコントローラであって、前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスに一致すると前記比較部により判断された場合、前記読み出しコマンドの受け付けを完了した直後に、前記バッファに格納されたデータを送信する。
請求項6記載の発明は、請求項1ないし請求項4のいずれかに記載のメモリコントローラであって、前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスに一致すると前記比較部により判断された場合、1つのビジー信号及び1つのレディ信号の後に続けて前記バッファに格納されたデータを送信する。
請求項7記載の発明は、請求項1ないし請求項6のいずれかに記載のメモリコントローラであって、前記アドレス取得部は、前記レイテンシ指定アドレスの生成に用いられる乱数を生成する乱数生成器と、所定のアルゴリズムを用いて、前記乱数生成器により生成された乱数から前記レイテンシ指定アドレスを生成するアドレス生成部と、を含む。
請求項8記載の発明は、請求項1ないし請求項6のいずれかに記載のメモリコントローラであって、前記アドレス取得部は、前記ホスト装置により生成されたレイテンシ指定アドレスを取得する。
請求項9記載の発明は、メモリシステムであって、ホスト装置と、半導体メモリと、前記ホスト装置からの要求に応じて前記半導体メモリにアクセスするメモリコントローラと、を備え、前記メモリコントローラは、前記ホスト装置から受信した読み出しコマンドに応答して最短レイテンシで送信すべきデータを格納する半導体メモリのアドレスであるレイテンシ指定アドレスを取得するアドレス取得部と、前記レイテンシ指定アドレスのデータを前記半導体メモリから読み出してバッファに格納する事前取得部と、前記ホスト装置から受信した読み出しコマンドに含まれるアドレスを、前記アドレス取得部により取得されたレイテンシ指定アドレスと比較する第1比較部と、前記第1比較部による比較結果に基づいて、前記最短レイテンシが終了するタイミングで前記バッファに格納されたデータを前記ホスト装置に送信する送信制御部と、を備え、前記ホスト装置は、前記レイテンシ指定アドレスを記憶する記憶部と、前記読み出しコマンドをメモリコントローラに送信する前に、前記読み出しコマンドに含まれるアドレスを前記レイテンシ指定アドレスと比較する第2比較部と、前記第2比較部による比較結果に基づいて、前記最短レイテンシが終了するタイミングで、前記バッファに格納されたデータを前記メモリコントローラから受信するアクセス制御部と、を備える。
請求項10記載の発明は、請求項9に記載のメモリシステムであって、前記アクセス制御部は、前記バッファに格納されたデータを前記メモリコントローラから受信してから予め設定された期間が経過するまでに、前記レイテンシ指定アドレスを更新し、前記アドレス取得部は、前記送信制御部が前記バッファに格納されたデータを前記ホスト装置へ送信してから前記予め設定された期間が経過するまでに、前記レイテンシ指定アドレスを更新し、前記事前取得部は、更新されたレイテンシ指定アドレスのデータを前記半導体メモリから読み出し、前記バッファに格納されたデータを前記更新されたレイテンシ指定アドレスのデータで更新する。
請求項11記載の発明は、請求項9又は請求項10に記載のメモリシステムであって、前記メモリコントローラは、さらに、第1乱数を生成する第1乱数生成器、を備え、前記ホスト装置は、さらに、第2乱数を生成する第2乱数生成器、を備え、前記アドレス取得部及び前記アクセス制御部の各々は、所定のアルゴリズムを用いて、前記第1乱数と前記第2乱数から、前記レイテンシ指定アドレスを生成する。
本発明に係るメモリコントローラは、読み出しコマンドに含まれるアドレスをレイテンシ指定アドレスと比較した結果に基づいて、バッファに格納されたレイテンシ指定アドレスのデータを、最短レイテンシでホスト装置に送信する。一方、第三者は、レイテンシ指定アドレスを特定することができないため、第三者により違法に複製された半導体記憶装置におけるメモリコントローラは、レイテンシ指定アドレスのデータを最短レイテンシでホスト装置に送信することができない。つまり、違法に複製された半導体記憶装置のメモリコントローラは、本発明に係るメモリコントローラと同一の動作をすることができない。従って、半導体記憶装置の違法な複製品の製造を困難にすることができる。
本発明の実施の形態に係るメモリシステムの構成を示す機能ブロック図である。 図1に示すホスト装置の構成を示す機能ブロック図である。 図1に示す半導体記憶装置の構成を示す機能ブロック図である。 図1に示す半導体メモリの構成を示す機能ブロック図である。 図1に示すホスト装置及びメモリコントローラの動作を示す図であって、レイテンシ指定アドレスの生成時における動作を示すシーケンス図である。 図1に示すホスト装置が通常アドレスを含む読み出しコマンドを送信するときのホスト装置及びメモリコントローラの動作を示すシーケンス図である。 図1に示すホスト装置がレイテンシ指定アドレスを含む読み出しコマンドを送信するときのホスト装置及びメモリコントローラの動作を示すシーケンス図である。 図1に示すメモリコントローラが固定レイテンシ処理を実行する場合におけるデータの送信タイミングを示す図である。 図1に示すメモリコントローラが可変レイテンシ処理を実行する場合におけるデータの送信タイミングを示す図である。 図1に示すメモリコントローラが固定レイテンシ処理を実行する場合におけるデータの送信タイミングの他の例を示す図である。 図1に示すメモリコントローラが固定レイテンシ処理を実行する場合におけるデータの送信タイミングの他の例を示す図である。
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
{1.メモリシステムの構成}
{1.1.全体構成}
図1は、本発明の実施の形態に係るメモリシステム100の構成を示す機能ブロック図である。図1に示すように、メモリシステム100は、ホスト装置10と、半導体記憶装置20とを備える。半導体記憶装置20は、メモリコントローラ30と、半導体メモリ40とを備える。
メモリコントローラ30は、ホスト装置10からの要求に応じて、半導体メモリ40にアクセスする。
半導体メモリ40は、不揮発性であり、例えば、NANDフラッシュメモリである。半導体メモリ40は、ホスト装置10により使用されるプログラム41及びコンテンツデータ42を記憶する。プログラム41は、コンテンツデータ42を使用するためのプログラムである。
{1.2.ホスト装置10の構成}
図2は、図1に示すホスト装置10の構成を示す機能ブロック図である。図2に示すように、ホスト装置10は、CPU(Central Processing Unit)11と、RAM(Random Access Memory)12と、乱数生成器13と、ホスト側コントローラ14とを備える。CPU11と、RAM12と、乱数生成器13と、ホスト側コントローラ14とは、バスを介して接続される。
CPU11は、RAM12にロードされたプログラムを実行して、ホスト装置10の動作を制御する。RAM12は、ホスト装置10のメインメモリである。
乱数生成器13は、真性乱数を生成する。乱数生成器13は、レイテンシ指定アドレス51の生成に用いられる乱数13Aを生成する。レイテンシ指定アドレス51は、半導体メモリ40のアドレスのうち、メモリコントローラ30が読み出しコマンドを受け付けた場合に最短レイテンシで送信すべきデータを格納するアドレスである。レイテンシ指定アドレス51は、アクセス制御部141により保持される。レイテンシ指定アドレス51の詳細は、後述する。
ホスト側コントローラ14は、CPU11の指示に応じて、ホスト装置10による半導体記憶装置20に対するアクセスを制御する。ホスト側コントローラ14は、アクセス制御部141と、アドレス生成部142と、記憶部143と、比較部144とを備える。
アクセス制御部141は、CPU11の指示に基づくコマンドをメモリコントローラ30に送信し、送信したコマンドに対する応答を受信する。比較部144は、読み出しコマンドに含まれるアドレスをレイテンシ指定アドレス51と比較する。
アドレス生成部142は、記憶部143に格納された乱数13A及び乱数35Aからレイテンシ指定アドレス51を生成する。乱数35Aは、後述するように、メモリコントローラ30により生成される。
記憶部143は、例えば、レジスタであり、乱数生成器13により生成された乱数13Aと、メモリコントローラ30により生成された乱数35Aとを格納する。
{1.3.メモリコントローラ30の構成}
図3は、図1に示す半導体記憶装置20の構成を示す機能ブロック図である。図3に示すように、メモリコントローラ30は、コマンドデコーダ31と、アドレス取得部32と、アクセス制御部33と、バッファ34と、乱数生成器35と、セレクタ36とを備える。
メモリコントローラ30は、ホスト側コントローラ14と接続される。図3において、メモリコントローラ30におけるホスト装置10とのインタフェース回路(ホストI/F)及び半導体メモリ40とのインタフェース回路(メモリI/F)の表示を省略している。
コマンドデコーダ31は、ホスト側コントローラ14から送信されるコマンドを取得し、取得したコマンドをデコードする。例えば、コマンドデコーダ31は、読み出しコマンドを受信した場合、読み出しコマンドをデコードし、読み出しコマンドからアドレスを抽出する。コマンドデコーダ31は、読み出し指示及び抽出したアドレスをアクセス制御部33に出力する。以下、読み出しコマンドに含まれるアドレスを「読み出しアドレス」と記載する。
アドレス取得部32は、レイテンシ指定アドレス51を取得する。アドレス取得部32は、レジスタ321と、レジスタ322と、アドレス生成部323とを備える。
レジスタ321は、乱数生成器13(図2参照)により生成された乱数13Aを格納する。レジスタ322は、乱数生成器35により生成された乱数35Aを格納する。アドレス生成部323は、レジスタ321に格納された乱数13Aとレジスタ322に格納された乱数35Aからレイテンシ指定アドレス51を生成する。アドレス生成部323と、ホスト装置10のアドレス生成部142とは、同一のレイテンシ指定アドレス51を生成する。
アクセス制御部33は、ホスト装置10からの読み出しコマンドに応じて、半導体メモリ40から読み出されたデータをホスト側コントローラ14に送信する。アクセス制御部33は、事前取得部331と、比較部332と、送信制御部333とを備える。
事前取得部331は、アドレス取得部32により取得されたレイテンシ指定アドレス51のデータの読み出しを半導体メモリ40に指示し、半導体メモリ40から読み出されたレイテンシ指定アドレス51のデータをバッファ34に格納させる。
比較部332は、読み出しアドレスをアドレス取得部32により生成されたレイテンシ指定アドレス51と比較する。比較部332は、比較結果を送信制御部333に出力する。
送信制御部333は、比較部332による比較結果に応じて、半導体メモリ40又はバッファ34から読み出しアドレスのデータを読み出してホスト側コントローラ14に送信する。具体的には、送信制御部333は、読み出しアドレスがレイテンシ指定アドレス51に一致する場合、レイテンシがゼロとなるタイミングで、バッファ34に格納されたデータを読み出しコマンドの応答としてホスト装置10に出力する。送信制御部333は、読み出しアドレスがレイテンシ指定アドレス51と一致しない場合、読み出しアドレスのデータの読み出しを半導体メモリ40に指示する。送信制御部333は、半導体メモリ40から読み出されたデータを、読み出しコマンドの応答としてホスト装置10に出力する。
バッファ34は、事前取得部331の指示に応じて半導体メモリ40から読み出されたデータを格納する。バッファ34に格納されるデータは、半導体メモリ40におけるレイテンシ指定アドレス51のデータである。
乱数生成器35は、乱数35Aを生成する。乱数35Aは、レイテンシ指定アドレス51の決定に用いられる。乱数生成器35は、真性乱数を生成する。従って、乱数生成器35により生成される乱数35Aは、乱数生成器13により生成される乱数13Aと異なる。
セレクタ36は、バッファ34に格納されたデータ、乱数生成器35により生成された乱数35A、及び送信制御部333の指示に応じて半導体メモリ40から読み出されたデータのいずれかを送信制御部333に出力する。セレクタ36の動作は、送信制御部333により決定される。
{1.4.半導体メモリ40の構成}
図4は、図1に示す半導体メモリ40の構成を示す機能ブロック図である。図4に示すように、半導体メモリ40は、1枚のダイで構成される。ダイは、J個のブロックを含む。ブロックは、N個のページを含む。J及びNは、いずれも1以上の自然数である。ブロックは、半導体メモリ40におけるデータの消去単位である。ページは、半導体メモリ40におけるデータの読み出し単位及び書き込み単位である。
半導体メモリ40において、ブロック40Bは、ページP−1〜P−Nにより構成される。プログラム41A〜41Cが、ページP−1〜P−3に格納されている。プログラム41A〜41Cは、図1に示すプログラム41を構成する。プログラム41A〜41Cは、プログラム41をページに格納可能なデータサイズで区分することにより生成される。従って、プログラム41A〜41Cを個別に実行することはできない。コンテンツデータ42は、ページP−Nに格納される。
{2.メモリシステムの動作}
以下、メモリシステム100の動作について説明する。なお、メモリコントローラ30において実行される論理アドレスから物理アドレスへの変換処理についての説明を省略する。
{2.1.概略}
レイテンシ指定アドレス51は、ホスト装置10の電源がオンにされたときに、ホスト装置10及びメモリコントローラ30で生成される。レイテンシ指定アドレス51は、乱数13A及び乱数35Aから生成されるため、ランダムな値を有する。また、レイテンシ指定アドレス51は、メモリコントローラ30がレイテンシ指定アドレス51のデータをホスト装置10に送信した後に更新される。
メモリコントローラ30は、読み出しコマンドをホスト装置10から受信した場合、読み出しアドレスをレイテンシ指定アドレス51と比較する。メモリコントローラ30は、その比較結果に応じて、固定レイテンシ処理及び可変レイテンシ処理のいずれか一方を実行する。
可変レイテンシ処理は、通常の読み出し処理であり、読み出しアドレスがレイテンシ指定アドレス51以外のアドレスである場合に実行される。メモリコントローラ30は、読み出しアドレスのデータを半導体メモリ40から読み出し、読み出したデータをホスト装置10に送信する。
可変レイテンシ処理を実行する場合、一定時間以上のレイテンシが発生する。レイテンシは、メモリコントローラ30が読み出しコマンドの受け付けを完了してから読み出しアドレスのデータをホスト装置10に出力するまでに要する時間である。半導体メモリ40からデータを読み出すために要する時間は、半導体メモリ40の性能や、読み出しアドレスなどによって変化する。
一方、固定レイテンシ処理は、読み出しアドレスがレイテンシ指定アドレス51に一致する場合に実行される。固定レイテンシ処理は、バッファ34に格納されているデータを読み出しコマンドの応答として出力する。詳細については後述するが、固定レイテンシ処理を実行することにより、レイテンシをゼロとすることができる。
このように、メモリコントローラ30は、レイテンシ指定アドレス51を含む読み出しコマンドを受信した場合、レイテンシがゼロとなるタイミングで、レイテンシ指定アドレス51のデータをホスト装置10に送信する。レイテンシ指定アドレス51は、ランダムな値を有するため、第三者は、レイテンシ指定アドレス51を特定することができない。従って、半導体記憶装置20の違法な複製品が第三者により製造されたとしても、複製品におけるメモリコントローラは、レイテンシ指定アドレス51を含む読み出しコマンドを受信した場合、レイテンシ指定アドレス51のデータをレイテンシがゼロとなるタイミングでホスト装置10に送信することができない。複製品のメモリコントローラは、メモリコントローラ30と同一の動作をすることができないため、半導体記憶装置20の違法な複製品の製造を困難とすることができる。以下、半導体記憶装置20の違法な複製品を、単に「複製品」と記載する。
{2.2.レイテンシ指定アドレス51の決定}
図5は、レイテンシ指定アドレス51を決定するときにおけるホスト装置10及びメモリコントローラ30の動作を示すシーケンス図である。図5に示すシーケンス図は、ホスト装置10の電源がオンされたときに開始される。
最初に、ホスト装置10の動作を説明する。ホスト装置10の電源がオンされた場合、CPU11は、乱数生成器13に乱数13Aの生成を指示する。乱数生成器13は、CPU11の指示に応じて、乱数13Aを生成する(ステップS111)。生成された乱数13Aは、CPU11及びホスト側コントローラ14へ出力される。
ホスト側コントローラ14において、アクセス制御部141は、乱数生成器13から入力された乱数13Aを記憶部143に格納する(ステップS112)。
CPU11は、乱数交換コマンドを生成する(ステップS113)。CPU11は、乱数生成器13から出力された乱数13Aを乱数交換コマンドにセットする。乱数交換コマンドは、乱数13Aをメモリコントローラ30へ送信し、メモリコントローラ30で生成される乱数35Aの送信を要求するコマンドである。
アクセス制御部141は、乱数13Aがセットされた乱数交換コマンドをCPU11から取得する。ホスト側コントローラ14は、取得した乱数交換コマンドをメモリコントローラ30へ送信する(ステップS114)。アクセス制御部141は、乱数交換コマンドの応答を受信するまで待機する。
次に、メモリコントローラ30の動作について説明する。メモリコントローラ30は、ホスト装置10の電源オンに応じて起動する。メモリコントローラ30において、乱数生成器35は、乱数35Aを生成する(ステップS211)。乱数生成器13及び35は、真性乱数を生成する。従って、メモリシステム100の起動直後に生成される乱数13A及び35Aは、互いに異なる値である。
乱数35Aは、レジスタ322に記憶される(ステップS212)。具体的には、送信制御部333は、メモリコントローラ30の起動直後に、乱数35Aの出力を指示するセレクト信号54をセレクタ36に出力する。セレクタ36は、送信制御部333から出力されたセレクト信号54に応じて、入力を乱数生成器35に切り替える。これにより、送信制御部333は、乱数35Aを乱数生成器35から取得する。送信制御部333は、取得した乱数35Aをレジスタ322に出力する。レジスタ322は、送信制御部333から出力された乱数35Aを記憶する。
メモリコントローラ30は、ステップS114によりホスト側コントローラ14から送信された乱数交換コマンドを受信する。メモリコントローラ30は、受信した乱数交換コマンドにセットされた乱数13Aをレジスタ321に記憶する(ステップS213)。具体的には、コマンドデコーダ31は、受信した乱数交換コマンドをデコードして、ホスト装置10が乱数の交換を要求していると判断する。コマンドデコーダ31は、乱数交換コマンドにセットされた乱数13Aを抽出してレジスタ321に出力する。レジスタ321は、コマンドデコーダ31から出力された乱数13Aを記憶する。
メモリコントローラ30は、乱数生成器35により生成された乱数35Aを、受信した乱数交換コマンドの応答としてホスト装置10に送信する(ステップS214)。具体的には、コマンドデコーダ31は、乱数交換コマンドを受信したことを送信制御部333に通知する。送信制御部333は、コマンドデコーダ31からの通知に応じて、乱数生成器35から取得した乱数35Aを、乱数交換コマンドの応答として送信する。
アドレス取得部32は、レイテンシ指定アドレス51を生成する(ステップS215)。具体的には、アドレス生成部323は、予め設定されたアルゴリズムを用いて、レジスタ321に記憶された乱数13Aとレジスタ322に記憶された乱数35Aから、レイテンシ指定アドレス51を生成する。アルゴリズムは、特に限定されないが、例えば、擬似乱数生成アルゴリズム、HMAC(Hash-based Message Authentication Code)などを用いることができる。
メモリコントローラ30は、レイテンシ指定アドレス51のデータを半導体メモリ40から読み出す(ステップS216)。具体的には、アドレス生成部323は、生成したレイテンシ指定アドレス51を事前取得部331に出力する。事前取得部331は、レイテンシ指定アドレス51を半導体メモリ40に出力して、レイテンシ指定アドレス51のデータの読み出しを半導体メモリ40に指示する。半導体メモリ40は、事前取得部331の指示に応じて、レイテンシ指定アドレス51のデータを読み出す。半導体メモリ40から読み出されたレイテンシ指定アドレス51のデータは、バッファ34に格納される(ステップS217)。これにより、メモリシステム100の起動時におけるメモリコントローラ30の処理は終了する。
ホスト装置10において、アクセス制御部141は、乱数交換コマンドの応答として乱数35Aを受信する。アクセス制御部141は、受信した乱数35Aを記憶部143に格納する(ステップS115)。
アドレス生成部142は、記憶部143に記憶された乱数13A及び35Aからレイテンシ指定アドレス51を生成する(ステップS116)。アドレス生成部142がレイテンシ指定アドレス51の生成に用いるアルゴリズムは、メモリコントローラ30のアドレス生成部323が用いるアルゴリズムと同じである。従って、アドレス生成部142により生成されるレイテンシ指定アドレス51は、メモリコントローラ30のアドレス生成部323により生成されるレイテンシ指定アドレス51と同一である。
{2.3.可変レイテンシ処理}
図6は、ホスト装置10がレイテンシ指定アドレス51以外のアドレスを含む読み出しコマンドを送信するときのホスト装置10及びメモリコントローラ30の動作を示すシーケンス図である。以下、レイテンシ指定アドレス51以外のアドレスを「通常アドレス」と記載する。
ホスト装置10は、ステップS311〜S314を実行して、通常アドレスを含む読み出しコマンドをメモリコントローラ30に送信する。ホスト装置10において、CPU11は、読み出しコマンドを生成し、生成した読み出しコマンドに読み出しアドレスをセットする。図6に示す例では、セットされる読み出しアドレスは、通常アドレスである。これにより、通常アドレスを含む読み出しコマンドが生成される(ステップS311)。
CPU11は、生成した読み出しコマンドをアクセス制御部141に出力する。比較部144は、レイテンシ指定アドレス51と、読み出しコマンドに含まれる読み出しアドレスとをアクセス制御部141から入力し、読み出しアドレスを、レイテンシ指定アドレス51と比較する(ステップS312)。
図6に示す例では、読み出しアドレスとして通常アドレスが読み出しコマンドにセットされているので、比較部144は、比較対象の2つのアドレスが一致しないと判断し、比較結果をアクセス制御部141に通知する。比較部144からの通知に基づいて、アクセス制御部141は、読み出しコマンドをメモリコントローラ30に送信した場合、メモリコントローラ30が可変レイテンシ処理を実行すると判断する。アクセス制御部141は、可変レイテンシ処理用のアクセス制御の開始を決定する(ステップS313)。
アクセス制御部141は、CPU11から供給された読み出しコマンドをメモリコントローラ30に送信する(ステップS314)。アクセス制御部141は、可変レイテンシ処理用のアクセス制御を開始する。具体的には、アクセス制御部141は、メモリコントローラ30から送信されるレディ信号を受信するまで待機する(ステップS315)。
メモリコントローラ30において、コマンドデコーダ31は、ステップS314によりホスト装置10から送信された読み出しコマンドを受信する。コマンドデコーダ31は、受信した読み出しコマンドをデコードする。その結果、コマンドデコーダ31は、ホスト装置10により読み出しが指示されたと判断し、受信した読み出しコマンドから読み出しアドレスを抽出する(ステップS411)。
コマンドデコーダ31は、デコード結果(読み出し指示及び抽出した読み出しアドレス)を比較部332及び送信制御部333に出力する。比較部332は、コマンドデコーダ31から取得した読み出しアドレスをレイテンシ指定アドレス51と比較する(ステップS412)。図6に示す例では、読み出しアドレスとして通常アドレスが読み出しコマンドにセットされているので、比較部332は、読み出しアドレスがレイテンシ指定アドレス51と一致しないことを送信制御部333に通知する。送信制御部333は、比較部332からの通知に基づいて、読み出しアドレスのデータを半導体メモリ40から読み出す可変レイテンシ処理の実行を決定する(ステップS413)。可変レイテンシ処理は、ステップS414〜S418の処理に相当する。
送信制御部333は、ホスト装置10に対するビジー信号の送信を開始する(ステップS414)。また、送信制御部333は、読み出しアドレスのデータの読み出しを指示するアクセス制御信号を半導体メモリ40に出力する(ステップS415)。送信制御部333は、読み出しアドレスのデータを半導体メモリ40から読み出すことができるように、セレクタ36にセレクト信号54を送信する。
送信制御部333は、ビジー信号の送信を継続しながら、半導体メモリ40からレイテンシ信号が出力されるまで待機する。レイテンシ信号は、半導体メモリ40から読み出しアドレスのデータを読み出すことが可能になったことを通知する信号である。送信制御部333は、レイテンシ信号を検出した場合(ステップS416)、ホスト装置10にレディ信号を送信する(ステップS417)。送信制御部333は、半導体メモリ40から読み出しアドレスのデータを読み出す。送信制御部333は、レディ信号の後に続けて、読み出しアドレスのデータをホスト装置10に送信する(ステップS418)。
ホスト装置10において、アクセス制御部141は、レディ信号がメモリコントローラ30から送信された場合、読み出しアドレスのデータの送信が開始されると判断する。アクセス制御部141は、レディ信号の後に送信されるデータを読み出しアドレスのデータとして受信する。アクセス制御部141は、読み出しアドレスのデータをCPU11に供給する。CPU11は、読み出しアドレスのデータを用いた処理を実行する。
{2.4.固定レイテンシ処理}
図7は、ホスト装置10がレイテンシ指定アドレス51を含む読み出しコマンドを送信するときのホスト装置10及びメモリコントローラ30の動作を示すシーケンス図である。
図7に示すように、ホスト装置10は、ステップS511〜S513を実行して、レイテンシ指定アドレス51を含む読み出しコマンドをメモリコントローラ30に送信する。具体的には、CPU11は、読み出しコマンドを生成し、生成した読み出しコマンドに読み出しアドレスをセットする。図7に示す例では、読み出しアドレスとしてレイテンシ指定アドレス51が読み出しコマンドにセットされる。これにより、レイテンシ指定アドレス51を含む読み出しコマンドが生成される(ステップS511)。
CPU11は、生成した読み出しコマンドをアクセス制御部141に出力する。比較部144は、レイテンシ指定アドレス51と、読み出しコマンドに含まれる読み出しアドレスとをアクセス制御部141から入力し、読み出しアドレスをレイテンシ指定アドレス51と比較する(ステップS512)。
図7に示す例では、読み出しアドレスとしてレイテンシ指定アドレス51が読み出しコマンドにセットされているので、比較部144は、比較対象の2つのアドレスが一致すると判断し、比較結果をアクセス制御部141に通知する。比較部144からの通知に基づいて、アクセス制御部141は、読み出しコマンドをメモリコントローラ30に送信した場合、メモリコントローラ30が固定レイテンシ処理を実行すると判断する。アクセス制御部141は、固定レイテンシ処理用のアクセス制御を開始する(ステップS513)。固定レイテンシ処理用のアクセス制御については、後述する。
アクセス制御部141は、CPU11から供給された読み出しコマンドをメモリコントローラ30に送信する(ステップS514)。
メモリコントローラ30は、ステップS514によりホスト装置10から送信された読み出しコマンドを受信した場合、ステップS611〜S615を実行して、レイテンシ指定アドレス51のデータをホスト装置10に送信する。
具体的には、コマンドデコーダ31は、読み出しコマンドをデコードする。デコードの結果、コマンドデコーダ31は、ホスト装置10から読み出しが指示されたと判断し、読み出しコマンドから読み出しアドレスを抽出する(ステップS611)。コマンドデコーダ31は、デコード結果(読み出し指示及び抽出した読み出しアドレス)を比較部332及び送信制御部333に出力する。
比較部332は、コマンドデコーダ31から出力された読み出しアドレスをレイテンシ指定アドレス51と比較する(ステップS612)。図7に示す例では、読み出しアドレスとしてレイテンシ指定アドレス51が読み出しコマンドにセットされている。このため、比較部332は、比較対象の2つのアドレスが一致すると判断し、比較結果を送信制御部333に通知する。送信制御部333は、比較部332からの通知に基づいて、固定レイテンシ処理の実行を決定する(ステップS613)。
送信制御部333は、バッファ34との接続を指示するセレクト信号54をセレクタ36に出力し、バッファ34に格納されたレイテンシ指定アドレス51のデータを読み出す(ステップS614)。送信制御部333は、読み出したレイテンシ指定アドレス51のデータをホスト装置10に送信する(ステップS615)。メモリコントローラ30は、読み出しコマンドを受信してからレイテンシ指定アドレス51のデータを送信するまでの間、ビジー信号及びレディ信号を出力しない。レイテンシ指定アドレス51のデータは、メモリコントローラ30が読み出しコマンドを受信した直後に送信される。つまり、メモリコントローラ30は、読み出しコマンドにレイテンシ指定アドレス51が含まれる場合、レイテンシがゼロとなるタイミングでレイテンシ指定アドレス51のデータを送信する。
ホスト装置10により実行される固定レイテンシ処理用のアクセス制御について説明する。上述のように、メモリコントローラ30は、固定レイテンシ処理を実行する場合、ビジー信号及びレディ信号を送信することなく、読み出しコマンドの受信直後にレイテンシ指定アドレス51のデータを送信する。このため、アクセス制御部141は、固定レイテンシ処理用のアクセス制御において、レディ信号を受信するまで待機しない。読み出しコマンドの送信を完了したタイミングが、レイテンシがゼロであるタイミングであるため、アクセス制御部141は、読み出しコマンドの送信直後にメモリコントローラ30から受信するデータを、レイテンシ指定アドレス51のデータとして取得する。
以下、固定レイテンシ処理において、メモリコントローラ30が、読み出しコマンドを受信した直後にレイテンシ指定アドレス51のデータを送信できる理由を説明する。図8は、メモリコントローラ30が固定レイテンシ処理を実行する場合における、レイテンシ指定アドレス51のデータの送信タイミングを示す図である。図8に示すように、読み出しコマンドは、1バイトのコマンドIDと、2バイトの読み出しアドレスとを含む。コマンドIDは、読み出しコマンドであることを一意に示す値である。コマンドデコーダ31は、読み出しコマンドを1バイトずつ受信する。従って、コマンドデコーダ31は、読み出しコマンドの最初の1バイトを受信した時点で、ホスト装置10が半導体メモリ40からのデータの読み出しを指示していると判断することができる。コマンドデコーダ31は、アドレスの比較のために、コマンドIDの後に続く2バイトの読み出しアドレスを、1バイトずつ比較部332に出力する。
比較部332は、読み出しアドレスとレイテンシ指定アドレス51とを1バイトずつ比較する。比較部332は、読み出しアドレスの最後の1バイトの比較が完了した時点で、比較結果を送信制御部333に通知する。送信制御部333は、通知された比較結果に応じて、バッファ34に格納されたデータを出力するようにセレクタ36を制御する。送信制御部333は、バッファ34から出力されるデータ(レイテンシ指定アドレス51のデータ)を、そのままホスト装置10へ送信する。この結果、メモリコントローラ30は、読み出しコマンドの受信直後に、レイテンシ指定アドレス51のデータをホスト装置10へ送信することができる。つまり、図8に示すように、レイテンシ指定アドレス51のデータは、レイテンシがゼロとなるタイミングでホスト装置10に送信される。
{2.5.レイテンシ指定アドレス51の更新}
図7に示す処理が終了した場合、ホスト装置10及びメモリコントローラ30がそれぞれ保持するレイテンシ指定アドレス51が更新される。レイテンシ指定アドレス51を更新する手順は、図5に示す処理と同じ手順で実行される。レイテンシ指定アドレス51の更新は、メモリコントローラ30においては、レイテンシ指定アドレス51のデータを送信してから次の読み出しコマンドを受け付けるまでの間に実行される。ホスト装置10においては、レイテンシ指定アドレス51の更新は、レイテンシ指定アドレス51のデータを受信してから次の読み出しコマンドを生成するまでの間に実行される。すなわち、ホスト装置10及びメモリコントローラ30は、レイテンシ指定アドレス51のデータの読み出し処理が完了してから、予め設定された期間内に更新する。
図5において、レイテンシ指定アドレス51が更新される場合、ホスト装置10は、読み出しコマンドに関する処理が終了した後に乱数13Aと異なる新たな乱数を生成する(ステップS111)。また、メモリコントローラ30が、乱数35Aと異なる新たな乱数を生成する(ステップS211)。ホスト装置10で生成された新たな乱数と、メモリコントローラ30で生成された新たな乱数は、ホスト装置10とメモリコントローラ30の間で交換される(ステップS114,S214)。ホスト装置10及びメモリコントローラ30は、生成された2つの新たな乱数からレイテンシ指定アドレス51を新たに生成する(ステップS116,S215)。レイテンシ指定アドレス51のデータがホスト装置10に送信されるたびに、レイテンシ指定アドレス51がランダムに変更される。従って、第三者は、レイテンシがゼロとなるタイミングで読み出されるデータのアドレスを事前に知ることができない。
{2.6.半導体記憶装置20の複製品の製造の困難性}
次に、メモリコントローラ30が、レイテンシ指定アドレス51のデータをレイテンシがゼロとなるタイミングで送信することにより、第三者が複製品を製造することが困難となる理由を説明する。
図9は、メモリコントローラ30が可変レイテンシ処理を実行する場合において、読み出しアドレスのデータが送信されるタイミングを示す図である。図9において、読み出しコマンドは、図8に示す読み出しコマンドと同様の構成を有する。
図9に示すように、メモリコントローラ30は、可変レイテンシ処理を実行する場合、読み出しコマンドの受信後にビジー信号の送信を開始する。メモリコントローラ30は、読み出しアドレスのデータを半導体メモリ40から読み出すことが可能となるまで、ビジー信号の送信を継続する。メモリコントローラ30は、半導体メモリ40からの読み出しが可能となった場合に、レディ信号をホスト装置10に送信する。レディ信号の送信に続いて、読み出しアドレスのデータがホスト装置10に送信される。
一方、図8に示すように、レイテンシ指定アドレス51のデータは、固定レイテンシ処理によりホスト装置10へ送信される。この場合、メモリコントローラ30は、読み出しコマンドの受信完了後、レイテンシがゼロとなるタイミングでレイテンシ指定アドレス51のデータの送信を開始する。これに対して、第三者は、レイテンシ指定アドレス51がランダムな値を有しているため、レイテンシ指定アドレス51を特定することができない。従って、複製品のメモリコントローラは、レイテンシ指定アドレス51を含む読み出しコマンドを受信しても、レイテンシ指定アドレス51のデータをレイテンシがゼロとなるタイミングでホスト装置10に送信することができない。この結果、第三者は、半導体記憶装置20の複製品を製造することができない。
また、レイテンシ指定アドレス51は、レイテンシ指定アドレス51のデータがホスト装置10により読み出されるたびに、ランダムに更新される。レイテンシ指定アドレス51が一時的に漏洩した場合であっても、漏洩した時点で既にレイテンシ指定アドレス51が更新されている。従って、第三者によるレイテンシ指定アドレス51の特定をさらに困難にすることができ、複製品の製造を困難にすることができる。
複製品のメモリコントローラは、レイテンシ指定アドレス51のデータを固定レイテンシ処理によりホスト装置10に送信することができないため、ホスト装置10は、複製品に記録されたデータを処理することができない。以下、図4を参照して、ページP−2のアドレスがレイテンシ指定アドレス51である場合を例にして説明する。ホスト装置10は、ページP−2のアドレスを含む読み出しコマンドをメモリコントローラ30に送信する場合、固定レイテンシ処理用のアクセス制御を実行する。しかし、複製品のメモリコントローラは、ページP−2のアドレスのデータ(プログラム41B)を可変レイテンシ処理により送信する。ホスト装置10は、固定レイテンシ処理用のアクセス制御により、複製品のメモリコントローラから送信されるビジー信号及びレディ信号をページP−2のアドレスのデータとして処理するため、正規のプログラム41Bを特定することができない。ホスト装置10は、プログラム41を再構成できず、プログラム41を実行することできない。この結果、第三者は、ホスト装置10が利用可能な複製品を製造することができない。
なお、半導体メモリ40のうち、レイテンシ指定アドレス51に設定されるアドレスは、ホスト装置10によって読み出される可能性の高いアドレスであることが望ましい。レイテンシ指定アドレス51の対象となるアドレスは、ホスト装置10のブートコードを格納するページなど、ホスト装置10により少なくとも1回は読み出されるデータのアドレスであることが望ましい。あるいは、ホスト装置10のアクセス頻度が高い領域のアドレスに限定してもよい。
以上説明したように、本実施の形態において、ホスト装置10及びメモリコントローラ30は、乱数13A及び35Aからレイテンシ指定アドレス51を生成し、レイテンシ指定アドレス51のデータを半導体メモリ40から読み出してバッファ34に格納する。メモリコントローラ30は、レイテンシ指定アドレス51のデータの読み出しを指示された場合、バッファ34に格納されたレイテンシ指定アドレス51のデータをレイテンシがゼロとなるタイミングでホスト装置10に送信する。つまり、メモリコントローラ30は、通常の読み出し処理では実現できないレイテンシがゼロとなるタイミングでのレイテンシ指定アドレス51のデータの送信を、予め設定されたレイテンシ指定アドレス51のデータをバッファ34に格納することにより実現している。さらに、レイテンシ指定アドレス51がランダムに設定されるため、第三者は、レイテンシ指定アドレス51を特定することができない。この結果、第三者により違法に複製された半導体記憶装置のメモリコントローラは、レイテンシ指定アドレス51のデータをレイテンシがゼロとなるタイミングで送信することができない。この結果、半導体記憶装置20の違法な複製品の製造を困難にすることができる。
{変形例}
上記実施の形態において、メモリコントローラ30が読み出しコマンドの受信直後にレイテンシ指定アドレス51のデータを出力する例を説明したが、これに限られない。
図10は、メモリコントローラ30からレイテンシ指定アドレス51のデータが送信するタイミングの他の例を示す図である。図10に示すように、メモリコントローラ30は、読み出しコマンドを受信した場合、予め設定されたパターン(1つのビジー信号と1つのレディ信号)を出力してからレイテンシ指定アドレス51のデータをホスト装置10に送信してもよい。
例えば、送信制御部333が読み出しコマンドに含まれるアドレスのデータを送信する際に、少なくとも1つのビジー信号及び1つのレディ信号を出力しなければならない仕様となっている場合が考えられる。この場合、送信制御部333は、1つのビジー信号と1つのレディ信号を送信した後にレイテンシ指定アドレス51のデータを送信することにより、最短のレイテンシで読み出しコマンドに応答することができる。つまり、最短レイテンシとは、メモリコントローラが読み出しコマンドを受信した場合に、読み出しアドレスのデータの送信を開始することが可能な最も短い時間のことである。図10に示す例において、最短のレイテンシは、メモリコントローラ30が半導体メモリ40に読み出しアドレスのデータの出力を指示してから、読み出しアドレスのデータを取得するまでの期間よりも短い。つまり、送信制御部333は、可変レイテンシ処理により読み出しアドレスのデータを送信する場合よりも早いタイミングで、レイテンシ指定アドレス51のデータを送信する。この場合であっても、第三者は、レイテンシ指定アドレス51を特定することができないため、第三者による複製品の製造を困難にすることができる。
また、メモリコントローラ30が固定レイテンシ処理において1つのビジー信号及び1つのレディ信号を送信することにより、ホスト装置10は、半導体記憶装置20が不正に複製されたものであるかどうかを判断することが可能である。以下、具体的に説明する。
上述のように、複製品のメモリコントローラは、レイテンシ指定アドレス51を含む読み出しコマンドを受信した場合であっても、可変レイテンシ処理を実行してレイテンシ指定アドレス51のデータをホスト装置10に送信する。つまり、複製品のメモリコントローラは、レイテンシ指定アドレス51を含む読み出しコマンドを受信した直後に、予め設定されたパターン(1つのビジー信号と1つのレディ信号)を送信しない。ホスト装置10は、レイテンシ指定アドレス51のデータを送信する前に、予め設定されたパターンのビジー信号及びレディ信号を受信できなかった場合、接続された半導体記憶装置が不正に複製されたものであるとして、接続された半導体記憶装置に対するアクセスを停止することができる。
また、所定のパターンは、図10に示す例に限定されない。例えば、図11に示すように、メモリコントローラ30は、レイテンシ指定アドレス51のデータを送信する前に1つのレディ信号のみを送信してもよい。あるいは、メモリコントローラ30は、複数のビジー信号と1つのレディ信号とを送信してもよいし、ビジー信号及びレディ信号と無関係のパターンを送信してもよい。
また、上記実施の形態において、レイテンシ指定アドレス51の更新が、メモリコントローラ30がレイテンシ指定アドレス51のデータを送信した後に行われる例を説明したが、これに限られない。レイテンシ指定アドレス51の更新は、定期的に行われてもよいし、更新しなくてもよい。
また、上記実施の形態において、乱数13A及び35Aからレイテンシ指定アドレス51が生成される例を説明したが、これに限られない。例えば、レイテンシ指定アドレス51は、乱数13Aのみから生成されてもよい。この場合、図5に示すステップS115,S211,S212,S214の処理は省略される。あるいは、レイテンシ指定アドレス51は、乱数35Aのみから生成されてもよい。この場合、図5に示すS111〜S114,S213の処理は省略される。
また、上記実施の形態において、ホスト装置10とメモリコントローラ30とが生成した乱数を交換する例を説明したが、これに限られない。乱数生成器13及び35が、同一のアルゴリズムを利用する擬似乱数生成器である場合、乱数の交換を省略することができる。具体的には、乱数生成器13及び35の両者は、予め設定されたタイミングで生成する乱数を更新することにより、同一の擬似乱数を生成する。これにより、ホスト装置10とメモリコントローラ30とが乱数を交換しなくてもよいため、レイテンシ指定アドレス51の秘匿性を向上させることができる。乱数を更新するタイミングは、例えば、読み出しコマンドに基づく読み出し処理が所定の回数行われたときや、ホスト装置10が乱数の更新を指示するコマンドを送信するときなどが考えられる。なお、上記の擬似乱数の利用は、乱数の交換を制限するものではない。例えば、乱数生成器13及び35が異なるアルゴリズムを用いて擬似乱数を生成してもよい。この場合、乱数生成器13及び35がそれぞれ生成した擬似乱数の交換が行われる。
また、上記実施の形態において、ホスト装置10及びメモリコントローラ30がレイテンシ指定アドレス51をそれぞれ生成する例を説明したが、これに限られない。ホスト装置10及びメモリコントローラ30が、同一のレイテンシ指定アドレス51を保持していればよい。
例えば、ホスト装置10のみが、レイテンシ指定アドレス51を生成するようにしてもよい。この場合、レイテンシ指定アドレス51は、乱数13Aのみから生成される。ホスト装置10は、乱数交換コマンドに代えて、生成したレイテンシ指定アドレス51をメモリコントローラ30に送信すればよい。逆に、メモリコントローラ30のみが、レイテンシ指定アドレス51を生成し、生成したレイテンシ指定アドレス51をホスト装置10に送信してもよい。
あるいは、ホスト装置10及びメモリコントローラ30にレイテンシ指定アドレス51の初期値が予め設定されていてもよい。あるいは、レイテンシ指定アドレス51の初期値がホスト装置10のみに予め設定されてもよい。この場合、ホスト装置10が、起動時にレイテンシ指定アドレス51のアドレスをメモリコントローラ30に送信してもよい。
また、上記実施の形態で説明したメモリコントローラ30の一部又は全部は、集積回路(例えば、LSI、システムLSI等)として実現されるものであってもよい。
また、上記実施の形態における各処理の一部又は全部をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
100 メモリシステム
10 ホスト装置
11 CPU
12 RAM
13,35 乱数生成器
14 ホスト側コントローラ
20 半導体記憶装置
30 メモリコントローラ
31 コマンドデコーダ
32 アドレス取得部
33,141 アクセス制御部
34 バッファ
36 セレクタ
40 半導体メモリ
51 レイテンシ指定アドレス
142,323 アドレス生成部
143 記憶部
144,332 比較部
331 事前取得部
333 送信制御部

Claims (11)

  1. ホスト装置からの要求に応じて半導体メモリにアクセスするメモリコントローラであって、
    前記ホスト装置から受信した読み出しコマンドに応答して最短レイテンシで送信すべきデータを格納する半導体メモリのアドレスであって、前記ホスト装置により保持されるアドレスと同一のレイテンシ指定アドレスを取得するアドレス取得部と、
    前記レイテンシ指定アドレスのデータを前記半導体メモリから読み出してバッファに格納する事前取得部と、
    前記ホスト装置から受信した読み出しコマンドに含まれるアドレスを、前記アドレス取得部により取得されたレイテンシ指定アドレスと比較する比較部と、
    前記比較部による比較結果に基づいて、前記最短レイテンシが終了するタイミングで前記バッファに格納されたデータを前記ホスト装置に送信する送信制御部と、
    を備えるメモリコントローラ。
  2. 請求項1に記載のメモリコントローラであって、
    前記アドレス取得部は、前記送信制御部が前記バッファに格納されたデータを前記ホスト装置へ送信した後に、前記レイテンシ指定アドレスを更新し、
    前記事前取得部は、更新されたレイテンシ指定アドレスのデータを前記半導体メモリから読み出し、前記バッファに格納されたデータを前記更新されたレイテンシ指定アドレスのデータで更新するメモリコントローラ。
  3. 請求項1に記載のメモリコントローラであって、
    前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスと一致すると前記比較部により判断された場合、前記送信制御部は、前記最短レイテンシが終了するタイミングで前記バッファに格納されたデータを前記ホスト装置に送信するメモリコントローラ。
  4. 請求項1ないし請求項3のいずれかに記載のメモリコントローラであって、
    前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスと一致しないと前記比較部により判断された場合、前記読み出しコマンドに含まれるアドレスのデータを前記半導体メモリから読み出し、前記半導体メモリから読み出したデータを送信するメモリコントローラ。
  5. 請求項1ないし請求項4のいずれかに記載のメモリコントローラであって、
    前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスに一致すると前記比較部により判断された場合、前記読み出しコマンドの受け付けを完了した直後に、前記バッファに格納されたデータを送信するメモリコントローラ。
  6. 請求項1ないし請求項4のいずれかに記載のメモリコントローラであって、
    前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスに一致すると前記比較部により判断された場合、1つのビジー信号及び1つのレディ信号の後に続けて前記バッファに格納されたデータを送信するメモリコントローラ。
  7. 請求項1ないし請求項6のいずれかに記載のメモリコントローラであって、
    前記アドレス取得部は、
    前記レイテンシ指定アドレスの生成に用いられる乱数を生成する乱数生成器と、
    所定のアルゴリズムを用いて、前記乱数生成器により生成された乱数から前記レイテンシ指定アドレスを生成するアドレス生成部と、
    を含むメモリコントローラ。
  8. 請求項1ないし請求項6のいずれかに記載のメモリコントローラであって、
    前記アドレス取得部は、前記ホスト装置により生成されたレイテンシ指定アドレスを取得するメモリコントローラ。
  9. ホスト装置と、
    半導体メモリと、
    前記ホスト装置からの要求に応じて前記半導体メモリにアクセスするメモリコントローラと、
    を備え、
    前記メモリコントローラは、
    前記ホスト装置から受信した読み出しコマンドに応答して最短レイテンシで送信すべきデータを格納する半導体メモリのアドレスであるレイテンシ指定アドレスを取得するアドレス取得部と、
    前記レイテンシ指定アドレスのデータを前記半導体メモリから読み出してバッファに格納する事前取得部と、
    前記ホスト装置から受信した読み出しコマンドに含まれるアドレスを、前記アドレス取得部により取得されたレイテンシ指定アドレスと比較する第1比較部と、
    前記第1比較部による比較結果に基づいて、前記最短レイテンシが終了するタイミングで前記バッファに格納されたデータを前記ホスト装置に送信する送信制御部と、
    を備え、
    前記ホスト装置は、
    前記レイテンシ指定アドレスを記憶する記憶部と、
    前記読み出しコマンドを前記メモリコントローラに送信する前に、前記読み出しコマンドに含まれるアドレスを前記記憶部に記憶されたレイテンシ指定アドレスと比較する第2比較部と、
    前記第2比較部による比較結果に基づいて、前記最短レイテンシが終了するタイミングで、前記バッファに格納されたデータを前記メモリコントローラから受信するアクセス制御部と、
    を備えるメモリシステム。
  10. 請求項9に記載のメモリシステムであって、
    前記アクセス制御部は、前記バッファに格納されたデータを前記メモリコントローラから受信してから予め設定された期間が経過するまでに、前記レイテンシ指定アドレスを更新し、
    前記アドレス取得部は、前記送信制御部が前記バッファに格納されたデータを前記ホスト装置へ送信してから前記予め設定された期間が経過するまでに、前記レイテンシ指定アドレスを更新し、
    前記事前取得部は、更新されたレイテンシ指定アドレスのデータを前記半導体メモリから読み出し、前記バッファに格納されたデータを前記更新されたレイテンシ指定アドレスのデータで更新するメモリシステム。
  11. 請求項9又は請求項10に記載のメモリシステムであって、
    前記メモリコントローラは、さらに、
    第1乱数を生成する第1乱数生成器、
    を備え、
    前記ホスト装置は、さらに、
    第2乱数を生成する第2乱数生成器、
    を備え、
    前記アドレス取得部及び前記アクセス制御部の各々は、所定のアルゴリズムを用いて、前記第1乱数と前記第2乱数から、前記レイテンシ指定アドレスを生成するメモリシステム。
JP2015171270A 2015-08-31 2015-08-31 メモリコントローラ Active JP6456799B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015171270A JP6456799B2 (ja) 2015-08-31 2015-08-31 メモリコントローラ
US15/242,713 US20170060460A1 (en) 2015-08-31 2016-08-22 Memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015171270A JP6456799B2 (ja) 2015-08-31 2015-08-31 メモリコントローラ

Publications (2)

Publication Number Publication Date
JP2017049713A true JP2017049713A (ja) 2017-03-09
JP6456799B2 JP6456799B2 (ja) 2019-01-23

Family

ID=58281001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015171270A Active JP6456799B2 (ja) 2015-08-31 2015-08-31 メモリコントローラ

Country Status (1)

Country Link
JP (1) JP6456799B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003173291A (ja) * 2001-12-06 2003-06-20 Canon Inc メモリ制御装置
JP2004318940A (ja) * 2003-04-14 2004-11-11 Renesas Technology Corp 記憶装置
JP2008500668A (ja) * 2004-05-21 2008-01-10 ラムバス・インコーポレーテッド 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003173291A (ja) * 2001-12-06 2003-06-20 Canon Inc メモリ制御装置
JP2004318940A (ja) * 2003-04-14 2004-11-11 Renesas Technology Corp 記憶装置
JP2008500668A (ja) * 2004-05-21 2008-01-10 ラムバス・インコーポレーテッド 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法

Also Published As

Publication number Publication date
JP6456799B2 (ja) 2019-01-23

Similar Documents

Publication Publication Date Title
KR102168984B1 (ko) 보안 디바이스 페어링
US9842212B2 (en) System and method for a renewable secure boot
US10303901B2 (en) Secure processor and a program for a secure processor
JP4795812B2 (ja) セキュアプロセッサ
US20170060460A1 (en) Memory controller
JP6902584B2 (ja) ブートプログラム、情報処理装置、情報処理システム、情報処理方法、半導体装置、およびプログラム
JP2011522469A (ja) 保護されたソフトウエアイメージを有する集積回路及びそのための方法
US11366911B2 (en) Cryptography module and method for operating same
CN107924440B (zh) 用于管理容器的方法、系统和计算机可读介质
CN111931190B (zh) 一种基于xip处理器系统的启动方法
JP6456799B2 (ja) メモリコントローラ
JP5759827B2 (ja) メモリシステム、情報処理装置、メモリ装置、およびメモリシステムの動作方法
JP6462537B2 (ja) メモリコントローラ
JP6246516B2 (ja) 情報処理システム
JP2011181107A (ja) セキュアプロセッサ用プログラム
EP3731127B1 (en) Control system and method thereof for secure manufacturing
US11966748B2 (en) Dynamic boot configuration
JP2021196763A (ja) 電子制御装置、制御方法
JP2011034130A (ja) 情報処理装置、情報処理方法、及びプログラム
US20220398349A1 (en) System on chip including secure processor and semiconductor system including the same
TW202407563A (zh) 基於裝置所有者產生金鑰之sram物理上不可複製的功能記憶體
TW202343231A (zh) 管理電子設備的所有權
KR20230073013A (ko) Etcs와 관련된 보안 방법
JP2014186738A (ja) メモリ制御装置、半導体メモリ装置、メモリシステム及びメモリ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181219

R150 Certificate of patent or registration of utility model

Ref document number: 6456799

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250