【手続補正書】
【提出日】平成19年7月23日(2007.7.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】  乗算−加算（Ｍａｄｄ）演算を実行するように構成可能な浮動小数点ユニット（ＦＰＵ）であって、
第１および第２の浮動小数点オペランドの小数部を受け取り、乗算することにより、前記第１の浮動小数点オペランドと第２の浮動小数点オペランドとの浮動小数点積の乗算器出力小数部を生成するように構成された乗算器ユニットであって、丸められそして擬正規化フォーマットを有する前記乗算器出力小数部によって定義された第１の演算モードで演算するようにさらに構成可能な乗算器ユニットと、
前記乗算器ユニットに接続された加算器ユニットであって、前記浮動小数点積の前記乗算器出力小数部と第３の浮動小数点オペランドの小数部とを受け取り、それらを結合して、浮動小数点Ｍａｄｄ結果のＦＰＵ出力小数部を生成するように構成された加算器ユニットと
を含む、浮動小数点ユニット（ＦＰＵ）。
【請求項２】  前記乗算器出力小数部は、ＩＥＥＥ標準によって定義されるビット位置で丸められる、請求項１に記載の浮動小数点ユニット（ＦＰＵ）。
【請求項３】  前記乗算器出力小数部は、２進小数点の左側に対する２つのビットの精度を含み、前記擬正規化フォーマットは一の値を有する前記２つのビットのうちの少なくとも一つによって特徴付けられる、請求項１に記載の浮動小数点ユニット（ＦＰＵ）。
【請求項４】  前記乗算器出力小数部は、前記浮動小数点積の乗算器出力指数部とは独立して丸められる、請求項１に記載の浮動小数点ユニット（ＦＰＵ）。
【請求項５】  前記乗算器出力小数部は、前記第１および第２の浮動小数点オペランドの小数部の範囲のおよそ２倍の範囲を有する、請求項１に記載の浮動小数点ユニット（ＦＰＵ）。
【請求項６】  前記第１および第２の浮動小数点オペランドの小数部を前記乗算器ユニットによる処理前に格納フォーマットから内部フォーマットへアンパックするように構成可能な浮動小数点パイプファイル（ＰＩＰ）をさらに備える、請求項１に記載の浮動小数点ユニット（ＦＰＵ）。
【請求項７】  前記格納フォーマットは、ＩＥＥＥ標準に適合する、請求項６に記載の浮動小数点ユニット（ＦＰＵ）。
【請求項８】  前記内部フォーマットは、前記格納フォーマットを上回る増加した分解能を有し、前記ＰＩＰは、前記第１および第２の浮動小数点オペランドの小数部を、前記乗算器ユニットによる処理前に内部の正規化された表示へ変換するように構成可能である、請求項６に記載の浮動小数点ユニット（ＦＰＵ）。
【請求項９】  前記ＰＩＰは、前記ＦＰＵ出力小数部を格納のために戻される前に、内部フォーマットから前記格納フォーマットへパックするようにさらに構成可能である、請求項６に記載の浮動小数点ユニット（ＦＰＵ）。
【請求項１０】  前記乗算器ユニットは、第１の演算モードおよび第２の演算モードを含む複数の演算モードのうちの一つで演算するようにさらに構成可能であり、前記第２の演算モードはＩＥＥＥ標準に適合する前記乗算器出力小数部によって特徴付けられる、請求項１に記載の浮動小数点ユニット（ＦＰＵ）。
【請求項１１】  前記乗算器ユニットは、前記第２の演算モードで演算するときに、ＩＥＥＥ標準に従って、前記乗算器出力小数部を、必要に応じて正規化または非正規化し、丸めるようにさらに構成可能である、請求項１０に記載の浮動小数点ユニット（ＦＰＵ）。
【請求項１２】  前記乗算器ユニットは、非正規化乗算器出力が検出され前記乗算器ユニットが第３の演算モードで演算される場合に、前記乗算器出力小数部をゼロにフラッシュするか、または前記乗算器出力小数部を特定の値に設定するようにさらに構成可能である、請求項１０に記載の浮動小数点ユニット（ＦＰＵ）。
【請求項１３】  前記乗算器ユニットは、前記乗算器出力小数部と、前記浮動小数点積の乗算器出力指数部とをチェックすることによって、非正規化された乗算器出力を検出するように構成可能である、請求項１２に記載の浮動小数点ユニット（ＦＰＵ）。
【請求項１４】  前記ＦＰＵは、相互の数を近似するように選択された一組の演算を実行するように構成される、請求項１に記載のＦＰＵを含むプロセッサ。
【請求項１５】  前記ＦＰＵは、相互の平方根の数を近似するように選択された一組の演算を実行するように構成される、請求項１に記載のＦＰＵを含むプロセッサ。
【請求項１６】  前記ＦＰＵは、Ｎｅｗｔｏｎ−Ｒａｐｈｓｏｎアルゴリズムをインプリメントするように選択された一組の演算を実行するように構成される、請求項１に記載のＦＰＵを含むプロセッサ。
【請求項１７】  前記ＦＰＵは、前記Ｎｅｗｔｏｎ−Ｒａｐｈｓｏｎアルゴリズムをインプリメントするように少なくとも一つのＭａｄｄ演算を実行するように構成される、請求項１６に記載のプロセッサ。
【請求項１８】  乗算−加算（Ｍａｄｄ）演算を実行するように構成可能な浮動小数点プロセッサであって、前記浮動小数点プロセッサは、乗算器ユニットおよび加算器ユニットを含み、
前記乗算器ユニットは、
第１および第２の浮動小数点オペランドの小数部を受け取り、乗算するように構成された乗算器アレイと、
前記乗算器アレイに作動可能に結合された第１の丸めユニットであって、前記乗算器アレイからの出力を丸めて、前記第１の浮動小数点オペランドと前記第２の浮動小数点オペランドとの浮動小数点積の乗算器出力小数部を生成するように構成可能であり、前記乗算器出力小数部は丸められそして擬正規化フォーマットを有する、第１の丸めユニットとを含み、
前記加算器ユニットは前記乗算器ユニットに接続され、前記加算器ユニットは、
前記浮動小数点積の前記乗算器出力小数部と、第３の浮動小数点オペランドの小数部とを受け取り、それらを結合するように構成された桁上げ伝播加算器（ＣＰＡ）と、
前記ＣＰＡからの小数部を受け取り、丸めるように構成され、前記ＣＰＡに接続された第２の丸めユニットと、
前記第２の丸めユニットからの丸められた小数部を受け取り、正規化するように構成され、前記第２の丸めユニットに接続された正規化ユニットとを含む、浮動小数点プロセッサ。
【請求項１９】  前記乗算器ユニットは、第１の演算モードおよび第２の演算モードを含む複数の演算モードのうちの一つで演算するように構成可能であり、前記乗算器ユニット中の前記第１の丸めユニットは、前記乗算器ユニットが前記第１の演算モードで演算されるときに前記擬正規化フォーマットで前記乗算器出力小数部を丸めるように構成可能であり、前記第１の丸めユニットは、前記乗算器ユニットが前記第２の演算モードで演算されるときにＩＥＥＥ標準に従って前記乗算器出力小数部を丸めるようにさらに構成可能である、請求項１８に記載のプロセッサ。
【請求項２０】  前記乗算器ユニット中の前記第１の丸めユニットは、非正規化乗算器出力が検出され前記乗算器ユニットが第３の演算モードで演算される場合に、前記乗算器出力小数部をゼロにフラッシュするか、または前記乗算器出力小数部を特定の値に設定するようにさらに構成可能である、請求項１９に記載のプロセッサ。
【請求項２１】  前記乗算器出力小数部は、ＩＥＥＥ標準によって定義されたビット位置で丸められる、請求項１８に記載のプロセッサ。
【請求項２２】  前記乗算器出力小数部は、２進小数点の左側に対する２つのビットの精度を含み、前記擬正規化フォーマットは一の値を有する前記２つのビットのうちの少なくとも一つによって特徴付けられる、請求項１８に記載のＦＰＵ。
【請求項２３】  浮動小数点乗算−加算（Ｍａｄｄ）演算を実行する方法であって、
第１および第２の浮動小数点オペランドを含む入力データを受け取ることと、
前記第１および第２の浮動小数点オペランドの小数部を乗算して、前記第１の浮動小数点オペランドと前記第２の浮動小数点オペランドとの浮動小数点積の第３の小数部を生成することと、
前記浮動小数点積の前記第３の小数部を丸めて、浮動小数点中間結果の第４の小数部を生成することであって、前記第４の小数部は擬正規化フォーマットと、正規化された小数部よりも大きい範囲とを有する、ことと、
前記浮動小数点中間結果の前記第４の小数部と第３の浮動小数点オペランドの小数部とを結合して、浮動小数点Ｍａｄｄ結果の出力小数部を生成することと
前記浮動小数点Ｍａｄｄ結果を出力データとして提供することと
を包含する、方法。
【請求項２４】  前記第４の小数部は、ＩＥＥＥ標準によって定義されたビット位置で丸められる、請求項２３に記載の方法。
【請求項２５】  コンピュータに乗算器ユニットを記述させるためのコンピュータ読み取り可能なプログラムコードであって、前記乗算機器ユニットは、第１および第２の浮動小数点オペランドの小数部を受け取り乗算することにより、前記第１の浮動小数点オペランドと前記第２の浮動小数点オペランドとの浮動小数点積の乗算器出力小数部を生成するように構成され、前記乗算器ユニットは、丸められそして擬正規化フォーマットを有する前記乗算器出力小数部によって定義される第１の演算モードで演算するようにさらに構成可能である、コンピュータ読み取り可能なプログラムコードと、
前記コンピュータに加算器ユニットを記述させるためのコンピュータ読み取り可能なプログラムコードであって、前記加算器ユニットは前記乗算器ユニットに接続され、前記浮動小数点積の前記乗算器出力小数部および第３の浮動小数点オペランドの小数部を受け取り、結合することにより、浮動小数点結果のＦＰＵ出力小数部を生成するように構成された、コンピュータ読み取り可能なプログラムコードと、
前記コンピュータ読み取り可能なプログラムコードを格納するように構成されたコンピュータ使用可能な媒体と
を含む、製品。
【請求項２６】  コンピュータに乗算器ユニットを記述させるためのコンピュータ読み取り可能なプログラムコードであって、前記乗算器ユニットは第１の丸めユニットに作動可能に接続された乗算器アレイを含み、前記乗算器アレイは第１および第２の浮動小数点オペランドの小数部を受け取り、乗算するように構成され、前記第１の丸めユニットは、前記乗算器アレイからの出力を丸めることにより、前記第１の浮動小数点オペランドと前記第２の浮動小数点オペランドとの浮動小数点積の乗算器出力小数部を生成するように構成可能であり、前記乗算器出力小数部は、丸められそして擬正規化フォーマットを有する、コンピュータ読み取り可能なプログラムコードと、
前記コンピュータに加算器ユニットを記述させるためのコンピュータ読み取り可能なプログラムコードであって、前記加算器ユニットは前記乗算器ユニットに接続し、そして桁上げ伝播加算器（ＣＰＡ）、第２の丸めユニット、および正規化ユニットを含み、前記ＣＰＡは前記浮動小数点積の前記乗算器出力小数部と第３の浮動小数点オペランドの小数部とを受け取り、それらを結合するように構成され、前記第２の丸めユニットは前記ＣＰＡに接続され、前記ＣＰＡからの小数部を受け取り、丸めるように構成され、前記正規化ユニットは前記第２の丸めユニットに接続され、前記第２の丸めユニットからの丸められた小数部を受け取り、正規化するように構成された、コンピュータ読み取り可能なプログラムコードと、
前記コンピュータ読み取り可能なプログラムコードを格納するように構成されたコンピュータ使用可能な媒体と
を含む、製品。
【請求項２７】  浮動小数点乗算−加算（Ｍａｄｄ）演算を実行するためのコンピュータプログラム製品であって、
第１および第２の浮動小数点オペランドの小数部を乗算して、前記第１の浮動小数点オペランドと前記第２の浮動小数点オペランドとの浮動小数点積の第３の小数部を生成するコードと、
前記浮動小数点オペランドの前記第３の小数部を丸めて、浮動小数点中間結果の第４の小数部を生成するコードであって、前記第４の小数部は擬正規化フォーマットを有する、コードと、
前記浮動小数点中間結果の前記第４の小数部と、第３の浮動小数点オペランドの小数部とを結合して浮動小数点Ｍａｄｄ結果の出力小数部を生成するコードと、
前記コードを格納するように構成されたデータ格納媒体と
を含む、コンピュータプログラム製品。
【請求項２８】  コンピュータプログラム製品であって、
乗算器ユニットを定義するコードであって、前記乗算器ユニットは、第１および第２の浮動小数点オペランドの小数部を受け取り乗算することにより、前記第１の浮動小数点オペランドと前記第２の浮動小数点オペランドとの浮動小数点積の乗算器出力小数部を生成するように定義され、前記乗算器出力小数部は丸められそして擬正規化フォーマットを有する、コードと、
加算器ユニットを定義するコードであって、前記加算器ユニットは前記乗算器ユニットに接続され、前記浮動小数点積の前記乗算器出力小数部および第３の浮動小数点オペランドの小数部を受け取り、それらを結合することにより、浮動小数点結果のＦＰＵ出力小数部を生成するように定義された、コードと、
前記コードを格納するように構成されたデータ格納媒体と
を含む、コンピュータプログラム製品。