JPH0444970B2 - - Google Patents
Info
- Publication number
- JPH0444970B2 JPH0444970B2 JP60178485A JP17848585A JPH0444970B2 JP H0444970 B2 JPH0444970 B2 JP H0444970B2 JP 60178485 A JP60178485 A JP 60178485A JP 17848585 A JP17848585 A JP 17848585A JP H0444970 B2 JPH0444970 B2 JP H0444970B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- register
- data
- data memory
- 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 - Lifetime
Links
- 230000015654 memory Effects 0.000 claims description 38
- 238000004364 calculation method Methods 0.000 claims description 20
- 238000000034 method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- UGFAIRIUMAVXCW-UHFFFAOYSA-N Carbon monoxide Chemical compound [O+]#[C-] UGFAIRIUMAVXCW-UHFFFAOYSA-N 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
- Advance Control (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、デジタルデータ処理装置に関し、特
に既に取り出されたオペランド(演算数)の演算
と同時に次のオペランドのアドレスを算出するア
ドレス算出装置に関する。
に既に取り出されたオペランド(演算数)の演算
と同時に次のオペランドのアドレスを算出するア
ドレス算出装置に関する。
配列処理装置において、第1のデータセツト
(配列)を第2のデータセツトにより繰り返し処
理する(この際、繰り返し毎に第1のデータセツ
トの異なる点から処理を開始する)必要がしばし
ば生じる。例えば、信号波形のサンプルの配列に
よつて表わされた信号をデジタル的にフイルタリ
ングするには、通常コンボリユーシヨンが行なわ
れる。フイルタ特性hによる信号xのコンボリユ
ーシヨンは一般に次のように表現される。
(配列)を第2のデータセツトにより繰り返し処
理する(この際、繰り返し毎に第1のデータセツ
トの異なる点から処理を開始する)必要がしばし
ば生じる。例えば、信号波形のサンプルの配列に
よつて表わされた信号をデジタル的にフイルタリ
ングするには、通常コンボリユーシヨンが行なわ
れる。フイルタ特性hによる信号xのコンボリユ
ーシヨンは一般に次のように表現される。
y(n)=P
〓i=0
h(i)・x(i+n)
ここに、Pはフイルタ特性の係数の個数、iは
データ点の番号(0iP)を示す。この例に
おいて、信号xを表わすデータ点のセツトがまず
対応する係数hと乗算され、これらの積が加算さ
れる。その後、係数が1ポジシヨンずらされこの
処理が繰り返される。フイルタ特性を表わす係数
の各々に対する乗算及び加算処理は、信号波形を
表わす全データセツトが、フイルタ特性を表わす
全係数によりコンボリユーシヨン処理され終わる
まで繰り返される。係数セツトを一巡する間の各
乗算・加算処理後にメモリ内のデータ及び係数の
アドレスを算出しなければならない。フイルタ特
性を表わす係数セツトを一巡した後、係数のスタ
ートアドレスはデータメモリ内の係数セツトの始
めの係数を指定し、波形を表わすデータ点のスタ
ートアドレスは、元のポインタが1だけ更新され
て次のデータ点が指定しなければならない。
データ点の番号(0iP)を示す。この例に
おいて、信号xを表わすデータ点のセツトがまず
対応する係数hと乗算され、これらの積が加算さ
れる。その後、係数が1ポジシヨンずらされこの
処理が繰り返される。フイルタ特性を表わす係数
の各々に対する乗算及び加算処理は、信号波形を
表わす全データセツトが、フイルタ特性を表わす
全係数によりコンボリユーシヨン処理され終わる
まで繰り返される。係数セツトを一巡する間の各
乗算・加算処理後にメモリ内のデータ及び係数の
アドレスを算出しなければならない。フイルタ特
性を表わす係数セツトを一巡した後、係数のスタ
ートアドレスはデータメモリ内の係数セツトの始
めの係数を指定し、波形を表わすデータ点のスタ
ートアドレスは、元のポインタが1だけ更新され
て次のデータ点が指定しなければならない。
配列処理で通常追求される目標は、高速に演算
を行なうことである。高速演算は実時間(リアル
タイム)処理が望ましい場合には特に重要であ
る。上述の例のように、データ点のセツトを繰り
返し処理することが必要である場合、各処理毎に
新しいアドレスを算出しなければならない。即
ち、処理の一巡中にオペランドのアドレスを進
め、各一巡の始めにポインタを再初期化する(ポ
インタが初期化される値の更新も含む)手段が必
要となる。
を行なうことである。高速演算は実時間(リアル
タイム)処理が望ましい場合には特に重要であ
る。上述の例のように、データ点のセツトを繰り
返し処理することが必要である場合、各処理毎に
新しいアドレスを算出しなければならない。即
ち、処理の一巡中にオペランドのアドレスを進
め、各一巡の始めにポインタを再初期化する(ポ
インタが初期化される値の更新も含む)手段が必
要となる。
従来のマイクロプロセツサ装置では、通常スタ
ートアドレスの算出は次のように行なわれてい
る。スタートアドレス、及びスタートアドレスが
更新される量(きざみ)をメモリに記憶させてお
き、新しいアドレスの算出が必要なとき(即ち、
オペランドのセツトの新しい一巡の始めに現在の
アドレスを再初期化するために)これらの値を読
し出して、新しいアドレスを算出する。この処理
は一連のプログラムステツプ、即ち一連の命令に
よつて行なわれる。このような動作を行なう装置
として、例えばテキサスインスツルメント社製の
TMS320マイクロプロセツサ、フエアチヤイルド
社製のF9445マイクロプロセツサ、RCA社製の
ATMACマイクロプロセツサがある。このよう
なプログラムステツプは、オーバヘツド動作を要
求し、配列処理の実行にかかる時間を増加させ
る。
ートアドレスの算出は次のように行なわれてい
る。スタートアドレス、及びスタートアドレスが
更新される量(きざみ)をメモリに記憶させてお
き、新しいアドレスの算出が必要なとき(即ち、
オペランドのセツトの新しい一巡の始めに現在の
アドレスを再初期化するために)これらの値を読
し出して、新しいアドレスを算出する。この処理
は一連のプログラムステツプ、即ち一連の命令に
よつて行なわれる。このような動作を行なう装置
として、例えばテキサスインスツルメント社製の
TMS320マイクロプロセツサ、フエアチヤイルド
社製のF9445マイクロプロセツサ、RCA社製の
ATMACマイクロプロセツサがある。このよう
なプログラムステツプは、オーバヘツド動作を要
求し、配列処理の実行にかかる時間を増加させ
る。
したがつて、スタートアドレス及び現在のアド
レスに追従し、配列処理がデータセツトを一巡す
るとき新しいアドレスを算出し、指定されたオペ
ランドの演算と同時に、計算手順を通過する毎に
新しいスタートアドレスを算出して配列処理動作
の速度を最高にする手段を実現することが望まれ
る。
レスに追従し、配列処理がデータセツトを一巡す
るとき新しいアドレスを算出し、指定されたオペ
ランドの演算と同時に、計算手順を通過する毎に
新しいスタートアドレスを算出して配列処理動作
の速度を最高にする手段を実現することが望まれ
る。
本発明の目的は、データ処理システム内の演算
処理装置の命令実行動作中にデータメモリの所定
のデータ列をアクセスする為のアドレス列を高速
に発生することが可能なアドレス算出装置を提供
することである。
処理装置の命令実行動作中にデータメモリの所定
のデータ列をアクセスする為のアドレス列を高速
に発生することが可能なアドレス算出装置を提供
することである。
本発明のアドレス算出装置は、データメモリと
これに入出力されるデータ列を演算処理する演算
処理装置とを含むデータ処理システム内に設けら
れ、演算処理装置の動作中にデータメモリ内の複
数のデータ列を夫々アドレスループ毎にアクセス
するアドレス列を順次発生する為のアドレス算出
装置である。
これに入出力されるデータ列を演算処理する演算
処理装置とを含むデータ処理システム内に設けら
れ、演算処理装置の動作中にデータメモリ内の複
数のデータ列を夫々アドレスループ毎にアクセス
するアドレス列を順次発生する為のアドレス算出
装置である。
このアドレス算出装置の構成は、データメモリ
に各アドレスループ毎に供給するアドレス列の所
定のスタートアドレスを記憶する第1アドレスレ
ジスタと、データメモリに各アドレスループ毎に
供給するアドレ列のカレントアドレスを記憶する
第2アドレスレジスタと、第1アドレスレジスタ
及び第2アドレスレジスタの出力アドレスの何れ
か一方を上記データメモリに選択的に供給するア
ドレスマルチプレクサと、第1アドレスレジスタ
から現在のアドレスループのスタートアドレスが
データメモリに供給されるとき、スタートアドレ
スを所定量変化させた更新スタートアドレスをス
タートし、この更新スタートアドレスで第1及び
第2アドレスレジスタを両方とも更新し、その後
第2アドレスレジスタからカレントアドレスがデ
ータメモリに供給されるとき、カレントアドレス
を所定量変化させた更新カレントアドレスを出力
し、この更新カレントアドレスで第2アドレスレ
ジスタを更新する更新ロジツク手段とを具えるも
のである。
に各アドレスループ毎に供給するアドレス列の所
定のスタートアドレスを記憶する第1アドレスレ
ジスタと、データメモリに各アドレスループ毎に
供給するアドレ列のカレントアドレスを記憶する
第2アドレスレジスタと、第1アドレスレジスタ
及び第2アドレスレジスタの出力アドレスの何れ
か一方を上記データメモリに選択的に供給するア
ドレスマルチプレクサと、第1アドレスレジスタ
から現在のアドレスループのスタートアドレスが
データメモリに供給されるとき、スタートアドレ
スを所定量変化させた更新スタートアドレスをス
タートし、この更新スタートアドレスで第1及び
第2アドレスレジスタを両方とも更新し、その後
第2アドレスレジスタからカレントアドレスがデ
ータメモリに供給されるとき、カレントアドレス
を所定量変化させた更新カレントアドレスを出力
し、この更新カレントアドレスで第2アドレスレ
ジスタを更新する更新ロジツク手段とを具えるも
のである。
本発明のアドレス算出装置は、演算処理装置の
動作中に並列処理動作でアドレスを高速に算出す
る。特に、現在のアドレスループのスタートアド
レスをデータメモリに供給するときに、そのスタ
ートアドレスを所定量変化させて、次のアドレス
ループのスタートアドレスである更新スタートア
ドレスを発生し、この更新スタートアドレスで第
1及び第2アドレスレジスタを同時に更新するの
で、第2アドレスレジスタのカレントアドレスを
歩進すると同時に第1アドレスレジスタに予め次
のアドレスループのスタートアドレスを準備して
おくことが出来る。よつて、次のアドレスループ
を開始するにはマルチプレクサで第1アドレスレ
ジスタを選択する。
動作中に並列処理動作でアドレスを高速に算出す
る。特に、現在のアドレスループのスタートアド
レスをデータメモリに供給するときに、そのスタ
ートアドレスを所定量変化させて、次のアドレス
ループのスタートアドレスである更新スタートア
ドレスを発生し、この更新スタートアドレスで第
1及び第2アドレスレジスタを同時に更新するの
で、第2アドレスレジスタのカレントアドレスを
歩進すると同時に第1アドレスレジスタに予め次
のアドレスループのスタートアドレスを準備して
おくことが出来る。よつて、次のアドレスループ
を開始するにはマルチプレクサで第1アドレスレ
ジスタを選択する。
第2及び第3図を参照するに、データ点D1〜
D12は、係数C1〜C6によつて表わされた関数に
より処理されるべきサンプル信号波形を表わす。
これらデータ点及び係数のセツトは処理される配
列を表わし、第2図の一酸化された装置のデータ
メモリ10内に蓄積された値に対応している。こ
れらの値は夫々メモリアドレスを有する。典型的
な応用例では、データ配列は係数配列によつてコ
ンボリユーシヨン処理される。即ち、D1及びC1
が、アドレスユニツト14により与えられたアド
レスに基づいてメモリ10から取り出され、これ
らは演算ユニツト12で乗算され、その積は演算
ユニツト12内に蓄えられる。次にD2及びC2が
取り出され乗算され、同様の処理が続き、D6及
びC6が取り出され乗算される。この過程では各
積は加算されていく。最終の合計は通常、メモリ
に蓄積される(そうでない場合もある)。その後、
データ配列の第2のデータ点から始めて同じ手順
が繰り返される。即ち、D2がC1と、D3がC2と、
…、D7がC6と乗算される。この処理は所定のデ
ータ点が全係数によつて乗算されるに必要な回数
だけ繰り返される。
D12は、係数C1〜C6によつて表わされた関数に
より処理されるべきサンプル信号波形を表わす。
これらデータ点及び係数のセツトは処理される配
列を表わし、第2図の一酸化された装置のデータ
メモリ10内に蓄積された値に対応している。こ
れらの値は夫々メモリアドレスを有する。典型的
な応用例では、データ配列は係数配列によつてコ
ンボリユーシヨン処理される。即ち、D1及びC1
が、アドレスユニツト14により与えられたアド
レスに基づいてメモリ10から取り出され、これ
らは演算ユニツト12で乗算され、その積は演算
ユニツト12内に蓄えられる。次にD2及びC2が
取り出され乗算され、同様の処理が続き、D6及
びC6が取り出され乗算される。この過程では各
積は加算されていく。最終の合計は通常、メモリ
に蓄積される(そうでない場合もある)。その後、
データ配列の第2のデータ点から始めて同じ手順
が繰り返される。即ち、D2がC1と、D3がC2と、
…、D7がC6と乗算される。この処理は所定のデ
ータ点が全係数によつて乗算されるに必要な回数
だけ繰り返される。
データ点を対応する係数により乗算し、その積
を加算する処理は、繰り返し実行される一連のス
テツプ(即ち、ループ)から成る。このループを
通過する間、アドレスユニツト14は、乗算され
るべき現在のデータ及び係数値のアドレスをデー
タメモリ10に与えなければならない。よつて、
これらのアドレスは、各取出・乗算・加算動作に
伴つて変化する必要がある。ループの通過に先立
つて、アドレスユニツトは第1の係数のアドレス
及び新しいスタートデータ点のアドレスを指定し
なければならない。尚、この配列処理の例は本発
明を説明するための例題として用いたものである
が、他の多くの配列処理アルゴリズムは、連続す
る一連の動作に伴い1個以上のアドレスから始ま
るデータ配列に対応する1個以上のアドレス列を
繰り返し発生することを必要とし、本発明はこの
ような多くのアルゴリズムに適用し得るものであ
る。
を加算する処理は、繰り返し実行される一連のス
テツプ(即ち、ループ)から成る。このループを
通過する間、アドレスユニツト14は、乗算され
るべき現在のデータ及び係数値のアドレスをデー
タメモリ10に与えなければならない。よつて、
これらのアドレスは、各取出・乗算・加算動作に
伴つて変化する必要がある。ループの通過に先立
つて、アドレスユニツトは第1の係数のアドレス
及び新しいスタートデータ点のアドレスを指定し
なければならない。尚、この配列処理の例は本発
明を説明するための例題として用いたものである
が、他の多くの配列処理アルゴリズムは、連続す
る一連の動作に伴い1個以上のアドレスから始ま
るデータ配列に対応する1個以上のアドレス列を
繰り返し発生することを必要とし、本発明はこの
ような多くのアルゴリズムに適用し得るものであ
る。
第2図の一般化された装置において、アドレス
の算出は演算ユニツト12が演算動作を終了する
のにかかる時間(即ち、データ処理装置の1演算
命令サイクル)内にアドレスユニツト14で行な
われる。上述の例では、1個のデータ点と1個の
係数とが乗算されている間に、次のデータ点とア
ドレスがメモリに送出され、その次のデータ点の
アドレスがアドレスユニツト14で算出される。
積が前の積に加算される間に、次の係数のアドレ
スがメモリに送出され、その次の係数のアドレス
が算出される。このことから次のことが想定され
る。即ち、当該技術分野では周知であるとおり、
データメモリ10は、アドレスを受けると自動的
にその内容を演算ユニツトへ出力し、演算ユニツ
ト12はオペランドを一時的に蓄積するレジスタ
を有する。本発明のアドレス算出装置は種々の異
なるプロセツサアーキテクチヤーに適合するが、
データとプログラム命令とに別個のメモリを設
け、プログラム命令回路、演算ユニツト、アドレ
スユニツトのすべては、本発明の効果を最大限に
発揮するため、同時に独立して動作することが望
ましい。
の算出は演算ユニツト12が演算動作を終了する
のにかかる時間(即ち、データ処理装置の1演算
命令サイクル)内にアドレスユニツト14で行な
われる。上述の例では、1個のデータ点と1個の
係数とが乗算されている間に、次のデータ点とア
ドレスがメモリに送出され、その次のデータ点の
アドレスがアドレスユニツト14で算出される。
積が前の積に加算される間に、次の係数のアドレ
スがメモリに送出され、その次の係数のアドレス
が算出される。このことから次のことが想定され
る。即ち、当該技術分野では周知であるとおり、
データメモリ10は、アドレスを受けると自動的
にその内容を演算ユニツトへ出力し、演算ユニツ
ト12はオペランドを一時的に蓄積するレジスタ
を有する。本発明のアドレス算出装置は種々の異
なるプロセツサアーキテクチヤーに適合するが、
データとプログラム命令とに別個のメモリを設
け、プログラム命令回路、演算ユニツト、アドレ
スユニツトのすべては、本発明の効果を最大限に
発揮するため、同時に独立して動作することが望
ましい。
第1図は、本発明のアドレス算出装置の好適実
施例を示す。各アドレスループ毎にアクセスされ
るデータ列の最初のデータに対応するスタートア
ドレスは第1アドレスメモリ(ARA)16に蓄
積される。ARA16は、好ましくは1組の蓄積
レジスタであり、データ配列の各セツトのスター
トアドレスを蓄積する。現在のアドレスループ内
のカレントアドレスは第2アドレスメモリ
(ARB)18に蓄積される。ARB18も好まし
くは1組の蓄積レジスタである。ARA16及び
ARB18内のアドレスは、新しい(更新)アド
レスの供給源から夫々入力ポート20及び22を
介して供給される。
施例を示す。各アドレスループ毎にアクセスされ
るデータ列の最初のデータに対応するスタートア
ドレスは第1アドレスメモリ(ARA)16に蓄
積される。ARA16は、好ましくは1組の蓄積
レジスタであり、データ配列の各セツトのスター
トアドレスを蓄積する。現在のアドレスループ内
のカレントアドレスは第2アドレスメモリ
(ARB)18に蓄積される。ARB18も好まし
くは1組の蓄積レジスタである。ARA16及び
ARB18内のアドレスは、新しい(更新)アド
レスの供給源から夫々入力ポート20及び22を
介して供給される。
データがメモリ内に“ページ”状に記憶される
場合、データメモリに送出されるべきアドレスの
上位ビツトを保持するページアドレスメモリ
(PR)24も設け、ARA及びARBがその下位ビ
ツトを保持するようになすことが望ましい。
ARA,ARBと同様に、PR24は好ましくは複
数のレジスタから成り、各配列データが蓄積され
るページを表わすアドレス部分を保持する。ま
た、ARA,ARBと同様、PRはそのアドレスビ
ツトを更新アドレスの供給源から入力ポート26
を介して受ける。特定の動作の間にARA,
ARB,PR内のどのレジスタにアドレスが出し入
れされるかの情報はレジスタインデツクス入力2
8から得られる。この情報は、適当な構成のプロ
グラム命令回路(図示せず)によつて供給される
プロセツサ命令コードの一部である。
場合、データメモリに送出されるべきアドレスの
上位ビツトを保持するページアドレスメモリ
(PR)24も設け、ARA及びARBがその下位ビ
ツトを保持するようになすことが望ましい。
ARA,ARBと同様に、PR24は好ましくは複
数のレジスタから成り、各配列データが蓄積され
るページを表わすアドレス部分を保持する。ま
た、ARA,ARBと同様、PRはそのアドレスビ
ツトを更新アドレスの供給源から入力ポート26
を介して受ける。特定の動作の間にARA,
ARB,PR内のどのレジスタにアドレスが出し入
れされるかの情報はレジスタインデツクス入力2
8から得られる。この情報は、適当な構成のプロ
グラム命令回路(図示せず)によつて供給される
プロセツサ命令コードの一部である。
出力端30からデータメモリに供給されるアド
レスは、PR24の出力とアドレスマルチプレク
サ36の出力34とを結合したものである。アド
レスマルチプレクサ36は最初にその出力を
ARA16の出力36から得る。その後、アドレ
スマルチプレクサ36は一連のステツプ、即ちル
ープが終了するまで、出力をARB18の出力4
0から得る。
レスは、PR24の出力とアドレスマルチプレク
サ36の出力34とを結合したものである。アド
レスマルチプレクサ36は最初にその出力を
ARA16の出力36から得る。その後、アドレ
スマルチプレクサ36は一連のステツプ、即ちル
ープが終了するまで、出力をARB18の出力4
0から得る。
ARAの出力がアドレスマルチプレクサ36に
与えられると同時に、その出力は変更され、即ち
更新され、入力ポート20を介してARA内の対
応するレジスタに戻される。同様に、ARBの出
力がアドレスマルチプレクサ36に供給されると
き、その出力は更新され、更新値が入力ポート2
2を介してARB内の対応するレジスタに戻され
る。ここで特に重要なことは、ARAのスタート
アドレスがデータメモリに供給されると共に更新
されたとき、この更新スタートアドレスはARA
だけでなくARBにもロードされ、ARB内のカレ
ントアドレスを歩進させる点である。通常、アド
レスは単に1だけインクリメントされる。しかし
アドレスは1より大きい値ずつインクリメントし
てもよいし、ある値だけデクリメントするように
してもよい。あるいはまつたく変化させない場合
もあつてもよい。以下にアドレス値を変更する手
法を説明する。
与えられると同時に、その出力は変更され、即ち
更新され、入力ポート20を介してARA内の対
応するレジスタに戻される。同様に、ARBの出
力がアドレスマルチプレクサ36に供給されると
き、その出力は更新され、更新値が入力ポート2
2を介してARB内の対応するレジスタに戻され
る。ここで特に重要なことは、ARAのスタート
アドレスがデータメモリに供給されると共に更新
されたとき、この更新スタートアドレスはARA
だけでなくARBにもロードされ、ARB内のカレ
ントアドレスを歩進させる点である。通常、アド
レスは単に1だけインクリメントされる。しかし
アドレスは1より大きい値ずつインクリメントし
てもよいし、ある値だけデクリメントするように
してもよい。あるいはまつたく変化させない場合
もあつてもよい。以下にアドレス値を変更する手
法を説明する。
ARA16の出力38は第1の仲介マルチプレ
クサ44に入力される。マルチプレクサ44は、
またその入力として入力端46から“0”のセツ
トを、入力端48から“1”のセツトを、Xレジ
スタ52からその出力50(通常、オフセツト
値)を、更にYレジスタ56からの出力54を受
ける。もう1つの仲介マルチプレクサ58は、そ
の入力としてARB18から出力40を、PR24
から出力32を、入力端60から“0”のセツト
を、更にXレジスタ52から出力50を受ける。
算術演算または論理演算を選択的に行なうことが
できる算術論理ユニツト(ALU)62には2つ
の入力が与えられる。その1つは第1仲介マルチ
プレクサ44の出力64であり、他の1つは第2
仲介マルチプレクサ58の出力66である。
ALU62へのこの両入力はALU62により処理
されて出力68を発生する。
クサ44に入力される。マルチプレクサ44は、
またその入力として入力端46から“0”のセツ
トを、入力端48から“1”のセツトを、Xレジ
スタ52からその出力50(通常、オフセツト
値)を、更にYレジスタ56からの出力54を受
ける。もう1つの仲介マルチプレクサ58は、そ
の入力としてARB18から出力40を、PR24
から出力32を、入力端60から“0”のセツト
を、更にXレジスタ52から出力50を受ける。
算術演算または論理演算を選択的に行なうことが
できる算術論理ユニツト(ALU)62には2つ
の入力が与えられる。その1つは第1仲介マルチ
プレクサ44の出力64であり、他の1つは第2
仲介マルチプレクサ58の出力66である。
ALU62へのこの両入力はALU62により処理
されて出力68を発生する。
ALU62の出力68は今1つのマルチプレク
サ70に入力される。マルチプレクサ70の出力
は、ARA16,ARB18,PR24,Xレジス
タ52、Yレジスタ56に入力される。マルチプ
レクサ70の出力によつてARA,ARB,PR内
のアドレスを更新し、Xレジスタ及びYレジスタ
内の値を変更することができる。例えば、ARA
16の出力がマルチプレクサ44に選択されて、
マルチプレクサ58により選択された入力の値と
共にALU62に入力され、この両値はALU62
により算術的または論理的に演算されて出力端6
8に新しい値を発生する。Xレジスタ62に1を
置数し、これをマルチプレクサ58の入力として
選択し、ARA内の選択されたレジスタの値に加
算することによりARA内のスタートアドレスを
1だけインクリメントすることができる。ALU
62の出力はARAの選択されたレジスタの値に
1を足したものになる。このARAの値に1を足
した数はマルチプレクサ70により選択され
ARAの入力ポート20へ送られる。よつて、そ
の値はARAの選択されたレジスタに戻され、
ARAのそのレジスタが1だけインクリメントさ
れたことになる。マルチプレクサ70のこの出力
はARBの入力ポート22へも入力され、ARB内
の対応する現在のアドレスにとつて代れる。よつ
て、(スタートアドレスが更新された)データセ
ツトの現在のアドレスを歩進する。これは、上述
したコンボリユーシヨンの例で、データ配列のス
タートアドレスを1データ点だけシフトし、デー
タ配列の現在のアドレスを新しいループの次のス
テツプへ進める動作に対応する。
サ70に入力される。マルチプレクサ70の出力
は、ARA16,ARB18,PR24,Xレジス
タ52、Yレジスタ56に入力される。マルチプ
レクサ70の出力によつてARA,ARB,PR内
のアドレスを更新し、Xレジスタ及びYレジスタ
内の値を変更することができる。例えば、ARA
16の出力がマルチプレクサ44に選択されて、
マルチプレクサ58により選択された入力の値と
共にALU62に入力され、この両値はALU62
により算術的または論理的に演算されて出力端6
8に新しい値を発生する。Xレジスタ62に1を
置数し、これをマルチプレクサ58の入力として
選択し、ARA内の選択されたレジスタの値に加
算することによりARA内のスタートアドレスを
1だけインクリメントすることができる。ALU
62の出力はARAの選択されたレジスタの値に
1を足したものになる。このARAの値に1を足
した数はマルチプレクサ70により選択され
ARAの入力ポート20へ送られる。よつて、そ
の値はARAの選択されたレジスタに戻され、
ARAのそのレジスタが1だけインクリメントさ
れたことになる。マルチプレクサ70のこの出力
はARBの入力ポート22へも入力され、ARB内
の対応する現在のアドレスにとつて代れる。よつ
て、(スタートアドレスが更新された)データセ
ツトの現在のアドレスを歩進する。これは、上述
したコンボリユーシヨンの例で、データ配列のス
タートアドレスを1データ点だけシフトし、デー
タ配列の現在のアドレスを新しいループの次のス
テツプへ進める動作に対応する。
同様に、ARB18の選択されたレジスタから
アドレスがデータメモリへ送出されるとき、この
データは仲介マルチプレクサ58を介してALU
62へも送出される。と同時に、仲介マルチプレ
クサ44によつて例えばXレジスタからの数値が
選択され、アドレスに加算され(即ち、アドレス
を進め)、この加算結果がARBの元のレジスタに
戻される。これは、上述のコンボリユーシヨンの
例でデータ点または係数の歩進に対応する。
アドレスがデータメモリへ送出されるとき、この
データは仲介マルチプレクサ58を介してALU
62へも送出される。と同時に、仲介マルチプレ
クサ44によつて例えばXレジスタからの数値が
選択され、アドレスに加算され(即ち、アドレス
を進め)、この加算結果がARBの元のレジスタに
戻される。これは、上述のコンボリユーシヨンの
例でデータ点または係数の歩進に対応する。
このように、Xレジスタ52は、ARA16,
ARB18,PR24の値を変化させる変化量を与
える動きをする。Yレジスタ56は、ARB18,
PR24の値の変化量を与えることできる。Xレ
ジスタ及びYレジスタにはマルチプレクサ70を
介してレジスタバス72から値がロードされる。
この値はデータ処理装置全体内の他の算術ユニツ
ト(上述のプログラム命令回路の如き)から出力
されたものである。例えば、Xレジスタにある値
をロードし、ループの始めに1つの配列のスター
トアドレスを再初期化するためにこの値だけ
ARA内の1レジスタの値をインクリメントし、
かつYレジスタにもある値をロードし、ループの
通過中に他の配列の現在のアドレスを算出するた
めにこの値だけARB内の1レジスタの値をイン
クリメントすることができる。
ARB18,PR24の値を変化させる変化量を与
える動きをする。Yレジスタ56は、ARB18,
PR24の値の変化量を与えることできる。Xレ
ジスタ及びYレジスタにはマルチプレクサ70を
介してレジスタバス72から値がロードされる。
この値はデータ処理装置全体内の他の算術ユニツ
ト(上述のプログラム命令回路の如き)から出力
されたものである。例えば、Xレジスタにある値
をロードし、ループの始めに1つの配列のスター
トアドレスを再初期化するためにこの値だけ
ARA内の1レジスタの値をインクリメントし、
かつYレジスタにもある値をロードし、ループの
通過中に他の配列の現在のアドレスを算出するた
めにこの値だけARB内の1レジスタの値をイン
クリメントすることができる。
ALUの出力68もバツフア74を介してレジ
スタバス72に載せ、装置の他の算術ユニツトの
使用に供することができる。ある場合には、再算
出されたアドレスが零であるかどうかを判定する
ことが望まれるが、この判定はALU出力68か
ら直接行なえる。アドレス算出装置の上述の機能
的特徴は関連した制御ロジツク(図示せず)を含
む。上述の装置を実施するめの特定の回路の設計
及び構成は当該技術分野では周知であり、本発明
には次の点を除いて特別な設計は不要である。本
発明の重要な点は、ARA,ARB,PRへ入力す
るためのアドレスの出力及びアドレスの再算出は
いずれも1ステツプ内に生じ、その出力のARA,
ARB,PRへの蓄積は次のステツプ内で生じる。
その結果、データメモリへのアドレス供給及びア
ドレスの更新をデータ処理ロジツクの1つの演算
命令サイクル(即ち、演算ユニツト12が1演算
命令を完全に実行するに要する時間)内に行なう
ことができる。通常、この動作は、演算ユニツト
内の一時蓄積レジスタの如き蓄積ロケーシヨンか
らオペランドを取り出し、このオペランドに対し
て演算を行ない、その結果を蓄積するという過程
を伴う。
スタバス72に載せ、装置の他の算術ユニツトの
使用に供することができる。ある場合には、再算
出されたアドレスが零であるかどうかを判定する
ことが望まれるが、この判定はALU出力68か
ら直接行なえる。アドレス算出装置の上述の機能
的特徴は関連した制御ロジツク(図示せず)を含
む。上述の装置を実施するめの特定の回路の設計
及び構成は当該技術分野では周知であり、本発明
には次の点を除いて特別な設計は不要である。本
発明の重要な点は、ARA,ARB,PRへ入力す
るためのアドレスの出力及びアドレスの再算出は
いずれも1ステツプ内に生じ、その出力のARA,
ARB,PRへの蓄積は次のステツプ内で生じる。
その結果、データメモリへのアドレス供給及びア
ドレスの更新をデータ処理ロジツクの1つの演算
命令サイクル(即ち、演算ユニツト12が1演算
命令を完全に実行するに要する時間)内に行なう
ことができる。通常、この動作は、演算ユニツト
内の一時蓄積レジスタの如き蓄積ロケーシヨンか
らオペランドを取り出し、このオペランドに対し
て演算を行ない、その結果を蓄積するという過程
を伴う。
以上、本発明の実施例について説明したが、使
用した用語及び表現は単に説明のためのものであ
つて、何ら制限を課すものではなく、その均等物
を排除する意図はない。
用した用語及び表現は単に説明のためのものであ
つて、何ら制限を課すものではなく、その均等物
を排除する意図はない。
本発明のアドレス算出装置は、演算処理装置の
演算処理とは独立にアドレス算出を高速に並列処
理し得る。特に、現在のアドレスループの最初の
段階で次のアドレスループのスタートアドレスを
求めて第1及び第2のアドレスレジスタに同時に
記憶するので、カレントアドレスの歩進と次のア
ドレスループのスタートアドレスの準備とが同時
に実行され、次のアドレスループに進む際には予
め準備された第1アドレスレジスタを選択するだ
けで良く、複数のアドレスループに亘つてアドレ
ス列を高速に発生し得る。
演算処理とは独立にアドレス算出を高速に並列処
理し得る。特に、現在のアドレスループの最初の
段階で次のアドレスループのスタートアドレスを
求めて第1及び第2のアドレスレジスタに同時に
記憶するので、カレントアドレスの歩進と次のア
ドレスループのスタートアドレスの準備とが同時
に実行され、次のアドレスループに進む際には予
め準備された第1アドレスレジスタを選択するだ
けで良く、複数のアドレスループに亘つてアドレ
ス列を高速に発生し得る。
第1図は、本発明によるアドレス算出装置の好
適実施例のブロツク図、第2図は、本発明のアド
レス算出装置を有効に用いることができる配列処
理アーキテクチヤーの一部分の一般例を示すブロ
ツク図、第3図は、配列処理計算に用いるデータ
点及び係数のセツトの一例を示す説明図である。 図中、16は第1アドレスレジスタ、18は第
2アドレスレジスタ、36はアドレスマルチプレ
クサ、44,52,56,58,62,70は更
新ロジツク手段を示す。
適実施例のブロツク図、第2図は、本発明のアド
レス算出装置を有効に用いることができる配列処
理アーキテクチヤーの一部分の一般例を示すブロ
ツク図、第3図は、配列処理計算に用いるデータ
点及び係数のセツトの一例を示す説明図である。 図中、16は第1アドレスレジスタ、18は第
2アドレスレジスタ、36はアドレスマルチプレ
クサ、44,52,56,58,62,70は更
新ロジツク手段を示す。
Claims (1)
- 【特許請求の範囲】 1 データメモリと該データメモリに入出力され
るデータ列を演算処理する演算処理装置とを含む
データ処理システム内に設けられ、上記演算処理
装置の動作中に上記データメモリ内の複数のデー
タ列を夫々アドレスループ毎にアクセスするアド
レス列を順次発生するアドレス算出装置であつ
て、 上記データメモリに各アドレスループ毎に供給
するアドレス列の所定のスタートアドレスを記憶
する第1アドレスレジスタと、 上記データメモリに各アドレスループ毎に供給
するアドレス列のカレントアドレスを記憶する第
2アドレスレジスタと、 上記第1アドレスレジスタ及び第2アドレスレ
ジスタの出力アドレスの何れか一方を上記データ
メモリに選択的に供給するアドレスマルチプレク
サと、 上記第1アドレスレジスタから現在のアドレス
ループのスタートアドレスが上記データメモリに
供給されるとき、上記スタートアドレスを第1所
定量変化させた更新スタートアドレスを出力し、
該更新スタートアドレスで上記第1及び第2アド
レスレジスタを両方とも更新し、その後上記第2
アドレスレジスタからカレントアドレスが上記デ
ータメモリに供給されるとき、上記カレントアド
レスを第2所定量変化させた更新カレントアドレ
スを出力し、該更新カレントアドレスで上記第2
アドレスレジスタを更新する更新ロジツク手段と
を具えることを特徴とするアドレス算出装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/641,098 US4704680A (en) | 1984-08-15 | 1984-08-15 | Address computation system for updating starting addresses of data arrays in an array processor within an instruction cycle |
US641098 | 1984-08-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6160133A JPS6160133A (ja) | 1986-03-27 |
JPH0444970B2 true JPH0444970B2 (ja) | 1992-07-23 |
Family
ID=24570924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60178485A Granted JPS6160133A (ja) | 1984-08-15 | 1985-08-13 | アドレス算出装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US4704680A (ja) |
JP (1) | JPS6160133A (ja) |
CA (1) | CA1223664A (ja) |
DE (1) | DE3507584A1 (ja) |
FR (1) | FR2569288B1 (ja) |
GB (1) | GB2163280B (ja) |
NL (1) | NL8500683A (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3619036A1 (de) * | 1986-06-06 | 1987-12-10 | Wajda Eligiusz Dipl Ing | Verfahren zur steuerung von datenverarbeitenden einrichtungen |
US5050070A (en) * | 1988-02-29 | 1991-09-17 | Convex Computer Corporation | Multi-processor computer system having self-allocating processors |
US5159686A (en) * | 1988-02-29 | 1992-10-27 | Convex Computer Corporation | Multi-processor computer system having process-independent communication register addressing |
JP2617974B2 (ja) * | 1988-03-08 | 1997-06-11 | 富士通株式会社 | データ処理装置 |
US5163149A (en) * | 1988-11-02 | 1992-11-10 | International Business Machines Corporation | Combining switch for reducing accesses to memory and for synchronizing parallel processes |
US5265225A (en) * | 1990-02-21 | 1993-11-23 | Harris Corporation | Digital signal processing address sequencer |
EP0443551B1 (en) * | 1990-02-21 | 1997-05-02 | Matsushita Electric Industrial Co., Ltd. | A multidimensional address generator and a system for controlling the generator |
US5832533A (en) * | 1995-01-04 | 1998-11-03 | International Business Machines Corporation | Method and system for addressing registers in a data processing unit in an indexed addressing mode |
US5983333A (en) * | 1997-08-27 | 1999-11-09 | Lucent Technologies Inc. | High speed module address generator |
US6049858A (en) * | 1997-08-27 | 2000-04-11 | Lucent Technologies Inc. | Modulo address generator with precomputed comparison and correction terms |
US6047364A (en) * | 1997-08-27 | 2000-04-04 | Lucent Technologies Inc. | True modulo addressing generator |
US6529983B1 (en) | 1999-11-03 | 2003-03-04 | Cisco Technology, Inc. | Group and virtual locking mechanism for inter processor synchronization |
US6892237B1 (en) | 2000-03-28 | 2005-05-10 | Cisco Technology, Inc. | Method and apparatus for high-speed parsing of network messages |
US6505269B1 (en) | 2000-05-16 | 2003-01-07 | Cisco Technology, Inc. | Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system |
WO2001090888A1 (en) * | 2000-05-23 | 2001-11-29 | Theis Jean Paul | A data processing system having an address generation unit with hardwired multidimensional memory indexing support |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5965377A (ja) * | 1982-10-05 | 1984-04-13 | Nippon Telegr & Teleph Corp <Ntt> | アドレス制御方法およびその装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5852265B2 (ja) * | 1977-01-12 | 1983-11-21 | 株式会社日立製作所 | デ−タ処理装置 |
US4130868A (en) * | 1977-04-12 | 1978-12-19 | International Business Machines Corporation | Independently controllable multiple address registers for a data processor |
JPS54127653A (en) * | 1978-03-28 | 1979-10-03 | Toshiba Corp | Data processor |
US4365292A (en) * | 1979-11-26 | 1982-12-21 | Burroughs Corporation | Array processor architecture connection network |
US4370732A (en) * | 1980-09-15 | 1983-01-25 | Ibm Corporation | Skewed matrix address generator |
US4439827A (en) * | 1981-12-28 | 1984-03-27 | Raytheon Company | Dual fetch microsequencer |
DE3483489D1 (de) * | 1983-04-13 | 1990-12-06 | Nec Corp | Speicherzugriffseinrichtung in einem datenverarbeitungssystem. |
-
1984
- 1984-08-15 US US06/641,098 patent/US4704680A/en not_active Expired - Lifetime
-
1985
- 1985-02-25 GB GB08504822A patent/GB2163280B/en not_active Expired
- 1985-03-04 DE DE19853507584 patent/DE3507584A1/de active Granted
- 1985-03-11 NL NL8500683A patent/NL8500683A/nl not_active Application Discontinuation
- 1985-03-12 FR FR8503613A patent/FR2569288B1/fr not_active Expired - Lifetime
- 1985-03-13 CA CA000476418A patent/CA1223664A/en not_active Expired
- 1985-08-13 JP JP60178485A patent/JPS6160133A/ja active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5965377A (ja) * | 1982-10-05 | 1984-04-13 | Nippon Telegr & Teleph Corp <Ntt> | アドレス制御方法およびその装置 |
Also Published As
Publication number | Publication date |
---|---|
FR2569288B1 (fr) | 1990-12-14 |
CA1223664A (en) | 1987-06-30 |
GB8504822D0 (en) | 1985-03-27 |
DE3507584A1 (de) | 1986-02-27 |
FR2569288A1 (fr) | 1986-02-21 |
GB2163280A (en) | 1986-02-19 |
DE3507584C2 (ja) | 1988-10-20 |
US4704680A (en) | 1987-11-03 |
NL8500683A (nl) | 1986-03-03 |
JPS6160133A (ja) | 1986-03-27 |
GB2163280B (en) | 1988-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0444970B2 (ja) | ||
US4539635A (en) | Pipelined digital processor arranged for conditional operation | |
JPH09294069A (ja) | プログラマブルlsiおよびその演算方法 | |
JPH0412503B2 (ja) | ||
US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
JPH07104784B2 (ja) | デジタルデータ処理装置 | |
US4878191A (en) | Multiplication circuit capable of operating at a high speed with a small amount of hardware | |
US5586337A (en) | Programmable controller with timing control | |
JPH034936B2 (ja) | ||
JPH0363092B2 (ja) | ||
JPH0650512B2 (ja) | デ−タ処理装置 | |
JP2003241960A (ja) | プロセッサ、該プロセッサにおける演算命令処理方法及び演算制御方法 | |
JPH0528431B2 (ja) | ||
JP2999101B2 (ja) | インターリーブ装置 | |
JP2885197B2 (ja) | 演算処理装置及び演算処理方法 | |
JP2654451B2 (ja) | データ出力方法 | |
JP2989830B2 (ja) | ベクトル処理方法 | |
JP3278441B2 (ja) | ベクトル処理装置 | |
JP3693873B2 (ja) | マスクビット数演算装置、ベクトル処理装置、情報処理装置 | |
JP2741869B2 (ja) | 座標逆変換プロセッサ | |
JPS5995646A (ja) | 演算制御装置 | |
JP2989829B2 (ja) | ベクトル処理方法 | |
JPH0553759A (ja) | 固定小数点演算ユニツト | |
JP2764947B2 (ja) | 命令制御方式 | |
JPS63298633A (ja) | パイプライン処理装置における命令フェッチ制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |