JP2001034603A - 積和演算処理装置 - Google Patents
積和演算処理装置Info
- Publication number
- JP2001034603A JP2001034603A JP11207808A JP20780899A JP2001034603A JP 2001034603 A JP2001034603 A JP 2001034603A JP 11207808 A JP11207808 A JP 11207808A JP 20780899 A JP20780899 A JP 20780899A JP 2001034603 A JP2001034603 A JP 2001034603A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data
- product
- sum operation
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】
【課題】 積和演算処理装置において、必要とするバス
の本数及びポインタ更新手段の数を低減して、ハードウ
ェアの規模を削減する。 【解決手段】 第1のバス107は、積和演算に供する
変数データをRAM101から演算実行部103に転送
する。第2のバス108は、積和演算に供する定数デー
タをROM102から演算実行部103に転送する。ま
た、前記第2のバス108は、積和演算命令を前記RO
M102から命令制御部106に転送する。第2のバス
108は、命令転送用及び定数データ転送用として兼用
されるので、ハードウェア規模が削減される。RAM1
01から変数データを読み出すレジスタ部301が備え
られると共に、命令読み出し部310が備えられる。命
令読み出し部310は、ROM102に格納される定数
データの読み出し用として兼用される。従って、より一
層にハードウェア規模が削減される。
の本数及びポインタ更新手段の数を低減して、ハードウ
ェアの規模を削減する。 【解決手段】 第1のバス107は、積和演算に供する
変数データをRAM101から演算実行部103に転送
する。第2のバス108は、積和演算に供する定数デー
タをROM102から演算実行部103に転送する。ま
た、前記第2のバス108は、積和演算命令を前記RO
M102から命令制御部106に転送する。第2のバス
108は、命令転送用及び定数データ転送用として兼用
されるので、ハードウェア規模が削減される。RAM1
01から変数データを読み出すレジスタ部301が備え
られると共に、命令読み出し部310が備えられる。命
令読み出し部310は、ROM102に格納される定数
データの読み出し用として兼用される。従って、より一
層にハードウェア規模が削減される。
Description
【0001】
【発明の属する技術分野】本発明は積和演算処理装置の
改良に関する。
改良に関する。
【0002】
【従来の技術】近年、マイクロコンピュータは、多くの
機器に利用されており、その処理能力の向上に伴い、よ
り広い分野で一層複雑な制御に応用されている。制御に
おいては、デジタルフィルタ等の演算に積和演算が多用
され、制御用プロセッサにもデジタル信号処理プロセッ
サのような高速な積和演算が求められている。
機器に利用されており、その処理能力の向上に伴い、よ
り広い分野で一層複雑な制御に応用されている。制御に
おいては、デジタルフィルタ等の演算に積和演算が多用
され、制御用プロセッサにもデジタル信号処理プロセッ
サのような高速な積和演算が求められている。
【0003】一般に、積和演算は、RAMに格納される
変数データと、ROMに格納される定数データとを順次
乗算処理をしながら、その結果を加算する処理である。
高速に積和演算処理するためには、命令ROMとは別に
定数データを格納するROMを必要とする。
変数データと、ROMに格納される定数データとを順次
乗算処理をしながら、その結果を加算する処理である。
高速に積和演算処理するためには、命令ROMとは別に
定数データを格納するROMを必要とする。
【0004】図2は、従来の積和演算を処理するプロセ
ッサの構成例を示す。同図のプロセッサは、変数データ
を格納するRAM201、定数データを格納するデータ
ROM202、命令を格納する命令ROM203、積和
演算を実行する演算実行部204、RAM201のデー
タのポインタを更新するポインタ更新手段205、デー
タROM202のデータのポインタを更新するポインタ
更新手段206、命令ROM203の命令のポインタを
更新するポインタ更新手段207、命令を解読して全体
を制御する命令制御部208、前記RAM201が接続
されるバス209、データROM202が接続されるバ
ス210、及び命令ROM203が接続されるバス21
1から構成される。前記バス210とバス211とは、
バス幅が異なる。
ッサの構成例を示す。同図のプロセッサは、変数データ
を格納するRAM201、定数データを格納するデータ
ROM202、命令を格納する命令ROM203、積和
演算を実行する演算実行部204、RAM201のデー
タのポインタを更新するポインタ更新手段205、デー
タROM202のデータのポインタを更新するポインタ
更新手段206、命令ROM203の命令のポインタを
更新するポインタ更新手段207、命令を解読して全体
を制御する命令制御部208、前記RAM201が接続
されるバス209、データROM202が接続されるバ
ス210、及び命令ROM203が接続されるバス21
1から構成される。前記バス210とバス211とは、
バス幅が異なる。
【0005】
【発明が解決しようとする課題】しかしながら、前記従
来のものでは、3個のメモリが必要であるため、それ等
メモリを接続するバスが合計3本必要となり、ハードウ
ェア規模が増大する。更に、命令用のポインタ更新手段
とは別に積和演算用のポインタ更新手段が2個必要であ
り、この構成もハードウェア規模を増加させる。
来のものでは、3個のメモリが必要であるため、それ等
メモリを接続するバスが合計3本必要となり、ハードウ
ェア規模が増大する。更に、命令用のポインタ更新手段
とは別に積和演算用のポインタ更新手段が2個必要であ
り、この構成もハードウェア規模を増加させる。
【0006】本発明は前記の問題点に鑑み、その目的
は、積和演算処理装置において、従来と同等の処理性能
を、従来に比べて少ないハードウェアで実現することに
ある。
は、積和演算処理装置において、従来と同等の処理性能
を、従来に比べて少ないハードウェアで実現することに
ある。
【0007】
【課題を解決するための手段】前記課題を解決するた
め、本発明では、バスを共用化して、必要とするバスの
本数を低減して、ハードウェア規模を縮小する。更に
は、積和演算用のポインタ更新手段を共用して、必要と
するポインタ更新手段の数を低減して、より一層にハー
ドウェア規模を縮小する。
め、本発明では、バスを共用化して、必要とするバスの
本数を低減して、ハードウェア規模を縮小する。更に
は、積和演算用のポインタ更新手段を共用して、必要と
するポインタ更新手段の数を低減して、より一層にハー
ドウェア規模を縮小する。
【0008】即ち、請求項1記載の発明の積和演算処理
装置は、積和演算命令を受け、2つのデータを乗算しそ
の結果を加算する処理を複数回繰り返す積和演算処理装
置であって、前記2つのデータのうち一方のデータを転
送する第1のバスと、前記2つのデータのうち他方のデ
ータ及び前記積和演算命令を転送する第2のバスと、前
記第1及び第2のバスに接続され、前記第1及び第2の
バスから転送されるデータについて前記処理を行う演算
実行部と、前記第2のバスに接続されて前記積和演算命
令を受け、この積和演算命令に従って前記演算実行部を
制御する命令制御部とを備えたことを特徴とする。
装置は、積和演算命令を受け、2つのデータを乗算しそ
の結果を加算する処理を複数回繰り返す積和演算処理装
置であって、前記2つのデータのうち一方のデータを転
送する第1のバスと、前記2つのデータのうち他方のデ
ータ及び前記積和演算命令を転送する第2のバスと、前
記第1及び第2のバスに接続され、前記第1及び第2の
バスから転送されるデータについて前記処理を行う演算
実行部と、前記第2のバスに接続されて前記積和演算命
令を受け、この積和演算命令に従って前記演算実行部を
制御する命令制御部とを備えたことを特徴とする。
【0009】また、請求項2記載の発明は、前記請求項
1記載の積和演算処理装置において、前記命令制御部
は、受けた単一の積和演算命令を繰り返し解読して、前
記処理を複数回行うよう前記演算実行部を制御し、前記
第2のバスは、前記命令制御部が前記積和演算命令を受
ける時には前記積和演算命令を転送し、前記演算実行部
が前記処理を複数回行う時には、その各回毎に前記他方
のデータを転送することを特徴とする。
1記載の積和演算処理装置において、前記命令制御部
は、受けた単一の積和演算命令を繰り返し解読して、前
記処理を複数回行うよう前記演算実行部を制御し、前記
第2のバスは、前記命令制御部が前記積和演算命令を受
ける時には前記積和演算命令を転送し、前記演算実行部
が前記処理を複数回行う時には、その各回毎に前記他方
のデータを転送することを特徴とする。
【0010】更に、請求項3記載の発明は、前記請求項
1又は請求項2記載の積和演算処理装置において、前記
第1のバスには、前記一方のデータを構成する変数デー
タを記憶するRAMが接続され、前記第2のバスには、
前記他方のデータを構成する定数データ及び前記積和演
算命令を記憶するROMが接続されることを特徴とす
る。
1又は請求項2記載の積和演算処理装置において、前記
第1のバスには、前記一方のデータを構成する変数デー
タを記憶するRAMが接続され、前記第2のバスには、
前記他方のデータを構成する定数データ及び前記積和演
算命令を記憶するROMが接続されることを特徴とす
る。
【0011】加えて、請求項4記載の発明は、前記請求
項1、請求項2又は請求項3記載の積和演算処理装置に
おいて、前記一方のデータを読み出すデータ読み出し部
と、前記積和演算命令を読み出す命令読み出し部とを備
え、前記命令読み出し部は、前記他方のデータを読み出
す機能をも有することを特徴とする。
項1、請求項2又は請求項3記載の積和演算処理装置に
おいて、前記一方のデータを読み出すデータ読み出し部
と、前記積和演算命令を読み出す命令読み出し部とを備
え、前記命令読み出し部は、前記他方のデータを読み出
す機能をも有することを特徴とする。
【0012】また、請求項5記載の発明は、前記請求項
4記載の積和演算処理装置において、前記命令読み出し
部は、読み出す命令のアドレスを退避する退避レジスタ
と、アドレスを更新する更新カウンタと、前記退避レジ
スタの出力及び前記データ読み出し手段の出力の何れか
を選択するセレクタとを備え、前記命令制御部は、前記
処理の第1回目の繰返し時には、読み出す命令のアドレ
スを前記待避レジスタに待避すると共に、前記セレクタ
に前記データ読み出し手段の出力をデータ読み出しの初
期アドレスとして選択させ、前記処理の第2回目以降の
繰返し時には、前記更新カウンタを制御して前記初期ア
ドレスを順次更新させることを特徴としている。
4記載の積和演算処理装置において、前記命令読み出し
部は、読み出す命令のアドレスを退避する退避レジスタ
と、アドレスを更新する更新カウンタと、前記退避レジ
スタの出力及び前記データ読み出し手段の出力の何れか
を選択するセレクタとを備え、前記命令制御部は、前記
処理の第1回目の繰返し時には、読み出す命令のアドレ
スを前記待避レジスタに待避すると共に、前記セレクタ
に前記データ読み出し手段の出力をデータ読み出しの初
期アドレスとして選択させ、前記処理の第2回目以降の
繰返し時には、前記更新カウンタを制御して前記初期ア
ドレスを順次更新させることを特徴としている。
【0013】請求項6記載の発明は、前記請求項5記載
の積和演算処理装置において、前記更新カウンタは、前
記積和演算命令を含む一連の命令の読み出し時と前記他
方のデータの読み出し時との双方で共用されることを特
徴とする。
の積和演算処理装置において、前記更新カウンタは、前
記積和演算命令を含む一連の命令の読み出し時と前記他
方のデータの読み出し時との双方で共用されることを特
徴とする。
【0014】以上の構成により、請求項1ないし請求項
6記載の発明では、次の作用を奏する。即ち、先ず、積
和演算命令が第2のバスを経て命令制御部に入力され
る。その後、積和演算に供される一方のデータが第1の
バスを経て、他方のデータが第2のバスを経て、各々演
算実行部に入力され、この演算実行部にて前記命令制御
部に基づいて両データの乗算及びその結果の加算が行わ
れ、これ等の両データの入力、乗算及び結果の加算処理
が複数回繰返し行われて、積和演算処理が終了する。
6記載の発明では、次の作用を奏する。即ち、先ず、積
和演算命令が第2のバスを経て命令制御部に入力され
る。その後、積和演算に供される一方のデータが第1の
バスを経て、他方のデータが第2のバスを経て、各々演
算実行部に入力され、この演算実行部にて前記命令制御
部に基づいて両データの乗算及びその結果の加算が行わ
れ、これ等の両データの入力、乗算及び結果の加算処理
が複数回繰返し行われて、積和演算処理が終了する。
【0015】ここに、第2のバスは、積和演算命令の転
送及び積和演算に供する他方のデータの転送に共用され
るので、必要とするバスの本数は、一方のデータ転送用
のバスと合わせて、合計2本となり、従来の3本に比し
てハードウェア規模が削減される。
送及び積和演算に供する他方のデータの転送に共用され
るので、必要とするバスの本数は、一方のデータ転送用
のバスと合わせて、合計2本となり、従来の3本に比し
てハードウェア規模が削減される。
【0016】特に、請求項4ないし請求項6記載の発明
では、命令読み出し部が他方のデータの読み出し部とし
ても兼用されるので、データ読み出し部は一方のデータ
読み出し用として1個備えれば十分である。従って、よ
り一層にハードウェア規模が削減される。
では、命令読み出し部が他方のデータの読み出し部とし
ても兼用されるので、データ読み出し部は一方のデータ
読み出し用として1個備えれば十分である。従って、よ
り一層にハードウェア規模が削減される。
【0017】
【発明の実施の形態】以下、本発明の実施の形態を図面
に基づいて説明する。
に基づいて説明する。
【0018】図1は、本発明に係る積和演算処理装置を
含む演算処理システムのブロック構成を示す。同図にお
いて、100は積和演算処理装置、101は積和演算の
対象となる変数データ(一方のデータ)を格納するRA
M、102はROMであって、積和演算処理装置100
を動作させる命令、及び積和演算の対象となる定数デー
タ(他方のデータ)を格納する。103は積和演算を実
行する演算実行部、104は前記RAM101から変数
データを読み出すアドレスを更新するポインタ更新手
段、105は前記ROM102から命令又は定数データ
を読み出すアドレスを更新するポインタ更新手段、10
6は前記積和演算処理装置100の全体を制御する命令
制御部である。
含む演算処理システムのブロック構成を示す。同図にお
いて、100は積和演算処理装置、101は積和演算の
対象となる変数データ(一方のデータ)を格納するRA
M、102はROMであって、積和演算処理装置100
を動作させる命令、及び積和演算の対象となる定数デー
タ(他方のデータ)を格納する。103は積和演算を実
行する演算実行部、104は前記RAM101から変数
データを読み出すアドレスを更新するポインタ更新手
段、105は前記ROM102から命令又は定数データ
を読み出すアドレスを更新するポインタ更新手段、10
6は前記積和演算処理装置100の全体を制御する命令
制御部である。
【0019】また、107は第1のバスであって、前記
RAM101及びポインタ更新手段104が接続され
て、積和演算の変数データを前記演算実行部103に転
送する。108は第2のバスであって、前記第1のバス
107と同一のバス幅を有し、且つ前記ROM102及
びポインタ更新手段105が接続されて、積和演算の定
数データを演算実行部103に転送すると共に、命令を
命令制御部106に転送する。
RAM101及びポインタ更新手段104が接続され
て、積和演算の変数データを前記演算実行部103に転
送する。108は第2のバスであって、前記第1のバス
107と同一のバス幅を有し、且つ前記ROM102及
びポインタ更新手段105が接続されて、積和演算の定
数データを演算実行部103に転送すると共に、命令を
命令制御部106に転送する。
【0020】図3は、図1のシステム構成の詳細を示す
ブロック図である。同図において、RAM101、RO
M102、第1のバス107及び第2のバス108は、
図1と同一である。301はレジスタ部(データ読み出
し部)であって、図1の第1のポインタ更新手段104
に対応し、その内部には、データ及びアドレスを格納す
る複数のレジスタからなる汎用レジスタ302と、前記
汎用レジスタ302のアドレスの内容を更新するインク
リメンタ303と、前記インクリメンタ303の出力及
び第1のバス107の内容の何れか一方を選択するセレ
クタ304とから構成される。
ブロック図である。同図において、RAM101、RO
M102、第1のバス107及び第2のバス108は、
図1と同一である。301はレジスタ部(データ読み出
し部)であって、図1の第1のポインタ更新手段104
に対応し、その内部には、データ及びアドレスを格納す
る複数のレジスタからなる汎用レジスタ302と、前記
汎用レジスタ302のアドレスの内容を更新するインク
リメンタ303と、前記インクリメンタ303の出力及
び第1のバス107の内容の何れか一方を選択するセレ
クタ304とから構成される。
【0021】また、同図において、310は命令読み出
し部であって、図1の第2のポインタ更新手段105に
対応し、命令の読み出しアドレスを格納する命令フェッ
チポインタ311と、命令フェッチポインタ311の内
容を退避する命令フェッチポインタ退避レジスタ(待避
レジスタ)312と、命令フェッチポインタ311の内
容を更新する命令フェッチカウンタ(更新カウンタ)3
13と、セレクタ314とから構成される。前記セレク
タ314は、命令フェッチポインタ退避レジスタ312
の出力、命令フェッチカウンタ313の出力、及び前記
レジスタ部301内の汎用レジスタ302の出力の何れ
か1つを選択する。
し部であって、図1の第2のポインタ更新手段105に
対応し、命令の読み出しアドレスを格納する命令フェッ
チポインタ311と、命令フェッチポインタ311の内
容を退避する命令フェッチポインタ退避レジスタ(待避
レジスタ)312と、命令フェッチポインタ311の内
容を更新する命令フェッチカウンタ(更新カウンタ)3
13と、セレクタ314とから構成される。前記セレク
タ314は、命令フェッチポインタ退避レジスタ312
の出力、命令フェッチカウンタ313の出力、及び前記
レジスタ部301内の汎用レジスタ302の出力の何れ
か1つを選択する。
【0022】図3において、演算実行部103は、その
内部に、乗算器320、乗算器320への入力データを
保持する2個のレジスタ321、322、乗算器320
の出力と既に演算した乗算結果とを加算する加算器32
3、及び加算器323の出力を保持するレジスタ324
を備える。
内部に、乗算器320、乗算器320への入力データを
保持する2個のレジスタ321、322、乗算器320
の出力と既に演算した乗算結果とを加算する加算器32
3、及び加算器323の出力を保持するレジスタ324
を備える。
【0023】また、命令制御部106は、その内部に、
先読みした命令を格納する命令バッファ330と、解読
する命令を保持する命令レジスタ332と、命令レジス
タ332に保持した命令を繰り返し実行する際の繰り返
し回数を保持する繰り返しカウンタ331と、制御部3
33とから構成される。前記制御部333は、命令レジ
スタ332の内容及び繰り返しカウンタ331の値を入
力し、命令を解読して、積和演算処理装置の全体を制御
する制御信号を生成する。
先読みした命令を格納する命令バッファ330と、解読
する命令を保持する命令レジスタ332と、命令レジス
タ332に保持した命令を繰り返し実行する際の繰り返
し回数を保持する繰り返しカウンタ331と、制御部3
33とから構成される。前記制御部333は、命令レジ
スタ332の内容及び繰り返しカウンタ331の値を入
力し、命令を解読して、積和演算処理装置の全体を制御
する制御信号を生成する。
【0024】図4は、前記制御部333の詳細な構成を
示す。同図において、400は命令レジスタ332の内
容を解読する命令解読器、401は命令解読器400か
らの制御により繰り返しカウンタ331の内容を更新す
ると共に、繰り返し実行中では命令レジスタ332の内
容を更新しないように制御し、繰り返し実行の最初の処
理では、命令フェッチポインタ311の内容を命令フェ
ッチポインタ退避レジスタ312に退避すると共に、汎
用レジスタ302を選択するようにセレクタ314を制
御する繰り返し制御手段である。
示す。同図において、400は命令レジスタ332の内
容を解読する命令解読器、401は命令解読器400か
らの制御により繰り返しカウンタ331の内容を更新す
ると共に、繰り返し実行中では命令レジスタ332の内
容を更新しないように制御し、繰り返し実行の最初の処
理では、命令フェッチポインタ311の内容を命令フェ
ッチポインタ退避レジスタ312に退避すると共に、汎
用レジスタ302を選択するようにセレクタ314を制
御する繰り返し制御手段である。
【0025】図5は、本積和演算処理装置の動作タイミ
ングを示す。同図において、IFPは命令フェッチポイン
タ311の内容を、IFPSは命令フェッチポインタ退避レ
ジスタ312の内容を、IBは命令バッファ330の内容
を、IRは命令レジスタ332の内容を、REPCは繰り返し
カウンタ331の内容を、A-REG及びB-REGは各々レジス
タ321、レジスタ322の内容を、T-REGはレジスタ
324の内容を、GRは汎用レジスタ302へのデータの
書き込み動作を各々示す。また、本実施の形態では、命
令フェッチステージ(IF)、命令解読ステージ(DE
C)、命令実行ステージ(EXE)の3段のパイプライン処
理で命令を実行するものとし、図5では命令実行ステー
ジの動作を示している。尚、図中の番号は図3の各構成
要素の番号を示している。
ングを示す。同図において、IFPは命令フェッチポイン
タ311の内容を、IFPSは命令フェッチポインタ退避レ
ジスタ312の内容を、IBは命令バッファ330の内容
を、IRは命令レジスタ332の内容を、REPCは繰り返し
カウンタ331の内容を、A-REG及びB-REGは各々レジス
タ321、レジスタ322の内容を、T-REGはレジスタ
324の内容を、GRは汎用レジスタ302へのデータの
書き込み動作を各々示す。また、本実施の形態では、命
令フェッチステージ(IF)、命令解読ステージ(DE
C)、命令実行ステージ(EXE)の3段のパイプライン処
理で命令を実行するものとし、図5では命令実行ステー
ジの動作を示している。尚、図中の番号は図3の各構成
要素の番号を示している。
【0026】図6は、本実施の形態での動作を説明する
ための命令列を示す。同図の命令列において、n番地は
繰り返し回数"3"の繰り返し命令であって、その直後に
続く命令を、指定した回数分繰り返し実行する命令であ
る。n+1番地は積和演算命令であって、汎用レジスタ
302に含まれる複数のレジスタのうち、レジスタA及
びBが各々示すメモリの内容を積和演算処理し、その結
果を汎用レジスタA及びBに格納する命令である。
ための命令列を示す。同図の命令列において、n番地は
繰り返し回数"3"の繰り返し命令であって、その直後に
続く命令を、指定した回数分繰り返し実行する命令であ
る。n+1番地は積和演算命令であって、汎用レジスタ
302に含まれる複数のレジスタのうち、レジスタA及
びBが各々示すメモリの内容を積和演算処理し、その結
果を汎用レジスタA及びBに格納する命令である。
【0027】図7は、本実施の形態の動作を説明するた
めのメモリの内容の一例を示す。同図では、汎用レジス
タAの内容がROM102のP番地を指し示し、その内
容が(P)であることを示している。以下、同様に、P+1
番地の内容が(P+1)である。同様に、汎用レジスタB
の内容がRAM101のQ番地を指し示し、その内容が
(Q)であることを示している。
めのメモリの内容の一例を示す。同図では、汎用レジス
タAの内容がROM102のP番地を指し示し、その内
容が(P)であることを示している。以下、同様に、P+1
番地の内容が(P+1)である。同様に、汎用レジスタB
の内容がRAM101のQ番地を指し示し、その内容が
(Q)であることを示している。
【0028】以下、図5に基づいて本実施の形態の詳細
な動作を説明する。
な動作を説明する。
【0029】(サイクル1〜サイクル3)命令フェッチ
ポインタ311はサイクル1からサイクル3までの間に
n番地からn+2番地までの命令を順次ROM102から先
読みし、読み出した命令を命令バッファ330に格納す
る。命令バッファ330には、サイクル2でn番地の命
令I(n)、つまり繰り返し命令(rep 3)が格納され、サ
イクル3でn+1番地の命令I(n+1)、つまり積和演算命令
(mac A,B)が格納される。命令バッファに格納されたre
p命令は、サイクル3で命令レジスタ332に格納さ
れ、命令解読器400により解読される。その解読結果
に基づいてサイクル4で前記rep命令が実行され、繰り
返し回数を示すオペランド部分の値"3"が繰り返しカウ
ンタ331に設定され、サイクル5で繰り返しカウンタ
331の内容が"3"になる。
ポインタ311はサイクル1からサイクル3までの間に
n番地からn+2番地までの命令を順次ROM102から先
読みし、読み出した命令を命令バッファ330に格納す
る。命令バッファ330には、サイクル2でn番地の命
令I(n)、つまり繰り返し命令(rep 3)が格納され、サ
イクル3でn+1番地の命令I(n+1)、つまり積和演算命令
(mac A,B)が格納される。命令バッファに格納されたre
p命令は、サイクル3で命令レジスタ332に格納さ
れ、命令解読器400により解読される。その解読結果
に基づいてサイクル4で前記rep命令が実行され、繰り
返し回数を示すオペランド部分の値"3"が繰り返しカウ
ンタ331に設定され、サイクル5で繰り返しカウンタ
331の内容が"3"になる。
【0030】(サイクル4)サイクル4では、前記mac
命令が命令レジスタ332に格納され、命令解読器40
0により解読される。繰り返し制御手段401は、サイ
クル4がrep命令の実行であること及びmac命令の解読結
果に従って、積和演算の繰り返し処理の準備を始める。
即ち、命令フェッチポインタ311の内容を命令フェッ
チポインタ退避レジスタ312に待避し、セレクタ31
4を汎用レジスタ302の出力を選択するよう制御し
て、汎用レジスタAの内容をROM102からのデータ
読み出しの初期アドレスとして命令フェッチポインタ3
11に格納するように制御する。その結果、サイクル5
では、命令フェッチポインタ311及び命令フェッチポ
インタ退避レジスタ312の内容は各々"P"、"n+3"にな
る。
命令が命令レジスタ332に格納され、命令解読器40
0により解読される。繰り返し制御手段401は、サイ
クル4がrep命令の実行であること及びmac命令の解読結
果に従って、積和演算の繰り返し処理の準備を始める。
即ち、命令フェッチポインタ311の内容を命令フェッ
チポインタ退避レジスタ312に待避し、セレクタ31
4を汎用レジスタ302の出力を選択するよう制御し
て、汎用レジスタAの内容をROM102からのデータ
読み出しの初期アドレスとして命令フェッチポインタ3
11に格納するように制御する。その結果、サイクル5
では、命令フェッチポインタ311及び命令フェッチポ
インタ退避レジスタ312の内容は各々"P"、"n+3"にな
る。
【0031】(サイクル5)サイクル5では、積和演算
命令の第1回目の実行サイクルであり、命令フェッチポ
インタ311の値"P"によりROM102がアクセスさ
れ、汎用レジスタBの値"Q"によりRAM102がアク
セスされる。次のサイクル6では、アクセスした結果得
られたデータが、各々、バス108及びバス107を通
して各々レジスタ321及びレジスタ322に転送さ
れ、次のサイクルで前記各レジスタに格納される。繰り
返し制御手段401は、繰り返しカウンタ331の内
容"3"をデクリメントする。また、命令フェッチカウン
タ313は命令フェッチポインタ311の内容"P"をイ
ンクリメントし、インクリメンタ303は汎用レジスタ
Aの内容"Q"をインクリメントする。更に、レジスタ32
4の内容は"0"に初期化される。
命令の第1回目の実行サイクルであり、命令フェッチポ
インタ311の値"P"によりROM102がアクセスさ
れ、汎用レジスタBの値"Q"によりRAM102がアク
セスされる。次のサイクル6では、アクセスした結果得
られたデータが、各々、バス108及びバス107を通
して各々レジスタ321及びレジスタ322に転送さ
れ、次のサイクルで前記各レジスタに格納される。繰り
返し制御手段401は、繰り返しカウンタ331の内
容"3"をデクリメントする。また、命令フェッチカウン
タ313は命令フェッチポインタ311の内容"P"をイ
ンクリメントし、インクリメンタ303は汎用レジスタ
Aの内容"Q"をインクリメントする。更に、レジスタ32
4の内容は"0"に初期化される。
【0032】(サイクル6)サイクル6では、前記サイ
クル5で更新されたポインタ等の値が更新され、繰り返
しカウンタ331、命令フェッチポインタ311、汎用
レジスタBの内容は各々"2"、"P+1"、"Q+1"になる。繰
り返しカウンタ331が"0"でないので、ROM102
はP+1番地、RAM101はQ+1番地が各々アクセスさ
れ、各々のデータがバス108及びバス107を通して
レジスタ321及びレジスタ322に転送される。乗算
器320は、レジスタ321の内容"(P)"とレジスタ
322の内容"(Q)"とを乗算する。加算器323は、
レジスタ324の内容と乗算器320の出力とを加算す
る。前記サイクル5と同様に、繰り返し制御手段401
は繰り返しカウンタ311の内容"2"をデクリメント
し、命令フェッチカウンタ313は命令フェッチポイン
タの内容"P+1"をインクリメントし、インクリメンタ3
03は汎用レジスタAの内容"Q+1"をインクリメントす
る。
クル5で更新されたポインタ等の値が更新され、繰り返
しカウンタ331、命令フェッチポインタ311、汎用
レジスタBの内容は各々"2"、"P+1"、"Q+1"になる。繰
り返しカウンタ331が"0"でないので、ROM102
はP+1番地、RAM101はQ+1番地が各々アクセスさ
れ、各々のデータがバス108及びバス107を通して
レジスタ321及びレジスタ322に転送される。乗算
器320は、レジスタ321の内容"(P)"とレジスタ
322の内容"(Q)"とを乗算する。加算器323は、
レジスタ324の内容と乗算器320の出力とを加算す
る。前記サイクル5と同様に、繰り返し制御手段401
は繰り返しカウンタ311の内容"2"をデクリメント
し、命令フェッチカウンタ313は命令フェッチポイン
タの内容"P+1"をインクリメントし、インクリメンタ3
03は汎用レジスタAの内容"Q+1"をインクリメントす
る。
【0033】(サイクル7)サイクル7では、前記サイ
クル6と同様に、ポインタ等の値が更新され、繰り返し
カウンタ331、命令フェッチポインタ311、汎用レ
ジスタBの内容は各々"1"、"P+2"、"Q+2"になる。繰り
返しカウンタ331の値は"0"でないので、ROM10
3はP+2番地、RAM101はQ+2番地が各々アクセスさ
れ、その各データがバス108及びバス107を通して
各々レジスタ321及びレジスタ322に転送される。
乗算器320は、レジスタ321の内容"(P+1)"とレ
ジスタ322の内容"(Q+1)"とを乗算する。加算器3
23は、前記サイクル6での加算結果"R0"をレジスタ3
24に格納すると共に、前記サイクル7での乗算結果と
前記加算結果"R0"とを加算する。繰り返し制御手段40
1は繰り返しカウンタ331の内容が"1"になったこと
を検出して、セレクタ314に命令フェッチポインタ退
避レジスタ312を選択させ、次のサイクルで命令フェ
ッチポインタ311を退避レジスタ312の内容に置き
換える。更に、繰り返しカウンタ制御手段401は繰り
返しカウンタ331の内容"1"をデクリメントし、命令
フェッチカウンタ313は命令フェッチポインタ311
の内容"P+2"をインクリメントし、インクリメンタ30
3は汎用レジスタAの内容"Q+2"をインクリメントす
る。
クル6と同様に、ポインタ等の値が更新され、繰り返し
カウンタ331、命令フェッチポインタ311、汎用レ
ジスタBの内容は各々"1"、"P+2"、"Q+2"になる。繰り
返しカウンタ331の値は"0"でないので、ROM10
3はP+2番地、RAM101はQ+2番地が各々アクセスさ
れ、その各データがバス108及びバス107を通して
各々レジスタ321及びレジスタ322に転送される。
乗算器320は、レジスタ321の内容"(P+1)"とレ
ジスタ322の内容"(Q+1)"とを乗算する。加算器3
23は、前記サイクル6での加算結果"R0"をレジスタ3
24に格納すると共に、前記サイクル7での乗算結果と
前記加算結果"R0"とを加算する。繰り返し制御手段40
1は繰り返しカウンタ331の内容が"1"になったこと
を検出して、セレクタ314に命令フェッチポインタ退
避レジスタ312を選択させ、次のサイクルで命令フェ
ッチポインタ311を退避レジスタ312の内容に置き
換える。更に、繰り返しカウンタ制御手段401は繰り
返しカウンタ331の内容"1"をデクリメントし、命令
フェッチカウンタ313は命令フェッチポインタ311
の内容"P+2"をインクリメントし、インクリメンタ30
3は汎用レジスタAの内容"Q+2"をインクリメントす
る。
【0034】(サイクル8)サイクル8では、命令フェ
ッチポインタ311は、命令フェッチポインタ退避レジ
スタ312の内容"n+3"に更新され、繰り返しカウンタ
331及び汎用レジスタBの内容は各々、"0"、"Q+3"
になる。繰り返しカウンタ331の値が"0"になったの
で、繰り返し制御手段401は、命令レジスタ332へ
の命令供給を再開させ、次のサイクルでは積和演算命令
の次の命令を格納するように制御する。また、RAM1
01に対するアクセスはされず、ROM102は"n+3"
番地がアクセスされ、命令がフェッチされる。乗算器3
20は、レジスタ321の内容"(P+2)"とレジスタ3
22の内容"(Q+2)"とを乗算する。加算器323は、
前記サイクル7での加算結果"R1"をレジスタ324に格
納すると共に、前記サイクル8での乗算結果と前記加算
結果"R1"とを加算する。
ッチポインタ311は、命令フェッチポインタ退避レジ
スタ312の内容"n+3"に更新され、繰り返しカウンタ
331及び汎用レジスタBの内容は各々、"0"、"Q+3"
になる。繰り返しカウンタ331の値が"0"になったの
で、繰り返し制御手段401は、命令レジスタ332へ
の命令供給を再開させ、次のサイクルでは積和演算命令
の次の命令を格納するように制御する。また、RAM1
01に対するアクセスはされず、ROM102は"n+3"
番地がアクセスされ、命令がフェッチされる。乗算器3
20は、レジスタ321の内容"(P+2)"とレジスタ3
22の内容"(Q+2)"とを乗算する。加算器323は、
前記サイクル7での加算結果"R1"をレジスタ324に格
納すると共に、前記サイクル8での乗算結果と前記加算
結果"R1"とを加算する。
【0035】(サイクル9)サイクル9では、前記サイ
クル8での加算器323による積和演算の最終結果"R2"
がレジスタ324に格納されると共に、このレジスタ3
24に格納された結果の下位データが第1のバス107
を通し、且つセレクタ304により選択されて汎用レジ
スタAに転送され、この汎用レジスタAに格納される。
命令レジスタ332には、命令バッファ330に先読み
されていたn+2番地の命令が格納され、解読される。
クル8での加算器323による積和演算の最終結果"R2"
がレジスタ324に格納されると共に、このレジスタ3
24に格納された結果の下位データが第1のバス107
を通し、且つセレクタ304により選択されて汎用レジ
スタAに転送され、この汎用レジスタAに格納される。
命令レジスタ332には、命令バッファ330に先読み
されていたn+2番地の命令が格納され、解読される。
【0036】(サイクル10)前記サイクル9でレジス
タ324に格納された積和演算結果の上位データが、第
1のバス107を通し、且つセレクタ304により選択
されて、汎用レジスタBに転送されて格納される。
タ324に格納された積和演算結果の上位データが、第
1のバス107を通し、且つセレクタ304により選択
されて、汎用レジスタBに転送されて格納される。
【0037】尚、本実施の形態では、繰り返し命令の繰
り返し回数を"3"としたが、これに限定されないのは勿
論である。また、パイプラインの説明を簡単にするた
め、繰り返し命令と積和演算命令の命令語長は同一であ
ると仮定して説明したが、各々の命令語長が異なってい
る場合でも、命令バッファに先読みすることにより対応
可能であることはいうまでもない。
り返し回数を"3"としたが、これに限定されないのは勿
論である。また、パイプラインの説明を簡単にするた
め、繰り返し命令と積和演算命令の命令語長は同一であ
ると仮定して説明したが、各々の命令語長が異なってい
る場合でも、命令バッファに先読みすることにより対応
可能であることはいうまでもない。
【0038】
【発明の効果】以上説明したように、請求項1ないし請
求項6記載の発明の積和演算処理装置によれば、1本の
バスを、積和演算命令の転送、及び積和演算に供する他
方のデータの転送用として共用したので、必要とするバ
スの本数を低減して、ハードウェア規模を削減できる。
求項6記載の発明の積和演算処理装置によれば、1本の
バスを、積和演算命令の転送、及び積和演算に供する他
方のデータの転送用として共用したので、必要とするバ
スの本数を低減して、ハードウェア規模を削減できる。
【0039】特に、請求項3記載の積和演算処理装置に
よれば、定数データ格納用のROMを不要にできるの
で、一層にハードウェアを低減できる。
よれば、定数データ格納用のROMを不要にできるの
で、一層にハードウェアを低減できる。
【0040】また、請求項4ないし請求項6記載の発明
の積和演算処理装置によれば、命令読み出し部を他方の
データの読み出し部としても兼用したので、より一層に
ハードウェア規模の削減が可能である。
の積和演算処理装置によれば、命令読み出し部を他方の
データの読み出し部としても兼用したので、より一層に
ハードウェア規模の削減が可能である。
【図1】本発明の実施の形態の積和演算処理装置を含む
システムの全体構成を示すブロック図である。
システムの全体構成を示すブロック図である。
【図2】従来の積和演算処理装置を含むシステムの全体
構成を示すブロック図である。
構成を示すブロック図である。
【図3】本発明の実施の形態の積和演算処理装置の詳細
な構成を示すブロック図である。
な構成を示すブロック図である。
【図4】同実施の形態の命令制御部の内部構成を示す図
である。
である。
【図5】同実施の形態の積和演算処理装置の動作タイミ
ングを示す図である。
ングを示す図である。
【図6】同実施の形態の動作を説明するための命令列の
一例を示す図である。
一例を示す図である。
【図7】同実施の形態の動作を説明するためのメモリの
内容の一例を示す図である。
内容の一例を示す図である。
101 RAM 102 ROM 103 演算実行部 104 第1のポインタ更新手段 105 第2のポインタ更新手段 106 命令制御部 107 第1のバス 108 第2のバス 301 レジスタ部(データ読み出し部) 302 汎用レジスタ 310 命令読み出し部 311 命令フェッチポインタ 312 命令フェッチポインタ退避レジスタ(待避レジ
スタ) 313 命令フェッチカウンタ(更新カウンタ) 314 セレクタ 330 命令バッファ 331 繰返しカウンタ 332 命令レジスタ 333 制御回路
スタ) 313 命令フェッチカウンタ(更新カウンタ) 314 セレクタ 330 命令バッファ 331 繰返しカウンタ 332 命令レジスタ 333 制御回路
Claims (6)
- 【請求項1】 積和演算命令を受け、2つのデータを乗
算しその結果を加算する処理を複数回繰り返す積和演算
処理装置であって、 前記2つのデータのうち一方のデータを転送する第1の
バスと、 前記2つのデータのうち他方のデータ及び前記積和演算
命令を転送する第2のバスと、 前記第1及び第2のバスに接続され、前記第1及び第2
のバスから転送されるデータについて前記処理を行う演
算実行部と、 前記第2のバスに接続されて前記積和演算命令を受け、
この積和演算命令に従って前記演算実行部を制御する命
令制御部とを備えたことを特徴とする積和演算処理装
置。 - 【請求項2】 前記命令制御部は、受けた単一の積和演
算命令を繰り返し解読して、前記処理を複数回行うよう
前記演算実行部を制御し、 前記第2のバスは、前記命令制御部が前記積和演算命令
を受ける時には前記積和演算命令を転送し、前記演算実
行部が前記処理を複数回行う時には、その各回毎に前記
他方のデータを転送することを特徴とする請求項1記載
の積和演算処理装置。 - 【請求項3】 前記第1のバスには、前記一方のデータ
を構成する変数データを記憶するRAMが接続され、 前記第2のバスには、前記他方のデータを構成する定数
データ及び前記積和演算命令を記憶するROMが接続さ
れることを特徴とする請求項1又は請求項2記載の積和
演算処理装置。 - 【請求項4】 前記一方のデータを読み出すデータ読み
出し部と、 前記積和演算命令を読み出す命令読み出し部とを備え、 前記命令読み出し部は、前記他方のデータを読み出す機
能をも有することを特徴とする請求項1、請求項2又は
請求項3記載の積和演算処理装置。 - 【請求項5】 前記命令読み出し部は、 読み出す命令のアドレスを退避する退避レジスタと、 アドレスを更新する更新カウンタと、 前記退避レジスタの出力及び前記データ読み出し手段の
出力の何れかを選択するセレクタとを備え、 前記命令制御部は、 前記処理の第1回目の繰返し時には、読み出す命令のア
ドレスを前記待避レジスタに待避すると共に、前記セレ
クタに前記データ読み出し手段の出力をデータ読み出し
の初期アドレスとして選択させ、 前記処理の第2回目以降の繰返し時には、前記更新カウ
ンタを制御して前記初期アドレスを順次更新させること
を特徴とする請求項4記載の積和演算処理装置。 - 【請求項6】 前記更新カウンタは、 前記積和演算命令を含む一連の命令の読み出し時と前記
他方のデータの読み出し時との双方で共用されることを
特徴とする請求項5記載の積和演算処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11207808A JP2001034603A (ja) | 1999-07-22 | 1999-07-22 | 積和演算処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11207808A JP2001034603A (ja) | 1999-07-22 | 1999-07-22 | 積和演算処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2001034603A true JP2001034603A (ja) | 2001-02-09 |
Family
ID=16545852
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11207808A Pending JP2001034603A (ja) | 1999-07-22 | 1999-07-22 | 積和演算処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2001034603A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008234076A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | 演算処理装置 |
| CN109685208A (zh) * | 2018-12-24 | 2019-04-26 | 合肥君正科技有限公司 | 一种用于神经网络处理器数据稀梳化加速的方法及装置 |
-
1999
- 1999-07-22 JP JP11207808A patent/JP2001034603A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008234076A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | 演算処理装置 |
| CN109685208A (zh) * | 2018-12-24 | 2019-04-26 | 合肥君正科技有限公司 | 一种用于神经网络处理器数据稀梳化加速的方法及装置 |
| CN109685208B (zh) * | 2018-12-24 | 2023-03-24 | 合肥君正科技有限公司 | 一种用于神经网络处理器数据稀梳化加速的方法及装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5826072A (en) | Pipelined digital signal processor and signal processing system employing same | |
| US20020169942A1 (en) | VLIW processor | |
| US5283874A (en) | Cross coupling mechanisms for simultaneously completing consecutive pipeline instructions even if they begin to process at the same microprocessor of the issue fee | |
| JP2001516916A (ja) | デジタル信号処理能力を有するデータ処理装置 | |
| JPH1091443A (ja) | 情報処理回路、マイクロコンピュータ及び電子機器 | |
| JPH11154114A (ja) | 複数データ・フェッチのアーキテクチャを使ってテーブル・ルックアップを実行するためのシステムおよび方法 | |
| US6715065B1 (en) | Micro program control method and apparatus thereof having branch instructions | |
| JP3237858B2 (ja) | 演算装置 | |
| EP3340037A1 (en) | A data processing apparatus and method for controlling vector memory accesses | |
| US4704680A (en) | Address computation system for updating starting addresses of data arrays in an array processor within an instruction cycle | |
| JPH07239780A (ja) | 1クロック可変長命令実行処理型命令読み込み電子計 算機 | |
| US4430708A (en) | Digital computer for executing instructions in three time-multiplexed portions | |
| EP1499956B1 (en) | Method and apparatus for swapping the contents of address registers | |
| US6609191B1 (en) | Method and apparatus for speculative microinstruction pairing | |
| US5276822A (en) | System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction | |
| US4812970A (en) | Microprogram control system | |
| JP2001034603A (ja) | 積和演算処理装置 | |
| KR100188374B1 (ko) | 연산처리장치 | |
| US5832257A (en) | Digital signal processing method and system employing separate program and data memories to store data | |
| US20200371793A1 (en) | Vector store using bit-reversed order | |
| JP2861560B2 (ja) | データ処理装置 | |
| JPS6125166B2 (ja) | ||
| JP3511691B2 (ja) | 演算処理装置 | |
| JP2584156B2 (ja) | プログラム制御型プロセッサ | |
| JP3461887B2 (ja) | 可変長パイプライン制御装置 |