JPWO2009096141A1 - メモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法 - Google Patents
メモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法 Download PDFInfo
- Publication number
- JPWO2009096141A1 JPWO2009096141A1 JP2009551414A JP2009551414A JPWO2009096141A1 JP WO2009096141 A1 JPWO2009096141 A1 JP WO2009096141A1 JP 2009551414 A JP2009551414 A JP 2009551414A JP 2009551414 A JP2009551414 A JP 2009551414A JP WO2009096141 A1 JPWO2009096141 A1 JP WO2009096141A1
- Authority
- JP
- Japan
- Prior art keywords
- memory
- access timing
- timing adjustment
- external
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Dram (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本発明のメモリアクセスタイミング調整装置は、複数の外部メモリ(2)のそれぞれに対し個別に接続され、メモリアクセスにおけるデータの送受信を行う複数の個別メモリインターフェイス(632A〜632D)と、特定のパターンデータを発生するパターン発生回路(633)と、選択された外部メモリに接続された個別メモリインターフェイスからデータを複数回送受信させると同時に、選択された外部メモリ以外の外部メモリに接続された個別メモリインターフェイスから選択された外部メモリ以外の外部メモリへ特定のパターンデータを送受信させることにより複数の外部メモリ(2)に負荷をかけながらアクセスタイミングを調整するプロセッサ(60)とを備える。
Description
本発明は、メモリへのアクセスタイミングを調整するメモリアクセスタイミング調整装置およびメモリアクセスタイミング調整方法に関する。
従来、LSIに搭載されているメモリコントローラがメモリにアクセスする場合のアクセスタイミングは、動作周波数が遅いこともありセット全てに同じ値、すなわち固定値を使用していても問題とはならなかった。しかし、セットの機能の向上に伴い次第にメモリインターフェイスの動作周波数が高くなりアクセスタイミングが厳しくなるにつれ、アクセスタイミングを固定値とせず、セットの状態に合わせて調整可能とする必要が生じてきた。
そこで、LSIは、その内部にアクセスタイミング調整用レジスタが設けられ、その値が変更されることにより、LSIの出力するメモリインターフェイス用信号のタイミング、あるいは入力した信号の内部タイミングを変えることが可能な回路を内蔵するようになってきている。
以下、図12を用いて従来技術の構成及び動作を説明する。図12は従来のメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、システムLSI900と、外部メモリ910A、910B、910C及び910Dと、外部不揮発性メモリ920と、外部SRAM930とを備える。
システムLSI900は、プロセッサ901と、外部バスコントローラ902と、メモリコントローラ903とを内蔵している。
プロセッサ901はメモリコントローラ903及び外部バスコントローラ902に接続されている。
さらに、メモリコントローラ903は、メモリインターフェイス904を有し、メモリバスを介して、外部メモリ910A、910B、910C、及び910Dと接続されている。
また外部不揮発性メモリ920と外部SRAM930とは、それぞれ外部バスコントローラ902を介してプロセッサ901に接続されている。
プロセッサ901は、起動時に、外部バスコントローラ902を介し外部不揮発性メモリ920からブートコードをロードし、その中に書かれたコードすなわち命令を実行する。
また、外部不揮発性メモリ920にはアクセスタイミング調整プログラムも書かれており、プロセッサ901がアクセスタイミング調整プログラムを実行した場合には、プロセッサ901がメモリのある領域にデータを書込み、同じ領域からデータを読み出して、読み出したデータと期待値とを比較し、OK/NGの判定を行う。メモリコントローラ903にはアクセスタイミングを調整するためのアクセスタイミング調整用レジスタが設けられており、プロセッサ901はレジスタへの設定値を変える毎にメモリライト、メモリリード、期待値比較を行いOK/NGを判定する。以下、アクセスタイミング調整用レジスタへの設定値について、具体的に説明する。
図13は、外部メモリからLSI内へデータを読み込む場合の動作タイミングチャートである。図12における外部メモリ910A〜910Dとしては、クロック同期型メモリとして、例えば、DDR SDRAM(Double Data Rate Syncronous DRAM)が使用されており、メモリコントローラ903に8ビットデータ(図12及び図13ではDQとして記載)を転送するタイミングを知らせるために、第1クロック信号に同期したデータストローブ信号(図12及び図13ではDQSとして記載)が使用されている。外部メモリからデータを読み出す場合、外部メモリからはデータDQをデータストローブDQSと同位相で出力する。このデータを確実に受け取るために、例えば、メモリコントローラ903は、第1クロック信号に同期したデータストローブ信号に対して位相を90度遅らせたタイミングのデータストローブ信号を生成する。そして、当該データストローブ信号の立ち上がり時及び立ち下がり時に8ビットデータを読み込むことになっている。しかし、電源変動やノイズなどの外的要因により、受信したデータストローブ信号に波形歪みが生じ、データストローブ信号のエッジ検出時に位相のずれが生じる。これに対応するため、メモリコントローラ903は、データ読み込みのための基準位相差である90度に対し、所定の位相範囲であるウィンドウ幅を確保しておく必要がある。このウィンドウ幅を、例えば、180度を128分割したものを1ビットで変化させられる位相差として、最適な位相差をビットで表現したものが上述したアクセスタイミング調整用レジスタへの設定値となる。
上記方法により、プロセッサ901は、メモリアクセスが正常に行える位相範囲を求め、プロセス変動、電圧変動等他の条件を加味して動作マージンが最大となるアクセスタイミング調整用レジスタ設定値を決定する。
アクセスタイミングの最適設定値の求め方については、特許文献1から特許文献4に示すものが知られている。
特許文献1は、上述した従来技術を開示したものであり、アクセスタイミングの最適設定値の求め方として、チェック用アドレスとして予め定められたアドレスに所定のデータを書き込み、それを読み出してOK/NGを判定する方式が記載されている。つまり、メモリアクセスが成功する上限値および下限値を取得し、そのセンター値を最大マージンが確保できる値として使用するものである。
また、特許文献2は、メモリアクセスが成功したか否かの判定に、単純に期待値とリードした値との比較をするのではなく、ライト時にデータにパリティを付加し、リードしたデータとのパリティ比較を使用する方式が開示されている。
また、特許文献3は、タイミング調整すなわちアクセスタイミング設定値を変更しメモリへのアクセスを試行する期間を、画面表示を行わないブランキング期間とする方式が開示されている。
また、特許文献4は、プロセッサからのデータライト、メモリからのデータリード、期待値比較を行った結果によりクロックスキューを変更する方式が開示されている。
特開2001−350668号公報
特開2003−216479号公報
特開2005−141725号公報
特開平11−316619号公報
しかしながら、上述した従来方式は、メモリバスの負荷状態を考慮した方式ではない。一般に、外部メモリへのアクセスタイミングは、メモリコントローラ−外部メモリ間のバスの転送量およびビットトグル率により変化する。特に、メモリコントローラ−外部メモリ間のバスの転送量が多いほど電源ドロップやノイズが、またビットトグル率が高くなるほどビット間のクロストークやノイズが増加し、外部メモリへのアクセスタイミングは厳しくなる。
すなわち、メモリコントローラ−外部メモリ間のバスにおけるデータ転送量、ビットトグル率により、アクセスタイミングのウィンドウ幅は変化する。
よって、実際には、メモリバスにおけるデータ転送量およびビットトグル率を変化させてウィンドウ幅を最適化することが重要である。しかし、従来の方式では、メモリコントローラは外部メモリ1つ1つに対して個別にアクセスすることができない。そのため、タイミング調整対象の外部メモリに対してデータを送受信しアクセスタイミングを調整している間に、その他の外部メモリに対し独立にアクセスするということができない。従って、実動作時のメモリコントローラ−外部メモリ間のバスにおけるデータ転送量、ビットトグル率を具体的に反映したアクセスタイミング調整ができない。
特に、メモリコントローラ−外部メモリ間のバスの転送量が多くかつビットトグル率の高い高負荷状態を再現して、アクセスタイミングを調整する必要性は高い。例えば、高負荷状態は、通常はセットの実アプリ動作状態で実現される。しかしこの場合、その他の外部メモリに対しアプリケーションを動作させようにも、特定の外部メモリに対してタイミング調整している時に、アプリケーションソフトを通常動作時とは異なる使用メモリ容量、アドレスマッピングに切り替えて使用することは容易ではない。
よって、高負荷状態でのアクセスタイミング最適化が出来ない上、システムLSI、外部メモリ、ボードの出来により、それぞれの特性の組み合わせによっては実アプリ動作時に動作不安定となる可能性がある。
画像表示専用のLSIであれば、画面に表示しない期間、すなわちブランキング期間を使用してアクセスタイミング調整を行うことができる。この間に、メモリアクセスができなくなったとしても画面表示開始までに標準設定値にアクセスタイミング設定を戻すことにより、システムを破綻させずにタイミング調整を継続できる。
しかしデジタルTVやDVDレコーダなどのデジタルAV機器のシステムLSIでは、内蔵マイコンや他の内蔵機能ブロックが常にメモリを使用している。このため、アクセスタイミング調整の同時実行により外部メモリにアクセスできなくなった時点でシステムが破綻し、動作が停止してしまう。これにより、実アプリ動作及びタイミング調整とも継続不可能となってしまう。そのため、従来は、動作停止しないようCPUのスタックを含むワーク領域を外部SRAM空間に取り、かつ、外部メモリへのアクセスが正しくできなくなりデータが化けても、動作が停止することのないDMA転送と言った簡易な検査パターンにより低負荷な状態でのアクセスタイミング調整を実施し、求めた最適値で外部メモリを使用するしか方法が無かった。
しかし、例えば、図14に記載された、タイミング調整時と実アプリ動作時とのウィンドウ幅の比較図のように、タイミング調整時、すなわちメモリアクセスの低負荷状態で外部メモリアクセスタイミングを最適化しても、実アプリ動作時、すなわちシステムが高負荷の状態になると、低負荷状態での動作範囲から上限側、下限側のウィンドウ幅がアンバランスに削られることで大きく最適値がずれてしまうことがある。その場合、実アプリ動作時のウィンドウ幅にタイミング調整時の最適値が入らなくなり、メモリアクセスが正常動作しなくなるという問題が発生する可能性がある。逆に、低負荷なタイミング調整時のウィンドウ幅は高負荷時のウィンドウ幅よりも一般的に広く、高負荷時の最適値が低負荷時のウィンドウに入らないということはまず起こらない。
本発明は、上記の課題に鑑みてなされたものであり、複数の外部メモリのそれぞれに対して個別にアクセスタイミング調整できるメモリアクセスタイミング調整装置およびメモリアクセスタイミング調整方法を提供することを第1の目的とする。さらに、外部メモリとメモリコントローラとの間のデータ転送量の多い高負荷状態においても、メモリアクセスが安定化するメモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法を提供することを目的とする。
上記目的を達成するために、本発明に係るメモリアクセスタイミング調整装置は、複数の外部メモリへアクセスするタイミングを調整するメモリアクセスタイミング調整装置であって、前記複数の外部メモリのそれぞれに対し個別に接続され、メモリアクセスにおけるデータの送受信を行う複数の個別メモリインターフェイスと、前記複数の外部メモリのうち選択された外部メモリに対して当該選択された外部メモリに接続された個別メモリインターフェイスからデータを複数回送受信させることによりアクセスタイミングを調整する制御手段とを備えることを特徴とする。
これにより、複数の外部メモリに対して個別に設けられた個別メモリインターフェイスが外部メモリ1つ1つに対して個別にアクセスすることができる。よって、タイミング調整対象の外部メモリに対してデータを送受信しアクセスタイミングを調整している間に、その他の外部メモリに独立にデータアクセスができ、メモリバスのデータ転送量を任意に変化させることができる。従って、実動作時のメモリバスにおけるデータ転送量を反映したアクセスタイミング調整ができる。
また、前記複数の外部メモリは、第1のクロック信号に同期して入出力動作するクロック同期型メモリであり、前記複数の個別メモリインターフェイスのそれぞれは、前記第1のクロック信号を遅延させた第2のクロック信号を使用してデータの入出力動作をし、前記アクセスタイミングは、前記第1のクロック信号と前記第2のクロック信号との位相差であり、前記制御手段は、前記個別メモリインターフェイスにおけるアクセスタイミングを順次変更させながらアクセスが成功したか否かをその都度判定し、当該アクセスが成功した前記位相差の範囲内に最適なアクセスタイミングを調整することが好ましい。
これにより、データアクセスが成功する位相差の最大範囲を把握できるので、適応性の高いアクセスタイミングの調整が実現される。
また、前記メモリアクセスタイミング調整装置は、さらに、特定のパターンデータを発生するパターン発生回路を備え、前記制御手段は、前記選択された外部メモリ以外の外部メモリに接続された個別メモリインターフェイスから前記選択された外部メモリ以外の外部メモリへ前記特定のパターンデータを送信させることにより、前記複数の外部メモリに負荷をかけることが好ましい。
これにより、調整対象外部メモリ以外の外部メモリに対しても負荷の高いパターンでアクセスを行うことが可能となる。よって、メモリバスの負荷が実アプリ動作時の負荷に近い状態で動作させることができ、メモリアクセス頻度の低い低負荷時で取得したメモリアクセスタイミングの最適値と比較して、より高負荷状態でも安定した設定値を得ることが可能となる。
また、前記メモリアクセスタイミング調整装置は、さらに、前記選択された外部メモリを示すビットを保持するメモリ選択レジスタと、前記複数の個別メモリインターフェイスに接続され、前記選択された外部メモリを示すビットに対応する外部メモリのアドレスを出力するアドレス変換回路とを備えてもよい。
もしくは、前記メモリアクセスタイミング調整装置は、さらに、前記選択された外部メモリを示すビットを保持するメモリ選択レジスタと、前記複数の個別メモリインターフェイスに接続され、前記選択された外部メモリを示すビットにより、前記選択された外部メモリに接続された個別メモリインターフェイスを選択するセレクタ回路とを備えてもよい。
これにより、メモリ選択レジスタが設けられることで、外部メモリ構成の変化やメモリインターフェイス周辺の接続変更があっても、タイミング調整プログラムがメモリの実アドレス配置に左右されなくなる。よって、制御手段が実行するアクセスタイミング調整プログラムを変更しないでよくなるため、プログラム開発工数が削減される。
また、前記メモリアクセスタイミング調整装置は、さらに、前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する前記最適なアクセスタイミングを記憶する不揮発性メモリを備え、前記複数の個別メモリインターフェイスのそれぞれは、前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するアクセスタイミング個別設定レジスタを備え、前記複数の個別メモリインターフェイスのそれぞれは、前記タイミング個別設定レジスタに記憶された前記最適なアクセスタイミングを、前記選択された外部メモリとのデータアクセスに使用してもよい。
これにより、通常起動時に毎回アクセスタイミング調整を実行する必要がなくなり、起動時間の短縮が図られる。
また、前記メモリアクセスタイミング調整装置は、さらに、前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する前記最適なアクセスタイミングと、システム起動の回数とを記憶する不揮発性メモリを備え、前記複数の個別メモリインターフェイスのそれぞれは、前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するタイミング個別設定レジスタを備え、前記制御手段は、所定回数を起動するごとに、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込んでもよい。
これにより、通常起動時に毎回アクセスタイミング調整を実行する必要がなくなるとともに、定期的にアクセスタイミング調整が更新されるので、起動時間の短縮が図られるとともに、システム構成や状態の変化に対応した外部メモリへのアクセスが実現できる。
また、前記メモリアクセスタイミング調整装置は、さらに、前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する前記最適なアクセスタイミングと、当該最適なアクセスタイミングが有効か否かを示すタイミング設定値フラグとを記憶する不揮発性メモリを備え、前記複数の個別メモリインターフェイスのそれぞれは、前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するタイミング個別設定レジスタを備え、前記制御手段は、システム起動時に、前記タイミング設定値フラグが無効の場合は、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込んでもよい。
これにより、予めタイミング設定値フラグを無効にしておけば、次回システム起動時に自動的にアクセスタイミング調整が更新されるので、システム構成や状態の変化に対応した外部メモリへの最適なアクセスが実行できる。
また、前記メモリアクセスタイミング調整装置は、さらに、前記複数の外部メモリの構成を示す信号を入力するためのメモリ情報入力端子を備え、前記複数の外部メモリの構成を示す信号に従い、前記複数の外部メモリに割り当てられたアドレス空間を変更、追加、又は削除してもよい。
これにより、外部メモリのサイズ、接続状況が把握されるので、外部メモリの状態に合わせたアクセスタイミング調整が実行できる。
また、前記制御手段は、前記アクセスタイミングの調整によって得られたアクセスタイミングの最適範囲が、所定値以下であった場合には警告メッセージを出力してもよい。
これにより、アクセスタイミング調整結果から異常状態を検知した場合に警告メッセージを出力することで、ユーザに異常状態を通知することが可能となる。
また、本発明は、このような特徴的な手段を備えるメモリアクセスタイミング調整装置として実現することができるだけでなく、メモリアクセスタイミング調整装置に含まれる特徴的な手段をステップとするメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法として実現することができる。
本発明のメモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法によれば、複数の外部メモリのそれぞれに対して個別にメモリインターフェイスが設けられていることにより、複数の外部メモリのそれぞれに対して個別にアクセスタイミング調整できるので、実動作時のメモリバスにおけるデータ転送量を反映したアクセスタイミング調整ができる。特に、メモリバスのデータ転送量が多い高負荷状態に近い状態でアクセスタイミング調整ができるので、高負荷時のメモリアクセスが安定化するメモリアクセスタイミング調整を実現できる。
1、4、5、6、7a、7b、7c、8 メモリアクセスタイミング調整装置
1A、4A、5A、6A、7A、8A、900 システムLSI
2 複数の外部メモリ
2A、2B、2C、2D、910A、910B、910C、910D 外部メモリ
3、31、32、33 不揮発性メモリ
10、40、50、60、70、80、901 プロセッサ
11、41、51、61、71、81、902 外部バスコントローラ
12、42、52、62、72、82 内蔵SRAM
13、43、53、63、73、83、903 メモリコントローラ
32A タイミング設定値フラグ
33A 起動回数カウント値
84 メモリ情報入力端子
131、431、531、631、731、831 アクセス選択回路
132、432、532、632、732、832、904 メモリインターフェイス
132A、132B、132C、132D、432A、432B、432C、432D、532A、532B、532C、532D、632A、632B、632C、632D、732A、732B、732C、732D、832A、832B、832C、832D
個別メモリインターフェイス
431A、531A メモリ選択レジスタ
431B アドレス変換回路
531B セレクタ回路
633 パターン発生回路
732A1、732B1、732C1、732D1 タイミング個別設定レジスタ
920 外部不揮発性メモリ
930 外部SRAM
1A、4A、5A、6A、7A、8A、900 システムLSI
2 複数の外部メモリ
2A、2B、2C、2D、910A、910B、910C、910D 外部メモリ
3、31、32、33 不揮発性メモリ
10、40、50、60、70、80、901 プロセッサ
11、41、51、61、71、81、902 外部バスコントローラ
12、42、52、62、72、82 内蔵SRAM
13、43、53、63、73、83、903 メモリコントローラ
32A タイミング設定値フラグ
33A 起動回数カウント値
84 メモリ情報入力端子
131、431、531、631、731、831 アクセス選択回路
132、432、532、632、732、832、904 メモリインターフェイス
132A、132B、132C、132D、432A、432B、432C、432D、532A、532B、532C、532D、632A、632B、632C、632D、732A、732B、732C、732D、832A、832B、832C、832D
個別メモリインターフェイス
431A、531A メモリ選択レジスタ
431B アドレス変換回路
531B セレクタ回路
633 パターン発生回路
732A1、732B1、732C1、732D1 タイミング個別設定レジスタ
920 外部不揮発性メモリ
930 外部SRAM
(実施の形態1)
本実施の形態1におけるメモリアクセスタイミング調整装置は、複数の外部メモリのそれぞれに対し個別に接続された複数の個別メモリインターフェイスと、選択された外部メモリに対して当該選択された外部メモリに接続された個別メモリインターフェイスからデータを複数回送受信させることによりアクセスタイミングを調整する制御手段とを備える。これにより、選択された外部メモリに対してデータを送受信しアクセスタイミングを調整している間に、その他の外部メモリに独立にデータアクセスができ、メモリバスのデータ転送量を任意に変化させることができる。従って、実動作時のメモリバスにおけるデータ転送量を反映したアクセスタイミング調整ができる。
本実施の形態1におけるメモリアクセスタイミング調整装置は、複数の外部メモリのそれぞれに対し個別に接続された複数の個別メモリインターフェイスと、選択された外部メモリに対して当該選択された外部メモリに接続された個別メモリインターフェイスからデータを複数回送受信させることによりアクセスタイミングを調整する制御手段とを備える。これにより、選択された外部メモリに対してデータを送受信しアクセスタイミングを調整している間に、その他の外部メモリに独立にデータアクセスができ、メモリバスのデータ転送量を任意に変化させることができる。従って、実動作時のメモリバスにおけるデータ転送量を反映したアクセスタイミング調整ができる。
以下、本発明の実施の形態1におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
図1は、本発明の実施の形態1におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置1と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置1は、システムLSI1Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
システムLSI1Aは、プロセッサ10と、外部バスコントローラ11と、内蔵SRAM12と、メモリコントローラ13とを備える。
プロセッサ10は、外部メモリとのアクセスタイミングを調整する制御手段としての機能を有する。
不揮発性メモリ3は、外部バスコントローラ11を介しプロセッサ10と接続される。
内蔵SRAM12は、外部バスコントローラ11を介しプロセッサ10に接続され、プロセッサ10の作業領域としての機能を有する。
メモリコントローラ13は、プロセッサ10と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路131とメモリインターフェイス132とを備える。
メモリインターフェイス132は、個別メモリインターフェイス132A、132B、132C及び132Dを内蔵し、外部メモリ2A〜2Dはそれぞれ対応する個別メモリインターフェイス132A〜132Dを介してアクセス選択回路131に接続される。
以上のような構成を有する本実施の形態1のメモリアクセスタイミング調整システムの調整動作について、以下説明する。
まず、プロセッサ10は、起動時に外部バスコントローラ11を介して不揮発性メモリ3からブートコードを読み出し、システムLSI1Aの各種設定を行った後、同じく不揮発性メモリ3からアクセスタイミング調整プログラムを読み出す。アクセスタイミング調整プログラムには、複数ある外部メモリ2A〜2Dのそれぞれにアクセスする際のメモリアドレスが記載されている。
次に、アクセス選択回路131は、プロセッサ10が要求するメモリアドレスに従って、現在タイミング調整すべき外部メモリ(図1では外部メモリ2B)を選択する。
図1における外部メモリ2A〜2Dとしては、例えば、DDR SDRAM(Double Data Rate Syncronous DRAM)が使用される。そして、メモリコントローラ13から外部メモリ2A〜2Dへ、あるいは外部メモリ2A〜2Dからメモリコントローラ13へデータを転送するタイミングを知らせるために、第1クロック信号に同期したデータストローブ信号が使用されている。外部メモリ2A〜2Dからデータを読み出す場合、外部メモリ2A〜2Dからはデータがデータストローブと同位相で出力されるため、データを確実に受け取るには、例えば、メモリコントローラ13は、まず、入力されたデータストローブ信号に対して位相を90度遅らせたタイミングのデータストローブ信号を生成する。そして、当該データストローブ信号の立ち上がり時及び立ち下がり時にデータを読み込むことになっている。しかし、電源変動やノイズなどの外的要因により、受信したデータストローブ信号に波形歪みが生じ、データストローブ信号のエッジ検出時に位相のずれが生じる。これに対応するため、メモリコントローラ13は、データ読み込みのための基準位相差である90度に対し、所定の位相範囲であるウィンドウ幅を確保する必要がある。このウィンドウ幅を、例えば、180度を128分割したものを1ビットで調整できる位相差として表現し、アクセスタイミング調整用レジスタに設定した位相差に従いアクセスタイミングを変化させる。
上記方法により、プロセッサ10は、外部メモリ2Bに対しアクセスタイミング設定を変化させながら、メモリアクセスが成功する位相差範囲であるウィンドウ幅を検査する。検査結果は内蔵SRAM12に逐次記録していき、検査完了後、ウィンドウ幅から最適なアクセスタイミング設定値を決定する。
そして、プロセッサ10は、システムLSI1Aに接続された外部メモリ2A〜2D全てに対し、この最適なアクセスタイミングの決定プロセスを、調整対象を切り替えながら順に実行する。
図2は、本発明の実施の形態1にかかるメモリアクセスタイミング調整装置によるウィンドウ幅検査結果と従来技術によるウィンドウ幅検査結果との比較図である。同図において、横軸はウィンドウ幅を位相差で表している。また上から順に、本発明の実施の形態1にかかるメモリアクセスタイミング調整装置によって検査された外部メモリ2A、2B、2C及び2Dについてのウィンドウ幅、及び、従来技術により検査された複数の外部メモリ2のウィンドウ幅である。
本発明では、個別メモリインターフェイス132A〜132Dが各外部メモリ2A〜2Dに対し個別に設けられているので、各外部メモリについて独立したウィンドウ幅が検査される。
一方、従来技術では、複数の外部メモリに対し、共通した1つのメモリインターフェイスのみが設けられている。このため、各外部メモリについて独立したウィンドウ幅は検査されず、全ての外部メモリに対して同一のアクセスタイミング設定値で同時にウィンドウ幅が検査される。従って、従来技術により得られたウィンドウ幅は外部メモリ2A〜2Dの全てが正常動作する範囲となるため非常に狭くなり、実動作時のメモリバスの転送量の変化に対応したウィンドウ幅の変化に追従できない。
これに対し、本発明では、図2に記載された外部メモリ2A〜2Dのそれぞれに対するウィンドウ幅を基に、実動作時のメモリバスの転送量の変化を想定して多様なウィンドウ幅の設定が可能となる。
なお、上述した調整動作は、システムLSI1Aの起動時の動作についての説明であるが、アプリプログラム実行状態から何らかの処理切り替え指示によりアクセスタイミング調整プログラム実行に移行する場合も考えられる。その場合はアクセスタイミング調整プログラム実行開始以降に関して上記説明と同様となる。
また、図1に記載されたメモリアクセスタイミング調整装置1の構成要素であるアクセス選択回路131は、例えば、以下、図3または図4に記載されたような機能構成をとってもよい。
図3は、本発明の実施の形態1の第1の変形例を示すメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。
同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置4と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置4は、システムLSI4Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
システムLSI4Aは、プロセッサ40と、外部バスコントローラ41と、内蔵SRAM42と、メモリコントローラ43とを備える。
メモリコントローラ43は、プロセッサ40と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路431とメモリインターフェイス432とを備える。
メモリインターフェイス432は、個別メモリインターフェイス432A、432B、432C及び432Dを内蔵し、外部メモリ2A〜2Dはそれぞれ対応する個別メモリインターフェイス432A〜432Dを介してアクセス選択回路431に接続される。
同図におけるメモリアクセスタイミング調整システムは、図1に記載されたメモリアクセスタイミング調整システムと比較し、アクセス選択回路431の機能構成が具体化されている点のみが異なり、その他の構成要素については機能的に同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
アクセス選択回路431は、メモリ選択レジスタ431Aとアドレス変換回路431Bとを備える。
図3に記載されたメモリアクセス調整システムでは、アクセス選択回路431は、プロセッサ40がメモリ選択レジスタ431Aに設定した調整対象とする外部メモリを選択するビットを読み、タイミング調整すべき外部メモリを選択する。
また、図4は、本発明の実施の形態1の第2の変形例を示すメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。
同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置5と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置5は、システムLSI5Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
システムLSI5Aは、プロセッサ50と、外部バスコントローラ51と、内蔵SRAM52と、メモリコントローラ53とを備える。
メモリコントローラ53は、プロセッサ50と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路531とメモリインターフェイス532とを備える。
メモリインターフェイス532は、個別メモリインターフェイス532A、532B、532C及び532Dを内蔵し、外部メモリ2A〜2Dはそれぞれ対応する個別メモリインターフェイス532A〜532Dを介してアクセス選択回路531に接続される。
同図におけるメモリアクセスタイミング調整システムは、図1に記載されたメモリアクセスタイミング調整システムと比較し、アクセス選択回路531の機能構成が具体化されている点のみが異なり、その他の構成要素については機能的に同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
アクセス選択回路531は、メモリ選択レジスタ531Aとセレクタ回路531Bとを備える。
図4に記載されたメモリアクセス調整システムでは、アクセス選択回路531は、メモリ選択レジスタ531Aに設定された値を読み、その値によりセレクタ回路531Bが信号の接続を切り換え、プロセッサ50が調整対象外部メモリに直接アクセスできるようになっている。
図3又は図4に記載されたメモリアクセスタイミング調整システムでは、メモリ選択レジスタ431A又は531Aが設けられている。これにより、プロセッサ40又は50が実行するアクセスタイミング調整プログラムは、外部メモリ構成の変化やメモリコントローラ内部の接続変更があっても変更無く使用されることが可能となる。さらには異なるシステムLSIであってもメモリ選択レジスタ仕様を統一していれば、全く同じアクセスタイミングプログラムが使用されることが可能であるので、プログラム開発工数が削減される。
以上のように、本発明の実施の形態1にかかるメモリアクセスタイミング調整システムによれば、メモリコントローラはアクセス選択回路および個別メモリインターフェイスにより、外部メモリ1つ1つを独立にアクセスすることができる。よって、外部メモリの各々に対して、最適なアクセスタイミングが得られ、外部メモリ構成の変化やメモリコントローラ内部の接続変更があっても個々の最適値には有用性がある。また、アプリプログラムが調査対象の外部メモリ以外の外部メモリ容量で動作するのであれば、調査対象となる外部メモリをアクセスタイミング調整しながらアプリプログラムで使用するメモリ領域が確保できるため、安定なアプリケーションの動作が実現される。
なお、図1、図3及び図4に記載されたシステムでは、システムLSI1A、4A及び5Aに接続された外部メモリおよび個別メモリインターフェイスの個数はそれぞれ4個であるが、本発明は2個以上であればよく、同様の効果を奏する。
また、不揮発性メモリ3は各システムLSIの内部にあってもよく、逆に内蔵SRAMは各システムLSIの外部のSRAMであってもよい。
また、アクセスタイミング調整プログラムおよびアプリプログラム等については、不揮発性メモリ3に書き込んでおく必要はなく、不揮発性メモリ3とは別に用意したRAMにネットワーク経由でダウンロードしたものを各プロセッサから読み込むようにしてもよい。
(実施の形態2)
本実施の形態2におけるメモリアクセスタイミング調整装置は、さらに、特定のパターンデータを発生するパターン発生回路と、選択された外部メモリ以外の外部メモリに接続された個別メモリインターフェイスから選択された外部メモリ以外の外部メモリへ特定のパターンデータを送信させる制御手段とを備える。これにより、複数の外部メモリに負荷をかけた実アプリ動作時に近い状態が再現されるので、メモリアクセス頻度の低い低負荷時で取得したメモリアクセスタイミングと比較して、より高負荷状態でも安定したアクセスタイミングの設定値を得ることが可能となる。
本実施の形態2におけるメモリアクセスタイミング調整装置は、さらに、特定のパターンデータを発生するパターン発生回路と、選択された外部メモリ以外の外部メモリに接続された個別メモリインターフェイスから選択された外部メモリ以外の外部メモリへ特定のパターンデータを送信させる制御手段とを備える。これにより、複数の外部メモリに負荷をかけた実アプリ動作時に近い状態が再現されるので、メモリアクセス頻度の低い低負荷時で取得したメモリアクセスタイミングと比較して、より高負荷状態でも安定したアクセスタイミングの設定値を得ることが可能となる。
以下、本発明の実施の形態2におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
図5は、本発明の実施の形態2におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。
同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置6と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置6は、システムLSI6Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
システムLSI6Aは、プロセッサ60と、外部バスコントローラ61と、内蔵SRAM62と、メモリコントローラ63とを備える。
プロセッサ60は、外部メモリとのアクセスタイミングを調整する制御手段としての機能を有する。
不揮発性メモリ3は、外部バスコントローラ61を介しプロセッサ60と接続される。
内蔵SRAM62は、外部バスコントローラ61を介しプロセッサ60に接続され、プロセッサ60の作業領域としての機能を有する。
メモリコントローラ63は、プロセッサ60と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路631と、メモリインターフェイス632と、パターン発生回路633とを備える。
メモリインターフェイス632は、個別メモリインターフェイス632A、632B、632C及び632Dを内蔵し、外部メモリ2A〜2Dはそれぞれ対応する個別メモリインターフェイス632A〜632Dを介してアクセス選択回路631に接続される。
パターン発生回路633は、アクセス選択回路631に接続される。
図5におけるメモリアクセスタイミング調整システムは、図1に記載された実施の形態1に係るメモリアクセスタイミング調整システムと比較し、メモリコントローラ63の構成及び機能が異なり、その他の構成要素については機能的に同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
図5において、プロセッサ60から調整対象である外部メモリ2Bに対しアクセスタイミング調整を実施する場合、アクセス選択回路631は、まず、メモリコントローラ63内のパターン発生回路633から発生した特定パターンデータを、外部メモリ2B以外の外部メモリ2A、2C及び2Dに対し、外部メモリ2Bのアクセスタイミング調整が完了するまで個別メモリインターフェイス632A、632C、632Dは特定パターンによる外部メモリアクセスを実行し続ける。
ここで、パターン発生回路633が発生する特定パターンデータについて図6を用いて説明する。図6は、個別メモリインターフェイスまたは外部メモリが特定パターンデータを読み込む場合の動作タイミングチャートである。
調整対象である外部メモリ2Bに対しアクセスタイミング調整を実施している間、パターン発生回路633から発生した特定パターンデータが外部メモリ2A、2C及び2Dに読み込まれた後読み出される。その後、それぞれの外部メモリに接続された個別メモリインターフェイス632A、632C及び632Dで当該特定パターンデータが読み込まれる。同図において、上部に記載されたレジスタは受信したデータストローブ信号の立ち上がり時において4ビットデータを順次保持し、下部に記載されたレジスタは受信したデータストローブ信号の立ち下がり時において4ビットデータを順次保持する。
例えば、4ビットデータ列が互いに反転関係にある“A”(1010)と“5”(0101)とで構成された“A5A5A5・・・”である場合、4ビットデータはデータストローブ信号の変化に従い、上部レジスタと下部レジスタに交互に保持されるので、上部レジスタには“AAA・・”の順でデータが保持され、下部レジスタには“555・・”の順で保持される。従って、4ビットデータ列“A5A5A5・・・”は、上部レジスタ及び下部レジスタにとって、データ変化のない、つまり、ビットトグル率の低いパターンデータであるが、外部メモリバスにとってはデータストローブのエッジ毎にデータが変化するビットトグル率の高いパターンとなる。
一方、4ビットデータ列が“A55AA55A・・”である場合、4ビットデータはデータストローブ信号の変化に従い、上部レジスタと下部レジスタに交互に保持されるので、上部レジスタには“A5A5・・”の順でデータが保持され、下部レジスタには“5A5A5・・”の順で保持される。従って、4ビットデータ列“A55AA55A・・”は、上部レジスタ及び下部レジスタにとって、データ変化の大きい、つまり、ビットトグル率の高いパターンデータであるが、外部メモリバスにとっては、データストローブのエッジ2回毎にビットトグルするパターンとなる。これらのパターンを組み合わせることで内部バス、外部メモリバス共にビットトグル率の高いアクセスが実現できる。
再び図5に戻ってアクセスタイミング調整の実施について説明する。調整対象である外部メモリ2Bのタイミング調整が完了すると、アクセス選択回路631は、次に、別の外部メモリのタイミング調整を実行する。例えば、プロセッサ60からの指示で調整対象外部メモリが外部メモリ2Cになった場合は、アクセス選択回路631は、パターン発生回路633で発生したアクセスパターンを外部メモリ2A、2B及び2Dに対して実行する。そして、他の外部メモリがタイミング調整対象メモリになった場合も、同様に調整対象外部メモリ以外の外部メモリに対して同様に実行する。
これにより、実施の形態1での、調整対象である外部メモリ2Bへのアクセスしか発生していない状態から、外部メモリ2B以外の外部メモリ2A、2C及び2Dに対しても、上述したような全ビットをクロック毎にトグルさせた高負荷のパターンデータをアクセスさせることができる。よって、実アプリ動作時に近い、メモリインターフェイス全体が高負荷で動作する状態が実現される。すなわち、実アプリ動作時における最適なメモリアクセスタイミングに近い値がアクセスタイミング調整で得られるので、実アプリ動作時のメモリアクセス安定度が向上する。
(実施の形態3)
本実施の形態3におけるメモリアクセスタイミング調整装置は、アクセスタイミングの調整によって得られた最適なアクセスタイミングを記憶する不揮発性メモリを備え、システム起動時に、個別メモリインターフェイスのそれぞれが有するアクセスタイミング個別設定レジスタに最適なアクセスタイミングを読み出し、これを選択された外部メモリとのデータアクセスに使用する。これにより、通常起動時に毎回アクセスタイミング調整を実行する必要がなくなり、起動時間の短縮が図られる。
本実施の形態3におけるメモリアクセスタイミング調整装置は、アクセスタイミングの調整によって得られた最適なアクセスタイミングを記憶する不揮発性メモリを備え、システム起動時に、個別メモリインターフェイスのそれぞれが有するアクセスタイミング個別設定レジスタに最適なアクセスタイミングを読み出し、これを選択された外部メモリとのデータアクセスに使用する。これにより、通常起動時に毎回アクセスタイミング調整を実行する必要がなくなり、起動時間の短縮が図られる。
以下、本発明の実施の形態3におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
図7は、本発明の実施の形態3におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置7aと複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置7aは、システムLSI7Aと、不揮発性メモリ31とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
システムLSI7Aは、プロセッサ70と、外部バスコントローラ71と、内蔵SRAM72と、メモリコントローラ73とを備える。
プロセッサ70は、外部メモリとのアクセスタイミングを調整する制御手段としての機能を有する。
不揮発性メモリ31は、外部バスコントローラ71を介しプロセッサ70と接続される。
内蔵SRAM72は、外部バスコントローラ71を介しプロセッサ70に接続され、プロセッサ70の作業領域としての機能を有する。
メモリコントローラ73は、プロセッサ70と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路731と、メモリインターフェイス732とを備える。
メモリインターフェイス732は、個別メモリインターフェイス732A、732B、732C及び732Dを内蔵し、外部メモリ2A〜2Dはそれぞれ対応する個別メモリインターフェイス732A〜732Dを介してアクセス選択回路731に接続される。
また、個別メモリインターフェイス732A、732B、732C及び732Dは、それぞれ、タイミング個別設定レジスタ732A1、732B1、732C1及び732D1を備える。
図7におけるメモリアクセスタイミング調整システムは、図1に記載された実施の形態1に係るメモリアクセスタイミング調整システムと比較し、メモリコントローラ73の構成及び機能が異なり、その他の構成要素については機能的に同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
図7において、システムLSI7Aは、不揮発性メモリ31からアクセスタイミング調整プログラムを読み出し、アクセスタイミング調整プログラムを実行する。アクセスタイミング調整を実施した後、プロセッサ70は、個別メモリインターフェイス732A〜732D内のタイミング個別設定レジスタ732A1〜732D1に、それぞれの外部メモリに対応した最適なアクセスタイミングであるタイミング最適値を設定する。また同時に、不揮発性メモリ31に対し、それらのタイミング最適値を書き込む。
また、同時に、アクセスタイミング調整プログラムをタイミング最適値設定プログラムに置き換える。
次回システム起動時には、プロセッサ70はタイミング最適値設定プログラムを読み込み、当該プログラムに従って不揮発性メモリ31に書き込まれているタイミング最適値を、タイミング個別設定レジスタ732A1〜732D1に設定する。
これにより、アクセスタイミング調整によって得られたタイミング最適値が不揮発性メモリに格納されるので、通常起動時に毎回アクセスタイミング調整がなされる必要がなくなり、起動時間の短縮が図られる。
なお、上述した動作説明では、プロセッサ70が、最初のアクセスタイミング調整実行後に不揮発性メモリ31にタイミング最適値を書き込み、かつアクセスタイミング調整プログラムをタイミング最適値設定プログラムに書き換えると説明したが、必ずしもプロセッサ70が書き換える必要はない。アクセスタイミング調整プログラムが書き込まれた不揮発性メモリがシステムLSI7Aに接続され、プロセッサが当該プログラムを実行しタイミング最適値を取得した後、工場出荷時に、アクセスタイミング調整プログラムが書き込まれた不揮発性メモリを、タイミング最適値およびタイミング最適値設定プログラムが書き込まれた不揮発性メモリに置換えてもよい。
また、タイミング最適値のみがブートコードを含む不揮発性メモリ31とは異なる不揮発性メモリに書き込まれ、ブートコードを含む不揮発性メモリ31の内容が出荷時に書き換えられてもよい。
これにより、アクセスタイミング調整は、ユーザへのシステムリリース後に行う必要のないシステムであれば、工場出荷時のみ実行されればよく、ユーザ起動時にアクセスタイミング再調整の必要がなくなるため、起動時間の短縮が図られる。
(実施の形態4)
本実施の形態4におけるメモリアクセスタイミング調整装置は、アクセスタイミングの調整によって得られた最適なアクセスタイミングと、最適なアクセスタイミングが有効か否かを示すタイミング設定値フラグとを記憶する不揮発性メモリと、システム起動時にタイミング設定値フラグが無効の場合は、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを不揮発性メモリに書き込む制御手段とを備える。これにより、予めタイミング設定値フラグを無効にしておけば、次回起動時に自動的にアクセスタイミング調整が更新されるので、システム構成や状態の変化に対応した外部メモリへの最適なアクセスが実行できる。
本実施の形態4におけるメモリアクセスタイミング調整装置は、アクセスタイミングの調整によって得られた最適なアクセスタイミングと、最適なアクセスタイミングが有効か否かを示すタイミング設定値フラグとを記憶する不揮発性メモリと、システム起動時にタイミング設定値フラグが無効の場合は、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを不揮発性メモリに書き込む制御手段とを備える。これにより、予めタイミング設定値フラグを無効にしておけば、次回起動時に自動的にアクセスタイミング調整が更新されるので、システム構成や状態の変化に対応した外部メモリへの最適なアクセスが実行できる。
以下、本発明の実施の形態4におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
図8は、本発明の実施の形態4におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置7bと複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置7bは、システムLSI7Aと、不揮発性メモリ32とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
図8におけるメモリアクセスタイミング調整システムは、図7に記載された実施の形態3に係るメモリアクセスタイミング調整システムと比較し、不揮発性メモリ32の機能及び構成のみが異なり、その他の構成要素については同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
不揮発性メモリ32は、外部バスコントローラ71を介しプロセッサ70と接続される。
図8において、外部メモリ2A、2B、2C及び2Dのそれぞれについて求めた最適なアクセスタイミングであるアクセスタイミング最適値は、プロセッサ70により個別メモリインターフェイス732A〜732D内のタイミング個別設定レジスタ732A1〜732D1に設定される。
同時に、プロセッサ70は、外部メモリ毎に求めたアクセスタイミング最適値を不揮発性メモリ32の特定の領域に書込みを行う。
さらに、プロセッサ70は、アクセスタイミング最適値を不揮発性メモリ32に書き込むと同時に、あるいは別のタイミングで不揮発性メモリ32に書き込んだアクセスタイミング設定値が有効であるか否かを示すタイミング設定値フラグ32Aを不揮発性メモリ32上の特定領域に書き込む。
その後、システムのリセット、あるいは電源再投入によりシステムLSI7Aの再起動が発生した場合、プロセッサ70は不揮発性メモリ32からブートコードを読み取りシステム起動している最中に、上記のタイミング設定値フラグ32Aをチェックし、有効を示していれば不揮発性メモリ32に書き込まれたアクセスタイミング最適値を個別メモリインターフェイス732A〜732D内のタイミング個別設定レジスタ732A1〜732D1に設定する。
また、反対に、タイミング設定値フラグ32Aが無効を示していれば、プロセッサ70はアクセスタイミング調整プログラムを起動し、再度アクセスタイミング調整を行って求めたアクセスタイミング最適値をタイミング個別設定レジスタ732A1〜732D1に設定する。
これにより、システムリセットあるいは電源投入毎にアクセスタイミング調整が実行される必要がなくなり、アクセスタイミング調整が必要であると判断された場合のみアクセスタイミング調整が実行されるため、システム起動時間の短縮が図られる。
ここで、タイミング設定値フラグ32Aは、プロセッサ70が必ずしも書き換える必要はなく、システムによっては出荷時に固定値が書込まれており、毎回起動時にアクセスタイミング調整が実行されたり、常に不揮発性メモリ32に書き込まれたタイミング設定値が最適値として使用されるようにすることも可能である。
また、出荷時には無効フラグとしておき、ユーザ側でのシステム起動時の初回のアクセスタイミング調整が完了した後は、有効フラグに書き換えられることで、次回のシステム起動時からは不揮発性メモリ32のタイミング最適値が使用されるようにもできる。
さらに、図9に記載された本発明の実施の形態4におけるメモリアクセスタイミング調整装置の別の実現例について以下説明する。
図9は、本発明の実施の形態4の変形例を示すメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置7cと複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置7cは、システムLSI7Aと、不揮発性メモリ33とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
図9におけるメモリアクセスタイミング調整システムは、図8に記載された実施の形態4に係るメモリアクセスタイミング調整システムと比較し、不揮発性メモリ33の機能及び構成のみが異なり、その他の構成要素については同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
図9に記載されたメモリアクセスタイミング調整システムでは、図8に記載されたタイミング設定値フラグ32Aの代わりに、システム起動の度にプロセッサ70が不揮発性メモリ33に書き込まれた起動回数カウント値33Aを読み出し、その値を更新して不揮発性メモリ33に書き戻す。システム起動時に読み出したこの起動回数カウント値33Aにより、プロセッサ70はアクセスタイミング調整を実施するか否かを決定する。
例えば、起動回数カウント値33Aが所定値よりも小さい場合は、不揮発性メモリ33に書き込まれているタイミング最適値を読み出し、個別メモリインターフェイス732A〜732D内のタイミング個別設定レジスタ732A1〜732D1にその値を設定する。
一方、起動回数カウント値33Aが所定値に達した場合は、プロセッサ70はアクセスタイミング調整プログラムを実行し、外部メモリ2A〜2Dのアクセスタイミング調整を行う。そして、得られたタイミング最適値をタイミング個別設定レジスタ732A1〜732D1に設定すると共に、不揮発性メモリ33にタイミング最適値を書き込み、起動回数カウント値33Aを決められた値に更新する。
その後、起動回数カウント値33Aが所定値に到達するまでは、システム起動時に不揮発性メモリ33に書かれたタイミング最適値をタイミング個別設定レジスタ732A1〜732D1に設定する。
なお、上記説明ではシステム起動回数をカウントし、その値をもってアクセスタイミング調整を実行するか否かの判定がなされたが、時間情報が管理できるシステムであれば、システム使用時間の合計を起動回数カウント値の代わりに不揮発性メモリ33に書き込み、アクセスタイミング調整を実行するか否かの判定基準としてもよい。
これら実施の形態4およびその変形例に示された構成により、予め不揮発性メモリに格納されたアクセスタイミング最適値とアクセスタイミング再調整により新たに得られたアクセスタイミング最適値とが、使用回数や累積時間などの条件設定によって使い分けられるので、起動時間の短縮が図られるとともにより安定したメモリアクセス動作が実現される。
(実施の形態5)
本実施の形態5におけるメモリアクセスタイミング調整装置は、さらに、複数の外部メモリの構成を示す信号を入力するためのメモリ情報入力端子を備え、当該信号に従い、複数の外部メモリに割り当てられたアドレス空間を変更、追加、又は削除する。これにより、外部メモリのサイズ、接続状況が把握されるので、外部メモリの状態に合わせたアクセスタイミング調整が実行できる。
本実施の形態5におけるメモリアクセスタイミング調整装置は、さらに、複数の外部メモリの構成を示す信号を入力するためのメモリ情報入力端子を備え、当該信号に従い、複数の外部メモリに割り当てられたアドレス空間を変更、追加、又は削除する。これにより、外部メモリのサイズ、接続状況が把握されるので、外部メモリの状態に合わせたアクセスタイミング調整が実行できる。
以下、本発明の実施の形態5におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
図10は、本発明の実施の形態5におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置8と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置8は、システムLSI8Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
システムLSI8Aは、プロセッサ80と、外部バスコントローラ81と、内蔵SRAM82と、メモリコントローラ83と、メモリ情報入力端子84とを備える。
図10におけるメモリアクセスタイミング調整システムは、図1に記載された実施の形態1に係るメモリアクセスタイミング調整システムと比較し、システムLSI8Aにメモリ情報入力端子84を備える点のみが異なり、その他の構成要素については機能的に同等である。図1と同じ点は説明を省略し、以下、異なる点のみ説明する。
図10において、システムLSI8Aは、個別メモリインターフェイス832A、832B、832C及び832Dに外部メモリが接続されているか否か、及び接続されている外部メモリ2A〜2Dの各容量等のメモリ情報を入力するためのメモリ情報入力端子84を具備している。
メモリ情報入力端子84は、例えば、システム基板上のディップスイッチに接続されており、ディップスイッチのオン/オフ状態を接続情報としてもよい。
また、メモリ情報入力端子84は、メモリコントローラ83内のアクセス選択回路831に接続されている。アクセス選択回路831は、入力されたメモリ情報に従い、プロセッサ80からのメモリアクセスタイミング調整実行命令に対して、調整対象の外部メモリに割り当てられたアドレス空間の変更、追加又は削除等を行う。
例えば、外部メモリ2Aのメモリ容量が標準のXバイトからYバイトに変更になった場合、入力されたメモリ情報からそれを判定し、必要があれば外部メモリ2A〜2Dのアクセスタイミング調整に使用するメモリアドレスを変更する。また、例えば外部メモリ2Bがシステムから取り外されていた場合には、入力されたメモリ情報からそれを判断し、外部メモリ2Aのアクセスタイミング調整完了後の次の調整対象となる外部メモリとして外部メモリ2Cを選択するという順序変更を行う。さらに、アクセス選択回路831からプロセッサ80には、外部メモリ2Bのタイミング調整をキャンセルした旨を通知するようにしてもよい。
この構成により、アクセスタイミング調整プログラムを変更せずに、メモリ構成をある程度自由度を持たせて変更することができる。また、外部メモリの状態に応じたアクセスタイミング調整が実現される。
なお、本実施の形態ではメモリ情報入力端子84をアクセス選択回路831に直接接続しているが、メモリ情報入力端子84をシステムLSI8Aのレジスタ空間にある任意のレジスタに接続し、プロセッサ80がそのレジスタの値を読み取ってアクセス選択回路831の動作を設定してもよい。もちろん、メモリ情報入力端子84の状態を反映するレジスタの値をアクセス選択回路831自身が読み取って動作状態を変更しても良い。
(実施の形態6)
本実施の形態におけるメモリアクセスタイミング調整装置は、さらに、アクセスタイミングの調整によって得られたアクセスタイミングのウィンドウ幅が、所定値以下であった場合には警告メッセージを出力する。これにより、ユーザに異常状態を通知することが可能となる。
本実施の形態におけるメモリアクセスタイミング調整装置は、さらに、アクセスタイミングの調整によって得られたアクセスタイミングのウィンドウ幅が、所定値以下であった場合には警告メッセージを出力する。これにより、ユーザに異常状態を通知することが可能となる。
以下、本発明の実施の形態6におけるメモリアクセスタイミング装置のメモリアクセスタイミング調整方法について、図面を参照しながら詳細に説明する。
図11は、本発明の実施の形態6におけるメモリアクセスタイミング調整装置の動作を表すフローチャートである。なお、本実施の形態におけるメモリアクセスタイミング調整装置は、実施の形態1から実施の形態5におけるメモリアクセスタイミング調整装置のいずれであってもよい。ここでは、メモリアクセスタイミング調整装置を実施の形態3におけるメモリアクセスタイミング調整装置7aとして説明する。
まず、プロセッサ70は、アクセスタイミング調整を開始する(ステップS11)。
次に、プロセッサ70は、アクセスタイミングを変更しながら正常動作する範囲、すなわち、ウィンドウ幅の測定を外部メモリ2A〜2Dのそれぞれに対して行う(ステップS12)。
次に、プロセッサ70は、得られたウィンドウ幅が一定幅以上であるか否かの判定を行う(ステップS13)。
ステップS13において、得られたウィンドウ幅が一定幅より大きいと判定された場合(ステップS13でYes)、プロセッサ70は、ウィンドウ幅によって決定されたアクセスタイミング最適値をメモリコントローラ73内の個別メモリインターフェイス732A〜732Dが有するタイミング個別設定レジスタ732A1〜732D1に設定する(ステップS14)。
一方、ステップS13において、得られたウィンドウ幅が一定幅以下であると判定された場合(ステップS13でNo)、システムLSI7AからシステムLSI7Aが有する画像出力回路を介して表示画面に性能低下警告のための表示を行ったり、LED表示や音で警告するための警告メッセージを出力する(ステップS15)。
最後に、アクセスタイミング調整を終了する(ステップS16)。
なお、上述した動作説明では、ウィンドウ幅が一定幅より大きいか否かの判定は一度しかなされていないが、ウィンドウ幅が一定幅以下の場合は、ウィンドウ幅の測定及びその判定を複数回繰り返すことにより、個別メモリインターフェイスのタイミング個別調整レジスタに最適値を設定したり、ユーザに警告を発信したりしてもよい。
以上の動作により、アクセスタイミング調整結果から異常状態を検知した場合にシステムLSI外部に情報を出力できるので、ユーザに異常状態を通知することが可能となる。
なお、本発明に係るメモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法は、上記実施の形態に限定されるものではない。実施の形態1ないし6における任意の構成要素を組み合わせて実現される別の実施形態や、実施の形態1ないし6に対して本発明の主旨を逸脱しない範囲で当業者が思いつく各種変形を施して得られる変形例や、本発明に係るメモリアクセスタイミング調整装置を内蔵した各種機器も本発明に含まれる。
例えば、実施の形態2では、メモリアクセスタイミング調整時に実アプリ動作状態を再現するため、特定パターンデータを発生させてメモリインターフェイスを高負荷状態としたが、実施の形態2以外の全ての実施の形態において、メモリアクセス調整時にパターン発生回路から特定パターンデータを発生させて、常にメモリインターフェイスを高負荷状態とした上でメモリアクセスタイミングの調整をしてもよい。
なお、この場合、必ずしもアクセス選択回路に接続されている必要はない。例えば、パターン発生回路は、個別メモリインターフェイスのそれぞれに直接接続されていてもよい。この場合には、プロセッサ又はアクセス選択回路が、アクセスタイミング調整対象の外部メモリに接続された個別メモリインターフェイスからは特定パターンデータを出力させず、それ以外の外部メモリに接続された個別メモリインターフェイスから特定パターンデータを出力させる指示を与えることにより、メモリインターフェイスの高負荷状態が再現される。
本発明は、メモリへのアクセスタイミングを調整するメモリアクセスタイミング調整装置及びメモリアクセスタイミング調整システムに有用であり、特にデジタルAV機器用システムLSIの高負荷動作状態でのメモリアクセスの動作マージンを拡大するメモリアクセスタイミング調整装置に用いるのに最適である。
本発明は、メモリへのアクセスタイミングを調整するメモリアクセスタイミング調整装置およびメモリアクセスタイミング調整方法に関する。
従来、LSIに搭載されているメモリコントローラがメモリにアクセスする場合のアクセスタイミングは、動作周波数が遅いこともありセット全てに同じ値、すなわち固定値を使用していても問題とはならなかった。しかし、セットの機能の向上に伴い次第にメモリインターフェイスの動作周波数が高くなりアクセスタイミングが厳しくなるにつれ、アクセスタイミングを固定値とせず、セットの状態に合わせて調整可能とする必要が生じてきた。
そこで、LSIは、その内部にアクセスタイミング調整用レジスタが設けられ、その値が変更されることにより、LSIの出力するメモリインターフェイス用信号のタイミング、あるいは入力した信号の内部タイミングを変えることが可能な回路を内蔵するようになってきている。
以下、図12を用いて従来技術の構成及び動作を説明する。図12は従来のメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、システムLSI900と、外部メモリ910A、910B、910C及び910Dと、外部不揮発性メモリ920と、外部SRAM930とを備える。
システムLSI900は、プロセッサ901と、外部バスコントローラ902と、メモリコントローラ903とを内蔵している。
プロセッサ901はメモリコントローラ903及び外部バスコントローラ902に接続されている。
さらに、メモリコントローラ903は、メモリインターフェイス904を有し、メモリバスを介して、外部メモリ910A、910B、910C、及び910Dと接続されている。
また外部不揮発性メモリ920と外部SRAM930とは、それぞれ外部バスコントローラ902を介してプロセッサ901に接続されている。
プロセッサ901は、起動時に、外部バスコントローラ902を介し外部不揮発性メモリ920からブートコードをロードし、その中に書かれたコードすなわち命令を実行する。
また、外部不揮発性メモリ920にはアクセスタイミング調整プログラムも書かれており、プロセッサ901がアクセスタイミング調整プログラムを実行した場合には、プロセッサ901がメモリのある領域にデータを書込み、同じ領域からデータを読み出して、読み出したデータと期待値とを比較し、OK/NGの判定を行う。メモリコントローラ903にはアクセスタイミングを調整するためのアクセスタイミング調整用レジスタが設けられており、プロセッサ901はレジスタへの設定値を変える毎にメモリライト、メモリリード、期待値比較を行いOK/NGを判定する。以下、アクセスタイミング調整用レジスタへの設定値について、具体的に説明する。
図13は、外部メモリからLSI内へデータを読み込む場合の動作タイミングチャートである。図12における外部メモリ910A〜910Dとしては、クロック同期型メモリとして、例えば、DDR SDRAM(Double Data Rate Syncronous DRAM)が使用されており、メモリコントローラ903に8ビットデータ(図12及び図13ではDQとして記載)を転送するタイミングを知らせるために、第1クロック信号に同期したデータストローブ信号(図12及び図13ではDQSとして記載)が使用されている。外部メモリからデータを読み出す場合、外部メモリからはデータDQをデータストローブDQSと同位相で出力する。このデータを確実に受け取るために、例えば、メモリコントローラ903は、第1クロック信号に同期したデータストローブ信号に対して位相を90度遅らせたタイミングのデータストローブ信号を生成する。そして、当該データストローブ信号の立ち上がり時及び立ち下がり時に8ビットデータを読み込むことになっている。しかし、電源変動やノイズなどの外的要因により、受信したデータストローブ信号に波形歪みが生じ、データストローブ信号のエッジ検出時に位相のずれが生じる。これに対応するため、メモリコントローラ903は、データ読み込みのための基準位相差である90度に対し、所定の位相範囲であるウィンドウ幅を確保しておく必要がある。このウィンドウ幅を、例えば、180度を128分割したものを1ビットで変化させられる位相差として、最適な位相差をビットで表現したものが上述したアクセスタイミング調整用レジスタへの設定値となる。
上記方法により、プロセッサ901は、メモリアクセスが正常に行える位相範囲を求め、プロセス変動、電圧変動等他の条件を加味して動作マージンが最大となるアクセスタイミング調整用レジスタ設定値を決定する。
アクセスタイミングの最適設定値の求め方については、特許文献1から特許文献4に示すものが知られている。
特許文献1は、上述した従来技術を開示したものであり、アクセスタイミングの最適設定値の求め方として、チェック用アドレスとして予め定められたアドレスに所定のデータを書き込み、それを読み出してOK/NGを判定する方式が記載されている。つまり、メモリアクセスが成功する上限値および下限値を取得し、そのセンター値を最大マージンが確保できる値として使用するものである。
また、特許文献2は、メモリアクセスが成功したか否かの判定に、単純に期待値とリードした値との比較をするのではなく、ライト時にデータにパリティを付加し、リードしたデータとのパリティ比較を使用する方式が開示されている。
また、特許文献3は、タイミング調整すなわちアクセスタイミング設定値を変更しメモリへのアクセスを試行する期間を、画面表示を行わないブランキング期間とする方式が開示されている。
また、特許文献4は、プロセッサからのデータライト、メモリからのデータリード、期待値比較を行った結果によりクロックスキューを変更する方式が開示されている。
しかしながら、上述した従来方式は、メモリバスの負荷状態を考慮した方式ではない。一般に、外部メモリへのアクセスタイミングは、メモリコントローラ−外部メモリ間のバスの転送量およびビットトグル率により変化する。特に、メモリコントローラ−外部メモリ間のバスの転送量が多いほど電源ドロップやノイズが、またビットトグル率が高くなるほどビット間のクロストークやノイズが増加し、外部メモリへのアクセスタイミングは厳しくなる。
すなわち、メモリコントローラ−外部メモリ間のバスにおけるデータ転送量、ビットトグル率により、アクセスタイミングのウィンドウ幅は変化する。
よって、実際には、メモリバスにおけるデータ転送量およびビットトグル率を変化させてウィンドウ幅を最適化することが重要である。しかし、従来の方式では、メモリコントローラは外部メモリ1つ1つに対して個別にアクセスすることができない。そのため、タイミング調整対象の外部メモリに対してデータを送受信しアクセスタイミングを調整している間に、その他の外部メモリに対し独立にアクセスするということができない。従って、実動作時のメモリコントローラ−外部メモリ間のバスにおけるデータ転送量、ビットトグル率を具体的に反映したアクセスタイミング調整ができない。
特に、メモリコントローラ−外部メモリ間のバスの転送量が多くかつビットトグル率の高い高負荷状態を再現して、アクセスタイミングを調整する必要性は高い。例えば、高負荷状態は、通常はセットの実アプリ動作状態で実現される。しかしこの場合、その他の外部メモリに対しアプリケーションを動作させようにも、特定の外部メモリに対してタイミング調整している時に、アプリケーションソフトを通常動作時とは異なる使用メモリ容量、アドレスマッピングに切り替えて使用することは容易ではない。
よって、高負荷状態でのアクセスタイミング最適化が出来ない上、システムLSI、外部メモリ、ボードの出来により、それぞれの特性の組み合わせによっては実アプリ動作時に動作不安定となる可能性がある。
画像表示専用のLSIであれば、画面に表示しない期間、すなわちブランキング期間を使用してアクセスタイミング調整を行うことができる。この間に、メモリアクセスができなくなったとしても画面表示開始までに標準設定値にアクセスタイミング設定を戻すことにより、システムを破綻させずにタイミング調整を継続できる。
しかしデジタルTVやDVDレコーダなどのデジタルAV機器のシステムLSIでは、内蔵マイコンや他の内蔵機能ブロックが常にメモリを使用している。このため、アクセスタイミング調整の同時実行により外部メモリにアクセスできなくなった時点でシステムが破綻し、動作が停止してしまう。これにより、実アプリ動作及びタイミング調整とも継続不可能となってしまう。そのため、従来は、動作停止しないようCPUのスタックを含むワーク領域を外部SRAM空間に取り、かつ、外部メモリへのアクセスが正しくできなくなりデータが化けても、動作が停止することのないDMA転送と言った簡易な検査パターンにより低負荷な状態でのアクセスタイミング調整を実施し、求めた最適値で外部メモリを使用するしか方法が無かった。
しかし、例えば、図14に記載された、タイミング調整時と実アプリ動作時とのウィンドウ幅の比較図のように、タイミング調整時、すなわちメモリアクセスの低負荷状態で外部メモリアクセスタイミングを最適化しても、実アプリ動作時、すなわちシステムが高負荷の状態になると、低負荷状態での動作範囲から上限側、下限側のウィンドウ幅がアンバランスに削られることで大きく最適値がずれてしまうことがある。その場合、実アプリ動作時のウィンドウ幅にタイミング調整時の最適値が入らなくなり、メモリアクセスが正常動作しなくなるという問題が発生する可能性がある。逆に、低負荷なタイミング調整時のウィンドウ幅は高負荷時のウィンドウ幅よりも一般的に広く、高負荷時の最適値が低負荷時のウィンドウに入らないということはまず起こらない。
本発明は、上記の課題に鑑みてなされたものであり、複数の外部メモリのそれぞれに対して個別にアクセスタイミング調整できるメモリアクセスタイミング調整装置およびメモリアクセスタイミング調整方法を提供することを第1の目的とする。さらに、外部メモリとメモリコントローラとの間のデータ転送量の多い高負荷状態においても、メモリアクセスが安定化するメモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法を提供することを目的とする。
上記目的を達成するために、本発明に係るメモリアクセスタイミング調整装置は、複数の外部メモリへアクセスするタイミングを調整するメモリアクセスタイミング調整装置であって、前記複数の外部メモリのそれぞれに対し個別に接続され、メモリアクセスにおけるデータの送受信を行う複数の個別メモリインターフェイスと、前記複数の外部メモリのうち選択された外部メモリに対して当該選択された外部メモリに接続された個別メモリインターフェイスからデータを複数回送受信させることによりアクセスタイミングを調整する制御手段とを備えることを特徴とする。
これにより、複数の外部メモリに対して個別に設けられた個別メモリインターフェイスが外部メモリ1つ1つに対して個別にアクセスすることができる。よって、タイミング調整対象の外部メモリに対してデータを送受信しアクセスタイミングを調整している間に、その他の外部メモリに独立にデータアクセスができ、メモリバスのデータ転送量を任意に変化させることができる。従って、実動作時のメモリバスにおけるデータ転送量を反映したアクセスタイミング調整ができる。
また、前記複数の外部メモリは、第1のクロック信号に同期して入出力動作するクロック同期型メモリであり、前記複数の個別メモリインターフェイスのそれぞれは、前記第1のクロック信号を遅延させた第2のクロック信号を使用してデータの入出力動作をし、前記アクセスタイミングは、前記第1のクロック信号と前記第2のクロック信号との位相差であり、前記制御手段は、前記個別メモリインターフェイスにおけるアクセスタイミングを順次変更させながらアクセスが成功したか否かをその都度判定し、当該アクセスが成功した前記位相差の範囲内に最適なアクセスタイミングを調整することが好ましい。
これにより、データアクセスが成功する位相差の最大範囲を把握できるので、適応性の高いアクセスタイミングの調整が実現される。
また、前記メモリアクセスタイミング調整装置は、さらに、特定のパターンデータを発生するパターン発生回路を備え、前記制御手段は、前記選択された外部メモリ以外の外部メモリに接続された個別メモリインターフェイスから前記選択された外部メモリ以外の外部メモリへ前記特定のパターンデータを送信させることにより、前記複数の外部メモリに負荷をかけることが好ましい。
これにより、調整対象外部メモリ以外の外部メモリに対しても負荷の高いパターンでアクセスを行うことが可能となる。よって、メモリバスの負荷が実アプリ動作時の負荷に近い状態で動作させることができ、メモリアクセス頻度の低い低負荷時で取得したメモリアクセスタイミングの最適値と比較して、より高負荷状態でも安定した設定値を得ることが可能となる。
また、前記メモリアクセスタイミング調整装置は、さらに、前記選択された外部メモリを示すビットを保持するメモリ選択レジスタと、前記複数の個別メモリインターフェイスに接続され、前記選択された外部メモリを示すビットに対応する外部メモリのアドレスを出力するアドレス変換回路とを備えてもよい。
もしくは、前記メモリアクセスタイミング調整装置は、さらに、前記選択された外部メモリを示すビットを保持するメモリ選択レジスタと、前記複数の個別メモリインターフェイスに接続され、前記選択された外部メモリを示すビットにより、前記選択された外部メモリに接続された個別メモリインターフェイスを選択するセレクタ回路とを備えてもよい。
これにより、メモリ選択レジスタが設けられることで、外部メモリ構成の変化やメモリインターフェイス周辺の接続変更があっても、タイミング調整プログラムがメモリの実アドレス配置に左右されなくなる。よって、制御手段が実行するアクセスタイミング調整プログラムを変更しないでよくなるため、プログラム開発工数が削減される。
また、前記メモリアクセスタイミング調整装置は、さらに、前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する前記最適なアクセスタイミングを記憶する不揮発性メモリを備え、前記複数の個別メモリインターフェイスのそれぞれは、前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するアクセスタイミング個別設定レジスタを備え、前記複数の個別メモリインターフェイスのそれぞれは、前記タイミング個別設定レジスタに記憶された前記最適なアクセスタイミングを、前記選択された外部メモリとのデータアクセスに使用してもよい。
これにより、通常起動時に毎回アクセスタイミング調整を実行する必要がなくなり、起動時間の短縮が図られる。
また、前記メモリアクセスタイミング調整装置は、さらに、前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する前記最適なアクセスタイミングと、システム起動の回数とを記憶する不揮発性メモリを備え、前記複数の個別メモリインターフェイスのそれぞれは、前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するタイミング個別設定レジスタを備え、前記制御手段は、所定回数を起動するごとに、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込んでもよい。
これにより、通常起動時に毎回アクセスタイミング調整を実行する必要がなくなるとともに、定期的にアクセスタイミング調整が更新されるので、起動時間の短縮が図られるとともに、システム構成や状態の変化に対応した外部メモリへのアクセスが実現できる。
また、前記メモリアクセスタイミング調整装置は、さらに、前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する前記最適なアクセスタイミングと、当該最適なアクセスタイミングが有効か否かを示すタイミング設定値フラグとを記憶する不揮発性メモリを備え、前記複数の個別メモリインターフェイスのそれぞれは、前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するタイミング個別設定レジスタを備え、前記制御手段は、システム起動時に、前記タイミング設定値フラグが無効の場合は、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込んでもよい。
これにより、予めタイミング設定値フラグを無効にしておけば、次回システム起動時に自動的にアクセスタイミング調整が更新されるので、システム構成や状態の変化に対応した外部メモリへの最適なアクセスが実行できる。
また、前記メモリアクセスタイミング調整装置は、さらに、前記複数の外部メモリの構成を示す信号を入力するためのメモリ情報入力端子を備え、前記複数の外部メモリの構成を示す信号に従い、前記複数の外部メモリに割り当てられたアドレス空間を変更、追加、又は削除してもよい。
これにより、外部メモリのサイズ、接続状況が把握されるので、外部メモリの状態に合わせたアクセスタイミング調整が実行できる。
また、前記制御手段は、前記アクセスタイミングの調整によって得られたアクセスタイミングの最適範囲が、所定値以下であった場合には警告メッセージを出力してもよい。
これにより、アクセスタイミング調整結果から異常状態を検知した場合に警告メッセージを出力することで、ユーザに異常状態を通知することが可能となる。
また、本発明は、このような特徴的な手段を備えるメモリアクセスタイミング調整装置として実現することができるだけでなく、メモリアクセスタイミング調整装置に含まれる特徴的な手段をステップとするメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法として実現することができる。
本発明のメモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法によれば、複数の外部メモリのそれぞれに対して個別にメモリインターフェイスが設けられていることにより、複数の外部メモリのそれぞれに対して個別にアクセスタイミング調整できるので、実動作時のメモリバスにおけるデータ転送量を反映したアクセスタイミング調整ができる。特に、メモリバスのデータ転送量が多い高負荷状態に近い状態でアクセスタイミング調整ができるので、高負荷時のメモリアクセスが安定化するメモリアクセスタイミング調整を実現できる。
(実施の形態1)
本実施の形態1におけるメモリアクセスタイミング調整装置は、複数の外部メモリのそれぞれに対し個別に接続された複数の個別メモリインターフェイスと、選択された外部メモリに対して当該選択された外部メモリに接続された個別メモリインターフェイスからデータを複数回送受信させることによりアクセスタイミングを調整する制御手段とを備える。これにより、選択された外部メモリに対してデータを送受信しアクセスタイミングを調整している間に、その他の外部メモリに独立にデータアクセスができ、メモリバスのデータ転送量を任意に変化させることができる。従って、実動作時のメモリバスにおけるデータ転送量を反映したアクセスタイミング調整ができる。
本実施の形態1におけるメモリアクセスタイミング調整装置は、複数の外部メモリのそれぞれに対し個別に接続された複数の個別メモリインターフェイスと、選択された外部メモリに対して当該選択された外部メモリに接続された個別メモリインターフェイスからデータを複数回送受信させることによりアクセスタイミングを調整する制御手段とを備える。これにより、選択された外部メモリに対してデータを送受信しアクセスタイミングを調整している間に、その他の外部メモリに独立にデータアクセスができ、メモリバスのデータ転送量を任意に変化させることができる。従って、実動作時のメモリバスにおけるデータ転送量を反映したアクセスタイミング調整ができる。
以下、本発明の実施の形態1におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
図1は、本発明の実施の形態1におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置1と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置1は、システムLSI1Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
システムLSI1Aは、プロセッサ10と、外部バスコントローラ11と、内蔵SRAM12と、メモリコントローラ13とを備える。
プロセッサ10は、外部メモリとのアクセスタイミングを調整する制御手段としての機能を有する。
不揮発性メモリ3は、外部バスコントローラ11を介しプロセッサ10と接続される。
内蔵SRAM12は、外部バスコントローラ11を介しプロセッサ10に接続され、プロセッサ10の作業領域としての機能を有する。
メモリコントローラ13は、プロセッサ10と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路131とメモリインターフェイス132とを備える。
メモリインターフェイス132は、個別メモリインターフェイス132A、132B、132C及び132Dを内蔵し、外部メモリ2A〜2Dはそれぞれ対応する個別メモリインターフェイス132A〜132Dを介してアクセス選択回路131に接続される。
以上のような構成を有する本実施の形態1のメモリアクセスタイミング調整システムの調整動作について、以下説明する。
まず、プロセッサ10は、起動時に外部バスコントローラ11を介して不揮発性メモリ3からブートコードを読み出し、システムLSI1Aの各種設定を行った後、同じく不揮発性メモリ3からアクセスタイミング調整プログラムを読み出す。アクセスタイミング調整プログラムには、複数ある外部メモリ2A〜2Dのそれぞれにアクセスする際のメモリアドレスが記載されている。
次に、アクセス選択回路131は、プロセッサ10が要求するメモリアドレスに従って、現在タイミング調整すべき外部メモリ(図1では外部メモリ2B)を選択する。
図1における外部メモリ2A〜2Dとしては、例えば、DDR SDRAM(Double Data Rate Syncronous DRAM)が使用される。そして、メモリコントローラ13から外部メモリ2A〜2Dへ、あるいは外部メモリ2A〜2Dからメモリコントローラ13へデータを転送するタイミングを知らせるために、第1クロック信号に同期したデータストローブ信号が使用されている。外部メモリ2A〜2Dからデータを読み出す場合、外部メモリ2A〜2Dからはデータがデータストローブと同位相で出力されるため、データを確実に受け取るには、例えば、メモリコントローラ13は、まず、入力されたデータストローブ信号に対して位相を90度遅らせたタイミングのデータストローブ信号を生成する。そして、当該データストローブ信号の立ち上がり時及び立ち下がり時にデータを読み込むことになっている。しかし、電源変動やノイズなどの外的要因により、受信したデータストローブ信号に波形歪みが生じ、データストローブ信号のエッジ検出時に位相のずれが生じる。これに対応するため、メモリコントローラ13は、データ読み込みのための基準位相差である90度に対し、所定の位相範囲であるウィンドウ幅を確保する必要がある。このウィンドウ幅を、例えば、180度を128分割したものを1ビットで調整できる位相差として表現し、アクセスタイミング調整用レジスタに設定した位相差に従いアクセスタイミングを変化させる。
上記方法により、プロセッサ10は、外部メモリ2Bに対しアクセスタイミング設定を変化させながら、メモリアクセスが成功する位相差範囲であるウィンドウ幅を検査する。検査結果は内蔵SRAM12に逐次記録していき、検査完了後、ウィンドウ幅から最適なアクセスタイミング設定値を決定する。
そして、プロセッサ10は、システムLSI1Aに接続された外部メモリ2A〜2D全てに対し、この最適なアクセスタイミングの決定プロセスを、調整対象を切り替えながら順に実行する。
図2は、本発明の実施の形態1にかかるメモリアクセスタイミング調整装置によるウィンドウ幅検査結果と従来技術によるウィンドウ幅検査結果との比較図である。同図において、横軸はウィンドウ幅を位相差で表している。また上から順に、本発明の実施の形態1にかかるメモリアクセスタイミング調整装置によって検査された外部メモリ2A、2B、2C及び2Dについてのウィンドウ幅、及び、従来技術により検査された複数の外部メモリ2のウィンドウ幅である。
本発明では、個別メモリインターフェイス132A〜132Dが各外部メモリ2A〜2Dに対し個別に設けられているので、各外部メモリについて独立したウィンドウ幅が検査される。
一方、従来技術では、複数の外部メモリに対し、共通した1つのメモリインターフェイスのみが設けられている。このため、各外部メモリについて独立したウィンドウ幅は検査されず、全ての外部メモリに対して同一のアクセスタイミング設定値で同時にウィンドウ幅が検査される。従って、従来技術により得られたウィンドウ幅は外部メモリ2A〜2Dの全てが正常動作する範囲となるため非常に狭くなり、実動作時のメモリバスの転送量の変化に対応したウィンドウ幅の変化に追従できない。
これに対し、本発明では、図2に記載された外部メモリ2A〜2Dのそれぞれに対するウィンドウ幅を基に、実動作時のメモリバスの転送量の変化を想定して多様なウィンドウ幅の設定が可能となる。
なお、上述した調整動作は、システムLSI1Aの起動時の動作についての説明であるが、アプリプログラム実行状態から何らかの処理切り替え指示によりアクセスタイミング調整プログラム実行に移行する場合も考えられる。その場合はアクセスタイミング調整プログラム実行開始以降に関して上記説明と同様となる。
また、図1に記載されたメモリアクセスタイミング調整装置1の構成要素であるアクセス選択回路131は、例えば、以下、図3または図4に記載されたような機能構成をとってもよい。
図3は、本発明の実施の形態1の第1の変形例を示すメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。
同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置4と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置4は、システムLSI4Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
システムLSI4Aは、プロセッサ40と、外部バスコントローラ41と、内蔵SRAM42と、メモリコントローラ43とを備える。
メモリコントローラ43は、プロセッサ40と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路431とメモリインターフェイス432とを備える。
メモリインターフェイス432は、個別メモリインターフェイス432A、432B、432C及び432Dを内蔵し、外部メモリ2A〜2Dはそれぞれ対応する個別メモリインターフェイス432A〜432Dを介してアクセス選択回路431に接続される。
同図におけるメモリアクセスタイミング調整システムは、図1に記載されたメモリアクセスタイミング調整システムと比較し、アクセス選択回路431の機能構成が具体化されている点のみが異なり、その他の構成要素については機能的に同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
アクセス選択回路431は、メモリ選択レジスタ431Aとアドレス変換回路431Bとを備える。
図3に記載されたメモリアクセス調整システムでは、アクセス選択回路431は、プロセッサ40がメモリ選択レジスタ431Aに設定した調整対象とする外部メモリを選択するビットを読み、タイミング調整すべき外部メモリを選択する。
また、図4は、本発明の実施の形態1の第2の変形例を示すメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。
同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置5と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置5は、システムLSI5Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
システムLSI5Aは、プロセッサ50と、外部バスコントローラ51と、内蔵SRAM52と、メモリコントローラ53とを備える。
メモリコントローラ53は、プロセッサ50と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路531とメモリインターフェイス532とを備える。
メモリインターフェイス532は、個別メモリインターフェイス532A、532B、532C及び532Dを内蔵し、外部メモリ2A〜2Dはそれぞれ対応する個別メモリインターフェイス532A〜532Dを介してアクセス選択回路531に接続される。
同図におけるメモリアクセスタイミング調整システムは、図1に記載されたメモリアクセスタイミング調整システムと比較し、アクセス選択回路531の機能構成が具体化されている点のみが異なり、その他の構成要素については機能的に同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
アクセス選択回路531は、メモリ選択レジスタ531Aとセレクタ回路531Bとを備える。
図4に記載されたメモリアクセス調整システムでは、アクセス選択回路531は、メモリ選択レジスタ531Aに設定された値を読み、その値によりセレクタ回路531Bが信号の接続を切り換え、プロセッサ50が調整対象外部メモリに直接アクセスできるようになっている。
図3又は図4に記載されたメモリアクセスタイミング調整システムでは、メモリ選択レジスタ431A又は531Aが設けられている。これにより、プロセッサ40又は50が実行するアクセスタイミング調整プログラムは、外部メモリ構成の変化やメモリコントローラ内部の接続変更があっても変更無く使用されることが可能となる。さらには異なるシステムLSIであってもメモリ選択レジスタ仕様を統一していれば、全く同じアクセスタイミングプログラムが使用されることが可能であるので、プログラム開発工数が削減される。
以上のように、本発明の実施の形態1にかかるメモリアクセスタイミング調整システムによれば、メモリコントローラはアクセス選択回路および個別メモリインターフェイスにより、外部メモリ1つ1つを独立にアクセスすることができる。よって、外部メモリの各々に対して、最適なアクセスタイミングが得られ、外部メモリ構成の変化やメモリコントローラ内部の接続変更があっても個々の最適値には有用性がある。また、アプリプログラムが調査対象の外部メモリ以外の外部メモリ容量で動作するのであれば、調査対象となる外部メモリをアクセスタイミング調整しながらアプリプログラムで使用するメモリ領域が確保できるため、安定なアプリケーションの動作が実現される。
なお、図1、図3及び図4に記載されたシステムでは、システムLSI1A、4A及び5Aに接続された外部メモリおよび個別メモリインターフェイスの個数はそれぞれ4個であるが、本発明は2個以上であればよく、同様の効果を奏する。
また、不揮発性メモリ3は各システムLSIの内部にあってもよく、逆に内蔵SRAMは各システムLSIの外部のSRAMであってもよい。
また、アクセスタイミング調整プログラムおよびアプリプログラム等については、不揮発性メモリ3に書き込んでおく必要はなく、不揮発性メモリ3とは別に用意したRAMにネットワーク経由でダウンロードしたものを各プロセッサから読み込むようにしてもよい。
(実施の形態2)
本実施の形態2におけるメモリアクセスタイミング調整装置は、さらに、特定のパターンデータを発生するパターン発生回路と、選択された外部メモリ以外の外部メモリに接続された個別メモリインターフェイスから選択された外部メモリ以外の外部メモリへ特定のパターンデータを送信させる制御手段とを備える。これにより、複数の外部メモリに負荷をかけた実アプリ動作時に近い状態が再現されるので、メモリアクセス頻度の低い低負荷時で取得したメモリアクセスタイミングと比較して、より高負荷状態でも安定したアクセスタイミングの設定値を得ることが可能となる。
本実施の形態2におけるメモリアクセスタイミング調整装置は、さらに、特定のパターンデータを発生するパターン発生回路と、選択された外部メモリ以外の外部メモリに接続された個別メモリインターフェイスから選択された外部メモリ以外の外部メモリへ特定のパターンデータを送信させる制御手段とを備える。これにより、複数の外部メモリに負荷をかけた実アプリ動作時に近い状態が再現されるので、メモリアクセス頻度の低い低負荷時で取得したメモリアクセスタイミングと比較して、より高負荷状態でも安定したアクセスタイミングの設定値を得ることが可能となる。
以下、本発明の実施の形態2におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
図5は、本発明の実施の形態2におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。
同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置6と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置6は、システムLSI6Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
システムLSI6Aは、プロセッサ60と、外部バスコントローラ61と、内蔵SRAM62と、メモリコントローラ63とを備える。
プロセッサ60は、外部メモリとのアクセスタイミングを調整する制御手段としての機能を有する。
不揮発性メモリ3は、外部バスコントローラ61を介しプロセッサ60と接続される。
内蔵SRAM62は、外部バスコントローラ61を介しプロセッサ60に接続され、プロセッサ60の作業領域としての機能を有する。
メモリコントローラ63は、プロセッサ60と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路631と、メモリインターフェイス632と、パターン発生回路633とを備える。
メモリインターフェイス632は、個別メモリインターフェイス632A、632B、632C及び632Dを内蔵し、外部メモリ2A〜2Dはそれぞれ対応する個別メモリインターフェイス632A〜632Dを介してアクセス選択回路631に接続される。
パターン発生回路633は、アクセス選択回路631に接続される。
図5におけるメモリアクセスタイミング調整システムは、図1に記載された実施の形態1に係るメモリアクセスタイミング調整システムと比較し、メモリコントローラ63の構成及び機能が異なり、その他の構成要素については機能的に同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
図5において、プロセッサ60から調整対象である外部メモリ2Bに対しアクセスタイミング調整を実施する場合、アクセス選択回路631は、まず、メモリコントローラ63内のパターン発生回路633から発生した特定パターンデータを、外部メモリ2B以外の外部メモリ2A、2C及び2Dに対し、外部メモリ2Bのアクセスタイミング調整が完了するまで個別メモリインターフェイス632A、632C、632Dは特定パターンによる外部メモリアクセスを実行し続ける。
ここで、パターン発生回路633が発生する特定パターンデータについて図6を用いて説明する。図6は、個別メモリインターフェイスまたは外部メモリが特定パターンデータを読み込む場合の動作タイミングチャートである。
調整対象である外部メモリ2Bに対しアクセスタイミング調整を実施している間、パターン発生回路633から発生した特定パターンデータが外部メモリ2A、2C及び2Dに読み込まれた後読み出される。その後、それぞれの外部メモリに接続された個別メモリインターフェイス632A、632C及び632Dで当該特定パターンデータが読み込まれる。同図において、上部に記載されたレジスタは受信したデータストローブ信号の立ち上がり時において4ビットデータを順次保持し、下部に記載されたレジスタは受信したデータストローブ信号の立ち下がり時において4ビットデータを順次保持する。
例えば、4ビットデータ列が互いに反転関係にある“A”(1010)と“5”(0101)とで構成された“A5A5A5・・・”である場合、4ビットデータはデータストローブ信号の変化に従い、上部レジスタと下部レジスタに交互に保持されるので、上部レジスタには“AAA・・”の順でデータが保持され、下部レジスタには“555・・”の順で保持される。従って、4ビットデータ列“A5A5A5・・・”は、上部レジスタ及び下部レジスタにとって、データ変化のない、つまり、ビットトグル率の低いパターンデータであるが、外部メモリバスにとってはデータストローブのエッジ毎にデータが変化するビットトグル率の高いパターンとなる。
一方、4ビットデータ列が“A55AA55A・・”である場合、4ビットデータはデータストローブ信号の変化に従い、上部レジスタと下部レジスタに交互に保持されるので、上部レジスタには“A5A5・・”の順でデータが保持され、下部レジスタには“5A5A5・・”の順で保持される。従って、4ビットデータ列“A55AA55A・・”は、上部レジスタ及び下部レジスタにとって、データ変化の大きい、つまり、ビットトグル率の高いパターンデータであるが、外部メモリバスにとっては、データストローブのエッジ2回毎にビットトグルするパターンとなる。これらのパターンを組み合わせることで内部バス、外部メモリバス共にビットトグル率の高いアクセスが実現できる。
再び図5に戻ってアクセスタイミング調整の実施について説明する。調整対象である外部メモリ2Bのタイミング調整が完了すると、アクセス選択回路631は、次に、別の外部メモリのタイミング調整を実行する。例えば、プロセッサ60からの指示で調整対象外部メモリが外部メモリ2Cになった場合は、アクセス選択回路631は、パターン発生回路633で発生したアクセスパターンを外部メモリ2A、2B及び2Dに対して実行する。そして、他の外部メモリがタイミング調整対象メモリになった場合も、同様に調整対象外部メモリ以外の外部メモリに対して同様に実行する。
これにより、実施の形態1での、調整対象である外部メモリ2Bへのアクセスしか発生していない状態から、外部メモリ2B以外の外部メモリ2A、2C及び2Dに対しても、上述したような全ビットをクロック毎にトグルさせた高負荷のパターンデータをアクセスさせることができる。よって、実アプリ動作時に近い、メモリインターフェイス全体が高負荷で動作する状態が実現される。すなわち、実アプリ動作時における最適なメモリアクセスタイミングに近い値がアクセスタイミング調整で得られるので、実アプリ動作時のメモリアクセス安定度が向上する。
(実施の形態3)
本実施の形態3におけるメモリアクセスタイミング調整装置は、アクセスタイミングの調整によって得られた最適なアクセスタイミングを記憶する不揮発性メモリを備え、システム起動時に、個別メモリインターフェイスのそれぞれが有するアクセスタイミング個別設定レジスタに最適なアクセスタイミングを読み出し、これを選択された外部メモリとのデータアクセスに使用する。これにより、通常起動時に毎回アクセスタイミング調整を実行する必要がなくなり、起動時間の短縮が図られる。
本実施の形態3におけるメモリアクセスタイミング調整装置は、アクセスタイミングの調整によって得られた最適なアクセスタイミングを記憶する不揮発性メモリを備え、システム起動時に、個別メモリインターフェイスのそれぞれが有するアクセスタイミング個別設定レジスタに最適なアクセスタイミングを読み出し、これを選択された外部メモリとのデータアクセスに使用する。これにより、通常起動時に毎回アクセスタイミング調整を実行する必要がなくなり、起動時間の短縮が図られる。
以下、本発明の実施の形態3におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
図7は、本発明の実施の形態3におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置7aと複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置7aは、システムLSI7Aと、不揮発性メモリ31とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
システムLSI7Aは、プロセッサ70と、外部バスコントローラ71と、内蔵SRAM72と、メモリコントローラ73とを備える。
プロセッサ70は、外部メモリとのアクセスタイミングを調整する制御手段としての機能を有する。
不揮発性メモリ31は、外部バスコントローラ71を介しプロセッサ70と接続される。
内蔵SRAM72は、外部バスコントローラ71を介しプロセッサ70に接続され、プロセッサ70の作業領域としての機能を有する。
メモリコントローラ73は、プロセッサ70と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路731と、メモリインターフェイス732とを備える。
メモリインターフェイス732は、個別メモリインターフェイス732A、732B、732C及び732Dを内蔵し、外部メモリ2A〜2Dはそれぞれ対応する個別メモリインターフェイス732A〜732Dを介してアクセス選択回路731に接続される。
また、個別メモリインターフェイス732A、732B、732C及び732Dは、それぞれ、タイミング個別設定レジスタ732A1、732B1、732C1及び732D1を備える。
図7におけるメモリアクセスタイミング調整システムは、図1に記載された実施の形態1に係るメモリアクセスタイミング調整システムと比較し、メモリコントローラ73の構成及び機能が異なり、その他の構成要素については機能的に同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
図7において、システムLSI7Aは、不揮発性メモリ31からアクセスタイミング調整プログラムを読み出し、アクセスタイミング調整プログラムを実行する。アクセスタイミング調整を実施した後、プロセッサ70は、個別メモリインターフェイス732A〜732D内のタイミング個別設定レジスタ732A1〜732D1に、それぞれの外部メモリに対応した最適なアクセスタイミングであるタイミング最適値を設定する。また同時に、不揮発性メモリ31に対し、それらのタイミング最適値を書き込む。
また、同時に、アクセスタイミング調整プログラムをタイミング最適値設定プログラムに置き換える。
次回システム起動時には、プロセッサ70はタイミング最適値設定プログラムを読み込み、当該プログラムに従って不揮発性メモリ31に書き込まれているタイミング最適値を、タイミング個別設定レジスタ732A1〜732D1に設定する。
これにより、アクセスタイミング調整によって得られたタイミング最適値が不揮発性メモリに格納されるので、通常起動時に毎回アクセスタイミング調整がなされる必要がなくなり、起動時間の短縮が図られる。
なお、上述した動作説明では、プロセッサ70が、最初のアクセスタイミング調整実行後に不揮発性メモリ31にタイミング最適値を書き込み、かつアクセスタイミング調整プログラムをタイミング最適値設定プログラムに書き換えると説明したが、必ずしもプロセッサ70が書き換える必要はない。アクセスタイミング調整プログラムが書き込まれた不揮発性メモリがシステムLSI7Aに接続され、プロセッサが当該プログラムを実行しタイミング最適値を取得した後、工場出荷時に、アクセスタイミング調整プログラムが書き込まれた不揮発性メモリを、タイミング最適値およびタイミング最適値設定プログラムが書き込まれた不揮発性メモリに置換えてもよい。
また、タイミング最適値のみがブートコードを含む不揮発性メモリ31とは異なる不揮発性メモリに書き込まれ、ブートコードを含む不揮発性メモリ31の内容が出荷時に書き換えられてもよい。
これにより、アクセスタイミング調整は、ユーザへのシステムリリース後に行う必要のないシステムであれば、工場出荷時のみ実行されればよく、ユーザ起動時にアクセスタイミング再調整の必要がなくなるため、起動時間の短縮が図られる。
(実施の形態4)
本実施の形態4におけるメモリアクセスタイミング調整装置は、アクセスタイミングの調整によって得られた最適なアクセスタイミングと、最適なアクセスタイミングが有効か否かを示すタイミング設定値フラグとを記憶する不揮発性メモリと、システム起動時にタイミング設定値フラグが無効の場合は、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを不揮発性メモリに書き込む制御手段とを備える。これにより、予めタイミング設定値フラグを無効にしておけば、次回起動時に自動的にアクセスタイミング調整が更新されるので、システム構成や状態の変化に対応した外部メモリへの最適なアクセスが実行できる。
本実施の形態4におけるメモリアクセスタイミング調整装置は、アクセスタイミングの調整によって得られた最適なアクセスタイミングと、最適なアクセスタイミングが有効か否かを示すタイミング設定値フラグとを記憶する不揮発性メモリと、システム起動時にタイミング設定値フラグが無効の場合は、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを不揮発性メモリに書き込む制御手段とを備える。これにより、予めタイミング設定値フラグを無効にしておけば、次回起動時に自動的にアクセスタイミング調整が更新されるので、システム構成や状態の変化に対応した外部メモリへの最適なアクセスが実行できる。
以下、本発明の実施の形態4におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
図8は、本発明の実施の形態4におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置7bと複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置7bは、システムLSI7Aと、不揮発性メモリ32とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
図8におけるメモリアクセスタイミング調整システムは、図7に記載された実施の形態3に係るメモリアクセスタイミング調整システムと比較し、不揮発性メモリ32の機能及び構成のみが異なり、その他の構成要素については同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
不揮発性メモリ32は、外部バスコントローラ71を介しプロセッサ70と接続される。
図8において、外部メモリ2A、2B、2C及び2Dのそれぞれについて求めた最適なアクセスタイミングであるアクセスタイミング最適値は、プロセッサ70により個別メモリインターフェイス732A〜732D内のタイミング個別設定レジスタ732A1〜732D1に設定される。
同時に、プロセッサ70は、外部メモリ毎に求めたアクセスタイミング最適値を不揮発性メモリ32の特定の領域に書込みを行う。
さらに、プロセッサ70は、アクセスタイミング最適値を不揮発性メモリ32に書き込むと同時に、あるいは別のタイミングで不揮発性メモリ32に書き込んだアクセスタイミング設定値が有効であるか否かを示すタイミング設定値フラグ32Aを不揮発性メモリ32上の特定領域に書き込む。
その後、システムのリセット、あるいは電源再投入によりシステムLSI7Aの再起動が発生した場合、プロセッサ70は不揮発性メモリ32からブートコードを読み取りシステム起動している最中に、上記のタイミング設定値フラグ32Aをチェックし、有効を示していれば不揮発性メモリ32に書き込まれたアクセスタイミング最適値を個別メモリインターフェイス732A〜732D内のタイミング個別設定レジスタ732A1〜732D1に設定する。
また、反対に、タイミング設定値フラグ32Aが無効を示していれば、プロセッサ70はアクセスタイミング調整プログラムを起動し、再度アクセスタイミング調整を行って求めたアクセスタイミング最適値をタイミング個別設定レジスタ732A1〜732D1に設定する。
これにより、システムリセットあるいは電源投入毎にアクセスタイミング調整が実行される必要がなくなり、アクセスタイミング調整が必要であると判断された場合のみアクセスタイミング調整が実行されるため、システム起動時間の短縮が図られる。
ここで、タイミング設定値フラグ32Aは、プロセッサ70が必ずしも書き換える必要はなく、システムによっては出荷時に固定値が書込まれており、毎回起動時にアクセスタイミング調整が実行されたり、常に不揮発性メモリ32に書き込まれたタイミング設定値が最適値として使用されるようにすることも可能である。
また、出荷時には無効フラグとしておき、ユーザ側でのシステム起動時の初回のアクセスタイミング調整が完了した後は、有効フラグに書き換えられることで、次回のシステム起動時からは不揮発性メモリ32のタイミング最適値が使用されるようにもできる。
さらに、図9に記載された本発明の実施の形態4におけるメモリアクセスタイミング調整装置の別の実現例について以下説明する。
図9は、本発明の実施の形態4の変形例を示すメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置7cと複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置7cは、システムLSI7Aと、不揮発性メモリ33とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
図9におけるメモリアクセスタイミング調整システムは、図8に記載された実施の形態4に係るメモリアクセスタイミング調整システムと比較し、不揮発性メモリ33の機能及び構成のみが異なり、その他の構成要素については同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
図9に記載されたメモリアクセスタイミング調整システムでは、図8に記載されたタイミング設定値フラグ32Aの代わりに、システム起動の度にプロセッサ70が不揮発性メモリ33に書き込まれた起動回数カウント値33Aを読み出し、その値を更新して不揮発性メモリ33に書き戻す。システム起動時に読み出したこの起動回数カウント値33Aにより、プロセッサ70はアクセスタイミング調整を実施するか否かを決定する。
例えば、起動回数カウント値33Aが所定値よりも小さい場合は、不揮発性メモリ33に書き込まれているタイミング最適値を読み出し、個別メモリインターフェイス732A〜732D内のタイミング個別設定レジスタ732A1〜732D1にその値を設定する。
一方、起動回数カウント値33Aが所定値に達した場合は、プロセッサ70はアクセスタイミング調整プログラムを実行し、外部メモリ2A〜2Dのアクセスタイミング調整を行う。そして、得られたタイミング最適値をタイミング個別設定レジスタ732A1〜732D1に設定すると共に、不揮発性メモリ33にタイミング最適値を書き込み、起動回数カウント値33Aを決められた値に更新する。
その後、起動回数カウント値33Aが所定値に到達するまでは、システム起動時に不揮発性メモリ33に書かれたタイミング最適値をタイミング個別設定レジスタ732A1〜732D1に設定する。
なお、上記説明ではシステム起動回数をカウントし、その値をもってアクセスタイミング調整を実行するか否かの判定がなされたが、時間情報が管理できるシステムであれば、システム使用時間の合計を起動回数カウント値の代わりに不揮発性メモリ33に書き込み、アクセスタイミング調整を実行するか否かの判定基準としてもよい。
これら実施の形態4およびその変形例に示された構成により、予め不揮発性メモリに格納されたアクセスタイミング最適値とアクセスタイミング再調整により新たに得られたアクセスタイミング最適値とが、使用回数や累積時間などの条件設定によって使い分けられるので、起動時間の短縮が図られるとともにより安定したメモリアクセス動作が実現される。
(実施の形態5)
本実施の形態5におけるメモリアクセスタイミング調整装置は、さらに、複数の外部メモリの構成を示す信号を入力するためのメモリ情報入力端子を備え、当該信号に従い、複数の外部メモリに割り当てられたアドレス空間を変更、追加、又は削除する。これにより、外部メモリのサイズ、接続状況が把握されるので、外部メモリの状態に合わせたアクセスタイミング調整が実行できる。
本実施の形態5におけるメモリアクセスタイミング調整装置は、さらに、複数の外部メモリの構成を示す信号を入力するためのメモリ情報入力端子を備え、当該信号に従い、複数の外部メモリに割り当てられたアドレス空間を変更、追加、又は削除する。これにより、外部メモリのサイズ、接続状況が把握されるので、外部メモリの状態に合わせたアクセスタイミング調整が実行できる。
以下、本発明の実施の形態5におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
図10は、本発明の実施の形態5におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置8と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置8は、システムLSI8Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
システムLSI8Aは、プロセッサ80と、外部バスコントローラ81と、内蔵SRAM82と、メモリコントローラ83と、メモリ情報入力端子84とを備える。
図10におけるメモリアクセスタイミング調整システムは、図1に記載された実施の形態1に係るメモリアクセスタイミング調整システムと比較し、システムLSI8Aにメモリ情報入力端子84を備える点のみが異なり、その他の構成要素については機能的に同等である。図1と同じ点は説明を省略し、以下、異なる点のみ説明する。
図10において、システムLSI8Aは、個別メモリインターフェイス832A、832B、832C及び832Dに外部メモリが接続されているか否か、及び接続されている外部メモリ2A〜2Dの各容量等のメモリ情報を入力するためのメモリ情報入力端子84を具備している。
メモリ情報入力端子84は、例えば、システム基板上のディップスイッチに接続されており、ディップスイッチのオン/オフ状態を接続情報としてもよい。
また、メモリ情報入力端子84は、メモリコントローラ83内のアクセス選択回路831に接続されている。アクセス選択回路831は、入力されたメモリ情報に従い、プロセッサ80からのメモリアクセスタイミング調整実行命令に対して、調整対象の外部メモリに割り当てられたアドレス空間の変更、追加又は削除等を行う。
例えば、外部メモリ2Aのメモリ容量が標準のXバイトからYバイトに変更になった場合、入力されたメモリ情報からそれを判定し、必要があれば外部メモリ2A〜2Dのアクセスタイミング調整に使用するメモリアドレスを変更する。また、例えば外部メモリ2Bがシステムから取り外されていた場合には、入力されたメモリ情報からそれを判断し、外部メモリ2Aのアクセスタイミング調整完了後の次の調整対象となる外部メモリとして外部メモリ2Cを選択するという順序変更を行う。さらに、アクセス選択回路831からプロセッサ80には、外部メモリ2Bのタイミング調整をキャンセルした旨を通知するようにしてもよい。
この構成により、アクセスタイミング調整プログラムを変更せずに、メモリ構成をある程度自由度を持たせて変更することができる。また、外部メモリの状態に応じたアクセスタイミング調整が実現される。
なお、本実施の形態ではメモリ情報入力端子84をアクセス選択回路831に直接接続しているが、メモリ情報入力端子84をシステムLSI8Aのレジスタ空間にある任意のレジスタに接続し、プロセッサ80がそのレジスタの値を読み取ってアクセス選択回路831の動作を設定してもよい。もちろん、メモリ情報入力端子84の状態を反映するレジスタの値をアクセス選択回路831自身が読み取って動作状態を変更しても良い。
(実施の形態6)
本実施の形態におけるメモリアクセスタイミング調整装置は、さらに、アクセスタイミングの調整によって得られたアクセスタイミングのウィンドウ幅が、所定値以下であった場合には警告メッセージを出力する。これにより、ユーザに異常状態を通知することが可能となる。
本実施の形態におけるメモリアクセスタイミング調整装置は、さらに、アクセスタイミングの調整によって得られたアクセスタイミングのウィンドウ幅が、所定値以下であった場合には警告メッセージを出力する。これにより、ユーザに異常状態を通知することが可能となる。
以下、本発明の実施の形態6におけるメモリアクセスタイミング装置のメモリアクセスタイミング調整方法について、図面を参照しながら詳細に説明する。
図11は、本発明の実施の形態6におけるメモリアクセスタイミング調整装置の動作を表すフローチャートである。なお、本実施の形態におけるメモリアクセスタイミング調整装置は、実施の形態1から実施の形態5におけるメモリアクセスタイミング調整装置のいずれであってもよい。ここでは、メモリアクセスタイミング調整装置を実施の形態3におけるメモリアクセスタイミング調整装置7aとして説明する。
まず、プロセッサ70は、アクセスタイミング調整を開始する(ステップS11)。
次に、プロセッサ70は、アクセスタイミングを変更しながら正常動作する範囲、すなわち、ウィンドウ幅の測定を外部メモリ2A〜2Dのそれぞれに対して行う(ステップS12)。
次に、プロセッサ70は、得られたウィンドウ幅が一定幅以上であるか否かの判定を行う(ステップS13)。
ステップS13において、得られたウィンドウ幅が一定幅より大きいと判定された場合(ステップS13でYes)、プロセッサ70は、ウィンドウ幅によって決定されたアクセスタイミング最適値をメモリコントローラ73内の個別メモリインターフェイス732A〜732Dが有するタイミング個別設定レジスタ732A1〜732D1に設定する(ステップS14)。
一方、ステップS13において、得られたウィンドウ幅が一定幅以下であると判定された場合(ステップS13でNo)、システムLSI7AからシステムLSI7Aが有する画像出力回路を介して表示画面に性能低下警告のための表示を行ったり、LED表示や音で警告するための警告メッセージを出力する(ステップS15)。
最後に、アクセスタイミング調整を終了する(ステップS16)。
なお、上述した動作説明では、ウィンドウ幅が一定幅より大きいか否かの判定は一度しかなされていないが、ウィンドウ幅が一定幅以下の場合は、ウィンドウ幅の測定及びその判定を複数回繰り返すことにより、個別メモリインターフェイスのタイミング個別調整レジスタに最適値を設定したり、ユーザに警告を発信したりしてもよい。
以上の動作により、アクセスタイミング調整結果から異常状態を検知した場合にシステムLSI外部に情報を出力できるので、ユーザに異常状態を通知することが可能となる。
なお、本発明に係るメモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法は、上記実施の形態に限定されるものではない。実施の形態1ないし6における任意の構成要素を組み合わせて実現される別の実施形態や、実施の形態1ないし6に対して本発明の主旨を逸脱しない範囲で当業者が思いつく各種変形を施して得られる変形例や、本発明に係るメモリアクセスタイミング調整装置を内蔵した各種機器も本発明に含まれる。
例えば、実施の形態2では、メモリアクセスタイミング調整時に実アプリ動作状態を再現するため、特定パターンデータを発生させてメモリインターフェイスを高負荷状態としたが、実施の形態2以外の全ての実施の形態において、メモリアクセス調整時にパターン発生回路から特定パターンデータを発生させて、常にメモリインターフェイスを高負荷状態とした上でメモリアクセスタイミングの調整をしてもよい。
なお、この場合、必ずしもアクセス選択回路に接続されている必要はない。例えば、パターン発生回路は、個別メモリインターフェイスのそれぞれに直接接続されていてもよい。この場合には、プロセッサ又はアクセス選択回路が、アクセスタイミング調整対象の外部メモリに接続された個別メモリインターフェイスからは特定パターンデータを出力させず、それ以外の外部メモリに接続された個別メモリインターフェイスから特定パターンデータを出力させる指示を与えることにより、メモリインターフェイスの高負荷状態が再現される。
本発明は、メモリへのアクセスタイミングを調整するメモリアクセスタイミング調整装置及びメモリアクセスタイミング調整システムに有用であり、特にデジタルAV機器用システムLSIの高負荷動作状態でのメモリアクセスの動作マージンを拡大するメモリアクセスタイミング調整装置に用いるのに最適である。
1、4、5、6、7a、7b、7c、8 メモリアクセスタイミング調整装置
1A、4A、5A、6A、7A、8A、900 システムLSI
2 複数の外部メモリ
2A、2B、2C、2D、910A、910B、910C、910D 外部メモリ
3、31、32、33 不揮発性メモリ
10、40、50、60、70、80、901 プロセッサ
11、41、51、61、71、81、902 外部バスコントローラ
12、42、52、62、72、82 内蔵SRAM
13、43、53、63、73、83、903 メモリコントローラ
32A タイミング設定値フラグ
33A 起動回数カウント値
84 メモリ情報入力端子
131、431、531、631、731、831 アクセス選択回路
132、432、532、632、732、832、904 メモリインターフェイス
132A、132B、132C、132D、432A、432B、432C、432D、532A、532B、532C、532D、632A、632B、632C、632D、732A、732B、732C、732D、832A、832B、832C、832D
個別メモリインターフェイス
431A、531A メモリ選択レジスタ
431B アドレス変換回路
531B セレクタ回路
633 パターン発生回路
732A1、732B1、732C1、732D1 タイミング個別設定レジスタ
920 外部不揮発性メモリ
930 外部SRAM
1A、4A、5A、6A、7A、8A、900 システムLSI
2 複数の外部メモリ
2A、2B、2C、2D、910A、910B、910C、910D 外部メモリ
3、31、32、33 不揮発性メモリ
10、40、50、60、70、80、901 プロセッサ
11、41、51、61、71、81、902 外部バスコントローラ
12、42、52、62、72、82 内蔵SRAM
13、43、53、63、73、83、903 メモリコントローラ
32A タイミング設定値フラグ
33A 起動回数カウント値
84 メモリ情報入力端子
131、431、531、631、731、831 アクセス選択回路
132、432、532、632、732、832、904 メモリインターフェイス
132A、132B、132C、132D、432A、432B、432C、432D、532A、532B、532C、532D、632A、632B、632C、632D、732A、732B、732C、732D、832A、832B、832C、832D
個別メモリインターフェイス
431A、531A メモリ選択レジスタ
431B アドレス変換回路
531B セレクタ回路
633 パターン発生回路
732A1、732B1、732C1、732D1 タイミング個別設定レジスタ
920 外部不揮発性メモリ
930 外部SRAM
Claims (20)
- 複数の外部メモリへアクセスするタイミングを調整するメモリアクセスタイミング調整装置であって、
前記複数の外部メモリのそれぞれに対し個別に接続され、メモリアクセスにおけるデータの送受信を行う複数の個別メモリインターフェイスと、
前記複数の外部メモリのうち選択された外部メモリに対して当該選択された外部メモリに接続された個別メモリインターフェイスからデータを複数回送受信させることによりアクセスタイミングを調整する制御手段とを備える
ことを特徴とするメモリアクセスタイミング調整装置。 - 前記複数の外部メモリは、第1のクロック信号に同期して入出力動作するクロック同期型メモリであり、
前記複数の個別メモリインターフェイスのそれぞれは、前記第1のクロック信号を遅延させた第2のクロック信号を使用してデータの入出力動作をし、
前記アクセスタイミングは、前記第1のクロック信号と前記第2のクロック信号との位相差であり、
前記制御手段は、前記個別メモリインターフェイスにおけるアクセスタイミングを順次変更させながらアクセスが成功したか否かをその都度判定し、当該アクセスが成功した前記位相差の範囲内に最適なアクセスタイミングを調整する
ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。 - 前記メモリアクセスタイミング調整装置は、さらに、
特定のパターンデータを発生するパターン発生回路を備え、
前記制御手段は、前記選択された外部メモリ以外の外部メモリに接続された個別メモリインターフェイスから前記選択された外部メモリ以外の外部メモリへ前記特定のパターンデータを送信させることにより、前記複数の外部メモリに負荷をかける
ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。 - 前記メモリアクセスタイミング調整装置は、さらに、
前記選択された外部メモリを示すビットを保持するメモリ選択レジスタと、
前記複数の個別メモリインターフェイスに接続され、前記選択された外部メモリを示すビットに対応する外部メモリのアドレスを出力するアドレス変換回路とを備える
ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。 - 前記メモリアクセスタイミング調整装置は、さらに、
前記選択された外部メモリを示すビットを保持するメモリ選択レジスタと、
前記複数の個別メモリインターフェイスに接続され、前記選択された外部メモリを示すビットにより、前記選択された外部メモリに接続された個別メモリインターフェイスを選択するセレクタ回路とを備える
ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。 - 前記メモリアクセスタイミング調整装置は、さらに、
前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する最適なアクセスタイミングを記憶する不揮発性メモリを備え、
前記複数の個別メモリインターフェイスのそれぞれは、
前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するアクセスタイミング個別設定レジスタを備え、
前記複数の個別メモリインターフェイスのそれぞれは、前記タイミング個別設定レジスタに記憶された前記最適なアクセスタイミングを、前記選択された外部メモリとのデータアクセスに使用する
ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。 - 前記メモリアクセスタイミング調整装置は、さらに、
前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する最適なアクセスタイミングと、システム起動の回数とを記憶する不揮発性メモリを備え、
前記複数の個別メモリインターフェイスのそれぞれは、
前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するタイミング個別設定レジスタを備え、
前記制御手段は、所定回数を起動するごとに、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込む
ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。 - 前記メモリアクセスタイミング調整装置は、さらに、
前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する最適なアクセスタイミングと、当該最適なアクセスタイミングが有効か否かを示すタイミング設定値フラグとを記憶する不揮発性メモリを備え、
前記複数の個別メモリインターフェイスのそれぞれは、
前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するタイミング個別設定レジスタを備え、
前記制御手段は、システム起動時に、前記タイミング設定値フラグが無効の場合は、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込む
ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。 - 前記メモリアクセスタイミング調整装置は、さらに、
前記複数の外部メモリの構成を示す信号を入力するためのメモリ情報入力端子を備え、
前記複数の外部メモリの構成を示す信号に従い、前記複数の外部メモリに割り当てられたアドレス空間を変更、追加、又は削除する
ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。 - 前記制御手段は、前記アクセスタイミングの調整によって得られたアクセスタイミングの最適範囲が、所定値以下であった場合には警告メッセージを出力する
ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。 - 複数の外部メモリと当該複数の外部メモリにアクセスする複数の個別メモリインターフェイスとを有するメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法であって、
前記複数の外部メモリの中からアクセスタイミングを調整すべき外部メモリを選択する外部メモリ選択ステップと、
前記外部メモリ選択ステップにて選択された外部メモリに対し個別に接続された個別メモリインターフェイスから、前記選択された外部メモリへデータを送受信することによりアクセスタイミングを調整するアクセスタイミング調整ステップとを含む
ことを特徴とするメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。 - 前記複数の外部メモリは、第1のクロック信号に同期して入出力動作するクロック同期型メモリであり、
前記複数の個別メモリインターフェイスのそれぞれは、前記第1のクロック信号を遅延させた第2のクロック信号を使用してデータの入出力動作をし、
前記アクセスタイミングは、前記第1のクロック信号と前記第2のクロック信号との位相差であり、
前記アクセスタイミング調整ステップでは、
前記選択された外部メモリに接続された個別メモリインターフェイスにおけるアクセスタイミングを順次変更させながらアクセスが成功したか否かをその都度判定するアクセス判定ステップと、
前記アクセス判定ステップにてアクセスが成功したと判定されたときの前記位相差の範囲内に最適なアクセスタイミングを調整する位相差調整ステップとを含む
ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。 - 前記アクセスタイミング調整ステップと同時に、
前記選択された外部メモリ以外の外部メモリへ、特定のパターンデータを発生するパターン発生回路から、前記選択された外部メモリ以外のメモリに接続された個別メモリインターフェイスを介して、特定のパターンデータを送信することにより、前記複数の外部メモリに負荷をかける外部メモリ負荷ステップを含む
ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。 - 前記外部メモリ選択ステップでは、
前記選択された外部メモリを示すビット情報をメモリ選択レジスタに保持するビット保持ステップと、
前記メモリ選択レジスタに保持されたビット情報を、前記複数の個別メモリインターフェイスに接続されたアドレス変換回路により前記選択された外部メモリのアドレスへ変換するアドレス変換ステップとを含む
ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。 - 前記外部メモリ選択ステップでは、
前記選択された外部メモリを示すビット情報をメモリ選択レジスタに保持するビット保持ステップと、
前記メモリ選択レジスタに保持されたビット情報をもとに、前記複数の個別メモリインターフェイスに接続されたセレクタ回路により、前記選択された外部メモリに接続された個別メモリインターフェイスを選択する個別メモリインターフェイス選択ステップとを含む
ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。 - 前記アクセスタイミング調整ステップの後、
前記アクセスタイミング調整ステップで調整した前記複数の外部メモリのそれぞれに対応した最適なアクセスタイミングを不揮発性メモリに書き込む最適値書き込みステップと、
前記最適値書き込みステップの後、システム起動時に、前記最適なアクセスタイミングを読み出す最適値読み出しステップと、
前記最適値読み出しステップの後、前記複数の個別メモリインターフェイスのそれぞれが個別に有するタイミング個別設定レジスタに、前記複数の外部メモリのそれぞれに対応した最適なアクセスタイミングを保持させる最適値保持ステップと、
前記最適値保持ステップの後、前記複数の外部メモリのそれぞれへのアクセスタイミングとして、前記タイミング個別設定レジスタに保持された前記最適なアクセスタイミングを使用するレジスタ最適値使用ステップとを含む
ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。 - 前記最適値書き込みステップの後、所定回数を起動するごとに、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込む最適値再書き込みステップを含む
ことを特徴とする請求項16に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。 - 前記最適値書き込みステップの後、既に前記不揮発性メモリに書き込まれている前記最適なアクセスタイミングが有効か否かを示す予め前記不揮発性メモリに書き込まれたタイミング設定値フラグが、システム起動時に無効を示す場合は、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込む最適値再書き込みステップを含む
ことを特徴とする請求項16に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。 - 前記外部メモリ選択ステップの前に、
前記複数の外部メモリの構成の変更をメモリ構成入力端子から外部信号として受信するメモリ構成認識ステップと、
前記メモリ構成認識ステップで受信したメモリ構成の変更情報に従って、前記複数の外部メモリに割り当てられたアドレス空間を変更、追加または削除するメモリアドレス変更ステップとを含む
ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。 - 前記アクセスタイミング調整ステップの後、
前記アクセスタイミングの調整によって得られたアクセスタイミングの最適範囲と、所定値とを比較する最適範囲比較ステップと、
前記最適範囲比較ステップにおいて、前記アクセスタイミングの最適範囲が前記所定値以下であった場合、警告メッセージを出力する警告出力ステップとを含む
ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008018341 | 2008-01-29 | ||
JP2008018341 | 2008-01-29 | ||
PCT/JP2009/000102 WO2009096141A1 (ja) | 2008-01-29 | 2009-01-14 | メモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2009096141A1 true JPWO2009096141A1 (ja) | 2011-05-26 |
Family
ID=40912498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009551414A Pending JPWO2009096141A1 (ja) | 2008-01-29 | 2009-01-14 | メモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20100312981A1 (ja) |
EP (1) | EP2251791A4 (ja) |
JP (1) | JPWO2009096141A1 (ja) |
CN (1) | CN101925885A (ja) |
WO (1) | WO2009096141A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201036455A (en) * | 2009-03-20 | 2010-10-01 | Tatung Co | System and method for fully automatically aligning quality of image |
WO2011106055A1 (en) * | 2010-02-23 | 2011-09-01 | Rambus Inc. | Coordinating memory operations using memory-device generated reference signals |
JP5834226B2 (ja) * | 2010-05-31 | 2015-12-16 | パナソニックIpマネジメント株式会社 | 集積回路製造方法及び半導体集積回路 |
JP5703978B2 (ja) * | 2011-06-07 | 2015-04-22 | 日産自動車株式会社 | 車両のパーキングロック制御装置 |
JP5703979B2 (ja) | 2011-06-07 | 2015-04-22 | 日産自動車株式会社 | 車両のパーキングロック制御装置 |
JP2013075651A (ja) | 2011-06-07 | 2013-04-25 | Nissan Motor Co Ltd | 車両のパーキングロック制御装置 |
JP2015056105A (ja) * | 2013-09-13 | 2015-03-23 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP2018136866A (ja) * | 2017-02-23 | 2018-08-30 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
JP7130377B2 (ja) * | 2018-01-29 | 2022-09-05 | キヤノン株式会社 | 画像処理装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03171347A (ja) * | 1989-11-30 | 1991-07-24 | Mita Ind Co Ltd | メモリチェック装置 |
JPH10232818A (ja) * | 1997-01-23 | 1998-09-02 | Hewlett Packard Co <Hp> | メモリ・コントローラ |
JP2001350668A (ja) * | 2000-06-06 | 2001-12-21 | Nec Shizuoka Ltd | メモリ読み出しタイミング調整回路 |
JP2002082830A (ja) * | 2000-02-14 | 2002-03-22 | Mitsubishi Electric Corp | インターフェイス回路 |
JP2002229846A (ja) * | 2001-02-07 | 2002-08-16 | Pfu Ltd | メモリバスシステム |
US20060106975A1 (en) * | 2004-11-12 | 2006-05-18 | International Business Machines Corporation | Structure of sequencers that perform initial and periodic calibrations in an XDRTM memory system |
JP2006338130A (ja) * | 2005-05-31 | 2006-12-14 | Fujitsu Ltd | メモリ制御方法およびこれを実施する情報処理装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3490131B2 (ja) * | 1994-01-21 | 2004-01-26 | 株式会社ルネサステクノロジ | データ転送制御方法、データプロセッサ及びデータ処理システム |
JP2970529B2 (ja) * | 1996-05-08 | 1999-11-02 | 富士ゼロックス株式会社 | 画像処理装置 |
JP4153579B2 (ja) * | 1998-01-22 | 2008-09-24 | 松下電器産業株式会社 | メモリアクセス制御装置 |
JP4634605B2 (ja) * | 1998-03-12 | 2011-02-16 | エルピーダメモリ株式会社 | データ伝送システム |
JPH11316619A (ja) | 1998-05-01 | 1999-11-16 | Nec Corp | クロックスキュー調整回路 |
JP2000339229A (ja) * | 1999-05-31 | 2000-12-08 | Mitsubishi Electric Corp | メモリテスト回路 |
US6574154B2 (en) * | 2000-09-12 | 2003-06-03 | Hitachi, Ltd. | Data transmitter |
JP2003050738A (ja) * | 2001-08-03 | 2003-02-21 | Elpida Memory Inc | キャリブレーション方法及びメモリシステム |
JP2003216479A (ja) | 2002-01-21 | 2003-07-31 | Nec Access Technica Ltd | メモリリードタイミング調整回路およびメモリリードタイミング調整方法 |
JP2005141725A (ja) | 2003-10-16 | 2005-06-02 | Pioneer Plasma Display Corp | メモリアクセス回路、そのメモリアクセス回路の動作方法およびそのメモリアクセス回路を用いる表示装置 |
US20050135167A1 (en) * | 2003-10-16 | 2005-06-23 | Nec Plasma Display Corporation | Memory access circuit for adjusting delay of internal clock signal used for memory control |
US7330992B2 (en) * | 2003-12-29 | 2008-02-12 | Micron Technology, Inc. | System and method for read synchronization of memory modules |
JP4955002B2 (ja) * | 2006-08-04 | 2012-06-20 | パナソニック株式会社 | メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム |
US7808807B2 (en) * | 2008-02-26 | 2010-10-05 | Ovonyx, Inc. | Method and apparatus for accessing a multi-mode programmable resistance memory |
US20100199060A1 (en) * | 2009-02-04 | 2010-08-05 | Panasonic Corporation | Memory controller, nonvolatile memory module, access module, and nonvolatile memory system |
-
2009
- 2009-01-14 CN CN2009801033692A patent/CN101925885A/zh active Pending
- 2009-01-14 WO PCT/JP2009/000102 patent/WO2009096141A1/ja active Application Filing
- 2009-01-14 EP EP09705607A patent/EP2251791A4/en not_active Withdrawn
- 2009-01-14 US US12/864,691 patent/US20100312981A1/en not_active Abandoned
- 2009-01-14 JP JP2009551414A patent/JPWO2009096141A1/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03171347A (ja) * | 1989-11-30 | 1991-07-24 | Mita Ind Co Ltd | メモリチェック装置 |
JPH10232818A (ja) * | 1997-01-23 | 1998-09-02 | Hewlett Packard Co <Hp> | メモリ・コントローラ |
JP2002082830A (ja) * | 2000-02-14 | 2002-03-22 | Mitsubishi Electric Corp | インターフェイス回路 |
JP2001350668A (ja) * | 2000-06-06 | 2001-12-21 | Nec Shizuoka Ltd | メモリ読み出しタイミング調整回路 |
JP2002229846A (ja) * | 2001-02-07 | 2002-08-16 | Pfu Ltd | メモリバスシステム |
US20060106975A1 (en) * | 2004-11-12 | 2006-05-18 | International Business Machines Corporation | Structure of sequencers that perform initial and periodic calibrations in an XDRTM memory system |
JP2006338130A (ja) * | 2005-05-31 | 2006-12-14 | Fujitsu Ltd | メモリ制御方法およびこれを実施する情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101925885A (zh) | 2010-12-22 |
US20100312981A1 (en) | 2010-12-09 |
EP2251791A1 (en) | 2010-11-17 |
WO2009096141A1 (ja) | 2009-08-06 |
EP2251791A4 (en) | 2011-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2009096141A1 (ja) | メモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法 | |
US10860258B2 (en) | Control circuit, memory device including the same, and method | |
US7957210B2 (en) | Variable delay circuit, memory control circuit, delay amount setting apparatus, delay amount setting method and computer-readable recording medium in which delay amount setting program is recorded | |
US10580476B2 (en) | Simulating a single data rate (SDR) mode on a dual data rate (DDR) memory controller for calibrating DDR memory coarse alignment | |
US10090065B1 (en) | Simultaneous write, read, and command-address-control calibration of an interface within a circuit | |
CN109716435B (zh) | 输入缓冲器中的偏移电压调整的设备 | |
JPWO2010134201A1 (ja) | 半導体装置 | |
US10115480B1 (en) | Double data rate synchronous dynamic random access memory (“DDR SDRAM”) data strobe signal calibration | |
JP7066556B2 (ja) | メモリシステム | |
TW201835778A (zh) | 提供用於動態隨機存取記憶體之註冊時脈驅動之命令及位址匯流排之單一資料速率模式或雙重資料速率模式 | |
KR100736675B1 (ko) | 반도체 소자 테스트 장치 | |
US20150146477A1 (en) | Semiconductor device | |
US20120229186A1 (en) | Memory interface circuit and drive capability adjustment method for memory device | |
JP2010160724A (ja) | メモリ制御システム、メモリ制御方法、メモリ制御プログラム及び記録媒体 | |
US20090319744A1 (en) | Digital Television, Memory Controller, and Method for Controlling Access of a Memory Device | |
KR20210040707A (ko) | 메모리 장치 및 이를 포함하는 메모리 시스템 | |
JP4711941B2 (ja) | メモリーのスイッチモジュール制御装置及び関連方法 | |
JP6524618B2 (ja) | 電子機器、制御方法およびプログラム | |
JP2014016925A (ja) | 情報処理システム、データ切替方法およびプログラム | |
WO2012060066A1 (ja) | 遅延回路、遅延制御装置、メモリ制御装置及び情報端末機器 | |
JPH11167530A (ja) | 信号制御回路 | |
JP2008152315A (ja) | 信号処理回路 | |
JP2009015964A (ja) | 半導体集積回路装置 | |
WO2013114615A1 (ja) | 半導体集積回路、半導体集積回路の試験方法 | |
US20180095699A1 (en) | Memory system, memory device thereof, and method for writing to and reading from memory device thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111213 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120410 |