JPS6227412B2 - - Google Patents

Info

Publication number
JPS6227412B2
JPS6227412B2 JP57065200A JP6520082A JPS6227412B2 JP S6227412 B2 JPS6227412 B2 JP S6227412B2 JP 57065200 A JP57065200 A JP 57065200A JP 6520082 A JP6520082 A JP 6520082A JP S6227412 B2 JPS6227412 B2 JP S6227412B2
Authority
JP
Japan
Prior art keywords
operand
word length
register
preshifter
bits
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
Application number
JP57065200A
Other languages
English (en)
Other versions
JPS58182754A (ja
Inventor
Motonobu Nagafuji
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP57065200A priority Critical patent/JPS58182754A/ja
Priority to US06/484,846 priority patent/US4677582A/en
Priority to GB08310288A priority patent/GB2120426B/en
Priority to DE19833314035 priority patent/DE3314035A1/de
Publication of JPS58182754A publication Critical patent/JPS58182754A/ja
Publication of JPS6227412B2 publication Critical patent/JPS6227412B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • 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/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 発明の対象 本発明はマイクロプログラム制御と命令先行制
御を採用した情報処理装置内の演算処理装置に関
し、特に半語長オペランドの加減算命令を高速に
実行する演算処理装置に関するものである。
従来技術 第1図は、語長あるいは半語長のオペランドを
加減算する命令の一形式を示す。第1図において
OPは加算か減算かの演算種類、および第2オペ
ランドが語長か半語長であるかの両方を示すため
の命令コードを示し、R1は語長の第1オペラン
ドの存在するレジスタ番号を、ADD2は語ある
いは半語長の第2オペランドの存在するメモリ上
のアドレスを示す。
第2図は、オペランドの形式を示している。第
2図において、Sはオペランドの符号を示し、例
えばS=0ならばオペランドが正数、S=1なら
ば負数との約束をもつものとする。Bは符号を除
く数値を表わし、半語長オペランドの場合、Bは
15ビツト、語長オペランドの場合31ビツトを有す
るものとする。演算は語長の第1オペランドと半
語あるいは語長の第2オペランドを加算あるいは
減算して、第1図のR1で示される語長のレジス
タ内に格納される。
第3図は、正の符号をもつ語長オペランド(同
図a)と負の符号をもつ半語長オペランド(同図
b)の一例である。これらは周知の固定小数点数
であり、本例の正の語長オペランドは10進で「+
25」を表わし、負の半語長オペランドは「−2」
を表わしている。
さて、従来技術においては、半語長オペランド
の加減算命令の実行には最低でも2サイクルを要
していた。すなわち、最初のサイクルで、加数あ
るいは減数の符号を上位バイトに例えばシフタ等
を用いて拡張し、2サイクル目に演算器に入力し
て加減算を完了していた。以下、この従来技術に
ついて説明する。
第4図は従来の演算器周辺のブロツク図であ
り、第5図は該演算器等を使用して第3図に示す
オペランドの半語長加算命令を実行する手順を示
したものである。なお、以下の説明では、ワーク
レジスタ、シフタおよび演算器の処理長は語長と
するが、勿論、これは倍語長でもよい。
まず、第1図に示す半語長加算命令が周知の命
令先行制御装置により解読されて、第1および第
2オペランドのデータが読み出され、マイクロプ
ログラムによる実行に先立つて各々ワークレジス
タB40とワークレジスタA30の先頭にセツト
される。すなわち、第3図aの語長オペランドが
ワークレジスタ40に、第3図bの半語長オペラ
ンドがワークレジスタ30にセツトされる。これ
らのワークレジスタ30と40では最下位のビツ
ト位置が異つており、そのまゝでは演算器10に
入力できない。このため、マイクロプログラムの
第1実行サイクルでは、ワークレジスタ30の内
容をシフタ20に入れ、そこで代数的な右16ビツ
トシフトを行い、シフト結果を出力レジスタ2
1、信号線50を介してワークレジスタ30に再
転送する。第6図は転送前後のワークレジスタ3
0の内容で、aは最初に第2オペランドをセツト
した状態、bはそれを右へ16ビツトシフトした状
態を示す。シフタ20による右16ビツトシフトで
は算術的シフトすなわち符号を考慮したシフトを
行なうため、第6図bに示す如くワークレジスタ
30は、転送後には上位16ビツトに新たに負の符
号1が付加されている。
こうして、ワークレジスタ30と40の最下位
ビツト位置が一致したあと、マイクロプログラム
の第2実行サイクルでは、ワークレジスタ30と
40の内容が、各々プリシフタA13、プリシフ
タB14を介して演算器10に入力される。プリ
シフタ13,14は、こゝでは単純にデータを通
すだけのスルーの働きをしている。演算器10で
加算した結果は、第7図に示す如く、周知の固定
小数点数の加算規則により10進数で「23」を示す
数値となる。この加算器の出力を第2実行サイク
ルの最終ステージで、出力レジスタ11を介して
第1オペランドレジスタへ転送、格納することに
より、命令は完了する。
なお、半語長減算の場合は、第2実行サイクル
でプリシフタA13がコンプリメント(補数)と
して働き、演算器10の最下位ビツト位置に初期
キヤリー“1”を与える点が異なるのみで、第1
実行サイクルの動作は加算の場合と同じである。
以上が従来技術による半語長加減算命令の実行
処理で、実行に2サイクルを要すことが分かる。
一方、符号拡張の必要のない語長オペランドの加
減算命令の場合には、第2オペランドは、ワーク
レジスタにセツトされた状態ですでに先頭に符号
を有し、第1オペランドと最下位ビツト位置を同
じくする語長の形式をもつており、そのまゝ演算
器に入力できるため、シフタで右シフトする手順
が不要で、1サイクルで実行できる。このため、
ソフトウエア設計者がメモリ節約の為に半語長の
オペランドを用意しても、その加減算実行には語
長オペランドに比し倍の時間を要するという問題
があつた。
従来、半語長オペランドの加減算命令の実行を
1サイクルに短縮する方法として、先行制御装置
が第2オペランドをワークレジスタにセツトする
場合に、符号ビツトに該当するビツトを、あらか
じめ16ビツト分拡張しておき、半語長のオペラン
ド自身をワークレジスタの後半にセツトし、前半
には上記拡張された符号16ビツトをセツトする方
法が提案されている。しかし、この方法では、半
語長加減算命令時のみのために、符号拡張用のゲ
ート回路を余分に必要とし、このため、先行制御
装置側ではメモリから読出してきた第2オペラン
ドを一刻も早く送りたいときに、ワークレジスタ
への転送に遅れを生じ、その結果、全体の処理速
度が遅れる欠点がある。
発明の目的 本発明の目的は、全体の処理速度に遅れを生じ
ることなく、半語長オペランドの加減算を語長オ
ペランドの加減算て全く同じ速度で実行すること
のできる演算処理装置を提供することにある。
発明の総括的説明 上記したように、半語長オペランドを語長ある
いは倍語長の演算器の入力させる場合、オペラン
ドの符号を拡張して入力させる必要があり、この
ため、従来はシフタによりオペランドの符号を拡
張した後、演算器に入力して加減算を実行してい
た。これに対して、本発明は演算器のプリシフタ
に着目し、前記シフタ処理に該当する部分を演算
器のプリシフタを用いて処理し、該プリシフタを
オペランドが語長、半語長いずれでも扱えように
するものである。これにはハードウエアの増加が
伴うが、大幅なLSIの採用という最近の傾向を考
えれば、十分吸収できる。
発明の実施例 第8図に本発明による演算器周辺の一実施例の
ブロツク図を示す。第4図と比べ、プリシフタA
100が改良され、該プリシフタ100に第2オ
ペランドデータの符号部の転送線60が追加され
ているのが特徴である。
第9図はプリシフタA100の構成を、第iビ
ツトAiについて詳細に示した図である。第4図
のプリシフタA13などのように、通常のプリシ
フタの機能は、スルー(TRUE;そのまま)、コ
ンプリメント(COMP;補数、反転)、シフトレ
ストあるいはライト1〜3(左あるいは右に1な
いし3ビツトシフト)程度である。第9図に示す
AND回路902,903,904などが、これ
に対応する。たゞし、シフトレフト1以外のシフ
トは、図面の簡単化のため示されていない。
本発明の改良されたプリシフタA100は、0
〜15ビツト(0≦i≦15)について半語長加減算
命令に対して動作するAND回路901を有する
ことを特徴としている。すなわち、第9図の
AND回路901は、第1図の命令のOPのデコー
ド信号あるいはそれに該当する信号により半語長
加算演算モードが指定され、第2オペランドが負
符号であれば、OR回路910より“1”を演算
器入力AiINとして出力する。逆に半語長減算命
令実行中には、第2オペランドが正符号のとき
“1”を出力する。これらの加減算時には、90
2〜904のAND回路は閉じたままで付勢され
ない。このAND回路901を有するのは、ワー
クレジスタA30の前半16ビツトに対応するプリ
シフタのみで、後半16ビツトは有しない。すなわ
ち、後半16ビツトは第4図に示す従来のプリシフ
タA13と全く同様の構成である。
第10図は第3図のデータ例の場合のプリシフ
タA100の動作を示し、第11図はその手順を
示したものである。
先行制御装置によりワークレジスタA30の前
半(ビツト0−15)には“0”が、後半(同16−
31)には第2オペランドデータ111…10がセ
ツトされるが、これらが改良されたプリシフタA
100に入力される。プリシフタ100の前半に
対しては、制御信号として半語長加算演算モード
のみが与えられ、他はすべて抑止される。この結
果、第9図の上側のAND回路901が、第2オ
ペランドが負符号であるため付勢され、OR回路
910の出力、すなわち演算器への入力は“1”
となる。プリシフタ100の後半に対しては、制
御信号として加算であるとTRUE(スルー)が与
えられ、セツトされた第2オペランドデータがそ
のまゝ演算器入力となる。この改良されたプリシ
フタ100の出力により、第7図に示したのと同
様のパターンが発生されたことになる。以下は従
来技術と同じ動作により、加算が実行され結果が
格納される。
半語長減算の場合は、プリシフタ100の前半
16ビツトに対しては、符号が正のときに第9図の
下側のAND回路によりプリシフタ出力は“1”
となり、後半16ビツトにはCOMP(補数)制御信
号が与えられ、第2オペランドの補数が演算器1
0の入力に現れる。このときは、さらに演算器1
0の最下位ビツト位置に初期キヤリーが入力され
る。この動作により、正常に減算が実行される。
発明の効果 以上の説明から明らかな如く、本発明では、第
1実行サクルのみを使用して、第2オペランドの
符号拡張のためのプリシフトを従来のプリシフト
の速度と同じ速度で行ない、プリシフタ本来の性
能を落すことなく半語長加減算命令を高速に終了
させることができる。また、プリシフタに追加す
るハードウエアは、例えば16ビツト分について
ANDゲートが32個で済み、周辺の制御回路も含
めて極めて僅かな増追で済むため、コスト上から
も実現は容易なものである。
【図面の簡単な説明】
第1図は語長あるいは半語長オペランドの加減
算命令の一形式を示す図、第2図は語長および半
語長オペランドの一形式を示す図、第3図は語長
および半語長オペランドの具体例を示す図、第4
図は従来の演算処理装置のブロツク図、第5図は
従来の半語長加算命令の実行手順を示す図、第6
図および第7図は従来の具体的数値例を示す図、
第8図は本発明の演算処理装置の一実施例を示す
ブロツク図、第9図は本発明により改良されたプ
リシフタの具体的構成図、第10図は本発明にお
けるプリシフタの動作を示す図、第11図は本発
明による半語長加算命令の実行手順を示す図であ
る。 10……演算器、11……出力レジスタ、14
……プリシフタ、100……改良されたプリシフ
タ、30,40……ワークレジスタ。

Claims (1)

  1. 【特許請求の範囲】 1 符号を含む第1オペランドを保持する第1レ
    ジスタと、符号を含む前記第1オペランドと同一
    語長あるいはそれより短い語長の第2オペランド
    を保持する第2レジスタと、前記第1レジスタの
    第1オペランドを入力し、そのまゝあるいはコン
    プリメント或いはシフトして出力する第1プリシ
    フタと、前記第2レジスタの第2オペランドを入
    力し、そのまゝ或いはコンプリメント或いはシフ
    トして出力する第2プリシフタと、前記第1プリ
    シフタと前記第2プリシフタから出力される両オ
    ペランドを入力して加減算を行う演算器を具備し
    てなる演算処理装置において、 前記第1プリシフタは、前記第1レジスタの全
    ビツト対応に、該当ビツトをそのまゝ或いはコン
    プリメント或いはシフトして出力するゲーム群か
    らなり、 前記第2プリシフタは、前記第2レジスタの全
    ビツト対応に、該当ビツトをそのまゝ或いはコン
    プリメント或いはシフトとして出力する第1ゲー
    ト群と、前記第2レジスタの上位ビツト対応に、
    演算モードと第2オペラントの符号に従つて該当
    ビツトを“1”あるいは“0”として出力する第
    2ゲート群とからなり、 前記第2プリシフタについては、第1オペラン
    トと同一語長の第2オペランドが前記第2レジス
    タに保持された場合は、前記第1ゲート群のみを
    付勢し、第1オペランドより短い語長の第2オペ
    ランドが前記第2レジスタに保持された場合は、
    前記第1ゲート群の前記第2オペランドに対応す
    る下位ビツトのものとそれ以外の上位ビツトにつ
    いては前記第2ゲート群を代りに付勢することを
    特徴とする演算処理装置。
JP57065200A 1982-04-19 1982-04-19 演算処理装置 Granted JPS58182754A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP57065200A JPS58182754A (ja) 1982-04-19 1982-04-19 演算処理装置
US06/484,846 US4677582A (en) 1982-04-19 1983-04-14 Operation processing apparatus
GB08310288A GB2120426B (en) 1982-04-19 1983-04-15 Operation processing apparatus
DE19833314035 DE3314035A1 (de) 1982-04-19 1983-04-18 Operationsverarbeitungseinrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57065200A JPS58182754A (ja) 1982-04-19 1982-04-19 演算処理装置

Publications (2)

Publication Number Publication Date
JPS58182754A JPS58182754A (ja) 1983-10-25
JPS6227412B2 true JPS6227412B2 (ja) 1987-06-15

Family

ID=13280029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57065200A Granted JPS58182754A (ja) 1982-04-19 1982-04-19 演算処理装置

Country Status (4)

Country Link
US (1) US4677582A (ja)
JP (1) JPS58182754A (ja)
DE (1) DE3314035A1 (ja)
GB (1) GB2120426B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62269228A (ja) * 1986-05-16 1987-11-21 Matsushita Electric Ind Co Ltd 算術論理演算ユニツト
US4809166A (en) * 1986-08-27 1989-02-28 Advanced Micro Devices, Inc. Data assembly apparatus and method
US5307474A (en) * 1987-09-30 1994-04-26 Mitsubishi Denki Kabushiki Kaisha Apparatus and method for processing literal operand computer instructions
GB2215880A (en) * 1988-03-23 1989-09-27 Benchmark Technologies Variable length data field processing
US5101370A (en) * 1990-07-26 1992-03-31 Unisys Corporation Programmable digital accumulate and scale circuit
US5440504A (en) * 1993-02-19 1995-08-08 Matsushita Electric Industrial Co., Ltd. Arithmetic apparatus for digital signal processor
US7395298B2 (en) * 1995-08-31 2008-07-01 Intel Corporation Method and apparatus for performing multiply-add operations on packed data
US6385634B1 (en) 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
US6230253B1 (en) * 1998-03-31 2001-05-08 Intel Corporation Executing partial-width packed data instructions
US6230257B1 (en) * 1998-03-31 2001-05-08 Intel Corporation Method and apparatus for staggering execution of a single packed data instruction using the same circuit
US7430578B2 (en) * 2001-10-29 2008-09-30 Intel Corporation Method and apparatus for performing multiply-add operations on packed byte data
KR20070088190A (ko) * 2006-02-24 2007-08-29 삼성전자주식회사 멀티미디어 데이터 처리를 위한 서브워드 병렬 처리 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54159831A (en) * 1978-06-07 1979-12-18 Fujitsu Ltd Adder and subtractor for numbers different in data length using counter circuit

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1245441A (en) * 1968-08-27 1971-09-08 Int Computers Ltd Improvements in or relating to adders operating on variable fields within words
US4109310A (en) * 1973-08-06 1978-08-22 Xerox Corporation Variable field length addressing system having data byte interchange
US3935572A (en) * 1973-11-23 1976-01-27 Hughes Aircraft Company System for resolving velocity ambiguity in pulse-doppler radar
US4021655A (en) * 1976-03-30 1977-05-03 International Business Machines Corporation Oversized data detection hardware for data processors which store data at variable length destinations
US4135242A (en) * 1977-11-07 1979-01-16 Ncr Corporation Method and processor having bit-addressable scratch pad memory
DE2806452C3 (de) * 1978-02-15 1981-11-12 Ščetinin, Jurij Ivanovič Anordnung zur Verarbeitung von Mehrbytefeldern mit Daten veränderlicher Länge
US4296469A (en) * 1978-11-17 1981-10-20 Motorola, Inc. Execution unit for data processor using segmented bus structure
US4434459A (en) * 1980-04-25 1984-02-28 Data General Corporation Data processing system having instruction responsive apparatus for both a basic and an extended instruction set
US4491910A (en) * 1982-02-22 1985-01-01 Texas Instruments Incorporated Microcomputer having data shift within memory
US4507731A (en) * 1982-11-01 1985-03-26 Raytheon Company Bidirectional data byte aligner

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54159831A (en) * 1978-06-07 1979-12-18 Fujitsu Ltd Adder and subtractor for numbers different in data length using counter circuit

Also Published As

Publication number Publication date
GB2120426A (en) 1983-11-30
GB2120426B (en) 1986-06-18
DE3314035C2 (ja) 1987-06-19
US4677582A (en) 1987-06-30
DE3314035A1 (de) 1983-10-27
GB8310288D0 (en) 1983-05-18
JPS58182754A (ja) 1983-10-25

Similar Documents

Publication Publication Date Title
JPS6351287B2 (ja)
JPH0431411B2 (ja)
JPH0470662B2 (ja)
JPS6227412B2 (ja)
JPH034936B2 (ja)
JPS608933A (ja) 演算処理装置
JPH07107664B2 (ja) 乗算回路
JPH0380324A (ja) 中央演算処理装置
JP2703884B2 (ja) データ書込み制御方式
JPH1091395A (ja) プロセッサ
JPS63111535A (ja) デ−タ処理装置
JP2557629B2 (ja) 割込方式
JPH0330170B2 (ja)
JPH0113129B2 (ja)
JPH0991118A (ja) 浮動小数点演算装置
JP2615746B2 (ja) ビット操作回路
JP2706459B2 (ja) 小数乗算器を有するマイクロプロセッサ
JP3139011B2 (ja) 固定小数点プロセッサ
JPH04195629A (ja) 演算フラグ生成装置
JP2573711B2 (ja) マイクロサブルーチン制御方式
JPH02109130A (ja) 演算回路
JPS61296435A (ja) マイクロプログラム制御方式
JPS62249228A (ja) シフト装置
JPH08305564A (ja) マイクロコンピュータ
JPS58159152A (ja) ビツト転送制御装置