JPH07505972A - Apparatus, system and method for facilitating communication between elements with different byte orders - Google Patents

Apparatus, system and method for facilitating communication between elements with different byte orders

Info

Publication number
JPH07505972A
JPH07505972A JP6515373A JP51537393A JPH07505972A JP H07505972 A JPH07505972 A JP H07505972A JP 6515373 A JP6515373 A JP 6515373A JP 51537393 A JP51537393 A JP 51537393A JP H07505972 A JPH07505972 A JP H07505972A
Authority
JP
Japan
Prior art keywords
byte
information
endian
byte order
order
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
JP6515373A
Other languages
Japanese (ja)
Inventor
タム,スティーヴン・ユー−ミン
Original Assignee
オリヴェッティ・アドヴァンスト・テクノロジー・センター・インコーポレーテッド
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 オリヴェッティ・アドヴァンスト・テクノロジー・センター・インコーポレーテッド filed Critical オリヴェッティ・アドヴァンスト・テクノロジー・センター・インコーポレーテッド
Publication of JPH07505972A publication Critical patent/JPH07505972A/en
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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4013Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
    • 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

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。 (57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.

Description

【発明の詳細な説明】 異なるバイト順序を有する要素間の通信を容易にする装置、システム及び方法発 明の背景 10発明の分野 本発明は、第1のバイト順序(byte ordering)を有するコンピュ ータ関連の要素が第2のバイト順序を有するコンピュータ関連の要素と効率的に 通信することを可能にするシステム及び方法に関する。本発明の実施例は、2つ の要素が同じバイト順序を有しているかどうかを判定し、その2つの要素が相互 に通信するのを可能にする条件を作成するシステム及び方法をも視野に入れてい る。更に、本発明の実施例は、その2つの要素が相互に通信することを可能にす る条件が動的に管理され得ることを考慮している。[Detailed description of the invention] Apparatus, system and method for facilitating communication between elements having different byte orders Ming background 10 Fields of invention The present invention provides a computer with a first byte ordering. data-related elements have a second byte order and computer-related elements. TECHNICAL FIELD The present invention relates to systems and methods that enable communication. There are two embodiments of the present invention. Determine whether the elements of have the same byte order and whether the two elements are mutually exclusive. It also contemplates systems and methods for creating conditions that enable communication between Ru. Furthermore, embodiments of the invention enable the two elements to communicate with each other. It takes into account that the conditions that apply can be managed dynamically.

■ 関連技術 過去数十年の間に、種々のタイプのコンピュータ・アーキテクチャが展開してき た。多(のコンピュータ製造業者は、それぞれ独自のスキームとプロトコルとを 発展させ、しばしば、異なるスキームとプロトコルとを用いている装置の間での 通信を妨げてきた。その結果として、近年、コンピュータ産業の内部では、その ままでは互換性のない装置を相互に通信可能にしようとする努力が多く費やされ てきている。■ Related technology Over the past few decades, various types of computer architectures have evolved. Ta. Many computer manufacturers each have their own schemes and protocols. evolving and often between devices using different schemes and protocols. It has hindered communication. As a result, in recent years within the computer industry, Much effort has been expended trying to enable previously incompatible devices to communicate with each other. It's coming.

コンピュータ製造業者の間で生じてきたそのようなプロトコルの差異の1つとし て、コンピュータ・システム内での「バイト順序」がある。バイト順序は、最下 位から最上位まで(典型的には「ワード」又はその一部の内部で)バイトがラン クされている順序に関し、ビット順序(これは、ビットがランクされる順序に関 する)に対するものである。One such protocol difference that has arisen among computer manufacturers is There is a "byte order" within a computer system. Byte order is lowest The bytes are run from position to most significant (typically within a “word” or part thereof). The bit order (this refers to the order in which the bits are ranked) ).

プロセッサ・インターフェース、メモリ装置、I10インターフェース等の要素 は、典型的には、特定のバイト順序を利用するためには予め構成しておくことが 必要である。こうして、これらの要素は、従来型のコンピュータ・システム内で 効率的に通信を行うことができる。オペレーティング・システムやアプリケーシ ョン・プログラムなどのソフトウェア要素は、典型的には、それらが組み立てら れているハードウェアのバイト順序を内在的に利用している(そして、そのハー ドウェアを「有している」といわれる)。バイト順序は、プロセッサ自体のレジ スタの問題ではない。これは、レジスタ内のバイトは、典型的には、選択的にア クセスされ得ない(従って、最下位バイトは、最も低いオーダーのビットから成 るものである)からである。Elements such as processor interface, memory device, I10 interface, etc. typically has to be preconfigured to take advantage of a particular byte order. is necessary. Thus, these elements can be used within traditional computer systems. Communication can be performed efficiently. operating system and applications Software elements, such as application programs, typically It takes advantage of the byte ordering of the hardware that is ). The byte order is determined by the processor's own register. It's not a star issue. This means that bytes within a register are typically selectively accessed. (Thus, the least significant byte consists of the lowest order bits.) This is because

コンピュータ・アーキテクチャの大部分は、バイト順序の型(scheme)の 2つの異なるタイプの中の1つを用いている。第1のタイプでは、最下位バイト は、1ワードの8最下位ビットから成る。同様に、最下位バイトは、8最上位ビ ットから成る。各バイトの地位(s 1gn1 f 1cance)は、従って 、包含するビットの地位に比例する。Most computer architectures rely on byte-ordered schemes. One of two different types is used. In the first type, the least significant byte consists of the 8 least significant bits of a word. Similarly, the least significant byte is the 8 most significant bytes. Consists of. The status of each byte (s1gn1f1cance) is therefore , proportional to the status of the bits it contains.

この第1のタイプのバイト順序は、この産業では、「リトル・エンディアン(l ittle endian)Jバイト順序として知られている。この用語は、D anny Cohen、+On Ho1y Wars And A PleaF or Peace+ (IEEE Computer、 0ctober、19 81)と題する文献に由来するものである。リトル・エンディアン型のバイト順 序は、マサチューセッツ州メイナードのDigital Equipement 社の製造によるVAX型のコンピュータや、カリフォルニア州すンタクララのイ ンテル社の製造によるプロセッサを用いたコンピュータで採用されている。This first type of byte ordering is known in the industry as "little endian" (l Ittle endian) is known as the J byte order. This term is D anny Cohen, +On Holy Wars And A PleaF or Peace+ (IEEE Computer, 0ctover, 19 81). Little endian byte order The introduction is from Digital Equipment in Maynard, Massachusetts. VAX-type computers manufactured by the Sunta Clara, Calif. It is used in computers using processors manufactured by Intel Corporation.

第2のタイプのバイト順序においては、最下位バイトは、1ワードの8最上位ビ ットから成る。従って、各バイトの地位は、従って、包含するビットの地位に反 比例している。このタイプのバイト順序は、この産業では、「ビッグ・エンディ アン(big endian)J/<イト順序として知られ、ニューヨーク州ア ーモンクの18M社の製造による370メインフレーム・コンピュータや、イリ ノイ州ショーンバーグのモトローラ社の製造による68000型のプロセッサを 用いたコンピュータで採用されている。注意すべきは、ビッグ・エンディアン型 とリトル・エンディアン型とのどちらのタイプのバイト順序でも、ビットの地位 (すなわち、ピント・オーダー)は、バイト順序には影響されない点である。In the second type of byte order, the least significant byte is the 8 most significant bits of a word. Consists of. Therefore, the status of each byte is therefore contrary to the status of the bits it contains. It's proportional. This type of byte ordering is commonly used in this industry as a Known as the big endian order, located in New York - Monk's 370 mainframe computer manufactured by 18M Company, 68000 processor manufactured by Motorola of Schaumburg, Neue. It is adopted by the computer used. Be careful of big endian type In both types of byte order, little-endian and little-endian, the bit status (ie, focus order) is a point that is not affected by byte order.

特定のコンピュータ・システム内の要素が用いるバイト順序のタイプは、特に、 任意の与えられた時刻において1ワ一ド未満が送信される場合に、これらの要素 の間で情報が送信される態様に影響する。この情報が(通常は何らかのタイプの バスを介して)送信される特定の態様は、慣行によって決定されており、明白な パターンには従わない。この理由により、ビッグ・エンディアン型のコンピュー タ・システム(すなわち、ビッグ・エンディアン型のバイト順序を有する要素を 用いるコンピュータ・システム)と、リトル・エンディアン型のコンピュータ・ システムとにおける情報通信の例を、以下で図1〜図3を参照して説明する。The type of byte order used by elements within a particular computer system is, among other things, These elements if less than one word is transmitted at any given time. affects the manner in which information is transmitted between This information (usually some type of The specific aspects of the transmission (over the bus) are determined by practice and are obvious Don't follow patterns. For this reason, big-endian computers data system (i.e., elements with big-endian byte ordering) computer system used) and little endian computer system. Examples of information communication with the system are described below with reference to FIGS. 1-3.

最初に図1を参照すると、この図には、2つの異なるコンピュータ・システム( それぞれがプロセッサ及びレジスタ102を有しているとする)のバスを介して プロセッサ(図示せず)内のレジスタ102から送信される1バイトの情報の効 果を示しである。詳しくは、リトル・エンディアン型のコンピュータ・システム 内では32ビツトのバス104を介して、また、ビッグ・エンディアン型のコン ピュータ・システム内では32ビツトのバス106を介して、情報が送信されて いる。1バイトだけが送信されているので、情報は、レジスタ102の8最下位 ビット内に位置している。よって、レジスタ102は、バス104を用いた例の リトル・エンディアン型バイト順序を有するプロセッサと、バス106を用いた 例のビッグ・エンディアン型バイト順序を有するプロセッサとの内部にあるもの と仮定する。Referring first to Figure 1, the diagram shows two different computer systems ( each having a processor and registers 102). The effect of one byte of information sent from register 102 in a processor (not shown) This shows the results. For more information, see Little Endian Computer Systems A big-endian type controller is also connected via a 32-bit bus 104. Information is transmitted within a computer system over a 32-bit bus 106. There is. Since only one byte is being sent, the information is Located within a bit. Therefore, the register 102 is the same as the example using the bus 104. Using a processor with little endian byte ordering and bus 106 Example internals with a processor that has big endian byte ordering Assume that

図1では、バス104.106に、「バイト0」〜「バイト3」のラベルが付け られている。これは、バスを介して送信される各バイトの地位を表す(バイト0 を最下位バイトとする)。ここでは、レジスタ102からの1バイトの情報(情 報(A))が、各バスを介してバイト1で、成る要素(図示せず)の「バイト1 」を表す位置に送信される様子が(各コンピュータ・システムに関して)示され ている。バス104.106は、従って、バイトが要素によって受信されるバイ ト順序を反映する。結果的に、バイト情報がバス104.106上を送信される 態様は、ビッグ・エンディアン型、リトル・エンディアン型のバイト順序の使用 の間の差異を的確に図解するものとして用いられ得る。In Figure 1, buses 104.106 are labeled "Byte 0" through "Byte 3". It is being This represents the status of each byte sent over the bus (byte 0 is the least significant byte). Here, 1 byte of information from register 102 (information information (A)) is transmitted via each bus in byte 1, is shown (for each computer system) as being sent to a location representing ing. Buses 104.106 therefore represent the byte bytes received by the element. Reflects the order of prints. As a result, byte information is transmitted on bus 104.106. Use of big endian or little endian byte order It can be used to accurately illustrate the differences between

バス104によって示されるリトル・エンディアン型のバイト順序とバス106 によって示されるビッグ・エンディアン型のバイト順序との間の最も明白な差異 は、リトル・エンディアン型のバイト順序ではバイトOは8最下位ビットから成 るのに対して、ビッグ・エンディアン型のバイト順序ではバイト0は8最上位ビ ットから成る点である。よって、上述のように、リトル・エンディアン型のバイ ト順序ではバイト順序はビット順序に正比例するのに対して、ビッグ・エンディ アン型のバイト順序ではバイト順序とビット順序とは反比例の関係にある。Little endian byte order indicated by bus 104 and bus 106 The most obvious difference between the big-endian byte ordering indicated by In little endian byte ordering, byte O consists of the 8 least significant bits. whereas in big endian byte ordering, byte 0 is the 8 most significant bits. It is a point consisting of cuts. Therefore, as mentioned above, little endian type In big end order, byte order is directly proportional to bit order, whereas in big end order, byte order is directly proportional to bit order. In untyped byte ordering, byte order and bit order are inversely proportional.

従って、バス104によって示されるリトル・エンディアン型のバイト順序の例 では、情報(A)のバイトは、バス104に沿ったバイト1の位置に現れる。Thus, the example of little endian byte ordering indicated by bus 104 , the byte of information (A) appears at position byte 1 along bus 104 .

ここでは、バイト1は、ビット8〜15から成っている。バス106によって示 されるビッグ・エンディアン型のバイト順序の例では、情報(A)のバイトは、 バス106に沿ったバイト1の位置に現れる。しかし、今回は、バイト1は、ビ ット16〜23から成っている。結果的に、リトル・エンディアン型のバイト順 序とビッグ・エンディアン型のバイト順序とは、この例では入れ替わって(フリ ップして)現れる。Here, byte 1 consists of bits 8-15. indicated by bus 106. In the big-endian byte ordering example, the information (A) bytes are Appears at position byte 1 along bus 106. However, this time, byte 1 is It consists of parts 16 to 23. As a result, little endian byte ordering The big endian byte order is swapped (free) in this example. (up) to appear.

次に、図2を用いて、レジスタ102からの情報の半ワード(2バイト)がバス 104.106を介して送信される場合の効果を説明する。図2では、レジスタ 102には、それぞれのコンピュータ・システムでバス104.106を介して 成る要素(図示せず)のバイト0とバイト1とに送信される半ワードの情報が含 まれている。バス104で表されるリトル・エンディアン型のコンピュータ・シ ステムでは、レジスタ内の第1のバイト(情報(A))はバイト0に現れ、レジ スタ内の第2のバイト(情報(B))はバイト1に現れる。従って、情報(A) は8最下位ビットを介して送信され、情報(B)は8つの次の下位ビット(ビッ ト8〜15)を介して送信される。Next, using FIG. 2, half a word (2 bytes) of information from register 102 is transferred to the bus The effect when transmitted via 104.106 will be explained. In Figure 2, register 102 via buses 104.106 at their respective computer systems. Byte 0 and byte 1 of the element (not shown) contain half a word of information to be sent. It is rare. A little endian computer system represented by bus 104 In the stem, the first byte in the register (information (A)) appears in byte 0, The second byte in the star (information (B)) appears in byte 1. Therefore, information (A) is transmitted via the 8 least significant bits, and information (B) is transmitted via the 8 next least significant bits (bits). 8 to 15).

これと対照的に、ビッグ・エンディアン型のコンピュータ・システム(バス10 6で示しである)では、情報(A)はバイト1(ビット23〜16)に現れ、情 報(B)はバイト0(8最上位ビットから成る)に現れている。バス106を介 する情報は、バス104を介した場合と比較して、フリップされているのではな く、シフトされていることに注意すべきである(すなわち、リトル・エンディア ン型のバイト順序のバイトOは情報(A)を含み、これに対して、ビッグ・エン ディアン型のコンピュータ・システムでは、バイト0ではなくバイト1が情報( A)を含む)。In contrast, big-endian computer systems (bus 10 6), the information (A) appears in byte 1 (bits 23-16) and the information Information (B) appears in byte 0 (consisting of the 8 most significant bits). via bus 106 The information sent via the bus 104 is not flipped compared to the case when It should be noted that the Byte O of the big byte order contains information (A), whereas the big In a Dian computer system, byte 1 rather than byte 0 contains information ( A).

図3は、バス104.106を介して送信される1ワード(この例では4バイト )の情報の効果を示している。図3を参照すると、レジスタ102内の情報の順 序は、リトル・エンディアン型のバイト順序を表すバス104を介しての情報の 順序と同じであることがわかる。従って、情報(A)は、レジスタ102でもバ ス104を介しても両方で8最下位ビットを含む。Figure 3 shows one word (4 bytes in this example) sent over bus 104.106. ) shows the effect of information. Referring to FIG. 3, the order of information in register 102 is The sequence of information over bus 104 represents a little endian byte order. It can be seen that the order is the same. Therefore, information (A) is also stored in the register 102. Both also include the 8 least significant bits through the 8 least significant bits.

バス106を介してのビッグ・エンディアン型のバイト順序では、1ワードの情 報は、バス104を介してのリトル・エンディアン型のバイト順序の場合と同じ ビット・シーケンスで送信される。従って、1ワードがバス106を介して送信 される場合には、たとえば情報(A)は、バス104の場合と同様に8最下位ビ ットを介して送信される。しかし、各バイト順序が、バイト0、ノくイト1等と 考える順序は変化しないことに注意すべきである。With big endian byte ordering over bus 106, one word of information The information is the same as for little endian byte ordering over bus 104. Sent in a sequence of bits. Therefore, one word is transmitted via bus 106. For example, if the information (A) is sent via the network. However, the order of each byte is byte 0, node 1, etc. Note that the order of thinking does not change.

リトル・エンディアン型及びビッグ・エンディアン型のプロトコルのノくイト順 序に関するこれ以上の説明は、上述の”On Ho1y Wars And A Plea For Peace”に与えられている。また、以上の例では32ビ ツトのコンピュータ・アーキテクチャを示したが、説明した種々の概念は、他の サイズのアーキテクチャにも同様に適用できる。Order of little endian and big endian protocols Further explanation of the introduction can be found in “On Holy Wars And A” above. "Plea For Peace". Also, in the above example, 32 bits Although the various concepts described are The same applies to size architectures.

すべての要素(プロセッサ、メモリなど)が同じバイト順序を用いるような従来 型の計算環境で操作している場合には、バイト順序は、典型的には、日々の操作 においては、平均的なユーザやプログラマにとっては、関心対象ではない。これ は、バイト・サイズの情報は、特定のアドレスに書き込まれれば、典型的には同 じアドレスにおいてアクセスされ得るからである。これは基本的な原理であって 、これなしにはコンピュータはほとんど機能し得ないであろう。Traditionally, where all elements (processor, memory, etc.) use the same byte order When operating in a type computational environment, byte order is typically is of no interest to the average user or programmer. this The byte size information is typically the same once written to a particular address. This is because they can be accessed at the same address. This is a basic principle , without which a computer would hardly be able to function.

2つのバイト順序スキーム(これは以下で説明する)の間で生じる非互換性問題 のために、特定のコンピュータのバイト順序は、ユーザがどちらのタイプのソフ トウェアを購入すべきかを決める際に下すことのできる決定を制限している。Incompatibility issues that arise between two byte ordering schemes (this is explained below) Because of the byte order on a particular computer, the user limits the decisions you can make when deciding whether to purchase software.

更に詳しくは、オペレーティング・システムは、典型的には、一方のノくイト順 序又は他方のバイト順序に対して書かれている。たとえば、Microsoft NTはリトル・エンディアン型のコンピュータ・システムでの使用のために設計 されてお一す、他方で、Unixオペレーティング・システムの大部分はビッグ ・エンディアン型のコンピュータ・システムでの使用のために設計されている。More specifically, the operating system typically uses one or the other byte order. For example, Microsoft NT is designed for use in little endian computer systems. On the other hand, most Unix operating systems -Designed for use on endian computer systems.

結果的に、ユーザが使用しようとしているオペレーティング・システムのタイプ が、ユーザが購入できるコンピュータ・システムのタイプを決定することになる 。別の見方をすれば、ユーザが既に成るコンピュータを購入していれば、オペレ ーティング・システム購入に関する選択肢は限定されてしまう。Consequently, the type of operating system the user intends to use will determine the type of computer system users can purchase . Another way to look at it is if the user has already purchased a computer that consists of Your options for purchasing a marketing system are limited.

従って、ビッグ・エンディアン型又はリトル・エンディアン型のどちらの7(イ ト順序を用いても、オペレーティング・システム(及びその上で動く任意のソフ トウェア)をランすることができるコンピュータ・システムに対するニーズが生 じてきた。そうであれば、ユーザは、そのようなコンピュータ・システムを購入 できるし、いずれのバイト順序のソフトウェアも使用できる。よって、そのコン ピュータ・システムはどちらのバイト順序スキームを使っても動作することが可 能であるから、ユーザは、ビッグ・エンディアン又はリトル・エンディアン型の どちらのオペレーティング・システムでも用いることができる。Therefore, either big endian type or little endian type 7 (i.e. The operating system (and any software running on it) A need arose for computer systems that could run It has come. If so, the user may purchase such a computer system. Yes, and you can use software with either byte order. Therefore, the controller A computer system can operate using either byte ordering scheme. The user can use big-endian or little-endian It can be used with either operating system.

ビッグ・エンディアン又はリトル・エンディアン型のどちらのノくイト順序を用 いてもソフトウェアを動かせるコンピュータ・システムを設計する際のキーとな るステップは、ビッグ・エンディアン又はリトル・エンディアン型のどちらのモ ードでも動作するプロセッサを設計することである。カリフォルニア州すニーベ ールのMIPSコンピュータ・システムズ社は、パイエンディアン型の(すなわ ち、ビッグ・エンディアン又はリトル・エンディアン型のどちらのモードでも動 作し得る)マイクロプロセッサ(R−4000)を設計した。結果的に、ビ・ソ ゲ・エンディアン又はリトル・エンディアン型のどちらのバイト順序を用いたオ ペレーティング・システムでもこのマイクロプロセッサを用いて動かすことがで きる。Use either big-endian or little-endian ordering. The key to designing a computer system that can run software even when The step is for either big-endian or little-endian models. The goal is to design a processor that can operate at high speeds. Sunive, California MIPS Computer Systems, Inc. is a pie-endian (i.e. It can operate in either big endian or little endian mode. A microprocessor (R-4000) was designed. As a result, Bi-So operations using either game-endian or little-endian byte order. Operating systems can also be run using this microprocessor. Wear.

しかし、パイエンディアンであるプロセッサを単に製作するだけでは十分ではな い。これは、従来型のコンピュータの要素は、ビッグ・エンディアン又はリトル ・エンディアン型のどちらかのバイト順序を用いるように設計されているからで ある。すなわち、メモリ装置等の要素は、ビッグ・エンディアン型のノくイト順 序スキーム又はリトル・エンディアン型のバイト順序スキームのどちらかにおい て適切にアドレス指定が可能であるように構成されているのである。However, it is not enough to simply create a processor that is pie-endian. stomach. This means that traditional computer elements can be either big endian or little endian. ・This is because the endian type is designed to use either byte order. be. In other words, elements such as memory devices are arranged in big-endian sort order. in either the ordinal scheme or the little-endian byte ordering scheme. The structure is such that it is possible to specify addresses appropriately.

すべての要素がパイエンディアンであるようなコンピュータ・システムを構築す ることも可能かも知れないが、パイエンディアン型のプロセッサと既存の要素を 用いてコンピュータ・システムを作ることのほうが費用効果的にみて優れている だろう。そのようなコンピュータ・システムを作るためには、コンピュータ・シ ステムの設計者は、ビッグ・エンディアン又はリトル・エンディアン型のどちら かの要素(すなわち、ビッグ・エンディアン又はリトル・エンディアン型のどち らかのバイト順序を有する要素)を選択しなければならないであろう。パイエン ディアン型のプロセッサが第1のバイト順序モードで動作するように設定されて おり、そのプロセッサが情報を交換する要素が第2のバイト順序モードを有して いる場合に問題が生じる。この状況において遭遇する問題の例は、図4に示した 例を参照すると、最も的確に説明され得る。Build a computer system in which all elements are pie-endian. It may be possible to It is more cost-effective to create a computer system using right. In order to create such a computer system, the computer system must be The designer of the stem is either big endian or little endian. element (i.e., whether it is of big-endian or little-endian type) elements with a certain byte order). Payen A Dian-type processor is configured to operate in the first byte ordering mode. and the elements with which the processors exchange information have a second byte order mode. A problem arises when An example of the problem encountered in this situation is shown in Figure 4. It may be best explained with reference to an example.

図4を参照すると、パイエンディアン型のプロセッサ402が、ビッグ・エンデ ィアン型のモードで動作しているように示されている。よって、パイエンディア ン型プロセッサ402のバス・インターフェース408では、バイトOは8最下 位ビットを含んでいる。この特定の例では、1バイトの情報(A)が、バス40 ・4を介して送信されている。Referring to FIG. 4, a pie-endian processor 402 is a big-endian processor. It is shown operating in an illustrative mode. Therefore, Paiendia In the bus interface 408 of the processor 402, byte O is the 8 lowest Contains the digit bit. In this particular example, one byte of information (A) is ・It is transmitted via 4.

また、バス404には、リトル・エンディアン型の要素が付随している。この要 素は、たとえば、メモリ装置でかまわない。The bus 404 also has little endian elements attached to it. This cornerstone The element may be, for example, a memory device.

パイエンディアン型のプロセッサ402がバス404上にバイト0で情報(A) を送信する場合には、信号もまたバイトOて受信要素406に送られる。受信要 素・406がビッグ・エンディアン型のバイト順序を有しているならば、この処 理によって予想される結果は、情報(A)を受信する要素406の部分がイネー ブルされることである。しかし、この例では、要素406のバイトOがイネーブ ルされる(情報を受信できる)が、情報(A)はバイト3(イネーブルされてい ない)で受信される。The pie-endian processor 402 sends information (A) on the bus 404 in byte 0. , the signal is also sent to the receiving element 406 with byte O. Reception required If the element 406 has a big endian byte order, then this process The expected result is that the portion of element 406 that receives information (A) is enabled. It is to be bullied. However, in this example, byte O of element 406 is enabled. is enabled (can receive information), but the information (A) is byte 3 (enabled). (not received).

更に詳しくは、産業界で標準的な設計(indus t ry−s tanda rddesigns)により、1バイトがバス上を特定のバイト位置(たとえば 、バイト0)から送信される際には、受信する側の要素の対応するバイト位置が イネーブルされる。これと産業界で標準的な設計とのために、情報(A)は、リ トル・エンディアン型の要素406のどの部分にも全(受信されないことになる 。For more details, please refer to the standard design in the industry (industrial design) rddesigns), a byte moves on the bus to a specific byte location (e.g. , byte 0), the corresponding byte position of the receiving element is Enabled. Because of this and industry standard designs, information (A) is All (which will not be received) any part of the true-endian element 406 .

上述のものと同じタイプの問題は、半ワードがリトル・エンディアン型の要素4 06に送信された場合にも生じる。しかし、1ワ一ド全体が送信される場合には 、図3をも参照することによって予想できるように、リトル・エンディアン型の 要素406の4バイトすべてがイネーブルされ、よって、すべての情報が受信さ れる。特に、パイエンディアン型プロセッサ402のバイト0のバス・インター フェース408にある情報はリトル・エンディアン型の要素406のバイト3に よって受信され、バス・インターフェース408のバイト1はリトル・エンディ アン型の要素406のバイト2に書き込まれる等である。ワード全体が次にリト ル・エンディアン型の要素406から読み出される場合には、それは、送信され た際と同じ順序でパイエンディアン型プロセッサ402のバス・インターフェー ス402によって受信される。The same type of problem as above is a problem where the half word is a little endian element 4. This also occurs when the message is sent on 06. However, if an entire word is sent, , as can be expected by also referring to Figure 3, the little endian type All four bytes of element 406 are enabled, so all information is received. It will be done. In particular, the bus interface in byte 0 of pie-endian processor 402 The information in face 408 is stored in byte 3 of little endian element 406. Therefore, byte 1 of the bus interface 408 is received as a little endie. It is written to byte 2 of element 406 of type Un, and so on. The entire word is then lit When read from element 406 of type endian, it is the pie-endian processor 402 bus interface in the same order as when 402.

ビッグ・エンディアン又はリトル・エンディアン型のバイト順序スキームの有す る複雑な性質から理解されるように、ビッグ・エンディアン型要素がリトル・エ ンディアン型要素と、多数の生じ得るバイト送信状況に対して、効率的に通信す ることを可能にする解決策を作り出すことは容易ではない。この問題に対する1 つの解答は、MIPSコンピュータ・システムズ社による欧州特許出願第470 57082号に開示されている。この出願では、ターゲット要素(すなわち、情 報を受信する要素)のバイト・アドレスが、情報が受信可能であるように翻訳さ れる。更に詳しく図4に示した例を用いると、バイト0から情報(A)がデータ ・バス404を介して送信される場合には、リトル・エンディアン型要素の受信 側バイト・アドレスはバイトOからバイト3に翻訳される。その結果、リトル・ エンディアン型要素406の(バイトOではなく)バイト3がイネーブルされて 、バイト3がパイエンディアン・プロセッサ402のバス・インターフェース4 08のバイトOから情報(A)を受信する。Has a big-endian or little-endian byte ordering scheme? As can be understood from the complex nature of to communicate efficiently for a large number of possible byte-sending situations with Indian-type elements. It is not easy to create solutions that make it possible. 1 for this problem The answer is European Patent Application No. 470 by MIPS Computer Systems, Inc. It is disclosed in No. 57082. In this application, the target element (i.e. information the byte address of the element (that receives the information) is translated such that the information can be received. It will be done. Using the example shown in Figure 4 in more detail, information (A) is data starting from byte 0. Receiving little-endian elements when transmitted over bus 404 The side byte address is translated from byte O to byte 3. As a result, Little Byte 3 (rather than byte O) of endian element 406 is enabled. , byte 3 is bus interface 4 of pie-endian processor 402 Information (A) is received from byte O of 08.

MIPSによるアプローチに伴う問題は、それを既存のコンピュータ・システム 内に設置することが困難であるという点である。特に、すべてのターゲット要素 に対するアドレス・コントローラを設計し直さなければならない。これによって 、既存のコンピュータ・システムの内部的な機構を更に修正することが必要にな る。The problem with the MIPS approach is that it cannot be integrated into existing computer systems. The problem is that it is difficult to install it inside the building. In particular, all target elements address controller must be redesigned. by this , it may be necessary to further modify the internal mechanisms of existing computer systems. Ru.

MIPSによるアプローチでは適切に解決されない別の問題は、情報が、第1の バイト順序を有する要素から何らかの外部の媒体に送信され、次にその媒体から 第2のバイト順序を有する別の要素に送信されるという状況に関する。この問題 を、以下で、図5と図6とを参照して説明する。Another problem that is not adequately addressed by the MIPS approach is that the information sent from an element with byte order to some external medium, and then from that medium For the situation where it is sent to another element with a second byte order. this problem will be explained below with reference to FIGS. 5 and 6.

最初に図5を参照すると、この図は、メモリ装置内の1ワードの情報のバイトが 、その情報がビッグ・エンディアン型プロセッサから受信された後で、どのよう な状態になっているかという例を示している。更に詳しくは、図5は、ビッグ・ エンディアン型メモリ506とリトル・エンディアン型メモリ512との中の1 ワードの情報の、この情報がビッグ・エンディアン型プロセッサ502から受信 された後でのバイト順序を示している。情報のバイト順序は、バイトの[地位( s ign i f i cance)Jは逆になっている(既に図3に関して 説明したように)にもかかわらず、両方のメモリ装置に関して同じであることに 注意すべきである。また、リトル・エンディアン型のメモリ512は、1ワ一ド 全体の情報が送信されるという理由だけによってビッグ・エンディアン型プロセ ッサ502から情報を受信できることに注意すべきである。Referring first to FIG. 5, this diagram shows that the bytes of information in a word in a memory device are , after that information is received from the big endian processor. This is an example of what the situation is like. More specifically, Figure 5 shows the big One of the endian memory 506 and the little endian memory 512 This information is received from the big endian processor 502. shows the byte order after the The byte order of the information is determined by the byte [status ( sign i f i cancel) J is reversed (already with respect to Figure 3 Despite being the same for both memory devices (as explained) You should be careful. Further, the little endian type memory 512 has one word. A big-endian process simply because the entire information is sent It should be noted that information can be received from the processor 502.

次に図6を参照すると、媒体602上に示したバイト順序は、媒体602が、図 5のビッグ・エンディアン型プロセッサ502から(図示していないが、何らか のI10装置を介して)情報を受信したことの結果である。媒体602かられか るように、ビッグ・エンディアン型メモリ506のバイトO(これは、ここでは 、バイト・アドレスを表し、情報(D)を含む)は、位置0において媒体602 上に書き込まれ、次に、増加した地位のバイトがその後で媒体602の次の位置 に書き込まれる。これは、情報がそのような媒体上に書き込まれる従来型の態様 を表す。Referring now to FIG. 6, the byte order shown on media 602 indicates that media 602 is 5 big endian type processor 502 (not shown, I10 device). From the medium 602? Byte O of big endian memory 506 (this is here , representing a byte address and containing information (D)) is stored on the medium 602 at location 0. and then the increased status byte is then written to the next location on the medium 602. will be written to. This is the traditional manner in which information is written on such media. represents.

媒体602上の情報がビッグ・エンディアン型メモリ506に再度読み出される のならば、媒体602の位置Oはビッグ・エンディアン型メモリ506のバイト Oによって、位置1はバイト1によって、のように受信される。従って、媒体6 02からビッグ・エンディアン型のメモリ上への情報読みだしは、結果として、 ビッグ・エンディアン型メモリ506によって示される順序を有する情報を生じ る。Information on medium 602 is read back into big endian memory 506 , then location O of medium 602 is a byte of big endian memory 506. By O, position 1 is received by byte 1, and so on. Therefore, medium 6 Reading information from 02 onto big endian memory results in the following: produces information having the order indicated by big endian memory 506; Ru.

媒体602上の情報がリトル・エンディアン型メモリ604が示すようなリトル ・エンディアン型のメモリに送信される場合には、やはり、媒体602の位置0 はリトル・エンディアン型メモリ604のバイトOに、位置1はバイト1に読み 出される。ワード全体が媒体602から読み出される場合には、情報は、リトル ・エンディアン型メモリ604によって示されるような順序になる。しかし、バ イトの順序は、図5でリトル・エンディアン型メモリ512によって示されたも のとは逆であることに注意すべきである。結果として、リトル・エンディアン型 メモリ604におけるバイト情報は、あるべき順序とは逆になっている。If the information on medium 602 is - If sent to an endian memory, it is still at position 0 of the medium 602. is read into byte O of little endian memory 604, and position 1 is read into byte 1. Served. If the entire word is read from the medium 602, the information is • The order is as indicated by the endian memory 604. However, The order of the bits is as shown by little endian memory 512 in FIG. It should be noted that the opposite is true. As a result, the little endian type The byte information in memory 604 is in the opposite order as it should be.

上述の問題は、情報がバスを介して適切に並ばないのであるから、MIPSによ る解答のアドレス・スキームを操作しても解決され得ない。別言すれば、情報は 、示したようにバス608を介するとビッグ・エンディアン型プロセッサ606 によって不正確に受信され、バイト・アドレスのイネーブル方法を操作しても、 この状況を変えることはできない。The above problem is caused by MIPS because the information is not lined up properly across the bus. cannot be resolved by manipulating the addressing scheme of the answer. In other words, the information , via bus 608 as shown, big endian processor 606 Even if you manipulate the byte address enable method, This situation cannot be changed.

上述の問題の1つの解決策は、リトル・エンディアン型メモリ604内の情報の すべてのバイトを、ビッグ・エンディアン型プロセッサ606がその情報にアク セスできる前に、適切に並ぶように(すなわち、この例では、情報(D)をバイ ト3に、情報(A)をバイトOに、など)スイッチングすることである。しかし 、情報の量が多い(ワード数が多い)場合には時間がかかるために、このスキー ムはあまり有効ではない。One solution to the above problem is to store the information in little endian memory 604. All bytes are accessed by big endian processor 606. (i.e., in this example, the information (D) is 3, information (A) to byte O, etc.). but , this method is time consuming when there is a large amount of information (a large number of words). system is not very effective.

ある形式の媒体を用いて情報をリトル・エンディアン型メモリ604とビッグ・ エンディアン型プロセッサ606とによって示されるような混合型のコンピュー タ・システムに送信する可能性があるので、図5、図6に示したような問題は重 大であることを強調したい。また、上述の例は、プロセッサ/メモリの関係だけ ではな(、コンピュータ・システム内の2つの要素間の関係にも当てはまること も強調したい。Some form of media is used to store information in little endian memory 604 and big endian memory 604. A mixed-type computer as illustrated by an endian-type processor 606. The problems shown in Figures 5 and 6 are important because I want to emphasize that it is large. Also, the above example only deals with the processor/memory relationship. (This also applies to the relationship between two elements in a computer system.) I also want to emphasize.

発明の概要 本発明は、転送されるのが1バイト、半ワード、1ワード(又はバス幅のよって は、その整数倍)のいずれであるかにかかわらず、異なるバイト順序を有する要 素が情報を相互に効率的な態様で通信することを可能にするシス斗ム及び方法を 提供することによって従来の装置の欠点を克服する。本発明は、2.、っの要素 が異なるバイト順序を有する場合に、要素間に通信リンク(たとえば、バス)内 に情報のクロスオーバー・バイト・ラインの実施例を提供することによって、こ れらの結果を優れた態様で達成する。ある実施例によれば、2つの要素が同じバ イト順序を有しているとの指示を受信した場合には、バイト・ラインはクロスオ ーバーを停止する。Summary of the invention The present invention allows transfer of one byte, one half word, one word (or depending on the bus width). is an integer multiple of systems and methods that enable elements to communicate information with each other in an efficient manner. Overcoming the shortcomings of conventional devices by providing The present invention includes 2. , element within a communication link (e.g., a bus) between elements if they have different byte orders. This can be done by providing an example of a crossover byte line of information. These results are achieved in an excellent manner. According to one embodiment, the two elements are in the same bar. If an indication is received that the byte line has a stop the server.

本発明の実施例によれば、既存のシステムにおける使用が構想されており、その 場合には、コンピュータ・システム内の他の要素とは異なるバイト順序を有する 1つ又は複数の要素が既存のシステム内に挿入される。本発明は、次に、異なる バイト順序を有するこれらの要素の間の通信を可能にする。Embodiments of the invention are envisioned for use in existing systems; have a different byte order than other elements in the computer system One or more elements are inserted into an existing system. The invention then provides different Allows communication between these elements with byte order.

本発明の実施例によれば、ビッグ・エンディアン又はリトル・エンディアン型の どちらのバイト順序を有するオペレーティング・システム(更にそのほかのコン ピュータ・プログラム)でも使用できるように、パイエンディアン型のプロセッ サを有するコンピュータ・システム(あるいは、コンピュータ・システム内での 使用)が構想されている。このような状況では、本発明がパイエンディアン型の プロセッサ上で動いているコンピュータ・プログラムとそのコンピュータ・プロ グラムとは異なるバイト順序を有する要素との間を通信するようにおかれている 場合には、本発明は、バイト・ラインを交差(クロスオーバー)させ、要素が同 じバイト順序を有する場合には、交差させない。According to embodiments of the present invention, big endian or little endian Which byte ordering operating system (and other A pie-endian processor that can also be used with computer programs). a computer system (or within a computer system) that has use) is envisaged. In such a situation, the present invention is a pie-endian A computer program running on a processor and its computer program is designed to communicate between elements that have a different byte order than the gram. In cases where the byte lines cross over and the elements are do not intersect if they have the same byte order.

また別の実施例によれば、本発明がいったんオペレーティング・システムの動作 中に設定された場合には、その動作中には再設定(すなわち、クロスオーバーか ら非クロスオーバーへ、またその逆へのモードの変更)はおこなわれない。また 、別の実施例によれば、その時点で動いているコンピュータ・プログラムのバイ ト順序に応じて、本発明を動的に再設定することができる。この後者の実施例に よれば、第1のバイト順序を有するコンピュータ・プログラムは、第2のバイト 順序を有する別のコンピュータ・プログラムに連絡(call)することができ る。それにより、パイエンディアン型プロセッサのモード変更が必要になるし、 同時に、バイト・ラインがクロスオーバーされるかされないかを再設定すること も必要になる。According to yet another embodiment, the present invention may If set during operation, reconfiguration (i.e. crossover or (mode change from to non-crossover and vice versa) is not performed. Also , according to another embodiment, the bytes of the computer program currently running. The present invention can be dynamically reconfigured depending on the order of execution. In this latter embodiment According to can call another computer program with an order Ru. As a result, it is necessary to change the mode of the pie-endian processor, At the same time, resetting whether the byte lines are crossed over or not will also be required.

図面の簡単な説明 本発明の種々の目的、特徴、達成される効果は、添付の図面と共に以下の発明の 詳細な説明を参照することによってよりよく理解されるであろう。Brief description of the drawing Various objects, features, and achieved effects of the present invention can be seen in the following description of the invention along with the accompanying drawings. It will be better understood by referring to the detailed description.

図1は、レジスタから、リトル・エンディアン型のバイト順序を有する要素とビ ッグ・エンディアン型のバイト順序を有する要素とへの、1バイトの情報の転送 を示すブロック図である。Figure 1 shows elements and bits with little endian byte ordering from registers. Transfer of one byte of information to and from an element with double-endian byte ordering FIG.

図2は、レジスタから、リトル・エンディアン型のバイト順序を有する要素とビ ッグ・エンディアン型のバイト順序を有する要素とへの、半ワードの情報の転送 を示すブロック図である。Figure 2 shows elements and bits with little endian byte ordering from registers. Transfer half-word of information to and from an element with double-endian byte ordering FIG.

図3は、レジスタから、リトル・エンディアン型のバイト順序を有する要素とビ ッグ・エンディアン型のバイト順序を有する要素とへの、1ワードの情報の転送 を示すブロック図である。Figure 3 shows elements and bits with little endian byte ordering from registers. Transfer one word of information to an element with double-endian byte ordering FIG.

図4は、異なるバイト順序を有する2つの要素の間の情報の転送を示すブロック 図である。Figure 4 is a block diagram showing the transfer of information between two elements with different byte orders. It is a diagram.

図5は、ビッグ・エンディアン型プロセッサから、ビッグ・エンディアン型メモ リとリトル・エンディアン型メモリとに書き込まれる情報のシーケンスを示すブ ロック図である。Figure 5 shows a big endian memo from a big endian processor. A block indicating the sequence of information written to the memory and little endian memory. It is a lock diagram.

図6は、媒体からリトル・エンディアン型メモリに書き込まれ、更にその後にビ ッグ・エンディアン型プロセッサに送信されるバイトのシーケンスを示すブロッ ク図である。FIG. A block indicating the sequence of bytes sent to the big-endian processor. This is a diagram.

図7Aは、ビッグ・エンディアン型要素を用いた従来型のコンピュータ・システ ムと、リトル・エンディアン型要素を用いた従来型のコンピュータ・システムと を示すブロック図である。Figure 7A shows a conventional computer system using big endian elements. and traditional computer systems using little endian elements. FIG.

図7Bは、リトル・エンディアン型プロセッサとビッグ・エンディアン型要素と を有する本発明の実施例によるコンピュータ・システムと、ビッグ・エンディア ン型プロセッサとリトル・エンディアン型要素とを有する本発明の実施例による コンピュータ・システムとのブロック図である。Figure 7B shows a little endian processor and a big endian element. A computer system according to an embodiment of the present invention having According to an embodiment of the invention having a small endian type processor and a little endian type element. FIG. 2 is a block diagram of a computer system.

図8は、パイ・エンディアン型プロセッサとビッグ・エンディアン型要素とを有 する本発明の実施例によるコンピュータ・システムと、パイ・エンディアン型プ ロセッサとリトル・エンディアン型要素とを有する本発明の実施例によるコンピ ュータ・システムとのブロック図である。FIG. 8 shows a processor with a pie endian type processor and a big endian type element. A computer system according to an embodiment of the present invention and a pi-endian type program A computer according to an embodiment of the invention having a processor and a little endian type element. FIG. 2 is a block diagram of a computer system.

図9は、活性モードにある本発明の実施例を示す図である。FIG. 9 is a diagram illustrating an embodiment of the invention in active mode.

図10Aは、本発明の実施例による不活性モードにあるスイッチの図である。FIG. 10A is a diagram of a switch in an inactive mode according to an embodiment of the invention.

図10Bは、本発明の実施例による活性モードにあるスイッチである。FIG. 10B is a switch in active mode according to an embodiment of the invention.

図11は、本発明の実施例によるスイッチの回路図である。FIG. 11 is a circuit diagram of a switch according to an embodiment of the invention.

図12Aは、本発明の実施例による不活性モードにあるスイッチの使用を示す図 である。FIG. 12A is a diagram illustrating the use of a switch in an inactive mode according to an embodiment of the invention. It is.

図12Bは、本発明の実施例による活性モードにあるスイッチの使用を示す図で ある。FIG. 12B is a diagram illustrating the use of a switch in active mode according to an embodiment of the invention. be.

図13は、情報をスワップする本発明の実施例による方法のフローチャートであ る。FIG. 13 is a flowchart of a method according to an embodiment of the present invention for swapping information. Ru.

図14は、第1のバイト順序を有する要素から第2のバイト順序を有する要素へ 、1バイトの情報を転送する本発明の動作の例である。Figure 14 shows the transition from an element with a first byte order to an element with a second byte order. , is an example of the operation of the present invention to transfer one byte of information.

図15は、第1のバイト順序を有する要素から第2のバイト順序を有する要素へ 、半ワードの情報を転送する本発明の動作の例である。Figure 15 shows the flow from an element with a first byte order to an element with a second byte order. , is an example of the operation of the present invention to transfer half a word of information.

図16は、当初は第1のバイト順序を有する要素から生じた情報を、媒体から第 2のバイト順序を有する要素へ、更に、第1のバイト順序を有する要素へと転送 する本発明の実施例による例である。FIG. 16 transfers information originating from elements originally having the first byte order from the medium to the first byte order. Transfer to element with byte order of 2 and then to element with byte order of 1 This is an example according to an embodiment of the present invention.

図17は、第1のバイト順序を有するコンピュータ・プログラムの使用と第2の バイト順序を有するコンピュータ・プログラムの使用との間の動的なスイッチン グの本発明の実施例によるブロック図である。FIG. 17 illustrates the use of a computer program with a first byte order and a second byte order. Dynamically switching between using computer programs with byte ordering 1 is a block diagram of an embodiment of the present invention; FIG.

図18は、プロセッサのバイト順序を動的に変更して種々のバイト順序を有する コンピュータ・プログラムに適応させる本発明の実施例による方法のフローチャ ートである。Figure 18 shows how to dynamically change the byte order of a processor to have various byte orders. Flowchart of a method according to an embodiment of the invention adapted to a computer program It is the default.

好適実施例の詳細な説明 ■、全体像及び構成例 本発明は、第1のバイト順序を有するコンピュータ関連要素が、第2のバイト順 序を有するコンピュータ関連要素と有効に通信することを可能にするシステム及 び方法に関する。本発明の実施例によれば、2つの要素が同じバイト順序を有し ているかどうかを判定し、次に、その2つの要素が通信することを可能にするシ ステム及び方法が提供される。更に、本発明の実施例によれば、2つの要素相互 の通信を可能にするこれらの方策の動的な管理がなされる。Detailed Description of the Preferred Embodiment ■Overall image and configuration example The present invention provides a computer-related element having a first byte order that has a second byte order. systems and systems that enable effective communication with computer-related elements having and methods. According to an embodiment of the invention, two elements have the same byte order. determine whether the two elements communicate, and then create a system that allows the two elements to communicate. Systems and methods are provided. Further, according to embodiments of the invention, two elements A dynamic management of these measures is made to enable communications between the parties.

一般に、本発明は、従来の装置の欠点を克服するのにニレガントなスキームを用 いる。特に、本発明は、第1のバイト順序を有するコンピュータ関連要素が、第 2のバイト順序を有するコンピュータ関連要素と通信することを可能にするのに 、情報スワップ・スキームを用いる。2つのバイト順序スキーム内でのバイト管 理に関して上述した込み入った事情と、それらの間での相互作用を容易にするこ との困難とにもかかわらず、本発明によるスワップ・スキームは、所望の結果を 達成する。In general, the present invention uses an elegant scheme to overcome the drawbacks of conventional devices. There is. In particular, the present invention provides that a computer-related element having a first byte order To enable communication with computer-related elements that have a byte order of 2. , using an information swap scheme. Byte tubes within two byte ordering schemes The complexities mentioned above regarding the Despite the difficulties, the swap scheme according to the invention achieves the desired result. achieve.

情報の実際のスワップの実施に用いるスキームの詳細を説明する前に、スワップ が生じる本発明の実施例による種々の構成例と想定される状況とに関して説明す る。これらの実施例は、既存のコンピュータ・システムの内部での使用と、また 同時に、コンピュータ・システム全体を含むそれ自体での使用とを考慮している 。これらの実施例を図7A〜図70を参照して説明する。Before explaining the details of the scheme used to perform the actual swap of information, we The following describes various configuration examples and assumed situations according to embodiments of the present invention in which Ru. These embodiments are suitable for use within existing computer systems and also for use within existing computer systems. At the same time, it is considered for use on its own, including the entire computer system. . These embodiments will be described with reference to FIGS. 7A to 70.

最初に図7Aを参照すると、この図には、それぞれが1つの「マスク」及び2つ の「スレーブ」要素を有する2つの従来型のコンピュータ・システムが示されて いる。特に、これらのコンピュータ・システムは、それぞれが、プロセッサ(マ スク)と、メモリ及びI10装置(スレーブ)とを備えている。更に詳しくは、 コンピュータ・システム702Aは、ビッグ・エンディアン型メモリとビッグ・ エンディアン型I10とを備えたビッグ・エンディアン型プロセッサ(たとえば 、モトローラ68000)を有している。同様に、コンピュータ・システム70 4Aは、リトル・エンディアン型メモリとリトル・エンディアン型I10とを備 えたリトル・エンディアン型プロセッサ(たとえば、インテル80486)を有 している。コンピュータ・システム702A上では、ビッグ・エンディアン型の 環境で機能するように設計されたオペレーティング・システムや他のコンピュー タ・プログラムだけが動く。同様に、コンピュータ・システム704A上では、 リトル・エンディアン型の環境で機能するように設計されたオペレーティング・ システムや他のコンピュータ・プログラムだけが動(。Referring first to FIG. 7A, this figure shows one "mask" and two "masks" each. Two conventional computer systems are shown with "slave" elements of There is. In particular, these computer systems each have a A memory and an I10 device (slave). For more details, Computer system 702A has big endian memory and big endian memory. A big endian type processor with endian type I10 (e.g. , Motorola 68000). Similarly, computer system 70 4A is equipped with little endian type memory and little endian type I10. If you have a small-endian processor (for example, the Intel 80486) are doing. On computer system 702A, big endian operating systems and other computers designed to function in the environment. Only the data program works. Similarly, on computer system 704A, An operating system designed to function in a little-endian environment. Only systems and other computer programs are active (.

図7Aの従来型のコンピュータ・システムが元来動かす(ランする)ことを意図 しているものとは異なるバイト順序のソフトウェアを動かすことを可能にするた めには、そのプロセッサが、オペレーティング・システムの同じバイト順序を用 いて動作しなければならない。つまり、たとえば、ビッグ・エンディアン型のコ ンピュータ・システムにリトル・エンディアン型のオペレーティング・システム を使わせるためには、プロセッサが、どうにかして、リトル・エンディアン型モ ードで動く必要がある。そのための1つの方法としては、単純にコンピュータ・ システムのプロセッサを、逆のバイト順序(すなわち、オペレーティング・シス テムのバイト順序)を有するプロセッサと交換する方法がある。しかし、これだ けでは、図4との関係で上述した問題が存在するために不十分である。この問題 の解決策を、次に図7Bを参照しながら説明する。The conventional computer system of Figure 7A was originally intended to run This allows you to run software with a different byte order than what you are using. the processor uses the same byte order of the operating system. It has to work properly. This means, for example, that big-endian code A little endian operating system on your computer system In order to use It needs to run on the same mode. One way to do this is to simply use a computer Reverse byte order (i.e., operating system There is a way to replace it with a processor that has a different system byte order). But this is it However, this is insufficient due to the problems described above in connection with FIG. this problem The solution will now be described with reference to FIG. 7B.

図7Bを参照すると、コンピュータ・システム702Bは、ビッグ・エンディア ン型メモリ712とビッグ・エンディアン型110714を、図7Aのコンピュ ータ・システム702Aと同様に備えている。また、リトル・エンディアン型プ ロセッサ706とバス710を含むコンピュータ・システム702Bの残りの要 素との間には、スワップ装置708が通信をするように置かれている。このスワ ップ装置708によって、情報は、リトル・エンディアン型プロセッサ706と ビッグ・エンディアン型メモリ712等のビッグ・エンディアン型要素との間で 有効に通信される。これにより、実際、リトル・エンディアン型オペレーティン グ・システムとリトル・エンディアン型プロセッサ706上で動いているコンピ ュータ・プログラムとが、ビッグ・エンディアン型メモリ712とビッグ・エン ディアン型110714と通信することが可能になる。Referring to FIG. 7B, computer system 702B is a big endia memory 712 and big endian 110714 in the computer of FIG. 7A. It is equipped in the same way as the data system 702A. Also, little endian type The remaining components of computer system 702B include processor 706 and bus 710. A swap device 708 is placed in communication between the device and the device. This swa The information is transferred to the little endian processor 706 by the backup device 708. Between big endian type elements such as big endian type memory 712 communicated effectively. This actually creates a little-endian operating system. system and a computer running on a little endian processor 706. A computer program is stored in big endian memory 712 and big endian memory 712. It becomes possible to communicate with the Dian type 110714.

スワップ装置708は、以下で説明する態様でバイトを「スワップ」する(継続 的にスイッチングする(swi tch around))ことによって、上述 の仕事を行う。しかし、種々の要素のバイト・アドレスは修正されず、また、情 報はその目的地点に移動するにつれてスワップ装置708によってスワップされ ることに注意されたい。Swap device 708 “swaps” bytes (continuing) in a manner described below. By switching around (switch around), the above perform the work of However, the byte addresses of the various elements are not modified and the The information is swapped by swapping device 708 as it travels to its destination. Please note that

コンピュータ・システム702Bと同様に、コンピュータ・システム704Bで は、ビッグ・エンディアン型プロセッサ716がコンピュータ・システム704 Aのリトル・エンディアン型プロセッサを代替している。やはり、スワップ装置 708の存在によって、ビッグ・エンディアン型オペレーティング・システムと ビッグ・エンディアン型プロセッサ716上で動いているコンピュータ・システ ムとが、リトル・エンディアン型メモリ722やリトル・エンディアン型■10 724と通信することが可能になる。Similar to computer system 702B, computer system 704B In this case, the big endian processor 716 is connected to the computer system 704. It replaces A's little endian processor. After all, the swap device The existence of 708 allows big-endian operating systems and A computer system running on a big endian processor 716 The memory is little endian type 722 or little endian type ■10. It becomes possible to communicate with 724.

本発明の実施例によれば、プロセッサを逆のバイト順序を有するものと交換する にはコンピュータ・システムの中へのプロセッサのインターフェースをいくらか 修正する必要がある。よって、[グルー・ロジック(glue logic)J の修正が必要である。そのような修正は、当業者には明らかである。According to an embodiment of the invention, replacing the processor with one having a reverse byte order Some of the interfaces of the processor into the computer system are Needs to be fixed. Therefore, [glue logic J correction is necessary. Such modifications will be apparent to those skilled in the art.

図7Bのコンピュータ・システムに示したようにスワップ装置708をプロセッ サや他の要素と通信できるように配置することに加えて、本発明の実施例によれ ば、スワップ装置708を図7Bに示した態様とは別の態様で要素の間に通信可 能に配置することができる。たとえば、コンピュータ・システム702Aを参照 すると、ビッグ・エンディアン型メモリは、スワップ装置708及びリトル・エ ンディアン型メモリと代替できる。その結果として、第2のバイト順序を有する 任意の1つ又は複数の要素を、第1のバイト順序の要素を有するコンピュータ・ システムに導入することができるし、スワップ装置708を用いることでそのコ ンピュータ・システム内で機能させることができる。Swap device 708 is installed in the processor as shown in the computer system of FIG. 7B. In addition to being placed in communication with the server and other elements, embodiments of the present invention For example, swap device 708 may be configured to communicate between elements in a manner other than that shown in FIG. 7B. can be placed in the desired position. See, e.g., computer system 702A. Big endian memory is then swapped into swap device 708 and little endian memory. It can be replaced with Indian type memory. As a result, it has the second byte order convert any one or more elements into a computer code with elements in the first byte order; It can be installed in the system, and by using the swap device 708, the can function within a computer system.

本発明の実施例によれば、各プロセッサがスワップ装置708と通信する並列処 理アーキテクチャを有するコンピュータ・システムも可能である。According to embodiments of the invention, each processor has a parallel processor in communication with swap device 708. Computer systems having a physical architecture are also possible.

コンピュータ・システムのプロセッサを交換するのではなく、本発明の実施例( 及びそこで用いられる環境)によれば、上述のMIPS R−4000などのパ イエンディアン型プロセッサの使用も考慮される。このR−4000は、ビッグ ・エンディアン又はリトル・エンディアン型のモードで動作し得るので、ビッグ ・エンディアン又はリトル・エンディアン型のどちらのオペレーティング・シス テム(及び任意の他のコンピュータ・プログラム)でもこのプロセッサによって 使用可能である。Rather than replacing the processor in a computer system, embodiments of the invention ( and the environment used therein), the above-mentioned MIPS R-4000 and other The use of endian processors is also considered. This R-4000 is a big - Can operate in endian or little endian mode, so big ・Whether endian or little endian operating system system (and any other computer program) can also be run by this processor. Available for use.

要素(たとえば、メモリ及びI 10)の大部分はビッグ・エンディアン又はリ トル・エンディアン型のどちらか一方用に(両方ではな(て)設計されているの で、すべてがビッグ・エンディアン又はリトル・エンディアン型のどちらか一方 のバイト順序を有する要素を伴い、パイエンディアン型のプロセッサを用いるコ ンピュータ・システムを設計するのが典型的には最も有効である。本発明の実施 例ではそうではない場合も含んでいるが、図8には、そのような状況が開示され ている。Most of the elements (e.g. memory and I10) are big endian or read It is designed for either true-endian or true-endian (but not both) All are either big endian or little endian. A code using a pie-endian processor with elements having a byte order of It is typically most effective to design a computer system. Implementation of the invention Although the example includes cases where this is not the case, such a situation is disclosed in Figure 8. ing.

次に図8を参照すると、パイエンディアン型プロセッサ806と、ビッグ・エン ディアン型メモリ712と、ビッグ・エンディアン型110714と、バス71 0とを備えたコンピュータ・システム802が示されている。スワップ装置70 8は、パイエンディアン型プロセッサ806やコンピュータ・/ステム802の 他の要素と通信する。ビッグ・エンディアン型のオペレーティング・システムが パイエンディアン型プロセッサ806(ビッグ・エンディアン型モードに設定さ れ得る)上で動いている場合には、スワップ装置708は不活性モードにある( すなわち、バイトのスワップは生じない)が、これは、コンピュータ・システム 802内のすべての要素がビッグ・エンディアン型のバイト順序を有しているか らである。しかし、リトル・エンディアン型のオペレーティング・システムがパ イエンディアン型プロセッサ806(この場合は、リトル・エンディアン型モー ドに設定される)上で動いている場合には、スワップ装置708は活性モードに あり、情報がリトル・エンディアン型オペレーティング・システムとコンピュー タ・システム802のビッグ・エンディアン型要素との間を通過する際に有効に 用いられることが可能になる。同じ概念が、コンピュータ・システム804にも 適用でき、そこでは、ビッグ・エンディアン型要素ではな(てリトル・エンディ アン型要素が用いられている。Referring now to FIG. 8, a pie-endian processor 806 and a big big endian type memory 712, big endian type 110714, and bus 71 A computer system 802 is shown with 0 and 0. Swap device 70 8 is a pie-endian processor 806 or a computer/system 802. Communicate with other elements. Big endian operating system Pie-endian processor 806 (set to big-endian mode) swap device 708 is in inactive mode ( i.e. no byte swapping occurs), but this Do all elements in 802 have big endian byte order? It is et al. However, if a little endian operating system endian processor 806 (in this case, little endian mode) swap device 708 is in active mode. Yes, the information is stored on computers with little endian operating systems. Enabled when passing between big endian type elements of the data system 802. It becomes possible to be used. The same concept applies to computer system 804. applicable, where the element is not a big-endian type element (rather than a little-endian type element). Untype elements are used.

図8に示した要素に関しては、ある実施例によれば、パイエンディアン型プロセ ッサ806は特定のオペレーティング・システムのバイト順序に従って設定され ており、動作の最中に再設定はされない。本発明の他の実施例では、パイエンデ ィアン型プロセッサ806は適当な状況では再設定が可能であり、これはビッグ ・エンディアン型のオペレーティング・システムがリトル・エンディアン型ソフ トウェアのルーチンを呼び出した場合(又はその逆)などである。その場合には 、スワップ装置708は、同様にその時刻に、(活性から不活性、又はその逆に )状態を変更する。コンピュータ・システム804の例では、スワップ装置70 8は、ビッグ・エンディアン型オペレーティング・システムがリトル・エンディ アン型ソフトウェアのルーチンを呼び出した場合には、不活性から活性に変化す るつ 本発明の実施例によれば、いずれかのバイト順序を有するメモリ要素は、DRA MやCM OSなどを含む任意のタイプのコンピュータ・メモリ装置でかまわな い。別の実施例では、メモリは、直接メモリ・アクセス等のスキームによって制 御され得る。本発明の実施例によれば、I10要素は、I10装置への(ハード ディスク・コントローラや、LANコントローラなどの)インターフェースであ る。With respect to the elements shown in FIG. 8, according to some embodiments, pie-endian processing The processor 806 is configured according to the byte order of the particular operating system. It is not reset during operation. In another embodiment of the invention, the pie end The virtual processor 806 can be reconfigured under appropriate circumstances, and this ・An endian operating system becomes a little endian software (or vice versa). In that case , swap device 708 similarly changes from active to inactive or vice versa at that time. ) change state. In the example of computer system 804, swap device 70 8, a big endian operating system is a little endian operating system. If you call an untyped software routine, it will change from inactive to active. Rutsu According to embodiments of the invention, memory elements with either byte order are Can be any type of computer memory device, including M or CM OS. stomach. In another embodiment, memory is controlled by a scheme such as direct memory access. It can be controlled. According to an embodiment of the invention, the I10 element provides a (hardware) connection to the I10 device. (disk controller, LAN controller, etc.) interface. Ru.

また、別の実施例では、スワップ装置708は、独立した存在ではなく、コンピ ュータ・システムの(バスやメモリ装置などの)1つ又は複数の要素の統合部分 である。Also, in other embodiments, swap device 708 is not a separate entity; an integrated part of one or more elements (such as a bus or memory device) of a computer system It is.

■、考察される構成 本発明の実施例によれば、上述の特徴を容易にする情報のスワップを構成するこ とが構想される。第1に、本発明の種々の実施例で想定されているスワップ装f 1708を図9を参照して概念的に説明する。■,Constructions considered According to embodiments of the invention, it is possible to configure a swap of information that facilitates the features described above. is envisioned. First, the swap device f envisaged in various embodiments of the present invention 1708 will be conceptually explained with reference to FIG.

図9を参照すると4本のライン(A、B、C,D)がスワップ装置708を通過 しその内部で交差している様子が示されている。これらの各ラインは、幅が1バ イトである。図9ではライン(以下では、「バイト・ライン」と称する)は4本 であるが、本発明の種々の実施例での使用においては、本数は任意である。Referring to FIG. 9, four lines (A, B, C, D) pass through swap device 708. It is shown that they intersect inside the shiso. Each of these lines is one bar wide. It is. In Figure 9, there are four lines (hereinafter referred to as "byte lines"). However, any number may be used in various embodiments of the present invention.

図9からは、最も外側のバイト・ライン(A及びD)が相互に位置をスワップし ている様子がわかる。内側のバイト・ライン(B及びC)もまた相互に位置をス ワップしている。更に多くのバイト・ラインが用いられた場合でも、同様のパタ ーンが生じる。たとえば、更に2本のバイト・ラインが、バイト・ラインA、B の間に1本とC,Dの間に1本存在する場合であれば、これらの2本のバイト・ ラインはスワップ装置708を通過する際に相互に位置をスワップする。From Figure 9, the outermost bite lines (A and D) swap positions with each other. I can see how it is. The inner bite lines (B and C) also scan their positions relative to each other. I'm wappling. A similar pattern occurs even if more byte lines are used. A sound occurs. For example, two more byte lines are byte lines A and B. If there is one between C and D, then these two bytes The lines swap positions with each other as they pass through swap device 708 .

図9のスワップ装置t708は、活性モード(バイト・ラインはスワップされる )として表示されている。上述のように、このスワップ装置708を不活性モー ドすなわちバイト・ラインがスワップされないモード(スワップ装置708が全 く存在しないかのような状態)に設定することも可能である。スワップ装置70 8を構成する実施例は、以下て説明する。The swap device t708 of FIG. 9 is in active mode (the byte lines are swapped). ) is displayed. As mentioned above, this swap device 708 can be placed in an inactive mode. mode in which no byte or byte lines are swapped (swap device 708 is fully It is also possible to set it to a state as if it does not exist. Swap device 70 8 will be described below.

スワップ装置708を構成する本発明の実施例のいくつかでは、1つ又は複数の スイッチを用いる。これらの各スイッチは、スワップ装置が活性モードに設定さ れている場合には、2本のバイト・ラインをクロスオーバー(すなわち、スワ・ ツブ)する。これらのスイッチの例が、図10A及び図10Bに示されている。In some embodiments of the invention, swap device 708 includes one or more Use a switch. Each of these switches determines when the swap device is set to active mode. If the two byte lines are crossed over (i.e. swapped) Tsubu) to do. Examples of these switches are shown in FIGS. 10A and 10B.

これらの図におけるバイト・ラインのラベル付けは、(図11や、以下で述べる 図12A及び図12Bでも同様であるが)図9でのバイト・ラインのラベル付け と、明瞭さのために関連している。The labeling of the byte lines in these figures (see Figure 11 and below) Byte line labeling in Figure 9 (same for Figures 12A and 12B) and are related for clarity.

最初に図10Aを参照すると、スイッチ1002が示されており、バイト・ライ ンA、Dがそれを通過している。非クロスオーバー信号(たとえば、図10Aで 示したように0であり、これは、スワップ装置708が不活性モードにあること を示す)がクロスオーバー人力1004に送信された場合には、スイッチ100 2は不活性であり、バイト・ラインA、Dはスワップされない。しかし、クロス オーバー信号(たとえば、1)がクロスオーバー人力1004に送信された場合 には、スイッチ1002は活性であり、バイト・ラインA、Dは図10Bに示す ようにスワップされる。もちろん、本発明の実施例では、図1OA1図10Bに 関連してここで述べた以外の値を用いてスイッチ1002の活性、不活性を表す のは自由である。Referring first to FIG. 10A, a switch 1002 is shown, with a byte Tunes A and D are passing through it. Non-crossover signals (e.g., in Figure 10A 0 as shown, which means that swap device 708 is in inactive mode. ) is sent to the crossover human power 1004, the switch 100 2 is inactive and byte lines A, D are not swapped. But the cross If an over signal (for example, 1) is sent to the crossover human power 1004 , switch 1002 is active and byte lines A, D are shown in FIG. 10B. It is swapped like this. Of course, in embodiments of the present invention, FIG. Activation or inactivation of the switch 1002 is expressed using values other than those described here. is free.

図11に示した例を用いて更に詳細なスイッチ1002の実施例を説明する。A more detailed embodiment of the switch 1002 will be described using the example shown in FIG.

図11を参照すると、スイッチ1002は、示されているように構成された4つ のスイッチ1104を有している。これらのスイッチ1104は、たとえば、ト ランジスタでよい。また、インバータ1102が図のように構成されている。こ の特定の例では、クロスオーバー人力1004がヒー(たとえば、デジタル0で 表される)ならば、バイト・ライン1.2はスワップされない。しかし、クロス オーバー人力1004がノ\イ(たとえば、デジタル1で表される)ならば、/ くイト・ライン1.2はスワップされる。Referring to FIG. 11, switch 1002 includes four switches configured as shown. It has a switch 1104. These switches 1104 are, for example, A transistor is fine. Further, an inverter 1102 is configured as shown in the figure. child In this particular example, crossover human power 1004 may be ), then byte line 1.2 is not swapped. But the cross If the overpower 1004 is no\i (for example, represented by digital 1), / Kuit line 1.2 is swapped.

本発明では、この図11に示した以外の態様でスイッチ1002を構成すること が可能であることを理解されたい。In the present invention, the switch 1002 may be configured in a manner other than that shown in FIG. Please understand that this is possible.

本発明の実施例によればスワップ装置708においてスイッチ1002がどのよ うに用いられるかという例を、次に図12A及び図12Bを参照して説明する。According to an embodiment of the invention, how switch 1002 in swap device 708 An example of how this may be used will now be described with reference to FIGS. 12A and 12B.

最初に図12Aを参照すると、2つのスイッチ(1002A、1002B)がス ワップ装置708において用いられている。それぞれのスイッチは2本のバイト ・ラインを制御するので、スワップ装置708は、(図9の場合と同様に)4バ イト(つまり32ビツト)の情報を制御する。Referring first to Figure 12A, two switches (1002A, 1002B) It is used in the wap device 708. Each switch has two bytes - Since the swap device 708 controls the line, the swap device 708 has four banks (as in the case of FIG. 9). control bit (that is, 32 bits) of information.

図12Aに示されているように、バイト・ラインAは、8最下位ビット(すなわ ち、ビット0〜7)を含み、バイト・ラインDは、8最上位ビット(すなわち、 ビット24〜31)を含む。これらの2本のバイト・ラインは、スワップ装置7 08内の同じスイッチ1002Aを共用する。換言すれば、クロスオーバー人力 1004がクロスオーバー信号を受信する場合には、これらの2本のバイト・ラ インがスワップされる。スワップ装置708を通過する残りの2本のバイト・ラ イン(バイト・ラインBSC)は、ビット8〜15、ビット16〜23をそれぞ れ有し、スイッチ1002Bを共用する。スワップ装置708の両側で、バイト ・ラインA−Dは、それぞれビッグ・エンディアン又はリトル・エンディアン型 のどちらかのバイト順序を有する何らかの要素(図示せず)と通信する。図12 Aの例では、非クロスオーバー信号(この例ではO)が、クロスオーバー人力1 004によって受信される様子が示されている。結果的に、バイト・ラインはス ワップされない。図12Aは、よって、スワップ装置708の両側の要素が同じ バイト順序を有している状況を表す。すなわち、スワップ装置708のバイト・ ラインが通信する両方の要素がビッグ・エンディアン又はリトル・エンディアン 型のどちらかのバイト順序を有していることになる。As shown in Figure 12A, byte line A consists of the eight least significant bits (i.e. Byte line D contains the 8 most significant bits (i.e., bits 0-7); bits 24-31). These two byte lines are connected to swap device 7. The same switch 1002A in 08 is shared. In other words, crossover human power If the 1004 receives a crossover signal, these two byte Ins are swapped. The remaining two byte lines passing through swap device 708 In (byte line BSC), bits 8 to 15 and bits 16 to 23 are and share the switch 1002B. Bytes on both sides of swap device 708 ・Lines A-D are big endian or little endian, respectively. communicate with some element (not shown) that has a byte order of either . Figure 12 In example A, the non-crossover signal (O in this example) 004 is shown. As a result, the byte line Not wapped. FIG. 12A thus shows that the elements on both sides of swap device 708 are the same. Represents a situation that has a byte order. That is, the bytes of swap device 708 Both elements that the line communicates with are big endian or little endian It will have the byte order of either type.

これとは逆に図12Bには、スワップ装置708の両側の要素が同じバイト順序 を有していない状況が示されている。これは、クロスオーバー人力召号(この例 では1)をクロスオーバー人力1004が受信している事実によって示されてい る。よって、スイッチ1002A、1002Bは活性であり、示されているよう に、バイト・ラインをスワップする。具体的には、バイト・ラインA、Dがスワ ップされ、バイト・ラインBSCがスワップされる。これにより、既に図9との 関係で説明した効果が生じる。Conversely, FIG. 12B shows that the elements on both sides of swap device 708 have the same byte order. A situation is shown in which it does not have . This is a crossover human power invocation (in this example 1) is shown by the fact that the crossover human power 1004 is receiving Ru. Therefore, switches 1002A, 1002B are active and as shown. , swap byte lines. Specifically, byte lines A and D are and the byte line BSC is swapped. As a result, it is already in line with Figure 9. The effect described in relation occurs.

クロスオーバー人力信号は、実際には、ソース要素(情報を送信する側の要素) がターゲット要素とは異なるバイト順序を有する旨の指示として作用することに 注意すべきである。A crossover human signal is actually a source element (the element that sends the information) has a different byte order than the target element. You should be careful.

本発明の実施例によれば、図12A1図12Bのスワップ装置708を含む2つ のスイッチ1002A、1002Bの組み合わせは、カリフォルニア州すンタク ララのクォリティ・セミコンダクタ社製造による[クイック・スイッチ」 (部 品番号74QST3383)と呼ばれる製品を用いて実現できる。しかし、本発 明では、これとは別のたとえばASIC技術を用いてスワップ装置708を実現 することも可能であることを理解すべきである。これらの他のスキームでは、ス イッチを利用する場合も利用しないばあいもある(すなわち、マルチプレクサを 用いる)。According to an embodiment of the invention, two swap devices, including swap device 708 of FIGS. The combination of switches 1002A and 1002B is located in Suntak, California. [Quick Switch] manufactured by Lara's Quality Semiconductor Company This can be achieved using a product called 74QST3383). However, the original In the present invention, the swap device 708 is realized using a different ASIC technology, for example. It should be understood that it is also possible to These other schemes may or may not use a switch (i.e., a multiplexer may or may not be used). ).

本発明では、クロスオーバー人力信号は、種々の刺激の結果として発生すること ができて、バイト・ラインがどの場合にスワップされるべきなのかをスワップ装 置708に知らせる。1つの例は、プロセッサが、クロスオーバー人力1004 が応答する何らかのアドレス・ポートに書き込みをすることである。スワップ装 fit 708が活性化されるべきかどうかは、ユーザによっであるいは活性/ 不活性の設定を何らかの不揮発性メモリに記憶することによって、相互作用的に 設定される。この方法で、スワップ装置708は、コンピュータ・システムの要 素のバイト順序状態に基づいて適切に設定できる。In the present invention, crossover human input signals can occur as a result of various stimuli. is now available, and the swap settings specify when byte lines should be swapped. 708. One example is that the processor has a crossover human power 1004 is to write to some address port that responds. swap equipment Whether fit 708 should be activated is determined by the user or by activation/ interactively by storing inert settings in some non-volatile memory. Set. In this way, swap device 708 is used to Can be set appropriately based on raw byte order state.

図9、図12A1図12Bではスワップ装置708が4バイトの情報が扱われて いたが、これは単に例示であり、本発明では任意の数のバイトをスワップする実 施例が可能であることを理解されたい。また、本発明の実施例では、スワップ装 置の両側通信するように置かれた要素が常に異なるバイト順序を有する場合には 、当該スワップ装置708は恒久的に活性である場合もある。In FIGS. 9, 12A1 and 12B, the swap device 708 handles 4-byte information. However, this is just an example; the present invention can be used to swap any number of bytes. It is to be understood that implementations are possible. In addition, in the embodiment of the present invention, the swap If the elements placed so that both sides of the layout communicate always have different byte orders, then , the swap device 708 may be permanently active.

本発明による動作方法の実施例を、次に図13を参照して説明する。図13を参 照すると、第1のステップはコンピュータ・システム内の第1の要素が用いるバ イト順序を判断することである。これは、ブロック13o2に示されている。An embodiment of the method of operation according to the invention will now be described with reference to FIG. See Figure 13. In comparison, the first step is to identify the buffer used by the first element in the computer system. The purpose is to determine the order of the This is shown in block 13o2.

次に、(第1の要素と通信する)第2の要素が用いるバイト順序に関する判断が なされる。これはブロック13o4に示されている。Next, a decision regarding the byte order used by the second element (which communicates with the first element) is made. It will be done. This is shown in block 13o4.

次には、第1の要素が用いるバイト順序が第2の要素が用いるバイト順序と同じ かどうかに関する判断がなされる。これは決定ブロック13o6によって示され る。これらが同じ場合には、更なる作用は必要なく、2つの要素の間の通信は直 ちに開始され得る。これは、決定ブロック1306と接続されているブロック1 310で示されている。Then the byte order used by the first element is the same as the byte order used by the second element. A determination is made as to whether or not. This is indicated by decision block 13o6. Ru. If they are the same, no further action is required and communication between the two elements is straightforward. It can be started immediately. This is block 1 connected to decision block 1306. 310.

しかし、第1の要素と第2の要素で用いているバイト順序が同じではない場合に は、スワップ装置708が付勢されなければならない。これはブロック1308 に示されている。いったん付勢されると、第1及び第2の要素の間の通信が開始 するが、これはブロック131oに示されている。However, if the byte order used in the first and second elements is not the same To do so, swap device 708 must be activated. This is block 1308 is shown. Once energized, communication between the first and second elements begins , which is shown in block 131o.

■、動作の図解 本発明の実施例の有効な動作を示す例が、図14を参照して説明される。図14 を参照すると、ビッグ・エンディアン型プロセッサ14o2とリトル・エンディ アン型メモリ1406を有するコンピュータ・システムを示す例が与えられてい る。この例では、情報はビッグ・エンディアン型プロセッサ14o2とリトル・ エンディアン型メモリ1406との間の4バイトのバス141oを介して送信さ れる。スワップ装置708は(2つの要素のバイト順序が異なるから)活性状態 として示されており、ビッグ・エンディアン型プロセッサ14o2とリトル・エ ンディアン型メモリ1406との間のバス141oに接続されている。■Illustration of operation An example illustrating the effective operation of embodiments of the present invention will be described with reference to FIG. Figure 14 Referring to the big endian processor 14o2 and little endian processor An example is given showing a computer system having an unshaped memory 1406. Ru. In this example, the information is shared between big endian processor 14o2 and little endian processor 14o2. The data is sent via the 4-byte bus 141o to the endian memory 1406. It will be done. Swap device 708 is active (because the two elements have different byte orders) is shown as a big endian processor 14o2 and a little endian processor. The bus 141o is connected to the Indian memory 1406.

この特定の例では、レジスタ14o8は、1バイトの情報(情報(A))を含む 。バス・インターフェース14o4を介してバス141o上に送信される場合に は、情報(A)は図のようにバイト0において送信される。スワップ装置7゜8 が介在しない場合には、情報(A)は、発明の背景において図4に関連して説明 したように、リトル・エンディアン型メモリ1406 (これは情報を受信する ようにイネーブルされていない)のバイト3において受信される。これは、本発 明の実施例で(及び、それと共に用いられる環境で)用いられることが想定され ているコンピュータ・システムのメモリ管理スキームと共に用いられる標準的な プロトコルの結果である。このプロトコルのために、情報が送信側の要素(この 場合はビッグ・エンディアン型プロセッサ1402)のバイト0の位置で送信さ れる場合には、受信側要素(この場合はリトル・エンディアン型メモリ1406 )のバイトOがイネーブルされる。In this particular example, register 14o8 contains one byte of information (Information (A)). . When transmitted on bus 141o via bus interface 14o4 In this case, information (A) is sent in byte 0 as shown. Swap device 7゜8 If there is no intervening information (A), the information (A) is as described in connection with FIG. As mentioned above, little endian memory 1406 (which receives information is received in byte 3 of (not enabled). This is the original is intended to be used in (and in the environments used with) the specific embodiments. standard used with memory management schemes in computer systems that This is the result of the protocol. For this protocol, information is passed to the sending element (this In this case, it is sent at the byte 0 position of the big endian processor 1402). If the receiving element (in this case little endian memory 1406 ) is enabled.

従って、本発明では、活性なスワップ装置708が、情報(A)を適切な位置に 送られるようにスワップする。具体的には、情報(A)は、イネーブルされるリ トル・エンディアン型メモリのバイト・アドレス(すなわち、バイトO)によっ て受信される。Therefore, in the present invention, active swap device 708 places information (A) in the proper location. Swap as sent. Specifically, information (A) is Byte address (i.e., byte O) in true-endian memory received.

図15は、前の図で説明した場合の1バイトではなく半ワード(つまり、2バイ ト)の情報が送信される場合の例を示している。図15を参照すると、情報(A )及び情報(B)がレジスタ1408の内部に存在するとされている。この情報 は、バス・インターフェース1404を介してバス1410上に送信され、情報 (A)はバイト0において、情報(B)はバイト1において送信される。上述の メモリ管理スキームを考慮すると、この情報をリトル・エンディアン型メモリ1 406に書き込むことによって、リトル・エンディアン型メモリ1406のバイ ト0及び1がイネーブルされる。図15に示されるように、スワップ装置708 により、情報は、リトル・エンディアン型メモリ1406のイネーブルされた部 分によって受信されることが可能になる。Figure 15 shows a half word (i.e. two bytes) instead of one byte as described in the previous figure. An example is shown in which information on Referring to FIG. 15, information (A ) and information (B) are said to exist inside the register 1408. This information is sent on bus 1410 via bus interface 1404 and the information (A) is sent in byte 0 and information (B) is sent in byte 1. mentioned above Considering the memory management scheme, this information can be stored in little endian memory1 By writing to little endian memory 1406, Bits 0 and 1 are enabled. As shown in FIG. 15, swap device 708 information is stored in the enabled portions of little endian memory 1406. can be received within minutes.

本発明は、図14及び図15の例には限定されない。たとえば、任意の数のバイ トのバス幅が考慮できるし、上述の概念は、送信されるバイト数やターゲット要 素のどのバイト位置(バイト・アドレス)に送信されるかには関係なく適用可能 である。また、この例では、ビッグ・エンディアン型のマスク要素(ここでは、 プロセッサ)がリトル・エンディアン型のスレーブ要素(ここでは、メモリ)と 通信する様子が示されているが、他の組み合わせ、たとえば、スレーブとスレー ブ、マスクとマスタなどの組み合わせも想定され得る。The invention is not limited to the examples of FIGS. 14 and 15. For example, any number of bytes The bus width of the target bus can be taken into account, and the above concepts can be Applicable regardless of which byte location (byte address) of the element is being sent. It is. This example also uses a big-endian type mask element (here: processor) is a little-endian slave element (memory here) Although shown communicating, other combinations, e.g. slave and slave Combinations such as mask and master may also be envisaged.

本発明は、また、発明の詳細な説明において図5及び図6を参照して述べた媒体 からの情報の受信に関する問題も解決する。この例を、次に図16を参照して述 べる。The present invention also relates to the medium described with reference to FIGS. 5 and 6 in the detailed description of the invention. It also solves the problem of receiving information from. This example will now be described with reference to FIG. Bell.

図16を参照すると、媒体1602 (これは、フロッピィ・ディスク、テープ 、更にはLANなどの任意のタイプの移動可能な媒体でよい)が、既に図5及び 図6に関して説明したのと同様にビッグ・エンディアン型要素から4バイトの情 報を受信する様子が示されている。よって、ビッグ・エンディアン型要素のバイ ト0から送信される情報(D)が、媒体1602の位置0に示されている。情報 (C)は位置1にと順次水されている。Referring to FIG. 16, a medium 1602 (this may be a floppy disk, tape, , or even any type of movable medium, such as a LAN), as already shown in FIGS. 4 bytes of information from the big endian type element as explained in relation to Figure 6. It shows how the information is received. Therefore, bytes of big-endian elements Information (D) transmitted from point 0 is shown at position 0 of medium 1602. information In (C), water is sequentially poured into position 1.

情報がリトル・エンディアン型メモリ1406によって媒体1602がら(図示 してないが何らかのI10装置を介して)受信された場合には、バイト位置は整 合される。換言すれば、媒体1602の位置0にある情報はどれでもリトル・エ ンディアン型メモリ1406のバイト0に置かれ、位置1のものはバイト1に置 かれ、等である。これは、上述の産業界での標準的プロトコルに起因する。Information is stored by little endian memory 1406 on medium 1602 (not shown). (but not via some I10 device), the byte positions are aligned. will be combined. In other words, any information at position 0 on medium 1602 is are placed in byte 0 of Indian memory 1406, and those in position 1 are placed in byte 1. He, etc. This is due to the industry standard protocols mentioned above.

情報が、上述のようにリトル・エンディアン型メモリ1406内に置かれた場合 には、その情報のバイト順序は、図6に示したリトル・エンディアン型メモリ6 04で示したものと同じになる。図6に関連して説明したように、リトル・エン ディアン型メモリ604内の情報は、そのままでは、ビッグ・エンディアン型の プロセッサ606が用いることができない。使用するためには、この情報は、当 初に発生したフォーマット(これは、図5のビッグ・エンディアン型プロセッサ 502とビッグ・エンディアン型メモリ506が示すフォーマット)でなければ ならない。If the information is placed in little endian memory 1406 as described above , the byte order of that information is the little endian memory 6 shown in Figure 6. It will be the same as shown in 04. As explained in connection with Figure 6, the little en The information in the big-endian memory 604 is, as it is, big-endian. Processor 606 is unavailable. For use, this information must be The first format (this was the big-endian processor in Figure 5) 502 and the format indicated by the big endian memory 506). No.

再び図16を参照すると、スワップ装置708によって、本発明の実施例によっ て構想されるように、ビッグ・エンディアン型プロセッサ1402がリトル・エ ンディアン型メモリ1406からの情報を受信し使用することが可能になる。具 体的には、スワップ装置708は、情報をスワップして、たとえば、(リトル・ エンディアン型メモリ1406からバイト0の位置で送信される)情報(D)が 、図6の例で生じたようにビッグ・エンディアン型プロセッサ1402のバイト 3ではなくバイトOで受信される。よって、スワップ装置708の結果としてビ ッグ・エンディアン型プロセッサ1402によって受信される情報は、当該情報 が図5のビッグ・エンディアン型プロセッサ502によって当初に送信されたフ ォーマットにある。このようにして、情報がメモリ内にある場合にはスワップす る必要がなく、よって、時間を著しく節約できる。Referring again to FIG. 16, the swap device 708 allows the As envisioned, the big endian processor 1402 is information from Indian memory 1406 can be received and used. Ingredients Specifically, the swap device 708 swaps information such as ) information (D) sent from the endian memory 1406 at the location of byte 0. , byte of big endian processor 1402 as occurred in the example of FIG. Received with byte O instead of 3. Therefore, as a result of swap device 708, The information received by the high endian processor 1402 is is the file originally sent by big endian processor 502 in FIG. It's in the format. In this way, if the information is in memory, it will not be swapped. This saves significant time.

本発明の実施例では、I10要素(図示せず)を用いることで媒体1602とリ トル・エンディアン型メモリ1406との間の情報送信が容易にされている。Embodiments of the present invention utilize an I10 element (not shown) to link media 1602. Information transmission to and from true endian memory 1406 is facilitated.

一般的に、上述のように本発明の実施例での使用が想定されているI10要素は 、情報が1バイト幅の態様(a byte−wide fashon)でI10 要素へ、またI10要素から送信されることを考えている。情報が並列法で送信 される(すなわち、複数バイトの幅を用いて送信される)場合には、情報は、I 10要素へ、またI10要素から受信するのに先立ってスワップされる必要があ る。Generally, the I10 element contemplated for use in embodiments of the invention as described above is , the information is in a byte-wide fashion (I10) I am thinking of sending it to the element and from the I10 element. Information is transmitted in parallel manner (i.e., sent using a width of multiple bytes), the information 10 element and must be swapped prior to receiving from the I10 element. Ru.

本発明の実施例では、並列法を用いる場合には、データをI10要素に書き込む (又はそこから読み出す)前にスワップする装置ドライバを用いることで行う。In an embodiment of the invention, when using the parallel method, data is written to the I10 element. This is done by using a device driver that swaps before (or reading from) it.

そのような装置ドライバの設計及び構成は、当業者に知られている。また、付加 的なスワップ装置708を、代わりに、I10要素とコンピュータ・システムの その他の要素との間に置(ことも可能である。The design and construction of such device drivers is known to those skilled in the art. Also, additional The swap device 708 can be used instead to replace the I10 element and the computer system. It is also possible to place it between other elements.

■、動的なスワップ装置の具体例 上述のように、本発明の種々の実施例で構想されるコンピュータ・システムで用 いられるパイエンディアン型プロセッサのバイト順序モードは、動的に変更する ことが可能であり、スワップ装置708によって、オペレーティング・システム のバイト順序と異なるバイト順序を有するソフトウェアのルーチンも使用できる 。そのスキームの例が図17に示されている。■Specific example of dynamic swap device As discussed above, the computer systems contemplated by the various embodiments of the present invention may be The byte order mode of pie-endian processors can be changed dynamically. The swap device 708 allows the operating system to You can also use software routines that have a different byte order than . An example of that scheme is shown in FIG.

図17を参照すると、パイエンディアン型プロセッサ1708は第1のバイト順 序モード(ビッグ・エンディアン又はリトル・エンディアン型のどちらか)にあ り、第1のバイト順序を有するオペレーティング・システム(図示せず)を用い て動作するように構成されているとする。共に第1のバイト順序を有するメモリ 1702内のコンピュータ・プログラム1704が、結果的にアクセスされ、パ イエンディアン型プロセッサ1708によって、スワップ装置708を使用する 必要なく(すなわち、スワップ装ff1708は不活性であり、バイト・ライン はスワップされないで)ランされる。Referring to FIG. 17, the pie-endian processor 1708 uses the first byte order mode (either big endian or little endian). using an operating system (not shown) with a first byte order. Assume that the system is configured to operate as follows. Memories that both have first byte order Computer program 1704 within 1702 is subsequently accessed and Using swap device 708 by endian processor 1708 not needed (i.e. swap device ff1708 is inactive and the byte line is run (not swapped).

コンピュータ・システム1704内にソフトウェアのルーチン1706への呼び 出しがある場合には(ソフトウェアのルーチン1706は、第2のバイト順序を 有するプロセッサを用いて当初発生されている)、2つのことが起こる。第1に 、パイエンディアン型プロセッサ17o8は、そのバイト順序モードを第2のバ イト順序モードにスイッチし、このソフトウェアのルーチン1706に対応する 。第2に、パイエンディアン型プロセッサ17o8は今ではメモリ17o2とは 異なるバイト順序を用いているので、スワップ装置708が活性になる(すなわ ち、活性モードに再設定される)。結果的に、スワップ装置708内のバイト・ ラインは、上述したように情報のバイトをスワップする。Calls to software routines 1706 within computer system 1704 (Software routine 1706 sets the second byte order. (originally generated using a processor with Firstly , pie-endian processor 17o8 sets its byte order mode to the second switch to write order mode and correspond to routine 1706 of this software. . Second, pie-endian processor 17o8 now has memory 17o2 Since we are using a different byte order, swap device 708 becomes active (i.e. (The device is then reset to active mode.) As a result, the bytes in swap device 708 The lines swap bytes of information as described above.

いったんパイエンディアン型プロセッサ1708とスワップ装置708とがソフ トウェアのルーチン1706に対応するように再設定されると、ソフトウェアの ルーチン1706は、次に、パイエンディアン型プロセッサ1708によって受 信される。ルーチンの実行が完了した際には(または、ソフトウェアのルーチン 1706自身が第1のバイト順序を有する別のソフトウェアのルーチンを呼び出 した場合には)、パイエンディアン型プロセッサ17o8とスワップ装置7゜8 とは、その当初のモードに戻る。Once the pie-endian processor 1708 and the swap device 708 are Once reconfigured to correspond to the software routine 1706, the software Routine 1706 is then received by pie-endian processor 1708. be believed. When the routine completes execution (or the software routine 1706 itself calls a routine in another software that has the first byte order ), pie-endian processor 17o8 and swap device 7o8 and return to its original mode.

本発明の実施例によれば、コンピュータ・システム1フ02内にソフトウェアの ルーチン1706への呼び出しと関連してパイエンディアン型プロセッサ170 8とスワップ装置708とを別の状態に設定するようにとの指示があることが想 定される。しかし、本発明は、また、状態を他の方法で設定できる実施例も含む 。According to an embodiment of the present invention, software is installed in the computer system 1 file 02. pie-endian processor 170 in conjunction with a call to routine 1706; 8 and swap device 708 to different states. determined. However, the invention also includes embodiments in which the state can be set in other ways. .

図18は、本発明の動作方法の実施例を示している。図18を参照すると、第1 のステップでは、コンピュータ・プログラム1704が、第1のバイト順序モー ドで動いているパイエンディアン型プロセッサ1708において実行される。FIG. 18 shows an embodiment of the method of operation of the present invention. Referring to FIG. 18, the first In step , computer program 1704 selects a first byte order mode. The program is executed in a pie-endian processor 1708 running in a pie-endian mode.

これは、ブロック1802に示されている。コンピュータ・プログラム1704 は、次に、第2のバイト順序モードで実行されるように構成されたソフトウェア のルーチン1706を呼び出す。これは、ブロック1804によって示されてい る。This is shown at block 1802. Computer program 1704 is then configured to run in the second byte order mode. 1706 is called. This is indicated by block 1804. Ru.

次のステップは、パイエンディアン型プロセッサ1708とスワップ装置708 とを、第2のバイト順序モードで動くように再構成することである。すなわち、 パイエンディアン型プロセッサ1708のバイト順序はスイッチされ、スワップ 装置708は活性化される。これは、ブロック1806に示されている。いった んこれが行われれば、ブロック1808によって示されているように、ソフトウ ェアのルーチン1706がロードされ、パイエンディアン型プロセッサ1708 において実行される。The next step is the pie-endian processor 1708 and the swap device 708. and to operate in the second byte order mode. That is, The byte order of pie-endian processor 1708 is switched and swapped. Device 708 is activated. This is shown at block 1806. said Once this is done, as indicated by block 1808, the software The software routine 1706 is loaded and the pie-endian processor 1708 It is executed in

図17、図18によって示された本発明の実施例では、ソフトウェアのルーチン 1706は別のバイト順序を有しているものの、コンピュータ・プログラム17 04とメモリ1702とが同じバイト順序を有すると想定されているが、本発明 の実施例では、コンピュータ・プログラム1704がメモリ1702と異なるバ イト順序を有し、ソフトウェアのルーチン1706とメモリ1702とが同じバ イト順序を有するとすることもできる。その場合には、スワップ装置708は、 コンピュータ・プログラム1704の実行の間には活性であり、ソフトウェア1 706の実行の間には不活性である。In the embodiment of the present invention illustrated in FIGS. 17 and 18, the software routine Although 1706 has a different byte order, computer program 17 Although it is assumed that memory 1702 and memory 1702 have the same byte order, the present invention In this embodiment, computer program 1704 resides in a different memory than memory 1702. software routine 1706 and memory 1702 have the same byte order. It is also possible to have an order of In that case, the swap device 708 Software 1 is active during execution of computer program 1704; It is inactive during execution of 706.

本発明は、スワップ装置708の活性/不活性状態を動的に変更することが必要 あるいは効果的であるような池の状況や例における使用も想定していることを理 解されたい。The present invention requires dynamically changing the active/inactive state of the swap device 708. Or understand that it is also intended for use in pond situations and examples where it may be effective. I want to be understood.

本発明の実施例の種々の要素はハードウェア、ソフトウェア、その組み合わせに おいて実現可能であることは強調されるべきである。そのような実施例では、種 々の要素及びステソブカい一ドウエア及び(又は)ソフトウェアにおいて実現さ れ、本発明の機能を実行する。現在使用可能である又は将来開発され得るコンピ ュータ・ソフトウェアの言語及び(又は)ハードウェア要素は、本発明のそのよ うな実施例において用いられ得る。Various elements of embodiments of the invention may include hardware, software, and combinations thereof. It should be emphasized that this is possible. In such embodiments, the species implemented in hardware and/or software. and perform the functions of the present invention. Compilations currently available or that may be developed in the future The language and/or hardware elements of the computer software may be may be used in such embodiments.

本発明は上述の実施例に限定されず、用いた例は単に説明のためのものであるこ とを理解すべきである。本発明の範囲は、従って、以上の詳細な説明と図面とに よって定義される請求の範囲に従って解釈されるべきである。The invention is not limited to the embodiments described above, and the examples used are for illustrative purposes only. should be understood. The scope of the invention is, therefore, determined by the foregoing detailed description and drawings. Accordingly, it should be construed in accordance with the scope of the claims as defined herein.

〜 つ ビッグ・エンディアン型フォーマット(媒体上)FIG、7A FIG、 7B Fi(1,9 f:”i(1,l0A f:iQ、 IOB Fig、 12A Fil、 73 Fill、 14 ビッグ・エンディアン型フォーマット(媒体上)手続補正書 平成 6年 9月とiv~ One Big endian format (on media) FIG, 7A FIG. 7B Fi(1,9 f:”i(1,l0A f: iQ, IOB Fig, 12A File, 73 Fill, 14 Big endian format (on media) procedural amendment September 1994 and iv

Claims (1)

【特許請求の範囲】 1.コンピュータ・システム内のバイトから成る情報の送信を容易にする装置に おいて、 第1のバイト順序を有し、前記コンピュータ・システムに情報を提供することが できる第1の要素と、 前記第1の要素から前記情報を受信することができる第2の要素と、前記第1の 要素と前記第2の要素との間に通信可能に配置され、前記第2の要素のバイト順 序が第2のバイト順序である場合には、前記第2の要素による受信に先立って前 記情報の前記バイトをスワップするスワップ手段と、を備えていることを特徴と する装置。 2.請求の範囲1記載の装置において、前記第1の要素は第1のバイト順序モー ドを用いて当初構成されたバイエンディアン・プロセッサであり、 該バイエンディアン・プロセッサが、前記第1のバイト順序を有する第1のコン ピュータ・プログラムをランしていることを特徴とする装置。 3.請求の範囲2記載の装置において、第2のバイト順序を有する第2のコンピ ュータ・プログラムをランするという前記第1のコンピュータ・プログラムによ る要求を受信した際には、前記バイエンディアン・プロセッサは第2のバイト順 序を用いて再構成され、前記スワップ手段は、前記バイエンディアン・プロセッ サが前記第1のコンピュータ・プログラムをランしている場合に情報のバイトが スワップされる位置で情報のバイトのスワップを停止し、前記スワップ手段は、 前記バイエンディアン・プロセッサが前記第1のコンピュータ・プログラムをラ ンしている場合に情報のバイトがスワップされない位置で情報のバイトをスワッ プすることを特徴とする装置。 4.請求の範囲1記載の装置において、前記スワップ手段は2バイトのラインが その内部を通過する少なくとも1つのスイッチ手段を備えており、 前記少なくとも1つのスイッチ手段は、前記スイッチが活性化するように指示す るクロスオーバー入力信号を受信した際に、2バイトのラインを接続的にスワッ プすることを特徴とする装置。 5.請求の範囲1記載の装置において、前記スワップ手段は、前記第1の要素又 は前記第2の要素の統合部分であることを特徴とする装置。 6.バイトから成りバイト順序を有するソース要素によって送信される、コンピ ュータ・システム内の情報の送信を容易にする装置において、第1のバイト順序 を有し、前記情報を受信するターゲット要素と、前記ターゲット要素と通信し、 前記ソース要素の前記バイト順序に関する指示を受信するスワップ手段と、を備 えており、前記ソース要素が前記ターゲット要素の前記第1のバイト順序と異な るバイト順序を有するとの指示を受信した際には、前記スワップ手段は、前記情 報が前記ターゲット要素によって受信されるのに先立って前記情報の前記バイト がスワップされる活性モードに設定され、 前記ソース要素が前記第1のバイト順序を有するとの指示を受信した際には、前 記スワップ手段は、前記情報が前記ターゲット要素によって受信されるのに先立 って前記情報の前記バイトがスワップされない不活性モードに設定されることを 特徴とする装置。 7.請求の範囲6記載の装置において、前記ターゲット要素がメモリ装置である ことを特徴とする装置。 8.請求の範囲6記載の装置において、前記ソース要素は第1のバイト順序モー ドを用いて当初構成されたパイエンディアン・プロセッサであり、 該バイエンディアン・プロセッサが、前記第1のバイト順序を有する第1のコン ピュータ・プログラムをランしていることを特徴とする装置。 9.請求の範囲8記載の装置において、第2のバイト順序を有する第2のコンピ ュータ・プログラムをランするという前記第1のコンピュータ・プログラムによ る要求を受信した際には、前記バイエンディアン・プロセッサは第2のバイト順 序を用いて再構成され、前記スワップ手段は、不活性モードに設定されている場 合には、活性モードに再設定され、また、前記スワップ手段は、活性モードに設 定されている場合には、不活性モードに再設定されることを特徴とする装置。 10.バイトから成りバイト順序を有するコンピュータ・プログラムを利用する コンピュータ・システムにおいて、 第1のバイト順序モード又は第2のバイト順序モードのどちらかで動作し、前記 コンピュータ・プログラムの前記バイト順序モードを用いて動作するように構成 されているプロセッサ手段と、 バイト順序を有しており、前記コンピュータ・プログラムを記憶し、前記プロセ ッサ手段が前記コンピュータ・プログラムにアクセスすることを可能にする要素 と、 前記プロセッサ手段と前記要素との間に通信可能に配置され、前記プロセッサ手 段の前記バイト順序モードの指示を受信し、前記要素の前記バイト順序が前記プ ロセッサ手段の前記バイト順序と異なる場合には、前記コンピュータ・プログラ ムの前記バイトをスワップするスワップ手段と、を備えていることを特徴とする コンピュータ・システム。 11.請求の範囲10記載の装置において、前記スワップ手段は2バイトのライ ンがその内部を通過する少なくとも1つのスイッチ手段を備えており、 前記少なくとも1つのスイッチ手段は、前記スイッチが活性化するように指示す るクロスオーバー入力信号を受信した際に、2バイトのラインを接続的にスワッ プすることを特徴とする装置。 12.請求の範囲10記載の装置において、前記要素がメモリ装置であることを 特徴とする装置。 13.コンピュータ・システム内で、それぞれがバイト順序を有している第1の 要素と第2の要素との間の情報の送信を容易にする方法において、(1)前記第 1の要素の前記バイト順序が、前記第2の要素の前記バイト順序と同じかどうか を判定するステップと、(2)前記第1の要素の前記バイト順序が前記第2の要 素の前記バイト順序と同じではないと前記ステップ(1)で判定された場合に、 バイト・スワップ装置を付勢するステップと、 (3)前記第1の要素の前記バイト順序が前記第2の要素の前記バイト順序と同 じであると判定された場合に、前記バイト・スワップ装置を消勢するステップと 、 を有することを特徴とする方法。 14.請求の範囲13記載の方法において、前記第1の要素の前記バイト順序に 関する情報を受信するステップと、前記第2の要素の前記バイト順序に関する情 報を受信するステップと、を、前記ステップ(1)に先立って、有することを特 徴とする方法。[Claims] 1. a device that facilitates the transmission of information consisting of bytes within a computer system Leave it behind. having a first byte order and providing information to the computer system; The first element that can be a second element capable of receiving the information from the first element; communicatively disposed between the element and the second element, the byte order of the second element If the order is a second byte order, then the previous byte order is swapping means for swapping the bytes of recorded information. device to do. 2. 2. The apparatus of claim 1, wherein the first element is in a first byte order mode. It is a bi-endian processor originally configured using The bi-endian processor processes a first computer having the first byte order. A device characterized in that it is running a computer program. 3. 3. The apparatus of claim 2, wherein a second compiler having a second byte order by said first computer program running a computer program; When the bi-endian processor receives a request for a second byte order, the swap means is reconfigured using the bi-endian bytes of information when the computer is running said first computer program. stopping swapping of the bytes of information at the location to be swapped, said swapping means comprising: the bi-endian processor runs the first computer program; swapping bytes of information in locations where bytes of information would not be swapped if A device characterized by: 4. 2. The apparatus of claim 1, wherein the swapping means has a 2-byte line. at least one switch means passing therethrough; The at least one switch means is configured to instruct the switch to be activated. Connectively swaps two byte lines when a crossover input signal is received. A device characterized by: 5. 2. The device according to claim 1, wherein said swapping means comprises said first element or is an integral part of said second element. 6. A compiler sent by a source element consisting of bytes and having a byte order. In a device that facilitates the transmission of information within a computer system, a first byte order a target element having: a target element configured to receive said information; swapping means for receiving an indication regarding the byte order of the source element. and the source element is in a different order than the first byte order of the target element. upon receiving an indication that the swapping means has a byte order of the bytes of the information prior to the information being received by the target element; is set to active mode where it is swapped, Upon receiving an indication that the source element has the first byte order, The swapping means is configured to swap the information before the information is received by the target element. means that said bytes of said information are set to an inactive mode in which they are not swapped. Featured device. 7. 7. The apparatus of claim 6, wherein the target element is a memory device. A device characterized by: 8. 7. The apparatus of claim 6, wherein the source element is in a first byte order mode. It is a pie-endian processor originally configured using The bi-endian processor processes a first computer having the first byte order. A device characterized in that it is running a computer program. 9. 9. The apparatus of claim 8, wherein a second compiler having a second byte order by said first computer program running a computer program; When the bi-endian processor receives a request for a second byte order, If the swapping means is set to inactive mode, If so, the swapping means is reset to the active mode, and the swap means is set to the active mode. device, characterized in that it is reset to an inactive mode if the 10. use a computer program that consists of bytes and has a byte order In computer systems, operating in either the first byte order mode or the second byte order mode; a computer program configured to operate using said byte order mode; processor means, has a byte order, stores the computer program and executes the process. an element that allows the computer program to be accessed by the computer program; and, communicatively disposed between said processor means and said element; receiving an indication of the byte order mode of the stage, the byte order of the element is If different from said byte order of the processor means, said computer program swapping means for swapping the bytes of the program. computer system. 11. 11. The device according to claim 10, wherein the swapping means is a 2-byte memory card. at least one switch means through which the switch passes; The at least one switch means is configured to instruct the switch to be activated. Connectively swaps two byte lines when a crossover input signal is received. A device characterized by: 12. 11. The apparatus of claim 10, wherein the element is a memory device. Featured device. 13. Within a computer system, the first A method for facilitating transmission of information between an element and a second element, comprising: (1) said first element; whether the byte order of one element is the same as the byte order of the second element; (2) the byte order of the first element is determined by the second requirement; If it is determined in step (1) that the byte order is not the same as the original byte order, energizing a byte swap device; (3) the byte order of the first element is the same as the byte order of the second element; disabling the byte swapping device if it is determined that the byte swapping device is the same; , A method characterized by having the following. 14. 14. The method of claim 13, wherein the byte order of the first element and receiving information regarding the byte order of the second element. prior to step (1), the method further comprises the step of receiving information. How to make it a sign.
JP6515373A 1992-12-21 1993-12-17 Apparatus, system and method for facilitating communication between elements with different byte orders Pending JPH07505972A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US99440592A 1992-12-21 1992-12-21
US994,405 1992-12-21
PCT/US1993/012416 WO1994015269A2 (en) 1992-12-21 1993-12-17 Apparatus, system and method for facilitating communication between components having different byte orderings

Publications (1)

Publication Number Publication Date
JPH07505972A true JPH07505972A (en) 1995-06-29

Family

ID=25540637

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6515373A Pending JPH07505972A (en) 1992-12-21 1993-12-17 Apparatus, system and method for facilitating communication between elements with different byte orders

Country Status (3)

Country Link
EP (1) EP0629303A1 (en)
JP (1) JPH07505972A (en)
WO (1) WO1994015269A2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627975A (en) * 1994-08-02 1997-05-06 Motorola, Inc. Interbus buffer for use between a pseudo little endian bus and a true little endian 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
US5778406A (en) * 1995-06-30 1998-07-07 Thomson Consumer Electronics, Inc. Apparatus for delivering CPU independent data for little and big endian machines
US5819117A (en) * 1995-10-10 1998-10-06 Microunity Systems Engineering, Inc. Method and system for facilitating byte ordering interfacing of a computer system
WO1997044739A1 (en) * 1996-05-23 1997-11-27 Advanced Micro Devices, Inc. Apparatus for converting data between different endian formats and system and method employing same
US6351750B1 (en) * 1998-10-16 2002-02-26 Softbook Press, Inc. Dynamic conversion of byte ordering for use on different processor platforms
FR2795573B1 (en) * 1999-06-25 2001-11-30 Inst Nat Rech Inf Automat DEVICE FOR MANAGING THE EXCHANGE OF DATA BETWEEN COMPUTER EQUIPMENT
EP2177987A1 (en) * 2008-10-17 2010-04-21 Alcatel Lucent A method for handling different types of data, corresponding device, storage means, and software program therefore
US10025555B2 (en) 2016-08-31 2018-07-17 Mettler-Toledo, LLC Byte order detection for control system data exchange

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0282969A3 (en) * 1987-03-18 1989-03-15 Hitachi, Ltd. Computer system having byte sequence conversion mechanism
JP2633331B2 (en) * 1988-10-24 1997-07-23 三菱電機株式会社 Microprocessor
DE69124437T2 (en) * 1990-08-09 1997-07-03 Silicon Graphics Inc Method and device for reversing byte order in a computer

Also Published As

Publication number Publication date
WO1994015269A2 (en) 1994-07-07
WO1994015269A3 (en) 1994-11-24
EP0629303A1 (en) 1994-12-21

Similar Documents

Publication Publication Date Title
JP3732197B2 (en) Method and apparatus for executing floating point and packed data instructions using a single register file
FR2752466A1 (en) INTEGRATED PROCESSOR DEVICE FOR DIGITAL SIGNALS
JP5709775B2 (en) A processor that performs a selection operation
JPH10232788A (en) Signal processor and software
WO1997014101A1 (en) Method and system for facilitating byte ordering interfacing of a computer system
KR100381076B1 (en) Interbus buffer
US4338663A (en) Calling instructions for a data processing system
JP4098241B2 (en) Method and apparatus for connecting a processor to a coprocessor
JPH07505972A (en) Apparatus, system and method for facilitating communication between elements with different byte orders
JP3940435B2 (en) Method and apparatus for performing direct memory access (DMA) byte swapping
JP3319764B2 (en) Method and apparatus for synchronizing software functions between software systems
JP3110230B2 (en) Data access instruction decoding method and apparatus
JPH0650863B2 (en) Interface for direct data transfer
EP1104559A1 (en) Data processor with an arithmetic logic unit and a stack
CN100390741C (en) Program processing system, program processing method, and computer program
FR2752629A1 (en) SINGLE INSTRUCTION MULTIPLE DATA PROCESSING WITH COMBINED SCALAR / VECTOR OPERATIONS
US7251248B2 (en) Connection device
JPH076133A (en) Data transfer method and data- processing system
JP2848297B2 (en) Multiprocessor interrupt control system
JP2531080B2 (en) Bus adapter switching method
JP2821176B2 (en) Information processing device
JP3474347B2 (en) Instruction decoding unit of microcomputer
JP3517139B2 (en) Information processing equipment
CN114025013A (en) Information processing method, device and equipment
JP3208789B2 (en) Information processing device