JPS5931735B2 - Central processing unit for data processing systems - Google Patents
Central processing unit for data processing systemsInfo
- Publication number
- JPS5931735B2 JPS5931735B2 JP53132101A JP13210178A JPS5931735B2 JP S5931735 B2 JPS5931735 B2 JP S5931735B2 JP 53132101 A JP53132101 A JP 53132101A JP 13210178 A JP13210178 A JP 13210178A JP S5931735 B2 JPS5931735 B2 JP S5931735B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- memory
- subroutine
- instruction
- processing 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
Links
- 238000012545 processing Methods 0.000 title claims description 98
- 230000015654 memory Effects 0.000 claims description 122
- 230000004044 response Effects 0.000 claims description 20
- 238000012546 transfer Methods 0.000 description 30
- 238000006073 displacement reaction Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101100006960 Caenorhabditis elegans let-2 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Classifications
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】
本発明は一般にデジタルデータ処理システムに係り、特
に、かかるデータ処理システムに用いるための中央処理
装置に係る。DETAILED DESCRIPTION OF THE INVENTION The present invention relates generally to digital data processing systems, and more particularly to central processing units for use in such data processing systems.
デジタルデータ処理システムは3つの基本的な要素、即
ちメモリ要素と、入出力要素と、処理装置要素とを備え
ている。A digital data processing system has three basic elements: a memory element, an input/output element, and a processing unit element.
メモリ要素はアドレスできる記憶位置に情報を記憶する
。この情報はデータと、データを処理する命令とを含ん
でいる。処理装置要素はメモリ要素から情報の転送を行
なう。又、処理装置要素は入つて来る情報をデータ又は
命令として解釈する。命令は、処理装置によつて実行さ
るべきオペレーシヨンをコード化された形態で指定する
ところのオペレーシヨンコードを備えている。又、命令
は1つ或いはそれ以上のオペランドを指定する情報を備
えてもよい。この情報はオペランド指定子と称する。デ
ジタルデータ処理システムの処理装置要素は多数の命令
より成るプログラムによつてデータを処理する。Memory elements store information in addressable storage locations. This information includes data and instructions for processing the data. The processing unit element transfers information from the memory element. Processor elements also interpret incoming information as data or instructions. The instructions include an operation code that specifies in coded form the operation to be performed by the processing unit. An instruction may also include information specifying one or more operands. This information is called an operand specifier. Processor elements of a digital data processing system process data through programs consisting of a number of instructions.
このプログラムはメモリ要素に記憶される。又、メモリ
要素は特定の機能を実行するサブルーチッとして知られ
ている別のプログラムを備えてもよい。呼び出しルーチ
ンと指称されるプログラムは、サブルーチン呼び出し命
令を組み込むことによつてサブルーチンを利用すること
ができる。公知のデータ処理システムに用いられている
呼び出し命令には多数の形式がある。一般にこれらの呼
び出し命令は、サブルーチンのスタートアドレスと、サ
ブルーチンの実行を完了した時にこのサブルーチンが呼
び出しルーチンに制御を戻せる様にするための復帰情報
とを指定することを特徴とするものである。呼ぴ出しル
ーチンがサブルーチンに移る時には基本的な情報が与え
られるか又は保持されねばならない。This program is stored in a memory element. The memory elements may also contain other programs, known as subroutines, that perform specific functions. A program designated as a calling routine can utilize a subroutine by incorporating a subroutine calling instruction. There are many types of call instructions used in known data processing systems. Generally, these calling instructions are characterized by specifying the start address of the subroutine and return information that allows the subroutine to return control to the calling routine when the subroutine completes execution. When a calling routine moves into a subroutine, basic information must be provided or maintained.
例えば、サブルーチンを働かせる様な環境条件を作るこ
とが必要である。入力データを得そして出力データを送
出するためにサブルーチンにより用いられるアドレスが
サブルーチンに対する環境条件の1部として含まれる。
トラツプ可能化情報や割り込みルーチン情報を含むその
他の情報も保管されねばならない。公知のデータ処理シ
ステムは、サブルーチンに含まれた命令の制御の下で情
報を明確に転送することによつてこの環境条件を確立す
るのが通常である。又、呼び出しルーチンが呼び出し命
令を実行する時には処理装置の状態を保管することも必
要である。For example, it is necessary to create environmental conditions that allow the subroutine to work. The addresses used by the subroutine to obtain input data and send output data are included as part of the environmental conditions for the subroutine.
Other information must also be saved, including trap enablement information and interrupt routine information. Known data processing systems typically establish this environmental condition by explicitly transferring information under the control of instructions contained in subroutines. It is also necessary to save the state of the processing unit when the calling routine executes the calling instruction.
これはサブルーチンによつて用いられるかもしれない特
定レジスタの情報をメモリ位置に転送すること、並びに
サブルーチンに対してアーギユメントリストの第1位置
を指定するアーギユメントリストポインタの内容をメモ
リ位置に転送することを含む。公知のシステムでは、サ
ブルーチンの命令を用いることによつて処理装置の状態
も明確に保管される。それ故、処理装置の状態を記憶し
たりサブルーチンの環境を確立したりするための命令に
サブルーチンの1部を当てねばならない。This transfers information in specific registers that may be used by the subroutine to a memory location, as well as the contents of an argument list pointer that specifies the first position in the argument list for the subroutine. including transferring to a location. In known systems, the state of the processing unit is also explicitly saved through the use of subroutine instructions. Therefore, part of the subroutine must be devoted to instructions for storing the state of the processing unit and establishing the environment of the subroutine.
更に、サブルーチンの終りには更に別の命令を用いるこ
とによつて機械の状態を再び明確に確立しなければなら
ない。これらの明確な情報転送は全てハウスキーピング
乃至はオーバーヘツドの形態で行なわれる。このオーバ
ーヘツド乃至はハウスキーピング機能を実行するための
特定の命令をサブルーチンに含ませる必要性によつてサ
ブルーチンが複雑化される。その上、サブルーチンによ
り必要とされるメつモリ位置の数も増加するばかりか、
各命令を別々に実行しなければならないので、サブルー
チンを実行するに要する全時間にも影響を及ぼすことに
なる。Moreover, at the end of the subroutine, the state of the machine must be re-established explicitly by using further instructions. All of these explicit information transfers occur in the form of housekeeping or overhead. The need for subroutines to include specific instructions to perform this overhead or housekeeping function complicates the subroutines. Moreover, the number of memory locations required by subroutines not only increases;
Since each instruction must be executed separately, the overall time required to execute the subroutine will also be affected.
そこで本発明の目的は、呼び出しルーチンからサブルー
チンへの移行動作を簡単化する様に呼び出し命令と該命
令に応答する中央処理装置とを提供することである。SUMMARY OF THE INVENTION Accordingly, it is an object of the present invention to provide a calling instruction and a central processing unit that responds to the instruction so as to simplify the transition operation from a calling routine to a subroutine.
本発明の別の目的は、サブルーチンへ動作を移行する命
令であつて、中央処理装置の状態を自動的に記憶し且つ
この状態を容易に復帰できる様にする命令を提供するこ
とである。Another object of the present invention is to provide an instruction for transferring operation to a subroutine that automatically stores the state of the central processing unit and allows easy restoration of this state.
本発明の更に別の目的は、サブルーチンの環境を自動的
に確立し且つ呼び出しルーチンの環境を再確立する様な
サブルーチン呼び出し命令を提供することである。Yet another object of the present invention is to provide a subroutine call instruction that automatically establishes the subroutine's environment and reestablishes the calling routine's environment.
本発明によれば、サブルーチン呼び出し命令は2つのオ
ペランド指定子を備えている。According to the invention, a subroutine call instruction has two operand specifiers.
1方の指定子はアーギユメントリストの第1の位置を識
別しそして他方の指定子はサブルーチンの第1位置を識
別する。One specifier identifies the first position in the argument list and the other specifier identifies the first position in the subroutine.
この呼び出し命令に応答して中央処理装置は所定のレジ
スタの内容をメモリに記憶することによつてこの呼び出
し命令があつた際の中央処理装置の状態を自動的に記憶
する。更に、中央処理装置はサブルーチンに対するアー
ギユメントリスト指示体を作り且つサブルーチンを働か
せる別の条件を確立することによつてサブルーチンの環
境を自動的に確立する。サブルーチンの実行が終わると
、復帰命令が実行される。中央処理装置はこの命令に応
答し、サブルーチンへ移行した間に記憶された情報を用
いて、呼び出しルーチンの環境及び状態を再確立する。
本発明は特許請求の範囲に特に指定する。In response to this call command, the central processing unit automatically stores the state of the central processing unit at the time of this call command by storing the contents of a predetermined register in memory. Additionally, the central processing unit automatically establishes the subroutine's environment by creating argument list indicators for the subroutine and establishing other conditions under which the subroutine operates. When the execution of the subroutine ends, a return instruction is executed. The central processing unit responds to this instruction and uses information stored during the transition to the subroutine to reestablish the environment and state of the calling routine.
The invention is particularly defined in the claims.
本発明の上記目的及び他の目的並びに効果は添付図面を
参照とした以下の詳細な説明より理解されよう。一般的
な説明第1図を参照すれば、本発明によるデータ処理シ
ステムの基本的な要素は中央処理装置10と、メモリ装
置11と、入出力装置12とを備えている。The above objects and other objects and advantages of the present invention will be understood from the following detailed description with reference to the accompanying drawings. General Description Referring to FIG. 1, the basic elements of a data processing system according to the present invention include a central processing unit 10, a memory device 11, and an input/output device 12.
同期バツクプレーン相互接続体(SBl)14が中央処
理装置10とメモリ装置11と入出力装置12とを相互
接続している。中央処理装置10はオペレータのコンソ
ール15と、SBIインターフエイス・メモリカツシユ
回路(MemOrycachecircuit)16と
、アドレス変換バツフア回路17と、命令バツフア回路
18と、データ路.内部レジスタ回路19とを備えてい
る。A synchronous backplane interconnect (SBl) 14 interconnects central processing unit 10, memory devices 11, and input/output devices 12. The central processing unit 10 includes an operator's console 15, an SBI interface memory cache circuit 16, an address conversion buffer circuit 17, an instruction buffer circuit 18, and a data path. and an internal register circuit 19.
SBIインターフエイス・メモリカツシユ回路16はS
Bll4を経てメモリ装置11及び入出力装置12へ情
報を転送するのに必要なインターフエイス回路をなす。
又、この回路16はメモリからの全てのデータと、バツ
フア回路17からの全てのアドレス変換体とを受け取る
。この回路16は連想メモリ即ちカツシユメモリを備え
ている。いつでもデータはデータ路・内部レジスタ回路
19から回路16のカツシユメモリに書き込まれ、又、
このデータはメモリ装置11の対応位置にも書き込まれ
る。中央処理装置10のこの特定実施例は仮想アドレス
で作動する。SBI interface memory cutter circuit 16 is S
It forms an interface circuit necessary to transfer information to the memory device 11 and input/output device 12 via the BLL4.
This circuit 16 also receives all data from the memory and all address translation from the buffer circuit 17. This circuit 16 includes an associative memory or cache memory. At any time data is written from the data path/internal register circuit 19 to the cutout memory of circuit 16, and
This data is also written to the corresponding location in the memory device 11. This particular embodiment of central processing unit 10 operates with virtual addresses.
アドレス変換バツフア回部17はこの仮想アドレスを物
理的なアドレスに変換するが、この物理的なアドレスと
は、回路16がその対応位置からのデータを含んでいる
かどうかを決定するため、或いは又メモリ装置11の実
際の対応位置からの転送を開始するため回路16によつ
て使用されるアドレスである。命令バツフア回路18は
、以下に述べる様に、カツシユメモリから直接検索され
た又はメモリ装置11から検索された命令又はその1部
を記憶するための手段を備えている。オペレータのコン
ソール15はオペレータのインターフエイスとして働く
。The address translation buffer circuit 17 translates this virtual address into a physical address, which is used to determine whether the circuit 16 contains data from its corresponding location or This is the address used by the circuit 16 to initiate the transfer from the actual corresponding location of the device 11. The instruction buffer circuit 18 includes means for storing instructions, or portions thereof, retrieved directly from the cache memory or retrieved from the memory device 11, as described below. Operator's console 15 serves as the operator's interface.
これはオペレータがデータを検査したり保管したり、中
央処理装置10の作動を停止したり、或いは一連のプロ
グラム命令によつて中央処理装置の作動を進めたりする
ことができる様にする。又、オペレータコンソールはオ
ペレータがブートストラツプ手順を介してシステムの作
動を開始゛したり全データ処理システムに於いて色々な
診断手順を実行したりもできる様にする。第1図に於い
てメモリ装置11は2つのメモリ制御器20A及び20
Bを備えている。This allows the operator to inspect and archive data, halt operation of central processing unit 10, or advance operation of central processing unit 10 through a series of program instructions. The operator console also allows the operator to initiate system operation via a bootstrap procedure and to perform various diagnostic procedures on the entire data processing system. In FIG. 1, the memory device 11 includes two memory controllers 20A and 20.
It is equipped with B.
各々のメモリ制御器は複数個のメモリ配列体に接続され
ている。特に、メモリ制御器20Aはメモリ配列体21
Aに接続され、メモリ制御器20Bはメモリ配列体21
Bに接続される。メモリ装置11の作動については米国
特許出願第845,415号に詳細に示されている。色
々な形式の入出力装置12が示されている。Each memory controller is connected to multiple memory arrays. In particular, the memory controller 20A is the memory array 21
A, the memory controller 20B is connected to the memory array 21
Connected to B. The operation of memory device 11 is described in detail in US patent application Ser. No. 845,415. Various types of input/output devices 12 are shown.
入出力バスアダプタ22はテレタイプの様な種々の入出
力(1/o)装置23をバス14に相互接続する。I/
0バスアダプタ22とI/o装置23との相互接続、作
動並びに信号転送については米国特許第3,710,3
24号に開示されている。2つの別のl/o装置12が
データ処理システムの2次記憶装置をなし、これらは2
次記憶装置バスアダプタ24と複数個のデイスク駆動装
置25とを備えている。I/O bus adapter 22 interconnects various input/output (1/O) devices 23, such as teletypes, to bus 14. I/
The interconnection, operation, and signal transfer between the 0 bus adapter 22 and the I/O device 23 is described in U.S. Patent No. 3,710,3.
It is disclosed in No. 24. Two separate I/O devices 12 provide secondary storage for the data processing system;
A secondary storage device bus adapter 24 and a plurality of disk drives 25 are provided.
又、2次記憶装置バスアダプタ26及びテープ駆動装置
27も示されている。2次記憶装置バスアダプタ24及
び26とそれらの各々のデイスク駆動装置25及びテー
プ駆動装置27との相互接続については米国特許第3,
999,163号に開示されている。Also shown are secondary storage bus adapter 26 and tape drive 27. The interconnection of secondary storage bus adapters 24 and 26 with their respective disk drives 25 and tape drives 27 is described in U.S. Pat.
No. 999,163.
前記米国特許出願第845,415号にはSBIl4を
介して各要素の相互作用について示されている。The aforementioned US Patent Application No. 845,415 shows the interaction of each element via SBIl4.
これらの相互作用について概略的に述べ且つ本発明のこ
の特定実施例によつて処理できるデータ項目又は群の指
称を含む特定の用語を定義することが、以下の説明を理
解する上での助けとなろう。基本的な、或いは最も基本
的な情報群はバイトである。これが第2A図に示されて
おり、そして本発明のこの特定実施例に於いては8ビツ
トより成る。情報のサイズが次第に大きくなる順に述べ
ると、次の情報群はワードである。ワードは2バイトよ
り成るものとして第2B図に示されている。第2C図に
は、2つの連続したパワー即ち4つの連続したバイトよ
り成るV1長ワード!1が示されている。第2D図には
、2つの連続した長ワード即ち4つの連続したワード即
ち8つの連続したバイトより成る14倍ワード11が示
されている。SBIl.4を経てのいかなる情報転送も
長ワードを含む。SBIl4は時分割マルチプレクス式
のものであり、情報及び制御信号を送るための信号路を
備えている。It may be helpful in understanding the following description to generally describe these interactions and to define certain terms, including designations for data items or groups that can be processed by this particular embodiment of the invention. Become. The basic or most basic information group is a byte. This is shown in FIG. 2A and consists of 8 bits in this particular embodiment of the invention. In order of increasing information size, the next group of information is words. A word is shown in Figure 2B as consisting of two bytes. FIG. 2C shows a V1 length word consisting of two consecutive powers or four consecutive bytes! 1 is shown. FIG. 2D shows a 14x word 11 consisting of two consecutive long words or four consecutive words or eight consecutive bytes. SBIl. Any information transfer via 4 will involve long words. SBI14 is time division multiplexed and includes signal paths for sending information and control signals.
本発明に関しては情報が制御情報とデータを備えている
。制御情報はデータ処理のための基礎をなし且つ制御を
行なうのに用いられる情報であり、データはプログラム
で作られた情報であり、処理自身の対称である。SBI
に接続される各々の装置をネクサス(連結装置)と称す
る。In terms of the present invention, information comprises control information and data. Control information is information that forms the basis for data processing and is used to perform control, and data is information created by a program and is the object of the processing itself. SBI
Each device connected to the network is called a nexus (coupling device).
第1図に示した特定システムは6つのネクサスを備えて
いる。ネクサスは情報交換中のその機能に関して更に定
義される。2つのネクサス間で情報を交換するには少な
くとも2回のSBIトランザクシヨンが必要である。The particular system shown in FIG. 1 includes six nexuses. A nexus is further defined with respect to its function during information exchange. At least two SBI transactions are required to exchange information between two nexuses.
第1のトランザクシヨン中に1つのネクサスが送信コマ
ンダネクサスとしてコマンド及びアドレス情報を全ての
ネクサスに送信する。このネクサスはSBIl4を駆動
するので送信ネクサスと呼ばれ且つコマンド及びアドレ
ス情報を送信するのでコマンダネクサスと称する。この
トランザクシヨン中にはその他の全てのネクサスが受信
ネクサスである。然し乍ら、アドレス情報に応答するの
は1つの受信ネクサスたけである。このネタサスがレス
ポンダネクサスであり、これはコマンダネクサスがコマ
ンド及びアドレス情報を送信した後に一定の間隔でその
情報を受信したという確認情報を送信する。従つて中央
処理装置10がメモリ制御器20Aからデータを検索す
る必要がある場合には、中央処理装置10がコマンダネ
クサスとなつて読み取りコマンド及びアドレスを送信し
、これに対してメモリ制御器20Aが先ず受信ネクサス
として、次いでレスポンダネクサスとして応答する。或
る時間の後、メモリ制御器20Aは検索したデータを中
央処理装置10へ送出する用意ができる。During the first transaction, one nexus acts as the sending commander nexus and sends commands and address information to all nexuses. This nexus is called a transmission nexus because it drives the SBI14, and it is called a commander nexus because it sends commands and address information. All other nexuses during this transaction are receiving nexuses. However, only one receiving nexus responds with address information. This netasus is the responder nexus, which after the commander nexus sends command and address information, sends confirmation at regular intervals that it has received that information. Therefore, when the central processing unit 10 needs to retrieve data from the memory controller 20A, the central processing unit 10 acts as a commander nexus and sends a read command and address, in response to which the memory controller 20A retrieves data. It responds first as a receiving nexus and then as a responder nexus. After some time, memory controller 20A is ready to send the retrieved data to central processing unit 10.
前記特許出願に述べられた様にメモリ制御器20AはS
BIl4の制御を得ようとする。制御を得ると、メモリ
制御器20Aは送信レスポンダネクサスとなり、要求さ
れたデータをSBIl4を経て中央処理装置10へ転送
する。このトランザクシヨン中は中央処理装置10が受
信コマンダネクサスである。2つのネクサス間のいかな
る情報交換に対しても同様のトランザクシヨンが行なわ
れるが、メモリ制御器は通常はレスポンダネクサスとし
て働くだけでありそして中央処理装置は通常はコマンダ
ネクサスとして働くだけである。As stated in the aforementioned patent application, the memory controller 20A is
Attempts to gain control of BIl4. Upon gaining control, memory controller 20A becomes a transmit responder nexus and transfers the requested data to central processing unit 10 via SBI14. During this transaction, central processing unit 10 is the receiving commander nexus. Similar transactions occur for any information exchange between two nexuses, but the memory controller typically only acts as a responder nexus and the central processing unit typically only acts as a commander nexus.
本発明の目的として、代表的な情報交換は、命令やオペ
ランド指定子や関連情報やデータを中央処理装置10に
転送すること、並びに処理されたデータをメモリ装置1
1に戻すことを含むということが明らかであろう。SB
Iインターフエイス・メモリカツシユ回路16は、この
言葉どうりにカツシユ即ち連想メモリを備えている。For purposes of the present invention, typical information exchange involves transferring instructions, operand specifiers, and related information and data to central processing unit 10 and processing processed data to memory device 10.
It will be clear that this includes reverting to 1. S.B.
The I-interface memory cutter circuit 16 is, as the term suggests, provided with a cutter or associative memory.
中央処理装置10へ情報を転送フするためには、このカ
ツシユメモリが必要な情報を既に含んでいるかどうかを
決定するために先ず初めにこのカツシユメモリが質問さ
れる。To transfer information to central processing unit 10, this cutlet memory is first interrogated to determine whether it already contains the required information.
必要な情報を既に含んでいれば、メモリ装置11との情
報交換は不要である。必要な情報を含んでいなければ、
SBIインターフエイス回路は4倍ワードを含むメモリ
読み取り動作を開始する。この情報はそれに対するメモ
リの物理的なアドレスと共にカツシユメモリに転送され
る。同時に、この情報は命令が転送された場合には命令
バツフア回路18に送られ、或いは別の情報が転送され
た場合にはデータ路・内部レジスタ回路19に送られる
。中央処理装置10が情報をメモリ装置11に戻す場合
には、この情報をカツシユメモリに転送する。そしてS
BIインターフエイス・メモリカツシユ回路16は先ず
初め必要なコマンド及びアドレス情報を、次いでデータ
を送るために必要なSBIトランザクシヨンを開始する
。これらのトランザクシヨンの詳細については米国特許
出願第845,415号に開示されている。If the necessary information is already included, there is no need to exchange information with the memory device 11. If it does not contain the necessary information,
The SBI interface circuit initiates a memory read operation involving a quadruple word. This information is transferred to the cutlet memory along with its physical address in memory. At the same time, this information is sent to the instruction buffer circuit 18 if an instruction is transferred, or to the data path and internal register circuit 19 if other information is transferred. When the central processing unit 10 returns information to the memory device 11, it transfers this information to the cutlet memory. and S
The BI interface memory cache circuit 16 first initiates the necessary command and address information and then the necessary SBI transactions to send the data. Details of these transactions are disclosed in US Patent Application No. 845,415.
これらの詳細を理解しなくても本発明を理解できよう。
第3図は中央処理装置10の一般化されたプロツク図を
示している。The invention may be understood without understanding these details.
FIG. 3 shows a generalized block diagram of central processing unit 10.
又、第3図はオペレータのコンソール15、SBIl4
、並びにSBIインターフエイス・メモリカツシユ回路
16とアドレス変換バツフア回路17と命令バツフア回
路18とを構成するその他の回路を示している。特に、
中央処理装置10はクロツク信号発生器30により確立
されたタイミングの下で作動する。特定のタイミングに
ついてはフローチヤートに関連した以下の説明により明
らかとなろう。RBインターフエイス・メモリカツシユ
回路16はSBIl4及び物理アドレス(PA)バス3
2に接続されたSBI制御回路31を備えている。PA
バス32はデータカツシユ回路33及び変換バツフア3
4に接続される。変換バツフア34は仮想アドレス(A
)情報及びその他の制御情報を物理アドレスに変換し、
この物理アドレスはSBI制御器31及びデータカツシ
ユ回路33に同時に送られる。データカツシユ回路33
からのデータ或いは又SBI制御器31を通るSBll
4のその他の位置からのデータは、メモリデータ(MD
)バス35を経て中央処理装置10の他の要素に送られ
る。これらの装置にはデータ路36、命令バツフア゜デ
コード回路37が含まれる。マイクロプログラム制御(
UPC)バス38は命令バツフア・デコード回路37か
らプログラム制御記憶回路40へ信号を送る。Also, FIG. 3 shows the operator's console 15, SBIl4
, as well as other circuits constituting the SBI interface memory cache circuit 16, address translation buffer circuit 17, and instruction buffer circuit 18. especially,
Central processing unit 10 operates under timing established by clock signal generator 30. The specific timing will become clear from the description below in conjunction with the flowchart. RB interface memory cutout circuit 16 connects SBI14 and physical address (PA) bus 3.
The SBI control circuit 31 is connected to the SBI control circuit 2. P.A.
The bus 32 is connected to a data cache circuit 33 and a conversion buffer 3.
Connected to 4. The conversion buffer 34 converts the virtual address (A
) information and other control information into physical addresses;
This physical address is sent to the SBI controller 31 and data cache circuit 33 at the same time. Data cutter circuit 33
data from SBll or alternatively passes through the SBI controller 31
Data from other locations in 4 is stored in memory data (MD
) to other elements of central processing unit 10 via bus 35. These devices include a data path 36 and an instruction buffer decode circuit 37. Microprogram control (
The UPC bus 38 carries signals from the instruction buffer decode circuit 37 to the program control storage circuit 40.
この時プログラム制御記憶回路40は種々の制御信号を
CSバス41に発生し、このバスは変換バツフア34、
データ路36、命令バツフア・デコーダ37、及びトラ
ツプ一割り込み裁定回路42に信号を送る。これらの回
路及びオペレータのコンソール15は命令データ(ID
)バス43を経てマイクロシーケンサ44と通信し、マ
イクロケーシンサ44はプログラム制御記憶回路40に
記憶されたマイクロ命令に応答して作動シーケンスを制
御する。マイクロシーケンサ44は命令を得るための検
索状態を確立する。検索さるべき次の命令の始めのアド
レスを指定するプログラムカウントはデータ路36から
変換バツフア34を経てPAバス32に通過する。デー
タカツシユ回路33がその指定された物理アドレスに対
応する位置に有効情報を含んでいる場合は、MDバス3
5を経て命令バツフア・デコード回路37にデータを送
る。命令バツフア・デコード回路37が命令をデコード
する時は、マイクロシーケンサ44が、変換バツフア3
4に別の情報を転送する別のデータ路を確立し、それに
よりデータカツシユ回路33からデータ路36のレジス
タに別のデータを転送するか、或いはメモリ装置11又
はSBIl4のその他のメモリ位置から検索を行なつた
後に、SBI制御器31からデータ路36のレジスタに
別のデータを転送する。物理的にアドレスされた位置に
データを転送することを命令が要求する場合には、マイ
クロプロセツサ44が、変換バツフア34に信号を転送
するに必要なデータ路を確立し、それにより物理的なア
ドレスを形成し、且つ又データカツシユ回路33及びS
BI制御器31に同時にデータを転送する。この様な転
送中にはSBI制御器31が指定のメモリ位置との情報
交換を開始する。第4図は第3図に示した中央処理装置
10によつて処理することのできる代表的な命令を示し
ている。At this time, the program control storage circuit 40 generates various control signals on the CS bus 41, which is connected to the conversion buffer 34,
It signals data path 36, instruction buffer decoder 37, and trap-to-interrupt arbitration circuit 42. These circuits and the operator's console 15 provide instruction data (ID
) communicates via bus 43 with microsequencer 44, which controls the operating sequence in response to microinstructions stored in program control storage circuit 40; Microsequencer 44 establishes a search state for obtaining instructions. A program count specifying the starting address of the next instruction to be retrieved is passed from data path 36 through translation buffer 34 to PA bus 32. If the data cutter circuit 33 contains valid information at the location corresponding to the designated physical address, the MD bus 3
5, the data is sent to the instruction buffer/decode circuit 37. When the instruction buffer/decode circuit 37 decodes an instruction, the microsequencer 44 converts the conversion buffer 3
4, thereby transferring additional data from data cache circuit 33 to registers on data path 36, or retrieving from memory device 11 or other memory locations in SBI14. After that, another data is transferred from SBI controller 31 to a register on data path 36. If an instruction requires data to be transferred to a physically addressed location, microprocessor 44 establishes the data path necessary to transfer the signal to conversion buffer 34, thereby The data cache circuit 33 and S
Data is transferred to the BI controller 31 at the same time. During such transfer, SBI controller 31 initiates information exchange with the designated memory location. FIG. 4 shows typical instructions that can be processed by central processing unit 10 shown in FIG.
第4図の上部に示した命令は1バイトの長さとして示さ
れたオペレーシヨンコード50を含んでいる。然し乍ら
、中央処理装置10は多バイトのオペレーションコート
を処理することもできるということが以下の説明より明
らかとなろう。この特定の命令に於いては、3つのオペ
ランド指定子51,52,53がオペレーシヨンコード
の後に順に続いている。オペランド指定子51及び52
の各々は1バイトより成り、オペランド指定子53は2
バイトより成る。lバイトのオペランド指定子のフオー
マツトも第4図に示されている。このオペランド指定子
は2つのフイールドより成る。その高位ビツトはレジス
タモードフイールドを構成しそしてその下位ビツトはレ
ジスタアドレスフイールドを構成する。レジスタアドレ
スフイールドは、第3図に示されたデータ路回路36に
位置され且つ第5図に詳細に示された特定のレジスタを
指定する。この特定の実施例に於いては、1バイトが8
ビツトより成り、従つてレジスタモードフイールド及び
レジスタアドレスフイールドの各々に4ビツトづつ利用
でき、それによりオペランド指定子によつて16個の汎
用レジスタのうちの1つをアドレスすることができる。
レジスタモードフイールド54の2つの上位ビツトが零
であれば(レジスタモード0乃至3)、オペランド指定
子51は10進数のO乃至63を表わす6ビツトまでの
データ値を構成できるオペランド即ちリテラルを備えて
いる。The instruction shown at the top of FIG. 4 includes an operation code 50 shown as one byte long. However, it will be clear from the following description that central processing unit 10 is also capable of processing multi-byte operation codes. In this particular instruction, three operand specifiers 51, 52, 53 follow the operation code in sequence. Operand specifiers 51 and 52
each consists of one byte, and the operand specifier 53 consists of two bytes.
Consists of bytes. The format of the l-byte operand specifier is also shown in FIG. This operand specifier consists of two fields. Its high order bits constitute the register mode field and its low order bits constitute the register address field. The register address field specifies a particular register located in the data path circuit 36 shown in FIG. 3 and shown in detail in FIG. In this particular embodiment, one byte is 8
There are four bits available in each of the register mode field and the register address field, so that one of the 16 general purpose registers can be addressed by the operand specifier.
If the two most significant bits of register mode field 54 are zero (register mode 0-3), operand specifier 51 comprises an operand or literal that can constitute a data value of up to 6 bits representing decimal numbers 0 through 63. There is.
オペランド指定子53のレジスタモードフイールド54
Aに示された様に、レジスタモードフイールド54が1
0進数の4を含む場合には、インデツクスモードが指定
される。Register mode field 54 of operand specifier 53
As shown in FIG.
If the decimal number 4 is included, index mode is specified.
レジスタモードフイールド54Aの様なレジスタモード
フイールドがインデツクスアドレスモードを指定する時
、それに対応するレジスタフイールド55Aは、オペラ
ンド指定子を処理する際にインデツクスレジスタとして
使用さるべき汎用レジスタの1つを指定する。2次オペ
ランド指定子はインデツクスアドレス動作の命令に含ま
れる。When a register mode field, such as register mode field 54A, specifies an index address mode, the corresponding register field 55A specifies one of the general purpose registers to be used as the index register when processing the operand specifier. do. Secondary operand specifiers are included in instructions for index address operations.
この2次オペランド指定子は指定されたインデツクスレ
ジスタの内容を加算すべきベースアドレスを与える。イ
ンデツクスアドレス動作については以下で詳細に説明す
る。レジスタモードフイールド54がVV5lWを含ん
だ時には、レジスタモードアドレス動作が指定される。This secondary operand specifier provides the base address to which the contents of the specified index register are to be added. Index address operations are discussed in detail below. When register mode field 54 contains VV5lW, register mode address operation is designated.
このモードに於いてはレジスタフイールドによりアドレ
スされた汎用レジスタがオペランドを含む。レジスタモ
ード6,7及び8の各々に対しては、指定されたレジス
タがオペランドのメモリアドレスを含む。In this mode, the general purpose register addressed by the register field contains the operand. For each of register modes 6, 7, and 8, the designated register contains the memory address of the operand.
モード6に於いては、指定されたレジスタがオペランド
のアドレスを含む。レジスタモード7に於いては、指定
されたレジスタの内容が、アドレスを確認する前に先ず
減少され、そしてモード8に於いては指定されたレジス
タを用いてアドレスを決定した後にその指定されたレジ
スタの内容が増加される。レジスタモード9はレジスタ
モード8に対応しているが、それらの相違点は、指定さ
れたレジスタの内容が、オペランド自身ではなくてオペ
ランドのアドレスを見い出すところのメモリアドレスを
指定するという点である。モード10乃至15は全て変
位モードである。変位モードに於いては、変位値が指定
レジスタの内容に加算されてオペランドアドレスを得る
。然して変位値はモード10,12及び14に於いては
各々バイト、ワード又は長ワードを構成するものである
。モード11,13,15に於いても対応する作動が行
なわれるが、それらの相違点は変位値とレジスタの内容
との和が、オペランドのアドレスを見い出すことのでき
るメモリアドレスを識別するという点である。前記モー
ド8乃至15の各々に於いて、オペランド指定子のレジ
スタフイールド55はプログラムカウンタを含んだ汎用
レジスタを指定することができる。In mode 6, the designated register contains the address of the operand. In register mode 7, the contents of the specified register are first decremented before checking the address, and in mode 8, the contents of the specified register are decremented after determining the address using the specified register. The content of will be increased. Register mode 9 corresponds to register mode 8, but the difference between them is that the contents of the specified register specify the memory address where the address of the operand is to be found, rather than the operand itself. Modes 10 to 15 are all displacement modes. In displacement mode, the displacement value is added to the contents of the designated register to obtain the operand address. Thus, the displacement values constitute bytes, words, or long words in modes 10, 12, and 14, respectively. Corresponding operations occur in modes 11, 13, and 15, except that the sum of the quantile and the contents of the register identifies the memory address at which the address of the operand can be found. be. In each of modes 8 through 15, the register field 55 of the operand specifier can specify a general-purpose register containing a program counter.
特定の説明
1 初期的な命令の処理
第5図及び6A図はデータ路36及び命令バツフア・デ
コード回路39を詳細に示している。Specific Description 1 Initial Instruction Processing Figures 5 and 6A show data path 36 and instruction buffer decode circuitry 39 in detail.
この特定実施例の或る基本的な作動特性は中央処理装置
10の性能を最適化するということである。本発明を理
解するのにこれらの作動を詳細に知る必要はなく、従つ
て概略的に説明する。第6A図を参照すれば、命令バツ
フア・デコード回路37は8つの連続したバイトを記憶
する命令バツフア60を備えている。この命令バツフア
60への転送は命令バツフア制御回路61からの信号に
応答して行なわれる。命令バツフア60の各バイト位置
は有効性のビツト位置を含んでおり、これはそのバイト
位置の残りの位置にあるデータが有効であるかどうかを
示している(即ち、この有効性のビツト位置はそのバイ
トがもはや必要とされなくフなるとクリアされる)。One basic operating characteristic of this particular embodiment is that it optimizes the performance of central processing unit 10. It is not necessary to know these operations in detail to understand the invention, and therefore a general description is provided. Referring to FIG. 6A, instruction buffer decode circuit 37 includes an instruction buffer 60 that stores eight consecutive bytes. This transfer to command buffer 60 is performed in response to a signal from command buffer control circuit 61. Each byte position of instruction buffer 60 contains a validity bit position, which indicates whether the data in the remaining positions of that byte position is valid (i.e., this validity bit position is Cleared when the byte is no longer needed).
特定の1つ或いはそれ以上のバイト位置のデータがもは
や有効でないことをこの有効性のビツトが指示する場合
には、命令バツフア制御回路61が1BREQ信号を発
生し、この信号はデータカツシユ回路33又はSBI制
御器31からMDバス35を経て命令バツフア60へ至
る情報の転送を要求する。命令バツフア制御回路61の
その他の回路は無効データを持つた最高位のバイト位置
を検出し、そして高位のバイトをこれらのバイト位置に
シフトする。これらの転送中に全ての高位バイトのデー
タが変更される。すなわち、命令バツフア制御器61は
、命令バツフア60の有効バイトを、高位のバイト位置
から、一連の命令の無効バイトすなわち既に使用されデ
コードされたバイトを有するより低位のバイト位置へと
シストさせ、且つ、命令バツフア60の高位端ではシフ
トされたバイトの代りに新しい命令バイトを挿入させる
。この命令バツフア60は、フアーストインーフアース
トアウト(先入れ先出し)バツフアに類似しているが、
オペレーシヨンコードは、常に、バツフアの最下位バイ
ト位置に記憶されており、オペランド指定子のバイトは
、デコードされるべきバツフアの最下位バイト位置より
1つ高位のバイト位置へとシフトダウンされる。MDバ
ス35を経て転送される長ワード(第2C図)はマルチ
プレクサ62を通過する。If the validity bit indicates that the data in a particular byte location or locations is no longer valid, instruction buffer control circuit 61 generates a 1BREQ signal, which is sent to data cache circuit 33 or SBI. Requests the transfer of information from the controller 31 to the command buffer 60 via the MD bus 35. Other circuitry in instruction buffer control circuit 61 detects the highest byte locations with invalid data and shifts the higher bytes into these byte locations. All high byte data is modified during these transfers. That is, the instruction buffer controller 61 causes valid bytes of the instruction buffer 60 to be stacked from higher byte positions to lower byte positions having invalid bytes or bytes that have already been used and decoded for the series of instructions; , the high end of instruction buffer 60 causes a new instruction byte to be inserted in place of the shifted byte. This instruction buffer 60 is similar to a first-in-first-out buffer, but
The operation code is always stored in the least significant byte position of the buffer, and the operand specifier byte is shifted down to the byte position one higher than the least significant byte position of the buffer to be decoded. The long word transferred via MD bus 35 (FIG. 2C) passes through multiplexer 62.
命令バツフア60の出力と、データバイトをシフトする
際に用いられるマルチプレクサ62の入力にはシフト回
路網63も結合される。従つて、命令バツフア制御回路
61は命令バツフア60の指定されたバイト位置に適当
な情報を正しく送る。実際上は命令バツフア制御回路6
1は命令バツフア60を有効データで連続的に満たす。
代表的な命令に対する中央処理装置10の応答について
以下に述べる。Shifting circuitry 63 is also coupled to the output of instruction buffer 60 and the input of multiplexer 62 used in shifting data bytes. Therefore, instruction buffer control circuit 61 correctly sends the appropriate information to the designated byte location of instruction buffer 60. Actually, the instruction buffer control circuit 6
1 continuously fills the instruction buffer 60 with valid data.
The responses of the central processing unit 10 to typical commands will be described below.
命令バツフア制御回路61は命令バツフア要求(IBR
EQ)信号を発生する。この時に、仮想アドレスを含ん
だ第5A図のプログラムカウンタレジスタ64の内容が
、第5B図のBマルチプレクサ(BMX)65及び演算
論理ユニツト(ALU)66を経て第5A図の仮想アド
レス(VA)ラツチ67及び命令バツフアアドレス(I
BA)ラツチ68に転送される。仮想アドレスラツチ6
7は変換バツフア回路34の回路によつて物理アドレス
を確立するため命令アドレスを記憶する。命令バツフア
ドレスラツチ68は、命令バツフア60(第6A図)か
らの情報が使用されてこの情報が古い情報となつた後に
この命令バツフア60に情報を転送する間に用いられる
。上記した作動は第7図のステツプA1を構成する。ス
テツプA2に於いては、第6A図のMDバス35に現わ
れる入り情報が命令の1部或いは全部を構成する。この
情報は命令バツフア制御回路61からの信号に応答して
マルチプレクサ62を経て命令バツフア60に転送され
る。この時に命令バツフア60のバイト0位置はオペレ
ーシヨンコード情報を含んでいる。この特定の実施例に
於いては、各々のオペレーシヨンコードが1つのバイト
のみから成る。然し乍る、オペレーシヨンコードは2つ
或いはそれ以上のバイトから成ることもでき且つオペラ
ンド指定子をデコードするための以下に述べる回路に類
似した回路によつてこの様な多バイトのオペレーシヨン
コードをデコードできるということが以下の説明より理
解されよう。命令バツフア60のバイト0位置のみがオ
ペレーシヨンコードを含んでいると仮定すれば、バイト
1位置は第1のオペランド指定子の1部或いは全部を含
む。バイト0は実行アドレスメモリ71を制御するバイ
ト0ラツチ70に記憶される。バイト1位置の内容は実
行アドレスメモリ71からの出力信号と共に指定子デコ
ード論理回路72に与えられる。実行アドレスメモリ7
1は中央処理装置10が実行することのできる各命令に
対する項目を備えた表を記憶している。The instruction buffer control circuit 61 issues an instruction buffer request (IBR).
EQ) signal. At this time, the contents of the program counter register 64 of FIG. 5A, which includes the virtual address, are transferred to the virtual address (VA) latch of FIG. 5A via the B multiplexer (BMX) 65 and the arithmetic logic unit (ALU) 66 of FIG. 67 and instruction buffer address (I
BA) is transferred to latch 68. Virtual address latch 6
7 stores an instruction address in order to establish a physical address by the conversion buffer circuit 34 circuit. The instruction buffer address latch 68 is used during the transfer of information to the instruction buffer 60 (FIG. 6A) after the information from the instruction buffer 60 (FIG. 6A) has been used and the information has become obsolete. The above-described operation constitutes step A1 in FIG. In step A2, the incoming information appearing on MD bus 35 of FIG. 6A constitutes part or all of the command. This information is transferred to the instruction buffer 60 via the multiplexer 62 in response to a signal from the instruction buffer control circuit 61. At this time, byte 0 position of instruction buffer 60 contains operation code information. In this particular embodiment, each operation code consists of only one byte. However, an operation code can also consist of two or more bytes, and such multi-byte operation codes can be processed by circuits similar to those described below for decoding operand specifiers. It will be understood from the following explanation that it can be decoded. Assuming that only the byte 0 location of instruction buffer 60 contains the operation code, the byte 1 location contains some or all of the first operand specifier. Byte 0 is stored in byte 0 latch 70 which controls execution address memory 71. The contents of the byte 1 location are provided to specifier decode logic circuit 72 along with the output signal from execution address memory 71. Execution address memory 7
1 stores a table with an entry for each instruction that central processing unit 10 can execute.
この表に於ける特定項目の位置はバイト0ラツチ70か
らのオペレーシヨンコード信号及び実行点カウンタ73
からの信号によつて導出される。先ず初め、実行点カウ
ンタ73が基準数(例えばO)にセツトされる。各々の
オペランド指定子がデコードされるたびに、実行点カウ
ンタ73が進められて表の新たな項目を定める。この表
の各項目は、オペランド指定子がオペランドを転送して
入れるべき位置を示しているのか或いはオペランドが転
送されて出されるところの位置を示しているのかという
ことや、予期されるデータ項目のサイズの様なオペラン
ド指定子の或る特性を識別する。各々の選択された表項
目に対する信号は、オペランド指定子をデコードするシ
ーケンスとデータ路とを確立するために第3図のマイク
ロシーケンサ44が使用するところのスタートアドレス
の1部を制御するため、指定子デコード論理回路72に
送られる。UPCバス38は指定子デコード論理回路7
2からマイクロシーケンサ44へ信号を送る。第6B図
は実行アドレスメモリ71.の特定実施例に於いて保有
されるオペランド指定子の特性を示している。The location of specific items in this table is the operation code signal from byte 0 latch 70 and execution point counter 73.
is derived by the signal from First, the execution point counter 73 is set to a reference number (eg, O). As each operand specifier is decoded, execution point counter 73 is incremented to define a new entry in the table. Each item in this table indicates whether the operand specifier indicates a location where the operand should be transferred into or out, and whether the operand specifier indicates the location where the operand is transferred into or out, and whether the operand specifier indicates the location where the operand is transferred into or out, Identify certain characteristics of operand specifiers, such as size. The signals for each selected table entry are used to control a portion of the starting address used by microsequencer 44 of FIG. 3 to establish the sequence and data path for decoding operand specifiers. It is sent to child decode logic circuit 72. The UPC bus 38 is the specifier decode logic circuit 7.
2 sends a signal to the micro sequencer 44. FIG. 6B shows execution address memory 71. Figure 2 illustrates the characteristics of operand specifiers retained in a particular embodiment of the invention.
実行アドレスメモリ71からの2つの下位ビツトは含ま
れるデータ項目の形式を指定し、通常はデータ項目は整
数又は浮動小数点数より成る。その次の2つのビツトは
オペランドの長さを指示する。それに続く2つのビツト
は行なうべき動作を指示する。最後の2ビツトはアクセ
スに関する情報を決定する。例えば、バイト0ラツチ7
0及び実行点カウンタ73が2進数01001000を
含む位置を識別する場合にはそれに対応するオペランド
指定子が、メモリから検索さるべき長ワードの整数を指
定する。The two low order bits from execution address memory 71 specify the type of data item contained, which typically consists of an integer or floating point number. The next two bits indicate the length of the operand. The two bits that follow indicate the action to take. The last two bits determine information regarding the access. For example, byte 0 latch 7
0 and where execution point counter 73 identifies a location containing the binary number 01001000, the corresponding operand specifier specifies the integer of the long word to be retrieved from memory.
前記した様に、中央処理装置10が処理できる各命令の
各オペランド指定子に対して実行アドレスメモリ71に
入力がある。従つてバイト0ラツチ70からのオペレー
シヨンコードはベースアドレスを生じ、そして実行点カ
ウンタ73は各々のオペランド指定子に対応する表項目
を順次識別するためにベースアドレスと合成される信号
を発生する。実行アドレスメモリ71からの信号並びに
命令バツフアのバイト1位置のオペランド指定子は指定
子デコード論理回路72に転送され、該デコード論理回
路72はこれらの信号に応答して所与のオペランド指定
子のスタートシーケンスアドレスを識別する。このシー
ケンスに於ける所与のマイクロ命令のスタートアドレス
は命令自身に左右される高位ビツトと、オペランド指定
子の情報の性質に左右される下位ビツトとを備えている
。代表的な下位アドレスビツトが第6C図に示されてい
る。特に、オペランド指定子のレジスタモードフイール
ドが1141Wを含み且つレジスタフイールドがプログ
ラムカウンタを指定しない場合には、下位のスタートア
ドレスビツトがFllC[W(16進表示)である。こ
れは次いで、スタートアドレスにより識別された位置で
プログラム制御記憶回路40(第3図)に配置されたマ
イタロ命令で始まるシーケンスをマイクロシーケンサ4
4が実行し始めるところの位置を制御する。然し乍ら、
この情報がデコードされるまでは、マイクロシーケンサ
44は別の作動を実行し続ける。As mentioned above, there is an input in execution address memory 71 for each operand specifier of each instruction that central processing unit 10 can process. The operation code from byte 0 latch 70 thus produces a base address, and execution point counter 73 produces a signal that is combined with the base address to sequentially identify the table entry corresponding to each operand specifier. The signals from execution address memory 71 as well as the operand specifier in byte 1 position of the instruction buffer are transferred to specifier decode logic 72 which responds to these signals to determine the start of a given operand specifier. Identify sequence addresses. The starting address of a given microinstruction in this sequence has a high order bit that depends on the instruction itself and a low order bit that depends on the nature of the information in the operand specifier. A typical lower address bit is shown in Figure 6C. In particular, if the register mode field of the operand specifier contains 1141W and the register field does not specify a program counter, the lower start address bit is FllC[W (in hexadecimal notation). This in turn sends the sequence to the microsequencer 4 starting with the Mitalo instruction located in the program control storage circuit 40 (FIG. 3) at the location identified by the start address.
Controls the position where 4 starts executing. However,
Until this information is decoded, microsequencer 44 continues to perform other operations.
第7図のステツプA3に於いては、マイクロシーケンサ
44が命令バツフア60のバイト1位置のレジスタフイ
ールド位置を用いて、該レジスタフイールドの内容に対
応するレジスタメモリ76のレジスタの内容を第5B図
のAラツチ75に転送する。オペランド指定子のレジス
タモードフィルートがモード0乃至3のいずれかを指定
する場合にも、オペランド指定子はオペランドを含み且
つオペランド指定子がデコードされる。次いでマイタロ
シーケンサ44は命令の次のオペランド指定子を処理し
始めるか又は命令を実行し始める。オペランド指定子が
リテラルを含まないと仮定すれば、マイクロシーケンサ
はステツプA3か・らステツプA4へと移行する。In step A3 of FIG. 7, the microsequencer 44 uses the register field position of byte 1 of the instruction buffer 60 to store the contents of the register of the register memory 76 corresponding to the contents of the register field as shown in FIG. 5B. Transfer to A latch 75. Even when the register mode filter of the operand specifier specifies one of modes 0 to 3, the operand specifier includes the operand and is decoded. Mitaro sequencer 44 then begins processing the instruction's next operand specifier or begins executing the instruction. Assuming that the operand specifier does not contain a literal, the microsequencer moves from step A3 to step A4.
このステツプに於いては、命令バツフア60のバイト1
位置の情報のレジスタフイールドにより識別されたレジ
スタメモリ80のレジスタの内容がBラツチ81に転送
される。この特定実施例に於いては、A及びBレジスタ
メモリ76及び80が互いのコピーとして保持され、そ
してオペランド指定子のレジスタフイールドの内容によ
りアドレスできる全ての汎用レジスタを構成する。リテ
ラルモード以外のモードに対してはBラツチ81がアド
レスを含む。それ故、ステツプA5に於いては、マイク
ロシーケンサ44がBマルチプレクサ65及びALU6
6を通るデータ路を確立し、そして仮想アドレスラツチ
67にアドレスを転送する。更に、このアドレスは変更
を生じることなくシフト回路82、DFマルチプレクサ
83及びデマルチプレクサ84を経てDレジスタ85に
送られる。浮動小数点数の指数部に対応するビツトはA
LU32からデータ路36の指数区分86に同時に転送
される。ステツプA6に於いては、システムがプログラ
ムカウンタ64の内容をプログラムカウント保管レジス
タ90に転送し、長い処理時間を要する或る命令を、割
り込みが生じる場合に中止できる様にする。割り込み状
態を検出しそして追跡動作を制御する回路が次いで可能
化される。第3図のマイクロシーケンサ44は命令バツ
フア60のバイト2乃至5位置の内容をIDバス43を
経て、そノしてQマルチプレクサ91を経てQレジスタ
92に転送する。In this step, byte 1 of the instruction buffer 60
The contents of the register in register memory 80 identified by the location information register field are transferred to B latch 81. In this particular embodiment, A and B register memories 76 and 80 are maintained as copies of each other and constitute all general purpose registers addressable by the contents of the register field of the operand specifier. For modes other than literal mode, B latch 81 contains the address. Therefore, in step A5, the microsequencer 44 connects the B multiplexer 65 and the ALU 6.
6 and transfers the address to virtual address latch 67. Furthermore, this address is sent to the D register 85 via the shift circuit 82, DF multiplexer 83 and demultiplexer 84 without any modification. The bit corresponding to the exponent part of a floating point number is A
They are simultaneously transferred from LU 32 to index section 86 of data path 36. At step A6, the system transfers the contents of program counter 64 to program count storage register 90 so that certain instructions requiring long processing times can be aborted if an interrupt occurs. Circuitry to detect interrupt conditions and control tracking operations is then enabled. Microsequencer 44 of FIG. 3 transfers the contents of bytes 2 through 5 of instruction buffer 60 via ID bus 43 and then via Q multiplexer 91 to Q register 92.
これらのバイト位置はオペランド指定子が変位モードの
1つを定めた場合に潜在的な変位値を表わす情報を含む
。第7A図のステツプA8に於いては、命令バツフア制
御器61が可能化され、命令バツフア60を有効情報で
連続的に満たすために情報の転送を要求する。These byte locations contain information representing potential displacement values if the operand specifier defines one of the displacement modes. In step A8 of FIG. 7A, the instruction buffer controller 61 is enabled and requests the transfer of information to continuously fill the instruction buffer 60 with valid information.
命令バツフアの或る番号のバイトをクリアできる場合に
はこのクリア動作がステツプA9で行なわれ、そしてス
テツプAlOに於いてはクリアされた上記番号のバイト
を補償するためにプログラムカウンタ64が増加される
。このタリヤ動作及びプログラムカウンタの更新はQレ
ジスタ92に関連データが用意された場合に達成される
。ステツプAllに於いては中央プロセツサ10がオペ
ランド指定子がリナラルを含んでいるかどうかを決定す
る。リテラルを含んでいれば、マイクロシーケンサ44
はステツプAl2へと分岐し、Qレジスタ92にリテラ
ルを与える。次いで、その次のオペランド指定子がデコ
ードされるか、或いは全てのオペランド指定子がデコー
ドされてしまつた場合には、中央処理装置10がオペレ
ーシヨンコードに応答してオペランドを処理する。オペ
ランド指定子がリテラルを含んでいなければ、マイクロ
シーケンサ44はステツプAl3へと分岐し、オペラン
ド指定子のデコード動作を完了させる。シーケンスのこ
の点に於いて、Aラツチ75は命令バツフア60(第6
A図)のバイト2位置からのレジスタビツト位置に対応
する情報を含んでいる。If a certain number of bytes in the instruction buffer can be cleared, this clearing operation is performed in step A9, and in step AIO the program counter 64 is incremented to compensate for the number of bytes cleared. . This tallying operation and updating of the program counter is accomplished when the relevant data is prepared in the Q register 92. In step All, central processor 10 determines whether the operand specifier contains a linear. If it contains a literal, the microsequencer 44
branches to step Al2 and provides the Q register 92 with a literal. The next operand specifier is then decoded, or if all operand specifiers have been decoded, central processing unit 10 processes the operand in response to the operation code. If the operand specifier does not contain a literal, the microsequencer 44 branches to step Al3 and completes the operand specifier decoding operation. At this point in the sequence, A latch 75 is connected to instruction buffer 60 (sixth
Contains information corresponding to register bit positions from byte 2 position in Figure A).
Bラツチ81、仮想アドレスラツチ67及びDレジスタ
85は命令バツフア60のバイト1位置のレジスタフイ
ールドビツトにより選択されたレジスタの内容を含んで
いる。Qレジスタ92は存在するかもしれない命令流れ
データを含み、そしてプログラムカウンタ64は次のオ
ペランド指定子のアドレスを含む。それ以上の動作はデ
コードされる特定の命令とオペランド指定子の性質とに
左右される。中央処理装置がオペランド指定子のデコー
ド動作を行なうことのできる方法は非常にたくさんある
。考えられる各々場合を余すところなく説明するには非
常に多くの説明を要する。然し乍ら、或る代表的な命令
に応答した中央処理装置の作動を検討することによつて
本発明による中央処理装置10の作動は明確に理解でき
よう。11加算命令におけるオペランド指定子のデコー
ド動作A.リテラル及び変位アドレスモード
第8A図は2つの位置の情報を加算しそしてその和を第
3の位置へ入れ然して第1の記臆位置にも第2の記憶位
置にも影響を及ぼさない様な命令を示したものであり、
これは第7図のステツプA2において命令が検索された
後に命令バツフア60に見られる場合と同様である。B latch 81, virtual address latch 67, and D register 85 contain the contents of the register selected by the register field bit in byte 1 position of instruction buffer 60. Q register 92 contains any instruction flow data that may be present, and program counter 64 contains the address of the next operand specifier. Further behavior depends on the particular instruction being decoded and the nature of the operand specifiers. There are numerous ways in which the central processing unit can perform operand specifier decoding operations. It would take a great deal of explanation to exhaustively explain each possible case. However, the operation of central processing unit 10 in accordance with the present invention may be clearly understood by considering the operation of the central processing unit in response to certain representative commands. 11 Decoding operation of operand specifier in addition instruction A. Literal and Displacement Address Modes Figure 8A shows an instruction that adds the information in two locations and places the sum in a third location, but does not affect either the first or second storage location. It shows
This is similar to what appears in the instruction buffer 60 after the instruction is retrieved in step A2 of FIG.
第8B図は1WC1?Iであるこの命令に組合わされた
オペレーシヨンコードに対して表項目に記憶された情報
を示している。オペランド指定子情報を構成する特定ビ
ツト位置の意味は第6B図に示されている。第1のオペ
ランド指定子は1078である。Is Figure 8B 1WC1? The table entry shows the information stored for the operation code associated with this instruction, which is I. The meaning of specific bit positions making up the operand specifier information is shown in FIG. 6B. The first operand specifier is 1078.
実行点カウンタ73が1001Yであれば、実行アドレ
スメモリ71の対応する表項目(第8B図)は次の様な
情報を含んでいる。(1)指定子が選択されている(ビ
ツト4及び5);(2)オペランドが選数である(ビツ
ト0及び1);(3)オペランドが4つのバツトを含ん
でいる(ビツト2及び3);(4)オペランドがメモリ
から読み取られる(ビツト6及び7)。更に、命令バツ
フア60のバイト1位置から指定子デコード論理回 Z
路72に転送された情報は、マイクロシーケンサ44の
スタートアドレスの下位ビツトとして、上記論理回路7
2が1000を生じる様にせしめる。(第6B図を参照
されたい。)第7図のシーケンスに続いてマイクロシー
ケンサ44は 町第8C図のステツプB1においてこの
リテラル即ち117゛をQレジスタ92からデータ整列
器93及びDマルチプレクサ84を経てDレジスタ85
へ転送するのに必要なデータ路を確立する。この点にお
いて命令バツフア制御器61は 5バイト2乃至7を1
バイト位置だけ右へシフトしそして実行点カウンタ73
を101へ(ステツプB2)に進める。第8B図の表か
ら明らかな様に、これは、今やバイト1にある情報が、
中央処理装置10へ転送さるべき長ワード整数 tに対
するオペランド指定子であることを示している。今やシ
ステムはたマちに第7図のステツプに戻る。If the execution point counter 73 is 1001Y, the corresponding table entry (FIG. 8B) in the execution address memory 71 contains the following information. (1) The specifier is selected (bits 4 and 5); (2) the operand is a select number (bits 0 and 1); (3) the operand contains four crosses (bits 2 and 3). ); (4) Operand is read from memory (bits 6 and 7). Furthermore, the specifier decoding logic circuit Z starts from the byte 1 position of the instruction buffer 60.
The information transferred to the logic circuit 72 is used as the lower bit of the start address of the microsequencer 44.
Let 2 yield 1000. (See Figure 6B.) Following the sequence of Figure 7, microsequencer 44 passes this literal, ie 117', from Q register 92 through data aligner 93 and D multiplexer 84 in step B1 of Figure 8C. D register 85
Establish the data path necessary to transfer the data to the At this point, the instruction buffer controller 61 converts the 5 bytes 2 to 7 into 1
Shift to the right by the byte position and execute the execution point counter 73.
Proceed to step 101 (step B2). As is clear from the table in Figure 8B, this means that the information now in byte 1 is
This indicates that it is an operand specifier for the long word integer t to be transferred to the central processing unit 10. The system now immediately returns to the steps in Figure 7.
ステツプAllにおいて第2のオペランド指定数が評価
される。第4図、6B図、6C図及び8B図の種々の表
によつて今や与えられた情報の結合において、マイクロ
シーケンサはバイト位置モードのアドレス動作を用いる
オペランド指定子をデコードするに必要なデータ路のシ
ーケンスを確立する様に応答する。このデコードシーケ
ンス中にAラツチ75及びBラツチ81は両方ともレジ
スタR1の内容を受け取る(ステツプB3)。ステツプ
B4においてQレジスタはバイト変位値1520Ttの
バイト3を受け取る。ステツプB5においてALU66
は指定されたレジスタの内容を含んでいるBラツチ81
の内容と、変位値を含んでいるQレジスタ92の内容と
の和を作る。特に、Qレジスタ92の内容はRAマルチ
プレクサ94及びAマルチプレクサ95を経てALU6
6のA入力へと送られ、一方Bラツチ81の内容はBマ
ルチプレクサ65を経てALU66に送られる。これら
2つの入力の和は変位アドレスを表わしており、これは
次いで仮想アドレスラツチ67に転送され、且つ又シフ
ト回路網82、DFマルチプレクサ83及びQマルチプ
レクサ91を経てQレジスタ92へ戻される。今度はス
テツプB6においてマイクロシーケンサ44が命令バツ
フア制御器61を可能化し、第2のオペランド指定子の
内容をクリアせしめ且つ又ステツプB7において第2の
オペランドを得るための要求を開始させる。ステツプB
8においてはマイクロシーケンサ44が第2オペランド
をMDバスから′>J1のデータ整列器96及びDマル
チプレクサ84を経てDレジスタ85に転送し、そして
第1のオペランドがQレジスタ92に転送される。今度
はマイクロシーケンサ44が実行点カウンタ73を、実
行を指定する第8B図の表の第3項目まで進める(ステ
ツプB9)。In step All, the second operand specification is evaluated. In combination with the information now given by the various tables of FIGS. 4, 6B, 6C and 8B, the microsequencer can determine the data paths necessary to decode the operand specifier using byte position mode addressing. response to establish the sequence. During this decode sequence, A latch 75 and B latch 81 both receive the contents of register R1 (step B3). At step B4, the Q register receives byte 3 with a byte displacement value of 1520Tt. At step B5, ALU66
is the B latch 81 containing the contents of the specified register.
and the contents of the Q register 92 containing the displacement value. In particular, the contents of the Q register 92 are passed through the RA multiplexer 94 and the A multiplexer 95 to the ALU 6.
6, while the contents of B latch 81 are sent to ALU 66 via B multiplexer 65. The sum of these two inputs represents the displacement address, which is then transferred to virtual address latch 67 and also back to Q register 92 via shift network 82, DF multiplexer 83 and Q multiplexer 91. Microsequencer 44 now enables instruction buffer controller 61 in step B6 to clear the contents of the second operand specifier and also initiates a request to obtain the second operand in step B7. Step B
At 8, the microsequencer 44 transfers the second operand from the MD bus to the D register 85 via the data aligner 96 with '>J1 and the D multiplexer 84, and the first operand is transferred to the Q register 92. This time, the microsequencer 44 advances the execution point counter 73 to the third item in the table of FIG. 8B that specifies execution (step B9).
それ故、マイクロシーケンサ44は、ステツプBlO中
に、ALU66が2つの加数、すなわち。Qレジスタ9
2及びDレジスタ85(第5C図参照)からAマルチプ
レクサ95及びBマルチプレクサ65を通して受入され
る第1オペランド及び第2オペランドの演算和を作りそ
してこの和をDレジスタ85に転送するように、ALU
66を制御する。ステツプBllにおいては、マイクロ
シーケンサ44が実行点カウンタ73を%11111即
ち第8B図に示した最終状態へと進める。Therefore, in the microsequencer 44, during step BIO, the ALU 66 has two addends, ie. Q register 9
2 and D register 85 (see FIG. 5C) to form an operational sum of the first and second operands received through A multiplexer 95 and B multiplexer 65 and transfer this sum to D register 85.
66. At step Bll, microsequencer 44 advances execution point counter 73 to %11111, the final state shown in FIG. 8B.
表の情報は、4バイト整数を書き込むべきメモリアドレ
スをオペランド指定子が指定することを示し !ている
。値C2が命令バツフア60のバイト1位置にありそし
てレジスタモードフイールドにある1C1がワード変位
アドレスを定める。従つてマイクロシーケンサ44はス
テツプBl2乃至Bl6を用いてメモリアドレスを計算
し且つそのメモリ位置への和の転送を開始する。これら
のステツプが完了すると、マイクロシーケンサ44はス
テツプBl7において実行点カウンタ73をクリアしそ
して第7図のステツプに戻り、シーケンス中の次の命令
の転送及びデコードを開始する。B.インデツクスアド
レスモード
第8A図に示された第3のオペランド指定子はワード変
位モードを定めるものであつた。The information in the table indicates that the operand specifier specifies the memory address to which the 4-byte integer should be written! ing. The value C2 is in the byte 1 position of instruction buffer 60 and 1C1 in the register mode field defines the word displacement address. Microsequencer 44 therefore uses steps B12 through B16 to calculate the memory address and begin transferring the sum to that memory location. Upon completion of these steps, microsequencer 44 clears execution point counter 73 in step B17 and returns to the steps of FIG. 7 to begin transferring and decoding the next instruction in the sequence. B. Index Address Mode The third operand specifier shown in FIG. 8A was to define the word displacement mode.
加算命令を繰返し使用しそして次々の和を整列した位置
に記憶することが所望されるとすれば、プログラマはワ
ード変位モードを用い然も位置をインデツクスするとい
う様に選択を行なうかもしれない。この中央処理装置を
用いてこの様なインデツクス変位アドレスを作り出すこ
とができる。プログラマは第8A図に示した第3のオペ
ランド指定子を、第9A図の命令として見られる様に変
更する。この命令はR7レジスタインデツクスレジスタ
として識別する。特に、命令バツフアの初めのバイト4
位置は命令デコード動作の始めに11471を含んでい
る。If it is desired to use the add instruction repeatedly and store successive sums in aligned locations, the programmer may choose to use the word displacement mode but index the locations. This central processing unit can be used to create such index displacement addresses. The programmer changes the third operand specifier shown in Figure 8A to appear as the instruction in Figure 9A. This instruction identifies the R7 register index register. In particular, the first byte 4 of the instruction buffer
Locations include 11471 at the beginning of the instruction decode operation.
第9C図のステツプC1は第8C図のステツプBllに
対応する。ステツプC1においては、長ワードの整数で
書き込み動作を示す様に第6A図の実行点カウンタ73
が進められる。この時にはAラツチ75及びBラツチ8
1がレジスタ7の内容を含み、Qレジスタ92及び仮想
アドレスラツチ67が第2オペランドアドレスを含み、
そしてDレジスタ85が加算演算の和を含んでいる。ス
テツプC1の時には、第3のオペランド指定子が命令バ
ツフア60のバイト2乃至バイト5位置を占有する。従
つてAラツチ75は指定されたインデツクスレジスタで
あるR7レジスタの内容を含む。ステツプC2において
は、Aラツチの内容がAマルチプレクサ95及びALU
66を経てシフト回路82へ転送される。シフト回路網
82はステツプC3中に実行アドレスメモリ71からの
長さ信号に相当する位置の数だけインデツクス値を左へ
シフトする。Step C1 in FIG. 9C corresponds to step Bll in FIG. 8C. In step C1, the execution point counter 73 of FIG. 6A is set to indicate a write operation with a long word integer.
will proceed. At this time, A latch 75 and B latch 8
1 contains the contents of register 7, Q register 92 and virtual address latch 67 contain the second operand address,
The D register 85 then contains the sum of the addition operations. At step C1, the third operand specifier occupies byte 2 through byte 5 positions of instruction buffer 60. A latch 75 therefore contains the contents of register R7, which is the designated index register. In step C2, the contents of the A latch are transferred to the A multiplexer 95 and the ALU.
The signal is transferred to the shift circuit 82 via 66. Shift circuitry 82 shifts the index value to the left by a number of positions corresponding to the length signal from execution address memory 71 during step C3.
この場合は、長ワードが含まれるから、長さフイールド
は11101を含みそしてインデツクス値は2つの位置
たけシフトされ、それによりインデツクス値を4で効果
的に乗算しそして転送さるべき長ワード項目のサイズを
補償する。バイトが転送される場合にはシフトが行なわ
れず、従つてインデツタスは1で効果的に乗算され、こ
れに対して4倍ワードが転送される場合にはインデツク
スレジスタの内容が3回左へシフトされ、インデツクス
を8で効果的に乗算しそして8バイトの4倍ワードサイ
ズを補償する。従つてこの作動は転送されるデータ項目
のサイズまでインデツクス値を桁移動する。この桁移動
の後、インデツクス値はステツプC4中にT7レジスタ
として指定されたCレジスタメモリ97の所定位置に記
臆される。In this case, since a long word is involved, the length field contains 11101 and the index value is shifted two positions, thereby effectively multiplying the index value by 4 and increasing the size of the long word item to be transferred. Compensate for. When a byte is transferred, no shift is performed, so the index register is effectively multiplied by 1, whereas when a quadruple word is transferred, the contents of the index register are shifted to the left three times. , effectively multiplying the index by 8 and compensating for a quadruple word size of 8 bytes. This operation therefore shifts the index value up to the size of the data item being transferred. After this digit shift, the index value is stored in a predetermined location in the C register memory 97 designated as the T7 register during step C4.
又、命令バツフア60のバイト1位置の内容がクリアさ
れて、値1C2t1がこのバイト1位置にシフトされる
。ステツプC5においては、変位置1014011を含
んだバイト位置2乃至5の内容が1Dバス43を経てQ
レジスタ92に転送される。次いで、処理されているオ
ペランド指定子及びオペレーシヨンコードに基いて、指
定子デコード論理回路72はステツプC6においては命
令バツフアのバイト位置1乃至5のクリア動作を制御し
そしてステツプC7においてはプログラムカウンタを対
応数たけ増加する。ステツプC8中には命令バツフア制
御器61が可能化され、仮想アドレスラツチ67の内容
により識別された位置から情報を検索する。ステツプC
9中にはDレジスタ85の演算和がQレジスタ92に移
されそして変位数1101401′がQレジスタ92か
らDレジスタ85に送られる。Bラツチ81はレジスタ
2の内容を含んでおり、この値はステツプClOにおい
てBマルチプレクサ65を経てALU66の入力に送ら
れる。Dレジスタ85からの変位値はA入力に送られる
。この和は変位アドレスを構成し、これはDレジスタ8
5及び仮想アドレスラツチ67に戻されるが、使用され
ない。ステツプCllにおいては第3のオペランド指定
子の残りのバイト部分がクリアされる。次いでインデツ
クス動作が行なわれる。Also, the contents of the byte 1 position of the instruction buffer 60 are cleared and the value 1C2t1 is shifted to this byte 1 position. In step C5, the contents of byte positions 2 to 5 including the variable position 1014011 are transferred to Q via the 1D bus 43.
Transferred to register 92. Based on the operand specifier and operation code being processed, specifier decode logic 72 then controls the clearing of byte positions 1 through 5 of the instruction buffer in step C6 and the program counter in step C7. The number of correspondence increases. During step C8, instruction buffer controller 61 is enabled to retrieve information from the location identified by the contents of virtual address latch 67. Step C
9, the operational sum of the D register 85 is transferred to the Q register 92, and the displacement number 1101401' is sent from the Q register 92 to the D register 85. B latch 81 contains the contents of register 2, and this value is passed to the input of ALU 66 via B multiplexer 65 in step ClO. The displacement value from the D register 85 is sent to the A input. This sum constitutes the displacement address, which is D register 8
5 and virtual address latch 67, but is not used. In step Cll, the remaining byte portion of the third operand specifier is cleared. An indexing operation is then performed.
ステツプCl2においてはレジスタメモリ97のT7レ
ジスタの内容がCラツチ98に転送される。これは桁移
動されたインデツタス値であり、ステツプCl3中にB
マルクプレクサ65を経てALU66のB入力に転送さ
れる。同時に、変位アドレスがDレジスタ85からRA
マルチプレクサ94及びAマルチプレクサ95を経てA
LU66のA人力に転送される。次いでその2つの入力
の数を加算することによつてインデツクスアドレスが作
られ、インデツクスアドレスであるその和がDレジスタ
85に転送される。ステツプCl4においては、このア
ドレスが仮想アドレスラツチ67へ送られる。今やオペ
ランドはQレジスタ92にある。At step Cl2, the contents of register T7 of register memory 97 are transferred to C latch 98. This is the index value shifted by digits, and B during step Cl3.
It is transferred to the B input of the ALU 66 via the multiplexer 65. At the same time, the displacement address is changed from D register 85 to RA
A via multiplexer 94 and A multiplexer 95
Transferred to LU66 A personnel. An index address is then created by adding the numbers of the two inputs, and the sum, which is the index address, is transferred to D register 85. In step Cl4, this address is sent to virtual address latch 67. The operand is now in the Q register 92.
マイクロシーケンサ44はこの和をQレジスタ92から
Dレジスタ85に戻す。次いでステツプCl4において
マイクロシーケンサ44はオペランドの別のデータ整列
器96を経てMDバス35を経てデータカツシユ回路3
3及びメモリ装置11へと転送し、仮想アドレスラツチ
67の内容によりアドレスされた位置へ送る。最後のス
テツプとして、実行点カウンタ73及び命令バツフア6
0のバイト0位置がタリヤされる。これはバツフア制御
回路61が命令バツフア60にある次の有効データをO
及びそれに続くバイト位置にシフトできる様にする。前
記説明より、インデツクスモードが別個の専用のモード
でないということが明らかであろう。Microsequencer 44 returns this sum from Q register 92 to D register 85. Next, in step Cl4, the microsequencer 44 passes through another data aligner 96 for the operand, and then the data dump circuit 3 via the MD bus 35.
3 and memory device 11 to the location addressed by the contents of virtual address latch 67. As the final step, the execution point counter 73 and instruction buffer 6
Byte 0 position of 0 is tallied. This means that the buffer control circuit 61 outputs the next valid data in the instruction buffer 60.
and the subsequent byte position. From the foregoing description, it should be clear that index mode is not a separate and dedicated mode.
これはメモリを参照する一般のアドレスモード(即ちモ
ード6乃至15)の何れかを拡張 5したものである。
これらの一般モードは第4図に米印で示されている。イ
ンデツクスモードはインデツクスレジスタを指定する単
1バイトで実施され、これは1つ乃至9つの追加バイト
より成るオペランド指定子を更に拡張したものと 4合
成することができる。この点に関してインデツクスモー
ドは物理的なずれを含んだベースレジスタと、論理的な
ずれを或る配列で含んだインデツタスレジスタとをもた
らすものと考えることができる。シフト作動によつて与
えられる桁移動はデータワードのサイズを自動的に補償
し、従つてインデツクスレジスタ自身はデータ項目のサ
イズに拘りなくそのデータ項目の論理的なずれを表わす
。オペランド指定子の長さが可変であるという性質はイ
ンデツクスモードを更に促進するということが明らかで
あろう。というのは、インデツクスアドレスを作るべき
時に、命令にインデツタス情報のためのスペースがあり
さえすればよいからである。111サブルーチン呼び出
し命令
第10A図及び10B図は2つの別々のサブ)レーチン
呼び出し命令を示している。This is an extension of any of the general address modes (ie, modes 6 to 15) that refer to memory.
These general modes are shown in FIG. Index mode is implemented with a single byte specifying the index register, which can be combined with a further extension of the operand specifier of one to nine additional bytes. In this regard, the index mode can be thought of as providing a base register that includes physical offsets and an index register that includes logical offsets in some arrangement. The shift provided by the shift operation automatically compensates for the size of the data word, so the index register itself represents the logical shift of the data item regardless of its size. It will be apparent that the variable length nature of the operand specifiers further facilitates indexed mode. This is because the instruction only needs to have space for the index information when the index address is to be created. 111 Subroutine Call Instructions Figures 10A and 10B show two separate subroutine call instructions.
第10A図の呼び出し命令はIlCALLGll命令で
あり、そしてこの特定図面においては1バイトのオペレ
ーシヨンコード11FA71を備え、その後にはアーギ
ユメントリストを定めるための1バイトのオペランド指
定子と、行先、即ち呼び出しされるサブルーチンの初め
の位置、を定めるための1バイトのオペランド指定子と
が続く。第10B図はオペレーシヨンコード11FBl
を持つた1CALLS1呼び出し命令を示している。第
10A図に示されたCALLG命令はアーギユメントリ
ストがメモリの種々の位置に記憶されている時にサブル
ーチンを呼び出し、そして第10B図のCALLS命◆
は呼び出しサブルーチンが、使用さるべきアーギユメン
トリストを、スタツクポインタレジスタとして働くRl
4汎用レジスタによつて識別されたメモリスタツクに既
に転送している場合に、サブルーチンを呼び出す。アー
ギ゛エタントリストはサブルーチンにより使用さるべき
入力アドレス及び値と、サブルーチンにより作られた出
力値のための出力アドレスとを含んでいる。さて第10
C−1図を参照すれば、ステツプD1に於いて中央処理
装置10は第1のオペランド指定子を評価し、そして第
10A図に示した命令の場合にはアーギユメントリスト
アドレスを、或いは第10B図に示した命令の場合には
アーギユメントカウンタを、Dレジスタ85に転送する
。The call instruction in FIG. 10A is the IlCALLGll instruction, and in this particular figure has a 1-byte operation code 11FA71, followed by a 1-byte operand specifier to define the argument list, and the destination. It is followed by a 1-byte operand specifier for determining the starting position of the subroutine to be called. Figure 10B shows operation code 11FBl.
1CALLS1 call instruction is shown. The CALLG instruction shown in Figure 10A calls a subroutine when the argument list is stored in various locations in memory, and the CALLS instruction in Figure 10B ◆
The calling subroutine stores the argument list to be used in Rl, which serves as the stack pointer register.
4. Calls the subroutine if it has already transferred to the memory stack identified by the general purpose register. The agent list contains input addresses and values to be used by the subroutine and output addresses for output values produced by the subroutine. Now, number 10
Referring to Figure C-1, in step D1 central processing unit 10 evaluates the first operand specifier and, in the case of the instruction shown in Figure 10A, the argument list address or In the case of the instruction shown in FIG. 10B, the argument counter is transferred to the D register 85.
ステツプD2に於いてDレジスタ85の内容がQレジス
タ92に転送されそして行先オペランド指定子の行先フ
イールドが評価される。それにより生じるサブルーチン
の初期アドレスはDレジスタ85及び仮想アドレスラツ
チ67に送られる。この呼び出し命令の1つの観点によ
れば、サブルーチンの初めの位置は次の様に解釈される
サブルーチンマスクを含んでいる。ビツト位置0乃至1
1は汎用レジスタRO乃至Rllに直接対応している。
このサブルーチンマスクの各々のビツト位置は、それに
対応する汎用レジスタの内容を保管すべきであるか否か
に基いてセツトされるか又はクリアされる。明らかな様
に、汎用レジスタの内容は、サブルーチンがその汎用レ
ジスタの内容を変えてしまう場合に保管される。その他
の汎用レジスタRl2乃至Rl5は常に保管されるか又
は決して保管されないかのいずれかである。゛特に、R
l2レジスタはアーギユメントポインタレジスタを構成
し、その内容は常に保管される。同様に、Rl3レジス
タはサブルーチン呼出し中にスタツタヘフ0ツシユされ
る項目のスタツクのアドレスを含むようなフレームポイ
ンタレジスタを構成し、Rl5レジスタはプログラムカ
ウンタレジスタを構成し、これらの内容も常に保管され
る。一方、Rl4レジスタはスタツクポインタレジスタ
を構成し、その内容は保管されない。従つてサブルーチ
ンマスクの最上位から4つのビツト位置はその他の目的
に用いることができる。この特定の実施例に於いては、
ビツト位置12及び13が常にOであるが、これらを他
の目的に使用することもできる。At step D2, the contents of D register 85 are transferred to Q register 92 and the destination field of the destination operand specifier is evaluated. The initial address of the resulting subroutine is sent to D register 85 and virtual address latch 67. According to one aspect of this call instruction, the initial location of the subroutine contains a subroutine mask that is interpreted as follows. Bit position 0 to 1
1 directly corresponds to general-purpose registers RO to Rll.
Each bit position in this subroutine mask is set or cleared depending on whether the contents of its corresponding general purpose register are to be saved. As can be seen, the contents of a general register are saved when a subroutine changes the contents of that general register. The other general purpose registers Rl2-Rl5 are either always saved or never saved.゛Especially, R
The l2 register constitutes an argument pointer register and its contents are always saved. Similarly, the Rl3 register constitutes a frame pointer register that contains the address of the stack of items that are flushed to the top during a subroutine call, and the Rl5 register constitutes a program counter register, the contents of which are also always saved. On the other hand, the Rl4 register constitutes a stack pointer register, and its contents are not saved. Therefore, the four most significant bit positions of the subroutine mask can be used for other purposes. In this particular example,
Although bit positions 12 and 13 are always O, they can also be used for other purposes.
一方、ビツト14及び15はサブルーチン自身へ入る際
の整数オバーフロ一の初期状態と、10進数オーバーフ
ローのエラー状態フラグとを確立する。第10C−1図
及びステツプD3を更に参照すれば、呼び出しルーチン
のサブルーチン呼び出し命令に続く第1命令を識別する
ためにプログラムカウンタ64が既に増加されている。Bits 14 and 15, on the other hand, establish the initial state of integer overflow on entry to the subroutine itself and the error condition flag of decimal overflow. With further reference to Figure 10C-1 and step D3, program counter 64 has been incremented to identify the first instruction following the subroutine call instruction of the calling routine.
次いでQレジスタ92がクリアされそしてサブルーチン
マスクがDレジスタ85からCレジスタメモリ97のT
2レジスタに送られる。サブルーチンマスクのビツト位
置12及び13は0の値であるかどうかを決定するため
に試験される。Oの値でなければエラー状態が存在しそ
して適当なトラツプ状態が生じる。通常は、サブルーチ
ンマスクがCラツチ98に転送された時にステツプD5
がステツプD6に移行する。ステツプD7に於いては呼
び出しルーチンの状態を保管するためにとつておくこと
が必要とされる汎用レジスタの数を確立するため、サブ
ルーチンマスクにある1の数がカウントされる。ステツ
プD8は第10A図に示した呼び出し命令に対しては第
10C−2A図に示されたステツプへ、或いは第10B
図に示した呼び出し命令に対しては第10C−2B図示
されたステツプへ動作を移行するところの分岐を示して
いる。Q register 92 is then cleared and the subroutine mask is transferred from D register 85 to T in C register memory 97.
2 register. Bit positions 12 and 13 of the subroutine mask are tested to determine if they have a value of zero. If the value is not O, an error condition exists and an appropriate trap condition occurs. Normally, when the subroutine mask is transferred to C latch 98, step D5 is executed.
The process moves to step D6. At step D7, the number of ones in the subroutine mask is counted to establish the number of general purpose registers that need to be reserved to store the state of the calling routine. Step D8 goes to the step shown in FIG. 10C-2A for the call instruction shown in FIG. 10A, or to step 10B.
For the illustrated call instruction, a branch is shown which transfers the operation to the illustrated step 10C-2B.
第10A図に示されたCALLG命令がデコードされて
いると仮定すれば、呼び出しルーチンの状態により占有
されるメモリスタツクの全スペースを次に確立すること
が必要とされる。Assuming that the CALLG instruction shown in FIG. 10A has been decoded, it is then necessary to establish the total space in the memory stack occupied by the calling routine's state.
この命令に対しては、5つの更に別の長ワードがとつて
おかれる。従つてステツプD9に於いてはその数がマス
クの1の数に加算されそしてその和がバイトの数に変換
され、次いでスタツクポインタレジスタの内容とで、ス
タツクの最後の位置を決定するのに用いられる(ステツ
プDlO)。前記した様に中央処理ユニツト10は仮想
的にアドレスされた機械として作動する。それ故、とつ
ておかれる全てのレジスタを収容するに充分なスペース
が、実施されている特定プログラムに割り当てられたメ
モリスタツクに存在するということを確かめるためのス
テツプを考慮しなければならない。ステツプDll中に
はスタツクポインタレジスタであるRl4レジスタの内
容がA及びBラツチ75及び81に転送され、そしてス
テツプDl2に於いてはRl4レジスタの最下位から2
つのビツトがCレジスタメモリ97のT4レジスタに転
送される。ステツプDl2に於いては、Rl4レジスタ
のノ 最下位から2つのビツトを零に取り替えることに
よつてスタツクポインタも整列され、それによりこのレ
ジスタのアドレスをして長ワードの境岑を形成せしめる
。メモリ装置11及びカツシユメモリ装置との情報のや
り取りが長ワードの境痒に於τ いて行なわれる時には
、この整列手順が、1回のメモリ転送によつて各々のレ
ジスタをとつておくことができる様にし、且つ命令の全
効率を改善する。さもなくば、各レジスタをとつておく
ために転送を2回行なわねばならないという可能性が生
Oじ、それにより、通常整列されるサブルーチンの呼び
出し命令及びそれに続く命令を実行するのに要する時間
を著しく増加することになる。整列を行なつた後、メモ
リにある一連の空の長ワード位置を次々に識別するため
にSPレジスタの整列された内容が減少される。Five additional long words are set aside for this instruction. Therefore, in step D9, that number is added to the number of ones in the mask, the sum is converted to a number of bytes, and then used with the contents of the stack pointer register to determine the last position of the stack. used (step DlO). As mentioned above, central processing unit 10 operates as a virtually addressed machine. Therefore, steps must be taken to ensure that sufficient space exists in the memory stack allocated to the particular program being implemented to accommodate all registers being set aside. During step Dll, the contents of the Rl4 register, which is the stack pointer register, are transferred to the A and B latches 75 and 81, and in step Dl2, the contents of the Rl4 register are transferred from the bottom to the second register.
One bit is transferred to the T4 register of C register memory 97. In step D12, the stack pointer is also aligned by replacing the least significant two bits of the R14 register with zeros, thereby causing the address of this register to form a long word boundary. When information is exchanged with the memory device 11 and the cutlet memory device on the boundary of long words, this sorting procedure allows each register to be saved by one memory transfer. , and improve the overall efficiency of the instructions. Otherwise, the transfer may have to be performed twice to save each register, thereby reducing the time required to execute the normally aligned subroutine call instruction and subsequent instructions. This will increase significantly. After performing the alignment, the aligned contents of the SP register are decremented to successively identify a series of empty long word locations in memory.
これはステツプDl3に於いてマイクロシーケンサ44
がプログラムカウンタ64とサブルーチンマスクに指定
された汎用レジスタとの内容をメモリスタツクに転送で
きる様にする。このステツプは、呼び出し命令に続く命
令が見い出されるところの呼び出しルーチンの位置と、
サブルーチンにより使用される汎用レジスタとをとつて
おく様にする。ステツプDl3を完了した後は、呼び出
しルーチンの状態が保管されており、従つて中央処理装
置は第10C−3図に示したステツプへと移る。第10
C−2B図は第10B図に示したCALLS命令がデコ
ードされる場合に行なわれるステツプを示している。This is done by the microsequencer 44 at step Dl3.
transfers the contents of program counter 64 and general-purpose registers designated by the subroutine mask to the memory stack. This step determines the location in the calling routine where instructions following the calling instruction are found;
Make sure to save general-purpose registers used by subroutines. After completing step D13, the state of the calling routine is saved and the central processing unit therefore moves to the step shown in Figure 10C-3. 10th
Figure C-2B shows the steps taken when the CALLS instruction shown in Figure 10B is decoded.
ステツプDl4及びDl5に於いては、再び中央処理装
置10が、それに割り当てられたメモリスタツクに、情
報を記憶するに充分なスペースがあるかどうかを決定す
る。SPレジスタの最下位から2ビツトはステツプDl
6に於いてCレジスタメモリ97のT4レジスタに送ら
れる。ステツプDl7に於いては、Cレジスタメモリ9
7のT3レジスタからのアーギユメントカウントのアド
レスがQレジスタ92に送られる。更に、CALLG/
CALLSフラグがセツトされる。このフラグはその後
メモリスタツクに保管され、そしてメモリスタツクから
の情報の検索を制御するために戻り命令によつて後で使
用される。従つて、CALLG及びCALLS命令を用
いて、取替できる様にサブルーチンを呼び出すことがで
きる。次に利用できる位置を識別するためにSPレジス
タが減少され、そしてその減少された内容がDレジスタ
85に記憶される。次いで,Qレジスタ92のアーギユ
メントカウントのアドレスがメモリスタツクに記憶され
てアーギユメントリストを完成する。ステツプDl8中
にはDレジスタの内容が変更され、Rl4レジスタ即ち
スタツクポインタが、5次に利用できる位置の長ワード
境界に於いて整列される。ステツプDl9に於いては、
サブルーチンにより使用される汎用レジスタ及びプログ
ラムカウンタの内容をメモリスタツクに保管することに
よつてマイクロシーケンサ44が呼び出しル一 4チッ
の状態を保管する。これはメモリスタツクの整列された
位置で始められた第10C−2A図のステツプDl3の
場合と同様である。さて第10C−3図を参照すれば、
マイクロシjーケンサ44は第10C−2A図のステツ
プDl3及び第10C−2B図のステツプDl9により
示された転送を完了した後にステツプD2Oへと移行す
る。In steps D14 and D15, the central processing unit 10 again determines whether there is sufficient space in the memory stack allocated to it to store the information. The lowest two bits of the SP register are step Dl.
6, it is sent to the T4 register of the C register memory 97. In step Dl7, the C register memory 9
The address of the argument count from the T3 register of 7 is sent to the Q register 92. Furthermore, CALLG/
The CALLS flag is set. This flag is then saved on the memory stack and used later by the return instruction to control retrieval of information from the memory stack. Therefore, subroutines can be called interchangeably using the CALLG and CALLS instructions. The SP register is decremented to identify the next available location and its decremented contents are stored in D register 85. The address of the argument count in Q register 92 is then stored on the memory stack to complete the argument list. During step D18, the contents of the D register are modified and the R14 register, or stack pointer, is aligned on a long word boundary in the 5th available location. In step Dl9,
The microsequencer 44 saves the state of the called chip by saving the contents of the general purpose registers and program counters used by the subroutines to the memory stack. This is similar to step D13 of FIG. 10C-2A, which began with an aligned position in the memory stack. Now, referring to Figure 10C-3,
After the microsequencer 44 completes the transfer indicated by step D13 in FIG. 10C-2A and step D19 in FIG. 10C-2B, it proceeds to step D2O.
特に、フレームポインタレジスタとして働くRl3レジ
スタの内容がメモリスタツクの次に利用できる位置に転
送される。この後にはアーギユメントポインタレジスタ
を構成するRl2レジスタの内容が続く。ステツプD2
2に於いては、呼び出しルーチンの状態フラグがクリア
される。ここで、状態フラグとは、算術演算によつて生
ずる通常の負数、零、オーバーフロー及び桁上げ(借り
)コードであつて、プロセツサ状態ワードに記臆された
状態コードである。次いで中央処理装置10はサブルー
チンのスタートアドレスを、Cレジスタメモリ97のT
1レジスタから仮想アドレスラツチ67及びプログラム
カウンタ64に転送する(ステツプD23)。この点詳
述するに、第2のオペランド指定子(ステツプD2参照
)は、サブルーチンマスクを備えるサブルーチンの最初
の命令の位置を指定する。そのサブルーチンの次の命令
は、サブルーチンマスクの後の次の位置にあり、ステツ
プD23でいうスタートアドレスである。ステツプD2
とステツプD23との間のある時(それが何時であるか
は問題でない)に、第2のオペランド指定子によつて指
定される位置が増加され、CレジスタメモリのT1レジ
スタに記憶される。Cレジスタメモリは、命令によつて
アドレス可能なA及びBレジスタメモリと違つて、スク
ラツチパツドレジスタメモリとしてプロセツサによつて
使用されるものである。次いで命令バツフア制御器61
はサブルーチンの第1命令を命令バツフア60に転送し
始める。ステツプD24に於いてマイクロシーケンサ4
4は古いプロセツサ状態ワード、サブルーチンマスク、
スタツク整列ビツト及びCALLG/CALLSフラグ
からワードを形成しそしてこのワードをメモリスタツク
に保管する。ステツプD25に於いてマイクロシーケン
サ44はスタツクポインタレジスタの内容を新たなレジ
スタフレーム指示体としてRl3レジスタへ転送する。
次いでステツプD26に於いては呼び出しルーチンのT
ビツトに対応してTビツトがセツトされ、そしてステツ
プD27に於いてはマイクロシーケンサ44がサブルー
チンマスクの最上位の2ビツトに基いて10進及び整数
オ一Zシバーフローフラグをセツトし、浮動アンダーフ
ラグの様なその他のフラグを制御することもできる。In particular, the contents of the R13 register, which serves as the frame pointer register, is transferred to the next available location on the memory stack. This is followed by the contents of the Rl2 register, which constitutes the argument pointer register. Step D2
At step 2, the calling routine's status flag is cleared. Here, the status flags are normal negative numbers, zeros, overflows, and carry (borrow) codes generated by arithmetic operations, and are status codes recorded in the processor status word. Next, the central processing unit 10 stores the start address of the subroutine in the T register memory 97.
1 register to the virtual address latch 67 and program counter 64 (step D23). In particular, the second operand specifier (see step D2) specifies the location of the first instruction of the subroutine that comprises the subroutine mask. The next instruction of the subroutine is located at the next position after the subroutine mask, and is the start address referred to in step D23. Step D2
At some time between and step D23 (it does not matter when), the location specified by the second operand specifier is incremented and stored in the T1 register of the C register memory. C register memory is used by the processor as a scratch pad register memory, unlike the instruction addressable A and B register memories. Next, the command buffer controller 61
begins transferring the first instruction of the subroutine to instruction buffer 60. In step D24, the microsequencer 4
4 is the old processor state word, subroutine mask,
Form a word from the stack alignment bits and CALLG/CALLS flags and store the word in the memory stack. In step D25, the microsequencer 44 transfers the contents of the stack pointer register to the R13 register as a new register frame indicator.
Next, in step D26, T of the calling routine is
The T bit is set corresponding to the bit, and in step D27, the microsequencer 44 sets the decimal and integer overflow flags based on the most significant two bits of the subroutine mask, and sets the floating under flag. You can also control other flags such as .
ここで、Tビツトについて詳述するに、Tビツトは、セ
ツトされるとき、あるプログラムの実行中、より詳細に
述べると、ある命令の実行中にエラー jを検出する場
合に、プロセツサがトラツプ動作を行えるようにする。
このようなエラーは、例えば、命令のオペランド指定子
が存在しないメモリ位置を指定したり、または、ユーザ
プログラムがオペレーテイングシステム又はスーパーバ
イザに割り当てられていてそれによつてのみ実行されう
る命令を指定しているような場合に、生じうる。トラツ
プを生じうる他のエラーの例としては、(1)命令のオ
ペランド指定子が(例えば)バイトオペランドを指定し
ておりその命令がワード又は長ワードオペランドを必要
といているような場合、(2)スタツクの限界が越えら
れた場合、及び(3)電力故障の場合等がある。もしこ
れらの状態のうちのどれがが生じ、Tビツトがセツトさ
れるならば、プロセツサは、そのエラーをつきとめ、エ
ラーが生じたことをオペレータに知らせ、又は、その状
態が電力故障であるならばその機械の状態を保存させる
ようにするルーチンを実行する。ステツプD28に於い
ては、新たなアーギユメント指示体としてRl2レジス
タに情報が転送される。Here, to explain the T bit in detail, when it is set, the T bit indicates that when an error j is detected during the execution of a certain program, or more specifically during the execution of a certain instruction, the processor performs a trap operation. be able to do so.
Such errors occur, for example, when an operand specifier for an instruction specifies a memory location that does not exist, or when the user program specifies an instruction that is assigned to and can only be executed by the operating system or supervisor. This can occur in cases where Other examples of errors that can cause traps include (1) when an instruction's operand specifier specifies (for example) a byte operand and the instruction requires a word or longword operand; (3) when the stack limit is exceeded; and (3) when there is a power failure. If any of these conditions occur and the T bit is set, the processor will locate the error and notify the operator that an error has occurred, or if the condition is a power failure. Run a routine that causes the machine to save its state. In step D28, information is transferred to the Rl2 register as a new argument indicator.
命令が第10A図に示したCALLG命令であれば、こ
の情報はアーギユメントカウントを含んだアーギユメン
トリストの第1位置のアドレスを含む。命令が第10B
図に示したCALLS命令であれば、この情報はアーギ
ユメントカウントオペランドがメモリスタツクに送られ
た後のスタツクポインタの値を含む。いずれの場合にも
、次に行なう動作は、メモリスタツクの次に利用できる
位置に記憶される状態取扱い体のアドレスのために零の
値を記憶することである。(ステツプD28)。これは
次に続く状態取扱い体のアドレスのための位置をメモリ
スタツクに確保し且つ又状態取扱い体が初め存在しない
ことを示す。状態取扱体は、1次サブルーチンの実行中
に或る例外的な状態が生じた場合に呼び出すことのでき
る2次サブルーチンである。If the instruction is the CALLG instruction shown in FIG. 10A, this information includes the address of the first position in the argument list containing the argument count. The command is 10B
For the CALLS instruction shown, this information includes the value of the stack pointer after the argument count operand is sent to the memory stack. In either case, the next action is to store a value of zero for the address of the state handler stored in the next available location on the memory stack. (Step D28). This reserves a location in the memory stack for the address of the next succeeding state handler and also indicates that no state handler initially exists. A condition handler is a secondary subroutine that can be called if some exceptional condition occurs during execution of the primary subroutine.
特に、状態取扱い体サブルーチンは或るエラーが生じた
場合にデータ処理システムを既知の状態に戻すために使
用される。例えば、サブルーチンが存在しないフアイル
にアクセスしようとした場合に状態取扱いサブルーチン
を呼び出すことができる。この様な使用目的に於いては
、サブルーチンが、状態取扱い体サブルーチンのための
初期アドレスを、メモリスタツクの予約された位置に記
憶する。ステツプD28の後、中央処理装置は命令バツ
フア制御器61がステツプD23で検索を開始したとこ
ろのサブルーチンの第1命令を処理し始めることができ
る。In particular, state handler subroutines are used to return the data processing system to a known state in the event of an error. For example, a status handling subroutine can be called when an attempt is made to access a file for which no subroutine exists. For such use, the subroutine stores the initial address for the state handler subroutine in a reserved location on the memory stack. After step D28, the central processing unit can begin processing the first instruction of the subroutine for which instruction buffer controller 61 began searching in step D23.
上記した2つのサブルーチン呼び出し命令は非常に強力
な働きをする。いずれの呼び出し命令の実行が終わつた
時にも、サブルーチンへ移行したりサブルーチンから移
行したりするのに必要な全ての情報が正しく保管されて
いる。特に、メモリスタツクは呼び出しルーチンのプロ
グラムカウンタの内容、及び呼び出しルーチンの状態を
保管するその他の情報を含んでいる。Rl2レジスタの
アーギユメントポインタを用いることによつてアーギユ
メントが容易に検索され且つ種種の状態フラグがセツト
され、従つてサブルーチンに対する環境も確立される。
サブルーチンの最後の命令は1つのオペレーシヨンコー
ドより成る戻り命令であり、これはオペランド指定子を
持つていない。The two subroutine call instructions described above have very powerful functions. At the end of execution of any call instruction, all the information necessary to transition to and from a subroutine is correctly stored. In particular, the memory stack contains the contents of the calling routine's program counter and other information that saves the state of the calling routine. By using the argument pointer in the Rl2 register, the argument is easily retrieved and various status flags are set, thus establishing the environment for the subroutine.
The last instruction of the subroutine is a return instruction consisting of one operation code, which has no operand specifiers.
この命令に応答して、Rl3レジスタの現在フレームポ
インタの内容が変更されそしてRl4レジスタに戻され
、その前の呼び出し命令により確立されたメモリスタツ
クの最下部を指示し、マイクロシーケンサ44がただち
にスタツクの関連部分の始めのところへ進むことができ
る様にする。メモリスタツクの次の位置の内容は、(1
)呼び出しルーチンに対する処理装置の状態と、(2)
サブルーチンマスクと、(3)サブルーチンが第10A
図の命令で呼び出されたか或いは第10B図の命令で呼
び出されたかという指示と、(4)スタツクの整列中に
記憶された2ビツト値とを含んでいる。In response to this instruction, the contents of the current frame pointer in the Rl3 register are modified and returned to the Rl4 register to point to the bottom of the memory stack established by the previous call instruction, and the microsequencer 44 immediately Allows you to proceed to the beginning of the section. The contents of the next location in the memory stack are (1
) the state of the processing unit for the calling routine; and (2)
Subroutine mask and (3) subroutine is 10A
(4) the 2-bit value stored during stack alignment.
サブルーチンマスクはビツト位置0乃至11が零である
かどうかを決定するために試験される。もし零であれば
、レジスタを復帰する必要はなく、従つて保管されたサ
ブルーチンマスタを分離しそしてこの保管されたサブル
ーチンマスクの2っの高位ビツトを試験して10進及び
整数オーバーフローフラグを再び確立することができる
。サブルーチンマスクのビツト0乃至11のいずれかが
1を含んでいれば、それらのレジスタを検索しなければ
ならない。次いでスタツクポインタが、保管されたスタ
ツク整列ビツトに応答して適正に整列される。中央処理
装置は呼び出し命令を識別するビツトを試験する。第1
0A図の命令が呼び出され、その戻り動作が完全であれ
ば、マイクロシーケンサ44は呼び出しルーチンの次の
命令を処理し始める。さもなくば、マイクロシーケンサ
44はメモリスタツクからアーギユメントカウントを呼
び出し、そのカウントを1だけ増加し、このカウントを
バイトの数に変換し、このバイトの数をスタツクポイン
タレジスタの内容に加算し、そしてその和を仮想アドレ
スラツチ67に記憶する。次いで、検索されたプログラ
ムカウンタの内容を用いて命令バツフア制御器61は呼
び出しルーチンの呼び出し命令に続く命令である次の命
令をメモリから検索して、第10B図に示した呼び出し
命令からの復帰動作を完了することができる。この点、
第11図を参照して更に説明する。第11図は、CAL
LS及びCALLGサブルーチン呼び出し命令に応答す
るスタツクの状態を示している。CALLSサブルーチ
ンのためのアーギ゛ユメントは、呼び出しプログラムに
よつてスタツクヘプツシユされる。サブルーチン命令か
らの復帰に際しては次のような動作がなされる。復帰命
◆に応答して、状態取扱い体が放棄され、状態ワードが
状態レジスタへ再格納され、アーギユメントポインタ、
フレームポインタ及びプログラムカウンタが再格納され
、保管されたレジスタがサブルーチンマスクによつて指
定される位置に再格納される。この後、低位ビツトがス
タツクポインタへ再格納され、10進及び整数オーバー
フローフイールドが状態レジスタへ再格納される。この
時までに、スタツクポインタは、もしサブルーチン呼び
出し命令がCALLS命令であつたならば、スタツクの
了一ギ゛ユメントカウントワードを指している(さもな
ければ、ス (タツクポインタは、サブルーチン呼び出
し命令前のスタツクの頂部を指している)。次に、プロ
セツサは、再格納されたプログラムカウンタによつて指
示されている呼び出し命令を検索し、その命令がCAL
LS命令であつたかCALLG命令であつ 4たかを決
定する。もしその命令がCALLG命令であつたならば
、スタツクにアーギユメントリスト又はカウントがなく
、その復帰命令は完了している。しかし、もしその呼び
出し命令がCALLS命01乙令であつたならば、プロ
セツサは、スタツク(スタツクポイツタによつて指示さ
れている位置にある)からアーギユメントカウントを検
索し、そのアーギ゛ユメントカウンタをスタツクポイン
タの内容に加える。The subroutine mask is tested to determine whether bit positions 0-11 are zero. If it is zero, there is no need to restore the register, so isolate the saved subroutine master and test the two high order bits of this saved subroutine mask to reestablish the decimal and integer overflow flags. can do. If any of bits 0-11 of the subroutine mask contain a 1, those registers must be searched. The stack pointer is then properly aligned in response to the saved stack alignment bits. The central processing unit tests the bits that identify the calling instruction. 1st
When the instruction in Figure 0A is called and its return operation is complete, microsequencer 44 begins processing the next instruction in the calling routine. Otherwise, microsequencer 44 retrieves the argument count from the memory stack, increments that count by one, converts this count to a number of bytes, and adds this number of bytes to the contents of the stack pointer register. , and the sum is stored in the virtual address latch 67. Next, using the retrieved contents of the program counter, the instruction buffer controller 61 retrieves the next instruction from the memory, which is the instruction following the calling instruction of the calling routine, and performs the return operation from the calling instruction shown in FIG. 10B. can be completed. In this point,
This will be further explained with reference to FIG. Figure 11 shows the CAL
The state of the stack in response to LS and CALLG subroutine call instructions is shown. The arguments for the CALLS subroutine are stacked by the calling program. Upon return from a subroutine instruction, the following operations are performed. In response to the return command ◆, the state handler is discarded, the state word is restored to the state register, and the argument pointer,
The frame pointer and program counter are restored and the saved registers are restored to the locations specified by the subroutine mask. After this, the low order bits are restored to the stack pointer and the decimal and integer overflow fields are restored to the status register. By this time, the stack pointer points to the entire stack count word if the subroutine call instruction was a CALLS instruction (otherwise, the stack pointer points to the entire stack count word). (pointing to the top of the stack before the instruction).The processor then searches for the calling instruction pointed to by the restored program counter, and if that instruction is CAL
Determine whether it is an LS instruction or a CALLG instruction. If the instruction was a CALLG instruction, there is no argument list or count on the stack and the return instruction is complete. However, if the call instruction was a CALLS instruction 01, the processor retrieves the argument count from the stack (located at the location pointed to by the stack pointer) and Adds a counter to the contents of the stack pointer.
スタツクポインタは、スタツクへ新しいワードを加える
とき減少されるので(すなわち、スタツクは底部から満
たされ且つ空とされ、スタツクの頂部は実際にメモリの
より低いアドレスの方へ進行する)、この和は、アーギ
ユメントリストが呼び出しプログラムによつてスタツク
ヘプツシユされる前には、スタツクの頂部にある。プロ
グラムカウンタは、増加され呼び出しプログラムの次の
命令を指す。アーギユメントリストは、なおもスタツク
にあるが、スタツクポインタは、アーギユメントが呼び
出しプログラムによつて検索されるとき、変更される必
要はない。概して云えば、いかなる所与の長さを有する
こともできる色々な形式の命令をデコードする様な処理
装置を備えたデータ処理システムが説明された。This sum is at the top of the stack before the argument list is pushed onto the stack by the calling program. The program counter is incremented and points to the next instruction of the calling program. The argument list is still on the stack, but the stack pointer does not need to be changed when arguments are retrieved by the calling program. Generally speaking, a data processing system has been described that includes a processing unit that decodes various types of instructions that can have any given length.
これら命令の或るものは1つ或いはそれ以上のオペラン
ド指定子を含み、そして各々のオペランド指定子はオペ
ランドの位置を定める。本発明によれば、中央処理装置
はサブルーチン呼び出し命令に応答し、然してこの命令
は、呼び出しルーチン又はサブルーチンのいずれかに書
き込まれ表現された命令によつて含ませねばならなかつ
た多数の機能を自動的に実行する。前記した様に、中央
処理装置は、呼び出しルーチンを処理する間該装置の状
態を保管することによつて命令に応答するか、サブルー
チンの環境を確立することによつて命令に応答する。こ
れら全ての動作がプログラマの作業を簡単化し、且つ呼
び出しルーチン又はサブルーチンに割り当てねばならな
い命令位置の数を減少する。前記した説明は本発明の特
定の実施例に限られたものであるが、種々の基本的命令
を有するデータ処理システムや、本明細書に述べたもの
以外の内部回路を用いたデータ処理システムに於いても
本発明を実施することができ、然して本発明の前記した
目的及び効果の1部或いは全部を達成できるということ
が明らかであろう。Some of these instructions include one or more operand specifiers, and each operand specifier defines the location of an operand. According to the present invention, the central processing unit is responsive to a subroutine call instruction, which automatically performs a number of functions that would otherwise have to be included by the instructions written and expressed in either the calling routine or the subroutine. Execute according to purpose. As mentioned above, the central processing unit responds to instructions by saving the state of the device while processing a calling routine, or by establishing an environment for a subroutine. All of these actions simplify the programmer's work and reduce the number of instruction locations that must be allocated to calling routines or subroutines. Although the foregoing description is limited to specific embodiments of the invention, it may be applicable to data processing systems having a variety of basic instructions or using internal circuitry other than those described herein. It will be apparent that the invention may be practiced in any other manner and still achieve some or all of the objects and advantages set forth above.
それ故、本発明の範囲内に入るこの様なあらゆる変更及
び変型が特許請求の範囲に網羅されるものとする。It is therefore intended that the appended claims cover all such changes and modifications that fall within the scope of the invention.
第1図は本発明により構成されたデジタルデータ処理シ
ステムのプロツク図、第2A図乃至2D図は本発明の特
定実施例に関連しで用いられるデータの形式を示した図
、第3図は第1図に示した中央処理装置のプロツク図、
第4図は第1図及び3図に示された中央処理装置で処理
することのできる命令のフオーマツト及び編成を示した
図、第5図、5A図、5B図、及び5C図は第3図に示
したデータ路のプロツク図、第6A図は第3図に示した
命令バツフア及びデコード回路のプロツク図、並ぴに第
6B図及び6C図は第6A図に示された回路で伝送され
る或る信号を示した図、第7図及び7A図は第1図及び
3図に示した中央処理装置の動作を理解する上で役立つ
フローチヤート、第8A図は特定の命令のフオーマツト
を示す図、第8B図はこの命令から導出される或る情報
を示す図、そして第8C−1図、8C−2図、及び8C
3図は上記命令に応答した第1図及び3図の中央処理装
置の動作を示したフローチヤート、第9A及び9B図は
第8A図に示された命令の別のフオーマツトを示す図、
第9C−1図、及び9C−2図はこの変更された命令に
応答した第1図及び3図の中央処理装置の作動を示すフ
ローチヤート、第10A図及び10B図は叶び出しサブ
ルーチンに有用な命令のフオーマツトを示す図、そして
第10C−1図、10C−2A図、10C−2B図、1
0C−3図及び10C−4図はこれら命令に応答した第
1図及び3図の中央処理装置の作動を示したフローチヤ
ート、第11図はCALLS及びCALLGサブルーチ
ン呼び出し命令に応答するスタツクの状態を示す図であ
る。
10・・・・・仲央処理装置、11・・・・・・メモリ
装置、12・・・・・・入出力装置、14・・・・・・
SBI相互接続体、15・・・・・・オペレータのコン
ソール、16・・・・・・SBIインターフエイス・メ
モリカツシユ回路、17・・・・・・アドレス変換バツ
フア回路、18・・・・・・命令バツフア回路、19・
・・・・・データ路・内部レジスタ回路、20A,20
B・・・・・・メモリ制御器、21A,21B・・・・
・・メモリ配列体、22・・・・・・1/0バスアダプ
タ、23・・・・・・I/o装置、24,26・・・・
・・2次記憶装置バスアダプタ、25・・・・・・デイ
スク駆動装置、27・・・・・・テープ駆動装置、30
・・・・・・クロツク信号発生器、31・・・・・・S
BI制御回路、33・・・・・・データカツシユ回路、
34・・・・・・変換バツフア、36・・・・・・デー
タ路、37・・・・・・命令バツフア・デコード回路、
40・・・・・・プロダラム制御記憶回路、42・・・
・・・トラツプ一割り込み裁定回路、44・・・・・・
マイタロシーケンサ。1 is a block diagram of a digital data processing system constructed in accordance with the present invention; FIGS. 2A-2D are diagrams illustrating the format of data used in connection with a particular embodiment of the present invention; FIG. A block diagram of the central processing unit shown in Figure 1,
FIG. 4 is a diagram showing the format and organization of instructions that can be processed by the central processing unit shown in FIGS. 1 and 3, and FIGS. 6A is a block diagram of the instruction buffer and decoding circuit shown in FIG. 3, and FIGS. 6B and 6C are block diagrams of the data path shown in FIG. 6A. 7 and 7A are flowcharts useful in understanding the operation of the central processing unit shown in FIGS. 1 and 3; and FIG. 8A is a diagram illustrating the format of certain instructions. , FIG. 8B shows some information derived from this instruction, and FIGS. 8C-1, 8C-2, and 8C.
3 is a flowchart showing the operation of the central processing unit of FIGS. 1 and 3 in response to the above command; FIGS. 9A and 9B are diagrams showing another format of the command shown in FIG. 8A;
Figures 9C-1 and 9C-2 are flowcharts illustrating the operation of the central processing unit of Figures 1 and 3 in response to this modified command; Figures 10A and 10B are useful for the pop-up subroutine; 10C-1, 10C-2A, 10C-2B, 1
Figures 0C-3 and 10C-4 are flowcharts showing the operation of the central processing unit of Figures 1 and 3 in response to these commands, and Figure 11 shows the state of the stack in response to the CALLS and CALLG subroutine call commands. FIG. 10... Central processing unit, 11... Memory device, 12... Input/output device, 14...
SBI interconnect, 15...operator's console, 16...SBI interface memory cutter circuit, 17...address translation buffer circuit, 18...instruction. buffer circuit, 19.
...Data path/internal register circuit, 20A, 20
B...Memory controller, 21A, 21B...
...Memory array body, 22...1/0 bus adapter, 23...I/O device, 24, 26...
...Secondary storage device bus adapter, 25...Disk drive device, 27...Tape drive device, 30
......Clock signal generator, 31...S
BI control circuit, 33... data cutter circuit,
34...conversion buffer, 36...data path, 37...instruction buffer/decode circuit,
40...Produlum control storage circuit, 42...
...Trap-interrupt arbitration circuit, 44...
Mitaro sequencer.
Claims (1)
(第1図:11)を含むデータ処理システムのための中
央処理装置(第1図:10)であつて、少なくとも1つ
のルーチンは、アーギユメントリストにおける情報を処
理するためのサブルーチンを構成しており、そのサブル
ーチンの第1のメモリ位置は、サブルーチンマスクを記
憶しており、前記メモリにおける少なくとも他の1つの
ルーチンは、そのサブルーチンを使用し且つオペレーシ
ョンコード(第10A図:FA、第10B図:FB)、
呼び出しルーチンからサブルーチンへ通されるべきアー
ギユメントリストの指示体を識別せるための第1のオペ
ランド指定子(第10A図:アーギユメントリスト、第
10B図:アーギユメントカウント)及び前記メモリに
おけるサブルーチンマスクの位置を識別するための第2
のオペランド指定子(第10A図及び第10B図:行先
)を含む呼び出しルーチンであるような中央処理装置に
おいて、A、複数の汎用レジスタ、サブルーチンによつ
て使用されるべき汎用レジスタのどれかを指定するサブ
ルーチンにおけるサブルーチンマスク、前記メモリにお
ける命令をアドレスするためのプログラムカウンタレジ
スタ及び相続くメモリ位置のブロックを含むメモリスタ
ックにおける位置をアドレスするためのスタックポイン
タレジスタを含む汎用レジスタ手段(第5A図及び第5
B図:76、80、97)とB、命令オペレーションコ
ードをデコードするための命令デコード手段(第3図:
37)と、C、前記命令デコード手段に接続され前記命
令デコード手段がオペレーションコードをサブルーチン
呼び出し命令としてデコードするときそのサブルーチン
から第1のオペランド指定子をデコードするためのオペ
ランド検索手段(第3図:36、40)と、D、前記汎
用レジスタ手段、前記命令デコード手段及び前記オペラ
ンド検索手段に接続されサブルーチン呼び出し命令及び
サブルーチンマスクに応答してサブルーチンの実行前に
前記スタックポインタレジスタによつて指定された位置
で前記メモリスタックにおけるサブルーチンマスクによ
つて指定された汎用レジスタ及び前記プログラムカウン
タレジスタの内容を記憶し、自動的に呼び出しルーチン
のための処理装置状態情報を保持させるようにするため
の制御手段(第3図:44)とを備えることを特徴とす
る中央処理装置。 2 前記メモリは、所定数のバイト位置を各々有する複
数の隣接するメモリブロックを備えており、前記メモリ
には情報ブロックとして情報が記憶されており、所定の
情報ブロックは隣接するメモリブロックに存在しえて、
各メモリアドレスはメモリブロックをアドレスするため
の第1の部分及びアドレスされた情報ブロックのための
スタートバイト位置を識別するための第2の部分を有し
ており、前記制御手段は、更に、i、前記スタックポイ
ンタレジスタからのメモリアドレスの第2の部分を記憶
するための手段(第3図:44、第10図:D12)と
、ii、前記スタックポインタにおけるアドレスの第2
の部分の内容を基準値に設定し、前記スタックポインタ
レジスタによつてアドレスされたスタートバイト位置に
より、前記メモリブロックと同じサイズ又はそれより小
さいサイズの各情報ブロックが単一のメモリブロツクへ
確実に転送されるようにする手段(第3図:44、第1
0図:D12)とを含むような特許請求の範囲第1項記
載の中央処理装置。 3 前記制御手段(第3図:44、第10図:D9、D
10、D14、D15)は、サブルーチンマスクに応答
して呼び出しルーチンのための処理装置状態情報を記憶
するため前記メモリスタツクにおける十分な位置を使用
しうるかを確認するための手段を含むような特許請求の
範囲第1項記載の中央処理装置。 4 中央処理装置の作動状態を記憶するための状態レジ
スタ手段(PSW)を含んでおり、前記制御手段(第3
図:44、第10図:D24)は、サブルーチンの実行
前に前記スタックポインタによよつて指定される位置に
前記状態レジスタ手段の内容を記憶する手段を含んでい
るような特許請求の範囲第1項記載の中央処理装置。 5 前記汎用レジスタ手段は、フレームポインタレジス
タR13及びアーギユメントポインタレジスタR12と
してそれぞれ機能する汎用レジスタを含んでおり、前記
制御手段は、呼び出しルーチンのための付加的な処理装
置状態情報として前記フレームポインタレジスタ及び前
記アーギユメントポインタレジスタの内容を前記メモリ
スタックへ転送するための手段と、前記第1のオペラン
ド指定子に応答してサブルーチンによつて処理されるべ
きアーギユメントリストのためのアーギユメント基準ア
ドレスを得るための手段と、前記メモリスタックにおけ
るフレーム基準アドレスを識別するための手段と、前記
アーギユメント基準アドレス及びフレーム基準アドレス
を前記アーギユメントポインタ及び前記フレームポイン
タレジスタにそれぞれ転送するための手段とを含むよう
な特許請求の範囲第1項記載の中央処理装置。[Scope of Claims] 1. A central processing unit (Fig. 1: 10) for a data processing system including a memory (Fig. 1: 11) for storing instructions classified into routines, the central processing unit comprising at least one the two routines constitute a subroutine for processing information in the argument list, a first memory location of the subroutine storing a subroutine mask, and at least one other routine in said memory uses the subroutine and the operation code (FIG. 10A: FA, FIG. 10B: FB),
A first operand specifier (Figure 10A: Argument List, Figure 10B: Argument Count) for identifying the argument list indicator to be passed from the calling routine to the subroutine; a second for identifying the location of the subroutine mask in said memory;
In a central processing unit such as a calling routine containing an operand specifier (Figures 10A and 10B: Destination) of A, a plurality of general-purpose registers, specifying which of the general-purpose registers to be used by the subroutine. general-purpose register means (FIGS. 5A and 5A) including a subroutine mask in a subroutine to perform a subroutine, a program counter register for addressing instructions in said memory, and a stack pointer register for addressing locations in a memory stack containing a block of successive memory locations; 5
Figure B: 76, 80, 97) and B, instruction decoding means for decoding the instruction operation code (Figure 3:
37), and C, operand retrieval means connected to the instruction decoding means and for decoding the first operand specifier from the subroutine when the instruction decoding means decodes the operation code as a subroutine call instruction (FIG. 3: 36, 40), and D, which is connected to the general-purpose register means, the instruction decoding means and the operand retrieval means, and is designated by the stack pointer register before execution of the subroutine in response to a subroutine call instruction and a subroutine mask. control means for storing the contents of the general purpose register and the program counter register designated by the subroutine mask in the memory stack at a location and automatically retaining processor state information for the calling routine; Fig. 3: 44). 2. The memory includes a plurality of adjacent memory blocks each having a predetermined number of byte positions, the memory stores information as information blocks, and the predetermined information block is present in the adjacent memory blocks. Well,
each memory address has a first part for addressing a memory block and a second part for identifying a starting byte location for the addressed information block, the control means further comprising: i , means for storing a second part of a memory address from said stack pointer register (FIG. 3: 44, FIG. 10: D12); ii. a second part of an address in said stack pointer;
The start byte position addressed by the stack pointer register ensures that each information block of the same size or smaller than the memory block is placed in a single memory block. Means for transferring (Fig. 3: 44, 1st
0: D12). The central processing unit according to claim 1. 3 The control means (Fig. 3: 44, Fig. 10: D9, D
10, D14, D15) include means for determining whether sufficient locations in the memory stack are available for storing processor state information for a calling routine in response to a subroutine mask. The central processing unit according to scope 1. 4 includes state register means (PSW) for storing the operating state of the central processing unit;
FIG. 44, FIG. 10: D24) includes means for storing the contents of the status register means at a location designated by the stack pointer before execution of the subroutine. The central processing unit according to item 1. 5. said general purpose register means includes general purpose registers functioning as a frame pointer register R13 and an argument pointer register R12, respectively; means for transferring the contents of a pointer register and said argument pointer register to said memory stack; and for an argument list to be processed by a subroutine in response to said first operand specifier. means for obtaining an argument reference address of the memory stack; means for identifying a frame reference address in the memory stack; and transferring the argument reference address and the frame reference address to the argument pointer and the frame pointer registers, respectively. 2. A central processing unit according to claim 1, further comprising means for:
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US84541677A | 1977-10-25 | 1977-10-25 | |
US000000845416 | 1977-10-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5484945A JPS5484945A (en) | 1979-07-06 |
JPS5931735B2 true JPS5931735B2 (en) | 1984-08-03 |
Family
ID=25295191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53132101A Expired JPS5931735B2 (en) | 1977-10-25 | 1978-10-25 | Central processing unit for data processing systems |
Country Status (7)
Country | Link |
---|---|
JP (1) | JPS5931735B2 (en) |
AU (1) | AU517948B2 (en) |
CA (1) | CA1112368A (en) |
DE (1) | DE2846521A1 (en) |
FR (1) | FR2407521B1 (en) |
GB (1) | GB2007891B (en) |
IT (1) | IT1192334B (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU634781B2 (en) * | 1990-04-27 | 1993-03-04 | Digital Equipment Corporation | Normalizer |
WO1996008763A2 (en) * | 1994-09-16 | 1996-03-21 | Philips Electronics N.V. | Method, apparatus and instruction for performing a double jump register indirect operation transfer in a microcontroller |
DE10245367A1 (en) * | 2002-09-27 | 2004-04-15 | Infineon Technologies Ag | Processor with security instructions for sub-program jump command information, has command processing device formed in mother-program at occurrence of sub-program jump command |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3614741A (en) * | 1970-03-23 | 1971-10-19 | Digital Equipment Corp | Data processing system with instruction addresses identifying one of a plurality of registers including the program counter |
US3614740A (en) * | 1970-03-23 | 1971-10-19 | Digital Equipment Corp | Data processing system with circuits for transferring between operating routines, interruption routines and subroutines |
US3710324A (en) * | 1970-04-01 | 1973-01-09 | Digital Equipment Corp | Data processing system |
US3999163A (en) * | 1974-01-10 | 1976-12-21 | Digital Equipment Corporation | Secondary storage facility for data processing systems |
US4041462A (en) * | 1976-04-30 | 1977-08-09 | International Business Machines Corporation | Data processing system featuring subroutine linkage operations using hardware controlled stacks |
-
1978
- 1978-10-24 IT IT69442/78A patent/IT1192334B/en active
- 1978-10-25 CA CA314,209A patent/CA1112368A/en not_active Expired
- 1978-10-25 DE DE19782846521 patent/DE2846521A1/en active Granted
- 1978-10-25 FR FR7830342A patent/FR2407521B1/en not_active Expired
- 1978-10-25 AU AU41038/78A patent/AU517948B2/en not_active Expired
- 1978-10-25 GB GB7841839A patent/GB2007891B/en not_active Expired
- 1978-10-25 JP JP53132101A patent/JPS5931735B2/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
AU4103878A (en) | 1980-05-01 |
IT1192334B (en) | 1988-03-31 |
CA1112368A (en) | 1981-11-10 |
GB2007891B (en) | 1982-09-08 |
IT7869442A0 (en) | 1978-10-24 |
JPS5484945A (en) | 1979-07-06 |
FR2407521A1 (en) | 1979-05-25 |
DE2846521A1 (en) | 1979-04-26 |
AU517948B2 (en) | 1981-09-03 |
DE2846521C2 (en) | 1991-11-14 |
FR2407521B1 (en) | 1988-02-05 |
GB2007891A (en) | 1979-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS5931734B2 (en) | central processing unit that executes instructions with special operand specifiers | |
US4236206A (en) | Central processor unit for executing instructions of variable length | |
US4395758A (en) | Accelerator processor for a data processing system | |
US4926317A (en) | Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses | |
US4620275A (en) | Computer system | |
US4338663A (en) | Calling instructions for a data processing system | |
US4524416A (en) | Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system | |
US4648034A (en) | Busy signal interface between master and slave processors in a computer system | |
US5218712A (en) | Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption | |
US4361868A (en) | Device for increasing the length of a logic computer address | |
JPS5911943B2 (en) | Trap mechanism for data processing equipment | |
EP0297893A2 (en) | Apparatus and method for recovering from page faults in vector data processing operations | |
EP0405495B1 (en) | Instruction unit logic management apparatus included in a pipelined processing unit and method therefor | |
EP0328721A2 (en) | Dynamic multiple instruction stream multiple data multiple pipeline floatingpoint unit | |
US4241399A (en) | Calling instructions for a data processing system | |
JPH0517588B2 (en) | ||
US4812972A (en) | Microcode computer having dispatch and main control stores for storing the first and the remaining microinstructions of machine instructions | |
US4791560A (en) | Macro level control of an activity switch in a scientific vector processor which processor requires an external executive control program | |
US3623158A (en) | Data processing system including nonassociative data store and associative working and address stores | |
JP2638581B2 (en) | Fetch mechanism for providing instructions and operands to a processor | |
JPS5931735B2 (en) | Central processing unit for data processing systems | |
JPS5931733B2 (en) | central processing unit that executes variable length instructions | |
GB1570510A (en) | Micro-programme controlled data processing systems | |
CA1302579C (en) | Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system | |
Rolund et al. | The 3B20D Processor & DMERT Operating System: 3B20D Central Processing Unit |