(57)【要約】      （修正有）【課題】二進数で動作するプロセッサ内部で、広範囲の値を網羅（encompass）するように値を基準化（scale）するために、正規化（normalization）が使用される場合、正規化プロセス又は命令における誤りの可能性を防止する。【解決手段】正規化ロジック回路において正規化されるべきオペランド（該オペランドは複数のビットを含む）を受信する。前記オペランドの値が０に等しい場合に、０出力を生成し、前記値が０に等しくない場合に、前記オペランドの先行ビットのカウントより１少ない数を表す出力値を生成する。【選択図】図１
2014132485.tif 000002
【特許請求の範囲】
【請求項１】
正規化ロジック回路において正規化されるべきオペランド（該オペランドは複数のビットを含む）を受信することと、
前記オペランドの値が０に等しい場合に、０出力を生成することと、
前記値が０に等しくない場合に、前記オペランドの先行ビットのカウントより１少ない数を表す出力値を生成することを含む方法。
【請求項２】
プロセッサの実行ユニットにより実行可能である正規化命令を受信することを更に含む請求項１の方法。
【請求項３】
前記オペランドは、前記正規化命令の受信後に、受信される請求項２の方法。
【請求項４】
前記０出力を生成することは、
前記受信されたオペランドが０の値を持つことを判定することと、
正規化ロジック回路の出力において０値を与えるための論理信号を生成することを更に含む請求項１の方法。
【請求項５】
前記オペランドの先行ビットの前記カウントより１少ない前記数を表す出力値を生成することは、
前記オペランドから最上位ビットを抽出することと、
複数のシフトされたビットを生成するために、前記オペランドの前記複数のビットのうちの残りのビットを左側へ１ビットシフトすることと、
前記複数のシフトされたビットの最下位ビットに０値を挿入することと、
シフト量を生成するために、前記複数のシフトされたビットにおける０の先行数をカウントすることと、
出力値を生成するために、前記シフト量の最上位ビットをマスクすることを含む請求項１の方法。
【請求項６】
前記シフト量の前記最上位ビットをマスクすることは、論理０値に結合される第２の入力を含む論理ＡＮＤゲートの入力に対して前記最上位ビットを供給することを含む請求項５の方法。
【請求項７】
正規化命令を実行するように構成された命令実行ユニットを含むプロセッサにおいて、
前記命令実行ユニットは、
複数のビットを含むオペランドを受信するように構成された入力と、
複数のシフトされたビットを生成するために、前記入力に接続され且つ前記複数のビットを左側に１ビットシフトするように構成されたシフター回路と、
前記複数のシフトされたビットを受信し且つ前記複数のシフトされたビットの先行ビットの数をカウントするように構成された先行ビット・カウント回路（該先行ビット・カウント回路は、先行ビットの数から１を減じた値を表すカウントを出力へ供給する）とを含むプロセッサ。
【請求項８】
前記命令実行ユニットは、
前記入力に接続され且つ前記オペランドから最上位ビットを抽出するように構成された最上位ビット抽出回路と、
複数の排他的ＯＲゲート（前記複数の排他的ＯＲゲートの各々は、前記最上位ビットを受信するように構成された第１の入力、前記複数のシフトされたビットのそれぞれの一つを受信するように構成された第２の入力、及び、前記複数のシフトされたビットのそれぞれの一つの値又は前記値の補数を供給するように構成された出力を含む）とを含むロジック回路を更に含む請求項７のプロセッサ。
【請求項９】
前記先行ビット・カウント回路は、前記複数の排他的ＯＲゲートの前記出力に接続された先行０カウント回路を含み、該先行０カウント回路は、前記複数の排他的ＯＲゲートの前記出力から受信される０の先行数をカウントするように構成されるの請求項８のプロセッサ。
【請求項１０】
前記先行ビットの数から１を減じた値を表す前記カウントの最上位ビットをマスクするように構成されたマスク回路を更に含む請求項９のプロセッサ。
【請求項１１】
前記オペランドが０の値を持つかどうか判定するように構成され且つ前記出力において０値を供給するための制御信号を生成するように構成された制御回路を更に含む請求項７のプロセッサ。
【請求項１２】
前記制御回路に応答し且つ前記制御回路からの制御信号に応答して前記出力において０値を供給するように構成されたゼロ回路を更に含む請求項１１のプロセッサ。
【請求項１３】
前記シフター回路は、双方向シフター回路である請求項７の回路デバイス。
【請求項１４】
入力値を正規化するプロセッサにより実行可能な命令において、前記命令は、
入力の値を判定する実行ユニットにより実行可能な第１の命令と、
前記入力における前記判定された値が０である場合に０出力を生成する実行ユニットにより実行可能な第２の命令と、
前記判定された値が非０である場合にビットの先行数のカウントから１を減じた値を表する正規化量を生成する実行ユニットにより実行可能な第３の命令とを含む命令。
【請求項１５】
前記０出力又は前記カウントは、プロセッサの単一の命令サイクルにおいて生成される請求項１４の命令。
【請求項１６】
前記実行ユニットは、前記０出力を生成するように且つ前記正規化量を生成するように構成された正規化ロジック回路を含む請求項１４の命令。
【請求項１７】
前記カウントは、入力の大きさを表す請求項１４の正規化量命令。
【請求項１８】
正規化ロジック回路において複数のビットを含むオペランドを受信することと、
シフトされた複数のビットを生成するために、前記複数のビットを左側に１ビットシフトすることと、
前記シフトされた複数のビットの最下位ビットに０値を挿入することと、
前記シフトされた複数のビットにおけるビットの先行数をカウントすることと、
前記受信された複数のビットが非０の値を持つ場合に前記ビットの先行数から１を減じた値を表すカウントを出力することを含む方法。
【請求項１９】
前記ビットの先行数を数えることは、
前記受信された複数のビットの前記最上位ビットを抽出することと、
前記受信された複数のビットの最上位ビットが１値を持つ場合に、相補の複数のビットを生成するために、前記シフトされた複数のビットの補数演算をすることと、
前記相補の複数のビットにおける０の先行数をカウントすることを含む請求項１８の方法。
【請求項２０】
前記ビットの先行数をカウントすることは、前記シフトされた複数のビットにおける０の先行数をカウントすることを含む請求項１８の方法。
【請求項２１】
前記受信されたオペランドが０値を表す場合に、出力において０値を供給することを更に含む請求項１８の方法。
【請求項２２】
複数のビットを含むオペランドを受信するための手段と、
前記オペランドの値が０に等しい場合に、０出力を生成するための手段と、
前記オペランドの値が０に等しくない場合に、前記オペランドの先行ビットのカウントより１少ない数を表す出力値を生成するための手段とを含むプロセッサ。
【請求項２３】
単一の実行サイクルにおいてプロセッサの実行ユニットにより実行可能である正規化命令を受信するための手段を更に含む請求項２２のプロセッサ。
【請求項２４】
前記０出力を生成することは、
前記受信されたオペランドの値を判定するための手段と、
前記判定された値が０である場合に、実行ユニットの出力において０値を供給するための論理信号を生成するための手段とを更に含む請求項２２のプロセッサ。
【請求項２５】
前記オペランドの先行ビットの前記カウントから１を減じた値を表す出力値を生成することは、
前記オペランドから最上位ビットを抽出するための手段と、
複数のシフトされたビットを生成するために、前記オペランドの残りのビットを左側に１ビットシフトするための手段と、
前記複数のシフトされたビットの最下位ビットに０値を挿入するための手段と、
シフト量を生成するために、前記複数のシフトされたビットにおける０の先行数をカウントするための手段と、
前記カウントを生成するために、前記シフト量の最上位ビットをマスクするための手段とを含む請求項２２のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に正規化カウントを判定するプロセッサ及び方法に関係する。
【背景技術】
【０００２】
コンピュータ・アプリケーションにおいて、数値計算は、広範囲の値に及ぶ数をもたらす場合がある。二進数で動作するプロセッサ内部で、広範囲の値を網羅（encompass）するように値を基準化（scale）するために、正規化（normalization）が使用される場合がある。例えば、統計計算において、ある値の範囲（例えば、０〜１／２）を、第２の値の範囲（例えば、０〜１）に基準化することは、望ましい場合がある。
【０００３】
一般に、正規化プロセス又は命令は、入力又は出力信号を基準化又は調整（adjust）する自動利得制御のために使用されることがある。例えば、無線電話において、正規化命令は、スピーカ出力のボリューム又はマイク入力に関連するボリュームを調整するために使用されることがある。他の特定の例において、正規化オペレーションは、例えば対数関数のような数学関数を推定するために使用されることがある。特定の例において、正規化命令は、符号付きの値の連続する先行ビット（leading bits）の数をカウントする。その連続する先行ビットの数が、ある値をその連続する先行ビットのカウント数だけ左側にシフトすることによってその値を正規化するために使用されると、その値に関連する符号ビットが失われることがある。したがって、その結果として生じるシフトされた数は、誤っている可能性がある。
【発明の概要】
【０００４】
特定の実施態様において、正規化されるべきオペランド（該オペランドは複数のビットを含む）を受信することを含む方法が開示される。本方法は、前記オペランドの値が０に等しい場合に、０出力を生成することと、前記値が０に等しくない場合に、前記オペランドの先行ビットのカウントから１を減じた値を表す出力値を生成することを更に含む。
【０００５】
他の特定の実施態様において、正規化命令を実行するように構成された命令実行ユニットを含むプロセッサが開示される。前記命令実行ユニットは、複数のビットを含むオペランドを受信するための入力と、複数のシフトされたビットを生成するために、前記複数のビットを左側に１ビットシフトする、前記入力に接続されたシフター回路とを含む。前記命令実行ユニットは、前記複数のシフトされたビットを受信し且つ前記複数のシフトされたビットの先行ビットの数をカウントする先行ビット・カウント回路を更に含む。該先行ビット・カウント回路は、先行ビットの数から１を減じた値を表しているカウントを出力へ供給する。
【０００６】
更に他の特定の実施態様において、入力値を正規化するために、ある命令がプロセッサにより実行可能である。前記命令は、入力の値を判定する実行ユニットにより実行可能な第１の命令を含む。前記命令は、前記入力における前記判定された値が０である場合に０出力を生成する実行ユニットにより実行可能な第２の命令を含む。前記命令はまた、前記判定された値が非０である場合にビットの先行数のカウントから１を減じた値を表す正規化量を生成する実行ユニットにより実行可能な第３の命令を含む。
【０００７】
更に他の特定の実施態様において、複数のビットを含むオペランドを受信することと、前記シフトされた複数のビットを生成するために、前記複数のビットを左側に１ビットシフトすることと、前記シフトされた複数のビットの最下位ビットに０値を挿入することを含む方法が開示される。前記方法は、前記シフトされた複数のビットにおけるビットの先行数をカウントすることと、前記受信された複数のビットが非０の値を持つ場合に前記ビットの先行数から１を減じた値を表すカウントを出力することを更に含む。
【０００８】
他の特定の実施態様において、複数のビットを含むオペランドを受信するための手段を含み、また、前記オペランドの値が０に等しい場合に、０出力を生成するための手段を含むプロセッサが、開示される。前記プロセッサは、前記オペランドの値が０に等しくない場合に、前記オペランドの先行ビットのカウントから１を減じた値を表す出力値を生成するための手段を更に含む。
【０００９】
説明された回路デバイス及び方法の実施態様により与えられる一つの特定の利点は、０値が受信される場合に（すなわち、入力におけるビットの全てが０に等しい場合）に、ビットをシフトすることなく、出力において０値が供給されるということである。この例において、カウント値は、速く且つ減少した電力消費で、出力されても良い。
【００１０】
他の特定の利点は、正しい値を供給するために、選択されたビットを出力においてマスクすることによって誤ったデータが削除されるという点で、提供される。
【００１１】
更に他の特定の利点は、先行ビットがカウントされても良く、そして、プロセッサが、同一の回路を使用して、先行１又は先行０をカウントすることを可能にするという点で、提供される。
【００１２】
本開示の他の態様、利点及び特徴は、以下のセクション（図面の簡単な説明、詳細な説明、及び特許請求の範囲）を含む本出願全体のレビューの後、明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】図１は、正規化量（normalization amount）を判定するように構成された正規化ロジック回路を備えた実行ユニットを含むシステムの特定の具体例のブロック図である。
【図２】図２は、正規化カウント（normalization count）を判定するように構成された正規化ロジック回路を含む回路デバイスの特定の具体例の図である。
【図３】図３は、正規化カウントを判定するように構成された正規化ロジック回路を含む回路デバイスの第２の特定の具体例の図である。
【図４】図４は、正規化カウントを判定する方法の特定の具体例のフローチャートである。
【図５】図５は、正規化カウントを判定する方法の第２の特定の具体例のフローチャートである。
【図６】図６は、正規化カウントを判定する方法の第３の特定の具体例のフローチャートである。
【図７】図７は、正規化量を判定するように構成された正規化回路を有する実行ユニットを含む無線通信デバイスの具体例のブロック図である。
【詳細な説明】
【００１４】
図１は、正規化量を判定するように構成された正規化ロジック回路を備えた実行ユニットを含む処理システム１００の特定の具体例のブロック図である。処理システム１００は、バス・インタフェース１０４を介して命令キャッシュ１０６及びデータ・キャッシュ１１２と通信するように構成されたメモリ１０２を含む。命令キャッシュ１０６は、バス１１０によりシーケンサ１１４に接続される。命令キャッシュ１０６は、正規化命令１１６を記憶することができる。正規化命令１１６は、バス１１０を介してシーケンサ１１４に与えられることができる。処理システム１００はまた、割り込みを受理するか否かを判定し及び命令の実行を制御するシーケンサ１１４内の制御ロジックによりアクセスされることができるビット群を記憶する監視制御レジスタ群１３２及びグローバル制御レジスタ群１３４を含んでも良い。
【００１５】
特定の実施態様において、命令キャッシュ１０６は、複数のカレント命令レジスタ（current instruction registers）を介してシーケンサ１１４に接続される。それらは、バス１１０に接続されても良く、また、処理システム１００の特定のスレッド群に関連していても良い。特定の実施態様において、処理システム１００は、六つのスレッドを含むインターリーブされたマルチスレッドのプロセッサである。
【００１６】
シーケンサ１１４は、第１の命令実行ユニット１１８、第２の命令実行ユニット１２０、第３の命令実行ユニット１２２、及び、第４の命令実行ユニット１２４に接続される。各々の命令実行ユニット１１８，１２０，１２２及び１２４は、第２のバス１２８を介して汎用レジスタ・ファイル１２６に接続されることができる。汎用レジスタ・ファイル１２６はまた、第３のバス１３０を介して、シーケンサ１１４、データ・キャッシュ１１２、及びメモリ１０２に接続されることができる。
【００１７】
第１の実行ユニット１１８は、正規化ロジック回路１３６を含み、第２の実行ユニット１２０は、正規化ロジック回路１３８を含む。特定の実施態様において、実行ユニット１１８，１２０，１２２及び１２４の各々が、正規化ロジック回路を含んでも良い。示された実施態様において、実行ユニット１１８及び１２０は、複数のビットに関係する正規化カウントを提供するために、正規化ロジック回路１３６及び１３８を利用するように構成される。
【００１８】
特定の具体例において、シーケンサ１１４は、正規化命令１１６を、第１の実行ユニット１１８に与える。正規化命令１１６の受信に応答して、第１の実行ユニット１１８は、オペランドを検索し、該オペランドのビットの先行数（leading number）から１を減じた値（すなわち、ビットの先行数のカウントから１を減じた値）をカウントするために、正規化ロジック回路１３６を使用する。正規化ロジック回路１３６は、オペランドのすべてのビットが０である場合に、０値を選択的に出力し、オペランドのいずれかのビットが非０である場合に、ビットの先行数のカウントから１を減じた値を表す数を選択的に出力するように構成される。ビットの先行数のカウントは、同一の値をもつ連続するビット（最上位ビットで始まり且つ最上位ビットを含む）の数を特定（identify）することができる。その数は、オペランドのデータ値を基準化又はさもなければ調整するための他の命令を実行する際に使用されても良い。例えば、オペランドが０〜１／２の範囲の値を表す場合に、その数は、オペランドを０〜１の範囲に基準化するために使用されても良い。
【００１９】
特定の具体例において、正規化ロジック回路１３６及び１３８は、先行１カウント回路（leading ones counting circuits）、先行０カウント回路（leading zeros counting circuits）、又は、それらの任意の組み合せ（図示せず）を含んでも良い。特定の実施態様において、正規化ロジック回路１３６及び１３８は、（例えば、図２中に示される先行ゼロ・カウンタ２２０のような）先行０カウント回路を含んでも良い。この例において、先行ビットが１であるならば、正規化ロジック回路１３６及び１３８は、先行０をカウントする前にオペランドの補数演算をする（complement）ロジック回路を含んでも良い。他の特定の実施態様において、正規化ロジック回路１３６及び１３８は、先行１をカウントし、かつ、先行０をカウントし、そして、いずれであってもカウントがより大きいものを選択するように構成される。２の補数（two’s complement numbers）に関して、負数については、先行０の数が０であり、正数については、先行１の数が０である。それゆえ、先行ビットの数は、オペランドの符号、大きさ、又は両方を判断するために使用されても良い。
【００２０】
特定の実施態様において、正規化命令１１６は、二つの状況を含む：１）入力オペランドの値が０であるならば、０を出力する;及び２）入力オペランドの値が非０であるならば、オペランドの先行ビットのカウントから１を減じた値を出力する。正規化命令１１６を実装するアセンブリ・コードの例は、下の表１に示される。  
表１：例示的な正規化命令  
if (Rs == 0) {  
Rd = 0;   
} else {  
Rd=(max(count_leading_ones(Rs), count_leading_zeros(Rs)))-1);   
};
表１において、ソース・レジスタの値（Ｒｓ）が０に等しいならば、デスティネーション・レジスタ（Ｒｄ）は０にセットされる。さもなければ、ソース・レジスタの値における先行１のカウント及び先行０のカウントが、いずれのカウントが大きいかを判定するために、比較される。特に、先行１のカウント又は先行０のカウントのいずれかは、０に等しく、他のカウントは、正数である。正数であるカウントは、１を減じられて、デスティネーション・レジスタに記憶される。
【００２１】
特定の実施態様において、表１に示された正規化命令は、入力の値を判定する（すなわち、Ｒｓ＝＝０かどうか判定する）ように構成された第１のオペレーションを含む。正規化命令はまた、入力における判定された値が０（すなわち、Ｒｄ＝０）である場合に０出力を生成するように構成された第２のオペレーションを含む。正規化命令は、判定された値が非０である場合に、ビットの先行数のカウントから１を減じた値（すなわち、Rd=(max(count_leading_ones(Rs), count_leading_zeros(Rs)))-1)を表す正規化量を生成するように構成された第３のオペレーションを更に含む。特定の例において、０出力又はカウントは、プロセッサの単一の命令サイクルにおいて生成される。特定の例において、単一の命令サイクルは、実行スレッドの複数のステージ（リード・レジスタ・ファイル・ステージ、デコード・ステージ、１又は複数の実行ステージ、及び、ライト・バック・ステージを含む）を表すことができる。特定の実施態様において、正規化命令は、更なるオペレーション、マイクロ命令、又は、それらの任意の組み合せを含むことができる。他の特定の実施態様において、正規化命令は、更なるマイクロ命令又はオペレーションを、発生させる（spawn）ことができるか、又はさもなければ起動するすることができる。特定の例において、正規化命令は、正規化量に従って値を左側へシフトするように正規化量を利用するマイクロ命令の実行を開始することができる。
【００２２】
図２は、正規化カウントを判定するように構成された正規化ロジック回路２０２を含む回路デバイス２００の特定の具体例の図である。正規化ロジック回路２０２は、例えば最上位ビット２２４及び複数の他のビット２２６を含むオペランドのような入力２０４を受信するように構成される。正規化ロジック回路２０２は、正規化カウント２０６を生成するために入力２０４を処理するように構成される。正規化カウント２０６は、入力２０４における値が０である場合における０値を表し、あるいは、入力２０４のビットの先行数のカウントから１を減じた値を表す。正規化ロジック回路２０２は、シフター回路２０８を含む。シフター回路２０８は、双方向シフター回路であっても良い。特定の例において、シフター回路２０８は、複数のシフトされたビットを生成するために、受信されたビット群を左側に１ビットシフトし、０値を最下位ビット位置に挿入するように構成される。
【００２３】
正規化ロジック回路２０２は、入力２０４から最上位ビット２２４を抽出するように構成された最上位ビット（ＭＳＢ）抽出回路２３６を含む。正規化ロジック回路２０２はまた、複数の排他的ＯＲゲート２１０，２１２，２１４，２１６及び２１８を含む。複数の排他的ＯＲゲート２１０，２１２，２１４，２１６及び２１８の各々は、最上位ビット２２４を受信するためにＭＳＢ抽出回路２３６に接続された第１の入力を含み、また、複数のシフトされたビットのそれぞれのビットを受信するためにシフター回路２０８に接続された第２の入力を含む。特定の例において、最上位ビット２２４が１の値を持つならば、排他的ＯＲゲート２１０，２１２，２１４，２１６及び２１８の各々は、複数のシフトされたビットのそれぞれのビットの補数演算をする。最上位ビット２２４が０の値を持つならば、排他的ＯＲゲート２１０，２１２，２１４，２１６及び２１８の各々は、複数のシフトされたビットのそれぞれのビットを通過させる。
【００２４】
正規化ロジック回路２０２は、先行ゼロ・カウンタ２２０及び論理ＡＮＤゲート２２２を含む。先行ゼロ・カウンタ２２０は、複数のシフトされたビット又は複数のシフトされたビットの相補バージョン（complemented version）のいずれかを表すオペランドを受信するために、排他的ＯＲゲート２１０，２１２，２１４，２１６及び２１８の各々の出力に接続される。先行ゼロ・カウンタ２２０は、オペランドにおける連続する０の先行数をカウントし、リード群（leads）２３０及び２３２を介して、連続する０の先行数を表すカウントを出力する。論理ＡＮＤゲート２２２は、リード２３０における値を０値２２８（すなわち、電気アース）で論理的にＡＮＤすることによって、リード２３０におけるカウントの最上位ビットをマスクする。マスクされた出力２３４（すなわち、０値）及びリード群２３２の値は、正規化ロジック回路２０２の出力における正規化カウント２０６として与えられる。一般に、先行ゼロ・カウンタ２２０は、連続する０の先行数をカウントするように構成されるが、例えば、連続する１の先行数をカウントするための先行１カウンタ、連続するビットの先行数をカウントするための先行ビット・カウンタ、又は、それらの任意の組み合せのような、他のカウンタが使用されても良い。
【００２５】
特定の例において、正規化ロジック回路２０２は、例えば図１中に示されるプロセッサ１００の実行ユニット１１８のように、プロセッサの実行ユニット内に存在しても良い。一つの実施態様において、ロジック回路２０２は、正規化カウント２０６を供給するように構成される。正規化カウント２０６は、特定のオペランドが、そのオペランドを正規化するためにシフトされるべきビットの数を表すカウントである。入力２０４が非０の値である場合に、シフト回路２０８は、ビット２２６を左側に１ビットシフトして、最上位ビットを取り除く。空けられた（vacated）位置に（すなわち、最下位ビットに）、０値が挿入される。この左側へのシフト及び０の挿入は、先行ビットのカウントから１を減じた値を提供する。入力がすべての０である場合には、先行ゼロ・カウンタ２２０は、例えば、すべての０をカウントしても良く、そして、最上位ビット位置に１を与える。特定の例において、最上位ビット位置における１の値は、３２のシフト値を表しても良い。３２個の連続する値を持つ唯一の入力値は、０の入力である。それゆえ、最上位ビット２３０は、要求されたゼロ結果を与えるために、論理ＡＮＤゲート２２２を使用して、マスクされる（すなわち、０にされる）。
【００２６】
図３は、正規化カウントを判定するように構成された正規化ロジック回路３０２を含む回路デバイス３００の第２の特定の具体例の図である。の特定の例において、正規化ロジック回路３０２は、図２中の正規化ロジック回路２０２と同じ回路を含む。しかし、正規化ロジック回路３０２は、シフター回路２０８に接続され且つＭＳＢ ２２４に接続され且つ０値をもつオペランドを検出するように構成された制御回路３０４を含む。正規化ロジック回路３０２はまた、入力２０４におけるオペランドの値が０である場合に正規化ロジック回路３０２の出力における正規化カウント２０６として０値を与えるために制御回路３０４に応答するゼロ回路３０６を含む。値が非０である場合に、ゼロ回路３０６は、先行ゼロ・カウンタ２２０の出力が、正規化カウント３０６として出力に通過されるのを可能にするパス・ゲートとして、動作しても良い。この特定の例において、制御回路３０４は、ゼロ回路３０６を使用して出力において０を与えるために、シフター回路２０８、複数の排他的ＯＲゲート２１０，２１２，２１４，２１６及び２１８、並びに、先行ゼロ・カウンタ２２０をバイパスしても良い。
【００２７】
図４は、正規化カウントを判定する方法の特定の具体例のフローチャートである。４０２において、正規化されるべきオペランドが正規化ロジック回路において受信される。４０４へ進んで、オペランドの値が０に等しいならば、本方法は４０６へ進み、出力において０値が与えられる。例えば、オペランドが０に等しいとき、０値は基準化又は正規化される必要がないので、オペランドのシフト量は０であるべきである。特定の例において、制御回路は、オペランドの値を判定するため及びオペランドが０の値をもつ場合に０値を与える出力を制御するために、正規化ロジック回路内に与えられても良い。４１４へと続いて、本方法は終了する。
【００２８】
４０４に戻って、オペランドの値が０に等しくないならば、本方法は４０８へ進み、数を判定するために、オペランドの先行ビットがカウントされる。特定の具体例において、ビットの先行数は、先行０をカウントするように構成された先行ゼロ・カウンタ回路を使用して、カウントされる。特定の例において、オペランドの最上位ビットが１に等しいならば、最上位ビットは、他のビット群の補数演算をするために使用されても良く、また、先行ゼロ・カウンタ回路は、オペランドの相補バージョンにおける０の個数をカウントしても良い。４１０まで移動して、シフト量を判定するために、その数から１が減じられる。特定の例において、他のビット群を左側に１ビットシフトし、最下位ビットの位置に０を挿入することによって、１が減じられる。４１２へと続いて、シフト量が出力へ与えられる。シフト量は、先行ビットの数のカウントから１を減じた値を表す。本方法は、４１４において終了する。
【００２９】
特定の例において、正規化されるべきオペランドを受信することは、プロセッサの実行ユニットにより実行可能である正規化命令を受信した後に起こっても良い。正規化命令は、オペランドが検索される可能性のあるソース・レジスタ・アドレスを含んでも良い。正規化命令は、単一の実行サイクルにおいてプロセッサにより実行可能である。特定の例において、４０８において数を判定するためにオペランドの先行ビットをカウントすること及びシフト量を判定するためにその数から１を減じることは、該オペランドの最上位ビットを抽出することと、複数のシフトされたビットを生成するために該オペランドの残りのビットを左側に１ビットシフトすることと、ゼロ値を該複数のシフトされたビットの最下位ビットに挿入することと、シフト量を生成するために該複数のシフトされたビットにおける０の先行数をカウントすることと、出力において該シフト量を与えるために該シフト量の最上位ビットをマスクすることを含んでも良い。特定の例において、該シフト量の最上位ビットをマスクすることは、最上位ビットを、論理０値（例えば、電気アース）に接続された第２の入力を含む論理ＡＮＤゲートの入力に与えることを含んでも良い。
【００３０】
図５は、正規化カウントを判定する方法の第２の特定の具体例のフローチャートである。５０２において、正規化されるべきオペランドが正規化ロジック回路において受信される（該オペランドは、複数のビットを含む）。５０４へ進んで、該複数のビットから最上位ビットが抽出される。５０６へと続いて、該複数のビットが左側に１ビットシフトされる。５０８まで移動して、複数のシフトされたビット又は複数のシフトされたビットの相補バージョンのうちの一つを表す値を生成するために、抽出された最上位ビットとシフトされた複数のビットの各々との排他的ＯＲオペレーションが実行される。５１０まで進んで、数を生成するために、生成された値において０の先行数がカウントされる。５１２まで移動して、シフト量を生成するために、その数の最上位ビットがマスクされる。５１４へと続いて、出力においてシフト量が与えられる。ここで、オペランドが０に等しい場合に、そのシフト量は０であり、オペランドが非０値である場合に、そのシフト量は、ビットの先行数のカウントから１を減じた値である。本方法は、５１６において終了する。
【００３１】
図６は、正規化カウントを判定する方法の第３の特定の具体例のフローチャートである。６０２において、本方法は、正規化されるべきオペランドを正規化ロジック回路において受信することを含む（該オペランドは、複数のビットを含む）。６０４へ進んで、該複数のビットの最上位ビットを取り除くために、該複数のビットが、左側に１ビットシフトされる。６０６まで移動して、第２の複数のビットを形成するために、該複数のシフトされたビットの最下位ビット位置に０値が挿入される。６０８へと続いて、複数のＸＯＲ出力ビットを生成するために、オペランドの最上位ビットを使用して、排他的ＯＲオペレーションが、該第２の複数のビットの各々に適用される。６１０まで進んで、０の個数を判定するために、該複数のＸＯＲ出力ビットにおける０の先行数がカウントされる。６１２へ進んで、オペランドが非０である場合に０のカウントされた先行数から１を減じた値を表すシフト量を与えるために及びオペランドが０である場合に０値を与えるために、０の判定された数の最上位ビットがマスクされる。本方法は、６１４において終了する。
【００３２】
図７は、正規化量を判定するように構成された正規化ロジック回路７６８をもつ実行ユニット７６４を含む無線通信デバイス７００の具体例のブロック図である。正規化ロジック回路７６８は、図１、２及び３に関してそれぞれ説明された正規化ロジック回路１３６，２０２及び３０２と同様であっても良い。無線通信デバイス７００は、正規化ロジック回路７６８を備えた実行ユニット７６４を持つデジタル・シグナル・プロセッサ（ＤＳＰ）７１０を含むことができる。図１−６に関して説明されたように、正規化ロジック回路７６８は、入力におけるビットの先行数から１を減じた値を判定するために使用可能である。無線通信デバイス７００はまた、ＤＳＰ７１０にアクセス可能なメモリ７３２を含む。特定の実施態様において、正規化ロジック回路７６８は、実行ユニット７６４の単一の命令（実行）サイクル内で複数のデータ・ビットに関係する正規化カウントを与えるために、実行ユニット７６４により利用されても良い。
【００３３】
図７はまた、デジタル・シグナル・プロセッサ７１０に接続され且つディスプレイ７２８に接続されるディスプレイ・コントローラ７２６を示す。コーダ／デコーダ（ＣＯＤＥＣ）７３４はまた、デジタル・シグナル・プロセッサ７１０に接続されることができる。スピーカ７３６及びマイク７３８は、ＣＯＤＥＣ７３４に接続されることができる。
【００３４】
図７はまた、無線コントローラ７４０は、デジタル・シグナル・プロセッサ７１０に接続されることができ且つ無線アンテナ７４２に接続されることができることを示す。特定の実施態様において、入力デバイス７３０及び電源７４４は、オンチップ・システム７２２に接続される。さらに、特定の実施態様において、図７中に示されるように、ディスプレイ７２８、入力デバイス７３０、スピーカ７３６、マイク７３８、無線アンテナ７４２、及び電源７４４は、オンチップ・システム７２２の外部に存在しても良い。しかし、各々は、オンチップ・システム７２２のコンポーネントに接続される。
【００３５】
本明細書で開示された実施形態に関連して説明された、各種の説明的な論理ブロック、構成（configurations）、モジュール、回路、及び、アルゴリズムのステップは、電子回路用ハードウェア、コンピュータソフトウェア、又は、それらの組み合わせとして、実装されても良いことを、当業者はさらに理解できるであろう。このハードウェア及びソフトウェアの互換性をめいりょうに説明するために、各種の説明的なコンポーネント、ブロック、構成、モジュール、回路、及びステップが、一般に、それらの機能性の観点で、前述された。当該の機能性は、システム全体に課される特定のアプリケーション及びデザインの制約に応じて、ハードウェア又はソフトウェアとして実装される。当業者は、説明された機能性を、各々のアプリケーションのためのさまざまな方法で実装しても良いが、当該の実装の決定は、本範囲の範囲からの逸脱をもたらすものとして説明されるべきではない。
【００３６】
本明細書に開示された実施形態に関連して説明された方法又はアルゴリズムのステップは、直接、ハードウェアにより具体化されても良いし、プロセッサにより実行されるソフトウェアモジュールにより具体化されても良いし、又は、それら二つの組合せにより具体化されても良い。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＰＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、又は当該技術分野において周知の任意の他のフォームの記憶媒体に存在しても良い。例示的な記憶媒体は、プロセッサがその記憶媒体から情報を読み込み、また、それへ情報を書き込むことができるように、そのプロセッサに接続される。代わりに、記憶媒体は、プロセッサに一体化されていても良い。プロセッサ及び記憶媒体は、ＡＳＩＣにおいて存在してもよい。ＡＳＩＣは、コンピュータ・デバイス又はユーザ端末に存在しても良い。代案では、プロセッサ及び記憶媒体は、コンピュータ・デバイス又はユーザ端末の個別のコンポーネントとして存在しても良い。
【００３７】
開示された実施形態の前の説明は、当業者が開示された実施態様を製造又は使用できるようにするために提供される。これらの実施形態への種々の変形は、当業者には容易に明白になるであろう。また、本発明で定義された一般的な原理は、本開示の精神又は範囲から逸脱することなく、他の実施形態に適用されても良い。それゆえ、本開示は、本明細書で示された実施形態に限定されることが意図されているのではなく、以下の特許請求の範囲により定義されるような原理及び新規な特徴に合致する最も広い可能な範囲を与えられることが意図されている。
【図１】
2014132485.tif 000003
【図２】
2014132485.tif 000004
【図３】
2014132485.tif 000005
【図４】
2014132485.tif 000006
【図５】
2014132485.tif 000007
【図６】
2014132485.tif 000008
【図７】
2014132485.tif 000009
【手続補正書】
【提出日】平成26年3月13日(2014.3.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
正規化ロジック回路においてオペランドを受信することと、ここで、該オペランドは複数のビットを含む、
前記オペランドの値が０に等しい場合に、０値をもつシフト量を生成することと、
前記オペランドの前記値が０に等しくない場合に、前記オペランドの第１の先行ビットのカウントより１少ない数を表す特定の値をもつシフト量を生成することと、ここで、前記第１の先行ビットのカウントは、前記オペランドの前記複数のビットの最上位ビットで始まる、同一の値をもつ連続するビットの数であり、前記シフト量を生成することは、総シフト量の先行０のカウントの最上位ビットをマスクすることを含み、該総シフト量は、複数のシフトされたビットに基づく、
前記正規化ロジック回路の出力において前記シフト量を供給することを含む、
方法。
【請求項２】
正規化ロジック回路においてオペランドを受信することと、ここで、該オペランドは複数のビットを含む、
前記オペランドの値が０に等しい場合に、０値をもつシフト量を生成することと、
前記オペランドの前記値が０に等しくない場合に、前記オペランドの第１の先行ビットのカウントより１少ない数を表す特定の値をもつシフト量を生成することと、ここで、前記第１の先行ビットのカウントは、前記オペランドの前記複数のビットの最上位ビットで始まる、同一の値をもつ連続するビットの数である、
前記正規化ロジック回路の出力において前記シフト量を供給することを含み、
前記シフト量を生成することは、
前記オペランドの前記複数のビットから前記最上位ビットを抽出することと、
複数のシフトされたビットを生成するために、前記オペランドの前記複数のビットのうちの残りのビットを左側へ１ビットシフトすることと、
前記複数のシフトされたビットの最下位ビットに０値を挿入することと、
総シフト量を生成するために、０の先行数をカウントすることと、ここで、前記０の先行数のカウントは、前記複数のシフトされたビットに基づく、
前記シフト量を生成するために、前記総シフト量の最上位ビットをマスクすることを含む、方法。
【請求項３】
前記総シフト量の前記最上位ビットをマスクすることは、論理０値に結合される第２の入力を含む論理ＡＮＤゲートの第１の入力に対して、前記総シフト量の前記最上位ビットを供給することを含む請求項２の方法。
【請求項４】
プロセッサの実行ユニットにより実行可能である正規化命令を受信することを更に含み、
前記シフト量は、前記オペランドの前記複数のビットの前記最上位ビットの値とは関係なく生成され、前記オペランドは、前記正規化命令の受信後に、受信される、請求項１または２の方法。
【請求項５】
前記０値をもつ前記シフト量を生成することは、
前記オペランドの前記値が０に等しいかどうか判定することと、
前記正規化ロジック回路の出力において前記０値をもつ前記シフト量を与えるための論理信号を生成することを更に含む請求項１または２の方法。
【請求項６】
正規化命令を実行するように構成された命令実行ユニットを含むプロセッサにおいて、
前記命令実行ユニットは、
複数のビットを含むオペランドを受信するように構成された入力と、
複数のシフトされたビットを生成するために、前記入力に接続され且つ前記複数のビットを１ビットシフトするように構成されたシフター回路と、
前記複数のシフトされたビットを受信し且つ前記複数のシフトされたビットの第１の先行ビットの数をカウントするように構成された先行ビット・カウント回路と、ここで、該先行ビット・カウント回路は、前記第１の先行ビットの数を出力へ供給するように構成され、前記第１の先行ビットの数は、前記オペランドの前記複数のビットの第２の先行ビットの数より１少ない数を表し、前記第２の先行ビットの数は、前記オペランドの前記複数のビットの最上位ビットで始まる、同一の値をもつ連続するビットの数である、
前記第１の先行ビットの数を生成するために、０の先行数のカウントの最上位ビットをマスクするように構成されたマスク回路と、ここで、該０の先行数のカウントは、前記複数のシフトされたビットに基づく、
を含む、プロセッサ。
【請求項７】
前記命令実行ユニットは、ロジック回路を更に含み、該ロジック回路は、
前記入力に接続され且つ前記オペランドの前記複数のビットから最上位ビットを抽出するように構成された最上位ビット抽出回路と、
複数の排他的ＯＲゲートとを含み、
前記複数の排他的ＯＲゲートの各々の排他的ＯＲゲートは、前記オペランドの前記複数のビットの前記最上位ビットを受信するように構成された第１の入力、前記複数のシフトされたビットのそれぞれの一つを受信するように構成された第２の入力、及び、前記複数のシフトされたビットの前記それぞれの一つのそれぞれの値又は該それぞれの値の補数を供給するように構成されたゲート出力を含む請求項６のプロセッサ。
【請求項８】
前記先行ビット・カウント回路は、前記複数の排他的ＯＲゲートの前記出力に接続された先行０カウント回路を含み、該先行０カウント回路は、前記複数の排他的ＯＲゲートの前記出力から受信される０の先行数をカウントするように構成される請求項７のプロセッサ。
【請求項９】
前記オペランドの前記複数のビットが０の値を持つかどうか判定し、前記オペランドの前記複数のビットが前記０の値を持つとの判定に応答して、前記出力において０値を供給するための制御信号を生成するように構成された制御回路を更に含む請求項６のプロセッサ。
【請求項１０】
前記制御回路に応答し且つ前記制御回路からの前記制御信号に応答して前記出力において前記０値を供給するように構成されたゼロ回路を更に含む請求項９のプロセッサ。
【請求項１１】
前記シフター回路は、双方向シフター回路である請求項６のプロセッサ。
【請求項１２】
命令を記憶したコンピュータ読み取り可能な媒体において、前記命令は、プロセッサの実行ユニットにより実行されたときに、前記実行ユニットに、
入力の値を判定させ、
前記入力の前記判定された値が０である場合に、０値をもつ正規化量を生成させ、
前記入力の前記判定された値が非０である場合に、前記入力のビットの先行数の第１のカウントより１小さい数を表す特定の値をもつ正規化量を生成させるものであり、
前記ビットの先行数の前記第１のカウントは、前記入力の最上位ビットで始まる、同一の値をもつ、前記入力の連続するビットの数であり、
前記正規化量を生成することは、総シフト量の先行０のカウントの最上位ビットをマスクすることを含み、該総シフト量は、複数のシフトされたビットに基づく、
コンピュータ読み取り可能な媒体。
【請求項１３】
前記正規化量は、前記プロセッサの単一の命令サイクルにおいて生成される請求項１２のコンピュータ読み取り可能な媒体。
【請求項１４】
前記実行ユニットは、前記正規化量を生成するように構成された正規化ロジック回路を含む請求項１２のコンピュータ読み取り可能な媒体。
【請求項１５】
前記ビットの先行数の前記第２のカウントは、前記入力の大きさを表す請求項１２のコンピュータ読み取り可能な媒体。
【請求項１６】
正規化ロジック回路において複数のビットを含むオペランドを受信することと、
シフトされた複数のビットを生成するために、前記複数のビットを１ビットシフトすることと、
前記シフトされた複数のビットの最下位ビットに０値を挿入することと、
前記シフトされた複数のビットの第１のビットの先行数をカウントすることと、
前記オペランドの前記複数のビットが非０の値を持つ場合に前記第１のビットの先行数を出力することを含み、
前記第１のビットの先行数は、前記オペランドの前記複数のビットの第２のビットの先行数より１少ない数を表し、前記第２のビットの先行数は、前記オペランドの前記複数のビットの最上位ビットで始まる、同一の値をもつ連続するビットの数であり、
前記第１のビットの先行数をカウントすることは、総シフト量の０の先行数のカウントの最上位ビットをマスクすることを含み、該総シフト量は、前記シフトされた複数のビットに基づく、
方法。
【請求項１７】
前記第１のビットの先行数を数えることは、
前記オペランドの前記複数のビットの前記最上位ビットを抽出することと、
前記オペランドの前記複数のビットの前記最上位ビットが１値を持つ場合に、相補の複数のビットを生成するために、前記シフトされた複数のビットの補数演算をすることと、
前記相補の複数のビットの０の先行数をカウントすることを含む請求項１６の方法。
【請求項１８】
前記第１のビットの先行数をカウントすることは、０の先行数をカウントすることを含み、前記０の先行数のカウントは、前記シフトされた複数のビットに基づく、請求項１６の方法。
【請求項１９】
前記オペランドの前記複数のビットが０値を表す場合に、前記第１のビットの先行数のために０の値を出力することを更に含む請求項１６の方法。
【請求項２０】
複数のビットを含むオペランドを受信するための手段と、
前記オペランドの前記複数のビットの値が０に等しい場合に、０出力を生成するための手段と、
前記オペランドの前記複数のビットの値が０に等しくない場合に、前記オペランドの前記複数のビットの第１の先行ビットのカウントより１少ない数を表す出力値を生成するための手段とを含み、
前記第１の先行ビットのカウントは、前記オペランドの前記複数のビットの最上位ビットで始まる、同一の値をもつ連続するビットの数であり、
前記出力値を生成するための手段は、
前記オペランドの前記複数のビットから前記最上位ビットを抽出するための手段と、
複数のシフトされたビットを生成するために、前記オペランドの残りのビットを左側に１ビットシフトするための手段と、
前記複数のシフトされたビットの最下位ビットに０値を挿入するための手段と、
シフト量を生成するために、０の先行数をカウントするための手段と、ここで、前記０の先行数のカウントは、前記複数のシフトされたビットに基づく、
前記出力値を生成するために、前記シフト量の最上位ビットをマスクするための手段とを含む、
プロセッサ。
【請求項２１】
単一の実行サイクルにおいてプロセッサ実行ユニットにより実行可能である正規化命令を受信するための手段を更に含む請求項２０のプロセッサ。
【請求項２２】
前記０出力を生成するための手段は、
前記オペランドの前記複数のビットの前記値を判定するための手段と、
前記オペランドの前記複数のビットの前記判定された値が０である場合に、実行ユニットの出力において０値を供給するための論理信号を生成するための手段とを更に含む請求項２０のプロセッサ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
開示された実施形態の前の説明は、当業者が開示された実施態様を製造又は使用できるようにするために提供される。これらの実施形態への種々の変形は、当業者には容易に明白になるであろう。また、本発明で定義された一般的な原理は、本開示の精神又は範囲から逸脱することなく、他の実施形態に適用されても良い。それゆえ、本開示は、本明細書で示された実施形態に限定されることが意図されているのではなく、以下の特許請求の範囲により定義されるような原理及び新規な特徴に合致する最も広い可能な範囲を与えられることが意図されている。 
以下に、本願出願の当初の特許請求の範囲に記載された各請求項に対応する発明を付記する。 
［１］正規化ロジック回路において正規化されるべきオペランド（該オペランドは複数のビットを含む）を受信することと、前記オペランドの値が０に等しい場合に、０出力を生成することと、前記値が０に等しくない場合に、前記オペランドの先行ビットのカウントより１少ない数を表す出力値を生成することを含む方法。 
［２］プロセッサの実行ユニットにより実行可能である正規化命令を受信することを更に含む［１］の方法。 
［３］前記オペランドは、前記正規化命令の受信後に、受信される［２］の方法。 
［４］前記０出力を生成することは、前記受信されたオペランドが０の値を持つことを判定することと、正規化ロジック回路の出力において０値を与えるための論理信号を生成することを更に含む［１］の方法。 
［５］前記オペランドの先行ビットの前記カウントより１少ない前記数を表す出力値を生成することは、前記オペランドから最上位ビットを抽出することと、複数のシフトされたビットを生成するために、前記オペランドの前記複数のビットのうちの残りのビットを左側へ１ビットシフトすることと、前記複数のシフトされたビットの最下位ビットに０値を挿入することと、シフト量を生成するために、前記複数のシフトされたビットにおける０の先行数をカウントすることと、出力値を生成するために、前記シフト量の最上位ビットをマスクすることを含む［１］の方法。 
［６］前記シフト量の前記最上位ビットをマスクすることは、論理０値に結合される第２の入力を含む論理ＡＮＤゲートの入力に対して前記最上位ビットを供給することを含む［５］の方法。 
［７］正規化命令を実行するように構成された命令実行ユニットを含むプロセッサにおいて、前記命令実行ユニットは、複数のビットを含むオペランドを受信するように構成された入力と、複数のシフトされたビットを生成するために、前記入力に接続され且つ前記複数のビットを左側に１ビットシフトするように構成されたシフター回路と、前記複数のシフトされたビットを受信し且つ前記複数のシフトされたビットの先行ビットの数をカウントするように構成された先行ビット・カウント回路（該先行ビット・カウント回路は、先行ビットの数から１を減じた値を表すカウントを出力へ供給する）とを含むプロセッサ。 
［８］前記命令実行ユニットは、前記入力に接続され且つ前記オペランドから最上位ビットを抽出するように構成された最上位ビット抽出回路と、複数の排他的ＯＲゲート（前記複数の排他的ＯＲゲートの各々は、前記最上位ビットを受信するように構成された第１の入力、前記複数のシフトされたビットのそれぞれの一つを受信するように構成された第２の入力、及び、前記複数のシフトされたビットのそれぞれの一つの値又は前記値の補数を供給するように構成された出力を含む）とを含むロジック回路を更に含む［７］のプロセッサ。 
［９］前記先行ビット・カウント回路は、前記複数の排他的ＯＲゲートの前記出力に接続された先行０カウント回路を含み、該先行０カウント回路は、前記複数の排他的ＯＲゲートの前記出力から受信される０の先行数をカウントするように構成されるの［８］のプロセッサ。 
［１０］前記先行ビットの数から１を減じた値を表す前記カウントの最上位ビットをマスクするように構成されたマスク回路を更に含む［９］のプロセッサ。 
［１１］前記オペランドが０の値を持つかどうか判定するように構成され且つ前記出力において０値を供給するための制御信号を生成するように構成された制御回路を更に含む［７］のプロセッサ。 
［１２］前記制御回路に応答し且つ前記制御回路からの制御信号に応答して前記出力において０値を供給するように構成されたゼロ回路を更に含む［１１］のプロセッサ。 
［１３］前記シフター回路は、双方向シフター回路である［７］の回路デバイス。 
［１４］入力値を正規化するプロセッサにより実行可能な命令において、前記命令は、入力の値を判定する実行ユニットにより実行可能な第１の命令と、前記入力における前記判定された値が０である場合に０出力を生成する実行ユニットにより実行可能な第２の命令と、前記判定された値が非０である場合にビットの先行数のカウントから１を減じた値を表する正規化量を生成する実行ユニットにより実行可能な第３の命令とを含む命令。 
［１５］前記０出力又は前記カウントは、プロセッサの単一の命令サイクルにおいて生成される［１４］の命令。 
［１６］前記実行ユニットは、前記０出力を生成するように且つ前記正規化量を生成するように構成された正規化ロジック回路を含む［１４］の命令。 
［１７］前記カウントは、入力の大きさを表す［１４］の正規化量命令。 
［１８］正規化ロジック回路において複数のビットを含むオペランドを受信することと、シフトされた複数のビットを生成するために、前記複数のビットを左側に１ビットシフトすることと、前記シフトされた複数のビットの最下位ビットに０値を挿入することと、前記シフトされた複数のビットにおけるビットの先行数をカウントすることと、前記受信された複数のビットが非０の値を持つ場合に前記ビットの先行数から１を減じた値を表すカウントを出力することを含む方法。 
［１９］前記ビットの先行数を数えることは、前記受信された複数のビットの前記最上位ビットを抽出することと、前記受信された複数のビットの最上位ビットが１値を持つ場合に、相補の複数のビットを生成するために、前記シフトされた複数のビットの補数演算をすることと、前記相補の複数のビットにおける０の先行数をカウントすることを含む［１８］の方法。 
［２０］前記ビットの先行数をカウントすることは、前記シフトされた複数のビットにおける０の先行数をカウントすることを含む［１８］の方法。 
［２１］前記受信されたオペランドが０値を表す場合に、出力において０値を供給することを更に含む［１８］の方法。 
［２２］複数のビットを含むオペランドを受信するための手段と、前記オペランドの値が０に等しい場合に、０出力を生成するための手段と、前記オペランドの値が０に等しくない場合に、前記オペランドの先行ビットのカウントより１少ない数を表す出力値を生成するための手段とを含むプロセッサ。 
［２３］単一の実行サイクルにおいてプロセッサの実行ユニットにより実行可能である正規化命令を受信するための手段を更に含む［２２］のプロセッサ。 
［２４］前記０出力を生成することは、前記受信されたオペランドの値を判定するための手段と、前記判定された値が０である場合に、実行ユニットの出力において０値を供給するための論理信号を生成するための手段とを更に含む［２２］のプロセッサ。 
［２５］前記オペランドの先行ビットの前記カウントから１を減じた値を表す出力値を生成することは、前記オペランドから最上位ビットを抽出するための手段と、複数のシフトされたビットを生成するために、前記オペランドの残りのビットを左側に１ビットシフトするための手段と、前記複数のシフトされたビットの最下位ビットに０値を挿入するための手段と、シフト量を生成するために、前記複数のシフトされたビットにおける０の先行数をカウントするための手段と前記カウントを生成するために、前記シフト量の最上位ビットをマスクするための手段とを含む［２２］のプロセッサ。
【外国語明細書】
2014132485000001.pdf