JPH07175781A - ディジタル信号処理プロセッサ - Google Patents

ディジタル信号処理プロセッサ

Info

Publication number
JPH07175781A
JPH07175781A JP6224915A JP22491594A JPH07175781A JP H07175781 A JPH07175781 A JP H07175781A JP 6224915 A JP6224915 A JP 6224915A JP 22491594 A JP22491594 A JP 22491594A JP H07175781 A JPH07175781 A JP H07175781A
Authority
JP
Japan
Prior art keywords
data
host
register
transfer
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.)
Pending
Application number
JP6224915A
Other languages
English (en)
Inventor
Toru Umaji
徹 馬路
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
Publication of JPH07175781A publication Critical patent/JPH07175781A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer

Abstract

(57)【要約】 【目的】 周辺およびホストのデータ転送要求を迅速に
処理し、また、ホスト・インタフェースをもたらす、D
SPチップに内蔵のオンチップDMACならびに、その
DMACを内蔵したシングルチップDSPを提供する。 【構成】 DSP1100のメモリ・マップされた資源
として、オンチップ・プログラム・メモリ1400、オ
ンチップ・データ・メモリ1900、オンチップ・レジ
スタ、メモリ・マップされた外部メモリおよび周辺装置
が含まれる。本DMAC3000は、本来のデータ転送
の他に2つの割込みデータ転送を処理するためのアドレ
ス・レジスタおよび反復回数レジスタを個別に有する。
反復回数レジスタおよびアドレス・レジスタは、1つの
減数器と1つのアドレス計算回路をそれぞれ共有する。
DMACはホスト・コンピュータ1200および周辺装
置からの割込みを処理する専用の割込みコントローラを
有する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、外部のホスト・プロセ
ッサへのインタフェース、周辺I/O(入出力)装置に
対する幾つかのオンチップ・インタフェース、外部メモ
リへのオンチップ並列インタフェース、オンチップ・デ
ータ・メモリ、オンチップ命令メモリおよび複数のバス
を有するDSP(ディジタル信号処理プロセッサ)であ
って、更に、DSPチップ上に内蔵のオンチップDMA
(ダイレクト・メモリ・アクセス)コントローラ(DM
AC)を設けたシングルチップDSPに関する。
【0002】
【従来の技術】データ処理システムにおいては、一般に
2種類のデータ転送がある。その第一は、メモリと中央
処理装置(CPU)との間のデータおよび命令の転送で
あり、その第二には、周辺I/O装置とメモリとの間お
よびメモリ間のデータ転送がある。データ処理システム
は、これらの転送を2つの方法のうちのいずれか一方で
処理する。即ち、 (1)CPUがすべてのデータ転送を管理できる。これ
は、CPUへのデータ転送またはCPUからのデータ転
送を伴う場合には、勿論、必要である。
【0003】(2)CPUがデータ処理の作業をし続け
ている間は、DMA(ダイレクト・メモリ・アクセス)
コントローラを用いて、データ転送を管理することがで
きる。このため、データ転送の動作制御にはCPUの時
間は殆ど使われない。
【0004】DMAコントローラ(DMAC)を有する
ディジタル信号処理プロセッサはあるが、従来のデータ
処理システムでは、CPUチップ上にDMACを備えた
ものはない。さらに、従来のデータ処理システムでは、
DMACで管理される殆どの構成要素は、CPUチップ
から離れて配置される。このため、殆どのDMA転送
は、比較的低速の外部バスで行われるので、時間が掛か
り、DMAバスおよびそれぞれの周辺装置によって与え
られる種々のバス・インタフェースの速度によって制限
される。
【0005】
【発明が解決しようとする課題】よって、本発明の一つ
の目的は、DMACの性能およびデータ転送速度を向上
させることである。この目的は、メモリ、周辺インタフ
ェースおよびDMAコントローラを含む、可能な限り多
くの機能をチップに載せることによって部分的に達成さ
れる。このDMACは、DSPの中心部と連携して動作
し、メモリおよび種々の入出力(I/O)周辺装置を含
むDSPのメモリ・マップされた資源の間のローカルな
データ転送を可能にし、且つホストおよび周辺装置のデ
ータ転送要求を受け付ける。
【0006】これらの機能の幾つかを実現するために、
既存のDMACは、DMA転送に専用のバスを与えて、
データを転送する周辺I/O装置からの割込みに応答し
ている。しかし、これらのDMACは何れも、周辺割込
みを処理するためにローカルなDMA(例えば、メモリ
間のデータ転送)に割り込むこともなければ、周辺割込
みに対して専用のポインタやカウンタを提供することも
ない。このため、現在のチップに内蔵された(即ちオン
チップ(on−chip))DMACによる周辺割込み
の処理は最適とは言えない。同様に、既存のDMAC
で、ローカルなDMA動作の最中に(データ転送の要求
またはコマンドのための)ホストの割込みに応答した
り、ホストのデータ転送を極力効率化するために専用の
レジスタを提供するものはない。要するに、ホストによ
るDSPコマンドの発行やブートROMによる独立型の
(スタンド・アロン)DSPへのプログラムおよびデー
タのダウンロードを可能とするホスト・インタフェース
を既存のDMACは提供していない。このようなホスト
機能をDMACに集積していないため、そのようなホス
ト機能なしで済ませるか、どこかに余分なハードウェア
をわざわざ設けなければならないことになる。
【0007】したがって、本発明の目的は、DSPと連
携して動作し、周辺およびホストのデータ転送要求を迅
速に処理し、また、オンチップ・ハードウェアの最小化
を目的としてホスト・インタフェースをもたらす、DS
P内蔵のオンチップDMACを提供することにある。
【0008】また、本発明の具体的な目的は、次のもの
を提供することである。
【0009】即ち、ローカルなDMA転送中のホストお
よび周辺のデータ転送;周辺の各割込みに対する専用の
ポインタおよびカウンタ;ホストの割込みの専用ポイン
タ;DMACハードウェアを用いるホスト・インタフェ
ース機能;強力なホスト・コマンドおよび全メモリ資源
へのアクセス能力;および独立型のDSPをバイト構成
のROMからブート(起動)する能力
【0010】
【課題を解決するための手段】本発明の前記およびその
他の目的は、メモリ・マップされた資源およびチップ上
のダイレクト・メモリ・アクセス・コントローラ(DM
AC)を含むシングルチップ・ディジタル信号処理プロ
セッサ(DSP)によって達成される。DSPのメモリ
・マップされた資源には、オンチップ・プログラム・メ
モリ(命令メモリ)、オンチップ・データ・メモリ、内
部レジスタ、メモリ空間に割り当てられた外部メモリお
よび周辺装置が含まれる。DMACには、本来のデータ
転送および2つの割込みデータ転送をそれぞれ処理する
アドレス用と計数用のレジスタが個別に含まれる。計数
レジスタ(回数レジスタ、カウンタとも称する)は、す
べて一つの減数器を共有し、アドレス・レジスタも、す
べて一つのアドレス算出回路を共有する。また、DMA
Cは、ホスト・コンピュータおよび周辺装置からの割込
みを処理する専用の割込みコントローラも有する。
【0011】DMACは、本来のDMA転送を行う一方
で、アドレス・レジスタと計数レジスタとの情報をメモ
リのスタック領域に格納することを必要とすることな
く、ホストと2つの周辺装置からの割込みを受信し処理
することができる。これにより、DMACは、本来のD
MA転送から割込みによるDMA転送への切換およびそ
の逆の切換が、レジスタ内容のメモリ・スタック領域へ
の待避および復活に伴う「間接処理」のために命令サイ
クルを一切用いることなく、可能である。
【0012】また、DMACが、ホスト・コンピュータ
・インタフェースも備えることにより、ホスト・コンピ
ュータが、(A)DSPのメモリ・マップされた資源と
の間のデータ転送を開始するリード、ライト、およびD
MAのコマンド、(B)DSPの動作モードを実行、休
止およびソフトウェア待機の何れかに設定するコマン
ド、(C)DSPを既知の状態とする全体リセットを行
うコマンド、および(D)DSPコアに単一命令を実行
させるコマンドをDMACに送ることができるようにな
る。
【0013】また、DMACのホスト・インタフェース
が、バイト構成のブートROMに接続されるように設計
されており、さらにDMACがブート・シーケンサを持
っているので、ブートROMがホスト・インタフェース
に接続されていてDSPがリセットされた場合は、何時
でもブート・プログラムがROMからDMACチップ上
の命令メモリに自動的にロードされる。
【0014】本発明のその他の目的ならびに特徴は以下
の詳細な説明ならびに特許請求の範囲において、表なら
びに添付の図面と共に考慮することにより一層容易に明
らかにされる。
【0015】
【実施例】以下、本発明を図1〜図24に示す実施例に
基づいて詳細に説明する。これらの図において、同様の
構成要素は同様の数字で表記する。
【0016】DSPのアーキテクチャ(概念構造) 図1は、 ディジタル信号処理プロセッサ(DSP)1
100およびホストのマイクロプロセッサ(以降、単に
「ホスト」とも言う)1200を有するデータ処理シス
テム1000を示す。DSP1100は、ハーバード・
アーキテクチャを有しており、データおよび命令のため
の別個の24ビット内部バス、即ち、Xデータ・バス
(XD)1102、Yデータ・バス(YD)1104、
DMAデータ・バス(DD)1106およびPC命令バ
ス(INST)1114を備えている。XD1102、
YD1104、DD1106およびINST1114の
各バスを介して転送される24ビットのデータおよび命
令は、18ビットの内部アドレス・バス、Xアドレス・
バス(XA)1108、Yアドレス・バス(YA)11
10、DMACアドレス・バス(DA)1112および
PCアドレス・バス(PC)1116上にそれぞれ出さ
れるアドレスでアクセスされる。XD1102、YD1
104およびINST1114バス上での転送は、DS
Pコア3500の制御下にあり、DSPコアだけがバス
XA1108、YA1110およびPC1116へポイ
ンタを出すことができる。一方、DD1106上の転送
は、ダイレクト・メモリ・アクセス・コントローラ(D
MAC)3000がバスDA1112へポインタを出す
ことによって制御される。DSPコア3500には、プ
ログラム制御ユニット1500、演算ユニット1700
およびアドレス・ユニット1800が含まれる。
【0017】この複数のデータ・バスによって、チップ
上のプロセッサ(DSPコア3500およびDMAC3
00)とDSPの記憶資源(データ・メモリ1900、
命令メモリ1400、外部メモリ2500およびチップ
外の周辺装置2300)との間の同時的な多重データ転
送が可能となる。これらの記憶資源は、複数のデータ・
バスにより次のように結合される。
【0018】 DSPコア3500への DMAC3000への 記憶資源 結合を行うバス 結合を行うバス −−−−−−−− −−−−−−−−−−−− −−−−−−−−−−− テ゛ータ・メモリ1900 XDとXA,YDとYA DDとDA 命令メモリ1400 INSTとPC DDとDA 外部メモリ2500 XDとXA,YDとYA DDとDA INSTとPC 周辺装置 インタフェース2200 XDとXA,YDとYA DDとDA 図1に示したように、XD1102とXA1108、Y
D1104とYA1110を介してDSPコア3500
に結合される記憶資源は、データ・メモリ1900、周
辺装置インタフェース(PDI)2200(外部周辺装
置2300のアクセス用)、およびパラレル・メモリ・
インタフェース4000(外部メモリ2500のアクセ
ス用)である。さらに、DMAC3000は、バスXD
1102にも結合されるので、DSPコア3500とD
MAC3000との間の直接転送が可能となる。DMA
C3000は、バスDD1106およびDA1112を
介してデータ・メモリ1900、命令メモリ1400、
パラレル・メモリ・インタフェース4000および周辺
装置インタフェース2200に結合される。PC命令バ
ス(INST)1114およびPCアドレス・バス(P
C)1116は、DSPコア3500を命令メモリ14
00およびパラレル・メモリ・インタフェース4000
に結合する際に使用される。
【0019】図1によれば、DMAC3000は、バス
XD1102を介してDSPコア3500にも接続され
ているので、チップ上の2つのプロセッサ間の直接転送
が可能となる。また、DMAC3000がバスDA11
12上に乗せたポインタ、またはDSPコア3500が
バスXA1108、YA1110もしくはPC1116
上に乗せたポインタは、何れも並列アービタ2100に
よって受信される。並列アービタ2100は、これらの
アドレス・バスを監視することにより、(記憶資源がす
べて単一のポートしか持っていない場合で)単一ポート
メモリ装置に対し複数のバスによって同時にアクセスし
ようとした場合に発生するメモリ・アクセスの競合を調
停することができる。並列アービタ2100を図2に示
し、以下に詳細に述べる。
【0020】並列アービタ 本DSP1100において、レジスタ、内部メモリ、外
部メモリ、周辺装置への内部インタフェースなどを含む
事実上すべての資源が「メモリ空間に割り当てられてい
る(メモリ・マップされている)」ので、これらの各資
源は、予め定義された独自のアドレスを持つことにな
る。DMAC3000とDSPコア3500は独立に、
殆どの内部レジスタの他、外部メモリ2500、命令メ
モリ1400、周辺装置2300、またはデータ・メモ
リ1900における殆どすべてのメモリ・マップされた
位置にアクセスすることができる。また、すべてのDS
P資源をメモリ空間に割り当てることで、DSP110
0により、すべてのメモリ・マップされた資源にホスト
・プロセッサ1200がアクセスできるようになる。
【0021】さらに、既に述べたように、これらの記憶
資源は、すべて単一ポートを有し、各記憶資源は、DM
AC3000(バスDA1112を経由)およびDSP
コア3500(XA1108、YA1110またはPC
1116の少なくとも1つを経由)によって同時にアク
セスすることができる。この結果、本DSPでは、次の
ようなメモリ・アクセスの競合が発生しうる。
【0022】ページの競合:データ・メモリ1900
は、4ページ(P0、P1、P2、P3)からなり、各
ページは、DSPコア3500(Xアドレス・バス11
08およびYアドレス・バス1110を経由)およびD
MAアドレス・バス1112(DMAC3000の制御
下にある)によって別々にアクセスすることができる。
ページの競合は、バスXA1108、YA1110また
はDA1112のポインタの中の2つ以上が同じメモリ
・ページをアクセスする場合に起こる。
【0023】外部アクセスの競合:XAバス1108、
YAバス1110(DSPコア3500の制御によって
制御される)、DAバス1112(DMAC3000の
制御下にある)、またはPCバス1116上のポインタ
の中の2つ以上が、外部メモリ2500を同時にアクセ
スする。
【0024】周辺アクセスの競合:XAバス1108ま
たはYAバス1110(DSPコア3500により制
御)またはDAバス1112(DMACの制御下)の上
のポインタの中の2つ以上が、周辺装置インタフェース
2200を介して周辺装置2300をアクセスする。
【0025】命令メモリの競合:PCバス1116また
はDAバス1112の上のポインタの中、2つ以上が、
チップ上の命令メモリ1400を同時にアクセスする。
【0026】並列アービタ2100は、これらの競合を
解消するため、アドレス・バスXA1108、YA11
10、DA1112およびPC1116上に置かれたす
べてのメモリ・ポインタをモニター・デコードして、前
記競合の発生を検出して、固定の優先順位によってバス
・アクセス権を与える。この設計には、単一ポート・メ
モリへの多重バス・インタフェースを扱うのに必要な制
御論理の複雑度を大幅に単純化しながらも、DSPコア
3500およびDMAC3000が必要に応じて記憶資
源を独自にアクセスすることを許すという2つの長所が
ある。
【0027】図2において、並列アービタ2100は、
前記競合の1つをそれぞれ調停する4個の調停ブロッ
ク、即ち、PGA2102(ページ・アービタ、即ち
(オンチップ・)データ・メモリ・ページ・アービ
タ)、EA2104(外部メモリ・アービタ)、PRA
2106(周辺アービタ)およびIA2108(オンチ
ップ命令メモリ・アービタ)から成る。これらの各アー
ビタは、対応する記憶資源へのアクセスを可能にするア
ドレス・バスから入力を受け取る。したがって、PGA
2102は、バスXA1108、YA1110およびD
A1112から入力を受信し;EA2104は、バスX
A1108、YA1110、DA1112およびPC1
116から;PRA2106は、バスXA1108、Y
A1110およびDA1112から;そして、IA21
08は、バスDA1112およびPC1116からそれ
ぞれ受信する。また、調停ブロックPGA2102、E
A2104、PRA2106およびIA2108は、バ
ス・イネーブル信号XABUSE、YABUSE、DA
BUSEおよびPCBUSEも受信する。これらの信号
は、活性化されると、それぞれXA1108、YA11
10、DA1112またはPC1116のアドレス・バ
スを介してDSPコア3500またはDMAC3000
がメモリにアクセスしようとしていることを示す。
【0028】PGA2102、EA2104、PRA2
106およびIA2108の各調停ブロックは、前記バ
ス上のアドレスを解読することによりメモリ・アクセス
の競合を検出し、記憶資源へのバス選択信号を生成する
とともに、延期信号を生成して、チップ上のプロセッサ
(DMAC3000およびDSPコア3500)が競合
中のバス・アクセスを試みるのを遅らせる。
【0029】DSPコア3500への延期信号は、PG
STALL(PGAより)、EASTALL(EAよ
り)、PRSTALL(PRAより)およびIASTA
LL(IAより)であり、これらをORゲート2110
で集め、その出力PASTALLをDSPコアに与え
る。DMAC3000への延期信号は、PGDSTAL
L(PGAより)、EADSTALL(EAより)、P
RDSTALL(PRAより)およびIADSTALL
(IAより)であり、これらをORゲート2112で集
め、その出力PADSTALLをDMACに与える。
【0030】調停は、調停ブロックにおいて以下の規則
により進行する。
【0031】規則1:調停は、アクセス優先度に基づ
く。2つ以上のアドレス・ポインタが、同じメモリ資源
または外部/周辺ポートにアクセスする場合、次のアク
セス順位表に基づいてアクセスのサービスを行う。
【0032】1)待機中のDA1112 2)XA1108 3)YA1110 4)PC1116 5)DA1112 規則2:DSPコア3500およびDMAC3000に
対する調停は、独立している。DSPコア3500また
はDMAC3000のアクセスが終了した場合、必ず対
応する延期信号を他と無関係にリセットする。
【0033】規則3:すべての調停が済むまで待機す
る。これは、並列アービタの最終段のORゲート211
0および2112によって実現される。
【0034】規則4:前の調停が終了するまで待機す
る。DSPコア3500およびDMAC3000に対す
る調停が独立して実行されるので、並列アービタ210
0の制御下で前のDMACアクセスが実行されている間
に、次のDSPコアのアクセスが要求される可能性があ
る。この場合、この並列アービタ2100は、PAST
ALL信号を出して、前のDMAC3000アクセスが
終了するまで、次のDSPコア3500アクセスを遅ら
せる。同様の規則は、前のDSPコア3500のアクセ
スが実行中の場合にも適用する。
【0035】規則5:アクセス待機状態は、外部アクセ
スの調停に含まれる。PIOレディ信号PIOREAD
Yが、パラレル・インタフェースの待機状態コントロー
ラから外部アービタEAに送られる。外部アクセスが待
機状態である限り、外部アービタEAは、信号EAST
ALLまたはEADSTALLをHIGHに設定して、当該
ユニット(即ち、DSPコアまたはDMAC)が外部ア
クセスを行うのを引き延ばすようにする。
【0036】図3Aは、ページ・アービタ(データ・メ
モリ・ページ・アービタ)PGA2102の一部である
第0ページ調停回路2102−1の内部構造を示す。3
つのデコーダにより、XA、YAおよびDAの各バスに
より第0ページがアドレス指定されている時期を検出す
る。ページ・メモリが4つのページP0、P1、P2お
よびP3から構成されるため、PGAは、図3Aに示し
たブロックと同じ4つのブロックからなる。この図は、
同じアーキテクチャを有する他の調停ブロックEA、P
RAおよびIAに対して一般化することができる。
【0037】第0ページ調停回路は、第0ページへのア
クセスが行われようとしているか否かをそれぞれXA、
YAおよびDAのアドレス・バスを介して判断する3つ
の同じデコーダP0XDEC、P0YDECおよびP0
DDECを有する。この結果得られる復号された信号
は、バスXA、YAおよびDAの各バスが現在のDSP
命令サイクルにおいて使用中であるか否かを示すバス・
イネーブル信号XABUSE、YABUSEおよびDA
BUSEと論理積がとられ、要求信号XREQ、YRE
QおよびDREQが生成されて、第0ページ・アービタ
へと入力される。次に、通常の調停回路は、許可された
要求信号が2つ以上受信された場合、一定の優先順位
(最上位:X、次位:Y、最低位:D)を用いて、要求
信号に順位を与える。アービタは、調停に続いて、(ア
ドレス・バスの少なくとも1つは許可されており、ま
た、第0ページをアドレス指定しているものと仮定し
て)第0ページのメモリに向かうバス選択信号XSE
L、YSELおよびDSELの中の1つを活性化する
(これにより、どのアドレス・バスが第0ページへのポ
インタを与えるかが決定される)。ある命令サイクルの
期間中に、許可されたアドレス・バスXA、YAまたは
DAの何れもが第0ページのアドレスを指定していない
場合、アービタPG0Aは、その命令サイクル中は、不
活性となる。
【0038】アービタは、3つのアクセス要求を同時に
受信する可能性があるものの、必要上、DSPサイクル
毎に1つのアクセスしか認めることができないので、待
機アクセス要求を示すNextAccess(Y,D)
信号を生成する。これらの待機要求信号は、別の調停が
始まる前にその待機アクセス要求が処理されるように、
その第0ページ・アービタに帰還される。PGA第0ペ
ージ・アービタは、Yバス・アクセス要求が遅れた場
合、DSPコアの延期信号PGSTALLを生成し、D
MAバス・アクセス要求が遅れた場合、DMAC延期信
号PGDSTALLを生成する。4つのページ・アービ
タからの延期信号は、論理和をとり、図2に示した信号
PGSTALLおよびPGDSTALLを生成する。
【0039】XA、YAおよびDAのバス上のアドレス
間での1つのメモリ・ページへのアクセスに対する3方
の競合のタイミング図、およびPCおよびDAのバス上
のアドレス間での外部メモリへのアクセスに対する双方
の競合のタイミング図を図3Bおよび3Cに示す。これ
らのタイミング図では、DMAのリード動作を「DA
(R)」、ライト動作を「DA(W)」とそれぞれ示し
て、すべてのDMAデータ転送がリード(転送元のデー
タ・メモリからレジスタへ)およびライト(レジスタか
ら転送先のデータ・レジスタへ)から成るという事実を
反映している。
【0040】図3Bでは、外部メモリ2500が十分高
速でウェート・ステートを必要としないため、外部メモ
リ・アクセスのウェートは無いものと仮定し、一方、図
3Cでは、外部メモリの各アクセスに対して1ウェート
・ステートを要するものと仮定する。
【0041】図3Bにおいて、XA1108、YA11
10、PC1116およびDA1112が、すべてDS
Pサイクル1にアクセス要求を出している。ここで、X
A、YAおよびDAのすべてのバスが、オンチップ・デ
ータ・メモリの同じページのアドレスを出している一方
で、PCは外部メモリをアクセスしようとしている。P
GAブロック2102は、XA、YAおよびDAの(リ
ード)要求を調停して、そのメモリ・ページへのアクセ
ス権をDSPサイクル1、2および3においてそれぞれ
与える。サイクル1において、PGA2102は、XA
1108のアクセスは許すが、YA1110アクセスが
待機中のため、DSPコアを引き延ばすためにPGST
ALL信号を出す。また、サイクル1では、調停ブロッ
クEAが、PC1116アクセスを与え、EASTAL
L信号をリセットする。しかし、DSPコア3500へ
の延期信号PASTALLは、DSPコアへのすべての
延期信号(その中の1つPGSTALLは出されてい
る)のORをとることによって生成されるため、出され
たままである。DSPサイクル2において、PGA21
02は、そのメモリ・ページへのYAアクセスを許可
し、PGSTALLをクリアする。このクリアを行うの
は、DSPからのアクセスで保留されているものがな
く、DSPがサイクル3で次の命令n+1に進むことが
できるからである。これに対して、DAからのアクセス
は、DSPサイクル3まで延期される。このサイクルで
は、DMACへの延期信号(PADSTALL)をリセ
ットして、DMACが第4サイクルに次のDMA命令k
+1に進めるようにする。
【0042】第3サイクルのPCアクセスは、この命令
サイクルの間はDMACがオンチップ・メモリをアクセ
スしているので、DA(ライト)アクセスとの競合に合
わない。第4サイクルでは、正にXAおよびYAが同じ
オンチップ・データ・メモリ・ページをアクセスするの
で、最初にXA、次にYAがサービスされる。n+1番
目の命令フェッチ(PCn+1)のアクセスが終了しても、
DSPコアは、YAアクセスが許されるまで、待たなけ
ればならないので、第4サイクル中にPASTALL信
号が出される。
【0043】外部メモリへのPCn+1 アクセスは第3サ
イクルで終了したので、DA(ライト)アクセスを第4
サイクルでの延期なしに実行することができる。この例
で実証したように、DSPコア3500およびDMAC
3000に対し独立した延期信号を用意することによ
り、調停過程が非常に効率的になる。
【0044】図3Cには、外部メモリへのアクセスを完
了するのに1ウェート・サイクルを必要とする(これ
は、外部メモリへのアクセスの度に2命令サイクルを必
要とすることになる)場合の並列アービタの動作を示
す。したがって、外部メモリへの最初のPCアクセス
(PCn )に第1および第2のアクセス・サイクルがか
かる。しかし、XAおよびYAのアクセスも、それらの
アクセス間のページ競合のために、完了に2サイクルを
必要とする。したがって、DSPコアの第n命令サイク
ルは、図3Bに示したウェートなしの例の場合と同じ時
間で終了する。
【0045】第3サイクルにおいて、次のPCn+1 アク
セス・サイクルが開始するが、XAおよびYAアクセス
は、DA(リード)アクセス(これも、第1命令サイク
ル中に宣言されたものである)が終了するまで、1サイ
クル分延期される。DMACが、第4サイクルにおい
て、そのk+1番目の命令を実行し始める。しかし、D
MACは、外部メモリへのPCn+1 アクセスがまだ終わ
っていないので、第4サイクルの期間中に並列アービタ
により引き延ばされるため、外部メモリへのDMACラ
イトDA(W)k+1 は、第5サイクルに始まる。
【0046】DMACアーキテクチャ DSPのメモリ・マップされた記憶資源(外部の周辺装
置2300、データ・メモリ1900、命令メモリ14
00および外部メモリ2500に対するアドレスを含
む)の間およびホスト1200とDSPコア3500と
の間のローカルなデータ転送をDMAC3000が制御
する様子を、図1および図4A〜図4Fを参照しなが
ら、説明する。DMAC3000は、ホストおよび周辺
のデータ転送要求を扱う時には、ローカルなデータ転送
を中断し、ホスト・コマンドの統合的な処理を与え、且
つ、DSP1100がスタンド・アロン・プロセッサと
して動作している場合、プログラムおよびデータをバイ
ト構成のブートROMからDSP1100へとロードす
る。
【0047】DMAC3000は、主にローカルなデー
タ転送に使用されるが、それを中断して、2つまでのチ
ップ上の「周辺装置」(これは、シリアルI/O装置0
および1、ならびにシリアル通信装置からなる)および
ホスト1200からのデータ転送要求を処理することが
できる。次のDMAC3000の機能ブロックの説明で
明らかとなるように、DMAC3000は、ローカルな
データ転送、2つの割込み駆動の周辺転送、ならびに割
込み駆動のホスト・データおよびコマンドの転送に専用
のレジスタを別個に備えることにより、多様な転送を処
理する。
【0048】DMACのデータ転送プログラム 一般に、DMAC3000のデータ転送は、すべて限ら
れた数の転送プログラムによって決定される。このプロ
グラムは、ハードウェアで実現され、且つ一貫してロー
ドおよびストア動作から構成される。このロードおよび
ストア動作では、DMAC3000の制御下で、データ
が、送信位置からDMAC3000の一時的なデータ・
レジスタを通って受信位置まで転送される。DMAC
は、殆ど常に、DDバス1106上のデータを送受信す
る一方で、DMAC3000は、DAバス1112に送
信位置および受信位置にポインタを一斉送信する。前記
の転送プログラムは、4種類に限定されている。即ち、
データ転送が、1つの転送元と1の転送先、1つの転送
元と複数の転送先、複数の転送元と1つの転送先、そし
て複数の転送元と複数の転送先の間で行われるものであ
る。
【0049】このような範囲の転送および割込みを容易
にするために、DMAC3000は、チップ上の転送の
ために制御レジスタ(ローカル転送および2つの周辺デ
ータ転送の反復回数、ローカル転送のプログラム番号、
ならびにDSPコアによって設定されるDMACの状態
および制御フラグなどの情報を格納する)を備えてい
る。また、DMAC3000は、ローカルなデータ転
送、2つの割込み駆動周辺データ転送およびホストのデ
ータ転送に対する転送元と転送先とのポインタを同時に
格納するレジスタを有する。DMAC3000は、また
複数の転送元と複数の転送先を伴う転送を容易にするた
めに、それらのポインタをインクリメントする回路も備
える。最後に、DMAC3000は、ホストの転送およ
び2つの周辺転送に対する多重割込みを解決するため
に、それ独自の割込みハンドラを備え、且つホスト12
00とDSP1100との間でデータおよびコマンドを
転送するために、幾つかのレジスタをホスト・インタフ
ェース専用にする。
【0050】データ転送コントローラ 図4Dに示すように、データ転送コントローラ3002
は、転送回数レジスタ(反復回数レジスタ)rc 30
10、irc0 3012およびirc1 3014を
含み、バックグラウンドのローカル転送ならびに周辺デ
ータ転送0および1に対して転送するべきデータ数をそ
れぞれ保持する。また、データ転送コントローラは、機
能レジスタfr 3016、制御レジスタctr 30
18および状態レジスタstr 3020も含む。
【0051】制御レジスタctr 3018には、DS
PコアおよびDMACによる読み出しおよび書き込みが
可能なローカル・データ転送許可フラグDTが含まれ
る。DT=1のとき、ローカルなデータ転送が許可さ
れ、DT=0のとき、ローカル・データ転送動作は行わ
れない。一般に、DSPにおいて、ローカルなデータ転
送は、すべてDT=1と設定することにより開始され
る。DMAC3000は、ローカルなデータ転送を完了
すると、DTフラグをクリアする。
【0052】前記のrc 3010、irc0 301
2およびirc1 3014は、反復回数レジスタであ
る。レジスタrcは、フォアグラウンドデータ転送、あ
るいは、中断可能なデータ転送としても知られる、ロー
カルなデータ転送の反復回数を保持する。レジスタir
c0およびirc1は、周辺割込みPIRQ0およびP
IRQ1によってそれぞれ開始されるデータ転送の反復
回数を保持する。データ転送を開始すると、行うべきデ
ータ転送の回数が、レジスタの中で実行中の転送の種類
に対応するものに直ちに格納される。転送元から転送先
に1データ・ワードが転送される度に、現在使用中の反
復回数レジスタが、デクリメントされる。各反復回数レ
ジスタには、256Kの大きさの値(アクセス可能な最
大メモリ・サイズに等しい)を格納することができる。
反復回数レジスタirc0、irc1およびrcの何れ
でも現在の転送動作に使用されているレジスタのデクリ
メントには、シーケンサ3050において共有されるデ
クリメント回路3051を使用する。
【0053】ローカル・データ転送動作を開始する場
合、DSPコア3500により、所望の転送動作の機能
番号を図4Bおよび4Dに示したDMACの機能レジス
タfrに書き込む。この機能番号(この有効な値は、0
〜3および5である)は、PLAシーケンサ3050に
おいて実現され、且つ表1に示した6個の基本命令から
構成されるデータ転送プログラムを表す。
【0054】
【表1】
【0055】表1において、変数rは、一時的データ・
レジスタdr3046、hi3042、ho3044の
1つを表す。ローカル転送に対しては、変数rは、常に
dr3046を意味することになる。変数sp、dp
は、転送元ポインタ・レジスタ(as3038、ais
0 3032、ais1 3034)の1つ、および転
送先ポインタ・レジスタ(ad 3036、aid0
3028、aid1 3030)の1つをそれぞれ表
す。前に「*」を付けたポインタ変数は、そのポインタ
によってアドレス指定されたデータのアクセスを示す。
前に「*」を付け且つ後に「++」を付けたポインタ変
数は、そのポインタがアクセスの後にインクリメントさ
れるべきことを示す。したがって、命令r=*spは、
spで指し示された(ポイントされた)データのデータ
・レジスタrへの転送を伴う転送元データのロードであ
る。一方、命令r=*sp++は、アクセスに続いてs
pが次のメモリ・アドレスを指し示すような事後インク
リメントを伴う転送元データ・ロードである。同様に、
命令*dp=rは、データ・レジスタの内容のdpで示
されるメモリ位置への転送を伴う転送先(への)データ
書き込みであり、命令*dp++=rは、dpへの事後
インクリメント付き転送先データ・ライトである。
【0056】2つのDMAC制御命令drepeat、
dstopも備えている。drepeat命令を転送プ
ログラムで使用すると、この命令により、DMACは、
次の2つのプログラム命令を反復回数レジスタrcに指
定された回数だけ繰り返す。
【0057】dstop命令により、DMACは、レジ
スタctrにあるデータ転送フラグDTをクリアして、
停止する(ホールト状態になる)。また、これは、DI
RQフラグをセットすることによりローカルなDMA転
送が完了したことを示しながら、DSPコアに割込みを
発する。
【0058】
【表2】
【0059】表2は、異なる種類のDMA転送に対して
表1に表した4つのデータ転送動作によって使用される
オペランド(被作用子)を示す。例えば、hoおよびh
iレジスタ3042、3044は、ホストのDMA転送
の期間中にデータを一時的に格納するために、またホス
ト・コマンドを実行するためにも使用される。一方、d
rレジスタ3046は、ローカルなDMAまたは周辺割
込み転送の最中に一時的にデータを格納するのに用いら
れる。
【0060】図5Aにおいて、DMACの転送制御シー
ケンサ3050は、表1および表2に示した6つの基本
機能を用いるローカル・データ転送プログラムを4つ備
えている。この4つのローカル・データ転送プログラム
は、それぞれに関係付けられた値を機能レジスタfrに
持つ。fr=0と設定すると1つの転送元と1つの転送
先とのデータ転送となり、fr=1は1つの転送元と複
数の転送先とのデータ転送となり、fr=2は複数の転
送元から1つの転送先へのデータ転送となり、fr=3
は複数の転送元から複数の転送先へのデータ転送とな
る。複数の転送元または転送先が関与するプログラムに
おいては、dstopは、最後の命令であり、データ転
送命令をdrepeatにより必要な回数だけ行った後
に限り実行するものであるという点に注意を要する。デ
ータ転送の期間中、シーケンサ3050は、6ビットの
シーケンス・レジスタdssr3052を用いて、現在
実行中のデータ転送マイクロプログラムの現在のステッ
プの追跡を続ける。
【0061】図5Bは、DMACに格納されている周辺
割込みデータ転送のマイクロプログラムを示し、図5C
は、DMACに格納されているホスト・データ転送およ
びホストDMA動作のマイクロプログラムを示す。図5
Dは、ローカル・データ転送動作に対するDMACの状
態図である。
【0062】ステータス・レジスタstr3020に
は、ビット・フラグDRPT、DMAEPが含まれる。
DMAEPは、割込みマスクである。DMAEPがセッ
トされている場合、DMACは、ローカルなDMA転送
の完了時にDMAE(ローカルなDMA終了)信号でD
SPコアに割込みをかけることができる。DMAEPフ
ラグがクリアされている場合は、DMACは、ローカル
なDMA転送の完了時に、DMAE割込みをDSPに送
らない。DMACが2ワード以上の転送を開始する場合
には、必ずDRPTフラグがセットされ、DMACがリ
ピート・モードにあることを示す。dstop命令が実
行されデータ転送が完了すると、直ちにDRPTがリセ
ットされる。
【0063】DMAC割込みコントローラ DMACによって調整される典型的なデータ転送は、オ
ンチップ・データ・メモリおよびオンチップ命令メモリ
ならびに外部メモリを含む高速メモリ間のものである。
DMACは、外部システムのための比較的低速の周辺装
置2300からシリアルI/Oインタフェースやシリア
ル通信インタフェースを介してデータ転送要求を処理し
なければならない場合もいろいろある。図4Dおよび4
Eにおいて、周辺装置インタフェースからの割込み信号
は、3つまで別々に処理することができる。それらの周
辺装置インタフェースは、それぞれ独自の出力エンプテ
ィ(アウトプット・エンプティ、Output Emp
ty)割込み(外向きのデータ転送用)および入力フル
(インプット・フル、Input Full)割込み
(内向きのデータ転送用)を有する。即ち、シリアルI
/O周辺装置0 2302に対してはS0DOEおよび
S0DIF、シリアルI/O周辺装置1 2304に対
してはS1DOEおよびS1DIF、ならびにシリアル
通信装置2306に対してはSCDOEおよびSCDI
Fを有する。シリアルI/O装置0および1は、符号/
復号器(コーデック、CODEC)チップまたはシリア
ル・デジタル・データにアクセスするその他の装置でも
よい。シリアル通信装置2306は、一般に、RS23
2Cポートを有する装置である。
【0064】なお、外部周辺装置2308は、割込み信
号を生成しないことに注意を要する。外部の装置230
8は、一般に、1つ以上のスイッチ、種々の装置の1つ
以上の制御ピン、多数の回路ノードのリードもしくはラ
イトもしくはその両方を行うために「モード制御」の設
定などに多く用いられるインタフェース、またはこれら
の組み合わせである。
【0065】DMACは、専用のDMA割込みコントロ
ーラ3060を用いて、これらの周辺データ転送要求を
割込みに基づいて処理する。これらの転送を許可するの
は、図4B、4Dおよび6に示した専用の周辺割込み制
御レジスタictr3022である。レジスタictr
3022には、2つの可能な周辺割込みPIRQ0およ
びPIRQ1のそれぞれに対し4つの情報フィールドを
設けてある。DSPコアは、割込みフラグ(PIRQ
1、PIRQ0)自体を除く、ictr3022の全フ
ィールドのリード/ライト・アクセス権を有するが、割
込みフラグに対してはリード・アクセス権のみを持つ。
【0066】割込み選択フィールド(PIRQ1の場合
はS12、S11、S10、またPIRQ0の場合はS
02、S01、S00)により、割込みの発信源である
周辺装置(シリアルI/O装置0 2302、シリアル
I/O装置1 2304またはシリアル通信I/O 2
306の何れか)およびその周辺装置がリード(「Ou
tput Empty」)またはライト(「Input
Full」)の用意ができているかどうかを指定す
る。例えば、ビットS02、01、00=<0,0,0
>ならば、シリアルI/O 0周辺装置からのInpu
t Full(即ち、受信データ)割込みに周辺割込み
0が割り当てられる。
【0067】機能選択フィールド(PIRQ1の場合は
F11、F10、またPIRQ0の場合はF01、F0
0)により、実行すべきデータ転送動作が指定される。
図6に割込みのデータ転送機能を短縮形式で示す。ただ
し、図示した各データ転送機能は、実際には、前述のよ
うにロードおよびストアの基本的な動作を別個に行う。
なお、DSPコア3500が実行するソフトウェアは、
周辺装置インタフェース2200がDMAC3000と
共に行うべき周辺I/O動作がある場合、それらを指定
するために、フィールドSj2、Sj1、Sj0、Fj
1、Fj0に値をロードするので、注意を要する。
【0068】DMAC割込みフラグPIRQ0およびP
IRQ1は、セットされている場合、DMACへの未処
理のPIRQ0およびPIRQ1割込みを示す。これら
のフラグは、その割込みの受け付け時に、DMACによ
って解除される。最後に、DSP割込み優先度フラグP
TE1PおよびPTE0Pがセットされている場合、D
MACは、未処理のデータ転送が終了する(即ち、ir
c0またはirc1が1に等しい)と直ちに、DSPコ
アに割込みをかける。また、PTE0PまたはPTE1
Pが0に等しい場合、DMACは、DSPコア3500
に割込みを発しない。
【0069】アドレス生成ブロック DMACは、異なる種類のデータ転送を処理する。最も
一般的なデータ転送は、メモリ空間に割り当てられた記
憶資源の間のローカルなデータ転送である。メモリ空間
に割り当てられたオンチップ周辺装置(2つのシリアル
I/Oインタフェースおよびシリアル通信インタフェー
スを含む)から2つまでのデータ転送が、ローカルなデ
ータ転送に割り込むことができる。これらの異なるロー
ド/ストア・データ転送を極力迅速に処理するために、
ローカルなデータ転送および2つの周辺(インタフェー
スによる)割込み転送のそれぞれ専用とする3組の転送
元レジスタおよび転送先レジスタをDMACに設ける。
【0070】アドレス生成ブロック3006は、データ
転送の元と先のアドレスをDAバス1112に与える。
これらのアドレスは、次の18ビットの専用レジスタに
よって与えられる。
【0071】aid0 3028, aid1 3030:高速割込み周辺転
送0および1の転送先アドレスをそれぞれ格納する。
【0072】ais0 3032, ais1 3034:高速割込み周辺転
送0および1の転送元アドレスをそれぞれ格納する。
【0073】ad 3036, as 3038:ローカルなデータ転送
の送信先および送信元のアドレスを格納する。
【0074】ホスト・プロセッサは、DSPのすべての
レジスタおよびメモリ位置に対しDMACによってリー
ド/ライト・アクセスすることができるので、前記のア
ドレス・ブロック・レジスタにもリード/ライト・アク
セスすることができる。
【0075】DMAC3000は、常に1つのデータ転
送しか実行できないが、割込みデータ転送およびローカ
ルなデータ転送のためにそれぞれ専用のアドレス・レジ
スタを備えることにより、DMACは極めて迅速に割込
みを処理することが可能である。特に、割り込まれたロ
ーカルなデータ転送に対するアドレス・レジスタの値
は、その割込み処理の前にスタック・メモリ領域に格納
する必要がないので、レジスタ値の待避に通常使用され
る幾つかの命令サイクルを節約することができ、その割
込み処理の終了後にそれらのレジスタ値を復元するため
の命令サイクルも同様に節約できる。
【0076】図4Cを説明すると、ホスト・データ転送
のため、アドレス生成ブロック3006は、18ビット
のホスト・ポインタ・レジスタhp3024を備えてお
り、このレジスタはDSPデータ転送の転送元または転
送先の何れかのアドレスを保持する。ホスト・ポインタ
・レジスタ値のアドレスは、2ビットのホスト・ポイン
タ基底カウンタhpb3026(これは、DSPがバイ
ト構成のROMから起動されているときに、動作を開始
する)により拡張される。18ビットのhpレジスタ3
024は、ホストのデータ・バスが8ビット幅の場合
は、3つの別個のレジスタhp0、hp1、hp2とし
てホストCPU1200によりアクセスされ、ホストの
データ・バスが16ビット幅の場合は、2つの別個のレ
ジスタhp1、hp2としてアクセスされる。
【0077】また、アドレス生成ブロック3006は、
DMA演算ユニットdau 3040を備え、これによ
り、前述のレジスタに保持されたアドレスをインクリメ
ントして、先に説明した事後インクリメント動作を伴う
データ・ロードおよびストアを実現している。
【0078】DMACのデータ・レジスタ 前述のように、DMACが行うデータ転送は、一連のロ
ード/ストア動作によって実現される。このとき、デー
タ・ワードが、転送元アドレスから転送レジスタへと読
まれ、この転送レジスタから転送先アドレスに書き込ま
れる。DMACは、このため専用に3個の24ビット・
データ転送レジスタ、即ち、ホスト・データ入力レジス
タhi 3042、ホスト・データ出力レジスタho
3044およびDMAデータ・レジスタdr 3046
を備える。レジスタhi 3042およびho 304
4は、ホストのデータ転送で使用し、hi 3042に
はホスト1200によって書かれるデータ、ho 30
44にはホスト1200によって読まれるデータを格納
する。レジスタdr 3046は、ローカルなデータ転
送用の一時データ記憶手段として利用する。
【0079】DMACホスト・インタフェース制御ブロ
ック DMACには、ホスト・データ転送用のレジスタを幾つ
か備えたホスト・インタフェース制御ブロック3070
が含まれる。これらの専用レジスタには、ホスト制御レ
ジスタhctr3011、ホスト状態レジスタstr0
3013、ホスト状態レジスタ1 str1 301
5およびホスト割込みレジスタhrq3017が含まれ
る。これらのホスト・インタフェース・レジスタの使用
は、「ホスト・データ転送」と題する部分において後述
する。DMACにホスト・インタフェースを組み込んで
あるので、DMACと同じハードウェアを使用するため
回路構成の点から非常に効率的である。さらに、DMA
Cにホスト・インタフェースを含むことにより、ホスト
がDMACにコマンドを送ることが可能となる。ホスト
のコマンド(ホスト・コマンド)は、後述の「ホスト転
送コマンド」に関する説明の部分において表7として示
す。
【0080】バスの接続 図1、図4B、図4Cおよび図4Eは、DSPバスD
A、DD、XDおよびホスト・バスHA 1124、H
D 1122へのDMAC3000の接続を示す。ホス
ト・レジスタ、周辺インタフェース、外部メモリおよび
オンチップ・メモリを含むメモリ・マップされた記憶資
源の間のデータ転送は、DMAデータ・バスDD 11
06およびDMAアドレス・バスDA 1112を用い
て行われる。したがって、図4Cに示すように、アドレ
ス・レジスタhp 3024、aid0 3028、a
id1 3030、ais0 3032、ais1 3
034、ad 3036、およびas 3038がDM
Aアドレス・バスDA 1112に接続され、図4Bに
示すように、データ・レジスタhi 3042、ho3
044、およびdr 3046がDMAデータ・バスD
D 1106に接続される。また、DMACは、XDバ
ス1102による以外にアクセスできないDSPコア3
500内部のレジスタへのホスト・データ転送も、ホス
ト・データ・レジスタhoおよびhiによってサポート
する。これらの転送に対しては、DMACのホスト・デ
ータ・レジスタhi 3042およびho 3044と
XDバス1102とが接続されている。
【0081】また、図4Eは、DMACとオンチップ周
辺インタフェースA 2202、B2204、C 22
06、D 2208との間の直接接続も示す。これら
は、24ビット周辺データ・バスPD0〜23 112
6、4ビット周辺アドレス・バスPA0〜3 1128
および周辺選択バスPASELを介して外部の周辺装置
2300のための周辺インタフェースを構成する。DM
ACは、これらの周辺装置インタフェース(PDI)に
はDDおよびDAバスを介してアクセスし、これによ
り、並列アービタ2100のPRA 2106によって
許可された場合、PDおよびPAバスへのDMACのア
クセスが許される。後述のように、周辺のアドレスおよ
びデータのバスは、DSPコアも利用し、これにより、
メモリに割り当てられたDMACの内部レジスタを直接
リードしたりライトしたりする。
【0082】なお、実際には、バスPDは、XD110
2、YD1104、およびDD1106の1つから並列
アービタ2100によって選択され、且つバスPAは、
XA1108、YA1110およびDA1112の1つ
から並列アービタによって選択される。図4Eに、その
周辺バスに接続すべき内部バスを選択するマルチプレク
サ回路を示す。周辺装置2300にアクセスするため
に、DSPコアまたはDMACは、まず、バス・イネー
ブル信号(例えば、XABUSE、YABISE、DT
BUSE)を並列アービタ2100に供給し、メモリ・
マップされた周辺装置のアドレスを対応するアドレス・
バスに置くとともに、同じアドレスを並列アービタに与
える。ここで、並列アービタ2100は、その周辺装置
へのアクセス権を与える。アクセスの競合がある場合に
は、幾分遅れて与えられる。並列アービタは、そのアク
セス権を与えるとき、バスの中の1つを周辺のデータ・
バスおよびアドレス・バスとして選択して、XA、YA
およびDAの各選択信号をPDIのマルチプレクサ22
10に送る。そして、PDIは、選択された周辺バスの
24ビットの線を周辺データ・バスPD0〜23に結合
する。また、PDIには、11の可能な周辺装置の中か
ら当該データ転送の転送元または転送先として1つを選
択するための11ビットの周辺選択信号PASEL0〜
10を生成するアドレス・デコーダ2212も含まれ
る。PDIは、DMACまたはDSPコアによって供給
される18ビット周辺アドレスのうちの第4〜7ビット
をデコードすることにより、この信号を生成する(これ
らのビットは、1つの周辺装置に一通りに対応する)。
次に、PDI2200は、18ビット周辺アドレスの第
0〜3ビットを周辺アドレス・バスPA0〜3を介して
周辺装置に供給することにより、選択された周辺装置内
部の16の可能なレジスタの1つをアドレス指定する。
次の表は、周辺レジスタのメモリ割り当てとそれらのP
ASELアドレスを示す。
【0083】 周辺装置 アドレス範囲 PASEL −−−−−−−−−−−−− −−−−−−−−−−−− −−−−− ビット・インタフェース 07400−0740F 0 パラレルI/Oポート 07410−0741F 1 シリアルI/Oポート0 07420−0742F 2 シリアルI/Oポート1 07430−0743F 3 シリアル通信インタフェース 07440−0744F 4 タイマ 07450−0745F 5 DMACの標準DMAレジスタ 07460−0746F 6 DMACの割込駆動レジスタ 07470−0747F 7 DMACのホスト 07480−0748F 8 インタフェース駆動レジスタ DMACのマイクロROM 07490−0749F 9 予備領域 074A0−074AF A ここに掲げたアドレスにおいて、各アドレスは、4桁の
16進数によって表される18ビットの値である(4桁
の16進数の最初の桁は2ビットしか操作できず、その
両者とも、ここに掲げたメモリ割り当て資源について
は、0に設定されている)。
【0084】前記のメモリ・マッピング方式によれば、
DSPコア3500において稼働中のプログラムが、X
A1108バスを用いてDMACの制御レジスタctr
3018にアクセスする必要がある場合、DSPコア3
500は、Xバス許可信号XABUSEをctr301
8のアドレス0x7460(この値は、DSPコア35
00がXAバス1108に設定する)と共に並列アービ
タ2100に送る。並列アービタ2100では、アドレ
スの第4〜7ビットをデコードして、PASELバスに
よって周辺装置6、即ち、DMACの標準DMAレジス
タを選択する。最後に、並列アービタが、制御レジスタ
ctrのアドレス(これは、DMAC内部でアドレス
「0000」に指定されている)を指定するようなアド
レス・ビット0〜3(「0000」)を周辺アドレス・
バスPA0〜3上に乗せる。
【0085】DMACの機能 DMACは、4つのデータ転送機能を有する。
【0086】(1)データ・メモリ1900、命令メモ
リ1400およびパラレルI/Oインタフェース240
0を含むメモリ・マップされた資源の間のローカルなデ
ータ転送 (2)周辺データ転送要求の高速処理 (3)DSP1100とホスト・マイクロプロセッサ1
200との間のデータ転送 (4)DSPのスタンド・アロン動作におけるバイト構
成のROMからのブート前述のように、これらのデータ
転送機能は、すべて一連のロード/ストア動作から構成
される。これらの命令を実行するために、DMACに
は、前の命令の実行中に新たな命令のフェッチと解読を
行う2段階パイプラインを採用する。次に、これらの機
能を説明する。
【0087】ローカルなデータ転送 DMACにより制御されるデータ転送の最も一般的な形
態は、ローカルなデータ転送であり、それはデータ・メ
モリ1900、命令メモリ1400、パラレル・メモリ
・インタフェース2400(外部メモリ2500にイン
タフェースを与える)および周辺装置インタフェース2
200(外部の周辺装置2300にインタフェースを与
える)の間におけるデータの高効率な移動を伴うもので
ある。典型的なローカルなデータ転送においては、DM
ACにより比較的低速の外部メモリ2500から高速の
オンチップ命令メモリ1400にDSPプログラムを移
すことがある。ローカルなデータ転送は、最も一般的な
DMACのデータ転送であるため、比較的頻度の低い周
辺およびホストのデータ転送要求によって割り込むこと
ができる。
【0088】他のDMACデータ転送と同様に、ローカ
ルなデータ転送は、一連のロード/ストア動作からな
る。ロード/ストア動作においては、データが、転送元
のアドレス(転送元アドレス・レジスタasに格納され
ている)からデータ転送レジスタdrに一時的にロード
され、さらに転送先のアドレス(転送先アドレス・レジ
スタadに格納されている)に書き込まれる。ローカル
なデータ転送は、すべて専用のバスDA1112および
DD1106を用いるので、バスDD1106にデータ
・レジスタdrが接続され、DA1112バスにアドレ
ス・レジスタasおよびadが接続される。殆どの場
合、DMACは、DSPコアの動作と並列にローカルな
データ転送を実行することができる。しかし、DMAC
(DMAアドレス・バス使用)とDSPコア(X、Yま
たはPCアドレス・バス使用)とが同時に同じメモリ装
置をアクセスしようとすると、ローカルなデータ転送が
遅れることもある。前記のように、このようなアクセス
の競合の解消は、並列アービタにより、DMACの動作
を引き延ばしてDSPコアのアクセスを許可してから、
DSPコアからサイクルを盗んでDMACのメモリ・ア
クセスを許可することによって、行われる。
【0089】図7に、メモリのブロック転送の場合のロ
ーカル・データ転送手順を示す。DSPプログラムは、
この転送の始めに、まず転送元の開始アドレスをレジス
タas 3038に、転送先の開始アドレスをレジスタ
ad 3036に、そして転送するべきワードの数を反
復回数レジスタrc 3010に書き込む。次に、DS
Pプログラムは、DMAマイクロ機能レジスタfr 3
016に3を書き込むことによってブロック転送機能を
指定する。なお、DSPコアは、必要であれば、fr
3016に0、1、2などの値を設定することにより、
別のローカル転送を指定することも可能である(ここ
で、0:単一の転送元から単一の転送先へのデータ転
送、1:単一の転送元から複数の転送先への転送、2:
複数の転送元から単一の転送先へのデータ転送)。DM
ACのローカルなデータ転送を開始する最終段階とし
て、DSPが、ctrレジスタ3018に含まれるDT
フラグをセットする。
【0090】DSPコアが、DTフラグをセットすると
直ちに、DMACが、複数の転送元から複数の転送先の
プログラムの最初の転送命令を実行する。この命令は、
次のステップからなるポインタ・インクリメント付き転
送元データ・ロード(dr=*as++)である。
【0091】(1)DMAC3000が、転送元データ
・レジスタas 3038の内容をDMAアドレス・バ
ス1112および並列アービタ2100に送る(即ち、
DMACが、転送元メモリへのアクセスを要求する)。
【0092】(2)DMACが、転送元データへのアク
セスに対する並列アービタの許可を待つ。DMACが、
DSPコアと同じ記憶装置にアクセスしようとすると、
並列アービタが、PADSTALL信号をHighに保つこ
とによってDMACのアクセスを遅らせる。遅延の物理
的な命令サイクルの数は、転送元のデータが格納されて
いるメモリ装置のアクセスにウェートが必要な場合、そ
のウェート・ステート数に依存することになるが、アー
ビタによるDMACの遅れは、最悪の場合(DSPコア
が、バスXA、YAおよびPCを介してDMAC300
0と同じメモリのアクセスを試みている場合)でも、3
「論理」命令サイクルである。
【0093】(3)転送元のメモリをアクセスする要求
を並列アービタに許可されてから、DMAC3000
は、DAバス1112上に設定された転送元アドレスの
データをDMAデータ・バスを介してデータ・レジスタ
3046にロードする。
【0094】(4)DMACが、転送元アドレス・レジ
スタの内容をdau 3040を介してインクリメント
する。
【0095】次に、DMAC3000は、以下のステッ
プからなるポインタ・インクリメント付き転送先データ
・ストア(*ad++=dr)を実行する。
【0096】(1)DMAC3000が、ad 303
6の内容をDMAアドレス・バスDA1112と並列ア
ービタ2100に送り、drレジスタ3046の内容を
DMAデータ・バスDD 1106上に置く。
【0097】(2)並列アービタ2100がライト(書
き込み)要求を認めると、転送先の装置がDDバス 1
106に接続されて書き込み動作が行われる。アドレス
の競合が発生した場合、並列アービタにより、PADS
TALLを発してDMA転送動作を遅らせてもよい。
【0098】(3)転送の終了時に、DMACにより、
転送先アドレス・レジスタad 3036の内容をda
u 3040を介してインクリメントする。
【0099】このシーケンスの終了後、反復カウンタ
(反復回数レジスタ)rc 3010を検査して、デー
タ転送が完了したかどうかを判断する。rc 3010
が2に等しいかそれ以上の場合、転送が終わっていない
ことを示すので、rc 3010が1だけデクリメント
され、DMACが次のデータをロードすることによりブ
ロック転送動作を継続する。rc 3010=1の場
合、DMACは、実行を停止し、DTフラグを解除する
とともにDTDMAE(DMA終了)割込みをDSPの
割込みコントローラ2600に送ることによりDSPコ
アにデータ転送の終了の信号を送る。ただし、状態レジ
スタstr 3020の割込み優先フラグDMAEPが
0に設定されている場合、DMAC3000は、その割
込みを発しない。
【0100】DMACは、ローカル転送機能0、1、2
に対しても、ポインタの事後インクリメントを除いて同
じ動作シーケンスに従う。機能0の転送(単一の転送元
から単一の転送先)の場合、転送元および転送先のアド
レスに対するロード/ストア後のインクリメントは、な
い。機能1および2の転送の場合、DMACは、転送先
または転送元のポインタをそれぞれ事後インクリメント
する。
【0101】図8Aは、新たに開始された複数の転送元
から複数の転送先へのローカル・データ転送動作(機能
3)のタイミングを示す。なお、DMACにおいて実行
される命令は、命令のフェッチ・解読サイクルおよび実
行サイクルからなるパイプラインを通して実行される。
前述のように、このデータ転送動作を開始する前に、D
SPコアが、機能レジスタfr、転送元および転送先の
レジスタasおよびad、ならびに反復回数レジスタの
ロードを行う。次に、DSPコアは、制御レジスタct
r 3018のDTフラグを設定することにより、DM
ACデータ転送プログラムを開始する。DT設定後の最
初の命令サイクルにおいて、DMACは、最初のdre
peat命令(この命令が実行されると、ロード/スト
ア・シーケンスを繰り返す回数が決定される)のフェッ
チ・解読を行い、NOP命令を1つ実行する。第2の命
令サイクルにおいて、DMACは、ポインタ・インクリ
メント付きロード命令をフェッチ・解読し、且つdre
peat命令(strレジスタ3020のRPTフラグ
を設定する)を実行する。第3の命令サイクルにおい
て、DMACは、ポインタ・インクリメント付きロード
命令を実行する一方で、後続のポインタ・インクリメン
ト付きストア命令をフェッチする。DMACが、そのポ
インタ・インクリメント付きストア命令を実行し、次の
ロード/インクリメント命令をフェッチ/解読すること
により、最初のロード/ストア・シーケンスが第4サイ
クルで完了する。
【0102】DSPコアが、制御レジスタctr 30
18のDTフラグを解除することにより実行中のローカ
ル・データ転送動作を停止(ホールト)し、後にDTフ
ラグを再び設定することにより動作を再開させる場合の
DMACによって行われる動作シーケンスを図8Bに示
す。DSPコアがDTフラグを解除した後、DMAC
は、処理中のリード・ライト動作の終了に続いて、パイ
プラインの状態を凍結する。DSPコアが制御レジスタ
ctr 3018のDTフラグを再設定すると、DMA
Cは、凍結したパイプラインの状態から実行を再開す
る。
【0103】図8Cは、データ転送の最後にDMACが
行う動作を示す。
【0104】周辺装置の割込み 6種類あるDMAC動作への割込みを表3に示す。これ
らの割込みにより、DSPがローカル・データ転送動作
に迅速に割り込んでホストや周辺装置のデータ転送要求
を処理することが可能となるという点において、これら
の割込みは、本DSPの比類無き特徴の1つである。
【0105】
【表3】
【0106】表3および図9を参照すると、優先度が最
高の割込みは、DSPコア(RST信号)またはホスト
・インタフェース(GRESホスト・コマンドで開始さ
れるDTRESET)からのリセットである。これらの
1つが検出されると、レジスタが解除され、DMACが
停止(ホールト、HALT)モードに入る。リセットが
全く検出されない場合、DMACは、レジスタhstr
1のビット・フラグによってそれぞれ表されるホスト・
インタフェースの割込みDIF(data input full 、デ
ータ入力フル)およびDOE(data output empty 、デ
ータ出力エンプティ)を探す。これらが見つかった場
合、DMACは、ホスト・ポインタ・レジスタhp 3
024とデータ・レジスタhi 3042またはho
3044とを用いてホストDMAデータ転送またはWR
P/RDPホスト・コマンドを実行する。これが終わる
と、DMACは、DTフラグを検査する。DTフラグが
設定されている場合、DMACは、中断された本来のデ
ータ転送動作を開始する。DTフラグが解除されている
場合、DMACは、HALTモードに入る。
【0107】最後に、DMACは、レジスタictrの
ビット・フラグによってそれぞれ表される周辺割込み0
(PIRQ0)、そして周辺割込み1(PIRQ1)を
探す。これらの割込みの何れかが検出された場合、DM
ACは、割込み制御レジスタictr 3022におい
て指定される機能を伴う「load dr 」および「stored
r」コマンドを実行することにより、単一データ転送シ
ーケンスを実行する。割込みPIRQ0およびPIRQ
1には、転送先レジスタaid0/1、転送元レジスタ
ais0/1および反復回数レジスタirc0/1がそ
れぞれ使用される。この転送の終了の後、DMACは、
制御レジスタctrのDTフラグを検査する。このフラ
グが設定されている場合、DMACは、中断した本来の
データ転送動作を再開する。DTが解除されている場
合、DMACは、HALTモードにはいる。
【0108】図10は、DMACがシリアル・インタフ
ェースの入力レジスタ(周辺装置インタフェース220
0の一部)からメモリ・ブロックへとデータを転送する
過程を示す。転送先アドレス・ポインタ(あるメモリ位
置への)は、割込みの度にインクリメントする。このよ
うにして、シリアル装置からの非同期信号を転送先メモ
リに順次書き込むことができる。これは、モデムまたは
コーデックから内部または外部のメモリへのデータ転送
のような単一転送元レジスタから複数のメモリ位置への
データ転送の一例である。
【0109】DSPは、転送を始めるにあたり、最初
に、選択された周辺装置、転送機能およびDSPの割込
み要求モードを割込み制御レジスタictr 3022
に書き込む。この場合、DSPは、<S20,S10,
S00>を<0,0,0>と設定することにより、シリ
アル・インタフェース0の入力を周辺割込み0 PIR
Q0として選ぶ。第2に、DSPは、<F01,F00
>を<0、1>と設定する(これは、転送機能*aid
++=*aisに相当する)ことにより、転送が単一の
転送元(シリアル・インタフェース0のデータ受信レジ
スタ)から複数の転送先(メモリの1ブロック)へのも
のであることを指定する。第3に、DMACがデータ転
送の終了後にDSPに割り込むか否かを決定するPTE
0PフラグをDSPコアにより設定する。PTE0Pを
0に設定することは、DSPコアに割込みが送られない
ことを意味する。PTE0Pを1に設定することによ
り、DMACが、割込み転送カウンタirc0が1に等
しいときに、それぞれの割込みPTE0またはPTE1
をDSPコアに送るようになる。
【0110】次に、DSPが、転送元および転送先のア
ドレスをais0 3032およびaid0 3028
にそれぞれ設定する。この例では、ais0が、シリア
ル・インタフェース0の受信データ・レジスタのアドレ
スを保持し、aid0が、前記のシリアル・データの書
き込まれるメモリ・ブロックの開始アドレスを保持す
る。必要であれば、転送予定のデータ数を割込み反復回
数レジスタdirc0に書き込む。
【0111】次に、DSPにより、シリアル・インタフ
ェース0の制御レジスタsctr03071のフラグR
IE0を1に設定することによりシリアル・インタフェ
ース割込みのマスクを解除する(図4Eおよび4G参
照)。シリアル・インタフェース2202は、そのデー
タ読み込みレジスタrdr0 3073(実施例におい
ては24ビットのシフト入力パラレル出力レジスタ)を
満たすデータを受信すると、状態レジスタsstr0
3072のRDRF0フラグをセットする。レジスタs
ctr0のRIE0フラグを1に設定すると、シリアル
受信データ・レジスタrdr0が外部の装置2302か
ら受信したデータで一杯になったときに、シリアル・イ
ンタフェース0 2202は、受信データ割込み信号を
DMACまたはDSPの割込みコントローラの何れかに
送ることが可能となる。sctr0レジスタ3071の
IAD0(割込み要求アドレス)フラグが0に等しい場
合、受信データ割込みは、DSPコア3500に送られ
る。IAD0フラグが1に等しい場合、受信データ割込
みはDMACに送られる。RIE0が0に設定されてい
る場合、受信されたデータ割込みは、DSP割込みコン
トローラにもDMACにも送られないので、データはD
SPに全く受信されないことになる。
【0112】同様に、周辺装置へのデータの転送に対し
ては、周辺インタフェース2202が、転送されるべき
データが格納される送信データレジスタtdr0(実施
例においては24ビットパラレル入力シフト出力レジス
タ)を有する。周辺インタフェース2202は、レジス
タtdr0のデータが周辺装置2302により総て受信
されると、状態レジスタsstr0のビット・フラグT
DRE0をセットした後、対応する「出力エンプティ」
割込み要求信号を生成する。IDA0が1に等しい場
合、この割込みは、DMAC3000へと経路選択され
て送られ、次に、その周辺インタフェースに対する反復
回数irc0が2以上の場合、DMACが、次のデータ
・ワードを送信データレジスタtdr0にロードする。
【0113】シリアル・インタフェース1 2204も
同様のレジスタsctr1、sstr1、rdr1およ
びtrd1を備えている。
【0114】DMACの割込み動作は、シリアル・イン
タフェース0 2202からのシリアル入力データ・レ
ジスタフル割込み信号S0DIFによって開始される。
即ち、この割込み信号が、DSPの割込みコントローラ
2600に送られ、そこで、ictr 3022の割込
みフラグPIRQ0が値1に設定される。さらに、これ
により、シリアル・データのリードの用意のできたこと
が、DMACの割込みコントローラ3004に信号で通
知される。DMACに到達する多数の周辺割込みが、表
3で決定された優先度によって処理される。周辺のデー
タ転送が受け付けられると、一対のdrロード動作およ
びdrストア動作によって転送が実現される。前記のよ
うに、drロードおよびdrストアの動作中に行われる
メモリ・アクセスに対しては、競合の調停が行われる。
DMACの割込みプログラムのdrロード動作の直前
に、DMACがPIRQ0フラグを解除して、DMAC
の割込みコントローラに次の割込みを受ける準備をさせ
る。drロード動作に続いて、DMACは、シリアル入
力データレジスタフルフラグRDRF0を解除して、そ
のシリアル・インタフェースにさらにデータを受信する
準備をさせる。フラグPIRQ0およびRDRF0の解
除は別として、割込みデータ転送動作は、転送元および
転送先のレジスタがais0およびaid0である点を
のぞけば、前述のローカル・データ転送動作と正に同じ
である。
【0115】drロードおよびdrストアの終了後、D
MACは、反復カウンタirc0の内容を検査する。i
rc0=1(周辺転送が終了していることを意味す
る)、且つPTE0P=0(転送終了ののち直ちに、D
SPコア3500が割込みを受けることを意味する)の
場合、DMACは、割込みPTE0(周辺転送0終了)
をDSPコア3500に発する。irc>=2の場合、
反復カウンタirc0を1だけデクリメントし、DMA
Cが、次の周辺割込みを待つ。この時点で、フラグDT
=1(割り込まれたDMACのデータ転送プロセスを意
味する)の場合、DMACは、その中断したプロセスを
再開する。フラグDT=0(割込みを受けた動作が無い
ことを意味する)の場合、DMACは、HALTとな
る。
【0116】図11は、周辺データ転送動作のタイミン
グを示す。DMACの割込みが、割込みを受信し(フラ
グPIRQ0をセットするDSPを介して)、次のサイ
クルにおいて、優先度を解読する。競合する割込みの場
合、優先度の低い割込みは無視する。次のサイクルで、
DMACの割込みコントローラが、その割込みを承認
(アクノリッジ)して、割込み処理プログラムをフェッ
チする(ictrにおいて指定される転送機能からPL
A状態が生成される)。2つの連続した命令(ロードd
rおよびストアdr)がフェッチされる。2サイクルで
それらの命令が実行された後に、DMACの割込みコン
トローラにより、本来の転送ルーチンを再開する。な
お、DMACは、既に実行中のローカルなデータ転送が
終了するまで、割込み処理プログラムの実行を延期す
る。つまり、前のデータ転送動作の実行が終わっていな
い場合、割込み動作をDMACの1動作周期だけ遅らせ
る。
【0117】ホストのデータ転送 DMAC3000には、日立製作所製のものおよびその
他の馴染み深いマイクロプロセッサに対するインタフェ
ースが含まれる。このインタフェースは、ホスト・デー
タ・バス(HD)1122への16ビットまたは8ビッ
トの接続ならびにホスト・アドレス・バスHA 112
4への4ビットの接続を提供する(これにより、ホスト
は、8または16ビット単位でDSPレジスタにアクセ
スすることが可能となる)。このホスト・インタフェー
スによって、次の機能が提供される。
【0118】1)データ転送コマンドおよびDSPコア
3500への動作モード・コマンドを含むホスト・マイ
クロプロセッサからのコマンドの受信。
【0119】2)外部メモリ2500を含むDSPのす
べてのメモリ/レジスタ資源へのホストからのアクセ
ス。この機能は、DMAC3000のホスト・ポインタ
・レジスタhp 3024、およびホスト・データ入出
力レジスタhi 3042およびho 3044によっ
て実現され、これにより、ホストは、メモリ空間に割り
当てられた任意の資源にアクセスすることが可能とな
る。
【0120】3)ホストDMAコントローラ1202に
よるホスト・メモリとすべてのDMAメモリとの間のD
MA転送。
【0121】図4B、図4Dおよび表4に示すように、
ホスト・コンピュータ1200は、ホスト・インタフェ
ースにおける次のような接続線の集合によってDSPに
接続される。
【0122】
【表4】
【0123】本明細書においては、モード制御信号およ
びI/O制御信号をまとめてホスト制御信号バスと称す
る。
【0124】図4Bおよび4Dに示したように、ホスト
・バス・インタフェース3075により、ホストと次の
DSPレジスタとの間に接続を与える。このDSPレジ
スタには、24ビットのデータ・レジスタhi 304
2、ho 3044、18ビットのホスト・ポインタ・
レジスタhp 3024、ホスト・インタフェース状態
レジスタhstr0 3013、hstr1 301
5、およびホスト制御レジスタhctr 3011が含
まれる。ホスト・バス・インタフェース3075が許可
されるのは、デコーダ3076(DSPの外部の)が、
ホスト・アドレスの上位数ビット(あるいはHA3より
上のホスト・アドレス線)が所定のまたは予め割り当て
られた値と一致することを発見して有効なホスト・チッ
プ選択信号HCSをDSPのHCS\入力ピンに印加す
る場合に限られる。
【0125】ホスト・データ・バス1122では8また
は16ビット・データしか与えられないので、DMAC
のホスト・インタフェース・レジスタho 3044、
hi3042およびhp 3024は、まとめてではな
く、8ビットまたは16ビットに分けてアクセスされ
る。ホストCPU1200からのHBW信号で、ホスト
・データ・バスHDが8ビット幅か16ビット幅かを指
定する。4ビットのホスト・アドレス・バス・インタフ
ェースにより、ホストは、8ビットDSPレジスタを1
6個まで直接にアドレス指定できる。その他のDSPレ
ジスタおよびメモリ資源は、すべて、レジスタ・アドレ
スまたはメモリ・アドレスをhpレジスタ3024に指
定した後、MDACのhiおよびhoレジスタを通して
データ転送を行うことにより、アクセスされる。
【0126】DMACのアドレス可能なレジスタは24
ビットのホスト・ポインタ・レジスタhp 3024、
ホスト入力レジスタhi 3042、ホスト出力レジス
タの8ビットあるいは16ビットのレジスタ・セグメン
トからなっている。ホスト・コンピュータにより直接ア
ドレス可能な他のレジスタはホスト制御レジスタならび
に状態レジスタhctr 3011、hstr0 30
13、hstr1 0315である。これらのレジスタ
は、8ビットあるいは16ビットのホスト・データ・バ
スに直接接続されており、4ビットのホスト・アドレス
線を介してアドレス可能である。表5は、HDが8ビッ
トの場合(即ち、レジスタが一度に8ビットでアクセス
される場合)、アドレスHA0〜3がどのようにレジス
タに対応するか示されており、表6は、HDが16ビッ
トの場合(即ち、レジスタが一度に16ビットでアクセ
スされる場合)アドレスHA0〜3がどのようにレジス
タに対応するかが示されている。
【0127】
【表5】
【0128】
【表6】
【0129】本発明のDSP1100では、幾つかの外
部ピンをホスト・インタフェース専用としている。これ
らのピンを表6に示す。これらのピンの幾つかの状態
が、ホスト・レジスタstr0、str1およびhct
rのフラグに結び付けられている。
【0130】ホスト・データ転送は、転送元データ・ロ
ードとそれに続く転送先データ・ライトからなるという
点において、前述のローカルなデータ転送と同じであ
る。ホスト・データ転送が、他方と異なるのは、ホスト
・データ転送では転送元または転送先の何れかがDSP
の外にあるという点であり、これは、DMAバスが転送
の半分に使用されるにすぎないことを意味する。例え
ば、DSPメモリに書く場合、ホストCPU1200
は、転送先のメモリ・アドレスをホスト・ポインタ・レ
ジスタhp 3024に書き、入力データをホスト入力
データ・レジスタhi3042に書き込む。DSPメモ
リから読む場合は、ホストが、転送先のメモリ・アドレ
スをホスト・ポインタ・レジスタhp 3024に書
き、DSPが、ホストにより読み出されるホスト出力デ
ータ・レジスタho 3044に出力データを入れる。
【0131】ホスト・データ転送には2種類ある。ホス
ト・ポインタ・レジスタhp 3024は、ホストが読
んだり書いたりするデータの転送元または転送先のアド
レスをホストが書き込む所である。そのホスト・データ
・インタフェースに接続された2つのレジスタhi 3
042およびho 3044、即ち、ホスト入力レジス
タおよびホスト出力レジスタが、DMACにより与えら
れる。DMACは、これらの2つのバスおよび3つのレ
ジスタを用いて、2種類のホスト・データ転送をサポー
トする。1つは、DMACによって制御されるRDP/
WRPホスト・コマンドによる独立したリード/ライト
であり、他方は、ホストDMAコントローラにより制御
される連続的なホストDMA転送である。
【0132】表7に、実施例においてホスト・コンピュ
ータがDMACに送ることができるホスト・コマンド・
セットを掲げる。ホスト・コンピュータは、ホスト・コ
マンドをホスト制御レジスタhctr 3011に書き
込む。
【0133】
【表7】
【0134】独立したホスト・リード/ライト動作によ
り、DSPのパラレル・インタフェースに接続された外
部メモリを含むDSPの任意の位置へのランダム・アク
セスが可能となる。このことは、DSPとその周辺装置
のデータや設定済みの制御機能の小部分を修正するのに
有用である。これに対し、DMA転送により、比較的大
量のデータを転送する効率的な方法が得られる。
【0135】DSPチップのメモリ空間割り当て資源が
ホスト・データ転送の転送元または転送先である場合、
その転送動作は、何れもDMACへの割込みとして実行
される。ホストによる割込みは、前記の周辺割込みとし
て処理される。なお、ホスト・データ入力フル割込みD
IFは、優先度が2番目の割込みであり、データ出力エ
ンプティ割込みDOEは、第3の優先度を有する。この
ように、ホストの割込みは、周辺割込みにより優先され
て処理される。その他のローカルなデータ転送に関して
も同様であるが、ホストによるアクセスは、すべて並列
アービタ2100を通り、必要な場合(ページ・アクセ
スの競合がある場合)には、DSPコアのサイクルの合
間をぬってメモリにアクセスする。メモリ・アクセスの
競合がない場合、低速のホスト・データ転送でも、DS
Pコアの動作速度を落とすことなくバックグラウンドで
実行することができる。
【0136】転送元または転送先がDSPコアのレジス
タの場合、DMACが、RDP(DSPを読む)または
WRP(DSPに書く)コマンドをDSPの共用デコー
ダに送る。そして、これらのコマンドがDSPコアによ
り正規のレジスタ間の移動(move)動作として実行され
る。ホストRDP/WRPコマンドは、次に説明する。
【0137】RDP/WRPホスト・コマンドによるリ
ード/ライト 図12Aおよび図12Bは、8ビット・ホスト・データ
・バスに対するホストのリードおよびライトの手順を示
し、図13Aおよび13Bは、16ビット・ホスト・デ
ータ・バスに対するホストのリードおよびライトの手順
を示す。
【0138】8ビット・ホスト・データ・バスの場合、
8ビット・データ・バスHD0〜7を通してホストが2
4ビットのデータをリード/ライトしたり、18ビット
のポインタ・データを設定したりする場合、DSPを3
回アクセスしなければならない。したがって、この手順
を実行するには、計7回のホスト・アクセス(データ転
送に3回、ポインタ転送に3回、さらにWRP/RDP
コマンドに1回)が必要となる。16ビット・ホスト・
データ・バスの場合、16ビットのHD0〜15を通し
てホストが24ビットのデータをリード/ライトした
り、18ビットのポインタ・データを設定したりする場
合、DSPを2回アクセスしなければならない。したが
って、この手順を実行するには、計5回のホスト・アク
セス(データ転送に2回、ポインタ転送に2回、さらに
WRP/RDPコマンドに1回)が必要となる。
【0139】DSPのメモリまたは周辺装置からリード
するためには、ホストは、まず18ビットのメモリ転送
元アドレスをホスト・ポインタ・レジスタhp 302
4に直に書き込む(8ビット・ホスト・データ・バスを
用いる場合、このhpレジスタは、レジスタhp2、h
p1およびhp0としてアクセスされ、16ビット・ホ
スト・データ・バスを用いる場合、このhpレジスタ
は、レジスタhp2およびhpLとしてアクセスされ
る)。次に、ホストが、RDPコマンドをホスト制御レ
ジスタhctr 3011に書くことによりRDPコマ
ンドを送る(図4Aおよび4B参照)と、直ちに、hp
レジスタによって指示される転送元データがホスト出力
レジスタ3044に転送される。
【0140】ホスト状態レジスタ1 hstr1のビッ
トの1つが、割込みフラグDOE1である。DOE1割
込みフラグは、RDPホスト・コマンドがDSPにより
フェッチされ、割込み信号DOE(ホスト・データ出力
エンプティ)がDMACの割込みコントローラに送られ
た後に、セットされる。DMAC割込みコントローラが
その割込みを受け付けた後、割込みアクノリッジ信号D
ACKが、DMAC3000に送り返されて、DOE1
がクリアされる。DOE割込みは、優先度3である(表
3参照)。
【0141】結局、ホストは、ho2、ho1およびh
o0から一度に8ビットずつ読むか、またはho2およ
びhoLから2回読むことにより、レジスタhoから読
むことができる。
【0142】ホストがデータをDSPに書き込む場合、
ホスト1200は、まず、18ビットの転送先アドレス
をポインティング・レジスタhp 3024に直接書き
込む(8ビット・ホスト・データの場合、hpはhp2
〜0であり、16ビットホスト・データの場合、hpは
hp2およびLである)。そして、ホストは、ホスト入
力レジスタhi2〜0(8ビット・ホスト・データの場
合)またはhi2およびL(16ビット・ホスト・デー
タの場合)にデータを書き込む。次に、ホスト・コマン
ドWRPをホスト制御レジスタhctr 3011に書
き込む。このコマンドにより、hi 3042の内容が
hp 3024によって示された転送先に書き込まれ
る。
【0143】WRPホスト・コマンドのフェッチの後、
DMACの(レジスタhstr1の)割込みフラグDI
FIが、DMACによりセットされ、割込み信号DIF
が、DSPの割込みコントローラに送られる。DSPの
割込みコントローラ2600は、DACK信号をDMA
C3000に送ることにより、その割込みを承認する。
ここで、DMACは、DIFIフラグを解除する。
【0144】図14Aおよび14Bには、ホスト120
0がDSPの資源をアクセスする種々のデータ経路を示
す。転送が、ホスト入力レジスタhi 3042および
ホスト出力レジスタho 3044とDSPのメモリ
(オンチップ・データ/命令メモリ1900、140
0、メモリ空間に割り当てられた周辺装置2300、ま
たは外部メモリ2500)との間で行われる場合、この
転送は、バスDA 1112およびDD 1106によ
って実行され、DMAC3000の割込みとして実行さ
れる。
【0145】図14Bは、ホスト入力/出力レジスタh
i、hoとDSPコア3500との間のデータ転送を示
す。ホスト・アドレス・ポインタhpがDSPコアのレ
ジスタ(DMAバスDA、DDからアクセスできない)
のアドレスを保持している時は、DMACは、割込みデ
ータ転送を行わない。代わりに、DMACは、RDP/
WRPホスト・コマンドをDTCOM0〜3信号線を通
して、7ビットのDSPコアレジスタ・コードをDTX
CODE0〜6信号線を通して、命令デコーダ1600
に送る(図4C参照)。共通デコーダ1600は、この
データ転送をレジスタ間の移動(move)動作として実行
する。
【0146】RDP/WRPを用いたメモリへのリード
/ライト DSPがHALT(ホールト、停止)またはRUN(ラ
ン、実行)モードの時でも、メモリまたは周辺装置への
ホストのデータ転送は、実行することができる。データ
転送動作がないと、DMACはHALTモードに置かれ
る。進行中のデータ転送があるときは、DMACはRU
Nモードにある。
【0147】図15は、(遅延がなく)DMACがHA
LTモードである時のホストRDP/WRPコマンドに
対する実行のタイミングを示す。DSPがRUNモード
の場合もDSPがSLEEPモードの場合も、この種の
転送が可能である。
【0148】ホスト・コマンドがラッチされた後のサイ
クルにおいて、DMACの入力レジスタフル割込みDI
F(WRPコマンドに対して)または出力レジスタエン
プティ割込みDOE(RDPコマンドに対して)が、D
MAC割込みコントローラに送られる。DMACの割込
みコントローラ3022が、この割込みを受けると、直
ちに、表3の優先順位表を用いてその優先度を解読す
る。その割込みが受理されると、割込みコントローラ3
022は、割込み承認(アクノリッジ)DACKを送り
返して、DIF/DOEフラグをクリアする。同時に、
そのホスト・コマンドに対応する割込み命令が、解読・
実行される。ホスト・コマンドがWRPの場合、*hp
=hiがフェッチされて解読される。そのコマンドがR
DPならば、ho=*hpがフェッチ・解読される。こ
れらの命令は、次のサイクルで実行される。DMAアド
レス・バスDA 1112上にアドレスが出され、次に
DMAデータ・バスDD 1106を通してデータが転
送される。
【0149】このデータ転送実行サイクル中に、並列ア
ービタからのPASTALL信号が時刻t2に監視され
る。この信号がLow の場合(メモリ・アクセスを進める
ことができることを意味する)、WRP/RDPが実行
されたことがホストにわかるように、ホストへの繰り延
べ信号HWAITを解除する。
【0150】DMACがHALTモードで、アドレス位
置へのアクセスに1サイクル分のウェートが必要な場合
のホストRDP/WRPコマンドに対する実行タイミン
グを図16に示す。この場合、並列アービタ2100か
らの延期信号PASTALLが、最初のデータ転送実行
サイクルにおいてセットされ、1サイクル後にリセット
される。この延期信号がセットされている限り、DDバ
スから転送先に書き込まれるデータは、保留される。繰
り延べ信号HWAITの解除は、ウェートのない例と比
較して、1サイクルだけ延期される。
【0151】DMACがRUNモードで(即ち、DMA
Cがローカルなデータ転送を実行して)、アドレス指定
された位置へのリード/ライト・アクセスにウェートを
必要としない(即ち、メモリ・アクセスの競合がなく、
アドレス指定された位置が1サイクルでアクセスするこ
とができる)場合のホストRDP/WRPコマンドに対
する実行のタイミングを図17に示す。この実行タイミ
ングは、DSPコアのRUNおよびSLEEPの両モー
ドで適用できる。ホストRDP/WRP割込みシーケン
スにおいては、DMAC本来のデータ転送サイクルから
アクセス・サイクルが盗用される。この割込みは、現在
のDMACのデータ転送の終了後(即ちdr 3040
へのロードおよびdr 3040からのストア)に限っ
て、受け付けられる。
【0152】RDP/WRPを用いたDSPコアのレジ
スタへのリード/ライト DMACがSLEEPモードであり、ホストによりアク
セスされている位置がDSPコアのレジスタである場合
のホストRDP/WRPコマンドの実行タイミングを図
18に示す。この種の転送は、DSPコアがRUMまた
はSLEEPモードの場合に、可能である。
【0153】ホスト・アドレス・ポインタhp 302
4により、DSPコアのレジスタのメモリ・マップされ
た・アドレスが保持される。このアドレスは、ホスト・
コマンドがラッチされた後のサイクルで解読(デコー
ド)される。次のサイクルで、DMACが、RDP/W
RPホスト・コマンドをDTCOM0〜3信号線を通し
て、7ビットのレジスタ・コードをDTXCODE0〜
6信号線を通して、命令デコーダ1600に送る。共通
デコーダ1600は、そのホスト・コマンドを受信する
と直ちに、それを解読して、そのデータ転送をレジスタ
間の移動(move)動作として実行する。
【0154】図19Aは、DMAC内部のホスト・イン
タフェース・レジスタを直接アクセスするホスト・コン
ピュータの実行タイミングを示す。このようにアクセス
可能なレジスタは、図4Bに示した。ホスト・コンピュ
ータに直接アクセス可能なレジスタの場合、そのように
アクセスされるレジスタのデータは、HRDの立ち下が
りエッジに続く2番目のDSP命令サイクルの時刻t0
に、ホスト・データ・バスHD0〜15上に直接出され
る。HRDの立ち上がりエッジの検出の後、データ・バ
スHD0〜15は、HRD信号の取り下げに続く第2の
DSPサイクルの時刻t0にハイ・インピーダンスとな
る。このシーケンスの間、ウェート・ピンHWAIT
は、Highに保持される。この場合、ウェート・ステート
は無用である。
【0155】図19Bは、hctrを含まないホスト・
インタフェース・レジスタへのホスト・コンピュータ・
ライトのシーケンスの実行タイミングを示す。(ホスト
制御レジスタhctrに書き込みを行うと、そのレジス
タに書き込まれたコマンドは、何れを問わずDMACに
より実行され、その後、htcrは、DMACのホスト
・インタフェース制御ブロックにより自動的にクリアさ
れるので、注意を要する。)HWRの立ち上がりエッジ
に続くDSPサイクルの相t0において、ホスト・デー
タ・バスHD0〜15上のデータが、ホスト・アドレス
・バスHA0〜3上の信号によって指定される転送先レ
ジスタに格納される。このシーケンスの期間中、ウェー
ト・ピンHWAITがHighに保持される。ここでは、ウ
ェート・ステートは、必要ない。
【0156】さらに、図4Dを参照して注目されること
であるが、ビット・フラグ・レジスタhrq3017を
セットすると、HIRQ信号がホスト・コンピュータに
送られるので、DSPは、これにより、割込み要求をホ
スト・コンピュータに送ることができる。ホストが、H
IACK信号を送り返すと、ビット・フラグ・レジスタ
hrq3017は、DMACによってクリアされる。
【0157】ホスト・メモリとDSPの間のホストDM
A転送 ホストDMAは、ホスト・メモリ1204とDSPの間
の高速データ転送として使用される。ホストDMA転送
を用いて、データと命令の両方をDSPに送ることがで
きる。したがって、ホストのメモリ、ホストのハード・
ディスク、フロッピィ・ディスク、または通信網から大
きなアプリケーション・プログラムやデータをダウンロ
ードすることができる。ホスト1200は、それ自体の
DMAコントローラ1202を用いて(図4D参照)、
DSPに内蔵のメモリおよびレジスタのみならず、DS
Pの外部メモリ2500もアクセスすることができる。
ホストDMAは、2つのモードで行うことができる。即
ち、DSPがホストからメモリ・アクセス・サイクルを
盗用するサイクル・スチール・モード、および転送中に
DSPがホストバスを占有するバースト・モードであ
る。
【0158】図20は、本発明のDSPに接続されたD
MAコントローラを備えたホスト・コンピュータを示
す。ホストのDMAC1202は、ホスト1200に内
蔵されているか、またはホスト1200の外にあって、
それに接続されていることがありうる。DSPのホスト
・データ・バスHD0〜7(ホスト・バス幅信号HBW
=0のとき)またはHD0〜15(HBW=1のとき)
は、ホスト自体のデータ・バスの対応する部分、即ち、
ビット0〜7またはビット0〜15に接続される。ホス
トは、アドレスをアドレス・バスを介してDMACに送
る代わりに、アドレスをホスト・ポインタ・レジスタh
p 3024を介してDSPに送る。ホストは、ホスト
DMA転送の期間中、転送を3回(HBW=0の場合)
または2回(HBW=1の場合)行う度にhp 302
4の値をインクリメントする。この回数は、24ビット
のDSPレジスタの書き込みに要する転送回数に対応す
る。
【0159】ホストDMA転送は、ハンドシェーク信号
HDREQ、HDACKおよびHEODによって制御さ
れる。サイクル・スチール・データ転送では、DMAC
が、HDREQ信号をセットすることにより次のデータ
を要求する。すると、ホストDMAコントローラが、そ
の要求を認めてHDACK信号をDSPに送る。バース
ト転送モードにおいては、転送期間中、HDREQがHi
ghに保持される。HDACKの立ち下がりエッジによっ
て、DSP内部のデータ移動が開始される。データ転送
処理がすべて完了すると、ホストDMAコントローラ1
202が、データ終了信号HEODを発する。
【0160】図21は、ホストのバスが8ビットの場合
のサイクル・スチールDMAリードにおけるDMA手順
を示す。まず、ホストが、そのDMA転送に対する開始
アドレスをDSPポインタ・レジスタに書き込む。ま
た、ホストは、ホスト・メモリ位置の転送元または転送
先とDMA転送回数とをホストDMAC1202に送
る。そして、ホストが、開始コマンドをホストDMAC
に書き込むと、DMACは、DSPからのHDREQ信
号の受信後、直ちに転送を開始する準備が整う。
【0161】ホストは、HDREQ信号を受信すると直
ちに、DMACR(DMAサイクル・スチール・リー
ド)ホスト・コマンドをDSPに送る。これにより、h
str0レジスタ3013のDMAモード・フラグDM
1およびDM0が値「0,0」に設定される(図4F参
照)。ポインタ・レジスタhp 3024によって指し
示されるメモリ/レジスタの内容が、出力レジスタho
3044に移される。この転送の後、DSPのDMA
Cが、hp 3024の内容をインクリメントする。
【0162】サイクル・スチールDMAモードの場合、
そのような転送が終了する度に、データ転送要求信号H
DREQが、DSPからホストのDMAC1202に送
られる。なお、動作がDMAライトである場合、HDR
EQがホストDMACに送られる前にデータが転送され
ることはない。
【0163】ホストDMAC1202が、HDREQ信
号を受信し、バス要求RQをホストに送る。ホストがバ
スの利用を許可した後、ホストDMAC1202が、ア
クノリッジ信号HDACKをDSPに送る。HDACK
信号の受信に続いて、DSPは、HDREQ信号を取り
下げ、レジスタho 3044に読み出し用のデータが
用意されたことをホストDMAC1202に合図する。
次に、ホストDMACが、HWR信号を送ることによ
り、hoレジスタの内容がホスト・メモリ1204に書
き込まれる。なお、DSPにおけるHRDおよびHWR
の信号の意味が、ホストDMAモードに対しては入れ替
わるので、注意する必要がある。これは、ホスト・メモ
リ1204とDSP1100が、同じHRDおよびHW
R線に接続されていても、それらの一方のみが送信側と
なることができ、他方は受信側となるからである。した
がって、ホストDMAモードでは、HWRコマンドによ
り、hoレジスタのデータが読み出されてホスト・デー
タ・バスHD上に出され、一方、HRDコマンドによ
り、ホスト・データ・バスHD上のデータがhiレジス
タに書き込まれる。
【0164】サイクル・スチール・モードにおけるホス
トDMAライトの場合、一度、データが入力レジスタh
i 3042に送られると、DSPにおいて、hiの内
容がhp 3024で示される転送先に移され、hp
3024に格納されているポインタがインクリメントさ
れる。例えば、ホストがデータをhi 3042に書き
込むと、DMAのホスト・インタフェースが、HIFフ
ラグをセットする。これにより、割込みがDMACシー
ケンサに送られる。
【0165】これらのホストDMA動作は、DMACへ
の割込みとして実行される。ホスト・コンピュータが、
hstr1(表5に示されているようにホスト・コンピ
ュータが直接アクセスできる)のDOEIフラグをセッ
トすると、リード割込みが発生し、対応する割込みが、
DMACの割込みコントローラに送られるが、一方、デ
ータがホスト・コンピュータにより入力レジスタhiに
ストアされた後、ホスト・コンピュータがhstr1の
DIFIフラグをセットすると、ライト割込みが発生
し、対応する割込みが、DMACの割込みコントローラ
に送られる。DMACシーケンサによって実行される割
込みプログラムは、ライトに対しては*hp++=hi
であり、リードに対してはho=*hp++である。先
に説明したように、ホスト・データ・バスが8ビット・
バスの場合、ホスト・コンピュータは、18ビット・ホ
スト・ポインタ・レジスタhp 3024を設定するた
めにも、またho/hiホスト・データ・レジスタをリ
ード/ライトするためにも、アクセスを3回ずつ行わな
ければならない。ホスト・データ・バスが16ビット幅
の場合には、それらの各動作に対して2回のアクセスが
必要となる。
【0166】図22を参照すると、ホスト・バースト転
送においては、DOE(ホスト・リードの指定)または
DIF(ホスト・ライトの指定)の何れかの割込みを一
回だけDSPに送り、以降、データの最後に達するまで
連続的にデータを転送する点を除けば、ホスト・バース
トDMA転送は、サイクル・スチール・データ転送と同
じである。これに対して、サイクル・スチール・モード
DMA転送では、各ワードの転送の前にDSPの割込み
処理が必要となる。バースト・モード転送は、DSPが
DMA処理の期間中HREQピンをHighに保つことによ
って実行され、各データ転送は、HDACK信号の立ち
下がりエッジで開始される。さらに、ホスト・バースト
DMA転送の場合、DMAC3000において内部回数
カウンタはデクリメントされない。そのかわり、ホスト
・コンピュータ、即ち、ホスト・コンピュータのDMA
により、カウンタが維持され、最後のデータ・ワードが
転送された後、データ終了信号HEODがDMAC(H
EOD\ピン)に送られる。
【0167】すべてのホストDMA処理は、同様の実行
タイミングを有する。ホスト・コマンドDMACRまた
はDMABRの後、DSPは、データ移動を行って、H
DREQ信号を送る。これは、割込みDOEをDMAC
割込みコントローラに送り、且つ割込みプログラムho
=*hp++を実行することにより実行される。最初の
転送に対しては、DMACRおよびDMABRにより、
割込みを開始する(DOEI割込みフラグをセットす
る)。以降のデータ転送に対しては、ホスト(ホストD
MAC)が、すべてのhoレジスタ(即ち、ho2,h
o1,ho0、または、ho2,hoL)を読んだ時
に、割込みが開始される。DMACが実行中の場合、こ
のDMAC割込みのために、ローカルなDMAアクセス
動作から1サイクルが盗まれる。このDMAデータ転送
に対しては、余分なハードウェアを一切必要としない。
【0168】ホストDMAライトの場合、DMACWま
たはDMABWホスト・コマンドの後に、HREQ信号
が出される。このデータ転送*hp++=hiは、すべ
てのホスト入力レジスタhi(hi2,hi1,hi
0、または、hi2,hiL)に書き込まれてから、行
われる。
【0169】DSPのブート RST\ピンは、通常、これにRSTパルスを生成する
電源リセット回路、ウォッチドッグ回路、外部ホスト・
プロセッサ、手動スイッチ、またはこれらの組み合わせ
に接続される。RST\へのリセット・パルスにより、
DSPが、それ自体をリセットし、HMOD<0,1>
ピンを検査し、さらにHMOD<0,1>ピンの設定状
態に基づいて少なくとも1つのリセット動作を行う。
【0170】本発明は、2つのDSPブート・モード、
即ち、ローカルおよびホストを与える。ブート・モード
は、信号HMOD0および1によって制御される。DS
Pのパラレル・インタフェースにROMが接続されてい
ないときに、ホスト・コンピュータから起動するために
は、外部ピンHMOD<0,1>の信号を「1、0」に
設定する。信号HMOD<0,1>をホスト・ブート・
モードに設定した状態でRSTピンをセット出力する
と、DSPは、いつでもレジスタをすべてリセットし
て、スリープ・モードで待機する。ここで、ホストが、
WRPコマンドまたはバースト・モードの連続DMA転
送を用いて、割込みベクトルおよびリセット・ルーチン
・プログラムをオンチップ・命令メモリまたはDSPの
外部メモリにダウンロードする。次に、DSPにおい
て、制御フラグをセットして、64の割込みベクトル・
ワードの格納場所(即ち、チップ上かチップ外か)を示
す。最後に、ホストが、GRES(全体リセット)コマ
ンドを送って、DSPの動作を開始する。また、ホスト
は、GRESコマンドを送る前に、付加的なプログラム
およびデータをDSPの内部および外部のメモリにダウ
ンロードするのが一般的であるが、付加的なプログラム
は、GRESコマンドを送った後にロードすることもあ
り得る。
【0171】ローカル・ブート・モード 割込みベクトルが、チップ上の命令メモリか、またはパ
ラレル・インタフェースに接続されたローカルな外部メ
モリにある場合、ローカル・ブート・モードが用いられ
る。ホスト・モード信号HMOD<0,1>を「0,
0」に設定することにより、ローカル・モードが選択さ
れる。RST信号がセットされると、DSPは、すべて
のレジスタをリセットし、直ちにRSTベクトル記憶位
置まで飛び越してリセット・ルーチンを開始する。
【0172】ホスト・インタフェースに接続されたRO
Mを用いたスタンド・アロン・ブート・モード DSPにホストが接続されていない場合、このDSP
は、そのパラレル・インタフェースに接続されたROM
またはホスト・インタフェースに接続されたバイト構成
のROMから起動することができる。後者の構成は、次
の理由から特に有用である。
【0173】1)DSPのすべてのデータおよびプログ
ラム(これは26Kワード×24ビット=6.114M
bを超えない)を保持するには、8Mb(1Mワード×
8ビット)もしくはそれ以上のROMが1個で十分であ
る。しかし、ROMの最大ワード長は8ビットであるか
ら、24ビット・パラレル・ポートでDSPにロードす
るには、8MbのROMが3個必要となる。
【0174】2)パラレル・インタフェースからブート
ROMを取り去ることにより、並列な外部メモリのロー
ド処理が減るので、外部のRAMへのウェート無しのア
クセスがさらに実現しやすくなる。
【0175】図23は、ROMに対するホスト・インタ
フェースの接続を示す。ホスト・インタフェースをこの
モードに設定するには、モード制御ピンHMOD<0,
1>を値「1,0」に設定する。このモードにおいて
は、ピンHCS、HDACK、HEOD、HIACKお
よびHWRをすべてHigh(Vcc)にする必要がある。
ピンHBWは、0に接続して、ホスト・インタフェース
が8ビットのホスト・データを受信するように用いられ
ることを指定しなければならない。
【0176】なお、ホスト起動機能のために、24ビッ
トのDSP1100(通常、18ビット・アドレスを使
用)が20ビットのアドレスを有する8ビットROMか
らロードできることが必要となる。このため、DSPと
ROMが効率的に通信できるように、2つの適応が必要
となる。第1に、DSPが必要とする24ビット・ワー
ドを書き込むために、3つの連続したメモリ位置からの
8ビットのROMデータをホスト入力レジスタを構成す
るレジスタhi2、hi1、hi0に順次書き込む。こ
れには3サイクル必要である。第2に、ROMの20ビ
ット・アドレス空間をアクセスできるように、DSP
が、2ビットのホスト・ポインタ基底カウンタhpb
3026を付加的に使用する(図4Cも参照)ととも
に、外部のラッチ3202、3204を使用して、8ビ
ットのデータ・バスHD0〜7と4ビット・ホスト・ア
ドレス・バスHA0〜3によって20ビットのアドレス
が得られるようにする。
【0177】DSPのメモリ資源にアドレスを送る(例
えば、命令メモリやデータ・メモリにロードする場合)
ために、ホスト・ポインタ・レジスタhp2、hp1、
hp0を使用する。バイト構成のROMにアクセスする
ために、スタンド・アロン・ブート中は、付加的な2ビ
ットのベース・ポインタ・レジスタhpb 3026を
hpポインタ・レジスタに、それらの最下位の位置に設
ける。これにより、ROMの全メモリ空間をアドレス指
定するのに必要な20ビットが与えられる。
【0178】hpbカウンタ3026が0から2までイ
ンクリメントされる間に、1つの24ビット・ワードの
最下位バイト、中間のバイトおよび最上位バイトが、R
OMからホスト入力レジスタhiに対するホスト・ポイ
ンタ・レジスタに書き込まれる。hpb=3に対するR
OMの記憶位置は使用されない。したがって、ROMの
ワード・アドレスの境界は4の倍数で発生する。ROM
の長いアドレスA0〜19は、8ビットの双方向ホスト
・データ・インタフェースHD0〜7において、データ
と共に多重化される。ROMアドレスA0〜19の20
ビットがすべて同時に得られることを保証するために、
アドレス・ビットA2〜9およびA10〜17をそれぞ
れラッチする2つのラッチ3202および3204を設
けた。アドレス・ビットA2〜9/A10〜17のラッ
チは、第1および第2のアドレス・ラッチ3202およ
び3204の制御ピンCPにそれぞれ接続された外部ピ
ンHAL1およびHAL2をセットすることにより行
う。アドレス・ビットA0〜1およびA18〜19は、
HA0〜3のための双方向のホスト・アドレス・インタ
フェース3206によってホスト・アドレス線HA0〜
3上に直接与えられる。
【0179】図24は、DSPの命令メモリの最初の1
024ワードをバイト構成のROMからダウンロードす
るバイト・ブート・シーケンスを示す。バイト・ブート
動作のシーケンスは、DSPのリセット・ピンRSTを
セットすることにより、開始される。RST信号の立ち
上がりエッジで、ホスト・モード・ピンHMOD<0,
1>が「0,1」に設定されている場合、DMACは、
(図4Fに示すように、ホスト状態レジスタhstr1
のPSM0〜1を「0、1」に設定することにより)ホ
ストをSLEEPモードにし、ホスト・ポインタ・レジ
スタhp2,1,0およびhpbを0x00000に設
定し、さらに反復回数レジスタrcを値1023に設定
することにより、バイト・ブート・シーケンスを開始す
る。
【0180】なお、フラグPSM0〜1に値「01」を
格納することによりDSPのモードを「スリープ」に設
定することは、ホスト・コマンド「step」の受信時
に1命令を実行することを除いて、DSPコアの動作を
停止することであるから、注意を要する。フラグPSM
0〜1に値「10」を格納することによりDSPのモー
ドを「ソフトウェア・スタンバイ(SSBY)」に設定
することは、DSPコア3500およびDMAC300
0の動作を停止することである。
【0181】図4Cに示すように、バイト・ブート・シ
ーケンスは、DMAC3000において独立したバイト
・ブート・シーケンサ・ステート・マシーン3080に
よって制御される。
【0182】ここで、DMACは、DSPの命令メモリ
の最初の1024の24ビット・ワードがROMから8
ビット・ワードずつダウンロードされる反復的処理を開
始する。これは、次の動作シーケンスによって実現され
る。
【0183】(1)8ビット・ホスト・ポインタ・レジ
スタhp0の内容をデータ・ピンHD0〜7を通してア
ドレス・ラッチ1に出力し、ここで、HAL1を一時的
に出すことによりROMのアドレス・ビットA2〜9と
してラッチする。
【0184】(2)8ビット・ホスト・ポインタ・レジ
スタhp1の内容をデータ・ピンHD0〜7を通してア
ドレス・ラッチ2に出力し、ここで、HAL2を一時的
に出すことによりROMのアドレス・ビットA10〜1
7としてラッチする。
【0185】(3)2ビットのホスト・ポインタ・レジ
スタhp2および2ビットのホストベース・ポインタ・
レジスタhpbの内容をそれぞれアドレス・ビットA1
8,19(A19は、ROMのアドレスの最上位ビット
である)およびアドレス・ビットA0,1(A0は、R
OMのアドレスの最下位ビットである)としてアドレス
・ピンHA0〜3に出力するとともに、出力イネーブル
信号HOEをメモリに出力することにより、ROMがア
ドレスA0〜19にある8ビットをホスト・データ・バ
スHD0〜7に出すようにする。
【0186】データ・ピンHD0〜7を通してDSPに
入力される最初の8ビットをホスト入力レジスタの下位
8ビットhi0にラッチする。この転送には7サイクル
の一定なウェート(例えば、40ns/サイクルなら
ば、280nsのウェートに相当する)を与える。この
最初の転送が終了した後、ホストべースポインタ・レジ
スタを1だけインクリメントする。
【0187】レジスタhp2、hpbをバス線HA0〜
3に出力するステップ、HOEを出すステップ、ホスト
・データ・バス上のデータをラッチするステップおよび
hpbをインクリメントするステップを繰り返して、2
4ビットの命令ワードの中間および上位のバイトをそれ
ぞれhi1およびhi2に一時的にラッチする。これら
の第2および第3の転送に対して、2つのアドレス・ラ
ッチのアドレス・ビットA2〜19は、そのまま保持す
る。これにより、これらのラッチは、24ビットダウン
ロードする度に一回だけ更新するようにする。
【0188】3つのバイトをhi2、hi1、hiにダ
ウンロードした後、バイト・ブート・シーケンサによ
り、DMACの転送コントローラ内のレジスタdssr
3052に16進値3Dを格納する。これにより、D
MACの転送コントローラがコマンド*hp++=hi
を実行する(図5C参照)。このコマンドにより、レジ
スタhiの24ビット・データが、18ビット・ホスト
・ポインタ・レジスタhpで示されるアドレスに書き込
まれ、さらにデータ転送の実行後、レジスタhpが1だ
けインクリメントされる。なお、ホスト・ライト・コマ
ンドにおいて、2ビットのhpbの値は使用されない。
【0189】24ビット・データの転送が終了したと
き、4回目に備えて、ポインタhpbをインクリメント
すると、hpbカウンタはゼロとなる(これにより、転
送されるべき次の3つの8ビットROMワードの最初の
ワードを指し示す)。
【0190】最初の1024の24ビット・ワードを命
令メモリに書き込むまで、このサイクルを繰り返す。こ
れらの最初の1024ワードをダウンロードし終える
と、DMACが、DSPの共通デコーダにGRESコマ
ンドを送る、つまり、ホスト制御レジスタhctrにお
ける4ビットのホスト・コマンド・フィールドにコード
「1011」を書き込む。これにより、プログラム・カ
ウンタが、リセット・ベクトルの格納位置までジャンプ
し、そこからリセット・ルーチン(一般に、バイト構成
のROMからダウンロードした最初の1024ワードに
含まれる)のアドレスを取り出す。最後に、DSPが、
リセット・ルーチンを実行する。
【0191】ここで、図24のフローチャートの最後の
ステップを参照すると、ROMからデータをさらにダウ
ンロードしなければならない場合もあり得る。このた
め、DMACは、プログラム可能なバイト・ブート機能
を用意している。この機能は、fr機能レジスタ301
6に値5をロードしたときに、バイト・ブート・シーケ
ンサ・ステート・マシーンが実行する。このDMAC機
能により、24ビット・ワードの指定された数「K」を
指定された任意の宛先アドレス「L」で始まるDSPの
命令メモリにダウンロードすることが可能となる。RO
Mにおいてダウンロードされるべき領域は、ROMアド
レス4Lで始まる4Kの8ビット・メモリ・ワードを占
める。これは、ROMにおいては、DSPワードが4ワ
ード間隔で発生する(4ワードのうち3つが24DSP
ビットを与え、4番目のワードが使用されない)からで
ある。このようにすることにより、hpの内容が、常に
ROMのアドレス・ビットA19〜2に対応するように
なる。
【0192】特に、リセット・プログラム(DSPの全
体リセットの後に実行される)が、ダウンロード位置開
始アドレスLをホスト・ポインタ・レジスタhpに書き
込むことにより、プログラム可能なバイト・ブート機能
を呼び出す。次に、リセット・プログラムは、ダウンロ
ードするべき24ビット・ワードの数Kを反復回数レジ
スタrcに書き込む。最後に、そのリセット・プログラ
ムの制御下にあるDSPコアにより、機能レジスタfr
を、そのプログラマブル・バイト・ブート機能の機能番
号である0x5という値に設定する。
【0193】機能レジスタが0x5に設定されると直ち
に、DMACのバイト・ブート・シーケンサ3080
が、SLEEPホスト・コマンドを共用デコーダに送る
ことによって、DSPコアをSLEEPモードにする。
DSPが停止している間に、DMACのバイト・ブート
・シーケンサ・ステート・マシーン3080が、ROM
の転送元アドレス4Lで始まるKワードをDSPの転送
先アドレスLにダウンロードし始める。スタンド・アロ
ン・バイト・ブートの場合と同様に、データは、ホスト
入力レジスタhiに格納され、さらにhpで示された転
送先に書き込まれる。Kワードがダウンロードされる
と、バイト・ブート・シーケンサ3080が、RUNホ
スト・コマンドをDSPコアに送る(このコマンドをホ
スト制御レジスタhctrに書き込む)。そして、DM
ACの動作が再開する。
【0194】他の実施例 以上本発明者らによってなされた発明を実施例に基づき
具体的に説明したが、本発明は上記実施例に限定される
ものではなく、その要旨を逸脱しない範囲で種々変更可
能であることはいうまでもない。
【0195】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば、下
記のとおりである。
【0196】本発明によれば、DMACの性能およびデ
ータ転送速度を向上させることができる。
【0197】本発明によれば、DSPと連携して動作
し、周辺およびホストのデータ転送要求を迅速に処理
し、また、オンチップ・ハードウェアの最小化を目的と
してホスト・インタフェースをもたらす、DSPチップ
に内蔵のDMACを提供することができる 本発明によれば、次のものを提供し、また可能にするこ
とができる。即ち、ローカルなDMA転送中のホストお
よび周辺のデータ転送;周辺の各割込みに対する専用の
ポインタおよびカウンタ;ホストの割込みの専用ポイン
タ;DMACハードウェアを用いるホスト・インタフェ
ース機能;強力なホスト・コマンドおよび全メモリ資源
へのアクセス能力;およびスタンド・アロンのDSPを
バイト構成のROMからブート(起動)する能力。
【0198】周辺割込みを処理するためにローカルなD
MA(例えば、メモリ間のデータ転送)に割り込む機能
が提供され、周辺割込みに対して専用のポインタやカウ
ンタが提供されることにより、周辺割込みへの応答や、
データ転送を効率化することができる。また、専用のレ
ジスタにより、ローカルなDMA動作の最中に(データ
転送の要求またはコマンドのための)ホストの割込みに
応答したり、ホストのデータ転送を極力効率化すること
ができる。
【0199】DMACはホスト・コンピュータおよび周
辺装置からの割込みを専用の割込みコントローラで処理
するため、本来のDMA転送を行う一方で、アドレス・
レジスタと反復回数レジスタの情報をメモリのスタック
領域に格納する必要もなく、ホストおよび周辺装置から
の割込を処理することができる。このため、本来のDM
A転送と割込みによるDMA転送またはホストDMA転
送との間の切換が、レジスタ内容のメモリ・スタック領
域への待避および復活に伴う「間接」処理のために命令
サイクルを一切用いることなく、可能である。
【0200】また、本発明によれば、DMACを内蔵し
たシングルチップ・ディジタル信号処理プロセッサ(D
SP)で、内蔵DMACにより周辺およびホストのデー
タ転送要求を迅速に処理するDSPを提供することがで
きる。
【図面の簡単な説明】
【図1】本発明によるディジタル信号処理プロセッサ
(DSP)のブロック図である。
【図2】バス・アクセス調停回路のブロック図である。
【図3A】DSPの内部メモリの一つのページ(頁)に
対するアクセス・アービタのブロック図である。
【図3B】内部データ・メモリ・ページ・アービタ21
02−0の動作および特定の命令シーケンスに対するペ
ージ・アービタの外部アクセス・アービタ2104との
協調動作を示すタイミング図である。
【図3C】内部データ・メモリ・ページ・アービタ21
02−0の動作および特定の命令シーケンスに対するペ
ージ・アービタの外部アクセス・アービタ2104との
協調動作を示すタイミング図である。
【図4A】本発明のダイレクト・メモリ・アクセス・コ
ントローラ(DMAC)のブロック図である。
【図4B】本発明のダイレクト・メモリ・アクセス・コ
ントローラ(DMAC)のブロック図である。
【図4C】本発明のダイレクト・メモリ・アクセス・コ
ントローラ(DMAC)のブロック図である。
【図4D】本発明のダイレクト・メモリ・アクセス・コ
ントローラ(DMAC)のブロック図である。
【図4E】シリアル通信を行う周辺装置とのDMA転送
に用いるオンチップ周辺装置インタフェースのブロック
図である。
【図4F】DMAC内のあるレジスタのブロック図であ
る。
【図4G】オンチップ周辺装置インタフェースにおける
あるレジスタのブロック図である。
【図5A】本発明のDMACにおいてデータ転送シーケ
ンサによって実行されるデータ転送マイクロ制御プログ
ラムを図式的に表した図である。
【図5B】本発明のDMACにおいてデータ転送シーケ
ンサによって実行されるデータ転送マイクロ制御プログ
ラムを図式的に表した図である。
【図5C】本発明のDMACにおいてデータ転送シーケ
ンサによって実行されるデータ転送マイクロ制御プログ
ラムを図式的に表した図である。
【図5D】本発明のDMACにおいてデータ転送シーケ
ンサによって実行されるデータ転送マイクロ制御プログ
ラムを図式的に表した図である。
【図6】DMA割込み制御レジスタのフィールドを図式
表現した図である。
【図7】DMACが行うローカルなデータ転送のフロー
チャートである。
【図8A】複数の発信源と複数の受信先との間のローカ
ルなデータ転送を表す図である。
【図8B】複数の発信源と複数の受信先との間のローカ
ルなデータ転送を表す図である。
【図8C】複数の発信源と複数の受信先との間のローカ
ルなデータ転送を表す図である。
【図9】重複した多数の割込みをDMACが処理するべ
き順序を決めるための優先順位決定過程のフローチャー
トである。
【図10】DMACが行う周辺装置へのデータ転送のフ
ローチャートである。
【図11】周辺割込み転送動作によって割り込まれるロ
ーカルなデータ転送のタイミング図である。
【図12A】8ビットのホスト・データバスを用いるホ
ストのリード手順およびライト手順のフローチャートで
ある。
【図12B】8ビットのホスト・データバスを用いるホ
ストのリード手順およびライト手順のフローチャートで
ある。
【図13A】16ビットのホスト・データバスを用いる
ホストのリード手順およびライト手順のフローチャート
である。
【図13B】16ビットのホスト・データバスを用いる
ホストのリード手順およびライト手順のフローチャート
である。
【図14A】ホストCPUがDSPのメモリ資源をアク
セスする場合のデータ経路を示す図である。
【図14B】ホストCPUがDSPのメモリ資源をアク
セスする場合のデータ経路を示す図である。
【図15】DMACがHALT(停止)モードにあり、
且つアドレス指定されたメモリ資源へのアクセスにウェ
ートの必要がない時のホストのRDP/WRPコマンド
の実行に対するタイミング図である。
【図16】DMACがHALTモードにあり、且つアド
レス指定されたメモリ資源へのアクセスに1サイクル分
のウェートが必要な時のホストのRDP/WRPコマン
ドの実行に対するタイミング図である。
【図17】DMACがRUN(実行)モードにあり、且
つアドレス指定された資源へのアクセスにウェートの必
要がない時のホストのRDP/WRPコマンドの実行に
対するタイミング図である。
【図18】ホスト・プロセッサによるコア・レジスタへ
のアクセスのタイミング図である。
【図19A】DMACのホスト・インタフェース内のD
MACレジスタに対するホストのリードおよびライトの
実行タイミングを示す図である。
【図19B】DMACのホスト・インタフェース内のD
MACレジスタに対するホストのリードおよびライトの
実行タイミングを示す図である。
【図20】本発明のDSPに接続されたホストDMAコ
ントローラを有するホスト・コンピュータのブロック図
である。
【図21】8ビットのホスト・バスを使用するサイクル
・スチール・モードのDMAリード動作に対するホスト
DMA手順のフローチャートである。
【図22】8ビットのホスト・バスを使用するバースト
・モードのDMAライト動作に対するホストDMA手順
のフローチャートである。
【図23】スタンド・アロン・バイト・ブート・モード
で使用するために本発明のDSPに結合されるブートR
OMのブロック図である。
【図24】バイト構成のROMからプログラムおよびデ
ータをダウンロードするバイト・ブート・シーケンスを
示す図である。
【符号の説明】
1000 データ処理システム 1100 ディジタル信号処理プロセッサ(DSP) 1102 Xデータ・バス(XD) 1104 Yデータ・バス(YD) 1106 DMACデータ・バス(DD) 1108 Xアドレス・バス 1110 Yアドレス・バス 1112 DMACアドレス・バス 1114 PC命令バス(INST) 1116 PCアドレス・バス 1118 メモリ選択線 1120 クロック線 1698 イミーディエトデータ線 1200 ホスト・プロセッサ 1300 タイミング・ユニット 1400 命令メモリ 1500 プログラム制御ユニット 1600 命令デコーダ 1700 演算ユニット 1800 アドレス・ユニット 1900 データ・メモリ 2100 並列アービタ 2300 周辺装置 2400 パラレル・メモリ・インタフェース 2500 外部メモリ 2200 周辺装置インタフェース(PDI) 2600 割り込みコントローラ 2800 ASE 3000 ダイレクト・メモリ・アクセス・コントロー
ラ(DMAC) 4000 パラレルI/Oインタフェース 3500 DSPコア 5000 発振器 2100 並列アービタ 2102 オンチップ・データ・メモリ・ページ・アー
ビタPGA 2104 外部メモリ・アービタEA 2106 周辺アービタPRA 2108 命令メモリ・アービタIA 3002 データ転送コントローラ 3010 反復回数レジスタrc 3012 反復回数レジスタirc0 3014 反復回数レジスタirc1 3016 機能レジスタfr 3020 状態レジスタstr 3038 転送元アドレス・レジスタas 3036 転送先アドレス・レジスタad 3042 ホスト・データ入力レジスタhi 3044 ホスト・データ出力レジスタho 3022 割り込み制御レジスタ 3051 デクリメント回路 3050 PLAシーケンサ 3081 制御レジスタctr

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 ディジタル信号処理プロセッサ(DS
    P)であって、 DSPデータを格納するデータ・メモリにおける記憶場
    所、DSP命令を格納するプログラム・メモリにおける
    記憶場所、および前記DSPに外部の周辺装置とのイン
    タフェースを与える複数のオンチップ周辺インタフェー
    ス、を含む複数のメモリ・マップされた(メモリ空間に
    割り当てられた)資源と、 前記のデータ・メモリおよびプログラム・メモリに接続
    され、前記の格納されたDSP命令を実行するDSPコ
    アと、 前記のデータ・メモリ、プログラム・メモリおよびオン
    チップ周辺インタフェースに接続され、前記メモリ・マ
    ップされた資源の指定されたものどうしの間のローカル
    なデータ転送を行うDMAコントローラと、 前記のデータ・メモリ、プログラム・メモリ、オンチッ
    プ周辺インタフェース、DSPコアおよびDMAコント
    ローラの所定の部分集合にそれぞれ接続された複数のデ
    ータ/アドレス・バス対とを備え、 前記複数のオンチップ周辺インタフェースは、前記周辺
    装置が前記メモリ・マップされた資源との間でデータを
    転送する用意があるときに、データ・リードおよびデー
    タ・ライトの割込み信号を生成し、 前記複数のデータ/アドレス・バス対のうち、第1の対
    が前記DMAコントローラにより行われるデータ転送に
    専用され、第2の対が前記DSPコアとの間でデータを
    転送するために前記DSPコアにより制御されるデータ
    転送に専用され、 前記DMAコントローラが、データ転送レジスタ、前記
    DSPコアにより開始され且つ前記DMAコントローラ
    により実行されるローカル信号転送のための転送制御レ
    ジスタの第1のレジスタ集合、および前記オンチップ周
    辺インタフェースからの割込みにより開始され且つ前記
    DMAコントローラにより実行されるデータ転送のため
    の転送制御レジスタの第2のレジスタ集合を含み、 前記第1のレジスタ集合が、第1の転送元アドレス・レ
    ジスタ、第1の転送先アドレス・レジスタおよび第1の
    反復回数レジスタを含んで前記ローカルなデータ転送の
    ための転送元および転送先ならびに前記ローカルなデー
    タ転送により転送するべきデータ数を指定し、前記第2
    のレジスタ集合が、第2の転送元アドレス・レジスタ、
    第2の転送先アドレス・レジスタおよび第2の反復回数
    レジスタを含み、さらに、 前記DMAコントローラが、前記オンチップ周辺インタ
    フェースの何れかより前記のデータ・リードおよびデー
    タ・ライトの割込み信号の何れかを受信したときに前記
    第1のレジスタ集合を用いて行われているローカルなデ
    ータ転送を中断し、前記の受信した割込み信号に対応す
    る別のデータ転送のための転送元および転送先のアドレ
    スを指定するためまた前記別のデータ転送によって転送
    するべきデータ量を指定するために前記第2のレジスタ
    集合を用いて、前記別のデータ転送を行い、且つ前記別
    のデータ転送が終了したときに前記ローカルなデータ転
    送を再開するDMA割込みコントローラを含む、ことを
    特徴とするディジタル信号処理プロセッサ。
  2. 【請求項2】 前記DMAコントローラが、指定された
    データ転送動作を行うデータ転送シーケンサを含み、該
    データ転送シーケンサが、各データ転送動作の各ワード
    を転送するために一組のロード/ストア動作を行う手段
    を含み、さらにロード/ストア動作の前記組が、ローカ
    ルなデータ転送の第1の命令サイクルの期間中に前記第
    1の転送元アドレスレジスタにより指定される位置から
    前記データ転送レジスタにワードをロード複写するこ
    と、および第2の命令サイクルの期間中に前記データ転
    送レジスタにある前記ワードを前記第1の転送先アドレ
    ス・レジスタにより指定される位置にストアすることか
    らなり、 前記DMA割込みコントローラが、前記オンチップ周辺
    インタフェースの何れかより前記のデータ・リードおよ
    びデータ・ライトの割込み信号の何れかを受信したとき
    に割込み未処理信号を前記データ転送シーケンサに送る
    手段を含み、 前記データ転送シーケンサが、前記割込み未処理信号に
    対応するデータ転送動作でない他のデータ転送動作を前
    記データ転送シーケンサが実行している場合、前記割込
    み未処理信号の受信時に実行されているロード/ストア
    動作の前記組の終了まで前記の対応するデータ転送動作
    の実行を遅らせる手段を含む、ことを特徴とする請求項
    1記載のディジタル信号処理プロセッサ。
  3. 【請求項3】 前記データ転送シーケンサが、多数の基
    本転送動作を実行する手段を含み、前記の基本転送動作
    の各々が、メモリ・マップされた(メモリ空間に割り当
    てられた)位置からレジスタへのロード動作、またはレ
    ジスタからメモリ位置へのストア動作を含み、複数の前
    記の基本転送動作が、前記の基本転送動作各々の実行後
    に前記第1の転送元アドレス・レジスタ、第1の転送先
    アドレス・レジスタ、第2の転送元アドレス・レジスタ
    および第2の転送先アドレス・レジスタの内の指定され
    たものを自動的にインクリメントすることを含む、こと
    を特徴とする請求項2記載のディジタル信号処理プロセ
    ッサ。
  4. 【請求項4】 前記DMAコントローラが、第3の転送
    元アドレス・レジスタ、第3の転送先アドレス・レジス
    タおよび第3の反復回数レジスタを含む第3のレジスタ
    集合を含み、 前記データ転送シーケンサが、前記第1のレジスタ集合
    を用いてローカルなデータ転送を実行し、前記周辺装置
    の中の指定された第1の周辺装置の間の指定されたデー
    タ転送を前記第2のレジスタ集合を用いて実行し、さら
    に前記周辺装置の中の指定された第2の周辺装置の間の
    指定されたデータ転送を前記第3のレジスタ集合を用い
    て実行する手段を含む、ことを特徴とする請求項1記載
    のディジタル信号処理プロセッサ。
  5. 【請求項5】 前記DMAコントローラが、前記DSP
    をホスト・プロセッサに結合するホスト・プロセッサ・
    インタフェースを含み、前記ホスト・プロセッサ・イン
    タフェースが、ホスト・ポインタ・レジスタ、ホスト入
    力データ・レジスタおよびホスト出力データ・レジスタ
    を含む転送制御レジスタの第4のレジスタ集合を含み、 前記ホスト・プロセッサ・インタフェースが、前記ホス
    ト・プロセッサが前記ホスト入力データ・レジスタにデ
    ータを直に書き込むことも前記ホスト出力データ・レジ
    スタからデータを直に読み出すこともできるようにする
    手段を含み、 前記データ転送シーケンサが、前記第4のレジスタ集合
    を用いて前記ホスト・プロセッサとの間のデータ転送を
    実行する手段を含み、該手段は前記ホスト・プロセッサ
    により前記ホスト入力レジスタに書き込まれた前記デー
    タを前記ホスト・ポインタ・レジスタにより指定される
    位置に格納する手段および前記ホスト・ポインタ・レジ
    スタにより指定される位置から前記ホスト出力データ・
    レジスタにデータをロードする手段を備えている、こと
    を特徴とする請求項1記載のディジタル信号処理プロセ
    ッサ。
  6. 【請求項6】 前記DMAコントローラが、第1および
    第2のホストDMA転送コマンドを含む複数のホストD
    MA転送コマンドの何れかを受信するホスト・コマンド
    ・レジスタを含み、 前記DMAコントローラが、前記ホスト入力データ・レ
    ジスタが前記ホスト・プロセッサからデータを受け取っ
    た場合、前記第1のホストDMA転送コマンドが前記ホ
    スト・コマンド・レジスタによって受信された後に、第
    1のホスト割込み信号を生成する手段を含み、 前記DMAコントローラが、前記ホスト出力データ・レ
    ジスタが前記ホスト・プロセッサによりデータを読み出
    された場合、前記第2のホストDMA転送コマンドが前
    記ホスト・コマンド・レジスタによって受信された後
    に、第2のホスト割込み信号を生成する手段を含み、 前記DMA割込みコントローラが、前記第1のホスト割
    込み信号が生成されたときに前記第1のレジスタ集合を
    用いて行われていたローカルなデータ転送を中断し、前
    記ホスト入力データ・レジスタの前記データを前記ホス
    ト・ポインタ・レジスタで指定される位置に転送し、さ
    らに前記の中断したローカルなデータ転送を再開し、ま
    た前記第2のホスト割込み信号が生成されたときに前記
    第1のレジスタ集合を用いて行われていたローカルなデ
    ータ転送を中断し、前記ホスト・ポインタ・レジスタに
    より指定される前記メモリ・マップされた資源の1つか
    ら前記ホスト出力レジスタにデータを転送し、さらに前
    記の中断したローカルなデータ転送を再開する手段を含
    む、ことを特徴とする請求項5記載のディジタル信号処
    理プロセッサ。
  7. 【請求項7】 前記第1のアドレス/データ・バス対を
    介する前記DMAコントローラと前記第2のアドレス/
    データ・バス対を介する前記DSPコアとにより競合す
    る、前記メモリ・マップされた資源の何れかに対するア
    クセスの間を調停するアービタをさらに備え、該アービ
    タは所定の優先度決定基準に従って前記複数のアドレス
    /データ・バス対の内の所定のバス対を介してアクセス
    を与える手段を含んでいる、ことを特徴とする請求項6
    記載のディジタル信号処理プロセッサ。
  8. 【請求項8】 前記の所定且つ複数のホストDMA転送
    コマンドが、第3および第4のホストDMA転送コマン
    ドを含み、 前記DMAコントローラが、前記第3のホストDMA転
    送コマンドが前記ホスト・コマンド・レジスタにより受
    信された後に第3のホスト割込み信号を生成する手段
    と、前記第4のホストDMA転送コマンドが前記ホスト
    ・コマンド・レジスタにより受信された後に第4のホス
    ト割込み信号を生成する手段とを含み、 前記DMA割込みコントローラが、前記第3のホスト割
    込み信号が生成されたときに前記第3のホスト割込み信
    号に応じて前記ホスト入力データ・レジスタから前記ホ
    スト・ポインタ・レジスタによって指定される一連のメ
    モリ・マップされた資源への一連のデータ転送を実行
    し、且つ前記一連のデータ転送の各々が行われている間
    に前記第1のレジスタ集合を用いて行われている何れの
    ローカルなデータ転送も中断する手段と、前記第4のホ
    スト割込み信号が生成されたときに前記ホスト・ポイン
    タ・レジスタによって指定される一連の前記メモリ・マ
    ップされた資源から前記ホスト出力レジスタへの一連の
    データ転送を行い、且つ前記一連のデータ転送の各々が
    行われている間に前記第1のレジスタ集合を用いて行わ
    れている何れのローカルなデータ転送も中断する手段と
    を含む、ことを特徴とする請求項6記載のディジタル信
    号処理プロセッサ。
  9. 【請求項9】 前記第1のアドレス/データ・バス対を
    介する前記DMAコントローラと前記第2のアドレス/
    データ・バス対を介する前記DSPコアとにより競合す
    る、前記メモリ・マップされた資源の何れかに対するア
    クセスの間を調停するアービタをさらに備え、所定の優
    先度決定基準に従って前記複数のアドレス/データ・バ
    ス対の内の所定のバス対を介してアクセスを与える手段
    を含んでいる、ことを特徴とする請求項8記載のディジ
    タル信号処理プロセッサ。
  10. 【請求項10】 前記データ転送シーケンサが、 所定の内部状態を有するステート・マシーンと、 前記ステート・マシーンが前記集合の1つの内部状態に
    入ったときに、それに対応する所定のデータ転送動作を
    実行する手段とを備えた、ことを特徴とする請求項5記
    載のディジタル信号処理プロセッサ。
  11. 【請求項11】 前記データ・メモリおよびプログラム
    ・メモリ、またはそのいずれか一方のメモリにおける前
    記メモリ・マップされた(メモリ空間に割り当てられ
    た)メモリ位置に、前記シングルチップ・ディジタル信
    号処理プロセッサの内部のオンチップ・メモリ・アレイ
    のメモリ位置と前記シングルチップ・ディジタル信号処
    理プロセッサの外部のメモリのメモリ位置とが含まれ、 前記オンチップ・メモリ・アレイおよび前記シングルチ
    ップ・ディジタル信号処理プロセッサの外部のメモリに
    ある情報を前記ホスト・プロセッサ・インタフェースと
    の間で転送するために、前記第1のバス対が、前記オン
    チップ・メモリ・アレイの前記メモリ・マップされた・
    メモリ位置および前記シングルチップ・ディジタル信号
    処理プロセッサの外部のメモリのメモリ位置に接続され
    ている、ことを特徴とする請求項5記載のディジタル信
    号処理プロセッサ。
  12. 【請求項12】 シングルチップ・ディジタル信号処理
    プロセッサであることを特徴とする請求項1記載のディ
    ジタル信号処理プロセッサ。
  13. 【請求項13】 ディジタル信号処理プロセッサ(DS
    P)であって、 DSPデータを格納するデータ・メモリにおける記憶場
    所、DSP命令を格納するプログラム・メモリにおける
    記憶場所、および前記DSPの外部の周辺装置とのイン
    タフェースを与える複数のオンチップ周辺インタフェー
    スを含む複数のメモリ・マップされた(メモリ空間に割
    り当てられた)資源と、 前記のデータ・メモリ、プログラム・メモリおよびオン
    チップ周辺インタフェースに接続され、前記メモリ・マ
    ップされた資源の指定されたものどうしの間のローカル
    なデータ転送を行うDMAコントローラと、を備え、 前記複数のオンチップ周辺インタフェースは、前記周辺
    装置が前記メモリ・マップされた資源との間でデータを
    転送する用意があるときに、データ・リードおよびデー
    タ・ライトの割込み信号を生成し、 前記DMAコントローラが、複数の転送制御レジスタ集
    合を含み、各転送制御レジスタ集合に、データ転送のた
    めの転送元アドレスおよび転送先アドレスならびに転送
    するべきデータ量を指定する転送元アドレス・レジス
    タ、転送先アドレスレジスタおよび反復回数レジスタが
    含まれ、 前記DMAコントローラが、前記複数の転送制御レジス
    タ集合の第1の転送制御レジスタ集合を利用して第1の
    データ転送を実行し、第2のデータ転送の要求を受信
    し、前記第2のデータ転送の前記要求が受信されたとき
    に前記第1のデータ転送を中断し、前記複数の転送制御
    レジスタ集合の第2の転送制御レジスタ集合を利用して
    前記第2のデータ転送を行い、さらに該第2のデータ転
    送が終了したときに前記第1のデータ転送を再開する手
    段を含む、ことを特徴とするディジタル信号処理プロセ
    ッサ。
  14. 【請求項14】 シングルチップ・ディジタル信号処理
    プロセッサであることを特徴とする請求項13記載のデ
    ィジタル信号処理プロセッサ。
JP6224915A 1993-09-27 1994-09-20 ディジタル信号処理プロセッサ Pending JPH07175781A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/127,685 1993-09-27
US08/127,685 US5513374A (en) 1993-09-27 1993-09-27 On-chip interface and DMA controller with interrupt functions for digital signal processor

Publications (1)

Publication Number Publication Date
JPH07175781A true JPH07175781A (ja) 1995-07-14

Family

ID=22431395

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6224915A Pending JPH07175781A (ja) 1993-09-27 1994-09-20 ディジタル信号処理プロセッサ

Country Status (3)

Country Link
US (1) US5513374A (ja)
JP (1) JPH07175781A (ja)
KR (1) KR950009455A (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598576A (en) * 1994-03-30 1997-01-28 Sigma Designs, Incorporated Audio output device having digital signal processor for responding to commands issued by processor by emulating designated functions according to common command interface
US5835787A (en) * 1994-07-07 1998-11-10 Lucent Technologies, Inc. System for bi-directionally transferring a digital signal sample from a CODEC to a particular memory location and a second sample from memory to CODEC
ATE205616T1 (de) * 1994-10-19 2001-09-15 Advanced Micro Devices Inc Integrierte prozessorsysteme für tragbare informationsgeräte
US5970510A (en) * 1996-04-10 1999-10-19 Northrop Grumman Corporation Distributed memory addressing system
US5822568A (en) * 1996-05-20 1998-10-13 Advanced Micro Devices, Inc. System for improving the real-time functionality of a personal computer which employs an interrupt servicing DMA controller
US5880981A (en) * 1996-08-12 1999-03-09 Hitachi America, Ltd. Method and apparatus for reducing the power consumption in a programmable digital signal processor
US6148326A (en) * 1996-09-30 2000-11-14 Lsi Logic Corporation Method and structure for independent disk and host transfer in a storage subsystem target device
US6247040B1 (en) 1996-09-30 2001-06-12 Lsi Logic Corporation Method and structure for automated switching between multiple contexts in a storage subsystem target device
US6029226A (en) * 1996-09-30 2000-02-22 Lsi Logic Corporation Method and apparatus having automated write data transfer with optional skip by processing two write commands as a single write command
US6081849A (en) * 1996-10-01 2000-06-27 Lsi Logic Corporation Method and structure for switching multiple contexts in storage subsystem target device
US5802387A (en) * 1996-12-27 1998-09-01 Lucent Technologies Inc. Efficient data transfer in a digital signal processor
KR100229897B1 (ko) * 1997-01-10 1999-11-15 윤종용 직접 메모리 억세스 전송방법에 따른 타이밍 모드선택장치
US6055619A (en) * 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
US6259957B1 (en) 1997-04-04 2001-07-10 Cirrus Logic, Inc. Circuits and methods for implementing audio Codecs and systems using the same
US6055373A (en) * 1997-04-28 2000-04-25 Ncr Corporation Computer system including a digital signal processor and conventional central processing unit having equal and uniform access to computer system resources
WO1999041674A1 (en) * 1998-02-16 1999-08-19 Infineon Technologies Ag An integrated circuit
US6412024B1 (en) 1998-08-17 2002-06-25 Sigma Designs, Inc. Sound board emulation using digital signal processor
US6327649B1 (en) * 1999-01-22 2001-12-04 Lucent Technologies, Inc. Apparatus for developing internal ROM code using a ROM bus external interface
US6732255B1 (en) 1999-09-15 2004-05-04 Koninklijke Philips Electronics N.V. Can microcontroller that permits concurrent access to different segments of a common memory by both the processor core and the DMA engine thereof
US7120143B1 (en) * 1999-09-15 2006-10-10 8X8, Inc. Voice-over Internet protocol processor
KR100375233B1 (ko) 2001-03-16 2003-03-08 삼성전자주식회사 전송될 데이터 길이 값에 따라 전송 모드가 유동적으로변환되는 직접 메모리 억세스 컨트롤러
KR100467940B1 (ko) * 2002-08-22 2005-01-24 송영섭 축산분뇨와 음식물 쓰레기를 이용한 바이오 유기질 비료제조장치
KR100462177B1 (ko) * 2002-08-26 2004-12-17 삼성전자주식회사 주변 장치의 동작 상태를 실시간으로 백업할 수 있는엠베디드 컨트롤러
US20050038946A1 (en) * 2003-08-12 2005-02-17 Tadpole Computer, Inc. System and method using a high speed interface in a system having co-processors
US8527689B2 (en) * 2010-10-28 2013-09-03 Lsi Corporation Multi-destination direct memory access transfer
CN102279728B (zh) * 2011-08-10 2016-03-23 北京百度网讯科技有限公司 数据存储设备及数据计算方法
KR102298661B1 (ko) * 2015-04-30 2021-09-07 삼성전자주식회사 저장 장치 및 그것의 초기화 방법
KR20170083868A (ko) * 2016-01-11 2017-07-19 삼성전자주식회사 데이터 이동 장치 및 데이터 이동 방법
US10191871B2 (en) 2017-06-20 2019-01-29 Infineon Technologies Ag Safe double buffering using DMA safe linked lists
US10983936B2 (en) * 2019-02-27 2021-04-20 Microchip Technology Incorporated Programmable arbitrary sequence direct memory access controller for configuring multiple core independent peripherals

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1091633B (it) * 1977-12-30 1985-07-06 Olivetti C Ing E C Spa Dispositivo per la gestione del l accesso diretto alla memoria di un calcolatore
US4467420A (en) * 1981-03-20 1984-08-21 Fujitsu Limited One-chip microcomputer
US4503500A (en) * 1982-02-11 1985-03-05 Texas Instruments Incorporated Microcomputer with bus interchange module
US4498135A (en) * 1982-02-22 1985-02-05 Texas Instruments Incorporated Microcomputer with accumulator addressing
JPS6052468B2 (ja) * 1982-03-04 1985-11-19 株式会社東芝 Dmaバス負荷可変装置
JPS58184668A (ja) * 1982-04-22 1983-10-28 Fanuc Ltd メモリの書込み制御方式
US4535404A (en) * 1982-04-29 1985-08-13 Honeywell Information Systems Inc. Method and apparatus for addressing a peripheral interface by mapping into memory address space
US4819164A (en) * 1983-12-12 1989-04-04 Texas Instruments Incorporated Variable frequency microprocessor clock generator
US4692895A (en) * 1983-12-23 1987-09-08 American Telephone And Telegraph Company, At&T Bell Laboratories Microprocessor peripheral access control circuit
US4631659A (en) * 1984-03-08 1986-12-23 Texas Instruments Incorporated Memory interface with automatic delay state
US4636656A (en) * 1984-05-21 1987-01-13 Motorola, Inc. Circuit for selectively extending a cycle of a clock signal
JPS6145347A (ja) * 1984-08-10 1986-03-05 Nec Corp マイクロコンピユ−タ
US4935867A (en) * 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
JPH0619760B2 (ja) * 1986-04-23 1994-03-16 日本電気株式会社 情報処理装置
JPS6353669A (ja) * 1986-08-22 1988-03-07 Hitachi Micro Comput Eng Ltd マイクロプロセツサ
US4992960A (en) * 1986-12-11 1991-02-12 Yamaha Corporation Apparatus for processing image data for displaying an image on a display unit
JP2569514B2 (ja) * 1986-12-12 1997-01-08 株式会社日立製作所 情報処理装置
JPS63216170A (ja) * 1987-03-05 1988-09-08 Mitsubishi Electric Corp デイジタル信号処理プロセツサ
US5179689A (en) * 1987-03-13 1993-01-12 Texas Instruments Incorporated Dataprocessing device with instruction cache
EP0288649B1 (en) * 1987-04-22 1992-10-21 International Business Machines Corporation Memory control subsystem
US4896266A (en) * 1987-06-03 1990-01-23 Bull Hn Information Systems Inc. Bus activity sequence controller
US5151986A (en) * 1987-08-27 1992-09-29 Motorola, Inc. Microcomputer with on-board chip selects and programmable bus stretching
US5155812A (en) * 1989-05-04 1992-10-13 Texas Instruments Incorporated Devices and method for generating and using systems, software waitstates on address boundaries in data processing
US5228139A (en) * 1988-04-19 1993-07-13 Hitachi Ltd. Semiconductor integrated circuit device with test mode for testing CPU using external signal
US5057996A (en) * 1989-06-29 1991-10-15 Digital Equipment Corporation Waitable object creation system and method in an object based computer operating system
DE645685T1 (de) * 1989-08-31 1995-11-09 Yokogawa Electric Corp Verfahren zur Steuerung eines Line Computers zur Durchführung und Relokierung eines übersetztes Programms aus einer Datenspeichersammlung.
US5287486A (en) * 1989-10-05 1994-02-15 Mitsubishi Denki Kabushiki Kaisha DMA controller using a programmable timer, a transfer counter and an or logic gate to control data transfer interrupts
US5276836A (en) * 1991-01-10 1994-01-04 Hitachi, Ltd. Data processing device with common memory connecting mechanism
US5379381A (en) * 1991-08-12 1995-01-03 Stratus Computer, Inc. System using separate transfer circuits for performing different transfer operations respectively and scanning I/O devices status upon absence of both operations

Also Published As

Publication number Publication date
US5513374A (en) 1996-04-30
KR950009455A (ko) 1995-04-24

Similar Documents

Publication Publication Date Title
JPH07175782A (ja) ディジタル信号処理プロセッサ
JPH07175781A (ja) ディジタル信号処理プロセッサ
EP0550164B1 (en) Method and apparatus for interleaving multiple-channel DMA operations
US5740466A (en) Flexible processor-driven SCSI controller with buffer memory and local processor memory coupled via separate buses
US5386532A (en) Method and apparatus for transferring data between a memory and a plurality of peripheral units through a plurality of data channels
JP5241737B2 (ja) プロセッサ・システムにおいて命令レベルでのリソース割り当ての識別を可能にする方法および装置
JP5787629B2 (ja) マシンビジョン用マルチプロセッサシステムオンチップ
US20050114559A1 (en) Method for efficiently processing DMA transactions
US10241946B2 (en) Multi-channel DMA system with command queue structure supporting three DMA modes
US5269005A (en) Method and apparatus for transferring data within a computer system
JP2002140289A (ja) 調整可能ワード・サイズ転送とアドレス配列/増加を備えたマイクロコントローラdmaオペレーション
JPH0916533A (ja) 対称多重処理システム
KR100296718B1 (ko) 다중프로세서 시스템에서 가변폭 버스를 동시에 액세스하기 위한 방법 및 시스템
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
JPH0221018B2 (ja)
JPH04290150A (ja) Fifoバッファの制御装置及び制御方法並びにデータ転送を制御する装置
JP4250207B2 (ja) 対称多重処理システム、そのための割込制御ユニット、および対称多重処理システム内でプロセッサ割込信号を開始するための方法
GB2216306A (en) Load and synchronize computer architecture and process
JPH0689269A (ja) プロセッサの制御装置、プロセッサの休止装置およびそれらの方法
US10802828B1 (en) Instruction memory
KR100190377B1 (ko) 마이크로 프로세서의 버스 인터페이스 유닛
JP3077807B2 (ja) マイクロコンピュータシステム
JPH0340169A (ja) 多重プロセツサシステムおよび複数の処理装置を制御する方法
JPS6336012B2 (ja)
JP4214521B2 (ja) 情報処理システム及びマルチプロセッサ・システム