(57)【要約】  外部メモリとの間でデータ通信を行うために、データ信号と、データラインにのるデータ信号を読み取るタイミングを規定するストローブ信号との遅延調整をする遅延調整装置を提供する。遅延調整部に含まれるテストアクセス部１５０は、メモリ回路との間のデータ転送に用いられるデータラインの使用メモリバンド幅を監視するメモリバンド幅監視部２１２を備え、使用しているメモリバンド幅が所定の閾値よりも低いときに遅延調整を実行する。遅延調整は、ストローブ信号をデータ信号から所定の遅延量だけ遅延させてそのときのデータ転送の成否を判定することを、遅延量を換えながら行って、最適な遅延量を算出し、以降算出した遅延量を用いてストローブ信号を遅延させる。
2010137330.tif 000002
【特許請求の範囲】
【請求項１】
外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器に搭載され、ストローブ信号の遅延調整を行う遅延調整装置であって、
前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視部と、
前記メモリバンド情報で示されるメモリバンド幅に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整手段とを備える
ことを特徴とする遅延調整装置。
【請求項２】
前記遅延調整手段は、前記メモリバンド幅が所定の閾値を下回った場合に、前記遅延調整を実行する
ことを特徴とする請求項１記載の遅延調整装置。
【請求項３】
前記遅延調整装置は、更に、
遅延調整を行うための条件を定めた遅延調整条件情報を記憶する記憶手段を備え、
前記遅延調整手段は、前記記憶手段に記憶されている遅延調整条件情報で定められる条件が成立した場合にも前記遅延調整を実行する
ことを特徴とする請求項１記載の遅延調整装置。
【請求項４】
前記所定の条件とは、自装置が起動してから、所定時間が経過するごとである
ことを特徴とする請求項３記載の遅延調整装置。
【請求項５】
前記遅延調整手段は、前記外部メモリから出力されるストローブ信号を所定量だけ遅延させて、自装置から前記外部メモリにデータ転送の成否の判定に用いる判定元データを書き込み、当該書き込んだデータを読み取り、読みとったデータと判定元データとを比較してデータ転送の成否を判定して、データ転送に適したストローブ信号の遅延量を決定することで前記遅延調整を実行する
ことを特徴とする請求項２記載の遅延調整装置。
【請求項６】
前記遅延調整手段は、前記外部メモリから出力されるストローブ信号を所定量だけ遅延させて、自装置から前記外部メモリにデータ転送の成否の判定に用いる判定元データを書き込み、当該書き込んだデータを読み取り、読みとったデータと判定元データとを比較してデータ転送の成否を判定して、データ転送に適したストローブ信号の遅延量を決定することで前記遅延調整を実行する
ことを特徴とする請求項４記載の遅延調整装置。
【請求項７】
前記遅延調整装置は、更に、
前記遅延調整手段が前記遅延調整を実行する前に、前記内部メモリの前記仮データを書き込む領域に記憶されているデータを退避させるためのメモリデータ退避手段を備える
ことを特徴とする請求項４記載の遅延調整装置。
【請求項８】
外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器間において、遅延調整装置がストローブ信号の遅延調整を行う遅延調整方法であって、
前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視ステップと、
前記メモリバンド情報で示されるメモリバンド幅に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整ステップとを含む
ことを特徴とする遅延調整方法。
【請求項９】
外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器間において、遅延調整装置がストローブ信号の遅延調整を行う遅延調整方法であって、
前回行った遅延調整から所定時間が経過したか否かを判定する判定ステップと、
前記判定ステップが肯定的な判定をした場合に、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整ステップとを含む
ことを特徴とする遅延調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ信号を読み取るべきタイミングを定めるストローブ信号の遅延調整に関する。
【背景技術】
【０００２】
従来、データの送受信を実行するＳｏＣ(System on Chip)とメモリとの間でのデータ通信において、データを読み取る側は、データラインに乗っているデータ信号を、データ信号の読み取りタイミングを規定するストローブ信号を受け付けたタイミングで読み取る。より具体的には、読み取り側がストローブ信号の立ち上がりエッジを検出して、データラインに乗っているデータ信号を読み取る。【０００３】
図１５に示すように、ＳｏＣ１５００と、メモリ１５０１とはデータラインとストローブラインとで接続される。データラインにデータがのっているタイミングとストローブ信号の立ち上がりとがずれると、受け取り側は正しくデータを読み取れないため、多少ストローブ信号の立ち上がりエッジが前後してもよいように、ストローブ信号の立ち上がりをデータ信号がデータラインにのっているタイミングの中間点になるように遅延調整を行う必要がある。即ち、図１５において、データ信号がデータラインにのっているタイミングにおいて、ストローブ信号の立ち上がりエッジが遅延量Ｅで示されるタイミングで立ち上がるように、ストローブ信号を遅延させる必要がある。なお、ここでいう遅延量は、データ信号がデータラインに乗り始めたタイミングからストローブ信号が立ち上がるまでの時間をいう。【０００４】
当該遅延調整においては、ＳｏＣ１５００が自身でデータを出力する場合には、データを載せているタイミングの中点において、ストローブ信号を立ち上げればよい。これは、ＳｏＣ１５００自身はデータ信号をストローブ信号と同じタイミングで出力しつつ、ストローブ信号のみ保持している遅延素子を規定の段数だけ通過させてからメモリ１２０１に出力する構成をとってもよい。【０００５】
一方、メモリ１５０１は、データ信号を出力する出力開始タイミングと出力期間とを、ストローブ信号の立ち上がりエッジと立ち下りエッジとに一致させて出力する機能しかない。そのため、ＳｏＣ１５００は、メモリ１５０１から受け付けるストローブ信号を自ら遅延させる必要があり、その自ら遅延させたストローブ信号の立ち上がりを検出して、データを読み取る。このストローブ信号をどれだけ遅延させるかを決定し、決定した量だけストローブ信号を遅延させることを遅延調整という。【０００６】
特許文献１には、この遅延調整を、システムの起動時や、システムリセットが実行されたタイミングにおいて実行する装置が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２０２０３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、ＳｏＣが動作し続けることにより、経年劣化などにより、データ信号とストローブ信号のタイミングとがずれてくることがある。また、ＳｏＣは、負荷状態に応じて動作温度が異なり、その温度特性により動作タイミングが変化し、データ信号とストローブ信号とのタイミングがずれることもある。【０００９】
昨今ＳｏＣの動作クロックは高速化してきており、それに併せてデータラインにデータ信号が載っている期間も短くなってきている。これは、とりもなおさず、ストローブ信号の立ち上がりのタイミングもまた非常にシビアなものが要求されることを意味しており、現行のものではピコセカンドオーダーのものを要求される仕様もざらにある。【００１０】
当該仕様にあっては、データ信号とストローブ信号のずれは、データ通信において、正常なデータ転送がなされず、システムが正常に動作しなくなる要因となる。【００１１】
そこで、本発明においては、当該ずれをなるべく発生させず、かつ、システムの通常動作をなるべく妨げない遅延調整装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明に係る遅延調整装置は、外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器に搭載され、ストローブ信号の遅延調整を行う遅延調整装置であって、前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視部と、前記メモリバンド情報で示されるメモリバンド幅に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整手段とを備えることを特徴としている。
【発明の効果】
【００１３】
上述のような構成によって遅延調整装置は、システムが動作中であっても、装置とメモリ間の使用しているメモリバンド幅を監視し、使用されているメモリバンド幅が少ない状態においては、データ転送を実行する装置とメモリ間のデータ転送がそれほど行われていないことになる。遅延調整は、データ転送を実行する装置とメモリ間においてストローブ信号を何段階かで遅延させつつ、実際にデータ転送を行って、そのデータ転送の成否に応じて、ストローブ信号の遅延量を決定することで行われる。このため、実際にデータ転送を行ってメモリバンド幅を一定以上使用していると、この遅延調整のためのデータ転送を実行できないが、メモリバンド幅の使用量が一定以下である場合には、遅延調整のためのデータ転送を実行できる。よって、システムが動作中であっても遅延調整を行えるので、システムが動作することによる発熱などに応じて変化する動作環境にも対応した遅延調整を行うことができ、従来よりも、データ信号とストローブ信号のずれを従来よりも抑制することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１に係る半導体装置１の機能構成を示す機能ブロック図である。
【図２】実施の形態１に係るテストアクセス部の機能構成を示す機能ブロック図である。
【図３】実施の形態１に係る遅延量保持部の機能構成を示す機能ブロック図である。
【図４】実施の形態１に係る遅延素子部の機能構成を示す機能ブロック図である。
【図５】実施の形態１に係る遅延素子部の回路構成を示すブロック図である。
【図６】テストアクセス時に用いる判定結果テーブルのデータ構成例を示すデータ概念図である。
【図７】実施の形態１に係る遅延調整部の遅延調整の動作を示すフローチャートである。
【図８】テストアクセス処理における遅延調整部の動作を示すフローチャートである。
【図９】実施の形態２に係る半導体装置の機能構成を示す機能ブロック図である。
【図１０】実施の形態２に係るテストアクセス部の機能構成を示す機能ブロック図である。
【図１１】実施の形態２に係る遅延調整部の遅延調整の動作を示すフローチャートである。
【図１２】半導体装置の変形例を示す機能ブロック図である。
【図１３】半導体装置の変形例に係るテストアクセス部の機能ブロック図である。
【図１４】温度別遅延情報の構成例を示すデータ概念図である。
【図１５】遅延調整の内容を示す概要図である。
【発明を実施するための形態】
【００１５】
＜実施の形態１＞
本発明に係る遅延調整装置の一実施形態である半導体装置について、図面を参照しながら説明する。
＜構成＞
図１は、半導体装置１の機能構成を示す機能ブロック図である。半導体装置１は、例えば、デジタル放送受信装置、携帯電話、ＢＤ（Blu-ray Disc）再生装置、ＢＤ録画装置などの民生機器や産業機器で利用される装置である。半導体装置１は、半導体集積回路１０とメモリ回路１９０とを含んで構成される。
【００１６】
半導体集積回路１０は、ＳｏＣなどの、ビデオデコード処理やデータ転送処理等の様々な機能を実現する半導体で構成された電子回路である。半導体集積回路１０は、メモリ回路１９０との間でデータの送受信を実行する機能を有する。図１に示すように半導体集積回路１０は、遅延調整部１００と、第１転送マスタ部１６０と、調停部１７０と、メモリデータ送受信部１８０とを含んで構成される。
【００１７】
遅延調整部１００は、半導体集積回路１０とメモリ回路１９０との間で行われるデータ送受信におけるデータ信号とストローブ信号との遅延調整を実行する機能を有する。遅延調整部１００は、アクセス先変換部１１０と、データ退避部１２０と、遅延素子部１３０と、遅延量保持部１４０と、テストアクセス部１５０とを含んで構成される。また、遅延調整部１００は、データ信号やストローブ信号だけでなく、制御信号やアドレス信号の遅延調整を実行する機能も有する。
【００１８】
アクセス先変換部１１０は、テストアクセスを実行する際に、テストアクセス部１５０からの指示のもと、テストアクセスの際にテストアクセス用のデータを書き込む領域を決定し、テストアクセス部１５０からデータ退避を示す信号を受け付けている場合に決定した領域にあるデータをデータ退避部１２０に退避させる機能を有する。また、アクセス先変換部１１０は、テストアクセスを実行する際に退避させたデータが格納されていたアドレスを変換テーブル１１１に記憶する機能を有し、テストアクセス終了時にデータ退避部１２０に退避させたデータを取得し、元々格納されていたアドレスに復元する機能も有する。なお、アクセス先変換部１１０は、テストアクセスを実行していないタイミングにおいては、メモリデータ送受信部１８０から転送されてきた信号をそのまま遅延素子部１３０に転送するか、遅延素子部１３０から転送されてきた信号をそのままメモリデータ送受信部１８０に転送する。
【００１９】
データ退避部１２０は、遅延調整部１００が遅延調整を実行するタイミングにおいて、半導体集積回路１０内のデータ通信の際のデータを保持するメモリにあるデータの退避先として用いられるメモリであり、テストアクセス実行時にアクセス先変換部１１０から出力された退避データを保持する機能を有する。また、アクセス先変換部１１０からの指示に従い、保持していた退避データを出力する機能も有する。
【００２０】
遅延素子部１３０は、受け取ったデータ信号をそのまま転送するとともに、そのデータ信号を読み取るタイミングを規定するストローブ信号を、遅延量保持部１４０から指定された遅延量だけ、遅延させて出力する機能を有する。遅延素子部１３０は、データをメモリ回路１９０に書き込む場合に、データラインに第１データ信号１３３を乗せて出力するとともにストローブラインにのる第１ストローブ信号１３４を遅延させて出力する。遅延素子部１３０は、データをメモリ回路１９０から読み出す場合に、メモリ回路から出力されたストローブラインに乗る第１ストローブ信号１３４を遅延させ、遅延させた第１ストローブ信号１３４の立ち上がりエッジを検出してデータラインに乗っている第１データ信号１３３を読み取る。また、遅延素子部１３０は、その他の信号、即ち、制御信号、アドレス信号、データ信号なども、必要に応じて、遅延させる機能も有する。遅延素子部１３０の詳細については後述する。
【００２１】
遅延量保持部１４０は、ストローブ信号をどれだけ遅延させるのかを示す遅延量を保持し、遅延素子部１３０に通知する機能を有する。また、遅延量保持部１４０は、ストローブ信号以外の信号をどれだけ遅延させるのかを示す遅延量も保持し、遅延素子部１３０に通知する機能も有する。各遅延量は、テストアクセス部１５０から設定される。遅延量保持部１４０の詳細については後述する。
【００２２】
テストアクセス部１５０は、条件を満たした場合に、データ信号とストローブ信号との遅延調整を行う機能を有する。テストアクセス部１５０は、遅延量を定めて、メモリ回路１９０へのテストアクセスを行って、データ転送の成否によって、遅延調整を実行する。テストアクセス部１５０は、現在の遅延量及びその前後１０ｐｓ単位で合計７つの遅延量それぞれで、５回、メモリ回路１９０にデータを書き込み、書き込んだそのデータを再び読み出し、書き込む前のデータと読み取ったデータが一致するかどうかを判定する。そして、テストアクセス部１５０は、５回全てのテストアクセスが成功した遅延量の平均値を算出して、算出した遅延量を現在の遅延量として、遅延量保持部１４０に設定する。このテストアクセスを行って遅延量を算出して、算出した遅延量を現在使用する遅延量とすることを遅延調整という。テストアクセス部１５０の更なる詳細については、後述する。
【００２３】
第１転送マスタ部１６０は、ＣＰＵ（Central Processing Unit）や、ＤＭＡＣ（Direct Memory Access Controler）などのことであり、メモリ１９０との間でデータ転送を実行する機能を有する。第１転送マスタ部１６０は、調停部１７０と第二制御ライン信号１６１、第二アドレス信号１６２、第二データ信号１６３等を用いてメモリ回路１９０にメモリアクセスを実行する。第二制御ライン信号１６１は、データアクセスの種別（リード／ライト）を指定する信号である。第二アドレス信号１６２は、メモリ回路１９０のアクセス先のアドレスを指定する信号である。第二データ信号１６３は、実際に書き込む、あるいは、読み出したデータの信号である。以降、制御ライン信号、アドレス信号、データ信号は、その前に付した番号は異なるとしても、その意味は同じものとする。即ち、制御ライン信号は、メモリアクセスの種別を規定するものであり、アドレス信号は、メモリ回路１９０のアドレスを指定するものであり、データ信号は、実際に転送されるデータの信号を示すものであるとする。
【００２４】
調停部１７０は、複数のメモリアクセス要求があった場合に、予め定められた優先度に従って一つのメモリアクセス要求を選択する機能を有する。例えば、第１転送マスタ部１６０以外の転送マスタ（図示せず）もメモリ回路１９０とのデータ通信を実行する場合に、第１転送マスタ部１６０と、それ以外の転送マスタとの間に、予め優先順位設定を行っておき、優先度の高いほうのアクセス要求を通す機能を有する。本実施形態においては、調停部１７０は、第１転送マスタ部１６０からのアクセスと、テストアクセス部１５０からのアクセスとを受け付け、テストアクセス部１５０からのアクセスを優先する。
【００２５】
メモリデータ送受信部１８０は、第四制御ライン信号１７１、第四アドレス信号１７２、第四データ信号１７３を基に、半導体集積回路１０がメモリ回路１９０へメモリアクセスする際に使用する第一制御ライン信号１３１、第一アドレス信号１３２、第一データ信号１３３、第一ストローブ信号１３４の遅延処理前の信号である第五制御ライン信号１８１、第五アドレス信号１８２、第五データ信号１８３、第二ストローブ信号１８４を生成し、遅延調整部１００との間で入出力を実行する。
【００２６】
メモリ回路１９０は、ＤＤＲ３−ＳＤＲＡＭ（Double-Data-Rate3 Synchronous Dynamic Randam Access Memory）などに代表される、外部からの要求によりデータを保持する、あるいは、外部からの要求により保持しているデータを出力する機能を有する半導体からなる電子回路である。メモリ回路１９０は、半導体集積回路１０と、第１制御ライン信号１３１、第一アドレス信号１３２、第一データ信号１３３、第１ストローブ信号１３４を介して接続される。メモリ回路１９０は、半導体集積回路１０から出力された第一制御ライン信号１３１に従い、半導体集積回路１０から転送されてきたデータを保持する機能を有する。また、メモリ回路１９０は、半導体集積回路から出力された第一制御ライン信号１３１に従い、半導体集積回路１０に指定されたデータを第一データ信号１３３に出力する機能も有する。
【００２７】
図２は、テストアクセス部１５０の詳細の構成例を示す機能ブロック図である。
【００２８】
図２に示すようにテストアクセス部１５０は、テストアクセス発行部２０１と、テスト状態保持部２０２と、テスト領域指定部２０３と、テストフラグ保持部２０４と、退避フラグ保持部２０５と、テスト開始判定部２１０と、遅延量算出部２２０と、ＯＫ／ＮＧ判定部２３０とを含んで構成される。
【００２９】
テストアクセス発行部２０１は、テスト状態保持部２０２からの動作状態を示す信号が、「０」から「１」に変化したタイミングで、テストアクセスを発行する機能を有する。テストアクセス発行部２０１は、制御ライン信号１５１を介して、データのリード／ライトを指定し、アドレス信号１５２を介してメモリ回路１９０のアクセス先のアドレスを指定し、データ信号１５３を介して書き込む判定元データの転送と、メモリ回路１９０から読み取ったデータの転送が行われる。テストアクセス実行時に、テストアクセス発行部２０１は、ＯＫ／ＮＧ判定部２３０の判定元データ保持部２３１が保持するデータを書き込むためのアクセス要求を発行する。当該アクセス要求に対するアクセス完了を受け付けると、テストアクセス発行部２０１は次に、書き込んだデータを再度読み取るためのアクセス要求を発行し、当該アクセス要求に応じてメモリ回路１９０から転送されてきたデータをＯＫ／ＮＧ判定部２３０に転送する。データ信号を介して書き込む判定元データを出力し、メモリ回路１９０から書き込んだ判定元データを読み取ったデータを受け取る。
【００３０】
テスト状態保持部２０２は、半導体集積回路１０のテストアクセスの状態を示す情報を保持する機能を有する。当該状態には、
・テスト状態かつＯＫ／ＮＧ部１０００１が使用する判定元データ保持部１０００１０に格納する判定元データを読み出す状態、
・テスト状態かつ遅延量を変更してのテストアクセスを行う状態、
・テスト状態かつテストの為のメモリ回路１１に対する書き込みを行う状態
・テスト状態かつ第一転送マスタ部１０１のような本システムからのメモリアクセスが発生した状態
などがある。
【００３１】
なお、テスト状態保持部２０２の値は、本システム使用者が直接設定可能であり、テスト開始判定部２１０からのテスト開始要求信号などによっても設定可能である。ここでは、テスト開始判定部２１０が、テスト開始を示す信号を出力した場合に、テスト状態であることを示す情報を保持するものとし、当該情報を保持していると、テストアクセス発行部２０１は、テストアクセスのためのアクセス要求を発行する。
【００３２】
テスト領域指定部２０３は、遅延調整のためのメモリ回路１９０から読み取った判定元データを、半導体集積回路１０が保持するメモリのどの領域に記録するのかを指定する機能を有し、そのアドレスをテストアクセス発行部２０１に通知する機能を有する。
【００３３】
テストフラグ保持部２０４は、テストアクセスを実行しているかどうかを示すフラグを保持する機能を有し、当該フラグをテストアクセス発行部２０１に通知する機能を有する。テストフラグ保持部２０４が保持する情報は、１ビットのデータであり、「０」であれば通常動作状態、「１」であればテストアクセス状態であることを示す。
【００３４】
退避フラグ保持部２０５は、データをデータ退避部１２０に退避すべきかどうかを示すフラグを保持する機能を有し、当該フラグを遅延量保持部１４０に通知する機能を有する。テスト領域指定部２０３で指定される領域に既にデータが格納されていた場合に、退避フラグ保持部２０５が保持するデータは、データ退避部１２０にデータを退避すべきことを示す「１」となり、それ以外の場合では、「０」となる。
【００３５】
テスト開始判定部２１０は、テストアクセスを実行するタイミングであるかどうかを判定する機能を有し、テストアクセスを実行すべきタイミングであると判定した場合に、その旨をテスト状態保持部２０２に通知する機能を有する。テスト開始判定部２１０は、具体的には、テスト条件設定部２１１とメモリ幅監視部２１２と、判定部２１３とを含んで構成される。
【００３６】
テスト条件設定部２１１は、テストアクセスを実行するためのタイミングを決定するための条件を設定、保持する機能を有する。当該設定は、例えば半導体装置１に接続されたＰＣから数値の設定を行ったり、あるいは、半導体装置１に備え付けられたディップスイッチなどにより設定できる。テスト条件設定部２１１は、テストアクセスを開始するための条件として、使用しているメモリバンド幅が所定の閾値以下であるという条件を保持し、当該条件を判定部２１３に通知する機能を有する。
【００３７】
メモリ幅監視部２１２は、第一データ信号１３３を監視して使用されているメモリバンド幅を監視する機能を有し、使用されているメモリバンド幅を判定部２１３に定期的（例えば１分毎）に通知する機能を有する。
【００３８】
判定部２１３は、メモリ幅監視部２１２から通知された使用しているメモリバンド幅が、テスト条件設定部２１１から通知された条件を満たしているか否かを判定する機能を有する。当該判定において、肯定的、即ち、条件を満たしていると判定した場合には、判定部２１３は、テストアクセス状態に移行することをテスト状態保持部２０２に通知する機能を有する。
【００３９】
遅延量算出部２２０は、テストアクセスを行って得られた結果から、最新の遅延量を算出する機能を有する。遅延量算出部２２０は、遅延素子指定部２２１と、遅延タップ量保持部２２２と、タップ回数保持部２２３と、テスト遅延量算出部２２４と、テスト完了判定部２２５と、最適値設定部２２６とを含んで構成される。
【００４０】
遅延素子指定部２２１は、遅延量保持部１４０のどの遅延量保持部を用いるのかを指定する信号を出力する機能を有する。
【００４１】
遅延タップ量保持部２２２は、遅延量の１回の遅延のための遅延量を保持する機能を有する。本実施例においては、遅延タップ量保持部２２２は、１０ｐｓという遅延量を保持しているものとする。即ち、遅延調整は、１０ｐｓ単位で実行されることとなる。
【００４２】
タップ回数保持部２２３は、テストアクセスを行う際に、何回、遅延量をずらすかを規定する回数を保持する機能を有する。例えば、タップ回数保持部２２３が３という回数を保持する場合には、テストアクセスは、現在の遅延量と、その前後に遅延タップ量保持部２２２で保持される遅延量だけずらした遅延量でのテストアクセスが実行されることを意味する。本実施の形態においては、タップ回数保持部２２３は、７というタップ回数を保持するものとする。遅延タップ量保持部２２２が保持する遅延量は１０ｐｓなので、これにより、テストアクセスは、「現行の遅延量−３０ｐｓ」、「現行の遅延量−２０ｐｓ」、「現行の遅延量−１０ｐｓ」、「現行の遅延量」、「現行の遅延量＋１０ｐｓ」、「現行の遅延量＋２０ｐｓ」、「現行の遅延量＋３０ｐｓ」の計７つ分の遅延量でのテストアクセスが実行されることとなる。
【００４３】
テスト遅延量算出部２２４は、現在の遅延量からどれだけ遅延量を変化させるのかを決定する機能を有し、テストアクセスの際に使用する遅延量を遅延量保持部１４０に通知する機能を有する。当該遅延量は、遅延量保持部２２２が保持する遅延量と、タップ回数保持部２２３で保持されるタップ回数とに基づいて決定され、未実行のテストアクセスの遅延量に決定される。
【００４４】
テスト完了判定部２２５は、タップ回数保持部２２３で示される回数だけテストアクセスをそれぞれ所定の回数（本実施の形態では５回分）分だけ行ったかどうかによって、テストアクセスが完了したか否かを判定する機能を有し、テストアクセスが完了した場合には、最適値設定部２２６にテストアクセスが完了したことを通知する機能を有する。
【００４５】
最適値設定部２２６は、テスト完了判定部２２５からテストアクセスの終了を通知されると、ＯＫ／ＮＧ判定部２３０が保持する判定結果テーブル２３４を取得する。そして、最適値設定部２２６は、判定結果テーブル２３４から最適となる遅延量を算出し、遅延量保持部１４０に設定する機能を有する。
【００４６】
ＯＫ／ＮＧ判定部２３０は、テストアクセス部１５０が実行したテストアクセスの成否を判定する機能を有し、その判定結果を示す情報を保持し、当該情報を遅延量算出部２２０に通知する機能を有する。
【００４７】
ＯＫ／ＮＧ判定部２３０は、判定元データ保持部２３１と、テストリードデータ保持部２３２と、データ比較部２３３と、判定結果テーブル２３４とを含んで構成される。
【００４８】
判定元データ保持部２３１は、テストアクセスを実行する際に、メモリ回路１９０に書き込む判定元データを保持する機能を有する。当該判定元データは、メモリ回路１９０に書き込み可能な形式の特定のパターンのデータであればどのようなものであってもよく、例えば、０ｘ５ａ５ａ５ａ５ａといったデータであってもよいし、４ビットや８ビットの数値データなどであってもよい。また、判定元データ保持部２３１は、保持している判定元データをデータ比較部２３３に通知する機能も有する。当該判定元データは予め設定されている。
【００４９】
テストリードデータ保持部２３２は、テストアクセスによって、一度メモリ回路１９０に書き込んだ判定元データを読み出して得たデータを保持する機能を有し、テストアクセス発行部２０１から転送されてきたデータを保持する。テストリードデータ保持部２３２は、一回のテストアクセス毎に読み取ったデータ（以降、読取判定元データとも呼称する）を保持し、保持しているデータが更新されるごとに保持している読取判定元データをデータ比較部２３３に出力する機能を有する。
【００５０】
データ比較部２３３は、判定元データ保持部２３１から出力された判定元データと、テストリードデータ保持部２３２から出力された読取判定元データとを比較し、一致するかどうかを判定する。一致した場合には、現在のストローブ信号の遅延量でデータ通信に成功したことを意味する。また、一致しなかった場合には、データ通信に失敗したことを意味し、現在のストローブ信号の遅延量ではデータ通信に支障をきたすことを意味する。データ比較部２３３は、判定元データと読取判定元データとが一致した場合に、そのときのテストアクセスの遅延量に対応付けてデータ通信が成功したことを示す情報を判定結果テーブル２３４に登録し、一致しなかった場合に、そのときのテストアクセスの遅延量に対応付けてデータ通信が失敗したことを示す情報を判定結果テーブル２３４に登録する。
【００５１】
判定結果テーブル２３４は、最適値設定部２２６が最適な遅延量を算出する際に参照するテストアクセスの成否を示す情報である。図６に、判定結果テーブル２３４の一構成例となるデータ概念図を示した。
【００５２】
図６に示すように、判定結果テーブル２３４は、各遅延量に応じて、行ったテストアクセスの成否を示す情報であり、ストローブ信号の遅延量６０１とＯＫ／ＮＧ判定６０２とを対応付けた情報である。本実施例では、テストアクセスは、各遅延量について５回行うものとし、各回のテストアクセスの成否が登録される。図６の判定結果テーブル２３４においては、データ転送が成功した場合を「○」で、失敗した場合を「×」で示している。
【００５３】
例えば図６では、「現行の遅延量−１０ｐｓ」の場合、即ち現行よりも１０ｐｓだけストローブ信号の立ち上げを早めた場合では、第３回目だけテストアクセスに失敗した例を示している。図６に示した判定結果テーブル２３４の場合だと、全てのテストアクセスが成功した、「現行」、「現行＋１０ｐｓ」、「現行＋２０ｐｓ」の平均値、即ち、「現行＋１０ｐｓ」、つまり現行の遅延量よりも、１０ｐｓだけストローブの立ち上がりを遅くした新たな遅延量が遅延量保持部１４０に保持されることになる。
【００５４】
図３は、遅延量保持部１４０の機能構成を示す機能ブロック図である。
【００５５】
図３に示すように、遅延量保持部１４０は、現行制御ライン信号ビット０用遅延量保持部３０１と、現行制御ライン信号ビット１用遅延量保持部３０２と、現行アドレスビット０用遅延量保持部３０３と、現行アドレスビット１用遅延量保持部３０４と、現行データ信号ビット０用遅延量保持部３０５と、現行データ信号ビット１用遅延量保持部３０６と、現行ストローブ信号用遅延量保持部３０７と、テスト用制御ライン信号ビット０用遅延量保持部３１１と、テスト用制御ライン信号ビット１用遅延量保持部３１２と、テスト用アドレスビット０用遅延量保持部３１３と、テスト用アドレスビット１用遅延量保持部３１４と、テスト用データ信号ビット０用遅延量保持部３１５と、テスト用データ信号ビット１用遅延量保持部３１６と、テスト用ストローブ信号用遅延量保持部３１７と、セレクタ３２１〜３２７とを含んで構成される。
【００５６】
現行制御ライン信号ビット０用遅延量保持部３０１は、現在使用されている制御ライン信号のビット０の信号線にのる信号を遅延させる遅延量を保持する機能を有し、当該遅延量をセレクタ３２１に出力する機能を有する。また、現行制御ライン信号ビット０用遅延量保持部３０１の保持する遅延量は、テストアクセス終了時に、テストアクセス部１５０により最新のものに更新される。
【００５７】
テスト用制御ライン信号ビット０用遅延量保持部３１１は、テストアクセス時に使用される制御ライン信号のビット０の信号線にのる信号を遅延させる遅延量を保持する機能を有し、当該遅延量をセレクタ３２１に出力する機能を有する。テスト用制御ライン信号ビット０用遅延量保持部３１１の保持する遅延量は、テストアクセスを実行しているときに、遅延量を変更するごとにテストアクセス部１５０により更新される。
【００５８】
セレクタ３２１は、テストアクセス部１５０からの指示に従って、遅延素子指定部２２１が出力するどの遅延素子部であるかを示す信号が制御ライン信号ビット０であることを示す信号である場合に、テスト状態保持部２０２から出力されるテスト状態であるか否かを示す信号１４７に基づいて、現行制御ライン信号ビット０用遅延量保持部３０１から出力されている信号と、テスト用制御ライン信号ビット０用遅延量保持部３１１から出力されている信号とのうちのいずれか一方を選択して、遅延素子部１３０に出力する機能を有する。具体的には、テスト状態保持部２０２から出力されている信号がテストアクセス実行中であることを示している場合に、テスト用制御ライン信号ビット０用遅延量保持部３１１が保持する遅延量を選択して出力し、それ以外の場合には、現行制御ライン信号ビット０用遅延量保持部３０１が保持する遅延量を出力する。
【００５９】
その他の現行用遅延量保持部（３０２〜３０７）、テスト用遅延量保持部（３１２〜３１７）、セレクタ（３２２〜３２７）については、制御対象となるラインと遅延量がそれぞれ異なるだけで、それぞれの機能部の名称で示される信号の遅延量を出力する構成となっているので、詳細な説明を割愛する。
【００６０】
図４は、遅延素子部１３０の機能構成を示す機能ブロック図である。
【００６１】
図４に示すように、遅延素子部１３０は、制御ライン信号ビット０用遅延素子部４０１と、制御ライン信号ビット１用遅延素子部４０２と、アドレス信号ビット０用遅延素子部４０３と、アドレス信号ビット１用遅延素子部４０４と、データ信号ビット０用遅延素子部４０５と、データ信号ビット１用遅延素子部４０６と、ストローブ信号用遅延素子部４０７とを含んで構成される。
【００６２】
制御ライン信号ビット０用遅延素子部４０１は、制御信号の０ビット目の信号を遅延させるための機能を有する。
【００６３】
制御ライン信号ビット１用遅延素子部４０２は、制御信号の１ビット目の信号を遅延させるための機能を有する。
【００６４】
アドレス信号ビット０用遅延素子部４０３は、アドレス信号の０ビット目の信号を遅延させるための機能を有する。
【００６５】
アドレス信号ビット１用遅延素子部４０４は、アドレス信号の１ビット目の信号を遅延させるための機能を有する。
【００６６】
データ信号ビット０用遅延素子部４０５は、データ信号の０ビット目の信号を遅延させるための機能を有する。
【００６７】
データ信号ビット１用遅延素子部４０６は、データ信号の１ビット目の信号を遅延させるための機能を有する。
【００６８】
ストローブ信号用遅延素子部４０７は、ストローブ信号を遅延させるための機能を有する。
【００６９】
各遅延素子部は、遅延量保持部１４０内の対応する遅延量保持部から出力された遅延量（３３１〜３３７）の分だけ、入力された信号を遅延させて出力する。
【００７０】
本実施の形態にあっては、基本的に遅延調整は、データ信号とストローブ信号との間で行うものであり、この場合重要になる構成は、ストローブ信号用遅延素子部４０７であるが、制御ライン信号ビット０用遅延素子部４０１と、制御ライン信号ビット１用遅延素子部４０２と、アドレス信号ビット０用遅延素子部４０３と、アドレス信号ビット１用遅延素子部４０４とを備えることにより、例えばアドレス信号０ビットと、アドレス信号１ビットとの間でずれが発生した場合などにそのずれを修正したりすることができる。アドレス信号間でのずれがあった場合には、正しいアドレスが伝達されないことになるため、そのような事態に対処できる。
【００７１】
図５は、ストローブ信号用遅延素子部４０７の詳細な回路構成を示すブロック図である。
【００７２】
ストローブ信号用遅延素子部４０７は、半導体集積回路側からメモリ回路１９０にデータを書き込む場合と、データをメモリ回路１９０から読み取る場合とでストローブ信号を遅延させる構成を備える。
【００７３】
図４に示すようにストローブ信号用遅延素子部４０７は、送信用の遅延素子群（５０１ａ〜５０１ｎ）と、受信用の遅延素子群（５０２ａ〜５０２ｎ）と、セレクタ５０３と、セレクタ５０４とを含んで構成される。なお、ここでの遅延素子は、遅延量をずらすために必要な数だけの遅延素子があればよく、例えば、データ信号がデータラインにのっている時間を遅延素子の遅延素子量で割った数以上の遅延素子があればよく、ここでのｎは必要とされる任意の数となる。
【００７４】
各遅延素子（５０１ａ〜５０１ｎ、５０２ａ〜５０２ｎ）は、それぞれ、入力された信号を１０ｐｓだけ遅延させる機能を有し、例えばラッチ回路などにより構成される。
【００７５】
セレクタ５０３は、遅延量保持部１４０の遅延素子指定部から指定された遅延素子の出力信号を選択して出力する機能を有する。セレクタ５０３は、半導体集積回路１０側から、メモリ回路１９０側へのストローブ信号を出力するものであ。
【００７６】
セレクタ５０４は、遅延量保持部１４０の遅延素子指定部から指定された遅延素子の出力信号を選択して出力する機能を有する。セレクタ５０４は、メモリ回路１９０側から、半導体集積回路１０側へのストローブ信号を出力するものである。
【００７７】
なお、その他の遅延素子の回路構成は略同一であるので説明を割愛する。但し、ストローブ信号は、双方向に転送されるので、両方向の構成を備える必要があるが、制御ライン信号と、アドレス信号とについては、半導体集積回路１０からメモリ回路１９０の方向にのみ送信されるので、半導体集積回路１０側からメモリ回路１９０側への方向のみの遅延素子及びセレクタを備えればよい。
＜動作＞
図７は、遅延調整部１００の遅延調整の動作を示すフローチャートである。
【００７８】
半導体装置１０は、電源投入、あるいは、システムリセットにより初期化が発生する（ステップＳ７０１）。
【００７９】
すると、遅延調整部１００は、システム起動時の遅延調整を実行する（ステップＳ７０２）。これは予め定められた初期値を設定することとしてもよいし、後述するテストアクセス処理を実行しての遅延調整であってもよい。
【００８０】
テストアクセス部１５０のメモリ幅監視部２１２は、常時使用されているメモリバンド幅を検出し、判定部２１３に通知する。そして、判定部２１３は、そのメモリバンド幅がテスト条件設定部２１１に予め定められている閾値未満であるかどうかを定期的（例えば１分毎）に判定する（ステップＳ７０３）。
【００８１】
使用されているメモリバンド幅が所定閾値以上である場合には（ステップＳ７０３のＮＯ）、何もせずにステップＳ７０３に戻る。
【００８２】
使用されているメモリバンド幅が所定閾値未満であった場合であって（ステップＳ７０３のＹＥＳ）、アクセス先変換部１１０は、退避フラグ保持部２０５が保持する情報がデータ退避部１２０を用いることを示すときには、テストアクセス用に用いられるメモリの領域に保持されているデータをデータ退避部１２０に退避させる（ステップＳ７０４）。このとき、テスト状態保持部２０２は、テスト状態であることを示す情報を保持する。
【００８３】
必要に応じてデータを退避させた後、テスト状態保持部２０２がテスト状態であることを示す情報を保持したことを契機に、遅延調整部１００のテストアクセス部１５０は、遅延調整のためのテストアクセス処理を実行する（ステップＳ７０５）。テストアクセス処理の詳細については、図８を用いて後述する。
【００８４】
テストアクセス部１５０の遅延量算出部２２０は、テストアクセス処理を行って得られた結果を用いて、算出された遅延量を現在の遅延量として遅延量保持部１４０に設定する（ステップＳ７０６）。
【００８５】
テストアクセス処理の終了後に、アクセス先変換部１１０は、変換テーブル１１１を用いて、データ退避部１２０にテストアクセス処理のために退避させていたデータを元々格納されていたアドレスに格納しなおし（ステップＳ７０７）、ステップＳ７０３に戻る。
【００８６】
ステップＳ７０３〜Ｓ７０７の処理を繰り返すことによって、使用されているメモリバンド幅が低いときに遅延調整が行われることになり、システム動作中であっても遅延調整を行えるので、システムが動作することに基づく温度変化や経年劣化などにより、発生し得るデータ信号とストローブ信号とのずれを修正することができる。
【００８７】
図８は、図７に示したフローチャートのステップＳ７０５におけるテストアクセス処理におけるテストアクセス部１５０の詳細動作を示すフローチャートである。
【００８８】
テストアクセス発行部２０１は、ＯＫ／ＮＧ判定部２３０から判定元データを取得する（ステップＳ８０１）。
【００８９】
遅延量算出部２１０は、現行の遅延量から、どれだけ遅延量をずらすかを決定し、テストアクセスの際に用いる遅延量を遅延量保持部１４０に設定する（ステップＳ８０２）。具体的には、遅延素子指定部２２１がストローブ信号を示す情報を出力し、テスト状態保持部２０２がテスト状態であることを示す情報を出力し、遅延量算出部２２０がそのときの遅延量を出力することで、遅延量保持部１４０のテスト用ストローブ信号用遅延量保持部に、遅延量算出部２２０から出力された遅延量が設定され、その遅延量がセレクタ３２７により選択されて、信号３３７として、遅延素子部１３０に出力される。遅延素子部１３０のストローブ信号用遅延素子４０７は、これにより、当該遅延量だけ入力された信号を遅延させたストローブ信号を出力する。
【００９０】
テストアクセス発行部２０１は、取得した判定元データをメモリ回路１９０に書き込むためのアクセス要求を調停部１７０に発行する。調停部１７０は、テストアクセスを示すアクセス要求を受け付けると、優先してメモリデータ送受信部１８０に当該アクセス要求を伝達する。そして、メモリ回路１９０に判定元データを書き込むためのアクセスが実行される。
【００９１】
メモリ回路１９０からの書き込み完了を示す信号を受け付けると、テストアクセス発行部２０１は、次に、メモリ回路１９０に書き込まれたはずの判定元データを読み出すためのアクセス要求を発行する。そして、当該アクセス要求に応じてメモリ回路１９０から出力された読取判定元データはテストアクセス発行部２０１を介して、テストリーダ保持部２３２に書き込まれる（ステップＳ８０３）。
【００９２】
すると、データ比較部２３３は、判定元データ保持部２３１から出力されている判定元データと、テストリードデータ保持部２３２から出力されている読取判定元データとが一致するかどうかに基づいてテストアクセスの成否を判定する。そして、データ比較部２３３は、当該テストアクセスの成否を判定結果テーブル２３４に登録する（ステップＳ８０４）。
【００９３】
遅延量算出部２２０は、テストアクセスの現在の遅延量で予め定めた回数（ここでは５回）のテストアクセスを実行したかどうかを判定する（ステップＳ８０５）。当該判定は自身がテストアクセスを実行した回数をカウンティングして、その回数を保持しておき、その値が予め定めた回数になっているかどうかにより実行される。
【００９４】
実行していない場合には（ステップＳ８０５のＮＯ）、ステップＳ８０３に戻る。実行していた場合には（ステップＳ８０５のＹＥＳ）、テスト完了判定部２２５は、タップ回数保持部２２３で保持されているタップ回数だけ、遅延量を変化させたかどうかに基づいて、予め定められている全遅延量でのテストアクセスを実行しているかどうかを判定する（ステップＳ８０６）。
【００９５】
実行していない場合には（ステップＳ８０６のＮＯ）、ステップＳ８０２に戻る。実行していた場合には（ステップＳ８０６のＹＥＳ）、テスト完了判定部２２５は、その旨を最適値設定部２２６に通知する。当該通知を受けて最適値設定部２２６は、ＯＫ／ＮＧ判定部２３０から判定結果テーブル２３４を取得する。
【００９６】
最適値設定部２２６は、取得した判定結果テーブル２３４のうち、各遅延量について、そのテストアクセスの成否が全て成功となっている遅延量を検索する。そして、テストアクセスの成否が全て成功となっている遅延量について、その遅延量の平均値を最適な遅延量として算出する。そして、算出した遅延量を遅延量保持部１４０の現行ストローブ信号用遅延量保持部に設定して（ステップＳ８０７）、テストアクセス処理を終了する。
【００９７】
以上の動作により、遅延調整部１００は、初期化タイミングやリセットタイミング以外のタイミング、即ち、システム動作中であっても遅延調整を行って、データ信号とストローブ信号のずれを修正することができる。
＜実施の形態２＞
上記実施の形態１においては、使用しているメモリバンド幅が、所定閾値を下回っている場合に、遅延調整を実行する手法を説明した。しかし、半導体集積回路１０とメモリ回路１９０との間で、所定の閾値以上でデータ転送を継続していると、上記実施の形態１に示した半導体装置１では、遅延調整を実行できない場合が発生する。
【００９８】
そこで、本実施の形態２においては、そのような事態にも対処できる遅延調整部を備えた半導体装置２を開示する。
＜構成＞
図９が実施の形態２に係る半導体装置２の機能構成を示す機能ブロック図であり、図１０が実施の形態２に係るテストアクセス部９５０の機能構成を示す機能ブロック図である。実施の形態２に係る半導体装置２０は、実施の形態１と異なり、遅延調整部９００を備える。遅延調整部９００と実施の形態１に示した遅延調整部１００との相違点は、テストアクセス部９５０を備えることにあり、テストアクセス部９５０とテストアクセス部１５０との相違点は、テスト開始判定部２１０の変わりにテスト開始判定部１２１０を備えていることにある。
【００９９】
テストアクセス部９５０の違いは、実施の形態１においては、使用しているメモリバンド幅が所定の閾値未満になっているタイミングで遅延調整を実行していたのに対し、半導体装置２の起動時から所定の時間が経過するごとに遅延調整を実行する点にある。
【０１００】
図１０に示すようにテスト開始判定部１２１０は、テスト条件設定部１２１１と、経過時間測定部１２１２と、テスト開始判定部１２１３を含んで構成される。
【０１０１】
テスト条件設定部１２１１は、テストアクセスを実行するための条件を保持し、当該条件を判定部２１３に通知する機能を有する。当該条件は、前回、遅延調整を行ってから、所定時間が経過することである。
【０１０２】
経過時間測定部１２１２は、経過した時間を計測するタイマであり、カウントしている時刻を判定部２１３に通知する機能を有する。経過時間測定部１２１２は、テストアクセスを実行するごとにタイマをリセットする。
【０１０３】
テスト開始判定部１２１３は、テスト条件設定部１２１１から通知された時間が経過したかどうかを、経過時間測定部１２１２から通知される時刻に基づいて判定する機能を有する。テスト開始判定部１２１３は、テスト条件設定部１２１１から通知された時間が経過していた場合、テスト状態保持部２０２が保持する動作状態を通常状態からテスト状態に変更する。
＜動作＞
ここで、実施の形態２に係る半導体装置２の動作を説明する。ここでは、実施の形態１に示した動作と共通する点においては、説明を割愛するものとし、相違点についてのみ説明する。
【０１０４】
図１１が実施の形態２に係る半導体装置２の動作を示すフローチャートである。図１１に示すフローチャートにおいて、図７に示したフローチャートと同じステップ番号をふった動作については同様の動作をするものとしてその説明を割愛するものとする。
【０１０５】
実施の形態２における動作が異なる点は、図１１に示すフローチャートのステップＳ１１０３の動作である。即ち、テストアクセス開始、つまり遅延調整開始のための条件判定が異なる。
【０１０６】
テスト開始判定部１０１０のテスト開始判定部１０１３は、テスト条件設定部１０１１に設定されている時間が経過したかどうかを、経過時間測定部１０１２から通知された時間に基づいて判定する（ステップＳ１１０３）。そして、所定時間が経過していた場合に（ステップＳ１１０３のＹＥＳ）、遅延調整の処理、即ちテストアクセス処理を開始する（ステップＳ７０４以降の処理）。
【０１０７】
これにより、半導体装置２の起動から、所定時間が経過するごとに遅延調整部９００は、強制的に遅延調整を実行することができるので、半導体集積回路２０とメモリ回路１９０との間で延々データ転送が実行されていてテストアクセスを実行できない状態であったとしてもデータ信号とストローブ信号とのずれを調整することができる。また、テストアクセスのために用いるメモリ領域に格納されているデータは一旦データ退避部１２０に退避されることになるので、元々そこにあったデータは、テストアクセス後に復元でき、システム動作になんら支障をきたさない構成とすることができる。
＜補足＞
上記実施の形態において、本発明の実施の手法について説明してきたが、本発明の実施形態がこれに限られないことは勿論である。以下、上記実施形態以外に本発明として含まれる各種の変形例について説明する。
（１）上記実施の形態１と上記実施の形態２において、使用しているメモリバンド幅が所定の閾値以下の場合と、予め定められた時間ごとという場合とで遅延調整を実行する例を示したが、両実施形態を組み合わせて、遅延調整部は、両方の場合で遅延調整を実行する構成としてもよい。即ち、メモリバンド幅を監視し、所定の閾値以下になったタイミングで遅延調整を実行するとともに、所定の時間が経過するごとにも遅延調整を強制的に実行する構成としてもよい。当該構成にすることにより、一方のみを実行する場合に比して、よりデータ信号とストローブ信号のずれが発生してデータ通信に失敗する確率を低減できる。
（２）上記実施の形態１においては、使用されているメモリバンド幅が所定の閾値未満であった場合には、必ずテストアクセスを実行する構成となっていたが、これは、毎回必ず実行しない構成としてもよい。例えば、前回遅延調整を行ってから、所定時間が経過していない間はテストアクセスを実行しない構成としてもよい。これにより、半導体集積回路１０の処理負担を軽減することができる。
（３）上記実施の形態においては、第１転送マスタ部１６０はデータ信号とストローブ信号とを同時に出力し、ストローブ信号用遅延素子部でストローブ信号を遅延させてメモリ回路１９０に出力することで、メモリ回路１９０にデータを読み取らせる構成を示した。
【０１０８】
しかし、第１転送マスタ部１６０がデータの出力側となる場合には、ストローブ信号用遅延素子部に出力用の遅延素子を配さずに、第１転送マスタ部でデータ信号を出力するタイミングから定められた時間だけ遅延させてストローブ信号を出力する構成としてもよい。
（４）上記実施の形態においては、遅延量を決定する際に、現行の遅延量の前後３０ｐｓまで、１０ｐｓ単位で計７個の遅延量分のテストアクセスを実行してデータ転送の成否を判定したが、これは、遅延量を決定するに足るデータが取得できるのであれば、例えば前後２０ｐｓまで、１０ｐｓ単位で計５個の遅延量分だけの成否を判定するだけでもよい。測定した遅延量の個数が少なければ、遅延量を決定するための時間を短縮でき、個数が多ければ決定した遅延量の信頼度を増すことができる。
【０１０９】
また、各遅延量についても５回テストアクセスを実行して、データ転送の成否を判定したが、この回数も５回に限るものではなく、例えば、１回、あるいは、４回、あるいは７回などであってもよい。回数が少なければ、遅延量を決定するための時間を短縮でき、回数が多ければ決定した遅延量の信頼度を増すことができる。
【０１１０】
また、上記実施の形態においては、遅延量を１０ｐｓ単位でずらしてデータ転送の成否を判定したが、遅延素子の遅延量に応じて、５ｐｓあるいは２０ｐｓ単位であってもよい。
【０１１１】
また、上記実施の形態においては、遅延量それぞれについて５回全てデータ転送が成功したものを選択して、その平均をとることとしたが、テストアクセスを実行した各遅延量について、５回のうち何回成功したかの割合をかけて得られる各遅延量の平均値をとる構成にしてもよい。
（５）上記実施の形態において、システムの動作状態、とりわけ、動作温度によって、データ信号とストローブ信号とのずれが発生し得ることを記載した。そこで、その温度に応じて、遅延量を決定する構成をここに開示する。当該構成を実現するために、予めシステムをその動作温度に応じての最適な遅延量を予め実機のシミュレーションにより測定しておく。当該シミュレーションにより得られた遅延量の最適値は、温度別遅延情報として遅延調整部が記憶しておく。
【０１１２】
その遅延調整部を含む半導体装置の構成を図１２に示す。図１２に示した遅延調整部１２００は、実施の形態１に示したものに加え、更に、温度センサ１２０１を備える。
【０１１３】
温度センサ１２０１は、周囲の温度を測定する機能を有し、測定した温度を定期的（例えば、３０秒毎）にテストアクセス部１５０に通知する機能を有する。
【０１１４】
図１３に示すように、テストアクセス部１５０の遅延量算出部１２２０は、実施の形態１の遅延量算出部２２０に示したものに加え、更に、温度別遅延情報１３０１を保持している。
【０１１５】
図１４に温度別遅延情報１３０１の構成例を示す。図１４は、温度別遅延情報１３０１の一構成例を示すデータ概念図である。
【０１１６】
図１４に示すように温度別遅延情報は、温度センサ１２０１が測定した温度１４０１と、そのときの、システムが使用する全メモリバンド幅１４０２に応じた遅延量を示す情報である。なお、図１４に示した遅延量で示される値は、一例であって、システムに応じて異なることは言うまでもなく、搭載されるシステムに応じた最適な値が規定されることとなる。当該値は、半導体装置３の出荷前の動作シミュレーション等により取得する。
【０１１７】
当該温度別遅延情報では、温度は、４０度未満と、４０度以上の場合とで、分けられており、バンド幅は、１２００Ｍｂｐｓ、２４００Ｍｂｐｓの場合とで分けられている。なお、ここに示したのは、一事例であって、温度及びバンド幅はより細かく細分化されていてもよいし、メモリバンド幅は、固定の値ではなく、所定の幅、例えば、１０００Ｍｂｐｓ〜２０００Ｍｂｐｓなどという形で規定されていてもよい。
【０１１８】
テストアクセス部１２５０は、テストアクセスを実行するタイミングにおいて、温度センサ１２０１が通知してきた温度に基づいて、基本遅延量を決定する。
【０１１９】
そして、上記実施の形態１に示したように、タップ回数で示される分だけ、この基本遅延量を１０ｐｓ単位で前後させて、それぞれ５回ずつデータ転送の成否を計測する。そして、データ転送が５回とも成功した遅延量の平均値を新たな、遅延量として設定する。
【０１２０】
この構成を備えることにより、システムの温度状況に合わせた適切な遅延量設定を行うことができる。
【０１２１】
なお、当該構成は実施の形態２に示した遅延調整部９００が保持するものであってもよい。また、温度別遅延情報１３０１に示される遅延量は、システムの起動時、リセット時に設定される遅延量として用いられてもよい。
【０１２２】
また、温度センサ１２０１を備える場合に、当該温度センサ１２０１が示す温度が所定の温度を超えた場合（例えば４０℃を超えた場合）をテストアクセス実行の契機とする構成にしてもよい。半導体集積回路１０の動作温度に応じて、データ信号とストローブ信号とのずれが発生することがあるので、その事態に対応することができる。温度センサ１２０１の温度を遅延調整の条件とする場合には、温度別遅延情報の有用性は更に高まる。
（６）上記実施の形態において、遅延素子部では、遅延量保持部１４０から指示される遅延量に応じて、セレクタ５０３、５０４が１つの遅延素子からの出力信号を選択して出力する構成とした。これは、以下のような構成にしてもよい。
【０１２３】
即ち、図５に示すように遅延素子を直列に接続するのではなく、遅延量がそれぞれ異なる遅延素子（ストローブ信号を１０ｐｓ遅延させる遅延素子、２０ｐｓ遅延させる遅延素子、・・・１００ｐｓ遅延させる遅延素子・・・）を並列に配する。そして、判定元データをそれぞれの遅延素子から出力されたストローブ信号で示されるタイミングでメモリ回路１９０のそれぞれ異なる領域に書き込み、それぞれ異なる領域に書き込んだデータを読み取って、読み取った各読取判定元データと判定元データとを比較してデータ転送の成否を判定する構成としてもよい。これにより、テストアクセス時に遅延量を変化させながらのテストアクセスを実行せずにすみ、例えば、上記実施の形態１では遅延量７つ分のテストアクセスをそれぞれ５回、計３５回のテストアクセスを実行したのに対し、遅延素子を並列に配すると、５回のテストアクセスのみですみ、テストアクセスに要する時間を短縮することができる。
（７）上記実施の形態において示した遅延量は、秒単位で説明したが、これは、信号をどれだけ遅延させるかを規定できるものであればよく、秒以外の単位、即ち、位相（度）で遅延量を規定することとしてもよい。この場合、上記実施の形態に示す遅延調整部は、位相調整部と銘打つのが妥当であり、上記実施の形態における遅延量は、位相変化量として、ストローブ信号の位相を何度遅らせるのかを規定するものとなる。
（８）上記実施の形態においては、一度テストアクセスが開始されると最後までテストアクセスを実行して、遅延量を更新する構成としたが、メモリバンド幅がテストアクセス中に所定の閾値以上になった場合に、テストアクセスを中断する構成としてもよい。
【０１２４】
このとき、テストアクセスのデータ（どの遅延量でテストアクセスを実行したか、テストアクセスによるデータ転送の成否の情報）をメモリ等に残しておき、中断後再びメモリバンド幅が所定の閾値未満になった場合に、中断したところからテストアクセスを継続する構成としてもよい。また、テストアクセスを中断後、メモリバンド幅が所定閾値未満になった場合に、再度最初からテストアクセスを実行してもよい。
（９）上記実施の形態１においてメモリバンド幅監視部２１２は、１分ごとのメモリバンド幅を監視する構成となっているが、これは、１分ごとに限定されるものではなく、システムの動作環境に応じて、変更してもよく、例えば、２０秒ごとであってもよいし、２分ごとであってもよい。
（１０）図１、２、３、４、９、１０、１２、１３に示した半導体装置１、２、３の各機能部は集積化されて１又は複数のＬＳＩ（Large Scale Integration）により実現されてもよい。また、複数の機能部が１のＬＳＩにより実現されてもよい。
【０１２５】
ＬＳＩは集積度の違いにより、ＩＣ（Integrated Circuit）、システムＬＳＩ、ＶＬＳＩ（Very Large Scale Integration）、ＳＬＳＩ（Super Large Scale Integration）、ＵＬＳＩ（Ultra Large Scale Integration）などと呼称されることもある。
【０１２６】
また、集積回路化の手法はＬＳＩに限られるものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０１２７】
さらに、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてあり得る。
（１０）上述の実施形態で示した遅延調整に係る動作、遅延量の設定処理等（図７、８等参照）を民生機器等のプロセッサ、及びそのプロセッサに接続された各種回路に実行させるためのプログラムコードからなる制御プログラムを、記録媒体に記録すること、又は各種通信路（例えば、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク）等を介して流通させ頒布させることもできる。このような記録媒体には、ＩＣカード、ハードディスク、光ディスク、フレキシブルディスク、ＲＯＭ等がある。流通、頒布された制御プログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより、実施形態で示したような各種機能が実現されるようになる。
（１１）以下に本発明に係る遅延調整装置の実施態様とその効果について説明する。
【０１２８】
本発明に係る遅延調整装置は、外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器に搭載され、ストローブ信号の遅延調整を行う遅延調整装置であって、前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視部と、前記メモリバンド情報で示されるメモリバンド幅に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整手段とを備える。
【０１２９】
また、本発明は、外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器間において、遅延調整装置がストローブ信号の遅延調整を行う遅延調整方法であって、前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視ステップと、前記メモリバンド情報で示されるメモリバンド幅に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整ステップとを含む。
【０１３０】
これにより、遅延調整装置は、データ転送を実行する機器と、当該装置に接続されている外部メモリ間で使用されているメモリバンド幅に応じて、遅延調整を実行することができる。これによって、遅延調整装置は、例えば、機器と外部メモリの間でのデータ転送を実行している場合には、使用しているメモリバンド幅が大きくなるので、実際にデータ転送を行って、その成否によって遅延量を決定する遅延調整を実行するのには適さないが、データ転送を実行していない、あるいは、その転送量が少ない場合には、遅延調整を実行することができる。
【０１３１】
また、前記遅延調整手段は、前記メモリバンド幅が所定の閾値を下回った場合に、前記遅延調整を実行することとしてもよい。
【０１３２】
これにより、メモリバンド幅が所定の閾値未満になったタイミングを契機として遅延調整を開始することができる。
【０１３３】
また、前記遅延調整装置は、更に、遅延調整を行うための条件を定めた遅延調整条件情報を記憶する記憶手段を備え、前記遅延調整手段は、前記記憶手段に記憶されている遅延調整条件情報で定められる条件が成立した場合にも前記遅延調整を実行することとしてもよい。
【０１３４】
また、前記所定の条件とは、自装置が起動してから、所定時間が経過するごとであることとしてもよい。
【０１３５】
また、本発明は、外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器間において、遅延調整装置がストローブ信号の遅延調整を行う遅延調整方法であって、前回行った遅延調整から所定時間が経過したか否かを判定する判定ステップと、前記判定ステップが肯定的な判定をした場合に、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整ステップとを含む。
【０１３６】
これにより、メモリバンド幅が所定の閾値未満とならずとも、定期的に遅延調整を実行する構成とすることができ、データ信号とストローブ信号とのずれを発生しにくくすることができる。
【０１３７】
また、前記遅延調整手段は、前記外部メモリから出力されるストローブ信号を所定量だけ遅延させて、自装置から前記外部メモリにデータ転送の成否の判定に用いる判定元データを書き込み、当該書き込んだデータを読み取り、読みとったデータと判定元データとを比較してデータ転送の成否を判定して、データ転送に適したストローブ信号の遅延量を決定することで前記遅延調整を実行することとしてもよい。
【０１３８】
これにより、実際にデータ転送を行って、その成否を判定した実データに基づいて、遅延量を決定することにより、データ転送が確実に行える遅延量を決定することができる。
【０１３９】
また、前記遅延調整装置は、更に、前記遅延調整手段が前記遅延調整を実行する前に、前記内部メモリの前記仮データを書き込む領域に記憶されているデータを退避させるためのメモリデータ退避手段を備えることとしてもよい。
【０１４０】
これにより、遅延調整を行うにあたって、実際にデータ転送を実行して、データの書き込みを行う場合に、元々あったデータを退避させることにより、遅延調整を行ったあとでデータを復元することができる。
【産業上の利用可能性】
【０１４１】
本発明に係る遅延調整装置は、データラインに乗るデータ信号をストローブ信号で示されるタイミングで読み取ることが規定されているデータ通信を実行する装置において有用である。
【符号の説明】
【０１４２】
１  半導体装置
１０  半導体集積回路
１００  遅延調整部
１１０  アクセス先変換部
１１１  変換テーブル
１２０  データ退避部
１３０  遅延素子部
１４０  遅延量保持部
１５０  テストアクセス部
１６０  第１転送マスタ部
１７０  調停部
１８０  メモリデータ送受信部
１９０  メモリ回路
２０１  テスト領域指定部
２０２  テスト状態保持部
２０３  テスト領域設定部
２０４  テストフラグ保持部
２０５  退避フラグ保持部
２１０  テスト開始判定部
２１１  テスト条件設定部
２１２  メモリ幅監視部
２１３  テスト開始判定部
２２０  遅延量算出部
２２１  遅延素子指定部
２２２  遅延タップ量保持部
２２３  タップ回数保持部
２２４  テスト遅延量算出部
２２５  テスト完了判定部
２２６  最適値設定部
２３０  ＯＫ／ＮＧ判定部
２３１  判定元データ保持部
２３２  テストリードデータ保持部
２３３  データ比較部
２３４  判定結果テーブル
３０１  現行制御ライン信号ビット０用遅延量保持部３０１
３０２  現行制御ライン信号ビット１用遅延量保持部３０２
３０３  現行アドレスビット０用遅延量保持部３０３
３０４  現行アドレスビット１用遅延量保持部
３０５  現行データ信号ビット０用遅延量保持部
３０６  現行データ信号ビット１用遅延量保持部
３０７  現行ストローブ信号用遅延量保持部
３１１  テスト用制御ライン信号ビット０用遅延量保持部
３１２  テスト用制御ライン信号ビット１用遅延量保持部
３１３  テスト用アドレスビット０用遅延量保持部
３１４  テスト用アドレスビット１用遅延量保持部
３１５  テスト用データ信号ビット０用遅延量保持部
３１６  テスト用データ信号ビット１用遅延量保持部
３１７  テスト用ストローブ信号用遅延量保持部
３２１〜３２７  セレクタ
４０１  制御ライン信号ビット０用遅延素子部
４０２  制御ライン信号ビット１用遅延素子部
４０３  アドレス信号ビット０用遅延素子部
４０４  アドレス信号ビット１用遅延素子部
４０５  データ信号ビット０用遅延素子部
４０６  データ信号ビット１用遅延素子部
４０７  ストローブ信号遅延素子部
５０１ａ〜５０１ｎ、５０２ａ〜５０２ｎ  遅延素子
５０３、５０４  セレクタ
【図１】
2010137330.tif 000003
【図２】
2010137330.tif 000004
【図３】
2010137330.tif 000005
【図４】
2010137330.tif 000006
【図５】
2010137330.tif 000007
【図６】
2010137330.tif 000008
【図７】
2010137330.tif 000009
【図８】
2010137330.tif 000010
【図９】
2010137330.tif 000011
【図１０】
2010137330.tif 000012
【図１１】
2010137330.tif 000013
【図１２】
2010137330.tif 000014
【図１３】
2010137330.tif 000015
【図１４】
2010137330.tif 000016
【図１５】
2010137330.tif 000017
【手続補正書】
【提出日】平成22年10月25日(2010.10.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器に搭載され、ストローブ信号の遅延調整を行う遅延調整装置であって、
前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視部と、
自装置が起動してからの経過時間を測定する経過時間測定部と、
自装置の温度を検出する温度センサと、
前記メモリバンド情報で示されるメモリバンド幅及び前記経過時間及び前記温度に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整手段とを備える
ことを特徴とする遅延調整装置。
【請求項２】
前記遅延調整手段は、前記メモリバンド幅が所定の閾値を下回った場合に、前記遅延調整を実行する
ことを特徴とする請求項１記載の遅延調整装置。
【請求項３】
前記遅延調整手段は、自装置が起動してから、所定時間が経過する毎に前記遅延調整を実行する
ことを特徴とする請求項１記載の遅延調整装置。
【請求項４】
前記遅延調整装置は、相異なる複数の温度帯毎に前記遅延調整における基準値を記憶する記憶手段を備え、
前記遅延調整手段は、前記温度センサが検出する温度が、これまでの温度が属する前記記憶手段に記憶されている一の温度帯から、他の温度帯に属することを示すものであった場合に、前記遅延調整を実行する
ことを特徴とする請求項１記載の遅延調整装置。
【請求項５】
前記遅延調整手段は、前記メモリバンド幅が所定の閾値を下回った場合、及び、自装置が起動してから所定時間が経過する毎に、前記遅延調整を実行する
ことを特徴とする請求項１記載の遅延調整装置。
【請求項６】
前記遅延調整手段は、前記外部メモリから出力されるストローブ信号を所定量だけ遅延させて、自装置から前記外部メモリにデータ転送の成否の判定に用いる判定元データを書き込み、当該書き込んだデータを読み取り、読みとったデータと判定元データとを比較してデータ転送の成否を判定して、データ転送に適したストローブ信号の遅延量を決定することで前記遅延調整を実行するものであり、
前記遅延調整装置は、更に、
前記遅延調整手段が前記遅延調整を実行する前に、前記判定元データを書き込む領域に記憶されているデータを退避させるためのメモリデータ退避手段を備える
ことを特徴とする請求項２〜５のいずれか１項に記載の遅延調整装置。
【請求項７】
外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器間において、遅延調整装置がストローブ信号の遅延調整を行う遅延調整方法であって、
前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視ステップと、
前記遅延調整装置が起動してからの経過時間を測定する経過時間測定ステップと、
前記遅延調整装置に備えられた温度センサが前記遅延調整装置の温度を検出する温度検出ステップと、
前記メモリバンド情報で示されるメモリバンド幅及び前記経過時間及び前記温度に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整ステップとを含む
ことを特徴とする遅延調整方法。
【請求項８】
（削除）
【請求項９】
（削除）
【手続補正書】
【提出日】平成23年1月20日(2011.1.20)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ信号を読み取るべきタイミングを定めるストローブ信号の遅延調整に関する。
【背景技術】
【０００２】
従来、データの送受信を実行するＳｏＣ(System on Chip)とメモリとの間でのデータ通信において、データを読み取る側は、データラインに乗っているデータ信号を、データ信号の読み取りタイミングを規定するストローブ信号を受け付けたタイミングで読み取る。より具体的には、読み取り側がストローブ信号の立ち上がりエッジを検出して、データラインに乗っているデータ信号を読み取る。
【０００３】
図１５に示すように、ＳｏＣ１５００と、メモリ１５０１とはデータラインとストローブラインとで接続される。データラインにデータがのっているタイミングとストローブ信号の立ち上がりとがずれると、受け取り側は正しくデータを読み取れないため、多少ストローブ信号の立ち上がりエッジが前後してもよいように、ストローブ信号の立ち上がりをデータ信号がデータラインにのっているタイミングの中間点になるように遅延調整を行う必要がある。即ち、図１５において、データ信号がデータラインにのっているタイミングにおいて、ストローブ信号の立ち上がりエッジが遅延量Ｅで示されるタイミングで立ち上がるように、ストローブ信号を遅延させる必要がある。なお、ここでいう遅延量は、データ信号がデータラインに乗り始めたタイミングからストローブ信号が立ち上がるまでの時間をいう。
【０００４】
当該遅延調整においては、ＳｏＣ１５００が自身でデータを出力する場合には、データを載せているタイミングの中点において、ストローブ信号を立ち上げればよい。これは、ＳｏＣ１５００自身はデータ信号をストローブ信号と同じタイミングで出力しつつ、ストローブ信号のみ保持している遅延素子を規定の段数だけ通過させてからメモリ１２０１に出力する構成をとってもよい。
【０００５】
一方、メモリ１５０１は、データ信号を出力する出力開始タイミングと出力期間とを、ストローブ信号の立ち上がりエッジと立ち下りエッジとに一致させて出力する機能しかない。そのため、ＳｏＣ１５００は、メモリ１５０１から受け付けるストローブ信号を自ら遅延させる必要があり、その自ら遅延させたストローブ信号の立ち上がりを検出して、データを読み取る。このストローブ信号をどれだけ遅延させるかを決定し、決定した量だけストローブ信号を遅延させることを遅延調整という。
【０００６】
特許文献１には、この遅延調整を、システムの起動時や、システムリセットが実行されたタイミングにおいて実行する装置が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２０２０３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、ＳｏＣが動作し続けることにより、経年劣化などにより、データ信号とストローブ信号のタイミングとがずれてくることがある。また、ＳｏＣは、負荷状態に応じて動作温度が異なり、その温度特性により動作タイミングが変化し、データ信号とストローブ信号とのタイミングがずれることもある。
【０００９】
昨今ＳｏＣの動作クロックは高速化してきており、それに併せてデータラインにデータ信号が載っている期間も短くなってきている。これは、とりもなおさず、ストローブ信号の立ち上がりのタイミングもまた非常にシビアなものが要求されることを意味しており、現行のものではピコセカンドオーダーのものを要求される仕様もざらにある。
【００１０】
当該仕様にあっては、データ信号とストローブ信号のずれは、データ通信において、正常なデータ転送がなされず、システムが正常に動作しなくなる要因となる。
そこで、本発明においては、当該ずれをなるべく発生させず、かつ、システムの通常動作をなるべく妨げない遅延調整装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明に係る遅延調整装置は、外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器に搭載され、ストローブ信号の遅延調整を行う遅延調整装置であって、前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視部と、前記メモリバンド情報で示されるメモリバンド幅に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整手段とを備えることを特徴としている。
【発明の効果】
【００１２】
上述のような構成によって遅延調整装置は、システムが動作中であっても、装置とメモリ間の使用しているメモリバンド幅を監視し、使用されているメモリバンド幅が少ない状態においては、データ転送を実行する装置とメモリ間のデータ転送がそれほど行われていないことになる。遅延調整は、データ転送を実行する装置とメモリ間においてストローブ信号を何段階かで遅延させつつ、実際にデータ転送を行って、そのデータ転送の成否に応じて、ストローブ信号の遅延量を決定することで行われる。このため、実際にデータ転送を行ってメモリバンド幅を一定以上使用していると、この遅延調整のためのデータ転送を実行できないが、メモリバンド幅の使用量が一定以下である場合には、遅延調整のためのデータ転送を実行できる。よって、システムが動作中であっても遅延調整を行えるので、システムが動作することによる発熱などに応じて変化する動作環境にも対応した遅延調整を行うことができ、従来よりも、データ信号とストローブ信号のずれを従来よりも抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係る半導体装置１の機能構成を示す機能ブロック図である。
【図２】実施の形態１に係るテストアクセス部の機能構成を示す機能ブロック図である。
【図３】実施の形態１に係る遅延量保持部の機能構成を示す機能ブロック図である。
【図４】実施の形態１に係る遅延素子部の機能構成を示す機能ブロック図である。
【図５】実施の形態１に係る遅延素子部の回路構成を示すブロック図である。
【図６】テストアクセス時に用いる判定結果テーブルのデータ構成例を示すデータ概念図である。
【図７】実施の形態１に係る遅延調整部の遅延調整の動作を示すフローチャートである。
【図８】テストアクセス処理における遅延調整部の動作を示すフローチャートである。
【図９】実施の形態２に係る半導体装置の機能構成を示す機能ブロック図である。
【図１０】実施の形態２に係るテストアクセス部の機能構成を示す機能ブロック図である。
【図１１】実施の形態２に係る遅延調整部の遅延調整の動作を示すフローチャートである。
【図１２】半導体装置の変形例を示す機能ブロック図である。
【図１３】半導体装置の変形例に係るテストアクセス部の機能ブロック図である。
【図１４】温度別遅延情報の構成例を示すデータ概念図である。
【図１５】遅延調整の内容を示す概要図である。
【発明を実施するための形態】
【００１４】
＜実施の形態１＞
本発明に係る遅延調整装置の一実施形態である半導体装置について、図面を参照しながら説明する。
＜構成＞
図１は、半導体装置１の機能構成を示す機能ブロック図である。半導体装置１は、例えば、デジタル放送受信装置、携帯電話、ＢＤ（Blu-ray Disc）再生装置、ＢＤ録画装置などの民生機器や産業機器で利用される装置である。半導体装置１は、半導体集積回路１０とメモリ回路１９０とを含んで構成される。
【００１５】
半導体集積回路１０は、ＳｏＣなどの、ビデオデコード処理やデータ転送処理等の様々な機能を実現する半導体で構成された電子回路である。半導体集積回路１０は、メモリ回路１９０との間でデータの送受信を実行する機能を有する。図１に示すように半導体集積回路１０は、遅延調整部１００と、第１転送マスタ部１６０と、調停部１７０と、メモリデータ送受信部１８０とを含んで構成される。
【００１６】
遅延調整部１００は、半導体集積回路１０とメモリ回路１９０との間で行われるデータ送受信におけるデータ信号とストローブ信号との遅延調整を実行する機能を有する。遅延調整部１００は、アクセス先変換部１１０と、データ退避部１２０と、遅延素子部１３０と、遅延量保持部１４０と、テストアクセス部１５０とを含んで構成される。また、遅延調整部１００は、データ信号やストローブ信号だけでなく、制御信号やアドレス信号の遅延調整を実行する機能も有する。
【００１７】
アクセス先変換部１１０は、テストアクセスを実行する際に、テストアクセス部１５０からの指示のもと、テストアクセスの際にテストアクセス用のデータを書き込む領域を決定し、テストアクセス部１５０からデータ退避を示す信号を受け付けている場合に決定した領域にあるデータをデータ退避部１２０に退避させる機能を有する。また、アクセス先変換部１１０は、テストアクセスを実行する際に退避させたデータが格納されていたアドレスを変換テーブル１１１に記憶する機能を有し、テストアクセス終了時にデータ退避部１２０に退避させたデータを取得し、元々格納されていたアドレスに復元する機能も有する。なお、アクセス先変換部１１０は、テストアクセスを実行していないタイミングにおいては、メモリデータ送受信部１８０から転送されてきた信号をそのまま遅延素子部１３０に転送するか、遅延素子部１３０から転送されてきた信号をそのままメモリデータ送受信部１８０に転送する。
【００１８】
データ退避部１２０は、遅延調整部１００が遅延調整を実行するタイミングにおいて、半導体集積回路１０内のデータ通信の際のデータを保持するメモリにあるデータの退避先として用いられるメモリであり、テストアクセス実行時にアクセス先変換部１１０から出力された退避データを保持する機能を有する。また、アクセス先変換部１１０からの指示に従い、保持していた退避データを出力する機能も有する。
【００１９】
遅延素子部１３０は、受け取ったデータ信号をそのまま転送するとともに、そのデータ信号を読み取るタイミングを規定するストローブ信号を、遅延量保持部１４０から指定された遅延量だけ、遅延させて出力する機能を有する。遅延素子部１３０は、データをメモリ回路１９０に書き込む場合に、データラインに第１データ信号１３３を乗せて出力するとともにストローブラインにのる第１ストローブ信号１３４を遅延させて出力する。遅延素子部１３０は、データをメモリ回路１９０から読み出す場合に、メモリ回路から出力されたストローブラインに乗る第１ストローブ信号１３４を遅延させ、遅延させた第１ストローブ信号１３４の立ち上がりエッジを検出してデータラインに乗っている第１データ信号１３３を読み取る。また、遅延素子部１３０は、その他の信号、即ち、制御信号、アドレス信号、データ信号なども、必要に応じて、遅延させる機能も有する。遅延素子部１３０の詳細については後述する。
【００２０】
遅延量保持部１４０は、ストローブ信号をどれだけ遅延させるのかを示す遅延量を保持し、遅延素子部１３０に通知する機能を有する。また、遅延量保持部１４０は、ストローブ信号以外の信号をどれだけ遅延させるのかを示す遅延量も保持し、遅延素子部１３０に通知する機能も有する。各遅延量は、テストアクセス部１５０から設定される。遅延量保持部１４０の詳細については後述する。
【００２１】
テストアクセス部１５０は、条件を満たした場合に、データ信号とストローブ信号との遅延調整を行う機能を有する。テストアクセス部１５０は、遅延量を定めて、メモリ回路１９０へのテストアクセスを行って、データ転送の成否によって、遅延調整を実行する。テストアクセス部１５０は、現在の遅延量及びその前後１０ｐｓ単位で合計７つの遅延量それぞれで、５回、メモリ回路１９０にデータを書き込み、書き込んだそのデータを再び読み出し、書き込む前のデータと読み取ったデータが一致するかどうかを判定する。そして、テストアクセス部１５０は、５回全てのテストアクセスが成功した遅延量の平均値を算出して、算出した遅延量を現在の遅延量として、遅延量保持部１４０に設定する。このテストアクセスを行って遅延量を算出して、算出した遅延量を現在使用する遅延量とすることを遅延調整という。テストアクセス部１５０の更なる詳細については、後述する。
【００２２】
第１転送マスタ部１６０は、ＣＰＵ（Central Processing Unit）や、ＤＭＡＣ（Direct Memory Access Controler）などのことであり、メモリ１９０との間でデータ転送を実行する機能を有する。第１転送マスタ部１６０は、調停部１７０と第二制御ライン信号１６１、第二アドレス信号１６２、第二データ信号１６３等を用いてメモリ回路１９０にメモリアクセスを実行する。第二制御ライン信号１６１は、データアクセスの種別（リード／ライト）を指定する信号である。第二アドレス信号１６２は、メモリ回路１９０のアクセス先のアドレスを指定する信号である。第二データ信号１６３は、実際に書き込む、あるいは、読み出したデータの信号である。以降、制御ライン信号、アドレス信号、データ信号は、その前に付した番号は異なるとしても、その意味は同じものとする。即ち、制御ライン信号は、メモリアクセスの種別を規定するものであり、アドレス信号は、メモリ回路１９０のアドレスを指定するものであり、データ信号は、実際に転送されるデータの信号を示すものであるとする。
【００２３】
調停部１７０は、複数のメモリアクセス要求があった場合に、予め定められた優先度に従って一つのメモリアクセス要求を選択する機能を有する。例えば、第１転送マスタ部１６０以外の転送マスタ（図示せず）もメモリ回路１９０とのデータ通信を実行する場合に、第１転送マスタ部１６０と、それ以外の転送マスタとの間に、予め優先順位設定を行っておき、優先度の高いほうのアクセス要求を通す機能を有する。本実施形態においては、調停部１７０は、第１転送マスタ部１６０からのアクセスと、テストアクセス部１５０からのアクセスとを受け付け、テストアクセス部１５０からのアクセスを優先する。
【００２４】
メモリデータ送受信部１８０は、第四制御ライン信号１７１、第四アドレス信号１７２、第四データ信号１７３を基に、半導体集積回路１０がメモリ回路１９０へメモリアクセスする際に使用する第一制御ライン信号１３１、第一アドレス信号１３２、第一データ信号１３３、第一ストローブ信号１３４の遅延処理前の信号である第五制御ライン信号１８１、第五アドレス信号１８２、第五データ信号１８３、第二ストローブ信号１８４を生成し、遅延調整部１００との間で入出力を実行する。
【００２５】
メモリ回路１９０は、ＤＤＲ３−ＳＤＲＡＭ（Double-Data-Rate3 Synchronous Dynamic Randam Access Memory）などに代表される、外部からの要求によりデータを保持する、あるいは、外部からの要求により保持しているデータを出力する機能を有する半導体からなる電子回路である。メモリ回路１９０は、半導体集積回路１０と、第１制御ライン信号１３１、第一アドレス信号１３２、第一データ信号１３３、第１ストローブ信号１３４を介して接続される。メモリ回路１９０は、半導体集積回路１０から出力された第一制御ライン信号１３１に従い、半導体集積回路１０から転送されてきたデータを保持する機能を有する。また、メモリ回路１９０は、半導体集積回路から出力された第一制御ライン信号１３１に従い、半導体集積回路１０に指定されたデータを第一データ信号１３３に出力する機能も有する。
【００２６】
図２は、テストアクセス部１５０の詳細の構成例を示す機能ブロック図である。
図２に示すようにテストアクセス部１５０は、テストアクセス発行部２０１と、テスト状態保持部２０２と、テスト領域指定部２０３と、テストフラグ保持部２０４と、退避フラグ保持部２０５と、テスト開始判定部２１０と、遅延量算出部２２０と、ＯＫ／ＮＧ判定部２３０とを含んで構成される。
【００２７】
テストアクセス発行部２０１は、テスト状態保持部２０２からの動作状態を示す信号が、「０」から「１」に変化したタイミングで、テストアクセスを発行する機能を有する。テストアクセス発行部２０１は、制御ライン信号１５１を介して、データのリード／ライトを指定し、アドレス信号１５２を介してメモリ回路１９０のアクセス先のアドレスを指定し、データ信号１５３を介して書き込む判定元データの転送と、メモリ回路１９０から読み取ったデータの転送が行われる。テストアクセス実行時に、テストアクセス発行部２０１は、ＯＫ／ＮＧ判定部２３０の判定元データ保持部２３１が保持するデータを書き込むためのアクセス要求を発行する。当該アクセス要求に対するアクセス完了を受け付けると、テストアクセス発行部２０１は次に、書き込んだデータを再度読み取るためのアクセス要求を発行し、当該アクセス要求に応じてメモリ回路１９０から転送されてきたデータをＯＫ／ＮＧ判定部２３０に転送する。データ信号を介して書き込む判定元データを出力し、メモリ回路１９０から書き込んだ判定元データを読み取ったデータを受け取る。
【００２８】
テスト状態保持部２０２は、半導体集積回路１０のテストアクセスの状態を示す情報を保持する機能を有する。当該状態には、
・テスト状態かつＯＫ／ＮＧ部１０００１が使用する判定元データ保持部１０００１０に格納する判定元データを読み出す状態、
・テスト状態かつ遅延量を変更してのテストアクセスを行う状態、
・テスト状態かつテストの為のメモリ回路１１に対する書き込みを行う状態
・テスト状態かつ第一転送マスタ部１０１のような本システムからのメモリアクセスが発生した状態
などがある。
【００２９】
なお、テスト状態保持部２０２の値は、本システム使用者が直接設定可能であり、テスト開始判定部２１０からのテスト開始要求信号などによっても設定可能である。ここでは、テスト開始判定部２１０が、テスト開始を示す信号を出力した場合に、テスト状態であることを示す情報を保持するものとし、当該情報を保持していると、テストアクセス発行部２０１は、テストアクセスのためのアクセス要求を発行する。
【００３０】
テスト領域指定部２０３は、遅延調整のためのメモリ回路１９０から読み取った判定元データを、半導体集積回路１０が保持するメモリのどの領域に記録するのかを指定する機能を有し、そのアドレスをテストアクセス発行部２０１に通知する機能を有する。
【００３１】
テストフラグ保持部２０４は、テストアクセスを実行しているかどうかを示すフラグを保持する機能を有し、当該フラグをテストアクセス発行部２０１に通知する機能を有する。テストフラグ保持部２０４が保持する情報は、１ビットのデータであり、「０」であれば通常動作状態、「１」であればテストアクセス状態であることを示す。
【００３２】
退避フラグ保持部２０５は、データをデータ退避部１２０に退避すべきかどうかを示すフラグを保持する機能を有し、当該フラグを遅延量保持部１４０に通知する機能を有する。テスト領域指定部２０３で指定される領域に既にデータが格納されていた場合に、退避フラグ保持部２０５が保持するデータは、データ退避部１２０にデータを退避すべきことを示す「１」となり、それ以外の場合では、「０」となる。
【００３３】
テスト開始判定部２１０は、テストアクセスを実行するタイミングであるかどうかを判定する機能を有し、テストアクセスを実行すべきタイミングであると判定した場合に、その旨をテスト状態保持部２０２に通知する機能を有する。テスト開始判定部２１０は、具体的には、テスト条件設定部２１１とメモリ幅監視部２１２と、判定部２１３とを含んで構成される。
【００３４】
テスト条件設定部２１１は、テストアクセスを実行するためのタイミングを決定するための条件を設定、保持する機能を有する。当該設定は、例えば半導体装置１に接続されたＰＣから数値の設定を行ったり、あるいは、半導体装置１に備え付けられたディップスイッチなどにより設定できる。テスト条件設定部２１１は、テストアクセスを開始するための条件として、使用しているメモリバンド幅が所定の閾値以下であるという条件を保持し、当該条件を判定部２１３に通知する機能を有する。
【００３５】
メモリ幅監視部２１２は、第一データ信号１３３を監視して使用されているメモリバンド幅を監視する機能を有し、使用されているメモリバンド幅を判定部２１３に定期的（例えば１分毎）に通知する機能を有する。
【００３６】
判定部２１３は、メモリ幅監視部２１２から通知された使用しているメモリバンド幅が、テスト条件設定部２１１から通知された条件を満たしているか否かを判定する機能を有する。当該判定において、肯定的、即ち、条件を満たしていると判定した場合には、判定部２１３は、テストアクセス状態に移行することをテスト状態保持部２０２に通知する機能を有する。
【００３７】
遅延量算出部２２０は、テストアクセスを行って得られた結果から、最新の遅延量を算出する機能を有する。遅延量算出部２２０は、遅延素子指定部２２１と、遅延タップ量保持部２２２と、タップ回数保持部２２３と、テスト遅延量算出部２２４と、テスト完了判定部２２５と、最適値設定部２２６とを含んで構成される。
【００３８】
遅延素子指定部２２１は、遅延量保持部１４０のどの遅延量保持部を用いるのかを指定する信号を出力する機能を有する。
遅延タップ量保持部２２２は、遅延量の１回の遅延のための遅延量を保持する機能を有する。本実施例においては、遅延タップ量保持部２２２は、１０ｐｓという遅延量を保持しているものとする。即ち、遅延調整は、１０ｐｓ単位で実行されることとなる。
【００３９】
タップ回数保持部２２３は、テストアクセスを行う際に、何回、遅延量をずらすかを規定する回数を保持する機能を有する。例えば、タップ回数保持部２２３が３という回数を保持する場合には、テストアクセスは、現在の遅延量と、その前後に遅延タップ量保持部２２２で保持される遅延量だけずらした遅延量でのテストアクセスが実行されることを意味する。本実施の形態においては、タップ回数保持部２２３は、７というタップ回数を保持するものとする。遅延タップ量保持部２２２が保持する遅延量は１０ｐｓなので、これにより、テストアクセスは、「現行の遅延量−３０ｐｓ」、「現行の遅延量−２０ｐｓ」、「現行の遅延量−１０ｐｓ」、「現行の遅延量」、「現行の遅延量＋１０ｐｓ」、「現行の遅延量＋２０ｐｓ」、「現行の遅延量＋３０ｐｓ」の計７つ分の遅延量でのテストアクセスが実行されることとなる。
【００４０】
テスト遅延量算出部２２４は、現在の遅延量からどれだけ遅延量を変化させるのかを決定する機能を有し、テストアクセスの際に使用する遅延量を遅延量保持部１４０に通知する機能を有する。当該遅延量は、遅延量保持部２２２が保持する遅延量と、タップ回数保持部２２３で保持されるタップ回数とに基づいて決定され、未実行のテストアクセスの遅延量に決定される。
【００４１】
テスト完了判定部２２５は、タップ回数保持部２２３で示される回数だけテストアクセスをそれぞれ所定の回数（本実施の形態では５回分）分だけ行ったかどうかによって、テストアクセスが完了したか否かを判定する機能を有し、テストアクセスが完了した場合には、最適値設定部２２６にテストアクセスが完了したことを通知する機能を有する。
【００４２】
最適値設定部２２６は、テスト完了判定部２２５からテストアクセスの終了を通知されると、ＯＫ／ＮＧ判定部２３０が保持する判定結果テーブル２３４を取得する。そして、最適値設定部２２６は、判定結果テーブル２３４から最適となる遅延量を算出し、遅延量保持部１４０に設定する機能を有する。
【００４３】
ＯＫ／ＮＧ判定部２３０は、テストアクセス部１５０が実行したテストアクセスの成否を判定する機能を有し、その判定結果を示す情報を保持し、当該情報を遅延量算出部２２０に通知する機能を有する。
【００４４】
ＯＫ／ＮＧ判定部２３０は、判定元データ保持部２３１と、テストリードデータ保持部２３２と、データ比較部２３３と、判定結果テーブル２３４とを含んで構成される。
判定元データ保持部２３１は、テストアクセスを実行する際に、メモリ回路１９０に書き込む判定元データを保持する機能を有する。当該判定元データは、メモリ回路１９０に書き込み可能な形式の特定のパターンのデータであればどのようなものであってもよく、例えば、０ｘ５ａ５ａ５ａ５ａといったデータであってもよいし、４ビットや８ビットの数値データなどであってもよい。また、判定元データ保持部２３１は、保持している判定元データをデータ比較部２３３に通知する機能も有する。当該判定元データは予め設定されている。
【００４５】
テストリードデータ保持部２３２は、テストアクセスによって、一度メモリ回路１９０に書き込んだ判定元データを読み出して得たデータを保持する機能を有し、テストアクセス発行部２０１から転送されてきたデータを保持する。テストリードデータ保持部２３２は、一回のテストアクセス毎に読み取ったデータ（以降、読取判定元データとも呼称する）を保持し、保持しているデータが更新されるごとに保持している読取判定元データをデータ比較部２３３に出力する機能を有する。
【００４６】
データ比較部２３３は、判定元データ保持部２３１から出力された判定元データと、テストリードデータ保持部２３２から出力された読取判定元データとを比較し、一致するかどうかを判定する。一致した場合には、現在のストローブ信号の遅延量でデータ通信に成功したことを意味する。また、一致しなかった場合には、データ通信に失敗したことを意味し、現在のストローブ信号の遅延量ではデータ通信に支障をきたすことを意味する。データ比較部２３３は、判定元データと読取判定元データとが一致した場合に、そのときのテストアクセスの遅延量に対応付けてデータ通信が成功したことを示す情報を判定結果テーブル２３４に登録し、一致しなかった場合に、そのときのテストアクセスの遅延量に対応付けてデータ通信が失敗したことを示す情報を判定結果テーブル２３４に登録する。
【００４７】
判定結果テーブル２３４は、最適値設定部２２６が最適な遅延量を算出する際に参照するテストアクセスの成否を示す情報である。図６に、判定結果テーブル２３４の一構成例となるデータ概念図を示した。
【００４８】
図６に示すように、判定結果テーブル２３４は、各遅延量に応じて、行ったテストアクセスの成否を示す情報であり、ストローブ信号の遅延量６０１とＯＫ／ＮＧ判定６０２とを対応付けた情報である。本実施例では、テストアクセスは、各遅延量について５回行うものとし、各回のテストアクセスの成否が登録される。図６の判定結果テーブル２３４においては、データ転送が成功した場合を「○」で、失敗した場合を「×」で示している。
【００４９】
例えば図６では、「現行の遅延量−１０ｐｓ」の場合、即ち現行よりも１０ｐｓだけストローブ信号の立ち上げを早めた場合では、第３回目だけテストアクセスに失敗した例を示している。図６に示した判定結果テーブル２３４の場合だと、全てのテストアクセスが成功した、「現行」、「現行＋１０ｐｓ」、「現行＋２０ｐｓ」の平均値、即ち、「現行＋１０ｐｓ」、つまり現行の遅延量よりも、１０ｐｓだけストローブの立ち上がりを遅くした新たな遅延量が遅延量保持部１４０に保持されることになる。
【００５０】
図３は、遅延量保持部１４０の機能構成を示す機能ブロック図である。
図３に示すように、遅延量保持部１４０は、現行制御ライン信号ビット０用遅延量保持部３０１と、現行制御ライン信号ビット１用遅延量保持部３０２と、現行アドレスビット０用遅延量保持部３０３と、現行アドレスビット１用遅延量保持部３０４と、現行データ信号ビット０用遅延量保持部３０５と、現行データ信号ビット１用遅延量保持部３０６と、現行ストローブ信号用遅延量保持部３０７と、テスト用制御ライン信号ビット０用遅延量保持部３１１と、テスト用制御ライン信号ビット１用遅延量保持部３１２と、テスト用アドレスビット０用遅延量保持部３１３と、テスト用アドレスビット１用遅延量保持部３１４と、テスト用データ信号ビット０用遅延量保持部３１５と、テスト用データ信号ビット１用遅延量保持部３１６と、テスト用ストローブ信号用遅延量保持部３１７と、セレクタ３２１〜３２７とを含んで構成される。
【００５１】
現行制御ライン信号ビット０用遅延量保持部３０１は、現在使用されている制御ライン信号のビット０の信号線にのる信号を遅延させる遅延量を保持する機能を有し、当該遅延量をセレクタ３２１に出力する機能を有する。また、現行制御ライン信号ビット０用遅延量保持部３０１の保持する遅延量は、テストアクセス終了時に、テストアクセス部１５０により最新のものに更新される。
【００５２】
テスト用制御ライン信号ビット０用遅延量保持部３１１は、テストアクセス時に使用される制御ライン信号のビット０の信号線にのる信号を遅延させる遅延量を保持する機能を有し、当該遅延量をセレクタ３２１に出力する機能を有する。テスト用制御ライン信号ビット０用遅延量保持部３１１の保持する遅延量は、テストアクセスを実行しているときに、遅延量を変更するごとにテストアクセス部１５０により更新される。
【００５３】
セレクタ３２１は、テストアクセス部１５０からの指示に従って、遅延素子指定部２２１が出力するどの遅延素子部であるかを示す信号が制御ライン信号ビット０であることを示す信号である場合に、テスト状態保持部２０２から出力されるテスト状態であるか否かを示す信号１４７に基づいて、現行制御ライン信号ビット０用遅延量保持部３０１から出力されている信号と、テスト用制御ライン信号ビット０用遅延量保持部３１１から出力されている信号とのうちのいずれか一方を選択して、遅延素子部１３０に出力する機能を有する。具体的には、テスト状態保持部２０２から出力されている信号がテストアクセス実行中であることを示している場合に、テスト用制御ライン信号ビット０用遅延量保持部３１１が保持する遅延量を選択して出力し、それ以外の場合には、現行制御ライン信号ビット０用遅延量保持部３０１が保持する遅延量を出力する。
【００５４】
その他の現行用遅延量保持部（３０２〜３０７）、テスト用遅延量保持部（３１２〜３１７）、セレクタ（３２２〜３２７）については、制御対象となるラインと遅延量がそれぞれ異なるだけで、それぞれの機能部の名称で示される信号の遅延量を出力する構成となっているので、詳細な説明を割愛する。
【００５５】
図４は、遅延素子部１３０の機能構成を示す機能ブロック図である。
図４に示すように、遅延素子部１３０は、制御ライン信号ビット０用遅延素子部４０１と、制御ライン信号ビット１用遅延素子部４０２と、アドレス信号ビット０用遅延素子部４０３と、アドレス信号ビット１用遅延素子部４０４と、データ信号ビット０用遅延素子部４０５と、データ信号ビット１用遅延素子部４０６と、ストローブ信号用遅延素子部４０７とを含んで構成される。
【００５６】
制御ライン信号ビット０用遅延素子部４０１は、制御信号の０ビット目の信号を遅延させるための機能を有する。
制御ライン信号ビット１用遅延素子部４０２は、制御信号の１ビット目の信号を遅延させるための機能を有する。
【００５７】
アドレス信号ビット０用遅延素子部４０３は、アドレス信号の０ビット目の信号を遅延させるための機能を有する。
アドレス信号ビット１用遅延素子部４０４は、アドレス信号の１ビット目の信号を遅延させるための機能を有する。
【００５８】
データ信号ビット０用遅延素子部４０５は、データ信号の０ビット目の信号を遅延させるための機能を有する。
データ信号ビット１用遅延素子部４０６は、データ信号の１ビット目の信号を遅延させるための機能を有する。
【００５９】
ストローブ信号用遅延素子部４０７は、ストローブ信号を遅延させるための機能を有する。
各遅延素子部は、遅延量保持部１４０内の対応する遅延量保持部から出力された遅延量（３３１〜３３７）の分だけ、入力された信号を遅延させて出力する。
【００６０】
本実施の形態にあっては、基本的に遅延調整は、データ信号とストローブ信号との間で行うものであり、この場合重要になる構成は、ストローブ信号用遅延素子部４０７であるが、制御ライン信号ビット０用遅延素子部４０１と、制御ライン信号ビット１用遅延素子部４０２と、アドレス信号ビット０用遅延素子部４０３と、アドレス信号ビット１用遅延素子部４０４とを備えることにより、例えばアドレス信号０ビットと、アドレス信号１ビットとの間でずれが発生した場合などにそのずれを修正したりすることができる。アドレス信号間でのずれがあった場合には、正しいアドレスが伝達されないことになるため、そのような事態に対処できる。
【００６１】
図５は、ストローブ信号用遅延素子部４０７の詳細な回路構成を示すブロック図である。
ストローブ信号用遅延素子部４０７は、半導体集積回路側からメモリ回路１９０にデータを書き込む場合と、データをメモリ回路１９０から読み取る場合とでストローブ信号を遅延させる構成を備える。
【００６２】
図４に示すようにストローブ信号用遅延素子部４０７は、送信用の遅延素子群（５０１ａ〜５０１ｎ）と、受信用の遅延素子群（５０２ａ〜５０２ｎ）と、セレクタ５０３と、セレクタ５０４とを含んで構成される。なお、ここでの遅延素子は、遅延量をずらすために必要な数だけの遅延素子があればよく、例えば、データ信号がデータラインにのっている時間を遅延素子の遅延素子量で割った数以上の遅延素子があればよく、ここでのｎは必要とされる任意の数となる。
【００６３】
各遅延素子（５０１ａ〜５０１ｎ、５０２ａ〜５０２ｎ）は、それぞれ、入力された信号を１０ｐｓだけ遅延させる機能を有し、例えばラッチ回路などにより構成される。
セレクタ５０３は、遅延量保持部１４０の遅延素子指定部から指定された遅延素子の出力信号を選択して出力する機能を有する。セレクタ５０３は、半導体集積回路１０側から、メモリ回路１９０側へのストローブ信号を出力するものであ。
【００６４】
セレクタ５０４は、遅延量保持部１４０の遅延素子指定部から指定された遅延素子の出力信号を選択して出力する機能を有する。セレクタ５０４は、メモリ回路１９０側から、半導体集積回路１０側へのストローブ信号を出力するものである。
【００６５】
なお、その他の遅延素子の回路構成は略同一であるので説明を割愛する。但し、ストローブ信号は、双方向に転送されるので、両方向の構成を備える必要があるが、制御ライン信号と、アドレス信号とについては、半導体集積回路１０からメモリ回路１９０の方向にのみ送信されるので、半導体集積回路１０側からメモリ回路１９０側への方向のみの遅延素子及びセレクタを備えればよい。
＜動作＞
図７は、遅延調整部１００の遅延調整の動作を示すフローチャートである。
【００６６】
半導体装置１０は、電源投入、あるいは、システムリセットにより初期化が発生する（ステップＳ７０１）。
すると、遅延調整部１００は、システム起動時の遅延調整を実行する（ステップＳ７０２）。これは予め定められた初期値を設定することとしてもよいし、後述するテストアクセス処理を実行しての遅延調整であってもよい。
【００６７】
テストアクセス部１５０のメモリ幅監視部２１２は、常時使用されているメモリバンド幅を検出し、判定部２１３に通知する。そして、判定部２１３は、そのメモリバンド幅がテスト条件設定部２１１に予め定められている閾値未満であるかどうかを定期的（例えば１分毎）に判定する（ステップＳ７０３）。
【００６８】
使用されているメモリバンド幅が所定閾値以上である場合には（ステップＳ７０３のＮＯ）、何もせずにステップＳ７０３に戻る。
使用されているメモリバンド幅が所定閾値未満であった場合であって（ステップＳ７０３のＹＥＳ）、アクセス先変換部１１０は、退避フラグ保持部２０５が保持する情報がデータ退避部１２０を用いることを示すときには、テストアクセス用に用いられるメモリの領域に保持されているデータをデータ退避部１２０に退避させる（ステップＳ７０４）。このとき、テスト状態保持部２０２は、テスト状態であることを示す情報を保持する。
【００６９】
必要に応じてデータを退避させた後、テスト状態保持部２０２がテスト状態であることを示す情報を保持したことを契機に、遅延調整部１００のテストアクセス部１５０は、遅延調整のためのテストアクセス処理を実行する（ステップＳ７０５）。テストアクセス処理の詳細については、図８を用いて後述する。
【００７０】
テストアクセス部１５０の遅延量算出部２２０は、テストアクセス処理を行って得られた結果を用いて、算出された遅延量を現在の遅延量として遅延量保持部１４０に設定する（ステップＳ７０６）。
【００７１】
テストアクセス処理の終了後に、アクセス先変換部１１０は、変換テーブル１１１を用いて、データ退避部１２０にテストアクセス処理のために退避させていたデータを元々格納されていたアドレスに格納しなおし（ステップＳ７０７）、ステップＳ７０３に戻る。
【００７２】
ステップＳ７０３〜Ｓ７０７の処理を繰り返すことによって、使用されているメモリバンド幅が低いときに遅延調整が行われることになり、システム動作中であっても遅延調整を行えるので、システムが動作することに基づく温度変化や経年劣化などにより、発生し得るデータ信号とストローブ信号とのずれを修正することができる。
【００７３】
図８は、図７に示したフローチャートのステップＳ７０５におけるテストアクセス処理におけるテストアクセス部１５０の詳細動作を示すフローチャートである。
テストアクセス発行部２０１は、ＯＫ／ＮＧ判定部２３０から判定元データを取得する（ステップＳ８０１）。
【００７４】
遅延量算出部２１０は、現行の遅延量から、どれだけ遅延量をずらすかを決定し、テストアクセスの際に用いる遅延量を遅延量保持部１４０に設定する（ステップＳ８０２）。具体的には、遅延素子指定部２２１がストローブ信号を示す情報を出力し、テスト状態保持部２０２がテスト状態であることを示す情報を出力し、遅延量算出部２２０がそのときの遅延量を出力することで、遅延量保持部１４０のテスト用ストローブ信号用遅延量保持部に、遅延量算出部２２０から出力された遅延量が設定され、その遅延量がセレクタ３２７により選択されて、信号３３７として、遅延素子部１３０に出力される。遅延素子部１３０のストローブ信号用遅延素子４０７は、これにより、当該遅延量だけ入力された信号を遅延させたストローブ信号を出力する。
【００７５】
テストアクセス発行部２０１は、取得した判定元データをメモリ回路１９０に書き込むためのアクセス要求を調停部１７０に発行する。調停部１７０は、テストアクセスを示すアクセス要求を受け付けると、優先してメモリデータ送受信部１８０に当該アクセス要求を伝達する。そして、メモリ回路１９０に判定元データを書き込むためのアクセスが実行される。
【００７６】
メモリ回路１９０からの書き込み完了を示す信号を受け付けると、テストアクセス発行部２０１は、次に、メモリ回路１９０に書き込まれたはずの判定元データを読み出すためのアクセス要求を発行する。そして、当該アクセス要求に応じてメモリ回路１９０から出力された読取判定元データはテストアクセス発行部２０１を介して、テストリーダ保持部２３２に書き込まれる（ステップＳ８０３）。
【００７７】
すると、データ比較部２３３は、判定元データ保持部２３１から出力されている判定元データと、テストリードデータ保持部２３２から出力されている読取判定元データとが一致するかどうかに基づいてテストアクセスの成否を判定する。そして、データ比較部２３３は、当該テストアクセスの成否を判定結果テーブル２３４に登録する（ステップＳ８０４）。
【００７８】
遅延量算出部２２０は、テストアクセスの現在の遅延量で予め定めた回数（ここでは５回）のテストアクセスを実行したかどうかを判定する（ステップＳ８０５）。当該判定は自身がテストアクセスを実行した回数をカウンティングして、その回数を保持しておき、その値が予め定めた回数になっているかどうかにより実行される。
【００７９】
実行していない場合には（ステップＳ８０５のＮＯ）、ステップＳ８０３に戻る。実行していた場合には（ステップＳ８０５のＹＥＳ）、テスト完了判定部２２５は、タップ回数保持部２２３で保持されているタップ回数だけ、遅延量を変化させたかどうかに基づいて、予め定められている全遅延量でのテストアクセスを実行しているかどうかを判定する（ステップＳ８０６）。
【００８０】
実行していない場合には（ステップＳ８０６のＮＯ）、ステップＳ８０２に戻る。実行していた場合には（ステップＳ８０６のＹＥＳ）、テスト完了判定部２２５は、その旨を最適値設定部２２６に通知する。当該通知を受けて最適値設定部２２６は、ＯＫ／ＮＧ判定部２３０から判定結果テーブル２３４を取得する。
【００８１】
最適値設定部２２６は、取得した判定結果テーブル２３４のうち、各遅延量について、そのテストアクセスの成否が全て成功となっている遅延量を検索する。そして、テストアクセスの成否が全て成功となっている遅延量について、その遅延量の平均値を最適な遅延量として算出する。そして、算出した遅延量を遅延量保持部１４０の現行ストローブ信号用遅延量保持部に設定して（ステップＳ８０７）、テストアクセス処理を終了する。
【００８２】
以上の動作により、遅延調整部１００は、初期化タイミングやリセットタイミング以外のタイミング、即ち、システム動作中であっても遅延調整を行って、データ信号とストローブ信号のずれを修正することができる。
＜実施の形態２＞
上記実施の形態１においては、使用しているメモリバンド幅が、所定閾値を下回っている場合に、遅延調整を実行する手法を説明した。しかし、半導体集積回路１０とメモリ回路１９０との間で、所定の閾値以上でデータ転送を継続していると、上記実施の形態１に示した半導体装置１では、遅延調整を実行できない場合が発生する。
【００８３】
そこで、本実施の形態２においては、そのような事態にも対処できる遅延調整部を備えた半導体装置２を開示する。
＜構成＞
図９が実施の形態２に係る半導体装置２の機能構成を示す機能ブロック図であり、図１０が実施の形態２に係るテストアクセス部９５０の機能構成を示す機能ブロック図である。実施の形態２に係る半導体装置２０は、実施の形態１と異なり、遅延調整部９００を備える。遅延調整部９００と実施の形態１に示した遅延調整部１００との相違点は、テストアクセス部９５０を備えることにあり、テストアクセス部９５０とテストアクセス部１５０との相違点は、テスト開始判定部２１０の変わりにテスト開始判定部１２１０を備えていることにある。
【００８４】
テストアクセス部９５０の違いは、実施の形態１においては、使用しているメモリバンド幅が所定の閾値未満になっているタイミングで遅延調整を実行していたのに対し、半導体装置２の起動時から所定の時間が経過するごとに遅延調整を実行する点にある。
【００８５】
図１０に示すようにテスト開始判定部１２１０は、テスト条件設定部１２１１と、経過時間測定部１２１２と、テスト開始判定部１２１３を含んで構成される。
テスト条件設定部１２１１は、テストアクセスを実行するための条件を保持し、当該条件を判定部１２１３に通知する機能を有する。当該条件は、前回、遅延調整を行ってから、所定時間が経過することである。
【００８６】
経過時間測定部１２１２は、経過した時間を計測するタイマであり、カウントしている時刻を判定部２１３に通知する機能を有する。経過時間測定部１２１２は、テストアクセスを実行するごとにタイマをリセットする。
【００８７】
テスト開始判定部１２１３は、テスト条件設定部１２１１から通知された時間が経過したかどうかを、経過時間測定部１２１２から通知される時刻に基づいて判定する機能を有する。テスト開始判定部１２１３は、テスト条件設定部１２１１から通知された時間が経過していた場合、テスト状態保持部２０２が保持する動作状態を通常状態からテスト状態に変更する。
＜動作＞
ここで、実施の形態２に係る半導体装置２の動作を説明する。ここでは、実施の形態１に示した動作と共通する点においては、説明を割愛するものとし、相違点についてのみ説明する。
【００８８】
図１１が実施の形態２に係る半導体装置２の動作を示すフローチャートである。図１１に示すフローチャートにおいて、図７に示したフローチャートと同じステップ番号をふった動作については同様の動作をするものとしてその説明を割愛するものとする。
【００８９】
実施の形態２における動作が異なる点は、図１１に示すフローチャートのステップＳ１１０３の動作である。即ち、テストアクセス開始、つまり遅延調整開始のための条件判定が異なる。
【００９０】
テスト開始判定部１０１０のテスト開始判定部１０１３は、テスト条件設定部１０１１に設定されている時間が経過したかどうかを、経過時間測定部１０１２から通知された時間に基づいて判定する（ステップＳ１１０３）。そして、所定時間が経過していた場合に（ステップＳ１１０３のＹＥＳ）、遅延調整の処理、即ちテストアクセス処理を開始する（ステップＳ７０４以降の処理）。
【００９１】
これにより、半導体装置２の起動から、所定時間が経過するごとに遅延調整部９００は、強制的に遅延調整を実行することができるので、半導体集積回路２０とメモリ回路１９０との間で延々データ転送が実行されていてテストアクセスを実行できない状態であったとしてもデータ信号とストローブ信号とのずれを調整することができる。また、テストアクセスのために用いるメモリ領域に格納されているデータは一旦データ退避部１２０に退避されることになるので、元々そこにあったデータは、テストアクセス後に復元でき、システム動作になんら支障をきたさない構成とすることができる。
＜補足＞
上記実施の形態において、本発明の実施の手法について説明してきたが、本発明の実施形態がこれに限られないことは勿論である。以下、上記実施形態以外に本発明として含まれる各種の変形例について説明する。
（１）上記実施の形態１と上記実施の形態２において、使用しているメモリバンド幅が所定の閾値以下の場合と、予め定められた時間ごとという場合とで遅延調整を実行する例を示したが、両実施形態を組み合わせて、遅延調整部は、両方の場合で遅延調整を実行する構成としてもよい。即ち、メモリバンド幅を監視し、所定の閾値以下になったタイミングで遅延調整を実行するとともに、所定の時間が経過するごとにも遅延調整を強制的に実行する構成としてもよい。当該構成にすることにより、一方のみを実行する場合に比して、よりデータ信号とストローブ信号のずれが発生してデータ通信に失敗する確率を低減できる。
（２）上記実施の形態１においては、使用されているメモリバンド幅が所定の閾値未満であった場合には、必ずテストアクセスを実行する構成となっていたが、これは、毎回必ず実行しない構成としてもよい。例えば、前回遅延調整を行ってから、所定時間が経過していない間はテストアクセスを実行しない構成としてもよい。これにより、半導体集積回路１０の処理負担を軽減することができる。
（３）上記実施の形態においては、第１転送マスタ部１６０はデータ信号とストローブ信号とを同時に出力し、ストローブ信号用遅延素子部でストローブ信号を遅延させてメモリ回路１９０に出力することで、メモリ回路１９０にデータを読み取らせる構成を示した。
【００９２】
しかし、第１転送マスタ部１６０がデータの出力側となる場合には、ストローブ信号用遅延素子部に出力用の遅延素子を配さずに、第１転送マスタ部でデータ信号を出力するタイミングから定められた時間だけ遅延させてストローブ信号を出力する構成としてもよい。
（４）上記実施の形態においては、遅延量を決定する際に、現行の遅延量の前後３０ｐｓまで、１０ｐｓ単位で計７個の遅延量分のテストアクセスを実行してデータ転送の成否を判定したが、これは、遅延量を決定するに足るデータが取得できるのであれば、例えば前後２０ｐｓまで、１０ｐｓ単位で計５個の遅延量分だけの成否を判定するだけでもよい。測定した遅延量の個数が少なければ、遅延量を決定するための時間を短縮でき、個数が多ければ決定した遅延量の信頼度を増すことができる。
【００９３】
また、各遅延量についても５回テストアクセスを実行して、データ転送の成否を判定したが、この回数も５回に限るものではなく、例えば、１回、あるいは、４回、あるいは７回などであってもよい。回数が少なければ、遅延量を決定するための時間を短縮でき、回数が多ければ決定した遅延量の信頼度を増すことができる。
【００９４】
また、上記実施の形態においては、遅延量を１０ｐｓ単位でずらしてデータ転送の成否を判定したが、遅延素子の遅延量に応じて、５ｐｓあるいは２０ｐｓ単位であってもよい。
【００９５】
また、上記実施の形態においては、遅延量それぞれについて５回全てデータ転送が成功したものを選択して、その平均をとることとしたが、テストアクセスを実行した各遅延量について、５回のうち何回成功したかの割合をかけて得られる各遅延量の平均値をとる構成にしてもよい。
（５）上記実施の形態において、システムの動作状態、とりわけ、動作温度によって、データ信号とストローブ信号とのずれが発生し得ることを記載した。そこで、その温度に応じて、遅延量を決定する構成をここに開示する。当該構成を実現するために、予めシステムをその動作温度に応じての最適な遅延量を予め実機のシミュレーションにより測定しておく。当該シミュレーションにより得られた遅延量の最適値は、温度別遅延情報として遅延調整部が記憶しておく。
【００９６】
その遅延調整部を含む半導体装置の構成を図１２に示す。図１２に示した遅延調整部１２００は、実施の形態１に示したものに加え、更に、温度センサ１２０１を備える。
温度センサ１２０１は、周囲の温度を測定する機能を有し、測定した温度を定期的（例えば、３０秒毎）にテストアクセス部１５０に通知する機能を有する。
【００９７】
図１３に示すように、テストアクセス部１５０の遅延量算出部１２２０は、実施の形態１の遅延量算出部２２０に示したものに加え、更に、温度別遅延情報１３０１を保持している。
【００９８】
図１４に温度別遅延情報１３０１の構成例を示す。図１４は、温度別遅延情報１３０１の一構成例を示すデータ概念図である。
図１４に示すように温度別遅延情報は、温度センサ１２０１が測定した温度１４０１と、そのときの、システムが使用する全メモリバンド幅１４０２に応じた遅延量を示す情報である。なお、図１４に示した遅延量で示される値は、一例であって、システムに応じて異なることは言うまでもなく、搭載されるシステムに応じた最適な値が規定されることとなる。当該値は、半導体装置３の出荷前の動作シミュレーション等により取得する。
【００９９】
当該温度別遅延情報では、温度は、４０度未満と、４０度以上の場合とで、分けられており、バンド幅は、１２００Ｍｂｐｓ、２４００Ｍｂｐｓの場合とで分けられている。なお、ここに示したのは、一事例であって、温度及びバンド幅はより細かく細分化されていてもよいし、メモリバンド幅は、固定の値ではなく、所定の幅、例えば、１０００Ｍｂｐｓ〜２０００Ｍｂｐｓなどという形で規定されていてもよい。
【０１００】
テストアクセス部１２５０は、テストアクセスを実行するタイミングにおいて、温度センサ１２０１が通知してきた温度に基づいて、基本遅延量を決定する。
そして、上記実施の形態１に示したように、タップ回数で示される分だけ、この基本遅延量を１０ｐｓ単位で前後させて、それぞれ５回ずつデータ転送の成否を計測する。そして、データ転送が５回とも成功した遅延量の平均値を新たな、遅延量として設定する。
【０１０１】
この構成を備えることにより、システムの温度状況に合わせた適切な遅延量設定を行うことができる。
なお、当該構成は実施の形態２に示した遅延調整部９００が保持するものであってもよい。また、温度別遅延情報１３０１に示される遅延量は、システムの起動時、リセット時に設定される遅延量として用いられてもよい。
【０１０２】
また、温度センサ１２０１を備える場合に、当該温度センサ１２０１が示す温度が所定の温度を超えた場合（例えば４０℃を超えた場合）をテストアクセス実行の契機とする構成にしてもよい。半導体集積回路１０の動作温度に応じて、データ信号とストローブ信号とのずれが発生することがあるので、その事態に対応することができる。温度センサ１２０１の温度を遅延調整の条件とする場合には、温度別遅延情報の有用性は更に高まる。
（６）上記実施の形態において、遅延素子部では、遅延量保持部１４０から指示される遅延量に応じて、セレクタ５０３、５０４が１つの遅延素子からの出力信号を選択して出力する構成とした。これは、以下のような構成にしてもよい。
【０１０３】
即ち、図５に示すように遅延素子を直列に接続するのではなく、遅延量がそれぞれ異なる遅延素子（ストローブ信号を１０ｐｓ遅延させる遅延素子、２０ｐｓ遅延させる遅延素子、・・・１００ｐｓ遅延させる遅延素子・・・）を並列に配する。そして、判定元データをそれぞれの遅延素子から出力されたストローブ信号で示されるタイミングでメモリ回路１９０のそれぞれ異なる領域に書き込み、それぞれ異なる領域に書き込んだデータを読み取って、読み取った各読取判定元データと判定元データとを比較してデータ転送の成否を判定する構成としてもよい。これにより、テストアクセス時に遅延量を変化させながらのテストアクセスを実行せずにすみ、例えば、上記実施の形態１では遅延量７つ分のテストアクセスをそれぞれ５回、計３５回のテストアクセスを実行したのに対し、遅延素子を並列に配すると、５回のテストアクセスのみですみ、テストアクセスに要する時間を短縮することができる。
（７）上記実施の形態において示した遅延量は、秒単位で説明したが、これは、信号をどれだけ遅延させるかを規定できるものであればよく、秒以外の単位、即ち、位相（度）で遅延量を規定することとしてもよい。この場合、上記実施の形態に示す遅延調整部は、位相調整部と銘打つのが妥当であり、上記実施の形態における遅延量は、位相変化量として、ストローブ信号の位相を何度遅らせるのかを規定するものとなる。
（８）上記実施の形態においては、一度テストアクセスが開始されると最後までテストアクセスを実行して、遅延量を更新する構成としたが、メモリバンド幅がテストアクセス中に所定の閾値以上になった場合に、テストアクセスを中断する構成としてもよい。
【０１０４】
このとき、テストアクセスのデータ（どの遅延量でテストアクセスを実行したか、テストアクセスによるデータ転送の成否の情報）をメモリ等に残しておき、中断後再びメモリバンド幅が所定の閾値未満になった場合に、中断したところからテストアクセスを継続する構成としてもよい。また、テストアクセスを中断後、メモリバンド幅が所定閾値未満になった場合に、再度最初からテストアクセスを実行してもよい。
（９）上記実施の形態１においてメモリバンド幅監視部２１２は、１分ごとのメモリバンド幅を監視する構成となっているが、これは、１分ごとに限定されるものではなく、システムの動作環境に応じて、変更してもよく、例えば、２０秒ごとであってもよいし、２分ごとであってもよい。
（１０）図１、２、３、４、９、１０、１２、１３に示した半導体装置１、２、３の各機能部は集積化されて１又は複数のＬＳＩ（Large Scale Integration）により実現されてもよい。また、複数の機能部が１のＬＳＩにより実現されてもよい。
【０１０５】
ＬＳＩは集積度の違いにより、ＩＣ（Integrated Circuit）、システムＬＳＩ、ＶＬＳＩ（Very Large Scale Integration）、ＳＬＳＩ（Super Large Scale Integration）、ＵＬＳＩ（Ultra Large Scale Integration）などと呼称されることもある。
【０１０６】
また、集積回路化の手法はＬＳＩに限られるものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０１０７】
さらに、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてあり得る。
（１１）上述の実施形態で示した遅延調整に係る動作、遅延量の設定処理等（図７、８等参照）を民生機器等のプロセッサ、及びそのプロセッサに接続された各種回路に実行させるためのプログラムコードからなる制御プログラムを、記録媒体に記録すること、又は各種通信路（例えば、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク）等を介して流通させ頒布させることもできる。このような記録媒体には、ＩＣカード、ハードディスク、光ディスク、フレキシブルディスク、ＲＯＭ等がある。流通、頒布された制御プログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより、実施形態で示したような各種機能が実現されるようになる。
（１２）以下に本発明に係る遅延調整装置の実施態様とその効果について説明する。
【０１０８】
本発明に係る遅延調整装置は、外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器に搭載され、ストローブ信号の遅延調整を行う遅延調整装置であって、前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視部と、前記メモリバンド情報で示されるメモリバンド幅に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整手段とを備える。
【０１０９】
また、本発明は、外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器間において、遅延調整装置がストローブ信号の遅延調整を行う遅延調整方法であって、前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視ステップと、前記メモリバンド情報で示されるメモリバンド幅に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整ステップとを含む。
【０１１０】
これにより、遅延調整装置は、データ転送を実行する機器と、当該装置に接続されている外部メモリ間で使用されているメモリバンド幅に応じて、遅延調整を実行することができる。これによって、遅延調整装置は、例えば、機器と外部メモリの間でのデータ転送を実行している場合には、使用しているメモリバンド幅が大きくなるので、実際にデータ転送を行って、その成否によって遅延量を決定する遅延調整を実行するのには適さないが、データ転送を実行していない、あるいは、その転送量が少ない場合には、遅延調整を実行することができる。
【０１１１】
また、前記遅延調整手段は、前記メモリバンド幅が所定の閾値を下回った場合に、前記遅延調整を実行することとしてもよい。
これにより、メモリバンド幅が所定の閾値未満になったタイミングを契機として遅延調整を開始することができる。
【０１１２】
また、前記遅延調整装置は、更に、遅延調整を行うための条件を定めた遅延調整条件情報を記憶する記憶手段を備え、前記遅延調整手段は、前記記憶手段に記憶されている遅延調整条件情報で定められる条件が成立した場合にも前記遅延調整を実行することとしてもよい。
【０１１３】
また、前記所定の条件とは、自装置が起動してから、所定時間が経過するごとであることとしてもよい。
また、本発明は、外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器間において、遅延調整装置がストローブ信号の遅延調整を行う遅延調整方法であって、前回行った遅延調整から所定時間が経過したか否かを判定する判定ステップと、前記判定ステップが肯定的な判定をした場合に、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整ステップとを含む。
【０１１４】
これにより、メモリバンド幅が所定の閾値未満とならずとも、定期的に遅延調整を実行する構成とすることができ、データ信号とストローブ信号とのずれを発生しにくくすることができる。
【０１１５】
また、前記遅延調整手段は、前記外部メモリから出力されるストローブ信号を所定量だけ遅延させて、自装置から前記外部メモリにデータ転送の成否の判定に用いる判定元データを書き込み、当該書き込んだデータを読み取り、読みとったデータと判定元データとを比較してデータ転送の成否を判定して、データ転送に適したストローブ信号の遅延量を決定することで前記遅延調整を実行することとしてもよい。
【０１１６】
これにより、実際にデータ転送を行って、その成否を判定した実データに基づいて、遅延量を決定することにより、データ転送が確実に行える遅延量を決定することができる。
また、前記遅延調整装置は、更に、前記遅延調整手段が前記遅延調整を実行する前に、前記内部メモリの前記仮データを書き込む領域に記憶されているデータを退避させるためのメモリデータ退避手段を備えることとしてもよい。
【０１１７】
これにより、遅延調整を行うにあたって、実際にデータ転送を実行して、データの書き込みを行う場合に、元々あったデータを退避させることにより、遅延調整を行ったあとでデータを復元することができる。
【産業上の利用可能性】
【０１１８】
本発明に係る遅延調整装置は、データラインに乗るデータ信号をストローブ信号で示されるタイミングで読み取ることが規定されているデータ通信を実行する装置において有用である。
【符号の説明】
【０１１９】
１  半導体装置
１０  半導体集積回路
１００  遅延調整部
１１０  アクセス先変換部
１１１  変換テーブル
１２０  データ退避部
１３０  遅延素子部
１４０  遅延量保持部
１５０  テストアクセス部
１６０  第１転送マスタ部
１７０  調停部
１８０  メモリデータ送受信部
１９０  メモリ回路
２０１  テスト領域指定部
２０２  テスト状態保持部
２０３  テスト領域設定部
２０４  テストフラグ保持部
２０５  退避フラグ保持部
２１０  テスト開始判定部
２１１  テスト条件設定部
２１２  メモリ幅監視部
２１３  テスト開始判定部
２２０  遅延量算出部
２２１  遅延素子指定部
２２２  遅延タップ量保持部
２２３  タップ回数保持部
２２４  テスト遅延量算出部
２２５  テスト完了判定部
２２６  最適値設定部
２３０  ＯＫ／ＮＧ判定部
２３１  判定元データ保持部
２３２  テストリードデータ保持部
２３３  データ比較部
２３４  判定結果テーブル
３０１  現行制御ライン信号ビット０用遅延量保持部３０１と、
３０２  現行制御ライン信号ビット１用遅延量保持部３０２と、
３０３  現行アドレスビット０用遅延量保持部３０３と、
３０４  現行アドレスビット１用遅延量保持部
３０５  現行データ信号ビット０用遅延量保持部
３０６  現行データ信号ビット１用遅延量保持部
３０７  現行ストローブ信号用遅延量保持部
３１１  テスト用制御ライン信号ビット０用遅延量保持部
３１２  テスト用制御ライン信号ビット１用遅延量保持部
３１３  テスト用アドレスビット０用遅延量保持部
３１４  テスト用アドレスビット１用遅延量保持部
３１５  テスト用データ信号ビット０用遅延量保持部
３１６  テスト用データ信号ビット１用遅延量保持部
３１７  テスト用ストローブ信号用遅延量保持部
３２１〜３２７  セレクタ
４０１  制御ライン信号ビット０用遅延素子部
４０２  制御ライン信号ビット１用遅延素子部
４０３  アドレス信号ビット０用遅延素子部
４０４  アドレス信号ビット１用遅延素子部
４０５  データ信号ビット０用遅延素子部
４０６  データ信号ビット１用遅延素子部
４０７  ストローブ信号遅延素子部
５０１ａ〜５０１ｎ、５０２ａ〜５０２ｎ  遅延素子
５０３、５０４  セレクタ
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器に搭載され、ストローブ信号の遅延調整を行う遅延調整装置であって、
前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視部と、
自装置が起動してからの経過時間を測定する経過時間測定部と、
自装置の温度を検出する温度センサと、
前記メモリバンド情報で示されるメモリバンド幅及び前記経過時間及び前記温度に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整手段とを備える
ことを特徴とする遅延調整装置。
【請求項２】
前記遅延調整手段は、前記メモリバンド幅が所定の閾値を下回った場合に、前記遅延調整を実行する
ことを特徴とする請求項１記載の遅延調整装置。
【請求項３】
前記遅延調整手段は、自装置が起動してから、所定時間が経過する毎に前記遅延調整を実行する
ことを特徴とする請求項１記載の遅延調整装置。
【請求項４】
前記遅延調整装置は、相異なる複数の温度帯毎に前記遅延調整における基準値を記憶する記憶手段を備え、
前記遅延調整手段は、前記温度センサが検出する温度が、これまでの温度が属する前記記憶手段に記憶されている一の温度帯から、他の温度帯に属することを示すものであった場合に、前記遅延調整を実行する
ことを特徴とする請求項１記載の遅延調整装置。
【請求項５】
前記遅延調整手段は、前記メモリバンド幅が所定の閾値を下回った場合、及び、自装置が起動してから所定時間が経過する毎に、前記遅延調整を実行する
ことを特徴とする請求項１記載の遅延調整装置。
【請求項６】
前記遅延調整装置は、相異なる複数の温度帯毎に前記遅延調整における基準値を記憶する記憶手段を備え、
前記遅延調整手段は、前記温度センサが検出する温度が、これまでの温度が属する前記記憶手段に記憶されている一の温度帯から、他の温度帯に属することを示すものであった場合、及び、自装置が起動してから所定時間が経過する毎に、前記遅延調整を実行する
ことを特徴とする請求項１記載の遅延調整装置。
【請求項７】
前記遅延調整手段は、前記外部メモリから出力されるストローブ信号を所定量だけ遅延させて、自装置から前記外部メモリにデータ転送の成否の判定に用いる判定元データを書き込み、当該書き込んだデータを読み取り、読みとったデータと判定元データとを比較してデータ転送の成否を判定して、データ転送に適したストローブ信号の遅延量を決定することで前記遅延調整を実行するものであり、
前記遅延調整装置は、更に、
前記遅延調整手段が前記遅延調整を実行する前に、前記判定元データを書き込む領域に記憶されているデータを退避させるためのメモリデータ退避手段を備える
ことを特徴とする請求項２〜６のいずれか１項に記載の遅延調整装置。
【請求項８】
外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器間において、遅延調整装置がストローブ信号の遅延調整を行う遅延調整方法であって、
前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視ステップと、
前記遅延調整装置が起動してからの経過時間を測定する経過時間測定ステップと、
前記遅延調整装置に備えられた温度センサが前記遅延調整装置の温度を検出する温度検出ステップと、
前記メモリバンド情報で示されるメモリバンド幅及び前記経過時間及び前記温度に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整ステップとを含む
ことを特徴とする遅延調整方法。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2010137330.tif 000018
【図２】
2010137330.tif 000019
【図３】
2010137330.tif 000020
【図４】
2010137330.tif 000021
【図５】
2010137330.tif 000022
【図６】
2010137330.tif 000023
【図７】
2010137330.tif 000024
【図８】
2010137330.tif 000025
【図９】
2010137330.tif 000026
【図１０】
2010137330.tif 000027
【図１１】
2010137330.tif 000028
【図１２】
2010137330.tif 000029
【図１３】
2010137330.tif 000030
【図１４】
2010137330.tif 000031
【図１５】
2010137330.tif 000032
【国際調査報告】
2010137330.tif 000033
2010137330.tif 000034
2010137330.tif 000035
2010137330.tif 000036