JP2004086259A - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP2004086259A
JP2004086259A JP2002242743A JP2002242743A JP2004086259A JP 2004086259 A JP2004086259 A JP 2004086259A JP 2002242743 A JP2002242743 A JP 2002242743A JP 2002242743 A JP2002242743 A JP 2002242743A JP 2004086259 A JP2004086259 A JP 2004086259A
Authority
JP
Japan
Prior art keywords
data
output
memory
bus
arithmetic unit
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
Application number
JP2002242743A
Other languages
English (en)
Inventor
Ryuichi Asahi
旭 竜一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2002242743A priority Critical patent/JP2004086259A/ja
Publication of JP2004086259A publication Critical patent/JP2004086259A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

【課題】連続データの演算において、データの出力開始アドレスや出力順序,演算の組み合わせデータに関らず、並列に演算を行うことを目的とする。
【解決手段】メモリ101,メモリ102から出力する、それぞれ連続する2つのアドレスの出力データをAバスまたはBバスまたはCバスまたはDバスに出力し、BバスまはたCバスのデータをレジスタ122に格納して、演算器120に入力するデータをCバス,Dバスまたはレジスタ122のうちから選択できる構成にすることにより、連続データの演算において、データの出力開始アドレスや出力順序,演算の組み合わせデータに関らず、並列に演算を行うことができる。
【選択図】  図1

Description

【0001】
【発明の属する技術分野】
本発明は、マイクロプロセッサやデジタルシグナルプロセッサで用いられ、データを並列処理するデータ処理装置に関するものである。
【0002】
【従来の技術】
データ処理において2つのメモリ1とメモリ2を備え、前記2面のメモリに格納されたデータ間で演算を行う際に、両方のメモリのアドレスを順次インクリメントしながら連続したデータに対してを演算をする場合がある。このとき、処理の高速化を図るため、メモリ1から(2m)、(2m+1)のデータを、メモリ2から(2n)、(2n+1)のデータをそれぞれ2ワードずつ並列に読み出し、そのデータを並列に備えた演算器で処理することで、連続データの演算を2倍の効率で処理する構成にする場合がある。ここで、簡単のためアドレス2m番地のデータを(2m)と表している。以降の説明でも同じ表現を用いる。
【0003】
以下、従来のデータ処理装置について図11,図12,図13,図14を参照しながら説明する。
図11は従来のデータ処理装置の構成図である。図12は従来の連続データの演算を説明する概念図,図13は従来の連続的なデータの演算におけるデータ処理装置のデータ遷移図であり、図14は従来の並列演算できない連続データの演算を説明する概念図である。
【0004】
図11において、101はメモリであり、偶数アドレスのデータ出力端子103と奇数アドレスのデータ出力端子104を備えている。同様に102はメモリであり、偶数アドレスのデータ出力端子105と奇数アドレスのデータ出力端子106を備えている。201はメモリ101のアドレスを格納するレジスタであり、加算器202によってマシンサイクル毎にアドレスが更新される。同様に203はメモリ102のアドレスを格納するレジスタであり、加算器204によってマシンサイクル毎にアドレスが更新される。
【0005】
107はセレクタ回路であり、メモリ101またはメモリ102が出力したデータのうちいずれかのデータをAバスに出力する。108セレクタ回路であり、メモリ101またはメモリ102が出力したデータのうちいずれかのデータをBバスに出力する。109セレクタ回路であり、メモリ101またはメモリ102が出力したデータのうちいずれかのデータをCバスに出力する。110セレクタ回路であり、メモリ101またはメモリ102が出力したデータのうちいずれかのデータをDバスに出力する。111〜114はラッチでありそれぞれAバス、Bバス、Cバス、Dバスのデータを一時的に保持する。115は演算器であり、ラッチ111とラッチ112のデータを用いて演算を行う。116は演算器115と並列に動作する演算器であり、ラッチ113とラッチ114のデータを用いて演算を行う。
【0006】
メモリ101とメモリ102から出力されるデータは、アドレスポインタ(図示せず)によるアドレス更新によって順次新しいデータとなり、このデータが読み出される。特に2ワード並列読み出しの場合、アドレスポインタは「1」ずつアドレスを更新するのではなく、例えば2m番地、2m+2番地、2m+4番地・・・のように偶数アドレスだけを使用して順次更新していくか、あるいは、2m+1番地、2m+3番地、2m+5番地・・・のように奇数アドレスだけを使用して順次更新していく。このようにアドレスポインタがメモリに対して1つのアドレス(例えば偶数アドレス)を指定すると、その偶数アドレスと次の奇数アドレスの2つのアドレスに対応するデータがセットになって読み出される。例えば、2m番地のアドレス指定に対して、2m番地と2m+1番地に対応するデータが順にメモリから読み出され、2m+2番地のアドレス指定に対して、2m+2番地と2m+3番地に対応するデータがメモリから読み出される。また、奇数番地でアドレス指定した場合には、その奇数アドレスと前の偶数アドレスに対応する2つのデータを出力する。例えば、2m+1番地のアドレス指定に対して、2m番地と2m+1番地に対応するデータが順にメモリから読み出される。このように、2ワード並列読み出しを用いれば1回のアドレス指定に対して、2つのデータを読み出すことができるので、データ処理効率が2倍になる。
【0007】
以上のように構成されたデータ処理装置において図12に示す連続データの演算を行う方法を図13を用いて説明する。なお、ここで演算は乗算を例として説明しており、以降も同様に乗算を例として説明する。
【0008】
図12では、メモリ101から(2m),(2m+1),(2m+2)...のデータが連続的に出力し、メモリ102から(2n),(2n+1),(2n+2)...のデータが連続的に出力しており、それぞれ同じタイミングに出力する(2m)と(2n),(2m+1)と(2n+1)...を演算する様子を示している。ここでは、同じサイクルにそれぞれのメモリからアドレスの連続する2つのデータが出力し、それらを並列に演算するものとする。
【0009】
図13において、まず、初回のマシンサイクルでメモリ101から(2m),(2m+1)のデータを出力し、メモリ102から(2n),(2n+1)のデータを出力する。次に、セレクタ回路107で(2m+1)を選択してAバスに出力し、セレクタ回路108で(2n+1)を選択してBバスに出力し、セレクタ回路109で(2m)を選択してCバスに出力し、セレクタ回路110で(2n)を選択してDバスに出力する。次に、ラッチ111でAバスのデータ(2m+1)をラッチし、ラッチ112でBバスのデータ(2n+1)をラッチし、ラッチ113でCバスのデータ(2m)をラッチし、ラッチ114でDバスのデータ(2n)ラッチする。ここで、演算を乗算とすると、初回サイクルでは、演算器115で(2m+1)×(2n+1)、演算器116で(2m)×(2n)の演算を行う。次の2回目のマシンサイクルでは、初回サイクルに連続して出力したアドレスに対してアドレスを+2ずつインクリメントし、メモリ101から(2m+2),(2m+3)のデータを出力し、メモリ102から(2n+2)、(2n+3)のデータを出力する。初回サイクルと同じ経路でテータを送信し、演算器115で(2m+3)×(2n+3)、演算器116で(2m+2)×(2n+2)の演算を行う。このようにして、1マシンサイクルに付き、並列して2つの演算を実施できるので、2倍の処理効率で演算を行うことができる。
【0010】
しかしながら、上記の従来の構成では、メモリ101からの2ワードの読み出しが2m番地と2m+1番地の組み合わせとなるため、メモリ102からの読出しが2m+1番地から開始する連続データの場合、適切な演算を行うことができない場合があると言う問題点があった。つまり、図14に示すように、初回サイクル目でメモリ101からは(2m),(2m+1)が読み出されるのに対し、メモリ102からは(2n+1)のデータしか読み出すことができず、さらに、演算が(2m)と(2n+1),(2m+1)と(2n+2)の組み合わせで実施されていく場合には、1サイクルに付き1回の演算しか行うことができないことになる。
【0011】
【発明が解決しようとする課題】
本発明のデータ処理装置は上記の問題点を解決するために、連続データの演算において、データの出力開始アドレスや出力順序,演算の組み合わせデータに関らず、並列に演算を行うことを目的とする。
【0012】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項1記載のデータ処理装置は、連続する2つのアドレスのデータを同時に出力する第1のメモリと、連続する2つのアドレスのデータを同時に出力する第2のメモリと、2つのデータを入力して演算する第1の演算器と、2つのデータを入力して演算する第2の演算器と、前記第1のメモリまたは前記第2のメモリの出力データのうち任意の1つのデータを保持するデータ保持手段と、前記第1のメモリまたは前記第2のメモリの出力データと前記データ保持手段の出力データのうち任意の4つのデータを前記第1の演算器および前記第2の演算器に出力するデータ選択手段とを有し、2つのメモリから連続して出力されるデータを並列演算処理することを特徴とする。
【0013】
請求項2記載のデータ処理装置は、請求項1記載のデータ処理装置において、前記第1のメモリおよび前記第2のメモリからのデータ出力順序と前記第1の演算器および前記第2の演算器での演算内容に応じて、前記第1のメモリおよび前記第2のメモリからの出力データを前記データ保持手段を介さずに前記第1の演算器および前記第2の演算器に出力して演算する第1のモードと、前記第1のメモリの任意の出力データを前記データ保持手段を介して遅延を持たせて前記第2の演算器に出力し残りの前記第1のメモリの出力データおよび前記第2のメモリの出力データを前記データ保持手段を介さずに前記第1の演算器および前記第2の演算器に出力して演算する第2のモードと、前記第2のメモリの任意の出力データを前記データ保持手段を介して遅延を持たせて前記第2の演算器に出力し残りの前記第2のメモリの出力データおよび前記第1のメモリの出力データを前記データ保持手段を介さずに前記第1の演算器および前記第2の演算器に出力して演算する第3のモードとに場合分けてデータを転送し、メモリからのデータ出力順序や演算器での演算内容に関らず連続して並列演算処理を行うことを特徴とする。
【0014】
請求項3記載のデータ処理装置は、請求項1または請求項2記載のデータ処理装置において、演算内容に対応して、最初の演算サイクルでは前記第1のメモリおよび前記第2のメモリからの出力データを前記データ保持手段を介さずに前記第1の演算器および前記第2の演算器に出力して演算し、2回目以降の演算サイクルでは前記第2のメモリの任意の出力データを前記データ保持手段を介して遅延を持たせて前記第2の演算器に出力し残りの前記第2のメモリの出力データおよび前記第1のメモリの出力データを前記データ保持手段を介さずに前記第1の演算器および前記第2の演算器に出力して演算するモードを有することを特徴とする。
【0015】
以上の構成により、連続データの演算において、データの出力開始アドレスや出力順序,演算の組み合わせデータに関らず、並列に演算を行うことができる。
【0016】
【発明の実施の形態】
以下、本発明の実施の形態におけるデータ処理装置について図面を参照しながら説明する。
【0017】
図1は本発明のデータ処理装置の構成図であり、図2は本発明のデータ処理装置における各動作モードの動作を説明する図である。
図1において、101はメモリであり、偶数アドレスのデータ出力端子103と奇数アドレスのデータ出力端子104を備えている。同様に102はメモリであり、偶数アドレスのデータ出力端子105と奇数アドレスのデータ出力端子106を備えている。201はメモリ101のアドレスを格納するレジスタであり、加算器202によってマシンサイクル毎にアドレスが更新される。同様に203はメモリ102のアドレスを格納するレジスタであり、加算器204によってマシンサイクル毎にアドレスが更新される。
【0018】
107セレクタ回路であり、メモリ101またはメモリ102が出力したデータのうちいずれかのデータをAバスに出力する。108セレクタ回路であり、メモリ101またはメモリ102が出力したデータのうちいずれかのデータをBバスに出力するか”0”を出力する。109セレクタ回路であり、メモリ101またはメモリ102が出力したデータのうちいずれかのデータをCバスに出力する。110セレクタ回路であり、メモリ101またはメモリ102が出力したデータのうちいずれかのデータをDバスに出力するか”0”を出力する。121はセレクタ回路であり、BバスまたはCバスのデータを選択してレジスタ122に出力する。レジスタ122はセレクタ回路121の出力を一時的に保持する。123はセレクタ回路であり、Cバスまたはレジスタ122の出力を選択してラッチ117に出力する。124はセレクタ回路であり、Dバスまたはレジスタ122の出力を選択してラッチ118に出力する。125はラッチ回路でありAバスの出力を一時的に保持する。126はラッチ回路でありBバスの出力を一時的に保持する。119は演算器であり、ラッチ回路125とラッチ回路126から出力された2つのデータを用いて演算を行う。120は演算器119と並列に動作する演算器であり、ラッチ回路117とラッチ回路118から出力される2つのデータを用いて演算を行う。演算器119,演算器120として、加減算器,論理演算器,乗算器等の種々の演算器を用いることができる。なお、図1では、演算器119,演算器120の出力先は省略している。
【0019】
本実施の形態では、以上の構成のデータ処理装置を用いて、セレクタ回路107〜110および123,124を制御することにより、少なくとも4種類の動作モードでの動作を可能にする。モード0〜モード3の4種類の動作モードを図2に示す。
【0020】
図2において、モード0は、メモリ101の出力データとメモリ102の出力データのいずれの出力データのタイミングをも遅らせずに、出力されるタイミングのままで並列演算を行う動作モードである。モード0を選択する条件は、演算を行うデータに対応するアドレスをレジスタで示すとすると、(1)レジスタ201の初期値が偶数で加算値が+1またはレジスタ201の初期値が奇数で加算値が−1、かつ、(2)レジスタ202の初期値が偶数で加算値が+1またはレジスタ202の初期値が奇数で加算値が−1、である。
【0021】
モード1は、メモリ101の出力データを1マシンサイクル遅らせて並列演算を行う動作モードである。モード1を選択する条件は、演算を行うデータに対応するアドレスをレジスタで示すとすると、(1)レジスタ201の初期値が偶数で加算値が−1またはレジスタ201の初期値が奇数で加算値が+1、かつ(2)レジスタ202の値が偶数で加算値が+1またはレジスタ202の値が奇数で加算値が−1、である。
【0022】
また、モード2は、メモリ102の出力データを1マシンサイクル遅らせて並列演算を行う動作モードである。モード2を選択する条件は、演算を行うデータに対応するアドレスをレジスタで示すとすると、(1)レジスタ201の初期値が偶数で加算値が+1またはレジスタ201の初期値が奇数で加算値が−1、かつ(2)レジスタ202の値が偶数で加算値が−1またはレジスタ202の値が奇数で加算値が+1、である。
【0023】
モード3は、初回のマシンサイクルは出力データを遅らせず、2回目以降のマシンサイクルでメモリ102の出力データを1マシンサイクル遅らせて並列演算を行う動作モードである。モード3が選択されるのはフィルタ用2並列演算を行うときである。
【0024】
以下、モード0の動作について図3,図4を参照して説明する。
図3は本発明のモード0における連続データの演算を説明する概念図であり、図4は本発明のモード0での連続的なデータの演算におけるデータ処理装置のデータ遷移図である。
【0025】
図3で示される演算を図4を用いて説明する。なお、図3の演算内容は、既出の図12で説明した演算内容と同じなので説明を省略する。
図4に示すように、まず、初回のマシンサイクルでメモリ101から(2m)、(2m+1)を出力し、メモリ102から(2n)、(2n+1)を出力する。次に、セレクタ回路107によりに(2m+1)を選択してAバスに出力し、セレクタ回路108により(2n+1)を選択してBバスに、セレクタ回路109により(2m)を選択してCバスに、セレクタ回路110により(2n)を選択してDバスに出力する。次に、ラッチ125でAバスのデータ(2m+1)をラッチし、ラッチ126でBバスのデータ(2n+1)をラッチし、セレクタ回路123でCバスのデータを選択することによってラッチ117でCバスのデータ(2m)をラッチし、セレクタ回路124でDバスのデータを選択することによってラッチ118でDバスのデータ(2n)をラッチする。このようにして演算器119で(2m+1)×(2n+1)、演算器120で(2m)×(2n)の演算を行うことができる。次に、2回目のマシンサイクルではアドレスを+2ずつインクリメントし、メモリ101から(2m+2),(2m+3)を出力し、メモリ102から(2n+2)、(2n+3)を出力する。データは最初のマシンサイクルと同じ経路を通り、演算器119,120が乗算処理を行うとすると、演算器119で(2m+3)×(2n+3)、演算器120で(2m+2)×(2n+2)の演算を行うことができる。3回目以降のマシンサイクルも同様であり、図3に示した連続データの演算を並列に実行することができる。
【0026】
次に、モード1の動作について図5,図6を参照して説明する。
図5は本発明のモード1における連続データの演算を説明する概念図であり、図6は本発明のモード1での連続的なデータの演算におけるデータ処理装置のデータ遷移図である。
【0027】
図5において、メモリ101から(2m),(2m+1),(2m+2)...のデータが連続的に出力し、メモリ102から(2n),(2n+1),(2n+2)...のデータが連続的に出力しており、(2m)と(2n+1),(2m+1)と(2n+2),...のように演算する様子を示している。
【0028】
図6に示すように、まず、初回のマシンサイクルでメモリ101から(2m)、(2m+1)を出力し、メモリ102から(2n)、(2n+1)を出力する。次に、セレクタ回路107によりに(2m)を選択してAバスに出力し、セレクタ回路108により(2n+1)を選択してBバスに、セレクタ回路109により(2m+1)を選択してCバスに、セレクタ回路110により’0’をDバスに出力する。次に、ラッチ125でAバスのデータ(2m)をラッチし、ラッチ126でBバスのデータ(2n+1)をラッチし、セレクタ回路123でレジスタ122のデータを選択することによってラッチ117でレジスタ122の出力データをラッチする。このときレジスタ122は不定である。セレクタ回路124でDバスのデータを選択することによってラッチ118ではDバスのデータ’0’をラッチする。このようにして演算器119で(2m)×(2n+1)、演算器120で不定値×’0’の演算を行うことができる。ここで、セレクタ回路121はCバスのデータ(2m+1)を選択してレジスタ122に格納し、2回目のマシンサイクルに備える。次に、2回目のマシンサイクルではアドレスを+2ずつインクリメントし、メモリ101から(2m+2),(2m+3)を出力し、メモリ102から(2n+2)、(2n+3)を出力する。次に、セレクタ回路107によりに(2m+2)を選択してAバスに出力し、セレクタ回路108により(2n+3)を選択してBバスに、セレクタ回路109により(2m+3)を選択してCバスに、セレクタ回路110により(2n+2)を選択してDバスに出力する。次に、ラッチ125でAバスのデータ(2m+2)をラッチし、ラッチ126でBバスのデータ(2n+3)をラッチし、ラッチ117でレジスタ112の出力データ(2m+1)をラッチし、ラッチ118でDバスのデータ(2n+2)をラッチする。このようにして2回目のマシンサイクルでは演算器119で(2m+2)×(2n+3)、演算器120で(2m+1)×(2n+2)の演算を行う。3回目のマシンサイクル以降も同様であり、図5に示した連続データの演算を並列に実行することができる。
【0029】
以上のように、メモリ101のデータを遅らせることにより並列演算が可能になっている。
次に、モード2の動作について図7,図8を参照して説明する。
【0030】
図7は本発明のモード2における連続データの演算を説明する概念図であり、図8は本発明のモード2での連続的なデータの演算におけるデータ処理装置のデータ遷移図である。
【0031】
図7において、メモリ101から(2m),(2m+1),(2m+2)...のデータが連続的に出力し、メモリ102から(2n),(2n+1),(2n+2)...のデータが連続的に出力しており、(2m+1)と(2n),(2m+2)と(2n+1),...のように演算する様子を示している。
【0032】
図8において、まず、初回のマシンサイクルでメモリ101から(2m)、(2m+1)を出力し、メモリ102から(2n)、(2n+1)を出力する。次に、セレクタ回路107によりに(2m+1)を選択してAバスに出力し、セレクタ回路108により(2n)選択してをBバスに、セレクタ回路109により(2n+1)を選択してCバスに、セレクタ回路110により’0’をDバスに出力する。次に、ラッチ125でAバスのデータ(2m+1)をラッチし、ラッチ126でBバスのデータ(2n)をラッチし、ラッチ117でレジスタ122の出力データをラッチする。このときレジスタ122は不定である。セレクタ回路124でDバスのデータを選択することによってラッチ118ではDバスのデータ’0’をラッチする。このようにして初回サイクルで演算器119で(2m+1)×(2n)、演算器120で不定値×’0’の演算を行うことができる。ここで、セレクタ回路121はCバスのデータ(2n+1)を選択してレジスタ122に格納し、2回目のマシンサイクルに備える。次に、2回目のマシンサイクルではアドレスを+2ずつインクリメントし、メモリ101から(2m+2),(2m+3)を出力し、メモリ102から(2n+2)、(2n+3)を出力する。次に、セレクタ回路107によりに(2m+3)を選択してAバスに出力し、セレクタ回路108により(2n+2)を選択してBバスに、セレクタ回路109により(2n+3)を選択してCバスに、セレクタ回路110により(2m+2)を選択してDバスに出力する。次に、ラッチ125でAバスのデータ(2m+3)をラッチし、ラッチ126でBバスのデータ(2n+2)をラッチし、セレクタ回路123でレジスタ122の出力データを選択してラッチ117でレジスタ122の出力データ(2n+1)をラッチし、セレクタ回路124でDバスの出力データを選択してラッチ118でDバスのデータ(2m+2)をラッチする。このようにして2回目のマシンサイクルでは演算器119で(2m+3)×(2n+2)、演算器120で(2n+1)×(2m+2)の演算を行うことができる。3回目以降のマシンサイクルも同様であり、図7に示した連続データの演算を並列に実行することができる。
【0033】
以上のように、メモリ102のデータを遅らせることにより並列演算が可能になっている。
次に、モード3の動作について図9,図10を参照して説明する。モード3はフィルタ用2並列演算を行う場合に用いる。
【0034】
図9は本発明のモード3における連続データの演算を説明する概念図であり、図10は本発明のモード3での連続的なデータの演算におけるデータ処理装置のデータ遷移図である。
【0035】
図9において、メモリ101から(2m),(2m+1),(2m+2)...のデータが連続的に出力し、メモリ102から(2n),(2n+1),(2n+2)...のデータが連続的に出力しており、(2m)×(2n)、(2m)×(2n+1)、(2m+1)×(2n+1)、(2m+1)×(2n+1)...のデータの組み合わせで乗算を行った後でそれらの積を加算するフィルタ用2並列演算を行う際の乗算部分の演算の様子を示している。
【0036】
モード3でのデータの経路を図10のタイミングチャートを参照しながら説明する。
図10において、まず、初回のマシンサイクルでメモリ101から(2m)、(2m+1)を出力し、メモリ102から(2n)、(2n+1)を出力する。次に、セレクタ回路107によりに(2m)を選択してAバスに出力し、セレクタ回路108により(2n+1)を選択してBバスに、セレクタ回路109により(2m)を選択してCバスに、セレクタ回路110により(2n)を選択してDバスに出力する。次に、ラッチ125でAバスのデータ(2m)をラッチし、ラッチ126でBバスのデータ(2n+1)をラッチし、ラッチ117でCバスのデータ(2m)をラッチし、ラッチ118ではDバスのデータ(2n)をラッチする。このようにして初回サイクルでは演算器119で(2m)×(2n+1)、演算器120で(2m)×(2n)の演算を行う。ここで、セレクタ回路121はBバスのデータ(2n+1)を選択してレジスタ122に格納し、2回目のマシンサイクルに備える。次に、2回目のマシンサイクルではレジスタ201のアドレスを+1、レジスタ202のアドレスを+2インクリメントし、メモリ101から(2m),(2m+1)を出力し、メモリ102から(2n+2)、(2n+3)を出力する。次に、セレクタ回路107により(2m+1)を選択してAバスに出力し、セレクタ回路108により(2n+2)を選択してBバスに、セレクタ回路109により(2m+1)を選択してCバスに出力する。Dバスは特に使用しない。次に、ラッチ125でAバスのデータ(2m+1)をラッチし、ラッチ126でBバスのデータ(2n+2)をラッチし、セレクタ回路123でCバスの出力データを選択してラッチ117でCバスのデータ(2m+1)をラッチし、セレクタ回路124でレジスタ122の出力データを選択してラッチ118でレジスタ122の出力データ(2n+1)をラッチする。このようにして2回目のサイクルでは演算器119で(2m+1)×(2n+2)、演算器120で(2m+1)×(2n+1)の演算を行うことができる。3回目以降もレジスタとセレクタの制御により、フィルタ用2並列演算を実行することができる。
【0037】
以上のように、2回目のマシンサイクル以降にメモリ102のデータを遅らせることにより、並列演算が可能となる。
以上の説明ではデータを並列に乗算する例を用いて説明したが、乗算以外の種々の演算に対しても適用することができる。
【0038】
【発明の効果】
以上のように、本発明のデータ処理装置によれば、バスのデータをレジスタに格納して、演算器に入力するデータをバスとレジスタのうちから選択できる構成にすることにより、連続データの演算において、データの出力開始アドレスや出力順序,演算の組み合わせデータに関らず、並列に演算を行うことができる。
【図面の簡単な説明】
【図1】本発明のデータ処理装置の構成図
【図2】本発明のデータ処理装置における各動作モードの動作を説明する図
【図3】本発明のモード0における連続データの演算を説明する概念図
【図4】本発明のモード0での連続的なデータの演算におけるデータ処理装置のデータ遷移図
【図5】本発明のモード1における連続データの演算を説明する概念図
【図6】本発明のモード1での連続的なデータの演算におけるデータ処理装置のデータ遷移図
【図7】本発明のモード2における連続データの演算を説明する概念図
【図8】本発明のモード2での連続的なデータの演算におけるデータ処理装置のデータ遷移図
【図9】本発明のモード3における連続データの演算を説明する概念図
【図10】本発明のモード3での連続的なデータの演算におけるデータ処理装置のデータ遷移図
【図11】従来のデータ処理装置の構成図
【図12】従来の連続データの演算を説明する概念図
【図13】従来の連続的なデータの演算におけるデータ処理装置のデータ遷移図
【図14】従来の並列演算できない連続データの演算を説明する概念図
【符号の説明】
101  メモリ
102  メモリ
103  データ出力端子
104  データ出力端子
105  データ出力端子
106  データ出力端子
107  セレクタ回路
108  セレクタ回路
109  セレクタ回路
110  セレクタ回路
111  ラッチ
112  ラッチ
113  ラッチ
114  ラッチ
115  演算器
116  演算器
117  ラッチ
118  ラッチ
119  演算器
120  演算器
121  セレクタ回路
122  レジスタ
123  セレクタ回路
124  セレクタ回路
125  ラッチ
126  ラッチ
201  レジスタ
202  加算器
203  レジスタ
204  加算器

Claims (3)

  1. 連続する2つのアドレスのデータを同時に出力する第1のメモリと、
    連続する2つのアドレスのデータを同時に出力する第2のメモリと、
    2つのデータを入力して演算する第1の演算器と、
    2つのデータを入力して演算する第2の演算器と、
    前記第1のメモリまたは前記第2のメモリの出力データのうち任意の1つのデータを保持するデータ保持手段と、
    前記第1のメモリまたは前記第2のメモリの出力データと前記データ保持手段の出力データのうち任意の4つのデータを前記第1の演算器および前記第2の演算器に出力するデータ選択手段と
    を有し、2つのメモリから連続して出力されるデータを並列演算処理することを特徴とするデータ処理装置。
  2. 前記第1のメモリおよび前記第2のメモリからのデータ出力順序と前記第1の演算器および前記第2の演算器での演算内容に応じて、
    前記第1のメモリおよび前記第2のメモリからの出力データを前記データ保持手段を介さずに前記第1の演算器および前記第2の演算器に出力して演算する第1のモードと、
    前記第1のメモリの任意の出力データを前記データ保持手段を介して遅延を持たせて前記第2の演算器に出力し残りの前記第1のメモリの出力データおよび前記第2のメモリの出力データを前記データ保持手段を介さずに前記第1の演算器および前記第2の演算器に出力して演算する第2のモードと、
    前記第2のメモリの任意の出力データを前記データ保持手段を介して遅延を持たせて前記第2の演算器に出力し残りの前記第2のメモリの出力データおよび前記第1のメモリの出力データを前記データ保持手段を介さずに前記第1の演算器および前記第2の演算器に出力して演算する第3のモードと
    に場合分けてデータを転送し、メモリからのデータ出力順序や演算器での演算内容に関らず連続して並列演算処理を行うことを特徴とする請求項1記載のデータ処理装置。
  3. 演算内容に対応して、
    最初の演算サイクルでは前記第1のメモリおよび前記第2のメモリからの出力データを前記データ保持手段を介さずに前記第1の演算器および前記第2の演算器に出力して演算し、2回目以降の演算サイクルでは前記第2のメモリの任意の出力データを前記データ保持手段を介して遅延を持たせて前記第2の演算器に出力し残りの前記第2のメモリの出力データおよび前記第1のメモリの出力データを前記データ保持手段を介さずに前記第1の演算器および前記第2の演算器に出力して演算する第4のモードを有することを特徴とする請求項1または請求項2記載のデータ処理装置。
JP2002242743A 2002-08-23 2002-08-23 データ処理装置 Pending JP2004086259A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002242743A JP2004086259A (ja) 2002-08-23 2002-08-23 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002242743A JP2004086259A (ja) 2002-08-23 2002-08-23 データ処理装置

Publications (1)

Publication Number Publication Date
JP2004086259A true JP2004086259A (ja) 2004-03-18

Family

ID=32051694

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002242743A Pending JP2004086259A (ja) 2002-08-23 2002-08-23 データ処理装置

Country Status (1)

Country Link
JP (1) JP2004086259A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112074810A (zh) * 2018-05-18 2020-12-11 莫鲁米有限公司 并行处理设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112074810A (zh) * 2018-05-18 2020-12-11 莫鲁米有限公司 并行处理设备
CN112074810B (zh) * 2018-05-18 2023-07-21 莫鲁米有限公司 并行处理设备

Similar Documents

Publication Publication Date Title
US8271571B2 (en) Microprocessor
JP3729881B2 (ja) 並列加算および平均演算を行うための回路およびその方法
US9712185B2 (en) System and method for improved fractional binary to fractional residue converter and multipler
JP2009048532A (ja) マイクロプロセッサ
US5898878A (en) Data processing system having capability to interpolate processing coefficients
JPH07253965A (ja) 積和演算器
JP2004086259A (ja) データ処理装置
US11327761B2 (en) Processing device with vector transformation execution
JP2006072961A (ja) 演算処理装置のメモリ回路
US9262123B2 (en) Data processing apparatus and method for performing a narrowing-and-rounding arithmetic operation
JPH1153189A (ja) 演算装置、演算方法及びコンピュータ読み取り可能な記録媒体
JP2001092658A (ja) データ処理回路及びデータ処理装置
JPH10333883A (ja) 乗算方法および乗算回路
JP2005353094A (ja) 積和演算器
JP2003330914A (ja) ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム
JP2005149517A (ja) 積和演算器
JP2003084972A (ja) 条件付減算命令の実行速度を改善し、命令が正しく実行されるオペランドの範囲を拡大する方法
JP2503983B2 (ja) 情報処理装置
JP3541498B2 (ja) データ処理装置
JP2004280854A (ja) 積和演算器
JPH1063503A (ja) 演算処理装置及び演算処理方法
JPH09269939A (ja) 並列演算器およびそれを用いたデジタル・シグナル・プロセッサ
JPS62262131A (ja) 情報処理装置
JP2005134987A (ja) パイプライン演算処理装置
JPH04330519A (ja) 乗算回路