JPS61502566A - ビツト・フイ−ルド命令の方法と装置 - Google Patents

ビツト・フイ−ルド命令の方法と装置

Info

Publication number
JPS61502566A
JPS61502566A JP60501965A JP50196585A JPS61502566A JP S61502566 A JPS61502566 A JP S61502566A JP 60501965 A JP60501965 A JP 60501965A JP 50196585 A JP50196585 A JP 50196585A JP S61502566 A JPS61502566 A JP S61502566A
Authority
JP
Japan
Prior art keywords
register
bus
field
memory
pit
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
JP60501965A
Other languages
English (en)
Inventor
ゾルノウスキー,ジヨン
トリツセル,デイビツド ダブリユー
マクレガー,ダグラス ビー
Original Assignee
モトロ−ラ・インコ−ポレ−テツド
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 モトロ−ラ・インコ−ポレ−テツド filed Critical モトロ−ラ・インコ−ポレ−テツド
Publication of JPS61502566A publication Critical patent/JPS61502566A/ja
Pending 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 ビット・フィールド命令の方法と装置 発明の分野 本発明は、データ・プロセッサ命令、特にビット・フィールド命令に関する。
発明の背景 データ・プロセッサでは、有効なメモリの使用が重要である。メモリ効率をあげ る方法は、ビット・フィールドの使用である。ある領域のメモリは、ある(一定 の)動作やある種のデータに専用にされる。そのようなデータは、決して5ビツ ト以上は必要でないことは知られている。この専用メモリ領域の1部分である各 バイトに、そのデータが、3バイトを未使用のままにのこす。メモリは、バイト 形式でアドレスされるのが普通である故に、これら3ビツトは、他の命令や他の 種類のデータの部分として使用されない限シ、むだにされる。わずか3ビツトの データの種類は多くない。
したがって、この3.ビットが有効となるためには、バイトの1個が部分的だけ 使用される時に、データが1バイト以上に記憶されるための容量が存在しなけれ ばならない。これは、バイト境界を交叉する(crossing)ものとして既 知である。勿論1バイト以上である情報が屡々使用される。部分的に使用される バイトの状態の情報やオペランドは、バイト境界で始まらないと云う差異がある 。このように記憶された情報がビット・フィールドと呼ばれる。
各データ・プロセッサは所定幅のバスを持ち、典型的にその幅はバイト増分にあ る。集積回路マイクロプロセッサでは、32ビツト、すなわち、4バイトの幅の バスがある。先行技術においてはバスにうまく適合させるために、ビット・フィ ールドは、バスの広さよりすくないバイト中に包含されることができた。例えば 、バスが!ビット幅であれば、ビット・フィールドは、4バイト以下に包含され た。これはビット・フィールドを、バスの幅より7ビツトすくなく制限する結果 となった。32ビツト・バスの場合には、26ビツトのビット・フィールドが5 バイトに包含された。それ故に、25または、それ以下のビット・フィールドの みが許された。
多くのオペランドはこの制約よシ広い故に、これは不利である。この制約はまた 、どのオペランドがビット・フィールドに存在出来るかということを限定した。
多くのオペランドの幅がバスの幅と同一あるいは、それに近接しておシ、然し、 ビット・フィールドの使用がメモリの使用効率を高めそうな命令では、幅の制約 は特に不利な影響をおよぼす。
発明の要約 本発明の目的は、改良したビット・フィールド命令を提供することである。
本発明の他の目的は、ビット・フィールドがデータ・プロセッサのバスと同一幅 であるビット°フィールド命令を提供することである。
本発明のさらに他の目的は、データ・プロセッサのバスの幅よ#)1バイト以上 広い幅に包含されるビット・フィールド命令を提供することである。
データ・プロセッサは、アドレス、命令、及び、他の情報を伝える内部バスの大 きさと同一の所定大きさのオペランドのオペレーションを実行するように設計さ れる。メモリはバイトでアドレスされるから、5バイトに部分的に重なるビット ・フィールドは、1オペランド・スペース以上である。ここに開示されるビット ・フィールド命令は、一対のオペランドの一部分に包含されるビット・フィール ドの、アクセス方法を提供する。アクセスは、データ・プロセッサの動作を支持 する方法で行なわれる。この1つの方法は、ビット・フィールドが単一オペラン ドに包含されるように、その位置を正確に調整することで達成される。ビット・ フィールドは、前記所定大きさより大きくてはいけない。
図面の簡単な説明 第1図は、本発明に有益なデータ・プロセッサを具えるデータ処理システムのブ ロック図である。
第2図は、第1図のデータ・プロセッサのブロック図である。
第3図は、本発明の実行に有効なデータ・プロセッサのブロック図である。
第4図は、本発明を実行するシックのブロック図である。
第5図は、本発明を実行する制御回路のブロック図である。
第6図は、本発明の好ましい実施例によるビット・フィールド命令のある段階に おけるビット・フィールドを包含するメモリの一部分である。
第7図は、本発明の好ましい実施−によるビット・フィールド命令のある段階に おけるビット・フィールドの一部分である。
第8図は、本発明の好ましい実施例によるビット・フィールド命令のある段階に おけるビット・フィールドの一部分である。
第9図は、本発明の好ましい実施例によるビット・フィールド命令のある段階に おけるビット・フィールドの一部分である。
第10図は、本発明の好ましい実施例によるビット・フィールド命令のある段階 におけるビット・フィールドの一部分である。
第11図は、本発明の好ましい実施例によるビット・フィールド命令のある段階 におけるビット・フィールドである。
第12A及び第1211図は、本発明の好ましい実施例によるビット・フィール ド抽出命令を説明するマイクロ制御流れ図から成る。
第13 A及び第131図は、本発明の好ましい実施例によるビット・フィール ド・クリア命令を説明するマイクロ制御流れ図から成る。
本発明の説明 第1図に図示されるのは、データ・プロセッサ(DP)νよυ発せられた論理ア ドレス(LADDR)が、メモリ管理装置(MMU)14によシ、物理バス(P BUS) taに出力する対応物理アドレス(PADDR)にマツプされるデー タ処理システム−である。同時に、アクセスを制御するためDP12により供給 される各種論理アクセス制御信号(LCNTL )は、MMU14の制御のもと てモデイファイヤ装置18によシ、適当にタイミングをとった物理アクセス制御 信号(PCNTL )に変換される。DP12は、ビット・フィールド命令に関 する本発明を実行出来るデータ・プロセッサの一例である。
特定の範囲の物理アドレス(・PADDR)に応答して、メモリ20は誤り検出 及び訂正回路(EDAC) 22と協力し、PBUS 16の物理アクセス制御 信号(PCNTL )と同期をと5、DP12とデータ(DATA )を交換す るであろう。
データ中に誤りを検出すれば、EDAC22は、誤りの種類にもとづき交換を再 試行(RETRY )するため、バス・エラー(ngRR)か又は要求DP12 を信号通報する。
異なる物理アドレスに応答して、大容量記憶装置インタフェース24はDP 1 2と協力し、大容量記憶装置26にデータを転送し、またはそこよシデータを取 シ出すであろう。転送中にg4シがおこれば、インタフェース24はバス・エラ ー(BFRR)を信号通報し、または、適切であれば、再試行(RETRY ) を要求するであろう。
MMU 14が、対応物理アドレス(PADDR)の特定の論理アドレス(LA DDR)をマツプすることが出来ない場合には、MMU14はアクセス障害(F AULT )を信号通報するであろう。MMU14のチェックとして、ウォッチ ドッグ・タイマ測が具えられ、物理アクセス制御信号(PCNTL )に関連す る適当な時間ないに、どの物理装置も物理アドレス(PADDR)に応動しなけ れば、バス・エラー(BERR)を信号通報するであろう。
データ・アクセス・バス・サイクルのあいだに、もしRETRYが要求されれば 、ORゲート(9)及び諺がそれぞれ、DP12のBERR及びHALT入方を 起動するであろう。DP制御バス・サイクルのあいだに、BERR及びHALT 入力の両方が同時に起動されるのに応動して、DP12は現パス・サイクルを打 切!+、RETRY信号の終了により、そのサイクルを再試行(retry ) するであろう。
要すれば、DP12の演算(operation )は、HALT信号の妥当な 使用によシ、外部的に制御が可能である。
ORゲート!を介する)IALT入力のみの起動に応答して、DP12は現パス ・サイクルの最後で停止し、HALT信号の終了の時だけ演算を再開するであろ う。
プロセッサ制御バス・サイクルのあいだのBERR入力のみの起動に応答して、 DPI2は、現パス・サイクルを打切り、状態レジスタの内容を内部的に保護し 、監視プログラム状態に入シ、もしオンなら、トレース状態をターン・オフにし 、そして、バス・エラー・ベクトル番号(ナンバー)を生成するであろう。そこ でDP口は、プロセッサの現内部文脈(1nternal context ) を反映する情報ブロックを、メモリ艶の監視プログラム・スタック領域に積重ね (5tack )、それから、監視プログラムのエラー・ハンドリング部に分岐 するため、ベクトル番号(ナンバー)を使用するであろう。
この点までは、DP12の演算は、MotorolaのMC68000マイクロ プロセツサのオペレイジョンに等しい。然し、BERRの実行に応答して、積重 ねられる情報の量では、DP12はMC68000と異なル。MC68000: cスタックされる情報は;退避(save) した状態レジスタ、プログラム・ カウンタの現内容、普通は現実行命令の第1語である命令レジスタの内容、打切 シバス・サイクルによシアクセスされていた論理アドレス、及び打切りバス・サ イクルの特性、即ち、読出し/書込み、命令/データ、及び、機能コード、よシ なる。上述の情報に加えて、内部機械状態に関する多くの情報をスタックするよ うにDP12は構成される。例外ハンドラが誤シの解決に成功すれば、その最終 命令はDPνの制御を打切ったプログラムに戻すであろう。この命令の実行のあ いだ、追加のスタックされた情報は検索され、DP戎の適当な部分にロードされ 、バス・エラーが起きた時に存在した状態がもとに戻る。
DP12の好ましい動作は、DP12のマイクロプログラム可能な実施例の内部 組織を図示した第2図を参照して説明されるであろう。DP12の図示された形 式は、これから後で引用されるいくつかの米国特許に詳細に説明されているモト ローラ社のMo 68000マイクロプロセツサに非常に似ているので、普通の 動作状態は、むしろ大まかに説明されるであろう。DP12の内部アーキテクチ アの全般的な理解が確立されると、検討は本発明のユニークなビット・フィール ドの特徴に集中するであろう。
DP 12は、MC68000のようにパイプライン型のマイクロプログラム・ データ・プロセッサである。パイプライン型プロセッサでは、各命令は前命令の 実行中に取出されるのが普通で、取出された命令の翻訳は、前命令が終了する前 に、開始するのが普通である。マイクロプログラム・データ・プロセッサでは、 命令によシ定義された動作の細部を演するマイクロ命令の順序で、各命令は実行 される。要すれば、ユーザの命令はマイクロ命令との混乱を避けるため、マイク ロ命令と考えてもよい。MC68000及びDP12では、各マイクロ命令は、 マイクロ命令順序及び機能コード生成を制御するマイクロワード(microw ord )と、D12内で機能装置と特別の機能装置間の実際の経路指定を制御 する対応ナノワード(nanoword )よシなる。これを念頭に置いて、典 型的な命令実行サイクルが説明されるだろう。
各命令の実行のあいだの適当な時刻に、ブリフェッチ(先取9 ; pre−f etch)マイクロ命令が実行されるであろう。そのマイクロワード部分は、マ イクロROM34よυマイクロROM出力ラツチあにロードされると、機能コー ド・バッファーあをイネーブル(enadle )にし、命令サイクルを表示す る論理アドレス(LADDR)の機能コード(FC)部を出力する。同時にナノ ROM40からナノROM出力ラッチ42にロードされ、対応ナノワードは、命 令7エツチ・バス・サイクルを実行するためバス・コントローラ伺を要求し、ま た、アドレス・パッファ槌に次の命令の第1ワードの論理アドレスを与えるため 命令実行装置46を実行させる。PRUS 16の制御を得ることによシ、バス ・コントローラ44は、論理アドレス(LADDR’)のアドレス部を出力する ようにアドレス・バッファ槌をイネーブルにするであろう。その後しばらくして 、バス・コントローラIは、適当なデータ・ストローブ(いくつかのLCNTL 侶号)を供給してメモIJ 20を駆動する。メそ1720が要求された情報を 供給すると、バス・コントローラIは、PBUS 16から次の命令の第1ワー ドを入力するように命令レジスタ検索(IRC)50をイネーブルにする。現命 令実行中のすこし後の時点で、他のマイクロ命令が実行され、IRC刃から命令 レジスタ(IR)52に次の命令の第1ワードが転送され、また、メモリ加から IRC5UK矢のワードがロードされるであろう。lR52の命令の型により工 RC50のワードは、即値データ(immeadiate data) +オペ ランドのアドレス、または、次の命令の第1ワードであるかもしれない。命令セ ット及びそのマイクロ命令順序の詳細は、1マイクロプログラム・データ・プロ セッサ用2重レベル制御記憶装置”と題する1982年4月13日にGunte r+その他に発行され、参考のためにこ\に組み入れられている米国特許第4, 325,121号に、十分に述べられている。
次の命令の第1ワードが、lR52にロードされるや否やすぐに、アドレス1デ コーダ9は、命令の一定の制御フィールドのデコードを開始してlR52の個々 の命令の初めのマイクロ順序(m1crossquence )の第1マイクロ 命令のマイクロ・アドレスを決定する。同時に違法命令デコーダ謁は、lR52 の命令の様式(フォーマット)の検討を開始するであろう。若し、フォーマット が不正と判定されると、違法命令デコーダ%は、違法命令マイクロ順序の第1マ イクロ命令のマイクロ・アドレスを与えるであろう。フォーマット・エラーに応 答して、例外輪理団は、マルチプレクサωが、強制的にアドレス1デコーダシに よシ与えられるマイクロ・アドレスを違法命令デコーダIで供給されたマイクロ ・アドレスに置き換えるであろう。かくして、現在実行中の命令の最終マイクロ 命令の実行により、そのマイクロ・ワード部は、マルチプレクサωをイネーブル にして、マイクロ・アドレス・ラッチ62に適切なマイクロ・アドレスを供給し 、一方そのナノワード部は、命令レジスタデコーダ(IRD)64をイネーブル にして、lR52からの次の命令の第1ワードをロードする。選択されたマイク ロ・アドレスがマイクロ・アドレス・ラッチ圏にロードされると、マイクロRO M 34は、それぞれのマイクロワードをマイクロROM出力ラッチ側に出力し 、また、ナノROM40は、対応するナノワードをナノROM出力ラッチ42に 出力するであろう。
一般的に、マイクロROM出力ランチあにロードされた各マイクロワードの部分 は、実行される次のイイクロ命令のマイクロ・アドレスを指定し、一方、他の部 分は、マイクロ・アドレス・ラッチ62の入力に対しどの代替マイクロ・アドレ スがマルチプレクサωにより選択されるのかを決定する。ある命令では、特定の オペレーション(動作)を達成するため、1個以上のマイクロ順序が実行されな ければならない。間接アドレス分解能(r@5olution )のようなタス クは、一般に、命令の中の追加制御フィールドの使用して特定される。
これら追加マイクロ順序にたいする第1マイクロ命令のマイクロ・アドレスは、 lR52の制御情報を使用し、アドレス2−3デコーダωによシ発生される。簡 単な型のそのような命令では、第1マイクロ順序は普通、ある準備タスクを実行 し、それから、マルチプレクサωをイネーブルにして、アドレス2−3デコーダ 圀のアドレス3部分によシ発生される実際のオペレーション(演算)を実行する マイクロ順序のマイクロ・アドレスを選択するでおろう。かような命令のよシ複 雑な形式において、第1マイクロ順序は、第1準備タスクを実行し、次に、マル チプレクサωをイネーブルにして、アドレス2−3デコーダ6のアドレス2部分 により発生された次の準備マイクロ順序のマイクロ・アドレスを選択するであろ う。この追加準備タスクの実行によシ第2マイクロ順序は、次に、マルチプレク サωをイネーブルにして、アドレス2−3デコ一ダ弱のアドレス3部分によシ発 生された実際のオペレーションを実行するマイクロ順序のマイクロアドレスを選 択するであろう。とにかく、各命令の最終マイクロ順序の最終マイクロ命令は、 マルチプレクサωをイネーブルにしてアドレス1デコーダシによシ発生されるよ うな次の命令の第1マイクロ命令のマイクロ・アドレスを選択するであろう。こ のように、各命令の実行は、マイクロ命令の適当な順序を通じ進行するであろう 。マイクロ・アドレス順序選択メpニズムのよシ完全な説明は、1マイクロプロ グラム・データ・プロセッサ用命令レジスタ順序デコーダと題して1982年7 月27日にTredsnniekその他に発行され、参考のためにこ\に組み入 れられている米国特許第4 、342 、078号に与えられている。
マイクロワードと対照的に、ナノROM出力ラッチ42にロードされるナノワー ドは、オペランドの経路指定を間接的に制御し、レジスタ制御(高)68及びレ ジスタ制御(低及びデータ)70を通じ制御を実行することによシ、必要ならば 実行装置46のいくつかのレジスタ間で制御する。ある場合には、ナノワードは 、フィールド変換装置(translation unit ) 72をイネー ブルにし、実行装置46に入力用のIRD64の命令から特定のビットフィール ドを抽出する。ナノワードは、また、AU制御74及びALU制御76を通して 制御することにより、実行装置46内の実効アドレス計算及び実オペランド計算 を間接的に制御する。適当な場合には、ナノワードは、ALU制御76をイネー ブルにし、実行装置46による各オペランド計算から生ずる条件コードを、状態 レジスタ(SR)78に記憶させる。ALU制御76のよシ詳細な説明は、゛デ ータ・プロセッサ用ALU及び条件コード制御装置1と題し、1982年1月1 9日にGunter+その他に発行され、参考のためにこ\に組み入れられてい る米国特許第4,312.034号に与えられている。
第3図に図示されるのは、本発明の好ましい実施例シック回路400.及び制御 回路500よシなるデータ・プロセッサ300である。
第4図に図示されるのは、本発明のビット・フィールド命令の実行するのに有益 次シック回路400のブロック図である。シフター制御回路400は、レジスタ A。
スイッチ401.バレル・シフタ402.レジスタB、スタート・レジスタ40 3.エンド・レジスタ404.シフト・カウント・レジスタ405.及びフィル ・レジスタ406よシなる。レジスタ人は、!ビット・パス407によりスイッ チ401に接続される。レジスタ人は同様に、各々!ビット・バスであるDBバ バス08及びAB/(ス409に接続される。レジスタBもまた、DBパス40 8 及びABババス09に接続される。レジスタB4また、32ビツト・パス4 11でバレル・シフタ402に接続される。
バレル・シフタ402は支ビット・バス412にヨリスイッチ401に接続され る。
スイッチ401は、冨ビットから転送する一定のビットを選択する。可能な!ビ ット位置は、0から支まで指定される。スタート・レジスタ403は、0から支 のビット位置のどれが、スイッチ401で転送されるスタート・ビット(sta rting bit )であるのかを指示する5ビツトを包含する。エンド・レ ジスタ4G4は、0から諺のビット位置のどれが、スイッチ401で転送される 最終5ビツトであるか指示する5ビツトを包含する。
エンド嗜レジスタ404は、スタート・レジスタ403に包含されるものよシ大 きいか、または等しい値を包含せねばならない。フィル°レジスタ406は、非 転送のビットに、何が起こるべきか指示する。非転送のビットは、符号拡張(s ign extended ) *ゼロ埋め(zer。
filled) 、または、X拡張(X extend@d)されうる。
符号拡張(sign extend@d )は、おもに符号ナンノ(−(sig ned numberII)にたいするものである。これは、全部の非転送ビッ トを、転送ビットの最上位ビット(MSB )と同一にすることによシ達成され る。転送ビットのMSBは、エンド・レジスタ404によシ指示されるビットで ある。X埋めオプション(X fill option )は、全ての非転送ビ ットの位置にある選択可能なビットを入れる目的である。勿論O埋め(zero  fikk )は、非転送ビットの位置に、0を入れることを意味する。
バレル・シフタ402ハ、シフト・カウント・レジスタ405が指示する量だけ 、32ビツトを循環(rotate )する。シフト・カウント・レジスタ40 5にロードされたビットは、デコーダPLA 413によりデコードされ、順次 バレル・シフタ402の直接制御を与える。若し、転送がレジスタAからレジス タBまであれば、バレル・シフタ402による循環は、シフト°カウント°レジ スタ405で指示される量だけ右方向である。若し、転送がレジスタBからレジ スタAまでであれば、循環はシフト・カウント・レジスタ405で指示される量 だけ左方向である。循環が1方向に限定されたとしても、反対方向への実効循環 は、また達成される。若し反対方向循環が望まれれば、諺から所望循環量を減算 し、その結果をシフト・カウント・レジスタ405に入れる。
例えば、レジスタAからレジスタBへの転送において、3の左方向シフトが所望 されるなら、これは右方向に32引く3に等しい量、即ち四だけ右方向にジット することで達成される。レジスタAからレジスタBへの転送では、スイッチ40 1及びバレル中シフタ402で処理される全部ビットが、レジスタBに書き込ま れる。反対にレジスタBからレジスタAへの転送では、スタート・レジスタ40 3及びエンド・レジスタ404で選択された包含的(inelumive )ビ ットのみが、レジスタAに書き込まれる。レジスタBからレジスタ人までの転送 は、レジスタAに存在する値に選択ビットを挿入することを有効にする。レジス タAからレジスタBlでの転送は、レジスタBの完全な再書込みを有効にする。
レジスタ人よりレジスタBへ、または、レジスタBよシレジスタAへ制御命令を 転送するごとに、またはシフトするごとに、スタート、エンド、及びシフト・カ ウント・レジスタ403 、404 、及び405は、選択された値によシロー ドされる。
ビット・フィールド命令に使用される制御回路500によシ実行される多くのビ ット処理機能即ち連結、加算1反転、その他の機能は、既知のハードウェア実施 例を具えている。第5図に図示されるのは、制御回路500の特に有効なハード ウェア実施例のブロック図である。然しなから、制御回路500に対し必要な機 能を実行する普通のバー−ドウエアはどれも、本発明ヲ災行するのに十分である 。制御回路SOOの機能必要条件は、ビット・フィールド命令の説明で明瞭であ ろう。
第6図に図示されるのは、バイト1−7の7バイトよシなるメモリ600の一部 分である。バイト3−7で斜交平行線の領域は@Wのビット・フィールド601 でちる。
ビット・フィールド601は!ビットより小さいが、これは5つの別のバイトに 位置している。バイト30ビット位置602は、ビット・フィールド601の最 上位ピッ)(MSB)である。バイトチ0ビツト位置603は、ビット・フィー ルド601の最下位ビット(LSB )である。メモリ部分600からビット・ フィールド601の抽出する場合、その目的は、ビット・フィールド601の全 体がフォーマットされることであシ、この場合は正しく位置調整されることで、 そうすれば、ビット・フィールドは、ビット603を32ビツト°バスのO位置 に置き、また幅Wを超えるビットはすべて符号拡張され、友ビット・バスに置か れることが可能である。利用可能バスは!ビットに制限され、メモリ部分600 ばバイトの形でアドレスされる故、ビット・フレールド601は、単一アドレス によシフタセスすることは出来ない。
したがって、ビット・フィールド601を望ましい型にフォーマットするには、 幾つもの段階が必要とされる。
オフセットO8は、ビット・フィールド601の初めが、バイト10バイト境界 にあるバイト境界605から、何ピットはなれているか指示する。長いワードは 羽ビットである。したがって、DP12は、長いワードと同じ大きさである可能 性のオペランドと共にオペレーションを実行するように構成される。5バイトに 重なるビット群(bit fold)は、DP12から見てメモリの2オペラン ドに存在する。
バイト3−6はレジスタ人にロードされる。スタート・レジスタ403はOの値 をロードされ、エンド・レジスタ404は、バイト3−6にあ夛、ビット・フィ ールド601の一部分である(ビット数−1)に等しい値によシロードされる。
”マイナス1”は、ビット位置が指定される方法によるものである。例えば幅が 四であると、エンド・レジスタ404にロードする値は、dとなるべきである。
これは、nビットをバスさせるであろう。フィル・レジスタ408は符号拡張の ためセットされる。符号拡張ビットは、バイト3の左のバイト境界604からの オフセット083の量と同じである。オフセット083は、オフセットO8の3 つの最下位ビットより構成される。スイッチ401で調整されたレジスタAの内 容は、次に、バレル・シフタ402によシ受信される〇バレル・シフタ402は 、符号拡張抽出命令(51g11 axt−end extract 1nst ruetion )に対して非ビット・フィールド・ビットが拡張された符号で あることを除外してバイト3−6を受信する。これは第7図において、左上から 右下へ斜交平行線をつけた領域で図示する符号拡張ビットによシ示される。ゼロ 拡張は他の選択であるが、現在の例に対しては図示されない、この状態では、パ イ)7に広がるピッ)Eの数に等しい量の左方向循環が望ましい。左方向循環は 、レジスタAよシレジスタBまでは利用できないが、望ましい結果は右方向循環 により達成出来る。Eの左方向循環を得るために、(32−E)の右方向循環が 使用される。したがって、(32−E)の値が、シフト・カウンタ・レジスタ4 05に置かれる。第8図に図示される、このシフトの後の結果が、レジスタBに ロードされる。レジスタBの結果はレジスタAにロードされ、バイト7はレジス タBにロードされる。レジスタBにロードされる第6図のバイト7は、第9図に 図示される。
レジスタBの内容は、(8−E)に等しい量だけ右にシフトされ、レジスタAの 内容に挿入される必要がある。なぜなら、レジスタBからレジスタAへの転送で は、左方向循環のみが利用され、レジスタBの内容は、(8−E)の右方向循環 に等しい量だけ左方向に循環されねばならない。等しい循環は、(32−’所望 の循311)であ夛、それは、32−Cs−E)であシ、それは(24+g)に 等しい。それ故、24+Eの値がシフト・カウント。
レジスタ405にロードされる。バレル・シフタ402で実行されるこの循環の 結果は、第10図に図示される。
レジスタBの内容のビット°フィールド部分を・レジスタAに挿入するには、ス イッチ401が、また、適当にセットされねばならない。スタート・レジスタ4 03は0がロードされ、エンド・レジスタ404はE−1の値がロードされる。
レジスタ人への挿入後の結果は、第11図に図示される。かくして、ビット・フ ィールド601は望ましいフォーマットにあり、DBババス0B、または、AB ババス09のようなnビット・バスに単一オペランドとして使用可能なように置 かれる。DP12はこうして、ビット・フィールド601を、ある望ましいオペ レーションの支持のもとで他のオペランドのように使用することが出来る。
5バイトを重複するビット・フィールドは、上記に説明された技法を用いること によυ適当なフォーマットにて!ビット・バスに導かれるが、これは能率的な方 法で行なわれるべきである。さもなければ、かような命令を実行する価値は、実 質的に減少する。それ故、スタート・レジスタ4031エンド・レジスタ404 .及びシフト・カウント°レジスタ405に挿入される値の計算は、出来るだけ 有効に行なわれるのが非常に望ましい。これを念頭において、望ましい値を有効 に得るため、ユニークな技法が開発された。各ビット・フィールドに対し、オフ セット及び幅が与えられる。オフセット値は、バイト−1からビット・フィール ド601のMSB 602まで第6図に図示される値O8であシ、5つの最下位 ビットは、オフセット・レジスタにロードされる。値O83は、O8の3つの最 下位ビットである。
幅Wは幅レジスタにロードされる。スタート、エンド。
及びシフト・カウント・レジスタ403.404. 及ヒ405に挿入される全 ての値は、O8及びWから得られなければならない。
ビット・フィールド601によるオペレーションが、1シフト制御命令にて得ら れ、第8図に図示される結果となるためには、スタート・レジスタ403は零に よシロードされる。これは勿論、特別の計算を必要としない。エンド・レジスタ 404は、バイト3乃至6までに包含されるビット・フィールド602のビット 数に等しい値によりロードされる。これは、ビット11を083の逆値(1nv erS@)と連結することによシ達成される。
これは、8よ、り O8Rを減算した結果に腕を加算した値に等しい。O8Rが 3ビツトを有することは知られているから、それにピッ) 11を連結するのは 、それにスを加えるのに等しい。例として、オフセットO8が22の値を持つと 仮定すれば、そのビット指定は10110でsb、幅Wが四の値を持てば、その ビット指定は11100である。これは、O83が6の値を持ち、ビット指定は 110であることを意味する。そこでO83の逆値(1nveraa)は001 である。001と11を連結すれば11001になシ、エンド・レジスタ404 にロードされたぁの値でアル。
これは、ビット位置0と5の間の(0と25ヲ含む)ビット、即ち、26ビツト が全部、スイッチ401によシ転送されるであろう、ということを意味する。バ イト3の2ビツト、また、バイト7の2ビツトをこの例にとれば、望ましい循環 は左へ2ビツトであり、これは、右方向に(32−2)囲ち、(9)の循環に等 しい。これは、O83と(幅W−1)の合計値の逆値をビット11に連結するこ とにより達成される。この場合、幅Wは、11100のビット指定を持つから、 (W−1)は11011のビット指定となる。ただ、3つの最下位ビットのみが 、11と連結するので、W−1の関連部分は011である。
かくして、O83とW−1を合計することは、110 と011の和をとること であシ、その結果は、001即ち1の値となる。001を反転(inverti ng )すれば110となる。この結果に11を連結すれば11110 、即ち 30となり、望ましい結果となる。これは、gs図に示される結果を得るために 、シフト制御命令に対して、スタート、エンド、及びシフトカウントレジスタ4 03.404及び405をロードする要件を完了し、その結果は、このシフト制 御命令の完了後、レジスタBに与えられる。
レジスタBの内容は、バス408及び409の一方を介し、レジスタAにロード される。
第11図に図示される結果を得るため、スタート−エンド、及びシフト・カウン ト・レジスタ403.404. 及び405にロードされる値は、いくらか変っ た方法で計算される。スタート・レジスタ403にロードされる値は、なお、0 である。エンド・レジスタ404にロードされる値は、000010ビツト指定 を有する1であるべきである。第5バイト、この場合では、第6図のバイト7で あるが、その中にあるビットフィールド60101部には、僅かに2ビツトが存 在する。レジスタ403及び404に対するこれらの値は、2つの望ましいビッ トを、すでにレジスタAに存在するビット°フィールド601の残部に挿入させ ることを可能にする。エンド・レジスタ404に対するこの値は、ビット00を 、O83と(幅W−1)の合計値と連結することによシ得られる。前述のとおり 、O83と(W−1)と合計することは、110と011を合計することであシ 、その結果は001である。00と001を連結すれば00001となシ、望ま れる結果となる。ビット・フィールド601の2ビツトを望ましいoooooと 00001の位置に移動させるた・めには、右方向へ6の循環が必要である。右 方向へ6の循環は、左方向へ循m26に等しい。したがって、26の蝋がレジス タ405に入れられるべきである。これは、怒を、エンド・レジスタ404に挿 入された値に加算することによシ計算される。エンド・レジスタ4o4に挿入さ れる値は00001 、即ち1として計算される。そこで、シフト・カウンタ・ レジスタ405に入れら、れる値。
は、(25+1)即ち、26に等しくなり、望まれた値である。これは、メモリ 内に5バイト如ち本来の32ビツト・フォーマットにて記憶されるビット・フィ ールドを供給するのに必要な値を得るための手続を完了する。
メモリ内に5バイトを重複するビット・フィールドの抽出を実行するだめの技法 は、ビット・フィールドがアドレスされた後で1.2つのシック制御命令を要求 する。若し、アドレスされたビット・フィールドが、4バイト、またはそれ以下 に包含されておれば、ただ1つのシフタ制御命令が必要とされる。したがって、 5バイトを重複するビット・フィールドを処理出来る特別の適応性は、前に得ら れた4バイトのビット°フィールドの処理能力をスロー・ダウンはしない。ビッ ト・フィールドが、メモリの4バイト、またはそれ以下に包含されると、全ビッ ト・フィールドはレジスタAにロードされる。スタート・レジスタ403は、オ フセットの3つの最下位ビットと(I[W−1)の合計値の逆値に連結された0 0でロードされる。エンド・レジスタ404に対する値もまた、効率的に計算さ れる。
オフセットの3つの最下位ビットと(幅W−1)の合計値は、それはスタートレ ジスタ403に対して計算されるが、その合計値が使用される。然しなから、3 つの最下位ビットのみ夕使用する代シに、第4及び第5ビツトも使用される。こ の合計値の第4及び第5ビツトは、オフセットの3つの最下位ビットの逆値と連 結され、エンド・レジスタ404にロードされる値を得る。
シフト・カウント・レジスタ405 Vcロードされる値は、スタート・レジス タ403にロコドされるものと同一である。次に、適切にフォーマットされた結 果は、レジスタBに現われるであろう。
メモリに挿入するとき、5バイトに重複するビット・フィールドを挿入すること は、5バイトに重複するビット・フィールドを抽出する場合と類似である。然し 、異なった重要な考慮が必要である。ビット・フィールドで部分的に埋められた 2バイトの中で、ビット・フィールドの1部分でないビットは、ビット・フィー ルドの挿入のあいだ変更してはならない。第6図のビット・フィールド601を 例として用いれば、バイト3及び7は、ビット・フィールド60101部分でな く、また、ビット・フィールドの挿入により変更できないビットを包含する。メ モリはバイト・アドレス指定可能であるから、メモリへのいかなる書込みも、全 バイトへの書込みとなる。
したがって、第11図に図示されるビット・フィールド601が、第6図に図示 されるメモリ600の1部分に書き込まれると仮定すれば、ビット・フィールド を抽出するための手続を単純に反転する以上のことが要求される。手続における 主な差異は、連続的にバイト3−6及びバイト7の内容をレジスタAにロードす る一方で、レジスタBにロードされるビット・フィールドの選択された1部分を 挿入することである。レジスタ人はバイト3−6がロードされ、レジスタBは第 11図に図示されるビット・フィールド601がロードされる。
スタート・レジスタ403にロードされる値は0である。
エンド・レジスタ404にロードされる値は、ビット11とオフセットの3つの 最下位ビットの逆値の連結によす得られる。シフト・カウント・レジスタ405 ニロードされる値は、ビット11を、オフセットの3つの最下位ビットと、(幅 W−1)の合計値の逆値に連結することで得られる0これらの値は、ビットフィ ールド抽出のための第1シツク制御命令に対するものと同一でアル。スイッチ4 01及びバレル・シフタ402を介してレジスタBからレジスタ人へのシフトの 後、レジスタ人の内容は、バイト3−6としてメモリにロードされる。そこで、 レジスタAは、バイト7、及び若し必要ならば、バイト7に続く3バイトの内容 がロードされる。レジスタBは、なおビット・フィールド601ヲ包含する。ス タート・レジスタ403は、オフセットの3つの最下位ビットと、(幅W−1) の合計値の逆値が連結されたビットOOがロードされる。エンド・レジスタ40 4は、値7がロードされる0シフト1カウント・レジスタ405は、3つの最下 位ビットと、(幅W−1)の合計値の逆値が連結された値00がロードされる。
レジスタBからレジスタAへの11循環の後で、レジスタ人の内容は、メモリ6 00のバイト7に書き込まれ、5バイトを重複するビット・フィールドの挿入が 完了する。
有効な他の機能は、プロセッサDP 12使用の条件コードの発生である。条件 コードは、DPI2へ種々のオペレーションの状態を知らせる役をする。条件コ ードの部分は、レジスタ403.404.及びレジスタAの内容ニより設定され る。スイッチ401は、条件コード設定のための情報を供給する3出力、 AI IZERO8、All0NES。
及びENDを具えている。条件コード設定のこの様相は、メモリからビット・フ ィールドの抽出以外の、他のビット・フィールド・オペレーションにも使用可能 である。ビット・フィールドに関するレジスタ403.404゜及びレジスタA にロードすることは、単に条件コードを介して十分な情報を発生するであろう。
例えば、これは、ビット・フィールドのテスト用として十分である。
シック回路400は、他の用途にも都合よく充当される。オフセットには、バイ ト中のどのビットが、ビット・フィールドの第1ピツ)を包含するのか指示をす る3つのビットがある。これは、O83からなる3つのビットである。然し、こ の3つのビットは、メモリのアドレス指定には有益でない。ビット・オフセット は大きいことがあシ、メモリはバイト・アドレス指定可能であるから、ビット・ フィールドがメモリのオペランドである時には、このビット・オフセットをバイ トオフセットに変換可能なことが必要である。バイト・オフセットは、そこで、 オペランドのバイト・アドレスを形成するため、ベース・アドレスに加えられる 。
したがって、083fc形成する3ビツトは除去されなければならない。これは 、ビット・アドレスをレジスタAにロードし、スタート・レジスタ403を3に セットし、エンド・レジスタを31にセットし、シフト・カウント・レジスタ4 05を3にセットすることにより達成される。レジスタAの内容を、スイッチ4 01及びバレル・シフタ402を介してレジスタBに転送するのは、レジスタB にバイト・オフセットをロードする効果がある。そこでバイト・オフセットは、 ビット・フィールドのバイト・アドレスを形成するため、ペース・アドレスに加 えられる。ビット・フィールドを包含する第゛1バイトは、そこでアドレスされ 、レジスタAにロードされ、ビット・フィールド601に対して説明されたよう にビット・フィールドによる抽出オペレーションを開始する。これは、また、他 の状態でも行なわれる。アドレスがビツート・アドレスであり、バイト・アドレ スが望ましい時にはいつでも、これは使用可能である。
上方より下方に構成された第12A図及び第12B図に図示されるのは、ビット ・フィールド抽出命令の好ましい実行を説明するマイクロ制御流れ図である。上 方から下方に構成され九第13 A図及び第13 B図に図示されるのは、ビッ ト・フィールド・クリア命令の好ましい実行を説明するマイクロ制御流れ図であ る。ビット・フィールド・クリア命令は、ビット・フィールド空間に全部Oを書 き込む。ビット・フィールド・セット命令は、ビット°フィールド空間に全部0 の代シに全部1が書き込まれるのを除けば、ビット・フィールド・クリア命令と 同一である。他の命令は、ビット・フィールドの内容を補数とするビット・フィ ールド補数である。これは挿入に類似している。クリア、セット。
挿入、及び補数ビット・フィールド命令は、全部非常ている。
13A 国際調を報告

Claims (7)

    【特許請求の範囲】
  1. 1.所定の寸法を有するオペランドによりオペレイシヨンを実行し、前記所定寸 法までのピツト・フイールドの選択的オペレイシヨンを含むのに適合したデータ ・プロセツサにおいて、 前記ピツト・フイールドが、前記オペランドの対の部分よりなることを検出する 第1手段;及び前記選択されたオペレーシヨンの支持のもとで前記オペランド対 の内部で、前記ピツト・フイールドをアクセスする第2手段; を具えることを特徴とするデータプロセツサ。
  2. 2.データ・プロセツサにより実行されるオペレイシヨンを支持するためオペラ ンドを伝え、所定の最大数のバイトが置かれる所定の幅を有するバスを具え、ア クセスが、バス上に置かれ得るバイトの最大数に制限されるバイト境界のメモリ をアクセスするデータプロセツサにおいて、 バス上に置かれ得る所定数のバイトより多いバイトを重複し、バス寸法より大き くない幅を有するメモリ内のピツト・フイールドを検出する第1手段;前記バス に前記ピツト・フイールドをオペランドとして与える第2手段; を具えるデータプロセツサ。
  3. 3.前記第2手段は、前記バス上に前記ピツト・フイールドを与え、 ピツト・フイールドの第1部分を含むメモリの第1部分をアクセスし、 ピツト・フイールドの第1部分を所定量だけ循環し、循環された第1部分を前記 バスに接続されたレジスタにロードし、 ピツト・フイールドの残りの部分を含むメモリの第2部分をアクセスし、 ピツト・フイールドの残りの部分を選択した量だけ循環し、 ピツト・フイールドの前記循環された残りの部分をレジスタに挿入し、それによ りピツト.フイールドがバスに結合されることが可能となることを特徴とする前 記請求の範囲第2項のデータ・プロセツサ。
  4. 4.データ・プロセツサにより実行されるオペレイシヨンを支持するためオペラ ンドを伝え、所定の最大数のバイトが置かれ得る所定の幅のバスを有し、アクセ スが、バス上に置かれ得るバイトの最大数に制限されるバイト境界上のメモリを アクセスするデータプロセツサにおいて、 前記バス上に置くのが可能な所定数のバイトより多いバイトを重複し、バス寸法 より大きくない幅を有するピツト・フイールド空間を検出する第1手段;前記ピ ツト・フイールド空間にオペランドを挿入する第2手段;を含むデータ・プロセ ツサ。
  5. 5.第2手段は、オペランドをピツト・フイールド空間に挿入し、 レジスタ内のピツト・フイールド空間の第1部分を含むメモリの第1部分をロー ドし、 オペランドを第1選択量だけ循環し、 第1選択量だけ循環されたオペランドの選択部をレジスタに挿入し、 第1選択量だけ循環されたオペランドの選択された部分の挿入の後に、レジスタ 内容をメモリ第1部分へロードし、 ピツト・フイールド空間の残りの部分を含むメモリの第2部分をレジスタにロー ドし、 オペランドを第2選択量だけ循環し、第2選択量だけ循環されたオペランドの選 択された部分をレジスタに挿入し、 第2選択量だけ循環されたオペランドの選択部分の前記挿入の後に、レジスタ内 容をメモリの第2部分にロードし、 それにより前記オペランドがピツト・フイールド空間にロードされる前記請求の 範囲第4項のデータ・プロセツサ。
  6. 6.データ・プロセツサにより実行されるオペレイシヨンを支持するため、オペ ランドを伝える所定幅のバスを有するデータ・プロセツサにおいて、ピツト・フ イールド空間の第1部分を含むメモリの第1部分をレジスタにロードし、 オペランドを第1選択量だけ循環し、 第1選択量だけ循環されたオペランドの選択部分をレジスタに挿入し、 第1選択量だけ循環されたオペランドの選択部分の前記挿入の後で、レジスタの 内容をメモリの第1部にロードし、 ピツトフイールド空間の残りの部分を含むメモリの第2部分をレジスタにロード し、 オペランドを第2選択量だけ循環し、 第2選択量だけ循環されたオペランドの選択部分をレジスタに挿入し、 第2選択量だけ循環されたオペランドの選択部分の前記挿入の後で、レジスタの 内容をメモリの第2部分にロードし、 それにより、前記オペランドがピツト・フイールド空間にロードされる、オペラ ンドをメモリのピツト・フイールド空間に挿入する方法。
  7. 7.データ・プロセツサにより実行されるオペレイシヨンを支持するためオペラ ンドを伝える所定幅のバスを有するデータ・プロセツサにおいて、ピツト・フイ ールドの第1部分を含むメモリ第1部をアクセスし、 ピツト・フイールドの第1部分を選択量だけ循環し、前記バスに接続されたレジ スタに前記循環された第1部分をロードし、 ピツト・フイールドの残りの部分を含むメモリの第2部分をアクセスし、 ピツト・フイールドの残りの部分を選択量だけ循環し、 ピツト.フイールドの前記循環された残りの部分をレジスタに挿入し、それによ り、ピツト・フイールドがバスに接続されることを特徴とするデータ・プロセツ サ・アクセスをピツト・フイールドに与える方法。
JP60501965A 1984-06-27 1985-04-22 ビツト・フイ−ルド命令の方法と装置 Pending JPS61502566A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62506384A 1984-06-27 1984-06-27
US625063 1984-06-27

Publications (1)

Publication Number Publication Date
JPS61502566A true JPS61502566A (ja) 1986-11-06

Family

ID=24504422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60501965A Pending JPS61502566A (ja) 1984-06-27 1985-04-22 ビツト・フイ−ルド命令の方法と装置

Country Status (4)

Country Link
EP (1) EP0187762A4 (ja)
JP (1) JPS61502566A (ja)
KR (1) KR860700163A (ja)
WO (1) WO1986000433A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2045705A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites In-register data manipulation in reduced instruction set processor

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3916388A (en) * 1974-05-30 1975-10-28 Ibm Shifting apparatus for automatic data alignment
US4103329A (en) * 1976-12-28 1978-07-25 International Business Machines Corporation Data processing system with improved bit field handling
US4135242A (en) * 1977-11-07 1979-01-16 Ncr Corporation Method and processor having bit-addressable scratch pad memory
US4189772A (en) * 1978-03-16 1980-02-19 International Business Machines Corporation Operand alignment controls for VFL instructions
US4219874A (en) * 1978-03-17 1980-08-26 Gusev Valery Data processing device for variable length multibyte data fields
US4520439A (en) * 1981-01-05 1985-05-28 Sperry Corporation Variable field partial write data merge
DE3138897A1 (de) * 1981-09-30 1983-04-14 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung zur verarbeitung von speicheroperanden fuer dezimale und logische befehle
US4500958A (en) * 1982-04-21 1985-02-19 Digital Equipment Corporation Memory controller with data rotation arrangement

Also Published As

Publication number Publication date
WO1986000433A1 (en) 1986-01-16
EP0187762A4 (en) 1987-10-19
EP0187762A1 (en) 1986-07-23
KR860700163A (ko) 1986-03-31

Similar Documents

Publication Publication Date Title
JP2796590B2 (ja) メモリ装置及びそれを使用したデータ処理装置
JP4216182B2 (ja) 複数の命令セットを用いるデータ処理
US4710866A (en) Method and apparatus for validating prefetched instruction
RU2137184C1 (ru) Отображение с помощью мультинаборов команд
US4591972A (en) Data processing system with unique microcode control
US5119483A (en) Application of state silos for recovery from memory management exceptions
EP0138419B1 (en) Central processing unit for a digital computer
KR100309615B1 (ko) 고속프로그램가능로직컨트롤러(plc)
WO1986000434A1 (en) Method and apparatus for a compare and swap instruction
US4584666A (en) Method and apparatus for signed and unsigned bounds check
US4740889A (en) Cache disable for a data processor
JPS59502158A (ja) 仮想メモリデータプロセッサ及びそのアクセス誤り回復方法
JP3707581B2 (ja) 自己整合スタック・ポインタを有するデータ処理システムおよびその方法
JPS61114353A (ja) 要求時ペ−ジングメモリを有するデジタルデ−タ処理システムのアクセス照合構成体
US4597041A (en) Method and apparatus for enhancing the operation of a data processing system
US5179671A (en) Apparatus for generating first and second selection signals for aligning words of an operand and bytes within these words respectively
JP2004538556A (ja) 複数命令セットシステムにおける非処理操作処理
US4812971A (en) Central processing unit for a digital computer
US4893235A (en) Central processing unit for a digital computer
EP0509558A2 (en) Information processing system with support means responsive to an overall system control
JPS61502566A (ja) ビツト・フイ−ルド命令の方法と装置
JPS60144847A (ja) キヤツシユメモリ制御方式
CA1233271A (en) Cache disable for a data processor
EP0110613B1 (en) Digital data processing system
CA1223079A (en) Data processor having selective breakpoint capability with minimal overhead