(57)【要約】【課題】  中間データの転送時間を短くでき、幾何学演算を高速に行なうことが可能な幾何学演算装置を提供すること。【解決手段】  整数演算用メモリ１１、浮動小数点演算用メモリ１２および１３は、入力メモリ１０から幾何学演算に必要なデータが転送される。整数演算ユニット１５は、浮動小数点演算ユニット１６および１７と独立して動作し、整数演算用メモリ１１に転送されたデータに対して整数演算を行なう。整数演算用ワークメモリ２１は、整数演算ユニット１５から直接アクセスできず、整数演算用メモリ１１に記憶された整数演算ユニット１５の中間データを保持する。したがって、データ転送時間が長い外部メモリに対する中間データの読込み／書込みを行なう必要がなくなり、幾何学演算を高速に行うことが可能となる。【選択図】        図１
2005038319.tif 000002
【特許請求の範囲】
【請求項１】
幾何学演算に必要なデータを記憶する入力メモリと、
前記入力メモリから整数演算に必要なデータが転送される整数演算用メモリと、
前記入力メモリから浮動小数点演算に必要なデータが転送される浮動小数点演算用メモリと、
前記整数演算用メモリに転送されたデータに対して整数演算を行なう整数演算ユニットと、
前記整数演算ユニットと独立して動作し、前記浮動小数点演算用メモリに転送されたデータに対して浮動小数点演算を行なう浮動小数点演算ユニットと、
前記整数演算ユニットおよび前記浮動小数点演算ユニットによる演算結果が転送される出力メモリと、
前記整数演算ユニットから直接アクセスできず、前記整数演算用メモリに記憶された前記整数演算ユニットの中間データを保持する整数演算用ワークメモリとを含む幾何学演算装置。
【請求項２】
前記幾何学演算装置はさらに、前記浮動小数点演算ユニットから直接アクセスできず、前記浮動小数点演算用メモリに記憶された前記浮動小数点演算ユニットの中間データを保持する浮動小数点演算用ワークメモリを含む、請求項１記載の幾何学演算装置。
【請求項３】
前記整数演算用ワークメモリと前記浮動小数点演算用ワークメモリとは、共有メモリによって構成される、請求項２記載の幾何学演算装置。
【請求項４】
幾何学演算に必要なデータを記憶する入力メモリと、
前記入力メモリから整数演算に必要なデータが転送される整数演算用メモリと、
前記入力メモリから浮動小数点演算に必要なデータが転送される第１の浮動小数点演算用メモリと、
前記整数演算用メモリに転送されたデータに対して整数演算を行なう整数演算ユニットと、
前記整数演算ユニットと独立して動作し、前記第１の浮動小数点演算用メモリに転送されたデータに対して浮動小数点演算を行なう第１の浮動小数点演算ユニットと、
前記整数演算ユニットおよび前記第１の浮動小数点演算ユニットによる演算結果が転送される出力メモリと、
前記第１の浮動小数点演算ユニットから直接アクセスできず、前記第１の浮動小数点演算用メモリに記憶された前記第１の浮動小数点演算ユニットの中間データを保持する第１の浮動小数点演算用ワークメモリを含む幾何学演算装置。
【請求項５】
前記幾何学演算装置はさらに、入力メモリから浮動小数点演算に必要なデータが転送される第２の浮動小数点演算用メモリと、
前記整数演算ユニットおよび前記第１の浮動小数点演算用メモリと独立して動作し、前記第２の浮動小数点演算用メモリに転送されたデータに対して浮動小数点演算を行なう第２の浮動小数点演算ユニットと、
前記第２の浮動小数点演算ユニットから直接アクセスできず、前記第２の浮動小数点演算用メモリに記憶された前記第２の浮動小数点演算ユニットの中間データを保持する第２の浮動小数点演算用ワークメモリとを含む、請求項４記載の幾何学演算装置。
【請求項６】
前記第１の浮動小数点演算用ワークメモリと前記第２の浮動小数点演算用ワークメモリとは、共有メモリによって構成される、請求項５記載の幾何学演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィックスシステムにおける座標変換、輝度計算、クリップ処理などの幾何学演算を行なう幾何学演算装置に関し、特に、処理速度の向上を図った幾何学演算装置に関する。
【背景技術】
【０００２】
近年、３次元グラフィックスを高速に処理するための幾何学演算装置の開発が盛んに行なわれている。この幾何学演算処理に関連する技術として、特開平９−２６５５４３号公報および特開２００１−７５７７９号公報に開示された発明がある。
【０００３】
特開平９−２６５５４３号公報に開示された幾何学演算装置は、グラフィックスの座標変換、輝度計算、クリップ処理などの幾何学演算に必要なデータを記憶する入力メモリと、入力メモリを接続するグローバルバスと、グローバルバスに接続され、幾何学演算に必要なデータが転送される複数の浮動小数点演算用メモリと、入力メモリに記憶された幾何学演算に必要なデータを複数の浮動小数点演算用メモリに転送するシーケンサと、複数の浮動小数点演算用メモリと一対一に接続され、各浮動小数点演算用メモリに転送されたデータを用いて幾何学演算をそれぞれ独立に実行する複数の浮動小数点演算ユニットとを備える。
【０００４】
また、特開２００１−７５７７９号公報に開示された演算装置においては、浮動小数点演算器の演算結果を整数演算器の最終演算ステージに設けられたマルチプレクサに供給し、整数演算器に対するインストラクションによりマルチプレクサを切換えて、浮動小数点演算器の演算結果を汎用レジスタに保持して、整数演算を可能としたものである。
【特許文献１】特開平９−２６５５４３号公報
【特許文献２】特開２００１−７５７７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上述した特開平９−２６５５４３号公報に開示された幾何学演算装置において、グラフィックスの幾何学演算を行なう整数演算ユニットおよび浮動小数点演算ユニットは、演算の中間データを保存する機能を有していないため、中間データを外部メモリに保存する必要がある。外部メモリに対するデータ転送時間は長いため、演算能力の低下を招くといった問題点があった。
【０００６】
また、特開２００１−７５７７９号公報に開示された演算装置においては、整数演算器に対するインストラクションによりマルチプレクサを切換えて、浮動小数点演算器の演算結果を汎用レジスタに保持して、整数演算を可能としたものである。しかし、汎用レジスタの数は限られており、演算の中間データの全てを汎用レジスタに保持しておくことはできない。
【０００７】
本発明は、上記問題点を解決するためになされたものであり、その目的は、中間データの転送時間を短くでき、幾何学演算を高速に行なうことが可能な幾何学演算装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明のある局面に従えば、幾何学演算装置は、幾何学演算に必要なデータを記憶する入力メモリと、入力メモリから整数演算に必要なデータが転送される整数演算用メモリと、入力メモリから浮動小数点演算に必要なデータが転送される浮動小数点演算用メモリと、整数演算用メモリに転送されたデータに対して整数演算を行なう整数演算ユニットと、整数演算ユニットと独立して動作し、浮動小数点演算用メモリに転送されたデータに対して浮動小数点演算を行なう浮動小数点演算ユニットと、整数演算ユニットおよび浮動小数点演算ユニットによる演算結果が転送される出力メモリと、整数演算ユニットから直接アクセスできず、整数演算用メモリに記憶された整数演算ユニットの中間データを保持する整数演算用ワークメモリとを含む。
【０００９】
本発明の別の局面に従えば、幾何学演算に必要なデータを記憶する入力メモリと、入力メモリから整数演算に必要なデータが転送される整数演算用メモリと、入力メモリから浮動小数点演算に必要なデータが転送される第１の浮動小数点演算用メモリと、整数演算用メモリに転送されたデータに対して整数演算を行なう整数演算ユニットと、整数演算ユニットと独立して動作し、第１の浮動小数点演算用メモリに転送されたデータに対して浮動小数点演算を行なう第１の浮動小数点演算ユニットと、整数演算ユニットおよび第１の浮動小数点演算ユニットによる演算結果が転送される出力メモリと、第１の浮動小数点演算ユニットから直接アクセスできず、第１の浮動小数点演算用メモリに記憶された第１の浮動小数点演算ユニットの中間データを保持する第１の浮動小数点演算用ワークメモリを含む。
【発明の効果】
【００１０】
本発明のある局面によれば、整数演算用ワークメモリは、整数演算ユニットから直接アクセスできず、整数演算用メモリに記憶された整数演算ユニットの中間データを保持するので、データ転送時間が長い外部メモリに対する中間データの読込み／書込みを行なう必要がなくなり、幾何学演算を高速に行うことが可能となった。
【００１１】
本発明の別の局面によれば、第１の浮動小数点演算用ワークメモリは、第１の浮動小数点演算ユニットから直接アクセスできず、第１の浮動小数点演算用メモリに記憶された第１の浮動小数点演算ユニットの中間データを保持するので、データ転送時間が長い外部メモリに対する中間データの読込み／書込みを行なう必要がなくなり、幾何学演算を高速に行うことが可能となった。
【発明を実施するための最良の形態】
【００１２】
（第１の実施の形態）
図１は、本発明の第１の実施の形態における幾何学演算装置の概略構成を示すブロック図である。この幾何学演算装置は、グラフィックスの座標変換、輝度計算、クリップ処理などの幾何学演算に必要なデータを記憶する入力メモリ１０と、整数演算に必要なデータが転送される整数演算用メモリ（ＩＬＭ）１１と、浮動小数点演算に必要なデータが転送される複数の浮動小数点演算用メモリ（ＦＬＭ０，ＦＬＭ１）１２および１３と、整数演算用メモリ１１に記憶されるデータを用いて整数演算を行なう整数演算ユニット（ＩＰＵ）１５と、浮動小数点演算用メモリ１２に記憶されるデータを用いて浮動小数点演算を行なう浮動小数点演算ユニット（ＦＰＵ０）１６と、浮動小数点演算用メモリ１３に記憶されるデータを用いて浮動小数点演算を行なう浮動小数点演算ユニット（ＦＰＵ１）１７と、幾何学演算に必要なデータおよびその演算結果の転送を制御するシーケンサ１８と、整数演算ユニット１５、浮動小数点演算ユニット１６および１７による演算結果を格納する出力メモリ１９と、整数演算ユニット１５による中間データを一時的に記憶する整数演算用ワークメモリ（ＩＷＭ）２１と、浮動小数点演算ユニット１６による中間データを一時的に記憶する浮動小数点演算用ワークメモリ（ＦＷＭ０）２２と、浮動小数点演算ユニット１７による中間データを一時的に記憶する浮動小数点演算用ワークメモリ（ＦＷＭ１）２３とを含む。
【００１３】
入力メモリ１０、整数演算用メモリ１１、浮動小数点演算用メモリ１２および１３は、グローバルバス１４を介して接続される。また、整数演算ユニット１５、浮動小数点演算ユニット１６、１７および出力メモリ１９は、出力バス２０を介して接続される。
【００１４】
シーケンサ１８は、入力メモリ１０に記憶された幾何学演算に必要なデータを、グローバルバス１４を介して整数演算用メモリ１１、浮動小数点演算用メモリ１２または１３へ転送する制御を行なう。
【００１５】
また、シーケンサ１８は、整数演算用メモリ１１、浮動小数点演算用メモリ１２および１３に記憶された幾何学演算に必要なデータを、整数演算ユニット１５、浮動小数点演算ユニット１６および１７へ転送する制御を行なう。これらのデータ転送は、それぞれ並列に行なうことができる。
【００１６】
また、シーケンサ１８は、演算処理用メモリ１１、浮動小数点演算用メモリ１２および１３に記憶された中間データを、整数演算用ワークメモリ２１、浮動小数点演算用ワークメモリ２２および２３へ転送する制御と、整数演算用ワークメモリ２１、浮動小数点演算用ワークメモリ２２および２３に記憶された中間データを、整数演算用メモリ１１、浮動小数点演算用メモリ１２および１３へ転送する制御とを行なう。演算処理用メモリ１１、浮動小数点演算用メモリ１２および１３と、整数演算用ワークメモリ２１、浮動小数点演算用ワークメモリ２２および２３との間の中間データの転送は、それぞれ並列に行なうことができる。
【００１７】
さらには、シーケンサ１８は、整数演算ユニット１５、浮動小数点演算ユニット１６および１７による演算結果を、出力バス２０を介して出力メモリ１９へ転送する制御を行なう。
【００１８】
なお、整数演算用ワークメモリ２１、浮動小数点演算用ワークメモリ２２および２３は、整数演算ユニット１５、浮動小数点演算ユニット１６および１７から直接アクセスすることはできない。すなわち、それぞれのワークメモリは、それぞれの演算ユニットのメモリアドレス空間にはマッピングされていない。
【００１９】
図２は、本発明の第１の実施の形態における幾何学演算装置の整数演算の処理時間を説明するための図である。
【００２０】
図２（ａ）は、整数演算用ワークメモリ２１がない場合の整数演算の処理時間の一例を示している。まず、入力メモリ１０から整数演算用メモリ１１へのデータ転送が行なわれる（ｍｏｖｅ１）。そして、整数演算用メモリ１１から整数演算ユニット１５へのデータ読込みが行なわれる（ｒｅａｄ１）。
【００２１】
次に、整数演算ユニット１５は、読込んだデータに対して整数演算を行ない（ｅｘｅ１）、その中間データを整数演算用メモリ１１に書込む（ｗｒｉｔｅ１）。そして、中間データを図示しない外部メモリに書込み（ｗｒｉｔｅ２）、別の中間データを外部メモリから整数演算用メモリ１１に読込む（ｒｅａｄ２）。
【００２２】
次に、整数演算用メモリ１１から整数演算ユニット１５への中間データの読込みが行なわれる（ｒｅａｄ１）。そして、整数演算ユニット１５は、読込んだ中間データに対して整数演算を行ない（ｅｘｅ１）、その演算結果が出力メモリ１９へ転送される（ｍｏｖｅ２）。
【００２３】
仮に、中間データの外部メモリへの書込み（ｗｒｉｔｅ２）および中間データの外部メモリからの読込み（ｒｅａｄ２）がそれぞれ１０サイクルを要し、それ以外の処理がそれぞれ１サイクルで行なえるとすると、図２（ａ）に示す処理に、２７サイクルを要することになる。
【００２４】
図２（ｂ）は、整数演算用ワークメモリ２１がある場合の整数演算の処理時間の一例を示している。まず、入力メモリ１０から整数演算用メモリ１１へのデータ転送が行なわれる（ｍｏｖｅ１）。そして、整数演算用メモリ１１から整数演算ユニット１５へのデータ読込みが行なわれる（ｒｅａｄ１）。
【００２５】
次に、整数演算ユニット１５は、読込んだデータに対して整数演算を行ない（ｅｘｅ１）、その中間データを整数演算用メモリ１１に書込む（ｗｒｉｔｅ１）。そして、中間データを整数演算用ワークメモリ２１に書込み（ｗｒｉｔｅ３）、別の中間データを整数演算用ワークメモリ２１から整数演算用メモリ１１に読込む（ｒｅａｄ３）。
【００２６】
次に、整数演算用メモリ１１から整数演算ユニット１５への中間データの読込みが行なわれる（ｒｅａｄ１）。そして、整数演算ユニット１５は、読込んだ中間データに対して整数演算を行ない（ｅｘｅ１）、その演算結果が出力メモリ１９へ転送される（ｍｏｖｅ２）。
【００２７】
仮に、中間データの整数演算用ワークメモリ２１への書込み（ｗｒｉｔｅ３）および中間データの整数演算用ワークメモリ２１からの読込み（ｒｅａｄ３）を含んだ全ての処理が１サイクルで行なえるとすると、図２（ｂ）に示す処理に、９サイクルを要することになる。したがって、図２（ａ）に示す整数演算用ワークメモリ２１がない場合と比較して、処理時間を３３％（＝９／２７）に短縮することができる。
【００２８】
図３は、本発明の第１の実施の形態における幾何学演算装置の浮動小数点演算の処理時間を説明するための図である。なお、浮動小数点演算ユニット１６が浮動小数点演算を行なう場合について説明するが、浮動小数点演算ユニット１７が浮動小数点演算を行なう場合も同様である。
【００２９】
図３（ａ）は、浮動小数点演算用ワークメモリ２２がない場合の浮動小数点演算の処理時間の一例を示している。まず、入力メモリ１０から浮動小数点演算用メモリ１２へのデータ転送が行なわれる（ｍｏｖｅ１）。そして、浮動小数点演算用メモリ１２から浮動小数点演算ユニット１６へのデータ読込みが行なわれる（ｒｅａｄ１）。
【００３０】
次に、浮動小数点演算ユニット１６は、読込んだデータに対して浮動小数点演算を行ない（ｅｘｅ１）、その中間データを浮動小数点演算用メモリ１２に書込む（ｗｒｉｔｅ１）。そして、中間データを図示しない外部メモリに書込み（ｗｒｉｔｅ２）、別の中間データを外部メモリから浮動小数点演算用メモリ１２に読込む（ｒｅａｄ２）。
【００３１】
次に、浮動小数点演算用メモリ１２から浮動小数点演算ユニット１６への中間データの読込みが行なわれる（ｒｅａｄ１）。そして、浮動小数点演算ユニット１６は、読込んだ中間データに対して浮動小数点演算を行ない（ｅｘｅ１）、その演算結果が出力メモリ１９へ転送される（ｍｏｖｅ２）。
【００３２】
仮に、中間データの外部メモリへの書込み（ｗｒｉｔｅ２）および中間データの外部メモリからの読込み（ｒｅａｄ２）がそれぞれ１０サイクルを要し、それ以外の処理がそれぞれ１サイクルで行なえるとすると、図３（ａ）に示す処理に、２７サイクルを要することになる。
【００３３】
図３（ｂ）は、浮動小数点演算用ワークメモリ２２がある場合の浮動小数点演算の処理時間の一例を示している。まず、入力メモリ１０から浮動小数点演算用メモリ１２へのデータ転送が行なわれる（ｍｏｖｅ１）。そして、浮動小数点演算用メモリ１２から浮動小数点演算ユニット１６へのデータ読込みが行なわれる（ｒｅａｄ１）。
【００３４】
次に、浮動小数点演算ユニット１６は、読込んだデータに対して浮動小数点演算を行ない（ｅｘｅ１）、その中間データを浮動小数点演算用メモリ１２に書込む（ｗｒｉｔｅ１）。そして、中間データを浮動小数点演算用ワークメモリ２２に書込み（ｗｒｉｔｅ３）、別の中間データを浮動小数点演算用ワークメモリ２２から浮動小数点演算用メモリ１２に読込む（ｒｅａｄ３）。
【００３５】
次に、浮動小数点演算用メモリ１２から浮動小数点演算ユニット１６への中間データの読込みが行なわれる（ｒｅａｄ１）。そして、浮動小数点演算ユニット１６は、読込んだ中間データに対して浮動小数点演算を行ない（ｅｘｅ１）、その中間データが出力メモリ１９へ転送される（ｍｏｖｅ２）。
【００３６】
仮に、中間データの浮動小数点演算用ワークメモリ２２への書込み（ｗｒｉｔｅ３）および中間データの浮動小数点演算用ワークメモリ２２からの読込み（ｒｅａｄ３）を含んだ全ての処理が１サイクルで行なえるとすると、図３（ｂ）に示す処理に、９サイクルを要することになる。したがって、図３（ａ）に示す浮動小数点演算用ワークメモリ２２がない場合と比較して、処理時間を３３％（＝９／２７）に短縮することができる。
【００３７】
以上説明したように、本実施の形態における幾何学演算装置によれば、整数演算および浮動小数点演算の中間データを記憶するワークメモリを設けたので、中間データの転送時間を短くでき、幾何学演算を高速に行なうことが可能となる。
【００３８】
また、整数演算用ワークメモリと浮動小数点演算用ワークメモリとが、それぞれ整数演算用メモリと浮動小数点演算用メモリとから独立して設けられるので、整数演算ユニットおよび浮動小数点演算ユニットから見たメモリアドレス空間は、整数演算用メモリおよび浮動小数点演算用メモリの分だけとなる。したがって、メモリアドレス空間を増やすことなく、ワークメモリの容量を増やすことが可能となる。
【００３９】
なお、図１に示す本発明の第１の実施の形態における幾何学演算装置は、整数演算ユニットが１個、浮動小数点演算ユニットが２個の場合についてであったが、整数演算ユニットおよび浮動小数点演算ユニットはこれ以外の任意の数であっても、同様の効果が得られる。
【００４０】
（第２の実施の形態）
図４は、本発明の第２の実施の形態における幾何学演算装置の概略構成を示すブロック図である。図１に示す第１の実施の形態における幾何学演算装置の概略構成と比較して、整数演算用ワークメモリ２１を削除した点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００４１】
本実施の形態においては、整数演算に比べて浮動小数点演算の頻度が高い場合に、浮動小数点演算用ワークメモリ２２および２３のみを備えることで、中間データの転送時間の短縮を図るものである。
【００４２】
図５は、浮動小数点演算と整数演算との比率が９対１と仮定した場合、浮動小数点演算用ワークメモリがない場合の処理時間と、浮動小数点演算用ワークメモリがある場合の処理時間とを示す図である。それぞれの処理時間は、図２および図３に示す個々の処理時間と同様である。
【００４３】
図５に示すように、浮動小数点演算用ワークメモリ２２および２３がない場合、１回の演算に必要となるサイクル数は２７サイクルとなる。また。浮動小数点演算用ワークメモリ２２および２３がある場合、１回の演算に必要となるサイクル数は１０．８サイクルとなる。したがって、浮動小数点演算用ワークメモリ２２および２３がない場合と比較して、処理時間を４０％（＝１０．８／２７）に短縮することができる。
【００４４】
以上説明したように、本実施の形態における幾何学演算装置によれば、第１の実施の形態において説明した効果に加えて、整数演算用ワークメモリを削除することができ、ワークメモリの実装面積を削減することが可能となる。
【００４５】
なお、図４に示す本発明の第２の実施の形態における幾何学演算装置は、整数演算ユニットが１個、浮動小数点演算ユニットが２個の場合についてであったが、整数演算ユニットおよび浮動小数点演算ユニットはこれ以外の任意の数であっても、同様の効果が得られる。
【００４６】
（第３の実施の形態）
図６は、本発明の第３の実施の形態における幾何学演算装置の概略構成を示すブロック図である。図１に示す第１の実施の形態における幾何学演算装置の概略構成と比較して、浮動小数点演算用ワークメモリ２２および２３を削除した点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００４７】
本実施の形態においては、浮動小数点演算に比べて整数演算の頻度が高い場合に、整数演算用ワークメモリ２１のみを備えることで、中間データの転送時間の短縮を図るものである。
【００４８】
浮動小数点演算と整数演算との比率が１対９と仮定した場合、整数演算用ワークメモリ２１がない場合、１回の演算に必要となるサイクル数は２７サイクルとなる。また、整数演算用ワークメモリ２１がある場合、１回の演算に必要となるサイクル数は１０．８サイクルとなる。したがって、整数演算用ワークメモリ２１がない場合と比較して、処理時間を４０％（＝１０．８／２７）に短縮することができる。
【００４９】
以上説明したように、本実施の形態における幾何学演算装置によれば、第１の実施の形態において説明した効果に加えて、浮動小数点演算用ワークメモリを削除することができ、ワークメモリの実装面積を削減することが可能となる。
【００５０】
なお、図６に示す本発明の第３の実施の形態における幾何学演算装置は、整数演算ユニットが１個、浮動小数点演算ユニットが２個の場合についてであったが、整数演算ユニットおよび浮動小数点演算ユニットはこれ以外の任意の数であっても、同様の効果が得られる。
【００５１】
（第４の実施の形態）
図７は、本発明の第４の実施の形態における幾何学演算装置の概略構成を示すブロック図である。図１に示す第１の実施の形態における幾何学演算装置の概略構成と比較して、整数演算用ワークメモリ２１および浮動小数点演算用ワークメモリ２３を削除した点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００５２】
本実施の形態においては、１個の浮動小数点演算ユニット１６を使用する浮動小数点演算の頻度が高い場合に、浮動小数点演算用ワークメモリ２２のみを備えることで、中間データの転送時間の短縮を図るものである。
【００５３】
以上説明したように、本実施の形態における幾何学演算装置によれば、第１の実施の形態において説明した効果に加えて、整数演算用ワークメモリおよび１個の浮動小数点演算用ワークメモリを削除することができ、ワークメモリの実装面積を削減することが可能となる。
【００５４】
なお、図７に示す本発明の第４の実施の形態における幾何学演算装置は、整数演算ユニットが１個、浮動小数点演算ユニットが２個の場合についてであったが、整数演算ユニットおよび浮動小数点演算ユニットはこれ以外の任意の数であっても、同様の効果が得られる。
【００５５】
（第５の実施の形態）
図８は、本発明の第５の実施の形態における幾何学演算装置の概略構成を示すブロック図である。図１に示す第１の実施の形態における幾何学演算装置の概略構成と比較して、浮動小数点演算用ワークメモリ２３を削除した点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００５６】
本実施の形態においては、整数演算ユニット１５を使用する整数演算と、１個の浮動小数点演算ユニット１６を使用する浮動小数点演算との頻度が高い場合に、整数演算用ワークメモリ２１および浮動小数点演算用ワークメモリ２２のみを備えることで、中間データの転送時間の短縮を図るものである。
【００５７】
以上説明したように、本実施の形態における幾何学演算装置によれば、第１の実施の形態において説明した効果に加えて、１個の浮動小数点演算用ワークメモリを削除することができ、ワークメモリの実装面積を削減することが可能となる。
【００５８】
なお、図８に示す本発明の第５の実施の形態における幾何学演算装置は、整数演算ユニットが１個、浮動小数点演算ユニットが２個の場合についてであったが、整数演算ユニットおよび浮動小数点演算ユニットはこれ以外の任意の数であっても、同様の効果が得られる。
【００５９】
（第６の実施の形態）
図９は、本発明の第６の実施の形態における幾何学演算装置の概略構成を示すブロック図である。図１に示す第１の実施の形態における幾何学演算装置の概略構成と比較して、整数演算用ワークメモリ２１、浮動小数点演算用ワークメモリ２２および２３を、共有ワークメモリ（ＣＷＭ）２４に置換した点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００６０】
本実施の形態においては、ある演算ユニットの中間データを別の演算ユニットが使用する頻度が高い場合に、共有ワークメモリ２４を備えることで、中間データの転送時間の短縮を図るものである。
【００６１】
図１０は、本発明の第６の実施の形態における幾何学演算装置の１回の演算の処理時間を説明するための図である。図１０（ａ）は、ワークメモリが全くない場合の１回の演算の処理時間の一例を示している。この処理時間は、図２（ａ）または図３（ａ）を用いて説明したものと同様である。
【００６２】
図１０（ｂ）は、個別にワークメモリを備えるだけで、共有メモリがない場合の１回の演算の処理時間の一例を示している。まず、入力メモリ１０から整数演算用メモリ１１、浮動小数点演算用メモリ１２または１３（以下、単に演算用メモリと呼ぶ。）へのデータ転送が行なわれる（ｍｏｖｅ１）。そして、演算用メモリから整数演算ユニット１５、浮動小数点演算ユニット１６または１７（以下、単に演算ユニットと呼ぶ。）へのデータ読込みが行なわれる（ｒｅａｄ１）。
【００６３】
次に、演算ユニットは、読込んだデータに対して演算を行ない（ｅｘｅ１）、その中間データを演算用メモリに書込む（ｗｒｉｔｅ１）。そして、中間データをワークメモリに書込む（ｗｒｉｔｅ２）。
【００６４】
次に、中間データを別のワークメモリから別の演算用メモリに読込み（ｒｅａｄ２）、その中間データを当該演算用メモリに転送する（ｔｒａｎ１）。そして、演算用メモリから演算ユニットへの中間データの読込みが行なわれる（ｒｅａｄ１）。そして、演算ユニットは、読込んだ中間データに対して演算を行ない（ｅｘｅ１）、その演算結果が出力メモリ１９へ転送される（ｍｏｖｅ２）。
【００６５】
仮に、中間データの演算用ワークメモリへの書込み（ｗｒｉｔｅ３）、中間データの演算用ワークメモリからの読込み（ｒｅａｄ３）および中間データの転送（ｔｒａｎ１）を含んだ全ての処理が１サイクルで行なえるとすると、図１０（ｂ）に示す処理に、１０サイクルを要することになる。
【００６６】
図１０（ｃ）は、共有ワークメモリ２４がある場合の１回の演算の処理時間の一例を示している。まず、入力メモリ１０から演算用メモリへのデータ転送が行なわれる（ｍｏｖｅ１）。そして、演算用メモリから演算ユニットへのデータ読込みが行なわれる（ｒｅａｄ１）。
【００６７】
次に、演算ユニットは、読込んだデータに対して演算を行ない（ｅｘｅ１）、その中間データを演算用メモリに書込む（ｗｒｉｔｅ１）。そして、中間データを共有ワークメモリ２４に書込み（ｗｒｉｔｅ３）、別の演算ユニットの中間データを共有ワークメモリ２４から演算用メモリに読込む（ｒｅａｄ３）。
【００６８】
次に、演算用メモリから演算ユニットへの中間データの読込みが行なわれる（ｒｅａｄ１）。そして、演算ユニットは、読込んだ中間データに対して演算を行ない（ｅｘｅ１）、その演算結果が出力メモリ１９へ転送される（ｍｏｖｅ２）。
【００６９】
仮に、中間データの共有ワークメモリ２４への書込み（ｗｒｉｔｅ３）および中間データの共有ワークメモリ２４からの読込み（ｒｅａｄ３）を含んだ全ての処理が１サイクルで行なえるとすると、図１０（ｃ）に示す処理に、９サイクルを要することになる。したがって、図１０（ｂ）に示す個別のワークメモリがある場合と比較して、処理時間を９０％（＝９／１０）に短縮することができる。
【００７０】
以上説明したように、本実施の形態における幾何学演算装置によれば、共有ワークメモリ２４を備えるようにしたので、演算ユニットの中間データを別の演算ユニットに転送するサイクルが不要となり、第１〜第５の実施の形態と比較して、さらに中間データの転送時間を短縮することができ、幾何学演算をさらに高速に行なうことが可能となる。また、ワークメモリを共有メモリとすることによって、実装面積を削減することが可能となる。
【００７１】
また、共有ワークメモリ２４が、整数演算用メモリと浮動小数点演算用メモリとから独立して設けられるので、整数演算ユニットおよび浮動小数点演算ユニットから見たメモリアドレス空間は、整数演算用メモリおよび浮動小数点演算用メモリの分だけとなる。したがって、メモリアドレス空間を増やすことなく、ワークメモリの容量を増やすことが可能となる。
【００７２】
なお、図９に示す本発明の第６の実施の形態における幾何学演算装置は、整数演算ユニットが１個、浮動小数点演算ユニットが２個の場合についてであったが、整数演算ユニットおよび浮動小数点演算ユニットはこれ以外の任意の数であっても、同様の効果が得られる。
【００７３】
（第７の実施の形態）
図１１は、本発明の第７の実施の形態における幾何学演算装置の概略構成を示すブロック図である。図１に示す第１の実施の形態における幾何学演算装置の概略構成と比較して、浮動小数点演算用ワークメモリ２２および２３を、共有ワークメモリ（ＦＣＷＭ）２５に置換した点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００７４】
本実施の形態においては、ある浮動小数点演算ユニットの中間データを別の浮動小数点演算ユニットが使用する頻度が高い場合に、共有ワークメモリ２５を備えることで、中間データの転送時間の短縮を図るものである。
【００７５】
以上説明したように、本実施の形態における幾何学演算装置によれば、共有ワークメモリ２５を備えるようにしたので、ある浮動小数点演算ユニットの中間データを別の浮動小数点演算ユニットに転送するサイクルが不要となり、第６の実施の形態において説明した効果と同様の効果を奏することが可能となる。
【００７６】
なお、図１１に示す本発明の第７の実施の形態における幾何学演算装置は、整数演算ユニットが１個、浮動小数点演算ユニットが２個の場合についてであったが、整数演算ユニットおよび浮動小数点演算ユニットはこれ以外の任意の数であっても、同様の効果が得られる。
【００７７】
（第８の実施の形態）
図１２は、本発明の第８の実施の形態における幾何学演算装置の概略構成を示すブロック図である。図１に示す第１の実施の形態における幾何学演算装置の概略構成と比較して、整数演算用ワークメモリ２１および浮動小数点演算用ワークメモリ２２を、共有ワークメモリ（ＩＦＣＷＭ）２６に置換した点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００７８】
本実施の形態においては、整数演算ユニット１５の中間データを浮動小数点演算ユニット１６が使用する頻度が高い場合、または浮動小数点演算ユニット１６の中間データを整数演算ユニット１５が使用する頻度が高い場合に、共有ワークメモリ２６を備えることで、中間データの転送時間の短縮を図るものである。
【００７９】
以上説明したように、本実施の形態における幾何学演算装置によれば、共有ワークメモリ２６を備えるようにしたので、整数演算ユニットの中間データを浮動小数点演算用メモリに転送するサイクル、または浮動小数点演算ユニットの中間データを整数演算用メモリに転送するサイクルが不要となり、第６の実施の形態において説明した効果と同様の効果を奏することが可能となる。
【００８０】
なお、図１２に示す本発明の第８の実施の形態における幾何学演算装置は、整数演算ユニットが１個、浮動小数点演算ユニットが２個の場合についてであったが、整数演算ユニットおよび浮動小数点演算ユニットはこれ以外の任意の数であっても、同様の効果が得られる。
【００８１】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００８２】
【図１】本発明の第１の実施の形態における幾何学演算装置の概略構成を示すブロック図である。
【図２】本発明の第１の実施の形態における幾何学演算装置の整数演算の処理時間を説明するための図である。
【図３】本発明の第１の実施の形態における幾何学演算装置の浮動小数点演算の処理時間を説明するための図である。
【図４】本発明の第２の実施の形態における幾何学演算装置の概略構成を示すブロック図である。
【図５】浮動小数点演算と整数演算との比率が９対１と仮定した場合、浮動小数点演算用ワークメモリがない場合の処理時間と、浮動小数点演算用ワークメモリがある場合の処理時間とを示す図である。
【図６】本発明の第３の実施の形態における幾何学演算装置の概略構成を示すブロック図である。
【図７】本発明の第４の実施の形態における幾何学演算装置の概略構成を示すブロック図である。
【図８】本発明の第５の実施の形態における幾何学演算装置の概略構成を示すブロック図である。
【図９】本発明の第６の実施の形態における幾何学演算装置の概略構成を示すブロック図である。
【図１０】本発明の第６の実施の形態における幾何学演算装置の１回の演算の処理時間を説明するための図である。
【図１１】本発明の第７の実施の形態における幾何学演算装置の概略構成を示すブロック図である。
【図１２】本発明の第８の実施の形態における幾何学演算装置の概略構成を示すブロック図である。
【符号の説明】
【００８３】
１０  入力メモリ、１１  整数演算用メモリ、１２，１３  浮動小数点演算用メモリ、１４  グローバルバス、１５  整数演算ユニット、１６，１７  浮動小数点演算ユニット、１８  シーケンサ、１９  出力メモリ、２０  出力バス、２１  整数演算用ワークメモリ、２２，２３  浮動小数点演算用ワークメモリ、２４〜２６  共有ワークメモリ。
【図１】
2005038319.tif 000003
【図２】
2005038319.tif 000004
【図３】
2005038319.tif 000005
【図４】
2005038319.tif 000006
【図５】
2005038319.tif 000007
【図６】
2005038319.tif 000008
【図７】
2005038319.tif 000009
【図８】
2005038319.tif 000010
【図９】
2005038319.tif 000011
【図１０】
2005038319.tif 000012
【図１１】
2005038319.tif 000013
【図１２】
2005038319.tif 000014