JPH02285426A - マイクロプロセツサおよびフオーマット変換方法 - Google Patents

マイクロプロセツサおよびフオーマット変換方法

Info

Publication number
JPH02285426A
JPH02285426A JP2084796A JP8479690A JPH02285426A JP H02285426 A JPH02285426 A JP H02285426A JP 2084796 A JP2084796 A JP 2084796A JP 8479690 A JP8479690 A JP 8479690A JP H02285426 A JPH02285426 A JP H02285426A
Authority
JP
Japan
Prior art keywords
data
format
memory
bits
data item
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
JP2084796A
Other languages
English (en)
Inventor
J H Crawford
ジヨン・エイチ・クロフオード
Mustafiz R Choudhury
ムスタフイス・アール・ショウドリイ
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JPH02285426A publication Critical patent/JPH02285426A/ja
Pending 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/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/768Data position reversal, e.g. bit reversal, byte swapping
    • 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/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion

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)
  • Memory System (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は半導体マイクロプロセッサの分野に関する。
〔従来の技術及び発明が解決しようとする問題点〕
本発明は、マイクロプロセッサのアーキテクチャ内で実
現できるようなバイトスワップ命令を扱うものである。
本発明と共に利用されるマイクロプロセッサは、486
”プロセッサと呼ばれることが多いfatel 804
86  マイクロプロセッサである。486プロセツサ
は、同様に386 プロセッサと呼ばれている工nts
+180386   マイクロプロセッサの改良バージ
ョンである。(Int・1゜80386 、386 、
80488及び486はfatel Corporat
ion の商標である。) 一般に、情報は、通常8ビツト長から64ビツト長まで
の範囲内で変化するデータ構造で、マイクロプロセッサ
システムのメモリに記憶される。
486マイクロプロセツサの場合、「語」は16ビツト
幅で6シ、倍長路、すなわち+ rd語」 は32ビッ
ト幅であると規定されている。語は2つの連続する8ビ
ツトバイトとしてメモリに記憶されるが、その際、下位
のバイトは最下位アドレスに位置し、上位のバイ゛トは
上位のアドレスに位置している。alFIは4つの連続
するバイトとしてメモリに記憶され、下位のバイトは最
下位のアドレスに位置し、上位のバイトは最上位アドレ
スに位置している。マイクロプロセッサ内の語データ項
目又はd語データ項目のアドレスは、最下位バイトのバ
イトアドレスである。この種のアドレス指定は、特にd
語データ項目に関して、1バイトより長いデータの型を
記憶する丸めの「小エンジアン」方法として知られてい
る。IntelのX86シリーズのマイクロプロセッサ
は、全て、データの型を記憶する丸めに小エンジアン方
法を採用している。
マイクロプロセッサのメモリの中にデータの型を記憶す
る別の方法は、「大エンジアン」方法と呼ばれている。
大エンジアン方法では、データは、上位のビットが最下
位アドレスのバイトに位置するように記憶される。この
ように、大エンジアンフォーマットは対応する小エンジ
アンフォーマットとは逆になる。2つのフォーマットの
相違点は、単に、複数バイト量のどのバイトが最下位ア
ドレスに割当てられ、どのバイトが最上位アドレスに割
当てられるかということでらる。大エンジアンフォーマ
ットにおいては、その名前が示す通り、大きなバイトが
最初に来る。すなわち、上位のビットが下位アドレスに
おる。大エンジアンメモリフォーマットはIBMの37
0シリーズのコンビュ−夕と、Motorola、In
c製の68000シリーズのマイクロプロセッサによシ
採用されている。さらに、R工SCプロセッサの多くの
大エンジアンフォーマットを使用している。
プログラマ−は、データメモリフォーマットを組合せて
データベースを形成することを望む場合が非常に多い。
また、整数データを大エンジアンフォーマットを記憶し
ている1つのコンピュータから、整数データを小エンジ
アンフォーマットで記憶する別のコンピュータへ、ネッ
トワークを介してデータを送信したいと考えることも多
い。従って、ある時点で、一方のメモリフォーマットで
記憶されているデータを他方のメモリフォーマットに変
換するために、変換を実行する必要がおる。
16ビツトm境においては、メモリフォーマット間の変
換は簡単でおる。マイクロプロセッサ内では、8ビツト
レジスタを単に回転、すなわち交換するために、一般に
いくつかの命令を利用することができる。言いかえれば
、16ビツトデータ項目を形成する8ビツト量を簡単に
スワップする。
すなわち、交換することが可能である。
さらに多くの数のビット、すなわち、32ビツト量又は
64ビツト量のバイトスワップには、問題が多い。たと
えば、従来のマイクロプロセッサが32ビツト項目につ
いてこのバイトスワップ動作を実行すると考えられる方
法の1つは、まず、下位の2つのバイトのバイトスワッ
プを実行し、次に16だけ回転させ、さらに、残る2つ
のバイトについて2回目のバイトスワップを実行するこ
とから成る。従って、1回の変換を実行するために、3
つの別個の命令が必要でめる。それぞれの命令は実現に
2つのクロックを要するので、変換全体としては、合わ
せて6つのクロックを必要とする。また、それぞれの命
令は一般に2バイトから3バイトの長さを有するので、
これら3つの回転命令のために、例えば、約9つの命令
バイトという大量のコードを発生させなければならない
別の方法は、メモリフォーマットの変換をマイクロコー
ドにより連続するステップで実行させるものであると考
えられるが、マイクロコードを使用すると、6つ以上の
クロックが必要になると共に、命令バイトの数も多くな
ってしまうであろう。
このため、従来の機械で大エンジアンから小エンジアン
へ、又は小エンジアンから大エンジアンへのメモリフォ
ーマット変換を実行するときには、相当な量の内部メモ
リスペースが必要になり、また、性能の著しい低下は免
れない。
RISCプロセッサのいくつかで採用されている別の方
法は「ピンストラッピング」と呼ばれる。
ピンストラッピングを構成するのは、マイクロプロセッ
サを収容しているプリント回路にハードワイヤードされ
ている単なるスタティックスイッチであるにすぎない。
ピンストラップオプションは、コンピュータに、メモリ
を1つの方式又は別の方式で、すなわち、大エンジアン
フォーマット又は小エンジアンフォーマットで、強制的
に処理させる。このハードワイヤード方法は、静的であ
るために、マイクロプロセッサ又はユーザーによる動的
なプログラミング又は制御が不可能であるという明らか
な欠点を有する。
以下の説明かられかるように、本発明は、このような従
来の方法に代えて、大量ンジアンd語を小エンジアンフ
ォーマットに変換することができル単一ノハイドスワッ
プ命令を使用する。この命令は、ハードウェアを余分に
追加したシ、性能をそこなわせたシすることなく、2つ
のフォーマットの間の変換を急速に実行させる。大エン
ジアンデータを大量に利用するプログラムに関して、4
86プロセツサ(たとえば、小エンジアン機械)で実行
したときに、約10%のスピードアップが得られること
が報告されている。
〔問題点を解決するための手段〕
32ビツトのデータ型についてその場でのバイトスワッ
プを実行するために最適化された特殊化マイクロプロセ
ッサ命令を説明する。このバイトスワップ動作は、大エ
ンジアンメモリフォーマットで記憶されたデータを小エ
ンジアンメモリフォーマットに変換するとき又はその逆
の変換を実行するときに特に有用である。本発明は、1
つ又は複数Q人カパスからのデータを出力パスに選択的
に結合する複数のマルチプレクサを含む変形されたバレ
ルシフタを具備する。データバスの個々のビット線の結
合は、入力バスのビット0〜7.8〜15.16〜23
及び24〜31が対応するビット24〜31.16〜2
3,8〜15及びO〜7にそれぞれ結合されるように配
列されている。
それぞれのマルチプレクサに接続する制御線は、バイト
スワップ動作を制御する手段を構成する。
ここで説明するバイトスワップ命令によれば、プログラ
マ−は、従来のマイクロプロセッサに関連して生じてい
た性能の低下を招くことなく、ブータラ大エンジアンメ
モリフォーマットかう小エンジアンデータフォーマット
に変換し、また、元の大エンジアンフォーマットに戻す
ことができる。
さらに、この命令は、1つで、変換を実行するために唯
一つの実行うロックサイクルしか必要とせず、3つの命
令と、6つのクロックとを通常要求する従来のマイクロ
プロセッサとは対照的である。
〔実施例〕
本発明は、以下に挙げる本発明の好ましい実施例の詳細
な説明及びそれを示す添付の図面からさらに十分に理解
されるであろう。ただし、以下の説明及び添付の図面は
本発明を特定の実施例に限定するものと解釈されてはな
らず、単に説明と、理解を助けるためにのみ提示される
にすぎない。
メモリデータ7オーマツトを1つの型から別の型に変換
するバイトスワップ命令を含むマイクロプロセッサを説
明する。以下の説明中、本発明を完全に理解させるため
に、ビット長さなどの多数の事項を詳細に特定して挙げ
るが、本発明の実施に際して、そのような詳細な特定の
事項を使用する必要はないことは当業者には自明であろ
う。また、場合によっては、本発明を無用にわかりにく
くするのを避ける丸め、周知の構造や回路を詳細に示さ
ないこともある。
第1図は、32ビツトの長さを有するd語に関して、大
エンジアンメモリフォーマットと、小エンジアンメモリ
フォーマットとの相違を示す。第1図には、小エンジア
ンメモリフォーマットと、大エンジアンメモリフォーマ
ットの双方について、下位ビットを0番のビットとし、
上位のビットを31番のビットとし、上から順にメモリ
アドレスに番号付けした32ピツトのデータを示してい
る。
図示する通シ、各32ピツ)d語は、第1図では大文字
のA〜Dによって表示されている4つの8ビツトバイト
に分割される。小エンジアンメそりフォーマットでは、
d@はメモリに4つの連続するバイトとして記憶され、
そのうち下位のバイトは最下位のアドレスに位置し、上
位のバイトは最上位のアドレスに位置している。このこ
とは、第1図には、小エンジアンメモリフォーマットに
おいて、ビットO〜7がメモリアドレスMに記憶され、
ビット8〜15はメモリアドレスM+1に記憶され、ビ
ット16〜22はメそリアドレスM+2に記憶され、ビ
ット24〜31はメモリアドレスM+3に記憶される形
態として示されている。
小エンジアンフォーマットによるd語データ項目のアド
レスは、最下位のバイトのバイトアドレス(たとえば、
メモリアドレス1M」)である。
大エンジアンメモリデータフォーマットによれば、ビッ
トは逆の順序で配列される。すなわち、大エンジアンデ
ータは、上位ビットが最上位のアドレスバイトにあり、
最下位ビットは最上位のメそリアドレスバイトになるよ
うな形で記憶される。
従って、第1図に示すように、ビット0〜Tはメモリア
ドレスM+3に記憶され、ビット8〜15はメモリアド
レスM+2に記憶され、ビット16〜23はメモリアド
レスM+1に記憶され、ビット24〜31はメモリアド
レスMに記憶される。
大エンジアンメモリフォーマットによるdaデタ項目の
アドレスは、最上位のバイトのアドレスである。
大エンジアンメモリフォーマットから小エンジアンメモ
リフォーマットへの変換を実行するためには、次のプロ
セスが起こらなければならない。
まず、データ項目をメモリから内部レジスタに移す。次
に、大エンジアンフォーマットのビット24〜31に対
応するバイトAを、ビットO〜7に対応するパイ)Dの
内容へ転送する、すなわち、バイトDとスワップするこ
とが必要である。同様に、バイトBをバイトCとスワラ
プレなければならない。このバイトスワップ動作は、好
ましい″S、施例では、マイクロプロセッサの整数実行
装置の内部に配置されたバレルシフタを使用して実行さ
れる。
最後に、スワップしたデータ項目を一時ラッチ又はレジ
スタにランチし、続いて、メモリ内の転送元/宛先レジ
スタに戻して書込む。
次に、第2図に関して説明する。第2図には、本発明の
バイトスワップ命令を実現するために利用されるバレル
シフタを通過するデータの流れがブロック線図で示され
ている。バレルシフタ20は当該技術では一般に広く知
られている装置であり、多くのマイクロプロセッサに通
常は設けられている。バレルシフタ20は、1飴分のデ
ータを1回の動作で位置N個だけシフト/回転させるこ
とができる。尚、Nは0から語のサイズまでの範囲にあ
る。通常、バレルシフタ20は多様な動作に使用される
。九とえは、シフト命令9囲転命令。
ビット走査などの目的で、バレルシフタ2oを使用する
本発明のマイクロプロセッサにおいテハ、バレルシフタ
20は2つの部分、すなわち、マトリクス素子23と、
トリー24とから構成される。マトリクス23は、ds
ma 、 dumbとそれぞれラベル付けされている3
2ビツトバス21及び22を介して、データ入力を受信
する。一般に、バス21を介して供給されるデータはバ
ス22を介して供給されるデータと同一である。これに
よって、データの急速な回転、すなわち、シフトは、後
述するように、容易になる。マトリクス23はそれらの
データ入力を受信し、ニブル細分方式でシフト動作を実
行する(すなわち、データは、40倍数ずつシフトされ
るり。このようにして、データは、当初、シフト動作の
第1段階では、4の倍数(たとえば、4,8,12.1
6等々)ずつシフトされることになる。4より小さいい
ずれかの数(す彦わち、0〜3)の追加シフトは、トリ
ー24で実行される。マトリクス23は、DsTとラベ
ル付けされたバス25を介して、トリー24に供給され
ている。) IJ −24は、DSLとラベル付けされ
た32ビツトパス26を介して、出力をALU出カシカ
レジスタ2フ給する。
次に、第3図Aから第3図りに関して説明する。
これらの図には、本発明の一般に好ましい実施例で利用
するバレルシフタ2oの詳細な回路図が示されている。
バレルシフタ2oは、dimaバス21と、d smb
バス22とにそれぞれ結合された複数の垂直データ入力
線を含む。それらのデータ入力線は、図では、個々のビ
ット線DSMAO〜31及びDSMBO〜31 から構
成されるものとして示されている。各ビット線は複数の
4×4マルチプレクサの入力端子に結合される。たとえ
ば、damb3iは、マルチプレクサ42〜49014
入力端子に結合されている。
第3図A〜第3図りには、複数の水平データ出力線も含
まれている。それらの水平データビット線はDSTバス
25を構成しており、複数のマルチプレクサの出力端子
に結合される。DSTバス25の個々のビット線はDS
T O〜31とラベル付けされており、第2図に関連し
て先に説明したように、ALU出力レジスタ27に接続
される( DST 35などの追加の線も示されている
が、それらの線は本発明とは密接に関係するものではな
いので、ここでは説明を省く)。たとえばDST31は
、マルチプレクサ42,59,68,77.86,95
,104及び113に接続するものとし5て示されてい
る。バレルシフタ20のそれぞれのマルチプレクサに対
する制御は、DSMCO〜22とラベル付けされた制御
線を介して与えられる。
マルチプレクサ41〜119f、)、!J−24との関
連でのみ使用される装置1157,66.75,84゜
93 、102及び111を除く)は、それぞれ、4つ
の入力ビン(すなわち、11〜14)と、4つの出力ビ
ン(すなわち、01〜04)と、制御ビン(すなわち、
C)とを有するマルチプレクサである。製作中、個々の
マルチプレクサの制御線に信号が印加されると、入力デ
ータ線は出力データ線に電気的に結合される。1例を挙
げると、マルチプレクサ110への制御入力線に信号が
印加されると、入力ビンI、(たとえば、DSMB Q
 )にあるデータは出力ビン0.(友とえは、DSTQ
)に電気的に結合される。同様にして、ビンI2. I
、及びI+(タト、tij、DSMB l 、 DSM
B 2及びDSMB3)と関連するデータは、出力ビン
o2 + o、及び04 (たとえば、DST 1 、
 DST 2及びDST3)に、それぞれ、電気的に結
合される。このように、バレルシフタ20の内部の個々
のマルチプレクサは、それぞれ、データ入力群を対応す
る出力線に接続するスイッチング素子として動作する。
次に、第4図に関して説明する。第4図には、本発明の
一般に好ましい実施例で使用する4×4マルチプレクサ
の回路図が示されている。このマルチプレクサは電界効
果デバイス120〜123’e含む。電界効果デバイス
120〜123は通常のれチャネルMO8デバイスであ
るのが好ましい。それぞれの電界効果トランジスタのゲ
ートは制御線124に結合されている。各トランジスタ
のドレイン領域と、ソース領域は異なる1対の入力線と
、出力線とに結合される。たとえば、トランジスタ12
3のソースはI、とラベル付けされた入力線128に接
続し、ドレインは01 とラベル付けされた出力線12
9に接続している。制御線124を正の高電位とするこ
とにより、制御線124が動作されると、デバイス12
0〜123のソース領域とドレイ/領域トの間に導通チ
ャネルが形成される。この導通チャネルは、対応する入
力ビンと出力ビンとを電気的に接続させる。このように
、制御線124の正の高電位は、128と129 、1
27と130 、126と131125と132の各線
を電気的に接続させる。
本発明のマイクロプロセッサのバレルシフタ2゜は、本
発明のフォーマツ)f換に対応するためにいくつかの制
御信号が分割されているという点を除いて、80386
のような従来のマイクロプロセッサに見られるバレルシ
フタに類似シている。386プロセツサ本来のマトリク
ス制御信号DSMC2は、バイトスワップ(BSWAP
)命令を1つの実行うロックで実現するのを助けるため
に、3つの制御信号DSMC2a 、 DSMC2b及
びDSMC2cに分割されている。同様に、DSMC1
7は3つの信号DSMC17&〜Cに分割されるものと
して示されている。
通常の動作(BSWAPを除くあらゆる動作)に対して
は、それらは制御線は元の形に組合され、バレルシフタ
20は通常通り動作する。分割された別個の線が重要に
なるのは、BSWAP命令の実行中だけである。
BSWAP命令の実行うロックサイクルの段階1におい
ては、マトリクス制御信号のうち4つが印加される。マ
l−IJクスの他の全ての制御信号は否定される。印加
される4つのマトリクス制御41号は、dame 21
 (dumbパスのビット24〜31をマトリクス出力
バスC8Tのビットo〜7にマルチプレクスする)と、
dsmo 17b (dambハスノヒット16〜23
をマトリクス出力バスDSTのビット8〜15にマルチ
プレクスする)と、dsmc2b(damnバスのビッ
ト8〜15をマトリクス出力バスDSTのビット16〜
23にマルチプレクスする)と、dame 17 c 
(dsmaバスのビット0〜7をマトリクス出力バスD
STのビット24〜31にマルチプレクサする)とであ
る。実行うロックの段階2においては、バレルシフタは
、dsmaのバス及びdsmbバスを介してデータ入力
を受信し、単ニDSMAハス、DsABハス及びDST
出カ1m k M切に電気的に接続するだけで、バイト
をスヮッンする。従って、メモリ項目データフォーマッ
トは大エンジアンから小エンジアンに、又は小エンジア
ンから大エンジアンに自動的に変換される。マトリクス
により出力された変換データはそれ以上シフトすること
なく、シフタのトリーを通過し、続いて、ALU出力レ
ジスタ27にロードされる。
一般に好ましい実施例においては、BSWAP命令は2
つの8ビツト命令バイトから構成される。
命令のビットのうち13は演算コードであり、第2のバ
イトの下位の4ビツトは、動作に参加すべきレジスタを
指定する。
本発明の重要な面の1つは、先に変換されたフォーマッ
トから元に戻すための変換に別の命令を不要にするよう
に、BSWAP命令が自身の逆の命令として作用するこ
とである。言いかえれば、デ−夕入カバス21及び22
に供給されたデータは、同じ命令を使用して、大から小
、小から犬のいずれにも変換が可能なのである。
BSWAP命令が有用であるとわかる別の動作は、ロー
ド/記憶動作においてである。ユーザーが、全てのデー
タを小エンジアンフォーマットで記憶する機械で演算を
実行したいと思っている場合を考えてみる。ユーザーが
BSWAP命令を伴なってレジスタに通常のロードを実
行する場合、大エンジアンフォーマットは自動的に小エ
ンジアンフォーマットに変換されるので、プロセッサは
iちにそのデータを処理(すなわち、加算、減算2乗算
など)することがで自る。全ての算術演算が完了した後
、プログラマ−は別のBSWAPを実行し、続いて、メ
モリに通常の記憶をすることによシ、メモリ内に当初の
フォーマットによるデータを復元しても良いであろう。
80386のような従来のマイクロプロセッサでこれと
同じ動作シーケンスを実行するには、より多くの時間と
記憶領域を必要とする。
本発明のバイトスワップ命令は一般には32ビットd語
用として規定されているが、それより高次のメモリフォ
ーマット変換(たとえば、64ビツト以上)をも可能に
する基本ビルディングブロックでもある。64ビツトス
ワツプの場合、機械は、まず、64ビツトの址を2つの
レジスタにロードする。次に、機械は各レジスタについ
てBSWAPを実行する。その後、プロセッサは、単に
、レジスタを逆の順序で新たに名前付けするだけである
。言いかえれば、上位のビットを蓄積しているレジスタ
を下位レジスタと新たに名前付けし、下位ビットを蓄積
しているレジスタを上位レジスタとする。この種の改名
方式では、レジスタを物理的にスワップする必要がない
。64ビツト以上の変換に利用すると、性能コストの節
約は倍増する。
以上、マイクロプロセッサにおいてメモリプタフォーマ
ットを変換するバイトスワップ命令を説明した。
【図面の簡単な説明】
第1図は、小エンジアンメモリフォーマツトド、大エン
ジアンメモリフォーマットとを比較する図であり、2つ
のメモリフォーマットを対応するメモリアドレス及びビ
ット番号と共に示し、最上位のビットをビット31とし
て表わし、最下位のビットをビット0として表わした図
、 第2図は、本発明によるマイクロプロセッサのバレルシ
フタを通過するデータの流れを示すブロック線図、 第3図A〜第3図りは、組合されて、本発明の現時点で
好ましい実施例で利用するバレルシフタの回路図を構成
する図、及び 第4図は、第3図のバレルシフタの内部で利用される4
>4マルチプレクサを示す回路図である。 20・・・・バレルシフタ、21.22−・・・32ビ
ツトバス、23・e・φマトリクス、24・ 拳 轡 
拳 ト IJ  −25、26φ ・ 拳 ・ 32 
ビ ッ トバス、27−―・・ALU出力レジスタ、4
1〜56゜58〜65  、 67〜74  、 76
〜83.85〜92.94〜101  、 103〜1
10  、 112〜119 ・ 傘 ・ −4X4マ
ルチプレクサ、120〜123・Φ・・電界効果トラン
ジスタ、124・・・・制御線、125〜12B・・・
・入力線、129〜132◆串・・出力線。

Claims (4)

    【特許請求の範囲】
  1. (1)レジスタに記憶された32ビットデータ項目のバ
    イト順序をスワップするマイクロプロセッサにおいて、 前記データ項目を複数の入力データ線を介して対応する
    複数の出力データ線に結合し、その結合は、前記データ
    項目のビット0〜7、8〜15、16〜23及び24〜
    31が前記出力データ線の対応するビット位置24〜3
    1、16〜23、8〜15及び0〜7にそれぞれ結合さ
    れるように配列されている結合手段と; 前記結合手段に結合され、前記データ項目の前記バイト
    順序の前記スワップを制御する制御手段とを具備するこ
    とを特徴とするマイクロプロセッサ。
  2. (2)メモリと、d語1つ分のデータをシフトし、第1
    のバス及び第2のバスを介してデータ入力を受信して、
    第3のバスを介してシフト出力、すなわち、回転出力を
    発生するバーレルシフタと、32ビットデータ項目のフ
    ォーマットを第1のフォーマットから第2のフォーマッ
    トに変化させる命令とを有するマイクロプロセッサにお
    いて、前記命令は、 複数の入力線と、複数の出力線と、複数のマルチプレク
    サとを含み、前記マルチプレクサは、イネーブルされた
    とき、順序通りに配列されたビット0〜7、8〜15、
    16〜23及び24〜31を前記出力線の対応する順序
    通りに配列されたビット位置24〜31、16〜23、
    8〜15、0〜7にそれぞれ結合するバレルシフタと; 前記複数のマルチプレクサに結合され、前記マルチプレ
    クサをイネーブルする制御手段とを具備するマイクロプ
    ロセッサ。
  3. (3)内部レジスタセットと、バレルシフタとを有する
    マイクロプロセッサにおいて、第1のメモリフォーマッ
    トで記憶されているデータ項目を第2のメモリフォーマ
    ットに変換する方法であつて前記データ項目を1対の入
    力バスを介して前記バレルシフタに入力する過程と; 変換を開始するために、前記バレルシフタに接続される
    いくつかの制御信号を印加する過程と;前記データ項目
    の順序通りに配列されたビット0〜7、8〜15、16
    〜23及び24〜31を、前記入力バスを介して、前記
    出力データバスの対応する順序通りに配列されたビット
    位置24〜31、16〜23、8〜15及び0〜7にそ
    れぞれ接続することにより、変換データ項目を発生する
    過程とから成ることを特徴とするフォーマット変換方法
  4. (4)データが第1のメモリフォーマットで記憶される
    メモリを有するコンピュータにおいて、32ビットデー
    タ項目を第2のメモリフォーマットに変換する方法であ
    つて、 前記データ項目を前記メモリからレジスタに移す過程と
    ; 前記第1のメモリフォーマットによる前記データ項目の
    順序通りに配列されたビット0〜7、8〜15、16〜
    23及び24〜31が前記レジスタの順序通りに配列さ
    れたビット位置24〜31、16〜23、8〜15及び
    0〜7にそれぞれ対応するように前記データ項目のバイ
    ト順序をスワップし、前記スワップされたデータ項目は
    前記第2のメモリフォーマットである過程と; 前記スワップされたデータ項目をラッチにラッチングす
    る過程とから成ることを特徴とするフォーマット変換方
    法。
JP2084796A 1989-03-30 1990-03-30 マイクロプロセツサおよびフオーマット変換方法 Pending JPH02285426A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US33164089A 1989-03-30 1989-03-30
US331.640 1989-03-30

Publications (1)

Publication Number Publication Date
JPH02285426A true JPH02285426A (ja) 1990-11-22

Family

ID=23294766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2084796A Pending JPH02285426A (ja) 1989-03-30 1990-03-30 マイクロプロセツサおよびフオーマット変換方法

Country Status (7)

Country Link
US (1) US5948099A (ja)
JP (1) JPH02285426A (ja)
DE (1) DE4010119C2 (ja)
FR (1) FR2645293A1 (ja)
GB (1) GB2229832B (ja)
HK (1) HK107293A (ja)
IT (1) IT1239828B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998044409A1 (fr) * 1997-04-03 1998-10-08 Seiko Epson Corporation Micro-ordinateur, dispositif electronique et procede de traitement d'information

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446482A (en) * 1991-11-13 1995-08-29 Texas Instruments Incorporated Flexible graphics interface device switch selectable big and little endian modes, systems and methods
US5687337A (en) * 1995-02-24 1997-11-11 International Business Machines Corporation Mixed-endian computer system
US5928349A (en) * 1995-02-24 1999-07-27 International Business Machines Corporation Mixed-endian computing environment for a conventional bi-endian computer system
US5778406A (en) * 1995-06-30 1998-07-07 Thomson Consumer Electronics, Inc. Apparatus for delivering CPU independent data for little and big endian machines
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5819117A (en) * 1995-10-10 1998-10-06 Microunity Systems Engineering, Inc. Method and system for facilitating byte ordering interfacing of a computer system
US6243808B1 (en) * 1999-03-08 2001-06-05 Chameleon Systems, Inc. Digital data bit order conversion using universal switch matrix comprising rows of bit swapping selector groups
KR20020074564A (ko) * 2001-03-20 2002-10-04 엘지전자 주식회사 Cpu 코어와 외부 호스트의 인터페이스 장치 및 방법
NL1017870C2 (nl) * 2001-04-18 2002-10-25 Marc Van Oldenborgh Werkwijze voor invers multiplexen.
US20030014616A1 (en) * 2001-07-02 2003-01-16 Thavatchai Makphaibulchoke Method and apparatus for pre-processing a data collection for use by a big-endian operating system
NL1018463C2 (nl) * 2001-07-04 2003-01-08 Marc Van Oldenborgh Werkwijze, inrichting en programmatuur voor digitaal inverse multiplexen.
US6877019B2 (en) * 2002-01-08 2005-04-05 3Dsp Corporation Barrel shifter
US6670895B2 (en) * 2002-05-01 2003-12-30 Analog Devices, Inc. Method and apparatus for swapping the contents of address registers
US6996735B2 (en) * 2002-11-22 2006-02-07 Texas Instruments Incorporated Apparatus for alignment of data collected from multiple pipe stages with heterogeneous retention policies in an unprotected pipeline
US6889311B2 (en) * 2002-11-22 2005-05-03 Texas Instruments Incorporated Pipeline stage single cycle sliding alignment correction of memory read data with integrated data reordering for load and store instructions
US7051197B2 (en) 2002-11-22 2006-05-23 Texas Instruments Incorporated Tracing through reset
US7720977B1 (en) * 2003-02-11 2010-05-18 Foundry Networks, Inc. Cookie invalidation or expiration by a switch
US20040221274A1 (en) * 2003-05-02 2004-11-04 Bross Kevin W. Source-transparent endian translation
US7181562B1 (en) * 2004-03-31 2007-02-20 Adaptec, Inc. Wired endian method and apparatus for performing the same
US8719837B2 (en) 2004-05-19 2014-05-06 Synopsys, Inc. Microprocessor architecture having extendible logic
US7552427B2 (en) * 2004-12-13 2009-06-23 Intel Corporation Method and apparatus for implementing a bi-endian capable compiler
US20070073925A1 (en) 2005-09-28 2007-03-29 Arc International (Uk) Limited Systems and methods for synchronizing multiple processing engines of a microprocessor
US8595452B1 (en) 2005-11-30 2013-11-26 Sprint Communications Company L.P. System and method for streaming data conversion and replication
US7721077B2 (en) * 2006-12-11 2010-05-18 Intel Corporation Performing endian conversion
US8667250B2 (en) * 2007-12-26 2014-03-04 Intel Corporation Methods, apparatus, and instructions for converting vector data
JP2009230591A (ja) * 2008-03-25 2009-10-08 Panasonic Corp 情報処理装置
US20120191956A1 (en) * 2011-01-26 2012-07-26 Advanced Micro Devices, Inc. Processor having increased performance and energy saving via operand remapping
CN103460180B (zh) * 2011-03-25 2017-04-26 飞思卡尔半导体公司 带有断言寄存器的处理器系统、计算机系统和用于管理断言的方法
CN104011672A (zh) * 2011-12-30 2014-08-27 英特尔公司 转置指令

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02291888A (ja) * 1989-05-02 1990-12-03 Takeya:Kk パチンコ島台における呼出表示装置
JPH0451981A (ja) * 1990-06-19 1992-02-20 San Denshi Kk 自動表示装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3348207A (en) * 1963-12-20 1967-10-17 Control Data Corp Data exchanger
US3930232A (en) * 1973-11-23 1975-12-30 Raytheon Co Format insensitive digital computer
US4509144A (en) * 1980-02-13 1985-04-02 Intel Corporation Programmable bidirectional shifter
US4373180A (en) * 1980-07-09 1983-02-08 Sperry Corporation Microprogrammed control system capable of pipelining even when executing a conditional branch instruction
US4437166A (en) * 1980-12-23 1984-03-13 Sperry Corporation High speed byte shifter for a bi-directional data bus
US4556978A (en) * 1983-07-20 1985-12-03 Sperry Corporation Error checked high speed shift matrix
GB8406846D0 (en) * 1984-03-16 1984-04-18 British Telecomm Digital filters
US4653019A (en) * 1984-04-19 1987-03-24 Concurrent Computer Corporation High speed barrel shifter
EP0198341B1 (en) * 1985-04-03 1992-07-15 Nec Corporation Digital data processing circuit having a bit reverse function
ATE82412T1 (de) * 1986-02-06 1992-11-15 Mips Computer Systems Inc Funktionseinheit fuer rechner.
US4814976C1 (en) * 1986-12-23 2002-06-04 Mips Tech Inc Risc computer with unaligned reference handling and method for the same
EP0282969A3 (en) * 1987-03-18 1989-03-15 Hitachi, Ltd. Computer system having byte sequence conversion mechanism
JPS6491228A (en) * 1987-09-30 1989-04-10 Takeshi Sakamura Data processor
JPS6428752A (en) * 1987-07-24 1989-01-31 Toshiba Corp Data processor
US5132898A (en) * 1987-09-30 1992-07-21 Mitsubishi Denki Kabushiki Kaisha System for processing data having different formats
US4918624A (en) * 1988-02-05 1990-04-17 The United States Of America As Represented By The United States Department Of Energy Vector generator scan converter
DE3886739D1 (de) * 1988-06-02 1994-02-10 Itt Ind Gmbh Deutsche Einrichtung zur digitalen Signalverarbeitung.
JP2633331B2 (ja) * 1988-10-24 1997-07-23 三菱電機株式会社 マイクロプロセッサ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02291888A (ja) * 1989-05-02 1990-12-03 Takeya:Kk パチンコ島台における呼出表示装置
JPH0451981A (ja) * 1990-06-19 1992-02-20 San Denshi Kk 自動表示装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998044409A1 (fr) * 1997-04-03 1998-10-08 Seiko Epson Corporation Micro-ordinateur, dispositif electronique et procede de traitement d'information

Also Published As

Publication number Publication date
GB2229832B (en) 1993-04-07
FR2645293A1 (fr) 1990-10-05
IT9019824A0 (it) 1990-03-27
FR2645293B1 (ja) 1994-12-02
GB2229832A (en) 1990-10-03
US5948099A (en) 1999-09-07
IT9019824A1 (it) 1991-09-27
GB9003070D0 (en) 1990-04-11
IT1239828B (it) 1993-11-15
DE4010119A1 (de) 1990-10-04
DE4010119C2 (de) 1995-10-26
HK107293A (en) 1993-10-22

Similar Documents

Publication Publication Date Title
JPH02285426A (ja) マイクロプロセツサおよびフオーマット変換方法
US5572713A (en) System and method for obtaining correct byte addresses by using logical operations on 2 least significant bits of byte address to facilitate compatibility between computer architectures having different memory orders
US4814976A (en) RISC computer with unaligned reference handling and method for the same
US5826096A (en) Minimal instruction set computer architecture and multiple instruction issue method
US6061783A (en) Method and apparatus for manipulation of bit fields directly in a memory source
US6446190B1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
US6754810B2 (en) Instruction set for bi-directional conversion and transfer of integer and floating point data
TWI544411B (zh) 緊縮旋轉處理器、方法、系統與指令
EP0743593A1 (en) Replication of data
EP0541678A1 (en) ARITHMETIC UNIT FOR STRUCTURAL ARITHMETIC.
US5682531A (en) Central processing unit
TWI747881B (zh) 將來源緊縮資料劃分為巷道的處理器、方法、系統及指令
TW201732637A (zh) 執行向量位元混洗的方法與裝置
JPH11212786A (ja) レジスタベースデータ処理のためのデータパスおよび方法
KR940005202B1 (ko) 비트 순서 전환 장치
US6542989B2 (en) Single instruction having op code and stack control field
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
US4771376A (en) Processor
EP1088266B1 (en) Parallel data processing
JP2003502753A (ja) レジスタスタックを備えるデータプロセッサ
EP4011051B1 (en) A network packet processor for processing a data packet
CN100465880C (zh) 移动位字段的方法和程控单元
Jacob The risc-16 instruction-set architecture
JPS59106047A (ja) マイクロコンピユ−タ
JPH0319029A (ja) データ処理装置