JP2000293357A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JP2000293357A
JP2000293357A JP11098276A JP9827699A JP2000293357A JP 2000293357 A JP2000293357 A JP 2000293357A JP 11098276 A JP11098276 A JP 11098276A JP 9827699 A JP9827699 A JP 9827699A JP 2000293357 A JP2000293357 A JP 2000293357A
Authority
JP
Japan
Prior art keywords
data
input
instruction
register
circuit
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
JP11098276A
Other languages
English (en)
Inventor
Tetsuya Nakagawa
哲也 中川
Hidetoshi Sekine
英敏 関根
Yuki Inoue
由紀 井上
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
Original Assignee
Hitachi 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 filed Critical Hitachi Ltd
Priority to JP11098276A priority Critical patent/JP2000293357A/ja
Publication of JP2000293357A publication Critical patent/JP2000293357A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Advance Control (AREA)
  • Microcomputers (AREA)

Abstract

(57)【要約】 【課題】 演算回路とデータメモリを一組用いた演算処
理アーキテクチャ及び命令セットを生かしながら複数個
の演算回路用いて低消費電力及び演算処理の効率化を達
成する 【解決手段】 レジスタファイル(207)を共有して
2個の積和回路を設け、レジスタファイルはフィルタ係
数レジスタ(X0)、入力データレジスタ(Y0,Y
1)を備える。フィルタ係数レジスタには毎サイクル、
フィルタ係数を読み出し、入力データ用レジスタには交
互に入力データを読み出す。第1の積和回路(236,
237)の一方の入力には係数用レジスタを接続し、他
方には2つの入力データ用レジスタを毎サイクル切り替
えて交互に接続する。第2の積和回路(201,20
2)の一方の入力には係数用レジスタを接続し、他方に
は2つの入力データ用レジスタの内の第1の積和回路に
つながっていない方を毎サイクル切り替えて排他的に接
続する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の演算回路を
搭載したマイクロプロセッサ、更にはフィルタ処理など
のデジタル信号処理演算を効率化する技術に関し、例え
ば、デジタルセルラを始めとする携帯電話端末装置を低
消費電力で実現するために必要な低消費電力のプログラ
マブルなデジタルシグナルプロセッサ(以下、DSPと
略す。)に適用して有効な技術に関するものである。
【0002】
【従来の技術】携帯電話では、同じ容量の電池でどれだ
け長時間通話ができるかがその売れ行きを決める重要な
要素となる。そのためにはデジタル携帯電話を構成する
主要な部品の消費電力を削減することが必要である。電
力消費を決める主要な部品の中で最も重要なものの一つ
がDSP(Digital Signal Processor)である。DSP
は携帯電話端末の中で音声信号の圧縮・伸張処理を担当
する。よって音声圧縮・伸張処理の中の支配的な演算で
あるフィルタ演算を低消費電力で実行することが重要と
なる。
【0003】そこで、まずDSPがどのようなメカニズ
ムでフィルタ演算を行なっているかを図10を用いて説
明する。図10は本発明者が検討した典型的なDSPの
アーキテクチャを示している。図10のDSP620は
実行ユニット600、Xデータメモリ608、Yデータ
メモリ607、データアドレスジェネレータ611、プ
ログラムコントローラ612、 命令メモリ619及び
入出力回路621によって構成されている。
【0004】プログラムコントローラ612はプログラ
ムカウンタ613、デコーダ614及びプリフェッチユ
ニット615で構成される。プログラムカウンタ613
は命令読み出し用のアドレスを生成して命令アドレスバ
ス(IAB)617 を介して命令メモリ619に供給
する。読み出された命令ワードは命令データバス(ID
B)618を介してプリフェッチユニット615に取り
込まれてから命令デコーダ614に送られる。命令デコ
ーダ614は取り込んだ命令をデコードして制御信号6
16を生成して前記、実行ユニット600とデータアド
レスジェネレータ611を含むチップ全体を制御する。
【0005】フィルタ処理のプログラムは命令メモリ6
19内に格納される。フィルタ処理に用いられるフィル
タ係数列とデータ系列はそれぞれXデータメモリ608
とYデータメモリ607に格納されているものとする。
フィルタ処理はフィルタ係数列とデータ系列の連続積和
演算によって実現される。すなわち、フィルタ処理のプ
ログラムは、各々が、積和演算を指定する複数個の命令
列で構成されており、プログラムコントローラ612は
基本クロックに同期して、この命令列を一つずつ連続的
に読み出して、対応する制御信号616の系列を生成す
る。
【0006】データアドレスジェネレータ611は、こ
の連続的に供給される制御信号616の系列に指示され
て、2つのアドレス流をXアドレスバス(XAB)60
9とYアドレスバス(YAB)610上に生成し、Xデ
ータメモリ608に格納されているフィルタ係数列とY
データメモリ607に格納されているデータ系列を、そ
れぞれXデータバス(XDB)606、Yデータバス
(YDB)605上に連続的に読み出す。
【0007】実行ユニット600は上記連続的に供給さ
れる制御信号616の系列に指示されて、マルチプレク
サ602を制御して上記Xデータバス(XDB)60
6、Yデータバス(YDB)605上に連続的に読み出
されるフィルタ係数列とデータ系列をレジスタファイル
601内に取り込み、且つ、乗算器603、算術演算器
604及び マルチプレクサ602を制御してレジスタ
ファイル601内に取り込まれたデータ系列に対して積
和演算を連続的に実行する。
【0008】このようにDSPはフィルタ係数列、デー
タ系列及び命令列の3つのメモリ読み出しと積和演算を
並列に、基本クロックに同期して連続的に、1クロック
のスループットで実行できる。このようにDSPは、も
ともとフィルタ演算を高率よく実行できるようなアーキ
テクチャを採用している。DSPは、積和回路を持たな
いマイクロプロセッサに比較して音声圧縮・伸張の処理
を低電力で行なうことができるので携帯電話で使用され
ている。これをさらに低電力化することが要求されてい
るわけである。
【0009】こうした携帯電話用のDSPは現在、CM
OS(Complementary Metal OxideSemiconductor)技術
を用いて製造されている。CMOS技術を用いて製造さ
れているDSPの消費電力は動作周波数と回路の容量に
比例し、かつ動作電圧の二乗に比例する。そこで、積和
回路を2個搭載して動作周波数を半分して電圧を下げる
方法が考えられる。積和回路を2個搭載すると回路の容
量も倍になるが、これは動作周波数が半分になることで
相殺される。電圧を下げた分だけ消費電力がその二乗に
比例して削減されるという理屈である。
【0010】従来は積和回路を構成する乗算器のハード
ウェア規模が大きいために積和回路を2個以上搭載した
DSPを開発するのは現実的ではなかった。しかし、最
近の半導体集積化技術の著しい進歩に伴い、DSPのよ
うな組み込み用途のLSIでは同一チップ上に集積され
るメモリの容量が大きくなった。そのため一つの積和回
路の面積が全チップ面積に占める割合が相対的に小さく
なり、数パーセントに過ぎなくなってきた。
【0011】このような背景をもとに、最近積和回路を
2個以上搭載するDSPが現れてきた。DSPに積和回
路を2個以上搭載するアーキテクチャとしては、SIM
D(Single Instruction stream Multiple Data strea
m)やVLIW(Very Long Instruction Word)が通常
用いられる。DSPで用いられるSIMDとVLIWは
どちらも2個以上の積和回路と、それら専用のレジスタ
ファイル及びデータメモリ系を独立に備えているところ
は共通である。両者の違いはSIMDが2個以上の積和
回路の動作を命令コード内の1つの共通フィールドで指
定するのに対して、VLIWは命令コード内に積和回路
の数だけの専用フィールドを備えて複数個の積和回路を
独立に制御できるところだけである。
【0012】図11に本発明者の検討に係るSIMDと
VLIWで共通のアーキテクチャを示す。図11のアー
キテクチャの中の データアドレスジェネレータ71
0、Xデータメモリ700、Yデータメモリ701、レ
ジスタファイル704、実行ユニット706、プログラ
ムコントローラ708そして命令メモリ709で構成さ
れる部分は図10の積和回路を1つだけ持つDSPの構
成に対応している。これにデータアドレスジェネレータ
711、Xデータメモリ702、Yデータメモリ70
3、レジスタファイル705、及び実行ユニット707
で構成される第2の演算系が追加された構成になってい
る。
【0013】
【発明が解決しようとする課題】しかしながら、それら
のアーキテクチャでは積和回路だけが2倍になるのでは
なく、データを供給するためのデータ供給系回路と積和
回路が使用するレジスタファイルも2倍になり、LSI
のコストと開発工数が増大してしまう。さらにデータ転
送に伴う消費電力が増加し無視できなくなる。このた
め、せっかく周波数と動作電圧を下げて低電力化を図っ
ても、かなり相殺されてしまう可能性もある。また、デ
ータメモリアーキテクチャが大きく変り、命令セットが
完全に変更となってしまうために、過去に開発したDS
Pの音声圧縮・伸張プログラムが使えなくなるという問
題があった。
【0014】本発明の目的は、演算回路とデータメモリ
を一組用いた演算処理アーキテクチャ及び命令セットを
生かしながら複数個の演算回路用いて低消費電力及び演
算処理の効率化を達成できるマイクロプロセッサを提供
することにある。
【0015】本発明の別の目的は、積和回路を1個だけ
搭載している場合のデータメモリアーキテクチャ及び命
令セットを生かしながら、搭載された2個以上の積和回
路を効率よく活用でき、また、低消費電力を実現できる
マイクロプロセッサを提供することにある。
【0016】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0017】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0018】例えば、DSPの代表的な処理であるFI
Rフィルタにおいては、一つの出力を得るために入力デ
ータ列とフィルタ係数列との積和演算を行なう。そして
後続する2つ目の出力を計算するためには、同じデータ
列と同じ係数列との積和演算を相対位置を1データずら
して演算する。以下、連続する出力は同様に同一データ
列、係数列の間で相対位置を1データずつ、順番にずら
しながら計算する。この演算を一つの積和回路で行う場
合には、複数個の出力データを計算するために、同一入
力データ列を出力データ数回、繰り返し読み出して演算
を行なわなければならない。このように積和回路が一つ
しかなければ、入力データを一回読み出した時に一回し
か積和演算ができない。
【0019】ここに着目して、一つのレジスタファイル
(207)を共有する形で積和回路をもう1個追加し、
かつ共有されたレジスタファイル内に1つのフィルタ係
数用レジスタ(X0)と2つの入力データ用レジスタ
(Y0,Y1)を備える。フィルタ係数用レジスタには
毎サイクル、フィルタ係数を読み出すが、2つの入力デ
ータ用レジスタには交互に入力データを読み出すように
する。第1の積和回路(236,237)の2つの入力
のうちの一方には上記の係数用レジスタを接続し、もう
一方には上記2つの入力データ用レジスタを毎サイクル
切り替えて交互に接続する。第2の積和回路(201,
202)の2つの入力のうちの一方には上記の係数用レ
ジスタを接続し、もう一方には上記2つの入力データ用
レジスタのうちの第1の積和回路につながっていない方
を毎サイクル切り替えて排他的に接続する。
【0020】これにより、1つのデータと1つの係数を
読み出して一方の積和回路で演算している時、同時にも
う一方の積和回路では同じ係数と1サイクル前に読み出
した1つ前のデータとの演算を行なうことができる。す
なわち、1つの入力データと1つの係数の2つのデータ
を読み出すだけで、引き続く2つの出力データを同時に
計算できる。これにより、積和回路を一つしか持たない
構成に比べて、演算器とデータメモリ間の転送レートを
変えることなく、FIRフィルタを半分のサイクル数で
計算することができる。
【0021】さらに、共有されているレジスタファイル
と追加した第2の積和回路の間にトライステートバッフ
ァ(203)を備えて、これを命令によって制御できる
ようにする。これにより、2つの積和回路を使用する拡
張命令以外では第2の積和回路から切り離すことが可能
となり、拡張命令さえ使わなければ、第1の積和回路だ
けを用いた従来の命令セットを全く変更なく利用できる
ことになる。
【0022】更に本発明の手段を、レジスタと演算回路
との接続制御の態様の観点に立って詳述する。マイクロ
プロセッサ(10)は、複数個のデータレジスタ(X
0,Y0,Y1)を有しデータメモリ(120,12
1)とインタフェース可能なレジスタファイル(20
7)と、第1の演算回路(236,237)と、第2の
演算回路(201,202)と、前記レジスタファイル
に対する前記第1の演算回路及び第2の演算回路の接続
状態を決定する選択手段(203、242、235)
と、命令を解読して制御信号を発生する制御手段(10
5)とを含む。前記制御手段は、第1の命令セットに含
まれる命令の解読結果にしたがって前記第2の演算回路
をレジスタファイルから切り離し前記第1の演算回路と
前記データレジスタとの接続状態を前記選択手段に制御
させ、第2の命令セットに含まれる命令の解読結果に従
って前記第1及び第2の演算回路と前記データレジスタ
との接続状態を前記選択手段に制御させる。前記第2の
命令セットに含まれる命令の解読結果に従って制御を行
う選択手段は、データメモリから供給されるサンプルデ
ータを第1のデータレジスタ(Y0)と第2のデータレ
ジスタ(Y1)に交互に入力し、前記サンプルデータの
入力に同期して係数データを第3のデータレジスタ(X
0)に入力し、前記第1の演算回路の一方の入力と前記
第2の演算回路の一方の入力に排他的に接続されるべき
前記第1のデータレジスタの出力と前記第2のデータレ
ジスタの出力を前記サンプルデータの入力毎に交互に切
換えて接続し、前記サンプルデータの入力毎に前記第1
及び第2の演算回路の他方の入力に前記第3のデータレ
ジスタの出力を接続する。
【0023】更に本発明を2個以上の演算回路を持つ場
合に普遍化して説明する。マイクロプロセッサは、係数
データレジスタ及びn(2以上の整数)個のサンプルデ
ータレジスタを含みデータメモリとインタフェース可能
なレジスタファイルと、n個の演算回路と、前記レジス
タファイルに対する前記n個の演算回路の接続状態を決
定する選択手段と、命令を解読して制御信号を発生する
制御手段とを含む。前記制御手段は、第1の命令セット
に含まれる命令の解読結果にしたがって前記n個の演算
回路の内の所定の演算回路をレジスタファイルから切り
離し残りの演算回路と前記n個のサンプルデータレジス
タとの接続状態を前記選択手段に制御させ、第2の命令
セットに含まれる命令の解読結果にしたがって前記n個
の演算回路と前記n個のサンプルデータレジスタとの接
続状態を前記選択手段に制御させる。前記第2の命令セ
ットに含まれる命令の解読結果に従って制御を行う選択
手段は、データメモリから供給されるサンプルデータの
入力対象をサンプルデータの入力毎に前記n個のサンプ
ルデータレジスタの中で順次切換え、前記サンプルデー
タの入力に同期して係数データを前記係数データレジス
タに入力し、前記n個の演算回路の一方の入力に排他的
に接続されるべき前記n個のサンプルデータレジスタの
出力を前記サンプルデータの入力毎に順次切換え接続
し、前記サンプルデータの入力毎に前記n個の演算回路
の他方の入力に前記係数データレジスタの出力を接続す
る。
【0024】
【発明の実施の形態】図1には本発明に係るマイクロプ
ロセッサの一例であるDSP10が示される。同図に示
されるDSP10は、特に制限されないが、CMOS集
積回路製造技術によって1個の半導体基板に形成されて
いる。
【0025】DSP10は2個の実行ユニット200,
238、Xデータメモリ121、Yデータメモリ12
0、データアドレスジェネレータ124、プログラムコ
ントローラ100、 命令メモリ110、及び入出力回
路125によって構成されている。
【0026】一方の実行ユニット238はレジスタファ
イル207、マルチプレクサ235、乗算器(MUL
T)236、そして加算器を含む算術演算器(ALU)
237で構成される。MULT236とALU237が
連携して積和演算器(積和回路)を構成してフィルタ演
算の要である積和演算を1サイクルのスループットで実
行する。マルチプレクサ235はこれらの演算器の入出
力用にレジスタファイル207内の複数個のレジスタの
どれを用いるかを選択する。
【0027】他方の実行ユニット200はマルチプレク
サ242、乗算器(MULT)202、そして加算器を
含む算術演算器(ALU)201で構成される。MUL
T202とALU201が連携して積和演算器(積和回
路)を構成してフィルタ演算の要である積和演算を1サ
イクルのスループットで実行する。マルチプレクサ24
2はこれらの演算器の入出力用にレジスタファイル20
7内の複数個のレジスタのどれを用いるかを選択する。
【0028】トライステートバッファ203は前記実行
ユニット200を選択的にレジスタファイル207から
切り離し可能にする。
【0029】前記実行ユニット238とXデータメモリ
121、Yデータメモリ120はそれぞれXデータバス
(XDB)243、Yデータバス(YDB)244を介
して接続されている。これら2つのデータバスは実行ユ
ニット238内でマルチプレクサ235を介してレジス
タファイル207につながっている。マルチプレクサ2
35はレジスタファイル207内の複数個のレジスタの
どれに2つのデータバスを接続するかも選択する。デー
タアドレスジェネレータ124はXアドレスバス(XA
B)243とYアドレスバス(YAB)244を介して
それぞれXデータメモリ121とYデータメモリ120
に読み出し、又は書き込み用のアドレスを供給する。前
記Xデータメモリ121及びYデータメモリ120には
入出力回路I/O125を介して必要なデータが初期的
にストアされる。
【0030】プログラムコントローラ100はプログラ
ムカウンタ101、命令デコーダ105 及びプリフェ
ッチユニット102で構成される。プログラムカウンタ
101は命令読み出し用のアドレスを生成して命令アド
レスバス(IAB)111を介して命令メモリ110に
供給する。読み出された命令ワードは命令データバス
(IDB)112を介してプリフェッチユニット102
に取り込まれてから命令デコーダ105に送られる。命
令デコーダ105は取り込んだ命令をデコードして制御
信号130,131,204,241等を生成して、前
記データドレスジェネレータ124、実行ユニット23
8、トライステートバッファ203、及び実行ユニット
200等、チップ全体を制御する。
【0031】図2は前記DSP10におけるフィルタ倍
速型DSPアーキテクチャの要部を示している。図2に
おいてMULT236とALU237が連携して第1の
積和回路を構成し、MULT202とALU201が連
携して第2の積和回路を構成する。レジスタファイル2
07は、8個のレジスタX0,X1,Y0,Y1,A
0,A1,M0,M1を含む。
【0032】第1の積和回路はレジスタファイル207
にマルチプレクサ235を介して接続されている。第2
の積和回路はレジスタファイル207にマルチプレクサ
242及びトライステートバッファ203を介して接続
されている。図2では第1の積和回路を構成するMUL
T236とALU237、レジスタファイル207及び
マルチプレクサ235を太枠で囲って実行ユニット23
8としてまとめ、第2の積和回路を構成するMULT2
02とALU201とマルチプレクサ242を太枠で囲
って実行ユニット200としてまとめてある。
【0033】命令デコーダ105は命令ワード116を
解析してマルチプレクサ242の選択信号(Selec
t2)241、トライステートバッファ203のイネー
ブル信号(Enable)204、レジスタファイル2
07のライトイネーブル信号(WE)205、アウトプ
ットイネーブル信号(OE)206及びマルチプレクサ
235の選択信号(Select)250等を生成す
る。フィルタ処理に使われるフィルタ係数と入力データ
はそれぞれXデータバス(XDB)243とYデータバ
ス(YDB)244をからマルチプレクサ235を介し
てレジスタファイル207に供給される。
【0034】図2に示してある命令ワード116は前記
第1及び第2の積和回路を制御するフィールドを別々に
持つ拡張命令である。特に図示はしないが、その拡張命
令の命令コード或いは素の他の情報コードが前記命令デ
コーダ105で解読されることにより、前記トライステ
ートバッファ203のイネーブル信号(Enable)
204が真値にされ、実行ユニット200の第2の積和
回路はレジスタファイル207にマルチプレクサ242
を介して接続される。
【0035】命令ワード116が拡張命令でない場合は
上記トライステートバッファ203のイネーブル信号
(Enable)204は偽値となり、実行ユニット2
00の第2の積和回路はレジスタファイル207からマ
ルチプレクサ242と共に切り離される。この様子は図
3の等価回路に示され、これは従来型の積和回路を1個
だけ備えたDSPと等価になっている。図3に示してあ
る命令ワード116Aは1つの積和回路を制御するフィ
ールドしか持たない命令である。この命令ワードが図2
のデコーダ105に入力されると拡張命令ワードである
ことを示す特定ビットパターンを持たないのでイネーブ
ル信号(Enable)204は偽となり、実行ユニッ
ト200の第2の積和回路はレジスタファイル207か
らマルチプレクサ242と共に切り離される。
【0036】次に図4を用いて図2の構成を更に詳述す
る。図4にはマルチプレクサを用いて、2つの積和回路
とレジスタファイルを接続するための構成が詳細に示さ
れている。この図4を用いて倍速FIRフィルタ処理を
実現するのに必要となる2つの拡張命令を実現すること
ができる殊に付いて説明する。図4には図2の実行ユニ
ット238,実行ユニット200及びトライステートバ
ッファ203の部分のみが詳細に示されている。
【0037】実行ユニット238は第1の積和回路を構
成するMULT236とALU237、レジスタファイ
ル207及びマルチプレクサ235を基本要素として構
成されている。レジスタファイル207を構成する8個
のレジスタX0,X1,Y0,Y1,A0,A1,M
0,M1は出力制御回路239を介してそれぞれ対応す
る8本のレジスタ出力バス 208,209,210,
211,212,213,214,215に出力され
る。出力制御回路239は8個のレジスタにそれぞれ対
応する8ビットのアウトプットイネーブル信号(OE)
206の値に応じてレジスタの内容を対応するレジスタ
出力バスに出力するか否かを制御する。又、前記8個の
レジスタは入力制御回路240を介してそれぞれ対応す
る8本のレジスタ入力バス216,217,218,2
19,220,221,222に接続されている。入力
制御回路240は8個のレジスタにそれぞれ対応する8
ビットのライトイネーブル信号(WE)205の値に応
じて8本のレジスタ入力バス上の値を対応するレジスタ
に書き込むか否かを制御する。
【0038】マルチプレクサ235は4つの4入力1出
力マルチプレクサ229,230,231,232と2
つの1入力2出力デマルチプレクサ233,234で構
成されている。マルチプレクサ 232は4つのレジス
タ X0,X1,A0,A1の何れかを2ビットの選択
信号(AXsel)223の値に応じてALU237の
第1入力AXとして選択する。マルチプレクサ231は
4つのレジスタY0,Y1,M0,M1の何れかを2ビ
ットの選択信号(AYsel)224の値に応じてAL
U237の第2入力AYとして選択する。マルチプレク
サ230は4つのレジスタX0,X1,Y0,A1の何
れかを2ビットの選択信号(MXsel)225の値に
応じてMULT236の第1入力MXとして選択する。
マルチプレクサ229は4つのレジスタ X0,Y0,
Y1,A1の何れかを2ビットの選択信号(MYse
l)226の値に応じてMULT 236の第2入力M
Yとして選択する。デマルチプレクサ234はXデータ
バス(XDB)243上のデータを1ビット選択信号
(XDsel)227の値に応じてX0レジスタ用のレ
ジスタ入力バス216かX1レジスタ用のレジスタ入力
バス217のどちらかに出力する。デマルチプレクサ2
33はYデータバス(YDB)244上のデータを1ビ
ット選択信号(YDsel)228の値に応じてY0レ
ジスタ用のレジスタ入力バス218かY1レジスタ用の
レジスタ入力バス219のどちらかに出力する。
【0039】実行ユニット200は第2の積和回路を構
成するMULT202とALU201とマルチプレクサ
242で構成されている。ALU201の第1の入力A
XにはレジスタA1用のレジスタ出力バス213がトラ
イステートバッファ203を介して入力されている。A
LU201の第2の入力AYにはレジスタM1用のレジ
スタ出力バス215がトライステートバッファ203を
介して入力されている。MULT202の第1の入力M
XにはレジスタX0用のレジスタ出力バス208がトラ
イステートバッファ203を介して入力されている。M
ULT202の第2の入力MYにはマルチプレクサ24
2の出力が入力されている。マルチプレクサ242は2
入力1出力のマルチプレクサであり、その2つの入力と
してレジスタY0用のレジスタ出力バス210とレジス
タY1用のレジスタ出力バス211がトライステートバ
ッファ203を介して入力されている。
【0040】トライステートバッファ203は5個のレ
ジスタX0,Y0,Y1,A1,M1に対応する5本の
レジスタ出力バス208,210,211,213,2
15信号を入力し、制御信号(Enable)204の
値に応じて、これらを実行ユニット200に供給するか
否かを制御する。また、トライステートバッファ203
は実行ユニット200から出力されるMULT202
の出力MZとALU201の出力AZを入力し、制御信
号(Enable)204の値に応じて、これらをそれ
ぞれ、M1レジスタ用のレジスタ入力バス222とA1
レジスタ用のレジスタ入力バス220に出力するか否か
を制御する。
【0041】なお、第1の積和回路は従来の命令セット
をサポートするために、演算器の各入力毎に4つレジス
タ選択が可能な構成であり、マルチプレクサが複雑にな
っている。これに比べて第2の積和回路はFIRフィル
タ倍速用に用途を限定しているためマルチプレクサが単
純となり、第2の積和回路追加にともなうハードウエア
の増加は演算器分だけで済む。
【0042】前記信号(AXsel)223、信号(A
Ysel)224、信号(MXsel)225、信号
(MYsel)226、信号(XDsel)227、信
号(YDsel)228は、図2に示される信号(Se
lect)250の詳細な一例である。図Bにおいて前
記アウトプットイネーブル信号(OE)206とライト
イネーブル信号信号(WE)205は、各々8ビットで
ある。
【0043】続いて、倍速FIRフィルタ処理に有効な
2つの拡張命令による制御動作を代表例として説明す
る。
【0044】2つの拡張命令はどちらも第1のALU2
37の動作、第1のMULT236の動作、第2のAL
U201の動作、第2のMULT202の動作、Xデー
タバス(XDB)243上のデータのレジスタファイル
への読み込み、及び Yデータバス(YDB)244上
のデータのレジスタファイルへの読み込みの6つの並列
動作を制御する。
【0045】上記2つの拡張命令を疑似アセンブラ・コ
ードで記述すると、下記の(1)、(2)に示されるよ
うに、 A0=A0+M0,M0=X0*Y0,A1=A1+M1,M1=X0*Y1, X0=XDB,Y0=YDB…(1) A0=A0+M0,M0=X0*Y1,A1=A1+M1,M1=X0*Y0, X0=XDB,Y1=YDB…(2) と表現できる。尚、記号*は乗算を意味する。
【0046】前記拡張命令(1)は第1のALU237
と第1のMULT236でA0=A0+M0、及びM0
=X0*Y0を計算し、第2のALU201と第2のM
ULT202でA1=A1+M1,M1=X0*Y1を
計算すると同時に、Xデータバス(XDB)243上の
データとYデータバス(YDB)244上のデータをそ
れぞれX0とY0に読み込む。
【0047】前記拡張命令(2)は第1のALU237
と第1のMULT236でA0=A0+M0、及びM0
=X0*Y1を計算し、第2のALU201と第2のM
ULT202でA1=A1+M1,M1=X0*Y0を
計算すると同時に、Xデータバス(XDB)243上の
データとYデータバス(YDB)244上のデータをそ
れぞれX0とY1に読み込む。
【0048】ただし、ここで乗算に使用されるレジスタ
X0,Y0,Y1の値は、同一命令上の指定に伴って、
これらのレジスタへ取り込まれたものではなく、実行前
に既に取り込まれている値である。例えば、拡張命令
(1)が実行される時、M0=X0*Y0という乗算に
使用されるX0はこの命令の実行前にレジスタX0に入
っていた値が使われる。そして拡張命令(1)の実行に
伴いレジスタX0にはその時のXデータバス(XDB)
243上のデータが取り込まれる。加算に使われるレジ
スタM0,M1の値も同様に同一命令上の指定によって
乗算された結果ではなく、実行前に当該レジスタ内に入
っている値である。例えば、拡張命令(1)が実行され
る時、A0=A0+M0という加算に使用されるレジス
タM0の値はこの命令の実行前にレジスタM0に入って
いた値が使われる。そして拡張命令(1)の実行に伴い
レジスタM0は同一命令上の M0=X0*Y0の演算
結果で更新される。この点については第2の命令(2)
の場合も同様である。
【0049】上記、拡張命令(1)の動作を図4の構成
で実現するには、まず4つのマルチプレクサ232,2
31,230,229がそれぞれA0,M0,X0,Y
0用のレジスタ出力バスを選択するように対応する4つ
の制御信号( AXsel)223、(AYsel)2
24、(MXsel)225、(MYsel)226を
生成して供給すればよい。同時に2つのデマルチプレク
サ 244,243がそれぞれX0,Y0を選択するよ
うに、対応する2つの制御信号(XDsel)227,
(YDsel)228生成し、かつマルチプレクサ24
2がY1を選択するように 制御信号(AYsel)2
41を生成し、供給する。
【0050】そして演算のソースとなっているレジスタ
を読み出すために、8ビットのアウトプットイネーブル
信号(OE)206の読み出すレジスタに対応するビッ
トを真にして出力制御回路239を制御する。拡張命令
(1)ではA0,A1,M0,M1,X0,Y0,Y1
の7つのレジスタに対応する7ビットが真になる。同様
に演算のデスティネーションとなっているレジスタに書
き込むために、8ビットのライトイネーブル信号(W
E)205の書き込むレジスタに対応するビットを真に
して入力制御回路240を制御する必要がある。拡張命
令(1)ではA0,A1,M0,M1,X0,Y0の6
つのレジスタに対応する6ビットが真になる。だたし、
上記で説明したように各レジスタの内容は演算後に更新
されるので、これに伴ってアウトプットイネーブル信号
(OE)206はライトイネーブル信号(WE)205
より先に生成される必要がある。
【0051】また、もちろん拡張命令を使用する場合は
信号(Enable)204を真にして 実行ユニット
200をレジスタファイル207につなげておく必要も
ある。
【0052】拡張命令(2)も拡張命令(1)と同様
に、命令デコーダからの制御信号(AXsel)22
3,(AYsel)224,(MXsel)225,
(MYsel)226,(XDsel)227,(YD
sel)228,(OE)206,(WE)205 ,
(Enable)204,(AYsel2)241を制
御して実現できる。
【0053】続いて図5と図6を用いて、上記の2つの
拡張命令を用いてFIRフィルタ処理の倍速化を実現し
た場合のプログラム例を説明する。図5は係数が5つの
FIRフィルタで4番目の出力Z(4)と5番目の出力
Z(5)を計算する様子を示している。係数を5つとし
たのは説明図を簡便化するためであり、実際の音声圧縮
/伸張処理においては係数は10程度である。図5に4
番目の出力Z(4)と5番目の出力Z(5)を計算する
2つの式(1)と(2)と両式に対応する信号フロー図
を示す。
【0054】図5のZ(4)を計算する第1の信号フロ
ー図は4つの遅延素子300,301,302,303
と5つの乗算 308,309,310,311,31
2及び4つの加算 318,319,320,321で
構成される。5つの乗算を示す三角の中のa0,a1,
a2,a3,a4は5つのフィルタ係数を示す。5つの
三角に入力されているD(4),D(3),D(2),
D(1),D(0)は入力データであり、D(4)は新
規入力でD(3),D(2),D(1),D(0)は遅
延素子300,301,302,303に格納された過
去のデータとなる。4番目のフィルタ出力Z(4)は係
数列 a0,a1,a2,a3,a4 とデータ列 D
(4),D(3),D(2),D(1),D(0)との
積和演算で計算される。
【0055】図5のZ(5)を計算する第2の信号フロ
ー図は4つの遅延素子304,305,306,307
と5つの乗算313,314,315,316,317
及び4つの加算322,323,324,325で構成
される。前と同様5つの乗算を示す三角の中のa0,a
1,a2,a3,a4は5つのフィルタ係数を示す。5
つの三角に入力されているD(5),D(4),D
(3),D(2),D(1)は入力データであり、D
(5)は新規入力でD(4),D(3),D(2),D
(1)は遅延素子322,323,324,325に格
納された過去のデータとなる。すなわち、Z(4)を計
算する信号フロー図に比べて入力データは右に1つシフ
トしている。5番目のフィルタ出力Z(5)は係数列a
0,a1,a2,a3,a4とデータ列 D(5),D
(4),D(3),D(2),D(1)との積和演算で
計算される。
【0056】1つの積和回路で上記のZ(4)とZ
(5)を順番に計算すると合計で10サイクルかかる。
そこで、2つの積和回路で上記のZ(4)とZ(5)を
同時に計算することを考える。第1の積和回路でZ
(4)を計算しながら第2の積和回路でZ(5)を計算
するわけである。この時の計算順序を図5で,,
,,と番号をふって示してある。例えば番目に
は第1の積和回路でa2とD(2)の乗算をしながら、
第2の積和回路でa2とD(3)の乗算を行ない、番
目には第1の積和回路でa1とD(3)の乗算をしなが
ら、第2の積和回路でa1とD(4)の乗算を実行す
る。
【0057】この時、2つの積和回路で乗算される係数
の方は常に等しく、入力データの方は常に1サンプルだ
けずれている。つまり、1サンプル分だけ過去の入力デ
ータを保持していれば、1つの係数と1つの入力データ
を読み込むだけでZ(4)とZ(5)についての2つの
積和演算を実行できることになる。すなわち、1つのデ
ータと1つの係数を読み出して一方の積和回路で演算し
ている時、同時にもう一方の積和回路では同じ係数と1
サイクル前に読み出した1つ前のデータとの演算を行な
うことができる。よって、積和回路を1つしか持たない
従来型のDSPのデータメモリ・アーキテクチャを保っ
たまま、FIRフィルタを半分のサイクル数で計算する
ことができる。
【0058】1サンプル分だけ過去の入力データを保持
することは、図4で説明した2つの拡張命令(1)と
(2)を用いて実現できる。拡張命令(1)ではYデー
タバス上のデータをY0レジスタに取り込み、拡張命令
(2)ではYデータバス上のデータをY1レジスタに取
り込む。よって、両方の命令を交互に用いることによっ
て、1サンプル分だけ過去の入力データを保持すること
ができる。また、交互に更新されるY0,Y1レジスタ
を2つの積和回路で交互に参照することより、Z(4)
とZ(5)についての2つの積和演算を同時に実行でき
る。よって、2つの拡張命令では2つの乗算器の第2の
入力がY0とY1にたすきがけで切り替えられるように
設定されている。また、2つの積和回路で乗算される係
数の方は常に等しいので、この係数は拡張命令の(1)
と(2)の両方でX0レジスタにXデータバスから読み
込まれ、2つの乗算器の第1の入力に固定的に設定され
ている。即ち、前記拡張命令(1)、(2)の疑似アセ
ンブラ・コードで記述より明らかなように、命令(1)
と(2)を交互に実行するとい、演算サイクル毎に、演
算データは交互にレジスタY0,Y1にロードされ、係
数データはレジスタX0にロードされる。そして、第1
のMULT236による乗算は、演算サイクル毎にM0
=X0*Y0とM0=X0*Y1とが切換えられる。同
様に、第2のMULT202による乗算は、演算サイク
ル毎にM0=X0*Y1とM0=X0*Y0とが切換え
られる。
【0059】乗算に関する上記制御内容の観点を変えれ
ば、図7のようにシフトレジスタ構成として等価的に表
現することができる。図7において500は前記レジス
タファイル207及びマルチプレクサ142,235を
総称する回路ブロックである。レジスタReg0,Re
g1は演算サイクル毎にシフト動作を行う直列2段のシ
フトレジスタを構成する。このいようなシフトレジスタ
の構成によっても同様の演算結果を得ることができる。
レジスタY0,Y1が交互に図7のレジスタReg0,
Reg1として機能されるとものと考えれば、図7の構
成は図4と機能的に等価である。
【0060】図6では図5を用いて説明した倍速FIR
フィルタ処理実現方法を2つの拡張命令(1)、(2)
を用いたプログラムで記述した具体例を示す。図6の中
には8行からなる倍速FIRフィルタプログラム 40
4 と それら8行のプログラムの各行の具体的オペレー
ションを示した8行の疑似コードを示してある。又、図
6にはプログラム 404が使用するフィルタ係数と入
力データのアクセスを直感的に表す、X メモリ40
0,Yメモリ401,Xptr402,Yptr403
を示してある。
【0061】Xメモリ400には5つのフィルタ係数列
a0,a1,a2,a3,a4が格納されていて、デー
タアドレスポインタ(Xptr)402によって基本ク
ロックに同期してa4,a3,a2,a1,a0の順で
読み出される。Yメモリ401には 入力データ列 D
(0),D(1),D(2),D(3),D(4),D
(5) が格納されていて、データアドレスポインタ
(Yptr)403によって基本クロックに同期してD
(0),D(1),D(2),D(3),D(4),D
(5)の順で読み出される。
【0062】以下、プログラム404の実行内容を40
5の疑似コードを参照しながら説明する。1行目では、
まず、Y0にD(0)をロードする。2行目では、X0
とY1にそれぞれa4とD(1)をロードする。3行目
では、1行目でY0にロードしたD(0)と2行目でX
0にロードしたa4の乗算を第1の積和回路で実行する
と同時に2行目で、それぞれX0とY1にロードしたa
4とD(1)の乗算を第2の積和回路で実行する。そし
てさらに、X0とY0にそれぞれa3とD(2)をロー
ドする。
【0063】4行目では2行目でY1にロードしたD
(1)と3行目でX0にロードしたa3の乗算を第1の
積和回路で実行すると同時に3行目で、それぞれX0と
Y0にロードしたa3とD(2)の乗算を第2の積和回
路で実行する。そしてさらに、X0とY1にそれぞれa
2とD(3)をロードする。また、同時に3行目の2つ
の乗算結果であるa4*D(0)とa4*D(1)をそ
れぞれA0とA1にアキュムレートする。A0とA1を
0でクリアしておけば、この4行目の2つのアキュムレ
ートはそれぞれA0とA1への代入となる。ちなみに、
この4行目で使用しているのは拡張命令(2)であり、
次の5行目で使用するのは拡張命令(1)である。
【0064】5行目では3行目でY0にロードしたD
(2)と4行目でX0にロードしたa2の乗算を第1の
積和回路で実行すると同時に4行目で、それぞれX0と
Y0にロードしたa2とD(3)の乗算を第2の積和回
路で実行する。そしてさらに、X0とY0にそれぞれa
1とD(4)をロードする。又、同時に4行目の2つの
乗算結果であるa3*D(1)とa3*D(2)をそれ
ぞれA0とA1にアキュムレートする。
【0065】6行目は再び拡張命令(2)、7行目は拡
張命令(1)からメモリのロード部分を外したものとな
り、両命令が交互に繰り返される。6行目では4行目で
Y1にロードしたD(3)と5行目でX0にロードした
a1の乗算を第1の積和回路で実行すると同時に5行目
で、それぞれX0とY0にロードしたa1とD(4)の
乗算を第2の積和回路で実行する。そしてさらに、X0
とY1にそれぞれa0とD(5)をロードする。又、同
時に5行目の2つの乗算結果でるa2*D(2)とa2
*D(3)をそれぞれA0とA1にアキュムレートす
る。
【0066】7行目では5行目でY0にロードしたD
(4)と6行目でX0にロードしたa0の乗算を第1の
積和回路で実行すると同時に6行目で、それぞれX0と
Y0にロードしたa0とD(5)の乗算を第2の積和回
路で実行する。そして同時に6行目の2つの乗算結果で
あるa1*D(3)とa1*D(4)をそれぞれA0と
A1にアキュムレートする。最後の8行目では7行目の
2つの乗算結果であるa0*D(4)とa0*D(5)
をそれぞれA0とA1にアキュムレートする。これによ
り、A0とA1にはそれぞれ、図5の式(1)と式
(2)で表されるZ(4)とZ(5)の最終結果がアキ
ュムレートされ、計算が完了する。
【0067】図9にはマイクロプロセッサの別の例が示
される。同図に示されるマイクロプロセッサ11は、汎
用マイクロプロセッサにDSP機能を搭載して構成され
る。マイクロプロセッサ11は、特に制限されないが、
CPU(中央処理装置)20、内部メモリ22、バスス
テートコントローラ(BSC)23及び外部バスインタ
フェース回路(BIF)24と、シリアル入出力回路
(SCI)25やタイマ(TMR)26等の周辺回路を
汎用マイクロプロセッサ機能として備える。更に、DS
P機能を実現するために、DSPユニット21、Xデー
タメモリ121及びYデータメモリ120を有する。マ
イクロプロセッサのバス構成は内部データバス(ID
B)30と共に、ディジタル信号処理用のXデータバス
(XDB)243及びYデータバス(YDB)244を
有し、更にアドレスバス(AB)31、そして周辺アド
レスバス(PAB)32及び周辺データバス(PDB)
33を有する。
【0068】前記DSPユニットは図1の実行ユニット
200,238及びトライステートバッファ203の機
能を実現する。前記データドレスジェネレータ124及
びプログラムコントローラ100の機能はCPUが負担
する。したがって、CPUの命令セットにはCPU命令
とDSP命令が含まれ、CPUはDSP命令をフェッチ
すると、そのデコード結果にしたがってDSPを制御
し、また、DSPによる積和演算に必要なデータフェッ
チのためのバスサイクルを起動する。
【0069】図8には積和回路を4個設ける場合の例が
図7に相当されるシフトレジスタ方式の記述形態で示さ
れる。積和演算器を4組設けたプロセッサは、特にその
全体の図示は省略するが、図1において、ALU20
1、MULT202及びマルチプレクサ242からなる
実行ユニット200が、全部で4組、夫々トライステー
トバッファ203を介して実行ユニット238に接続可
能に設けられて構成されている。図8において、23
6,202、202A,202Bは乗算器である。加算
器若しくは算術論理演算器は図示を省略してある。50
5で示される回路ブロックは、レジスタファイル20
7、マルチプレクサ235及び4組のマルチプレクサ2
42を総称する。この構成で利用される拡張命令を疑似
アセンブラ・コードで記述すると、下記の(3)、
(4)、(5)、(6)に示されるように、 A0=A0+M0,M0=X0*Y0,A1=A1+M1,M1=X0*Y1, A2=A2+M2,M2=X0*Y2,A3=A3+M3,M3=X0*Y3, X0=XDB,Y0=YDB…(3) A0=A0+M0,M0=X0*Y1,A1=A1+M1,M1=X0*Y2, A2=A2+M2,M2=X0*Y3,A3=A3+M3,M3=X0*Y0, X0=XDB,Y1=YDB…(4) A0=A0+M0,M0=X0*Y2,A1=A1+M1,M1=X0*Y3, A2=A2+M2,M2=X0*Y0,A3=A3+M3,M3=X0*Y1, X0=XDB,Y2=YDB…(5) A0=A0+M0,M0=X0*Y3,A1=A1+M1,M1=X0*Y0, A2=A2+M2,M2=X0*Y1,A3=A3+M3,M3=X0*Y2, X0=XDB,Y3=YDB…(6) と表現できる。
【0070】前記拡張命令(3)〜(6)の疑似アセン
ブラ・コードで記述より明らかなように、命令(3)か
ら(6)を繰返し順番に実行するとき、演算サイクル毎
に、演算データは順番にレジスタY0,Y1、Y2,Y
3にロードされ、係数データはレジスタX0にロードさ
れる。そして、4個の夫々の乗算器MULTによる乗算
は、X0*Y0、X0*Y1、X0*Y2、X0*Y3
の演算が順次排他的に切換えて割り当てられる。
【0071】乗算に関する上記制御内容をシフトレジス
タ方式による観点で示した図8において、レジスタRe
g0,Reg1、Reg2,Reg3は演算サイクル毎
にシフト動作を行う直列4段のシフトレジスタを構成す
る。このようなシフトレジスタの構成によっても同様の
演算結果を得ることができる。レジスタReg0,Re
g1、Reg2,Reg3はレジスタY0,Y1,Y
2,Y3としての機能が排他的に順次切換えて割り当て
られるものと理解されたい。
【0072】図8の構成によれば、図10の構成に比べ
て1/4の演算サイクル数でFIRフィルタ演算を実現
することができる。また、スループットを従来通りにす
る場合には、ディジタル信号処理の動作クロック周波数
を1/4にすることができ、これによって電力消費を格
段に低減することができる。
【0073】以上、本発明の一実施形態について説明を
したが、本発明は上記実施形態に限定されるものではな
い。例えば本発明は積和回路が3個の場合、5個以上の
場合にも適用可能である。X0,X1のような入力デー
タレジスタの数がn個ある場合には、n個以下の範囲で
しか積和回路を設けることができない。また、A0,A
1のようなアキュムレータレジスタの数も積和回路の数
と相関を有し、アキュムレータレジスタの数がn個ある
場合、n個以下の範囲でしか積和回路を複数個設けるこ
とはできない。
【0074】また、本実施例では積和回路が独立した2
つの乗算器と加算器で構成される場合を示したが、一つ
の不可分な回路として実現された積和回路を用いる場合
にも適用可能である。さらに追加される第2の演算器は
積和回路に限定され図、浮動小数点演算回路、或いはE
CCコードによる誤り訂正の演算等に用いられるガロア
体演算回路など、その他の演算回路であってもよい。
【0075】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0076】すなわち、積和回路等の演算回路を1セッ
トしか持たないDSP等のマイクロプロセッサのデータ
処理演算アーキテクチャを全て変更せずに、積和回路等
の演算回路だけを増やしてフィルタ演算等の所定の演算
を従来よりも少ない演算サイクル数で実現できる。或い
は、同一のスループットを実現する場合には、従来の数
分の1の動作周波数で所要の演算を完了することができ
る。したがって、この場合には、演算速度の点では処理
効率は上がらないが電力消費を格段に低減することがで
きる。
【0077】例えば、本発明をディジタル信号処理演
算、特にフィルタ演算に適用すると、フィルタ演算は携
帯電話端末等における音声圧縮・伸張処理の中の支配的
な演算であるから、本発明により通話中におけるディジ
タル信号処理の動作周波数を低く押さえることができ、
マイクロプロセッサを低電圧で動作させることにより消
費電力を削減することが可能となる。
【0078】また、データメモリ・アーキテクチャが従
来のDSPと同じなのでLSIのコストと開発工数もほ
とんど変わらないという利点がある。
【0079】さらに、本発明に係るマイクロプロセッサ
は、複数個の積和回路等の演算回路を用いる専用命令を
少数個追加するだけで、もとの命令セットを変更せずに
使用できる。このため過去に開発したDSPの音声圧縮
・伸張プログラムに対して、追加命令の部分のみの小修
正で低電力版に改造でき、過去の設計資産を再利用でき
るという効果がある。
【図面の簡単な説明】
【図1】本発明に係るマイクロプロセッサの一例である
DSPのブロック図である。
【図2】図1のDSPにおけるフィルタ倍速型DSPア
ーキテクチャの要部を示す説明図である。
【図3】命令ワードが拡張命令でない場合に利用可能な
積和回路の様子を示す説明図である。
【図4】マルチプレクサを用いて2つの積和回路とレジ
スタファイルを接続するための構成を詳細に示した回路
図である。
【図5】係数が5つのFIRフィルタで4番目の出力Z
(4)と5番目の出力Z(5)を計算する様子を示した
動作説明図である。
【図6】図5を用いて説明した倍速FIRフィルタ処理
の実現手法を2つの拡張命令(1)、(2)を用いたプ
ログラムで記述した説明図である。
【図7】乗算に関する制御内容を観点を変えてシフトレ
ジスタ構成として等価的に表現した説明図である。
【図8】積和回路を4個設ける場合の例を図7のような
シフトレジスタ方式の形態で示した説明図である。
【図9】本発明に係るマイクロプロセッサの別の例であ
るマイクロプロセッサを示すブロック図である。
【図10】本発明者が検討した典型的なDSPのアーキ
テクチャを示すブロック構成図である。
【図11】本発明者の検討に係るSIMDとVLIWに
共通のアーキテクチャを示すブロック構成図である。
【符号の説明】
200 実行ユニット 201 ALU 202 MULT 203 トライステートバッファ 204 制御信号 205、206 制御信号 207 レジスタファイル 208〜222 データ線 223〜228 制御信号 229〜232 マルチプレクサ 233、234 デマルチプレクサ 235 マルチプレクサ 236 MULT 237 ALU 238 実行ユニット 239 出力制御回路 240 入力制御回路 241 制御信号 242 マルチプレクサ 243 Xデータバス 244 Yデータバス 300〜307 遅延素子 308〜317 乗算器 318〜325 加算器 400 Xデータメモリ 401 Yデータメモリ 402 Xデータ・アドレス・ポインタ 403 Yデータ・アドレス・ポインタ 404 プログラム 405 疑似コード 600 実行ユニット 601 レジスタファイル 602 マルチプレクサ 603 MULT 604 ALU 605 Yデータバス 606 Xデータバス 607 Xデータメモリ 608 Yデータメモリ 609 Xアドレスバス 610 Yアドレスバス 611 データ・アドレス・ジェネレータ 612 プログラム・コントローラ 613 プログラム・カウンタ 614 デコーダ 615 プリフェッチ・ユニット 616 制御信号 617 命令アドレスバス 618 命令データバス 619 命令メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 井上 由紀 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体グループ内 Fターム(参考) 5B013 DD01 5B022 AA01 CA01 CA03 CA07 CA09 DA02 FA01 FA09 FA10 5B062 AA03 AA05 CC01 CC06 DD04 DD10

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 複数個のレジスタを備えた第1の演算回
    路と複数個のデータメモリを複数のバスで接続したデー
    タ演算系と、 命令メモリ及び命令解析装置を備え、前記命令メモリに
    格納された命令語を読み出して前記命令解析装置で解析
    することによって生成される制御信号を用いて、前記デ
    ータ演算系を制御する命令制御系とを有するマイクロプ
    ロセッサにおいて、 前記データ演算系に、前記レジスタを共有可能であって
    前記制御信号で制御される第2の演算回路と、前記第2
    の演算回路を第1の演算回路から切り離し可能であって
    前記制御信号で制御されるゲート手段と、を設けて成る
    ものであることを特徴とするマイクロプロセッサ。
  2. 【請求項2】 前記データ演算系に、前記レジスタを共
    有可能であり且つ前記ゲート手段で前記第1の演算回路
    から切り離し可能であって、前記制御信号で制御される
    単数又は複数個の演算回路を更に設けて成るものである
    ことを特徴とする請求項1記載のマイクロプロセッサ。
  3. 【請求項3】 前記命令制御系が扱う命令セットは、前
    記追加した演算回路を使用しない基本命令セットと、前
    記追加した演算回路を使用する拡張命令セットと含み、 前記基本命令セットに含まれる任意の命令を前記命令解
    析装置で解析することによって生成される制御信号によ
    り、前記ゲート手段の信号伝達が不可能にされ、前記拡
    張命令セットに含まれる任意の命令語を前記命令解析装
    置で解析することによって生成される制御信号により、
    前記ゲート手段の信号伝達が可能にされるものであるこ
    とを特徴とする請求項1又は2記載のマイクロプロセッ
    サ。
  4. 【請求項4】 前記演算回路は積和回路であること特徴
    とする請求項1乃至3の何れか1項記載のマイクロプロ
    セッサ。
  5. 【請求項5】 前記複数個のレジスタの中に前記積和回
    路による積和演算の累積を行なうアキュムレータレジス
    タを2本以上備え、前記追加した演算回路の積和回路を
    含めた全部の積和回路の数が、前記アキュムレータレジ
    スタの数に等しいか又は少ないことを特徴とする請求項
    4記載のマイクロプロセッサ。
  6. 【請求項6】 前記複数個のレジスタには、積和回路に
    よる乗算演算の2入力の内の第1の入力用の1個以上の
    Xレジスタと第2の入力用の1個以上のYレジスタを備
    え、前記拡張命令によって、前記複数個の積和回路の乗
    算用の第1の入力に、前記Xレジスタの中の1つを指定
    して共通に接続するものであることを特徴とする請求項
    4記載のマイクロプロセッサ。
  7. 【請求項7】 前記複数個の積和回路の数は、前記Yレ
    ジスタの数に等しいか又は少ないことを特徴とする請求
    項6記載のマイクロプロセッサ。
  8. 【請求項8】 前記拡張命令を前記命令解析装置で解析
    することによって生成される制御信号により、前記複数
    個の積和回路の乗算用の第2の入力に夫々別々の前記Y
    レジスタを1個づつ指定するものであることを特徴とす
    る請求項7記載のマイクロプロセッサ。
  9. 【請求項9】 複数個のデータレジスタを有しデータメ
    モリとインタフェース可能なレジスタファイルと、第1
    の演算回路と、第2の演算回路と、前記レジスタファイ
    ルに対する前記第1の演算回路及び第2の演算回路の接
    続状態を決定する選択手段と、命令を解読して制御信号
    を発生する制御手段とを含み、 前記制御手段は、第1の命令セットに含まれる命令の解
    読結果にしたがって前記第2の演算回路をレジスタファ
    イルから切り離し前記第1の演算回路と前記データレジ
    スタとの接続状態を前記選択手段に制御させ、第2の命
    令セットに含まれる命令の解読結果に従って前記第1及
    び第2の演算回路と前記データレジスタとの接続状態を
    前記選択手段に制御させ、 前記第2の命令セットに含まれる命令の解読結果に従っ
    て制御を行う選択手段は、データメモリから供給される
    サンプルデータを第1のデータレジスタと第2のデータ
    レジスタに交互に入力し、前記サンプルデータの入力に
    同期して係数データを第3のデータレジスタに入力し、
    前記第1の演算回路の一方の入力と前記第2の演算回路
    の一方の入力に排他的に接続されるべき前記第1のデー
    タレジスタの出力と前記第2のデータレジスタの出力を
    前記サンプルデータの入力毎に交互に切換えて接続し、
    前記サンプルデータの入力毎に前記第1及び第2の演算
    回路の他方の入力に前記第3のデータレジスタの出力を
    接続するものであることを特徴とするマイクロプロセッ
    サ。
  10. 【請求項10】 係数データレジスタ及びn(2以上の
    整数)個のサンプルデータレジスタを含みデータメモリ
    とインタフェース可能なレジスタファイルと、n個の演
    算回路と、前記レジスタファイルに対する前記n個の演
    算回路の接続状態を決定する選択手段と、命令を解読し
    て制御信号を発生する制御手段とを含み、 前記制御手段は、第1の命令セットに含まれる命令の解
    読結果にしたがって前記n個の演算回路の内の所定の演
    算回路をレジスタファイルから切り離し残りの演算回路
    と前記n個のサンプルデータレジスタとの接続状態を前
    記選択手段に制御させ、第2の命令セットに含まれる命
    令の解読結果にしたがって前記n個の演算回路と前記n
    個のサンプルデータレジスタとの接続状態を前記選択手
    段に制御させ、 前記第2の命令セットに含まれる命令の解読結果に従っ
    て制御を行う選択手段は、データメモリから供給される
    サンプルデータの入力対象をサンプルデータの入力毎に
    前記n個のサンプルデータレジスタの中で順次切換え、
    前記サンプルデータの入力に同期して係数データを前記
    係数データレジスタに入力し、前記n個の演算回路の一
    方の入力に排他的に接続されるべき前記n個のサンプル
    データレジスタの出力を前記サンプルデータの入力毎に
    順次切換え接続し、前記サンプルデータの入力毎に前記
    n個の演算回路の他方の入力に前記係数データレジスタ
    の出力を接続するものであることを特徴とするマイクロ
    プロセッサ。
  11. 【請求項11】 前記演算回路は、乗算回路と加算回路
    を有し、前記一方の入力と他方の入力は前記乗算回路の
    乗数の入力と被乗数の入力であり、前記加算回路は前記
    乗算器の出力とアキュムレータレジスタの出力とを加算
    して当該アキュムレータレジスタの入力に向けて出力す
    るものであることを特徴とする請求項9又は10記載の
    マイクロプロセッサ。
JP11098276A 1999-04-06 1999-04-06 マイクロプロセッサ Withdrawn JP2000293357A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11098276A JP2000293357A (ja) 1999-04-06 1999-04-06 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11098276A JP2000293357A (ja) 1999-04-06 1999-04-06 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JP2000293357A true JP2000293357A (ja) 2000-10-20

Family

ID=14215428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11098276A Withdrawn JP2000293357A (ja) 1999-04-06 1999-04-06 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JP2000293357A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007259451A (ja) * 2006-03-22 2007-10-04 Aisin Seiki Co Ltd 通信信号受信機用適応フィルタに関するプロセッサ回路、集積回路、受信器
US7308560B2 (en) 2004-04-19 2007-12-11 Oki Electric Industry Co., Ltd. Processing unit
JP2011039982A (ja) * 2009-08-18 2011-02-24 Toshiba Corp プロセッサ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308560B2 (en) 2004-04-19 2007-12-11 Oki Electric Industry Co., Ltd. Processing unit
JP2007259451A (ja) * 2006-03-22 2007-10-04 Aisin Seiki Co Ltd 通信信号受信機用適応フィルタに関するプロセッサ回路、集積回路、受信器
JP2011039982A (ja) * 2009-08-18 2011-02-24 Toshiba Corp プロセッサ
US8429380B2 (en) 2009-08-18 2013-04-23 Kabushiki Kaisha Toshiba Disabling redundant subfunctional units receiving same input value and outputting same output value for the disabled units in SIMD processor

Similar Documents

Publication Publication Date Title
Renaudin et al. ASPRO-216: A standard-cell QDI 16-bit RISC asynchronous microprocessor
US6397240B1 (en) Programmable accelerator for a programmable processor system
US6230257B1 (en) Method and apparatus for staggering execution of a single packed data instruction using the same circuit
US8443170B2 (en) Apparatus and method for performing SIMD multiply-accumulate operations
US20020169942A1 (en) VLIW processor
JPH10187438A (ja) 乗算器の入力に対する遷移を減少させる方法
KR20030011071A (ko) 결합된 곱셈-축적 유닛을 가지고 있는 디지털 신호 프로세서
JP3667635B2 (ja) 演算装置
JP2001027945A (ja) Simd演算を実行するために標準macユニットを利用する浮動小数点ユニット
JP3458518B2 (ja) 並列プロセッサ
JP3479385B2 (ja) 情報処理装置
KR19980041758A (ko) 축소 데이타 경로 폭을 갖는 2-비트 부스 곱셈기
JP2000322235A (ja) 情報処理装置
JP2000293357A (ja) マイクロプロセッサ
US20220261251A1 (en) Processing device with vector transformation execution
US6401106B1 (en) Methods and apparatus for performing correlation operations
US7047271B2 (en) DSP execution unit for efficient alternate modes for processing multiple data sizes
US20030233384A1 (en) Arithmetic apparatus for performing high speed multiplication and addition operations
JP5633303B2 (ja) リコンフィグ可能なlsi
WO2006083768A2 (en) Same instruction different operation (sido) computer with short instruction and provision of sending instruction code through data
JP3144859B2 (ja) 算術論理演算装置
JPH05324694A (ja) 再構成可能並列プロセッサ
JP3526773B2 (ja) マルチプロセッサ装置およびその制御方法
JP3088956B2 (ja) 演算装置
JP3669841B2 (ja) マイクロプロセッサ

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060606