(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5710833
(24)【登録日】2015年3月13日
(45)【発行日】2015年4月30日
(54)【発明の名称】レジスタファイル間におけるデータ伝送の実現方法及び実現装置
(51)【国際特許分類】
G06F 9/38 20060101AFI20150409BHJP
G06F 9/34 20060101ALI20150409BHJP
G06F 9/315 20060101ALI20150409BHJP
G06F 15/173 20060101ALI20150409BHJP
G06F 15/82 20060101ALI20150409BHJP
【FI】
G06F9/38 310X
G06F9/34 330
G06F9/30 340D
G06F15/173 640L
G06F15/82 620C
【請求項の数】4
【全頁数】8
(21)【出願番号】特願2014-502973(P2014-502973)
(86)(22)【出願日】2011年8月22日
(65)【公表番号】特表2014-513343(P2014-513343A)
(43)【公表日】2014年5月29日
(86)【国際出願番号】CN2011078721
(87)【国際公開番号】WO2012136037
(87)【国際公開日】20121011
【審査請求日】2013年11月1日
(31)【優先権主張番号】201110086342.6
(32)【優先日】2011年4月7日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】511207729
【氏名又は名称】ゼットティーイー コーポレイション
(74)【代理人】
【識別番号】100104215
【弁理士】
【氏名又は名称】大森 純一
(74)【代理人】
【識別番号】100117330
【弁理士】
【氏名又は名称】折居 章
(74)【代理人】
【識別番号】100168181
【弁理士】
【氏名又は名称】中村 哲平
(74)【代理人】
【識別番号】100168745
【弁理士】
【氏名又は名称】金子 彩子
(74)【代理人】
【識別番号】100170346
【弁理士】
【氏名又は名称】吉田 望
(74)【代理人】
【識別番号】100176131
【弁理士】
【氏名又は名称】金山 慎太郎
(72)【発明者】
【氏名】リ リフアン
(72)【発明者】
【氏名】レン フイ
(72)【発明者】
【氏名】ティエン チュンユ
【審査官】
三坂 敏夫
(56)【参考文献】
【文献】
国際公開第2004/023291(WO,A1)
【文献】
特開平03−006768(JP,A)
【文献】
特開2005−284749(JP,A)
【文献】
特表2003−521035(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/38
G06F 9/315
G06F 9/34
G06F 15/173
G06F 15/82
(57)【特許請求の範囲】
【請求項1】
命令パイプラインのフェイズi目にソースレジスタファイルにおけるデータを読み取るステップと、
命令パイプラインのアイドルとなったフェイズを利用して、読み取られたデータをターゲットレジスタファイルに伝送するステップと
を含み、
命令パイプラインのフェイズi目にソースレジスタファイルにおけるデータを読み取る前記ステップは、
前記読み取られたデータを一時レジスタxに書き込み、予め設定されたマスクを一時レジスタyに書き込むことを含み、
命令パイプラインのアイドルとなったフェイズを利用して、読み取られたデータをターゲットレジスタファイルに伝送する前記ステップは、
フェイズ(i+1)目に、前記一時レジスタy及び前記一時レジスタxのデータを{y,x}に結合し、{y,x}をアイドル命令パイプラインのフェイズ(i+1)に書き込み、
データをアイドル命令パイプラインに沿って徐々に流動させて次のフェイズに伝送し、
j個のクロック周期が経過した後、フェイズ(i+j)目に、アイドル命令パイプラインからデータをターゲットレジスタファイルに取り込むことを含み、
フェイズ(i+j)目にアイドル命令パイプラインからデータをターゲットレジスタファイルに取り込む前記ステップは、
前記{y,x}のx部分をデータユニットとし、n個のデータユニットのコピーを結合して、長さがデータユニットの長さのn倍である拡張データを取得し、拡張データを一時レジスタjに書き込み、前記{y,x}のy部分をマスクとし、
一時レジスタjにおける、マスクの有効ビットに対応するセクションにおけるデータユニットを、前記ターゲットレジスタファイルの対応セクションに書き込むことを含む
ことを特徴とするレジスタファイル間におけるデータ伝送の実現方法。
【請求項2】
前記ソースレジスタファイルは32ビットであり、前記ターゲットレジスタファイルは1024ビットであり、前記nは32であり、
前記アイドル命令パイプラインは64ビットの命令パイプラインである
ことを特徴とする請求項1に記載のデータ伝送の実現方法。
【請求項3】
命令パイプラインのフェイズi目にソースレジスタファイルにおけるデータを読み取ることに用いられる読取ユニットと、
命令パイプラインのアイドルとなったフェイズを利用して、読み取られたデータをターゲットレジスタファイルに伝送することに用いられる伝送ユニットと
を備え、
前記読取ユニットは、前記読み取られたデータを一時レジスタxに書き込み、予め設定されたマスクを一時レジスタyに書き込むことに用いられ、
前記伝送ユニットは、
フェイズ(i+1)目に、一時レジスタy及び一時レジスタxのデータを{y,x}に結合し、{y,x}をアイドル命令パイプラインのフェイズ(i+1)に書き込み、
データをアイドル命令パイプラインに沿って徐々に流動させて次のフェイズに伝送し、j個のクロック周期が経過した後、フェイズ(i+j)目に、アイドル命令パイプラインからデータをターゲットレジスタファイルに取り込み、
前記{y,x}のx部分をデータユニットとし、n個のデータユニットのコピーを結合して、長さがデータユニットの長さのn倍である拡張データを取得し、拡張データを一時レジスタjに書き込み、前記{y,x}のy部分をマスクとし、
一時レジスタjにおける、マスクの有効ビットに対応するセクションにおけるデータユニットを、前記ターゲットレジスタファイルの対応セクションに書き込むことに用いられる
ことを特徴とするレジスタファイル間におけるデータ伝送の実現装置。
【請求項4】
前記ソースレジストファイルは32ビットであり、前記ターゲットレジスタファイルは1024ビットであり、前記nは32であり、
前記アイドル命令パイプラインは64ビットの命令パイプラインである
ことを特徴とする請求項3に記載のデータ伝送の実現装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ伝送技術に関し、特にレジスタファイル間におけるデータ伝送の実現方法及び実現装置に関する。
【背景技術】
【0002】
大抵のプロセッサは、パイプラインアーキテクチャを採用している。パイプラインでは、各フェイズにいくつかの固定的な動作があり、例えば、あるレジスタファイルからデータを読み取って演算したり、演算結果をレジスタファイルに書き戻したりする処理が実行される。プロセッサ内には、複数のレジスタファイルが存在する場合もある。
【0003】
従来の集積回路(IC:integrated circuit)設計では、レジスタファイル間のデータ伝送は、通常、データバスを介して実現される。データは、ソースレジスタファイルから読み出されて、関連する制御ロジックにより、データバスを介してターゲットレジスタファイルに書き込まれる。例えば、あるプロセッサは、データをパイプラインのフェイズi目にレジスタファイルAから読み出し、命令パイプラインにおけるJフェイズの遅延の後、パイプラインのフェイズ(i+j)目にレジスタファイルBに書き戻す必要がある。
【0004】
データ伝送プロセスにおいて、データバスを介する方式では、レジスタを増加してデータと制御信号を一時的に記憶する必要があり、これにより資源の消費量が増加してしまう。
【発明の概要】
【発明が解決しようとする課題】
【0005】
これに鑑みて、本発明の主要な目的は、ロジックの消費量を減少しつつ、リソースの利用率を向上させることができる、レジスタファイル間におけるデータ伝送の実現方法及び実現装置を提供することにある。
【課題を解決するための手段】
【0006】
前記目的を達成するために、本発明の技術的スキームは、以下のように実現される。
レジスタファイル間におけるデータ伝送の実現方法は、
命令パイプラインのフェイズi目にソースレジスタファイルにおけるデータを読み取るステップと、
アイドル命令パイプラインを利用して、読み取られたデータをターゲットレジスタファイルに伝送するステップとを含む。
【0007】
命令パイプラインのフェイズi目にソースレジスタファイルにおけるデータを読み取る前記ステップは、
前記読み取られたデータを一時レジスタxに書き込み、予め設定されたマスクを一時レジスタyに書き込むことを含む。
【0008】
アイドル命令パイプラインを利用して、読み取られたデータをターゲットレジスタファイルに伝送する前記ステップは、
フェイズ(i+1)目に、前記一時レジスタy及び前記一時レジスタxのデータを{y,x}に結合し、{y,x}をアイドル命令パイプラインのフェイズ(i+1)に書き込み、
データをアイドル命令パイプラインに沿って徐々に流動させて次のステージに伝送し、
j個のクロック周期が経過した後、フェイズ(i+j)目に、アイドル命令パイプラインからデータをターゲットレジスタファイルに取り込むことを含む。
【0009】
フェイズ(i+j)目に、アイドル命令パイプラインからデータをターゲットレジスタファイルに取り込む前記ステップは、
前記{y,x}のx部分をデータユニットとし、n個のデータユニットのコピーを結合して、長さがデータユニットの長さのn倍である拡張データを取得し、拡張データを一時レジスタjに書き込み、前記{y,x}のy部分をマスクとし、
一時レジスタjにおける、マスクの有効ビットに対応するセクションにおけるデータユニットを、前記ターゲットレジスタファイルの対応セクションに書き込むことを含む。
【0010】
前記ソースレジスタファイルは32ビットであり、前記ターゲットレジスタファイルは1024ビットであり、前記nは32である。
前記アイドル命令パイプラインは64ビットの命令パイプラインである。
【0011】
レジスタファイル間におけるデータ伝送の実現装置は、
命令パイプラインのフェイズi目にその中のデータを読み取り、アイドル命令パイプラインを利用して、読み取られたデータをターゲット記憶ユニットに伝送することに用いられるソース記憶ユニットと、
j個のクロック周期が経過した後、フェイズ(i+j)目に、アイドル命令パイプラインからデータを読み取ることに用いられるターゲット記憶ユニットとを備える。
【0012】
前記ソース記憶ユニットはソースレジスタファイルであり、前記ターゲット記憶ユニットはターゲットレジスタファイルである。
【0013】
前記ソース記憶ユニットは、フェイズ(i+1)目に、前記一時レジスタy及び前記一時レジスタxのデータを{y,x}に結合し、{y,x}をアイドル命令パイプラインのフェイズ(i+1)に書き込み、
データをアイドル命令パイプラインに沿って徐々に流動させて次のフェイズに伝送し、j個のクロック周期が経過した後、フェイズ(i+j)目に、アイドル命令パイプラインからデータをターゲットレジスタファイルに取り込むことに用いられる。
【0014】
前記ターゲット記憶ユニットは、j個のクロック周期が経過した後、前記{y,x}のx部分をデータユニットとし、n個のデータユニットのコピーを結合して、長さがデータユニットの長さのn倍である拡張データを取得し、拡張データを一時レジスタjに書き込み、前記{y,x}のy部分をマスクとし、
一時レジスタjにおける、マスクの有効ビットに対応するセクションにおけるデータユニットを、前記ターゲットレジスタファイルの対応セクションに書き込むことに用いられる。
【0015】
前記ソースレジストファイルは32ビットであり、前記ターゲットレジスタファイルは1024ビットであり、前記nは32である。
前記アイドル命令パイプラインは64ビットの命令パイプラインである。
【0016】
上記の本発明に係る技術的スキームから理解されるように、本発明は、パイプラインのフェイズi目にソースレジスタファイルにおけるデータを読み取り、アイドル命令パイプラインを利用して、読み取られたデータをターゲットレジスタファイルに伝送することを含む。本発明のスキームは、データ及び制御情報を一時的に記憶するための余計なレジスタを増加させずに、アイドル命令パイプラインを利用してデータ及びマスク情報を伝送する。これにより、ロジックの消費量を減少しつつ、既存の機能ユニットの利用率を向上させることができる。
【0017】
本発明のスキームは、プロセッサに複数本の命令パイプラインがあり、データが命令パイプラインのフェイズi目にソースレジスタファイルから読み出され、フェイズjのクロック遅延を経て、最終的にデータがターゲットレジスタファイルに書き込まれる場合のプロセッサ設計に応用される。
【図面の簡単な説明】
【0018】
【
図1】本発明に係るレジスタファイル間におけるデータ伝送の実現方法のフローチャートである。
【
図2】本発明に係るレジスタファイル間におけるデータ伝送の実現方法に係る実施形態における伝送を示す図である。
【
図3】本発明に係るレジスタファイル間におけるデータ伝送の実現装置の構成を示す図である。
【発明を実施するための形態】
【0019】
図1は、本発明に係るレジスタファイル間におけるデータ伝送の実現方法のフローチャートである。
図1に示すように、この方法は、以下のステップを含む。
【0020】
ステップ100:命令パイプラインのフェイズi目にソースレジスタファイルにおけるデータを読み取る。
【0021】
本ステップは、具体的に、読み出されたデータを一時レジスタxに書き込み、予め設定されたマスクを一時レジスタyに書き込むことを含む。マスクの利用については、当業者の慣用技術手段に属する。例えば、16ビット(bit)のデータを64ビットのレジスタに書き込む場合、データの4つのコピーを使用して64ビットのデータを構成し、その後、1つの4ビットのマスクを利用する。即ち値が1(高い)であるマスクビット対応する、64ビットデータのセクションにおけるコピーをレジスタに書き込むことができる。これについては、ここでは詳細な説明は省略する。
【0022】
ステップ101:アイドル命令パイプラインを利用して、読み取られたデータをターゲットレジスタファイルに伝送する。
【0023】
本ステップにおいて、フェイズ(i+1)目に、一時レジスタy及び一時レジスタxのデータを{y,x}に結合し、{y,x}をアイドル命令パイプラインのフェイズ(i+1)に書き込み、その後、データをアイドル命令パイプラインに沿って徐々に流動させて次のフェイズに伝送する。本発明の方法において、アイドル命令パイプラインがデータバスとして機能する。j個のクロック周期が経過した後、フェイズ(i+j)目にアイドル命令パイプラインからデータを取り込む。一時的に記憶されたx部分をデータユニットとし、n個のデータユニットのコピーを結合して、長さがデータユニットの長さのn倍である拡張データを取得し、拡張データを一時レジスタjに書き込む。y部分をマスクとして、一時レジスタjにおける、マスクの有効ビット(値が1であるビット)に対応するセクションにおけるデータユニットを、指向性ターゲットレジスタファイルの対応セクションに書き込む。対応して、ターゲットレジスタファイルにおける、マスクの無効ビットに対応するセクションにおけるデータを変更せずに維持する。
【0024】
ここで、nは、ターゲットレジスタファイルのサイズとソースレジスタファイルのサイズの比、即ち倍数である。例えばソースレジスタファイルが32ビットであり、ターゲットレジスタファイルが1024ビットである場合、n=32となる。
【0025】
本発明の方法は、データ及び制御情報を一時的に記憶するための余計なレジスタを増加させずに、アイドル命令パイプラインを利用してデータとマスク情報を伝送する。これにより、ロジックの消費量を減少しつつ、既存の機能ユニットの利用率を向上させることができる。
【0026】
以下、実施形態を参照しながら本発明の方法を詳細に説明する。
【0027】
本実施形態において、レジスタファイルA、レジスタファイルBという2つのレジスタファイルがあると仮定し、ここで、レジスタファイルAでのレジスタペアは1つのユニットのデータを記憶することができ、レジスタファイルBでのレジスタペアはn個のユニットのデータを記憶することができる。本実施形態において、レジスタファイルAが32ビットであり、レジスタファイルBが1024ビットであり、n=32であると仮定する。システムにおいては、32ビットの命令パイプラインと64ビットの命令パイプラインという2本の命令パイプラインが存在する。
【0028】
本実施形態において、レジスタファイルAにおけるデータをレジスタファイルBに伝送することが要求される。即ち、レジスタファイルAにおけるデータをパイプラインのフェイズi目に読み出し、jフェイズのクロック遅延が経過した後、フェイズ(i+j)目にレジスタファイルBに書き込むことが要求される。
図2は、本発明に係るレジスタファイル間におけるデータ伝送の実現方法に係る実施形態における伝送を示す図である。
図2に示すように、この方法は、具体的に以下のように実現される。
【0029】
データ伝送命令が有効である場合、フェイズi目に、レジスタファイルAから読み出されたソースデータを一時レジスタxに書き込み、読み出されたマスクを一時レジスタyに書き込む。フェイズi+1目に、一時レジスタy及び一時レジスタxのデータを{y,x}に結合してアイドルの64ビットの命令パイプラインに書き込む。この場合、64ビットの命令パイプラインがデータバスとして機能する。j個のクロック遅延が経過した後、フェイズ(i+j)に、64ビットの命令パイプラインからデータ{y,x}を取り込み、その中のxドメイン部分をデータユニットとし、n個のデータユニットのコピーを結合して、長さがデータユニットの長さのn倍(32倍)である拡張データを取得し、拡張データを一時レジスタjに書き込む。64ビットの命令パイプラインからデータ{y,x}内のyドメイン部分をマスク信号として取り込む。本実施形態において、一時レジスタjにおける、値が1(高い)であるマスクビットに対応するセクションにおけるデータユニットが、指向性レジスタファイルBのレジスタペアの対応セクションに書き込まれると仮定する。
図2に示すように、このようにして、データのマスク書き込みを実現する。
【0030】
図3は、本発明に係るレジスタファイル間におけるデータ伝送の実現装置の構成を示す図である。
図3に示すように、この装置は、ソース記憶ユニット、ターゲット記憶ユニットを備える。
【0031】
ソース記憶ユニットは、命令パイプラインのフェイズi目にその中(ソース記憶ユニットの中)のデータを読み取り、アイドル命令パイプラインを利用して、読み取られたデータをターゲット記憶ユニットに伝送することに用いられる。ソース記憶ユニットは、ソースレジスタファイルである。
【0032】
ターゲット記憶ユニットは、j個のクロック周期が経過した後、フェイズ(i+j)目にアイドル命令パイプラインからデータを読み取ることに用いられる。ターゲット記憶ユニットは、ターゲットレジスタファイルである。
【0033】
ソース記憶ユニットは、具体的に、フェイズ(i+1)目に、前記一時レジスタy及び一時レジスタxのデータを{y,x}に結合し、{y,x}をアイドル命令パイプラインのフェイズ(i+1)目に書き込む。そして、データをアイドル命令パイプラインに沿って徐々に流動させて次のフェイズに伝送し、j個のクロック周期が経過した後、フェイズ(i+j)目にアイドル命令パイプラインからデータをターゲットレジスタファイルに取り込む。
【0034】
ターゲット記憶ユニットは、具体的に、j個のクロック周期が経過した後、前記{y,x}のx部分をデータユニットとし、n個のデータユニットのコピーを結合して、長さがデータユニットの長さのn倍である拡張データを取得し、拡張データを一時レジスタjに書き込む。そして、前記{y,x}のy部分をマスクとし、一時レジスタjにおける、マスクの有効ビットに対応するセクションにおけるデータユニットを前記ターゲットレジスタファイルの対応セクションに書き込む。
【0035】
ソースレジスタファイルが32ビットで、ターゲットレジスタファイルが1024ビットである場合、nの値は32である。また、アイドル命令パイプラインは64ビットの命令パイプラインである。
【0036】
以上の説明は、本発明の好適な実施例に過ぎず、本発明を制限するものでではない。本分野の当業者であれば、本発明に基づく種々の変更と変化が可能である。本発明の主旨及び原則を逸脱することなく実施されたあらゆる改修、均等的置換、改良等は、すべて本発明の保護範囲以内に含まれるべきである。