特許第6207551号(P6207551)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社メガチップスの特許一覧

<>
  • 特許6207551-メモリシステム 図000002
  • 特許6207551-メモリシステム 図000003
  • 特許6207551-メモリシステム 図000004
  • 特許6207551-メモリシステム 図000005
  • 特許6207551-メモリシステム 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6207551
(24)【登録日】2017年9月15日
(45)【発行日】2017年10月4日
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
   H04L 9/20 20060101AFI20170925BHJP
   G06F 21/60 20130101ALI20170925BHJP
【FI】
   H04L9/00 653
   G06F21/60 320
【請求項の数】5
【全頁数】13
(21)【出願番号】特願2015-139255(P2015-139255)
(22)【出願日】2015年7月10日
(65)【公開番号】特開2017-22585(P2017-22585A)
(43)【公開日】2017年1月26日
【審査請求日】2017年6月13日
【早期審査対象出願】
(73)【特許権者】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100136353
【弁理士】
【氏名又は名称】高尾 建吾
(72)【発明者】
【氏名】菅原 崇彦
【審査官】 青木 重徳
(56)【参考文献】
【文献】 特開2008−140104(JP,A)
【文献】 特開2001−110183(JP,A)
【文献】 特開平05−075880(JP,A)
【文献】 特開2001−077805(JP,A)
【文献】 特開平11−025029(JP,A)
【文献】 特開2017−021608(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/20
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
ホスト装置と、
前記ホスト装置に接続されるメモリ装置と、
を備え、
前記ホスト装置は、
第1のクロックに同期して前記メモリ装置へのコマンド送信を制御する送信制御回路と、
前記メモリ装置へ送信するコマンドを第1のクロックに同期して暗号化することにより、暗号化コマンドを生成する暗号回路と、
第2のクロックに同期して前記メモリ装置からのデータ受信を制御する受信制御回路と、
前記メモリ装置から受信した暗号化データを第2のクロックに同期して復号化する復号回路と、
前記送信制御回路及び前記受信制御回路を制御する主制御回路と、
を有し、
前記メモリ装置は、
データが格納されたメモリアレイと、
前記メモリアレイへのアクセスを制御する制御回路と、
を有し、
前記送信制御回路は、第1のクロックを前記制御回路に送信し、
前記制御回路は、前記送信制御回路から受信した第1のクロックを第2のクロックとして前記受信制御回路に送信し、
前記主制御回路は、前記ホスト装置と前記メモリ装置との間の伝搬遅延量に基づいて、所定の補正値を決定し、
前記送信制御回路は、前記主制御回路から入力された前記補正値に基づいて、前記メモリ装置からのデータ受信が開始されてから当該データ受信が完了するまでの第1のクロックのサイクル数を補正する、メモリシステム。
【請求項2】
前記送信制御回路は、第1のクロックのサイクル数をカウントする第1のカウンタを含み、
前記受信制御回路は、第2のクロックのサイクル数をカウントする第2のカウンタを含み、
前記主制御回路は、前記メモリ装置へのコマンド送信が完了してから、前記メモリ装置からReady信号を受信するまでの前記第1のカウンタのカウント値と、前記メモリ装置から最初のBusy信号を受信してから、前記メモリ装置からReady信号を受信するまでの前記第2のカウンタのカウント値とに基づいて、前記補正値を決定する、請求項1に記載のメモリシステム。
【請求項3】
前記送信制御回路は、第1のクロックのサイクル数をカウントする第1のカウンタを含み、
前記主制御回路は、前記メモリ装置へのコマンド送信が完了してから、前記メモリ装置から最初のBusy信号を受信するまでの前記第1のカウンタのカウント値に基づいて、前記補正値を算出する、請求項1に記載のメモリシステム。
【請求項4】
前記暗号回路及び前記復号回路として共通の暗号復号回路が実装されている、請求項1〜3のいずれか一つに記載のメモリシステム。
【請求項5】
ホスト装置と、
前記ホスト装置に接続されるメモリ装置と、
を備え、
前記ホスト装置は、
第1のクロックに同期して前記メモリ装置へのコマンド送信を制御する送信制御回路と、
前記メモリ装置へ送信するコマンドを第1のクロックに同期して暗号化することにより、暗号化コマンドを生成する暗号回路と、
第2のクロックに同期して前記メモリ装置からのデータ受信を制御する受信制御回路と、
前記メモリ装置から受信した暗号化データを第2のクロックに同期して復号化する復号回路と、
を有し、
前記暗号回路と前記復号回路とは個別に実装されており、
前記送信制御回路は、第1の同期信号を前記暗号回路及び前記復号回路に入力することにより、前記暗号回路がコマンドの暗号化を実行している期間内において前記復号回路を動作させ、
前記受信制御回路は、第2の同期信号を前記暗号回路及び前記復号回路に入力することにより、前記復号回路が暗号化データの復号化を実行している期間内において前記暗号回路を動作させる、メモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホスト装置とメモリ装置とを備えるメモリシステムに関する。
【背景技術】
【0002】
ホスト装置とそれに接続されるメモリ装置とを備えるメモリシステムにおいて、クロックに同期して動作するメモリシステムでは、その動作の高速化に伴い、両装置間で送受信されるクロックやデータの伝搬遅延が大きくなり、クロックの1サイクル内でのデータ転送が困難になりつつある。
【0003】
そこで、従来のメモリシステムでは、データ遅延量の増大に起因するデータの損失を防止すべく、システム内部で生成したデータストローブ信号に同期して両装置間でのデータの送受信が行われてきた(例えば下記特許文献1〜3参照)。
【0004】
また、両装置間で暗号化通信を行う場合、従来のメモリシステムでは、共通の単一クロックに同期して暗号化処理及び復号化処理の双方が実行されていた。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−145999号公報
【特許文献2】特開2011−216079号公報
【特許文献3】特表2011−508311号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、単一クロックに同期して暗号化処理及び復号化処理の双方を実行する方式の暗号化通信では、通信速度の高速化に伴い、暗号化処理及び復号化処理を適切に同期化させることが困難になりつつある。
【0007】
本発明はかかる事情に鑑みて成されたものであり、ホスト装置とそれに接続されるメモリ装置とを備えるメモリシステムにおいて、両装置間の高速化暗号通信を低コストかつ簡易に実現することが可能なメモリシステムを得ることを目的とするものである。
【課題を解決するための手段】
【0008】
本発明の第1の態様に係るメモリシステムは、ホスト装置と、前記ホスト装置に接続されるメモリ装置と、を備え、前記ホスト装置は、第1のクロックに同期して前記メモリ装置へのコマンド送信を制御する送信制御回路と、前記メモリ装置へ送信するコマンドを第1のクロックに同期して暗号化することにより、暗号化コマンドを生成する暗号回路と、第2のクロックに同期して前記メモリ装置からのデータ受信を制御する受信制御回路と、前記メモリ装置から受信した暗号化データを第2のクロックに同期して復号化する復号回路と、前記送信制御回路及び前記受信制御回路を制御する主制御回路と、を有し、前記メモリ装置は、データが格納されたメモリアレイと、前記メモリアレイへのアクセスを制御する制御回路と、を有し、前記送信制御回路は、第1のクロックを前記制御回路に送信し、前記制御回路は、前記送信制御回路から受信した第1のクロックを第2のクロックとして前記受信制御回路に送信し、前記主制御回路は、前記ホスト装置と前記メモリ装置との間の伝搬遅延量に基づいて、所定の補正値を決定し、前記送信制御回路は、前記主制御回路から入力された前記補正値に基づいて、前記メモリ装置からのデータ受信が開始されてから当該データ受信が完了するまでの第1のクロックのサイクル数を補正することを特徴とするものである。
【0009】
第1の態様に係るメモリシステムによれば、送信制御回路及び暗号回路は第1のクロックに同期して動作し、受信制御回路及び復号回路は第2のクロックに同期して動作する。従って、通信速度が高速化した場合であっても暗号化処理及び復号化処理を適切に同期化させることができ、その結果、ホスト装置とメモリ装置との間の高速化暗号通信を低コストかつ簡易に実現することが可能となる。
また、第1の態様に係るメモリシステムによれば、メモリ装置の制御回路は、ホスト装置の送信制御回路から受信した第1のクロックをフィードバックすることにより、第2のクロックとしてホスト装置の受信制御回路に送信する。そして、受信制御回路は、フィードバックされた第2のクロックに同期してメモリ装置からのデータ受信を制御する。従って、第1及び第2のクロックとは別のデータストローブ信号を新たに生成する必要がないため、データストローブ信号の生成回路やタイミング調整回路の実装を省略でき、その結果、ホスト装置とメモリ装置との間の高速化暗号通信を低コストかつ簡易に実現することが可能となる。また、第1のクロックを第2のクロックとしてフィードバックしているため、メモリアレイから読み出したデータを第2のクロックに同期してメモリ装置からホスト装置に送信する際に、配線遅延及びバッファ遅延に伴う伝搬遅延量を第2のクロックとデータとで実質的に相殺でき、その結果、データの損失を防止することが可能となる。
また、第1の態様に係るメモリシステムによれば、ホスト装置の主制御回路は、ホスト装置とメモリ装置との間の伝搬遅延量に基づいて所定の補正値を決定し、送信制御回路は、当該補正値に基づいて、メモリ装置からのデータ受信が開始されてからデータ受信が完了するまでの第1のクロックのサイクル数を補正する。このように、不定の伝搬遅延量から決定された補正値に基づいて、通信プロトコルで規定された固定サイクル数を補正することにより、固定サイクル数を過不足なく確保でき、その結果、ホスト装置の暗号回路及び復号回路、並びにメモリ装置の暗号回路及び復号回路の内部状態を一致させることができるため、システムを正常に動作させることが可能となる。
【0014】
本発明の第の態様に係るメモリシステムは、第の態様に係るメモリシステムにおいて特に、前記送信制御回路は、第1のクロックのサイクル数をカウントする第1のカウンタを含み、前記受信制御回路は、第2のクロックのサイクル数をカウントする第2のカウンタを含み、前記主制御回路は、前記メモリ装置へのコマンド送信が完了してから、前記メモリ装置からReady信号を受信するまでの前記第1のカウンタのカウント値と、前記メモリ装置から最初のBusy信号を受信してから、前記メモリ装置からReady信号を受信するまでの前記第2のカウンタのカウント値とに基づいて、前記補正値を決定することを特徴とするものである。
【0015】
の態様に係るメモリシステムによれば、主制御回路は、メモリ装置へのコマンド送信が完了してから、メモリ装置からReady信号を受信するまでの第1のカウンタのカウント値と、メモリ装置から最初のBusy信号を受信してから、メモリ装置からReady信号を受信するまでの第2のカウンタのカウント値とに基づいて、補正値を決定する。従って、配線遅延及びバッファ遅延に伴う不定の伝搬遅延量と、メモリアレイからのデータの読み出しに伴う不定のBusyサイクル数とに基づいて、補正値を正確に決定できるため、固定サイクル数を高精度に補正することが可能となる。
【0016】
本発明の第の態様に係るメモリシステムは、第の態様に係るメモリシステムにおいて特に、前記送信制御回路は、第1のクロックのサイクル数をカウントする第1のカウンタを含み、前記主制御回路は、前記メモリ装置へのコマンド送信が完了してから、前記メモリ装置から最初のBusy信号を受信するまでの前記第1のカウンタのカウント値に基づいて、前記補正値を算出することを特徴とするものである。
【0017】
の態様に係るメモリシステムによれば、主制御回路は、メモリ装置へのコマンド送信が完了してから、メモリ装置から最初のBusy信号を受信するまでの第1のカウンタのカウント値に基づいて、補正値を決定する。従って、配線遅延及びバッファ遅延に伴う不定の伝搬遅延量に基づいて補正値を簡易に決定することが可能となる。また、Busyサイクルの完了を待つことなく早期に補正値を決定できるため、補正値が異常値である場合に早期にエラー処理を開始することが可能となる。さらに、第2のカウンタが不要になるとともに、第1のカウンタのカウント値を削減できるため、全体としてホスト装置の回路規模を削減することが可能となる。
【0018】
本発明の第の態様に係るメモリシステムは、第1〜第のいずれか一つの態様に係るメモリシステムにおいて特に、前記暗号回路及び前記復号回路として共通の暗号復号回路が実装されていることを特徴とするものである。
【0019】
の態様に係るメモリシステムによれば、暗号回路及び復号回路として共通の暗号復号回路が実装されているため、暗号回路及び復号回路を個別に実装する場合と比較すると、ホスト装置の回路規模を削減することが可能となる。
【0020】
本発明の第の態様に係るメモリシステムは、ホスト装置と、前記ホスト装置に接続されるメモリ装置と、を備え、前記ホスト装置は、第1のクロックに同期して前記メモリ装置へのコマンド送信を制御する送信制御回路と、前記メモリ装置へ送信するコマンドを第1のクロックに同期して暗号化することにより、暗号化コマンドを生成する暗号回路と、第2のクロックに同期して前記メモリ装置からのデータ受信を制御する受信制御回路と、前記メモリ装置から受信した暗号化データを第2のクロックに同期して復号化する復号回路と、を有し、前記暗号回路と前記復号回路とは個別に実装されており、前記送信制御回路は、第1の同期信号を前記暗号回路及び前記復号回路に入力することにより、前記暗号回路がコマンドの暗号化を実行している期間内において前記復号回路を動作させ、前記受信制御回路は、第2の同期信号を前記暗号回路及び前記復号回路に入力することにより、前記復号回路が暗号化データの復号化を実行している期間内において前記暗号回路を動作させることを特徴とするものである。
【0021】
第5の態様に係るメモリシステムによれば、送信制御回路及び暗号回路は第1のクロックに同期して動作し、受信制御回路及び復号回路は第2のクロックに同期して動作する。従って、通信速度が高速化した場合であっても暗号化処理及び復号化処理を適切に同期化させることができ、その結果、ホスト装置とメモリ装置との間の高速化暗号通信を低コストかつ簡易に実現することが可能となる。
また、の態様に係るメモリシステムによれば、暗号回路と復号回路とは個別に実装されているため、暗号回路と復号回路とでそれぞれ最適な回路設計を容易に行うことが可能となる。
また、第5の態様に係るメモリシステムによれば、送信制御回路は、第1の同期信号を暗号回路及び復号回路に入力することにより、暗号回路がコマンドの暗号化を実行している期間内において復号回路を動作させる。また、受信制御回路は、第2の同期信号を暗号回路及び復号回路に入力することにより、復号回路が暗号化データの復号化を実行している期間内において暗号回路を動作させる。このように、暗号回路及び復号回路の一方が処理を実行している期間において他方を空回しで動作させることにより、暗号回路及び復号回路のキーストリーム等の内部状態を一致させることができ、その結果、適切な暗号通信を実現することが可能となる。
【発明の効果】
【0024】
本発明によれば、ホスト装置とメモリ装置との間の高速化暗号通信を低コストかつ簡易に実現することが可能なメモリシステムを得ることができる。
【図面の簡単な説明】
【0025】
図1】本発明の実施の形態1に係るメモリシステムの構成を示す図である。
図2】メモリシステムの読み出し動作を示すタイミングチャートである。
図3】本発明の実施の形態2に係るメモリシステムの構成を示す図である。
図4】変形例に係るメモリシステムの構成を示す図である。
図5】メモリシステムの読み出し動作を示すタイミングチャートである。
【発明を実施するための形態】
【0026】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0027】
<実施の形態1>
図1は、本発明の実施の形態1に係るメモリシステム1の構成を示す図である。図1に示すようにメモリシステム1は、ホスト装置2と、ホスト装置2に着脱自在に接続される半導体メモリ等のメモリ装置3とを備えて構成されている。
【0028】
ホスト装置2は、CPU11、内部メモリ12、及びメモリコントローラ13を備えている。メモリコントローラ13は、主制御回路21、送信制御回路22、受信制御回路23、及び暗号復号回路24を有している。送信制御回路22は、クロックC1に同期して、暗号復号回路24によるコマンドS5の暗号化処理、及び、メモリ装置3への暗号化コマンドS5の送信処理を制御する。受信制御回路23は、クロックC2に同期して、メモリ装置3からの暗号化データS7Aの受信処理、及び、暗号復号回路24による暗号化データS7Aの復号化処理を制御する。主制御回路21は、送信制御回路22及び受信制御回路23を制御する。図1に示すように、送信制御回路22はアクセス生成回路31及び送信カウンタ32を有しており、受信制御回路23は同期回路41及び受信カウンタ42を有している。
【0029】
主制御回路21、アクセス生成回路31、送信カウンタ32、暗号復号回路24、同期回路41、及び受信カウンタ42には、共通の基準クロックC0が入力される。アクセス生成回路31は、基準クロックC0に基づいてクロックC1を生成する。例えば、基準クロックC0を分周することにより、基準クロックC0の4サイクルを1サイクルとするクロックC1を生成する。
【0030】
メモリ装置3は、コンテンツデータ等の任意のデータS6が格納されたメモリアレイ52と、メモリアレイ52へのアクセスを制御する制御回路51とを有している。制御回路51は、暗号復号回路24と同様の暗号復号回路61を有している。
【0031】
以下、メモリアレイ52に格納されているデータS7をメモリ装置3からホスト装置2に読み出す処理を例にとり、メモリシステム1の動作を説明する。以下の例では、通信プロトコルによってコマンド長が8バイト、読み出しデータ長が512バイトに固定され、レイテンシ方式としてReady/Busy方式が採用されたメモリシステムを前提とする。また、コマンド及び読み出しデータは暗号化の対象であり、Busy信号及びReady信号は暗号化の対象でない場合を例にとる。
【0032】
図2は、メモリシステム1の読み出し動作を示すタイミングチャートである。CPU11は、アドレス情報及び読み出しサイズ等を含む読み出しコマンドを、主制御回路21に入力する。主制御回路21は、入力された読み出しコマンドをデコードすることにより、コマンドデータS1と、アクセス情報及びアクセス開始フラグを含む制御信号S2とを、送信制御回路22に入力する。
【0033】
アクセス生成回路31は、入力されたアクセス情報に基づいて、メモリ装置3にアクセスするためのアクセス制御信号S4を生成し、当該アクセス制御信号S4をメモリ装置3に送信する。また、アクセス生成回路31は、上記の通り基準クロックC0に基づいてクロックC1を生成し、当該クロックC1をメモリ装置3に送信する。また、送信制御回路22は、クロックC1に同期する同期信号T1を生成し、当該同期信号T1を暗号復号回路24に入力する。また、送信制御回路22は、入力されたコマンドデータS1に基づいて非暗号のコマンドS5を生成し、当該コマンドS5を暗号復号回路24に入力する。
【0034】
暗号復号回路24は、同期信号T1に同期してコマンドS5の暗号化処理を実行することにより、暗号化コマンドS5Aを生成し、当該暗号化コマンドS5AをクロックC1に同期してメモリ装置3に送信する。本実施の形態の例では、コマンド長が8バイトであり、クロックC1の1サイクルで1バイトのデータ転送が行われるため、クロックC1の8サイクルに相当する固定長の期間P1(図2)が、コマンド送信期間となる。送信制御回路22は、暗号化コマンドS5Aの最終バイト(第8バイト)の送信が完了すると、送信カウンタ32にカウント動作を開始させ、送信カウンタ32は以後のクロックC1のサイクル数をカウントする。また、送信制御回路22は、暗号化コマンドS5Aの最終バイト(第8バイト)の送信が完了すると、暗号復号回路24への同期信号T1の入力を停止する。これにより、コマンド送信期間P1の終了に伴って暗号復号回路24の動作が停止する。
【0035】
メモリ装置3の制御回路51は、ホスト装置2から受信したクロックC1をホスト装置2にフィードバックすることにより、クロックC1と同一周波数のクロックC2をホスト装置2に送信する。なお、クロックC1とは異なるクロックC2をメモリ装置3からホスト装置2に送信しても良い。
【0036】
暗号復号回路61は、受信した暗号化コマンドS5Aを復号化することによって、非暗号のコマンドS5を復元する。また、制御回路51は、コマンドS5をデコードすることによって、メモリアレイ52から所望のデータS7を読み出す。制御回路51は、メモリアレイ52からのデータS7の読み出し処理、及び、暗号復号回路61によるデータS7の暗号化処理が完了するまでは、Busy信号S6をホスト装置2に送信する。そして、読み出し処理及び暗号化処理が完了するとReady信号S6を送信し、Ready信号S6に続けて暗号化データS7Aを送信する。Busy信号S6、Ready信号S6、及び暗号化データS7Aの送信は、クロックC2に同期して行われる。
【0037】
図2を参照して、ホスト装置2が暗号化コマンドS5Aの最終バイトの送信を完了してから、Ready信号S6の受信を完了するまでの期間P2が、Ready/Busy期間となる。また、Ready/Busy期間P2に続く期間P3が、ホスト装置2がメモリ装置3から暗号化データS7Aを受信するデータ受信期間となる。本実施の形態の例では、読み出しデータ長が512バイトであり、クロックC2の1サイクルで1バイトのデータ転送が行われるため、クロックC2の512サイクルに相当する固定長の期間P3がデータ受信期間となる。但し、後述するように、クロックC1に関するデータ受信期間P3のサイクル数は補正される。
【0038】
ホスト装置2とメモリ装置3との間で暗号化コマンド及び暗号化データの送受信を行う場合には、両装置間の配線遅延とメモリ装置3の入出力バッファのバッファ遅延とに起因して、不定長の伝搬遅延が発生する。そして、高周波のクロックC1,C2を用いて高速化通信を行う場合には、その伝搬遅延量がクロックC1,C2の1サイクルよりも大きくなる。図2に示すように、暗号化コマンドS5Aの最終バイトの送信が完了してから、先頭のBusy信号S6の受信を開始するまでの間に、クロックC1,C2の1サイクルを超える伝搬遅延PDが発生している。伝搬遅延PDの遅延量は不定であり、また、Busy信号が継続するサイクル数も不定であるため、Ready/Busy期間P2は不定長となる。
【0039】
図1を参照して、ホスト装置2の受信制御回路23は、メモリ装置3から順に送信されたBusy信号S6、Ready信号S6、及び暗号化データS7AをクロックC2に同期して受信する。受信制御回路23は、Busy信号S6及びReady信号S6を主制御回路21に入力し、暗号化データS7Aを暗号復号回路24に入力する。また、同期回路41は、Busy信号S6を受信する毎に、Busy信号S6を基準クロックC0で同期化することによって同期信号T2を生成し、当該同期信号T2を主制御回路21に入力する。また、同期回路41は、先頭のBusy信号S6を受信すると、受信カウンタ42にカウント動作を開始させ、受信カウンタ42は以後の同期信号T2のサイクル数をカウントする。なお、Ready/Busy期間P2も暗号化の対象期間とする場合には、同期信号T2は暗号復号回路24に入力される。
【0040】
主制御回路21は、受信制御回路23からReady信号S6が入力されると、その時点でのカウント値S3,S8を送信カウンタ32及び受信カウンタ42からそれぞれ取得する。そして、カウント値S3からカウント値S8を減算することによって遅延サイクル補正値を算出し、当該遅延サイクル補正値をアクセス情報としてアクセス生成回路31に入力する。また、主制御回路21は、受信制御回路23からReady信号S6が入力されることにより、Ready/Busy期間P2を終了し、続けてデータ受信期間P3に移行する。
【0041】
アクセス生成回路31は、入力された遅延サイクル補正値に基づいて、データ受信期間のサイクル数を補正する。本実施の形態の例では、読み出しデータ長が512バイトであり、クロックC1の1サイクルで1バイトのデータ転送が行われるため、本来は、Ready/Busy期間P2が終了してからクロックC1が512サイクル進行した時点が、データ受信期間P3の終点となる。アクセス生成回路31は、通信プロトコルで規定されたデータ受信期間のサイクル数(この例では512サイクル)から、入力された遅延サイクル補正値に相当するサイクル数を減算することにより、データ受信期間P3のサイクル数を補正する。例えば、遅延サイクル補正値が「2サイクル」である場合には、データ受信期間P3の終点は、Ready/Busy期間P2が終了してからクロックC1が510(=512−2)サイクル進行した時点となる。
【0042】
補正後のデータ受信期間P3において、受信制御回路23は、メモリ装置3から受信した暗号化データS7Aを暗号復号回路24に入力する。また、同期回路41は、暗号化データS7Aを受信する毎に、暗号化データS7Aを基準クロックC0で同期化することによって同期信号T3を生成し、当該同期信号T3を暗号復号回路24に入力する。
【0043】
暗号復号回路24は、同期信号T3に同期して暗号化データS7Aの復号化処理を実行することにより、非暗号のデータS7を復元し、当該データS7を主制御回路21に入力する。主制御回路21は、受信制御回路23から順に入力されたデータS7をCPU11に転送する。
【0044】
このように本実施の形態に係るメモリシステム1によれば、送信制御回路22及び暗号回路としての暗号復号回路24はクロックC1(第1のクロック)に同期して動作し、受信制御回路23及び復号回路としての暗号復号回路24はクロックC2(第2のクロック)に同期して動作する。従って、通信速度が高速化した場合であっても暗号化処理及び復号化処理を適切に同期化させることができ、その結果、ホスト装置2とメモリ装置3との間の高速化暗号通信を低コストかつ簡易に実現することが可能となる。
【0045】
また、メモリ装置3の制御回路51は、ホスト装置2の送信制御回路22から受信したクロックC1をフィードバックすることにより、クロックC2としてホスト装置2の受信制御回路23に送信する。そして、受信制御回路23は、フィードバックされたクロックC2に同期してメモリ装置3からのデータ受信を制御する。従って、クロックC1,C2とは別のデータストローブ信号を新たに生成する必要がないため、データストローブ信号の生成回路やタイミング調整回路の実装を省略でき、その結果、ホスト装置2とメモリ装置3との間の高速化暗号通信を低コストかつ簡易に実現することが可能となる。また、クロックC1をクロックC2としてフィードバックしているため、暗号化データS7AをクロックC2に同期してメモリ装置3からホスト装置2に送信する際に、配線遅延及びバッファ遅延に伴う伝搬遅延量をクロックC2と暗号化データS7Aとで実質的に相殺でき、その結果、データの損失を防止することが可能となる。
【0046】
また、ホスト装置2の主制御回路21は、ホスト装置2とメモリ装置3との間の伝搬遅延量に基づいて遅延サイクル補正値を決定し、送信制御回路22は、当該遅延サイクル補正値に基づいて、メモリ装置3からのデータ受信が開始されてからデータ受信が完了するまでのクロックC1のサイクル数を補正する。このように、不定の伝搬遅延量から決定された遅延サイクル補正値に基づいて、通信プロトコルで規定された固定サイクル数を補正することにより、固定サイクル数を過不足なく確保でき、その結果、ホスト装置2の暗号回路及び復号回路(上記の例では暗号復号回路24)、並びにメモリ装置3の暗号回路及び復号回路(上記の例では暗号復号回路61)の内部状態を一致させることができるため、システムを正常に動作させることが可能となる。
【0047】
また、主制御回路21は、メモリ装置3へのコマンド送信が完了してから、メモリ装置3からReady信号S6を受信するまでの送信カウンタ32のカウント値S3と、メモリ装置3から最初のBusy信号S6を受信してから、メモリ装置3からReady信号S6を受信するまでの受信カウンタ42のカウント値S8とに基づいて、遅延サイクル補正値を決定する。従って、配線遅延及びバッファ遅延に伴う不定の伝搬遅延量と、メモリアレイ52からのデータの読み出しに伴う不定のBusyサイクル数とに基づいて、遅延サイクル補正値を正確に決定できるため、固定サイクル数を高精度に補正することが可能となる。
【0048】
また、暗号回路及び復号回路として共通の暗号復号回路24が実装されているため、暗号回路及び復号回路を個別に実装する場合と比較すると、ホスト装置2の回路規模を削減することが可能となる。
【0049】
<実施の形態2>
図3は、本発明の実施の形態2に係るメモリシステム1の構成を示す図である。図1に示した暗号復号回路24に代えて、暗号回路24A及び復号回路24Bが個別に実装されている。
【0050】
コマンド送信期間P1において、非暗号のコマンドS5から暗号化コマンドS5Aを生成するために、コマンドS5は送信制御回路22から暗号回路24Aに入力される。その際、暗号回路24Aを動作させるための同期信号T1は、送信制御回路22から暗号回路24Aに入力されるとともに、復号回路24Bにも入力される。
【0051】
データ受信期間P3において、暗号化データS7Aを非暗号のデータS7に復元するために、暗号化データS7Aは受信制御回路23から復号回路24Bに入力される。その際、復号回路24Bを動作させるための同期信号T3は、受信制御回路23から復号回路24Bに入力されるとともに、暗号回路24Aにも入力される。
【0052】
このように本実施の形態に係るメモリシステム1によれば、暗号回路24Aと復号回路24Bとが個別に実装されているため、暗号回路24Aと復号回路24Bとでそれぞれ最適な回路設計を容易に行うことが可能となる。
【0053】
また、送信制御回路22は、同期信号T1(第1の同期信号)を暗号回路24A及び復号回路24Bに入力することにより、暗号回路24AがコマンドS5の暗号化を実行している期間内において復号回路24Bを動作させる。また、受信制御回路23は、同期信号T3(第2の同期信号)を暗号回路24A及び復号回路24Bに入力することにより、復号回路24Bが暗号化データS7Aの復号化を実行している期間内において暗号回路24Aを動作させる。このように、暗号回路24A及び復号回路24Bの一方が処理を実行している期間において他方を空回しで動作させることにより、暗号回路24A及び復号回路24Bのキーストリーム等の内部状態を一致させることができ、その結果、適切な暗号通信を実現することが可能となる。
【0054】
<変形例>
図4は、上記実施の形態1の変形例に係るメモリシステム1の構成を示す図である。図1に示した構成から受信カウンタ42が省略されている。図5は、メモリシステム1の読み出し動作を示すタイミングチャートである。
【0055】
アクセス生成回路31は、暗号化コマンドS5Aの最終バイト(第8バイト)の送信が完了すると、送信カウンタ32にカウント動作を開始させ、送信カウンタ32は以後のクロックC1のサイクル数をカウントする。
【0056】
主制御回路21は、受信制御回路23から先頭のBusy信号S6が入力されると、その時点でのカウント値S3を送信カウンタ32から取得する。そして、カウント値S3で示されるサイクル数を遅延サイクル補正値として決定し、当該遅延サイクル補正値をアクセス情報としてアクセス生成回路31に入力する。
【0057】
アクセス生成回路31は、通信プロトコルで規定されたデータ受信期間のサイクル数(この例では512サイクル)から、入力された遅延サイクル補正値に相当するサイクル数を減算することにより、データ受信期間P3のサイクル数を補正する。例えば、遅延サイクル補正値が「2サイクル」である場合には、データ受信期間P3の終点は、Ready/Busy期間P2が終了してからクロックC1が510(=512−2)サイクル進行した時点となる。
【0058】
このように本変形例に係るメモリシステム1によれば、主制御回路21は、メモリ装置3への暗号化コマンドS5Aの送信が完了してから、メモリ装置3から最初のBusy信号S6を受信するまでの送信カウンタ32のカウント値S3に基づいて、遅延サイクル補正値を決定する。従って、配線遅延及びバッファ遅延に伴う不定の伝搬遅延量に基づいて遅延サイクル補正値を簡易に決定することが可能となる。また、Ready/Busy期間P2の完了を待つことなく早期に遅延サイクル補正値を決定できるため、遅延サイクル補正値が異常値である場合に早期にエラー処理を開始することが可能となる。さらに、受信カウンタ42が不要になるとともに、送信カウンタ32のカウント値を削減できるため、全体としてホスト装置2の回路規模を削減することが可能となる。
【0059】
なお、以上の説明では上記実施の形態1に本変形例を適用する例を述べたが、本変形例は上記実施の形態2に適用することも可能であり、上記と同様の効果を得ることができる。
【符号の説明】
【0060】
1 メモリシステム
2 ホスト装置
3 メモリ装置
21 主制御回路
22 送信制御回路
23 受信制御回路
24 暗号復号回路
24A 暗号回路
24B 復号回路
51 制御回路
52 メモリアレイ
図1
図2
図3
図4
図5