(57)【要約】  【課題】  データ転送のスループットの向上を図りながらも、各バスマスタがバス使用許可を取得するまでの待ち時間を極力短縮でき、かつ、バス使用効率の向上を図ることができるバス調停装置を提供する。  【解決手段】  バスマスタは、リード／ライトを行うデータのサイズを示すサイズ信号（例えばＣＤＳＺ）を与える。ステートマシン１５５は、サイズ信号に応じた数のバスサイクルを与えるので、バスマスタは、データを連続してリード／ライトできる。バスマスタが要求したサイズに応じた数のバスサイクルを単位として、必ず調停動作が行われる。サイズ信号はバスマスタが発行するので、データ転送に必要充分なサイズ情報の発行が可能であり、そうすると、ステートマシン１５５は、バスサイクルの最適な数を設定できる。【選択図】  図７
2011014172.tif 000002
【特許請求の範囲】
【請求項１】
バスと、
前記バスに接続される複数のバスマスタと、
前記複数のバスマスタからの複数のバス使用要求を調停して、１つのバスマスタに対して、バス使用許可を与えるバス調停手段と、を備え、
前記バスマスタは、前記バス調停手段にバス使用要求を発行する際に、リードまたはライトを行うデータのサイズを示すサイズ情報を発行し、
前記バス調停手段は、
前記複数のバスマスタの優先順位を定めた優先序列情報に従って、バス使用要求を行った単数又は複数の前記バスマスタから、１つの前記バスマスタを選択する優先制御手段と、
前記優先制御手段により選択された前記バスマスタが発行した前記サイズ情報に応じた１または複数のバスサイクルの間、前記優先制御手段が選択した前記バスマスタに対して、バス使用許可を与えるバスアクセス制御手段と、を含み、
前記優先制御手段は、前記サイズ情報に応じた１または複数のバスサイクルを単位として、前記選択を行う、データ処理装置。
【請求項２】
複数のバスマスタからの複数のバス使用要求を調停して、１つのバスマスタに対して、バス使用許可を与えるバス調停装置であって、
前記複数のバスマスタの優先順位を定めた優先序列情報に従って、バス使用要求を行った単数又は複数の前記バスマスタから、１つの前記バスマスタを選択する優先制御手段と、
前記優先制御手段により選択された前記バスマスタが発行したサイズ情報に応じた１または複数のバスサイクルの間、前記優先制御手段が選択した前記バスマスタに対して、バス使用許可を与えるバスアクセス制御手段と、を備え、
前記優先制御手段は、前記サイズ情報に応じた１または複数のバスサイクルを単位として、前記選択を行い、
前記サイズ情報は、前記バスマスタがリードまたはライトを行うデータのサイズを示す情報である、バス調停装置。
【請求項３】
前記バスアクセス制御手段は、前記複数のバスマスタのうちの所定のバスマスタ（以下、割込みバスマスタ、という）以外のバスマスタが、前記バスを使用している時に、前記割込みバスマスタからのバス使用要求があった場合、前記バスを使用している前記バスマスタの残りのバスサイクル数が所定値以上であることを条件として、そのバスマスタのバス使用を中断させ、前記割込みバスマスタにバス使用許可を与える、請求項２に記載のバス調停装置。
【請求項４】
前記優先序列情報は、前記複数のバスマスタが有する複数のバス使用要求要因の優先順位を定めており、
前記優先制御手段は、前記優先序列情報に従って、バス使用要求を行った単数又は複数の前記バスマスタが有する前記バス使用要求要因の中から、１つのバス使用要求要因を選択し、
前記バスアクセス制御手段は、前記優先制御手段により選択された前記バス使用要求要因に対応する前記バスマスタが発行している前記サイズ情報に応じた１または複数のバスサイクルの間、そのバスマスタに対して、バス使用許可を与える、請求項２又は３記載のバス調停装置。
【請求項５】
前記バスアクセス制御手段には、前記バス使用要求要因ごとに異なる値の前記サイズ情報が与えられる、請求項４記載のバス調停装置。
【請求項６】
前記優先序列情報として複数の優先順位情報セットが用意され、
前記優先制御手段は、前記バスマスタにバス使用許可を与える調停動作ごとに、前記複数の優先順位情報セットから前記優先順位情報セットを順次的かつ巡回的に選択し、選択された前記優先順位情報セットに基づいて、バス使用許可を与えるバスマスタを選択する、請求項２から５のいずれかに記載のバス調停装置。
【請求項７】
前記バスアクセス制御手段は、１バスサイクル期間の長さを示すバスサイクル期間長情報を格納するバスサイクル期間長情報格納手段を含み、前記バスサイクル期間長情報格納手段に格納された前記バスサイクル期間長情報に基づいて、バスサイクル期間の長さを制御する、請求項２から６のいずれかに記載のバス調停装置。
【請求項８】
前記バスサイクル期間長情報は、ハードウェアでの固定した設定又は前記バスマスタによる動的な設定、が可能である、請求項７記載のバス調停装置。
【請求項９】
前記バスのアドレス空間は複数のデータブロックに分割され、
前記バスサイクル期間長情報は、第１のバスサイクル期間長情報と第２のバスサイクル期間長情報とを含み、
前記バスアクセス制御手段は、
バス使用許可を得た前記バスマスタが使用するバスサイクル数が「１」の場合には、前記第１のバスサイクル期間長情報を選択し、
バス使用許可を得た前記バスマスタが使用するバスサイクル数が「２」以上の場合には、先頭のバスサイクルでは、前記第１のバスサイクル期間長情報を選択し、先頭以外のバスサイクルでは、前記アドレス情報が直前のバスサイクルの前記アドレス情報と同じ前記データブロックを指し示していれば、前記第２のバスサイクル期間長情報を選択し、前記アドレス情報が直前のバスサイクルの前記アドレス情報と異なる前記データブロックを指し示していれば、前記第１のバスサイクル期間長情報を選択する、請求項７又は８記載のバス調停装置。
【請求項１０】
前記データブロックのサイズは、ハードウェアでの固定した設定又は前記バスマスタによる動的な設定、が可能である、請求項９記載のバス調停装置。
【請求項１１】
前記第１のバスサイクル期間長情報および前記第２のバスサイクル期間長情報は、ハードウェアでの固定した設定又は前記バスマスタによる動的な設定、が可能である、請求項９又は１０記載のバス調停装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス調停機能を有するデータ処理装置及びその関連技術に関する。
【背景技術】
【０００２】
特開平８−３０５４９号公報に開示されている従来のバス制御装置は、共有バスに接続された複数のバスマスタＭ１〜Ｍ７のバス使用を制御する。このバス制御装置のバス調停回路は、最優先バスマスタＭ７以外のバスマスタＭ１〜Ｍ６からバス使用要求があった時、要求したバスマスタのうち、最も優先順位の高いバスマスタにバス使用許可を与える。また、バスマスタＭ１〜Ｍ６のいずれかがバス使用中に、最優先バスマスタＭ７からバス使用要求があった時、バス中断判定回路は、バス使用中のバスマスタの残りのバス使用時間が、所定値以内であるか否かを判別する。そして、バス中断判定回路は、それが所定値以内であれば、そのままバス使用を継続させ（全体的なシステム効率低下の防止）、所定値を超えていれば、そのバスマスタのバス使用を一時中断させ、最優先バスマスタＭ７にバス使用許可を与える（最優先バスマスタＭ７の迅速処理）。
【０００３】
次に、バスマスタＭ２がバス使用許可を与えられた場合を例に挙げて、バス使用許可を与えられた後の動作を詳細に説明する。バスマスタＭ２は、メモリのアドレスとともに、データ転送に必要なバスサイクル数情報を出力した後、データ転送を開始する。一方、バス中断判定回路は、バスマスタＭ２が出力したバスサイクル数情報を検出して、それをサイクルカウンタにセットする。そして、１バスサイクル分のデータ転送が行われるたびに、１カウントずつカウントダウンしていく。
【０００４】
そのようにして、バスマスタＭ２がデータ転送している最中に、最優先バスマスタＭ７からバス中断判定回路に対して、バス使用要求が出力されると、バス中断判定回路は、最大許容値とサイクルカウンタの値とを比較する。そして、サイクルカウンタの値が最大許容値より小さかったら、何もしないで、バスマスタＭ２にそのままデータ転送を継続させる。
【０００５】
しかし、サイクルカウンタの値が最大許容値と同じかそれより大きかったら、バス中断判定回路は、バスマスタＭ２にデータ転送を一時中断させるとともに、ホールド信号をバス調停回路に与え、その後、最優先バスマスタＭ７に対してバス使用許可を与える。
【０００６】
バス調停回路は、バス中断判定回路からホールド信号が出力されたら、新たなバス調停は行わず、ホールド信号が出力される直前の状態をそのまま保持し、ホールド信号がオフになったら、再び、バスマスタＭ２にバス使用許可を与える。
【０００７】
以上のようにして、全体的なシステム効率の低下防止と最優先バスマスタＭ７の迅速処理を実現している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平８−３０５４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、バスマスタＭ１〜Ｍ６は、バス使用許可を取得したら、最優先バスマスタＭ７からのバス使用要求がない限り、要求したバスサイクル数の間、共有バスを占有する。また、途中で、最優先バスマスタＭ７からのバス使用要求あった場合でも、一時中断があるだけで、トータルでは要求したバスサイクル数の間、共有バスを占有する。また、バス使用許可を取得した最優先バスマスタＭ７も同様に、要求したバスサイクル数の間、共有バスを占有する。ここでの、バスサイクルのクロック数はメモリ空間全体で固定となっている。この為、共有バスに、異なるアクセススピードを持った、複数の異なる種類のメモリ装置が接続されている場合、バスサイクルの一部に無駄なクロックが避けられない。
【００１０】
従って、最優先バスマスタＭ７以外のバスマスタＭ１〜Ｍ６の待ち時間が長くなって、システム全体としての処理能力が低下するという問題点がある。このような問題点は、ページ・モード等の高速アクセスモードを利用して、データ転送のスループットを向上させる場合に、特に深刻となる。つまり、これらは、高速アクセスモードではあるが、ある程度の量のデータ転送を行うことで、大きな効果があるものなので、スループットは上がるが、バスマスタＭ１〜Ｍ６の待ち時間は長くなる。
【００１１】
そこで、本発明の目的は、データ転送のスループットの向上を図りながらも、各バスマスタがバス使用許可を取得するまでの待ち時間を極力短縮でき、かつ、バス使用効率の向上を図ることができるデータ処理装置及びその関連技術を提供することである。
【課題を解決するための手段】
【００１２】
本発明の第１の形態によると、データ処理装置は、バスと、前記バスに接続される複数のバスマスタと、前記複数のバスマスタからの複数のバス使用要求を調停して、１つのバスマスタに対して、バス使用許可を与えるバス調停手段と、を備え、前記バスマスタは、前記バス調停手段にバス使用要求を発行する際に、リードまたはライトを行うデータのサイズを示すサイズ情報を発行し、前記バス調停手段は、前記複数のバスマスタの優先順位を定めた優先序列情報に従って、バス使用要求を行った単数又は複数の前記バスマスタから、１つの前記バスマスタを選択する優先制御手段と、前記優先制御手段により選択された前記バスマスタが発行した前記サイズ情報に応じた１または複数のバスサイクルの間、前記優先制御手段が選択した前記バスマスタに対して、バス使用許可を与えるバスアクセス制御手段と、を含み、前記優先制御手段は、前記サイズ情報に応じた１または複数のバスサイクルを単位として、前記選択を行う。
【００１３】
この構成によれば、バスマスタが要求したサイズに応じた数のバスサイクルが与えられるので、バスマスタは、データを連続してリード／ライトできる。このように連続してバスサイクルを取得できるというメリットをバスマスタに与えながらも、バスマスタが要求したサイズに応じた数のバスサイクルを単位として、必ず調停動作が行われるので、バスの使用効率を高めることができ、かつ、バスマスタからのバス使用要求に対する応答のレイテンシを可能な限り小さくできる。
【００１４】
しかも、リードまたはライトを行うデータのサイズ情報はバスマスタが発行するので、データ転送に必要充分なサイズ情報の発行が可能であり、そうすると、バスアクセス制御手段はバスサイクルの最適な数を設定できる。従って、この場合、バスの使用効率の一層の向上とバス使用要求に対する応答のレイテンシの一層の短縮化を図ることができる。
【００１５】
上記データ処理装置において、前記サイズ情報は、リードまたはライトするデータのバイト数Ｓを示すものであり、前記バスマスタは、前記優先制御手段にバス使用要求を発行する際に、リードまたはライト対象の先頭バイトをバイトアドレスで指し示すアドレス情報Ｐを発行し、前記バスアクセス制御手段は、前記優先制御手段が選択した前記バスマスタに対して、（数３）で示されるＮバスサイクル分のバス使用許可を与える。
【００１６】
Ｎ＝（（Ｐ＋Ｓ−１）／Ｗ）−（Ｐ／Ｗ）＋１...（数３）
ただし、
Ｗ：前記アドレス情報Ｐが指し示す領域のデータバス幅のバイト数
／：商の小数点以下を切り捨てた整数として求める除算を示す記号
【００１７】
この構成によれば、バスマスタがリードまたはライトするデータのサイズをバイト数で要求する場合においても、バスアクセス制御手段がデータバス幅に合わせて、必要充分な数のバスサイクルをバスマスタに与えることができ、バス使用効率の向上とバス使用要求に対する応答のレイテンシの短縮化を図ることができる。
【００１８】
（数３）について説明する。アドレス情報Ｐは、リード／ライトするデータの始端が第０バイト目から何バイト目にあたるかを示す。従って、（Ｐ＋Ｓ−１）は、リード／ライトするデータの終端が第０バイト目から何バイト目にあたるかを示す。
【００１９】
アドレス情報Ｐが指し示す領域のデータバス幅のバイト数Ｗは、接続されるメモリの１ワードを構成するバイト数を示すため、（（Ｐ＋Ｓ−１）／Ｗ）は、リード／ライトするデータの終端が第０ワード目から何ワード目にあたるかを示し、（Ｐ／Ｗ）は、リード／ライトするデータの始端が第０ワード目から何ワード目にあたるかを示す。よって、Ｎは、換言すれば、リード／ライトするデータのワード数を示す。従って、１ワードのデータを１バスサイクルで転送することを想定すれば、Ｎが、データ転送に必要なバスサイクルの数を示すことを容易に理解できる。
【００２０】
上記データ処理装置において、前記バスのアドレス空間は複数の領域に分割され、前記データバス幅のバイト数Ｗは、前記複数の領域ごとに設定可能であり、前記バスアクセス制御手段は、前記優先制御手段が選択した前記バスマスタが発行したアドレス情報Ｐが、前記複数の領域のいずれに相当するかを判別し、そのアドレス情報Ｐに相当する前記領域に対応する前記データバス幅のバイト数Ｗに基づいて、前記（数３）から前記Ｎを算出する。
【００２１】
この構成によれば、バスのアドレス空間が複数の領域に分割され、かつそれぞれの領域が異なるデータバス幅を有している場合においても、バスアクセス制御手段がアクセス対象となる領域のデータバス幅に合わせて、必要充分な数のバスサイクルをバスマスタに与えることができ、バス使用効率の向上とバス使用要求に対する応答のレイテンシの短縮化を図ることができる。
【００２２】
上記データ処理装置において、前記バスアクセス制御手段は、前記複数のバスマスタのうちの所定のバスマスタ（以下、割込みバスマスタ、という）以外のバスマスタが、前記バスを使用している時に、前記割込みバスマスタからのバス使用要求があった場合、前記バスを使用している前記バスマスタの残りのバスサイクル数が所定値以上であることを条件として、そのバスマスタのバス使用を中断させ、前記割込みバスマスタにバス使用許可を与える。
【００２３】
この構成によれば、バスマスタに連続でバスサイクルを取得することによるメリットを与えながらも、緊急度の高いバスマスタの迅速処理を図ることができる。詳しくは次の通りである。バスマスタに連続したバスサイクルの使用許可を与えることは、バス全体のデータスループットを高める効果を生むが、バスマスタがバス使用要求を発行してからバス使用許可を得るまでのレイテンシは大きくなる。バス使用要求からバス使用許可を得るまでを所定の時間内に完了しなければならない緊急度の高いバスマスタが存在する場合には、このようなレイテンシの増大はシステムの動作に問題を引き起こす場合がある。そこで、緊急度の高いバスマスタからのバス使用要求があり、かつ現在バスを使用しているバスマスタの残余のバスサイクル数が所定値以上の場合に、緊急度の高いバスマスタのバス使用を割り込ませることにより、スループットの増大を図りながらも、レイテンシ増大のデメリットを回避することができる。
【００２４】
上記データ処理装置において、前記複数のバスマスタは、バス使用を要求する要因として、前記複数のバスマスタよりも多いバス使用要求要因を有し、前記優先制御手段に対して、バス使用要求要因ごとにバス使用要求を行い、前記優先序列情報は、前記複数のバスマスタが有する複数の前記バス使用要求要因の優先順位を定めており、前記優先制御手段は、前記優先序列情報に従って、バス使用要求を行った単数又は複数の前記バスマスタが有する前記バス使用要求要因の中から、１つのバス使用要求要因を選択し、前記バスアクセス制御手段は、前記優先制御手段により選択された前記バス使用要求要因に対応する前記バスマスタが発行している前記サイズ情報に応じた１または複数のバスサイクルの間、そのバスマスタに対して、バス使用許可を与える。
【００２５】
この構成により、次の効果を奏するバスマスタが複数のバス使用要求要因を有している場合において、バス調停手段がバスマスタごとの調停のみを行う場合、各バスマスタ内にバス使用要求の調停を行う回路が必要になり、全体の回路規模が増加する。また、回路構成によっては、バス使用要求要因の調停のための時間的オーバーヘッドが発生する。バス調停手段がバス使用要求要因ごとの調停を行う場合、そのようなデメリットが発生しない。
【００２６】
上記データ処理装置において、前記複数のバスマスタは、前記バス使用要求要因ごとに異なる値の前記サイズ情報を発行可能である。
【００２７】
この構成によれば、バス使用要求要因ごとに、必要とするデータサイズに合わせて異なる値のサイズ情報を発行できるため、無駄なデータアクセスが減り、より一層の、バス使用効率の向上とバス使用要求に対する応答のレイテンシの短縮化を図ることができる
【００２８】
上記データ処理装置において、前記優先序列情報として複数の優先順位情報セットが用意され、前記優先制御手段は、前記バスマスタにバス使用許可を与える調停動作ごとに、前記複数の優先順位情報セットから前記優先順位情報セットを順次的かつ巡回的に選択し、選択された前記優先順位情報セットに基づいて、バス使用許可を与えるバスマスタを選択する。
【００２９】
この構成によれば、複数の優先順位情報セットから優先順位情報セットを順次的かつ巡回的に選択することにより、バスマスタへのバスサイクルの配分比率を制御できる。
【００３０】
上記データ処理装置において、前記バスアクセス制御手段は、１バスサイクル期間の長さを示すバスサイクル期間長情報を格納するバスサイクル期間長情報格納手段を含み、前記バスサイクル期間長情報格納手段に格納された前記バスサイクル期間長情報に基づいて、バスサイクル期間の長さを制御する。
【００３１】
この構成によれば、バスマスタ（例えば、ＣＰＵ）がバスサイクル期間長情報格納手段に値を書き込むことで、１バスサイクル期間を設定できるため、１バスサイクルの期間長をバスに接続されるメモリの速度に応じて最適化できる。
【００３２】
上記データ処理装置において、前記バスサイクル期間長情報は、ハードウェアでの固定した設定又は前記バスマスタによる動的な設定、が可能である。
【００３３】
この構成によれば、１バスサイクル期間をＣＰＵ等のバスマスタから設定可能であるため、回路自体の変更を伴うことなく、１バスサイクルの期間長をバスに接続されるメモリの速度に応じて最適化できる。また、バスサイクル期間長を動的に変更することにより、動作モードに応じた消費電力節減の効果も期待できる。
【００３４】
上記データ処理装置において、前記バスのアドレス空間は複数のデータブロックに分割され、前記バスサイクル期間長情報は、第１のバスサイクル期間長情報と第２のバスサイクル期間長情報とを含み、前記バスアクセス制御手段は、バス使用許可を得た前記バスマスタが使用するバスサイクル数が「１」の場合には、前記第１のバスサイクル期間長情報を選択し、バス使用許可を得た前記バスマスタが使用するバスサイクル数が「２」以上の場合には、先頭のバスサイクルでは、前記第１のバスサイクル期間長情報を選択し、先頭以外のバスサイクルでは、前記アドレス情報が直前のバスサイクルの前記アドレス情報と同じ前記データブロックを指し示していれば、前記第２のバスサイクル期間長情報を選択し、前記アドレス情報が直前のバスサイクルの前記アドレス情報と異なる前記データブロックを指し示していれば、前記第１のバスサイクル期間長情報を選択する。
【００３５】
この構成によれば、ページモード・アクセス等の高速アクセスモードを備えるメモリがバスに接続されている場合に、１バスサイクル期間長を最適化でき、バス使用効率の更なる向上とバス使用要求に対する応答のレイテンシの更なる短縮化を図ることができる。
【００３６】
上記データ処理装置において、前記データブロックのサイズは、ハードウェアでの固定した設定又は前記バスマスタによる動的な設定、が可能である。
【００３７】
この構成によれば、データブロックのサイズをＣＰＵ等のバスマスタから設定可能であるため、回路自体の変更を伴うことなく、接続されるメモリのページサイズ等に応じてデータブロックのサイズを最適化できる。
【００３８】
上記データ処理装置において、前記第１のバスサイクル期間長情報および前記第２のバスサイクル期間長情報は、ハードウェアでの固定した設定又は前記バスマスタによる動的な設定、が可能である。
【００３９】
この構成によれば、第１のバスサイクル期間長およびを第２のバスサイクル期間長をＣＰＵ等のバスマスタから設定可能であるため、回路自体の変更を伴うことなく、各バスサイクルの期間長をバスに接続されるメモリのランダムアクセス速度およびページモード・アクセスでのページアクセス速度に応じて最適化できる。
【００４０】
上記データ処理装置において、前記バスアクセス制御手段は、１バスサイクル期間の長さを示すバスサイクル期間長情報を格納するバスサイクル期間長情報格納手段を含み、前記バスサイクル期間長情報格納手段に格納された前記バスサイクル期間長情報に基づいて、バスサイクル期間の長さを制御し、前記バスのアドレス空間は複数のデータブロックに分割され、前記バスサイクル期間長情報は、第１のバスサイクル期間長情報と第２のバスサイクル期間長情報とを含み、前記バスアクセス制御手段は、バス使用許可を得た前記バスマスタが使用するバスサイクル数が「１」の場合には、前記第１のバスサイクル期間長情報を選択し、バス使用許可を得た前記バスマスタが使用するバスサイクル数が「２」以上の場合には、先頭のバスサイクルでは、前記第１のバスサイクル期間長情報を選択し、先頭以外のバスサイクルでは、前記アドレス情報が直前のバスサイクルの前記アドレス情報と同じ前記データブロックを指し示していれば、前記第２のバスサイクル期間長情報を選択し、前記アドレス情報が直前のバスサイクルの前記アドレス情報と異なる前記データブロックを指し示していれば、前記第１のバスサイクル期間長情報を選択し、前記バスのアドレス空間は複数の領域に分割され、前記データバス幅のバイト数Ｗ、前記第１のバスサイクル期間長情報、前記第２のバスサイクル期間長情報、及び、前記データブロックのサイズは、前記複数の領域ごとに設定可能であり、前記バスアクセス制御手段は、前記優先制御手段が選択した前記バスマスタが発行したアドレス情報Ｐが前記領域のいずれに相当するかを判別し、そのアドレス情報に相当する前記領域に対応する前記データバス幅のバイト数Ｗに基づいて、前記（数３）から前記Ｎを算出する。
【００４１】
この構成によれば、アドレス空間が複数の領域に分割され、領域ごとに異なるランダムアクセス速度、ページアクセス速度およびデータバス幅を持つメモリが接続された場合において、バス調停手段が、調停動作ごとに、アクセス対象の領域の設定に基づいて、第１のバスサイクル期間長、第２のバスサイクル期間長、およびデータバス幅を切り替えることにより、各バスサイクルの期間長およびバスマスタに与えるバスサイクル数が最適化される。
【００４２】
本発明の第２の形態によると、バス調停装置は、複数のバスマスタからの複数のバス使用要求を調停して、１つのバスマスタに対して、バス使用許可を与えるバス調停装置であって、前記複数のバスマスタの優先順位を定めた優先序列情報に従って、バス使用要求を行った単数又は複数の前記バスマスタから、１つの前記バスマスタを選択する優先制御手段と、前記優先制御手段により選択された前記バスマスタが発行したサイズ情報に応じた１または複数のバスサイクルの間、前記優先制御手段が選択した前記バスマスタに対して、バス使用許可を与えるバスアクセス制御手段と、を備え、前記優先制御手段は、前記サイズ情報に応じた１または複数のバスサイクルを単位として、前記選択を行い、前記サイズ情報は、前記バスマスタがリードまたはライトを行うデータのサイズを示す情報である。
【００４３】
この構成により、上記本発明の第１の形態によるデータ処理装置と同様の効果を奏する。
【００４４】
本発明の第３の形態によると、データ処理装置は、アドレス空間へのアクセスを提供するアドレスバスと、前記アドレス空間のアドレスを指定してデータの転送を行うデータバスと、前記アドレスバス及び前記データバスに接続される複数のバスマスタと、前記複数のバスマスタからの複数のバス使用要求を調停して、１つのバスマスタに対して、バス使用許可を与えるバス調停手段と、前記複数のバスマスタおよび前記バス調停手段へクロック信号を供給するクロック信号発生回路と、を備え、前記バス調停手段は、前記アドレス空間の複数の領域に対して、異なるクロック数を設定し、前記アドレス空間のアドレスを指定してデータの転送を行う一回のバスサイクルのクロック数は、指定されたアドレスを含む領域に対して設定されたクロック数であり、前記バスマスタは、バス使用要求を行う際に、転送すべきデータのアドレスとサイズを示す信号を前記バス調停手段に出力し、前記バス調停手段は、前記バスマスタの１つに、そのバスマスタが出力したアドレスとサイズに基づいて算出され、データ転送に必要なクロック数に応じたバス使用許可を与える。
【００４５】
この構成により、上記本発明の第１の形態によるデータ処理装置と同様の効果を奏する。
【００４６】
本発明の第４の形態によると、データ処理装置は、アドレス空間へのアクセスを提供するアドレスバスと、前記アドレス空間のアドレスを指定してデータの転送を行うデータバスと、前記アドレスバス及び前記データバスに接続される異なるアクセス速度を持つ複数のメモリ装置と、前記アドレスバス及び前記データバスに接続される複数のバスマスタと、前記複数のバスマスタからの複数のバス使用要求を調停して、１つのバスマスタに対して、バス使用許可を与えるバス調停手段と、前記複数のバスマスタおよび前記バス調停手段へクロック信号を供給するクロック信号発生回路と、を備え、前記バスマスタの１つは、前記メモリ装置の１つに対してアクセスを行う際に、転送すべきデータのサイズを示す信号と共にバス使用要求を前記バス調停手段に出力し、前記バスマスタの１つが、前記メモリ装置の１つに対してアクセスを行う為にバス使用許可を得る際に、前記バス調停手段は、前記バスマスタの１つに、アクセスすべきメモリ装置のアクセス速度と、そのバスマスタが出力したアドレスとサイズに基づいて算出され、データ転送に必要なクロック数に応じたバス使用許可を与える。
【００４７】
この構成により、上記本発明の第１の形態によるデータ処理装置と同様の効果を奏する。
【図面の簡単な説明】
【００４８】
付随する図面を使用した好ましい実施例の下記説明を参照することによって、本発明の前述の及び他の特徴と目的並びにそれらの達成方法は、より明らかになり、そして、その発明そのものも、最も良く理解できるであろう。
【００４９】
【図１】図１は、本発明の実施の形態によるデータ処理装置としてのプロセッサの全体構成を示すブロック図である。
【図２】図２は、図１に示した本発明の実施の形態による第１バスアービタが有する複数の優先順位情報セットを含んだ優先順位テーブルの例示図である。
【図３】図３は、図１に示した本発明の実施の形態による第２バスアービタが有する複数の優先順位情報セットを含んだ優先順位テーブルの例示図である。
【図４】図４は、図１に示した本発明の実施の形態による第２バスアービタに対する入出力信号の説明図である。
【図５】図５は、図１に示した本発明の実施の形態における第２バス使用要求要因ごとの要求サイズの例示図である。
【図６】図６は、図１に示した本発明の実施の形態によるプロセッサの論理アドレス空間の説明図である。
【図７】図７は、図４に示した本発明の実施の形態による第２バスアービタの内部構成を示すブロック図である。
【図８】図８は、図７に示した本発明の実施の形態によるステートマシンにおける状態遷移の説明図である。
【発明を実施するための形態】
【００５０】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。また、本明細書及び図面において、信号のどのビットかを示す必要があるときは、信号名の後に、［ａ：ｂ］あるいは［ａ］を付する。［ａ：ｂ］は、その信号の第ａ番目のビットから第ｂ番目のビットを意味し、［ａ］は、その信号の第ａ番目のビットを意味する。１６進数の表現に関しては、１０進数と区別するために数字の末尾に「Ｈ」を付けて表記する。また、「０ｂ」は２進数を、「０ｘ」は１６進数を意味する。１ビットの信号については、特に断らない限り、「１」をアサート（真）、「０」をネゲート（偽）、とする。
【００５１】
図１は、本発明の実施の形態によるデータ処理装置としてのプロセッサ１００の全体構成を示すブロック図である。図１に示すように、このプロセッサ１００は、中央演算処理装置（ＣＰＵ）１、グラフィックプロセッサ３、ピクセルプロッタ５、サウンドプロセッサ７、ＤＭＡ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）コントローラ９、第１バスアービタ１３、第２バスアービタ１４、バックアップコントロール回路１５、メインメモリ１７、タイマ回路１９、Ａ／Ｄコンバータ（ＡＤＣ）２０、入出力制御回路２１、外部メモリインタフェース回路２３、クロックドライバ２９、ＰＬＬ（ｐｈａｓｅ−ｌｏｃｋｅｄ  ｌｏｏｐ）回路２７、低電圧検出回路２５、第１バス３１、及び第２バス３３を含む。ここで、本実施の形態では、メインメモリ１７及び外部メモリ４５を区別して説明する必要がないときは、「メモリＭＥＭ」と表記する。
【００５２】
ＣＰＵ１は、メモリＭＥＭに格納されたプログラムに従い、各種演算やシステム全体の制御を行う。ＣＰＵ１は、第１バス３１及び第２バス３３のバスマスタであり、それぞれのバスに接続された資源にアクセスが可能である。
【００５３】
グラフィックプロセッサ３は、第１バス３１及び第２バス３３のバスマスタであり、メモリＭＥＭに格納されたデータをグラフィックデータに変換し、さらにこれを基にテレビジョン受像機（図示せず）に合わせたビデオ信号ＶＤを生成して出力する。ここで、グラフィックデータは、バックグラウンドスクリーンとスプライトとビットマップスクリーンとから合成される。バックグラウンドスクリーンは、二次元配列からなり、テレビジョン受像機のスクリーンを全て覆う大きさを持つ。そして、各配列要素は、矩形の画素集合からなる。奥行きのある背景を形成できるように、バックグラウンドスクリーンとして、第１のバックグラウンドスクリーンと第２のバックグラウンドスクリーンとが用意される。スプライトは、テレビジョン受像機のスクリーンのいずれの位置にでも配置可能な１つの矩形の画素集合からなる。バックグラウンドスクリーンやスプライトを構成する矩形の画素集合を、キャラクタと呼ぶ。ビットマップスクリーンは自由に大きさと位置を設定可能な二次元ピクセル配列からなる。
【００５４】
また、グラフィックプロセッサ３は、第１バス３１を通じて、ＣＰＵ１により制御され、また、ＣＰＵ１に対して、割込み要求信号ＩＮＲＱを発生する機能を有する。
【００５５】
ピクセルプロッタ５は、第１バス３１を通じて、ＣＰＵ１により制御され、ＣＰＵ１から与えられたピクセルデータの描画を実行する。この場合、ピクセル単位での描画が可能である。
【００５６】
ピクセルデータは、１ピクセルの表示色をＭビット（Ｍは１以上の整数）で表したデータである（カラーモード：Ｍビット／ピクセル）。本実施の形態では、Ｍ＝１〜８の例を挙げる。なお、本実施の形態では、カラーパレットを通じて表示色が指定される間接指定方式を採用している。
【００５７】
また、ピクセルプロッタ５は、キャッシュシステムにより、高速な描画と効率的なバス（第１バス３１及び第２バス３３）の使用を実現している。さらに、ピクセルプロッタ５は、第１バス３１及び第２バス３３のバスマスタであり、キャッシュ（図示せず）からメモリＭＥＭへのライト及びメモリＭＥＭからキャッシュへのライトを自律的に行うことができる。
【００５８】
サウンドプロセッサ７は、第１バス３１及び第２バス３３のバスマスタであり、メモリＭＥＭに格納されたデータをサウンドデータに変換し、さらにこれを基にオーディオ信号ＡＵを生成して出力する。
【００５９】
サウンドデータは、基本の音色となるＰＣＭ（パルスコードモジュレーション）データに対し、ピッチ変換及び振幅変調を行い合成される。振幅変調では、ＣＰＵ１によって指示されるボリューム制御の他に、楽器の波形を再現するためのエンベロープ制御の機能が用意される。
【００６０】
また、サウンドプロセッサ７は、第１バス３１を通じて、ＣＰＵ１により制御され、また、ＣＰＵ１に対して、割込み要求信号ＩＮＲＱを発生する機能を有する。
【００６１】
ＤＭＡコントローラ９は、外部バス４３に接続された外部メモリ４５から、メインメモリ１７へのデータ転送を司る。外部メモリ４５として、例えば、ＳＲＡＭ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、若しくはＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）等、任意のメモリを用いることができるし、その数も問わない。ただし、本実施の形態では、外部メモリ４５は、マスクＲＯＭやフラッシュメモリといった異なるアクセス速度を持つ複数のメモリ装置からなっている。また、ＤＭＡコントローラ９は、データ転送の完了を通知するために、ＣＰＵ１に対する割込み要求信号ＩＮＲＱを発生する機能を有する。さらに、ＤＭＡコントローラ９は、第１バス３１及び第２バス３３のバスマスタであり、また、第１バス３１を通じてＣＰＵ１により制御される。
【００６２】
メインメモリ１７は、マスクＲＯＭ、ＳＲＡＭ、及び、ＤＲＡＭのうち、必要なものを備える。本実施の形態では、メインメモリ１７をＳＲＡＭで構成する例を挙げる。
【００６３】
バックアップコントロール回路１５は、後述の低電圧検出回路２５が低電圧を検知した場合に、メインメモリ１７を非活性化する。そして、メインメモリ１７には、バッテリ４１から電源電圧が供給される。従って、電源電圧Ｖｃｃ０及びＶｃｃ１の供給が停止された場合でも、ＳＲＡＭたるメインメモリ１７のデータが保持される。
【００６４】
第１バスアービタ１３は、第１バス３１の各バスマスタからの第１バス使用要求信号を受け付け、調停を行って、１つのバスマスタに対して第１バス使用許可信号を発行する。具体的には、複数のバスマスタの第１バス３１に対する優先順位を定めた優先順位情報セットが複数用意され、第１バスアービタ１３は、複数の優先順位情報セットを順次的かつ巡回的に選択して、選択した優先順位情報セットに従って調停を行う。
【００６５】
各バスマスタは、第１バス使用許可信号を受領することによって第１バス３１の使用が許可される。ここで、第１バス使用要求信号及び第１バス使用許可信号は、図１では、第１バス調停信号ＦＡＢとして示されている。
【００６６】
第１バスアービタ１３による調停を詳しく説明する。
【００６７】
図２は、図１の第１バスアービタ１３が有する優先順位テーブルの例示図である。第１バス３１に対するアクセスの優先順位情報セットとして、４つの優先順位情報セットが用意され、それぞれが４セットの内のいずれかを指し示す２ビットの優先順位情報番号０〜３へとエンコードされている。図２では、優先順位テーブルが、優先順位情報番号０〜３を対応する優先順位情報セットへと変換する例を挙げている。
【００６８】
ここで、バスマスタ（ＣＰＵ１、グラフィックプロセッサ３、ピクセルプロッタ５、サウンドプロセッサ７、及びＤＭＡコントローラ９）は、第１バス３１の使用を要求する要因（以下、「第１バス使用要求要因」と呼ぶ。）ごとにバス使用要求を行う。従って、優先順位情報番号０〜３が示す優先順位情報セットの各々は、全ての第１バス使用要求要因の優先順位を示している。本実施の形態では、１２種類の第１バス使用要求要因が存在するので、優先順位情報セットの各々は、第１優先順位〜第１２優先順位により構成される。第１バス３１へのアクセスの優先順位は、第１優先順位が一番高く、番号が大きくなるにしたがって、優先順位が低くなる。
【００６９】
第１バスアービタ１３は、優先順位情報番号０〜３のいずれかを保持する１６の優先順位レジスタを順次的かつ巡回的に選択して、選択した優先順位レジスタに保持されている優先順位情報番号に対応する優先順位情報セットに従って、第１バス３１へのアクセス調停を行う。この場合、第１バスアービタ１３は、第１バス使用要求要因ごとに、アクセス調停を行う。
【００７０】
ここで、図中、バスマスタの略号「ＣＰＵ」、「ＧＰ」、「ＳＰ」、「ＤＭＡ」、及び「ＰＬＴ」は、それぞれ、ＣＰＵ１、グラフィックプロセッサ３、サウンドプロセッサ７、ＤＭＡコントローラ９、及びピクセルプロッタ５を示す。
【００７１】
また、図中、第１バス使用要求要因の略号「ＩＳＴ」、「ＤＡＴ」、「ＴＸ１」、「ＴＸ２」、「ＳＰＲ」、「ＨＤＲ」、「ＣＨＲ」、「ＢＭＰ」、「ＷＡＶ」、「ＥＮＶ」、「ＤＭＡＤ」、及び「ＰＬＴ」は、それぞれ、「命令フェッチ」、「データアクセス」、「第１バックグラウンドアレイデータ」、「第２バックグラウンドアレイデータ」、「スプライトＤＭＡ」、「キャラクタヘッダ」、「キャラクタデータ」、「ビットマップデータ」、「ウェーブデータ」、「エンベロープデータ」、「ＤＭＡデスティネーション」、及び「ピクセルプロッタ」を示す。各第１バス使用要求要因の意味は次の通りである。
【００７２】
「命令フェッチ」は、ＣＰＵ１がメインメモリ１７から命令をフェッチすることが第１バス使用要求要因となっていることを意味する。
【００７３】
「データアクセス」は、ＣＰＵ１が第１バス３１に接続された資源にアクセス（データのリード／ライト）することが第１バス使用要求要因となっていることを意味する。
【００７４】
「第１バックグラウンドアレイデータ」は、グラフィックプロセッサ３が第１のバックグラウンドスクリーンのアレイデータをメインメモリ１７から取得することが第１バス使用要求要因となっていることを意味する。この場合のアレイデータは、第１のバックグラウンドスクリーンの全キャラクタの、パターンデータのアドレス情報からなり、カラーパレット情報及びデプス情報も含まれる場合がある。
【００７５】
「第２バックグラウンドアレイデータ」は、グラフィックプロセッサ３が第２のバックグラウンドスクリーンのアレイデータをメインメモリ１７から取得することが第１バス使用要求要因となっていることを意味する。この場合のアレイデータは、第２のバックグラウンドスクリーンの全キャラクタの、パターンデータのアドレス情報からなり、カラーパレット情報及びデプス情報も含まれる場合がある。
【００７６】
「スプライトＤＭＡ」は、グラフィックプロセッサ３がスプライトメモリ（図示しないが、グラフィックプロセッサ３の内部に配置）へ転送するデータをメインメモリ１７からリードすることが第１バス使用要求要因となっていることを意味する。
【００７７】
「キャラクタヘッダ」は、グラフィックプロセッサ３がメインメモリ１７からキャラクタヘッダを取得することが第１バス使用要求要因となっていることを意味する。キャラクタヘッダは、カラーパレット情報、キャラクタの１ピクセルのビット数（Ｍビット／ピクセル）の情報、及びフリップ情報などにより構成される。
【００７８】
「キャラクタデータ」は、グラフィックプロセッサ３がメインメモリ１７からキャラクタのパターンデータを取得することが第１バス使用要求要因となっていることを意味する。
【００７９】
「ビットマップデータ」は、グラフィックプロセッサ３がビットマップデータをメインメモリ１７からリードすることが第１バス使用要求要因となっていることを意味する。
【００８０】
「ウェーブデータ」は、サウンドプロセッサ７がメインメモリ１７からウェーブデータを取得することが第１バス使用要求要因となっていることを意味する。
【００８１】
「エンベロープデータ」は、サウンドプロセッサ７がメインメモリ１７からエンベロープデータを取得したり、メインメモリ１７に仮想的に構成されるエンベロープ用ＦＩＦＯ（ｆｉｒｓｔ−ｉｎｆｉｒｓｔ−ｏｕｔ）のリードポインタをメインメモリ１７に書き込むことが第１バス使用要求要因となっていることを意味する。
【００８２】
「ＤＭＡデスティネーション」は、ＤＭＡコントローラ９がデータをメインメモリ１７へライトすることが第１バス使用要求要因となっていることを意味する。
【００８３】
「ピクセルプロッタ」は、ピクセルプロッタ５がメインメモリ１７に対してリード／ライトを行うことが第１バス使用要求要因となっていることを意味する。
【００８４】
ここで、図２の優先順位テーブルの作成手法を説明する。５つのバスマスタの順列を求め、この中から、データの転送量やバス使用の頻度などを勘案して、４つの順列（バスマスタ順列、と呼ぶ。）を選択する。一方、バスマスタごとにバス使用要求要因の順列（バス使用要求要因順列、と呼ぶ。）を求め、データの転送量やバス使用の頻度などを勘案して、バスマスタごとにバス使用要求要因順列を１つ選択する。
【００８５】
そして、各バスマスタ順列に対して、対応するバス使用要求要因順列を組み合わせて、優先順位テーブルを作成する。具体例を挙げて説明する。
【００８６】
選択された４つのバスマスタ順列の１つが、図２の略号を使って、{ＳＰ，ＧＰ，ＰＬＴ，ＤＭＡ，ＣＰＵ}、であるとする。また、図２の略号を使って、サウンドプロセッサ７に対して選択されたバス使用要求要因順列が、{ＷＡＶ，ＥＮＶ}であり、グラフィックプロセッサ３に対して選択されたバス使用要求要因順列が、{ＢＭＰ，ＣＨＲ，ＨＤＲ，ＳＰＲ，ＴＸ１，ＴＸ２}であり、ピクセルプロッタ５に対するバス使用要求要因順列が、{ＰＬＴ}であり（なぜなら、ピクセルプロッタ５の第１バス３１に対するバス使用要求要因は１つである。）、ＤＭＡコントローラ９に対するバス使用要求要因順列が、{ＤＭＡＤ}であり（ピクセルプロッタ５と同様の理由）、ＣＰＵ１に対して選択されたバス使用要求要因順列が、{ＤＡＴ，ＩＳＴ}であるとする。
【００８７】
そうすると、バスマスタ順列のＳＰに対してバス使用要求要因順列{ＷＡＶ，ＥＮＶ}が、バスマスタ順列のＧＰに対してバス使用要求要因順列{ＢＭＰ，ＣＨＲ，ＨＤＲ，ＳＰＲ，ＴＸ１，ＴＸ２}が、バスマスタ順列のＰＬＴに対してバス使用要求要因順列{ＰＬＴ}が、バスマスタ順列のＤＭＡに対してバス使用要求要因順列{ＤＭＡＤ}が、バスマスタ順列のＣＰＵ対してバス使用要求要因順列{ＤＡＴ，ＩＳＴ}が組み合わされる。その結果、図２に示す第１バス３１に対する優先順位情報セット０が作成される。
【００８８】
図１に戻って、第１バス３１は、例えば、８ビットの第１データバス３１１、１５ビットの第１アドレスバス３１２、及び第１コントロールバス３１３を含む（後述の図４参照）。
【００８９】
本発明の特徴の１つである第２バスアービタ１４は、第２バス３３の各バスマスタからの第２バス使用要求信号を受け付け、調停を行って、１つのバスマスタに第２バス使用許可信号を発行する。具体的には、複数のバスマスタの第２バス３３に対する優先順位を定めた優先順位情報セットが複数用意され、第２バスアービタ１４は、その複数の優先順位情報セットを順次的かつ巡回的に選択して、選択した優先順位情報セットに従って調停を行う。
【００９０】
各バスマスタは、第２バス使用許可信号を受領することによって第２バス３３の使用が許可される。ここで、第２バス使用要求信号及び第２バス使用許可信号は、図１では、第２バス調停信号ＳＡＢとして示されている。
【００９１】
第２バスアービタ１４について詳しく説明する。
【００９２】
図３は、図１の第２バスアービタ１４が有する複数の優先順位情報セットを含む優先順位テーブルの例示図である。第２バス３３に対するアクセスの優先順位情報セットとして、４つの優先順位情報セットが用意され、それぞれが４セットの内のいずれかを指し示す２ビットの優先順位情報番号０〜３へとエンコードされている。図３では、優先順位情報番号０〜３を対応する優先順位情報セットへと変換する優先順位テーブルの例を挙げている。
【００９３】
ここで、バスマスタ（ＣＰＵ１、グラフィックプロセッサ３、ピクセルプロッタ５、サウンドプロセッサ７、及びＤＭＡコントローラ９）は、第２バス３３の使用を要求する要因（以下、「第２バス使用要求要因」と呼ぶ。）ごとにバス使用要求を行う。従って、優先順位情報番号０〜３が示す優先順位情報セットの各々は、全ての第２バス使用要求要因の優先順位を示している。本実施の形態では、９種類の第２バス使用要求要因が存在するので、優先順位情報セットの各々は、第１優先順位１〜第９優先順位により構成される。第２バス３３へのアクセスの優先順位は、第１優先順位が一番高く、番号が大きくなるにしたがって、優先順位が低くなる。
【００９４】
第２バスアービタ１４は、優先順位情報番号０〜３のいずれかを保持する８つの優先順位レジスタ２００〜２０７（後述）を順次的かつ巡回的に選択して、選択した優先順位レジスタに保持されている優先順位情報番号に対応する優先順位情報セットに従って、第２バス３３へのアクセス調停を行う。この場合、第２バスアービタ１４は、第２バス使用要求要因ごとに、アクセス調停を行う。
【００９５】
ここで、図中、バスマスタ及び第２バス使用要求要因の略号は、図２と同じである。ただし、第２バス使用要求要因の略号「ＤＭＡＳ」は、「ＤＭＡソース」を示し、また、各第２バス使用要求要因の意味は次の通りである。
【００９６】
「命令フェッチ」は、ＣＰＵ１が外部メモリ４５から命令をフェッチすることが、第２バス使用要求要因となっていることを意味する。
【００９７】
「データアクセス」は、ＣＰＵ１が外部メモリ４５にアクセス（データのリード／ライト）することが第２バス使用要求要因となっていることを意味する。
【００９８】
「キャラクタヘッダ」は、グラフィックプロセッサ３が外部メモリ４５からキャラクタヘッダを取得することが第２バス使用要求要因となっていることを意味する。
【００９９】
「キャラクタデータ」は、グラフィックプロセッサ３が外部メモリ４５からキャラクタのパターンデータを取得することが第２バス使用要求要因となっていることを意味する。
【０１００】
「ビットマップデータ」は、グラフィックプロセッサ３が外部メモリ４５からビットマップデータを取得することが第２バス使用要求要因となっていることを意味する。
【０１０１】
「ピクセルプロッタ」は、ピクセルプロッタ５が外部メモリ４５に対してリード／ライトを行うことが第２バス使用要求要因となっていることを意味する。
【０１０２】
「ウェーブデータ」は、サウンドプロセッサ７が外部メモリ４５からウェーブデータを取得することが第２バス使用要求要因となっていることを意味する。
【０１０３】
「エンベロープデータ」は、サウンドプロセッサ７が外部メモリ４５からエンベロープデータを取得することが第２バス使用要求要因となっていることを意味する。
【０１０４】
「ＤＭＡソース」は、ＤＭＡコントローラ９がデータを外部メモリ４５からリードすることが第２バス使用要求要因となっていることを意味する。
【０１０５】
図３の優先順位テーブルの作成手法は、図２の優先順位テーブルの作成手法と同様であり、説明を省略する。
【０１０６】
図１に戻って、第２バス３３は、１６ビットの第２データバス、２７ビットの第２アドレスバス、及び第２コントロールバスを含む（図示せず）。
【０１０７】
タイマ回路１９は、設定された時間間隔に基づき、ＣＰＵ１に対する割込み要求信号ＩＮＲＱを発生する機能を有する。時間間隔等の設定は、第１バス３１を介してＣＰＵ１によって行われる。
【０１０８】
ＡＤＣ２０は、アナログ入力信号をデジタル信号に変換する。このデジタル信号は、第１バス３１を介してＣＰＵ１によってリードされる。また、ＡＤＣ２０は、ＣＰＵ１に対して、割込み要求信号ＩＮＲＱを発生する機能を有する。
【０１０９】
なお、外部からのアナログ信号は、例えば、６つのアナログポートＡＩＮ０〜５（図示せず）を介して、ＡＤＣ２０へ入力される。
【０１１０】
入出力制御回路２１は、外部入出力装置や外部の半導体素子との通信等を、入出力信号を介して行う。入出力信号は、第１バス３１を介して、ＣＰＵ１からリード／ライトされる。また、入出力制御回路２１は、ＣＰＵ１に対して、割込み要求信号ＩＮＲＱを発生する機能を有する。なお、入出力信号は、例えば、プログラマブルな入出力ポートＩＯ０〜ＩＯ２３（図示せず）を介して入出力される。
【０１１１】
低電圧検出回路２５は、電源電圧Ｖｃｃ０及びＶｃｃ１を監視し、いずれかの電源電圧がそれぞれについて定められた電圧以下になったときに、ＰＬＬ回路２７のリセット信号、その他のシステム全体のリセット信号ＲＳＥＴを発行する。
【０１１２】
電源電圧Ｖｃｃ０は、例えば、＋２．５Ｖであり、主にプロセッサ内のデジタル回路に供給される。また、電源電圧Ｖｃｃ１は、例えば、＋３．３Ｖであり、主にプロセッサ内のアナログ回路及びＩ／Ｏ部に供給される。
【０１１３】
ＰＬＬ回路２７は、水晶振動子３７より得られる正弦波信号を逓倍した高周波クロック信号を生成する。
【０１１４】
クロックドライバ２９は、ＰＬＬ回路２７より受け取った高周波クロック信号を、十分な信号強度へ増幅して、内部クロックＩＣＬＫとして、各ブロックへ供給する。
【０１１５】
外部メモリインタフェース回路２３は、第２バス３３を外部バス４３に接続するための機能を有する。
【０１１６】
図１のプロセッサにおけるデータの転送経路を説明する。例えば、バスマスタたるＣＰＵ１が、バススレイブとして第１バス３１に接続されている他の機能ブロック（グラフィックスプロセッサ３、ピクセルプロッタ５、サウンドプロセッサ７、ＤＭＡコントローラ９、第１バスアービタ１３、第２バスアービタ１４、等）を制御する場合は、これら機能ブロックの制御レジスタへのライトデータは、第１バスアービタ１３へ与えられ、調停後に、第１バス３１から、各機能ブロックに与えられ、一方、これら機能ブロックの制御レジスタからのリードデータは、調停後に、第１バス３１及び第１バスアービタ１３を介して、ＣＰＵ１に与えられる。但し、グラフィックスプロセッサ３、ピクセルプロッタ５、サウンドプロセッサ７、ＤＭＡコントローラ９は、第１バス３１のバスマスタとして、第１バスアービタ１３へバスアクセス要求を行う機能を備える。
【０１１７】
バスマスタが、メインメモリ１７に対してアクセスする場合は、ライトデータは、第１バスアービタ１３に与えられ、調停後に、第１バス３１から、メインメモリ１７に与えられ、一方、リードデータは、調停後に、第１バス３１及び第１バスアービタ１３を介して、バスマスタに与えられる。また、バスマスタが、外部メモリ４５に対してアクセスする場合は、ライトデータは、第２バスアービタ１４に与えられ、調停後に、第２バス３３から、外部メモリインタフェース回路２３及び外部バス４３を介して、外部メモリ４５に与えられ、一方、リードデータは、調停後に、外部バス４３、外部メモリインタフェース回路２３、第２バス３３及び第２バスアービタ１４を介して、バスマスタに与えられる。
【０１１８】
以下、図１の第２バスアービタ１４についてより詳細に説明する。
【０１１９】
図４は、図１の第２バスアービタ１４に対する入出力信号の説明図である。図４に示すように、第２バスアービタ１４の制御は、ＣＰＵ１が、第１アドレスバス３１１、第１データバス３１２、及び第１コントロールバス３１３を介して行う。
【０１２０】
ＣＰＵ１から第２バスアービタ１４へのデータアクセス・アドレスＤＡＡＤ、ＣＰＵ１から第２バスアービタ１４へのデータアクセス・ライトデータＤＡＷＤ、ＣＰＵ１から第２バスアービタ１４へのデータアクセス・バス要求信号ＤＡＢＲ、ＣＰＵ１から第２バスアービタ１４へのデータアクセス・ライト要求信号ＤＡＷＲＱ、第２バスアービタ１４からＣＰＵ１へのデータアクセス・ライト受諾信号ＤＡＷＧＲ、第２バスアービタ１４からＣＰＵ１へのデータアクセス・下位バイトリード許可信号ＤＡＬＲＧ、及び第２バスアービタ１４からＣＰＵ１へのデータアクセス・上位バイトリード許可信号ＤＡＵＲＧは、それぞれ、第２バス使用要求要因が「データアクセス」の場合の、リード又はライトの先頭アドレス、ライト対象のデータ、リード又はライトのバス使用要求を示す信号、バス使用要求がライト要求であることを示す信号、ライトのバス使用要求が受け付けられたことを示す信号、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの下位バイト（［７：０］）がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの上位バイト（［１５：８］）がフェッチ可能であることを示す信号、である。
【０１２１】
グラフィックプロセッサ３から第２バスアービタ１４へのキャラクタヘッダ・アドレスＣＨＡＤ、グラフィックプロセッサ３から第２バスアービタ１４へのキャラクタヘッダ・サイズ信号ＣＨＳＺ、グラフィックプロセッサ３から第２バスアービタ１４へのキャラクタヘッダ・バス要求信号ＣＨＢＲ、第２バスアービタ１４からグラフィックプロセッサ３へのキャラクタヘッダ・下位バイトリード許可信号ＣＨＬＲＧ、及び第２バスアービタ１４からグラフィックプロセッサ３へのキャラクタヘッダ・上位バイトリード許可信号ＣＨＵＲＧは、それぞれ、第２バス使用要求要因が「キャラクタヘッダ」の場合の、リードの先頭アドレス、要求するデータの転送量を示す信号（何バイトのリードを要求するかを示す信号）、リードのバス使用要求を示す信号、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの下位バイト（［７：０］）がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの上位バイト（［１５：８］）がフェッチ可能であることを示す信号、である。
【０１２２】
グラフィックプロセッサ３から第２バスアービタ１４へのキャラクタデータ・アドレスＣＤＡＤ、グラフィックプロセッサ３から第２バスアービタ１４へのキャラクタデータ・サイズ信号ＣＤＳＺ、グラフィックプロセッサ３から第２バスアービタ１４へのキャラクタデータ・バス要求信号ＣＤＢＲ、第２バスアービタ１４からグラフィックプロセッサ３へのキャラクタデータ・下位バイトリード許可信号ＣＤＬＲＧ、及び第２バスアービタ１４からグラフィックプロセッサ３へのキャラクタデータ・上位バイトリード許可信号ＣＤＵＲＧは、それぞれ、第２バス使用要求要因が「キャラクタデータ」の場合の、リードの先頭アドレス、要求するデータの転送量を示す信号（何バイトのリードを要求するかを示す信号）、リードのバス使用要求を示す信号、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの下位バイト（［７：０］）がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの上位バイト（［１５：８］）がフェッチ可能であることを示す信号、である。
【０１２３】
グラフィックプロセッサ３から第２バスアービタ１４へのビットマップデータ・アドレスＢＭＡＤ、グラフィックプロセッサ３から第２バスアービタ１４へのビットマップデータ・バス要求信号ＢＭＢＲ、第２バスアービタ１４からグラフィックプロセッサ３へのビットマップデータ・下位バイトリード許可信号ＢＭＬＲＧ、及び第２バスアービタ１４からグラフィックプロセッサ３へのビットマップデータ・上位バイトリード許可信号ＢＭＵＲＧは、それぞれ、第２バス使用要求要因が「ビットマップデータ」の場合の、リードの先頭アドレス、要求するデータの転送量を示す信号（何バイトのリードを要求するかを示す信号）、リードのバス使用要求を示す信号、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの下位バイト（［７：０］）がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの上位バイト（［１５：８］）がフェッチ可能であることを示す信号、である。
【０１２４】
ピクセルプロッタ５から第２バスアービタ１４へのピクセルプロッタ・アドレスＰＰＡＤ、ピクセルプロッタ５から第２バスアービタ１４へのピクセルプロッタ・ライトデータＰＰＷＤ、ピクセルプロッタ５から第２バスアービタ１４へのピクセルプロッタ・サイズ信号ＰＰＳＺ、ピクセルプロッタ５から第２バスアービタ１４へのピクセルプロッタ・バス要求信号ＰＰＢＲ、ピクセルプロッタ５から第２バスアービタ１４へのピクセルプロッタ・ライト要求信号ＰＰＷＲＱ、第２バスアービタ１４からピクセルプロッタ５へのピクセルプロッタ・ライト受諾信号ＰＰＷＧＲ、第２バスアービタ１４からピクセルプロッタ５へのピクセルプロッタ・下位バイトリード許可信号ＰＰＬＲＧ、及び第２バスアービタ１４からピクセルプロッタ５へのピクセルプロッタ・上位バイトリード許可信号ＰＰＵＲＧは、それぞれ、第２バス使用要求要因が「ピクセルプロッタ」の場合の、リード又はライトの先頭アドレス、ライト対象のデータ、要求するデータの転送量を示す信号（何バイトのリードを要求するかを示す信号）、リード又はライトのバス使用要求を示す信号、バス使用要求がライト要求であることを示す信号、ライトのバス使用要求が受け付けられたことを示す信号、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの下位バイト（［７：０］）がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの上位バイト（［１５：８］）がフェッチ可能であることを示す信号、である。
【０１２５】
サウンドプロセッサ７から第２バスアービタ１４へのウェーブデータ・アドレスＷＡＡＤ、サウンドプロセッサ７から第２バスアービタ１４へのウェーブデータ・バス要求信号ＷＡＢＲ、第２バスアービタ１４からサウンドプロセッサ７へのウェーブデータ・下位バイトリード許可信号ＷＡＬＲＧ、及び第２バスアービタ１４からサウンドプロセッサ７へのウェーブデータ・上位バイトリード許可信号ＷＡＵＲＧは、それぞれ、第２バス使用要求要因が「ウェーブデータ」の場合の、リードの先頭アドレス、リードのバス使用要求を示す信号、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの下位バイト（［７：０］）がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの上位バイト（［１５：８］）がフェッチ可能であることを示す信号、である。
【０１２６】
サウンドプロセッサ７から第２バスアービタ１４へのエンベロープデータ・アドレスＥＶＡＤ、サウンドプロセッサ７から第２バスアービタ１４へのエンベロープデータ・バス要求信号ＥＶＢＲ、第２バスアービタ１４からサウンドプロセッサ７へのエンベロープデータ・下位バイトリード許可信号ＥＶＬＲＧ、及び第２バスアービタ１４からサウンドプロセッサ７へのエンベロープデータ・上位バイトリード許可信号ＥＶＵＲＧは、それぞれ、第２バス使用要求要因が「エンベロープデータ」の場合の、リードの先頭アドレス、リードのバス使用要求を示す信号、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの下位バイト（［７：０］）がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの上位バイト（［１５：８］）がフェッチ可能であることを示す信号、である。
【０１２７】
ＤＭＡコントローラ９から第２バスアービタ１４へのＤＭＡソース・アドレスＤＳＡＤ、ＤＭＡコントローラ９から第２バスアービタ１４へのＤＭＡソース・サイズ信号ＤＳＳＺ、ＤＭＡコントローラ９から第２バスアービタ１４へのＤＭＡソース・バス要求信号ＤＳＢＲ、第２バスアービタ１４からＤＭＡコントローラ９へのＤＭＡソース・下位バイトリード許可信号ＤＳＬＲＧ、及び第２バスアービタ１４からＤＭＡコントローラ９へのＤＭＡソース・上位バイトリード許可信号ＤＳＵＲＧは、それぞれ、第２バス使用要求要因が「ＤＭＡソース」の場合の、リードの先頭アドレス、要求するデータの転送量を示す信号（何バイトのリードを要求するかを示す信号）、リードのバス使用要求を示す信号、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの下位バイト（［７：０］）がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力ＥＤＡＩの上位バイト（［１５：８］）がフェッチ可能であることを示す信号、である。
【０１２８】
ここで、上記アドレス信号ＩＦＡＤ，ＤＡＡＤ，ＣＨＡＤ，ＣＤＡＤ，ＢＭＡＤ，ＰＰＡＤ，ＷＡＡＤ，ＥＶＡＤ及びＤＳＡＤは、それぞれ、２７ビットの信号である。また、上記ライトデータＤＡＷＤは及びＰＰＷＤは、それぞれ、１６ビットの信号である。但し、ライトデータＤＡＷＤの有効なデータは、１６ビット中の下位８ビットである。
【０１２９】
図５は、本実施の形態における第２バス使用要求要因ごとの要求サイズの例示図である。図５に示すように、第２バス使用要求要因が「命令フェッチ」の場合は、ＣＰＵ１は、命令フェッチ・サイズ信号ＩＦＳＺにより、データ転送のサイズとして、１、２、３、あるいは４バイトのいずれかを要求できる（可変）。
【０１３０】
従って、ＣＰＵ１は、フェッチする命令のサイズに合わせたデータ転送のサイズを、命令フェッチ・サイズ信号ＩＦＳＺにより動的に設定できる。
【０１３１】
第２バス使用要求要因が「データアクセス」の場合は、データ転送のサイズは、１バイトで固定である。第２バス使用要求要因が「キャラクタヘッダ」の場合は、グラフィックプロセッサ３は、キャラクタヘッダ・サイズ信号ＣＨＳＺにより、データ転送のサイズとして、０バイトを要求できる（つまり、データ転送を行わない。）。
【０１３２】
第２バス使用要求要因が「キャラクタデータ」の場合は、グラフィックプロセッサ３は、キャラクタデータ・サイズ信号ＣＤＳＺにより、データ転送のサイズとして、１、２、３、…、１５あるいは１６バイトのいずれかを要求できる（可変）。
【０１３３】
キャラクタは、例えば、８×８ピクセル、８×１６ピクセル、１６×８ピクセル、１６×１６ピクセル、等というように、様々なサイズが用意されている。また、１ピクセルあたりのデータ量も１、２、３、…、７あるいは８ビット、というように様々なモードが用意されている。従って、グラフィックプロセッサ３は、キャラクタのサイズおよびピクセル当りのビット数に合わせたデータ転送のサイズを、キャラクタデータ・サイズ信号ＣＤＳＺにより動的に設定できる。
【０１３４】
第２バス使用要求要因が「ビットマップデータ」の場合は、データ転送のサイズは、８バイトで固定である。
【０１３５】
第２バス使用要求要因が「ピクセルプロッタ」の場合は、ピクセルプロッタ５は、ピクセルプロッタ・サイズ信号ＰＰＳＺにより、データ転送のサイズとして、１あるいは２バイトのいずれかを要求できる（可変）。
【０１３６】
例えば、ピクセルプロッタ５は、ピクセルプロッタ・サイズ信号ＰＰＳＺにより、データ転送のサイズを２バイトとする一方、ＬＳＢ（ｌｅａｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）が「１」のバイトアドレスが示す位置からアクセスを開始するときは、その時のピクセルプロッタ・サイズ信号ＰＰＳＺが示すサイズを１バイトとする。なぜなら、このようなアクセスのときは、下位バイトのリード／ライトは無駄だからである。
【０１３７】
第２バス使用要求要因が「ウェーブデータ」の場合は、データ転送のサイズは、１バイトで固定である。
【０１３８】
第２バス使用要求要因が「エンベロープデータ」の場合は、データ転送のサイズは、１バイトで固定である。第２バス使用要求要因が「ＤＭＡソース」の場合は、ＤＭＡコントローラ９は、ＤＭＡソース・サイズ信号ＤＳＳＺにより、データ転送のサイズとして、１、２、３あるいは４バイトのいずれかを要求できる（可変）。
【０１３９】
従って、ＤＭＡコントローラ９は、転送対象のＤＭＡ転送元データのサイズに合わせたデータ転送のサイズを、ＤＭＡソース・サイズ信号ＤＳＳＺにより動的に設定できる。
【０１４０】
図４に戻って、第２バスアービタ１４は、第２バス３３へ、外部アドレスＥＡＤ、外部アドレス出力イネーブル信号ＥＡＤＯＥ、外部データＥＤＡＯ、外部データ出力イネーブル信号ＥＤＡＯＥ、外部リードイネーブル信号ＥＲＤＥ、外部ライトイネーブル信号ＥＷＲＥ、下位バイトイネーブル信号ＬＷＢＥ、上位バイトイネーブル信号ＵＰＢＥ、第１領域セレクト信号ＡＳＳＥＬ１、及び第２領域セレクト信号ＡＳＳＥＬ２を出力する。
【０１４１】
外部アドレスＥＡＤは、第２バス３３の第２アドレスバス（図示せず）へ出力されるアドレス信号（２７ビット）である。外部アドレス出力イネーブル信号ＥＡＤＯＥは、第２バス３３の第２アドレスバスの３ステートバッファ（図示せず）を制御し、出力／Ｈｉ−Ｚ（ハイインピーダンス）を切り換える信号である。
【０１４２】
外部データＥＤＡＯは、第２バス３３の第２データバス（図示せず）へ出力されるデータ（１６ビット）である。外部データ出力イネーブル信号ＥＤＡＯＥは、第２バス３３の第２データバスの３ステートバッファ（図示せず）を制御し、出力／Ｈｉ−Ｚ（ハイインピーダンス）を切り換える信号である。
【０１４３】
外部リードイネーブル信号ＥＲＤＥは、第２バス３３の第２コントロールバス（図示せず）へ出力されるリードイネーブル信号である。外部ライトイネーブル信号ＥＷＲＥは、第２バス３３の第２コントロールバスへ出力されるライトイネーブル信号である。
【０１４４】
下位バイトイネーブル信号ＬＷＢＥは、第２バス３３の第２データバスの下位バイトのイネーブル信号である。上位バイトイネーブル信号ＵＰＢＥは、第２バス３３の第２データバスの上位バイトのイネーブル信号である。
【０１４５】
第１領域セレクト信号ＡＳＳＥＬ１は、プロセッサ１００の論理アドレス空間の第２バス第１領域を選択する信号である。第２領域セレクト信号ＡＳＳＥＬ２は、プロセッサ１００の論理アドレス空間の第２バス第２領域を選択する信号である。なお、第２バス第０領域を選択する信号（第０領域セレクト信号ＡＳＳＥＬ０）は、外部アドレスＥＡＤ［２２］で代用する。
【０１４６】
ここで、プロセッサ１００のアドレス空間について説明する。プロセッサ１００は、２７ビットのアドレス信号、即ち、１２８メガバイトの論理アドレス空間を有する。第１バス３１は、１５ビットのアドレスＩＡＤ、即ち、３２キロバイトの物理アドレス空間を有する。第２バス３３は、２７ビットのアドレス空間から一部を除いた９６メガバイトの物理アドレス空間を有する。これらの点を図面を用いて説明する。
【０１４７】
図６は、図１のプロセッサ１００の論理アドレス空間の説明図である。図６に示すように、２７ビットのアドレスは、上位１１ビットＡ２６〜Ａ１６と下位１６ビットＡ１５〜Ａ０に大きく分かれ、上位１１ビットのアドレスはバンクアドレスと呼ばれる働きをする。即ち、１２８メガバイトの論理アドレス空間は、２０４８個の６４キロバイトのバンクと呼ばれる単位空間に分けられており、例を挙げると０００ｈバンクのＦＦＦＦｈ番地と００１ｈバンクの００００ｈ番地は、ＣＰＵ１およびサウンドプロセッサ７にとっては連続していない。従って、図６では、このことを明確に表すためにバンク毎に並列に表記している。
【０１４８】
プロセッサ１００の論理アドレス空間は大きく４つの領域に分割され、それぞれは、第１バス３１の物理アドレス空間に相当する第１バス領域、第２バス３３の物理アドレス空間に相当する第２バス第０領域、第２バス第１領域、及び第２バス第２領域である。
【０１４９】
図７は、図４の第２バスアービタ１４の内部構成を示すブロック図である。図７に示すように、第２バスアービタ１４は、第１バスインタフェース回路１４０、マルチプレクサ１４１、ＯＲ回路２１０、プライオリティデコーダ１４２、マルチプレクサ１４３〜１４６、スロットカウンタ１４７、ＯＲ回路１４８、アドレスデコーダ１４９、バイトイネーブル信号生成回路１５０、マルチプレクサ１５１〜１５３、デコーダ１５４、ステートマシン１５５、外部バス開放要求レジスタ１５６、第０領域バス幅レジスタ１６０、第１領域バス幅レジスタ１６１、第２領域バス幅レジスタ１６２、第０領域ランダムアクセスサイクル数レジスタ１７０、第１領域ランダムアクセスサイクル数レジスタ１７１、第２領域ランダムアクセスサイクル数レジスタ１７２、第０領域ページアクセスサイクル数レジスタ１８０、第１領域ページアクセスサイクル数レジスタ１８１、第２領域ページアクセスサイクル数レジスタ１８２、第０領域ページサイズレジスタ１９０、第１領域ページサイズレジスタ１９１、第２領域ページサイズレジスタ１９２、及び第０スロット優先順位レジスタ２００〜第７スロット優先順位レジスタ２０７、を含む。
【０１５０】
第１バスインタフェース回路１４０は、第１バス３１と、各制御レジスタ１５６，１６０〜１６２，１７０〜１７２，１８０〜１８２，１９０〜１９２，２００〜２０７と、を接続するためのインタフェースである。
【０１５１】
ここで、制御レジスタ１５６，１６０〜１６２，１７０〜１７２，１８０〜１８２，１９０〜１９２，２００〜２０７を包括して表現するときは、制御レジスタＣＲと表記する。
【０１５２】
ＣＰＵ１は、第１バス３１及び第１バスインタフェース回路１４０を介して、制御レジスタＣＲに値を書き込み、あるいは、値を読み出すことができる。具体的には、次の通りである。
【０１５３】
内部アドレスＩＡＤは、各機能ブロックの制御レジスタやメモリが配置される第１バス３１のアドレスを示す信号であり、本実施の形態では、例えば、１５ビットの信号とする。つまり、第１アドレスバス３１１のバス幅は１５ビットとする。この内部アドレスＩＡＤは、バスマスタから第１アドレスバス３１１に与えられる。第２バスアービタ１４に対しては、ＣＰＵ１が第２バスアービタ１４の制御を行う際には、バスマスタとなったＣＰＵ１が、内部アドレスＩＡＤを、第１アドレスバス３１１を介して与える。第１バス３１領域には、第１バスアービタ１３（制御レジスタ）、第２バスアービタ１４（制御レジスタＣＲ）、ＣＰＵ１（制御レジスタ）、サウンドプロセッサ７（ローカルメモリ及び制御レジスタ）、グラフィックプロセッサ３（制御レジスタ、パレットメモリ、スプライトメモリ）、メインメモリ１７、及びピクセルプロッタ５（制御レジスタ）等が配置される。一方、第２バス３３領域には、外部メモリ４５などが配置される。
【０１５４】
内部リード／ライト信号ＩＲＷは、第２バスアービタ１４内に配置された制御レジスタＣＲに対してアクセスする際のアクセスの種類を示す信号であり、ＣＰＵ１から、第１コントロールバス３１３を介して第１バスインタフェース回路１４０に与えられる。例えば、内部リード／ライト信号ＩＲＷが、ハイレベルのときはリードを示し、ローレベルのときはライトを示す。
【０１５５】
内部データＩＤＡは、第１バスインタフェース回路１４０に対して、バスマスタとなったＣＰＵ１から、第１データバス３１２を介して与えられるデータ、あるいは、バスマスタとなったＣＰＵ１に対して、第１バスインタフェース回路１４０から、第１データバス３１２を介して与えられるデータである。本実施の形態では、例えば、内部データＩＤＡは８ビットのデータとする。つまり、第１データバス３１２のバス幅を８ビットする。
【０１５６】
ＣＰＵ１は、内部リード／ライト信号ＩＲＷにより、リードあるいはライトを指定して、内部アドレスＩＡＤで指定した、第２バスアービタ１５内の制御レジスタＣＲにアクセスする。
【０１５７】
さて、外部バス開放要求レジスタ１５６の値は、ステートマシン１５５に入力される。ＣＰＵ１により、外部バス開放要求レジスタ１５に「１」がセットされると、ステートマシン１５５は、外部バス４３のアドレスバス、データバス及びコントロールバス（図示せず）をハイインピーダンスにする。例えば、他のデバイスがプロセッサ１００の外部バス４３を共有しており、他のデバイスからの外部バス使用要求があった場合などに、外部バス開放要求レジスタ１５に「１」をセットする。
【０１５８】
第０領域バス幅レジスタ１６０には、第２バス第０領域にアクセスする際のデータバスのバス幅を示す情報がセットされる。第１領域バス幅レジスタ１６１には、第２バス第１領域にアクセスする際のデータバスのバス幅を示す情報がセットされる。第２領域バス幅レジスタ１６２には、第２バス第２領域にアクセスする際のデータバスのバス幅を示す情報がセットされる。本実施の形態では、第０領域バス幅レジスタ１６０、第１領域バス幅レジスタ１６１、及び第２領域バス幅レジスタ１６２の各々には、バス幅８ビットあるいは１６ビットを示す情報をセットできる。
【０１５９】
第０領域ランダムアクセスサイクル数レジスタ１７０には、第２バス第０領域にランダムアクセスする際のバスサイクル期間長を示すアクセスサイクル数（クロックサイクル数）を示す情報がセットされる。第１領域ランダムアクセスサイクル数レジスタ１７１には、第２バス第１領域にランダムアクセスする際のバスサイクル期間長を示すアクセスサイクル数（クロックサイクル数）を示す情報がセットされる。第２領域ランダムアクセスサイクル数レジスタ１７２には、第２バス第２領域にランダムアクセスする際のバスサイクル期間長を示すアクセスサイクル数（クロックサイクル数）を示す情報がセットされる。ここで、バスサイクル期間長（１バスサイクルの期間長）は、内部クロック信号ＩＣＬＫのサイクル数で定義される。
【０１６０】
本実施の形態では、第０領域ランダムアクセスサイクル数レジスタ１７０、第１領域ランダムアクセスサイクル数レジスタ１７１、及び第２領域ランダムアクセスサイクル数レジスタ１７２の各々には、内部ＩＣＬＫクロック信号の２〜８サイクルを示す情報を設定できる。
【０１６１】
第０領域ページアクセスサイクル数レジスタ１８０には、第２バス第０領域にページ・モードでアクセスする際のバスサイクル期間長を示すアクセスサイクル数（クロックサイクル数）を示す情報がセットされる。第１領域ページアクセスサイクル数レジスタ１８１には、第２バス第１領域にページ・モードでアクセスする際のバスサイクル期間長を示すアクセスサイクル数（クロックサイクル数）を示す情報がセットされる。第２領域ページアクセスサイクル数レジスタ１８２には、第２バス第２領域にページ・モードでアクセスする際のバスサイクル期間長を示すアクセスサイクル数（クロックサイクル数）を示す情報がセットされる。ここで、バスサイクル期間長（１バスサイクルの期間長）は、内部クロック信号ＩＣＬＫのサイクル数で定義される。
【０１６２】
本実施の形態では、第０領域ページアクセスサイクル数レジスタ１８０、第１領域ページアクセスサイクル数レジスタ１８１、及び第２領域ページアクセスサイクル数レジスタ１８２の各々には、内部ＩＣＬＫクロック信号の１〜４サイクルを示す情報を設定できる。
【０１６３】
第０領域ページサイズレジスタ１９０には、第２バス第０領域にページ・モードでアクセスする際のページサイズを示す情報がセットされる。第１領域ページサイズレジスタ１９１には、第２バス第１領域にページ・モードでアクセスする際のページサイズを示す情報がセットされる。第２領域ページサイズレジスタ１９２には、第２バス第２領域にページ・モードでアクセスする際のページサイズを示す情報がセットされる。本実施の形態では、第０領域ページサイズレジスタ１９０、第１領域ページサイズレジスタ１９１、及び第２領域ページサイズレジスタ１９２の各々には、０、４、８あるいは１６バイトを示す情報をセットできる。
【０１６４】
ＣＰＵ１は、外部メモリ４５の仕様に応じて、上記制御レジスタ１６０〜１６２，１７０〜１７２，１８０〜１８２，１９０〜１９２の値を設定できる。また、ＣＰＵ１は、上記制御レジスタ１６０〜１６２に対して別個独立に値をセットできるし、上記制御レジスタ１７０〜１７２に対して別個独立に値をセットできるし、上記制御レジスタ１８０〜１８２に対して別個独立に値をセットできるし、上記制御レジスタ１９０〜１９２に対して別個独立に値をセットできる。
【０１６５】
第０スロット優先順位レジスタ２００〜第７スロット優先順位レジスタ２０７の各々には、図３の優先順位情報セット０〜３を示す優先順位情報番号０〜３がセットされる。例えば、第０スロット優先順位レジスタ２００〜第７スロット優先順位レジスタ２０７には、それぞれ、優先順位情報セット１に対応する優先順位情報番号１、優先順位情報セット３に対応する優先順位情報番号３、優先順位情報セット１に対応する優先順位情報番号１、優先順位情報セット２に対応する優先順位情報番号２、優先順位情報セット１に対応する優先順位情報番号１、優先順位情報セット３に対応する優先順位情報番号３、優先順位情報セット１に対応する優先順位情報番号１、及び優先順位情報セット０に対応する優先順位情報番号０がセットされる。なお、優先順位情報番号０〜３は２ビットにエンコードされている。従って、第０スロット優先順位レジスタ２００〜第７スロット優先順位レジスタ２０７の各々は、２ビットのレジスタである。
【０１６６】
ＣＰＵ１は、第０スロット優先順位レジスタ２００〜第７スロット優先順位レジスタ２０７に値をセットすることで、８スロットで１巡する優先順位情報番号０〜３の組み合わせを任意に設定できる。
【０１６７】
マルチプレクサ１４１は、スロットカウンタ１４７からの選択信号ＳＳＥＬに従って、第０スロット優先順位レジスタ２００〜第７スロット優先順位レジスタ２０７のうちの１つを選択し、選択した優先順位レジスタが保持している優先順位情報番号をプライオリティデコーダ１４２に出力する。
【０１６８】
プライオリティデコーダ１４２及びＯＲ回路２１０には、ＣＰＵ１から、命令フェッチ・バス要求信号ＩＦＢＲ及びデータアクセス・バス要求信号ＤＡＢＲが入力され、グラフィックプロセッサ３から、キャラクタヘッダ・バス要求信号ＣＨＢＲ、キャラクタデータ・バス要求信号ＣＤＢＲ、及びビットマップデータ・バス要求信号ＢＭＢＲが入力され、ピクセルプロッタ５から、ピクセルプロッタ・バス要求信号ＰＰＢＲが入力され、サウンドプロセッサ７から、ウェーブデータ・バス要求信号ＷＡＢＲ及びエンベロープデータ・バス要求信号ＥＶＢＲが入力され、ＤＭＡコントローラ９から、ＤＭＡソース・バス要求信号ＤＳＢＲが入力される。また、プライオリティデコーダ１４２には、ステートマシン１５５から、命令フェッチ・リード許可信号ＩＦＲＧ、データアクセス・リード許可信号ＤＡＲＧ、データアクセス・ライト受諾信号ＤＡＷＧＲ、キャラクタヘッダ・リード許可信号ＣＨＲＧ、キャラクタデータ・リード許可信号ＣＤＲＧ、ビットマップデータ・リード許可信号ＢＭＲＧ、ピクセルプロッタ・リード許可信号ＰＰＲＧ、ピクセルプロッタ・ライト受諾信号ＰＰＷＧＲ、ウェーブデータ・リード許可信号ＷＡＲＧ、エンベロープデータ・リード許可信号ＥＶＲＧ、及びＤＭＡソース・リード許可信号ＤＳＲＧが入力される。
【０１６９】
ここで、バス要求信号ＩＦＢＲ，ＤＡＢＲ，ＣＨＢＲ，ＣＤＢＲ，ＢＭＢＲ，ＰＰＢＲ，ＷＡＢＲ，ＥＶＢＲ，ＤＳＢＲを包括して表現するときは、第２バス使用要求信号ＢＵＲＱ、と表記する。
【０１７０】
プライオリティデコーダ１４２は、マルチプレクサ１４１から現在入力されている優先順位情報番号をデコードして、第２バス使用要求信号ＢＵＲＱを発行したバスマスタから、現在第２バス３３を使用している第２バス使用要求要因を除いた中で、最も優先順位の高い（第２バス３３の使用許可を与える）バスマスタを選択する。具体的には、次の通りである。
【０１７１】
プライオリティデコーダ１４２は、デコードした優先順位情報番号に対応する優先順位情報セットに従って、アサートされている第２バス使用要求信号ＢＵＲＱに対応する第２バス使用要求要因のうち、現在第２バス３３を使用している第２バス使用要求要因を除いて最も優先順位の高い第２バス使用要求要因を選択する。ここで、現在第２バスを使用している第２バス使用要求要因は、ステートマシン１５５から送出される、第２バス使用許可信号ＡＧＲの状態から知ることができる。
【０１７２】
なお、第２バス使用許可信号ＡＧＲは、命令フェッチ・リード許可信号ＩＦＲＧ、データアクセス・リード許可信号ＤＡＲＧ、データアクセス・ライト受諾信号ＤＡＷＧＲ、キャラクタヘッダ・リード許可信号ＣＨＲＧ、キャラクタデータ・リード許可信号ＣＤＲＧ、ビットマップデータ・リード許可信号ＢＭＲＧ、ピクセルプロッタ・リード許可信号ＰＰＲＧ、ピクセルプロッタ・ライト受諾信号ＰＰＷＧＲ、ウェーブデータ・リード許可信号ＷＡＲＧ、エンベロープデータ・リード許可信号ＥＶＲＧ、及びＤＭＡソース・リード許可信号ＤＳＲＧを包括した表記である。
【０１７３】
また、プライオリティデコーダ１４２は、選択した第２バス使用要求要因に基づいて、バスマスタセレクト信号ＢＭＳＥＬ［８：０］を生成して、ステートマシン１５５およびマルチプレクサ１４３〜１４６に出力する。バスマスタセレクト信号ＢＭＳＥＬ［８：０］の各ビットは、９つの第２バス使用要求要因に対応している。プライオリティデコーダ１４２は、選択した（第２バス３３の使用許可を与える）第２バス使用要求要因に対応するビットを「１」に、他のビットを「０」にセットする。つまり、プライオリティデコーダ１４２は、デコーダした優先順位情報番号に対応する優先順位情報セットに従って、アサートされている第２バス使用要求信号ＢＵＲＱに対応する第２バス使用要求要因のうち、現在第２バス３３を使用している第２バス使用要求要因を除いて最も優先順位の高い第２バス使用要求要因に対応したビットを「１」にする。ＯＲ回路１４８には、ステートマシン１５５から、９つの第２バス使用許可信号ＡＧＲ（ＩＦＲＧ，ＤＡＲＧ，ＤＡＷＧＲ，ＣＨＲＧ，ＣＤＲＧ，ＢＭＲＧ，ＰＰＲＧ，ＰＰＷＧＲ，ＷＡＲＧ，ＥＶＲＧ，ＤＳＲＧ）が入力される。
【０１７４】
スロットカウンタ１４７は、ＯＲ回路１４８からの信号が、「０（偽）」から「１（真）」に遷移するたびに、選択信号ＳＳＥＬ［２：０］の値をインクリメントして、マルチプレクサ１４１に、第０スロット優先順位レジスタ２００〜第７スロット優先順位レジスタ２０７に格納されている優先順位情報番号を順次的かつ巡回的に選択させる。
【０１７５】
従って、バス使用許可が与えられたバスマスタの１または連続したバスサイクルの終端は、９つの第２バス使用許可信号ＡＧＲの論理和から求められる。
【０１７６】
ＯＲ回路２１０には、９つの第２バス使用要求信号ＢＵＲＱが入力され、そのうちの１つ以上の第２バス使用要求信号ＢＵＲＱが「１」の場合に、第２バス使用要求信号ＳＢＲをアサートする。
【０１７７】
マルチプレクサ１４３の９つの入力は、９つの第２バス使用要求要因「命令フェッチ」，「データアクセス」，「キャラクタヘッダ」，「キャラクタデータ」，「ビットマップデータ」，「ピクセルプロッタ」，「ウェーブデータ」，「エンベロープデータ」，「ＤＭＡソース」に対応している。
【０１７８】
従って、マルチプレクサ１４３の９つの入力には、命令フェッチ・アドレスＩＦＡＤ、データアクセス・アドレスＤＡＡＤ、キャラクタヘッダ・アドレスＣＨＡＤ、キャラクタデータ・アドレスＣＤＡＤ、ビットマップデータ・アドレスＢＭＡＤ、ピクセルプロッタ・アドレスＰＰＡＤ、ウェーブデータ・アドレスＷＡＡＤ、エンベロープデータ・アドレスＥＶＡＤ、及びＤＭＡソース・アドレスＤＳＡＤが入力される。
【０１７９】
マルチプレクサ１４３は、これら９つの入力アドレス信号のうち、バスマスタセレクト信号ＢＭＳＥＬが示す（第２バス３３の使用許可を与える）第２バス使用要求要因に対応するアドレス信号を、統一アドレスＣＡＤＲ［２６：０］として出力する。この場合、統一アドレスＣＡＤＲ［２６：１］はステートマシン１５５へ、統一アドレスＣＡＤＲ［０］はバイトイネーブル信号生成回路１５０へ出力される。また、統一アドレスＣＡＤＲ［２２：２１］はアドレスデコーダ１４９へも出力される。
【０１８０】
アドレスデコーダ１４９は、統一アドレスＣＡＤＲ［２２：２１］をデコードして、統一第１領域セレクト信号ＣＡＳＥＬ１及び統一第２領域セレクト信号ＣＡＳＥＬ２を生成し、マルチプレクサ１５１〜１５３、デコーダ１５４、及びステートマシン１５５に出力する。この点を図６を用いて詳しく説明する。
【０１８１】
図６の下段に示すように、アドレスＡ２２（統一アドレスＣＡＤＲ［２２］）が「０」のときは、第２バス第０領域を示し、アドレスＡ２２（統一アドレスＣＡＤＲ［２２］）が「１」かつアドレスＡ２１（統一アドレスＣＡＤＲ［２１］）が「０」のときは、第２バス第１領域を示し、アドレスＡ２２（統一アドレスＣＡＤＲ［２２］）が「１」かつアドレスＡ２１（統一アドレスＣＡＤＲ［２１］）が「１」のときは、第２バス第２領域を示す。
【０１８２】
従って、アドレスデコーダ１４９は、統一アドレスＣＡＤＲ［２２：２１］をデコードすることで、第２バス第０領域、第２バス第１領域、及び第２バス第２領域のうち、どの領域が選択されているかを判別できる。
【０１８３】
そして、アドレスデコーダ１４９は、統一アドレスＣＡＤＲ［２２：２１］が、第２バス第０領域を示している場合は、統一第１領域セレクト信号ＣＡＳＥＬ１及び統一第２領域セレクト信号ＣＡＳＥＬ２の双方をネゲートし、第２バス第１領域を示している場合は、統一第１領域セレクト信号ＣＡＳＥＬ１をアサート、統一第２領域セレクト信号ＣＡＳＥＬ２をネゲートし、第２バス第２領域を示している場合は、統一第１領域セレクト信号ＣＡＳＥＬ１をネゲート、統一第２領域セレクト信号ＣＡＳＥＬ２をアサートする。
【０１８４】
図７に戻って、マルチプレクサ１５１は、統一第１領域セレクト信号ＣＡＳＥＬ１および統一第２領域セレクト信号ＣＡＳＥＬ２に従って、３つのバス幅レジスタ１６０〜１６２のうちの１つを選択し、選択したバス幅レジスタの値を、統一バス幅信号ＣＢＷとして、ステートマシン１５５に出力する。
【０１８５】
つまり、マルチプレクサ１５１は、第２バス第０領域、第２バス第１領域、及び第２バス第２領域のうち、統一アドレス信号ＣＡＤＲが示す領域に対応するバス幅レジスタの値を、統一バス幅信号ＣＢＷとする。
【０１８６】
マルチプレクサ１５２は、統一第１領域セレクト信号ＣＡＳＥＬ１および統一第２領域セレクト信号ＣＡＳＥＬ２に従って、３つのランダムアクセスサイクル数レジスタ１７０〜１７２のうちの１つを選択し、選択したランダムアクセスサイクル数レジスタの値を、統一ランダムアクセスサイクル数信号ＣＲＣＹとして、ステートマシン１５５に出力する。
【０１８７】
つまり、マルチプレクサ１５２は、第２バス第０領域、第２バス第１領域、及び第２バス第２領域のうち、統一アドレス信号ＣＡＤＲが示す領域に対応するランダムアクセスサイクル数レジスタの値を、統一ランダムアクセスサイクル数信号ＣＲＣＹとする。
【０１８８】
マルチプレクサ１５３は、統一第１領域セレクト信号ＣＡＳＥＬ１および統一第２領域セレクト信号ＣＡＳＥＬ２に従って、３つのページアクセスサイクル数レジスタ１８０〜１８２のうちの１つを選択し、選択したページアクセスサイクル数レジスタの値を、統一ページアクセスサイクル数信号ＣＰＣＹとして、ステートマシン１５５に出力する。
【０１８９】
つまり、マルチプレクサ１５３は、第２バス第０領域、第２バス第１領域、及び第２バス第２領域のうち、統一アドレス信号ＣＡＤＲが示す領域に対応するページアクセスサイクル数レジスタの値を、統一ページアクセスサイクル数信号ＣＰＣＹとする。
【０１９０】
デコーダ１５４は、統一第１領域セレクト信号ＣＡＳＥＬ１および統一第２領域セレクト信号ＣＡＳＥＬ２に従って、３つのページサイズレジスタ１９０〜１９２のうちの１つを選択し、選択したページサイズレジスタの値をデコードする。
【０１９１】
つまり、デコーダ１５４は、第２バス第０領域、第２バス第１領域、及び第２バス第２領域のうち、統一アドレス信号ＣＡＤＲが示す領域に対応するページサイズレジスタの値をデコードする。
【０１９２】
そして、デコーダ１５４は、デコード結果を、統一ページ境界信号ＣＰＢとして、ステートマシン１５５に出力する。ページサイズレジスタ１９０〜１９２の各々は、２ビットであり、これにより、ページサイズ０、４、８、１６バイトを表している。デコーダ１５４は、この２ビットをデコードして、外部アドレスＥＡＤ［３：０］のマスクを示す統一ページ境界信号ＣＰＢ［３：０］を生成する。
【０１９３】
マルチプレクサ１４４の９つの入力は、９つの第２バス使用要求要因「命令フェッチ」，「データアクセス」，「キャラクタヘッダ」，「キャラクタデータ」，「ビットマップデータ」，「ピクセルプロッタ」，「ウェーブデータ」，「エンベロープデータ」，「ＤＭＡソース」に対応している。
【０１９４】
従って、マルチプレクサ１４４の９つの入力には、命令フェッチ・サイズ信号ＩＦＳＺ、データアクセス・サイズ信号ＤＡＳＺとしての「１」、キャラクタヘッダ・サイズ信号ＣＨＳＺ、キャラクタデータ・サイズ信号ＣＤＳＺ、ビットマップデータ・サイズ信号ＢＭＳＺとしての「８」、ピクセルプロッタ・サイズ信号ＰＰＳＺ、ウェーブデータ・サイズ信号ＷＡＳＺとしての「１」、エンベロープデータ・サイズ信号ＥＶＳＺとしての「１」、及びＤＭＡソース・サイズ信号ＤＳＳＺが入力される。
【０１９５】
このように、データアクセス・サイズ信号ＤＡＳＺ、ウェーブデータ・サイズ信号ＷＡＳＺ、及びエンベロープデータ・サイズＥＶＳＺとして、「１」が固定値として入力されている。これは、図５から分かるように、これらに対応する第２バス使用要求要因において、要求できるデータ転送のサイズは、１バイトで固定されているからである。なお、マルチプレクサ１４４に入力される「１」は、要求するデータ転送のサイズが１バイトであることを意味する。また、ビットマップデータ・サイズ信号ＢＭＳＺとして「８」が固定値として入力されている（図５参照）。
【０１９６】
マルチプレクサ１４４は、上記９つの入力サイズ信号のうち、バスマスタセレクト信号ＢＭＳＥＬが示す（第２バス３３の使用許可を与える）第２バス使用要求要因に対応するサイズ信号を、統一サイズ信号ＣＳＺとして、ステートマシン１５５へ出力する。
【０１９７】
マルチプレクサ１４５の９つの入力は、９つの第２バス使用要求要因「命令フェッチ」、「データアクセス」，「キャラクタヘッダ」，「キャラクタデータ」，「ビットマップデータ」，「ピクセルプロッタ」，「ウェーブデータ」，「エンベロープデータ」，「ＤＭＡソース」に対応している。
【０１９８】
従って、マルチプレクサ１４５の９つの入力には、第２バス使用要求要因「命令フェッチ」に対応した「０」、データアクセス・ライトデータＤＡＷＤ、第２バス使用要求要因「キャラクタヘッダ」に対応した「０」、第２バス使用要求要因「キャラクタデータ」に対応した「０」、第２バス使用要求要因「ビットマップデータ」に対応した「０」、ピクセルプロッタ・ライトデータＰＰＷＤ、第２バス使用要求要因「ウェーブデータ」に対応した「０」、第２バス使用要求要因「エンベロープデータ」に対応した「０」、及び第２バス使用要求要因「ＤＭＡソース」に対応した「０」が入力される。
【０１９９】
この場合、「０」入力は、ライトデータがないことを意味する。なぜなら、第２バス使用要求要因「命令フェッチ」，「キャラクタヘッダ」，「キャラクタデータ」，「ビットマップデータ」，「ウェーブデータ」，「エンベロープデータ」，「ＤＭＡソース」では、ライトを行わないからである。
【０２００】
マルチプレクサ１４５は、上記９つの入力データのうち、バスマスタセレクト信号ＢＭＳＥＬが示す（第２バス３３の使用許可を与える）第２バス使用要求要因に対応する入力データを、統一ライトデータＣＷＤとして、ステートマシン１５５へ出力する。
【０２０１】
マルチプレクサ１４６の９つの入力は、９つの第２バス使用要求要因「命令フェッチ」、「データアクセス」，「キャラクタヘッダ」，「キャラクタデータ」，「ビットマップデータ」，「ピクセルプロッタ」，「ウェーブデータ」，「エンベロープデータ」，「ＤＭＡソース」に対応している。
【０２０２】
従って、マルチプレクサ１４６の９つの入力には、第２バス使用要求要因「命令フェッチ」に対応した「０」、データアクセス・ライト要求信号ＤＡＷＲＱ、第２バス使用要求要因「キャラクタヘッダ」に対応した「０」、第２バス使用要求要因「キャラクタデータ」に対応した「０」、第２バス使用要求要因「ビットマップデータ」に対応した「０」、ピクセルプロッタ・ライト要求信号ＰＰＷＲＱ、第２バス使用要求要因「ウェーブデータ」に対応した「０」、第２バス使用要求要因「エンベロープデータ」に対応した「０」、及び第２バス使用要求要因「ＤＭＡソース」に対応した「０」が入力される。
【０２０３】
この場合、「０」入力は、ライト要求がないことを意味する。なぜなら、第２バス使用要求要因「命令フェッチ」，「キャラクタヘッダ」，「キャラクタデータ」，「ビットマップデータ」，「ウェーブデータ」，「エンベロープデータ」，「ＤＭＡソース」では、ライトを行わないからである。
【０２０４】
マルチプレクサ１４５は、上記９つの入力信号のうち、バスマスタセレクト信号ＢＭＳＥＬが示す（第２バス３３の使用許可を与える）第２バス使用要求要因に対応する入力信号を、統一ライト要求信号ＣＷＲＱとして、ステートマシン１５５へ出力する。
【０２０５】
バイトイネーブル信号生成回路１５０は、統一アドレスＣＡＤＲ［０］、統一バス幅信号ＣＢＷ、及び統一ライト要求信号ＣＷＲＱに基づいて、統一下位バイトイネーブル信号ＣＬＷＢＥ及び統一上位バイトイネーブル信号ＣＵＰＢＥを生成して、ステートマシン１５５へ出力する。具体的には次の通りである。
【０２０６】
まず、統一ライト要求信号ＣＷＲＱが「０」の場合（リードの場合）を説明する。バイトイネーブル信号生成回路１５０は、統一バス幅信号ＣＢＷがデータバス幅１６ビットを示しているときは、統一アドレスＣＡＤＲ［０］に関係なく、統一下位バイトイネーブル信号ＣＬＷＢＥ及び統一上位バイトイネーブル信号ＣＵＰＢＥの双方をアサートする。
【０２０７】
一方、バイトイネーブル信号生成回路１５０は、統一バス幅信号ＣＢＷがデータバス幅８ビットを示しているときは、統一アドレスＣＡＤＲ［０］が「０」であるときは統一下位バイトイネーブル信号ＣＬＷＢＥをアサートし、統一上位バイトイネーブル信号ＣＵＰＢＥをネゲートし、統一アドレスＣＡＤＲ［０］が「１」であるときは統一下位バイトイネーブル信号ＣＬＷＢＥをネゲートし、統一上位バイトイネーブル信号ＣＵＰＢＥをアサートする。
【０２０８】
以上のように、リードは、バス幅が１６ビットに設定されている領域において、１６ビット単位で行われ、バス幅が８ビットに設定されている領域において、８ビット単位で行われる。
【０２０９】
次に、統一ライト要求信号ＣＷＲＱが「１」の場合（ライトの場合）を説明する。バイトイネーブル信号生成回路１５０は、統一バス幅信号ＣＢＷの値に関係なく、統一アドレスＣＡＤＲ［０］が「０」であるときは、統一下位バイトイネーブル信号ＣＬＷＢＥをアサートし、統一上位バイトイネーブル信号ＣＵＰＢＥをネゲートし、統一アドレスＣＡＤＲ［０］が「１」であるときは、統一下位バイトイネーブル信号ＣＬＷＢＥをネゲートし、統一上位バイトイネーブル信号ＣＵＰＢＥをアサートする。
【０２１０】
以上のように、バス幅が１６ビットに設定されている領域、８ビットに設定されている領域のいずれにおいても、ライトは常に８ビット単位で行われる。
【０２１１】
ステートマシン１５５は、第２バス３３へのアクセスを複数のステート（状態）ＩＤＬＥ，ＦＲＥＥ，ＷＲＩＴＥ，ＲＥＡＤ，ＳＴＥＡＬに分けて、外部アドレスＥＡＤ、外部アドレス出力イネーブル信号ＥＡＤＯＥ、外部データ出力ＥＤＡＯ、外部データ出力イネーブル信号ＥＤＡＯＥ、外部リードイネーブル信号ＥＲＤＥ、外部ライトイネーブル信号ＥＷＲＥ、下位バイトイネーブル信号ＬＷＢＥ、上位バイトイネーブル信号ＵＰＢＥ、第１領域セレクト信号ＡＳＳＥＬ１、及び第２領域セレクト信号ＡＳＳＥＬ２、並びに、命令フェッチ・上位バイトリード許可信号ＩＦＵＲＧ、命令フェッチ・下位バイトリード許可信号ＩＦＬＲＧ、データアクセス・下位バイトリード許可信号ＤＡＬＲＧ、データアクセス・上位バイトリード許可信号ＤＡＵＲＧ，データアクセス・ライト受諾信号ＤＡＷＧＲ，キャラクタヘッダ・下位バイトリード許可信号ＣＨＬＲＧ，キャラクタヘッダ・上位バイトリード許可信号ＣＨＵＲＧ、キャラクタデータ・下位バイトリード許可信号ＣＤＬＲＧ、キャラクタデータ・上位バイトリード許可信号ＣＤＵＲＧ、ビットマップデータ・下位バイトリード許可信号ＢＭＬＲＧ、ビットマップデータ・上位バイトリード許可信号ＢＭＵＲＧ、ピクセルプロッタ・下位バイトリード許可信号ＰＰＬＲＧ、ピクセルプロッタ・上位バイトリード許可信号ＰＰＵＲＧ、ピクセルプロッタ・ライト受諾信号ＰＰＷＧＲ、ウェーブデータ・下位バイトリード許可信号ＷＡＬＲＧ、ウェーブデータ・上位バイトリード許可信号ＷＡＵＲＧ、エンベロープデータ・下位バイトリード許可信号ＥＶＬＲＧ、エンベロープデータ・上位バイトリード許可信号ＥＶＵＲＧ、ＤＭＡソース・下位バイトリード許可信号ＤＳＬＲＧ、ＤＭＡソース・上位バイトリード許可信号ＤＳＵＲＧ、命令フェッチ・リード許可信号ＩＦＲＧ、データアクセス・リード許可信号ＤＡＲＧ、キャラクタヘッダ・リード許可信号ＣＨＲＧ、キャラクタデータ・リード許可信号ＣＤＲＧ、ビットマップデータ・リード許可信号ＢＭＲＧ、ピクセルプロッタ・リード許可信号ＰＰＲＧ、ウェーブデータ・リード許可信号ＷＡＲＧ、エンベロープデータ・リード許可信号ＥＶＲＧ、及びＤＭＡソース・リード許可信号ＤＳＲＧを制御する。
【０２１２】
図８は、図７のステートマシン１５５における状態遷移の説明図である。図８に示すように、ＩＤＬＥステートＳＴ０は、第２バス３３に対する使用要求の無い空き状態である。ＦＲＥＥステートＳＴ１では、ステートマシン１５５は、ＣＰＵ１からの外部バス４３の開放要求に応じて（外部バス開放要求レジスタ１５６に「１」がセット）、外部アドレスＥＡＤ、外部データ出力ＥＤＡＯ、外部リードイネーブル信号ＥＲＤＥ、外部ライトイネーブル信号ＥＷＲＥ、下位バイトイネーブル信号ＬＷＢＥ、上位バイトイネーブル信号ＵＰＢＥ、第１領域セレクト信号ＡＳＳＥＬ１、及び第２領域セレクト信号ＡＳＳＥＬ２をＨｉ−Ｚ（ハイインピーダンス）にする。
【０２１３】
ＷＲＩＴＥステートＳＴ２は、ライトサイクルである。複数バイト連続でのライトが行われることがある。
【０２１４】
ＲＥＡＤステートＳＴ３は、リードサイクルである。複数バイト連続でのリードが行われることがある。ただし、一定バイト数連続でのリードが要求され、かつ、サウンドプロセッサ７からのリード要求がある場合には、サウンドプロセサ７からのリードアクセスを割り込ませるためにＳＴＥＡＬステートＳＴ４へ移行する。
【０２１５】
ＳＴＥＡＬステートＳＴ４は、サウンドプロセッサ７からのバス使用要求は緊急度が高いため、他のバスマスタのリードアクセス中に、割り込みアクセスをするためのステートである。
【０２１６】
図に沿って、状態遷移を説明する。なお、図中、「∧」は論理積、「∨」は論理和、「＜」及び「≧」は不等号、「＝」は等号、を意味する。本実施の形態では、図中の条件式を満足したとき、次の内部クロック信号ＩＣＬＫの立ち上がりで、満足した条件式に応じた状態へ遷移する。
【０２１７】
まず、ＩＤＬＥステートＳＴ０からの状態遷移を説明する。
【０２１８】
ステートマシン１５５は、外部バス開放要求レジスタ１５６の値が「１」になったとき、ＦＲＥＥステートＳＴ１へ移行する。
【０２１９】
また、ステートマシン１５５は、外部バス開放要求レジスタ１５６の値が「０」、かつ、第２バス使用要求信号ＳＢＲが「１」、かつ、統一ライト要求信号ＣＷＲＱが「１」になったときに、ＷＲＩＴＥステートＳＴ２へ移行する。
【０２２０】
さらに、ステートマシン１５５は、外部バス開放要求レジスタ１５６の値が「０」、かつ、第２バス使用要求信号ＳＢＲが「１」、かつ、統一ライト要求信号ＣＷＲＱが「０」になったときに、ＲＥＡＤステートＳＴ３へ移行する。なお、第２バス使用要求信号ＳＢＲが「１」であって、統一ライト要求信号ＣＷＲＱが「０」の場合は、リード要求を意味する。
【０２２１】
さらに、ステートマシン１５５は、外部バス開放要求レジスタ１５６の値が「０」、かつ、第２バス使用要求信号ＳＢＲが「０」になったときは、同じＩＤＬＥステートＳＴ０に移行する。
【０２２２】
次に、ＦＲＥＥステートＳＴ１からの状態遷移を説明する。
【０２２３】
ステートマシン１５５は、サイクルカウントＣＹＣが「１」、かつ、外部バス開放要求レジスタ１５６の値が「０」になったときに、ＩＤＬＥステートＳＴ０へ移行する。
【０２２４】
ここで、サイクルカウンタは、３ビットのカウンタである。ＦＲＥＥステートＳＴ１でのサイクルカウントＣＹＣの初期値は、「０」、つまり、「０ｂ０００」であり、内部クロックＩＣＬＫの１サイクルごとにデクリメントされる。サイクルカウントＣＹＣの初期値「０ｂ０００」は、内部クロックＩＣＬＫの８サイクルを意味する。
【０２２５】
次に、ＷＲＩＴＥステートＳＴ２からの状態遷移を説明する。
【０２２６】
ステートマシン１５５は、サイクルカウントＣＹＣが「１」、かつ、バイトカウントＢＹＣが「２」未満、外部バス開放要求レジスタ１５６の値が「０」、かつ、第２バス使用要求信号ＳＢＲが「０」になったときに、ＩＤＬＥステートＳＴ０へ移行する。
【０２２７】
ここで、ＷＲＩＴＥステートＳＴ２でのサイクルカウントＣＹＣの初期値は、統一ランダムアクセスサイクル数信号ＣＲＣＹが示すランダムアクセスサイクル数である。また、ＷＲＩＴＥステートＳＴ２でのバイトカウントＢＹＣの初期値は、統一サイズ信号ＣＳＺが示すサイズ（図５参照）であり、１バイトのライトが終了するたびにデクリメントされる。
【０２２８】
また、ステートマシン１５５は、サイクルカウントＣＹＣが「１」、かつ、バイトカウントＢＹＣが「２」未満、かつ、外部バス開放要求レジスタ１５６の値が「１」になったときに、ＦＲＥＥステートＳＴ１へ移行する。
【０２２９】
さらに、ステートマシン１５５は、サイクルカウントＣＹＣが「１」、かつ、バイトカウントＢＹＣが「２」未満、かつ、外部バス開放要求レジスタ１５６の値が「０」、かつ、第２バス使用要求信号ＳＢＲが「１」、かつ、統一ライト要求信号ＣＷＲＱが「１」になったときは、同じＷＲＩＴＥステートＳＴ２に移行する。
【０２３０】
さらに、ステートマシン１５５は、サイクルカウントＣＹＣが「１」、かつ、バイトカウントＢＹＣが「２」未満、かつ、外部バス開放要求レジスタ１５６の値が「０」、かつ、第２バス使用要求信号ＳＢＲが「１」、かつ、統一ライト要求信号ＣＷＲＱが「０」になったときに、ＲＥＡＤステートＳＴ３へ移行する。
【０２３１】
次に、ＲＥＡＤステートＳＴ３からの状態遷移について説明する。
【０２３２】
ステートマシン１５５は、サイクルカウントＣＹＣが「１」、かつ、図８の条件１が「偽」、かつ、外部バス開放要求レジスタ１５６の値が「０」、かつ、第２バス使用要求信号ＳＢＲが「０」になったときに、ＩＤＬＥステートＳＴ０へ移行する。
【０２３３】
ここで、ＲＥＡＤステートＳＴ３でのサイクルカウントＣＹＣの初期値は、統一ランダムアクセスサイクル数信号ＣＲＣＹが示すランダムアクセスサイクル数あるいは統一ページアクセスサイクル数信号ＣＰＣＹが示すページアクセスサイクル数である。
【０２３４】
条件１は、第２バス幅信号ＳＢＷが「１」かつ外部アドレスＥＡＤ［０］が「０」かつバイトカウントＢＹＣが「３」以上、あるいは、第２バス幅信号ＳＢＷが「１」かつ外部アドレスＥＡＤ［０］が「１」かつバイトカウントＢＹＣが「２」以上、あるいは、第２バス幅信号ＳＢＷが「０」かつバイトカウントＢＹＣが「２」以上、のいずれかのときに「真」になる条件である。
【０２３５】
第２バス幅信号ＳＢＷが「０」のときは、要求されたバス幅が８ビットであることを意味し、「１」のきは、要求されたバス幅が１６であることを意味する。また、ＲＥＡＤステートＳＴ３でのバイトカウントＢＹＣの初期値は、統一サイズ信号ＣＳＺが示すサイズ（図５参照）であり、１バイトのリードが終了するたびにデクリメントされる。また、外部アドレスＥＡＤ［０］が「０」のとき、１６ビットデータの下位バイトが指し示され、「１」のとき、１６ビットデータの上位バイトが指し示される。
【０２３６】
従って、条件１が「真」ということは、要求されたバス幅が１６ビットの場合において、現在の外部アドレスＥＡＤ［０］が下位バイトを示し、残りのリードデータが、３バイト以上であるため、１バスサイクルで、残りのリードデータ全てをリードできないこと、あるいは、要求されたバス幅が１６ビットの場合において、現在の外部アドレスＥＡＤ［０］が上位バイトを示し、残りのリードデータが、２バイト以上であるため、１バスサイクルで、残りのリードデータ全てをリードできないこと、あるいは、要求されたバス幅が８ビットの場合において、残りのリードデータが、２バイト以上であるため、１バスサイクルで、残りのリードデータ全てをリードできないこと、を意味する。
【０２３７】
逆に、条件１が「偽」ということは、要求されたバス幅が１６ビットの場合において、現在の外部アドレスＥＡＤ［０］が下位バイトを示し、残りのリードデータが、２バイト以下であるため、１バスサイクルで、残りのリードデータ全てをリードできること、あるいは、要求されたバス幅が１６ビットの場合において、現在の外部アドレスＥＡＤ［０］が上位バイトを示し、残りのリードデータが、１バイトであるため、１バスサイクルで、残りのリードデータ全てをリードできること、あるいは、要求されたバス幅が８ビットの場合において、残りのリードデータが、１バイトであるため、１バスサイクルで、残りのリードデータ全てをリードできること、を意味する。
【０２３８】
さて、ステートマシン１５５は、サイクルカウントＣＹＣが「１」、かつ、条件１が「偽」、かつ、外部バス開放要求レジスタ１５６の値が「１」になったときに、ＦＲＥＥステートＳＴ１へ移行する。
【０２３９】
また、ステートマシン１５５は、サイクルカウントＣＹＣが「１」、かつ、条件１が「偽」、かつ、外部バス開放要求レジスタ１５６の値が「０」、かつ、第２バス使用要求信号ＳＢＲが「１」、かつ、統一ライト要求信号ＣＷＲＱが「１」になったときに、ＷＲＩＴＥステートＳＴ２へ移行する。
【０２４０】
さらに、ステートマシン１５５は、サイクルカウントＣＹＣが「１」、かつ、条件１が「偽」、かつ、外部バス開放要求レジスタ１５６の値が「０」、かつ、第２バス使用要求信号ＳＢＲが「１」、かつ、統一ライト要求信号ＣＷＲＱが「０」になったときは、同じＲＥＡＤステートＳＴ３に移行する。
【０２４１】
さらに、ステートマシン１５５は、サイクルカウントＣＹＣが「１」、かつ、条件１が「真」、かつ、図８の条件２が「真」になったときに、ＳＴＥＡＬステートＳＴ４へ移行する。
【０２４２】
ここで、条件２は、ウェーブデータ・バス要求信号ＷＡＢＲが「１」あるいはエンベロープデータ・バス要求信号ＥＶＢＲが「１」のときに「真」になる条件である。
【０２４３】
従って、サウンドプロセッサ７以外のバスマスタがリードアクセス中の場合でも、サイクルカウントＣＹＣが「１」のときに、サウンドプロセッサ７から、ウェーブデータ・バス要求信号ＷＡＢＲあるいはエンベロープデータ・バス要求信号ＥＶＢＲが発行されると、ＳＴＥＡＬステートＳＴ４に移行し、サウンドプロセッサ７のリードアクセスを割り込ませる。ただし、ＳＴＥＡＬステートＳＴ４への移行は、条件１が「真」であることが条件なので、１バスサイクルでは、残りのリードデータ全てがリード不可能なことが条件となる。言い換えると、条件１が「偽」のために、１バスサイクルで、残りのリードデータ全てがリード可能なときは、該バスマスタのリードアクセスを終了させるべく、ＲＥＡＤステートＳＴ３が維持される。
【０２４４】
次に、ＳＴＥＡＬステートＳＴ４からの状態遷移を説明する。
【０２４５】
ステートマシン１５５は、サイクルカウントＣＹＣが「１」になったときに、ＲＥＡＤステートＳＴ３へ移行する。
【０２４６】
さて、次に、ＨＤＬ（ｈａｒｄｗａｒｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ）によるステートマシン１５５の記述を基に、図８の状態遷移を詳細に説明する。この場合、次のことを前提とする。上記と同様に、論理は、次の内部クロック信号ＩＣＬＫの立ち上がりで反映される。また、基本的に正論理で記載する。ただし、統一下位バイトイネーブル信号ＣＬＷＢＥ、統一上位バイトイネーブル信号ＣＵＰＢＥ、上位バイトイネーブル信号ＵＰＢＥ、及び下位バイトイネーブル信号ＬＷＢＥは、負論理とする。
【０２４７】
また、「＝」は、条件文では等号を意味し、それ以外では代入を意味する。
【０２４８】
また、下記の説明における、ライト受諾信号ＷＲＡＣ、ライトデータ保持値ＷＤＳＶ、ランダムアクセスサイクル数保持値ＲＡＣＳＶ、外部アドレス保持値ＥＡＤＳＶ、第１領域セレクト保持値ＦＳＳＶ、第２領域セレクト保持値ＳＳＳＶ、第２バス幅信号ＳＢＷ、第２バス幅保持値ＳＢＷＳＶ、リード許可信号ＲＥＧＲ、リード許可保持値ＲＥＧＲＳＶ、ページアクセスサイクル数保持値ＰＡＣＳＶ、下位バイトリード許可信号ＬＷＲＧ、及び上位バイトリード許可信号ＵＰＲＧは、ステートマシン１５５の内部信号であるため、図７には示されていない。
【０２４９】
［ＩＤＬＥステートＳＴ０］
【０２５０】
外部アドレス出力イネーブル信号ＥＡＤＯＥ＝１、外部データ出力イネーブル信号ＥＤＡＯＥ＝０（つまり、第２バス３３のデータバスをＨｉ−Ｚにする。）、外部ライトイネーブル信号ＥＷＲＥ＝０、及び、外部リードイネーブル信号ＥＲＤＥ＝０、とする。
【０２５１】
もし、外部バス開放要求レジスタ１５６＝１ならば、後述のＦＲＥＥ共通論理を実行し、それ以外で、第２バス使用要求信号ＳＢＲ＝１ならば、後述のＡＣＣＥＳＳ共通論理を実行し、さらにそれ以外の場合は、後述のＩＤＬＥ共通論理を実行する。
【０２５２】
［ＦＲＥＥステートＳＴ１］
【０２５３】
（１）＜サイクルカウントＣＹＣ≠１の場合＞
【０２５４】
サイクルカウントＣＹＣを１つデクリメントする。
【０２５５】
（２）＜サイクルカウントＣＹＣ≠１でない場合、つまり、サイクルカウントＣＹＣ＝１の場合＞
【０２５６】
外部アドレス出力イネーブル信号ＥＡＤＯＥ＝０とする。
【０２５７】
もし、外部バス開放要求レジスタ１５６＝０ならば、外部アドレス出力イネーブルＥＡＤＯＥ＝１、ステートをＩＤＬＥステートＳＴ０とする。
【０２５８】
［ＷＲＩＴＥステートＳＴ２］
【０２５９】
（１）＜サイクルカウントＣＹＣ≠１の場合＞
【０２６０】
（１−１）ライト受諾信号ＷＲＡＣ［８：０］＝０ｂ０００００００００、外部ライトイネーブル信号ＥＷＲＥ＝１、外部データ出力イネーブル信号ＥＤＡＯＥ＝１、とする。ここで、ライト受諾信号ＷＲＡＣ［８：０］をネゲートしているのは、バスサイクルの途中であるため、外部メモリ４５へのデータの書き込みが完了していないからである。
【０２６１】
（１−２）もし、外部アドレスＥＡＤ［０］＝１ならば、外部データＥＤＡＯ［１５：８］＝ライトデータ保持値ＷＤＳＶ［１５：８］、外部データＥＤＡＯ［７：０］＝ライトデータ保持値ＷＤＳＶ［１５：８］、とする。ライトは、バイト単位で行われるので、外部メモリ４５にライトされるのは、データバス幅が１６ビットの場合には外部データＥＤＡＯ［１５：８］、データバス幅が８ビットの場合には外部データＥＤＡＯ［７：０］である。
【０２６２】
一方、外部アドレスＥＡＤ［０］＝１以外、つまり、外部アドレスＥＡＤ［０］＝０の場合は、外部データＥＤＡＯ［１５：０］＝ライトデータ保持値ＷＤＳＶ［１５：０］、とする。ライトは、バイト単位で行われるので、外部メモリ４５にライトされるのは、外部データＥＤＡＯ［７：０］である。
【０２６３】
（１−３）サイクルカウントＣＹＣを１つデクリメントする。
【０２６４】
（２）＜サイクルカウントＣＹＣ≠１でない場合、つまりサイクルカウントＣＹＣ＝１の場合で、バイトカウントＢＹＣ≧２の場合＞
【０２６５】
ライト受諾信号ＷＲＡＣ［８：０］＝０ｂ０００００００００、外部ライトイネーブル信号ＥＷＲＥ＝０、外部データ出力イネーブル信号ＥＤＡＯＥ＝０、サイクルカウントＣＹＣ＝ランダムアクセスサイクル数保持値ＲＡＣＳＶ、外部アドレスＥＡＤ［２６：０］＝外部アドレスＥＡＤ［２６：０］＋１、上位バイトイネーブル信号ＵＰＢＥ＝外部アドレスＥＡＤ［０］を論理反転した値、とする。また、バイトカウントＢＹＣを１つデクリメントする。ここで、ライト受諾信号ＷＲＡＣ［８：０］をネゲートしているのは、ライトするデータが残っているからである。
【０２６６】
（３）＜サイクルカウントＣＹＣ≠１でない場合、つまりサイクルカウントＣＹＣ＝１の場合で、バイトカウント≧２でない場合、つまりバイトカウント＝１の場合＞
【０２６７】
外部ライトイネーブル信号ＥＷＲＥ＝０、外部データ出力イネーブル信号ＥＤＡＯＥ＝０、とする。もし、外部バス開放要求レジスタ１５６＝１ならば、後述のＦＲＥＥ共通論理を実行し、それ以外で、第２バス使用要求信号ＳＢＲ＝１ならば、後述のＡＣＣＥＳＳ共通論理を実行し、さらにそれ以外の場合は、後述のＩＤＬＥ共通論理を実行する。
【０２６８】
［ＲＥＡＤステートＳＴ３］
【０２６９】
（１）外部ライトイネーブル信号ＥＷＲＥ＝０、外部データ出力イネーブル信号ＥＤＡＯＥ＝０、とする。
【０２７０】
（２）＜サイクルカウントＣＹＣ≠１の場合＞
【０２７１】
サイクルカウントＣＹＣを１つデクリメントし、外部リードイネーブル信号ＥＲＤＥ＝１、とする。
【０２７２】
（３）＜サイクルカウントＣＹＣ≠１でない場合、つまり、サイクルカウントＣＹＣ＝１の場合であって、図８の条件１が「真」の場合＞
【０２７３】
（３−１）＜図８の条件２が「真」の場合＞
【０２７４】
（３−１−１）外部リードイネーブル信号ＥＲＤＥ＝０とする。
【０２７５】
（３―１−２）もし、第２バス幅信号ＳＢＷ＝１かつ外部アドレスＥＡＤ［０］＝０かつバイトカウントＢＹＣ≧３の場合は、バイトカウントＢＹＣを２つデクリメントし、外部アドレス保持値ＥＡＤＳＶ［２６：０］＝外部アドレスＥＡＤ［２６：０］＋２、とする。一方、それ以外の場合であって、バイトカウントＢＹＣ≧２のときは、バイトカウントＢＹＣを１つデクリメントし、外部アドレス保持値ＥＡＤＳＶ［２６：０］＝外部アドレスＥＡＤ［２６：０］＋１、とする。
【０２７６】
（３−１−３）外部アドレスＥＡＤ［２６：１］＝統一アドレスＣＡＤＲ［２６：１］、外部アドレスＥＡＤ［０］＝統一下位バイトイネーブル信号ＣＬＷＢＥ、第１領域セレクト信号ＡＳＳＥＬ１＝統一第１領域セレクト信号ＣＡＳＥＬ１、第２領域セレクト信号ＡＳＳＥＬ２＝統一第２領域セレクト信号ＣＡＳＥＬ２、第２バス幅保持値ＳＢＷＳＶ＝第２バス幅信号ＳＢＷ、第２バス幅信号ＳＢＷ＝統一バス幅信号ＣＢＷ、上位バイトイネーブル信号ＵＰＢＥ＝統一上位バイトイネーブル信号ＣＵＰＢＥ、サイクルカウントＣＹＣ＝統一ランダムアクセスサイクル数信号ＣＲＣＹ、リード許可保持値ＲＥＧＲＳＶ＝リード許可信号ＲＥＧＲ、リード許可信号ＲＥＧＲ＝バスマスタセレクト信号ＢＭＳＥＬ、ステートをＳＴＥＡＬステートＳＴ４とする。
【０２７７】
（３−２）＜図８の条件２が「偽」の場合＞
【０２７８】
（３−２−１）第１領域セレクト信号ＡＳＳＥＬ１＝第１領域セレクト保持値ＦＳＳＶ、第２領域セレクト信号ＡＳＳＥＬ２＝第２領域セレクト保持値ＳＳＳＶ、とする。
【０２７９】
（３−２−２）もし、第２バス幅信号ＳＢＷ＝１かつ外部アドレスＥＡＤ［０］＝０かつバイトカウントＢＹＣ≧３の場合は、バイトカウントＢＹＣを２つデクリメントし、外部アドレスＥＡＤ［２６：０］＝外部アドレスＥＡＤ［２６：０］＋２、とする。一方、それ以外の場合であって、バイトカウントＢＹＣ≧２のときは、バイトカウントＢＹＣを１つデクリメントし、外部アドレスＥＡＤ［２６：０］＝外部アドレスＥＡＤ［２６：０］＋１、とする。
【０２８０】
（３−２−３）もし、第２バス幅信号ＳＢＷ＝１の場合は、上位バイトイネーブル信号ＵＰＢＥ＝０、とし、それ以外の場合は、つまり、第２バス幅信号ＳＢＷ＝０の場合は、上位バイトイネーブル信号ＵＰＢＥ＝外部アドレスＥＡＤ［０］を論理反転した値、とする。
【０２８１】
（３−２−４）＜第２バス幅信号ＳＢＷ＝１の場合＞
【０２８２】
もし、外部アドレスＥＡＤ［３：１］の各ビットと、統一ページ境界信号ＣＰＢ［３：１］の各ビットと、の論理和が、「０ｂ１１１」でない場合は、サイクルカウントＣＹＣ＝統一ページアクセスサイクル数信号ＣＰＣＹ、外部リードイネーブル信号ＥＲＤＥ＝１、とする。一方、外部アドレスＥＡＤ［３：１］の各ビットと、統一ページ境界信号ＣＰＢ［３：１］の各ビットと、の論理和が、「０ｂ１１１」である場合は、サイクルカウントＣＹＣ＝ランダムアクセスサイクル数保持値ＲＡＣＳＶ、外部リードイネーブル信号ＥＲＤＥ＝０、とする。これらの点を詳しく説明する。
【０２８３】
デコーダ１５４は、本実施の形態では、例えば、ページサイズが０バイトのときページ境界信号ＣＰＢを「０ｂ１１１１」とし、４バイトのときページ境界信号ＣＰＢを「０ｂ１１００」とし、８バイトのときページ境界信号ＣＰＢを「０ｂ１０００」とし、１６バイトのときページ境界信号ＣＰＢを「０ｂ００００」とする。
【０２８４】
ここで、第２バス幅信号ＳＢＷ＝１ということは、第２バス３３のデータバス幅が１６ビット、つまり、外部メモリ４５の１ワードが１６ビットで構成されている場合である。この場合、次のワードを指し示すために外部アドレスＥＡＤが変化するとき、外部アドレスＥＡＤ［０］は「０」を示したまま変化せず、外部アドレスＥＡＤ［２６：１］の値がインクリメントされる。
【０２８５】
このことを踏まえた上で、ページ境界信号ＣＰＢ［３：０］が「０ｂ１１００」（４バイトを示す。）の場合を例に説明を行う。この場合、ページサイズが４バイトであるから、外部アドレスＥＡＤ［３：１］が、例えば、「０ｂ０００」、「０ｂ００１」の範囲は同一ページ内である。つまり、１ページが４バイトのときは、同一ページ内では、外部アドレスＥＡＤ［１］が、「０ｂ０」→「０ｂ１」と変化する。
【０２８６】
従って、４バイトのページの最後のワードでは、外部アドレスＥＡＤ［１］が「０ｂ１」になる。よって、ページ境界信号ＣＰＢ［３：１］（０ｂ１１０）の各ビットと、ページの最後のワードを示す外部アドレスＥＡＤ［３：１］（０ｂ＊＊１）の各ビットと、の論理和は、必ず、「０ｂ１１１」となる。このようにして、外部アドレスＥＡＤが指し示すワードが、ページの最後のワードか否かが判別される。なお、「＊」は任意の値である。
【０２８７】
（３−２−５）＜第２バス幅信号ＳＢＷ＝０の場合＞
【０２８８】
もし、外部アドレスＥＡＤ［３：０］の各ビットと、統一ページ境界信号ＣＰＢ［３：０］の各ビットと、の論理和が、「０ｂ１１１１」でない場合は、サイクルカウントＣＹＣ＝統一ページアクセスサイクル数信号ＣＰＣＹ、外部リードイネーブル信号ＥＲＤＥ＝１、とする。一方、外部アドレスＥＡＤ［３：０］の各ビットと、統一ページ境界信号ＣＰＢ［３：０］の各ビットと、の論理和が、「０ｂ１１１１」である場合は、サイクルカウントＣＹＣ＝ランダムアクセスサイクル数保持値ＲＡＣＳＶ、外部リードイネーブル信号ＥＲＤＥ＝０、とする。これらの点を詳しく説明する。
【０２８９】
第２バス幅信号ＳＢＷ＝０ということは、第２バス３３のデータバス幅が８ビット、つまり、外部メモリ４５の１ワードが８ビットで構成されている場合である。この場合、次のワードを指し示すために外部アドレスＥＡＤが変化するとき、外部アドレスＥＡＤ［２６：０］の値がインクリメントされる。
【０２９０】
このことを踏まえた上で、ページ境界信号ＣＰＢが「０ｂ１１００」（４バイトを示す。）の場合を例に説明を行う。この場合、ページサイズが４バイトであるから、外部アドレスＥＡＤ［３：０］が、例えば、「０ｂ００００」、「０ｂ０００１」、「０ｂ００１０」、「０ｂ００１１」の範囲は同一ページ内である。つまり、１ページが４バイトのときは、同一ページ内では、外部アドレスＥＡＤ［１：０］が、「０ｂ００」→「０ｂ０１」→「０ｂ１０」→「０ｂ１１」と変化する。
【０２９１】
従って、４バイトのページの最後のワードでは、外部アドレスＥＡＤ［１：０］が「０ｂ１１」になる。
【０２９２】
よって、ページ境界信号ＣＰＢ［３：０］（０ｂ１１００）の各ビットと、ページの最後のワードを示す外部アドレスＥＡＤ［３：０］（０ｂ＊＊１１）の各ビットと、の論理和は、必ず、「０ｂ１１１１」となる。このようにして、外部アドレスＥＡＤが指し示すワードが、ページの最後のワードか否かが判別される。なお、「＊」は任意の値である。
【０２９３】
（４）＜ＲＥＡＤステートＳＴ３において、サイクルカウントＣＹＣ≠１でない場合、つまり、サイクルカウントＣＹＣ＝１の場合であって、図８の条件１が「偽」の場合＞
【０２９４】
外部リードイネーブルＥＲＤＥ＝０とする。もし、外部バス開放要求レジスタ１５６＝１ならば、後述のＦＲＥＥ共通論理を実行し、それ以外で、第２バス使用要求信号ＳＢＲ＝１ならば、後述のＡＣＣＥＳＳ共通論理を実行し、さらにそれ以外の場合は、後述のＩＤＬＥ共通論理を実行する。
【０２９５】
［ＳＴＥＡＬステートＳＴ４］
【０２９６】
（１）＜サイクルカウントＣＹＣ≠１の場合＞
【０２９７】
外部リードイネーブル信号ＥＲＤＥ＝１とし、サイクルカウントＣＹＣを１つデクリメントする。
【０２９８】
（２）＜サイクルカウントＣＹＣ≠１でない場合、つまりサイクルカウントＣＹＣ＝１の場合＞
【０２９９】
（２−１）外部リードイネーブル信号ＥＲＤＥ＝０、外部アドレスＥＡＤ［２６：０］＝外部アドレス保持値ＥＡＤＳＶ［２６：０］、第１領域セレクト信号ＡＳＳＥＬ１＝第１領域セレクト保持値ＦＳＳＶ、第２領域セレクト信号ＡＳＳＥＬ２＝第２領域セレクト保持値ＳＳＳＶ、第２バス幅信号ＳＢＷ＝第２バス幅保持値ＳＢＷＳＶ、とする。
【０３００】
（２−２）もし、第２バス幅保持値ＳＢＷＳＶ＝１ならば、上位バイトイネーブル信号ＵＰＢＥ＝０とし、それ以外ならば（つまり、第２バス保持値ＳＢＷＳＶ＝０ならば）、上位バイトイネーブル信号ＵＰＢＥに外部アドレス保持値ＥＡＤＳＶ［０］を反転した値を代入する。
【０３０１】
（２−３）サイクルカウントＣＹＣ＝ランダムアクセスサイクル数保持値ＲＡＣＳＶ［２：０］、リード許可信号ＲＥＧＲ［８：０］＝リード許可保持値ＲＥＧＲＳＶ［８：０］、ステートをＲＥＡＤステートＳＴ３とする。
【０３０２】
［ＩＤＬＥ共通論理］
【０３０３】
リード許可信号ＲＥＧＲ［８：０］＝０とし、ステートをＩＤＬＥステートＳＴ０とする。
【０３０４】
［ＦＲＥＥ共通論理］
【０３０５】
外部アドレスＥＡＤ［２６：０］＝０ｘ４００００００、上位バイトイネーブル信号ＵＰＢＥ＝１、第１領域セレクト信号ＡＳＳＥＬ１＝０、第２領域セレクト信号ＡＳＳＥＬ２＝０、サイクルカウントＣＹＣ＝０、ステートをＦＲＥＥステートＳＴ１とする。
【０３０６】
ここで、「０ｘ４００００００」は、リード／ライトいずれのアクセスの際にも使用されないアドレスである。サイクルカウントＣＹＣが「０」ということは、１バスサイクルを８クロックサイクルとすることを表している。なお、下位バイトイネーブル信号ＬＷＢＥは、外部アドレスＥＡＤ［０］と同じ挙動をとる。
【０３０７】
［ＡＣＣＥＳＳ共通論理］
【０３０８】
（１）第２バス幅信号ＳＢＷ＝統一バス幅信号ＣＢＷ、外部アドレスＥＡＤ［２６：１］＝統一アドレスＣＡＤＲ［２６：１］、外部アドレスＥＡＤ［０］＝統一下位バイトイネーブル信号ＣＬＷＢＥ、上位バイトイネーブル信号ＵＰＢＥ＝統一上位バイトイネーブル信号ＣＵＰＢＥ、第１領域セレクト信号ＡＳＳＥＬ１＝統一第１領域セレクト信号ＣＡＳＥＬ１、第１領域セレクト保持値ＦＳＳＶ＝統一第１領域セレクト信号ＣＡＳＥＬ１、第２領域セレクト信号ＡＳＳＥＬ２＝統一第２領域セレクト信号ＣＡＳＥＬ２、第２領域セレクト保持値ＳＳＳＶ＝統一第２領域セレクト信号ＣＡＳＥＬ２、サイクルカウントＣＹＣ＝統一ランダムアクセスサイクル数信号ＣＲＣＹ、ランダムアクセスサイクル数保持値ＲＡＣＳＶ＝統一ランダムアクセスサイクル数信号ＣＲＣＹ、ページアクセスサイクル数保持値ＰＡＣＳＶ＝統一ページアクセスサイクル数信号ＣＰＣＹ、及び、バイトカウントＢＹＣ＝統一サイズ信号ＣＳＺ、とする。
【０３０９】
（２）＜統一ライト要求信号ＣＷＲＱ＝１の場合＞
【０３１０】
ライト受諾信号ＷＲＡＣ［８：０］＝バスマスタセレクト信号ＢＭＳＥＬ［８：０］、リード許可信号ＲＥＧＲ［８：０］＝０ｂ０００００００００、ライトデータ保持値ＷＤＳＶ［１５：０］＝統一ライトデータＣＷＤ［１５：０］、及び、ステートをＷＲＩＴＥステートＳＴ２とする。
【０３１１】
（３）＜統一ライト要求信号ＣＷＲＱ＝１以外の場合、つまり統一ライト要求信号ＣＷＲＱ＝０の場合＞
【０３１２】
リード許可信号ＲＥＧＲ［８：０］＝バスマスタセレクト信号ＢＭＳＥＬ［８：０］、及びステートをＲＥＡＤステートＳＴ３とする。
【０３１３】
［リード許可信号生成論理］
【０３１４】
（１）＜サイクルカウンタＣＹＣ＝１の場合＞
【０３１５】
（１−１）＜第２バス幅信号ＳＢＷ＝１（１６ビットデータバス幅を意味）の場合＞
【０３１６】
下位バイトリード許可信号ＬＷＲＧ［８：０］＝リード許可信号ＲＥＧＲ［８：０］、及び、上位バイトリード許可信号ＵＰＲＧ［８：０］＝リード許可信号ＲＥＧＲ［８：０］、とする。
【０３１７】
（１−２）＜第２バス幅信号ＳＢＷ＝１以外の場合、つまり第２バス幅信号ＳＢＷ＝０（８ビットデータバス幅を意味）の場合＞
【０３１８】
外部アドレスＥＡＤ［０］＝０の場合は、下位バイトリード許可信号ＬＷＲＧ［８：０］＝リード許可信号ＲＥＧＲ［８：０］、及び上位バイトリード許可信号ＵＰＲＧ［８：０］＝０ｂ０００００００００、とする。
【０３１９】
外部アドレスＥＡＤ［０］＝０以外の場合、つまり外部アドレスＥＡＤ［０］＝１の場合は、下位バイトリード許可信号ＬＷＲＧ［８：０］＝０ｂ０００００００００、及び上位バイトリード許可信号ＵＰＲＧ［８：０］＝リード許可信号ＲＥＧＲ［８：０］、とする。
【０３２０】
（２）＜サイクルカウンタＣＹＣ＝１以外の場合＞
【０３２１】
下位バイトリード許可信号ＬＷＲＧ［８：０］＝０ｂ０００００００００、及び上位バイトリード許可信号ＵＰＲＧ［８：０］＝０ｂ０００００００００、とする。
【０３２２】
（３）リード許可信号ＲＥＧＲ［０］〜ＲＥＧＲ［８］は、それぞれ、ウェーブデータ・リード許可信号ＷＡＲＧ、エンべロープデータ・リード許可信号ＥＶＲＧ、ビットマップデータ・リード許可信号ＢＭＲＧ、キャラクタデータ・リード許可信号ＣＤＲＧ、キャラクタヘッダ・リード許可信号ＣＨＲＧ、ピクセルプロッタ・リード許可信号ＰＰＲＧ、ＤＭＡソース・リード許可信号ＤＳＲＧ、データアクセス・リード許可信号ＤＡＲＧ、及び命令フェッチ・リード許可信号ＩＦＲＧとされる。
【０３２３】
（４）下位バイトリード許可信号ＬＷＲＧ［０］〜ＬＷＲＧ［８］は、それぞれ、ウェーブデータ・下位バイトリード許可信号ＷＡＬＲＧ、エンべロープデータ・下位バイトリード許可信号ＥＶＬＲＧ、ビットマップデータ・下位バイトリード許可信号ＢＭＬＲＧ、キャラクタデータ・下位バイトリード許可信号ＣＤＬＲＧ、キャラクタヘッダ・下位バイトリード許可信号ＣＨＬＲＧ、ピクセルプロッタ・下位バイトリード許可信号ＰＰＬＲＧ、ＤＭＡソース・下位バイトリード許可信号ＤＳＬＲＧ、データアクセス・下位バイトリード許可信号ＤＡＬＲＧ、及び命令フェッチ・下位バイトリード許可信号ＩＦＬＲＧとされる。
【０３２４】
（５）上位バイトリード許可信号ＵＰＲＧ［０］〜ＵＰＲＧ［８］は、それぞれ、ウェーブデータ・上位バイトリード許可信号ＷＡＵＲＧ、エンべロープデータ・上位バイトリード許可信号ＥＶＵＲＧ、ビットマップデータ・上位バイトリード許可信号ＢＭＵＲＧ、キャラクタデータ・上位バイトリード許可信号ＣＤＵＲＧ、キャラクタヘッダ・上位バイトリード許可信号ＣＨＵＲＧ、ピクセルプロッタ・上位バイトリード許可信号ＰＰＵＲＧ、ＤＭＡソース・上位バイトリード許可信号ＤＳＵＲＧ、データアクセス・上位バイトリード許可信号ＤＡＵＲＧ、及び命令フェッチ・上位バイトリード許可信号ＩＦＵＲＧとされる。
【０３２５】
［ライト受諾信号生成論理］
【０３２６】
ライト受諾信号ＷＲＡＣ［５］がピクセルプロッタ・ライト受諾信号ＰＰＷＧＲとされ、ライト受諾ＷＲＡＣ［７］がデータアクセス・ライト受諾信号ＤＡＷＧＲとされる。
【０３２７】
さて、以上のように、本実施の形態によれば、バスマスタが要求したサイズ（図５参照）に応じた数のバスサイクルが与えられるので、バスマスタは、データを連続してリード／ライトできる。このように連続してバスサイクルを取得できるというメリットをバスマスタに与えながらも、バスマスタが要求したサイズに応じた数のバスサイクルを単位として、必ず調停動作が行われるので、バスの使用効率を高めることができ、かつ、バスマスタからのバス使用要求に対する応答のレイテンシを可能な限り小さくできる。
【０３２８】
しかも、リードまたはライトを行うデータのサイズを示すサイズ信号ＩＦＳＺ，ＣＨＳＺ，ＣＤＳＺ，ＰＰＳＺ，ＤＳＳＺはバスマスタが発行するので、データ転送に必要充分なサイズを示すサイズ信号の発行が可能であり、そうすると、ステートマシン１５５はバスサイクルの最適な数を設定できる。従って、この場合、バス使用効率のより一層の向上とバス使用要求に対する応答のレイテンシのより一層の短縮化を図ることができる。
【０３２９】
また、本実施の形態では、ステートマシン１５５は、プライオリティデコーダ１４２が選択したバスマスタに対して、次式（以下、最適バスサイクル数算出式、と呼ぶ。）で示されるＮバスサイクル分のバス使用許可を与える。
【０３３０】
Ｎ＝（（Ｐ＋Ｓ−１）／Ｗ）−（Ｐ／Ｗ）＋１
【０３３１】
ただし、「Ｐ」は、バスマスタがバス使用要求を発行する際に発行するアドレス情報であって、リードまたはライト対象の先頭バイトをバイトアドレスで指し示すアドレス情報である。この「Ｐ」は、図７の統一アドレスＣＡＤＲに相当する。
【０３３２】
「Ｓ」は、バスマスタがリードまたはライトするデータのサイズ情報であって、バイト数で表される。この「Ｓ」は、図７の統一サイズ信号ＣＳＺに相当する。このように、本実施の形態では、バスマスタは、リードまたはライトするデータのサイズをバイト数で要求する。
【０３３３】
「Ｗ」は、アドレス情報Ｐが指し示す領域のデータバス幅のバイト数を示す。この「Ｗ」は、図７の統一バス幅信号ＣＢＷが示すデータバスのバイト数に相当する。すなわち、統一バス幅信号ＣＢＷが「０」であれば、データバスのバス幅は１バイト（＝８ビット）であり、統一バス幅信号ＣＢＷが「１」であれば、データバスのバス幅は２バイト（＝１６ビット）である。
【０３３４】
アドレス情報Ｐは、リード／ライトするデータの始端が第０バイト目から何バイト目にあたるかを示す。従って、（Ｐ＋Ｓ−１）は、リード／ライトするデータの終端が第０バイト目から何バイト目にあたるかを示す。
【０３３５】
アドレス情報Ｐが指し示す領域のデータバス幅のバイト数Ｗは、接続される外部メモリ４５の１ワードを構成するバイト数を示すため、（（Ｐ＋Ｓ−１）／Ｗ）は、リード／ライトするデータの終端が第０ワード目から何ワード目にあたるかを示し、（Ｐ／Ｗ）は、リード／ライトするデータの始端が第０ワード目から何ワード目にあたるかを示す。よって、Ｎは、換言すれば、リード／ライトするデータのワード数を示す。従って、１ワードのデータを１バスサイクルで転送することを想定すれば、Ｎが、データ転送に必要なバスサイクルの数を示すことを容易に理解できる。
【０３３６】
さらに、本実施の形態では、ＣＰＵ１は、第０領域バス幅レジスタ１６０、第１領域バス幅レジスタ１６１、及び第２領域バス幅レジスタ１６２に値を設定することで、データバス幅のバイト数Ｗを、領域（第２バス第０領域、第２バス第１領域、第２バス第２領域：図６参照）ごとに設定することができる。
【０３３７】
そして、アドレスデコーダ１４９は、プライオリティデコーダ１４２が選択したバスマスタが発行したアドレス情報Ｐ、つまり統一アドレスＣＡＤＲが、３つの領域（第２バス第０領域、第２バス第１領域、第２バス第２領域）のいずれに相当するかを判別し、マルチプレクサ１５１は、この判別結果に従って、３つの領域のいずれかのデータバス幅を選択し、統一バス幅ＣＢＷとして、ステートマシン１５５に与える。
【０３３８】
ステートマシン１５５は、統一バス幅ＣＢＷが示すデータバスのバイト数Ｗに基づいて、最適バスサイクル数算出式からＮを算出する。
【０３３９】
従って、アドレス空間が複数の領域に分割され、かつそれぞれの領域が異なるデータバス幅を有している場合においても、ステートマシン１５５は、アクセス対象となる領域のデータバス幅に合わせて、必要充分な数のバスサイクルをバスマスタに与えることができる。
【０３４０】
さらに、本実施の形態では、ステートマシン１５５は、サウンドプロセッサ７以外のバスマスタが、第２バス３３を使用している時に、サウンドプロセッサ７からのバス使用要求（ウェーブデータ・バス要求ＷＡＢＲあるいはエンベロープデータ・バス要求ＥＶＢＲ）があった場合、第２バス３３を使用しているバスマスタの残りのバスサイクル数が所定値以上であることを条件として、そのバスマスタのバス使用を中断させ、サウンドプロセッサ７にバス使用許可を与える。
【０３４１】
従って、バスマスタに連続でバスサイクルを取得することによるメリットを与えながらも、サウンドプロセッサ７のような緊急度の高いバスマスタの迅速処理を図ることができる。詳しくは次の通りである。バスマスタに連続したバスサイクルの使用許可を与えることは、バス全体のデータスループットを高める効果を生むが、バスマスタがバス使用要求を発行してからバス使用許可を得るまでのレイテンシは大きくなる。バス使用要求からバス使用許可を得るまでを所定の時間内に完了しなければならない緊急度の高いバスマスタが存在する場合には、このようなレイテンシの増大はシステムの動作に問題を引き起こす場合がある。そこで、緊急度の高いバスマスタからのバス使用要求があり、かつ現在バスを使用しているバスマスタの残余のバスサイクル数が所定値以上の場合に、緊急度の高いバスマスタのバス使用を割り込ませることにより、スループットの増大を図りながらも、レイテンシ増大のデメリットを回避することができる。
【０３４２】
このように、本実施の形態では、サウンドプロセッサ７のバス使用要求が優先されるので、オーディオ信号ＡＵの出力に不連続が発生することを防止できる。
【０３４３】
さらに、本実施の形態では、第１バスアービタ１３は、第１バス使用要求要因ごとに調停を行い（図２参照）、第２バスアービタ１４は、第２バス使用要求要因ごとに調停を行う（図３参照）。従って、次の効果を奏する。
【０３４４】
バスマスタが複数のバス使用要求要因を有している場合において、バスアービタがバスマスタごとの調停のみを行う場合、各バスマスタ内にバス使用要求の調停を行う回路が必要になり、全体の回路規模が増加する。また、回路構成によっては、バス使用要求要因の調停のための時間的オーバーヘッドが発生する。本実施の形態のように、バスアービタ（第１バスアービタ１３、第２バスアービタ１４）がバス使用要求要因ごとの調停を行う場合、そのようなデメリットが発生しない。
【０３４５】
さらに、本実施の形態では、複数のバスマスタは、第２バス使用要求要因ごとに、異なるサイズを示すサイズ信号ＩＦＳＺ，ＣＤＳＺ，ＰＰＳＺ，ＤＳＳＺを発行可能である（図５参照）。第１バス使用要求要因についても同様である。
【０３４６】
このように、バス使用要求要因ごとに、必要とするデータサイズに合わせて異なるサイズを示すサイズ信号を発行できるため、無駄なデータアクセスが減り、より一層の、バス使用効率の向上とバス使用要求に対する応答のレイテンシの短縮化を図ることができる。
【０３４７】
さらに、本実施の形態では、複数の優先順位情報セット（第１バスアービタ１３に関しては、図２の優先順位情報番号０〜３のいずれかを保持する１６個の優先順位レジスタ、第２バスアービタ１４に関しては、図３の優先順位情報番号０〜３のいずれかを保持する８個の優先順位レジスタ２００〜２０７）を順次的かつ巡回的に選択することにより、バスマスタへのバスサイクルの配分比率を制御できる。
【０３４８】
さらに、本実施の形態では、ＣＰＵ１が、レジスタ１７０〜１７２，１８０〜１８２に値を書き込むことで、１バスサイクル期間を設定できるため、回路自体の変更を伴うことなく、各領域（第２バス第０領域、第２バス第１領域、第２バス第２領域）に対する１バスサイクルの期間長を第２バス３３に接続される外部メモリ４５の速度に応じて最適化できる。また、ＣＰＵ１により1バスサイクル期間長を動的に変更することで、動作モードに応じた消費電力節減の効果も期待できる。
【０３４９】
また、このようにして、ＣＰＵ１が、ランダムアクセスサイクル数及びページアクセスサイクル数を動的に設定できるため、回路自体の変更を伴うことなく、１バスサイクル期間を示すクロックサイクル数を、第２バス３３に接続される外部メモリ４５のランダムアクセス速度およびページモード・アクセスでのページアクセス速度に応じて最適化できる。
【０３５０】
上記の通り、本実施の形態では、第０領域ランダムアクセスサイクル数レジスタ１７０、第１領域ランダムアクセスサイクル数レジスタ１７１、第２領域ランダムアクセスサイクル数レジスタ１７２、第０領域ページアクセスサイクル数レジスタ１８０、第１領域ページアクセスサイクル数レジスタ１８１、及び第２領域ページアクセスサイクル数レジスタ１８２を設けることにより、ＣＰＵ１が、夫々の領域ごとに、ランダムアクセスサイクル数及びページアクセスサイクル数を動的に設定可能としている。しかし、ハードウェア量を小さくする為に、ランダムアクセスサイクル数及びページアクセスサイクル数をハードウェアに固定して、これらのランダムアクセスサイクル数レジスタ１７０〜１７２と、ページアクセスサイクル数レジスタ１８０〜１８２を省略することもできる。さらに、本実施の形態では、ステートマシン１５５は、バス使用許可を得たバスマスタに与えられるバスサイクル数が「１」の場合には、バスサイクルとして、統一ランダムアクセスサイクル数ＣＲＣＹを採用する。
【０３５１】
ここで、バスマスタに与えられるバスサイクル数が「１」の場合とは、最適バスサイクル数算出式で算出したＮが１の場合であり、例えば、統一バス幅信号ＣＢＷが示すバス幅が２バイトの場合において、統一サイズ信号ＣＳＺが示すサイズが２バイトのとき、あるいは、統一バス幅信号ＣＢＷが示すバス幅が１バイトの場合において、統一サイズ信号ＣＳＺが示すサイズが１バイトのとき、等である。
【０３５２】
一方、ステートマシン１５５は、バス使用許可を得たバスマスタに与えられるバスサイクル数が「２」以上の場合には、先頭のバスサイクルでは、バスサイクルとして統一ランダムアクセスサイクル数ＣＲＣＹを採用し、先頭以外のバスサイクルでは、外部アドレスＥＡＤが直前のバスサイクルの外部アドレスＥＡＤと同じページを指し示していれば、統一ページアクセスサイクル数ＣＰＣＹを採用し、外部アドレスＥＡＤが直前のバスサイクルの外部アドレスＥＡＤと異なるページを指し示していれば、統一ランダムアクセスサイクル数ＣＲＣＹを採用する。
【０３５３】
ここで、バスマスタに与えられるバスサイクル数が「２」以上の場合とは、最適バスサイクル数算出式で算出したＮが２以上の場合であり、例えば、統一バス幅信号ＣＢＷが示すバス幅が２バイトの場合において、統一サイズ信号ＣＳＺが示すサイズが４バイトのとき、あるいは、統一バス幅信号ＣＢＷが示すバス幅が１バイトの場合において、統一サイズ信号ＣＳＺが示すサイズが２バイトのとき、等である。
【０３５４】
以上により、ページモード・アクセスを備える外部メモリ４５が第２バス３３に接続されている場合に、バスサイクル数を最適化できる。
【０３５５】
さらに、本実施の形態では、ＣＰＵ１が、レジスタ１９０〜１９２に値を設定することで、ページサイズを動的に設定できる。このため、回路自体の変更を伴うことなく、接続される外部メモリ４５のページサイズに合致させることができる。
【０３５６】
上記の通り、本実施の形態では、第０領域ページサイズレジスタ１９０、第１領域ページサイズレジスタ１９１、及び第２領域ページサイズレジスタ１９２を設けることにより、ＣＰＵ１が、夫々の領域ごとに、ページサイズを動的に設定可能としている。しかし、ハードウェア量を小さくする為に、夫々の領域ごとのページサイズをハードウェアに固定して、これらのページサイズレジスタ１９０〜１９２を省略することもできる。
【０３５７】
さらに、本実施の形態では、第２バス３３のアドレス空間は３つの領域に分割され（図６参照）、データバス幅のバイト数Ｗ、ランダムアクセスサイクル数、ページアクセスサイクル数、及び、ページサイズは、レジスタ１６０〜１６２，１７０〜１７２，１８０〜１８２，１９０〜１９２に値を設定することで、３つの領域ごとに設定可能である。そして、アドレスデコーダ１４９は、プライオリティデコーダ１４２が選択したバスマスタが発行したアドレス情報Ｐ、つまり統一アドレスＣＡＤＲが、３つの領域（第２バス第０領域、第２バス第１領域、第２バス第２領域）のいずれに相当するかを判別し、マルチプレクサ１５１〜１５３及びデコーダ１５４は、この判別結果に従って、３つの領域のいずれかを選択し、統一バス幅信号ＣＢＷ、統一ランダムアクセスサイクル数信号ＣＲＣＹ、統一ページアクセスサイクル数信号ＣＰＣＹ、及び統一ページ境界信号ＣＰＢを、ステートマシン１５５に与える。
【０３５８】
ステートマシン１５５は、統一バス幅ＣＢＷが示すデータバスのバイト数Ｗに基づいて、最適バスサイクル数算出式からＮを算出する。
【０３５９】
従って、アドレス空間が複数の領域に分割され、領域ごとに異なるランダムアクセス速度、ページアクセス速度およびデータバス幅を持つ外部メモリ４５が接続された場合において、第２バスアービタ１４が、調停動作ごとに、アクセス対象の領域の設定に基づいて、ランダムアクセスサイクル数、ページアクセスサイクル数、およびデータバス幅を切り替えることにより、バスサイクル期間長およびバスマスタに与えるバスサイクル数が最適化される。
【０３６０】
前述した実施例の説明は、例示説明の目的のために提示された。それは、説明された厳密な形式に発明を限定することを意図しておらず、上記教示を踏まえた変形が可能である。実施例は、発明の原理を最も明瞭に説明するために選択され、それによって当業者は、その現実的な適用が可能になり、意図された特定使用に向けられた様々な変形と形態で発明を最も効果的に利用することができる。
【図１】
2011014172.tif 000003
【図２】
2011014172.tif 000004
【図３】
2011014172.tif 000005
【図４】
2011014172.tif 000006
【図５】
2011014172.tif 000007
【図７】
2011014172.tif 000008
【図８】
2011014172.tif 000009
【図６】
2011014172.tif 000010