(57)【特許請求の範囲】
【請求項１】
命令パイプラインのフェイズｉ目にソースレジスタファイルにおけるデータを読み取るステップと、
命令パイプラインのアイドルとなったフェイズを利用して、読み取られたデータをターゲットレジスタファイルに伝送するステップと
を含み、
命令パイプラインのフェイズｉ目にソースレジスタファイルにおけるデータを読み取る前記ステップは、
前記読み取られたデータを一時レジスタｘに書き込み、予め設定されたマスクを一時レジスタｙに書き込むことを含み、
命令パイプラインのアイドルとなったフェイズを利用して、読み取られたデータをターゲットレジスタファイルに伝送する前記ステップは、
フェイズ（ｉ＋１）目に、前記一時レジスタｙ及び前記一時レジスタｘのデータを｛ｙ，ｘ｝に結合し、｛ｙ，ｘ｝をアイドル命令パイプラインのフェイズ（ｉ＋１）に書き込み、
データをアイドル命令パイプラインに沿って徐々に流動させて次のフェイズに伝送し、
ｊ個のクロック周期が経過した後、フェイズ（ｉ＋ｊ）目に、アイドル命令パイプラインからデータをターゲットレジスタファイルに取り込むことを含み、
フェイズ（ｉ＋ｊ）目にアイドル命令パイプラインからデータをターゲットレジスタファイルに取り込む前記ステップは、
前記｛ｙ，ｘ｝のｘ部分をデータユニットとし、ｎ個のデータユニットのコピーを結合して、長さがデータユニットの長さのｎ倍である拡張データを取得し、拡張データを一時レジスタｊに書き込み、前記｛ｙ，ｘ｝のｙ部分をマスクとし、
一時レジスタｊにおける、マスクの有効ビットに対応するセクションにおけるデータユニットを、前記ターゲットレジスタファイルの対応セクションに書き込むことを含む
ことを特徴とするレジスタファイル間におけるデータ伝送の実現方法。
【請求項２】
前記ソースレジスタファイルは３２ビットであり、前記ターゲットレジスタファイルは１０２４ビットであり、前記ｎは３２であり、
前記アイドル命令パイプラインは６４ビットの命令パイプラインである
ことを特徴とする請求項１に記載のデータ伝送の実現方法。
【請求項３】
命令パイプラインのフェイズｉ目にソースレジスタファイルにおけるデータを読み取ることに用いられる読取ユニットと、
命令パイプラインのアイドルとなったフェイズを利用して、読み取られたデータをターゲットレジスタファイルに伝送することに用いられる伝送ユニットと
を備え、
前記読取ユニットは、前記読み取られたデータを一時レジスタｘに書き込み、予め設定されたマスクを一時レジスタｙに書き込むことに用いられ、
前記伝送ユニットは、
フェイズ（ｉ＋１）目に、一時レジスタｙ及び一時レジスタｘのデータを｛ｙ，ｘ｝に結合し、｛ｙ，ｘ｝をアイドル命令パイプラインのフェイズ（ｉ＋１）に書き込み、
データをアイドル命令パイプラインに沿って徐々に流動させて次のフェイズに伝送し、ｊ個のクロック周期が経過した後、フェイズ（ｉ＋ｊ）目に、アイドル命令パイプラインからデータをターゲットレジスタファイルに取り込み、
前記｛ｙ，ｘ｝のｘ部分をデータユニットとし、ｎ個のデータユニットのコピーを結合して、長さがデータユニットの長さのｎ倍である拡張データを取得し、拡張データを一時レジスタｊに書き込み、前記｛ｙ，ｘ｝のｙ部分をマスクとし、
一時レジスタｊにおける、マスクの有効ビットに対応するセクションにおけるデータユニットを、前記ターゲットレジスタファイルの対応セクションに書き込むことに用いられる
ことを特徴とするレジスタファイル間におけるデータ伝送の実現装置。
【請求項４】
前記ソースレジストファイルは３２ビットであり、前記ターゲットレジスタファイルは１０２４ビットであり、前記ｎは３２であり、
前記アイドル命令パイプラインは６４ビットの命令パイプラインである
ことを特徴とする請求項３に記載のデータ伝送の実現装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ伝送技術に関し、特にレジスタファイル間におけるデータ伝送の実現方法及び実現装置に関する。
【背景技術】
【０００２】
大抵のプロセッサは、パイプラインアーキテクチャを採用している。パイプラインでは、各フェイズにいくつかの固定的な動作があり、例えば、あるレジスタファイルからデータを読み取って演算したり、演算結果をレジスタファイルに書き戻したりする処理が実行される。プロセッサ内には、複数のレジスタファイルが存在する場合もある。
【０００３】
従来の集積回路（ＩＣ：integrated circuit）設計では、レジスタファイル間のデータ伝送は、通常、データバスを介して実現される。データは、ソースレジスタファイルから読み出されて、関連する制御ロジックにより、データバスを介してターゲットレジスタファイルに書き込まれる。例えば、あるプロセッサは、データをパイプラインのフェイズｉ目にレジスタファイルＡから読み出し、命令パイプラインにおけるＪフェイズの遅延の後、パイプラインのフェイズ（ｉ＋ｊ）目にレジスタファイルＢに書き戻す必要がある。
【０００４】
データ伝送プロセスにおいて、データバスを介する方式では、レジスタを増加してデータと制御信号を一時的に記憶する必要があり、これにより資源の消費量が増加してしまう。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
これに鑑みて、本発明の主要な目的は、ロジックの消費量を減少しつつ、リソースの利用率を向上させることができる、レジスタファイル間におけるデータ伝送の実現方法及び実現装置を提供することにある。
【課題を解決するための手段】
【０００６】
前記目的を達成するために、本発明の技術的スキームは、以下のように実現される。
レジスタファイル間におけるデータ伝送の実現方法は、
命令パイプラインのフェイズｉ目にソースレジスタファイルにおけるデータを読み取るステップと、
アイドル命令パイプラインを利用して、読み取られたデータをターゲットレジスタファイルに伝送するステップとを含む。
【０００７】
命令パイプラインのフェイズｉ目にソースレジスタファイルにおけるデータを読み取る前記ステップは、
前記読み取られたデータを一時レジスタｘに書き込み、予め設定されたマスクを一時レジスタｙに書き込むことを含む。
【０００８】
アイドル命令パイプラインを利用して、読み取られたデータをターゲットレジスタファイルに伝送する前記ステップは、
フェイズ（ｉ＋１）目に、前記一時レジスタｙ及び前記一時レジスタｘのデータを｛ｙ，ｘ｝に結合し、｛ｙ，ｘ｝をアイドル命令パイプラインのフェイズ（ｉ＋１）に書き込み、
データをアイドル命令パイプラインに沿って徐々に流動させて次のステージに伝送し、
ｊ個のクロック周期が経過した後、フェイズ（ｉ＋ｊ）目に、アイドル命令パイプラインからデータをターゲットレジスタファイルに取り込むことを含む。
【０００９】
フェイズ（ｉ＋ｊ）目に、アイドル命令パイプラインからデータをターゲットレジスタファイルに取り込む前記ステップは、
前記｛ｙ，ｘ｝のｘ部分をデータユニットとし、ｎ個のデータユニットのコピーを結合して、長さがデータユニットの長さのｎ倍である拡張データを取得し、拡張データを一時レジスタｊに書き込み、前記｛ｙ，ｘ｝のｙ部分をマスクとし、
一時レジスタｊにおける、マスクの有効ビットに対応するセクションにおけるデータユニットを、前記ターゲットレジスタファイルの対応セクションに書き込むことを含む。
【００１０】
前記ソースレジスタファイルは３２ビットであり、前記ターゲットレジスタファイルは１０２４ビットであり、前記ｎは３２である。
前記アイドル命令パイプラインは６４ビットの命令パイプラインである。
【００１１】
レジスタファイル間におけるデータ伝送の実現装置は、
命令パイプラインのフェイズｉ目にその中のデータを読み取り、アイドル命令パイプラインを利用して、読み取られたデータをターゲット記憶ユニットに伝送することに用いられるソース記憶ユニットと、
ｊ個のクロック周期が経過した後、フェイズ（ｉ＋ｊ）目に、アイドル命令パイプラインからデータを読み取ることに用いられるターゲット記憶ユニットとを備える。
【００１２】
前記ソース記憶ユニットはソースレジスタファイルであり、前記ターゲット記憶ユニットはターゲットレジスタファイルである。
【００１３】
前記ソース記憶ユニットは、フェイズ（ｉ＋１）目に、前記一時レジスタｙ及び前記一時レジスタｘのデータを｛ｙ，ｘ｝に結合し、｛ｙ，ｘ｝をアイドル命令パイプラインのフェイズ（ｉ＋１）に書き込み、
データをアイドル命令パイプラインに沿って徐々に流動させて次のフェイズに伝送し、ｊ個のクロック周期が経過した後、フェイズ（ｉ＋ｊ）目に、アイドル命令パイプラインからデータをターゲットレジスタファイルに取り込むことに用いられる。
【００１４】
前記ターゲット記憶ユニットは、ｊ個のクロック周期が経過した後、前記｛ｙ，ｘ｝のｘ部分をデータユニットとし、ｎ個のデータユニットのコピーを結合して、長さがデータユニットの長さのｎ倍である拡張データを取得し、拡張データを一時レジスタｊに書き込み、前記｛ｙ，ｘ｝のｙ部分をマスクとし、
一時レジスタｊにおける、マスクの有効ビットに対応するセクションにおけるデータユニットを、前記ターゲットレジスタファイルの対応セクションに書き込むことに用いられる。
【００１５】
前記ソースレジストファイルは３２ビットであり、前記ターゲットレジスタファイルは１０２４ビットであり、前記ｎは３２である。
前記アイドル命令パイプラインは６４ビットの命令パイプラインである。
【００１６】
上記の本発明に係る技術的スキームから理解されるように、本発明は、パイプラインのフェイズｉ目にソースレジスタファイルにおけるデータを読み取り、アイドル命令パイプラインを利用して、読み取られたデータをターゲットレジスタファイルに伝送することを含む。本発明のスキームは、データ及び制御情報を一時的に記憶するための余計なレジスタを増加させずに、アイドル命令パイプラインを利用してデータ及びマスク情報を伝送する。これにより、ロジックの消費量を減少しつつ、既存の機能ユニットの利用率を向上させることができる。
【００１７】
本発明のスキームは、プロセッサに複数本の命令パイプラインがあり、データが命令パイプラインのフェイズｉ目にソースレジスタファイルから読み出され、フェイズｊのクロック遅延を経て、最終的にデータがターゲットレジスタファイルに書き込まれる場合のプロセッサ設計に応用される。
【図面の簡単な説明】
【００１８】
【図１】本発明に係るレジスタファイル間におけるデータ伝送の実現方法のフローチャートである。
【図２】本発明に係るレジスタファイル間におけるデータ伝送の実現方法に係る実施形態における伝送を示す図である。
【図３】本発明に係るレジスタファイル間におけるデータ伝送の実現装置の構成を示す図である。
【発明を実施するための形態】
【００１９】
図１は、本発明に係るレジスタファイル間におけるデータ伝送の実現方法のフローチャートである。図１に示すように、この方法は、以下のステップを含む。
【００２０】
ステップ１００：命令パイプラインのフェイズｉ目にソースレジスタファイルにおけるデータを読み取る。
【００２１】
本ステップは、具体的に、読み出されたデータを一時レジスタｘに書き込み、予め設定されたマスクを一時レジスタｙに書き込むことを含む。マスクの利用については、当業者の慣用技術手段に属する。例えば、１６ビット（ｂｉｔ）のデータを６４ビットのレジスタに書き込む場合、データの４つのコピーを使用して６４ビットのデータを構成し、その後、１つの４ビットのマスクを利用する。即ち値が１（高い）であるマスクビット対応する、６４ビットデータのセクションにおけるコピーをレジスタに書き込むことができる。これについては、ここでは詳細な説明は省略する。
【００２２】
ステップ１０１：アイドル命令パイプラインを利用して、読み取られたデータをターゲットレジスタファイルに伝送する。
【００２３】
本ステップにおいて、フェイズ（ｉ＋１）目に、一時レジスタｙ及び一時レジスタｘのデータを｛ｙ，ｘ｝に結合し、｛ｙ，ｘ｝をアイドル命令パイプラインのフェイズ（ｉ＋１）に書き込み、その後、データをアイドル命令パイプラインに沿って徐々に流動させて次のフェイズに伝送する。本発明の方法において、アイドル命令パイプラインがデータバスとして機能する。ｊ個のクロック周期が経過した後、フェイズ（ｉ＋ｊ）目にアイドル命令パイプラインからデータを取り込む。一時的に記憶されたｘ部分をデータユニットとし、ｎ個のデータユニットのコピーを結合して、長さがデータユニットの長さのｎ倍である拡張データを取得し、拡張データを一時レジスタｊに書き込む。ｙ部分をマスクとして、一時レジスタｊにおける、マスクの有効ビット（値が１であるビット）に対応するセクションにおけるデータユニットを、指向性ターゲットレジスタファイルの対応セクションに書き込む。対応して、ターゲットレジスタファイルにおける、マスクの無効ビットに対応するセクションにおけるデータを変更せずに維持する。
【００２４】
ここで、ｎは、ターゲットレジスタファイルのサイズとソースレジスタファイルのサイズの比、即ち倍数である。例えばソースレジスタファイルが３２ビットであり、ターゲットレジスタファイルが１０２４ビットである場合、ｎ＝３２となる。
【００２５】
本発明の方法は、データ及び制御情報を一時的に記憶するための余計なレジスタを増加させずに、アイドル命令パイプラインを利用してデータとマスク情報を伝送する。これにより、ロジックの消費量を減少しつつ、既存の機能ユニットの利用率を向上させることができる。
【００２６】
以下、実施形態を参照しながら本発明の方法を詳細に説明する。
【００２７】
本実施形態において、レジスタファイルＡ、レジスタファイルＢという２つのレジスタファイルがあると仮定し、ここで、レジスタファイルＡでのレジスタペアは１つのユニットのデータを記憶することができ、レジスタファイルＢでのレジスタペアはｎ個のユニットのデータを記憶することができる。本実施形態において、レジスタファイルＡが３２ビットであり、レジスタファイルＢが１０２４ビットであり、ｎ＝３２であると仮定する。システムにおいては、３２ビットの命令パイプラインと６４ビットの命令パイプラインという２本の命令パイプラインが存在する。
【００２８】
本実施形態において、レジスタファイルＡにおけるデータをレジスタファイルＢに伝送することが要求される。即ち、レジスタファイルＡにおけるデータをパイプラインのフェイズｉ目に読み出し、ｊフェイズのクロック遅延が経過した後、フェイズ（ｉ＋ｊ）目にレジスタファイルＢに書き込むことが要求される。図２は、本発明に係るレジスタファイル間におけるデータ伝送の実現方法に係る実施形態における伝送を示す図である。図２に示すように、この方法は、具体的に以下のように実現される。
【００２９】
データ伝送命令が有効である場合、フェイズｉ目に、レジスタファイルＡから読み出されたソースデータを一時レジスタｘに書き込み、読み出されたマスクを一時レジスタｙに書き込む。フェイズｉ＋１目に、一時レジスタｙ及び一時レジスタｘのデータを｛ｙ，ｘ｝に結合してアイドルの６４ビットの命令パイプラインに書き込む。この場合、６４ビットの命令パイプラインがデータバスとして機能する。ｊ個のクロック遅延が経過した後、フェイズ（ｉ＋ｊ）に、６４ビットの命令パイプラインからデータ｛ｙ，ｘ｝を取り込み、その中のｘドメイン部分をデータユニットとし、ｎ個のデータユニットのコピーを結合して、長さがデータユニットの長さのｎ倍（３２倍）である拡張データを取得し、拡張データを一時レジスタｊに書き込む。６４ビットの命令パイプラインからデータ｛ｙ，ｘ｝内のｙドメイン部分をマスク信号として取り込む。本実施形態において、一時レジスタｊにおける、値が１（高い）であるマスクビットに対応するセクションにおけるデータユニットが、指向性レジスタファイルＢのレジスタペアの対応セクションに書き込まれると仮定する。図２に示すように、このようにして、データのマスク書き込みを実現する。
【００３０】
図３は、本発明に係るレジスタファイル間におけるデータ伝送の実現装置の構成を示す図である。図３に示すように、この装置は、ソース記憶ユニット、ターゲット記憶ユニットを備える。
【００３１】
ソース記憶ユニットは、命令パイプラインのフェイズｉ目にその中（ソース記憶ユニットの中）のデータを読み取り、アイドル命令パイプラインを利用して、読み取られたデータをターゲット記憶ユニットに伝送することに用いられる。ソース記憶ユニットは、ソースレジスタファイルである。
【００３２】
ターゲット記憶ユニットは、ｊ個のクロック周期が経過した後、フェイズ（ｉ＋ｊ）目にアイドル命令パイプラインからデータを読み取ることに用いられる。ターゲット記憶ユニットは、ターゲットレジスタファイルである。
【００３３】
ソース記憶ユニットは、具体的に、フェイズ（ｉ＋１）目に、前記一時レジスタｙ及び一時レジスタｘのデータを｛ｙ，ｘ｝に結合し、｛ｙ，ｘ｝をアイドル命令パイプラインのフェイズ（ｉ＋１）目に書き込む。そして、データをアイドル命令パイプラインに沿って徐々に流動させて次のフェイズに伝送し、ｊ個のクロック周期が経過した後、フェイズ（ｉ＋ｊ）目にアイドル命令パイプラインからデータをターゲットレジスタファイルに取り込む。
【００３４】
ターゲット記憶ユニットは、具体的に、ｊ個のクロック周期が経過した後、前記｛ｙ，ｘ｝のｘ部分をデータユニットとし、ｎ個のデータユニットのコピーを結合して、長さがデータユニットの長さのｎ倍である拡張データを取得し、拡張データを一時レジスタｊに書き込む。そして、前記｛ｙ，ｘ｝のｙ部分をマスクとし、一時レジスタｊにおける、マスクの有効ビットに対応するセクションにおけるデータユニットを前記ターゲットレジスタファイルの対応セクションに書き込む。
【００３５】
ソースレジスタファイルが３２ビットで、ターゲットレジスタファイルが１０２４ビットである場合、ｎの値は３２である。また、アイドル命令パイプラインは６４ビットの命令パイプラインである。
【００３６】
以上の説明は、本発明の好適な実施例に過ぎず、本発明を制限するものでではない。本分野の当業者であれば、本発明に基づく種々の変更と変化が可能である。本発明の主旨及び原則を逸脱することなく実施されたあらゆる改修、均等的置換、改良等は、すべて本発明の保護範囲以内に含まれるべきである。
【図１】
0005710833.tif 000002
【図２】
0005710833.tif 000003
【図３】
0005710833.tif 000004