JPH11308114A - コーデック - Google Patents
コーデックInfo
- Publication number
- JPH11308114A JPH11308114A JP10115505A JP11550598A JPH11308114A JP H11308114 A JPH11308114 A JP H11308114A JP 10115505 A JP10115505 A JP 10115505A JP 11550598 A JP11550598 A JP 11550598A JP H11308114 A JPH11308114 A JP H11308114A
- Authority
- JP
- Japan
- Prior art keywords
- program
- data
- block
- unit
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 135
- 238000012545 processing Methods 0.000 claims abstract description 60
- 238000010586 diagram Methods 0.000 description 32
- LNKQQZFLNUVWQQ-UHFFFAOYSA-N 1-chloro-2,2-bis(4'-chlorophenyl)ethylene Chemical compound C=1C=C(Cl)C=CC=1C(=CCl)C1=CC=C(Cl)C=C1 LNKQQZFLNUVWQQ-UHFFFAOYSA-N 0.000 description 24
- 238000000034 method Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 10
- 230000004044 response Effects 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 101001020548 Homo sapiens LIM/homeobox protein Lhx1 Proteins 0.000 description 2
- 101000976913 Homo sapiens Lens fiber major intrinsic protein Proteins 0.000 description 2
- 101001005166 Homo sapiens Lens fiber membrane intrinsic protein Proteins 0.000 description 2
- 102100023487 Lens fiber major intrinsic protein Human genes 0.000 description 2
- 102100026038 Lens fiber membrane intrinsic protein Human genes 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 102220068412 rs139166382 Human genes 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100408455 Arabidopsis thaliana PLC7 gene Proteins 0.000 description 1
- 101150115013 DSP1 gene Proteins 0.000 description 1
- 101710137710 Thioesterase 1/protease 1/lysophospholipase L1 Proteins 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 231100000741 direct peptid reactivity assay Toxicity 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
ルゴリズム処理を連続して行うことのできるDSPを有
するコーデックを提供することである。 【解決手段】コーデック2が有するDSP10Aは、1
つのプログラムを分割したブロックプログラム単位でプ
ログラムを格納するRAM40と、ブロックプログラム
の実行時に使用するデータを、1つのデータを分割した
データブロック単位で格納するRAM30と、RAM3
0内のデータブロックを用いてRAM40内のブロック
プログラムの実行を行うDSPコア50と、DSPコア
50による1つのブロックプログラムの実行終了毎に、
外部から新たにブロックプログラムを取得し、当該ブロ
ックプログラムをRAM40に格納するDXMAU60
とを有する。
Description
り、特に複数のアルゴリズム処理を行うことのできるD
SP(Digital Signal Processor)を有するコーデック
に関する。近年、通信ネットワークの発達に伴いより高
性能なコーデックが要求されている。
て伝送するコーデック(CODEC(COder and DECode
r)) は、内部にDSP(Digital Signal Processor)
を有し、主にこのDSPによってデジタル信号の符号化
・復号化処理を行っている。図25は、従来例のDSP
としてマスクタイプのDSP200の構成を示す図であ
る。
めのプログラムを格納するROM201と、ワークデー
タを格納するRAM202と、DSP200の外部との
信号の出入り口であるIOポート203と、RAM20
2からロードされたワークデータを使用してROM20
1からロードされたプログラムを実行するDSPコア2
04とを有する。また、DSPコア204はROM20
1へのアクセスポインタであるプログラムカウンタ(P
C)205を有する。
定するアドレスから順にROM201内のプログラムが
DSPコア204によって読み出されて実行される。そ
して、プログラムの実行による結果がIOポート203
から出力される。また、プログラム実行時には、必要に
応じてRAM202からはワークデータがDSPコア2
04に読み出され、DSPコア204で加工された後、
再びRAM202に格納される。
がそれぞれ独立して別のメモリに格納されているのでD
SP200は高速でプログラム処理を行うことができ
る。図26は、2チャンネルの信号処理を行うDSP2
00の動作を説明するための図である。図26に示すよ
うに、2チャンネルの信号処理を行うためにDSP20
0のワークデータメモリであるRAM202には、独立
したメモリ領域が2つ設けられ、各領域にチャンネル
(1)又はチャンネル(2)用のワークデータが格納さ
れている。上記のような構成とすることでプログラムメ
モリであるROM201内のプログラムを単位処理時間
で2回実行して、2チャンネルの信号処理を実現するこ
とができる。
ズム(プログラム)が同一のものである場合の説明であ
る。複数のアルゴリズムを処理する場合は、従来それぞ
れが特定のアルゴリズム処理を行う複数種類のCODE
Cを用意して対応していた。
に複数のアルゴリズムを処理するために複数種類のCO
DECを用意する場合、それぞれのCODECは、特定
のアルゴリズム処理のみを行うものなので、ネットワー
クトラフィックの動的な変化に応じて実行するアルゴリ
ズムを変えるということができなかった。
応じて実行するアルゴリズムを切り替え可能にするに
は、1つのCODECに複数のアルゴリズムを格納でき
る構成にする必要がある。しかし、従来の1つのCOD
ECが有するDSP内のメモリでは、複数のアルゴリズ
ム処理のためのプログラムを格納するにはメモリ容量が
足りなくなってしまう。そのため、従来のDSPが他の
アルゴリズム処理を行う場合、実行中のプログラムを一
時中断してから当該プログラムの代わりに他のプログラ
ムをDSP内のメモリにロードする必要性が発生すると
いう問題があった。
約を受けずに複数のアルゴリズム処理を連続して行うこ
とのできるDSPを有するコーデックを提供することで
ある。
に本発明では、次に述べる各手段を講じたことを特徴と
する。請求項1記載の発明では、デジタル信号の符号化
/復号化処理を行うデータ処理部を有するコーデックに
おいて、前記データ処理部は、1つのプログラムを分割
したブロックプログラム単位でプログラムを格納するプ
ログラムメモリと、ブロックプログラムの実行時に使用
するデータを、1つのデータを分割したデータブロック
単位で格納するデータメモリと、前記データメモリに格
納されたデータブロックを用いて前記プログラムメモリ
に格納されたブロックプログラムの実行を行うプログラ
ム実行部と、前記プログラム実行部による1つのブロッ
クプログラムの実行終了毎に、外部から新たにブロック
プログラムを取得し、当該ブロックプログラムを前記プ
ログラムメモリに格納するプログラム更新部とを有する
ことを特徴とするものである。
記載のコーデックにおいて、前記プログラムメモリは、
バンク毎に1つのブロックプログラムを格納しており、
所定の順序で選択される1つのバンク内のブロックプロ
グラムが順次プログラム実行部によって実行されること
を特徴とするものである。また、請求項3記載の発明で
は、請求項1又は2記載のコーデックにおいて、前記デ
ータメモリは、バンク毎に1つのデータブロックを格納
しており、前記プログラム実行部によるブロックプログ
ラムの実行毎に、所定の順序で選択される1つのバンク
内のデータブロックが順次使用されることを特徴とする
ものである。
乃至3何れか1項記載のコーデックにおいて、前記プロ
グラム更新部は、外部から新たに取得したブロックプロ
グラムを、実行の終了したブロックプログラムが格納さ
れていた前記プログラムメモリのバンクに格納すること
を特徴とするものである。また、請求項5記載の発明で
は、請求項1乃至4何れか1項記載のコーデックにおい
て、前記データ処理部は、更に前記プログラム実行部に
よる1つのブロックプログラムの実行終了毎に、前記デ
ータ処理部の外部にある第一の外部メモリから新たにブ
ロックプログラムを取得し、当該ブロックプログラムを
前記プログラム更新部に与えるブロックプログラム取得
部を有することを特徴とするものである。
記載のコーデックにおいて、前記ブロックプログラム取
得部は、プログラム処理のフェーズと前記第一の外部メ
モリから取得するプログラムとの関係を記録した第一の
ロードテーブルを有し、前記第一のロードテーブルに基
づいて前記第一の外部メモリからブロックプログラムを
取得することを特徴とするものである。
乃至6何れか1項記載のコーデックにおいて、前記デー
タ処理部は、更に前記プログラム実行部による1つのブ
ロックプログラムの実行終了毎に、外部から新たにデー
タブロックを取得し、当該データブロックを前記データ
メモリに格納するデータ更新部を有することを特徴とす
るものである。
記載のコーデックにおいて、前記データ処理部は、更に
前記プログラム実行部による1つのブロックプログラム
の実行終了毎に、前記データ処理部の外部にある第二の
外部メモリから新たにデータブロックを取得し、当該デ
ータブロックを前記データ更新部に与えるデータブロッ
ク取得部を有することを特徴とするものである。
記載のコーデックにおいて、前記データブロック取得部
は、プログラム処理のフェーズと前記データメモリから
前記第二の外部メモリへ戻すデータとの関係を記録した
ストアテーブルと、プログラム処理のフェーズと前記第
二の外部メモリから取得するデータとの関係を記録した
第二のロードテーブルとを有し、前記ストアテーブルに
基づいて前記データメモリから前記第二の外部メモリへ
使用されたデータブロックを戻し、前記第二のロードテ
ーブルに基づいて前記第二の外部メモリから新たなデー
タブロックを取得することを特徴とするものである。
6又は9記載のコーデックにおいて、前記第一及び第二
のロードテーブルと前記ストアテーブルの内容は、書き
換え可能な構成であることを特徴とするものである。上
記各手段は、次のように作用する。請求項1記載の発明
によれば、プログラム実行部(後述する実施例のDSP
コア50)が1つのブロックプログラムの実行を終了す
ることを契機として、プログラム更新部(後述する実施
例のDXMAU60)が、外部から与えられた新たな1
つのブロックプログラムをプログラムメモリ(後述する
実施例のRAM40)にロードしていく構成のコーデッ
クを提供することができる。このような構成のコーデッ
クにおいては、1フェーズ毎にプログラムメモリ内のブ
ロックプログラムが順次実行されると同時に、あるプロ
グラム(例えば、プログラムA)が外部からブロックプ
ログラム(例えば、ブロックプログラムA1、A2、A
3、A4、A5)単位でプログラムメモリに格納され
る。従って、上記構成のコーデックが複数フェーズ動作
することで複数のプログラム(アルゴリズム)処理を連
続して行うことができる。
つのプログラムの処理を行うための時間帯のことであ
り、後述するように等長化されている。例えば、コーデ
ックは、フェーズ1でプログラムAを実行し、フェーズ
2でプログラムBを実行し、フェーズ3でプログラムC
を実行していくことで複数のアルゴリズム処理が行われ
る。
し、小プログラムを順次プログラムメモリ内にロードし
て、実行することにより当該プログラムがプログラムメ
モリ(後述する実施例のRAM40)に格納するには容
量が大き過ぎる場合でも当該プログラムの処理をするこ
とができる。また、請求項2記載の発明によれば、プロ
グラムメモリの各バンクには1つのブロックプログラム
が格納されており、所定の順序で選択されるバンク内の
ブロックプログラムが順次プログラム実行部により実行
されるコーデックを提供することができる。
タメモリ(後述する実施例のRAM30)の各バンクに
は1つのデータブロックが格納されており、各ブロック
プログラムの実行時には、当該ブロックプログラムが格
納されているバンクに対応して所定の順序で選択される
バンク内のデータブロックが使用されるコーデックを提
供することができる。
グラム実行部が1つのブロックプログラムの実行を終了
することを契機として、外部からプログラム更新部によ
って新たにロードされた1つのブロックプログラムは、
前記実行の終了したブロックプログラムがあったプログ
ラムメモリのバンクに格納されるので、各バンクが格納
するブロックプログラムが順次書き換わっていく構成の
コーデックを提供することができる。従って、プログラ
ム実行部が所定の順序で選択されるバンク内のブロック
プログラムを実行するという動作を繰り返すことにより
複数のアルゴリズム処理が行われる。
グラム実行部によるブロックプログラムの実行終了毎
に、データ処理部(後述するDSP10A)の外部にあ
る第一の外部メモリ(後述する実施例のROM80)か
ら新たにブロックプログラムを取得し、当該ブロックプ
ログラムをプログラム更新部に与えるブロックプログラ
ム取得部(後述する実施例のPLC70)を有するコー
デックを提供することができる。
グラム処理のフェーズと第一の外部メモリから取得する
プログラムとの関係を記録した第一のロードテーブル
(後述する実施例のロードテーブル71)に基づいて、
第一の外部メモリからブロックプログラムを取得するブ
ロックプログラム取得部を有するコーデックを提供する
ことができる。
グラム実行部による1つのブロックプログラムの実行終
了毎に、外部から新たにデータブロックを取得し、当該
データブロックをデータメモリに格納するデータ更新部
(後述する実施例のDDMAU90)を有するコーデッ
クを提供することができる。また、請求項8記載の発明
によれば、プログラム実行部による1つのブロックプロ
グラムの実行終了毎に、データ処理部の外部にある第二
の外部メモリ(後述する実施例のERAM110)から
新たにデータブロックを取得し、当該データブロックを
データ更新部に与えるデータブロック取得部(後述する
実施例のPDLC100)を有するコーデックを提供す
ることができる。
タブロック取得部は、プログラム処理のフェーズと前記
データメモリから前記第二の外部メモリへ戻すデータと
の関係を記録したストアテーブル(後述する実施例のス
トアテーブル101)と、プログラム処理のフェーズと
第二の外部メモリから取得するデータとの関係を記録し
た第二のロードテーブル(後述する実施例のロードテー
ブル102)とを有し、ストアテーブルに基づいてデー
タメモリから第二外部メモリへ使用されたデータブロッ
クを戻し、第二のロードテーブルに基づいて第二の外部
メモリから新たなデータブロックを取得するコーデック
を提供することができる。
一及び第二のロードテーブルとストアテーブルの内容は
書き換え可能なコーデックを提供することができる。第
一及び第二のロードテーブルとストアテーブルの内容は
書き換え可能な構成であるので、本発明によるコーデッ
クは、必要に応じてテーブルの内容を書き換えることで
実行するプログラムの順序を変更したり、異なるデータ
で同じプログラムを実行する等、プログラムやデータの
変化に対応させることができる。
て図面と共に説明する。本発明の原理は、コーデック
(CODEC(COder and DECoder)) を構成するDSP
(Digital Signal Processor)に順次DSP外部からプ
ログラムやワークデータを取得してDSPに与える機能
を有するユニットを接続し、DSPが連続して複数のア
ルゴリズム処理を行えるようにすることである。
たCODEC2の基本構成図である。図1に示すよう
に、CODEC2は、アナログ信号をデジタル信号に変
換するAD変換器4と、デジタル信号をアナログ信号に
変換するDA変換器6と、信号の符号化・復号化演算を
行うDSP10Aとを有する。
は、AD変換器4でデジタル信号に変換され、DSP1
0Aで符号化された後にCODEC2外に出力される。
また、CODEC2に入力する符号化された信号は、D
SP10Aで復号化され、DA変換器6でアナログ信号
に変換された後、CODEC2外に出力される。図2
は、本発明の第一実施例であるDSP10Aの全体構成
図である。
(IO)ポート20、RAM(Random Access Memory)3
0、40、DSPコア50、DXMAU(Direct eXecut
ableMemory Access Unit)60を有する。また、DXM
AU60は、DSP10A外部のPLC(Program Load
Controller )70に接続され、PLC70はROM(R
ead Only Memory)80に接続されている。
の入出力を行う。RAM30は、ワークデータを格納す
る領域(ワークエリア)を有するワークデータメモリで
あり、RAM40は、DSP10Aの動作制御を行うた
めのDSPプログラム(Program )を格納する領域を有
するプログラムメモリである。DSPコア50は、プロ
グラムカウンタ(PC)51を有し、必要に応じてRA
M30内のワークデータを使用してRAM40内のDS
Pプログラムを実行していく。この時使用されたワーク
データは、再びRAM30に戻される。
域において、実行の終了したプログラムをDSP10A
の外部にあるPLC70から与えられる新たなプログラ
ムに書き換える。図3は、DSP10Aの動作原理を説
明するための図である。図3に示すように、RAM30
はメモリ領域(ワークエリア)Work#1、#2、#
3を有し、それぞれの領域にはワークデータa、b、c
が格納されている。ワークデータa、b、cはそれぞれ
5つのデータブロック(a1、a2、a3、a4、a
5)、(b1、b2、b3、b4、b5)、(c1、c
2、c3、c4、c5)に分割されているものとする。
グラムを格納することが可能な程、大きな容量を有する
メモリであり、DSPプログラムであるプログラムA、
B、Cを格納する。このプログラムA、B、Cはそれぞ
れ5つのブロックプログラム(A1、A2、A3、A
4、A5)、(B1、B2、B3、B4、B5)、(C
1、C2、C3、C4、C5)に分割されているものと
する。また、各プログラムを構成するブロックプログラ
ムは、添え数字の小さなものから順に実行される。例え
ば、プログラムAにおいて実行される順番は、ブロック
プログラムA1、A2、A3、A4、A5の順である。
このプログラムA、B、Cの実行時には、それぞれRA
M30内の異なるワークエリアにあるワークデータを使
用するようにプログラムされている。例えば、ブロック
プログラムA1、A2、A3、A4、A5の実行時に
は、対応するワークエリアに格納されたデータブロック
a1、a2、a3、a4、a5がそれぞれ使用される。
、、、、を有し、1つのバンクには1つのブ
ロックプログラムが格納される。ここで、RAM40に
おいては上から下のバンクに向かって順に格納されたブ
ロックプログラムが実行されるものとする。各ブロック
プログラムの実行時には、RAM30内の対応するデー
タブロックが使用される。ブロックプログラムの実行時
は、当該ブロックプログラムが格納されたRAM40の
同一バンク内での処理ジャンプはあるが、前のバンクへ
の処理ジャンプはないように構成されている。また、R
AM40のバンクの数は、実施例のものに限らない。
に対して各フェーズ(Phase) 毎にプログラムの書き換え
を行うユニットである。DXMAU60は、3種のレジ
スタXBAS、XLIM、XBNKを有する。レジスタ
XBASは、プログラムが書き換わるRAM40のメモ
リ領域の始点を設定し、レジスタXLIMは、プログラ
ムが書き換わるRAM40のメモリ領域の終点を設定
し、レジスタXBNKは、プログラムを書き換える際の
1バンクあたりのワード数を設定する。
51を常時監視している。例えば、DSPコア50がバ
ンクのブロックプログラムの実行を終了してバンク
のブロックプログラムの実行に移った時点をPC51の
値を見て検出し、バンクにROM80からロードされ
た新たなブロックプログラムを格納する。PLC(Progr
am Load Controller)70は、ROM80から順次ブロ
ックプログラムを取得し、当該ブロックプログラムをD
SP10A内部のDXMAU60に与える。PLC70
は、プログラムをDXMAU60に与えるタイミング
(フェーズ)と与えるプログラムの種類との対応関係が
記録されたロードテーブル(Load Table)7
1を有する。PLC70は、このロードテーブル71に
基づき、どのプログラムをROM80の対応するバンク
からロードするかを決定する。ここで、PLC70はD
SP10A内に配置された構成としてもよい。また、ロ
ードテーブル71はユーザが適宜書き換え可能な構成と
してもよい。
例の動作説明を行う。図4は、各フェーズにおけるDS
Pコア50が実行するプログラムとROM80からロー
ドされるプログラムの関係を示したタイミング図であ
る。先ず、DSP10Aの動作フェーズがフェーズ1で
あるとする。そして、RAM40のバンク、、、
、には、それぞれブロックプログラムA1、A2、
A3、A4、A5が格納されているとする。
AM40のバンクに格納されたブロックプログラムA
1の実行を終了し、バンクのブロックプログラムA2
の実行に移る時、それを契機としてDXMAU60は、
PLC70に対してバンクに新たに格納するブロック
プログラムを要求する。DXMAU60からの要求を受
けてPLC70は、ロードテーブル71に従いフェーズ
1において、ROM80からロードするプログラムはプ
ログラムCであると認識する。そして、PLC70はプ
ログラムCを構成するブロックプログラムの中で最初に
実行されるブロックプログラムC1をROM80から取
得し、DXMAU60に与える。DXMAU60はバン
クに当該ブロックプログラムC1を格納する。
されたブロックプログラムA2の実行終了後、バンク
内のブロックプログラムA3の実行に移った時、DXM
AU60は、PLC70にバンクに新たに格納するブ
ロックプログラムを要求する。DXMAU60からの要
求を受けてPLC70は、ロードテーブル71に従いR
OM80からブロックプログラムC2を取得し、DXM
AU60に与える。そして、DXMAU60はバンク
に当該ブロックプログラムC2を格納する。
クプログラムA5の実行が終了すると、フェーズ1にお
けるプログラムAの実行は終了する。そして、PC51
が先頭に返り、処理フェーズはフェーズ2になる。続い
て、DSPコア50は、バンクに新たに格納されたブ
ロックプログラムC1の実行をデータブロックc1を用
いて行う。この時、バンクには新たにブロックプログ
ラムC5が格納されている。そして、フェーズ1と同様
にフェーズ2では順次ブロックプログラムC1、C2、
C3、C4、C5が実行されることでプログラムCの処
理が行われる。
ロックプログラムは、バンク単位で順次書き換えられて
いき、プログラムカウンタ(PC)51が先頭に返った
時は、プログラムが次に実行すべき新しいものに置き変
わっている。従って、本発明のDSP10Aは、プログ
ラムの実行を中止せずに連続して複数のプログラムA、
B、Cを実行するので複数の(マルチ)アルゴリズム処
理を実現することができる。
は上記例に限らない。また、上記実施例ではマルチアル
ゴリズム処理についての説明を行ったが、一度にはRA
M40に格納できないような容量の大きな1つのプログ
ラムについてもDSP10Aを用いて実行することが可
能である。図5は、各フェーズにおけるDSPコア50
が実行するプログラムDを分割した小プログラムと、R
OM80からロードされる小プログラムの関係を示した
タイミング図である。ここで、プログラムDはそのまま
ではRAM40のバンク内に格納できない程容量の大き
なプログラムであり、3つの小プログラム1/3、2/
3、3/3に分割されている。そして、この小プログラ
ムが順次RAM40に格納されていくものとする。
2/3、3/3は、各フェーズ毎に順次DSPコア50
によって実行されていく。一方、ROM80からはロー
ドテーブル71に従って小プログラム1/3、2/3、
3/3のうちの一つが順次各フェーズ毎に新たにロード
され、実行されるプログラムのあるバンクを追うように
後から次々とRAM40のバンクにブロックプログラム
単位で格納されていく。上記動作が繰り返され、小プロ
グラム1/3、2/3、3/3が全て実行されることに
より、プログラムDの実行が終了する。従って、そのま
まではRAM40内に格納できない程、大きな容量のプ
ログラムであってもDSP10Aを用いて実行すること
が可能になっている。
された様子を示す図である。図6に示すように、ROM
81には、RAM30において参照するワークエリア
と、実行するプログラムとの全組み合わせ分のオブジェ
クトが格納されている。例えば、図3に示すROM80
がDSP10Aに接続された構成の場合、プログラムA
を実行する際に使用されるワークデータは、領域Wor
k#1に格納されているワークデータaに限定される。
従って、プログラムAをワークデータbやワークデータ
cを用いて実行することができない。そこで、図6に示
すようにプログラムを格納しておく外部ROMの構成を
ROM81のようにすることで、DSP10Aは、同一
のプログラム(例えばプログラムA)を異なるデータ
(データa、b、c)を用いて実行することが可能にな
る。
び外部記憶装置83が接続された様子を示す図である。
図7に示すようにDSP10Aの外部のプログラムメモ
リは、例えばハードディスクドライブ装置(HDD)の
ような外部記憶装置83に接続されたDPRAM(Dual
Port RAM) 82である。
k#2内のデータbを使用するように設定されたプログ
ラムBが格納された領域に、プログラムBに代えて外部
記憶装置83からWork#2内のデータbを使用する
ように設定されたプログラムAが格納されたとする。こ
の時、DPRAM82内には、Work#1内のデータ
aを使用するように設定されたプログラムAとWork
#2内のデータbを使用するように設定されたプログラ
ムAが格納された状態になる。従って、DSP10Aの
動作によって上記2つのプログラムが実行されると、プ
ログラムAはデータa及びデータbの両方のデータを使
って実行されることになる。
が非常に多く、図6で説明したROM81のように、R
AM30において参照するワークエリアと、実行するプ
ログラムとの全組み合わせ分のオブジェクトを格納する
にはDSP10A外部のメモリのメモリ容量が足りない
場合でも、必要に応じて外部記憶装置83からプログラ
ムをDPRAM82にダウンロードすることで、DSP
10Aは同一のプログラムを異なるデータを用いて実行
することができる。
82にプログラムがダウンロードされた時、ダウンロー
ドされたプログラムに対応してロードテーブル71の内
容は、例えば図7に示すロードテーブル72のように書
き換えられるものとする。ロードテーブル72による
と、新たにDPRAM82に格納された、Work#2
内のデータbを使用するように設定されたプログラムA
は、PLC70によってフェーズ2でDSP10Aにロ
ードされる。
ロードできる構成とすることにより、ロードテーブル7
1で固定されたプログラムのロード及び実行順序を変更
することが可能になる。図8は、本発明の第二実施例で
あるDSP10Bの全体構成図である。図8に示すよう
にDSP10Bは、第一実施例のDSP10Aに加えて
DDMAU(Direct Data Memory Unit) 90を有する構
成である。また、DDMAU90は、DSP10B外部
のPDLC(Program Data Load Controller)100に
接続され、PDLC100はERAM(Extended Random
Access Memory) 110に接続されている。
実行時に使用されるデータブロックが格納されたRAM
30のバンクの内容を、順次DSP10Bの外部にある
PDLC100から与えられる新たなデータブロックで
書き換える。ERAM110は、外部のデータメモリで
あり、ワークデータa、b、cを格納する。他の構成は
DSP10Aと同様なので説明を省略する。
るための図である。図9に示すように、RAM30のメ
モリ領域は5つのバンク、、、、を有し、1
つのバンクには1つのデータブロックが格納される。R
AM40のバンクとRAM30のバンクとは1対1に対
応付けられており、バンクの対応関係から実行するブロ
ックプログラムに対して使用するデータブロックが決定
付けられる。例えば、RAM40のバンクに格納され
たブロックプログラムが実行される時は、RAM30の
バンクに格納されたデータブロックが使用される。1
つのブロックプログラムが実行される時に、対応するR
AM30の同一バンク内のデータブロックの使用は自由
であるが、他のバンクのデータブロックを使用すること
のないように構成されている。また、RAM30のバン
ク数は実施例のものに限らない。
域に対して各フェーズ毎にワークデータの書き換えを行
うユニットである。DDMAU90は、3種のレジスタ
DBAS、DLIM、DBNKを有する。レジスタDB
ASは、データが書き換わるRAM30のメモリ領域の
始点を設定し、レジスタDLIMは、データが書き換わ
るRAM30のメモリ領域の終点を設定し、レジスタD
BNKは、データを書き換える際の1バンクあたりのワ
ード数を設定する。
51を常時監視している。例えば、DDMAU90は、
DSPコア50がRAM40のバンクのブロックプロ
グラムの実行を終了して、バンクのブロックプログラ
ムの実行に移った時点をPC51の監視から認識する。
そして、DDMAU90は、RAM30のバンクのデ
ータブロックをERAM110側に戻し、RAM30の
バンクにPDLC100から取得した新たなデータブ
ロックを格納する。
してデータの書き換えのタイミングを認識するのではな
く、データメモリであるRAM30へのアクセスポイン
タを監視して、データの書き換えのタイミングを認識す
るようにしてもよい。この場合、DDMAU90は、R
AM30へのアクセスポインタがRAM30の次のメモ
リバンクを指示するようになった時、実行されるブロッ
クプログラムが変わったと判断する。そして、DDMA
U90は、それまでのメモリバンク内のデータブロック
をERAM110側に戻す(ストアする)と共に、ER
AM110側から与えられるデータブロックを新たに当
該メモリバンクに書き込む。
)100は、外部データメモリであるERAM110
からデータブロックを取得し、当該データブロックをD
SP10B内部のDDMAU90に与える。PDLC1
00は、データをDDMAU90に与えるタイミング
(フェーズ)と与えるデータの種類との対応関係が記録
されたロードテーブル(Load Table)102
と、DSP10BからERAM110にデータをストア
するタイミングとそのデータの種類との対応関係が記録
されたストアテーブル(Store Table)10
1とを有する。ここで、PDLC100はDSP10B
内に配置された構成としてもよい。また、ロードテーブ
ル102、ストアテーブル101は、ユーザが適宜書き
換え可能な構成としてもよい。
施例の動作説明を行う。図10は、各フェーズにおける
DSPコア50が実行するプログラムと、ROM80か
らロードされるプログラムと、ERAM110からロー
ドされるワークデータの関係を示したタイミング図であ
る。先ず、DSP10Bの動作フェーズがフェーズ1で
あるとする。そして、RAM40のバンク、、、
、には、それぞれブロックプログラムA1、A2、
A3、A4、A5が格納され、RAM30のバンク、
、、、には、それぞれデータブロックa1、a
2、a3、a4、a5が格納されているとする。
AM40のバンクに格納されたブロックプログラムA
1の実行を終了し、バンクのブロックプログラムA2
の実行に移る時、それを契機としてDXMAU60は、
PLC70に対してRAM40のバンクに新たに格納
するブロックプログラムを要求する。この時、DDMA
U90は、PDLC100に対してRAM30のバンク
に新たに格納するデータブロックを要求する。
70は、ロードテーブル71に従いROM80からブロ
ックプログラムC1を取得し、DXMAU60に与え
る。そして、DXMAU60はRAM40のバンクに
ブロックプログラムC1を格納する。この時、DDMA
U90からの要求を受けてPDLC100は、ストアテ
ーブル101に従いブロックプログラムA1の進行に伴
って、RAM30のバンクに格納しておく必要の無く
なったデータブロックa1をERAM110の所定のメ
モリ領域にストアしていくと同時に、ロードテーブル1
02に従い、ERAM110から新たにデータブロック
c1を取得し、DDMAU90に与える。DDMAU9
0はRAM30のバンクに新たにデータブロックc1
を格納する。
a2を用いて、RAM40のバンクに格納されたブロ
ックプログラムA2の実行終了後、データブロックa3
を用いるバンクに格納されたブロックプログラムA3
の実行に移った時、DXMAU60は、PLC70にR
AM40のバンクに新たに格納するブロックプログラ
ムを要求する。この時、DDMAU90は、PDLC1
00に対してRAM30のバンクに新たに格納するデ
ータブロックを要求する。
70は、ロードテーブル71に従いROM80からブロ
ックプログラムC2を取得し、DXMAU60に与え
る。そして、DXMAU60はRAM40のバンクに
ブロックプログラムC2を格納する。この時、DDMA
U90からの要求を受けてPDLC100は、ストアテ
ーブル101に従いブロックプログラムA2の進行に伴
って、RAM30のバンクに格納しておく必要の無く
なったデータブロックa2を、ERAM110の所定の
メモリ領域にストアしていくと同時に、ロードテーブル
102に従い、ERAM110から新たにデータブロッ
クc2を取得し、DDMAU90に与える。DDMAU
90は、RAM30のバンクに新たにデータブロック
c2を格納する。
クプログラムA5の実行が終了すると、フェーズ1にお
けるプログラムAの実行は終了する。そして、PC51
が先頭に返り、処理フェーズはフェーズ2になる。続い
て、DSPコア50は、RAM40のバンクに新たに
格納されたブロックプログラムC1の実行をRAM30
のバンクに新たに格納されたデータブロックc1を用
いて行う。そして、フェーズ1と同様にフェーズ2では
順次ブロックプログラムC1、C2、C3、C4、C5
が実行されることでプログラムCの処理が行われる。
ログラムとRAM30に格納されるワークデータは、バ
ンク単位で順次書き換えられていき、プログラムカウン
タ(PC)51が先頭に返って新たなフェーズになった
時は、プログラムとワークデータが次フェーズ用の新し
いものに置き変わっている。従って、本発明のDSP1
0Bは、プログラムの実行を中止せずに連続してマルチ
アルゴリズム処理を実現できる。
は上記例に限らない。また、上記例ではマルチアルゴリ
ズム処理についての説明を行ったが、RAM30に格納
できないような大きな容量のワークデータを要するマル
チチャンネル処理についてもDSP10Bを用いて処理
することが可能である。図11は、各フェーズにおける
チャンネル(ch)1、2、3と各チャンネルのプログ
ラムの実行時に使用されるワークデータの関係を示した
タイミング図である。ここで、ワークデータは、そのま
まではRAM30に格納できない程容量の大きなもので
あり、元のワークデータを分割してできたデータブロッ
クがそれぞれチャンネル1、2、3用ワークデータ(Wo
rk Data for ch1 、2 、3 )として順次ロードされ、各
チャンネルのプログラムの実行時に用いられる。
にRAM30のメモリ領域において、実行が終了したプ
ログラムに対応するワークデータに変わって、ロードテ
ーブル102に基づいて新たなワークデータが順次ロー
ドされていく。従って、実行するプログラムは同一のも
のであるが、処理フェーズ毎に次のチャンネルのワーク
データがロードされ、次の処理フェーズのプログラム実
行時に使用できるようになっている。このような構成に
より、一度に全てのワークデータを格納しておくにはR
AM30のメモリ容量が足りない場合でも、DSP10
Bを用いてマルチチャンネル処理を行うことが可能であ
る。
を格納するROMは、第一実施例で説明したROM81
や外部記憶装置83からプログラムを取得するDPRA
M82で構成されてもよい。本発明では、一定時間続く
フェーズ毎に実行或いはロードされるプログラムが変わ
るので、各プログラムの処理時間は等長化されている必
要がある。具体的には、DSPの動作に要する単位処理
時間をNフェーズに分けて考える場合、外部ROMから
RAM40にロードされて実行される各プログラムは、
単位処理時間の1/Nより短い時間内で実行が完了する
構成であることが求められる。
るためにRAM40は、プログラムの書き換えが行われ
るメモリ領域以外に、プラットフォームプログラムPを
格納する。図12は、5つのバンクを有し、プラットフ
ォーム構造を有するRAM40を示す図である。RAM
40は、DSPプログラムが格納される5つのバンクの
あるメモリ領域以外の領域に各プログラムの処理時間を
等長化するためのプラットフォームプログラムPを有す
る。
を説明するための図である。図13に示すように、例え
ばフェーズ1において、プログラムAの実行が終了した
後の残りの時間は、プラットフォームプログラムPに従
いプログラム処理のアイドリングが行われる。そして、
フェーズ2になると、実行されるプログラムは、新たに
RAM40にロードされたプログラムCになる。そし
て、プログラムCの実行が終了した後の時間は、再びプ
ラットフォームプログラムPに従いプログラム処理のア
イドリングが行われる。各フェーズにおけるアイドリン
グ時間を調整することにより、各フェーズのアイドリン
グ時間を含めたプログラムの処理時間は等長化される。
認識は、例えばPLC70やPDLC100に入力され
ている、単位処理時間に同期したマスターフレームクロ
ックMFCをN分周した信号MFC/Nを、DSP10
A、10Bに与えることで可能になる。図14は、プラ
ットフォームプログラムPを持つRAM40を有するD
SP10Aの全体構成図である。以下に、プラットフォ
ームプログラムPを有するDSP10Aでマルチアルゴ
リズム処理を行う場合のワークデータアクセス方法の一
実現例を説明する。
ットフォームプログラムPを格納する。また、RAM3
0はワークエリアWork#0、#1、#2、#3を有
する。ワークエリアWork#1、#2、#3にはそれ
ぞれプログラムA、B、C用のワークデータa、b、c
が格納されている。また、Work#0は処理フェーズ
に応じてワークデータa、b、cの何れか1つが格納さ
れるテンポラリワークエリアである。
理が終了してフェーズ2になるまでのアイドリング期間
中には、プラットフォームプログラムPに従って、デー
タaがWork#1にコピーされ(戻され)、フェーズ
2で使用されるデータcがWork#3からWork#
0内にコピーされる(移される)というスワップ処理が
行なわれる。ここで、Work#0、#1、#2、#3
は、プログラム処理で使用するワークデータを格納する
のに十分なメモリ容量を有するものとする。
ェーズにおいてDSPコア50が常にデータメモリの同
一の領域(Work#0)にアクセスすることで、実行
するプログラムに必要なワークデータを得ることができ
る。図15は、上記プラットフォームプログラムPによ
るワークデータのスワップ処理の流れを示すフローチャ
ートである。
理フェーズがフェーズ1、2、3のどれに当てはまるか
を整数変数Xの値で判断する。このXの値は、整数変数
Cntの値(初期値1)から算出される。そして、Xの
値に基づいてDSPコア50にロードされるワークデー
タが決定される。この変数Xの値を決定する計算は、以
下のようになる。
る。DSP10Aが前述の信号MFC/N(例えばN=
3)を受け取るとCntの値が1つ増加される。そし
て、増加されたCntの値を3で割る演算が行われる。
この演算結果の値がXとされる。ただし、変数Cntを
3で割った演算の結果がX=0の時にはXの値が3にセ
ットされる。
P10Aに送られる度に変数Xの値が順次1、2、3、
1、2、3、1、・・・と決定される。図15に示すよ
うに、変数Cntを3で割る演算で決定される変数Xの
値に対応して、Work#0にあったワークデータが所
定のワークエリアに戻され、次のフェーズで使用される
ワークデータが代わりにWork#0にコピーされる。
そして、DSPコア50には常にWork#0に格納さ
れたワークデータがロードされ、プログラムの実行時に
使用される。
がX=1の時、それまでWork#0にあったワークデ
ータがWork#3にコピーされ、代わりにWork#
0にはWork#1内にあったワークデータがコピーさ
れる。図16は、図15で説明した方法とは別のワーク
データアクセス方法を説明するための、プラットフォー
ム構造を有するDSP10Aの構成図である。このDS
P10Aは、RAM30のデータメモリに対する論理ア
ドレスが設定された構成である。
は、RAM30のデータメモリ領域とそれに対する論理
アドレッシングを変えるアドレス手法がDSPハードで
サポートされている。プラットフォームプログラムPに
従い、各処理フェーズにおけるプログラムの実行前にオ
フセットアドレスをオフセットレジスタへ与えること
で、RAM30のWork#1、#2、#3内にあるワ
ークデータa、b、cの何れに対してもDSPコア50
は同一のアドレスで常にアクセスできるようになる。
LC70、DDMAU90、PDLC100は、例えば
以下のような構成とする。図17は、DXMAU60の
構成例を示す図である。図17に示すように、DXMA
U60は、バンクカウンタ61、ベースアドレス計算部
62、プログラムカウンタ比較部63及びアドレス生成
部64を有する。
る整数変数Kをカウントする。バンクカウンタ61がカ
ウントする変数Kの値を1ずつ増加させるインクリメン
ト信号incは、プログラムカウンタ比較部63から入
力され、変数Kの値をゼロにリセットするリセット信号
rstは、アドレス生成部64から入力される。ベース
アドレス計算部62には、DXMAU60のレジスタか
らXBNK、XBASの値が入力され、バンクカウンタ
61から変数Kの値が入力される。ベースアドレス計算
部62は、入力される値XBNK、XBAS、Kを用い
てベースアドレスXBAS+XBNK×K(初期値はK
=0によりXBAS)を算出し、この算出したベースア
ドレスをプログラムカウンタ比較部63及びアドレス生
成部64に与える。ここで、ベースアドレスXBAS+
XBNK×Kは、RAM40においてDSPプログラム
(ブロックプログラム)が格納されるメモリ領域のバン
ク境界のアドレスを表わす。
MAU60のレジスタからXBNK、XBASの値が入
力され、プログラムカウンタ51からはプログラムカウ
ンタの値PCが入力され、ベースアドレス計算部62か
らはベースアドレスXBAS+XBNK×K(初期値は
XBAS)の値が入力される。最初にプログラムカウン
タ比較部63は、PCとXBAS+XBNK×Kの初期
値であるXBASとを比較しており、PC>XBASに
なるとRAM40内のブロックプログラムの実行が開始
されたと判断し、PCと(XBAS+XBNK×K)+
XBNK(K=0、1、2、・・・)との比較演算を開
始する。
NK×K)+XBNKになると、プログラムカウンタ比
較部63は、DSPコア50が次のバンクに格納された
ブロックプログラムを実行し始めたと判断し、アドレス
生成部64にアドレスのインクリメントイネーブル信号
incenを与える。プログラムカウンタ比較部63
は、上記インクリメントイネーブル信号incenを各
処理フェーズ中、XBNK分の長さだけ出力することで
アドレス生成部64にXBNK単位のブロックプログラ
ムの書き換えを実行させる。
インクリメントイネーブル信号incenをXBNK分
の長さだけ出力するとインクリメント信号incを出力
してバンクカウンタ61のKの値を1つ増加させる。ア
ドレス生成部64は、上記インクリメントイネーブル信
号incenに基づいてベースアドレスXBAS+XB
NK×Kに対するオフセットアドレス[0,XBNK−
1]を生成し、先のベースアドレスと加算することでア
ドレスowpを生成する。また、アドレス生成部64
は、上記インクリメントイネーブル信号incenから
プログラムメモリであるRAM40へのロード信号RD
と、外部メモリであるROM80へのリード信号RDを
生成する。
ックプログラムは、RAM40のアドレスowpが表す
メモリ領域に格納される。アドレス生成部64は、アド
レスowpがXLIMよりも大きくなると、RAM40
のメモリ領域の全バンクのブロックプログラムの書き換
えを終了したと判断して、バンクカウンタ61およびプ
ログラムカウンタ比較部63にリセット信号rstを送
り、整数変数Kの値をゼロにリセットさせる。整数変数
Kがゼロにリセットされることにより、続いてロードさ
れるブロックプログラムは最初のバンクに格納される。
PLC70aを示す図である。図18に示すように、P
LC70aは、ロードテーブル部73、ベースアドレス
部74、アドレス生成部75及びラッチ部76を有す
る。ロードテーブル部73は、ロードテーブル71を有
し、ロードテーブル71の内容は、PLC70aの動作
を制御する制御バスCtrl Busからの信号が入力
した時に読み出される。この読み出されたロードテーブ
ル71の内容は、ベースアドレス部74に送られる。
あるROM80からブロックプログラムを読み出す際
に、当該ブロックプログラムが格納されるメモリ領域を
特定するアクセスアドレスadrsを決定するために必
要なベースアドレスがロードテーブル71の内容に基づ
いて生成される。DSP10Aの動作の単位処理がNフ
ェーズに分けて行われるとすると、ベースアドレスの生
成は、単位処理に要する時間に同期したマスターフレー
ムクロックMFCをN分周したクロックのタイミングに
合わせて行われる。
対するオフセットアドレスをDXMAU60からのリー
ド信号RDに基づきインクリメントして生成する。そし
て、当該オフセットアドレスをベースアドレスに加算す
ることで、外部メモリであるROM80へのアクセスア
ドレスadrsを作る。そしてROM80において、ア
クセスアドレスadrsが示すメモリ領域から読み出さ
れた当該ブロックプログラムは、ラッチ部76を介して
DXMAU60に与えられる。
PLC70bを示す図である。図19に示すように、P
LC70bは、ラッチ部76、ベースアドレスレジスタ
77、リミットアドレスレジスタ78、ロードアドレス
生成部79及びアドレス比較部84を有する。ベースア
ドレスレジスタ77及びリミットアドレスレジスタ78
には、それぞれPLC70bの動作を制御する制御バス
Ctrl Busからベースアドレスとリミットアドレ
スが設定される。このベースアドレスとリミットアドレ
スは、ROM80のメモリ領域に対してプログラムの読
み出しの対象領域を限定するためのアドレスである。
MFC/Nのタイミングでベースアドレスレジスタ77
からベースアドレスの値を読み込む。そして、DXMA
U60からのリード信号RDを受けて、読み込んだベー
スアドレスの値に対して、順次インクリメントした値を
ロードアドレスadrsとしてアドレス比較部84に出
力する。
生成部79から得るロードアドレスadrsと、リミッ
トアドレスレジスタ78から得るリミットアドレスLI
Mの値を比較する。比較の結果、adrs≦LIMであ
ればアドレス比較部84は、リード信号RDがPLC7
0bに入力するタイミングで、ROM80からブロック
プログラムを読み込むための指示信号ReadenをR
OM80に対して発信する。そして、ROM80におい
て、ロードアドレスadrsが示すメモリ領域にあるブ
ロックプログラムがラッチ部76を介してDXMAU6
0に与えられる。
ばアドレス比較部84は、ロードアドレスadrsが示
すメモリ領域が、ROM80内で予め設定されたプログ
ラムが読み出されるメモリ領域以外にあることを認識
し、信号Readenを発生させない。図20は、DD
MAU90の第一構成例であるDDMAU90aを示す
図である。
は、プログラムカウンタ監視型であり、バンクカウンタ
91、データメモリのベースアドレス計算部92、プロ
グラムカウンタ比較部93、アドレス生成部94、プロ
グラムメモリのベースアドレス計算部95、R/W信号
生成部96、逓倍回路97及び反転回路98を有する。
ベースアドレス計算部95は、XBAS、XBNK、K
の値からベースアドレスXBAS+XBNK×(K+
1)を算出し、プログラムカウンタ比較部93に与え
る。ベースアドレス計算部92は、DBAS、DBN
K、Kの値からベースアドレスDBAS+DBNK×K
を算出しアドレス生成部94に与える。
S、XBAS+XBNK×(K+1)、PCの値に基づ
き、PCとXBAS+XBNK×(K+1)との比較演
算を行う。比較演算の結果、PC>XBAS+XBNK
×(K+1)の場合、プログラムカウンタ比較部93
は、DXMAU60と同様にDBNK分の長さだけイン
クリメントイネーブル信号incenを出力することで
アドレス生成部94にDBNK単位のデータの書き換え
をさせる。
インクリメントイネーブル信号incenをDBNK分
の長さだけ出力した後、インクリメント信号incを出
力してバンクカウンタ91のKの値を1つ増加させる。
アドレス生成部94は、上記インクリメントイネーブル
信号incenに基づいて、ベースアドレスDBAS+
DBNK×Kに対するオフセットアドレスを生成し、先
のベースアドレスDBAS+DBNK×Kと加算して、
データメモリRAM30へのアクセスポインタrwpを
生成する。
リメントイネーブル信号incenからデータメモリで
あるRAM30へのロード信号LDを生成して、逓倍回
路97に与える。アドレス生成部94は、アクセスポイ
ンタrwpがDLIMよりも大きくなると、RAM30
のメモリ領域の全バンクのワークデータの書き換えを終
了したと判断して、バンクカウンタ91及びプログラム
カウンタ比較部93にリセット信号rstを送り、整数
変数Kの値をゼロにリセットする。
ワークデータをデータブロック単位でデータメモリにロ
ードするだけでなく、ワークデータをPDLC100を
介してERAM110へストアさせる機能も有する。従
って、DDMAU90は、ワークデータの書き換えのタ
イミングを決めるロード信号LDの周期を2分割し、ワ
ークデータをストアするフェーズとロードするフェーズ
を設定している。このデータをストアするフェーズと、
ロードするフェーズを設定する機能を有するのが逓倍回
路97とリード/ライト(R/W)信号生成部96であ
る。
30に対するリード/ライト信号R/Wと、DSP10
外部のデータメモリであるERAM110に対するリー
ド/ライト信号R/Wとは論理的に反転させる必要があ
る。そのためにDDMAU90aに反転回路98が設け
られている。図21は、DDMAU90aから発生され
るロード信号LDと、リード/ライト信号R/Wとの関
係を示すタイミング図である。図21に示すように、ロ
ード信号LDが発生している時は、リード(Read)
又はライト(Write)信号が発生している。
あるDDMAU90bを示す図である。図22に示すよ
うに、DDMAU90bは、アクセスポインタ監視型で
あり、DDMAU90Aが有するプログラムカウンタ比
較部93の代わりにアクセスポインタAPと、ベースア
ドレスDBAS+DBNK×Kとを比較するアドレスポ
インタ比較部99が設けられている。他の構成は、DD
MAU90aと同様なのでその説明を省略する。
るPDLC100aを示す図である。図23に示すよう
に、PDLC100aは、ロードテーブル部103a、
ストアテーブル部103b、ベースアドレス部104
a、104b、アドレス生成部105a、105b、ラ
ッチ部106a、106b及び多重化部107を有す
る。
ブル102を有する。ロードテーブル102の内容は、
制御バスCtrl Busからの信号で読み出される。
また、ストアテーブル部103bは、ストアテーブル1
01を有する。このストアテーブル101は、ロードテ
ーブル部103aから受け取るロードテーブル102の
内容に基づいて作成される。ストアテーブル101は、
ロードテーブル102の内容を1フェーズずつずらして
作成されたものである。
は、ベースアドレス部74に送られる。ベースアドレス
部104aでは、ワークデータを読み出す際に外部メモ
リであるERAM110内のメモリ領域を特定するワー
クデータロード用のベースアドレスが、ロードテーブル
102の内容に基づいて生成される。ワークデータロー
ド用のベースアドレスの生成は、単位処理に要する時間
に同期したマスターフレームクロック信号MFCをN分
周した信号MFC/Nのタイミングに合わせて行われ
る。
ータをストアする際にERAM110内のメモリ領域を
特定するワークデータストア用のベースアドレスがスト
アテーブル部103bから与えられるストアテーブル1
01の内容に基づいて生成される。このワークデータス
トア用のベースアドレスの生成も前述の信号MFC/N
のタイミングに合わせて行われる。
成されたベースアドレスは、それぞれアドレス生成部1
05a、105bに入力される。既述のように、DDM
AU90からPDLC100aに与えられるロード信号
LDは、ワークデータをストアするフェーズとロードす
るフェーズとに周期が2分割されている。このロード信
号LDは、PDLC100a内で2分周され、アドレス
生成部105a、105bのインクリメント信号とな
る。
て、前記インクリメント信号に基づいて生成されるオフ
セットアドレスとベースアドレスは加算され、ERAM
110に対するロードアドレス及びストアアドレスとし
て多重化部107に入力される。そして、多重化部10
7は、ロードアドレスとストアアドレスとを時分割多重
化して、ERAM110に対するアドレスを生成する。
このアドレスが示すERAM110内のメモリ領域から
ワークデータはロード及びストアされる。
力されたワークデータは、リード/ライト信号R/Wか
ら作ったゲート信号でデータバスをラッチしてDDMA
U90に与えられる。図24は、PDLC100の第二
構成であるPDLC100bを示す図である。
は、アドレス生成部105a、105b、ラッチ部10
6a、106b、多重化部107、ベースアドレスレジ
スタ108a、108c、リミットアドレスレジスタ1
08b、108d及びアドレス比較部109を有する。
ここで、アドレス生成部105a、105b、ラッチ部
106a、106b、多重化部107は、PDLC10
0aと同様のものであり、その説明を省略する。
スアドレス、リミットアドレス及びストアデータのベー
スアドレス、リミットアドレスを制御バスCtrl B
usからの信号で与えられる。各アドレスは、それぞれ
ベースアドレスレジスタ108a、リミットアドレスレ
ジスタ108b、ベースアドレスレジスタ108c、リ
ミットアドレスレジスタ108dに格納される。
リミットアドレスは、DDMAU90へ転送されるワー
クデータのERAM110における先頭アドレスと最終
アドレスを示し、ストアデータのベースアドレスとリミ
ットアドレスは、DDMAU90から転送されてくるワ
ークデータのERAM110における先頭アドレスと最
終アドレスを示す。
FC/Nに基づきベースアドレスレジスタ108aの値
を読み込む。そして、ワークデータのロード/ストアの
タイミングを示すロード信号LDを2分周したタイミン
グで、読み込んだ値を順次インクリメントし、ロードア
ドレスとして出力する。ロードアドレス生成部105a
は、前記ロードアドレスがERAM110におけるロー
ドデータの最終アドレスを越えた場合は、フラグlov
flgを立てる。
トアアドレス生成部105bは、信号MFC/Nに基づ
きベースアドレスレジスタ108cの値を読み込む。そ
して、ワークデータのロード/ストアのタイミングを示
すロード信号LDを2分周したタイミングで、読み込ん
だ値を順次インクリメントし、ストアアドレスとして出
力する。ストアアドレス生成部105bは、前記ストア
アドレスがERAM110におけるストアデータの最終
アドレスを越えた場合は、フラグsovflgを立て
る。ここで、ロードアドレスとストアアドレスは、ロー
ド信号LDを基準クロックとして多重化部107から交
互に出力されるものである。
のタイミングでリミットアドレスレジスタ108bから
ロードデータのリミットアドレスを読み込み、リミット
アドレスレジスタ108dからストアデータのリミット
アドレスを読み込む。そして、アドレス比較部109
は、多重化部107から与えられるアドレスadrsが
ロードアドレスとストアアドレスのどちらであるかをリ
ード/ライト信号R/Wに基づき判断する。
に与えられるアドレスadrsがロードアドレスの場
合、当該アドレスadrsは、ロードデータのリミット
アドレスLIM1と比較される。そして、adrs≦L
IM1であれば、アドレス比較部109は、ロード信号
LDのタイミングでロードイネーブル信号LDenを出
力する。adrs>LIM1又はフラグlovflgが
立っている場合、アドレス比較部109は、ロードイネ
ーブル信号LDenを出力しない。
に与えられるアドレスadrsがストアアドレスの場
合、当該アドレスadrsは、ストアデータのリミット
アドレスLIM2と比較される。そして、adrs≦L
IM2であれば、アドレス比較部109は、ロード信号
LDのタイミングでロードイネーブル信号LDenを出
力する。adrs>LIM2又はフラグsovflgが
立っている場合、アドレス比較部109は、ロードイネ
ーブル信号LDenを出力しない。
のロードを指示した時は、多重化部107から出力され
るアドレスadrsが示すERAM110のメモリ領域
にあるワークデータが、信号LD&NOT(R/W)を
クロックとしてラッチ部106Bを介してDDMAU9
0に与えられる。また、リード/ライト信号R/Wがデ
ータのストアを指示した時は、DDMAU90から転送
されてきたストアデータが、信号LD&R/Wをクロッ
クとしてラッチ部106aを介して多重化部107が出
力するアドレスadrsが示すERAM110のメモリ
領域にストアされる。
ることにより、ERAM110において、ワークデータ
をロード/ストアするメモリ領域は固定されずにフェー
ズ毎に外部からワークデータの先頭アドレスと最終アド
レスが決定される。従って、フェーズ毎にCODEC2
が必要とするデータサイズが異なる場合、必要に応じて
メモリ領域を指定することで、ERAM110のメモリ
容量を必要最小限に抑えることができる。
10Bがデータ処理部に対応し、RAM40がプログラ
ムメモリに対応し、RAM30がデータメモリに対応す
る。また、DSPコア50がプログラム実行部に対応
し、DXMAU60がプログラム更新部に対応し、PL
C70がブロックプログラム取得部に対応する。また、
ロードテーブル71が第一のロードテーブルに対応し、
DDMAU90がデータ更新部に対応し、PDLC10
0がデータブロック取得部に対応する。更に、ロードテ
ーブル102が第二のロードテーブルに対応し、ROM
80、81、DPRAM82、外部記憶装置83が第一
の外部メモリに対応し、ERAM110が第二の外部メ
モリに対応する。
メモリ容量の制約を受けずに複数のアルゴリズム処理を
連続して行うことのできるDSPを有するコーデックを
提供することができる。
構成図である。
ある。
CとROM80からロードされるプログラムの関係を示
したタイミング図である。
M80からロードされるブロックプログラムの関係を示
したタイミング図である。
示す図である。
置83が接続された様子を示す図である。
構成図である。
ある。
M80からロードされるプログラムとERAM110か
らロードされるワークデータの関係を示したタイミング
図である。
ル用のプログラム実行時に使用されるワークデータの関
係を示したタイミング図である。
M40の構成を示す図である。
めの図である。
40を有するDSP10Aの全体構成図である。
のスワップ処理の流れを示すフローチャートである。
レスが設定された構成のDSP10Aを示す図である。
を示す図である。
を示す図である。
U90aを示す図である。
LDとリード/ライト信号との関係を示すタイミング図
である。
U90bを示す図である。
100aを示す図である。
100bを示す図である。
の動作を説明するための図である。
Claims (10)
- 【請求項1】 デジタル信号の符号化/復号化処理を行
うデータ処理部を有するコーデックにおいて、 前記データ処理部は、1つのプログラムを分割したブロ
ックプログラム単位でプログラムを格納するプログラム
メモリと、 ブロックプログラムの実行時に使用するデータを、1つ
のデータを分割したデータブロック単位で格納するデー
タメモリと、 前記データメモリに格納されたデータブロックを用いて
前記プログラムメモリに格納されたブロックプログラム
の実行を行うプログラム実行部と、 前記プログラム実行部による1つのブロックプログラム
の実行終了毎に、外部から新たにブロックプログラムを
取得し、当該ブロックプログラムを前記プログラムメモ
リに格納するプログラム更新部とを有することを特徴と
するコーデック。 - 【請求項2】 請求項1記載のコーデックにおいて、 前記プログラムメモリは、バンク毎に1つのブロックプ
ログラムを格納しており、所定の順序で選択される1つ
のバンク内のブロックプログラムが順次プログラム実行
部によって実行されることを特徴とするコーデック。 - 【請求項3】 請求項1又は2記載のコーデックにおい
て、 前記データメモリは、バンク毎に1つのデータブロック
を格納しており、前記プログラム実行部によるブロック
プログラムの実行毎に、所定の順序で選択される1つの
バンク内のデータブロックが順次使用されることを特徴
とするコーデック。 - 【請求項4】 請求項1乃至3何れか1項記載のコーデ
ックにおいて、 前記プログラム更新部は、外部から新たに取得したブロ
ックプログラムを、実行の終了したブロックプログラム
が格納されていた前記プログラムメモリのバンクに格納
することを特徴とするコーデック。 - 【請求項5】 請求項1乃至4何れか1項記載のコーデ
ックにおいて、 前記データ処理部は、更に前記プログラム実行部による
1つのブロックプログラムの実行終了毎に、前記データ
処理部の外部にある第一の外部メモリから新たにブロッ
クプログラムを取得し、当該ブロックプログラムを前記
プログラム更新部に与えるブロックプログラム取得部を
有することを特徴とするコーデック。 - 【請求項6】 請求項5記載のコーデックにおいて、 前記ブロックプログラム取得部は、プログラム処理のフ
ェーズと前記第一の外部メモリから取得するプログラム
との関係を記録した第一のロードテーブルを有し、前記
第一のロードテーブルに基づいて前記第一の外部メモリ
からブロックプログラムを取得することを特徴とするコ
ーデック。 - 【請求項7】 請求項1乃至6何れか1項記載のコーデ
ックにおいて、 前記データ処理部は、更に前記プログラム実行部による
1つのブロックプログラムの実行終了毎に、外部から新
たにデータブロックを取得し、当該データブロックを前
記データメモリに格納するデータ更新部を有することを
特徴とするコーデック。 - 【請求項8】 請求項7記載のコーデックにおいて、 前記データ処理部は、更に前記プログラム実行部による
1つのブロックプログラムの実行終了毎に、前記データ
処理部の外部にある第二の外部メモリから新たにデータ
ブロックを取得し、当該データブロックを前記データ更
新部に与えるデータブロック取得部を有することを特徴
とするコーデック。 - 【請求項9】 請求項8記載のコーデックにおいて、 前記データブロック取得部は、プログラム処理のフェー
ズと前記データメモリから前記第二の外部メモリへ戻す
データとの関係を記録したストアテーブルと、プログラ
ム処理のフェーズと前記第二の外部メモリから取得する
データとの関係を記録した第二のロードテーブルとを有
し、前記ストアテーブルに基づいて前記データメモリか
ら前記第二の外部メモリへ使用されたデータブロックを
戻し、前記第二のロードテーブルに基づいて前記第二の
外部メモリから新たなデータブロックを取得することを
特徴とするコーデック。 - 【請求項10】 請求項6又は9記載のコーデックにお
いて、 前記第一及び第二のロードテーブルと前記ストアテーブ
ルの内容は、書き換え可能な構成であることを特徴とす
るコーデック。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11550598A JP3407859B2 (ja) | 1998-04-24 | 1998-04-24 | コーデック |
US09/257,788 US6201488B1 (en) | 1998-04-24 | 1999-02-25 | CODEC for consecutively performing a plurality of algorithms |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11550598A JP3407859B2 (ja) | 1998-04-24 | 1998-04-24 | コーデック |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11308114A true JPH11308114A (ja) | 1999-11-05 |
JP3407859B2 JP3407859B2 (ja) | 2003-05-19 |
Family
ID=14664191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11550598A Expired - Fee Related JP3407859B2 (ja) | 1998-04-24 | 1998-04-24 | コーデック |
Country Status (2)
Country | Link |
---|---|
US (1) | US6201488B1 (ja) |
JP (1) | JP3407859B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002190990A (ja) * | 2000-12-22 | 2002-07-05 | Matsushita Electric Ind Co Ltd | 映像信号処理装置 |
JP2010538376A (ja) * | 2007-09-01 | 2010-12-09 | ディーツーオーディオ コーポレーション | ハイ・デフィニッション・オーディオ・バスを介したコーデックプロセッサを起動するシステムと方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6779176B1 (en) * | 1999-12-13 | 2004-08-17 | General Electric Company | Methods and apparatus for updating electronic system programs and program blocks during substantially continued system execution |
JP2003167751A (ja) * | 2001-04-24 | 2003-06-13 | Ricoh Co Ltd | プロセッサ処理方法およびプロセッサシステム |
WO2003081423A1 (en) * | 2002-03-22 | 2003-10-02 | Telefonaktiebolaget Lm Ericsson | Method for processing data streams divided into a plurality of process steps |
US7076616B2 (en) | 2003-03-24 | 2006-07-11 | Sony Corporation | Application pre-launch to reduce user interface latency |
WO2005076481A1 (ja) * | 2004-02-10 | 2005-08-18 | Matsushita Electric Industrial Co., Ltd. | 符号化復号化装置 |
US20070150082A1 (en) * | 2005-12-27 | 2007-06-28 | Avera Technology Ltd. | Method, mechanism, implementation, and system of real time listen-sing-record STAR karaoke entertainment (STAR "Sing Through And Record") |
US11106463B2 (en) * | 2019-05-24 | 2021-08-31 | Texas Instruments Incorporated | System and method for addressing data in memory |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2577071B2 (ja) | 1988-12-16 | 1997-01-29 | 三菱電機株式会社 | ディジタル信号処理プロセッサ |
JPH0468459A (ja) | 1990-07-09 | 1992-03-04 | Mitsubishi Electric Corp | ディジタル信号処理装置 |
JP3776449B2 (ja) * | 1992-12-23 | 2006-05-17 | セントル エレクトロニク オルロジェール ソシエテ アノニム | マルチタスク低電力制御装置 |
-
1998
- 1998-04-24 JP JP11550598A patent/JP3407859B2/ja not_active Expired - Fee Related
-
1999
- 1999-02-25 US US09/257,788 patent/US6201488B1/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002190990A (ja) * | 2000-12-22 | 2002-07-05 | Matsushita Electric Ind Co Ltd | 映像信号処理装置 |
JP2010538376A (ja) * | 2007-09-01 | 2010-12-09 | ディーツーオーディオ コーポレーション | ハイ・デフィニッション・オーディオ・バスを介したコーデックプロセッサを起動するシステムと方法 |
Also Published As
Publication number | Publication date |
---|---|
US6201488B1 (en) | 2001-03-13 |
JP3407859B2 (ja) | 2003-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4820566B2 (ja) | メモリアクセス制御回路 | |
US8832350B2 (en) | Method and apparatus for efficient memory bank utilization in multi-threaded packet processors | |
US20020078125A1 (en) | Information processing method and recording medium | |
US8149643B2 (en) | Memory device and method | |
JP2010102715A (ja) | ディスクベースのファイルシステムのための大きなブロック割当て | |
US8850084B2 (en) | Data processing systems for audio signals and methods of operating same | |
JP2001350713A (ja) | 転送制御装置 | |
JP3407859B2 (ja) | コーデック | |
US8612981B2 (en) | Task distribution method | |
US11721373B2 (en) | Shared multi-port memory from single port | |
JP3608804B2 (ja) | バス制御装置 | |
JPH07181969A (ja) | コードセグメント置換装置及びそれを用いたリアルタイム信号処理システム並びにオーディオ処理システム | |
US5892170A (en) | Musical tone generation apparatus using high-speed bus for data transfer in waveform memory | |
US5918302A (en) | Digital sound-producing integrated circuit with virtual cache | |
JP2005182538A (ja) | データ転送装置 | |
JP2004199608A (ja) | メモリ制御回路 | |
JP2008269348A (ja) | メモリ制御装置およびメモリ制御方法 | |
JP3567768B2 (ja) | ロングストリーム再生機能を有する再生装置 | |
JPH01284926A (ja) | 演算装置の命令読出方式 | |
JP2020173609A (ja) | ベクトルプロセッサ装置、生成方法及びプログラム | |
JP2007200025A (ja) | データ処理システム、アクセス制御方法、その装置およびそのプログラム | |
JP2001344150A (ja) | アクセス制御回路 | |
JP2000148660A (ja) | Dmaデータ転送方法および装置 | |
JP2003296105A (ja) | データ処理装置 | |
JPH0697772A (ja) | デジタル・フィルタの演算データの遅延方法及び 装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20030225 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080314 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090314 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100314 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100314 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110314 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110314 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120314 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |