(57)【要約】【課題】  １６ビット幅のデータバスを有するＣＰＵ１４から、１６ビット幅のデバイスばかりでなく、３２ビット幅を有するＩ／Ｏ回路１８に対しても誤動作することなく３２ビットアクセスを可能とするとともに、従来よりも命令の実行時間を短縮することを可能とする。【解決手段】  ラッチ回路とバッファ回路を備え、１回目のアクセス時にラッチ回路に１６ビット分のデータを一時記憶させておき、ＣＰＵ１４によりアクセスされるアドレスが連続することが制御部２０によって判定されると、ラッチ回路に保存しておいたデータを用いて、実質的に３２ビットを単位としてアクセスを行う。【選択図】  図１
2005071075.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、該ＣＰＵよりデータバス幅が広いＩ／Ｏ回路の間にあって、データバス幅の違いに対応したデータ受け渡し動作を可能とするバスブリッジ回路であって、
前記ＣＰＵから送られるアドレスデータおよび制御信号の内容を解析し、所定のアドレスデータと制御信号を前記Ｉ／Ｏ回路に送る制御部と、
前記Ｉ／Ｏ回路からＣＰＵに向けたデータ読出し時に動作し、データバス幅の縮小を可能とするデータ読出部とを備え、
該データ読出部は、
前記ＣＰＵ側の第１のデータバスと、Ｉ／Ｏ回路側の第２のデータバス間にあって、第２のデータバスから第１のデータバスに向け、該第１のデータバスで規定されるバス幅のデータの出力時期を規制可能とするバッファ手段と、
前記第２のデータバスのバス幅と、第１のデータバスのバス幅の差に対応したデータを一時記憶可能とするラッチ手段とを備え、
前記制御部において、前記Ｉ／Ｏ回路からＣＰＵに対するデータの読み出しが確認されると、前記バッファ手段を介して前記第２のデータバス中における所定ビット数分のデータを送る一方、残りのビット数分のデータはラッチ手段に保持する制御が行われ、
更に連続したアドレスに対するデータの読出しが確認されると、前記ラッチ手段に保持したデータをＣＰＵに向けて出力することを特徴とするバスブリッジ回路。
【請求項２】
ＣＰＵと、該ＣＰＵよりデータバス幅が広いＩ／Ｏ回路の間にあって、データバス幅の違いに対応したデータ受け渡し動作を可能とするバスブリッジ回路であって、
前記ＣＰＵから送られるアドレスデータおよび制御信号の内容を解析し、所定のアドレスデータと制御信号を前記Ｉ／Ｏ回路に送る制御部と、
前記ＣＰＵからＩ／Ｏ回路に対するデータ書込時に動作し、データバス幅の拡大を可能とするデータ書込部とを備え、
該データ書込部は、
前記ＣＰＵ側の第１のデータバスと、Ｉ／Ｏ回路側の第２のデータバス間にあって、前記第１のデータバスのバス幅のデータを一時記憶可能とするラッチ手段と、前記第２のデータバスのバス幅と第１のデータバスのバス幅の差に対応したデータの出力時期を規制可能とするバッファ手段とを備え、
前記アドレスデコーダで、前記ＣＰＵからＩ／Ｏ回路に対するデータの書き込みが確認されると、該データをラッチ手段に保持する制御が行われ、
更に連続したアドレスに対するデータの書込みが確認されると、ラッチ手段に保持したデータとバッファ手段から出力されるデータとを同時にＩ／Ｏ回路に向けて出力する一方、
連続したアドレスに対するデータの書込みが確認されない場合には、前記ラッチ手段に保持したデータのみをＩ／Ｏ回路に送ることを特徴とするバスブリッジ回路。
【請求項３】
ＣＰＵと、該ＣＰＵよりデータバス幅が広いＩ／Ｏ回路の間にあって、データバス幅の違いに対応したデータ受け渡し動作を可能とするバスブリッジ回路であって、
前記ＣＰＵから送られるアドレスデータおよび制御信号の内容を解析し、所定のアドレスデータと制御信号を前記Ｉ／Ｏ回路に送る制御部と、
前記Ｉ／Ｏ回路からＣＰＵに対するデータ読出し時に動作し、データバス幅の縮小を可能とするデータ読出部と、
前記ＣＰＵからＩ／Ｏ回路に対するデータ書込時に動作し、データバス幅の拡大を可能とするデータ書込部とを備え、
前記データ読出部は、
前記ＣＰＵ側の第１のデータバスと、Ｉ／Ｏ回路側の第２のデータバス間にあって、第２のデータバスから第１のデータバスに向け、該第１のデータバスで規定されるバス幅のデータの出力時期を規制可能とする第１のバッファ手段と、
前記第２のデータバスのバス幅と、第１のデータバスのバス幅の差に対応したデータを一時記憶可能とする第１のラッチ手段とを備え、
前記アドレスデコーダで、前記Ｉ／Ｏ回路からＣＰＵに対するデータの読み込みが確認されると、前記第１のバッファ手段を介して前記第２のデータバス中における所定ビット数分のデータを送る一方、残りのビット数分のデータは第１のラッチ手段に保持する制御が行われ、
更に連続したアドレスに対するデータの読出しが確認されると、第１のラッチ手段に保持したデータをＣＰＵに向けて出力するものであり、
前記データ書込部は、
前記ＣＰＵ側の第１のデータバスと、Ｉ／Ｏ回路側の第２のデータバス間にあって、前記第１のデータバスのバス幅のデータを一時記憶可能とする第２のラッチ手段と、前記第２のデータバスのバス幅と第１のデータバスのバス幅の差に対応したデータの出力時期を規制可能とする第２のバッファ手段とを備え、
前記制御部で、前記ＣＰＵからＩ／Ｏ回路に対するデータの書き込みが確認されると、該データを第２のラッチ手段に保持する制御が行われ、
更に連続したアドレスに対するデータの書込みが確認されると、第２のラッチ手段に保持したデータと第２のバッファ手段から出力されるデータとを同時にＩ／Ｏ回路に向けて出力する一方、
連続したアドレスに対するデータの書込みが確認されない場合には、前記第２のラッチ手段に保持したデータのみをＩ／Ｏ回路に送ることを特徴とするバスブリッジ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＣＰＵとＩ／Ｏ回路間にあって、データバス幅の違いに対応した制御動作を可能とするバスブリッジ回路に関する。
【背景技術】
【０００２】
現在一般に使用されているＣＰＵには、１６ビットのデータバス構成で、３２ビットのデータアクセスを可能とするものがある（例えば、ＮＥＣ社製の「ＶＲ１４１３１」参照）。かかる命令の実行時には、連続したアドレスに対して１６ビットアクセスを２回繰り返すデータ処理が行われるが、１回目のアクセス時には１６ビットアクセスか３２ビットアクセスかが判別できない。そこで、各回にアクセスされるアドレスに対応し、データを上位１６ビットと下位１６ビットに振り分け、２回に分けて１６ビットデータとしてデータ処理されることが一般的であった。
【特許文献１】特開２００２−２４１６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、ＣＰＵからアクセスされる周辺Ｉ／Ｏ回路によっては、１６ビットずつ２回に分けてアクセスすると正常に動作せず、３２ビットの同時アクセスが要求されるものも存在する。本発明はかかる不都合に鑑みてなされたものであって、１６ビット幅のデータバスを有するＣＰＵから３２ビット幅のＩ／Ｏ回路に対して３２ビットアクセス可能とするバスブリッジ回路を提供することを目的とする。
【課題を解決するための手段】
【０００４】
本発明にかかるバスブリッジ回路１０は、図１にその全体的な構成を概略的に示す如く、ＣＰＵ１４と、そのＣＰＵ１４よりデータバス幅が広いＩ／Ｏ回路１８の間にあって、データバス幅の違いに対応したデータ受け渡し動作を可能とするものである。
【０００５】
そして、ＣＰＵ１４から送られるアドレス信号および制御信号の内容を解析し、所定のアドレス信号と制御信号を前記Ｉ／Ｏ回路１８に送る制御部２０と、Ｉ／Ｏ回路１８からＣＰＵ１４に対するデータの読み出し時に動作し、データバス幅の縮小を可能とするデータ読出部２２と、ＣＰＵ１４からＩ／Ｏ回路１８に対するデータの書き込み時に動作し、データバス幅の拡大を可能とするデータ書込部２４とを備えている。
【０００６】
データ読出部２２は、ＣＰＵ１４側の第１のデータバス１２と、Ｉ／Ｏ回路１８側の第２のデータバス１６間にあって、第２のデータバス１６から第１のデータバス１２に向け、第１のデータバス１２で規定されるバス幅のデータの出力時期を規制可能とする第１のバッファ手段と、第２のデータバス１６のバス幅と、第１のデータバス１２のバス幅の差に対応したデータを一時記憶可能とする第１のラッチ手段とを備えている。
【０００７】
そして、制御部２０で、Ｉ／Ｏ回路１８からＣＰＵ１４に対するデータの読み出し動作が確認されると、第１のバッファ手段を介して前記第２のデータバス１６中における所定ビット数分のデータを送る一方、残りのビット数分のデータは第１のラッチ手段に保持する制御が行われる。更に、連続したアドレスからのデータの読み出し動作が確認されると、再度データの読み出し動作を経ることなく、第１のラッチ手段に保持したデータをＣＰＵ１４に向けて出力するものである。
【０００８】
またデータ書込部２４は、ＣＰＵ１４側の第１のデータバス１２と、Ｉ／Ｏ回路１８側の第２のデータバス１６間にあって、第１のデータバス１２のバス幅のデータを一時記憶可能とする第２のラッチ手段と、前記第２のデータバス１６のバス幅と第１のデータバス１２のバス幅の差に対応したデータの出力時期を規制可能とする第２のバッファ手段とを備えている。
【０００９】
制御部２０において、前記ＣＰＵ１４からＩ／Ｏ回路１８に対するデータの書き込み動作が確認されると、このデータを第２のラッチ手段に保持する制御が行われ、更に連続したアドレスに対するデータの書込みが確認されると、第２のラッチ手段に保持したデータと第２のバッファ手段から出力されるデータとを同時にＩ／Ｏ回路１８に向けて出力する一方、連続したアドレスに対するデータの書込みが確認されない場合には、前記した第２のラッチ手段に保持したデータのみをＩ／Ｏ回路１８に送る。
【発明の効果】
【００１０】
本発明は上記のごとく、ラッチ手段とバッファ手段を備え、アクセスするアドレスが連続することが判定されると３２ビットを単位としてアクセス可能とすることにより、従来の１６ビット幅のデバイスばかりでなく、３２ビットのデータバス幅を有するＩ／Ｏ回路に対しても誤動作することなく３２ビットアクセスが可能となり、更に従来行われていた２回に分割された１６ビットアクセスよりも、命令の実行時間を短縮することが可能となる。
【発明を実施するための最良の形態】
【００１１】
本発明にかかるバスブリッジ回路１０は、図１にその全体的な構成を示すごとく、１６ビットのバス幅を有する第１のデータバス１２に接続されたＣＰＵ１４と、３２ビットのバス幅を有する第２のデータバス１６に接続されたＩ／Ｏ回路１８の間にあって、両者のバス幅の違いに対応したデータ処理を可能とするものである。
【００１２】
なお本実施例にあっては、ＡＳＩＣ技術を利用し、回路全体をゲートアレイにより１チップ化した例を示すがこれに限らず、各構成部分を個別に回路構成するなど、その実際の回路構成技術については限定されるものではなく、種々変更して実施できることは勿論である。回路の一部をプログラムによりファームウェア化することもできる。
【００１３】
ここでバスブリッジ回路１０は、主として全体的な制御動作を受け持つ制御部２０と、データの読み出し時に動作するデータ読出部２２と、データの書き込み時に動作するデータ書込部２４とから構成される。
【００１４】
制御部２０は、アドレスデコーダ２６と判定回路２８を備える。ここでアドレスデコーダ２６は、図４〜図７に例示する如く、ＣＰＵ１４側から第１のアドレスデータ３０と第１の制御信号群３２とを入力し、Ｉ／Ｏ回路１８に向けて第２のアドレスデータ３４と第２の制御信号群３６とを出力可能とするものである。
【００１５】
判定回路２８は、入力される第１のアドレスデータ３０と第１の制御信号群３２の変化を調べ、データ読出部２２とデータ書込部２４に向けて、第３および第４の制御信号群３８・４０を出力可能とする。なお、判定回路２８の詳細な動作については後記する。
【００１６】
データ読出部２２は、１つのラッチ回路４２と、２つのバッファ回路４４・４６とから構成される。第１のラッチ回路４２は、１６ビット分のデータ幅を有するレジスタであって、出力側を第１のデータバス１２に接続する一方、入力側を第２のデータバス１６における上位１６ビットに接続する。そして、制御部２０から出力される第３の制御信号３８の入力と連動してＩ／Ｏ回路１８から上位１６ビット分のデータを取り込んで一時記憶させ、制御信号３８の入力と連動してＣＰＵ１４に向けて１６ビット分のデータを同時に出力可能とする。
【００１７】
第１および第２の２つのバッファ回路４４・４６はともに、１６ビット分のデータ幅を有し、制御信号３８の入力時期に対応して、Ｉ／Ｏ回路１８側からＣＰＵ１４に向けたデータの出力時期を規制可能とする。更に、第１のバッファ回路４４を第２のデータバス１６における上位１６ビットに接続し、第２のバッファ回路４６を下位１６ビットに接続することにより、上位および下位の１６ビット分のデータを選択的に、ＣＰＵ１４に対して出力可能とする。
【００１８】
データ書込部２４もデータ読出部２２と略同様の構成であって、１６ビット分のデータ幅を有するレジスタで構成される１つのラッチ回路４８と、２つのバッファ回路５０・５２とから構成される。ここで第２のラッチ回路４８は、入力側を第１のデータバス１２に接続する一方、出力側を第２のデータバス１６における下位１６ビットに接続する。そして、制御部２０から出力される第４の制御信号４０の入力と連動し、ＣＰＵ１４から出力される１６ビット分のデータを取り込んで一時記憶させる一方、制御信号４０の入力と連動し、下位１６ビット分のデータとしてＩ／Ｏ回路１８に向け出力可能とする。
【００１９】
第３および第４の２つのバッファ回路５０・５２はともに、１６ビット分のデータ幅を有し、制御信号４０の入力時期に対応して、ＣＰＵ１４側からＩ／Ｏ回路１８側に向けたデータの出力時期を規制可能とする。更に、第３のバッファ回路５０を第２のデータバス１６における下位１６ビットに接続し、第４のバッファ回路５２を上位１６ビットに接続することにより、Ｉ／Ｏ回路１８における上位および下位の１６ビット分のデータを選択的に出力可能とする。
【００２０】
次に図２および図３に示す流れ図および図４〜図７の波形図に基づき、判定回路２８による、データ読出部２２およびデータ書込部２４の具体的な制御動作の内容を詳細に説明する。先ず、判定回路２８によって、ＣＰＵ１４によるＩ／Ｏ回路１８からのデータ読み出しが開始されたことが図４および図5に例示する各信号から判定されると、図２のステップＳＴ１１から始まるデータリード工程が開始される。
【００２１】
かかる工程に入ると、ステップＳＴ１１でアドレス３０が「４」で割り切れるか否かを調べる。「４」で割り切れない場合は、３２ビットデータにおける上位１６ビットと判定できる。そこで、ステップＳＴ１２において該当のアドレスに対してリードアクセスし、第１バッファ回路４４を介して第２データバス１６中の上位アドレスをＣＰＵ１４に送ることにより、１６ビットアクセスによるデータの読出しを終了する。
【００２２】
次に、ステップＳＴ１１の判定がＹＥＳであれば、ステップＳＴ１４でＩ／Ｏ回路１８から第２データバス１６に３２ビット分のデータを一度に読み出す。そして、読み出した３２ビットのうち、下位１６ビットを第２バッファ回路４６を介してＣＰＵ１４にデータ出力する（ステップＳＴ１５）と同時に、上位１６ビットを第１ラッチ回路４２に書き込む（ステップＳＴ１６）。
【００２３】
次の読出しサイクルに入ると、ステップＳＴ１７で、例えば図５（ａ）に示すＩＯＣＳ信号により連続するアドレス３０ａへのアクセスが判定されると３２ビットアクセスと判断されるので、Ｉ／Ｏ回路１８にはデータの読出し命令を送ることなく、第１ラッチ回路４２に保存しておいた上位１６ビット分のデータをＣＰＵ１４に向けて送ることにより、３２ビット分のデータ読み出しが完了する（ステップＳＴ１８）。
【００２４】
次に、ＣＰＵ１４がデータの書き込み処理を開始したことが図６および図７の信号群から判定された場合、図３のステップＳＴ２１で先ず８ビットアクセスか否かを調べ、そうであるとステップＳＴ２２に移って、そのライトデータとアドレスを用いてＩ／Ｏ回路１８に対するライトアクセスを行う。
【００２５】
次に、ステップＳＴ２１の判定がＮＯである場合、次のステップＳＴ２３でアドレス３０が「４」で割り切れるか否かを調べ、割り切れない場合は上位１６ビットに対する書き込みと判断されるので、ステップＳＴ２２で図６の如くライトアクセスを行う。
【００２６】
ステップＳＴ２３の判定がＹＥＳの場合、ステップＳＴ２４でライトデータを第２ラッチ回路４８に保存したあと、ステップＳＴ２５でＩＯＣＳ信号から連続アクセスか否かを判定する。連続アクセスでない場合は１６ビットアクセスと判定できるので、ステップＳＴ２６に移り、第２ラッチ回路４８に保存しておいた下位１６ビットのデータを用いてＩ／Ｏ回路１８に対する１６ビットのライトアクセスを行う。
【００２７】
逆に連続アクセスの場合は、３２ビットアクセスと判断できるので、その時にＣＰＵ１４から出力されているデータを第４バッファ回路５２を介して上位１６ビットとし、第２ラッチ回路４８に保存されていたデータを下位１６ビットとする３２ビットのデータを同時に第２データバス１６に出力することにより、図７の如く３２ビットによるライトアクセスが行われるのである（ステップＳＴ２７）。
【図面の簡単な説明】
【００２８】
【図１】本発明の全体的な構成を示すブロック図である。
【図２】判定回路におけるデータ読み出し工程を説明する流れ図である。
【図３】判定回路におけるデータ書き込み工程を説明する流れ図である。
【図４】１６ビットアクセスによるデータの読み出し時にバスブリッジ回路へ入出力される信号群の一例を示す波形図であって、（ａ）はＣＰＵに入出力される信号群を、（ｂ）はＩ／Ｏ回路に入出力される信号群を示す。
【図５】３２ビットアクセスによるデータの読み出し時にバスブリッジ回路へ入出力される信号群の一例を示す波形図であって、（ａ）はＣＰＵに入出力される信号群を、（ｂ）はＩ／Ｏ回路に入出力される信号群を示す。
【図６】１６ビットアクセスによるデータの書き込み時にバスブリッジ回路へ入出力される信号群の一例を示す波形図であって、（ａ）はＣＰＵに入出力される信号群を、（ｂ）はＩ／Ｏ回路に入出力される信号群を示す。
【図７】３２ビットアクセスによるデータの書き込み時にバスブリッジ回路へ入出力される信号群の一例を示す波形図であって、（ａ）はＣＰＵに入出力される信号群を、（ｂ）はＩ／Ｏ回路に入出力される信号群を示す。
【符号の説明】
【００２９】
１０  バスブリッジ回路
１２  第１のデータバス
１４  ＣＰＵ
１６  第２のデータバス
１８  Ｉ／Ｏ回路
２０  制御部
２２  データ読出部
２４  データ書込部
２６  アドレスデコーダ
２８  判定回路
３０  第１のアドレスデータ
３２  第１の制御信号群
３４  第２のアドレスデータ
３６  第２の制御信号群
３８  第３の制御信号群
４０  第４の制御信号群
４２  第１ラッチ回路
４４  第１バッファ回路
４６  第２バッファ回路
４８  第２ラッチ回路
５０  第３バッファ回路
５２  第４バッファ回路
【図１】
2005071075.tif 000003
【図２】
2005071075.tif 000004
【図３】
2005071075.tif 000005
【図４】
2005071075.tif 000006
【図５】
2005071075.tif 000007
【図６】
2005071075.tif 000008
【図７】
2005071075.tif 000009