JP5336076B2 - プログラム/命令の実行を駆動する駆動方法及びそのシステムアーキテクチュア、並びにプロセッサ - Google Patents

プログラム/命令の実行を駆動する駆動方法及びそのシステムアーキテクチュア、並びにプロセッサ Download PDF

Info

Publication number
JP5336076B2
JP5336076B2 JP2007518438A JP2007518438A JP5336076B2 JP 5336076 B2 JP5336076 B2 JP 5336076B2 JP 2007518438 A JP2007518438 A JP 2007518438A JP 2007518438 A JP2007518438 A JP 2007518438A JP 5336076 B2 JP5336076 B2 JP 5336076B2
Authority
JP
Japan
Prior art keywords
program
program execution
instruction
drive device
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007518438A
Other languages
English (en)
Other versions
JP2008504615A (ja
Inventor
曉波 李
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of JP2008504615A publication Critical patent/JP2008504615A/ja
Application granted granted Critical
Publication of JP5336076B2 publication Critical patent/JP5336076B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Advance Control (AREA)
  • Programmable Controllers (AREA)

Description

本発明はコンピュータ技術分野におけるコンピュータシステムアーキテクチュア技術領域に関する。具体的には、プログラム/命令の実行を駆動する駆動方法、及びこのような方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサであって、割込み動作を使用しない状態で、複数のプログラムを単一のコンピュータプロセッサで同時並行的に実行することを特徴とする
従来のコンピュータのシステムアーキテクチュアにおける最も重要な特徴は、プログラムに対して実行されるシステムアーキテクチュアは単一であり、すなわちいかなる時刻においてもただ1つのプログラムが1つのコンピュータプロセッサで実行されるということである。
現代のコンピュータの実際の応用においては、1人のユーザが1つのコンピュータ(PC)上で複数のアプリケーションを呼び出し、複数のプログラムを実行する場合が普通である。エディタにて、ある文書を作成すると共に、ネットワークから1つ、甚だしくは同時に複数のピクチャをダウンロードし、更に1小節の音楽を再生し、アンチウィルスプログラムによってリアルタイムに監視し、キーボードを叩き、マウスマークを移動させるかもしれない。このユーザの要求を満足させるためには、1つのPCでは、すべてのプログラムを頻繁に切り替えるため、多くの時間を浪費せざるを得ないので、システムの全体性能が大きく低下する。これらは全て、従来のコンピュータ原理に基づいて設けられた従来のコンピュータプロセッサが同一の時刻に同一のコンピュータプロセッサで同時に複数のプログラムを並行して実行できないことによる。
これに鑑みて、本発明は、割込み動作を使用しない条件下、単一のコンピュータプロセッサ上で、同一の時刻に複数のプログラムを並行して実行可能とすることを特徴とする、プログラム/命令の実行を駆動する駆動方法(以下、「L駆動方法」という)、及びこのような方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサを提供するものである。ここで、1つのタイプのコンピュータプロセッサとは、1群の記憶部材と、1群の操作制御部材と、1群の配送部材とからなる単一のプロセッサをいう。
以上のようなプログラム/命令の実行を駆動するL駆動方法、及びこのような方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサ、プログラム毎にプログラムの実行を管理・制御する情報が記述されたプログラム実行駆動装置を生成し、生成されたプログラム実行駆動装置を処理内容に応じて対応する部材に配送して各部材が独立に動作することによって、複数のプログラムを同一の時刻に並行して実行できるようにしたものであって、複数のプログラムが単一のコンピュータプロセッサにて、互いに独立に又は互いに協調して管理・制御されることを特徴とする。ここで、1つのプログラムを構成する複数のルーチンやサブルーチンは、それぞれのプログラム実行駆動装置を有している。
各プログラムについて、実行可能なコードが生成されると、該プログラムのプログラム実行駆動装置が生成され、プログラム実行駆動装置は、少なくとも該プログラムの記憶部材上のアドレス情報と占用するデータ領域情報を定義したものであって、該プログラムの実行を管理・制御するための情報全体を含む。
上述のプログラム/命令の実行を駆動するL駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサの基本的な構成は、以下の通りである。
1.システムのハードウェア部分は、以下の部材から構成される。
・プログラム記憶部材、データ記憶部材などのような、1つ又は複数の他の部材と並行に動作できる記憶部材;
・プログラム管理部材、命令復号化部材、算術/論理演算部材、外部機器管理部材などのような、1つ又は複数の他の部材と並行に動作できる操作制御部材;
・バス及びその制御部材などのような、部材同士の接続作用を発揮する、1つ又は複数の他の部材と並行に動作できる配送部材
前記各部材(配送部材を除く)は、一般に1つの入力キューと1つの出力キューとを有している。
システム中の全ての部材は、要求を受けた後、すなわち入力キューが非エンプティーである時に、指定のサービスを始動させ、その結果を出力キューに格納する。
あるサービスを要求された部材は、複数設置されると、いずれかの暇なものを選択できる。全部が忙しければ、暇になるものを待つ。
システムにおける部材は、独占型と非独占型に分けられる。独占型部材については、システムに予め設定されたり、又は一回目のサービスが要求された時に申請したりする。予め設定された結果や申請した結果は、該プログラムに対応するプログラム実行駆動装置のあるユニット中に保存される。
2.システムのソフトウェア部分は、1つの現代のコンピュータシステムにおける操作システムと類似するシステム管理プログラムからなる。該システム管理プログラムは、ある記憶部材に格納され、少なくともプログラムスケジュール機能を有すべきであり、少なくとも1つのプログラムスケジュールテーブルと呼ばれるデータ構造を有している。システムの初期起動の際に、システム管理プログラムのプログラム実行駆動装置がシステムのある操作制御部材に生成され、それは該プログラム実行駆動装置をアクティブにする、或は活性化することと呼ばれる。該システム管理プログラムのプログラム実行駆動装置は、システム管理プログラムを駆動し、複数のユーザプログラムのプログラム実行駆動装置を一つずつ生成する。その後、各ユーザプログラムのプログラム実行駆動装置は、互いに独立して又は協調して、同一の時刻にそれぞれのユーザプログラムを駆動し、同一のコンピュータプロセッサにて同時並行的に実行される。
上述のプログラム/命令の実行を駆動するL駆動方法、及びこのような方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサであって、該新規なコンピュータプロセッサの動作方法、すなわちプログラム実行駆動装置がプログラムを実行する方法は、以下の通りである。
1)1つのプログラムについて実行可能なコード生成されると、システム管理プログラムは該プログラムの実行を駆動する駆動情報をプログラムスケジュールテーブルの関係する欄に書き込む。この時、該プログラムは、ある記憶部材に格納されて実行待機状態にある。
2)該プログラムについて、呼出して実行する条件満足されると、システム管理プログラムは、該プログラムの常駐情報として、記憶部材に駐在している該プログラムのアドレス情報と占用するデータ領域情報が記録されたプログラム実行駆動装置を生成する。それにより、該プログラムは実行状態に入り、そのプログラム実行駆動装置が各部材において独立に管理及び制御され、該プログラムが独立に実行される。
3)生成されたプログラム実行駆動装置は、保存された該プログラムの常駐情報(例えばプログラム記憶部材番号、部材内アドレスPC等)に従って、対応する記憶部材から現在実行しようとしている命令を取り出すように制御する。
4)命令を取り出した後、該プログラム実行駆動装置は、ある操作制御部材が取り出された命令を復号化するように制御する。これによって対応する記憶部材から取り出された命令に従って、適当な操作制御部材が指定の処理を完成し、処理結果を対応する記憶部材に書き返すように制御する。
ここでの“復号化”は従来の復号化と多少の区別があり、詳細は後の部分で参照する。
取り出された命令の“復号化”の結果、得られた命令コード及び処理結果が共に該プログラム実行駆動装置のあるユニットに一時保存される。
5)最終的に、該プログラム実行駆動装置は、保存されているプログラム常駐情報に属するPCアイテムを、現在の命令に規定された方式に基づいて補正した後、ステップ3に移行して本プログラムの次の命令を実行するように制御する
6)少なくとも、該プログラムの終了命令まで実行された場合には終了フラグがセットされ、該プログラムのプログラム実行駆動装置削除される。これによって、システム管理プログラムがアクティブになり、システム管理プログラムは、該プログラムについて適当な終了処理を施し、最終的にプログラムスケジュールテーブルから該プログラムの駆動情報を削除する。
上述したように、本発明のプログラム/命令の実行を駆動するL駆動方法によって設計された新規なコンピュータプロセッサは、命令レベルの並行処理を実現できる。実際に、複数のプログラムを同じ時刻に並行に実行すること、複数のプログラム実行駆動装置が同一の該タイプのコンピュータプロセッサにて互いに独立して又は互いに協調して管理・制御することによって実現される
本発明のプログラム/命令の実行を駆動するL駆動方法によって設計された新規なコンピュータプロセッサは、命令レベルの資源共用を実現できる。システムの任意の部材は、現在所要されていなければ、いずれかのプログラムのプログラム実行駆動装置が実行する現在の命令に使用される。
本発明のプログラム/命令の実行を駆動するL駆動方法によって設計された新規なコンピュータプロセッサでは、生成されるプログラム実行駆動装置の個数は、システムに提供される資源の合計に比例している。システム資源が十分である場合は、生成されるプログラム実行駆動装置の数量は十分に多い。すなわち、システムは十分に多くのプログラムを同一時刻に同一のコンピュータプロセッサにて同時並行的に実行することを支持できる。
本発明のプログラム/命令の実行を駆動するL駆動方法によって設計された新規なコンピュータプロセッサは、従来のマルチコンピュータシステム、マルチプロセシングシステム及びマルチプロセッサシステムなどと本質的な違いがあり、他の並行処理技術(例えばオーバレイ技術、先行制御技術、マルチ操作部材技術、パイプライン技術、スーパーパイプライン技術、超長命令ワード技術、スーパレシオ技術、マルチスレッド技術など)を採用したコンピュータシステムとも本質的な違いがある。特に、本発明のコンピュータプロセッサ動作方法によって設計された新規なコンピュータプロセッサが、従来のマルチコンピュータシステムと区別されるのは、複数のプログラムが1台のコンピュータだけで実行され、複数のコンピュータに割当て実行されないことである。
例えば、マウス、キーボード、ディスプレイ等のシステムプログラム、ウイルスモニタ等のプログラム、及び該コンピュータを使用したユーザプログラム、複数のコンピュータに割当て実行がなされず、1台のコンピュータ上だけで実行される。この場合に、従来のマルチコンピュータシステムでは、割込み切替方式にて複数のプログラムを1つの“マクロ”プログラムに変換して1台のコンピュータにて実行せざるを得ない。
本発明のプログラム/命令の実行を駆動するL駆動方法によって設計された新規なコンピュータプロセッサにおいては、割込み動作を使用しない状態で、単一コンピュータプロセッサにて、同一の時刻に上述の各プログラムを並行して実行できる。
本発明によるコンピュータプログラム/命令の実行を駆動するL駆動方法に従って、1種類の新規な構造のコンピュータシステムアーキテクチュア及びコンピュータプロセッサ(以下、それぞれ「Lコンピュータシステムアーキテクチュア」及び「L構造プロセッサ」という)を作成できる。図1はその中の一実施形態のLコンピュータシステムアーキテクチュアの原理的な模式ブロック図である。本願の目的は、1台の実用L構造プロセッサを設計することではなく、コンピュータプログラム/命令の実行を駆動するL駆動方法及びそのLコンピュータシステムアーキテクチュア並びにL構造プロセッサの技術原理を述べて明らかにすることにあるので、原理的なシステムアーキテクチュア模式ブロック図について多くの簡略化を行っており、例えばクロック部、バス部等を省略し、I/Oインタフェース及び外部機器部について、ただ簡単に説明していることを理解されたい。
プログラム/命令の実行を駆動するL駆動方法及びこのような方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサの1つの最も重要な特徴は、プログラム毎にプログラム実行駆動装置を生成してプログラムを実行することである。ここに示す例において、プログラム実行駆動装置は、1群の情報ユニットからなる情報ブロックとして設計されている。システムハードウェアは、これらの情報ユニット群、すなわちプログラム実行駆動装置に定義された情報に基づいて、現在対応している命令の操作コードの要求に従って、対応する機能部材に順次アクセスし、指定された機能操作、即ち読み出し操作、演算操作、書込み操作等を行う。プログラム実行駆動装置の構成は以下の通りである。
Figure 0005336076
ここに示した例において、1つのプログラム実行駆動装置は29個のユニットからなり、各構成ユニットの定義及び説明は以下の通りである。
ユニット0―ユニット6:実行時の動作ユニットである。すなわち本プログラムを実行する過程において一時的中間処理結果を格納するためのユニットである。なお、0番目のユニット(NEXTユニットという)は本プログラム実行駆動装置に定義された情報に基づいて次にアクセスする機能部材の番号であり、ユニット1−6は現在駆動する命令によって異なり、その具体的な方法は各部材の機能を述べる時に詳細に説明する。特に、ユニット1はΔPCユニットとして用いられる場合がある。ΔPC=0の時、現在の命令がEND命令であることを示し、ΔPC=1の時、現在の命令が非ジャンプ型命令であることを示し、ΔPC>1又はΔPC<0の時、現在の命令がジャンプ型命令であることを示す。
ユニット7:プログラム記憶部材の部材番号(MPno)であり、本プログラムが駐在しているプログラム記憶部材の部材番号を格納するためのものである。
ユニット8:プログラム記憶部材の部材個数(MPnu)であり、1つのプログラムの占用プログラムスペースが1つのプログラム記憶部材の容量より大きい場合には、順次隣接する複数の連続するプログラム記憶部材に格納できる。プログラム記憶部材個数ユニットはプログラムの所要の連続するプログラム記憶部材の個数を格納することに用いられる。MPnuの値が1より大であれば、MPnoの値は第1番のプログラム記憶部材の部材番号である。
ユニット9:プログラム記憶部材の部材内アドレス(PC)であり、本プログラムが現在実行している命令のプログラム記憶部材の部材内アドレスを格納するためのものである。
ユニット10:データ記憶部材の部材番号(MDno)であり、本プログラムが占用しているデータ記憶部材の部材番号を格納するためのものである。
ユニット11:データ記憶部材の部材個数(MDnu)であり、1つのプログラムが必要とする占用データスペースが1つのデータ記憶部材の容量より大きい場合に、順次隣接する複数の連続するデータ記憶部材に格納できる。データ記憶部材個数ユニットは本プログラムの所要の連続なデータ記憶部材の個数を格納することに用いられる。MDnuの値が1より大であれば、MDnoの値は第1番のデータ記憶部材の部材番号である。
ユニット12:プログラム番号(PrNo)であり、二つ以上の実行しているプログラムが共通に同一のプログラム記憶部材に格納されている場合に、本パラメータで各プログラムを識別する。
ユニット13−ユニット28:16個の汎用レジスター(R0-R15)であり、本実施例では、16個の汎用レジスター(R0-R15)がプログラム実行駆動装置の構成部分をなすように設計される。
従来のコンピュータプロセッサにおいては、一般的にレジスター群がハードウェア部材として設計されており、ハードウェアである電気記憶手段と読み出し/書き込み電気手段とから構成されている。区別するために、このようなレジスター群設計方式は、固定型レジスター群設計方式と呼ばれる。L構造プロセッサについては、固定型ハードウェア方式でレジスター群を設計してもよい。しかしながら、本実施例では、レジスター群はプログラム実行駆動装置の1つの構成部分として設計されており、且つプログラム実行駆動装置に従って各部材にアクセスされる。このようなレジスター群設計方式は、ダイナミック型レジスター群設計方式と呼ばれる。このように設計する利点は、読み出し/書き込みレジスターの伝送時間をなくすことだけではなく、各プログラムが同時にレジスター群にアクセスすることによるウェイト時間遅延をなくしたことである。欠点は資源の使用量が大きいことである。
図1は本発明の上述実施例に係るシステムの各ハードウェア機能部材を示す。これらの機能部材の主な機能及びその入力/出力であるプログラム実行駆動装置の内容は以下の通りである。
1.記憶部材
1)部材1:プログラム記憶部材MPと呼ばれ、プログラム読み出し/書き込みに係るサービスを提供するために用いられる。独立して並行に動作できるMP部材が複数設けられる。各MP部材の主な機能は以下の通りである。
●MPは1つの入力キュー(queue)をしており、本MP処理を請求する全てのプログラム実行駆動装置は該キュー中で待機している。MPは1つの出力キューもしており、全ての処理されたプログラム実行駆動装置は該キュー中で待機し、DU部材の配送サービスを待つ。
●読み出し要求:現在のMPの入力キューヘッダにあるプログラム実行駆動装置が要求するものが読み出し操作であれば、該プログラム実行駆動装置から該プログラムの部材内アドレスPCを取り出してMPのアドレスレジスターに送り、MPの読み出し操作を始動させて該プログラムの現在の命令を読み取る。該MPの入力キューヘッダから取り出したプログラム実行駆動装置の該当するユニットに読み取った命令を書き込み、NEXTユニットをITとし、それをMPの出力キューに移送する
●書き込み要求:現在のMPの入力キューヘッダにあるプログラム実行駆動装置が要求するものが書き込み操作であれば、完成する必要がある操作はデータ記憶部材の書き込み操作と類似しているので、ここでは省略する。
●上述の処理過程を繰返す。現在のMPの入力キューがエンプティー又は出力キューがフルであれば、空操作を一回行う。
●MP部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容を示すと以下の通りである。
Figure 0005336076
ユニット0におけるMPrは、行先部材がMPであり、且つ「読み出し」操作を要求して実行することを示す。
ここで注意すべきことは、簡潔をはかるため、現在関わりのないプログラム実行駆動装置の構成ユニット、例えばユニット1−6を共に省略して居る、ということである。以下同様。
●MP部材の出力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。ユニット1におけるIは読み出した現在の命令、例えばLDI R0,Cである。
Figure 0005336076
ここで注意すべきことは、本実施例においては、どのようにプログラム自身をプログラム記憶部材に書き込むのかという過程を省略しているので、関係するプログラム実行駆動装置の構成ユニットの内容も省略した、ということである。実際に、該過程は、データを該当するデータ記憶部材に書き込む過程と類似している。
2)部材2:データ記憶部材MDと呼ばれ、データ記憶部材の読み出し/書き込みに係るサービスを提供するために用いられる。独立して並行に動作できるMD部材が複数設けられる。各MD部材の主な機能は以下の通りである。
●MDは1つの入力キューをしており、本MD処理を請求する全てのプログラム実行駆動装置は該キュー中で待機している。MDは1つの出力キューもしており、全ての処理されたプログラム実行駆動装置は該キュー中で待機し、DU部材の配送サービスを待つ。
●読み出し操作:現在のMDの入力キューヘッダにあるプログラム実行駆動装置が要求するものが読み出し操作であれば、該プログラム実行駆動装置から該読み出し操作の部材内アドレスを取り出してMDのアドレスレジスターに送り、MDの読み出し操作を始動させて該当する記憶ユニットの内容を読み取る。前記プログラム実行駆動装置のあるユニットに読み取ったデータを書き込み、前記プログラム実行駆動装置に格納された現在の命令の規定に従って、前記プログラム実行駆動装置のNEXTユニット及びΔPCユニットを設定し、それをMDの出力キューに移送する
●書き込み操作:現在のMDの入力キューヘッダにあるプログラム実行駆動装置が要求するものが書き込み操作であれば、該プログラム実行駆動装置から該書き込み操作のデータ及び部材内アドレスを取り出し、それぞれMDのデータレジスター及びアドレスレジスターに送り、MDの書き込み操作を始動させてデータを該当する記憶部材に書き込む。前記プログラム実行駆動装置に格納された現在の命令の規定に従って、前記プログラム実行駆動装置のNEXTユニット及びΔPCユニットを設定し、それをMDの出力キューに移送する
●上述の処理過程を繰返す。現在のMDの入力キューがエンプティー又は出力キューがフルであれば、空操作を1回行う。
●MD部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は、IT部材の出力キューにおけるMDへ発信するプログラム実行駆動装置及びその構成ユニットの内容を参照できる。
●MD部材の出力キューにおけるPMへ発信するプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。
Figure 0005336076
ここで、ユニット1はΔPCであり、現在の命令の現在値は1である。
2.操作制御部材
1)部材3:プログラム管理部材PMと呼ばれ、プログラム実行駆動装置の運行を管理・制御するサービスを提供するために用いられる。独立して並行に動作できるPM部材が複数設けられる。各PM部材の主な機能は以下の通りである。
●PMは1つの入力キューをしており、本PM処理を請求する全てのプログラム実行駆動装置は該キュー中で待機している。PMは1つの出力キューもしており、全ての処理されたプログラム実行駆動装置は該キュー中で待機し、DU部材の配送サービスを待つ。
●1つのプログラムのプログラム実行駆動装置運行を始動する。システム管理プログラムが1つのプログラムのプログラム実行駆動装置の運行を始動することは、実際には該プログラムのプログラム実行駆動装置をPMの入力キューに書き込むことである。PMが該プログラム実行駆動装置の実行を開始させるには、NEXTユニットをMP(読み出し指令)としたプログラム実行駆動装置PMの出力キューへ書き込む。
●1つのプログラム実行駆動装置の運行を継続する。各プログラム実行駆動装置が1つのプログラムを駆動する現在の命令の実行の最終ステップは、PMへ復帰することである。現在の命令が終了命令でなければ、PMはプログラム実行駆動装置が引き続き運行されるように、PMの入力キューヘッダから取り出したプログラム実行駆動装置のユニット9←ユニット9+ユニット1を行い、即ちPC←PC+ΔPCとし、NEXTユニットをMPとし、それをPMの出力キューへ書き込む。
●1つのプログラム実行駆動装置の運行を終了する。あるプログラムが1つの終了命令まで実行する場合に、PMは該プログラムのプログラム実行駆動装置を削除する、即ちPMの入力キューヘッダから該プログラムのプログラム実行駆動装置を取り出した後、該PMの出力キューへ書き込むことなく廃棄することで、該プログラムの実行を終了する。
ここで注意すべきことは、該プログラムは終了命令を実行する前に、1つ又は複数の資源解放型(resource-release-type)命令を実行しなければならないということである。
●上述の処理過程を繰返す。現在のPMの入力キューがエンプティー又は出力キューがフルであれば、空操作を1回行う。
●PM部材の入力キュー中に受け入れられたプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。
Figure 0005336076
ここで、ユニット1はΔPCであり、その値は0、1、又はジャンプのオフセットである。
●PM部材の出力キュー中のMP部材へ発するプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。
Figure 0005336076
ここで、ユニット0におけるMPrは、行先部材がMPであり且つ「読み出し」操作を要求して実行することを示す。
2)部材4:命令復号化部材ITと呼ばれ、命令の復号化に係るサービスを提供するために用いられる。独立して並行に動作できるIT部材が複数設けられる。各ITの主な機能は以下の通りである。
●ITは1つの入力キューをしており、本IT処理を請求する全てのプログラム実行駆動装置は該キュー中で待機している。ITは1つの出力キューもしており、全ての処理されたプログラム実行駆動装置は該キュー中で待機し、DU部材の配送サービスを待つ。
●命令の復号化を要求するプログラム実行駆動装置については、ITは、該ITの入力キューヘッダから取り出たプログラム実行駆動装置に格納されている現在の命令を復号化し、これによってNEXT等のユニットを設定し、それをITの出力キューに移送する
●上述の処理過程を繰返す。現在のITの入力キューがエンプティー又は出力キューがフルであれば、空操作を1回行う。
●IT部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。ここで、ユニット1におけるIは読み出した現在の命令、例えばLDI R0, Cである。
Figure 0005336076
●以下に示すように、IT部材の出力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は現在の命令Iによって異なる。
・ITからPMへ発するプログラム実行駆動装置及び構成ユニットの内容:
LDI Rd, C
Figure 0005336076
ここで、ユニット1はΔPCであり、現在の命令の現在値は1である。
MV Rd, Rs
Figure 0005336076
ここで、ユニット1はΔPCであり、現在の命令の現在値は1である。
・ITからMDへ発信するプログラム実行駆動装置及び構成ユニットの内容は、以下の通りである。
LD Rd, Rs
Figure 0005336076
ここで、ユニット0におけるMDrは行先部材がMDであり、且つ「読み出し」操作を要求して実行することを示し、ユニット2,3における[Rd]及び[Rs]はレジスターRd及びレジスターRs中の内容を示す。
STI Rd, C
Figure 0005336076
ここで、ユニット0におけるMDIwは行先部材がMDであり、且つ「即時値の書き込み」操作を要求して実行することを示し、ユニット2における[Rd]はレジスターRd中の内容を示す。
ST Rd, Rs
Figure 0005336076
ここで、ユニット0におけるMDwは行先部材がMDであり、且つ「書き込み」操作を要求して実行することを示し、ユニット2,3における[Rd]及び[Rs]はレジスターRd及びレジスターRs中の内容を示す。
・ITからALUへ発するプログラム実行駆動装置及び構成ユニットの内容は、以下の通りである。
ADDI Rd, C
Figure 0005336076
ここで、ユニット0におけるALUI+は行先部材がALUであり、且つ「即時値の加算」操作を要求して実行することを示す。SUBI、MULI、DIVI等の命令について、その該当するプログラム実行駆動装置及び構成ユニットの内容はこれと類似し、ユニット0だけをそれぞれALUI−、ALUI*、ALUI÷とする。
ADD Rd, Rs1, Rs2
Figure 0005336076
ここで、ユニット0におけるALU+は行先部材がALUであり、且つ「加算」操作を要求して実行することを示し、SUB、MUL、DIV等はこれと類似している。
JEQI Rs, C
Figure 0005336076
ここで、ユニット0におけるALUIjは行先部材がALUであり、且つ「即時値のジャンプ判断」操作を要求して実行することを示し、JNEI等はこれと類似している。
JEQ Rs1, Rs2
Figure 0005336076
ここで、ユニット0におけるALUjは行先部材がALUであり、且つ「ジャンプ判断」操作を要求して実行することを示し、JNE等はこれと類似している。
SLT Rd, Rs1, Rs2
Figure 0005336076
ここで、ユニット0におけるALUsltは行先部材がALUであり、且つ「設置不満」操作を要求して実行することを示し、SLE、SGT、SGE、SEQ、SNE等はこれと類似している。
3)部材5:算術/論理演算部材ALUと呼ばれ、算術/論理演算に係るサービスを提供するために用いられる。独立して並行に動作できるALU部材が複数設けられる。各ALU部材の主な機能は以下の通りである。
●ALUは1つの入力キューをしており、本ALU処理を請求する全てのプログラム実行駆動装置は該キューで待機している。ALUは1つの出力キューもしており、全ての処理されたプログラム実行駆動装置は該キューで待機し、DU部材の配送サービスを待つ。
●ALUに算術/論理演算のサービスを要求する前に、プログラム実行駆動装置は該命令が要求する演算コードを用意し、且つプログラム実行駆動装置の該当するユニットに格納するように制御する。ALUは、該ALUの入力キューヘッダから取り出したプログラム実行駆動装置に格納されている該当する演算コードに対し、要求される算術/論理演算を行い、結果を該プログラム実行駆動装置の該当するユニットに格納し、前記プログラム実行駆動装置に格納された現在の命令の規定に従って、前記プログラム実行駆動装置のNEXTユニット及びΔPCユニットを設定し、それをALUの出力キューに移送する
●上述の処理過程を繰返す。現在のALUの入力キューがエンプティー又は出力キューがフルであれば、空操作を1回行う。
●ALU部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は、IT部材の出力キューにおける、ALUへ発信するプログラム実行駆動装置及びその構成ユニットの内容を参照できる。
●ALU部材の出力キューにおけるプログアム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。
Figure 0005336076
ここで、ユニット1はΔPCであり、その値は1又はジャンプのオフセットである。
4)部材6:外部機器管理部材PDと呼ばれ、外部機器、例えばディスプレイ、キーボード、マウス、プリンタ、通信機器などの機器を管理し、ホストとデータ入力/出力のサービスを提供するために用いられる。
3.配送部材
1)部材7:配送部材DUと呼ばれ、プログラム実行駆動装置を1つの部材の出力キューからもう1つの部材の入力キューへ配送する転送及び配送サービスを提供するために用いられる。独立して並行に動作できるDU部材が複数設けられる。各DU部材の主な機能は以下の通りである。
●DUは、予定された順序に従って各部材群の各部材の出力キューが非エンプティーであるかどうかを1つ1つチェックする。ある非エンプティーである出力キューについて、DUは、該出力キューヘッダにあるプログラム実行駆動装置を取り出し、該プログラム実行駆動装置のNEXTユニットに指示された行先部材群番号及び行先部材番号に従って、該行先部材群の行先部材の入力キューが非フルであるかどうかをチェックし、非フルであれば、該プログラム実行駆動装置を該行先部材群の行先部材の入力キューへ配送する。
ここで注意すべきことは、以上の処理方式はPM、MP及びMDに対するものである、ということである。IT及びALUについて、該部材からいずれかの入力キューが非フルである部材を選択すればよい。
●上述の処理過程を繰返す。すべての部材群のすべての部材の出力キューが共にエンプティーである、或いは出力キューは非エンプティーであるが、該当する入力キューが共にフルであれば、空操作を1回行う。
図1は又本発明の上述の実施例におけるシステムの各部材の接続関係も示しており、部材1乃至6は、それぞれの1又は2組の信号線を介してそれぞれの入力キューの終わり及び出力キューの始めを部材7に接続している。
図2は本発明の上述の実施例の部材7の構造ブロック図である。部材7は複数のデータ入力ポート、複数のデータ出力ポート、コミュニケーションネットワーク装置及び制御管理装置などからなる。部材7の制御管理装置は、ストローブの制御及び管理、例えば各ポートの繁閑の検出、プライオリティの確定、ルートの選択などに用いられる。部材7のコミュニケーションネットワーク装置は、複数のデータ入力ポートを複数のデータ出力ポートに接続するために用いられる。該コミュニケーションネットワーク装置の設計は多くの方法を採用でき、以下にその中の代表的な2種類を挙げる。
図3は、本発明の上述の実施例における配送部材のコミュニケーションネットワーク装置のクロス相互連絡方式の構造ブロック図である。部材7のコミュニケーションネットワーク装置はクロス相互連絡構造を採用し、いずれかの入力ポートは共に全ての又は一部の出力ポートに互いに接続されている。
図4は、本発明の上述の実施例における配送部材のマルチバス相互連絡方式の構造ブロック図である。部材7のコミュニケーションネットワーク装置はマルチバス構造を採用し、すべての入力ポートと出力ポートとは、幾つかの組に分けられて、それぞれが1つのバスに接続され、バス間は更にクロス相互連絡されている。
図5は、本発明の上述の実施例の動作フローチャートであり、新規なコンピュータプロセッサにおけるプログラム実行駆動装置の動作フローチャートである。その具体的なステップは以下の通りである。
ステップS1:システムの初期起動(RESET)の際に、少なくとも1つのプログラム、例えばシステム管理プログラムのプログラム実行駆動装置、あるプログラム管理部材PMの出力キュー中に格納する。次に、ステップS2に移行する。
ステップS2:DU部材は、あるPM部材の出力キューが非エンプティーであり、且つキューヘッダにあるプログラム実行駆動装置のNEXTユニットに指示されている行先部材MPの入力キューが非フルであることを検出した場合に、該PM部材の出力キューヘッダのプログラム実行駆動装置を該当するMP部材の入力キューに配送して該部材の処理を待つ。次に、ステップS3に移行する。
ステップS3:MP部材は、その入力キューが非エンプティーであることを検出した場合に、入力キューヘッダのプログラム実行駆動装置を取り出し、PCユニットに指定されたPCアドレスに従って、対応するプログラム記憶部材から命令を読み取り、読み取った命令を該プログラム実行駆動装置のユニット1に格納する。この時に該MP部材の出力キューがフル状態であれば、それがエンプティーになるのを待つ。エンプティーになった時には、処理が終了したプログラム実行駆動装置をその出力キュー中に移送し、DUの配送処理を待つ。次に、ステップS4に移行する。
ステップS4:DU部材は、あるMP部材の出力キューが非エンプティーであり、且つキューヘッダにあるプログラム実行駆動装置のNEXTユニットに指示されている行先部材がITであり、少なくとも1つのIT部材の入力キューが非フルであることを検出した場合に、該MP部材の出力キューヘッダのプログラム実行駆動装置を該当するIT部材の入力キューに配送して該部材の処理を待つ。次に、ステップS5に移行する。
ステップS5:IT部材は、その入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置を取り出し、格納された命令に対して命令の復号化を行い、該復号化された結果を該プログラム実行駆動装置の該当するユニット中に格納する。この時に該IT部材の出力キューがフル状態であれば、それがエンプティーになるのを待つ。エンプティーになった時には、処理が終了したプログラム実行駆動装置をその出力キュー中に移送し、DUの配送処理を待つ。次に、ステップS6に移行する。
ステップS6:DU部材は、ある部材、すなわちIT、ALU及びMDのいずれか一つの部材の出力キューが非エンプティーであり、且つ現在のキューヘッダにあるプログラム実行駆動装置のNEXTユニットに指示された行先部材の入力キューが非フルであることを検出した場合に、該部材の出力キューヘッダのプログラム実行駆動装置を該当する行先部材の入力キューに配送して該部材の処理を待つ。この時の行先部材には3種類があり、一つ目はある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部材は、その入力キューが非エンプティーであることを検出した場合に、入力キューヘッダにあるプログラム実行駆動装置における命令要求に従って該当する操作を行う。1)非END命令:この時にΔPCは非0であり、PMは要求に基づいてそのPC等のユニットの値を補正し、補正した結果を該プログラム実行駆動装置の該当するユニットに格納する。この時、該PM部材の出力キューがフル状態であれば、それがエンプティーになることを待つ。エンプティーになった時に、処理が終了したプログラム実行駆動装置をその出力キュー中に移送し、DUの配送処理を待つ。2)END命令:この時にΔPCユニットは0であり、PMを該当する終了フラグとし、入力キュー中から該プログラム実行駆動装置を削除し、システム管理プログラムをアクティブにして他のプログラムをスケジューリングして実行する。
システムのソフトウェア部分は1つの簡潔化されたシステム管理プログラムからなる。主に本発明の技術原理を説明するために、該システム管理プログラムは簡潔化されたプログラムスケジュール機能だけを備えており、そのために1つのプログラムスケジュールテーブルを有している。システムの初期起動の場合は、該システム管理プログラムのプログラム実行駆動装置をシステムのPM部材中にロードする。該プログラム実行駆動装置はシステム管理プログラムを駆動し、ユーザプログラムのプログラム実行駆動装置を一つずつアクティブにする。
上述の内容は本発明の技術思想の一部、基本的な説明だけである。本発明中に提出された駆動コンピュータプログラム/命令を実行するL駆動方法に基づくコンピュータプロセッサを設計する方式及び方法には多くの種類があり、プログラム実行駆動装置を実現する方式及び方法、並びにプログラム実行駆動装置でプログラムの実行を管理制御する方式及び方法には、多くの種類がある。当業者が本発明に示唆された技術範囲内の容易に想到可能な変換や置換も、すべて本発明の保護範囲に含まれるべきである。

簡潔化した命令システム
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 プログラムが終了する。
本発明の一実施形態のシステムアーキテクチュアの原理的な模式ブロック図である。 本発明の上述実施形態におけるプログラム実行駆動装置の配送部材の構造ブロック図である。 本発明の上述実施形態における配送部材のコミュニケーションネットワーク装置のクロス相互連絡方式の構造ブロック図である。 本発明の上述実施形態における配送部材のコミュニケーションネットワーク装置のマルチバス相互連絡方式の構造ブロック図である。 本発明の上述実施形態の動作フローチャートである。

Claims (8)

  1. プログラムおよびデータを記憶するサービスを提供する1つ又は複数の他の部材と並行に動作できる記憶部材と、
    プログラムの運行を管理・制御し、プログラムの命令を復号化して指定された処理を実行するサービスを提供する1つ又は複数の他の部材と並行に動作できる操作制御部材と、
    前記記憶部材に駐在しているプログラムのアドレス情報と占用するデータ領域情報が記録される情報ユニットと、前記記憶部材および前記操作制御部材による一時的な中間処理結果が記録される情報ユニットとからなるプログラム実行駆動装置を、1つの部材から他の部材に配送するサービスを提供する1つ又は複数の他の部材と並行に動作できる配送部材と、
    をそれぞれ独立に備えた単一のコンピュータプロセッサが、同一の時刻に複数のプログラムを並行して実行することを可能としたコンピュータプログラム/命令の実行を駆動する駆動方法であって、
    実行するプログラムのそれぞれについて、
    前記記憶部材に駐在している該プログラムのアドレス情報と占用するデータ領域情報が記録されたプログラム実行駆動装置を生成する段階と、
    少なくとも、
    前記記憶部材が、前記プログラム実行駆動装置に記録されたアドレス情報に基づいて該プログラムの命令を取り出し、前記取り出された命令を該プログラム実行駆動装置に記録するとともに、該プログラム実行駆動装置を次に配送する行先部材情報として、前記操作制御部材を該プログラム実行駆動装置に記録し、
    前記操作制御部材が、前記プログラム実行駆動装置に記録された命令を復号化して指定された処理を実行し、前記実行された結果を該プログラム実行駆動装置に記録するとともに、該プログラム実行駆動装置を次に配送する行先部材情報として、前記復号化された命令により決定される配送先の部材を該プログラム実行駆動装置に記録し、
    前記配送部材が、前記記憶部材および前記操作制御部材のそれぞれから、前記プログラム実行駆動装置に記録された前記行先部材情報に基づいて該プログラム実行駆動装置を指定された部材に配送することを、
    前記操作制御部材、該プログラム実行駆動装置に終了命令が記録されるまで、繰り返し実行する段階と、
    前記操作制御部材が、該プログラム実行駆動装置に記録された命令が終了命令である場合に、該プログラム実行駆動装置を削除し、該プログラムの実行を終了させる段階と、
    を含むことを特徴とする、コンピュータプログラム/命令の実行を駆動する駆動方法。
  2. 前記記憶部材は、
    プログラムの読み出し/書き込みに係るサービスを提供するプログラム記憶部材MPと、
    データの読み出し/書き込みに係るサービスを提供するデータ記憶部材MDと、
    を含み、
    前記操作制御部材は、
    前記プログラム実行駆動装置に記録されたプログラムの命令に基づいて、プログラムの運行を継続させる、または、プログラムの運行を終了させるために前記プログラム実行駆動装置を削除するなどのプログラムの運行を管理・制御するサービスを提供するプログラム管理部材PMと、
    命令を復号化し、指定された処理を実行するために前記プログラム実行駆動装置の行先部材情報を設定するサービスを提供する命令復号化部材ITと、
    算術/論理演算に係るサービスを提供する算術/論理演算部材ALUと、
    外部機器を管理・制御するサービスを提供する外部機器管理部材PDと、
    を少なくとも含む、
    請求項1に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
  3. 前記各部材(配送部材DUを除く)は、それぞれ入力キューと出力キューとを有し、入力キューが非エンプティーである場合に、該入力キューの先頭にあるプログラム実行駆動装置を取り出して指定されたサービスを実行し、一時的な中間処理結果を該プログラム実行駆動装置に書き込んで、サービス完了の該プログラム実行駆動装置を出力キューに格納することを特徴とする、請求項2に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
  4. 前記プログラム実行駆動装置を生成する段階は、前記生成されたプログラム実行駆動装置を前記プログラム管理部材PMの出力キューに格納するようにしたことを特徴とする、請求項3に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
  5. 前記プログラム実行駆動装置の構成は、
    Figure 0005336076
    ユニット0―ユニット6:実行時の動作ユニットである、すなわち本プログラムが実行する過程に一時的な中間処理結果を格納するためのユニットであり、0番目のユニットは、NEXTユニットと呼ばれ、本プログラム実行駆動装置が次にアクセスする機能部材の番号である;
    ユニット7:プログラム記憶部材の部材番号(MPno)であり、本プログラムが常駐されているプログラム記憶部材の部材番号を格納するためのものである;
    ユニット8:プログラム記憶部材の部材個数(MPnu)であり、本プログラムの占用する連続なプログラム記憶部材の個数を格納することに用いられるものである;
    ユニット9:プログラム記憶部材の部材内アドレス(PC)であり、本プログラムの現在実行している命令のプログラム記憶部材の部材内アドレスを格納するためのものである;
    ユニット10:データ記憶部材の部材番号(MDno)であり、本プログラムの所要のデータ記憶部材の部材番号を格納するためのものである;
    ユニット11:データ記憶部材の部材個数(MDnu)であり、本プログラムの占用する連続なデータ記憶部材の個数を格納することに用いられるものである;
    ユニット12:プログラム番号(PrNo)であり、各プログラムを識別するためのものである;
    ユニット13−ユニット28:16個の汎用レジスター(R0-R15)である;
    を有することを特徴とする、請求項1に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
  6. 前記配送部材DUは、前記プログラム管理部材PMの出力キューが非エンプティーであり、且つ該出力キューのヘッダにあるプログラム実行駆動装置のNEXTユニットに指示されたプログラム記憶部材MPの入力キューが非フルであることを検出した場合に、前記プログラム管理部材PMの出力キューのヘッダのプログラム実行駆動装置を該当するプログラム記憶部材MPの入力キューに配送し、
    前記プログラム記憶部材MPは、その入力キューが非エンプティーであることを検出した場合に、該入力キューのヘッダにあるプログラム実行駆動装置において指定されたPCアドレスに従って、該当するプログラム記憶部材から命令を読み取り、読み取った命令を該プログラム実行駆動装置のPCアドレスの差分を指示するユニットに格納し、
    この時に該プログラム記憶部材MPの出力キューがフル状態である場合に、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込み、
    前記配送部材DUは、前記プログラム記憶部材MPの出力キューが非エンプティーであり、且つ少なくとも1つの命令復号化部材ITの入力キューが非フルであることを検出した場合に、該プログラム記憶部材MPの出力キューのヘッダのプログラム実行駆動装置を該当する命令復号化部材ITの入力キューに配送し、
    前記命令復号化部材ITは、その入力キューが非エンプティーであることを検出した場合に、該入力キューのヘッダにあるプログラム実行駆動装置に格納された命令に対して命令の復号化を行い、復号化した結果を該プログラム実行駆動装置の該当するユニットに格納し、
    この時に該命令復号化部材ITの出力キューがフル状態である場合に、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込み、
    前記配送部材DUは、前記命令復号化部材IT、前記算術/論理演算部材ALU及び前記データ記憶部材MDの何れか1つの出力キューが非エンプティーであり、且つ現在の出力キューのヘッダにあるプログラム実行駆動装置のNEXTユニットに指示された行先部材の入力キューが非フルであることを検出した場合に、該出力キューのヘッダのプログラム実行駆動装置を該行先部材の入力キューに配送し、
    前記算術/論理演算部材ALUは、その入力キューが非エンプティーであることを検出した場合に、該入力キューのヘッダにあるプログラム実行駆動装置に指定された命令要求に従って算術/論理演算を実行し、演算した結果を該プログラム実行駆動装置の該当するユニットに格納し、
    この時に該算術/論理演算部材ALUの出力キューがフル状態である場合に、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込み、
    この時の行先部材が前記プログラム管理部材PMであり、
    前記データ記憶部材MDは、その入力キューが非エンプティーであることを検出した場合に、該入力キューのヘッダにあるプログラム実行駆動装置において指定された部材内アドレスに従って該当するデータ記憶部材に対して読み出し/書き込み操作を行い、
    読み出し操作であれば、読み出されたデータを該プログラム実行駆動装置の該当するユニットに格納し、
    この時に該データ記憶部材MDの出力キューがフル状態である場合に、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込み、
    この時の行先部材が前記プログラム管理部材PMであり、
    前記プログラム管理部材PMは、その入力キューが非エンプティーであることを検出した場合に、該入力キューのヘッダにあるプログラム実行駆動装置において指定された命令要求に従って該当する操作を行い、
    非END命令である場合に、前記プログラム実行駆動装置のPCアドレスの差分を指示するユニットは非0であり、該プログラム管理部材PMは、指定された命令要求に基づいて前記プログラム実行駆動装置のPCアドレスの値を補正し、補正した結果を該プログラム実行駆動装置の該当するユニットに格納し、この時に該プログラム管理部材PMの出力キューがフル状態である場合に、それがエンプティーになることを待ち、エンプティーになった時に、処理終了のプログラム実行駆動装置をその出力キューに書き込み、
    END命令である場合に、前記プログラム実行駆動装置のPCアドレスの差分を指示するユニットは0であり、該プログラム管理部材PMの入力キューから該プログラム実行駆動装置を削除することを特徴とする、請求項5に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
  7. プログラムの読み出し/書き込みに係るサービスを提供するプログラム記憶部材MPと、
    データの読み出し/書き込みに係るサービスを提供するデータ記憶部材MDと、
    を有する、1つ又は複数の他の部材と並行に動作できる記憶部材と、
    プログラムの運行を継続させるまたはプログラムの運行を終了させるなどのプログラムの運行を管理・制御するサービスを提供するプログラム管理部材PMと、
    命令の復号化に係るサービスを提供する命令復号化部材ITと、
    算術/論理演算に係るサービスを提供する算術/論理演算部材ALUと、
    外部機器の管理や制御に係るサービスを提供する外部機器管理部材PDと、
    を少なくとも含む、1つ又は複数の他の部材と並行に動作できる操作制御部材と、
    前記プログラム記憶部材MPに駐在しているプログラムのアドレス情報と前記データ記憶部材MDの占用するデータ領域情報が記録される情報ユニットと、前記記憶部材および前記操作制御部材による一時的な中間処理結果が記録される情報ユニットとからなるプログラム実行駆動装置を、1つの部材から他の部材に配送するサービスを提供する1つ又は複数の他の部材と並行に動作できる配送部材DUと、
    をそれぞれ独立に備えたコンピュータプロセッサであって、
    実行するプログラムのそれぞれについて、
    前記プログラム記憶部材MPに駐在している該プログラムのアドレス情報と前記データ記憶部材MDの占用するデータ領域情報が記録されたプログラム実行駆動装置を生成する機能と、
    少なくとも、
    前記プログラム記憶部材MPが、前記プログラム実行駆動装置に記録されたアドレス情報に基づいて該プログラムの命令を取り出し、前記取り出された命令を該プログラム実行駆動装置に記録するとともに、該プログラム実行駆動装置を次に配送する行先部材情報として前記命令復号化部材IT該プログラム実行駆動装置に記録し、
    前記命令復号化部材ITが、前記プログラム実行駆動装置に記録された命令を復号化し、該プログラム実行駆動装置を次に配送する行先部材情報として、前記復号化された命令により決定される配送先の部材該プログラム実行駆動装置に記録し、
    前記算術/論理演算処理部材ALUが、前記プログラム実行駆動装置に指定された算術/論理演算を実行し、前記実行された結果を該プログラム実行駆動装置に記録するとともに、該プログラム実行駆動装置を次に配送する行先部材情報として、前記プログラム管理部材PM該プログラム実行駆動装置に記録し、
    前記配送部材DUが、前記記憶部材および前記操作制御部材のそれぞれから、前記プログラム実行駆動装置に記録された前記行先部材情報に基づいて該プログラム実行駆動装置を指定された部材に配送することを、
    前記プログラム管理部材PM、該プログラム実行駆動装置に終了命令が記録されるまで、繰り返す機能と、
    前記プログラム管理部材PMが、該プログラム実行駆動装置に終了命令が記録されている場合に、該プログラム実行駆動装置を削除し、該プログラムの実行を終了させる機能と、
    を有することを特徴とする、コンピュータプロセッサ。
  8. レジスターを前記プログラム実行駆動装置の構成部分として備えることを特徴とする、請求項7に記載のコンピュータプロセッサ。
JP2007518438A 2004-06-28 2005-06-09 プログラム/命令の実行を駆動する駆動方法及びそのシステムアーキテクチュア、並びにプロセッサ Expired - Fee Related JP5336076B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNB2004100497595A CN100489783C (zh) 2004-06-28 2004-06-28 在单计算机上可在同一时刻执行多道程序的方法及系统
CN200410049759.5 2004-06-28
PCT/CN2005/000826 WO2006000145A1 (en) 2004-06-28 2005-06-09 A 'l' driving method for driving program/instruction and architecture and processor thereof

Publications (2)

Publication Number Publication Date
JP2008504615A JP2008504615A (ja) 2008-02-14
JP5336076B2 true JP5336076B2 (ja) 2013-11-06

Family

ID=34665825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007518438A Expired - Fee Related JP5336076B2 (ja) 2004-06-28 2005-06-09 プログラム/命令の実行を駆動する駆動方法及びそのシステムアーキテクチュア、並びにプロセッサ

Country Status (8)

Country Link
US (1) US7761877B2 (ja)
EP (1) EP1770516A4 (ja)
JP (1) JP5336076B2 (ja)
KR (1) KR100834180B1 (ja)
CN (1) CN100489783C (ja)
BR (1) BRPI0512670A (ja)
RU (1) RU2007101465A (ja)
WO (1) WO2006000145A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100514301C (zh) * 2005-03-30 2009-07-15 李晓波 一种程序缓时执行的方法及其装置
CN102236724B (zh) * 2010-04-23 2015-04-01 中山市云创知识产权服务有限公司 最佳均衡器参数计算系统及方法
US20120159341A1 (en) * 2010-12-21 2012-06-21 Microsoft Corporation Interactions with contextual and task-based computing environments
US9483324B2 (en) * 2012-06-26 2016-11-01 Nec Corporation Program conversion device and method, process switching method, method of determining execution scheme and program storage medium therefor, processor system, and parallel execution scheme
US9183399B2 (en) * 2013-02-14 2015-11-10 International Business Machines Corporation Instruction set architecture with secure clear instructions for protecting processing unit architected state information
CN103885365B (zh) * 2014-03-24 2018-07-06 三和智控(北京)系统集成有限公司 一种动态管理控制逻辑集的方法
US10740105B2 (en) * 2014-04-04 2020-08-11 Texas Instruments Incorporated Processor subroutine cache
TWI574158B (zh) * 2014-12-01 2017-03-11 旺宏電子股份有限公司 具應用程式資訊感知的資料處理方法以及系統
CN105808338A (zh) * 2016-03-17 2016-07-27 李晓波 一种在处理中实现中断响应核可配置的方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522082A (en) 1986-01-23 1996-05-28 Texas Instruments Incorporated Graphics display processor, a graphics display system and a method of processing graphics data with control signals connected to a central processing unit and graphics circuits
JP2908598B2 (ja) * 1991-06-06 1999-06-21 松下電器産業株式会社 情報処理装置
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US5857103A (en) * 1996-06-14 1999-01-05 Sun Microsystems, Inc. Method and apparatus for addressing extended registers on a processor in a computer system
DE19817024A1 (de) * 1998-04-17 1999-10-21 Alcatel Sa Integrierte Schaltung
DE10000960C1 (de) * 2000-01-12 2001-12-20 Infineon Technologies Ag Datenverarbeitungsvorrichtung
US6640322B1 (en) * 2000-03-22 2003-10-28 Sun Microsystems, Inc. Integrated circuit having distributed control and status registers and associated signal routing means
US7096343B1 (en) * 2000-03-30 2006-08-22 Agere Systems Inc. Method and apparatus for splitting packets in multithreaded VLIW processor
US6658551B1 (en) * 2000-03-30 2003-12-02 Agere Systems Inc. Method and apparatus for identifying splittable packets in a multithreaded VLIW processor
US9032404B2 (en) * 2003-08-28 2015-05-12 Mips Technologies, Inc. Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor
US7734833B2 (en) * 2005-09-08 2010-06-08 International Business Machines Corporation Method for scheduling operations called by a task on a real-time or non-real time processor

Also Published As

Publication number Publication date
EP1770516A4 (en) 2008-12-10
BRPI0512670A (pt) 2008-04-01
CN100489783C (zh) 2009-05-20
CN1595359A (zh) 2005-03-16
KR20070036083A (ko) 2007-04-02
US7761877B2 (en) 2010-07-20
RU2007101465A (ru) 2008-08-10
KR100834180B1 (ko) 2008-05-30
US20080072023A1 (en) 2008-03-20
WO2006000145A1 (en) 2006-01-05
JP2008504615A (ja) 2008-02-14
EP1770516A1 (en) 2007-04-04

Similar Documents

Publication Publication Date Title
JP5336076B2 (ja) プログラム/命令の実行を駆動する駆動方法及びそのシステムアーキテクチュア、並びにプロセッサ
US8149854B2 (en) Multi-threaded transmit transport engine for storage devices
JP2520576B2 (ja) デ―タ処理システム及びチャネル・アダプタ
EP0811905B1 (en) Storage control and computer system using the same
US4316245A (en) Apparatus and method for semaphore initialization in a multiprocessing computer system for process synchronization
US20080043563A1 (en) Flexibly controlling the transfer of data between input/output devices and memory
JP2001318874A (ja) システム・オペレーションの間にデバイス・ドライバを置き換えるシステム,方法及びそのコンピュータ・プログラム製品
TW200846910A (en) Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
JP2008065445A (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
JP2019169081A (ja) 情報処理装置、情報処理方法、プログラム
JP2009238197A (ja) 共有メモリの制御回路、制御方法及び制御プログラム
US7334056B2 (en) Scalable architecture for context execution
US6687905B1 (en) Multiple port input/output job scheduling
TW434491B (en) Increasing I/O performance through storage of packetized operational information in local memory
JPWO2008155840A1 (ja) 命令制御装置及び命令制御方法
US7913028B2 (en) Data processing system having multiplexed data relaying devices, data processing aparatus having multiplexed data relaying devices, and a method of incorporating data relaying devices in data processing system having multiplexed data relaying devices
JP3526700B2 (ja) 複合計算機システム
JP2009258937A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JPH0895810A (ja) バッチジョブ実行方式
JP7474779B2 (ja) 命令順序付け
JPH0830402A (ja) パリティ格納方法
JPH1021203A (ja) I/o装置のアクセス方法およびそのためのマルチプロセッサシステム
JP3778405B2 (ja) ディスクサブシステム
JP2015215641A (ja) 情報処理装置,エミュレーションプログラム,及びエミュレーション方法
US9141438B2 (en) Logic for synchronizing multiple tasks

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100224

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110518

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110613

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20110930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130610

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130801

R150 Certificate of patent or registration of utility model

Ref document number: 5336076

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees