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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/768—Data position reversal, e.g. bit reversal, byte swapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
Abstract
何れかのアーキテクチャを使用して与えられたコンピュ
ータがプログラムを稼動することを可能とする方法及び
装置を提供する。 【構成】本方法は、1つのアーキテクチャにおけるバイ
トアドレスの下位2ビットと2進3との排他的OR処理
が、そのバイトアドレスを他方のアーキテクチャにおけ
る等価なバイトアドレスへ変換するという事実を使用し
ている。本方法は、好適実施例においてはソフトウエア
で実現されるが、ハードウエアで実現することも可能で
ある。
Description
分野に関するものである。更に詳細には、少なくとも2
つの異なったバイト順番の内の何れかを使用するプログ
ラムをコンピュータが稼動することを可能とする方法及
び装置に関するものである。
らのメモリ内においてデータのワードを異なった態様で
組織化することが知られている。あるコンピュータで
は、最小桁ビットが最下位のアドレスに存在するように
データのワードを格納する。このような装置は、所謂
「リトルエンディアン(Little Endia
n)」(尚、「LE」とも省略する)アーキテクチャを
有している。その他のコンピュータは、最大桁ビット
(又は、ある場合においては、符号ビット)を最下位の
アドレスに存在させた状態でデータを格納する。これら
の装置は「ビックエンディアン(Big Endia
n)」(尚、「BE」とも省略する)アーキテクチャを
有している。これらのデータ組織システムについてはよ
り詳細に多数の文献に記載されている。そのような文献
の1つとしては、Cohen著「聖戦及び平和への希求
に関し(On Holy Wars and a Pl
ea for Peace)」、コンピュータ、10/
81、pp.48−54の文献がある。
いうことは、その特定のマシン内においては殆ど差異を
生ずることはない。各アーキテクチャはそれ自身の支持
者を有しているが、両方のアーキテクチャは等しく有利
性のあるものであると一般的に理解されている。異なっ
たアーキテクチャのマシンが相互作用を行なわねばなら
ない場合、又は一方のタイプのマシンに対して書かれた
ソフトウエアが異なったタイプのマシン上で稼動される
場合に、2つのアーキテクチャを使用することは問題と
なる。これらの状態においては、一方のアーキテクチャ
に従って一方のマシン内に格納されたデータ又はプログ
ラムは、異なったアーキテクチャのマシンによって誤解
されることがある。更に、データワードの一部にアクセ
スするか又は処理する命令は、著しく異なった結果を有
することとなる。
ィアンマシンとの間の両立性が欠如するために、それら
の間での適合性を改善するための多数の試みがなされて
いる。これらの試みの殆どはハードウエア装置の形態と
なり、通常シフトレジスタと種々の論理ゲートの組合わ
せから構成されている。このようなハードウエアはBE
命令とLE命令の両方が動作することを可能とするもの
ではあるが、このようなハードウエアはコンピュータシ
ステムに複雑性を加え且つその速度を減少させる。この
ような結果は不所望なものである。
の1つにおいては、殆どのマイクロプロセサと適合性が
ありLEマシン上でBEプログラムを稼動すること又は
その逆を行なうことを可能とするソフトウエアモジュー
ルを供給することにより従来技術の既知の欠点を解消し
ている。
ムソフトウエアの一部であり、且つ4バイトのデータを
有するコンピュータワードの場合、1個のワードのアド
レスの下位2ビットと2進3とをXOR処理することは
反対のバイト順番のマシンに対する所望のバイトをアド
レスすることとなるという事実を使用している。本明細
書では4バイトワードでの動作についてのみ説明する
が、本発明は異なった数のバイトを有するワードと共に
使用することが可能であることは勿論である。
ウエアでの実現の両方が可能である。ソフトウエアで実
現する場合には、何等付加的な又は特別なハードウエア
を必要とするものではないが、同一の機能を達成するた
めにはハードワイヤードの装置よりも稼動速度は遅い。
従って、ある状況下においては、本発明のハードウエア
での実現の場合が望ましい。ハードウエアでの実現の場
合、1個のレジスタにおける1個のビットが、ビッグエ
ンディアン又はリトルエンディアンを表わすためにセッ
ト状態とされるか又は非セット状態とされる。該ビット
は、ある部分のワード命令がエンディアンであることが
変更されねばならないことを表わしている。
対して意図されているプログラムを単一のコンピュータ
でラン即ち稼動することを可能としている。エンディア
ンスイッチングと呼ばれる簡単な技術が、1つのコンピ
ュータが、僅かな性能のオーバーヘッドでもって、異な
ったバイト順番のコンピュータを模倣することを可能と
している。
シンである。平均的な条件下においては、データは、ワ
ードの部分ではなく、ワードでアクセスされる。異なっ
たバイト順番の2つのマシンは、ワードに関しては、極
めて類似している。ワードを使用するか又は参照する動
作に関して、ビッグエンディアンマシンとリトルエンデ
ィアンマシンとの間では、マシン動作は同一であり且つ
データはワードで格納される。ワードを参照するにすぎ
ないプログラムは、何れかのバイト順番のマシン上でラ
ン即ち稼動する。
令によって示され、その命令はLEマシン用のものであ
る。BEマシンが使用された場合には、同一のロードワ
ード命令は同一の態様で機能する。この説明において
は、1つのアドレスは、ワードアドレスとそれに続く2
ビットバイトアドレスとから構成される一対のシンボル
(記号)によって表現される。
本明細書においては、バイトメモリ操作を使用する場合
のアドレスの下位2ビットの解釈によって示される。L
Eマシンは、アドレスが下位2ビットとして00を有す
る場合に最小桁ビット(LSB)を有する8ビットを選
択する。BEマシンは、同一のアドレスビットを使用す
る場合に、最大桁ビット(MSB)を有する8ビットを
選択する。あるBEマシンにおいては、選択されたバイ
トはそのデータに対する符号ビットを有している。
対しロードバイト操作を示している。図2において、所
望のバイトを有するワードは、ワードアドレスのみを使
用するメモリから抽出され且つアライメントレジスタ内
に配置される。両方のマシンにおいて、パワーアップ
(始動)ルーチン期間中に初期化されるreset−t
ime set endianフラッグを使用して、何
れのタイプのマシンが使用されているかを表わし且つど
の8ビットが該レジスタ内のLSB位置内に配置される
べきであるかを表わす。図2に示した如く、BEメモリ
は符号及び最大桁ビットを最下位バイトアドレス内に配
置させ、且つLEメモリは最小桁ビットを同一の位置内
に配置させる。
桁ビット(MSB)の何れかから開始してバイトに番号
付けをするために2つの下位アドレスビットを使用する
ことにより、BEマシン又はLEマシンの何れかを形成
することが可能であるという原理を示している。図示例
においては、BEマシン用の下位2ビット00によって
アドレスされるバイトは「M」を有しており、且つ2つ
の上位ビット11は「S」を有するバイトをアドレスす
る。LEマシンの場合、その状態は全く逆であり、即ち
00によってアドレスされるバイトは「0」を有してお
り、且つ11によってアドレスされるバイトは「M」を
有している。図示した如く、何れかのマシンによって使
用されるバイトアドレスと「11」(2進3)とを排他
的OR(XOR)処理すると、反対のデータ順番規則を
使用して同一のデータをアクセスするための正確なバイ
トアドレスが得られる。図4は、更に、与えられたアド
レスのオフセットを単に変化させるだけで与えられたマ
シンを異なったバイト順番のマシンのように動作させる
ことが可能であるという点において、これら2つのタイ
プのマシンがどのようにして実際に極めて類似している
ものであるかということを示している。注意すべきこと
であるが、異なったマシンに対するオフセットは、この
例の場合においては、互いに鏡像関係にある。
マシンとを同一のものとして取扱うことは誤ったものの
ように見える。一般的に、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規則である。これらの両
方の事柄がハードウエアか又はソフトウエアの何れかで
解決することが可能である場合には、何れのバイト順番
においてもプログラムを稼動するマシンを形成すること
が可能である。
解釈は、本発明の好適実施例におけるコンピュータの一
部としてソフトウエア内において実現されており、且つ
第一のバイト順番の2個の下位ビットを2進3とXOR
処理することにより1つのバイト順番におけるバイトア
ドレスは他方のバイト順番のバイトアドレスをシュミュ
レートさせることが可能であるという観察に依存してい
る。このタスクを実施するためのソフトウエアは、プロ
グラムのコンパイル時間において又はその後に機能す
る。例えば、バイト順番(byte order)を反
転させるための本発明を包含するコンピュータは、ロー
ドされるべきプログラムを読取り、且つどのようにして
バイトが1つのワードにパックされるかという異なった
決まりを考慮に入れるために各部分的なワードメモリ参
照を調節することが可能である。一貫性を持ってバイト
順番を変化させるか乃至は再配列させるために変換プロ
グラム内には3つの標準的なタイプのバイトアドレス動
作用命令が設けられていなければならない。これらの3
つの場合を図6に示してある。
にワード上に整合されていることが知られている。この
場合においては、新たなベースアドレスの計算は、シス
テムコンパイラによって実施され、それは、単に、オフ
セットと2進3とをXOR処理して適切な変位を与える
にすぎない。ケース2においては、オフセットが0であ
るか又はオフセットが存在せず、且つベース整合は未知
である。このような態様でバイトがアドレスされる場
合、ベースレジスタ内の値は2進3とXOR処理され
る。その結果は正しいオフセットとして使用される。ベ
ース整合又はオフセット整合の何れもが知られていない
場合には、図6(C)に示した3つの命令を使用して、
新たな順番で正しいバイトをアドレスする。これらの命
令は非常に高速で稼動し、従ってエキストラな命令を実
施することがシステムの性能に影響を与えることは殆ど
ない。
レスビットの適切な解釈を取扱っている。本発明の好適
実施例はこれらのアドレス変換を達成するためにソフト
ウエアを使用しているが、システムプロセサに対するハ
ードウエアの修正により同一の目的を達成することが可
能である。あるプロセサでは、プロセサのバイト順番を
システムのリセット時においてセットすることを可能と
している。この場合においては、ユーザモードプログラ
ムを使用して、プログラム(タスク)毎にマシンのバイ
ト順番を調節することは比較的簡単である。このことを
行なうための最も簡単な方法は、前のプログラム又は最
後のリセットにおける何れかにおいて特定されたバイト
順番と同一であるか又は異なったバイト順番で新たなプ
ロセスを稼動するか否かを表わすビットをステータスレ
ジスタ内に定義することである。このフラッグをセット
することは、その新たなプログラムの期間中、バイト順
番において不変的なシフトを発生させる。この技術がハ
ードウエアで実現される場合には、システムは、異なっ
た「エンディアン特性」を表わすビットがターンオンさ
れたことを検知する。ワードの一部をアクセスする命令
は変更されることはない。その代わりに、32ビットア
ドレスバスは分岐経路を有している。アドレスの内の3
0ビットはロードアライナレジスタ内に配置される。残
りの2ビットは、2進3とXOR処理されて、正しいバ
イトアドレスを得る。次いで、これらの30ビット及び
2ビットはロードアライナにおいて再結合される。この
方法は、システムの性能を劣化させることはない。なぜ
ならば、プログラムは、リセットタイムフラッグが表示
されたバイト順番へセットされた如くに正確に動作する
からである。これらの操作は、システムがユーザモード
にあり且つ逆エンディアンビットがオンである場合にの
み発生する。影響される命令は、ロード命令及びストア
(格納)命令等である。
内のバイトストリームへの及び該バイトストリームから
の変換も、好適実施例においては、ソフトウエアにおい
て達成される。読取られるか又は書込まれるデータの全
てのバッファを一様にワードスワッピングすることによ
り、マシンの内蔵されている決まりを受付けることが可
能である。ワードスワッピングは、2つの外側のバイト
と2つの内側のバイトとを交換する操作である(即ち、
バイト0と3とをスイッチし且つバイト1と2とをスイ
ッチする)。ワードスワッピング及びそれを実現するの
に必要なコードを図7に示してある。エンディアンスイッチャ(Endian Switch
er)の構成 上に説明した両方の決まりを実現する幾つかの別の方法
が可能である。バイトオーダ、即ちバイト順番でのエミ
ュレーションのために本明細書で説明したハードウエア
の修正を多くのマシンが有するものではないので、純粋
なソフトウエアのエミュレーションについても検討す
る。
稼動するコンピュータがハードウエア修正を有するもの
でない場合には、変換プログラムを使用することが可能
である。そのプログラムは、プログラムと初期化したデ
ータの両方をワードスワッピングする。又、部分的なワ
ードを適切にアドレスするためにコードを「再書込み」
することが必要な場合がある。マシン内にプログラムを
エンタする場合にその修正を行なうことが可能であり、
且つその変更したプログラムはその変換した形態で格納
することが可能である。
のネットワークを有する環境においては、何れかのマシ
ンに関して何れかのプログラムを実行することを所望す
る場合、そのバイト順番は実行の前に固定させることは
不可能である。この場合、プログラムはその実行の一部
として修正され、その変換はプログラムがシステムメモ
リ内に移動される場合に発生する。その変換プログラム
の実行時間は小さく、且つ部分的ワードメモリ操作を修
正するための作業量も比較的小さい。アドレス内の下位
2ビットを解釈するためにマシンが前に説明したハード
ウエア修正を有している場合には、必要とされる唯一の
プログラム修正は、プログラムと初期化データとをワー
ドスワッピングすることである。アプリケーションプロ
グラムが実際にロードされる迄ワードスワッピングが遅
延される場合(要求に応じてのワードスワッピング)、
変換プロセスのために必要とされるマシンのオーバーヘ
ッドは、そのプログラムの稼動時間全体に亘って償却さ
れる。
化に関連するBEマシンとLEマシンとの間の差異は、
データが出力バッファへ書込まれるか又はそれから読取
られる場合に取扱われる。出力バッファ内の全てのデー
タは、ディスクから物理的なI/Oを読取った直後か又
はディスクへ物理的なI/Oを書込む直前にワードスワ
ッピングされる。オペレーティングシステムのサポート オペレーティングシステムは、反対のバイト順番をエミ
ュレートし、且つ稼動中のプログラムのシステム仮定を
エミュレートすることが可能でなければならない。この
ことは、適合性のあるシステムコールベクトル及び、多
分、通過中のデータ構成の変換の両方を必要とする場合
がある。全ての2進ロードモジュールは、そのバイト順
番を、該モジュールの開始時にエンコードさせる。この
ことは、オペレーティングシステムに対して、プログラ
ムのシステム仮定をエミュレートするために必要とされ
るアクションについて通知する。
テムのオペレーティングシステムインターフェースの多
くのものを比較的容易にサポートすることを可能として
いる。システムコールベクトルにおいて適合性のない要
素が存在する場合には、それらの要素は幾つかの方法で
処理することが可能である。オペレーティングシステム
が異なった「エンディアン特性」の2進数を識別し且つ
別のベクトルを選択することが可能である。割当てたシ
ステムコール内にオーバーラップが存在しないか又は僅
かのオーバラップが存在するにすぎない場合には、反対
のエンディアンシステムコールへのエントリは、通過中
のデータ構成(存在する場合)を変化させ且つ元のシス
テムコールへ分岐することを可能とする。
字データをワードへ変換すると仮定するバイト順番でフ
ァイルとして格納される。従って、プログラムの組織
は、そのプログラムが実行される前に変更されねばなら
ない。前述した如く、このことは比較的容易である。な
ぜならば、ロードモジュール内の全ての命令及び全ての
初期化データワードがスワッピングされるからである。
バイトがスイッチされる1つの理由は、ネットワークイ
ンターフェースがバイト指向型であり、且つBEからL
Eへ移動し且つ帰還する場合に本質的にワードをスワッ
ピングするからである。従って、補償が必要とされる。
シュミュレートする場合の影響の推定を示している。前
述した如く、ハードウエア拡張は、プログラムの計算部
分の期間中に何等性能に悪影響を発生することはない。
なぜならば、プログラムは、他のバイト順番のマシン上
で稼動するように正確に稼動するからである。図8に示
した如く、ソフトウエアのペナルティの範囲は2乃至
8.8%である。入力/出力バッファの変換は、ある性
能損失を発生する。これは単にファイルを読取る場合よ
りも、ファイルを読取り且つワードスワッピングするた
めに11.7%の程度一層長くなっている。結論 図示し且つ本明細書において説明したソフトウエアはL
E又はBEマシンの何れかの上でプログラムを稼動する
ことを可能とする。ディスク又はメモリ上に格納された
データを包含する異なったバイト順番のシステム間のデ
ータ交換は本発明の特定の示唆の範囲内のものではない
が、本明細書の記載事項は、これらの転送によって示さ
れる問題を解消する場合にも有用なものである。
詳細に説明したが、本発明は、これら具体例にのみ限定
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。
スを示した説明図。
「ロードバイト(Load Byte)」命令がどのよ
うにして異なったバイトをリコールするかを示した説明
図。
を変換することが可能であるかを示した説明図。
マシンの性質を変更することが可能であるかを示した説
明図。
てバイト順番に依存するかを示した説明図。
ようにして異なったタイプのマシンに対するロードへ変
換することが可能であるかを示した説明図。
グする状態を示した説明図。
可能なマシンのオーバーヘッドを示した説明図。
Claims (4)
- 【請求項1】 第一の予め定めたバイト順番アドレス方
法を使用するプログラムを第二の予め定めたバイト順番
アドレス方法へ変換する方法において、データのバイト
に関し動作する前記プログラム内の全ての命令を見付け
出し、該バイトアドレスの下位2ビットと2進3と排他
的OR処理し、且つ該バイトアドレスの下位2ビットを
前記排他的OR処理操作の結果と置換する、上記各ステ
ップを有することを特徴とする方法。 - 【請求項2】 第一の予め定めたバイト順番アドレス方
法を使用するプログラムを第二の予め定めたバイト順番
アドレス方法へ変換する装置において、データのバイト
に関し動作する前記プログラム内の全ての命令を見付け
出す手段、該バイトアドレスの下位2ビットと2進3と
を排他的OR処理する手段、該バイトアドレスの下位2
ビットを前記排他的OR処理操作の結果と置換する手
段、を有することを特徴とする装置。 - 【請求項3】 予め定めたバイト順番アドレス方法を持
ったデジタルコンピュータにおけるコンパイラであっ
て、同一又は異なったバイト順番アドレス方法のプログ
ラムをコンパイルすることの可能なコンパイラであっ
て、新たなプログラムが以前にコンパイルしたプログラ
ムと異なったバイト順番アドレス方法を有するか否かを
検知する手段、コンピュータワードの一部をアクセスす
る命令を前記コンピュータの予め定めたバイト順番アド
レス方法へ変換する手段、を有することを特徴とするコ
ンパイラ。 - 【請求項4】 請求項3において、前記命令を変換する
手段が、更に、前記バイトアドレスの下位2ビットを検
知する手段、前記バイトアドレスの下位2ビットと2進
3とを排他的OR処理する手段、を有することを特徴と
するコンパイラ。
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)
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)
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)
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 |
-
1991
- 1991-08-06 EP EP91113177A patent/EP0470570B1/en not_active Expired - Lifetime
- 1991-08-06 DE DE69124437T patent/DE69124437T2/de not_active Expired - Lifetime
- 1991-08-07 JP JP19784991A patent/JP3556955B2/ja not_active Expired - Lifetime
-
1993
- 1993-09-27 US US08/127,105 patent/US5398328A/en not_active Expired - Lifetime
-
1995
- 1995-01-27 US US08/379,710 patent/US5572713A/en not_active Expired - Lifetime
Cited By (6)
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 |