JPH06124201A - コンピュータにおけるバイト順番スイッチング方法及び装置 - Google Patents

コンピュータにおけるバイト順番スイッチング方法及び装置

Info

Publication number
JPH06124201A
JPH06124201A JP3197849A JP19784991A JPH06124201A JP H06124201 A JPH06124201 A JP H06124201A JP 3197849 A JP3197849 A JP 3197849A JP 19784991 A JP19784991 A JP 19784991A JP H06124201 A JPH06124201 A JP H06124201A
Authority
JP
Japan
Prior art keywords
byte
program
address
bits
machine
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.)
Granted
Application number
JP3197849A
Other languages
English (en)
Other versions
JP3556955B2 (ja
Inventor
Larry B Weber
ビイ. ウエーバー ラリー
Earl A Killian
エイ. キリアン アール
Mark I Himelstein
アイ. ヒメルスタイン マーク
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.)
MITSUPUSU COMPUTER SYST Inc
MIPS Computer Systems Inc
Original Assignee
MITSUPUSU COMPUTER SYST Inc
MIPS Computer Systems Inc
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 MITSUPUSU COMPUTER SYST Inc, MIPS Computer Systems Inc filed Critical MITSUPUSU COMPUTER SYST Inc
Publication of JPH06124201A publication Critical patent/JPH06124201A/ja
Application granted granted Critical
Publication of JP3556955B2 publication Critical patent/JP3556955B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes

Abstract

(57)【要約】 (修正有) 【目的】ビッグエンディアン又はリトルエンディアンの
何れかのアーキテクチャを使用して与えられたコンピュ
ータがプログラムを稼動することを可能とする方法及び
装置を提供する。 【構成】本方法は、1つのアーキテクチャにおけるバイ
トアドレスの下位2ビットと2進3との排他的OR処理
が、そのバイトアドレスを他方のアーキテクチャにおけ
る等価なバイトアドレスへ変換するという事実を使用し
ている。本方法は、好適実施例においてはソフトウエア
で実現されるが、ハードウエアで実現することも可能で
ある。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデジタルコンピュータの
分野に関するものである。更に詳細には、少なくとも2
つの異なったバイト順番の内の何れかを使用するプログ
ラムをコンピュータが稼動することを可能とする方法及
び装置に関するものである。
【0002】
【従来の技術】異なったコンピュータシステムは、それ
らのメモリ内においてデータのワードを異なった態様で
組織化することが知られている。あるコンピュータで
は、最小桁ビットが最下位のアドレスに存在するように
データのワードを格納する。このような装置は、所謂
「リトルエンディアン(Little Endia
n)」(尚、「LE」とも省略する)アーキテクチャを
有している。その他のコンピュータは、最大桁ビット
(又は、ある場合においては、符号ビット)を最下位の
アドレスに存在させた状態でデータを格納する。これら
の装置は「ビックエンディアン(Big Endia
n)」(尚、「BE」とも省略する)アーキテクチャを
有している。これらのデータ組織システムについてはよ
り詳細に多数の文献に記載されている。そのような文献
の1つとしては、Cohen著「聖戦及び平和への希求
に関し(On Holy Wars and a Pl
ea for Peace)」、コンピュータ、10/
81、pp.48−54の文献がある。
【0003】マシンがBEであるか又はLEであるかと
いうことは、その特定のマシン内においては殆ど差異を
生ずることはない。各アーキテクチャはそれ自身の支持
者を有しているが、両方のアーキテクチャは等しく有利
性のあるものであると一般的に理解されている。異なっ
たアーキテクチャのマシンが相互作用を行なわねばなら
ない場合、又は一方のタイプのマシンに対して書かれた
ソフトウエアが異なったタイプのマシン上で稼動される
場合に、2つのアーキテクチャを使用することは問題と
なる。これらの状態においては、一方のアーキテクチャ
に従って一方のマシン内に格納されたデータ又はプログ
ラムは、異なったアーキテクチャのマシンによって誤解
されることがある。更に、データワードの一部にアクセ
スするか又は処理する命令は、著しく異なった結果を有
することとなる。
【0004】リトルエンディアンマシンとビッグエンデ
ィアンマシンとの間の両立性が欠如するために、それら
の間での適合性を改善するための多数の試みがなされて
いる。これらの試みの殆どはハードウエア装置の形態と
なり、通常シフトレジスタと種々の論理ゲートの組合わ
せから構成されている。このようなハードウエアはBE
命令とLE命令の両方が動作することを可能とするもの
ではあるが、このようなハードウエアはコンピュータシ
ステムに複雑性を加え且つその速度を減少させる。この
ような結果は不所望なものである。
【0005】
【課題を解決するための手段】本発明は、その実施形態
の1つにおいては、殆どのマイクロプロセサと適合性が
ありLEマシン上でBEプログラムを稼動すること又は
その逆を行なうことを可能とするソフトウエアモジュー
ルを供給することにより従来技術の既知の欠点を解消し
ている。
【0006】本モジュールは、オペレーティングシステ
ムソフトウエアの一部であり、且つ4バイトのデータを
有するコンピュータワードの場合、1個のワードのアド
レスの下位2ビットと2進3とをXOR処理することは
反対のバイト順番のマシンに対する所望のバイトをアド
レスすることとなるという事実を使用している。本明細
書では4バイトワードでの動作についてのみ説明する
が、本発明は異なった数のバイトを有するワードと共に
使用することが可能であることは勿論である。
【0007】本発明のソフトウエアでの実現及びハード
ウエアでの実現の両方が可能である。ソフトウエアで実
現する場合には、何等付加的な又は特別なハードウエア
を必要とするものではないが、同一の機能を達成するた
めにはハードワイヤードの装置よりも稼動速度は遅い。
従って、ある状況下においては、本発明のハードウエア
での実現の場合が望ましい。ハードウエアでの実現の場
合、1個のレジスタにおける1個のビットが、ビッグエ
ンディアン又はリトルエンディアンを表わすためにセッ
ト状態とされるか又は非セット状態とされる。該ビット
は、ある部分のワード命令がエンディアンであることが
変更されねばならないことを表わしている。
【0008】
【実施例】本発明は、BE順番又はLE順番の何れかに
対して意図されているプログラムを単一のコンピュータ
でラン即ち稼動することを可能としている。エンディア
ンスイッチングと呼ばれる簡単な技術が、1つのコンピ
ュータが、僅かな性能のオーバーヘッドでもって、異な
ったバイト順番のコンピュータを模倣することを可能と
している。
【0009】殆どのコンピュータはワードアドレス型マ
シンである。平均的な条件下においては、データは、ワ
ードの部分ではなく、ワードでアクセスされる。異なっ
たバイト順番の2つのマシンは、ワードに関しては、極
めて類似している。ワードを使用するか又は参照する動
作に関して、ビッグエンディアンマシンとリトルエンデ
ィアンマシンとの間では、マシン動作は同一であり且つ
データはワードで格納される。ワードを参照するにすぎ
ないプログラムは、何れかのバイト順番のマシン上でラ
ン即ち稼動する。
【0010】この原理は、図1に示したロードワード命
令によって示され、その命令はLEマシン用のものであ
る。BEマシンが使用された場合には、同一のロードワ
ード命令は同一の態様で機能する。この説明において
は、1つのアドレスは、ワードアドレスとそれに続く2
ビットバイトアドレスとから構成される一対のシンボル
(記号)によって表現される。
【0011】BEマシンとLEマシンとの間の差異は、
本明細書においては、バイトメモリ操作を使用する場合
のアドレスの下位2ビットの解釈によって示される。L
Eマシンは、アドレスが下位2ビットとして00を有す
る場合に最小桁ビット(LSB)を有する8ビットを選
択する。BEマシンは、同一のアドレスビットを使用す
る場合に、最大桁ビット(MSB)を有する8ビットを
選択する。あるBEマシンにおいては、選択されたバイ
トはそのデータに対する符号ビットを有している。
【0012】図2はBEマシン及びLEマシンの両方に
対しロードバイト操作を示している。図2において、所
望のバイトを有するワードは、ワードアドレスのみを使
用するメモリから抽出され且つアライメントレジスタ内
に配置される。両方のマシンにおいて、パワーアップ
(始動)ルーチン期間中に初期化されるreset−t
ime set endianフラッグを使用して、何
れのタイプのマシンが使用されているかを表わし且つど
の8ビットが該レジスタ内のLSB位置内に配置される
べきであるかを表わす。図2に示した如く、BEメモリ
は符号及び最大桁ビットを最下位バイトアドレス内に配
置させ、且つLEメモリは最小桁ビットを同一の位置内
に配置させる。
【0013】図3は、最小桁ビット(LSB)又は最大
桁ビット(MSB)の何れかから開始してバイトに番号
付けをするために2つの下位アドレスビットを使用する
ことにより、BEマシン又はLEマシンの何れかを形成
することが可能であるという原理を示している。図示例
においては、BEマシン用の下位2ビット00によって
アドレスされるバイトは「M」を有しており、且つ2つ
の上位ビット11は「S」を有するバイトをアドレスす
る。LEマシンの場合、その状態は全く逆であり、即ち
00によってアドレスされるバイトは「0」を有してお
り、且つ11によってアドレスされるバイトは「M」を
有している。図示した如く、何れかのマシンによって使
用されるバイトアドレスと「11」(2進3)とを排他
的OR(XOR)処理すると、反対のデータ順番規則を
使用して同一のデータをアクセスするための正確なバイ
トアドレスが得られる。図4は、更に、与えられたアド
レスのオフセットを単に変化させるだけで与えられたマ
シンを異なったバイト順番のマシンのように動作させる
ことが可能であるという点において、これら2つのタイ
プのマシンがどのようにして実際に極めて類似している
ものであるかということを示している。注意すべきこと
であるが、異なったマシンに対するオフセットは、この
例の場合においては、互いに鏡像関係にある。
【0014】最初は、ワードに関してBEマシンとLE
マシンとを同一のものとして取扱うことは誤ったものの
ように見える。一般的に、BEマシン及びLEマシンの
両方が同一のASCIIファイルから読取ることが可能
であることが知られており、それらのマシンがワード長
2進データを交換する場合に問題が発生する。連続的な
バイトが1つのファイルに書込まれる場合、両方のタイ
プのマシンに対する結果は予想通りのものである。しか
しながら、その組のバイトを単一のワードとして取扱う
場合、その結果は、しばしば、誤ったものである。これ
らの矛盾は、各マシンの入力/出力(I/O)システム
が、ワードをどのようにして一連のバイトへ分解するか
ということを知っているということを知ることにより説
明することが可能である。全てのI/O操作はキャラク
タ(文字)指向型である。各システム及びマシンは、そ
の内部に、ワードをそのI/O装置の一部として組立て
且つ分解するための手段が組込まれている。図5はファ
イル15内の一連のキャラクタ、即ち文字列を示してお
り、且つこれらの文字がどのようにしてBEマシン20
及びLEマシン25によって1つのワード内にマップさ
れるかということを示している。この図が示す如く、マ
シンがBEであるか又はLEであるかということを確立
するものは、どのようにしてプロセサが1つのワードか
らバイトを抽出するかということとどのようにしてI/
Oシステムがワードを組立て且つ分解するかということ
との組合わせである。バイト順番のエミュレーション 前述した説明から明らかな如く、適切なバイト順番の取
扱いは2つの事柄によって制御され、即ち、下位アドレ
スビットの解釈及びバイトストリームとメモリ内のワー
ドとの間の変換のためのI/O規則である。これらの両
方の事柄がハードウエアか又はソフトウエアの何れかで
解決することが可能である場合には、何れのバイト順番
においてもプログラムを稼動するマシンを形成すること
が可能である。
【0015】第一の決まりである下位アドレスビットの
解釈は、本発明の好適実施例におけるコンピュータの一
部としてソフトウエア内において実現されており、且つ
第一のバイト順番の2個の下位ビットを2進3とXOR
処理することにより1つのバイト順番におけるバイトア
ドレスは他方のバイト順番のバイトアドレスをシュミュ
レートさせることが可能であるという観察に依存してい
る。このタスクを実施するためのソフトウエアは、プロ
グラムのコンパイル時間において又はその後に機能す
る。例えば、バイト順番(byte order)を反
転させるための本発明を包含するコンピュータは、ロー
ドされるべきプログラムを読取り、且つどのようにして
バイトが1つのワードにパックされるかという異なった
決まりを考慮に入れるために各部分的なワードメモリ参
照を調節することが可能である。一貫性を持ってバイト
順番を変化させるか乃至は再配列させるために変換プロ
グラム内には3つの標準的なタイプのバイトアドレス動
作用命令が設けられていなければならない。これらの3
つの場合を図6に示してある。
【0016】ケース1においては、ベースレジスタが既
にワード上に整合されていることが知られている。この
場合においては、新たなベースアドレスの計算は、シス
テムコンパイラによって実施され、それは、単に、オフ
セットと2進3とをXOR処理して適切な変位を与える
にすぎない。ケース2においては、オフセットが0であ
るか又はオフセットが存在せず、且つベース整合は未知
である。このような態様でバイトがアドレスされる場
合、ベースレジスタ内の値は2進3とXOR処理され
る。その結果は正しいオフセットとして使用される。ベ
ース整合又はオフセット整合の何れもが知られていない
場合には、図6(C)に示した3つの命令を使用して、
新たな順番で正しいバイトをアドレスする。これらの命
令は非常に高速で稼動し、従ってエキストラな命令を実
施することがシステムの性能に影響を与えることは殆ど
ない。
【0017】上述した如き3つの場合の全ては、低アド
レスビットの適切な解釈を取扱っている。本発明の好適
実施例はこれらのアドレス変換を達成するためにソフト
ウエアを使用しているが、システムプロセサに対するハ
ードウエアの修正により同一の目的を達成することが可
能である。あるプロセサでは、プロセサのバイト順番を
システムのリセット時においてセットすることを可能と
している。この場合においては、ユーザモードプログラ
ムを使用して、プログラム(タスク)毎にマシンのバイ
ト順番を調節することは比較的簡単である。このことを
行なうための最も簡単な方法は、前のプログラム又は最
後のリセットにおける何れかにおいて特定されたバイト
順番と同一であるか又は異なったバイト順番で新たなプ
ロセスを稼動するか否かを表わすビットをステータスレ
ジスタ内に定義することである。このフラッグをセット
することは、その新たなプログラムの期間中、バイト順
番において不変的なシフトを発生させる。この技術がハ
ードウエアで実現される場合には、システムは、異なっ
た「エンディアン特性」を表わすビットがターンオンさ
れたことを検知する。ワードの一部をアクセスする命令
は変更されることはない。その代わりに、32ビットア
ドレスバスは分岐経路を有している。アドレスの内の3
0ビットはロードアライナレジスタ内に配置される。残
りの2ビットは、2進3とXOR処理されて、正しいバ
イトアドレスを得る。次いで、これらの30ビット及び
2ビットはロードアライナにおいて再結合される。この
方法は、システムの性能を劣化させることはない。なぜ
ならば、プログラムは、リセットタイムフラッグが表示
されたバイト順番へセットされた如くに正確に動作する
からである。これらの操作は、システムがユーザモード
にあり且つ逆エンディアンビットがオンである場合にの
み発生する。影響される命令は、ロード命令及びストア
(格納)命令等である。
【0018】第二の変換、即ちワードのI/Oシステム
内のバイトストリームへの及び該バイトストリームから
の変換も、好適実施例においては、ソフトウエアにおい
て達成される。読取られるか又は書込まれるデータの全
てのバッファを一様にワードスワッピングすることによ
り、マシンの内蔵されている決まりを受付けることが可
能である。ワードスワッピングは、2つの外側のバイト
と2つの内側のバイトとを交換する操作である(即ち、
バイト0と3とをスイッチし且つバイト1と2とをスイ
ッチする)。ワードスワッピング及びそれを実現するの
に必要なコードを図7に示してある。エンディアンスイッチャ(Endian Switch
er)の構成 上に説明した両方の決まりを実現する幾つかの別の方法
が可能である。バイトオーダ、即ちバイト順番でのエミ
ュレーションのために本明細書で説明したハードウエア
の修正を多くのマシンが有するものではないので、純粋
なソフトウエアのエミュレーションについても検討す
る。
【0019】LEプログラムとBEプログラムの両方で
稼動するコンピュータがハードウエア修正を有するもの
でない場合には、変換プログラムを使用することが可能
である。そのプログラムは、プログラムと初期化したデ
ータの両方をワードスワッピングする。又、部分的なワ
ードを適切にアドレスするためにコードを「再書込み」
することが必要な場合がある。マシン内にプログラムを
エンタする場合にその修正を行なうことが可能であり、
且つその変更したプログラムはその変換した形態で格納
することが可能である。
【0020】異なったバイトオーダ(バイト順番)装置
のネットワークを有する環境においては、何れかのマシ
ンに関して何れかのプログラムを実行することを所望す
る場合、そのバイト順番は実行の前に固定させることは
不可能である。この場合、プログラムはその実行の一部
として修正され、その変換はプログラムがシステムメモ
リ内に移動される場合に発生する。その変換プログラム
の実行時間は小さく、且つ部分的ワードメモリ操作を修
正するための作業量も比較的小さい。アドレス内の下位
2ビットを解釈するためにマシンが前に説明したハード
ウエア修正を有している場合には、必要とされる唯一の
プログラム修正は、プログラムと初期化データとをワー
ドスワッピングすることである。アプリケーションプロ
グラムが実際にロードされる迄ワードスワッピングが遅
延される場合(要求に応じてのワードスワッピング)、
変換プロセスのために必要とされるマシンのオーバーヘ
ッドは、そのプログラムの稼動時間全体に亘って償却さ
れる。
【0021】I/Oシステム内のデータのバイトの直列
化に関連するBEマシンとLEマシンとの間の差異は、
データが出力バッファへ書込まれるか又はそれから読取
られる場合に取扱われる。出力バッファ内の全てのデー
タは、ディスクから物理的なI/Oを読取った直後か又
はディスクへ物理的なI/Oを書込む直前にワードスワ
ッピングされる。オペレーティングシステムのサポート オペレーティングシステムは、反対のバイト順番をエミ
ュレートし、且つ稼動中のプログラムのシステム仮定を
エミュレートすることが可能でなければならない。この
ことは、適合性のあるシステムコールベクトル及び、多
分、通過中のデータ構成の変換の両方を必要とする場合
がある。全ての2進ロードモジュールは、そのバイト順
番を、該モジュールの開始時にエンコードさせる。この
ことは、オペレーティングシステムに対して、プログラ
ムのシステム仮定をエミュレートするために必要とされ
るアクションについて通知する。
【0022】UNIXシステム間の類似性は、他のシス
テムのオペレーティングシステムインターフェースの多
くのものを比較的容易にサポートすることを可能として
いる。システムコールベクトルにおいて適合性のない要
素が存在する場合には、それらの要素は幾つかの方法で
処理することが可能である。オペレーティングシステム
が異なった「エンディアン特性」の2進数を識別し且つ
別のベクトルを選択することが可能である。割当てたシ
ステムコール内にオーバーラップが存在しないか又は僅
かのオーバラップが存在するにすぎない場合には、反対
のエンディアンシステムコールへのエントリは、通過中
のデータ構成(存在する場合)を変化させ且つ元のシス
テムコールへ分岐することを可能とする。
【0023】プログラムは、入力/出力メカニズムが文
字データをワードへ変換すると仮定するバイト順番でフ
ァイルとして格納される。従って、プログラムの組織
は、そのプログラムが実行される前に変更されねばなら
ない。前述した如く、このことは比較的容易である。な
ぜならば、ロードモジュール内の全ての命令及び全ての
初期化データワードがスワッピングされるからである。
バイトがスイッチされる1つの理由は、ネットワークイ
ンターフェースがバイト指向型であり、且つBEからL
Eへ移動し且つ帰還する場合に本質的にワードをスワッ
ピングするからである。従って、補償が必要とされる。
【0024】図8はソフトウエアで反対のバイト順番を
シュミュレートする場合の影響の推定を示している。前
述した如く、ハードウエア拡張は、プログラムの計算部
分の期間中に何等性能に悪影響を発生することはない。
なぜならば、プログラムは、他のバイト順番のマシン上
で稼動するように正確に稼動するからである。図8に示
した如く、ソフトウエアのペナルティの範囲は2乃至
8.8%である。入力/出力バッファの変換は、ある性
能損失を発生する。これは単にファイルを読取る場合よ
りも、ファイルを読取り且つワードスワッピングするた
めに11.7%の程度一層長くなっている。結論 図示し且つ本明細書において説明したソフトウエアはL
E又はBEマシンの何れかの上でプログラムを稼動する
ことを可能とする。ディスク又はメモリ上に格納された
データを包含する異なったバイト順番のシステム間のデ
ータ交換は本発明の特定の示唆の範囲内のものではない
が、本明細書の記載事項は、これらの転送によって示さ
れる問題を解消する場合にも有用なものである。
【0025】以上、本発明の具体的実施の態様について
詳細に説明したが、本発明は、これら具体例にのみ限定
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。
【図面の簡単な説明】
【図1】 メモリからワードをローディングするプロセ
スを示した説明図。
【図2】 命令を稼動するマシンのタイプに依存して
「ロードバイト(Load Byte)」命令がどのよ
うにして異なったバイトをリコールするかを示した説明
図。
【図3】 XOR命令を使用してどのようにバイト順番
を変換することが可能であるかを示した説明図。
【図4】 マシンのオフセットの変更がどのようにして
マシンの性質を変更することが可能であるかを示した説
明図。
【図5】 ファイルからのデータの転送がどのようにし
てバイト順番に依存するかを示した説明図。
【図6】 1つのタイプのマシンに対するロードをどの
ようにして異なったタイプのマシンに対するロードへ変
換することが可能であるかを示した説明図。
【図7】 ワード内のバイトのメモリ位置をスワッピン
グする状態を示した説明図。
【図8】 バイト順番をエミュレートするために必要な
可能なマシンのオーバーヘッドを示した説明図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アール エイ. キリアン アメリカ合衆国, カリフォルニア 94022, ロス アルトス, パイン レ ーン 33 (72)発明者 マーク アイ. ヒメルスタイン アメリカ合衆国, カリフォルニア 95129, サン ノゼ, ハッピー バレ ー アベニュー 1331

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 第一の予め定めたバイト順番アドレス方
    法を使用するプログラムを第二の予め定めたバイト順番
    アドレス方法へ変換する方法において、データのバイト
    に関し動作する前記プログラム内の全ての命令を見付け
    出し、該バイトアドレスの下位2ビットと2進3と排他
    的OR処理し、且つ該バイトアドレスの下位2ビットを
    前記排他的OR処理操作の結果と置換する、上記各ステ
    ップを有することを特徴とする方法。
  2. 【請求項2】 第一の予め定めたバイト順番アドレス方
    法を使用するプログラムを第二の予め定めたバイト順番
    アドレス方法へ変換する装置において、データのバイト
    に関し動作する前記プログラム内の全ての命令を見付け
    出す手段、該バイトアドレスの下位2ビットと2進3と
    を排他的OR処理する手段、該バイトアドレスの下位2
    ビットを前記排他的OR処理操作の結果と置換する手
    段、を有することを特徴とする装置。
  3. 【請求項3】 予め定めたバイト順番アドレス方法を持
    ったデジタルコンピュータにおけるコンパイラであっ
    て、同一又は異なったバイト順番アドレス方法のプログ
    ラムをコンパイルすることの可能なコンパイラであっ
    て、新たなプログラムが以前にコンパイルしたプログラ
    ムと異なったバイト順番アドレス方法を有するか否かを
    検知する手段、コンピュータワードの一部をアクセスす
    る命令を前記コンピュータの予め定めたバイト順番アド
    レス方法へ変換する手段、を有することを特徴とするコ
    ンパイラ。
  4. 【請求項4】 請求項3において、前記命令を変換する
    手段が、更に、前記バイトアドレスの下位2ビットを検
    知する手段、前記バイトアドレスの下位2ビットと2進
    3とを排他的OR処理する手段、を有することを特徴と
    するコンパイラ。
JP19784991A 1990-08-09 1991-08-07 コンピュータにおけるバイト順番スイッチング方法及び装置 Expired - Lifetime JP3556955B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US56492390A 1990-08-09 1990-08-09
US564923 1990-08-09

Publications (2)

Publication Number Publication Date
JPH06124201A true JPH06124201A (ja) 1994-05-06
JP3556955B2 JP3556955B2 (ja) 2004-08-25

Family

ID=24256454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19784991A Expired - Lifetime JP3556955B2 (ja) 1990-08-09 1991-08-07 コンピュータにおけるバイト順番スイッチング方法及び装置

Country Status (4)

Country Link
US (2) US5398328A (ja)
EP (1) EP0470570B1 (ja)
JP (1) JP3556955B2 (ja)
DE (1) DE69124437T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002527813A (ja) * 1998-10-10 2002-08-27 ヴィクトリア・ユニバーシティ・オブ・マンチェスター エンディアン変換方法
US6806875B2 (en) 1995-02-28 2004-10-19 Renesas Technology Corp. Data processing apparatus and shading apparatus
WO2010029794A1 (ja) * 2008-09-12 2010-03-18 株式会社ルネサステクノロジ データ処理装置及び半導体集積回路装置

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0470570B1 (en) * 1990-08-09 1997-01-29 Silicon Graphics, Inc. Method and apparatus for byte order switching in a computer
JP2763207B2 (ja) * 1991-04-25 1998-06-11 株式会社東芝 情報処理装置
US5408664A (en) * 1992-06-19 1995-04-18 Silicon Graphics, Incorporated System and Method for booting computer for operation in either of two byte-order modes
EP0650613A1 (en) * 1992-07-13 1995-05-03 Texas Instruments France Data-processing system with a device for handling program loops
FR2693586B1 (fr) * 1992-07-13 1994-09-30 Texas Instruments France Dispositif de lecture/écriture de données en mode sélectif dans un système de traitement de données.
JP3187539B2 (ja) * 1992-07-28 2001-07-11 株式会社東芝 データ転送装置
EP0629303A1 (en) * 1992-12-21 1994-12-21 Olivetti Advanced Technology Center, Inc. Apparatus, system and method for facilitating communication between components having different byte orderings
US5519842A (en) * 1993-02-26 1996-05-21 Intel Corporation Method and apparatus for performing unaligned little endian and big endian data accesses in a processing system
US5524256A (en) * 1993-05-07 1996-06-04 Apple Computer, Inc. Method and system for reordering bytes in a data stream
US5898857A (en) * 1994-12-13 1999-04-27 International Business Machines Corporation Method and system for interfacing an upgrade processor to a data processing system
US5603041A (en) * 1994-12-13 1997-02-11 International Business Machines Corporation Method and system for reading from a m-byte memory utilizing a processor having a n-byte data bus
US5928349A (en) 1995-02-24 1999-07-27 International Business Machines Corporation Mixed-endian computing environment for a conventional bi-endian computer system
US5687337A (en) * 1995-02-24 1997-11-11 International Business Machines Corporation Mixed-endian computer system
US5634013A (en) * 1995-05-03 1997-05-27 Apple Computer, Inc. Bus bridge address translator
US5828853A (en) * 1995-05-08 1998-10-27 Apple Computer, Inc. Method and apparatus for interfacing two systems operating in potentially differing Endian modes
US5778406A (en) * 1995-06-30 1998-07-07 Thomson Consumer Electronics, Inc. Apparatus for delivering CPU independent data for little and big endian machines
US5907865A (en) * 1995-08-28 1999-05-25 Motorola, Inc. Method and data processing system for dynamically accessing both big-endian and little-endian storage schemes
US5819117A (en) * 1995-10-10 1998-10-06 Microunity Systems Engineering, Inc. Method and system for facilitating byte ordering interfacing of a computer system
US5761490A (en) * 1996-05-28 1998-06-02 Hewlett-Packard Company Changing the meaning of a pre-decode bit in a cache memory depending on branch prediction mode
US5781923A (en) * 1996-05-28 1998-07-14 Hewlett-Packard Company Adding a field to the cache tag in a computer system to indicate byte ordering
US5898896A (en) * 1997-04-10 1999-04-27 International Business Machines Corporation Method and apparatus for data ordering of I/O transfers in Bi-modal Endian PowerPC systems
US5938763A (en) * 1997-08-06 1999-08-17 Zenith Electronics Corporation System for transposing data from column order to row order
US7616200B1 (en) 1998-06-12 2009-11-10 3Dlabs Inc. Ltd. System for reducing aliasing on a display device
WO2000004528A1 (en) 1998-07-17 2000-01-27 Intergraph Corporation System for displaying a television signal on a computer monitor
US6577316B2 (en) 1998-07-17 2003-06-10 3Dlabs, Inc., Ltd Wide instruction word graphics processor
US6518971B1 (en) 1998-07-17 2003-02-11 3Dlabs Inc. Ltd. Graphics processing system with multiple strip breakers
WO2000004482A2 (en) 1998-07-17 2000-01-27 Intergraph Corporation Multi-processor graphics accelerator
US6181355B1 (en) 1998-07-17 2001-01-30 3Dlabs Inc. Ltd. Graphics processing with transcendental function generator
US6157393A (en) * 1998-07-17 2000-12-05 Intergraph Corporation Apparatus and method of directing graphical data to a display device
US6480913B1 (en) * 1998-07-17 2002-11-12 3Dlabs Inc. Led. Data sequencer with MUX select input for converting input data stream and to specific output data stream using two exclusive-or logic gates and counter
US6188410B1 (en) 1998-07-17 2001-02-13 3Dlabs Inc. Ltd. System for processing vertices from a graphics request stream
US7518616B1 (en) 1998-07-17 2009-04-14 3Dlabs, Inc. Ltd. Graphics processor with texture memory allocation system
DE69929450D1 (en) * 1998-10-10 2006-04-06 Transitive Ltd Endian-transformation
US6674440B1 (en) 1999-04-05 2004-01-06 3Dlabs, Inc., Inc. Ltd. Graphics processor for stereoscopically displaying a graphical image
US6671219B1 (en) * 1999-05-28 2003-12-30 Hitachi, Ltd. Storage, storage method, and data processing system
US6691307B2 (en) * 1999-08-03 2004-02-10 Sun Microsystems, Inc. Interpreter optimization for native endianness
US6535957B1 (en) 1999-11-09 2003-03-18 International Business Machines Corporation System bus read data transfers with bus utilization based data ordering
US6360297B1 (en) 1999-11-09 2002-03-19 International Business Machines Corporation System bus read address operations with data ordering preference hint bits for vertical caches
US6349360B1 (en) * 1999-11-09 2002-02-19 International Business Machines Corporation System bus read address operations with data ordering preference hint bits
US6874063B1 (en) * 1999-11-09 2005-03-29 International Business Machines Corporation System bus read data transfers with data ordering control bits
US6819325B2 (en) 2000-03-07 2004-11-16 Microsoft Corporation API communications for vertex and pixel shaders
US7159041B2 (en) * 2000-03-07 2007-01-02 Microsoft Corporation Method and system for defining and controlling algorithmic elements in a graphics display system
US6567884B1 (en) 2000-03-21 2003-05-20 Cypress Semiconductor Corp. Endian-controlled counter for synchronous ports with bus matching
JP3776732B2 (ja) * 2001-02-02 2006-05-17 株式会社東芝 プロセッサ装置
US20020116852A1 (en) * 2001-02-27 2002-08-29 Kock Lori Ann Mat for visual artwork and method of making same
US6828975B2 (en) * 2001-03-01 2004-12-07 Microsoft Corporation Method and system for managing graphics objects in a graphics display system
US6812923B2 (en) 2001-03-01 2004-11-02 Microsoft Corporation Method and system for efficiently transferring data objects within a graphics display system
US6831635B2 (en) * 2001-03-01 2004-12-14 Microsoft Corporation Method and system for providing a unified API for both 2D and 3D graphics objects
US7023431B2 (en) * 2001-03-01 2006-04-04 Microsoft Corporation Method and system for providing data to a graphics chip in a graphics display system
US6874150B2 (en) 2001-03-01 2005-03-29 Microsoft Corporation Method and system for maintaining connections between surfaces and objects in a graphics display system
KR100445637B1 (ko) * 2002-07-03 2004-08-25 삼성전자주식회사 엔디안 정보를 제공하는 컴퓨터 시스템 및 그 컴퓨터시스템의 데이터 전송 방법
US7404019B2 (en) * 2003-03-07 2008-07-22 Freescale Semiconductor, Inc. Method and apparatus for endianness control in a data processing system
JP4446373B2 (ja) 2003-03-19 2010-04-07 パナソニック株式会社 プロセッサ、データ共有装置
US20050114549A1 (en) * 2003-11-26 2005-05-26 Durham David M. Mechanism for extensible binary mappings for adaptable hardware/software interfaces
US7721069B2 (en) * 2004-07-13 2010-05-18 3Plus1 Technology, Inc Low power, high performance, heterogeneous, scalable processor architecture
US7634762B1 (en) 2005-04-19 2009-12-15 Paravirtual Corp. Selective post-compile conversion
US20180232427A1 (en) * 2017-02-13 2018-08-16 Raytheon Company Data structure endian conversion system
CN109976751B (zh) * 2019-03-28 2022-12-27 中科寒武纪科技股份有限公司 模型操作方法、相关装置及计算机可读存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4109310A (en) * 1973-08-06 1978-08-22 Xerox Corporation Variable field length addressing system having data byte interchange
US3916388A (en) * 1974-05-30 1975-10-28 Ibm Shifting apparatus for automatic data alignment
US4215402A (en) * 1978-10-23 1980-07-29 International Business Machines Corporation Hash index table hash generator apparatus
JPS6019809B2 (ja) * 1979-12-26 1985-05-18 株式会社日立製作所 デ−タ処理装置
US4654781A (en) * 1981-10-02 1987-03-31 Raytheon Company Byte addressable memory for variable length instructions and data
US4559614A (en) * 1983-07-05 1985-12-17 International Business Machines Corporation Interactive code format transform for communicating data between incompatible information processing systems
EP0236615B1 (en) * 1986-02-06 1992-11-11 Mips Computer Systems, Inc. Functional units for computers
US4999808A (en) * 1986-09-26 1991-03-12 At&T Bell Laboratories Dual byte order data processor
US4814976C1 (en) * 1986-12-23 2002-06-04 Mips Tech Inc Risc computer with unaligned reference handling and method for the same
JPS6428752A (en) * 1987-07-24 1989-01-31 Toshiba Corp Data processor
JP2748957B2 (ja) * 1987-09-30 1998-05-13 健 坂村 データ処理装置
US5132898A (en) * 1987-09-30 1992-07-21 Mitsubishi Denki Kabushiki Kaisha System for processing data having different formats
JP2633331B2 (ja) * 1988-10-24 1997-07-23 三菱電機株式会社 マイクロプロセッサ
US5265237A (en) * 1988-12-07 1993-11-23 Xycom, Inc. Byte swapping apparatus for selectively reordering bytes of an N-bit word communicated between an at computer and VME bus
EP0470570B1 (en) * 1990-08-09 1997-01-29 Silicon Graphics, Inc. Method and apparatus for byte order switching in a computer

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6806875B2 (en) 1995-02-28 2004-10-19 Renesas Technology Corp. Data processing apparatus and shading apparatus
US7064756B2 (en) 1995-02-28 2006-06-20 Renesas Technology Corporation Data processing apparatus and shading apparatus
JP2002527813A (ja) * 1998-10-10 2002-08-27 ヴィクトリア・ユニバーシティ・オブ・マンチェスター エンディアン変換方法
WO2010029794A1 (ja) * 2008-09-12 2010-03-18 株式会社ルネサステクノロジ データ処理装置及び半導体集積回路装置
JP2014179107A (ja) * 2008-09-12 2014-09-25 Renesas Electronics Corp 半導体集積回路装置
US9524237B2 (en) 2008-09-12 2016-12-20 Renesas Electronics Corporation Data processing device and semiconductor intergrated circuit device for a bi-endian system

Also Published As

Publication number Publication date
EP0470570A2 (en) 1992-02-12
EP0470570B1 (en) 1997-01-29
EP0470570A3 (en) 1993-06-30
DE69124437D1 (de) 1997-03-13
DE69124437T2 (de) 1997-07-03
US5572713A (en) 1996-11-05
JP3556955B2 (ja) 2004-08-25
US5398328A (en) 1995-03-14

Similar Documents

Publication Publication Date Title
JPH06124201A (ja) コンピュータにおけるバイト順番スイッチング方法及び装置
US6606743B1 (en) Real time program language accelerator
US6496922B1 (en) Method and apparatus for multiplatform stateless instruction set architecture (ISA) using ISA tags on-the-fly instruction translation
US3374466A (en) Data processing system
BR102020019657A2 (pt) aparelhos, métodos e sistemas para instruções de um acelerador de operações de matriz
JPS59117666A (ja) ベクトル処理装置
JPH08314898A (ja) マトリックス転置方法
JPS59501684A (ja) 目的命令ストリ−ムへ殆んど実時間で插入するためのソ−スおよび目的命令ストリ−ムの外部における加速式命令写像
JP3203401B2 (ja) データ処理装置
JPH08314718A (ja) データストリング生成方法、コンピュータ動作方法、コンピュータシステムによるマトリックス乗算方法、及びコンピュータ
PT803091E (pt) Sistema informatico
JPH10187661A (ja) コンピュータにおけるスカラ値をベクトルに記入する方法
JP2017509064A (ja) マスクド結果要素に伝搬する対応アンマスクド結果要素にソース要素を記憶するプロセッサ、方法、システム、及び命令
Hyde The art of assembly language
JP2003044273A (ja) データ処理装置及びデータ処理方法
US20030014550A1 (en) Method for transferring computer data from a packed to an unpacked data structure
US5504914A (en) Multi-level instruction boosting method using plurality of ordinary registers forming plurality of conjugate register pairs that are shadow registers to each other with different only in MSB
ul Rojas Conditional branching is not necessary for universal computation in von Neumann computers
WO2000077623A1 (en) Data processor with an arithmetic logic unit and a stack
JPS623461B2 (ja)
JP4465081B2 (ja) Vliwプロセッサにおける効率的なサブ命令エミュレーション
US20220261224A1 (en) Non-transitory computer-readable recording medium, function generation method, and information processing device
JPS6042966B2 (ja) デ−タ処理システム
EP1438644A2 (en) Method for fast compilation of preverified java bytecode to high quality native machine code
JP4709394B2 (ja) プログラムコード変換において使用する例外処理の方法および装置

Legal Events

Date Code Title Description
A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20031209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040312

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040413

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040514

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090521

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100521

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110521

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120521

Year of fee payment: 8

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120521

Year of fee payment: 8