JP2004070711A - 外部バスのバス幅設定方法 - Google Patents

外部バスのバス幅設定方法 Download PDF

Info

Publication number
JP2004070711A
JP2004070711A JP2002229969A JP2002229969A JP2004070711A JP 2004070711 A JP2004070711 A JP 2004070711A JP 2002229969 A JP2002229969 A JP 2002229969A JP 2002229969 A JP2002229969 A JP 2002229969A JP 2004070711 A JP2004070711 A JP 2004070711A
Authority
JP
Japan
Prior art keywords
bus
bus width
command
width
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002229969A
Other languages
English (en)
Inventor
Izumi Kusutaki
楠滝 泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2002229969A priority Critical patent/JP2004070711A/ja
Publication of JP2004070711A publication Critical patent/JP2004070711A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】サポートできるバス幅が異なるボードを外部バスに接続したシステムにおいて、各ボードがサポートできるバス幅を認識してバス幅を設定する。
【解決手段】外部バス30に装脱着可能なボード20A,20B,20Cを接続し、機能拡張することが可能なシステムにおけるバス幅設定方法において、接続されるボードのサポートできるバス幅が異なる場合は、イニシエータ10があらかじめ決められた全てのボードが共通してサポート可能なバス幅で特別なバス幅要求コマンドを発行し、各ボードからサポート可能なバス幅を収集し、各ボードが共通してサポート可能なバス幅を認識し、このバス幅を特別なバス幅設定コマンドを発行して各ボードに設定する。
【選択図】    図1

Description

【0001】
【発明の属する技術分野】
本発明は、外部バスを有するデータ処理装置におけるバス幅設定方法に関する。
【0002】
【従来技術】
近年、プリンタコントローラボードなどにおいて、CPU、そのCPUアクセスに必要なROM、RAMを接続するシステムバス以外に、そのシステムバスと接続され、装脱着可能なネットワークボードや他のI/Fボードを接続する例えばPCIバスのような外部バスを設け、機能拡張するシステム、すなわち、外部バスに装脱着可能なボードを接続し機能拡張することが可能なシステムがある。
【0003】
この外部バスシステムにおいては、バス幅は通常固定されており、32bitのバス幅の場合、接続される全てのボードは32bitのバス幅にする必要がある。拡張モードとして、異なるバス幅もサポートできるようになっているものもあるが、この場合バス幅を認識する為の信号が必要で、端子を追加したり、コネクタを変更したりしている。
【0004】
【発明が解決しようとする課題】
従来技術では、図14のように、バスイニシエータ50に、外部バス70を介して複数のクライアントA60A〜クライアントC60Cからなるオプションを接続する場合、それぞれのクライアントに対応して複数個のバス幅認識信号(BUS_SIZE)が必要であり、イニシエータ50側では、通常ASICなどの端子で構成することから、ASICのピン数が増加し、コストアップになるなどの問題があった。
【0005】
上記した従来技術の問題を解決するために、特開平11−175396号公報には、システムバスにおいて、スタートアドレスからのROM領域をシステム最小のバス幅に固定し、他のメモリ領域をプログラマブルにバス幅設定して異なったバス幅をサポートする提案がなされている。しかし、この技術は、バス幅を設定するために、予め、メモリ内の1部にアクセス禁止領域を設ける必要があり、無駄なメモリを消費するという問題を有している。
【0006】
したがって、本発明は、上記課題を解決し、外部バスに装脱着可能なボードを接続し、機能拡張することが可能なシステムにおいて、接続されるボードのサポートできるバス幅が異なる場合であっても、各ボードのサポートできるバス幅を認識してバス幅を設定することができるバス幅設定方法を提供することを目的とする。
【0007】
【課題を解決するための手段】
上記課題を解決するために、本発明は、外部バスに装脱着可能なボードを接続し、機能拡張することが可能なシステムにおけるバス幅設定方法おいて、接続されるボードのサポートできるバス幅が異なる場合は、あらかじめ決められた共通でサポートできるバス幅で特別なバス幅要求コマンドを発行することにより、各ボードのサポートできるバス幅を認識し、特別なバス幅設定コマンドを発行し、バス幅を設定するようにした。このことにより、バス幅を認識するための認識信号用の端子数の増加を防ぐことができ、無駄なメモリを消費することもなくなる。
【0008】
【発明の実施の形態】
本発明が適用される外部バスに装脱着可能なボードを接続し機能拡張することが可能な外部バスシステムの構成の概念を、図1を用いて説明する。この図において、バスイニシエータ10と、複数のクライアントA20A〜クライアントC20Cが、外部バス30によって接続されている。外部バス30は32bit幅としている。
【0009】
バスイニシエータ10は、外部バスの管理を行う働きを有しており、CLKINで入力されたクロックから外部バスの同期クロック(CLK)をクライアントA20A〜クライアントC20Cに出力し、外部バス30はこのクロックと同期して、データの送受信を行う。
【0010】
さらに、バスイニシエータ10では、各クライアントがバスマスタになることを要求するBUSREQ_(バスリクエスト)信号をアサートした時に、内部のバスアービタ回路により、クライアントがバスマスタになることを許可するBUSACK_(バスアクノリッジ)信号を出力し、クライアントがバスマスタになるようなバス調停機能をもっている。
【0011】
さらに、バスイニシエータ10は、特別なバス幅要求コマンド、特別なバス幅設定コマンドの発行元として働く。
【0012】
【実施例】
図2、図3を用いて、図1の概念図に従った具体的な32bitアクセス時の動作タイミングを説明する。図2は、クライアントA20AからクライアントB20Bへのライトサイクルのタイミングである。
【0013】
クライアントA20Aがバスマスタになることを要求するBUSREQ_信号をCLKサイクルT1でアサートする。この信号により、イニシエータ10は、CLKサイクルT2でBUSACK_信号をアサートし、クライアントA20Aがバスマスタになることを許可する。
【0014】
バスマスタになったクライアントA20Aは、バスマスタからのアクセスを示すIRDY_(イニシエータレディ)信号をCLKサイクルT3でアサートし、同時にA/DBUS(アドレス/データバス)にアドレス(Address)を送信するとともに、C/BE(コマンド/バイトイネーブル)にライトコマンド(WRITE)を送信する。
【0015】
クライアントB20BまたはクライアントC20Cは、アドレスが自分のアクセス領域であった場合、自分のアクセスであることを示すために、DEVSEL_(デバイスセレクト)をCLKサイクルT4でアサートする。この例では、クライアントB20Bのアドレスが選択されているとする。
【0016】
バスマスタ20Aは、DEVSEL_がアサートされることによって送信先が存在することを認識し、CLKサイクルT5でA/DBUSをアドレス(Address)からデータ(DATA0)に切り換えて送信するとともに、C/BEに32bitのどのバイトが有効データであるかを示すバイトイネーブル(BE0)を送信する。例えばBEが“1000”の場合、32bit内のD31〜D24が有効であることを示す。BEが“1100”の場合、32bit内のD31〜D16が有効であることを示す。つまり、BE4bitがバス32bitのバイト毎に対応している。
【0017】
ターゲット20Bは、CLKサイクルT5でデータ受信する準備が整っていることを示すTRDY_(ターゲットレディ)をアサートし、CLKサイクルT6でデータ(DATA0)を取り込む。このときターゲット20Bは、同時に読み込んだバイトイネーブル(BE0)によって、D0〜D31のどのデータが有効かを判断する。バスマスタ20Aは、CLKサイクルT6で次のデータ(DATA1)を送信する。ターゲット20Bは、CLKサイクルT7でデータ(DATA1)を取り込む。つまり、ターゲット20Bは、TRDY_をアサートしたクロックの立ち上がりでデータ(DATA1)を取り込む。
【0018】
TRDY_をデアサートした時はデータが取り込めないことを示し、バスマスタ20Aは、TRDY_がアサートされるまでデータを保持する。CLKサイクルT7ではTRDY_がデアサートされているため、データ(DATA2)は保持されている。ターゲット20Bでデータを取り込む準備ができると、CLKサイクルT8で再びTRDY_がアサートされ、CLKサイクルT9でデータ(DATA2)を取り込む。
【0019】
バスマスタ20Aは、データ転送が終了することを示すために、転送するデータ数があと1個になった時点で、IRDY_をデアサートする。ターゲット20Bは、最後の転送を受け取ったあとCLKサイクルT10でTRDY_をデアサートするとともに、バスを開放するために、BUSREQ_をデアサートする。イニシエータ10では、BUSREQ_がデアサートされるとバス開放するために、CLKサイクルT11でBUSACK_信号をデアサートし、転送サイクルが終了する。
【0020】
図3を用いて、クライアントA20AからクライアントB20Bへのリードアクセスの動作を説明する。クライアントA20Aがバスマスタになることを要求するBUSREQ_信号をCLKサイクルT1でアサートする。この信号により、イニシエータ10は、CLKサイクルT2でBUSACK_信号をアサートし、クライアントA20Aがバスマスタになることを許可する。
【0021】
バスマスタになったクライアントA20Aは、バスマスタからのアクセスを示すIRDY_(イニシエータレディ)信号をCLKサイクルT3でアサートし、同時にA/DBUS(アドレス/データバス)にアドレス(Address)を送信するとともに、C/BE(コマンド/バイトイネーブル)にリードコマンド(READ)を送信する。
【0022】
クライアントBまたはクライアントCは、アドレスが自分のアクセス領域であった場合、自分のアクセスであることを示すために、DEVSEL_(デバイスセレクト)をCLKサイクルT4でアサートする。この例では、クライアントB20Bのアドレスが選択されているとする。
【0023】
ターゲット20Bは、リードであることを認識すると、A/DBUSの入力と出力を切り替えるので、切り換え期間として、CLKサイクルT5ではA/DBUSをハイインピーダンス状態にする。ターゲット20Bは、リードであることを認識するとCLKサイクルT6でデータ送信する準備が整っていることを示すTRDY_をアサートする。ターゲット20Bは、対応するデータをCLKサイクルT6でA/DBUSに送信する。
【0024】
バスマスタ20Aは、DEVSEL_がアサートされることによって読出先が存在することを認識し、CLKサイクルT7でA/DBUSをアドレス(Address)からデータ(DATA0)に切り換えて読み込むとともに、C/BEから32bitのどのバイトが有効データであるかを示すバイトイネーブル(BE0)を受信する。
【0025】
アドレスは自動的にインクリメントされるので、ターゲット20Bは、CLKサイクルT7でデータ(DATA1)を送信する。バスマスタ20Aは、CLKサイクルT7の立ちあがりでデータ(DATA0)をA/DBUSから取り込む。
【0026】
バスマスタ20Aは、CLKサイクルT8でデータ(DATA1)を取り込む。
【0027】
ターゲット20BがTRDY_をデアサートした時はデータを読み出せないことを示し、バスマスタ20Aは、TRDY_がアサートされるまでデータ読出しで待機する。CLKサイクルT8ではTRDY_がデアサートされているため、データ読出しで待機している。ターゲット20Bでデータを読み出す準備ができると、CLKサイクルT9で再びTRDY_がアサートされ、バスマスタ20Aは、CLKサイクルT10でデータ(DATA2)を取り込む。
【0028】
バスマスタ20Aは、データ読出しが終了することを示すために、読み出すデータ数があと1個になった時点で、IRDY_をデアサートする。ターゲット20Bは、最後のデータ(DATA3)を転送したあとCLKサイクルT11でTRDY_をデアサートするとともに、DEVSEL_をデアサートする。イニシエータ10では、DEVSEL_がデアサートされるとBUSREQ_をデアサートし、バス開放するために、CLKサイクルT12でBUSACK_信号をデアサートし、読出サイクルを終了する。
【0029】
この読出タイミングでは、バーストサイクルを示しており、アドレスは自動的にインクリメントされるので、アドレスは1回しか送信されない。
【0030】
図4、図5を用いて、各クライアントに共通して使用可能なバス幅であるバス幅16bitの例のアクセスタイミングを説明する。図4は、バス幅16bi時のライトサイクルであり、図5は、バス幅16bi時のリードサイクルである。このシステムは、32bitアクセスを基本としているが、使用するバス幅が16bitであることから、32bitデータを上位16bitと下位16bitに分けて転送する。また、バイトイネーブルも16bitであり、C/BEは2bitとなる。コマンドも4bitを基本としているが、C/BEが2bitのため、上位2bitと下位2bitに分けて転送する。
【0031】
クライアントA20Aがバスマスタになることを要求するBUSREQ_信号をCLKサイクルT1でアサートする。この信号により、イニシエータ10は、CLKサイクルT2でBUSACK_信号をアサートし、クライアントA20Aがバスマスタになることを許可する。
【0032】
バスマスタになったクライアントA20Aは、バスマスタからのアクセスを示すIRDY_(イニシエータレディ)信号をCLKサイクルT3でアサートし、同時にA/DBUS[15:0]にアドレスの上位16bit(AD[31:16])を送信するとともに、C/BE[1:0]にライトコマンド上位2bit(CMD[3:2]WRITE)を送信した後、CLKサイクルT4でA/DBUS[15:0]にアドレスの下位16bit(AD[15:0])を送信するとともに、C/BE[1:0]にライトコマンドの下位2bit(CMD[1:0]WRITE)を送信する。
【0033】
クライアントB20BまたはクライアントC20Cは、アドレスが自分のアクセス領域であるかを判断し、自分のアドレスであるときには、ターゲット20Bは、自分のアクセスであることを示すために、DEVSEL_をCLKサイクルT4でアサートし、CLKサイクルT6でIRDY_をアサートする。この例では、クライアントB20Bのアドレスが選択されているとする。
【0034】
ターゲット20BのIRDY_がアサートされたことを検知したバスマスタ20Aは、A/DBUS[15:0]にデータ(DATA0)を送信するとともに、C/BE[1:0]にBE0を送信する。以下、図2と同様にデータを上位16bitと下位16bitに分けて、16bitずつ送信する。
【0035】
図5に示すように、バス幅16bitにおけるリードサイクルも図3と同様にデータを上位16bitと下位16bitに分けて、16bitずつ送信する。よって、その具体的な説明を省略する。
【0036】
次に、図6を用いてコマンドについて説明する。通常アクセスとして、ライトコマンドは、C/BE:“0001”、発行元:バスマスタ、発行先:ターゲット、A/DBUS[31:0]:アドレス、データであり、リードコマンドは、C/BE:“0010”、発行元:バスマスタ、発行先:ターゲット、A/DBUS[31:0]:アドレス、データである。
【0037】
特別なコマンドとして、バス幅要求コマンド、バス幅送信コマンド、バス幅設定コマンドがある。バス幅要求コマンドは、C/BE:“1000”、発行元:イニシエータ、発行先:全てのクライアント、A/DBUS[31:0]:未定義である。バス幅要求コマンドは、クライアントがサポートしているバス幅をイニシエータに送信するように、イニシエータが要求するコマンドである。このコマンドは、16bitアクセスのみで行われ、イニシエータから全クライアントに同時に発行される。
【0038】
バス幅送信コマンドは、C/BE:“1001”、発行元:バスマスタ、発行先:イニシエータ、A/DBUS[31:0]:BUS_SIZEである。バス幅設定コマンドは、C/BE:“1110”、発行元:イニシエータ、発行先:全てのクライアント、A/DBUS[31:0]:BUS_WIDTHである。
【0039】
BUS_SIZE[0]は、8bitバスサポート、1:サポートであり、BUS_SIZE[1]は、16bitバスサポート、1:サポートであり、BUS_SIZE[2]は、32bitバスサポート、1:サポートであり、BUS_SIZE[32:3]は、0固定である。
【0040】
BUS_WIDTHは、BUS_WIDTH[1:0]で、“00”:8bitバス設定であり、“01”:16bitバス設定であり、“00”:32bitバス設定である。
【0041】
特にバス幅要求コマンド、バス幅送信コマンドは、この場合、各クライアントが共通してサポートしているバス幅を16bitとすると、16bitアクセスのみで行われる。共通サポートバス幅は、前もって決められる必要がある。
【0042】
バス幅要求コマンドのタイミングを、図7を用いて説明する。イニシエータ10は、CLKサイクルT1でC/BE「1:0」上に、コマンド“1000”の上位2bit“10”を送信し、CLKサイクルT2で下位2bit“00”を送信する。イニシエータ10はこの時、IRDY_をアサートするが、通常アクセスのようにクライアントからの確認信号であるDEVSEL_、TRDY_を認識しない。
【0043】
したがって、クライアントA20A〜クライアントC20Cは、IRDY_がアサートされたクロックの立ち上がり(CLKサイクルT2、T3)でコマンドを必ず取り込む必要がある。これにより、全クライアントは同時にバス幅要求コマンドを受信できる。このコマンドでは、A/DBUSのデータは意味をなさないので、規定していない。
【0044】
また、このバス幅要求コマンドをシステム起動中に発行する場合、その時のバス幅設定が共通してサポートできるバス幅とは限らないので、必ず後述するバス幅設定コマンドにより各クライアントを共通サポート幅に設定してから、発行する。これにより、各クライアントが、このバス幅要求コマンドを、必ず受信することが可能となる。
【0045】
バス幅送信コマンドのタイミングを、図8を用いて説明する。バス幅送信コマンドは、イニシエータ10から送信されたバス幅要求コマンドに応えて、各クライアントB0A〜20Cがサポートしているバス幅をイニシエータに送信する時に、バス幅情報とともに使用するコマンドである。このバス幅送信コマンドは、16bitアクセスのみで行われる。各クライアントは、このバス幅送信コマンドを送信する前に、BUSREQ_をアサートし、バスマスタになる必要がある。バスマスタになったクラアントは、C/BE上にCLKサイクルT1でバス幅送信コマンドの上位2bitを、CLKサイクルT2で下位2bitを送信する。
【0046】
図9を用いて、各クライアントが同時にBUSREQ_をアサートした時のタイミングを説明する。CLKサイクルT1でクライアントA〜Cから同時にアサートされたBUSREQ_に対して、イニシエータ10では、優先順位に従って、CLKサイクルT2で1つのクライアントAに対して、BUSACK_をアサートし、クライアントAにバスを開放する。バスマスタになったクライアントAは、CLKサイクルT3〜T5で図8に示したタイミング(図8CLKサイクルT1〜T3)でバス幅送信コマンドを送信する。バス幅送信コマンドを送信したクライアントAは、CLKサイクルT6でBUSREQ_をデアサートする。
【0047】
イニシエータは、クライアントAからのBUSREQ_がデアサートされたことを認識すると、次の優先順位のクライアントBにバスを開放するとともにCLKサイクルT7でクライアントAのBUSACK_をデアサートする。バスマスタになったクライアントBは、CLKサイクルT8〜T10でバス幅送信コマンドを送信し、送信後CLKサイクルT11でBUSREQ_をデアサートする。イニシエータはクライアントBからのBUSREQ_がデアサートされたことを認識すると、CLKサイクルT12で次の優先順位のクライアントCにバスを開放するとともにクライアントBのBUSACK_をデアサートする。同様にバスマスタになったクライアントCは、でバス幅送信コマンドを送信し、送信後CLKサイクルT16でBUSREQ_をデアサートする。
【0048】
これにより、イニシエータは、全てのクライアントからのバス幅情報を認識することができる。この時、各クライアントは、サポートしているバス幅を図6に示すようなビット対応させたデータとして送信する。例えば、あるクライアントが8bitバスと16bitバスをサポートしている場合は、BUS_SIZE[2:0]は“011”となり、A/DBUSには“00000003H”のデータが送信される。8bit、16bit、32bitをサポートしているクライアントは、BUS_size[2:0]が“111”となり、A/DBUSには“00000007H”が送信される。これにより、イニシエータは各クライアントがサポートしているバス幅を全て認識することができる。
【0049】
バス幅設定コマンドは、各クライアントからのバス幅情報から決定されたバス幅をイニシエータから全クライアントに設定するコマンドである。このバス幅設定コマンドは、イニシエータから全クライアントに送信し、16bit、32bit両方アクセス可能であり、図10が16bitアクセス時のタイミングを説明する図であり、図11が32bitアクセス時のタイミングを説明する図である。この時、バス幅設定コマンドは、図6に示すようなビット対応させたデータとして送信する。例えば、バス幅設定を16bitバス幅設定にした場合、BUS_WIDTH[1:0]は“01”になり、A/DBUSには、“00000001H”を転送する。バス幅設定を32bitにした場合は、BUS_WIDTH[1:0]は“10”になり、A/DBUSには、“00000002H”を転送する。
【0050】
バス幅の設定は、バス幅送信コマンドから得た各クライアントがサポートしているバス幅から決定し、例えば、全てのクライアントが32bitをサポートしていれば、バス幅を32bitに設定することによって、高速なアクセスが可能となる。
【0051】
このバス幅決定処理を、図12を用いて説明する。電源ONされると初期化ルーチンでこの処理が行われ、イニシエータは、最初にバス幅要求コマンドを送信する(S1)。次にクライアントからのバス幅送信コマンドを待ち(S2)、そのクライアントのサポートしているバス幅を取得する(S3)。クライントが複数ある場合は、全クライアントからのバス幅送信コマンドが送信されるまで、コマンドを待つ(S4)。全てのクライアントからバス幅送信コマンドを受信したら、この例の場合、32bitか16bitかの選択である為、全てのクライアントが32bitか判断し(S5)、32bitをサポートしていたら、バス幅設定コマンド(32bit)を送信する(S6)。1つでも32bitバス幅をサポートしていないクライアントがあれば、バス幅設定コマンド(16bit)を送信する(S7)。
【0052】
このフローによれば、あるクライントが16bitバス幅のみのサポートで、その他のクライントが16bit、32bit幅のサポートをしている場合、このシステムは16bitバス幅設定されるが、電源OFFして、16bitバス幅のみサポートしたクライアントだけが脱着されると、その他のクライアントは32bitサポートが可能となるので、システムは32bit幅が可能となり、次の電源ONで初期化ルーチンにより、バス幅は32bitに設定される。
【0053】
図13を用いて、イニシエータの構成を説明する。イニシエータ10は、CPU11と、ROM12と、RAM13と、外部バスブリッジ14と、システムバス15から構成される。外部バスブリッジ14は、リードバッファ141と、ライトバッファ142と、ターゲット制御回路143と、マスタ制御回路144と、アビータ回路145と、マルチプレクサ回路146とから構成される。
【0054】
CPU11は、プログラムROM12とワークRAM13とシステムバス15と接続されており、システムの制御を行う。また、外部バスブリッジ14とは、リードバッファ141、ライトバッファ142を通して、システムバス15と接続されている。
【0055】
リードバッファ141は、外部バス30からCPU11にデータ及びコマンドを送信する時のバッファであり、ライトバッファ142は、CPU11から外部バス30にデータ及びコマンドを送信する時のバッファである。
【0056】
マスタ制御回路144は、外部バス30のバスマスタ制御回路であり、ライトバッファ142にデータが貯えられると、マスタ制御回路144はデータ及びコマンドを送信するように、外部バス信号のタイミングを生成する。この時、アービタ回路145と接続され、アービタ回路145でバス使用権を調停し、イニシエータにバス使用権を開放された時にマスタ制御回路144がアクセスされる。
【0057】
ターゲット制御回路143では、外部バス30からイニシエータにデータ及びコマンドが送信されると、外部バス信号を制御し、データをリードバッファ141に貯え、CPU11にリード要求を行い、CPU11はデータ及びコマンドをリードする。
【0058】
マルチプレクサ回路146では、マスタ制御回路144とターゲット制御回路143で生成される外部バス信号をセレクトし、それぞれ接続する。
【0059】
【発明の効果】
本発明は、特別なバス幅要求コマンドを各クライアントに共通してサポート可能なバス幅で同時に発行することにより、各クライアント(ボード)のバス幅を認識することができるので、バス幅を認識するための信号を追加せずに、システムに収容されるクライアント(ボード)が共通してサポート可能な、最も高速なバス幅を設定することが可能となる。
【0060】
さらに、本発明によれば、各クライアント(ボード)にバス幅要求コマンドおよびバス幅設定コマンドを一斉に発行することができるので、バス幅設定処理にかかる時間を短縮することができる。
【0061】
本発明によれば、発行元からのバス幅要求コマンドおよびバス幅設定コマンドに対する発行先からの受信信号を認識する必要がないので、各クライアント(ボード)が同時にこれらのコマンドを認識することができる。
【0062】
本発明によれば、特別なバス幅要求コマンドは、あらかじめ決められた各クライアント(ボード)に共通してサポートできるバス幅でのみ発行されるので、接続されるボードが確実にバス幅要求コマンドを認識することができる。
【0063】
本発明によれば、各ボードがサポートする全てのバス幅を認識することができ、システム上一番効率の良いバス幅を設定することが可能となる。
【0064】
本発明によれば、共通のバス幅を、最大のバス幅に合せることにより、システムを高速に動作させることできる。
【0065】
本発明によれば、初期化ルーチンにおいてバス幅設定を行なうので、最大バス幅をサポートできないクライアントが存在して、システムが最大バス幅をサポートできていない時に、電源OFFして、当該クライアントを脱離させると、次に電源ONされた時に、最大バス幅に設定することができる。
【図面の簡単な説明】
【図1】本発明にかかる外部バス幅設定方法が適用される外部バスの接続を説明する概略図。
【図2】外部バス32bitのライトアクセスタイミング図。
【図3】外部バス32bitのリードアクセスタイミング図。
【図4】外部バス16bitのライトアクセスタイミング図。
【図5】外部バス16bitのリードアクセスタイミング図。
【図6】コマンドを説明する図。
【図7】バス幅要求コマンドのアクセスタイミング図。
【図8】バス幅送信コマンドのアクセスタイミング図。
【図9】全クライアントからのバス幅送信コマンドのアクセスタイミング図。
【図10】バス幅設定コマンド(16bit)のアクセスタイミング図。
【図11】バス幅要求コマンド(32bit)のアクセスタイミング図。
【図12】イニシエータ側のフローチャート。
【図13】本発明のイニシエータ側のブロック図。
【図14】従来の外部バスの接続を説明する概略図。
【符号の説明】
10 バスイニシエータ
11 CPU
12 ROM
13 RAM
14 外部バスブリッジ
141 リードバッファ
142 ライトバッファ
143 ターゲット制御回路
144 マスタ制御回路
145 アービタ回路
146 マルチプレクサ回路
15 システムバス
20 クライアント
30 外部バス

Claims (7)

  1. 外部バスに装脱着可能なボードを接続し、機能拡張することが可能なシステムにおけるバス幅設定方法において、
    接続されるボードのサポートできるバス幅が異なる場合は、あらかじめ決められた全てのボードに共通してサポートできるバス幅で特別なバス幅要求コマンドを発行することにより、各ボードのサポートできるバス幅を認識し、特別なバス幅設定コマンドを発行し、バス幅を設定する外部バスのバス幅設定方法。
  2. 請求項1において、特別なバス幅要求コマンドおよび特別なバス幅設定コマンドは、各ボードそれぞれに発行するのではなく、一度発行すれば各ボードが同時に認識できることを特徴とする外部バスのバス幅設定方法。
  3. 請求項2において、特別なコマンドは、発行元が信号を出力のみ行い、発行先では、所定のタイミングでコマンドを認識することを特徴とする外部バスのバス幅設定方法。
  4. 請求項1において、システム起動中に、特別なバス幅要求コマンドを発行する場合は、特別なバス幅設定コマンドで、あらかじめ決められた共通でサポートできるバス幅に設定することを特徴とする外部バスのバス幅設定方法。
  5. 請求項1において、発行された特別なバス幅要求コマンドに対して、各ボードがバス幅を送信する特別なバス幅送信コマンドに付加するバス幅データは、そのボードがサポートする全てのバス幅が認識できるようにビットを割り付けることを特徴とする外部バスのバス幅設定方法。
  6. 請求項1において、バス幅は、全てのボードがサポートできる最大のバス幅に合せて設定することを特徴とする外部バスのバス幅設定方法。
  7. 請求項6において、最大のバス幅に合せる設定は、システムの初期化ルーチンで行われることを特徴とする外部バスのバス幅設定方法。
JP2002229969A 2002-08-07 2002-08-07 外部バスのバス幅設定方法 Pending JP2004070711A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002229969A JP2004070711A (ja) 2002-08-07 2002-08-07 外部バスのバス幅設定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002229969A JP2004070711A (ja) 2002-08-07 2002-08-07 外部バスのバス幅設定方法

Publications (1)

Publication Number Publication Date
JP2004070711A true JP2004070711A (ja) 2004-03-04

Family

ID=32016184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002229969A Pending JP2004070711A (ja) 2002-08-07 2002-08-07 外部バスのバス幅設定方法

Country Status (1)

Country Link
JP (1) JP2004070711A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991938B2 (en) 2006-07-26 2011-08-02 Samsung Electronics Co., Ltd. Bus width configuration circuit, display device, and method configuring bus width

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991938B2 (en) 2006-07-26 2011-08-02 Samsung Electronics Co., Ltd. Bus width configuration circuit, display device, and method configuring bus width

Similar Documents

Publication Publication Date Title
US6393576B1 (en) Apparatus and method for communication between integrated circuit connected to each other by a single line
US6256692B1 (en) CardBus interface circuit, and a CardBus PC having the same
CA2223930C (en) Burst-broadcasting on a peripheral component interconnect bus
US5838932A (en) Transparent PCI to PCI bridge with dynamic memory and I/O map programming
AU652707B2 (en) Bus interface logic for computer system having dual bus architecture
JP2571673B2 (ja) 多重化バスを有する情報処理システムでバック・ツー・バック・データ転送を提供する方法および装置
WO2005114435A1 (en) Methods and apparatus for bussed communications
US6915365B2 (en) Mechanism for PCI I/O-initiated configuration cycles
US5721882A (en) Method and apparatus for interfacing memory devices operating at different speeds to a computer system bus
JP2003296267A (ja) バスシステム及びバスシステムを含む情報処理システム
JP2004318340A (ja) データ転送制御装置
US20100268897A1 (en) Memory device and memory device controller
EP0784278B1 (en) Interface architecture for connection to a peripheral component interconnect bus
JP3673015B2 (ja) 半導体装置における周辺デバイス識別方法
JP4037788B2 (ja) 制御チップセット間の信号送信デバイス
JP2004070711A (ja) 外部バスのバス幅設定方法
US7698494B2 (en) Access control device and access control method
US6934789B2 (en) Interface, structure and method for transmitting data of PCI bus which uses bus request signal for judging whether a device supporting dual transmission mode
JP3836485B2 (ja) デバイスコントローラ
JP2000231539A (ja) データ転送システムおよびデータ転送方法
KR100266963B1 (ko) 전송되는 패킷을 오버래핑하여 인터페이스의 대기시간을 감소시키는 방법 및 장치
JP2003330870A (ja) 外部バスコンフィグレーション設定方法
JP2000347989A (ja) データ転送方式
JPH10198524A (ja) ハードディスク制御装置
JPH09319698A (ja) ダイレクト・メモリ・アクセス転送方式