JPH05282146A - Information processor - Google Patents
Information processorInfo
- Publication number
- JPH05282146A JPH05282146A JP7647892A JP7647892A JPH05282146A JP H05282146 A JPH05282146 A JP H05282146A JP 7647892 A JP7647892 A JP 7647892A JP 7647892 A JP7647892 A JP 7647892A JP H05282146 A JPH05282146 A JP H05282146A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- access violation
- information
- fetch
- branch
- 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.)
- Pending
Links
Landscapes
- Advance Control (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、複数の命令の流れを先
行的に処理する命令実行部と命令フェッチ部を備えた情
報処理装置に係わり、命令フェッチに関するアクセス違
反情報を制御レジスタに格納する制御に関するものであ
る。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus having an instruction execution unit and an instruction fetch unit for processing a plurality of instruction streams in advance, and stores access violation information regarding instruction fetch in a control register. It is about control.
【0002】[0002]
【従来の技術】近年、情報処理装置では、仮想記憶を実
現するために、メモリ管理部などが命令フェッチに対し
てアクセス違反を検出する方法が多く採用されている。
以下図面を参照しながら、上記した従来の情報処理部の
一例について説明する。図4は従来の情報処理部の概略
構成図を示すものである。図4において、1は制御レジ
スタで、メモリ管理部3に於いて命令フェッチに関する
アクセス違反が検出された時、そのアクセス違反情報20
が書き込まれ、命令実行部4で例外処理ハンドラが実行
された時に読みだし命令によって、アクセス違反情報21
を通して読み出される。2は命令フェッチ部で、命令実
行部4が実行している命令に後続する命令でまだフェッ
チされていないものに対してフェッチを行ない命令30を
受けとり、命令31を介して命令実行部4に供給する。ま
た、命令フェッチ例外40を受けとると、ダミーの命令を
命令31に出力するとともに命令フェッチ例外41をアサー
トする。3はメモリ管理部で、命令論理アドレス10を命
令物理アドレス11に変換すると同時に、そのアクセスの
メモリ空間の属性を調べ、アクセス違反があれば命令フ
ェッチ例外40をアサートし、アクセス違反の種類をアク
セス違反情報20に出力する。4は命令実行部で、命令フ
ェッチ部2から命令31を受けとり実行し、命令フェッチ
例外41を受けとると、命令フェッチ例外を起こし、命令
フェッチ例外の処理ハンドラに制御を移す。ここで、50
は飛び先アドレスを示す。2. Description of the Related Art In recent years, in information processing apparatuses, in order to realize virtual storage, a method in which a memory management unit or the like detects an access violation with respect to an instruction fetch is often adopted.
An example of the above-described conventional information processing unit will be described below with reference to the drawings. FIG. 4 shows a schematic configuration diagram of a conventional information processing unit. In FIG. 4, reference numeral 1 is a control register, and when an access violation related to instruction fetch is detected in the memory management unit 3, the access violation information 20
Is written, and when the exception handling handler is executed in the instruction execution unit 4, the access violation information 21
Read through. 2 is an instruction fetch unit, which fetches an instruction subsequent to the instruction being executed by the instruction execution unit 4 that has not been fetched, receives the instruction 30, and supplies it to the instruction execution unit 4 via the instruction 31. To do. When it receives the instruction fetch exception 40, it outputs a dummy instruction to the instruction 31 and asserts the instruction fetch exception 41. A memory management unit 3 converts an instruction logical address 10 into an instruction physical address 11 and at the same time examines the attribute of the memory space of the access, asserts an instruction fetch exception 40 if there is an access violation, and accesses the access violation type. Output to violation information 20. An instruction execution unit 4 receives an instruction 31 from the instruction fetch unit 2 and executes it. When an instruction fetch exception 41 is received, an instruction fetch exception occurs, and control is transferred to an instruction fetch exception processing handler. Where 50
Indicates the destination address.
【0003】以上のように構成された情報処理装置につ
いて、以下その動作について説明する。最初に例外を発
生しない場合の命令のフェッチについて説明する。ま
ず、命令フェッチ部2は、命令実行部4が実行している命
令の後続の命令をフェッチするために、その命令論理ア
ドレス10を出力する。命令論理アドレス10はメモリ管理
部3によってアドレス変換が行なわれ命令物理アドレス1
1が出力される。命令物理アドレス11に対応する命令が
命令30に出力され、命令フェッチ部2は命令30を受けと
り、命令実行部4に命令31を介して供給する。The operation of the information processing apparatus configured as described above will be described below. First, the instruction fetch when no exception occurs will be described. First, the instruction fetch unit 2 outputs the instruction logical address 10 in order to fetch the instruction subsequent to the instruction executed by the instruction execution unit 4. The instruction logical address 10 is translated by the memory management unit 3 and the instruction physical address 1
1 is output. The instruction corresponding to the instruction physical address 11 is output to the instruction 30, the instruction fetch unit 2 receives the instruction 30, and supplies it to the instruction execution unit 4 via the instruction 31.
【0004】次に命令フェッチ例外が発生する場合につ
いて説明する。例外を発生しない場合と同様に、命令フ
ェッチ部2は命令フェッチを開始する。次に、メモリ管
理部3は命令論理アドレス10を用いてアドレス変換とア
クセス違反の検出を行ない、アクセス違反が発生する。
したがって命令フェッチ例外40がアサートされ、アクセ
ス違反情報20が制御レジスタ1に取り込まれる。命令フ
ェッチ部は命令フェッチ例外40を受けとると、命令フェ
ッチ例外41をアサートし、命令31にダミー命令を供給す
る。命令実行部4は命令フェッチ例外が発生したことを
示すフラグを持ったダミー命令を実行する時に、命令フ
ェッチ例外を発生し、制御を命令フェッチ例外処理ハン
ドラに移す。命令フェッチ例外処理ハンドラは制御レジ
スタ1を読み出す命令を用いてアクセス違反情報21を介
して制御レジスタ21の内容、つまり命令フェッチで発生
したアクセス違反の情報を得て、その情報を元に例外処
理を行なう。Next, a case where an instruction fetch exception occurs will be described. The instruction fetch unit 2 starts the instruction fetch as in the case where no exception is generated. Next, the memory management unit 3 uses the instruction logical address 10 to perform address conversion and access violation detection, and an access violation occurs.
Therefore, the instruction fetch exception 40 is asserted, and the access violation information 20 is fetched in the control register 1. Upon receiving the instruction fetch exception 40, the instruction fetch unit asserts the instruction fetch exception 41 and supplies the dummy instruction to the instruction 31. When executing a dummy instruction having a flag indicating that an instruction fetch exception has occurred, the instruction execution unit 4 generates an instruction fetch exception and transfers control to the instruction fetch exception handling handler. The instruction fetch exception handling handler obtains the contents of the control register 21 via the access violation information 21, that is, the information of the access violation generated by the instruction fetch, using the instruction to read the control register 1, and performs exception processing based on the information. To do.
【0005】[0005]
【発明が解決しようとする課題】しかしながら上記のよ
うな構成では、複数の命令列をフェッチし、命令の流れ
が決定する前に命令実行部4が先行的に命令を実行し、
命令の流れが決定した後に先行的に実行していた命令の
結果のうち選ばれた命令の流れに属している命令の実行
結果のみを有効にする情報処理装置において、複数の命
令列のフェッチにおいてアクセス違反が発生する場合、
複数のアクセス違反のうち1つを選択することが出来る
のは命令実行部4において命令の流れが決定した時であ
り、アクセス違反検出時には制御レジスタ1にアクセス
違反情報20を選択的に書き込む制御を行なうことが出来
ないので、例外処理ハンドラにアクセス違反情報を渡す
ことが出来ないという問題点を有していた。However, in the above configuration, a plurality of instruction sequences are fetched, and the instruction execution unit 4 executes the instructions in advance before the instruction flow is determined,
When fetching a plurality of instruction sequences in an information processing device that validates only the execution result of the instruction belonging to the selected instruction flow among the results of the instructions that were executed in advance after the instruction flow was determined If an access violation occurs,
One of a plurality of access violations can be selected when the instruction flow is determined in the instruction execution unit 4, and when the access violation is detected, it is possible to selectively write the access violation information 20 to the control register 1. Since it cannot be performed, there is a problem that access violation information cannot be passed to the exception handler.
【0006】本発明は上記問題点に鑑み、複数の命令列
のフェッチにおけるアクセス違反情報を一つの制御レジ
スタに選択的に格納する情報処理装置を提供することを
目的とする。In view of the above problems, it is an object of the present invention to provide an information processing device for selectively storing access violation information in fetching a plurality of instruction sequences in one control register.
【0007】[0007]
【課題を解決するための手段】上記問題点を解決するた
めに本発明は、複数の命令列を命令の流れが決定する前
に先行的に実行する命令実行部と、複数の命令列を先行
的にフェッチし、命令実行部に供給する命令フェッチ部
と、例外情報を格納する制御レジスタを備えた情報処理
装置であって、命令フェッチでアクセス違反が起きた場
合は、命令フェッチ部がその情報を命令実行部に供給
し、命令実行部は命令フェッチアクセス違反が起きたこ
とを命令の流れが決定した後に有効な命令列中の命令フ
ェッチアクセス違反を起こした情報を制御レジスタに書
き込むという構成を備えたものである。In order to solve the above problems, the present invention provides an instruction execution unit that executes a plurality of instruction sequences in advance before the instruction flow is determined and a plurality of instruction sequences. If an access violation occurs in the instruction fetch, the information fetching unit includes an instruction fetch unit that fetches the data and supplies it to the instruction execution unit, and a control register that stores exception information. Is supplied to the instruction execution unit, and after the instruction flow determines that an instruction fetch access violation has occurred, the instruction execution unit writes the information that caused the instruction fetch access violation in the valid instruction sequence to the control register. Be prepared.
【0008】[0008]
【作用】本発明は上記した構成によって、命令フェッチ
においてアクセス違反が発生した時、アクセス違反の情
報が命令フェッチ部に知らされ、命令フェッチ部はあた
かもアクセス違反によってフェッチされなかった命令が
フェッチされたかのように、ダミー命令とともにアクセ
ス違反の情報を命令実行部に供給する。命令実行部は命
令の流れが決定した後に、選択された命令の流れ中の命
令の完了を処理する時にアクセス違反の情報を持つ命令
を処理すると、そのアクセス違反情報を制御レジスタに
格納し、命令フェッチ例外を発生し、制御を例外処理ハ
ンドラに移す。例外処理ハンドラは制御レジスタを読み
出して、アクセス違反情報を得ることが出来る。According to the present invention, when the access violation occurs in the instruction fetch, the information of the access violation is notified to the instruction fetch unit, and the instruction fetch unit is as if the instruction not fetched due to the access violation is fetched. As described above, the access violation information is supplied to the instruction execution unit together with the dummy instruction. When the instruction execution unit processes an instruction having access violation information when processing the completion of the instruction in the selected instruction flow after the instruction flow is determined, the instruction execution unit stores the access violation information in the control register and Generates a fetch exception and transfers control to the exception handler. The exception handler can read the control register and obtain the access violation information.
【0009】[0009]
【実施例】以下本発明の一実施例の情報処理装置につい
て、図面を参照しながら説明する。図1は本発明の実施
例における情報処理装置の構成図を示すものである。図
1において、1はアクセス違反情報を格納する制御レジ
スタ、2は複数の命令の流れをフェッチし命令実行部に
命令とアクセス違反情報を供給する命令フェッチ部、3
はアドレス変換およびアクセス違反の検出を行なうメモ
リ管理部、4は複数の命令列を命令の流れの決定に先行
して実行し、命令の流れが決定した後アクセス違反情報
を持った命令を処理する際にアクセス違反情報をレジス
タ1に格納し、例外を発生する命令実行部である。DESCRIPTION OF THE PREFERRED EMBODIMENTS An information processing apparatus according to an embodiment of the present invention will be described below with reference to the drawings. FIG. 1 shows a block diagram of an information processing apparatus in an embodiment of the present invention. In FIG. 1, 1 is a control register that stores access violation information, 2 is an instruction fetch unit that fetches a plurality of instruction streams and supplies instructions and access violation information to an instruction execution unit, 3
Is a memory management unit which performs address translation and detection of access violation, 4 executes a plurality of instruction sequences prior to determining the instruction flow, and processes the instruction having access violation information after the instruction flow is determined In this case, the instruction execution unit stores access violation information in the register 1 and generates an exception.
【0010】また、図2に命令フェッチ部の一例の構成
図を示す。図2において、図1と同一物には同一符号を
付してある。110と120は命令部とアクセス違反情報部の
対から成る4個のバッファ111〜114および121〜124で構
成されたFIFO(ファーストインファーストアウト)メモリ
である。101はFIFOメモリ110と120、セレクタ104と105
から構成される命令キューである。100は命令キュー101
を制御する制御回路である。制御回路100は、飛び先ア
ドレス50によって示される分岐先アドレスまたは、プロ
グラム順のアドレスを命令論理アドレス10に出力し命令
フェッチを行ない、信号103で命令キュー101を制御す
る。なお、飛び先アドレス50は、命令フェッチ部2の外
部から入力されているが、これは、分岐先アドレスの計
算が命令フェッチ部2の外部で行なわれる場合という一
例を示したものであって、命令フェッチ部2で命令をデ
コードし分岐先アドレスを計算する場合も本発明は有効
であり、特に命令フェッチ部2の構成を限定したわけで
はない。命令キュー101は信号103によって、以下の
1),2)について制御される。1)フェッチされた命
令30とアクセス違反情報20を分岐の成立側と不成立側の
2つの命令の流れのどちらかに属するかによって2つのFI
FOメモリ110と120に分けて格納し、2)2つのFIFOメモ
リ110と120の出力する命令とアクセス違反情報を選択し
て命令31とアクセス違反情報22に出力する。このとき、
アクセス違反情報が何らかの違反が検出されたことを示
していると、命令31にNOP命令を出力する。また、命令
の流れが確定した場合は、有効となった命令列を保持し
ない方のFIFOメモリの内容を無効化する。なお、命令キ
ュー101が2つのFIFOメモリ110と120で構成されている
が、これは、2つの命令の流れが決定した場合にどちら
かのFIFOメモリを無効化することにより先行的にフェッ
チした命令の無効化が行なえるからであり、命令キュー
101の構成を限定したものではない。また、FIFOメモリ
の数および、FIFOメモリの持つバッファ数も限定したわ
けではない。FIG. 2 shows a block diagram of an example of the instruction fetch unit. 2, the same parts as those in FIG. 1 are designated by the same reference numerals. Reference numerals 110 and 120 denote FIFO (first in first out) memories composed of four buffers 111 to 114 and 121 to 124 each including a pair of an instruction part and an access violation information part. 101 is FIFO memory 110 and 120, selectors 104 and 105
Is an instruction queue composed of 100 is the instruction queue 101
Is a control circuit for controlling. The control circuit 100 outputs the branch destination address indicated by the jump destination address 50 or the program order address to the instruction logical address 10 to fetch the instruction, and controls the instruction queue 101 with the signal 103. The jump destination address 50 is input from outside the instruction fetch unit 2, but this shows an example of the case where the calculation of the branch destination address is performed outside the instruction fetch unit 2, The present invention is also effective when the instruction fetch unit 2 decodes an instruction to calculate a branch destination address, and the configuration of the instruction fetch unit 2 is not particularly limited. The instruction queue 101 is controlled by the signal 103 for the following 1) and 2). 1) Fetch the fetched instruction 30 and access violation information 20 between the branching side and the branching side.
Two FIs depending on which of the two instruction streams they belong to
The FO memories 110 and 120 are separately stored, and 2) the instruction and access violation information output from the two FIFO memories 110 and 120 are selected and output to the instruction 31 and the access violation information 22. At this time,
When the access violation information indicates that some kind of violation is detected, the NOP instruction is output to the instruction 31. When the instruction flow is confirmed, the contents of the FIFO memory that does not hold the valid instruction sequence are invalidated. The instruction queue 101 is composed of two FIFO memories 110 and 120. This is because the instructions fetched in advance by invalidating one of the FIFO memories when the flow of two instructions is determined. This is because the instruction queue can be invalidated.
The configuration of 101 is not limited. Further, the number of FIFO memories and the number of buffers of the FIFO memories are not limited.
【0011】図3に命令実行部4の一例の構成図を示
す。図3において、図1と同一物には同一符号を付して
ある。21〜23はアクセス違反情報、31は命令、201はデ
コーダ、202はデコーダ201でデコードされた命令で実行
待ちの命令を格納する実行待ちバッファ、203は演算ユ
ニット、204は演算ユニット203で演算を終えた命令で完
了を待つ命令を格納する完了待ちバッファである。ま
た、アクセス違反情報22は命令31と対を成して移動し、
実行待ちバッファ202および完了待ちバッファ204に格納
される。フェッチされた命令31をデコーダ201でデコー
ドし、アクセス違反情報22とともに実行待ちバッファ20
2に格納する。そして、実行待ちバッファ202に格納され
ている命令のうちデータ依存やリソース競合がない命令
をプログラム順とは関係なく演算ユニット203で実行
し、完了待ちバッファ204に格納する。完了待ちバッフ
ァ204に格納された命令は命令順に完了される。つま
り、完了待ちバッファには複数の命令の流れに属する命
令が混在する場合があるが、完了されるのは命令の流れ
が確定した後であり、命令の流れが確定した時に、実行
待ちバッファ202と完了待ちバッファ204に格納されてい
る有効でない方の命令の流れに属する命令は無効化され
る。FIG. 3 is a block diagram showing an example of the instruction execution unit 4. 3, the same parts as those in FIG. 1 are designated by the same reference numerals. 21 to 23 are access violation information, 31 is an instruction, 201 is a decoder, 202 is an execution waiting buffer which stores an instruction waiting to be executed by the decoder 201, 203 is an arithmetic unit, and 204 is an arithmetic unit 203. It is a completion waiting buffer that stores an instruction that waits for completion at the completed instruction. Also, the access violation information 22 moves in pairs with the instruction 31,
It is stored in the execution waiting buffer 202 and the completion waiting buffer 204. The fetched instruction 31 is decoded by the decoder 201, and the execution wait buffer 20 along with the access violation information 22.
Store in 2. Then, among the instructions stored in the execution waiting buffer 202, an instruction having no data dependence or resource conflict is executed by the arithmetic unit 203 regardless of the program order, and is stored in the completion waiting buffer 204. The instructions stored in the completion waiting buffer 204 are completed in the order of the instructions. In other words, the completion wait buffer may contain instructions belonging to a plurality of instruction streams, but it is completed after the instruction flow is confirmed, and when the instruction flow is confirmed, the execution wait buffer 202 And the instruction belonging to the instruction stream that is not valid and is stored in the completion waiting buffer 204 is invalidated.
【0012】このようにして、命令実行部4は、複数の
命令の流れに属する命令を先行的に実行することが出来
る。なお、実行待ちバッファ202および完了待ちバッフ
ァ204を持たない命令パイプラインを用いても、複数の
命令の流れに属する命令を命令パイプラインの途中まで
先行的に実行することが可能であり、命令実行部4の構
成を限定したわけではない。また、分岐アドレスは演算
ユニット203で計算され飛び先アドレス50に出力され
る。In this way, the instruction executing section 4 can execute instructions belonging to a plurality of instruction streams in advance. Even if an instruction pipeline having neither the execution waiting buffer 202 nor the completion waiting buffer 204 is used, it is possible to execute instructions belonging to a plurality of instruction streams in advance up to the middle of the instruction pipeline. The structure of Part 4 is not limited. The branch address is calculated by the arithmetic unit 203 and output to the jump destination address 50.
【0013】さらに、もし完了待ちバッファ204から完
了しようとしている命令がアクセス違反を示すアクセス
違反情報を持つ場合は、その内容がアクセス違反情報23
に出力され、例外を発生し、制御が例外処理ハンドラに
移る。このとき、完了待ちバッファ204および実行待ち
バッファ202に格納されていた命令は無効化される。Further, if the instruction to be completed from the completion waiting buffer 204 has access violation information indicating access violation, the content is the access violation information 23.
Is output to, an exception is generated, and control is transferred to the exception handling handler. At this time, the instructions stored in the completion waiting buffer 204 and the execution waiting buffer 202 are invalidated.
【0014】以上のように構成された情報処理装置につ
いて、以下図1、図2及び図3を用いてその動作を説明
する。まず、分岐命令を含まない命令列のフェッチと実
行の動作について説明する。つまり、命令の流れが一つ
である場合である。このとき、新しくフェッチされる命
令30およびアクセス違反情報20はFIFOメモリ110かまた
はFIFOメモリ120のうち選択された方に格納され、選択
されたFIFOメモリの出力が命令31およびアクセス違反情
報22に出力されるように制御される。そして、命令の供
給により選択されたFIFO命令に空きが出来た場合には、
そのFIFOメモリの最後に格納されている命令の後続の命
令のアドレスを命令論理アドレス10に出力し命令フェッ
チを開始する。The operation of the information processing apparatus configured as described above will be described below with reference to FIGS. 1, 2 and 3. First, the operation of fetching and executing an instruction sequence that does not include a branch instruction will be described. That is, there is one instruction flow. At this time, the newly fetched instruction 30 and access violation information 20 is stored in the selected one of the FIFO memory 110 or the FIFO memory 120, and the output of the selected FIFO memory is output to the instruction 31 and access violation information 22. Controlled to be done. If there is a vacancy in the selected FIFO instruction due to the supply of the instruction,
The address of the instruction following the instruction stored at the end of the FIFO memory is output to the instruction logical address 10 to start the instruction fetch.
【0015】また、命令フェッチ部2が出力する命令論
理アドレス10に対して、メモリ管理部3によってアドレ
ス変換およびアクセス違反の検出が行なわれる。ここ
で、アクセス違反がなければ命令物理アドレス11が記憶
装置に供給され、そのアドレスに対応する命令が命令30
にフェッチされ、上で説明したように命令フェッチ部2
を通って命令実行部4に供給される。Further, with respect to the instruction logical address 10 output from the instruction fetch unit 2, the memory management unit 3 performs address conversion and access violation detection. If there is no access violation, the instruction physical address 11 is supplied to the storage device, and the instruction corresponding to that address is sent to the instruction 30.
Fetched by the instruction fetch unit 2 as described above.
And is supplied to the instruction execution unit 4.
【0016】次に、供給された命令31は、確定した命令
の流れに属するので、完了待ちバッファ204で命令の流
れの未決定のために留まることなく完了する。もし、命
令フェッチでアクセス違反があった場合は、アクセス違
反情報20が命令フェッチ部2に送られる。したがって、
選択されている方のFIFOメモリの最後のアクセス違反情
報部にアクセス違反情報20が格納され、それ以前の命令
が命令31を通して供給された後に、アクセス違反情報22
に出力される。このとき、命令31にはダミー命令として
NOP命令が出力される。また、アクセス違反を起こした
フェッチに後続する命令フェッチは行なわれない。なぜ
なら、アクセス違反を起こしたフェッチで得られるはず
の命令の実行が終らなければ、後続する命令の実行を行
なうことが出来ないからである。アクセス違反を起こし
たフェッチに対応するダミー命令とアクセス違反情報は
それぞれ、命令31とアクセス違反情報22を介して命令実
行部4に供給される。ダミー命令に先行する命令が完了
して、完了待ちバッファ204から追い出された後、ダミ
ー命令の完了の際に、ダミー命令の持つアクセス違反情
報がアクセス違反があったことを示しているので、ダミ
ー命令の完了は行なわれず、そのアクセス違反情報がア
クセス違反情報23を通して制御レジスタ1に格納され、
例外が発生し、例外処理ハンドラに制御が移される。Next, since the supplied instruction 31 belongs to the confirmed instruction flow, it is completed without being stopped because the instruction flow is undecided in the completion waiting buffer 204. If there is an access violation in the instruction fetch, the access violation information 20 is sent to the instruction fetch unit 2. Therefore,
After the access violation information 20 is stored in the last access violation information section of the selected FIFO memory and the previous instruction is supplied through the instruction 31, the access violation information 22
Is output to. At this time, as a dummy instruction for instruction 31,
NOP instruction is output. Further, the instruction fetch following the fetch that caused the access violation is not performed. This is because the subsequent instruction cannot be executed unless the execution of the instruction that should have been obtained by the fetch that caused the access violation is completed. The dummy instruction corresponding to the fetch that caused the access violation and the access violation information are supplied to the instruction execution unit 4 via the instruction 31 and the access violation information 22, respectively. After the instruction preceding the dummy instruction is completed and is ejected from the completion waiting buffer 204, when the dummy instruction is completed, the access violation information of the dummy instruction indicates that there is an access violation. The instruction is not completed, the access violation information is stored in the control register 1 through the access violation information 23,
An exception occurs and control is transferred to the exception handler.
【0017】例外処理ハンドラは、通常の命令列と同様
にフェッチされ命令実行部で処理を行なう。このとき、
制御レジスタ1を読み出す命令を実行することによりア
クセス違反情報21を通してアクセス違反情報を読みだ
し、その情報にしたがって処理を行なうことが出来る。The exception handler is fetched in the same manner as a normal instruction string and processed by the instruction execution unit. At this time,
By executing an instruction to read the control register 1, the access violation information can be read out through the access violation information 21 and the processing can be performed according to the information.
【0018】次に、分岐命令を含む命令列のフェッチと
実行の動作について説明する。このとき、命令の流れ
は、分岐命令に先行する命令列と、分岐命令に後続する
命令列と、分岐命令の飛び先の命令列に分かれる。ま
た、分岐命令に先行する命令列は完了することが確定し
ているが、分岐命令に後続する命令列と分岐命令の飛び
先の命令列については完了することが決まるのは分岐命
令の実行が完了する時である。ただし、分岐命令の飛び
先のアドレスの計算は分岐の条件の決定の前に行なうこ
とが出来る場合がある。Next, the operation of fetching and executing an instruction string including a branch instruction will be described. At this time, the instruction flow is divided into an instruction sequence preceding the branch instruction, an instruction sequence following the branch instruction, and an instruction sequence to which the branch instruction jumps. Although it is determined that the instruction sequence preceding the branch instruction is completed, the instruction sequence subsequent to the branch instruction and the instruction sequence to which the branch instruction jumps are determined to be completed when the branch instruction is executed. It's time to finish. However, there are cases where the calculation of the jump destination address of the branch instruction can be performed before the determination of the branch condition.
【0019】まず、現在の命令実行部4で実行中の命令
は分岐命令を含んでなく、その命令の流れに属する命令
列は命令フェッチ部2のFIFOメモリ110に格納されてい
る。そして、その命令列に分岐命令が現れ、命令実行部
4の演算ユニット203で実行され、その分岐先のアドレス
が飛び先アドレス50に出力される。命令フェッチ部2は
飛び先アドレス50の示すアドレスを命令論理アドレス10
に出力し、命令フェッチを開始する。メモリ管理部3は
アドレス変換とアクセス違反の検出を行なう。アクセス
違反がなければ、命令の流れが異なるので命令30をFIFO
メモリ120に格納する。したがって、分岐の不成立側の
命令はFIFOメモリ110に、成立側の命令はFIFOメモリ120
に格納されることになる。First, the instruction currently being executed by the instruction execution unit 4 does not include a branch instruction, and the instruction sequence belonging to the instruction flow is stored in the FIFO memory 110 of the instruction fetch unit 2. Then, a branch instruction appears in the instruction sequence, and the instruction execution unit
It is executed by the arithmetic unit 203 of 4 and the address of the branch destination is output to the jump destination address 50. The instruction fetch unit 2 sets the address indicated by the jump destination address 50 to the instruction logical address 10
To output the instruction fetch. The memory management unit 3 performs address translation and access violation detection. If there is no access violation, the instruction flow is different.
It is stored in the memory 120. Therefore, the instruction on the branch not taken side is stored in the FIFO memory 110, and the instruction on the taken side is stored in the FIFO memory 120.
Will be stored in.
【0020】命令の供給については、分岐の成立側の命
令がフェッチされるまでは分岐の不成立側の命令、つま
りFIFOメモリ110に格納されている命令を供給し、分岐
の成立側の命令がフェッチされたら、FIFOメモリ120の
出力を命令31を通して命令実行部4に供給する。命令実
行部4は分岐成立側または分岐不成立側の命令をデコー
ドし実行待ちバッファ202に格納し、演算ユニット203で
実行し、完了待ちバッファ204に格納し命令の完了を待
つ。その一連の実行動作中に分岐条件が確定し、分岐が
成立した時点で、命令実行部4が持つ分岐の不成立側の
命令を無効化し、同時にFIFOメモリ110に格納されてい
る命令を無効化する。また分岐が成立しない時は命令実
行部4および命令フェッチ部2の分岐成立側の命令を無効
化する。分岐の確定で無効化されなかった命令は順に完
了され、完了待ちバッファ204から追い出される。分岐
が確定した後、命令フェッチ部2は、無効化されなかっ
た側の後続の命令のフェッチを続ける。逆に分岐の飛び
先の命令フェッチでアクセス違反がある場合は、分岐成
立側のFIFOメモリ120にアクセス違反情報20が書き込ま
れる。ここで、分岐成立側の後続命令のフェッチは行な
われなくなり、分岐不成立側の後続命令のフェッチが行
なわれる。さらに、分岐不成立側の後続の命令のフェッ
チにおいてアクセス違反が発生した場合は、分岐不成立
側のFIFOメモリ110にアクセス違反情報20が書き込まれ
る。分岐成立側のアクセス違反が起こった時の命令供給
は、分岐成立側のアクセス違反情報とダミー命令をそれ
ぞれアクセス違反情報22と命令31に出力することにより
行なわれる。そのあとは、分岐不成立側の命令が供給さ
れ、最後に分岐不成立側のアクセス違反情報とダミー命
令が供給される。Regarding the instruction supply, until the instruction on the branch taken side is fetched, the instruction on the branch not taken side, that is, the instruction stored in the FIFO memory 110 is supplied, and the instruction on the taken side is fetched. Then, the output of the FIFO memory 120 is supplied to the instruction execution unit 4 through the instruction 31. The instruction execution unit 4 decodes the branch taken side or branch not taken side instruction, stores it in the execution waiting buffer 202, executes it in the arithmetic unit 203, stores it in the completion waiting buffer 204, and waits for the completion of the instruction. When the branch condition is determined during the series of execution operations and the branch is taken, the instruction on the non-taken side of the branch held by the instruction execution unit 4 is invalidated, and at the same time the instruction stored in the FIFO memory 110 is invalidated .. When the branch is not taken, the instructions on the branch taken side of the instruction execution unit 4 and the instruction fetch unit 2 are invalidated. Instructions that have not been invalidated due to branch determination are completed in order and are expelled from the completion waiting buffer 204. After the branch is confirmed, the instruction fetch unit 2 continues to fetch the subsequent instruction on the side that has not been invalidated. Conversely, if there is an access violation in the instruction fetch at the jump destination of the branch, the access violation information 20 is written in the FIFO memory 120 on the branch taken side. Here, the subsequent instruction on the branch taken side is no longer fetched, and the subsequent instruction on the branch not taken side is fetched. Furthermore, when an access violation occurs in the fetch of the subsequent instruction on the branch not taken side, the access violation information 20 is written to the FIFO memory 110 on the branch not taken side. Instruction supply when an access violation occurs on the branch taken side is performed by outputting the access violation information and the dummy instruction on the branch taken side to the access violation information 22 and the instruction 31, respectively. After that, the instruction on the branch not taken side is supplied, and finally, the access violation information and the dummy instruction on the branch not taken side are supplied.
【0021】命令実行部4は命令アクセス違反の起こっ
たことを示すアクセス違反情報を持ったダミー命令を実
行する。この時ダミー命令はNOP命令であり、実行待ち
バッファ202、演算ユニット203を通って完了待ちバッフ
ァ204に進み処理される。ただし、2つのダミー命令は分
岐の条件が確定するまでは完了し、完了待ちバッファ20
4から追い出されることはない。その一連の処理の間に
分岐条件が確定し、分岐が成立しない場合は、分岐成立
側の命令の流れに属する命令が無効化される。また逆
に、分岐が成立する場合は、分岐不成立側の命令の流れ
に属する命令が無効化される。当然、2つのアクセス違
反情報を持つダミー命令のうちの一つは無効化される。
したがって、分岐の確定後は、分岐の成立か不成立かに
よって決まる命令の流れに属する命令のみが完了待ちバ
ッファ204で完了される。このとき、完了される命令の
流れに属するダミー命令の持つアクセス違反情報のみが
アクセス違反情報23を通して制御レジスタ1に書き込ま
れる。同時に例外が発生し、例外処理ハンドラに制御が
移る。よって、例外処理ハンドラは、制御レジスタ1を
読み出すことによってアクセス違反情報を得て、その処
理をすることが出来る。The instruction execution section 4 executes a dummy instruction having access violation information indicating that an instruction access violation has occurred. At this time, the dummy instruction is a NOP instruction, and goes through the execution waiting buffer 202 and the arithmetic unit 203 to the completion waiting buffer 204 for processing. However, the two dummy instructions are completed until the branch condition is fixed, and the completion wait buffer 20
You won't be kicked out of 4. If the branch condition is determined during the series of processes and the branch is not taken, the instruction belonging to the branch taken side instruction stream is invalidated. On the contrary, when the branch is taken, the instruction belonging to the instruction flow on the branch not taken side is invalidated. Naturally, one of the dummy instructions having two pieces of access violation information is invalidated.
Therefore, after the branch is confirmed, only the instructions belonging to the instruction flow determined by whether the branch is taken or not taken are completed in the completion waiting buffer 204. At this time, only the access violation information of the dummy instruction belonging to the completed instruction flow is written in the control register 1 through the access violation information 23. At the same time, an exception occurs and control is transferred to the exception handler. Therefore, the exception handler can obtain the access violation information by reading the control register 1 and perform the processing.
【0022】なお、本実施例では、メモリ管理部3を命
令フェッチに関するアクセス違反を検出する装置として
用いたが、これを命令フェッチに関する例外を検出する
他のどんな装置で置き換えても良いことは明らかであ
り、例えばバス制御部としても良い。In the present embodiment, the memory management unit 3 is used as a device for detecting an access violation related to instruction fetch, but it is obvious that it may be replaced with any other device for detecting an exception related to instruction fetch. And may be, for example, a bus control unit.
【0023】[0023]
【発明の効果】以上のように本発明は、分岐命令の飛び
先などを先行的にフェッチし実行する情報処理装置にお
いて、命令フェッチに対するアクセス違反が発生した時
に、そのアクセス違反情報をダミー命令に付加して命令
実行部に供給し、命令実行部で分岐が確定したときに、
命令の流れを選択決定し、選択決定された命令の流れに
属する命令でアクセス違反を示すアクセス違反情報を持
つ命令の完了処理を行なう時に、そのアクセス違反情報
を制御レジスタに格納し、例外を発生し、制御を例外処
理ハンドラに移すことにより、例外処理ハンドラが制御
レジスタを読み出すことでアクセス違反情報を得ること
が出来る。したがって、分岐の成立側でのアクセス違反
情報と分岐の不成立側でのアクセス違反情報を選択的に
制御レジスタに格納し、例外処理ハンドラに渡すことが
出来る。As described above, according to the present invention, when an access violation for an instruction fetch occurs in an information processing apparatus that fetches and executes a jump destination of a branch instruction in advance, the access violation information is converted into a dummy instruction. When it is added and supplied to the instruction execution unit and the branch is confirmed in the instruction execution unit,
When an instruction flow is selected and decided, and when the instruction belonging to the selected and decided instruction flow has access violation information indicating access violation, the access violation information is stored in the control register and an exception is generated. However, by transferring control to the exception handler, the exception handler can read the control register to obtain access violation information. Therefore, the access violation information on the side where the branch is taken and the access violation information on the side where the branch is not taken can be selectively stored in the control register and passed to the exception handler.
【図1】本発明の一実施例における情報処理装置の構成
図FIG. 1 is a configuration diagram of an information processing device according to an embodiment of the present invention.
【図2】同実施例における命令フェッチ部の構成図FIG. 2 is a block diagram of an instruction fetch unit in the same embodiment.
【図3】同実施例における命令実行部の構成図FIG. 3 is a configuration diagram of an instruction execution unit in the same embodiment.
【図4】従来の情報処理装置の構成図FIG. 4 is a configuration diagram of a conventional information processing device.
1 制御レジスタ 2 命令フェッチ部 3 メモリ管理部 4 命令実行部 10 命令論理アドレス 11 命令物理アドレス 20、21、22、23 アクセス違反情報 30、31 命令 40 命令フェッチ例外 50 飛び先アドレス 100 命令フェッチ部の制御回路 101 命令キュー 103 制御信号 104、105 セレクタ 110、120 FIFOメモリ 111、112、113、114、121、122、123、124 バッファ 201 デコーダ 202 実行待ちバッファ 203 演算ユニット 204 完了待ちバッファ 1 control register 2 instruction fetch unit 3 memory management unit 4 instruction execution unit 10 instruction logical address 11 instruction physical address 20, 21, 22, 23 access violation information 30, 31 instruction 40 instruction fetch exception 50 jump destination address 100 instruction fetch unit Control circuit 101 Instruction queue 103 Control signal 104, 105 Selector 110, 120 FIFO memory 111, 112, 113, 114, 121, 122, 123, 124 Buffer 201 Decoder 202 Execution wait buffer 203 Arithmetic unit 204 Completion wait buffer
Claims (1)
先行して実行する命令実行部と、前記命令実行部の要求
する複数の命令の流れを先行的にフェッチする命令フェ
ッチ部を備えた情報処理システムであって、前記命令フ
ェッチ部は命令フェッチで発生するアクセス違反情報
を、ダミー命令に付加して前記命令実行部に供給し、前
記命令実行部は命令の流れが決定した後のステージにお
いて、命令に付加されている前記アクセス違反情報を用
いて命令フェッチ例外を発生し、前記アクセス違反情報
を制御レジスタに格納することを特徴とする情報処理装
置。1. An instruction execution unit for executing an instruction sequence of a plurality of streams prior to the determination of an instruction stream, and an instruction fetch unit for fetching a plurality of instruction streams requested by the instruction execution unit in advance. In the information processing system, the instruction fetch unit adds the access violation information generated by the instruction fetch to a dummy instruction and supplies the dummy instruction to the instruction execution unit, and the instruction execution unit determines the instruction flow. In the stage, the information processing apparatus, wherein an instruction fetch exception is generated by using the access violation information added to the instruction, and the access violation information is stored in a control register.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7647892A JPH05282146A (en) | 1992-03-31 | 1992-03-31 | Information processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7647892A JPH05282146A (en) | 1992-03-31 | 1992-03-31 | Information processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05282146A true JPH05282146A (en) | 1993-10-29 |
Family
ID=13606305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7647892A Pending JPH05282146A (en) | 1992-03-31 | 1992-03-31 | Information processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05282146A (en) |
-
1992
- 1992-03-31 JP JP7647892A patent/JPH05282146A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5961637A (en) | Split branch system utilizing separate set branch, condition and branch instructions and including dual instruction fetchers | |
AU598969B2 (en) | Method and apparatus for executing instructions for a vector processing system | |
JPH02208728A (en) | Virtual instruction cash refill algorithm | |
JPS6217252B2 (en) | ||
US5930820A (en) | Data cache and method using a stack memory for storing stack data separate from cache line storage | |
US5930520A (en) | Pipelining device in a parallel processing apparatus and an instruction supplying method therefor | |
US5197136A (en) | Processing system for branch instruction | |
US5740391A (en) | Preventing premature early exception signaling with special instruction encoding | |
JPH10143365A (en) | Parallel processing device and its command issuing system | |
JPH0743648B2 (en) | Information processing equipment | |
US11586444B2 (en) | Processor and pipeline processing method for processing multiple threads including wait instruction processing | |
US5421026A (en) | Data processor for processing instruction after conditional branch instruction at high speed | |
JPS5991551A (en) | Instruction prefetching device forecasting address to be branched | |
JPH05282146A (en) | Information processor | |
JPH05241827A (en) | Command buffer controller | |
JP3493110B2 (en) | High-speed branch processing unit | |
JPH0193825A (en) | Prefetch queue control system | |
EP0315995B1 (en) | Processing system for branch instruction | |
JPH04340145A (en) | Cache memory device | |
JPH0962508A (en) | Processor having branch registering instruction | |
JPH087713B2 (en) | Microprocessor | |
JPH0774992B2 (en) | Data processing device | |
JPH05108348A (en) | Parallel arithmetic processor | |
EP0365187A2 (en) | Apparatus for selective execution of instructions following a branch instruction | |
JPH10283182A (en) | Pipeline information processor |