JP2008065718A - デジタル信号処理装置 - Google Patents

デジタル信号処理装置 Download PDF

Info

Publication number
JP2008065718A
JP2008065718A JP2006244890A JP2006244890A JP2008065718A JP 2008065718 A JP2008065718 A JP 2008065718A JP 2006244890 A JP2006244890 A JP 2006244890A JP 2006244890 A JP2006244890 A JP 2006244890A JP 2008065718 A JP2008065718 A JP 2008065718A
Authority
JP
Japan
Prior art keywords
data
memory
instruction
read
program memory
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.)
Granted
Application number
JP2006244890A
Other languages
English (en)
Other versions
JP5003070B2 (ja
Inventor
Yasuyuki Muraki
保之 村木
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.)
Yamaha Corp
Original Assignee
Yamaha Corp
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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP2006244890A priority Critical patent/JP5003070B2/ja
Publication of JP2008065718A publication Critical patent/JP2008065718A/ja
Application granted granted Critical
Publication of JP5003070B2 publication Critical patent/JP5003070B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 プログラム等を記憶するRAMとして小規模なシングルポート構成のRAMが用いられており、かつ、RAM内のデータを利用した信号処理の実行と並行してRAM内のデータの書き換えが可能なDSPを提供する。
【解決手段】 プログラムメモリ2は、各エリアの2個の命令を各々記憶する。読み出し制御部6およびセレクタ9は、プログラムメモリ2から2個の命令を読み出す制御を繰り返す。プログラムメモリ2からの2個の命令は、レジスタ4、セレクタ5からなる部分を介して信号処理部3に順次供給される。書き込み制御部8およびセレクタ9は、命令読み出しが行われない期間を利用して、プログラムメモリ2へデータを書き込む制御を行う。
【選択図】図1

Description

この発明は、オーディオ機器等に好適なデジタル信号処理装置に関する。
周知の通り、DSP(Digital Signal Processor;デジタル信号処理装置)は、所定時間長のサンプリング周期毎に、入力オーディオサンプル列に対して所定の係数列を畳み込むための積和演算等、各種の演算処理を繰り返し実行する機能を有しており、様々な音場効果を入力オーディオサンプル列に付与するエフェクタ等に利用されている。なお、この種のDSPは、例えば特許文献1、2等に開示されている。最近、DSPは、携帯電話機等の小型の機器にも搭載されるようになってきている。このため、小規模であり、かつ、多彩な信号処理を実行することが可能なDSPが求められている。そして、このような要求を満たすため、信号処理の制御のためのプログラムをRAMに記憶し、このRAMに記憶されたプログラムを実行しつつ、それと並行してRAM内のプログラムを外部から書き換えることが可能な構成のDSP、あるいは信号処理に用いる係数列をRAMに記憶し、このRAMに記憶された係数列を用いて信号処理を実行しつつ、それと並行してRAM内の係数列を外部から書き換えることが可能な構成のDSPが提供されるに至った。この種のDSPによれば、RAM内のプログラムあるいは係数列を外部から書き換えることができるので、RAMの記憶容量が少ない場合でも、多彩な信号処理を実行させることができる。
特開平8−263297号公報 特開2002−73341号公報
ところで、上述した従来のDSPでは、信号処理の実行のためにRAMからプログラムや係数列を読み出すことと並行してRAMに記憶されたプログラムや係数列を書き換えることを可能にするため、プログラムや係数列を記憶するためのRAMとしてデュアルポート構成のRAMを用いていた。このため、DSPのチップ上においてRAMの必要とする面積が広くなり、DSPをさらに小規模化、低コスト化する上での障害となっていた。
この発明は、以上説明した事情に鑑みてなされたものであり、プログラムや係数列を記憶するRAMとして小規模なシングルポート構成のRAMを用いることができ、かつ、RAM内のデータ(プログラムや係数列)を利用した信号処理の実行と並行してRAM内のデータの書き換えが可能なDSPを提供することを目的としている。
この発明は、複数のデータを各々記憶する複数のエリアを有するメモリと、前記メモリから複数のデータを読み出す制御を繰り返し行う読み出し制御手段と、前記メモリから読み出されたデータを使用した処理を行う処理手段と、前記メモリからの複数のデータの読み出しが行われてから次に前記メモリからの複数のデータの読み出しが行われるまでの間に前記メモリから読み出された複数のデータの少なくとも一部を前記処理手段に順次供給するデータ供給制御手段と、前記メモリからデータの読み出しが行われない期間を利用して、前記メモリへデータを書き込む制御を行う書き込み制御手段とを具備することを特徴とするデジタル信号処理装置を提供する。
かかる発明によれば、読み出し制御手段により、メモリから複数のデータを読み出す制御が繰り返され、データ供給制御手段により、メモリからの複数のデータの読み出しが行われてから次にメモリからの複数のデータの読み出しが行われるまでの間にメモリから読み出された複数のデータの少なくとも一部が処理手段に順次供給される。そして、書き込み制御手段により、メモリからデータの読み出しが行われない期間を利用して、メモリへデータを書き込む制御が行われる。従って、メモリとして小規模なシングルポートRAMを使用した場合においても、メモリ内のデータ(プログラムや係数列)を利用した信号処理の実行と並行してメモリ内のデータの書き換えを行うことができる。
以下、図面を参照し、この発明の実施の形態を説明する。
<第1実施形態>
図1はこの発明の第1実施形態であるDSPの構成を示すブロック図である。
図1において、クロック発生部1は、所定周波数のクロックφを発生する回路である。このクロックφは、DSPの各部のタイミング制御に用いられる。プログラムメモリ2は、DSPが実行するプログラムの構成要素である一連の命令を記憶するメモリであり、1つのデータ入力ポートと、1つのデータ出力ポートと、1つのアドレスポートを有するシングルポートRAMにより構成されている。
プログラムメモリ2は、各々2Nビット(Nは所定の複数)の記憶容量を有する複数のエリア(この例では128個のエリア)を有している。これらの各エリアは、各々固有のメモリアドレス(この例ではメモリアドレス「0」〜「127」)を有している。
プログラムメモリ2の各エリアには、Nビットの命令が2個ずつ記憶される。これらの各命令は各々固有の命令アドレスを有している。図示のように、メモリアドレスがk(k=0、1、2、…)であるエリアには、上位Nビットのデータとして、命令アドレス2kの命令#2k(k=0、1、2、…)が記憶され、下位Nビットのデータとして、命令アドレス2k+1の命令#2k+1(k=0、1、2、…)が記憶される。
プログラムメモリ2からのデータ読み出しは、エリア単位(2Nビット単位)で実行可能である。すなわち、読み出し対象であるエリアのメモリアドレスを指定するメモリアドレスデータADRc(この例では7ビットのメモリアドレスデータ)がアドレスポートに与えられ、かつ、アクティブレベルの読み出し指令REが与えられたとき、プログラムメモリ2は、メモリアドレスデータADRcにより指定されたメモリアドレスのエリア内の2Nビットのデータをデータ出力ポートから出力する。読み出し指令REは、クロックφに同期してアクティブレベルとされるが、ジャンプ命令の実行時等の例外的な場合を除き、クロックφが2回発生する毎に1回の割合でアクティブレベルとされる。
一方、プログラムメモリ2へのデータ書き込みは、命令単位(Nビット単位)で実行可能である。さらに詳述すると、プログラムメモリ2へのデータ書き込み時、メモリアドレスデータADRcがプログラムメモリ2のアドレスポートに与えられ、Nビットの書き込みデータWDがプログラムメモリ2のデータ入力ポートに与えられ、さらにプログラムメモリ2には、アクティブレベルの書き込み指令WEと、領域指定信号U/Lが与えられる。領域指定信号U/LがLレベルである場合、書き込みデータWDは、メモリアドレスデータADRcにより指定されたメモリアドレスのエリアの上位Nビットの領域に書き込まれ、領域指定信号U/LがHレベルである場合、書き込みデータWDは、アドレスデータADRcにより指定されたメモリアドレスのエリアの下位Nビットの領域に書き込まれる。書き込み指令WEは、プログラムメモリ2に書き込むべきデータWDがあり、かつ、プログラムメモリ2からのデータ読み出しが行われないとき、クロックφに同期してアクティブレベルとされる。
信号処理部3は、順次与えられる命令に従って、外部から与えられる入力信号に対して効果付与等の信号処理を施し、この信号処理により得られた信号を外部に出力する回路である。周知のDSPと同様、この信号処理部3は、効果付与等のためのフィルタ係数列を記憶した係数メモリ、入力信号に対するフィルタ係数列の畳み込み演算を行うための演算部、演算の途中結果を保持するためのRAM等を有している。この信号処理部3と、後述する読み出し制御部6内のアドレス設定部62は、メモリ(本実施形態ではプログラムメモリ2)から読み出されたデータ(本実施形態の場合は命令)を使用した処理を行う処理手段、より具体的にはメモリから読み出された命令を実行する命令実行手段を構成している。
プログラムメモリ2のデータ出力ポートとこの信号処理部3との間には、図示のようにレジスタ4とデータ選択手段であるセレクタ5とが介在している。プログラムメモリ2のデータ出力ポートから読み出される命令は、このレジスタ4とセレクタ5とからなる部分を介することにより、実行対象命令OPeとして信号処理部3に供給される。
さらに詳述すると、プログラムメモリ2のデータ出力ポートから出力される2Nビットのデータのうち上位Nビットを占める命令OP0はセレクタ5に供給され、下位Nビットを占める命令OP1は、セレクタ5に供給されるとともに、レジスタ4に供給される。このレジスタ4には、クロックφが与えられる。レジスタ4は、このクロックφの立ち上がり時点における命令OP1を保持し、この保持した命令OP1を命令OP1dとしてセレクタ5に出力する。
セレクタ5には、選択制御部10から2ビットからなる選択信号SEL2が与えられる。セレクタ5は、選択信号SEL2が「0」(=00B)であるときにはプログラムメモリ2のデータ出力ポートから出力される命令OP0を、選択信号SEL2が「1」(=01B)であるときにはレジスタ4から出力される命令OP1dを、選択信号SEL2が「2」(=10B)であるときにはプログラムメモリ2のデータ出力ポートから出力される命令OP1を選択し、選択した命令を実行対象命令OPeとして出力する。
以上説明したレジスタ4およびセレクタ5と、選択制御部10は、メモリ(本実施形態の場合はプログラムメモリ2)からの複数のデータ(本実施形態の場合は命令)の読み出しが行われてから次にメモリからの複数のデータの読み出しが行われるまでの間にメモリから読み出された複数のデータの少なくとも一部を処理手段(本実施形態の場合は信号処理部3およびアドレス設定部62)に順次供給するデータ供給制御手段を構成している。
読み出し制御部6は、アドレスカウンタ61と、アドレス設定部62と、読み出し指令発生部63とを有している。アドレスカウンタ61は、カウント値のプリセットが可能な8ビットのアップカウンタであり、クロックφをカウントし、そのカウント値を読み出し命令アドレスADRaとして出力する。この読み出し命令アドレスADRaは、プログラムメモリ2から読み出すべき命令を特定する命令アドレスである。アドレス設定部62は、命令実行手段の一部をなす回路であり、セレクタ5からジャンプ命令が出力されたとき、その次のクロックφの立ち上がりに同期して、このジャンプ命令に含まれるジャンプ先の命令アドレスをアドレスカウンタ61にプリセットする回路である。
読み出し指令発生部63は、上述した読み出し指令REを発生するとともに、読み出し指令REの発生しない期間を書き込み制御部8に知らせる書き込み許可信号ENを発生する回路である。この読み出し指令発生部63は、次のようにして読み出し指令REと書き込み許可信号ENを発生する。
a.クロックφがHレベルになったとき、読み出し命令アドレスADRaが奇数となり、かつ、そのときセレクタ5から出力されている命令がジャンプ命令でない場合
この場合、読み出し指令発生部63は、次のクロックφが立ち上がって読み出し命令アドレスADRaが偶数になったとき、所定期間に亙って読み出し指令REをアクティブレベル(Hレベル)とし、また、クロックφの1周期相当の期間、書き込み許可信号ENを非アクティブレベル(Lレベル)とする。
b.クロックφがHレベルになったとき、読み出し命令アドレスADRaが偶数となり、かつ、セレクタ5から出力されている命令がジャンプ命令でない場合
この場合、読み出し指令発生部63は、次のクロックφが立ち上がって読み出し命令アドレスADRaが奇数になったとき、クロックφの1周期相当の期間、書き込み許可信号ENをアクティブレベル(Hレベル)とする。
c.クロックφがHレベルになったとき、セレクタ5から出力されている命令がジャンプ命令である場合
この場合、読み出し指令発生部63は、次にクロックφが立ち上がったとき、読み出し命令アドレスADRaが奇数になったか偶数になったかに拘わらず、所定期間に亙って、読み出し指令REをアクティブレベル(Hレベル)とし、また、クロックφの1周期相当の期間、書き込み許可信号ENを非アクティブレベル(Lレベル)とする。
書き込みデータ受信部7は、プログラムメモリ2に書き込むべきデータ(すなわち、プログラムを構成する命令群)を、このDSPを制御する外部CPU(図示略)から受信する装置である。この書き込みデータ受信部7は、受信データを一時格納するFIFO(First−In First−Out)を内蔵している。書き込みデータ受信部7は、このFIFOに残存する受信データ量が減ってくると、データ要求を外部CPUに送り、外部CPUからデータを受信してFIFOに格納する。
書き込み制御部8は、外部CPUからプログラム書き換え要求を受け取ったとき、プログラムメモリ2に書き込むべきデータを書き込みデータ受信部7により受信し、プログラムメモリ2に書き込むための制御を行う回路である。ここで、プログラム書き換え要求は、プログラムメモリ2に書き込むべき命令群の中の先頭の命令の命令アドレスADRsと、この命令群を構成する命令の個数Ncomを含んでいる。書き込み制御部8は、プログラム書き換え要求を受け取ると、命令アドレスADRsと命令の個数Ncomを内蔵のレジスタに格納して、書き込みデータ受信部7に外部CPUからのデータの受信およびFIFOへの格納を開始させる。以後、書き込み制御部8は、書き込み許可信号ENがアクティブレベル(Hレベル)となる毎に、書き込みデータ受信部7によって外部CPUから受信されたデータをプログラムメモリ2に書き込むための制御を行う。
さらに詳述すると、書き込み制御部8は、書き込み許可信号ENがアクティブレベル(Hレベル)となる毎に、ADRsから始まるNcom個の書き込み命令アドレスADRbを1個ずつ順次発生するとともに、書き込みデータ受信部7のFIFOにリードクロックRDCKを送って同FIFO内の受信データを古いものから順に読み出し、書き込みデータWDとしてプログラムメモリ2のデータ入力ポートに供給する。ここで、書き込み命令アドレスADRbは、8ビットのアドレスであり、そのLSBは上述した領域指定信号U/Lとしてプログラムメモリ2に供給される。また、書き込み制御部8は、書き込み命令アドレスADRbを発生し、かつ、書き込みデータWDをプログラムメモリ2のデータ入力ポートに供給するとき、クロックφに同期させて、書き込み指令WEを所定期間に亙ってアクティブレベル(Hレベル)とする。また、書き込み制御部8は、書き込み命令アドレスADRbを発生し、かつ、書き込みデータWDをプログラムメモリ2のデータ入力ポートに供給するときに限って、セレクタ9に与える選択信号SEL1をHレベルとし、それ以外の期間は選択信号SEL1をLレベルとする。
セレクタ9は、選択信号SEL1がLレベルであるときには、アドレスカウンタ61から出力される読み出し命令アドレスADRaを選択し、選択信号SEL1がHレベルであるときには、書き込み制御部8から出力される書き込み命令アドレスADRbを選択し、選択した8ビットの読み出し命令アドレスADRaまたは書き込み命令アドレスADRbの上位7ビットをメモリアドレスデータADRcとしてプログラムメモリ2に供給する回路である。
このセレクタ9と、上述した読み出し制御部6は、メモリ(本実施形態の場合はプログラムメモリ2)から複数のデータ(本実施形態の場合は命令)を読み出す制御を繰り返し行う読み出し制御手段を構成している。また、このセレクタ9と、上述した書き込み制御部8は、メモリ(本実施形態の場合はプログラムメモリ2)からデータ(本実施形態の場合は命令)の読み出しが行われない期間を利用して、同メモリへデータを書き込む制御を行う書き込み制御手段を構成している。
選択制御部10は、読み出し命令アドレスADRaを監視し、監視結果に基づいてセレクタ5の切り換え制御を行う回路である。ジャンプ命令が実行される場合を除き、アドレスカウンタ61が出力する読み出し命令アドレスADRaは、クロックφに同期して「1」ずつ増加する。この場合、選択制御部10は、増加後の読み出し命令アドレスADRaが偶数であれば、選択信号SEL2を「0」として、プログラムメモリ2のデータ出力ポートから出力される命令OP0をセレクタ5に選択させ、増加後の読み出し命令アドレスADRaが奇数であれば、選択信号SEL2を「1」として、レジスタ4から出力される命令OP1dをセレクタ5に選択させる。また、ジャンプ命令が実行され、アドレス設定部62によりジャンプ先の命令アドレスがアドレスカウンタ61にプリセットされると、アドレスカウンタ61が出力する読み出し命令アドレスADRaは「1」より大きな変化量だけ変化する。この場合、選択制御部10は、変化後の読み出し命令アドレスADRaが偶数であれば、選択信号SEL2を「0」として、プログラムメモリ2のデータ出力ポートから出力される命令OP0をセレクタ5に選択させ、変化後の読み出し命令アドレスADRaが奇数であれば、選択信号SEL2を「2」として、プログラムメモリ2のデータ出力ポートから出力される命令OP1をセレクタ5に選択させる。
以上が本実施形態によるDSPの構成の詳細である。
図2〜図5は本実施形態の動作例を示すタイムチャートである。各動作例では、プログラムメモリ2から命令が順次読み出されて実行されるのと並行し、命令アドレス「128」から始まる一連の命令の書き換えが行われている。また、各動作例では、ジャンプ命令が実行されている。
本実施形態では、例えば図2に示すように、読み出し指令発生部63により、アドレスカウンタ61から出力される読み出し命令アドレスADRaが偶数(図2の例では、ADRa=「98」、「100」、「12」、「14」、「16」)になるときに、読み出し指令REがアクティブレベル(Hレベル)とされる。
ここで、読み出し指令REがアクティブレベル(Hレベル)となるときには書き込み許可信号ENが非アクティブレベルとされるので、選択信号SEL1は書き込み制御部8によりLレベルとされ、セレクタ9は読み出し命令アドレスADRaの上位7ビットを選択し、メモリアドレスデータADRcとして出力する。このため、読み出し命令アドレスADRaが偶数であるとき、この読み出し命令アドレスADRaの1/2であるメモリアドレスデータADRc(図2の例では、ADRc=「49」、「50」、「6」、「7」、「8」)がセレクタ9からプログラムメモリ2に供給され、このメモリアドレスデータADRcにより指定されたエリア内の2個の命令(図2の例では、命令#98および#99の組、命令#100および#101の組、命令#12および#13の組、命令#14および#15の組、命令#16および#17の組)が命令OP0およびOP1としてプログラムメモリ2から順次読み出される。
プログラムメモリ2から読み出された2個の命令OP0およびOP1のうち、命令OP0は、プログラムメモリ2からの読み出し後、直ちにセレクタ5により選択され、実行対象命令OPeとして処理手段(より具体的には命令実行手段)たる信号処理部3およびアドレス設定部62に供給される(図2の例では、OPe=#98、#100、#12、#14、#16)。一方、命令OP1は、プログラムメモリ2からの読み出し後、レジスタ4によって命令OP1dとして保持され、命令OP0よりもクロックφの1周期相当の時間だけ遅れてセレクタ5により選択され、実行対象命令OPeとして処理手段(より具体的には命令実行手段)たる信号処理部3およびアドレス設定部62に供給される(図2の例では、OPe=#99、#101、#13、#15、#17)。
ジャンプ命令が実行され、かつ、そのジャンプ先の命令の命令アドレスADRaが奇数であるような例外的な場合を除き、読み出し命令アドレスADRaが奇数(図2の例では、ADRa=「99」、「101」、「13」、「15」、「17」)となるときには、レジスタ4に保持された命令OP1d(図2の例ではOP1d=#99、#101、#13、#15、#17)がセレクタ5により実行対象命令OPeとして選択され、信号処理部3およびアドレス設定部62に供給される。この間、実行読み出し指令発生部63によって読み出し指令REは非アクティブレベル(Lレベル)とされ、命令の読み出しは行われない。その一方、この命令の読み出しが行われない期間は、読み出し指令発生部63により書き込み許可信号ENがアクティブレベル(Hレベル)とされる。そして、プログラムメモリ2に書き込むべき命令が書き込みデータ受信部7のFIFO内にある場合、書き込み制御部8は、書き込み許可信号ENがアクティブレベルである期間を利用し、書き込みデータ受信部7のFIFOから命令を読み出してプログラムメモリ2に書き込むための制御を行う。
図2に示す動作例では、書き込み許可信号ENがアクティブレベル(Hレベル)である期間を利用して、一連の命令#128、#129、#130、#131が書き込みデータ受信部7のFIFOから読み出され、書き込みデータWDとしてプログラムメモリ2に供給される。また、書き込み制御部8により、それらの命令の命令アドレスADRb=「128」、「129」、「130」、「131」が発生され、その際に選択信号SEL1がHレベルとされることにより、命令アドレスADRbの上位7ビットであるメモリアドレスデータADRc=「64」、「64」、「65」、「65」がセレクタ9からプログラムメモリ2に与えられる。また、命令アドレスADRbのLSBが領域指定信号U/Lとしてプログラムメモリ2に与えられる。そして、書き込みデータWD=#128、#129、#130、#131がプログラムメモリ2に与えられる各期間に、書き込み指令WEが一定時間に亙ってアクティブレベル(Hレベル)とされ、メモリアドレスデータADRc=「64」、「64」、「65」、「65」および領域指定信号U/L=“1”、“0”、“1”、“0”により各々指定されるプログラムメモリ2内の各領域に書き込みデータWD=#128、#129、#130、#131が書き込まれる。
仮にプログラムメモリ2から読み出される命令の中にジャンプ命令がない場合には、読み出し命令アドレスADRaが偶数と奇数を交互に繰り返し、命令アドレスADRaが偶数であるときに読み出し指令REがアクティブレベルとされる、という規則性が維持される。そして、図2に示す動作例のように、ジャンプ命令の命令アドレスADRaが奇数であり、ジャンプ先の命令の命令アドレスADRaが偶数である場合には、ジャンプ命令が実行されたとしても、ジャンプ命令が実行されない場合と同様な規則性が維持される。このため、クロックφに同期して、プログラムメモリ2からのデータ読み出しとプログラムメモリ2へのデータ書き込みとを交互に行うことができる。しかし、ジャンプ命令の命令アドレスとジャンプ先の命令の命令アドレスの組み合わせ如何によっては、ジャンプ命令の実行の影響により、上記の規則性が失われ、プログラムメモリ2へのデータの書き込みのタイミングは、図2の動作例とは異なったものとなる。
図3に示す動作例では、命令アドレスADRaが偶数「102」である命令から命令アドレスADRaが偶数「12」である命令へのジャンプが行われている。この場合、命令アドレスADRa=「102」のジャンプ命令のプログラムメモリ2からの読み出しと、ジャンプ先である命令アドレスADRa=「12」の命令のプログラムメモリ2からの読み出しが続けて行われるため、クロックφの2周期に亙って、書き込み許可信号ENが非アクティブレベル(Lレベル)とされ、データ書き込みが行われない。
図4に示す動作例では、命令アドレスADRaが奇数「101」である命令から命令アドレスADRaが奇数「13」である命令へのジャンプが行われている。この場合、奇数命令アドレス「101」のジャンプ命令として、レジスタ4に保持された命令OP1d=#101がセレクタ5により実行対象命令OPeとして選択されて実行される。従って、この命令OP1d=#101が実行される期間は、書き込み許可信号ENがアクティブレベル(Hレベル)とされ、書き込みデータWD(=#128)がプログラムメモリ2に書き込まれる。しかし、その後の奇数命令アドレス「13」の命令#14は、ジャンプ先の命令であり、未だレジスタ4に保持されていないので、プログラムメモリ2から読み出す必要がある。さらにその次の命令は偶数命令アドレス「14」の命令#14なので、これもプログラムメモリ2から読み出す必要がある。このため、命令#13のプログラムメモリ2からの読み出しと、命令#14のプログラムメモリ2からの読み出しが連続して行われ、クロックφの2周期に亙って、書き込み許可信号ENが非アクティブレベル(Lレベル)とされ、データ書き込みが行われない。
図5に示す動作例では、命令アドレスADRaが偶数「102」である命令から命令アドレスADRaが奇数「13」である命令へのジャンプが行われている。この場合、偶数命令アドレス「102」のジャンプ命令のプログラムメモリ2からの読み出しと、ジャンプ先である奇数命令アドレス「13」の命令のプログラムメモリ2からの読み出しと、その次の偶数命令アドレス「14」の命令のプログラムメモリ2からの読み出しが続けて行われるため、クロックφの3周期に亙って、書き込み許可信号ENが非アクティブレベル(Lレベル)とされ、データ書き込みが行われない。
以上のように、ジャンプ命令が実行される場合には、クロックφの2周期または3周期に亙ってプログラムメモリ2へのデータ書き込みを行うことができない期間が生じることもある。しかし、ジャンプ命令が何回も連続して実行されることは一般的にありえないので、プログラムメモリ2内の命令の読み出しおよび実行と並行して、プログラムメモリ2内のプログラムの書き換えを支障なく行うことができる。
ジャンプ先の命令の実行時におけるセレクタ5の動作は、ジャンプ先の命令の命令アドレスが偶数であるか奇数であるかにより異なったものとなる。図2および図3に示す動作例では、ジャンプ先の命令の命令アドレスが偶数「12」であるため、この命令を含む2個の命令の読み出し時に、選択信号SEL2が「0」とされ、プログラムメモリ2から読み出される命令OP0(=#12)が実行対象命令OPeとして選択される。また、図4および図5に示す動作例では、ジャンプ先の命令の命令アドレスが奇数「13」であるため、この命令を含む2個の命令の読み出し時に、選択信号SEL2が「2」とされ、プログラムメモリ2から読み出される命令OP1(=#13)が実行対象命令OPeとして選択される。
以上のように、本実施形態によれば、プログラムメモリ2の各エリアに命令を2個ずつ格納し、プログラムメモリ2から1度に2個の命令を読み出し、読み出した2個の命令を順次実行するようにしたので、プログラムメモリ2がシングルポートRAMにより構成されている場合であっても、プログラムメモリ2からの命令読み出しの行われない期間を利用して、プログラムメモリ2内の命令の書き換えを行うことができる。
<第2実施形態>
図6は、この発明の第2実施形態であるDSPの構成を示すブロック図である。なお、この図において、上記第1実施形態(図1)の各部と対応する部分には同一の符号を付し、その説明を省略する。
上記第1実施形態では、プログラムメモリ2として、同一メモリアドレスのエリア内の2Nビットのデータを上位Nビットと下位Nビットに分け、Nビット単位で書き換えることができる構成のシングルポートRAMを用いた。
これに対し、本実施形態において、プログラムメモリ2Aは、メモリアドレスデータADRcにより指定されるエリア単位(2Nビット単位)でのみデータ書き換えが可能な構成となっている。そして、このような構成のプログラメモリ2Aを採用したことに伴い、上記第1実施形態における書き込み制御部8とは制御内容が一部異なった書き込み制御部8Aが設けられ、さらにORゲート21が追加されている。
本実施形態と上記第1実施形態との相違は、プログラムメモリ2Aに対するデータ書き込みの際の制御内容にある。本実施形態において、図7に示すように、奇数命令アドレスを持つ命令から偶数命令アドレスを持つ命令までの一連の命令の書き換えを行う場合、書き込み制御部8Aは、次のようにしてプログラムメモリ2A内の命令の書き換えを行う。
まず、書き込み制御部8Aは、エリア内の上位Nビットと下位Nビットの両方が書き換え対象である各エリアについては、以下に述べる書き換え方法(1)によりプログラムメモリ2A内の命令の書き換えを行う。すなわち、書き換え制御部8Aは、書き込み許可信号ENがアクティブレベルとなる期間を利用し、偶数命令アドレスの命令とこれに続く奇数命令アドレスの命令からなる2Nビットの書き込みデータWDをプログラムメモリ2Aに供給し、偶数命令アドレスである命令アドレスADRbをセレクタ9に供給し、選択信号SEL1をHレベルとし、さらに書き込み指令WEを一定時間に亙ってアクティブレベルとする。これにより、プログラムメモリ2A内においてメモリアドレスデータADRc=ADRb/2に対応したエリアに2個の命令からなる2Nビットのデータが格納される。
そして、エリア内の下位Nビットのみが書き換え対象であるエリアおよびエリア内の上位Nビットのみが書き換え対象であるエリアについては、書き換え制御部8Aは、以下に述べる書き換え方法(2)によりプログラムメモリ2A内の命令の書き換えを行う。
図8は書き換え方法(2)の手順を示す図である。この書き換え方法(2)では、書き込み許可信号ENがアクティブレベルとなる期間を2期間利用してプログラムメモリ2A内の1つの命令の書き換えを行う。例えば命令アドレスが「100」である命令#100または命令アドレスが「101」である命令#101の書き換えを行う場合、書き込み制御部8Aは、命令アドレスADRb=「100」を出力し、これをセレクタ9に選択させ、セレクタ9からプログラムメモリ2AにメモリアドレスデータADRc=「50」を供給させる。そして、書き込み制御部8Aは、読み出し指令RE2をアクティブレベルとする。この読み出し指令RE2は、ORゲート21を介してプログラムメモリ2Aに供給される。このORゲート21は、上記第1実施形態と同様に読み出し制御部6が発生する読み出し指令REに加えて、このようにして書き込み制御部8Aが発生する読み出し指令RE2をプログラムメモリ2Aに供給するために設けられたゲートである。
アクティブレベルの読み出し指令RE2の供給により、プログラムメモリ2Aにおけるメモリアドレス「50」のエリアから命令#100および101からなる2Nビットのデータが読み出されると、書き込み制御部8Aは、この2Nビットのデータを内蔵のレジスタに取り込む。そして、書き換え対象が命令#100である場合には、このレジスタ内の2Nビットの上位Nビットを新たな命令#100に書き換え、書き換え対象が命令#101である場合には、このレジスタ内の2Nビットの下位Nビットを新たな命令#101に書き換える。
そして、書き込み制御部8Aは、次に書き込み許可信号ENがアクティブレベルとなる期間を利用し、書き換えを終えたレジスタ内の2Nビットのデータをプログラムメモリ2A内のメモリアドレス「50」に対応したエリアに書き込むための制御を行うのである。すなわち、書き込み制御部8Aは、書き換えを終えたレジスタ内の2Nビットのデータを書き込みデータWDとしてプログラムメモリ2Aに与え、命令アドレスADRb=「100」を出力してこれをセレクタ9に選択させ、書き込み指令WEを一定期間に亙ってアクティブレベルとするのである。このようにしてプログラムメモリ2A内の命令#100または#101の一方が新たな内容に書き換えられる。
本実施形態の場合、奇数命令アドレスの命令のみ、あるいは偶数命令アドレスの命令のみを書き換える場合には、命令の書き換えを行うのに、書き込み許可信号ENがアクティブレベルとなる期間を2期間必要とするので、第1実施形態と比べて効率が良くない。しかし、多数のエリアについて各エリア内の2Nビットのデータの書き換えを行うような場合には、書き込み許可信号ENがアクティブレベルとなる期間に、1つのエリアの2Nビットのデータの書き換えを済ませることができるので、書き換えを効率的に行うことができる。
<他の実施形態>
以上、この発明の第1実施形態および第2実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
(1)上記第1および第2実施形態では、プログラムメモリ2または2Aの各エリアに命令を2個ずつ記憶させたが、各エリアに3個以上の命令を記憶させ、エリア単位でそれらの命令の読み出しを行うようにしてもよい。この場合も、上記各実施形態と同様、プログラムメモリ2または2Aからの複数の命令の読み出しが行われてから次にプログラムメモリ2または2Aから複数のデータの読み出しが行われるまでの間に、プログラムメモリ2または2Aから読み出された複数の命令が順次実行されるように制御し、プログラムメモリ2または2Aから複数の命令の読み出しが行われない期間を利用して、プログラムメモリ2または2Aに対する命令の書き込みを行うようにすればよい。
(2)上記第1および第2実施形態では、この発明をプログラムメモリ2または2Aとその読み出し制御および書き込み制御を行う回路に適用した。しかし、この発明は、DSP内のプログラムメモリ以外のRAMとその読み出し制御および書き込み制御を行う回路にも適用可能である。例えば上記第1および第2実施形態において、信号処理部3は、フィルタ処理等の信号処理ための係数を記憶する係数メモリと、この係数メモリから読み出された係数を使用した演算を行うことにより信号処理を行う演算手段とを有している。ここで、DSPを小規模な構成とし、かつ、多彩なフィルタ処理等を実現するためには、信号処理のために係数メモリから係数の読み出しが行われるのと並行し、係数メモリ内の係数の書き換えを行う機能がDSPに求められる。そこで、上記第1および第2実施形態と同様、係数メモリの各エリアに複数の係数を記憶させ、エリア単位で係数メモリから複数の係数を読み出すようにする。そして、係数メモリからの複数の係数の読み出しが行われてから次に係数メモリから複数の係数の読み出しが行われるまでの間に、係数メモリから読み出された複数の係数が信号処理のための演算に順次使用されるように制御し、係数メモリから複数の係数の読み出しが行われない期間を利用して、係数メモリに対する係数の書き込みを行うようにするのである。このようにすることにより、係数メモリとしてシングルポートのRAMを使用する場合でも、係数メモリからの係数の読み出しと並行して係数メモリへの係数の書き込みを行うことが可能になり、DSPを小規模な構成とし、かつ、多彩なフィルタ処理等を実現することが可能になる。
この発明の第1実施形態であるDSPの構成を示すブロック図である。 同実施形態の第1の動作例を示すタイムチャートである。 同実施形態の第2の動作例を示すタイムチャートである。 同実施形態の第3の動作例を示すタイムチャートである。 同実施形態の第4の動作例を示すタイムチャートである。 この発明の第2実施形態であるDSPの構成を示すブロック図である。 同実施形態におけるプログラムメモリ2における命令の書き換えの態様を例示する図である。 同実施形態において行われるプログラムメモリ2内の命令の書き換え方法(2)の手順を説明する図である。
符号の説明
1……クロック発生部、2,2A……プログラムメモリ、3……信号処理部、4……レジスタ、5,9……セレクタ、6……読み出し制御部、61……アドレスカウンタ、62……アドレス設定部、63……読み出し指令発生部、7……書き込みデータ受信部、8,8A……書き込み制御部、10……選択制御部、21……ORゲート。

Claims (6)

  1. 複数のデータを各々記憶する複数のエリアを有するメモリと、
    前記メモリから複数のデータを読み出す制御を繰り返し行う読み出し制御手段と、
    前記メモリから読み出されたデータを使用した処理を行う処理手段と、
    前記メモリからの複数のデータの読み出しが行われてから次に前記メモリからの複数のデータの読み出しが行われるまでの間に前記メモリから読み出された複数のデータの少なくとも一部を前記処理手段に順次供給するデータ供給制御手段と、
    前記メモリからデータの読み出しが行われない期間を利用して、前記メモリへデータを書き込む制御を行う書き込み制御手段と
    を具備することを特徴とするデジタル信号処理装置。
  2. 前記メモリは、前記複数のエリアの各々に2個ずつデータを記憶するメモリであり、
    前記データ供給制御手段は、前記メモリから読み出された2個のデータのうち一方のデータを記憶するレジスタと、前記メモリから読み出された2個のデータおよび前記レジスタに記憶されたデータの中から次に前記処理手段の使用対象となる1個のデータを選択して前記処理手段に供給するデータ選択手段とを具備することを特徴とする請求項1に記載のデジタル信号処理装置。
  3. 前記メモリは、エリア単位でデータの書き込みが可能な構成のメモリであり、
    前記書き込み制御手段は、前記メモリの1つのエリア内の複数のデータのうち一部のデータの書き換えを行う場合に、当該エリアに記憶された複数のデータを読み出し、当該複数のデータのうち一部のデータを書き換え、この一部のデータの書き換え後の複数のデータを当該エリアに書き込む制御を行うことを特徴とする請求項1に記載のデジタル信号処理装置。
  4. 前記メモリは、複数のエリアの各々に複数の命令を記憶するプログラムメモリであり、
    前記処理手段は、前記プログラムメモリから読み出された命令を実行する命令実行手段であることを特徴とする請求項1〜3のいずれか1の請求項に記載のデジタル信号処理装置。
  5. 前記命令実行手段は、前記データ供給制御手段によりジャンプ命令が与えられた場合、前記ジャンプ命令によりジャンプ先とされる命令を前記読み出し制御手段に通知し、前記読み出し制御手段は、前記ジャンプ命令によりジャンプ先とされる命令を含む複数の命令を記憶した前記プログラムメモリのエリアから当該複数の命令を読み出す制御を行うことを特徴とする請求項4に記載のデジタル信号処理装置。
  6. 前記メモリは、複数のエリアの各々に信号処理のための複数の係数を記憶する係数メモリであり、
    前記処理手段は、前記係数メモリから読み出された係数を使用した演算を行うことにより信号処理を行う演算手段であることを特徴とする請求項1〜3のいずれか1の請求項に記載のデジタル信号処理装置。
JP2006244890A 2006-09-09 2006-09-09 デジタル信号処理装置 Expired - Fee Related JP5003070B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006244890A JP5003070B2 (ja) 2006-09-09 2006-09-09 デジタル信号処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006244890A JP5003070B2 (ja) 2006-09-09 2006-09-09 デジタル信号処理装置

Publications (2)

Publication Number Publication Date
JP2008065718A true JP2008065718A (ja) 2008-03-21
JP5003070B2 JP5003070B2 (ja) 2012-08-15

Family

ID=39288365

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006244890A Expired - Fee Related JP5003070B2 (ja) 2006-09-09 2006-09-09 デジタル信号処理装置

Country Status (1)

Country Link
JP (1) JP5003070B2 (ja)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01161438A (ja) * 1987-12-17 1989-06-26 Nec Corp 先取命令無効化処理方式
JPH0375945A (ja) * 1989-08-18 1991-03-29 Nec Corp データ処理装置
JPH07152566A (ja) * 1993-10-18 1995-06-16 Cyrix Corp スーパーパイプライン式スーパースカラーマイクロプロセッサ用の書き込みバッファ
JPH09282221A (ja) * 1996-04-19 1997-10-31 Hitachi Ltd 主記憶制御装置
JPH1091573A (ja) * 1996-09-13 1998-04-10 Mitsubishi Electric Corp マイクロプロセッサ
JPH11272546A (ja) * 1998-03-23 1999-10-08 Nec Corp 可変長レジスタ装置
JP2000357089A (ja) * 1999-06-15 2000-12-26 Hitachi Ltd データ処理装置
JP2004005603A (ja) * 2002-04-22 2004-01-08 Texas Instruments Inc 繰返しブロック命令を入れ子ループに沿ってゼロ・サイクル・オーバヘッドで実行する方法及び装置
JP2004145454A (ja) * 2002-10-22 2004-05-20 Fujitsu Ltd 情報処理装置及び情報処理方法
JP2006011822A (ja) * 2004-06-25 2006-01-12 Nec Corp プロセッサ

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01161438A (ja) * 1987-12-17 1989-06-26 Nec Corp 先取命令無効化処理方式
JPH0375945A (ja) * 1989-08-18 1991-03-29 Nec Corp データ処理装置
JPH07152566A (ja) * 1993-10-18 1995-06-16 Cyrix Corp スーパーパイプライン式スーパースカラーマイクロプロセッサ用の書き込みバッファ
JPH09282221A (ja) * 1996-04-19 1997-10-31 Hitachi Ltd 主記憶制御装置
JPH1091573A (ja) * 1996-09-13 1998-04-10 Mitsubishi Electric Corp マイクロプロセッサ
JPH11272546A (ja) * 1998-03-23 1999-10-08 Nec Corp 可変長レジスタ装置
JP2000357089A (ja) * 1999-06-15 2000-12-26 Hitachi Ltd データ処理装置
JP2004005603A (ja) * 2002-04-22 2004-01-08 Texas Instruments Inc 繰返しブロック命令を入れ子ループに沿ってゼロ・サイクル・オーバヘッドで実行する方法及び装置
JP2004145454A (ja) * 2002-10-22 2004-05-20 Fujitsu Ltd 情報処理装置及び情報処理方法
JP2006011822A (ja) * 2004-06-25 2006-01-12 Nec Corp プロセッサ

Also Published As

Publication number Publication date
JP5003070B2 (ja) 2012-08-15

Similar Documents

Publication Publication Date Title
US20040003219A1 (en) Loop control circuit and loop control method
JP4682485B2 (ja) メモリ制御装置及びシリアルメモリ
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
JP5003070B2 (ja) デジタル信号処理装置
JP2005084907A (ja) メモリ帯域制御装置
JP2000215068A (ja) マルチタスクスケジュ―リング装置
JP2007206924A (ja) 演算処理システム
WO2021035715A1 (zh) 数据处理方法和装置
JP2008113295A (ja) 映像信号処理装置
US8255672B2 (en) Single instruction decode circuit for decoding instruction from memory and instructions from an instruction generation circuit
US10243581B1 (en) System and method for implementing finite impulse response filter in an audio processor
JP2006202172A (ja) バスタイミング制御回路
JP2010097356A (ja) 演算処理装置、それを搭載した通信装置および放送受信装置、ならびに情報処理装置
JP3888236B2 (ja) プログラムカウンタ回路
JP4404065B2 (ja) デジタル信号処理装置
JP5007560B2 (ja) 信号処理装置
JPH01179515A (ja) デジタル信号処理装置
KR20010080916A (ko) 디지털신호 처리장치 및 그 제어방법
JP2006139321A (ja) ディジタルシグナルプロセッサ
JP2007172299A (ja) 情報処理装置
JP5233543B2 (ja) データ処理回路、画像処理装置、及び、データ処理方法
JP2011180653A (ja) データ転送装置およびデータ転送方法
JP2007102973A (ja) 半導体集積回路
JP2005056033A (ja) レジスタ回路
JP2006039604A (ja) 情報処理装置および方法、並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110719

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120424

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120507

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150601

Year of fee payment: 3

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees