(57)【特許請求の範囲】
【請求項１】
ビッグ・エンディアン及びリトル・エンディアン・アドレス・モードの両方のマスクを発生するマスク発生器において、
２進数の形式でマスク中のセット・ビット数を指示する数信号（Ｎ）と、２進数の形式でマスクの整列を指示する整列信号（Ａ）と、マスクがビッグ・エンディアン・モード用であるかまたはリトル・エンディアン・モード用であるかを指示するモード信号（ＬＥ）とを受取る入力端子と、
前記数信号と前記モード信号とに応答するマスク発生手段であって、前記数信号が１以上であるとき、出力上に、前記数信号により指示された長さのセット・ビットの群が出力の一方の端部に詰められ、他のビットがリセットされたマスクを与え、前記セット・ビットの群が詰められる当該出力の端部は、前記モード信号によりどのモードが指示されているかに依存する前記マスク発生手段と、
前記マスク発生手段の出力に一方の端部で余分ビット（Ｋ）を与える余分ビット手段であって、当該ビットは１以上である前記数信号についてリセットされる前記余分ビット手段と、
前記余分ビットを含む前記マスク発生手段の出力を、前記整列信号により指示される桁数だけ回転し、前記リセットされる余分ビットが追加される側の端部へ向けてセット・ビットの群が詰められるモードでは、マスクを当該端部へ向けて１桁だけ余分に回転し、回転されたマスクはマスク発生器の出力である、回転手段と、
を含むビッグ・エンディアン及びリトル・エンディアン・アドレス・モードの両方のマスクを発生するマスク発生器。
【請求項２】
請求項１記載のマスク発生器において、
前記モード信号がアドレス・モードの内の特定のものを指示している場合に前記マスク発生手段に印加される前記数信号のビットの各々を反転し、前記モード信号がこの特定のモードとは別のモードを指示している場合に前記数信号を反転しないままにしておく、数信号反転手段と、
を含むマスク発生器。
【請求項３】
請求項１または２記載のマスク発生器において、
前記数信号が１以上であるとき、一方がセットされ他方がリセットされる２つの最端部ビットを与える最端部ビット発生手段であって、これらのビットのどちらがセットされるものかを決定する前記モード信号に応答する最端部ビット発生手段を含み、
マスク発生装置は最端部ビットのための２つの入力（Ｌ、Ｒ）を有し、最端部ビットをその出力の適切なビットへ伝播させるよう配置されている、
マスク発生器。
【請求項４】
請求項１及至３のいずれか記載のマスク発生器において、
前記数信号が０であるとき、余分ビットを含む、マスク発生手段の出力のビットが全てセットされるように回路が配置されている、マスク発生器。
【請求項５】
請求項４記載のマスク発生器において、
請求項３に従属する時、最端部ビット発生手段は、前記数信号が０の時に最端部ビットの両方がセットされるように前記数信号に応答する、マスク発生器。
【請求項６】
請求項１及至５いずれか記載のマスク発生器において、
前記数信号は３ビットを有し、前記整列信号は３ビットを有し、マスク発生器によるマスク出力は８ビットを有する、マスク発生器。
【請求項７】
請求項１及至６いずれか記載のマスク発生器において、
前記モード信号が前記アドレス・モードの内の特定の一方のモードを指示している場合に前記整列信号のビットの各々を反転し、前記モード信号が前記アドレス・モードの内の特定の他方のモードを指示している場合に前記整列信号を反転しないままにしておく整列信号反転手段を含む、マスク発生器。
【請求項８】
請求項７記載のマスク発生器において、
請求項６に従属する時、回転手段は２つの段階を有し、第１段階は０、２または４桁の回転を与え、第２段階は０、１、４または５桁の回転を与え、第１段階はモード信号に応答して、前記１桁の余分な回転を必要とするモードでは２または４桁の回転を、他のモードでは０または２の回転を与える、マスク発生器。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明はマスク発生に関係し、特に例えばバス接続されたまたはメモリ・マップのメモリ・アレイまたは素子のようなアドレス可能な空間で箇所を選択的に選択するためのマスク発生に関係する。
【０００２】
【従来の技術】
多くのマイクロプロセッサはメモリから一時に４、８又は１６バイトでアクセスすることを可能とする幅広のデータバスを有する。例えば、ＴＩ４８６ＤＬＣプロセッサは３２ビット幅のデータバスを有しており、従って一時に４つの８ビット・バイト（２つの１６ビット語）がアクセスされる。しかしながら、特定のメモリ語に全てのバイトを書き込むことが常に必要であるまたは望ましいことではなく、所要バイトのみに書き込むことを保証するため選択アドレス機構が用いられる。これは標準的には別々の書き込み付勢を各バイトに関連づけることにより達成される。
【０００３】
必要な特定の書き込み付勢を作動可能とするためには、２種の情報が必要である、すなわち書き込むべきバイト数と最初のバイトのバイト・アドレスである。バイト数を用いて、書き込むべきバイトがある所に同数の連続した１を含むマスクを発生する。次いでバイト・アドレスを用いて、このマスクを回転させ、これに従って書き込むべき語の部分内のバイト位置へ整列させる。マスクを発生させ、回転を実行する技術は従来技術に存在する。
【０００４】
ビッグ・エンディアンとリトル・エンディアンとして知られている２種類の一般的なアドレシング機構がある。例えば、ＴＩ４８６ＤＬＣ素子では、低位ビットが低位（リトル・エンドの）アドレス・バイトであるリトル・エンディアン形式が使用されている。
【０００５】
マイクロプロセッサ装置により使用されるアドレシング・モードはマスク及び回転機能を実装する方法に影響を与える。例えば、メモリ語に記憶される数を考えると、数字のより左のビットが数値的に右のものより有効数字が大きい。
【０００６】
ビッグ・エンディアン方式では、語中の最低位アドレスのバイトは数値的には最上位（左側）であり、一方語内の最高位アドレスのバイトは数値的には最下位（右側）である。このことは語内のバイトは左からインデックスされることを意味する。バイト選択には、この方式はそれ故左詰めの１のマスクを必要とし、これは右へ（時計方向）回転されてバイト・アドレスに応じて整列される。
【０００７】
リトル・エンディアン方式では、語中の最低位アドレスのバイトは数値的には最下位（右側）であり、一方語内の最高位アドレスのバイトは数値的には最上位（左側）である。このことは語内のバイトは右からインデックスされることを意味する。バイト選択には、この方式はそれ故右詰めの１のマスクを必要とし、これは左へ（反時計方向）回転されてバイト・アドレスに応じて整列される。
【０００８】
ある種の素子には両アドレス形式を処理可能とする必要性があり、このため例えばＴＩ４８６ＤＬＣプロセッサはデータを一方の形式から他方へ変換する命令ＢＳＷＡＰを有する。もちろん、命令の使用は素子が使用していない形式の使用には重大な処理負担を与え、両方の形式を支持すべき場合は両方式のマスク発生器と回転が設けられているハードウェア的解決が望ましい。例えばいくつかのマイクロプロセッサはビッグまたはリトル・エンディアン・モードのどちらでも動作するよう構成可能であり、プログラム不能な素子のみでハードウェア的解決が可能である。
【０００９】
【発明が解決しようとする課題】
現在２重モード・アドレスを実行するいくつかの方法がある、例えば：
【００１０】
２個の完全に別々なマスク発生と回転回路を各エンディアン毎に１個使用できる。次いでマルチプレクサを使用して適切な方を選択する。これは簡単ではあるが、所要ハードウェア量に関して高価である。
【００１１】
又は、２個のマスク発生器を使用するが、単一の回転器を使用することもできる。マルチプレクサは回転器の入力として左または右詰めマスク発生器から（エンディアンに従って）出力を選択可能である。これはハードウェアをより使用しないが、単一の回転器は時計方向と反時計方向の両方は回転不可能であり、これを実行するためには一方のエンディアン又は他方で２の補数をとった量を回転する必要とする。これは、Ｎ位の時計方向回転は（Ｎの２の補数）位の反時計方向回転と等価であるためである。この場合の欠点は、２の補数演算は演算を実行するのに要する時間量を増加させる減算を必要とする点である。これは回路の演算速度に有害な効果を有する。これはまた単一の回転器の使用によるいくつかのトランジスタの節約を相殺する。
【００１２】
左又は右詰めマスクの両方を発生するため同じマスク発生器を使用する場合にはさらなる減少が達成可能である。Ｎ個の左詰め１を発生するマスク発生器はまたＮの２の補数個の右詰め０を発生するものと考えることもできる。それ故、マスク発生器への入力が２の補数で出力が一方のエンディアンまたは他方で反転される場合、両方のマスク構成を得ることが可能である。再びこの欠点は２の補数は回路を遅延させいくつかのトランジスタ節約を相殺する減算を必要とする点である。
【００１３】
【課題を解決するための手段】
本発明のその一つの側面によると、特許請求の範囲に定めるマスク発生器が提供される。
【００１４】
本発明の特別な利点は、２の補数演算の必要性なしにビッグおよびリトル・エンディアン・マスク操作が単一のマスク発生器と回転器から達成可能な機構を提供する点である。
【００１５】
本発明をより良く認識するために、単なる実例として添付概略図面を参照して以下に実施例を説明する。
【００１６】
【実施例】
マスク発生器セル１０（図１）が集積回路、例えばＮＭＯＳトランジスタ１１とＰＭＯＳトランジスタ１２のようなＭＯＳトランジスタのマイクロプロセッサに形成される。トランジスタは組み合わせ論理装置として互いに接続され、この装置は３本の入力、すなわち左及び右マスク値と２進数の右マスクビット数を指示する３ビット値を有する。これらは各々Ｌ  Ｒ  とＮ（２：０）と呼ばれる。出力Ｍは９ビット幅で、その最上位及び最下位ビットは各々ＬとＲである。加えて、全ての出力はＲとＬを等しくすることにより同じ値に設定可能である。図１のマスク発生器セルの真理値表は以下に与えられる。
【表１】
0004106097.tif 000002
【００１７】
発生器はＮ（２：０）から以下のように論理的に得られる４本の制御信号（Ｇ０，Ｇ１，Ｇ２，Ｇ３）に応答して動作する。
【数１】
Ｇ０＝Ｎ（０）ＯＲ Ｎ（１）
Ｇ１＝Ｎ（１）
Ｇ２＝Ｎ（０）ＡＮＤ Ｎ（１）
Ｇ３＝Ｎ（２）
【００１８】
Ｍ（８：１）を用いてマスク出力を形成し、一方のエンディアンまたは他方で２の補数を受ける場合には、このマスク発生器を２重モード装置に使用可能であることが理解できる。
【００１９】
例えば、リトル・エンディアンでは、Ｎ（２：０）＝００１はＬ  Ｌ  Ｌ  ＬＬ  Ｌ  Ｌ  Ｒを発生するが、ビッグ・エンディアンでは、Ｎ（２：０）＝００１は結果Ｒ  Ｌ  Ｌ  Ｌ  Ｌ  Ｌ  Ｌ  Ｌを発生しなければならない。これはマスク発生器への入力がＮ（２：０）の２の補数、すなわち
【数２】

Ｎ（２：０）＋１
である１１１のときに達成可能である。しかしながら、２の補数は全加算器を必要とするため相対的に遅く実装は高価である。
【００２０】
リトル及びビッグ・エンディアン・マスク操作の両方の理想的な真理値表は各々以下の表２に示す表Ａと表Ｂに図示されている。両方の場合で、Ｎ（２：０）＝０００は０ではなく８ビットを指示するよう定義される。
【表２】
0004106097.tif 000003
【００２１】
リトル・エンディアン・マスクは、マスク発生器セルの出力Ｍ（８：１）を取り、
【数３】
0004106097.tif 000004
をＲ＝１（リトル・エンディアン・モード）で拘束することにより本発明に従って発生される。この真理値表は以下の通りである：
【表３】
0004106097.tif 000005
【００２２】
ビッグ・エンディアン・マスクは、バイト数がゼロの場合にＫ＝１であるように定義された出力Ｋと共に
0004106097.tif 000006
に応答してマスク発生器セルの出力Ｍ（７：１）を取り、
【数４】
0004106097.tif 000007
をＬ＝１（ビッグ・エンディアン・モード）で拘束することにより発生される。このモードの真理表は以下の通りである。
【表４】
0004106097.tif 000008
【００２３】
Ｋはリトル・エンディアン・モードのマスク発生器セルの最初のビットＭ（８）と同一であることが解る。出力としてＫ次いでセルのビットＭ（７：１）を取り、入力ＬＥ＝１（リトル・エンディアン）とＬＥ＝０（ビッグ・エンディアン）を与えると、Ｌは（Ｌ＝ＬＥ  ＯＲ  Ｋ）として定義されＲは
【数５】
0004106097.tif 000009
として定義され、表５に示す表Ｃとして以下にあげる組み合わせ真理表が構成される。この論理的実装は図３に示され、ここではマスク発生器３０と回転器３１が識別される。
【表５】
0004106097.tif 000010
【００２４】
マスク中の１の数はビッグおよびリトル・エンディアンの両方に対して正しいことが理解できる。しかしながら、ビッグ・エンディアン・マスクは正しく整列させるためには１桁反時計方向に回転させなければならない。本発明によると、これはマスクを整列させる以後の回転器論理で実行される。
【００２５】
マスク回転論理を以下に説明する。
【００２６】
上記のマスクを発生した後、これは書き込むべき第１バイトのバイト・アドレスに応じて回転されなければならない。これは、回転論理真理表である以下の表６に示す表ＤのＡ（２：０）、バイト整列により指示される。
【表６】
0004106097.tif 000011
【００２７】
リトル・エンディアン・モードでは、回転は整列量Ａ（２：０）だけ反時計方向でなければならない。ビッグ・エンディアン・モードでは回転は時計方向でなければならないが、しかしながら実施例では整列量の反時計方向等価、マイナス１でマスクが右へ１桁オフセットしていることを補償している。
【００２８】
従来技術では、反時計方向回転器の標準的な実装は２段階を使用していた、すなわち最初に０または１桁回転し、２番目に０、２、４または６桁回転させる。これらを直列に接続することにより、０と７の間の任意の回転量が達成可能である。しかしながら、第１段で０または２桁回転し、２番目に０、１、４または５桁回転した場合でも同様の結果が達成できることを理解されたい。さらに、第１段に「４桁回転」オプションを追加することにより、回転器中の遅延を増加させることなくビッグ・エンディアンに必要な余分な２ビット回転を達成可能である。リトル・エンディアン・モードでは、第１段は０または２桁のどちらか回転させる。ビッグ・エンディアンでは、第１段は２または４桁のどちらか回転させる。図２は１ビット、回転器の「ビットｘ」の概略を図示する。
【００２９】
上述の実施例は、単一のハードウェアを用いてビッグ及びリトル・エンディアンの両方のマスク発生と回転機能をいかに実行可能であるか、さらにこれが２の補数演算を実行する加算器の必要性なしに達成可能であるかを示している。代わりに、簡単で効率的な１の補数が用いられ、これと共にマスク出力の最上位ビットに対する特別な項Ｋを発生し、第１段で０、２、４ビット回転し第２段で０、１、３、５ビット回転する回転器を構成する。これは回転器に対してビット当たり１個の余分なトランジスタを追加するのみであり、性能に影響を与えることなくビッグ・エンディアン演算を実行するために必要な余分な２ビット回転が可能となる。
【００３０】
図３の例から理解できるように、必要な制御論理は最小であり、従来技術で必要とされた全加算器より大分少ない。
【００３１】
これまで説明してきた例示のマスク発生器と回転器４３（図４）はマイクロプロセッサ装置に用いられ、ここで中央プロセッサ４０がメモリ・モジュール４１のアレイをタイミング制御部４２を介してアドレスし、データはビッグ・エンディアンまたはリトル・エンディアン形式のどちらかであり、他の制御信号は説明の都合上除外してある。
【００３２】
マスク発生器及び／又は回転器は大機能の半導体素子（集積回路）に集積化される。
【００３３】
以上の説明に関して更に以下の項を開示する。
（１）少なくとも第１及び第２のアドレシング方式で使用可能なマスクを発生するマスク発生器において、
マスクすべきバイト数を表す制御信号を受け取る装置と、
アドレシング方式を表す単数または複数のモード信号を受け取る装置と、
マスク値を発生するため前記モード信号に応答する装置と、
前記マスク値をマスク・バイト位置に選択的に配置して前記マスクを発生するため前記制御信号に応答する装置と、
を含む少なくとも第１及び第２のアドレシング方式で使用可能なマスクを発生するマスク発生器。
（２）第１項記載のマスク発生器において、第１のマスク値は前記バイト数信号から得られ、第２マスク値は前記モード信号から得られるマスク発生器。
（３）第１項〜第２項記載のマスク発生器において、所定のビット位置のマスク値は前記バイト位置残りのマスク値から得られるマスク発生器。
（４）第１項〜第３項記載のマスク発生器において、整列量を定める信号から得られる桁数だけ前記マスクを回転させる回転器を含むマスク発生器。
（５）第４項記載のマスク発生器において、前記回転器は第１のアドレシング方式では第１の方向に、第２のアドレシング方式では第２の方向に操作するマスク発生器。
（６）第５項記載のマスク発生器において、前記第２のアドレシング方式に対して、前記桁数は前記整列量より少ないマスク発生器。
（７）第１項〜第６項記載のマスク発生器において、前記第１のアドレシング方式はリトル・エンディアンで、前記第２のアドレシング方式はビッグ・エンディアンであるマスク発生器。
（８）本明細書で実質的に記載されているマスク発生器。
（９）第１項〜第８項記載のマスク発生器のソフトウェア実装。
（１０）第１項〜第９項記載のマスク発生器を含むメモリ・アドレス装置。
（１１）第１０項記載のメモリ・アドレス装置を含むプロセッサ装置。
（１２）第１項〜第８項記載のマスク発生器、第９項記載の実装、または第１０項記載のメモリ・アドレス装置を含む半導体素子。
（１３）第１２項記載の半導体素子において、集積回路である半導体素子。
【００３４】
（１４）本発明はマスク発生に関係し、特に例えばバス接続されたまたはメモリ・マップのメモリ・アレイまたは素子のようなアドレス可能な空間で箇所を選択的に選択するためのマスク発生に関係する。マスク発生器は、マスクすべきバイト数を表す制御信号を受け取る装置と、アドレシング方式を表す単数または複数のモード信号を受け取る装置と、マスク値を発生するため前記モード信号に応答する装置と、前記マスク値をマスク・バイト位置に選択的に配置して前記マスクを発生するため前記制御信号に応答する装置と、を含む。本発明の特別な利点は、２の補数演算の必要性なしにビッグおよびリトル・エンディアン・マスク操作が単一のマスク発生器と回転器から達成可能な機構を提供する点である。
【図面の簡単な説明】
【図１】マスク発生器を図示する。
【図２】回転器を図示する。
【図３】マスク発生器／回転器と制御論理部を図示する。
【図４】プロセッサ装置配置における図３のマスク発生器／回転器を図示する。
【符号の説明】
１０  マスク発生器セル
３０  マスク発生器
３１  回転器
【図１】
0004106097.tif 000012
【図２】
0004106097.tif 000013
【図３】
0004106097.tif 000014
【図４】
0004106097.tif 000015