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

データ処理装置

Info

Publication number
JP2000099397A
JP2000099397A JP10264103A JP26410398A JP2000099397A JP 2000099397 A JP2000099397 A JP 2000099397A JP 10264103 A JP10264103 A JP 10264103A JP 26410398 A JP26410398 A JP 26410398A JP 2000099397 A JP2000099397 A JP 2000099397A
Authority
JP
Japan
Prior art keywords
address
data
offset
bus
access
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.)
Withdrawn
Application number
JP10264103A
Other languages
English (en)
Inventor
Atsuyoshi Ishikawa
敦義 石川
Yasuhiro Sagesaka
康博 提坂
Mitsuyoshi Inoue
光義 井上
Masashi Katagiri
雅視 片桐
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.)
Hitachi Ltd
Renesas Semiconductor Package and Test Solutions Co Ltd
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi Ltd
Hitachi ULSI Systems Co Ltd
Hitachi Yonezawa Electronics 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 Hitachi Ltd, Hitachi ULSI Systems Co Ltd, Hitachi Yonezawa Electronics Co Ltd filed Critical Hitachi Ltd
Priority to JP10264103A priority Critical patent/JP2000099397A/ja
Publication of JP2000099397A publication Critical patent/JP2000099397A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 乗数と被乗数の読み出しを並列化して積和演
算の高速化を実現する。 【解決手段】 中央処理装置(101)によりアクセス
可能な複数の記憶装置(103,104)と、オフセッ
トアドレスが書き換え可能に設定され中央処理装置によ
るリードアクセスに応答して中央処理装置によるアクセ
スアドレスに代え当該アクセスアドレスにオフセットア
ドレスを加算して出力するオフセット調整装置(10
2)とを採用し、記憶装置を双方向データバス(11
2)で個別に中央処理装置にインタフェースし、第1の
記憶装置には中央処理装置からのアクセスアドレスを導
き、第2の記憶装置にはオフセット調整装置からのアド
レスを与える。第1の記憶装置のリードアドレスをオフ
セット調整装置により操作すれば、双方の記憶装置の異
なるアドレスからデータを並列に読み出すことができ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数個の記憶装置
をリードアクセスしながらデータ処理を行うデータ処理
装置に係り、例えば、ディジタルフィルタや相関処理な
ど積和演算が連続するディジタル信号処理の高速化処理
に適用して有効な技術に関する。
【0002】
【従来の技術】ディジタル信号処理の特徴は、ディジタ
ルフィルタや高速フーリエ変換(FastFourier Transfor
m、以後FFTと言う)、相関処理にみられるように、
積和演算が数多く扱われることである。従来から、この
ような積和演算を高速に行うために、高速のハードウェ
ア乗算器を内蔵し複数の内部バスを用いて高速パイプラ
イン制御および多重オペレーションが可能なディジタル
・シグナル・プロセッサ(Digital Signal Processor、
以後DSPと言う)や専用LSIが用いられている。
【0003】最近では、CPU(Central Processing U
nit)に乗算機能やキャッシュメモリを内蔵した高速R
ISC(Reduced Instruction Set Computer)プロセッ
サを用いてディジタル信号処理を実現したものがある。
例えば、そのようなディジタル信号処理として、静止画
処理であるJPEG(Joint Photographic coding Expe
rts Group)処理や音声処理であるADPCM(Adaptiv
e Differential PulseCode Modulation)処理などが挙
げられる。
【0004】RISCプロセッサは一般的に命令の種類
が少なく、かつ命令長が一定であるため、命令のデコー
ド(解読)にハード・ワイヤード・ロジックを使うこと
が容易なため、高速なデコード処理が可能である。ま
た、命令長を短くすることによって一度に複数の命令を
フェッチ(読み込み)し後述するパイプライン処理の乱
れを防止することができ、高速化が容易である利点があ
る。
【0005】図6はパイプライン処理の一例を示したも
のである。図6において、中央処理装置が命令1から順
次処理を進めていく場合、その処理はいくつかの段階を
追って行われる。まず初めに命令の読み出しを行うフェ
ッチ処理(F)501、次に命令を解読するデコード処
理(D)502が行われる。最後に命令の実行処理
(E)503が行われる。また、命令の種類によっては
データの読み出しや書き込みが必要になる場合、実行処
理(E)503の直後にデータを参照するメモリアクセ
ス処理(M)504が発生する。パイプライン処理で
は、例えば、4段階の処理で演算を行う場合、4つの命
令がそれぞれ異なる段階で実行することによって効率良
く処理することが可能である。図6の時刻T=5の時、
命令5のフェッチ処理、命令4のデコード処理、命令3
の実行処理が同時に実行されている。
【0006】RISCプロセッサのバス構造はコスト低
減のため命令バスとデータバスを共有したシングル・バ
ス構造が一般的である。そのため、命令を読み出すフェ
ッチ処理とデータを参照するメモリアクセス処理が同時
(同時刻)に発生するとバス競合が生じ、フェッチ処理
またはメモリアクセス処理のいずれかが遅延され、パイ
プライン処理に乱れが生じる。図6の時刻T=7の時の
命令4のメモリアクセス処理と時刻T=8の時の命令7
のフェッチ処理が時刻T=7の時にバス競合を起こし、
フェッチ処理が遅延した様子を示している。この競合を
回避し、パイプライン処理の乱れを防止する手段として
命令長の縮小化が考えられる。データバス幅を32ビッ
トとし、命令長をバス幅の半分の16ビットに固定した
とき、一度のフェッチ処理で前後2つの命令を一度に読
み出せば、フェッチ処理が2回に1回の割合で発生する
ため、メモリアクセス処理とのバス競合の確率が低減す
る。図6は各命令の奇数番目に直後の命令も同時にフェ
ッチする処理を行っており、偶数番目のフェッチ処理
(f)はバスを占有しない。即ち、時刻T=6の時の命
令6のフェッチ処理は既に完了しているため、命令3の
メモリアクセス処理(M)とのバス競合は回避される。
このように、バス競合を低減しパイプライン処理の乱れ
を防止することが、中央処理装置によるデータ処理の高
速化および高効率化のために必要不可欠である。
【0007】図7は2つのデータのメモリアクセス処理
が必要な場合のパイプライン処理の様子を示す。時刻T
=5では、命令3に対するフェッチ処理601と、命令
1に対するメモリアクセス処理が競合しないように、命
令1の2番目のデータのメモリアクセス処理602が遅
延する。同じ現象が時刻T=10,時刻T=15におい
ても発生し、処理時間が長引く原因となっている。
【0008】ところで、前述のようにディジタル信号処
理では積和演算が数多く扱われ、しかも連続した積和演
算が多い。連続した積和演算をディジタルフィルタ処理
を例に説明する。
【0009】図9は有限インパルス応答(Finite Impul
se Response、FIR)フィルタ(以後、FIRフィル
タと言う)のブロック図である。遅延素子801は所定
のビット数のデータを記憶するレジスタであり、1サン
プリング時間の固定遅延を行う。各遅延素子801から
出力されるデータ(被乗数)in[i]〜in[i−n]は
対応する各乗算器802に入力され、それぞれの乗算器
802に設定される係数(乗数)α[0]〜α[n]と乗算
され、加算器803に入力される。
【0010】図9のFIRフィルタで行われる演算は、
サンプリング時間毎の時刻T=iの時の入力をin
[i]、出力をout[i]、乗算器802で用いる係数を
それぞれα[0]〜α[n]とすると、下記数1のように表
すことができる。
【0011】
【数1】
【0012】なお、上記演算は畳み込み(Convolutio
n)演算と呼ばれ、係数α[k](0≦k≦n、nは0以上の
整数)の与え方により何等かの周波数特性を持つディジ
タルフィルタを構成することができる。ディジタル音声
の高調波雑音を除去する低域通過(Low Pass)フィルタ
や音響用エコーキャンセラ、テレビの受信信号からゴー
スト信号を除去するゴーストキャンセラなど幅広く用い
られている。
【0013】数1に示すように積和演算の回数はディジ
タルフィルタのタップ数nおよび入力されるデータ数に
比例する。
【0014】また、一般的に、入力されるデータinは
数十〜数百のデータ数としてまとめて演算する場合が多
く、入力データ列inや係数列α、出力されるデータ列
outは、メモリ上でそれぞれ連続した配置構造を採る
ようにすることが多い。これにより、連続した各データ
ブロックのアドレスポインタを設け、積和演算と同時
(同時刻)にアドレスポインタのインクリメント処理あ
るいはデクリメント処理を行えば、連続した積和演算を
効率よく行える。即ち、アドレス演算によるオーバヘッ
ド処理がなくパイプライン処理の乱れが改善される。
【0015】
【発明が解決しようとする課題】前述のように、RIS
Cプロセッサを用いてディジタル信号処理を行う場合、
命令長を縮小しフェッチ処理回数を削減することにより
バス競合を回避し、また、連続した積和演算を高速に実
行するために乗算器を内蔵し、アドレス演算を積和演算
と並列に実行することによりパイプライン処理の高速化
が可能である。しかしながら、積和演算を実行するため
には、少なくとも乗数、被乗数、命令の3種類のデータ
の読み出しが必要であり、これらを互いに競合すること
なくメモリから読み出す必要がある。前述の従来例で
は、フェッチ処理の削減には成功しているが乗数と被乗
数の読み出しでは相変わらずパイプライン処理が乱れる
場合があることが本発明者によって明らかにされた。
【0016】そこで、本発明者は、サンプリング時刻毎
に乗数と被乗数をCPUによる同一アクセスサイクルで
メモリから一緒に読み出すことについて検討した。ま
た、乗数(係数)はメモリ上の一定のアドレスエリアに
固定的に配置できるが、被乗数(入力データ)は、サン
プリング時刻毎に順次蓄積され、最新のサンプリング時
刻の被乗数データの格納アドレスは逐次変化されること
になる。したがって、サンプリング時刻毎に被乗数を読
み出すアドレスエリアはサンプリング時刻毎に変化され
る。一方、乗数のリーアドアドレスエリアは一定であ
る。また、サンプリング時刻毎の被乗数データの書き込
み動作は乗数データの配置とは無関係に行なわれないけ
ればならない。換言すれば、被乗数データの書き込みに
際して乗数データが一緒に書き換えられることがあって
はならない。逆に、インパルス応答特性を変化させるた
めに乗数データを書き換えるとき一緒に被乗数データが
書き換えられる事態は阻止しなければならない。
【0017】特開昭62−78641号公報には、キャ
ッシュメモリ内の複数のデータアレイ内の複数のブロッ
クのデータを加算器を経たアドレスと加算器を経ないア
ドレスとで一緒に読み出し可能にする技術が記載されて
いる。加算器はアドレスにNを加算することができ、N
はデータアレイ内のブロックのバイト長であると記載さ
れている。これによれば、リニアアドレスに連続して配
置された複数ブロックに対して相隣接する複数ブロック
を一緒にリードアクセスすることができる。
【0018】しかしながら、リードアクセスアドレスに
データブロックのバイト長を加算したアドレスを用いて
も、上記本発明者による検討事項を満足させることはで
きない。
【0019】本発明の目的は、格納アドレスエリアが逐
次変化される複数の被乗数データと格納アドレスエリア
が一定の複数の乗数データとを順番に同一アクセスサイ
クルでメモリから一緒に読み出すことができ、しかも、
乗数データと被乗数データとを個別的に書替え可能なデ
ータ処理装置を提供することにある。
【0020】本発明の別の目的は、積和演算処理のため
の乗数データと被乗数データとの読み出しによるパイプ
ライン処理の乱れを低減できると共に、サンプリング時
刻毎の被乗数データの書き込み動作を乗数データの配置
アドレスとは無関係に行なうことができ、高速な積和演
算を実現することができるデータ処理装置を提供するこ
とにある。
【0021】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0022】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0023】すなわち、データ処理装置(100)は、
中央処理装置(101)と、前記中央処理装置によって
リード・ライトアクセス可能な複数個の記憶装置例えば
第1及び第2の記憶装置(103,104)と、オフセ
ットアドレスが書き換え可能に設定され前記中央処理装
置によるリードアクセスに応答して中央処理装置による
アクセスアドレスに代え当該アクセスアドレスに前記オ
フセットアドレスを加算したアドレスを出力し、前記中
央処理装置によるライトアクセスに応答して中央処理装
置によるアクセスアドレスをそのまま出力するオフセッ
ト調整装置(102)と、前記複数個の記憶装置のデー
タ入出力端子を前記中央処理装置に個別に接続する双方
向データバス(112)と、中央処理装置によるアクセ
スアドレスを前記複数個の記憶装置の内の一部の所定の
記憶装置たとえば前記第1の記憶装置と前記オフセット
調整装置とに供給する第1のアドレスバス(110)
と、前記オフセット調整装置から出力されるアドレスを
前記一部の所定の記憶装置以外の記憶装置たとえば前記
第2の記憶装置に供給する第2のアドレスバス(11
1)とを含む。
【0024】上記により、第1の記憶装置のデータを参
照するためのアドレスをオフセット調整装置により操作
することにより、第1及び第2の記憶装置の異なるアド
レスから中央処理装置にデータを並列に読み出すことが
可能になる。例えば、図4に例示されるように、第1及
び第2の記憶装置(103,104)の並列アクセスビ
ット数が2バイトであって、アドレスの最下位がバイト
アドレスを規定するものとし、メモリアドレスは中央処
理装置のアドレス空間における絶対的なアドレスとして
把握するものとする。時刻iにおける数1の積和演算を
行う場合、アドレスオフセットをOFS1=10とすれ
ば、アクセスアドレス$100に対する中央処理装置の
リードアクセスにより、アドレス$100の乗数α[0]
とアドレス$110の被乗数in[i]とを一緒にリード
アクセスすることができ、以下アクセスアドレスを4ず
つディクリメントしていけば、数1のout[i]を演算
できる。
【0025】前記オフセットアドレスはプログラマブル
に設定可能であるから、サンプリング時刻が異なる毎
に、オフセットアドレスを変化させれば、時刻iの場合
と同様に、順次乗数と被乗数を一緒にリードすることが
できる。例えば、図4の例において、時刻i+1におけ
る数1の積和演算を行う場合には、オフセットアドレス
をOFS2=14に変更することにより、中央処理装置
によるアクセスアドレス$100に対するリードアクセ
スでアドレス$100の乗数α[0]とアドレス$114
の被乗数in[i+1]とを一緒にリードアクセスでき、
中央処理装置によるアクセスアドレス$96に対するリ
ードアクセスでアドレス$96の乗数α[1]とアドレス
$110の被乗数in[i]とを一緒にリードアクセスす
ることができ、以下同様にアクセスアドレスを4ずつデ
ィクリメントしていけば、out[i+1]の結果を得る
ことができる。
【0026】オフセット調整装置による加算演算はリー
ドアクセスに応答して選択され、ライトアクセスの場合
には第1及び第2の双方の記憶装置には同じアドレス信
号が供給され、アクセスアドレス等に従って第1及び第
2の記憶装置は個別的にアクセス可能になる。例えば、
図4の例において、時刻i+1の被乗数データin[i
+1]を第2の記憶装置に書き込むとき、CPUは$1
14をアクセスアドレスとしてライトアクセスを指示す
れば、オフセット加算による並列アクセスは行なわれ
ず、第2の記憶装置だけがライトアクセスされる。
【0027】上記により、積和演算のために必要な2つ
のデータ列のデータを並列に読み出すことができ、パイ
プライン処理の乱れを低減して積和演算を高速に処理す
ることができる。
【0028】データ処理装置を1個の半導体チップに形
成してRISCプロセッサとする場合、前記データバス
及び前記第1のアドレスバスに接続され外部バスサイク
ルを起動可能なバスステートコントローラを含み、ま
た、前記データバスを命令情報とデータ情報の伝送に共
用させてバス構造の簡素化を図ることができる。
【0029】
【発明の実施の形態】図1には本発明に係るデータ処理
装置の一例であるマイクロプロセッサが示される。同図
に示されるマイクロプロセッサ100は、特に制限され
ないが、公知の半導体集積回路製造技術によって単結晶
シリコンのような1個の半導体チップに形成されてい
る。このマイクロプロセッサ100は、特に制限されな
いが、CPU100、オフセット調整装置102、第1
の記憶装置103、第2の記憶装置104及びバスステ
ートコントローラ105を有する。マイクロプロセッサ
100は、内部バスとして第1のアドレスバス110、
第2のアドレスバス111、双方向データバス(以下単
にデータバスとも記す)112、コントロールバス11
3等を有する。データバス112は、特に制限されない
が、32ビットのバス幅を有する。アドレスバス11
0,111に供給されるアドレスは最小単位がバイトア
ドレスを規定する。
【0030】前記CPU101は、特に制限されない
が、算術論理演算器などを有する整数ユニット120と
共に積和演算装置などを有するDSPユニット121を
備える。DSPユニット121にはDSPレジスタ12
2が割り当てられ、整数ユニット120には汎用レジス
タ123が割り当てられる。その他にCPU101には
制御レジスタ124が設けられている。CPU101に
おける命令フェッチ及び命令デコードなどの命令制御は
命令制御部125が行なう。また、演算に必要なデータ
フェッチは命令制御部125から出力される命令デコー
ド信号や制御信号に基づいてデータ制御部126が行な
う。CPU101はバスステートコントローラ105を
介して図示を省略する外部メモリなどから命令をフェッ
チし、その命令を命令制御部125の命令デコーダにて
解読することにより、整数ユニット120やDSPユニ
ット121を用いて当該命令に応じたデータ処理を行
う。
【0031】前記バスステートコントローラ105は、
CPU101によるアクセス対象回路(アクセス対象と
されるアドレスエリア)に応じて、アクセスデータサイ
ズ、アクセスタイム、ウェイトステートの挿入制御など
を行なって、外部バスサイクルを制御する。
【0032】図2には前記記憶装置103,104の一
例が示される。前記記憶装置103,104は、夫々メ
モリ103M,104Mとデコーダ103D,104D
とを有し、DSPユニット121による積和演算のため
のデータメモリとして利用される。記憶装置103,1
04のメモリ103M,104Mは夫々16ビットのデ
ータ出力端子を有する。データバス112の下位16ビ
ット(下位2バイト)D15〜D0は第1の記憶装置1
03のメモリ103Mに、データバス112の上位16
ビット(上位2バイト)D31〜D16は第2の記憶装
置104のメモリ104Mに接続される。この例では、
メモリ103M,104Mは、同一の構成を有し、例え
ば、公知のSRAM(Static Random Access Memory:
スタティック・ランダム・アクセス・メモリ)によって
構成される。リード・ライト信号R/WはCPU101
からコントロールバス113を介して第1及び第2の記
憶装置103,104に共通に供給される。デコーダ1
03Dは、第1のアドレスバス110上のアドレスビッ
トA1を入力し、A1=0のとき、メモリ103Mのメ
モリイネーブル信号ME1をイネーブル(活性)レベル
にする。メモリ103Mはメモリイネーブル信号ME1
がイネーブルレベルにされることによって動作可能にな
る。また、デコーダ104Dは、第2のアドレスバス1
10上のアドレスビットA1を入力し、A1=1のと
き、メモリ104Mのメモリイネーブル信号ME2をイ
ネーブル(活性)レベルにする。メモリ104Mはメモ
リイネーブル信号ME2がイネーブルレベルにされるこ
とによって動作可能になる。メモリ103Mはアドレス
入力端子にバス110上のAn〜A2を入力し、それを
デコードしてワード単位のアドレシング動作を行う。メ
モリ104Mはアドレス入力端子にバス111上のAn
〜A2を入力し、それをデコードしてワード単位のアド
レシング動作を行う。
【0033】前記オフセット調整回路102は、第1の
アドレスバス110からアドレス信号を入力し、データ
バス112からオフセットアドレス(以下単にオフセッ
ト値とも記す)が供給され、コントロールバス113を
介してリード・ライト信号R/Wが供給される。そし
て、オフセット調整回路102は第2のアドレスバス1
11にオフセットアドレスが加算されたアドレス信号を
出力可能にする。第2のアドレスバス111に出力され
たアドレス信号は第2の記憶装置104のアドレス入力
端子に与えられる。
【0034】前記オフセット調整装置102は、オフセ
ットアドレスが書き換え可能に設定されるオフセットレ
ジスタ201と、前記オフセットレジスタ201の設定
値と前記第1のアドレスバス110からのアクセスアド
レスとを加算する加算器202と、前記加算器202の
出力又は前記第1のアドレスバス110を選択して出力
に伝達するセレクタ203と、オフセットコントローラ
204とを有する。オフセットコントローラ204は、
第1のアドレスバス110よりアドレス信号を入力する
と共にコントロールバス113からリード・ライト信号
R/Wを入力し、リードアクセスに応答して前記セレク
タ203に加算器202の出力を選択させ、ライトアク
セスに応答して前記第1のアドレスバス110を選択さ
せる選択制御論理を有する。更に、オフセットコントロ
ーラ204は、アドレスバス110からのアドレスをデ
コードし、オフセットレジスタ201に割当てられたア
ドレス信号を検出すると、そのときのライトアクセスに
応答してデータバス上のオフセットアドレスをオフセッ
トレジスタ201に書き込み制御する。
【0035】次に、前記マイクロプロセッサ100を用
いてFIRフィルタの畳み込み演算を行う場合について
図4を参照しながら説明する。図4に示されるX,Y,
ZなどはCPU101のアドレス空間における絶対的な
アドレスを意味する。
【0036】前記数1において、時刻T=iの時の入力
データをin[i]、出力データをout[i]とする。ま
た、フィルタ係数をα[k](0≦k≦n,nは0以上の整
数)とする。nはフィルタのタップ数である。
【0037】まず初めに、係数列αを記憶装置103に
配置し、入力データ列inを記憶装置104に配置す
る。演算結果outのデータ列は記憶装置104に記憶
領域を確保する。また、各データ列の配置順序はinお
よびoutは昇順に配置し、αは降順に配置する。ここ
で、時刻T=0の時の演算対象となる入力データ列は、
数1によればin[−n]、in[−n+1]、…、in
[−1]、in[0]となる。in[0]を除く入力データ列
in[−n]、in[−n+1]、…、in[−n]は、時刻
T=0の時のフィルタ状態を意味し、それには何等かの
初期値が設定されることになる。
【0038】次に、係数列αの先頭アドレスX、即ちα
[n]の示すアドレスと入力データ列inの先頭アドレス
Y、即ちin[−n]の示すアドレスの差分(X−Y)を
オフセット値の初期値とし、オフセット調整装置102
のオフセットレジスタ206に保持する。出力データ列
outの先頭アドレスをZとする。時刻T=0の時の出
力データout[0]は数2の式で表される。
【0039】
【数2】out[0]=α[n]・in[−n]+α[n−1]
・in[−n+1]+… +α[1]・in[1]+α[0]・
in[0]
【0040】中央処理装置101は係数列αの先頭アド
レスXをアドレス信号として送出する。記憶装置103
はアドレス信号を受け取り、対応するデータα[n]を
データ信号の下位側を用いて中央処理装置101に送出
する。オフセット調整装置102はアドレス信号を受け
取り、予めオフセットレジスタ201に保持されたオフ
セット値(X−Y)とアドレス信号を加算器202を用
いて加算し、結果Y(即ち、X−Y+X)をオフセット
付きアドレス信号として記憶装置104に送出する。記
憶装置104はオフセット付きアドレス信号に対応する
データin[−n]をデータ信号の上位側を用いて中央処
理装置101に送出する。
【0041】この結果、中央処理装置101はα[n]と
in[−n]を同時に得ることができ、数2によれば、右
辺の第1項のα[n]・in[−n]の演算に必要なデータ
を中央処理装置101が確保したことになる。中央処理
装置101が2つのデータを用いて積和演算する実施例
については後述する。
【0042】次に、中央処理装置101はα[n−1]に
対応するアドレスX+4をアドレス信号として送出す
る。アドレスX+4は中央処理装置101が直前に使用
したアドレスXを+4だけインクリメントすることで容
易に求められる。
【0043】記憶装置103はアドレス信号を受け取
り、対応するデータα[n−1]をデータ信号の下位側を
用いて中央処理装置101に送出する。オフセット調整
装置102はアドレス信号を受け取り、予めオフセット
レジスタ201に保持されたオフセット値(X−Y)と
アドレス信号を加算器202を用いて加算し、結果Y+
4(即ち、X−Y+X+4)をオフセット付きアドレス
信号として記憶装置104に送出する。記憶装置104
はオフセット付きアドレス信号に対応するデータin
[−n+1]をデータ信号の上位側を用いて中央処理装置
101に送出する。この結果、中央処理装置101はα
[n−1]とin[−n+1]を同時に得ることができ、数
2によれば、右辺の第2項のα[n−1]・in[−n+
1]の演算に必要なデータを中央処理装置101が確保
したことになる。同様な手順で数2の右辺の全ての項を
中央処理装置101が係数列αのアドレスをインクリメ
ントすることにより、各項の対になった2つデータを同
時に得ることが可能である。この処理過程において、オ
フセット調整装置102のオフセットレジスタ206に
保持したオフセット値(X−Y)は同一の値を使用す
る。
【0044】最終的に得られた結果out[0]をデータ
列outの先頭アドレスZに格納する。格納手段とし
て、中央処理装置101はデータ列outの先頭アドレ
スZをアドレス信号として送出する。演算結果outの
データ列は記憶装置104に確保された記憶領域に格納
されることになり、この時はライト動作であるから、オ
フセット調整装置102のセレクタ203がアドレスバ
ス110を選択してアドレスZをアドレスバス111に
伝達する。アドレスZは第2の記憶装置104に割当て
られたアドレスであるから、当該記憶装置104が動作
可能にされ、演算結果out[0]がアドレスZにストア
される。このように、ライト動作では、オフセット調整
装置102によるアドレスオフセット加算機能が実質的
に無効にされ、CPU101のアクセスアドレスで指定
された記憶装置104の記憶エリアに直接データをスト
アすることができる。以上の動作手順により、時刻T=
0の時のFIRフィルタの畳み込み演算が完了する。
【0045】次に時刻T=1の時の出力データout
[1]は数3の式で表される。
【0046】
【数3】out[1]=α[n]・in[−n+1]+α[n−
1]・in[−n+2]+… +α[1]・in[2]+α[0]
・in[1]
【0047】この時のオフセット値は(x−Y+4)と
なり、out[1]の格納アドレスはZ+4となる。演算
手順については、時刻T=0の時と同様であり、数3の
右辺の第1項から順次演算する。
【0048】一般的に、係数列αの先頭アドレスをX、
入力データ列inの先頭アドレスをY、出力データ列o
utの先頭アドレスをZとすると、時刻T=iの時のオ
フセット値はX+Y+4iとなり演算結果out[i]の
格納アドレスはZ+4iとなる。このように、時刻Tが
刻々変化するとき、時刻の変化に伴う演算に必要なアド
レスの変更は上記オフセット値および格納アドレスのみ
となり、オーバーヘッドなく処理を行うことが可能であ
る。
【0049】以上のように、FIRフィルタの畳み込み
演算に本発明を適応することにより、積和演算に必要な
乗数(係数α)、被乗数(入力データin)を同時に中
央処理装置101に取り込むことができ、メモリアクセ
ス処理の回数を半減し、パイプライン処理の乱れを低減
することが可能である。
【0050】次に図3を用いてDSPユニット121の
積和演算装置の一例について説明する。ここでは前述の
図1及び図2を用いて説明したように、1つのアドレス
信号に対して2つの異なるデータが同時(同時刻)にデ
ータバス112の上位側、下位側にそれぞれ現れるもの
とする。
【0051】図3において、301で示されるものは乗
算結果を累積加算する加算器、302は乗算器、303
はアドレスのインクリメント処理またはディクリメント
処理を行うアドレス加算器、304は乗数を格納するレ
ジスタ、305は被乗数を格納するレジスタ、306は
乗算結果を格納するレジスタ、307は加算器301の
結果を格納するレジスタ、308は直前のアドレスを格
納するレジスタである。
【0052】各レジスタの最上位ビットを符号ビットS
とし、データは2の補数表示とする。また、データ信
号、レジスタ306、レジスタ307およびレジスタ3
08のビット長を32ビットとし、レジスタ304およ
びレジスタ305のビット長を16ビットとする。本発
明によれば、2つの異なるデータが複数本のデータバス
112を二分した上位側、下位側にそれぞれ現れる。そ
こで、レジスタ304をデータ信号の下位側16ビット
と接続し、レジスタ305をデータ信号の上位側16ビ
ットと接続する。これにより2つの異なるデータを同時
に格納し、後段の積和演算処理に必要な乗数、被乗数を
得たことになる。
【0053】次に図3の回路の動作を前述のFIRフィ
ルタの畳み込み演算に適応し説明する。係数列αの先頭
アドレスをX、入力データ列inの先頭アドレスをY、
出力データ列outの先頭アドレスをZとし、配置場
所、配置順序は前述の図1、図2を用いて説明した例に
従うものとする。便宜上、図3のレジスタ304をX
0、レジスタ305をY0、レジスタ306をM0、レ
ジスタ307をA0、レジスタ308をR0と記述す
る。時刻T=iにおける積和演算処理の動作を下記に示
す。
【0054】〔1〕オフセット調整装置102のオフセ
ットレジスタ201にオフセット値(X−Y+4i)を
設定する。 〔2〕A0を初期化する。 〔3〕R0の値を設定し、R0=Xとする。 〔4〕R0の値をアドレス信号に出力し、各記憶装置よ
り所望のデータを得る。この時、α[n]がデータ信号の
下位側にin[−n+i]がデータ信号の上位側に出力さ
れる。 〔5〕X0にデータ信号の下位側データ、即ちα[n]を
格納し、Y0にデータ信号の上位側データ、即ちin
[−n+i]を格納する。 〔6〕X0とY0を乗算しM0に格納する。 〔7〕A0とM0を加算しA0に格納する。 〔8〕R0の値をインクリメントする。上記〔4〕から
〔7〕までの処理をn+1回繰り返す。
〔9〕R0の値を設定し、R0=Zとする。 〔10〕R0の値をアドレス信号に出力し、A0の値を
記憶装置に格納する。このA0の値が時刻T=iの時の
出力結果out[i]に相当する。
【0055】以上の動作により、時刻T=iの時のフィ
ルタ処理が完了する。ここで、上記〔4〕から〔5〕ま
での動作と上記〔6〕から〔8〕までの動作は並列に実
行することができる。
【0056】従来、乗数、被乗数の2つのデータの読み
出しにはアドレスのインクリメント処理やディクリメン
ト処理用の加算器やレジスタがそれぞれのデータに対し
て必要になる。しかしながら、本発明の一実施例を示す
積和演算回路図では予めオフセット値を設定することに
より、上記2つのデータの片方のアドレスを操作するだ
げで、同時に乗数と被乗数の2つのデータを乗算器に読
み込むことが可能である。これにより、連続した積和演
算処理を高速に実現することができる。
【0057】図8は図1のマイクロプロセッサを用いて
実現したパイプライン処理の一例を示したものである。
命令1から命令7までの各命令は積和演算命令とし、命
令の実行処理(E)は単一サンプリング時間内で完了す
るものとする。また、命令のフェッチ処理(F)は従来
の技術である命令長の縮小化を適応し、2回に1回の割
合で発生するものとする。このとき、本発明を適応する
ことにより、各命令毎にメモリアクセス処理(M)回数
が1回で済むことから、図7に示す従来のパイプライン
処理に比べて60%の高速化に成功している。
【0058】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
【0059】例えば、以上の説明では、本発明をFIR
フィルタの畳み込み演算に適用した場合について説明し
たが、本発明は、相関処理や並び換え処理など少なくと
も2つ以上のデータ列を必要とする他の演算にも適用で
きる。また、記憶装置は2個に限定されない。3個以上
のデータを並列演算する必要性がある場合には3個以上
の記憶装置を用いる。例えば3個の記憶装置を用いる場
合、CPUのアクセスアドレスに対して、第1のオフセ
ットアドレスを加算したアドレスと、第2のオフセット
アドレスを加算したアドレスとを用意し、CPUのアク
セスアドレス、第1の加算アドレス、及び第2の加算ア
ドレスを用いて3個の記憶装置から3種類のデータを並
列的にリードアクセスすることができる。
【0060】また、本発明は中央処理装置などのシステ
ムロジックと大容量記憶装置とを1つのチップに集積し
た大規模LSIにも適用することができる。その場合
に、チップ内のバス幅も増加傾向にあり、ここに本発明
を適用しても、データ転送効率並びにデータ処理効率の
向上に資することができる。
【0061】また、マイクロプロセッサが保有する内部
回路モジュールは図1に限定されず、所要の機能に応じ
て、キャッシュメモリ、ダイレクト・メモリ・アクセス
・コントローラ等を適宜追加してもよい。
【0062】また、メモリイネーブル信号はCPUが直
接出力してもよい。また、本発明に係るデータ処理装置
はマルチチップで構成してもよい。例えば図10に例示
されるように、CPUを含むマイクロプロセッサ140
及び記憶装置103,104を夫々別々のチップとして
用意し、それらをプリントサーキット基板のような回路
基板に実装し、オフセット調整装置102をTTL回路
で実装基板状に形成する。図10においてオフセット調
整装置102はマイクロプロセッサ140に内蔵しな
い。内蔵すると、マイクロプロセッサのアドレス出力端
子が倍増するからである。
【0063】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0064】すなわち、格納アドレスエリアが逐次変化
される複数の被乗数データと格納アドレスエリアが一定
の複数の乗数データとを順番に同一アクセスサイクルで
メモリから一緒に読み出すことができ、しかも、乗数デ
ータと被乗数データとを個別的に書換えることができ
る。
【0065】更に、積和演算処理のための乗数データと
被乗数データとの読み出しによるパイプライン処理の乱
れを低減できると共に、サンプリング時刻毎の被乗数デ
ータの書き込み動作を乗数データの配置アドレスとは無
関係に行なうことができ、高速な積和演算を実現するこ
とができる。
【図面の簡単な説明】
【図1】本発明に係るデータ処理装置の一例であるマイ
クロプロセッサのブロック図である。
【図2】オフセット調整装置の一例を示すブロック図で
ある。
【図3】DSPユニットの積和演算装置の一例を示すブ
ロック図である。
【図4】乗数及び被乗数を格納した第1及び第2の記憶
装置のアドレスマップの一例を示す説明図である。
【図5】一つの記憶装置の一例を示すブロック図であ
る。
【図6】パイプライン処理の一例を示したタイミング図
である。
【図7】2つのデータのメモリアクセス処理が必要な場
合のパイプライン処理の様子を示すタイミング図であ
る。
【図8】図1のマイクロプロセッサを用いて実現したパ
イプライン処理の一例を示すタイミング図である。
【図9】FIRフィルタを機能的に説明するためのブロ
ック図である。
【図10】マルチチップで構成したデータ処理システム
の一例を示すブロック図である。
【符号の説明】
100 マイクロプロセッサ 101 中央処理装置 102 オフセット調整装置 103 第1の記憶装置 104 第2の記憶装置 121 DSPユニット 201 オフセットレジスタ 202 加算器 203 セレクタ 204 オフセットコントローラ 301 加算器 302 乗算器 303 アドレス加算器 304 乗数格納レジスタ 305 被乗数格納レジスタ
フロントページの続き (72)発明者 石川 敦義 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体事業本部内 (72)発明者 提坂 康博 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体事業本部内 (72)発明者 井上 光義 東京都小平市上水本町5丁目22番1号 株 式会社日立超エル・エス・アイ・システム ズ内 (72)発明者 片桐 雅視 山形県米沢市大字花沢字八木橋東3の3274 日立米沢電子株式会社内 Fターム(参考) 5B060 CA12 CA14

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 中央処理装置と、前記中央処理装置によ
    ってリード・ライトアクセス可能な複数個の記憶装置
    と、オフセットアドレスが書き換え可能に設定され前記
    中央処理装置による前記記憶装置に対するリードアクセ
    スに応答して中央処理装置によるアクセスアドレスに代
    え当該アクセスアドレスに前記オフセットアドレスを加
    算したアドレスを出力するオフセット調整装置と、前記
    複数個の記憶装置のデータ入出力端子を前記中央処理装
    置に個別に接続する双方向データバスと、前記中央処理
    装置によるアクセスアドレスを前記複数個の記憶装置の
    内の一部の所定の記憶装置と前記オフセット調整装置に
    供給する第1のアドレスバスと、前記オフセット調整装
    置から出力されるアドレスを前記一部の所定の記憶装置
    以外の残りの記憶装置に供給する第2のアドレスバス
    と、を含んで成るものであることを特徴とするデータ処
    理装置。
  2. 【請求項2】 前記複数個の記憶装置は2個であり、前
    記オフセット調整装置は、オフセットアドレスが書き換
    え可能に設定されるオフセットレジスタと、前記オフセ
    ットレジスタの設定値と前記中央処理装置からのアクセ
    スアドレスとを加算する加算器と、前記加算器の出力又
    は前記第1のアドレスバスを選択して出力するセレクタ
    と、前記記憶装置に対するリードアクセスに応答して前
    記セレクタに加算器の出力を選択させ、前記記憶装置に
    対するライトアクセスに応答して前記第1のアドレスバ
    スを選択させるコントローラとを有して成るものである
    ことを特徴とする請求項1記載のデータ処理装置。
  3. 【請求項3】 前記2個の記憶装置から並列的に読み出
    されたデータを並列に入力する積和演算装置を含んで成
    るものであることを特徴とする請求項2記載のデータ処
    理装置。
  4. 【請求項4】 1個の半導体チップに形成され、前記デ
    ータバス及び前記第1のアドレスバスに接続され外部バ
    スサイクルを起動可能なバスステートコントローラを更
    に含み、前記データバスは命令情報とデータ情報の双方
    の伝達に共用されるマイクロプロセッサとされて成るも
    のであることを特徴とする請求項3記載のデータ処理装
    置。
JP10264103A 1998-09-18 1998-09-18 データ処理装置 Withdrawn JP2000099397A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10264103A JP2000099397A (ja) 1998-09-18 1998-09-18 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10264103A JP2000099397A (ja) 1998-09-18 1998-09-18 データ処理装置

Publications (1)

Publication Number Publication Date
JP2000099397A true JP2000099397A (ja) 2000-04-07

Family

ID=17398564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10264103A Withdrawn JP2000099397A (ja) 1998-09-18 1998-09-18 データ処理装置

Country Status (1)

Country Link
JP (1) JP2000099397A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020060B2 (en) * 2001-03-12 2006-03-28 Sanyo Electric Co., Ltd. Disc recording apparatus and disc
JP2021507414A (ja) * 2017-12-21 2021-02-22 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 連動メモリデバイスに対するメモリ要求のスケジューリング

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020060B2 (en) * 2001-03-12 2006-03-28 Sanyo Electric Co., Ltd. Disc recording apparatus and disc
JP2021507414A (ja) * 2017-12-21 2021-02-22 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 連動メモリデバイスに対するメモリ要求のスケジューリング
JP7384806B2 (ja) 2017-12-21 2023-11-21 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 連動メモリデバイスに対するメモリ要求のスケジューリング

Similar Documents

Publication Publication Date Title
US6029220A (en) Pipelined semiconductor devices suitable for ultra large scale integration
US7707328B2 (en) Memory access control circuit
US5367494A (en) Randomly accessible memory having time overlapping memory accesses
EP1176718B1 (en) Hardware accelerator for normal least-mean-square algorithm-based coefficient adaptation
US6145027A (en) DMA controller with split channel transfer capability and FIFO buffering allowing transmit channel to get ahead of corresponding receive channel by preselected number of elements
JPH04343151A (ja) メモリアクセス装置
JP3523286B2 (ja) 順次データ転送型メモリ及び順次データ転送型メモリを用いたコンピュータシステム
EP0570164B1 (en) Interleaved memory system
JP2004501470A (ja) スキームレジスタを用いたメモリアドレスの生成
JP2000099397A (ja) データ処理装置
CN116050492A (zh) 一种扩展单元
US5602727A (en) Image processor
US5765219A (en) Apparatus and method for incrementally accessing a system memory
WO2007029169A2 (en) Processor array with separate serial module
US6356976B1 (en) LSI system capable of reading and writing at high speed
US7447722B2 (en) Low latency computation in real time utilizing a DSP processor
JP3531208B2 (ja) ディジタル信号処理装置
JP3526773B2 (ja) マルチプロセッサ装置およびその制御方法
JP3019767B2 (ja) デジタル信号処理装置
JP2001265593A (ja) 情報処理装置
US6223257B1 (en) Instruction cache address generation technique having reduced delays in fetching missed data
JP3222647B2 (ja) メモリバンク自動切替システム
JP2766191B2 (ja) デジタル信号処理装置及び信号処理方法
JPH0364111A (ja) メモリ装置及びそれを用いたディジタル信号処理装置
JP2001034603A (ja) 積和演算処理装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060110