(57)【要約】  リソースインデックス置換を実施するデバイスが提供される。デバイスは、リソース割り当てユニット（５０）から第１のタイプのリソースインデックスを受け取り、次に、命令実行ユニット（３０）に対して実行のために命令を発行するように構成された命令スケジューリングユニット（２０）を含む。デバイスは、リソース割り当てユニット（５０）から第２のタイプのリソースインデックスを受け取り、命令スケジューリングユニット（２０）からの命令を実行し、命令実行の結果及び第２のタイプのリソースインデックスを結果保存ユニット（４０）へと発行する。結果保存ユニット（４０）は、命令実行結果を保存するための複数のリソースを含む。結果保存ユニット（４０）は、命令スケジューリングユニット（２０）に入る命令に第１のタイプのリソースインデックスを割り当て、命令実行ユニット（３０）に入る命令に第２のタイプのリソースインデックスを割り当てるように構成される。リソースインデックス置換を実施する上記のデバイスを含むプロセッサ及びリソースインデックス置換を実施する方法も提供される。
2021520553.tif 000002
【特許請求の範囲】
【請求項１】
第１のタイプのリソースインデックス及び第２のタイプのリソースインデックスを割り当てるように構成されたリソース割り当てユニットと、
前記リソース割り当てユニットから前記第１のタイプのリソースインデックスを受け取り、命令を発行するように構成された命令スケジューリングユニットと、
前記命令スケジューリングユニットから前記命令を受け取り、前記リソース割り当てユニットから前記第２のタイプのリソースインデックスを受け取り、前記命令を実行し、実行結果及び前記第２のタイプのリソースインデックスを送るように構成された命令実行ユニットと、
複数のリソースを含む結果保存ユニットであって、前記命令実行ユニットから前記実行結果及び前記第２のタイプのリソースインデックスを受け取り、前記複数のリソースの内のあるリソースに前記実行結果を保存するように構成され、前記実行結果が保存された前記リソースが、前記第２のタイプのリソースインデックスに基づいてアクセスされる、結果保存ユニットと、
を含み、
前記命令が前記命令スケジューリングユニットから前記命令実行ユニットへと発行されるときに、前記リソース割り当てユニットが、前記第１のタイプのリソースインデックスを前記第２のタイプのリソースインデックスに置換するようにさらに構成される、デバイス。
【請求項２】
前記第１のタイプのリソースインデックスが、前記結果保存ユニットの前記複数のリソースに対応しない、請求項１に記載のデバイス。
【請求項３】
前記第２のタイプのリソースインデックスが、前記結果保存ユニットの前記複数のリソースに対応する、請求項１又は２に記載のデバイス。
【請求項４】
前記命令が、ソースオペランドインデックス又はターゲットオペランドインデックスの少なくとも一方を含む、請求項１〜３の何れか一項に記載のデバイス。
【請求項５】
前記命令が前記命令スケジューリングユニットに入るときに、前記リソース割り当てユニットが、前記命令の前記ターゲットオペランドインデックスを前記第１のタイプのリソースインデックスに置換するようにさらに構成される、請求項４に記載のデバイス。
【請求項６】
前記命令の前記ソースオペランドインデックスが、第２の命令のターゲットオペランドインデックスに対応する、請求項４又は５に記載のデバイス。
【請求項７】
前記第２の命令の実行結果が前記命令実行ユニットによって生成された後に、前記命令スケジューリングユニットが、前記命令を前記命令実行ユニットに発行するようにさらに構成される、請求項６に記載のデバイス。
【請求項８】
前記命令が前記命令スケジューリングユニット内にあるときに、前記命令が、前記第２の命令の第１のタイプのリソースインデックス又は第２のタイプのリソースインデックスをさらに含む、請求項６又は７に記載のデバイス。
【請求項９】
前記命令割り当てユニットが、前記第２の命令の前記第１のタイプのリソースインデックスを前記第２のタイプのリソースインデックスに置換すると同時に、前記命令の前記第１のタイプのリソースインデックスが、対応する第２のタイプのリソースインデックスによって置換される、請求項８に記載のデバイス。
【請求項１０】
前記デバイスがプロセッサに実装される、請求項１〜９の何れか一項に記載のデバイス。
【請求項１１】
命令の受け取りに応答して、第１のタイプのリソースインデックスを割り当てることと、
前記命令が実行のために発行されたことに応答して、前記第１のタイプのリソースインデックスを第２のタイプのリソースインデックスに置換することと、
前記命令を実行して実行結果を取得することと、
前記実行結果を複数のリソースの内のあるリソースに保存することであって、前記実行結果が保存された前記リソースが、前記第２のリソースインデックスに基づいてアクセスされる、保存することと、
を含む、命令を実行する方法。
【請求項１２】
前記第１のタイプのリソースインデックスが、前記複数のリソースに対応しない、請求項１１に記載の方法。
【請求項１３】
前記第２のタイプのリソースインデックスが、前記複数のリソースに対応する、請求項１１又は１２に記載の方法。
【請求項１４】
前記命令が、ソースオペランドインデックス又はターゲットオペランドインデックスの少なくとも一方を含む、請求項１１〜１３の何れか一項に記載の方法。
【請求項１５】
前記命令の受け取りに応答して、前記命令の前記ターゲットオペランドインデックスを前記第１のタイプのリソースインデックスに置換することをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記命令の前記ソースオペランドインデックスが、第２の命令のターゲットオペランドインデックスに対応する、請求項１４又は１５に記載の方法。
【請求項１７】
前記第２の命令の実行結果が取得された後に、実行のために前記命令を発行することをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記命令が実行のために発行される前に、前記命令が、前記第２の命令の第１のタイプのリソースインデックス又は第２のタイプのリソースインデックスをさらに含む、請求項１６又は１７に記載の方法。
【請求項１９】
前記第２の命令の前記第１のタイプのリソースインデックスが前記第２のタイプのリソースインデックスに置換されたことに応答して、前記命令の前記第１のタイプのリソースインデックスを対応する第２のタイプのリソースインデックスに置換することをさらに含む、請求項１８に記載の方法。
【請求項２０】
前記方法が、プロセッサで行われる、請求項１１〜１９の何れか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[1]  本開示は、その全体が参照により本明細書に援用される、２０１８年４月１３日に出願された中国特許出願第２０１８１０３３１７３７．ｘ号に対する優先権の利益を主張するものである。
【背景技術】
【０００２】
背景
[2]  実行結果及び実行スケジューリングの保存に使用されるリソース量は、プロセッサのコストに影響を与える重要な要素となっている。投機的実行の効率を向上させるために、プロセッサは、命令間の疑似相関を排除するために、スケジューリング、送信、実行、及びライトバックを行いながら、命令の汎用レジスタを物理レジスタインデックス又は類似の機能を有する他のリソースインデックスとしてリネーミングする必要がある。このリネーミングプロセスは、レジスタリネーミングと呼ばれる。
【発明の概要】
【課題を解決するための手段】
【０００３】
開示の概要
[3]  本開示は、リソースインデックス置換を実施するデバイスであって、リソース割り当てユニットから第１のタイプのリソースインデックスを受け取り、次に、命令実行ユニットに対して実行のために命令を発行するように構成された命令スケジューリングユニットを含むデバイスを提供する。デバイスは、リソース割り当てユニットから第２のタイプのリソースインデックスを受け取り、命令スケジューリングユニットからの命令を実行し、命令実行の結果及び第２のタイプのリソースインデックスを結果保存ユニットへと発行する。結果保存ユニットは、命令実行結果を保存するための複数のリソースを含む。結果保存ユニットは、命令スケジューリングユニットに入る命令に第１のタイプのリソースインデックスを割り当て、命令実行ユニットに入る命令に第２のタイプのリソースインデックスを割り当てるように構成される。本開示は、リソースインデックス置換を実施する上記のデバイスを含むプロセッサも提供する。さらに、本開示は、リソースインデックス置換を実施する方法を提供する。
【図面の簡単な説明】
【０００４】
図面の簡単な説明
【図１】[4]本開示の幾つかの実施形態による、リソースインデックス置換を実施する例示的デバイスの模式図である。
【図２】[5]本開示の幾つかの実施形態による、例示的命令組成及びリソースインデックスの模式図である。
【図３】[6]本開示の幾つかの実施形態による、第１の命令を受け取った後にリソースインデックス置換を実施する例示的デバイスの模式図である。
【図４】[7]本開示の幾つかの実施形態による、第２の命令を受け取った後にリソースインデックス置換を実施する例示的デバイスの模式図である。
【図５】[8]本開示の幾つかの実施形態による、第１の命令を実行した後にリソースインデックス置換を実施する例示的デバイスの模式図である。
【図６】[9]本開示の幾つかの実施形態による、第２の命令を実行した後にリソースインデックス置換を実施する例示的デバイスの模式図である。
【発明を実施するための形態】
【０００５】
詳細な説明
[10]  本開示の実施形態の目的、技術的解決策、及び利点をより明瞭にするために、本開示の実施形態における技術的解決策を本開示の実施形態の添付の図面を参照して以下に明瞭且つ完全に説明する。もちろん、説明する実施形態は、本開示の実施形態の全てではなく一部に過ぎない。本開示の実施形態に基づいて、創造的な努力なしに当業者によって取得可能な全ての他の実施形態が、本開示の保護範囲内に入るものとする。
【０００６】
[11]  プロセッサが命令を実行する際に、連続する命令は、それらの間に実際のデータ依存性を全く持たない場合がある（例えば、ＷＡＲ（write after read）及びＷＡＷ（write after write））。レジスタリネーミングは、これらの誤ったデータ依存性を排除し、命令のスーパースカラー実行、投機的実行、又は順不同実行を可能にすることによって、より良いプロセッサ性能を達成する技術である。一般に、リネーミングに利用可能なリソース量は、投機的実行が可能なプロセッサの数を決定する。リネーミング専用のリソースが多いほど、プロセッサによるより多くの命令の投機的実行につながり、このことが、より高いプロセッサ性能につながる。しかし、リネーミング専用の大量のリソースは、プロセッサの領域及びタイミングコストを増加させ、その結果、プロセッサコスト全体を増加させる。
【０００７】
[12]  従来のシステムは、以下の欠点を持つ：例えば、命令スケジューリングユニットに入るときなど、リソースの割り当てが早すぎることが多い。しかし、プロセッサは、実行ユニットにおいて命令が実行されるときのみ、結果を保存するためにリソースを割り当てることを必要とする。リソースの割り当てが早すぎることは、リソースの無駄につながり、リソースの利用効率が低下する。
【０００８】
[13]  本開示は、リソースインデックス置換を実施するデバイスを提供することにより、これらの問題点を克服する。図１は、本開示の幾つかの実施形態による、リソースインデックス置換を実施する例示的デバイスの模式図である。図１に示すように、デバイス１０は、命令スケジューリングユニット２０、命令実行ユニット３０、結果保存ユニット４０、及びリソース割り当てユニット５０を含む。
【０００９】
[14]  命令スケジューリングユニット２０は、リソース割り当てユニット５０から第１のタイプのリソースインデックスを受け取り、後に命令実行ユニット３０へと送信するために、このインデックス及び対応する命令を保存するように構成された回路を含む。
【００１０】
[15]  命令実行ユニット３０は、第２のタイプのリソースインデックスをリソース割り当てユニット５０から受け取り、命令スケジューリングユニット２０から命令を受け取り、命令を実行し、命令実行の実行結果及び第２のタイプのリソースインデックスを結果保存ユニット４０に発行するように構成された回路を含む。
【００１１】
[16]  結果保存ユニット４０は、命令実行結果を保存するための複数のリソース４１を含む。結果保存ユニット４０は、命令実行ユニット３０から実行結果を受け取り、実行結果をリソース４１に保存するように構成された回路を含む。リソース４１は、第２のタイプのリソースインデックスによって指定されるように構成される。
【００１２】
[17]  リソース割り当てユニット５０は、第１のタイプのリソースインデックスを命令に割り当て、その命令を命令スケジューリングユニット２０に発行し、第２のタイプのリソースインデックスを命令に割り当て、その命令を命令実行ユニット３０に発行するように構成された回路を含む。
【００１３】
[18]  デバイス１０が命令の送信及び実行を行っている間に、リソース割り当てユニット５０は、命令が命令スケジューリングユニット２０に入るときに、第１のタイプのリソースインデックスを割り当て、命令が命令スケジューリングユニット２０によって命令実行ユニット３０に発行されるときに、第１のタイプのリソースインデックスを第２のタイプのリソースインデックスに置換する。
【００１４】
[19]  幾つかの実施形態では、命令が命令スケジューリングユニット２０に入るときに、リソース割り当てユニット５０によって命令に割り当てられたリソースは、結果保存ユニット４０のリソース４１に対応しない。命令が命令スケジューリングユニット２０によって命令実行ユニット３０に発行されるときに、リソース割り当てユニット５０によって第１のタイプのリソースインデックスを置換するために使用される第２のタイプのリソースインデックスは、結果保存ユニット４０のリソース４１に対応する。
【００１５】
[20]  幾つかの実施形態では、命令は、ソースオペランドインデックス又はターゲットオペランドインデックスの少なくとも一方を含む。リソース割り当てユニット５０は、ターゲットオペランドインデックスを第１のタイプのリソースインデックスに置換することによって、第１のタイプのリソースインデックスの割り当てを実施する。
【００１６】
[21]  幾つかの実施形態では、命令のソースオペランドインデックスは、第２の命令のターゲットオペランドインデックスに対応し、リソース割り当てユニット５０は、命令のソースオペランドインデックスを第２の命令の第１のタイプのリソースインデックスに置換する。第２の命令の第１のタイプのリソースインデックスが第２のタイプのリソースインデックスによって置換されると同時に、命令の第１のタイプのリソースインデックスが、第２のタイプのリソースインデックスによって置換される。
【００１７】
[22]  幾つかの実施形態では、命令実行ユニット３０が第２の命令の実行結果を生成するときにのみ、命令が、命令スケジューリングユニット２０によって命令実行ユニット３０に発行され得る。
【００１８】
[23]  本開示の幾つかの実施形態によるリソースインデックス置換を実施するデバイス（例えば、デバイス１０）内で、リソース割り当てユニット５０は、命令が命令スケジューリングユニット２０に入るときに、その命令に第１のタイプのリソースインデックスを割り当て、命令が命令スケジューリングユニット２０によって命令実行ユニット３０に発行されるときに、第１のタイプのリソースインデックスを第２のタイプのリソースインデックスに置換し、結果保存ユニット４０は、命令実行ユニット３０からの第２のタイプのリソースインデックスによる実行結果を保存する。本開示は、命令が命令スケジューリングユニット２０に入るときの第２のタイプのリソースインデックスの過度に早い割り当てを防止することができ、その結果、結果保存ユニット４０におけるリソース量の需要が低下し、リソース利用効率が向上する。
【００１９】
[24]  本開示の実施形態は、リソースインデックス置換を実施するプロセッサをさらに提供する。プロセッサは、上記のリソースインデックス置換を実施するデバイス（例えば、デバイス１０）を含み得ることが理解される。
【００２０】
[25]  例えば、プロセッサによって実行される命令は、任意の数のターゲットオペランド及びソースオペランドを含む。図２は、本開示の幾つかの実施形態による例示的命令組成及びリソースインデックスの模式図である。図１に関連する図２によれば、命令９２は、１つのターゲットオペランドインデックス６１及び１つのソースオペランドインデックス６２を含み、これらは共に、汎用レジスタインデックスである。ソースオペランドは、別の命令９１のターゲットオペランドである。従って、命令９１は、命令９２に対応し、又は命令９２のプロデューサ命令と呼ばれる。
【００２１】
[26]  命令が命令スケジューリングユニット２０に入るときに、プロセッサのリソース割り当てユニット５０は、物理レジスタタグ７１としてターゲットオペランドのリネーミングを行う。タグは、第１のタイプのリソースインデックスであり、結果保存ユニット４０の物理レジスタ（例えば、図１に示す結果保存ユニット４０のリソース４１）に対応しない。
【００２２】
[27]  幾つかの実施形態では、リソース割り当てユニット５０は、プロデューサ命令のターゲットオペランドの物理レジスタタグ又は物理レジスタインデックスとしてソースオペランドのリネーミングも行う。後者は、第２のタイプのリソースインデックスであり、結果保存ユニット４０の物理レジスタに対応する。
【００２３】
[0028]  幾つかの実施形態では、命令９１のターゲットオペランドの物理レジスタタグが物理レジスタインデックスによって置換されると同時に、命令９２に対応するソースオペランドの物理レジスタタグ７２が、対応する物理レジスタインデックス８２によって置換される。
【００２４】
[29]  幾つかの実施形態では、命令実行ユニット３０が命令９１の実行結果を生成するときに、命令９２を命令スケジューリングユニット２０から命令実行ユニット３０へ発行することができる。命令９２が命令スケジューリングユニット２０から命令実行ユニット３０へ発行されるときに、命令９２の物理レジスタタグ７１が、物理レジスタインデックス８２によって置換される。それと同時に、命令スケジューリングユニット２０は、ソースオペランドの物理レジスタタグ７２又は物理レジスタインデックス８２に従って命令９１の実行結果を取得し、命令９１の実行結果を命令９２のソースオペランドとして命令実行ユニット３０へと発行する。
【００２５】
[30]  命令実行ユニット３０は、命令９２を実行し、次いで、命令９２の実行結果及び物理レジスタインデックス８１を結果保存ユニット４０へと発行する。結果保存ユニット４０は、物理レジスタインデックス８１によって示される物理レジスタに命令９２の実行結果を保存する。
【００２６】
[31]  例えば、図１のリソースインデックス置換プロセスを説明するために、ある特定の実施態様を用いて、このプロセスを説明する。プロセッサが以下の命令ストリームを実行すると仮定する：
９１  ｓｕｂｉ  ｒ１，ｒ２，０ｘ１
９２  ａｄｄｉ  ｒ３，ｒ１，０ｘ４
…
命令９１及び９２の実行は、４つのステップ、すなわち、ステップＩ、ステップＩＩ、ステップＩＩＩ、及びステップＩＶに分割することができる。ステップＩでは、デバイスが命令９１を受け取る。ステップＩＩでは、デバイスが命令９２を受け取る。ステップＩＩＩでは、デバイスが命令９１を実行する。ステップＩＶでは、デバイスが命令９２を実行する。図３は、本開示の幾つかの実施形態による、第１の命令を受け取った後にリソースインデックス置換を実施する例示的デバイスの模式図である。図３に示すように、命令９１が命令スケジューリングユニット２０に入ると、ターゲットレジスタインデックスは、汎用レジスタｒ１であり、ソースオペランドインデックスは、汎用レジスタｒ２である。リソース割り当てユニット５０は、ｒ１を置換するために物理レジスタタグＴ３を割り当てる。
【００２７】
[32]  図４は、本開示の幾つかの実施形態による、第２の命令を受け取った後にリソースインデックス置換を実施する例示的デバイスの模式図である。図４に示すように、命令９２が命令スケジューリングユニット２０に入り、ターゲットレジスタインデックスは、汎用レジスタｒ３であり、ソースオペランドインデックスは、汎用レジスタｒ１である。ソースオペランドは命令９１のターゲットオペランドと同一であるので、命令９１は、命令９２のプロデューサ命令である。同様に、リソース割り当てユニット５０は、ｒ３を置換するために新しい物理レジスタタグＴ７を割り当て、命令９２のソースオペランドインデックスｒ１は、物理レジスタタグＴ３（これは、命令９１のターゲットオペランドも表す）によって置換される。
【００２８】
[33]  図５は、本開示の幾つかの実施形態による、第１の命令を実行した後にリソースインデックス置換を実施する例示的デバイスの模式図である。図５に示すように、命令９１が、命令スケジューリングユニット２０から命令実行ユニット３０へと発行されるときに、リソース割り当てユニット５０は、物理レジスタタグＴ３を物理レジスタインデックスＰ６に置換する。物理レジスタインデックスＰ６は、結果保存ユニット４０のある特定の物理レジスタ、すなわち物理レジスタＮｏ．６に対応する。この時、命令９２のソースオペランドインデックスＴ３も、物理レジスタインデックスＰ６によって置換される。
【００２９】
[34]  図６は、本開示の幾つかの実施形態による、第２の命令を実行した後にリソースインデックス置換を実施する例示的デバイスの模式図である。図６に示すように、命令９１の実行の完了後に、命令実行ユニット３０は、実行結果及び物理レジスタインデックスＰ６を結果保存ユニット４０に発行する。結果保存ユニット４０は、実行結果を物理レジスタＮｏ．６に保存する。この時、命令９２が、命令スケジューリングユニット２０から命令実行ユニット３０へと発行され得る。
【００３０】
[35]  送信時に、命令スケジューリングユニットは、物理レジスタインデックスＰ６により命令９１の実行結果を取得することができ、実行結果を命令９２のソースオペランドとして命令実行ユニット３０へと発行する。命令９２が命令実行ユニット３０へと発行される間に、リソース割り当てユニット５０は、物理レジスタタグＴ７を物理レジスタインデックスＰ０に置換する。物理レジスタインデックスＰ０は、結果保存ユニット４０のある特定の物理レジスタ、すなわち物理レジスタＮｏ．０に対応する。命令実行ユニット３０が命令９２の実行結果を生成した後に、結果保存ユニット４０は、実行結果を物理レジスタＮｏ．０に保存することができる。
【００３１】
[36]  本開示の実施形態は、リソースインデックス置換を実施する方法をさらに提供する。この方法は、上記のデバイス（例えば、デバイス１０）及びプロセッサによって実施することができることが理解される。
【００３２】
[37]  本開示の幾つかの具体的な実施形態を上記で説明し、本開示の保護範囲は、これらの実施形態に限定されない。本開示によって開示された技術的範囲内で当業者によって簡単に想到され得るあらゆる変更形態又は代替形態が、本開示の保護範囲内に入るものとする。従って、本開示の保護範囲は、特許請求の範囲の保護範囲の対象となるものである。
【図１】
2021520553.tif 000003
【図２】
2021520553.tif 000004
【図３】
2021520553.tif 000005
【図４】
2021520553.tif 000006
【図５】
2021520553.tif 000007
【図６】
2021520553.tif 000008
【国際調査報告】
2021520553.tif 000009
2021520553.tif 000010