JPS59501131A - Concurrent processing elements for using dependent free codes - Google Patents

Concurrent processing elements for using dependent free codes

Info

Publication number
JPS59501131A
JPS59501131A JP50228083A JP50228083A JPS59501131A JP S59501131 A JPS59501131 A JP S59501131A JP 50228083 A JP50228083 A JP 50228083A JP 50228083 A JP50228083 A JP 50228083A JP S59501131 A JPS59501131 A JP S59501131A
Authority
JP
Japan
Prior art keywords
memory
main memory
data
logically independent
dependent
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
Application number
JP50228083A
Other languages
Japanese (ja)
Other versions
JPS6313216B2 (en
Inventor
デサンテイス・アルフレツド・ジヨン
シビンガ−・ジヨゼフ・シ−グフリ−ド
Original Assignee
バロ−ス・コ−ポレ−ション
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 バロ−ス・コ−ポレ−ション filed Critical バロ−ス・コ−ポレ−ション
Priority claimed from PCT/US1983/000895 external-priority patent/WO1983004443A1/en
Publication of JPS59501131A publication Critical patent/JPS59501131A/en
Publication of JPS6313216B2 publication Critical patent/JPS6313216B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。 (57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.

Description

【発明の詳細な説明】 本願と直接または間接に関連する米国特許出願は以下のとおりである。[Detailed description of the invention] The following U.S. patent applications are directly or indirectly related to this application:

1982年6月8日にΔ1fred J、 De 5antiS等によって出願 された「多重処理エレメントのための従属自由コードを発生づ−る機構」という 名称の出願番号第386,339号。Filed on June 8, 1982 by Δ1fred J, De5antiS, etc. ``Mechanism for Generating Dependent Free Code for Multiprocessing Elements'' Title Application No. 386,339.

1982年6月8日にA 1fred J 、 [)e 5antisによって 出願された「従属自由コードのためのデータアイテムを再ネーミングするシステ ムおよび方法」という名称の出願番号第386.420号。By A1fred J, [)e5antis on June 8, 1982 “System for Renaming Data Items for Dependent Free Codes” has been filed. Application No. 386.420 titled ``Systems and Methods''.

この発明は、従属自由コードを発生するための′機構に関し、より特定的には複 数の同時処理エレメントを用いるためのそのような機構に関する。The present invention relates to a mechanism for generating dependent free code, and more specifically to a mechanism for generating dependent free code. The present invention relates to such a mechanism for using a number of simultaneous processing elements.

先行技術の説明 今日でもなほとんどのコンピュータは、本質的に順次的である命令言語によって 駆動されまたはそのような命令言語を実行するV On N eumanタイプ のものである。さらに、そのような順次的な言語は、個々の命令の間に多くの従 属されることはできない。たとえば以下のようなシーケンスを考察する。Description of prior art Even today, most computers are built using instruction languages that are sequential in nature. V On N euman type driven or executing such command language belongs to. Moreover, such sequential languages have many subordinations between individual instructions. You cannot belong to it. For example, consider the following sequence.

C:=Fn (A、B> DH=Fn4−i (C,E) この2つの関数FnおよびFn +iは、関数Fnの結果が次の関数Fn+iに 対する入力として用いられるので、論さらに、順次言語の欠点は、シーケンスま たはループがが存在するということであり、もしそれが改良されるならば、プロ セッサの処理高は増大されるであろう。C:=Fn (A, B> DH=Fn4-i (C,E) These two functions Fn and Fn+i are Arguably, the disadvantage of sequential languages is that they are used as input for sequences or or a loop exists, and if it is improved, the pro Processor throughput will be increased.

処理システムの処理高を増大させる1つの方法は、複数のプロセッサを多重処理 モードで用いることである。し力\しながら、個々のプロセッサはなお命令を順 次的に実行しなければならず、唯一の同時処理は、個々のプロセッサ力くプログ ラムの別々のセグメントを実行しているときかまたは全く別のプログラムを実行 しているときにのみ存在する。One way to increase the processing power of a processing system is to use multiple processors for multiprocessing. It is used in mode. However, individual processors still execute instructions in order. The only concurrent processing is the When running separate segments of RAM or running completely different programs Exist only when you do.

そのような多重処理システムは、たとえば、M ott等の米mnFI’JI  3 、319 、226 号オよびA nderson等の米国特許第3,41 9,849Hに開示されている。Such a multiprocessing system is described, for example, by Mott et al. No. 3, 319, 226 O and Anderson et al. U.S. Pat. No. 3,41 No. 9,849H.

処理高を増大させるさらに他の試みは、命令実行の種々の副関数がオーバラップ するパイプライニングを採用することである。これらのステップを一連の命令と オーツベラツブさせることによって、命令実行は各クロック時間行なわれること ができ、それによってプロセッサの処理高を増大させる。Yet another attempt to increase processing power is to overlap the various subfunctions of instruction execution. The first step is to adopt pipe lining. These steps are a series of instructions By auto-blobbing, instruction execution is performed each clock time. , thereby increasing the processing power of the processor.

処理高を増大させるためのこれらのすべての方法は、上述したような命令間の論 理的従属性のゆえに、順次的な命令実行のために設計されている。論理的な従属 性のため、種々の命令が互いに従属性なく実行されて一群のまたは多数の処理エ レメントによる処理を容易に適合させる真の同時処理は達成されることができな い。All of these methods for increasing throughput rely on inter-instruction arguments as described above. Because of their logical dependencies, they are designed for sequential instruction execution. logical subordination Due to the nature of the True simultaneous processing cannot be achieved, making processing easily compatible with elements. stomach.

応用言語は、各ステートメントが本質的に互いに無関係であり、したがってその ような応用ステートメントを縮小するように設計された処理エレメントの回路網 によって同時に実現されることができるという点において、命令言語とは異なっ ている。そのような応用言語プロセッサの例は、Bolton等の米国特許出願 第281,064号および1−1a!7enmaier等の米国特許出願第28 1.065号において与えられている。これらの両出願は、1981年7月7日 に出願され、本願の譲受人に譲渡された。そのような応用言語は、それらが設計 によってV on N euman的意味における順次的でないという点におい て、命令言語とは異なっている。しかしながら、今日用いられるほとんどのプロ グラムライブラリは、命令言語で書かれてd″3つ、またそれらのライブラリを 用いるべきデータ処理システムの更新またはさらに別の世代は、命令言語を実行 するようにされなければならない。An applied language is one in which each statement is essentially unrelated to each other and therefore its A network of processing elements designed to reduce application statements such as It differs from a command language in that it can be simultaneously realized by ing. An example of such an applied language processor is the US patent application of Bolton et al. No. 281,064 and 1-1a! U.S. Patent Application No. 28 of 7enmaier et al. 1.065. Both applications were filed on July 7, 1981. and has been assigned to the assignee of the present application. Such application languages are In the sense that it is not sequential in the eumanic sense, It is different from a command language. However, most professionals used today The gram library is written in a command language and has three d'' libraries, and Updates or yet another generation of data processing systems to be used to execute instruction languages must be made to do so.

処理高が増大され得る1つの方法は、前の処理の結果に依存しないオブジェクト コードのセグメントを認識し、それらのセグメントを複数の処理エレメントによ って同時に処理され得る非従属シーダンスまたは持ち行列に形成することである 。このことはもちろん、オペランドがメモリに存在するときのそのもとの値を破 壊することなく処理がオペランドに対して実行され得るといった方法のオペラン ドの取扱いを必要とする。異なった記号名が、この目的のために任意のデータア イテムを参照するのに指定され得る。One way in which processing height can be increased is for objects that do not depend on the results of previous processing. Recognize segments of code and route those segments through multiple processing elements. is to form a non-dependent sedance or matrix that can be processed simultaneously. . This of course destroys the operand's original value while it resides in memory. operands in such a way that operations can be performed on them without destroying them requires handling of the code. Different symbolic names can be used for this purpose with any data access. Can be specified to refer to an item.

コードまたは記号のそのような待ち行列の配列は、処理装置による同時処理をさ らに適合させる。The arrangement of such a queue of codes or symbols requires simultaneous processing by the processing unit. Adapt it to the following.

この発明の目的は、従属自由命令コードを発生するための改良された機構を提供 することである。It is an object of this invention to provide an improved mechanism for generating dependent free instruction codes. It is to be.

この発明の他の目的は、多重処理エレメントによる実行のため従属自由命令コー ドを提供することである。この発明のさらに他の目的は、従属自由命令コードを 複数の処理エレメントに同時的態様で与えるための改良された機構を提供するこ とである。Another object of the invention is to provide dependent free instruction code for execution by multiple processing elements. The goal is to provide a Still another object of the invention is to providing an improved mechanism for serving multiple processing elements in a simultaneous manner; That is.

この発明のさらに他の目的は、冗長なメモリ取出しがなく、かつそのコードが一 連のそのようなコードの処理のために再処理されなくてもよい特性である命令コ ードを発生するための機構を提供することである。Still another object of the invention is to eliminate redundant memory fetches and to The instruction code is a property that does not need to be reprocessed for processing such code in the series. The objective is to provide a mechanism for generating the code.

発明の概要 上述した目的を達成するために、この発明は、オブジェクトコードのストリング を受けそれらを高レベルのタスクに形成し、論理的に非従属であるそのようなタ スクのシーケンスを決定し、それによってそれらが別々に実行されるようにする 、データプロセッサのためのキャッシュ機構に向けられている。このキャッシュ 機構は、種々のタスクによって必要とされるすべてのメモリアクセスを行ない、 かつこれらのタスクを、種々のデータアイテムがストアされなかったローカルメ モリに対する対応するポインタまたはリファレンスとともにストアする。このキ ャッシュ機構は、記号翻訳テーブルを利用し、そこではタスクは、ローカルメモ リに対する種々のリファレンスまたはポインタを表わす記号とともに待ち行列の 態様でストアされる。この方法において、種々のデータアイテムは別々のタスク に用いるための別々の記号または記号名を割当てられることができ、したがって 種々のタスク間の依存性を限定しかつデータ変更を制御する。Summary of the invention To achieve the above-mentioned object, the present invention provides a string of object codes. and form them into higher-level tasks and define such tasks that are logically non-dependent. determine the sequence of screens so that they are executed separately , is directed to a cache mechanism for data processors. This cache The mechanism performs all memory accesses required by various tasks, and perform these tasks on local media where various data items are not stored. store along with a corresponding pointer or reference to the memory. This key The caching mechanism utilizes a symbol translation table, where tasks are of the queue, along with symbols representing various references or pointers to the queue. It is stored in the following manner. In this method, different data items are assigned separate tasks. can be assigned a separate symbol or symbol name for use with Limit dependencies between various tasks and control data changes.

この発明の特徴は、一群の処理エレメントに対するキャッシュ機構を与えること であり、そのキャッシュ機構は順次的なオブジェクトコードのストリングをタス クの持ち行列に形成し、各待ち行列は他のものとは論理的に非従属である。A feature of the invention is that it provides a caching mechanism for a group of processing elements. , whose caching mechanism tasks strings of sequential object code. queues, each queue being logically independent of the others.

K1」口1敗奏JU側 この発明の上述の目的およびその他の目的、効果および特徴は、図面を参照して 行なう以下の詳細な説明から一層明らかとなろう。K1” 1 loss JU side The above objects and other objects, effects and features of this invention will be understood with reference to the drawings. It will become clearer from the detailed description given below.

第1図は、この発明が設計されるためのオブジェクトコードのストリングおよび そのオブジェクトコードから形成される対応する論理的非従属待ち行列である。FIG. 1 shows the object code string and A corresponding logically independent queue formed from that object code.

第2図は、この発明によるシステムの概略ブロック図である。FIG. 2 is a schematic block diagram of a system according to the invention.

第3図は、この発明により形成される待ち行列のフA〜マットを示す。FIG. 3 shows the format of a queue created in accordance with the present invention.

第4図は、この発明に利用される記号翻訳デープルモジュールの概略ブロック図 である。FIG. 4 is a schematic block diagram of the symbol translation double module used in this invention. It is.

第5図は、この発明に用いられる処理エレメントの概略ブロック図である。FIG. 5 is a schematic block diagram of processing elements used in the present invention.

第6図は、この発明を示覆タイミング図である。FIG. 6 is a timing diagram illustrating the present invention.

発明の概略説明 上述の目的、効果および特徴を達成するために、この発明は3つの異なった見地 、すなわち多重処理ニレメン1−にJ−る改良されたコード処理、リファレンス 処理および並列的実行を有する。コード処理において、この発明はまず連結によ って命令ストリングを予備処理し、一連の連結された命令の間の関係を調べて、 それらの命令を互いにつないで従属命令の待ち行列を形成する。連結された命令 が互いにつながれるべきかどうかを決定するために用いられる機構は、続く連結 された命令に対する出力を与える1つの連結された命令への従属である。一旦非 従属性が位置決めされると、待ち行列が形成される。一旦待ち行列が形成される と、この発明による機構はその全待ち行列を1つのステップで処理することによ って効果的である。連結された命令を通常的に再処理するため数サイクルを必要 とするのが、今では1サイクルでなされ、また待ち行列は一連のシーケンスの実 行に対し再発生される必要がない。General description of the invention In order to achieve the above-mentioned objects, effects and features, this invention has three different aspects. , i.e., improved code processing based on multiprocessing element 1, reference Has processing and parallel execution. In code processing, this invention first uses concatenation. preprocesses the instruction string, examines the relationships between a series of concatenated instructions, and The instructions are linked together to form a queue of dependent instructions. concatenated instructions The mechanism used to determine whether the following is a dependency on one concatenated instruction that provides output for the executed instruction. Once non- Once the dependencies are located, a queue is formed. Once a queue is formed , the mechanism according to the invention processes the entire queue in one step. That's effective. Requires several cycles to normally reprocess concatenated instructions is now done in one cycle, and the queue is used to execute a series of sequences. Does not need to be regenerated for the row.

さらに、コードの処理の間、前に参照されかつ処理エレメントに対しローカルで あるオペランドリファレンスは認識され得る。このことは各リファレンスを受け かつそのアイテムがプロセッサのローカルメモリにあるがどうかをみるために翻 訳テーブルをスキャ・ンすることによって達成される。もしリファレンスがプロ セッサのローカルメモリに常駐しなければ、この発明はそのリファレンスに記号 を割当て、任意の待ち行列に対応する個々の記号は1つの処理エレメントに対す る後続の転送のためそこに付加される。Additionally, during the processing of the code, previously referenced and local to the processing element Certain operand references may be recognized. This applies to each reference and the item is in the processor's local memory. This is accomplished by scanning the translation table. If the reference is professional If the symbol does not reside in the processor's local memory, the invention , and each symbol corresponding to any queue is assigned to one processing element. appended there for subsequent transmission.

一旦対応する持ち行列が形成されると、それらは複数の処理エレメントによって 同時に実行されることができる。Once the corresponding holding matrices are formed, they are processed by multiple processing elements. Can be executed simultaneously.

今日の処理システムの設計において、スタック配向プロランスタック、ま゛たば 先入れ後出しスタックが与えられて、特定の高レベルプログラム言語によって用 いられる再帰的手順およびネスティッド処理を適合させる。このようなスタック 配向プロセッサが与えられると、親制御プログラムおよび処理システムの一部を 形成する他のルーチンは、アルゴル60のような本質的に再帰的である特定の高 レベル言語で書かれることができる。この形式の特定のプロセッサモジュールは 、B arton等の特許第3.461.423号、3..546,677号、 および3,548.384号に開示されている。In the design of today's processing systems, stack-oriented prolane stacks, Given a first-in-last-out stack, it can be used by certain high-level programming languages. Adapt recursive procedures and nested operations that can be used. Stack like this Given an oriented processor, it directs parts of the parent control program and processing system to Other routines that are recursive in nature, such as Algol 60, Can be written in level language. The specific processor module of this format is , B. arton et al. Patent No. 3.461.423, 3. .. No. 546,677, and No. 3,548.384.

スタック機構の機能、先入れ後出し機構は、命令および関連のパラメータを、特 定の高レベル言語のネストされた構造を反射する方法で操作することである。そ のようなスタックは主メモリに概念的に常駐し、プロセッサのスタックl1es はスタック内のトップデータアイテムに対するリファレンスを含むようにされて いる。この方法において、データアイテムの多くの種々のスタックはメモリ内に 常駐し、プロセッサはそれらをプロセッサ内に存在するスタックレジスタのトッ プに対するアドレスに従ってアクセスし、種々のスタックはそのレジスタの内容 の変化によって別々のときアクレスされることができる。The stacking mechanism, a first-in, last-out mechanism, allows instructions and associated parameters to be is to manipulate the nested structures of a given high-level language in a reflective manner. So A stack such as is conceptually resident in main memory and is similar to the processor's stack l1es is made to contain a reference to the top data item in the stack. There is. In this way, many different stacks of data items are stored in memory. The processor uses them as the top of the stack registers that reside within the processor. The various stacks are accessed according to the address to the register, and the contents of the various stacks are can be addressed at different times by changes in .

もしプロセッサがそのようなスタック機構を与えられな番プれば、プロセッサは 再帰タイプの言語を、その一般目的のレジスタをそれらがハードウェアスタック 機構であるにもかかわらずアドレスすることによって実行する。If a processor is not provided with such a stacking mechanism, the processor A recursive type of language that uses general purpose registers to integrate them into the hardware stack. Although it is a mechanism, it is executed by addressing it.

この発明の好ましい実施例は高レベル再帰的言語で書かれたプログラムを実行す るためのそのようなスタック配向プロセッサに向けられているが、この発明の内 容は再帰的なものとは別の高レベル言語プログラムの形式を実行する設計された 他の形式のプロセッサにも用いることができる。A preferred embodiment of the invention executes a program written in a high-level recursive language. Although this invention is directed to such a stack-oriented processor for is a recursive language designed to perform different forms of high-level programming. It can also be used with other types of processors.

一旦プログラムがこの高レベル言語で書かれると、それはプロセッサのコンパイ ラによってオブジェクトコードまたは機械言語コードのストリングにコンパイラ され、その形式は特定のプロセッサの設計に従って設計されならびに制御される 。上述したように、今日設計されるほとんどのプロセッサはなおV On N  eulllanタイプのものであり、それは本来的に順次的でありかつ多くの論 理的従属性を含む。Once a program is written in this high-level language, it is compiler into a string of object code or machine language code. and its format is designed and controlled according to the specific processor design. . As mentioned above, most processors designed today are still VOnN eullan type, which is sequential in nature and subject to much discussion. Including logical dependence.

この発明が「デコンパイル」された高レベル言語コードの形式で従属自由コード をいかに与えるかということを一般的に示すために、ここで第1図を参照する。This invention provides dependent free code in the form of "decompiled" high-level language code. Reference is now made to FIG. 1 to generally illustrate how to provide .

第1図の左欄は、C[1,J] :=A[I、J]+B[I、J]の計算のため の機械言語コードのストリングを表わず。この、計算は多くのアドレスに対する ものであるので、第1図の左端に示された機械言語コードのストリングはループ の一連のシーケンスまたはシリーズにおいて実行される。The left column of Figure 1 is for calculating C[1,J]:=A[I,J]+B[I,J] does not represent a string of machine language code. This calculation is for many addresses. Since the string of machine language code shown on the left side of Figure 1 is performed in a sequence or series of

このコードのストリングは4つのコードのグループまたはサブセットに分割され 、その各々のグループは第1図の中央部分のブロック図によって示されるように 他のものと大部分論理的に非従属である。一般的にこの発明の機構は、次の処理 が前の処理またはストアされた処理と非従属であるとき、論理的に非従属のスト リングの端部を決定する。This string of codes is divided into four code groups or subsets. , each group is as shown by the block diagram in the central part of FIG. It is largely logically non-dependent from others. Generally, the mechanism of this invention performs the following processing. A logically independent store is Determine the end of the ring.

この発明において、機構は、第1図の右欄に示されるように、値呼出しまたはメ モリ、取出しを実行しかつオペレータの持ち行列またはデータアイテム(または データアイテムに対するローカルアドレス)を形成する。これらのオペレータお よびそのデータアイテムは互いに連結され、以下に説明する方法で処理エレメン トに転送され得る。このような連結された命令は、以後タスクとして参照される 。In this invention, the mechanism is a value call or a message as shown in the right column of FIG. memory, performs a retrieval, and returns the operator's holding matrix or data item (or local address for the data item). These operators and its data items are concatenated together and processed by processing elements in the manner described below. may be forwarded to Such concatenated instructions are hereinafter referred to as tasks. .

第1図の例において、4つの別々の持ち行列は従属連結命令の論理的に非従属な グループであり、以下に説明するように別々の処理エレメントによって同時に実 行され得る。In the example of Figure 1, the four separate holding matrices are logically independent of the dependent concatenation instructions. group and executed simultaneously by separate processing elements as described below. can be carried out.

第1図の左欄におけるコードのストリングはループのシーケンスにおいて実行さ れるべきであるので、第1図の右欄における新しく発生された待ち行列は再発生 される必要はない。各一連のループにとって必要なことは、新たな値およびアレ イアイテムがメモリから取出されるということである。また、新たなポインタ値 は、ストアされる変数に割当てられなければならない。The string of code in the left column of Figure 1 is executed in a sequence of loops. The newly generated queue in the right column of Figure 1 should be regenerated. There is no need to be done. All that is required for each series of loops is to create new values and arrays. This means that the item is retrieved from memory. Also, the new pointer value must be assigned to the variable being stored.

発明の詳細な説明 この発明ににるプロセッサシステムは第2図に示されており、キャッシュ機構1 0はオペレータの個々の持ち行列および複数の小さい処理エレメントlia、b およびCに対するデータリファレンス、ならびに待ち行列処理エレメント13a を供給するための機構であり、それらの各々はそれ自身のローカルメモリ12a 、、bおよびCならびにローカルメモリ13bにそれぞれ与えられる。キャッシ ュ機構10は、主メモリ〈図示せず)と直接に通信し、個々の処理エレメントは また直接ストレージモジュール14によって主メモリと通信する。Detailed description of the invention The processor system according to the present invention is shown in FIG. 0 is the operator's individual holding matrix and multiple small processing elements lia,b and a data reference to C and queue processing element 13a , each of which has its own local memory 12a. , , b and C and the local memory 13b, respectively. Cash The processing mechanism 10 communicates directly with main memory (not shown), and the individual processing elements It also communicates with main memory via a direct storage module 14.

機M410は4つのユニットから構成されており、その4つのユニツ1〜は待ち 行列タスクモジコール10a、命令リファレンスモジュール10b、記号vA訳 モジコールIOC。Machine M410 consists of four units, and the four units 1~ Matrix task module 10a, instruction reference module 10b, symbol vA translation Mogicor IOC.

およびジョブ待ち行列10dを含む。ここで、こりらの個々のユニットの機能を 概略的に説明する。オブジェクトコードまたは機械言語コードの個々のストリン グは待機タスクモジュール10aによってメモリから受取られ、待機タスクモジ ュール10aは、各命令を直列的に受けてそれらをタスクの持ち行列にアセンブ ルするバッファまたはキャッシュメモリであり、タスクの待ち行列の長さは一連 の連結されたキャラクタの間の論理的依存性による。待機タスクモジュール10 aは、命令のつながれたグループが以前の百1算の結果を必要としないとぎを決 定するのに充分なデコード回路を含む。つながれたタスクのそのような持ち行列 がアセンブルされてしまうと、そのオペランドリファレンスは命令リファレンス モジュール10bに転送され、命令リファレンスモジュール10bは個々の命令 および割当記号によって要求される任意のメモリ取出しを実行する。and job queue 10d. Here we describe the functions of these individual units. Briefly explain. individual strings of object code or machine language code The log is received from memory by the waiting task module 10a, and the waiting task module The module 10a receives each instruction serially and assembles them into a matrix of tasks. A buffer or cache memory for processing tasks, and the length of a task's queue is a series of due to logical dependencies between concatenated characters. Standby task module 10 a determines the sequence in which the linked group of instructions does not require the result of the previous 101 calculation. Contains sufficient decoding circuitry to Such a matrix of connected tasks is assembled, its operand reference becomes an instruction reference. The instruction reference module 10b stores the individual instructions. and perform any memory fetches required by the allocation symbol.

待機タスクモジュール10aはまた、記号翻訳モジュール10Cに待ち行列番号 を割当てる。The waiting task module 10a also sends a queue number to the symbol translation module 10C. Assign.

命令リファレンスモジコール10bは絶対メモリアドレスが論理的に保持されて いるがどうかを決定する連想メモリであり、もし保持されていなければ命令基準 モジュール10bはそのアドレスを主メモリに送り、そのアドレスをストアし、 そこに記号を割当てることによってそのメモリアクセスを行なう。この連想メモ リは次に、記号翻訳モジコール10cに対応するタスクとともにその記号を転送 する。記号翻訳モジュール10cはその記号に対しポインタ(ローカルメモリア ドレス)を割当て、そのポインタを主メモリに転送し、それによって°主メモリ はローカルメモリ内にデータアイテムをストアすることができる。オブジェクト コードのストリングの最初の実行の間、一連の命令に対する待ち行列は記号翻訳 モジュール10cにおいて形成されている。これらの待ち行列が形成される一方 、個々のタスクおよびポインタはジョブ待ち行列10dに転送される。The instruction reference module 10b has an absolute memory address that is logically maintained. It is an associative memory that determines whether the data is stored or not, and if it is not stored, the instruction standard Module 10b sends the address to main memory, stores the address, Access the memory by assigning a symbol to it. This associative memo Li then transfers the symbol with the corresponding task to the symbol translation module 10c. do. The symbol translation module 10c stores a pointer (local memory) for the symbol. address) and transfers its pointer to main memory, thereby can store data items in local memory. object During the first execution of a string of code, the queue for a sequence of instructions is symbolically translated It is formed in module 10c. While these queues form , individual tasks and pointers are transferred to job queue 10d.

記号翻訳モジュール10Cは、待機タスクモジュール10aによって参照され得 る種々の持ち行列記憶位置を有するテーブルルツアップメモリである。これらの 記憶位置は、処理エレメントのローカルメモリに保持されたつながれた命令およ びアイテムの記号のリストを含む。各持ち行列が読出されるとき、持ち行列に対 する記号は、以下に詳細に説明するように、記号によって参照されるアイテムの 実際の記憶位置に対するポインタを含むルックアップテーブルに対する読出しア ドレスとして用いられる。第1図のオブジェクトコードストリングの最初の処理 の終わりに、ジョブ待ち行列10eは個々の作り出された待ち行列を含み、その 作り出された待ち行列はタスクおよびポインタによって同時実行のため各処理エ レメントIla、11b、および11cに直列的に送られ得る。一方、実行のた め必要とされる個々のデータアイテムは主メモリから取出されてローカルメモリ 12a、12bおよび12cの適当な記憶位置でストアされており、その記憶位 置はジョブ待ち行列10dにおけるポインタによってアクセスされる。The symbol translation module 10C may be referenced by the waiting task module 10a. This is a table-top memory having various matrix storage locations. these A memory location is a chain of instructions held in the local memory of a processing element. and a list of symbols for the item. When each holding matrix is read, Symbols that refer to the item referenced by the symbol are A read access to a lookup table containing pointers to actual storage locations. Used as a dress. Initial processing of the object code string in Figure 1 At the end, the job queue 10e contains each created queue and its The created queue is assigned to each processing item for concurrent execution by tasks and pointers. elements Ila, 11b, and 11c. On the other hand, for execution The individual data items needed are retrieved from main memory and stored in local memory. 12a, 12b, and 12c at appropriate storage locations. The location is accessed by a pointer in job queue 10d.

オブジェクトコードの最初のループまたは実行の完了により、すべてのタスク処 理が完了されてしまうまで記号翻訳モジュール100からジョブ待ち行列10d へ以前に作り出された持ち行列を供給することによって、一連のループが実行さ れ得る。Completion of the first loop or execution of the object code completes all task processing. job queue 10d from symbol translation module 100 until processing is completed. A series of loops is executed by supplying the previously created holding matrix to It can be done.

第2図のジョブ持ち行列10dに待ち行列が常駐するときのそのフォーマットは 第3図に示されている。左から右へ読出される各フィールドは、乗算命令、加算 命令、減輝命令、および1.JおよびCフィールドに対するポインタが続くイン デックス命令である。これらは第1図における第1の持ち行列(Qo)に対応し 、そこでは8ビツトリテラルは各乗算および加算命令の一部となる。The format when a queue resides in the job holding queue 10d in Figure 2 is It is shown in FIG. Each field read from left to right has a multiplication instruction, an addition command, dimming command, and 1. An integer followed by pointers to the J and C fields. This is Dex's command. These correspond to the first holding matrix (Qo) in Figure 1. , where an 8-bit literal becomes part of each multiply and add instruction.

このようにして形成された待ち行列は、将来の実−行のため命令を保持するのみ ならず、スタック環境ならびにそのアドレスおよび実行されるべき次の峙ち行、 列の記憶位置を識別する。ステップごとに1つの持ち行列を利用可能処理エレメ ントに与えること以外、コード処理のため他のいかなる処理ステップも必要とさ れない。The queue thus formed only holds instructions for future execution. the stack environment and its address and next line to be executed, Identifies the storage location of the column. Processing element with one matrix available for each step No other processing steps are required to process the code other than providing the Not possible.

第2図の記号翻訳モジュール10Cは、第4図に詳細に示されている。第4図に 示されるように、このモジュールはテーブルルックアップ機構であり、持ち行列 記号テーブル16の列はつながれたタスクに対する記憶位置ならびに第2図の命 令リファレンスモジュール10bによって割当てられる記号名を表わし、また対 応する行は第2図の待機タスクモジュール10aによって割当てられる各待ち行 列番号を表わす。上述したように、記号翻訳モジュールにおけるこのようにしで 形成された待ち行列は、行なわれるべき計算の各一連のループに対し、第2図の ジョブ待ち行列10dに対する転送のため、ポインタテーブル17におけるポイ ンタをアクセス、する準備ができている。The symbol translation module 10C of FIG. 2 is shown in more detail in FIG. In Figure 4 As shown, this module is a table lookup mechanism and has a matrix The columns of the symbol table 16 indicate the memory locations for the connected tasks and the commands in Figure 2. represents the symbolic name assigned by the command reference module 10b and also represents the corresponding symbol name. The corresponding rows correspond to each waiting line assigned by the waiting task module 10a of FIG. Represents the column number. As mentioned above, this way in the symbol translation module The queue formed is for each series of loops of computations to be performed as shown in Figure 2. Pointer in pointer table 17 for transfer to job queue 10d the printer is ready for access.

第4図において、種々の記号は間接ローカルメモリリファレンスであり、したが ってそこにストアされたアイテムは異なったポインタを与えられ得るということ に注意されたい。このことは、2つの利点をもたらす。まず第1は、異なったポ インタを再ネーミングまたは割当てしてそれを表わすことによって、任意のデー タアイテムがローカルメモリ内の1つ以上の記憶位置にストアされるということ である。第2の利点は、任意の変数が1つの記憶位置にストアされてそのポイン タを変化することなくそこから出てい(ことができる一方、その変数に対して行 なわれる処理の結果が同一の記号名であるが異なったポインタを有する別の記憶 位置にストアされ得るということである。In Figure 4, the various symbols are indirect local memory references; That means items stored there can be given different pointers. Please be careful. This provides two advantages. Firstly, different points Any data can be created by renaming or assigning an interface to represent it. that the item is stored in one or more locations in local memory. It is. The second advantage is that any variable can be stored in one storage location and its pointer The data exits from there unchanged (while you can The result of the processing performed is another memory with the same symbolic name but a different pointer. This means that it can be stored in a location.

第2図の個々の処理ニレメン1〜は、第5図に示されている。要約すれば、それ らは複数のマイクロプログラム化されたマイクロプロセッサから形成されており 、マイクロプロセッサはインテル8086のような商業的に利用可能なものであ り、またはそれらはF aber等の米国特許第3,983.539号に開示さ れたカストマイズされたマイクロプログラム化されたプロレッザであってもよい 。個々のプロセッサは異なった関数を実行するようにされるので、それらはその 各関数を実行J−るのに必要とされるのみの論理回路を含む特別目的のマイクロ プロセッサであってもよい。The individual treated elms 1- of FIG. 2 are shown in FIG. In summary, that are formed from multiple microprogrammed microprocessors. , the microprocessor is a commercially available one such as the Intel 8086. or they are disclosed in Faber et al., U.S. Pat. No. 3,983.539. Can be customized micro-programmed proreza . Since individual processors are made to perform different functions, they A special-purpose microprocessor that contains only the logic circuitry needed to perform each function. It may be a processor.

各回路18は、演算論理ユニット、シフトユニット、乗算ユニット、インデキシ ングユニット、ストリングプロセッサ、およびデコードユニットである。さらに 、シーケンシングユニット19は第2図のジョブ持ち行列10dから命令を受け て、制御ストア2oにストアされたマイクロ命令をアクセスする。制御ストアか らのマイクロ命令は命令バスIBを介して各ユニットに供給され、ユニットによ って発生された任意の状態信号は状態バスCBを介して転送される。対応するロ ーカルメモリからのデータは、AバスABで受けられ、実行された結果はBバス BBに供給される。Each circuit 18 includes an arithmetic logic unit, a shift unit, a multiplication unit, an index a string processing unit, a string processor, and a decoding unit. moreover , the sequencing unit 19 receives instructions from the job holding matrix 10d in FIG. to access the microinstructions stored in the control store 2o. Control store? These microinstructions are supplied to each unit via the instruction bus IB, and are processed by the unit. Any status signals generated by the state bus CB are transferred via the status bus CB. Corresponding lo Data from the local memory is received on the A bus AB, and the executed results are sent to the B bus. Supplied to BB.

第1図に戻って、第2図の待機タスクモジュール10aによって受けられている コードストリングにおける種々の命令およびそのモジュールによって形成される より高レベルの命令またはタスクのより詳細な説明をここで行なう。Returning to FIG. 1, the waiting task module 10a of FIG. formed by various instructions and their modules in a code string A more detailed explanation of higher level instructions or tasks is now provided.

第1図の左欄に示されるように、コードストリングの最初取出し、8ビツト値、 および乗算命令である。それらは次のタスク、すなわち第1図の右欄の第1のタ スクによって示されるリテラル値をIに乗箒するタスク、にっながれている。処 理は、加算タスクおよび減算タスクに対し続けらツクのトップにおく命令であり 、インデックス命令はメモリ内にあるディスクリブタにおけるポインタを挿入す る結果となる。このようにして、第1の持ち行列。。が形成される。As shown in the left column of Figure 1, the first fetch of the code string, the 8-bit value, and a multiplication instruction. They are used for the next task, i.e. the first task in the right column of Figure 1. The task of multiplying I by the literal value indicated by place is the instruction placed at the top of the sequence for addition and subtraction tasks. , the index instruction inserts a pointer to a disc libter in memory. This results in In this way, the first holding matrix. . is formed.

Q、の配列は、名前呼出し命令の後命令N X L Vが実行されてインデック ス処理およびデータの取出しを生じるということ以外、同様である。このように して、第2の待ち行列Q1が形成される。第3の待ち行列Q2の配列において、 加算命令が存在し、この加算命令によって、スタックのトップにおける値を破壊 するメモリの破壊記憶(STOD)の前にAおよびBに対しこのように計算され た値が加算される。The array of Q is indexed after the instruction NXLV is executed after the name call instruction. are similar, except that they cause processing and data retrieval. in this way A second queue Q1 is thus formed. In the arrangement of the third queue Q2, There is an add instruction that destroys the value at the top of the stack. is calculated like this for A and B before the storage of memory destruction (STOD) The value added is added.

第1図の中央のブロック図かられかるように、Q2の最後の2つのタスクまたは つながれた命令の実行は、その値がローカルメモリにス1〜アされる計算Q。お よびQ、の結果を必要とする。その記憶位置およびそれらの各ローカルメモリは 、リファレンスが実際にそこにストア゛されているかどうかを示すだめのインデ ックスフラグに与えられる。As can be seen from the block diagram in the center of Figure 1, the last two tasks of Q2 or Execution of the linked instructions is a calculation whose value is stored in local memory. oh We need the results of and Q. Its storage locations and their respective local memory are , a temporary index indicating whether the reference is actually stored there. given to the xx flag.

この方法において、処理エレメントが同時的な方法で処理されるとき、Q2のル ーチンは必要な値が計算されかつローカルメモリにストアされてしまう前に第2 のまたは最終の加算タスクに達することが可能である。対応する処理エレメント はそれらの値がまだ利用可能でないということを検出し、その値が利用可能にな るまでそれらの記憶位置をアクセスし続りる。In this method, when the processing elements are processed in a concurrent manner, the rules of Q2 The process executes a second process before the required values are calculated and stored in local memory. It is possible to reach the or final addition task. Corresponding processing element detects that those values are not yet available, and when the values become available. It continues accessing those storage locations until it is reached.

第4の持ち行列またはQ3は、値Jを取出しそれに1を加算し、スタックのトッ プにおける値を残したままメモリ内の非破壊ストアを行なう前に、スタックのト ップにそσアドレスを挿入する。最後の4つの命令は、メモリがら値Kを取出し 、それを値J (LSEQ)と比較し、もし値Kが値Jよりも大きければ次の命 令、すなわち偽への分校により、プログラムカウンタが再ロードされ、そのルー チンが繰返される。一方、コードストリングにおける最後の命令は、ルーチンの 終了を生じる無条件分枝である。The fourth holding matrix, or Q3, takes the value J and adds 1 to it, and tops the stack. the stack before performing a non-destructive store in memory, leaving the values in the stack intact. Insert the σ address into the The last four instructions retrieve the value K from memory. , compare it with the value J (LSEQ), and if the value K is greater than the value J, then the next instruction command, i.e. branching to false, reloads the program counter and Ching is repeated. On the other hand, the last instruction in the code string is the routine's It is an unconditional branch that results in termination.

第6図は個々の待ち行列に対する待ち行列実行時間のタイミング図であり、特定 のタスクに対する各クロック時間は2つの番号によって表わされている。第1の 番号は実行されている特定のループまたはシーケンスを表わし、第2の番号は命 令を実行している特定の処理エレメントを表わす。持ち行列の配列の結果となる コードストリングの最初の伝送ならびにタスクの実行はほぼ17クロツク時間を 必要とし、一方一連のループは実行のため5クロック時間のみを必要とする。と いうのは、タスクはQTMおよびIRMにおいて完全に再処理される必要がない ので、個々の従属自由待ち行列が同時的に実行されるからである。Figure 6 is a timing diagram of queue execution times for individual queues; Each clock time for a task is represented by two numbers. first The number represents the particular loop or sequence being executed, the second number represents the command Represents a particular processing element that is executing an instruction. Resulting in an array of holding matrices The initial transmission of the code string and execution of the task takes approximately 17 clock hours. while a series of loops requires only 5 clock times to execute. and This is because tasks do not need to be completely reprocessed in QTM and IRM. This is because the individual dependent free queues are executed concurrently.

一般的に、待機タスクモジュールはタスク、これらのタスクの待機、待ら行列実 行、タグ予測および分校訂正に対する命令の同時的なステップを実行する。命令 基準モジコールは、再ネーミング、記号マネージメントおよび取替の機能を実行 する。記号翻訳モジュールは、並列アクセス、ポインタ割当およびタスク割当を 与える。小さな処理エレメントは、独特な処理エレメントが頻繁でないタスク実 行およびストリングの関数部分に対し用いられている間、頻繁なタスク実行のた め設けられる。第2図の直接リファレンスモジュール15は、ノンスタックリフ ァレンスの評価のため設置ノられる。In general, the waiting task module handles tasks, waiting for these tasks, and queue executions. Execute simultaneous steps of instructions for line, tag prediction and branch correction. order Reference module performs renaming, symbol management and replacement functions do. The symbol translation module supports parallel access, pointer allocation and task allocation. give. Small processing elements allow unique processing elements to perform infrequent tasks. While used for functional parts of rows and strings, it is useful for performing frequent tasks. It will be provided for. The direct reference module 15 of FIG. It is set up for evaluation of reference.

最後に コンパイルされたオブジェクトコードを受けてそのコードのシーケンスをより高 レベルのタスクに形成し、かつそれがオブジェクトコードストリングの前の実行 の結果を必要としないという意味において他の持ち行列と論理的に無関係である ようなタスクの待ち行列を形成する、データプロセッサのための機構が説明され てきた。この方法において、そのような待ち行列のシーケンスは、同時実行のた め、非従属処理エレメントに供給され得る。lastly Takes the compiled object code and converts that code sequence to a higher level. form into a level task, and it executes the object code string before is logically unrelated to other holding matrices in the sense that it does not require the result of A mechanism for a data processor to form a queue of tasks such as It's here. In this way, the sequence of such queues is and may be supplied to non-dependent processing elements.

記号翻訳テーブルが設けられて、それによってデータアイテムが参照され、その 記号はローカルメモリに対する任意のポインタを割当てられ、そのポインタは変 化されて、それによってデータアイテムは1つ以上のメモリ記憶位置に常駐する ことができ、またデータアイテムはそのアイテムに対する処理の結果が他の記憶 位置にストアされ得る一方でメモリ内に残ることができる。A symbol translation table is provided by which the data item is referenced and its A symbol can be assigned an arbitrary pointer to local memory, and that pointer cannot be changed. data items, such that the data items reside in one or more memory storage locations. A data item can also be stored in other stores as a result of operations on that item. It can remain in memory while being stored in a location.

この発明の〜実施例が説明されたが、請求の範囲に記載された発明の精神から逸 脱することなく変更および修正が可能であるということは当業者にとって明らか であろう。Embodiments of this invention have been described, but depart from the spirit of the claimed invention. It will be obvious to those skilled in the art that changes and modifications can be made without deviating from the Will.

凡 AT −fで、2 入力 9I一部 首2−ご −2−袋 −2旨e2冒 2ニ恣Σくの王 Σくの2 Σくのzくの  <の10 、 (%J□ −コー 国際調量報告Ordinary AT -f, 2 Input 9I part Neck 2 - Go - 2 - Bag - 2 effect e2 blasphemy 2 Ni Σ King of Kuno 2 Σ Kuno z Kuno <10, (%J□-Co international metrology report

Claims (1)

【特許請求の範囲】 1. オペレータおよびメモリアドレスを含む命令コードを実行するためのデー タ処理システムであって、論理的に非従属のストリングを形成し、続いて論理的 に従属性のオペレータを論理的に非従属の持ち行列に形成する手段と、 前記論理的に非従属の持ち行列をストアするストレージ前記持ち行列の別々のも のを個々に受ける複数の処理手段とを備えるシステム。 2、 前記形成手段は1.順次的な形態において前記命令コードを受けて、オペ レータが前の処理の結果を必要とせず従って論理的非従属性を示すときを決定し 、かつ前記論理的非従属性のストリングを形成しかつ続いて論理的に従属性のオ ペレータを論理的に非従属の待ち行列に形成する手段を含む、請求の範囲第1項 記載のシステム。 3、 前記データ処理システムは、主メモリを含み、前記メモリアドレスを受け かつ前記主メモリからデータを取出す主メモリアドレス手段をさらに含む、請求 の範囲第2項記載のシステム。 4、 前記処理手段の各々は、ローカルストレージを含み、前記主メモリに接続 されて、前記メモリにローカルメモリアドレスを転送し、それによって前記主メ モリが前記取出されたデータを前記ローカルメモリに転送することができるよう にするローカルストレージアドレス手段をさらに備える、請求の範囲第3項記載 のシステム。 5、 前記受信手段は、特定の論理的非従属性ち行列を形成するオペレータの対 応するストリングに前記ローカルメモリアドレスを与えるようにされている、請 求の範囲第4項記載のシステム。 6、 オペレータおよびメモリアドレスを含む順次的コードを受けかつ実行する ためのデータ処理システムにおける処理方法であって、前記システムは複数の処 理手段を含み、前記順次的コードを受け、 オペレータが論理的非従属性を示す前の処理の結果を必要としないときを決定し 、 論理的に非従属のストリングおよび後続の論理的に従属性のオペレータを論理的 に非従属の待ち行列に形成し、前記持ち行列の別々のものを、同時的実行のため 、異なった個々の処理手段に転送する方法。 7、 前記データ処理システムは主メモリを含み、主メモリアドレスを受けかつ 前記主メモリからデータを取出すことをさらに含む、請求の範囲第6項記載の方 法。 8、 前記処理手段の各々はローカルストレージを含み、ローカルメモリアドレ スを前記主メモリに転送し、それによって前記主メモリが前記取出されたデータ を前記口、−カルメモリに転送することができるようにすることをさらに含む、 請求の範囲第7項記載の方法。 9. 前記ローカルメモリアドレスを、特定の論理的非従属の待ち行列を形成す るオペレータの対応するストリングに与えることをさらに含む、請求の範囲第8 項記載の方法。 10、 前記データ処理システムはジョブ待ち行列を含み、オペレータの前記非 従属の持ち行列および対応するローカルメモリアドレスを、前記側々の処理手段 に対する後続の分配のため、前記ジョブ待ち行列に転送することをさらに含む、 請求の範囲廐9手記載の方法。[Claims] 1. Data for executing instruction code including operator and memory address a data processing system that forms logically independent strings and then means for forming dependent operators into a logically independent matrix; A storage for storing the logically independent holding matrices.A storage for storing the logically independent holding matrices. and a plurality of processing means each receiving a plurality of processing means. 2. The forming means is 1. In response to the instruction code in a sequential manner, the operation Determines when a factor does not require the results of previous operations and thus exhibits logical non-dependence. , and forming said logically independent string and subsequently forming said logically dependent string. Claim 1, further comprising means for forming operators into logically independent queues. System described. 3. The data processing system includes a main memory and receives the memory address. and further comprising main memory addressing means for retrieving data from said main memory. The system according to item 2 of the scope. 4. Each of the processing means includes local storage and is connected to the main memory. is used to transfer the local memory address to said memory, thereby memory so that the retrieved data can be transferred to the local memory. Claim 3 further comprising local storage address means for system. 5. The receiving means receives pairs of operators forming a specific logically independent matrix. said local memory address to a corresponding string. The system according to item 4 of the scope of demand. 6. Receive and execute sequential code including operators and memory addresses A processing method in a data processing system for receiving said sequential code; Determine when an operator does not need the results of a previous operation that exhibits logical nondependence. , Logically independent strings and subsequent logically dependent operators into non-dependent queues and separate ones of said queues for simultaneous execution. , methods of transfer to different individual processing means. 7. The data processing system includes a main memory, receives a main memory address, and receives a main memory address. 7. The method of claim 6, further comprising retrieving data from the main memory. Law. 8. Each of said processing means includes local storage and has a local memory address. transfer the retrieved data to the main memory, thereby causing the main memory to transfer the retrieved data to the main memory. further comprising: being capable of being transferred to said mouth--calm memory; The method according to claim 7. 9. the local memory addresses to form a specific logically independent queue; Claim 8 further comprising: providing a corresponding string of operators. The method described in section. 10. The data processing system includes a job queue, and the data processing system The dependent holding matrix and the corresponding local memory address are processed by the processing means of said sides. further comprising forwarding to the job queue for subsequent distribution to the job queue; The method described in claim 9.
JP50228083A 1982-06-08 1983-06-08 Concurrent processing elements for using dependent free codes Granted JPS59501131A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US386336 1982-06-08
PCT/US1983/000895 WO1983004443A1 (en) 1982-06-08 1983-06-08 Concurrent processing elements for using dependency free code

Publications (2)

Publication Number Publication Date
JPS59501131A true JPS59501131A (en) 1984-06-28
JPS6313216B2 JPS6313216B2 (en) 1988-03-24

Family

ID=22175250

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50228083A Granted JPS59501131A (en) 1982-06-08 1983-06-08 Concurrent processing elements for using dependent free codes

Country Status (1)

Country Link
JP (1) JPS59501131A (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS49122941A (en) * 1973-03-26 1974-11-25
JPS5011743A (en) * 1973-06-04 1975-02-06
JPS5023949A (en) * 1973-06-27 1975-03-14
JPS51130135A (en) * 1975-05-07 1976-11-12 Fujitsu Ltd Information processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS49122941A (en) * 1973-03-26 1974-11-25
JPS5011743A (en) * 1973-06-04 1975-02-06
JPS5023949A (en) * 1973-06-27 1975-03-14
JPS51130135A (en) * 1975-05-07 1976-11-12 Fujitsu Ltd Information processing system

Also Published As

Publication number Publication date
JPS6313216B2 (en) 1988-03-24

Similar Documents

Publication Publication Date Title
US4466061A (en) Concurrent processing elements for using dependency free code
US4468736A (en) Mechanism for creating dependency free code for multiple processing elements
US4794524A (en) Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit
US6542985B1 (en) Event counter
JP3461704B2 (en) Instruction processing system and computer using condition codes
US4297743A (en) Call and stack mechanism for procedures executing in different rings
US5280595A (en) State machine for executing commands within a minimum number of cycles by accomodating unforseen time dependency according to status signals received from different functional sections
US4791550A (en) Higher order language-directed computer
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US5197137A (en) Computer architecture for the concurrent execution of sequential programs
EP0378830B1 (en) Method and apparatus for handling multiple condition codes as for a parallel pipeline computer
EP0021399A1 (en) A method and a machine for multiple instruction execution
KR100346515B1 (en) Temporary pipeline register file for a superpipe lined superscalar processor
JPH04232532A (en) Digital computer system
KR0124812B1 (en) Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed utilizing independently accessed intermediate storage
US4771380A (en) Virtual vector registers for vector processing system
US5491829A (en) Method and system for indexing the assignment of intermediate storage buffers in a superscalar processor system
JPS6028015B2 (en) information processing equipment
US4456958A (en) System and method of renaming data items for dependency free code
US5506974A (en) Method and means for concatenating multiple instructions
JPS59501131A (en) Concurrent processing elements for using dependent free codes
Hollaar Specialized merge processor networks for combining sorted lists
US6185674B1 (en) Method and apparatus for reconstructing the address of the next instruction to be completed in a pipelined processor
JPS59501133A (en) Mechanism for generating dependent free code for multiprocessing elements
JPS59501132A (en) System and method for renaming data items for dependent free codes