説明

データ処理装置及びバス調停装置

【課題】 データ転送のスループットの向上を図りながらも、各バスマスタがバス使用許可を取得するまでの待ち時間を極力短縮でき、かつ、バス使用効率の向上を図ることができるバス調停装置を提供する。
【解決手段】 バスマスタは、リード/ライトを行うデータのサイズを示すサイズ信号(例えばCDSZ)を与える。ステートマシン155は、サイズ信号に応じた数のバスサイクルを与えるので、バスマスタは、データを連続してリード/ライトできる。バスマスタが要求したサイズに応じた数のバスサイクルを単位として、必ず調停動作が行われる。サイズ信号はバスマスタが発行するので、データ転送に必要充分なサイズ情報の発行が可能であり、そうすると、ステートマシン155は、バスサイクルの最適な数を設定できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バス調停機能を有するデータ処理装置及びその関連技術に関する。
【背景技術】
【0002】
特開平8−30549号公報に開示されている従来のバス制御装置は、共有バスに接続された複数のバスマスタM1〜M7のバス使用を制御する。このバス制御装置のバス調停回路は、最優先バスマスタM7以外のバスマスタM1〜M6からバス使用要求があった時、要求したバスマスタのうち、最も優先順位の高いバスマスタにバス使用許可を与える。また、バスマスタM1〜M6のいずれかがバス使用中に、最優先バスマスタM7からバス使用要求があった時、バス中断判定回路は、バス使用中のバスマスタの残りのバス使用時間が、所定値以内であるか否かを判別する。そして、バス中断判定回路は、それが所定値以内であれば、そのままバス使用を継続させ(全体的なシステム効率低下の防止)、所定値を超えていれば、そのバスマスタのバス使用を一時中断させ、最優先バスマスタM7にバス使用許可を与える(最優先バスマスタM7の迅速処理)。
【0003】
次に、バスマスタM2がバス使用許可を与えられた場合を例に挙げて、バス使用許可を与えられた後の動作を詳細に説明する。バスマスタM2は、メモリのアドレスとともに、データ転送に必要なバスサイクル数情報を出力した後、データ転送を開始する。一方、バス中断判定回路は、バスマスタM2が出力したバスサイクル数情報を検出して、それをサイクルカウンタにセットする。そして、1バスサイクル分のデータ転送が行われるたびに、1カウントずつカウントダウンしていく。
【0004】
そのようにして、バスマスタM2がデータ転送している最中に、最優先バスマスタM7からバス中断判定回路に対して、バス使用要求が出力されると、バス中断判定回路は、最大許容値とサイクルカウンタの値とを比較する。そして、サイクルカウンタの値が最大許容値より小さかったら、何もしないで、バスマスタM2にそのままデータ転送を継続させる。
【0005】
しかし、サイクルカウンタの値が最大許容値と同じかそれより大きかったら、バス中断判定回路は、バスマスタM2にデータ転送を一時中断させるとともに、ホールド信号をバス調停回路に与え、その後、最優先バスマスタM7に対してバス使用許可を与える。
【0006】
バス調停回路は、バス中断判定回路からホールド信号が出力されたら、新たなバス調停は行わず、ホールド信号が出力される直前の状態をそのまま保持し、ホールド信号がオフになったら、再び、バスマスタM2にバス使用許可を与える。
【0007】
以上のようにして、全体的なシステム効率の低下防止と最優先バスマスタM7の迅速処理を実現している。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開平8−30549号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、バスマスタM1〜M6は、バス使用許可を取得したら、最優先バスマスタM7からのバス使用要求がない限り、要求したバスサイクル数の間、共有バスを占有する。また、途中で、最優先バスマスタM7からのバス使用要求あった場合でも、一時中断があるだけで、トータルでは要求したバスサイクル数の間、共有バスを占有する。また、バス使用許可を取得した最優先バスマスタM7も同様に、要求したバスサイクル数の間、共有バスを占有する。ここでの、バスサイクルのクロック数はメモリ空間全体で固定となっている。この為、共有バスに、異なるアクセススピードを持った、複数の異なる種類のメモリ装置が接続されている場合、バスサイクルの一部に無駄なクロックが避けられない。
【0010】
従って、最優先バスマスタM7以外のバスマスタM1〜M6の待ち時間が長くなって、システム全体としての処理能力が低下するという問題点がある。このような問題点は、ページ・モード等の高速アクセスモードを利用して、データ転送のスループットを向上させる場合に、特に深刻となる。つまり、これらは、高速アクセスモードではあるが、ある程度の量のデータ転送を行うことで、大きな効果があるものなので、スループットは上がるが、バスマスタM1〜M6の待ち時間は長くなる。
【0011】
そこで、本発明の目的は、データ転送のスループットの向上を図りながらも、各バスマスタがバス使用許可を取得するまでの待ち時間を極力短縮でき、かつ、バス使用効率の向上を図ることができるデータ処理装置及びその関連技術を提供することである。
【課題を解決するための手段】
【0012】
本発明の第1の形態によると、データ処理装置は、バスと、前記バスに接続される複数のバスマスタと、前記複数のバスマスタからの複数のバス使用要求を調停して、1つのバスマスタに対して、バス使用許可を与えるバス調停手段と、を備え、前記バスマスタは、前記バス調停手段にバス使用要求を発行する際に、リードまたはライトを行うデータのサイズを示すサイズ情報を発行し、前記バス調停手段は、前記複数のバスマスタの優先順位を定めた優先序列情報に従って、バス使用要求を行った単数又は複数の前記バスマスタから、1つの前記バスマスタを選択する優先制御手段と、前記優先制御手段により選択された前記バスマスタが発行した前記サイズ情報に応じた1または複数のバスサイクルの間、前記優先制御手段が選択した前記バスマスタに対して、バス使用許可を与えるバスアクセス制御手段と、を含み、前記優先制御手段は、前記サイズ情報に応じた1または複数のバスサイクルを単位として、前記選択を行う。
【0013】
この構成によれば、バスマスタが要求したサイズに応じた数のバスサイクルが与えられるので、バスマスタは、データを連続してリード/ライトできる。このように連続してバスサイクルを取得できるというメリットをバスマスタに与えながらも、バスマスタが要求したサイズに応じた数のバスサイクルを単位として、必ず調停動作が行われるので、バスの使用効率を高めることができ、かつ、バスマスタからのバス使用要求に対する応答のレイテンシを可能な限り小さくできる。
【0014】
しかも、リードまたはライトを行うデータのサイズ情報はバスマスタが発行するので、データ転送に必要充分なサイズ情報の発行が可能であり、そうすると、バスアクセス制御手段はバスサイクルの最適な数を設定できる。従って、この場合、バスの使用効率の一層の向上とバス使用要求に対する応答のレイテンシの一層の短縮化を図ることができる。
【0015】
上記データ処理装置において、前記サイズ情報は、リードまたはライトするデータのバイト数Sを示すものであり、前記バスマスタは、前記優先制御手段にバス使用要求を発行する際に、リードまたはライト対象の先頭バイトをバイトアドレスで指し示すアドレス情報Pを発行し、前記バスアクセス制御手段は、前記優先制御手段が選択した前記バスマスタに対して、(数3)で示されるNバスサイクル分のバス使用許可を与える。
【0016】
N=((P+S−1)/W)−(P/W)+1...(数3)
ただし、
W:前記アドレス情報Pが指し示す領域のデータバス幅のバイト数
/:商の小数点以下を切り捨てた整数として求める除算を示す記号
【0017】
この構成によれば、バスマスタがリードまたはライトするデータのサイズをバイト数で要求する場合においても、バスアクセス制御手段がデータバス幅に合わせて、必要充分な数のバスサイクルをバスマスタに与えることができ、バス使用効率の向上とバス使用要求に対する応答のレイテンシの短縮化を図ることができる。
【0018】
(数3)について説明する。アドレス情報Pは、リード/ライトするデータの始端が第0バイト目から何バイト目にあたるかを示す。従って、(P+S−1)は、リード/ライトするデータの終端が第0バイト目から何バイト目にあたるかを示す。
【0019】
アドレス情報Pが指し示す領域のデータバス幅のバイト数Wは、接続されるメモリの1ワードを構成するバイト数を示すため、((P+S−1)/W)は、リード/ライトするデータの終端が第0ワード目から何ワード目にあたるかを示し、(P/W)は、リード/ライトするデータの始端が第0ワード目から何ワード目にあたるかを示す。よって、Nは、換言すれば、リード/ライトするデータのワード数を示す。従って、1ワードのデータを1バスサイクルで転送することを想定すれば、Nが、データ転送に必要なバスサイクルの数を示すことを容易に理解できる。
【0020】
上記データ処理装置において、前記バスのアドレス空間は複数の領域に分割され、前記データバス幅のバイト数Wは、前記複数の領域ごとに設定可能であり、前記バスアクセス制御手段は、前記優先制御手段が選択した前記バスマスタが発行したアドレス情報Pが、前記複数の領域のいずれに相当するかを判別し、そのアドレス情報Pに相当する前記領域に対応する前記データバス幅のバイト数Wに基づいて、前記(数3)から前記Nを算出する。
【0021】
この構成によれば、バスのアドレス空間が複数の領域に分割され、かつそれぞれの領域が異なるデータバス幅を有している場合においても、バスアクセス制御手段がアクセス対象となる領域のデータバス幅に合わせて、必要充分な数のバスサイクルをバスマスタに与えることができ、バス使用効率の向上とバス使用要求に対する応答のレイテンシの短縮化を図ることができる。
【0022】
上記データ処理装置において、前記バスアクセス制御手段は、前記複数のバスマスタのうちの所定のバスマスタ(以下、割込みバスマスタ、という)以外のバスマスタが、前記バスを使用している時に、前記割込みバスマスタからのバス使用要求があった場合、前記バスを使用している前記バスマスタの残りのバスサイクル数が所定値以上であることを条件として、そのバスマスタのバス使用を中断させ、前記割込みバスマスタにバス使用許可を与える。
【0023】
この構成によれば、バスマスタに連続でバスサイクルを取得することによるメリットを与えながらも、緊急度の高いバスマスタの迅速処理を図ることができる。詳しくは次の通りである。バスマスタに連続したバスサイクルの使用許可を与えることは、バス全体のデータスループットを高める効果を生むが、バスマスタがバス使用要求を発行してからバス使用許可を得るまでのレイテンシは大きくなる。バス使用要求からバス使用許可を得るまでを所定の時間内に完了しなければならない緊急度の高いバスマスタが存在する場合には、このようなレイテンシの増大はシステムの動作に問題を引き起こす場合がある。そこで、緊急度の高いバスマスタからのバス使用要求があり、かつ現在バスを使用しているバスマスタの残余のバスサイクル数が所定値以上の場合に、緊急度の高いバスマスタのバス使用を割り込ませることにより、スループットの増大を図りながらも、レイテンシ増大のデメリットを回避することができる。
【0024】
上記データ処理装置において、前記複数のバスマスタは、バス使用を要求する要因として、前記複数のバスマスタよりも多いバス使用要求要因を有し、前記優先制御手段に対して、バス使用要求要因ごとにバス使用要求を行い、前記優先序列情報は、前記複数のバスマスタが有する複数の前記バス使用要求要因の優先順位を定めており、前記優先制御手段は、前記優先序列情報に従って、バス使用要求を行った単数又は複数の前記バスマスタが有する前記バス使用要求要因の中から、1つのバス使用要求要因を選択し、前記バスアクセス制御手段は、前記優先制御手段により選択された前記バス使用要求要因に対応する前記バスマスタが発行している前記サイズ情報に応じた1または複数のバスサイクルの間、そのバスマスタに対して、バス使用許可を与える。
【0025】
この構成により、次の効果を奏するバスマスタが複数のバス使用要求要因を有している場合において、バス調停手段がバスマスタごとの調停のみを行う場合、各バスマスタ内にバス使用要求の調停を行う回路が必要になり、全体の回路規模が増加する。また、回路構成によっては、バス使用要求要因の調停のための時間的オーバーヘッドが発生する。バス調停手段がバス使用要求要因ごとの調停を行う場合、そのようなデメリットが発生しない。
【0026】
上記データ処理装置において、前記複数のバスマスタは、前記バス使用要求要因ごとに異なる値の前記サイズ情報を発行可能である。
【0027】
この構成によれば、バス使用要求要因ごとに、必要とするデータサイズに合わせて異なる値のサイズ情報を発行できるため、無駄なデータアクセスが減り、より一層の、バス使用効率の向上とバス使用要求に対する応答のレイテンシの短縮化を図ることができる
【0028】
上記データ処理装置において、前記優先序列情報として複数の優先順位情報セットが用意され、前記優先制御手段は、前記バスマスタにバス使用許可を与える調停動作ごとに、前記複数の優先順位情報セットから前記優先順位情報セットを順次的かつ巡回的に選択し、選択された前記優先順位情報セットに基づいて、バス使用許可を与えるバスマスタを選択する。
【0029】
この構成によれば、複数の優先順位情報セットから優先順位情報セットを順次的かつ巡回的に選択することにより、バスマスタへのバスサイクルの配分比率を制御できる。
【0030】
上記データ処理装置において、前記バスアクセス制御手段は、1バスサイクル期間の長さを示すバスサイクル期間長情報を格納するバスサイクル期間長情報格納手段を含み、前記バスサイクル期間長情報格納手段に格納された前記バスサイクル期間長情報に基づいて、バスサイクル期間の長さを制御する。
【0031】
この構成によれば、バスマスタ(例えば、CPU)がバスサイクル期間長情報格納手段に値を書き込むことで、1バスサイクル期間を設定できるため、1バスサイクルの期間長をバスに接続されるメモリの速度に応じて最適化できる。
【0032】
上記データ処理装置において、前記バスサイクル期間長情報は、ハードウェアでの固定した設定又は前記バスマスタによる動的な設定、が可能である。
【0033】
この構成によれば、1バスサイクル期間をCPU等のバスマスタから設定可能であるため、回路自体の変更を伴うことなく、1バスサイクルの期間長をバスに接続されるメモリの速度に応じて最適化できる。また、バスサイクル期間長を動的に変更することにより、動作モードに応じた消費電力節減の効果も期待できる。
【0034】
上記データ処理装置において、前記バスのアドレス空間は複数のデータブロックに分割され、前記バスサイクル期間長情報は、第1のバスサイクル期間長情報と第2のバスサイクル期間長情報とを含み、前記バスアクセス制御手段は、バス使用許可を得た前記バスマスタが使用するバスサイクル数が「1」の場合には、前記第1のバスサイクル期間長情報を選択し、バス使用許可を得た前記バスマスタが使用するバスサイクル数が「2」以上の場合には、先頭のバスサイクルでは、前記第1のバスサイクル期間長情報を選択し、先頭以外のバスサイクルでは、前記アドレス情報が直前のバスサイクルの前記アドレス情報と同じ前記データブロックを指し示していれば、前記第2のバスサイクル期間長情報を選択し、前記アドレス情報が直前のバスサイクルの前記アドレス情報と異なる前記データブロックを指し示していれば、前記第1のバスサイクル期間長情報を選択する。
【0035】
この構成によれば、ページモード・アクセス等の高速アクセスモードを備えるメモリがバスに接続されている場合に、1バスサイクル期間長を最適化でき、バス使用効率の更なる向上とバス使用要求に対する応答のレイテンシの更なる短縮化を図ることができる。
【0036】
上記データ処理装置において、前記データブロックのサイズは、ハードウェアでの固定した設定又は前記バスマスタによる動的な設定、が可能である。
【0037】
この構成によれば、データブロックのサイズをCPU等のバスマスタから設定可能であるため、回路自体の変更を伴うことなく、接続されるメモリのページサイズ等に応じてデータブロックのサイズを最適化できる。
【0038】
上記データ処理装置において、前記第1のバスサイクル期間長情報および前記第2のバスサイクル期間長情報は、ハードウェアでの固定した設定又は前記バスマスタによる動的な設定、が可能である。
【0039】
この構成によれば、第1のバスサイクル期間長およびを第2のバスサイクル期間長をCPU等のバスマスタから設定可能であるため、回路自体の変更を伴うことなく、各バスサイクルの期間長をバスに接続されるメモリのランダムアクセス速度およびページモード・アクセスでのページアクセス速度に応じて最適化できる。
【0040】
上記データ処理装置において、前記バスアクセス制御手段は、1バスサイクル期間の長さを示すバスサイクル期間長情報を格納するバスサイクル期間長情報格納手段を含み、前記バスサイクル期間長情報格納手段に格納された前記バスサイクル期間長情報に基づいて、バスサイクル期間の長さを制御し、前記バスのアドレス空間は複数のデータブロックに分割され、前記バスサイクル期間長情報は、第1のバスサイクル期間長情報と第2のバスサイクル期間長情報とを含み、前記バスアクセス制御手段は、バス使用許可を得た前記バスマスタが使用するバスサイクル数が「1」の場合には、前記第1のバスサイクル期間長情報を選択し、バス使用許可を得た前記バスマスタが使用するバスサイクル数が「2」以上の場合には、先頭のバスサイクルでは、前記第1のバスサイクル期間長情報を選択し、先頭以外のバスサイクルでは、前記アドレス情報が直前のバスサイクルの前記アドレス情報と同じ前記データブロックを指し示していれば、前記第2のバスサイクル期間長情報を選択し、前記アドレス情報が直前のバスサイクルの前記アドレス情報と異なる前記データブロックを指し示していれば、前記第1のバスサイクル期間長情報を選択し、前記バスのアドレス空間は複数の領域に分割され、前記データバス幅のバイト数W、前記第1のバスサイクル期間長情報、前記第2のバスサイクル期間長情報、及び、前記データブロックのサイズは、前記複数の領域ごとに設定可能であり、前記バスアクセス制御手段は、前記優先制御手段が選択した前記バスマスタが発行したアドレス情報Pが前記領域のいずれに相当するかを判別し、そのアドレス情報に相当する前記領域に対応する前記データバス幅のバイト数Wに基づいて、前記(数3)から前記Nを算出する。
【0041】
この構成によれば、アドレス空間が複数の領域に分割され、領域ごとに異なるランダムアクセス速度、ページアクセス速度およびデータバス幅を持つメモリが接続された場合において、バス調停手段が、調停動作ごとに、アクセス対象の領域の設定に基づいて、第1のバスサイクル期間長、第2のバスサイクル期間長、およびデータバス幅を切り替えることにより、各バスサイクルの期間長およびバスマスタに与えるバスサイクル数が最適化される。
【0042】
本発明の第2の形態によると、バス調停装置は、複数のバスマスタからの複数のバス使用要求を調停して、1つのバスマスタに対して、バス使用許可を与えるバス調停装置であって、前記複数のバスマスタの優先順位を定めた優先序列情報に従って、バス使用要求を行った単数又は複数の前記バスマスタから、1つの前記バスマスタを選択する優先制御手段と、前記優先制御手段により選択された前記バスマスタが発行したサイズ情報に応じた1または複数のバスサイクルの間、前記優先制御手段が選択した前記バスマスタに対して、バス使用許可を与えるバスアクセス制御手段と、を備え、前記優先制御手段は、前記サイズ情報に応じた1または複数のバスサイクルを単位として、前記選択を行い、前記サイズ情報は、前記バスマスタがリードまたはライトを行うデータのサイズを示す情報である。
【0043】
この構成により、上記本発明の第1の形態によるデータ処理装置と同様の効果を奏する。
【0044】
本発明の第3の形態によると、データ処理装置は、アドレス空間へのアクセスを提供するアドレスバスと、前記アドレス空間のアドレスを指定してデータの転送を行うデータバスと、前記アドレスバス及び前記データバスに接続される複数のバスマスタと、前記複数のバスマスタからの複数のバス使用要求を調停して、1つのバスマスタに対して、バス使用許可を与えるバス調停手段と、前記複数のバスマスタおよび前記バス調停手段へクロック信号を供給するクロック信号発生回路と、を備え、前記バス調停手段は、前記アドレス空間の複数の領域に対して、異なるクロック数を設定し、前記アドレス空間のアドレスを指定してデータの転送を行う一回のバスサイクルのクロック数は、指定されたアドレスを含む領域に対して設定されたクロック数であり、前記バスマスタは、バス使用要求を行う際に、転送すべきデータのアドレスとサイズを示す信号を前記バス調停手段に出力し、前記バス調停手段は、前記バスマスタの1つに、そのバスマスタが出力したアドレスとサイズに基づいて算出され、データ転送に必要なクロック数に応じたバス使用許可を与える。
【0045】
この構成により、上記本発明の第1の形態によるデータ処理装置と同様の効果を奏する。
【0046】
本発明の第4の形態によると、データ処理装置は、アドレス空間へのアクセスを提供するアドレスバスと、前記アドレス空間のアドレスを指定してデータの転送を行うデータバスと、前記アドレスバス及び前記データバスに接続される異なるアクセス速度を持つ複数のメモリ装置と、前記アドレスバス及び前記データバスに接続される複数のバスマスタと、前記複数のバスマスタからの複数のバス使用要求を調停して、1つのバスマスタに対して、バス使用許可を与えるバス調停手段と、前記複数のバスマスタおよび前記バス調停手段へクロック信号を供給するクロック信号発生回路と、を備え、前記バスマスタの1つは、前記メモリ装置の1つに対してアクセスを行う際に、転送すべきデータのサイズを示す信号と共にバス使用要求を前記バス調停手段に出力し、前記バスマスタの1つが、前記メモリ装置の1つに対してアクセスを行う為にバス使用許可を得る際に、前記バス調停手段は、前記バスマスタの1つに、アクセスすべきメモリ装置のアクセス速度と、そのバスマスタが出力したアドレスとサイズに基づいて算出され、データ転送に必要なクロック数に応じたバス使用許可を与える。
【0047】
この構成により、上記本発明の第1の形態によるデータ処理装置と同様の効果を奏する。
【図面の簡単な説明】
【0048】
付随する図面を使用した好ましい実施例の下記説明を参照することによって、本発明の前述の及び他の特徴と目的並びにそれらの達成方法は、より明らかになり、そして、その発明そのものも、最も良く理解できるであろう。
【0049】
【図1】図1は、本発明の実施の形態によるデータ処理装置としてのプロセッサの全体構成を示すブロック図である。
【図2】図2は、図1に示した本発明の実施の形態による第1バスアービタが有する複数の優先順位情報セットを含んだ優先順位テーブルの例示図である。
【図3】図3は、図1に示した本発明の実施の形態による第2バスアービタが有する複数の優先順位情報セットを含んだ優先順位テーブルの例示図である。
【図4】図4は、図1に示した本発明の実施の形態による第2バスアービタに対する入出力信号の説明図である。
【図5】図5は、図1に示した本発明の実施の形態における第2バス使用要求要因ごとの要求サイズの例示図である。
【図6】図6は、図1に示した本発明の実施の形態によるプロセッサの論理アドレス空間の説明図である。
【図7】図7は、図4に示した本発明の実施の形態による第2バスアービタの内部構成を示すブロック図である。
【図8】図8は、図7に示した本発明の実施の形態によるステートマシンにおける状態遷移の説明図である。
【発明を実施するための形態】
【0050】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。また、本明細書及び図面において、信号のどのビットかを示す必要があるときは、信号名の後に、[a:b]あるいは[a]を付する。[a:b]は、その信号の第a番目のビットから第b番目のビットを意味し、[a]は、その信号の第a番目のビットを意味する。16進数の表現に関しては、10進数と区別するために数字の末尾に「H」を付けて表記する。また、「0b」は2進数を、「0x」は16進数を意味する。1ビットの信号については、特に断らない限り、「1」をアサート(真)、「0」をネゲート(偽)、とする。
【0051】
図1は、本発明の実施の形態によるデータ処理装置としてのプロセッサ100の全体構成を示すブロック図である。図1に示すように、このプロセッサ100は、中央演算処理装置(CPU)1、グラフィックプロセッサ3、ピクセルプロッタ5、サウンドプロセッサ7、DMA(direct memory access)コントローラ9、第1バスアービタ13、第2バスアービタ14、バックアップコントロール回路15、メインメモリ17、タイマ回路19、A/Dコンバータ(ADC)20、入出力制御回路21、外部メモリインタフェース回路23、クロックドライバ29、PLL(phase−locked loop)回路27、低電圧検出回路25、第1バス31、及び第2バス33を含む。ここで、本実施の形態では、メインメモリ17及び外部メモリ45を区別して説明する必要がないときは、「メモリMEM」と表記する。
【0052】
CPU1は、メモリMEMに格納されたプログラムに従い、各種演算やシステム全体の制御を行う。CPU1は、第1バス31及び第2バス33のバスマスタであり、それぞれのバスに接続された資源にアクセスが可能である。
【0053】
グラフィックプロセッサ3は、第1バス31及び第2バス33のバスマスタであり、メモリMEMに格納されたデータをグラフィックデータに変換し、さらにこれを基にテレビジョン受像機(図示せず)に合わせたビデオ信号VDを生成して出力する。ここで、グラフィックデータは、バックグラウンドスクリーンとスプライトとビットマップスクリーンとから合成される。バックグラウンドスクリーンは、二次元配列からなり、テレビジョン受像機のスクリーンを全て覆う大きさを持つ。そして、各配列要素は、矩形の画素集合からなる。奥行きのある背景を形成できるように、バックグラウンドスクリーンとして、第1のバックグラウンドスクリーンと第2のバックグラウンドスクリーンとが用意される。スプライトは、テレビジョン受像機のスクリーンのいずれの位置にでも配置可能な1つの矩形の画素集合からなる。バックグラウンドスクリーンやスプライトを構成する矩形の画素集合を、キャラクタと呼ぶ。ビットマップスクリーンは自由に大きさと位置を設定可能な二次元ピクセル配列からなる。
【0054】
また、グラフィックプロセッサ3は、第1バス31を通じて、CPU1により制御され、また、CPU1に対して、割込み要求信号INRQを発生する機能を有する。
【0055】
ピクセルプロッタ5は、第1バス31を通じて、CPU1により制御され、CPU1から与えられたピクセルデータの描画を実行する。この場合、ピクセル単位での描画が可能である。
【0056】
ピクセルデータは、1ピクセルの表示色をMビット(Mは1以上の整数)で表したデータである(カラーモード:Mビット/ピクセル)。本実施の形態では、M=1〜8の例を挙げる。なお、本実施の形態では、カラーパレットを通じて表示色が指定される間接指定方式を採用している。
【0057】
また、ピクセルプロッタ5は、キャッシュシステムにより、高速な描画と効率的なバス(第1バス31及び第2バス33)の使用を実現している。さらに、ピクセルプロッタ5は、第1バス31及び第2バス33のバスマスタであり、キャッシュ(図示せず)からメモリMEMへのライト及びメモリMEMからキャッシュへのライトを自律的に行うことができる。
【0058】
サウンドプロセッサ7は、第1バス31及び第2バス33のバスマスタであり、メモリMEMに格納されたデータをサウンドデータに変換し、さらにこれを基にオーディオ信号AUを生成して出力する。
【0059】
サウンドデータは、基本の音色となるPCM(パルスコードモジュレーション)データに対し、ピッチ変換及び振幅変調を行い合成される。振幅変調では、CPU1によって指示されるボリューム制御の他に、楽器の波形を再現するためのエンベロープ制御の機能が用意される。
【0060】
また、サウンドプロセッサ7は、第1バス31を通じて、CPU1により制御され、また、CPU1に対して、割込み要求信号INRQを発生する機能を有する。
【0061】
DMAコントローラ9は、外部バス43に接続された外部メモリ45から、メインメモリ17へのデータ転送を司る。外部メモリ45として、例えば、SRAM(static random access memory)、DRAM(dynamic random access memory)、若しくはROM(read only memory)等、任意のメモリを用いることができるし、その数も問わない。ただし、本実施の形態では、外部メモリ45は、マスクROMやフラッシュメモリといった異なるアクセス速度を持つ複数のメモリ装置からなっている。また、DMAコントローラ9は、データ転送の完了を通知するために、CPU1に対する割込み要求信号INRQを発生する機能を有する。さらに、DMAコントローラ9は、第1バス31及び第2バス33のバスマスタであり、また、第1バス31を通じてCPU1により制御される。
【0062】
メインメモリ17は、マスクROM、SRAM、及び、DRAMのうち、必要なものを備える。本実施の形態では、メインメモリ17をSRAMで構成する例を挙げる。
【0063】
バックアップコントロール回路15は、後述の低電圧検出回路25が低電圧を検知した場合に、メインメモリ17を非活性化する。そして、メインメモリ17には、バッテリ41から電源電圧が供給される。従って、電源電圧Vcc0及びVcc1の供給が停止された場合でも、SRAMたるメインメモリ17のデータが保持される。
【0064】
第1バスアービタ13は、第1バス31の各バスマスタからの第1バス使用要求信号を受け付け、調停を行って、1つのバスマスタに対して第1バス使用許可信号を発行する。具体的には、複数のバスマスタの第1バス31に対する優先順位を定めた優先順位情報セットが複数用意され、第1バスアービタ13は、複数の優先順位情報セットを順次的かつ巡回的に選択して、選択した優先順位情報セットに従って調停を行う。
【0065】
各バスマスタは、第1バス使用許可信号を受領することによって第1バス31の使用が許可される。ここで、第1バス使用要求信号及び第1バス使用許可信号は、図1では、第1バス調停信号FABとして示されている。
【0066】
第1バスアービタ13による調停を詳しく説明する。
【0067】
図2は、図1の第1バスアービタ13が有する優先順位テーブルの例示図である。第1バス31に対するアクセスの優先順位情報セットとして、4つの優先順位情報セットが用意され、それぞれが4セットの内のいずれかを指し示す2ビットの優先順位情報番号0〜3へとエンコードされている。図2では、優先順位テーブルが、優先順位情報番号0〜3を対応する優先順位情報セットへと変換する例を挙げている。
【0068】
ここで、バスマスタ(CPU1、グラフィックプロセッサ3、ピクセルプロッタ5、サウンドプロセッサ7、及びDMAコントローラ9)は、第1バス31の使用を要求する要因(以下、「第1バス使用要求要因」と呼ぶ。)ごとにバス使用要求を行う。従って、優先順位情報番号0〜3が示す優先順位情報セットの各々は、全ての第1バス使用要求要因の優先順位を示している。本実施の形態では、12種類の第1バス使用要求要因が存在するので、優先順位情報セットの各々は、第1優先順位〜第12優先順位により構成される。第1バス31へのアクセスの優先順位は、第1優先順位が一番高く、番号が大きくなるにしたがって、優先順位が低くなる。
【0069】
第1バスアービタ13は、優先順位情報番号0〜3のいずれかを保持する16の優先順位レジスタを順次的かつ巡回的に選択して、選択した優先順位レジスタに保持されている優先順位情報番号に対応する優先順位情報セットに従って、第1バス31へのアクセス調停を行う。この場合、第1バスアービタ13は、第1バス使用要求要因ごとに、アクセス調停を行う。
【0070】
ここで、図中、バスマスタの略号「CPU」、「GP」、「SP」、「DMA」、及び「PLT」は、それぞれ、CPU1、グラフィックプロセッサ3、サウンドプロセッサ7、DMAコントローラ9、及びピクセルプロッタ5を示す。
【0071】
また、図中、第1バス使用要求要因の略号「IST」、「DAT」、「TX1」、「TX2」、「SPR」、「HDR」、「CHR」、「BMP」、「WAV」、「ENV」、「DMAD」、及び「PLT」は、それぞれ、「命令フェッチ」、「データアクセス」、「第1バックグラウンドアレイデータ」、「第2バックグラウンドアレイデータ」、「スプライトDMA」、「キャラクタヘッダ」、「キャラクタデータ」、「ビットマップデータ」、「ウェーブデータ」、「エンベロープデータ」、「DMAデスティネーション」、及び「ピクセルプロッタ」を示す。各第1バス使用要求要因の意味は次の通りである。
【0072】
「命令フェッチ」は、CPU1がメインメモリ17から命令をフェッチすることが第1バス使用要求要因となっていることを意味する。
【0073】
「データアクセス」は、CPU1が第1バス31に接続された資源にアクセス(データのリード/ライト)することが第1バス使用要求要因となっていることを意味する。
【0074】
「第1バックグラウンドアレイデータ」は、グラフィックプロセッサ3が第1のバックグラウンドスクリーンのアレイデータをメインメモリ17から取得することが第1バス使用要求要因となっていることを意味する。この場合のアレイデータは、第1のバックグラウンドスクリーンの全キャラクタの、パターンデータのアドレス情報からなり、カラーパレット情報及びデプス情報も含まれる場合がある。
【0075】
「第2バックグラウンドアレイデータ」は、グラフィックプロセッサ3が第2のバックグラウンドスクリーンのアレイデータをメインメモリ17から取得することが第1バス使用要求要因となっていることを意味する。この場合のアレイデータは、第2のバックグラウンドスクリーンの全キャラクタの、パターンデータのアドレス情報からなり、カラーパレット情報及びデプス情報も含まれる場合がある。
【0076】
「スプライトDMA」は、グラフィックプロセッサ3がスプライトメモリ(図示しないが、グラフィックプロセッサ3の内部に配置)へ転送するデータをメインメモリ17からリードすることが第1バス使用要求要因となっていることを意味する。
【0077】
「キャラクタヘッダ」は、グラフィックプロセッサ3がメインメモリ17からキャラクタヘッダを取得することが第1バス使用要求要因となっていることを意味する。キャラクタヘッダは、カラーパレット情報、キャラクタの1ピクセルのビット数(Mビット/ピクセル)の情報、及びフリップ情報などにより構成される。
【0078】
「キャラクタデータ」は、グラフィックプロセッサ3がメインメモリ17からキャラクタのパターンデータを取得することが第1バス使用要求要因となっていることを意味する。
【0079】
「ビットマップデータ」は、グラフィックプロセッサ3がビットマップデータをメインメモリ17からリードすることが第1バス使用要求要因となっていることを意味する。
【0080】
「ウェーブデータ」は、サウンドプロセッサ7がメインメモリ17からウェーブデータを取得することが第1バス使用要求要因となっていることを意味する。
【0081】
「エンベロープデータ」は、サウンドプロセッサ7がメインメモリ17からエンベロープデータを取得したり、メインメモリ17に仮想的に構成されるエンベロープ用FIFO(first−infirst−out)のリードポインタをメインメモリ17に書き込むことが第1バス使用要求要因となっていることを意味する。
【0082】
「DMAデスティネーション」は、DMAコントローラ9がデータをメインメモリ17へライトすることが第1バス使用要求要因となっていることを意味する。
【0083】
「ピクセルプロッタ」は、ピクセルプロッタ5がメインメモリ17に対してリード/ライトを行うことが第1バス使用要求要因となっていることを意味する。
【0084】
ここで、図2の優先順位テーブルの作成手法を説明する。5つのバスマスタの順列を求め、この中から、データの転送量やバス使用の頻度などを勘案して、4つの順列(バスマスタ順列、と呼ぶ。)を選択する。一方、バスマスタごとにバス使用要求要因の順列(バス使用要求要因順列、と呼ぶ。)を求め、データの転送量やバス使用の頻度などを勘案して、バスマスタごとにバス使用要求要因順列を1つ選択する。
【0085】
そして、各バスマスタ順列に対して、対応するバス使用要求要因順列を組み合わせて、優先順位テーブルを作成する。具体例を挙げて説明する。
【0086】
選択された4つのバスマスタ順列の1つが、図2の略号を使って、{SP,GP,PLT,DMA,CPU}、であるとする。また、図2の略号を使って、サウンドプロセッサ7に対して選択されたバス使用要求要因順列が、{WAV,ENV}であり、グラフィックプロセッサ3に対して選択されたバス使用要求要因順列が、{BMP,CHR,HDR,SPR,TX1,TX2}であり、ピクセルプロッタ5に対するバス使用要求要因順列が、{PLT}であり(なぜなら、ピクセルプロッタ5の第1バス31に対するバス使用要求要因は1つである。)、DMAコントローラ9に対するバス使用要求要因順列が、{DMAD}であり(ピクセルプロッタ5と同様の理由)、CPU1に対して選択されたバス使用要求要因順列が、{DAT,IST}であるとする。
【0087】
そうすると、バスマスタ順列のSPに対してバス使用要求要因順列{WAV,ENV}が、バスマスタ順列のGPに対してバス使用要求要因順列{BMP,CHR,HDR,SPR,TX1,TX2}が、バスマスタ順列のPLTに対してバス使用要求要因順列{PLT}が、バスマスタ順列のDMAに対してバス使用要求要因順列{DMAD}が、バスマスタ順列のCPU対してバス使用要求要因順列{DAT,IST}が組み合わされる。その結果、図2に示す第1バス31に対する優先順位情報セット0が作成される。
【0088】
図1に戻って、第1バス31は、例えば、8ビットの第1データバス311、15ビットの第1アドレスバス312、及び第1コントロールバス313を含む(後述の図4参照)。
【0089】
本発明の特徴の1つである第2バスアービタ14は、第2バス33の各バスマスタからの第2バス使用要求信号を受け付け、調停を行って、1つのバスマスタに第2バス使用許可信号を発行する。具体的には、複数のバスマスタの第2バス33に対する優先順位を定めた優先順位情報セットが複数用意され、第2バスアービタ14は、その複数の優先順位情報セットを順次的かつ巡回的に選択して、選択した優先順位情報セットに従って調停を行う。
【0090】
各バスマスタは、第2バス使用許可信号を受領することによって第2バス33の使用が許可される。ここで、第2バス使用要求信号及び第2バス使用許可信号は、図1では、第2バス調停信号SABとして示されている。
【0091】
第2バスアービタ14について詳しく説明する。
【0092】
図3は、図1の第2バスアービタ14が有する複数の優先順位情報セットを含む優先順位テーブルの例示図である。第2バス33に対するアクセスの優先順位情報セットとして、4つの優先順位情報セットが用意され、それぞれが4セットの内のいずれかを指し示す2ビットの優先順位情報番号0〜3へとエンコードされている。図3では、優先順位情報番号0〜3を対応する優先順位情報セットへと変換する優先順位テーブルの例を挙げている。
【0093】
ここで、バスマスタ(CPU1、グラフィックプロセッサ3、ピクセルプロッタ5、サウンドプロセッサ7、及びDMAコントローラ9)は、第2バス33の使用を要求する要因(以下、「第2バス使用要求要因」と呼ぶ。)ごとにバス使用要求を行う。従って、優先順位情報番号0〜3が示す優先順位情報セットの各々は、全ての第2バス使用要求要因の優先順位を示している。本実施の形態では、9種類の第2バス使用要求要因が存在するので、優先順位情報セットの各々は、第1優先順位1〜第9優先順位により構成される。第2バス33へのアクセスの優先順位は、第1優先順位が一番高く、番号が大きくなるにしたがって、優先順位が低くなる。
【0094】
第2バスアービタ14は、優先順位情報番号0〜3のいずれかを保持する8つの優先順位レジスタ200〜207(後述)を順次的かつ巡回的に選択して、選択した優先順位レジスタに保持されている優先順位情報番号に対応する優先順位情報セットに従って、第2バス33へのアクセス調停を行う。この場合、第2バスアービタ14は、第2バス使用要求要因ごとに、アクセス調停を行う。
【0095】
ここで、図中、バスマスタ及び第2バス使用要求要因の略号は、図2と同じである。ただし、第2バス使用要求要因の略号「DMAS」は、「DMAソース」を示し、また、各第2バス使用要求要因の意味は次の通りである。
【0096】
「命令フェッチ」は、CPU1が外部メモリ45から命令をフェッチすることが、第2バス使用要求要因となっていることを意味する。
【0097】
「データアクセス」は、CPU1が外部メモリ45にアクセス(データのリード/ライト)することが第2バス使用要求要因となっていることを意味する。
【0098】
「キャラクタヘッダ」は、グラフィックプロセッサ3が外部メモリ45からキャラクタヘッダを取得することが第2バス使用要求要因となっていることを意味する。
【0099】
「キャラクタデータ」は、グラフィックプロセッサ3が外部メモリ45からキャラクタのパターンデータを取得することが第2バス使用要求要因となっていることを意味する。
【0100】
「ビットマップデータ」は、グラフィックプロセッサ3が外部メモリ45からビットマップデータを取得することが第2バス使用要求要因となっていることを意味する。
【0101】
「ピクセルプロッタ」は、ピクセルプロッタ5が外部メモリ45に対してリード/ライトを行うことが第2バス使用要求要因となっていることを意味する。
【0102】
「ウェーブデータ」は、サウンドプロセッサ7が外部メモリ45からウェーブデータを取得することが第2バス使用要求要因となっていることを意味する。
【0103】
「エンベロープデータ」は、サウンドプロセッサ7が外部メモリ45からエンベロープデータを取得することが第2バス使用要求要因となっていることを意味する。
【0104】
「DMAソース」は、DMAコントローラ9がデータを外部メモリ45からリードすることが第2バス使用要求要因となっていることを意味する。
【0105】
図3の優先順位テーブルの作成手法は、図2の優先順位テーブルの作成手法と同様であり、説明を省略する。
【0106】
図1に戻って、第2バス33は、16ビットの第2データバス、27ビットの第2アドレスバス、及び第2コントロールバスを含む(図示せず)。
【0107】
タイマ回路19は、設定された時間間隔に基づき、CPU1に対する割込み要求信号INRQを発生する機能を有する。時間間隔等の設定は、第1バス31を介してCPU1によって行われる。
【0108】
ADC20は、アナログ入力信号をデジタル信号に変換する。このデジタル信号は、第1バス31を介してCPU1によってリードされる。また、ADC20は、CPU1に対して、割込み要求信号INRQを発生する機能を有する。
【0109】
なお、外部からのアナログ信号は、例えば、6つのアナログポートAIN0〜5(図示せず)を介して、ADC20へ入力される。
【0110】
入出力制御回路21は、外部入出力装置や外部の半導体素子との通信等を、入出力信号を介して行う。入出力信号は、第1バス31を介して、CPU1からリード/ライトされる。また、入出力制御回路21は、CPU1に対して、割込み要求信号INRQを発生する機能を有する。なお、入出力信号は、例えば、プログラマブルな入出力ポートIO0〜IO23(図示せず)を介して入出力される。
【0111】
低電圧検出回路25は、電源電圧Vcc0及びVcc1を監視し、いずれかの電源電圧がそれぞれについて定められた電圧以下になったときに、PLL回路27のリセット信号、その他のシステム全体のリセット信号RSETを発行する。
【0112】
電源電圧Vcc0は、例えば、+2.5Vであり、主にプロセッサ内のデジタル回路に供給される。また、電源電圧Vcc1は、例えば、+3.3Vであり、主にプロセッサ内のアナログ回路及びI/O部に供給される。
【0113】
PLL回路27は、水晶振動子37より得られる正弦波信号を逓倍した高周波クロック信号を生成する。
【0114】
クロックドライバ29は、PLL回路27より受け取った高周波クロック信号を、十分な信号強度へ増幅して、内部クロックICLKとして、各ブロックへ供給する。
【0115】
外部メモリインタフェース回路23は、第2バス33を外部バス43に接続するための機能を有する。
【0116】
図1のプロセッサにおけるデータの転送経路を説明する。例えば、バスマスタたるCPU1が、バススレイブとして第1バス31に接続されている他の機能ブロック(グラフィックスプロセッサ3、ピクセルプロッタ5、サウンドプロセッサ7、DMAコントローラ9、第1バスアービタ13、第2バスアービタ14、等)を制御する場合は、これら機能ブロックの制御レジスタへのライトデータは、第1バスアービタ13へ与えられ、調停後に、第1バス31から、各機能ブロックに与えられ、一方、これら機能ブロックの制御レジスタからのリードデータは、調停後に、第1バス31及び第1バスアービタ13を介して、CPU1に与えられる。但し、グラフィックスプロセッサ3、ピクセルプロッタ5、サウンドプロセッサ7、DMAコントローラ9は、第1バス31のバスマスタとして、第1バスアービタ13へバスアクセス要求を行う機能を備える。
【0117】
バスマスタが、メインメモリ17に対してアクセスする場合は、ライトデータは、第1バスアービタ13に与えられ、調停後に、第1バス31から、メインメモリ17に与えられ、一方、リードデータは、調停後に、第1バス31及び第1バスアービタ13を介して、バスマスタに与えられる。また、バスマスタが、外部メモリ45に対してアクセスする場合は、ライトデータは、第2バスアービタ14に与えられ、調停後に、第2バス33から、外部メモリインタフェース回路23及び外部バス43を介して、外部メモリ45に与えられ、一方、リードデータは、調停後に、外部バス43、外部メモリインタフェース回路23、第2バス33及び第2バスアービタ14を介して、バスマスタに与えられる。
【0118】
以下、図1の第2バスアービタ14についてより詳細に説明する。
【0119】
図4は、図1の第2バスアービタ14に対する入出力信号の説明図である。図4に示すように、第2バスアービタ14の制御は、CPU1が、第1アドレスバス311、第1データバス312、及び第1コントロールバス313を介して行う。
【0120】
CPU1から第2バスアービタ14へのデータアクセス・アドレスDAAD、CPU1から第2バスアービタ14へのデータアクセス・ライトデータDAWD、CPU1から第2バスアービタ14へのデータアクセス・バス要求信号DABR、CPU1から第2バスアービタ14へのデータアクセス・ライト要求信号DAWRQ、第2バスアービタ14からCPU1へのデータアクセス・ライト受諾信号DAWGR、第2バスアービタ14からCPU1へのデータアクセス・下位バイトリード許可信号DALRG、及び第2バスアービタ14からCPU1へのデータアクセス・上位バイトリード許可信号DAURGは、それぞれ、第2バス使用要求要因が「データアクセス」の場合の、リード又はライトの先頭アドレス、ライト対象のデータ、リード又はライトのバス使用要求を示す信号、バス使用要求がライト要求であることを示す信号、ライトのバス使用要求が受け付けられたことを示す信号、リードのバス使用要求が受け付けられて、外部データ入力EDAIの下位バイト([7:0])がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力EDAIの上位バイト([15:8])がフェッチ可能であることを示す信号、である。
【0121】
グラフィックプロセッサ3から第2バスアービタ14へのキャラクタヘッダ・アドレスCHAD、グラフィックプロセッサ3から第2バスアービタ14へのキャラクタヘッダ・サイズ信号CHSZ、グラフィックプロセッサ3から第2バスアービタ14へのキャラクタヘッダ・バス要求信号CHBR、第2バスアービタ14からグラフィックプロセッサ3へのキャラクタヘッダ・下位バイトリード許可信号CHLRG、及び第2バスアービタ14からグラフィックプロセッサ3へのキャラクタヘッダ・上位バイトリード許可信号CHURGは、それぞれ、第2バス使用要求要因が「キャラクタヘッダ」の場合の、リードの先頭アドレス、要求するデータの転送量を示す信号(何バイトのリードを要求するかを示す信号)、リードのバス使用要求を示す信号、リードのバス使用要求が受け付けられて、外部データ入力EDAIの下位バイト([7:0])がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力EDAIの上位バイト([15:8])がフェッチ可能であることを示す信号、である。
【0122】
グラフィックプロセッサ3から第2バスアービタ14へのキャラクタデータ・アドレスCDAD、グラフィックプロセッサ3から第2バスアービタ14へのキャラクタデータ・サイズ信号CDSZ、グラフィックプロセッサ3から第2バスアービタ14へのキャラクタデータ・バス要求信号CDBR、第2バスアービタ14からグラフィックプロセッサ3へのキャラクタデータ・下位バイトリード許可信号CDLRG、及び第2バスアービタ14からグラフィックプロセッサ3へのキャラクタデータ・上位バイトリード許可信号CDURGは、それぞれ、第2バス使用要求要因が「キャラクタデータ」の場合の、リードの先頭アドレス、要求するデータの転送量を示す信号(何バイトのリードを要求するかを示す信号)、リードのバス使用要求を示す信号、リードのバス使用要求が受け付けられて、外部データ入力EDAIの下位バイト([7:0])がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力EDAIの上位バイト([15:8])がフェッチ可能であることを示す信号、である。
【0123】
グラフィックプロセッサ3から第2バスアービタ14へのビットマップデータ・アドレスBMAD、グラフィックプロセッサ3から第2バスアービタ14へのビットマップデータ・バス要求信号BMBR、第2バスアービタ14からグラフィックプロセッサ3へのビットマップデータ・下位バイトリード許可信号BMLRG、及び第2バスアービタ14からグラフィックプロセッサ3へのビットマップデータ・上位バイトリード許可信号BMURGは、それぞれ、第2バス使用要求要因が「ビットマップデータ」の場合の、リードの先頭アドレス、要求するデータの転送量を示す信号(何バイトのリードを要求するかを示す信号)、リードのバス使用要求を示す信号、リードのバス使用要求が受け付けられて、外部データ入力EDAIの下位バイト([7:0])がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力EDAIの上位バイト([15:8])がフェッチ可能であることを示す信号、である。
【0124】
ピクセルプロッタ5から第2バスアービタ14へのピクセルプロッタ・アドレスPPAD、ピクセルプロッタ5から第2バスアービタ14へのピクセルプロッタ・ライトデータPPWD、ピクセルプロッタ5から第2バスアービタ14へのピクセルプロッタ・サイズ信号PPSZ、ピクセルプロッタ5から第2バスアービタ14へのピクセルプロッタ・バス要求信号PPBR、ピクセルプロッタ5から第2バスアービタ14へのピクセルプロッタ・ライト要求信号PPWRQ、第2バスアービタ14からピクセルプロッタ5へのピクセルプロッタ・ライト受諾信号PPWGR、第2バスアービタ14からピクセルプロッタ5へのピクセルプロッタ・下位バイトリード許可信号PPLRG、及び第2バスアービタ14からピクセルプロッタ5へのピクセルプロッタ・上位バイトリード許可信号PPURGは、それぞれ、第2バス使用要求要因が「ピクセルプロッタ」の場合の、リード又はライトの先頭アドレス、ライト対象のデータ、要求するデータの転送量を示す信号(何バイトのリードを要求するかを示す信号)、リード又はライトのバス使用要求を示す信号、バス使用要求がライト要求であることを示す信号、ライトのバス使用要求が受け付けられたことを示す信号、リードのバス使用要求が受け付けられて、外部データ入力EDAIの下位バイト([7:0])がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力EDAIの上位バイト([15:8])がフェッチ可能であることを示す信号、である。
【0125】
サウンドプロセッサ7から第2バスアービタ14へのウェーブデータ・アドレスWAAD、サウンドプロセッサ7から第2バスアービタ14へのウェーブデータ・バス要求信号WABR、第2バスアービタ14からサウンドプロセッサ7へのウェーブデータ・下位バイトリード許可信号WALRG、及び第2バスアービタ14からサウンドプロセッサ7へのウェーブデータ・上位バイトリード許可信号WAURGは、それぞれ、第2バス使用要求要因が「ウェーブデータ」の場合の、リードの先頭アドレス、リードのバス使用要求を示す信号、リードのバス使用要求が受け付けられて、外部データ入力EDAIの下位バイト([7:0])がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力EDAIの上位バイト([15:8])がフェッチ可能であることを示す信号、である。
【0126】
サウンドプロセッサ7から第2バスアービタ14へのエンベロープデータ・アドレスEVAD、サウンドプロセッサ7から第2バスアービタ14へのエンベロープデータ・バス要求信号EVBR、第2バスアービタ14からサウンドプロセッサ7へのエンベロープデータ・下位バイトリード許可信号EVLRG、及び第2バスアービタ14からサウンドプロセッサ7へのエンベロープデータ・上位バイトリード許可信号EVURGは、それぞれ、第2バス使用要求要因が「エンベロープデータ」の場合の、リードの先頭アドレス、リードのバス使用要求を示す信号、リードのバス使用要求が受け付けられて、外部データ入力EDAIの下位バイト([7:0])がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力EDAIの上位バイト([15:8])がフェッチ可能であることを示す信号、である。
【0127】
DMAコントローラ9から第2バスアービタ14へのDMAソース・アドレスDSAD、DMAコントローラ9から第2バスアービタ14へのDMAソース・サイズ信号DSSZ、DMAコントローラ9から第2バスアービタ14へのDMAソース・バス要求信号DSBR、第2バスアービタ14からDMAコントローラ9へのDMAソース・下位バイトリード許可信号DSLRG、及び第2バスアービタ14からDMAコントローラ9へのDMAソース・上位バイトリード許可信号DSURGは、それぞれ、第2バス使用要求要因が「DMAソース」の場合の、リードの先頭アドレス、要求するデータの転送量を示す信号(何バイトのリードを要求するかを示す信号)、リードのバス使用要求を示す信号、リードのバス使用要求が受け付けられて、外部データ入力EDAIの下位バイト([7:0])がフェッチ可能であることを示す信号、及び、リードのバス使用要求が受け付けられて、外部データ入力EDAIの上位バイト([15:8])がフェッチ可能であることを示す信号、である。
【0128】
ここで、上記アドレス信号IFAD,DAAD,CHAD,CDAD,BMAD,PPAD,WAAD,EVAD及びDSADは、それぞれ、27ビットの信号である。また、上記ライトデータDAWDは及びPPWDは、それぞれ、16ビットの信号である。但し、ライトデータDAWDの有効なデータは、16ビット中の下位8ビットである。
【0129】
図5は、本実施の形態における第2バス使用要求要因ごとの要求サイズの例示図である。図5に示すように、第2バス使用要求要因が「命令フェッチ」の場合は、CPU1は、命令フェッチ・サイズ信号IFSZにより、データ転送のサイズとして、1、2、3、あるいは4バイトのいずれかを要求できる(可変)。
【0130】
従って、CPU1は、フェッチする命令のサイズに合わせたデータ転送のサイズを、命令フェッチ・サイズ信号IFSZにより動的に設定できる。
【0131】
第2バス使用要求要因が「データアクセス」の場合は、データ転送のサイズは、1バイトで固定である。第2バス使用要求要因が「キャラクタヘッダ」の場合は、グラフィックプロセッサ3は、キャラクタヘッダ・サイズ信号CHSZにより、データ転送のサイズとして、0バイトを要求できる(つまり、データ転送を行わない。)。
【0132】
第2バス使用要求要因が「キャラクタデータ」の場合は、グラフィックプロセッサ3は、キャラクタデータ・サイズ信号CDSZにより、データ転送のサイズとして、1、2、3、…、15あるいは16バイトのいずれかを要求できる(可変)。
【0133】
キャラクタは、例えば、8×8ピクセル、8×16ピクセル、16×8ピクセル、16×16ピクセル、等というように、様々なサイズが用意されている。また、1ピクセルあたりのデータ量も1、2、3、…、7あるいは8ビット、というように様々なモードが用意されている。従って、グラフィックプロセッサ3は、キャラクタのサイズおよびピクセル当りのビット数に合わせたデータ転送のサイズを、キャラクタデータ・サイズ信号CDSZにより動的に設定できる。
【0134】
第2バス使用要求要因が「ビットマップデータ」の場合は、データ転送のサイズは、8バイトで固定である。
【0135】
第2バス使用要求要因が「ピクセルプロッタ」の場合は、ピクセルプロッタ5は、ピクセルプロッタ・サイズ信号PPSZにより、データ転送のサイズとして、1あるいは2バイトのいずれかを要求できる(可変)。
【0136】
例えば、ピクセルプロッタ5は、ピクセルプロッタ・サイズ信号PPSZにより、データ転送のサイズを2バイトとする一方、LSB(least significant bit)が「1」のバイトアドレスが示す位置からアクセスを開始するときは、その時のピクセルプロッタ・サイズ信号PPSZが示すサイズを1バイトとする。なぜなら、このようなアクセスのときは、下位バイトのリード/ライトは無駄だからである。
【0137】
第2バス使用要求要因が「ウェーブデータ」の場合は、データ転送のサイズは、1バイトで固定である。
【0138】
第2バス使用要求要因が「エンベロープデータ」の場合は、データ転送のサイズは、1バイトで固定である。第2バス使用要求要因が「DMAソース」の場合は、DMAコントローラ9は、DMAソース・サイズ信号DSSZにより、データ転送のサイズとして、1、2、3あるいは4バイトのいずれかを要求できる(可変)。
【0139】
従って、DMAコントローラ9は、転送対象のDMA転送元データのサイズに合わせたデータ転送のサイズを、DMAソース・サイズ信号DSSZにより動的に設定できる。
【0140】
図4に戻って、第2バスアービタ14は、第2バス33へ、外部アドレスEAD、外部アドレス出力イネーブル信号EADOE、外部データEDAO、外部データ出力イネーブル信号EDAOE、外部リードイネーブル信号ERDE、外部ライトイネーブル信号EWRE、下位バイトイネーブル信号LWBE、上位バイトイネーブル信号UPBE、第1領域セレクト信号ASSEL1、及び第2領域セレクト信号ASSEL2を出力する。
【0141】
外部アドレスEADは、第2バス33の第2アドレスバス(図示せず)へ出力されるアドレス信号(27ビット)である。外部アドレス出力イネーブル信号EADOEは、第2バス33の第2アドレスバスの3ステートバッファ(図示せず)を制御し、出力/Hi−Z(ハイインピーダンス)を切り換える信号である。
【0142】
外部データEDAOは、第2バス33の第2データバス(図示せず)へ出力されるデータ(16ビット)である。外部データ出力イネーブル信号EDAOEは、第2バス33の第2データバスの3ステートバッファ(図示せず)を制御し、出力/Hi−Z(ハイインピーダンス)を切り換える信号である。
【0143】
外部リードイネーブル信号ERDEは、第2バス33の第2コントロールバス(図示せず)へ出力されるリードイネーブル信号である。外部ライトイネーブル信号EWREは、第2バス33の第2コントロールバスへ出力されるライトイネーブル信号である。
【0144】
下位バイトイネーブル信号LWBEは、第2バス33の第2データバスの下位バイトのイネーブル信号である。上位バイトイネーブル信号UPBEは、第2バス33の第2データバスの上位バイトのイネーブル信号である。
【0145】
第1領域セレクト信号ASSEL1は、プロセッサ100の論理アドレス空間の第2バス第1領域を選択する信号である。第2領域セレクト信号ASSEL2は、プロセッサ100の論理アドレス空間の第2バス第2領域を選択する信号である。なお、第2バス第0領域を選択する信号(第0領域セレクト信号ASSEL0)は、外部アドレスEAD[22]で代用する。
【0146】
ここで、プロセッサ100のアドレス空間について説明する。プロセッサ100は、27ビットのアドレス信号、即ち、128メガバイトの論理アドレス空間を有する。第1バス31は、15ビットのアドレスIAD、即ち、32キロバイトの物理アドレス空間を有する。第2バス33は、27ビットのアドレス空間から一部を除いた96メガバイトの物理アドレス空間を有する。これらの点を図面を用いて説明する。
【0147】
図6は、図1のプロセッサ100の論理アドレス空間の説明図である。図6に示すように、27ビットのアドレスは、上位11ビットA26〜A16と下位16ビットA15〜A0に大きく分かれ、上位11ビットのアドレスはバンクアドレスと呼ばれる働きをする。即ち、128メガバイトの論理アドレス空間は、2048個の64キロバイトのバンクと呼ばれる単位空間に分けられており、例を挙げると000hバンクのFFFFh番地と001hバンクの0000h番地は、CPU1およびサウンドプロセッサ7にとっては連続していない。従って、図6では、このことを明確に表すためにバンク毎に並列に表記している。
【0148】
プロセッサ100の論理アドレス空間は大きく4つの領域に分割され、それぞれは、第1バス31の物理アドレス空間に相当する第1バス領域、第2バス33の物理アドレス空間に相当する第2バス第0領域、第2バス第1領域、及び第2バス第2領域である。
【0149】
図7は、図4の第2バスアービタ14の内部構成を示すブロック図である。図7に示すように、第2バスアービタ14は、第1バスインタフェース回路140、マルチプレクサ141、OR回路210、プライオリティデコーダ142、マルチプレクサ143〜146、スロットカウンタ147、OR回路148、アドレスデコーダ149、バイトイネーブル信号生成回路150、マルチプレクサ151〜153、デコーダ154、ステートマシン155、外部バス開放要求レジスタ156、第0領域バス幅レジスタ160、第1領域バス幅レジスタ161、第2領域バス幅レジスタ162、第0領域ランダムアクセスサイクル数レジスタ170、第1領域ランダムアクセスサイクル数レジスタ171、第2領域ランダムアクセスサイクル数レジスタ172、第0領域ページアクセスサイクル数レジスタ180、第1領域ページアクセスサイクル数レジスタ181、第2領域ページアクセスサイクル数レジスタ182、第0領域ページサイズレジスタ190、第1領域ページサイズレジスタ191、第2領域ページサイズレジスタ192、及び第0スロット優先順位レジスタ200〜第7スロット優先順位レジスタ207、を含む。
【0150】
第1バスインタフェース回路140は、第1バス31と、各制御レジスタ156,160〜162,170〜172,180〜182,190〜192,200〜207と、を接続するためのインタフェースである。
【0151】
ここで、制御レジスタ156,160〜162,170〜172,180〜182,190〜192,200〜207を包括して表現するときは、制御レジスタCRと表記する。
【0152】
CPU1は、第1バス31及び第1バスインタフェース回路140を介して、制御レジスタCRに値を書き込み、あるいは、値を読み出すことができる。具体的には、次の通りである。
【0153】
内部アドレスIADは、各機能ブロックの制御レジスタやメモリが配置される第1バス31のアドレスを示す信号であり、本実施の形態では、例えば、15ビットの信号とする。つまり、第1アドレスバス311のバス幅は15ビットとする。この内部アドレスIADは、バスマスタから第1アドレスバス311に与えられる。第2バスアービタ14に対しては、CPU1が第2バスアービタ14の制御を行う際には、バスマスタとなったCPU1が、内部アドレスIADを、第1アドレスバス311を介して与える。第1バス31領域には、第1バスアービタ13(制御レジスタ)、第2バスアービタ14(制御レジスタCR)、CPU1(制御レジスタ)、サウンドプロセッサ7(ローカルメモリ及び制御レジスタ)、グラフィックプロセッサ3(制御レジスタ、パレットメモリ、スプライトメモリ)、メインメモリ17、及びピクセルプロッタ5(制御レジスタ)等が配置される。一方、第2バス33領域には、外部メモリ45などが配置される。
【0154】
内部リード/ライト信号IRWは、第2バスアービタ14内に配置された制御レジスタCRに対してアクセスする際のアクセスの種類を示す信号であり、CPU1から、第1コントロールバス313を介して第1バスインタフェース回路140に与えられる。例えば、内部リード/ライト信号IRWが、ハイレベルのときはリードを示し、ローレベルのときはライトを示す。
【0155】
内部データIDAは、第1バスインタフェース回路140に対して、バスマスタとなったCPU1から、第1データバス312を介して与えられるデータ、あるいは、バスマスタとなったCPU1に対して、第1バスインタフェース回路140から、第1データバス312を介して与えられるデータである。本実施の形態では、例えば、内部データIDAは8ビットのデータとする。つまり、第1データバス312のバス幅を8ビットする。
【0156】
CPU1は、内部リード/ライト信号IRWにより、リードあるいはライトを指定して、内部アドレスIADで指定した、第2バスアービタ15内の制御レジスタCRにアクセスする。
【0157】
さて、外部バス開放要求レジスタ156の値は、ステートマシン155に入力される。CPU1により、外部バス開放要求レジスタ15に「1」がセットされると、ステートマシン155は、外部バス43のアドレスバス、データバス及びコントロールバス(図示せず)をハイインピーダンスにする。例えば、他のデバイスがプロセッサ100の外部バス43を共有しており、他のデバイスからの外部バス使用要求があった場合などに、外部バス開放要求レジスタ15に「1」をセットする。
【0158】
第0領域バス幅レジスタ160には、第2バス第0領域にアクセスする際のデータバスのバス幅を示す情報がセットされる。第1領域バス幅レジスタ161には、第2バス第1領域にアクセスする際のデータバスのバス幅を示す情報がセットされる。第2領域バス幅レジスタ162には、第2バス第2領域にアクセスする際のデータバスのバス幅を示す情報がセットされる。本実施の形態では、第0領域バス幅レジスタ160、第1領域バス幅レジスタ161、及び第2領域バス幅レジスタ162の各々には、バス幅8ビットあるいは16ビットを示す情報をセットできる。
【0159】
第0領域ランダムアクセスサイクル数レジスタ170には、第2バス第0領域にランダムアクセスする際のバスサイクル期間長を示すアクセスサイクル数(クロックサイクル数)を示す情報がセットされる。第1領域ランダムアクセスサイクル数レジスタ171には、第2バス第1領域にランダムアクセスする際のバスサイクル期間長を示すアクセスサイクル数(クロックサイクル数)を示す情報がセットされる。第2領域ランダムアクセスサイクル数レジスタ172には、第2バス第2領域にランダムアクセスする際のバスサイクル期間長を示すアクセスサイクル数(クロックサイクル数)を示す情報がセットされる。ここで、バスサイクル期間長(1バスサイクルの期間長)は、内部クロック信号ICLKのサイクル数で定義される。
【0160】
本実施の形態では、第0領域ランダムアクセスサイクル数レジスタ170、第1領域ランダムアクセスサイクル数レジスタ171、及び第2領域ランダムアクセスサイクル数レジスタ172の各々には、内部ICLKクロック信号の2〜8サイクルを示す情報を設定できる。
【0161】
第0領域ページアクセスサイクル数レジスタ180には、第2バス第0領域にページ・モードでアクセスする際のバスサイクル期間長を示すアクセスサイクル数(クロックサイクル数)を示す情報がセットされる。第1領域ページアクセスサイクル数レジスタ181には、第2バス第1領域にページ・モードでアクセスする際のバスサイクル期間長を示すアクセスサイクル数(クロックサイクル数)を示す情報がセットされる。第2領域ページアクセスサイクル数レジスタ182には、第2バス第2領域にページ・モードでアクセスする際のバスサイクル期間長を示すアクセスサイクル数(クロックサイクル数)を示す情報がセットされる。ここで、バスサイクル期間長(1バスサイクルの期間長)は、内部クロック信号ICLKのサイクル数で定義される。
【0162】
本実施の形態では、第0領域ページアクセスサイクル数レジスタ180、第1領域ページアクセスサイクル数レジスタ181、及び第2領域ページアクセスサイクル数レジスタ182の各々には、内部ICLKクロック信号の1〜4サイクルを示す情報を設定できる。
【0163】
第0領域ページサイズレジスタ190には、第2バス第0領域にページ・モードでアクセスする際のページサイズを示す情報がセットされる。第1領域ページサイズレジスタ191には、第2バス第1領域にページ・モードでアクセスする際のページサイズを示す情報がセットされる。第2領域ページサイズレジスタ192には、第2バス第2領域にページ・モードでアクセスする際のページサイズを示す情報がセットされる。本実施の形態では、第0領域ページサイズレジスタ190、第1領域ページサイズレジスタ191、及び第2領域ページサイズレジスタ192の各々には、0、4、8あるいは16バイトを示す情報をセットできる。
【0164】
CPU1は、外部メモリ45の仕様に応じて、上記制御レジスタ160〜162,170〜172,180〜182,190〜192の値を設定できる。また、CPU1は、上記制御レジスタ160〜162に対して別個独立に値をセットできるし、上記制御レジスタ170〜172に対して別個独立に値をセットできるし、上記制御レジスタ180〜182に対して別個独立に値をセットできるし、上記制御レジスタ190〜192に対して別個独立に値をセットできる。
【0165】
第0スロット優先順位レジスタ200〜第7スロット優先順位レジスタ207の各々には、図3の優先順位情報セット0〜3を示す優先順位情報番号0〜3がセットされる。例えば、第0スロット優先順位レジスタ200〜第7スロット優先順位レジスタ207には、それぞれ、優先順位情報セット1に対応する優先順位情報番号1、優先順位情報セット3に対応する優先順位情報番号3、優先順位情報セット1に対応する優先順位情報番号1、優先順位情報セット2に対応する優先順位情報番号2、優先順位情報セット1に対応する優先順位情報番号1、優先順位情報セット3に対応する優先順位情報番号3、優先順位情報セット1に対応する優先順位情報番号1、及び優先順位情報セット0に対応する優先順位情報番号0がセットされる。なお、優先順位情報番号0〜3は2ビットにエンコードされている。従って、第0スロット優先順位レジスタ200〜第7スロット優先順位レジスタ207の各々は、2ビットのレジスタである。
【0166】
CPU1は、第0スロット優先順位レジスタ200〜第7スロット優先順位レジスタ207に値をセットすることで、8スロットで1巡する優先順位情報番号0〜3の組み合わせを任意に設定できる。
【0167】
マルチプレクサ141は、スロットカウンタ147からの選択信号SSELに従って、第0スロット優先順位レジスタ200〜第7スロット優先順位レジスタ207のうちの1つを選択し、選択した優先順位レジスタが保持している優先順位情報番号をプライオリティデコーダ142に出力する。
【0168】
プライオリティデコーダ142及びOR回路210には、CPU1から、命令フェッチ・バス要求信号IFBR及びデータアクセス・バス要求信号DABRが入力され、グラフィックプロセッサ3から、キャラクタヘッダ・バス要求信号CHBR、キャラクタデータ・バス要求信号CDBR、及びビットマップデータ・バス要求信号BMBRが入力され、ピクセルプロッタ5から、ピクセルプロッタ・バス要求信号PPBRが入力され、サウンドプロセッサ7から、ウェーブデータ・バス要求信号WABR及びエンベロープデータ・バス要求信号EVBRが入力され、DMAコントローラ9から、DMAソース・バス要求信号DSBRが入力される。また、プライオリティデコーダ142には、ステートマシン155から、命令フェッチ・リード許可信号IFRG、データアクセス・リード許可信号DARG、データアクセス・ライト受諾信号DAWGR、キャラクタヘッダ・リード許可信号CHRG、キャラクタデータ・リード許可信号CDRG、ビットマップデータ・リード許可信号BMRG、ピクセルプロッタ・リード許可信号PPRG、ピクセルプロッタ・ライト受諾信号PPWGR、ウェーブデータ・リード許可信号WARG、エンベロープデータ・リード許可信号EVRG、及びDMAソース・リード許可信号DSRGが入力される。
【0169】
ここで、バス要求信号IFBR,DABR,CHBR,CDBR,BMBR,PPBR,WABR,EVBR,DSBRを包括して表現するときは、第2バス使用要求信号BURQ、と表記する。
【0170】
プライオリティデコーダ142は、マルチプレクサ141から現在入力されている優先順位情報番号をデコードして、第2バス使用要求信号BURQを発行したバスマスタから、現在第2バス33を使用している第2バス使用要求要因を除いた中で、最も優先順位の高い(第2バス33の使用許可を与える)バスマスタを選択する。具体的には、次の通りである。
【0171】
プライオリティデコーダ142は、デコードした優先順位情報番号に対応する優先順位情報セットに従って、アサートされている第2バス使用要求信号BURQに対応する第2バス使用要求要因のうち、現在第2バス33を使用している第2バス使用要求要因を除いて最も優先順位の高い第2バス使用要求要因を選択する。ここで、現在第2バスを使用している第2バス使用要求要因は、ステートマシン155から送出される、第2バス使用許可信号AGRの状態から知ることができる。
【0172】
なお、第2バス使用許可信号AGRは、命令フェッチ・リード許可信号IFRG、データアクセス・リード許可信号DARG、データアクセス・ライト受諾信号DAWGR、キャラクタヘッダ・リード許可信号CHRG、キャラクタデータ・リード許可信号CDRG、ビットマップデータ・リード許可信号BMRG、ピクセルプロッタ・リード許可信号PPRG、ピクセルプロッタ・ライト受諾信号PPWGR、ウェーブデータ・リード許可信号WARG、エンベロープデータ・リード許可信号EVRG、及びDMAソース・リード許可信号DSRGを包括した表記である。
【0173】
また、プライオリティデコーダ142は、選択した第2バス使用要求要因に基づいて、バスマスタセレクト信号BMSEL[8:0]を生成して、ステートマシン155およびマルチプレクサ143〜146に出力する。バスマスタセレクト信号BMSEL[8:0]の各ビットは、9つの第2バス使用要求要因に対応している。プライオリティデコーダ142は、選択した(第2バス33の使用許可を与える)第2バス使用要求要因に対応するビットを「1」に、他のビットを「0」にセットする。つまり、プライオリティデコーダ142は、デコーダした優先順位情報番号に対応する優先順位情報セットに従って、アサートされている第2バス使用要求信号BURQに対応する第2バス使用要求要因のうち、現在第2バス33を使用している第2バス使用要求要因を除いて最も優先順位の高い第2バス使用要求要因に対応したビットを「1」にする。OR回路148には、ステートマシン155から、9つの第2バス使用許可信号AGR(IFRG,DARG,DAWGR,CHRG,CDRG,BMRG,PPRG,PPWGR,WARG,EVRG,DSRG)が入力される。
【0174】
スロットカウンタ147は、OR回路148からの信号が、「0(偽)」から「1(真)」に遷移するたびに、選択信号SSEL[2:0]の値をインクリメントして、マルチプレクサ141に、第0スロット優先順位レジスタ200〜第7スロット優先順位レジスタ207に格納されている優先順位情報番号を順次的かつ巡回的に選択させる。
【0175】
従って、バス使用許可が与えられたバスマスタの1または連続したバスサイクルの終端は、9つの第2バス使用許可信号AGRの論理和から求められる。
【0176】
OR回路210には、9つの第2バス使用要求信号BURQが入力され、そのうちの1つ以上の第2バス使用要求信号BURQが「1」の場合に、第2バス使用要求信号SBRをアサートする。
【0177】
マルチプレクサ143の9つの入力は、9つの第2バス使用要求要因「命令フェッチ」,「データアクセス」,「キャラクタヘッダ」,「キャラクタデータ」,「ビットマップデータ」,「ピクセルプロッタ」,「ウェーブデータ」,「エンベロープデータ」,「DMAソース」に対応している。
【0178】
従って、マルチプレクサ143の9つの入力には、命令フェッチ・アドレスIFAD、データアクセス・アドレスDAAD、キャラクタヘッダ・アドレスCHAD、キャラクタデータ・アドレスCDAD、ビットマップデータ・アドレスBMAD、ピクセルプロッタ・アドレスPPAD、ウェーブデータ・アドレスWAAD、エンベロープデータ・アドレスEVAD、及びDMAソース・アドレスDSADが入力される。
【0179】
マルチプレクサ143は、これら9つの入力アドレス信号のうち、バスマスタセレクト信号BMSELが示す(第2バス33の使用許可を与える)第2バス使用要求要因に対応するアドレス信号を、統一アドレスCADR[26:0]として出力する。この場合、統一アドレスCADR[26:1]はステートマシン155へ、統一アドレスCADR[0]はバイトイネーブル信号生成回路150へ出力される。また、統一アドレスCADR[22:21]はアドレスデコーダ149へも出力される。
【0180】
アドレスデコーダ149は、統一アドレスCADR[22:21]をデコードして、統一第1領域セレクト信号CASEL1及び統一第2領域セレクト信号CASEL2を生成し、マルチプレクサ151〜153、デコーダ154、及びステートマシン155に出力する。この点を図6を用いて詳しく説明する。
【0181】
図6の下段に示すように、アドレスA22(統一アドレスCADR[22])が「0」のときは、第2バス第0領域を示し、アドレスA22(統一アドレスCADR[22])が「1」かつアドレスA21(統一アドレスCADR[21])が「0」のときは、第2バス第1領域を示し、アドレスA22(統一アドレスCADR[22])が「1」かつアドレスA21(統一アドレスCADR[21])が「1」のときは、第2バス第2領域を示す。
【0182】
従って、アドレスデコーダ149は、統一アドレスCADR[22:21]をデコードすることで、第2バス第0領域、第2バス第1領域、及び第2バス第2領域のうち、どの領域が選択されているかを判別できる。
【0183】
そして、アドレスデコーダ149は、統一アドレスCADR[22:21]が、第2バス第0領域を示している場合は、統一第1領域セレクト信号CASEL1及び統一第2領域セレクト信号CASEL2の双方をネゲートし、第2バス第1領域を示している場合は、統一第1領域セレクト信号CASEL1をアサート、統一第2領域セレクト信号CASEL2をネゲートし、第2バス第2領域を示している場合は、統一第1領域セレクト信号CASEL1をネゲート、統一第2領域セレクト信号CASEL2をアサートする。
【0184】
図7に戻って、マルチプレクサ151は、統一第1領域セレクト信号CASEL1および統一第2領域セレクト信号CASEL2に従って、3つのバス幅レジスタ160〜162のうちの1つを選択し、選択したバス幅レジスタの値を、統一バス幅信号CBWとして、ステートマシン155に出力する。
【0185】
つまり、マルチプレクサ151は、第2バス第0領域、第2バス第1領域、及び第2バス第2領域のうち、統一アドレス信号CADRが示す領域に対応するバス幅レジスタの値を、統一バス幅信号CBWとする。
【0186】
マルチプレクサ152は、統一第1領域セレクト信号CASEL1および統一第2領域セレクト信号CASEL2に従って、3つのランダムアクセスサイクル数レジスタ170〜172のうちの1つを選択し、選択したランダムアクセスサイクル数レジスタの値を、統一ランダムアクセスサイクル数信号CRCYとして、ステートマシン155に出力する。
【0187】
つまり、マルチプレクサ152は、第2バス第0領域、第2バス第1領域、及び第2バス第2領域のうち、統一アドレス信号CADRが示す領域に対応するランダムアクセスサイクル数レジスタの値を、統一ランダムアクセスサイクル数信号CRCYとする。
【0188】
マルチプレクサ153は、統一第1領域セレクト信号CASEL1および統一第2領域セレクト信号CASEL2に従って、3つのページアクセスサイクル数レジスタ180〜182のうちの1つを選択し、選択したページアクセスサイクル数レジスタの値を、統一ページアクセスサイクル数信号CPCYとして、ステートマシン155に出力する。
【0189】
つまり、マルチプレクサ153は、第2バス第0領域、第2バス第1領域、及び第2バス第2領域のうち、統一アドレス信号CADRが示す領域に対応するページアクセスサイクル数レジスタの値を、統一ページアクセスサイクル数信号CPCYとする。
【0190】
デコーダ154は、統一第1領域セレクト信号CASEL1および統一第2領域セレクト信号CASEL2に従って、3つのページサイズレジスタ190〜192のうちの1つを選択し、選択したページサイズレジスタの値をデコードする。
【0191】
つまり、デコーダ154は、第2バス第0領域、第2バス第1領域、及び第2バス第2領域のうち、統一アドレス信号CADRが示す領域に対応するページサイズレジスタの値をデコードする。
【0192】
そして、デコーダ154は、デコード結果を、統一ページ境界信号CPBとして、ステートマシン155に出力する。ページサイズレジスタ190〜192の各々は、2ビットであり、これにより、ページサイズ0、4、8、16バイトを表している。デコーダ154は、この2ビットをデコードして、外部アドレスEAD[3:0]のマスクを示す統一ページ境界信号CPB[3:0]を生成する。
【0193】
マルチプレクサ144の9つの入力は、9つの第2バス使用要求要因「命令フェッチ」,「データアクセス」,「キャラクタヘッダ」,「キャラクタデータ」,「ビットマップデータ」,「ピクセルプロッタ」,「ウェーブデータ」,「エンベロープデータ」,「DMAソース」に対応している。
【0194】
従って、マルチプレクサ144の9つの入力には、命令フェッチ・サイズ信号IFSZ、データアクセス・サイズ信号DASZとしての「1」、キャラクタヘッダ・サイズ信号CHSZ、キャラクタデータ・サイズ信号CDSZ、ビットマップデータ・サイズ信号BMSZとしての「8」、ピクセルプロッタ・サイズ信号PPSZ、ウェーブデータ・サイズ信号WASZとしての「1」、エンベロープデータ・サイズ信号EVSZとしての「1」、及びDMAソース・サイズ信号DSSZが入力される。
【0195】
このように、データアクセス・サイズ信号DASZ、ウェーブデータ・サイズ信号WASZ、及びエンベロープデータ・サイズEVSZとして、「1」が固定値として入力されている。これは、図5から分かるように、これらに対応する第2バス使用要求要因において、要求できるデータ転送のサイズは、1バイトで固定されているからである。なお、マルチプレクサ144に入力される「1」は、要求するデータ転送のサイズが1バイトであることを意味する。また、ビットマップデータ・サイズ信号BMSZとして「8」が固定値として入力されている(図5参照)。
【0196】
マルチプレクサ144は、上記9つの入力サイズ信号のうち、バスマスタセレクト信号BMSELが示す(第2バス33の使用許可を与える)第2バス使用要求要因に対応するサイズ信号を、統一サイズ信号CSZとして、ステートマシン155へ出力する。
【0197】
マルチプレクサ145の9つの入力は、9つの第2バス使用要求要因「命令フェッチ」、「データアクセス」,「キャラクタヘッダ」,「キャラクタデータ」,「ビットマップデータ」,「ピクセルプロッタ」,「ウェーブデータ」,「エンベロープデータ」,「DMAソース」に対応している。
【0198】
従って、マルチプレクサ145の9つの入力には、第2バス使用要求要因「命令フェッチ」に対応した「0」、データアクセス・ライトデータDAWD、第2バス使用要求要因「キャラクタヘッダ」に対応した「0」、第2バス使用要求要因「キャラクタデータ」に対応した「0」、第2バス使用要求要因「ビットマップデータ」に対応した「0」、ピクセルプロッタ・ライトデータPPWD、第2バス使用要求要因「ウェーブデータ」に対応した「0」、第2バス使用要求要因「エンベロープデータ」に対応した「0」、及び第2バス使用要求要因「DMAソース」に対応した「0」が入力される。
【0199】
この場合、「0」入力は、ライトデータがないことを意味する。なぜなら、第2バス使用要求要因「命令フェッチ」,「キャラクタヘッダ」,「キャラクタデータ」,「ビットマップデータ」,「ウェーブデータ」,「エンベロープデータ」,「DMAソース」では、ライトを行わないからである。
【0200】
マルチプレクサ145は、上記9つの入力データのうち、バスマスタセレクト信号BMSELが示す(第2バス33の使用許可を与える)第2バス使用要求要因に対応する入力データを、統一ライトデータCWDとして、ステートマシン155へ出力する。
【0201】
マルチプレクサ146の9つの入力は、9つの第2バス使用要求要因「命令フェッチ」、「データアクセス」,「キャラクタヘッダ」,「キャラクタデータ」,「ビットマップデータ」,「ピクセルプロッタ」,「ウェーブデータ」,「エンベロープデータ」,「DMAソース」に対応している。
【0202】
従って、マルチプレクサ146の9つの入力には、第2バス使用要求要因「命令フェッチ」に対応した「0」、データアクセス・ライト要求信号DAWRQ、第2バス使用要求要因「キャラクタヘッダ」に対応した「0」、第2バス使用要求要因「キャラクタデータ」に対応した「0」、第2バス使用要求要因「ビットマップデータ」に対応した「0」、ピクセルプロッタ・ライト要求信号PPWRQ、第2バス使用要求要因「ウェーブデータ」に対応した「0」、第2バス使用要求要因「エンベロープデータ」に対応した「0」、及び第2バス使用要求要因「DMAソース」に対応した「0」が入力される。
【0203】
この場合、「0」入力は、ライト要求がないことを意味する。なぜなら、第2バス使用要求要因「命令フェッチ」,「キャラクタヘッダ」,「キャラクタデータ」,「ビットマップデータ」,「ウェーブデータ」,「エンベロープデータ」,「DMAソース」では、ライトを行わないからである。
【0204】
マルチプレクサ145は、上記9つの入力信号のうち、バスマスタセレクト信号BMSELが示す(第2バス33の使用許可を与える)第2バス使用要求要因に対応する入力信号を、統一ライト要求信号CWRQとして、ステートマシン155へ出力する。
【0205】
バイトイネーブル信号生成回路150は、統一アドレスCADR[0]、統一バス幅信号CBW、及び統一ライト要求信号CWRQに基づいて、統一下位バイトイネーブル信号CLWBE及び統一上位バイトイネーブル信号CUPBEを生成して、ステートマシン155へ出力する。具体的には次の通りである。
【0206】
まず、統一ライト要求信号CWRQが「0」の場合(リードの場合)を説明する。バイトイネーブル信号生成回路150は、統一バス幅信号CBWがデータバス幅16ビットを示しているときは、統一アドレスCADR[0]に関係なく、統一下位バイトイネーブル信号CLWBE及び統一上位バイトイネーブル信号CUPBEの双方をアサートする。
【0207】
一方、バイトイネーブル信号生成回路150は、統一バス幅信号CBWがデータバス幅8ビットを示しているときは、統一アドレスCADR[0]が「0」であるときは統一下位バイトイネーブル信号CLWBEをアサートし、統一上位バイトイネーブル信号CUPBEをネゲートし、統一アドレスCADR[0]が「1」であるときは統一下位バイトイネーブル信号CLWBEをネゲートし、統一上位バイトイネーブル信号CUPBEをアサートする。
【0208】
以上のように、リードは、バス幅が16ビットに設定されている領域において、16ビット単位で行われ、バス幅が8ビットに設定されている領域において、8ビット単位で行われる。
【0209】
次に、統一ライト要求信号CWRQが「1」の場合(ライトの場合)を説明する。バイトイネーブル信号生成回路150は、統一バス幅信号CBWの値に関係なく、統一アドレスCADR[0]が「0」であるときは、統一下位バイトイネーブル信号CLWBEをアサートし、統一上位バイトイネーブル信号CUPBEをネゲートし、統一アドレスCADR[0]が「1」であるときは、統一下位バイトイネーブル信号CLWBEをネゲートし、統一上位バイトイネーブル信号CUPBEをアサートする。
【0210】
以上のように、バス幅が16ビットに設定されている領域、8ビットに設定されている領域のいずれにおいても、ライトは常に8ビット単位で行われる。
【0211】
ステートマシン155は、第2バス33へのアクセスを複数のステート(状態)IDLE,FREE,WRITE,READ,STEALに分けて、外部アドレスEAD、外部アドレス出力イネーブル信号EADOE、外部データ出力EDAO、外部データ出力イネーブル信号EDAOE、外部リードイネーブル信号ERDE、外部ライトイネーブル信号EWRE、下位バイトイネーブル信号LWBE、上位バイトイネーブル信号UPBE、第1領域セレクト信号ASSEL1、及び第2領域セレクト信号ASSEL2、並びに、命令フェッチ・上位バイトリード許可信号IFURG、命令フェッチ・下位バイトリード許可信号IFLRG、データアクセス・下位バイトリード許可信号DALRG、データアクセス・上位バイトリード許可信号DAURG,データアクセス・ライト受諾信号DAWGR,キャラクタヘッダ・下位バイトリード許可信号CHLRG,キャラクタヘッダ・上位バイトリード許可信号CHURG、キャラクタデータ・下位バイトリード許可信号CDLRG、キャラクタデータ・上位バイトリード許可信号CDURG、ビットマップデータ・下位バイトリード許可信号BMLRG、ビットマップデータ・上位バイトリード許可信号BMURG、ピクセルプロッタ・下位バイトリード許可信号PPLRG、ピクセルプロッタ・上位バイトリード許可信号PPURG、ピクセルプロッタ・ライト受諾信号PPWGR、ウェーブデータ・下位バイトリード許可信号WALRG、ウェーブデータ・上位バイトリード許可信号WAURG、エンベロープデータ・下位バイトリード許可信号EVLRG、エンベロープデータ・上位バイトリード許可信号EVURG、DMAソース・下位バイトリード許可信号DSLRG、DMAソース・上位バイトリード許可信号DSURG、命令フェッチ・リード許可信号IFRG、データアクセス・リード許可信号DARG、キャラクタヘッダ・リード許可信号CHRG、キャラクタデータ・リード許可信号CDRG、ビットマップデータ・リード許可信号BMRG、ピクセルプロッタ・リード許可信号PPRG、ウェーブデータ・リード許可信号WARG、エンベロープデータ・リード許可信号EVRG、及びDMAソース・リード許可信号DSRGを制御する。
【0212】
図8は、図7のステートマシン155における状態遷移の説明図である。図8に示すように、IDLEステートST0は、第2バス33に対する使用要求の無い空き状態である。FREEステートST1では、ステートマシン155は、CPU1からの外部バス43の開放要求に応じて(外部バス開放要求レジスタ156に「1」がセット)、外部アドレスEAD、外部データ出力EDAO、外部リードイネーブル信号ERDE、外部ライトイネーブル信号EWRE、下位バイトイネーブル信号LWBE、上位バイトイネーブル信号UPBE、第1領域セレクト信号ASSEL1、及び第2領域セレクト信号ASSEL2をHi−Z(ハイインピーダンス)にする。
【0213】
WRITEステートST2は、ライトサイクルである。複数バイト連続でのライトが行われることがある。
【0214】
READステートST3は、リードサイクルである。複数バイト連続でのリードが行われることがある。ただし、一定バイト数連続でのリードが要求され、かつ、サウンドプロセッサ7からのリード要求がある場合には、サウンドプロセサ7からのリードアクセスを割り込ませるためにSTEALステートST4へ移行する。
【0215】
STEALステートST4は、サウンドプロセッサ7からのバス使用要求は緊急度が高いため、他のバスマスタのリードアクセス中に、割り込みアクセスをするためのステートである。
【0216】
図に沿って、状態遷移を説明する。なお、図中、「∧」は論理積、「∨」は論理和、「<」及び「≧」は不等号、「=」は等号、を意味する。本実施の形態では、図中の条件式を満足したとき、次の内部クロック信号ICLKの立ち上がりで、満足した条件式に応じた状態へ遷移する。
【0217】
まず、IDLEステートST0からの状態遷移を説明する。
【0218】
ステートマシン155は、外部バス開放要求レジスタ156の値が「1」になったとき、FREEステートST1へ移行する。
【0219】
また、ステートマシン155は、外部バス開放要求レジスタ156の値が「0」、かつ、第2バス使用要求信号SBRが「1」、かつ、統一ライト要求信号CWRQが「1」になったときに、WRITEステートST2へ移行する。
【0220】
さらに、ステートマシン155は、外部バス開放要求レジスタ156の値が「0」、かつ、第2バス使用要求信号SBRが「1」、かつ、統一ライト要求信号CWRQが「0」になったときに、READステートST3へ移行する。なお、第2バス使用要求信号SBRが「1」であって、統一ライト要求信号CWRQが「0」の場合は、リード要求を意味する。
【0221】
さらに、ステートマシン155は、外部バス開放要求レジスタ156の値が「0」、かつ、第2バス使用要求信号SBRが「0」になったときは、同じIDLEステートST0に移行する。
【0222】
次に、FREEステートST1からの状態遷移を説明する。
【0223】
ステートマシン155は、サイクルカウントCYCが「1」、かつ、外部バス開放要求レジスタ156の値が「0」になったときに、IDLEステートST0へ移行する。
【0224】
ここで、サイクルカウンタは、3ビットのカウンタである。FREEステートST1でのサイクルカウントCYCの初期値は、「0」、つまり、「0b000」であり、内部クロックICLKの1サイクルごとにデクリメントされる。サイクルカウントCYCの初期値「0b000」は、内部クロックICLKの8サイクルを意味する。
【0225】
次に、WRITEステートST2からの状態遷移を説明する。
【0226】
ステートマシン155は、サイクルカウントCYCが「1」、かつ、バイトカウントBYCが「2」未満、外部バス開放要求レジスタ156の値が「0」、かつ、第2バス使用要求信号SBRが「0」になったときに、IDLEステートST0へ移行する。
【0227】
ここで、WRITEステートST2でのサイクルカウントCYCの初期値は、統一ランダムアクセスサイクル数信号CRCYが示すランダムアクセスサイクル数である。また、WRITEステートST2でのバイトカウントBYCの初期値は、統一サイズ信号CSZが示すサイズ(図5参照)であり、1バイトのライトが終了するたびにデクリメントされる。
【0228】
また、ステートマシン155は、サイクルカウントCYCが「1」、かつ、バイトカウントBYCが「2」未満、かつ、外部バス開放要求レジスタ156の値が「1」になったときに、FREEステートST1へ移行する。
【0229】
さらに、ステートマシン155は、サイクルカウントCYCが「1」、かつ、バイトカウントBYCが「2」未満、かつ、外部バス開放要求レジスタ156の値が「0」、かつ、第2バス使用要求信号SBRが「1」、かつ、統一ライト要求信号CWRQが「1」になったときは、同じWRITEステートST2に移行する。
【0230】
さらに、ステートマシン155は、サイクルカウントCYCが「1」、かつ、バイトカウントBYCが「2」未満、かつ、外部バス開放要求レジスタ156の値が「0」、かつ、第2バス使用要求信号SBRが「1」、かつ、統一ライト要求信号CWRQが「0」になったときに、READステートST3へ移行する。
【0231】
次に、READステートST3からの状態遷移について説明する。
【0232】
ステートマシン155は、サイクルカウントCYCが「1」、かつ、図8の条件1が「偽」、かつ、外部バス開放要求レジスタ156の値が「0」、かつ、第2バス使用要求信号SBRが「0」になったときに、IDLEステートST0へ移行する。
【0233】
ここで、READステートST3でのサイクルカウントCYCの初期値は、統一ランダムアクセスサイクル数信号CRCYが示すランダムアクセスサイクル数あるいは統一ページアクセスサイクル数信号CPCYが示すページアクセスサイクル数である。
【0234】
条件1は、第2バス幅信号SBWが「1」かつ外部アドレスEAD[0]が「0」かつバイトカウントBYCが「3」以上、あるいは、第2バス幅信号SBWが「1」かつ外部アドレスEAD[0]が「1」かつバイトカウントBYCが「2」以上、あるいは、第2バス幅信号SBWが「0」かつバイトカウントBYCが「2」以上、のいずれかのときに「真」になる条件である。
【0235】
第2バス幅信号SBWが「0」のときは、要求されたバス幅が8ビットであることを意味し、「1」のきは、要求されたバス幅が16であることを意味する。また、READステートST3でのバイトカウントBYCの初期値は、統一サイズ信号CSZが示すサイズ(図5参照)であり、1バイトのリードが終了するたびにデクリメントされる。また、外部アドレスEAD[0]が「0」のとき、16ビットデータの下位バイトが指し示され、「1」のとき、16ビットデータの上位バイトが指し示される。
【0236】
従って、条件1が「真」ということは、要求されたバス幅が16ビットの場合において、現在の外部アドレスEAD[0]が下位バイトを示し、残りのリードデータが、3バイト以上であるため、1バスサイクルで、残りのリードデータ全てをリードできないこと、あるいは、要求されたバス幅が16ビットの場合において、現在の外部アドレスEAD[0]が上位バイトを示し、残りのリードデータが、2バイト以上であるため、1バスサイクルで、残りのリードデータ全てをリードできないこと、あるいは、要求されたバス幅が8ビットの場合において、残りのリードデータが、2バイト以上であるため、1バスサイクルで、残りのリードデータ全てをリードできないこと、を意味する。
【0237】
逆に、条件1が「偽」ということは、要求されたバス幅が16ビットの場合において、現在の外部アドレスEAD[0]が下位バイトを示し、残りのリードデータが、2バイト以下であるため、1バスサイクルで、残りのリードデータ全てをリードできること、あるいは、要求されたバス幅が16ビットの場合において、現在の外部アドレスEAD[0]が上位バイトを示し、残りのリードデータが、1バイトであるため、1バスサイクルで、残りのリードデータ全てをリードできること、あるいは、要求されたバス幅が8ビットの場合において、残りのリードデータが、1バイトであるため、1バスサイクルで、残りのリードデータ全てをリードできること、を意味する。
【0238】
さて、ステートマシン155は、サイクルカウントCYCが「1」、かつ、条件1が「偽」、かつ、外部バス開放要求レジスタ156の値が「1」になったときに、FREEステートST1へ移行する。
【0239】
また、ステートマシン155は、サイクルカウントCYCが「1」、かつ、条件1が「偽」、かつ、外部バス開放要求レジスタ156の値が「0」、かつ、第2バス使用要求信号SBRが「1」、かつ、統一ライト要求信号CWRQが「1」になったときに、WRITEステートST2へ移行する。
【0240】
さらに、ステートマシン155は、サイクルカウントCYCが「1」、かつ、条件1が「偽」、かつ、外部バス開放要求レジスタ156の値が「0」、かつ、第2バス使用要求信号SBRが「1」、かつ、統一ライト要求信号CWRQが「0」になったときは、同じREADステートST3に移行する。
【0241】
さらに、ステートマシン155は、サイクルカウントCYCが「1」、かつ、条件1が「真」、かつ、図8の条件2が「真」になったときに、STEALステートST4へ移行する。
【0242】
ここで、条件2は、ウェーブデータ・バス要求信号WABRが「1」あるいはエンベロープデータ・バス要求信号EVBRが「1」のときに「真」になる条件である。
【0243】
従って、サウンドプロセッサ7以外のバスマスタがリードアクセス中の場合でも、サイクルカウントCYCが「1」のときに、サウンドプロセッサ7から、ウェーブデータ・バス要求信号WABRあるいはエンベロープデータ・バス要求信号EVBRが発行されると、STEALステートST4に移行し、サウンドプロセッサ7のリードアクセスを割り込ませる。ただし、STEALステートST4への移行は、条件1が「真」であることが条件なので、1バスサイクルでは、残りのリードデータ全てがリード不可能なことが条件となる。言い換えると、条件1が「偽」のために、1バスサイクルで、残りのリードデータ全てがリード可能なときは、該バスマスタのリードアクセスを終了させるべく、READステートST3が維持される。
【0244】
次に、STEALステートST4からの状態遷移を説明する。
【0245】
ステートマシン155は、サイクルカウントCYCが「1」になったときに、READステートST3へ移行する。
【0246】
さて、次に、HDL(hardware description language)によるステートマシン155の記述を基に、図8の状態遷移を詳細に説明する。この場合、次のことを前提とする。上記と同様に、論理は、次の内部クロック信号ICLKの立ち上がりで反映される。また、基本的に正論理で記載する。ただし、統一下位バイトイネーブル信号CLWBE、統一上位バイトイネーブル信号CUPBE、上位バイトイネーブル信号UPBE、及び下位バイトイネーブル信号LWBEは、負論理とする。
【0247】
また、「=」は、条件文では等号を意味し、それ以外では代入を意味する。
【0248】
また、下記の説明における、ライト受諾信号WRAC、ライトデータ保持値WDSV、ランダムアクセスサイクル数保持値RACSV、外部アドレス保持値EADSV、第1領域セレクト保持値FSSV、第2領域セレクト保持値SSSV、第2バス幅信号SBW、第2バス幅保持値SBWSV、リード許可信号REGR、リード許可保持値REGRSV、ページアクセスサイクル数保持値PACSV、下位バイトリード許可信号LWRG、及び上位バイトリード許可信号UPRGは、ステートマシン155の内部信号であるため、図7には示されていない。
【0249】
[IDLEステートST0]
【0250】
外部アドレス出力イネーブル信号EADOE=1、外部データ出力イネーブル信号EDAOE=0(つまり、第2バス33のデータバスをHi−Zにする。)、外部ライトイネーブル信号EWRE=0、及び、外部リードイネーブル信号ERDE=0、とする。
【0251】
もし、外部バス開放要求レジスタ156=1ならば、後述のFREE共通論理を実行し、それ以外で、第2バス使用要求信号SBR=1ならば、後述のACCESS共通論理を実行し、さらにそれ以外の場合は、後述のIDLE共通論理を実行する。
【0252】
[FREEステートST1]
【0253】
(1)<サイクルカウントCYC≠1の場合>
【0254】
サイクルカウントCYCを1つデクリメントする。
【0255】
(2)<サイクルカウントCYC≠1でない場合、つまり、サイクルカウントCYC=1の場合>
【0256】
外部アドレス出力イネーブル信号EADOE=0とする。
【0257】
もし、外部バス開放要求レジスタ156=0ならば、外部アドレス出力イネーブルEADOE=1、ステートをIDLEステートST0とする。
【0258】
[WRITEステートST2]
【0259】
(1)<サイクルカウントCYC≠1の場合>
【0260】
(1−1)ライト受諾信号WRAC[8:0]=0b000000000、外部ライトイネーブル信号EWRE=1、外部データ出力イネーブル信号EDAOE=1、とする。ここで、ライト受諾信号WRAC[8:0]をネゲートしているのは、バスサイクルの途中であるため、外部メモリ45へのデータの書き込みが完了していないからである。
【0261】
(1−2)もし、外部アドレスEAD[0]=1ならば、外部データEDAO[15:8]=ライトデータ保持値WDSV[15:8]、外部データEDAO[7:0]=ライトデータ保持値WDSV[15:8]、とする。ライトは、バイト単位で行われるので、外部メモリ45にライトされるのは、データバス幅が16ビットの場合には外部データEDAO[15:8]、データバス幅が8ビットの場合には外部データEDAO[7:0]である。
【0262】
一方、外部アドレスEAD[0]=1以外、つまり、外部アドレスEAD[0]=0の場合は、外部データEDAO[15:0]=ライトデータ保持値WDSV[15:0]、とする。ライトは、バイト単位で行われるので、外部メモリ45にライトされるのは、外部データEDAO[7:0]である。
【0263】
(1−3)サイクルカウントCYCを1つデクリメントする。
【0264】
(2)<サイクルカウントCYC≠1でない場合、つまりサイクルカウントCYC=1の場合で、バイトカウントBYC≧2の場合>
【0265】
ライト受諾信号WRAC[8:0]=0b000000000、外部ライトイネーブル信号EWRE=0、外部データ出力イネーブル信号EDAOE=0、サイクルカウントCYC=ランダムアクセスサイクル数保持値RACSV、外部アドレスEAD[26:0]=外部アドレスEAD[26:0]+1、上位バイトイネーブル信号UPBE=外部アドレスEAD[0]を論理反転した値、とする。また、バイトカウントBYCを1つデクリメントする。ここで、ライト受諾信号WRAC[8:0]をネゲートしているのは、ライトするデータが残っているからである。
【0266】
(3)<サイクルカウントCYC≠1でない場合、つまりサイクルカウントCYC=1の場合で、バイトカウント≧2でない場合、つまりバイトカウント=1の場合>
【0267】
外部ライトイネーブル信号EWRE=0、外部データ出力イネーブル信号EDAOE=0、とする。もし、外部バス開放要求レジスタ156=1ならば、後述のFREE共通論理を実行し、それ以外で、第2バス使用要求信号SBR=1ならば、後述のACCESS共通論理を実行し、さらにそれ以外の場合は、後述のIDLE共通論理を実行する。
【0268】
[READステートST3]
【0269】
(1)外部ライトイネーブル信号EWRE=0、外部データ出力イネーブル信号EDAOE=0、とする。
【0270】
(2)<サイクルカウントCYC≠1の場合>
【0271】
サイクルカウントCYCを1つデクリメントし、外部リードイネーブル信号ERDE=1、とする。
【0272】
(3)<サイクルカウントCYC≠1でない場合、つまり、サイクルカウントCYC=1の場合であって、図8の条件1が「真」の場合>
【0273】
(3−1)<図8の条件2が「真」の場合>
【0274】
(3−1−1)外部リードイネーブル信号ERDE=0とする。
【0275】
(3―1−2)もし、第2バス幅信号SBW=1かつ外部アドレスEAD[0]=0かつバイトカウントBYC≧3の場合は、バイトカウントBYCを2つデクリメントし、外部アドレス保持値EADSV[26:0]=外部アドレスEAD[26:0]+2、とする。一方、それ以外の場合であって、バイトカウントBYC≧2のときは、バイトカウントBYCを1つデクリメントし、外部アドレス保持値EADSV[26:0]=外部アドレスEAD[26:0]+1、とする。
【0276】
(3−1−3)外部アドレスEAD[26:1]=統一アドレスCADR[26:1]、外部アドレスEAD[0]=統一下位バイトイネーブル信号CLWBE、第1領域セレクト信号ASSEL1=統一第1領域セレクト信号CASEL1、第2領域セレクト信号ASSEL2=統一第2領域セレクト信号CASEL2、第2バス幅保持値SBWSV=第2バス幅信号SBW、第2バス幅信号SBW=統一バス幅信号CBW、上位バイトイネーブル信号UPBE=統一上位バイトイネーブル信号CUPBE、サイクルカウントCYC=統一ランダムアクセスサイクル数信号CRCY、リード許可保持値REGRSV=リード許可信号REGR、リード許可信号REGR=バスマスタセレクト信号BMSEL、ステートをSTEALステートST4とする。
【0277】
(3−2)<図8の条件2が「偽」の場合>
【0278】
(3−2−1)第1領域セレクト信号ASSEL1=第1領域セレクト保持値FSSV、第2領域セレクト信号ASSEL2=第2領域セレクト保持値SSSV、とする。
【0279】
(3−2−2)もし、第2バス幅信号SBW=1かつ外部アドレスEAD[0]=0かつバイトカウントBYC≧3の場合は、バイトカウントBYCを2つデクリメントし、外部アドレスEAD[26:0]=外部アドレスEAD[26:0]+2、とする。一方、それ以外の場合であって、バイトカウントBYC≧2のときは、バイトカウントBYCを1つデクリメントし、外部アドレスEAD[26:0]=外部アドレスEAD[26:0]+1、とする。
【0280】
(3−2−3)もし、第2バス幅信号SBW=1の場合は、上位バイトイネーブル信号UPBE=0、とし、それ以外の場合は、つまり、第2バス幅信号SBW=0の場合は、上位バイトイネーブル信号UPBE=外部アドレスEAD[0]を論理反転した値、とする。
【0281】
(3−2−4)<第2バス幅信号SBW=1の場合>
【0282】
もし、外部アドレスEAD[3:1]の各ビットと、統一ページ境界信号CPB[3:1]の各ビットと、の論理和が、「0b111」でない場合は、サイクルカウントCYC=統一ページアクセスサイクル数信号CPCY、外部リードイネーブル信号ERDE=1、とする。一方、外部アドレスEAD[3:1]の各ビットと、統一ページ境界信号CPB[3:1]の各ビットと、の論理和が、「0b111」である場合は、サイクルカウントCYC=ランダムアクセスサイクル数保持値RACSV、外部リードイネーブル信号ERDE=0、とする。これらの点を詳しく説明する。
【0283】
デコーダ154は、本実施の形態では、例えば、ページサイズが0バイトのときページ境界信号CPBを「0b1111」とし、4バイトのときページ境界信号CPBを「0b1100」とし、8バイトのときページ境界信号CPBを「0b1000」とし、16バイトのときページ境界信号CPBを「0b0000」とする。
【0284】
ここで、第2バス幅信号SBW=1ということは、第2バス33のデータバス幅が16ビット、つまり、外部メモリ45の1ワードが16ビットで構成されている場合である。この場合、次のワードを指し示すために外部アドレスEADが変化するとき、外部アドレスEAD[0]は「0」を示したまま変化せず、外部アドレスEAD[26:1]の値がインクリメントされる。
【0285】
このことを踏まえた上で、ページ境界信号CPB[3:0]が「0b1100」(4バイトを示す。)の場合を例に説明を行う。この場合、ページサイズが4バイトであるから、外部アドレスEAD[3:1]が、例えば、「0b000」、「0b001」の範囲は同一ページ内である。つまり、1ページが4バイトのときは、同一ページ内では、外部アドレスEAD[1]が、「0b0」→「0b1」と変化する。
【0286】
従って、4バイトのページの最後のワードでは、外部アドレスEAD[1]が「0b1」になる。よって、ページ境界信号CPB[3:1](0b110)の各ビットと、ページの最後のワードを示す外部アドレスEAD[3:1](0b**1)の各ビットと、の論理和は、必ず、「0b111」となる。このようにして、外部アドレスEADが指し示すワードが、ページの最後のワードか否かが判別される。なお、「*」は任意の値である。
【0287】
(3−2−5)<第2バス幅信号SBW=0の場合>
【0288】
もし、外部アドレスEAD[3:0]の各ビットと、統一ページ境界信号CPB[3:0]の各ビットと、の論理和が、「0b1111」でない場合は、サイクルカウントCYC=統一ページアクセスサイクル数信号CPCY、外部リードイネーブル信号ERDE=1、とする。一方、外部アドレスEAD[3:0]の各ビットと、統一ページ境界信号CPB[3:0]の各ビットと、の論理和が、「0b1111」である場合は、サイクルカウントCYC=ランダムアクセスサイクル数保持値RACSV、外部リードイネーブル信号ERDE=0、とする。これらの点を詳しく説明する。
【0289】
第2バス幅信号SBW=0ということは、第2バス33のデータバス幅が8ビット、つまり、外部メモリ45の1ワードが8ビットで構成されている場合である。この場合、次のワードを指し示すために外部アドレスEADが変化するとき、外部アドレスEAD[26:0]の値がインクリメントされる。
【0290】
このことを踏まえた上で、ページ境界信号CPBが「0b1100」(4バイトを示す。)の場合を例に説明を行う。この場合、ページサイズが4バイトであるから、外部アドレスEAD[3:0]が、例えば、「0b0000」、「0b0001」、「0b0010」、「0b0011」の範囲は同一ページ内である。つまり、1ページが4バイトのときは、同一ページ内では、外部アドレスEAD[1:0]が、「0b00」→「0b01」→「0b10」→「0b11」と変化する。
【0291】
従って、4バイトのページの最後のワードでは、外部アドレスEAD[1:0]が「0b11」になる。
【0292】
よって、ページ境界信号CPB[3:0](0b1100)の各ビットと、ページの最後のワードを示す外部アドレスEAD[3:0](0b**11)の各ビットと、の論理和は、必ず、「0b1111」となる。このようにして、外部アドレスEADが指し示すワードが、ページの最後のワードか否かが判別される。なお、「*」は任意の値である。
【0293】
(4)<READステートST3において、サイクルカウントCYC≠1でない場合、つまり、サイクルカウントCYC=1の場合であって、図8の条件1が「偽」の場合>
【0294】
外部リードイネーブルERDE=0とする。もし、外部バス開放要求レジスタ156=1ならば、後述のFREE共通論理を実行し、それ以外で、第2バス使用要求信号SBR=1ならば、後述のACCESS共通論理を実行し、さらにそれ以外の場合は、後述のIDLE共通論理を実行する。
【0295】
[STEALステートST4]
【0296】
(1)<サイクルカウントCYC≠1の場合>
【0297】
外部リードイネーブル信号ERDE=1とし、サイクルカウントCYCを1つデクリメントする。
【0298】
(2)<サイクルカウントCYC≠1でない場合、つまりサイクルカウントCYC=1の場合>
【0299】
(2−1)外部リードイネーブル信号ERDE=0、外部アドレスEAD[26:0]=外部アドレス保持値EADSV[26:0]、第1領域セレクト信号ASSEL1=第1領域セレクト保持値FSSV、第2領域セレクト信号ASSEL2=第2領域セレクト保持値SSSV、第2バス幅信号SBW=第2バス幅保持値SBWSV、とする。
【0300】
(2−2)もし、第2バス幅保持値SBWSV=1ならば、上位バイトイネーブル信号UPBE=0とし、それ以外ならば(つまり、第2バス保持値SBWSV=0ならば)、上位バイトイネーブル信号UPBEに外部アドレス保持値EADSV[0]を反転した値を代入する。
【0301】
(2−3)サイクルカウントCYC=ランダムアクセスサイクル数保持値RACSV[2:0]、リード許可信号REGR[8:0]=リード許可保持値REGRSV[8:0]、ステートをREADステートST3とする。
【0302】
[IDLE共通論理]
【0303】
リード許可信号REGR[8:0]=0とし、ステートをIDLEステートST0とする。
【0304】
[FREE共通論理]
【0305】
外部アドレスEAD[26:0]=0x4000000、上位バイトイネーブル信号UPBE=1、第1領域セレクト信号ASSEL1=0、第2領域セレクト信号ASSEL2=0、サイクルカウントCYC=0、ステートをFREEステートST1とする。
【0306】
ここで、「0x4000000」は、リード/ライトいずれのアクセスの際にも使用されないアドレスである。サイクルカウントCYCが「0」ということは、1バスサイクルを8クロックサイクルとすることを表している。なお、下位バイトイネーブル信号LWBEは、外部アドレスEAD[0]と同じ挙動をとる。
【0307】
[ACCESS共通論理]
【0308】
(1)第2バス幅信号SBW=統一バス幅信号CBW、外部アドレスEAD[26:1]=統一アドレスCADR[26:1]、外部アドレスEAD[0]=統一下位バイトイネーブル信号CLWBE、上位バイトイネーブル信号UPBE=統一上位バイトイネーブル信号CUPBE、第1領域セレクト信号ASSEL1=統一第1領域セレクト信号CASEL1、第1領域セレクト保持値FSSV=統一第1領域セレクト信号CASEL1、第2領域セレクト信号ASSEL2=統一第2領域セレクト信号CASEL2、第2領域セレクト保持値SSSV=統一第2領域セレクト信号CASEL2、サイクルカウントCYC=統一ランダムアクセスサイクル数信号CRCY、ランダムアクセスサイクル数保持値RACSV=統一ランダムアクセスサイクル数信号CRCY、ページアクセスサイクル数保持値PACSV=統一ページアクセスサイクル数信号CPCY、及び、バイトカウントBYC=統一サイズ信号CSZ、とする。
【0309】
(2)<統一ライト要求信号CWRQ=1の場合>
【0310】
ライト受諾信号WRAC[8:0]=バスマスタセレクト信号BMSEL[8:0]、リード許可信号REGR[8:0]=0b000000000、ライトデータ保持値WDSV[15:0]=統一ライトデータCWD[15:0]、及び、ステートをWRITEステートST2とする。
【0311】
(3)<統一ライト要求信号CWRQ=1以外の場合、つまり統一ライト要求信号CWRQ=0の場合>
【0312】
リード許可信号REGR[8:0]=バスマスタセレクト信号BMSEL[8:0]、及びステートをREADステートST3とする。
【0313】
[リード許可信号生成論理]
【0314】
(1)<サイクルカウンタCYC=1の場合>
【0315】
(1−1)<第2バス幅信号SBW=1(16ビットデータバス幅を意味)の場合>
【0316】
下位バイトリード許可信号LWRG[8:0]=リード許可信号REGR[8:0]、及び、上位バイトリード許可信号UPRG[8:0]=リード許可信号REGR[8:0]、とする。
【0317】
(1−2)<第2バス幅信号SBW=1以外の場合、つまり第2バス幅信号SBW=0(8ビットデータバス幅を意味)の場合>
【0318】
外部アドレスEAD[0]=0の場合は、下位バイトリード許可信号LWRG[8:0]=リード許可信号REGR[8:0]、及び上位バイトリード許可信号UPRG[8:0]=0b000000000、とする。
【0319】
外部アドレスEAD[0]=0以外の場合、つまり外部アドレスEAD[0]=1の場合は、下位バイトリード許可信号LWRG[8:0]=0b000000000、及び上位バイトリード許可信号UPRG[8:0]=リード許可信号REGR[8:0]、とする。
【0320】
(2)<サイクルカウンタCYC=1以外の場合>
【0321】
下位バイトリード許可信号LWRG[8:0]=0b000000000、及び上位バイトリード許可信号UPRG[8:0]=0b000000000、とする。
【0322】
(3)リード許可信号REGR[0]〜REGR[8]は、それぞれ、ウェーブデータ・リード許可信号WARG、エンべロープデータ・リード許可信号EVRG、ビットマップデータ・リード許可信号BMRG、キャラクタデータ・リード許可信号CDRG、キャラクタヘッダ・リード許可信号CHRG、ピクセルプロッタ・リード許可信号PPRG、DMAソース・リード許可信号DSRG、データアクセス・リード許可信号DARG、及び命令フェッチ・リード許可信号IFRGとされる。
【0323】
(4)下位バイトリード許可信号LWRG[0]〜LWRG[8]は、それぞれ、ウェーブデータ・下位バイトリード許可信号WALRG、エンべロープデータ・下位バイトリード許可信号EVLRG、ビットマップデータ・下位バイトリード許可信号BMLRG、キャラクタデータ・下位バイトリード許可信号CDLRG、キャラクタヘッダ・下位バイトリード許可信号CHLRG、ピクセルプロッタ・下位バイトリード許可信号PPLRG、DMAソース・下位バイトリード許可信号DSLRG、データアクセス・下位バイトリード許可信号DALRG、及び命令フェッチ・下位バイトリード許可信号IFLRGとされる。
【0324】
(5)上位バイトリード許可信号UPRG[0]〜UPRG[8]は、それぞれ、ウェーブデータ・上位バイトリード許可信号WAURG、エンべロープデータ・上位バイトリード許可信号EVURG、ビットマップデータ・上位バイトリード許可信号BMURG、キャラクタデータ・上位バイトリード許可信号CDURG、キャラクタヘッダ・上位バイトリード許可信号CHURG、ピクセルプロッタ・上位バイトリード許可信号PPURG、DMAソース・上位バイトリード許可信号DSURG、データアクセス・上位バイトリード許可信号DAURG、及び命令フェッチ・上位バイトリード許可信号IFURGとされる。
【0325】
[ライト受諾信号生成論理]
【0326】
ライト受諾信号WRAC[5]がピクセルプロッタ・ライト受諾信号PPWGRとされ、ライト受諾WRAC[7]がデータアクセス・ライト受諾信号DAWGRとされる。
【0327】
さて、以上のように、本実施の形態によれば、バスマスタが要求したサイズ(図5参照)に応じた数のバスサイクルが与えられるので、バスマスタは、データを連続してリード/ライトできる。このように連続してバスサイクルを取得できるというメリットをバスマスタに与えながらも、バスマスタが要求したサイズに応じた数のバスサイクルを単位として、必ず調停動作が行われるので、バスの使用効率を高めることができ、かつ、バスマスタからのバス使用要求に対する応答のレイテンシを可能な限り小さくできる。
【0328】
しかも、リードまたはライトを行うデータのサイズを示すサイズ信号IFSZ,CHSZ,CDSZ,PPSZ,DSSZはバスマスタが発行するので、データ転送に必要充分なサイズを示すサイズ信号の発行が可能であり、そうすると、ステートマシン155はバスサイクルの最適な数を設定できる。従って、この場合、バス使用効率のより一層の向上とバス使用要求に対する応答のレイテンシのより一層の短縮化を図ることができる。
【0329】
また、本実施の形態では、ステートマシン155は、プライオリティデコーダ142が選択したバスマスタに対して、次式(以下、最適バスサイクル数算出式、と呼ぶ。)で示されるNバスサイクル分のバス使用許可を与える。
【0330】
N=((P+S−1)/W)−(P/W)+1
【0331】
ただし、「P」は、バスマスタがバス使用要求を発行する際に発行するアドレス情報であって、リードまたはライト対象の先頭バイトをバイトアドレスで指し示すアドレス情報である。この「P」は、図7の統一アドレスCADRに相当する。
【0332】
「S」は、バスマスタがリードまたはライトするデータのサイズ情報であって、バイト数で表される。この「S」は、図7の統一サイズ信号CSZに相当する。このように、本実施の形態では、バスマスタは、リードまたはライトするデータのサイズをバイト数で要求する。
【0333】
「W」は、アドレス情報Pが指し示す領域のデータバス幅のバイト数を示す。この「W」は、図7の統一バス幅信号CBWが示すデータバスのバイト数に相当する。すなわち、統一バス幅信号CBWが「0」であれば、データバスのバス幅は1バイト(=8ビット)であり、統一バス幅信号CBWが「1」であれば、データバスのバス幅は2バイト(=16ビット)である。
【0334】
アドレス情報Pは、リード/ライトするデータの始端が第0バイト目から何バイト目にあたるかを示す。従って、(P+S−1)は、リード/ライトするデータの終端が第0バイト目から何バイト目にあたるかを示す。
【0335】
アドレス情報Pが指し示す領域のデータバス幅のバイト数Wは、接続される外部メモリ45の1ワードを構成するバイト数を示すため、((P+S−1)/W)は、リード/ライトするデータの終端が第0ワード目から何ワード目にあたるかを示し、(P/W)は、リード/ライトするデータの始端が第0ワード目から何ワード目にあたるかを示す。よって、Nは、換言すれば、リード/ライトするデータのワード数を示す。従って、1ワードのデータを1バスサイクルで転送することを想定すれば、Nが、データ転送に必要なバスサイクルの数を示すことを容易に理解できる。
【0336】
さらに、本実施の形態では、CPU1は、第0領域バス幅レジスタ160、第1領域バス幅レジスタ161、及び第2領域バス幅レジスタ162に値を設定することで、データバス幅のバイト数Wを、領域(第2バス第0領域、第2バス第1領域、第2バス第2領域:図6参照)ごとに設定することができる。
【0337】
そして、アドレスデコーダ149は、プライオリティデコーダ142が選択したバスマスタが発行したアドレス情報P、つまり統一アドレスCADRが、3つの領域(第2バス第0領域、第2バス第1領域、第2バス第2領域)のいずれに相当するかを判別し、マルチプレクサ151は、この判別結果に従って、3つの領域のいずれかのデータバス幅を選択し、統一バス幅CBWとして、ステートマシン155に与える。
【0338】
ステートマシン155は、統一バス幅CBWが示すデータバスのバイト数Wに基づいて、最適バスサイクル数算出式からNを算出する。
【0339】
従って、アドレス空間が複数の領域に分割され、かつそれぞれの領域が異なるデータバス幅を有している場合においても、ステートマシン155は、アクセス対象となる領域のデータバス幅に合わせて、必要充分な数のバスサイクルをバスマスタに与えることができる。
【0340】
さらに、本実施の形態では、ステートマシン155は、サウンドプロセッサ7以外のバスマスタが、第2バス33を使用している時に、サウンドプロセッサ7からのバス使用要求(ウェーブデータ・バス要求WABRあるいはエンベロープデータ・バス要求EVBR)があった場合、第2バス33を使用しているバスマスタの残りのバスサイクル数が所定値以上であることを条件として、そのバスマスタのバス使用を中断させ、サウンドプロセッサ7にバス使用許可を与える。
【0341】
従って、バスマスタに連続でバスサイクルを取得することによるメリットを与えながらも、サウンドプロセッサ7のような緊急度の高いバスマスタの迅速処理を図ることができる。詳しくは次の通りである。バスマスタに連続したバスサイクルの使用許可を与えることは、バス全体のデータスループットを高める効果を生むが、バスマスタがバス使用要求を発行してからバス使用許可を得るまでのレイテンシは大きくなる。バス使用要求からバス使用許可を得るまでを所定の時間内に完了しなければならない緊急度の高いバスマスタが存在する場合には、このようなレイテンシの増大はシステムの動作に問題を引き起こす場合がある。そこで、緊急度の高いバスマスタからのバス使用要求があり、かつ現在バスを使用しているバスマスタの残余のバスサイクル数が所定値以上の場合に、緊急度の高いバスマスタのバス使用を割り込ませることにより、スループットの増大を図りながらも、レイテンシ増大のデメリットを回避することができる。
【0342】
このように、本実施の形態では、サウンドプロセッサ7のバス使用要求が優先されるので、オーディオ信号AUの出力に不連続が発生することを防止できる。
【0343】
さらに、本実施の形態では、第1バスアービタ13は、第1バス使用要求要因ごとに調停を行い(図2参照)、第2バスアービタ14は、第2バス使用要求要因ごとに調停を行う(図3参照)。従って、次の効果を奏する。
【0344】
バスマスタが複数のバス使用要求要因を有している場合において、バスアービタがバスマスタごとの調停のみを行う場合、各バスマスタ内にバス使用要求の調停を行う回路が必要になり、全体の回路規模が増加する。また、回路構成によっては、バス使用要求要因の調停のための時間的オーバーヘッドが発生する。本実施の形態のように、バスアービタ(第1バスアービタ13、第2バスアービタ14)がバス使用要求要因ごとの調停を行う場合、そのようなデメリットが発生しない。
【0345】
さらに、本実施の形態では、複数のバスマスタは、第2バス使用要求要因ごとに、異なるサイズを示すサイズ信号IFSZ,CDSZ,PPSZ,DSSZを発行可能である(図5参照)。第1バス使用要求要因についても同様である。
【0346】
このように、バス使用要求要因ごとに、必要とするデータサイズに合わせて異なるサイズを示すサイズ信号を発行できるため、無駄なデータアクセスが減り、より一層の、バス使用効率の向上とバス使用要求に対する応答のレイテンシの短縮化を図ることができる。
【0347】
さらに、本実施の形態では、複数の優先順位情報セット(第1バスアービタ13に関しては、図2の優先順位情報番号0〜3のいずれかを保持する16個の優先順位レジスタ、第2バスアービタ14に関しては、図3の優先順位情報番号0〜3のいずれかを保持する8個の優先順位レジスタ200〜207)を順次的かつ巡回的に選択することにより、バスマスタへのバスサイクルの配分比率を制御できる。
【0348】
さらに、本実施の形態では、CPU1が、レジスタ170〜172,180〜182に値を書き込むことで、1バスサイクル期間を設定できるため、回路自体の変更を伴うことなく、各領域(第2バス第0領域、第2バス第1領域、第2バス第2領域)に対する1バスサイクルの期間長を第2バス33に接続される外部メモリ45の速度に応じて最適化できる。また、CPU1により1バスサイクル期間長を動的に変更することで、動作モードに応じた消費電力節減の効果も期待できる。
【0349】
また、このようにして、CPU1が、ランダムアクセスサイクル数及びページアクセスサイクル数を動的に設定できるため、回路自体の変更を伴うことなく、1バスサイクル期間を示すクロックサイクル数を、第2バス33に接続される外部メモリ45のランダムアクセス速度およびページモード・アクセスでのページアクセス速度に応じて最適化できる。
【0350】
上記の通り、本実施の形態では、第0領域ランダムアクセスサイクル数レジスタ170、第1領域ランダムアクセスサイクル数レジスタ171、第2領域ランダムアクセスサイクル数レジスタ172、第0領域ページアクセスサイクル数レジスタ180、第1領域ページアクセスサイクル数レジスタ181、及び第2領域ページアクセスサイクル数レジスタ182を設けることにより、CPU1が、夫々の領域ごとに、ランダムアクセスサイクル数及びページアクセスサイクル数を動的に設定可能としている。しかし、ハードウェア量を小さくする為に、ランダムアクセスサイクル数及びページアクセスサイクル数をハードウェアに固定して、これらのランダムアクセスサイクル数レジスタ170〜172と、ページアクセスサイクル数レジスタ180〜182を省略することもできる。さらに、本実施の形態では、ステートマシン155は、バス使用許可を得たバスマスタに与えられるバスサイクル数が「1」の場合には、バスサイクルとして、統一ランダムアクセスサイクル数CRCYを採用する。
【0351】
ここで、バスマスタに与えられるバスサイクル数が「1」の場合とは、最適バスサイクル数算出式で算出したNが1の場合であり、例えば、統一バス幅信号CBWが示すバス幅が2バイトの場合において、統一サイズ信号CSZが示すサイズが2バイトのとき、あるいは、統一バス幅信号CBWが示すバス幅が1バイトの場合において、統一サイズ信号CSZが示すサイズが1バイトのとき、等である。
【0352】
一方、ステートマシン155は、バス使用許可を得たバスマスタに与えられるバスサイクル数が「2」以上の場合には、先頭のバスサイクルでは、バスサイクルとして統一ランダムアクセスサイクル数CRCYを採用し、先頭以外のバスサイクルでは、外部アドレスEADが直前のバスサイクルの外部アドレスEADと同じページを指し示していれば、統一ページアクセスサイクル数CPCYを採用し、外部アドレスEADが直前のバスサイクルの外部アドレスEADと異なるページを指し示していれば、統一ランダムアクセスサイクル数CRCYを採用する。
【0353】
ここで、バスマスタに与えられるバスサイクル数が「2」以上の場合とは、最適バスサイクル数算出式で算出したNが2以上の場合であり、例えば、統一バス幅信号CBWが示すバス幅が2バイトの場合において、統一サイズ信号CSZが示すサイズが4バイトのとき、あるいは、統一バス幅信号CBWが示すバス幅が1バイトの場合において、統一サイズ信号CSZが示すサイズが2バイトのとき、等である。
【0354】
以上により、ページモード・アクセスを備える外部メモリ45が第2バス33に接続されている場合に、バスサイクル数を最適化できる。
【0355】
さらに、本実施の形態では、CPU1が、レジスタ190〜192に値を設定することで、ページサイズを動的に設定できる。このため、回路自体の変更を伴うことなく、接続される外部メモリ45のページサイズに合致させることができる。
【0356】
上記の通り、本実施の形態では、第0領域ページサイズレジスタ190、第1領域ページサイズレジスタ191、及び第2領域ページサイズレジスタ192を設けることにより、CPU1が、夫々の領域ごとに、ページサイズを動的に設定可能としている。しかし、ハードウェア量を小さくする為に、夫々の領域ごとのページサイズをハードウェアに固定して、これらのページサイズレジスタ190〜192を省略することもできる。
【0357】
さらに、本実施の形態では、第2バス33のアドレス空間は3つの領域に分割され(図6参照)、データバス幅のバイト数W、ランダムアクセスサイクル数、ページアクセスサイクル数、及び、ページサイズは、レジスタ160〜162,170〜172,180〜182,190〜192に値を設定することで、3つの領域ごとに設定可能である。そして、アドレスデコーダ149は、プライオリティデコーダ142が選択したバスマスタが発行したアドレス情報P、つまり統一アドレスCADRが、3つの領域(第2バス第0領域、第2バス第1領域、第2バス第2領域)のいずれに相当するかを判別し、マルチプレクサ151〜153及びデコーダ154は、この判別結果に従って、3つの領域のいずれかを選択し、統一バス幅信号CBW、統一ランダムアクセスサイクル数信号CRCY、統一ページアクセスサイクル数信号CPCY、及び統一ページ境界信号CPBを、ステートマシン155に与える。
【0358】
ステートマシン155は、統一バス幅CBWが示すデータバスのバイト数Wに基づいて、最適バスサイクル数算出式からNを算出する。
【0359】
従って、アドレス空間が複数の領域に分割され、領域ごとに異なるランダムアクセス速度、ページアクセス速度およびデータバス幅を持つ外部メモリ45が接続された場合において、第2バスアービタ14が、調停動作ごとに、アクセス対象の領域の設定に基づいて、ランダムアクセスサイクル数、ページアクセスサイクル数、およびデータバス幅を切り替えることにより、バスサイクル期間長およびバスマスタに与えるバスサイクル数が最適化される。
【0360】
前述した実施例の説明は、例示説明の目的のために提示された。それは、説明された厳密な形式に発明を限定することを意図しておらず、上記教示を踏まえた変形が可能である。実施例は、発明の原理を最も明瞭に説明するために選択され、それによって当業者は、その現実的な適用が可能になり、意図された特定使用に向けられた様々な変形と形態で発明を最も効果的に利用することができる。

【特許請求の範囲】
【請求項1】
バスと、
前記バスに接続される複数のバスマスタと、
前記複数のバスマスタからの複数のバス使用要求を調停して、1つのバスマスタに対して、バス使用許可を与えるバス調停手段と、を備え、
前記バスマスタは、前記バス調停手段にバス使用要求を発行する際に、リードまたはライトを行うデータのサイズを示すサイズ情報を発行し、
前記バス調停手段は、
前記複数のバスマスタの優先順位を定めた優先序列情報に従って、バス使用要求を行った単数又は複数の前記バスマスタから、1つの前記バスマスタを選択する優先制御手段と、
前記優先制御手段により選択された前記バスマスタが発行した前記サイズ情報に応じた1または複数のバスサイクルの間、前記優先制御手段が選択した前記バスマスタに対して、バス使用許可を与えるバスアクセス制御手段と、を含み、
前記優先制御手段は、前記サイズ情報に応じた1または複数のバスサイクルを単位として、前記選択を行う、データ処理装置。
【請求項2】
複数のバスマスタからの複数のバス使用要求を調停して、1つのバスマスタに対して、バス使用許可を与えるバス調停装置であって、
前記複数のバスマスタの優先順位を定めた優先序列情報に従って、バス使用要求を行った単数又は複数の前記バスマスタから、1つの前記バスマスタを選択する優先制御手段と、
前記優先制御手段により選択された前記バスマスタが発行したサイズ情報に応じた1または複数のバスサイクルの間、前記優先制御手段が選択した前記バスマスタに対して、バス使用許可を与えるバスアクセス制御手段と、を備え、
前記優先制御手段は、前記サイズ情報に応じた1または複数のバスサイクルを単位として、前記選択を行い、
前記サイズ情報は、前記バスマスタがリードまたはライトを行うデータのサイズを示す情報である、バス調停装置。
【請求項3】
前記バスアクセス制御手段は、前記複数のバスマスタのうちの所定のバスマスタ(以下、割込みバスマスタ、という)以外のバスマスタが、前記バスを使用している時に、前記割込みバスマスタからのバス使用要求があった場合、前記バスを使用している前記バスマスタの残りのバスサイクル数が所定値以上であることを条件として、そのバスマスタのバス使用を中断させ、前記割込みバスマスタにバス使用許可を与える、請求項2に記載のバス調停装置。
【請求項4】
前記優先序列情報は、前記複数のバスマスタが有する複数のバス使用要求要因の優先順位を定めており、
前記優先制御手段は、前記優先序列情報に従って、バス使用要求を行った単数又は複数の前記バスマスタが有する前記バス使用要求要因の中から、1つのバス使用要求要因を選択し、
前記バスアクセス制御手段は、前記優先制御手段により選択された前記バス使用要求要因に対応する前記バスマスタが発行している前記サイズ情報に応じた1または複数のバスサイクルの間、そのバスマスタに対して、バス使用許可を与える、請求項2又は3記載のバス調停装置。
【請求項5】
前記バスアクセス制御手段には、前記バス使用要求要因ごとに異なる値の前記サイズ情報が与えられる、請求項4記載のバス調停装置。
【請求項6】
前記優先序列情報として複数の優先順位情報セットが用意され、
前記優先制御手段は、前記バスマスタにバス使用許可を与える調停動作ごとに、前記複数の優先順位情報セットから前記優先順位情報セットを順次的かつ巡回的に選択し、選択された前記優先順位情報セットに基づいて、バス使用許可を与えるバスマスタを選択する、請求項2から5のいずれかに記載のバス調停装置。
【請求項7】
前記バスアクセス制御手段は、1バスサイクル期間の長さを示すバスサイクル期間長情報を格納するバスサイクル期間長情報格納手段を含み、前記バスサイクル期間長情報格納手段に格納された前記バスサイクル期間長情報に基づいて、バスサイクル期間の長さを制御する、請求項2から6のいずれかに記載のバス調停装置。
【請求項8】
前記バスサイクル期間長情報は、ハードウェアでの固定した設定又は前記バスマスタによる動的な設定、が可能である、請求項7記載のバス調停装置。
【請求項9】
前記バスのアドレス空間は複数のデータブロックに分割され、
前記バスサイクル期間長情報は、第1のバスサイクル期間長情報と第2のバスサイクル期間長情報とを含み、
前記バスアクセス制御手段は、
バス使用許可を得た前記バスマスタが使用するバスサイクル数が「1」の場合には、前記第1のバスサイクル期間長情報を選択し、
バス使用許可を得た前記バスマスタが使用するバスサイクル数が「2」以上の場合には、先頭のバスサイクルでは、前記第1のバスサイクル期間長情報を選択し、先頭以外のバスサイクルでは、前記アドレス情報が直前のバスサイクルの前記アドレス情報と同じ前記データブロックを指し示していれば、前記第2のバスサイクル期間長情報を選択し、前記アドレス情報が直前のバスサイクルの前記アドレス情報と異なる前記データブロックを指し示していれば、前記第1のバスサイクル期間長情報を選択する、請求項7又は8記載のバス調停装置。
【請求項10】
前記データブロックのサイズは、ハードウェアでの固定した設定又は前記バスマスタによる動的な設定、が可能である、請求項9記載のバス調停装置。
【請求項11】
前記第1のバスサイクル期間長情報および前記第2のバスサイクル期間長情報は、ハードウェアでの固定した設定又は前記バスマスタによる動的な設定、が可能である、請求項9又は10記載のバス調停装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図7】
image rotate

【図8】
image rotate

【図6】
image rotate


【公開番号】特開2011−14172(P2011−14172A)
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願番号】特願2010−234297(P2010−234297)
【出願日】平成22年10月19日(2010.10.19)
【分割の表示】特願2006−549209(P2006−549209)の分割
【原出願日】平成17年5月27日(2005.5.27)
【出願人】(396025861)新世代株式会社 (138)
【Fターム(参考)】