JPH0877003A - Dspプログラム並列制御装置 - Google Patents
Dspプログラム並列制御装置Info
- Publication number
- JPH0877003A JPH0877003A JP6208768A JP20876894A JPH0877003A JP H0877003 A JPH0877003 A JP H0877003A JP 6208768 A JP6208768 A JP 6208768A JP 20876894 A JP20876894 A JP 20876894A JP H0877003 A JPH0877003 A JP H0877003A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- register
- program
- executed
- 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
Links
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【目的】 DSPのプログラム制御装置に関し、特に転
送処理と演算処理を並列に処理するDSPのプログラム
制御装置を提供する。 【構成】 プログラムアドレス発生部1、前記アドレス
値の偶数/奇数に対応した偶数側/奇数側の命令メモリ
2,3、各命令メモリからの命令データを実行順に逐次
選択する第1のセレクタ5、その命令データを格納する
IRA6、その命令データがシフトされるIRB8、前
記命令データのデコード結果に従ってアドレス計算を行
うアドレス生成部7、前記デコード結果により次の命令
が並列実行可能な場合に前記いずれかの命令メモリから
次の命令データを選択する第2のセレクタ、そしてその
命令データを格納するIRC9を具備し、前記アドレス
生成部からのアドレスを用い前記IRBの命令とIRC
の命令とを並列実行する。
送処理と演算処理を並列に処理するDSPのプログラム
制御装置を提供する。 【構成】 プログラムアドレス発生部1、前記アドレス
値の偶数/奇数に対応した偶数側/奇数側の命令メモリ
2,3、各命令メモリからの命令データを実行順に逐次
選択する第1のセレクタ5、その命令データを格納する
IRA6、その命令データがシフトされるIRB8、前
記命令データのデコード結果に従ってアドレス計算を行
うアドレス生成部7、前記デコード結果により次の命令
が並列実行可能な場合に前記いずれかの命令メモリから
次の命令データを選択する第2のセレクタ、そしてその
命令データを格納するIRC9を具備し、前記アドレス
生成部からのアドレスを用い前記IRBの命令とIRC
の命令とを並列実行する。
Description
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はDSP(Digital Signal
Processor)のプログラム制御装置に関し、特に転送処理
と演算処理を並列に処理することによって命令処理サイ
クルを短縮させたDSPのプログラム制御装置に関する
ものである。
Processor)のプログラム制御装置に関し、特に転送処理
と演算処理を並列に処理することによって命令処理サイ
クルを短縮させたDSPのプログラム制御装置に関する
ものである。
【0002】
【従来の技術】近年、DSPは携帯電話などに広く用い
られており、その低消費電力化や多機能化が強く求めら
れている。前記低消費電力化のためには1つの方法とし
てDSPの動作クロック周波数を低く抑えることが考え
られるが、その処理速度を維持したままで動作クロック
を低化させるにはDSPの命令処理サイクルを減らす必
要がある。また、前記多機能化のため命令処理を追加す
るような場合にも、処理速度を低下させないためにDS
Pの命令処理サイクル数を減らす必要がある。
られており、その低消費電力化や多機能化が強く求めら
れている。前記低消費電力化のためには1つの方法とし
てDSPの動作クロック周波数を低く抑えることが考え
られるが、その処理速度を維持したままで動作クロック
を低化させるにはDSPの命令処理サイクルを減らす必
要がある。また、前記多機能化のため命令処理を追加す
るような場合にも、処理速度を低下させないためにDS
Pの命令処理サイクル数を減らす必要がある。
【0003】図10は、従来のプログラム制御構成の一
例を示したブロック図である。また、図11は図10の
回路動作の一例を示した動作タイミング図である。図1
0において、太線の各ブロックにはシステムクロックが
供給されている。プログラムアドレス発生部(プログラ
ムカウンタ)10によって指定された命令メモリ11内
のコマンドがインストラクションレジスタA12によっ
て転送命令と判断された場合には、アドレス計算部14
及びアドレスレジスタを使ってその転送アドレスが生成
され、次にインストラクションレジスタB13により前
記生成されたアドレスに対する転送命令が実行される。
また、インストラクションレジスタA12によって演算
命令と判断された場合には、そのままインストラクショ
ンレジスタB13によって演算命令が実行される。後者
の場合には、アドレス生成は不要である。
例を示したブロック図である。また、図11は図10の
回路動作の一例を示した動作タイミング図である。図1
0において、太線の各ブロックにはシステムクロックが
供給されている。プログラムアドレス発生部(プログラ
ムカウンタ)10によって指定された命令メモリ11内
のコマンドがインストラクションレジスタA12によっ
て転送命令と判断された場合には、アドレス計算部14
及びアドレスレジスタを使ってその転送アドレスが生成
され、次にインストラクションレジスタB13により前
記生成されたアドレスに対する転送命令が実行される。
また、インストラクションレジスタA12によって演算
命令と判断された場合には、そのままインストラクショ
ンレジスタB13によって演算命令が実行される。後者
の場合には、アドレス生成は不要である。
【0004】上記動作を図11の動作タイミング図を使
って説明する。図11は、従来の転送命令タイミングの
一例を示している。なお、以降に示す各タイミングチャ
ートの説明において、nはPCの値がn、(n)は命令
メモリのn番地に書かれている命令コード、アドレス
(n)は命令メモリのn番地の命令により計算されたデ
ータメモリのアドレス、データ(n)はデータメモリの
アドレス(n)に書かれているデータ、そしてimm
(n)は命令メモリのn番地に書かれている即値をそれ
ぞれ表している。図11において、プログラムアドレス
発生部(PC)10でアドレス指定された命令メモリ1
1のn及びn+2番地には転送命令が、そしてその他の
番地には演算命令が格納されている。図11の(a)に
示すシステムクロックによってプログラムアドレス発生
部10はインクリメントされ(図11の(b))、その
出力であるプログラムアドレスnが命令メモリ11へ与
えられる。それによって命令メモリ11からは対応する
命令コード(n)が出力され(図11の(c))、前記
命令コード(n)はシステムクロックの立ち上がりエ
ッジでインストラクションレジスタA(IRA)12に
保持される(図11の(d))。上述したように前記命
令コード(n)は転送命令であり、アドレス計算部14
を用いて転送対象となるアドレスの計算が行われる(図
11の(e))。
って説明する。図11は、従来の転送命令タイミングの
一例を示している。なお、以降に示す各タイミングチャ
ートの説明において、nはPCの値がn、(n)は命令
メモリのn番地に書かれている命令コード、アドレス
(n)は命令メモリのn番地の命令により計算されたデ
ータメモリのアドレス、データ(n)はデータメモリの
アドレス(n)に書かれているデータ、そしてimm
(n)は命令メモリのn番地に書かれている即値をそれ
ぞれ表している。図11において、プログラムアドレス
発生部(PC)10でアドレス指定された命令メモリ1
1のn及びn+2番地には転送命令が、そしてその他の
番地には演算命令が格納されている。図11の(a)に
示すシステムクロックによってプログラムアドレス発生
部10はインクリメントされ(図11の(b))、その
出力であるプログラムアドレスnが命令メモリ11へ与
えられる。それによって命令メモリ11からは対応する
命令コード(n)が出力され(図11の(c))、前記
命令コード(n)はシステムクロックの立ち上がりエ
ッジでインストラクションレジスタA(IRA)12に
保持される(図11の(d))。上述したように前記命
令コード(n)は転送命令であり、アドレス計算部14
を用いて転送対象となるアドレスの計算が行われる(図
11の(e))。
【0005】次に、システムクロックの立ち上がりエ
ッジで前記保持された命令コード(n)は次段のインス
トラクションレジスタB(IRB)13にシフトされ
(図11の(f))、同時に前記アドレス計算部14で
計算されたアドレス(n)はアドレスレジスタ15に保
持される(図11の(g))。なお、演算命令では前記
アドレス計算は行われない。最後に、インストラクショ
ンレジスタB13で命令コード(n)がデコードされ、
前記転送アドレス(n)に従ってのクロックで転送命
令(n)が実行される。なお、演算命令の場合にも3ク
ロック目で演算を実行し、前記転送命令(n)の次の演
算命令(n+1)はのクロックで実行される。従っ
て、図11の(f)に示すように転送命令(n)と演算
命令(n+1)とが同時に実行されることはない。
ッジで前記保持された命令コード(n)は次段のインス
トラクションレジスタB(IRB)13にシフトされ
(図11の(f))、同時に前記アドレス計算部14で
計算されたアドレス(n)はアドレスレジスタ15に保
持される(図11の(g))。なお、演算命令では前記
アドレス計算は行われない。最後に、インストラクショ
ンレジスタB13で命令コード(n)がデコードされ、
前記転送アドレス(n)に従ってのクロックで転送命
令(n)が実行される。なお、演算命令の場合にも3ク
ロック目で演算を実行し、前記転送命令(n)の次の演
算命令(n+1)はのクロックで実行される。従っ
て、図11の(f)に示すように転送命令(n)と演算
命令(n+1)とが同時に実行されることはない。
【0006】
【発明が解決しようとする課題】このように、従来にお
いては転送処理及び演算処理自体は同時に並列処理可能
であるにもかかわらず1命令ずつ実行していたため、全
体の処理サイクル数が増大して処理速度が低下するとい
う問題があった。また、前記処理速度の低下を補うため
に高速のDSP動作クロックを用いると、逆に消費電力
が増大して携帯端末用として使用するには問題があっ
た。
いては転送処理及び演算処理自体は同時に並列処理可能
であるにもかかわらず1命令ずつ実行していたため、全
体の処理サイクル数が増大して処理速度が低下するとい
う問題があった。また、前記処理速度の低下を補うため
に高速のDSP動作クロックを用いると、逆に消費電力
が増大して携帯端末用として使用するには問題があっ
た。
【0007】また上記との関連で、転送命令と演算命令
とを同時に実行可能な複合命令も利用されてきた。しか
しながら、そのような複合命令を使用する場合には、通
常の単独命令に比べて複合命令の命令コードビット長が
2倍必要となり、さらに複合処理を行わない単独の転送
命令や演算命令に対しても2倍の命令コードビット長が
必要となる等、それによって命令メモリ11の容量が大
幅に増大するという問題があった。
とを同時に実行可能な複合命令も利用されてきた。しか
しながら、そのような複合命令を使用する場合には、通
常の単独命令に比べて複合命令の命令コードビット長が
2倍必要となり、さらに複合処理を行わない単独の転送
命令や演算命令に対しても2倍の命令コードビット長が
必要となる等、それによって命令メモリ11の容量が大
幅に増大するという問題があった。
【0008】そこで本発明の目的は、上記問題点に鑑
み、上記命令メモリおよびインストラクションレジスタ
Bをそれぞれ2個有する構成とし、それによって転送命
令と演算命令が連続する場合にはそれらを同時並列処理
可能として処理サイクルの低減や低消費電力化を達成し
たDSPを提供することにある。
み、上記命令メモリおよびインストラクションレジスタ
Bをそれぞれ2個有する構成とし、それによって転送命
令と演算命令が連続する場合にはそれらを同時並列処理
可能として処理サイクルの低減や低消費電力化を達成し
たDSPを提供することにある。
【0009】
【課題を解決するための手段】本発明によれば、図1の
本発明によるDSPプログラム並列制御装置の基本構成
に示すように、プログラムアドレスを発生するためのプ
ログラムアドレス発生部1前記プログラムアドレス発生
部1からのアドレス値の偶数/奇数にそれぞれ対応した
偶数側の命令メモリ2及び奇数側の命令メモリ3、前記
各命令メモリ2,3から出力される各命令データを命令
の実行順に従って逐次選択する第1のセレクタ5、前記
第1のセレクタ5によって選択された命令データが格納
されるインストラクションレジスタA6、前記インスト
ラクションレジスタA6のデコード結果に従ってアドレ
ス計算を行うアドレス生成部7、前記インストラクショ
ンレジスタA6に格納された命令データがシフトされる
インストラクションレジスタB8、前記インストラクシ
ョンレジスタA6のデコード結果に従って次の命令が並
列実行可能な場合に前記偶数側の命令メモリ2又は奇数
側の命令メモリ3から次の命令データを選択する第2の
セレクタ、そして前記第2のセレクタ4によって選択さ
れた命令データが格納されるインストラクションレジス
タC9を具備し、前記アドレス生成部7からのアドレス
を用いたインストラクションレジスタB8の命令の実行
と、前記インストラクションレジスタC9の次の命令の
実行とが同一処理周期内で並列実行されるDSPプログ
ラム並列制御装置が提供される。
本発明によるDSPプログラム並列制御装置の基本構成
に示すように、プログラムアドレスを発生するためのプ
ログラムアドレス発生部1前記プログラムアドレス発生
部1からのアドレス値の偶数/奇数にそれぞれ対応した
偶数側の命令メモリ2及び奇数側の命令メモリ3、前記
各命令メモリ2,3から出力される各命令データを命令
の実行順に従って逐次選択する第1のセレクタ5、前記
第1のセレクタ5によって選択された命令データが格納
されるインストラクションレジスタA6、前記インスト
ラクションレジスタA6のデコード結果に従ってアドレ
ス計算を行うアドレス生成部7、前記インストラクショ
ンレジスタA6に格納された命令データがシフトされる
インストラクションレジスタB8、前記インストラクシ
ョンレジスタA6のデコード結果に従って次の命令が並
列実行可能な場合に前記偶数側の命令メモリ2又は奇数
側の命令メモリ3から次の命令データを選択する第2の
セレクタ、そして前記第2のセレクタ4によって選択さ
れた命令データが格納されるインストラクションレジス
タC9を具備し、前記アドレス生成部7からのアドレス
を用いたインストラクションレジスタB8の命令の実行
と、前記インストラクションレジスタC9の次の命令の
実行とが同一処理周期内で並列実行されるDSPプログ
ラム並列制御装置が提供される。
【0010】また本発明によれば、前記プログラムアド
レス発生部は、+1アドレス更新又は+2アドレス更新
を選択的に実行し、前記次の命令が並列実行可能な場合
には、+1アドレス更新出力によりさらにその次の命令
アドレスを前記偶数側の命令メモリ2又は奇数側の命令
メモリ3に与えてその命令コード出力を前記第1の選択
回路5を介して前記インストラクションレジスタA6に
格納し、同時に自らを+2アドレス更新することによっ
て連続したプログラム処理を可能にする。
レス発生部は、+1アドレス更新又は+2アドレス更新
を選択的に実行し、前記次の命令が並列実行可能な場合
には、+1アドレス更新出力によりさらにその次の命令
アドレスを前記偶数側の命令メモリ2又は奇数側の命令
メモリ3に与えてその命令コード出力を前記第1の選択
回路5を介して前記インストラクションレジスタA6に
格納し、同時に自らを+2アドレス更新することによっ
て連続したプログラム処理を可能にする。
【0011】そして、前記インストラクションレジスタ
B8によって実行される命令は転送命令であり、前記イ
ンストラクションレジスタC9によって実行される次の
命令は演算命令である。または、前記インストラクショ
ンレジスタB8によって実行される命令は2ワード構成
からなる即値転送命令のうちの1ワード目の命令コード
であり、前記インストラクションレジスタC9には、前
記即値転送命令の2ワード目の即値データが格納され
る。
B8によって実行される命令は転送命令であり、前記イ
ンストラクションレジスタC9によって実行される次の
命令は演算命令である。または、前記インストラクショ
ンレジスタB8によって実行される命令は2ワード構成
からなる即値転送命令のうちの1ワード目の命令コード
であり、前記インストラクションレジスタC9には、前
記即値転送命令の2ワード目の即値データが格納され
る。
【0012】
【作用】本発明のプログラム制御によれば、命令メモリ
を2つ持つことにより命令コードを同時に2つ読み込む
ことができ、命令処理も2つのインストラクションレジ
スタB8,C9で転送回路と演算回路を同時に動かすこ
とで命令処理サイクルを減らすことができる。本発明で
は、命令コードは命令メモリの偶数側2と奇数側3にそ
れぞれ記録されており、通常それら命令コードはセレク
タ5によって交互に選択されて従来の技術どおりのイン
ストラクションレジスタA6、アドレス生成部7、そし
てインストラクションレジスタB8で命令処理される。
を2つ持つことにより命令コードを同時に2つ読み込む
ことができ、命令処理も2つのインストラクションレジ
スタB8,C9で転送回路と演算回路を同時に動かすこ
とで命令処理サイクルを減らすことができる。本発明で
は、命令コードは命令メモリの偶数側2と奇数側3にそ
れぞれ記録されており、通常それら命令コードはセレク
タ5によって交互に選択されて従来の技術どおりのイン
ストラクションレジスタA6、アドレス生成部7、そし
てインストラクションレジスタB8で命令処理される。
【0013】もし、初段のインストラクションレジスタ
A6に読み込まれた命令コードが転送命令であって次の
演算命令と同時に実行できる場合には、アドレス生成部
7はアドレス計算を実行し、前記インストラクションレ
ジスタA6の転送命令を次段のインストラクションレジ
スタB8にシフトする際に、それと同時に次の演算命令
をセレクタ4を介してインストラクションレジスタC9
に読み込む。このときパイプライン処理によって前記初
段のインストラクションレジスタA6には更に次の命令
が読み込まれる。従って、インストラクションレジスタ
B8では転送回路を動作させ、同時にインストラクショ
ンレジスタC9では演算回路を動作させることが可能と
なる。
A6に読み込まれた命令コードが転送命令であって次の
演算命令と同時に実行できる場合には、アドレス生成部
7はアドレス計算を実行し、前記インストラクションレ
ジスタA6の転送命令を次段のインストラクションレジ
スタB8にシフトする際に、それと同時に次の演算命令
をセレクタ4を介してインストラクションレジスタC9
に読み込む。このときパイプライン処理によって前記初
段のインストラクションレジスタA6には更に次の命令
が読み込まれる。従って、インストラクションレジスタ
B8では転送回路を動作させ、同時にインストラクショ
ンレジスタC9では演算回路を動作させることが可能と
なる。
【0014】
【実施例】図2は、本発明によるDSPプログラム並列
制御装置によるDSP処理部の一回路実施例を示した回
路ブロック図である。図2において、前述した図1と同
一のものは同一の記号で示しており、ここではそれらに
ついて更めて説明しない。図1と同様に太線のブロック
はシステムクロックが供給されていることを表してい
る。図2の上段の点線で囲まれたブロックは、図1のプ
ログラムアドレス発生部1に対応する。そこの引用符号
19は、命令メモリ2,3の命令アドレスを保持するプ
ログラムカウンタ(PC)であり、引用符号16及び1
7は、前記プログラムカウンタ19からの出力値に対し
てそれぞれ+1、そして+2を加算するための加算回路
である。前記各加算回路16,17からの出力は次段の
セレクタ18でそのいずれか一方が選択され、プログラ
ムカウンタ19の値に+1又は+2を加算する。引用符
号20も加算回路で前記プログラムカウンタ19の値に
+1加算し、出力段の各セレクタ21,22によって前
記加算回路20で加算されたアドレスと反対に加算され
ていないアドレスのいずれかを選択し、図1で述べた命
令メモリの偶数側2又は命令メモリの奇数側3のアドレ
スとして与えられる。
制御装置によるDSP処理部の一回路実施例を示した回
路ブロック図である。図2において、前述した図1と同
一のものは同一の記号で示しており、ここではそれらに
ついて更めて説明しない。図1と同様に太線のブロック
はシステムクロックが供給されていることを表してい
る。図2の上段の点線で囲まれたブロックは、図1のプ
ログラムアドレス発生部1に対応する。そこの引用符号
19は、命令メモリ2,3の命令アドレスを保持するプ
ログラムカウンタ(PC)であり、引用符号16及び1
7は、前記プログラムカウンタ19からの出力値に対し
てそれぞれ+1、そして+2を加算するための加算回路
である。前記各加算回路16,17からの出力は次段の
セレクタ18でそのいずれか一方が選択され、プログラ
ムカウンタ19の値に+1又は+2を加算する。引用符
号20も加算回路で前記プログラムカウンタ19の値に
+1加算し、出力段の各セレクタ21,22によって前
記加算回路20で加算されたアドレスと反対に加算され
ていないアドレスのいずれかを選択し、図1で述べた命
令メモリの偶数側2又は命令メモリの奇数側3のアドレ
スとして与えられる。
【0015】また、図2の中段の点線で囲まれたアドレ
ス生成部7におけるアドレス計算部23は、インストラ
クションレジスタA6のデコード結果によりデータ転送
命令等の種々のデータを格納するデータRAM25に対
し、それをアクセスするためのアドレスが必要な場合に
アドレス計算を実行する。そして、次段のアドレスレジ
スタ24にはその計算結果であるデータRAM25への
アドレスが保持される。また、データバス26を介して
も前記データRAM25に対するデータ演算等のリード
/ライトアクセスが可能である。図2の下段の点線で囲
まれたデータ演算部31は、例えば前記データバス26
上のデータを保持する演算レジスタA(REG A)2
7、演算レジスタB(REG B)28、前記各演算レ
ジスタ27,28の値を加算出力する加算回路(AD
D)29、そしてその加算結果を保持する演算レジスタ
C(REG C)30で構成されている。
ス生成部7におけるアドレス計算部23は、インストラ
クションレジスタA6のデコード結果によりデータ転送
命令等の種々のデータを格納するデータRAM25に対
し、それをアクセスするためのアドレスが必要な場合に
アドレス計算を実行する。そして、次段のアドレスレジ
スタ24にはその計算結果であるデータRAM25への
アドレスが保持される。また、データバス26を介して
も前記データRAM25に対するデータ演算等のリード
/ライトアクセスが可能である。図2の下段の点線で囲
まれたデータ演算部31は、例えば前記データバス26
上のデータを保持する演算レジスタA(REG A)2
7、演算レジスタB(REG B)28、前記各演算レ
ジスタ27,28の値を加算出力する加算回路(AD
D)29、そしてその加算結果を保持する演算レジスタ
C(REG C)30で構成されている。
【0016】図3は、図2の実施例における通常動作時
のタイミングチャートの一例を示した動作説明図であ
る。ここで通常の動作とは、連続した転送命令又は連続
した演算命令により図2の実施例が従来と同様に動作す
る場合をいう。図3では、プログラムカウンタ19がn
(偶数アドレス)の場合より連続した転送命令又は連続
した演算命令を実行する場合を説明する。プログラムカ
ウンタ19からのアドレスnがセレクタ21により選択
され、命令メモリの偶数側2からは命令コード(n)が
出力される(図3の(c))。前記命令メモリの偶数側
2から出力された命令コード(n)はセレクタ5によっ
て選択され、システムクロックのタイミングでインス
トラクションレジスタA6に保持される(図3の
(e))。
のタイミングチャートの一例を示した動作説明図であ
る。ここで通常の動作とは、連続した転送命令又は連続
した演算命令により図2の実施例が従来と同様に動作す
る場合をいう。図3では、プログラムカウンタ19がn
(偶数アドレス)の場合より連続した転送命令又は連続
した演算命令を実行する場合を説明する。プログラムカ
ウンタ19からのアドレスnがセレクタ21により選択
され、命令メモリの偶数側2からは命令コード(n)が
出力される(図3の(c))。前記命令メモリの偶数側
2から出力された命令コード(n)はセレクタ5によっ
て選択され、システムクロックのタイミングでインス
トラクションレジスタA6に保持される(図3の
(e))。
【0017】同時に、前記のクロックでプログラムカ
ウンタ19のアドレスnはセレクタ18で選択された加
算器16によって1加算され、奇数アドレスn+1を出
力し、その値はプログラムカウンタ19に保持される。
この奇数アドレスn+1は、今度はセレクタ22を介し
て命令メモリの奇数側3に入力される。前記命令メモリ
の奇数側3からの命令コード(n+1)は、セレクタ5
を介してシステムクロックのタイミングでインストラ
クションレジスタA6に保持される(図3の(e))。
この時、前記インストラクションレジスタA6の内容は
インストラクションレジスタB8にシフトされる(図3
の(f))。そして、プログラムカウンタ19の値は、
前述と同様に加算器16によって+1され、その値n+
2はセレクタ18を通してプログラムカウンタ19に保
持される。このように本例の場合には、命令コードを命
令メモリの偶数側と奇数側で交互にインストラクション
レジスタA6に読み込む以外は前述した従来技術と全く
同じ動作を行う。
ウンタ19のアドレスnはセレクタ18で選択された加
算器16によって1加算され、奇数アドレスn+1を出
力し、その値はプログラムカウンタ19に保持される。
この奇数アドレスn+1は、今度はセレクタ22を介し
て命令メモリの奇数側3に入力される。前記命令メモリ
の奇数側3からの命令コード(n+1)は、セレクタ5
を介してシステムクロックのタイミングでインストラ
クションレジスタA6に保持される(図3の(e))。
この時、前記インストラクションレジスタA6の内容は
インストラクションレジスタB8にシフトされる(図3
の(f))。そして、プログラムカウンタ19の値は、
前述と同様に加算器16によって+1され、その値n+
2はセレクタ18を通してプログラムカウンタ19に保
持される。このように本例の場合には、命令コードを命
令メモリの偶数側と奇数側で交互にインストラクション
レジスタA6に読み込む以外は前述した従来技術と全く
同じ動作を行う。
【0018】図4は、図2の実施例において転送命令の
次に演算命令が続く場合のタイミングチャートの一例を
示した動作説明図である。本例もプログラムカウンタ1
9が偶数アドレスnから転送命令を開始する場合につい
て説明している。図4において、システムクロックの
タイミングで行われる動作は上述した図3の通常動作の
場合の説明と同じであり、インストラクションレジスタ
A6に転送命令(n)が保持される(図4の(e))。
次に演算命令が続く場合のタイミングチャートの一例を
示した動作説明図である。本例もプログラムカウンタ1
9が偶数アドレスnから転送命令を開始する場合につい
て説明している。図4において、システムクロックの
タイミングで行われる動作は上述した図3の通常動作の
場合の説明と同じであり、インストラクションレジスタ
A6に転送命令(n)が保持される(図4の(e))。
【0019】ここで、前記インストラクションレジスタ
A6の転送命令(n)がデコードされるが、本発明にお
いてはプログラムのコンパイル時若しくはアセンブル時
に前記命令コードに次の命令(本例の場合はn+1の命
令)と並列処理可能かどうか否かのフラグ情報等を予め
持たせてある。従って、図3と同様にアドレス計算部2
3で転送対象となるアドレスの計算を行い(図4の
(f))、システムクロックのタイミングでその計算
結果のアドレス(n)をアドレスレジスタ24に保持
し、そしてインストラクションレジスタA6からはイン
ストラクションレジスタB8に前記転送命令コードをシ
フトさせる。
A6の転送命令(n)がデコードされるが、本発明にお
いてはプログラムのコンパイル時若しくはアセンブル時
に前記命令コードに次の命令(本例の場合はn+1の命
令)と並列処理可能かどうか否かのフラグ情報等を予め
持たせてある。従って、図3と同様にアドレス計算部2
3で転送対象となるアドレスの計算を行い(図4の
(f))、システムクロックのタイミングでその計算
結果のアドレス(n)をアドレスレジスタ24に保持
し、そしてインストラクションレジスタA6からはイン
ストラクションレジスタB8に前記転送命令コードをシ
フトさせる。
【0020】同時に、前記並列処理可能かどうか否かの
フラグ情報等に従ってセレクタ4を介して命令メモリ奇
数側3から次の並列処理可能な演算命令である(n+
1)がインストラクションレジスタC9に保持される
(図4の(h))。この時には、プログラムカウンタ1
9の値は、加算器20によって+1加算されて次の命令
である(n+2)がセレタク21、命令メモリの偶数側
2、そしてセレクタ5を通して前記シフトと同じタイミ
ングでインストラクションレジスタA6に保持される
(図4の(e))。なお、プログラムとしては上述のよ
うに加算器20により(n+2)の命令まで実行される
ので、プログラムカウンタ19は通常のの加算器16に
よる+1の加算ではなく、加算器17で+2加算されて
次のアドレスn+3を出力する(図4の(b))。
フラグ情報等に従ってセレクタ4を介して命令メモリ奇
数側3から次の並列処理可能な演算命令である(n+
1)がインストラクションレジスタC9に保持される
(図4の(h))。この時には、プログラムカウンタ1
9の値は、加算器20によって+1加算されて次の命令
である(n+2)がセレタク21、命令メモリの偶数側
2、そしてセレクタ5を通して前記シフトと同じタイミ
ングでインストラクションレジスタA6に保持される
(図4の(e))。なお、プログラムとしては上述のよ
うに加算器20により(n+2)の命令まで実行される
ので、プログラムカウンタ19は通常のの加算器16に
よる+1の加算ではなく、加算器17で+2加算されて
次のアドレスn+3を出力する(図4の(b))。
【0021】この状態で、インストラクションレジスタ
B8に保持されている転送命令(n)のデコード結果に
従って、例えば、アドレスレジスタ24に保持されてい
るアドレス(n)にあるデータRAM25のデータが、
データバス26を介してそのタイミングでデータ演算部
の一方の演算レジスタA(REG A)27へ転送され
る。それと同時にインストラクションレジスタC9に保
持されている演算命令(n+1)のデコード結果に従っ
て、例えば前記演算レジスタA27ともう一方の演算レ
ジスタB(REG B)28とのデータを加算器29で
加算し同一タイミングで演算レジスタC(REG C)
30に保持する演算命令を実行することができる。この
ように、本発明によって転送命令と演算命令とを同時に
処理し、従来と比較して1サイクル分の処理を省くこと
が出来る。
B8に保持されている転送命令(n)のデコード結果に
従って、例えば、アドレスレジスタ24に保持されてい
るアドレス(n)にあるデータRAM25のデータが、
データバス26を介してそのタイミングでデータ演算部
の一方の演算レジスタA(REG A)27へ転送され
る。それと同時にインストラクションレジスタC9に保
持されている演算命令(n+1)のデコード結果に従っ
て、例えば前記演算レジスタA27ともう一方の演算レ
ジスタB(REG B)28とのデータを加算器29で
加算し同一タイミングで演算レジスタC(REG C)
30に保持する演算命令を実行することができる。この
ように、本発明によって転送命令と演算命令とを同時に
処理し、従来と比較して1サイクル分の処理を省くこと
が出来る。
【0022】上述の実施例では転送命令の次の命令が演
算命令であって並列処理が可能な場合を示したが、以下
の実施例では2ワードから成る命令でその2ワード目が
即値の命令(連続した2つの命令コードで1つの命令と
なり、2つ目の命令コードはそのまま即値となる。以
下、2ワード命令。)の場合を示し、それが本発明によ
るプログラム制御装置を利用して1サイクルで処理する
事が可能なことを示す。これは、前述した図4の実施例
において先の転送命令を2ワード命令とみなし、後の演
算命令を2ワード目の即値に置き換えた場合に相当す
る。
算命令であって並列処理が可能な場合を示したが、以下
の実施例では2ワードから成る命令でその2ワード目が
即値の命令(連続した2つの命令コードで1つの命令と
なり、2つ目の命令コードはそのまま即値となる。以
下、2ワード命令。)の場合を示し、それが本発明によ
るプログラム制御装置を利用して1サイクルで処理する
事が可能なことを示す。これは、前述した図4の実施例
において先の転送命令を2ワード命令とみなし、後の演
算命令を2ワード目の即値に置き換えた場合に相当す
る。
【0023】図5及び図6は、上述した転送命令の次に
演算命令が続く場合の制御フローの一例(1),(2)
を示したものである。制御フローの内容自体は上述した
説明と同様であるため、ここでは大きなフローの流れだ
けを簡単に説明する。ステップS101〜S105にお
いて、プログラムカウンタ19の値の偶数/奇数に従っ
て命令メモリの偶数側2又は奇数側3をそれぞれ選択
し、その命令データをいずれもインストラクションレジ
スタA6に読み込む。ステップS106では前記インス
トラクションレジスタA6に読み込まれた命令が転送命
令か否かが判断される。転送命令でない場合にはステッ
プS108、S112及びS113において従来技術と
同じ通常の命令実行が行われる。
演算命令が続く場合の制御フローの一例(1),(2)
を示したものである。制御フローの内容自体は上述した
説明と同様であるため、ここでは大きなフローの流れだ
けを簡単に説明する。ステップS101〜S105にお
いて、プログラムカウンタ19の値の偶数/奇数に従っ
て命令メモリの偶数側2又は奇数側3をそれぞれ選択
し、その命令データをいずれもインストラクションレジ
スタA6に読み込む。ステップS106では前記インス
トラクションレジスタA6に読み込まれた命令が転送命
令か否かが判断される。転送命令でない場合にはステッ
プS108、S112及びS113において従来技術と
同じ通常の命令実行が行われる。
【0024】反対に、ステップS106で転送命令と判
断された場合には、ステップS108とS109におい
て必要ならアドレスが計算され、ステップS110にお
いて前記転送命令の次の命令が演算命令か否かが判断さ
れる。それが演算命令以外の場合には、前述したステッ
プS107以降の通常動作に戻る。演算命令の場合に
は、ステップS111で前記転送命令はインストラクシ
ョンレジスタA6にシフトされ、且つS114〜S12
0においてプログラムカウンタ19の値の偶数/奇数に
応じて次の命令メモリの奇数/偶数側から+1したアド
レスの命令コード(演算命令)を各セレクタを介してイ
ンストラクションレジスタC9に読み込み、前記転送命
令と演算命令とを同時に実行する。そのため、プログラ
ムカウンタ19は+2更新される。
断された場合には、ステップS108とS109におい
て必要ならアドレスが計算され、ステップS110にお
いて前記転送命令の次の命令が演算命令か否かが判断さ
れる。それが演算命令以外の場合には、前述したステッ
プS107以降の通常動作に戻る。演算命令の場合に
は、ステップS111で前記転送命令はインストラクシ
ョンレジスタA6にシフトされ、且つS114〜S12
0においてプログラムカウンタ19の値の偶数/奇数に
応じて次の命令メモリの奇数/偶数側から+1したアド
レスの命令コード(演算命令)を各セレクタを介してイ
ンストラクションレジスタC9に読み込み、前記転送命
令と演算命令とを同時に実行する。そのため、プログラ
ムカウンタ19は+2更新される。
【0025】図7は、本発明の他の実施例として2ワー
ドの即値命令を実行する場合のタイミングチャートの一
例を示した動作説明図である。図7において、プログラ
ムカウンタ19は偶数アドレスnから2ワード命令であ
る即値命令の1ワード目を実行する。図7の(a)の
のタイミングで行われる動作は通常動作の説明と同じで
ある。ここでインストラクションレジスタA6の命令コ
ード(n)がデコードされ、次の命令は2ワード命令の
即値であることが分かる(図7の(e))。例えば、こ
の2ワード命令(n)が即値を演算レジスタA27に転
送する命令である場合には、インストラクションレジス
タA6からインストラクションレジスタB8に命令コー
ドをシフトさせると同時に(図7の(f))、次の2ワ
ード命令の即値imm(n+1)を命令メモリの奇数側
3からセレクタ4を介してインストラクションレジスタ
C9に保持する(図7の(g))。
ドの即値命令を実行する場合のタイミングチャートの一
例を示した動作説明図である。図7において、プログラ
ムカウンタ19は偶数アドレスnから2ワード命令であ
る即値命令の1ワード目を実行する。図7の(a)の
のタイミングで行われる動作は通常動作の説明と同じで
ある。ここでインストラクションレジスタA6の命令コ
ード(n)がデコードされ、次の命令は2ワード命令の
即値であることが分かる(図7の(e))。例えば、こ
の2ワード命令(n)が即値を演算レジスタA27に転
送する命令である場合には、インストラクションレジス
タA6からインストラクションレジスタB8に命令コー
ドをシフトさせると同時に(図7の(f))、次の2ワ
ード命令の即値imm(n+1)を命令メモリの奇数側
3からセレクタ4を介してインストラクションレジスタ
C9に保持する(図7の(g))。
【0026】この時、加算回路20によってプログラム
カウンタ19に+1を加算した次の命令(n+2)がセ
レクタ21、命令メモリの偶数側2,そしてセレクタ5
を介して上記と同じのタイミングでインストラクショ
ンレジスタA6に保持される(図7の(e))。加算器
20により(n+2)の命令まで出力されているので、
プログラムカウンタ19は通常の加算器16による+1
加算ではなく、加算器17によって+2加算される(図
7の(b))。この状態で、インストラクションレジス
タB8のデコード結果でインストラクションレジスタC
9の即値がデータバス26を介してシステムクロック
のタイミングで演算レジスタA27に転送される(図7
の(h))。従って、従来2サイクルかかる2ワード命
令を1サイクルで処理する事が可能となる。
カウンタ19に+1を加算した次の命令(n+2)がセ
レクタ21、命令メモリの偶数側2,そしてセレクタ5
を介して上記と同じのタイミングでインストラクショ
ンレジスタA6に保持される(図7の(e))。加算器
20により(n+2)の命令まで出力されているので、
プログラムカウンタ19は通常の加算器16による+1
加算ではなく、加算器17によって+2加算される(図
7の(b))。この状態で、インストラクションレジス
タB8のデコード結果でインストラクションレジスタC
9の即値がデータバス26を介してシステムクロック
のタイミングで演算レジスタA27に転送される(図7
の(h))。従って、従来2サイクルかかる2ワード命
令を1サイクルで処理する事が可能となる。
【0027】図8及び図9は、上述した2ワード命令の
即値命令を実行する場合の制御フローの一例(1),
(2)を示したフロー図である。なお、本制御フローに
関しては、転送命令を2ワードの即値命令、演算命令を
即値データとして考えれば、ステップS210において
即値命令の判断を行い、そしてステップS219におい
て即値命令の実行を行う以外は前述した図5及び図6の
制御フローと全く同じためここではそれについて更めて
説明しない。
即値命令を実行する場合の制御フローの一例(1),
(2)を示したフロー図である。なお、本制御フローに
関しては、転送命令を2ワードの即値命令、演算命令を
即値データとして考えれば、ステップS210において
即値命令の判断を行い、そしてステップS219におい
て即値命令の実行を行う以外は前述した図5及び図6の
制御フローと全く同じためここではそれについて更めて
説明しない。
【0028】
【発明の効果】以上述べたように本発明によれば、転送
命令の次の命令が演算命令の場合はそれらの命令を並列
して実行する事により1サイクルで処理を行い、さらに
2ワード目に即値をもつ2ワード命令も1サイクルで処
理できる。このため、全体の命令処理サイクルを減らす
効果を奏し、DSP動作クロックの低速化により消費電
力の減少するなど、DSPを用いた処理装置の性能向上
に寄与するところが大きい。
命令の次の命令が演算命令の場合はそれらの命令を並列
して実行する事により1サイクルで処理を行い、さらに
2ワード目に即値をもつ2ワード命令も1サイクルで処
理できる。このため、全体の命令処理サイクルを減らす
効果を奏し、DSP動作クロックの低速化により消費電
力の減少するなど、DSPを用いた処理装置の性能向上
に寄与するところが大きい。
【図1】本発明によるDSPプログラム並列制御装置の
基本構成を示したブロック図である。
基本構成を示したブロック図である。
【図2】本発明によるDSPプログラム並列制御装置に
よるDSP処理部の一回路実施例を示した回路ブロック
図である。
よるDSP処理部の一回路実施例を示した回路ブロック
図である。
【図3】図2の実施例における通常動作時のタイミング
チャートの一例を示した動作説明図である。
チャートの一例を示した動作説明図である。
【図4】図2の実施例において転送命令の次に演算命令
が続く場合のタイミングチャートの一例を示した動作説
明図である。
が続く場合のタイミングチャートの一例を示した動作説
明図である。
【図5】転送命令の次に演算命令を実行する場合の制御
フローの一例(1)を示したフロー図である。
フローの一例(1)を示したフロー図である。
【図6】転送命令の次に演算命令を実行する場合の制御
フローの一例(2)を示したフロー図である。
フローの一例(2)を示したフロー図である。
【図7】図2の実施例において即値命令を実行する場合
のタイミングチャートの一例を示した動作説明図であ
る。
のタイミングチャートの一例を示した動作説明図であ
る。
【図8】2ワード命令の即値命令を実行する場合の制御
フローの一例(1)を示したフロー図である。
フローの一例(1)を示したフロー図である。
【図9】2ワード命令の即値命令を実行する場合の制御
フローの一例(2)を示したフロー図である。
フローの一例(2)を示したフロー図である。
【図10】従来のプログラム制御構成の一例を示した回
路ブロック図である。
路ブロック図である。
【図11】図10の回路動作の一例を示した動作タイミ
ング図である。
ング図である。
4,5,18,21,22…セレクタ 6,8,9…インストラクションレジスタ 19…プログラムカウンタ 27,28,30…演算レジスタ 16,17,20,29…加算器
Claims (4)
- 【請求項1】 プログラムアドレスを発生するためのプ
ログラムアドレス発生部(1)、 前記プログラムアドレス発生部(1)からのアドレス値
の偶数/奇数にそれぞれ対応した偶数側の命令メモリ
(2)及び奇数側の命令メモリ(3)、 前記各命令メモリ(2,3)から出力される各命令デー
タを命令の実行順に従って逐次選択する第1のセレクタ
(5)、 前記第1のセレクタ(5)によって選択された命令デー
タが格納されるインストラクションレジスタA(6)、 前記インストラクションレジスタA(6)のデコード結
果に従ってアドレス計算を行うアドレス生成部(7)、 前記インストラクションレジスタA(6)に格納された
命令データがシフトされるインストラクションレジスタ
B(8)、 前記インストラクションレジスタA(6)のデコード結
果に従って次の命令が並列実行可能な場合に、前記偶数
側の命令メモリ(2)又は奇数側の命令メモリ(3)か
ら次の命令データを選択する第2のセレクタ(4)、そ
して前記第2のセレクタ(4)によって選択された命令
データが格納されるインストラクションレジスタC
(9)を具備し、 前記アドレス生成部(7)からのアドレスを用いたイン
ストラクションレジスタB(8)の命令の実行と、前記
インストラクションレジスタC(9)の次の命令の実行
とが同一処理周期内で並列実行されることを特徴とする
DSPプログラム並列制御装置。 - 【請求項2】 前記プログラムアドレス発生部は、+1
アドレス更新又は+2アドレス更新を選択的に実行し、
前記次の命令が並列実行可能な場合には、+1アドレス
更新出力によりさらにその次の命令アドレスを前記偶数
側の命令メモリ(2)又は奇数側の命令メモリ(3)に
与えてその命令コード出力を前記第1の選択回路5を介
して前記インストラクションレジスタA(6)に格納
し、同時に自らを+2アドレス更新することによって連
続したプログラム処理を可能にする請求項1記載のDS
Pプログラム並列制御装置。 - 【請求項3】 前記インストラクションレジスタB
(8)によって実行される命令は転送命令であり、前記
インストラクションレジスタC(9)によって実行され
る次の命令は演算命令である請求項1記載のDSPプロ
グラム並列制御装置。 - 【請求項4】 前記インストラクションレジスタB
(8)によって実行される命令は2ワード構成からなる
即値転送命令のうちの1ワード目の命令コードであり、
前記インストラクションレジスタC(9)には、前記即
値転送命令の2ワード目の即値データが格納される請求
項1記載のDSPプログラム並列制御装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6208768A JPH0877003A (ja) | 1994-09-01 | 1994-09-01 | Dspプログラム並列制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6208768A JPH0877003A (ja) | 1994-09-01 | 1994-09-01 | Dspプログラム並列制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0877003A true JPH0877003A (ja) | 1996-03-22 |
Family
ID=16561775
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6208768A Withdrawn JPH0877003A (ja) | 1994-09-01 | 1994-09-01 | Dspプログラム並列制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0877003A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2421091A (en) * | 2004-12-07 | 2006-06-14 | Hewlett Packard Development Co | Processor for a memory tag |
-
1994
- 1994-09-01 JP JP6208768A patent/JPH0877003A/ja not_active Withdrawn
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2421091A (en) * | 2004-12-07 | 2006-06-14 | Hewlett Packard Development Co | Processor for a memory tag |
| GB2421091B (en) * | 2004-12-07 | 2008-09-03 | Hewlett Packard Development Co | Central processor for a memory tag |
| US8856497B2 (en) | 2004-12-07 | 2014-10-07 | Hewlett-Packard Development Company, L.P. | Central processor for memory tag |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH08212075A (ja) | 情報処理装置 | |
| JPH0877003A (ja) | Dspプログラム並列制御装置 | |
| JPS6368931A (ja) | データ処理回路 | |
| KR100188374B1 (ko) | 연산처리장치 | |
| US7877575B2 (en) | Microprocessor | |
| US6363469B1 (en) | Address generation apparatus | |
| US5925122A (en) | Data processing unit which pre-fetches instructions of different lengths to conduct processing | |
| US6266764B1 (en) | Program controller for switching between first program and second program | |
| JP2006072961A (ja) | 演算処理装置のメモリ回路 | |
| US7308560B2 (en) | Processing unit | |
| JP3531208B2 (ja) | ディジタル信号処理装置 | |
| JP2003099250A (ja) | レジスタ読み出し回路及びマイクロプロセッサ | |
| JP3088956B2 (ja) | 演算装置 | |
| JP3164690B2 (ja) | アドレス制御装置 | |
| JP2001092658A (ja) | データ処理回路及びデータ処理装置 | |
| JP2013161325A (ja) | Simd型マイクロプロセッサ、プロセッサシステムおよびsimd型マイクロプロセッサのデータ処理方法 | |
| JP3124361B2 (ja) | メモリデータロード装置 | |
| JP2002116951A (ja) | アドレス生成回路 | |
| JP2001100991A (ja) | ディジタル信号処理装置 | |
| JPH0481925A (ja) | デジタル信号処理回路 | |
| JPH08171492A (ja) | 情報処理装置 | |
| JPH113275A (ja) | 情報処理装置 | |
| JP2001109657A (ja) | アドレス生成回路 | |
| JPH10301777A (ja) | アドレスデータ生成回路 | |
| JPH0659933U (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: 20011106 |