(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6254352
(24)【登録日】2017年12月8日
(45)【発行日】2017年12月27日
(54)【発明の名称】ループのプロローグまたはエピローグの無効演算を処理する装置及び方法
(51)【国際特許分類】
G06F 9/34 20060101AFI20171218BHJP
G06F 9/45 20060101ALI20171218BHJP
G06F 9/32 20060101ALI20171218BHJP
G06F 7/57 20060101ALI20171218BHJP
G06F 9/30 20060101ALI20171218BHJP
【FI】
G06F9/34 330
G06F9/44 322G
G06F9/32 330A
G06F7/57 202
G06F9/30 350A
【請求項の数】20
【全頁数】12
(21)【出願番号】特願2013-60774(P2013-60774)
(22)【出願日】2013年3月22日
(65)【公開番号】特開2013-200873(P2013-200873A)
(43)【公開日】2013年10月3日
【審査請求日】2016年3月4日
(31)【優先権主張番号】10-2012-0030695
(32)【優先日】2012年3月26日
(33)【優先権主張国】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
(73)【特許権者】
【識別番号】508298075
【氏名又は名称】ソウル大学校産学協力団
【氏名又は名称原語表記】SEOUL NATIONAL UNIVERSITY R&DB FOUNDATION
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】鄭 聖 勳
(72)【発明者】
【氏名】ベルンハルト エッガー
(72)【発明者】
【氏名】金 元 燮
【審査官】
清木 泰
(56)【参考文献】
【文献】
米国特許出願公開第2004/0088526(US,A1)
【文献】
特開2003−108387(JP,A)
【文献】
特表2009−530924(JP,A)
【文献】
米国特許出願公開第2011/0099555(US,A1)
【文献】
米国特許出願公開第2010/0268862(US,A1)
【文献】
米国特許出願公開第2007/0288930(US,A1)
【文献】
IA-64 Application Instruction Set Architecture Guide Revision 1.0,Intel Corporation & Hewlett-Packard Company,1999年,Pages:3-1〜3-3, 4-5〜4-11
【文献】
中西知嘉子,安藤秀樹,原哲也,中屋雅夫,パス選択によるソフトウェアパイプライニング,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,1997年 9月25日,Vol:J80-D-I,No:9,Pages:774〜786
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/30− 9/42
G06F 9/44− 9/455
G06F 7/38− 7/537
G06F 7/57− 7/575
G06F 7/74− 7/78
(57)【特許請求の範囲】
【請求項1】
データの有効状態を保存する第1領域とそのデータを保存する第2領域とを含むレジスタファイルと、
前記レジスタファイルから入力される1つ以上の入力ソースの第1領域値に基づいて、演算の有効性を判断し、前記1つ以上の入力ソースの第1領域値に基づいた値を含むデスティネーションを出力する機能ユニットと、
リセット要請に応じて、VLIW(Very Long InstructionWord)モードからCGRA(Coarse Grained Reconfigurable Array)モードに伝送されるレジスタ値を除いて前記レジスタファイル内の第1領域をリセットする制御部と、
を含むループのプロローグまたはエピローグで無効演算を処理する装置。
【請求項2】
前記機能ユニットは、
前記入力ソースの第1領域の値をAND演算して、その演算の有効性を判断する請求項1に記載の装置。
【請求項3】
前記機能ユニットは、
前記入力ソースの第1領域値をAND演算した結果とプレディケートをさらにAND演算して、その演算の有効性を判断する請求項2に記載の装置。
【請求項4】
前記デスティネーションの第1領域値に基づいて、そのデスティネーションに対する前記レジスタファイルへの書き込み要請を処理する制御部をさらに含む請求項1乃至3のいずれか一項に記載の装置。
【請求項5】
前記制御部は、
前記デスティネーションの第1領域値と書き込み許容(Write Enable、WE)信号をAND演算して、その結果によって、前記書き込み要請を処理する請求項4に記載の装置。
【請求項6】
データの有効状態を保存する第1領域とそのデータを保存する第2領域とを含むレジスタファイルから1つ以上の入力ソースが機能ユニットに入力される段階と、
前記機能ユニットが、前記各入力ソースの第1領域値に基づいて、演算の有効性を判断する段階と、
前記機能ユニットが、前記各入力ソースの第1領域値に基づいた値を含むデスティネーションを出力する段階と、
リセット要請に応じて、VLIW(Very Long InstructionWord)モードからCGRA(Coarse Grained Reconfigurable Array)モードに伝送されるレジスタ値を除いて前記レジスタファイル内の第1領域をリセットする段階と、
を含むループのプロローグまたはエピローグで無効演算を処理する方法。
【請求項7】
前記演算の有効性を判断する段階は、
前記入力ソースの第1領域の値をAND演算して、その演算の有効性を判断する請求項6に記載の方法。
【請求項8】
前記演算の有効性を判断する段階は、
前記入力ソースの第1領域値をAND演算した結果とプレディケートをさらにAND演算して、その演算の有効性を判断する請求項7に記載の方法。
【請求項9】
前記デスティネーションの第1領域値に基づいて、そのデスティネーションの前記レジスタファイルへの書き込み要請を処理する、書き込み要請処理段階をさらに含む請求項6乃至8のいずれか一項に記載の方法。
【請求項10】
前記デスティネーションの書き込み要請処理段階は、
前記デスティネーションの第1領域値と書き込み許容(WE)信号をAND演算して、その結果によって、前記書き込み要請を処理する請求項9に記載の方法。
【請求項11】
データと、そのデータが有効であるか否かを指示するデータの有効情報を保存するレジスタファイルと、
前記レジスタファイルからデータとそのデータの有効情報とを含む入力ソースを入力されて、そのデータの演算を行い、その入力ソースのデータの有効情報に基づいて、演算が有効であるか否かを決定して、その演算の有効性を指示する演算の有効情報が含まれたデスティネーションを出力する機能ユニットと、
リセット要請に応じて、VLIW(Very Long InstructionWord)モードからCGRA(Coarse Grained Reconfigurable Array)モードに伝送されるレジスタ値を除いて前記レジスタファイル内の有効情報をリセットする制御部と、
を含むループのプロローグまたはエピローグで無効演算を処理する装置。
【請求項12】
前記機能ユニットは、
入力ソースのデータの有効情報についての演算を行うことによって、その演算の有効性を判断し、
前記デスティネーションに含まれた演算の有効情報は、前記入力ソースのデータの有効情報に対して行われた演算の結果を含む請求項11に記載の装置。
【請求項13】
前記入力ソースのデータは、複数のデータビットを含み、前記データの有効情報は、データ有効ビットを含む請求項11又は12に記載の装置。
【請求項14】
前記デスティネーションは、
前記入力ソースのデータに対する演算の遂行結果であるデータを含む請求項11乃至13のいずれか一項に記載の装置。
【請求項15】
前記機能ユニットは、
レジスタファイルからデータとそのデータの有効情報とを含む複数の入力ソースを受信し、該受信されたあらゆる入力ソースに対する演算を行い、受信されたあらゆる入力ソースのデータの有効情報に基づいて、演算の有効性を決定して、その演算が有効であるか否かを指示する演算の有効情報を含むデスティネーションを出力する請求項11乃至14のいずれか一項に記載の装置。
【請求項16】
前記機能ユニットは、
あらゆる入力ソースのデータの有効情報についてのAND演算を行うことによって、演算の有効性を判断し、
前記デスティネーションに含まれた演算の有効情報は、前記AND演算の結果を含む請求項15に記載の装置。
【請求項17】
前記機能ユニットは、
プレディケートを受信し、
レジスタファイルからデータとそのデータの有効情報とを含む入力ソースを受信して、該受信された入力ソースに対する演算を行い、受信された入力ソースのデータの有効情報に基づいて、演算の有効性を決定して、その演算が有効であるか否かを指示する演算の有効情報を含むデスティネーションを出力する請求項11乃至16のいずれか一項に記載の装置。
【請求項18】
前記機能ユニットは、
前記プレディケートと前記入力ソースのデータの有効情報をAND演算して、演算の有効性を判断し、
前記デスティネーションに含まれた演算の有効情報は、前記プレディケートと入力ソースのデータの有効情報をAND演算した結果を含む請求項17に記載の装置。
【請求項19】
前記デスティネーションの演算の有効情報に基づいて、前記レジスタファイルにそのデスティネーションを記録するように要請する書き込み要請を処理する制御部をさらに含む請求項11乃至18のいずれか一項に記載の装置。
【請求項20】
前記制御部は、
前記デスティネーションの演算の有効情報と書き込み許容(WE)信号のAND演算を行い、そのAND演算の結果に基づいて、デスティネーションをレジスタファイルに記録するか否かを判断する請求項19に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアパイプライン化されたループのプロローグまたはエピローグで無効演算を処理する技術に関する。
【背景技術】
【0002】
プロセッサでソフトウェアパイプライン方法は、実行するソフトウェアを段階別に分けて、パイプライン形態で行う方法であって、処理能を大きく高めうる。しかし、CGRA(Coarse−Grained Reconfigurable Architecture)プロセッサは、モジュロスケジューリングを通じてプログラムをスケジューリングするために、ループのプロローグやエピローグで無効演算が含まれうる。
【0003】
一般的に、CGRAプロセッサは、ループのプロローグまたはエピローグの無効演算が、プログラム状態を変更しないようにする(ガーディング、guarding)ために、プレディケート情報を使う。ガーディングとは、その無効演算の実行を制御するものであって、その無効演算が機能ユニットで実際に行われても、レジスタファイルに記録されないようにすることを言う。そのプレディケート情報を使うためには、プレディケートのためのCGRA内のルーティング情報が必要である。この際、プレディケートの計算とルーティングは、CGRAコンパイラが担当するが、これは、コンパイラのスケジューリング過程を非常に複雑にする原因となり、複雑なループのカーネルの場合には、これによってスケジューリングを失敗する場合も発生する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、ループのプロローグまたはエピローグの無効演算を処理する装置及び方法を提供することである。
【課題を解決するための手段】
【0005】
本発明の一態様によれば、ループのプロローグまたはエピローグで無効演算を処理する装置は、データの有効状態を保存する第1領域とそのデータを保存する第2領域とを含むレジスタファイルと、レジスタファイルから入力される1つ以上の入力ソースの第1領域値に基づいて、演算の有効性を判断し、1つ以上の入力ソースの第1領域値に基づいた値を含むデスティネーションを出力する機能ユニットと、を含みうる。
【0006】
機能ユニットは、入力ソースの第1領域の値をAND演算して、その演算の有効性を判断することができる。機能ユニットは、入力ソースの第1領域値をAND演算した結果とプレディケートをさらにAND演算して、その演算の有効性を判断することができる。
【0007】
装置は、デスティネーションの第1領域値に基づいて、そのデスティネーションに対するレジスタファイルへの書き込み要請を処理する制御部をさらに含みうる。
【0008】
制御部は、デスティネーションの第1領域値と書き込み許容(Write Enable、WE)信号をAND演算して、その結果によって、前記書き込み要請を処理することができる。
【0009】
制御部は、リセット要請に応じて、レジスタファイル内の第1領域をリセットすることができる。制御部は、リセット要請に応じて、VLIW(Very Long Instruction Word)モードからCGRA(Coarse Grained Reconfigurable Array)モードに伝送されるレジスタ値は除いてリセットすることができる。
【0010】
本発明の一態様によれば、ループのプロローグまたはエピローグで無効演算を処理する方法は、データの有効状態を保存する第1領域とそのデータを保存する第2領域とを含むレジスタファイルから1つ以上の入力ソースが機能ユニットに入力される段階と、機能ユニットが、各入力ソースの第1領域値に基づいて、演算の有効性を判断する段階と、機能ユニットが、各入力ソースの第1領域値に基づいた値を含むデスティネーションを出力する段階と、を含みうる。
【0011】
演算の有効性を判断する段階は、入力ソースの第1領域の値をAND演算して、その演算の有効性を判断することができる。
【0012】
演算の有効性を判断する段階は、入力ソースの第1領域値をAND演算した結果とプレディケートをさらにAND演算して、その演算の有効性を判断することができる。
【0013】
その方法は、デスティネーションの第1領域値に基づいて、そのデスティネーションをレジスタファイルに記録するように要請する書き込み要請処理段階をさらに含みうる。
【0014】
デスティネーションの書き込み要請処理段階は、デスティネーションの第1領域値と書き込み許容(WE)信号をAND演算して、その結果によって、書き込み要請を処理することができる。
【0015】
本発明の一態様によれば、ループのプロローグまたはエピローグで無効演算を処理する装置は、データと、そのデータが有効であるか否かを指示するデータの有効情報を保存するレジスタファイルと、レジスタファイルからデータとそのデータの有効情報とを含む入力ソースを入力されて、そのデータの演算を行い、その入力ソースのデータの有効情報に基づいて、演算が有効であるか否かを決定して、その演算の有効性を指示する演算の有効情報が含まれたデスティネーションを出力する機能ユニットと、を含みうる。
【0016】
機能ユニットは、入力ソースのデータの有効情報についての演算を行うことによって、その演算の有効性を判断し、デスティネーションに含まれた演算の有効情報は、入力ソースのデータの有効情報に対して行われた演算の結果を含みうる。
【0017】
入力ソースのデータは、複数のデータビットを含み、データの有効情報は、データ有効ビットを含みうる。デスティネーションは、入力ソースのデータに対する演算の遂行結果、データを含みうる。
【0018】
機能ユニットは、レジスタファイルからデータとそのデータの有効情報とを含む複数の入力ソースを受信し、該受信されたあらゆる入力ソースに対する演算を行い、受信されたあらゆる入力ソースのデータの有効情報に基づいて、演算の有効性を決定して、その演算が有効であるか否かを指示する演算の有効情報を含むデスティネーションを出力することができる。
【0019】
機能ユニットは、あらゆる入力ソースのデータの有効情報についてのAND演算を行うことによって、演算の有効性を判断し、デスティネーションに含まれた演算の有効情報は、AND演算の結果を含みうる。
【0020】
機能ユニットは、プレディケートを受信し、レジスタファイルからデータとそのデータの有効情報とを含む入力ソースを受信して、該受信された入力ソースに対する演算を行い、受信された入力ソースのデータの有効情報に基づいて、演算の有効性を決定して、その演算が有効であるか否かを指示する演算の有効情報を含むデスティネーションを出力することができる。
【0021】
機能ユニットは、プレディケートと入力ソースのデータの有効情報をAND演算して、演算の有効性を判断し、デスティネーションに含まれた演算の有効情報は、プレディケートと入力ソースのデータの有効情報をAND演算した結果を含みうる。
【0022】
その装置は、デスティネーションの演算の有効情報に基づいて、レジスタファイルにそのデスティネーションを記録するように要請する書き込み要請を処理する制御部をさらに含みうる。
【0023】
制御部は、デスティネーションの演算の有効情報と書き込み許容(WE)信号のAND演算を行い、そのAND演算の結果に基づいて、デスティネーションをレジスタファイルに記録するか否かを判断することができる。
【図面の簡単な説明】
【0024】
【
図1】本発明の一実施形態によるループのプロローグまたはエピローグの無効演算を処理する装置のブロック図である。
【
図2】本発明の一実施形態による拡張されたデータとそのデータを支援するためのレジスタファイルの例である。
【
図3】プロセッサのプレディケートを通じてガーディングする機能ユニットの構造である。
【
図4】本発明の一実施形態による拡張されたデータを支援するための機能ユニットの例である。
【
図5】再帰最小開始間隔(recurrence MII(Minimum Initiation Interval))の例である。
【
図6】本発明の一実施形態によるループのプロローグまたはエピローグの無効演算を処理する方法のフローチャートである。
【発明を実施するための形態】
【0025】
その他の実施形態の具体的な事項は、詳細な説明及び図面に含まれている。本発明の利点及び特徴、そして、それらを果たす方法は、添付される図面と共に詳細に後述されている実施形態を参照すると、明確になる。しかし、本発明は、以下で開示される実施形態に限定されるものではなく、互いに異なる多様な形態で具現され、単に本実施形態は、本発明の開示を完全にし、当業者に発明の範疇を完全に知らせるために提供されるものであり、本発明は、請求項の範疇によって定義されるだけである。明細書の全体に亘って同じ参照符号は、同じ構成要素を指称する。
【0026】
以下、本発明の実施形態によるループのプロローグまたはエピローグの無効演算を処理する装置及び方法を、図面を参考にして詳しく説明する。
【0027】
図1は、本発明の一実施形態によるループのプロローグまたはエピローグの無効演算を処理する装置のブロック図である。本実施形態による無効演算処理装置100は、CGRAプロセッサの一構成であり得る。すなわち、CGRAプロセッサは、多数の機能ユニットで構成され、各機能ユニットは、内部連結ネットワークで連結されている。また、多数のレジスタファイルとラッチとを含みうる。
【0028】
CGRAスケジューラは、ループのカーネルをマッピングするために、ソフトウェアパイプライニング技法を使う。CGRAスケジューラは、高い稼働率を得るために、モジュロスケジューリング技法を利用するために、プロローグまたはエピローグでは、無効演算が含まれうる。一般的に、プレディケートを用いて、その無効演算をガーディングする方式が利用されるが、本実施形態では、以下で詳しく説明するように、コンパイラの性能向上のために、データの拡張概念を通じるガーディング方式が提示される。
【0029】
図2は、本発明の一実施形態による拡張されたデータとそのデータを支援するためのレジスタファイルの例であって、
図2の(a)は、データ(data)の有効状態(例:有効−true、無効−false)を表現する有効状態ビットv(例:1ビット)とそのデータを表現するデータビットdata(例:16、32、64、128)とからなる拡張されたデータの概念を表わす。
図2の(b)は、その拡張されたデータを支援するためのレジスタファイル110の構造を示したものである。
【0030】
図1と
図2とを参照して、本実施形態による無効演算処理装置100を詳しく説明する。無効演算処理装置100は、レジスタファイル110及び機能ユニット120を含み、追加的に制御部130をさらに含みうる。レジスタファイル110は、
図2の(a)に例示された拡張されたデータ概念を支援するために、
図2の(b)に示したように、データの有効状態を保存する第1領域111とそのデータが保存される第2領域112とを含みうる。
【0031】
一方、機能ユニット120は、1つ以上の入力ソースin_srcの第1領域値に基づいて、演算の有効性を判断する。この際、入力ソースin_srcは、レジスタファイル110または他の機能ユニット120から内部連結ネットワークを通じて入力されうる。機能ユニット120は、拡張されたデータ概念を支援することができる。すなわち、一般的なプレディケートを通じてループのプロローグまたはエピローグの無効演算をガーディングする方式だけではなく、1つ以上の入力ソースのデータの有効性が表現された第1領域の値を用いて、演算の有効性を判断し、ガーディング処理することができる。
【0032】
また、機能ユニット120は、判断された演算の有効性によって、デスティネーションout_dstの第1領域値を生成させ、その第1領域とその演算の遂行結果を含む第2領域とを含むデスティネーションout_dstを出力する。判断の結果、その演算が無効な演算であれば、第1領域値であるその演算結果の有効性を‘false’として設定することができる。一方、その演算が有効な演算であれば、第1領域の値は、‘true’として設定することができる。出力されたデスティネーションout_dstは、レジスタファイル110や他の機能ユニットに伝送される。
【0033】
制御部130は、レジスタファイル110からデータを読み取る読み取り要請、レジスタファイル110に演算結果を記録する書き込み要請などを処理する。制御部130は、読み取り要請に応じて、
図2の(b)に示したように、レジスタファイル110から読み取りポートを通じて第1領域111のデータ有効状態値に関係なく、そのままデータを読み取る。
【0034】
また、書き込み要請に応じて、機能ユニット120から出力されたデスティネーションout_dstをレジスタファイル110に記録する。この際、制御部130は、そのデスティネーションout_dstの第1領域値、すなわち、演算結果データの有効状態を表わすビット値に基づいて、書き込みを制御する。例えば、
図2に示したように、制御部130は、デスティネーションout_dstの第1領域値を書き込み許容(WE)信号とAND演算して、その結果が‘true’である場合には、書き込みポートを通じてレジスタファイル110にそのデスティネーションout_dstを記録する。この際、第1領域の値は、レジスタファイルの第1領域に記録され、第2領域の値は、レジスタファイル110の第2領域に記録される。一方、その結果が‘false’である場合には、レジスタファイル110に記録しない。
【0035】
また、制御部130は、CGRAのループが始まると同時に発生するリセット要請に応じて、レジスタファイル110内の第1領域のデータ有効状態ビットをリセットすることができる。この際、VLIWモードからCGRAモードに伝送されるレジスタ値は除いてリセットすることができる。
【0036】
図3は、プロセッサのプレディケートを通じて無効演算をガーディングする機能ユニットの構造である。
図4は、本発明の一実施形態による拡張されたデータを支援するための機能ユニットの例である。
図3と
図4とを参照して、機能ユニット120から拡張されたデータ概念を用いて、無効演算をガーディングする方法を説明する。
【0037】
図3を参照すると、機能ユニットは、2つの入力ソース(Input1、2)に対して無効演算を判断し、ガーディングするために別途のプレディケートを生成して、そのプレディケート情報(Predicate Input)がルーティングされなければならず、そのプレディケート情報を保存するための別途のレジスタファイルが必要である。また、構成メモリの無効な読み取り/書き込み演算もガーディングされる。しかし、
図3に示したように、プレディケートを生成させ、その情報をルーティングすることは、コンパイラが担当するので、コンパイラのスケジューリング過程が非常に複雑になって、コンパイル性能が非常に落ちる。
【0038】
図4を参照すると、機能ユニット120は、データの有効状態を表現したビットである第1領域の値とデータが表現された第2領域の値とを含むn個の入力ソースin_src 1〜in_src nを入力される。この際、入力ソースは、レジスタファイル110または他の機能ユニット120から入力される。
【0039】
機能ユニット120は、入力されたn個の入力ソースin_scr 1〜in_src nの第1領域値をAND演算して、‘true’である場合には、有効な演算と判断し、‘false’である場合には、無効演算と判断する。すなわち、何れか1つの入力ソースでも非有効なデータを含んだ場合には、無効な演算と判断する。
【0040】
一方、追加的な態様によれば、プレディケート情報を必要に応じて独立して生成して、そのプレディケート情報と入力ソースin_src 1〜in_src 2の第1領域のデータ有効状態ビットとAND演算を行って、無効演算か否かを判断することができる。
【0041】
機能ユニット120は、その演算を行い、その遂行結果、データとその無効演算か否かの判断の結果を含んだデスティネーションout_dstを出力する。すなわち、デスティネーションout_dstの第1領域には、その無効演算か否かの判断の結果、有効であれば‘true’、非有効であれば‘false’が保存され、第2領域には、その演算遂行結果が保存される。
【0042】
図5は、機能ユニットで再帰最小開始間隔(recurrence MII(Minimum Initiation Interval))を示す例である。
図5を参照すると、プレディケートルーティングによるコンパイラのオーバーヘッドが分かる。すなわち、プレディケートを通じるガーディング方式は、機能ユニット、出力ラッチ、レジスタファイル、OSラッチ、入力ラッチ、及び機能ユニット順に行われて、総サイクルは、5(演算待ち時間2+ラッチ遅延3)である。一方、拡張されたデータ概念を利用した方式は、機能ユニット、レジスタファイル、OSラッチ、入力ラッチ、機能ユニット順に行われ、総サイクルは、3(演算待ち時間1+ラッチ遅延2)である。
【0043】
これを通じて、コンパイラがプレディケートのルーティングにオーバーヘッドが多いことが分かる。したがって、プレディケートを使わないことによって、コンパイラの性能が大きく向上することが分かる。
【0044】
図6は、本発明の一実施形態によるソフトウェアパイプライン化されたループのプロローグまたはエピローグの無効演算を処理する方法のフローチャートである。
【0045】
図6を参照して、無効演算を処理する方法を説明する。まず、1つ以上の入力ソースin_src 1〜in_scr nが機能ユニット120に入力される(段階310)。制御部130が、読み取り要請に応じてレジスタファイル110から読み取って機能ユニット120に入力することができる。レジスタファイルは、
図2の(b)に示したように、データ有効状態値が保存される第1領域110とそのデータ値が保存される第2領域120とを含みうる。制御部130は、読み取り要請に応じてデータを読み取る時、そのデータの有効状態、すなわち、第1領域の値は考慮せず、その状態の通りに読み取って機能ユニット120に入力することができる。
【0046】
次いで、機能ユニット120が、1つ以上の入力ソースin_src 1〜in_scr nの第1領域値に基づいて、演算の有効性を判断する(段階320)。すなわち、機能ユニット120は、入力されたn個の入力ソースin_scr 1〜in_src nの第1領域値をAND演算して、‘true’である場合には、有効な演算と判断し、‘false’である場合には、無効演算と判断することができる。一方、必要に応じてプレディケート情報を独立して生成して、そのプレディケート情報と入力ソースin_src 1〜in_src 2の第1領域のデータ有効状態ビットとAND演算を行って、無効演算か否かを判断することができる。
【0047】
次いで、機能ユニット120は、その演算を行い、その遂行結果、データとその無効演算か否かの判断の結果を含んだデスティネーションout_dstを出力する(段階330)。機能ユニット120は、デスティネーションout_dstの第1領域の値でその無効演算か否かの判断の結果、有効であれば‘true’、非有効であれば‘false’を生成させ、第2領域には、その演算遂行結果を含む。
【0048】
最後に、制御部130は、そのデスティネーションout_dstの第1領域の値に基づいて、レジスタファイルにそのデスティネーションout_dstを記録するか否かを決定して、その決定によって、書き込み要請を処理することができる(段階340)。例えば、
図2を参照すると、制御部130は、デスティネーションout_dstの第1領域の値を書き込み許容(WE)信号とAND演算して、その結果が、‘true’である場合には、レジスタファイル110にそのデスティネーションout_dstを記録する。この際、第1領域の値をレジスタファイルの第1領域に記録され、第2領域の値は、レジスタファイル110の第2領域に記録される。一方、その結果が、‘false’である場合には、レジスタファイル110に記録しない。
【0049】
一方、本発明の実施形態は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現しうる。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の記録装置を含む。
【0050】
コンピュータで読み取り可能な記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などがあり、またキャリアウェーブ(例えば、インターネットを介した伝送)の形態で具現するものを含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードとして保存されて実行可能である。そして、本発明を具現するための機能的なプログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に推論されうる。
【0051】
当業者なら、本発明が、その技術的思想や必須的な特徴を変更せずとも、他の具体的な形態で実施されることを理解できるであろう。したがって、前述した実施形態は、あらゆる面で例示的なものであり、限定的ではないということを理解しなければならない。本発明の範囲は、前記詳細な説明よりは後述する特許請求の範囲によって表われ、特許請求の範囲の意味及び範囲、そして、その均等概念から導出されるあらゆる変更または変形された形態が、本発明の範囲に含まれると解析しなければならない。
【産業上の利用可能性】
【0052】
本発明は、ループのプロローグまたはエピローグの無効演算を処理する装置及び方法関連の技術分野に適用可能である。
【符号の説明】
【0053】
100 無効演算処理装置
110 レジスタファイル
111 第1領域
112 第2領域
120 機能ユニット
130 制御部