説明

マイクロプロセッサおよびデータ処理方法

【課題】マイクロプロセッサにおいて、最大値または最小値を求める処理をより高速に実行する。
【解決手段】データ記憶部120はアドレス生成器110が生成した読出アドレスに応じてnビットのデータを出力する。ピーク値候補選択部130は、1データ構成単位のデータを1エレメントとして、上記nビットのデータを構成する複数個のエレメントのうちの最大値をピーク値候補として選択し、該ピーク値候補のエレメント位置を示す位置情報と共に出力する。ピーク値演算部140は、ピーク値候補DBが、ピーク値保持部150に保持されたピーク値DA0より大きいときに、ピーク値候補DBの位置情報と読出アドレスA2を用いてピーク値候補DBのアドレスを算出して、ピーク値候補DBと共にピーク値保持部150に出力し、ピーク値保持部150の保持内容を更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マイクロプロセッサ、具体的にはマイクロプロセッサにおいて、複数のデータのうちの最大値または最小値並びにそのアドレスを求める技術に関する。
【背景技術】
【0002】
マイクロプロセッサが行う種々の処理のうち、メモリなどの記憶手段に格納された複数のデータから最大値または最小値並びにそのアドレスを求める処理があり、この処理を高速に行う手法が研究されている
【0003】
図19は、特許文献1の図1であり、該特許文献1に開示された手法で上記処理を実行するマイクロプロセッサを示している。ここで最小値を求める処理を例にして図19のマイクロプロセッサを説明する。
【0004】
このマイクロプロセッサは、データを記憶した記憶装置2と、アドレス発生回路4と、アドレスポインタ6と、テーブル検索回路10と、入力ポート43と、入力ポート44と、演算器3と、アキュムレータ5を備える。アドレス発生回路4は、読出アドレスを順次生成し、アドレスポインタ6は、読出アドレスを順次記憶装置2に出力する。記憶装置2は、アドレスポイント6からの読出アドレスに格納されたデータを出力する。テーブル検索回路10は、記憶装置2からのデータと共に、アクセスポインタ6から読出アドレスを取り込み、演算器3の片方の入力ポート43の上位ビット格納部43Aにデータを、下位ビット格納部43Bに読出アドレスを入力する。アキュムレータ5は、演算器3の前回の演算結果を格納しており、演算器3の他方の入力ポート44にこの演算結果を入力する。演算器3は、入力ボード43に格納された合成データ(データ+アドレス)と、入力ポート44に格納された前回の演算結果となる合成データとを比較し、小さい方の値を新たな演算結果としてアキュムレータ5に出力する。
【0005】
特許文献1に開示された手法は、データとそのアドレスをそれぞれ上位ビットと下位ビットにして合成データを得、合成データを用いて最小値を求めることによって、最小値とそのアドレスを同時に得ることができ、高速な処理を実現する。
【特許文献1】特開平07−056733号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
マイクロプロセッサの処理量が増加する一途をたどる背景において、処理の高速化に対する要求が高まる一方であり、最大値または最小値を求める処理も例外ではない。特許文献1に開示された手法は、合成データを作成して比較を行うことによって、最大値または最小値およびそれのアドレスを同時に取得できるが、データを1つずつ処理することと、合成データの作成に実行サイクルが必要であることから、高速化の効果が限られている。
【課題を解決するための手段】
【0007】
本発明の1つの態様は、複数のデータのうちの最大値または最小値であるピーク値を取得するピーク値取得処理を実行するマイクロプロセッサである。このマイクロプロセッサは、アドレス生成器と、データ記憶部と、ピーク値候補選択部と、ピーク値保持部と、ピーク値演算部とを備える。
【0008】
アドレス生成器は、読出アドレスを順次生成して出力する。
【0009】
データ記憶部は、アドレス生成器が出力した読出アドレスを起点とするnビットのデータを出力する。
【0010】
ピーク値候補選択部は、1データ構成単位であるmビット(m:アドレス付与単位の整数倍)のデータを1エレメントとして、データ記憶部が出力したnビットのデータを構成する複数個のエレメントのうちのピーク値を有するエレメントをピーク値候補として選択し、該ピーク値候補が上記複数個のエレメントをそれらのアドレス順に配列してなるエレメント列における位置を示す位置情報と共に出力する。
【0011】
ピーク値保持部は、ピーク値演算部の出力を保持するものであり、この出力は、ピーク値と、該ピーク値を有するエレメントのアドレスを含む。
【0012】
ピーク値演算部は、ピーク値候補選択部が出力したピーク値候補とピーク値保持部に保持されたピーク値が、ピーク値取得処理が最大値を取得するか最小値を取得するかに応じた大小関係を満たすことを条件に、ピーク値候補の位置情報と読出アドレスとを用いて該ピーク値候補のエレメントのアドレスを算出すると共に、算出した前記アドレスと前記ピーク値候補を前記ピーク値保持部に出力して該ピーク値保持部の保持内容を更新する。
【0013】
ここで、「ピーク値処理が最大値を取得するか最小値を取得するかに応じた大小関係」とは、最大値を取得する処理の場合には、「ピーク値候補>保持中のピーク値」を意味し、最小値を取得する処理の場合には、「ピーク値候補<保持中のピーク値」を意味する。
【0014】
なお、上記マイクロプロセッサを装置や方法、システム、プログラムに置き換えて表現したものも、本発明の態様として有効である。
【発明の効果】
【0015】
本発明にかかる技術によれば、マイクロプロセッサにおいて、最大値または最小値並びにそのアドレスを求める処理をより高速化できる。
【発明を実施するための最良の形態】
【0016】
本発明の具体的な実施の形態を説明する前に、まず、本発明の原理について説明する。図1は、本発明の原理を説明するためのマイクロプロセッサ100の模式図を示す。なお、本発明の主旨が分かりやすいように、マイクロプロセッサ100について、本発明と関連する部分についてのみ説明および図示し、マイクロプロセッサの通常知られている他の構成要素について省略する。
【0017】
図1に示すように、マイクロプロセッサ100は、アドレス生成器110、データ記憶部120、ピーク値候補選択部130、ピーク値演算部140、ピーク値保持部150を有する。マイクロプロセッサ100は、データ記憶部120に記憶されたデータのうちの最大値または最小値を求めるものであり、以下、説明上の便宜のため、マイクロプロセッサ100が最大値を求める場合を例にする。また、1データ構成単位をmビット(m:アドレス付与単位の整数倍)とすると、マイクロプロセッサ100において、ピーク値候補選択部130は、複数のデータ構成単位のnビットデータを一度に処理する。ここで、例として、アドレス付与単位が8ビットであり、1データ構成単位がアドレス付与単位の2倍の16ビット(m=16)であり、ピーク値候補選択部130は、4つのデータ構成単位の64ビットを一度に処理する。
【0018】
データ記憶部120は、たとえばメモリである。
【0019】
アドレス生成器110は、読出アドレスを順次生成してデータ記憶部120とピーク値演算部140に出力する。アドレス生成器110がデータ記憶部120に出力する読出アドレスA1と、ピーク値演算部140に出力する読出アドレスA2とは必ずしも同じものではない。ここで図2と図3に示すアドレス生成器110がとり得る2つの構成例を用いて説明する。
【0020】
図2に示す例のアドレス生成器110は、連続する複数のデータの先頭アドレスを読出アドレスとして生成するアドレス生成回路112である。この場合、アドレス生成器110がデータ記憶部120に出力する読出アドレスA1と、ピーク値演算部140に出力する読出アドレスA2は、同じである。
【0021】
図3に示す例のアドレス生成器110は、オフセット生成回路114と、ベースアドレス出力回路116と、加算器118を備える。この場合、データ記憶部120に出力される読出アドレスA1は、加算器118が、オフセット生成回路114から出力されたオフセットと、ベースアドレス出力回路116から出力されたベースアドレスとを加算して得たアドレスである。それに対して、ピーク値演算部140に出力されるA2は、オフセット生成回路114から出力されたオフセットのみとすることができる。
【0022】
以下の説明において、特別な説明が無い限り、アドレス生成器がピーク値演算部に出力するアドレスはアドレスそのものとオフセットのいずれでもいいことを意味する。
【0023】
データ記憶部120は、アドレス生成器110が出力する読出アドレスA1を起点とする64ビットのデータDをピーク値候補選択部130に出力する。
【0024】
ピーク値候補選択部130は、図4に示すように、この64ビットのデータをそれらのアドレス順にデータ構成単位の16ビット毎に分け、1データ構成単位の16ビットを1エレメントとして、データDを4つのエレメントD0〜D3として扱う。
【0025】
ピーク値候補選択部130は、2つの処理を行う。1つは、4つのエレメントD0〜D3のうちの最大値をピーク値候補として求める処理であり、もう1つは、ピーク値候補のエレメントが、4つのエレメントをそれらのアドレス順に配列してなるエレメント列における位置を示す情報を求める処理である。以下、この位置をエレメント位置といい、エレメント位置を示す情報を位置情報という。
【0026】
エレメントD0〜D3のアドレス順が、「D0、D1、D2、D3」の順であるため、エレメントの配列順も「D0、D1、D2、D3」となる。エレメント位置は、当該エレメントが「D0、D1、D2、D3」のエレメント列における相対的な位置を意味する。たとえば、D0を起点とする場合は、エレメントD0〜D3のそれぞれの位置情報を「0」、「1」、「2」、「3」とすることができ、D3を起点とする場合は、エレメントD0〜D3のそれぞれの位置情報を「3」、「2」、「1」、「0」とすることができる。ここでD0が起点である場合を例にする。
【0027】
ピーク値候補選択部130は、ピーク値候補となるエレメントDB、および該エレメントDBの位置情報PBをピーク値演算部140に出力する。
【0028】
ピーク値演算部140は、ピーク値候補選択部130から出力されたピーク値候補DBと、ピーク値保持部150に保持されたピーク値のエレメントDA0とを比較する。なお、ピーク値保持部150は、ピーク値演算部140の演算結果を保持するものであり、ピーク値DA0と、該ピーク値DA0のエレメントのアドレスPA0とを格納している。
【0029】
ピーク値演算部140は、ピーク値候補選択部130が出力したピーク値候補DBが、ピーク値保持部150に格納されたピーク値DA0以下である場合には、ピーク値保持部150から読み出した内容(ピーク値DA0とそのアドレスPA0)をそのまま新たなピーク値およびそのアドレス(DA1、PA1)としてピーク値保持部150に出力する。一方、ピーク値候補選択部130が出力したピーク値候補DBが、ピーク値保持部150に保持されたピーク値DA0より大きい場合には、ピーク値演算部140は、ピーク値候補DBを新たなピーク値DA1としてピーク値保持部150に出力すると共に、アドレス生成器110が出力した、今回の4つのエレメントを読み出すための読出アドレスA2と、ピーク値候補DBの位置情報PBとを用いて、下記の式(1)に従って新たなピーク値DA1(DB)のアドレスPA1を求めてピーク値保持部150に出力する。これにより、ピーク値保持部150の保持内容が更新される。
【0030】
PA1=A2+PB×(データ構成単位/アドレス付与単位) (1)
但し,PA1:新たなピーク値のアドレス
A2:読出アドレス
PB:新たなピーク値の位置情報
【0031】
ここの例では、データ構成単位が16ビットであり、アドレス付与単位が8ビットであるため、例えば、図4に示すエレメントD2がピーク値DA0として選択された場合には、そのアドレスPA1が「読出アドレスA2+2×2」となる。
【0032】
なお、上記式(1)における「位置情報PB×(データ構成単位/アドレス付与単位)」の演算は、ピーク値候補選択部130がピーク値候補DBを選択して、該ピーク値候補DBの位置情報PBを出力する際に行ってもよいが、ピーク値演算部140がピーク値候補DBを新たなピーク値として決定した際に行うことが好ましい。こうすることによって、ピーク値候補DBではなく、ピーク値保持部150に格納されたピーク値DA0が新たなピーク値として決定された場合にこの演算をしなくてよいので、効率が良い。
【0033】
上述した処理が繰り返され、データ記憶部120に記憶された、最大値を求める範囲内のデータの処理が完了したときに、ピーク値保持部150には、最大値およびそのアドレスが格納される。なお、このアドレスも、アドレスそのものであってもよいし、オフセットであってもよい。
【0034】
以上、最大値を求める処理を例にして説明したが、勿論、最小値を求める処理を実行するマイクロプロセッサ、最大値と最小値の両方を求める処理を実行するマイクロプロセッサにも本発明の原理を適用できる。
【0035】
ここで、特許文献1の手法で一度に複数のデータすなわち複数のデータ構成単位のデータを処理する場合について考える。この場合、複数個のデータとそのアドレスで複数個の合成データを作成し、複数個の合成データからピーク値を求めて順次更新する方法が考えられる。この方法では、各データの合成データを作成する必要があるため、一度に処理するデータの数が多いほど、合成データを作成するために必要な実行サイクル数も多くなる。たとえば、4つのデータを一度に処理する場合、先頭のデータのアドレスがアドレスポインタから得られるとして、後続の3つのデータに対して加算処理などによってアドレスを求める処理が必要である。そのため、一度に複数のデータを並列に処理することにより得られるメリットを弱めてしまい、確実に処理を高速化できるとは限らないという問題がある。
【0036】
さらに、各合成データがデータとそのアドレスから構成されるため、複数の合成データを一時的に格納する記憶手段の容量も大きくなるという問題がある。
【0037】
本発明に基づく技術によれば、複数のデータ構成単位の分のデータを一度に読み出し、これらのデータを構成する各エレメントのうちの最大値をピーク値候補として求めると共に、ピーク値候補が新たな最大値として決定された際に、ピーク値候補の位置情報と読出アドレスからそのアドレスを求める。こうすることによって、一度に複数のデータ構成単位分のデータを処理することができると共に、求められた最大値のアドレスも簡単に取得でき、また、アドレスの算出は、ピーク値として決定されたピーク値候補に対してのみ行われるので、特許文献1の手法より、少ない実行サイクル数で最大値を求める処理ができる。
【0038】
さらに、各エレメントは、データそのものであり、アドレスが含まれていないため、ピーク値候補選択部130の必要な記憶容量も少なくても済む。
【0039】
以上の説明を踏まえて、本発明の原理を具現化した実施の形態を説明する。なお、以下の説明において、読出アドレス、エレメント、エレメント位置、位置情報、読出アドレスと位置情報からアドレスを求める方法などについて、上述したのと同じであるため、それらについて詳細な説明を省略する。また、アドレス付与単位、データ構成単位、一度に処理するデータのビット数を上記と同じように、それぞれ「8ビット」、「16ビット」、「64ビット」を例にする。
<第1の実施の形態>
【0040】
図5は、本発明の第1の実施形態にかかるマイクロプロセッサ200を示す。マイクロプロセッサ200は、最大値と最小値のいずれか一方または両方を求めるものであってもよいが、分かりやすいように、最大値を求めるものを例にして説明する。図示のように、マイクロプロセッサ200は、アドレス生成器210と、メモリ220と、ピーク値候補選択部230と、ピーク値演算部280と、ピーク値保持部290を備える。
【0041】
アドレス生成器210は、オフセット生成回路214と、ベースアドレス出力回路216と、加算器218を有する。オフセット生成回路214は、オフセットを順次生成して加算器218と、ピーク値演算部280に出力する。
【0042】
加算器218は、オフセット生成回路214からのオフセットと、ベースアドレス出力回路216からのベースアドレスとを加算して読出アドレスを得、該読出アドレスをメモリ220に出力する。
【0043】
メモリ220は、複数のデータX[0]、X[1]、・・・を格納している。1つのデータはアドレス付与単位の8ビットの2倍の16ビットである。メモリ220は、アドレス生成器210からの読出アドレスを起点とする64ビットすなわち4つのデータを出力する。
【0044】
ピーク値候補選択部230は、メモリ220からの4つのデータを入力Inとして取り込み、それらのうちの最大値を求めてOut2として出力する。また、ピーク値候補選択部230は、Inの4つのデータをそれぞれエレメントとして、最大値として求められたOut2のエレメント位置を示す情報すなわち位置情報をOut1として出力する。
【0045】
ピーク値保持部290は、第1の記憶部292と、第2の記憶部294を備え、ピーク値演算部280が求めた最大値とそのオフセットをそれぞれ保持している。
【0046】
ピーク値演算部280は、アドレス生成器210からのオフセットと、ピーク値候補選択部230からの最大値候補Out2および最大値候補Out2の位置情報Out1、第1の記憶部292に保持された最大値と、第2の記憶部294に保持された最大値のエレメントのオフセットをそれぞれ入力In5、In4、In3、In2、In1として、In4(最大値候補)とIn2(第1の記憶部292に保持されている最大値)のうちの大きいほうを新たな最大値Out2として第1の記憶部292に出力する。また、ピーク値演算部280は、新たな最大値Out2がIn2である場合には、In1をOut1として第2の記憶部294に出力する一方、新たな最大値Out2がIn4である場合には、アドレス生成器210からのオフセット(In5)と、In3(最大値候補の位置情報)とを用いて最大値候補のオフセットを求めてOut1として第2の記憶部294に出力する。
【0047】
ピーク値候補選択部230とピーク値演算部280の詳細構成を説明する。
図6は、ピーク値候補選択部230を示す。ピーク値候補選択部230は、第1の演算回路240と、第2の演算回路250と、第3の演算回路260と、乗算器270を有する。
【0048】
第1の演算回路240は、入力Inを構成する4つのエレメントIn[0]〜In[3]のうちのIn[3]とIn[2]を入力In2とIn1とし、2つの入力のうちの大きいエレメントとその位置情報をそれぞれ出力Out2とOut1として出力する。
【0049】
第2の演算回路250は、入力Inを構成する4つのエレメントIn[0]〜In[3]のうちのIn[1]とIn[0]を入力In2とIn1とし、2つの入力のうちの大きいエレメントとその位置情報をそれぞれ出力Out2とOut1として出力する。
【0050】
第3の演算回路260は、第1の演算回路240の2つの出力Out2とOut1、および第2の演算回路250の2つの出力Out2とOut1を入力In4、In3、In2、In1とし、In4とIn2のうちの大きい方を最大値候補として選択して、ピーク値候補選択部230の出力Out2として出力する。また、ピーク値候補選択部230は、In4が最大値候補として選択されたときには、その位置情報In3を出力Out1として乗算器270に出力する一方、In2が最大値候補として選択されたときには、その位置情報In1を出力Out1として乗算器270に出力する。
【0051】
乗算器270は、第3の演算回路260から出力したOut1(位置情報)と「データ構成単位(エレメントのビット数)/アドレス付与単位」とを乗算する。本実施の形態の例では、データ構成単位が16ビットであり、アドレス付与単位が8ビットであるため、乗算器270は、第3の演算回路260から出力したOut1に「2」を乗算する。
乗算器270は、乗算結果をピーク値候補選択部230の出力Out1として出力する。なお、乗算器270は、第3の演算回路260の出力Out1に「2」を乗算することができる従来の回路で構成することができ、乗算器そのものであってもよいし、左シフト器、演算器などであってもよい。
【0052】
図7は、第1の演算回路240を示す。第1の演算回路240は、4つのエレメントIn[0]〜In[3]のうちの先頭の2つのエレメント(In[0]とIn[1])をそれぞれ入力In1とIn2とし、比較回路242と、セレクタ246と、セレクタ248を備える。比較回路242は、入力In1とIn2を比較し、比較の結果を示す信号を2つのセレクタに出力する。具体的には、たとえばIn2>In1の場合には「ハイ」を出力し、In2≦In1の場合には「ロウ」を出力する。セレクタ246は、比較回路242からIn2>In1を示す「ハイ」を受信するとIn2を選択してOut2として出力する一方、「ロウ」を受信するとIn1をOut2として出力する。また、セレクタ248は、比較回路242からIn2>In1を示す「ハイ」を受信するとIn2の位置情報「1」をOut1として出力する一方、「ロウ」を受信するとIn1の位置情報「0」をOut1として出力する。
【0053】
図8は、第2の演算回路250を示す。第2の演算回路250は、4つのエレメントIn[0]〜In[3]のうちの後部の2つのエレメント(In[2]とIn[3])を入力In1とIn2とし、比較回路252と、セレクタ256と、セレクタ258を備える。比較回路252は、入力In1とIn2を比較し、比較の結果を示す信号を2つのセレクタに出力する。具体的には、たとえばIn2>In1の場合には「ハイ」を出力し、In2≦In1の場合には「ロウ」を出力する。セレクタ256は、比較回路252からIn2>In1を示す「ハイ」を受信するとIn2を選択してOut2として出力する一方、「ロウ」を受信するとIn1をOut2として出力する。また、セレクタ258は、比較回路252からIn2>In1を示す「ハイ」を受信すると「1」をOut1として出力する一方、「ロウ」を受信すると「0」をOut1として出力する。
【0054】
図9は、第3の演算回路260を示す。第2の演算回路250の出力Out2とOut1、第1の演算回路240の出力Out2とOut1を入力In4、In3、In2、In1とし、比較回路262と、加算器264と、セレクタ266と、セレクタ268を備える。比較回路262は、エレメントであるIn4とIn2を比較し、比較の結果を示す信号を2つのセレクタに出力する。具体的には、たとえばIn4>In2の場合には「ハイ」を出力し、In4≦In2の場合には「ロウ」を出力する。セレクタ266は、比較回路262からIn4>In2を示す「ハイ」を受信するとIn4を選択してOut2として出力する一方、「ロウ」を受信するとIn2をOut2として出力する。また、セレクタ268は、比較回路262からIn4>In2を示す「ハイ」を受信すると、加算器264によるIn3と「2」の加算結果をIn4の位置情報(「2」または「3」)としてOut1に出力一方、「ロウ」を受信するとIn2の位置情報In1(「0」または「1」)をOut1に出力する。
【0055】
図10は、ピーク値演算部280を示す。ピーク値演算部280は、アドレス生成器210からのオフセット、ピーク値候補選択部230からの最大値候補およびその位置情報、第1の記憶部292からの最大値、および第2の記憶部294からのオフセットを入力In5、In4、In3、In2、In1とする。ピーク値演算部280は、比較回路282と、加算器284と、セレクタ286と、セレクタ286を備える。
【0056】
比較回路282は、入力In4(最大値候補)とIn2(保持中の最大値)を比較し、比較の結果を示す信号を2つのセレクタに出力する。具体的には、たとえばIn4>In2の場合には「ハイ」を出力し、In4≦In2の場合には「ロウ」を出力する。セレクタ286は、比較回路282からIn4>In2を示す「ハイ」を受信するとIn4を選択してOut2として出力する一方、「ロウ」を受信するとIn2をOut2として出力する。また、セレクタ288は、比較回路282からIn4>In2を示す「ハイ」を受信すると、加算器284によるIn3(最大値候補の位置情報)とIn5(アドレス生成器210からのオフセット)の加算結果をOut1に出力し、「ロウ」を受信するとIn1の値をOut1に出力する。
【0057】
なお、上記の各構成要素における比較回路は、比較器、演算器、加算器、加減算器などの組合せで構成される。
【0058】
ここで図11に示す8つのデータから最大値を求める具体例を用いて、マイクロプロセッサ200の処理を詳細に説明する。これらの8つのデータは、それぞれ16ビットであり、先頭のアドレスがFFF0100である。また、最大値の「0100h」がアドレス「FFF010Ah」に格納されており、マイクロプロセッサ200は、最大値の「0100h」とそのオフセットを求める。ここで、ベースアドレスをFFFF0100hとすると、マイクロプロセッサ200の処理結果は、最大値の「0100h」とそのオフセットの「000Ah」となるはずである。
【0059】
図12と図13は、処理の進行に伴い、マイクロプロセッサ200における各構成要素の出力内容や、格納内容の変化を示す。まず、図12から説明する。
【0060】
図12に示すように、メモリ220は、図11に示す8つのデータを格納している。また、第1の記憶部292は、16ビットの符号付きの数の最小値となる「8000h」を最大値として格納しており、第2の記憶部294は、「0000h」をそのオフセットの初期値として格納している。アドレス生成器210のベースアドレス出力回路216は、ベースアドレス「FFFF0100h」を格納している。
【0061】
処理の開始にあたり、アドレス生成器210におけるオフセット生成回路は、オフセット「0000h」を生成してピーク値演算部280と加算器218に出力する。
【0062】
加算器218がメモリ220に出力する読出アドレスがFFFF0100hとなり、これは、メモリ220に格納された8つのデータの先頭アドレスである。
【0063】
従って、メモリ220に格納された8つのデータのうちの先頭の4つ(図中太枠で囲まれた部分)がピーク値候補選択部230に読み出される。
【0064】
ピーク値候補選択部230は、この4つのデータのうちの最大値を求めて、その位置情報と共に出力する。この4つのデータのうちの最大値が「0080h」であり、位置情報が「2」であるため、ピーク値候補選択部230は、Out2に「0080h」、Out1に「0004h」を出力する。
【0065】
ピーク値演算部280は、In4とIn2を比較した結果、In4の「0080h」をOut2として第1の記憶部292に出力する。また、ピーク値演算部280は、In5のオフセットと、In4の位置情報(In3)とを加算して「0080h」のオフセットを得、このオフセットをOut1として第2の記憶部294に出力する。ここで、In5のオフセットが「000h」であるため、ピーク値演算部280が出力したオフセットOut1はIn3の「0004h」となる。
このようにして、第1の記憶部292と第2の記憶部294の保持内容が更新される。
【0066】
図13に移って続きを説明する。図13に示すように、1回目の処理によって、第1の記憶部292には最大値「0080h」が格納され、第2の記憶部294には、該最大値のオフセット「0004h」が格納される。そこで、アドレス生成器210は、次の4つのデータを処理するために次のオフセット「0008h」を生成してピーク値演算部280と加算器218に出力する。
【0067】
加算器218がメモリ220に出力する読出アドレスがFFFF0108hとなり、これは、メモリ220に格納された8つのデータの後部の4つのデータの先頭アドレスである。
【0068】
従って、メモリ220に格納されたこれらの4つのデータ(図中太枠で囲まれた部分)がピーク値候補選択部230に読み出される。
【0069】
この4つのデータのうちの最大値が「0100h」であり、位置情報が「1」であるため、ピーク値候補選択部230は、Out2に「0100h」、Out1に「0002h」を出力する。
【0070】
ピーク値演算部280は、In4(「0100n」)とIn2(「0080h」)を比較した結果、In4の「0100h」をOut2として第1の記憶部292に出力する。また、ピーク値演算部280は、In5のオフセットと、In4の位置情報(In3)とを加算して「0100h」のオフセットを得、このオフセットをOut1として第2の記憶部294に出力する。ここで、In5のオフセットが「0008h」であるので、ピーク値演算部280が出力したオフセットOut1は「000Ah」となる。
【0071】
これにより、目標となる最大値「0100h」が第1の記憶部292に格納され、そのオフセット「000Ah」が第2の記憶部294に格納される。
【0072】
本実施の形態のマイクロプロセッサ200は、本発明の原理を具現化したものであるため、原理の説明時に述べた効果を得ることができる。
<第2の実施の形態>
【0073】
図14は、本発明の第2の実施の形態にかかるマイクロプロセッサ300を示す。マイクロプロセッサ300は、制御回路302と、アドレス生成器310と、メモリ320と、バッファ(以下BUFという)324と、ピーク値候補選択部330と、ピーク値演算部380と、レジスタファイル390を備える。
【0074】
アドレス生成器310とメモリ320は、第1の実施の形態のマイクロプロセッサのアドレス生成器210とメモリ220と同じ構成であるので、ここで説明を省略する。
【0075】
制御回路302は、図示しないCPU(Central Processing Unit)からの命令(最大値を求める命令または最小値を求める命令)を解読し、命令に応じた処理をピーク値候補選択部330とピーク値演算部380に行わせると共に、レジスタファイル390に対して読み出すレジスタを指定する。
【0076】
BUF324は、オフセット生成回路314とピーク値演算部380との間に設けられ、オフセット生成回路314からピーク値演算部380に出力するオフセットを一時的に格納する。また、BUF324は、レジスタにより構成することができ、単一のレジスタであってもよいし、レジスタファイルのように複数のレジスタで構成されたものであってもよい。なお、BUF324が複数のレジスタで構成された場合には、命令のオペランドでアドレス生成器310から出力されたオフセットの格納先のレジスタを指定するようにすればよい。
【0077】
レジスタファイル390は、最大値または最小値を求めるためのレジスタファイルであり、複数の64ビット幅のレジスタから構成される。レジスタファイル390は、ピーク値演算部380の演算結果を一時的に格納するピーク値保持部として機能するレジスタ以外に、メモリ320から読み出したデータをピーク値候補選択部330に渡す前に一旦格納するレジスタを備える。
【0078】
ピーク値候補選択部330は、レジスタファイル390から読み出した4つのデータのピーク値(最大値を求める場合には4つのデータのうちの最大値、最小値を求める場合には4つのデータのうちの最小値)を選択してピーク値候補としてOut2に出力すると共に、「ピーク値候補の位置情報×2」をOut1に出力する。
【0079】
ピーク値演算部380は、BUF324を介してアドレス生成器310が出力したオフセット、ピーク値候補選択部330の出力Out2とOut1、レジスタファイル390に記憶されたピーク値およびそのオフセットをそれぞれ入力In5、In4、In3、In2、In1として、まず、In4とIn2を比較する。
【0080】
比較の結果、In4とIn2が、最大値を求めるか最小値を求めるかに応じた大小関係を満たすときに、ピーク値演算部380は、In4(ピーク値候補)を新たなピーク値として決定する。この場合、ピーク値演算部380は、さらに、In3とオフセットIn5とを用いてIn4のオフセットを求める。
【0081】
一方、In4とIn2が、上記大小関係を満たさないときには、ピーク値演算部380は、In2とIn1をそれぞれ新たなピーク値と、新たなピーク値のオフセットに決定する。
【0082】
なお、In4とIn2の「最大値を求めるか最小値を求めるかに応じた大小関係」とは、最大値を求める場合には「In4>In2」を意味し、最小値を求める場合には「In4<In2」を意味する。
【0083】
ピーク値候補選択部330とピーク値演算部380の具体的の構成について、第1の実施の形態のマイクロプロセッサ200の相対応するものと同じとすることができ、ここで詳細な説明を省略する。
【0084】
ここで、CPUからの命令が「最大値を求める」ものである場合を例として、図14に示すマイクロプロセッサ300における処理を具体的に説明する。
【0085】
ここも、図11に示す8つのデータを例にし、1回目の処理すなわち先頭の4つのデータ「0001h」、「0002h」、「0080h」、「0004」に対する処理が終わった段階から説明する。
【0086】
次に処理する4つのデータを取得するために、例えばロード命令を実行してメモリ320に格納された次の4つのデータをメモリ320からレジスタファイル390に格納する。図15を参照してこのロード命令での動作を説明する。アドレス生成器310におけるオフセット生成回路314は、オフセット「0008h」を生成して、BUF324に格納する。加算器318は、オフセット生成回路314が生成したオフセット「0008h」と、ベースアドレス出力回路316が出力したベースアドレス「FFFF0100h」とを加算して読出アドレス「FFFF01008h」を得、この読出アドレスをメモリ320に出力する。これにより、メモリ320に格納された次の4つのデータ(図中太線枠で囲まれた部分)は、メモリ320からレジスタファイル390におけるレジスタR1に格納される。
【0087】
図15に示すように、最大値を求める場合にCPUからの命令は(MAX R1,R0)であり、「MAX」は、「最大値を求める」ことを指示し、「R1」と「R0」は、メモリ320から読み出す4つのデータを格納するレジスタと、ピーク値演算部380の演算結果を格納するレジスタとをそれぞれ指定する。
【0088】
なお、前回の4つのデータに対する処理の結果、最大値の「0080h」とそのオフセット「0004h」も、レジスタファイル390における、CPUからの命令により指定されたレジスタR0に格納されている。
【0089】
なお、最大値およびそのオフセットとも16ビットですが、それぞれ32ビットまで符号拡張またはゼロ拡張がなされてレジスタR0の上位32ビットと下位32ビットにそれぞれ格納されている。
【0090】
ピーク値候補選択部330は、レジスタR1に格納された4つのデータを読み出して最も大きいデータを最大値候補として選択してOut2に出力すると共に、「最大値候補の位置情報×2」をOut1に出力する。図示のように、レジスタR1に格納された4つのデータが「0009h」、「0008h」、「「0100h」、「0005h」であり、それぞれの位置情報が「3」、「2」、「1」、「0」であるため、ピーク値候補選択部330から、最大値候補「0100h」と、その位置情報「1」の2倍である「0002h」は出力される。
【0091】
なお、ピーク値候補選択部330も、Out2とOut1をそれぞれ32ビットにゼロ拡張または符号拡張して64ビットのデータを出力する。図示のように、ピーク値候補選択部330は、「0000h、0100h、0000h、0002h」の64ビットを出力する。
【0092】
ピーク値演算部380は、ピーク値候補選択部330の出力における上位32ビットであるIn4(最大値候補)と、レジスタR0から読み出した64ビットの上位32ビットIn2(保持中の最大値)とを比較し、In4>In2の場合には、In4を新たな最大値として、In3(「0002h」)とBUF324に格納されたオフセットIn5(「0008h」)とを用いてオフセットを求めて、In4と共に新たな値としてレジスタR0に書き込む。また、In4≦In2の場合には、ピーク値演算部380は、In2とそのオフセットIn1をレジスタR0に書き込む。
【0093】
ここの例では、In4が「0100h」であり、In2が「0080h」であるため、In4の「0100h」は最大値として決定され、そのオフセットとして「000Ah」が算出される。
【0094】
ピーク値演算部380も、最大値とそのオフセットをそれぞれ32ビットにゼロ拡張または符号拡張して、上位32ビットが最大値であり、下位32ビットがオフセットとなる「0000h、0100h、0000h、000Ah」の64ビットのデータをレジスタR0に書込む。
【0095】
これにより、目標となる最大値「0100h」とそのオフセットがレジスタR0の上位32ビットと下位32ビットにそれぞれ格納される。
【0096】
本実施の形態のマイクロプロセッサ300も、第1の実施の形態のマイクロプロセッサ200と同じ効果を得ることができる。
【0097】
また、アドレス生成器310とピーク値演算部380の間にBUF324を設けてオフセット生成回路314が出力したオフセットを一時的に格納し、メモリ320とピーク値候補選択部330の間にレジスタファイル390を設けてメモリ320から読み出されたデータを一時的に格納することによって、パイプライン処理を実行するマイクロプロセッサなど、待ち時間が生じることがある場合でも破綻せずに処理できる。
【0098】
また、ピーク値演算部380の演算結果を記憶するピーク値保持部と、メモリ320から読み出したデータを格納する記憶部とが1つのレジスタファイル390を共有するように構成しているので、簡単な制御が可能である。
<第3の実施の形態>
【0099】
図16は、本発明の第3の実施の形態にかかるマイクロプロセッサ400を示す。マイクロプロセッサ400は、制御回路402と、アドレス生成器410と、メモリ420と、BUF424と、ピーク値候補選択部430と、ピーク値演算部480と、レジスタファイル490を備える。
【0100】
アドレス生成器410、メモリ420、BUF424は、第2の実施の形態のマイクロプロセッサ300における相対応する機能要素と同一であるので、ここで説明を省略する。
【0101】
制御回路402は、第2の実施の形態のマイクロプロセッサ200における制御回路302が行う処理以外に、セレクタ498の制御も行う。
【0102】
レジスタファイル490は、第2の実施の形態のマイクロプロセッサ200におけるレジスタファイル390と同じように、メモリ420から読み出したデータをピーク値候補選択部430に出力する前に一時的に格納するレジスタと、ピーク値演算部480の演算結果を格納するレジスタを備える。さらに、レジスタファイル490は、ピーク値候補選択部430の出力を一時的に格納するレジスタを備える。
【0103】
ピーク値候補選択部430は、マイクロプロセッサ200におけるピーク値候補選択部330と同じ処理を行うが、出力Out2(ピーク値候補)とOut1(ピーク値候補の位置情報×2)をピーク値演算部480に出力せず、セレクタ498に出力する。
【0104】
ピーク値演算部480は、マイクロプロセッサ200におけるピーク値演算部380と同じ処理を行うが、出力Out2(新たなピーク値)と出力Out1(新たなピーク値のオフセット)を直接レジスタファイル490内の当該レジスタに直接出力せず、セレクタ498に出力する。
【0105】
セレクタ498は、制御回路402の制御に従って、ピーク値候補選択部430の出力とピーク値演算部480の出力を選択してレジスタファイル490に出力する。具体的には、ピーク値候補選択部430による処理がなされ、出力Out2(ピーク値候補)とOut1(ピーク値候補の位置情報×2)が得られたときにピーク値候補選択部430の出力をレジスタファイル490に出力する。その後、ピーク値演算部480による処理がなされ、出力Out2(新たなピーク値)と出力Out1(新たなピーク値のオフセット)が得られたときにピーク値演算部480の出力をレジスタファイル490に出力する。
【0106】
ここで、CPUからの命令が「最大値を求める」ものである場合を例として、図16に示すマイクロプロセッサ400における処理を具体的に説明する。
【0107】
ここも、図11に示す8つのデータを例にし、1回目の処理すなわち先頭の4つのデータ「0001h」、「0002h」、「0080h」、「0004」に対する処理が終わった段階から説明する。
【0108】
次に処理する4つのデータを取得するために、例えばロード命令を実行してメモリ420に格納された次の4つのデータをメモリ420からレジスタファイル490に格納する。図17を参照してこのロード命令での動作を説明する。アドレス生成器410におけるオフセット生成回路414は、オフセット「0008h」を生成して、BUF424に格納する。加算器418は、オフセット生成回路414が生成したオフセット「0008h」と、ベースアドレス出力回路416が出力したベースアドレス「FFFF0100h」とを加算して読出アドレス「FFFF01008h」を得、この読出アドレスをメモリ420に出力する。これにより、メモリ420に格納された次の4つのデータ(図中太線枠で囲まれた部分)は、メモリ420からレジスタファイル490におけるレジスタR1に格納される。
【0109】
図17に示すように、次に処理する4つのデータを用いて最大値候補を選択するための、CPUからの命令は(MAXA R1,R2)であり、「MAXA」は、「最大値候補を求める」ことを指示し、「R1」と「R2」は、メモリ420から読み出す4つのデータを格納するレジスタと、ピーク値候補選択部430の出力を格納するレジスタとをそれぞれ指定する。
【0110】
なお、前回の4つのデータに対する処理の結果、最大値の「0080h」とそのオフセット「0003h」は、それぞれ32ビットにゼロ拡張または符号拡張されて、レジスタファイル490における、CPUからの命令により指定されたレジスタR0の上位32ビットと下位32ビットに格納されている。
【0111】
ピーク値候補選択部430は、「MAXA」命令のときに動作する。具体的には、レジスタR1に格納された4つのデータを読み出して最大値を選択し、選択した最大値を最大値候補としてOut2に出力すると共に、「最大値候補の位置情報×2」をOut1に出力する。図示のように、レジスタR1に格納された4つのデータが「0009h」、「0008h」、「「0100h」、「0005h」であり、それぞれの位置情報が「3」、「2」、「1」、「0」であるため、ピーク値候補選択部430から、最大値候補「0100h」と、その位置情報「1」の2倍である「0002h」が出力される。
【0112】
セレクタ498は、「MAXA」命令であるときにピーク値候補選択部430の出力を選択するため、ピーク値候補選択部430の出力Out2とOut1は、セレクタ498からレジスタファイル490に出力される。ピーク値候補選択部430の出力Out2とOut1もそれぞれ32ビットにゼロ拡張または符号拡張されているため、セレクタ498から「0000h、0100h、0000h、0002h」の64ビットが出力される。
【0113】
図18に移って続きの処理を説明する。
【0114】
図18に示すように、このとき、レジスタR2に、ピーク値候補選択部430の処理結果「0000h、0100h、0000h、0002h」の64ビットが格納されている。
【0115】
次に最大値を求めるために、CPUから命令(MAXB R2,R0)がなされる。「MAXB」は、「最大値を求める」ことを指示し、「R2」と「R0」は、ピーク値候補選択部430が選択した最大値候補と「最大値候補の位置情報×2」を格納するレジスタと、ピーク値演算部480の出力を格納するレジスタとをそれぞれ指定する。
【0116】
ピーク値演算部480は、「MAXB」命令のときに動作する。具体的には、ピーク値演算部480は、レジスタR2から読み出した64ビットのデータの上位32ビットIn4(最大値候補)と、レジスタR0から読み出した64ビットの上位32ビットIn2(保持中の最大値)とを比較し、In4>In2の場合には、In4を新たな最大値として、レジスタR2から読み出した64ビットの下位32ビットIn3(「0002h」)とBUF424に格納されたオフセットIn5(「0008h」)とを用いてオフセットを求めて、In4と共に新たな値としてレジスタR0に書き込む。また、In4≦In2の場合には、ピーク値演算部480は、In2とそのオフセットIn1をレジスタR0に書き込む。
【0117】
これにより、目標となる最大値「0100h」とそのオフセットがレジスタR0の上位32ビットと下位32ビットにそれぞれ格納される。
【0118】
本実施の形態のマイクロプロセッサ400も、第1の実施の形態のマイクロプロセッサ200と第2の実施の形態のマイクロプロセッサ300と同じ効果を得ることができる。
【0119】
さらに、マイクロプロセッサ400において、レジスタファイル490はピーク値候補選択部430の処理結果を一時的に格納するレジスタを備え、セレクタ498は、ピーク値候補選択部430とピーク値演算部480の出力を交互に選択してレジスタファイル490に出力する。このような構成において、ピーク値候補選択部430とピーク値演算部480は同時に動作しないので、比較回路などの内部リソースを共有することができ、回路面積を削減することができる。
【0120】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した実施の形態を組み合せたり、さまざまな変更、増減を加えたりしてもよい。これらの組合せ、変更、増減により得られた変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【0121】
【図1】本発明の原理を説明するためのマイクロプロセッサの模式図である。
【図2】図1に示すマイクロプロセッサにおけるアドレス生成器のとりうる構成を示す図である(その1)。
【図3】図1に示すマイクロプロセッサにおけるアドレス生成器のとりうる構成を示す図である(その2)。
【図4】図1に示すマイクロプロセッサにおけるピーク値候補選択部がデータを取り扱う態様を説明するための図である。
【図5】本発明の第1の実施の形態にかかるマイクロプロセッサを示す図である。
【図6】図5に示すマイクロプロセッサにおけるピーク値候補選択部を示す図である。
【図7】図6に示すピーク値候補選択部における第1の演算回路を示す図である。
【図8】図6に示すピーク値候補選択部における第2の演算回路を示す図である。
【図9】図6に示すピーク値候補選択部における第3の演算回路を示す図である。
【図10】図5に示すマイクロプロセッサにおけるピーク値演算部を示す図である。
【図11】図5に示すマイクロプロセッサが処理するデータの例を示す図である。
【図12】図11に示すデータ例に対する処理の進行態様を説明するための図である(その1)。
【図13】図5に示すマイクロプロセッサによる図11に示すデータ例に対する処理の進行態様を説明するための図である(その2)。
【図14】本発明の第2の実施の形態にかかるマイクロプロセッサを示す図である。
【図15】図14に示すマイクロプロセッサによる図11に示すデータ例に対する処理の進行態様を説明するための図である。
【図16】本発明の第3の実施の形態にかかるマイクロプロセッサを示す図である。
【図17】図16に示すマイクロプロセッサによる図11に示すデータ例に対する処理の進行態様を説明するための図である(その1)。
【図18】図16に示すマイクロプロセッサによる図11に示すデータ例に対する処理の進行態様を説明するための図である(その2)。
【図19】従来の手法を説明するための図である。
【符号の説明】
【0122】
100 マイクロプロセッサ 110 アドレス生成器
112 アドレス生成回路 114 オフセット生成回路
116 ベースアドレス出力回路 118 加算器
120 データ記憶部 130 ピーク値候補選択部
140 ピーク値演算部 150 ピーク値保持部
200 マイクロプロセッサ 210 アドレス生成器
214 オフセット生成回路 216 ベースアドレス出力回路
218 加算器 220 メモリ
230 ピーク値候補選択部 240 第1の演算回路
242 比較回路 246 セレクタ
248 セレクタ 250 第2の演算回路
252 比較回路 256 セレクタ
258 セレクタ 260 第3の演算回路
262 比較回路 264 加算器
266 セレクタ 268 セレクタ
270 乗算器 280 ピーク値演算部
282 比較回路 284 加算器
286 セレクタ 288 セレクタ
290 ビーク値保持部 292 第1の記憶部
294 第2の記憶部 300 マイクロプロセッサ
302 制御回路 310 アドレス生成器
314 オフセット生成回路 316 ベースアドレス出力回路
318 加算器 320 メモリ
324 バッファ 330 ピーク値候補選択部
390 レジスタファイル 400 マイクロプロセッサ
402 制御回路 410 アドレス生成器
414 オフセット生成回路 416 ベースアドレス出力回路
418 加算器 420 メモリ
424 バッファ 430 ピーク値候補選択部
480 ピーク値演算部 490 レジスタファイル
498 セレクタ

【特許請求の範囲】
【請求項1】
複数のデータのうちの最大値または最小値であるピーク値を取得するピーク値取得処理を実行するマイクロプロセッサにおいて、
読出アドレスを順次生成して出力するアドレス生成器と、
該アドレス生成器が出力した前記読出アドレスを起点とするnビットのデータを出力するデータ記憶部と、
1データ構成単位であるmビット(m:アドレス付与単位の整数倍)のデータを1エレメントとして、前記データ記憶部が出力した前記nビットのデータを構成する複数個のエレメントのうちのピーク値を有するエレメントをピーク値候補として選択し、該ピーク値候補が前記複数個のエレメントをそれらのアドレス順に配列してなるエレメント列における位置を示す位置情報と共に出力するピーク値候補選択部と、
ピーク値と、該ピーク値を有するエレメントのアドレスとを保持するピーク値保持部と、
前記ピーク値候補選択部が出力した前記ピーク値候補と前記ピーク値保持部に保持された前記ピーク値が、前記ピーク値取得処理が最大値を取得するか最小値を取得するかに応じた大小関係を満たすことを条件に、前記ピーク値候補の前記位置情報と前記読出アドレスとを用いて該ピーク値候補のエレメントのアドレスを算出すると共に、算出した前記アドレスと前記ピーク値候補を前記ピーク値保持部に出力して該ピーク値保持部の保持内容を更新するピーク値演算部とを備えることを特徴とするマイクロプロセッサ。
【請求項2】
前記読出アドレスがオフセットとベースアドレスとからなり、
前記アドレス生成器は、オフセットのみを前記ピーク値演算部に出力するものであり、
前記ピーク値演算部は、前記ピーク値候補のオフセットを求めるものであることを特徴とする請求項1に記載のマイクロプロセッサ。
【請求項3】
前記ピーク値保持部は、レジスタであることを特徴とする請求項1または2に記載のマイクロプロセッサ。
【請求項4】
前記ピーク値保持部として機能するレジスタと、
前記データ記憶部からの前記nビットのデータを前記ピーク値候補選択部に出力する前に一時的に格納するレジスタとを含むレジスタファイルをさらに備えることを特徴とする請求項1または2に記載のマイクロプロセッサ。
【請求項5】
前記ピーク値候補選択部と前記ピーク値演算部の処理結果を選択して出力するセレクタと、
前記ピーク値保持部として機能するレジスタであって、前記セレクタが出力した前記ピーク値演算部の処理結果を格納する第1のレジスタと、前記セレクタが出力した前記ピーク値候補選択部の処理結果を格納する第2のレジスタとを有するレジスタファイルとをさらに備え、
前記ピーク値演算部は、前記第1のレジスタと前記第2のレジスタの格納内容を読み出して処理することを特徴とする請求項1または2に記載のマイクロプロセッサ。
【請求項6】
前記レジスタファイルは、前記データ記憶部からの前記nビットのデータを前記ピーク値候補選択部に出力する前に一時的に格納するレジスタをさらに含むことを特徴とする請求項5に記載のマイクロプロセッサ。
【請求項7】
前記アドレス生成器から前記ピーク値演算部への出力を一時的に格納するバッファをさらに備えることを特徴とする請求項1から6のいずれか1項に記載のマイクロプロセッサ。
【請求項8】
マイクロプロセッサにおいて、複数のデータのうちの最大値または最小値であるピーク値を取得するピーク値取得処理を実行する際に、
読出アドレスを順次生成し、
前記読出アドレスを起点とするnビットのデータを記憶部から読み出し、
1データ構成単位であるmビット(m:アドレス付与単位の整数倍)のデータを1エレメントとして、前記nビットのデータを構成する複数個のエレメントのうちのピーク値を有するエレメントをピーク値候補として選択して、該ピーク値候補が前記複数個のエレメントをそれらのアドレス順に配列してなるエレメント列における位置を示す位置情報と共に出力し、
ピーク値と、該ピーク値を有するエレメントのアドレスを保持し、
前記ピーク値候補と前記ピーク値が、前記ピーク値取得処理が最大値を取得するか最小値を取得するかに応じた大小関係を満たすことを条件に、前記ピーク値候補の前記位置情報と前記読出アドレスとを用いて該ピーク値候補のエレメントのアドレスを算出すると共に、算出した前記アドレスと前記ピーク値候補で保持中のアドレスとピーク値を更新することを特徴とするデータ処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2009−59187(P2009−59187A)
【公開日】平成21年3月19日(2009.3.19)
【国際特許分類】
【出願番号】特願2007−226191(P2007−226191)
【出願日】平成19年8月31日(2007.8.31)
【出願人】(302062931)NECエレクトロニクス株式会社 (8,021)