JP2015144002A - 単一方向回転子のためのレジスタベースのシフト - Google Patents
単一方向回転子のためのレジスタベースのシフト Download PDFInfo
- Publication number
- JP2015144002A JP2015144002A JP2015042804A JP2015042804A JP2015144002A JP 2015144002 A JP2015144002 A JP 2015144002A JP 2015042804 A JP2015042804 A JP 2015042804A JP 2015042804 A JP2015042804 A JP 2015042804A JP 2015144002 A JP2015144002 A JP 2015144002A
- Authority
- JP
- Japan
- Prior art keywords
- shift
- instruction
- shift value
- register
- rotate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
Abstract
【課題】データを一方向にシフトあるいは回転させる単一方向回転子を有するプロセッサを提供する。【解決手段】レジスタードベースの反対方向のシフト/回転命令によって指定されたシフト値を変更するためのシフトロジック116を有する制御ユニットを含み、変更されたシフト値は回転子106による一方向へのシフト/回転のために使用され、それによって、回転子106中のデータがあたかもレジスタードベースのシフト/回転命令によって元々指定されたシフト値だけ反対方向にシフト/回転されたと同様の結果を生み出す。制御ユニットは、さらに、レジスタベースの命令によってデータを一方向にシフト/回転するために指定されたシフト値を、ロジックをバイパスして回転子に供給する。【選択図】図1
Description
本開示は、一般にプロセッサに関し、より具体的には、単一方向回転子のためのレジスタベースのシフトに関する。
プロセッサは、今日、ほとんどすべての電子応用において広く使用されている。
プロセッサは、プログラム命令、算術機能、およびメモリや周辺装置へのアクセスの実行をコントロールする。最も単純な形では、プロセッサはメモリに保存されたデータ上で1つ以上の算術機能を遂行することによりプログラム命令を実行する。プロセッサによって遂行される算術機能は、特定のアプリケーションに依存して変化する。プロセッサによって一般に遂行される算術機能の1つのタイプは、シフト(shifting)あるいは回転(rotating)演算(operation)である。シフトあるいは回転演算は、回転子とそれに関連するロジックによって遂行される。回転子は、シフト演算を要求するプログラム命令に応じてデータが完全にシフトされるように、それらの入力と出力が互いに接続されたマルチプレクサ要素の1つの配列である。
プログラム命令によって要求される特定のシフト演算は種々ある。例えば、プログラム命令は、データを個々のビット位置数だけ移動し、超過ビットは廃棄し、結果はゼロで埋めるよう論理シフト(logical shift)を要求することができる。算術シフト(arithmetic shift)は、右シフト動作中に符号ビット(sign bit)が左まで延長されて左シフト動作中に低位ビット位置にゼロが加えられる以外は、論理シフトに類似する。
回転子もまた、回転演算を要求するプログラム命令を実行するために使用される。
回転演算は、それが循環的である以外は、シフト演算に類似する。回転命令が実行されるとき、回転子の1つの端でシフトアウトされたビットは他方の端に返される。シフト命令と同様、回転命令は、左回転あるいは右回転の命令であり得る。
シフト演算、回転演算のためのプログラム命令が双方向であり得るため、いくつかのプロセッサは個別に左回転子と右回転子を組込む。しかしながら、両方を組込むことは、より多くの電力を消費し、また、より多くの面積あるいは空間を要求する。従って、この技術分野において、左右いずれの方向にもシフトあるいは回転の命令を実行させることができる、プロセッサベースの回転子が必要とされている。プロセッサベースの回転子は、シフト演算や回転演算の待ち時間(latencies)を最小化するように構成されるべきである。
プロセッサの1つの態様が示される。プロセッサは、データを一方向にシフトあるいは回転するように構成された単一方向回転子と、反対方向のレジスタベースのシフト命令あるいは回転命令で指定されたシフト値を変更するように構成されたロジックを有する制御ユニットとを含み、変更されたシフト値は、回転子によって一方向でデータをシフトあるいは回転させるために使用可能である。そしてそのために、あたかもレジスタベースの命令で指定された元々のシフト値を使って回転子中のデータが反対方向にシフトあるいは回転されたのと同じ結果を生成する。制御ユニットは、さらに、ロジックをバイパスし、レジスタベースでの命令によって指定されたシフト値を回転子に供給し、一方向でデータをシフトあるいは回転するように構成される。
プロセッサの他の態様が示される。プロセッサは、データを一方向にシフトあるいは回転させるように構成されたnビットの単一方向回転子と、反対方向のレジスタベースのシフト命令あるいは回転命令でmと指定されたシフト値を変更するように構成されたロジックを有する制御ユニットとを含み、変更されたシフト値は、回転子によって一方向で(n−m)だけデータをシフトあるいは回転させるために使用可能である。制御装置は、さらに、ロジックをバイパスし、一方向でのレジスタベースのシフト/回転命令で指定されたシフト値を回転子に供給するように構成される。
一方向でデータをシフト/回転させるように構成された単一方向回転子を使用してシフトあるいは回転演算を実行する1つの方法が開示される。その方法は、レジスタベースでの一方向のシフト/回転命令によって指定されたシフト値を検索することと、ロジックをバイパスして、検索されたシフト値を回転子に供給することとを含む。ロジックは、レジスタベースでの反対方向のシフト/回転命令で指定されたシフト値を変更するように構成され、変更されたシフト値は、回転子によって一方向でのデータのシフト/回転に使用される。その結果、あたかも回転子中のデータがレジスタベースの命令で指定された元々のシフト値で反対方向にシフト/回転されたのと同じ結果を生成する。
一方向でデータをシフト/回転させるように構成されたnビットの単一方向回転子を使用してシフトあるいは回転演算を実行する他の方法が開示される。その方法は、レジスタベースでの一方向のシフト/回転命令によって指定されたシフト値を検索することと、ロジックをバイパスして、検索されたシフト値を回転子に供給することとを含む。ロジックは、レジスタベースでの反対方向のシフト/回転命令で指定されたシフト値を変更するように構成され、変更されたシフト値は、回転子によって一方向でのデータを(n−m)だけシフト/回転するために使用される。
例示としてそのいくつかを示した以下の詳細な記述から、当業者において本開示の他の実施例は容易に明白となるであろう。理解されるように、他の、そして異なる実施例が可能であり、また、ここに含まれたいくつかの詳細は本開示の精神と範囲から外れることなく、様々な他の点で変更が可能である。従って、図面および詳細な記述は、限定的なものとしてではなく、本質を例示するものとしてみなされるべきである。
これらは、他の特徴と同様に、以下の実施例の詳細な記述および添付の図面から明らかになるであろう。
添付の図面に関連して以下に述べられた詳細な記述は、本開示の様々な実施例の記述として意図され、本開示が実行され得るただそれだけの実施例を表わすようには意図されない。詳細な記述は本開示についての完全な理解を提供する目的で特定の詳細を含んでいる。しかしながら、本開示がこれらの特定の詳細なしで実行されてもよいことは当業者にとって明白であろう。いくつかの場合、よく知られた構成や要素は本開示の概念を不明瞭にしないようにするためにブロック図の形で示される。
図1はプロセッサ100あるいは、情報の処理、検索および格納が可能な他の計算体系の例を示す簡略ブロック図である。プロセッサ100はスタンドアロンのコンポーネントでもよく、あるいは、コンピュータ、無線電話、携帯情報端末(PDA)、ディジタルカメラ、ゲーム機あるいは他の計算デバイスのようなデバイス中に組み込まれることもできる。プロセッサ100はマイクロプロセッサあるいは他の処理構成であり得る。1つの実施例では、プロセッサ100は埋込み型RISCマイクロプロセッサである。
プロセッサ100の主機能は、データ上で多数のオペレーションを実行することにより、プログラム命令を実行することである。データは検索され、プロセッサ100内の汎用メモリ中のレジスタファイル102に保存される。レジスタファイル102は、外部メモリからのデータを一時的に格納するために使用される高速レジスタである。それらは、プロセッサ100によって要求される、データへの高速アクセスを提供する。レジスタ102の数(一般に総体として汎用レジスタファイルと呼ばれる)は、プロセッサアーキテクチャによって指定される。それぞれのレジスタは実行ユニット104によってアクセス可能であり、プロセッサ100が1つ以上の選択されたレジスタからデータを読み、データ上で実行しその結果を選択されたレジスタに書き込む。
実行ユニット104は、プロセッサ100の全ての数学的演算を実行するために、ALU(算術/論理演算ユニット)あるいは他の計算上の構成を使用する。それは、一般的に、加算、減算、乗算、除算および他の計算を含む様々な機能を実行する複雑な回路類で構成される。実行ユニット104は、また、データをシフトあるいは回転させるために使用される。シフトおよび回転の機能は、実行ユニット104中の単一方向回転子106とそれに関連するロジック(図示せず)で実行される。
図1中で示される回転子106は、データを右に任意のビット数だけシフトあるいは回転させることができる単一方向回転子として示される。当業者は、この開示の全体にわたって記述された回転子106の機能性が、データを左にシフト/回転させる単一方向回転子まで及ぶことを容易に認識するであろう。
回転子の動作は図2A〜2Cに関連して示される。図2Aでは、8ビットの回転子202の内容が示される。8ビット回転子中のデータは右に2ビットだけ循環され、図2Bで示す結果となる。図2Bおよび2Cを参照すると、2ビットの右回転動作が6ビットの左回転動作と同じ結果を生むことが容易に分かる。言い換えれば、一方向にデータを回転させることができる回転子は、反対方向でのデータの回転をエミュレートするために使用することができる。したがって、nビットの単一方向回転子中のmビットの左回転動作は、データを(n-m)ビット右回転させることにより実行することができる。
シフト動作は、回転子中で最初に適正量だけデータを回転させておき、次に、適切なビットを廃棄することにより実行されてもよい。占有されていないビット位置はゼロを埋め込んでもよい。あるいは、算術右シフト動作においては、符号ビットが、占有されていないビット位置中に左に延長されてもよい。例えば、mビットの左シフト動作は、回転子中のデータを右に(n-m)ビット回転し、m-LSBを廃棄し、m-LSBビット位置にゼロを埋め込むことで実行できる。mビットの右シフト動作は、回転子中のデータを右にmビット回転させて、m-MSBを廃棄し、m-MSBビット位置にゼロを埋め込むことにより実行できる。算術右シフト動作の場合には、符号ビットが回転子中でm-MSBビット位置中に左に延長されてもよい。
図1に返って、実行ユニット104の動作は命令キャッシュ108に格納されたプログラム命令によって制御される。命令キャッシュ108は、プロセッサ100上の小さな高速メモリである。それは、外部メモリからフェッチされたプログラム命令のための一時的な高速蓄積装置を提供する。プログラム命令はデコーダ110に供給され、また、デコードされた命令は、数学的演算を実行するために実行ユニット104の活性化に使用される。
プログラム命令は、一般に、オペレーションコードとオペランドフィールドの2つの部分から構成される。オペレーションコードは、実行ユニット104によって実行される加算、減算、格納、回転、シフトのようなオペレーションを指定する。オペランドフィールドは、オペレーションコードによって指定されたオペレーションに関するより多くの詳細を提供する。例えば、シフト演算の場合には、オペランドフィールドは、シフトされるべきデータを汎用レジスタファイル102中のどのレジスタが保有しているか、シフトの方向、そしてデータをシフトするためのビット位置の数を示す。この例において、オペランドフィールドは、第1のレジスタ中のデータをmビット右にシフトするよう要求してもよい。
あるいは、オペランドフィールドは、第1のレジスタのデータを第2のレジスタで指定された量だけシフトするよう要求してもよい。前のプログラム命令は一般に「インストラクションベースのシフト」("instruction-based shift")として引用され、また、後のプログラム命令は「レジスタベースのシフト」("register-based shift")として引用される。
あるいは、オペランドフィールドは、第1のレジスタのデータを第2のレジスタで指定された量だけシフトするよう要求してもよい。前のプログラム命令は一般に「インストラクションベースのシフト」("instruction-based shift")として引用され、また、後のプログラム命令は「レジスタベースのシフト」("register-based shift")として引用される。
制御ユニット(図示せず)が、プロセッサ内のプログラム命令とデータの流れを管轄する。制御ユニットの多くの機能のうちの1つは、算術命令のオペランドフィールド中で指定されたデータを実行ユニット104に提供することである。データはプロセッサのアーキテクチャに依存する任意のソースから提供されてもよい。例えば、データは、汎用レジスタファイル102、キャッシュあるいは他のメモリにあってもよい。いくつかの場合では、データは実行ユニット104のパイプライン122中に存在する。したがって、制御ユニットによって検索し、実行ユニット104の入力にフィードバックされなくてはならない。
制御ユニットは、パイプライン122中の任意のステージからデータを早期に回復することを可能にする何がしかのロジックを使用してもよい。制御ユニットは、一般に、デコーダ、マルチプレクサおよび関連するロジックの複合配置で実行される。図1において、デコーダ110、マルチプレクサ112、118、ラッチ114およびシフト修正ロジック116が制御ユニットの一部を形式する。
実行ユニット104へのデータの流れのコントロールに加えて、制御ユニットは、また、命令キャッシュ108中のプログラム命令のオペレーションコードを実行ユニット104中のマルチプレクサ118に供給する役割を負う。マルチプレクサ118は、制御ユニットが汎用レジスタファイル102に結果を格納する前に、回転子106の出力あるいは他の計算機能120を切り替えてパイプライン122に送るために使用される。インストラクションベースのシフトあるいは回転命令の場合は、オペランドフィールドはマルチプレクサ112を通過して回転子106に供給され、データを何ビット位置シフトするかを伝える。デコーダ110、あるいは他の構成は、シフト量を(n-m)だけ変更することによって左シフト/回転を右シフト/回転の命令に変換するために使用される。
今記述されたデコード機能は、インストラクションベースのシフトあるいは回転によく適している。なぜなら、プロセッサ100による実行に十分先立って、命令キャッシュ108内で命令が利用できるからである。しかしながら、レジスタベースのシフト/回転の場合は、もし現在のシフト/回転命令のためにシフト量を指定したデータが汎用ファイルレジスタ102に存在せず、実行ユニット104のパイプライン122のどこかに存在していると、ある時間遅れが経験される。
プロセッサ100の少なくとも1つの実施例では、制御ユニットは、レジスタードベースのシフト/回転命令を効率的に処理するよう構成される。例えば、シフト/回転命令のシフト値を変更する機能は、レジスタードベースのシフト/回転の場合は、デコーダ110ではなく、制御ユニットによって実行される。より具体的には、レジスタードベースのシフト/回転命令のためのオペランドフィールドは、制御ユニットに供給される。制御ユニットは、オペランドフィールドによって指定されたシフト値を汎用ファイルレジスタ102もしくは実行ユニットのパイプライン122のいずれかに配置し、そのシフト値をマルチプレクサ112を介してラッチ114の入力に送る。一旦、データがラッチ114の入力に送られれば、制御ユニットは次のクロックサイクルで実行ユニット104にデータをロードするか、それともまずシフト値を変更するかを決定する。
シフト/回転命令のためにシフト値を実行ユニットに送る処理について、図1および図3を参照して説明する。制御ユニットは、ステップ302で、命令がレジスタードベースかインストラクションベースかを決定する。もし制御ユニットが命令はインストラクションベースであると決定する場合は、シフト値はブロック304中の実行ユニット104に供給され、実行ユニット104はブロック305で回転子中のデータをシフト値によって指定された量だけ右にシフト/回転させる。インストラクションベースのシフト/回転命令が左方向であった場合は、シフト値はデコーダ110あるいは他の構成によって前もって変更されていてもよい。
もし制御ユニットがレジスタードベースの命令であると決定する場合は、制御ユニットは、ブロック306で、レジスタードベースの命令が右へのシフト/回転を要求しているか、それとも左へのシフト/回転を要求しているかを決定する。もし制御ユニットが、命令は右シフト/回転を要求していると決定する場合は、シフト値はブロック304で実行ユニット104に供給され、実行ユニット104はブロック305で回転子中のデータをシフト値によって指定された量だけ右にシフト/回転させる。
もし制御ユニットが、命令は左へのレジスタードベースの命令であると決定する場合は、シフト値はブロック307でシフト修正ロジック116に供給される。ブロック308でシフト値が(n-m)だけ変更される。ここで、nは回転子106のサイズで、mはシフト値である。変更されたシフト値はブロック304で実行ユニット104に供給され、実行ユニット104はブロック305で回転子中のデータをシフト値によって指定された量だけ右に回転させる。
ここに示された実施例に関係して記述された様々な例示の論理ブロック、モジュールおよび回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)あるいは他のプログラマブルロジックデバイス、ディスクリートゲート、トランジスタロジック、個別のハードウェア構成要素、あるいはここに記述された機能を実行するために設計されたそれらの任意の組合せによって実施することができる。汎用プロセッサはマイクロプロセッサであってよいが、代替として任意の従来のプロセッサ、コントローラ、マイクロコントローラあるいはステートマシンであってもよい。また、プロセッサは、計算デバイスの組み合わせ(例えばDSPとマイクロプロセッサの組合せ)、複数のマイクロプロセッサ、DSPコアと協働する1つ以上のマイクロプロセッサあるいは他のそのような構成として実施することができる。
ここに示された実施例に関係して記述された方法またはアルゴリズムは、ハードウェア、プロセッサによって実行されるソフトウェアモジュールあるいはそれら2つの組合せに直接組み込まれてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリEEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROMあるいはこの技術分野で既知の記憶媒体の他の形態中に存在してもよい。記憶媒体はプロセッサと結合され、プロセッサは記録媒体から情報を読み出し、また記録媒体に情報を書き込む。代替として、記憶媒体はプロセッサと一体であってもよい。プロセッサと記憶媒体はASIC中に存在してもよい。ASICはターミナルあるいはその他のところに存在してもよい。代替として、プロセッサと記憶媒体はターミナルあるいはその他のところに個別部品として存在してもよい。
開示された実施例についての先の記述は、当業者が本発明を実施することを可能にするために提供されている。これらの実施例のついての様々な変更は当業者にとって容易に明白であり、ここに定義された包括的な原理は、本開示の精神あるいは範囲から外れずに他の実施例に適用されてもよい。したがって、本発明は、ここに開示示された実施例に制限されるようには意図されず、請求項と一致する十分な範囲を与えられるべきものであり、単数での要素の言及は、特にそのように明示されない限り「ただ1つのみ」を意味するようには意図されておらず、むしろ「1つ以上」を意図している。この開示を通して記述された様々な実施例の要素についての、当業者によって既に知られ、あるいは後に知られるようになる全ての構造的・機能的な均等物は、参照によってここに明白に組込まれ、また、請求項によって包含されるように意図される。さらに、ここに開示されたいかなるものも、そのような開示が請求項で明示的に記載されるか否かにかかわらず、公共に捧げられるようには意図されない。要素が明確に「means for」、あるいは方法クレームの場合は「step for」を使って記述されていない限り、請求項の要素は米国特許法第112条第6パラグラフの下で解釈されるべきではない。
開示された実施例についての先の記述は、当業者が本発明を実施することを可能にするために提供されている。これらの実施例のついての様々な変更は当業者にとって容易に明白であり、ここに定義された包括的な原理は、本開示の精神あるいは範囲から外れずに他の実施例に適用されてもよい。したがって、本発明は、ここに開示示された実施例に制限されるようには意図されず、請求項と一致する十分な範囲を与えられるべきものであり、単数での要素の言及は、特にそのように明示されない限り「ただ1つのみ」を意味するようには意図されておらず、むしろ「1つ以上」を意図している。この開示を通して記述された様々な実施例の要素についての、当業者によって既に知られ、あるいは後に知られるようになる全ての構造的・機能的な均等物は、参照によってここに明白に組込まれ、また、請求項によって包含されるように意図される。さらに、ここに開示されたいかなるものも、そのような開示が請求項で明示的に記載されるか否かにかかわらず、公共に捧げられるようには意図されない。要素が明確に「means for」、あるいは方法クレームの場合は「step for」を使って記述されていない限り、請求項の要素は米国特許法第112条第6パラグラフの下で解釈されるべきではない。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]データを一方向にシフト/回転させるように構成された単一方向回転子と、レジスタードベースのシフト/回転命令によって指定された反対方向へのシフト値を変更するように構成されたロジックを有し、前記ロジックによって変更されたシフト値は前記データを前記一方向にシフト/回転するために前記回転子によって使用可能で、それによってあたかも前記回転子のデータが前記レジスタードベースの命令によって元々指定されたシフト値だけ前記反対方向にシフト/回転されたと同じ結果を生成する制御ユニットと、を備え、前記制御ユニットは、さらに、レジスタベースの命令によって前記データを前記一方向にシフト/回転させるために指定されたシフト値を、前記ロジックをバイパスして前記回転子に供給するように構成された、プロセッサ。
[C2]パイプライン化された実行ユニットをさらに備え、前記制御ユニットはさらに前記レジスタードベースの命令によって指定された前記シフト値を前記パイプラインの出力ステージ以外のステージから回復するように構成された、C1に記載のプロセッサ。
[C3]汎用レジスタファイルをさらに備え、前記制御ユニットは、前記レジスタベースの命令に応じて前記汎用レジスタファイルもしくは前記パイプラインのいずれかから前記シフト値を選択するマルチプレクサをさらに備えた、C2に記載のプロセッサ。
[C4]前記マルチプレクサは、さらに、前記レジスタベースの命令に応じた前記汎用レジスタファイルからのシフト値、前記レジスタベースの命令に応じた前記パイプラインからのシフト値、インストラクションベースのシフト/回転命令によって指定されたシフト値のうちのいずれかを選択するように構成された、C3に記載のプロセッサ。
[C5]前記インストラクションベースのシフト/回転命令が前記反対方向である場合、前記インストラクションベースのシフト/回転命令によって指定されたシフト値は前記マルチプレクサに供給される前に前記制御ユニットによって変更され、前記インストラクションベースのシフト/回転命令のための前記変更されたシフト値は前記回転子によって前記データを前記一方向にシフト/回転するために使用可能で、それによってあたかも前記回転子のデータが前記インストラクションベースのシフト/回転命令によって元々指定されたシフト値だけ前記反対方向にシフト/回転されたと同じ結果を生成する、C5に記載のプロセッサ。
[C6]前記制御ユニットは、さらに、前記レジスタベースの前記一方向のシフト/回転命令に対する前記マルチプレクサによって選択された前記シフト値を前記回転子に供給し、また、前記レジスタベースの前記反対方向のシフト/回転命令に対する前記マルチプレクサによって選択された前記シフト値を前記ロジックに供給するように構成された、C3に記載のプロセッサ。
[C7]前記ロジックによって生成された変更後の前記シフト値は前記マルチプレクサに戻され、前記マルチプレクサは、前記汎用ファイルレジスタもしくは前記パイプラインのいずれかから前記シフト値を選択し、または、前記変更後のシフト値を前記回転子に供給するように構成された、C6に記載のプロセッサ。
[C8]前記マルチプレクサに結合された入力と前記ロジック及び前記回転子に結合された出力とを有するラッチをさらに備えた、C7に記載のプロセッサ。
[C9]データを一方向にシフト/回転させるように構成されたnビットの単一方向回転子と、レジスタードベースのシフト/回転命令によって指定された反対方向へのシフト値mを変更するように構成されたロジックを有し、前記ロジックによって変更されたシフト値は前記データを前記一方向に(n-m)だけシフト/回転するために前記回転子によって使用可能である制御ユニットと、を備え、前記制御ユニットは、さらに、レジスタベースの命令によって前記一方向にシフト/回転させるために指定されたシフト値を、前記ロジックをバイパスして前記回転子に供給するように構成された、プロセッサ。
[C10]パイプライン化された実行ユニットをさらに備え、前記制御ユニットはさらに前記レジスタードベースの命令によって指定された前記シフト値を前記パイプラインの出力ステージ以外のステージから回復するように構成された、C9に記載のプロセッサ。
[C11]汎用レジスタファイルをさらに備え、前記制御ユニットは、前記レジスタベースの命令に応じて前記汎用レジスタファイルもしくは前記パイプラインのいずれかから前記シフト値を選択するマルチプレクサをさらに備えた、C10に記載のプロセッサ。
[C12]前記マルチプレクサは、さらに、前記レジスタベースの命令に応じた前記汎用レジスタファイルからのシフト値、前記レジスタベースの命令に応じた前記パイプラインからのシフト値、インストラクションベースのシフトもしくは回転命令によって指定されたシフト値のうちのいずれかを選択するように構成された、C11に記載のプロセッサ。
[C13]前記インストラクションベースのシフト/回転命令が前記反対方向である場合、前記インストラクションベースのシフト/回転命令によって指定されたシフト値は、前記マルチプレクサに供給される前に前記制御ユニットによって変更され、前記インストラクションベースのシフト/回転命令のための前記変更されたシフト値は前記回転子によって前記データを前記一方向にシフト/回転するために使用可能で、それによってあたかも前記回転子のデータが前記インストラクションベースのシフト/回転命令によって元々指定されたシフト値だけ前記反対方向にシフト/回転されたと同じ結果を生成する、C12に記載のプロセッサ。
[C14]前記制御ユニットは、さらに、前記レジスタベースの前記一方向のシフト/回転命令のために前記マルチプレクサによって選択された前記シフト値を前記回転子に供給し、また、前記レジスタベースの前記反対方向のシフト/回転命令のために前記マルチプレクサによって選択された前記シフト値を前記シフト修正ロジックに供給するように構成された、C11に記載のプロセッサ。
[C15]前記ロジックによって生成された変更後の前記シフト値は前記マルチプレクサに戻され、前記マルチプレクサは前記汎用ファイルレジスタもしくは前記パイプラインのいずれかから前記シフト値を選択し、または、前記変更後のシフト値を前記回転子に供給する、C14に記載のプロセッサ。
[C16]前記マルチプレクサに結合された入力と前記ロジック及び前記回転子に結合された出力とを有するラッチをさらに備えた、C15に記載のプロセッサ。
[C17]データを一方向にシフト/回転するように構成された単一方向回転子と、レジスタードベースの反対方向のシフト/回転命令によって指定されたシフト値を変更するように構成されたロジックとを使用し、かつ、変更された前記シフト値は前記回転子のデータを前記一方向にシフト/回転するために使用可能で、それによってあたかも前記回転子中のデータが前記レジスタードベースの命令によって元々指定されたシフト値だけ反対方向にシフト/回転されたと同じ結果を生みだすシフト/回転動作の実行方法であって、前記方法は、レジスタードベースの一方向のシフト/回転命令によって指定されたシフト値を検索することと、前記ロジックをバイパスして、前記検索されたシフト値を前記回転子に供給することと、を備える。
[C18]前記レジスタードベースの前記一方向のシフト/回転命令のシフト値は、前記回転子を含む実行ユニット中のパイプラインの出力ステージ以外のステージから検索される、C17に記載の方法。
[C19]前記レジスタードベースの前記一方向のシフト/回転命令のシフト値は、汎用ファイルレジスタから検索される、C17に記載の方法。
[C20]前記レジスタードベースの前記一方向のシフト/回転命令のシフト値を前記汎用ファイルレジスタから検索するか、前記回転子を含む実行ユニット中のパイプラインの出力ステージ以外のステージから検索するかを決定することをさらに備えた、C17に記載の方法。
[C21]その後に続くレジスタベースの一方向のシフト/回転命令のシフト値を検索することと、前記その後に続くレジスタベースの命令に先行するレジスタベースの反対方向のシフト/回転命令に応答して、前記ロジックによって変更されたシフト値を前記回転子に供給するように決定することと、をさらに含む、C17に記載の方法。
[C22]データを一方向にシフト/回転するように構成されたnビットの単一方向回転子と、レジスタードベースの反対方向のシフト/回転命令によって指定されたシフト値mを変更するように構成されたロジックとを使用し、かつ、変更された前記シフト値は前記回転子のデータを前記一方向に(n-m)だけシフト/回転するために使用可能であるシフト/回転動作の実行方法であって、前記方法は、レジスタードベースの前記一方向のシフト/回転命令によって指定されたシフト値を検索することと、前記ロジックをバイパスして前記検索されたシフト値を前記回転子に供給することと、を備える。
[C23]前記レジスタードベースの前記一方向のシフト/回転命令のシフト値は、前記回転子を含む実行ユニット中のパイプラインの出力ステージ以外のステージから検索される、C22に記載の方法。
[C24]前記レジスタードベースの前記一方向のシフト/回転命令のシフト値は、汎用ファイルレジスタから検索される、C22に記載の方法。
[C25]前記レジスタードベースの前記一方向のシフト/回転命令のシフト値を前記汎用ファイルレジスタから検索するか、前記回転子を含む実行ユニット中のパイプラインの出力ステージ以外のステージから検索するかを決定することをさらに備えた、C22に記載の方法。
[C26]その後に続くレジスタベースの一方向のシフト/回転命令のシフト値を検索することと、前記その後に続くレジスタベースの命令に先行するレジスタベースの反対方向のシフト/回転命令に応じて、前記ロジックによって変更されたシフト値を前記回転子に供給するように決定することとをさらに含む、C22に記載の方法。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]データを一方向にシフト/回転させるように構成された単一方向回転子と、レジスタードベースのシフト/回転命令によって指定された反対方向へのシフト値を変更するように構成されたロジックを有し、前記ロジックによって変更されたシフト値は前記データを前記一方向にシフト/回転するために前記回転子によって使用可能で、それによってあたかも前記回転子のデータが前記レジスタードベースの命令によって元々指定されたシフト値だけ前記反対方向にシフト/回転されたと同じ結果を生成する制御ユニットと、を備え、前記制御ユニットは、さらに、レジスタベースの命令によって前記データを前記一方向にシフト/回転させるために指定されたシフト値を、前記ロジックをバイパスして前記回転子に供給するように構成された、プロセッサ。
[C2]パイプライン化された実行ユニットをさらに備え、前記制御ユニットはさらに前記レジスタードベースの命令によって指定された前記シフト値を前記パイプラインの出力ステージ以外のステージから回復するように構成された、C1に記載のプロセッサ。
[C3]汎用レジスタファイルをさらに備え、前記制御ユニットは、前記レジスタベースの命令に応じて前記汎用レジスタファイルもしくは前記パイプラインのいずれかから前記シフト値を選択するマルチプレクサをさらに備えた、C2に記載のプロセッサ。
[C4]前記マルチプレクサは、さらに、前記レジスタベースの命令に応じた前記汎用レジスタファイルからのシフト値、前記レジスタベースの命令に応じた前記パイプラインからのシフト値、インストラクションベースのシフト/回転命令によって指定されたシフト値のうちのいずれかを選択するように構成された、C3に記載のプロセッサ。
[C5]前記インストラクションベースのシフト/回転命令が前記反対方向である場合、前記インストラクションベースのシフト/回転命令によって指定されたシフト値は前記マルチプレクサに供給される前に前記制御ユニットによって変更され、前記インストラクションベースのシフト/回転命令のための前記変更されたシフト値は前記回転子によって前記データを前記一方向にシフト/回転するために使用可能で、それによってあたかも前記回転子のデータが前記インストラクションベースのシフト/回転命令によって元々指定されたシフト値だけ前記反対方向にシフト/回転されたと同じ結果を生成する、C5に記載のプロセッサ。
[C6]前記制御ユニットは、さらに、前記レジスタベースの前記一方向のシフト/回転命令に対する前記マルチプレクサによって選択された前記シフト値を前記回転子に供給し、また、前記レジスタベースの前記反対方向のシフト/回転命令に対する前記マルチプレクサによって選択された前記シフト値を前記ロジックに供給するように構成された、C3に記載のプロセッサ。
[C7]前記ロジックによって生成された変更後の前記シフト値は前記マルチプレクサに戻され、前記マルチプレクサは、前記汎用ファイルレジスタもしくは前記パイプラインのいずれかから前記シフト値を選択し、または、前記変更後のシフト値を前記回転子に供給するように構成された、C6に記載のプロセッサ。
[C8]前記マルチプレクサに結合された入力と前記ロジック及び前記回転子に結合された出力とを有するラッチをさらに備えた、C7に記載のプロセッサ。
[C9]データを一方向にシフト/回転させるように構成されたnビットの単一方向回転子と、レジスタードベースのシフト/回転命令によって指定された反対方向へのシフト値mを変更するように構成されたロジックを有し、前記ロジックによって変更されたシフト値は前記データを前記一方向に(n-m)だけシフト/回転するために前記回転子によって使用可能である制御ユニットと、を備え、前記制御ユニットは、さらに、レジスタベースの命令によって前記一方向にシフト/回転させるために指定されたシフト値を、前記ロジックをバイパスして前記回転子に供給するように構成された、プロセッサ。
[C10]パイプライン化された実行ユニットをさらに備え、前記制御ユニットはさらに前記レジスタードベースの命令によって指定された前記シフト値を前記パイプラインの出力ステージ以外のステージから回復するように構成された、C9に記載のプロセッサ。
[C11]汎用レジスタファイルをさらに備え、前記制御ユニットは、前記レジスタベースの命令に応じて前記汎用レジスタファイルもしくは前記パイプラインのいずれかから前記シフト値を選択するマルチプレクサをさらに備えた、C10に記載のプロセッサ。
[C12]前記マルチプレクサは、さらに、前記レジスタベースの命令に応じた前記汎用レジスタファイルからのシフト値、前記レジスタベースの命令に応じた前記パイプラインからのシフト値、インストラクションベースのシフトもしくは回転命令によって指定されたシフト値のうちのいずれかを選択するように構成された、C11に記載のプロセッサ。
[C13]前記インストラクションベースのシフト/回転命令が前記反対方向である場合、前記インストラクションベースのシフト/回転命令によって指定されたシフト値は、前記マルチプレクサに供給される前に前記制御ユニットによって変更され、前記インストラクションベースのシフト/回転命令のための前記変更されたシフト値は前記回転子によって前記データを前記一方向にシフト/回転するために使用可能で、それによってあたかも前記回転子のデータが前記インストラクションベースのシフト/回転命令によって元々指定されたシフト値だけ前記反対方向にシフト/回転されたと同じ結果を生成する、C12に記載のプロセッサ。
[C14]前記制御ユニットは、さらに、前記レジスタベースの前記一方向のシフト/回転命令のために前記マルチプレクサによって選択された前記シフト値を前記回転子に供給し、また、前記レジスタベースの前記反対方向のシフト/回転命令のために前記マルチプレクサによって選択された前記シフト値を前記シフト修正ロジックに供給するように構成された、C11に記載のプロセッサ。
[C15]前記ロジックによって生成された変更後の前記シフト値は前記マルチプレクサに戻され、前記マルチプレクサは前記汎用ファイルレジスタもしくは前記パイプラインのいずれかから前記シフト値を選択し、または、前記変更後のシフト値を前記回転子に供給する、C14に記載のプロセッサ。
[C16]前記マルチプレクサに結合された入力と前記ロジック及び前記回転子に結合された出力とを有するラッチをさらに備えた、C15に記載のプロセッサ。
[C17]データを一方向にシフト/回転するように構成された単一方向回転子と、レジスタードベースの反対方向のシフト/回転命令によって指定されたシフト値を変更するように構成されたロジックとを使用し、かつ、変更された前記シフト値は前記回転子のデータを前記一方向にシフト/回転するために使用可能で、それによってあたかも前記回転子中のデータが前記レジスタードベースの命令によって元々指定されたシフト値だけ反対方向にシフト/回転されたと同じ結果を生みだすシフト/回転動作の実行方法であって、前記方法は、レジスタードベースの一方向のシフト/回転命令によって指定されたシフト値を検索することと、前記ロジックをバイパスして、前記検索されたシフト値を前記回転子に供給することと、を備える。
[C18]前記レジスタードベースの前記一方向のシフト/回転命令のシフト値は、前記回転子を含む実行ユニット中のパイプラインの出力ステージ以外のステージから検索される、C17に記載の方法。
[C19]前記レジスタードベースの前記一方向のシフト/回転命令のシフト値は、汎用ファイルレジスタから検索される、C17に記載の方法。
[C20]前記レジスタードベースの前記一方向のシフト/回転命令のシフト値を前記汎用ファイルレジスタから検索するか、前記回転子を含む実行ユニット中のパイプラインの出力ステージ以外のステージから検索するかを決定することをさらに備えた、C17に記載の方法。
[C21]その後に続くレジスタベースの一方向のシフト/回転命令のシフト値を検索することと、前記その後に続くレジスタベースの命令に先行するレジスタベースの反対方向のシフト/回転命令に応答して、前記ロジックによって変更されたシフト値を前記回転子に供給するように決定することと、をさらに含む、C17に記載の方法。
[C22]データを一方向にシフト/回転するように構成されたnビットの単一方向回転子と、レジスタードベースの反対方向のシフト/回転命令によって指定されたシフト値mを変更するように構成されたロジックとを使用し、かつ、変更された前記シフト値は前記回転子のデータを前記一方向に(n-m)だけシフト/回転するために使用可能であるシフト/回転動作の実行方法であって、前記方法は、レジスタードベースの前記一方向のシフト/回転命令によって指定されたシフト値を検索することと、前記ロジックをバイパスして前記検索されたシフト値を前記回転子に供給することと、を備える。
[C23]前記レジスタードベースの前記一方向のシフト/回転命令のシフト値は、前記回転子を含む実行ユニット中のパイプラインの出力ステージ以外のステージから検索される、C22に記載の方法。
[C24]前記レジスタードベースの前記一方向のシフト/回転命令のシフト値は、汎用ファイルレジスタから検索される、C22に記載の方法。
[C25]前記レジスタードベースの前記一方向のシフト/回転命令のシフト値を前記汎用ファイルレジスタから検索するか、前記回転子を含む実行ユニット中のパイプラインの出力ステージ以外のステージから検索するかを決定することをさらに備えた、C22に記載の方法。
[C26]その後に続くレジスタベースの一方向のシフト/回転命令のシフト値を検索することと、前記その後に続くレジスタベースの命令に先行するレジスタベースの反対方向のシフト/回転命令に応じて、前記ロジックによって変更されたシフト値を前記回転子に供給するように決定することとをさらに含む、C22に記載の方法。
Claims (26)
- データを一方向にシフト/回転させるように構成された単一方向回転子と、
レジスタードベースのシフト/回転命令によって指定された反対方向へのシフト値を変更するように構成されたロジックを有し、前記ロジックによって変更されたシフト値は前記データを前記一方向にシフト/回転するために前記回転子によって使用可能で、それによってあたかも前記回転子のデータが前記レジスタードベースの命令によって元々指定されたシフト値だけ前記反対方向にシフト/回転されたと同じ結果を生成する制御ユニットと、
を備え、
前記制御ユニットは、さらに、レジスタベースの命令によって前記データを前記一方向にシフト/回転させるために指定されたシフト値を、前記ロジックをバイパスして前記回転子に供給するように構成された、
プロセッサ。 - パイプライン化された実行ユニットをさらに備え、前記制御ユニットはさらに前記レジスタードベースの命令によって指定された前記シフト値を前記パイプラインの出力ステージ以外のステージから回復するように構成された、請求項1に記載のプロセッサ。
- 汎用レジスタファイルをさらに備え、前記制御ユニットは、前記レジスタベースの命令に応じて前記汎用レジスタファイルもしくは前記パイプラインのいずれかから前記シフト値を選択するマルチプレクサをさらに備えた、請求項2に記載のプロセッサ。
- 前記マルチプレクサは、さらに、前記レジスタベースの命令に応じた前記汎用レジスタファイルからのシフト値、前記レジスタベースの命令に応じた前記パイプラインからのシフト値、インストラクションベースのシフト/回転命令によって指定されたシフト値のうちのいずれかを選択するように構成された、請求項3に記載のプロセッサ。
- 前記インストラクションベースのシフト/回転命令が前記反対方向である場合、前記インストラクションベースのシフト/回転命令によって指定されたシフト値は前記マルチプレクサに供給される前に前記制御ユニットによって変更され、前記インストラクションベースのシフト/回転命令のための前記変更されたシフト値は前記回転子によって前記データを前記一方向にシフト/回転するために使用可能で、それによってあたかも前記回転子のデータが前記インストラクションベースのシフト/回転命令によって元々指定されたシフト値だけ前記反対方向にシフト/回転されたと同じ結果を生成する、請求項5に記載のプロセッサ。
- 前記制御ユニットは、さらに、前記レジスタベースの前記一方向のシフト/回転命令に対する前記マルチプレクサによって選択された前記シフト値を前記回転子に供給し、また、前記レジスタベースの前記反対方向のシフト/回転命令に対する前記マルチプレクサによって選択された前記シフト値を前記ロジックに供給するように構成された、請求項3に記載のプロセッサ。
- 前記ロジックによって生成された変更後の前記シフト値は前記マルチプレクサに戻され、前記マルチプレクサは、前記汎用ファイルレジスタもしくは前記パイプラインのいずれかから前記シフト値を選択し、または、前記変更後のシフト値を前記回転子に供給するように構成された、請求項6に記載のプロセッサ。
- 前記マルチプレクサに結合された入力と前記ロジック及び前記回転子に結合された出力とを有するラッチをさらに備えた、請求項7に記載のプロセッサ。
- データを一方向にシフト/回転させるように構成されたnビットの単一方向回転子と、
レジスタードベースのシフト/回転命令によって指定された反対方向へのシフト値mを変更するように構成されたロジックを有し、前記ロジックによって変更されたシフト値は前記データを前記一方向に(n-m)だけシフト/回転するために前記回転子によって使用可能である制御ユニットと、
を備え、
前記制御ユニットは、さらに、レジスタベースの命令によって前記一方向にシフト/回転させるために指定されたシフト値を、前記ロジックをバイパスして前記回転子に供給するように構成された、
プロセッサ。 - パイプライン化された実行ユニットをさらに備え、前記制御ユニットはさらに前記レジスタードベースの命令によって指定された前記シフト値を前記パイプラインの出力ステージ以外のステージから回復するように構成された、請求項9に記載のプロセッサ。
- 汎用レジスタファイルをさらに備え、前記制御ユニットは、前記レジスタベースの命令に応じて前記汎用レジスタファイルもしくは前記パイプラインのいずれかから前記シフト値を選択するマルチプレクサをさらに備えた、請求項10に記載のプロセッサ。
- 前記マルチプレクサは、さらに、前記レジスタベースの命令に応じた前記汎用レジスタファイルからのシフト値、前記レジスタベースの命令に応じた前記パイプラインからのシフト値、インストラクションベースのシフトもしくは回転命令によって指定されたシフト値のうちのいずれかを選択するように構成された、請求項11に記載のプロセッサ。
- 前記インストラクションベースのシフト/回転命令が前記反対方向である場合、前記インストラクションベースのシフト/回転命令によって指定されたシフト値は、前記マルチプレクサに供給される前に前記制御ユニットによって変更され、前記インストラクションベースのシフト/回転命令のための前記変更されたシフト値は前記回転子によって前記データを前記一方向にシフト/回転するために使用可能で、それによってあたかも前記回転子のデータが前記インストラクションベースのシフト/回転命令によって元々指定されたシフト値だけ前記反対方向にシフト/回転されたと同じ結果を生成する、請求項12に記載のプロセッサ。
- 前記制御ユニットは、さらに、前記レジスタベースの前記一方向のシフト/回転命令のために前記マルチプレクサによって選択された前記シフト値を前記回転子に供給し、また、前記レジスタベースの前記反対方向のシフト/回転命令のために前記マルチプレクサによって選択された前記シフト値を前記シフト修正ロジックに供給するように構成された、請求項11に記載のプロセッサ。
- 前記ロジックによって生成された変更後の前記シフト値は前記マルチプレクサに戻され、前記マルチプレクサは前記汎用ファイルレジスタもしくは前記パイプラインのいずれかから前記シフト値を選択し、または、前記変更後のシフト値を前記回転子に供給する、請求項14に記載のプロセッサ。
- 前記マルチプレクサに結合された入力と前記ロジック及び前記回転子に結合された出力とを有するラッチをさらに備えた、請求項15に記載のプロセッサ。
- データを一方向にシフト/回転するように構成された単一方向回転子と、レジスタードベースの反対方向のシフト/回転命令によって指定されたシフト値を変更するように構成されたロジックとを使用し、かつ、変更された前記シフト値は前記回転子のデータを前記一方向にシフト/回転するために使用可能で、それによってあたかも前記回転子中のデータが前記レジスタードベースの命令によって元々指定されたシフト値だけ反対方向にシフト/回転されたと同じ結果を生みだすシフト/回転動作の実行方法であって、
前記方法は、
レジスタードベースの一方向のシフト/回転命令によって指定されたシフト値を検索することと、
前記ロジックをバイパスして、前記検索されたシフト値を前記回転子に供給することと、
を備える。 - 前記レジスタードベースの前記一方向のシフト/回転命令のシフト値は、前記回転子を含む実行ユニット中のパイプラインの出力ステージ以外のステージから検索される、請求項17に記載の方法。
- 前記レジスタードベースの前記一方向のシフト/回転命令のシフト値は、汎用ファイルレジスタから検索される、請求項17に記載の方法。
- 前記レジスタードベースの前記一方向のシフト/回転命令のシフト値を前記汎用ファイルレジスタから検索するか、前記回転子を含む実行ユニット中のパイプラインの出力ステージ以外のステージから検索するかを決定することをさらに備えた、請求項17に記載の方法。
- その後に続くレジスタベースの一方向のシフト/回転命令のシフト値を検索することと、前記その後に続くレジスタベースの命令に先行するレジスタベースの反対方向のシフト/回転命令に応答して、前記ロジックによって変更されたシフト値を前記回転子に供給するように決定することと、をさらに含む、請求項17に記載の方法。
- データを一方向にシフト/回転するように構成されたnビットの単一方向回転子と、レジスタードベースの反対方向のシフト/回転命令によって指定されたシフト値mを変更するように構成されたロジックとを使用し、かつ、変更された前記シフト値は前記回転子のデータを前記一方向に(n-m)だけシフト/回転するために使用可能であるシフト/回転動作の実行方法であって、
前記方法は、
レジスタードベースの前記一方向のシフト/回転命令によって指定されたシフト値を検索することと、
前記ロジックをバイパスして前記検索されたシフト値を前記回転子に供給することと、
を備える。 - 前記レジスタードベースの前記一方向のシフト/回転命令のシフト値は、前記回転子を含む実行ユニット中のパイプラインの出力ステージ以外のステージから検索される、請求項22に記載の方法。
- 前記レジスタードベースの前記一方向のシフト/回転命令のシフト値は、汎用ファイルレジスタから検索される、請求項22に記載の方法。
- 前記レジスタードベースの前記一方向のシフト/回転命令のシフト値を前記汎用ファイルレジスタから検索するか、前記回転子を含む実行ユニット中のパイプラインの出力ステージ以外のステージから検索するかを決定することをさらに備えた、請求項22に記載の方法。
- その後に続くレジスタベースの一方向のシフト/回転命令のシフト値を検索することと、前記その後に続くレジスタベースの命令に先行するレジスタベースの反対方向のシフト/回転命令に応じて、前記ロジックによって変更されたシフト値を前記回転子に供給するように決定することとをさらに含む、請求項22に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/343,764 US8335810B2 (en) | 2006-01-31 | 2006-01-31 | Register-based shifts for a unidirectional rotator |
US11/343,764 | 2006-01-31 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013103469A Division JP5996484B2 (ja) | 2006-01-31 | 2013-05-15 | 単一方向回転子のためのレジスタベースのシフト |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015144002A true JP2015144002A (ja) | 2015-08-06 |
Family
ID=38050201
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008553490A Pending JP2009525551A (ja) | 2006-01-31 | 2007-01-31 | 単一方向回転子のためのレジスタベースのシフト |
JP2013103469A Expired - Fee Related JP5996484B2 (ja) | 2006-01-31 | 2013-05-15 | 単一方向回転子のためのレジスタベースのシフト |
JP2015042804A Pending JP2015144002A (ja) | 2006-01-31 | 2015-03-04 | 単一方向回転子のためのレジスタベースのシフト |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008553490A Pending JP2009525551A (ja) | 2006-01-31 | 2007-01-31 | 単一方向回転子のためのレジスタベースのシフト |
JP2013103469A Expired - Fee Related JP5996484B2 (ja) | 2006-01-31 | 2013-05-15 | 単一方向回転子のためのレジスタベースのシフト |
Country Status (7)
Country | Link |
---|---|
US (1) | US8335810B2 (ja) |
EP (1) | EP1979807B1 (ja) |
JP (3) | JP2009525551A (ja) |
KR (1) | KR100951743B1 (ja) |
CN (1) | CN101401064B (ja) |
AT (1) | ATE512399T1 (ja) |
WO (1) | WO2007090174A1 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8335810B2 (en) * | 2006-01-31 | 2012-12-18 | Qualcomm Incorporated | Register-based shifts for a unidirectional rotator |
US20090182984A1 (en) * | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Execute Relative Long Facility and Instructions Therefore |
US20090182985A1 (en) * | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Move Facility and Instructions Therefore |
US7870339B2 (en) * | 2008-01-11 | 2011-01-11 | International Business Machines Corporation | Extract cache attribute facility and instruction therefore |
US20090182992A1 (en) * | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Load Relative and Store Relative Facility and Instructions Therefore |
US7739434B2 (en) * | 2008-01-11 | 2010-06-15 | International Business Machines Corporation | Performing a configuration virtual topology change and instruction therefore |
US20090182988A1 (en) * | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Compare Relative Long Facility and Instructions Therefore |
US7895419B2 (en) | 2008-01-11 | 2011-02-22 | International Business Machines Corporation | Rotate then operate on selected bits facility and instructions therefore |
US7734900B2 (en) * | 2008-01-11 | 2010-06-08 | International Business Machines Corporation | Computer configuration virtual topology discovery and instruction therefore |
US9280480B2 (en) | 2008-01-11 | 2016-03-08 | International Business Machines Corporation | Extract target cache attribute facility and instruction therefor |
US20130151820A1 (en) * | 2011-12-09 | 2013-06-13 | Advanced Micro Devices, Inc. | Method and apparatus for rotating and shifting data during an execution pipeline cycle of a processor |
US11157275B2 (en) * | 2018-07-03 | 2021-10-26 | The Board Of Trustees Of The University Of Illinois | Reconfigurable crypto-processor |
US20230176863A1 (en) * | 2021-12-03 | 2023-06-08 | Taiwan Semiconductor Manufacturing Company, Ltd. | Memory interface |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5979495A (ja) * | 1982-10-29 | 1984-05-08 | Toshiba Corp | シフト回路 |
JPH01244527A (ja) * | 1988-03-25 | 1989-09-28 | Nec Corp | 情報処理装置 |
JPH086544A (ja) * | 1993-11-30 | 1996-01-12 | Texas Instr Inc <Ti> | 直交データ変換用回転レジスタ |
JPH09509275A (ja) * | 1995-04-18 | 1997-09-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | パリテイ予測およびストリング制御を有する高速パイプライン・シフタ要素 |
US5751614A (en) * | 1994-03-08 | 1998-05-12 | Exponential Technology, Inc. | Sign-extension merge/mask, rotate/shift, and boolean operations executed in a vectored mux on an ALU |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4437166A (en) * | 1980-12-23 | 1984-03-13 | Sperry Corporation | High speed byte shifter for a bi-directional data bus |
JPH0650462B2 (ja) * | 1986-02-18 | 1994-06-29 | 日本電気株式会社 | シフト数制御回路 |
US5381423A (en) * | 1989-07-25 | 1995-01-10 | Italtel Societa Italiana Telecomunicazioni S.P.A. | Process and device for the decoding of a shortened, cyclic binary code using error correction |
JPH06276520A (ja) * | 1993-03-22 | 1994-09-30 | Sony Corp | 画像処理装置 |
US5640578A (en) * | 1993-11-30 | 1997-06-17 | Texas Instruments Incorporated | Arithmetic logic unit having plural independent sections and register storing resultant indicator bit from every section |
US5649225A (en) | 1994-06-01 | 1997-07-15 | Advanced Micro Devices, Inc. | Resynchronization of a superscalar processor |
JP3543181B2 (ja) * | 1994-11-09 | 2004-07-14 | 株式会社ルネサステクノロジ | データ処理装置 |
US5867681A (en) * | 1996-05-23 | 1999-02-02 | Lsi Logic Corporation | Microprocessor having register dependent immediate decompression |
US6687262B1 (en) | 2000-02-21 | 2004-02-03 | Hewlett-Packard Development Company, L.P. | Distributed MUX scheme for bi-endian rotator circuit |
US20030235298A1 (en) * | 2002-06-25 | 2003-12-25 | Bedros Hanounik | Shifting an encryption key in either a first or second direction via a uni-directional shifting unit |
US7149767B2 (en) * | 2003-05-12 | 2006-12-12 | International Business Machines Corporation | Method and system for determining quotient digits for decimal division in a superscaler processor |
US8335810B2 (en) * | 2006-01-31 | 2012-12-18 | Qualcomm Incorporated | Register-based shifts for a unidirectional rotator |
-
2006
- 2006-01-31 US US11/343,764 patent/US8335810B2/en active Active
-
2007
- 2007-01-31 KR KR1020087021048A patent/KR100951743B1/ko not_active IP Right Cessation
- 2007-01-31 WO PCT/US2007/061414 patent/WO2007090174A1/en active Application Filing
- 2007-01-31 EP EP07717493A patent/EP1979807B1/en not_active Not-in-force
- 2007-01-31 JP JP2008553490A patent/JP2009525551A/ja active Pending
- 2007-01-31 CN CN2007800039851A patent/CN101401064B/zh not_active Expired - Fee Related
- 2007-01-31 AT AT07717493T patent/ATE512399T1/de not_active IP Right Cessation
-
2013
- 2013-05-15 JP JP2013103469A patent/JP5996484B2/ja not_active Expired - Fee Related
-
2015
- 2015-03-04 JP JP2015042804A patent/JP2015144002A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5979495A (ja) * | 1982-10-29 | 1984-05-08 | Toshiba Corp | シフト回路 |
JPH01244527A (ja) * | 1988-03-25 | 1989-09-28 | Nec Corp | 情報処理装置 |
JPH086544A (ja) * | 1993-11-30 | 1996-01-12 | Texas Instr Inc <Ti> | 直交データ変換用回転レジスタ |
US5751614A (en) * | 1994-03-08 | 1998-05-12 | Exponential Technology, Inc. | Sign-extension merge/mask, rotate/shift, and boolean operations executed in a vectored mux on an ALU |
JPH09509275A (ja) * | 1995-04-18 | 1997-09-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | パリテイ予測およびストリング制御を有する高速パイプライン・シフタ要素 |
Also Published As
Publication number | Publication date |
---|---|
US20070180008A1 (en) | 2007-08-02 |
US8335810B2 (en) | 2012-12-18 |
CN101401064B (zh) | 2013-03-06 |
KR20090009780A (ko) | 2009-01-23 |
CN101401064A (zh) | 2009-04-01 |
WO2007090174A1 (en) | 2007-08-09 |
EP1979807B1 (en) | 2011-06-08 |
KR100951743B1 (ko) | 2010-04-08 |
JP2013218708A (ja) | 2013-10-24 |
ATE512399T1 (de) | 2011-06-15 |
JP2009525551A (ja) | 2009-07-09 |
JP5996484B2 (ja) | 2016-09-21 |
EP1979807A1 (en) | 2008-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015144002A (ja) | 単一方向回転子のためのレジスタベースのシフト | |
KR101854520B1 (ko) | 타이트하게 커플링된 이종 컴퓨팅을 위한 하드웨어 프로세서스들 및 방법들 | |
KR101636836B1 (ko) | 명령어들의 고속 실패 핸들링을 위한 장치 및 방법 | |
TWI691897B (zh) | 用以執行融合單一週期遞增-比較-跳越之指令與邏輯 | |
TWI522832B (zh) | 支援密碼學之指令 | |
KR101692914B1 (ko) | Sha256 알고리즘의 메시지 스케줄링을 위한 명령어 세트 | |
KR102478874B1 (ko) | 비순차적 하드웨어 소프트웨어 공동 설계된 프로세서에서 스택 동기화 명령어를 갖는 술어 값의 스택을 구현하고 유지하기 위한 방법 및 장치 | |
JP2011526045A (ja) | ループ制御システムおよび方法 | |
JP2011526045A5 (ja) | ||
WO2009134518A1 (en) | Selectively performing a single cycle write operation with ecc in a data processing system | |
KR20150038377A (ko) | 128 비트 데이터 경로들상에서의 sha1 라운드 처리를 위한 명령어 세트 | |
CN108319559B (zh) | 用于控制矢量内存存取的数据处理装置及方法 | |
EP3238038A1 (en) | Method and apparatus for performing a vector permute with an index and an immediate | |
JP2012503829A (ja) | リニアフィードバックシフト命令を実行するためのシステムおよび方法 | |
CN108292249B (zh) | 用于预留比特的施行的设备和方法 | |
US8707013B2 (en) | On-demand predicate registers | |
KR20170097617A (ko) | 명령어 흐름을 최적화하기 위한 체크를 수행하는 장치 및 방법 | |
WO2013036950A1 (en) | Instruction packet including multiple instructions having a common destination | |
JP5759537B2 (ja) | 命令としてデータ値を評価するシステムおよび方法 | |
US20120110037A1 (en) | Methods and Apparatus for a Read, Merge and Write Register File | |
EP2542963B1 (en) | System and method of processing hierarchical very long instruction packets | |
KR20170099864A (ko) | 마스크 값을 압축하기 위한 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160607 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160907 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20161107 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170221 |