JPH0546391A - パイプライン演算制御方式 - Google Patents

パイプライン演算制御方式

Info

Publication number
JPH0546391A
JPH0546391A JP3199551A JP19955191A JPH0546391A JP H0546391 A JPH0546391 A JP H0546391A JP 3199551 A JP3199551 A JP 3199551A JP 19955191 A JP19955191 A JP 19955191A JP H0546391 A JPH0546391 A JP H0546391A
Authority
JP
Japan
Prior art keywords
processing
register
arithmetic
data
old data
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
Application number
JP3199551A
Other languages
English (en)
Inventor
Nobuhiko Yamagami
宣彦 山上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP3199551A priority Critical patent/JPH0546391A/ja
Publication of JPH0546391A publication Critical patent/JPH0546391A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 パイプライン制御において分割処理を実行す
る際に、ハードウェアを増加させずに、演算異常時のデ
ータ回復を可能とする。 【構成】 1回の演算処理では完結できない処理ACを
前半と後半との2回の演算処理AB,BCに分けて実行
する際に、前半の演算処理ABの演算結果Bをレジスタ
に書き込む前のタイミングにおいてソースレジスタの内
容Aをレジスタ間でコピーする処理を追加実行し、前半
の処理または後半の処理のいずれで異常が発生した場合
にも、その異常が発生した処理以降のレジスタ更新を禁
止することにより、いずれの演算処理において異常が発
生しても、元のデータを保存しておいてデータの回復に
利用できるようにする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、CPUのパイプライ
ン演算制御方式に関する。
【0002】
【従来の技術】従来、CPUによってある演算処理Aを
実行する場合、他の演算処理Bと演算処理Cとの組み合
わせで実行することがある。例えば、ソースレジスタと
デスティネーションレジスタをCPU内のレジスタに限
定した型変換処理、 CONVaTOc %r(m),%(n)…レジスタ
(m)の変数型Aのデータを変数型Cに変えてレジスタ
(n)に書き込む処理を、 CONVaTOb %r(m),%r(n) と、 CONVbTOc %r(n),%r(n) との等価な2回の処理で行なう場合がある。
【0003】一方、演算処理で演算異常が生起されたと
きに、どのレジスタの内容をも書き換えてはならない方
式のCPUでは、上記の後半の処理 CONVbTOc %r(n),%r(n) と等価な処理で異常が発生したときには、すでにレジス
タ(m)は書き換えられており、元のデータへの回復が
できない。
【0004】そこで、これを避けるためには、演算の中
間処理結果を保持する特別のレジスタを設けるようにし
ていた。
【0005】
【発明が解決しようとする課題】以上のように従来のC
PUのパイプライン演算制御方式では、パイプライン制
御方式で演算処理を行なうCPUで、1回の演算処理で
は完結できない処理ACを処理ABと処理BCとの2回
の演算処理に分けて実行する場合に、後半の処理で異常
が発生したときには元のデータへの回復ができないた
め、これを避けるためには、演算の中間処理結果を保持
する特別のレジスタを設けるようにしていたが、このよ
うにすることによって、ハードウェアの構成点数が増加
する問題点があった。
【0006】この発明は、このような従来の問題点に鑑
みなされたもので、パイプライン制御方式の演算装置の
特性を利用し、特別なハードウェアを追加することな
く、演算異常発生時には元のデータを保存しておくこと
ができ、データの回復が容易なパイプライン演算制御方
式を提供することを目的とする。
【0007】
【課題を解決するための手段】この発明は、1回の演算
処理では完結できない処理を前半と後半との2回の演算
処理に分けて実行するパイプライン演算制御方式におい
て、前半の処理の演算結果が書き込まれる前にソースレ
ジスタの旧データを読み出し、後半の処理が開始された
後に旧データのレジスタ間コピーを完了するタイミング
においてソースレジスタの内容をレジスタ間でコピーす
る処理を追加実行し、前記前半の処理または後半の処理
のいずれで異常が発生した場合にも、その異常が発生し
た処理以降のレジスタ更新を禁止することを特徴とす
る。
【0008】
【作用】この発明のCPUのパイプライン制御方式で
は、1回の演算処理では完結できない処理ACを前半と
後半との2回の演算処理AB,BCに分けて実行する際
に、前半の処理ABの演算結果Bが書き込まれる前にソ
ースレジスタの旧データAを読み出し、後半の処理BC
が開始された後に旧データAのレジスタ間コピーを完了
するタイミングにおいてソースレジスタの内容Aをレジ
スタ間でコピーする処理を追加実行し、前半の処理AB
または後半の処理BCのいずれで異常が発生した場合に
も、その異常が発生した処理以降のレジスタ更新を禁止
することにより、前後いずれの演算処理において異常が
発生しても、元のデータを保存しておいてデータの回復
に利用できるようにする。
【0009】すなわち、いま、1つの演算処理として型
Aから型Cへの変換処理 CONVaTOc %r(m),%r(n) を実行する場合、 CONVaTOb %r(m),%r(n)…型Aから型Bへの変換処理 MOVE %r(n),%r(n)…レジスタ間のデータ転送 CONVbTOc %r(n),%r(n)…型Bから型Cへの変換処理 の等価な処理の組み合わせによって実現する。そして、
この場合に、MOVEというデータの値、演算結果情報
(コンディションコード)を変化させず、演算異常を生
起することもない処理を、前半の処理CONVaTOb
%r(m),%r(n)が完了してレジスタにその演
算結果が書き込まれる前のタイミングに開始し、後半の
処理CONVbTOc %r(n),%r(n)が終了
する前に終了するように制御する。
【0010】こうすることによって、前半の処理で異常
が発生した場合にも後半の処理で異常が発生した場合に
も、このMOVE処理により転送されたレジスタの内容
を読み出すことにより元のデータを知ることができるよ
うになる。
【0011】
【実施例】以下、この発明の実施例を図に基づいて詳説
する。
【0012】図1は3サイクルのパイプライン制御演算
を行なうCPUの構成を示しており、ソースレジスタと
もデスティネーションレジスタともなるレジスタファイ
ル1と、このレジスタファイル1から読み出したソース
データを一時的に保持するラッチ2と、演算器3と、こ
の演算器3によって実行された演算結果を一時的に保持
するラッチ4と、マシンサイクルのタイミングを制御す
る制御回路5から構成されている。
【0013】そして、このCPUでは、第1サイクルに
おいてレジスタファイル1からソースデータを読み出し
てラッチ2に保持し、第2サイクルにおいて演算器3に
よって演算を行ない、その結果をラッチ4に保持し、第
3サイクルにおいてラッチ4に保持されている演算結果
をレジスタファイル1に書き戻す手順で、演算処理を行
なう。
【0014】次に、このCPUを用いて型Aから型Cへ
のデータ変換処理を行なう際のパイプライン演算制御方
式の実施例を説明する。
【0015】図2に示すように、処理ACを処理AB,
BCの2回に分けて実行する場合、次の3つの処理を所
定のタイミングにおいて順次実行する。
【0016】 処理(1):CONVaTOb %r(m),%r(n) 処理(2):MOVE %r(n),%r(n) 処理(3):CONVbTOc %r(n),%r(n) まず、サイクル(A)で処理(1)が指定されると、サ
イクル(A)でソースデータaのレジスタリード、サイ
クル(B)で演算、サイクル(C)で演算結果としての
新データbのレジスタライトが行なわれ、デスティネー
ションレジスタとなるレジスタファイル1はサイクル
(D)から新データbを保持するようになる。
【0017】そこで、新データbが書き込まれる前のタ
イミングであるサイクル(B)またはサイクル(C)に
おいて、処理(2)が指定されると、レジスタファイル
1にはまだ旧データaが保持されているために、この旧
データaが読み出され、その後、処理(2)の終了する
タイミングであるサイクル(E)またはサイクル(F)
でデスティネーションレジスタとなるレジスタファイル
1が再び旧データaに書き戻されることになる。
【0018】一方、処理(3)は、サイクル(D)のタ
イミング(このタイミングでは、ソースレジスタとなる
レジスタファイル1は、処理(1)による演算結果とし
ての新データbが書き込まれており、しかも、このレジ
スタファイル1に保持されていた旧データaは処理
(2)によって読み出されているために、処理(2)に
用いるデータは旧データaのままである)において指定
することにより、処理(1)の演算結果bを読み出し
て、サイクル(F)でレジスタファイル1にこの演算結
果である新データcを書き込む。
【0019】このような手順によってパイプライン制御
演算を行なうことにより、演算異常が発生するのは、処
理(1)または処理(3)であり、処理(2)では発生
しないので、演算異常が発生した処理以降のレジスタ更
新を禁止するだけで、処理(1)、処理(3)のいずれ
で異常が発生しても元のデータを保存することができ
る。
【0020】すなわち、処理(1)で演算異常が発生す
れば、この処理(1)が終了するまではソースレジスタ
としてのレジスタファイル1の内容は旧データaのまま
であるために、このレジスタファイル1の内容を読み出
すことによりデータの回復ができる。一方、処理(3)
で演算異常が発生すれば、この処理(3)が開始された
後に処理(2)によってMOVE処理が行われていてソ
ースレジスタであるレジスタファイル1の内容は旧デー
タaに書き替えられているため、この場合にもレジスタ
ファイル1の内容を読み出すことによってデータの回復
ができるのである。
【0021】
【発明の効果】以上のようにこの発明によれば、1つの
処理を2回に分けて実行する場合に、前半の処理の演算
結果がデスティネーションレジスタに書き込まれる前に
ソースレジスタの旧データを読み出し、後半の処理が開
始された後に旧データのレジスタ間コピーを完了するタ
イミングにおいてソースレジスタの旧データのレジスタ
間コピー処理を追加実行するようにしているため、前半
の処理、後半の処理のいずれで演算異常が発生したとし
ても、その異常発生以降のレジスタ更新を禁止すること
により、異常発生時にはソースレジスタに常に旧データ
が保持されていることになり、データ回復を容易に行な
うことができ、しかも、この処理のためになんらハード
ウェアの構成要素を増加させる必要がない。
【図面の簡単な説明】
【図1】この発明の一実施例を実行するCPUのブロッ
ク図。
【図2】この発明の一実施例の演算処理手順を示すフロ
ーチャート。
【符号の説明】
1 レジスタファイル(REG) 2 ラッチ(Rs) 3 演算器(ALU) 4 ラッチ(Rd) 5 制御回路(CNT) (1) CONV処理 (2) MOVE処理 (3) CONV処理 A,B,C,… マシンサイクル CLK クロック信号 ctrl 処理

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 1回の演算処理では完結できない処理を
    前半と後半との2回の演算処理に分けて実行するパイプ
    ライン演算制御方式において、 前半の処理の演算結果が書き込まれる前にソースレジス
    タの旧データを読み出し、後半の処理が開始された後に
    旧データのレジスタ間コピーを完了するタイミングにお
    いてソースレジスタの旧データのレジスタ間コピー処理
    を追加実行し、前記前半の処理または後半の処理のいず
    れで異常が発生した場合にも、その異常が発生した処理
    以降のレジスタ更新を禁止することを特徴とするパイプ
    ライン演算制御方式。
JP3199551A 1991-08-08 1991-08-08 パイプライン演算制御方式 Pending JPH0546391A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3199551A JPH0546391A (ja) 1991-08-08 1991-08-08 パイプライン演算制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3199551A JPH0546391A (ja) 1991-08-08 1991-08-08 パイプライン演算制御方式

Publications (1)

Publication Number Publication Date
JPH0546391A true JPH0546391A (ja) 1993-02-26

Family

ID=16409712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3199551A Pending JPH0546391A (ja) 1991-08-08 1991-08-08 パイプライン演算制御方式

Country Status (1)

Country Link
JP (1) JPH0546391A (ja)

Similar Documents

Publication Publication Date Title
JP3834145B2 (ja) ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
JPH0248732A (ja) 命令パイプライン方式のマイクロプロセッサ
JP3822568B2 (ja) イベント処理
JPH05143323A (ja) タイプ1ダイアデイツク命令を実行する方法及び装置
JPS6227412B2 (ja)
JPH0546391A (ja) パイプライン演算制御方式
EP0212132A1 (en) Method and digital computer for recovering from errors
JPS6120893B2 (ja)
JP2552738B2 (ja) データ処理装置
JP2894438B2 (ja) パイプライン処理装置
JPS60126736A (ja) デ−タ処理装置
JPH0616287B2 (ja) マスク付きベクトル演算処理装置
JPH0519745B2 (ja)
JP2812610B2 (ja) パイプライン制御方式
JPS6149695B2 (ja)
JPH04181331A (ja) 命令リトライ方式
JPH0916399A (ja) 計算機
JP2953451B2 (ja) 割り込み処理方法
JPH0222417B2 (ja)
JP3014701B2 (ja) 情報処理装置
JPS6012656B2 (ja) リトライ制御方式
JPS58205256A (ja) データ処理方法
JPH05250161A (ja) マイクロコンピュータ装置
US20060179282A1 (en) Method using hazard vector to enhance issue throughput of dependent instructions in a microprocessor
JPS61143850A (ja) 処理装置