JPH03248226A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH03248226A
JPH03248226A JP2046086A JP4608690A JPH03248226A JP H03248226 A JPH03248226 A JP H03248226A JP 2046086 A JP2046086 A JP 2046086A JP 4608690 A JP4608690 A JP 4608690A JP H03248226 A JPH03248226 A JP H03248226A
Authority
JP
Japan
Prior art keywords
barrel shifter
5fto
data
microprogram
bit field
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
JP2046086A
Other languages
English (en)
Inventor
Yasuhiko Kawamoto
河本 恭彦
Hiroaki Kaneko
金子 博昭
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2046086A priority Critical patent/JPH03248226A/ja
Priority to US07/659,606 priority patent/US5295250A/en
Priority to EP19910102852 priority patent/EP0445630A3/en
Publication of JPH03248226A publication Critical patent/JPH03248226A/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
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロプロセッサに関し、特にワードデータ
内の連続するビット列(以下、ビットフィールドという
)に対して抽出・挿入・比較を行う命令(以下、ビット
フィールド操作命令という)を高速に処理する技術に関
する。
〔従来の技術〕
マイクロプロセッサはマイクロ命令としてビット・フィ
ールドに対して抽出・挿入・比較を行うためのビット・
フィールド操作命令を有している。
従来、ビット・フィールド操作命令はマイクロプログラ
ムにより、バレル・シフタを操作することで実現してい
た。第4図に従来のバレル・シフタのブロック図を示す
。第4図において、101はマイクロプロセッサ内部の
データバス、IO2゜103はバレル・シフタの入力デ
ータを保持するレジスタ(以下、それぞれ5FTO,5
FTIとい5)、104はバレル・シフタの本体である
セレクタ(以下、BSELという)、105はバレル・
シフタの出力データを保持するレジスタ(以下、5FT
OUTとい5)、106はバレル・シフタの制御部、1
07は制御部106を操作するマイクロ命令が格納され
るマイクロ命令ラッチ(以下、MIという)、108は
バレル・シフタに与えるシフト量を保持するレジスタ(
以下、5FTOPという)、109はバレル・シフタが
行うべきシフト動作の種類(論理左シフト、論理右シフ
ト、算術左シフト、算術右シフト、左ローテート、右ロ
ーテート、など)を保持するレジスタ(以下、5FTO
PRという)、110は5FTOP 108および5F
TOPRI O9に保持される値に従って生成されるB
SEL104のためのセレクト情報(以下、5FTSL
という)、111,112はデータバス101の値を、
それぞれ5FTO−102゜5FT1・103にラッチ
するためのストローブ信号(以下、それぞれを5FTO
WR,5FTIWRという)である。
第4図のバレル・シフタにおいてシフ)tA作を行うた
めには、マイクロプログラムにより、5FTO・102
,5FTI・103,5FTOP108および5FTO
PR109に値を設定し、一定のタイミングで5FTO
UT105を読み出す。第5図に第4図のバレル・シフ
タでシフト命令を行う場合のマイクロプログラムを示す
。第5図において各ステップは次のような意味を持って
いる。
第1ステップ:5FTOP108へシフト量C0UNT
を設定し、5FTOPR 109ヘシフトの種類を設定す る。
第2ステップ:5FTO・102および5FTI・10
3に被シフトデータSRCを 設定する。
第3ステップ: 5FTOUTl 05からシフト結果
を取り出してデスティネー ションDSTに格納し、マイク ロブログラムを終了する。
第5図において、5FTOPRは第4図に示す5FTO
PRI O9へ値を設定するための制御命令であり、具
体的には次のものがある。
SHL・・・・・・論理布シフ)  SHR・・・・・
・論理右シフトSAL・・・・・・算術左シフ)  S
AR・・・・・・算術右シフトROL・・・・・・左ロ
ーテート ROR・・・・・・右ローテートまた、第5
図において、ENDはマイクロプログラムの終了、=は
レジスタへの転送を示している。このとき、第2ステツ
プにおける5FTINは間接的に5FTO・102およ
び5FTI・103を指定する仮想レジスタであり、被
シフトデータSRCの値はSF’TOPRI O9の値
に従って第7図に示すごと<5FTO・102および5
FTI・103に格納される。なお、マイクロプログラ
ムでは5FTO・102あるいは5FTI・103に対
して独立に値を設定することもできるようになっている
。その場合は、マイクロプログラムで、5FTINの代
りに5FTOまたは5FT1と記述する。
第6図に第5図に示すマイクロプログラムを実行スる場
合のバレル・シフタのタイミング図を示す、第6図に示
されている信号名は第4図において示している信号名と
1対1に対応する。ただし、第4図ではCLOCK、5
FTUOPおよび5FTDIRは図示していない。CL
OCKはクロックを示す。5FTUOPは5FTOPの
絶対値である。5FTOPの値が負である場合、シフト
方向(左または右)は5FTOPRで指定されている方
向と逆になる。5FTDIRは5FTOPRと5FTO
Pの符号から決定される最終的なシフト方向である。本
従来例では5FTOPの正負がシフト方向に影響を与え
るものと仮定しているが、そうでない場合は5FTDI
Rが5FTOPRから直接決定され、5FTUOPとS
F’TOPが同じ値になるだけであり、これは本質的な
問題ではない。第4図においてBSELI O4は5F
TO・102、および5FT1・103を連結した2ワ
ードのデータ(たとえば64ビツト)とみなし、その2
ワードデータ内の特定のビット位置から連続する1ワ一
ド分のデータ(たとえば32ビツト)を抽出して5FT
OUT105に格納する。この1ワ一ド分のデータは第
8図に示すごとく、5FTUOPとSF’TDIRの値
に従って決定する。
上述したバレル・シフタを用いることにより、ビット・
フィールド操作命令が実現できる。ビット・フィールド
操作には抽出・挿入・比較という3種が考えられるが、
ここでは1例としてビット・フィールドの挿入を考える
。ビット・フィールドの挿入とは、lワード長のデータ
DSTのあるビット位置(第BITビットとする)から
連続する数ピッ)(LENビットとする)の範囲に、別
の1ワード長のデータSRCから抽出した連続するLE
Nビットのデータを挿入する操作である。ここではSR
Cの下位LENビットのデータを抽出してDSTに挿入
することを考える。ここで示すビット・フィールドの挿
入操作はバレル・シフタを用いて、第9図に示す手順で
実現することができる。これをマイクロプログラムで記
述したものが第10図である。第11図は第10図に示
すマイクロプログラムを実行するときのタイミング図で
ある。第11図によると3回変化すべき5FTOUTの
値を最短手順で読み出している。これはビットフィール
ドの挿入操作を行う上での最短手順である。すなわち、
従来のバレル・シフタを用いてビットフィールドの挿入
を行う場合の最小手順は第10図に示すごとく6ステツ
プ(6クロツク)である。
〔発明が解決しようとする課題〕
上述したように従来のバレル・シフタを用いたビット・
フィールドの挿入操作は実現に最低6クロツクを要する
。しかし、現実的には、マイクロプログラムはバレル・
シフタの操作を行うだけでなく、その他の例外検出処理
などを行う必要があり、ビット・フィールドの挿入操作
を6クロツクで行うことは難しい。また、近年ではマイ
クロプロセッサのポスト・スクリプトやレーザービーム
・プリンタへの応用が拡大し、ビット・フィールド操作
命令はより高速な実行を要求されている。従来のままの
バレル・シフタを利用したのでは高速なビット・フィー
ルド操作を行うことができないという欠点がある。
〔課題を解決するための手段〕
本発明によるマイクロプロセッサは、マイクロプログラ
ムによって制御され、マイクロ命令としてワード・デー
タ内の連続するビット列に対して抽出・挿入・比較を行
う命令を有し、シフト装置としてバレル・シフタを具備
し、そして前記バレル・シフタの出力データを該バレル
・シフタの入力へ直接書き戻す経路を有することを特徴
とする。
〔実施例〕
次に、本発明について図面を参照して説明する。
第1図は本発明の一実施例のバレル・シフタのブロック
図である。101〜112は第4図に示す従来例のバレ
ル・シフタの構成要素と同一である。第1図は、第4図
の従来例に対して、バレル・シフタの出力5FTOUT
105からバレル・シフタの入力5FTO・102およ
び5FTI・103への書き戻し経路113、マルチプ
レクサ114および115.5FTOUT105の値を
書き戻し経路113を通じて入力5FTO・102ある
いは5FTl・103ヘラツチするためのストローブ信
号5FTO3116,5FTIS117が追加されたも
のである。マルチプレクサ114はストローブ信号5F
TOWRI 11と5FTO8116に従って、データ
・バス101あるいは書き戻し経路113から5FTO
102ヘラツチするデータをセレクトする。同様に、マ
ルチプレクサ115はストローブ信号5FTIWRI 
12と5FTIS117に従って、データ・バス101
あるいは書き戻し経路113から5FTI・103ヘラ
ツチするデータをセレクトする。なお、従来例では特に
記述していないがストローブ信号5FTOWRI 11
はマイクロプログラムで、5FTIN=・・・・・・ あるいは 5FTO=・・・・・・ が指示されたときに生成され、5FTIWRはマイクロ
プログラムで 5FTIN=・・・・・・ あるいは 5FT1=・・・・・・ が指示されたときに生成される。一方、ストローブ信号
5FTO3116,5FTIS l 17はマイクロプ
ログラムで書き戻し経路から5FTO・102、または
5FTI・103への書き戻しが指示されたときに生成
される。書き戻しの指示方法としてはいろいろな方法が
考えられるが、ここではシフトの種類5FTOPRの指
定と同時に書き戻しを指示する方法を示しておく。たと
えば、5FTOPR(SFTO) というマイクロ命令は、シフトの種類の変更と同時に、
5FTO・102への書き戻しを指示し、5FTOPR
(SFTl) というマイクロ命令は、シフトの種類の変更と同時に5
FTL103への書き戻しを指示する。
シフトの種類の変更と同時に5FTO・102および5
FTI・103への同時書き戻しを指示するためには、 5FTOPR(SFTO1) というマイクロ命令を用いることにする。このとき、第
1O図に示したビット・フィールドの挿入操作を行うた
めのマイクロプログラムは第2図のように書き換えるこ
とができる。第2図のマイクロプログラムを実行する場
合のタイミング図は第3図のようになる。第3図より、
シフトの種類の指定と同時に書き戻しの指示を行う場合
、シフトの種類5FTOPRの変更がシフト結果5FT
OUTに影響してくるのは、変更後2クロツク後である
が、書き戻し指示により5FTOまたはSFT 1へ5
FTOUTが書き戻されるのが0.5クロツク後、さら
にその書き戻さhた5FTOまたは5FT1によって5
FTOUTが変更されるのがその0.5クロツク後であ
るため、マイクロプログラムの記述は複雑になるが、ビ
ット・フィールドの挿入操作を5クロツクで行うことが
できる。第3図のタイミング図に示されるように、本実
施例によればバレル・シフタを1クロツクの無駄もなく
利用してビット・フィールドの挿入操作を行うことがで
きる。
本発明の第2の実施例について説明する。第1の実施例
では、バレル・シフタの出力データの入力への書き戻し
指示を、シフトの種類の変更と同時に指定する方式を用
いたが、マイクロ命令における仮想レジスタ5FTIN
への転送と同様に、仮想レジスタへの転送によって書き
戻しを指定することか考えられる。たとえば、 5FTO(SFTl)=・・・・・・ というマイクロプログラム記述は、5FTOへ何等かの
値を転送するとともに、5FTIには5FTOUTの値
を書き戻すという動作をするものにできる。同様に、5
FT1へ何等かの値を転送しながら、5FTOへSF’
TOUTの値を書き戻すという 5FT1(SFTO)=・・・・・・ も考えられる。
〔発明の効果〕
以上説明したように本発明は、従来のバレル・シフタに
出力から入力への書き戻し経路を持たせることにより、
バレル・シフタを用いてビット・フィールド操作命令を
実現する場合に、バレル・シフタを最も効率よく活用し
、最も短いステップ数で実現できる効果がある。
【図面の簡単な説明】
第1図は本発明のマイクロプロセッサの具備するバレル
・シフタのブロック図、第2図は第1図に示スハレル・
シフタを用いてビット・フィールドの挿入操作を実現す
る場合のマイクロプログラム、第3図は第2図に示すマ
イクロプログラムを実行する場合の第1図に示すバレル
・シフタの動作のタイミング図、第4図は従来例のマイ
クロプロセッサの具備するバレル・シフタのブロック図
、第5図は第4図に示すバレル・ジッタを用いてシフト
操作を行う場合のマイクロプログラム、第6図は第5図
に示すマイクロプログラムを実行する場合の第4図に示
すバレル・シフタの動作のタイミング図、第7図は第4
図に示すバレル・シフタでシフト操作を行う場合、入力
であるSFT O。 5FT1に設定すべき値を説明する図、第8図は第4図
に示すバレル・シフタで出力となるデータを入力である
5FTO・SF’TIから抽出する位置を説明する図、
第9図はバレル・シックを用いてビット・フィールドの
挿入操作を実現する手順を示す図、第10図は第9図に
示す手順を従来のバレル・シックで実現する場合のマイ
クロブログラム、第11図は第1O図に示すマイクロフ
ロダラムを実行する場合の第4図に示すバレル・シフタ
の動作のタイミング図である。 101・・・・・・データ・バス、102,103・旧
・・バレル・シフタの入力ラッチ、104・・印・バレ
ル・シフタの本体であるセレクタ、105・・・・・・
バレル・シフタの出力ラッチ、106・・・・・・バレ
ル・シフタの制御部、107・・・・・・マイクロ命令
ラッチ、108・・・・・・シフト量を保持するレジス
タ、109・・・・・・シフトの種類を保持するレジス
タ、110・・・・・・バレル・シフタへのセレクト情
報、111,112゜116.117・・・・・・スト
ローブ信号、113・・・・・・書き戻し経路、114
,115・・・・・・マルチプレクサ。

Claims (1)

    【特許請求の範囲】
  1. マイクロプログラムによって制御され、マイクロ命令と
    してワード・データ内の連続するビット列に対して抽出
    ・挿入・比較を行う命令を有し、シフト装置としてバレ
    ル・シフタを具備するマイクロプロセッサにおいて、前
    記バレル・シフタの出力データを該バレル・シフタの入
    力へ直接書き戻す経路を有し、該経路を前記マイクロプ
    ログラムによって制御することを特徴とするマイクロプ
    ロセッサ。
JP2046086A 1990-02-26 1990-02-26 マイクロプロセッサ Pending JPH03248226A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2046086A JPH03248226A (ja) 1990-02-26 1990-02-26 マイクロプロセッサ
US07/659,606 US5295250A (en) 1990-02-26 1991-02-21 Microprocessor having barrel shifter and direct path for directly rewriting output data of barrel shifter to its input
EP19910102852 EP0445630A3 (en) 1990-02-26 1991-02-26 Microprocessor for bit strings operations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2046086A JPH03248226A (ja) 1990-02-26 1990-02-26 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH03248226A true JPH03248226A (ja) 1991-11-06

Family

ID=12737179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2046086A Pending JPH03248226A (ja) 1990-02-26 1990-02-26 マイクロプロセッサ

Country Status (3)

Country Link
US (1) US5295250A (ja)
EP (1) EP0445630A3 (ja)
JP (1) JPH03248226A (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465340A (en) * 1992-01-30 1995-11-07 Digital Equipment Corporation Direct memory access controller handling exceptions during transferring multiple bytes in parallel
JPH05324847A (ja) * 1992-05-13 1993-12-10 Nec Corp 図形描画装置用lsi
US5497474A (en) * 1993-02-25 1996-03-05 Franklin Electronic Publishers, Incorporated Data stream addressing
JP2550921B2 (ja) * 1994-08-26 1996-11-06 日本電気株式会社 環状バッファ制御装置
ZA9510127B (en) * 1994-12-01 1996-06-06 Intel Corp Novel processor having shift operations
US6738793B2 (en) * 1994-12-01 2004-05-18 Intel Corporation Processor capable of executing packed shift operations
US6052522A (en) * 1997-10-30 2000-04-18 Infineon Technologies North America Corporation Method and apparatus for extracting data stored in concatenated registers
US5964828A (en) * 1997-11-13 1999-10-12 Electronic Data System Corporation Method and system for maintaining the integrity of objects
DE60032794T2 (de) 1999-11-18 2007-10-11 Sun Microsystems, Inc., Palo Alto Bit-dekompression-verarbeitung mit einem vielseitigen ausrichtungswerkzeug
TWI244033B (en) * 2003-11-26 2005-11-21 Sunplus Technology Co Ltd Processor capable of cross-boundary alignment of a plurality of register data and method of the same
TWI234073B (en) * 2003-12-19 2005-06-11 Sunplus Technology Co Ltd Method and architecture of processor for loading unaligned data
TWI227440B (en) * 2003-12-19 2005-02-01 Sunplus Technology Co Ltd Device and method using a processor to perform automatic alignment for data movement in memory
TWI230357B (en) * 2003-12-19 2005-04-01 Sunplus Technology Co Ltd Device and method for writing data in a processor to memory at unaligned location
US20050278505A1 (en) * 2004-05-19 2005-12-15 Lim Seow C Microprocessor architecture including zero impact predictive data pre-fetch mechanism for pipeline data memory
US20070074007A1 (en) * 2005-09-28 2007-03-29 Arc International (Uk) Limited Parameterizable clip instruction and method of performing a clip operation using the same
CN106201440B (zh) * 2016-06-28 2018-10-23 上海兆芯集成电路有限公司 字符串比较指令优化的中央处理单元以及其操作方法
US9959247B1 (en) 2017-02-17 2018-05-01 Google Llc Permuting in a matrix-vector processor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5350629A (en) * 1976-10-18 1978-05-09 Burroughs Corp High speed shift network

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT314225B (de) * 1969-05-02 1974-03-25 Internat Business Maschines Co Modulares elektronisches Datenverarbeitungssystem
US4418383A (en) * 1980-06-30 1983-11-29 International Business Machines Corporation Data flow component for processor and microprocessor systems
US4437166A (en) * 1980-12-23 1984-03-13 Sperry Corporation High speed byte shifter for a bi-directional data bus
US5034879A (en) * 1984-10-01 1991-07-23 Unisys Corp. (Formerly Burroughs Corp.) Programmable data path width in a programmable unit having plural levels of subinstruction sets
US4975837A (en) * 1984-10-01 1990-12-04 Unisys Corporation Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets
ATE67326T1 (de) * 1986-07-02 1991-09-15 Unisys Corp Programmgesteuerte, teilweise verteilte maskenvorrichtung in einer programmierbaren einheit mit variablen datenwegbreiten.
US4814976C1 (en) * 1986-12-23 2002-06-04 Mips Tech Inc Risc computer with unaligned reference handling and method for the same
US4914622A (en) * 1987-04-17 1990-04-03 Advanced Micro Devices, Inc. Array-organized bit map with a barrel shifter
JP2613223B2 (ja) * 1987-09-10 1997-05-21 株式会社日立製作所 演算装置
US5132898A (en) * 1987-09-30 1992-07-21 Mitsubishi Denki Kabushiki Kaisha System for processing data having different formats
US4977497A (en) * 1988-03-23 1990-12-11 Mitsubishi Denki Kabushiki Kaisha Data processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5350629A (en) * 1976-10-18 1978-05-09 Burroughs Corp High speed shift network

Also Published As

Publication number Publication date
EP0445630A2 (en) 1991-09-11
US5295250A (en) 1994-03-15
EP0445630A3 (en) 1991-12-27

Similar Documents

Publication Publication Date Title
JPH03248226A (ja) マイクロプロセッサ
US4825361A (en) Vector processor for reordering vector data during transfer from main memory to vector registers
JP3954171B2 (ja) コンピュータにおけるスカラ値をベクトルに記入する方法
US4451885A (en) Bit operation method and circuit for microcomputer
JPH0926770A (ja) データストリング生成方法、コンピュータ動作方法、ピクセル値セット生成方法及びコンピュータ
JPS60101644A (ja) ノイマン型コンピュータプログラムを実行するコントロールフローコンピュータ
JPS623461B2 (ja)
JP2567134B2 (ja) ビットフィールド論理演算処理装置およびそれを具備するモノリシックマイクロプロセッサ
JPH0588884A (ja) 状態モード設定方式
JP2553728B2 (ja) 演算装置
JP3132566B2 (ja) 命令先行制御装置
JPS627593B2 (ja)
JPH03269728A (ja) パイプライン計算機における命令実行制御方式
JPS5833584B2 (ja) 情報処理装置
JPH03136136A (ja) 命令実行時刻制御方式
JPH0338613B2 (ja)
JP2503017B2 (ja) バレルシフタ回路
JPS60175146A (ja) プログラマブル・コントロ−ラ
JPH0546389A (ja) 並列処理装置
JPH0625966B2 (ja) マイクロプログラム制御装置
SU1251075A1 (ru) Устройство дл распаковки команд
SU960830A1 (ru) Центральный процессор
JPH0239325A (ja) マイクロ・シーケンス制御方式
JPS5979354A (ja) 演算制御装置
JPS61145631A (ja) 情報処理装置