(57)【要約】【課題】外部メモリ空間を複数のバンクを通じてアクセスする場合に、そのアクセスモードを小さな物理リソースで、かつ少ないソフトコード量で切替える。【解決手段】２１はＣＰＵ、２２はメモリコントローラ、２３はバンク共有で使用するアクセスパラメータを持つパラメータセットレジスタ群であり、P0〜Pnを要素にもつパラメータセットS0〜Snが存在している。２４は最終的なアクセス対象となる外部メモリ群である。パラメータセット選択レジスタ２７はパラメータセットレジスタ群２３のS0〜Snのうち、どのパラメータセットを各バンクに対し設定するかを選択するレジスタであり、バンク毎B0〜Bmに、パラメータセットS0〜Snを唯一選択する識別子を格納する。【選択図】図２
2007188171.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵがアクセスするメモリ空間を複数のバンクに分割し、各バンクに対応するパラメータセットにより決定されるアクセスモードに基づいて、各バンクにアクセスするメモリコントローラであって、
前記パラメータセットを、各バンクで共通に使用可能なテーブルとして格納するパラメータセットレジスタから各バンクに対応するパラメータセットを選択し、各バンクに対するアクセスモードを設定するレジスタを備えるメモリコントローラ。
【請求項２】
請求項１記載のメモリコントローラであって、
前記レジスタは、前記各バンクに対応するパラメータセットの識別子を格納するメモリコントローラ。
【請求項３】
請求項２記載のメモリコントローラであって、
前記レジスタは、前記メモリ空間の未定義領域に設定されるメモリコントローラ。
【請求項４】
請求項１記載のメモリコントローラであって、
前記パラメータセットの数は、前記バンクの数より小さいメモリコントローラ。
【請求項５】
請求項４記載のメモリコントローラであって、
前記初期値は、低速モードに対応するパラメータセットであるメモリコントローラ。
【請求項６】
請求項１記載のメモリコントローラであって、
あらかじめ使用が予測されるパラメータセットを格納するＲＯＭを備えるメモリコントローラ。
【請求項７】
請求項１記載のメモリコントローラであって、
前記ＣＰＵから前記バンクへのアクセス頻度を検知し、前記アクセス頻度に応じて、前記パラメータセットを選択するバンド幅検知回路を備えるメモリコントローラ。
【請求項８】
請求項１記載のメモリコントローラであって、
前記ＣＰＵから前記バンクへのアクセス頻度を検知し、前記アクセス頻度に応じて、前記パラメータセット選択レジスタの設定値を変更するバンド幅検知回路を備えるメモリコントローラ。
【請求項９】
請求項１記載のメモリコントローラであって、
省電力モード時に、前記省電力モードに対応するアクセスモードを選択する省電力モード制御回路を備えるメモリコントローラ。
【請求項１０】
請求項１記載のメモリコントローラであって、
所定のイベントに応じて前記バンクへのアクセスモードを切替えるためのシーケンスを保持するアクセスモードシーケンサを備えるメモリコントローラ。
【請求項１１】
請求項１０記載のメモリコントローラであって、
前記イベントを検知し、前記アクセスモードシーケンサに前記バンクを切替えるタイミングを通知するイベントトリガレジスタを備えるメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部メモリ空間を複数のバンクを通じてアクセスするメモリコントローラに関し、特に、そのアクセスモードを小さな物理リソースで、かつ少ないソフトコード量で切替えることを可能にする手段に関するものである。
【背景技術】
【０００２】
図１により、従来の技術に基づく一般的なメモリコントローラの実施例として説明する。１はＣＰＵ，２はメモリコントローラ、３はバンク別に専用のアクセスパラメータを持つレジスタ群、４は最終的なアクセス対象となる外部メモリ群である。アクセスパラメータを具体的に言えば、同期／非同期モード、アクセス波形を決めるＡＣパラメータ、外部制御信号の極性、外部バースト数などの定義を含んでいる。
【０００３】
メモリコントローラ２はスレーブバス５を通じてＣＰＵ１のマスターからアクセスされる。レジスタ群３は、スレーブバス５とは異なるスレーブバス６を使用し、ＣＰＵ１によってパラメータを設定される。メモリコントローラ２はレジスタ群３に格納されたバンク毎のアクセスパラメータを、制御線７を通じて取得し、それにより決定されるアクセスモードに基づき、外部メモリ群４をアクセスするしくみになっている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のメモリコントローラでは、外部アクセス空間を分割したメモリバンク毎独立にアクセスパラメータを保持する必要があり、たとえ不使用のバンクが存在してもアクセスパラメータ用の専用レジスタが用意されるため、物理資源効率が悪かった。また、対象バンクのアクセスモードを動的に切替える場合、切替え時点において該当バンクのアクセスパラメータに相当するレジスタの設定値を個別に変更をする必要があり、アクセスパラメータに含まれる要素が実際の外部アクセスへ反映されるタイミングを一時刻に行うことが難しかった。さらに、一時的なアクセスモードの遷移で、再び元のアクセスモードに戻る場合でもその都度、該当バンクのバラメータを変更する必要があり、制御ソフトのコード量も大きくなる傾向にあった。
【０００５】
本発明は、外部メモリ空間を複数のバンクを通じてアクセスする場合に、そのアクセスモードを小さな物理リソースで、かつ少ないソフトコード量で切替えることを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、アクセスパラメータは外部アクセスバンク共通に使用可能なテーブルとして格納するパラメータセットとしてレジスタ保持し、各バンクからどのパラメータセットを使用するかを選択する方式に改める。
【０００７】
外部の異なるバンクに対して、同一のパラメータセットを指定することもできる。パラメータセットを選択するレジスタは、外部メモリ空間と同一空間上に配置し、実際のメモリアクセスと同期し、一斉に切替えが可能なしくみをとる。またその応用として、パラメータセットの選択をソフト設定するだけでなく、内部からのアクセスバンド幅や省電力モードなどに連動してハード的なシーケンス制御を行うことも可能である。
【０００８】
また、本発明は、ＣＰＵがアクセスするメモリ空間を複数のバンクに分割し、各バンクに対応するパラメータセットにより決定されるアクセスモードに基づいて、各バンクにアクセスするメモリシステムであって、前記パラメータセットを、各バンクで共通に使用可能なテーブルとして格納するパラメータセットレジスタと、前記パラメータセットレジスタから各バンクに対応するパラメータセットを選択し、各バンクに対するアクセスモードを設定するメモリコントローラとを備えることを特徴とするメモリシステムである。上記構成によれば、あらかじめ設定されたパラメータセットをバンク共有として設け、それをバンク毎に選択する形をとるので、必ずしもバンク毎に専用のパラメータセットを設ける必要はなく、実装面積を削減することができる。
【０００９】
また、本発明において、前記メモリコントローラは、前記各バンクに対応するパラメータセットの識別子を格納するパラメータセット選択レジスタを備えることを特徴とする。上記構成によれば、一時的なアクセスモードの遷移をして再び元のアクセスモードに戻る場合であっても、モード遷移時はパラメータセットの選択を変更する処理だけなので、パラメータセット自体の書換えをする必要がなく、制御ソフトのコード数軽減に貢献できる。
【００１０】
また、本発明において、前記パラメータセット選択レジスタは、前記メモリ空間の未定義領域に設定されることを特徴とする。上記構成によれば、パラメータセット選択レジスタは、外部空間と同一バス上の任意の未定義空間上に配置されているので、実際の外部アクセスのトランザクションに同期しながら、外部アクセスモードを選択されたパラメータに基づいて一時刻に変更することが可能となる。
【００１１】
また、本発明は、前記ＣＰＵが前記パラメータセットレジスタにアクセスするための第１のバスと、前記ＣＰＵが前記パラメータセット選択レジスタにアクセスするための第２のバスとを備えることを特徴とするメモリシステムである。上記構成によれば、パラメータセットレジスタとパラメータセット選択レジスタを独立して制御できるので、パラメータセットの設定、選択等の制御が容易になる。
【００１２】
また、本発明において、前記ＣＰＵは、前記第１および第２のバスを介して、前記パラメータセットレジスタおよび前記パラメータセット選択レジスタに非同期独立にアクセスすることを特徴とする。上記構成によれば、パラメータセットレジスタおよびパラメータセット選択レジスタに非同期独立にアクセスすることにより、パラメータセットの設定、選択等を迅速に行うことができる。
【００１３】
また、本発明において、前記パラメータセットの数は、前記バンクの数より小さいことを特徴とする。上記構成によれば、バンクの数（m+1）に対しパラメータセットの数（n+1）が小さいので、パラメータセットレジスタに要する実装面積削減が可能となる。その場合、異なるバンクに対して同一のパラメータセットが選択されることが前提となる。
【００１４】
また、本発明において、前記パラメータセットレジスタには、あらかじめ使用が予測されるパラメータセットが初期値として設定されることを特徴とする。上記構成によれば、あらかじめ多用されるアクセスモードのパラメータセットを初期値として持つことにより、ソフト制御によるパラメータ設定の手間が省け、ソフトコード量の低減が可能になる。
【００１５】
また、本発明において、前記初期値は、低速モードに対応するパラメータセットであることを特徴とする。上記構成によれば、初期値を低速モードに対応するパラメータセットにすることにより、スタートアップ時の処理を円滑に行うことができる。
【００１６】
また、本発明は、あらかじめ使用が予測されるパラメータセットを格納するＲＯＭを備えることを特徴とするメモリシステムである。上記構成によれば、あらかじめ使用が予測されるパラメータセットをＲＯＭに格納することで、パラメータセットを格納するためにメモリ空間を削減することができる。
【００１７】
また、本発明において、前記メモリコントローラは、前記ＣＰＵから前記バンクへのアクセス頻度を検知し、前記アクセス頻度に応じて、前記パラメータセットを選択するバンド幅検知回路を備えることを特徴とする。上記構成によれば、スレーブバスからリクエストされるトランザクションの登録数を観測し、アクセス頻度、バンド幅に最適なアクセスモードを選択することにより、アクセス頻度の増減に対応した高速、低速アクセスモードの切替えを円滑に行うことができる。
【００１８】
また、本発明において、前記メモリコントローラは、前記ＣＰＵから前記バンクへのアクセス頻度を検知し、前記アクセス頻度に応じて、前記パラメータセット選択レジスタの設定値を変更するバンド幅検知回路を備えることを特徴とする。上記構成によれば、アクセス頻度に連動してハード的なシーケンス制御をとることにより、大幅な制御効率向上が実現できる。
【００１９】
また、本発明は、省電力モード時に、前記省電力モードに対応するアクセスモードを選択する省電力モード制御回路を備えることを特徴とするメモリシステムである。上記構成によれば、省電力モード時に最適なアクセスモードを選択することにより、省電力モード時に対応したアクセスモードに円滑に遷移することができる。
【００２０】
また、本発明において、前記メモリコントローラは、所定のイベントに応じて前記バンクへのアクセスモードを切替えるためのシーケンスを保持するアクセスモードシーケンサを備えることを特徴とする。上記構成によれば、所定のイベントに応じて前記バンクへのアクセスモードを切替えるためのシーケンスを保持するので、各イベントに応じて最適なアクセスモードに設定することができる。
【００２１】
また、本発明において、前記メモリコントローラは、前記イベントを検知し、前記アクセスモードシーケンサに前記バンクを切替えるタイミングを通知するイベントトリガレジスタを備えることを特徴とする。上記構成によれば、アクセスモードを定義づけるパラメータ数やアクセスするバンク数が多く、コンフィグレーションが煩雑になりがちなメモリインタフェースを簡素な構成で実現することができる。
【００２２】
また、本発明は、ＣＰＵがアクセスするメモリ空間を複数のバンクに分割し、各バンクに対応するパラメータセットにより決定されるアクセスモードに基づいて、各バンクに対するアクセスを制御するメモリコントローラであって、前記メモリコントローラは、各バンクで共通に使用可能なテーブルとして前記パラメータセットを格納するパラメータセットレジスタから、各バンクに対応するパラメータセットを選択し、各バンクに対するアクセスモードを設定することを特徴とするメモリコントローラである。上記構成によれば、あらかじめ設定されたパラメータセットをバンク共有として設け、それをバンク毎に選択する形をとるので、アクセスモードを小さな物理リソースで、かつ少ないソフトコード量で切替えることができる。
【００２３】
また、本発明は、前記各バンクに対応するパラメータセットの識別子を格納するパラメータセット選択レジスタを備えることを特徴とするメモリコントローラである。上記構成によれば、従来はパラメータセットに含まれる要素の設定変更を、アクセスモード遷移時に個別に行っていたので、一時刻でのパラメータ変更は難しかったが、本方式ではあらかじめ用意されたパラメータを一斉に切替えることが可能となる。
【発明の効果】
【００２４】
本発明によれば、あらかじめ設定されたパラメータセットを外部メモリバンク共有として設け、それをバンク毎に選択する形をとるので、必ずしもバンク毎に専用のパラメータセットを設ける必要はなく、実装面積を削減できる。一時的なアクセスモードの遷移をして再び元のアクセスモードに戻る場合であっても、モード遷移時はパラメータセットの選択を変更する処理だけなので、パラメータセット自体の書換えをする必要がなく、制御ソフトのコード数軽減に貢献する。
【００２５】
また、従来はパラメータセットに含まれる要素の設定変更を、アクセスモード遷移時に個別に行っていたので、一時刻でのパラメータ変更は難しかったが、本方式ではあらかじめ用意されたパラメータを一斉に切替えることが可能となる。また、内部からのアクセスバンド幅や省電力モードなど、内部の状態に連動してハード的なシーケンス制御をとることにより、大幅な制御効率向上が実現できる。
【発明を実施するための最良の形態】
【００２６】
（実施形態１）
図２は本発明の第１の実施形態を示す図である。２１はＣＰＵ、２２はメモリコントローラ、２３はバンク共有で使用するアクセスパラメータを持つパラメータセットレジスタ群であり、P0〜Pnを要素にもつパラメータセットS0〜Snが存在している。２４は最終的なアクセス対象となる外部メモリ群である。アクセスパラメータのP0〜Pnに相当する要素は具体的には、同期／非同期モード、アクセス波形を決めるＡＣパラメータ、外部制御信号の極性、外部バースト数などの定義を含んでいる。メモリコントローラ２２はスレーブバス２５を通じてＣＰＵ２１のマスターからアクセスされる。レジスタ群２３はスレーブバス２５とは異なるスレーブバス２６を使用し、ＣＰＵ２１によってパラメータを設定される。パラメータセット選択レジスタ２７はパラメータセットレジスタ群２３のS0〜Snのうち、どのパラメータセットを各バンクに対し設定するかを選択するレジスタであり、バンク毎B0〜Bmに、パラメータセットS0〜Snを唯一選択する識別子を格納する。この例ではパラメータセット数（n+1）に対して、バンク数（m+1）と表現しているが、それらの数は必ずしも一致する必要はない。パラメータセット選択レジスタ２７で決定されたバンク毎に異なる、または選択によっては同一のアクセスモードに基づき、外部メモリ群２４をアクセスするしくみになっている。バンク数（m+1）に対し、パラメータセット数（n+1）を小さく持てば、パラメータ設定レジスタに要する実装面積削減が可能となる。その場合、異なるバンクに対して同一のパラメータセットが選択されることが前提となる。
【００２７】
図３はパラメータセット選択レジスタが実際に外部メモリ空間にどう配置されるかを例示するアドレスマップを示す。外部メモリバンクが0〜mまで配置されているが、パラメータセット選択レジスタは、外部空間と同一バス上、任意の未定義空間上に配置されている。これにより実際の外部アクセスのトランザクションに同期しながら、外部アクセスモードを選択されたパラメータに基づいて一時刻に変更することが可能となる。
【００２８】
（実施形態２）
第２の実施形態を図２を流用して説明する。全体構成は第１の実施形態と同様であるが、パラメータセットレジスタS0〜S1において、あらかじめ多用されるアクセスモードのパラメータセットをリセット初期値あるいはＲＯＭ化して持つことにより、ソフト制御によるパラメータ設定の手間が省け、ソフトコード量の低減となる。この場合パラメータセット選択レジスタのリセット初期値は全バンクS0を選択するものとし、S0のパラメータセットはスタートアップ時の低速モードにあたる設定にしておくのが推奨される。また、パラメータセットの一部だけをＲＯＭ化して固定使用する方法も可能である。
【００２９】
（実施形態３）
図４は本発明の第３の実施形態を示す図である。３１はＣＰＵ、３２はメモリコントローラ、３３はバンク共有で使用するアクセスパラメータを持つパラメータセットレジスタ群であり、P0〜Pnを要素にもつパラメータセットS0〜Snが存在している。３４は最終的なアクセス対象となる外部メモリ群である。アクセスパラメータのP0〜Pnに相当する要素は具体的には、同期／非同期モード、アクセス波形を決めるＡＣパラメータ、外部制御信号の極性、外部バースト数などの定義を含んでいる。
【００３０】
メモリコントローラ３２はスレーブバス３５を通じてＣＰＵ３１のマスターからアクセスされる。レジスタ群３３はスレーブバス３５とは異なるスレーブバス３６を使用し、ＣＰＵ３１によってパラメータを設定される。パラメータセット選択レジスタ３７はパラメータセットレジスタ群３３のS0〜Snのうち、どのパラメータセットを各バンクに対し設定するかを選択するレジスタであり、バンク毎B0〜Bmに、パラメータセットS0〜Snを唯一選択する識別子を格納する。この例ではパラメータセット数（n+1）に対して、バンク数（m+1）と表現しているが、それらの数は必ずしも一致する必要はない。パラメータセット選択レジスタ３７で決定されたバンク毎に異なる、または選択によっては同一のアクセスモードに基づき、外部メモリ群３４をアクセスするしくみになっている。
【００３１】
これに加え、メモリコントローラ３１内部にＣＰＵ３１からのスレーブバス３５を通じて外部メモリにアクセスする頻度を検知するバンド幅検知回路３８が設置されている。バンド幅検知回路３８はスレーブバス３５からリクエストされるトランザクションの登録数を観測し、アクセス頻度、バンド幅に最適なアクセスモードを選択すべく、パラメータセット選択レジスタに設定されている値を強制的に変更する機能を持つ。これによりアクセス頻度の増減に対応した高速、低速アクセスモードの切替えを円滑に行うことができる。バンド幅増減に対応したパラメータセット選択レジスタ自身を複数用意し、そのいずれかから選択するような制御方法も可能である。
【００３２】
（実施形態４）
図５は本発明の第４の実施形態を示す図である。４１はＣＰＵ、４２はメモリコントローラ、４３はバンク共有で使用するアクセスパラメータを持つパラメータセットレジスタ群であり、P0〜Pnを要素にもつパラメータセットS0〜Snが存在している。４４は最終的なアクセス対象となる外部メモリ群である。アクセスパラメータのP0〜Pnに相当する要素は具体的には、同期／非同期モード、アクセス波形を決めるＡＣパラメータ、外部制御信号の極性、外部バースト数などの定義を含んでいる。
【００３３】
メモリコントローラ４２はスレーブバス４５を通じてＣＰＵ４１のマスターからアクセスされる。レジスタ群４３はスレーブバス４５とは異なるスレーブバス４６を使用し、ＣＰＵ４１によってパラメータを設定される。パラメータセット選択レジスタ４７はパラメータセットレジスタ群４３のS0〜Snのうち、どのパラメータセットを各バンクに対し設定するかを選択するレジスタであり、バンク毎B0〜Bmに、パラメータセットS0〜Snを唯一選択する識別子を格納する。この例ではパラメータセット数（n+1）に対して、バンク数（m+1）と表現しているが、それらの数は必ずしも一致する必要はない。パラメータセット選択レジスタ４７で決定されたバンク毎に異なる、または選択によっては同一のアクセスモードに基づき、外部メモリ群４４をアクセスするしくみになっている。
【００３４】
これに加え、省電力モード制御回路から省電力モード識別信号がメモリコントローラ４２に入力され、省電力モード時に最適なアクセスモードを選択すべく、パラメータセット選択レジスタに設定されている値を強制的に変更する機能を持つ。これにより省電力モード時に対応したアクセスモードに円滑に遷移することができる。省電力モードに対応したパラメータセット選択レジスタ自身を別途用意し、そのいずれかから選択するような制御方法も可能である。
【００３５】
（実施形態５）
図６は本発明の第５の実施形態を示す図である。５１はＣＰＵ、５２はメモリコントローラ、５３はバンク共有で使用するアクセスパラメータを持つパラメータセットレジスタ群であり、P0〜Pnを要素にもつパラメータセットS0〜Snが存在している。５４は最終的なアクセス対象となる外部メモリ群である。アクセスパラメータのP0〜Pnに相当する要素は具体的には、同期／非同期モード、アクセス波形を決めるＡＣパラメータ、外部制御信号の極性、外部バースト数などの定義を含んでいる。
【００３６】
メモリコントローラ５２はスレーブバス５５を通じてＣＰＵ５１のマスターからアクセスされる。レジスタ群５３はスレーブバス５５とは異なるスレーブバス５６を使用し、ＣＰＵ５１によってパラメータを設定される。パラメータセット選択レジスタ５７はパラメータセットレジスタ群５３のS0〜Snのうち、どのパラメータセットを各バンクに対し設定するかを選択するレジスタであり、バンク毎B0〜Bmに、パラメータセットS0〜Snを唯一選択する識別子を格納する。この例ではパラメータセット数（n+1）に対して、バンク数（m+1）と表現しているが、それらの数は必ずしも一致する必要はない。パラメータセット選択レジスタ５７で決定されたバンク毎に異なる、または選択によっては同一のアクセスモードに基づき、外部メモリ群５４をアクセスするしくみになっている。
【００３７】
これに加え、メモリコントローラ５２内部にアクセスモードシーケンサ５８と、イベントトリガレジスタ５９が設置される。アクセスモードシーケンサ５８はあらかじめアクセスモード遷移手順をバンク毎に保持している回路であり、ここにプログラムされた順番でアクセスモードの遷移が行われる。アクセスモード遷移のタイミングは、イベントトリガレジスタ５９への書込みにより通知される。イベントトリガレジスタ５９は単純にアクセスモード遷移のタイミングを検知する目的だけなので、これを他のハード的なイベントで代替することもできる。
【産業上の利用可能性】
【００３８】
本発明のメモリコントローラは、アクセスモードを定義づけるパラメータ数やアクセスする外部バンク数が多く、コンフィグレーションが煩雑になりがちなメモリインタフェースに有用である。
【図面の簡単な説明】
【００３９】
【図１】従来の技術に基づく一般的なメモリコントローラの実施例を示す図
【図２】本発明の第１および第２の実施例を示す図
【図３】パラメータセット選択レジスタが実際に外部メモリ空間にどう配置されるかを例示するアドレスマップ
【図４】本発明の第３の実施例を示す図
【図５】本発明の第４の実施例を示す図
【図６】本発明の第５の実施例を示す図
【符号の説明】
【００４０】
１，２１，３１，４１，５１  ＣＰＵ
２，２２，３２，４２，５２  メモリコントローラ
３，２３，３３，４３，５３  パラメータセットレジスタ
４，２４，３４，４４，５４  外部メモリ
５，６，２５，２６，３５，３６，４５，４６，５５，５６  スレーブバス
７  制御線
２７，３７，４７，５７  パラメータセット選択レジスタ
３８  バンド幅検知回路
４８  省電力カード
５８  アクセスモードシーケンサ
５９  イベントトリガレジスタ
【図１】
2007188171.tif 000003
【図２】
2007188171.tif 000004
【図３】
2007188171.tif 000005
【図４】
2007188171.tif 000006
【図５】
2007188171.tif 000007
【図６】
2007188171.tif 000008