(57)【要約】【課題】  アドレス幅やデータ幅と同じ数の信号線を使用するアドレスバスやデータバスでは、バスを構成する多数の信号線のために、シリコンチップやプリント基板上に多くの面積が使用された。【解決手段】  アドレスとデータおよび制御信号を、シリアル通信により転送を行なうためのシリアルバスと、アドレスなどの情報をもとに、シリアルバスを通して行なわれる通信の通信経路を切り替えるバススイッチを使用して、プログラム実行部と周辺機器との間のデータ交換を行なう。【選択図】図１
2005327223.tif 000002
【特許請求の範囲】
【請求項１】
アドレスとデータおよび制御信号を、シリアル通信により転送を行なうためのシリアルバスと、アドレスなどの情報をもとに、シリアルバスを通して行なわれる通信の通信経路を切り替えるバススイッチを使用して、プログラム実行部と周辺機器との間のデータ交換を行なう、逐次命令実行型計算機。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、逐次命令実行型計算機の構成に関するものである。
【背景技術】
【０００２】  逐次命令実行型の計算機は、必要な機能を実現するための命令を集積したプログラムの実行により、数値処理や各種機械制御などを行なっており、逐次命令実行型の計算機を組み込んで、所要の機能を実現する各種装置は、命令の解読や演算処理などを行なうプログラム実行部、および、メモリや入出力機器などの周辺機器によって構成されている。逐次命令実行型計算機の多くは、プログラム実行部と周辺機器とのあいだを、数ビットから数十ビットの、アドレス幅やデータ幅と同じ数の信号線を持つ、アドレスバスおよびデータバスによって接続されている。プログラム実行部は、命令の読み込みや処理結果の出力などのために、周辺機器との間でデータ交換を行なわなければならない。アドレスバスやデータバスは、このプログラム実行部と周辺機器との間のデータ交換のために使用される。
【発明の開示】
【発明が解決しようとする課題】
【０００３】  以下では、特に明記しない限り、「計算機」という語を、「逐次命令実行型計算機」の意味で使用する。【０００４】  マイクロプロセッサに代表されるプログラム実行部と、メモリや入出力ポートなどの周辺機器との間の接続に、アドレス幅やデータ幅と同じ数の信号線を使用するアドレスバスやデータバスでは、アドレスバスやデータバスを構成する多数の信号線のために、多くの実装面積や実装空間を必要とした。アドレスバスやデータバスが必要とする実装面積とは、シリコンチップやプリント基板上などで、バス用の配線のために使用する面積のことをさす。また、アドレスバスやデータバスが必要とする実装空間とは、プログラム実行部と接続する周辺機器が、異なるプリント基板上などにある場合に使用する、バス用のコネクタやケーブルが占める空間のことをさす。
【課題を解決するための手段】
【０００５】  アドレスとデータおよび制御信号を、シリアル通信により転送を行なうためのシリアルバスと、アドレスなどの情報をもとに、シリアルバスを通して行なわれる通信の通信経路を切り替えるバススイッチを使用して、プログラム実行部と周辺機器との間のデータ交換を行なう。
【発明の効果】
【０００６】  アドレスとデータおよび制御信号を、シリアル信号としてプログラム実行部と周辺機器との間のデータ交換を行なうことにより、プログラム実行部と周辺機器とのデータ交換に使用する信号線の数を大幅に減らすことができる。たとえば、３２ビットのアドレス幅と３２ビットのデータ幅を持つ計算機においては、アドレス幅やデータ幅と同じ数の信号線によって、アドレスバスとデータバスを構成しようとすると、１つのプログラム実行部がアドレスバスとデータバスだけで６４本の信号線を必要とするが、同一の信号線上のシリアルデータとして、アドレスとデータを扱うシリアルバスであれば、１つのプログラム実行部が必要とする信号線の数は、最小では１本でよい。１本の信号線で構成されたシリアルバスならば、実装のためにバスが占有する面積や空間は、アドレス幅やデータ幅と同じ数の信号線によって構成された、アドレスバスやデータバスが占有する面積や空間よりも、はるかに小さくて済む。
【発明を実施するための最良の形態】
【０００７】  発明を実施するための最良の形態を図１をもとに説明する。計算機が使用する論理回路数を減らしながら、高速な演算処理を可能とするため、浮動小数点演算や暗号演算などの大量に論理回路を使用したり、演算処理の高速化を別途追求するものを、プログラム実行部の演算処理から取出し、特別な周辺機器である共有演算器１とする。共有演算器１は、他の周辺機器７とは異なるアドレス空間で管理する。共有演算器１は、シリアルバス２によってバススイッチ３に接続する。一般的な周辺機器７は、シリアルバス５ａによってバススイッチ６に接続する。プログラム実行部４は、２つのシリアルバスを持ち、１つは共有演算器１とのデータ交換を行なうためのバススイッチ３に接続し、もう１つは周辺機器７とのデータ交換を行なうためのバススイッチ６に接続する。周辺機器７は、メモリや入出力機器等である。図１では、プログラム実行部や周辺機器などの個数が決まっているが、本発明においては、バススイッチに接続する周辺機器等の個数に制限は無く、プログラム実行部や周辺機器、共有演算器を何個接続しても良い。【０００８】  以下で使用する用語について示す。バススイッチは、プログラム実行部と接続されるシリアルバスを持ち、これをアクセス入力バスとする。図１においては、シリアルバス２ａとシリアルバス５がアクセス入力バスである。また、バススイッチは、周辺機器と接続されるシリアルバスを持ち、これをアクセス出力バスとする。図１においては、シリアルバス２とシリアルバス５ａがアクセス出力バスである。プログラム実行部からバススイッチへ送られる信号をアクセス要求信号とし、周辺機器からバススイッチへ送られる信号をアクセス応答信号とする。【０００９】  バススイッチは、プログラム実行部から送られたアクセス要求信号に含まれるアドレスから、アクセス先となる周辺機器を選択し、選択した周辺機器が接続されたアクセス出力バスへ、プログラム実行部から送られたアクセス要求信号を転送する。アクセス要求信号を受け付けた周辺機器は、アクセス要求信号に従って何らかの処理を行い、結果をバススイッチを通じて、アクセス要求信号の送信元であるプログラム実行部へ返す。バススイッチは、アクセス入力バスから送られるアクセス要求信号を元に、アクセス入力バスとアクセス出力バスとの接続を行い、プログラム実行部から送られるアクセス要求信号を周辺機器へ転送し、周辺機器から送られるアクセス要求の処理結果であるアクセス応答信号を、プログラム実行部へ返す。バススイッチ内におけるアクセス入力バスとアクセス出力バスとの接続は、バススイッチ自体を占有するものではない。１つのアクセス入力バスが１つのアクセス出力バスと接続されていても、他のアクセス入力バスと接続されていない別のアクセス出力バスとの接続は可能である。アクセス入力バスから既に他のアクセス入力バスと接続されているアクセス出力バスに対して、アクセス要求信号が送られた場合、アクセス要求信号は、バススイッチ内で保持され、接続しようとしているアクセス出力バスが現在接続されている、アクセス入力バスとの接続を完了した時点で、バススイッチは、アクセス出力バスへのアクセス要求信号の送信、アクセス出力バスとの接続などを行なう。【００１０】  バススイッチ内で、同じアクセス出力バスへのアクセス要求信号が複数保持されていた場合、バススイッチ内で優先順位を判定し、優先順位の高い順に、アクセス要求信号とそのアクセス要求信号を送ったアクセス入力バスを、次の接続候補とし、順次アクセス要求信号の送信とアクセス入力バスの接続等を行なっていく。バススイッチ内の優先順位の決定方式に特に制限は無く、同じ順位を持たない方式であれば、巡回方式やアクセス入力バスの固定順位方式など、なんでも良い。【００１１】  図２をもとにバススイッチの動作例を示す。図２は、図１から、プログラム実行部４と共有演算器１に接続されているバススイッチ３を中心に抜き出した図である。アクセス出力バス１１とアクセス出力バス１２は異なるアドレスに割り当てられている。アクセス入力バス８に接続されているプログラム実行部４から、アクセス出力バス１１へ接続されている共有演算器１へのアクセス要求信号が送られた場合、バススイッチ３はアクセス要求信号に含まれるアドレスを元に、アクセス入力バス８とアクセス出力バス１１を接続し、アクセス入力バス８からのアクセス要求信号をアクセス出力バス１１へ送出する。アクセス入力バス８とアクセス出力バス１１との接続は、アクセス入力バス８からのアクセス要求信号を、アクセス出力バス１１に接続されている共有演算器１が処理し、処理結果であるアクセス応答信号が、アクセス出力バス１１からアクセス入力バス８へ送信完了するまで続けられる。【００１２】  アクセス入力バス８とアクセス出力バス１１が、バススイッチ３内で接続されている場合、アクセス入力バス９やアクセス入力バス１０から、アクセス出力バス１２へのアクセス要求信号は、そのままアクセス入力バス９やアクセス入力バス１０と、アクセス出力バス１２との接続となるが、アクセス入力バス９やアクセス入力バス１０から、アクセス出カバス１１へのアクセス要求信号は、アクセス入力バス８とアクセス出力バス１１との接続が完了するまで、バススイッチ内で保持される。バススイッチ内で保持されたアクセス入力バス９またはアクセス入力バス１０からのアクセス要求信号は、アクセス入力バス８とアクセス出力バス１１との接続が完了した時点で、アクセス出力バス１１へ送信され、その後、アクセス要求信号を送信したアクセス入力バスと、アクセス出力バス１１との接続等が行なわれる。【００１３】  バススイッチ３では、アクセス出力バスごとに、アクセス要求信号の優先順位を巡回方式で決定しており、順序は、アクセス入力バス８、アクセス入力バス９、アクセス入力バス１０の順である。アクセス入力バス８とアクセス出力バス１１が、バススイッチ３内で接続されている場合に、アクセス入力バス９とアクセス入力バス１０から、同時にアクセス要求信号が送られた場合には、アクセス入力バス９からのアクセス要求信号が、次の送信候補となる。【００１４】  図１において、プログラム実行部４と周辺機器７とのあいだにあるバススイッチ６も、接続されているアクセス出力バスの本数が変わるだけで、動作としては、共有演算器１とプログラム実行部４とのあいだにあるバススイッチ３と同じである。【００１５】  図３により、データ書き込みの場合の、シリアルバスでのアクセス要求信号の形式を示す。図１において、プログラム実行部４と周辺機器７は、１本の信号線で構成されるシリアルバスにより接続されており、アドレス幅は７ビット、データ幅は４ビットである。図３は、図１において、プログラム実行部４と周辺機器７とのあいだの信号タイミングを示しており、時系列変化は左から右であり、スタートビット１４の右にある有効なデータが、各信号における先頭ビットである。図３のタイミング図では、信号タイミングの立下りエッジにおいて、送信側がバス上にデータを流し、受信側は先頭のスタートビット１４を検知後、立ち上がりエッジにおいて、バス上のデータを検知する。データの有効時間に対して、バススイッチが行なうアクセス出力バスの選択等に必要とする時間は十分小さい。アクセス要求信号１５は、アクセス入力バスにおける信号線上のデータを示し、アクセス要求信号１６は、アクセス出力バスにおける信号線上のデータを示す。アクセス出力バスのアクセス要求信号１６のアドレス部分が２ビット少ないのは、先頭２ビットをアクセス出力バスの選択に使用しているためであり、バススイッチ６では、アドレスの先頭２ビットの受信時に、アクセス出力バスの選択と、アクセス入力バスとアクセス出力バスの接続が行なわれる。図３の場合、アドレスの２ビット目以降ではアクセス入力バスからの信号がそのままアクセス出力バスへ送られている。データ読み出しの場合のアクセス要求信号の形式は、図３において、データ部分が無くかつコマンドビット１４ａがＬｏｗレベルのものとなる。【００１６】  図４により、データ読み出しの場合の、アクセス応答信号の形式を示す。図４は、図１において、プログラム実行部４と周辺機器７とのあいだの信号タイミングを示しており、時系列変化は左から右であり、スタートビット１４の右にある有効なデータが、各信号線における先頭ビットである。図４のタイミング図では、信号タイミングの立下りエッジにおいて、送信側がバス上にデータを流し、受信側はスタートビット１４を検知後、立ち上がりエッジにおいて、受信側でバス上のデータを検知している。アクセス応答信号１７が、アクセス出力バスを構成する１本の信号線における信号線上のデータを示す。アクセス応答信号１８が、アクセス入力バスを構成する信号線における信号線上のデータを示す。図４からわかるように、アクセス出力バスからの入力信号は、アクセス入力バスへそのまま送られる。データ書き込みの場合のアクセス応答信号は、書き込み終了を示すためのスタートビットのみのものとなる。【００１７】  図３および図４の例では、アドレス幅を７ビット、データ幅を４ビットとしているが、本発明においては、アドレス幅およびデータ幅に制限をつける必要は無く、何ビットのアドレス幅およびデータ幅を持つ計算機についても、本発明を適用できる。また、アクセス要求信号やアクセス応答信号の一部に、コマンドとそのレスポンスを付加することにより、単なる読み出し、書き込み以外の操作を、プログラム実行部から周辺機器に対して行なうこともできる。図３では、コマンドビット１４ａをアドレスの直後としているが、アドレスの前にあってもよく、本発明では、コマンド��レスポンスを付加する位置に制限はない。シリアルバスの通信方式にも制約は無く、非同期式などのシリアル通信方式も利用できる。
【実施例１】
【００１８】  図５に、アクセス入力バスが３本の信号線で構成され、アクセス出力バスが２本の信号線で構成されるアクセス要求信号の形式を示す。図５に示すタイミング図は、アドレス幅が８ビット、データ幅が１１ビットの計算機における、異なるアドレスに割り付けられた２つのアクセス出力バスを持つバススイッチのものである。図５のタイミング図では、時系列変化は左から右であり、スタートビット１４の右にある有効データが、各信号線における先頭ビットである。図５のタイミング図では、信号タイミングの立下りエッジにおいて、送信側がバス上にデータを流し、受信側はスタートビット１４を検知後、立ち上がりエッジにおいて、バス上のデータを検知するものとし、データの有効時間に対して、バススイッチが行なうアクセス出力バスの選択等に必要とする時間は十分小さい。アクセス要求信号１９およびアクセス要求信号２０およびアクセス要求信号２１が、アクセス入力バスを構成する３本の信号線における信号線上のデータを示す。アクセス要求信号２２およびアクセス要求信号２３が、アクセス出力バスを構成する２本の信号線における信号線上のデータを示す。アクセス要求信号２１とアクセス要求信号２３のタイミング図に見られるように、本発明のシリアルバスにおいては、あるタイミングにおけるバス上の信号が、全てアドレスまたはデータである必要はない。【００１９】  本発明では、図５で示したように、複数の信号線で構成されたシリアルバスも使用できる。また、バススイッチ内に信号変換機能を持たせることにより、アクセス入力側に接続されるプログラム実行部と、アクセス出力側に接続される周辺機器との性能に合わせて、アクセス入力バスおよびアクセス出力バスを構成する信号線の数を異なるものとすることも可能である。さらに、バススイッチ内に転送レートの変換機能を持たせることにより、異なる転送速度を持つシリアルバスを利用することも可能である。
【実施例２】
【００２０】  図６に、メモリを例として、シリアルバスとの接続機能を持たないパラレルバス用の機器の利用方法についての１例を示す。プログラム実行部が、メモリからのデータの読み込みを行なおうとする場合、メモリアクセッサ２５は、アクセス出力バス２４から送られるアクセス要求信号からアドレスを取り出し、メモリ３０に接続されているアドレスバス２６へ出力し、読み出し信号２８および書き込み信号２９を制御し、データバス２７からメモリ３０に格納されているデータを取得し、取得した結果からアクセス応答信号を生成し、アクセス出力バス２４へ出力する。プログラム実行部が、メモリへのデータの書き込みを行なおうとする場合、メモリアクセッサ２５は、アクセス出力バス２４から送られるアクセス要求信号からアドレスとデータを取り出し、メモリ３０に接続されているアドレスバス２６およびデータバス２７へ出力し、読み出し信号２８および書き込み信号２９を制御し、メモリへの書き込みを行ない、書き込みの結果からアクセス応答信号を生成し、アクセス出力バス２４へ出力する。メモリアクセッサ２５のような、シリアルパラレル変換機能を組み込むことにより、既存のメモリ等のパラレルバス用の機器を、本発明においても容易に利用可能となる。プログラム実行部に既存のマイクロプロセッサを利用する場合も同様である。
【実施例３】
【００２１】  図７に、本発明を利用し、マルチタスクなどの手法により、プログラムの同時多重実行が求められる場合における、プログラムの実行およびプログラムの切り替えを高速化した計算機の１例を示す。プログラム実行制御部４０は、主に命令用メモリ３６に設定された、プログラムの切り替えに必要なタスクＩＤやタスクの優先順位などの情報をもとに、プログラム実行部３２を制御し、プログラム実行部３２で実行されるプログラムの切り替えを専門に行なう機能を持つ。プログラム実行部３２は、プログラムカウンタ、レジスタ、演算器などによる、通常のプログラム実行に必要な機能に加え、プログラム実行制御信号３１により、プログラム実行制御部４０からの制御にもとづいて、プログラムの切り替えを行なう機能を持つ。命令用メモリ３６は、基本的にプログラム用の命令とプログラム実行制御に必要な情報を格納し、計算用のデータなどは、基本的に標準メモリ３５に格納する。命令用メモリ３６、標準メモリ３５、周辺機器３９は、すべて異なるアドレスへ割り付けられている。逐次命令実行型では、プログラム実行部ごとに、命令の取得とデータの読み書きがおおむね交互に行なわれるため、図７のように構成した計算機では、複数のプログラム実行部間におけるメモリや周辺機器の競合を、さらに減少させることができる。定型処理となるプログラムの切り替えを、プログラムの切り替えに特化したプログラム実行制御部が行なうことにより、プログラムの切り替えに必要な処理も高速化できる。【００２２】  プログラム実行制御部４０は、シリアルバス３７ａとバススイッチ３８およびシリアルバス３７によって、標準メモリ３５と命令用メモリ３６へアクセスし、プログラム実行制御に必要な情報の取得と更新を行なう。バススイッチ３８では、シリアルバス３７ａがアクセス入力バス、シリアルバス３７がアクセス出力バスとなる。標準メモリ３５と命令用メモリ３６は、シリアルバス３３ａとシリアルバス３７を持つデュアルポート形式のメモリとなる。本発明においては、周辺機器とのデータ交換を、一度シリアルデータに変換して行なうため、メモリを構成する個々のレジスタが、直接外部バスと接続されない。このため、複数のアクセスバスを持つメモリを容易に使用できる。同様に、複数のアクセスバスを持つ周辺機器も、容易に利用できる。
【実施例４】
【００２３】  図８に、バススイッチの利用形態の一例を示す。図８に示すように本発明におけるバススイッチは、計算機を構成するすべてのプログラム実行部と接続されている必要はなく、必要に応じて様々な接続の構成をとることが可能である。図８では、演算性能を向上させるため、１つの共有演算器４１を２つのプログラム実行部４４のみに共有させるようにしている。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の１例を示す構成図
【図２】バススイッチの機能説明のための構成図
【図３】信号線が１本の場合のアクセス要求信号の１例を示すタイミング図
【図４】アクセス応答信号の１例を示すタイミング図
【図５】信号線の数がアクセス入力バスとアクセス出力バスで異なる場合のアクセス要求信号の１例を示すタイミング図
【図６】メモリアクセッサを使用する場合の１例を示す構成図
【図７】プログラム実行制御部を使用する場合の１例を示す構成図
【図８】バススイッチの利用形態の１例を示す構成図
【符号の説明】
【００２５】１、４１  共有演算器
２、２ａ、５、５ａ、３３、３３ａ、３７、３７ａ、４２、４２ａ、４５、４５ａ  シリアルバス
３、６、３４、３８、４３、４６  バススイッチ
４、３２、４４  プログラム実行部
７、３９、４７  周辺機器
８、９、１０  アクセス入力バス
１１、１２、２４  アクセス出力バス
１３  信号タイミング
１４  スタートビット
１４ａ  コマンドビット
１５、１６、１９、２０、２１、２２、２３  アクセス要求信号
１７、１８  アクセス応答信号
２５  メモリアクセッサ
２６  アドレスバス
２７  データバス
２８  読み出し信号
２９  書き込み信号
３０  メモリ
３１  プログラム実行制御信号
３５  標準メモリ
３６  命令用メモリ
４０  プログラム実行制御部
【図１】
2005327223.tif 000003
【図２】
2005327223.tif 000004
【図３】
2005327223.tif 000005
【図４】
2005327223.tif 000006
【図５】
2005327223.tif 000007
【図６】
2005327223.tif 000008
【図７】
2005327223.tif 000009
【図８】
2005327223.tif 000010