JPH02162422A - 優先ブランチ機構を備えたデータ処理システム - Google Patents

優先ブランチ機構を備えたデータ処理システム

Info

Publication number
JPH02162422A
JPH02162422A JP1260394A JP26039489A JPH02162422A JP H02162422 A JPH02162422 A JP H02162422A JP 1260394 A JP1260394 A JP 1260394A JP 26039489 A JP26039489 A JP 26039489A JP H02162422 A JPH02162422 A JP H02162422A
Authority
JP
Japan
Prior art keywords
priority
branch
address
bit
register
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.)
Granted
Application number
JP1260394A
Other languages
English (en)
Other versions
JPH0619711B2 (ja
Inventor
Gordon T Davis
ゴードン・テイラー・デイヴイス
Baiju D Mandalia
バイジユ・デイラーラル・マンダリア
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH02162422A publication Critical patent/JPH02162422A/ja
Publication of JPH0619711B2 publication Critical patent/JPH0619711B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

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)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はブランチ処理のためのコンピュータアーキテク
チャに関する。実時間プログラミング環境のためのマイ
クロプロセッサ技術はこのアーキテクチャの基礎と考え
られる。
B、従来技術及びその課題 優先ブランチの手法は割込み機構について使用されてき
た。米国特許第4636944号、第4315314号
及び第4573118号はそのような用途を開示し、ま
た1割込み要求の走査及びポーリングの処理時間を減す
るためちに優先ブランチを用いる重要性の認識を示して
いる。しかしながら、これらの特許は本発明で取扱う優
先ブランチの問題には言及していない。
従来技術では割込みビットのような固定のパラメータで
のみ優先ブランチが行われるのに対し、本発明ではプロ
グラム命令によって選択できる可変のブランチ条件又は
状況パラメータでブランチが行われる。
また、従来技術ではアクティブなパラメータの固定した
優先順位でのみ優先ブランチが行われるのに対し、本発
明ではユーザがプログラミングによってセットしうる可
変の優先順位付けが提供される。
さらに、従来技術ではブランチ条件パラメータとブラン
チ先のターゲットアドレス(以下、ブランチアドレスと
もいう)との間の関係が固定的であるのに対し、本発明
では両者の関係はユーザにより可変にすることができる
そこで1本発明は従来の優先ブランチ回路を改善するこ
とを目的としている。
C1課題を解決するための手段 上記目的を達成するためデータ処理システムにおける本
発明の優先ブランチ回路は、(a)システム又はプログ
ラムの事象についてのアクティブ及び非アクティブな状
態を表わすビットであって上記アクティブな状態でプロ
グラムのブランチの要求を示すようなビットの複数のセ
ットを記憶する手段と、(b)状態を表わすビットのセ
ットの少なくとも1つを記憶するため複数のビット位置
を有する入力レジスタと、(C)少なくとも1つのプロ
グラム命令に応答して状態を表わすビットのセットの少
なくとも1つを上記入力レジスタへ選択的に転送する手
段と、(d)状態を表わすビットのセットと関連するブ
ランチターゲットアドレスの複数のセットであって、各
ブランチターゲットアドレスが状態を表わすビットの各
セットに関連し、1つのセット内の各ブランチターゲッ
トアドレスが状態を表わすビットの関連するセットにお
ける各ビットに関連するようなブランチターゲットアド
レスの複数のセットを記憶するブランチターゲットアド
レス記憶手段と、(6)システムによって実行されるべ
き次のプログラム命令のロケーションを指定するアドレ
スを記憶する出力レジスタと、(f)上記入力レジスタ
中の選択されたアクティブなビットに応答して上記ブラ
ンチターゲットアドレスのうちの関連する1つを上記ブ
ランチターゲットアドレス記憶手段から抽出して上記出
力レジスタへ転送する優先順位エンコーダ手段であって
、上記選択されたアクティブなビットは該優先順位エン
コーダによってアクティブなビットに割当てられたコー
ド化された優先順位によって決定されかつ上記関連する
ブランチターゲットアドレスは上記選択されたアクティ
ブなビットに割当てられたコードによって指定されるよ
うな優先順位エンコーダ手段と、を有することを特徴と
している。
以下、本発明の作用を実施例と共に説明する。
D、実施例 はじめに本発明の実施例を概説する。本発明は新しく定
義されたビット検出時優先ブランチ(BBD)命令に応
答してBBDオペレーションを実行する機構を提供する
。そのようなオペレーションにおいては、ブランチ条件
パラメータを表わす状況ビットのセットは、どれが現に
ブランチプログラムアクションを要求するアクティブな
状態を表わしているのかを確認するために評価される。
この機構の出力は選択された状況ビットに関連するブラ
ンチプログラムセグメントの開始命令を表わすブランチ
アドレスである。
状況ビットの相対的な優先l噴位を決めるレジスタはユ
ーザプログラム制御の下で優先属僚選択コードの異なる
パターンが動的にロードでき、評価されるべき状況ビッ
トを表わすレジスタもプログラムの制御の下でロードで
きる。したがって、単一のBBD回路は状況機能の複数
のセットによって動的に共用することができる。さらに
、評価のために現に存在する状況ビットの所与のセット
に関係して状態が変わることに応じて、優先順位を決定
するレジスタの内容を適切に変えることができる。
そのようなりBD回路の最終的な出力に応じて選択可能
なブランチアドレスはユーザプログラムによって動的に
変化させるためアクセス可能なレジスタスタックに記憶
される。したがって、状況ビットの所与のセットに関連
する状態に応じてブランチターゲットアドレスの適切に
関するセットをロードすることができる。
ブランチアドレスを保持するためのレジスタ及び優先順
位選択情報は状況ビット機能の複数のセットに関連付け
ることができるパラメータの複数のセットを保持する容
量に拡張してもよい。したがって、異なる条件に適合す
るのに要求されるレジスタローディングオペレーション
の頻度を減少することができる。
本実施例によれば、1マシンサイクルで実行できる単一
のオペレーションへの優先ブランチに関連する複雑な一
連のオペレーションを減することができる。
機能及びアドレス情報を決定する優先順位を保持するレ
ジスタは個々の状況ピッ1−と直接1対1の対応をもっ
てアクセスのために構成されるので、必要なレジスタの
数は、状況ビットがテーブルルックアップモードでレジ
スタをアドレスするのに組合せて使用される場合に必要
な数よりも大幅に減らすことができる。
以下、図面を参照しながら、実施例を詳説する。
なプロセッサアーキテクチャ 第1図は本発明を適用しうる通信プロトコルプロセッサ
(cpp)の全体的なアーキテクチャを示す図である。
CPPは複雑で頻度の高いオペレーションについてスル
ープットを向上させる特別な目的を有する回路と、演算
論理機構(ALU)を含む汎用回路とを有する。特別目
的の回路は本発明に従って構成されたビット検出時ブラ
ンチ(BBD)回路を含む。
汎用目的の回路についていうと、A L Uユニット1
は基本的な算術演算(加算、減算、比較)、論理演算(
OR,AND、X0R)及びレジスタ転送オペレーショ
ンをサポートする。乗算(MUL)ユニット2はALU
と協働してスケーリング丸めの機能と共に16X16の
乗算をサポートする。
メモリアクセスユニット3、ヘッダ処理ユニット4及び
フレーム処理ユニット5は特別目的のオペレーションを
行う0本発明では特にビット検出時ブランチ(BBD)
オペレーションを行うヘッダ処理ユニットの部分が関係
する。
他のCPPの機構要素には、汎用データレジスタスタッ
ク6、アドレスインデックスレジスタ7がある。これら
の構成要素は制御バス12及びデータバス13を用いる
処理ユニット1ないし5のための入出力として使用しう
る内部で可変的に割振りできる記憶部を含む。
第1図の下部に示す構成要素8.1ないし8゜7を含む
制御ユニット8は演算の実行を制御し及び監視する。命
令レジスタ8.1は命令メモリ■RAMから命令を受は
取る。このレジスタ中の命令オペレーションコード(オ
ペコード)はデコーダ8.2でデコードされて、デコー
ダ8.2は制御バス12を介して処理ユニットエないし
5に制御信号を供給し、データバス13を介して即値デ
ータ又はアドレス情報が転送される。システムクロック
8.3は他の構成要素へタイミング制御信号を供給する
。クロックされた感覚で取出し制御部8.4がlRAM
に対して取出しを行う命令を出す。
データバス13はレジスタスタッフ6.7と処理ユニッ
ト1ないし5との間で並行データ転送ができるよう複数
の双方向経路を有する。プログラムからカウンタ8.5
及び次ブランチ(又は割込み)制御論理8.6は次アド
レスを生成し、そのうちの1つがlRAMアドレスバス
16を介してI RAMに供給されるためマルチプレク
サ8,7によって選択される。データアドレスDA15
はデータバスGD13を介するデータ転送を行わせるた
めメモリアクセスニット3とデータRAMとを接続する
のに用いられる。
オペレーションの並行実行は第2図の参照番号20及び
21に示唆されるようなパイプラインの手法を用いて可
能となる。命令nが実行されている間に次の命令n+1
がデコードされその命令に続く命令n+2が取出される
。さらに、3つのオペレーションが1つの命令で要求さ
れるときは、それらのデコード及び実行は並行して遂行
することができる。そのようなオペレーションについて
のバス転送機構及びパイプラインの手法はよく知られて
いる。
第3図は本CPP31が有効に機能しうる典型的な環境
を示す図である。DRAM32は物理的通信インターフ
ェース34との間でデータを交換するためマルチプレク
サ及び入出力インターフェース33とインターフェース
する。lRAM35は、インターフェース34で動的に
要求された機能を遂行するようCPPに指令するための
アプリケーションプログラムの命令を記憶する。ホスト
インターフェース36はCPPとホスト処理システムと
の間のデータ及びコマンドの双方向転送を維持するのに
必要な体系的初期接続手順信号の交換を行う、ブロック
37はこの環境に全体として適合できる層構造のプロト
コルアプリケーション及び信号処理機能をあられす。
ヘッダ 環ユニット 第4図は各プロトコル店においてパケットヘッダパラメ
ータに一意的なオペレーションを遂行するヘッダ処理ユ
ニット4の構成を示す図である。
ビット検出時ブランチ(B B D)ユニット60は各
プロ1〜コル暦内でヘッダに含まれる通信状況ビットパ
ラメータについてビット検出時優先ブランチオペレーシ
ョンを遂行する。この機構は単一のCPPマシンサイク
ルで優先順位ビット選択及びターゲラl−アドレス検索
のオペレーションを遂行し、これにより高速通信媒体に
ついてスループットが向上する。しかしながら、この同
じ機構及びそのオペレーションの基礎をなす手法は他の
処理システムやアプリケーションにも適用できる。
ヘッダ処理ユニット4内の他の特別目的のユニッl−は
既知の変換によってレジスタされたデータに関するパラ
メータを抽出するためにレジスタされたヘッダデータを
再形成するレジスタ再形成ユニット61と、メツセージ
の経路指定のためヘッダアドレス情報を交換するアドレ
ス経路指定ユニット62である。これらのユニット及び
CPPの全体的な構成は1988年10月7日付けの米
国特許出願第254986号にさらに詳しく説明されて
いるが1本発明ではBBDユニット60の構成及びオペ
レーションについて詳述する・後述する特別のBBD命
令に応答して、BBDユニット60は複数の状況ビット
を評価し、これらのビットのうちの1つに関連するター
ゲットブランチアドレスを選択する。これらのビットは
アクティブか非アクティブかという状態を表わすもので
、アクティブのとき、ブランチプログラムセグメントを
介して特定のアクションを要求する。
アクティブな状態を示すビットは所定の優先順位で評価
され、選択されたターゲットアドレスは最高の優先順位
を有するビットに関連するものである。
BBD命玲」I乱 ユニット60の一般的な特性を用いる回路が第5図に示
されている。この回路はBBD命令に応答してその優先
ブランチアドレス選択オペレーションを遂行するので、
BBD命令実行回路とも呼ばれる。入力ラッチ80中の
情報は優先アドレス機構81を用いる宛先アドレスの優
先ビットブランチで処理される0機構81の出力は出力
レジスタ82へ転送される。スタック初期設定レジスタ
83は優先アドレス機構81中のブランチアドレススタ
ック要素を初期設定するのに用いられる。
デコーダ84及び85は制御バス12を介するBBD命
令のオペコードに応答して、入力ラッチ80の中の優先
ブランチ状況ビットを優先アドレス機構81ヘゲートす
るための制御信号及び優先アドレス機構81からブラン
チアドレスレジスタ82へ抽出されたブランチアドレス
をラッチするための制御信号を生成する。デコーダ84
はデータバス13を介するレジスタ転送オペレーション
に応答して、スタック初期設定レジスタ83をロードす
るための信号を生成する。こうして、ブランチアドレス
スタックの内容はラッチ80中の状況ビットに可変的に
関連するブランチアドレス選択を調整するようにプログ
ラミングすることによって変えることができる。
第6図は第5図の機構81の構成を示す図である。機構
81は優先順位エンコードユニット103内の優先順位
選択レジスタスタック102と、関連するアクセスデコ
ード機構104内にブランチアドレスレジスタスタック
104を含む。これらのレジスタスタック102及び1
04はバス107を介して行われるプログラムされたレ
ジスタローディングオペレーションによって新しい情報
をロードすることができる。
BBD命令に応答して、ユニット103はスタック10
2中のレジスタの1つから優先宛先コード値を選択し、
これをスタック104へのアドレス指定入力として印加
する。これにより、選択されたブランチアドレスが出力
レジスタ82へ転送される。入力ラッチビットはスタッ
ク102内の異なるレジスタへ個別的に印加され、アク
ティブなブランチ要求状態を表わすビットがスタック中
の各レジスタの内容をゲートアウトする。ユニット1o
3のオペレーションはスタック102からゲートアウト
された値の大きさを比較して(そのような値は各入力ラ
ッチビットの相対的な優先順位を示す)、最高の優先順
位を有する値をスタック104へのアクセス入力として
選択する。こうして、スタック104から選択されたブ
ランチアドレスはラッチ80中の現にアクティブな最高
優先順位のビットに対応するものとなる。スタック10
2の内容はプログラミングによってロードできるので、
入力ラッチピットに応じた相対的な優先順位はそれに対
応して変えることができる。
さらに、レジスタ104の内容はプログラミングによっ
て変えることができるので、ラッチ80中のビットと機
構105によって抽出できるブランチアドレスとの間の
連関はそれに対応して変えることができる。
ユニット103及び105から成る回路の他の特徴は優
先順位の決定及びブランチアドレスの抽出というオペレ
ーションの全体を単一のマシンサイクルで完了するよう
容易に構成しうろことである。その結果、頻出するビッ
ト検出時ブランチアドレーシヨンは高速に遂行でき、そ
れによってシステムのスループットも向上する。これは
高速通信媒体とインターフェースする処理システムにお
いて特に有益である。
機構81のさらに別の特徴はスタック102及び104
をセグメント化されたスタック11O及び111にそれ
ぞれ拡張できることである。これは入力ラッチ80中の
ビットで表わされる状態又は事象の複数のセットに関連
する優先順位判断情報及びブランチアドレス情報をその
ようなスタックのセグメントに同時に事前ロードするた
めである。したがって、個々のスタックセグメントを指
定するように異なるコード化をされたBBD命令を繰返
し実行して、繰返しの間のスタックの再ロードの必要な
しに、ブランチ連関の異なるセットに関連するアクショ
ンを呼出すことができる。
第7図は異なるデータタイプの複数のセットに適合する
よう優先順位選択スタック110及びブランチアドレス
スタック111をいかにセグメント化できるかを示す図
である。第8図はそのようなスタックセグメントをアク
セスするための論理112を示す図である。所望のセグ
メントはデータタイプコードによって選択可能であり、
選択されたブランチスタックセグメント内のブランチア
ドレスの選択は優先順位エンコーダの出力によって行わ
れる。データタイプコードは命令のオペコードの一部と
して又はオペコードに伴うもしくはオペコードによって
指定されるオペランド情報の一部として供給することが
できる。これは命令セットの資源に依存して命令セット
内で車面に定義し又はコード化できる。データタイプコ
ードの幅(T)は要求されたデータタイプセグメントの
数(N)によって異なり、T=1og2(N)で定義さ
れる。
第9図は初期設定及びBBD命令の直接の実行のための
種々のスタックをアクセスする機構を示す図である。ブ
ランチアドレススタックを初期設定するため、デコーダ
118はレジスタロード命令に関連する制御バス12か
らの(ff号を処理する。
このロード命令はデータを入力バス115から適切なレ
ジスタ116ヘロードするための命令である。ブランチ
アドレススタックからの読取りアクセスの場合、優先順
位エンコーダ103はBBD命令に応答して、ブランチ
アドレスデータをデータバス13へ向けるデコーダ11
8に優先1項位エンコードアドレスを供給する。複数の
プロトコルをサポートするため、スタック116は異な
るブランチ機能とへカラッチ80中の状態とを関係させ
るためのブランチアドレスレジスタの複数のセット又は
セグメントを含むことができる。前述の如く、この場合
異なるスタックセグメント/プロトコルに対してビット
検出時ブランチのための異なるBBD命令を定義するこ
とが必要である。
プログラム可能な優先順位エンコーダ103の実施例が
第10図に示されている。ビット1ないしビット16と
付記された入力ラッチ80からの複数のビットは優先+
!IJt位エンコーダのための選択制御入力として働く
、各入力ビットは関連する優先順位レジスタ120Xを
有する。たとえば、レジスタ120aは入力ビット1に
関連し、レジスタ120bは入力ビット2に関連する(
以下、同様)。各優先順位レジスタ120Xはデータ転
送命令(レジスタからレジスタもしくはメモリからレジ
スタ)又はロード即値命令のようなプロセッサのレジス
タロード命令に応答して初期設定することができる。複
数のレジスタ120xは並行して初期設定することがで
きる。というのは、プロセッサバスの幅は典型的には単
一の優先順位レジスタの長さよりも大きいからである。
優先順位レジスタ120xを初期設定する目的は入力ラ
ッチ80からの各ビットで表わされる状態をユーザのプ
ログラムの制御の下で関連付けるようそれぞれ一意的な
優先順位コードをセットすることである。この例では1
6個の入力ビットが存在するので、これらの各入力に一
意的な2進コードを割当てるには4ビツトが必要である
。−船釣には、2Nの入力ビットを取扱うには各優先純
エンコーダにおいてNビットが必要である。そのように
してプログラム可能に割当られたレジスタ120x中の
Nビットの数は現にアクティブな状態にある入力ラッチ
ビットとその数とが関連するような形でレジスタの出力
が接続される論理で評価される。最大の2進値を有する
数がブランチアドレススタックの選択入力への印加のた
めに選択され、これにより、選択されたブランチは最高
の優先順位を有するようユーザ等によってプログラム可
能に指定された入力ビットと関連する。
優先順位レジスタ120x、アドレスレジスタスタック
(図示せず)及び入力ラッチ80へのロードが行われる
と、その回路はBBD命令の実行の準備が完了する。こ
の場合、第10図に示す論理ゲートのアレイはアクティ
ブである全ての入力ビットのうちのどのビットが相対的
に最高の優先順位の数と関連するかを判断するものであ
る。この数は関連するブランチアドレスを選択するため
にレジスタスタック116をアドレス指定するのに用い
られる出力PO,PL、P2及びP3(P3が最上位ビ
ット)ヘゲートされる。
これらのゲートアレイのオペレーションをさらに詳しく
説明する。入力ラッチ80からのアクティブなビットで
あるビット1.ビット2.・・・、ビット16は関連す
る優先順位選択レジスタ120Xの出力をゲート122
Xないし127xの関連する行へ転送する。アクティブ
でない入力ラッチビットは関連する優先順位レジスタの
出力をオフに強制する。優先順位レジスタ120xから
の出力はその行のゲートによって最上位ビットから比較
される。ORゲート129aはアクティブな優先順位レ
ジスタ120xの最上位ビットを調べて。
少なくとも1つの入力がアクティブなら出力P3をオン
にする。出力P3は比較ゲート122a。
1.22b、122c、・・・にフィードバックされる
各比較ゲート122xの出力は対応する優先順位レジス
タ120xからの最上位ビットがエンコーダの出力P3
と同じ論理レベル(オン又はオフ)にあるときにのみ、
オンにされる。対応する比較ゲートの出力がオフである
全ての入力ビットは他のエンコーダの出力P2.PL及
びPOの決定する際には考慮されない。というのは、比
較ゲート122a、122b・・・の出力におけるオフ
状態によってANDゲート123a、125a、127
a 、 123 b 、 125 b 、 127 b
 −は優先順位レジスタ120a、120b、・・・の
出力のそれ以上の伝播が阻止されるからである。同様に
して。
各優先順位レジスタ120xからのより下位の各ビット
が処理されるが、これは以前の優先順位ビットの処理の
際に除去されたレジスタの出力のゲートを閉じた後だけ
である。こうして、ANDゲート123a、123b、
・・・の出力はアクティブであってかつ出力P3と同じ
状態にセットされる最上位ビットを有する優先順位を持
ったビット1゜ビット2.・・・について第2のビット
から最上位ビットに対応するものである。ORゲート1
29bはANDゲート123 a 、 123 b 、
 −からの入力に基づいてエンコーダの出力P2を生成
する。
比較ゲート124a、124b、・・・は第2のビット
と一致しない付加的な優先順位を除去し、残りの優先順
位についてのANDゲート125a、125b、・・・
はエンコーダの出力P1を生成するためORゲート12
9cを駆動する。同様にして、比較ゲート126a、1
26b、・・・は第3のビットと一致しない付加的な優
先順位を除去し、残りの優先順位についてのANDゲー
ト127a、127b、・・・はエンコーダの出力PO
を生成するためORゲート129dを駆動する。
出力デイジットPjが1である任意の位置においてPj
の順番に対応するレジスタ120xがらのデイジットが
1の場合にのみ任意の行における次のデイジットが評価
されるため、デイジットPOないしP3の組合せはレジ
スタ120x中の最大値に対応する値を有することとな
るということに留意されたい。他の全ての行では、より
下位のデイジットはその下位のデイジットPi (i<
j)にそれ以上の影響を与えない。2つのレジスタ]2
0xがビットの同じ組合せでセットされることはないの
で、ただ1つだけのレジスタ出力が、全ての4つのデイ
ジットPOないしP3の最終値を決定し、そのレジスタ
出力は最高の数値を有するものとなる。
前述の如く出力POないしP3を用いて最高優先順位を
有するアクティブな入力ラッチビットに関連する優先順
位番号を表わすコード化されたアドレスでブランチアド
レススタックをアドレス指定する。この結果、アドレス
スタック中のアドレスとレジスタ120x中にプログラ
ムされた優先順位レベルとの1対1の位置的な対応がで
きあがる。あるいは、第10図の回路の出力は、ブラン
チアドレススタック中の個々のレジスタへの直接的な印
加のため入カビットエないし16に位置的に関連する信
号を発生させるのに用いることができ、そのような出力
はアクティブなとき各ブランチアドレスレジスタの内容
をスタック出力へ直接ゲートする。
この構成には第10図の行論理回路に図示していない比
較回路128x (これらの比較回路128xはAND
回路127Xの右方に位置される)及びAND回路12
9xが必要である。これらの比較回路128xは各レジ
スタ120x中の最下位ビットとPOとを比較する。一
方AND回路129xは各自の全ての比較回路122x
、124x、126x及び128xに応答してブランチ
スタック中の各レジスタ出力ゲートへの直接の印加のた
め各制御信号を生成する。
番号=0に関連する最下位の優先順位ビットはあたかも
全てのビットがセットされていないかのように同じブラ
ンチを生ずる。したがって、図示される如く、15個の
一意的なブランチビット条件だけがセットできる。入力
ビツト1ないし16から全てのゼロを検出しする必要が
あるときは単純な論理を加えてその条件の発生時に関連
する異なるレジスタ選択機能をブランチアドレススタッ
クヘゲートすることができる。これは16個の一意的な
ブランチアドレス選択機能が必要な場合である。全ての
入力ビットがゼロである場合にアクティブな出力を出す
16ビツトのNORゲートを用いて、POないしP3が
選択すべきであることわ示す場合でさえ最下位の優先順
位に対応するレジスタを減勢することができ、さらにブ
ランチアドレスレジスタスタック内の図示していない1
7番目のレジスタの出力を選択することもできる。
E0発明の詳細 な説明したように本発明によれば、従来に比べ改善され
た優先ブランチの技術を提供することができる。すなわ
ち、本発明によれば、優先ブランチオペレーションの全
体を単一のマシンサイクルで容易に実行できるように構
成された優先ブランチ回路が提供される。これにより、
頻出するそのようなオペレーションを向上したスルーブ
ツトレートで遂行することができる。
【図面の簡単な説明】
第1図は本発明を適用しうるCPPシステムの構成を示
す図、第2図は並行処理及びパイプラインを説明する図
、第3図はCPPが用いられる典型的な環境を示す図、
第4図はヘッダ処理ユニットの構成を示す図、第5図は
BBD命令の実行を説明する図、第6図は優先順位アド
レス機構の構成を示す図、第7図は複数セグメントのス
タックを用いたBBD回路を示す図、第8図はB B 
0回路において有益なレジスタスタックのためのアドレ
ス生成器を示す図、第9図は優先順位エンコーダでアド
レス指定されるアドレススタックアレイを示す図、第1
0図はプログラム可能な優先順位エンコーダの実施例を
示す図である。 第2図 第3図 第4図 第8図 第5図 デ゛−タバスか60人カテ゛−7 第9図

Claims (1)

  1. 【特許請求の範囲】 データ処理システムにおける優先ブランチ回路であって
    、 (a)システム又はプログラムの事象についてのアクテ
    ィブ及び非アクティブな状態を表わすビットであって上
    記アクティブな状態でプログラムのブランチの要求を示
    すようなビットの複数のセットを記憶する手段と、 (b)状態を表わすビットのセットの少なくとも1つを
    記憶するため複数のビット位置を有する入力レジスタと
    、 (c)少なくとも1つのプログラム命令に応答して状態
    を表わすビットのセットの少なくとも1つを上記入力レ
    ジスタへ選択的に転送する手段と、 (d)状態を表わすビットのセットと関連するブランチ
    ターゲットアドレスの複数のセットであって、各ブラン
    チターゲットアドレスが状態を表わすビットの各セット
    に関連し、1つのセット内の各ブランチターゲットアド
    レスが状態を表わすビットの関連するセットにおける各
    ビットに関連するようなブランチターゲットアドレスの
    複数のセットを記憶するブランチターゲットアドレス記
    憶手段と、 (e)システムによって実行されるべき次のプログラム
    命令のロケーションを指定するアドレスを記憶する出力
    レジスタと、 (f)上記入力レジスタ中の選択されたアクティブなビ
    ットに応答して上記ブランチターゲットアドレスのうち
    の関連する1つを上記ブランチターゲットアドレス記憶
    手段から抽出して上記出力レジスタへ転送する優先順位
    エンコーダ手段であって、上記選択されたアクティブな
    ビットは該優先順位エンコーダによってアクティブなビ
    ットに割当てられたコード化された優先順位によって決
    定されかつ上記関連するブランチターゲットアドレスは
    上記選択されたアクティブなビットに割当てられたコー
    ドによって指定されるような優先順位エンコーダ手段と
    、 を有する優先ブランチ回路。
JP1260394A 1988-10-07 1989-10-06 優先ブランチ機構を備えたデータ処理システム Expired - Lifetime JPH0619711B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/254,985 US4972342A (en) 1988-10-07 1988-10-07 Programmable priority branch circuit
US254985 1988-10-07

Publications (2)

Publication Number Publication Date
JPH02162422A true JPH02162422A (ja) 1990-06-22
JPH0619711B2 JPH0619711B2 (ja) 1994-03-16

Family

ID=22966348

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1260394A Expired - Lifetime JPH0619711B2 (ja) 1988-10-07 1989-10-06 優先ブランチ機構を備えたデータ処理システム

Country Status (4)

Country Link
US (1) US4972342A (ja)
EP (1) EP0363174A3 (ja)
JP (1) JPH0619711B2 (ja)
CA (1) CA1321653C (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617574A (en) * 1989-05-04 1997-04-01 Texas Instruments Incorporated Devices, systems and methods for conditional instructions
US5168570A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Method and apparatus for a multiple request toggling priority system
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5630157A (en) * 1991-06-13 1997-05-13 International Business Machines Corporation Computer organization for multiple and out-of-order execution of condition code testing and setting instructions
EP0706126A1 (en) * 1994-10-07 1996-04-10 International Business Machines Corporation Multi-priority level scheduler
FR2737591B1 (fr) * 1995-08-03 1997-10-17 Sgs Thomson Microelectronics Dispositif d'organisation d'acces a un bus memoire
DE10062995A1 (de) * 2000-12-16 2002-07-11 Micronas Gmbh Unterbrecher-Steuereinrichtung
US8908564B2 (en) * 2010-06-28 2014-12-09 Avaya Inc. Method for Media Access Control address learning and learning rate suppression
US9471317B2 (en) * 2012-09-27 2016-10-18 Texas Instruments Deutschland Gmbh Execution of additional instructions in conjunction atomically as specified in instruction field

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT971304B (it) * 1972-11-29 1974-04-30 Honeywell Inf Systems Sistema di accesso a priorita variabile dinamicamente
US3979725A (en) * 1973-08-06 1976-09-07 Xerox Corporation Multi-way program branching circuits
US3967104A (en) * 1974-11-26 1976-06-29 Texas Instruments Incorporated Direct and indirect addressing in an electronic digital calculator
US4009470A (en) * 1975-02-18 1977-02-22 Sperry Rand Corporation Pre-emptive, rotational priority system
US4006466A (en) * 1975-03-26 1977-02-01 Honeywell Information Systems, Inc. Programmable interface apparatus and method
US4034349A (en) * 1976-01-29 1977-07-05 Sperry Rand Corporation Apparatus for processing interrupts in microprocessing systems
US4179737A (en) * 1977-12-23 1979-12-18 Burroughs Corporation Means and methods for providing greater speed and flexibility of microinstruction sequencing
US4315314A (en) * 1977-12-30 1982-02-09 Rca Corporation Priority vectored interrupt having means to supply branch address directly
US4246644A (en) * 1979-01-02 1981-01-20 Honeywell Information Systems Inc. Vector branch indicators to control firmware
US4271467A (en) * 1979-01-02 1981-06-02 Honeywell Information Systems Inc. I/O Priority resolver
IT1134780B (it) * 1980-12-18 1986-08-13 Honeywell Inf Systems Unita' di controllo microprogrammata con rete di salti multipli
IT1159351B (it) * 1983-02-03 1987-02-25 Cselt Centro Studi Lab Telecom Circuito di arbitraggio a struttura distribuita per le richieste di accesso al bus di un sistema multiprocessore
US4573118A (en) * 1983-03-31 1986-02-25 Fairchild Camera & Instrument Corporation Microprocessor with branch control
JPS6014338A (ja) * 1983-06-30 1985-01-24 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 計算機システムにおける分岐機構
US4636544A (en) * 1985-02-25 1987-01-13 General Electric Company Flame retarded polyester molding composition with improved electrical performance
JPH0792782B2 (ja) * 1985-09-30 1995-10-09 富士通株式会社 処理実行システム

Also Published As

Publication number Publication date
EP0363174A2 (en) 1990-04-11
US4972342A (en) 1990-11-20
EP0363174A3 (en) 1992-07-08
JPH0619711B2 (ja) 1994-03-16
CA1321653C (en) 1993-08-24

Similar Documents

Publication Publication Date Title
US6662302B1 (en) Method and apparatus of selecting one of a plurality of predetermined configurations using only necessary bus widths based on power consumption analysis for programmable logic device
US6076152A (en) Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem
EP1267256A2 (en) Conditional execution of instructions with multiple destinations
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
JPH02149156A (ja) 通信プロセッサ装置
WO1997030395A1 (fr) Memoire a acces multiples et processeur de donnees procurant l'acces a cette memoire
KR100465388B1 (ko) Risc 구조의 8비트 마이크로 제어기
JP2620511B2 (ja) データ・プロセッサ
JPH0124655Y2 (ja)
JPH02162422A (ja) 優先ブランチ機構を備えたデータ処理システム
US5440714A (en) Method and system configuration for simplifying the decoding system for access to an register file with overlapping windows
US6654874B1 (en) Microcomputer systems having compressed instruction processing capability and methods of operating same
KR20010007093A (ko) 마이크로 명령을 기초로 프로그램 가능한 명령을 실행하는하드웨어 장치
KR100732426B1 (ko) 고속 컨텍스트 전환을 갖는 컴퓨터
JP3332606B2 (ja) マイクロプロセッサ
JPH0628177A (ja) マイクロプロセッサ
US5649229A (en) Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage
US20070169022A1 (en) Processor having multiple instruction sources and execution modes
US7200739B2 (en) Generation of modified command sequence from original command by feeding back for subsequent modification based on decode control signal
US20050114626A1 (en) Very long instruction word architecture
JP3647078B2 (ja) プロセッサ
JPH08305563A (ja) データ処理装置
JP2005535045A (ja) Vliw命令を処理するためのプロセッサおよび方法
JP2583614B2 (ja) ベクトル演算装置
JPH034944B2 (ja)