(57)【特許請求の範囲】
【請求項１】
バスマスタと複数のバススレーブとを接続するバス接続回路であって、
前記複数のバススレーブは、
転送元スレーブと、
転送先スレーブと
を含み、
前記バスマスタは、前記複数のバススレーブに対し、上位の４ビット［７：４］と下位の４ビット［３：０］とで構成される８ビットのアドレス信号［７：０］を出力し、
ここで、前記上位の４ビット［７：４］は、
前記上位の４ビット［７：４］の中で一番上位の第１ビットと、前記第１ビットの次の第２ビットとで構成され、前記複数のバススレーブのうちアクセス対象のバススレーブを示す上位前半２ビット［７：６］と、
前記第２ビットの次の第３ビットと、前記第３ビットの次の第４ビットとで構成される上位後半２ビット［５：４］と
に分けられ、
前記転送元スレーブのデータ格納領域は、前記上位前半２ビット［７：６］の値が“１０”をとり、前記上位後半２ビット［５：４］の値が“００”、“０１”、“１０”および“１１”のうちのいずれかをとり、かつ、前記下位の４ビット［３：０］の値が前記データ格納領域自体のアドレスを表す値をとるデータ格納領域であって、前記上位後半２ビット［５：４］の値が“００”をとる領域と、前記上位後半２ビット［５：４］の値が“０１”、“１０”および“１１”のうちのいずれかをとるミラー領域とに分けられ、
前記ミラー領域は、前記上位後半２ビット［５：４］の値が“００”をとる領域に対して、実体的に使用されていない領域であり、
前記バス接続回路は、
前記８ビットのアドレス信号［７：０］における前記上位前半２ビット［７：６］の値が“１０”であるときに、前記複数のバススレーブのうち前記アクセス対象のバススレーブが前記転送元スレーブであることを検出する第１のアドレスデコーダと、
前記第１のアドレスデコーダによって前記アクセス対象のバススレーブが前記転送元スレーブであると検出された場合、前記８ビットのアドレス信号［７：０］における前記上位後半２ビット［５：４］の値が“０１”、“１０”および“１１”のうちのいずれかであることを検出する第２のアドレスデコーダと、
前記第２のアドレスデコーダによって前記上位後半２ビット［５：４］の値が“０１”、“１０”および“１１”のうちのいずれかであると検出された場合、前記転送元スレーブからの転送元リードデータを前記転送先スレーブへ前記バスマスタを介さずに直接転送することを指示する直接転送ライトストローブ信号を出力する論理回路と、
前記論理回路から出力された前記直接転送ライトストローブ信号に従って、前記転送元リードデータを前記バスマスタを介さずに前記バスマスタからのライトデータ出力線へ出力する第１のセレクタと、
前記論理回路から出力された前記直接転送ライトストローブ信号に従って、予め設定されたアドレスと転送イネーブル信号を前記転送先スレーブに出力する第２のセレクタと
を具備し、
前記転送先スレーブにおいて前記予め設定されたアドレスに前記転送元リードデータが格納される
バス接続回路。
【請求項２】
請求項１に記載のバス接続回路において、
ＷｒｉｔｅＲｅａｄ変換回路を更に備え、
前記バスマスタは、前記転送元スレーブから前記転送先スレーブへの直接転送の際に、前記転送元スレーブの前記ミラー領域へのアクセス及びライト要求を設定し、
前記ＷｒｉｔｅＲｅａｄ変換回路は、
前記バスマスタからの前記転送元スレーブの前記ミラー領域へのアクセスを検出した場合、前記ライト要求をリード要求に変換する
バス接続回路。
【請求項３】
バスマスタと、
複数のバススレーブと、
前記バスマスタと前記複数のバススレーブとを接続する、請求項１または２に記載のバス接続回路と
を具備する
半導体装置。
【請求項４】
バスマスタと複数のバススレーブとを接続するバス接続回路の動作方法であって、
前記複数のバススレーブは、
転送元スレーブと、
転送先スレーブと
を含み、
前記バス接続回路の動作方法は、
前記バスマスタが、前記複数のバススレーブに対し、上位の４ビット［７：４］と下位の４ビット［３：０］とで構成される８ビットのアドレス信号［７：０］を出力するステップと、
ここで、前記上位の４ビット［７：４］は、
前記上位の４ビット［７：４］の中で一番上位の第１ビットと、前記第１ビットの次の第２ビットとで構成され、前記複数のバススレーブのうちアクセス対象のバススレーブを示す上位前半２ビット［７：６］と、
前記第２ビットの次の第３ビットと、前記第３ビットの次の第４ビットとで構成される上位後半２ビット［５：４］と
に分けられ、
前記転送元スレーブのデータ格納領域は、前記上位前半２ビット［７：６］の値が“１０”をとり、前記上位後半２ビット［５：４］の値が“００”、“０１”、“１０”および“１１”のうちのいずれかをとり、かつ、前記下位の４ビット［３：０］の値が前記データ格納領域自体のアドレスを表す値をとるデータ格納領域であって、前記上位後半２ビット［５：４］の値が“００”をとる領域と、前記上位後半２ビット［５：４］の値が“０１”、“１０”および“１１”のうちのいずれかをとるミラー領域とに分けられ、
前記ミラー領域は、前記上位後半２ビット［５：４］の値が“００”をとる領域に対して、実体的に使用されていない領域であり、
前記８ビットのアドレス信号［７：０］における前記上位前半２ビット［７：６］の値が“１０”であるときに、前記複数のバススレーブのうち前記アクセス対象のバススレーブが前記転送元スレーブであることを第１のアドレスデコーダが検出する第１の検出ステップと、
前記第１の検出ステップによって前記アクセス対象のバススレーブが前記転送元スレーブであると検出された場合、前記８ビットのアドレス信号［７：０］における前記上位後半２ビット［５：４］の値が“０１”、“１０”および“１１”のうちのいずれかであることを第２のアドレスデコーダが検出する第２の検出ステップと、
前記第２の検出ステップによって前記上位後半２ビット［５：４］の値が“０１”、“１０”および“１１”のうちのいずれかであると検出された場合、前記転送元スレーブからの転送元リードデータを前記転送先スレーブへ前記バスマスタを介さずに直接転送することを指示する直接転送ライトストローブ信号を論理回路が出力するステップと、
前記論理回路から出力された前記直接転送ライトストローブ信号に従って、第１のセレクタが、前記転送元リードデータを前記バスマスタを介さずに前記バスマスタからのライトデータ出力線へ出力するステップと、
前記論理回路から出力された前記直接転送ライトストローブ信号に従って、第２のセレクタが、予め設定されたアドレスと転送イネーブル信号を前記転送先スレーブに出力するステップと、
前記転送イネーブル信号に従って、前記転送先スレーブが前記予め設定されたアドレスに前記転送元リードデータを格納するステップと
を具備する
バス接続回路の動作方法。
【請求項５】
請求項４に記載のバス接続回路の動作方法において、
前記バスマスタが、前記転送元スレーブから前記転送先スレーブへの直接転送の際に、前記転送元スレーブの前記ミラー領域へのアクセス及びライト要求を設定するステップと、
ＷｒｉｔｅＲｅａｄ変換回路が、前記バスマスタからの前記転送元スレーブの前記ミラー領域へのアクセスを検出した場合、前記ライト要求をリード要求に変換するステップと
を更に備える
バス接続回路の動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路（ＬＳＩ）内部のバス接続回路に関する。
【背景技術】
【０００２】
近年、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）で扱う情報量の増大に伴い、ＬＳＩ内部のバスで転送されるデータ量が増加している。そのため、バススレーブ同士のデータ転送をより高速に行う技術が望まれている。従来の情報処理装置では、スレーブデバイス同士のデータ転送時にバスマスタを経由する。その場合、転送元スレーブデバイスからバスマスタへのデータ転送とバスマスタから転送先スレーブデバイスへのデータ転送とを実行するという２サイクル転送を行う。そのため、転送性能は最高でも２サイクルの転送サイクルにしかならない。
【０００３】
データ転送をより高速に行う技術として、特開２００６−１４６８１７号公報（特許文献１）に、バスマスタを経由せず転送元スレーブデバイスから転送先スレーブデバイスへ直接データを転送する１サイクル転送の技術が開示されている。図１は、特許文献１のメモリ制御システムにおける回路構成を示すブロック図である。図１に示すように、ＬＳＩ１００は、ＣＰＵ１１０、メモリコントローラ（ＭＥＭＣ）１６０及びシステムバス１５０を備えている。ＣＰＵ１１０は、システムバス１５０に接続されている。ＭＥＭＣ１６０は、外部ＲＯＭデバイス２００及び外部ＤＲＡＭデバイス３００をそれぞれ制御する。このＭＥＭＣ１６０は共通の外部端子を経由した同一のアドレスバス１６１により外部ＲＯＭデバイス２００と外部ＤＲＡＭデバイス３００とに接続されている。同様に、ＭＥＭＣ１６０は共通の外部端子を経由した同一のデータバス１６２により外部ＲＯＭデバイス２００と外部ＤＲＡＭデバイス３００とに接続されている。更に、ＭＥＭＣ１６０は独立した外部端子を経由して、外部ＲＯＭデバイス２００を制御するＲＯＭデバイス制御信号１６３を出力する。同様に、ＭＥＭＣ１６０は独立した外部端子を経由して、外部ＤＲＡＭデバイス３００を制御するＤＲＡＭデバイス制御信号１６４を出力する。これらの制御信号１６３、１６４は、一般的なＲＯＭデバイス及びＤＲＡＭデバイスを制御するために必要な最低限の信号を有しており、ＣＰＵ１１０からのメモリアクセスに応じてそれぞれ独立して外部ＲＯＭデバイス２００或いは外部ＤＲＡＭデバイス３００を制御することが可能である。
【０００４】
図２は、特許文献１のメモリ制御システムにおけるＬＳＩ１００と外部ＲＯＭデバイス２００及び外部ＤＲＡＭデバイス３００との具体的な接続形態を示すブロック図である。ここで、外部ＲＯＭデバイス２００は１６ＭビットのページＲＯＭ（１Ｍワード×１６ビット）である。２０ビット幅で構成されるアドレスバス１６１がそのまま２０ビットの物理アドレスとして供給される。一方、外部ＤＲＡＭデバイス３００は６４ＭビットＤＲＡＭ（４Ｍワード×１６ビット）である。カラムアドレス１２ビット、ロウアドレス１０ビットで構成されている。アドレスバス１６１の下位１２ビットのみが物理アドレスとして供給される。またデータバス１６２は１６ビット幅で構成されており、外部ＲＯＭデバイス２００と外部ＤＲＡＭデバイス３００に共に接続されている。ＲＯＭデバイス制御信号１６３はＣＳ＃、ＲＤ＃信号からなり独立して外部ＲＯＭデバイス２００と接続されている。また同様に、ＤＲＡＭデバイス制御信号１６４はＲＡＳ＃，ＬＣＡＳ＃、ＵＣＡＳ＃、ＷＥ＃、ＯＥ＃信号からなり独立して外部ＤＲＡＭデバイス３００と接続されている。
【０００５】
図３は、特許文献１のメモリ制御システムにおけるメモリマップの一例を示す図である。図３に示すように、外部ＲＯＭデバイス２００はメモリマップの０ｘＦ０００＿００００番地から０ｘＦＦＦＦ＿ＦＦＦＦ番地にマッピングされている。また外部ＤＲＡＭデバイス３００はメモリマップの０ｘ００００＿００００番地から０ｘ３ＦＦＦ＿ＦＦＦＦ番地にマッピングされている。ここで説明を容易にするために、この外部ＲＯＭデバイス２００は、システムを初期化する初期化コードが０ｘＦ０００＿００００番地から０ｘＦ０００＿ＦＦＦＦ番地までの６４ＫＢに、実際にシステムを制御する命令コードが０ｘＦ００１＿００００番地から０ｘＦ０１０＿ＦＦＦＦ番地までの１ＭＢにそれぞれ書き込まれているものとする。更に、外部ＲＯＭデバイス２００から外部ＤＲＡＭデバイス３００へ複製する命令コードは前述した実際にシステムを制御する命令コードの１ＭＢだけであり、この命令コードは絶対アドレスに非依存なメモリアロケータブルな内容で記述されているものとする。
【０００６】
次に、特許文献１のメモリ制御システムにおいて、システム起動時に外部デバイスＲＯＭ２００の命令コードを外部デバイスＤＲＡＭ３００へ複製する動作について説明する。
【０００７】
まず初めに、外部からのパワーオンリセット等の初期リセットが解除されると、ＣＰＵ１１０は、内部のリセットベクタに応じたメモリ空間に対して最初の命令コードのフェッチを行う。このとき、初期状態で命令コードを保持できるのは不揮発性メモリであるＲＯＭデバイスのみである。そのため、ＣＰＵ１１０のリセットベクタは外部ＲＯＭデバイス２００の先頭アドレス０ｘＦ０００＿００００番地を指し示しており、命令コードも予めリセットベクタが指し示すアドレスから順番に外部ＲＯＭデバイス２００に書き込まれているものとする。
【０００８】
従って、リセット解除後、ＣＰＵ１１０は、システムバス１５０とＭＥＭＣ１６０を経由して外部ＲＯＭデバイス２００にアクセスし、メモリマップの０ｘＦ０００＿００００番地からシステムを初期化するための初期化コードを順次フェッチする。この初期化コードのフェッチ後、ＣＰＵ１１０は、その初期化コードの内容に従ってシステムの初期化を実施する。ここで、外部ＤＲＡＭデバイス３００に対しても外部ＲＯＭデバイス２００にアクセスするためのアドレスと、外部ＲＯＭデバイス２００から読み出されたデータが同時にドライブされるが、ＤＲＡＭデバイス制御信号１６４によるアクセス許可が実行されていないため何ら影響を及ぼさない。
【０００９】
システムの初期化が完了すると、ＣＰＵ１１０は、ＭＥＭＣ１６０に対して外部ＲＯＭデバイス２００に書き込まれている命令コードを外部ＤＲＡＭデバイス３００へ複製するように要求する。この時点では、ＣＰＵ１１０の動作は全て外部ＲＯＭデバイス２００からフェッチした命令コードの内容に従って実施されている。以下、ＭＥＭＣ１６０により命令コードを複製する手順を示す。
【００１０】
まず、ＣＰＵ１１０は、外部ＲＯＭデバイス２００に書き込まれている命令コードの最初のアドレス０ｘＦ００１＿００００番地を転送元アドレス、外部ＤＲＡＭデバイス３００へ書き込むための最初のアドレス０ｘ００００＿００００番地を転送先アドレス、複製する命令コードの総バイト数（１ＭＢ）を転送長としてＭＥＭＣ１６０に設定する。但し、命令コードの複製は外部ＤＲＡＭデバイス３００のカラムアドレスと外部ＲＯＭデバイス２００のアドレスのカラムアドレスに相当する下位１２ビットが等しくなる必要があるため、予め転送アドレスの下位１２ビットを等しく設定しておくか、或いは転送先アドレス又は転送元アドレスの何れかの下位１２ビットのみが有効になるものとする。これらの設定値は、予め命令コードと一緒に外部ＲＯＭデバイス２００に書き込まれており、ＣＰＵ１１０が外部ＲＯＭデバイス２００から読み出すことによりＭＥＭＣ１６０に設定することが可能である。
【００１１】
上述した各設定が完了すると、ＣＰＵ１１０がＭＥＭＣ１６０に対して開始を指示することで、ＣＰＵ１１０とは独立して外部ＲＯＭデバイス２００から外部ＤＲＡＭデバイス３００へ命令コードを複製することが可能となる。
【００１２】
ここで、外部ＲＯＭデバイス２００のアドレス０ｘＦ００１＿１２３４番地の命令コードを外部ＤＲＡＭデバイス３００のアドレス０ｘ００００＿１２３４番地へ複製する動作について説明する。
【００１３】
図４は、特許文献１のメモリ制御システムにおける命令コードを複製する際のタイミングチャートを示す図である。まず、ＭＥＭＣ１６０は、時刻Ｔ２で外部ＤＲＡＭデバイス３００に対するロウアドレス０ｘ００１をアドレスバス１６１にドライブし、時刻Ｔ３でＲＡＳ＃をアサートすることによりこのロウアドレスを有効にする。この時、アドレスバス１６１の下位１０ビットのみが有効である。その後、時刻Ｔ４から外部ＲＯＭデバイス２００と外部ＤＲＡＭデバイス３００に対して同一のアドレス０ｘ１１２３４をアドレスバス１６１上にドライブする。図２に示すように、外部ＲＯＭデバイス２００に対してはアドレスバス１６１の２０ビット全てが有効となるが、外部ＤＲＡＭデバイス３００に対してはカラムアドレスに相当する下位１２ビットのみが有効となる。従って、この場合の外部ＤＲＡＭデバイス３００に対するカラムアドレスは０ｘ２３４である。
【００１４】
次に、時刻Ｔ６でＣＳ＃とＲＤ＃をアサートすることにより外部ＲＯＭデバイス２００に対してアドレス０ｘ１１２３４からの読み出し要求を行う。規定時間後、外部ＲＯＭデバイス２００はデータバス１６２上にリードデータをドライブする。このとき、ＭＥＭＣ１６０は同時に時刻Ｔ８で外部ＤＲＡＭデバイス３００に対してもＵＣＡＳ＃、ＬＣＡＳ＃、ＷＥ＃をアサートすることによりアドレス０ｘ０１２３４への書き込み要求を行う。これにより、データバス１６２上にドライブされた命令コードは、直接外部ＤＲＡＭデバイス３００に書き込まれる。以降、転送元アドレスと転送先アドレスをインクリメントして同様に命令コードの読み出しと書き込みを繰り返す。
【００１５】
ＤＭＡ転送が完了すると、ＭＥＭＣ１６０はＣＰＵ１１０に対してＤＭＡ転送の完了を通知する。このＤＭＡ転送の完了通知を受けると、ＣＰＵ１１０は外部ＤＲＡＭデバイス３００へ複製した命令コードの最初のアドレス０ｘ００００＿００００番地に分岐する。これにより、ＣＰＵ１１０は順次外部ＤＲＡＭデバイス３００からの命令コードをフェッチする。これ以降、ＣＰＵ１１０は外部ＤＲＡＭデバイス３００に対してのみ命令コードをフェッチすることで、命令コードのフェッチを含む外部メモリアクセスのレイテンシーが削減され、システム全体の処理速度を高速化することが可能となる。
【００１６】
関連する技術として特開２００８−１４６７７３号公報（特許文献２）に不揮発性半導体記憶装置が開示されている。この不揮発性半導体記憶装置は、第１のメモリが搭載された第１の半導体チップと、第２のメモリが搭載された第２の半導体チップとを備えている。コピー先である前記第２のメモリにおいて、リードイネーブル動作をライトイネーブル動作と認識させるコマンドを起動した後、前記リードイネーブル動作を行い、コピー元である前記第１のメモリのデータを前記第２のメモリにコピーする。
【００１７】
また、特開２００７−１６４８９５号公報（特許文献３：対応米国特許７４８６５６９（Ｂ２））に不揮発性半導体記憶装置が開示されている。この不揮発性半導体記憶装置は、複数のメモリチップを有する。この不揮発性半導体記憶装置は、複数のメモリチップ間でデータのコピーを行うとき、コピー先のメモリチップにおいてリードイネーブル動作をライトイネーブル動作と認識させるコマンドを起動した後、前記リードイネーブル動作を行う。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００６−１４６８１７号公報
【特許文献２】特開２００８−１４６７７３号公報
【特許文献３】特開２００７−１６４８９５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
特許文献１に記載の技術では、外部ＲＯＭから外部ＤＲＡＭへの直接転送をする場合（１サイクル転送の場合）と直接転送をしない場合（例示：２サイクル転送の場合）とが混在するためバス転送性能が低下するという問題点がある。その理由は、以下のとおりである。外部ＲＯＭから外部ＤＲＡＭへの直接転送を実行するためには、例えば、ＣＰＵ１１０は外部ＲＯＭデバイス２００に書き込まれている命令コードの最初のアドレス０ｘＦ００１＿００００番地を転送元アドレス、外部ＤＲＡＭデバイス３００へ書き込むための最初のアドレス０ｘ００００＿００００番地を転送先アドレス、複製する命令コードの総バイト数（１ＭＢ）を転送長としてＭＥＭＣ１６０に設定する必要がある。そのため、外部ＲＯＭからのデータ読み出しにおいて、外部ＤＲＡＭへの直接転送をする場合（１サイクル転送の場合）と直接転送をしない場合（例示：２サイクル転送の場合）とが混在すると、その直接転送をする度に、ＭＥＭＣの動作を切り替えるためのＭＥＭＣの設定が必要となる。そのようなＭＥＭＣの設定はオーバーヘッドとなるため、バス転送性能が低下する。
直接転送をする場合（１サイクル転送の場合）と直接転送をしない場合（例示：２サイクル転送の場合）とが混在しても、ＭＥＭＣ設定等の追加の動作を行うことなく、１サイクル転送する技術が望まれている。
【課題を解決するための手段】
【００２０】
以下に、発明を実施するための形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００２１】
本発明のバス接続回路は、バスマスタ（１０）と複数のバススレーブ（１２、１５）とを接続する。このバス接続回路は、ミラー領域アクセス検出回路（１３／６３）と、処理回路（２１＋２２＋１４／２１＋６０＋６１）とを具備している。ミラー領域アクセス検出回路（１３／６３）は、バスマスタ（１０）が複数のバススレーブ（１２、１５）のうちの第１バススレーブ（１２／１５）のミラー領域へアクセスすることを検出して、検出信号（３５／６２）を出力する。処理回路（２１＋２２＋１４／２１＋６０＋６１）は、検出結果（３５／６２）に基づいて、当該検出結果（３５／６２）に対応して予め設定されている処理を、アクセスの対象としての領域又はデータに対して実行する。
【００２２】
本発明の半導体装置は、バスマスタ（１０）と、複数のバススレーブ（１２、１５）と、バス接続回路（２、２ａ〜２ｃ）とを具備している。バス接続回路（２、２ａ〜２ｃ）は、バスマスタ（１０）と複数のバススレーブ（１２、１５）とを接続され、上記段落に記載されている。
【００２３】
本発明のバス接続回路の動作方法は、バスマスタ（１０）と複数のバススレーブ（１２、１５）とを接続するバス接続回路の動作方法である。バス接続回路の動作方法は、バスマスタ（１０）が複数のバススレーブ（１２、１５）のうちの第１バススレーブ（１２／１５）のミラー領域へアクセスすることを検出して、検出信号（３５／６２）を出力するステップと、検出結果（３５／６２）に基づいて、当該検出結果（３５／６２）に対応して予め設定されている処理を、アクセスの対象としての領域又はデータに対して実行するステップとを具備している。
【発明の効果】
【００２４】
本発明により、直接転送をする場合と直接転送をしない場合とが混在しても、ＭＥＭＣ設定等の追加の動作を行うことなく、１サイクル転送することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】図１は、特許文献１のメモリ制御システムの回路構成を示すブロック図である。
【図２】図２は、特許文献１のメモリ制御システムのＬＳＩと外部ＲＯＭデバイス及び外部ＤＲＡＭデバイスとの具体的な接続形態を示すブロック図である。
【図３】図３は、特許文献１のメモリ制御システムのメモリマップの一例を示す図である。
【図４】図４は、特許文献１のメモリ制御システムの命令コードを複製する際のタイミングチャートを示す図である。
【図５】図５は、本発明の第１の実施の形態に係るバス接続回路を備える半導体装置の構成を示すブロック図である。
【図６】図６は、本発明の第１の実施の形態に係る半導体装置のメモリマップの例を示す図である。
【図７】図７は、本発明の第１の実施の形態に係るバス接続回路の制御方法を示すタイミングチャートである。
【図８】図８は、本発明の第１の実施の形態に係るバス接続回路を備える半導体装置の構成の変形例を示すブロック図である。
【図９】図９は、本発明の第２の実施の形態に係るバス接続回路を備える半導体装置の構成を示すブロック図である。
【図１０】図１０は、本発明の第２の実施の形態に係るバス接続回路のＷｒｉｔｅＲｅａｄ変換回路の構成の一例を示すブロック図である。
【図１１】図１１は、本発明の第２の実施の形態に係るバス接続回路の制御方法を示すタイミングチャートである。
【図１２】図１２は、本発明の第２の実施の形態に係るバス接続回路においてＷｒｉｔｅＲｅａｄ変換回路を用いない場合での制御方法を示すタイミングチャートである。
【図１３】図１３は、本発明の第３の実施の形態に係るバス接続回路を備える半導体装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２６】
以下、本発明のバス接続回路、半導体装置及びバス接続回路の動作方法の実施の形態に関して、添付図面を参照して説明する。
【００２７】
（第１の実施の形態）
本発明の第１の実施の形態に係るバス接続回路を備える半導体装置について説明する。
図５は、本発明の第１の実施の形態に係るバス接続回路を備える半導体装置の構成の一例を示すブロック図である。半導体装置１は、半導体集積回路（ＬＳＩ：Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）に例示され、バスマスタ（１０）と、複数のバススレーブ（１２、１５）と、バスマスタ（１０）と複数のバススレーブ（１２、１５）とを接続するバス接続回路（２）とを具備している。この図の例では、バスマスタ１０と、複数のバススレーブとしての転送元バススレーブ１２と転送先バススレーブ１５とが互いにバス接続回路２を介して接続されている。バス接続回路２は、バス回路１１と直接転送ライトストローブ信号生成回路１３とセレクタ１４とを備えている。
【００２８】
バスマスタ１０は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＭＥＭＣ（Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ）である。以下では、バスマスタ１０はＣＰＵであるとして説明する（ＣＰＵ１０）。ただし、本発明はバスマスタ１０がＣＰＵ１０である場合に限定されるものではない。ＣＰＵ１０は、バススレーブに対してリードリクエストやライトリクエストを発行する。ＣＰＵ１０は、バス回路１１へ、スレーブ選択信号４０、アドレス信号３１、ＣＰＵライトデータ３８、転送イネーブル信号３４及びライトストローブ信号４１を出力し、ＣＰＵリードデータ３９を受信する。
【００２９】
バス回路１１は、スレーブ選択信号４０を受信した時に、アドレス信号３１によって選択されたバススレーブに対してセレクト信号（３０、３７）を出力する。例えば、アドレス信号３１により転送元バススレーブ１２が選択されたときは、転送元セレクト信号３０を出力する。アドレス信号３１により転送先バススレーブ１５が選択されたときは、転送元セレクト信号３７を出力する。転送元セレクト信号３０が出力された場合、転送元バススレーブ１２からの転送元リードデータ３３を読み出し、ＣＰＵリードデータ３９とする。直接転送ライトストローブ信号３５（後述）がハイレベルのときは、そのＣＰＵリードデータ３９をスレーブライトデータ３２とする。直接転送ライトストローブ信号３５（後述）がロウレベルのときは、ＣＰＵライトデータ３８をスレーブライトデータ３２とする。アドレス信号３１と転送イネーブル信号３４とライトストローブ信号４１はバス回路１１を通過するだけである。バス回路１１は、アドレスデコーダ２０とライトデータセレクタ２１とリードデータセレクタ２２とを備えている。
【００３０】
アドレスデコーダ２０は、スレーブ選択信号４０を受信した時に、アドレス信号３１によって選択されたバススレーブ（１２、１５）に対してセレクト信号（３０、３７）を出力する。リードデータセレクタ２２は、バススレーブ（１２、１５）からのリードデータ（３３、３６）を読み出し、ＣＰＵリードデータ３９とする（例示：リードデータ（３３、３６）用配線をＣＰＵリードデータ（３９）用配線に接続する）。ライトデータセレクタ２１は、直接転送ライトストローブ信号３５（後述）がハイレベルのときは、そのＣＰＵリードデータ３９をスレーブライトデータ３２とする（例示：ＣＰＵリードデータ（３９）用配線をスレーブライトデータ（３２）用配線に接続する）。直接転送ライトストローブ信号３５（後述）がロウレベルのときは、ＣＰＵライトデータ３８をスレーブライトデータ３２とする（例示：ＣＰＵライトデータ（３８）用配線をスレーブライトデータ（３２）用配線に接続する）。
【００３１】
転送元バススレーブ１２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。転送元バススレーブ１２は、バス回路１１から転送元セレクト信号３０とアドレス信号３１とスレーブライトデータ３２と転送イネーブル信号３４とライトストローブ信号４１を受信し、転送元リードデータ３３をバス回路１１に出力する。
【００３２】
直接転送ライトストローブ信号生成回路１３は、転送元セレクト信号３０とアドレス信号３１と転送イネーブル信号３４とを受信し、予め設定されたアドレス値の場合には直接転送ライトストローブ信号３５をハイレベルにして出力する。直接転送ライトストローブ信号生成回路１３は、アドレスデコーダ２３と３入力ＡＮＤ回路２４とを備えている。
【００３３】
アドレスデコーダ２３は、アドレス信号３１の所定ビットが予め設定されたアドレス値の場合にはハイレベルの結果信号を出力する。所定ビットは、後述のミラー領域を示すビットである。３入力ＡＮＤ回路２４は、その結果信号と転送元セレクト信号３０と転送イネーブル信号３４とのＡＮＤ演算結果を直接転送ライトストローブ信号３５として出力する。
【００３４】
セレクタ１４は、転送先バススレーブ１５の直前に接続されている。直接転送ライトストローブ信号３５がロウレベルのときは、バス回路１１の信号（転送先セレクト信号３７、アドレス信号３１、転送イネーブル信号３４、ライトストローブ信号４１）を転送先バススレーブ１５に出力する。しかし、直接転送ライトストローブ信号３５がハイレベルのときは、転送先セレクト信号３７と転送イネーブル信号３４とライトストローブ信号４１をアクティブにし、アドレス信号３１を予めセレクタ１４内に設定された値にして、転送先バススレーブ１５に出力する。
【００３５】
予めセレクタ１４内に設定されたアドレス信号の値は、転送先バススレーブ１５内のレジスタを表す値であり、その設定方法は、ハードウェアとしてセレクタ１４内に埋め込む方法と、バスインターフェースを持ちＣＰＵ１０から設定可能なレジスタとする方法がある。本実施の形態では、ハードウェアとしてセレクタ１４内に埋め込む方法として説明している。
【００３６】
転送先バススレーブ１５は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。転送先バススレーブ１５は、バス回路１１からスレーブライトデータ３２を受信し、セレクタ１４を介して転送先セレクト信号３７、アドレス信号３１、転送イネーブル信号３４及びライトストローブ信号４１を受信し、転送元リードデータ３６をバス回路１１に出力する。
【００３７】
図６は、本発明の第１の実施の形態に係る半導体装置のメモリマップ７０の一例を示す図である。
次の条件の元で、以下の説明を行う。その条件は以下のとおりである。アドレス信号３１は８ビットで構成されている。転送元バススレーブ１２内に実装したレジスタの数は１６個以下である。転送元バススレーブ１２はレジスタの選択にアドレス信号３１のｂｉｔ［３：０］（下位の４ビット）のみを用いる。バス回路１１内のアドレスデコーダ２０はＣＰＵ１０が出力するアドレス信号３１のｂｉｔ［７：６］（上位２ビット）が「１０」である場合に、転送元バススレーブ選択信号３０をアクティブにする。この条件下、以下に説明を行う。
【００３８】
ｂｉｔ［７：６］が「１０」のとき、転送元バススレーブ１２の最初の一つのレジスタ（オフセットアドレス：＋００００）は、「１０００００００」、「１００１００００」、「１０１０００００」、「１０１１００００」の４つのアドレスのいずれを用いてもアクセスすることが可能である。ｂｉｔ［３：０］（下位の４ビット）のみでレジスタが選択されるからである。このアドレスのうち、「１００１００００」、「１０１０００００」、「１０１１００００」の３つをミラー領域という。従って、これら４つのアドレスで示される領域（３つのミラー領域を含む）は、同一の領域（同一のレジスタ）を示している。
【００３９】
上述のように、アドレス信号３１において、ｂｉｔ［７：６］は転送元バススレーブ１２の選択に用いられ、ｂｉｔ［３：０］は転送元バススレーブ１２内のレジスタの選択に用いられているが、ｂｉｔ［５：４］はミラー領域を表すだけで、実体的には何も用いられていない。そこで、本実施の形態では、転送元バススレーブ１２から転送先バススレーブ１５に直接転送を行う場合（１サイクル転送の場合）、ＣＰＵ１０でアドレス信号３１のｂｉｔ［５：４］に、「０１」、「１０」、「１１」のいずれかを設定するものとする。一方、直接転送をしない場合（例示：２サイクル転送の場合）、ＣＰＵ１０でアドレス信号３１のｂｉｔ［５：４］に、「００」を設定するものとする。すなわち、アドレス信号でミラー領域（ｂｉｔ［５：４］＝０１」、「１０」、「１１」）を指定するか否かにより、直接転送をするか否かを指定している。
【００４０】
このように、本実施の形態では、これまで実体的には何ら用いられていなかったミラー領域へアクセスすること（ミラー領域をアドレス信号で指定すること）に対して、単にデータを指定するだけでなく、一つの命令（動作）を実行するように設定している。それにより、ミラー領域を有効に活用している。ここでは、その命令（動作）として、直接転送（１サイクル転送）を設定している。その結果、直接転送をする場合（１サイクル転送の場合）と直接転送をしない場合（例示：２サイクル転送の場合）とを、アドレス信号３１のｂｉｔ［５：４］の変更だけで対応することができる。その結果、直接転送をする度に１サイクル転送の動作と２サイクル転送の動作とを切り替えるための特許文献１に記載のような設定を行う、という手順が不要となる。
【００４１】
この図の例では、メモリマップ７０は、転送先バススレーブ１５のメモリ領域７１と、転送元バススレーブ１２のメモリ領域７２とを備えている。ここで、転送元バススレーブ１２のメモリ領域７２では、メモリ領域７２ａ〜７２ｄの４つの領域が存在する。しかし、現実には１つのメモリ領域７２しか存在せず、他の３つはミラー領域を示している。ここでは、上述のように、ｂｉｔ［５：４］が「００」のときは直接転送をしない場合（例示：２サイクル転送の場合）とし、ｂｉｔ［５：４］が「０１」、「１０」、「１１」のいずれかのときは直接転送をする場合（１サイクル転送の場合）としている。従って、アドレス信号が「１０００００００」の場合、ｂｉｔ［５：４］は「００」なので、メモリ領域７２ａを示し、直接転送をしない（例示：２サイクル転送をする）ことになる。また、アドレス信号が「１００１００００」の場合、ｂｉｔ［５：４］は「０１」なので、メモリ領域７２ｂを示し、直接転送をする（１サイクル転送をする）ことになる。
【００４２】
このとき、例えば、ｂｉｔ［５：４］の値が「０１」（メモリ領域７２ｂにアクセス）の場合に直接転送と設定されているとする。その場合、アドレスデコーダ２３は、アドレス信号３１をデコードしたとき、ｂｉｔ［５：４］の値が「０１」の場合に、ハイレベルの信号を出力する。その結果、直接転送ライトストローブ信号生成回路１３は、直接転送ライトストローブ信号３５をアクティブにする。一方、ｂｉｔ［５：４］の値が「００」（メモリ領域７２ａにアクセス）の場合、ロウレベルの信号を出力する。その結果、直接転送ライトストローブ信号生成回路１３は、直接転送ライトストローブ信号３５をロウレベルにする。なお、ｂｉｔ［５：４］の値が「１０」、「１１」（それぞれメモリ領域７２ｃ、７２ｄにアクセス）については、直接転送する場合としても良いし、直接転送しない場合としても良いし、異なる他の命令としても良い。
【００４３】
このようなアドレス信号３１が示す値は、ＣＰＵ１０のプログラムコードに埋め込まれている。したがって、アドレス信号３１が示す値をミラー領域に変更したこと（ｂｉｔ［５：４］を［００］から「０１」、「１０」、「１１」のいずれかに変更したこと）によるオーバーヘッドはない。
【００４４】
なお、図６に示すメモリマップ７０は例示であり、本実施の形態がこの例に限定されることはない。すなわち、アドレス信号３１で示されるミラー領域の少なくとも一つを、直接転送（１サイクル転送）に対応させておけば、メモリマップの構成は任意に設定することができる。
【００４５】
以上のように、ミラー領域へのリードアクセスという命令に対して、追加的に他の命令（動作）を含ませることができる。例えば、上記実施の形態では、リードアクセスに対して更に「直接転送」を含ませることができる。すなわち、追加的な設定を何ら行うことなく、アドレス信号の変更（ミラー領域の指定）を行うことで、単なるリードアクセススだけでなく、追加的な他の命令（動作）を行わせることが可能となる。
【００４６】
また、Ｒｅａｄ命令を検出してＣＰＵ１０から転送元バススレーブ１２にリードを行う構成にしたため、転送元バススレーブ１２のアクセスするアドレス（読み出し先のアドレス）をＣＰＵ１０から制御することが可能となる。
【００４７】
次に、本発明の第１の実施の形態に係るバス接続回路の制御方法（バス接続回路（半導体装置）の動作）について説明する。図７は、本発明の第１の実施の形態に係るバス接続回路の制御方法を示すタイミングチャートである。（ａ）はクロック信号、（ｂ）はスレーブ選択信号４０、（ｃ）は転送元セレクト信号３０、（ｄ）は転送元リードデータ３３、（ｅ）はアドレス信号３１、（ｆ）はＣＰＵリードデータ３９、（ｇ）は転送イネーブル信号３４、（ｈ）は直接転送ライトストローブ信号３５である。ここでは、ＣＰＵ１０が転送元バススレーブ１２のミラー領域にリードアクセスをすることにより、直接転送（１サイクル転送）をする場合を考える。
【００４８】
Ｔ１のタイミングにおいて、ＣＰＵ１０が転送元バススレーブ１２のミラー領域にリードアクセスをする（バス回路１１上にリードリクエストを発行する）。すなわち、ＣＰＵ１０は、スレーブ選択信号４０（ｂ）をハイレベルとし、アドレス信号３１（ｅ）を出力する。アドレスデコーダ２０は、スレーブ選択信号４０及びアドレス信号３１に基づいて、転送元セレクト信号３０（ｃ）をハイレベルとして、アドレス信号３１によって選択された転送元バススレーブ１２にリードアクセス要求を行う。
【００４９】
Ｔ２のタイミングにおいて、転送元バススレーブ１２は、アドレス信号３１によって指定された領域から転送元リードデータ３３（ｄ）を出力する。セレクタ２２は、転送元セレクト信号３０に基づいて、転送元リードデータ３３をＣＰＵリードデータ３９とする（例示：転送元リードデータ用の配線をＣＰＵリードデータ用の配線に接続する）。転送元リードデータ３３はリードレスポンスとなる。
【００５０】
また、Ｔ２のタイミングにおいて、ＣＰＵ１０は、転送イネーブル信号３４（ｇ）をハイレベルとする。直接転送ライトストローブ信号生成回路１３は、アドレス信号３１、転送元セレクト信号３０及び転送イネーブル信号３４に基づいて、直接転送ライトストローブ信号３５（ｈ）を生成する。このとき、転送元セレクト信号３０がハイレベルであり、転送イネーブル信号３４がハイレベルであり、ミラー領域を示すアドレス信号３１のｂｉｔ［５：４］をアドレスデコーダ２３でデコードした結果がハイレベルとなったとき、直接転送ライトストローブ信号３５がハイレベルとなる。
【００５１】
また、Ｔ２のタイミングにおいて、ライトデータセレクタ２１は、直接転送ライトストローブ信号３５がハイレベルであることから、ＣＰＵリードデータ３９をスレーブライトデータ３２とする（例示：ＣＰＵリードデータ用の配線をスレーブライトデータ用の配線に接続する）。
【００５２】
また、Ｔ２のタイミングにおいて、セレクタ１４は、直接転送ライトストローブ信号３５がハイレベルであることから、バス回路１１からの転送先セレクト信号３７、アドレス信号３１、転送イネーブル信号３４及びライトストローブ信号４１のうち、転送先セレクト信号３７と転送イネーブル信号３４とライトストローブ信号４１をアクティブにし、アドレス信号３１を予めセレクタ１４内に設定された値にして、転送先バススレーブ１５に出力する。その結果、転送先バススレーブ１５は、転送先セレクト信号３７と転送イネーブル信号３４とライトストローブ信号４１と、予め設定されたアドレス信号３１とに基づいて、スレーブライトデータ３２を書き込むことができる。
【００５３】
本実施の形態により、１サイクル転送する場合としない場合とが混在した場合でのバス転送性能の低下を防ぐことができる。その理由は、転送元バススレーブに対する通常のアクセスと１サイクル転送との区別を、ミラー領域を示すアドレス信号３１から生成した直接転送ライトストローブ信号３５で行うことが可能であり、メモリコントローラ（ＭＥＭＣ）の設定を行なわずに１サイクル転送が可能となるからである。このとき、アドレス信号３１が示す値はＣＰＵ１０のプログラムコードに埋め込まれており、この値をミラー領域に変更したことによるオーバーヘッドはない。
【００５４】
図８は、本発明の第１の実施の形態に係るバス接続回路を備える半導体装置の構成の変形例を示すブロック図である。この図の半導体装置１ａは複数の転送先バススレーブ１５ａ、１５ｂ、１５ｃを備え、バス接続回路２ａは複数の直接転送ライトストローブ信号生成回路１３ａ、１３ｂ、１３ｃを備えている点で、図５の半導体装置１及びバス接続回路２と相違している。複数の直接転送ライトストローブ信号生成回路１３ａ、１３ｂ、１３ｃは、複数の転送先バススレーブ１５ａ、１５ｂ、１５ｃに対応している。
【００５５】
図５の例では、直接転送の対象となる転送先バススレーブ１５が一つであるため、ｂｉｔ［５：４］が「０１」、「１０」、「１１」のいずれかのときは直接転送とすれば良い。一方、この図の例では、直接転送の対象として複数の転送先バススレーブ１５ａ、１５ｂ、１５ｃが設けられている。この場合、ｂｉｔ［５：４］により各転送先を指定することができる。例えば、ｂｉｔ［５：４］が「０１」の場合には第１の転送先バススレーブ１５ａに直接転送するとし、「１０」の場合には第２の転送先バススレーブ１５ｂに直接転送するとし、「１１」の場合には第３の転送先バススレーブ１５ｃに直接転送するとすることができる。
【００５６】
直接転送ライトストローブ信号生成回路１３ａ、１３ｂ、１３ｃは、アドレス信号３１、転送元セレクト信号３０及び転送イネーブル信号３４に基づいて、直接転送ライトストローブ信号３５ａ、３５ｂ、３６ｃを出力する。例えば、直接転送ライトストローブ信号生成回路１３ａにおいて、転送元セレクト信号３０がハイレベルであり、転送イネーブル信号３４がハイレベルであり、ミラー領域を示すアドレス信号３１のｂｉｔ［５：４］が「０１」でアドレスデコーダ２３ａの出力がハイレベルとなったとき、直接転送ライトストローブ信号３５ａがハイレベルとなる。また、直接転送ライトストローブ信号生成回路１３ｂにおいて、転送元セレクト信号３０がハイレベルであり、転送イネーブル信号３４がハイレベルであり、ミラー領域を示すアドレス信号３１のｂｉｔ［５：４］が「１０」でアドレスデコーダ２３ｂの出力がハイレベルとなったとき、直接転送ライトストローブ信号３５ｂがハイレベルとなる。また、直接転送ライトストローブ信号生成回路１３ｃにおいて、転送元セレクト信号３０がハイレベルであり、転送イネーブル信号３４がハイレベルであり、ミラー領域を示すアドレス信号３１のｂｉｔ［５：４］が「１１」でアドレスデコーダ２３ｃの出力がハイレベルとなったとき、直接転送ライトストローブ信号３５ｃがハイレベルとなる。接転送ライトストローブ信号３５ａ、３５ｂ、３５ｃは、３入力ＯＲ回路２８で束ねられ、ライトデータセレクタ２１に入力される。
【００５７】
また、転送先バススレーブ１５、１５ａ、１５ｂ、１５ｃからのリードデータ３６ａ、３６ｂ、３６ｃは、３入力ＯＲ回路２９で束ねられ、セレクタ２２に入力される。
その他の動作は、図５の場合と同様である。
【００５８】
この変形例のように、アドレス信号３１のミラー領域を示すビット（例示：ｂｉｔ［５：４］）を用いることにより、直接転送するか否かという命令（動作）だけでなく、直接転送の転送先を指定するという命令（動作）も同時に実行することも可能となる。
【００５９】
以上のように、ミラー領域へのリードアクセスという命令に対して、追加的に他の命令（動作）を含ませることができる。例えば、上記変形例では、リードアクセスに対して更に「転送先選択」及び「直接転送」を含ませることができる。すなわち、追加的な設定を何ら行うことなく、アドレス信号の変更（ミラー領域の指定）を行うことで、単なるリードアクセスだけでなく、追加的な他の命令（動作）を行わせることが可能となる。
【００６０】
（第２の実施の形態）
次に、本発明の第２の実施の形態に係るバス接続回路を備える半導体装置について説明する。
図９は、本発明の第２の実施の形態に係るバス接続回路を備える半導体装置の構成の一例を示すブロック図である。本実施の形態の半導体装置１ｂ及びバス接続回路２ｂは、バス回路５０、５１、バスブリッジ回路５３、５４、及びＷｒｉｔｅＲｅａｄ変換回路５５を更に具備している点で第１の実施の形態の半導体装置１及びバス接続回路２と相違している。以下では、主に相違点について説明する。
【００６１】
ＣＰＵ１０はバス回路５０に接続されている。バスブリッジ５３は、バス回路５０とバス回路５１とのデータの受け渡しを行う。バスブリッジ５４は、バス回路５１とバス回路１１とのデータの受け渡しを行う。バスブリッジ５３とバスブリッジ５４は一般的なバスブリッジ回路である。また、バスブリッジ５４とバス回路１１との間のデータの受け渡しはＷｒｉｔｅＲｅａｄ変換回路５５を介して行う。ＷｒｉｔｅＲｅａｄ変換回路５５は、そのデータの受け渡しの時、ＣＰＵ１０からのライトアクセス信号をリードアクセス信号に変換する。
【００６２】
図１０は、本発明の第２の実施の形態に係るバス接続回路のＷｒｉｔｅＲｅａｄ変換回路の構成の一例を示すブロック図である。ＷｒｉｔｅＲｅａｄ変換回路５５は、バスブリッジ５４から受信したバススレーブ選択信号４０とアドレス信号３１と転送イネーブル信号３４に基づいて、ＣＰＵ１０のアクセスがミラー領域へのアクセス（直接転送）か否かを検出する。当該ミラー領域へのアクセス（直接転送）の場合、バスブリッジ５４から受信したライトストローブ信号４１を反転しライトストローブ信号４２としてバス回路１１に出力する。また、バスブリッジ５４からのバススレーブ選択信号４０とアドレス信号３１と転送イネーブル信号３４は、更にバス回路１１へも出力される。ＣＰＵリードデータ３９及びＣＰＵライトデータ３８は、ＷｒｉｔｅＲｅａｄ変換回路５５を通過するだけである。ＷｒｉｔｅＲｅａｄ変換回路５５は、アドレスデコーダ８３と３入力ＡＮＤ回路８４とマルチプレクサ８５とを備えている。
【００６３】
アドレスデコーダ８３は、バスブリッジ５４から受信したアドレス信号３１の所定ビットが予め設定されたアドレス値の場合（直接転送の場合）にはハイレベルの結果信号を出力する。所定ビットは、第１の実施の形態で説明されたミラー領域を示すビットである。図６の例では、ｂｉｔ［５：４］である。すなわち、ミラー領域へのアクセスの場合（直接転送の場合）には、ハイレベルの結果信号を出力する。３入力ＡＮＤ回路８４は、その結果信号とバスブリッジ５４から受信したバススレーブ選択信号４０及び転送イネーブル信号３４とのＡＮＤ演算結果をマルチプレクサ８５の制御信号として出力する。すなわち、ミラー領域へのアクセスの場合には、ハイレベルの制御信号を出力する。マルチプレクサ８５は、制御信号に基づいて、ミラー領域へのアクセスの場合には、ライトストローブ信号４１を反転したストローブ信号４２としてバス回路１１に出力する。このストローブ信号４２はライトストローブ信号４１を反転しているのでリードストローブ信号となる。一方、ミラー領域へのアクセスでない場合には、ロウレベルの制御信号を出力する。マルチプレクサ８５は、制御信号に基づいて、ミラー領域へのアクセスでない場合には、ライトストローブ信号４１を反転せずにそのままの状態のストローブ信号４２としてバス回路１１に出力する。このストローブ信号４２はライトストローブ信号４１そのままなのでライトストローブ信号となる。
【００６４】
次に、本発明の第２の実施の形態に係るバス接続回路の制御方法（バス接続回路（半導体装置）の動作）について説明する。
【００６５】
転送元バススレーブ１２へのリードリクエストの場合、ＣＰＵ１０がリードリクエストを発行すると、リードリクエストは、バスブリッジ５３、バスブリッジ５４、転送元バススレーブ１２に伝播する。転送元バススレーブ１２がリードリクエストに応答してリードデータを発行すると、リードデータは、バスブリッジ５４、バスブリッジ５３、ＣＰＵ１０と伝播する。それにより、リードリクエストが完了する。そして、バスブリッジ５３は、リードリクエストと対応するリードデータの転送完了をもってデータ転送完了通知（リードレスポンス）をＣＰＵ１０へ発行することになる。それにより、リードリクエストの処理が完了する。
【００６６】
一方、転送元バススレーブ１２へのライトリクエストの場合、ＣＰＵ１０がライトリクエストを発行すると、ライトリクエストは、バスブリッジ５３、バスブリッジ５４、転送元バススレーブ１２に伝播する。しかし、バスブリッジ５３は、ライトリクエストの発行の次のクロックのタイミングでデータ転送完了通知（ライトレスポンス）をＣＰＵ１０へ発行することができる。バスブリッジ５３がライトデータ転送完了を待つ必要は無い。
【００６７】
以上のことから、本実施の形態では、第１の実施の形態のようにリードリクエストで直接転送を行うのではなく、ライトリクエストで直接転送を行うことしている。それにより、複数のバスブリッジを経由して直接転送のリクエストを伝搬させる場合であっても、ＣＰＵ１０は短期間でデータ転送完了通知を得ることができる。ただし、リードリクエストを用いる第１の実施の形態のバス接続回路の構成を用いるべく、ライトリクエストをＷｒｉｔｅＲｅａｄ変換回路５５でリードリクエストに変更する。以下、詳細に説明する。
【００６８】
図１１は、本発明の第２の実施の形態に係るバス接続回路の制御方法を示すタイミングチャートである。ここでは、ＣＰＵ１０が転送元バススレーブ１２のミラー領域にライトアクセスをすることにより、直接転送（１サイクル転送）をする場合を考える。
【００６９】
Ｔ１のタイミングにおいて、ＣＰＵ１０は、バス回路５０上にライトリクエスト（Ｗ）を発行する。そのライトリクエスト（Ｗ）は、転送元バススレーブ１２のミラー領域へのライトリクエストである。バスブリッジ５３は、バス回路５０からライトリクエスト（Ｗ）を受け取る。
Ｔ２のタイミングにおいて、バスブリッジ５３は、ライトリクエスト（Ｗ）に応答して、バス回路５０上にライトレスポンス（ＷＲ）を返しバス転送が完了する。ＣＰＵ１０は、バス転送が完了したため、Ｔ３のタイミングで次のライトリクエスト（Ｗ）を発行することができる。
【００７０】
Ｔ２のタイミングにおいて、バスブリッジ５３は、ライトリクエスト（Ｗ）に応答して、バス回路５１上にライトリクエスト（Ｗ）を発行する。バスブリッジ５４は、バス回路５１からライトリクエスト（Ｗ）を受け取る。
Ｔ３のタイミングにおいて、バスブリッジ５４は、ライトリクエスト（Ｗ）に応答して、バス回路５１上にライトレスポンス（ＷＲ）を返しバス転送が完了する。バスブリッジ５３は、バス転送が完了したため、Ｔ４のタイミングで次のライトリクエスト（Ｗ）を発行することができる。
【００７１】
Ｔ３のタイミングにおいて、バスブリッジ５４は、ライトリクエスト（Ｗ）に応答して、転送元バススレーブ１２に対してライトリクエスト（Ｗ）を発行する。それに対応して、ＷｒｉｔｅＲｅａｄ変換回路５５は、そのライトリクエスト（Ｗ）をリードリクエスト（Ｒ）に変換し、バス回路１１上に発行する。バス回路１１は、ＷｒｉｔｅＲｅａｄ変換回路５５からリードリクエスト（Ｒ）を受け取る。加えて、バス回路１１は、バスブリッジ５４（ＣＰＵ１０）からのバススレーブ選択信号４０とアドレス信号３１と転送イネーブル信号３４を受け取る。その後、第１の実施の形態と同様の動作を行い、直接転送を実行する。この場合、この図のＴ３が、第１の実施の形態のＴ１に対応する。また、この図のＴ４が、第１の実施の形態のＴ２に対応する。また、その結果、Ｔ４において、転送元バススレーブ１２がリードデータをバス回路１１上に出力することにより、バス回路１１上にリードレスポンス（ＲＲ；ＣＰＵリードデータ３９）が返信され、バス転送が完了する。
【００７２】
図１２は、本発明の第２の実施の形態に係るバス接続回路においてＷｒｉｔｅＲｅａｄ変換回路を用いない場合（Ｏｆｆにした場合）での制御方法を示すタイミングチャートである。ＷｒｉｔｅＲｅａｄ変換回路５５をＯｆｆにして用いない場合、ＷｒｉｔｅＲｅａｄ変換回路５５によるライトリクエストからリードリクエストへの変換が行われない。従って、ＣＰＵ１０は、転送元バススレーブ１２へリードリクエスト（Ｒ）を発行する必要がある。その場合の動作は以下のようになる。
【００７３】
Ｔ１のタイミングにおいて、ＣＰＵ１０は、バス回路５０上にリードリクエスト（Ｒ）を発行する。そのリードリクエスト（Ｒ）は、転送元バススレーブ１２のミラー領域へのライトリクエストである。バスブリッジ５３は、バス回路５０からリードリクエスト（Ｒ）を受け取る。
Ｔ２のタイミングにおいて、バスブリッジ５３は、リードリクエスト（Ｒ）に応答して、バス回路５１上にリードリクエスト（Ｒ）を発行する。バスブリッジ５４は、バス回路５１からリードリクエスト（Ｒ）を受け取る。
Ｔ３のタイミングにおいて、バスブリッジ５４は、リードリクエスト（Ｒ）に応答して、バス回路１１上にリードリクエスト（Ｒ）を発行する。加えて、バス回路１１は、バスブリッジ５４（ＣＰＵ１０）からのバススレーブ選択信号４０とアドレス信号３１と転送イネーブル信号３４を受け取る。
その後、第１の実施の形態と同様の動作を行い、直接転送を実行する。この場合、この図のＴ３が、第１の実施の形態のＴ１に対応する。また、この図のＴ４が、第１の実施の形態のＴ２に対応する。また、その結果、Ｔ４において、転送元バススレーブ１２がリードデータをバス回路１１上に出力することにより、バス回路１１上にリードレスポンス（ＲＲ；ＣＰＵリードデータ３９）が返信される。
Ｔ５のタイミングにおいて、バスブリッジ５４は、リードレスポンス（ＲＲ）に応答して、バス回路５１上にリードレスポンス（ＲＲ）を発行する。バスブリッジ５３は、バス回路５１からリードレスポンス（ＲＲ）を受け取る。
Ｔ６のタイミングにおいて、バスブリッジ５３は、リードレスポンス（ＲＲ）に応答して、バス回路５０上にリードリクエスト（Ｒ）を発行する。ＣＰＵ１０は、バス回路５０からードレスポンス（ＲＲ）を受け取る。以上のプロセスにより、バス転送が完了する。
【００７４】
以上のように、ＷｒｉｔｅＲｅａｄ変換回路５５をＯｆｆにした場合（図１２）、Ｔ１のタイミングでＣＰＵ１０から転送元バススレーブ１２へ発生したリードリクエストは、Ｔ６のタイミングでバスブリッジ５３からＣＰＵ１０へリードレスポンスが返るまでリードデータ転送を完了することができない。すなわち、ＷｒｉｔｅＲｅａｄ変換回路５５をＯｆｆにした場合、ＣＰＵ１０としては、１回の直接転送を完了するのにＴ１からＴ６の６クロックを必要とする。しかし、ＷｒｉｔｅＲｅａｄ変換回路５５をＯｎにした場合（図１１）、ＣＰＵ１０としては、１回の直接転送を完了するのにＴ１からＴ２の２クロックでよい。このように、ＷｒｉｔｅＲｅａｄ変換回路５５を用いることで、ＣＰＵ１０は短期間でデータ転送完了通知を得ることができる。
【００７５】
本実施の形態のバス接続回路においても、第１の実施の形態の効果を得ることができる。その理由は、ＷｒｉｔｅＲｅａｄ変換回路５５によりライトリクエストがリードリクエストに変換されるため、第１の実施の形態と同様の構成及び方法により、転送元バススレーブ１２から転送先バススレーブ１５への直接転送を行うことができるからである。
【００７６】
本実施の形態のバス接続回路では、更に、バスブリッジを介した多段構成バス回路の場合の１サイクル転送のスループットを向上することが可能となる。その理由は、ライトリクエストの場合には、バスブリッジは転送元バススレーブ１２からの応答を待たずにバスマスタにライトレスポンスを返すことができ、バスマスタは次のライトリクエスト発行を開始することができるためである。
【００７７】
以上のように、ミラー領域へのライトアクセスという命令に対して、追加的に他の命令（動作）を含ませることができる。例えば、上記実施の形態では、ライトアクセスに対して更に「ライトアクセスのリードアクセスへの変換」及び「直接転送」を含ませることができる。すなわち、追加的な設定を何ら行うことなく、アドレス信号の変更（ミラー領域の指定）を行うことで、単なるライトアクセスだけでなく、追加的な他の命令（動作）を行わせることが可能となる。
【００７８】
（第３の実施の形態）
次に、本発明の第３の実施の形態に係るバス接続回路を備える半導体装置について説明する。
図１３は、本発明の第３の実施の形態に係るバス接続回路を備える半導体装置の構成の一例を示すブロック図である。本実施の形態の半導体装置１ｃ及びバス接続回路２ｃは、転送元バススレーブ１２のミラー領域にリードアクセスするのではなく、転送先バススレーブ１５のミラー領域にライトアクセスすることで直接転送を実現する点で第１の実施の形態の半導体装置１及びバス接続回路２と相違している。以下では、主に相違点について説明する。
【００７９】
バス接続回路２ｃは、第１の実施の形態のバス接続回路２と比較して、リードデータセレクタ２２がセレクタ６０に置き換えられ、セレクタ１４がセレクタ６１に置き換えられ、直接転送ライトストローブ信号生成回路１３が直接転送リードストローブ信号生成回路６３に置き換えられている。
【００８０】
アドレスデコーダ２０は、スレーブ選択信号４０入力時に、アドレス信号３１によって選択されたバススレーブ（１２、１５）に対してセレクト信号（３０、３７）を出力する。
セレクタ６０は、直接転送リードストローブ信号６２（後述）がロウレベルのとき、かつ、転送先セレクト信号３７がハイレベルのときは転送先リードデータ３６をＣＰＵリードデータ３９として出力する（例示：リードデータ（３６）用配線をＣＰＵリードデータ（３９）用配線に接続する）。また、直接転送リードストローブ信号６２がロウレベルのとき、かつ、転送元セレクト信号３０がハイレベルのときは転送元リードデータ３３をＣＰＵリードデータ３９として出力する（例示：リードデータ（３３）用配線をＣＰＵリードデータ（３９）用配線に接続する）。一方、セレクタ６０は、直接転送リードストローブ信号６２がハイレベルのとき、かつ、転送先セレクト信号３７がハイレベルのときは転送元リードデータ３３をＣＰＵリードデータ３９として出力する（例示：リードデータ（３３）用配線をＣＰＵリードデータ（３９）用配線に接続する）。また、直接転送リードストローブ信号６２がハイレベルのとき、かつ、転送元セレクト信号３０がハイレベルのときは転送先リードデータ３６をＣＰＵリードデータ３９として出力する（例示：リードデータ（３６）用配線をＣＰＵリードデータ（３９）用配線に接続する）。
ライトデータセレクタ２１は、直接転送リードストローブ信号６２（後述）がハイレベルのときは、そのＣＰＵリードデータ３９をスレーブライトデータ３２とする（例示：ＣＰＵリードデータ（３９）用配線をスレーブライトデータ（３２）用配線に接続する）。直接転送ライトストローブ信号３５がロウレベルのときは、ＣＰＵライトデータ３８をスレーブライトデータ３２とする（例示：ＣＰＵライトデータ（３８）用配線をスレーブライトデータ（３２）用配線に接続する）。
【００８１】
直接転送リードストローブ信号生成回路６３は、転送先セレクト信号３７とアドレス信号３１と転送イネーブル信号３４とを受信し、予め設定されたアドレス値の場合には直接転送リードストローブ信号６２にハイレベルを出力する。直接転送リードストローブ信号生成回路６３は、アドレスデコーダ２３と３入力ＡＮＤ回路２４とを備えている。
【００８２】
アドレスデコーダ２３は、アドレス信号３１の所定ビットが予め設定されたアドレス値の場合にはハイレベルの結果信号を出力する。所定ビットは、第１の実施の形態で説明されたミラー領域（図６）を示すビットである。３入力ＡＮＤ回路２４は、その結果信号と転送元セレクト信号３０と転送イネーブル信号３４とのＡＮＤ演算結果を直接転送リードストローブ信号６２として出力する。
【００８３】
セレクタ６１は、転送元バススレーブ１２の直前に接続されている。直接転送リードストローブ信号６２がロウレベルのときは、バス回路１１の信号（転送元セレクト信号３０、アドレス信号３１、転送イネーブル信号３４、ライトストローブ信号４１）を転送元バススレーブ１２に出力する。しかし、直接転送リードストローブ信号６２がハイレベルのときは、転送元セレクト信号３０と転送イネーブル信号３４とをアクティブにし、アドレス信号３１を予めセレクタ６１内に設定された値にして、転送元バススレーブ１２に出力する。
【００８４】
本実施の形態において、ＣＰＵ１０は、転送先バススレーブ１５のミラー領域に対してライトアクセスを行う。ミラー領域の設定方法については、図６の方法が例示される。ただし、本実施の形態では、例えば、図６において、転送元バススレーブの領域と転送先バススレーブの領域とを入れ替える。すなわち、メモリマップ７０において、転送先バススレーブ１５に対してメモリ領域７２を割り当て、転送元バススレーブ１２に対してメモリ領域７１を割り当てる。
【００８５】
次に、本発明の第３の実施の形態に係るバス接続回路の制御方法（バス接続回路（半導体装置）の動作）について説明する。
【００８６】
Ｔ１のタイミングにおいて、ＣＰＵ１０が転送先バススレーブ１５のミラー領域にライトアクセスをする（バス回路１１上にライトリクエストを発行する）。すなわち、ＣＰＵ１０は、スレーブ選択信号４０をハイレベルとし、アドレス信号３１を出力する。アドレスデコーダ２０は、スレーブ選択信号４０及びアドレス信号３１に基づいて、転送先セレクト信号３７をハイレベルとして、アドレス信号３１によって選択された転送先バススレーブ１５にライトアクセス要求を行う。
【００８７】
Ｔ２のタイミングにおいて、ＣＰＵ１０は、転送イネーブル信号３４をハイレベルとする。直接転送リードストローブ信号生成回路６３は、ミラー領域へのアクセスを検出し、直接転送リードストローブ信号６２にハイレベルにする。具体的には、直接転送リードストローブ信号生成回路６３は、アドレス信号３１、転送先セレクト信号３７及び転送イネーブル信号３４に基づいて、直接転送リードストローブ信号６２を生成する。このとき、転送先セレクト信号３７がハイレベルであり、転送イネーブル信号３４がハイレベルであり、ミラー領域を示すアドレス信号３１のｂｉｔ［５：４］をアドレスデコーダ２３でデコードした結果がハイレベルとなったとき、直接転送リードストローブ信号６２がハイレベルとなる。
【００８８】
セレクタ６１は、直接転送リードストローブ信号６２がハイレベルのとき、転送元セレクト信号３０と転送イネーブル信号３４とをアクティブにし、アドレス信号３１を予めセレクタ６１内に設定された値にして、転送元バススレーブ１２に出力する。転送元バススレーブ１２は、アドレス信号３１によって指定された領域から転送元リードデータ３３を出力する。
【００８９】
セレクタ６０は、直接転送リードストローブ信号６２がハイレベルのとき、かつ、転送先セレクト信号３７がハイレベルのとき、転送元リードデータ３３をＣＰＵリードデータ３９として出力する（例示：リードデータ（３３）用配線をＣＰＵリードデータ（３９）用配線に接続する）。転送元リードデータ３３はリードレスポンスとなる。ライトデータセレクタ２１は、直接転送リードストローブ信号６２がハイレベルのときは、そのＣＰＵリードデータ３９をスレーブライトデータ３２とする（例示：ＣＰＵリードデータ（３９）用配線をスレーブライトデータ（３２）用配線に接続する）。
【００９０】
転送先バススレーブ１５は、転送先セレクト信号３７と転送イネーブル信号３４とライトストローブ信号４１とアドレス信号３１とに基づいて、スレーブライトデータ３２を書き込むことができる（ＣＰＵ１０のライトアクセス）。
【００９１】
本実施の形態においても、第１の実施の形態と同様の効果を得ることができる。また、この場合にも、第１の実施の形態のような変形例が可能である。また、第２の実施の形態の場合にはＷｒｉｔｅＲｅａｄ変換回路５５が不要となる。また、Ｗｒｉｔｅ命令を検出して転送先バススレーブ１５から転送元バススレーブ１２にリードを行う構成にしたため、転送先バススレーブ１５のアクセスするアドレス（書き込み先のアドレス）をＣＰＵ１０から制御することが可能となる。
【００９２】
以上のように、ミラー領域へのライトアクセスという命令に対して、追加的に他の命令（動作）を含ませることができる。例えば、上記実施の形態では、ライトアクセスに対して更に「直接転送」を含ませることができる。すなわち、追加的な設定を何ら行うことなく、アドレス信号の変更（ミラー領域の指定）を行うことで、単なるリードアクセス又はライトアクセスだけでなく、追加的な他の命令（動作）を行わせることが可能となる。
【００９３】
以上説明されたように、上記各実施の形態により、直接転送をする場合（１サイクル転送の場合）と直接転送をしない場合（例示：２サイクル転送の場合）とが混在しても、ＭＥＭＣ設定等の追加の動作を行うことなく、１サイクル転送することが可能となる。
【００９４】
また、上記各実施の形態により、ミラー領域へのリードアクセス又はライトアクセスという命令に対して、追加的に他の命令（動作）を含ませることができる。例えば、上記実施の形態では、リードアクセスに対して更に「直接転送」を含ませたり（図５）、リードアクセスに対して更に「転送先選択」及び「直接転送」を含ませたり（図８）、ライトアクセスに対して更に「ライトアクセスのリードアクセスへの変換」及び「直接転送」を含ませたり（図９、図１０）、ライトアクセスに対して更に「直接転送」（図１３）を含ませたりすることができる。すなわち、追加的な設定を何ら行うことなく、アドレス信号の変更（ミラー領域の指定）を行うことで、単なるリードアクセス又はライトアクセスだけでなく、追加的な他の命令（動作）を行わせることが可能となる。
【００９５】
ミラー領域へのアクセス命令に対して追加的に含ませる他の命令（動作）としては、上記各実施の形態の例の他に種々の命令が考えられる。すなわち、例えば、第１の実施の形態における直接転送ライトストローブ信号３５は、以下のような種々の用途に用いることが可能である。ただし、以下では、直接転送ライトストローブ信号３５のことをミラー領域検出信号と呼ぶ。ミラー領域検出信号は、ミラー領域へのアクセスを検出することでハイレベルとなる信号である。
【００９６】
ミラー領域検出信号をバススレーブに入力し、ミラー領域検出信号に基づいてバススレーブのレジスタインターフェース回路を制御する。それにより、バススレーブ内のリードオンリーレジスタにライトできるようになる。このとき、アドレス信号は、例えば、ミラー領域（リードオンリーレジスタにライトする命令に対応）＋リードオンリーレジスタ内のアドレスである。通常は、モード設定（変更）のためにレジスタアクセスが必要となるが、本発明では不要である。
【００９７】
ミラー領域検出信号をバススレーブに入力し、ミラー領域検出信号に基づいてバススレーブのレジスタインターフェース回路を制御する。それにより、バススレーブ内のライトオンリーレジスタをリードできるようになる。このとき、アドレス信号は、例えば、ミラー領域（ライトオンリーレジスタをリードする命令に対応）＋ライトオンリーレジスタ内のアドレスである。通常は、モード設定（変更）のためにレジスタアクセスが必要となるが、本発明では不要である。
【００９８】
ミラー領域検出信号をバススレーブに入力し、ミラー領域検出信号に基づいてバススレーブのレジスタインターフェース回路を制御する。それにより、バススレーブの隠しレジスタ（リードしてもレジスタ値に関わらず０が読み出せる）の値をリードできるようになる。このとき、アドレス信号は、例えば、ミラー領域（隠しレジスタをリードする命令に対応）＋隠しレジスタ内のアドレスである。通常は、モード設定（変更）のためにレジスタアクセスが必要となるが、本発明では不要である。
【００９９】
ミラー領域検出信号をバススレーブに入力し、ミラー領域検出信号に基づいてバススレーブのリードデータ・ライトデータの接続を変更する。それにより、リードデータ・ライトデータのエンディアンを変換できるようになる。このとき、アドレス信号は、例えば、ミラー領域（リードデータ・ライトデータの接続を変更する命令に対応）＋リードデータ又はライトデータのアドレスである。通常は、モード設定（変更）のためにレジスタアクセスが必要となるが、本発明では不要である。
【０１００】
ミラー領域検出信号をバススレーブに入力し、ミラー領域検出信号に基づいてバススレーブのリードデータ・ライトデータに接続した型変換回路を制御する。それにより、リードデータ・ライトデータの型変換（Ｓｉｇｎｅｄ／Ｕｎｓｉｇｎｅｄ、固定小数点−浮動小数点）ができるようになる。このとき、アドレス信号は、例えば、ミラー領域（リードデータ・ライトデータの型変換命令に対応）＋リードデータ又はライトデータのアドレスである。通常は、モード設定（変更）のためにレジスタアクセスが必要となるが、本発明では不要である。
【０１０１】
ミラー領域検出信号をバススレーブに入力し、ミラー領域検出信号に基づいてバススレーブのレジスタインターフェース回路を制御する。それにより、リードデータ・ライトデータのパッキング（複数のｂｙｔｅデータを１回で纏めてアクセスする）ができるようになる。このとき、アドレス信号は、例えば、ミラー領域（リードデータ・ライトデータのパッキング命令に対応）＋リードデータ又はライトデータのアドレスである。通常は、モード設定（変更）のためにレジスタアクセスが必要となるが、本発明では不要である。
【０１０２】
ミラー領域検出信号をバススレーブに入力し、ミラー領域検出信号に基づいてバススレーブのリードデータ・ライトデータに接続した画像フォーマット変換回路を制御する。それにより、リードデータ・ライトデータの画像フォーマット変換（ＹＵＶ４２２，ＹＵＶ４２０，ＹＵＶ４１１，ＲＧＢ  ｅｔｃ．）ができるようになる。このとき、アドレス信号は、例えば、ミラー領域（リードデータ・ライトデータの画像フォーマット変換命令に対応）＋リードデータ又はライトデータのアドレスである。
【０１０３】
ミラー領域検出信号をバススレーブに入力することで、ミラー領域検出信号に基づいてバススレーブの機能を変更する（ｅｘ．ＵＡＲＴの送信ＦＩＦＯ領域の場合、ミラー領域ごとに出力フォーマットが変わる）ことができるようになる。このとき、アドレス信号は、例えば、ミラー領域（機能を変更する命令に対応）＋バススレーブのアドレスである。通常は、モード設定（変更）のためにレジスタアクセスが必要となるが、本発明では不要である。
【０１０４】
本発明は上記各実施の形態に限定されるものではなく、発明の範囲及び精神を逸脱しない変形や変更が可能であることは明らかである。また、各実施の形態に用いられている各技術は、技術的矛盾の発生しない限り、他の実施の形態や応用例において適用可能である。
【０１０５】
本発明はいくつかの実施の形態と併せて上述されたが、これらの実施の形態は本発明を説明するために単に提供されたものであることは当業者にとって明らかであり、意義を限定するように添付のクレームを解釈するために頼ってはならない。
【符号の説明】
【０１０６】
１、１ａ、１ｂ、１ｃ    半導体装置
２、２ａ、２ｂ、２ｃ    バス接続回路
１０    バスマスタ（ＣＰＵ）
１１    バス回路
１２    転送元バススレーブ
１３、１３ａ、１３ｂ、１３ｃ    直接転送ライトストローブ信号生成回路
１４    セレクタ
１５、１５ａ、１５ｂ、１５ｃ    転送先バススレーブ
２０    アドレスデコーダ
２１    ライトデータセレクタ
２２    セレクタ
２３、２３ａ、２３ｂ、２３ｃ    アドレスデコーダ
２４、２４ａ、２４ｂ、２４ｃ    ３入力ＡＮＤ回路
２８    ３入力ＯＲ回路
２９    ３入力ＯＲ回路
３０    転送元セレクト信号
３１    アドレス信号
３２    スレーブライトデータ
３３    転送元リードデータ
３４    転送イネーブル信号
３５、３５ａ、３５ｂ、３５ｃ    直接転送ライトストローブ信号
３６、３６ａ、３６ｂ、３６ｃ    リードデータ
３７    セレクト信号
３８    ＣＰＵライトデータ
３９    ＣＰＵリードデータ
４０    スレーブ選択信号
４１    ライトストローブ信号
４２    ライトストローブ信号
５０、５１    バス回路
５３、５４    バスブリッジ
５５    ＷｒｉｔｅＲｅａｄ変換回路
６０    セレクタ
６１    セレクタ
６２    直接転送リードストローブ信号
６３    直接転送リードストローブ信号生成回路
７０    メモリマップ
７１    メモリ領域
７２    メモリ領域
７２ａ〜７２ｄ    メモリ領域
８３    アドレスデコーダ
８４    ３入力ＡＮＤ回路
８５    マルチプレクサ
【図１】
0005856434.tif 000002
【図２】
0005856434.tif 000003
【図３】
0005856434.tif 000004
【図４】
0005856434.tif 000005
【図５】
0005856434.tif 000006
【図６】
0005856434.tif 000007
【図７】
0005856434.tif 000008
【図８】
0005856434.tif 000009
【図９】
0005856434.tif 000010
【図１０】
0005856434.tif 000011
【図１１】
0005856434.tif 000012
【図１２】
0005856434.tif 000013
【図１３】
0005856434.tif 000014