JP2017049714A - Memory controller - Google Patents

Memory controller Download PDF

Info

Publication number
JP2017049714A
JP2017049714A JP2015171271A JP2015171271A JP2017049714A JP 2017049714 A JP2017049714 A JP 2017049714A JP 2015171271 A JP2015171271 A JP 2015171271A JP 2015171271 A JP2015171271 A JP 2015171271A JP 2017049714 A JP2017049714 A JP 2017049714A
Authority
JP
Japan
Prior art keywords
memory controller
data
address
read
random number
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
JP2015171271A
Other languages
Japanese (ja)
Other versions
JP6462537B2 (en
Inventor
崇彦 菅原
Takahiko Sugawara
崇彦 菅原
紀 吉村
Tadashi Yoshikawa
紀 吉村
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 JP2015171271A priority Critical patent/JP6462537B2/en
Priority to US15/242,713 priority patent/US20170060460A1/en
Publication of JP2017049714A publication Critical patent/JP2017049714A/en
Application granted granted Critical
Publication of JP6462537B2 publication Critical patent/JP6462537B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a technique for making it difficult to manufacture an illegal copy product of a semiconductor memory device.SOLUTION: In a memory controller 30, a read control unit 332 instructs a semiconductor memory 40 to read, on the basis of an address included in a received read command, data at the address which is included in the read command. A latency acquisition unit 32 obtains a fixed latency period 51 that is used for determining a transmission timing of the data included in the read command and is identical to a latency period that is held by a host device. A transmission control unit 333 transmits the data at the address included in the read command to the host device at a timing which is determined on the basis of the fixed latency period 51.SELECTED DRAWING: Figure 3

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には、メモリセルから読み出したデータを外部に出力する際に、読み出したデータを暗号化する半導体メモリ装置が開示されている。半導体メモリ装置は、外部から読み出しコマンドを受け付けた場合、読み出しコマンドで指定されたアドレスのデータをメモリセルから読み出す。半導体メモリ装置は、内部に実装された論理回路を用いて、読み出したデータと、読み出しコマンドで指定されたアドレスとの排他的論理和をとることにより、読み出したデータを暗号化する。半導体メモリ装置は、暗号化されたデータを読み出しコマンドの応答として出力する。   Patent Document 1 discloses a semiconductor memory device that encrypts read data when the data read from the memory cell is output to the outside. When receiving a read command from the outside, the semiconductor memory device reads data at an address designated by the read command from the memory cell. The semiconductor memory device encrypts the read data by taking an exclusive OR of the read data and the address specified by the read command using a logic circuit mounted therein. The semiconductor memory device outputs the encrypted data as a response to the read command.

特開平7−219852号公報JP-A-7-219852

特許文献1に係る半導体メモリ装置のように暗号化を用いる場合、暗号鍵が悪意のある第三者により窃取されるおそれがある。暗号鍵が窃取された場合、半導体メモリ装置に記憶されたデータのセキュリティが無効化される。また、認証によりセキュリティを確保する場合であっても、認証に用いられるパスワードなどが窃取されることにより、半導体メモリに記憶されたデータのセキュリティが無効化される。   When encryption is used as in the semiconductor memory device according to Patent Document 1, the encryption key may be stolen by a malicious third party. When the encryption key is stolen, the security of the data stored in the semiconductor memory device is invalidated. Even when security is ensured by authentication, the security of data stored in the semiconductor memory is invalidated by stealing a password or the like used for authentication.

第三者が半導体記憶装置のアクセスに用いられる暗号鍵やパスワードを窃取することに成功した場合、第三者は、半導体メモリに記憶されたデータを全て読み出すことが可能となるため、半導体メモリに記憶されたデータの複製を容易に作成することが可能となる。この結果、半導体記憶装置の違法な複製品が市場に流通するという問題がある。   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 problem, the invention according to claim 1 is a memory controller that accesses a semiconductor memory in response to a request from a host device, and based on an address included in a read command received from the host device, A read control unit that instructs the semiconductor memory to read data at the address, and a latency that is used to determine the transmission timing of the data at the address and acquires a fixed latency period that is the same as the latency period held by the host device An acquisition unit; and a transmission control unit that transmits the data of the address to the host device at a timing determined based on the fixed latency period.

請求項2記載の発明は、請求項1に記載のメモリコントローラであって、前記送信制御部は、所定のタイミングから前記固定レイテンシ期間を経過するまでに前記読み出しコマンドに含まれるアドレスのデータの出力が可能となったことが前記半導体メモリから通知された場合、前記固定レイテンシ期間を経過したタイミングで前記アドレスのデータを送信する。   According to a second aspect of the present invention, in the memory controller according to the first aspect, the transmission control unit outputs data at an address included in the read command before the fixed latency period elapses from a predetermined timing. When it is notified from the semiconductor memory that the data can be transferred, the data at the address is transmitted at the timing when the fixed latency period has elapsed.

請求項3記載の発明は、請求項1又は2に記載のメモリコントローラであって、前記送信制御部は、前記アドレスのデータの送信が開始されるまでに送信されるビジー信号を隠蔽する。   A third aspect of the present invention is the memory controller according to the first or second aspect, wherein the transmission control unit conceals a busy signal transmitted before transmission of data at the address is started.

請求項4記載の発明は、請求項3に記載のメモリコントローラであって、前記送信制御部は、前記ビジー信号の送信期間及び前記ビジー信号の値の少なくとも一方を隠蔽する。   The invention according to claim 4 is the memory controller according to claim 3, wherein the transmission control unit conceals at least one of a transmission period of the busy signal and a value of the busy signal.

請求項5記載の発明は、請求項4に記載のメモリコントローラであって、さらに、乱数を生成する乱数生成器、を備え、前記送信制御部は、前記乱数生成器により生成される乱数を用いて前記ビジー信号の送信期間及び前記ビジー信号の値の少なくとも一方を隠蔽する。   The invention according to claim 5 is the memory controller according to claim 4, further comprising a random number generator for generating a random number, wherein the transmission control unit uses a random number generated by the random number generator. Thus, at least one of the busy signal transmission period and the busy signal value is concealed.

請求項6記載の発明は、請求項1ないし請求項5のいずれかに記載のメモリコントローラであって、前記レイテンシ取得部は、所定の条件が満たされた場合、前記固定レイテンシ期間を更新する。   A sixth aspect of the present invention is the memory controller according to any one of the first to fifth aspects, wherein the latency acquisition unit updates the fixed latency period when a predetermined condition is satisfied.

請求項7記載の発明は、請求項6に記載のメモリコントローラであって、前記レイテンシ取得部は、前記送信制御部により前記アドレスのデータが送信された後に、前記固定レイテンシ期間を更新する。   The invention according to claim 7 is the memory controller according to claim 6, wherein the latency acquisition unit updates the fixed latency period after the data of the address is transmitted by the transmission control unit.

請求項8記載の発明は、請求項1ないし請求項7のいずれかに記載のメモリコントローラであって、さらに、前記アドレスのデータを前記固定レイテンシ期間に基づいて定められるタイミングで送信するか、前記読み出し制御部が前記アドレスのデータを読み出すことが可能となったときに送信するかを判断する判断部、を備える。   The invention according to claim 8 is the memory controller according to any one of claims 1 to 7, wherein the data of the address is further transmitted at a timing determined based on the fixed latency period, or A determination unit configured to determine whether to transmit data when the read control unit can read the data at the address;

請求項9記載の発明は、請求項1に記載のメモリコントローラであって、前記レイテンシ取得部は、乱数を生成する乱数生成器と、所定のアルゴリズムを用いて、前記乱数生成器により生成された乱数から前記固定レイテンシ期間を生成するレイテンシ生成部と、を含む。   The invention according to claim 9 is the memory controller according to claim 1, wherein the latency acquisition unit is generated by the random number generator using a random number generator that generates a random number and a predetermined algorithm. A latency generation unit that generates the fixed latency period from a random number.

請求項10記載の発明は、請求項1に記載のメモリコントローラであって、前記レイテンシ取得部は、前記ホスト装置により生成された固定レイテンシ期間を取得する。   A tenth aspect of the present invention is the memory controller according to the first aspect, wherein the latency acquisition unit acquires a fixed latency period generated by the host device.

請求項11記載の発明は、メモリシステムであって、ホスト装置と、半導体メモリと、前記ホスト装置からの要求に応じて前記半導体メモリにアクセスするメモリコントローラと、を備え、前記メモリコントローラは、前記ホスト装置から受信した読み出しコマンドに含まれるアドレスに基づいて、前記アドレスのデータの読み出しを前記半導体メモリに指示する読み出し制御部と、前記アドレスのデータの送信タイミングの決定に用いられる固定レイテンシ期間を取得するレイテンシ取得部と、前記固定レイテンシ期間に基づいて定められるタイミングで前記アドレスのデータを前記ホスト装置に送信する送信制御部と、を備え、前記ホスト装置は、前記固定レイテンシ期間を記憶する記憶部と、前記固定レイテンシ期間に基づいて定められるタイミングで前記アドレスのデータを前記メモリコントローラから受信するアクセス制御部と、を備える。   The invention according to claim 11 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. Based on the address included in the read command received from the host device, the read control unit that instructs the semiconductor memory to read the data at the address, and the fixed latency period used to determine the transmission timing of the data at the address A latency acquisition unit that transmits the address data to the host device at a timing determined based on the fixed latency period, and the host device stores the fixed latency period. And determined based on the fixed latency period. Provided that the access control unit for receiving the data of the address from the memory controller at a timing, the.

請求項12記載の発明は、請求項11に記載のメモリシステムであって、前記アクセス制御部は、前記アドレスのデータを受信してから予め設定された期間を経過するまでに、前記固定レイテンシ期間を更新し、前記送信制御部は、前記アドレスのデータを送信してから予め設定された期間を経過するまでに、前記固定レイテンシ期間を更新する。   A twelfth aspect of the present invention is the memory system according to the eleventh aspect, wherein the access control unit receives the data at the address and passes the preset latency period until a predetermined period elapses. The transmission control unit updates the fixed latency period from the transmission of the address data until a preset period elapses.

請求項13記載の発明は、請求項11又は請求項12に記載のメモリシステムであって、前記メモリコントローラは、さらに、第1乱数を生成する第1乱数生成器、を備え、前記ホスト装置は、さらに、第2乱数を生成する第2乱数生成器、を備え、前記レイテンシ取得部及び前記アクセス制御部の各々は、所定のアルゴリズムを用いて、前記第1乱数と前記第2乱数から前記固定レイテンシ期間を生成する。   The invention according to claim 13 is the memory system according to claim 11 or 12, wherein the memory controller further includes a first random number generator for generating a first random number, and the host device is And a second random number generator for generating a second random number, wherein each of the latency acquisition unit and the access control unit uses the predetermined algorithm to fix the fixed number from the first random number and the second random number. Generate a latency period.

本発明に係るメモリコントローラは、固定レイテンシ期間に基づいて定められるタイミングで読み出しコマンドに含まれるアドレスのデータを送信する。これにより、本発明に係るメモリコントローラを備える半導体記憶装置の違法な複製品を製造することを困難とすることができる。   The memory controller according to the present invention transmits the address data included in the read command at a timing determined based on the fixed latency period. As a result, it is possible to make it difficult to manufacture an illegal duplicate of the semiconductor memory device including the memory controller according to the present invention.

また、本発明に係るメモリコントローラは、読み出しコマンドに含まれるアドレスのデータの送信が開始されるまでに送信されるビジー信号を隠蔽する。これにより、読み出しコマンドに含まれるアドレスのデータがメモリコントローラからホスト装置に送信される際に、このデータが第三者により特定されることを困難することができる。   In addition, the memory controller according to the present invention conceals the busy signal that is transmitted until transmission of data at the address included in the read command is started. As a result, when data at an address included in the read command is transmitted from the memory controller to the host device, it is difficult to specify this data by a third party.

本発明の実施の形態に係るメモリシステムの構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the memory system which concerns on embodiment of this invention. 図1に示すホスト装置の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the host apparatus shown in FIG. 図1に示す半導体記憶装置の構成を示す機能ブロック図である。FIG. 2 is a functional block diagram showing a configuration of the semiconductor memory device shown in FIG. 1. 図1に示す半導体メモリの構成を示す機能ブロック図である。FIG. 2 is a functional block diagram illustrating a configuration of the semiconductor memory illustrated in FIG. 1. 図2に示す固定レイテンシ期間を決定するときにおけるホスト装置及びメモリコントローラの動作を示すシーケンス図である。FIG. 3 is a sequence diagram showing operations of a host device and a memory controller when determining a fixed latency period shown in FIG. 2. 図1に示すホスト装置が通常アドレスを含む読み出しコマンドを送信するときのホスト装置及びメモリコントローラの動作を示すシーケンス図である。FIG. 3 is a sequence diagram showing operations of the host device and the memory controller when the host device shown in FIG. 1 transmits a read command including a normal address. 図1に示すメモリコントローラが可変レイテンシ処理を実行するときにおける読み出しデータの送信タイミングを示す図である。FIG. 2 is a diagram illustrating a transmission timing of read data when the memory controller illustrated in FIG. 1 executes variable latency processing. 図1に示すホスト装置が対象アドレスを含む読み出しコマンドを送信するときのホスト装置及びメモリコントローラの動作を示すシーケンス図である。FIG. 3 is a sequence diagram showing operations of the host device and the memory controller when the host device shown in FIG. 1 transmits a read command including a target address. 図1に示すメモリコントローラが固定レイテンシ処理を実行するときにおける読み出しデータの送信タイミングを示す図である。FIG. 2 is a diagram illustrating a transmission timing of read data when the memory controller illustrated in FIG. 1 executes a fixed latency process. 複製品のメモリコントローラが読み出しデータを送信するタイミングを示す図である。It is a figure which shows the timing which the memory controller of a duplicate product transmits read data. 図1に示すメモリコントローラが固定レイテンシ処理を実行するときにおける読み出しデータの送信タイミングの他の例を示す図である。FIG. 8 is a diagram illustrating another example of read data transmission timing when the memory controller illustrated in FIG. 1 executes fixed latency processing.

以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。   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 memory system 100 according to an embodiment of the present invention. As shown in FIG. 1, the memory system 100 includes a host device 10 and a semiconductor memory device 20. The semiconductor memory device 20 includes a memory controller 30 and a semiconductor memory 40.

メモリコントローラ30は、ホスト装置10からの要求に応じて、半導体メモリ40にアクセスする。   The memory controller 30 accesses the semiconductor memory 40 in response to a request from the host device 10.

半導体メモリ40は、不揮発性であり、例えば、NANDフラッシュメモリである。半導体メモリ40は、プログラム41と、コンテンツデータ42と、対象アドレスデータ43とを記憶する。プログラム41は、コンテンツデータ42を使用するためのプログラムである。対象アドレスデータ43は、メモリコントローラ30が固定レイテンシ処理及び可変レイテンシ処理のどちらを実行するかを決定するために用いられる。固定レイテンシ処理及び可変レイテンシ処理の詳細については、後述する。   The semiconductor memory 40 is nonvolatile, for example, a NAND flash memory. The semiconductor memory 40 stores a program 41, content data 42, and target address data 43. The program 41 is a program for using the content data 42. The target address data 43 is used to determine whether the memory controller 30 executes a fixed latency process or a variable latency process. Details of the fixed latency processing and the variable latency processing will be described later.

{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 host device 10 shown in FIG. As shown in FIG. 2, the host device 10 includes a CPU (Central Processing Unit) 11, a RAM (Random Access Memory) 12, a random number generator 13, and a host-side controller 14. The CPU 11, RAM 12, random number generator 13, and host-side controller 14 are connected via a bus.

CPU11は、RAM12にロードされたプログラムを実行して、ホスト装置10の動作を制御する。RAM12は、ホスト装置10のメインメモリである。   The CPU 11 executes a program loaded on the RAM 12 and controls the operation of the host device 10. The RAM 12 is a main memory of the host device 10.

乱数生成器13は、固定レイテンシ期間51の生成に用いられる乱数13A及び13Bを生成する。乱数生成器13は真性乱数を生成する。乱数13A及び13Bの生成タイミングは、それぞれ異なる。従って、乱数13A及び13Bは、互いに異なる値を有する。固定レイテンシ期間51は、固定レイテンシ処理の実行時に用いられる。固定レイテンシ期間51は、メモリコントローラ30が読み出しコマンドに含まれるアドレスのデータを送信するタイミングを決定するために用いられる。固定レイテンシ期間51の詳細は、後述する。   The random number generator 13 generates random numbers 13A and 13B used for generating the fixed latency period 51. The random number generator 13 generates a true random number. The generation timings of the random numbers 13A and 13B are different from each other. Therefore, the random numbers 13A and 13B have different values. The fixed latency period 51 is used when executing the fixed latency process. The fixed latency period 51 is used for determining the timing at which the memory controller 30 transmits data at the address included in the read command. Details of the fixed latency period 51 will be described later.

ホスト側コントローラ14は、CPU11の指示に応じて、ホスト装置10による半導体記憶装置20に対するアクセスを制御する。ホスト側コントローラ14は、アクセス制御部141と、レイテンシ生成部142と、記憶部143とを備える。   The host-side controller 14 controls access to the semiconductor memory device 20 by the host device 10 in accordance with instructions from the CPU 11. The host-side controller 14 includes an access control unit 141, a latency generation unit 142, and a storage unit 143.

アクセス制御部141は、CPU11の指示に基づくコマンドをメモリコントローラ30に送信し、送信したコマンドに対する応答を受信する。   The access control unit 141 transmits a command based on an instruction from the CPU 11 to the memory controller 30 and receives a response to the transmitted command.

レイテンシ生成部142は、記憶部143に格納された乱数13A及び乱数34Aから固定レイテンシ期間51を生成する。乱数34Aは、後述するように、メモリコントローラ30により生成される。   The latency generation unit 142 generates a fixed latency period 51 from the random number 13A and the random number 34A stored in the storage unit 143. The random number 34A is generated by the memory controller 30 as will be described later.

記憶部143は、乱数13Aと、乱数34Aと、対象アドレスデータ43と、固定レイテンシ期間51とを格納する。対象アドレスデータ43は、ホスト装置10の起動時にメモリコントローラ30から送信される。   The storage unit 143 stores the random number 13A, the random number 34A, the target address data 43, and the fixed latency period 51. The target address data 43 is transmitted from the memory controller 30 when the host device 10 is activated.

{1.3.メモリコントローラ30の構成}
図3は、図1に示す半導体記憶装置20の構成を示す機能ブロック図である。図3に示すように、メモリコントローラ30は、コマンドデコーダ31と、レイテンシ取得部32と、アクセス制御部33と、乱数生成器34とを備える。
{1.3. Configuration of Memory Controller 30}
FIG. 3 is a functional block diagram showing a configuration of the semiconductor memory device 20 shown in FIG. As shown in FIG. 3, the memory controller 30 includes a command decoder 31, a latency acquisition unit 32, an access control unit 33, and a random number generator 34.

メモリコントローラ30は、ホスト側コントローラ14と接続される。図3において、メモリコントローラ30におけるホスト装置10とのインタフェース回路(ホストI/F)及び半導体メモリ40とのインタフェース回路(メモリI/F)の表示を省略している。   The memory controller 30 is connected to the host-side controller 14. In FIG. 3, the display of the interface circuit (host I / F) with the host device 10 and the interface circuit (memory I / F) with the semiconductor memory 40 in the memory controller 30 is omitted.

コマンドデコーダ31は、ホスト側コントローラ14から送信されるコマンドを取得し、取得したコマンドをデコードする。例えば、コマンドデコーダ31は、読み出しコマンドを受信した場合、読み出しコマンドに含まれるアドレスを抽出し、読み出し指示及び抽出したアドレスをアクセス制御部33に出力する。以下、読み出しコマンドに含まれるアドレスを「読み出しアドレス」と記載する。   The command decoder 31 acquires a command transmitted from the host-side controller 14 and decodes the acquired command. For example, when receiving a read command, the command decoder 31 extracts an address included in the read command, and outputs a read instruction and the extracted address to the access control unit 33. Hereinafter, an address included in the read command is referred to as a “read address”.

レイテンシ取得部32は、固定レイテンシ期間51を取得する。レイテンシ取得部32は、レジスタ321と、レジスタ322と、レイテンシ生成部323とを備える。   The latency acquisition unit 32 acquires a fixed latency period 51. The latency acquisition unit 32 includes a register 321, a register 322, and a latency generation unit 323.

レジスタ321は、乱数生成器13(図2参照)により生成された乱数13Aを格納する。レジスタ322は、乱数生成器34により生成された乱数34Aを格納する。レイテンシ生成部323は、レジスタ321に格納された乱数13Aとレジスタ322に格納された乱数34Aから固定レイテンシ期間51を生成する。レイテンシ生成部323により生成される固定レイテンシ期間51は、図2に示すホスト装置10のレイテンシ生成部142により生成される固定レイテンシ期間51と同じである。   The register 321 stores the random number 13A generated by the random number generator 13 (see FIG. 2). The register 322 stores the random number 34A generated by the random number generator 34. The latency generation unit 323 generates a fixed latency period 51 from the random number 13A stored in the register 321 and the random number 34A stored in the register 322. The fixed latency period 51 generated by the latency generator 323 is the same as the fixed latency period 51 generated by the latency generator 142 of the host device 10 shown in FIG.

アクセス制御部33は、ホスト装置10からの読み出しコマンドに応じて、半導体メモリ40からデータを読み出し、読み出されたデータをホスト側コントローラ14に送信する。アクセス制御部33は、判断部331と、読み出し制御部332と、送信制御部333とを備える。   The access control unit 33 reads data from the semiconductor memory 40 in response to a read command from the host device 10 and transmits the read data to the host-side controller 14. The access control unit 33 includes a determination unit 331, a read control unit 332, and a transmission control unit 333.

判断部331は、対象アドレスデータ43を用いて、読み出しアドレスが固定レイテンシ処理の対象であるか否かを判断する。対象アドレスデータ43には、固定レイテンシ処理の対象となる半導体メモリ40のアドレスが登録されている。読み出しアドレスが対象アドレスデータ43に登録されたアドレスに一致する場合、判断部331は、固定レイテンシ処理の実行を決定する。読み出しアドレスが対象アドレスデータ43に登録されたアドレスに一致しない場合、判断部331は、可変レイテンシ処理の実行を決定する。可変レイテンシ処理は、通常の読み出し処理と同じである。   The determining unit 331 uses the target address data 43 to determine whether the read address is a target for fixed latency processing. In the target address data 43, the address of the semiconductor memory 40 that is the target of the fixed latency process is registered. When the read address matches the address registered in the target address data 43, the determination unit 331 determines to execute the fixed latency process. If the read address does not match the address registered in the target address data 43, the determination unit 331 determines to execute variable latency processing. The variable latency process is the same as the normal read process.

読み出し制御部332は、半導体メモリ40からのデータの読み出しを制御する。読み出し制御部332は、読み出しアドレスを含むアクセス制御信号を送信して、半導体メモリ40にデータの読み出しを指示する。   The read control unit 332 controls reading of data from the semiconductor memory 40. The read control unit 332 transmits an access control signal including a read address, and instructs the semiconductor memory 40 to read data.

読み出し制御部332は、アクセス制御信号に応じて半導体メモリ40から読み出されたデータを送信制御部333に出力する。以下、読み出しコマンドに応じて半導体メモリ40から読み出されたデータを、「読み出しデータ52」と記載する。また、読み出し制御部332は、メモリコントローラ30の起動時に、半導体メモリ40から対象アドレスデータ43を読み出す。読み出された対象アドレスデータ43は、判断部331及び送信制御部333に出力される。   The read control unit 332 outputs data read from the semiconductor memory 40 to the transmission control unit 333 according to the access control signal. Hereinafter, data read from the semiconductor memory 40 in response to the read command is referred to as “read data 52”. Further, the read control unit 332 reads the target address data 43 from the semiconductor memory 40 when the memory controller 30 is activated. The read target address data 43 is output to the determination unit 331 and the transmission control unit 333.

送信制御部333は、判断部331による判断結果に基づいて、固定レイテンシ処理及び可変レイテンシ処理のいずれかを実行する。可変レイテンシ処理において、送信制御部333は、半導体メモリ40から出力されるレイテンシ信号54に応じて、ホスト装置10への読み出しデータ52の送信を開始する。レイテンシ信号54は、半導体メモリ40からのデータの読み出しが可能になったことを通知する信号である。可変レイテンシ処理では、固定レイテンシ期間51は用いられない。   The transmission control unit 333 executes either a fixed latency process or a variable latency process based on the determination result by the determination unit 331. In the variable latency process, the transmission control unit 333 starts transmission of the read data 52 to the host device 10 in accordance with the latency signal 54 output from the semiconductor memory 40. The latency signal 54 is a signal for notifying that data can be read from the semiconductor memory 40. In the variable latency process, the fixed latency period 51 is not used.

一方、固定レイテンシ処理において、送信制御部333は、読み出しコマンドを受信してから固定レイテンシ期間51を経過するまで待機した後に、読み出しデータ52を送信する。固定レイテンシ期間51は、読み出し制御部332が半導体メモリ40に読み出しアドレスのデータの読み出しを指示してから、半導体メモリ40からのデータの読み出しが可能となるまでの期間よりも長い期間に設定される。例えば、ページP−3(図4参照)のアドレスのデータをホスト装置10に送信する場合において、ページP−3のアドレスのデータの送信タイミングは、可変レイテンシ処理の実行時よりも、固定レイテンシ処理の実行時の方が遅くなる。   On the other hand, in the fixed latency process, the transmission control unit 333 transmits the read data 52 after waiting until the fixed latency period 51 elapses after receiving the read command. The fixed latency period 51 is set to a period longer than the period from when the read control unit 332 instructs the semiconductor memory 40 to read the data at the read address until the data can be read from the semiconductor memory 40. . For example, when data at the address of page P-3 (see FIG. 4) is transmitted to the host device 10, the transmission timing of the data at the address of page P-3 is fixed latency processing than when variable latency processing is executed. Will be slower when running.

乱数生成器34は、乱数34A〜34Cを生成する。乱数34A及び34Cは、固定レイテンシ期間51の決定に用いられる。乱数34Bは、後述する隠蔽信号の送信に用いられる。乱数34A〜34Cの生成タイミングは、それぞれ異なる。乱数生成器34が真性乱数を生成するため、乱数34A〜34Cは、互いに異なる値を有する。   The random number generator 34 generates random numbers 34A to 34C. The random numbers 34A and 34C are used to determine the fixed latency period 51. The random number 34B is used for transmission of a concealment signal to be described later. The generation timings of the random numbers 34A to 34C are different. Since the random number generator 34 generates a true random number, the random numbers 34A to 34C have different values.

{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 semiconductor memory 40 shown in FIG. As shown in FIG. 4, the semiconductor memory 40 is composed of a single die. The die includes J blocks. The block includes N pages. J and N are both natural numbers of 1 or more. A block is a data erasing unit in the semiconductor memory 40. The page is a data reading unit and writing unit in the semiconductor memory 40.

半導体メモリ40において、ブロック40Bは、ページP−1,P−2,・・・,P−Nにより構成される。対象アドレスデータ43が、ページP−1に格納される。プログラム41A〜41Cが、ページP−2〜P−4に格納される。プログラム41A〜41Cは、図1に示すプログラム41を構成する。プログラム41A〜41Cは、プログラム41をページに格納可能なデータサイズで区分することにより生成される。従って、プログラム41A〜41Cを個別に実行することはできない。コンテンツデータ42が、ページP−Nに格納される。   In the semiconductor memory 40, the block 40B is composed of pages P-1, P-2,. Target address data 43 is stored in page P-1. Programs 41A to 41C are stored in pages P-2 to P-4. The programs 41A to 41C constitute the program 41 shown in FIG. The programs 41A to 41C are generated by dividing the program 41 by the data size that can be stored in the page. Therefore, the programs 41A to 41C cannot be executed individually. Content data 42 is stored in page PN.

{2.メモリシステムの動作}
以下、メモリシステム100において実行される、固定レイテンシ期間51の決定、可変レイテンシ処理、固定レイテンシ処理、固定レイテンシ期間51の更新についてそれぞれ説明する。なお、以下の説明において、メモリコントローラ30において実行される論理アドレスから物理アドレスへの変換処理についての説明を省略する。
{2. Operation of memory system}
Hereinafter, determination of the fixed latency period 51, variable latency processing, fixed latency processing, and update of the fixed latency period 51 executed in the memory system 100 will be described. In the following description, a description of the logical address to physical address conversion process executed in the memory controller 30 is omitted.

{2.1.固定レイテンシ期間51の決定}
図5は、固定レイテンシ期間51を決定するときにおけるホスト装置10及びメモリコントローラ30の動作を示すシーケンス図である。
{2.1. Determination of fixed latency period 51}
FIG. 5 is a sequence diagram showing operations of the host device 10 and the memory controller 30 when the fixed latency period 51 is determined.

なお、初期状態として、固定レイテンシ期間51を決定するための基準時間が予めホスト装置10及びメモリコントローラ30に設定されている。基準時間は、メモリコントローラ30が半導体メモリ40にデータの読み出しを指示してから半導体メモリ40により出力されるレイテンシ信号54を受け付けるまでに要する最大時間である。つまり、基準時間は、半導体メモリ40からのデータの読み出しに要する最大時間に相当する。最大時間は、半導体メモリ40にデータの読み出しを指示してからレイテンシ信号54を受け付けるまでの時間を前もって計測することにより取得される。あるいは、最大時間は、半導体メモリ40の仕様に応じて定められてもよい。   As an initial state, a reference time for determining the fixed latency period 51 is set in advance in the host device 10 and the memory controller 30. The reference time is the maximum time required for the memory controller 30 to receive the latency signal 54 output from the semiconductor memory 40 after instructing the semiconductor memory 40 to read data. That is, the reference time corresponds to the maximum time required for reading data from the semiconductor memory 40. The maximum time is obtained by measuring in advance the time from when the semiconductor memory 40 is instructed to read data to when the latency signal 54 is received. Alternatively, the maximum time may be determined according to the specifications of the semiconductor memory 40.

基準時間は、半導体メモリ40の所定領域に記録されていてもよい。この場合、ホスト装置10は、起動時にメモリコントローラ30を介して基準時間を取得する。   The reference time may be recorded in a predetermined area of the semiconductor memory 40. In this case, the host device 10 acquires the reference time via the memory controller 30 at the time of activation.

図5に示すシーケンス図は、ホスト装置10の電源がオンされたときに開始される。最初に、ホスト装置10の動作を説明する。ホスト装置10の電源がオンされた場合、CPU11は、乱数生成器13に乱数13Aの生成を指示する。乱数生成器13は、CPU11の指示に応じて、真性乱数である乱数13Aを生成する(ステップS111)。生成された乱数13Aは、CPU11及びホスト側コントローラ14へ出力される。   The sequence diagram shown in FIG. 5 is started when the host apparatus 10 is powered on. First, the operation of the host device 10 will be described. When the host device 10 is powered on, the CPU 11 instructs the random number generator 13 to generate the random number 13A. The random number generator 13 generates a random number 13A that is a true random number in response to an instruction from the CPU 11 (step S111). The generated random number 13A is output to the CPU 11 and the host-side controller 14.

ホスト側コントローラ14において、アクセス制御部141は、乱数生成器13から入力された乱数13Aを記憶部143に格納する(ステップS112)。   In the host-side controller 14, the access control unit 141 stores the random number 13A input from the random number generator 13 in the storage unit 143 (step S112).

CPU11は、乱数交換コマンドを生成する(ステップS113)。CPU11は、乱数生成器13から供給された乱数13Aを乱数交換コマンドにセットする。乱数交換コマンドは、乱数13Aをメモリコントローラ30へ送信し、乱数34A及び対象アドレスデータ43の送信を要求するコマンドである。   The CPU 11 generates a random number exchange command (step S113). The CPU 11 sets the random number 13A supplied from the random number generator 13 in the random number exchange command. The random number exchange command is a command for transmitting the random number 13A to the memory controller 30 and requesting transmission of the random number 34A and the target address data 43.

アクセス制御部141は、乱数13Aがセットされた乱数交換コマンドをCPU11から取得する。ホスト側コントローラ14は、取得した乱数交換コマンドをメモリコントローラ30へ送信する(ステップS114)。アクセス制御部141は、乱数交換コマンドの応答を受信するまで待機する。   The access control unit 141 acquires from the CPU 11 a random number exchange command in which the random number 13A is set. The host-side controller 14 transmits the acquired random number exchange command to the memory controller 30 (step S114). The access control unit 141 waits until a response to the random number exchange command is received.

次に、メモリコントローラ30の動作について説明する。メモリコントローラ30は、ホスト装置10の電源オンに応じて起動する。メモリコントローラ30において、乱数生成器34は、乱数34Aを生成する(ステップS211)。乱数生成器34は、乱数生成器13と同様に、真性乱数を生成する。従って、メモリシステム100の起動直後に生成される乱数13A及び34Aは、互いに異なる値である。   Next, the operation of the memory controller 30 will be described. The memory controller 30 is activated when the host device 10 is powered on. In the memory controller 30, the random number generator 34 generates a random number 34A (step S211). Similar to the random number generator 13, the random number generator 34 generates a true random number. Accordingly, the random numbers 13A and 34A generated immediately after the activation of the memory system 100 are different from each other.

乱数生成器34は、生成した乱数34Aをレジスタ322及び送信制御部333に出力する。レジスタ322は、出力された乱数34Aを格納する(ステップS212)。   The random number generator 34 outputs the generated random number 34 </ b> A to the register 322 and the transmission control unit 333. The register 322 stores the output random number 34A (step S212).

メモリコントローラ30は、ステップS114によりホスト側コントローラ14から送信された乱数交換コマンドを受信する。メモリコントローラ30は、受信した乱数交換コマンドにセットされた乱数13Aをレジスタ321に格納する(ステップS213)。具体的には、コマンドデコーダ31は、受信した乱数交換コマンドをデコードして、ホスト装置10が乱数の交換を要求していると判断する。コマンドデコーダ31は、乱数交換コマンドにセットされた乱数13Aを抽出してレジスタ321に出力する。レジスタ321は、コマンドデコーダ31から出力された乱数13Aを記憶する。   The memory controller 30 receives the random number exchange command transmitted from the host-side controller 14 in step S114. The memory controller 30 stores the random number 13A set in the received random number exchange command in the register 321 (step S213). Specifically, the command decoder 31 decodes the received random number exchange command, and determines that the host device 10 requests exchange of random numbers. The command decoder 31 extracts the random number 13A set in the random number exchange command and outputs it to the register 321. The register 321 stores the random number 13A output from the command decoder 31.

コマンドデコーダ31は、乱数交換コマンドを受信したことを読み出し制御部332及び送信制御部333に通知する。読み出し制御部332は、コマンドデコーダ31からの通知を受けて、半導体メモリ40から対象アドレスデータ43を読み出す(ステップS214)。   The command decoder 31 notifies the read control unit 332 and the transmission control unit 333 that the random number exchange command has been received. In response to the notification from the command decoder 31, the read control unit 332 reads the target address data 43 from the semiconductor memory 40 (step S214).

送信制御部333は、コマンドデコーダ31からの通知に応じて、対象アドレスデータ43を読み出し制御部332から取得し、乱数34Aを乱数生成器34から取得する。送信制御部333は、取得した乱数34A及び対象アドレスデータ43を乱数交換コマンドの応答としてホスト装置10に送信する(ステップS215)。   In response to the notification from the command decoder 31, the transmission control unit 333 acquires the target address data 43 from the read control unit 332, and acquires the random number 34 </ b> A from the random number generator 34. The transmission control unit 333 transmits the acquired random number 34A and the target address data 43 to the host device 10 as a response to the random number exchange command (step S215).

レイテンシ取得部32は、固定レイテンシ期間51を生成する(ステップS216)。具体的には、レイテンシ生成部323が、予め設定されたアルゴリズムを用いて、レジスタ321に記憶された乱数13Aとレジスタ322に記憶された乱数34Aから、基準時間よりも長い固定レイテンシ期間51を計算する。なお、基準時間よりも短い固定レイテンシ期間51が計算された場合については、後述する。   The latency acquisition unit 32 generates a fixed latency period 51 (step S216). Specifically, the latency generation unit 323 calculates a fixed latency period 51 longer than the reference time from the random number 13A stored in the register 321 and the random number 34A stored in the register 322 using a preset algorithm. To do. The case where the fixed latency period 51 shorter than the reference time is calculated will be described later.

計算に用いられるアルゴリズムは、特に限定されない。例えば、擬似乱数生成アルゴリズム、HMAC(Hash-based Message Authentication Code)などが用いられる。   The algorithm used for the calculation is not particularly limited. For example, a pseudo-random number generation algorithm, HMAC (Hash-based Message Authentication Code), or the like is used.

基準時間よりも短い固定レイテンシ期間51が計算された場合、固定レイテンシ期間51を再び生成すればよい。この場合、ホスト装置10は、乱数生成器13により生成された新たな乱数を含む乱数交換コマンドを送信する。メモリコントローラ30は、乱数交換コマンドを受信した場合、乱数生成器34により生成された新たな乱数をホスト装置10に送信する。レイテンシ生成部142及び323は、生成された2つの新たな乱数から、固定レイテンシ期間51を生成する。以下、基準時間より長い固定レイテンシ期間51が計算されるまで、ホスト装置10及びメモリコントローラ30は、固定レイテンシ期間51の再生成を繰り返せばよい。   When the fixed latency period 51 shorter than the reference time is calculated, the fixed latency period 51 may be generated again. In this case, the host device 10 transmits a random number exchange command including a new random number generated by the random number generator 13. When the memory controller 30 receives the random number exchange command, the memory controller 30 transmits the new random number generated by the random number generator 34 to the host device 10. The latency generation units 142 and 323 generate the fixed latency period 51 from the two new random numbers generated. Hereinafter, the host device 10 and the memory controller 30 may repeat the regeneration of the fixed latency period 51 until the fixed latency period 51 longer than the reference time is calculated.

レイテンシ生成部323が、決定された固定レイテンシ期間51を送信制御部333に出力する。送信制御部333は、レイテンシ生成部323から出力された固定レイテンシ期間51を保持する。これにより、メモリコントローラ30の起動時における処理が終了する。   The latency generation unit 323 outputs the determined fixed latency period 51 to the transmission control unit 333. The transmission control unit 333 holds the fixed latency period 51 output from the latency generation unit 323. Thereby, the process at the time of starting of the memory controller 30 is completed.

ホスト装置10において、アクセス制御部141は、乱数交換コマンドの応答として乱数34A及び対象アドレスデータ43を受信する。アクセス制御部141は、受信した乱数34A及び対象アドレスデータ43を記憶部143に格納する(ステップS115)。   In the host device 10, the access control unit 141 receives the random number 34 </ b> A and the target address data 43 as a response to the random number exchange command. The access control unit 141 stores the received random number 34A and target address data 43 in the storage unit 143 (step S115).

レイテンシ生成部142は、記憶部143に記憶された乱数13A及び34Aから固定レイテンシ期間51を生成する(ステップS116)。レイテンシ生成部142が固定レイテンシ期間51の生成に用いるアルゴリズムは、メモリコントローラ30のレイテンシ生成部323が用いるアルゴリズムと同じである。従って、レイテンシ生成部142により生成される固定レイテンシ期間51は、メモリコントローラ30のレイテンシ生成部323により生成される固定レイテンシ期間51と同一である。   The latency generation unit 142 generates the fixed latency period 51 from the random numbers 13A and 34A stored in the storage unit 143 (Step S116). The algorithm used by the latency generation unit 142 to generate the fixed latency period 51 is the same as the algorithm used by the latency generation unit 323 of the memory controller 30. Therefore, the fixed latency period 51 generated by the latency generation unit 142 is the same as the fixed latency period 51 generated by the latency generation unit 323 of the memory controller 30.

{2.2.可変レイテンシ処理}
メモリコントローラ30は、ホスト装置10から対象アドレスデータ43に登録されていないアドレスを含む読み出しコマンドを受信した場合、可変レイテンシ処理を実行して、読み出しコマンドに含まれるアドレスのデータを送信する。
{2.2. Variable latency processing}
When the memory controller 30 receives a read command including an address that is not registered in the target address data 43 from the host device 10, the memory controller 30 executes variable latency processing and transmits data at the address included in the read command.

以下、対象アドレスデータ43に登録されたアドレスを「対象アドレス」と記載し、対象アドレスデータ43に登録されていないアドレスを「通常アドレス」と記載する。   Hereinafter, an address registered in the target address data 43 is referred to as a “target address”, and an address that is not registered in the target address data 43 is referred to as a “normal address”.

図6は、ホスト装置10が読み出しアドレスとして通常アドレスを含む読み出しコマンドを送信する場合における、ホスト装置10及びメモリコントローラ30の動作を示すシーケンス図である。   FIG. 6 is a sequence diagram illustrating operations of the host device 10 and the memory controller 30 when the host device 10 transmits a read command including a normal address as a read address.

図6に示すように、ホスト装置10は、ステップS311〜S314を実行して、通常アドレスを含む読み出しコマンドをメモリコントローラ30に送信する。具体的には、CPU11は、読み出しコマンドを生成し、生成した読み出しコマンドに読み出しアドレスをセットする。図6に示す例では、セットされる読み出しアドレスは、通常アドレスである。これにより、通常アドレスを含む読み出しコマンドが生成される(ステップS311)。   As illustrated in FIG. 6, the host device 10 executes Steps S311 to S314 and transmits a read command including a normal address to the memory controller 30. Specifically, the CPU 11 generates a read command and sets a read address in the generated read command. In the example shown in FIG. 6, the read address to be set is a normal address. Thereby, a read command including the normal address is generated (step S311).

CPU11は、生成した読み出しコマンドをアクセス制御部141に出力する。アクセス制御部141は、読み出しコマンドに含まれる読み出しアドレスを、対象アドレスデータ43に登録されたアドレスと比較する(ステップS312)。   The CPU 11 outputs the generated read command to the access control unit 141. The access control unit 141 compares the read address included in the read command with the address registered in the target address data 43 (step S312).

図6に示す例では、読み出しアドレスとして通常アドレスが読み出しコマンドにセットされているので、読み出しコマンドに含まれる読み出しアドレスは、対象アドレスデータ43に登録されたアドレスに一致しない。このため、アクセス制御部141は、読み出しコマンドをメモリコントローラ30に送信した場合、メモリコントローラ30が可変レイテンシ処理を実行すると判断する。アクセス制御部141は、読み出しコマンドの送信後に、可変レイテンシ処理用のアクセス制御を開始することを決定する(ステップS313)。   In the example shown in FIG. 6, the normal address is set as the read address in the read command, so the read address included in the read command does not match the address registered in the target address data 43. For this reason, when the access control unit 141 transmits a read command to the memory controller 30, the access control unit 141 determines that the memory controller 30 executes variable latency processing. The access control unit 141 determines to start access control for variable latency processing after transmission of the read command (step S313).

アクセス制御部141は、ステップS311で生成された読み出しコマンドをメモリコントローラ30へ送信する(ステップS314)。アクセス制御部141は、メモリコントローラ30からレディ信号を受信するまで待機することにより、可変レイテンシ処理用のアクセス制御を開始する。   The access control unit 141 transmits the read command generated in step S311 to the memory controller 30 (step S314). The access control unit 141 starts access control for variable latency processing by waiting until a ready signal is received from the memory controller 30.

メモリコントローラ30において、コマンドデコーダ31は、ステップS314によりホスト装置10から送信された読み出しコマンドを受信する。コマンドデコーダ31は、受信した読み出しコマンドをデコードする。その結果、コマンドデコーダ31は、ホスト装置10により読み出しが指示されたと判断し、受信した読み出しコマンドから読み出しアドレスを抽出する(ステップS411)。   In the memory controller 30, the command decoder 31 receives the read command transmitted from the host device 10 in step S314. The command decoder 31 decodes the received read command. As a result, the command decoder 31 determines that reading has been instructed by the host device 10, and extracts a read address from the received read command (step S411).

コマンドデコーダ31は、デコード結果(読み出し指示及び抽出した読み出しアドレス)を判断部331及び読み出し制御部332に出力する。判断部331は、コマンドデコーダ31から取得した読み出しアドレスを対象アドレスデータ43に登録されたアドレスと比較する(ステップS412)。図6に示す例では、読み出しアドレスとして通常アドレスが読み出しコマンドにセットされているので、取得した読み出しアドレスは、対象アドレスデータ43に登録されたアドレスに一致しない。このため、判断部331は、可変レイテンシ処理の実行を決定する(ステップS413)。   The command decoder 31 outputs the decoding result (read instruction and extracted read address) to the determination unit 331 and the read control unit 332. The determination unit 331 compares the read address acquired from the command decoder 31 with the address registered in the target address data 43 (step S412). In the example illustrated in FIG. 6, since the normal address is set as the read command in the read command, the acquired read address does not match the address registered in the target address data 43. For this reason, the determination unit 331 determines execution of variable latency processing (step S413).

送信制御部333は、判断部331の決定に基づいて、可変レイテンシ処理を開始する。具体的には、送信制御部333は、ホスト装置10に対するビジー信号の送信を開始する(ステップS414)。ビジー信号の送信は、半導体メモリ40から出力されるレイテンシ信号54を送信制御部333が検出するまで継続される。   The transmission control unit 333 starts variable latency processing based on the determination by the determination unit 331. Specifically, the transmission control unit 333 starts transmission of a busy signal to the host device 10 (step S414). Transmission of the busy signal is continued until the transmission control unit 333 detects the latency signal 54 output from the semiconductor memory 40.

読み出し制御部332は、読み出しアドレスを含むアクセス制御信号を半導体メモリ40に出力して、読み出しアドレスのデータの読み出しを指示する(ステップS415)。読み出し制御部332は、アクセス制御信号の送信後、レイテンシ信号54の受信待機状態に移行する。   The read control unit 332 outputs an access control signal including a read address to the semiconductor memory 40, and instructs to read data at the read address (step S415). After transmitting the access control signal, the read control unit 332 shifts to a waiting state for receiving the latency signal 54.

半導体メモリ40は、読み出し制御部332から送信されたアクセス制御信号に基づいて、読み出しアドレスのデータの読み出し準備を開始する。読み出し準備が完了した場合、半導体メモリ40は、レイテンシ信号54を読み出し制御部332及び送信制御部333に出力して、読み出しアドレスのデータの出力が可能になったことを通知する。   The semiconductor memory 40 starts preparation for reading data at the read address based on the access control signal transmitted from the read control unit 332. When the read preparation is completed, the semiconductor memory 40 outputs the latency signal 54 to the read control unit 332 and the transmission control unit 333 to notify that the read address data can be output.

送信制御部333は、半導体メモリ40から送信されたレイテンシ信号54を検出する(ステップS416)。送信制御部333は、検出したレイテンシ信号54に基づいて、レディ信号をホスト装置10へ送信する(ステップS417)。   The transmission control unit 333 detects the latency signal 54 transmitted from the semiconductor memory 40 (step S416). The transmission control unit 333 transmits a ready signal to the host device 10 based on the detected latency signal 54 (step S417).

半導体メモリ40は、レイテンシ信号54の出力後に、読み出しアドレスのデータ(読み出しデータ52)の出力を開始する。送信制御部333は、読み出し制御部332を介して、読み出しデータ52を読み出す。送信制御部333は、読み出しデータ52をレディ信号の後に続けてホスト装置10へ送信する(ステップS418)。   The semiconductor memory 40 starts outputting the read address data (read data 52) after outputting the latency signal 54. The transmission control unit 333 reads the read data 52 via the read control unit 332. The transmission control unit 333 transmits the read data 52 to the host device 10 following the ready signal (step S418).

ホスト装置10において、アクセス制御部141は、レディ信号を検出した場合、読み出しデータ52の送信が開始されると判断する。アクセス制御部141は、レディ信号の後に続けて送信されるデータを読み出しデータ52として受信する。CPU11は、アクセス制御部141が受信した読み出しデータ52を用いた処理を実行する。   In the host device 10, the access control unit 141 determines that transmission of the read data 52 is started when a ready signal is detected. The access control unit 141 receives data transmitted after the ready signal as read data 52. The CPU 11 executes processing using the read data 52 received by the access control unit 141.

図7は、可変レイテンシ処理が実行される場合における読み出しデータ52の送信タイミングを示す図である。図7に示すように、メモリコントローラ30は、読み出しアドレスが対象アドレスデータ43に登録されたアドレスのいずれかに一致しないと判断した場合、読み出しコマンドの受信直後からビジー信号の送信を開始する。ビジー信号の送信は、半導体メモリ40からのレイテンシ信号54が検出されるまで継続する。そして、レイテンシ信号54が検出された場合、メモリコントローラ30は、ビジー信号に代えてレディ信号を送信し、レディ信号の後に続けて読み出しデータ52を送信する。   FIG. 7 is a diagram illustrating the transmission timing of the read data 52 when the variable latency process is executed. As illustrated in FIG. 7, when the memory controller 30 determines that the read address does not match any of the addresses registered in the target address data 43, the memory controller 30 starts transmitting a busy signal immediately after receiving the read command. The transmission of the busy signal continues until the latency signal 54 from the semiconductor memory 40 is detected. When the latency signal 54 is detected, the memory controller 30 transmits a ready signal instead of the busy signal, and transmits read data 52 following the ready signal.

レイテンシ信号54は、半導体メモリ40における読み出し準備が完了したときに出力される。しかし、読み出し準備に要する時間は、半導体メモリ40の性能及び読み出しアドレス等によって変動するため、ビジー信号の送信期間Tbは、一定とならない。このため、ホスト装置10は、メモリコントローラ30が可変レイテンシ処理を実行する場合、レディ信号を受信するまで待機する。ホスト装置10は、レディ信号をトリガとして、レディ信号の後に続けて送信されるデータを読み出しデータ52として受信する。   The latency signal 54 is output when the read preparation in the semiconductor memory 40 is completed. However, since the time required for read preparation varies depending on the performance of the semiconductor memory 40, the read address, and the like, the busy signal transmission period Tb is not constant. For this reason, when the memory controller 30 executes the variable latency process, the host device 10 waits until a ready signal is received. The host device 10 receives the data transmitted following the ready signal as read data 52 using the ready signal as a trigger.

{2.3.固定レイテンシ処理}
メモリコントローラ30は、読み出しアドレスが対象アドレスデータ43に登録されたアドレスに一致する場合、固定レイテンシ処理を実行して、読み出しデータ52を送信する。可変レイテンシ処理と異なり、固定レイテンシ処理では、読み出しデータ52の送信タイミングが、固定レイテンシ期間51に基づいて決定される。
{2.3. Fixed latency processing}
When the read address matches the address registered in the target address data 43, the memory controller 30 executes fixed latency processing and transmits the read data 52. Unlike the variable latency process, in the fixed latency process, the transmission timing of the read data 52 is determined based on the fixed latency period 51.

図8は、ホスト装置10が対象アドレスを含む読み出しコマンドを送信する場合におけるホスト装置10及びメモリコントローラ30の動作を示すシーケンス図である。   FIG. 8 is a sequence diagram illustrating operations of the host device 10 and the memory controller 30 when the host device 10 transmits a read command including a target address.

ホスト装置10は、ステップS511〜S514を実行して、対象アドレスを含む読み出しコマンドをメモリコントローラ30に送信する。具体的には、CPU11は、読み出しコマンドを生成し、生成した読み出しコマンドに読み出しアドレスをセットする。図8に示す例では、読み出しアドレスは、対象アドレスである。これにより、対象アドレスを含む読み出しコマンドが生成される(ステップS511)。   The host device 10 executes steps S511 to S514 and transmits a read command including the target address to the memory controller 30. Specifically, the CPU 11 generates a read command and sets a read address in the generated read command. In the example shown in FIG. 8, the read address is the target address. As a result, a read command including the target address is generated (step S511).

CPU11は、生成した読み出しコマンドをアクセス制御部141に出力する。アクセス制御部141は、読み出しコマンドに含まれる読み出しアドレスを対象アドレスデータ43に登録されているアドレスと比較する(ステップS512)。   The CPU 11 outputs the generated read command to the access control unit 141. The access control unit 141 compares the read address included in the read command with the address registered in the target address data 43 (step S512).

図8に示す例では、読み出しアドレスとして対象アドレスが読み出しコマンドにセットされるので、読み出しアドレスは、対象アドレスデータ43に登録されたいずれかのアドレスと一致する。このため、アクセス制御部141は、ステップS511で生成された読み出しコマンドを送信した場合、メモリコントローラ30が固定レイテンシ処理を実行すると判断する。アクセス制御部141は、読み出しコマンドの送信後に、固定レイテンシ処理用のアクセス制御を開始することを決定する(ステップS513)。   In the example shown in FIG. 8, the target address is set in the read command as the read address, so the read address matches any address registered in the target address data 43. Therefore, the access control unit 141 determines that the memory controller 30 executes the fixed latency process when the read command generated in step S511 is transmitted. The access control unit 141 determines to start the access control for fixed latency processing after the transmission of the read command (step S513).

アクセス制御部141は、ステップS511で生成された読み出しコマンドをメモリコントローラ30へ送信する(ステップS514)。アクセス制御部141は、読み出しコマンドを送信してから固定レイテンシ期間51を経過するまで待機する(ステップS515)。アクセス制御部141は、固定レイテンシ期間51を経過するまでの間、メモリコントローラ30から隠蔽信号を受信する。後述するように、隠蔽信号は、ランダムなデータであるため、アクセス制御部141は、読み出しデータ52の受信タイミングを特定する際に、隠蔽信号を利用せず、固定レイテンシ期間51を利用する。   The access control unit 141 transmits the read command generated in step S511 to the memory controller 30 (step S514). The access control unit 141 waits until the fixed latency period 51 elapses after the read command is transmitted (step S515). The access control unit 141 receives a concealment signal from the memory controller 30 until the fixed latency period 51 elapses. As will be described later, since the concealment signal is random data, the access control unit 141 uses the fixed latency period 51 without using the concealment signal when specifying the reception timing of the read data 52.

メモリコントローラ30において、コマンドデコーダ31は、ステップS514によりホスト装置10から送信された読み出しコマンドを受信する。コマンドデコーダ31は、受信した読み出しコマンドをデコードする。その結果、コマンドデコーダ31は、ホスト装置10により読み出しが指示されたと判断し、受信した読み出しコマンドから読み出しアドレスを抽出する(ステップS611)。   In the memory controller 30, the command decoder 31 receives the read command transmitted from the host device 10 in step S514. The command decoder 31 decodes the received read command. As a result, the command decoder 31 determines that reading has been instructed by the host device 10, and extracts a read address from the received read command (step S611).

コマンドデコーダ31は、デコード結果(読み出し指示及び抽出した読み出しアドレス)を判断部331及び読み出し制御部332に出力する。判断部331は、コマンドデコーダ31から取得した読み出しアドレスを、対象アドレスデータ43に登録されたアドレスと比較する(ステップS612)。図8に示す例では、読み出しアドレスとして対象アドレスが読み出しコマンドにセットされているので、取得した読み出しアドレスは、対象アドレスデータ43に登録されたいずれかのアドレスと一致する。このため、判断部331は、固定レイテンシ処理の実行を決定する(ステップS613)。   The command decoder 31 outputs the decoding result (read instruction and extracted read address) to the determination unit 331 and the read control unit 332. The determination unit 331 compares the read address acquired from the command decoder 31 with the address registered in the target address data 43 (step S612). In the example shown in FIG. 8, since the target address is set in the read command as the read address, the acquired read address matches any address registered in the target address data 43. For this reason, the determination unit 331 determines to execute the fixed latency process (step S613).

メモリコントローラ30は、ステップS614〜S616を固定レイテンシ処理として実行する。送信制御部333は、ビジー信号に代えて、隠蔽信号の送信を開始する(ステップS614)。具体的には、送信制御部333は、読み出しコマンドを受信してから固定レイテンシ期間51を経過するまで、乱数生成器34から乱数34Bを取得し続け、取得した乱数34Bを隠蔽信号として送信する。つまり、隠蔽信号は、固定レイテンシ期間51を経過するまで、乱数生成器34により生成される乱数34Bにより更新され続ける。乱数生成器34が、乱数34Bを乱数34Aの生成タイミングと異なるタイミングで生成するため、乱数34Bは、乱数34Aと異なる。隠蔽信号の送信は、読み出しコマンドを受信してから固定レイテンシ期間51を経過するまで継続される。   The memory controller 30 executes steps S614 to S616 as fixed latency processing. The transmission control unit 333 starts transmission of the concealment signal instead of the busy signal (step S614). Specifically, the transmission control unit 333 continues to acquire the random number 34B from the random number generator 34 until the fixed latency period 51 elapses after receiving the read command, and transmits the acquired random number 34B as a concealment signal. That is, the concealment signal is continuously updated by the random number 34B generated by the random number generator 34 until the fixed latency period 51 elapses. Since the random number generator 34 generates the random number 34B at a timing different from the generation timing of the random number 34A, the random number 34B is different from the random number 34A. Transmission of the concealment signal is continued until the fixed latency period 51 elapses after the read command is received.

隠蔽信号は、ランダムな値を有する。一方、ビジー信号及びレディ信号のパターンは、予め設定されている。ビジー信号及びレディ信号に代えて隠蔽信号を送信することにより、第三者は、ビジー信号と、レディ信号と、レディ信号に続けて送信される読み出しアドレスのデータとを区別することができない。つまり、ビジー信号の送信期間及びビジー信号の値が乱数34Bにより隠蔽されることにより、読み出しデータ52の送信タイミングが隠蔽される。   The concealment signal has a random value. On the other hand, the patterns of the busy signal and the ready signal are set in advance. By transmitting the concealment signal instead of the busy signal and the ready signal, a third party cannot distinguish between the busy signal, the ready signal, and the read address data transmitted following the ready signal. That is, the transmission timing of the read data 52 is concealed by concealing the busy signal transmission period and the busy signal value by the random number 34B.

次に、読み出し制御部332は、読み出しアドレスを含むアクセス制御信号を半導体メモリ40に出力して、読み出しアドレスのデータの読み出しを指示する(ステップS615)。半導体メモリ40は、読み出し制御部332から出力されたアクセス制御信号に基づいて、読み出しアドレスのデータの読み出し準備を開始する。読み出し準備が完了した場合、半導体メモリ40は、レイテンシ信号54を送信制御部333に出力して、読み出しアドレスのデータの読み出しが可能になったことを通知する。   Next, the read control unit 332 outputs an access control signal including the read address to the semiconductor memory 40, and instructs to read data at the read address (step S615). The semiconductor memory 40 starts preparation for reading data at the read address based on the access control signal output from the read control unit 332. When the read preparation is completed, the semiconductor memory 40 outputs a latency signal 54 to the transmission control unit 333 to notify that the read address data can be read.

上述のように、固定レイテンシ期間51は、基準時間よりも長い。基準時間は、半導体メモリ40にデータの読み出しを指示してから半導体メモリ40からレイテンシ信号54を受け付けるまでにかかる最大時間である。従って、固定レイテンシ処理において、送信制御部333は、読み出しコマンドを受信してから固定レイテンシ期間51を経過するまでの待機中に、レイテンシ信号54を検出する。しかし、送信制御部333は、レイテンシ信号54を検出しても読み出しデータ52の送信を開始せず、隠蔽信号の送信を継続する。   As described above, the fixed latency period 51 is longer than the reference time. The reference time is the maximum time taken from when the semiconductor memory 40 is instructed to read data to when the latency signal 54 is received from the semiconductor memory 40. Therefore, in the fixed latency process, the transmission control unit 333 detects the latency signal 54 during the standby period after the read command is received until the fixed latency period 51 elapses. However, even if the transmission control unit 333 detects the latency signal 54, the transmission control unit 333 does not start transmission of the read data 52 and continues to transmit the concealment signal.

送信制御部333は、読み出しコマンドの受信を完了してから固定レイテンシ期間51を経過するタイミングで、読み出しデータ52の送信を開始する(ステップS616)。具体的には、送信制御部333は、固定レイテンシ期間51を経過するタイミングで隠蔽信号の送信を停止する。送信制御部333は、読み出し制御部332を介して読み出しデータ52を半導体メモリ40から読み出す。送信制御部333は、隠蔽信号に代えて、読み出しデータ52をホスト装置10へ送信する。   The transmission control unit 333 starts transmission of the read data 52 at the timing when the fixed latency period 51 elapses after the reception of the read command is completed (step S616). Specifically, the transmission control unit 333 stops the transmission of the concealment signal at the timing when the fixed latency period 51 elapses. The transmission control unit 333 reads the read data 52 from the semiconductor memory 40 via the read control unit 332. The transmission control unit 333 transmits the read data 52 to the host device 10 instead of the concealment signal.

ここで、ホスト装置10の説明に戻る。上述のように、アクセス制御部141は、読み出しコマンドを送信し(ステップS514)、その後、固定レイテンシ期間51を経過するまで待機する(ステップS515)。アクセス制御部141は、待機中に受信する隠蔽信号を無視する。アクセス制御部141は、固定レイテンシ期間51を経過するタイミングで、読み出しデータ52の受信を開始する(ステップS516)。すなわち、アクセス制御部141は、固定レイテンシ期間51を経過するタイミングより後に受信するデータを、読み出しデータ52として受信する。従って、ホスト装置10は、固定レイテンシ処理用のアクセス制御を実行する際には、レディ信号の検出を行わなくてよい。   Here, the description returns to the host device 10. As described above, the access control unit 141 transmits a read command (step S514), and then waits until the fixed latency period 51 elapses (step S515). The access control unit 141 ignores the concealment signal received during standby. The access control unit 141 starts receiving the read data 52 at the timing when the fixed latency period 51 elapses (step S516). That is, the access control unit 141 receives data received after the timing when the fixed latency period 51 elapses as read data 52. Therefore, the host device 10 does not have to detect a ready signal when executing access control for fixed latency processing.

図9は、固定レイテンシ処理が実行される場合における読み出しデータ52の送信タイミングを示す図である。図9に示すように、メモリコントローラ30は、読み出しコマンドを受信してから期間Tsを経過したときに、読み出しアドレスのデータの読み出しが可能になったことを示すレイテンシ信号54を受け付ける。しかし、メモリコントローラ30は、レイテンシ信号54を無視し、固定レイテンシ期間51が経過するまで待機する。また、メモリコントローラ30は、読み出しアドレスが対象アドレスデータ43に登録されたアドレスに一致する場合、読み出しコマンドを受信してから隠蔽信号の送信を開始する。隠蔽信号は、乱数生成器34により生成される乱数34Bである。従って、第三者は、メモリコントローラ30から送信される信号を観測しても、ビジー信号及びレディ信号を検出することができない。メモリコントローラ30は、固定レイテンシ期間51が経過した場合、隠蔽信号に続けて読み出しデータ52の送信を開始するため、第三者は、読み出しデータ52の送信タイミングを特定することができず、読み出しデータ52を特定することができない。   FIG. 9 is a diagram illustrating the transmission timing of the read data 52 when the fixed latency process is executed. As illustrated in FIG. 9, the memory controller 30 receives a latency signal 54 indicating that the data at the read address can be read when the period Ts has elapsed after receiving the read command. However, the memory controller 30 ignores the latency signal 54 and waits until the fixed latency period 51 elapses. When the read address matches the address registered in the target address data 43, the memory controller 30 starts transmitting the concealment signal after receiving the read command. The concealment signal is a random number 34B generated by the random number generator 34. Therefore, even if a third party observes the signal transmitted from the memory controller 30, it cannot detect the busy signal and the ready signal. Since the memory controller 30 starts transmitting the read data 52 following the concealment signal when the fixed latency period 51 has elapsed, the third party cannot specify the transmission timing of the read data 52, and the read data 52 cannot be specified.

ホスト装置10及びメモリコントローラ30は、同一の固定レイテンシ期間51を保持している。従って、ホスト装置10は、読み出しデータ52の受信タイミングを、読み出しコマンドの送信を完了したタイミングと、固定レイテンシ期間51とに基づいて特定することができる。メモリコントローラ30は、読み出しデータ52の送信タイミングを、読み出しコマンドの受信を完了したタイミングと、固定レイテンシ期間51とに基づいて特定することができる。従って、ホスト装置10は、ビジー信号及びレディ信号を用いることなく、メモリコントローラ30から送信される読み出しデータ52を特定することができる。   The host device 10 and the memory controller 30 hold the same fixed latency period 51. Therefore, the host device 10 can specify the reception timing of the read data 52 based on the timing at which the transmission of the read command is completed and the fixed latency period 51. The memory controller 30 can specify the transmission timing of the read data 52 based on the timing when the reception of the read command is completed and the fixed latency period 51. Therefore, the host device 10 can specify the read data 52 transmitted from the memory controller 30 without using the busy signal and the ready signal.

なお、固定レイテンシ期間51の生成時に用いられる基準時間が、レイテンシ信号54を計測することによって決定される場合、メモリコントローラ30が、固定レイテンシ期間51を経過するまでに、レイテンシ信号54を検出できない場合がある。この場合、メモリコントローラ30は、読み出しデータ52を取得できないため、読み出しデータ52をホスト装置10に送信することができない。メモリコントローラ30は、固定レイテンシ期間51を経過したタイミングで、読み出しコマンドの応答としてエラーを送信する。ホスト装置10及びメモリコントローラ30は、後述する固定レイテンシ期間51の更新処理を実行する。更新された固定レイテンシ期間51は、更新前の固定レイテンシ期間51よりも長くなることが望ましい。そして、ホスト装置10は、改めて読み出しコマンドをメモリコントローラ10に送信すればよい。   When the reference time used when generating the fixed latency period 51 is determined by measuring the latency signal 54, the memory controller 30 cannot detect the latency signal 54 before the fixed latency period 51 elapses. There is. In this case, the memory controller 30 cannot acquire the read data 52 and cannot transmit the read data 52 to the host device 10. The memory controller 30 transmits an error as a response to the read command at the timing when the fixed latency period 51 has elapsed. The host device 10 and the memory controller 30 execute update processing of the fixed latency period 51 described later. The updated fixed latency period 51 is preferably longer than the fixed latency period 51 before the update. Then, the host device 10 may transmit a read command to the memory controller 10 again.

このように、メモリコントローラ30は、対象アドレスを含む読み出しコマンドを受信した場合に固定レイテンシ処理を実行する。乱数13A及び34Aから生成される固定レイテンシ期間51はランダムであるため、第三者は、固定レイテンシ期間51を特定することができない。半導体記憶装置の違法な複製品のメモリコントローラは、固定レイテンシ期間51を利用して固定レイテンシ処理を実行するメモリコントローラ30の動作を再現できない。以下、半導体記憶装置20の違法な複製品を、単に「複製品」と記載する。   As described above, the memory controller 30 executes the fixed latency process when the read command including the target address is received. Since the fixed latency period 51 generated from the random numbers 13A and 34A is random, the third party cannot specify the fixed latency period 51. An illegally copied memory controller of a semiconductor memory device cannot reproduce the operation of the memory controller 30 that executes the fixed latency processing using the fixed latency period 51. Hereinafter, an illegally copied product of the semiconductor memory device 20 is simply referred to as a “replicated product”.

例えば、図4において、プログラム41A〜41Cは、プログラム41を単純にデータサイズに基づいて区切ることにより生成される。ページP−3のアドレスが対象アドレスデータ43に登録されている場合、メモリコントローラ30は、ページP−3に格納されたプログラム41Bを、固定レイテンシ処理により送信する。一方、複製品のメモリコントローラは、第三者により固定レイテンシ期間51が特定されていないため、プログラム41Bを固定レイテンシ処理によりホスト装置10に送信することができない。複製品がホスト装置10に接続されている場合、ホスト装置10は、プログラム41を再構成できないため、プログラム41を利用することが不可能となる。このように、第三者は、ホスト装置10が利用可能な複製品を製造することができない。また、メモリコントローラ30が、乱数34Bを用いてビジー信号及びレディ信号を隠蔽するため、第三者は、固定レイテンシ処理によりホスト装置10に送信される読み出しデータ52を特定することができない。従って、第三者は、半導体メモリ40に記録された対象アドレスのデータを複製することができない。   For example, in FIG. 4, programs 41A to 41C are generated by simply dividing the program 41 based on the data size. When the address of the page P-3 is registered in the target address data 43, the memory controller 30 transmits the program 41B stored in the page P-3 by fixed latency processing. On the other hand, since the fixed latency period 51 is not specified by a third party, the copied memory controller cannot transmit the program 41B to the host device 10 by the fixed latency processing. When the duplicate product is connected to the host device 10, the host device 10 cannot reconfigure the program 41, and thus cannot use the program 41. In this way, a third party cannot manufacture a copy that can be used by the host device 10. Further, since the memory controller 30 conceals the busy signal and the ready signal using the random number 34B, a third party cannot specify the read data 52 transmitted to the host device 10 by the fixed latency process. Therefore, the third party cannot copy the data of the target address recorded in the semiconductor memory 40.

次に、対象アドレスデータ43に登録されるアドレスについて説明する。対象アドレスデータ43に登録されるアドレスは、半導体メモリ40の全ページのアドレスであってもよいし、一部のアドレスであってもよい。一部のアドレスが対象アドレスデータ43に登録される場合、登録されるアドレスは、ホスト装置10によって少なくとも1回は読み出されるデータのアドレスであることが望ましい。例えば、ホスト装置10のブートコードを格納するページのアドレスなど、ホスト装置10が半導体メモリ40に必ずアクセスする領域のアドレスを登録すればよい。あるいは、ホスト装置10のアクセス頻度が高い領域のアドレスを登録してもよい。   Next, an address registered in the target address data 43 will be described. The addresses registered in the target address data 43 may be addresses of all pages of the semiconductor memory 40 or may be partial addresses. When some addresses are registered in the target address data 43, it is desirable that the registered addresses are addresses of data that is read at least once by the host device 10. For example, an address of an area where the host device 10 always accesses the semiconductor memory 40 such as an address of a page that stores the boot code of the host device 10 may be registered. Alternatively, an address of an area where the host device 10 is frequently accessed may be registered.

{2.4.固定レイテンシ期間51の更新}
メモリコントローラ30が固定レイテンシ処理により読み出しデータ52を送信した後に、ホスト装置10及びメモリコントローラ30は、固定レイテンシ期間51を更新する。固定レイテンシ期間51を更新する処理は、図5に示す固定レイテンシ期間51を決定する流れと同じである。ただし、固定レイテンシ期間51を更新する場合、図5に示す処理において、ホスト装置10は、乱数13Aと異なる乱数13Bを生成して記憶部143に格納する(ステップS111,S112)。乱数13Bがセットされた乱数交換コマンドがメモリコントローラ30に送信される(ステップS114)。メモリコントローラ30は、乱数34A及び34Bと異なる乱数34Cを生成し(ステップS211)、乱数34Cを乱数交換コマンドの応答として送信する(ステップS215)。この結果、ホスト装置10及びメモリコントローラ30において、起動時に生成された固定レイテンシ期間51と異なる固定レイテンシ期間51が生成される。ホスト装置10は、新たな固定レイテンシ期間51が生成された後に(ステップS116、図5参照)、次の読み出しコマンドを生成して送信する。
{2.4. Update of fixed latency period 51}
After the memory controller 30 transmits the read data 52 by the fixed latency process, the host device 10 and the memory controller 30 update the fixed latency period 51. The process of updating the fixed latency period 51 is the same as the flow for determining the fixed latency period 51 shown in FIG. However, when updating the fixed latency period 51, in the process shown in FIG. 5, the host device 10 generates a random number 13B different from the random number 13A and stores it in the storage unit 143 (steps S111 and S112). A random number exchange command in which the random number 13B is set is transmitted to the memory controller 30 (step S114). The memory controller 30 generates a random number 34C different from the random numbers 34A and 34B (step S211), and transmits the random number 34C as a response to the random number exchange command (step S215). As a result, the host device 10 and the memory controller 30 generate a fixed latency period 51 that is different from the fixed latency period 51 generated at startup. After the new fixed latency period 51 is generated (see step S116, FIG. 5), the host device 10 generates and transmits the next read command.

例えば、固定レイテンシ期間51の更新は、メモリコントローラ30においては、対象アドレスのデータを送信してから、次の読み出しコマンドを受け付けるまでの間に実行される。ホスト装置10においては、固定レイテンシ期間51の更新は、対象アドレスのデータを受信してから、次の読み出しコマンドを生成するまでの間に実行される。すなわち、ホスト装置10及びメモリコントローラ30は、対象アドレスのデータの読み出し処理が完了してから、予め設定された期間内に更新する。固定レイテンシ期間51を更新するタイミングを揃えることにより、ホスト装置10及びメモリコントローラ30は、同一の固定レイテンシ期間51を保持することができる。   For example, the update of the fixed latency period 51 is executed in the memory controller 30 after the data of the target address is transmitted until the next read command is received. In the host device 10, the update of the fixed latency period 51 is executed after the data of the target address is received until the next read command is generated. That is, the host device 10 and the memory controller 30 are updated within a preset period after the data reading process of the target address is completed. By aligning the timing for updating the fixed latency period 51, the host device 10 and the memory controller 30 can hold the same fixed latency period 51.

乱数生成器13及び34は真性乱数を生成するため、乱数生成器13及び34により生成される乱数に再現性がない。つまり、固定レイテンシ期間51の更新に用いられる乱数13B及び34Cは、乱数13A,34A及び34Bとそれぞれ異なる。更新後の固定レイテンシ期間51は、更新前の固定レイテンシ期間51と関係なく決定されるため、第三者は、更新後の固定レイテンシ期間を予測することができない。仮に、第三者が、メモリコントローラ30から出力される隠蔽信号を観測して隠蔽信号の長さ(固定レイテンシ期間51)を特定できたとしても、固定レイテンシ期間51は更新される。特定された固定レイテンシ期間51は、次の対象アドレスのデータの読み出しの際には使用されない。従って、第三者は、固定レイテンシ期間51を特定できたとしても、更新後の固定レイテンシ期間51を特定することができない。従って、第三者は、次の対象アドレスのデータを特定することができない。   Since the random number generators 13 and 34 generate genuine random numbers, the random numbers generated by the random number generators 13 and 34 are not reproducible. That is, the random numbers 13B and 34C used for updating the fixed latency period 51 are different from the random numbers 13A, 34A, and 34B, respectively. Since the fixed latency period 51 after the update is determined regardless of the fixed latency period 51 before the update, a third party cannot predict the fixed latency period after the update. Even if a third party can observe the concealment signal output from the memory controller 30 and specify the length of the concealment signal (fixed latency period 51), the fixed latency period 51 is updated. The specified fixed latency period 51 is not used when reading data of the next target address. Therefore, even if the third party can identify the fixed latency period 51, the third party cannot identify the updated fixed latency period 51. Therefore, the third party cannot specify the data of the next target address.

このように、本実施の形態に係るメモリシステム100において、ホスト装置10及びメモリコントローラ30は、同一の固定レイテンシ期間51をそれぞれ保持する。メモリコントローラ30は、対象アドレスを含む読み出しコマンドをホスト装置10から受信した場合、固定レイテンシ期間51に基づいて決定されるタイミングで対象アドレスのデータの送信を開始し、ホスト装置10は、固定レイテンシ期間51に基づいて決定されるタイミングで対象アドレスのデータの受信を開始する。第三者は、固定レイテンシ期間51を特定することができないため、固定レイテンシ期間51に基づいて対象アドレスのデータの送信タイミングを決定するメモリコントローラ30の動作を再現することができない。従って、第三者は、ホスト装置10が利用可能な半導体記憶装置20の違法な複製品を製造することができない。   Thus, in the memory system 100 according to the present embodiment, the host device 10 and the memory controller 30 each hold the same fixed latency period 51. When the memory controller 30 receives a read command including the target address from the host device 10, the memory controller 30 starts transmitting the data of the target address at a timing determined based on the fixed latency period 51. Reception of the data of the target address is started at a timing determined based on 51. Since the third party cannot specify the fixed latency period 51, the third party cannot reproduce the operation of the memory controller 30 that determines the transmission timing of the data of the target address based on the fixed latency period 51. Therefore, a third party cannot manufacture an illegal copy of the semiconductor memory device 20 that can be used by the host device 10.

また、固定レイテンシ期間51が乱数34Bにより隠蔽されるため、第三者が読み出しデータ52を特定することが困難となり、耐タンパ性を向上させることができる。また、固定レイテンシ期間51が更新されることにより、第三者が読み出しデータ52を特定することがさらに困難となるため、耐タンパ性をさらに向上させることができる。   Further, since the fixed latency period 51 is concealed by the random number 34B, it becomes difficult for a third party to specify the read data 52, and tamper resistance can be improved. Further, by updating the fixed latency period 51, it becomes more difficult for a third party to specify the read data 52, so that tamper resistance can be further improved.

{変形例1}
上記実施の形態において、ホスト装置10が、固定レイテンシ処理用のアクセス制御を実行する際に、固定レイテンシ期間51に受信する隠蔽信号を無視する例を説明したが、これに限られない。ホスト装置10は、固定レイテンシ期間51を経過するまでの間に受信する信号を監視することにより、半導体記憶装置20が違法な複製品であるか否かを判断してもよい。
{Modification 1}
In the above-described embodiment, the host device 10 described an example of ignoring the concealment signal received in the fixed latency period 51 when executing access control for fixed latency processing, but is not limited thereto. The host device 10 may determine whether or not the semiconductor memory device 20 is an illegal duplicate by monitoring a signal received until the fixed latency period 51 elapses.

図10は、ホスト装置10が対象アドレスを含む読み出しコマンドを送信した場合において、複製品のメモリコントローラ30が読み出しデータ52を送信するタイミングを示す図である。ホスト装置10は、対象アドレスを含む読み出しコマンドを送信する場合、レディ信号の受信タイミングを予め特定することができる。具体的には、ホスト装置10は、レディ信号の受信タイミングが固定レイテンシ期間51の終了直前であると判断する。   FIG. 10 is a diagram illustrating the timing at which the replicated memory controller 30 transmits read data 52 when the host device 10 transmits a read command including a target address. When the host device 10 transmits a read command including the target address, the host device 10 can specify the reception timing of the ready signal in advance. Specifically, the host device 10 determines that the ready signal reception timing is immediately before the end of the fixed latency period 51.

複製品のメモリコントローラは、固定レイテンシ処理を実行することができない。従って、複製品のメモリコントローラは、対象アドレスを含む読み出しコマンドをホスト装置10から受信した場合、固定レイテンシ処理でなく、通常の読み出し処理(可変レイテンシ処理)により読み出しデータ52を送信する。例えば、複製品のメモリコントローラは、時刻Td1にレイテンシ信号54を検出した場合、固定レイテンシ期間51を経過する前の時刻Td1にレディ信号を送信する。あるいは、複製品のメモリコントローラは、固定レイテンシ期間51を経過した後にレディ信号を検出した場合、固定レイテンシ期間51の経過後にレディ信号を送信する。   A replicated memory controller cannot perform fixed latency processing. Therefore, when a read command including a target address is received from the host device 10, the replicated memory controller transmits the read data 52 not by fixed latency processing but by normal read processing (variable latency processing). For example, when the memory controller of the duplicate product detects the latency signal 54 at time Td1, it transmits a ready signal at time Td1 before the fixed latency period 51 elapses. Alternatively, when the replica memory controller detects a ready signal after the fixed latency period 51 has elapsed, it transmits the ready signal after the fixed latency period 51 has elapsed.

この結果、ホスト装置10は、予め特定した受信タイミングと異なるタイミングでレディ信号を複製品のメモリコントローラから受信するため、レディ信号を送信する半導体記憶装置20が複製品であると判断することができる。   As a result, since the host device 10 receives the ready signal from the replica memory controller at a timing different from the reception timing specified in advance, it can be determined that the semiconductor memory device 20 that transmits the ready signal is a replica. .

{変形例2}
上記実施の形態では、メモリコントローラ30が、対象アドレスデータ43を参照して、読み出しアドレスが対象アドレスに一致するか否かを判断する例を説明したが、これに限られない。
{Modification 2}
In the above embodiment, the example in which the memory controller 30 determines whether the read address matches the target address with reference to the target address data 43 is not limited to this.

ホスト装置10が、可変レイテンシ処理及び固定レイテンシ処理のいずれかを一方の実行を指示する指示フラグを含む読み出しコマンドを生成してもよい。読み出しコマンドにおいて、指示フラグが読み出しアドレスの後に付加される。例えば、可変レイテンシ処理を指示するフラグが“00”に設定され、固定レイテンシ処理を指示するフラグが“01”に設定される。メモリコントローラ30は、指示フラグの値に応じて、可変レイテンシ処理又は固定レイテンシ処理の実行を決定する。この場合、メモリコントローラ30は、読み出しアドレスを対象アドレスデータ43に登録されたアドレスと比較する処理(ステップS412,S612)を実行しなくてもよい。   The host device 10 may generate a read command including an instruction flag that instructs one of the variable latency processing and the fixed latency processing to be executed. In the read command, an instruction flag is added after the read address. For example, a flag for instructing variable latency processing is set to “00”, and a flag for instructing fixed latency processing is set to “01”. The memory controller 30 determines execution of variable latency processing or fixed latency processing according to the value of the instruction flag. In this case, the memory controller 30 does not have to execute the process of comparing the read address with the address registered in the target address data 43 (steps S412 and S612).

また、ホスト装置10及びメモリコントローラ30は、固定レイテンシ期間51の長さに基づいて、固定レイテンシ処理を実行するか否かを判断してもよい。この場合、ホスト装置10及びメモリコントローラ30には、固定レイテンシ期間51との比較に用いられる閾値が設定される。   Further, the host device 10 and the memory controller 30 may determine whether to execute the fixed latency process based on the length of the fixed latency period 51. In this case, threshold values used for comparison with the fixed latency period 51 are set in the host device 10 and the memory controller 30.

ホスト装置10及びメモリコントローラ30は、図5に示す処理により固定レイテンシ期間51を生成した場合、固定レイテンシ期間51を閾値と比較する。固定レイテンシ期間51が閾値より長い場合、ホスト装置10は、固定レイテンシ処理用のアクセス制御を実行し、メモリコントローラ30は、固定レイテンシ処理を実行する。ホスト装置10が読み出しデータ52を受信した後に、固定レイテンシ期間51が、ホスト装置10及びメモリコントローラ30において更新され、再び閾値と比較される。   When the host device 10 and the memory controller 30 generate the fixed latency period 51 by the processing shown in FIG. 5, the host apparatus 10 and the memory controller 30 compare the fixed latency period 51 with a threshold value. When the fixed latency period 51 is longer than the threshold value, the host device 10 executes access control for fixed latency processing, and the memory controller 30 executes fixed latency processing. After the host device 10 receives the read data 52, the fixed latency period 51 is updated in the host device 10 and the memory controller 30 and again compared with the threshold value.

一方、生成された固定レイテンシ期間51が閾値以下である場合、ホスト装置10は、可変レイテンシ処理用のアクセス制御を実行し、メモリコントローラ30は、可変レイテンシ処理を実行する。ホスト装置10が読み出しデータ52を受信した後に、固定レイテンシ期間51が、ホスト装置10及びメモリコントローラ30において更新され、再び閾値と比較される。   On the other hand, when the generated fixed latency period 51 is equal to or less than the threshold value, the host device 10 executes access control for variable latency processing, and the memory controller 30 executes variable latency processing. After the host device 10 receives the read data 52, the fixed latency period 51 is updated in the host device 10 and the memory controller 30 and again compared with the threshold value.

{変形例3}
上記実施の形態では、メモリコントローラ30が、固定レイテンシ処理を実行する場合、読み出しコマンドを受信してから固定レイテンシ期間51を経過するまで読み出しデータ52の送信を待機する例を説明したが、これに限られない。
{Modification 3}
In the above-described embodiment, when the fixed latency process is executed, the memory controller 30 waits for the transmission of the read data 52 until the fixed latency period 51 elapses after receiving the read command. Not limited.

メモリコントローラ30は、レイテンシ信号54を検出してから固定レイテンシ期間51を経過するまで、読み出しデータ52の送信を待機してもよい。図11は、読み出しデータ52の送信タイミングの他の例を示す図である。   The memory controller 30 may wait for transmission of the read data 52 from the detection of the latency signal 54 until the fixed latency period 51 elapses. FIG. 11 is a diagram illustrating another example of the transmission timing of the read data 52.

図11に示すように、メモリコントローラ30は、読み出しコマンドを受信した後に、隠蔽信号でなく、ビジー信号の送信を開始する。この理由については後述する。メモリコントローラ30は、レイテンシ信号54を検出した場合、ビジー信号に変えてレディ信号を送信する。そして、メモリコントローラ30は、レディ信号の後に続けて隠蔽信号の送信を開始する。   As shown in FIG. 11, after receiving the read command, the memory controller 30 starts transmitting a busy signal instead of a concealment signal. The reason for this will be described later. When the memory controller 30 detects the latency signal 54, the memory controller 30 transmits a ready signal instead of the busy signal. Then, the memory controller 30 starts transmitting the concealment signal after the ready signal.

ホスト装置10は、レディ信号を固定レイテンシ期間51の開始時刻と判断し、レディ信号を受信してから固定レイテンシ期間51を経過するまで待機する。メモリコントローラ30は、レディ信号を送信してから固定レイテンシ期間51を経過した後に、読み出しデータ52の送信を開始する。つまり、メモリコントローラ30は、固定レイテンシ期間51の開始時刻を通知するために、ビジー信号及びレディ信号を利用する。この場合であっても、読み出しデータ52の送信タイミングを隠蔽することが可能となる。   The host device 10 determines that the ready signal is the start time of the fixed latency period 51 and waits until the fixed latency period 51 elapses after receiving the ready signal. The memory controller 30 starts transmitting read data 52 after a fixed latency period 51 has elapsed since the ready signal was transmitted. That is, the memory controller 30 uses the busy signal and the ready signal to notify the start time of the fixed latency period 51. Even in this case, the transmission timing of the read data 52 can be concealed.

{その他の変形例}
上記実施の形態において、メモリコントローラ30が、読み出しコマンドを受信してから固定レイテンシ期間51を経過するまでの間、隠蔽信号を送信する例を説明したが、これに限られない。メモリコントローラ30は、読み出しコマンドの受信を完了してから固定レイテンシ期間51を経過するまでの間、隠蔽信号に代えてビジー信号及びレディ信号を送信してもよい。この場合であっても、対象アドレスのデータの送信タイミングが固定レイテンシ期間51に基づいて決定される。第三者は、固定レイテンシ期間51を特定できないため、複製品のコントローラは、レディ信号を固定レイテンシ期間51に基づいて定められるタイミングで送信することができない。このように、隠蔽信号を使用しなくても、複製品の製造を困難とすることができる。
{Other variations}
In the above embodiment, the example in which the memory controller 30 transmits the concealment signal after receiving the read command until the fixed latency period 51 elapses has been described, but the present invention is not limited to this. The memory controller 30 may transmit a busy signal and a ready signal instead of the concealment signal until the fixed latency period 51 elapses after reception of the read command is completed. Even in this case, the transmission timing of the data of the target address is determined based on the fixed latency period 51. Since the third party cannot specify the fixed latency period 51, the controller of the duplicate product cannot transmit the ready signal at a timing determined based on the fixed latency period 51. In this way, it is possible to make it difficult to produce a duplicate product without using a concealment signal.

上記実施の形態において、ホスト装置10及びメモリコントローラ30が固定レイテンシ期間51をそれぞれ生成する例を説明したが、これに限られない。ホスト装置10及びメモリコントローラ30が、同一の固定レイテンシ期間51を保持していればよい。   In the above embodiment, the example in which the host device 10 and the memory controller 30 each generate the fixed latency period 51 has been described. However, the present invention is not limited to this. It is only necessary that the host device 10 and the memory controller 30 hold the same fixed latency period 51.

例えば、ホスト装置10のみが、固定レイテンシ期間51を生成するようにしてもよい。この場合、固定レイテンシ期間51は、乱数13Aのみから生成される。ホスト装置10は、乱数交換コマンドに代えて、生成した固定レイテンシ期間51をメモリコントローラ50に送信すればよい。逆に、メモリコントローラ30のみが、固定レイテンシ期間51を生成し、生成した固定レイテンシ期間51をホスト装置10に送信してもよい。   For example, only the host device 10 may generate the fixed latency period 51. In this case, the fixed latency period 51 is generated only from the random number 13A. The host device 10 may transmit the generated fixed latency period 51 to the memory controller 50 instead of the random number exchange command. Conversely, only the memory controller 30 may generate the fixed latency period 51 and transmit the generated fixed latency period 51 to the host device 10.

また、ホスト装置10及びメモリコントローラに固定レイテンシ期間51の初期値が予め設定されていてもよい。あるいは、固定レイテンシ期間51の初期値がホスト装置10のみに予め設定されてもよい。この場合、ホスト装置10が、起動時に固定レイテンシ期間51をメモリコントローラ30に送信してもよい。   The initial value of the fixed latency period 51 may be set in advance in the host device 10 and the memory controller. Alternatively, the initial value of the fixed latency period 51 may be set in advance only for the host device 10. In this case, the host device 10 may transmit the fixed latency period 51 to the memory controller 30 at the time of activation.

また、上記実施の形態において、ホスト装置10及びメモリコントローラ30が固定レイテンシ期間51を生成する際に乱数を交換する例を説明したが、これに限られない。乱数生成器13及び34が、同一のアルゴリズムを利用する擬似乱数生成器である場合、乱数の交換を省略することができる。具体的には、乱数生成器13及び34の両者は、予め設定されたタイミングで生成する乱数を更新することにより、同一の擬似乱数を生成する。これにより、ホスト装置10とメモリコントローラ30とが乱数を交換しなくてもよいため、固定レイテンシ期間51の秘匿性を向上させることができる。乱数を更新するタイミングは、例えば、読み出しコマンドに基づく読み出し処理が所定の回数行われたときや、ホスト装置10が乱数の更新を指示するコマンドを送信するときなどが考えられる。   In the above embodiment, the host device 10 and the memory controller 30 have exchanged random numbers when generating the fixed latency period 51. However, the present invention is not limited to this. When the random number generators 13 and 34 are pseudo random number generators using the same algorithm, the exchange of random numbers can be omitted. Specifically, both of the random number generators 13 and 34 generate the same pseudo-random number by updating the random number generated at a preset timing. Thereby, since the host apparatus 10 and the memory controller 30 do not need to exchange random numbers, the confidentiality of the fixed latency period 51 can be improved. The timing for updating the random number may be, for example, when a read process based on the read command is performed a predetermined number of times, or when the host device 10 transmits a command instructing to update the random number.

このように、ホスト装置10とメモリコントローラ30との間で、固定レイテンシ期間51又は固定レイテンシ期間51の生成に用いられる乱数が送受信されないようにすることにより、第三者が、固定レイテンシ期間51又は固定レイテンシ期間51に関するデータを特定することがさらに困難となるため、複製品を製造することをさらに困難にさせることができる。   In this way, by preventing transmission and reception of the fixed latency period 51 or the random number used to generate the fixed latency period 51 between the host device 10 and the memory controller 30, a third party can fix the fixed latency period 51 or Since it becomes more difficult to specify the data related to the fixed latency period 51, it is possible to make it more difficult to manufacture a duplicate product.

なお、上記の擬似乱数の利用は、乱数の交換を制限するものではない。例えば、乱数生成器13及び34が異なるアルゴリズムを用いて擬似乱数を生成してもよい。この場合、乱数生成器13及び34がそれぞれ生成した擬似乱数の交換が行われる。   Note that the use of the above pseudo-random numbers does not limit the exchange of random numbers. For example, the random number generators 13 and 34 may generate pseudo-random numbers using different algorithms. In this case, the pseudo random numbers generated by the random number generators 13 and 34 are exchanged.

また、上記実施の形態において、固定レイテンシ処理が実行されるたびに、固定レイテンシ期間51が更新される例を説明したが、ホスト装置10及びメモリコントローラ30は、固定レイテンシ期間51を更新しなくてもよい。   In the above embodiment, the fixed latency period 51 is updated every time the fixed latency process is executed. However, the host device 10 and the memory controller 30 do not update the fixed latency period 51. Also good.

また、上記実施の形態で説明したメモリコントローラ30の一部又は全部は、集積回路(例えば、LSI、システムLSI等)として実現されるものであってもよい。   In addition, part or all of the memory controller 30 described in the above embodiments may be realized as an integrated circuit (for example, an LSI, a system LSI, or the like).

また、上記実施の形態における各処理の一部又は全部をハードウェアにより実現してもよいし、ソフトウェア(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,34 乱数生成器
14 ホスト側コントローラ
20 半導体記憶装置
30 メモリコントローラ
31 コマンドデコーダ
32 レイテンシ取得部
321,322 レジスタ
33 アクセス制御部
40 半導体メモリ
43 対象アドレスデータ
51 固定レイテンシ期間
52 読み出しデータ
331 判断部
332 読み出し制御部
333 送信制御部
141 アクセス制御部
142 レイテンシ生成部
143 記憶部
100 memory system 10 host device 11 CPU
12 RAM
13, 34 Random number generator 14 Host-side controller 20 Semiconductor memory device 30 Memory controller 31 Command decoder 32 Latency acquisition unit 321, 322 Register 33 Access control unit 40 Semiconductor memory 43 Target address data 51 Fixed latency period 52 Read data 331 Determination unit 332 Read control unit 333 Transmission control unit 141 Access control unit 142 Latency generation unit 143 Storage unit

Claims (13)

ホスト装置からの要求に応じて半導体メモリにアクセスするメモリコントローラであって、
前記ホスト装置から受信した読み出しコマンドに含まれるアドレスに基づいて、前記アドレスのデータの読み出しを前記半導体メモリに指示する読み出し制御部と、
前記アドレスのデータの送信タイミングの決定に用いられ、前記ホスト装置により保持されるレイテンシ期間と同一の固定レイテンシ期間を取得するレイテンシ取得部と、
前記固定レイテンシ期間に基づいて定められるタイミングで前記アドレスのデータを前記ホスト装置に送信する送信制御部と、
を備えるメモリコントローラ。
A memory controller that accesses a semiconductor memory in response to a request from a host device,
A read control unit that instructs the semiconductor memory to read data of the address based on an address included in a read command received from the host device;
A latency acquisition unit that is used to determine the transmission timing of the data at the address and acquires a fixed latency period that is the same as the latency period held by the host device;
A transmission control unit that transmits the data of the address to the host device at a timing determined based on the fixed latency period;
A memory controller.
請求項1に記載のメモリコントローラであって、
前記送信制御部は、所定のタイミングから前記固定レイテンシ期間を経過するまでに前記読み出しコマンドに含まれるアドレスのデータの出力が可能となったことが前記半導体メモリから通知された場合、前記固定レイテンシ期間を経過したタイミングで前記アドレスのデータを送信するメモリコントローラ。
The memory controller of claim 1,
When the transmission control unit is notified from the semiconductor memory that output of data at an address included in the read command is possible before a fixed latency period elapses from a predetermined timing, the fixed latency period A memory controller that transmits the data of the address at a timing after elapse of time.
請求項1又は2に記載のメモリコントローラであって、
前記送信制御部は、前記アドレスのデータの送信が開始されるまでに送信されるビジー信号を隠蔽するメモリコントローラ。
The memory controller according to claim 1 or 2,
The transmission control unit is a memory controller that conceals a busy signal transmitted before transmission of data at the address is started.
請求項3に記載のメモリコントローラであって、
前記送信制御部は、前記ビジー信号の送信期間及び前記ビジー信号の値の少なくとも一方を隠蔽するメモリコントローラ。
The memory controller according to claim 3,
The transmission control unit is a memory controller that hides at least one of a transmission period of the busy signal and a value of the busy signal.
請求項4に記載のメモリコントローラであって、さらに、
乱数を生成する乱数生成器、
を備え、
前記送信制御部は、前記乱数生成器により生成される乱数を用いて前記ビジー信号の送信期間及び前記ビジー信号の値の少なくとも一方を隠蔽するメモリコントローラ。
5. The memory controller of claim 4, further comprising:
A random number generator to generate random numbers,
With
The transmission control unit is a memory controller that conceals at least one of a transmission period of the busy signal and a value of the busy signal using a random number generated by the random number generator.
請求項1ないし請求項5のいずれかに記載のメモリコントローラであって、
前記レイテンシ取得部は、所定の条件が満たされた場合、前記固定レイテンシ期間を更新するメモリコントローラ。
A memory controller according to any one of claims 1 to 5,
The latency acquisition unit is a memory controller that updates the fixed latency period when a predetermined condition is satisfied.
請求項6に記載のメモリコントローラであって、
前記レイテンシ取得部は、前記送信制御部により前記アドレスのデータが送信された後に、前記固定レイテンシ期間を更新するメモリコントローラ。
The memory controller according to claim 6, comprising:
The latency acquisition unit is a memory controller that updates the fixed latency period after the data of the address is transmitted by the transmission control unit.
請求項1ないし請求項7のいずれかに記載のメモリコントローラであって、さらに、
前記アドレスのデータを前記固定レイテンシ期間に基づいて定められるタイミングで送信するか、前記読み出し制御部が前記アドレスのデータを読み出すことが可能となったときに送信するかを判断する判断部、
を備えるメモリコントローラ。
The memory controller according to claim 1, further comprising:
A determination unit that determines whether to transmit the data of the address at a timing determined based on the fixed latency period, or to transmit when the read control unit can read the data of the address;
A memory controller.
請求項1に記載のメモリコントローラであって、
前記レイテンシ取得部は、
乱数を生成する乱数生成器と、
所定のアルゴリズムを用いて、前記乱数生成器により生成された乱数から前記固定レイテンシ期間を生成するレイテンシ生成部と、
を含むメモリコントローラ。
The memory controller of claim 1,
The latency acquisition unit
A random number generator for generating random numbers;
A latency generation unit that generates the fixed latency period from the random number generated by the random number generator using a predetermined algorithm;
Including memory controller.
請求項1に記載のメモリコントローラであって、
前記レイテンシ取得部は、前記ホスト装置により生成された固定レイテンシ期間を取得するメモリコントローラ。
The memory controller of claim 1,
The latency acquisition unit is a memory controller that acquires a fixed latency period generated by the host device.
ホスト装置と、
半導体メモリと、
前記ホスト装置からの要求に応じて前記半導体メモリにアクセスするメモリコントローラと、
を備え、
前記メモリコントローラは、
前記ホスト装置から受信した読み出しコマンドに含まれるアドレスに基づいて、前記アドレスのデータの読み出しを前記半導体メモリに指示する読み出し制御部と、
前記アドレスのデータの送信タイミングの決定に用いられる固定レイテンシ期間を取得するレイテンシ取得部と、
前記固定レイテンシ期間に基づいて定められるタイミングで前記アドレスのデータを前記ホスト装置に送信する送信制御部と、
を備え、
前記ホスト装置は、
前記固定レイテンシ期間を記憶する記憶部と、
前記固定レイテンシ期間に基づいて定められるタイミングで前記アドレスのデータを前記メモリコントローラから受信するアクセス制御部と、
を備えるメモリシステム。
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
A read control unit that instructs the semiconductor memory to read data of the address based on an address included in a read command received from the host device;
A latency acquisition unit that acquires a fixed latency period used to determine the transmission timing of the data at the address;
A transmission control unit that transmits the data of the address to the host device at a timing determined based on the fixed latency period;
With
The host device is
A storage unit for storing the fixed latency period;
An access control unit that receives data of the address from the memory controller at a timing determined based on the fixed latency period;
A memory system comprising:
請求項11に記載のメモリシステムであって、
前記アクセス制御部は、前記アドレスのデータを受信してから予め設定された期間を経過するまでに、前記固定レイテンシ期間を更新し、
前記送信制御部は、前記アドレスのデータを送信してから予め設定された期間を経過するまでに、前記固定レイテンシ期間を更新するメモリシステム。
12. The memory system according to claim 11, wherein
The access control unit updates the fixed latency period from when the address data is received until a preset period elapses,
The transmission control unit is a memory system in which the fixed latency period is updated until a predetermined period elapses after the data of the address is transmitted.
請求項11又は請求項12に記載のメモリシステムであって、
前記メモリコントローラは、さらに、
第1乱数を生成する第1乱数生成器、
を備え、
前記ホスト装置は、さらに、
第2乱数を生成する第2乱数生成器、
を備え、
前記レイテンシ取得部及び前記アクセス制御部の各々は、所定のアルゴリズムを用いて、前記第1乱数と前記第2乱数から前記固定レイテンシ期間を生成するメモリシステム。
The memory system according to claim 11 or 12,
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 latency acquisition unit and the access control unit generates the fixed latency period from the first random number and the second random number using a predetermined algorithm.
JP2015171271A 2015-08-31 2015-08-31 Memory controller Active JP6462537B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015171271A JP6462537B2 (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
JP2015171271A JP6462537B2 (en) 2015-08-31 2015-08-31 Memory controller

Publications (2)

Publication Number Publication Date
JP2017049714A true JP2017049714A (en) 2017-03-09
JP6462537B2 JP6462537B2 (en) 2019-01-30

Family

ID=58279749

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015171271A Active JP6462537B2 (en) 2015-08-31 2015-08-31 Memory controller

Country Status (1)

Country Link
JP (1) JP6462537B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684239A (en) * 2017-10-18 2019-04-26 张英辉 The method for preventing the nonvolatile memory of System on Chip/SoC to be replicated

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095701A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
WO2010122895A1 (en) * 2009-04-23 2010-10-28 株式会社メガチップス Memory control device, semiconductor memory device, memory system, and memory control method
WO2014193376A1 (en) * 2013-05-30 2014-12-04 Hewlett-Packard Development Company, L.P. Separate memory controllers to access data in memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095701A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
WO2010122895A1 (en) * 2009-04-23 2010-10-28 株式会社メガチップス Memory control device, semiconductor memory device, memory system, and memory control method
WO2014193376A1 (en) * 2013-05-30 2014-12-04 Hewlett-Packard Development Company, L.P. Separate memory controllers to access data in memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684239A (en) * 2017-10-18 2019-04-26 张英辉 The method for preventing the nonvolatile memory of System on Chip/SoC to be replicated
CN109684239B (en) * 2017-10-18 2023-06-09 张英辉 Method for preventing nonvolatile memory of system chip from being duplicated

Also Published As

Publication number Publication date
JP6462537B2 (en) 2019-01-30

Similar Documents

Publication Publication Date Title
US10685145B2 (en) Secure processor and a program for a secure processor
US9842212B2 (en) System and method for a renewable secure boot
US20170060460A1 (en) Memory controller
JP2007226481A (en) Secure processor
JP2013137630A (en) Information processor, data management method and storage device
CN107924440B (en) Method, system, and computer readable medium for managing containers
JP2014098951A (en) Terminal device, integrity verification system, and program
US7624442B2 (en) Memory security device for flexible software environment
JP6462537B2 (en) Memory controller
JP2013037417A (en) Memory system, information processor, memory device, and memory system operation method
JP6456799B2 (en) Memory controller
US11966748B2 (en) Dynamic boot configuration
JP2021196763A (en) Electronic control apparatus, and control method
JP2011034130A (en) Information processor, information processing method, and program
US8909837B2 (en) Method for executing system management interrupt by using identifiers
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: 20181106

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: 20181218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181227

R150 Certificate of patent or registration of utility model

Ref document number: 6462537

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