(57)【要約】【課題】  ポート構成の変更を簡易に行える入出力端子装置を提供する。【解決手段】  複数の端子部１０１ａ〜ｆを有する入出力端子装置１００を制御する方法であって、第１アドレス部分及び第２アドレス部分を含むアドレスを各端子部１０１ａ〜ｆに記憶させ、第１アドレス部分によって各端子部１０１ａ〜ｆをグループ分けするステップと、第１アドレス部分を指定するためのアクセスアドレスを受け付けるステップと、アクセスアドレスに一致する第１アドレス部分を記憶している端子部１０１ａ〜ｆのグループを選択するステップと、選択された各端子部１０１ａ〜ｆが記憶する第２アドレス部分によって、選択された各端子部１０１ａ〜ｆを介したデータの送受信を制御するステップとを含むことを特徴とする入出力端子装置１００の制御方法。【選択図】      図１
2005327062.tif 000002
【特許請求の範囲】
【請求項１】
複数の端子部を有する入出力端子装置を制御する方法であって、
第１アドレス部分及び第２アドレス部分を含むアドレスを各端子部に記憶させ、前記第１アドレス部分によって各端子部をグループ分けするステップと、
前記第１アドレス部分を指定するためのアクセスアドレスを受け付けるステップと、
前記アクセスアドレスに一致する前記第１アドレス部分を記憶している端子部のグループを選択するステップと、
前記選択された各端子部が記憶する前記第２アドレス部分によって、前記選択された各端子部を介したデータの送受信を制御するステップと、
を含むことを特徴とする入出力端子装置の制御方法。
【請求項２】
前記グループを選択するステップは、
前記端子部ごとに、前記アクセスアドレスと前記第１アドレス部分を比較するステップと、
前記アクセスアドレスに一致する前記第１アドレス部分を記憶している端子部に選択信号を出力するステップと、
を含むことを特徴とする請求項１に記載の入出力端子装置の制御方法。
【請求項３】
前記データの送受信を制御するステップでは、前記選択された各端子部において、当該端子部を介して送受信されるデータのうち、当該端子部に記憶されている前記第２アドレス部分に対応する部分以外をマスクすることを特徴とする、請求項１に記載の入出力端子装置の制御方法。
【請求項４】
前記第１アドレス部分は、前記入出力端子装置で使用可能なポートを特定するアドレスであり、前記第２アドレス部分は、前記ポートに属するビットを特定するためのビットアドレスであることを特徴とする、請求項１に記載の入出力端子装置の制御方法。
【請求項５】
前記入出力端子装置は、複数の外部接続端子を有する半導体装置に搭載されており、
前記入出力端子装置の各端子部は、各外部接続端子に一対一に対応付けられていることを特徴とする、請求項４に記載の入出力端子装置の制御方法。
【請求項６】
前記ポート数と前記ビット数の乗算値が、前記外部接続端子の数よりも大きいことを特徴とする、請求項５に記載の入出力端子装置の制御方法。
【請求項７】
前記入出力端子装置は、汎用入出力端子装置（ＧＰＩＯ:General Purpose Input/Output Module）であることを特徴とする、請求項１に記載の入出力端子装置の制御方法。
【請求項８】
複数の端子部を有する入出力端子装置であって、
第１アドレス部分及び第２アドレス部分を含むアドレスを各端子部において記憶するアドレスレジスタと、
前記第１アドレス部分を指定するためのアクセスアドレスを受け付け、前記アクセスアドレスに一致する前記第１アドレス部分を記憶している端子部のグループを選択する選択回路と、
前記選択された各端子部が記憶する前記第２アドレス部分によって、前記選択された各端子部を介したデータの送受信を制御する送受信制御回路と、
を備えることを特徴とする入出力端子装置。
【請求項９】
前記選択回路は、前記アクセスアドレスと端子部に記憶されている前記第１アドレス部分を比較する比較回路と、前記第１アドレス部分が前記アクセスアドレスに一致する場合に端子部に選択信号を出力する選択信号出力回路とを端子部ごとに有することを特徴とする請求項８に記載の入出力端子装置。
【請求項１０】
前記送受信制御回路は、前記選択された各端子部において、当該端子部を介して送受信されるデータのうち、当該端子部に記憶されている前記第２アドレス部分に対応する部分以外をマスクすることを特徴とする、請求項８に記載の入出力端子装置。
【請求項１１】
前記第１アドレス部分は、前記入出力端子装置で使用可能なポートを特定するアドレスであり、前記第２アドレス部分は、前記ポートに属するビットを特定するためのビットアドレスであることを特徴とする、請求項８に記載の入出力端子装置。
【請求項１２】
前記入出力端子装置は、複数の外部接続端子を有する半導体装置に搭載されており、
前記入出力端子装置の各端子部は、各外部接続端子に一対一に対応付けられていることを特徴とする、請求項１１に記載の入出力端子装置。
【請求項１３】
前記ポート数と前記ビット数の乗算値が、前記外部接続端子の数よりも大きいことを特徴とする、請求項１２に記載の入出力端子装置。
【請求項１４】
前記入出力端子装置は、汎用入出力端子装置（ＧＰＩＯ:General Purpose Input/Output Module）であることを特徴とする、請求項８に記載の入出力端子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入出力端子装置の制御方法、特に、複数の端子部を有する入出力端子装置を制御する方法に関する。
また、本発明は、入出力端子装置、特に、複数の端子部を有する入出力端子装置に関する。
【背景技術】
【０００２】
汎用入出力端子装置(General Purpose Input/Output)等の入出力装置は、大規模集積回路（ＬＳＩ）等に搭載され、１又は複数の外部接続端子をポートと呼ばれるグループとして使用し、１又は複数のポートがＬＳＩに搭載される。汎用入出力端子装置は、半導体装置と外部の部品との間のデータ送受信をインターフェースするため、通常は、部品や用途毎に別のポートが設けられる。各端子は、入出力方向、割り込み方向の受付、データの出力値などがポート毎に設定可能である。
【０００３】
主に、携帯機器向けＬＳＩ等では、デバイスの集積度を上げて多機能化するとともに、実装面積を極力小さくしなければならない。多機能化により外部接続端子の数は増えるが、実装面積を小さくするには、チップの外に出す外部接続端子の数は減らさなければならない。つまり、無駄な外部接続端子は設置しないで、かつ、出来るだけ端子の数を多くしたいという相反する要求をどう解決するかが問題となる。従来の汎用入出力端子では、どの端子がどのポートに属するかは、設計段階で固定的に割り付けられており、半導体装置のチップとして作成されてからは変更することができない。各ポートごとに設定用のレジスタのアドレスが固定されているため、後でポート構成を変更することになった場合、ソフトウェアによる複雑な処理が必要となり、パフォーマンスが悪くなる。
【０００４】
特許文献１には、複数のＰＣＩデバイスがＣＰＵに接続されたコンピュータシステムが記載されている。各ＰＣＩデバイスは、デバイス番号を設定するための番号設定レジスタと、デバイス番号をアドレス選択信号にデコードするデコーダと、アドレス選択信号とアドレス／データバスの信号を比較し、内部ＩＤＳＥＬ信号を発生させるセレクタとを備えている。アドレス選択信号は、アドレス／データバスの信号と同一のビット数を有しており、番号設定レジスタのデバイス番号に対応するビットが１にアサートされる。アドレス／データバスがターゲットとするＰＣＩデバイスのデバイス番号に対応するビットを１にアサートして各ＰＣＩデバイスに信号を送ると、各ＰＣＩデバイスでは、アドレス／データバスの信号とアドレス選択信号とを比較し、両者の同一ビットが１にアサートされていれば、内部ＩＤＳＥＬ信号を１にアサートし、そのＰＣＩデバイスが選択されるように構成されている。
【特許文献１】特開平１０−３３４０３２号公報（第４−７頁、第１，３図）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載のコンピュータシステムでは、ＣＰＵに接続される複数のＰＣＩデバイスから目的のＰＣＩデバイスを選択するために、各ＰＣＩデバイスに番号設定レジスタを設け、番号設定レジスタにデバイス番号を記憶させておき、デバイス番号に対応するアドレス選択信号をＣＰＵからの信号（アドレス／データバスの信号）と比較してＰＣＩデバイスを選択するように構成されており、番号レジスタのデバイス番号を書き換えることによってデバイス番号を柔軟に変更することが可能と思われる。しかしながら、デバイス番号はＰＣＩデバイスごとに重複しないように設定される固有の番号であり、複数のＰＣＩデバイスのうちの１つ選択する構成である。したがって、１又は複数の外部接続端子から構成されるグループを選択する構成ではなく、ポート構成のようなグループ分けの変更に特許文献１の構成を適用できない。従って、入出力端子装置においてポート構成の変更を簡易に行えるようにする必要がある。
【課題を解決するための手段】
【０００６】
本発明に係る入出力端子装置の制御方法は、複数の端子部を有する入出力端子装置を制御する方法であって、第１アドレス部分及び第２アドレス部分を含むアドレスを各端子部に記憶させ、第１アドレス部分によって各端子部をグループ分けするステップと、第１アドレス部分を指定するためのアクセスアドレスを受け付けるステップと、アクセスアドレスに一致する第１アドレス部分を記憶している端子部のグループを選択するステップと、選択された各端子部が記憶する第２アドレス部分によって、選択された各端子部を介したデータの送受信を制御するステップとを含むことを特徴とする。
【発明の効果】
【０００７】
この入出力端子装置の制御方法では、端子部ごとに割り当てるアドレスを２つの部分から構成し、第１アドレス部分を各端子部のグループ分けに使用し、第２アドレス部分をデータの送受信の制御に使用する。従って、各端子部に記憶させるアドレスを書き換えれば、第１アドレス部分の変更によって端子部のグループ分け（ポート構成）を容易に変更できるとともに、第２アドレス部分の変更によって、変更後のグループ分け（ポート構成）におけるデータの送受信を的確に行うことができる。
【発明を実施するための最良の形態】
【０００８】
〔全体構成〕
図１は、本発明の一実施形態に係る汎用入出力端子（ＧＰＩＯ）１００が搭載された大規模集積回路（ＬＳＩ）１０００の概略構成図である。ＬＳＩ１０００は、ＧＰＩＯ１００と、ＣＰＵ２００と、外部接続端子３００ａ〜ｆとを備えている。
外部接続端子３００ａ〜ｆは、ＬＳＩ１０００の内部回路と外部の回路とを接続するためにＬＳＩ１０００のパッケージの外部に露出して設けられている。ＣＰＵ２００は、ＧＰＩＯ１００を介して外部接続端子３００ａ〜ｆとの間でデータの送受信を実行する。
【０００９】
ＧＰＩＯ１００は、サブモジュール１０１ａ〜ｆと、アドレスデコーダ１０２とを備えている。
サブモジュール１０１ａ〜ｆは、それぞれＧＰＩＯ１００の端子部（ビット）を構成し、各外部接続端子３００ａ〜ｆに一対一に対応づけられている。例えば、サブモジュール１０１ａは、外部接続端子３００ａに一対一に対応づけられている。サブモジュール１０１ａ〜ｆは、制御レジスタと、アドレスレジスタとを備えている。制御レジスタは、入出力方向、割り込み方向の受付、データの出力値等を記憶する各種レジスタからなる。アドレスレジスタは、どのポートかを示すポートアドレスと、データバスの何ビット目かを表すビットアドレスとから構成されるアドレスが記憶されている。
【００１０】
〔アドレスデコーダ〕
アドレスデコーダ１０２は、ＣＰＵ２００から、アクセス先のポートを示すアクセスアドレスを受け取り、そのアクセスアドレスに一致するサブモジュール１００ａ〜ｆを選択する。選択されたサブモジュール１００ａ〜ｆは、当該サブモジュール１００ａ〜ｆを介して、対応する外部接続端子３００ａ〜ｆを介してデータの送受信を実行する。アドレスデコーダ１０２は、図２に示すように、マッピングデコーダ１０３ａ〜ｆと、論理積回路１０５ａ〜ｃと、論理和回路１０４とを備えている。
【００１１】
マッピングデコーダ１０３ａ〜ｆは、各サブモジュール１０１ａ〜ｆにそれぞれ一対一に対応づけられている。例えば、マッピングデコーダ１０３ａは、サブモジュール１０１ａに一対一に対応付けられている。また、マッピングデコーダ１０３ａ〜ｆは、対応するサブモジュール１０１ａ〜ｆに記憶されているポートアドレス（アドレスの上位ビット）と、アクセスアドレスとを比較し、両者が一致していれば、対応するサブモジュール１０１ａ〜ｆに選択信号を送り、対応するサブモジュール１０１ａ〜ｆを選択する。また、マッピングデコーダ１０３ａ〜ｆは、ＣＰＵ２００から受け取った出力データのうち、サブモジュール１０１ａ〜ｆに記憶されているビットアドレス（アドレスの下位ビット）で指定されるビット以外のビットをマスクして、マスクされた出力データを対応するサブモジュール１０１ａ〜ｆに出力する。また、マッピングデコーダ１０３ａ〜ｆは、サブモジュール１０１ａ〜ｆから入力された入力データのうち、サブモジュール１０１ａ〜ｆに記憶されているビットアドレス（アドレスの下位ビット）で指定されるビット以外のビットをマスクして、マスクされた入力データを、論理和回路１０４を介してＣＰＵ２００に出力する。ここで、出力データは、ＬＳＩ１０００の内部から外部に出力されるデータであり、入力データは、ＬＳＩ１０００の外部から内部に入力されるデータである。
【００１２】
論理和回路１０４は、各マッピングデコーダ１０３ａ〜ｆから入力される入力データをビットごとに論理和して、ＣＰＵ２００に出力する。論理和回路１０４の出力側とＣＰＵ２００とは、データバスで接続されており、ここでは、データバスのビット幅は４ビットとする。各マッピングデコーダ１０３ａ〜ｆから論理和回路１０４への入力データも、それぞれ、４ビットのビット幅を有するデータバスで接続されている。
【００１３】
マッピングデコーダ１０３ａは、図３に示すように、論理積回路１０６と、比較回路１０７と、ポートデコーダ１０８と、分配回路１０９と、ビットデコーダ１１０と、マスク回路１１１とを備えている。マッピングデコーダ１０３ｂ〜ｆについても同様の構成であるので、ここではマッピングデコーダ１０３ａを例に挙げて説明する。
論理積回路１０６は、比較回路１０７から一致信号が出力される場合に、対応するサブモジュール１０１ａに選択信号を出力する。比較回路１０７は、ＣＰＵ２００から入力されるアクセスアドレスと、サブモジュール１０１ａに記憶されているポートアドレスとを比較し、両者が一致する場合に一致信号を出力する。ポートデコーダ１０８は、サブモジュール１０１ａのアドレスの上位ビット（ポートアドレス）をデコードし、分配回路１０９に出力する。分配回路１０９は、外部接続端子３００ａからサブモジュール１０１ａを介して割り込み信号が入力された場合に、ポートデコーダ１０８から出力（デコードされたポートアドレス）に対応する論理積回路１０５ａに「０」を出力する。ビットデコーダ１１０は、サブモジュール１０１ａに記憶されているビットアドレスをデコードし、マスク回路１１１に出力する。
【００１４】
マスク回路１１１は、ビットデコーダ１１０からの出力（デコードされたビットアドレス）によって、出力データ及び入力データをマスクする。出力データは、各マッピングデコーダ１０３ａ〜ｆに分配された後（図２）、マッピングデコーダ１０３ａ〜ｆのマスク回路１１１によってマスクされ（図３）、マスク後の出力データが、対応するサブモジュール１０１ａ〜ｆに出力される。各サブモジュール１０１ａ〜ｆからの入力データは、マスク回路１１１でマスクされ、マスクされた入力データが論理和回路１０４に出力される。
【００１５】
図４は、マスク回路１１１の構成例を示す。
出力データは、データバスのビット幅４ビットのデータとして論理和回路１１２ａ〜ｄに入力される。論理積回路１１２ａ〜ｄでは、ビットデコーダ１１０からの出力によって指定されるビット以外のデータがマスクされる。例えば、サブモジュール１０１ａの場合、サブモジュール１０１ａに記憶されたビットアドレスが第３ビットを示すとすると、論理積回路１１２ｃに１が入力されて論理積回路１１２ｃからは出力データが出力されるが、論理積回路１１２ａ，ｂ，ｄには０が入力されて出力データがマスクされる。そして、論理積回路１１２ｃを通過した出力データが、論理和回路１１３からサブモジュール１０１ａに出力される。
【００１６】
また、入力データにおいても、論理積回路１１４ａ〜ｄがデータバスのビット幅に対応する数だけ設けられており、入力データは、論理積回路１１４ａ〜ｆから論理和回路１０４を介してＣＰＵ２００に出力される。サブモジュール１０１ａに記憶されたビットアドレスが第３ビットを示すとすると、論理積回路１１４ｃに１が入力され、論理積回路１１４ａ，ｂ，ｄには０が入力されてデータがマスクされ、マスク後の入力デ―タが論理和回路１０４に出力される。
【００１７】
論理和回路１０４は、図５に示すように、入力側のデータバスの幅に対応する数の論理和回路１１５ａ〜ｄを備えている。図５の例では、データバス幅が４ビットであり、論理和回路１０４は、４つの論理和回路１１５ａ〜ｄを備えている。論理和回路１１５ａは、マッピングデコーダ１０３ａ〜ｆのそれぞれから出力される第１ビットの入力データの論理和を算出してＣＰＵ２００に出力する。論理和回路１１５ｂ〜ｃも、同様に、マッピングデコーダ１０３ａ〜ｆのそれぞれから出力される第２〜第４ビットの入力データの論理和をそれぞれ算出してＣＰＵ２００に出力する。
【００１８】
次に、図６に示すポートの構成例を用いて、外部接続端子３００ａ〜ｅ（サブモジュール１０１ａ〜ｆ）のポート構成方法について説明する。この例では、ポートＡ〜Ｄを使用する場合について説明する。ポートＡ、Ｂ、Ｃ、Ｄのポートアドレスは、それぞれ、０ｘ００、０ｘ０１、０ｘ０２、０ｘ０３である。第１〜第４ビットのビットアドレスは、それぞれ、０ｘ００、０ｘ０１、０ｘ０２、０ｘ０３である。各外部接続端子３００ａ〜ｆにそれぞれ一対一に対応するサブモジュール１０１ａ〜ｆには、ポートアドレス及びビットアドレスから構成されるアドレスが割り当てられ、各サブモジュール１０１ａ〜ｆに割り当てられたアドレスはアドレスレジスタに記憶される。例えば、外部接続端子３００ａに割り当てられるアドレスは０ｘ０００２であり、上位ビット０ｘ００がポートアドレス（ポートＡ）を表し、下位ビット０ｘ０２が、ポートＡに属するビットのアドレスであるビットアドレスを表す。したがって、各サブモジュール１０１ａ〜ｆのアドレスレジスタに記憶されているアドレスを書き換えることによって、外部接続端子３００ａ〜ｆのポート構成を変更することが可能である。ここでは、ポート数４、ビット数４としたが、ポートアドレス及びビットアドレスを増減させれば、ポート数及びビット数を容易に変更可能である。
【００１９】
次に、ＣＰＵ２００からポートＡへのアクセスを、図７を参照して説明する。
ＧＰＩＯ１００が、ＣＰＵ２００からポートＡを示すポートアドレス０ｘ００をアクセスアドレスとして受け取る（ステップＳ１１）と、図３に示す各マッピングデコーダ１０３ａ〜ｆの比較回路１０７において、アクセスアドレス０ｘ００と、サブモジュール１０１ａ〜ｆに記憶されているポートアドレスとを比較する（ステップＳ１２）。比較の結果、両者が一致するサブモジュールがあれば、両者が一致するサブモジュールに選択信号を出力する（ステップＳ１３）。この例では、両者が一致するサブモジュール１０１ａ、ｃ、ｄに選択信号が入力され、サブモジュール１０１ａ、ｃ、ｄが選択される。選択されたサブモジュール１０１ａ、ｃ、ｄからは、それぞれ、アドレスレジスタから読み出したビットアドレスがマッピングデコーダ１０３ａ、ｃ、ｄに出力される。各マッピングデコーダ１０３ａ、ｃ、ｄではビットデコーダ１１０によってビットアドレスがデコードされ、デコードされたビットアドレスによって、入力データ及び出力データがマスクされる（ステップＳ１４）。
【００２０】
また、ステップＳ１２において、アクセスアドレスと一致するポートアドレスを記憶しているサブモジュールがない場合には、このアクセスを無視してステップＳ１３及びＳ１４の処理を行わない。例えば、アクセスアドレスとしてポートＤに対応するポートアドレス０ｘ０３を受け取った場合には、アクセスアドレスに一致するポートアドレスを記憶しているサブモジュールが存在しないので、このアクセスを無視する。
【００２１】
具体的には、マッピングデコーダ１０３ａでは、対応するサブモジュール１０１ａのビットアドレスが０ｘ０２であり、データバスの第３ビットが選択され、それ以外のデータバスのビットがマスクされる。マッピングデコーダ１０３ｃでは、データバスの第１ビットが選択され、それ以外のデータバスのビットがマスクされる。マッピングデコーダ１０３ｄでは、データバスの第２ビットが選択され、それ以外のデータバスのビットがマスクされる。例えば、ポートＡを構成するサブモジュール１０１ａ，ｃ，ｄにそれぞれ１，０，１を入力した場合、マッピングデコーダ１０３ａからの入力データの第３ビット＝１、マッピングデコーダ１０３ｃからの入力データの第１ビット＝０、マッピングデコーダ１０３ｄからの入力データの第２ビット＝１が論理和回路１０４に出力され、各ビットに対応する論理和回路１１５ａ〜ｄからそれぞれ０，１，１，０が出力される。
【００２２】
〔作用効果〕
このように、各サブモジュール１０１ａ〜ｆがどのポートの何ビット目に属するかを、アドレスレジスタの値によって制御できるため、ユーザ側でポート構成を容易に変更できる。各サブモジュール１０１ａ〜ｆに記憶させるアドレスを書き換えれば、ポートアドレスの変更によってサブモジュール１０１ａ〜ｆのポート構成を容易に変更できるとともに、ビットアドレスの変更によって、変更後のポート構成におけるデータの送受信を的確に行うことができる。
【００２３】
また、ポート数＊ビット幅の数が、外部接続端子３００ａ〜ｆの数よりも多いようなポート数及びビット幅を使用可能にする場合でも、ポート数＊ビット幅の数だけのサブモジュールを必要とせず、外部接続端子３００ａ〜ｆごとにサブモジュール１０１ａ〜ｆを設けるだけでよい。具体的には、ポート数を多くとりたい場合には、各ポートのビット幅を小さくとるように、ビット数を多く取りたい場合には、ポート数を小さくするように、サブモジュール１０１ａ〜ｆに割り当てれば良い。
【００２４】
また、使用するポートアドレス及びビットアドレスを増減させることにより、ポート数及びビット数を容易に変更できる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態に係るＧＰＩＯが適用されるＬＳＩの概略構成図。
【図２】アドレスデコーダの概略構成図。
【図３】マッピングデコーダの概略構成図。
【図４】マスク回路の概略構成図。
【図５】論理和回路部の概略構成図。
【図６】外部接続端子をポートにグループ分けする例。
【図７】ポートへのアクセス処理を説明するフローチャート。
【符号の説明】
【００２６】
１０００  ＬＳＩ
１００  ＧＰＩＯ
１０１ａ〜ｆ  サブモジュール
１０２  アドレスデコーダ
１０３ａ〜ｆ  マッピングデコーダ
１０４  論理和回路
１０５ａ〜ｃ  論理積回路
１０６  論理積回路
１０７  比較回路
１０８  ポートデコーダ
１０９  分配回路
１１０  ビットデコーダ
１１１  マスク回路
２００  ＣＰＵ
３００ａ〜ｆ  外部接続端子
【図１】
2005327062.tif 000003
【図２】
2005327062.tif 000004
【図３】
2005327062.tif 000005
【図４】
2005327062.tif 000006
【図５】
2005327062.tif 000007
【図６】
2005327062.tif 000008
【図７】
2005327062.tif 000009