JP2615746B2 - ビット操作回路 - Google Patents

ビット操作回路

Info

Publication number
JP2615746B2
JP2615746B2 JP1804788A JP1804788A JP2615746B2 JP 2615746 B2 JP2615746 B2 JP 2615746B2 JP 1804788 A JP1804788 A JP 1804788A JP 1804788 A JP1804788 A JP 1804788A JP 2615746 B2 JP2615746 B2 JP 2615746B2
Authority
JP
Japan
Prior art keywords
bit
data
circuit
test
shift
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 - Fee Related
Application number
JP1804788A
Other languages
English (en)
Other versions
JPH01193925A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP1804788A priority Critical patent/JP2615746B2/ja
Publication of JPH01193925A publication Critical patent/JPH01193925A/ja
Application granted granted Critical
Publication of JP2615746B2 publication Critical patent/JP2615746B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 産業上の利用分野 本発明はディジタル計算機の中央処理装置等に用いら
れるビット操作回路に関するものである。
従来の技術 従来のビット操作回路は、論理演算によりデータ中の
任意のビットの操作(テストと更新)を行なうものであ
る。
第7図はこの従来のビット操作回路のブロック図を示
すものであり、1はビット操作を行なうデータやそのビ
ット番号及びビット操作を行なった結果等を保持する複
数のレジスタから成るレジストファイル、101はレジス
タファイル1の中にあってビット操作を行なうデータを
格納するデータレジスタ、102は同じくレジスタファイ
ル1の中にあってビット操作を行なうビット番号を格納
するビット番号レジスタ、103は同じくレジスタファイ
ル1の中にあってビット操作結果を保持する必要のある
場合にそのデータを保持する結果レジスタ、2bはビット
番号レジスタ102に格納されている2進数で表現された
ビット番号をデコードし、該当するビット位置に1、他
のビットに0を生成するビット位置デコーダ、3はデー
タレジスタ101に格納されているデータをA入力、ビッ
ト位置デコーダ2dの出力をB入力とし、AB2つの入力に
対して演算制御線により指示される論理積、論理和、排
他的論理和等の論理演算を行なう論理演算回路、6bは論
理演算回路3で実行する論理演算を指示する制御回路、
7はビットのテスト結果(当該ビットが0か1か)を示
すビットテストフラグ、8は入力の全ビットが0のとき
0、それ以外のとき1を出力する零検出回路、9は論理
演算回路3で実行する論理演算を順次制御するためにタ
イミング信号を制御回路6bに与えるタイミング回路であ
る。
第8図はビット位置デコーダ2bの入出力関係図であ
り、入力32ビットの下位5ビットが示す0から31のビッ
ト番号と、そのビット番号が意味するビット位置にのみ
1が出力される論理を図示している。
第9図は制御回路6bの制御内容図であり、「テスト」
(当該ビットのテストを行なう)、「テスト・アンド・
セット」(当該ビットのテストを行ない、その後1にす
る)、「テスト・アンド・リセット)「当該ビットのテ
ストを行ない、その後0にする)、「テスト・アンド・
チェンジ」(当該ビットのテストを行ない、その後反転
する)の各ビット操作時における論理演算回路3でのA
入力B入力に対する演算内容を示している。ここで、an
d.は論理積、or.は論理和、xor.は排他的論理和、は
B入力の反転(1の補数)を示す。
以上のように構成された従来のビット操作回路につい
て、以下にその動作を説明する。
ビット操作として「テスト・アンド・セット」の場合
を例示する。データレジスタ101、ビット番号レジスタ1
02、ビット位置デコーダ2bにより論理演算回路3のA入
力にはビット操作されるデータが、B入力には操作を行
なうビット位置のみ1になっているデータが加えられ
る。第1サイクルではビットのテストを行なう。そのた
めに制御回路6bは論理演算回路3に対して論理積を実行
する指示を発する。演算の結果、データの当該ビットが
0のときは論理演算回路3の出力の全ビットが0にな
る。論理演算回路3の出力を零検出回路8に入力し、入
力の全ビット0を検出した結果をビットテストフラグ7
に格納することにより、データの当該ビットの0または
1がそのままビットテストフラグ7に反映される。第2
サイクルではビットのセットを行なう。タイミング回路
9によりタイミング信号が制御回路6bに加えられると、
制御回路6bは論理演算回路3に対して論理和を実行する
指示を発する。演算の結果、データの操作を受けるビッ
トは初期の内容にかかわらず1に更新される。論理演算
回路3の出力を結果レジスタ103に格納することによ
り、ビット操作を実行した結果が結果レジスタ103に保
持される。
「テスト・アンド・セット」以外の操作についても同
様で、ビットのテスト結果はビットテストフラグ7に、
ビット操作を行なったデータは結果レジスタ103にそれ
ぞれ格納される。ただし、「テスト」操作は第2サイク
ルが不要で、結果レジスタ103への格納への格納は行な
わない。
発明が解決しようとする課題 しかしながら上記のような構成では、「テスト」を除
く全てのビット操作でテストと更新のために論理演算回
路3を2回動作させる必要があり、2つの処理サイクル
を要するという問題点と、データレジスタ101に格納さ
れたビット操作を行なうデータのサイズがワード(32ビ
ット)ではなくバイト(8ビット)やハーフワード(16
ビット)のとき、データの最上位ビット(以下、MSBと
称す)にビット番号0が、最下位ビット(以下、LSBと
称す)に最も大きいビット番号が付されている場合、第
6図のデータサイズとビット番号の関係図に示すよう
に、ビット番号が示すデータ上でのビット位置がデータ
のサイズによって異なるためビット番号レジスタ102の
内容が示すビットが操作できないという問題点を有して
いた。
本発明はかかる点に鑑み、すべてのビット操作が1つ
の処理サイクルで実行でき、かつ、ビット操作を行なう
データがバイト、ハーフワードのいかなるサイズであっ
て2進数で表わすビット番号が示すビットを操作するこ
とができるビット操作回路を提供することを目的とす
る。
課題を解決するための手段 本発明は、ビット操作を行なうデータと操作を行なう
ビットのビット番号と前記データのサイズ情報とを入力
するビットのテスト手段と、前記データと前記ビット番
号と前記サイズ情報とを入力するビットの更新手段とを
備え、ビットのテストと更新とを同時に行なうビット操
作回路であって、 前記ビットのテスト手段が、前記ビット番号と前記サ
イズ情報とからシフト数を決定するシフト数制御回路
と、前記データを前記シフト数だけシフトしてテストを
行なうビットを取り出すシフト回路とからなり、 前記ビットの更新手段が、前記ビット番号と前記サイ
ズ情報とから操作を行なうビット位置のみ所定の値とな
るビット列データを出力するビット位置デコーダと、前
記データと前記ビット列データとを論理演算してビット
の更新を行なう論理演算回路とからなり、 前記ビットのテスト手段と前記ビットの更新手段とに
対して、前記データと前記ビット番号と前記サイズ情報
とを同時に入力することを特徴とするビット操作回路で
ある。
作用 本発明は前記した構成により、ビットのテスト手段と
ビットの更新手段とを並行に動作させ、テストと更新と
いうビットの操作を1つの処理サイクルで実行する。ま
た、ビットのテスト手段とビットの更新手段にセット操
作を行なうデータのサイズ情報を入力し、ビット番号が
意味するビット位置をデータサイズに対応させ所定のビ
ットを操作する。
実 施 例 第1図は本発明の一実施例におけるビット操作回路の
ブロック図を示すものである。第1図において、第7図
と同一物については同一番号を使用している。1はビッ
ト操作を行なうデータやそのビット番号、ビット操作を
行なった結果等を保持する複数のレジスタから成るレジ
スタファイル、101はレジスタファイル1の中にあって
ビット操作を行なうデータを格納するデータレジスタ、
102は同じくレジスタファイル1の中にあってビット操
作を行なうビット番号を格納するビット番号レジスタ、
103は同じくレジスタファイル1の中にあってビット操
作結果を保持する必要のある場合にそのデータを保持す
る結果レジスタで、データレジスタ101もしくはビット
番号レジスタ102がこれを重複しても構わない。2aはビ
ット番号レジスタ102に格納されている2進数で表現さ
れたビット番号をデコードし、サイズ制御線により指定
されるデータレジスタ101に格納されているビット操作
を行なうデータのサイズに応じて該当するビット位置に
1、他のビットに0を生成するビット位置デコーダ、3
はデータレジスタ101に格納されているデータをA入
力、ビット位置デコーダ2aの出力をB入力とし、AB2つ
の入力に対して演算制御線により指示される論理積、論
理和、排他的論理和等の論理演算を行なう論理演算回
路、4はデータレジスタ101に格納されているデータを
シフト数制御線により与えられるシフト数だけシフトす
るシフト回路、5はビット番号レジスタ102に格納され
ている2進数で表現されたビット番号とサイズ制御線に
より指定されるデータレジスタ101に格納されているビ
ット操作を行なうデータのサイズ情報とからシフト回路
4でのシフト数を決定するシフト数制御回路、6aは論理
演算回路3で実行する論理演算を指示し、ビット位置デ
ータ2aとシフト数制御回路5にビット操作を行なうデー
タのサイズ情報を与える制御回路、7はシフト回路4の
キャリ出力を保持しビットのテスト結果を示すビットテ
ストフラグである。
第2図はビット位置デコーダ2aの入出力関係図であ
る。データのサイズがバイトの場合、第5図のデータサ
イズとビット番号の関係図に示すように32ビットの下位
8ビットの位置にビット番号0から7がMSBから順に割
付けられている。従ってビット位置デコーダ2aは入力32
ビットの下位3ビットが示す0から7のビット番号をデ
コードして下位8ビットにある該当するビットのみが1
となる32ビットを出力する。データサイズがハーフワー
ドの場合も同様で、入力32ビットの下位4ビットが示す
0から15のビット番号をデコードして下位16ビットにあ
る当該するビットのみが1となる32ビットを出力する。
データサイズがワードの場合は、入力32ビットの下位5
ビットが示す0から31のビット番号をデコードして当該
するビットのみが1となる32ビットを出力する。
第3図はシフト回路4の入出力関係図である。32ビッ
トの入力I00,I01,……,I30,I31は6ビットで与えられる
シフト数だけ左(MSB方向)または右(LSB方向)にシフ
トされる32ビットの出力となる。キャリには直前にあふ
れたビットが出力される。シフト方向はシフト数が正の
とき左、負のとき右となる。なお、本実施例においてシ
フト結果の32ビット出力は用いられない。
第4図はシフト数制御回路5の入出力関係図である。
6ビットの出力の下位3ビットは入力32ビットの下位3
ビットに等しく、出力のLSBから4ビット目はデータの
サイズがバイトのときは1、それ以外では入力のLSBか
ら4ビット目に等しく内出力のLSBから5ビット目はデ
ータのサイズがバイトもしくはハーフワードのときは
1、ワードのときは入力のLSBから5ビット目に等し
く、吐力のMSBは常に1である。
以上のように構成されたこの実施例のビット操作回路
について、以下その動作を説明する。
ビットの操作のうちテストをシフト回路4で、更新を
論理演算回路3で同時に処理する。シフト回路4にはデ
ータレジスタ101に格納されているビット操作を行なう
データが入力される。シフト数制御回路5にはビット番
号レジスタ102に格納されているビット操作を行なうビ
ット番号が入力され、制御回路6aからのデータのサイズ
情報に応じてシフト数をシフト回路4に出力する。ここ
で、ビット番号とシフト数の関係は第4図より以下のよ
うに表わせる。
(i) データがバイトのとき シフト数=ビット番号−8 −8≦シフト数≦1 (ii) データがハーフワードのとき シフト数=ビット番号−16 −16≦シフト数≦−1 (iii) データがワードのとき シフト数=ビット番号−32 −32≦シフト数≦−1 従って、シフト回路4では、データがいずれのサイズ
でも操作されるビットがキャリとして出力されるまで右
にシフトされることになる。シフト回路4のキャリ出力
をビットテストフラグ7に格納することにより、データ
の当該ビットの0または1がそのままビットテストフラ
グ7に反映される。一方、同時に、論理演算回路3のA
入力にはデータレジスタ101に格納されているビット操
作を行なうデータが、B入力にはビット位置デコーダ2a
の出力が加えられる。B入力は第2図に示すようにデー
タがいずれのサイズでも操作するビットの位置が1とな
るビット列である。制御回路6aは論理演算回路3に対し
て、ビットの操作内容が「テスト・アンド・セット」な
らばA入力とB入力の論理和を、「テスト・アンド・リ
セット」ならばA入力とB入扉の反転の論理積を、「テ
スト・アンド・チェンジ」ならばA入力とB入力の排他
的論理和を実行する指示を発する。演算の結果は操作を
受けるビットが所定の操作をされたものであり、論理演
算回路3の出力を結果レジスタ103に格納することによ
り、ビット操作を実行した結果が結果レジスタ103に保
持される。操作が「テスト」のときは論理演算回路3の
動作は不要で、結果レジスタ103への格納は行なわれな
い。
以上のように本実例によれば、シフト回路とシフト数
制御回路を設け論理演算回路で行なうビットの更新と並
行してビットのテストを行なうことにより、すべてのビ
ット操作が1つの処理サイクルで実行できる。また、ビ
ット番号と論理演算するビット列の1の位置との関係
と、シフト回路でのシフト数をデータサイズに対応して
変化させることにより、ビット操作を行なうデータがバ
イト、ハーフワード,ワードのいかなるサイズであって
も2進数で表わすビット番号が示すビット操作すること
ができる。
なお、第5図は第4図に示すシフト数制御回路の論理
回路図である。ここでサイズは2ビットで与えられるも
のとし、00のときバイト、01のときハーフワード、10の
ときワードを意味するものとする。同図に示すようにシ
フト数制御回路は極めて少ないゲートで実現できる。
発明の効果 以上説明したように、本発明によれば、すべてのビッ
ト操作を従来の半分の処理時間で実行することができ、
かつ、種々のサイズのデータについてサイズに対応する
ビット番号でビットを操作することができ、その実用的
効果は大きい。また、汎用プロセッサでは、ビットの更
新手段としての算術論理演算ユニット(ALU)やビット
のテスト手段としてのバレルシフタを演算処理やシフト
処理のために内蔵している場合が多く、ハードウェアの
小さな追加と変更で上記の効果を得ることができるとい
う効果も有する。
【図面の簡単な説明】
第1図は本発明の実施例におけるビット操作回路のブロ
ック図、第2図は同実施例のビット位置デコーダの入出
力関係図、第3図は同実施例のシフト回路の入出力関係
図、第4図は同実施例のシフト数制御回路の入出力関係
図、第5図は同実施例のシフト数制御回路の論理回路
図、第6図はデータサイズとビット番号の関係図、第7
図は従来のビット操作回路のブロック図、第8図は同従
来例のビット位置デコーダの入出力関係図、第9図は同
従来例の制御回路の制御内容図である。 1……レジスタファイル、101……データレジスタ、102
……ビット番号レジスタ、103……結果レジスタ、2a,2b
……ビット位置デコーダ、3……論理演算回路、4……
シフト回路、5……シフト数制御回路、6a,b……制御回
路、7……ビットテストフラグ、8……零検出回路、9
……タイミング回路。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】ビット操作を行なうデータと操作を行なう
    ビットのビット番号と前記データのサイズ情報とを入力
    するビットのテスト手段と、前記データと前記ビット番
    号と前記サイズ情報とを入力するビットの更新手段とを
    備え、ビットのテストと更新とを同時に行なうビット操
    作回路であって、 前記ビットのテスト手段が、前記ビット番号と前記サイ
    ズ情報とからシフト数を決定するシフト数制御回路と、
    前記データを前記シフト数だけシフトしてテストを行な
    うビットを取り出すシフト回路とからなり、 前記ビットの更新手段が、前記ビット番号と前記サイズ
    情報とから操作を行なうビット位置のみ所定の値となる
    ビット列データを出力するビット位置デコーダと、前記
    データと前記ビット列データとを論理演算してビットの
    更新を行なう論理演算回路とからなり、 前記ビットのテスト手段と前記ビットの更新手段とに対
    して、前記データと前記ビット番号と前記サイズ情報と
    を同時に入力することを特徴とするビット操作回路。
JP1804788A 1988-01-28 1988-01-28 ビット操作回路 Expired - Fee Related JP2615746B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1804788A JP2615746B2 (ja) 1988-01-28 1988-01-28 ビット操作回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1804788A JP2615746B2 (ja) 1988-01-28 1988-01-28 ビット操作回路

Publications (2)

Publication Number Publication Date
JPH01193925A JPH01193925A (ja) 1989-08-03
JP2615746B2 true JP2615746B2 (ja) 1997-06-04

Family

ID=11960779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1804788A Expired - Fee Related JP2615746B2 (ja) 1988-01-28 1988-01-28 ビット操作回路

Country Status (1)

Country Link
JP (1) JP2615746B2 (ja)

Also Published As

Publication number Publication date
JPH01193925A (ja) 1989-08-03

Similar Documents

Publication Publication Date Title
JP3589719B2 (ja) 算術演算の結果として生じる正および負のオーバーフローのハードウェアによる効率的な取り扱い方法
JP3418460B2 (ja) 倍精度除算回路および方法
JPS6351287B2 (ja)
JPH0769782B2 (ja) マイクロプログラム可能な32ビットカスケード可能ビットスライス
JPH0850545A (ja) 最小/最大検索命令を有するデジタル処理装置
US5349671A (en) Microprocessor system generating instruction fetch addresses at high speed
JPS6227412B2 (ja)
US6499046B1 (en) Saturation detection apparatus and method therefor
JPS63123125A (ja) 浮動小数点数の加算装置
US5317531A (en) Apparatus for reducing the size of an arithmetic and logic unit necessary to practice non-restore division
JP2615746B2 (ja) ビット操作回路
JPH1091395A (ja) プロセッサ
JPH0546363A (ja) 除算器
US6122651A (en) Method and apparatus for performing overshifted rotate through carry instructions by shifting in opposite directions
US6519620B1 (en) Saturation select apparatus and method therefor
US6035310A (en) Method and circuit for performing a shift arithmetic right operation
US4914581A (en) Method and apparatus for explicitly evaluating conditions in a data processor
KR100385233B1 (ko) 데이터 프로세싱 시스템의 익스포넌트 유닛
JP2664750B2 (ja) 演算装置及び演算処理方法
US5926407A (en) Combined add/shift structure
JP2591250B2 (ja) データ処理装置
JPH0644226B2 (ja) 演算処理装置
JPH04195629A (ja) 演算フラグ生成装置
JPS62249228A (ja) シフト装置
JPH0553759A (ja) 固定小数点演算ユニツト

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees