(57)【要約】      （修正有）【課題】メモリがコマンドなどを正常に受信できないエラーの前後に送ったコマンドなどに対して、再びエラーが起きる可能性を低減させてコマンドなどを送り直す装置を提供する。【解決手段】メモリコントローラからメモリにコマンド又はアドレスを送信する回路３００と、メモリが正常に受信できないエラーが起こった場合、そのエラー前後に送ったコマンド又はアドレスを、チップセレクトに対して長くドライブしてメモリに送り直す回路４００を持つ。【選択図】図１
2016051219.tif 000002
【特許請求の範囲】
【請求項１】
メモリコントローラであって、
コマンド又はアドレスをメモリに送信する送信手段と、
前記送信したコマンド又はアドレスを保持する保持手段と、
前記送信においてエラーが発生したことをメモリから通知されると、前記保持手段に保持されたコマンド又はアドレスを、チップセレクトに対して長くドライブして前記メモリに再送する再送手段と、を備えることを特徴とするメモリコントローラ。
【請求項２】
前記送信手段では、前記コマンド又はアドレスに対して生成したチェックビットを、前記コマンド又はメモリに付加して送信し、
前記チェックビットに基づいて前記送信においてエラーが発生したことを通知されることを特徴とする請求項１記載のメモリコントローラ。
【請求項３】
コマンド調停手段とコマンドデコード手段とを更に備え、
前記再送手段では、前記コマンド調停手段からコマンドパルスがアサートされた次のサイクルでは、コマンド選択されないようにフリップフロップで１サイクル遅延させ、前記コマンドデコード手段で前記チップセレクトをフリップフロップで１サイクル遅延させ、前記保持手段に保持されたコマンド又はアドレスを、チップセレクトに対して長くドライブして前記メモリに再送することを特徴とすることを特徴とする請求項１または２記載のメモリコントローラ。
【請求項４】
前記保持手段は、所定の時間、前記送信においてエラーが発生したことを通知されなかったら、保持していた前記コマンド又はアドレスを破棄することを特徴とする請求項１乃至３何れか１項に記載のメモリコントローラ。
【請求項５】
メモリコントローラの制御方法であって、
コマンド又はアドレスをメモリに送信する送信工程と、
前記送信したコマンド又はアドレスを保持手段に保持させる工程と、
前記送信においてエラーが発生したことをメモリから通知されると、前記保持手段に保持されたコマンド又はアドレスを、チップセレクトに対して長くドライブして前記メモリに再送する再送工程と、を備えることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラに関し、特に、メモリがコマンドを正しく受信できなかった際にコマンドを再送するメモリコントローラに関する。
【背景技術】
【０００２】
ＤＲＡＭはメモリコントローラからコマンド信号及びアドレス信号を受信し、コマンド信号及びアドレス信号をデコードすることで、コマンドの種類を判別し、メモリセルやモードレジスタなどにアクセスする。
【０００３】
近年、ＤＲＡＭの規格としてＤＤＲ４が提案されている。ＤＤＲ４におけるコマンドの送受信は、８００ＭＨｚから１．６ＧＨｚの高速なクロックに同期して行われる。そのため、コマンド信号及びアドレス信号が正しく受信されたかを検証するＣＡパリティと呼ばれる機能がサポートされている。ＤＲＡＭはＣＡパリティエラーを検出すると、エラーが起きたことをメモリコントローラに通知する。（非特許文献１参照）
メモリコントローラはエラー通知を受けると、実行されなかった可能性のあるコマンドの再送をする必要がある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ＪＥＤＥＣ  ＳＴＡＮＤＡＲＤ  ＤＤＲ４  ＳＤＲＡＭ  ＪＥＳＤ７９−４
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＣＡパリティエラーが起こる前の数サイクルは、コマンドが実行されたか分からず、ＣＡパリティエラーが起こった後の数サイクルは、コマンドが実行されない。
【０００６】
そして、エラーが起きたときと同じ順番、同じタイミングでコマンドを再送しても、再びエラーしてしまう可能性がある。再びエラーしてしまう可能性を低下させるためには、メモリコントローラがコマンドの再送の仕方を工夫する必要がある。
【０００７】
本発明は上記の課題に鑑みてなされたものであり、メモリがコマンドなどを正常に受信できないエラーの前後に送ったコマンドなどに対して、再びエラーが起きる可能性を低減させてコマンドなどを送り直す装置を提供することを目的とする。また、その方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るメモリコントローラは以下の構成を備える。即ち、コマンド又はアドレスをメモリに送信する送信手段と、前記送信したコマンド又はアドレスを保持する保持手段と、前記送信においてエラーが発生したことをメモリから通知されると、前記保持手段に保持されたコマンド又はアドレスを、チップセレクトに対して長くドライブして前記メモリに再送する再送手段。
【発明の効果】
【０００９】
本発明によれば、メモリがコマンド又はアドレスを正常に受信できないエラーを検知すると、そのエラー前後に送ったコマンド又はアドレスを、チップセレクトに対して長くドライブしてメモリに送り直すので、再びエラーが起きる可能性を低減させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態におけるメモリコントローラの概略構成例
【図２】本発明の第１の実施形態における通常コマンド生成回路の概略構成例
【図３】本発明の第１の実施形態における再送コマンド生成回路の概略構成例
【図４】本発明の第１の実施形態におけるメモリコントローラの動作波形例
【図５】本発明の第２の実施形態における再送コマンド生成回路の概略構成例
【図６】本発明の第２の実施形態におけるメモリコントローラの動作波形例
【発明を実施するための形態】
【００１１】
［実施形態１］
図１は本実施形態のメモリコントローラ１００の概略構成である。メモリコントローラ１００は、メモリ９００に接続され、チップセレクト、コマンド、アドレス、パリティビットを送信する。コマンドを示す信号線とアドレスを示す信号線があり、それらのビットのうちＨｉｇｈになっているビット数が奇数か偶数かで、メモリコントローラはパリティビットを作りパリティビットをコマンド、アドレスに付加して送る。パリティビットをチェックビットとして用いる。前記メモリ９００は、受信したコマンド信号、アドレス信号のＨｉｇｈのビット数からパリティビットを作りメモリコントローラから送られてきたパリティビットと比較するパリティチェックを行う。異なれば、パリティエラーとなる。チェック結果を、所定の時間後に通知する。
【００１２】
コマンド生成回路２０１は、発行するコマンド及びアドレスを生成し、前記メモリ９００に発行する。パリティ生成回路２０２は前記コマンド及びアドレスからパリティビットを生成し、前記メモリ９００に発行する。
【００１３】
状態管理回路２０４は、前記メモリ９００からチェック結果がエラーである通知を受けると、再送モードとなり、コマンド保持回路２０３に保持されたコマンドが全て再送され、前記所定の時間経過すると通常モードに戻る。
【００１４】
コマンド保持回路２０３は、前記コマンド及びアドレスが前記メモリ９００に発行された際に、前記コマンド及びアドレスを保持する。前記所定の時間後に前記状態管理回路２０４が通常モードを示せば、前記コマンド及びアドレスを破棄する。再送モードであれば、前記コマンド生成回路２０１により再送されるまで、前記コマンド及びアドレスを保持する。
【００１５】
前記コマンド生成回路２０１は、通常モードにおいては、通常コマンド生成回路３００によりコマンドを生成し、再送モードにおいては、再送コマンド生成回路４００によりコマンドを生成する。
【００１６】
図２は通常コマンド生成回路３００の概略構成である。コマンド調停回路３０１は、入力される複数のコマンド要求から１つを選択し、コマンド及びアドレスを出力する。それとともに、コマンドが有効であることを示すコマンドパルスを出力する。コマンドデコード回路３０２は、前記コマンドパルスがアサートされているときに、前記コマンド及びアドレスからメモリ９００に出力するチップセレクト、コマンド、アドレスを生成する。
【００１７】
図３は再送コマンド生成回路４００の概略構成である。コマンド調停回路４０１は、前記コマンド保持回路２０３から入力される複数の再送コマンド要求から１つを選択し、コマンド及びアドレスを出力する。それとともに、コマンドが有効であることを示すコマンドパルスを出力する。コマンドパルスはフリップフロップ４０３で１サイクル遅延され、次サイクルにおけるコマンド調停回路４０１の調停動作を禁止するためのマスク信号となる。前記コマンドデコード回路４０２は、前記コマンドパルスがアサートされた際、前記コマンド及びアドレスからメモリ９００に出力するチップセレクト、コマンド、アドレスを生成する。前記チップセレクトはフリップフロップ４０４により１サイクル遅延されて、メモリ９００に出力される。前記コマンドデコード回路４０２は、前記コマンドパルスがアサートされていないときは前サイクルのコマンド、アドレスを保持する。
【００１８】
前記再送コマンド生成回路４００により、コマンド及びアドレスはチップセレクトの１サイクル前から２サイクルに渡りドライブされる。
【００１９】
図４は本実施形態におけるメモリコントローラの動作波形例である。チップセレクト、エラーはＬＯＷアクティブな信号とする。ここでは、コマンド発行から３サイクル後までにエラーがアサートされなければ、コマンド及びアドレスがメモリ９００に正しく受信されたものとする。
【００２０】
Ｔ１からＴ３にメモリコントローラ１００がコマンドＡ、コマンドＢ、コマンドＣを発行し、Ｔ４にメモリ９００がエラーを通知したとする。メモリコントローラ１００はエラー通知を受けて通常モードから再送モードになり、コマンドＡ、コマンドＢ、コマンドＣを再送する。Ｔ６〜Ｔ７の２サイクルに渡りコマンドＡを発行する。チップセレクトはコマンドＡに対してはＴ７だけアサートされる。同様にＴ８〜Ｔ９にコマンドＢ、Ｔ１０〜Ｔ１１にコマンドＣを発行する。メモリコントローラ１００は、Ｔ１４までにエラーがアサートされなかったことを確認して、再送モードから通常モードに戻る。
【００２１】
コマンドデコード回路４０２は、コマンド調停回路４０１からコマンドパルスが来たら、コマンド、アドレス、チップセレクトを出力する。コマンド・アドレスは次にコマンドパルスが来るまで保持されるので、Ｔ６〜Ｔ７，Ｔ８〜Ｔ９，Ｔ１０〜Ｔ１１の間は変化しないで保持される。チップセレクトはコマンドパルスから生成される１サイクルだけアサートされるもので、フリップフロップ４０４で１サイクル遅延させられると、Ｔ７，Ｔ９，Ｔ１１だけアサートされる。
【００２２】
コマンド調停回路４０１からコマンドパルスがアサートされた次のサイクルでは、フリップフロップ４０３によってコマンド選択が起きないようにしているので、コマンドパルスが２サイクル連続でアサートされないようになっている。
【００２３】
［実施形態２］
実施形態２は、実施形態１における再送コマンド生成回路４００を異なる形態にしたものである。
【００２４】
図５は再送コマンド生成回路の概略構成である。コマンド調停回路５０１は、前記コマンド保持回路２０４から入力される複数の再送コマンド要求から１つを選択し、コマンド及びアドレスを出力する。それとともに、コマンドが有効であることを示すコマンドパルスを出力する。コマンドパルスはフリップフロップ５０３、５０４でそれぞれ１サイクルずつ遅延され、ＯＲ回路によって、次サイクルと次々サイクルにおけるコマンド調停回路５０１の調停動作を禁止するためのマスク信号となる。前記コマンドデコード回路５０２は、前記コマンドパルスがアサートされた際、前記コマンド及びアドレスからメモリ９００に出力するチップセレクト、コマンド、アドレスを生成する。前記チップセレクトはフリップフロップ５０５により１サイクル遅延されて、メモリ９００に出力される。
【００２５】
前記再送コマンド生成回路５００により、コマンド及びアドレスはチップセレクトの１サイクル前から３サイクルに渡りドライブされる。
【００２６】
図６は本実施形態におけるメモリコントローラの動作波形例である。チップセレクト、エラーはＬＯＷアクティブな信号とする。ここでは、コマンド発行から３サイクル後までにエラーがアサートされなければ、コマンド及びアドレスがメモリ９００に正しく受信されたものとする。
【００２７】
Ｔ１からＴ３にメモリコントローラ１００がコマンドＡ、コマンドＢ、コマンドＣを発行し、Ｔ４にメモリ９００がエラー通知したとする。メモリコントローラ１００はエラー通知を受けて通常モードから再送モードになり、コマンドＡ、コマンドＢ、コマンドＣを再送する。Ｔ６〜Ｔ８の３サイクルに渡りコマンドＡを発行する。チップセレクトはＴ７だけアサートされる。同様にＴ９〜Ｔ１１にコマンドＢ、Ｔ１２〜Ｔ１４にコマンドＣを発行する。メモリコントローラ１００は、Ｔ１６までにエラー信号がアサートされなかったことを確認して、再送モードから通常モードに戻る。
【００２８】
実施形態１〜２では、通常コマンド生成回路と再送コマンド生成回路をそれぞれ別の回路として説明したが、１つの回路で両方の機能を実現させても構わない。
【００２９】
実施形態１〜２では、再送モードにおいて、コマンド及びアドレスを２から３サイクルドライブするものとして説明したが、２サイクル以上であれば、何サイクルであっても構わない。
【００３０】
実施形態１〜２では、再送モードにおいて、エラー発生前と同じ順番にコマンドを発行するものとして説明したが、順番を変更しても構わない。
【００３１】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００３２】
１００  メモリコントローラ
２０１  コマンド生成回路
２０２  パリティ生成回路
２０３  コマンド保持回路
２０４  状態管理回路
３００  通常コマンド生成回路
３０１  コマンド調停回路
３０２  コマンドデコード回路
４００  再送コマンド生成回路
４０１  コマンド調停回路
４０２  コマンドデコード回路
４０３  フリップフロップ
４０４  フリップフロップ
５０１  コマンド調停回路
５０２  コマンドデコード回路
５０３  フリップフロップ
５０４  フリップフロップ
５０５  フリッププロップ
９００  メモリ
【図１】
2016051219.tif 000003
【図２】
2016051219.tif 000004
【図３】
2016051219.tif 000005
【図４】
2016051219.tif 000006
【図５】
2016051219.tif 000007
【図６】
2016051219.tif 000008