(57)【特許請求の範囲】
【請求項１】
外部メモリに対するアクセスを可能とするメモリインターフェイスと、
調整用レイテンシを保持するレジスタ群と、前記外部メモリのレイテンシ調査用アドレスから読み出したデータを保持するリードバッファと、前記リードバッファで保持するデータとレイテンシ調査用データを比較する比較回路と、前記比較回路の結果をもとにレイテンシ調査を行なうシーケンサと、前記メモリインターフェイスを通して前記外部メモリを制御するメモリコントローラを備え、
前記外部メモリの前記レイテンシ調査用アドレスに対して前記レイテンシ調査用データを書込んだあと、
レイテンシ調査用のリードコマンド発行後に前記シーケンサでカウントを開始し、前記比較回路によって前記リードバッファと前記レイテンシ調査用データを比較、一致した時点の前記シーケンサのカウント値を前記調整用レイテンシとして前記レジスタで保持するレイテンシ調査動作を所定の時間毎に行い、
通常動作時はリードコマンド発行から前記調整用レイテンシ分待ったデータを有効データとして扱うレイテンシ調整動作を行なうことを特徴とする半導体集積回路。
【請求項２】
請求項１記載の半導体集積回路において、
前記レイテンシ調査用データは２つ以上複数個のデータであり、前記レイテンシ調査用データと同数だけ前記リードバッファを使用し、レイテンシ調査動作時には連続してデータを比較することを特徴とする半導体集積回路。
【請求項３】
請求項２記載の半導体集積回路において、
前記レイテンシ調査用データを格納するレジスタを持ち、外部メモリの２連続したアドレスに該データを書き込んだ後、レイテンシ調査動作を実施することを特徴とする半導体集積回路。
【請求項４】
請求項２記載の半導体集積回路において、
第一のアドレスにはデータビット毎に反転した前記レイテンシ調査用データを書き込み、第二のアドレスには第一のアドレスに対して反転したデータを書き込んだ後、レイテンシ調査動作を実施することを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部メモリからデータを読み出すタイミングを調整することにより正しいデータを取得することを可能とする半導体集積回路に関する。
【背景技術】
【０００２】
外部メモリを必要とするシステムＬＳＩにおいて、通常、システムＬＳＩと外部メモリとの入出力タイミングが合うように設計の段階でマージンを持たせているが、近年、動作スピードの高速化が進んでおり、ＰＡＤおよびボード配線上などで遅延が想定外にあった場合、読出し時、読み出されたデータが必ずしも所望のタイミングで出力されず、正しいデータが取得できなくなるときがある。
【０００３】
例えば、文献１では実使用の際にエラーが発生した場合に備え、実使用の通常モードとは別に、書込みエラーか、読出しエラーかを切り分けの解析を行うモードを設けている。解析モードでは、確実に動作する速度「低速」と実使用の速度「高速」において、それぞれ「読み出し」「書き込み」モードを設けている。「低速書込み」→「高速読出し」、「高速書込み」→「低速読出し」を行い、それぞれの動作にて書き込みデータと読み出しデータが一致するまでクロックの遅延量を増やし、一致するとその遅延量をレジスタで保持する以上の動作により、正しいデータが読み書きできるタイミングまでクロックを遅延させ、正しいデータの読み書きを実行する。
【特許文献１】特開平１１−３２８９６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、書込みデータと読込みデータが一致するまでクロックを遅延調整する処理が繰り返されるため、解析モード時の処理量が多いという問題があった。また、処理量が多いと時間がかかるが、遅延量が頻繁に変わる環境で使用する場合には、度々通常モードから解析モードに切り替えて読み書きのタイミングを調整する必要があると、デッドタイムが多くなり、通常動作を圧迫する恐れがあった。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、外部メモリに対するアクセスを可能とするメモリインターフェイスと、調整用レイテンシを保持するレジスタ群と、前記外部メモリのレイテンシ調査用アドレスから読み出したデータを保持するリードバッファと、前記リードバッファで保持するデータとレイテンシ調査用データを比較する比較回路と、前記比較回路の結果をもとにレイテンシ調査を行なうシーケンサを有し、前記メモリインターフェイスを通して前記外部メモリを制御するメモリコントローラを内蔵する半導体集積回路において、前記外部メモリの前記レイテンシ調査用アドレスに対して前記レイテンシ調査用データを書込んだあと、レイテンシ調査用のリードコマンド発行後に前記シーケンサでカウントを開始し、前記比較回路によって前記リードバッファと前記レイテンシ調査用データを比較、一致した時点の前記シーケンサのカウント値を前記調整用レイテンシとして前記レジスタで保持するレイテンシ調査動作を行い、通常動作時はリードコマンド発行から前記調整用レイテンシ分待ったデータを有効データとして扱うレイテンシ調整動作を所定の時間毎に行なうことを特徴とする。
【０００６】
前記レイテンシ調査用データは２つ以上複数個のデータであり、前記レイテンシ調査用データと同数だけ前記リードバッファを使用し、レイテンシ調査動作時には連続してデータを比較することを特徴とする。
【０００７】
前記レイテンシ調査用データを格納するレジスタを持ち、外部メモリの２連続したアドレスに該データを書き込んだ後、レイテンシ調査動作を実施することを特徴とする。
第一のアドレスにはデータビット毎に反転した前記レイテンシ調査用データを書き込み、第二のアドレスには第一のアドレスに対して反転したデータを書き込んだ後、レイテンシ調査動作を実施することを特徴とする。
【０００８】
前記レイテンシ調査用アドレスを格納するレジスタを持ち、レイテンシ調査動作時に該アドレスのデータを読み出し、レイテンシ調査動作を実施することを特徴とする。
請求項１記載の半導体集積回路において、
所定の時間毎に、レイテンシ調査動作を実行することを特徴とする。
【発明の効果】
【０００９】
上記構成により、遅延の有無や大小に関係なく、リードコマンド発行からＣＰＵにデータが取り込まれるサイクルが、正しいデータが読み出せるタイミングになる。また、使用中に遅延の変動が生じた場合でも定期的にデータのレイテンシが補正されるため、常に正しいデータが読み出せるタイミングになる。
【００１０】
また、メモリ、ボードの使用条件によってばらつく遅延に関して、１サイクル以内に押さえ込む必要がある、など大きな制約があったが、その制約を意識する必要がなくなりボード製作が容易になる。
【００１１】
従来技術に比べては次のメリットがある。通常動作に組み込むことで、遅延変動があっても常に最新状態で正しいデータが読み出されるレイテンシが調整される。また、一回の遅延調整にかかる処理量が少ないため、頻繁の調整が可能である。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を、図面を参照しながら説明する。
【００１３】
半導体集積回路１は、外部メモリ２への書き込み動作または読み出し動作を可能とするメモリＩ／Ｆ５と、ＣＰＵ２と、メモリへのアクセスを制御するメモリコントローラ４から構成される。図1において半導体集積回路１に内蔵されているＣＰＵ２は外付けでも構わない。
【００１４】
メモリコントローラ４はリードコマンドやライトコマンドを発行するコマンド発行６と、読み出したデータを保持する第１のリードバッファ７および第２のリードバッファ８と、レイテンシ調査用データ・レジスタに格納された値とリードバッファ７，８で保持されたデータを比較する比較回路９と、リードコマンド発行と同時にカウントを開始するシーケンサ１０と、レイテンシ調査用データ及びアドレスや調整用レイテンシを格納するレジスタ群１１から構成される。なお、図１の実施形態ではリードバッファを２個にしているが、２個以上でも構わない。ただし、レイテンシ調査用アドレス及びデータはリードバッファと同数だけ用意する必要がある。
【００１５】
図２はレイテンシ調査動作のフローチャートである。レイテンシを調整する動作を行う前に、読み出しコマンドが発行されてから、データの先頭が到着するまでのレイテンシを調査する。
【００１６】
レイテンシ調査用データは第１のアドレスと第２のアドレスに書き込む。これら２つのアドレスは必ずしも連続である必要はないが、連続であることが望ましい。第１のアドレスには、０１０１・・・と各ビット反転したデータと書き込み、第２のアドレスには、第１のアドレスに書込んだデータの反転１０１０・・・となるデータを書き込む。第１のアドレスと第２のアドレスに入力するデータは全ビット反転させる必要があるが、逆でも構わない。なお、レイテンシ調査用アドレスは使用するシステムに応じて通常動作で上書きされることのない任意のアドレスを指定するものとする。また、書き込み動作はレイテンシを調査する前に１度行うだけで、それ以降に全く行う必要はない。(図２・Ｓ１)
データのレイテンシを調査するために、第１のアドレスと第２のアドレスに対して、連続してリードコマンドを発行する。コマンド発行と同時に、シーケンサでサイクルをカウント開始する。(図２・Ｓ２)
リードコマンドに応じて、外部メモリから読み出された２つのデータがリードバッファに到着する。第１のリードバッファと第２のリードバッファに到着したデータと、第１のアドレスと第２のアドレスから読み出されたレイテンシ調査用データを比較回路で比較する。リードバッファ内のデータがシフトされて行き、両者２つのデータが一致すると、シーケンサでカウントしていたサイクルカウントを停止し、その値を調整用レイテンシ・レジスタに格納する。なお、外部メモリの故障等が原因で、ある所定時間内で一致しなければ、調整用レイテンシ・レジスタの値は上書きされず、レイテンシ調査動作から抜ける。(図２・Ｓ３〜Ｓ５)
図３はレイテンシ調整動作のフローチャートである。レイテンシ調整動作はシステムの通常動作に含まれる。
【００１７】
システムの電源投入後、システムリセットなど初期動作が行われる。（図３・Ｓ１１）
初期動作後、レイテンシ調査動作(図２)を行い、調整用レイテンシを求める。（図３・Ｓ１２）
通常動作の演算処理が開始され、リードコマンドが発行され、外部メモリ内のデータが読み出されると同時にシーケンサでサイクル数をカウント開始する。（図３・Ｓ１３）
レイテンシ調査動作時にレジスタに格納した調整用レイテンシを読み出し、シーケンサでカウントしているサイクル数がその値に至ったら、外部メモリから読み出されたデータが有効であることを示す信号を発行する。その信号をもって、読み出されたデータに対して演算が開始される。（図３・Ｓ１４〜Ｓ１６）
時間が経つと、周囲温度など外部要因でＰＡＤやボード配線上の遅延が変動する可能性があるため、所定の時間ごとにレイテンシ調査動作を再実行し、常に正しいデータタイミングを維持される。（図３・Ｓ１７〜Ｓ１８）
【産業上の利用可能性】
【００１８】
本発明の半導体集積回路は、高速動作時に外部メモリから正しいデータを読み出すことを可能とする回路として有用である。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態１における半導体集積回路を示す構成図
【図２】レイテンシ調査動作を説明するフローチャート
【図３】レイテンシ調整動作を説明するフローチャート
【符号の説明】
【００２０】
１．半導体集積回路
２．外部メモリ
３．ＣＰＵ
４．メモリコントローラ
５．メモリＩ／Ｆ
６．コマンド発行
７．第１のリードバッファ
８．第２のリードバッファ
９．比較回路
１０．シーケンサ
１１．レジスタ群
【図１】
0004691899.tif 000002
【図２】
0004691899.tif 000003
【図３】
0004691899.tif 000004