JP3541498B2 - Data processing device - Google Patents

Data processing device Download PDF

Info

Publication number
JP3541498B2
JP3541498B2 JP14153895A JP14153895A JP3541498B2 JP 3541498 B2 JP3541498 B2 JP 3541498B2 JP 14153895 A JP14153895 A JP 14153895A JP 14153895 A JP14153895 A JP 14153895A JP 3541498 B2 JP3541498 B2 JP 3541498B2
Authority
JP
Japan
Prior art keywords
address
memory
mode
data
output
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.)
Expired - Fee Related
Application number
JP14153895A
Other languages
Japanese (ja)
Other versions
JPH08335187A (en
Inventor
竜一 旭
稔 岡本
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 Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP14153895A priority Critical patent/JP3541498B2/en
Publication of JPH08335187A publication Critical patent/JPH08335187A/en
Application granted granted Critical
Publication of JP3541498B2 publication Critical patent/JP3541498B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【産業上の利用分野】
本発明は、マイクロコンピュータ(マイコン)やデジタルシグナルプロセッサ(DSP)で用いられるデータ処理装置に関するものである。
【0002】
【従来の技術】
データ処理装置において処理の高速化を図る場合、メモリからのデータ読み出しの速度がボトルネックになる場合がしばしばある。データ読み出しの高速化を図るための一手段を「倍速読み出し」と称して、以下に説明する。倍速読み出しは、メモリからデータを読み出す場合に、偶数アドレスと奇数アドレスの2つのアドレス分に対応するデータを1マシンサイクルで一度に読み出す方法である。
【0003】
この倍速読み出しを利用した従来のデータ処理装置について図面を参照しながら説明する。
【0004】
図7は従来のデータ処理装置のデータ処理部の構成を示す。同図において、101および102はいずれもメモリであり演算対象となるもとのデータを格納している。103〜105はマルチプレクサであり、データがメモリ101から演算器へ入力するまでの経路や、メモリ102から演算器へ入力するまでの経路を選択する選択手段として機能する。106〜108はラッチ回路であり、メモリ101やメモリ102が出力したデータを一時的に保持する。なお、これら3つのラッチ回路がデータを保持する時間は等しく、マシンサイクル(基本サイクル)の1/2サイクル分の時間に設定されている。109は演算器であり、ラッチ回路107とラッチ回路108から同時に出力された2つのデータを演算してその演算結果を出力する。
【0005】
メモリ101とメモリ102から出力されるデータは、アドレスポインタ(図示せず)によるアドレス更新によって順次新しいデータとなり、このデータが読み出される。特に倍速読み出しの場合、アドレスポインタは「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番地に対応するデータが順にメモリから読み出される。このように、倍速読み出しを用いれば1回のアドレス指定に対して、2つのデータを読み出すことができるので、データ処理速度が2倍になる。
【0006】
このように倍速読み出しを用いれば、データ処理速度が2倍になるという効果があるが、正しい演算を順次実行するためには演算器109へのデータ入力のタイミングを調整する必要がある。すなわち、2つのデータを演算する場合、これら2つのデータを演算器109に同じタイミングで入力しなければならないが、倍速読み出しでは、1回のアドレス指定で1つのメモリから2つのデータが読み出されるため、どちらのデータを演算対象とするかによって、タイミング制御が異なってくる。このタイミング制御のために、マルチプレクサ103〜105と、ラッチ回路106〜108を設けている。
【0007】
タイミング制御を行うデータ処理装置の動作を図8〜図10を用いて説明する。図8および図9はメモリからのデータ出力のタイミングや演算器への入力タイミングを示すタイミング図である。なお、以降の説明では、1つのマシンサイクルの中で偶数番地が先で奇数番地が後になってデータ処理される場合を例に説明する。
【0008】
図8は、2つのメモリから出力されたデータに対して、演算器109への入力タイミングをずらせることなくデータ処理する場合のタイミング図である。メモリ101とメモリ102のそれぞれに格納された偶数番地のデータは、同時に出力されて、そのまま同じタイミングで演算器109に入力され演算される。また、次のタイミングでメモリ101とメモリ102のそれぞれに格納された奇数番地のデータについても互いに同じタイミングで演算器109に入力され演算される。また、このデータ処理においては、メモリ101の2m番地から連続して2m+5番地まで、メモリ102の2n番地から2n+5番地までのデータを使用して演算を行う場合を示す。なお、m、nは整数である。
【0009】
まず、このデータ処理の開始時には図7のデータ処理装置に対して図示しない制御手段によって次のような制御が行われる。すなわち、マルチプレクサ104はメモリ101の出力を選択し、マルチプレクサ105はメモリ102の出力を選択する。なお、このときはマルチプレクサ103はどのような制御状態になっていてもよい(関係ない)。
【0010】
このような制御状態のもとでデータ読み出しが行われる。メモリ101のアドレスポインタ(図示せず)が1つの偶数アドレス(偶数番地)2mを指定すると、メモリ101からマシンサイクル(基本サイクル)の前半で偶数番地2mのデータが読み出され、後半で奇数番地2m+1のデータが読み出される。マルチプレクサ104はメモリ101の出力を選択しているので、ラッチ回路107にこれらのデータが順次取り込まれ出力される。一方、メモリ102のアドレスポインタが1つの偶数番地2nを指定すると、メモリ102からはマシンサイクルの前半で偶数番地2nのデータが読み出され、後半で奇数番地2n+1のデータが読み出される。マルチプレクサ105ではメモリ102の出力が選択され、ラッチ回路108にデータが取り込まれ出力される。このように、メモリ101からの出力とメモリ102からの出力は、どちらも1つのラッチ回路を介して、演算器109に入力するので、演算器109へは同じタイミングで入力する。以後、同様に2m+2番地のデータと2n+2番地のデータ、2m+3番地のデータと2n+3番地のデータ、2m+4番地のデータと2n+4番地のデータ、そして2m+5番地のデータと2n+5番地のデータが演算器109に入力して演算される。このように偶数番地同士のデータや奇数番地同士のデータを互いに演算する場合には、メモリ101のデータをラッチ回路107に入力し、メモリ102のデータをラッチ回路108に入力すれば、これらのデータを同じタイミングで演算器109に入力して演算することができる。
【0011】
次に、図9は、偶数番地のデータと奇数番地のデータの演算を実行する場合の動作を示す。ここでは、最初の読み出しで、メモリ101から偶数番地のデータを読み出し、メモリ102から奇数番地のデータを読み出す場合を例に説明する。データ処理の開始時には、メモリ101とメモリ102に対するアドレスポインタ(図示せず)がそれぞれ偶数番地と奇数番地を示している。これらのアドレスポインタの値に基づき図7のデータ処理装置に対して図示しない制御手段によって次のような制御が行われる。マルチプレクサ103はメモリ101の出力を選択し、マルチプレクサ104はラッチ回路106の出力を選択する。またマルチプレクサ105はメモリ102の出力を選択する。これによりメモリ101から出力されたデータはラッチ回路106とラッチ回路107を通って演算器109へ入力し、メモリ102から出力されたデータはラッチ回路108を通って演算器109へ入力する。すなわち、メモリ101の出力データはメモリ102からの出力データに比べて、ラッチ回路を1つ多く通るので、演算器109への入力タイミングが遅くなる。この遅れ時間はマシンサイクルの1/2サイクルとなる。
【0012】
このような制御状態のもとでデータ読み出しが行われると、メモリ101とメモリ102からはそれぞれ最初に2m番地のデータと2n番地のデータが同じタイミングで読み出されるが、メモリ101からの出力データはマルチプレクサ103と104の選択により、ラッチ回路106とラッチ回路107を介してから演算器109に入力する。また、メモリ102からの出力はマルチプレクサ105の選択により、ラッチ回路108を介して演算器109へ入力する。この結果、メモリ101の出力はメモリ102の出力よりも1/2サイクルだけ遅れて演算器109へ入力する。従って、図9に示すようにマシンサイクルの1サイクル目の前半ではメモリ102の最初の出力である2n番地のデータは、同じタイミングで演算器109に入力する演算対象のデータがないことになるので演算されない。次にマシンサイクルの1サイクル目の後半では、メモリ101の出力である2m番地のデータと、メモリ102の出力である2n+1番地のデータのそれぞれがラッチ回路107とラッチ回路108から同じタイミングで演算器109に入力する。同様にして、順次、2m+1番地のデータと2n+2番地のデータ、2m+2番地のデータと2n+3番地のデータ、2m+3番地のデータと2n+4番地のデータ、2m+4番地のデータと2n+5番地のデータ、そして2m+5番地のデータと2n+6番地のデータが演算器109で演算される。このように、偶数番地のデータと奇数番地のデータを演算する場合には、2系統のデータのタイミングをずらせることで演算を行う。
【0013】
なお、図9では、メモリ101の出力データを1/2サイクル遅らせる例を示したが、これとは逆にメモリ102の出力を1/2サイクル遅らせる動作については、対称的な動作になるだけであるので説明を省略する。
【0014】
【発明が解決しようとする課題】
上記の従来の構成では、偶数番地のデータと奇数番地のデータを演算する場合でも、データ処理の開始前にマルチプレクサの制御状態を変えることにより、適切な演算を行うことができた。しかし、データ処理の開始前でなく、データ処理の最中に演算器へのデータ入力タイミングを変える必要が生じた場合には、従来の構成では対応できない。すなわち、従来ではデータ処理の開始時にマルチプレクサの制御状態を決定すれば、以降は同じ制御状態でデータ処理を行うことしかできなかった。しかし、例えば、アドレスポインタの示すアドレスが一定領域を巡回する、巡回アドレッシングを用いる場合は領域の範囲によっては2巡目以降でデータのタイミングが揃わなくなり、データ処理の途中でタイミングを変えなければ演算ができなくなるという問題がある。
【0015】
その例を図10を用いて説明する。図10はメモリ101のアドレスポインタに通常のアドレスを使用し、メモリ102のアドレスポインタに巡回アドレスを使用した場合の動作タイミングを示す。なお、メモリ101は2m番地から2m+5番地までのデータを使用し、メモリ102は2n番地から2n+4番地の間でアドレスが巡回し、データは2n番地から2巡目の2n番地までを使用する。演算のスタート時は、メモリ101のアドレスポインタは2m番地を示し、メモリ102のアドレスポインタは2n番地を示している。そして、これらのアドレスポインタは順次2m+2と2n+2、2m+4と2n+4を示していく。演算開始時のマルチプレクサの制御状態は、図8で示した動作のときと同じである。すなわち、データ処理の開始時には図7のデータ処理装置に対して図示しない制御手段によって、マルチプレクサ104はメモリ101の出力を選択し、マルチプレクサ105はメモリ102の出力を選択する。また、マルチプレクサ103はどのような制御になっていてもよい。
【0016】
このような制御状態でメモリからのデータ読み出しを開始すると、図10に示すようにマシンサイクルの3サイクル目前半まで(2m番地〜2m+4番地、2n番地〜2n+4番地まで)のデータは図8の動作と同様のタイミングで演算される。しかし、次に2m+5番地と2巡目の2n番地の間で演算を行わなければならないが、メモリの倍速読み出しの制限により、アドレスポインタが2n+4番地を示すと、データとしては2n+4番地のデータと2n+5番地のデータがセットで出力される。すなわち2n+4番地のデータを出力するサイクルの後半では必ず2n+5番地のデータが出力される。このために、2m+5番地と2n+5番地のデータが同じタイミングで演算器109に入力されてしまい、所望の演算(2m+5番地と2n番地のデータの演算)を行えない。すなわち、倍速読み出しを使用すると、偶数番地のデータと奇数番地のデータとが必ずセットで読み出されるので、偶数番地だけを読み出して終わることができない。このため、上記のような場合には、巡回アドレスの2巡目以降で演算器へのデータ入力タイミングがずれるので、誤った演算を行うことになる。
【0017】
本発明は上記の課題を解決するもので、倍速読み出しと巡回アドレッシングを共に用いても演算を正確に行うことのできるデータ処理装置を提供する。
【0018】
請求項1記載のデータ処理装置は、演算対象のデータを格納し、1サイクルの前半と後半にそれぞれ偶数アドレスと奇数アドレスの2つのアドレス分に相当するデータを連続して出力する第1及び第2のメモリを備え、前記第1のメモリは巡回アドレスにより読み出されるデータ処理装置において、前記第1のメモリおよび前記第2のメモリから出力されたデータを演算する演算器と、前記第1のメモリあるいは前記第2のメモリのいずれかの出力が前記演算器に入力するタイミングを遅延させる遅延手段と、前記第1のメモリおよび前記第2のメモリの出力を前記遅延手段を介して前記演算器に入力するか前記遅延手段を介さずに前記演算器に入力するかを選択する選択手段と、前記第1のメモリのアドレスポインタとして機能する第1のアドレス保持手段と、前記第2のメモリのアドレスポインタとして機能する第2のアドレス保持手段とを備え、前記選択手段は、3つの動作モードのいずれかに従って動作し、第1のモードでは、前記第1のメモリの出力および前記第2のメモリの出力の両方を前記遅延手段を介さずに前記演算器に入力し、第2のモードでは、前記第1のメモリの出力を前記遅延手段を介さずに、前記第2のメモリの出力を前記遅延手段を介して前記演算器に入力し、第3のモードでは、前記第1のメモリの出力を前記遅延手段を介して、前記第2のメモリの出力を前記遅延手段を介さずに前記演算器に入力し、前記巡回アドレスが最終番地から先頭番地へと巡回する際、前記巡回アドレスの最終アドレスが奇数アドレスの時は、いずれの動作モードであっても動作モードを変換せず、前記巡回アドレスの最終アドレスが偶数アドレスでありかつ動作モードが前記第2モードの時は前記第1モードに、動作モードが前記第3モードの時は前記第1モードに、動作モードが前記第1モードの時は前記第2モードに変換することを特徴とするものである。
【0021】
【作用】
以上の構成によれば、データ処理装置は、メモリからデータを読み出し始めるときに演算器へのデータ入力タイミングを選択するだけでなく、巡回アドレスの最終番地のデータをメモリから読み出した後にも、演算器へのデータ入力タイミングを選択することができる。従って、倍速読み出しのデータ処理装置において、巡回アドレスを利用することが可能になる。
【0022】
【実施例】
本発明の実施例における倍速読み出しを利用したデータ処理装置について図面を参照しながら説明する。
【0023】
図1は本実施例のデータ処理装置の構成を示す。同図において、1はデータ処理部であり、このデータ処理部1は図7に示した従来のものと同じ構成であり、メモリ2、メモリ3、マルチプレクサ4〜6、ラッチ回路7〜9および演算器10から構成されている。マルチプレクサ4はメモリ2とメモリ3の出力のいずれかを選択する選択手段として機能しており、このマルチプレクサ4の出力データはラッチ回路7に入力して保持される。また、メモリ2の出力とラッチ回路7の出力はマルチプレクサ5に入力し、いずれかの出力が選択されてラッチ回路8に入力され保持される。また、メモリ3の出力とラッチ回路7の出力はマルチプレクサ6に入力し、いずれかの出力が選択されてラッチ回路9に入力され保持される。ラッチ回路8の出力データとラッチ回路9の出力データは同期して演算器10に入力し、2つのデータが演算されて、出力される。また、演算器10は、加減算器、論理演算器、乗算器等の演算器である。なお、演算器10の出力先となるレジスタについては、図1では省略している。
【0024】
11は中央演算処理装置(CPU)等に代表される制御手段であり、また、12および13は、それぞれメモリ2とメモリ3のアドレスポインタとして機能するアドレス保持用のレジスタである。また、14は、レジスタ13に巡回レジスタを保持させた場合に、巡回レジスタの先頭アドレスを保持するレジスタであり、15は巡回レジスタの最終アドレスを保持するレジスタである。また、16は、レジスタ13に保持したアドレス値とレジスタ15に保持したアドレス値を比較し、一致した場合には一致信号を制御手段11と加算器17に出力する比較器である。なお、この比較器16は、レジスタ13のアドレス値とレジスタ15のアドレス値を比較するときに、それぞれのアドレス値(2進数)の最下位ビットを除いて比較する。すなわち同じサイクル内の偶数番地と奇数番地を区別せずに比較する。従って、レジスタ13のアドレス値が「2」ずつインクリメントされて常に偶数番地のみを示していて、一方、レジスタ15に保持された最終番地が奇数であっても同じマシンサイクル内で読み出される番地であれば一致信号が出力される。17および18は加算器であり、レジスタ13やレジスタ12に保持しているアドレス値をマシンサイクルの1サイクルごとにインクリメントして再びレジスタ13に入力する。すなわち、これらの加算器17、18がアドレスポインタの値を順次更新していく。なお、加算器17は比較器16から一致信号を受けたときには、レジスタ13の値をインクリメントせずにレジスタ14に保持されている巡回アドレスの先頭番地の値をレジスタ13に入力する。これにより、巡回アドレッシングが可能になる。
【0025】
また、レジスタ12、レジスタ13およびレジスタ15が保持するアドレス値は信号s12、s13およびs15として制御手段11にも入力している。なお、これらのアドレス値が2進数の形で保持されている場合には、最下位ビットの情報だけを制御手段11に入力してもよい。すなわち、制御手段11にはこれらのアドレス値が偶数であるか奇数であるかを判別するために入力している。また、比較器16から出力される一致信号s16も制御手段11に入力している。制御手段11はこの一致信号s16を受けると、レジスタ15からの信号s15に基づいて巡回アドレスの最終番地が偶数であるか奇数であるかを判定し、この判定結果に応じて制御信号c、d、eを出力してデータ処理部1のマルチプレクサ4、5、6を制御する。
【0026】
本実施例では、以上の構成のデータ処理装置を用いて、マルチプレクサ4、5および6の制御状態を変えることにより、少なくとも3種類の動作モードを可能にする。その3種類の動作モードを図2に示す。
【0027】
図2において、モード1はメモリ2の出力とメモリ3の出力のタイミングを遅らせずに、どちらも同じタイミングで演算器10に入力するモードである。すなわち、図1のマルチプレクサ5はメモリ2の出力を選択し、マルチプレクサ6はメモリ3の出力を選択する。
【0028】
また、モード2はメモリ2の出力をメモリ3の出力よりもマシンサイクルで1/2サイクル遅らせて処理する場合である。すなわち、モード2では図1のマルチプレクサ4はメモリ2の出力を選択し、マルチプレクサ5はラッチ回路7の出力を選択する。またマルチプレクサ6はメモリ3の出力を選択する。
【0029】
さらに、モード3はメモリ3の出力をメモリ2の出力よりもマシンサイクルで1/2サイクル遅らせて処理する場合である。すなわち、モード3では図1のマルチプレクサ4はメモリ3の出力を選択し、マルチプレクサ6はラッチ回路7の出力を選択する。またマルチプレクサ5はメモリ2の出力を選択する。
【0030】
なお、図2に示すコードは、本実施例において各モードを特定するために付与したコードであり、2進数で表示している。モード1は「001」、モード2は「010」、モード3は「100」としている。
【0031】
次に図1における制御手段11の具体的な回路例を説明する。図3および図4は制御手段11内部の具体的回路と、図1に示したデータ処理装置の一部を示す。図1と同じ構成要素や同じ信号には同じ符号を付けている。図3および図4に示す回路は、従来ではデータ処理の開始時にしかできなかったモード選択を、データ処理の途中でもモード切り換え可能にしたものであり、アドレス値やモードの状態に応じて、適切なモードを選択するように回路が構成されている。
【0032】
以下に、図3および図4の回路構成により得られるモードと、そのときのアドレス値や各信号値等との関係を示す。なお、以下の説明で用いるスタートパルスとは、データ処理開始時にだけ制御手段11内に論理値「1」を入力するパルスである。
【0033】
・モード1を選択する条件((1)〜(5)のいずれか1つの条件を満たせばよい)
(1)レジスタ12およびレジスタ13の値が偶数(すなわちレジスタ12と13の出力信号s12とs13がともに「0」)でかつスタートパルスを受けたとき
(2)モード2の状態で比較器16の一致信号s16が「1」(一致している)であり、かつ巡回アドレスの最終番地が偶数(すなわちレジスタ15の出力信号s15が「0」)のとき
(3)モード3の状態で比較器16の一致信号s16が「1」であり、かつ巡回アドレスの最終番地が偶数のとき
(4)モード1の状態で比較器16の一致信号s16が「1」であり、かつ巡回アドレスの最終番地が奇数(すなわちレジスタ15の出力信号s15が「1」)のとき
(5)モード1の状態で比較器16の一致信号s16が「0」(一致していない)の状態のとき
・モード2を選択する条件((1)〜(4)のいずれか1つの条件を満たせばよい)
(1)レジスタ12の値が偶数でレジスタ13の値が奇数でかつスタートパルスを受けたとき
(2)モード1の状態で比較器16の一致信号s16が「1」であり、かつ巡回アドレスの最終番地が偶数のとき
(3)モード2の状態で比較器16の一致信号s16が「1」であり、かつ巡回アドレスの最終番地が奇数のとき
(4)モード2の状態で比較器16の一致信号s16が「0」のとき
・モード3を選択する条件((1)〜(3)のいずれか1つの条件を満たせばよい)
(1)レジスタ12の値が奇数でレジスタ13の値が偶数でかつスタートパルスを受けたとき
(2)モード3の状態で比較器16の一致信号s16が「1」であり、かつ巡回アドレスの最終番地が奇数のとき
(3)モード3の状態で比較器16の一致信号s16が「0」のとき
以上の選択条件に基づいてモード1〜モード3への切り換えを行うが、具体的には図3および図4に示した回路で実現することができる。
【0034】
まず図3は、上記のモード切り換え条件に従って構成された論理回路を示している。同図において、20(20a、20b、20c)は現在のモードを2進数のコードで保持したレジスタであり、20a、20b、20cにそれぞれ1ビットずつ合計3ビットの情報を保持する。このコードは、図2に示したものと同じで、モード1は(20a、20b、20c)=「001」、モード2は「010」、モード3は「100」のコードで表される。これらのレジスタ値は図4に示す論理回路を経て図1に示した信号c、d、eとしてデータ処理部1へ入力され、データ処理部1内のマルチプレクサ4〜6の制御に用いられる。また、レジスタ20自身の値変更(モード切り換え)のデータとしても使用され、アンド回路M1、M2、M3に入力している。モード1すなわちコード「001」のときにはアンド回路M1が「1」を出力する。また、モード2すなわちコード「010」のときにはアンド回路M2が「1」を出力する。また、モード3すなわちコード「100」のときにはアンド回路M3が「1」を出力する。
【0035】
レジスタ20a〜20cのそれぞれに入力する信号は、スタートパルス、レジスタ12の最下位ビット出力s12、レジスタ13の最下位ビット出力s13、レジスタ15の最下位ビット出力s15、比較器16の一致信号s16と、アンド回路M1、M2、M3の出力の論理的組合せであり、上記のモード選択条件を満たすように信号が形成される。
【0036】
すなわち、モード1を選択する条件が満たされるとオア回路28の出力のみが「1」となり、またモード2を選択する条件が満たされるとオア回路24の出力のみが「1」となり、さらにモード3を選択する条件が満たされるとオア回路21の出力のみが「1」となる。
【0037】
例えばモード2の状態で比較器16が一致信号s16を出力し、かつ巡回アドレスの最終番地が偶数(すなわちs15が「0」)のときには、モード2であるからアンド回路M2が「1」を出力し、s15が「0」でかつs16が「1」を出力するので、アンド回路35が「1」を出力する。従って、アンド回路31が「1」を出力することになり、オア回路28を介してレジスタ20cに「1」が入力されて保持される。また、その他のレジスタ20a、20bは「0」になっている。これにより、レジスタ20が保持するコードは「001」となり、モード2からモード1へ切り換えられたことになる。
【0038】
その他のモード切り換えについても、図3に示した回路によれば上記の条件通りに切り換えを行うことができる。
【0039】
図4は、データ処理部1内のマルチプレクサをモードに応じて制御するための具体的な回路構成を示す。同図では、簡単のためデータ処理部1の一部分のみを示す。同図に示すように、マルチプレクサ4は制御信号cが「1」のとき図中左側(メモリ2側)を選択し、制御信号cが「0」のとき図中右側(メモリ3側)を選択する。また、マルチプレクサ5は制御信号dが「0」のとき図中左側(メモリ2側)を選択し、制御信号dが「1」のとき図中右側(ラッチ回路7側)を選択する。さらにマルチプレクサ6は制御信号eが「1」のとき図中左側(ラッチ回路7側)を選択し、制御信号eが「0」のとき図中右側(メモリ3側)を選択する。
【0040】
また、36はレジスタ20の値が「010」(すなわちモード2)のときに「1」を出力するアンド回路であり、37はレジスタ20の値が「100」(すなわちモード3)のときに「1」を出力するアンド回路である。
【0041】
以上の構成の回路について、その動作を説明すると、モード1のときはレジスタ20の値は「001」であり、アンド回路36および37の出力値はどちらも「0」であるので、制御信号c、d、eがすべて「0」になっている。このため、マルチプレクサ5は図中左側(すなわちメモリ2側)を選択し、マルチプレクサ6は図中右側(すなわちメモリ3側)を選択する。この制御により、モード1ではメモリ2とメモリ3の出力データが互いに遅れることなく演算器に入力する。
【0042】
また、モード2のときはレジスタ20の値は「010」であり、アンド回路36の出力値は「1」、37の出力値は「0」であるので、制御信号c、dは「1」で、eが「0」になっている。このため、マルチプレクサ4は図中左側(すなわちメモリ2側)を選択し、マルチプレクサ5は図中右側(すなわちラッチ回路7側)を選択し、マルチプレクサ6は図中右側(すなわちメモリ3側)を選択する。これによりモード2では、メモリ2のデータが1/2サイクル遅れて演算器に入力する。
【0043】
また、モード3のときはレジスタ20の値は「100」であり、アンド回路36の出力値は「0」、37の出力値は「1」であるので、制御信号c、dは「0」で、eが「1」になっている。このため、マルチプレクサ4は図中右側(すなわちメモリ3側)を選択し、マルチプレクサ5は図中左側(すなわちメモリ2側)を選択し、マルチプレクサ6は図中左側(すなわちラッチ回路7側)を選択する。これによりモード3では、メモリ3のデータが1/2サイクル遅れて演算器に入力する。
【0044】
以上のようにして、モード切り換えに応じてマルチプレクサの制御が可能となり、演算器10へのデータ入力タイミングを変えることができる。
【0045】
次に、以上のデータ処理装置において、メモリ3に巡回アドレスを使用し、メモリ2に通常のアドレスを使用して、各データを読み出して演算を行う場合の動作を説明する。
【0046】
図5は、メモリ2に通常のアドレッシングを使用し、メモリ3に巡回アドレッシングを使用した場合の出力データのタイミング図である。メモリ2は2m番地から2m+11番地までのデータを使用し、メモリ3は2n番地から2n+4番地の間でアドレスが巡回し、データは2n番地から3巡目の2n+1番地までを使用する。
【0047】
まず、データ処理の開始時には、図1のレジスタ13に巡回アドレスの先頭番地2nが保持され、レジスタ15に巡回アドレスの最終番地2n+4が保持される。また、アドレスポインタとして機能するレジスタ12に2m番地、レジスタ13に2n番地が保持される。レジスタ12と13に保持されたアドレス値の最下位ビットは信号s12およびs13として制御手段11に入力する。これらの信号に基づいて制御手段11はマルチプレクサ4、5、6を制御する。ここでは、2つのレジスタ12および13に保持されたアドレスはどちらも偶数であり、またデータ処理開始時を示すスタートパルスが出力されるので、制御手段11は図2のモード1を選ぶ。すなわち、メモリ2の2m番地のデータはマルチプレクサ5に選択されて、ラッチ回路8を介して演算器10に入力し、メモリ3の2n番地のデータはマルチプレクサ6に選択されて、ラッチ回路9を介して演算器10に入力し、2つのデータが演算される。同様に、マシンサイクル(基本サイクル)の3サイクル目の前半までは、図5に示すように2m+1番地と2n+1番地、2m+2番地と2n+2番地、2m+3番地と2n+3番地、2m+4番地と2n+4番地のデータが演算器10に入力して演算される。
【0048】
また、マシンサイクルの3サイクル目の前半には、メモリ3から2n+4番地のデータが出力するが、この2n+4番地は巡回アドレスの最終アドレスであるので、レジスタ13の値とレジスタ15の値が一致し、比較器16が一致信号s16を出力する。この一致信号s16は制御手段11と加算器17に入力する。制御手段11は比較器16から一致信号s16を受けると、レジスタ15のアドレス値が偶数か奇数かを判定する。この実施例では、レジスタ15のアドレス値(すなわち、巡回アドレスの最終番地2n+4)は偶数である。モード1の状態で、一致信号s16が「1」になり、かつレジスタ15のアドレス値が偶数の場合、図3におけるアンド回路M1が「1」を出力し、またアンド回路35が「1」を出力する。これによりアンド回路26を介してオア回路24が「1」を出力するので、レジスタ20の値は「010」となる。このコードはモード2を意味するので、制御手段11は動作モードをモード1からモード2に切り換えたことになる。また、図4において、制御手段11は制御信号cによりマルチプレクサ4がメモリ2の出力を選択するように制御し、また、制御信号dによりマルチプレクサ5がラッチ回路7の出力を選択するように制御し、また、制御信号eによりマルチプレクサ6がメモリ3の出力を選択するように制御する。これによりメモリ2のデータを1/2サイクルだけ遅延させるモード2の制御状態が実現できる。
【0049】
なお、上記のモード選択の条件でも示したように、もし、巡回アドレスの最終アドレスが奇数であれば、モードの切り換えは行わない。1サイクル内で偶数番地、奇数番地の順で読み出される倍速読み出しの場合には、最終番地が奇数であれば、次に余分なデータが読み出されることがないので、スムーズに巡回して次の先頭番地を読み出すことができるからである。このため1/2サイクルだけ遅延させる必要もないので、モードを切り換えることもない。
【0050】
しかし、この実施例とは異なるが、1サイクル内で奇数番地、偶数番地の順で読み出すような場合には、巡回アドレスの最終アドレスが奇数の時にモードを切り換えて、最終アドレスが偶数の時にモードを切り換えないような制御を行う。
【0051】
動作の続きを説明すると、比較器16は加算器17にも一致信号を出力しているので、加算器17は一致信号を受けると、レジスタ13のアドレス値のインクリメントを止めて、レジスタ14に保持しているアドレス値(すなわち、巡回アドレスの先頭番地2n)をレジスタ13に入力する。これにより、レジスタ13のアドレス値は最終番地から先頭番地へと巡回することができる。
【0052】
図3におけるマシンサイクルの3サイクル目の後半になると、上記のように動作モードがモード2に切り換わっているので、メモリ2の出力は1/2サイクルだけ遅れて演算器10に入力する。すなわち、メモリ3の2n+5番地のデータは、マシンサイクルの3サイクル目の後半に演算器10に入力するが、メモリ2の2m+5番地のデータは1/2サイクル遅れて4サイクル目の前半に演算器10に入力する。このため、メモリ2の2m+5番地のデータはメモリ3の2n番地のデータに同期して演算器10に入力するので、メモリ2の2m+5番地のデータとメモリ3の2n番地のデータとの演算が可能となる。なお、マシンサイクルの3サイクル目の後半では、メモリ2の2m+5番地のデータだけが演算器10に入力しており、データが揃わないので1/2サイクルの期間だけ演算を停止することになる。
【0053】
同様に、マシンサイクルの6サイクルの前半までは、順に2m+6番地と2n+1番地、2m+7番地と2n+2番地、2m+8番地と2n+3番地、2m+9番地と2n+4番地のデータが同期して演算器10に入力され、演算される。
【0054】
6サイクル目の前半では、再び巡回アドレスの最終番地になり、しかも偶数番地である。このときには、モード2からモード1に切り換えると共に6サイクル目から7サイクル目でのメモリ2のアドレスポインタ更新を停止し、これにより演算を1/2サイクル停止する。そして7サイクル目の先頭は2m+10番地と2n番地のデータで演算を行う。7サイクル目以降はモード1の状態であり、各マルチプレクサの選択はスタート時と同様であるので、このようにして以降の演算を継続することができる。
【0055】
図6は、図5の6サイクル目から7サイクル目に移るときにメモリ2のアドレスポインタ更新を停止するための具体的な回路構成を示す。同図において、図1と同じ構成要素には同じ符号を付けている。18はメモリ2のアドレスポインタをインクリメントして更新する加算器であり、この加算器18に信号aを入力してインクリメント動作を一時的に停止することによりアドレスポインタ更新の停止を実行する。15は巡回アドレスの最終番地の最下位ビットの値を保持し、この値を信号s15として出力するレジスタ、16はレジスタ13の巡回アドレスが最終番地になったときに一致信号s16を出力する比較器、20(20a、20b、20c)は現在のモード状態を図2に示したコードで保持しているレジスタである。例えば、モード2の場合には、図2に示すようにコードは「010」であるので、レジスタ20aに「0」、レジスタ20bに「1」、レジスタ20cに「0」がそれぞれ保持される。39は、レジスタ20a〜20cの値を入力とするアンド回路であり、20aの反転値、20bの値、20cの反転値を入力としている。38は、アンド回路39の出力値と、比較器16の一致信号s16と、レジスタ15の出力信号s15の反転値を入力とするアンド回路である。
【0056】
以上のような構成の回路のうち、レジスタ20とアンド回路38および39については、図1における制御手段11の中に設けられている。以下、この回路の動作を説明する。図5における6サイクル目の前半では、モード2の状態であるので、レジスタ20a、20b、20cの中に順に「010」が保持されている。従って、アンド回路39は論理値「1」を出力する。また、この6サイクル目の前半では、アドレスポインタは巡回アドレスの最終番地2n+4を示しているので、比較器16は一致信号s16を論理値「1」として出力する。さらにレジスタ15に保持されている最終番地2n+4は偶数であるので最下位ビットは必ず「0」であり、信号s15は「0」となる。このため、アンド回路38は論理値「1」の信号を信号aとして加算器18に入力する。信号aが論理値「1」になっている期間では加算器18はインクリメント動作を停止する。次のサイクル(7サイクル目)になるとき、加算器18は動作を停止しているので図1におけるレジスタ12はアドレスポインタを更新しない。一方、図1のレジスタ13のアドレス値は加算器17によって更新される。レジスタ13のアドレスが更新すると、巡回アドレスの先頭番地2nになるので比較器16は一致信号の出力を停止し、s16は「0」になる。このため、アンド回路38の出力信号aは論理値「0」を出力するので、加算器18の動作停止が解除され、次のサイクルから再びインクリメント動作を開始する。このように、モード2の状態でアドレスポインタが巡回アドレスの偶数の最終番地を示すと、次のアドレスポインタ更新を1サイクルだけ停止することができる。これにより、図5に示すように7サイクル目の前半で2m+10番地と2n番地のデータを演算することができ、それ以降も正常な演算を行うことができる。
【0057】
【発明の効果】
以上のように、本発明によれば倍速読み出しのデータ処理装置に対して巡回アドレスを用いた場合でも、演算対象のデータが遅れて演算器に入力することがなく、常に正確な演算を行うことができるので、データ処理を効率よく実行することができる。
【図面の簡単な説明】
【図1】本発明の実施例におけるデータ処理装置の構成図
【図2】同実施例における各モードの説明図
【図3】同実施例におけるモード切り換え回路の構成図
【図4】同実施例におけるマルチプレクサ制御回路の構成図
【図5】同実施例におけるデータ処理装置の動作タイミング図
【図6】同実施例におけるアドレスポインタ更新の停止回路の構成図
【図7】従来のデータ処理装置の構成図
【図8】従来のデータ処理装置の動作タイミング図
【図9】従来のデータ処理装置の動作タイミング図
【図10】従来のデータ処理装置の動作タイミング図
【符号の説明】
1 データ処理部
2、3 メモリ
4〜6 マルチプレクサ
7〜9 ラッチ回路
10 演算器
11 制御手段
12〜15 レジスタ
16 比較器
17、18 加算器
20 レジスタ
21、24、28、33 オア回路
22、23、25〜27、29〜32、34、35 アンド回路
M1、M2、M3 アンド回路
36、37 アンド回路
38、39 アンド回路
101、102 メモリ
103〜105 マルチプレクサ
106〜108 ラッチ回路
109 演算器
[0001]
[Industrial applications]
The present invention relates to a data processing device used in a microcomputer (microcomputer) or a digital signal processor (DSP).
[0002]
[Prior art]
When speeding up processing in a data processing device, the speed of reading data from a memory often becomes a bottleneck. One means for speeding up data reading is referred to as "double speed reading" and will be described below. The double-speed reading is a method of reading data corresponding to two addresses of an even address and an odd address at a time in one machine cycle when reading data from a memory.
[0003]
A conventional data processing device using the double-speed reading will be described with reference to the drawings.
[0004]
FIG. 7 shows a configuration of a data processing unit of a conventional data processing device. In FIG. 1, reference numerals 101 and 102 denote memories which store original data to be operated. Reference numerals 103 to 105 denote multiplexers, which function as selection means for selecting a path from the memory 101 to the arithmetic unit and a path from the memory 102 to the arithmetic unit. Latch circuits 106 to 108 temporarily hold the data output from the memory 101 and the memory 102. Note that these three latch circuits have the same data holding time, and are set to a time corresponding to a half cycle of a machine cycle (basic cycle). An arithmetic unit 109 operates on two data output simultaneously from the latch circuits 107 and 108 and outputs the operation result.
[0005]
The data output from the memory 101 and the memory 102 becomes new data sequentially by address update by an address pointer (not shown), and this data is read. In particular, in the case of double-speed reading, the address pointer does not update the address by “1”, but sequentially updates only the even-numbered addresses, for example, addresses 2m, 2m + 2, 2m + 4,. Alternatively, the addresses are sequentially updated using only odd addresses such as addresses 2m + 1, 2m + 3, addresses 2m + 5, and so on. When the address pointer designates one address (for example, an even address) to the memory in this way, data corresponding to the two addresses of the even address and the next odd address are set and read. For example, data corresponding to addresses 2m and 2m + 1 are sequentially read from the memory in response to the address specification of address 2m, and data corresponding to addresses 2m + 2 and 2m + 3 are read from the memory in response to the address specification of address 2m + 2. It is. When an address is specified at an odd address, two data corresponding to the odd address and the previous even address are output. For example, data corresponding to addresses 2m and 2m + 1 are sequentially read from the memory in response to the address specification of address 2m + 1. As described above, if double-speed reading is used, two data can be read for one address specification, so that the data processing speed is doubled.
[0006]
The use of double-speed reading in this way has the effect of doubling the data processing speed, but it is necessary to adjust the timing of data input to the arithmetic unit 109 in order to sequentially execute correct calculations. That is, when two data are calculated, these two data must be input to the arithmetic unit 109 at the same timing. However, in double-speed reading, two data are read from one memory by one address designation. The timing control differs depending on which data is to be calculated. For this timing control, multiplexers 103 to 105 and latch circuits 106 to 108 are provided.
[0007]
The operation of the data processing device that performs timing control will be described with reference to FIGS. 8 and 9 are timing charts showing the timing of data output from the memory and the timing of input to the arithmetic unit. In the following description, an example will be described in which data processing is performed with an even address first and an odd address later in one machine cycle.
[0008]
FIG. 8 is a timing chart in a case where data output from two memories is processed without shifting the input timing to the arithmetic unit 109. The data of the even addresses stored in each of the memory 101 and the memory 102 are output at the same time, and are input to the arithmetic unit 109 at the same timing and are calculated. The data of the odd addresses stored in the memory 101 and the memory 102 at the next timing are also input to the arithmetic unit 109 at the same timing and calculated. Further, in this data processing, a case is shown in which an arithmetic operation is performed using data from address 2m of memory 101 to address 2m + 5 consecutively, and data from address 2n to address 2n + 5 of memory 102. Note that m and n are integers.
[0009]
First, at the start of the data processing, the following control is performed on the data processing device of FIG. 7 by a control unit (not shown). That is, the multiplexer 104 selects the output of the memory 101, and the multiplexer 105 selects the output of the memory 102. At this time, the multiplexer 103 may be in any control state (irrelevant).
[0010]
Data reading is performed under such a control state. When an address pointer (not shown) of the memory 101 designates one even address (even address) 2m, the data of the even address 2m is read from the memory 101 in the first half of the machine cycle (basic cycle), and the odd address is read in the second half. 2m + 1 data is read. Since the multiplexer 104 selects the output of the memory 101, these data are sequentially taken into the latch circuit 107 and output. On the other hand, when the address pointer of the memory 102 designates one even address 2n, the data of the even address 2n is read from the memory 102 in the first half of the machine cycle, and the data of the odd address 2n + 1 is read in the second half. In the multiplexer 105, the output of the memory 102 is selected, and the data is captured and output to the latch circuit 108. As described above, since both the output from the memory 101 and the output from the memory 102 are input to the arithmetic unit 109 via one latch circuit, they are input to the arithmetic unit 109 at the same timing. Thereafter, similarly, the data at address 2m + 2 and the data at address 2n + 2, the data at address 2m + 3 and the data at address 2n + 3, the data at address 2m + 4 and the data at address 2n + 4, and the data at address 2m + 5 and data at address 2n + 5 are input to the arithmetic unit 109. Is calculated. When data of even addresses and data of odd addresses are operated on each other as described above, data of the memory 101 is input to the latch circuit 107 and data of the memory 102 is input to the latch circuit 108. Can be input to the computing unit 109 at the same timing to perform the computation.
[0011]
Next, FIG. 9 shows an operation in a case where the calculation of the data of the even address and the data of the odd address are executed. Here, an example will be described in which data of an even address is read from the memory 101 and data of an odd address is read from the memory 102 in the first reading. At the start of data processing, address pointers (not shown) for the memories 101 and 102 indicate even and odd addresses, respectively. Based on the values of these address pointers, the following control is performed by the control means (not shown) on the data processing device of FIG. The multiplexer 103 selects the output of the memory 101, and the multiplexer 104 selects the output of the latch circuit 106. The multiplexer 105 selects the output of the memory 102. As a result, the data output from the memory 101 is input to the arithmetic unit 109 through the latch circuit 106 and the latch circuit 107, and the data output from the memory 102 is input to the arithmetic unit 109 through the latch circuit 108. That is, the output data of the memory 101 passes through one more latch circuit than the output data from the memory 102, so that the input timing to the arithmetic unit 109 is delayed. This delay time is a half cycle of the machine cycle.
[0012]
When data is read under such a control state, the data at address 2m and the data at address 2n are first read from the memories 101 and 102 at the same timing, but the output data from the memory 101 is According to the selection of the multiplexers 103 and 104, the data is input to the arithmetic unit 109 via the latch circuit 106 and the latch circuit 107. The output from the memory 102 is input to the arithmetic unit 109 via the latch circuit 108 by the selection of the multiplexer 105. As a result, the output of the memory 101 is input to the arithmetic unit 109 with a delay of 1/2 cycle as compared with the output of the memory 102. Therefore, as shown in FIG. 9, in the first half of the first cycle of the machine cycle, the data at the address 2n, which is the first output of the memory 102, has no data to be input to the arithmetic unit 109 at the same timing. Not calculated. Next, in the latter half of the first cycle of the machine cycle, the data at the address 2m output from the memory 101 and the data at the address 2n + 1 output from the memory 102 are supplied from the latch circuits 107 and 108 at the same timing. Input to 109. Similarly, data of address 2m + 1 and data of address 2n + 2, data of address 2m + 2 and data of address 2n + 3, data of address 2m + 3 and data of address 2n + 4, data of address 2m + 4 and data of address 2n + 5, and data of address 2m + 5 The arithmetic unit 109 calculates the data and the data at the address 2n + 6. As described above, when calculating the data of the even address and the data of the odd address, the calculation is performed by shifting the timing of the data of the two systems.
[0013]
Although FIG. 9 shows an example in which the output data of the memory 101 is delayed by 1 / cycle, the operation of delaying the output of the memory 102 by サ イ ク ル cycle is only a symmetric operation. Description is omitted because there is.
[0014]
[Problems to be solved by the invention]
In the above-described conventional configuration, even when the data of the even address and the data of the odd address are calculated, an appropriate calculation can be performed by changing the control state of the multiplexer before the start of the data processing. However, if the data input timing to the arithmetic unit needs to be changed during the data processing, not before the start of the data processing, the conventional configuration cannot cope. That is, conventionally, if the control state of the multiplexer is determined at the start of the data processing, the data processing can only be performed in the same control state thereafter. However, for example, when the address indicated by the address pointer circulates in a certain area, or when cyclic addressing is used, the data timing is not aligned in the second cycle or later depending on the range of the area. There is a problem that can not be.
[0015]
An example will be described with reference to FIG. FIG. 10 shows an operation timing when a normal address is used as an address pointer of the memory 101 and a cyclic address is used as an address pointer of the memory 102. The memory 101 uses data from address 2m to address 2m + 5, the memory 102 uses addresses circulating between address 2n and address 2n + 4, and uses data from address 2n to address 2n in the second cycle. At the start of the operation, the address pointer of the memory 101 indicates the address 2m, and the address pointer of the memory 102 indicates the address 2n. These address pointers sequentially indicate 2m + 2 and 2n + 2, 2m + 4 and 2n + 4. The control state of the multiplexer at the start of the operation is the same as in the operation shown in FIG. That is, at the start of the data processing, the multiplexer 104 selects the output of the memory 101 and the multiplexer 105 selects the output of the memory 102 by a control unit (not shown) for the data processing apparatus of FIG. Further, the multiplexer 103 may have any control.
[0016]
When data reading from the memory is started in such a control state, as shown in FIG. 10, data up to the first half of the third machine cycle (addresses 2m to 2m + 4, addresses 2n to 2n + 4) is the operation shown in FIG. It is calculated at the same timing as. However, the operation must be performed between the address 2m + 5 and the address 2n in the second cycle. However, if the address pointer indicates the address 2n + 4 due to the limitation of double-speed reading of the memory, the data at the addresses 2n + 4 and 2n + 5 Address data is output as a set. That is, the data at the address 2n + 5 is always output in the latter half of the cycle for outputting the data at the address 2n + 4. For this reason, the data at addresses 2m + 5 and 2n + 5 are input to the arithmetic unit 109 at the same timing, and the desired operation (the operation of the data at addresses 2m + 5 and 2n) cannot be performed. That is, when double-speed reading is used, even-numbered address data and odd-numbered address data are always read as a set, so that it is impossible to finish reading only even-numbered addresses. For this reason, in the above case, the data input timing to the arithmetic unit is shifted in the second and subsequent cycles of the cyclic address, so that an erroneous operation is performed.
[0017]
The present invention solves the above-described problems, and provides a data processing device that can accurately perform an operation even when both double-speed reading and cyclic addressing are used.
[0018]
The data processing device according to claim 1 stores data to be operated, and stores an even address in the first half and the second half of one cycle, respectively. Odd address A first memory and a second memory that successively output data corresponding to two addresses; , The first memory is read by a cyclic address In the data processing device, a computing unit that computes data output from the first memory and the second memory, and an output of either the first memory or the second memory is input to the computing unit. Delay means for delaying the timing of the operation, and whether the outputs of the first memory and the second memory are input to the arithmetic unit via the delay means or to the arithmetic unit without passing through the delay means Selecting means, a first address holding means functioning as an address pointer of the first memory, and a second address holding means functioning as an address pointer of the second memory, The selecting means operates according to any one of three operation modes. In the first mode, the operation unit outputs both the output of the first memory and the output of the second memory without passing through the delay means. In the second mode, the output of the first memory is input to the arithmetic unit via the delay means without passing the output of the first memory through the delay means, In the mode, the output of the first memory is input to the arithmetic unit via the delay means and the output of the second memory is not passed through the delay means, and the cyclic address is changed from the last address to the first address. When the last address of the cyclic address is an odd address, the operation mode is not converted in any operation mode, the last address of the cyclic address is an even address, and the operation mode is the second address. 2 The first mode when the over-de, when the operation mode is the third mode to the first mode, when the operation mode is the first mode into a second mode It is characterized by the following.
[0021]
[Action]
According to the above configuration, the data processing device not only selects the data input timing to the arithmetic unit when starting to read data from the memory, but also performs the arithmetic operation after reading the data of the last address of the cyclic address from the memory. It is possible to select the data input timing to the container. Therefore, it is possible to use the cyclic address in the data processing device for double-speed reading.
[0022]
【Example】
A data processing apparatus using double-speed reading according to an embodiment of the present invention will be described with reference to the drawings.
[0023]
FIG. 1 shows the configuration of the data processing device of the present embodiment. In the figure, reference numeral 1 denotes a data processing unit. The data processing unit 1 has the same configuration as the conventional one shown in FIG. 7, and includes a memory 2, a memory 3, multiplexers 4 to 6, latch circuits 7 to 9, and an operation unit. It comprises a vessel 10. The multiplexer 4 functions as a selection unit for selecting either the output of the memory 2 or the output of the memory 3, and the output data of the multiplexer 4 is input to the latch circuit 7 and held. The output of the memory 2 and the output of the latch circuit 7 are input to the multiplexer 5, and one of the outputs is selected and input to the latch circuit 8 and held. The output of the memory 3 and the output of the latch circuit 7 are input to the multiplexer 6, and one of the outputs is selected and input to the latch circuit 9 and held. The output data of the latch circuit 8 and the output data of the latch circuit 9 are input to the arithmetic unit 10 in synchronization, and two data are calculated and output. The arithmetic unit 10 is an arithmetic unit such as an adder / subtracter, a logical operation unit, and a multiplier. Note that a register serving as an output destination of the arithmetic unit 10 is omitted in FIG.
[0024]
Reference numeral 11 denotes control means typified by a central processing unit (CPU) and the like. Reference numerals 12 and 13 denote address holding registers which function as address pointers of the memories 2 and 3, respectively. Reference numeral 14 denotes a register that holds the start address of the cyclic register when the register 13 holds the cyclic register, and reference numeral 15 denotes a register that holds the last address of the cyclic register. Reference numeral 16 denotes a comparator which compares the address value held in the register 13 with the address value held in the register 15 and outputs a match signal to the control means 11 and the adder 17 when they match. The comparator 16 compares the address value of the register 13 with the address value of the register 15 except for the least significant bit of each address value (binary number). That is, comparison is made without distinguishing even addresses and odd addresses in the same cycle. Therefore, the address value of the register 13 is incremented by "2" and always indicates only the even address. On the other hand, even if the final address held in the register 15 is an odd number, the address is read in the same machine cycle. If so, a match signal is output. Adders 17 and 18 increment the address value held in the register 13 or the register 12 every machine cycle and input the incremented value to the register 13 again. That is, the adders 17 and 18 sequentially update the value of the address pointer. When the adder 17 receives the coincidence signal from the comparator 16, it inputs the value of the start address of the cyclic address held in the register 14 to the register 13 without incrementing the value of the register 13. This allows cyclic addressing.
[0025]
The address values held by the registers 12, 13, and 15 are also input to the control unit 11 as signals s12, s13, and s15. If these address values are held in binary form, only the information of the least significant bit may be input to the control means 11. That is, the address is input to the control means 11 in order to determine whether these address values are even or odd. The coincidence signal s16 output from the comparator 16 is also input to the control means 11. When receiving the coincidence signal s16, the control means 11 determines whether the last address of the cyclic address is an even number or an odd number based on the signal s15 from the register 15, and according to the determination result, the control signals c and d. , E to control the multiplexers 4, 5, and 6 of the data processing unit 1.
[0026]
In this embodiment, at least three types of operation modes are enabled by changing the control states of the multiplexers 4, 5, and 6 using the data processing device having the above-described configuration. FIG. 2 shows the three types of operation modes.
[0027]
In FIG. 2, mode 1 is a mode in which the output of the memory 2 and the output of the memory 3 are input to the arithmetic unit 10 at the same timing without delaying the timing. That is, the multiplexer 5 in FIG. 1 selects the output of the memory 2, and the multiplexer 6 selects the output of the memory 3.
[0028]
Mode 2 is a case where the output of the memory 2 is processed with a delay of 1/2 machine cycle from the output of the memory 3 for processing. That is, in mode 2, the multiplexer 4 of FIG. 1 selects the output of the memory 2 and the multiplexer 5 selects the output of the latch circuit 7. The multiplexer 6 selects the output of the memory 3.
[0029]
Mode 3 is a case in which the output of the memory 3 is processed after being delayed by a half cycle of a machine cycle from the output of the memory 2. That is, in mode 3, the multiplexer 4 in FIG. 1 selects the output of the memory 3, and the multiplexer 6 selects the output of the latch circuit 7. The multiplexer 5 selects the output of the memory 2.
[0030]
Note that the code shown in FIG. 2 is a code assigned to specify each mode in the present embodiment, and is represented by a binary number. Mode 1 is “001”, mode 2 is “010”, and mode 3 is “100”.
[0031]
Next, a specific circuit example of the control means 11 in FIG. 1 will be described. 3 and 4 show a specific circuit inside the control means 11 and a part of the data processing apparatus shown in FIG. The same components and signals as those in FIG. 1 are denoted by the same reference numerals. The circuits shown in FIG. 3 and FIG. 4 enable mode switching even in the middle of data processing, instead of mode selection which was conventionally only possible at the start of data processing. The circuit is configured to select an appropriate mode.
[0032]
The relationship between the modes obtained by the circuit configurations shown in FIGS. 3 and 4 and the address values and signal values at that time will be described below. The start pulse used in the following description is a pulse for inputting a logical value “1” into the control unit 11 only at the start of data processing.
[0033]
・ Conditions for selecting mode 1 (any one of (1) to (5) must be satisfied)
(1) When the values of the registers 12 and 13 are even (ie, the output signals s12 and s13 of the registers 12 and 13 are both “0”) and the start pulse is received
(2) In the mode 2 mode, the match signal s16 of the comparator 16 is “1” (matching), and the last address of the cyclic address is an even number (that is, the output signal s15 of the register 15 is “0”). When
(3) When the coincidence signal s16 of the comparator 16 is “1” in the mode 3 mode and the last address of the cyclic address is an even number
(4) When the coincidence signal s16 of the comparator 16 is "1" and the last address of the cyclic address is an odd number (that is, the output signal s15 of the register 15 is "1") in the mode 1 mode
(5) When the coincidence signal s16 of the comparator 16 is “0” (not coincident) in the mode 1 state
-Conditions for selecting mode 2 (any one of (1) to (4) must be satisfied)
(1) When the value of the register 12 is even and the value of the register 13 is odd and the start pulse is received
(2) When the coincidence signal s16 of the comparator 16 is “1” in the mode 1 and the last address of the cyclic address is an even number
(3) When the coincidence signal s16 of the comparator 16 is “1” in the mode 2 state and the last address of the cyclic address is an odd number
(4) When the coincidence signal s16 of the comparator 16 is “0” in the mode 2 mode
-Conditions for selecting mode 3 (one of (1) to (3) should be satisfied)
(1) When the value of the register 12 is odd and the value of the register 13 is even and the start pulse is received
(2) When the coincidence signal s16 of the comparator 16 is "1" in the mode 3 mode and the last address of the cyclic address is an odd number
(3) When the coincidence signal s16 of the comparator 16 is "0" in the mode 3 mode
Switching from mode 1 to mode 3 is performed based on the above selection conditions, and can be specifically realized by the circuits shown in FIGS.
[0034]
First, FIG. 3 shows a logic circuit configured according to the above mode switching condition. In the figure, reference numeral 20 (20a, 20b, 20c) denotes a register holding the current mode in binary code, and each of 20a, 20b, 20c holds information of a total of 3 bits, one bit each. This code is the same as that shown in FIG. 2, and mode 1 is represented by a code of (20a, 20b, 20c) = “001”, mode 2 is represented by “010”, and mode 3 is represented by a code of “100”. These register values are input to the data processing unit 1 as the signals c, d, and e shown in FIG. 1 through the logic circuit shown in FIG. 4 and used for controlling the multiplexers 4 to 6 in the data processing unit 1. It is also used as data for changing the value of the register 20 (mode switching) and is input to the AND circuits M1, M2, and M3. In mode 1, that is, when the code is "001", the AND circuit M1 outputs "1". In the mode 2, that is, when the code is "010", the AND circuit M2 outputs "1". In the mode 3, that is, when the code is "100", the AND circuit M3 outputs "1".
[0035]
The signals input to each of the registers 20a to 20c include a start pulse, the least significant bit output s12 of the register 12, the least significant bit output s13 of the register 13, the least significant bit output s15 of the register 15, and the coincidence signal s16 of the comparator 16. , And a logical combination of the outputs of the AND circuits M1, M2, and M3, and a signal is formed so as to satisfy the mode selection condition described above.
[0036]
That is, when the condition for selecting the mode 1 is satisfied, only the output of the OR circuit 28 becomes “1”, and when the condition for selecting the mode 2 is satisfied, only the output of the OR circuit 24 becomes “1”. Is satisfied, only the output of the OR circuit 21 becomes “1”.
[0037]
For example, when the comparator 16 outputs the coincidence signal s16 in the state of the mode 2 and the last address of the cyclic address is an even number (that is, s15 is “0”), since the mode is the mode 2, the AND circuit M2 outputs “1”. Then, since s15 outputs "0" and s16 outputs "1", the AND circuit 35 outputs "1". Therefore, the AND circuit 31 outputs “1”, and “1” is input to the register 20 c via the OR circuit 28 and held. The other registers 20a and 20b are "0". As a result, the code held by the register 20 becomes “001”, which means that the mode 2 has been switched to the mode 1.
[0038]
With respect to other mode switching, the circuit shown in FIG. 3 can be switched as described above.
[0039]
FIG. 4 shows a specific circuit configuration for controlling the multiplexer in the data processing unit 1 according to the mode. FIG. 1 shows only a part of the data processing unit 1 for simplicity. As shown in the figure, the multiplexer 4 selects the left side (memory 2 side) when the control signal c is “1”, and selects the right side (memory 3 side) when the control signal c is “0”. I do. When the control signal d is "0", the multiplexer 5 selects the left side (memory 2 side) in the figure, and when the control signal d is "1", selects the right side (latch circuit 7 side) in the figure. Further, the multiplexer 6 selects the left side (the latch circuit 7 side) in the figure when the control signal e is "1", and selects the right side (the memory 3 side) in the figure when the control signal e is "0".
[0040]
Reference numeral 36 denotes an AND circuit that outputs “1” when the value of the register 20 is “010” (ie, mode 2), and 37 denotes “AND” when the value of the register 20 is “100” (ie, mode 3). This is an AND circuit that outputs "1".
[0041]
The operation of the circuit having the above configuration will be described. In the mode 1, the value of the register 20 is "001" and the output values of the AND circuits 36 and 37 are both "0". , D, and e are all “0”. Therefore, the multiplexer 5 selects the left side (that is, the memory 2 side) in the figure, and the multiplexer 6 selects the right side (that is, the memory 3 side) in the figure. With this control, in mode 1, the output data of the memory 2 and the memory 3 are input to the arithmetic unit without delay.
[0042]
In the mode 2, the value of the register 20 is “010”, the output value of the AND circuit 36 is “1”, and the output value of the AND circuit 37 is “0”, so that the control signals c and d are “1”. Thus, e is "0". Therefore, the multiplexer 4 selects the left side (ie, the memory 2 side) in the figure, the multiplexer 5 selects the right side (ie, the latch circuit 7 side) in the figure, and the multiplexer 6 selects the right side (ie, the memory 3 side) in the figure. I do. Thus, in mode 2, the data in the memory 2 is input to the arithmetic unit with a delay of 1/2 cycle.
[0043]
In the mode 3, the value of the register 20 is “100”, the output value of the AND circuit 36 is “0”, and the output value of the 37 is “1”, so that the control signals c and d are “0”. Thus, e is "1". Therefore, the multiplexer 4 selects the right side (ie, the memory 3 side) in the figure, the multiplexer 5 selects the left side (ie, the memory 2 side) in the figure, and the multiplexer 6 selects the left side (ie, the latch circuit 7 side). I do. Thus, in mode 3, the data in the memory 3 is input to the arithmetic unit with a delay of 1/2 cycle.
[0044]
As described above, the multiplexer can be controlled according to the mode switching, and the data input timing to the arithmetic unit 10 can be changed.
[0045]
Next, the operation of the above data processing apparatus in the case where a cyclic address is used for the memory 3 and a normal address is used for the memory 2 to read each data and perform an operation will be described.
[0046]
FIG. 5 is a timing chart of output data when normal addressing is used for the memory 2 and cyclic addressing is used for the memory 3. The memory 2 uses data from addresses 2m to 2m + 11, the memory 3 uses addresses circulating between addresses 2n to 2n + 4, and uses data from addresses 2n to 2n + 1 in the third cycle.
[0047]
First, at the start of the data processing, the start address 2n of the cyclic address is held in the register 13 of FIG. 1, and the last address 2n + 4 of the cyclic address is held in the register 15. Further, a register 12 serving as an address pointer holds an address 2m, and a register 13 holds an address 2n. The least significant bits of the address value held in the registers 12 and 13 are input to the control means 11 as signals s12 and s13. The control means 11 controls the multiplexers 4, 5, and 6 based on these signals. Here, since the addresses held in the two registers 12 and 13 are both even numbers and a start pulse indicating the start of data processing is output, the control means 11 selects mode 1 in FIG. That is, the data at the address 2m of the memory 2 is selected by the multiplexer 5 and input to the arithmetic unit 10 via the latch circuit 8, and the data at the address 2n of the memory 3 is selected by the multiplexer 6 and transmitted through the latch circuit 9. To the arithmetic unit 10 to calculate two data. Similarly, up to the first half of the third cycle of the machine cycle (basic cycle), as shown in FIG. The data is input to the calculator 10 and calculated.
[0048]
In the first half of the third machine cycle, data of address 2n + 4 is output from the memory 3. Since this address 2n + 4 is the last address of the cyclic address, the value of the register 13 matches the value of the register 15. , The comparator 16 outputs the coincidence signal s16. This coincidence signal s16 is input to the control means 11 and the adder 17. When receiving the coincidence signal s16 from the comparator 16, the control means 11 determines whether the address value of the register 15 is even or odd. In this embodiment, the address value of the register 15 (that is, the final address 2n + 4 of the cyclic address) is an even number. In the mode 1 state, when the coincidence signal s16 becomes “1” and the address value of the register 15 is an even number, the AND circuit M1 in FIG. 3 outputs “1”, and the AND circuit 35 outputs “1”. Output. As a result, the OR circuit 24 outputs “1” via the AND circuit 26, and the value of the register 20 becomes “010”. Since this code means mode 2, the control means 11 has switched the operation mode from mode 1 to mode 2. In FIG. 4, the control means 11 controls the multiplexer 4 to select the output of the memory 2 by the control signal c, and controls the multiplexer 5 to select the output of the latch circuit 7 by the control signal d. In addition, the control signal e controls the multiplexer 6 to select the output of the memory 3. As a result, a control state of mode 2 in which the data in the memory 2 is delayed by サ イ ク ル cycle can be realized.
[0049]
As described in the above mode selection condition, if the last address of the cyclic address is an odd number, the mode is not switched. In the case of double-speed reading in which an even address and an odd address are read in this order within one cycle, if the last address is an odd number, no extra data is read out next, so that the circuit smoothly goes around and reads the next top address. This is because the address can be read. For this reason, there is no need to delay by サ イ ク ル cycle, so that the mode is not switched.
[0050]
However, although different from this embodiment, when reading is performed in the order of an odd address and an even address within one cycle, the mode is switched when the last address of the cyclic address is an odd number, and the mode is switched when the last address is an even number. Is controlled so as not to switch.
[0051]
To explain the continuation of the operation, since the comparator 16 also outputs the coincidence signal to the adder 17, when the adder 17 receives the coincidence signal, it stops incrementing the address value of the register 13 and holds it in the register 14. The input address value (that is, the starting address 2n of the cyclic address) is input to the register 13. Thus, the address value of the register 13 can be circulated from the last address to the first address.
[0052]
In the second half of the third machine cycle in FIG. 3, since the operation mode has been switched to mode 2 as described above, the output of the memory 2 is input to the arithmetic unit 10 with a delay of 1/2 cycle. That is, the data at the address 2n + 5 in the memory 3 is input to the arithmetic unit 10 in the latter half of the third cycle of the machine cycle, but the data at the address 2m + 5 in the memory 2 is delayed by 1/2 cycle in the first half of the fourth cycle. Enter 10 Therefore, the data at address 2m + 5 in the memory 2 is input to the arithmetic unit 10 in synchronization with the data at address 2n in the memory 3, so that the data at the address 2m + 5 in the memory 2 and the data at address 2n in the memory 3 can be calculated. It becomes. In the second half of the third cycle of the machine cycle, only the data at address 2m + 5 of the memory 2 is input to the arithmetic unit 10, and the data is not aligned. Therefore, the arithmetic operation is stopped for a half cycle.
[0053]
Similarly, up to the first half of the six machine cycles, data of addresses 2m + 6 and 2n + 1, 2m + 7 and 2n + 2, 2m + 8 and 2n + 3, 2m + 9 and 2n + 4 are sequentially input to the arithmetic unit 10, It is calculated.
[0054]
In the first half of the sixth cycle, the address becomes the last address of the cyclic address again and is an even address. At this time, the mode is switched from the mode 2 to the mode 1, and the updating of the address pointer of the memory 2 from the sixth cycle to the seventh cycle is stopped, whereby the operation is stopped by 1 / cycle. At the beginning of the seventh cycle, an operation is performed using data at addresses 2m + 10 and 2n. Since the seventh and subsequent cycles are in the mode 1 state, and the selection of each multiplexer is the same as at the start, the subsequent calculations can be continued in this manner.
[0055]
FIG. 6 shows a specific circuit configuration for stopping the updating of the address pointer of the memory 2 when shifting from the sixth cycle to the seventh cycle in FIG. In the figure, the same components as those in FIG. 1 are denoted by the same reference numerals. Reference numeral 18 denotes an adder that increments and updates the address pointer of the memory 2. The signal a is input to the adder 18 to temporarily stop the increment operation to stop updating the address pointer. A register 15 holds the value of the least significant bit of the last address of the cyclic address and outputs this value as a signal s15. A comparator 16 outputs a coincidence signal s16 when the cyclic address of the register 13 becomes the last address. , 20 (20a, 20b, 20c) are registers holding the current mode state with the code shown in FIG. For example, in the case of mode 2, since the code is “010” as shown in FIG. 2, “0” is stored in the register 20a, “1” is stored in the register 20b, and “0” is stored in the register 20c. An AND circuit 39 receives the values of the registers 20a to 20c as inputs, and receives the inverted value of 20a, the value of 20b, and the inverted value of 20c. An AND circuit 38 receives the output value of the AND circuit 39, the coincidence signal s16 of the comparator 16, and the inverted value of the output signal s15 of the register 15.
[0056]
The register 20 and the AND circuits 38 and 39 among the circuits having the above configuration are provided in the control unit 11 in FIG. Hereinafter, the operation of this circuit will be described. In the first half of the sixth cycle in FIG. 5, since the state is the mode 2, "010" is held in the registers 20a, 20b, and 20c in order. Therefore, the AND circuit 39 outputs the logical value “1”. In the first half of the sixth cycle, since the address pointer indicates the last address 2n + 4 of the cyclic address, the comparator 16 outputs the coincidence signal s16 as the logical value “1”. Further, since the last address 2n + 4 held in the register 15 is an even number, the least significant bit is always "0" and the signal s15 is "0". Therefore, the AND circuit 38 inputs the signal of the logical value “1” to the adder 18 as the signal a. The adder 18 stops the increment operation while the signal a has the logical value “1”. At the next cycle (7th cycle), since the adder 18 has stopped operating, the register 12 in FIG. 1 does not update the address pointer. On the other hand, the address value of the register 13 in FIG. When the address of the register 13 is updated, the start address 2n of the cyclic address is reached, so that the comparator 16 stops outputting the coincidence signal, and s16 becomes "0". Therefore, the output signal a of the AND circuit 38 outputs a logical value “0”, so that the stop of the operation of the adder 18 is released, and the increment operation is restarted from the next cycle. As described above, when the address pointer indicates the even last address of the cyclic address in the mode 2 mode, the next address pointer update can be stopped for one cycle. As a result, as shown in FIG. 5, data at addresses 2m + 10 and 2n can be calculated in the first half of the seventh cycle, and normal calculations can be performed thereafter.
[0057]
【The invention's effect】
As described above, according to the present invention, even when a cyclic address is used for a data processing device for double-speed reading, data to be operated is not input to an arithmetic unit with a delay, and an accurate operation is always performed. Therefore, data processing can be executed efficiently.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a data processing device according to an embodiment of the present invention.
FIG. 2 is an explanatory diagram of each mode in the embodiment.
FIG. 3 is a configuration diagram of a mode switching circuit in the embodiment.
FIG. 4 is a configuration diagram of a multiplexer control circuit in the embodiment.
FIG. 5 is an operation timing chart of the data processing device in the embodiment.
FIG. 6 is a configuration diagram of an address pointer update stop circuit in the embodiment.
FIG. 7 is a configuration diagram of a conventional data processing device.
FIG. 8 is an operation timing chart of a conventional data processing device.
FIG. 9 is an operation timing chart of a conventional data processing device.
FIG. 10 is an operation timing chart of a conventional data processing device.
[Explanation of symbols]
1 Data processing unit
2,3 memory
4-6 multiplexer
7-9 Latch circuit
10 arithmetic unit
11 control means
12-15 registers
16 Comparators
17, 18 adder
20 registers
21, 24, 28, 33 OR circuit
22, 23, 25 to 27, 29 to 32, 34, 35 AND circuit
M1, M2, M3 AND circuit
36, 37 AND circuit
38, 39 AND circuit
101, 102 memory
103-105 multiplexer
106-108 Latch circuit
109 arithmetic unit

Claims (1)

演算対象のデータを格納し、1サイクルの前半と後半にそれぞれ偶数アドレスと奇数アドレスの2つのアドレス分に相当するデータを連続して出力する第1及び第2のメモリを備え、前記第1のメモリは巡回アドレスにより読み出されるデータ処理装置において、
前記第1のメモリおよび前記第2のメモリから出力されたデータを演算する演算器と、
前記第1のメモリあるいは前記第2のメモリのいずれかの出力が前記演算器に入力するタイミングを遅延させる遅延手段と、
前記第1のメモリおよび前記第2のメモリの出力を前記遅延手段を介して前記演算器に入力するか前記遅延手段を介さずに前記演算器に入力するかを選択する選択手段と、
前記第1のメモリのアドレスポインタとして機能する第1のアドレス保持手段と、
前記第2のメモリのアドレスポインタとして機能する第2のアドレス保持手段とを備え、
前記選択手段は、3つの動作モードのいずれかに従って動作し、
第1のモードでは、前記第1のメモリの出力および前記第2のメモリの出力の両方を前記遅延手段を介さずに前記演算器に入力し、
第2のモードでは、前記第1のメモリの出力を前記遅延手段を介さずに、前記第2のメモリの出力を前記遅延手段を介して前記演算器に入力し、
第3のモードでは、前記第1のメモリの出力を前記遅延手段を介して、前記第2のメモリの出力を前記遅延手段を介さずに前記演算器に入力し、
前記巡回アドレスが最終番地から先頭番地へと巡回する際、
前記巡回アドレスの最終アドレスが奇数アドレスの時は、いずれの動作モードであっても動作モードを変換せず、
前記巡回アドレスの最終アドレスが偶数アドレスでありかつ動作モードが前記第2モードの時は前記第1モードに、動作モードが前記第3モードの時は前記第1モードに、動作モードが前記第1モードの時は前記第2モードに変換することを特徴とするデータ処理装置。
First and second memories for storing data to be operated and continuously outputting data corresponding to two addresses of an even address and an odd address in the first half and the second half of one cycle, respectively ; In the data processing device in which the memory is read by the cyclic address ,
A computing unit that computes data output from the first memory and the second memory;
Delay means for delaying the timing at which either the output of the first memory or the second memory is input to the arithmetic unit;
Selecting means for selecting whether to input the output of the first memory and the second memory to the arithmetic unit via the delay means or to input to the arithmetic unit without passing through the delay means;
First address holding means functioning as an address pointer of the first memory;
A second address holding means functioning as an address pointer of the second memory;
The selecting means operates according to one of three operation modes,
In the first mode, both the output of the first memory and the output of the second memory are input to the arithmetic unit without passing through the delay means,
In the second mode, the output of the first memory is input to the arithmetic unit via the delay unit without passing the output of the first memory through the delay unit;
In a third mode, the output of the first memory is input to the arithmetic unit via the delay unit, and the output of the second memory is input to the arithmetic unit without passing through the delay unit;
When the cyclic address circulates from the last address to the first address,
When the last address of the cyclic address is an odd address, the operation mode is not converted in any operation mode,
When the last address of the cyclic address is an even address and the operation mode is the second mode, the operation mode is the first mode, when the operation mode is the third mode, the operation mode is the first mode, and the operation mode is the first mode. A data processing device, wherein the mode is converted to the second mode when in the mode .
JP14153895A 1995-06-08 1995-06-08 Data processing device Expired - Fee Related JP3541498B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14153895A JP3541498B2 (en) 1995-06-08 1995-06-08 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14153895A JP3541498B2 (en) 1995-06-08 1995-06-08 Data processing device

Publications (2)

Publication Number Publication Date
JPH08335187A JPH08335187A (en) 1996-12-17
JP3541498B2 true JP3541498B2 (en) 2004-07-14

Family

ID=15294305

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14153895A Expired - Fee Related JP3541498B2 (en) 1995-06-08 1995-06-08 Data processing device

Country Status (1)

Country Link
JP (1) JP3541498B2 (en)

Also Published As

Publication number Publication date
JPH08335187A (en) 1996-12-17

Similar Documents

Publication Publication Date Title
JP3070744B2 (en) Vector processing equipment
US5299320A (en) Program control type vector processor for executing a vector pipeline operation for a series of vector data which is in accordance with a vector pipeline
JP3188467B2 (en) Minimum / maximum value search device
EP0686910B1 (en) Data processing system having a saturation arithmetic operation function
US4757444A (en) Vector processor capable of performing iterative processing
US5812806A (en) Data driven information processor configuring each data packet with a multi-attribute tag having at least two components
EP0201833A2 (en) Instruction processor
JPH03286332A (en) Digital data processor
US5349671A (en) Microprocessor system generating instruction fetch addresses at high speed
US4878189A (en) Microcomputer having Z-flag capable of detecting coincidence at high speed
EP1193594A2 (en) Register renaming apparatus and processor
US5276822A (en) System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction
JP3541498B2 (en) Data processing device
JP2636088B2 (en) Information processing device
US4870606A (en) Trigonometric function preprocessing system
JP2664750B2 (en) Arithmetic device and arithmetic processing method
US5815098A (en) Circuit and method for efficiently expanding compressed data stored in memory
JPH09128241A (en) Method and apparatus for arrangement with reference to belonging function value of language input value of fuzzy logic processor
JP2928566B2 (en) Operand reading device
JPH01273132A (en) Microprocessor
JPH04184535A (en) Parallel arithmetic units
JP2892375B2 (en) Pulse input device
JPH04330519A (en) Multiplier
JPH0477349B2 (en)
JP2591452B2 (en) Data receiving circuit

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040213

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040309

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040322

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080409

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090409

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100409

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110409

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees