(58)【調査した分野】(Int.Cl.,DB名)
前記マルチプレクサは、さらに、各FIFOキューユニットによって出力された処理結果とバイパス出力サブユニットによって出力された処理結果とを前記レジスタファイルに順次出力するために使用され、前記バイパス出力サブユニットによって出力された処理結果は、前記マルチプレクサから出力される優先度が最も高く、異なるFIFOキューユニットによって出力された処理結果は、前記マルチプレクサから出力される優先度が異なる請求項2に記載のプロセッサ。
前記数量決定モジュールは、さらに、加算器を使用して前記少なくとも2つの処理結果のうち、第1レベルのイネーブル信号を積算して、第1レベルのイネーブル信号の数量を取得し、前記第1レベルのイネーブル信号の数量に基づいて有効な処理結果の数量を決定するために使用され、前記第1レベルは、ハイレベルまたはローレベルである請求項1に記載のプロセッサ。
前記単一入力処理モジュールおよび前記多入力処理モジュールは、多段マルチプレクサを含み、前記多段マルチプレクサは、前記少なくとも2つの処理結果から有効な処理結果を決定するために使用される請求項1に記載のプロセッサ。
前記単一入力処理モジュールおよび前記多入力処理モジュールは、多段マルチプレクサを含み、前記多段マルチプレクサは、前記少なくとも2つの処理結果から有効な処理結果を決定するために使用される請求項7に記載の方法。
【発明の概要】
【課題を解決するための手段】
【0003】
本発明の実施例は、情報処理方法とプロセッサを提案する。
【0004】
第1態様において、本発明の実施例は、算術論理ユニット、バイパスユニット、キューユニット、マルチプレクサ、およびレジスタファイルを含み、バイパスユニットは、データ処理サブユニットを含み、データ処理サブユニットは、算術論理ユニットによって出力された少なくとも1つの有効な処理結果を取得し、少なくとも1つの有効な処理結果から1つの処理結果を決定し、決定された処理結果をマルチプレクサに出力し、少なくとも1つの有効な処理結果のうち、決定された処理結果以外の処理結果をキューユニットに出力するために使用され、ここで、処理結果はイネーブル信号を含み、有効な処理結果はハイレベルのイネーブル信号またはローレベルのイネーブル信号を含み、マルチプレクサは、1つ以上の有効な処理結果をレジスタファイルに順次出力するために使用され、ここで、1つ以上の有効な処理結果は、決定された処理結果と、キューユニットから出力された有効な処理結果とを含むプロセッサに関する。
【0005】
いくつかの実施例において、バイパスユニットは、バイパス出力サブユニットをさらに含み、データ処理サブユニットは、数量決定モジュール、多入力処理モジュールを含み、数量決定モジュールは、1クロック周期内に算術論理ユニットによって出力された少なくとも2つの処理結果のうち、有効な処理結果の数量を決定し、数量が2以上であると決定すると、少なくとも2つの処理結果を多入力処理モジュールに出力するために使用され、多入力処理モジュールは、予め設定された優先度に従って、少なくとも2つの処理結果から、少なくとも2つの有効な処理結果を決定し、少なくとも2つの有効な処理結果から、優先度が最も高い処理結果を決定し、バイパス出力サブユニットに出力するために使用される。
【0006】
いくつかの実施例において、データ処理サブユニットは、単一入力処理モジュールをさらに含み、数量決定モジュールはさらに、数量が1であると決定すると、少なくとも2つの処理結果を単一入力処理モジュールに出力するために使用され、単一入力処理モジュールは、少なくとも2つの処理結果から、1つの有効な処理結果を決定し、1つの有効な処理結果をバイパス出力サブユニットに出力するために使用される。
【0007】
いくつかの実施例において、バイパスユニットは、メイン出力サブユニットをさらに含み、キューユニットは、FIFOキューユニットを含み、多入力処理モジュールはさらに、少なくとも2つの有効な処理結果のうち、優先度が最も高い処理結果以外の他の処理結果をメイン出力サブユニットに出力するために使用され、メイン出力サブユニットは、他の処理結果をFIFOキューユニットに出力するために使用され、FIFOキューユニットは、他の処理結果をバッファリングし、他の処理結果をマルチプレクサに出力するために使用される。
【0008】
いくつかの実施例において、マルチプレクサはさらに、各FIFOキューユニットによって出力された処理結果とバイパス出力サブユニットによって出力された処理結果とをレジスタファイルに順次出力するために使用され、ここで、バイパス出力サブユニットによって出力された処理結果は、マルチプレクサから出力される優先度が最も高く、異なるFIFOキューユニットによって出力された処理結果は、マルチプレクサから出力される優先度が異なる。
【0009】
いくつかの実施例において、数量決定モジュールはさらに、加算器を使用して少なくとも2つの処理結果のうち、第1レベルのイネーブル信号を積算して、第1レベルのイネーブル信号の数量を取得し、第1レベルのイネーブル信号の数量に基づいて有効な処理結果の数量を決定するために使用され、ここで、第1レベルは、ハイレベルまたはローレベルである。
【0010】
いくつかの実施例において、単一入力処理モジュールおよび多入力処理モジュールは、多段マルチプレクサを含み、多段マルチプレクサは、少なくとも2つの処理結果から有効な処理結果を決定するために使用される。
【0011】
第2態様において、本発明の実施例は、上記のいずれかに記載のプロセッサを含むチップに関する。
【0012】
第3態様において、本発明の実施例は、プロセッサのための情報処理方法であって、プロセッサは、算術論理ユニット、バイパスユニット、キューユニット、マルチプレクサ、およびレジスタファイルを含み、バイパスユニットは、データ処理サブユニットを含み、情報処理方法は、データ処理サブユニットは、算術論理ユニットによって出力された少なくとも1つの有効な処理結果を取得し、少なくとも1つの有効な処理結果から1つの処理結果を決定し、決定された処理結果をマルチプレクサに出力し、少なくとも1つの有効な処理結果のうち、決定された処理結果以外の処理結果をキューユニットに出力するステップであって、ここで、処理結果はイネーブル信号を含み、有効な処理結果はハイレベルのイネーブル信号またはローレベルのイネーブル信号を含むステップと、マルチプレクサは、1つ以上の有効な処理結果をレジスタファイルに順次出力するステップであって、ここで、1つ以上の有効な処理結果は、決定された処理結果と、キューユニットから出力された有効な処理結果とを含むステップとを含む方法に関する。
【0013】
いくつかの実施例において、バイパスユニットは、バイパス出力サブユニットをさらに含み、データ処理サブユニットは、数量決定モジュール、多入力処理モジュールを含み、算術論理ユニットによって出力された少なくとも1つの有効な処理結果を取得し、少なくとも1つの有効な処理結果から1つの処理結果を決定するステップは、数量決定モジュールは、1クロック周期内に算術論理ユニットによって出力された少なくとも2つの処理結果のうち、有効な処理結果の数量を決定し、数量が2以上であると決定すると、少なくとも2つの処理結果を多入力処理モジュールに出力するステップと、多入力処理モジュールは、予め設定された優先度に従って、少なくとも2つの処理結果から、少なくとも2つの有効な処理結果を決定し、少なくとも2つの有効な処理結果から、優先度が最も高い処理結果を決定し、バイパス出力サブユニットに出力するステップとを含む。
【0014】
いくつかの実施例において、データ処理サブユニットは、単一入力処理モジュールをさらに含み、算術論理ユニットによって出力された少なくとも1つの有効な処理結果を取得し、少なくとも1つの有効な処理結果から1つの処理結果を決定するステップは、数量決定モジュールは、数量が1であると決定すると、少なくとも2つの処理結果を単一入力処理モジュールに出力するステップと、単一入力処理モジュールは、少なくとも2つの処理結果から、1つの有効な処理結果を決定し、1つの有効な処理結果をバイパス出力サブユニットに出力するステップとをさらに含む。
【0015】
いくつかの実施例において、バイパスユニットは、メイン出力サブユニットをさらに含み、キューユニットは、FIFOキューユニットを含み、方法は、多入力処理モジュールは、少なくとも2つの有効な処理結果のうち、優先度が最も高い処理結果以外の他の処理結果を前記メイン出力サブユニットに出力するステップと、メイン出力サブユニットは、他の処理結果をFIFOキューユニットに出力するステップと、FIFOキューユニットは、他の処理結果をバッファリングし、他の処理結果をマルチプレクサに出力するステップとをさらに含む。
【0016】
いくつかの実施例において、1つ以上の有効な処理結果をレジスタファイルに順次出力するステップは、マルチプレクサは、各FIFOキューユニットによって出力された処理結果とバイパス出力サブユニットによって出力された処理結果とをレジスタファイルに順次出力するステップであって、ここで、バイパス出力サブユニットによって出力された処理結果は、マルチプレクサから出力される優先度が最も高く、異なるFIFOキューユニットによって出力された処理結果は、マルチプレクサから出力される優先度が異なるステップを含む。
【0017】
いくつかの実施例において、1クロック周期内に算術論理ユニットによって出力された少なくとも2つの処理結果のうち、有効な処理結果の数量を決定するステップは、数量決定モジュールは、加算器を使用して少なくとも2つの処理結果のうち、第1レベルのイネーブル信号を積算して、第1レベルのイネーブル信号の数量を取得し、第1レベルのイネーブル信号の数量に基づいて有効な処理結果の数量を決定するステップであって、ここで、第1レベルは、ハイレベルまたはローレベルであるステップを含む。
【0018】
いくつかの実施例において、単一入力処理モジュールおよび多入力処理モジュールは、多段マルチプレクサを含み、多段マルチプレクサは、少なくとも2つの処理結果から有効な処理結果を決定するために使用される。
【0019】
第4態様において、本発明の実施例は、1つ以上のプロセッサと、1つ以上のプログラムが記憶されている記憶装置とを含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されるとき、プロセッサのための情報処理方法のいずれか実施例に記載の方法を1つ以上のプロセッサに実現させる電子機器に関する。
【0020】
第5態様において、本発明の実施例は、コンピュータプログラムが記憶されたコンピュータ可読媒体であって、このコンピュータプログラムがプロセッサによって実行されるとき、プロセッサのための情報処理方法のいずれかの実施例に記載の方法を実現するコンピュータ可読媒体。
【0021】
本発明の実施例に係るプロセッサの技術案において、係るプロセッサは、算術論理ユニット、バイパスユニット、キューユニット、マルチプレクサ、およびレジスタファイルを含み、バイパスユニットは、データ処理サブユニットを含む。当該技術案において、データ処理サブユニットは、算術論理ユニットによって出力された少なくとも1つの有効な処理結果を取得し、少なくとも1つの有効な処理結果から1つの処理結果を決定し、決定された処理結果をマルチプレクサに出力し、少なくとも1つの有効な処理結果のうち、決定された処理結果以外の処理結果をキューユニットに出力するために使用され、ここで、処理結果はイネーブル信号を含み、有効な処理結果はハイレベルのイネーブル信号またはローレベルのイネーブル信号を含む。マルチプレクサは、1つ以上の有効な処理結果をレジスタファイルに順次出力するために使用され、ここで、1つ以上の有効な処理結果は、決定された処理結果と、キューユニットから出力された有効な処理結果とを含む。本発明の実施例は、バイパスユニットによって、プロセッサにおける処理結果のバッファリングプロセスを低減し、プロセッサの処理効率を向上させることができる。同時に、バイパスユニットを使用して有効な処理結果を選択し、無効な処理結果の干渉を低減し、この後の処理結果の利用を容易にする。
【発明を実施するための形態】
【0023】
以下、図面及び実施例を参照して本発明についてより詳細に説明する。ここで説明された具体的な実施例は、関連する発明を説明するためだけのものであり、この発明を制限するものではないことを理解できる。なお、説明を容易にするために、図面には関連する発明に関連する部分のみを示している。
【0024】
なお、矛盾しない場合には、本発明の実施例及び実施例における特徴が互いに組み合わせることができる。以下、図面を参照して、実施例に合わせて本発明を詳細に説明する。
【0025】
図1を参照すると、本発明に係るプロセッサの一実施例が示されている。当該プロセッサは、算術論理ユニット(arithmetic and logic unit、ALU)、バイパスユニット、キューユニット、マルチプレクサ(multiplexer、MUX) 、およびレジスタファイル(Register file)を含み、バイパスユニットは、データ処理サブユニットを含む。
【0026】
データ処理サブユニットは、算術論理ユニットによって出力された少なくとも1つの有効な処理結果を取得し、少なくとも1つの有効な処理結果から1つの処理結果を決定し、決定された処理結果をマルチプレクサに出力し、少なくとも1つの有効な処理結果のうち、決定された処理結果以外の処理結果をキューユニットに出力するために使用され、ここで、処理結果はイネーブル信号を含み、有効な処理結果はハイレベルのイネーブル信号またはローレベルのイネーブル信号を含む。
【0027】
本実施例において、バイパスユニットにおけるデータ処理サブユニットは、演算論理ユニットによって出力された1つまたは2つ以上の有効な処理結果を取得するために使用される。そして、この中から1つの処理結果を決定し、決定された処理結果をマルチプレクサに出力することができる。処理結果の数量が1つ以上の場合、決定された処理結果以外の処理結果を受信した後で、キューユニットは、設定された順番出力の規則(例えば、先入先出)に従って、処理結果をマルチプレクサに出力する。
【0028】
ここで、データ処理サブユニットのマルチプレクサへの処理結果の出力について、直接にマルチプレクサへ出力してもよく、中継点を介してマルチプレクサに転送してもよく、例えば出力用のサブユニットで出力することができる。ここで、取得された有効な処理結果は、ローカルまたは算術論理ユニットから直接に取得されてもよく、レベルの高低に基づいて、選択などにより得られても良い。
【0029】
処理結果はイネーブル信号を含み、イネーブル信号は、処理結果が有効であるか否かを示すために使用されることができる。算術論理ユニットから出力された有効な処理結果は、ハイレベルのイネーブル信号でもローレベルのイネーブル信号でもよい。そして、処理結果には、算術論理ユニットの演算により得られたデータも含まれる。
【0030】
実践では、複数の方法で1つの処理結果を決定することができる。例を挙げると、生成時刻が早い処理結果を選択することができる。予め設定された優先度が最も高い処理結果を選択することもできる。例えば、算術論理ユニット毎に優先度を予め設定し、優先度が最も高い演算論理ユニットから出力された処理結果を優先度が最も高い処理結果としてもよい。
【0031】
なお、上記の演算論理ユニットは、単一の算術論理ユニットであってもよいし、複数の算術論理ユニットのセットであってもよい。上記のキューユニットは、単一のキューユニットであってもよいし、複数のキューユニットのセットであってもよく、例えば、キューユニットがFIFOキューユニットである場合、キューユニットは複数のFIFOキューユニットを含むことができる。
【0032】
上記マルチプレクサは、1つ以上の有効な処理結果をレジスタファイルに順次出力するために使用され、ここで、1つ以上の有効な処理結果は、決定された処理結果と、キューユニットから出力された有効な処理結果とを含む。
【0033】
本実施例において、マルチプレクサは、1つ以上の有効な処理結果から、1つの処理結果を選択し、レジスタファイルに出力することができる。1つ以上の処理結果には、バイパスユニットから上記マルチプレクサに直接入力された上記決定された処理結果が含まれることができる。また、1つ以上の処理結果には、バイパスユニットから直接入力される以外の他の経路から得られる処理結果が含まれることもできる。例を挙げると、1つ以上の処理結果には、プロセッサのキューユニットから上記マルチプレクサに入力する有効な処理結果が含まれることができる。例えば、係るキューユニットは、FIFOキューユニットやLIFOキューユニットなどであってもよい。
【0034】
具体的に、マルチプレクサは、複数の方法で1つの処理結果を選択することができる。例えば、生成時刻が早い処理結果を選択することができ、優先度が最も高い処理結果を選択することもできる。優先度で選択する場合、有効な処理結果を上記マルチプレクサに出力するユニット毎に優先順位を予め設定することができる。この後、処理結果を出力するユニットの優先度に応じて、優先度が最も高い処理結果を選択する。
【0035】
なお、本発明のプロセッサを様々なチップに適用できる。
【0036】
本実施例は、バイパスユニットによって、プロセッサにおける処理結果のバッファリングプロセスを低減し、プロセッサの処理効率を向上させることができる。同時に、バイパスユニットを使用して有効な処理結果を選択し、無効な処理結果の干渉を低減し、この後の処理結果の利用を容易にする。
【0037】
さらに、上記の各図に示された方法の実現として、本発明はプロセッサの別の実施例を提案する。当該プロセッサのバイパスユニットは、バイパス出力サブユニットをさらに含み、データ処理サブユニットは、数量決定モジュール、多入力処理モジュールを含む。
【0038】
数量決定モジュールは、1クロック周期内に算術論理ユニットによって出力された少なくとも2つの処理結果のうち、有効な処理結果の数量を決定し、数量が2以上であると決定すると、少なくとも2つの処理結果を多入力処理モジュールに出力するために使用される。
【0039】
本実施例において、上記数量決定モジュールは、上記算術論理ユニットが1クロック周期内で出力した少なくとも2つの処理結果のうち、有効な処理結果の数量を決定することができる。有効な処理結果の数量が2以上であると決定すると、上記少なくとも2つの処理結果を多入力処理モジュールに出力する。具体的に、数量決定モジュールは、有効な処理結果がハイレベルの処理結果である場合に、ハイレベルの処理結果の数量を決定することができる。有効な処理結果がローレベルの処理結果である場合に、ローレベルの処理結果の数量を決定する。
【0040】
多入力処理モジュールは、少なくとも2つの処理結果から、少なくとも2つの有効な処理結果を決定し、予め設定された優先度に従って、少なくとも2つの有効な処理結果から、優先度が最も高い処理結果を決定し、バイパス出力サブユニットに出力するために使用される。
【0041】
本実施例において、多入力処理モジュールは、上記少なくとも2つの処理結果から、少なくとも2つの有効な処理結果を決定し、予め設定された優先度に従って、少なくとも2つの有効な処理結果から、優先度が最も高い処理結果を決定し、バイパス出力サブユニットに出力することができる。
【0042】
実践では、予め設定された優先度が最も高い処理結果は、生成時刻が最も早い処理結果であってもよい。また、異なる算術論理ユニットによって出力される処理結果は、異なる優先度を持つことができる。多入力処理モジュールは、処理結果を出力する算術論理ユニットの優先度を比較して、優先度が最も高い算術論理ユニットによって出力された処理結果を優先度が最も高い処理結果とすることができる。複数の方法で算術論理ユニットの優先度を決定することができ、例えば、予め設定された算術論理ユニットの番号に基づいて決定することができる。
【0043】
具体的に、多入力処理モジュールに対して対応するコマンドを実行することによって、優先度が最も高い処理結果を決定することができる。また、多入力処理モジュールに優先度配置レジスタを設けることによって、優先度が最も高い処理結果を決定することもできる。
【0044】
本実施例のいくつかの選択可能な実施形態において、データ処理サブユニットは、単一入力処理モジュールをさらに含み、
上記数量決定モジュールは、数量が1であると決定すると、少なくとも2つの処理結果を単一入力処理モジュールに出力するために使用される。
【0045】
これらの選択可能な実施形態において、数量決定モジュールは、処理結果の数量が1であると決定すると、上記の少なくとも2つの有効な処理結果を単一入力処理モジュールに出力する。
【0046】
単一入力処理モジュールは、少なくとも2つの処理結果から、1つの有効な処理結果を決定し、1つの有効な処理結果をバイパス出力サブユニットに出力するために使用される。
【0047】
本実施例において、単一入力処理モジュールは、処理結果におけるイネーブル信号のレベルに基づいて、1つの有効な処理結果を決定することができる。この有効な処理結果をバイパス出力サブユニットに出力する。
【0048】
これらの実施形態のいくつかの選択可能な適用状況において、単一入力処理モジュールおよび多入力処理モジュールは、多段マルチプレクサを含み、多段マルチプレクサは、少なくとも2つの処理結果から有効な処理結果を決定するために使用される。
【0049】
これらの選択可能な適用状況において、上記単一入力処理モジュールは、多段マルチプレクサを含むことができ、多入力処理モジュールは、多段マルチプレクサを含むこともできる。
【0050】
図2には、単一入力処理モジュールの回路構成が示されている。上記少なくとも2つの処理結果から1つの有効な処理結果を決定するために、OR論理があるサブモジュールに多段マルチプレクサを設けることができる。単一入力処理モジュールの出力には、例えばEn0とIn0のようなEnとInのセットが含まれる。
【0051】
図中のEnとInは入力された処理結果であり、Enはイネーブル信号であり、Inは算術論理ユニットから出力された、算術論理ユニットの演算で得られたデータである。同じ番号のEnとInは対応する。このEnとInについての説明は同様に
図3に適用される。
【0052】
図3には、多入力処理モジュールの回路構造が示されている。その中に多段マルチプレクサを設けることができる。同時に、少なくとも2つの有効な処理結果を絞り出すために、デコーダを設けることもできる。例を挙げると、優先度配置レジスタを使用する場合、入力経路の優先度はいくつか予め設定されていてもよい。例えば、配置には、配置1:In0> In1> In2> In3、配置2:In2> In3> In1> In0が含まれる。これらの2つの配置は、デコーダに予め設けられてもよい。優先度配置レジスタによって、優先度配置の一つを決定することができる。配置1を採用する場合、処理結果におけるIn0と処理結果におけるIn1がいずれも有効であれば、優先度の高いIn0およびIn0のイネーブル信号を選択することができる。これらの適用状況は、多入力処理モジュールにおいて異なる優先度選択処理結果を採用でき、より多くのデータ処理ソリューションを提供し、プロセッサの柔軟性を向上させる。
【0053】
本実施例のいくつかの選択可能な実施形態において、数量決定モジュールはさらに、加算器を使用して少なくとも2つの処理結果のうち、第1レベルのイネーブル信号を積算して、第1レベルのイネーブル信号の数量を取得し、第1レベルのイネーブル信号の数量に基づいて有効な処理結果の数量を決定するために使用され、ここで、第1レベルは、ハイレベルまたはローレベルである。ハイレベルのイネーブル信号は処理結果が有効であることを示す場合、ハイレベルのイネーブル信号の数量を積算する。ローレベルのイネーブル信号は処理結果が有効であることを示す場合、ローレベルのイネーブル信号の数量を積算する。
【0054】
これらの選択可能な実施形態において、数量決定モジュールは、加算器を使用して処理結果のうちのハイレベルまたはローレベルのイネーブル信号を加算して、有効なイネーブル信号の数量を取得することができる。ハイレベルとローレベルのどちらのレベルが有効であるかを取得することができる。ハイレベルのイネーブル信号は処理結果が有効であることを示す場合、ハイレベルのイネーブル信号の数量を加算する。ローレベルのイネーブル信号は処理結果が有効であることを示す場合、ローレベルのイネーブル信号の数量を加算する。
【0055】
実践では、数量決定モジュールは、イネーブル信号の数量を処理結果の数量として決定することができる。また、数量決定モジュールは、イネーブル信号の数量に対して予め設定されたデータ処理を行うこともでき、例えば1を加算して処理結果の数量を得る。
【0056】
本実施例は、多入力処理モジュールと単一入力処理モジュールによって、有効な処理結果の数量が異なる場合に、異なる処理結果選択ソリューションを与えることができる。このように、数量が唯一である場合には、演算量の少ない回路構成を採用して演算速度を向上させることができる。数量が多い場合には、より正確な結果を得るために、比較的複雑な回路構造を採用することができる。
【0057】
さらに
図4を参照すると、上記の各図に示された方法の実現として、プロセッサの別の実施例の概略
図400が示されている。
【0058】
バイパスユニットは、メイン出力サブユニットをさらに含み、キューユニットは、FIFO(First Input First Output)キューユニットを含む。
【0059】
多入力処理モジュールはさらに、少なくとも2つの有効な処理結果のうち、優先度が最も高い処理結果以外の他の処理結果をメイン出力サブユニットに出力するために使用される。
【0060】
本実施例において、多入力処理モジュールは、優先度が最も高い処理結果をバイパス出力サブユニットに出力するだけでなく、上記少なくとも2つの処理結果のうちの他の処理結果をメイン出力サブユニットに出力することができる。
【0061】
メイン出力サブユニットは、他の処理結果をFIFOキューユニットに出力するために使用される。
【0062】
本実施例において、メイン出力サブユニットは、多入力処理モジュールから入力された上記他の処理結果をFIFOキューユニットに出力することができる。具体的に、FIFOキューユニットは複数存在し、メイン出力サブユニットは、上記他の処理結果から、各FIFOキューユニットに出力する処理結果を決定することができる。例を挙げると、各FIFOキューユニットは、対応するハードウェア番号を有することができ、番号に従ってFIFOキューユニットに対して処理結果を順次分配することができる。また、各FIFOキューユニットに対して処理結果をランダムに分配することもできる。処理結果の生成時刻、処理結果のメイン出力サブユニットへの入力時刻などに応じて、上記他の処理結果の分配順序を決定することができる。
【0063】
FIFOキューユニットは、他の処理結果をバッファリングし、他の処理結果をマルチプレクサに出力するために使用される。
【0064】
本実施例において、各FIFOキューユニットは、受信した他の処理結果をバッファリングし、そして当該FIFOキューユニットにおいて受信した処理結果のそれぞれを並べる。先入先出の規則に従って、処理結果をマルチプレクサに出力する。出力された処理結果には、受信した他の処理結果が含まれている。
【0065】
本実施例のいくつかの選択可能な実施形態において、マルチプレクサはさらに、各FIFOキューユニットによって出力された処理結果とバイパス出力サブユニットによって出力された処理結果とをレジスタファイルに順次出力するために使用され、ここで、バイパス出力サブユニットによって出力された処理結果は、マルチプレクサから出力される優先度が最も高く、異なるFIFOキューユニットによって出力された処理結果は、マルチプレクサから出力される優先度が異なる。
【0066】
これらの選択可能な実施形態において、マルチプレクサは、各FIFOキューユニットによって出力された処理結果とバイパス出力サブユニットによって出力された処理結果とをレジスタファイルに順次出力することができる。順次出力する際に使用される出力の優先度の規則とは、バイパス出力サブユニットによって出力された処理結果は、マルチプレクサから出力される優先度が最も高く、異なるFIFOキューユニットによって出力された処理結果は、マルチプレクサから出力される優先度が異なるということである。
【0067】
複数の方法で、マルチプレクサから出力する優先度を決定することができる。例を挙げると、各FIFOキューユニットに対し異なる優先度を予め設定し、優先度の高いFIFOキューユニットによって出力された処理結果を優先的にマルチプレクサからレジスタファイルに出力することができる。各FIFOキューユニットのハードウェア番号を当該FIFOキューユニットの優先度とすることも可能である。例えば、番号が小さいほど、優先度が高い。
【0068】
さらに、上記の各図に示された方法の実現として、本発明おいて、上述した任意の実施形態におけるプロセッサを含むチップが提案される。
【0069】
本実施例は、バイパスユニットによって、プロセッサにおける処理結果のバッファリングプロセスを低減し、チップの処理効率を向上させることができる。同時に、バイパスユニットを使用して有効な処理結果を選択し、無効な処理結果の干渉を低減し、この後の処理結果の利用を容易にする。
【0070】
具体的には、このチップは人工知能チップであってもよく、このプロセッサによって処理結果を選択することで、人工知能チップの演算速度を効果的に向上させることができる。
【0071】
図5に示すように、本発明では、プロセッサのための情報処理方法の一実施例が提案され、プロセッサは、算術論理ユニット、バイパスユニット、キューユニット、マルチプレクサ、およびレジスタファイルを含み、バイパスユニットは、データ処理サブユニットを含み、方法は、データ処理サブユニットは、算術論理ユニットによって出力された少なくとも1つの有効な処理結果を取得し、少なくとも1つの有効な処理結果から1つの処理結果を決定し、決定された処理結果をマルチプレクサに出力し、少なくとも1つの有効な処理結果のうち、決定された処理結果以外の処理結果をキューユニットに出力し、ここで、処理結果はイネーブル信号を含み、有効な処理結果はハイレベルのイネーブル信号またはローレベルのイネーブル信号を含むことと、マルチプレクサは、1つ以上の有効な処理結果をレジスタファイルに順次出力し、ここで、1つ以上の有効な処理結果は、決定された処理結果と、キューユニットから出力された有効な処理結果とを含むこととを含む。
【0072】
いくつかの実施形態において、バイパスユニットは、バイパス出力サブユニットをさらに含み、データ処理サブユニットは、数量決定モジュール、多入力処理モジュールを含み、算術論理ユニットによって出力された少なくとも1つの有効な処理結果を取得し、少なくとも1つの有効な処理結果から1つの処理結果を決定することは、数量決定モジュールは、1クロック周期内に算術論理ユニットによって出力された少なくとも2つの処理結果のうち、有効な処理結果の数量を決定し、数量が2以上であると決定すると、少なくとも2つの処理結果を多入力処理モジュールに出力することと、多入力処理モジュールは、予め設定された優先度に従って、少なくとも2つの処理結果から、少なくとも2つの有効な処理結果を決定し、少なくとも2つの有効な処理結果から、優先度が最も高い処理結果を決定し、バイパス出力サブユニットに出力することとを含む。
【0073】
いくつかの実施形態において、データ処理サブユニットは、単一入力処理モジュールをさらに含み、算術論理ユニットによって出力された少なくとも1つの有効な処理結果を取得し、少なくとも1つの有効な処理結果から1つの処理結果を決定することは、数量決定モジュールは、数量が1であると決定すると、少なくとも2つの処理結果を単一入力処理モジュールに出力することと、単一入力処理モジュールは、少なくとも2つの処理結果から、1つの有効な処理結果を決定し、1つの有効な処理結果をバイパス出力サブユニットに出力することとをさらに含む。
【0074】
いくつかの実施形態において、バイパスユニットは、メイン出力サブユニットをさらに含み、キューユニットは、FIFOキューユニットを含み、方法は、多入力処理モジュールは、少なくとも2つの有効な処理結果のうち、優先度が最も高い処理結果以外の他の処理結果をメイン出力サブユニットに出力することと、メイン出力サブユニットは、他の処理結果をFIFOキューユニットに出力することと、FIFOキューユニットは、他の処理結果をバッファリングし、他の処理結果をマルチプレクサに出力することとをさらに含む。
【0075】
いくつかの実施形態において、1つ以上の有効な処理結果をレジスタファイルに順次出力することは、マルチプレクサは、各FIFOキューユニットによって出力された処理結果とバイパス出力サブユニットによって出力された処理結果とをレジスタファイルに順次出力し、ここで、バイパス出力サブユニットによって出力された処理結果は、マルチプレクサから出力される優先度が最も高く、異なるFIFOキューユニットによって出力された処理結果は、マルチプレクサから出力される優先度が異なることを含む。
【0076】
いくつかの実施形態において、1クロック周期内に算術論理ユニットによって出力された少なくとも2つの処理結果のうち、有効な処理結果の数量を決定することは、数量決定モジュールは、加算器を使用して少なくとも2つの処理結果のうち、第1レベルのイネーブル信号を積算して、第1レベルのイネーブル信号の数量を取得し、第1レベルのイネーブル信号の数量に基づいて有効な処理結果の数量を決定し、ここで、第1レベルは、ハイレベルまたはローレベルであることを含む。
【0077】
いくつかの実施形態において、単一入力処理モジュールおよび多入力処理モジュールは、多段マルチプレクサを含み、多段マルチプレクサは、少なくとも2つの処理結果から有効な処理結果を決定するために使用される。
【0078】
本実施例は、バイパスユニットによって、プロセッサにおける処理結果のバッファリングプロセスを低減し、プロセッサの処理効率を向上させることができる。同時に、バイパスユニットを使用して有効な処理結果を選択し、無効な処理結果の干渉を低減し、この後の処理結果の利用を容易にする。
【0079】
以下、
図6を参照し、本発明の実施例を実現するための電子機器のコンピュータシステム600の概略構造図が示されている。
図6に示した電子機器は一例であり、本発明の実施例の機能と使用範囲を限定するものではない。
【0080】
図6に示すように、コンピュータシステム600は、読み出し専用メモリ(ROM)602に記憶されているプログラムまたは記憶部608からランダムアクセスメモリ(RAM)603にロードされたプログラムに従って各種の適切な動作と処理を行うことができる中央処理装置(CPU/GPU)601を含む。RAM603には、システム600の操作に必要な様々なプログラムとデータが記憶されている。CPU601、ROM602、およびRAM603は、バス604によって相互に接続されている。入力/出力(I/O)インターフェース605もバス604に接続されている。
【0081】
I/Oインターフェース605には、キーボード、マウスなどを含む入力部606と、陰極線管(CRT)、液晶ディスプレイ(LCD)、スピーカーなどを含む出力部607と、ハードディスクなどを含む記憶部608と、LANカード、デモジュレータなどのネットワークインターフェースカードを含む通信部609とが接続されている。通信部609は、インターネットのようなネットワークを介して通信処理を行う。ドライバ610も必要に応じてI/Oインターフェース605に接続されている。ディスク、光ディスク、磁気ディスク、半導体メモリなどの着脱可能な媒体611は、必要に応じてドライバ610に取り付けられることにより、そこから読み出されるコンピュータプログラムが必要に応じて記憶部608にインストールされる。
【0082】
特に、本発明の実施例によると、上記のフローチャートを参照して説明されたプロセスは、コンピュータソフトウェアのプログラムとして実現されることができる。例えば、本発明の実施例は、コンピュータ可読媒体に担持されたコンピュータプログラムを含むコンピュータプログラム製品を含み、当該コンピュータプログラムは、フローチャートに示された方法を実行するためのプログラムコードを含む。このような実施例では、このコンピュータプログラムは、通信部609を介してネットワークからダウンロードされてインストールされ、および/または着脱可能な媒体611からインストールされることができる。このコンピュータプログラムが中央処理装置601によって実行されるときに、本発明のシステムで限定された上記の機能を実行する。なお、本発明のコンピュータ可読媒体は、コンピュータ可読信号媒体、あるいはコンピュータ可読記憶媒体、または上記の両方の任意の組合せであってもよい。コンピュータ可読記憶媒体は、例えば、電気、磁気、光、電磁気、赤外線、あるいは半導体のシステム、装置またはデバイス、あるいは上記の任意の組合せであってもよいが、これらに限らない。コンピュータ可読記憶媒体のより具体的な例には、1本以上のワイヤによる電気的接続、携帯型コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、コンパクトディスク読み取り専用メモリ(CD−ROM)、光記憶装置、磁気記憶装置、または上記の任意の組み合わせが含まれるが、これらに限らない。本発明では、コンピュータ可読記憶媒体は、プログラムを含むかまたは記憶する任意の有形の媒体であることができ、このプログラムは、指令実行システム、装置またはデバイスによって使用され、またはそれらと組み合わせて使用されることができる。本発明では、コンピュータが読み取り可能な信号媒体は、コンピュータが読み取り可能なプログラムコードを担持した、ベースバンド内でまたは搬送波の一部として伝播されるデータ信号を含んでもよい。このような伝播されたデータ信号は、多種の形式を採用でき、電磁気信号、光信号、または上記の任意の適切な組み合わせを含むが、これらに限らない。コンピュータが読み取り可能な信号媒体は、コンピュータ可読記憶媒体以外のいかなるコンピュータ可読媒体であってもよく、このコンピュータ可読媒体は、指令実行システム、装置またはデバイスによって使用され、またはそれらと組み合わせて使用されるためのプログラムを送信、伝播または伝送することができる。コンピュータ可読媒体に含まれるプログラムコードは、任意の適切な媒体で伝送されることができ、無線、ワイヤ、光ファイバケーブル、RFなど、または上記の任意の適切な組み合わせを含むが、これらに限らない。
【0083】
図の中のフローチャートおよびブロック図には、本発明の様々な実施例によるシステム、方法とコンピュータプログラム製品の実現可能なアーキテクチャ、機能、および操作が示されている。この点で、フローチャート又はブロック図の各ブロックは、1つのモジュール、プログラミングのセグメント、またはコードの一部を代表でき、このモジュール、プログラミングのセグメント、またはコードの一部は、所定のロジック機能を実現するための1つ以上の実行可能指令を含む。また、いくつかの代替の実施例では、ブロックに示されている機能は、図面に示された順序と異なる順序で発生してもよいことに留意されたい。例えば、連続して示す2つのブロックは実際に並行して実行されてもよく、それらは係る機能に応じて時に逆の順序で実行されてもよい。ブロック図および/またはフローチャートの各ブロック、およびブロック図および/またはフローチャートのブロックの組み合わせは、特定の機能または操作を実行する専用のハードウェアによるシステムによって実現されてもよく、または専用ハードウェアとコンピュータ指令の組み合わせによって実現されてもよいことにも留意されたい。
【0084】
別の態様において、本発明は、コンピュータ可読媒体をさらに提供し、このコンピュータ可読媒体は、上記の実施形例で説明された装置に含まれてもよく、個別に存在しこの装置に組み込まれなくてもよい。上記のコンピュータ可読媒体は、1つ以上のプログラムを担持し、上記の1つ以上のプログラムが一つのこの装置によって実行されたとき、当該装置において、データ処理サブユニットは、算術論理ユニットによって出力された少なくとも1つの有効な処理結果を取得し、少なくとも1つの有効な処理結果から1つの処理結果を決定し、決定された処理結果をマルチプレクサに出力し、少なくとも1つの有効な処理結果のうち、決定された処理結果以外の処理結果をキューユニットに出力し、ここで、処理結果はイネーブル信号を含み、有効な処理結果はハイレベルのイネーブル信号またはローレベルのイネーブル信号を含み、マルチプレクサは、1つ以上の有効な処理結果をレジスタファイルに順次出力し、ここで、1つ以上の有効な処理結果は、決定された処理結果と、キューユニットから出力された有効な処理結果とを含む。
【0085】
上記の説明は、本発明の好ましい実施例および応用された技術の原理の説明にすぎない。本発明に係る発明の範囲が、上記の技術的特徴を組み合わせて得られた技術案に限定されず、同時に上記の発明の概念から逸脱しない場合に、上記の技術的特徴またはこれと同等の技術的特徴を任意に組み合わせて得られた他の技術案を含むべきであることを当業者は理解すべきである。例えば、上記特徴が本発明において開示されているもの(しかしこれに限らず)と類似した機能を有する技術的特徴と相互に入れ替わって形成された技術案が挙げられる。