(57)【要約】【課題】出力するデータ量を増加させることなく、チップ間のアドレスの転送誤りを検出することができるメモリ回路を提供すること【解決手段】本発明のメモリ回路は、アドレス毎にデータが対応付けられたメモリ１０３を搭載するメモリチップ１０２と、メモリチップ１０２に接続されメモリ１０３のアドレスを指定してアドレスに対応するデータを読み出すメインチップ１０１と、を備える。メモリチップ１０２は、メインチップ１０１において指定され入力されたアドレスを取得するアドレス情報取得部１０５と、メモリ１０３内のデータをアドレスを用いて暗号化し、メインチップ１０１へ出力する暗号部１０４を備え、メインチップ１０１は、暗号部１０４から出力された暗号化データを、指定したアドレスを用いて復号化する復号部１１３と、復号化されたデータに誤りがあるか否かを判定する判定部１１６とを備えるものである。【選択図】図１
2011198263.tif 000002
【特許請求の範囲】
【請求項１】
アドレス毎にデータが対応付けられたメモリを搭載するメモリチップと、当該メモリチップに接続され、前記メモリのアドレスを指定して当該アドレスに対応するデータを読み出すメインチップと、を備えるメモリ回路であって、
前記メモリチップは、
前記メインチップにおいて指定され、入力されたアドレスを取得するアドレス情報取得部と、
前記取得されたアドレスに対応する前記メモリ内のデータを、前記取得されたアドレスを用いて暗号化し、前記メインチップへ出力する暗号部を備え、
前記メインチップは、
前記暗号部から出力された暗号化データを、前記指定したアドレスを用いて復号化する復号部と、
前記復号化されたデータに誤りがあるか否かを判定する判定部とを備える、メモリ回路。
【請求項２】
前記暗号部は、前記メモリ内のデータと、前記取得されたアドレスとを排他的論理和演算を実行することにより暗号化データを生成し、
前記復号部は、前記出力された暗号化データと、前記指定したアドレスとを排他的論理和演算を実行することにより、暗号化データを復号化する、請求項１記載のメモリ回路。
【請求項３】
前記メモリは、
前記アドレス毎に対応付けられたデータにエラーチェックコードを付与し、
前記判定部は、前記復号化されたデータのエラーチェックコードに基づいて、当該復号化されたデータに誤りがあるか否かを判定する、請求項１又は２記載のメモリ回路。
【請求項４】
前記メインチップは、
前記判定部において、前記データに誤りがあると判定された場合、前記メモリチップと前記メインチップとの間におけるデータ転送速度を下降させ、前記データに誤りがないと判定された場合、前記データ転送速度を上昇させるデータ転送速度制御部をさらに備える請求項１乃至３のいずれか１項に記載のメモリ回路。
【請求項５】
前記判定部は、
前記データに誤りがあると判定された場合、前記指定したアドレスと同一のアドレスが指定され、前記下降されたデータ転送速度を用いて読み出されたデータに誤りがあるか否かを判定し、
前記データ転送速度制御部は、
前記判定部において、誤りがないと判定されるまで、データ転送速度を下降させる、請求項４記載のメモリ回路。
【請求項６】
前記メインチップは、
前記メモリチップとの間におけるデータ転送時に用いられるクロックを生成するクロック生成部をさらに備え、
前記データ転送速度制御部は、
前記クロック生成部が生成するクロックのクロック周波数を変更させることにより、データ転送速度を制御する、請求項４又は５記載のメモリ回路。
【請求項７】
アドレス毎にデータが格納されたメモリを搭載するメモリチップから、メインチップが前記メモリのアドレスを指定して当該アドレスに格納されているデータを読み出すメモリ回路制御方法であって、
前記メインチップにおいて指定され、入力されたアドレスを取得するステップと、
前記取得されたアドレスに格納されている前記メモリ内のデータを、前記取得されたアドレスを用いて暗号化するステップと、
前記暗号化されたデータを前記メインチップへ出力するステップと、
前記暗号化部から出力された暗号化データを、前記指定したアドレスを用いて復号化するステップと、
前記復号化されたデータに誤りがあるか否かを判定するステップと、を備えるメモリ回路制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ回路及びメモリ回路制御方法に関し、特にデータのチップ間転送を伴うメモリ回路及びメモリ回路制御方法に関する。
【背景技術】
【０００２】
近年、メモリを制御するメインチップと、メモリを搭載するメモリチップとの間のデータ転送に関する技術分野において、データ転送速度の高速化が進められている。データ転送速度の高速化に伴い、メインチップとメモリチップとの間におけるデータ転送が正常に実行されているか否かを判定する必要性が高まってきた。なぜなら、データ転送速度が高速化されるに伴い、データ転送時に誤りが発生する割合が高くなるからである。そのため、正しいデータの転送が行なわれているかを判断するとともに、チップ間のデータ転送速度を高速化させる必要がある。
【０００３】
特許文献１には、メモリ制御装置において物理的な故障が発生しているかどうかの確認を行なうと共に、チップ間のデータ転送タイミングに問題があるかどうかの検証を行う技術が開示されている。図６を用いて、特許文献１に開示されているメモリ制御装置の構成について説明する。
【０００４】
メモリ制御装置は、クロック発生回路１２と、メモリコントローラ１３と、ＴＥＳＴ信号発生回路１４と、切換回路１５と、外部メモリＩ／Ｆ回路１６と、出力バッファ１７と、入出力バッファ１８と、データ判別回路１１０と、クロック制御回路１１１と、を備えている。また、メモリ制御装置は、水晶発振器１１と、外部メモリ１９とに接続されている。
【０００５】
クロック発生回路１２は、水晶発振器１１から供給されるクロックを逓倍し内部回路用システムクロック及び外部ＳＤＲＡＭ用クロックを発生させる。メモリコントローラ１３は、クロック発生回路１２から出力されたシステムクロックに同期して外部メモリであるＳＤＲＡＭを制御する信号を生成する。ＴＥＳＴ信号発生回路１４は、ＬＳＩ内の内部回路及び外部メモリ１９の一例であるＳＤＲＡＭをテストするためのＴＥＳＴ信号を発生させる。切換回路１５は、メモリコントローラ１３の出力信号とＴＥＳＴ信号発生回路１４の出力信号とを切換えて出力する。外部メモリＩ／Ｆ回路１６は、切換回路１５から供給されたメモリコントローラ１３の出力信号又はＴＥＳＴ信号発生回路１４の出力信号から、外部メモリ１９へデータを書き込むための信号（コマンド信号、アドレス信号、データ信号等）や外部メモリ１９からデータを読み出すための信号を生成する。さらに、外部メモリＩ／Ｆ回路１６は、出力バッファ１７を介してコマンド及びアドレス信号を外部メモリ１９へ出力すると共に、入出力バッファ１８を介して書込みデータを出力し、読み出しデータを入力する。
【０００６】
データ判別回路１１０は、外部メモリＩ／Ｆ回路１６への入力信号２２４と、外部メモリ１９の出力信号に基づいて生成される外部メモリＩ／Ｆ回路１６からの出力信号２２０とを比較し、データが一致しているか否かについて判別する。信号２２８は、データ判別回路１１０の出力信号２２６からクロック発生回路１２における逓倍率を決定し、クロック発生回路１２に出力するクロックである。また、これらの回路は、図示していないＣＰＵ等により制御されている。
【０００７】
信号２０２は、水晶発振器１１からクロック発生回路１２に出力されたＳＤＲＡＭ−ＣＬＫ発生用水晶ＣＬＫの信号である。信号２０４は、クロック発生回路１２からメモリコントローラ１３に出力されたＳＤＲＡＭ−ＣＬＫ信号用の信号である。信号２０６は、メモリコントローラ１３から外部メモリＩ／Ｆ回路１６に出力される通常制御用のＤＡＴＡ（データ）／ＣＭＤ（コマンド）／ＡＤＤＲ（アドレス）転送用の信号である。信号２０８は、外部メモリＩ／Ｆ回路１６から出力バッファ１７に出力されるＤＡＴＡ（データ）／ＣＭＤ（コマンド）／ＡＤＤＲ（アドレス）転送用の信号である。信号２１０は、出力バッファ１７からＬＳＩの外部に接続された外部メモリ１９に出力されるＣＭＤ（コマンド）／ＡＤＤＲ（アドレス）転送用の信号である。信号２１２は、外部メモリＩ／Ｆ回路１６から入出力バッファ１８に出力されるデータ書き込み信号であるＤＡＴＡ＿ＷＲＩＴＥ信号転送用の信号である。信号２１４は、入出力バッファ１８からＬＳＩの外部に接続された外部メモリ１９に出力されるＬＳＩ出力ＤＡＴＡを転送する信号である。信号２１６は、反対にＬＳＩの外部に接続された外部メモリ１９から入出力バッファ１８に出力されるＳＤＲＡＭ内のデータであるＳＤＲＡＭ出力ＤＡＴＡを転送する信号である。信号２１８は入出力バッファ１８から外部メモリＩ／Ｆ回路１６に出力されるＩ／Ｆ回路入力ＤＡＴＡを転送する信号である。
【０００８】
信号２２２は、ＴＥＳＴ信号発生回路１４から切換回路１５にＴＥＳＴ信号を転送する信号である。信号２２４は、切換回路１５において選択されたＴＥＳＴ信号発生回路からの出力信号又はメモリコントローラ１３からの出力信号を出力する信号である。信号２２６は、データ判別回路１１０からクロック制御回路１１１に出力されたデータ判別回路１１０の判別結果を出力する信号である。信号２２８は、クロック制御回路１１１からクロック発生回路１２に出力するクロック倍率制御信号を転送する信号である。
【０００９】
図６において、クロック発生回路１２は、クロック制御回路１１１からのクロック倍率制御信号２２８に基づき、水晶発振器１１から供給されるクロック信号を逓倍し、ＳＤＲＡＭ−ＣＬＫ信号２０４として出力する。切換回路１５は、通常動作中はメモリコントローラからの制御信号を出力するが、動作確認を行う場合はＴＥＳＴ信号発生回路１４からの制御信号を出力する。
【００１０】
データ判別回路１１０は、切換回路からの出力信号２２４（書込みデータ）と外部メモリから読み出された外部メモリＩ／Ｆ回路の出力信号２２０（読み出しデータ）に対し其々の遅延を調整する。具体的には、データ判別回路１１０は、信号２２４を用いて書き込みもしくは読み出し信号を出力してから、信号２２０を出力するまでのメモリ制御装置及び外部メモリにおける遅延を考慮し、その遅延時間を信号２２４に付加する。これにより、データ判別回路１１０は、書込みデータと読み出しデータとを比較し、等しいかどうか判別する。その比較の結果、書込みデータと読み出しデータとが一致しない場合には、データ判別回路１１０は、生じている問題がＬＳＩ及び外部メモリにおけるタイミング的な問題であると仮定して、クロック制御回路１１１に対しクロック逓倍率を減少させるための判別結果クロック制御信号２２６を出力する。クロック制御回路１１１は、入力された判別結果クロック制御信号２２６に基づきクロック発生回路１２に出力するクロック倍率制御信号２２８を所定の値だけ減少して出力する。これら一連の動作をデータ判別回路１１０にてデータ比較結果が等しくなるまで繰り返す。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００８−０７７３０５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、特許文献１に開示されているメモリ制御装置は、メインチップ（ＬＳＩ内の内部回路）からメモリチップ（外部メモリー１９）に対して転送されたアドレスの正常性を判定できないという問題がある。特許文献１に開示されているメモリ制御装置は、外部メモリ１９への書込みデータとなる切換回路からの出力信号２２４を期待値とし、外部メモリ１９から読み出したデータをデータ判別回路１１０において比較することにより、チップ間におけるデータ転送の正常性を判定する。従って、伝送路２１０においてアドレスの転送に誤りが発生し、書き込み時と読み出し時のアドレスの転送が一致する場合には、メインチップは、外部メモリ１９に誤って書き込んだアドレスと同じアドレスからデータを読み出す。そのため、読み出しデータ２２０と期待値とが一致することになる。そのため、メインチップからメモリチップに転送したアドレスの正常性を判定することができない。
【００１３】
このような場合、外部メモリ１９において書き込みもしくは読み出しに用いられたアドレスを外部メモリからメインチップへ出力し、出力されたアドレスとメインチップが指定したアドレスとを比較して、アドレスの正常性を判定することも考えられる。しかし、外部メモリからメインチップへアドレスを出力することは、メインチップと外部メモリとの間の通信量増大を招き、データ転送の高速化を妨げることになるため、妥当ではない。
【課題を解決するための手段】
【００１４】
本発明の第１の態様にかかるメモリ回路は、アドレス毎にデータが対応付けられたメモリを搭載するメモリチップと、当該メモリチップに接続され、前記メモリのアドレスを指定して当該アドレスに対応するデータを読み出すメインチップと、を備えるメモリ回路であって、前記メモリチップは、前記メインチップにおいて指定され、入力されたアドレスを取得するアドレス情報取得部と、前記取得されたアドレスに対応する前記メモリ内のデータを、前記取得されたアドレスを用いて暗号化し、前記メインチップへ出力する暗号化部を備え、前記メインチップは、前記暗号化部から出力された暗号化データを、前記指定したアドレスを用いて復号化する復号化部と、前記復号化されたデータに誤りがあるか否かを判定する判定部とを備えるものである。
【００１５】
このようなメモリ回路を用いることにより、メモリチップは、アドレスとメモリ内のデータとを暗号化してメインチップへ出力することができる。これより、メモリチップは、アドレスを関連付けたデータをメインチップへ出力するために、データ量を増加させることなく出力することができる。また、メインチップは、入力された暗号化データを、メインチップが指定したアドレスを用いて復号化する。そのため、メモリチップにおいて異なるアドレスを用いて暗号化された場合は、復号化により、メモリ内のデータとは異なるデータを生成することになるため、アドレス転送エラーにより発生するデータ誤りを検出することができる。
【００１６】
本発明の第２の態様にかかるメモリ回路制御方法は、アドレス毎にデータが格納されたメモリを搭載するメモリチップから、メインチップが前記メモリのアドレスを指定して当該アドレスに格納されているデータを読み出すメモリ回路制御方法であって、前記メインチップにおいて指定され、入力されたアドレスを取得するステップと、前記取得されたアドレスに格納されている前記メモリ内のデータを、前記取得されたアドレスを用いて暗号化するステップと、前記暗号化されたデータを前記メインチップへ出力するステップと、前記暗号化部から出力された暗号化データを、前記指定したアドレスを用いて復号化するステップと、前記復号化されたデータに誤りがあるか否かを判定するステップと、を備えるものである。
【００１７】
このようなメモリ回路制御方法を用いることにより、メモリチップは、アドレスとメモリ内のデータとを暗号化してメインチップへ出力することができる。これより、メモリチップは、アドレスを関連付けたデータをメインチップへ出力するために、データ量を増加させることなく出力することができる。また、メインチップは、入力された暗号化データを、メインチップが指定したアドレスを用いて復号化する。そのため、メモリチップにおいて異なるアドレスを用いて暗号化された場合は、復号化により、メモリ内のデータとは異なるデータを生成することになるため、アドレス転送エラーにより発生するデータ誤りを検出することができる。
【発明の効果】
【００１８】
本発明により、メモリチップからメインチップに対して出力するデータ量を増加させることなく、メインチップからメモリチップに対するアドレスの転送誤りを検出することができるメモリ回路及びメモリ回路制御方法を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態１にかかるメモリ回路の構成図である。
【図２】実施の形態１にかかるチップ間転送におけるタイミングチャートである。
【図３】実施の形態１にかかるデータ転送速度制御におけるフローチャートである。
【図４】実施の形態１にかかるデータ転送速度制御におけるタイミングチャートである。
【図５】実施の形態１にかかるＣＰＵ動作のタイミングチャートである。
【図６】特許文献１にかかるメモリ制御装置の構成図である。
【発明を実施するための形態】
【００２０】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。図１を用いて、本発明の実施の形態１にかかるメインチップとメモリチップとの間のデータ転送を行うメモリ回路の構成例について説明する。メモリ回路は、メインチップ１０１とメモリチップ１０２とから構成される。
【００２１】
はじめに、メモリチップ１０２の構成例について説明する。メモリチップ１０２は、アドレス情報取得部１０５と、メモリ１０３と、暗号部１０４とを備えている。
【００２２】
アドレス情報取得部１０５は、メモリアドレス１３２を取得する。メモリアドレス１３２は、メインチップ１０１において指定され、出力された転送メモリアドレス１０８が、入力バッファ１２７を介して入力された情報である。また、アドレス情報取得部１０５は、クロック１３１も併せて取得する。クロック１３１は、メインチップ１０１から出力された転送クロック１０９が、入力バッファ１４２を介して入力された情報である。アドレス情報取得部１０５は、メモリ１０３へ出力するメモリ読み出しアドレス１０６の出力タイミングを、クロック１３１を用いて調整する。つまり、アドレス情報取得部１０５は、入力されたメモリアドレス１３２を、クロック１３１を用いてリタイミングする。メモリ読み出しアドレス１０６は、メモリアドレス１３２がクロック１３１を用いてリタイミングされた後の信号である。
【００２３】
メモリ１０３は、メモリ読み出しアドレス１０６に対応付けられている読み出しデータ１０７を暗号部１０４へ出力する。また、メモリ１０３は、メモリ読み出しアドレス毎に対応付けられた読み出しデータに、ＥＣＣエラー訂正用バリティビットを付与したデータを格納している。メモリ１０３は、エラーチェックコードとして、読み出しデータにＥＣＣエラー訂正用バリティビットを付与したデータを暗号部１０４へ出力する。
【００２４】
暗号部１０４は、メモリ１０３から出力された読み出しデータ１０７を、メモリ読み出しアドレス１０６を用いて暗号化する。具体的には、暗号部１０４は、読み出しデータ１０７とメモリ読み出しアドレス１０６とをＥＸＯＲ（排他的論理和）演算を行なう回路により構成されている。暗号部１０４は、ＥＸＯＲ演算結果である暗号化データ１３３を出力バッファ１４１へ出力する。出力バッファ１４１は、暗号化データ１３３を、転送暗号化データ１５０としてメインチップ１０１へ出力する。
【００２５】
続いて、メインチップ１０１の構成例について説明する。メインチップ１０１はＣＰＵ１１２と、メモリ制御回路１５１と、復号部１１３と、判定部１１６と、データ転送速度制御部１６０と、逓倍ＰＬＬ１１７とを備えている。データ転送速度制御部１６０は、分周器１１９と、分周器制御回路１３６とを有している。
【００２６】
逓倍ＰＬＬ１１７は、水晶発振器１３８から入力される水晶発振器出力クロック１３９を逓倍し、分周器１１９とＣＰＵ１１２とに逓倍ＰＬＬ出力クロック１１８を出力する。逓倍ＰＬＬ出力クロック１１８は、ＣＰＵ１１２及び分周器１１９の動作クロックとなる。
【００２７】
分周器１１９は、動作タイミングを制御するクロック信号として、分周器出力クロック１２１をメモリ制御回路１５１と、復号部１１３と、判定部１１６とに出力する。分周器１１９は、分周器制御回路１３６の出力信号である分周器制御信号１３７を用いて、逓倍ＰＬＬ１１７から入力された逓倍ＰＬＬ出力１１８のクロック周波数を分周する値を変更して、分周器出力クロック１２１を出力する。分周器制御回路１３６が出力する分周器制御信号１３７については、後に詳述する。
【００２８】
ＣＰＵ１１２は、メモリ制御回路１５１に対してメモリ１０３に格納されているデータを読み出すためのＣＰＵ出力アドレス１２２を出力する。さらに、ＣＰＵ１１２は、メモリ制御回路１５１に対してメモリ１０３からデータの読み出しを行うために、ＣＰＵ出力リクエスト信号１２３を出力する。
【００２９】
メモリ制御回路１５１は、ＣＰＵ１１２からＣＰＵ出力アドレス１２２及びＣＰＵ出力リクエスト信号１２３が入力されると、出力バッファ１２８へメモリ制御回路出力アドレス１２９を出力する。出力バッファ１２８は、メモリチップ１０２に転送メモリアドレス１０８を出力する。メモリ制御回路１５１は、さらに、分周器１１９から出力された分周器出力クロック１２１を、メモリ制御回路出力クロック１３０として、出力バッファ１４３へ出力する。出力バッファ１４３は、入力されたメモリ制御回路出力クロック１３０を、転送クロック１０９として、メモリチップ１０２へ出力する。
【００３０】
入力バッファ１４０は、メモリチップ１０２の出力バッファ１４１から、転送暗号化データ１５０を取得し、復号部１１３へ暗号化データ１３４として出力する。
【００３１】
復号部１１３は、メモリ制御回路出力アドレス１２９を用いて、暗号化データ１３４の復号化を行う。具体的には、復号部１１３は、暗号化データ１３４と、メモリ制御回路出力アドレス１２９とをＥＸＯＲ演算する回路により構成されている。復号部１１３は、復号化データ１１５を、判定部１１６へ出力する。
【００３２】
判定部１１６は、復号部１１３から入力された復号化データ１１５にエラーがあるかないかを判定する。具体的には、判定部１１６は、復号化データ１１５に付与されたＥＣＣエラー訂正用パリティビットを用いて、ＥＣＣエラー訂正を行なう。これにより、判定部１１６は、エラーの有無を判定する。判定部１１６は、エラー判定結果１２０を、分周器制御回路１３６及びメモリ制御回路１５１へ出力する。また、判定部１１６は、復号部１１３から取得した復号化データ１１５のエラー訂正を行ったデータを、エラー訂正データ１３５として、メモリ制御回路１５１へ出力する。
【００３３】
メモリ制御回路１５１は、エラー訂正結果であるエラー判定結果１２０と、エラー訂正データ１３５とから、ＣＰＵ１１２にメモリ制御回路出力ＡＣＫ信号１２４と、メモリ１０３から読み出したデータであるメモリ制御回路出力データ１２５と、エラーフラグ１２６とをＣＰＵ１１２へ出力する。
【００３４】
分周器制御回路１３６は、判定部１１６から入力されたエラー判定結果１２０に応じて、分周器１１９を制御する分周器制御信号１３７を分周器１１９に出力する。分周器１１９は、分周器制御回路１３６の出力信号である分周器制御信号１３７を用いてクロック周波数を変更することができる。そのため、分周器制御回路１３６は、エラー判定結果１２０により、エラーが無いとする結果を取得した場合、現在分周器に設定されているクロック周波数よりも、高速なクロック周波数を設定するように制御する。また、エラー判定結果１２０により、エラーがあるとする結果を取得した場合、現在分周器に設定されているクロック周波数よりも、低速なクロック周波数を設定するように制御する。
【００３５】
続いて、メインチップ１０１及びメモリチップ１０２における信号の流れについて詳細に説明する。
【００３６】
ＣＰＵ出力アドレス１２２とＣＰＵ出力リクエスト信号１２３とが、ＣＰＵ１１２からメモリ制御回路１５１へ出力されると、メモリ制御回路１５１は、メモリチップ１０２へメモリ制御回路出力アドレス１２９を出力する。さらに、メモリ制御回路１５１は、分周器１１９から分周器出力クロック１２１が入力されると、メモリチップ１０２へメモリ制御回路出力クロック１３０を出力する。ここで、メモリ１０３の読み出し信号は、メモリ制御回路出力アドレス１２９に含まれるものとして動作を説明する。また、メモリ制御回路出力クロック１３０の周波数は分周器出力クロック１２１の周波数と同一であり、メモリ制御回路出力アドレス１２９はメモリ制御回路出力クロック１３０に同期して出力される。
【００３７】
メモリ制御回路出力アドレス１２９は、メインチップ１０１の出力バッファ１２８及びメモリチップ１０２の入力バッファ１２７を介して、メモリアドレス１３２として、アドレス情報取得部１０５へ入力される。メモリ制御回路出力クロック１３０は、メインチップ１０１の出力バッファ１４３及びメモリチップ１０２の入力バッファ１４２を介して、クロック１３１として、アドレス情報取得部１０５へ入力される。
【００３８】
アドレス情報取得部１０５は、メモリアドレス１３２を、クロック１３１を用いてリタイミングし、リタイミングした信号であるメモリ読み出しアドレス１０６をメモリ１０３へ出力する。
【００３９】
メモリ１０３は、メモリ読み出しアドレス１０６に対応付けられている読み出しデータ１０７を暗号部１０４へ出力する。暗号部１０４は、アドレス情報取得部１０５から出力されるメモリ読み出しアドレス１０６を格納する。暗号部１０４は、読み出しデータ１０７と、格納しているメモリ読み出しアドレス１０６とをＥＸＯＲ演算し、ＥＸＯＲ演算結果である暗号化データ１３３をクロック１３１に同期してメインチップ１０１へ出力する。
【００４０】
暗号部１０４から出力された暗号化データ１３３は、メモリチップ１０２の出力バッファ１４１及びメインチップ１０１の入力バッファ１４０を介して、暗号化データ１３４として、復号部１１３に入力される。
【００４１】
メインチップ１０１の復号部１１３は、メモリ制御回路出力アドレス１２９を格納する。復号部１１３は、暗号化データ１３４と、格納しているメモリ制御回路出力アドレス１２９とを用いてＥＸＯＲ演算し、メモリ１０３の読み出しデータである読み出しデータ１０７を復元し、復号化データ１１５を生成する。ここで、転送メモリアドレス１０８及び転送暗号化データ１５０のデータ転送が正常に行われていれば、復号化データ１１５は、パリティビットを含むメモリ１０３の読み出しデータである読み出しデータ１０７と一致する。そのため、ＥＣＣエラーは、発生しない。
【００４２】
転送アドレス１０８もしくは転送データ１５０のデータ転送が正常に行われていない場合、復号化データ１１５は、メモリ１０３の読み出しデータである読み出しデータ１０７とは一致しない。そのため、ＥＣＣエラーが発生する。このように、復号化データ１１５にＥＣＣエラーが発生した場合、ＥＣＣエラーの原因は、アドレス転送の誤り、データ転送の誤り、メモリのビット不良もしくはメモリチップ内ロジック不良のエラー等であると考えられる。
【００４３】
判定部１１６は、復号化データ１１５に対してＥＣＣエラー訂正を実施することにより、ＥＣＣエラーの有無を判定し、エラー判定結果１２０とエラー訂正データ１３５を出力する。エラー判定結果１２０は、判定部１１６にてＥＣＣエラーがあると判定された場合にはＦＡＩＬ判定、ＥＣＣエラーがないと判定された場合にはＰＡＳＳ判定が設定される。
【００４４】
分周器制御回路１３６は、エラー判定結果１２０が入力されると、分周器１１９に分周器制御信号１３７を出力する。エラー判定結果１２０がＰＡＳＳ判定の場合には、分周器制御回路１３６は、分周器制御信号１３７を出力して、現在設定されているクロック周波数よりも、クロック周波数を上げるように分周器１１９を制御する。エラー判定結果１２０がＦＡＩＬ判定の場合には、分周器制御信号１３７を出力して、現在設定されているクロック周波数よりも、クロック周波数を下げるように分周器１１９を制御する。
【００４５】
分周器１１９は、分周器制御信号１３７を取得すると、分周器出力クロック１２１の周波数を変更する。例えば、逓倍ＰＬＬ１１７の出力周波数は１ＧＨｚとし、分周器１１９は、分周器制御信号１３７が入力されると、１ｎｓステップの周波数の変更ができる。分周器１１９における分周器出力クロック１２１の周波数は、分周器制御信号１３７の値に分周される。例えば、分周器制御信号１３７が１０進数の１０の場合に、分周器出力クロック１２１の周波数は、逓倍ＰＬＬ出力１１８の１０分周となり、分周器制御信号１３７が１０進数の６の場合に、分周器出力クロック１２１の周波数は、逓倍ＰＬＬ出力１１８の６分周となる。また、メモリ制御回路１５１は、分周器出力クロック１２１をメモリ制御回路出力クロック１３０として使用する。そのため、分周器出力クロック１２１の周波数が、メインチップ１０１とメモリチップ１０２との間のデータ転送速度となる。
【００４６】
メモリ制御回路１５１は、エラー判定結果１２０がＰＡＳＳ判定の場合に、ＣＰＵ１１２にエラーフラグ１２６をＬＯＷレベルとして出力し、エラー判定結果１２０がＦＡＩＬ判定の場合に、ＣＰＵ１１２にエラーフラグ１２６をＨＩＧＨレベルとして出力する。ＣＰＵ１１２は、エラーフラグ１２６の値により次のメモリ読み出しのためのＣＰＵ出力リクエスト信号１２３とＣＰＵ出力アドレス１２２とを出力するかを判断する。ＣＰＵ１１２は、エラーフラグ１２６がＬＯＷレベルの場合、次に用意されているＣＰＵ出力リクエスト信号１２３とＣＰＵ出力アドレス１２２とを出力する。ＣＰＵ１１２は、エラーフラグ１２６がＨＩＧＨレベルの場合、分周器出力クロック１２１の周波数が変更になった後に、ＣＰＵ出力リクエスト信号１２３とＣＰＵ出力アドレス１２２とを出力する。ＣＰＵ出力アドレス１２２の値は、ＦＡＩＬ判定されたアドレスの値となる。
【００４７】
続いて、図２のタイミングチャートを用いて、本発明の実施の形態１にかかるメインチップとメモリチップとの間のデータ転送について説明する。
【００４８】
タイミングＴ１にて、メモリ制御回路出力アドレス１２９とメモリ制御回路出力クロック１３０とが、メインチップ１０１からメモリチップ１０２へ出力される。図２に示されるように、メモリ制御回路出力アドレス１２９は、メモリ制御回路出力クロック１３０に同期した信号である。メモリ制御回路出力アドレス１２９とメモリ制御回路出力クロック１３０とは、メインチップとメモリチップとの間の伝送経路にて遅延し、メモリチップ１０２へ出力される。
【００４９】
アドレス情報取得部１０５は、タイミングＴ２にてメモリアドレス１３２を、クロック１３１を用いてリタイミングし、リタイミングしたメモリ読み出しアドレス１０６をメモリ１０３へ出力する。データ転送速度が伝送路の持つ特性以上である場合には、タイミングＴ２にてリタイミングした際に、メモリ読み出しアドレス１０６とメモリ制御回路出力アドレス１２９とは同一とはならず、本発明で問題としているアドレス転送誤りが発生する。つまり、温度条件等により、高速なデータ転送が困難な状況において、データ転送速度を高速にした場合に、アドレス転送誤りが発生する。データ転送速度が伝送路の持つ特性以下であれば、タイミングＴ２にてリタイミングした際に、メモリ読み出しアドレス１０６とメモリ制御回路出力アドレス１２９とは同一となる。
【００５０】
タイミングＴ３にて、メモリ１０３から読み出しデータ１０７が出力される。暗号部１０４は、アドレス情報取得部１０５から出力されるメモリ読み出しアドレス１０６を格納している。暗号部１０４は、タイミングＴ４にて、読み出しデータ１０７と、格納しているメモリ読み出しアドレス１０６とを用いてＥＸＯＲ演算し、暗号化データ１３３をメインチップ１０１へ出力する。暗号化データ１３３は、クロック１３１に同期した信号であり、メモリチップ１０２からメインチップ１０１へ出力される。暗号化データ１３３は、出力バッファ１４１へ入力され、転送暗号化データ１５０として、メインチップ１０１へ出力される。
【００５１】
入力バッファ１４０は、入力された転送暗号化データ１５０を、暗号化データ１３４として、復号部１１３へ出力する。復号部１１３は、メモリ制御回路出力アドレス１２９を格納している。復号部１１３は、タイミングＴ５にて暗号化データ１３４と、格納しているメモリ制御回路出力アドレス１２９とを用いてＥＸＯＲ演算を行ない、復号化データ１１５を判定部１１６へ出力する。
【００５２】
復号化データ１１５は、メインチップ１０１からメモリチップ１０２へのアドレスの転送誤り、メモリチップ１０２からメインチップ１０１へのデータの転送の誤り等があれば、読み出しデータ１０７と同一のデータにならない。この場合、タイミングＴ６において、判定部１１６にてＥＣＣエラー判定が実施され、ＦＡＩＬ判定となる。図２の例では、復号化データ１１５は、読み出しデータ１０７と同一のデータとして復元されている。そのため、復号化データ１１５にＥＣＣエラーは発生せず、エラー判定結果１２０はＰＡＳＳ判定となる。
【００５３】
続いて、図３を用いて本発明の実施の形態１にかかるデータ転送速度制御の処理の流れについて説明する。
【００５４】
はじめに、データ転送速度を上昇させるために、分周器制御回路１３６は、分周器出力クロック１２１の周波数を１段階ＵＰさせるように制御する（Ｓ１）。具体的には、分周器制御回路１３６は、分周器出力クロック１２１の周期を１ｎｓ減少させるように制御する。
【００５５】
次に、判定部１１６は、データ転送の妥当性判定を実施する（Ｓ２）。判定部１１６におけるエラー判定結果が、ＰＡＳＳ判定の場合、ステップＳ１へ移行する。判定部１１６におけるエラー判定結果が、ＦＡＩＬ判定の場合、分周器制御回路１３６は、データ転送速度を下降させるために、分周器出力クロック１２１の周波数を１段階ＤＯＷＮさせる（Ｓ３）。具体的には、分周器制御回路１３６は、分周器出力クロック１２１の周期を１ｎｓ増加させるように制御する。
【００５６】
次に、判定部１１６は、データ転送の妥当性判定を実施する（Ｓ４）。判定部１１６におけるエラー判定結果が、ＦＡＩＬ判定の場合はステップＳ３へ移行し、データ転送速度をＤＯＷＮさせる。ステップＳ４にて判定結果がＰＡＳＳ判定の場合は、データ転送速度を変更せずに、ステップＳ３において設定されたデータ転送速度を維持する。また、ステップＳ４にて判定結果がＰＡＳＳ判定の場合は、ステップＳ４におけるデータ転送の妥当性判定を繰り返し実施する。図３のフロー開始時のデータ転送速度は伝送路の設計値の転送スピードである。ステップＳ２、ステップＳ４の妥当性判定は毎アドレス実施する。ステップＳ２、ステップＳ４でのＰＡＳＳ分岐は、連続しているＣＰＵ出力リクエスト信号１２３が途切れた時に分岐し、ＦＡＩＬ分岐は、ＦＡＩＬ判定時すぐにＦＡＩＬ分岐を行なう。
【００５７】
続いて、図４のタイミングチャートを用いて、エラー判定結果１２０と、分周器制御信号１３７と、ＣＰＵ出力アドレス１２２と、ＣＰＵ出力リクエスト信号１２３と、の関係を説明する。
【００５８】
図４（Ａ）は、判定部１１６のエラー判定結果がＰＡＳＳ判定の場合における、ＣＰＵ出力アドレス１２２と、ＣＰＵ出力リクエスト信号１２３と、エラー判定結果１２０と、分周器制御信号１３７と、の関係である。図４の（Ｂ）は判定部１１６のエラー判定結果にＦＡＩＬ判定が含まれる場合の、ＣＰＵ出力アドレス１２２と、ＣＰＵ出力リクエスト信号１２３と、エラー判定回路結果１２０と、分周器制御信号１３７と、の関係である。
実際にはＣＰＵ出力アドレス１２２とＣＰＵ出力リクエスト信号１２３に対してＥＣＣエラー判定回路結果１２０は遅れて出力されるが、図４ではＣＰＵ出力アドレス１２２と、エラー判定結果１２０との関係を明確にするため、それぞれを同タイミングにて図示している。分周器制御信号１３７の値は、分周器出力クロック１２１が逓倍ＰＬＬ出力１１８に対して何分周のクロックとなるかを示している。
【００５９】
はじめに、図４（Ａ）に関して説明する。データ転送スタート時に分周器制御信号１３７の値が１０であるため、分周器出力クロック１２１の周波数は逓倍ＰＬＬ出力１１８の周波数の１／１０である。エラー判定結果１２０がＰＡＳＳ判定の場合、ＣＰＵ１１２は、連続してＣＰＵ出力アドレス１２２とＣＰＵ出力リクエスト信号１２３を出力する。エラー判定結果１２０がＰＡＳＳ判定時に、ＣＰＵ１１２からのＣＰＵ出力アドレス１２２とＣＰＵ出力リクエスト信号１２３との出力が途切れた際に、例えばタイミングＴ１０にて、分周器制御回路１３６は、分周器制御信号１３７の値を１０から９に変更し、データ転送速度を上昇させる。ＣＰＵ１１２は、次のＣＰＵ出力アドレス１２２の転送からはデータ転送速度を上げた状態においてデータの転送をする。同様にＣＰＵ出力アドレス１２２とＣＰＵ出力リクエスト信号１２３の出力が途切れた際に、例えばタイミングＴ１１にて、分周器制御回路１３６は、分周器制御信号１３７の値を９から８に変更し、データ転送速度を上昇させる。
【００６０】
次に、図４（Ｂ）に関して説明する。データ転送スタート時に分周器制御信号１３７の値が１０であるため、分周器出力クロック１２１の周波数は逓倍ＰＬＬ出力１１８の周波数の１／１０である。エラー判定結果１２０がＰＡＳＳ判定の場合、ＣＰＵ１１２が連続してＣＰＵ出力アドレス１２２とＣＰＵ出力リクエスト信号１２３を出力する。しかし、ＣＰＵ出力アドレス１２２の値がＡ３の時にエラー判定結果１２０がＦＡＩＬ判定であるため、ＣＰＵ１１２からのデータ転送が中断される。データ転送が中止されている間のタイミングＴ１２にて、分周器制御回路１３６は、分周器制御信号１３７の値を１０から１１に変更し、データ転送速度を下げる。ＣＰＵ１１２は、次のＣＰＵ出力アドレス１２２の転送からはデータ転送速度を下げた状態においてデータを転送する。ＣＰＵ１１２は、ＦＡＩＬしたアドレス値であるＡ３から再読み出しを実施する。同様に、ＣＰＵ出力アドレス１２２の値がＡ４の時に、エラー判定結果１２０がＦＡＩＬ判定であるため、ＣＰＵ１１２からのデータ転送が中断される。データ転送が中断されている間のタイミングＴ１３にて、分周器制御回路１３６は、分周器制御信号１３７を１１から１２に変更し、データ転送速度を下げる。ＣＰＵ１１２は、次のＣＰＵ出力アドレス１２２の転送からはデータ転送速度を下げた状態でのデータ転送となり、ＦＡＩＬしたアドレス値であるＡ４から再読み出しを実施する。
【００６１】
続いて、図５を用いて、ＦＡＩＬ判定時におけるＣＰＵ動作のタイミングチャートについて説明する。
【００６２】
タイミングＴ２０にて、ＣＰＵ出力アドレス１２２と、ＣＰＵ出力リクエスト信号１２３とが、ＣＰＵ１１２からメモリ制御回路１５１へ出力される。ＣＰＵ出力アドレス１２２と、ＣＰＵ出力リクエスト信号１２３とに対して入力された復号化データ１１５のエラー判定結果１２０により、メモリ制御回路出力ＡＣＫ信号１２４と、メモリ制御回路出力データ１２５と、エラーフラグ１２６とが、メモリ制御回路１５１からＣＰＵ１１２へ出力される。
【００６３】
タイミングＴ２１にて、エラーフラグ１２６がＬＯＷレベルであるため、タイミングＴ２２にて、ＣＰＵ１１２は、次のＣＰＵ出力アドレス１２２と、ＣＰＵ出力リクエスト信号１２３とを出力する。タイミングＴ２３にて、エラーフラグ１２６がＨＩＧＨレベルであるため、ＣＰＵ１１２は、次のＣＰＵ出力アドレス１２２と、ＣＰＵ出力リクエスト信号１２３とを出力せず、ＣＰＵ出力リクエスト信号１２３はＬＯＷレベルとなる。
【００６４】
タイミングＴ２４にて、分周器制御回路１３６は、分周器制御信号１３７を４から５に変更し、分周器出力クロック１２１のクロック周波数を下げた後に、タイミングＴ２５にてＣＰＵ出力アドレス１２２とＣＰＵ出力リクエスト信号１２３とが、ＣＰＵ１１２からメモリ制御回路１５１へ出力される。ＣＰＵ出力アドレス１２２の値は、ＦＡＩＬ判定されたタイミングＴ２３と同じアドレス値が出力される。
【００６５】
以上説明したように、本発明の実施の形態１にかかるメモリ回路を用いることにより、メインチップからメモリチップへのアドレス転送の正常性を判定することができる。さらに、メインチップとメモリチップとの間のデータ転送の正常性を判定しながら転送速度を制御することができるため、チップ間のリードスループットを最大化することができる。
【００６６】
（その他の実施の形態）
本発明の実施の形態１における判定部１１６は、復号化データ１１５にＥＣＣエラーが発生しているか否かを検出することにより、メインチップ１０１とメモリチップ１０２との間におけるデータ転送が正常に行われたか否かを判定している。ここで、判定部１１６は、メインチップ１０１がメモリ１０３に対して書き込みを行った書込みデータと、復号化データ１１５とを比較することにより、データ転送が正常に行われたか否かを判定してもよい。復号化データ１１５は、メインチップ１０１が指定したアドレスを用いて復号化されている。そのため、暗号部１０４において暗号化に用いられたアドレスと、復号部１１３において復号化に用いられたアドレスとが異なる場合は、当然に書き込みデータと、復号化データとは異なる。そのため、書き込みデータと、復号化データとを比較することにより、メインチップ１０１とメモリチップ１０２との間におけるアドレス転送誤りを含むデータ転送誤りを検出することができる。
【００６７】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００６８】
１０１  メインチップ
１０２  メモリチップ
１０３  メモリ
１０４  暗号部
１０５  アドレス情報取得部
１１２  ＣＰＵ
１１３  復号部
１１６  判定部
１１７  逓倍ＰＬＬ部
１１９  分周器
１３６  分周器制御回路
１３８  水晶発振器
１５１  メモリ制御回路
【図１】
2011198263.tif 000003
【図２】
2011198263.tif 000004
【図３】
2011198263.tif 000005
【図４】
2011198263.tif 000006
【図５】
2011198263.tif 000007
【図６】
2011198263.tif 000008