JP6456799B2 - Memory controller - Google Patents
Memory controller Download PDFInfo
- Publication number
- JP6456799B2 JP6456799B2 JP2015171270A JP2015171270A JP6456799B2 JP 6456799 B2 JP6456799 B2 JP 6456799B2 JP 2015171270 A JP2015171270 A JP 2015171270A JP 2015171270 A JP2015171270 A JP 2015171270A JP 6456799 B2 JP6456799 B2 JP 6456799B2
- 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.)
- Active
Links
- 239000004065 semiconductor Substances 0.000 claims description 105
- 230000005540 biological transmission Effects 0.000 claims description 66
- 239000000872 buffer Substances 0.000 claims description 44
- 230000004044 response Effects 0.000 claims description 24
- 238000010586 diagram Methods 0.000 description 22
- 238000000034 method Methods 0.000 description 22
- 238000004519 manufacturing process Methods 0.000 description 11
- 239000000284 extract Substances 0.000 description 4
- 230000004913 activation Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Description
本発明は、ホスト装置からの要求に応じて半導体メモリにアクセスするメモリコントローラに関する。 The present invention relates to a memory controller that accesses a semiconductor memory in response to a request from a host device.
半導体記憶装置は、メモリコントローラと、NANDフラッシュメモリなどの半導体メモリとを備える。メモリコントローラは、データの読み出し指示、あるいはデータの書き込み指示等をホスト装置から受け付けた場合、ホスト装置の指示に応じて半導体メモリに対するアクセスを制御する。 The semiconductor memory device includes a memory controller and a semiconductor memory such as a NAND flash memory. When receiving a data read instruction or a data write instruction from the host device, the memory controller controls access to the semiconductor memory in accordance with the instruction from the host device.
半導体メモリに記憶されているコンテンツ等のデータのセキュリティを確保するために、認証や、データの暗号化などの様々な対策が従来から施されている。認証を用いる場合、ホスト装置及びメモリコントローラは、互いの正当性を確認した後に、半導体メモリに記憶されたデータの読み出しを行う。暗号化を用いる場合、メモリコントローラは、半導体メモリから読み出したデータを暗号化してホスト装置に送信する。あるいは、メモリコントローラは、データを暗号化して半導体メモリに書き込み、半導体メモリから読み出した暗号化データを復号してホスト装置に送信する。 Conventionally, various measures such as authentication and data encryption have been taken in order to ensure the security of data such as contents stored in a semiconductor memory. In the case of using authentication, the host device and the memory controller read data stored in the semiconductor memory after confirming the validity of each other. When encryption is used, the memory controller encrypts data read from the semiconductor memory and transmits the encrypted data to the host device. Alternatively, the memory controller encrypts the data, writes it to the semiconductor memory, decrypts the encrypted data read from the semiconductor memory, and transmits it to the host device.
特許文献1には、メモリセルから読み出したデータを外部に出力する際に、読み出したデータを暗号化する半導体メモリ装置が開示されている。半導体メモリ装置は、外部から読み出しコマンドを受け付けた場合、読み出しコマンドで指定されたアドレスのデータをメモリセルから読み出す。半導体メモリ装置は、内部に実装された論理回路を用いて、読み出したデータと、読み出しコマンドで指定されたアドレスとの排他的論理和をとることにより、読み出したデータを暗号化する。半導体メモリ装置は、暗号化されたデータを読み出しコマンドの応答として出力する。
特許文献1に係る半導体メモリ装置のように暗号化を用いる場合、暗号鍵が悪意のある第三者により窃取されるおそれがある。暗号鍵が窃取された場合、半導体メモリ装置に記憶されたデータのセキュリティが無効化される。また、認証によりセキュリティを確保する場合であっても、認証に用いられるパスワードなどが窃取されることにより、半導体メモリに記憶されたデータのセキュリティが無効化される。
When encryption is used as in the semiconductor memory device according to
第三者が半導体記憶装置のアクセスに用いられる暗号鍵やパスワードを窃取することに成功した場合、第三者は、半導体メモリに記憶されたデータを全て読み出すことが可能となるため、半導体メモリに記憶されたデータの複製を容易に作成することが可能となる。この結果、半導体記憶装置の違法な複製品が市場に流通するという問題がある。 If a third party succeeds in stealing the encryption key or password used to access the semiconductor memory device, the third party can read all the data stored in the semiconductor memory. It is possible to easily create a copy of stored data. As a result, there is a problem that illegal copies of semiconductor memory devices are distributed in the market.
本発明の目的は、半導体記憶装置の違法な複製品を製造することを困難にする技術を提供することである。 An object of the present invention is to provide a technique that makes it difficult to manufacture an illegal duplicate of a semiconductor memory device.
上記課題を解決するため、請求項1記載の発明は、ホスト装置からの要求に応じて半導体メモリにアクセスするメモリコントローラであって、前記ホスト装置から受信した読み出しコマンドに応答して最短レイテンシで送信すべきデータを格納する半導体メモリのアドレスであって、前記ホスト装置により保持されるアドレスと同一のレイテンシ指定アドレスを取得するアドレス取得部と、前記レイテンシ指定アドレスのデータを前記半導体メモリから読み出してバッファに格納する事前取得部と、前記ホスト装置から受信した読み出しコマンドに含まれるアドレスを、前記アドレス取得部により取得されたレイテンシ指定アドレスと比較する比較部と、前記比較部による比較結果に基づいて、前記最短レイテンシが終了するタイミングで前記バッファに格納されたデータを前記ホスト装置に送信する送信制御部と、を備える。
In order to solve the above-described problem, the invention described in
請求項2記載の発明は、請求項1に記載のメモリコントローラであって、前記アドレス取得部は、前記送信制御部が前記バッファに格納されたデータを前記ホスト装置へ出力した後に、前記レイテンシ指定アドレスを更新し、前記事前取得部は、更新されたレイテンシ指定アドレスのデータを前記半導体メモリから読み出し、前記バッファに格納されたデータを前記更新されたレイテンシ指定アドレスのデータで更新する。 According to a second aspect of the present invention, in the memory controller according to the first aspect, the address acquisition unit specifies the latency after the transmission control unit outputs the data stored in the buffer to the host device. The address is updated, and the pre-acquisition unit reads the updated latency designation address data from the semiconductor memory, and updates the data stored in the buffer with the updated latency designation address data.
請求項3記載の発明は、請求項1に記載のメモリコントローラであって、前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスと一致すると前記比較部により判断された場合、前記送信制御部は、前記最短レイテンシが終了するタイミングで前記バッファに格納されたデータを前記ホスト装置に送信する。
The invention according to claim 3 is the memory controller according to
請求項4記載の発明は、請求項1ないし請求項3のいずれかに記載のメモリコントローラであって、前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスと一致しないと前記比較部により判断された場合、前記読み出しコマンドに含まれるアドレスのデータを前記半導体メモリから読み出し、前記半導体メモリから読み出したデータを送信する。 According to a fourth aspect of the present invention, in the memory controller according to any one of the first to third aspects, the transmission control unit is configured so that the address included in the read command does not match the latency designation address. When judged by the comparison unit, the address data included in the read command is read from the semiconductor memory, and the data read from the semiconductor memory is transmitted.
請求項5記載の発明は、請求項1ないし請求項4のいずれかに記載のメモリコントローラであって、前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスに一致すると前記比較部により判断された場合、前記読み出しコマンドの受け付けを完了した直後に、前記バッファに格納されたデータを送信する。 A fifth aspect of the present invention is the memory controller according to any one of the first to fourth aspects, wherein the transmission control unit compares the address when the address included in the read command matches the latency designation address. If it is determined by the unit, the data stored in the buffer is transmitted immediately after the reception of the read command is completed.
請求項6記載の発明は、請求項1ないし請求項4のいずれかに記載のメモリコントローラであって、前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスに一致すると前記比較部により判断された場合、1つのビジー信号及び1つのレディ信号の後に続けて前記バッファに格納されたデータを送信する。 A sixth aspect of the present invention is the memory controller according to any one of the first to fourth aspects, wherein the transmission control unit compares the address when the address included in the read command matches the latency designation address. If it is determined by the unit, the data stored in the buffer is transmitted after one busy signal and one ready signal.
請求項7記載の発明は、請求項1ないし請求項6のいずれかに記載のメモリコントローラであって、前記アドレス取得部は、前記レイテンシ指定アドレスの生成に用いられる乱数を生成する乱数生成器と、所定のアルゴリズムを用いて、前記乱数生成器により生成された乱数から前記レイテンシ指定アドレスを生成するアドレス生成部と、を含む。 A seventh aspect of the present invention is the memory controller according to any one of the first to sixth aspects, wherein the address acquisition unit includes a random number generator that generates a random number used for generating the latency designation address. And an address generation unit that generates the latency designation address from the random number generated by the random number generator using a predetermined algorithm.
請求項8記載の発明は、請求項1ないし請求項6のいずれかに記載のメモリコントローラであって、前記アドレス取得部は、前記ホスト装置により生成されたレイテンシ指定アドレスを取得する。
The invention according to claim 8 is the memory controller according to any one of
請求項9記載の発明は、メモリシステムであって、ホスト装置と、半導体メモリと、前記ホスト装置からの要求に応じて前記半導体メモリにアクセスするメモリコントローラと、を備え、前記メモリコントローラは、前記ホスト装置から受信した読み出しコマンドに応答して最短レイテンシで送信すべきデータを格納する半導体メモリのアドレスであるレイテンシ指定アドレスを取得するアドレス取得部と、前記レイテンシ指定アドレスのデータを前記半導体メモリから読み出してバッファに格納する事前取得部と、前記ホスト装置から受信した読み出しコマンドに含まれるアドレスを、前記アドレス取得部により取得されたレイテンシ指定アドレスと比較する第1比較部と、前記第1比較部による比較結果に基づいて、前記最短レイテンシが終了するタイミングで前記バッファに格納されたデータを前記ホスト装置に送信する送信制御部と、を備え、前記ホスト装置は、前記レイテンシ指定アドレスを記憶する記憶部と、前記読み出しコマンドをメモリコントローラに送信する前に、前記読み出しコマンドに含まれるアドレスを前記レイテンシ指定アドレスと比較する第2比較部と、前記第2比較部による比較結果に基づいて、前記最短レイテンシが終了するタイミングで、前記バッファに格納されたデータを前記メモリコントローラから受信するアクセス制御部と、を備える。 The invention according to claim 9 is a memory system, comprising: a host device; a semiconductor memory; and a memory controller that accesses the semiconductor memory in response to a request from the host device. In response to a read command received from the host device, an address acquisition unit that acquires a latency designation address that is an address of a semiconductor memory that stores data to be transmitted with the shortest latency, and reads data at the latency designation address from the semiconductor memory A pre-acquisition unit stored in the buffer, a first comparison unit that compares an address included in a read command received from the host device with a latency designation address acquired by the address acquisition unit, and a first comparison unit Based on the comparison result, the shortest latency is A transmission control unit that transmits the data stored in the buffer to the host device at a timing of termination, the host device transmitting the read command to the memory controller, and a storage unit that stores the latency designation address Before the address is stored in the buffer at the timing when the shortest latency ends based on a comparison result by the second comparison unit that compares the address included in the read command with the latency designation address and the comparison result by the second comparison unit. An access control unit for receiving the received data from the memory controller.
請求項10記載の発明は、請求項9に記載のメモリシステムであって、前記アクセス制御部は、前記バッファに格納されたデータを前記メモリコントローラから受信してから予め設定された期間が経過するまでに、前記レイテンシ指定アドレスを更新し、前記アドレス取得部は、前記送信制御部が前記バッファに格納されたデータを前記ホスト装置へ送信してから前記予め設定された期間が経過するまでに、前記レイテンシ指定アドレスを更新し、前記事前取得部は、更新されたレイテンシ指定アドレスのデータを前記半導体メモリから読み出し、前記バッファに格納されたデータを前記更新されたレイテンシ指定アドレスのデータで更新する。 A tenth aspect of the present invention is the memory system according to the ninth aspect, wherein the access control unit receives a preset period after receiving the data stored in the buffer from the memory controller. The latency designation address is updated by the time until the address acquisition unit transmits the data stored in the buffer to the host device until the preset period elapses. The latency designation address is updated, and the pre-acquisition unit reads the updated latency designation address data from the semiconductor memory, and updates the data stored in the buffer with the updated latency designation address data. .
請求項11記載の発明は、請求項9又は請求項10に記載のメモリシステムであって、前記メモリコントローラは、さらに、第1乱数を生成する第1乱数生成器、を備え、前記ホスト装置は、さらに、第2乱数を生成する第2乱数生成器、を備え、前記アドレス取得部及び前記アクセス制御部の各々は、所定のアルゴリズムを用いて、前記第1乱数と前記第2乱数から、前記レイテンシ指定アドレスを生成する。
The invention according to claim 11 is the memory system according to claim 9 or
本発明に係るメモリコントローラは、読み出しコマンドに含まれるアドレスをレイテンシ指定アドレスと比較した結果に基づいて、バッファに格納されたレイテンシ指定アドレスのデータを、最短レイテンシでホスト装置に送信する。一方、第三者は、レイテンシ指定アドレスを特定することができないため、第三者により違法に複製された半導体記憶装置におけるメモリコントローラは、レイテンシ指定アドレスのデータを最短レイテンシでホスト装置に送信することができない。つまり、違法に複製された半導体記憶装置のメモリコントローラは、本発明に係るメモリコントローラと同一の動作をすることができない。従って、半導体記憶装置の違法な複製品の製造を困難にすることができる。 The memory controller according to the present invention transmits the data of the latency designated address stored in the buffer to the host device with the shortest latency based on the result of comparing the address included in the read command with the latency designated address. On the other hand, since the third party cannot specify the latency designated address, the memory controller in the semiconductor storage device illegally copied by the third party must transmit the data of the latency designated address to the host device with the shortest latency. I can't. That is, the memory controller of the semiconductor memory device illegally copied cannot perform the same operation as the memory controller according to the present invention. Accordingly, it is possible to make it difficult to manufacture illegally copied semiconductor memory devices.
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In the drawings, the same or corresponding parts are denoted by the same reference numerals and description thereof will not be repeated.
{1.メモリシステムの構成}
{1.1.全体構成}
図1は、本発明の実施の形態に係るメモリシステム100の構成を示す機能ブロック図である。図1に示すように、メモリシステム100は、ホスト装置10と、半導体記憶装置20とを備える。半導体記憶装置20は、メモリコントローラ30と、半導体メモリ40とを備える。
{1. Memory system configuration}
{1.1. overall structure}
FIG. 1 is a functional block diagram showing a configuration of a
メモリコントローラ30は、ホスト装置10からの要求に応じて、半導体メモリ40にアクセスする。
The
半導体メモリ40は、不揮発性であり、例えば、NANDフラッシュメモリである。半導体メモリ40は、ホスト装置10により使用されるプログラム41及びコンテンツデータ42を記憶する。プログラム41は、コンテンツデータ42を使用するためのプログラムである。
The
{1.2.ホスト装置10の構成}
図2は、図1に示すホスト装置10の構成を示す機能ブロック図である。図2に示すように、ホスト装置10は、CPU(Central Processing Unit)11と、RAM(Random Access Memory)12と、乱数生成器13と、ホスト側コントローラ14とを備える。CPU11と、RAM12と、乱数生成器13と、ホスト側コントローラ14とは、バスを介して接続される。
{1.2. Configuration of Host Device 10}
FIG. 2 is a functional block diagram showing the configuration of the
CPU11は、RAM12にロードされたプログラムを実行して、ホスト装置10の動作を制御する。RAM12は、ホスト装置10のメインメモリである。
The CPU 11 executes a program loaded on the
乱数生成器13は、真性乱数を生成する。乱数生成器13は、レイテンシ指定アドレス51の生成に用いられる乱数13Aを生成する。レイテンシ指定アドレス51は、半導体メモリ40のアドレスのうち、メモリコントローラ30が読み出しコマンドを受け付けた場合に最短レイテンシで送信すべきデータを格納するアドレスである。レイテンシ指定アドレス51は、アクセス制御部141により保持される。レイテンシ指定アドレス51の詳細は、後述する。
The
ホスト側コントローラ14は、CPU11の指示に応じて、ホスト装置10による半導体記憶装置20に対するアクセスを制御する。ホスト側コントローラ14は、アクセス制御部141と、アドレス生成部142と、記憶部143と、比較部144とを備える。
The host-
アクセス制御部141は、CPU11の指示に基づくコマンドをメモリコントローラ30に送信し、送信したコマンドに対する応答を受信する。比較部144は、読み出しコマンドに含まれるアドレスをレイテンシ指定アドレス51と比較する。
The
アドレス生成部142は、記憶部143に格納された乱数13A及び乱数35Aからレイテンシ指定アドレス51を生成する。乱数35Aは、後述するように、メモリコントローラ30により生成される。
The
記憶部143は、例えば、レジスタであり、乱数生成器13により生成された乱数13Aと、メモリコントローラ30により生成された乱数35Aとを格納する。
The
{1.3.メモリコントローラ30の構成}
図3は、図1に示す半導体記憶装置20の構成を示す機能ブロック図である。図3に示すように、メモリコントローラ30は、コマンドデコーダ31と、アドレス取得部32と、アクセス制御部33と、バッファ34と、乱数生成器35と、セレクタ36とを備える。
{1.3. Configuration of Memory Controller 30}
FIG. 3 is a functional block diagram showing a configuration of the
メモリコントローラ30は、ホスト側コントローラ14と接続される。図3において、メモリコントローラ30におけるホスト装置10とのインタフェース回路(ホストI/F)及び半導体メモリ40とのインタフェース回路(メモリI/F)の表示を省略している。
The
コマンドデコーダ31は、ホスト側コントローラ14から送信されるコマンドを取得し、取得したコマンドをデコードする。例えば、コマンドデコーダ31は、読み出しコマンドを受信した場合、読み出しコマンドをデコードし、読み出しコマンドからアドレスを抽出する。コマンドデコーダ31は、読み出し指示及び抽出したアドレスをアクセス制御部33に出力する。以下、読み出しコマンドに含まれるアドレスを「読み出しアドレス」と記載する。
The
アドレス取得部32は、レイテンシ指定アドレス51を取得する。アドレス取得部32は、レジスタ321と、レジスタ322と、アドレス生成部323とを備える。
The
レジスタ321は、乱数生成器13(図2参照)により生成された乱数13Aを格納する。レジスタ322は、乱数生成器35により生成された乱数35Aを格納する。アドレス生成部323は、レジスタ321に格納された乱数13Aとレジスタ322に格納された乱数35Aからレイテンシ指定アドレス51を生成する。アドレス生成部323と、ホスト装置10のアドレス生成部142とは、同一のレイテンシ指定アドレス51を生成する。
The
アクセス制御部33は、ホスト装置10からの読み出しコマンドに応じて、半導体メモリ40から読み出されたデータをホスト側コントローラ14に送信する。アクセス制御部33は、事前取得部331と、比較部332と、送信制御部333とを備える。
The
事前取得部331は、アドレス取得部32により取得されたレイテンシ指定アドレス51のデータの読み出しを半導体メモリ40に指示し、半導体メモリ40から読み出されたレイテンシ指定アドレス51のデータをバッファ34に格納させる。
The
比較部332は、読み出しアドレスをアドレス取得部32により生成されたレイテンシ指定アドレス51と比較する。比較部332は、比較結果を送信制御部333に出力する。
The
送信制御部333は、比較部332による比較結果に応じて、半導体メモリ40又はバッファ34から読み出しアドレスのデータを読み出してホスト側コントローラ14に送信する。具体的には、送信制御部333は、読み出しアドレスがレイテンシ指定アドレス51に一致する場合、レイテンシがゼロとなるタイミングで、バッファ34に格納されたデータを読み出しコマンドの応答としてホスト装置10に出力する。送信制御部333は、読み出しアドレスがレイテンシ指定アドレス51と一致しない場合、読み出しアドレスのデータの読み出しを半導体メモリ40に指示する。送信制御部333は、半導体メモリ40から読み出されたデータを、読み出しコマンドの応答としてホスト装置10に出力する。
The
バッファ34は、事前取得部331の指示に応じて半導体メモリ40から読み出されたデータを格納する。バッファ34に格納されるデータは、半導体メモリ40におけるレイテンシ指定アドレス51のデータである。
The
乱数生成器35は、乱数35Aを生成する。乱数35Aは、レイテンシ指定アドレス51の決定に用いられる。乱数生成器35は、真性乱数を生成する。従って、乱数生成器35により生成される乱数35Aは、乱数生成器13により生成される乱数13Aと異なる。
The
セレクタ36は、バッファ34に格納されたデータ、乱数生成器35により生成された乱数35A、及び送信制御部333の指示に応じて半導体メモリ40から読み出されたデータのいずれかを送信制御部333に出力する。セレクタ36の動作は、送信制御部333により決定される。
The
{1.4.半導体メモリ40の構成}
図4は、図1に示す半導体メモリ40の構成を示す機能ブロック図である。図4に示すように、半導体メモリ40は、1枚のダイで構成される。ダイは、J個のブロックを含む。ブロックは、N個のページを含む。J及びNは、いずれも1以上の自然数である。ブロックは、半導体メモリ40におけるデータの消去単位である。ページは、半導体メモリ40におけるデータの読み出し単位及び書き込み単位である。
{1.4. Configuration of Semiconductor Memory 40}
FIG. 4 is a functional block diagram showing a configuration of the
半導体メモリ40において、ブロック40Bは、ページP−1〜P−Nにより構成される。プログラム41A〜41Cが、ページP−1〜P−3に格納されている。プログラム41A〜41Cは、図1に示すプログラム41を構成する。プログラム41A〜41Cは、プログラム41をページに格納可能なデータサイズで区分することにより生成される。従って、プログラム41A〜41Cを個別に実行することはできない。コンテンツデータ42は、ページP−Nに格納される。
In the
{2.メモリシステムの動作}
以下、メモリシステム100の動作について説明する。なお、メモリコントローラ30において実行される論理アドレスから物理アドレスへの変換処理についての説明を省略する。
{2. Operation of memory system}
Hereinafter, the operation of the
{2.1.概略}
レイテンシ指定アドレス51は、ホスト装置10の電源がオンにされたときに、ホスト装置10及びメモリコントローラ30で生成される。レイテンシ指定アドレス51は、乱数13A及び乱数35Aから生成されるため、ランダムな値を有する。また、レイテンシ指定アドレス51は、メモリコントローラ30がレイテンシ指定アドレス51のデータをホスト装置10に送信した後に更新される。
{2.1. Outline}
The
メモリコントローラ30は、読み出しコマンドをホスト装置10から受信した場合、読み出しアドレスをレイテンシ指定アドレス51と比較する。メモリコントローラ30は、その比較結果に応じて、固定レイテンシ処理及び可変レイテンシ処理のいずれか一方を実行する。
When the
可変レイテンシ処理は、通常の読み出し処理であり、読み出しアドレスがレイテンシ指定アドレス51以外のアドレスである場合に実行される。メモリコントローラ30は、読み出しアドレスのデータを半導体メモリ40から読み出し、読み出したデータをホスト装置10に送信する。
The variable latency process is a normal read process, and is executed when the read address is an address other than the
可変レイテンシ処理を実行する場合、一定時間以上のレイテンシが発生する。レイテンシは、メモリコントローラ30が読み出しコマンドの受け付けを完了してから読み出しアドレスのデータをホスト装置10に出力するまでに要する時間である。半導体メモリ40からデータを読み出すために要する時間は、半導体メモリ40の性能や、読み出しアドレスなどによって変化する。
When variable latency processing is executed, latency of a certain time or longer occurs. Latency is the time required from when the
一方、固定レイテンシ処理は、読み出しアドレスがレイテンシ指定アドレス51に一致する場合に実行される。固定レイテンシ処理は、バッファ34に格納されているデータを読み出しコマンドの応答として出力する。詳細については後述するが、固定レイテンシ処理を実行することにより、レイテンシをゼロとすることができる。
On the other hand, the fixed latency process is executed when the read address matches the
このように、メモリコントローラ30は、レイテンシ指定アドレス51を含む読み出しコマンドを受信した場合、レイテンシがゼロとなるタイミングで、レイテンシ指定アドレス51のデータをホスト装置10に送信する。レイテンシ指定アドレス51は、ランダムな値を有するため、第三者は、レイテンシ指定アドレス51を特定することができない。従って、半導体記憶装置20の違法な複製品が第三者により製造されたとしても、複製品におけるメモリコントローラは、レイテンシ指定アドレス51を含む読み出しコマンドを受信した場合、レイテンシ指定アドレス51のデータをレイテンシがゼロとなるタイミングでホスト装置10に送信することができない。複製品のメモリコントローラは、メモリコントローラ30と同一の動作をすることができないため、半導体記憶装置20の違法な複製品の製造を困難とすることができる。以下、半導体記憶装置20の違法な複製品を、単に「複製品」と記載する。
As described above, when the
{2.2.レイテンシ指定アドレス51の決定}
図5は、レイテンシ指定アドレス51を決定するときにおけるホスト装置10及びメモリコントローラ30の動作を示すシーケンス図である。図5に示すシーケンス図は、ホスト装置10の電源がオンされたときに開始される。
{2.2. Determination of latency designation address 51}
FIG. 5 is a sequence diagram showing operations of the
最初に、ホスト装置10の動作を説明する。ホスト装置10の電源がオンされた場合、CPU11は、乱数生成器13に乱数13Aの生成を指示する。乱数生成器13は、CPU11の指示に応じて、乱数13Aを生成する(ステップS111)。生成された乱数13Aは、CPU11及びホスト側コントローラ14へ出力される。
First, the operation of the
ホスト側コントローラ14において、アクセス制御部141は、乱数生成器13から入力された乱数13Aを記憶部143に格納する(ステップS112)。
In the host-
CPU11は、乱数交換コマンドを生成する(ステップS113)。CPU11は、乱数生成器13から出力された乱数13Aを乱数交換コマンドにセットする。乱数交換コマンドは、乱数13Aをメモリコントローラ30へ送信し、メモリコントローラ30で生成される乱数35Aの送信を要求するコマンドである。
The CPU 11 generates a random number exchange command (step S113). The CPU 11 sets the
アクセス制御部141は、乱数13Aがセットされた乱数交換コマンドをCPU11から取得する。ホスト側コントローラ14は、取得した乱数交換コマンドをメモリコントローラ30へ送信する(ステップS114)。アクセス制御部141は、乱数交換コマンドの応答を受信するまで待機する。
The
次に、メモリコントローラ30の動作について説明する。メモリコントローラ30は、ホスト装置10の電源オンに応じて起動する。メモリコントローラ30において、乱数生成器35は、乱数35Aを生成する(ステップS211)。乱数生成器13及び35は、真性乱数を生成する。従って、メモリシステム100の起動直後に生成される乱数13A及び35Aは、互いに異なる値である。
Next, the operation of the
乱数35Aは、レジスタ322に記憶される(ステップS212)。具体的には、送信制御部333は、メモリコントローラ30の起動直後に、乱数35Aの出力を指示するセレクト信号54をセレクタ36に出力する。セレクタ36は、送信制御部333から出力されたセレクト信号54に応じて、入力を乱数生成器35に切り替える。これにより、送信制御部333は、乱数35Aを乱数生成器35から取得する。送信制御部333は、取得した乱数35Aをレジスタ322に出力する。レジスタ322は、送信制御部333から出力された乱数35Aを記憶する。
The
メモリコントローラ30は、ステップS114によりホスト側コントローラ14から送信された乱数交換コマンドを受信する。メモリコントローラ30は、受信した乱数交換コマンドにセットされた乱数13Aをレジスタ321に記憶する(ステップS213)。具体的には、コマンドデコーダ31は、受信した乱数交換コマンドをデコードして、ホスト装置10が乱数の交換を要求していると判断する。コマンドデコーダ31は、乱数交換コマンドにセットされた乱数13Aを抽出してレジスタ321に出力する。レジスタ321は、コマンドデコーダ31から出力された乱数13Aを記憶する。
The
メモリコントローラ30は、乱数生成器35により生成された乱数35Aを、受信した乱数交換コマンドの応答としてホスト装置10に送信する(ステップS214)。具体的には、コマンドデコーダ31は、乱数交換コマンドを受信したことを送信制御部333に通知する。送信制御部333は、コマンドデコーダ31からの通知に応じて、乱数生成器35から取得した乱数35Aを、乱数交換コマンドの応答として送信する。
The
アドレス取得部32は、レイテンシ指定アドレス51を生成する(ステップS215)。具体的には、アドレス生成部323は、予め設定されたアルゴリズムを用いて、レジスタ321に記憶された乱数13Aとレジスタ322に記憶された乱数35Aから、レイテンシ指定アドレス51を生成する。アルゴリズムは、特に限定されないが、例えば、擬似乱数生成アルゴリズム、HMAC(Hash-based Message Authentication Code)などを用いることができる。
The
メモリコントローラ30は、レイテンシ指定アドレス51のデータを半導体メモリ40から読み出す(ステップS216)。具体的には、アドレス生成部323は、生成したレイテンシ指定アドレス51を事前取得部331に出力する。事前取得部331は、レイテンシ指定アドレス51を半導体メモリ40に出力して、レイテンシ指定アドレス51のデータの読み出しを半導体メモリ40に指示する。半導体メモリ40は、事前取得部331の指示に応じて、レイテンシ指定アドレス51のデータを読み出す。半導体メモリ40から読み出されたレイテンシ指定アドレス51のデータは、バッファ34に格納される(ステップS217)。これにより、メモリシステム100の起動時におけるメモリコントローラ30の処理は終了する。
The
ホスト装置10において、アクセス制御部141は、乱数交換コマンドの応答として乱数35Aを受信する。アクセス制御部141は、受信した乱数35Aを記憶部143に格納する(ステップS115)。
In the
アドレス生成部142は、記憶部143に記憶された乱数13A及び35Aからレイテンシ指定アドレス51を生成する(ステップS116)。アドレス生成部142がレイテンシ指定アドレス51の生成に用いるアルゴリズムは、メモリコントローラ30のアドレス生成部323が用いるアルゴリズムと同じである。従って、アドレス生成部142により生成されるレイテンシ指定アドレス51は、メモリコントローラ30のアドレス生成部323により生成されるレイテンシ指定アドレス51と同一である。
The
{2.3.可変レイテンシ処理}
図6は、ホスト装置10がレイテンシ指定アドレス51以外のアドレスを含む読み出しコマンドを送信するときのホスト装置10及びメモリコントローラ30の動作を示すシーケンス図である。以下、レイテンシ指定アドレス51以外のアドレスを「通常アドレス」と記載する。
{2.3. Variable latency processing}
FIG. 6 is a sequence diagram illustrating operations of the
ホスト装置10は、ステップS311〜S314を実行して、通常アドレスを含む読み出しコマンドをメモリコントローラ30に送信する。ホスト装置10において、CPU11は、読み出しコマンドを生成し、生成した読み出しコマンドに読み出しアドレスをセットする。図6に示す例では、セットされる読み出しアドレスは、通常アドレスである。これにより、通常アドレスを含む読み出しコマンドが生成される(ステップS311)。
The
CPU11は、生成した読み出しコマンドをアクセス制御部141に出力する。比較部144は、レイテンシ指定アドレス51と、読み出しコマンドに含まれる読み出しアドレスとをアクセス制御部141から入力し、読み出しアドレスを、レイテンシ指定アドレス51と比較する(ステップS312)。
The CPU 11 outputs the generated read command to the
図6に示す例では、読み出しアドレスとして通常アドレスが読み出しコマンドにセットされているので、比較部144は、比較対象の2つのアドレスが一致しないと判断し、比較結果をアクセス制御部141に通知する。比較部144からの通知に基づいて、アクセス制御部141は、読み出しコマンドをメモリコントローラ30に送信した場合、メモリコントローラ30が可変レイテンシ処理を実行すると判断する。アクセス制御部141は、可変レイテンシ処理用のアクセス制御の開始を決定する(ステップS313)。
In the example shown in FIG. 6, since the normal address is set as the read address in the read command, the
アクセス制御部141は、CPU11から供給された読み出しコマンドをメモリコントローラ30に送信する(ステップS314)。アクセス制御部141は、可変レイテンシ処理用のアクセス制御を開始する。具体的には、アクセス制御部141は、メモリコントローラ30から送信されるレディ信号を受信するまで待機する(ステップS315)。
The
メモリコントローラ30において、コマンドデコーダ31は、ステップS314によりホスト装置10から送信された読み出しコマンドを受信する。コマンドデコーダ31は、受信した読み出しコマンドをデコードする。その結果、コマンドデコーダ31は、ホスト装置10により読み出しが指示されたと判断し、受信した読み出しコマンドから読み出しアドレスを抽出する(ステップS411)。
In the
コマンドデコーダ31は、デコード結果(読み出し指示及び抽出した読み出しアドレス)を比較部332及び送信制御部333に出力する。比較部332は、コマンドデコーダ31から取得した読み出しアドレスをレイテンシ指定アドレス51と比較する(ステップS412)。図6に示す例では、読み出しアドレスとして通常アドレスが読み出しコマンドにセットされているので、比較部332は、読み出しアドレスがレイテンシ指定アドレス51と一致しないことを送信制御部333に通知する。送信制御部333は、比較部332からの通知に基づいて、読み出しアドレスのデータを半導体メモリ40から読み出す可変レイテンシ処理の実行を決定する(ステップS413)。可変レイテンシ処理は、ステップS414〜S418の処理に相当する。
The
送信制御部333は、ホスト装置10に対するビジー信号の送信を開始する(ステップS414)。また、送信制御部333は、読み出しアドレスのデータの読み出しを指示するアクセス制御信号を半導体メモリ40に出力する(ステップS415)。送信制御部333は、読み出しアドレスのデータを半導体メモリ40から読み出すことができるように、セレクタ36にセレクト信号54を送信する。
The
送信制御部333は、ビジー信号の送信を継続しながら、半導体メモリ40からレイテンシ信号が出力されるまで待機する。レイテンシ信号は、半導体メモリ40から読み出しアドレスのデータを読み出すことが可能になったことを通知する信号である。送信制御部333は、レイテンシ信号を検出した場合(ステップS416)、ホスト装置10にレディ信号を送信する(ステップS417)。送信制御部333は、半導体メモリ40から読み出しアドレスのデータを読み出す。送信制御部333は、レディ信号の後に続けて、読み出しアドレスのデータをホスト装置10に送信する(ステップS418)。
The
ホスト装置10において、アクセス制御部141は、レディ信号がメモリコントローラ30から送信された場合、読み出しアドレスのデータの送信が開始されると判断する。アクセス制御部141は、レディ信号の後に送信されるデータを読み出しアドレスのデータとして受信する。アクセス制御部141は、読み出しアドレスのデータをCPU11に供給する。CPU11は、読み出しアドレスのデータを用いた処理を実行する。
In the
{2.4.固定レイテンシ処理}
図7は、ホスト装置10がレイテンシ指定アドレス51を含む読み出しコマンドを送信するときのホスト装置10及びメモリコントローラ30の動作を示すシーケンス図である。
{2.4. Fixed latency processing}
FIG. 7 is a sequence diagram illustrating operations of the
図7に示すように、ホスト装置10は、ステップS511〜S513を実行して、レイテンシ指定アドレス51を含む読み出しコマンドをメモリコントローラ30に送信する。具体的には、CPU11は、読み出しコマンドを生成し、生成した読み出しコマンドに読み出しアドレスをセットする。図7に示す例では、読み出しアドレスとしてレイテンシ指定アドレス51が読み出しコマンドにセットされる。これにより、レイテンシ指定アドレス51を含む読み出しコマンドが生成される(ステップS511)。
As illustrated in FIG. 7, the
CPU11は、生成した読み出しコマンドをアクセス制御部141に出力する。比較部144は、レイテンシ指定アドレス51と、読み出しコマンドに含まれる読み出しアドレスとをアクセス制御部141から入力し、読み出しアドレスをレイテンシ指定アドレス51と比較する(ステップS512)。
The CPU 11 outputs the generated read command to the
図7に示す例では、読み出しアドレスとしてレイテンシ指定アドレス51が読み出しコマンドにセットされているので、比較部144は、比較対象の2つのアドレスが一致すると判断し、比較結果をアクセス制御部141に通知する。比較部144からの通知に基づいて、アクセス制御部141は、読み出しコマンドをメモリコントローラ30に送信した場合、メモリコントローラ30が固定レイテンシ処理を実行すると判断する。アクセス制御部141は、固定レイテンシ処理用のアクセス制御を開始する(ステップS513)。固定レイテンシ処理用のアクセス制御については、後述する。
In the example shown in FIG. 7, since the
アクセス制御部141は、CPU11から供給された読み出しコマンドをメモリコントローラ30に送信する(ステップS514)。
The
メモリコントローラ30は、ステップS514によりホスト装置10から送信された読み出しコマンドを受信した場合、ステップS611〜S615を実行して、レイテンシ指定アドレス51のデータをホスト装置10に送信する。
When the
具体的には、コマンドデコーダ31は、読み出しコマンドをデコードする。デコードの結果、コマンドデコーダ31は、ホスト装置10から読み出しが指示されたと判断し、読み出しコマンドから読み出しアドレスを抽出する(ステップS611)。コマンドデコーダ31は、デコード結果(読み出し指示及び抽出した読み出しアドレス)を比較部332及び送信制御部333に出力する。
Specifically, the
比較部332は、コマンドデコーダ31から出力された読み出しアドレスをレイテンシ指定アドレス51と比較する(ステップS612)。図7に示す例では、読み出しアドレスとしてレイテンシ指定アドレス51が読み出しコマンドにセットされている。このため、比較部332は、比較対象の2つのアドレスが一致すると判断し、比較結果を送信制御部333に通知する。送信制御部333は、比較部332からの通知に基づいて、固定レイテンシ処理の実行を決定する(ステップS613)。
The
送信制御部333は、バッファ34との接続を指示するセレクト信号54をセレクタ36に出力し、バッファ34に格納されたレイテンシ指定アドレス51のデータを読み出す(ステップS614)。送信制御部333は、読み出したレイテンシ指定アドレス51のデータをホスト装置10に送信する(ステップS615)。メモリコントローラ30は、読み出しコマンドを受信してからレイテンシ指定アドレス51のデータを送信するまでの間、ビジー信号及びレディ信号を出力しない。レイテンシ指定アドレス51のデータは、メモリコントローラ30が読み出しコマンドを受信した直後に送信される。つまり、メモリコントローラ30は、読み出しコマンドにレイテンシ指定アドレス51が含まれる場合、レイテンシがゼロとなるタイミングでレイテンシ指定アドレス51のデータを送信する。
The
ホスト装置10により実行される固定レイテンシ処理用のアクセス制御について説明する。上述のように、メモリコントローラ30は、固定レイテンシ処理を実行する場合、ビジー信号及びレディ信号を送信することなく、読み出しコマンドの受信直後にレイテンシ指定アドレス51のデータを送信する。このため、アクセス制御部141は、固定レイテンシ処理用のアクセス制御において、レディ信号を受信するまで待機しない。読み出しコマンドの送信を完了したタイミングが、レイテンシがゼロであるタイミングであるため、アクセス制御部141は、読み出しコマンドの送信直後にメモリコントローラ30から受信するデータを、レイテンシ指定アドレス51のデータとして取得する。
The access control for fixed latency processing executed by the
以下、固定レイテンシ処理において、メモリコントローラ30が、読み出しコマンドを受信した直後にレイテンシ指定アドレス51のデータを送信できる理由を説明する。図8は、メモリコントローラ30が固定レイテンシ処理を実行する場合における、レイテンシ指定アドレス51のデータの送信タイミングを示す図である。図8に示すように、読み出しコマンドは、1バイトのコマンドIDと、2バイトの読み出しアドレスとを含む。コマンドIDは、読み出しコマンドであることを一意に示す値である。コマンドデコーダ31は、読み出しコマンドを1バイトずつ受信する。従って、コマンドデコーダ31は、読み出しコマンドの最初の1バイトを受信した時点で、ホスト装置10が半導体メモリ40からのデータの読み出しを指示していると判断することができる。コマンドデコーダ31は、アドレスの比較のために、コマンドIDの後に続く2バイトの読み出しアドレスを、1バイトずつ比較部332に出力する。
Hereinafter, the reason why the
比較部332は、読み出しアドレスとレイテンシ指定アドレス51とを1バイトずつ比較する。比較部332は、読み出しアドレスの最後の1バイトの比較が完了した時点で、比較結果を送信制御部333に通知する。送信制御部333は、通知された比較結果に応じて、バッファ34に格納されたデータを出力するようにセレクタ36を制御する。送信制御部333は、バッファ34から出力されるデータ(レイテンシ指定アドレス51のデータ)を、そのままホスト装置10へ送信する。この結果、メモリコントローラ30は、読み出しコマンドの受信直後に、レイテンシ指定アドレス51のデータをホスト装置10へ送信することができる。つまり、図8に示すように、レイテンシ指定アドレス51のデータは、レイテンシがゼロとなるタイミングでホスト装置10に送信される。
The
{2.5.レイテンシ指定アドレス51の更新}
図7に示す処理が終了した場合、ホスト装置10及びメモリコントローラ30がそれぞれ保持するレイテンシ指定アドレス51が更新される。レイテンシ指定アドレス51を更新する手順は、図5に示す処理と同じ手順で実行される。レイテンシ指定アドレス51の更新は、メモリコントローラ30においては、レイテンシ指定アドレス51のデータを送信してから次の読み出しコマンドを受け付けるまでの間に実行される。ホスト装置10においては、レイテンシ指定アドレス51の更新は、レイテンシ指定アドレス51のデータを受信してから次の読み出しコマンドを生成するまでの間に実行される。すなわち、ホスト装置10及びメモリコントローラ30は、レイテンシ指定アドレス51のデータの読み出し処理が完了してから、予め設定された期間内に更新する。
{2.5. Update of latency specification address 51}
When the process shown in FIG. 7 is completed, the latency designation addresses 51 held by the
図5において、レイテンシ指定アドレス51が更新される場合、ホスト装置10は、読み出しコマンドに関する処理が終了した後に乱数13Aと異なる新たな乱数を生成する(ステップS111)。また、メモリコントローラ30が、乱数35Aと異なる新たな乱数を生成する(ステップS211)。ホスト装置10で生成された新たな乱数と、メモリコントローラ30で生成された新たな乱数は、ホスト装置10とメモリコントローラ30の間で交換される(ステップS114,S214)。ホスト装置10及びメモリコントローラ30は、生成された2つの新たな乱数からレイテンシ指定アドレス51を新たに生成する(ステップS116,S215)。レイテンシ指定アドレス51のデータがホスト装置10に送信されるたびに、レイテンシ指定アドレス51がランダムに変更される。従って、第三者は、レイテンシがゼロとなるタイミングで読み出されるデータのアドレスを事前に知ることができない。
In FIG. 5, when the
{2.6.半導体記憶装置20の複製品の製造の困難性}
次に、メモリコントローラ30が、レイテンシ指定アドレス51のデータをレイテンシがゼロとなるタイミングで送信することにより、第三者が複製品を製造することが困難となる理由を説明する。
{2.6. Difficulty in manufacturing replica of semiconductor memory device 20}
Next, the reason why it becomes difficult for a third party to manufacture a duplicate by transmitting the data of the
図9は、メモリコントローラ30が可変レイテンシ処理を実行する場合において、読み出しアドレスのデータが送信されるタイミングを示す図である。図9において、読み出しコマンドは、図8に示す読み出しコマンドと同様の構成を有する。
FIG. 9 is a diagram illustrating the timing at which the read address data is transmitted when the
図9に示すように、メモリコントローラ30は、可変レイテンシ処理を実行する場合、読み出しコマンドの受信後にビジー信号の送信を開始する。メモリコントローラ30は、読み出しアドレスのデータを半導体メモリ40から読み出すことが可能となるまで、ビジー信号の送信を継続する。メモリコントローラ30は、半導体メモリ40からの読み出しが可能となった場合に、レディ信号をホスト装置10に送信する。レディ信号の送信に続いて、読み出しアドレスのデータがホスト装置10に送信される。
As illustrated in FIG. 9, when executing the variable latency process, the
一方、図8に示すように、レイテンシ指定アドレス51のデータは、固定レイテンシ処理によりホスト装置10へ送信される。この場合、メモリコントローラ30は、読み出しコマンドの受信完了後、レイテンシがゼロとなるタイミングでレイテンシ指定アドレス51のデータの送信を開始する。これに対して、第三者は、レイテンシ指定アドレス51がランダムな値を有しているため、レイテンシ指定アドレス51を特定することができない。従って、複製品のメモリコントローラは、レイテンシ指定アドレス51を含む読み出しコマンドを受信しても、レイテンシ指定アドレス51のデータをレイテンシがゼロとなるタイミングでホスト装置10に送信することができない。この結果、第三者は、半導体記憶装置20の複製品を製造することができない。
On the other hand, as shown in FIG. 8, the data of the
また、レイテンシ指定アドレス51は、レイテンシ指定アドレス51のデータがホスト装置10により読み出されるたびに、ランダムに更新される。レイテンシ指定アドレス51が一時的に漏洩した場合であっても、漏洩した時点で既にレイテンシ指定アドレス51が更新されている。従って、第三者によるレイテンシ指定アドレス51の特定をさらに困難にすることができ、複製品の製造を困難にすることができる。
The
複製品のメモリコントローラは、レイテンシ指定アドレス51のデータを固定レイテンシ処理によりホスト装置10に送信することができないため、ホスト装置10は、複製品に記録されたデータを処理することができない。以下、図4を参照して、ページP−2のアドレスがレイテンシ指定アドレス51である場合を例にして説明する。ホスト装置10は、ページP−2のアドレスを含む読み出しコマンドをメモリコントローラ30に送信する場合、固定レイテンシ処理用のアクセス制御を実行する。しかし、複製品のメモリコントローラは、ページP−2のアドレスのデータ(プログラム41B)を可変レイテンシ処理により送信する。ホスト装置10は、固定レイテンシ処理用のアクセス制御により、複製品のメモリコントローラから送信されるビジー信号及びレディ信号をページP−2のアドレスのデータとして処理するため、正規のプログラム41Bを特定することができない。ホスト装置10は、プログラム41を再構成できず、プログラム41を実行することできない。この結果、第三者は、ホスト装置10が利用可能な複製品を製造することができない。
Since the memory controller of the copy product cannot transmit the data of the
なお、半導体メモリ40のうち、レイテンシ指定アドレス51に設定されるアドレスは、ホスト装置10によって読み出される可能性の高いアドレスであることが望ましい。レイテンシ指定アドレス51の対象となるアドレスは、ホスト装置10のブートコードを格納するページなど、ホスト装置10により少なくとも1回は読み出されるデータのアドレスであることが望ましい。あるいは、ホスト装置10のアクセス頻度が高い領域のアドレスに限定してもよい。
In the
以上説明したように、本実施の形態において、ホスト装置10及びメモリコントローラ30は、乱数13A及び35Aからレイテンシ指定アドレス51を生成し、レイテンシ指定アドレス51のデータを半導体メモリ40から読み出してバッファ34に格納する。メモリコントローラ30は、レイテンシ指定アドレス51のデータの読み出しを指示された場合、バッファ34に格納されたレイテンシ指定アドレス51のデータをレイテンシがゼロとなるタイミングでホスト装置10に送信する。つまり、メモリコントローラ30は、通常の読み出し処理では実現できないレイテンシがゼロとなるタイミングでのレイテンシ指定アドレス51のデータの送信を、予め設定されたレイテンシ指定アドレス51のデータをバッファ34に格納することにより実現している。さらに、レイテンシ指定アドレス51がランダムに設定されるため、第三者は、レイテンシ指定アドレス51を特定することができない。この結果、第三者により違法に複製された半導体記憶装置のメモリコントローラは、レイテンシ指定アドレス51のデータをレイテンシがゼロとなるタイミングで送信することができない。この結果、半導体記憶装置20の違法な複製品の製造を困難にすることができる。
As described above, in the present embodiment, the
{変形例}
上記実施の形態において、メモリコントローラ30が読み出しコマンドの受信直後にレイテンシ指定アドレス51のデータを出力する例を説明したが、これに限られない。
{Modification}
In the above embodiment, the example in which the
図10は、メモリコントローラ30からレイテンシ指定アドレス51のデータが送信するタイミングの他の例を示す図である。図10に示すように、メモリコントローラ30は、読み出しコマンドを受信した場合、予め設定されたパターン(1つのビジー信号と1つのレディ信号)を出力してからレイテンシ指定アドレス51のデータをホスト装置10に送信してもよい。
FIG. 10 is a diagram illustrating another example of timing at which data of the
例えば、送信制御部333が読み出しコマンドに含まれるアドレスのデータを送信する際に、少なくとも1つのビジー信号及び1つのレディ信号を出力しなければならない仕様となっている場合が考えられる。この場合、送信制御部333は、1つのビジー信号と1つのレディ信号を送信した後にレイテンシ指定アドレス51のデータを送信することにより、最短のレイテンシで読み出しコマンドに応答することができる。つまり、最短レイテンシとは、メモリコントローラが読み出しコマンドを受信した場合に、読み出しアドレスのデータの送信を開始することが可能な最も短い時間のことである。図10に示す例において、最短のレイテンシは、メモリコントローラ30が半導体メモリ40に読み出しアドレスのデータの出力を指示してから、読み出しアドレスのデータを取得するまでの期間よりも短い。つまり、送信制御部333は、可変レイテンシ処理により読み出しアドレスのデータを送信する場合よりも早いタイミングで、レイテンシ指定アドレス51のデータを送信する。この場合であっても、第三者は、レイテンシ指定アドレス51を特定することができないため、第三者による複製品の製造を困難にすることができる。
For example, when the
また、メモリコントローラ30が固定レイテンシ処理において1つのビジー信号及び1つのレディ信号を送信することにより、ホスト装置10は、半導体記憶装置20が不正に複製されたものであるかどうかを判断することが可能である。以下、具体的に説明する。
Further, when the
上述のように、複製品のメモリコントローラは、レイテンシ指定アドレス51を含む読み出しコマンドを受信した場合であっても、可変レイテンシ処理を実行してレイテンシ指定アドレス51のデータをホスト装置10に送信する。つまり、複製品のメモリコントローラは、レイテンシ指定アドレス51を含む読み出しコマンドを受信した直後に、予め設定されたパターン(1つのビジー信号と1つのレディ信号)を送信しない。ホスト装置10は、レイテンシ指定アドレス51のデータを送信する前に、予め設定されたパターンのビジー信号及びレディ信号を受信できなかった場合、接続された半導体記憶装置が不正に複製されたものであるとして、接続された半導体記憶装置に対するアクセスを停止することができる。
As described above, even when the memory controller of the replicated product receives a read command including the
また、所定のパターンは、図10に示す例に限定されない。例えば、図11に示すように、メモリコントローラ30は、レイテンシ指定アドレス51のデータを送信する前に1つのレディ信号のみを送信してもよい。あるいは、メモリコントローラ30は、複数のビジー信号と1つのレディ信号とを送信してもよいし、ビジー信号及びレディ信号と無関係のパターンを送信してもよい。
Further, the predetermined pattern is not limited to the example shown in FIG. For example, as illustrated in FIG. 11, the
また、上記実施の形態において、レイテンシ指定アドレス51の更新が、メモリコントローラ30がレイテンシ指定アドレス51のデータを送信した後に行われる例を説明したが、これに限られない。レイテンシ指定アドレス51の更新は、定期的に行われてもよいし、更新しなくてもよい。
In the above embodiment, the example in which the update of the
また、上記実施の形態において、乱数13A及び35Aからレイテンシ指定アドレス51が生成される例を説明したが、これに限られない。例えば、レイテンシ指定アドレス51は、乱数13Aのみから生成されてもよい。この場合、図5に示すステップS115,S211,S212,S214の処理は省略される。あるいは、レイテンシ指定アドレス51は、乱数35Aのみから生成されてもよい。この場合、図5に示すS111〜S114,S213の処理は省略される。
In the above embodiment, the example in which the
また、上記実施の形態において、ホスト装置10とメモリコントローラ30とが生成した乱数を交換する例を説明したが、これに限られない。乱数生成器13及び35が、同一のアルゴリズムを利用する擬似乱数生成器である場合、乱数の交換を省略することができる。具体的には、乱数生成器13及び35の両者は、予め設定されたタイミングで生成する乱数を更新することにより、同一の擬似乱数を生成する。これにより、ホスト装置10とメモリコントローラ30とが乱数を交換しなくてもよいため、レイテンシ指定アドレス51の秘匿性を向上させることができる。乱数を更新するタイミングは、例えば、読み出しコマンドに基づく読み出し処理が所定の回数行われたときや、ホスト装置10が乱数の更新を指示するコマンドを送信するときなどが考えられる。なお、上記の擬似乱数の利用は、乱数の交換を制限するものではない。例えば、乱数生成器13及び35が異なるアルゴリズムを用いて擬似乱数を生成してもよい。この場合、乱数生成器13及び35がそれぞれ生成した擬似乱数の交換が行われる。
In the above embodiment, the example in which the random numbers generated by the
また、上記実施の形態において、ホスト装置10及びメモリコントローラ30がレイテンシ指定アドレス51をそれぞれ生成する例を説明したが、これに限られない。ホスト装置10及びメモリコントローラ30が、同一のレイテンシ指定アドレス51を保持していればよい。
In the above embodiment, the
例えば、ホスト装置10のみが、レイテンシ指定アドレス51を生成するようにしてもよい。この場合、レイテンシ指定アドレス51は、乱数13Aのみから生成される。ホスト装置10は、乱数交換コマンドに代えて、生成したレイテンシ指定アドレス51をメモリコントローラ30に送信すればよい。逆に、メモリコントローラ30のみが、レイテンシ指定アドレス51を生成し、生成したレイテンシ指定アドレス51をホスト装置10に送信してもよい。
For example, only the
あるいは、ホスト装置10及びメモリコントローラ30にレイテンシ指定アドレス51の初期値が予め設定されていてもよい。あるいは、レイテンシ指定アドレス51の初期値がホスト装置10のみに予め設定されてもよい。この場合、ホスト装置10が、起動時にレイテンシ指定アドレス51のアドレスをメモリコントローラ30に送信してもよい。
Alternatively, the initial value of the
また、上記実施の形態で説明したメモリコントローラ30の一部又は全部は、集積回路(例えば、LSI、システムLSI等)として実現されるものであってもよい。
In addition, part or all of the
また、上記実施の形態における各処理の一部又は全部をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。 In addition, a part or all of each processing in the above embodiment may be realized by hardware, or may be realized by software (including a case where it is realized together with an OS (operating system), middleware, or a predetermined library). It may be realized. Further, it may be realized by mixed processing of software and hardware.
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。 While the embodiments of the present invention have been described above, the above-described embodiments are merely examples for carrying out the present invention. Therefore, the present invention is not limited to the above-described embodiment, and can be implemented by appropriately modifying the above-described embodiment without departing from the spirit thereof.
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 送信制御部
100
12 RAM
13, 35
Claims (11)
前記ホスト装置から受信した読み出しコマンドに応答して最短レイテンシで送信すべきデータを格納する半導体メモリのアドレスであって、前記ホスト装置により保持されるアドレスと同一のレイテンシ指定アドレスを取得するアドレス取得部と、
前記レイテンシ指定アドレスのデータを前記半導体メモリから読み出してバッファに格納する事前取得部と、
前記ホスト装置から受信した読み出しコマンドに含まれるアドレスを、前記アドレス取得部により取得されたレイテンシ指定アドレスと比較する比較部と、
前記比較部による比較結果に基づいて、前記最短レイテンシが終了するタイミングで前記バッファに格納されたデータを前記ホスト装置に送信する送信制御部と、
を備えるメモリコントローラ。 A memory controller that accesses a semiconductor memory in response to a request from a host device,
An address acquisition unit that acquires a latency designation address that is the address of a semiconductor memory that stores data to be transmitted with the shortest latency in response to a read command received from the host device and is the same as the address held by the host device When,
A pre-acquisition unit that reads the data of the latency designation address from the semiconductor memory and stores it in a buffer;
A comparison unit that compares an address included in a read command received from the host device with a latency designation address acquired by the address acquisition unit;
A transmission control unit that transmits the data stored in the buffer to the host device at a timing when the shortest latency ends based on a comparison result by the comparison unit;
A memory controller.
前記アドレス取得部は、前記送信制御部が前記バッファに格納されたデータを前記ホスト装置へ送信した後に、前記レイテンシ指定アドレスを更新し、
前記事前取得部は、更新されたレイテンシ指定アドレスのデータを前記半導体メモリから読み出し、前記バッファに格納されたデータを前記更新されたレイテンシ指定アドレスのデータで更新するメモリコントローラ。 The memory controller of claim 1,
The address acquisition unit updates the latency designation address after the transmission control unit transmits the data stored in the buffer to the host device,
The pre-acquisition unit is a memory controller that reads updated latency designation address data from the semiconductor memory and updates the data stored in the buffer with the updated latency designation address data.
前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスと一致すると前記比較部により判断された場合、前記送信制御部は、前記最短レイテンシが終了するタイミングで前記バッファに格納されたデータを前記ホスト装置に送信するメモリコントローラ。 The memory controller of claim 1,
If the comparison unit determines that the address included in the read command matches the latency designation address, the transmission control unit stores the transmission control unit in the buffer at a timing when the shortest latency ends. A memory controller that transmits data to the host device.
前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスと一致しないと前記比較部により判断された場合、前記読み出しコマンドに含まれるアドレスのデータを前記半導体メモリから読み出し、前記半導体メモリから読み出したデータを送信するメモリコントローラ。 A memory controller according to any one of claims 1 to 3,
The transmission control unit reads data of an address included in the read command from the semiconductor memory when the comparison unit determines that an address included in the read command does not match the latency designation address, and the semiconductor memory Memory controller that transmits data read from the memory.
前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスに一致すると前記比較部により判断された場合、前記読み出しコマンドの受け付けを完了した直後に、前記バッファに格納されたデータを送信するメモリコントローラ。 A memory controller according to any one of claims 1 to 4,
The transmission control unit transmits the data stored in the buffer immediately after completing the reception of the read command when the comparison unit determines that the address included in the read command matches the latency designation address. Memory controller.
前記送信制御部は、前記読み出しコマンドに含まれるアドレスが前記レイテンシ指定アドレスに一致すると前記比較部により判断された場合、1つのビジー信号及び1つのレディ信号の後に続けて前記バッファに格納されたデータを送信するメモリコントローラ。 A memory controller according to any one of claims 1 to 4,
When the comparison unit determines that the address included in the read command matches the latency designation address, the transmission control unit stores data stored in the buffer after one busy signal and one ready signal. Send memory controller.
前記アドレス取得部は、
前記レイテンシ指定アドレスの生成に用いられる乱数を生成する乱数生成器と、
所定のアルゴリズムを用いて、前記乱数生成器により生成された乱数から前記レイテンシ指定アドレスを生成するアドレス生成部と、
を含むメモリコントローラ。 A memory controller according to any one of claims 1 to 6,
The address acquisition unit
A random number generator for generating a random number used to generate the latency designation address;
Using a predetermined algorithm, an address generation unit that generates the latency designation address from the random number generated by the random number generator;
Including memory controller.
前記アドレス取得部は、前記ホスト装置により生成されたレイテンシ指定アドレスを取得するメモリコントローラ。 A memory controller according to any one of claims 1 to 6,
The address acquisition unit is a memory controller that acquires a latency designation address generated by the host device.
半導体メモリと、
前記ホスト装置からの要求に応じて前記半導体メモリにアクセスするメモリコントローラと、
を備え、
前記メモリコントローラは、
前記ホスト装置から受信した読み出しコマンドに応答して最短レイテンシで送信すべきデータを格納する半導体メモリのアドレスであるレイテンシ指定アドレスを取得するアドレス取得部と、
前記レイテンシ指定アドレスのデータを前記半導体メモリから読み出してバッファに格納する事前取得部と、
前記ホスト装置から受信した読み出しコマンドに含まれるアドレスを、前記アドレス取得部により取得されたレイテンシ指定アドレスと比較する第1比較部と、
前記第1比較部による比較結果に基づいて、前記最短レイテンシが終了するタイミングで前記バッファに格納されたデータを前記ホスト装置に送信する送信制御部と、
を備え、
前記ホスト装置は、
前記レイテンシ指定アドレスを記憶する記憶部と、
前記読み出しコマンドを前記メモリコントローラに送信する前に、前記読み出しコマンドに含まれるアドレスを前記記憶部に記憶されたレイテンシ指定アドレスと比較する第2比較部と、
前記第2比較部による比較結果に基づいて、前記最短レイテンシが終了するタイミングで、前記バッファに格納されたデータを前記メモリコントローラから受信するアクセス制御部と、
を備えるメモリシステム。 A host device;
Semiconductor memory,
A memory controller that accesses the semiconductor memory in response to a request from the host device;
With
The memory controller is
An address acquisition unit that acquires a latency designation address that is an address of a semiconductor memory that stores data to be transmitted with the shortest latency in response to a read command received from the host device;
A pre-acquisition unit that reads the data of the latency designation address from the semiconductor memory and stores it in a buffer;
A first comparison unit that compares an address included in a read command received from the host device with a latency designation address acquired by the address acquisition unit;
A transmission control unit configured to transmit data stored in the buffer to the host device at a timing when the shortest latency ends based on a comparison result by the first comparison unit;
With
The host device is
A storage unit for storing the latency designation address;
A second comparison unit that compares an address included in the read command with a latency designation address stored in the storage unit before transmitting the read command to the memory controller;
An access control unit that receives data stored in the buffer from the memory controller at a timing when the shortest latency ends based on a comparison result by the second comparison unit;
A memory system comprising:
前記アクセス制御部は、前記バッファに格納されたデータを前記メモリコントローラから受信してから予め設定された期間が経過するまでに、前記レイテンシ指定アドレスを更新し、
前記アドレス取得部は、前記送信制御部が前記バッファに格納されたデータを前記ホスト装置へ送信してから前記予め設定された期間が経過するまでに、前記レイテンシ指定アドレスを更新し、
前記事前取得部は、更新されたレイテンシ指定アドレスのデータを前記半導体メモリから読み出し、前記バッファに格納されたデータを前記更新されたレイテンシ指定アドレスのデータで更新するメモリシステム。 The memory system according to claim 9, comprising:
The access control unit updates the latency designation address until a preset period elapses after receiving the data stored in the buffer from the memory controller,
The address acquisition unit updates the latency designation address until the preset period elapses after the transmission control unit transmits the data stored in the buffer to the host device.
The pre-acquisition unit reads the updated latency designation address data from the semiconductor memory, and updates the data stored in the buffer with the updated latency designation address data.
前記メモリコントローラは、さらに、
第1乱数を生成する第1乱数生成器、
を備え、
前記ホスト装置は、さらに、
第2乱数を生成する第2乱数生成器、
を備え、
前記アドレス取得部及び前記アクセス制御部の各々は、所定のアルゴリズムを用いて、前記第1乱数と前記第2乱数から、前記レイテンシ指定アドレスを生成するメモリシステム。 The memory system according to claim 9 or 10, wherein
The memory controller further includes:
A first random number generator for generating a first random number;
With
The host device further includes:
A second random number generator for generating a second random number;
With
Each of the address acquisition unit and the access control unit generates a latency designation address from the first random number and the second random number using a predetermined algorithm.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015171270A JP6456799B2 (en) | 2015-08-31 | 2015-08-31 | Memory controller |
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 (en) | 2015-08-31 | 2015-08-31 | Memory controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017049713A JP2017049713A (en) | 2017-03-09 |
JP6456799B2 true JP6456799B2 (en) | 2019-01-23 |
Family
ID=58281001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015171270A Active JP6456799B2 (en) | 2015-08-31 | 2015-08-31 | Memory controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6456799B2 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003173291A (en) * | 2001-12-06 | 2003-06-20 | Canon Inc | Memory controller |
JP2004318940A (en) * | 2003-04-14 | 2004-11-11 | Renesas Technology Corp | Storage device |
US7222224B2 (en) * | 2004-05-21 | 2007-05-22 | Rambus Inc. | System and method for improving performance in computer memory systems supporting multiple memory access latencies |
-
2015
- 2015-08-31 JP JP2015171270A patent/JP6456799B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017049713A (en) | 2017-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9842212B2 (en) | System and method for a renewable secure boot | |
US10303901B2 (en) | Secure processor and a program for a secure processor | |
KR102168984B1 (en) | Secure device pairing | |
CN101026455B (en) | security processor | |
US20170060460A1 (en) | Memory controller | |
JP2011522469A (en) | Integrated circuit having protected software image and method therefor | |
CN115033294A (en) | Systems, methods and apparatus for secure non-volatile memory | |
TW202407563A (en) | Sram physically unclonable function (puf) memory for generating keys based on device owner | |
US20230273977A1 (en) | Managing ownership of an electronic device | |
JP6456799B2 (en) | Memory controller | |
JP5759827B2 (en) | MEMORY SYSTEM, INFORMATION PROCESSING DEVICE, MEMORY DEVICE, AND MEMORY SYSTEM OPERATION METHOD | |
US11966748B2 (en) | Dynamic boot configuration | |
JP6462537B2 (en) | Memory controller | |
JP2011181107A (en) | Program for secure processor | |
EP3731127B1 (en) | Control system and method thereof for secure manufacturing | |
JP2015026892A (en) | Information processing system | |
JP2021196763A (en) | Electronic control apparatus, and control method | |
JP2011034130A (en) | Information processor, information processing method, and program | |
US20220398349A1 (en) | System on chip including secure processor and semiconductor system including the same | |
TW202343231A (en) | Managing ownership of an electronic device | |
CN118020071A (en) | Managing ownership of electronic devices | |
TW202424741A (en) | Owner revocation emulation container | |
KR20230073013A (en) | Methods for security related to ETCS | |
CN114329354A (en) | File authorization method and device, computer equipment and storage medium |
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |