JP3773574B2 - データ処理システムにおいてデータ・ストリーム内にアドレスを挿入する装置および方法 - Google Patents

データ処理システムにおいてデータ・ストリーム内にアドレスを挿入する装置および方法 Download PDF

Info

Publication number
JP3773574B2
JP3773574B2 JP34711295A JP34711295A JP3773574B2 JP 3773574 B2 JP3773574 B2 JP 3773574B2 JP 34711295 A JP34711295 A JP 34711295A JP 34711295 A JP34711295 A JP 34711295A JP 3773574 B2 JP3773574 B2 JP 3773574B2
Authority
JP
Japan
Prior art keywords
data
bus
address
fifo buffer
buffer
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.)
Expired - Lifetime
Application number
JP34711295A
Other languages
English (en)
Other versions
JPH08339290A (ja
Inventor
レオニード・スモランスカイ
シャイ・コワル
アブニール・ゴレン
デビッド・ギャランティ
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.)
NXP USA Inc
Original Assignee
NXP USA Inc
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 NXP USA Inc filed Critical NXP USA Inc
Publication of JPH08339290A publication Critical patent/JPH08339290A/ja
Application granted granted Critical
Publication of JP3773574B2 publication Critical patent/JP3773574B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • H04L49/9052Buffering arrangements including multiple buffers, e.g. buffer pools with buffers of different sizes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)

Description

【0001】
【産業上の利用分野】
Smolansky et al.による、"ADJUSTABLE DEPTH/WIDTH FIFO BUFFER FOR VARIABLE WIDTH DATA TRANSFERS"と題し、弁理士ファイル番号SC0364EIを有する関連出願が同時に出願され、本願と同一譲受人に譲渡された。
【0002】
本発明は、一般的にデータ処理システムに関し、更に特定すれば、データ処理システムにおけるデータ・ストリーム内へのアドレスの挿入に関するものである。
【0003】
【従来の技術】
デジタル信号処理とは、規則的な間隔でサンプルされデジタル化されたリードタイム信号の算術的処理を意味する。デジタル信号プロセッサ(DSP)は、信号のフィルタ処理、混合、比較といったデジタル信号処理機能を提供するものである。データ処理システムの中には、DSPがホスト・プロセッサ内に含まれており、デジタル信号処理作業(chore)を扱うことができるものもある。例えば、ホスト・プロセッサは、マイクロコンピュータまたはマイクロプロセッサを含むことができる。
【0004】
場合によっては、ホスト・プロセッサとDSPとの間で比較的大量のデータを転送することが必要となることもある。データがこれら2つのプロセッサ間で転送されるとき、例えば、2つのプロセッサが異なるクロックで動作するなど、2つのプロセッサ間の非互換性のために、直接転送は不可能なことがある。この場合、非同期的に動作するバッファ・メモリを用いればよい。データは、受信側プロセッサがそれを受信できるようになる前に、まず送信側プロセッサによって、バッファ・メモリにバースト状で転送される。しかしながら、バッファ・メモリは、集積回路上に大量な貴重な表面領域を必要とし、実施には費用がかかり、しかもデータが処理可能になる前に全データを転送しなければならないので、処理速度が低下する。
【0005】
【発明が解決しようとする課題】
比較的大きなバッファ・メモリを不要とするために、時として小型の先入れ先出し(FIFO)バッファを用いて、ホスト・プロセッサを受信側プロセッサに接続している。FIFOバッファは、データを受けたのと同じ順序でデータを出力するメモリ・ユニットのことである。比較的大量のデータが転送されるとき、送信側プロセッサは、ある範囲のアドレスについてのみ、FIFOバッファをアクセスする。このアドレス範囲は、例えば、データを記憶すべき受信側プロセッサのメモリ内のアドレスのような、受信側プロセッサの転送先を識別することもできる。また、かかるアドレスは、データをどのようにそしてどこで処理するかを決定する際に重要なヘッダ情報を含むこともできる。しかしながら、FIFOバッファを通じてデータを転送する場合、受信側プロセッサに別個のアドレス・レジスタを設けるなど、アドレスを保存する処置を取らないと、アドレスが失われることがある。
【0006】
【課題を解決するための手段】
したがって、一形態として、FIFOバッファを通じてデータ・ストリームを転送する方法が提供される。この方法は、FIFOバッファへのアクセスを識別する段階、FIFOバッファが使用可能か否かを判定する段階、およびデータ・ワードをFIFOバッファに書き込む段階から成り、これらデータ・ワードの中の所定データ・ワードがアドレスを含む。
【0007】
他の実施例では、所定数のデータ・ワードを有するデータ・ストリームをFIFOバッファを通じて転送する装置が提供され、この装置は、アドレス・デコーダと、ライト制御論理回路とを有する。アドレス・デコーダは第1バスに結合されている。アドレス・デコーダはアドレスを受け、FIFOバッファをアクセスする所定のアドレス以内にアドレスが入ったとき、これを識別する。ライト制御論理回路は、アドレス・バッファに結合されている。ライト制御論理回路は、データ・ストリームをFIFOバッファに書き込ませる。アドレス・デコーダは、データ・ストリーム内の所定点にアドレスを挿入する。
【0008】
これらおよびその他の特徴、ならびに利点は、添付図面に関連付けて記載された以下の詳細な説明から、より明確に理解されよう。
【0009】
【実施例】
概して言えば、本発明は、データ・ストリームの先頭にアドレスを挿入し、データ・ストリームがFIFOバッファを通じて転送されるときにアドレスが失われるのを防ぐ方法および装置を提供するものである。アドレスを保存するための特別なアドレス・レジスタは必要でない。アドレス・デコーダを用いて、FIFOバッファをアクセスするアドレス範囲を識別する。アドレスは、データ・ストリームの転送先を判断するためのヘッダ情報と、データ・ストリームをどのように処理するか制御するための情報も含むことができる。
【0010】
信号、ステータス・ビット、または同様の装置(apparatus)をその論理真または論理虚の状態にすることを意味する場合、「アサート」および「ニゲート」という用語を、それぞれ用いることにする。論理真状態がデジタル論理レベル1の場合、論理虚状態はデジタル論理レベル0となる。また、論理真状態がデジタル論理レベル0の場合、論理虚状態はデジタル論理レベル1となる。また、データ、アドレス、制御、またはステータスのような1つ以上の種々の情報を転送するために用いられる複数の信号を意味する場合に、「バス」という用語を用いることにする。
【0011】
図1ないし図8を参照しながら、本発明をより詳しく説明する。図1ないし図7の各ブロック図は、回路を表わす。図8に示す各ブロックは、フロー・チャートにおける1つ以上のステップを表わす。図1は、本発明によるデータ処理システム20をブロック図形状で示す。図1に示す実施例では、データ処理システム20はデジタル信号プロセッサ(DSP)であり、単一の集積回路上に配置されている。他の実施例では、データ処理システム20は、例えば、マイクロコンピュータまたはマイクロプロセッサでもよい。データ処理システム20は、タイマ22、ホスト・インターフェース24、改良直列同期インターフェース(ESSI:enhanced serial synchronous interface)26、直列非同期インターフェース(SCI)28、プログラムRAM(ランダム・アクセス・メモリ)および命令キャッシュ30、データ・メモリ32、データ・メモリ34、アドレス発生器/直接メモリ・アクセス(DMA)コントローラ36、外部アドレス・バス・スイッチ38、内部データ・バス・スイッチ40、DRAM(ダイナミック・ランダム・アクセス・メモリ)およびSRAM(スタティック・ランダム・アクセス・メモリ)バス・インターフェースおよび命令キャッシュ制御部42、外部データ・バス・スイッチ44、プログラム制御部(PCU)46、ならびにデータ算術演算部(ALU)54を含む。プログラム制御部46は、プログラム割り込みコントローラ48、プログラム・デコード・コントローラ50、およびプログラム・アドレス発生器52を含む。
【0012】
「YAB」と表記されたアドレス・バス56、「XAB」と表記されたアドレス・バス57、「PAB」と表記されたプログラム・アドレス・バス58、および「DAB」と表記されたアドレス・バス59が、アドレス発生器/DMAコントローラ36と外部アドレス・バス・スイッチ38との間に結合されている。「DDB」と表記されたデータ・バス60が、ホスト・インターフェース24と外部データ・バス・スイッチ44との間に結合されている。「YDB」と表記されたデータ・バス61、「XDB」と表記されたデータ・バス62、「PDB」と表記されたプログラム・データ・バス63、および「GDB」と表記されたプログラム・データ・バス64が、内部データ・バス・スイッチ40と外部データ・バス・スイッチ44との間に結合されている。
【0013】
タイマ22は、3つのタイマを含み、内部または外部タイミングに用いることができると共に、データ処理システム20に割り込みをかけたり、外部装置に通知することができる。加えて、タイマ22は、特定数の事象が発生した後にDMA転送を通知するために用いることもできる。3つのタイマの各々は、1本の双方向ピン即ち端子に結合されている。更に、タイマ22の各タイマは、バス57、バス59、プログラム割り込みコントローラ48、およびバス60に結合されている。
【0014】
ホスト・インターフェース24は、データ処理システム20と、マイクロコンピュータ、マイクロプロセッサ、またはDMAのようなその他の素子との間の通信のための双方向インターフェースを形成する。また、ホスト・インターフェース24は、バス60を介して外部データ・バス・スイッチ44に双方向結合され、更に、バス57,59を介して、グローバル・データ・バス64、プログラム割り込み制御部48、アドレス発生器/DMAコントローラ36、および外部アドレス・バス・スイッチ38に、双方向結合されている。加えて、ホスト・インターフェース24は、双方向データ転送、アドレス・レジスタの選択、およびホスト・プロセッサからの制御通信のために、50本の外部ピン即ち端子に、双方向結合されている。
【0015】
改良直列同期インターフェース(ESSI)26は、12本の双方向外部ピンに結合され、例えば、1つ以上の業界標準コデック、DSP(デジタル信号プロセッサ)、またはマイクロプロセッサを含む外部直列装置との直列通信を可能にする。ESSI26は、更に、バス57、バス59、およびバス60に結合された端子も有する。
【0016】
直列通信インターフェース(SCI)28は、3本の双方向外部ピンに結合され、外部装置との直列通信を可能にする。SCI28は、バス57、バス59、およびバス60に結合された端子も有する。
【0017】
図1に示したデータ処理システム20の実施例は、3箇所のメモリ空間を有する。即ち、プログラムRAMおよび命令キャッシュ30、Xメモリ32、ならびにYメモリ34である。他の実施例では、これ以上またはこれ以下のメモリ空間の場合もある。プログラムRAMおよび命令キャッシュ30は、アドレス・バス58およびデータ・バス63に結合されている。Xメモリ32は、アドレス・バス57、アドレス・バス59、データ・バス60、およびデータ・バス62に結合されている。Yメモリ34は、アドレス・バス56、アドレス・バス59、データ・バス60、およびデータ・バス61に結合されている。
【0018】
アドレス発生器/DMAコントローラ36は、アドレス・バス56,57,58,59に結合されている。アドレス発生器/DMAコントローラ36は、メモリ・アドレスを、タイマ22、ホスト・インターフェース24、ESSI26、SCI28、プログラムRAMおよび命令キャッシュ30、メモリ32、メモリ34、外部アドレス・バス・スイッチ38、ならびにDRAMおよびSRAMバス・インターフェース/命令キャッシュ制御部42に供給する。好適実施例では、DMAコントローラは6つのチャネルを有する。
【0019】
DRAMおよびSRAMバス・インターフェース/命令キャッシュ42は、プログラム・アドレス・バス58および14本の双方向外部ピンに結合されている。DRAMおよびSRAMバス・インターフェース/命令キャッシュ42の命令キャッシュは、外部メイン・メモリ(図示せず)とプログラム制御部46との間のバッファ・メモリとして機能する。命令キャッシュは、頻繁に用いられるプログラム命令を記憶するものである。プログラムが必要とする命令語をキャッシュの中で得られるようにすると、メイン・メモリにアクセスするための時間が不要になるので、その結果として性能の向上を達成することができる。
【0020】
内部データ・バス・スイッチ40は、データ・バス60、データ・バス61、データ・バス62、プログラム・データ・バス63、およびグローバル・データ・バス64に結合されている。また、外部データ・バス・スイッチ44は、データ・バス60、データ・バス61、データ・バス62、プログラム・データ・バス63、およびグローバル・データ・バス64を介して、内部データ・バス・スイッチ40に結合されている。加えて、外部データ・バス・スイッチ44は、データ・バス60を介して、タイマ22、ホスト・インターフェース24、ESSI26、およびSCI28に結合されている。内部データ・バス・スイッチ40は、バス間の転送に用いられる。内部データ・バス・スイッチ40を介して、いずれの2つのバスでも、共に接続することができる。外部アドレス・バス・スイッチ38および外部データ・バス・スイッチ44は、外部バス(図示せず)を、内部アドレスおよび内部データ・バスに、それぞれ結合する。
【0021】
プログラム制御部46では、プログラム割り込みコントローラ48が割り込み要求間の仲裁を行い、タイマ22、ホスト・インターフェース24、ESSI26、およびSCI28に結合されている。また、プログラム割り込みコントローラ48は、グローバル・データ・バス64とプログラム・デコード・コントローラ50とに、双方向結合されている。プログラム・デコード・コントローラ50は、各24ビット命令をデコードするものであり、プログラム割り込みコントローラ48とプログラム・アドレス発生器52とに、双方向結合されている。プログラム・アドレス発生器52は、プログラム・アドレスの発生、システム・スタック、およびループ制御に必要なハードウエアの全てを内蔵する。加えて、プログラム・アドレス発生器52は、プログラム・アドレス・バス58およびプログラム・データ・バス63に結合されている。
【0022】
データ算術論理演算部(ALU)54は、プログラム・データ・バス63、データ・バス61、およびデータ・バス62に結合されている。データALU54は、データ・オペランド上での算術および論理演算の全てを実行する。ALU54は、バス61,62を介して読み出しまたは上書き可能なレジスタを含む。また、データALU54は、バス63およびバス60にも結合されている。
【0023】
クロック発生回路(図示せず)が、図1に示したブロックの全てにクロック信号を供給する。また、図1には示していないが、データ処理システム20には検査回路も含まれている。
【0024】
図2は、図1のデータ処理システム20のホスト・インターフェース24を、ブロック図形状で示す。ホスト・インターフェース24は、ホスト送信データFIFOバッファ65、DSP送信データFIFOバッファ66、ホスト・インターフェース制御レジスタ67、DSPステータス・レジスタ68、DSP制御レジスタ69、およびアドレス構成レジスタ70を含む。図示の実施例では、ホスト・インターフェース24は、2つのFIFOバッファを有する。他の実施例では、ホスト・インターフェース24が有するFIFOバッファは、それよりも多い場合も少ない場合もある。ホスト送信データFIFOバッファ65は、外部バス116に結合された複数のデータ入力端子、グローバル・データ・バス(GDB)64に結合された複数のデータ出力端子、ホスト・インターフェース制御レジスタ67の複数の出力端子に結合された複数の第1制御端子、およびDSP制御レジスタ69の複数の出力端子に結合された複数の第2制御端子を有する。DSP送信データFIFOバッファ66は、グローバル・データ・バス64に結合された複数のデータ入力端子、外部バス116に結合された複数のデータ出力端子、ホスト・インターフェース制御レジスタ67の複数の出力端子に結合された複数の第1制御端子、およびDSP制御レジスタ69の複数の出力端子に結合された複数の第2制御端子を有する。
【0025】
また、ホスト・インターフェース制御レジスタ67は、外部バス116に結合された複数の双方向端子と、DSPステータス・レジスタ68に結合された複数の出力端子とを有する。DSPステータス・レジスタ68は、グローバル・データ・バス64に結合された複数の出力端子を有し、DSP制御レジスタ69は、グローバル・データ・バス64に結合された複数の双方向端子と、FIFOバッファ65,66の制御端子に結合された複数の出力端子とを有する。
【0026】
ホスト・プロセッサ(図示せず)は、ホスト・インターフェース24からグローバル・データ・バス64を介して、バス116からデータ処理システム20内のある場所までのデータ転送を開始することができる。外部バス116およびバス64は、両方とも双方向バスである。一実施例では、バス116は多重化バスであり、データとアドレスの双方を通信する。他の実施例では、外部バス116は、データ線およびアドレス線を別個に有する場合もある。バス116からバス64への転送が要求されたとき、ホスト・プロセッサはこの転送を制御する。FIFOバッファ65は、ホスト・プロセッサのみに対してスレーブ(slave)として動作する。FIFOバッファ65は、ホスト・プロセッサによる書き込みが可能であるが、FIFOバッファ65が転送を開始することはない。同様に、FIFOバッファ66は、データ処理システム20から外部バス116にデータを送信する場合にのみスレーブとなる。
【0027】
ホスト・インターフェース制御レジスタ67(図5)およびDSP制御レジスタ69(図4)は、バス116とバス64との間のデータ転送を規定するための制御ビットを発生する。また、ホスト・プロセッサは、ホスト・インターフェース制御レジスタ67を介してDSPステータス・レジスタ68と通信してFIFOバッファ65を活性化し、FIFOバッファ65,66が空か満杯かを判定し、更に他のタイプのステータス情報を受け取る。かかるステータス情報については、図6を参照して後に説明する。アドレス構成レジスタ70は、バス116に結合されており、FIFOバッファ65をアクセスするアドレス範囲を規定するベース・アドレスをプログラムするためのアドレス・ビットを含む。
【0028】
図3は、本発明の一実施例によるホスト・インターフェース24の深度/幅調節可能FIFOバッファ65を、ブロック図形状で示す。FIFOバッファ65は、FIFOレジスタ72、レジスタ・リード制御論理回路90、バス64、狭/広制御部92、出力バッファ制御論理回路94、FIFOリード選択器96、レジスタ・ライト制御論理回路98、バス116狭/広制御部100、アドレス・デコーダ102、入力バッファ制御論理回路104、FIFOライト選択器106、奇数入力バッファ108、偶数入力バッファ110、奇数出力バッファ112、および偶数出力バッファ114を含む。バス116は、入力バッファ108,110に接続された双方向バスである。バス64は出力バッファ112,114に接続された双方向バスである。FIFOレジスタ72は、レジスタ部73とレジスタ部75とを含む。レジスタ部73は、奇数レジスタ74,76,78,80を含む。レジスタ部75は、偶数レジスタ82,84,86,88を含む。
【0029】
好適実施例では、FIFOバッファ65は、図1のホスト・インターフェース24の一部を含む。また、FIFOバッファ66は、FIFOバッファ65に類似した回路を有していればよい。データはバス116からFIFOバッファ65に供給される。バス116は、ホスト・プロセッサ(図示せず)の一部である外部バスである。バス64は、ホスト・インターフェース24(図2)内部のバスである。他の実施例では、バス116,64は、その間にバッファ動作を必要とする2つのバスであれば、いずれでもよい。バッファ動作が必要となるのは、例えば、2つのバスが異なるクロックによって制御される場合である。
【0030】
バス116,64は、Wビットを有するデータ・ワードを転送する。ここでWは整数である。奇数入力バッファ108は、バス116に結合されデータ・ビット[W/2:1]を受ける複数の入力端子、奇数レジスタ74,76,78,80の各々の入力端子に結合された複数の出力端子、および入力バッファ制御論理回路104からの制御信号を受ける制御端子を有する。偶数入力バッファ110は、バス116に結合されデータ・ビット[W:W/2+1]を受ける複数の入力端子、偶数レジスタ82,84,86,88の各々の複数の入力端子に結合された複数の出力端子、および入力バッファ制御論理回路104からの制御信号を受ける制御端子を有する。奇数出力バッファ112は、奇数レジスタ74,76,78,80の複数の出力端子に結合された複数の入力端子、バス64に結合されデータ・ビット[W/2:1]を供給する複数の出力端子、および出力バッファ制御論理回路94の出力に結合され制御信号を受ける制御端子を有する。偶数出力バッファ114は、偶数レジスタ82,84,86,88の各々の複数の出力端子に結合された複数の入力端子、バス64に結合されデータ・ビット[W:W/2+1]を供給する複数の出力端子、および出力バッファ制御論理回路94の出力端子に結合された制御端子を有する。
【0031】
FIFOリード選択器96は、出力バッファ制御論理回路94の入力端子に結合された出力端子を有する。また、FIFOリード選択器96の出力端子は、レジスタ・リード制御論理回路90の入力端子にも結合されている。レジスタ・リード制御論理回路90は、奇数レジスタ74,76,78,80および偶数レジスタ82,84,86,88の各々の入力端子に結合され、リード制御信号を供給する出力端子を有する。好適実施例では、奇数レジスタ74,76,78,80および偶数レジスタ82,84,86,88の各々は、従来の16ビット・リード/ライト・レジスタである。レジスタ・リード制御論理回路90およびレジスタ・ライト制御論理回路98は、FIFOレジスタ72を監視し、FIFOレジスタ72が空か満杯かについて、追跡を行う。
【0032】
バス64狭/広制御部92は、図2のレジスタ128,124に結合された複数の入力端子と、出力バッファ制御論理回路94とレジスタ・リード制御論理回路90双方の入力端子に結合された出力端子とを有する。レジスタ・ライト制御論理回路98は、奇数レジスタ74,76,78,80および偶数レジスタ82,84,86,88の各々の入力端子に結合され、ライト制御信号を供給する出力端子を有する。アドレス・デコーダ102は、バス116に結合され複数のアドレス信号を受ける複数の入力と、レジスタ・ライト制御論理回路98に結合された複数の出力端子とを有する。
【0033】
FIFOライト選択器106は、入力バッファ制御論理回路104の入力端子と、レジスタ・ライト制御論理回路98の入力端子とに結合された出力端子を有する。FIFOライト選択器106は、ホスト・プロセッサがデータをFIFOバッファ65に書き込むとき、入力バッファ制御論理回路104とレジスタ・ライト制御論理回路98とにイネーブル信号を供給する。バス116狭/広制御部100は、レジスタ124,128に結合された複数の入力端子と、レジスタ・ライト制御論理回路98と入力バッファ制御論理回路104の入力端子とに結合された出力端子とを有する。入力バッファ制御論理回路104は、奇数入力バッファ108の入力端子に結合された第1出力端子と、偶数入力バッファ110の入力端子に接続された第2出力端子とを有する。
【0034】
データはバス116からFIFOバッファ65に書き込まれ、更にデータはFIFOバッファ65からバス64に読み出される。FIFOレジスタ72は2つの部分、即ち、部分73,75に分割されている。部分75は、偶数レジスタ82,84,86,88から成る「偶数」部であり、部分73は、奇数レジスタ74,76,78,80から成る「奇数」部である。他の実施例では、収容すべき異なるデータ幅の種類に応じて、いかなる数の部分にすることも可能である。各部分は、別個に読み書きができる。バス116,64は、双方ともサイズは動的であり、様々なサイズのワードを同一バス上で送信することができる。図示の実施例では、FIFOバッファ65は32ビット幅までのワード幅(W)を有するデータを受けることができ、FIFOバッファ65は、ワード幅(W)に応じた可変の深度(D)を有する。
【0035】
FIFOバッファ65の図示した実施例では、次の4つのデータ転送の可能性がある。1)FIFOバッファ65はバス116から16ビット・ワードを受け、16ビット・ワードをバス64に供給することができる。2)FIFOバッファ65はバス116から16ビット・ワードを受け、バス64に32ビット・ワードを供給することができる。3)FIFOバッファ65はバス116から32ビット・ワードを受け、バス64に16ビット・ワードを供給することができる。4)FIFOバッファ65はバス116から32ビット・ワードを受け、バス64に32ビット・ワードを供給することができる。16ビット・ワードが転送される場合、FIFOレジスタ72の深度は8ワードとなる。32ビット・ワードが転送される場合、FIFOレジスタ72の深度は4ワードである。以下に示すFIFOバッファ65を通じてのデータ転送の例では、Wは32に等しい。しかしながら、他の実施例では、Wは他のデータ幅と等しくすることもできる。
【0036】
バス116からFIFOバッファ65に16ビット・ワードを書き込み、16ビット・ワードをバス64に読み出すとき、バス116およびバス64の双方は、狭い16ビット幅FIFOバッファを「見る」。バス116狭/広制御部100は、バス116を狭い、即ち、W/2ビット幅として定義する。バス64狭/広制御部92は、バス64を狭い、即ち、W/2ビット幅として定義する。FIFOライト選択部106は、レジスタ・ライト制御論理回路98および入力バッファ制御論理回路104に制御信号を供給し、バス116からのデータをサンプリングするためにFIFOバッファ65の準備を行う。バス116からの入力データはビット[W/2:1]からサンプリングされ、奇数入力バッファ108または偶数入力バッファ110に入力される。奇数入力バッファ108からは、最初の16ビット・データ・ワードが奇数レジスタ74,76,78,80の内の1つに、アドレス・デコーダ102によってバス116から受け取られたアドレスによって決定される、[W/2:1]から書き込まれる。アドレス・デコーダ102は、デコードされたアドレスをレジスタ・リード制御論理回路90に供給する。レジスタ・リード制御論理回路90は、奇数レジスタ74,76,78,80の中から書き込むべき1つを選択する。2番目の16ビット・データ・ワードは、偶数入力バッファ110を介して、ビット[W/2:1]から、偶数レジスタ82,84,86,88の内の1つに書き込まれる。3番目の16ビット・データ・ワードは、奇数レジスタ74,76,78,80の内の1つに、ビット[W/2:1]から書き込まれる。転送は、完了まで、即ち、FIFOバッファ65が満杯になるまで、偶数および奇数レジスタ間で交代しながら続けられる。
【0037】
FIFOバッファ65から16ビット・データ・ワードを読み出すとき、16ビット・データ・ワードは、奇数レジスタ74,76,78,80の内の1つから、または偶数レジスタ82,84,86,88の内の1つから出力される。最初の16ビット・ワードは、奇数レジスタ74,76,78,80の内の1つから読み出され、奇数出力バッファ112を通じて、ビット[W/2:1]が出力される。2番目の16ビット・ワードは、偶数レジスタ82,84,86,88の内の1つから読み出され、偶数出力バッファ114を通じて、ビット[W/2:1]が出力される。3番目の16ビット・ワードは、奇数レジスタ74,76,78,80の内の1つから読み出され、奇数出力バッファ112を通じて、ビット[W/2:1]が出力される。この動作は、転送が完了するまで、即ちFIFOバッファ65が空になるまで続けられる。図示した実施例では、奇数レジスタおよび偶数レジスタの各々は16ビット幅である。他の実施例では、レジスタはいかなる幅でもよい。
【0038】
16ビット・ワードをバス116からFIFOバッファ65に書き込み、32ビット・ワードをバス64に読み出すときは、バス116はFIFOバッファ65が8ワードの深度を有するものとして認知し、バス64はFIFOバッファ65が4ワードの深度を有するものとして認知する。バス116狭/広制御部100は、バス116を狭い、即ちW/2ビット幅として定義する。バス64狭/広制御部92は、バス64を広い、即ち、Wビット幅として定義する。FIFOライト選択器106は、レジスタ・ライト制御論理回路98と入力バッファ制御論理回路104とに制御信号を供給し、バス116からのデータをサンプリングするように、FIFOバッファ65の準備を行う。バス116からの入力データは、ビット[W/2:1]からサンプリングされ、奇数入力バッファ108または偶数入力バッファ110に入力される。データは、[W:W/2+1]ビットからはサンプリングされない。好適実施例では、Wは32に等しい。奇数入力バッファ108から、最初の16ビット・データ・ワードが、アドレス・デコーダ102によってバス116から受け取られたアドレスによって決定される、「W/2:1]から、奇数レジスタ74,76,78,80の内の1つに書き込まれる。アドレス・デコーダ102は、レジスタ・リード制御論理回路90にデコードされたアドレスを供給する。レジスタ・リード制御論理回路90は、奇数レジスタ74,76,78,80の内書き込むべき1つを選択する。2番目の16ビット・データ・ワードは、「W/2:1]から、偶数レジスタ82,84,86,88の内の1つに、偶数入力バッファ110を介して書き込まれる。3番目の16ビット・データ・ワードは、「W/2:1]から、奇数レジスタ74,76,78,80の内の1つに書き込まれる。転送は、完了するまで、即ち、FIFOバッファが満杯になるまで、偶数および奇数レジスタを交代しながら続けられる。
【0039】
奇数レジスタ74,76,78,80の内の1つおよび偶数レジスタ82,84,86,88の内の1つから同時に、32ビット・データ・ワードがバス64に読み出される。32ビット・データ・ワードの内16ビットは、奇数レジスタ74,76,78,80から読み出され、奇数出力バッファ112を通じて、ビット[W/2:1]を出力する。別の16ビットは、偶数レジスタ82,84,86,88の1つから読み出され、偶数出力バッファ114を通じて、ビット[W:W/2+1]を出力する。アドレス・デコーダ102は、デコードされたアドレスをレジスタ・リード制御論理回路90に供給し、奇数および偶数レジスタのどちらから読み出すかを選択する。これは、転送が完了するまで、即ちFIFOバッファ65が空になるまで続く。
【0040】
32ビット・ワードをバス116からFIFOバッファ65にサンプリングし、16ビット・ワードをバス64に読み出すとき、バス116はFIFOバッファ65を4ワードの深度を有するものとして認知し、一方バス64はFIFOバッファ65を8ワードの深度を有するものとして認知する。バス116狭/広制御部100は、バス116を広い、即ちWビット幅として定義し、制御信号を発生して、32ビット・ワードを受けるように、レジスタ・ライト制御論理回路98および入力バッファ制御論理回路の準備を行う。バス64狭/広制御部92は、バス64を狭い、即ちW/2ビット幅として定義し、32ビット・ワードを書き込むように、レジスタ・リード制御論理回路90および出力バッファ制御論理回路94の準備を行う。FIFOライト選択器106は、イネーブル信号をレジスタ・ライト制御論理回路98および入力バッファ制御論理回路104に供給し、FIFOバッファ65にバス116からのデータのサンプリングを行わせる。アドレス・デコーダ102は、デコードされたアドレスをレジスタ・ライト制御論理回路98に供給する。レジスタ・ライト制御論理回路98は、奇数レジスタ74,76,78または80の中から書き込むべき1つを選択する。32ビット・データ・ワードの内の16ビットが、バス116のビット[W/2:1]からサンプリングされ、奇数入力バッファ108に入力され、同時に別の16ビットが、ビット[W:W/2+1]からサンプリングされ、偶数入力バッファ110に入力される。
【0041】
バス64に16ビット・データ・ワードを読み出すとき、読み出される最初のワード[W/2:1]は、奇数レジスタ74,76,78,80の1つから奇数出力バッファ112に読み出される。2番目の16ビット・ワード[W:W/2+1]は、偶数レジスタ82,84,86,88の1つから偶数出力バッファ114に読み出される。3番目の16ビット・ワードは、奇数レジスタ74,76,78または80の1つから、というように、転送が完了するまで、即ちFIFOバッファ65が空になるまで続けられる。アドレス・デコーダ102は、デコードされたアドレスを、レジスタ・リード制御論理回路90に供給し、奇数および偶数レジスタのどちらを読み出すかを選択する。
【0042】
32ビット・ワードをバス116からFIFOバッファ65にサンプリングし、32ビット・ワードをバス64に読み出すとき、バス116,64は、FIFOバッファ65を4ワードの深度を有するものとして認知する。バス116狭/広制御部100は、バス116を広い、即ちWビット幅として定義し、制御信号を供給して、32ビット・ワードを受けるように、レジスタ・ライト制御論理回路98および入力バッファ制御論理回路102の準備を行う。バス64狭/広制御部92も、バス64を広いと定義し、32ビット・ワードを書き込むように、レジスタ・リード制御論理回路90および出力バッファ制御論理回路94の準備を行う。FIFOライト選択器106は、レジスタ・ライト制御論理回路98および入力バッファ制御論理回路104にイネーブル信号を供給し、FIFOバッファ65にバス116からの32ビット・ワードのデータをサンプリングさせる。アドレス・デコーダ102は、デコードされたアドレスをレジスタ・ライト制御論理回路98に供給する。レジスタ・ライト制御論理回路98は、奇数レジスタ74,76,78または80から[W/2:1]からの16ビットを受ける1つを選択し、同時に、別の16ビットがサンプリングされ、ビット[W:W/2+1]から偶数入力バッファ110に入力される。
【0043】
奇数レジスタ74,76,78,80の1つおよび偶数レジスタ82,84,86,88の1つから、32ビット・データ・ワードが同時にバス64に読み出される。この32ビット・データ・ワードの16ビットは、奇数レジスタ74,76,78,80から読み出され、奇数出力バッファ112を通じて、ビット[W/2:1]を出力する。別の16ビットは、偶数レジスタ82,84,86,88の1つから読み出され、偶数出力バッファ114を通じて、ビット[W:W/2+1]を出力する。アドレス・デコーダ102は、デコードされたアドレスをレジスタ・リード制御論理回路90に供給して、FIFOリード選択器96からのイネーブル信号に応答して、奇数および偶数レジスタのどちらから読み出すかを選択する。これは、転送が完了するまで、即ち、FIFOバッファ65が空になるまで続く。
【0044】
FIFOレジスタを複数の部分に分割し、これらの部分を独立して制御することにより、FIFOバッファ内の記憶領域を浪費することなく、可変幅のデータ・ワードを転送することができる。バッファの記憶領域が効率的に用いられるので、集積回路上の表面領域は、更に効率的に用いられることになる。
【0045】
図4は、図2のホスト・インターフェース24のDSP制御レジスタ69を、ブロック図形状で示す。DSP制御レジスタ69は32ビットの制御ビットを含む。「FC1」および「FC0」と表記された制御ビット130,131は、ホスト・インターフェース24がデータをバス・マスタとして送信しているとき、ホストの送信データFIFOバッファ65およびDSPの送信データFIFOバッファ66におけるデータ転送フォーマットを制御する。制御ビット130,131は、FIFOバッファにおけるデータ幅、FIFOレジスタ72におけるデータの配列、およびホスト・インターフェース24がバス116に読み出しているあるいはバス116から書き込んでいるときの符号拡張(sign extension)を規定する。「BL5-BL0」と表記された制御ビット132は、データのバースト長(data burst length)を規定する。制御ビット132内の値は、データが転送される各データ転送サイクルの後に、減分される。制御ビット132内の値がゼロまたは他の所定値に達したとき、転送を終了する。
【0046】
図5は、図2のホスト・インターフェース24のホスト・インターフェース制御レジスタ67を、ブロック図形状で示す。ホスト・インターフェース制御レジスタ67は、制御ビット136−142を含む。「HRF1」および「HRF0」とそれぞれ表記された、ホスト受信データ転送フォーマット制御ビット136,137は、ホスト・インターフェース24がホスト・プロセッサによって読み出されているとき、DSP送信データFIFOバッファ66を介したデータ転送のための、データ転送フォーマットを定義する。制御ビット136,137は、FIFOバッファ内のデータ幅、FIFOレジスタ内のデータ配列、および符号拡張を規定する。「HTF1」および「HTF0」とそれぞれ表記された、ホスト・データ転送フォーマット制御ビット138,139は、ホスト・インターフェース24がホスト・プロセッサによって書き込まれているときに、ホスト送信データFIFOバッファ65を用いた転送のために、データ転送フォーマットを定義する。制御ビット138,139は、FIFOバッファ内のデータ幅、FIFOレジスタ内のデータ配列、および符号拡張を規定する。「HF2」,「HF1」,「HF0」とそれぞれ表記された、制御ビット140,141,142は、バス116およびバス64間の通信のための汎用ホスト・フラグである。制御ビット140,141,142は、ホスト・プロセッサ(図示せず)によって、アサートまたはニゲートすることができる。
【0047】
図6は、図2のホスト・インターフェース24のDSPステータス・レジスタ68を、ブロック図形状で示す。DSPステータス・レジスタ68は、ビット145−151を含む。「HACT」と表記されたビット145は、ホスト・インターフェース24がアクティブのときはいつでも、アサートされている。転送が完了し、ホスト・インターフェース24内の動作が停止されると、ビット145はニゲートされる。「HF2」,「HF1」,「HF0」と表記されたビット146,147,148は、ホスト・インターフェース制御レジスタ67内のホスト・フラグHF2,HF1,HF0の状態を示す。ホスト・インターフェースのみが、ビット146,147,148を変更することができる。「SRRQ」と表記されたビット149は、ホスト送信データFIFOバッファ65が、データ処理システム20のためのデータを含むことを示す。ホスト・インターフェース・データFIFOバッファ65内のレジスタが、データ処理システム20によって空にされたとき、ビット149はニゲートされる。「STRQ」と表記されたビット150は、アサートされると、DSP送信データFIFOバッファ66内のレジスタが満杯でなく、データ処理システム20によって書き込み可能であることを示す。「HCP」と表記されたビット151は、アサートされると、ホスト・コマンド割り込みが中断中であることを示す。ホスト・インターフェース24によって割り込みがかけられた(service)とき、ビット151はニゲートされる。ビット151は、ホスト・インターフェース24またはホスト・プロセッサ(図示せず)によってニゲートすることができる。
【0048】
図7は、図2のホスト・インターフェース24のアドレス構成レジスタ70を、ブロック図形状で示す。「PM31-PM16」と表記されたアドレス・ビット153は、FIFOバッファ65にアクセスするためのアドレス範囲を規定する。アドレス構成レジスタ70へのアクセスは、ホスト・インターフェース24の動作モードに応じて行われ、ホスト・プロセッサがアクセスすることも、あるいはホスト・インターフェース24が間接的にアクセスすることもできる。
【0049】
図8は、本発明の一実施例によって、FIFOバッファ65のデータ・ストリームにアドレスを挿入するために必要なステップを、フロー・チャート形状で示す。ダイヤモンド形のボックス155,156は、判断ステップを表わし、矩形形ボックス157−161は、アドレスをデータ・ストリームに挿入ために実行されるステップを表わす。FIFOバッファ65へのアクセスは、あるアドレス範囲を用いて、バス116を通じて行うことができる。このアドレス範囲は、バス116からサンプリングされるアドレスの最上位ビットによって規定される。例えば、32ビット・アドレスの上位16ビットを用いて、FIFOバッファ65へのアクセスを識別する場合、FIFOバッファ65の216即ち65536カ所にアクセスすることができる。65536カ所の内7カ所はFIFOバッファ65以外のレジスタであるので、最下位ビットは「ほとんど」ドント・ケア(don't care)である。FIFOバッファ65の出力は、いくつかの機構のいずれかによって、あるアドレス範囲に転送することができる。例えば、下位アドレス・ビットをポインタとして用い、FIFOバッファ65を通じて到来するデータをどこに記憶するかを指揮することができる。
【0050】
FIFOバッファを通じてデータ・ストリームを転送するとき、FIFOバッファにアクセスするために用いられるアドレスは、これを保持するなんらかの用意をしなければ、失われることになる。FIFOバッファ65では、バス116からサンプルされる最初のデータはアドレスである。このアドレスは、ヘッダ情報を含むこともできる。アドレス内のヘッダ情報を用いて、このデータをデータ処理システム20内の所望の場所に送出することや、どのようにデータ処理システムがこのアドレスを用いるべきかを記述することもできる。図示の実施例では、バス116は、アドレスおよびデータ情報の双方を搬送する「多重化バス」である。ここに記載するアドレス挿入方法では、例えば、アドレス発生器/DMAコントローラ36のようなデータを読み取るシステムの構成物が、データがFIFOバッファ65から読み出すかについて、アドレス自体を識別しなければならない。多重化バスにおいてアドレスをデータから区別する方法はいくつかある。例えば、処理が始まったときにFIFOバッファが空である場合、アドレスは、このFIFOバッファから読み出される最初のデータである。また、データ・バーストが既知の長さのものである場合、FIFOバッファから読み出される次のワードはアドレスである。加えて、データ・ストリームの長さもアドレスの関数となり得る。この場合、データ・ストリームの後に読まれる次のワードがアドレスである。
【0051】
アドレス情報がバス116からサンプリングされるとき、アドレス・デコーダ102は、ライト・イネーブル信号をレジスタ・ライト制御論理回路98に供給する。ライト・イネーブル信号が供給されたときバス116上にはアドレスがあったので、バス116からサンプリングされた最初のデータとして、アドレスが書き込まれる。アドレスが受け取られた後、バス116からデータがサンプリングされる。データ・ストリームのサイズは、ホスト・インターフェース24がスレーブのときは、ホスト・プロセッサによって制御される。ホスト・インターフェース24がマスタのとき、データ・ストリームのサイズは、DSP制御レジスタ69(図4)のビット132内の初期値によって決定される。ビット132内の値は、データ・ワードが転送される毎に減分される。値がゼロに等しくなったとき、転送が完了する。
【0052】
判断ステップ155において、ホスト・プロセッサは、アドレスがFIFOバッファ65にアクセスするために要求される範囲以内にあるか否か判断する。アドレスが要求された範囲以内にない場合、「否定」経路が選択され、ステップ157において、FIFOバッファ65へのアクセスは拒否される。アドレスが要求された範囲内にある場合、「肯定」経路が選択され、判断ステップ156に進む。ステップ156において、ホスト・プロセッサは、DSPステータス・レジスタ68(図6)内のビット145をチェックすることによって、FIFOバッファが使用可能であるか否か判断を行う。FIFOバッファが使用可能でない場合、「否定」経路が選択されステップ158に進み、FIFOバッファ65へのアクセスは拒否される。ホスト・プロセッサは、アクセスが許可される前の現在実行中の処理(transaction)をFIFOバッファ65が完了するまで、待機しなければならない。FIFOバッファが使用可能な場合、「肯定」経路が選択されステップ159に進み、ホスト・インターフェース24によってFIFOバッファ65にアドレスがサンプリングされる。ここに記載した処理とは、FIFOバッファ65を介したバス116からバス64への処理であることを注記しておく。しかしながら、他の実施例では、この処理は、同様のステップを用いて、DSP送信データFIFOバッファ66を介してのバス64からバス116への処理とすることもできる。アドレスがFIFOバッファ65のレジスタに書き込まれた後、ステップ160において、データ・バーストをFIFOバッファ65に書き込む。一旦データ・ワードがFIFOバッファ65に書き込まれたなら、即ち、FIFOバッファ65が空でない場合、ステップ161において、データ・ワードがFIFOバッファ65からデータ処理システム20内の記憶場所に読み出される。データ・ストリームのFIFOバッファ65からの読み出しは、データ・ストリームのFIFOバッファ65への書き込みと同時に行うことができる。FIFOバッファは常に、部分的には空の部分が残っている。処理中にFIFOバッファが満杯になった場合、ホスト・インターフェース24によって待機状態が挿入され、ホスト・プロセッサはFIFOバッファ65に上書きすることが禁止される。
【0053】
バス116は多重化バスとして示されている。これは、バスがアドレスおよびデータ情報の双方を搬送することを意味する。しかしながら、他の実施例では、ISAバスにおけるように、バス116を別個のアドレスおよびデータ・バスに分割してもよい。図7に示した実施例では、FIFOバッファ65がホスト・インターフェース24内で用いられているが、他の実施例では、固定深度および固定幅を有する従来のFIFOバッファも使用可能であることも、指摘しておく。
【0054】
大きなメモリ・アレイの代わりに小さなFIFOバッファを用いることによって、データ処理システム20における空間を節約することができる。可変幅および可変深度のFIFOバッファを有することにより、あるサイズのバスから異なるサイズを有する別のバスへデータを転送するときに、FIFOバッファの記憶領域のより効率的な使用が可能になる。FIFOバッファを通過するデータ・バーストのアドレスが失われないようにするために、データ・ストリームの先頭にアドレスを挿入する。
【0055】
以上、本発明を好適実施例に基づいて記載したが、本発明は数多くの方法で変更可能であり、先に具体的に示し説明したもの以外にも多くの実施例が想定できることは、当業者には明白であろう。例えば、FIFOバッファ65は、2種類のデータ幅を有するFIFOバッファを設けるために、2つの部分のFIFOレジスタ72を有するものとして例示された。しかしながら、他の実施例では、FIFOバッファ65は、3つ以上の部分を有し、3種類以上のデータ幅のFIFOバッファを設けるように適応させることも可能である。したがって、本発明の真の精神および範囲に該当する本発明の変更は全て、特許請求の範囲に含まれることを意図するものである。
【図面の簡単な説明】
【図1】本発明によるデータ処理システムを示すブロック図。
【図2】図1のデータ処理システムのホスト・インターフェースの一実施例を示すブロック図。
【図3】本発明の一実施例による図2のホスト・インターフェースの深度/幅調節可能FIFOバッファを示すブロック図。
【図4】図2のホスト・インターフェースのDSP制御レジスタを示すブロック図。
【図5】図2のホスト・インターフェースのホスト・インターフェース制御レジスタを示すブロック図。
【図6】図2のホスト・インターフェースのDSPステータス・レジスタを示すブロック図。
【図7】図2のホストインターフェースのアドレス構成レジスタを示すブロック図。
【図8】本発明によるデータ・ストリームにアドレスを挿入する方法を示すフロー・チャート。
【符号の説明】
20 データ処理システム
22 タイマ
24 ホスト・インターフェース
26 改良直列同期インターフェース
28 直列非同期インターフェース
30 プログラムRAMおよび命令キャッシュ
32,34 データ・メモリ
36 アドレス発生器/直接メモリ・アクセス・コントローラ
38 外部アドレス・バス・スイッチ
40 内部データ・バス・スイッチ
42 DRAMおよびSRAMバス・インターフェース/命令キャッシュ制御部
44 外部データ・バス・スイッチ
46 プログラム制御部
48 プログラム割り込みコントローラ
50 プログラム・デコード・コントローラ
52 ログラム・アドレス発生器
54 データ算術演算部
56,57 アドレス・バス
58 プログラム・アドレス・バス
59 アドレス・バス
61,62 データ・バス
63,64 プログラム・データ・バス
65 ホスト送信データFIFOバッファ
66 DSP送信データFIFOバッファ
67 ホスト・インターフェース制御レジスタ
68 DSPステータス・レジスタ
69 DSP制御レジスタ
70 アドレス構成レジスタ
72 FIFOレジスタ
90 レジスタ・リード制御論理回路
92 バス64、狭/広制御部
94 出力バッファ制御論理回路
96 FIFOリード選択器
98 レジスタ・ライト制御論理回路
100 バス116狭/広制御部
102 アドレス・デコーダ
104 入力バッファ制御論理回路
106 FIFOライト選択器
108 奇数入力バッファ
110 偶数入力バッファ
112 奇数入力バッファ
114 偶数出力バッファ
116 バス
124,128 レジスタ

Claims (3)

  1. FIFOバッファを有するデータ処理システムにおいて、前記FIFOバッファにデータを書き込む方法であって、
    前記FIFOバッファへのアクセスを識別するステップと、
    前記FIFOバッファが使用可能か否かを判定するステップと、
    格納のための前記FIFOバッファの複数のデータ記憶素子にデータ・ワードを書き込むステップと、を備え、
    前記データ・ワードのうちの所定のデータ・ワードがアドレスを含み、
    前記アドレスは、前記FIFOバッファへのアクセスを識別するためであり、
    前記FIFOバッファは、前記複数のデータ記憶素子を除いて前記アドレスを保持するための用意をしない、方法。
  2. FIFOバッファを有するデータ処理システムにおいて、前記FIFOバッファを介してデータ・ストリームを転送する方法であって、
    前記FIFOバッファへのアクセスを識別するステップと、
    前記FIFOバッファがデータ転送のために使用可能か否かを判定するステップと、
    前記データ・ストリームを前記FIFOバッファの複数のデータ記憶素子に書き込むステップと、
    前記複数のデータ記憶素子のうちの1つのデータ記憶素子への一時的記憶のため、前記データ・ストリーム内の所定点にアドレスを挿入するステップと、を備え、
    前記アドレスは、前記FIFOバッファへのアクセスを識別するためであり、
    前記FIFOバッファは、前記複数のデータ記憶素子以外のアドレスを保持する用意を除外する、方法。
  3. FIFOバッファを有するデータ処理システムにおいて、前記FIFOバッファを介して第1のバスから第2のバスへデータ・ストリームを転送する装置であって、
    前記データ・ストリームを一時的に記憶するための複数の記憶素子と、
    前記第1バスに結合され、アドレスを受信し、且つ前記アドレスが前記複数のデータ記憶素子にアクセスするための所定アドレス範囲内にあるときを識別するアドレス・デコーダと、
    前記アドレス・デコーダに結合された書き込み制御論理回路であって、前記データ・ストリームを前記複数のデータ記憶素子に書き込ませる前記書き込み制御論理回路と、を備え、
    前記アドレス・デコーダは、前記複数のデータ記憶素子を介して前記第2のバスに与えられるべき前記データ・ストリーム内の所定点に前記アドレスを挿入させ、
    前記FIFOバッファは、前記複数のデータ記憶素子を除いて前記アドレスを保持するための用意をしない、装置。
JP34711295A 1994-12-16 1995-12-15 データ処理システムにおいてデータ・ストリーム内にアドレスを挿入する装置および方法 Expired - Lifetime JP3773574B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US35789894A 1994-12-16 1994-12-16
US357898 1994-12-16

Publications (2)

Publication Number Publication Date
JPH08339290A JPH08339290A (ja) 1996-12-24
JP3773574B2 true JP3773574B2 (ja) 2006-05-10

Family

ID=23407483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34711295A Expired - Lifetime JP3773574B2 (ja) 1994-12-16 1995-12-15 データ処理システムにおいてデータ・ストリーム内にアドレスを挿入する装置および方法

Country Status (3)

Country Link
US (1) US5889948A (ja)
EP (1) EP0717348A3 (ja)
JP (1) JP3773574B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6789150B1 (en) * 1998-02-16 2004-09-07 Infineon Technologies A.G. Integrated circuit having arbitrated switching between busses
US6313845B1 (en) * 1998-06-30 2001-11-06 3Dlabs Inc. Ltd. Method and apparatus for transporting information to a graphic accelerator card
NO993483L (no) 1999-07-15 2001-01-16 Ericsson Telefon Ab L M Fremgangsmåte og anordning for effektiv overföring av datapakker
US7680944B1 (en) * 2003-02-28 2010-03-16 Comtrol Corporation Rapid transport service in a network to peripheral device servers
US7716736B2 (en) * 2003-04-17 2010-05-11 Cybersoft, Inc. Apparatus, methods and articles of manufacture for computer virus testing
US20050188125A1 (en) * 2004-02-20 2005-08-25 Lim Ricardo T. Method and apparatus for burst mode data transfers between a CPU and a FIFO

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4683534A (en) * 1985-06-17 1987-07-28 Motorola, Inc. Method and apparatus for interfacing buses of different sizes
US5113354B1 (en) * 1986-02-07 1993-11-09 System for optimizing data transmissions associated with addressable buffer devices
US4768190A (en) * 1986-04-30 1988-08-30 Og Corporation Packet switching network
US5327545A (en) * 1988-05-26 1994-07-05 International Business Machines Corporation Data processing apparatus for selectively posting write cycles using the 82385 cache controller
US5155810A (en) * 1989-01-10 1992-10-13 Bull Hn Information Systems Inc. Dual FIFO peripheral with combinatorial logic circuitry
US4954987A (en) * 1989-07-17 1990-09-04 Advanced Micro Devices, Inc. Interleaved sensing system for FIFO and burst-mode memories
DE69124946T2 (de) * 1990-11-30 1997-09-18 Ibm Bidirektionaler FIFO-Puffer zur Schnittstellenbildung zwischen zwei Bussen
US5262997A (en) * 1991-11-25 1993-11-16 Industrial Technology Research Institute Extendable FIFO
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
WO1994018766A1 (en) * 1993-02-09 1994-08-18 Dsc Communications Corporation High-speed packet bus

Also Published As

Publication number Publication date
EP0717348A3 (en) 1997-06-04
EP0717348A2 (en) 1996-06-19
JPH08339290A (ja) 1996-12-24
US5889948A (en) 1999-03-30

Similar Documents

Publication Publication Date Title
US5673396A (en) Adjustable depth/width FIFO buffer for variable width data transfers
US4949301A (en) Improved pointer FIFO controller for converting a standard RAM into a simulated dual FIFO by controlling the RAM's address inputs
US5133062A (en) RAM buffer controller for providing simulated first-in-first-out (FIFO) buffers in a random access memory
US20040107265A1 (en) Shared memory data transfer apparatus
US6889266B1 (en) Method for delivering packet boundary or other metadata to and from a device using direct memory controller
US20020184453A1 (en) Data bus system including posted reads and writes
US7165126B2 (en) Direct memory access device
JP3773574B2 (ja) データ処理システムにおいてデータ・ストリーム内にアドレスを挿入する装置および方法
US5761532A (en) Direct memory access controller with interface configured to generate wait states
JP2001229115A (ja) Atapiコマンド処理方式
US6487617B1 (en) Source-destination re-timed cooperative communication bus
EP1793314B1 (en) Data transfer operations and buffer memories
KR100225727B1 (ko) 데이타 처리장치(Data processing system)
US6681273B1 (en) High performance, variable data width FIFO buffer
EP0720087A1 (en) Apparatus and method for a memory extension stack in a data processing system
JP2536415B2 (ja) Dma転送制御装置
JP3304395B2 (ja) データ転送装置及びデータ転送方法
JP4592944B2 (ja) Cpuインターフェース回路
US20020032846A1 (en) Memory management apparatus and method
IE842856L (en) Adjustable buffer for data communications in data processing¹system
JP2000215154A (ja) Dmaコントロ―ラ
JPS6019816B2 (ja) マイクロプログラム制御アダプタ
JP3467188B2 (ja) 多重化バスの順序保証システム
JP2581144B2 (ja) バス制御装置
JPS61156454A (ja) デ−タ転送制御装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20041217

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050303

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050803

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050809

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060215

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090224

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100224

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110224

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110224

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120224

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130224

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20140224

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S631 Written request for registration of reclamation of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313631

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term