JPS63100539A - パイプライン処理方式 - Google Patents

パイプライン処理方式

Info

Publication number
JPS63100539A
JPS63100539A JP24630586A JP24630586A JPS63100539A JP S63100539 A JPS63100539 A JP S63100539A JP 24630586 A JP24630586 A JP 24630586A JP 24630586 A JP24630586 A JP 24630586A JP S63100539 A JPS63100539 A JP S63100539A
Authority
JP
Japan
Prior art keywords
pipeline
instruction
execution
processes
stage
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
JP24630586A
Other languages
English (en)
Inventor
Satoru Miyayama
哲 宮山
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP24630586A priority Critical patent/JPS63100539A/ja
Publication of JPS63100539A publication Critical patent/JPS63100539A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数のプロセスを多重処理するプロセッサに
おけるパイプライン処理方式に関するものである。
〔従来の技術〕
従来のパイプライン方式は、/機械命令の実行過程を複
数の機能単位(以下、機能ステージと呼ぶ)に分割し、
個々の機能ステージにそれぞれの機能に応じた処理部を
設置している。
第1図に、機械命令の分割例と機能ステージの構成、及
びパイプラインのイメージを示す。/はパイプライン段
数をlとした場合の分割例でここでは分かシ易くするた
めそれぞれ、命令フェッチ(IP ) 、オペランドア
ドレス計% (AB )、オペランドフェッチ(PF)
、命令実行(EX )とする。−〜jは分割した機能ス
テージに対応した処理部である。乙は直列に接続された
機能ステージに対応する処理部をパイプライン状にイメ
ージ化したものである。個々の機能ステージは通常独立
にかつ同時に動作し得る。そこで、一連の命令列を機能
ステージの処理時間単位で乙のパイプラインに入れてや
れば定常的には連続する弘つの命令が並列実行されて、
見かけ上告命令は1機能ステージ分の実行時間ですむ。
第2図は従来のパイプライン方式での命令実行の例を示
したものである。第2図において、6は第7図と同様、
直列に接続された処理部のイメージで、7はプロセスA
に属する命令列である。従来のパイプライン方式では、
順次パイプへ送り込む命令列は、同一のプロセスAに属
するもの(即ち、A/、に2.AJ、・・・)であるの
で機能ステージに分割したレベルでみるとMISD (
MultiInstruction S ingle 
Data stream )型の並列処理方式〔発明が
解決すべき問題点〕 ジ 同一プロセス内の命令列→、従来のパイプライン方式で
実行する場合、連続実行されるパイプ内の命令相互の因
果関係(即ち、リソースの獲得、同一データに対する連
続処理など)により、流れの乱れ(ハザード)を生じる
場合があり、その場合には命令の並列実行が不能となる
ため実行時間の損失となる。
第3図にハザードの例として(a)分岐によるハザード
、(b)レジスタ衝突によるハザードを示す。(a)は
分岐成立により次に実行すべき命令番地の連続性が失わ
れたため既にパイプ内にある命令の実行が無効となり損
失を生じるハザードである。また(b)ハ、Sる命令で
のレジスタへの計算結果の格納に先行して後続の命令が
アドレス計算などでそのレジスタを参照するときに起こ
るハザードである。
従来のパイプライン方式では、これらの・・ザードに対
して、命令先取り予測バッファの設置や最適化コンパイ
ラ(デイレードジャンプ・レジスタ割付でのハザード考
慮など)で対処し損失を極力減らしているが、ハザード
対策専用のハード量増大やコンパイラ最適化のためのオ
ーバヘッドなどの欠点がある。特に、パイプライン段数
が増すにつれてハザードの頻度、影響度が急速に増大す
るためこれを十分に解消することは困難である。
本発明の目的は、同一プロセス内の命令列をパイプライ
ン化して実行する際に生ずる上記欠点を解決し、高速か
つ効率的なパイプライン処理方式を提供することにある
〔問題点を解決するための手段〕
本発明は、上記の目的を達成するため、複数のプロセス
を多重処理するプロセッサにおいて、機械命令を分割し
て実行するだめの複数の専用機能ステージ(処理部)と
実行中プロセスに固有な情報を格納する多重化された高
速記憶とを備え、当該機能ステージと上記高速記憶との
接続バスを当該機能ステージでの機械命令の分割実行に
同期して順に切替え、複数の相異なる実行中プロセスに
属する機械命令をパイプ内で並列実行することを特徴と
する。
第≠図は本発明の原理図であって、tはOS管理下の実
行待チプロセスのキュー、りは複数の実行中プロセスに
属する命令列群、10はMIMD型のパイプラインのイ
メージである。本発明では、O8が管理する実行待ちプ
ロセスのキューの位置を予め知り、実行中のプロセスの
7つが実行状態から他の状態へ遷移した場合に、キュー
の先頭につながれている実行待ちプロセスを取り出して
実行状態とし多重化した高速記憶の7つを割り当てる。
第v図では、♂のキューから実行するプロセスを取り出
してパイプラインに入れる。プロセスA−Dは実行中で
あり、それぞれの命令列の要素A/、B/、O/、D/
、に2.B2・・・を順次パイプラインに入れる。この
頭で機械命令を入れれば個々の機能ステージでは相異な
るプロセスに属する命令が同時に分割実行される。すな
わち、機械命令レベルでプロセスを切替えて順次パイプ
ラインに入れることによシ、常に相異なるプロセスの命
令がパイプライン内にあるようにする。本発明は複数の
プロセスに属する複数のデータストリームを並列実行す
るのでMIMD (Multi Instructio
nMul ti Data stream )型のパイ
プライン方式である。
〔作 用〕
従来のパイプラインでは、同一のプロセスに属する命令
列を連続して並列実行するため、先行する命令の実行が
後続の命令実行に影響を与えてそれを無効にする場合が
ちシ、パイプライン方式の効率を低下させていたが、本
発明では互いに異なるプロセスに属する命令を順次切替
えながらパイプライン内に入れて並列実行し、パイプラ
イン内に同一のプロセスに属する命令が同時に存在しな
いようにしたため、連続した命令列の因果関係に起因す
るハザードを完全に解消できる。
〔実施例〕
第5図は本発明の実施例であって、λ〜jは第1図と同
様の機能ステージ、//はプロセス実行に必要な固有の
情報(コンテキスト)を格納する高速記憶である。本発
明では、機械命令ごとにプロセスを切替えるため各機能
ステージで使用するコンテキストの切替えを高速に実行
する必要がある。そこで上記の多重化した高速記憶をも
ち、ここにコンテキストをはじめとする複数の実行中プ
ロセス固有の情報を格納して切替えに伴うコンテキスト
の退避・回復をなくしオーバヘラドラ最小に抑える。ま
た高速アクセス可能な記憶を使用して機能ステージから
のメモリアクセスを極力高速記憶側で閉じることにより
、メモリアクセスの高速化を図る。第5図で■の状態か
ら■の状態へ機械命令の分割実行を切替えた場合、例え
ばコの命令フェッチステージでは■でプロセスBの機械
命令を分割実行し、■でプロセスCの機械命令を分割実
行する。従って、命令フェッチステージと高速記憶とを
接続するバスは、プロセスBからプロセスCの固有情報
格納部へ切替える。同様にしてAEステージではプロセ
スAからBへ、PFステージではプロセスDからAへ、
EXステージではプロセスCからDへ切替える。各機能
ステージにおける切替え順序は規則的なのでノ・−ドウ
エアで容易に自動切替え可能である。またいかなる実行
状態でも、機能ステージで同時に分割実行される機械命
令は相異なるプロセスに属するので、高速記憶での同一
プロセスに対するリソース競合はない。
本発明方式をソフトウェア(OS )からみた場合、従
来のパイプラインのように単一プロセスを順次処理する
方式と違って複数のプロセスを並列に実行するマルチプ
ロセッサと同等である。osはパイプライン段数に相当
する台数の複数プロセッサが並列に動作して複数プロセ
スを並列実行する仮想マルチプロセッサとして意識する
〔発明の効果〕
以上説明したように、複数のプロセスを多重処理するプ
ロセッサにおいて、複数の実行待ちプロセスが存在する
処理環境を利用して機械命令レベルでプロセスを切替え
ることにより、連続した命令列の因果関係に起因するハ
ザードを完全に解消できる。従って、上記処理環境にお
いて、本発明を実施すれば、パイプライン方式の高速化
が可能となり、プロセッサの処理速度向上を実現できる
本発明では、パイプライン内で実行中のプロセス数は最
大でも機能ステージ数(パイプライン段数)に抑えられ
高速記憶の多重数も機能ステージ数あればよい、プロセ
ス切替えは多重化した高速記憶の採用により機能ステー
ジ単位で機械命令の分割実行に同期して機能ステージと
高速記憶との接続バスを切替えるだけでよい、などから
制御が簡単で、ハードウェア量を削減できる利点をもつ
。さらに、機械命令の分割実行に同期してプロセスを切
替えることからパイプライン内で実行中のプロセスには
均一に各機能ステージの処理時間を割り当てるので複数
のプロセスを均一な処理時間で実行できる、ソフトウェ
ア(オペレーティングシステム=O8)からみると本発
明のようなMIMD型のパイプライン方式はマルチプロ
セッサと同等であることから、特別な配慮なく単一プロ
セッサ構成、複数プロセッサ構成を同一に扱えるという
利点をもつ。
【図面の簡単な説明】
第1図は機械命令の分割とパイプラインの機能ステージ
及びパイプのイメージを対比した図、第一図は従来のパ
イプライン方式の説明図、第3図はパイプラインのハザ
ード例、第μ図は本発明の原理図、第5図は本発明の一
実施例である。各図とも簡単のため、パイプライン段数
が≠の場合を示し、各ステージの機能はそれぞれ、命令
フェッチ(IP)、オペランドアドレス計](AE)、
オペランドフェッチ(PF)、命令実行(BX)とする
。 l・・・機能分割した機械命令、λ・・・命令フェッチ
ステージ(IF’)、J・・・オペランドアドレス計算
ステージ(AE)、44・・・オペランドフェッチステ
ージ(PF)、j・・・命令実行ステージ(EX)、6
・・・パイプラインイメージ(MISD型: Mult
iInstruction S ingle Data
 stream )、7°拳9プロセス人の命令列、♂
・・・実行待ちプロセスのキュー、り・・・プロセスA
−Dの命令列、10・・・パイプラインイメージ(MI
MD型: Multi In5truction Mu
lti Datastream )、/ / ・・・高
速記憶。

Claims (1)

  1. 【特許請求の範囲】 複数のプロセスを並列処理するプロセッサのパイプライ
    ン処理方式において、 直列に接続され、機械命令を分割して実行する複数の専
    用機能ステージと、 実行中プロセスに固有な情報を格納し、前記機能ステー
    ジと同数個、多重に設けられる複数の高速記憶手段と、 前記機能ステージと、前記高速記憶手段との間で情報を
    授受するための接続バスと を備え、 前記接続バスを、前記機能ステージでの前記機械命令の
    分割実行に同期させて順に切り替え、複数の相異なる実
    行中プロセスに属する機械命令を前記専用機能ステージ
    内で並列実行することを特徴とするパイプライン処理方
    式。
JP24630586A 1986-10-16 1986-10-16 パイプライン処理方式 Pending JPS63100539A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24630586A JPS63100539A (ja) 1986-10-16 1986-10-16 パイプライン処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24630586A JPS63100539A (ja) 1986-10-16 1986-10-16 パイプライン処理方式

Publications (1)

Publication Number Publication Date
JPS63100539A true JPS63100539A (ja) 1988-05-02

Family

ID=17146578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24630586A Pending JPS63100539A (ja) 1986-10-16 1986-10-16 パイプライン処理方式

Country Status (1)

Country Link
JP (1) JPS63100539A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7320065B2 (en) 2001-04-26 2008-01-15 Eleven Engineering Incorporated Multithread embedded processor with input/output capability

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7320065B2 (en) 2001-04-26 2008-01-15 Eleven Engineering Incorporated Multithread embedded processor with input/output capability

Similar Documents

Publication Publication Date Title
US10684860B2 (en) High performance processor system and method based on general purpose units
EP1023659B1 (en) Efficient processing of clustered branch instructions
CA1211852A (en) Computer vector multiprocessing control
KR101638225B1 (ko) 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행
KR101826121B1 (ko) 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트
US3614742A (en) Automatic context switching in a multiprogrammed multiprocessor system
US20120110271A1 (en) Mechanism to speed-up multithreaded execution by register file write port reallocation
JPH04348451A (ja) 並列計算機
EP0389001B1 (en) Computer vector multiprocessing control
CN86103708A (zh) 双向转移的预测和优化
KR20140018946A (ko) 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 레지스터 파일 세그먼트
JPH0241553A (ja) データ処理システム及び同期方法
KR20010095074A (ko) 다중 스레드 초장 명령어 프로세서, 명령어 처리 방법 및그 제품, 및 명령어 컴파일링 제품 및 컴파일러
CN1052740A (zh) 带有指令标识装置的数据处理系统
Flynn et al. Shared resource multiprocessing
JPS63100539A (ja) パイプライン処理方式
JPH06236272A (ja) スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム
JP2503984B2 (ja) 情報処理装置
CA1228675A (en) Computer vector multi-processing control
JPS61136157A (ja) マルチ・マイクロプロセツサ・モジユ−ル
Aylward Distributed deep processing
JPS629460A (ja) マルチプロセツサシステムの命令制御方式
JPH0329049A (ja) マルチプロセッサシステム
JPS60252954A (ja) プログラム制御回路
JPS6220064A (ja) マルチプロセツサシステムの命令制御方式