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

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

Info

Publication number
JPH0619711B2
JPH0619711B2 JP1260394A JP26039489A JPH0619711B2 JP H0619711 B2 JPH0619711 B2 JP H0619711B2 JP 1260394 A JP1260394 A JP 1260394A JP 26039489 A JP26039489 A JP 26039489A JP H0619711 B2 JPH0619711 B2 JP H0619711B2
Authority
JP
Japan
Prior art keywords
priority
branch
register
address
bit
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.)
Expired - Lifetime
Application number
JP1260394A
Other languages
English (en)
Other versions
JPH02162422A (ja
Inventor
ゴードン・テイラー・デイヴイス
バイジユ・デイラーラル・マンダリア
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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, 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, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

Description

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

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】サブルーチンを実行するためのブランチ命
    令を処理する優先ブランチ機構を備えたデータ処理シス
    テムであって、当該優先ブランチ機構が、 (a)複数の状況ビットからなる状況ビット・セットを含
    む入力レジスタと、 (b)前記ブランチ命令を実行するとき、状況ビットをア
    クティブ状態に設定するプログラム制御手段と、 (c)前記入力レジスタに接続され、それぞれが前記状況
    ビットの1つに割当てられる複数の優先順位コードから
    なる優先順位コード・セットをセグメント化して記憶す
    る、優先順位レジスタ手段と、 (d)それぞれが前記状況ビットの1つに関連する前記サ
    ブルーチンを指定するための複数のブランチ・アドレス
    からなるブランチ・アドレス・セットをセグメント化し
    て記憶するアドレス・レジスタ手段と、 (e)前記優先順位レジスタ手段及びアドレス・レジスタ
    手段に接続され、前記ブランチ命令の実行に応答して、
    前記入力レジスタ中のアクティブな状況ビットに対応す
    る優先順位コードを、前記優先順位レジスタ手段から選
    択して転送し、最も高い優先順位を有するアクティブな
    状況ビットを示す出力信号を生成する、優先順位エンコ
    ード・ユニットを備えた論理手段と、 (f)前記出力信号に応答して、前記最も高い優先順位を
    有するアクティブな状況ビットに対応するブランチ・ア
    ドレスを、前記アドレス・レジスタ手段から選択する手
    段とを具備する、 データ処理システム。
JP1260394A 1988-10-07 1989-10-06 優先ブランチ機構を備えたデータ処理システム Expired - Lifetime JPH0619711B2 (ja)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JPH02162422A JPH02162422A (ja) 1990-06-22
JPH0619711B2 true 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
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5168570A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Method and apparatus for a multiple request toggling priority 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
US4271467A (en) * 1979-01-02 1981-06-02 Honeywell Information Systems Inc. I/O Priority resolver
US4246644A (en) * 1979-01-02 1981-01-20 Honeywell Information Systems Inc. Vector branch indicators to control firmware
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
US4972342A (en) 1990-11-20
CA1321653C (en) 1993-08-24
EP0363174A3 (en) 1992-07-08
EP0363174A2 (en) 1990-04-11
JPH02162422A (ja) 1990-06-22

Similar Documents

Publication Publication Date Title
JP3787167B2 (ja) フラッシュメモリ
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
EP0138419B1 (en) Central processing unit for a digital computer
US4314333A (en) Data processor
EP0199173A2 (en) Data processing system
US20230385063A1 (en) Streaming engine with early exit from loop levels supporting early exit loops and irregular loops
KR20000076310A (ko) 리스크 구조를 갖는 8 비트 마이크로콘트롤러
WO1981000633A1 (en) Special address generation arrangement
US20060265571A1 (en) Processor with different types of control units for jointly used resources
US6687808B2 (en) Data processor using indirect register addressing
JP2845433B2 (ja) 集積回路装置
KR100972160B1 (ko) 데이터 액세스 프로그램 명령 인코딩
GB2024475A (en) Memory access controller
JPH0619711B2 (ja) 優先ブランチ機構を備えたデータ処理システム
US5572700A (en) Cache access controller and method for permitting caching of information in selected cache lines
US20030033503A1 (en) Single instruction having opcode and stack control field
US4661925A (en) Computer control memory apparatus providing variable microinstruction length
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
KR100960095B1 (ko) 마이크로컨트롤러 명령어 셋트
JPH0628177A (ja) マイクロプロセッサ
US5649229A (en) Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage
KR100897857B1 (ko) 마이크로컨트롤러 명령어 셋트
US7200739B2 (en) Generation of modified command sequence from original command by feeding back for subsequent modification based on decode control signal
US5479632A (en) Microcomputer having two-level memory to facilitate calculation of effective addresses
JP3647078B2 (ja) プロセッサ