JPH02100716A - 演算回路 - Google Patents

演算回路

Info

Publication number
JPH02100716A
JPH02100716A JP63254106A JP25410688A JPH02100716A JP H02100716 A JPH02100716 A JP H02100716A JP 63254106 A JP63254106 A JP 63254106A JP 25410688 A JP25410688 A JP 25410688A JP H02100716 A JPH02100716 A JP H02100716A
Authority
JP
Japan
Prior art keywords
register file
data
exception
read
arithmetic 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.)
Pending
Application number
JP63254106A
Other languages
English (en)
Inventor
Hiromasa Takahashi
宏政 高橋
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP63254106A priority Critical patent/JPH02100716A/ja
Publication of JPH02100716A publication Critical patent/JPH02100716A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔目次〕 概要 産業上の利用分野 従来の技術 発明が解決しようとする課題 (第3〜6図) 課題を解決するだめの手段 作用 実施例 本発明の一実施例     (第1.2図)発明の効果 (概要) 演算回路に関し、 演算ユニットとレジスタファイルを直接接続した場合で
あっても、例外発生時にレジスタファイルの前データを
破壊することなく保存して、例外処理を容易に行うこと
のできる演算回路を提供することを目的とし、 レジスタファイルから必要なデータ、オペランド等を読
み出し、演算ユニットによって数値演算を行い、演算ユ
ニットの出力データを直接にレジスタファイルに書き込
むとともに、演算ユニットの演算結果に例外が発生する
と、例外フラッグを発生させる演算回路において、前記
レジスタファイルの書込ポート側をリードライトポート
にするとともに、レジスタファイルのデータをリードラ
イトポートを介して読み出し、一時ラッチするランチ手
段と、前記演算ユニットとり−ドライトポ−1−の間に
位置し、レジスタファイルへの書き込み時に演算ユニッ
トからの出力データあるいはラッチ手段のランチ出力を
前記例外フラッグに基づいて択一的に選択してリードラ
イトポートに出力する選択手段と、を設け、例外発生時
には選択手段によりラッチ手段のラッチ出力を選択し、
リードライトポートを介してレジスタファイルにラッチ
手段からの出力データを書き込み、通常時には演算ユニ
ットからの出力データを選択し、リードライトポートを
介してレジスタファイルに通常データを書き込むように
構成する。
〔産業上の利用分野] 本発明は、演算回路に係り、詳しくは、レジスタファイ
ルと演算ユニットにより演算を行う場合の例外発生時の
処理を容易にした演算回路に関する。
近年、集積回路の集積規模の拡大と高速化の必要性から
、これまで別々のチップ上に実現されることが多かった
数値演算ユニット(例えば、ALtl。
乗算器、除算器等)とレジスタファイルを同一チップ上
に実現する(順向にある。この場合、高速化の点から演
算ユニットに出力データレジスタを設けずに直接データ
をレジスタファイルに書き込んだほうが有利であるが、
演算ユニットにおいて例外が発生した場合に例外処理が
複雑になる。
〔従来の技術〕
従来のこの種の演算回路としては、例えば3図に示すよ
うなもの(以下、第1の従来例という)がある。同図に
示す演算回路は演算ユニット1とレジスタファイル2と
をそれぞれ別のチップ上に実現し、これらの間を入力バ
ス3、出力データパス4等によって接続した例である。
演算ユニット1はパイプライン構成を採り、外部からの
演算の命令要求に従ってレジスタファイル2のリードポ
ートから必要なデータ、オペランド等を取り込んで演算
を実行し、最終段のパイプラインステージから演算デー
タを出力データレジスタ5および例外検出回路6に出力
する。出力データレジスタ5に保持されたデータは次の
サイクルで出力データハス4を介してレジスタファイル
2側のライトポート7によりレジスタファイル2に書込
まれ、このとき、ライトポート7はう・イトアドレスに
従って上記データの書込みアドレスを指定するとともに
、アドレスゲート8を介して供給されるライトイネーブ
ル信号に基づいて書込みを行う。なお、ライトイネーブ
ル信号はH“で書込可、“L”で言送禁止である。
一方、演算ユニット1における最終段のパイプラインス
テージから例外検出回路6に送られたデータにより、例
外検出回路6は例外が発生したか否かを検出する。例外
としては、例えばI EEE754−1985規格の場
合は、Invalid operaLion、 Div
ision by O,Overflow、 Unde
rflow、 Inexact Re5ultがある。
これらの例外が発生した場合にはトラップを発生して例
外処理ルーチンを実行するのが一般的である。この場合
に、例外発生時の出力データはレジスタファイル2には
書き込まず、その書込アドレス(デスティネーションア
ドレス)にある前データを保存する必要がある。
そのため、例外発生時には例外検出回路6の出力に基づ
き例外フラッグレジスタ9が例外フラッグを立て、イン
バータ10を介してアドレスゲート8に反転信号を出力
する。このため、例外発生時には書込み命令がアクティ
ブになってもライトイネーブル信号が“L ++のまま
となり、レジスタファイル2への書き込みが阻止されて
前データが保存される。なお、上記各回路は所定のタイ
ミング毎に発生するクロック信号CKに基づいて各処理
を行う。
次に、例外発生時の動作を第4図のタイミングチャート
に基づいて説明する。例外発生時の出力データは演算ユ
ニットlにおける最終パイプラインステージサイクルで
出力データレジスタ5にフェッチされ、また、このとき
例外の発生は例外検出回路6で検出され、例外フラッグ
レジスタ9に例外フラッグがフェッチされて次のレジス
タファイル書込みサイクルのクロック信号り時に出力さ
れる。また、レジスタファイル書込み命令もこのサイク
ルで入力されるため、本命令と例外フラッグの反転信号
とのAND論理がアントゲート8で取られる。これによ
り、ライトイネーブル信号が“L”状態のままとなり、
例外発生時の出力データは書込まれない。その結果、レ
ジスタファイル2は前データを保持することができる。
ところで、上述の第1の従来例にあっては、レジスタフ
ァイル2への書き込みをみると、出力データレジスフ5
とレジスタファイル2間で1サイクル必要であり、した
がって、パイプラインステージの段数は演算ユニット1
のパイプライン段数+1段(出力データレジスタ5が相
当)になる。
第1の従来例のように演算ユニット1とレジスタファイ
ル2が別々のチップに実現されている場合は、それぞれ
のI10アクセス時間があるため、このサイクルは必要
である。
しかし、第1の従来例では、近時の要求である集積規模
の拡大と高速化の必要に沿い難いため、演Xユニット1
とレジスタファイル2を同一チップ上に実現したもの(
以下、第2の従来例という)が開発されており、第5図
にように示される。
この回路では、第1の従来例に対して出力データレジス
タ、および例外フラッグレジスタが省略され、上記I1
0アクセス時間を無くし、レジスタファイル2のライト
アクセス時間のみとしている。これは、ライトアクセス
時間は通常演算ユニット1のパイプラインのサイクル時
間に比較してかなり短いため、出力データレジスタとレ
ジスタファイル間で1サククル使用するのは無駄だから
、これをやめるためである。その結果、第2の従来例の
ように演算ユニット1の最終パイプラインステージにレ
ジスタファイル2への書込みまで含めると、パイプライ
ンの段数、トータルの演算速度の点で有利となっている
〔発明が解決しようとする課題] しかしながら、第2の従来例に示す演算回路にあっては
、演算ユニット1が例外を検出せず通常動作をしている
場合にはパイプラインの段数、演算速度の点で存利であ
るが、例外が発生した場合の動作に問題があり、具体的
には、例外発生時にレジスタファイル2のソースデータ
を壊すことがあり、例外処理が複雑になるという欠点が
あった。
第6図は第2の従来例のタイミングチャートであり、本
例では最終パイプラインステージとレジスタファイル2
への書込みは同一サイクルで行われる。したがって、レ
ジスタファイル2の書込命令もこのサイクルで入力され
る。一般に、演算ユニソl−1の演算出力が確定するの
は最終サイクルの最後に近い時間である。また、例外が
検出され、例外フラッグが出力されるのも、殆どデータ
出力と同時である。このため、書込命令と例外フラ。
グの反転信号のAND論理を取ってライトイネーブル信
号を発生しても、実際は同図に示すように書込不可状態
になるのは例外フラッグ発生後であり、その前まではg
込可の状態にあるので、未確定の出力データがレジスタ
ファイル2に書き込まれてしまう。その結果、特に演算
に使用するレジスタファイル2のソースアドレスとデス
ティネーションアドレスが同一の場合には、そのアドレ
スにあった前データ(ソースデータ)が破壊されてしま
う。したがって、ごのデータを用いて次の演算を行うと
エラーが生じ好ましくない。これを防ぐこめには、デー
タの真偽を確かめる等の措置も必要で、結局、例外時の
処理が複雑となり、高速処理に反する。なお、例外が発
生しない通常動作の場合は最終的にば追走データが書き
込まれるため、問題はない。
そこで本発明は、演算ユニットとレジスタファイルを直
接接続した場合であっても、例外発生時にレジスタファ
イルの前データを破壊することなく保存して、例外処理
を容易に行うことのできる演算回路を提供することを目
的としている。
〔課題を解決するための手段] 本発明による演算回路は上記目的達成のため、レジスタ
ファイルから必要なデータ、オペランド等を読み出し、
演算ユニットによって数値演算を行い、演算ユニットの
出力データを直接にレジスタファイルに書き込むととも
に、演算ユニットの演算結果に例外が発生ずると、例外
フラッグを発生させる演算回路において、前記レジスタ
ファイルのロ込ポート側をリードライトポートにすると
ともに、レジスタファイルのデータをリードライトポー
トを介して読み出し、一時ラッチするラッチ手段と、前
記演算ユニットとリードライトポートの間に位置し、レ
ジスタファイルへのgき込み時に演算ユニットからの出
力データあるいはランチ手段のランチ出力を前記例外フ
ラッグに基づいて択一的に選択してリードライトポート
に出力する選択手段と、を設け、例外発生時には選択手
段によりラッチ手段のラッチ出力を選択し、リードライ
トポートを介してレジスタファイルにラッチ手段からの
出力データを♂、き込み、通常時には演算ユニットから
の出力データを選択し、リードライトポートを介してレ
ジスタファイルに通常データを害き込むように構成して
いる。
〔作用] 本発明では、例外発生時に選択手段によりラッチ手段の
ランチ出力が選択され、リードライトボー4を介してレ
ジスタファイルに例外データが書き込まれる。また、通
常時には演算ユニ・ントからの出力データが選択され、
リードライトポートを介してレジスタファイルに通常デ
ータが書き込むまれる。
したがって、演算ユニットとレジスタファイルを同一チ
ップに実現して両者を直接接続した場合であっても、例
外発生時にレジスタファイルの前データが破壊されずに
保存され、例外処理が容易となる。
〔実施例〕
以下、本発明を図面に基づいて説明する。
第1.2図は本発明に係る演算回路の一実施例を示す図
である。まず、構成を説明する。本実施例の説明に当た
り、第5図に示した従来例と同一構成部分には同一符号
を付してその説明を省略する。したがって、本実施例の
演算回路は演算ユニット1とレジスタファイル2が同一
チンプ上に実現され、両者が出力データレジスタを介さ
ずに直接接続されるタイプのものである。
第1図は演算回路の全体構成図であり、この図において
、レジスタファイル2の書込ボート側はリードライトポ
ート(以下、R/Wボートという)20として読出しも
できるようになっている。R/Wポート20のリード側
にはデータラッチ(ランチ手段に相当)21が接続され
ており、データラ、ンチ21はR/Wボート20を介し
てレジスタファイル2のデータ(同じアドレスの前のデ
ータ)を読出し、インバータ22を介して人力される反
転クロ・ツクにより1亥読出しデータをラッチする。デ
ータラッチ21の出力はセレクタ23に入力されており
、セレクタ23にはさらに演算ユニット1の出力データ
が出力データパス4を介して人力される。セレクタ(選
択手段に相当)23は演算ユニット1とR/Wポート2
0の間に位置し、例外フラッグの値に基づいてR/Wボ
ート20への書込みデータを選択する。
すなわち、例外フラッグが“l 11のときはデータラ
ッチ21からのラッチデータを選択してR/Wポート2
0に送り、例外フラッグが“0°“のときは演算ユニッ
ト1からの出力データを選択してR/Wポート20に送
る。R/Wボート20はクロックCKの“′H°゛の区
間で読出しくリード)、“L”の区間でライトアドレス
に対して書込み(ライト)可能となるもので、ライトイ
ネーブル信号は書き込み命令と、インバータ24による
クロックの反転信号とのAND論理をアンドゲート25
で取ることによって生成される。
次に、第2図のタイミングチャートに基づいて作用を説
明する。
外部からの演算要求があると、レジスタファイル2のリ
ードボートから必要なデータ、オペランド等が演算ユニ
ット1に取り込まれて演算が実行され、最終段のパイプ
ラインステージから演算データが出力データバス4およ
び例外検出回路6に出力される。このとき、最終パイプ
ラインステージサイクルでレジスタファイル書込命令が
入力されると、レジスタファイル2のR/Wボート20
は、まずその・アドレスのデータ(前データ)をクロッ
クの“!1°“の区間に出力し、このデータはデータラ
ッチ21に取り込まれてラッチされる。その後、クロッ
クの“l L l”の区間でR/Wポート20は書込可
の状態になるが、例外が発生しない場合(例外フラング
=“Lo”の場合)はセレクタ23によって出力データ
バス4がR/Wボート20に接続され、演算ユニット1
からの出力データが直接にレジスタファイル2の同一の
アドレスに書き込まれる。
一方、例外が発生した場合は既に未確定の出力データの
値がレジスタファイル2に書き込まれ、そのアドレスの
前データは破壊されているため、データラッチ21の出
力がセレクタ23で選択され、このデータ(前データ)
が再度レジスタファイル2に書き込まれる。この動作に
よって例外発生時には前データがレジスタファイル2上
に保持される。したがって、例外処理が容易になり、そ
の後の演算処理等も含めて全体的に高速処理を達成でき
る。
なお、本発明は演算ユニットがパイプライン方式のもの
に限らず、他の方式のものにも適用できる。
第5図は第2の従来例の全体構成図、 第6図は第2の従来例の動作のタイミングチャートであ
る。
〔効果〕
本発明によれば、演算ユニットとレジスタファイルを同
一チップ上に実現し、直接接続した場合であっても、例
外発生時にレジスタファイルの前データを破壊すること
なく保存することができ、例外処理を容易なものとする
ことができる。
【図面の簡単な説明】
第1.2図は本発明に係る演算回路の一実施例を示す図
であり、 第1図はその全体構成図、 第2図はその動作のタイミングチャート、第3〜6図は
従来の演算回路を示す図であり、第3図は第1の従来例
の全体構成図、 第4図は第1の従来例の動作のタイミングチャート、 1・・・・・・?J3E+−ニット、 2・・・・・・レジスタファイル、 3・・・・・・人力バス、 4・・・・・・出力データハス、 20・・・・・・R/Wボート(リードライトポート)
、21・・・・・・データラッチ(ラッチ手段)、23
・・・・・・セレクタ(選択手段)、24・・・・・・
インハーク、 25・・・・・・アンドゲート。 演算ユニット 出力 ヨ=D頂口〕 出力データパス ]IコTコT レジスタファイル 書き込み命令 −」−−m−−]− 第1の従来例の動作のタイミングチャート第 図 最終パイプラインステージ 第 図

Claims (1)

  1. 【特許請求の範囲】 レジスタファイルから必要なデータ、オペランド等を読
    み出し、演算ユニットによって数値演算を行い、 演算ユニットの出力データを直接にレジスタファイルに
    書き込むとともに、演算ユニットの演算結果に例外が発
    生すると、例外フラッグを発生させる演算回路において
    、 前記レジスタファイルの書込ポート側をリードライトポ
    ートにするとともに、 レジスタファイルのデータをリードライトポートを介し
    て読み出し、一時ラッチするラッチ手段と、 前記演算ユニットとリードライトポートの間に位置し、
    レジスタファイルへの書き込み時に演算ユニットからの
    出力データあるいはラッチ手段のラッチ出力を前記例外
    フラッグに基づいて択一的に選択してリードライトポー
    トに出力する選択手段と、を設け、 例外発生時には選択手段によりラッチ手段のラッチ出力
    を選択し、リードライトポートを介してレジスタファイ
    ルにラッチ手段からの出力データを書き込み、 通常時には演算ユニットからの出力データを選択し、リ
    ードライトポートを介してレジスタファイルに通常デー
    タを書き込むように構成したことを特徴とする演算回路
JP63254106A 1988-10-07 1988-10-07 演算回路 Pending JPH02100716A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63254106A JPH02100716A (ja) 1988-10-07 1988-10-07 演算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63254106A JPH02100716A (ja) 1988-10-07 1988-10-07 演算回路

Publications (1)

Publication Number Publication Date
JPH02100716A true JPH02100716A (ja) 1990-04-12

Family

ID=17260306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63254106A Pending JPH02100716A (ja) 1988-10-07 1988-10-07 演算回路

Country Status (1)

Country Link
JP (1) JPH02100716A (ja)

Similar Documents

Publication Publication Date Title
US5257214A (en) Qualification of register file write enables using self-timed floating point exception flags
US5522052A (en) Pipeline processor for processing instructions having a data dependence relationship
KR920001100B1 (ko) 논리연산장치
JPH0250735A (ja) マイクロプロセッサの冗長構成による機能監視方式
JPH05342084A (ja) データ記憶装置及びデータ記憶方法
JPH0342732A (ja) 半導体集積回路
US6263424B1 (en) Execution of data dependent arithmetic instructions in multi-pipeline processors
US6510483B1 (en) Circuit, architecture and method for reading an address counter and/or matching a bus width through one or more synchronous ports
JPH02100716A (ja) 演算回路
US5784634A (en) Pipelined CPU with instruction fetch, execution and write back stages
US5018092A (en) Stack-type arithmetic circuit
KR100246465B1 (ko) 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법
KR930007015B1 (ko) 3단계 파이프 라인을 사용한 마이크로 프로세서에서 데이타의 상관성 충돌방지회로
JP2858511B2 (ja) 算術演算回路
JPS6022774B2 (ja) 入出力端子制御方式
JP3048762B2 (ja) 半導体集積回路装置
JP2982181B2 (ja) 中央処理装置
JPS59201144A (ja) 10進数演算回路
JPH023822A (ja) データ処理装置
KR920004406B1 (ko) 듀얼포트램의 악세스 제어회로
JP3124361B2 (ja) メモリデータロード装置
JPS61161560A (ja) メモリ装置
JPS61211745A (ja) マイクロコンピュ−タ
JPS6285339A (ja) マイクロコンピユ−タ
JPH0562388B2 (ja)