【手続補正書】
【提出日】平成29年9月27日(2017.9.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
処理ユニットが、複数の汎用レジスタ（ＧＰＲ）のうちの複数のソースＧＰＲのうちの第１のＧＰＲから前記複数のＧＰＲのうちの複数の宛先ＧＰＲのうちの第３のＧＰＲに第１の値が移動されることと、前記複数のソースＧＰＲのうちの第２のＧＰＲから前記複数の宛先ＧＰＲのうちの第４のＧＰＲに第２の値が移動されることと、前記複数のソースＧＰＲのうちの第５のＧＰＲから前記複数の宛先ＧＰＲのうちの第６のＧＰＲに第３の値が移動されることとを要求する単一の命令を受け取ることと、ここにおいて、前記単一の命令が、
前記宛先ＧＰＲのすべてを明確に識別しないギャザー命令であって、前記複数のソースＧＰＲが、前記単一の命令が前記ギャザー命令であるときに連続して位置せず、前記宛先ＧＰＲが、前記単一の命令が前記ギャザー命令であるときに連続して位置するギャザー命令、または
前記ソースＧＰＲのすべてを明確に識別しないスキャッタ命令であって、前記ソースＧＰＲが、前記単一の命令が前記スキャッタ命令であるときに連続して位置し、前記宛先ＧＰＲが、前記単一の命令が前記スキャッタ命令であるときに連続して位置しないスキャッタ命令、のうちの１つであり、ここにおいて、前記単一の命令は、前記第１のＧＰＲから前記第３のＧＰＲに前記第１の値が移動されることと、前記第２のＧＰＲから前記第４のＧＰＲに前記第２の値が移動されることと、前記第５のＧＰＲから前記第６のＧＰＲに前記第３の値が移動されることとを要求する単一の割込み不可能な命令を備える、
前記単一の命令を受け取ったことに応答して、
前記処理ユニットの初期論理ユニットが、第１のクロックサイクル中に、パイプラインの複数のパイプラインレジスタのうちの初期パイプラインレジスタに前記第１の値をコピーすることと、ここにおいて、前記複数のパイプラインレジスタが前記複数のＧＰＲとは異なる、
前記処理ユニットの前記初期論理ユニットが、前記第１のクロックサイクルの後にある第２のクロックサイクル中に、前記初期パイプラインレジスタに前記第２の値をコピーすることと、
前記処理ユニットの最終論理ユニットが、前記第２のクロックサイクルの後にある第３のクロックサイクル中に、前記複数のパイプラインレジスタのうちの最終パイプラインレジスタから前記第３のＧＰＲに前記第１の値をコピーすることと、ここにおいて、前記第３のＧＰＲにコピーされる前記第１の値が、前記第１のＧＰＲからコピーされた前記同じ第１の値を表す、
前記処理ユニットの前記最終論理ユニットが、前記第２のクロックサイクルの後にある第４のクロックサイクル中に、前記最終パイプラインレジスタから前記第４のＧＰＲに前記第２の値をコピーすることと、ここにおいて、前記第４のＧＰＲにコピーされる前記第２の値が、前記第２のＧＰＲからコピーされた前記同じ第２の値を表す、
を備える方法。
【請求項２】
前記単一の命令が前記パイプラインレジスタのいずれをも個々に識別しない、請求項１に記載の方法。
【請求項３】
前記複数のパイプラインレジスタが命令によって個々にアクセス可能ではなく、前記複数のＧＰＲが命令によって個々にアクセス可能である、請求項１に記載の方法。
【請求項４】
前記処理ユニットが、前記複数のパイプラインレジスタのうちの１つのパイプラインレジスタにアクセスするとき、前記複数のＧＰＲのうちの１つのＧＰＲにアクセスするときよりも少ない電力を消費する、請求項１に記載の方法。
【請求項５】
前記パイプラインが、１つまたは複数の算術論理ユニット（ＡＬＵ）を含むマルチサイクル計算パイプラインである、請求項１に記載の方法。
【請求項６】
中間論理ユニットが、前記第１のクロックサイクルの後、および前記第３のクロックサイクルの前に、前記初期パイプラインレジスタから前記複数のパイプラインレジスタのうちの１つの中間パイプラインレジスタに前記第１の値をコピーすることと、
前記中間論理ユニットが、前記第２のクロックサイクルの後、および前記第４のクロックサイクルの前に、前記初期パイプラインレジスタから前記中間パイプラインレジスタに前記第２の値をコピーすることと
をさらに備える、請求項１に記載の方法。
【請求項７】
前記処理ユニットが、１つの中央処理ユニット（ＣＰＵ）または１つのグラフィカル処理ユニット（ＧＰＵ）から構成される、請求項１に記載の方法。
【請求項８】
前記初期パイプラインレジスタに前記第１の値をコピーすることが、
前記第１のＧＰＲから前記初期パイプラインレジスタに前記第１の値をコピーすること、または
前記複数のパイプラインレジスタのうちの１つのパイプラインレジスタから前記初期パイプラインレジスタに前記第１の値をコピーすること
のいずれかを備え、
前記初期パイプラインレジスタに前記第２の値をコピーすることが、
前記第２のＧＰＲから前記初期パイプラインレジスタに前記第２の値をコピーすること、または
前記複数のパイプラインレジスタのうちの１つのパイプラインレジスタから前記初期パイプラインレジスタに前記第２の値をコピーすること
のいずれかを備える、
請求項１に記載の方法。
【請求項９】
複数の汎用レジスタ（ＧＰＲ）と、
複数のパイプラインレジスタを備えるパイプラインと、ここにおいて、前記複数のパイプラインレジスタが前記複数のＧＰＲとは異なる、
複数の論理ユニットと、
前記複数のＧＰＲのうちの複数のソースＧＰＲのうちの第１のＧＰＲから前記複数のＧＰＲのうちの複数の宛先ＧＰＲのうちの第３のＧＰＲに第１の値が移動されることと、前記複数のソースＧＰＲのうちの第２のＧＰＲから前記複数の宛先ＧＰＲのうちの第４のＧＰＲに第２の値が移動されることと、前記複数のソースＧＰＲのうちの第５のＧＰＲから前記複数の宛先ＧＰＲのうちの第６のＧＰＲに第３の値が移動されることとを要求する単一の命令を受け取るように構成されたコントローラと、ここにおいて、前記単一の命令が、
前記宛先ＧＰＲのすべてを明確に識別しないギャザー命令であって、前記複数のソースＧＰＲが、前記単一の命令が前記ギャザー命令であるときに連続して位置せず、前記宛先ＧＰＲが、前記単一の命令が前記ギャザー命令であるときに連続して位置するギャザー命令、または
前記ソースＧＰＲのすべてを明確に識別しないスキャッタ命令であって、前記ソースＧＰＲが、前記単一の命令が前記スキャッタ命令であるときに連続して位置し、前記宛先ＧＰＲが、前記単一の命令が前記スキャッタ命令であるときに連続して位置しないスキャッタ命令、のうちの１つであり、ここにおいて、前記単一の命令は、前記第１のＧＰＲから前記第３のＧＰＲに前記第１の値が移動されることと、前記第２のＧＰＲから前記第４のＧＰＲに前記第２の値が移動されることと、前記第５のＧＰＲから前記第６のＧＰＲに前記第３の値が移動されることとを要求する単一の割込み不可能な命令を備え、前記単一の命令を受け取ったことに応答して、前記コントローラが、
前記複数の論理ユニットのうちの初期論理ユニットに、第１のクロックサイクル中に、前記複数のパイプラインレジスタのうちの初期パイプラインレジスタに前記第１の値をコピーさせることと、
前記初期論理ユニットに、前記第１のクロックサイクルの後にある第２のクロックサイクル中に、前記初期パイプラインレジスタに前記第２の値をコピーさせることと、
前記複数の論理ユニットのうちの最終論理ユニットに、前記第２のクロックサイクルの後にある第３のクロックサイクル中に、前記複数のパイプラインレジスタのうちの最終パイプラインレジスタから前記第３のＧＰＲに前記第１の値をコピーさせることと、ここにおいて、前記第３のＧＰＲにコピーされる前記第１の値が、前記第１のＧＰＲからコピーされた前記同じ第１の値を表す、
前記最終論理ユニットに、前記第２のクロックサイクルの後にある第４のクロックサイクル中に、前記最終パイプラインレジスタから前記第４のＧＰＲに前記第２の値をコピーさせることと、ここにおいて、前記第４のＧＰＲにコピーされる前記第２の値が、前記第２のＧＰＲからコピーされた前記同じ第２の値を表す、
を行うように構成された、
を備える処理ユニット。
【請求項１０】
前記単一の命令が前記パイプラインレジスタのいずれをも個々に識別しない、請求項９に記載の処理ユニット。
【請求項１１】
前記複数のパイプラインレジスタが命令によって個々にアクセス可能ではなく、前記複数のＧＰＲが命令によって個々にアクセス可能である、請求項９に記載の処理ユニット。
【請求項１２】
前記処理ユニットが、前記複数のパイプラインレジスタのうちの１つのパイプラインレジスタにアクセスするとき、前記複数のＧＰＲのうちの１つのＧＰＲにアクセスするときよりも少ない電力を消費する、請求項９に記載の処理ユニット。
【請求項１３】
前記パイプラインが、１つまたは複数の算術論理ユニット（ＡＬＵ）を含むマルチサイクル計算パイプラインである、請求項９に記載の処理ユニット。
【請求項１４】
前記１つまたは複数の命令を受け取ったことに応答して、前記コントローラが、
前記複数の論理ユニットのうちの１つの中間論理ユニットに、前記第１のクロックサイクルの後、および前記第３のクロックサイクルの前に、前記初期パイプラインレジスタから前記複数のパイプラインレジスタのうちの１つの中間パイプラインレジスタに前記第１の値をコピーさせることと、
前記中間論理ユニットに、前記第２のクロックサイクルの後、および前記第４のクロックサイクルの前に、前記初期パイプラインレジスタから前記中間パイプラインレジスタに前記第２の値をコピーさせることと
を行うようにさらに構成された、請求項９に記載の処理ユニット。
【請求項１５】
前記処理ユニットが、１つの中央処理ユニット（ＣＰＵ）または１つのグラフィカル処理ユニット（ＧＰＵ）から構成される、請求項９に記載の処理ユニット。
【請求項１６】
前記初期論理ユニットが、
前記第１のＧＰＲから前記初期パイプラインレジスタに前記第１の値をコピーすること、または
前記複数のパイプラインレジスタのうちの１つのパイプラインレジスタから前記初期パイプラインレジスタに前記第１の値をコピーすること
のいずれかによって前記初期パイプラインレジスタに前記第１の値をコピーするように構成され、
前記初期論理ユニットが、
前記第２のＧＰＲから前記初期パイプラインレジスタに前記第２の値をコピーすること、または
前記複数のパイプラインレジスタのうちの１つのパイプラインレジスタから前記初期パイプラインレジスタに前記第２の値をコピーすること
のいずれかによって前記初期パイプラインレジスタに前記第２の値をコピーするように構成された、
請求項９に記載の処理ユニット。
【請求項１７】
複数の汎用レジスタ（ＧＰＲ）のうちの複数のソースＧＰＲのうちの第１のＧＰＲから前記複数のＧＰＲのうちの複数の宛先ＧＰＲのうちの第３のＧＰＲに第１の値が移動されることと、前記複数のソースＧＰＲのうちの第２のＧＰＲから前記複数の宛先ＧＰＲのうちの第４のＧＰＲに第２の値が移動されることと、前記複数のソースＧＰＲのうちの第５のＧＰＲから前記複数の宛先ＧＰＲのうちの第６のＧＰＲに第３の値が移動されることとを要求する、処理ユニットに対する単一の命令を記憶する非一時的コンピュータ可読記憶媒体であって、ここにおいて、前記単一の命令が、前記宛先ＧＰＲのすべてを明確に識別しないギャザー命令であって、
前記複数のソースＧＰＲが、前記単一の命令が前記ギャザー命令であるときに連続して位置せず、前記宛先ＧＰＲが、前記単一の命令が前記ギャザー命令であるときに連続して位置するギャザー命令、
または前記ソースＧＰＲのすべてを明確に識別しないスキャッタ命令であって、前記ソースＧＰＲが、前記単一の命令が前記スキャッタ命令であるときに連続して位置し、前記宛先ＧＰＲが、前記単一の命令が前記スキャッタ命令であるときに連続して位置しないスキャッタ命令、のうちの１つであり、ここにおいて、前記単一の命令は、前記第１のＧＰＲから前記第３のＧＰＲに前記第１の値が移動されることと、前記第２のＧＰＲから前記第４のＧＰＲに前記第２の値が移動されることと、前記第５のＧＰＲから前記第６のＧＰＲに前記第３の値が移動されることとを要求する単一の割込み不可能な命令を備え、前記単一の命令が、実行されたとき、
前記複数の論理ユニットのうちの初期論理ユニットに、第１のクロックサイクル中に、パイプラインの複数のパイプラインレジスタのうちの初期パイプラインレジスタに前記第１の値をコピーさせることと、
前記初期論理ユニットに、前記第１のクロックサイクルの後にある第２のクロックサイクル中に、前記初期パイプラインレジスタに前記第２の値をコピーさせることと、
前記複数の論理ユニットのうちの最終論理ユニットに、前記第２のクロックサイクルの後にある第３のクロックサイクル中に、前記複数のパイプラインレジスタのうちの最終パイプラインレジスタから前記第３のＧＰＲに前記第１の値をコピーさせることと、ここにおいて、前記第３のＧＰＲにコピーされる前記第１の値が、前記第１のＧＰＲからコピーされた前記同じ第１の値を表す、
前記最終論理ユニットに、前記第２のクロックサイクルの後にある第４のクロックサイクル中に、前記最終パイプラインレジスタから前記第４のＧＰＲに前記第２の値をコピーさせることと、ここにおいて、前記第４のＧＰＲにコピーされる前記第２の値が、前記第２のＧＰＲからコピーされた前記同じ第２の値を表す、
を前記処理ユニットに行わせる、非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記単一の命令が前記パイプラインレジスタのいずれをも個々に識別しない、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記複数のパイプラインレジスタが命令によって個々にアクセス可能ではなく、前記複数のＧＰＲが命令によって個々にアクセス可能である、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記処理ユニットが、前記複数のパイプラインレジスタのうちの１つのパイプラインレジスタにアクセスするとき、前記複数のＧＰＲのうちの１つのＧＰＲにアクセスするときよりも少ない電力を消費する、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
実行されたとき、前記単一の命令が、
前記複数の論理ユニットのうちの１つの中間論理ユニットに、前記第１のクロックサイクルの後、および前記第３のクロックサイクルの前に、前記初期パイプラインレジスタから前記複数のパイプラインレジスタのうちの１つの中間パイプラインレジスタに前記第１の値をコピーさせることと、
前記中間論理ユニットに、前記第２のクロックサイクルの後、および前記第４のクロックサイクルの前に、前記初期パイプラインレジスタから前記中間パイプラインレジスタに前記第２の値をコピーさせることと
を前記処理ユニットに行わせる、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【請求項２２】
コンパイラモジュールがコードを受け取ることと、
前記コンパイラモジュールが、前記コードによって示された複数の動作が単一のコンボ移動命令に組み合わせられ得ると決定することに応答して、前記単一のコンボ移動命令を生成することと
を備える方法であって、
ここにおいて、処理ユニットによって実行されたとき、前記コンボ移動命令が、複数の汎用レジスタ（ＧＰＲ）のうちの複数のソースＧＰＲから前記複数のＧＰＲのうちの複数の宛先ＧＰＲに複数の値を移動させるとき、前記処理ユニットに複数のパイプラインレジスタを一時的ストレージとして利用させ、ここにおいて、前記単一のコンボ移動命令が、
前記宛先ＧＰＲのすべてを明確に識別しないギャザー命令であって、前記複数のソースＧＰＲが、前記単一の命令が前記ギャザー命令であるときに連続して位置せず、前記宛先ＧＰＲが、前記単一の命令が前記ギャザー命令であるときに連続して位置するギャザー命令、または
前記ソースＧＰＲのすべてを明確に識別しないスキャッタ命令であって、前記ソースＧＰＲが、前記単一の命令が前記スキャッタ命令であるときに連続して位置し、前記宛先ＧＰＲが、前記単一の命令が前記スキャッタ命令であるときに連続して位置しないスキャッタ命令、のうちの１つであり、ここにおいて、前記複数のソースＧＰＲのうちの少なくとも１つのＧＰＲが前記複数の宛先ＧＰＲ中に含まれ、ここにおいて、前記複数のパイプラインレジスタが前記複数のＧＰＲとは異なり、ここにおいて、前記単一の移動命令は、第１のＧＰＲから第３のＧＰＲに第１の値が移動されることと、第２のＧＰＲから第４のＧＰＲに第２の値が移動されることと、第５のＧＰＲから第６のＧＰＲに第３の値が移動されることとを要求する単一の割込み不可能な命令を備える、方法。
【請求項２３】
前記コードによって示された前記複数の動作が前記単一のコンボモード命令に組み合わせられ得ると決定することは、
前記コードによって示された前記複数の動作が、前記複数のＧＰＲの間で複数の値を移動することを含むと決定することに応答して、前記コードによって示された前記複数の動作が前記単一のコンボモード命令に組み合わせられ得ると決定すること
を備える、請求項２２に記載の方法。
【請求項２４】
前記コードが複数の命令を備え、ここにおいて、前記方法が、
前記単一のコンボ移動命令に組み合わせられ得る前記複数の動作に対応する前記命令を、前記生成された単一のコンボ移動命令と置き換えること
をさらに備える、請求項２２に記載の方法。