(57)【要約】  本発明はコンピュータ技術分野におけるコンピュータシステムアーキテクチュア技術に関する。具体的には、コンピュータプログラムの実行を駆動する駆動方法、及びこのような方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサである。本発明は、割込み動作を使用しない状態で、１つのタイプのコンピュータプロセッサにて同一の時刻に複数のプログラムを並行して実行可能とすることを１つの特徴とする。ここでの単一プロセッサとは、１群の命令制御部材と、１群の操作制御部材と、１つのプログラム及び１群のデータ記憶部材と、１群のコミュニケーション部材とからなる単一なプロセッサをいう。本発明は、プログラム毎にプログラム実行駆動装置を引き込むことで、複数のプログラムを同一の時刻に並行して実行することを、複数のプログラムが同一の該タイプのコンピュータプロセッサにて互いに独立したり又は互いに協調したりして管理・制御することをもう１つの特徴とする。本発明は、ＳＣＭ、ＤＳＰ、ＣＰＵなどのコンピュータプロセッサを設計することに用いられる。【選択図】図１【特許請求の範囲】
【請求項１】
割込み動作を使用しない状態で、１つの該タイプのコンピュータプロセッサに、同一の時刻に複数のプログラムを並行して実行することが可能となることを特徴とするプログラム/命令の実行を駆動するＬ駆動方法と呼ばれる駆動コンピュータプログラムを実行する駆動方法、及びこのような方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサ。
【請求項２】
プログラム毎のためにプログラム実行駆動装置を引入することで、複数のプログラムが同一な時刻に並行して実行されるのを、複数のプログラムが同一な該タイプのコンピュータプロセッサにて互いに独立したり互いに協調したりして管理・制御することを特徴とする請求項１に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項３】
各プログラムは実行可能コードを生成すると共に、該プログラムのプログラム実行駆動装置を生成し、
プログラム実行駆動装置は少なくとも該プログラムの属性特徴を説明・定義し、該プログラムの実行を管理・制御するための相関情報全体を含んでおり、
１つのプログラムを構成する複数のルーチンやサブルーチンはそれぞれのプログラム実行駆動装置を有していることを特徴とする請求項１又は２に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項４】
プログラム/命令の実行を駆動するＬ駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサであって、
該タイプのコンピュータプロセッサの基本的な構成は、
１）システムのハードウェア部分は、１つ又は複数の並行に動作できる記憶部材と、１つ又は複数の並行に動作できる操作制御部材と、１つ又は複数の並行に動作できる、部材同士で接続作用を発揮するコミュニケーション部材とからなり、
２）システムのソフトウェア部分は、１つの現代コンピュータシステムにおける操作システムと類似するシステム管理プログラムからなり、該システム管理プログラムはプログラムスケジュール機能を有すべきであり、そのために１枚のプログラムスケジュールテーブルを維持し、システムは初期化の場合は、システム管理プログラムのプログラム実行駆動装置がシステムのある操作制御部材にロードされ、該プログラム実行駆動装置をアクティブ又は活性化するものと呼ばれ、該プログラム実行駆動装置はシステム管理プログラムを駆動し、複数のユーザプログラムのプログラム実行駆動装置を一つずつアクティブさせ、その後、各ユーザプログラムのプログラム実行駆動装置は互いに独立したり協調したりして同一時刻にそれぞれのユーザプログラムを駆動して同一な前記コンピュータプロセッサにて同時に並行実行する、
ものであることを特徴とするプログラム/命令の実行を駆動するＬ駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサ。
【請求項５】
該タイプのコンピュータプロセッサの動作方法は、
１）１つのプログラムが実行可能コードを生成すると、システム管理プログラムは該プログラムの実行を駆動する相関駆動情報をそのプログラムスケジュールテーブルの相関欄に書き込み、この時、該プログラムがある記憶部材に格納されて実行待機状態にあり、
２）該プログラムが、呼出して実行する各条件を満足すると、システム管理プログラムは該プログラムのプログラム実行駆動装置を創設/生成し、その後、該プログラムは実行状態に入って、そのプログラム実行駆動装置の管理及び制御で独立に実行され、
３）プログラム実行駆動装置は、保存された該プログラムの常駐情報、例えばプログラム記憶部材番号や、部材内アドレスPC等に従って、対応する記憶部材へ現在実行しようとする命令を取り出すように制御し、
４）命令を取り出した後、該プログラム実行駆動装置は、ある操作制御部材が取り出された命令を復号化するように制御し、これによって対応する記憶部材へ操作数を取り、対応する操作制御部材が指定の処理を完成し、処理結果を対応する記憶部材に書き返すように制御し、取り出された命令、命令の“復号化”結果、取り出された操作数及び操作の結果が共に該プログラム実行駆動装置のあるユニットに一時保存しており、
５）最終、該プログラム実行駆動装置は、保存されている、プログラム常駐情報類に属するPCアイテムを、現在の命令に規定された方式に基づいて補正した後、ステップ３に移行して本プログラムの次の命令を制御・実行し、
６）少なくとも、プログラムの終了命令まで実行する場合に、システム管理プログラムは、あるプログラムのプログラム実行駆動装置をアンロードし、これによって、PMを対応な終了フラグとし、システム管理プログラムをアクティブして該プログラムを対応な終了処理し、システム管理プログラムを始動して該プログラムを適当な終了処理する、
ものであることを特徴とする請求項１、２又は３に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項６】
該タイプのコンピュータプロセッサハードウェアの基本的な構成部材は、少なくとも、
１）１つ又は複数の並行に動作できる記憶部材であって、以下の部材を含む記憶部材と、
●プログラム記憶部材MP：プログラム記憶部材の読み出し/書き込みに係るサービスを提供するために用いられ、独立で並行に動作できるMP部材が複数設けられ、
●データ記憶部材MD：データ記憶部材の読み出し/書き込みに係るサービスを提供するために用いられ、独立で並行に動作できるMD部材が複数設けられ、
２）１つ又は複数の並行に動作できる操作制御部材であって、少なくとも以下の部材を含む操作制御部材と、
●プログラム管理部材PM：プログラム実行駆動装置の実行を管理するサービスを提供するために用いられ、独立で並行に動作できるPM部材が複数設けられ、
●命令フォーマット変換部材IT：命令復号及び命令フォーマット変換に係るサービスを提供するために用いられ、独立で並行に動作できるIT部材が複数設けられ、
●算術/論理演算部材ALU：算術/論理演算に係るサービスを提供するために用いられ、独立で並行に動作できるALU部材が複数設けられ、
●外部機器管理部材PD：外部機器の管理や制御に用いられ、
３）１つ又は複数の並行に動作できる、部材同士で接続作用を発揮するコミュニケーション部材、すなわちプログラム実行駆動装置の配送部材DU：プログラム実行駆動装置を１つの部材の出力キューからもう１つの部材の入力キューへ配送する転送及び配送サービスを提供するために用いられ、独立で並行に動作できるDU部材が複数設けられる配送部材DUと、
を備え、
前記各部材は一般に１つの入力バッファ装置と１つの出力バッファ装置とを有し、要求/サービスの方式に従って動作可能であり、請求を受信した後、すなわち入力バッファが非エンプティーである場合に、指定されたサービスを始動させて完成し、その結果を出力バッファに格納している、
ことを特徴とする請求項４に記載のプログラム/命令の実行を駆動するＬ駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサ。
【請求項７】
プログラム実行駆動装置は、１群情報ユニットからなる情報ブロックに設計され、
システムハードウェアの支持で、これらの特殊な情報ブロック、すなわちプログラム実行駆動装置は、現在対応している命令の操作コードの要求に従って、相応的な各機能部材を順次にアクセスし、命令に対して相応的な機能操作、即ち読み出し操作や、演算操作や、書き込み操作等を行い、
プログラム実行駆動装置の構成は以下の通りであり、
2008504615.tif 000020
１つのプログラム実行駆動装置は２９個のユニットからなり、各構成ユニットの定義及び説明は以下の通りであり、
ユニット０―ユニット６：実行時の動作ユニットである、すなわち本プログラムが実行する過程に一時/中間結果を格納するためのユニットであり、ユニット０は、NEXTユニットと呼ばれ、本プログラム実行駆動装置の現在アクセスする、サービス要求がある機能部材の番号であり、ユニット１−６は、現在駆動する命令によって違い、その具体的な方法は各部材の機能を述べる場合に詳細的に説明し、ユニット１はΔPCユニットとして用いられる場合があり、ΔPC＝０の時に現在の命令がEND命令であることを示し、ΔPC＝１の時に現在の命令が非ジャンプ型命令であることを示し、ΔPC＞１又はΔPC＜０の時に現在の命令がジャンプ型命令であることを示す；
ユニット７：プログラム記憶部材の部材番号MPnoであり、本プログラムが常駐されているプログラム記憶部材の部材番号を格納するためのものである；
ユニット８：プログラム記憶部材の部材個数MPnuであり、本プログラムの所要の連続なプログラム記憶部材の個数を格納することに用いられ、MPnuの値は１より大きいであれば、MPnoの値は１番目のプログラム記憶部材の部材番号である；
ユニット９：プログラム記憶部材の部材内アドレスPCであり、本プログラムの現在実行している命令のプログラム記憶部材の部材内アドレスを格納するためのものである；
ユニット１０：データ記憶部材の部材番号MDnoであり、本プログラムの所要のデータ記憶部材の部材番号を格納するためのものである；
ユニット１１：データ記憶部材の部材個数MDnuであり、本プログラムの所要の連続なデータ記憶部材の個数を格納することに用いられ、MDnuの値は１より大きいであれば、MDnoの値は１番目のデータ記憶部材の部材番号である；
ユニット１２：プログラム番号PrNoであり、二つ以上の実行しているプログラムが共通に同一なプログラム記憶部材に格納されている場合に、本パラメータで各プログラムを識別する；
ユニット１３−ユニット２８：１６個の汎用レジスターR0-R15である；
ことを特徴とする請求項１、２、３又は５に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項８】
汎用レジスタ群は、１つのハードウェア装置に設けられてもよいし、１群の流れの情報ユニット、すなわちプログラム実行駆動装置の１つの構成部分に設けられてもよい、
ことを特徴とする請求項４又は６に記載のプログラム/命令の実行を駆動するＬ駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサ。
【請求項９】
システムの各主要なハードウェア機能部材の機能及びその入力/出力のプログラム実行駆動装置の構成は、以下のようになる：
１.記憶機能部材
１）部材１：プログラム記憶部材MPと呼ばれ、プログラム記憶部材の読み出し/書き込みに係るサービスを提供するために用いられ、独立で並行に動作できるMP部材が複数設けられ、各MP部材の主な機能は以下の通りである；
●MPは１つの入力キューを維持しており、本MP処理を請求する全てのプログラム実行駆動装置は該キューに待ち、MPは１つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キューに待って、DU部材の配送サービスを待つ；
●読み出し要求：現在のキューヘッダにあるプログラム実行駆動装置が要求するのは読み出し操作であれば、該プログラム実行駆動装置から該プログラムの部材内アドレスPCを取り出してMPのアドレスレジスターに送り、MPの読み出し操作を始動させて該プログラムの現在の命令を読み取り、読み取った命令を現在のプログラム実行駆動装置の該当するユニットに書き込み、プログラム実行駆動装置のNEXTユニットをITとし、それをMPの出力キューに書き込む；
●書き込み要求：現在のキューヘッダにあるプログラム実行駆動装置が要求するのは書き込み操作であれば、完成する必要がある操作はデータ記憶部材の書き込み操作と類似しているので、ここで省略する；
●上述処理過程を繰返す：本MPの入力キューがエンプティー又は出力キューがフルであれば、空操作を一回行う；
●MP部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は以下のように示す；
2008504615.tif 000021
ユニット０におけるMPrは、行先部材がMPであり且つ「読み出し」操作を要求して実行することを示し、現在係らないプログラム実行駆動装置の構成ユニット、例えばユニット１−６を共に省略し、以下で同じである；
●MP部材の出力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は以下のように示し、ユニット１におけるIは読み出した現在の命令、例えばLDI R0,Cである；
2008504615.tif 000022
２）部材２：データ記憶部材MDと呼ばれ、データ記憶部材の読み出し/書き込みに係るサービスを提供するために用いられ、独立で並行に動作できるMD部材が複数設けられ、各MD部材の主な機能は以下の通りである；
●MDは１つの入力キューを維持しており、本MD処理を請求する全てのプログラム実行駆動装置は該キューに待ち、MDは１つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キューに待って、DU部材の配送サービスを待つ；
●読み出し操作：現在のキューヘッダにあるプログラム実行駆動装置が要求するのは読み出し操作であれば、該プログラム実行駆動装置から該読み出し操作の部材内アドレスを取り出してMDのアドレスレジスターに送り、MDの読み出し操作を始動させて該当する記憶ユニットの内容を読み取り、読み取ったデータを現在のプログラム実行駆動装置のあるユニットに書き込み、NEXTユニットをPM、ΔPCユニットを１とし、それらをMDの出力キューに書き込む；
●書き込み操作：現在のキューヘッダにあるプログラム実行駆動装置が要求するのは書き込み操作であれば、該プログラム実行駆動装置から該書き込み操作のデータ及び部材内アドレスを取り出し、それぞれMDのデータレジスター及びアドレスレジスターに送り、MDの書き込み操作を始動させてデータを該当する記憶部材に書き込み、NEXTユニットをPM、ΔPCユニットを１とし、それらをMDの出力キューに書き込む；
●上述処理過程を繰返す：本MDの入力キューがエンプティー又は出力キューがフルであれば、空操作を一回行う；
●MD部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は、IT部材の出力キューにおけるMDへ発信するプログアム実行駆動装置及びその構成ユニットの内容を参照できる；
●MD部材の出力キューにおけるPMへ発信するプログアム実行駆動装置及びその構成ユニットの内容は以下のように示す；
2008504615.tif 000023
ここで、ユニット１はΔPCであり、現在の命令の現在値は１である；
２.操作機能部材
１）部材３：プログラム管理部材PMと呼ばれ、プログラム実行駆動装置の実行を管理するサービスを提供するために用いられ、独立で並行に動作できるPM部材が複数設けられ、各PM部材の主な機能は以下の通りである；
●PMは１つの入力キューを維持しており、本PM処理を請求する全てのプログラム実行駆動装置は該キューに待ち、PMは１つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キューに待って、DU部材の配送サービスを待つ；
●１つのプログラムを始動させて実行駆動装置を実行する：システム管理プログラムが一プログラムのプログラム実行駆動装置をアクティブにするのは、実際に該プログラムのプログラム実行駆動装置をPMの入力キューに書き込むことであり、PMが該プログラム実行駆動装置まで処理する場合に、そのNEXTユニットをMPとし、それをPMの出力キューへ書き込む；
●１つのプログラム実行駆動装置の実行を継続する：各プログラム実行駆動装置が１つのプログラムを駆動する現在の命令の実行最終のステップは、PMへ復帰することであり、現在の命令は終了命令ではなければ、PMは該ドライバが引き続き実行するように制御され、ユニット９←ユニット９＋ユニット１を行う、即ちPC←PC＋ΔPCであって、NEXTユニットをMPとし、それをPMの出力キューへ書き込む；
●１つのプログラム実行駆動装置の実行を終了する：あるプログラムが１つの終了命令まで実行する場合に、PMは該プログラムのプログラム実行駆動装置を削除する方式を採用することで、該プログラムの実行を終了し、該プログラムは終了命令を実行する前に、１つ又は複数の資源解放型命令を実行しなければならない；
●上述処理過程を繰返す：本PMの入力キューがエンプティー又は出力キューがフルであれば、空操作を一回行う；
●PM部材の入力キューにおいて受信されたプログラム実行駆動装置及びその構成ユニットの内容は以下のように示す；
2008504615.tif 000024
ここで、ユニット１はΔPCであり、その値は０、１、又はジャンプのオフセットである；
●PM部材の出力キューにおけるMP部材へ発信するプログアム実行駆動装置及びその構成ユニットの内容は以下のように示す；
2008504615.tif 000025
ここで、ユニット１におけるMPrは、行先部材がMPであり且つ「読み出し」操作を要求して実行することを示す；
２）部材４：命令フォーマット変換部材ITと呼ばれ、命令復号及び命令フォーマット変換に係るサービスを提供するために用いられ、独立で並行に動作できるIT部材が複数設けられ、各ITの主な機能は以下の通りである；
●ITは１つの入力キューを維持しており、本IT処理を請求する全てのプログラム実行駆動装置は該キューに待ち、ITは１つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キューに待って、DU部材の配送サービスを待つ；
●命令フォーマット変換を要求するプログラム実行駆動装置について、ITは該プログラム実行駆動装置に格納されている現在の命令をフォーマット変換し、これによってNEXT等のユニットを設置し、それをITの出力キューに書き込む；
●上述処理過程を繰返す：本ITの入力キューがエンプティー又は出力キューがフルであれば、空操作を一回行う；
●IT部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は以下のように示し、ここで、ユニット１におけるIは読み出した現在の命令、例えばLDI R0,Cである；
2008504615.tif 000026
●以下に示すように、IT部材の出力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は現在の命令Iによって異なる；
・ITからPMへ発信するプログラム実行駆動装置及び構成ユニットの内容：
LDI Rd,C
2008504615.tif 000027
ここでユニット１はΔPCであり、現在の命令の現在値は１である；
MV Rd,Rs
2008504615.tif 000028
ここでユニット１はΔPCであり、現在の命令の現在値は１である；
・ITからMDへ発信するプログラム実行駆動装置及び構成ユニットの内容は、以下の通りである；
LD Rd,Rs
2008504615.tif 000029
ここで、ユニット０におけるMDrは行先部材がMDであり且つ「読み出し」操作を要求して実行することを示し、ユニット２，３における[Rd]及び[Rs]はレジスターRd及びレジスターRs中の内容を示す；
STI Rd,C
2008504615.tif 000030
ここで、ユニット０におけるMDIwは行先部材がMDであり且つ「即時値の書き込み」操作を要求して実行することを示し、ユニット２における[Rd]はレジスターRd中の内容を示す；
ST Rd,Rs
2008504615.tif 000031
ここで、ユニット０におけるMDwは行先部材がMDであり且つ「書き込み」操作を要求して実行することを示し、ユニット２，３における[Rd]及び[Rs]はレジスターRd及びレジスターRs中の内容を示す；
・ITからALUへ発信するプログラム実行駆動装置及び構成ユニットの内容は、以下の通りである；
ADDI Rd,C
2008504615.tif 000032
ここで、ユニット０におけるALUI+は行先部材がALUであり且つ「即時値の加算」操作を要求して実行することを示し、SUBI、MULI、DIVI等の命令について、その該当するプログラム実行駆動装置及び構成ユニットの内容はこれと類似し、ユニット０だけをそれぞれALUI−、ALUI*、ALUI÷とする；
ADD Rd,Rs1,Rs2
2008504615.tif 000033
ここで、ユニット０におけるALU+は行先部材がALUであり且つ「加算」操作を要求して実行することを示し、SUB、MUL、DIV等はこれと類似している；
JEQI Rs,C
2008504615.tif 000034
ここで、ユニット０におけるALUIjは行先部材がALUであり且つ「即時値のジャンプ判断」操作を要求して実行することを示し、JNEI等はこれと類似している；
JEQ Rs1,Rs2
2008504615.tif 000035
ここで、ユニット０におけるALUjは行先部材がALUであり且つ「ジャンプ判断」操作を要求して実行することを示し、JNE等はこれと類似している；
SLT Rd,Rs1,Rs2
2008504615.tif 000036
ここで、ユニット０におけるALUsltは行先部材がALUであり且つ「設置不満」操作を要求して実行することを示し、SLE、SGT、SGE、SEQ、SNE等はこれと類似している；
３）部材５：算術/論理演算部材ALUと呼ばれ、算術/論理演算に係るサービスを提供するために用いられ、独立で並行に動作できるALU部材が複数設けられ、各ALU部材の主な機能は以下の通りである；
●ALUは１つの入力キューを維持しており、本ALU処理を請求する全てのプログラム実行駆動装置は該キューに待ち、ALUは１つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キューに待って、DU部材の配送サービスを待つ；
●ALUに算術/論理演算のサービスを要求する前に、プログラム実行駆動装置は該命令の所要の演算数を用意し且つプログラム実行駆動装置の該当するユニットに格納するように制御し、ALUは、プログラム実行駆動装置に格納されている該当する演算数に対し、要求される算術/論理演算を行い、結果がプログラム実行駆動装置の該当するユニットに格納され、NEXTユニットをPMとし、命令の規定に従って１ユニット、すなわちΔPCユニットをとし、それをALUの出力キューへ書き込む；
●上述処理過程を繰返す：本ALUの入力キューがエンプティー又は出力キューがフルであれば、空操作を一回行う；
●ALU部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は、IT部材の出力キューにおける、ALUへ発信するプログアム実行駆動装置及びその構成ユニットの内容を参照できる；
●ALU部材の出力キューにおけるプログアム実行駆動装置及びその構成ユニットの内容は以下のように示す；
2008504615.tif 000037
ここで、ユニット１はΔPCであり、その値は１又はジャンプのオフセットである；
４）部材６：外部機器管理部材PDと呼ばれ、外部機器、例えばディスプレイ、キーボード、マウス、プリンタ、通信機器などの機器を管理し、ホストとデータ入力/出力のサービスを提供するために用いられる；
５）部材７：プログラム実行駆動装置配送部材DUと呼ばれ、プログラム実行駆動装置を１つの部材の出力キューからもう１つの部材の入力キューへ配送する転送及び配送サービスを提供するために用いられ、独立で並行に動作できるDU部材が複数設けられ、各DU部材の主な機能は以下の通りである；
●DUは、予定の順に各部材群の各部材の出力キューが非エンプティーであるかどうかを１つ１つチェックし、ある非エンプティーである出力キューについて、DUはキューから１つのプログラム実行駆動装置を取り出し、該プログラム実行駆動装置のNEXTユニットに指示された行先部材群番号及び行先部材番号に従って、該行先部材群の行先部材の入力キューが非フルであるかどうかをチェックし、非フルであれば、該プログラム実行駆動装置を該行先部材群の行先部材の入力キューへ配送し、以上の処理方式はPM、MP及びMDに対するものであり、IT及びALUについて、該部材からいずれかの入力キューが非フルである部材を選択すればよい；
●上述の処理過程を繰返す：すべての部材群のすべての部材の出力キューは共にエンプティーであり、或いは出力キューは非エンプティーであるが、該当する入力キューは共にフルであれば、空操作を一回行う、
ことを特徴とする請求項４、６又は８に記載のプログラム/命令の実行を駆動するＬ駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサ。
【請求項１０】
１）部材同士の接続関係は、部材１乃至６がそれぞれの１や２組の信号線を介してそれぞれの入力キューの終わり及び出力キューの始めを部材７に接続させ；
２）部材７は、少なくとも複数のデータ入力ポートと、複数のデータ出力ポートと、コミュニケーションネットワーク装置と、制御管理装置とからなり、部材７の制御管理装置はストローブの制御及び管理、例えば各ポートの忙しさの検出や、プライオリティの確定や、ルートの選択などに用いられ、部材７のコミュニケーションネットワーク装置は、複数のデータ入力ポートを複数のデータ出力ポートに接続するために用いられ；
３）部材７のコミュニケーションネットワーク装置はクロス相互連絡の設計方式を採用し、いずれかの入力ポートは共にすべてまたは部分の出力ポートと互いに接続され；
４）部材７のコミュニケーションネットワーク装置はマルチバスの設計方式を採用し、すべての入力ポートと出力ポートは幾つの組に分けられ、それぞれが１つのバスに接続され、バスとバスとの間が更にクロス相互連絡されている、
ことを特徴とする請求項４、６、８又は９に記載のプログラム/命令の実行を駆動するＬ駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサ。
【請求項１１】
前記駆動方法の動作フロー、即ち新規なコンピュータプロセッサにおけるプログラム実行駆動装置の動作フローの具体的なステップは以下のようになる：
ステップS1：システムの初期化の場合に、少なくとも１つのプログラム、例えばシステム管理プログラムのプログラム実行駆動装置が、あるプログラム管理部材PMの出力キューに格納され、ステップS2に移行する；
ステップS2：あるDU部材は、あるPM部材の出力キューが非エンプティーであり且つキューヘッダにあるプログラム実行駆動装置のNEXTユニットに指示された特定の行先MP部材の入力キューが非フルであることを検出した場合に、該PM部材の出力キューヘッダのプログラム実行駆動装置を該当するMP部材の入力キューに配送して該部材の処理を待ち、ステップS3に移行する；
ステップS3：あるMP部材はその入力キューが非エンプティーであることを検出した場合に、入力キューヘッダのプログラム実行駆動装置におけるPCユニットに指定されたPCアドレスに従って、それに管理されたプログラム記憶部材から命令を読み取り、読み取った命令が該プログラム実行駆動装置のユニット１に格納され、この時に該MP部材の出力キューがフル状態にすれば、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込み、DUの配送処理を待ち、ステップS4に移行する；
ステップS4：あるDU部材は、あるMP部材の出力キューが非エンプティーであり、且つ現在のヘッダにあるプログラム実行駆動装置のNEXTユニットに指示されている行先部材がITであり、少なくとも１つのIT部材の入力キューが非フルであることを検出した場合に、該MP部材の出力キューヘッダのプログラム実行駆動装置を該当するIT部材の入力キューに配送して該部材の処理を待ち、ステップS5に移行する；
ステップS5：あるIT部材は入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置による命令に対して命令のフォーマット変換を行い、変換した結果が該プログラム実行駆動装置の該当するユニットに格納され、この時に該IT部材の出力キューがフル状態であれば、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込み、DUの配送処理を待ち、ステップS6に移行する；
ステップS6：あるDU部材は、ある部材の出力キューが非エンプティーであり且つ現在のヘッダにあるプログラム実行駆動装置のNEXTユニットに指示された行先部材の入力キューが非フルであることを検出した場合に、該部材の出力キューヘッダのプログラム実行駆動装置を該当する行先部材の入力キューに配送して該部材の処理を待ち、ここでのある部材とは、IT、ALU及びMD中のいずれかであり、この時の行先部材は３種類があり、一つはあるALU部材であり、この時の行先ALU部材はいずれかの出力キューにエンプティーになったALU部材であってもよいし、以下にステップS7に移行し、二つはあるMD部材であり、この時の行先MD部材は上述プログラム実行駆動装置のNEXTユニットに特定されたMD部材でなければならず、以下にステップS8に移行し、三つはあるPM部材であり、この時の行先PM部材は上述プログラム実行駆動装置のNEXTユニットに特定されたPM部材でなければならず、以下ステップS9に移行する；
ステップS7：あるALU部材は入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置におけるNEXTユニットの命令に従って、該プログラム実行駆動装置中の該当するユニットに保存されている操作数に対し、指定された算術/論理演算を実行し、演算した結果が該プログラム実行駆動装置の該当するユニットに格納され、この時に該ALU部材の出力キューがフル状態であれば、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込み、DUの配送処理を待ち、ステップS6に移行する；
ステップS8：あるMD部材は入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置におけるNEXTユニットの読み出しや書き込み命令、及び該プログラム実行駆動装置におけるあるユニットに指定された部材内アドレスに従って、それに管理されているデータ記憶部材で該プログラム実行駆動装置のあるユニットのデータに対して読み出し/書き込み操作を行い、読み出し操作であれば、読み出されたデータが該プログラム実行駆動装置のあるユニットに格納され、この時該MD部材の出力キューがフル状態であれば、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込み、DUの配送処理を待ち、ステップS6に移行する；
ステップS9： PMの部材は入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置における命令要求に従って該当する操作を行い、１）非END命令：この時にΔPCは非０値であり、PMは要求に基づいてそのPC等のユニットの値を補正し、補正した結果が該プログラム実行駆動装置の該当するユニットに格納され、この時該PM部材の出力キューがフル状態であれば、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込み、DUの配送処理を待ち、２）END命令：この時にΔPCユニットは０であり、PMを該当する終了フラグとし、入力キューから該プログラム実行駆動装置を削除し、システム管理プログラムをアクティブさせて次のプログラムをスケジュールして実行する、
ことを特徴とする請求項１、２、３、５又は７に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ技術分野におけるコンピュータシステムアーキテクチュア技術領域に関する。具体的には、プログラム/命令の実行を駆動するＬ駆動方法と呼ばれる駆動コンピュータプログラムが実行する駆動方法、及びこのような方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサであって、プログラム毎にプログラム実行駆動装置を引き込み、割込み動作を使用しない状態で、複数のプログラムを単一の前記プロセッサで同時並行的に実行し、複数のプログラム実行駆動装置を、互いに独立に又は互いに協調して管理・制御することを特徴とする。ここで、単一のプロセッサとは、１群の命令制御部材と、１群の操作制御部材と、１つのプログラム及び１群のデータ記憶部材と、１群のコミュニケーション部材とからなる単一プロセッサをいう。
【背景技術】
【０００２】
従来のコンピュータのシステムアーキテクチュアにおける最も重要な特徴は、プログラムに対して実行されるシステムアーキテクチュアは単一であり、すなわちいかなる時刻においてもただ１つのプログラムが１つのコンピュータのプロセッサで実行されるということである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
現代のコンピュータの実際の応用においては、１人のユーザが１つのコンピュータ（PC）上で複数のアプリケーションを呼び出し、複数のプログラムを実行する場合が普通である。エディタにて、ある文書を作成すると共に、ネットワークから１つ、甚だしくは同時に複数のピクチャをダウンロードし、更に１小節の音楽を再生し、アンチウィルスプログラムによってリアルタイムに監視し、キーボードを叩き、マウスマークを移動させるかもしれない。このユーザの要求を満足させるためには、１つのPCでは、すべてのプログラムを頻繁に切り替えるため、多くの時間を浪費せざるを得ないので、システムの全体性能が大きく低下する。これらは全て、従来のコンピュータ原理に基づいて設けられた従来のコンピュータプロセッサが同一の時刻に同一のコンピュータプロセッサで同時に複数のプログラムを並行して実行できないことによる。
【課題を解決するための手段】
【０００４】
これに鑑みて、本発明は、割込み動作を使用しない条件下、１つのタイプのコンピュータプロセッサ上で、同一の時刻に複数のプログラムを並行して実行可能とすることを特徴とする、プログラム/命令の実行を駆動するＬ駆動方法と呼ばれる駆動コンピュータプログラムを実行する駆動方法、及びこのような方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサを提供するものである。ここで、１つのタイプのコンピュータプロセッサとは、１群の命令制御部材と、１群の操作制御部材と、１つのプログラム及び１群のデータ記憶部材と、１群のコミュニケーション部材とからなる単一のプロセッサをいう。
【０００５】
以上のようなプログラム/命令の実行を駆動するＬ駆動方法、及びこのような方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサであって、プログラム毎にプログラム実行駆動装置を引き込み、複数のプログラムを同一の時刻に並行して実行することを、複数のプログラムが同一の該タイプのコンピュータプロセッサにて、互いに独立に又は互いに協調して管理・制御することを特徴とする。ここで、１つのプログラムを構成する複数のルーチンやサブルーチンは、それぞれのプログラム実行駆動装置を有している。
【０００６】
各プログラムは、実行可能なコードを生成すると共に、該プログラムのプログラム実行駆動装置を生成し、プログラム実行駆動装置は、少なくとも該プログラムの属性特徴を説明・定義し、該プログラムの実行を管理・制御するための相関情報全体を含む。
上述のプログラム/命令の実行を駆動するＬ駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサであって、該システムの基本的な構成は以下の通りである：
１.システムのハードウェア部分は、以下の部材から構成される。
・プログラム記憶部材、データ記憶部材、レジスタ群などのような、１つ又は複数の並行に動作できる記憶部材；
・制御部材、復号化部材、算術/論理演算部材、外部機器部材などのような、１つ又は複数の並行に動作できる操作制御部材；
・バス及びその制御部材などのような、１つ又は複数の並行に動作できる、部材同士で接続作用を発揮するコミュニケーション部材
前記各種の部材は一般に１つの入力バッファ装置と１つの出力バッファ装置とを有している。
システム中の全ての部材は、要求/サービスの方式に従って動作可能であり、要求を受けた後、すなわち入力バッファが非エンプティーである時に、指定のサービスを始動させて完成し、その結果を出力バッファに格納する。
あるサービスを要求された部材は、複数設置されると、いずれかの暇なものを選択できる。全部が忙しければ、暇になるものを待つ。
システムにおける部材は、独占型と非独占型に分けられる。独占型部材については、システムに予め設定されたり、又は一回目のサービスが要求された時に申請したりする。予め設定された結果や申請した結果は、該プログラムに対応するプログラム実行駆動装置のあるアイテム中に保存される。
２.システムのソフトウェア部分は、１つの現代のコンピュータシステムにおける操作システムと類似するシステム管理プログラムからなる。該システム管理プログラムは、ある記憶部材に格納され、少なくともプログラムスケジュール機能を有すべきであり、少なくとも１つのプログラムスケジュールテーブルと呼ばれるデータ構造を有している。システムの初期起動の際に、システム管理プログラムのプログラム実行駆動装置がシステムのある操作制御部材にロードされ、それは該プログラム実行駆動装置をアクティブにする、或は活性化することと呼ばれる。該プログラム実行駆動装置は、システム管理プログラムを駆動し、複数のユーザプログラムのプログラム実行駆動装置を一つずつアクティブにする。その後、各ユーザプログラムのプログラム実行駆動装置は、互いに独立して又は協調して、同一の時刻にそれぞれのユーザプログラムを駆動し、同一のコンピュータプロセッサにて同時並行的に実行する。
【０００７】
上述のプログラム/命令の実行を駆動するＬ駆動方法、及びこのような方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサであって、該新規なコンピュータプロセッサの動作方法、すなわちプログラム実行駆動装置がプログラムを実行する方法は、以下の通りである。
１）１つのプログラムが実行可能なコードを生成すると、システム管理プログラムは該プログラムの実行を駆動する相関駆動情報をプログラムスケジュールテーブルの相関欄に書き込む。この時、該プログラムは、ある記憶部材に格納されて実行待機状態にある。
２）該プログラムが、呼出して実行する各条件を満足すると、システム管理プログラムは、該プログラムのプログラム実行駆動装置を創設/生成する。その後、該プログラムは実行状態に入り、そのプログラム実行駆動装置の管理及び制御を独立に実行する。
３）プログラム実行駆動装置は、保存された該プログラムの常駐情報（例えばプログラム記憶部材番号、部材内アドレスPC等）に従って、対応する記憶部材へ現在実行しようとしている命令を取り出すように制御する。
４）命令を取り出した後、該プログラム実行駆動装置は、ある操作制御部材が取り出された命令を復号化するように制御する。これによって対応する記憶部材へ操作数を取り出させ、適当な操作制御部材が指定の処理を完成し、処理結果を対応する記憶部材に書き返すように制御する。
ここでの“復号化”は従来の復号化と多少の区別があり、詳細は後の部分で参照する。
取り出された命令の“復号化”の結果、取り出された操作数及び操作の結果が共に該プログラム実行駆動装置のあるユニットに一時保存される。
５）最終的に、該プログラム実行駆動装置は、保存されているプログラム常駐情報類に属するPCアイテムを、現在の命令に規定された方式に基づいて補正した後、ステップ３に移行して本プログラムの次の命令を制御・実行する。
６）少なくとも、該プログラムの終了命令まで実行する場合には、システム管理プログラムは、あるプログラムのプログラム実行駆動装置をアンロードする。これによって、PMを対応する終了フラグとし、システム管理プログラムをアクティブにして該プログラムに適当な終了処理を施し、最終的にプログラムスケジュールテーブルから該プログラムのプログラム実行駆動装置を削除する。
【発明の効果】
【０００８】
上述したように、本発明のプログラム/命令の実行を駆動するＬ駆動方法によって設計された新規なコンピュータプロセッサは、命令レベルの並行処理を実現できる。実際に、複数のプログラムを同じ時刻に並行に実行することを、複数のプログラム実行駆動装置が同一の該タイプのコンピュータプロセッサにて互いに独立して又は互いに協調して管理・制御する。
【０００９】
本発明のプログラム/命令の実行を駆動するＬ駆動方法によって設計された新規なコンピュータプロセッサは、命令レベルの資源共用を実現できる。システムの任意の部材は、現在所要されなければ、いずれかのプログラムのプログラム実行駆動装置が実行する現在の命令に使用される。
【００１０】
本発明のプログラム/命令の実行を駆動するＬ駆動方法によって設計された新規なコンピュータプロセッサでは、活性化されるプログラム実行駆動装置の個数は、システムに提供される資源の合計に比例している。システム資源が十分である場合は、活性化されるプログラム実行駆動装置の数量は十分に多い。すなわち、システムは十分に多くのプログラムを同一時刻に同一のコンピュータプロセッサにて同時並行的に実行することを支持できる。
【００１１】
本発明のプログラム/命令の実行を駆動するＬ駆動方法によって設計された新規なコンピュータプロセッサは、従来のマルチコンピュータシステム、マルチプロセシングシステム及びマルチプロセッサシステムなどと本質的な違いがあり、他の並行処理技術（例えばオーバレイ技術、先行制御技術、マルチ操作部材技術、パイプライン技術、スーパーパイプライン技術、超長命令ワード技術、スーパレシオ技術、マルチスレッド技術など）を採用したコンピュータシステムとも本質的な違いがある。特に、本発明のコンピュータプロセッサ動作方法によって設計された新規なコンピュータプロセッサが、従来のマルチコンピュータシステムと区別されるのは、複数のプログラムが１台のコンピュータだけで実行され、複数のコンピュータに割当て実行されないことである。
【００１２】
例えば、マウス、キーボード、ディスプレイ等のシステムプログラム、ウイルスモニタ等のプログラム、及び該コンピュータを使用したユーザプログラムが、複数のコンピュータに割当て実行がなされず、１台のコンピュータ上だけで実行される。この場合に、従来のマルチコンピュータシステムでは、割込み切替方式にて複数のプログラムを１つの“マクロ”プログラムに変換して１台のコンピュータにて実行せざるを得ない。
【００１３】
本発明のプログラム/命令の実行を駆動するＬ駆動方法によって設計された新規なコンピュータプロセッサにおいては、割込み動作を使用しない状態で、単一コンピュータプロセッサにて、同一の時刻に上述の各プログラムを並行して実行できる。
【発明を実施するための最良の形態】
【００１４】
本発明によるコンピュータプログラム/命令の実行を駆動するＬ駆動方法に従って、１種類の新規な構造のコンピュータシステムアーキテクチュア及びコンピュータプロセッサ（以下、それぞれ「Ｌコンピュータシステムアーキテクチュア」及び「Ｌ構造プロセッサ」という）を作成できる。図１はその中の一実施形態のＬコンピュータシステムアーキテクチュアの原理的な模式ブロック図である。本願の目的は、１台の実用Ｌ構造プロセッサを設計することではなく、コンピュータプログラム/命令の実行を駆動するＬ駆動方法及びそのＬコンピュータシステムアーキテクチュア並びにＬ構造プロセッサの技術原理を述べて明らかにすることにあるので、原理的なシステムアーキテクチュア模式ブロック図について多くの簡略化を行っており、例えばクロック部、バス部等を省略し、I/Oインタフェース及び外部機器部について、ただ簡単に説明していることを理解されたい。
【００１５】
プログラム/命令の実行を駆動するＬ駆動方法及びこのような方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサの１つの最も重要な特徴は、プログラム毎にプログラム実行駆動装置を引き込んで駆動プログラムを実行することである。ここに示す例において、プログラム実行駆動装置は、１群の情報ユニットからなる情報ブロックとして設計されている。システムハードウェアの支持の下、これらの情報ユニット群、すなわちプログラム実行駆動装置は、現在対応している命令の操作コードの要求に従って、相応的な各機能部材に順次アクセスし、命令の操作数に対して指定された機能操作、即ち読み出し操作、演算操作、書込み操作等を行っている。プログラム実行駆動装置の構成は以下の通りである。
2008504615.tif 000002
ここに示した例において、１つのプログラム実行駆動装置は２９個のユニットからなり、各構成ユニットの定義及び説明は以下の通りである。
ユニット０―ユニット６：実行時の動作ユニットである。すなわち本プログラムを実行する過程において一時的な/中間の結果を格納するためのユニットである。なお、０番目のユニット（NEXTユニットという）は本プログラム実行駆動装置が現在アクセスしようとしている、要求がある機能部材の番号であり、ユニット１−６は現在駆動する命令によって異なり、その具体的な方法は各部材の機能を述べる時に詳細に説明する。特に、ユニット１はΔPCユニットとして用いられる場合がある。ΔPC＝０の時、現在の命令がEND命令であることを示し、ΔPC＝１の時、現在の命令が非ジャンプ型命令であることを示し、ΔPC＞１又はΔPC＜０の時、現在の命令がジャンプ型命令であることを示す。
ユニット７：プログラム記憶部材の部材番号（MPno）であり、本プログラムが駐在しているプログラム記憶部材の部材番号を格納するためのものである。
ユニット８：プログラム記憶部材の部材個数（MPnu）であり、１つのプログラムの占用プログラムスペースが１つのプログラム記憶部材の容量より大きい場合には、順次隣接する複数の連続するプログラム記憶部材に格納できる。プログラム記憶部材個数ユニットはプログラムの所要の連続するプログラム記憶部材の個数を格納することに用いられる。MPnuの値が１より大であれば、MPnoの値は第１番のプログラム記憶部材の部材番号である。
ユニット９：プログラム記憶部材の部材内アドレス（PC）であり、本プログラムが現在実行している命令のプログラム記憶部材の部材内アドレスを格納するためのものである。
ユニット１０：データ記憶部材の部材番号（MDno）であり、本プログラムが占用しているデータ記憶部材の部材番号を格納するためのものである。
ユニット１１：データ記憶部材の部材個数（MDnu）であり、１つのプログラムが必要とする占用データスペースが１つのデータ記憶部材の容量より大きい場合に、順次隣接する複数の連続するデータ記憶部材に格納できる。データ記憶部材個数ユニットは本プログラムの所要の連続なデータ記憶部材の個数を格納することに用いられる。MDnuの値が１より大であれば、MDnoの値は第１番のデータ記憶部材の部材番号である。
ユニット１２：プログラム番号（PrNo）であり、二つ以上の実行しているプログラムが共通に同一のプログラム記憶部材に格納されている場合に、本パラメータで各プログラムを識別する。
ユニット１３−ユニット２８：１６個の汎用レジスター（R0-R15）であり、本実施例では、１６個の汎用レジスター（R0-R15）がプログラム実行駆動装置の構成部分をなすように設計される。
【００１６】
従来のコンピュータプロセッサにおいては、一般的にレジスター群がハードウェア部材として設計されており、ハードウェアである電気記憶手段と読み出し/書き込み電気手段とから構成されている。区別するために、このようなレジスター群設計方式は、固定型レジスター群設計方式と呼ばれる。Ｌ構造プロセッサについては、固定型ハードウェア方式でレジスター群を設計してもよい。しかしながら、本実施例では、レジスター群はプログラム実行駆動装置の１つの構成部分として設計されており、且つプログラム実行駆動装置に従って各部材にアクセスされる。このようなレジスター群設計方式は、ダイナミック型レジスター群設計方式と呼ばれる。このように設計する利点は、読み出し/書き込みレジスターの伝送時間をなくすことだけではなく、各プログラムが同時にレジスター群にアクセスすることによるウェイト時間遅延をなくしたことである。欠点は資源の使用量が大きいことである。
【００１７】
図１は本発明の上述実施例に係るシステムの各ハードウェア機能部材を示す。これらの機能部材の主な機能及びその入力/出力であるプログラム実行駆動装置の内容は以下の通りである。
【００１８】
１.記憶機能部材
１）部材１：プログラム記憶部材MPと呼ばれ、プログラム記憶部材の読み出し/書き込みに係るサービスを提供するために用いられる。独立して並行に動作できるMP部材が複数設けられる。各MP部材の主な機能は以下の通りである。
●MPは１つの入力キュー（queue）を維持しており、本MP処理を請求する全てのプログラム実行駆動装置は該キュー中で待機している。MPは１つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キュー中で待機し、DU部材の配送サービスを待つ。
●読み出し要求：現在のキューヘッダにあるプログラム実行駆動装置が要求するものが読み出し操作であれば、該プログラム実行駆動装置から該プログラムの部材内アドレスPCを取り出してMPのアドレスレジスターに送り、MPの読み出し操作を始動させて該プログラムの現在の命令を読み取る。読み取った命令を現在のプログラム実行駆動装置の該当するユニットに書き込む。プログラム実行駆動装置のNEXTユニットをITとし、それをMPの出力キューに書き込む。
●書き込み要求：現在のキューヘッダにあるプログラム実行駆動装置が要求するものが書き込み操作であれば、完成する必要がある操作はデータ記憶部材の書き込み操作と類似しているので、ここでは省略する。
●上述の処理過程を繰返す。本MPの入力キューがエンプティー又は出力キューがフルであれば、空操作を一回行う。
●MP部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容を示すと以下の通りである。
2008504615.tif 000003
ユニット０におけるMPrは、行先部材がMPであり、且つ「読み出し」操作を要求して実行することを示す。
ここで注意すべきことは、簡潔をはかるため、現在関わりのないプログラム実行駆動装置の構成ユニット、例えばユニット１−６を共に省略して居る、ということである。以下同様。
●MP部材の出力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。ユニット１におけるIは読み出した現在の命令、例えばLDI R0,Cである。
2008504615.tif 000004
ここで注意すべきことは、本実施例においては、どのようにプログラム自身をプログラム記憶部材に書き込むのかという過程を省略しているので、関係するプログラム実行駆動装置の構成ユニットの内容も省略した、ということである。実際に、該過程は、データを該当するデータ記憶部材に書き込む過程と類似している。
２）部材２：データ記憶部材MDと呼ばれ、データ記憶部材の読み出し/書き込みに係るサービスを提供するために用いられる。独立して並行に動作できるMD部材が複数設けられる。各MD部材の主な機能は以下の通りである。
●MDは１つの入力キューを維持しており、本MD処理を請求する全てのプログラム実行駆動装置は該キュー中で待機している。MDは１つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キュー中で待機し、DU部材の配送サービスを待つ。
●読み出し操作：現在のキューヘッダにあるプログラム実行駆動装置が要求するものが読み出し操作であれば、該プログラム実行駆動装置から該読み出し操作の部材内アドレスを取り出してMDのアドレスレジスターに送り、MDの読み出し操作を始動させて該当する記憶ユニットの内容を読み取る。読み取ったデータを現在のプログラム実行駆動装置のあるユニットに書き込む。NEXTユニットをPM、ΔPCユニットを１とし、それらをMDの出力キューに書き込む。
●書き込み操作：現在のキューヘッダにあるプログラム実行駆動装置が要求するものが書き込み操作であれば、該プログラム実行駆動装置から該書き込み操作のデータ及び部材内アドレスを取り出し、それぞれMDのデータレジスター及びアドレスレジスターに送り、MDの書き込み操作を始動させてデータを該当する記憶部材に書き込む。NEXTユニットをPM、ΔPCユニットを１とし、それらをMDの出力キューに書き込む。
●上述の処理過程を繰返す。本MDの入力キューがエンプティー又は出力キューがフルであれば、空操作を１回行う。
●MD部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は、IT部材の出力キューにおけるMDへ発信するプログラム実行駆動装置及びその構成ユニットの内容を参照できる。
●MD部材の出力キューにおけるPMへ発信するプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。
2008504615.tif 000005
ここで、ユニット１はΔPCであり、現在の命令の現在値は１である。
【００１９】
２.操作機能部材
１）部材３：プログラム管理部材PMと呼ばれ、プログラム実行駆動装置の運行を管理するサービスを提供するために用いられる。独立して並行に動作できるPM部材が複数設けられる。各PM部材の主な機能は以下の通りである。
●PMは１つの入力キューを維持しており、本PM処理を請求する全てのプログラム実行駆動装置は該キュー中で待機している。PMは１つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キュー中で待機し、DU部材の配送サービスを待つ。
●１つのプログラムを始動させて実行駆動装置を運行する。システム管理プログラムが１つのプログラムのプログラム実行駆動装置をアクティブにすることは、実際には該プログラムのプログラム実行駆動装置をPMの入力キューに書き込むことである。PMが該プログラム実行駆動装置まで処理する場合に、そのNEXTユニットをMP（読み出し指令）とし、それをPMの出力キューへ書き込む。
●１つのプログラム実行駆動装置の運行を継続する。各プログラム実行駆動装置が１つのプログラムを駆動する現在の命令の実行の最終ステップは、PMへ復帰することである。現在の命令が終了命令でなければ、PMは該ドライバが引き続き運行するように制御される。ユニット９←ユニット９＋ユニット１を行う。即ちPC←PC＋ΔPC。NEXTユニットをMPとし、それをPMの出力キューへ書き込む。
●１つのプログラム実行駆動装置の運行を終了する。あるプログラムが１つの終了命令まで実行する場合に、PMは該プログラムのプログラム実行駆動装置を削除する方式を採用することで、該プログラムの実行を終了する。
ここで注意すべきことは、該プログラムは終了命令を実行する前に、１つ又は複数の資源解放型（resource-release-type）命令を実行しなければならないということである。
●上述の処理過程を繰返す。本PMの入力キューがエンプティー又は出力キューがフルであれば、空操作を１回行う。
●PM部材の入力キュー中に受け入れられたプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。
2008504615.tif 000006
ここで、ユニット１はΔPCであり、その値は０、１、又はジャンプのオフセットである。
●PM部材の出力キュー中のMP部材へ発するプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。
2008504615.tif 000007
ここで、ユニット０におけるMPrは、行先部材がMPであり且つ「読み出し」操作を要求して実行することを示す。
２）部材４：命令フォーマット変換部材ITと呼ばれ、命令復号及び命令フォーマット変換に係るサービスを提供するために用いられる。独立して並行に動作できるIT部材が複数設けられる。各ITの主な機能は以下の通りである。
●ITは１つの入力キューを維持しており、本IT処理を請求する全てのプログラム実行駆動装置は該キュー中で待機している。ITは１つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キュー中で待機し、DU部材の配送サービスを待つ。
●命令フォーマット変換を要求するプログラム実行駆動装置については、ITは該プログラム実行駆動装置に格納されている現在の命令をフォーマット変換し、これによってNEXT等のユニットを設置し、それをITの出力キューに書き込む。
●上述の処理過程を繰返す。本ITの入力キューがエンプティー又は出力キューがフルであれば、空操作を１回行う。
●IT部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。ここで、ユニット１におけるIは読み出した現在の命令、例えばLDI R0, Cである。
2008504615.tif 000008
●以下に示すように、IT部材の出力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は現在の命令Iによって異なる。
・ITからPMへ発するプログラム実行駆動装置及び構成ユニットの内容：
LDI Rd, C
2008504615.tif 000009
ここで、ユニット１はΔPCであり、現在の命令の現在値は１である。
MV Rd, Rs
2008504615.tif 000010
ここで、ユニット１はΔPCであり、現在の命令の現在値は１である。
・ITからMDへ発信するプログラム実行駆動装置及び構成ユニットの内容は、以下の通りである。
LD Rd, Rs
2008504615.tif 000011
ここで、ユニット０におけるMDrは行先部材がMDであり、且つ「読み出し」操作を要求して実行することを示し、ユニット２，３における[Rd]及び[Rs]はレジスターRd及びレジスターRs中の内容を示す。
STI Rd, C
2008504615.tif 000012
ここで、ユニット０におけるMDIwは行先部材がMDであり、且つ「即時値の書き込み」操作を要求して実行することを示し、ユニット２における[Rd]はレジスターRd中の内容を示す。
ST Rd, Rs
2008504615.tif 000013
ここで、ユニット０におけるMDwは行先部材がMDであり、且つ「書き込み」操作を要求して実行することを示し、ユニット２，３における[Rd]及び[Rs]はレジスターRd及びレジスターRs中の内容を示す。
・ITからALUへ発するプログラム実行駆動装置及び構成ユニットの内容は、以下の通りである。
ADDI Rd, C
2008504615.tif 000014
ここで、ユニット０におけるALUI+は行先部材がALUであり、且つ「即時値の加算」操作を要求して実行することを示す。SUBI、MULI、DIVI等の命令について、その該当するプログラム実行駆動装置及び構成ユニットの内容はこれと類似し、ユニット０だけをそれぞれALUI−、ALUI*、ALUI÷とする。
ADD Rd, Rs1, Rs2
2008504615.tif 000015
ここで、ユニット０におけるALU+は行先部材がALUであり、且つ「加算」操作を要求して実行することを示し、SUB、MUL、DIV等はこれと類似している。
JEQI Rs, C
2008504615.tif 000016
ここで、ユニット０におけるALUIjは行先部材がALUであり、且つ「即時値のジャンプ判断」操作を要求して実行することを示し、JNEI等はこれと類似している。
JEQ Rs1, Rs2
2008504615.tif 000017
ここで、ユニット０におけるALUjは行先部材がALUであり、且つ「ジャンプ判断」操作を要求して実行することを示し、JNE等はこれと類似している。
SLT Rd, Rs1, Rs2
2008504615.tif 000018
ここで、ユニット０におけるALUsltは行先部材がALUであり、且つ「設置不満」操作を要求して実行することを示し、SLE、SGT、SGE、SEQ、SNE等はこれと類似している。
３）部材５：算術/論理演算部材ALUと呼ばれ、算術/論理演算に係るサービスを提供するために用いられる。独立して並行に動作できるALU部材が複数設けられる。各ALU部材の主な機能は以下の通りである。
●ALUは１つの入力キューを維持しており、本ALU処理を請求する全てのプログラム実行駆動装置は該キューで待機している。ALUは１つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キューで待機し、DU部材の配送サービスを待つ。
●ALUに算術/論理演算のサービスを要求する前に、プログラム実行駆動装置は該命令が要求する演算数を用意し、且つプログラム実行駆動装置の該当するユニットに格納するように制御する。ALUは、プログラム実行駆動装置に格納されている該当する演算数に対し、要求される算術/論理演算を行い、結果がプログラム実行駆動装置の該当するユニットに格納される。NEXTユニットをPMとし、命令の規定に従って１ユニット、すなわちΔPCユニットとし、それをALUの出力キューへ書き込む。
●上述の処理過程を繰返す。本ALUの入力キューがエンプティー又は出力キューがフルであれば、空操作を１回行う。
●ALU部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は、IT部材の出力キューにおける、ALUへ発信するプログラム実行駆動装置及びその構成ユニットの内容を参照できる。
●ALU部材の出力キューにおけるプログアム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。
2008504615.tif 000019
ここで、ユニット１はΔPCであり、その値は１又はジャンプのオフセットである。
４）部材６：外部機器管理部材PDと呼ばれ、外部機器、例えばディスプレイ、キーボード、マウス、プリンタ、通信機器などの機器を管理し、ホストとデータ入力/出力のサービスを提供するために用いられる。
５）部材７：プログラム実行駆動装置配送部材DUと呼ばれ、プログラム実行駆動装置を１つの部材の出力キューからもう１つの部材の入力キューへ配送する転送及び配送サービスを提供するために用いられる。独立して並行に動作できるDU部材が複数設けられる。各DU部材の主な機能は以下の通りである。
●DUは、予定された順序に従って各部材群の各部材の出力キューが非エンプティーであるかどうかを１つ１つチェックする。ある非エンプティーである出力キューについて、DUはキューから１つのプログラム実行駆動装置を取り出し、該プログラム実行駆動装置のNEXTユニットに指示された行先部材群番号及び行先部材番号に従って、該行先部材群の行先部材の入力キューが非フルであるかどうかをチェックする。非フルであれば、該プログラム実行駆動装置を該行先部材群の行先部材の入力キューへ配送する。
ここで注意すべきことは、以上の処理方式はPM、MP及びMDに対するものである、ということである。IT及びALUについて、該部材からいずれかの入力キューが非フルである部材を選択すればよい。
●上述の処理過程を繰返す。すべての部材群のすべての部材の出力キューが共にエンプティーである、或いは出力キューは非エンプティーであるが、該当する入力キューが共にフルであれば、空操作を１回行う。
図１は又本発明の上述の実施例におけるシステムの各部材の接続関係も示しており、部材１乃至６は、それぞれの１又は２組の信号線を介してそれぞれの入力キューの終わり及び出力キューの始めを部材７に接続している。
【００２０】
図２は本発明の上述の実施例の部材７の構造ブロック図である。部材７は複数のデータ入力ポート、複数のデータ出力ポート、コミュニケーションネットワーク装置及び制御管理装置などからなる。部材７の制御管理装置は、ストローブの制御及び管理、例えば各ポートの繁閑の検出、プライオリティの確定、ルートの選択などに用いられる。部材７のコミュニケーションネットワーク装置は、複数のデータ入力ポートを複数のデータ出力ポートに接続するために用いられる。該コミュニケーションネットワーク装置の設計は多くの方法を採用でき、以下にその中の代表的な２種類を挙げる。
【００２１】
図３は、本発明の上述の実施例における配送部材のコミュニケーションネットワーク装置のクロス相互連絡方式の構造ブロック図である。部材７のコミュニケーションネットワーク装置はクロス相互連絡構造を採用し、いずれかの入力ポートは共に全ての又は一部の出力ポートに互いに接続されている。
【００２２】
図４は、本発明の上述の実施例における配送部材のマルチバス相互連絡方式の構造ブロック図である。部材７のコミュニケーションネットワーク装置はマルチバス構造を採用し、すべての入力ポートと出力ポートとは、幾つかの組に分けられて、それぞれが１つのバスに接続され、バス間は更にクロス相互連絡されている。
【００２３】
図５は、本発明の上述の実施例の動作フローチャートであり、新規なコンピュータプロセッサにおけるプログラム実行駆動装置の動作フローチャートである。その具体的なステップは以下の通りである。
ステップS1：システムの初期起動の際に、少なくとも１つのプログラム、例えばシステム管理プログラムのプログラム実行駆動装置が、あるプログラム管理部材PMの出力キュー中に格納されている。次に、ステップS2に移行する。
ステップS2：あるDU部材が、あるPM部材の出力キューが非エンプティーであり、且つキューヘッダにあるプログラム実行駆動装置のNEXTユニットに指示された特定の行先MP部材の入力キューが非フルであることを検出した場合に、該PM部材の出力キューヘッダのプログラム実行駆動装置を該当するMP部材の入力キューに配送して該部材の処理を待つ。次に、ステップS3に移行する。
ステップS3：あるMP部材が、その入力キューが非エンプティーであることを検出した場合に、入力キューヘッダのプログラム実行駆動装置におけるPCユニットに指定されたPCアドレスに従って、それに管理されたプログラム記憶部材から命令を読み取り、読み取った命令を該プログラム実行駆動装置の番号１のユニット中に格納する。この時に該MP部材の出力キューがフル状態であれば、それがエンプティーになるのを待つ。エンプティーになった時には、処理終了のプログラム実行駆動装置をその出力キュー中に書き込み、DUの配送処理を待つ。次に、ステップS4に移行する。
ステップS4：あるDU部材が、あるMP部材の出力キューが非エンプティーであり、且つ現在のヘッダにあるプログラム実行駆動装置のNEXTユニットに指示されている行先部材がITであり、少なくとも１つのIT部材の入力キューが非フルであることを検出した場合に、該MP部材の出力キューヘッダのプログラム実行駆動装置を該当するIT部材の入力キューに配送して該部材の処理を待つ。次に、ステップS5に移行する。
ステップS5：あるIT部材が、入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置による命令に対して命令のフォーマット変換を行い、変換した結果を該プログラム実行駆動装置の該当するユニット中に格納する。この時に該IT部材の出力キューがフル状態であれば、それがエンプティーになるのを待つ。エンプティーになった時には、処理終了のプログラム実行駆動装置をその出力キュー中に書き込み、DUの配送処理を待つ。次に、ステップS6に移行する。
ステップS6：あるDU部材が、ある部材、すなわちIT、ALU及びMDのいずれか一つの部材の出力キューが非エンプティーであり、且つ現在のヘッダにあるプログラム実行駆動装置のNEXTユニットに指示された行先部材の入力キューが非フルであることを検出した場合に、該部材の出力キューヘッダのプログラム実行駆動装置を該当する行先部材の入力キューに配送して該部材の処理を待つ。この時の行先部材には３種類があり、一つ目はあるALU部材であり、この時の行先ALU部材はいずれかの出力キューにエンプティーになったALU部材であってもよい。次に、ステップS7に移行する。二つ目はあるMD部材であり、この時の行先MD部材は上述プログラム実行駆動装置のNEXTユニットに特定されたMD部材でなければならない。次に、ステップS8に移行する。三つ目はあるPM部材であり、この時の行先PM部材は上述のプログラム実行駆動装置のNEXTユニットに特定されたPM部材でなければならない。次に、ステップS9に移行する。
ステップS7：あるALU部材が、入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置におけるNEXTユニットの命令に従って、該プログラム実行駆動装置中の該当するユニットに保存されている操作数に対し、指定された算術/論理演算を実行し、演算した結果を該プログラム実行駆動装置の該当するユニットに格納する。この時に該ALU部材の出力キューがフル状態であれば、それがエンプティーになるのを待つ。エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キュー中に書き込み、DUの配送処理を待つ。次に、ステップS6に移行する。
ステップS8：あるMD部材が、入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置におけるNEXTユニットの読み出しや書き込み命令、及び該プログラム実行駆動装置におけるあるユニットに指定された部材内アドレスに従って、それに管理されているデータ記憶部材で該プログラム実行駆動装置のあるユニットのデータに対して読み出し/書き込み操作を行う。読み出し操作であれば、読み出されたデータは該プログラム実行駆動装置のあるユニットに格納する。この時該MD部材の出力キューがフル状態であれば、それがエンプティーになるのを待つ。エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キュー中に書き込み、DUの配送処理を待つ。次に、ステップS6に移行する。
ステップS9： PMの部材が、入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置における命令要求に従って該当する操作を行う。１）非END命令：この時にΔPCは非０であり、PMは要求に基づいてそのPC等のユニットの値を補正し、補正した結果を該プログラム実行駆動装置の該当するユニットに格納する。この時、該PM部材の出力キューがフル状態であれば、それがエンプティーになることを待つ。エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キュー中に書き込み、DUの配送処理を待つ。２）END命令：この時にΔPCユニットは０であり、PMを該当する終了フラグとし、入力キュー中から該プログラム実行駆動装置を削除し、システム管理プログラムをアクティブにして他のプログラムをスケジューリングして実行する。
【００２４】
システムのソフトウェア部分は１つの簡潔化されたシステム管理プログラムからなる。主に本発明の技術原理を説明するために、該システム管理プログラムは簡潔化されたプログラムスケジュール機能だけを備えており、そのために１つのプログラムスケジュールテーブルを有している。システムの初期起動の場合は、該システム管理プログラムのプログラム実行駆動装置をシステムのPM部材中にロードする。該プログラム実行駆動装置はシステム管理プログラムを駆動し、ユーザプログラムのプログラム実行駆動装置を一つずつアクティブにする。
【００２５】
上述の内容は本発明の技術思想の一部、基本的な説明だけである。本発明中に提出された駆動コンピュータプログラム/命令を実行するＬ駆動方法に基づくコンピュータプロセッサを設計する方式及び方法には多くの種類があり、プログラム実行駆動装置を実現する方式及び方法、並びにプログラム実行駆動装置でプログラムの実行を管理制御する方式及び方法には、多くの種類がある。当業者が本発明に示唆された技術範囲内の容易に想到可能な変換や置換も、すべて本発明の保護範囲に含まれるべきである。
簡潔化した命令システム
MOVE命令：    MOV   Rd,Rs          Rd←Rs
LOAD命令：    LD    Rd,Rs          Rd←DM[Rs]
LDI   Rd，C          Rd←C
STORE命令：   ST    Rd,Rs          DM[Rd]←Rs
STI   Rd,C           DM[Rd]←C
ジャンプ命令：JEQ   Rs1,Rs2        IF(Rs1=0) PC←PC+Rs2 ELSE PC←PC+1
JNE   Rs1,Rs2        IF(Rs1≠0) PC←PC+Rs2 ELSE PC←PC+1
JEQI  Rs1,C          IF(Rs1=0) PC←PC+C   ELSE PC←PC+1
JNEI  Rs1,C          IF(Rs1≠0) PC←PC+C  ELSE PC←PC+1
演算命令：    ADD   Rd,Rs1,Rs2     Rd←Rs1+Rs2
SUB   Rd,Rs1,Rs2     Rd←Rs1-Rs2
MUL   Rd,Rs1,Rs2     Rd←Rs1*Rs2
ADDI  Rs,C           Rs←Rs+C
SUBI  Rs,C           Rs←Rs-C
MULI  Rs,C           Rs←Rs*C
論理命令：    OR    Rd,Rs1,Rs2     Rd←Rs1 OR  Rs2
AND   Rd,Rs1,Rs2     Rs←Rs1 AND Rs2
ORI   Rs,C           Rs←Rs  OR  C
ANDI  Rs,C           Rs←Rs  AND C
セット命令：  SLT   Rd,Rs1,Rs2     IF(Rs1< Rs2) Rd←1 ELSE Rd←0
SLE   Rd,Rs1,Rs2     IF(Rs1<=Rs2) Rd←1 ELSE Rd←0
SGT   Rd,Rs1,Rs2     IF(Rs1> Rs2) Rd←1 ELSE Rd←0
SGE   Rd,Rs1,Rs2     IF(Rs1>=Rs2) Rd←1 ELSE Rd←0
SEQ   Rd,Rs1,Rs2     IF(Rs1= Rs2) Rd←1 ELSE Rd←0
SNE   Rd,Rs1,Rs2     IF(Rs1≠Rs2) Rd←1 ELSE Rd←0
資源管理命令：GETMD Rd,Rs          [Rs]個の連続なMD部材を占用することを申請し、
Rd←許可されたMD部材番号。
GETMDI Rd,C          C個の連続なMD部材を占用することを申請する。
Rd←許可されたMD部材番号。
RETMD  Rs1,Rs2       [RS1]からの[Rs2]個の連続なMD部材を解放する
ことを申請する。
GETMDI Rs,C          [RS1]からの C個の連続なMD部材を解放する
ことを申請する。
終了命令：    END                  プログラムが終了する。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態のシステムアーキテクチュアの原理的な模式ブロック図である。
【図２】本発明の上述実施形態におけるプログラム実行駆動装置の配送部材の構造ブロック図である。
【図３】本発明の上述実施形態における配送部材のコミュニケーションネットワーク装置のクロス相互連絡方式の構造ブロック図である。
【図４】本発明の上述実施形態における配送部材のコミュニケーションネットワーク装置のマルチバス相互連絡方式の構造ブロック図である。
【図５】本発明の上述実施形態の動作フローチャートである。
【図１】
2008504615.tif 000038
【図２】
2008504615.tif 000039
【図３】
2008504615.tif 000040
【図４】
2008504615.tif 000041
【図５】
2008504615.tif 000042
【手続補正書】
【提出日】平成19年2月20日(2007.2.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
割込み動作を使用しない状態で、１つのタイプのコンピュータプロセッサに、同一の時刻に複数のプログラムを並行して実行することを可能とするコンピュータプログラム/命令を実行するＬ駆動方法において、
前記コンピュータプロセッサは、システム管理プログラムを含み、
前記システム管理プログラムは、プログラムスケジュール機能を有し、少なくとも１枚のプログラムスケジュールテーブルと呼ばれるデータ構造を維持するものであって、
前記駆動方法は、
前記システム管理プログラムをアクティブにする、即ち前記システム管理プログラムを制御して実行するように、システム管理プログラムのプログラム実行駆動装置を前記コンピュータプロセッサにおける操作制御部材にロードする段階と、
各プログラムについて、前記システム管理プログラムは順次に
１つのプログラムが実行可能コードを生成する際に、前記システム管理プログラムが該プログラムの実行を駆動する相関情報を、前記プログラムスケジュールテーブルの該当欄に書き込み、この時、該プログラムは実行待機状態にあり、
該プログラムが、呼出して実行する所定条件を満足すると、前記システム管理プログラムが該プログラムのプログラム実行駆動装置を創設してアクティブにし、その後、該プログラムは実行状態に入り、そのプログラム実行駆動装置の管理及び制御を独立に実行する操作を行う段階と、
各プログラムが終了命令まで実行する際に、前記システム管理プログラムのプログラム実行駆動装置をアクティブにし、該プログラムについての終了処理を実行し、最終的に前記プログラムスケジュールテーブルから前記プログラムのプログラム実行駆動装置を削除する段階と、
を含むことを特徴とする、コンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項２】
各プログラムのプログラム実行駆動装置は、少なくとも該プログラムの属性特徴を説明・定義し、該プログラムの実行を管理・制御するための相関情報全体を含んでいることを特徴とする、請求項１に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項３】
各プログラムのプログラム実行駆動装置は、保存された該プログラムの常駐情報に従って、前記コンピュータプロセッサの該当する記憶部材へ現在実行しようとする命令を取り出すように制御することを特徴とする、請求項２に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項４】
前記常駐情報は、プログラム記憶部材番号と部材内アドレスとを含んでいることを特徴とする、請求項３に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項５】
各プログラムのプログラム実行駆動装置は、現在対応している命令の操作コードの要求に従って、順次に前記コンピュータプロセッサの該当する機能部材をアクセスし、命令の操作数に対して指定された操作を行うことを特徴とする、請求項３に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項６】
前記プログラム実行駆動装置の構成は、
2008504615.tif 000043
ユニット０―ユニット６：実行時の動作ユニットである、すなわち本プログラムが実行する過程に一時/中間結果を格納するためのユニットであり、０番目のユニットは、NEXTユニットと呼ばれ、本プログラム実行駆動装置の現在アクセスする、サービス要求がある機能部材の番号である；
ユニット７：プログラム記憶部材の部材番号（MPno）であり、本プログラムが常駐されているプログラム記憶部材の部材番号を格納するためのものである；
ユニット８：プログラム記憶部材の部材個数（MPnu）であり、本プログラムの占用する連続なプログラム記憶部材の個数を格納することに用いられるものである；
ユニット９：プログラム記憶部材の部材内アドレス（PC）であり、本プログラムの現在実行している命令のプログラム記憶部材の部材内アドレスを格納するためのものである；
ユニット１０：データ記憶部材の部材番号（MDno）であり、本プログラムの所要のデータ記憶部材の部材番号を格納するためのものである；
ユニット１１：データ記憶部材の部材個数（MDnu）であり、本プログラムの占用する連続なデータ記憶部材の個数を格納することに用いられるものである；
ユニット１２：プログラム番号（PrNo）であり、各プログラムを識別するためのものである；
ユニット１３−ユニット２８：１６個の汎用レジスター（R0-R15）である；
を有することを特徴とする、請求項１に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項７】
全てのプログラム実行駆動装置の汎用レジスタは、共に１つ又は複数の並行に動作できるハードウエア部材にて実現されることを特徴とする、請求項６に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項８】
前記コンピュータプロセッサは、
１つ又は複数の並行に動作できる記憶部材であって、
プログラム記憶部材の読み出し/書き込みに係るサービスを提供するために用いられる、プログラム記憶部材MPと、
データ記憶部材の読み出し/書き込みに係るサービスを提供するために用いられる、データ記憶部材MDと、
を含む記憶部材と、
１つ又は複数の並行に動作できる操作制御部材であって、
プログラム実行駆動装置の実行を管理するサービスを提供するために用いられる、プログラム管理部材PMと、
命令復号化及び命令フォーマット変換に係るサービスを提供するために用いられる、命令フォーマット変換部材ITと、
算術/論理演算に係るサービスを提供するために用いられる、算術/論理演算部材ALUと、
外部機器の管理や制御に用いられる、外部機器管理部材PDと、
を少なくとも含む操作制御部材と、
１つ又は複数の並行に動作できる配送部材であって、プログラム実行駆動装置を１つの部材の出力キューからもう１つの部材の入力キューへ配送する転送及び配送サービスを提供するために用いられる、配送部材DUと、
を備えていることを特徴とする、請求項１又は６に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項９】
前記各部材は、それぞれ入力バッファ装置と出力バッファ装置とを有し、要求/サービスの方式に従って動作可能であり、請求を受けた後、すなわち入力バッファが非エンプティーである場合に、指定されたサービスを始動させ、その結果を出力バッファに格納することを特徴とする、請求項８に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項１０】
前記システム管理プログラムは、前記プログラムのプログラム実行駆動装置を創設してから、前記プログラムのプログラム実行駆動装置を１つのプログラム管理部材PMの出力キューに格納することを特徴とする、請求項９に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項１１】
配送部材DUは、プログラム管理部材PMの出力キューが非エンプティーであり、且つキューヘッダにあるプログラム実行駆動装置のNEXTユニットに指示された特定の行先プログラム記憶部材MPの入力キューが非フルであることを検出した場合に、前記プログラム管理部材PMの出力キューヘッダのプログラム実行駆動装置を該当するプログラム記憶部材MPの入力キューに配送することを特徴とする、請求項９に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項１２】
プログラム記憶部材MPは、その入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置におけるPCユニットに指定されたPCアドレスに従って、それに管理されたプログラム記憶部材から命令を読み取り、読み取った命令を該プログラム実行駆動装置のユニット１に格納し、
この時に該プログラム記憶部材MPの出力キューがフル状態である場合に、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込むことを特徴とする、請求項９に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項１３】
配送部材DUは、プログラム記憶部材MPの出力キューが非エンプティーであり、且つ現在のキューヘッダにあるプログラム実行駆動装置のNEXTユニットに指示された行先部材が命令フォーマット変換部材ITであり、少なくとも１つの命令フォーマット変換部材ITの入力キューが非フルであることを検出した場合に、該プログラム記憶部材MPの出力キューヘッダのプログラム実行駆動装置を該当する命令フォーマット変換部材ITの入力キューに配送することを特徴とする、請求項９に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項１４】
命令フォーマット変換部材ITは、入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置による命令に対して命令のフォーマット変換を行い、変換した結果を該プログラム実行駆動装置の該当するユニットに格納し、
この時に該命令フォーマット変換部材ITの出力キューがフル状態である場合に、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込むことを特徴とする、請求項９に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項１５】
配送部材DUは、命令フォーマット変換部材IT、算術/論理演算部材ALU及データ記憶部材MDの何れか１つの出力キューが非エンプティーであり、且つ現在のキューヘッダにあるプログラム実行駆動装置のNEXTユニットに指示された行先部材の入力キューが非フルであることを検出した場合に、該部材の出力キューヘッダのプログラム実行駆動装置を該当する行先部材の入力キューに配送することを特徴とする、請求項９に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項１６】
算術/論理演算部材ALUは、その入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置におけるNEXTユニットの命令に従って、該プログラム実行駆動装置中の該当するユニットに保存されている操作数に対し、指定された算術/論理演算を実行し、演算した結果を該プログラム実行駆動装置の該当するユニットに格納し、
この時に該算術/論理演算部材ALUの出力キューがフル状態である場合に、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込み、
この時の行先部材がプログラム管理部材PMであることを特徴とする、請求項９に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項１７】
データ記憶部材MDは、その入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置におけるNEXTユニットの読み出しや書き込み命令、及び該プログラム実行駆動装置に指定された部材内アドレスに従って、それに管理されているデータ記憶部材で該プログラム実行駆動装置のデータに対して読み出し/書き込み操作を行い、
読み出し操作であれば、読み出されたデータを該プログラム実行駆動装置の該当するユニットに格納し、
この時に該データ記憶部材MDの出力キューがフル状態である場合に、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込み、
この時の行先部材がプログラム管理部材PMであることを特徴とする、請求項９に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項１８】
プログラム管理部材PMは、その入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置における命令要求に従って該当する操作を行い、
非END命令である場合に、前記プログラム実行駆動装置のユニット１は非０であり、該プログラム管理部材PMは、要求に基づいて前記プログラム実行駆動装置の該当するユニットの値を補正し、補正した結果を該プログラム実行駆動装置の該当するユニットに格納し、この時に該プログラム管理部材PMの出力キューがフル状態である場合に、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込み、
END命令である場合に、前記プログラム実行駆動装置のユニット１は０であり、該プログラム管理部材PMを該当する終了フラグとし、入力キューから該プログラム実行駆動装置を削除し、システム管理プログラムをアクティブとし、別のプログラムをスケジュールして実行することを特徴とする、請求項９に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
【請求項１９】
プログラムスケジュール機能を有し、少なくとも１つのプログラムスケジュールテーブルと呼ばれるデータ構造を有するシステム管理プログラムと、
１つ又は複数の並行に動作できる記憶部材であって、
プログラム記憶部材の読み出し/書き込みに係るサービスを提供するために用いられる、プログラム記憶部材MPと、
データ記憶部材の読み出し/書き込みに係るサービスを提供するために用いられる、データ記憶部材MDと、
を有する、記憶部材と、
１つ又は複数の並行に動作できる操作制御部材であって、
プログラム実行駆動装置の実行を管理するサービスを提供するために用いられる、プログラム管理部材PMと、
命令復号化及び命令フォーマット変換に係るサービスを提供するために用いられる、命令フォーマット変換部材ITと、
算術/論理演算に係るサービスを提供するために用いられる、算術/論理演算部材ALUと、
外部機器の管理や制御に用いられる、外部機器管理部材PDと、
を少なくとも含む、操作制御部材と、
１つ又は複数の並行に動作できる配送部材であって、プログラム実行駆動装置を１つの部材の出力キューからもう１つの部材の入力キューへ配送する転送及び配送サービスを提供するために用いられる配送部材DUと、
を備えていることを特徴とする、コンピュータプロセッサ。
【請求項２０】
レジスタをさらに備え、
前記レジスタは、１つ又は複数の並行に動作できるハードウエア部材や、前記プログラム実行駆動装置の構成部分であることを特徴とする、請求項１９に記載のコンピュータプロセッサ。
【国際調査報告】
2008504615.tif 000044
2008504615.tif 000045
2008504615.tif 000046
2008504615.tif 000047