(57)【要約】【課題】  複数の機能処理モジュールが使用する内蔵メモリのビット幅が異なる場合でも、内蔵メモリを共有することで実装する内蔵メモリを削減し、各機能処理モジュールからのメモリアクセスを並列に実現する。【解決手段】  複数の機能処理モジュールからアクセスされる内蔵メモリを搭載した半導体集積回路において、複数の機能処理モジュールから内蔵メモリへアクセスする際のアクセスバス幅が各機能処理モジュールで異なり、該アクセスバス幅が最も小さいビット幅に相当するビット構成の内蔵メモリを最も大きいビット幅に相当するビット数を満たす個数分有する内蔵メモリへ複数の機能処理モジュールからメモリアクセスが有効か否かをそのアクセスバス幅に基づいて判定し、メモリアクセスが有効と判定された場合、各機能処理モジュールからのメモリアクセスを内蔵メモリ毎に並列して実行するよう制御する。【選択図】      図１
2006155220.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能処理モジュールからアクセスされる内蔵メモリを搭載した半導体集積回路であって、
複数の機能処理モジュールから内蔵メモリへアクセスする際のアクセスバス幅が各機能処理モジュールで異なり、該アクセスバス幅が最も小さいビット幅に相当するビット構成の内蔵メモリを最も大きいビット幅に相当するビット数を満たす個数分有する内蔵メモリと、
前記複数の機能処理モジュールから前記内蔵メモリへのメモリアクセスが有効か否かを前記アクセスバス幅に基づいて判定する判定手段と、
前記判定手段でメモリアクセスが有効と判定された場合、各機能処理モジュールからのメモリアクセスを前記内蔵メモリ毎に並列して実行するよう制御する制御手段とを有することを特徴とする半導体集積回路。
【請求項２】
前記制御手段は、前記アクセスバス幅の小さい機能処理モジュールのメモリアクセスを優先して実行するよう制御することを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記制御手段は、前記アクセスバス幅の大きい機能処理モジュールのメモリアクセスを優先して実行するよう制御することを特徴とする請求項１記載の半導体集積回路。
【請求項４】
複数の機能処理モジュールからアクセスされる内蔵メモリを搭載した半導体集積回路のアクセス制御方法であって、
複数の機能処理モジュールから内蔵メモリへアクセスする際のアクセスバス幅が各機能処理モジュールで異なり、該アクセスバス幅が最も小さいビット幅に相当するビット構成の内蔵メモリを最も大きいビット幅に相当するビット数を満たす個数分有する内蔵メモリへ、前記複数の機能モジュールからメモリアクセスが有効か否かを前記アクセスバス幅に基づいて判定する判定工程と、
前記判定工程でメモリアクセスが有効と判定された場合、各機能処理モジュールからのメモリアクセスを前記内蔵メモリ毎に並列して実行するよう制御する制御工程とを有することを特徴とする半導体集積回路のアクセス制御方法。
【請求項５】
請求項４記載の半導体集積回路のアクセス制御方法をコンピュータに実行させるためのプログラム。
【請求項６】
請求項５記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の機能処理モジュールからアクセスされる内蔵メモリを搭載した半導体集積回路及びそのアクセス制御方法に関する。
【背景技術】
【０００２】
近年、半導体プロセスの急速な進化に伴い、半導体集積回路に搭載できる回路の規模も増加し、多くの機能ブロックを搭載したＬＳＩを設計することが可能である。また、内部の動作速度、最大クロック周波数の向上により高速動作も可能となり、益々高速、高性能化が進んでいる。
【０００３】
ＬＳＩに搭載される多くの機能処理ブロックは、外部メモリを参照することが一般的に行われている（例えば、特許文献１参照）。しかしながら、ＬＳＩから外部メモリを参照する際のアクセス速度の高速化は、ＬＳＩ内部の高速化に比べて進歩が遅く、外部メモリへのアクセス速度がシステムのボトルネックとなることが予想されている。
【特許文献１】特開2004-145694号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
外部メモリへのアクセス速度を上げる手法として、外部メモリのバス幅を広げる手法が挙げられる。しかしながら、外部メモリのバス幅を広げることはＬＳＩの入出力（ＩＯ）数を増加させることとなる。
【０００５】
半導体プロセスの進化はＬＳＩ内部の集積度を大きく向上させているが、ＬＳＩ外部のＩＯに関してはその利点を殆ど享受することができず、ＬＳＩ内部の集積度を向上させたとしても、ＩＯ数を増加させるとＩＯネックとなり、結果として、ＬＳＩのダイサイズを小さくすることができず、半導体プロセスの進化による小型化が実現できない。
【０００６】
また、ＬＳＩ外部のＩＯ数を増加させることは、ＬＳＩを実装するＰＣＢ基板上の配置／配線を複雑化するという問題もある。
【０００７】
一方、外部メモリを使用しない方法として、ＬＳＩ内部に外部メモリと等しいメモリを実装する手法が提案されている。ＬＳＩ内部に実装することで、メモリのバス幅を広げることができると共に外部に接続するメモリと比べてアクセス時間が短くなるため、高速なメモリへのアクセスが可能となる。
【０００８】
このＬＳＩ内部に搭載されるメモリとして、従来は内蔵ＳＲＡＭが広く使用されてきたが、内蔵ＳＲＡＭでは、サイズが大きく、大容量のメモリを搭載することは非常に困難であった。しかしながら、近年ＳＲＡＭに対してサイズの小さい内蔵ＤＲＡＭの技術が確立され、内蔵ＤＲＡＭを使用することで大きな容量のメモリをＬＳＩ内部に搭載することが可能となっている。
【０００９】
大容量の内蔵メモリをＬＳＩ内部に搭載することにより、ＬＳＩ内部に実装される各機能ブロックは広いバス幅でアクセスを発行し、広いメモリバンド幅を確保することが期待される。しかしながら、各機能処理ブロックが使用するメモリのビット構成は、ブロック毎に異なっている。つまり、各機能処理モジュールが使用するビット構成のメモリを実装する場合、そのビット構成毎の内蔵メモリを実装することになり、ＬＳＩ内のレイアウトが複雑になる。また、各メモリマスタ同士で内蔵ＤＲＡＭの共有化が図れないため、排他的に動作する機能処理モジュールが存在していたとしても、それぞれの機能処理ブロック毎に内蔵メモリが実装されているため、結果として、必要以上の容量の内蔵メモリが実装されることになる。
【００１０】
また、内蔵ＤＲＡＭといった大容量の実装可能なメモリの場合、小容量での実装は困難であり、専用に内蔵ＤＲＡＭを実装すると必要以上の容量の内蔵ＤＲＡＭを搭載しなければならないという可能性があり、無駄な内蔵メモリを実装することになる。
【００１１】
反面、広いビット構成を使用する機能処理モジュールに合わせて、共有の内蔵メモリを実装する場合、全ての機能処理モジュールより広いビット幅単位でメモリアクセスが発行されることになる。そのため、狭いビット構成でアクセスする複数の機能処理モジュールが内蔵メモリへのアクセスを発行した場合でも、それらのメモリアクセスはシリアライズされることになり、システムとしての高速動作、並列動作を制限してしまう。
【００１２】
本発明は、上述の課題を解決するためになされたもので、複数の機能処理モジュールが使用する内蔵メモリのビット幅が異なる場合でも、内蔵メモリを共有することで実装する内蔵メモリを削減し、各機能処理モジュールからのメモリアクセスを並列に実現することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、複数の機能処理モジュールからアクセスされる内蔵メモリを搭載した半導体集積回路であって、複数の機能処理モジュールから内蔵メモリへアクセスする際のアクセスバス幅が各機能処理モジュールで異なり、該アクセスバス幅が最も小さいビット幅に相当するビット構成の内蔵メモリを最も大きいビット幅に相当するビット数を満たす個数分有する内蔵メモリと、前記複数の機能処理モジュールから前記内蔵メモリへのメモリアクセスが有効か否かを前記アクセスバス幅に基づいて判定する判定手段と、前記判定手段でメモリアクセスが有効と判定された場合、各機能処理モジュールからのメモリアクセスを前記内蔵メモリ毎に並列して実行するよう制御する制御手段とを有することを特徴とする。
【００１４】
また、本発明は、複数の機能処理モジュールからアクセスされる内蔵メモリを搭載した半導体集積回路のアクセス制御方法であって、複数の機能処理モジュールから内蔵メモリへアクセスする際のアクセスバス幅が各機能処理モジュールで異なり、該アクセスバス幅が最も小さいビット幅に相当するビット構成の内蔵メモリを最も大きいビット幅に相当するビット数を満たす個数分有する内蔵メモリへ、前記複数の機能モジュールからメモリアクセスが有効か否かを前記アクセスバス幅に基づいて判定する判定工程と、前記判定工程でメモリアクセスが有効と判定された場合、各機能処理モジュールからのメモリアクセスを前記内蔵メモリ毎に並列して実行するよう制御する制御工程とを有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、複数の機能処理モジュールが使用する内蔵メモリのビット幅が異なる場合でも、内蔵メモリを共有することで実装する内蔵メモリを削減し、各機能処理モジュールからのメモリアクセスを並列に実現することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。尚、本実施形態では、メモリへのアクセスビット幅が異なる複数の機能処理モジュールが半導体集積回路に接続され、各機能処理モジュールから内部に実装された内蔵メモリへのアクセスを並列に実現するシステムのメモリアクセス制御について説明する。
【００１７】
図１は、本実施形態におけるシステムの構成の一例を示す図である。図１に示すように、システムは、２５６ビット幅で内蔵メモリへアクセスする２つの機能処理回路ＭＳＴ０（１１７）及びＭＳＴ１（１１８）と、５１２ビット幅で内蔵メモリへアクセスする２つの機能処理回路ＭＳＴ２（１１９）及びＭＳＴ３（１２０）と、１０２４ビット幅で内蔵メモリへアクセスする２つの機能処理回路ＭＳＴ４（１２１）及びＭＳＴ５（１２２）とを有する。また、本システムでは、内蔵メモリへのアクセスを発行する最小のビット幅が２５６ビットであり、最大のビット幅が１０２４ビットであるため、内蔵メモリとして、２５６ビット幅のＲＡＭ０（１０１）、ＲＡＭ１（１０２）、ＲＡＭ２（１０３）、ＲＡＭ３（１０４）を４組搭載し、最大１０２４ビット幅のメモリを実現するものである。
【００１８】
尚、本実施形態では、各内蔵メモリの容量は１メガビット（Mbit）であり、合計４メガビットの内蔵メモリがシステム内に搭載されている。
【００１９】
それぞれの機能処理回路は、マルチプレクサ（ＭＵＸ）を介してアクセスデコード回路（１１０）内のアクセスデコード機構に対してメモリアクセスを発行する。このアクセスデコード機構は機能処理回路のメモリアクセスビット幅構成毎に用意されており、本実施形態では、２５６ビット、５１２ビット、１０２４ビットの３構成の機能処理回路が存在し、各ビット幅構成に合わせて２５６ビット用のアクセスデコード機構０（１１３）と、５１２ビット用のアクセスデコード機構１（１１４）と、１０２４ビット用のアクセスデコード機構２（１１５）とを有する。
【００２０】
以下にアクセスデコード機構０〜２（１１３〜１１５）の機能について説明する。
【００２１】
アクセスデコード機構０〜２（１１３〜１１５）は、各機能処理回路からのメモリアクセスコマンドを受信し、アクセスするメモリに対するコマンドへと変換する。具体的には、書き込みアクセスか読み込みアクセスかの判定、各機能処理回路から発行されたメモリアドレスをデコードし、実装されるどのメモリのどの番地にアクセスするかのデコードを行う。アドレスのデコードに関しては、各アクセスデコード機構の司るバス幅に依存して変更される。
【００２２】
ここで、各メモリの取り扱うアドレス空間を図２に示す。各内蔵メモリは２５６ビット単位でアドレッシングされ、２５６ビット単位にアドレスが「１」加算される。アクセスデコード機構は、機能処理回路のアクセスビット幅に応じたアドレスに従ってアクセスを発行するメモリのアドレスへと変換する。
【００２３】
２５６ビットでアクセスが発行される機能処理回路の場合、内蔵メモリと同様に２５６ビット単位でアドレッシングされ、４メガビット空間をアクセスするために、アドレスとして［0000h］番地〜［3FFFh］番地までのアドレスを内蔵メモリのアドレスとしてマッピングする。その際、２５６ビット幅に対応したアドレス変換機構は［0000h］番地〜［0FFFh］番地までをＲＡＭ０（１０１）の空間、［1000h］番地〜［1FFFh］番地までをＲＡＭ１（１０２）の空間、［2000h］番地〜［2FFFh］番地までをＲＡＭ２（１０３）の空間、そして［3000h］番地〜［3FFFh］番地までをＲＡＭ３（１０４）の空間としてアドレスをデコードする。例えば、ＭＳＴ０（１１７）から［2400h］番地へのアクセスが発行されると、２５６ビット幅に対応したアクセスデコード機構０（１１３）はＲＡＭ２（１０３）の［0400h］番地へのアクセスを発行する。
【００２４】
図３は、２５６ビットに対応したアクセスデコード機構０（１１３）の構成を示す図である。まず、アクセスインターフェース（３０１）を介して機能処理回路からのアクセスを受け取り、アドレス、コマンドをバッファ（３０３）へと取り込む。そして、アドレスの上位２ビットをアクセス選択信号（３０２）としてＤＥＭＵＸ（３０４）へと入力する。このＤＥＭＵＸ（３０４）は下位１２ビットのアドレス、コマンドをアクセス選択信号（３０２）が「00」の場合はＲＡＭ０（１０１）、「01」の場合はＲＡＭ１（１０２）、「10」の場合はＲＡＭ２（１０３）、「11」の場合はＲＡＭ３（１０４）へと振り分け、コマンドディスパッチャーCommand Dispatcher（１１１）へとコマンドを伝達する。
【００２５】
次に、５１２ビットでアクセスが発行される機能処理回路の場合、５１２ビット単位でアドレッシングされ、５１２ビット毎にアドレスが「１」加算される。４メガビット空間をアクセスするために、アドレスとして［0000h］番地〜［1FFFh］番地までのアドレスを内蔵メモリのアドレスとしてマッピングする。５１２ビット幅に対応したアクセスデコード機構１（１１４）は、５１２ビット幅の１回のアクセスに対して２つの内蔵メモリへのアクセスを発行する。その際、５１２ビット幅に対応したアドレス変換機構１（１１４）は、［0000h］番地〜［0FFFh］番地までをＲＡＭ０（１０１）及びＲＡＭ１（１０２）の空間、［1000h］番地〜［1FFFh］番地までをＲＡＭ２（１０３）及びＲＡＭ３（１０４）の空間としてアクセスを発行する。例えば、ＭＳＴ２（１１９）から［0A00h］番地へのアクセスが発行されると、５１２ビット幅に対応したアクセスデコード機構１（１１４）はＲＡＭ０（１０１）及びＲＡＭ１（１０２）双方の［0A00h］番地へのアクセスを発行する。
【００２６】
図４は、５１２ビットに対応したアクセスデコード機構１（１１４）の構成を示す図である。まず、アクセスインターフェース（４０１）を介して機能処理回路からのアクセスを受け取り、アドレス、コマンドをバッファ（４０３）へと取り込む。そして、アドレスの上位１ビットをアクセス選択信号（４０２）としてＤＥＭＵＸ（４０４）へと入力する。このＤＥＭＵＸ（４０４）は下位１２ビットのアドレス、コマンドをアクセス選択信号（４０２）が「０」の場合はＲＡＭ０（１０１）及びＲＡＭ１（１０２）へのアクセス、「１」の場合はＲＡＭ２（１０３）及びＲＡＭ３（１０４）へのアクセスとして振り分け、コマンドディスパッチャーCommand Dispatcher（１１１）へとコマンドを伝達する。各アクセスは、コマンドディスパッチャー（１１１）の手前で分割される。
【００２７】
そして、１０２４ビットでアクセスが発行される機能処理回路の場合、１０２４ビット単位でアドレッシングされ、１０２４ビット毎にアドレスが「１」加算される。ここで、４メガビット空間をアクセスするために、アドレスとして［0000h］番地〜［0FFFh］番地までのアドレスを内蔵メモリのアドレスとしてマッピングする。１０２４ビット幅に対応したアクセスデコード機構２（１１５）は、１０２４ビット幅の１回のアクセスに対して４つの内蔵メモリへのアクセスを発行する。即ち、１回のアクセスに対してＲＡＭ０（１０１）、ＲＡＭ１（１０２）、ＲＡＭ２（１０３）、ＲＡＭ３（１０４）へのアクセスを発行する。例えば、ＭＳＴ４（１２１）から［0800h］番地へとアクセスが発行されると、１０２４ビット幅に対応したアクセスデコード機構２（１１５）はＲＡＭ０（１０１）、ＲＡＭ１（１０２）、ＲＡＭ２（１０３）、ＲＡＭ３（１０４）の全ての［0800h］番地へのアクセスを発行する。
【００２８】
図５は、１０２４ビットに対応したアクセスデコード機構２（１１５）の構成を示す図である。まず、アクセスインターフェース（５０１）を介して機能処理回路からのアクセスを受け取り、アドレス、コマンドをバッファ（５０２）へと取り込む。そして、バッファからそのままコマンドディスパッチャーCommand Dispatcher（１１１）へとコマンドを伝達する。各アクセスはコマンドディスパッチャー（１１１）の手前で分割される。
【００２９】
次に、コマンドディスパッチャー（１１１）は各ビット幅に対応したアクセスデコード機構０〜２（１１３〜１１５）からのアクセスを受け取ると共に、キュー制御回路（１１２）によりキューの状態を参照し、受け取ったアクセスをキューのどの段数に入力するかを指定する。
【００３０】
本実施形態では、コマンド発行機構（１０６）内に各内蔵メモリへのアクセスキュー（１０７）を有し、各内蔵メモリへのアクセスキュー（１０７）を４段とする。
【００３１】
図６は、本実施形態におけるアクセスキューの詳細な構成を示す図である。図６に示すように、アクセスキュー（１０７）は、キューフラグ（６０３）、コマンドバッファ（６０４）、データバッファ（６０５）で構成されている。また、キューフラグ（６０３）は１ビット、コマンドバッファ（６０４）は１２ビットのアドレスと読み込み又は書き込み方向を示す１ビットのフラグの１３ビット、データバッファ（６０５）は２５６ビットである。
【００３２】
図６に示す構成において、アクセスキュー（１０７）からは一番上位に格納されているコマンドが出力される。キューフラグ（６０３）は、その段に有効なコマンド、データが存在するか否かを示し、有効である場合は「１」、それ以外は「０」である。
【００３３】
キュー選択回路（１０８）は、キュー指定信号（６０２）、アクセスコマンド、データ、アクセス有効信号を受け取り、キュー出力信号（６０１）を入力し、各キュー（１０７）へコマンド、データを出力する。キュー指定信号（６０２）、アクセスコマンド、データ、アクセス有効信号はアクセスデコード回路（１１０）より出力され、キュー指定信号（６０２）にてどのキューの段数にコマンド、データを入力するかが指定される。
【００３４】
また、キュー選択回路（１０８）は、アクセス有効信号が有効を示す時に、キュー指定信号（６０２）とメモリ制御回路より発行されるキュー出力信号（６０１）とを参照し、キュー出力信号（６０１）が発行されていない場合はキュー指定信号（６０２）に示された段数に、キュー出力信号（６０１）が発行されている場合はキュー指定信号（６０２）で指定された段数より１つ進んだ段数にコマンド、データを出力する。
【００３５】
例えば、キュー指定信号（６０２）が３段目を指定して、キュー出力信号（６０１）が発行されていない場合はコマンド、データを３段目に出力し、キュー出力信号（６０１）が発行されている場合はコマンド、データを２段目に出力するように制御する。
【００３６】
アクセスキュー（１０７）は、キュー出力信号（６０１）が発行されると、１段目のコマンド、データ、キューフラグ（６０３）の値をメモリ制御回路（１０５）に出力する。また同時に、前段のコマンド、データ、或いはキュー選択回路（１０８）より出力されたコマンド、データを取り込む。後述するが、コマンドディスパッチャー（１１１）において空きキュー段に対してアクセスコマンド、データを発行するため、キュー内のデータの衝突は回避される。また、４段目のキューはキュー選択回路（１０８）からの入力がない場合、キューフラグ（６０３）を無効とし、コマンド、データに関しては処理を行わない。
【００３７】
また、キュー出力信号（６０１）が発行されていない場合は、各キュー段はキュー選択回路（１０８）よりコマンドの入力がない限りキューの情報を保持する。キュー選択回路（１０８）よりコマンド、データの入力がなされると、各キュー段はコマンドとデータを保持すると共にキューフラグ（６０３）を有効とする。
【００３８】
また、各段のキューフラグ（６０３）は、キュー状態信号（１０９）として出力され、各アクセスキュー（１０７）は４ビット、４組のキューで１６ビットのキュー状態信号（１０９）をアクセスデコード回路（１１０）へと発行する。
【００３９】
アクセスデコード回路（１１０）内のコマンドディスパッチャー（１１１）は、発行されたキュー状態信号（１０９）を参照し、各コマンドをどのキューの段数へアクセスするかを決定する。
【００４０】
図８は、本実施形態におけるコマンドディスパッチャー（１１１）の構成の一例を示す図である。図８に示すように、コマンドディスパッチャー（１１１）は、キューの状態からキューへのコマンド発行を制御するキュー制御機構（１１２）とコマンド制御機構（１１６）とに分けられ、コマンド制御機構（１１６）は各内蔵メモリに対応したコマンド選択機構（８０１）と選択信号生成回路（８０５）とから構成されている。そして、キュー制御機構（１１２）は、キュー状態信号（１０９）より２５６ビット幅、５１２ビット幅、１０２４ビット幅のアクセスがキューの何段目に入ることができるかの選択信号を生成する。
【００４１】
２５６ビット幅は各キューの空きで一番上位のものを指示し、５１２ビット幅はＲＡＭ０（１０１）、ＲＡＭ１（１０２）又はＲＡＭ２（１０３）、ＲＡＭ３（１０４）に対応するキューで双方のキューで同じ段数の空きで一番上位の者を指示し、１０２４ビット幅は全てのキューで同じ段数での空きで一番上位のものを指示し、選択信号としてコマンド選択機構（８０１）に対して発行する。
【００４２】
２５６ビット幅に対するキュー選択信号はＲＡＭ０（１０１）、ＲＡＭ１（１０２）、ＲＡＭ２（１０３）、ＲＡＭ３（１０４）に対応して４組、また５１２ビット幅に対するキュー選択信号はＲＡＭ０（１０１）、ＲＡＭ１（１０２）の組とＲＡＭ２（１０３）、ＲＡＭ３（１０４）の組に対応して２組、更に１０２４ビット幅に対するキュー指定信号（８０６）は全ての内蔵メモリに対応して１組発行され、各コマンド選択機構（８０１）に出力される。
【００４３】
各コマンド選択機構（８０１）は対応する内蔵メモリに応じた選択信号が２５６ビット幅、５１２ビット幅、１０２４ビット幅の３系統分入力される。
【００４４】
図７を用いてキュー制御機構の制御手法を示す。図の上辺から１段、２段、３段、４段とすると１段目はキューの先頭であり、４段目はキューの最後尾を示す。各キュー要素の中に示される「有効」のフラグは、そのキューの中に有効なメモリアクセスが入っていることを示しており、空欄のキュー要素には有効メモリアクセスコマンドが入っておらず、新たにメモリアクセスコマンドを挿入することが可能な状態であることを示している。
【００４５】
図７に示す状態をキュー状態信号（１０９）が示すとき、キュー制御機構（１１２）は、ＲＡＭ０（１０１）に対応するコマンド選択機構（８０１）に対して２５６ビット幅系統のキュー指定信号（８０６）は４段目、５１２ビット幅系統のキュー指定信号（８０６）は４段目、１０２４ビット幅系統のキュー指定信号（８０６）は４段目を示している。
【００４６】
また、ＲＡＭ１（１０２）に対応するコマンド選択機構（８０１）に対しては、２５６ビット系統のキュー指定信号（８０６）は１段目、５１２ビット、１０２４ビットはＲＡＭ０（１０１）に対応するコマンド選択機構（８０１）と同一の信号が示される。
【００４７】
更に、ＲＡＭ２（１０３）に対応するコマンド選択機構（８０１）に対しては、２５６ビット幅系統のキュー指定信号（８０６）は３段目、５１２ビット幅のキュー指定信号（８０６）は３段目、１０２４ビット幅のキュー指定信号（８０６）はＲＡＭ０（１０１）、ＲＡＭ１（１０２）に対応するコマンド選択機構（８０１）と同一の信号が示される。
【００４８】
更に、ＲＡＭ３（１０４）に対応するコマンド選択機構（８０１）に対しては、２５６ビット幅系統のキュー指定信号（８０６）は１段目、５１２ビット幅、１０２４ビット幅のキュー指定信号（８０６）はＲＡＭ２（１０３）に対応するコマンド選択機構（８０１）と同一の信号が入力される。
【００４９】
コマンド選択機構（８０１）は、アクセスデコード機構０〜２（１１３〜１１５）で各内蔵メモリへと分配されたアクセスの入力と選択信号生成回路（８０５）からのアクセス選択信号（８０２，８０３，８０４）が入力される。アクセスの入力は、２５６ビット幅、５１２ビット幅、１０２４ビット幅それぞれからのアクセスが入力され、アクセス選択信号（８０２，８０３，８０４）によりコマンド選択機構（８０１）内で一つに選択される。選択信号生成回路（８０５）は、各コマンド選択機構（８０１）がどのアクセスデコード機構０〜２（１１３〜１１５）からのアクセスを取り込むかを決定するアクセス選択信号（８０２，８０３，８０４）を生成する。
【００５０】
図９は、本実施形態における選択信号生成回路（８０５）の構成の一例を示す図である。選択信号生成回路（８０５）の入力として、各内蔵メモリに対する４本の２５６ビット幅アクセス有効信号（９０３）、２本の５１２ビット幅アクセス有効信号（９０３）が入力される。６入力ＯＲ回路（９０１）の出力が１０２４ビット選択禁止信号（８０４）、ＲＡＭ０（１０１）、ＲＡＭ１（１０２）に対する２５６ビット幅アクセス有効信号（９０３）、２入力ＯＲ回路（９０２）の出力が５１２ビット選択禁止信号０（８０２）、ＲＡＭ２（１０３）、ＲＡＭ３（１０４）に対する５１２ビット幅アクセス有効信号（９０３）、２入力ＯＲ回路（９０２）の出力が５１２ビット選択禁止信号１（８０３）として出力される。１０２４ビット選択禁止信号（８０４）は全てのコマンド選択機構（８０１）へ出力され、５１２ビット選択禁止信号０（８０２）はＲＡＭ０（１０１）、ＲＡＭ１（１０２）に対応するコマンド選択機構（８０１）へ、５１２ビット選択禁止信号１（８０３）はＲＡＭ２（１０３）、ＲＡＭ３（１０４）に対応するコマンド選択機構（８０１）へと出力される。
【００５１】
コマンド選択機構（８０１）では、１０２４ビット選択禁止信号（８０４）、５１２ビット選択禁止信号（８０２，８０３）をアクセス選択信号として入力し、１０２４ビット選択禁止信号（８０４）、５１２ビット選択禁止信号（８０２，８０３）の双方が有効の場合は２５６ビット幅のアクセスのみを受け付け、１０２４ビット選択禁止信号（８０４）のみの時は５１２ビット幅のアクセスのみを受け付け、双方共に無効の場合は１０２４ビット幅アクセスを受け付けることが可能とする。
【００５２】
コマンド選択機構（８０１）にて、２５６ビット幅、５１２ビット幅、１０２４ビット幅の中から選択されたアクセスは、キュー制御機構（１１２）により生成されたキュー指定信号（８０６）のうち、該当するビット幅のキュー段数を選択し、コマンド、データ、キュー指定信号（６０２）をアクセスキュー（１０７）へと発行する。
【００５３】
アクセスキュー（１０７）は、対応するメモリ制御回路（１０５）と接続されている。各メモリ制御回路（１０５）は、アクセスを受信するタイミングでキューに対してキュー出力信号（６０１）を発行し、キューの先頭のコマンド、データ、キューフラグ（６０３）を受け取る。ここで、キューフラグ（６０３）が「１」を示していないときはアクセスがないと判定し、内蔵メモリへのアクセスを発行しない。一方、キューフラグ（６０３）が「１」を示しているときは、受け取ったコマンド、データに基づいてメモリアクセスを発行する。４組のメモリ制御回路（１０５）は同期して動作し、同一のサイクルタイミングでキュー出力信号（６０１）を発行する。本実施形態では、メモリ制御回路（１０５）のアクセス応答時間は３サイクルとする。
【００５４】
以上の構成からなる本実施形態におけるシステムの動作について詳細に説明する。
【００５５】
図１０は、本実施形態における各機能処理回路が発行するアクセスシーケンスの一例を示す図である。また図１１は、本実施形態における各サイクルでのキュー状態を示す図である。
【００５６】
図１０に示す「Issue」は、そのサイクルにおいて、機能処理回路がメモリアクセスを発行することを表している。
【００５７】
まず、サイクル０では、ＭＳＴ０（１１７）が［0000h］番地、ＭＳＴ４（１２１）が［0100h］番地へのアクセスを発行する。これにより、アクセスデコード機構０，２（１１３，１１５）にてそれぞれのアクセスがデコードされ、ＭＳＴ０（１１７）のアクセスはＲＡＭ０（１０１）に対応したコマンド選択機構（８０１）へと伝達され、ＭＳＴ４（１２１）のアクセスは全てのコマンド選択機構（８０１）へと伝達される。この時、選択信号生成回路（８０５）では１０２４ビット選択禁止信号（８０４）と５１２ビット選択禁止信号（８０２，８０３）とが発行されているため、２５６ビット幅のＭＳＴ０（１１７）のアクセスが選択され、図１１に示す（Ａ）のように、ＲＡＭ０（１０１）に対応したキューの先頭に出力される。
【００５８】
次に、サイクル１において、ＭＳＴ２（１１９）が［1000h］番地へのアクセスを発行する。このＭＳＴ２（１１９）によるアクセスは、アクセスデコード機構１（１１４）により、ＲＡＭ２（１０３）及びＲＡＭ３（１０４）の［0000h］番地へのアクセスとしてデコードされ、ＲＡＭ２（１０４）、ＲＡＭ３（１０５）に対応するコマンド選択機構（８０１）へと伝達される。尚、前サイクル０で発行されたＭＳＴ４（１２１）のアクセスは残っている。
【００５９】
この時、選択信号生成回路（８０５）では５１２ビット幅のＲＡＭ２（１０３）、ＲＡＭ３（１０４）へのアクセスが発行されているため、ＲＡＭ２（１０３）、ＲＡＭ３（１０４）に対応するコマンド選択信号（８０１）には、１０２４ビット選択禁止信号（８０４）が発行され、５１２ビット選択禁止信号（８０３）が発行されていないため、５１２ビット幅のアクセスであるＭＳＴ２（１１９）が選択され、図１１に示す（Ｂ）のように、ＲＡＭ２（１０３）、ＲＡＭ３（１０４）のキューの先頭に出力される。
【００６０】
次に、サイクル２ではコマンドが発行されず、１０２４ビット幅のＭＳＴ４（１２１）からのアクセスが残っているので、選択信号生成回路（８０５）では、出力するアクセス選択信号（８０２，８０３，８０４）は全て無効状態となり、ＭＳＴ４（１２１）からのアクセスがキュー（１０７）へと発行される。この時、図１１の（Ｃ）のように、キュー指定信号（６０２）は２段目を指示し、キューの２段目へとコマンドを発行する。
【００６１】
次に、サイクル３において、メモリ制御回路（１０５）よりキュー出力信号（６０１）が発行され、キューの先頭のコマンドがメモリ制御回路（１０５）へと発行される。この時、ＲＡＭ１（１０２）に対応するコマンド有効フラグ（６０３）が「０」であるため、ＲＡＭ１（１０２）に対するメモリアクセスは発行されず、ＲＡＭ０（１０１）、ＲＡＭ２（１０３）、ＲＡＭ３（１０４）へのメモリアクセスが発行される。
【００６２】
また、サイクル３では、図１０に示すように、ＭＳＴ１（１１８）から［1400h］番地へ、ＭＳＴ３（１２０）から［1400h］番地へ、ＭＳＴ５（１２２）から［0800h］番地へのアクセスがそれぞれ発行される。ＭＳＴ１（１１８）のアクセスはＲＡＭ１（１０２）に対応したコマンド選択機構（８０１）へ、ＭＳＴ３（１２０）のアクセスはＲＡＭ２（１０３），ＲＡＭ３（１０４）に対応したコマンド選択機構（８０１）へ、ＭＳＴ５（１２２）のアクセスは全てのコマンド選択機構（８０１）へと伝達される。この時、ＲＡＭ０（１０１），ＲＡＭ１（１０２）に対応するコマンド選択機構（８０１）に対して５１２ビット選択禁止信号（８０２）と１０２４ビット選択禁止信号（８０４）とが発行されており、２５６ビット幅のＭＳＴ１（１１８）のアクセスが選択される。ここで、キュー制御機構（１１２）はキューの３段目を指示し、キュー指定信号（６０２）として３段目を指定し、キューへのコマンドを発行する。しかし、キュー出力信号（６０１）も発行されているため、実際は、図１１に示す（Ｄ）のように、キューの２段目にコマンドが入力される。
【００６３】
また、ＲＡＭ２（１０３）、ＲＡＭ３（１０４）に対応するコマンド選択機構（８０１）では、１０２４ビット選択禁止信号（８０４）が発行されるが、５１２ビット選択禁止信号（８０３）が発行されないため、５１２ビット幅のＭＳＴ３（１２０）のアクセスが選択される。同様に、キュー制御機構（１１２）がキューの３段目を指示し、キュー指定信号（６０２）として３段目を指定し、コマンドを発行する。しかし、キュー出力信号（６０１）も発行されているため、実際は、図１１に示す（Ｄ）のように、キューの２段目にコマンドが入力される。
【００６４】
次に、サイクル４，５ではコマンドが発行されず、１０２４ビット幅のＭＳＴ５（１２２）からのアクセスが残っている。この時、選択信号生成回路（８０５）のアクセス選択信号（８０２，８０３，８０４）は全て無効状態となり、ＭＳＴ５（１２２）からのアクセスが図１１に示す（Ｅ）のように、キューへと発行される。
【００６５】
次に、サイクル６では、ＭＳＴ０（１１７）が［0001h］番地へ、ＭＳＴ２（１１９）が［1001h］番地へのアクセスを発行する。このＭＳＴ０（１１７）のアクセスはＲＡＭ０（１０１）に対応したコマンド選択機構（８０１）へ、ＭＳＴ２（１１９）のアクセスはＲＡＭ２（１０３），ＲＡＭ３（１０４）に対応したコマンド選択機構（８０１）へと伝達される。この時、ＲＡＭ０（１０１），ＲＡＭ１（１０２）に対応するコマンド選択機構（８０１）に対して５１２ビット選択禁止信号（８０２）と１０２４ビット選択禁止信号（８０４）双方が発行されており、２５６ビット幅のＭＳＴ０（１１７）からのアクセスが発行される。ここで、キュー制御回路（１１２）はＲＡＭ０（１０１）に対してはキューの２段目を指示し、キュー指定信号（６０２）として２段目を指定してコマンドを発行する。つまり、図１１に示す（Ｆ）のように、ＭＳＴ０（１１７）からのアクセスがキューの２段目に入力される。
【００６６】
また、ＲＡＭ２（１０３），ＲＡＭ３（１０４）に対応するコマンド選択機構（８０１）に対して１０２４ビット選択禁止信号（８０４）は発行されるが５１２ビット選択禁止信号（８０３）は発行されないため、５１２ビット幅のＭＳＴ２（１１９）からのアクセスが発行される。この時、キュー制御回路（１１２）は４段目を指示し、キュー指定信号（６０２）として４段目を指定してコマンドを発行する。つまり、図１１に示す（Ｆ）のように、ＭＳＴ２（１１９）からのアクセスがキューの４段目に入力される。
【００６７】
以上説明したように、本実施形態によれば、ＬＳＩ内部の機能処理モジュールが使用する内蔵メモリのビット幅構成が異なる場合においても、内蔵メモリを共有すると同時に、排他的に動作するメモリアクセスを並列して発行することが可能となる。
【００６８】
また、上述したキュー構成を用いることにより、空いているキュー段数にコマンド挿入が可能であるため、共有メモリに対するメモリ使用効率が向上し、システム全体の高速化、高性能化の実現が可能となる。
【００６９】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００７０】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００７１】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００７２】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００７３】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７４】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００７５】
【図１】本実施形態におけるシステムの構成の一例を示す図である。
【図２】本実施形態における内蔵メモリのアドレス空間を示す図である。
【図３】２５６ビットに対応したアクセスデコード機構０（１１３）の構成を示す図である。
【図４】５１２ビットに対応したアクセスデコード機構１（１１４）の構成を示す図である。
【図５】１０２４ビットに対応したアクセスデコード機構２（１１５）の構成を示す図である。
【図６】本実施形態におけるアクセスキューの詳細な構成を示す図である。
【図７】本実施形態におけるキュー制御機構の制御例を説明するための図である。
【図８】本実施形態におけるコマンドディスパッチャー（１１１）の構成の一例を示す図である。
【図９】本実施形態における選択信号生成回路（８０５）の構成の一例を示す図である。
【図１０】本実施形態における各機能処理回路が発行するアクセスシーケンスの一例を示す図である。
【図１１】本実施形態における各サイクルでのキュー状態を示す図である。
【符号の説明】
【００７６】
１０１  ＲＡＭ０
１０２  ＲＡＭ１
１０３  ＲＡＭ２
１０４  ＲＡＭ３
１０５  メモリ制御回路
１０６  コマンド発行機構
１０７  アクセスキュー
１０８  キュー選択回路
１０９  キュー状態信号
１１０  アクセスデコード回路
１１１  コマンドディスパッチャー（Command Dispatcher）
１１２  キュー制御機構
１１３  アクセスデコード機構０
１１４  アクセスデコード機構１
１１５  アクセスデコード機構２
１１６  コマンド制御機構
１１７  機能処理回路ＭＳＴ０
１１８  機能処理回路ＭＳＴ１
１１９  機能処理回路ＭＳＴ２
１２０  機能処理回路ＭＳＴ３
１２１  機能処理回路ＭＳＴ４
１２２  機能処理回路ＭＳＴ５
３０１  アクセスインターフェース（２５６ビット）
３０２  アクセス選択信号（２ビット）
３０３  アクセスバッファ
４０１  アクセスインターフェース（５１２ビット）
４０２  アクセス選択信号（１ビット）
４０３  アクセスバッファ
５０１  アクセスインターフェース（１０２４ビット）
５０２  アクセスバッファ
６０１  キュー出力信号
６０２  キュー指定信号
６０３  キューフラグ
７０１  ２５６ビットキュー指定信号
７０２  ５１２ビットキュー指定信号
７０３  １０２４ビットキュー指定信号
８０１  コマンド選択機構
８０２  ５１２ビット選択禁止信号
８０３  ５１２ビット選択禁止信号
８０４  １０２４ビット選択禁止信号
８０５  選択信号生成回路
８０６  キュー指定信号
９０１  ６入力ＯＲ回路
９０２  ２入力ＯＲ回路
９０３  アクセス有効信号
【図１】
2006155220.tif 000003
【図２】
2006155220.tif 000004
【図３】
2006155220.tif 000005
【図４】
2006155220.tif 000006
【図５】
2006155220.tif 000007
【図６】
2006155220.tif 000008
【図７】
2006155220.tif 000009
【図８】
2006155220.tif 000010
【図９】
2006155220.tif 000011
【図１０】
2006155220.tif 000012
【図１１】
2006155220.tif 000013