JP4965024B2 - Endian conversion method - Google Patents
Endian conversion method Download PDFInfo
- Publication number
- JP4965024B2 JP4965024B2 JP2000576352A JP2000576352A JP4965024B2 JP 4965024 B2 JP4965024 B2 JP 4965024B2 JP 2000576352 A JP2000576352 A JP 2000576352A JP 2000576352 A JP2000576352 A JP 2000576352A JP 4965024 B2 JP4965024 B2 JP 4965024B2
- Authority
- JP
- Japan
- Prior art keywords
- bytes
- endian
- address
- memory
- word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 18
- 238000006243 chemical reaction Methods 0.000 title description 6
- 230000009466 transformation Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 2
- 230000000694 effects Effects 0.000 description 6
- 230000001131 transforming effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011426 transformation method Methods 0.000 description 2
- 101100108191 Vibrio parahaemolyticus serotype O3:K6 (strain RIMD 2210633) add gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
Classifications
-
- 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
-
- 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/3017—Runtime instruction translation, e.g. macros
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
Description
【0001】
【産業上の利用分野】
本発明はエンディアン変形の方法およびシステムに関する。
【0002】
【従来の技術】
異なるコンピュータ・プロセッサ・チップ上で同一ソフトウェアを実行するエミュレーション・システムで一般的に発生する問題は、フォーマットの非互換性である。この非互換性の態様の1つは、データ・ストリング(たとえば、2バイト・ワードまたは4バイト・ワード)が表されるフォーマットにある。多くのコンピュータ・アーキテクチャでは、4バイト・ワードの各バイトがそれ自体の個別メモリ・アドレスを有し、これにより、1つのワード内の全バイトに番号を付ける可能性が2通り発生する。
【0003】
ビッグ・エンディアン規則では、そのバイトがアドレス指定されるワード(X、X+1、X+2、およびX+3)はその最上位バイトがXとアドレス指定されるのに対し、リトル・エンディアン規則では、アドレスの順序付けがこの逆になり、最下位バイトはXとアドレス指定され、最上位バイトはX+3とアドレス指定される。ワード内のバイトの重要度に順序付けするために異なる規則を遵守するその他の「エンディアン・フォーマット」も知られているが、ほとんどの市販のシステムでは、ビッグ・エンディアン規則またはリトル・エンディアン規則を遵守している。各バイト内のビットの順序付けは、メモリ・アドレス規則がビッグ・エンディアンであるかリトル・エンディアンであるかにかかわらず同じである。
【0004】
一方のエンディアン・フォーマットのソフトウェア(オペレーティング・システムまたはアプリケーション・プログラムなど)が反対のエンディアン・フォーマットのハードウェア上で動作できるようにするエミュレーション・システムが入手可能である。一般に、このタイプのシステムは、ワードごとに各ワードをエンディアン表現間で変換する。この変換は、頻繁に必要な場合、所与のタスクを実行するために必要な時間に多大なオーバヘッドを持ち込むことになる。
【0005】
【解決しようとする課題】
本発明の目的の一つとしては、あるエンディアン・フォーマットのソフトウェアが異なるエンディアン・フォーマットのハードウェア上で動作できるようにするための効率の良い方法およびシステムを提供することにある。
【0006】
【課題を解決するための手段】
本発明によれば、ワード内のバイトの重要度に順序付けするための第1の規則を遵守する第1のタイプのプロセッサを、ワード内のバイトの重要度に順序付けするための第2の規則を遵守する第2のタイプのプロセッサ上でエミュレートするための方法であって、第1の規則によるバイト順序が遵守される命令の結果として第2のタイプのプロセッサによってアドレス指定されるメモリ内に記憶されたバイトが、そのメモリが前記命令に応答して第1のタイプのプロセッサによってアドレス指定された場合に結果として得られることになるバイトの分散パターンのミラー・イメージであるパターン状に分散されるようにメモリ・アクセス・アドレスが変形される方法が提供される。
【0007】
本発明は、ワード内のバイトの重要度に順序付けするための第1の規則を遵守する第1のタイプのプロセッサを、ワード内のバイトの重要度に順序付けするための第2の規則を遵守する第2のタイプのプロセッサ上でエミュレートするための方法であって、第2の規則の順序が第1の順序の逆であり、メモリ内に記憶された任意の2つのバイトのアドレス間のオフセットが変形によって変更されず、メモリ内に記憶された任意の2つのバイトのアドレスの相対順序が変形によって逆転されるようにメモリ・アクセス・アドレスが変形される方法も提供する。
【0008】
本発明はさらに、ワード内のバイトの重要度に順序付けするための第1の規則を遵守する第1のタイプのプロセッサを、ワード内のバイトの重要度に順序付けするための第2の規則を遵守する第2のタイプのプロセッサ上でエミュレートするための方法であって、プロセッサが第1のエンディアン・フォーマットのものであり、メモリ・アクセス・アドレスが変形されなかった場合にバイトが集合することになるのと同じように、第2のエンディアン・フォーマットにより動作するプロセッサによって順に記憶される第1のエンディアン・フォーマットのバイト・ストリングが集合するようにメモリ・アクセス・アドレスが変形される方法を提供する。
【0009】
本発明はさらに、ワード内のバイトの重要度に順序付けするための第1の規則を遵守する第1のタイプのプロセッサを、ワード内のバイトの重要度に順序付けするための第2の規則を遵守する第2のタイプのプロセッサ上でエミュレートするための方法であって、ストリング長Lの各メモリ・アクセス・アドレスBがアドレスA−B−L+Sに変形され、Aが1つのプログラムに割り振られるバイトの総数であり、Sがそのプログラムの開始アドレスである方法を提供する。
【0010】
ビッグ・エンディアン・プロセッサとリトル・エンディアン・プログラムの場合を想定すると、アドレス変形により、プロセッサがリトル・エンディアンであり、アドレス変形が一切行われなかった場合に結果として得られることになるパターンのミラー・イメージであるパターン状にバイトがメモリ内で集合することが保証される。本発明は、リトル・エンディアン・プロセッサとビッグ・エンディアン・プログラムの場合にも同じように機能することになる。変形が各バイト内のビットの順序付けに一切影響しないことに留意することは重要なことである。その結果、各バイト・ストリングを使用するたびにそのバイト・ストリングをエンディアン表現間で変換する既知のエンディアン変換方法に比べ、相当な時間の節約が可能なシステムが得られる。
【0011】
本発明によれば、第1のエンディアン・フォーマットで表現されたコードのアドレス位置を第2のエンディアン・フォーマットのアドレスに変形するための手段を含み、その変形がアドレスにオフセットを持ち込むことを含み、オフセットのサイズがそのコードのアドレス位置と事前定義アドレス位置との差から決定されるエンディアン変形システムが提供される。
【0012】
本発明の他の態様によれば、アドレス空間のワード内のバイトの重要度に順序付けするために対応する所定の規則を使用するプログラマブル・マシン上での実行のために特に構成されたコンパイル済みまたは変換済みコード内の変形済みアドレス空間リファレンスを使用してコンピュータ・プログラム・コード命令をコンパイルまたは変換するためのプロセスがさらに提供され、前記プロセスが、
(a)メモリ・アドレスを参照するコード命令のコンパイルまたは変換中に、各ワード内でアクセス中の所与のバイト数に関して一定の量だけ参照済みアドレス値を変更するように、所定のプログラマブル・マシン内の固定ブロック・サイズのメモリに対して参照済みメモリ・アドレスを変形することと、
(b)前記所定のプログラマブル・マシンによって使用されるワード内のバイトに順序付けするための規則に対処するために出力命令の実行中に余分の動作が不要になるように、このように変更したアドレスリファレンスをコンパイル済みまたは変換済み出力命令に含めることを含む。
【0013】
次に、一例としてのみ、本発明の具体的な実施形態について説明する。以下の2つのアセンブリ・コード・ストア命令について検討する。
mov1 $0xaabbccdd,[0]
mov1 $0x11223344,[2]
これらの命令は、リトル・エンディアン・アーキテクチャで表1に示す効果を生じることになる。
【0014】
【表1】
【0015】
第1のストア命令は、第1の4バイト・ワード(aabbccdd)の最下位バイト(dd)をアドレス「0」に記憶し、第2の最下位バイトをアドレス「1」に記憶し、以下同様に記憶する。第2のストア命令は、第2の4バイト・ワード(11223344)の最下位バイト(44)をアドレス「2」に記憶し、第2の最下位バイトをアドレス「3」に記憶し、以下同様に記憶する。したがって、第2の4バイト・ワードを記憶することによる効果はアドレス「2」および「3」の前の内容を上書きすることであり、第1の4バイト・ワードの2つの最上位バイト「aa」および「bb」が失われる。
【0016】
ビッグ・エンディアン・アーキテクチャで同じ2つのストア命令を使用する場合、第1の4バイト・ワードの最上位バイト(aa)がアドレス「0」に記憶され、次の最上位バイト(bb)がアドレス「1」に記憶され、以下同様に記憶される。第2のストア命令は、前と同じように、アドレス「2」および「3」の前の内容を上書きすることになり、第1の4バイト・ワードの2つの最下位バイト「dd」および「cc」が失われることになる。したがって、ビッグ・エンディアン・アーキテクチャを使用すると、アセンブリ・コード・ストア命令の結果としてアドレス指定されたメモリの内容は、リトル・エンディアン・アーキテクチャを使用したときの同等のメモリの内容とは異なるものになる。
【0017】
本発明では、バイトの順序は逆転するが、所与のストア命令の結果、どちらのアーキテクチャでも同じバイトが記憶されるように、ビッグ・エンディアン・ワードとリトル・エンディアン・ワードの両方を記憶することができる。これは、たとえばビッグ・エンディアン・プロセッサによってアドレス指定されたメモリ内に記憶されたバイト・パターンが、リトル・エンディアン・プロセッサによる変形なしにそのメモリがアドレス指定された場合に結果として得られることになるパターンのメモリ・イメージになるように、メモリ・アクセス・アドレスを変形することによって達成される。
【0018】
上記のアセンブリ・コード・ストア命令の場合、ビッグ・エンディアン・アーキテクチャに対処するために、2つの4バイト・ワードは、表2に示すように使用可能な一番上のアドレスに本発明により記憶される。
【0019】
【表2】
【0020】
メモリ内に情報を保持するため、2つのストアのうちの第2のストアにより、第1の4バイト・ワードより低いアドレスに第2の4バイト・ワードが置かれ、その結果、リトル・エンディアン・アーキテクチャの場合と同じ2バイト・ワード(0xaabb)の情報が上書きされる。したがって、リトル・エンディアン・アーキテクチャにおいてメモリ内に記憶されたバイトに関するアセンブリ・コード命令の効果は、ビッグ・エンディアン・アーキテクチャで再現されるが、バイトの順序は逆転される。
【0021】
未整合ストア命令に関する本発明によるシステムの上記の例証により、システムのフレキシビリティが立証される。このシステムは、整合ストア命令にも使用することができる。
【0022】
ビッグ・エンディアン・アーキテクチャで情報を保持するために上記のように使用するアドレス変形は表3に示す通りである。
【0023】
【表3】
【0024】
これは、一般化すると以下のようになる。
【0025】
【表4】
【0026】
したがって、上記の表に示す一般化を使用し、リトル・エンディアン・アーキテクチャにおける以下の動作について検討する。
movw $0xaabb,[1]
mov1 [1],%eax
これらは、ビッグ・エンディアン・アーキテクチャにおける以下の動作と同じ効果を生じることになる。
movw $0xaabb,[22−1]
mov1 [20−1],%eax
上記のコマンドの効果を表5に示す。
【0027】
【表5】
【0028】
本発明では、すべてのロード/ストア命令について、1つ余分な算術演算を取り入れている。しかし、メモリにアクセスする多くの命令では、以下のように一定のオフセットを含むアドレス式を使用する。
add1 %edx,0x8(ebp,eax,4)
これは、以下の有効アドレスを表現するものである。
ebp+eax*4+8
この式は、本発明によるメモリ・アクセス変形が適用された後、以下のようになる。
【0029】
endianAdj_L−(ebp+eax*4+8)
この式の定数の畳込みを使用すると、以下のように示すことができる。
(endianAdj_L−8)−(ebp+eax*4)
したがって、畳込みにより、変換時に計算される可能性のある項を、レジスタ内に保持され、変換時に未知の項から分離することができる。「endianAdj_L」という項は変換時に既知であるので、実行時以前にその効果が計算され、メモリ・アクセス変形により実行時にパフォーマンスの損失が発生しなくなる。したがって、一般に、本発明のビッグ・エンディアン変形は、メモリ・アクセスの大部分で余分なオーバヘッドを一切被らない。サブジェクト・マシン・プログラム(またはオペレーティング・システム)は、アドレス0から連続してロードされた場合と同様に扱われるが、内部では、表6に示すようにミラー・イメージとして記憶される。
【0030】
【表6】
【0031】
前述の例と同じプログラム・サイズを使用し、アセンブリ・コードがメモリ位置3にある4バイト値0x00000003へのアクセスを指定する場合、このメモリ・アクセスは、endianAdj_L−3=(progSize−4)−3=(24−4)−3=17になり、これは、必要な値のビッグ・エンディアン・ミラー・イメージでのアドレスである。
【0032】
上記の例では、それがビッグ・エンディアン・システムで動作するようにリトル・エンディアン・アーキテクチャ用に意図されたコードを変形する際の本発明の使用を示しているが、本発明を使用すると、リトル・エンディアン・システム上で動作するようにビッグ・エンディアン・コードを変形することもできるだろう。実際には、本発明を使用すると、互いにバイトが逆転する2つのエンディアン・システム間で変形することができる。
【0033】
このエンディアン変形方法は、完全なエミュレーション・システムの一部として使用することができる。 前述の「畳込み」動作によって結びつけられる利点は、上記の特定の変形に限定されない。コンパイル済みまたは変換済みコード内の変形済みアドレス空間リファレンスを使用して出力命令に変更済みアドレスを含める他のコンパイルまたは変換プロセスでも、同様の動作を実行して、出力命令の実行中のオーバヘッドを低減することができる。[0001]
[Industrial application fields]
The present invention relates to endian transformation methods and systems.
[0002]
[Prior art]
A problem that commonly occurs in emulation systems that run the same software on different computer processor chips is format incompatibility. One aspect of this incompatibility is in a format that represents a data string (eg, a 2 byte word or a 4 byte word). In many computer architectures, each byte of a 4-byte word has its own individual memory address, which gives rise to two possibilities for numbering all bytes in a word.
[0003]
In big endian rules, the word (X, X + 1, X + 2, and X + 3) whose bytes are addressed has its most significant byte addressed as X, whereas in little endian rules, address ordering is The reverse is true, the least significant byte is addressed as X and the most significant byte is addressed as X + 3. Other “endian formats” are also known that adhere to different rules to order the importance of bytes within a word, but most commercial systems adhere to big endian or little endian rules. ing. The ordering of bits within each byte is the same regardless of whether the memory address rule is big endian or little endian.
[0004]
Emulation systems are available that allow one endian format software (such as an operating system or application program) to run on the opposite endian format hardware. In general, this type of system translates each word between endian representations, word by word. This conversion, if frequently required, introduces significant overhead in the time required to perform a given task.
[0005]
[Problems to be solved]
One object of the present invention is to provide an efficient method and system for allowing certain endian format software to operate on different endian format hardware.
[0006]
[Means for Solving the Problems]
In accordance with the present invention, a first type of processor that adheres to the first rule for ordering the importance of bytes in a word has a second rule for ordering the importance of bytes in a word. A method for emulating on a compliant second type processor, stored in a memory addressed by the second type processor as a result of an instruction in which the byte order according to the first rule is observed Bytes are distributed in a pattern that is a mirror image of the distributed pattern of bytes that will result when the memory is addressed by a first type processor in response to the instruction. Thus, a method is provided in which the memory access address is modified.
[0007]
The present invention complies with a second rule for ordering a first type of processor that orders the importance of bytes in a word to the importance of bytes in a word. A method for emulating on a second type of processor, wherein the order of the second rule is the reverse of the first order and the offset between the addresses of any two bytes stored in memory Also provides a method in which the memory access address is transformed such that the relative order of the addresses of any two bytes stored in the memory is reversed by the transformation.
[0008]
The invention further complies with a second rule for ordering a first type of processor that orders the importance of bytes in a word to the importance of bytes in a word. For emulating on a second type of processor, wherein the processor is of the first endian format and the bytes are aggregated if the memory access address is not transformed. A memory access address is transformed such that a first endian format byte string is stored in sequence by a processor operating in a second endian format. .
[0009]
The invention further complies with a second rule for ordering a first type of processor that orders the importance of bytes in a word to the importance of bytes in a word. A method for emulating on a second type of processor, wherein each memory access address B of string length L is transformed into address AB-L + S, where A is a byte allocated to one program Provides a method in which S is the starting address of the program.
[0010]
Assuming big-endian and little-endian programs, the address mirror causes a mirror of the resulting pattern if the processor is little-endian and no address transformation is performed. It is guaranteed that bytes are gathered in memory in a pattern that is an image. The present invention will work in the same way for little endian processors and big endian programs. It is important to note that the deformation does not affect the ordering of the bits within each byte. The result is a system that can save considerable time over known endian conversion methods that convert each byte string between endian representations as each byte string is used.
[0011]
In accordance with the present invention, comprising means for transforming an address location of a code expressed in a first endian format into an address in a second endian format, the transform comprising bringing an offset into the address, An endian transformation system is provided in which the size of the offset is determined from the difference between the address location of the code and a predefined address location.
[0012]
According to another aspect of the invention, a compiled or specially configured for execution on a programmable machine that uses a predetermined rule to order the importance of bytes in a word of an address space. A process is further provided for compiling or translating computer program code instructions using the transformed address space reference in the translated code, the process comprising:
(A) A predetermined programmable machine that changes the referenced address value by a fixed amount for a given number of bytes being accessed within each word during compilation or translation of code instructions that reference memory addresses. Transforming the referenced memory address for a fixed block size memory in
(B) the address changed in this way so that no extra action is required during execution of the output instruction to deal with the rules for ordering the bytes in the word used by the given programmable machine. Includes including references in compiled or translated output instructions.
[0013]
Next, specific embodiments of the present invention will be described by way of example only. Consider the following two assembly code store instructions:
mov1 $ 0xaabbccdd, [0]
mov1 $ 0x11223344, [2]
These instructions will produce the effects shown in Table 1 on a little endian architecture.
[0014]
[Table 1]
[0015]
The first store instruction stores the least significant byte (dd) of the first 4-byte word (aabbccdd) at address “0”, the second least significant byte at address “1”, and so on. To remember. The second store instruction stores the least significant byte (44) of the second 4-byte word (112223344) at address “2”, the second least significant byte at address “3”, and so on. To remember. Thus, the effect of storing the second 4-byte word is to overwrite the previous contents of addresses “2” and “3” and the two most significant bytes “aa” of the first 4-byte word. "And" bb "are lost.
[0016]
When using the same two store instructions in a big endian architecture, the most significant byte (aa) of the first 4-byte word is stored at address "0" and the next most significant byte (bb) is at address " 1 "and so on. The second store instruction will overwrite the previous contents of addresses “2” and “3”, as before, and the two least significant bytes “dd” and “ "cc" will be lost. Therefore, when using big-endian architecture, the contents of memory addressed as a result of assembly code store instructions are different from the equivalent memory contents when using little-endian architecture. .
[0017]
The present invention reverses the byte order, but stores both big-endian and little-endian words so that the same byte is stored on both architectures as a result of a given store instruction Can do. This will result if, for example, a byte pattern stored in memory addressed by a big endian processor is addressed without modification by the little endian processor. This is accomplished by transforming the memory access address to be a pattern memory image.
[0018]
In the case of the above assembly code store instruction, to address the big endian architecture, two 4-byte words are stored by the present invention at the highest available address as shown in Table 2. The
[0019]
[Table 2]
[0020]
To keep the information in memory, the second of the two stores places a second 4-byte word at an address lower than the first 4-byte word, resulting in little endian The same 2-byte word (0xaabb) information as in the architecture is overwritten. Thus, the effect of assembly code instructions on bytes stored in memory in a little endian architecture is reproduced in a big endian architecture, but the byte order is reversed.
[0021]
The above illustration of the system according to the present invention for inconsistent store instructions demonstrates the flexibility of the system. This system can also be used for consistent store instructions.
[0022]
Table 3 shows the address variations used as described above to hold information in the big endian architecture.
[0023]
[Table 3]
[0024]
This is generalized as follows.
[0025]
[Table 4]
[0026]
Therefore, using the generalization shown in the table above, consider the following operations in a little endian architecture:
movw $ 0xaabb, [1]
mov1 [1],% eax
These will have the same effect as the following operations in big endian architecture.
movw $ 0xaabb, [22-1]
mov1 [20-1],% eax
Table 5 shows the effect of the above command.
[0027]
[Table 5]
[0028]
The present invention incorporates one extra arithmetic operation for all load / store instructions. However, many instructions that access memory use an address expression that includes a constant offset as follows:
add1% edx, 0x8 (ebp, eax, 4)
This expresses the following effective address.
ebp + eax * 4 + 8
This equation becomes as follows after the memory access variant according to the present invention is applied.
[0029]
endianAdj_L- (ebp + eax * 4 + 8)
Using the constant convolution of this equation, we can show that:
(EndianAdj_L-8)-(ebp + eax * 4)
Thus, convolution allows terms that can be computed during conversion to be kept in a register and separated from unknown terms during conversion. Since the term “endianAdj_L” is known at the time of conversion, its effect is calculated before the execution time, and no performance loss occurs at the execution time due to memory access modification. Thus, in general, the big endian variant of the present invention does not incur any extra overhead in the majority of memory accesses. The subject machine program (or operating system) is handled in the same manner as when it is continuously loaded from address 0, but is internally stored as a mirror image as shown in Table 6.
[0030]
[Table 6]
[0031]
If the same program size as in the previous example is used and the assembly code specifies access to a 4-byte value 0x00000003 at memory location 3, this memory access is endianAdj_L-3 = (progSize-4) -3 = (24-4) -3 = 17, which is the address of the required value in the big endian mirror image.
[0032]
The above example shows the use of the present invention in transforming code intended for a little endian architecture to work on a big endian system. • Big endian code could be modified to work on endian systems. In practice, the invention can be used to transform between two endian systems where the bytes are reversed from each other.
[0033]
This endian transformation method can be used as part of a complete emulation system. The advantages associated with the aforementioned “convolution” operations are not limited to the specific variants described above. Other compilation or translation processes that use modified address space references in compiled or translated code to include modified addresses in output instructions perform similar operations to reduce overhead during execution of output instructions can do.
Claims (4)
前記方法は、前記第2のタイプのプロセッサ及びメモリを含むシステムが、アドレス空間のワード内のバイトの重要度を順序付けするために対応する第2のエンディアン・フォーマットを使用する前記システムの前記第2のタイプのプロセッサ上で実行するように構成されるコンパイル済み又は変換済みコード内の変形済みアドレス空間リファレンスを使用してコンピュータ・プログラム・コード命令をコンパイルまたは変換するステップを実行することを含み、
(a)メモリ・アクセス・アドレスを参照するコード命令のコンパイルまたは変換中に、各ワード内でアクセスされるバイト数の所定量に応じて前記参照されるメモリ・アクセス・アドレス値を変更するために、前記メモリ内の固定サイズのブロックに関して前記参照されるメモリ・アクセス・アドレスを変形すること、ここで、ストリング長Lの各メモリ・アクセス・アドレスBはアドレスA−B−L+Sに変形され、Aは1つのプログラムに割り振られる前記メモリ内のバイトの総数であり、Sがそのプログラムの開始アドレスであり、
(b)前記システムによって使用されるワード内のバイトを順序付けするためのエンディアン・フォーマットに対処するために出力命令の実行中に余分の動作が不要になるように、このように変更されたアドレス参照をコンパイル済みまたは変換済み出力命令に含めること
を含む、前記方法。The first type of processor to comply with the first endian format for ordering the significance of bytes within words, to comply with a second endian format for ordering the significance of bytes within words A method for emulating on a second type of processor, wherein the second endian format is different from the first endian format;
The method system including a second type of processor and memory, the second of the system using a second endian format corresponding to order the importance of bytes in a word address space includes performing the type of step of compiling or converting computer program code instructions using deformed address space references in the compiled or translated code Ru is configured to run on a processor,
During compilation or transformation of code instructions that refer to (a) memory access address, in order to change the memory access address value that will be the reference in accordance with a predetermined amount of the number of bytes accessed in each word , deforming the memory access address that will be the reference with respect to blocks of a fixed size of the memory, where each memory access address B of string length L is deformation in the address a-B-L + S, A is the total number of bytes in the memory allocated to one program, S is the start address of that program,
(B) the so the system extra operations during the execution of the output instruction for dealing with endian format for ordering bytes within words used by is not necessary, it changed address reference in this way Including the method in a compiled or translated output instruction.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9822074.2 | 1998-10-10 | ||
GBGB9822074.2A GB9822074D0 (en) | 1998-10-10 | 1998-10-10 | Endian transformation |
US11595499P | 1999-01-14 | 1999-01-14 | |
US60/115,954 | 1999-01-14 | ||
US9822074.2 | 1999-01-14 | ||
PCT/GB1999/003167 WO2000022513A1 (en) | 1998-10-10 | 1999-10-11 | Endian transformation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002527813A JP2002527813A (en) | 2002-08-27 |
JP4965024B2 true JP4965024B2 (en) | 2012-07-04 |
Family
ID=10840302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000576352A Expired - Fee Related JP4965024B2 (en) | 1998-10-10 | 1999-10-11 | Endian conversion method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4965024B2 (en) |
GB (1) | GB9822074D0 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011248516A (en) * | 2010-05-25 | 2011-12-08 | Toyota Motor Corp | Information processor |
Family Cites Families (3)
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 |
JPH06214781A (en) * | 1993-01-14 | 1994-08-05 | Sony Corp | Information processor |
US5687337A (en) * | 1995-02-24 | 1997-11-11 | International Business Machines Corporation | Mixed-endian computer system |
-
1998
- 1998-10-10 GB GBGB9822074.2A patent/GB9822074D0/en not_active Ceased
-
1999
- 1999-10-11 JP JP2000576352A patent/JP4965024B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB9822074D0 (en) | 1998-12-02 |
JP2002527813A (en) | 2002-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5490256A (en) | Method and mechanism for calling 32-bit functions from 16-bit functions | |
US20030033596A1 (en) | Program code conversion | |
JPH08314733A (en) | Computer system and method for support of two endians | |
EP0809180A2 (en) | Data processing circuit, microcomputer, and electronic equipment | |
US5133072A (en) | Method for improved code generation in reduced instruction set computers | |
JPH01237837A (en) | Data processor | |
EP0099263A2 (en) | Digital computer for executing multiple instruction sets in a simultaneous-interleaved fashion | |
JP2003044273A (en) | Data processor and data processing method | |
JP2001216169A (en) | Method, system, program and data structure for converting instruction of first bit architecture into instruction of second bit architecture | |
US6550000B1 (en) | Processor to execute in parallel plurality of instructions using plurality of functional units, and instruction allocation controller | |
US7873810B2 (en) | Microprocessor instruction using address index values to enable access of a virtual buffer in circular fashion | |
EP1119805B1 (en) | Endian transformation | |
JP4965024B2 (en) | Endian conversion method | |
JP2556182B2 (en) | Data processing device | |
JPS623332A (en) | Information processor having instruction containing direct value field | |
JPS61110240A (en) | Optimization compiler | |
WO2006073512A1 (en) | Microprocessor instruction to enable access of a virtual buffer in circular fashion | |
JPS622332B2 (en) | ||
JP3341847B2 (en) | Data processing device | |
JP3474347B2 (en) | Instruction decoding unit of microcomputer | |
JPH04145536A (en) | Address rearrangement processing system for program conversion processing system | |
JPH0560130B2 (en) | ||
JPS62226336A (en) | Microprogram control system | |
JPS6355637A (en) | Data processing system | |
JP2003337708A (en) | System and program for converting character string |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061011 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20061225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20061226 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20090731 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090824 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20090824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100114 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100329 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100329 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100802 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20101124 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101124 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20101130 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20110121 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110822 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120214 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120316 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20120316 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120329 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150406 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |