(57)【要約】【課題】リトルエンディアン形式とビッグエンディアン形式の両方のシステムで両立し得るエンディアン変換回路を簡易な構成によって実現し、エンディアン変換処理をシステムの処理速度の低下することなく実行することを目的とする。【解決手段】リトルエンディアン形式かビッグエンディアン形式かを判別するエンディアン判別レジスタとエンディアン判別レジスタの値をもとにいすれかのエンディアン形式に対応してアドレス変換を行うアドレス変換回路を備えたエンディアン変換回路である。【選択図】        図１
2004355432.tif 000002
【特許請求の範囲】
【請求項１】
リトルエンディアン形式のデータまたはビッグエンディアン形式のデータを扱う装置において、システムのエンディアン形式を判別するエンディアン判別レジスタと該エンディアン判別レジスタの値をもとにアドレス変換を行うアドレス変換回路とを備えたエンディアン変換回路である。
【請求項２】
前記アドレス変換回路は、アドレスの下位２ビットを前記エンディアン判別レジスタの出力とＸＯＲ処理を行うことを特徴とする請求項１記載のエンディアン変換回路。
【請求項３】
前記エンディアン変換回路において、システムのエンディアン形式を自動判別してアドレス変換を行うことを特徴とする請求項２記載のエンディアン変換回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はビッグエンディアン形式、リトルエンディアン形式のいずれかに関わらず、ロングワードのデータを扱うことを可能とするデータアクセス方式であり、更にエンディアン形式を自動に判別することを特徴とするエンディアン変換回路に関する。
【０００２】
【従来の技術】
従来、１ワードが複数バイトで構成されるロングワードのデータを扱うシステムにおいては、データアクセスにおけるバイトの並びの方式には、ビッグエンディアンとリトルエンディアンの２つの方式があり、一般に普及しているコンピュータはいずれかの方式をとっている。最小桁ビットが最下位のアドレスに存在するようなデータの並びがリトルエンディアン形式、最大桁ビットが最下位のアドレスに存在するようなデータの並びがビッグエンディアン形式である。
【０００３】
また、ロングワードのデータ（例えば、３２ビット単位のデータ）をワード単位（例えば、１６ビット単位）で転送する場合、リトルエンディアン形式においてはローア側のワードデータの転送を先に行うが、ビッグエンディアン形式においてはアッパー側のワードデータの転送を先に行う。図５において、Ｄ０〜Ｄ３はロングワードのデータであり、Ｄ３が最上位バイト、順にＤ２、Ｄ１、最下位バイトがＤ０である。また、図５（ａ）はリトルエンディアン形式であり、アドレスＮ番地からＮ＋１番地、Ｎ＋２番地、Ｎ＋３番地にそれぞれＤ０、Ｄ１、Ｄ２、Ｄ３が配置される。図５（ｂ）はビッグエンディアン形式であり、アドレスＮ番地からＮ＋１番地、Ｎ＋２番地、Ｎ＋３番地にそれぞれＤ３、Ｄ２、Ｄ１、Ｄ０が配置される。したがって、ロングワードデータ（Ｄ０〜Ｄ３）をメモリ上に書き込んだ場合、図５（ｃ）に示す通り、リトルエンディアン形式のシステムにおいては最下位アドレスＮ番地にＤ０、Ｎ＋１番地にＤ１、Ｎ＋２番地にＤ２、最上位アドレスＮ＋３番地にＤ３が書き込まれ、ビッグエンディアン形式のシステムにおいては最下位アドレスＮ番地にＤ３、Ｎ＋１番地にＤ２、Ｎ＋２番地にＤ１、最上位アドレスＮ＋３番地にＤ０が書き込まれることになる。したがって、例えば、リトルエンディアン形式のシステムに合わせて設計されたハードウェアおよびソフトウェアをビッグエンディアン形式のシステムに移行した場合、ロングワードアクセス等でアクセスするデータ並び、およびアドレス並びに不具合を生じる。
【０００４】
そこで、従来では、エンディアン形式の違いによるバイト並びの変換処理をソフトウェア処理で行っていた。
【０００５】
しかしながら、データの並び換え処理をソフトウェア処理で行った場合、データ量が増大するほどその変換処理に多くの時間を要するため、システム処理速度の低下の要因となっていた。
【０００６】
また一方、ハードウェアによる構成を以ってデータのバイト並びをダイナミックに変換する処理方法もある（例えば、特許文献１を参照）が、通常、これらのハードウェア構成はシフトレジスタと種々の論理ゲートの組み合わせから構成されるものが多く、回路の複雑性を増すものである。
【０００７】
【特許文献１】
特開平５−２９７８６０号公報
【０００８】
【発明が解決しようとする課題】
本発明は上記従来例に鑑みてなされたものであり、リトルエンディアン形式のシステムとビッグエンディアン形式のシステムの両方のシステムで両立し得るエンディアン変換回路を簡易な回路構成によって実現するものであり、エンディアン変換処理をシステムの処理速度を低下することなく実行することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、本発明は以下の構成からなる。
【００１０】
本発明のエンディアン変換回路は、リトルエンディアン形式かビッグエンディアン形式かを判別するエンディアン判別レジスタとエンディアン判別レジスタの値をもとにいずれかのエンディアン形式のシステムに対応してアドレス変換を行うアドレス変換回路を備えたエンディアン変換回路である。また、本発明のエンディアン変換回路は、システムのエンディアン形式を自動判別してアドレス変換を行うことを特徴とするエンディアン変換回路である。
【００１１】
【発明の実施の形態】
以下、図面を参照して本発明を詳細に述べる。
【００１２】
図１は、本発明の概略を示すブロック図である。１０１はＣＰＵ、１０２はメモリ、１０３は本発明のエンディアン変換回路、１０４はシステムのエンディアン形式を判別するエンディアン判別レジスタ、１０５はエンディアン判別レジスタの値をもとにアドレス変換を行うアドレス変換回路である。
【００１３】
図２は、本発明におけるエンディアン変換回路内のエンディアン判別レジスタの構成を表す図であり、図１のエンディアン判別レジスタ１０４に相当する。エンディアン判別レジスタは１６ｂｉｔ幅で構成されており、初期値は１６進数で００００ｈである。また、本レジスタは、最下位ｂｉｔのｂｉｔ０のみ書き込み可能である。そこで、システムのエンディアン形式を判別するためにソフトウェアによって奇数番地（２Ｎ＋１番地）に０１ｈを書き込み動作を行う。システムがリトルエンディアン形式の場合はｂｉｔ［１５：８］が奇数番地となるので０１ｈを書き込んでもエンディアン判別レジスタの値は００００ｈであり、この時、図１中の信号ＥＮＤＩＡＮ＿ＢＬＸ＝０である。また、ビッグエンディアン形式の場合はｂｉｔ［７：０］が奇数番地となるので０１ｈを書き込むとエンディアン判別レジスタの値は０００１ｈとなり、図１中の信号ＥＮＤＩＡＮ＿ＢＬＸ＝１である。したがって、ソフトウェアによってエンディアン判別レジスタの奇数番地に０１ｈを書き込む動作を行うことによってシステムのエンディアン形式を判別することができる。
【００１４】
図３は、本発明におけるエンディアン変換回路内のアドレス変換回路を表す図である。ＣＰＵ１０１から出力されるアドレスバスＣＰＵ＿ＡＤＲの下位２ｂｉｔをエンディアン判別レジスタ１０４の出力信号ＥＮＤＩＡＮ＿ＢＬＸとＸＯＲ処理を行うことによって、メモリ１０２に出力するアドレスバスＣＯＮＶ＿ＡＤＲを生成する。図４はそれぞれのエンディアン形式のおけるアドレス変換の例を示すものであり、最上位ｂｉｔ側からＤ３，Ｄ２，Ｄ１，Ｄ０の４バイトのデータを００ｈ番地にロングワードアクセスした場合を示している。リトルエンディアン形式のシステムにおいては、ＥＮＤＩＡＮ＿ＢＬＸ＝０であるためＣＰＵから出力されるアドレスバスＣＰＵ＿ＡＤＲはアドレス変換回路によって図４に示すように変換され、アドレスバスＣＯＮＶ＿ＡＤＲが示すアドレス（メモリ上の物理アドレス）で００ｈ番地にＤ０、０１ｈ番地にＤ１、０２ｈ番地にＤ２、０３ｈ番地にＤ３が書き込まれる。一方、ビッグエンディアン形式の場合、ＥＮＤＩＡＮ＿ＢＬＸ＝１であるためＣＰＵから出力されるアドレスバスＣＰＵ＿ＡＤＲはアドレス変換回路によって図４に示すように変換される。ＣＰＵの出力では００ｈ番地にＤ３、０１ｈ番地にＤ２、０２ｈ番地にＤ１、０３ｈ番地にＤ０を書き込む動作となるが、アドレス変換回路の出力ではアドレスバスＣＯＮＶ＿ＡＤＲが示すアドレス（メモリ上の物理アドレス）で００ｈ番地にＤ０、０１ｈ番地にＤ１、０２ｈ番地にＤ２、０３ｈ番地にＤ３が書き込まれる。したがって、どちらのエンディアン形式においても物理アドレスで同じアドレスに同じデータを書き込むことができる。ＣＰＵからのリード動作の時も同様にアドレス変換が行われるので、正しいアクセスを行うことができる。
【００１５】
上記の通り、本実施例によればソフトウェアによって所定のエンディアン判別レジスタにアクセスすることでシステムのエンディアン形式の判別を行い、その結果に基づいてアドレス変換を行うことを実現している。本発明はリトルエンディアン形式のシステムとビッグエンディアン形式のシステムの両方のシステムで両立し得るエンディアン変換回路を簡易な回路構成によって実現するものであり、エンディアン変換処理をシステムの処理速度を低下することなく実行することを可能とする。
【００１６】
【発明の効果】
以上、述べたように本発明によれば、システムのエンディアン形式を判別するエンディアン判別レジスタとエンディアン形式によってアドレス変換を行うアドレス変換回路とを含むエンディアン変換回路は、システムのエンディアン形式を自動判別してアドレス変換を行うことが可能である。本発明はエンディアン変換回路は、アドレス変換をハードウェアによって実現しているため、ソフトウェアに負担をかけてシステムの処理速度を低下させることはない。また、本発明のエンディアン変換回路は簡易な構成で実現されており、複雑な回路構成による回路規模の増大を招くことなくエンディアン変換を行うことが可能である。
【図面の簡単な説明】
【図１】本発明の概略を表すブロック図である。
【図２】本発明におけるエンディアン変換回路内のエンディアン判別レジスタの構成を表す図である。
【図３】本発明におけるエンディアン変換回路内のアドレス変換回路を表す図である。
【図４】本発明におけるアドレス変換回路によるアドレス変換の例である。
【図５】エンディアン形式とデータ並びの関係を表す図である。
【符号の説明】
１０１  ＣＰＵ
１０２  メモリ
１０３  エンディアン変換回路
１０４  エンディアン判別レジスタ
１０５  アドレス変換回路
【図１】
2004355432.tif 000003
【図２】
2004355432.tif 000004
【図３】
2004355432.tif 000005
【図４】
2004355432.tif 000006
【図５】
2004355432.tif 000007