【手続補正書】
【提出日】平成23年3月17日(2011.3.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
圧縮回路であって、
ａ）個々のデータ値の構造体を格納するためのデータメモリと、
ｂ）マップを格納するためのマップ・メモリであって、前記マップは前記構造体内にお
いてゼロでない値の位置を表すマップ・メモリと、
ｃ）データ出力であって、前記回路は、前記データメモリからゼロでないデータを取り
出し、前記取り出されたデータを前記データ出力において前記マップを表すデータを組み
合わせた圧縮構造体として提供するよう構成されるデータ出力と、を含む圧縮回路。
【請求項２】
前記データメモリは複数のレジスタを含む、請求項１に記載の回路。
【請求項３】
前記データメモリはレジスタ・ファイルを含む、請求項１に記載の回路。
【請求項４】
前記マップ・メモリはレジスタを含む、請求項１に記載の回路。
【請求項５】
前記位置はビットマップとして格納される、請求項４に記載の回路。
【請求項６】
前記ビットマップにおける各ビットは、前記格納された構造体における個々のデータの
値に対応する、請求項５に記載の回路。
【請求項７】
複数のコンパレータを更に含み、各コンパレータはデータ値がゼロでないかどうかを識
別し、各コンパレータの出力は前記マップ・メモリへの入力として提供される、請求項１
に記載の回路。
【請求項８】
前記コンパレータ入力は、前記データメモリの読み込みポートによって設けられる、請
求項７に記載の回路。
【請求項９】
前記コンパレータは、前記データメモリの書き込みポートによって設けられる、請求項
７に記載の回路。
【請求項１０】
前記コンパレータ入力は、プロセッサのロード／ストアポートによって設けられる、請
求項７に記載の回路。
【請求項１１】
前記データ出力はデータバスを含み、前記回路は、前記メモリから前記データバスに前
記圧縮した構造体を連続して出力するよう構成される、請求項２に記載の回路。
【請求項１２】
前記マップからゼロでない値の前記数を計算するために、少なくとも一つの加算器を更
に含む、請求項２に記載の回路。
【請求項１３】
前記メモリから前記データ出力にゼロでない出力の前記書き込みを連続して可能にする
ためのロジックを更に含む、請求項２に記載の回路。
【請求項１４】
前記ロジックは加算器の構成を含む、請求項１３に記載の回路。
【請求項１５】
前記構成におけるそれぞれの後続の加算器は、前記構成において先行する加算器の前記
出力を、入力として有する、請求項１４に記載の回路。
【請求項１６】
各加算器は前記構造体において付随するデータ値に対応し、各加算器は前記付随するデ
ータ値に対応する前記マップから入力を受け付ける、請求項２に記載の回路。
【請求項１７】
更に整数コンパレータのツリーを含み、各整数コンパレータは二つの整数入力を比較す
るためのものであり、各コンパレータの第１の入力は前記加算器ツリーにおいて対応する
加算器からの出力である、請求項１４に記載の回路。
【請求項１８】
各コンパレータへの第２の入力は、配列信号である、請求項１７に記載の回路。
【請求項１９】
前記データ出力に些少ではないデータを書き込む前記正しいシーケンスを確認するため
に、前記マップからの前記値を個々のコンパレータ出力と結合するためのコンバイナを更
に含む、請求項１７に記載の回路。
【請求項２０】
前記回路の前記動作を制御するためのコントローラを更に含む、請求項１に記載の回路
。
【請求項２１】
前記データ値は、単精度浮動小数点数である、請求項１に記載の回路。
【請求項２２】
前記データ値は、倍精度浮動小数点数である、請求項１に記載の回路。
【請求項２３】
前記データ値は、拡張精度浮動小数点数である、請求項１に記載の回路。
【請求項２４】
前記データ値は、１２８ビット精度浮動小数点数である、請求項１に記載の回路。
【請求項２５】
前記データ値は、整数である、請求項１に記載の回路。
【請求項２６】
前記回路は、出力として前記マップの内容も提供するよう適合される、請求項１に記載
の回路。
【請求項２７】
前記回路は、集積回路に設けられる、請求項１に記載の回路。
【請求項２８】
請求項１から請求項２７のいずれか一つに記載の少なくとも一つの回路を含むプロセッ
サ。
【請求項２９】
前記回路の複数の実例が存在する、請求項２８に記載のプロセッサ。
【請求項３０】
圧縮構造体から復元される構造体を提供するための復元回路であって、
ａ）個々の些少ではないデータ値の圧縮構造体を受け付けるための入力と、
ｂ）復元構造体内において些少ではないデータ値の位置を識別するマップを受信するた
めのマップ・レジスタと、
ｃ）復元構造体を格納するためのメモリであって、前記回路は前記マップ・レジスタの
内容にしたがって個々の入力された些少ではないデータ値を前記メモリに投入するメモリ
と、を含む回路。
【請求項３１】
前記メモリは、複数のレジスタを含む、請求項３０に記載の回路。
【請求項３２】
前記メモリは、レジスタ・ファイルを含む、請求項３０に記載の回路。
【請求項３３】
前記位置は、ビットマップとして格納される、請求項３０に記載の回路。
【請求項３４】
前記ビットマップにおける各ビットは、復元構造体の個々のデータ値に対応する、請求
項３３に記載の回路。
【請求項３５】
前記データ入力はデータバスを含み、前記回路は前記データバスから前記メモリに連続
して前記圧縮構造体を入力するよう構成される、請求項３０に記載の回路。
【請求項３６】
前記マップから些少ではない値の数を計算するための少なくとも一つの加算器を更に含
む、請求項３０に記載の回路。
【請求項３７】
前記データ入力からメモリに些少ではないデータの前記書き込みを可能にするためのロ
ジックを更に含む、請求項３０に記載の回路。
【請求項３８】
前記ロジックは、加算器の構成を含む、請求項３７に記載の回路。
【請求項３９】
前記構成のそれぞれの後続する加算器は、前記構成の前記先行する加算器の前記出力を
入力として有する、請求項３８に記載の回路。
【請求項４０】
各加算器は、非圧縮の前記構造体における関連データ値に対応し、各加算器は前記関連
データ値に対応する前記マップからの入力を受け付ける、請求項３９に記載の回路。
【請求項４１】
整数コンパレータの構成を更に含み、各整数コンパレータは二つの整数を比較するため
のものであり、各コンパレータの第１の入力は前記加算器構成において対応する加算器か
らの出力である、請求項４０に記載の回路。
【請求項４２】
各コンパレータへの第２の入力は、配列信号である、請求項４１に記載の回路。
【請求項４３】
前記データ出力へのゼロでないデータの書き込みの前記正しいシーケンスを確認するた
めに、前記マップからの前記値を個々のコンパレータ出力と結合するためのコンバイナを
更に含む、請求項４１に記載の回路。
【請求項４４】
前記回路の動作を制御するためのコントローラを更に含む、請求項４１に記載の回路。
【請求項４５】
前記データ値は、単精度浮動小数点数である、請求項３０に記載の回路。
【請求項４６】
前記データ値は、倍精度浮動小数点数である、請求項３０に記載の回路。
【請求項４７】
前記データ値は、整数である、請求項３０に記載の回路。
【請求項４８】
更にマップ入力を含み、前記回路は、前記マップ入力から前記マップ・レジスタへマッ
プをロードする用適合される、請求項３０に記載の回路。
【請求項４９】
前記回路は、集積回路に設けられる、請求項３０に記載の回路。
【請求項５０】
些少なデータ値はゼロのデータ値であり、些少ではないデータ値はゼロでないデータ値
である、請求項３０から請求項４９のいずれかに記載の回路。
【請求項５１】
請求項３０から請求項５０のいずれかに記載の少なくとも一つの回路を含むプロセッサ
。
【請求項５２】
前記回路の複数の実例が存在する、請求項５１に記載のプロセッサ。
【請求項５３】
データ構造体を格納する命令に応答する圧縮回路を含むプロセッサ・チップであって、
前記圧縮回路は、格納に対して圧縮フォーマットを提供するために前記構造体から些少な
値を除去するよう適合される、プロセッサ・チップ。
【請求項５４】
前記圧縮回路は、前記構造体において些少な値の位置を識別するマップを提供するよう
適合される、請求項５３に記載のプロセッサ・チップ。
【請求項５５】
前記圧縮フォーマット・データをロードする命令に応答する復元回路を更に含み、前記
復元回路は、前記圧縮データにロード時に些少な値を再投入するよう適合される、請求項
５３に記載のプロセッサ。
【請求項５６】
前記復元回路は、些少な値を再投入するためにマップを使用する、請求項５５に記載の
プロセッサ。
【請求項５７】
些少なデータ値はゼロのデータ値であり、些少ではないデータ値はゼロでないデータ値
である、請求項５３から請求項５６のいずれかに記載のプロセッサ。
【請求項５８】
前記回路は、前記データ出力に並行して、前記取り出された個々のデータを多重に提供
するよう構成される、請求項１に記載の回路。
【請求項５９】
前記個々のデータ値はｘビット長であり、前記データ出力はｎｘビットのデータバスを
含み、ｎは１よりも大きな整数であり、ｎデータ値はある時刻に前記データバス上に配置
される、請求項５８に記載の回路。
【請求項６０】
前記回路は、個々の些少ではないデータ値の圧縮構造体を多重に受信するよう構成され
る、請求項３０に記載の回路。
【請求項６１】
前記個々のデータ値はｘビット長であり、前記データ入力はｎｘビットのデータバスを
含み、ｎは１よりも大きな整数であり、ｎデータ値はある時刻に前記データバスから取り
出される、請求項６０に記載の回路。
【請求項６２】
データ値の構造体を圧縮する方法であって、前記構造体内においてゼロの値の位置を識
別するマップを生成するステップと、前記ゼロでない値及び前記マップのみからなる圧縮
構造体を提供するために、前記構造体から前記識別された些少なエントリ値を除去するス
テップと、を含む方法。
【請求項６３】
前記データ値は、浮動小数点数である、請求項６２に記載の方法。
【請求項６４】
前記データ値は、単精度又は倍精度浮動小数点数である、請求項６２に記載の方法。
【請求項６５】
前記データ値は、拡張精度浮動小数点数又は１２８ビット精度浮動小数点数である、請
求項６２に記載の方法。
【請求項６６】
前記データ値は、整数である、請求項６２に記載の方法。
【請求項６７】
前記マップは、個々のデータ値を表すビットマップの各ビットを有するビットマップを
含む、請求項６２〜６６のいずれかに記載の方法。
【請求項６８】
前記位置を識別する前記ステップは、ゼロでない値であるかどうか決定するために、各
データ値を比較することを含む、請求項６２〜６７のいずれかに記載の方法。
【請求項６９】
各比較の出力は、ゼロでない値の前記数に対して提供されるカウントに対して合計され
る、請求項６８に記載の方法。
【請求項７０】
前記カウントは、前記圧縮構造体のサイズを決定するために用いられ、請求項６８に記
載の方法。
【請求項７１】
前記カウントは、前記圧縮構造体に設けられるエントリの前記数を決定するために用い
る、請求項６８に記載の方法。
【請求項７２】
各比較の前記出力は、前記圧縮構造体にデータ値の書込を有効化するために用いられる
、請求項６８に記載の方法。
【請求項７３】
前記構造体はマトリクスであり、前記マップは行及び列の前記数を識別する、請求項６
２から７２のいずれかに記載の方法。
【請求項７４】
前記構造体は、行−列の構成に配列されるマトリクスを含む、請求項６２に記載の方法
。
【請求項７５】
圧縮データ構造体であって、複数のゼロでないデータ値と、前記構造体の非圧縮形態に
おける複数の些少ではない値に対するゼロ・データ値の位置を表すマップとを含む、圧縮
データ構造体。
【請求項７６】
前記マップはビットマップを含み、それぞれの独立したデータ値は独立したビットによ
って表される、請求項７５に記載の圧縮データ構造体。
【請求項７７】
圧縮データ構造体を復元する方法であって、前記圧縮構造体は、複数のゼロでない値と
、非圧縮構造体における前記ゼロでない値の位置を表すマップとを含み、前記方法は、
未占有の非圧縮構造体を提供することと、
前記ゼロでない値を取り出すことと、
占有された復元データ構造体を提供するために、前記マップに表される位置にしたがっ
て、前記未占有の構造体内の前記ゼロでない値を占有することと、
のステップを含む方法。
【請求項７８】
前記未占有のマトリクスの前記値は、前記ゼロでない値によって占有の前にゼロまで初
期化される）請求項７７に記載の方法。
【請求項７９】
前記マップのゼロ値として識別される占有構造体における位置は、ゼロにセットされる
、請求項７７に記載の方法。
【請求項８０】
前記データ値は、浮動小数点数である、請求項７７に記載の方法。
【請求項８１】
前記データ値は、単精度浮動小数点数である、請求項７７に記載の方法。
【請求項８２】
前記データ値は、倍精度浮動小数点数である、請求項７７に記載の方法。
【請求項８３】
前記データ値は、整数である、請求項７７に記載の方法。
【請求項８４】
前記マップは、個々のデータ値を表す前記ビットマップの各ビットを有するビットマッ
プからなる、請求項７７から８３のいずれかに記載の方法。
【請求項８５】
前記ビットマップの前記個々のビットは、前記圧縮構造体におけるゼロでない値の前記
数のカウントを提供するために合計される、請求項８４に記載の方法。
【請求項８６】
前記カウントは、前記未占有の構造体に読み込まれるデータ値の量を決定するために用
いられる、請求項８５に記載の方法。
【請求項８７】
前記マップは、前記非圧縮構造体へのデータ値の書き込みを有効化するために用いられ
る、請求項７７から８６のいずれかに記載の方法。
【請求項８８】
前記構造体は、行−列構成を有するマトリクスを含む、請求項７７から８７のいずれか
に記載の方法。