JP2008504615A - プログラム/命令の実行を駆動するl駆動方法及びそのシステムアーキテクチュア、並びにプロセッサ - Google Patents
プログラム/命令の実行を駆動するl駆動方法及びそのシステムアーキテクチュア、並びにプロセッサ Download PDFInfo
- Publication number
- JP2008504615A JP2008504615A JP2007518438A JP2007518438A JP2008504615A JP 2008504615 A JP2008504615 A JP 2008504615A JP 2007518438 A JP2007518438 A JP 2007518438A JP 2007518438 A JP2007518438 A JP 2007518438A JP 2008504615 A JP2008504615 A JP 2008504615A
- Authority
- JP
- Japan
- Prior art keywords
- program
- program execution
- unit
- queue
- execution drive
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000013500 data storage Methods 0.000 claims abstract description 29
- 238000004891 communication Methods 0.000 claims abstract description 20
- 238000007726 management method Methods 0.000 claims abstract description 14
- 238000004590 computer program Methods 0.000 claims abstract description 12
- 238000013461 design Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 34
- 239000000470 constituent Substances 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 23
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 235000000434 Melocanna baccifera Nutrition 0.000 claims description 3
- 241001497770 Melocanna baccifera Species 0.000 claims description 3
- 230000003213 activating effect Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 241000699670 Mus sp. Species 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims description 2
- 230000006386 memory function Effects 0.000 claims description 2
- 238000003672 processing method Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 claims 1
- 230000001747 exhibiting effect Effects 0.000 claims 1
- 239000000463 material Substances 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 9
- 241000699666 Mus <mouse, genus> Species 0.000 description 2
- 238000011017 operating method Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent 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)
Abstract
【選択図】図1
Description
上述のプログラム/命令の実行を駆動するL駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサであって、該システムの基本的な構成は以下の通りである:
1.システムのハードウェア部分は、以下の部材から構成される。
・プログラム記憶部材、データ記憶部材、レジスタ群などのような、1つ又は複数の並行に動作できる記憶部材;
・制御部材、復号化部材、算術/論理演算部材、外部機器部材などのような、1つ又は複数の並行に動作できる操作制御部材;
・バス及びその制御部材などのような、1つ又は複数の並行に動作できる、部材同士で接続作用を発揮するコミュニケーション部材
前記各種の部材は一般に1つの入力バッファ装置と1つの出力バッファ装置とを有している。
システム中の全ての部材は、要求/サービスの方式に従って動作可能であり、要求を受けた後、すなわち入力バッファが非エンプティーである時に、指定のサービスを始動させて完成し、その結果を出力バッファに格納する。
あるサービスを要求された部材は、複数設置されると、いずれかの暇なものを選択できる。全部が忙しければ、暇になるものを待つ。
システムにおける部材は、独占型と非独占型に分けられる。独占型部材については、システムに予め設定されたり、又は一回目のサービスが要求された時に申請したりする。予め設定された結果や申請した結果は、該プログラムに対応するプログラム実行駆動装置のあるアイテム中に保存される。
2.システムのソフトウェア部分は、1つの現代のコンピュータシステムにおける操作システムと類似するシステム管理プログラムからなる。該システム管理プログラムは、ある記憶部材に格納され、少なくともプログラムスケジュール機能を有すべきであり、少なくとも1つのプログラムスケジュールテーブルと呼ばれるデータ構造を有している。システムの初期起動の際に、システム管理プログラムのプログラム実行駆動装置がシステムのある操作制御部材にロードされ、それは該プログラム実行駆動装置をアクティブにする、或は活性化することと呼ばれる。該プログラム実行駆動装置は、システム管理プログラムを駆動し、複数のユーザプログラムのプログラム実行駆動装置を一つずつアクティブにする。その後、各ユーザプログラムのプログラム実行駆動装置は、互いに独立して又は協調して、同一の時刻にそれぞれのユーザプログラムを駆動し、同一のコンピュータプロセッサにて同時並行的に実行する。
1)1つのプログラムが実行可能なコードを生成すると、システム管理プログラムは該プログラムの実行を駆動する相関駆動情報をプログラムスケジュールテーブルの相関欄に書き込む。この時、該プログラムは、ある記憶部材に格納されて実行待機状態にある。
2)該プログラムが、呼出して実行する各条件を満足すると、システム管理プログラムは、該プログラムのプログラム実行駆動装置を創設/生成する。その後、該プログラムは実行状態に入り、そのプログラム実行駆動装置の管理及び制御を独立に実行する。
3)プログラム実行駆動装置は、保存された該プログラムの常駐情報(例えばプログラム記憶部材番号、部材内アドレスPC等)に従って、対応する記憶部材へ現在実行しようとしている命令を取り出すように制御する。
4)命令を取り出した後、該プログラム実行駆動装置は、ある操作制御部材が取り出された命令を復号化するように制御する。これによって対応する記憶部材へ操作数を取り出させ、適当な操作制御部材が指定の処理を完成し、処理結果を対応する記憶部材に書き返すように制御する。
ここでの“復号化”は従来の復号化と多少の区別があり、詳細は後の部分で参照する。
取り出された命令の“復号化”の結果、取り出された操作数及び操作の結果が共に該プログラム実行駆動装置のあるユニットに一時保存される。
5)最終的に、該プログラム実行駆動装置は、保存されているプログラム常駐情報類に属するPCアイテムを、現在の命令に規定された方式に基づいて補正した後、ステップ3に移行して本プログラムの次の命令を制御・実行する。
6)少なくとも、該プログラムの終了命令まで実行する場合には、システム管理プログラムは、あるプログラムのプログラム実行駆動装置をアンロードする。これによって、PMを対応する終了フラグとし、システム管理プログラムをアクティブにして該プログラムに適当な終了処理を施し、最終的にプログラムスケジュールテーブルから該プログラムのプログラム実行駆動装置を削除する。
ここに示した例において、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)がプログラム実行駆動装置の構成部分をなすように設計される。
1)部材1:プログラム記憶部材MPと呼ばれ、プログラム記憶部材の読み出し/書き込みに係るサービスを提供するために用いられる。独立して並行に動作できるMP部材が複数設けられる。各MP部材の主な機能は以下の通りである。
●MPは1つの入力キュー(queue)を維持しており、本MP処理を請求する全てのプログラム実行駆動装置は該キュー中で待機している。MPは1つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キュー中で待機し、DU部材の配送サービスを待つ。
●読み出し要求:現在のキューヘッダにあるプログラム実行駆動装置が要求するものが読み出し操作であれば、該プログラム実行駆動装置から該プログラムの部材内アドレスPCを取り出してMPのアドレスレジスターに送り、MPの読み出し操作を始動させて該プログラムの現在の命令を読み取る。読み取った命令を現在のプログラム実行駆動装置の該当するユニットに書き込む。プログラム実行駆動装置のNEXTユニットをITとし、それをMPの出力キューに書き込む。
●書き込み要求:現在のキューヘッダにあるプログラム実行駆動装置が要求するものが書き込み操作であれば、完成する必要がある操作はデータ記憶部材の書き込み操作と類似しているので、ここでは省略する。
●上述の処理過程を繰返す。本MPの入力キューがエンプティー又は出力キューがフルであれば、空操作を一回行う。
●MP部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容を示すと以下の通りである。
ユニット0におけるMPrは、行先部材がMPであり、且つ「読み出し」操作を要求して実行することを示す。
ここで注意すべきことは、簡潔をはかるため、現在関わりのないプログラム実行駆動装置の構成ユニット、例えばユニット1−6を共に省略して居る、ということである。以下同様。
●MP部材の出力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。ユニット1におけるIは読み出した現在の命令、例えばLDI R0,Cである。
ここで注意すべきことは、本実施例においては、どのようにプログラム自身をプログラム記憶部材に書き込むのかという過程を省略しているので、関係するプログラム実行駆動装置の構成ユニットの内容も省略した、ということである。実際に、該過程は、データを該当するデータ記憶部材に書き込む過程と類似している。
2)部材2:データ記憶部材MDと呼ばれ、データ記憶部材の読み出し/書き込みに係るサービスを提供するために用いられる。独立して並行に動作できるMD部材が複数設けられる。各MD部材の主な機能は以下の通りである。
●MDは1つの入力キューを維持しており、本MD処理を請求する全てのプログラム実行駆動装置は該キュー中で待機している。MDは1つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キュー中で待機し、DU部材の配送サービスを待つ。
●読み出し操作:現在のキューヘッダにあるプログラム実行駆動装置が要求するものが読み出し操作であれば、該プログラム実行駆動装置から該読み出し操作の部材内アドレスを取り出してMDのアドレスレジスターに送り、MDの読み出し操作を始動させて該当する記憶ユニットの内容を読み取る。読み取ったデータを現在のプログラム実行駆動装置のあるユニットに書き込む。NEXTユニットをPM、ΔPCユニットを1とし、それらをMDの出力キューに書き込む。
●書き込み操作:現在のキューヘッダにあるプログラム実行駆動装置が要求するものが書き込み操作であれば、該プログラム実行駆動装置から該書き込み操作のデータ及び部材内アドレスを取り出し、それぞれMDのデータレジスター及びアドレスレジスターに送り、MDの書き込み操作を始動させてデータを該当する記憶部材に書き込む。NEXTユニットをPM、ΔPCユニットを1とし、それらをMDの出力キューに書き込む。
●上述の処理過程を繰返す。本MDの入力キューがエンプティー又は出力キューがフルであれば、空操作を1回行う。
●MD部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は、IT部材の出力キューにおけるMDへ発信するプログラム実行駆動装置及びその構成ユニットの内容を参照できる。
●MD部材の出力キューにおけるPMへ発信するプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。
ここで、ユニット1はΔPCであり、現在の命令の現在値は1である。
1)部材3:プログラム管理部材PMと呼ばれ、プログラム実行駆動装置の運行を管理するサービスを提供するために用いられる。独立して並行に動作できるPM部材が複数設けられる。各PM部材の主な機能は以下の通りである。
●PMは1つの入力キューを維持しており、本PM処理を請求する全てのプログラム実行駆動装置は該キュー中で待機している。PMは1つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キュー中で待機し、DU部材の配送サービスを待つ。
●1つのプログラムを始動させて実行駆動装置を運行する。システム管理プログラムが1つのプログラムのプログラム実行駆動装置をアクティブにすることは、実際には該プログラムのプログラム実行駆動装置をPMの入力キューに書き込むことである。PMが該プログラム実行駆動装置まで処理する場合に、そのNEXTユニットをMP(読み出し指令)とし、それをPMの出力キューへ書き込む。
●1つのプログラム実行駆動装置の運行を継続する。各プログラム実行駆動装置が1つのプログラムを駆動する現在の命令の実行の最終ステップは、PMへ復帰することである。現在の命令が終了命令でなければ、PMは該ドライバが引き続き運行するように制御される。ユニット9←ユニット9+ユニット1を行う。即ちPC←PC+ΔPC。NEXTユニットをMPとし、それをPMの出力キューへ書き込む。
●1つのプログラム実行駆動装置の運行を終了する。あるプログラムが1つの終了命令まで実行する場合に、PMは該プログラムのプログラム実行駆動装置を削除する方式を採用することで、該プログラムの実行を終了する。
ここで注意すべきことは、該プログラムは終了命令を実行する前に、1つ又は複数の資源解放型(resource-release-type)命令を実行しなければならないということである。
●上述の処理過程を繰返す。本PMの入力キューがエンプティー又は出力キューがフルであれば、空操作を1回行う。
●PM部材の入力キュー中に受け入れられたプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。
ここで、ユニット1はΔPCであり、その値は0、1、又はジャンプのオフセットである。
●PM部材の出力キュー中のMP部材へ発するプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。
ここで、ユニット0におけるMPrは、行先部材がMPであり且つ「読み出し」操作を要求して実行することを示す。
2)部材4:命令フォーマット変換部材ITと呼ばれ、命令復号及び命令フォーマット変換に係るサービスを提供するために用いられる。独立して並行に動作できるIT部材が複数設けられる。各ITの主な機能は以下の通りである。
●ITは1つの入力キューを維持しており、本IT処理を請求する全てのプログラム実行駆動装置は該キュー中で待機している。ITは1つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キュー中で待機し、DU部材の配送サービスを待つ。
●命令フォーマット変換を要求するプログラム実行駆動装置については、ITは該プログラム実行駆動装置に格納されている現在の命令をフォーマット変換し、これによってNEXT等のユニットを設置し、それをITの出力キューに書き込む。
●上述の処理過程を繰返す。本ITの入力キューがエンプティー又は出力キューがフルであれば、空操作を1回行う。
●IT部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。ここで、ユニット1におけるIは読み出した現在の命令、例えばLDI R0, Cである。
●以下に示すように、IT部材の出力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は現在の命令Iによって異なる。
・ITからPMへ発するプログラム実行駆動装置及び構成ユニットの内容:
LDI Rd, C
ここで、ユニット1はΔPCであり、現在の命令の現在値は1である。
MV Rd, Rs
ここで、ユニット1はΔPCであり、現在の命令の現在値は1である。
・ITからMDへ発信するプログラム実行駆動装置及び構成ユニットの内容は、以下の通りである。
LD Rd, Rs
ここで、ユニット0におけるMDrは行先部材がMDであり、且つ「読み出し」操作を要求して実行することを示し、ユニット2,3における[Rd]及び[Rs]はレジスターRd及びレジスターRs中の内容を示す。
STI Rd, C
ここで、ユニット0におけるMDIwは行先部材がMDであり、且つ「即時値の書き込み」操作を要求して実行することを示し、ユニット2における[Rd]はレジスターRd中の内容を示す。
ST Rd, Rs
ここで、ユニット0におけるMDwは行先部材がMDであり、且つ「書き込み」操作を要求して実行することを示し、ユニット2,3における[Rd]及び[Rs]はレジスターRd及びレジスターRs中の内容を示す。
・ITからALUへ発するプログラム実行駆動装置及び構成ユニットの内容は、以下の通りである。
ADDI Rd, C
ここで、ユニット0におけるALUI+は行先部材がALUであり、且つ「即時値の加算」操作を要求して実行することを示す。SUBI、MULI、DIVI等の命令について、その該当するプログラム実行駆動装置及び構成ユニットの内容はこれと類似し、ユニット0だけをそれぞれALUI−、ALUI*、ALUI÷とする。
ADD Rd, Rs1, Rs2
ここで、ユニット0におけるALU+は行先部材がALUであり、且つ「加算」操作を要求して実行することを示し、SUB、MUL、DIV等はこれと類似している。
JEQI Rs, C
ここで、ユニット0におけるALUIjは行先部材がALUであり、且つ「即時値のジャンプ判断」操作を要求して実行することを示し、JNEI等はこれと類似している。
JEQ Rs1, Rs2
ここで、ユニット0におけるALUjは行先部材がALUであり、且つ「ジャンプ判断」操作を要求して実行することを示し、JNE等はこれと類似している。
SLT Rd, Rs1, Rs2
ここで、ユニット0におけるALUsltは行先部材がALUであり、且つ「設置不満」操作を要求して実行することを示し、SLE、SGT、SGE、SEQ、SNE等はこれと類似している。
3)部材5:算術/論理演算部材ALUと呼ばれ、算術/論理演算に係るサービスを提供するために用いられる。独立して並行に動作できるALU部材が複数設けられる。各ALU部材の主な機能は以下の通りである。
●ALUは1つの入力キューを維持しており、本ALU処理を請求する全てのプログラム実行駆動装置は該キューで待機している。ALUは1つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キューで待機し、DU部材の配送サービスを待つ。
●ALUに算術/論理演算のサービスを要求する前に、プログラム実行駆動装置は該命令が要求する演算数を用意し、且つプログラム実行駆動装置の該当するユニットに格納するように制御する。ALUは、プログラム実行駆動装置に格納されている該当する演算数に対し、要求される算術/論理演算を行い、結果がプログラム実行駆動装置の該当するユニットに格納される。NEXTユニットをPMとし、命令の規定に従って1ユニット、すなわちΔPCユニットとし、それをALUの出力キューへ書き込む。
●上述の処理過程を繰返す。本ALUの入力キューがエンプティー又は出力キューがフルであれば、空操作を1回行う。
●ALU部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は、IT部材の出力キューにおける、ALUへ発信するプログラム実行駆動装置及びその構成ユニットの内容を参照できる。
●ALU部材の出力キューにおけるプログアム実行駆動装置及びその構成ユニットの内容を示せば以下の通りである。
ここで、ユニット1はΔPCであり、その値は1又はジャンプのオフセットである。
4)部材6:外部機器管理部材PDと呼ばれ、外部機器、例えばディスプレイ、キーボード、マウス、プリンタ、通信機器などの機器を管理し、ホストとデータ入力/出力のサービスを提供するために用いられる。
5)部材7:プログラム実行駆動装置配送部材DUと呼ばれ、プログラム実行駆動装置を1つの部材の出力キューからもう1つの部材の入力キューへ配送する転送及び配送サービスを提供するために用いられる。独立して並行に動作できるDU部材が複数設けられる。各DU部材の主な機能は以下の通りである。
●DUは、予定された順序に従って各部材群の各部材の出力キューが非エンプティーであるかどうかを1つ1つチェックする。ある非エンプティーである出力キューについて、DUはキューから1つのプログラム実行駆動装置を取り出し、該プログラム実行駆動装置のNEXTユニットに指示された行先部材群番号及び行先部材番号に従って、該行先部材群の行先部材の入力キューが非フルであるかどうかをチェックする。非フルであれば、該プログラム実行駆動装置を該行先部材群の行先部材の入力キューへ配送する。
ここで注意すべきことは、以上の処理方式はPM、MP及びMDに対するものである、ということである。IT及びALUについて、該部材からいずれかの入力キューが非フルである部材を選択すればよい。
●上述の処理過程を繰返す。すべての部材群のすべての部材の出力キューが共にエンプティーである、或いは出力キューは非エンプティーであるが、該当する入力キューが共にフルであれば、空操作を1回行う。
図1は又本発明の上述の実施例におけるシステムの各部材の接続関係も示しており、部材1乃至6は、それぞれの1又は2組の信号線を介してそれぞれの入力キューの終わり及び出力キューの始めを部材7に接続している。
ステップS1:システムの初期起動の際に、少なくとも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を該当する終了フラグとし、入力キュー中から該プログラム実行駆動装置を削除し、システム管理プログラムをアクティブにして他のプログラムをスケジューリングして実行する。
簡潔化した命令システム
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 (11)
- 割込み動作を使用しない状態で、1つの該タイプのコンピュータプロセッサに、同一の時刻に複数のプログラムを並行して実行することが可能となることを特徴とするプログラム/命令の実行を駆動するL駆動方法と呼ばれる駆動コンピュータプログラムを実行する駆動方法、及びこのような方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサ。
- プログラム毎のためにプログラム実行駆動装置を引入することで、複数のプログラムが同一な時刻に並行して実行されるのを、複数のプログラムが同一な該タイプのコンピュータプロセッサにて互いに独立したり互いに協調したりして管理・制御することを特徴とする請求項1に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
- 各プログラムは実行可能コードを生成すると共に、該プログラムのプログラム実行駆動装置を生成し、
プログラム実行駆動装置は少なくとも該プログラムの属性特徴を説明・定義し、該プログラムの実行を管理・制御するための相関情報全体を含んでおり、
1つのプログラムを構成する複数のルーチンやサブルーチンはそれぞれのプログラム実行駆動装置を有していることを特徴とする請求項1又は2に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。 - プログラム/命令の実行を駆動するL駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサであって、
該タイプのコンピュータプロセッサの基本的な構成は、
1)システムのハードウェア部分は、1つ又は複数の並行に動作できる記憶部材と、1つ又は複数の並行に動作できる操作制御部材と、1つ又は複数の並行に動作できる、部材同士で接続作用を発揮するコミュニケーション部材とからなり、
2)システムのソフトウェア部分は、1つの現代コンピュータシステムにおける操作システムと類似するシステム管理プログラムからなり、該システム管理プログラムはプログラムスケジュール機能を有すべきであり、そのために1枚のプログラムスケジュールテーブルを維持し、システムは初期化の場合は、システム管理プログラムのプログラム実行駆動装置がシステムのある操作制御部材にロードされ、該プログラム実行駆動装置をアクティブ又は活性化するものと呼ばれ、該プログラム実行駆動装置はシステム管理プログラムを駆動し、複数のユーザプログラムのプログラム実行駆動装置を一つずつアクティブさせ、その後、各ユーザプログラムのプログラム実行駆動装置は互いに独立したり協調したりして同一時刻にそれぞれのユーザプログラムを駆動して同一な前記コンピュータプロセッサにて同時に並行実行する、
ものであることを特徴とするプログラム/命令の実行を駆動するL駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサ。 - 該タイプのコンピュータプロセッサの動作方法は、
1)1つのプログラムが実行可能コードを生成すると、システム管理プログラムは該プログラムの実行を駆動する相関駆動情報をそのプログラムスケジュールテーブルの相関欄に書き込み、この時、該プログラムがある記憶部材に格納されて実行待機状態にあり、
2)該プログラムが、呼出して実行する各条件を満足すると、システム管理プログラムは該プログラムのプログラム実行駆動装置を創設/生成し、その後、該プログラムは実行状態に入って、そのプログラム実行駆動装置の管理及び制御で独立に実行され、
3)プログラム実行駆動装置は、保存された該プログラムの常駐情報、例えばプログラム記憶部材番号や、部材内アドレスPC等に従って、対応する記憶部材へ現在実行しようとする命令を取り出すように制御し、
4)命令を取り出した後、該プログラム実行駆動装置は、ある操作制御部材が取り出された命令を復号化するように制御し、これによって対応する記憶部材へ操作数を取り、対応する操作制御部材が指定の処理を完成し、処理結果を対応する記憶部材に書き返すように制御し、取り出された命令、命令の“復号化”結果、取り出された操作数及び操作の結果が共に該プログラム実行駆動装置のあるユニットに一時保存しており、
5)最終、該プログラム実行駆動装置は、保存されている、プログラム常駐情報類に属するPCアイテムを、現在の命令に規定された方式に基づいて補正した後、ステップ3に移行して本プログラムの次の命令を制御・実行し、
6)少なくとも、プログラムの終了命令まで実行する場合に、システム管理プログラムは、あるプログラムのプログラム実行駆動装置をアンロードし、これによって、PMを対応な終了フラグとし、システム管理プログラムをアクティブして該プログラムを対応な終了処理し、システム管理プログラムを始動して該プログラムを適当な終了処理する、
ものであることを特徴とする請求項1、2又は3に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。 - 該タイプのコンピュータプロセッサハードウェアの基本的な構成部材は、少なくとも、
1)1つ又は複数の並行に動作できる記憶部材であって、以下の部材を含む記憶部材と、
●プログラム記憶部材MP:プログラム記憶部材の読み出し/書き込みに係るサービスを提供するために用いられ、独立で並行に動作できるMP部材が複数設けられ、
●データ記憶部材MD:データ記憶部材の読み出し/書き込みに係るサービスを提供するために用いられ、独立で並行に動作できるMD部材が複数設けられ、
2)1つ又は複数の並行に動作できる操作制御部材であって、少なくとも以下の部材を含む操作制御部材と、
●プログラム管理部材PM:プログラム実行駆動装置の実行を管理するサービスを提供するために用いられ、独立で並行に動作できるPM部材が複数設けられ、
●命令フォーマット変換部材IT:命令復号及び命令フォーマット変換に係るサービスを提供するために用いられ、独立で並行に動作できるIT部材が複数設けられ、
●算術/論理演算部材ALU:算術/論理演算に係るサービスを提供するために用いられ、独立で並行に動作できるALU部材が複数設けられ、
●外部機器管理部材PD:外部機器の管理や制御に用いられ、
3)1つ又は複数の並行に動作できる、部材同士で接続作用を発揮するコミュニケーション部材、すなわちプログラム実行駆動装置の配送部材DU:プログラム実行駆動装置を1つの部材の出力キューからもう1つの部材の入力キューへ配送する転送及び配送サービスを提供するために用いられ、独立で並行に動作できるDU部材が複数設けられる配送部材DUと、
を備え、
前記各部材は一般に1つの入力バッファ装置と1つの出力バッファ装置とを有し、要求/サービスの方式に従って動作可能であり、請求を受信した後、すなわち入力バッファが非エンプティーである場合に、指定されたサービスを始動させて完成し、その結果を出力バッファに格納している、
ことを特徴とする請求項4に記載のプログラム/命令の実行を駆動するL駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサ。 - プログラム実行駆動装置は、1群情報ユニットからなる情報ブロックに設計され、
システムハードウェアの支持で、これらの特殊な情報ブロック、すなわちプログラム実行駆動装置は、現在対応している命令の操作コードの要求に従って、相応的な各機能部材を順次にアクセスし、命令に対して相応的な機能操作、即ち読み出し操作や、演算操作や、書き込み操作等を行い、
プログラム実行駆動装置の構成は以下の通りであり、
1つのプログラム実行駆動装置は29個のユニットからなり、各構成ユニットの定義及び説明は以下の通りであり、
ユニット0―ユニット6:実行時の動作ユニットである、すなわち本プログラムが実行する過程に一時/中間結果を格納するためのユニットであり、ユニット0は、NEXTユニットと呼ばれ、本プログラム実行駆動装置の現在アクセスする、サービス要求がある機能部材の番号であり、ユニット1−6は、現在駆動する命令によって違い、その具体的な方法は各部材の機能を述べる場合に詳細的に説明し、ユニット1はΔPCユニットとして用いられる場合があり、ΔPC=0の時に現在の命令がEND命令であることを示し、ΔPC=1の時に現在の命令が非ジャンプ型命令であることを示し、ΔPC>1又はΔPC<0の時に現在の命令がジャンプ型命令であることを示す;
ユニット7:プログラム記憶部材の部材番号MPnoであり、本プログラムが常駐されているプログラム記憶部材の部材番号を格納するためのものである;
ユニット8:プログラム記憶部材の部材個数MPnuであり、本プログラムの所要の連続なプログラム記憶部材の個数を格納することに用いられ、MPnuの値は1より大きいであれば、MPnoの値は1番目のプログラム記憶部材の部材番号である;
ユニット9:プログラム記憶部材の部材内アドレスPCであり、本プログラムの現在実行している命令のプログラム記憶部材の部材内アドレスを格納するためのものである;
ユニット10:データ記憶部材の部材番号MDnoであり、本プログラムの所要のデータ記憶部材の部材番号を格納するためのものである;
ユニット11:データ記憶部材の部材個数MDnuであり、本プログラムの所要の連続なデータ記憶部材の個数を格納することに用いられ、MDnuの値は1より大きいであれば、MDnoの値は1番目のデータ記憶部材の部材番号である;
ユニット12:プログラム番号PrNoであり、二つ以上の実行しているプログラムが共通に同一なプログラム記憶部材に格納されている場合に、本パラメータで各プログラムを識別する;
ユニット13−ユニット28:16個の汎用レジスターR0-R15である;
ことを特徴とする請求項1、2、3又は5に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。 - 汎用レジスタ群は、1つのハードウェア装置に設けられてもよいし、1群の流れの情報ユニット、すなわちプログラム実行駆動装置の1つの構成部分に設けられてもよい、
ことを特徴とする請求項4又は6に記載のプログラム/命令の実行を駆動するL駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサ。 - システムの各主要なハードウェア機能部材の機能及びその入力/出力のプログラム実行駆動装置の構成は、以下のようになる:
1.記憶機能部材
1)部材1:プログラム記憶部材MPと呼ばれ、プログラム記憶部材の読み出し/書き込みに係るサービスを提供するために用いられ、独立で並行に動作できるMP部材が複数設けられ、各MP部材の主な機能は以下の通りである;
●MPは1つの入力キューを維持しており、本MP処理を請求する全てのプログラム実行駆動装置は該キューに待ち、MPは1つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キューに待って、DU部材の配送サービスを待つ;
●読み出し要求:現在のキューヘッダにあるプログラム実行駆動装置が要求するのは読み出し操作であれば、該プログラム実行駆動装置から該プログラムの部材内アドレスPCを取り出してMPのアドレスレジスターに送り、MPの読み出し操作を始動させて該プログラムの現在の命令を読み取り、読み取った命令を現在のプログラム実行駆動装置の該当するユニットに書き込み、プログラム実行駆動装置のNEXTユニットをITとし、それをMPの出力キューに書き込む;
●書き込み要求:現在のキューヘッダにあるプログラム実行駆動装置が要求するのは書き込み操作であれば、完成する必要がある操作はデータ記憶部材の書き込み操作と類似しているので、ここで省略する;
●上述処理過程を繰返す:本MPの入力キューがエンプティー又は出力キューがフルであれば、空操作を一回行う;
●MP部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は以下のように示す;
ユニット0におけるMPrは、行先部材がMPであり且つ「読み出し」操作を要求して実行することを示し、現在係らないプログラム実行駆動装置の構成ユニット、例えばユニット1−6を共に省略し、以下で同じである;
●MP部材の出力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は以下のように示し、ユニット1におけるIは読み出した現在の命令、例えばLDI R0,Cである;
2)部材2:データ記憶部材MDと呼ばれ、データ記憶部材の読み出し/書き込みに係るサービスを提供するために用いられ、独立で並行に動作できるMD部材が複数設けられ、各MD部材の主な機能は以下の通りである;
●MDは1つの入力キューを維持しており、本MD処理を請求する全てのプログラム実行駆動装置は該キューに待ち、MDは1つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キューに待って、DU部材の配送サービスを待つ;
●読み出し操作:現在のキューヘッダにあるプログラム実行駆動装置が要求するのは読み出し操作であれば、該プログラム実行駆動装置から該読み出し操作の部材内アドレスを取り出してMDのアドレスレジスターに送り、MDの読み出し操作を始動させて該当する記憶ユニットの内容を読み取り、読み取ったデータを現在のプログラム実行駆動装置のあるユニットに書き込み、NEXTユニットをPM、ΔPCユニットを1とし、それらをMDの出力キューに書き込む;
●書き込み操作:現在のキューヘッダにあるプログラム実行駆動装置が要求するのは書き込み操作であれば、該プログラム実行駆動装置から該書き込み操作のデータ及び部材内アドレスを取り出し、それぞれMDのデータレジスター及びアドレスレジスターに送り、MDの書き込み操作を始動させてデータを該当する記憶部材に書き込み、NEXTユニットをPM、ΔPCユニットを1とし、それらをMDの出力キューに書き込む;
●上述処理過程を繰返す:本MDの入力キューがエンプティー又は出力キューがフルであれば、空操作を一回行う;
●MD部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は、IT部材の出力キューにおけるMDへ発信するプログアム実行駆動装置及びその構成ユニットの内容を参照できる;
●MD部材の出力キューにおけるPMへ発信するプログアム実行駆動装置及びその構成ユニットの内容は以下のように示す;
ここで、ユニット1はΔPCであり、現在の命令の現在値は1である;
2.操作機能部材
1)部材3:プログラム管理部材PMと呼ばれ、プログラム実行駆動装置の実行を管理するサービスを提供するために用いられ、独立で並行に動作できるPM部材が複数設けられ、各PM部材の主な機能は以下の通りである;
●PMは1つの入力キューを維持しており、本PM処理を請求する全てのプログラム実行駆動装置は該キューに待ち、PMは1つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キューに待って、DU部材の配送サービスを待つ;
●1つのプログラムを始動させて実行駆動装置を実行する:システム管理プログラムが一プログラムのプログラム実行駆動装置をアクティブにするのは、実際に該プログラムのプログラム実行駆動装置をPMの入力キューに書き込むことであり、PMが該プログラム実行駆動装置まで処理する場合に、そのNEXTユニットをMPとし、それをPMの出力キューへ書き込む;
●1つのプログラム実行駆動装置の実行を継続する:各プログラム実行駆動装置が1つのプログラムを駆動する現在の命令の実行最終のステップは、PMへ復帰することであり、現在の命令は終了命令ではなければ、PMは該ドライバが引き続き実行するように制御され、ユニット9←ユニット9+ユニット1を行う、即ちPC←PC+ΔPCであって、NEXTユニットをMPとし、それをPMの出力キューへ書き込む;
●1つのプログラム実行駆動装置の実行を終了する:あるプログラムが1つの終了命令まで実行する場合に、PMは該プログラムのプログラム実行駆動装置を削除する方式を採用することで、該プログラムの実行を終了し、該プログラムは終了命令を実行する前に、1つ又は複数の資源解放型命令を実行しなければならない;
●上述処理過程を繰返す:本PMの入力キューがエンプティー又は出力キューがフルであれば、空操作を一回行う;
●PM部材の入力キューにおいて受信されたプログラム実行駆動装置及びその構成ユニットの内容は以下のように示す;
ここで、ユニット1はΔPCであり、その値は0、1、又はジャンプのオフセットである;
●PM部材の出力キューにおけるMP部材へ発信するプログアム実行駆動装置及びその構成ユニットの内容は以下のように示す;
ここで、ユニット1におけるMPrは、行先部材がMPであり且つ「読み出し」操作を要求して実行することを示す;
2)部材4:命令フォーマット変換部材ITと呼ばれ、命令復号及び命令フォーマット変換に係るサービスを提供するために用いられ、独立で並行に動作できるIT部材が複数設けられ、各ITの主な機能は以下の通りである;
●ITは1つの入力キューを維持しており、本IT処理を請求する全てのプログラム実行駆動装置は該キューに待ち、ITは1つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キューに待って、DU部材の配送サービスを待つ;
●命令フォーマット変換を要求するプログラム実行駆動装置について、ITは該プログラム実行駆動装置に格納されている現在の命令をフォーマット変換し、これによってNEXT等のユニットを設置し、それをITの出力キューに書き込む;
●上述処理過程を繰返す:本ITの入力キューがエンプティー又は出力キューがフルであれば、空操作を一回行う;
●IT部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は以下のように示し、ここで、ユニット1におけるIは読み出した現在の命令、例えばLDI R0,Cである;
●以下に示すように、IT部材の出力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は現在の命令Iによって異なる;
・ITからPMへ発信するプログラム実行駆動装置及び構成ユニットの内容:
LDI Rd,C
ここでユニット1はΔPCであり、現在の命令の現在値は1である;
MV Rd,Rs
ここでユニット1はΔPCであり、現在の命令の現在値は1である;
・ITからMDへ発信するプログラム実行駆動装置及び構成ユニットの内容は、以下の通りである;
LD Rd,Rs
ここで、ユニット0におけるMDrは行先部材がMDであり且つ「読み出し」操作を要求して実行することを示し、ユニット2,3における[Rd]及び[Rs]はレジスターRd及びレジスターRs中の内容を示す;
STI Rd,C
ここで、ユニット0におけるMDIwは行先部材がMDであり且つ「即時値の書き込み」操作を要求して実行することを示し、ユニット2における[Rd]はレジスターRd中の内容を示す;
ST Rd,Rs
ここで、ユニット0におけるMDwは行先部材がMDであり且つ「書き込み」操作を要求して実行することを示し、ユニット2,3における[Rd]及び[Rs]はレジスターRd及びレジスターRs中の内容を示す;
・ITからALUへ発信するプログラム実行駆動装置及び構成ユニットの内容は、以下の通りである;
ADDI Rd,C
ここで、ユニット0におけるALUI+は行先部材がALUであり且つ「即時値の加算」操作を要求して実行することを示し、SUBI、MULI、DIVI等の命令について、その該当するプログラム実行駆動装置及び構成ユニットの内容はこれと類似し、ユニット0だけをそれぞれALUI−、ALUI*、ALUI÷とする;
ADD Rd,Rs1,Rs2
ここで、ユニット0におけるALU+は行先部材がALUであり且つ「加算」操作を要求して実行することを示し、SUB、MUL、DIV等はこれと類似している;
JEQI Rs,C
ここで、ユニット0におけるALUIjは行先部材がALUであり且つ「即時値のジャンプ判断」操作を要求して実行することを示し、JNEI等はこれと類似している;
JEQ Rs1,Rs2
ここで、ユニット0におけるALUjは行先部材がALUであり且つ「ジャンプ判断」操作を要求して実行することを示し、JNE等はこれと類似している;
SLT Rd,Rs1,Rs2
ここで、ユニット0におけるALUsltは行先部材がALUであり且つ「設置不満」操作を要求して実行することを示し、SLE、SGT、SGE、SEQ、SNE等はこれと類似している;
3)部材5:算術/論理演算部材ALUと呼ばれ、算術/論理演算に係るサービスを提供するために用いられ、独立で並行に動作できるALU部材が複数設けられ、各ALU部材の主な機能は以下の通りである;
●ALUは1つの入力キューを維持しており、本ALU処理を請求する全てのプログラム実行駆動装置は該キューに待ち、ALUは1つの出力キューも維持しており、全ての処理されたプログラム実行駆動装置は該キューに待って、DU部材の配送サービスを待つ;
●ALUに算術/論理演算のサービスを要求する前に、プログラム実行駆動装置は該命令の所要の演算数を用意し且つプログラム実行駆動装置の該当するユニットに格納するように制御し、ALUは、プログラム実行駆動装置に格納されている該当する演算数に対し、要求される算術/論理演算を行い、結果がプログラム実行駆動装置の該当するユニットに格納され、NEXTユニットをPMとし、命令の規定に従って1ユニット、すなわちΔPCユニットをとし、それをALUの出力キューへ書き込む;
●上述処理過程を繰返す:本ALUの入力キューがエンプティー又は出力キューがフルであれば、空操作を一回行う;
●ALU部材の入力キューにおけるプログラム実行駆動装置及びその構成ユニットの内容は、IT部材の出力キューにおける、ALUへ発信するプログアム実行駆動装置及びその構成ユニットの内容を参照できる;
●ALU部材の出力キューにおけるプログアム実行駆動装置及びその構成ユニットの内容は以下のように示す;
ここで、ユニット1はΔPCであり、その値は1又はジャンプのオフセットである;
4)部材6:外部機器管理部材PDと呼ばれ、外部機器、例えばディスプレイ、キーボード、マウス、プリンタ、通信機器などの機器を管理し、ホストとデータ入力/出力のサービスを提供するために用いられる;
5)部材7:プログラム実行駆動装置配送部材DUと呼ばれ、プログラム実行駆動装置を1つの部材の出力キューからもう1つの部材の入力キューへ配送する転送及び配送サービスを提供するために用いられ、独立で並行に動作できるDU部材が複数設けられ、各DU部材の主な機能は以下の通りである;
●DUは、予定の順に各部材群の各部材の出力キューが非エンプティーであるかどうかを1つ1つチェックし、ある非エンプティーである出力キューについて、DUはキューから1つのプログラム実行駆動装置を取り出し、該プログラム実行駆動装置のNEXTユニットに指示された行先部材群番号及び行先部材番号に従って、該行先部材群の行先部材の入力キューが非フルであるかどうかをチェックし、非フルであれば、該プログラム実行駆動装置を該行先部材群の行先部材の入力キューへ配送し、以上の処理方式はPM、MP及びMDに対するものであり、IT及びALUについて、該部材からいずれかの入力キューが非フルである部材を選択すればよい;
●上述の処理過程を繰返す:すべての部材群のすべての部材の出力キューは共にエンプティーであり、或いは出力キューは非エンプティーであるが、該当する入力キューは共にフルであれば、空操作を一回行う、
ことを特徴とする請求項4、6又は8に記載のプログラム/命令の実行を駆動するL駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサ。 - 1)部材同士の接続関係は、部材1乃至6がそれぞれの1や2組の信号線を介してそれぞれの入力キューの終わり及び出力キューの始めを部材7に接続させ;
2)部材7は、少なくとも複数のデータ入力ポートと、複数のデータ出力ポートと、コミュニケーションネットワーク装置と、制御管理装置とからなり、部材7の制御管理装置はストローブの制御及び管理、例えば各ポートの忙しさの検出や、プライオリティの確定や、ルートの選択などに用いられ、部材7のコミュニケーションネットワーク装置は、複数のデータ入力ポートを複数のデータ出力ポートに接続するために用いられ;
3)部材7のコミュニケーションネットワーク装置はクロス相互連絡の設計方式を採用し、いずれかの入力ポートは共にすべてまたは部分の出力ポートと互いに接続され;
4)部材7のコミュニケーションネットワーク装置はマルチバスの設計方式を採用し、すべての入力ポートと出力ポートは幾つの組に分けられ、それぞれが1つのバスに接続され、バスとバスとの間が更にクロス相互連絡されている、
ことを特徴とする請求項4、6、8又は9に記載のプログラム/命令の実行を駆動するL駆動方法を利用したコンピュータプロセッサシステムアーキテクチュア並びにコンピュータプロセッサ。 - 前記駆動方法の動作フロー、即ち新規なコンピュータプロセッサにおけるプログラム実行駆動装置の動作フローの具体的なステップは以下のようになる:
ステップS1:システムの初期化の場合に、少なくとも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部材は、ある部材の出力キューが非エンプティーであり且つ現在のヘッダにあるプログラム実行駆動装置のNEXTユニットに指示された行先部材の入力キューが非フルであることを検出した場合に、該部材の出力キューヘッダのプログラム実行駆動装置を該当する行先部材の入力キューに配送して該部材の処理を待ち、ここでのある部材とは、IT、ALU及びMD中のいずれかであり、この時の行先部材は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、2、3、5又は7に記載のコンピュータプログラム/命令の実行を駆動する駆動方法。
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 true JP2008504615A (ja) | 2008-02-14 |
JP5336076B2 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)
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 | 李晓波 | 一种在处理中实现中断响应核可配置的方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04360234A (ja) * | 1991-06-06 | 1992-12-14 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
Family Cites Families (10)
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 |
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 |
US6658551B1 (en) * | 2000-03-30 | 2003-12-02 | Agere Systems Inc. | Method and apparatus for identifying splittable packets in a multithreaded VLIW processor |
US7096343B1 (en) * | 2000-03-30 | 2006-08-22 | Agere Systems Inc. | Method and apparatus for splitting packets in 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 |
-
2004
- 2004-06-28 CN CNB2004100497595A patent/CN100489783C/zh not_active Expired - Fee Related
-
2005
- 2005-06-09 RU RU2007101465/09A patent/RU2007101465A/ru not_active Application Discontinuation
- 2005-06-09 US US11/630,535 patent/US7761877B2/en active Active
- 2005-06-09 EP EP05752500A patent/EP1770516A4/en not_active Withdrawn
- 2005-06-09 BR BRPI0512670-3A patent/BRPI0512670A/pt not_active IP Right Cessation
- 2005-06-09 KR KR1020067027649A patent/KR100834180B1/ko not_active IP Right Cessation
- 2005-06-09 JP JP2007518438A patent/JP5336076B2/ja not_active Expired - Fee Related
- 2005-06-09 WO PCT/CN2005/000826 patent/WO2006000145A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04360234A (ja) * | 1991-06-06 | 1992-12-14 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
BRPI0512670A (pt) | 2008-04-01 |
EP1770516A1 (en) | 2007-04-04 |
CN100489783C (zh) | 2009-05-20 |
WO2006000145A1 (en) | 2006-01-05 |
EP1770516A4 (en) | 2008-12-10 |
RU2007101465A (ru) | 2008-08-10 |
KR100834180B1 (ko) | 2008-05-30 |
KR20070036083A (ko) | 2007-04-02 |
CN1595359A (zh) | 2005-03-16 |
US7761877B2 (en) | 2010-07-20 |
US20080072023A1 (en) | 2008-03-20 |
JP5336076B2 (ja) | 2013-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008504615A (ja) | プログラム/命令の実行を駆動するl駆動方法及びそのシステムアーキテクチュア、並びにプロセッサ | |
US8149854B2 (en) | Multi-threaded transmit transport engine for storage devices | |
US10114652B2 (en) | Processor with hybrid pipeline capable of operating in out-of-order and in-order modes | |
US6938253B2 (en) | Multiprocessor communication system and method | |
JP3587259B2 (ja) | 命令処理制御システム | |
KR101366075B1 (ko) | 멀티코어 플랫폼에서의 태스크 이동 방법 및 장치 | |
JP4678623B2 (ja) | 非対称型異種混合マルチプロセッサ環境(asymmetric heterogeneous multiprocessor environment)におけるメモリバリア要素(Primitive) | |
JP2001318874A (ja) | システム・オペレーションの間にデバイス・ドライバを置き換えるシステム,方法及びそのコンピュータ・プログラム製品 | |
JP3531167B2 (ja) | 命令実行を制御するため命令にタグを割り当てるシステム及び方法 | |
JP5244160B2 (ja) | 複数の命令シーケンサでのスレッド実行に基づく命令セットのためのメカニズム | |
JP2008047116A (ja) | 入力/出力装置とメモリ間のデータ転送の融通性のある制御 | |
JP2001350638A (ja) | 多重スレッド使用方法、多重スレッド処理システム、スレッド実行コントローラおよびバッファ使用方法 | |
JP2002117002A (ja) | 共用型ペリフェラルアーキテクチャ | |
JP2004171573A (ja) | 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ | |
EP2523099A2 (en) | Selective routing of local memory accesses and device thereof | |
US7203821B2 (en) | Method and apparatus to handle window management instructions without post serialization in an out of order multi-issue processor supporting multiple strands | |
JP2018180768A (ja) | 半導体装置 | |
US20060031602A1 (en) | Scalable architecture for context execution | |
JPS63191253A (ja) | キャッシュ記憶の優先順位指定装置 | |
JPH06119297A (ja) | データ処理システムにおける命令の実行順序を決定する方法および装置 | |
JP2001142700A (ja) | パイプラインプロセッサにおける電力有効処理メカニズム | |
JP4631442B2 (ja) | プロセッサ | |
JP2003005987A (ja) | エミュレーション装置 | |
JP2010026575A (ja) | スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム | |
JP2933560B2 (ja) | 多重パイプラインを有する情報処理装置 |
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 |