JPH05509425A - プログラム可能信号プロセッサ・アーキテクチャ - Google Patents

プログラム可能信号プロセッサ・アーキテクチャ

Info

Publication number
JPH05509425A
JPH05509425A JP3510621A JP51062191A JPH05509425A JP H05509425 A JPH05509425 A JP H05509425A JP 3510621 A JP3510621 A JP 3510621A JP 51062191 A JP51062191 A JP 51062191A JP H05509425 A JPH05509425 A JP H05509425A
Authority
JP
Japan
Prior art keywords
data
data signal
port
bus
processing
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
JP3510621A
Other languages
English (en)
Inventor
ロビンソン,ジェフリー・アイ
ローズ,ケイス
ミュージィカス,ブルース・アール
Original Assignee
スター・セミコンダクター・コーポレーション
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 スター・セミコンダクター・コーポレーション filed Critical スター・セミコンダクター・コーポレーション
Publication of JPH05509425A publication Critical patent/JPH05509425A/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
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/786Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using a single memory module
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 プログラム可能信号プロセッザ・アーキテクチャ(関連出願) 本願は、1988年7月11日出願の係属中の米国特許出願第07/217゜6 06号および1989年7月10日出願の米国特許PCT出願第8910298 6号の一部継続出願である。
(技術分野) 本発明は、プログラム可能な回路デバイスに関する。特に、本発明は、カスタマ イズされた信号処理デバイスのシリコンでの瞬時の実現を可能にするアーキテク チャに関する。
(発明の背景) ディジタル信号処理は、レーザ・システム、画像認識などの主として軍事用途で 使用されるコストの高い秘匿技術から、ディジタル・オーディオ・ディスクおよ びコンパクト・ディスクの如き消費者製品において使用される高い成長技術に進 化してきた。シングル・チップ・ディジタル信号プロセッサ(SCDSP)は、 1980年代の早期に特にこれらマーケットを対象に導入された。しかし、5C DSPは設計および使用が複雑であり、著しい性能上の制限を有する。特に、5 CDSPはDCから数十KHzの前半に及ぶ周波数スペクトルに制限される。更 に、大半の5CDSPは、Von Ncumanのマイクロプロセッサ起源に根 源を有する他の開発環境およびハードウェア性能上の諸問題を有する。
一般的な信号処理ベースの製品は、図1に示される以下に述べる如(細分化する ことができる。即ち、アナログ・入出力(Ilo)、およびA/Dおよび(また は)D/A変換、信号の条件付けおよび処理、サンプリング率決定処理、および 論理、決定および制御の処理である。アナログ・インターフェース(I 10> は、典型的には、入力方向におけるA/D変換に先立って事前増幅およびアンチ ェリアシング・フィルタ操作、ならびに出力方向におけるD/A変換、再構成フ ィルタ操作および電力増幅を行う。信号条件付は及ぶ処理回路は、フィルタ操作 、増幅、整流、ならびに高速フーリエ変換などの如き正確な信号処理機能を行う 。
サンプリング率決定回路は、これに送られる各サンプルについて簡単な論理的判 断を行うウィンドウ・コンパレータ、量子化器、伸長器などを含む。最後に、入 力方向における論理、判断および制御の処理回路は、信号の条件付けおよび処理 、およびサンプリング率決定処理回路からの信号を用いて、ある有効な方法で外 部装着を制御する判断を行う。外部装着を制御するためには、論理、判断および 制御の処理回路は、出力方向にあるアナログ・デバイスまたは装着を駆動しこれ と対話するため信号処理を更に必要とする信号を生成する。判断を行う際、論理 、判断および制御の処理回路は、典型的には、使用する信号から非同期的にラン する高度にデータに依存するコードを使用する。このような回路の事例は、音声 およびイメージ認識アルゴリズム、ディスク・ドライブ・コントローラ、音声生 成アルゴリズム、数値的に制御されるマシン・ツール・コントローラなどを含む 。
タスクの上記内容に基いて、5CDSPが「信号処理」および「論理処理」と呼 ばれるものの双方を行うため呼出されることが判る。信号処理は、典型的に計算 集約的であり、リアルタイムI10のための待ちおよび寄生オーバーヘッドが低 いことを必要とし、多数の非同期的処理を有効に実行し、かつ制御可能でなけれ ばならない。信号処理の一例は、パイクワッド−フィルタ(biquad fi lter)により行われる処理である。1つのパイクワッド・フィルタ部は、典 型的には8つのデータ・メモリー・ワードと、18のプログラム・メモリー・ワ ードを必要とする。しかし、これはコンピュータ能力で毎秒数百万の命令を必要 とし、即ち、計算集約的であるがメモリー集約的ではない。信号処理機能は、「 端末」プロセッサではなく「インラインJプロセッサとしてより優れた特徴を有 し、信号は高いサンプリング率でパイクワッド・フィルタを通過し、別のセクシ ョンへ入力を提供する。その結果、一般に非常に高いI10帯域幅が信号処理機 能のために要求される。また、信号処理システムに対して多数のパイクワッド・ フィルタが要求される場合、フィルタは独立的なソースを有する信号を処理する ならば、非同期的となる。換言すれば、信号プロセッサは、幾つかの処理機能を 並行に実施するためしばしば呼出される。
信号処理とは対照的に、論理処理は通常(計算集約的とは対照的に)メモリー集 約的であり、(特にマルチプロセッサ・システムにおいて)多数の割込みを有効 に取扱わねばならず、(制御可能であることと対照的に)コントローラとして働 く。一般的な形式の論理プロセッサは、その処理を実施するため広範な判断指向 のソフトウェアに依存するマイクロプロセッサである。このソフトウェアは、「 C」の如き高レベルの言語で書かれるのが典型的である。コードは、多くの[i f、−、then、、、elseJの如き構造をしばしば含み、これは非リアル タイム・アプリケーションにおいて容易に処理される非常にばらつきのある実行 時間を結果としてもたらし得るが、有効なリアルタイム・システムでは非常に問 題の多いスケジューリング問題を提供する。
信号および論理処理要件を比較すれば、これらは全(似ていないことが判る。
それにも拘わらず、状況に応じて、論理プロセッサにとっては信号処理を行うた め呼出されることが一般的であり、またその反対も妥当する。マイクロプロセッ サ技術は古く更に発展的な技術であるため、多くのDSPのアーキテクチャはマ イクロプロセッサのアーキテクチャから広範な借りを有する。このため、DSP はしばしば割込み構造を有するコントローラとして構成される。しかし、この種 のアーキテクチャは、ディジタル信号処理の生な機能には正しく適していない。
(発明の要約) 従って、本発明の主たる目的は、信号処理の要求に共用でき、かつマイクロプロ セッサが論理的処理を行うように信号処理の能力において働き得る信号プロセッ サに対するアーキテクチャの提供にある。
本発明の別の目的は、余分な計算オーバーヘッドがそれ程大きくない非常に計算 的な拡張が容易に可能である信号プロセッサ・アーキテクチャの提供にある。
本発明の別の目的は、割込み構造に依存せず相互に非同期的に実行し得る多重並 行処理要素を備えた信号プロセッサに対するアーキテクチャの提供にある。
本発明の更に別の目的は、複合信号処理システムを生成するためのスケッチおよ び実現能力を提供するようにコンパイラとインターフェースするよう有効に設計 された信号プロセッサの提供にある。
本発明の別の重要な目的は、7才しい信号プロセッサ・システムならびに望まし い信号プロセッサ・システム自体の機能ブロックの開発、評価およびデバッグに おいて使用可能な信号プロセッサ開発システムの提供にある。
信号プロセッサ開発システムに関して、本発明の更に他の目的は、実行システム のどの「ノード」もアナログ形態で調べたり見ることができように、また実行シ ステムのどのブロックのパラメータも変更できかつこの変更の影響を即時観察で きるように、設計者がシステムと対話することを可能にするツールの提供にある 。
本発明の目的によれば、下記のアーキテクチャを持つ集積信号プロセッサ(以下 本文では、譲受人の商標であるrsPROcJと呼ぶ)が提供されることが望ま しい。即ち、「マルチポート化された」中央記憶装置、少なくとも1つのプログ ラム・メモリー、マルチポート化中央記憶装置およびプログラム・メモリーと接 続された少なくとも1つの、望ましくは複数のディジタル−プロセッサを含み、 各ディジタル・プロセッサはマルチポート化中央記憶装置からデータを取得し、 このデータをプログラム・メモリーにおけるプログラムに従って処理し、処理さ れたデータをマルチポート化中央記憶装置へ送り、マルチポート化中央記憶装置 とのデータのインターフェースとして働くことにより、5PROCに入る外部デ ータおよび5PROCから出る処理されたデータを制御するデータ・フロー・マ ネージャと、データ・フロー・マネージャと接続されて5PROCに対する直列 インターフェースとして働く入出力ポートと、5PROCのプログラミングを可 能にし、かつ5PROCに対する並列インターフェースとして働くホスト−ポー トとを含んでいる。本文における諸口的のため、本文において記憶装置または記 憶手段即ちRAMなどと関連して使用される用語「マルチポート化」とは、マル チポート化された記憶装置と接続された各装置がマルチポート化記憶装置に対し て競合しないアクセスを行う(即ち、マルチポート化記憶装置にアクセスする各 デバイスが、データが共用できることを除いて、他のこのようなデバイスから判 らない)と考える点で、真にマルチポート化記憶装置ならびにマルチポート化さ れたように見える記憶装置を広く含むと見なされることを意図することが強調さ れる。このようなマルチポート化中央記憶装置を生成する1つの方法は、1つの ポートを持つ記憶装置に対して時分割多重化アクセスを行うことである。
望ましい5PROCにおいては、プログラム・メモリーは、全てのプロセッサに 供するマルチポート化プログラムRAMであり、中央記憶装置はマルチポート化 データRAMである。また、望ましい実施態様においては、集積化ブートROM は集積化信号プロセッサと関連して提供される。5PROCがマスター・モード にある時、ブートROMは、パワーアップと同時に集積信号プロセッサのプロセ ッサの1つにホスト・ポートの制御を取得させる。マスター・モードにおいては 、ホスト・ポートは5PROCとEPROMまたはROM間の並列インターフェ ースとして働く。EPROMはプログラムRAMに対するプログラム・コード、 データ・フロー・マネージャ、並列ホスト・ポート、直列ポートおよびデータR AMに対する構成情報を、またデータRAMに対するデータを格納する。スレー ブ・モードでは、5PROCがホスト・マイクロプロセッサ、例えば8096に よりプログラムされる時ブートROMは必要とされない。更に、ブートROMと 記憶スペースを共有する中断(break)ROMは、プログラムの中断が行わ れる時、5PROCを実行させるためマスターまたはスレーブ・モードのいずれ かで提供されることが望ましい。
本発明の他の特質によれば、アクセス・ポートおよびプローブが提供される。
アクセス・ポートは、マルチポート化データRAMおよびプログラムRAMと接 続され、データRAMおよびプログラムRAMの記憶場所に関して読出し/書込 みを行う手段として設けられる。このように、メモリーの形態は修正ができ、メ モリーに記憶されたパラメータは修正でき、記憶場所を構成する全てのレジスタ における全ての値は変更することができる。一方、プローブは特定のデータRA Mの場所に記憶されたデータの値を監視するための手段として提供されるポート である。プローブは、データRAMバスと接続されこれを監視するプログラム可 能なアドレス・デコーダである。このプローブは、マルチポート化データRAM のプログラムされた場所に書込まれたデータを捕捉する。
5PROCのアーキテクチャは、複数のこのような集積信号プロセッサが一つに 接続されて1つのシステムを形成することを可能にする。従って、各集積信号プ ロセッサは、その直列ポートを接続する直列バス、および(または)並列ホスト ・バスを介して、別の集積信号プロセッサと通信することができる。
開示されたアーキテクチャによれば、本文の発明の背景に述べた全ての要件を満 たす集積信号プロセッサが提供される。第1に、集積信号プロセッサは、複数の 集積信号プロセッサが1つのシステムにリンクすることができるため、計算的に 拡張し得る。第2に、内部プロセッサが信号I10タスクから解放されることを データ・フロー・マネージャが保証するため、集積信号プロセッサはリアルタイ ムI10のための待ちおよび寄生オーバーヘッドが少な(なる。その結果、通常 の信号処理アクティビティに使用できる処理能力は、Iloに対する割込みを処 理しなければならない類似のシステムよりも著しく大きくなり、従って、より高 いサンプリング率が達成可能である。第3に、集積信号プロセッサは、内部プロ セッサの各々が必要に応じて装孟全体にセットアツプされた種々の信号経路へ割 付けることができるため、多数の非同期処理を有効に実行することができる。
多数の内部プロセッサ間を物理的に分離することは、処理能力の最終的な細分性 がプログラミングの解を効率的にする一方で、通常の共有されたハードウェア問 題を克服する。更に、同期的処理に対しては、多数の内部プロセッサがコンパイ ラに更に多(の区分方式を提供し、これにより使用可能なメモリーおよび処理能 力の改善された使用を可能にする。最後に、重要なことには、集積信号プロセッ サは、論理的プロセッサ(即ち、マイクロプロセッサ)に対して容易にインター フェースとなり得る点において制御可能である。
本発明の別の特質によれば、提供される集積信号プロセッサは、開発システムが 提供される。この開発システムは、5PROCに関する「スケッチおよび実現」 能力を可能にする。特に、図式的エントリ・システムが、パラメータ化可能な信 号処理機能のセル・ライブラリとともに提供される。提供される機能には、乗算 器、加算接合点、増幅器、積分器、位相同期ループ、IIRフィルタ、FIRフ ィルタ、FFT、整流器、コンパレータ、リミッタ、発振器、波形ジェネレータ などが含まれる。ユーザが自分自身の機能を定義することを可能にするプログラ ミング言語もまた提供される。開発システムのユーザは、多数のアイコン(機能 ブロック)の選択を有し、これは、コンピュータ・マウスの使用により、スクリ ーン上に入れることができ、また必要に応じてブロック図に一つに結合すること ができる。各アイコンは、セル・ライブラリにおける信号処理機能と関連してお り、ユーザは各ブロックをパラメータ化することができる。ユーザ体系が完全で ある時、開発システムは自動的に情報を最適の方法でコンパイルし、インターフ ェース回路を介してホストまたは1つ以上の5PROCのアクセス・ポートと接 続されたR3232リンクを介して(スケッチされた図式を実現する)プログラ ムをダウンロードする。コンパイラは、5PROCに対する自動コードを生じる のみならず、データRAMにおける内部アドレスとともに定義された全ての変数 をリストする記号テーブルをも生じる。これらアドレスに対する書込みは、これ らパラメータの値を変化させることになる。例えば、「利得」と対応するアドレ スに対して書込みが行われるならば、増幅器の利得は新しい値に変化することに なる。
5PROCが一旦プログラムされると、開発システムは、ユーザが装置を対話的 にデバッグすることを可能にする。プローブは、指令ライン・エディタを介して 開発システムにおかれる。概略図(ブロック図)におけるノードのネームのタイ ピングは、プローブをこの点へ「移動コさせる。このプローブの出力は、5PR OCの固定ピンに接続されたオシロスコープにより監視することができる。同様 に、指令ライン・エディタはパラメータの修正に使用することもできる。パラメ ータの修正は、打ち込みまたはファイルからダウンロードのいずれでも可能であ る。このような容易性は、例えばユーザがポール(po I e)位置およびゼ ロ位置をフィードバック・システt1に移動してリアルタイムに効果を観察する ことを可能にする。
設計者が自分のシステムの最適化を完了した時、開発システムはEPROMに記 憶できるファイルを生じる。5PROCのパワーアップと同時に、EPROMは 5PROCのホスト・ポートに接続され、EFROMに含まれるファイルを用い て装置をプログラムする。
本発明の更に別の目的および利点については、添付図面に関して詳細な説明を参 照すれば明らかになるであろう。
(図面の簡単な説明) 図1は、一般の信号処理に基く生成のタスクのセグメンテーシヨンを示す図、図 2は、本発明の5PROC装置および外部のホスト即ちメモリーに対するその接 続の高レベル・ブロック図、 図3は、5PROCのデータRAMに対する5PROCの種々の構成要素および ポートのアクセスのタイミング図、 図4は、本発明の5PROC装置の内部プロセッサのブロック図、図5は、ディ ジタル−パイクワッド・フィルタのブロック図、図6Cは、マルチポート化デー タRAMに構成され、本発明のデータ・フロー−マネージャにより使用されるF IFOの図、図78および図7bは、本発明の直列入力および直列出力ポートの ブロック図、図8は、本発明のホスト−ポートの簡単なブロック図、図9は、本 発明のアクセス・ポートのブロック図、図10は、本発明のプローブのブロック 図、図11は、本発明の複数の5PROC装置の論理プロセッサに対するフロン ト・エンドとして働くシステムへの接続を示す簡単図、図12は、本発明の開発 システムにおいて使用されるコンパイラの高レベルのフローチャート、および 図13は、本発明のフラッグ方式において使用されるデコーダのブロック図であ る。
(実施例) 本発明の望ましい5PROCサブシステム10の高レベルのブロック図が図2に 示される。望ましい5PROCIOは、データRAMバス125を介してアクセ スされる中央の(広義に理解される如き)「マルチポート化JデータRAMl0 0と、プログラムRAMバス155を介してアクセスされるマルチポート化プロ グラムRAM150と、データRAMバス125およびプログラムRAMバス1 55と接続され、一般的な処理機能を実施する複数の内部プロセッサ(GSP) 400と、データRAMバス125と接続され、5PROCに関してデータの入 出カフローを全般的に制御してGSPをこのデータ・フローの処理から解放する データ・フロー・マネージャ(DFM)600と、DFM600と接続された複 数の直列データ・ポート700と、データRAMバス125およびプログラムR AMバス155の双方と接続されたホスト・ポート800とを含み、このホスト ・ポートは、5PROCをホスト・バス165を介して、スタンド・アロン・モ ードではEPROM170と、あるいはホスト・モードではホスト・プロセッサ 180と接続するように働き、データRAMバス125とプログラムRAMバス 155の双方と接続されたアクセス・ポート900と、データRAMバス125 と接続されたプローブ1000と、ブートROMバス157がスイッチ192を 介してGSP400と接続された内部ブートROM190とを含み、内部ブート RoM190は、始動モードにおいてマスター5PROCIOを制御するととも に、GSPが中断モードにある時5PROCIOのGSP400を制御するよう に使用され、データRAM100の特定のアドレスが(データRAMバス125 上の値により決定される如く)アドレス指定される時、フラッグ・バス198を 介してDFM600およびGSP400と接続されてDFMおよびGSPをフラ ッグ操作するフラッグ生成デコーダ196を含むことが望ましい。
本発明の5PROC10は、一部が外部にセットされたビン(図示せず)により 決定される幾つかの異なるモードで機能することができる。特に、5PROC1 0は、ブート・モードと、演算モードと、「中断」モードを含む開発モードとを 有する。更に、5PROCは、マスター5PROC(図11参照)またはホスト 180のいずれか一方と接続されるマスター5PROCまたはスレーブ5PRO Cでよい。5PROCIOがマスターであるブート(パワーアップ)・モードで は、5PROCIQは、それ自体およびシステムの一部である他のいずれかのス レーブ5PROCの双方をプログラムするよう要求される。このためには、パワ ーアップと同時に、スイッチ192および194はB(ブート)ノードと接続す るようにトグルされる。スイッチ192.194がこのようにセットされると、 ブートROMはGSP400aの如きGSP400と接続され、プログラムRA M150はデータRAMバス125と接続される。ブートROM19QがGSP 400aと接続されると、GSP400aはブートROM190でブート・コー ドを読むことができる。このコードは、GSPにホスト−ポート800の制御を 取得させて情報をEPROM170からホスト・ポート800を介して5PRO Cヘロードさぜるよう構成される。EPROM170に含まれる情報は、プログ ラムRAM150に対するプログラム・コード(データRAMバス125を介し て送られる)と、D FM600および直列ポート700、ホスト・ポート80 0およびアクセス・ポート900に対する構成情報と、データRAM100に対 する初期化情報を含むパラメータ情報とを含む。本発明の開発システムによりコ ンパイルされてEPROMに記憶される(以下において更に詳細に述べる如き) この情報は、典型的に直列ポート700を介して受取られたデータについて所定 の機能を5PROCに行わせる。
ブート・モードにおいては、マスター5PROCがプログラムされた後、システ ムの残りの(スレーブ)SPROC(図11参照)は、マスター5PROCIO にEPROM170を読出させてこの情報を共通のホスト・バス165を介して 異なるγドレス空間に駐在する他の5PROCへ送らせることによりプログラム される。スレーブ5PROCは(図4に関して述べるように)ブートROM19 0はまた5PROCの中断モード動作を制御するためにも使用されるが、スレー ブS P R,OCはブート・モード目的のためにはブートROMを要求しない 。
初期化が完了した後、ブート・モードは予め定めたメモリー−−アドレス(04 A 01H)への予め定めた値(f[H)の書込みにより励起され、これはスイッチ 192をノード0(演算)にトグルさせ、スイッチ194を開路位lへトグルさ せる。その時、5PROCあ、その意図された信号処理目的のため動作する用意 ができている。
スレーブ5PROCはブート・モードにおいてマスター5PROCによりプログ ラムすることができるが、スレーブ5PROCもまた、図2のホスト180の如 きホスト・マイクロプロセッサによりプログラムすることができる。ホスト18 0の如きホストがホスト・バス165と接続されるスレーブ・モードにおいては 、内部ブートROM190はアクティブ状態ではない。実際に、スイッチ192 および194は動作モード位置にセットされる。5PROCのプログラムのため には、ホスト180はホスト・バス165を用いて(おそら(は、EPROM1 70から取得された)プログラム・データをホスト・ポート800を介して送り 、プログラムRAMバス155を介してプログラムRAMへ送り、データRAM のデータをホスト・ポート800およびデータRAMバス125を介してデータ RA、Mへ送ることが望ましい。直列データ・ポート700およびデータ・フロ ー・マネージャ600に対する構成情報は、以下に述べるように、ホスト・ポー ト800およびデータRAMバス125を介してホスト180により送られる。
動作モードにおいては、5PROCIOに関して出入りする直列データはは主と して直列ポート700に流れるが、並列データはホスト・ポート800に流れる 。処理されるべき直列データは入力ポードア00へ送られ、このポートはデータ ー70−・マネージャ600と接続され、これは更にデータをデータRAMl0 0における適当な場所(バッファ)へ送る。ある状況においては、以下に述べる ように、D FM600はまた別の情報をフラッグ生成デコーダ196により監 視される特定のデータRAMの場所へ書込む。デコーダ196は更に、図13に 関して以下に述べるように、フラッグをトリガー即ちフラッグ・バス198にお いてトリガーさせる。他のフラッグは、「共通線」と呼ばれる線を介してハード ウェアービン(図示せず)によりトリガーされる3、ハードウェア・ピンは、外 部タイミング情報を5PROCのGSP400およびDFM600へ与える上で 特に有効である。
データが一旦データRAM100へ送られ、典型的にはGSP400がフラッグ −バス198を介してf’fJljの到着について通知された後、GSP400 はこのデータを処理することができる。データの処理は、マルチポート化プログ ラムRAM150に記憶された、更に開発システムのユーザにより生成された概 略図の機能、トポロジおよびパラメータを表わす1つ以上のプログラムに従って 行われる。データの処理において、GSP4QQはデータRAM100から読出 しかつこれに書込むことができる。しかし、GSPに割込み負荷となるI10機 爺からGSPを守るために、GSPは相互に直接アドレス指定せず、D FM6 00または入出力直列ポー ドア00からの読出しまたは書込みは行わない。同 様に、GSPは、ホスト・ポート800またはアクセス・ポート900への直接 アクセスは行わない。このため、処理されたデータが5PROCIOから出力さ れるためには、処理データはGSP400によりデータRAM100へ送られね ばならない。
データRAMにおけるデータは、D FM600により読出されて出力ポードア 00を介して逐次に送出されるか、あるいはホスト・ポート800を介して並列 形態でホスト・バス165上に送出される。
5PROC装置の開発モードは、EPROM170の最終プログラミングに先立 ち使用され、基本的にホスト180に関連して使用される。開発モードは、ユー ザが5PROC装置の内部にアクセスすることを許すことにより、ユーザが集積 回路信号プロセッサを容易かつ有利に開発することを可能にする。例えば、テス ト動作モードにおいてGSPのレジスタのデータ「ダンプJを取得することが望 ましければ、GSP400は、GSPをしてメモリー・アドレス406Hに書込 ませることにより中断モードへ入ることができる。このアドレスに対する書込み の結果、デコーダ(図示せず)はスイッチ192をトグルさせ、ブートROM] 90の中断部分からの命令がバス157を介してGSP400により使用される 。このようにブートROM190がGSP400と接続される間、GSPは、G SPの各レジスタにその内容をデータRAMIQQの予め定めた場所ヘダンプさ せるルーチンを走らせる。このデータは、アクセス・ポート900またはホスト ・ポート800を介して要求されるならば、ユーザによりアクセスして変更する ことができる。この時、ブートROM190の中断部分はデータをGSPへ再ロ ードし、メモリー・アドレス107Hに書込み、別のデコーダ(図示せず)がプ ログラムRAMl50がGSP400に接続されるようにスイッチ192を再び トグルさせ、プログラムが継続する。
5PROC装債の開発モードにおいて有効な他のツールは、アクセス・ポート9 00およびプローブ1000である。このアクセス・ポートは、5PROCが作 動中、ユーザがプロゲラt、RAM150に保持されたプログラムに対する変更 、および(または)プログラムRAM150またはデータRAM100に記憶さ れたパラメータに対する変更を行うことを許容する。プローブ1000は、特定 のデータRAMの場所に書込まれるデータ値を監視することにより、ユーザがア ナログまたはディジタル変化で5PROCにより生成された内部信号を見ること 可能にする。アクセス・ポート900およびプローブ1000を一緒に用いるこ とにより、アクセス・ポート900を介して入れられたパラメータ値の変更の影 響は、プローブ1000により直ちに監視することができる。
図2を構成するブロックの各々の詳細に戻る前に、5PROCの機能に対する中 心がマルチポート化データRAM100とマルチポート化プログラムR,A M  150であることを知るべきである。先に述べたように、RAMに対する1つ のアクセスを(図2の実線で示される如く)時分割多重化することにより、ある いは(図2の破線により示唆される如き)真のマルチポート化RAMを提供する ことによって、RAMをマルチポート化することができる。図3に示されるよう に、本文の望ましい実施態様においては、GSP400およびホスト・ポート8 00およびアクセス・ポート900によるプログラムRAMl50に対するアク セスは、1つの入力の時分割多重化による。同様に、GSP400、DFM5Q Q、ホスト・ポート800、アクセス・ポート900およびプローブ1000に よるデータRAM100に対するアクセスもまた、1つの入力の時分割多重化に よる。
図3に示されるように、本発明の望ましい実施態様においては、基本の50MH zSPROCクロック147のGSP毎に1つずつ5つの主要な時間スロット( 図2に示される)があり、1つは5PROCの他の全てのブロックにより共用さ れる。各GSP400は、プログラムRAM(p−rd)から5クロツク・サイ クルに1回読出しを行うことができ、各GSPにプログラムRAM150に対す る10MHzのアクセスを有効に与える。5番目のクロック・サイクルにおいて 、ホストはプログラムRAMに関する読出しまたは書込みのいずれかを行うため 望ましいアクセスが与えられる。ホストがプログラムRAMに対する読出しまた は書込みを必要としなければ、アクセス・ポートがアクセスを与えられる。ある いはまた、ホスト・ポートおよびアクセス・ポートは、別の時分割多重化により 5番目の時間スロットに対して50150アクセスを与えることができる。
ブート・モードにおいては、5PROCの唯1つのGSP (例えば、GSP4 00a)がブートROM190をアクセスする。プログラムRAM150をEP ROM170からのプログラム・データによりプログラムするためブート・モー ドが使用されるため、プログラムRAMバス155は(データRAMバス125 およびスイッチ194を介して)プログラムRAM15Qに対する書込みのため GSP400aにより使用されねばならない。このため、プログラムRAM書込 み(p−rd)は、図3に示されるように、このような状況を許容するように与 えられる(図2に関して先に述べたように)。
データRAM100は、時分割多重化により同様にマルチポート化される。図3 に示されるように、各GSP400は、データRAM100からの読出しまたは 書込みのため1つの時間スロットが与えられる。5番目の時間スロット(時間ス ロット2)は下記の如く時間的に再分割される、即ち、ホスト・インターフェー スに対して50%、および残りの50%はアクセス・ポート900に均等に分割 され、D FM600の8つのセクションの各々が8つの直列ポート700およ びプローブ1000と関連している。
本発明のRAM100および150は、別個のRAMデバイスであることが望ま しく、メモリー空間を共有しない。例えば、プログラムRAM15Qは、アト= レス場所0000乃至03ff(16進数)に割当てられる]、 K X 24 ビットRAMであることが望ましい。一方、データRAM100は、2にの主デ ータRAM空間がアドレス0800乃至Qfff(16進数)に割当てられ、1 にの補助レジスタ・ベース空間がアドレス0400乃至07ff(16進数)に 割当てられた3KX24ビツトのデータRAMであることが望ましい。生データ RAMアドレスの内、アドレス0800乃至0813(16進数)が以下に述べ るようにトリガー・バス・フラッグと関連し、アドレス0814乃至Qfffが データ・バッファ、スクラッチパッドの場所などに使用される。補助空間の内、 あるアドレスは下記の如く使用される。即ち、 04018 ブート・モード出口(「OH書込み)(GSPハード・リセット生 成)00405H直列ポート−リセット(書込み)0406H大域中断エントリ (書込み’)(GSPソフト・リセット生成)04071 大域中断出口(書込 み)(GSPソフト・リセット生成)04081 GSPI中断エントリ(書込 み)(GSPソフト・リセット生成)0409HGSP2中断エントリ(書込み )CGSPソフト・リセット生成)040aHG S P 3中断エントリ(書 込み)(GSPソフト・リセット生成)040bFI GSP4中断エントリ( 書込み)(GSPソフト・リセット生成)040cll G S P 1中断用 口(書込み)(GSPソフト・リセット生成)040dll GSP2中断出口 (書込み)(GSPソフト−リセット生成)040eHG S P 3中断用口 (書込み)(GSPソフト・リセット生成)040fHGSP4中断出口(書込 み)(GSPソフト−リセット生成)0410H直列ポート1内部クロック・レ ート遷択(書込み00=CK/2048)(書込み01冨CK/1024)(書 込み02=CK1512)(書込み03=CK/256)(書込み04=CK/ 128)(書込み05=CK/64)(書込み06=CK/32)(書込み07 =CK/15)但し、CKは5PROCりaツク(50MHz)0411H直列 ポート2内部りσツク・レート選択041211 直列ポート3内部クロック・ レート選択041.3H直列ポート4内部クロック・レート選択0414H直列 ポート5内部クロック・レート選択04151 直列ポート6内部クロック・レ ート選択0416TI 直列ポート7内部クロック・レート選択0417H直列 ポート8内部クロック・レート選択0440H乃至0447Fi 直列ボーhl  (pradd=0800H)Q448n乃至044 rH直列ポート2 (p radd=0801H)0450H乃至0457H直列ポート3 (p rad d=0802H)04581’l乃至045fH直列ポート4 (pradd= 0803H)0460H乃至0467H直列ポート5 (pradd=0804 H)0468H乃至046fH直列ポート6 (pradd=0805H)04 70H乃至04771 直列ポート7 (p radd=0806H)0478 1乃至047 rFi 直列ポー)3 (p radd=0807H)0480 1T乃至048711 DAC(プローブ)入力ポート(pradd=0808 H)0488■乃至048fHDAC(プローブ)直列出力ポート04fcl’ l乃至04ffHホスト・インターフェース−レジスタ記憶場所1000乃至f rrr(16進数)は、外部アドレス空間(例えば、スレーブ5PROC1他の デバイス、またはメモリー)を指す。
データRAM100における補助記憶場所の内、各GSPが中断エントリおよび 中断エントリ出口データ・アドレスが与えことを知るべきである。図2の実施例 は、中断が全てのGSPが一緒に中断しなければならないように実現される時、 バス155をブート/中11ROM 190に接続させるが、異なる回路は個々 のGSP中断を許容することがある。
各直列ポート毎に与えられた8つの24ビツトの場所を用いて、直列ポート、な らびに以下に述べる如き各直列ポートと関連するDFMセクションを構成する。
同様にプローブの入出力ポートが割当てられたメモリーの8つのワードを用いて 、プローブを構成するが、ホスト・ポートに割当てられたメモリーの8つのワー ドは以下に述べるようにホスト・ポートを構成するため使用される。
更に、記憶場所に関しては、情報が表示された直列ポートのどれかに書込まれる 時、トリガー・フラッグ・アドレスとなる別のアドレス(p r a d d) がDFM600により生成されて(更に詳細に以下に述べるように)データRA Mバス125へ書込まれることが判る。特定のアドレスのデータRAMバス12 5に対する書込みは、デコーダ196により監視される。図13に示されるよう に、デコーダ196は論理的に、11人力のANDゲート1210.16個の6 人力ANDゲート2020〜2036、および15個のインバータ2050a− 10500からなっている。実際に、データRAMバス125に書込まれた24 ビツトのデータ・アドレスの最初の4ビツトは、インバータ2050a〜205 0dにより反転されて16進数「0」について選択する。アドレスの第5のビッ トはANDゲート1210へ直接送られるが、第6乃至第8のビットはインバー タ20500〜2050gにより反転され、第5乃至第8のビットは16進数の アドレス「8」を選択するためである。第9乃至第]1ビットは、インバータ2 050h〜2050jにより反転され、第12のビットに関連して16進数「0 」または「1」を選択し、最後の5ビツト(第12乃至第16のビット)は、イ ンバータ2050に〜2050oにより反転され、最後の5ビツトの非反転およ び反転状態がANDゲート2010と共に異なる組合わせで6つの入力ANDゲ ートへ与えられて、アドレス0800〜0813のどれかがデータRAMバス1 25におかれる(即ち、デコーダ196により受取られる)ならば、トリガー− バス198上に適当な正の出力を与える。
図4において、本発明の望ましい一般信号プロセッサ(GSP)400のブロッ ク図が示される。GSPは、プログラムRAMバス155を介してプログラムR AM150に接続される。プログラムRAM1.50は複数のGSP400によ り共有されることが望ましいため、プログラムRAMバスに対するアクセスは、 図3に示されるように、時分割多重化される。プログラムRAMバス155は、 24ビツト幅のデータ・バスと、IKのプログラムRAMが用いられる10ビッ ト幅のアドレス・バスからなる。無論、より大きなプログラムRAMが要求され るならば、別のビットが同じものをアドレス指定するため要求され、プログラム RAMバスはより広い幅となる。図4に示されるように、GSP400はプログ ラムRAMバスのアドレス選択に書込み、どの命令(RA M場所)が要求され るかを表示する。しかし、通常の動作状態では、GSP400はプログラムRA Ml50に対するデータ書込みができない。通常の動作状態では、データは図2 に示されるホスト・ポートまたはアクセス・ポートを介してのみプログラムRA 、M150に書込まれ、これらポートもまた時分割多重化の方法でプログラムR AMバス155と接続されている。
GSP400はまた、データRAMバス125を介してマルチポート化データR AM100と接続されている。データRAM100はプロセッサ・アーキテクチ ャに対して中心であるため、またデータRAM100に対する調停されないアク セスが要求されるため、データRAM100は真のマルチポート化データRAM であるか、あるいはデータRAMバス125を介するデータRAM100へのア クセスがマルチポート化RAMを有効に形成するように時分割多重化されねばな らない。データRAMバスは、16ビツト幅のデータRAMアドレス・バスと、 24ビツト幅のデータRAMデータ・バスからなることが望ましい。図3および 図4に示されるように、GSPはデータRAM100のアドレス部分に書込むこ とができる。また、GSPはデータRAMバスのデータ部分に対して読出し/書 込みの両方が可能である。
GSPについては、次の6つのセクションのπ゛C細および機能により実質的に 記述する。即ち、ブロック−コントローラ410、プログラムコントローラ論理 ブロック420、乗算ブロック430、ALUブロック450、フラッグ−ブロ ック460およびデータRAMアドレス−ジェネレータ・ブロック470である 。
6つの全てのセクション、ならびに中断lノジスタ492、データ・アクセス・ レジスタ494および一時レジスタ496を接続するのは内部24ビツト・バス 490である1、これらセクションのいずれかあるいはレジスタ492.494 または496から内部バス490への全てのアクセスあ、3状態ドライバ429 .449 a、449b、459.469.489および499を介してである 。
ブロック・コントローラ410は、命令デコーダ412およびシーケンサ414 からなる。命令デコーダ412は、可能状態になると、14ビツト(命令コード の9ビツトおよびオペランドの5ビツト)をプログラムRAMのデータ部分から 取出す。9命令コード・ビットの内の6つは、GSPが実施すべき動作(命令) (例えば、加算、シフト、ジャンプなど)を表示するため使用され、64までの 命令が許される。望ましい実施態様においては、命令コードの別の3ビツトを用 いてGSPを使用すべきアドレス指定モードを指定する。特に、「絶対」モード (コード000)においては、アクセス・ジェネレータ・ブロック470の0レ ジスタ472における15ビツトを用いてデータRAM100におけるアドレス を選択し、データRAMのこのアドレスにおけるデータが動作のため使用される 。
「レジスタ」モード(コード001)においては、命令デコーダ412により取 得される5つのオペランド・ビットを用いて、GSPの多数のレジスタのどのレ ジスタがその内容を内部バス490に置くかを指定する。「直接左」モード(コ ード010)においては、0レジスタのデータの15ビツトが内部バス490の 15のmsbスロットに置かれるが、「直接右」モード(コード011)におい ては、この15ビツトは内部バスの15のlsbに置かれる。以下において更に 詳細に述べる如き残りの4モード、即ちrBL指標付き」 (コード100)、 「B指標付き」 (コード101)、rFL指標付き」 (コード110)およ び「F指標付き」 (コード111)においては、基底レジスタBまたはFにお ける値が0レジスタに記憶された15ビツトのオペランドの値、および適当にL (ループ)レジスタにおける値に加算されて、データR,A Mバス125へ出 力される。
命令デコーダ412は、プログラムRAMバスに接続されるのみでな(、線41 6を介してGSPの多くのマルチプレクサ、3状態ドライバ、レジスタなどにも 接続される。命令デコーダ412により復号される命令に基いて、これらの種々 の線416がシーケンサ414により決定される如きシーケンスデータ可能状態 にされる。実際に、命令デコーダ412およびシーケン(J”414は単に索引 チャートであり、命令デコーダ412がどの線416が命令二1−ドの9ビツト に見出されるコードに基いて可能化されねばならないかを探し、シーケンサ41 4が可能状態にされる線が指定しなければならないシーケンスを探す。
命令デコーダ412は、GSP400がバスに対するアクセスを許される時プロ グラムRAMバス155にあるどの命令でも復号するが、バス上にある命令がプ ログラム論理ブロック420により生成されて表示される。プログラム制御論理 ブロック420は、3状態ドライバ422、プログラム・アドレス値レジスタ4 .24(rPJレジスタとも呼ばれる)、増分器425、増分(T)レジスタ4 26、ジャンプ(Dレジスタ428、マルチプレクサ430および分岐論理ブロ ック432からなる。Pレジスタ424は、G S P 400により使用され るべきマイクO命令を含むプログラムRAM3.50の場所を含む。Pレジスタ 424は、このアドレスをバス・インターフェースとして働く3状態ドライバ4 22へ送ることによりプログラムRAMバス155へ書込む。
Pレジスタ424の更新は、分岐論理ブロック432からの情報に基いて、lレ ジスタ426またはlレジスタ428に記憶された12ビツトのアドレスの1つ を選択するマルチプレクサ430を介して行われる。■レジスタに記憶されたア ドレスは、増分器425において1の値がPレジスタ424に記憶された値に加 算されるため、単にPレジスタに記憶されたアドレス後の次の数字のアドレスに 過ぎない。大半の状態では、マルチプレクサ430が、Pレジスタ424をIレ ジスタにより更新することを可能にし、プログラムRAMの逐次のアドレス指定 が継続する。しかし、ルーチンにおけるジャンプが要求される場合の如きある状 態では、マルチプレクサ430はlレジスタ428におけるアドレスをPレジス タ424にロードすることをrlJ能にする。ジャンプの決定は、複数の状態フ ラッグの状態を以下に述べるように読出す分岐論理ブロック432により行われ る。
ジャンプが行われるアドレスは、内部バス490からlレジスタ428により得 られ、このバスはGSP400のどれかの部分から(あるいは、データRAMl 00から)アドレスを取得する。
プロゲラ1、側御論理ブロック420と接続されているのは、中断命令の実行と 同時に状態フラッグ情報ならびにPレジスタの値プラス1がロードされる中断レ ジスタ492である。状態フラッグおよびPレジスタの情報は、さもなければ内 部バス490に着くため使用できないため、3状態ドライバ429を介して内部 バス490に接続される中断レジスタ492に記憶される。プログラムの中断は 、典型的には、情報ダンプがシステム・ユーザにより要求される時に実行され、 GSP400をしてデータRAM100のあるアドレス(例えば、0406)り に書込ませるプログラムRAM150に命令を入れることにより行われる。デー タRAMバス125におけるデコーダ(図示せず)は、(書込まれるべき場所に 基いて)プログラム中断が実行されるべきことを決定するため使用され、制御信 号がデコーダにより中断レジスタ492へ与えられる。プログラムRAM150 におけるプログラム中断命令は、プログラムRAMバス]55と接続されるブー ト/中断ROM]、、90(図2)における命令をプログラム制御論理ブロック 420によりアクセスさせる。ブート/中断ROM190における命令コードは 更に、GSP400における各レジスタの値をデータRAM100における所定 の場所に書込ませる。次いで、GSP400は、その待機フラッグ・レジスタ( 以下に述べる)に記憶された待機フラッグがクリヤされるまで待機状態に保持さ れる。
待機期間中、必要に応じて、ユーザはアクセス・ポート900に関して以下に更 に詳細に述べるように、データRAMにおけるデータ値を変更することができる 。
従って、待機サイクルが終了すると、ブート/中断ROM190における命令は 、新しい値を含むデータRAMにおける値をGSPにおけるその適当なレジスタ へ書戻させる。プログラムRAM150に含まれる次の所要のマイクロ命令の場 所はPレジスタにロードされ、その結果GSPはその通常の状態で、1#続する ことができる。
GSPの乗算器ブロック430およびA、 L Uブロック450は、GSPに 対する数値計算を行う。乗算器ブロック430は、2つの入力レジスタXreg 432およびYreg434.3状態ドライバ449aを介して内部バス490 と接続されるマルチプレクサ436、事後Xreg439を含む乗算器438、 および乗算器詞御部441、加算器442、出力レジスタMrcg444、およ び6つのワードのどれが3状態ドライバ449bを介して内部バス490へ出力 されるべきかヲ辺択する第2のマルチプレクサ446からなる。典型的には、乗 数はYrcg434にロードされるが、被乗数は事後Xrcg439にロードさ れる。
乗算器訓御部441は、乗算器438が幾つかのマシンのクロック−サイクル( 例えば、3つのクロック・サイクルの合計300ナノ秒=15の内部GSPサイ クル)にわたり機能することを可能にする。乗算において乗算器が桁溢れするな らば、状態フラッグMがセットされ、この情報はプログラム制御セクション42 0の分岐論理ブロック432へ送られる。それにも拘わらず、乗数と被乗数の積 は加算器442へ送られ、これは累計モードにおいて新しい積を前の積の和に加 算してこの和を乗算レジスタM444へ送る。純粋な乗算モードでは、加算器の 内容がクリヤされ、その結集積はゼロを加算して積をMレジスタへ送る加算器を 通って送られる。
Mレジスタ444の内容は、内部バス490から利用可能である。しかし、Mレ ジスタは46ビツト・ワードを許容でき、内部バス490は24ビツト・ハスで あり、Mレジスタ・ワードの一部のみを一時にバス上にlくことができる。この ため、Mレジスタにおける24の最下位ビット(lsb)を選択するか、あるい はMレジスタに8つの最上位ビット(msb)を選択するようにマルチプレクサ 446が提供される。8つのmsbが選択されるならば、8つのmsbが内部バ ス490の8つのIsbスσットに置かれ、8ビツトのmsbがバスのmsbス ロットへ拡張される(例えば、msbがrlJならば、バスにおける最初の17 のmsbが「1」となる)。マルチプレクサ446はまた、左方ヘシフトされた 2つの(右を埋めるゼロ)24または8つのビット・ワードを選択することがで きる。このため、なかんず(、マルチプレクサ446は、Mレジスタ444にお ける積に基いて6つの異なる出力を生じることができる。
プロセッサのALUブロック450は、基本的には、入力レジスタ454を有す る算術論理演算装置452と、出力アキュムレータ・レジスタ456とを有する 標準的なALUである。算術論理演算装置452は、加算、減算などの同様な単 位の標準的機能が可能であり、Areg455に対する値ならびに桁上げ(C) ・桁溢れ(0)、符号ビット(S)およびゼロ(Z)を含む状態フラッグを生じ る。状態フラッグはあ、プログラム論理ブロック420の分岐論理ブロック43 2により使用されて、マイクロコード・プログラムにおける条件付きジャンプが 実行されるべきかを判定する。Aregの内容は、3状態ドライバ459を介し て内部バス490へ出力される。
待機フラッグ・ブロック460は、2つの待機フラッグ・レジスタWFreg4 62およびDFreg464、マルチプレクサ466およびORゲート468か らなる。待機フラッグ・レジスタのビットは、内部バス490上に送られるデー タによりセットする(即ち、書込む)ことができる。また、レジスタWFreg 462およびDFreg464は、データRAMバス125における予め定めた 場所が図2および図13に関して以下に述べる如くアドレス指定される毎に書込 まれるフラッグ・バス198へ接続される。このように、待機フラッグ・レジス タ462.464の各ビットは選択的にクリヤすることができる。レジスタWF reg462における全てのビットが指定された事象の発生(例えば、データR AMが別の計算のため要求される全ての情報を受取った)によりクリヤされた時 、ORゲート468を用いて同じことを表示する状況フラッグWを提供する。
状況フラッグWは、分岐論理ブロック432により読出される。このように、「 待機フラッグにおけるジャンプ」指令の実行が可能である。
待機フラッグ・ブロック460のDFreg464は、全てゼロ(または1)の 存在を表示する信号がDFregにより出力されないことを除いて、WFreg 462と同様に機能する。])Freg(または、WFregにおける全ての値 がゼロでなければ、WFreg)の内容を調べるために、レジスタはその内容を 内部バス490に入れるように選定されねばならない。レジスタの1つの選定は 、命令デコーダ412およびシーケンサ414により行われ、内容はマルチプレ クサ466同じ3状態レジスタ469を介して送られる。DFreg464が全 てゼロを含むかどうかの判定の容易な方法は、DFreg464の内容をA L  U 452へ送ることであり、これにより内容がゼロならば状態フラッグZを 生じることになる。
一般的信号プロセッサの最後の大きなブロックは、バス幅ORゲート471、レ ジスタOreg472、Drcg473、Lreg474、Breg476、F reg477、加算器481.482および483、マルチプレクサm u x  BFL484、muxL485、muxA486、m u x B F 48 7、mux0488およびアドレス・アクセス・ブロック489を含むデータR AMアト1ノス・ジェネレータ470である。先に示したように、Oreg47 2は、プログラムRAMバス上の命令の15の最下位ビットを取得する。「絶対 」アドレス指定が要求されるならば、即ちデータRAMバスに書込まれるアドレ スがプログラムRAMマイクロ命令自体に含まれるならば、このアドレスはOr cg472に書込まれ、次いでmuxA486およびアドレス・アクセス・ブロ ック489を介して、データRAMバスに送られる(16番目のビットが図示し ないゼロ伸長器により加算された)。次に16ビツト・アドレスが適当な時間に データRAMバスに1コtかれる。他の全ての状況は、「割出し」アドレス指定 を構成し7、個の場合データRAMバスに置かれるアドレスはデータRAMアド レス・ジェネレータ・ブロック470により内部的に生成される。
アドレスは、種々のレジスタにおける値を加算することにより生成される。特に 、図4に示されるように、Oreg472はオフセット・レジスタであり、Dr eg473は減分レジスタであり、Lreg474はループの長さをセットする ループ・レジスタであり、Brcg476は基底アドレス・レジスタであり、F rcg477は第2の基底アドレス・レジスタとして働くフレーム・アドレス・ レジスタである。Oレジスタは、プログラムRAMバスからそのデータを取得す るが、レジスタD、[1、B、Fはそれらのデータを内部バス490から取得す る。
あるアトiノスを生成するために、あるオフセラ1−値を基底レジスタまたはフ レーム・レジスタにおける値に加算することが要求されるならば(即ち、「8割 出しモード」または「F割出しモーFJ )、muxBF487はBreg47 6またはFrcg477を適当に選択し、m u x B F L 4.84は m IJ X B F 487からの値を選択し、BregまたはF r e  g値が加算器483によりOregのオフセット値に加算される。この値は、次 に、−γド1ノスーアクセスーブロック489を介してデータRAMバスに対す る出力のためmuxA486により選択される。
同様に、あるオフセット値およびあるループ値を基底またはフレーム・し・ジス タにおける値に加算することが要求されるならば(即ち、rBL割出しモード」 またはrFL割出しモード」)、Lレジスタにおりる値がBまたはFレジスタに おける値に加算器482において加算され、この和はmuxBFL484を介し て加算器483へ送られ、この加算器はこの値をOレジスタにおける値に加算す る。
加算器481を設けることにより、また減分レジスタDregおけるループ・レ ジスタLrcgを加算器481に接続することにより、γドし・スーループが生 じる。特に、Lregはループの長さをセットし、Dregはループが減分され る値をセットする。Dragが加算器481においてLreg475から差引か れる毎に、新しい値がmuxL485を介してLreg475へ戻される。この ため、DJNE命令が実行される毎に(以下に述べるように)、Lregにおい て結果として得る値は、Dragの値だけ減分される。加算器482によりB+ cgまたはFregに加算されるならば、Dragにおける値が正である場合は 生成されたアドレスは逐次減分するアト!ノスであり、Dregにおける値が負 の場合は逐次増分するアドレスである。
ループ能力は、データRAMバスに対する減分(または増分)アドレスを生じる のみに使用されるのではなく、[等しくない時減分およびジャンプJ (DJN E)能力を提供することによりプログラムRAMアドレスの生成における変化を 生じるためにも使用される。加算器481からの出力は、分岐論理ブロック43 2へ状態フラッグL(ループ)を与えるORゲート471により読出される。状 態フラッグしは、Lレジスタが値ゼロに減分される充分な回数−巡するまでその 値を維持する。この時点前に、■、regがゼロでない時、GSPの次の命令が Jreg428により示される命令により指令される。換言すれば、プログラム は、■レジスタに置かれる次の命令を続行する代わりに、J reg命令の場所 ヘジャンプする。しかし、Lregが値ゼロに減分する時、ORゲート471は ローになりフラッグLをトグルする。次のDJNE命令と同時に、「等しくない 」状態は存在せず(即ち、Lregはゼロ)、分岐ロジック432はプログラム 論理プロ7り420のmuxP430をしてJrcg428の代わりにI re g426からの値の取得へ戻させ、プログラムは継続する。
0、D、L、BまたはFレジスタのどれかの値は、mux0488に適当なレジ スタを選択させてその内容を3状態ドライバ489を介して内部バス490へ送 らせることにより、この内部バスに置くことができる。
内部バス490と接続され内部バス490をデータRAMバスにおけるデータ・ スロットとインターフェースしているのは、データ・アクセス・ポート494で ある。データ・アクセス・ポート494は、データRAMからデータを読出しま たこれにデータを書込むことができ、先に述べた時分割多重化方法でデータRA Mへのアクセスが与えられる。データRAMに書込む際、データ・アクセス・ポ ート494およびアドレス・アクセス・ポート489は同時に励起される。RA Mからのデータの読出しにおいては、アドレス−アクセス・ポート489は最初 にデータRAMバスに所要のデータが記憶されるデータRAMアドレスを厘(。
このデータは次にデータRA、MによりデータRAMバスに遣かれ、実質的にデ ュアル3状態ドライバであるデータ・アクセス・ポート494がこのデータを受 取ってこれを所要のGSPレジスタに格納するため内部バス490へ送る。
必要ならば、Zレジスタ496の如き別のレジスタもまた内部バス490と接続 することができ、一時記憶装置として使用することができる。Zreg496の 内容は、3状態ドライバ499を介して内部バス490へ出力される。
GSPの機能については、記述の目的のためにのみ示される下記のマイクロコー ド例によりよく説明される。即ち、 lN5T # HEXCODE LABEL ASSEMBLY C0DE C Oi1MC01l郭TART 0000 498008 LDWS#8 待機レジスタ初期化0001 r9g oo+、 !GW^IT JVF $WAIT RAM7ドl/ス80311の 書込みまで待機 0口02 3d8001 1.DD #1 0regを1にセット(減分) 0003 458007 LDI、#7 Lrcgを7にセント(ループ) 0004 358824 LDB #824HBregを16進数824ヘセツ ト(基底) 0005 318000 LDA #OALU7キユムレータノ初期化 $LOOP 0006 120000 ADr) [B+L] RAMに8数字を加算000 7 fd8006 DJNE $LOOI’ 16進数82b−824場所00 08 f1800b JGE $rOS 7キユムレー90)テストおよびジャ ンプ 0009 2400口ONot 正ならば:さもなければ、アキュムレータ の1の補数を取る 000a 118001 ADD #1 1を1の補数に加算$PO3 000b 4c800e LDX A Xregにアキュムレータをロード 000c 5d2666 Mr’Y #1.2 Xrcgを1.2倍000d  7110000 N+lr’ /−オペレー’iaン許容 000e 740000 Nor’ 乗数完了000f d98012 JMF  $El?ROR桁溢tL7ラツ’fMテストおよびエラーなら ばジャンプ 0010 a40823 STMH823HRAIJ(71)場所823111 .:結果を格納 0011 c58000 JMP $5TART $5TARTへ戻る0012  318000 $ERRORLDA#Oxラード同R11l:Oヲ格納 0013 900823 STA 823B 場所823■0014 c580 00 JMP郭TART $5TARTへ戻るENI) 最初の命令(0000)は、待機レジスタを値8でロードさせる。命令0001 は、803Hのトリガー・フラッグが別のGSPまたはシステムの他の回路に上 り書込まれるまでGSPを待機させる。命令0001は、待機フラッグがトグル されるまで(即ち、アト1ノス803 Hに書込むことにより制御される)、G SPに命令0001−・ジャンプ(即ち、それ自体を反復)するよう通告するこ とにより待機を行う3.待機フラッグが一旦トグルされると、命令0002〜0 004がデータRAMアトl/ス・ジェネレータ470のり、L、B 1.、/ ジスタをセットする。7ル−プー1ノジスタをイ直7にセットし、Dレジスタを 値1にセットすることにより、ループは8回実行される。
命令0006お1よび0007はこのループを含む。命令0006は、基底1/ ジスタお虚びループ・レジスタが加算器482により一緒に加算され、Qreg 472に含まれるゼロ値に加算され、デ・−タRAMバスに置かれることを要求 する。
この時データRAMの場所B + T、における値は、データRAMバスに置か れ、データ・アクセス−ブロック494を経てALU452へ送られ、Aレジス タ456に累計される。命令0007のDJNEアセンブリ・コード指令は、L フラッグがトグルされたかどうかを調べる1、もしそうでなければ、Llノジス タはDレジスタにおける値により減分され、プロゲラt1は$ L OOPへ再 びジャンプする、即ち、I7の新しい値をBレジスタの値に加算してこれをデー タRAMバスに置く命令0006oこのデータR,AMの場所における値は次に データRAMバスに置かれ、データ・アクセス−ブロック494を経て送られ、 ALUにおいてAレジスタ456における値と加算され、Aレジスタ456に累 計値として格納される。
この手順は、Lがゼロと等しくなりLフラッグがトグルされるまで継続する。次 に、命令0007に達すると同時に、減分またはジャンプは実行されない。その 代わり、プロゲラノーは命令0008へ続<6゜命令0008において、Are g456における値がALU452の状態フラッグを調べることによりテストさ れる。この値が正ならば、プログラムは命令000b(そのアドレスはJreg 428に署かれていた)ヘジャンプする。もしそうでなければ、命令0009お よび000aが実行される。0009において、アキュムレータの1の補数がA LU452により取上げられ、ステップ000aにおいて、値1が加算される。
このように、アキュムレータの値の2の補数が与えられる。
命令ooobにおいて、アキ、ムレータの正の値、即ち生成された2の補数がA reg456から乗算器ブロック430のXreg432にロードされる。命令 000Cは、Xreg432における値を値1.2により乗じさせる。乗算機能 は多くのステップおよび幾つかのサイクルを要求するため、命令000dおよび 000CはNOP (ノーオペレージジン)命令であり、これはGSPの乗算器 がプログラムの継続前に計算を完了することを許容する。しかし、AL[Jセク ション450における算術計算または論理計算を実施するか、あるいはデータR AMへ値を書込むかこれから値を取出すことが要求されたならば、乗算器ブロッ ク430が含まれなかった場合、GSPは同時の演算を行うことができる。
命令000「は、乗算器の桁溢れフラッグMをテストする。乗算器が乗算により 桁溢れしたならば、エラーのフラッグが立てられ、プログラムは命令0012ヘ ジヤンプする。エラーが存在すると、命令0012は値ゼロをALUブロック4 50のAレジスタ456にロードする。次に、命令0013において、Aレジス タの値はデータRAMの場所823Hへ書込まれる。このプログラム全体は、G SPを待機状態にする命令0000へ再びジャンプする命令0014により再開 される。フラッグMによりエラーが表示されなければ、命令0012ヘジヤンプ する代わりに、プログラムは命令0010を継続する。命令0010は、Mrc g444における値を、内部バス490へ書込ませて次にデータ・アクセス−ボ ート494を介してデータRAMバスに書出すことにより、この値をRAMの場 所823Hに格納させる。次に、命令001]はプログラムの開始へのジャンプ (命令0000)を再び生じ、これがG S Pを待機状態に置く。
GSPの別の理解は、GSPにより行われるサンプル機能のアセシブ1ノーコー ドおよびオペランドを調べることにより得られる。特に、下記の18サイクルの 命令セットは、図5に示される構造を持つバイツ・7ツド・フイルタ番二対する 1ノストを含む。図5において、入力値Xが乗算器504によりブロック506 1こ格納されたパラメータ値ibOで乗じられる。遅延ブロック512により遅 らされた前のX値はxlとして示され、乗算器514においてブロック516か ら得た。?ラメータ値iblで乗じられる。遅延ブロック522により更に遅延 させられた値x1より前のX値はx2として示され、乗算器524においてブロ ック526から得たパラメータ値1b2で乗じられる。1bOxx、1blXx lおよび1b2Xx2の積は、加算ブロック530の出力から生じた別の値と共 に加算ブロック530により合計される。このため、前の出力yは遅延ブロック 532により遅らされ、ylとして示される。このyl値は乗算器534におい てブロック536からのパラメータ値ialで乗じられ、加算ブロック530に より他の積1こ加算される。同様に、遅延ブロック542により更に遅らされた ylより前の出力は、y2として示される。値y2は、ブロック546から得た ノぐラメータ値ia2により乗算器544において乗じられ、更に他の積に加算 される。
パラメータ値tbO1ibl、ib2、ialおよびia2を含み、変数x1、 x2、ylおよびy2を変化させるパイクワブト・フィルタのブロック図(よ、 下記の如(GSPにより構成することができる。即ち、LINE# アセンブリ ・コード コメントI LDX x2 xregをサンプルx2でロード2 M PY ib2 x2をib2で乗算3 NOP ノーオペレーション 4 LDX xl 乗算が継続中Xrcgをサンプルx1でロード 5 MACibl xiをiblで乗じ、)(2xib2で累計 6 STX x2 Xrcg(xl)lこお番する値を次のけ1・ C 算のための場所x2に格納 7 LDX[inコ Xregをaddr、[in]におけるデータでロード 8 MACibo [in]値xibOを乗算し他の値と累計 9 STX xl Xrcg ([in])における値を次の計算のため場所X 1に格納 10 LDX y2 Xrcgをサンプルy2でロード11 MCA ia2  y2xia2で乗算し、他の値と累計12 NOP 乗算の待機中ノーオペレー ション13 LDX yl 乗算の継続中Xregをylでロード14 MCA  ial ylxialを乗算し、他の値と累計15 STX y2 Xreg (yl)における値を次の計算のため場所y2に格納 16 NOP 乗算の待機中はノーオペレーション17 STMHyl Mre gの累計値の高次部分を次の計算のため場所y1に格納 18 STMH[outコ M r e H累計値の高次部分を出力場所に格納 コードの線1〜3は、GSPの乗算器をして値x2をパラメータ値ib2で乗じ させる。コードの線4および5は、乗算器をして値XI(即ち、場所x1に格納 された値)をパラメータ値iblで乗じさせ、この積をx2およびib2の積に 加算させる。コードの線6は、値x1をx2の場所へ移動させて、コードが実行 される次の時(例えば、新しい値Xが受取られる時)、xlのサンプルがX2サ ンプルとなる(即ち、1つの完全サイクルだけ遅れる)ようにする。コードの線 7および8は、乗算器をして新しい値x(xtn)をibOで乗じさせ、この積 を前に累計された積に加算させる。コードの線9は、その時の入力値(x i  n)を場所x1に移動することによりコードの線6と平行となり、コードが実行 される次の時、新しい値Xが遅れたyl値となるようにする。
パイクワッド−コードの線10〜12は、GSPの乗算器をして2回遅れた出力 値y2をパラメータ値ta2で乗じてその積を前に累計された積に加算させるが 、線13および14は、乗算器をして1回遅れた出力値y1をパラメータ値fa 1で乗じてこれを前に累計された積に加算させる。線15は、コードが実行され る次の時GSPをしてパラメータ値y1を場所y2に格納させるが、線16はノ ーオペレーション状態であり、これによりylおよびialの乗算およびその積 の累計された積への加算を完了させる。線17は、アキュムレータにおける和( ibOXx、プラス1blXxl、プラスib2×x2、プラス1alxyl、 プラス1a2xy2)をコードの次の実行のための場所ylに格納させるが、線 18は同じ和を得てこれをパイクワッド出力として出力場所に入れる。
図68、図6bおよび図6cにおいて、本発明のデータ・フロー・マネージャ( DFM)600の入出力回路およびDFMと関連するFIFO例のブロック図が 示される。先に述べたように、DFMはプロセッサ装置に関するデータ・フロー を処理する重要な機能を供し、プロセッサ装置のGSPがその処理タスクにおい て割込みの必要がないようにする。この機能を達成する際、DFMは特定のプロ セッサ装置の外部の[領域Jから直列ボートにより受取られたデータを取り、こ れを5PROC装置10のデータRAMIQQの所要の場所で実現される図6C のFTFOの如きFIFOの内部で構成する。また、D FM600はFIFO におけるデータを取り、これを5PROC装置の直列出力ポートへ出力するため 構成する。DFMはまた、5PROCにより行われる消勢操作(dectmat ion operation)を行うように、所要の速度でデータをFIFOへ 送りFIFOからデータを引出すことができる。更に、DFMは、デコーダ19 6をしてフラッグを5PROC装考10のフラッグ・バス198へ(従って、G SP400へ)バッファの状態に関して書込ませる。
5PROC装置のDFM600は、本装置の中心部とすることができ、あるいは 本装置の直列入出カポ−1−700間に分散させることもでき、1つのDFMを 各ボート700に供する。分散された場合は、必要に応じである回路を共通とす ることもできるが、図6aおよび図6bにプローtり形態で示された回路が5P ROC装置の各直列入出カポ−ドア00に対して重複される。
直列ポートからデ・−夕を受取りこれをデータRAMIQQのFIFOに格納す るため構成する回路が図6aに示される。データ・フロー自体は用純であり、デ ータは直列ポート700からマルチプレクサ611および3状態ドライバ613 を介してデータRAMバス125のデータ・スロットへ送られる。マルチプレク サ611は、直列ポート700aからのデータあるいは以下本文に述べる如(生 成されるデータのいずれもドライバ613へ送られることを可能にする。ドライ バ613は、D FM5 Q Qがシステム幅マルチプレクサ・クロック方式に より可能状態にされる時にデータが単にデータRAMバス125に出力されるよ うに図示の如く制御される。データRAMバスへの出力のためのデータを24ビ ット・ワードとして構成することは、本文で先に述べたように、直列ポート70 0によって行われる。
データ・フロー回路の外、各DFMは、入力データに対するデータRAM FI FOのアドレスを生成するためバッファ、カウンタ、ゲートなどにより構成され る。m6aに示されるように、D FM600は、3個のレジスタ620.62 2.624.3個のレジスタと関連する3個のカウンタ630.632.634 、加算器63阻2除算ブロツク637、マルチプレクサ638.7個の論理ゲー 1、トロ41.642.643.644.645.646.647(ゲート64 2.643.645.647はバス幅ゲート)、および2個の遅延ブロック64 8.649を有する。3個のレジスタとは、それぞれ、DFMの特定部分に接続 された特定の直列ポー1−によりアドレス指定されるFIFOに対するデータR A Mに始動場所を記憶するFIFO始動レジスタ620と、FIFOを含むバ ッファ数を記憶する指標長さレジスタ622(図6cのFIFOでは、指標長さ !ノジスタは4にセットされる)と、各バッファの長さ即ち各バッファに記憶さ れ得るワード数を記憶するバッファ長さレジスタ624(図6cのFIFOでは 、バッファ長さレジスタは8にセットされる)とである。1つのデータ・ワード (24ビツト)がFIFOに記憶するためデータRAMへ送る用意ができた時、 直列ポート700aはANDゲート641に対する第1の入力として使用される 準備完了信号を提供する。ANDゲート641に対する第2の入力は、DFMが ワードをデータRAMバスに置くことを可能にする時分割多重化信号であるデー タ可能化信号である。データ可能化および準備完了信号がハイであると、ハイの 信号はドライバ613をしてデータRA、Mバスにデータをアドレスと共に出力 させるANDゲートから出力される。このアドレスは、以下本文に述べるように 、12ビツト加算器636により計算されるもの、即ちプリワイヤド・アドレス である。
ANDゲー1−641がハイの出力を生じる時、このハイ出力はタロツク・カウ ンタ630.634へ入力される前に遅延ブロック648.649により遅延さ れる。その結果、アドレスがデータRAMバスに出力された後、カウンタ630 .634はそれらのカウントを増分する。カウンタ630がそのカウントを増分 する時、そのカウントは12ビツト加算器636によりレジスタ620に記憶さ れりF I FO始動場所へ加算される。マルチプレクサ638により選択され るならば、生成されたアドレスあ、除算器613により与えられるデータと関連 してデータRA、Mバスのアドレス・スロットに出力される次のアドレスとなる 。このため、データ・ワードがデータRAMF T FOに記憶するため直列ポ ートにより送られ続ける時、これらのワードは、カウンタ630がFIFO始動 場所に加算されるより高い値を逓増的に送る時、データRAMの増分アドレスへ 送られる3、以下において述べるように、カウンタークリヤ信号が指標長さレジ スタ622と関連する回路から受取られるまで、カウンタ630はそのカウント を増し続ける。
カウンタ・クリヤ信号が受取られると、カウンタは再びゼロからカウントし始め る。
先に述べたように、ANDゲー1−641が高い出力を生じる毎に、バッファ長 さレジスタ624と関連するカウンタ634もまた(遅延の後)増分される。バ ッファ長さレジスタ624およびその関連するカウンタ634の出力は、値を比 較するバス幅X N ORゲート643へ与えられる1、カウンタ634がバッ ファ長さレジスタ624に記憶された値に達すると、データRAM FIFOに おけるバッファが充j眞される3、その結果、X N ORゲート643の出力 は/Xイとなり、3人力ORゲート644をしてハイ信号をカウンタ634のリ セットへ通させる。バス幅XNORゲート643からのハイ信号もまた、指標長 さレジスタ622と関連するカウンタ632、マルチプレクサ638およびマル チプレクサ611へ送られる。バッファが充填される結果として、マルチプレク サ638はプリヮイヤド・アドレスを以下に述べるように生成される2つの予め 定めた(あるいは生成された)データ・ワードの1つと共に、データRAMバス 125のアドレス・スロットに置(ことを可能にする。バッファ信号の終りにお けるプリヮイヤド・アドレスおよびデータ・ワードの設置は、DFMにより受取 られた次のデータ可能化信号と同時に生じ、これはデータRAM100へ送るた め直列ポート700aにより別のワードがアセンブルされる前である。また、ブ リヮイヤド・アドレスおけるデータ・ワードの設置は、デコーダ196(図2) がDFMの特定のプリワイヤド・アドレスについてデータRAMバス125を監 視する時信号動作目的のため使用され、これらアドレスのトリガー動作は、DF Mにおける諸条件即ちバッファの充填の故に生じる。デコーダ196は更に、5 PROCのGSP400に対して発生を信号するトリガー・バス198にフラッ グをセットすることができる(フラッグの設定は、プリヮイヤド・アドレスに伴 うデータ値に依存し得る)。このように、GSP400は、動作を行うのに要す るデータがGSPに対して使用可能であることを判定することができ、これによ りGSPを待機ループから出す。
FIFO/(ッファが充填された後、充填されたFIFOバッファがこのFIF Oを(以下本文で述べる如く)半充填とするならば、バスに震かれた予め定めた あるいは生成されたデータ・ワードが、データ・ワードのmsbとして「1」を 使用し、さもなければmsbとしてrOJを使用することが望ましい。データ・ ワードの残りは無効情報である。あるいは、必要に応じて、データ・ワードは、 データ・ワードの適当な場所に挿入されるDFMが書込む次の場所(即ち、12 ビツト加算器636により計算される場所)を含み得る。この予め定めた、ある いは生成されたデーターワードは、次にマルチプレクサ611を介してドライバ 6 ]、 3へ送られ、このドライバがプリヮイヤドーアドレスがデータRAM バス125にlかれると同時にデータ・ワードをパス上に置く。
先に述べたように、一杯の状態のバッファの表示がバス幅XNORゲート643 により出力されると、カウンタ632は増分される。従って、カウンタ632は 充填されつつあるFIFOにおけるバッファの数を追跡する。アドレス指定され つつあるFIFOバッファの数(カウンタ632により決定される如き)がFI FO長さく2除算ブロツク637により除算されるレジスタ622に格納された 長さにより決定される如き)の半分である時、バス幅XNORゲート647を介 してDFMによりフラッグが立てられる。「中間バッファ」フラッグは、書込ま れつつあるFIFOのバッファがFIFOにおいて半ばの状態であることを表示 する。従って、FIFOにおける前の全てのバッファが依然としてデータで一杯 であるならば、FIFOは半充填の状態である。更に、中間バッファ・フラッグ がマルチプIノクサ611に対して入力される生成データを変化させ、その結果 データmsbはゼロではなく「l」となる。このため、FIFOを半充填状態に させるバッファの充填と同時に、僅かに異なるようにコード化されたデータ・ワ ードがデータRAMバスのデータ・スロットに扉かれる。
カウンタ632の値が指標長さレジスタ622に格納された値に増分されると、 FIFOの最後の場所がアドレス指定された。従って、FIFOにおける最初の 場所のアドレス指定を再循環、即ちアドレス指定し続けることが望ましい。カウ ンタ632の値がレジスタ622の値と等しければ、バス幅XNORゲート64 5は3人力ORゲート646へ送られるハイ信号を生じる1、その結果、カウン タ630.632および634がリセットされる。図68に示されるように、「 カウンタ・クリャコ信号もまた、信号を5PROCの予め定めたピン(図示せず )へ与えることにより生成されるパワーアップ・リセット(PUR)信号により 、またデータRAM100のアドレス0405Hに書込むことにより生成される 5YNC信号によって生成することができる65YNC信号は、異なるDFMを 相互に同期させることを可能にする。
必要に応じて、1つのDFMの入力セクションは同じか別のDFMの出力セクシ ョンに同期させることができる5、この同期は、ORゲート644に対する「C n bufJ入力を生成する5PROCにおけるビン(図示ぜず)を介して行わ れる。更に、ORゲート644は、図6bに関して述べた如きDFM出カセクシ タンにおける類似のカウンタのリセットと同期してカウンタ634をリセッ(・ するハイ信号を生じる。
図6bにおいて、DFM600の直列出カセクシタンが示される。DFMの出力 セクションの機歯は、FIFOにデータを取込むことであり、またこれを5PR OC装置の直列出力ポードア00bへ出力するため構成することである。
DFMの出力セクションは、幾つかのレジスタおよびカウンタ、ANDゲートを 含む論理素子、コンパレータおよびインバータ、除算および加算ブロック、フリ ップフロップ、バッファおよび並直列コンバータからなることが望ましい。基本 的には、DFMの直列出力セクションにおけるデータ・フローは簡単である。
始動アドレス・レジスタ652により生成されるアドレスは、加算器654によ りオフセット・カウンタ656における値に加算され、このアドレスはデータR AMバスのアドレス・セクションへ出力される。データRAMは、このアドレス 情報を受取り、次にこのデータRAMアドレスに置かれたデータをデ・−夕RA Mバスに電く。このデータは、DFMにより受取られ、直列上カポ−)700b へ送られる前にバッファ694に格納される。
図6bの残りの回路は、ある条件(即ち、トリガー)が満たされなければ、直列 出力ポードア00bヘデータを送ることを許さないと共に、内部論理信号および 受取り信号に従って同期パルスおよびエラー・フラッグを生じる機能を供する。
特に、各DFMは、信号が生成される前に、待機フラッグ・レジスタ662にお いてクリヤされねばならないフラッグ情報を保持する待機レジスタ660を有す る。待機フラッグ・レジスタにおけるビットは、トリガー・バス198から受取 った適当なトリガー・ビットの受取りと同時に単にクリヤされるのみである。適 当なフラッグがクリヤされると、バス幅NORゲート664が、待機フラッグ・ レジスタ662を待機レジスタ660から再ロードさせることによりリセットす る。
NORゲート664はまた、信号をN除算ブロック(Nは、0.1、いn)に通 す。N除算ブロック666はNORゲート664からN個のパルスを受取るとき る。オフセット・カウンタ656における値が(2除算ブロツク685により決 定される如<)FIFO長さレジスタ680の値の半分に等しい時、コンパレー タ687は、データRAMバスに遣かれたアドレスが特定のDFMと関連するデ ータRAMバッファの中間のアドレスであるという事実を表わすパルスをセット /リセット・ブロック690へ与える。データRAMアドレスが半充填アドレス テする時、データRAMバツ゛フアに書込まれるデータは、半充填アドレスに書 込まれてはならない(即ち、アドレスが同時に書込まれ読出される状態は決して 存在してはならない)。このため、DFMが実行中Dタイブーフリップフロップ 667はANDゲート670にハイの信号を与え、セット/′す士ット・ブロッ ク690からの出力もまたハイであるならば、ANDゲート698はDFMに対 するエラ・−−フラッグをセットするハイの出力を生じる。
最後に、DFMの出力側に関しては、バッファ長さレジスタ682がDFMと関 連するデ・−夕RAM FIFOにおける各バッファの長さと等しい値を記憶す る。サンプル・カウンタ684は、レジスタ682に格納されたバッフ?長さで 予めロードされる減算カウンタである。ハイのパルスがXNORゲート687か ら受取られる(即ち、オフセット・カウンタがFIFO長さの半分である)時、 RSフリップフロップ690がセットされ、サンプル・カウンタ684の減算カ ウンタが確立される。サンブルーカウンタ684がANDゲート668からパル スを受取る毎にカウントは減算される。サンプル・カウンタがゼロになると、R 37リツプフロツプ690がリセットされる。しかし、RSフリップ70ツブ6 90がセットされ、ハイのパルスをANDゲート698へ出力する間、DFMは エラーを探す。リセットされる前にハイの値がフリップフロップ667により見 出されるならば、DFMは明らかに同じバッファ場所に同時に読出しおよび書込 みを行おうと試みている。その結果、ANDゲート698は、DFMに対するエ ラー・フラッグをセットするハイの信号を生じる。
図6cにおいて、DFMと関連するFIFOの事例が示される。DFMと関連す るFIFOは、プUセッサ装置のデータRAMの望ましくは予め定めた部分に含 まれる41図示の如く、図6cのFIFOは4つのバッフγを含む。これも図示 の如く、各バッファは8つのデータ・サンプルに対する記憶域を含む。このため 、図示の如く、図6cのFIFOは32のデータ・サンプルに対する記憶域を有 する。無論、1つのFIFOは、異なる数のバッファを含み、バッファは異なる 数のデータ・サンプルを格納することができる。DFMおよびそのバッファの大 きさと関連する各FIFOの大きさは、特定のDFMの要求を計算するインテリ ジェントなソフトウェアによるか、あるいはプロセッサ・システムの初期のプロ グラミ:/グの間プロセッサ・システムのユーザにより自動的(ごセットされる 。
図78において、本発明の直列出力ポードア00aのブロック図が示される。
この直列出力ポートの基本的機能は、多くの形態の直列データを受取り、受取っ た直列F−夕を5PROCの内部と同期しかつDFM60Qに誹る受取りおよび 1−りRAMバス125に対する転送に適する並列データへ変換することである 。
基本的機能を得るために、直列入力ポートは、論理ブロック710、デ・−夕取 得レジスタフ20およびラッチされたバッファ730を有する。論理ブロック7 10およびデータ・レジスタ720は、S P ROC10のブートアップ中の 構成と同時に直列人カポ−l−700aにプログラムされる情報の7ビツトによ り支配される。この7ビツトは、下記の如(定義される。即ち、dwl dwQ Odwo 0 0 24ビツトのデータ幅]、 dwl 0 1 16ビツトの データ幅1 0 12ビツトのデータ幅 1 1 8ビツトのデータ幅 2 ハイ・最初にmsb ロー二最初にl5b3 ハイ、短いストローブ ロー 二長いストローブ4 ハイ、ゲート付きクロック ロー二連続的クロック5 ハ イ、内部クロック ロー二外部クロック6 ハイ:出力ポート ロー 人力ポー トビット0,1、および2は、論理ブロック710を支配するため使用される。
入力するデータが24ビツト・ワードならば、論理ブロックはこのビットをビッ ト単位で拾い、これらをデータ累計レジスタ720へ送る。入力データが16ビ ツト、12ビツトあるいは8ビツトのワードならば、論理ブロックはワードのビ ットをビット単位に拾い、これらをゼロ充填して24ビツト・ワードに拡張する 。
受取られた直列データのどのビットがレジスタ720のrnsbスロットに送ら れるかは、制御ビット2により支配される。
データが一部レジスタフ20に適正に累積されると、これはバッファ730にラ ッチされ、ここでマルチポート化RAM100に格納するためD FM600の 入力セクションを経て送ることができるまで保持される。適当な信号が受取られ るまでのバッファ730におけるデータの保持は、5PROCIOと非同期であ るデータを5PROCシステム内で有効に同期状態にさせる。
論理ブロック710を支配するビット3.4および5は、それぞれ、ストローブ の種類、クロックの種類および入力ポードア00に対するクロック制御の場所を #御するため使用され、その全ては5PROCと外部装置間の適正な通信のため 必要である。ポート700は望ましくは入力ポードア00aと出力ポードア00 bの両方の回路を含む(更に詳細には、以下において述べる)故に、付加ビット (ビット6)を用いてポート700の機能をいずれか一方に制御する。
図7bに示される直列データ出力ポードア00bは、その機能が反対であること を除いて、多くの点でデータ入力ポードア00aと似ている。直列出力ポードア 00bは、バッファ740、並列ロード・シフト・レジスタ750、および制御 マルチプレクサ760,770を含む。5PROCから出力ポードア00bを介 して書込まれるデータは、DFM600のバッファ694からバッフ7740に より受取られる。受取った24ビツトは、並直列コンバータとして働ぐ並列ロー ド・シフト・レジスタ750へ並列にロードされる。24ビツトは次にビット・ シリアル状に制御信号dwOおよびdwlを受取るマルチプレクサ760を介し て送られ、またデータ伝送線に対するm5bi御信号を受取るマルチプレクサ7 70を介して送られる。マルチプレクサ760.770は、5PROCの外部の 所要装置との通信のため並列ロード・シフト・レジスタにより受取られた24ビ ツト・ワードを所要のフォーマットに有効に変換する。24ビツトは、8ビツト ・ワード(例えば、8つのm5b)、12ビツト・ワード、あるいは16ビツト ・ワード(8つのlsbが切捨てられる)に変換することができ、Isbまたは msbが最初に送られる。24ビツト・ワードは、同様にIsbがまたはmsb が最初に送られる。5PROCが別の5PROCと通信する(即ち、1つの5P ROCの出力ポードア00bが別の5PROCの入力ポードア00aと通信する )場合1、マルチプレクサ760.770は24ビツト・ワードのmsbを最初 に送るように制御されることが望ましい。
図8において、ホスト・ポート800の詳細が示される。はとんどの状況下では 、5PROCIOはブート・モードにあるマスター5PROCである場合、ホス ト・ポート800は5PROCIQをEPROMおよびシステムの一部であるど れかのスレーブ5PROCとインターフェースするよう働くが、ホスト・ポート 800は、5PROCIOをホスト180(図2参照)とインターフェースする よう働く。図8に示されるように、ホスト・ポート8ooはデータRAMバス1 25ならびに5PROC側のプログラムRAMバス155と接続されるが、ホス ト側では、ホスト・ポート800はホスト・バスと接続されている。このホスト ・バスは、3つのデータ・セクションDo−07、D8〜D15、およびD16 −D23を含み、まt=3つの7Fレス−セフ’/El ンAO−A11.5O −83およびEAO−EAIを含む。ホスト側に示される残りのインターフェー スは、5PROCIOおよびホスト・ポート8ooの機能、およびホスト・バス 165に対する読出し/書込みストローブを制御するビン(例えば、マスター/ スレーブ、リセット、モード)である。
スレーブ・モード(マスター/スレーブ・ビン801はスレーブ・モードにセッ ト)においては、5PROCIOは、他の装儂からはホスト・マイクロプロセッ サまたはRAMとしてDSPを含むように見える。5PROCができるだけ多く の異なるタイプのプロセッサとインターフェースすることが望ましいため、ホス ト・ポート800は1ビツト・パラレル・ポートであり、8.16.24および 32ビツトのマイクロプロセッサおよびDSPとインターフェースするように構 成される。モード・ビン802.804および806は、ホスト・プロセッサが 8.16.24ビツト、あるいは32ビツトのどのプロセッサであるか、また最 初に送られるワードが最上位または最下位のワードであるかをホスト−ポート8 00に通知するため使用される。
ホスト・プロセッサからのデータをスレーブ・モードで5PROCへ送るために 、データ・マイクロプロセッサ810、データ入力レジスタ812および2つの ドライバ815.817が設けられる。データ・マイクロプロセッサ810は、 3つの8ビツト・データ入力(DO−07、D8〜015およびD16〜D23 )をホスト・バス】65のデータ・バス・セクションから受取り、モード・ビン 802.804.806の制御に従ってデータ入力レジスタ812においてデー タを適正に配置させる。ホスト・プロセッサが32ビツト・プロセッサであれば 、5PROCのホスト・・ポート800は2つの16ビツト・ワードを取上げて これらを16ビツト・プロセッサに関して以下に述べる方法で処理する。ホスト ・プロセッサがモード・ビン802.804により示される如き24ビット−プ ロセッサである場合は、データはビットを加えるかバイトをセグメントに分ける ことなく、データ入力レジスタ812へ直接送られる。ホスト・プロセッサがモ ード・ビン802.804により示される如き16ビツトのプロセッサである場 合は、ホスト・ポートは2つの16ビツトを3つの8ビット・データ入力線(D o〜D7、D8〜D15、DI−6=D23)の2つから取上げ、最下位ワード の8つの1、 s bを捨て、残りのビットを用いて24ビツト・ワードを5P ROCのデータRAM125またはプログラムRAMバス155に対して与える 。ホスト−プロセッサがモード・ビン802.804により示される如き8ビツ ト・プロセッサである場合は、S P ROCに24ビット信号を提供するため 、3つの8ビット−バイトがDO〜D7データ入力線上で受取られてデータ入力 レジスタ812に連結される。
データ入力レジスタ812が如何にして充填されるかの如何に拘わらず、データ がアセンブルされた後、ホスト・ポート800は、その24ビット−ワードをド ライバ817を介してデータRAMバス125へ、あるいはドライバ815を介 してプログラムRAMバス155へ書込むことができるように、5PROCのタ イミングからの可能化信号を待つ。このように、ホスト・ポート800は、5P ROC10と非同期的な方法で受取られたデータを5PROCIOに対して同期 させる。データが書込まれるアドレスは、ホスト・バス165の12ビツトのア ドレス・セクションAO−Allから取得される。12ビツトのアドレスは、ホ スト−バス165からアドレス入力レジスタ820へ送られる。ホスト・ポート 800が可能状態にされると、アドレス入力レジスタ820に含まれるアドレス がデータRAMの場所を表わすならば、アドレスはドライバ822を介してデー タRAMバス125の16ビツト・アドレス・セクションにlかれる。アドレス ・バスは16ビツトのバスであるため、アドレス入力レジスタ820におけるア ドレスは12ビツトのアドレスであるが、アドレスおよびデータがデータRAM バスに置かれる時、4つのゼロがドライバ824を介してアドレスのmsbとし て加えられる。アドレス入力レジスタ820に含まれるアドレスがプログラムR AMの場所(IK以下のアドレス場所)を表わすならば、このアドレスはドライ バ826を介してプログラムRAMバス155の12ビツト・アドレス・セクシ ョンに1かれる。
スレーブ・モードでは、ホスト・プロセッサが5PROCから情報を読出すこと を要求する時、ホスト・プロセッサは読出しストローブをローにさせる。アドレ ス線AO−All上でホスト・ポートにより受取られるアドレスは、ホスト−ポ ート800によって読出され、アドレス入力レジスタ820ヘラツチされる。
ホスト−ポート800がデータまたはプログラムRAMバスにアクセスすること を許される時、アドレスは適当なバス上に置かれ、適当なバスに置かれたデータ またはプログラムRAMアドレスに置かれた24ビツトのデータ・ワードが読出 されて、プログラム・データ出力レジスタ832または出力データ・レジスタ8 34のいずれかにラッチされる。この情報は、次にマルチプレクサ836を介し てデーターデマルチプレクサ840へ送られ、情報の24ビツトをホスト・バス 165の場所DO−D23へ配置する。デマルチプレクサ840は、マルチプレ クサ810の反対の機能を供する。データを24ビツトのホスト・プロセッサへ 、送る時、デマルチプレクサ840は単にその24ビツトを取上げて変更しない まマルチプレクサ940および並列ロード・シフト・レジスタ950からなって いる。その入力側において、アクセス・ポート900は、直列データならびにク ロックおよびストローブ信号を開発ホスト・コンピュータから受取る。このデー タは、アクセス・ポートがデータRAMバス125またはプログラムRAMバス 155に対する時分割アクセスが許されるまで、シフト・レジスタ9101:、 Jり配量され、バッファ920に格納される。どのバスにデータが書込まれるか の決定は、バッファ920に格納されたアドレス−データのmsbを復号するデ コーダ925により行われる。この復号ブロック925は更に、バッファ920 を適当なバスに接続するスイッチ930を制御する。バッファ920におけるア ドレス−データのm s b sは、先に述べたようにデータRAMおよびプロ グラムRAMが別個のアドレス空間を与えられるため、データが送られるのがど のRAMかを表わす。
出力側においては、プログラムRAMバス155またはデータRAMバス125 を介して受取られたデータが、デマルチプレクサ940を介してシフト・レジス タ950−、送られる。シフト・レジスタ950は、データの並直列変換を行い 、直列データが外部クロックに従って適当なストローブと共に開発ホスト・コン ピュータなどに対して出力できるようにする。
データをプログラムおよびデータRAMに関して書込みおよび読出しを行う能力 を提供することにより、アクセス・ポート900は幾つかの用途を有する。第1 に、データRAMにおける特定の場所(例えば、16進数406、または408 〜10b)へ書込むことにより、プログラムの中断を開始することができる。中 断の結果としてデータRAMに書込まれるGSPの種々のレジスタの内容を読出 すことができる。この情報は、デバッグ−プロセスにおいて特に重要である。第 2に、必要に応じて、(データRAMに格納される如き)GSPのレジスタの内 容は、データを所要のデータRAMの場所へ書込むことにより、中断モードから 出る前に修正することができ、これによりデバッグ・プロセスにおいて別のツー ルを提供する。第3に、必要に応じて、(マイクロ命令および(または)マイク ロ命令の一部として格納されたパラメータを含む)プログラムRAM自体に格納 されたプログラムを「緊急に」変更することができ、またパラメータにおIプる 変更またはプログラムにおける変更がいかに5PROCの機能に影響を及ぼし得 るかを(以下に述べるプローブ1000と関連して)監視する能力を開発者に与 えることができる。
図101ご示されるプローブ1000は、データRAMバス125を監視して1 つ以」二のデータRAMの場所に書込まれたデータ値を捕捉することにより、ユ ーザが5PROCにより生成された内部信号を見ることを可能にする。プローブ 1000は、一般に、フンパレータ1010.入力セクション1060aおよび 出力セクション10601)を有するDFM106O、ディジタル/アナログ・ コンバータ1070からな、っている1、コンパレータ]010は、どのデータ RAMアドレスでも監視することができるようにプログラム可鎖である。データ RAMアドレスは、コンパレータ1010をデータRAMバス125に接続して 、XNORゲート(図示せず)を介してプログラムされたアドレスをバスに賓か わたアト?/ス七比較する。:とにより監視される。アドレスが一致する時、ま たデータがデータRAMからの読出しとは反対にデータRAMへ書込まれること が決定される時、プローブがデータのデータRA、M100への書込みのためア クセスが許されるまで、データはデータを格納する入力DFMセクシゴン106 0aへ読出される3、この時、プローブ1000はデータをデータRAMにおけ るそれ自体のバッファへ書込む。プローブ1000がデータRAMIQQからの データの読出しのためアクセスを許される時、データ・プローブ1000の出力 DFMセクション1、060 bがこのデータをそのデータRAMバッファから 出力DFMセクションのN除算ブロックにより設定された速度で引出す。このデ ータは、次にD/A−jンバータ1070へ送られ、ここでオシロスコープで見 ることができるようにアナログ・フォーマットに変換される。このように、デー タRAMのどの場所に書込まれる信号も、必要な時にリアルタイムで監視するこ とができる。アクセス・ポート900およびプローブ1000を一緒に用いるこ とにより、アクセス・ポート900を介して入力されたパラメータ値の変化の影 響は、プローブ1.000を介して直ちにアナログ信号として見ることができる 。
図11に示されるように、複数の5PROC装ff1lOa、10b、1oe、 1、は、向上した信号処理能力のシステムを提供するため、必要に応じて一緒に 接続することができる。典型的には、5PROC装債は、5PROCはそれらの 並列ホスト・ポート800を介して通信することが可能であるが、それらの直列 ポート700を介して相互に接続されて通信する。5PROCのシステムは、論 理プロセッサ1120に対して強力な信号処理フロントエンドとして働くことが でき、また必要に応じて、電気機械的または電子的な構成要素と直接インターフ ェースすることができる。
開示された5PROC装置10および諸システムのフォーマットは、所要の信号 プロセッサまたは処理システムをシリコンで実現するため、ユーザがプログラミ ング言語と関連してパラメータ化が可能な信号処理機能のセル・ライブラリを利 用できるスケッチおよび実現機能を容易に可能にする。提供される信号処理機能 には、乗算器、加算接合点、増幅器、積分器、位相同期ループ、IIRフィルタ 、FIRフィルタ、FFT、整流器、コンパレータ、リミッタ、発振器、波形ジ ェネレータなどが含まれる。ユーザが自分自身の機能を定義することを可能にす るプログラミング言語もまた提供される。開発システムのユーザは、機能ブロッ クを表わす多数のアイコンの選択を有する。コンピューターマウスの使用により 、必要に応じて、スクリーン上にシンボルを置いてブロック図のフォーマットに 一緒に結合することができる。ユーザ体系が完成すると、開発システムは自動的 に情報を最適の状態にコンパイルし、1つ以上の一体化された信号プロセッサの ホストまたはアクセス−ポートと接続されたR5232リンクおよびインターフ ェース回路(図示せず)を介してプログラムをダウンロードする。コンパイラは 一体化された信号プロセッサに対する自動コードを生じるのみならず、データR AMにおけるその内部アドレスと共に定義された全ての変数をリストするシンボ ル・テーブルをも生じる。これらのアドレスに対する書込みは、これらパラメー タ値を変化させる。例えば、「音−…」と対応するアドレスに対して書込みが行 われると、増幅器の利得が新しい値に変化することになる。
本発明の5PROCIOと関連して用いられることが望ましいコンパイラの高レ ベルのフロー図が図12に示される。開発システムのユーザが1つのデザインを コンパイルしようと欲する時、ユーザはこのデザインを含む入力ファイルでコン パイラを実行する。コンパイラは、最初に1210においてその色々なライブラ リ・ブロックのどれを必要とするかを判定する。あるライブラリ・ブロックがサ ブブロックを必要とするため、コンパイラは1212においてどのサブブロック 0が要求され、全ての必要なライブラリ・ブロック・ファイルを読込むことがで きるかどうかを判定する。もし可能ならば、同じブロックを1つのデザインにお いて1回以上使用することができるため、1220において、コンパイラは要求 される各ブロックの個々のインスタンスを生成する。このようなブロックは異な るパラメータで呼出すことができ、これによりこのブロックの異なるバージジン を生成することになる。ステップ1220において生成されたインスタンスは、 コンパイラのデータ構造内でツリーとして表わされ、ツリーの根元にユーザのデ ザインの最上レベルのブロックがある。1230において、コンパイラは各イン スタンスの内容を評価し、子のインスタンスの入出力およびより高いレベルのイ ンスタンスにおける記憶場所間の論理的結合を確立する。1つのインスタンスを 評価する際、コンパイラは、このインスタンスのコードおよびデータ格納要件を 決定し、最低レベルの子のインスタンスを含むアセンブリ言語命令をアセンブル する。]240において、コンパイラは各親のインスタンスに含まれる子のイン スタンスのリスi・を)1ρべ変えるyインスタンスの順序付けを行う。これは 、最も低い各レベルの子のインスタンスと関連するプログラム命令のセットが5 PROCIOのプログラムRAM150に置かれる順序である。このためには、 コンパイラはツリーの根元における最上レベルのインスタンスの入力から順方向 に辿り子のブロックに遭遇するように降下する。1つのインスタンスの全ての入 力に達した時、インスタンスは次の子のインスタンスとしてその親のインスタン スのシーケンスにセットされる。フィードバック・ループが検出され注記される 。1250において、コンパイラは多数の400にわたりデザインを区分する。
1つ以1のインスタンスの加算がその許された処理時間、即ち1サンプル期間以 上を要することをGSPに要求するまで、連続的な子のインスタンスが1つのG SPに割当てられる。一連の子のインスタンスが新しいGSPに割当てられ、全 てのインスタンスが各GSPに割当てられるまでこのプロセスは継続する。区分 ステップ1250の−1として、コンパイラは子のシーケンスにおける正しい点 に仮想ブロックのインスタンスを挿入する。仮想ブロックは、ユーザには示され ないが、システムの正しい機能のためには必要であるブロックであり、例えば、 信号フローにおける1つのGSPから次のGSPに信号を送るソフトウェアFI FOを実現するブロックである。ステップ1260において、コンパイラはステ ップ1250で加えられた仮想ブロック−インスタンスがコンパイラのインスタ ンス・ツリーのデータ構造に完全に一体化されるように、インスタンスの再評価 を行う。
次に、1270において、コンパイラは、ステップ1240で決定されたシーケ ンスでインスタンスのツリーをたどることにより、また最下位のレベルの各子イ ンスタンスに達すると、ファイルに対してこのインスタンスに対してアセンブル された5PROC命令のシーケンスを出力することによってコードを生成する。
これはまた、第2のファイルに対して各インスタンスで要求されるデータ構造に 対する所要の初期化値を出力する。これは更に、第3のファイルに対して、ユー ザにより与えられるかあるいはコンパイラにより自動的に生成された種々のシン ボル−ネームにより照合されるプログラムおよびデータの場所を出力して、デザ インの特定のA、 S Pを照合する。
5PROCが一旦プログラムされると、開発システムはユーザが装置を反復的に デバッグすることを可能にする。このため、上記のプローブ1000は、開発シ ステムのホストにおける指令ライン・エディタにより付勢される。概略図(ブロ ック図)のノードのネームの打ち込みは、プローブをこの点へ「移動」する。
このプローブの出力は、一体化された信号プロセッサの固定ビンに取付けられた オシロスコープいより監視可能である。同様に、指令ライン・エディタは、ノマ ラメータの修正に使用することができる。パラメータの修正は、タイプあるいは ファイルからのダウンロードのいずれかが可能である。この機能は、ユーザが例 えばポールおよびゼロの場所をフィードバック−システムで移動させてリアルタ イムに効果を観察することを可能にする。
設計者が自分のシステムの最適化を完了すると、開発システムは、EPROM1 70に格納することができるファイルを生成する。5PROC10のパワーアッ プと同時に、EPROM170は5PROCのホスト・ポート800と接続され 、EPROM170に含まれるファイルを用いて装置をプログラムする。
本文では、カストマイズされた信号処理装置のシリコンにおける短期の実現を可 能にする信号プロセッサおよび信号処理システムについて記載した。特定の実施 態様について記載したが、本発明は技術が許す限り範囲が広いため、この実施態 様に限定されることを意図するものではない。このため、多数のGPSを使用す る5PROCについて述べたが、拡張された更に強力な1つのGSPをマルチポ ート化データRAM、プログラムRAM%DFMなどと関連して使用することに より、アーキテクチャの多(の利点が依然として実現されることが理解されよう 。更に、特定のRAMサイズ、バス・サイズ、FIFO長さなどについて記載し たが、これらは設計上の選択であり設計者の要求に従って変化し得るものである ことが理解されよう。また、GSPSDFMおよびトリガー・バス・システムに 対するRAMバス・デコーダに対して特定の回路を開示したが、また直列ポート 、ホスト・ポート、アクセス・ポートおよびプローブに対して特定のブロックが 示されたが、この回路またはブロックにより包含される機能が異なる方法で実現 されて同じあるいは同様の結果を達成できることが理解されよう。従って、当業 者には、本発明の開示された如き趣旨および範囲から逸脱することなく、本発明 に対して更に他の修正が可能であることが理解されるであろう。
ムΣ FIG、6A FIG、 6B FIG、 6C FIG、7A FIG、 9 FIG、 12 FIG、 138 ウ+3Aカ、う 要約書 マルチポート中央記trt装Z(RAMIoo)と、プログラム・メモリー(1 50)と、RAMおよびプログラム・メモリーと接続された1つ以上のディジタ ル・プロセッサ(400)と、データのマルチポートRAMとのインターフェー スとして働(,5PROCへ入る外部データおよび5PROCからの処理済みデ ータをIIIgIIするデータ・フロー・マネージャ(600)と、DFMと接 続され5PROCに対して直列インターフェースとして慟(入出力ポート(70 0)と、5PROCのプログラミングを可能にし5PROCに対する並列インタ ーフェースとして働くホスト・ポート(800)とを有するプログラム可能な集 積信号プロセッサ(SPROC)を提供する。5PROCは、その入出力ポート を介して接続されてシステムを提供する。コンパイルおよびユーザ・インターフ ェース・システムと関連する5PROCのアーキテクチャは、ユーザが5PRO Cにおいて複雑な回路を「スケッチして実現」することを可能にする。アクセス ・ポート(900)は、データおよびプログラムRAMの記憶場所に対する読出 し/書込みを可能にする。プローブ(1000)は、記憶場所の監視を可能にし 、これを表示するアナログ信号を提供する。
手続補正書(j5カ 特許庁長官 蘇生 渡 殿 和 °4 °u7em1、事件の表示 PCT/US91103386 平成3年特許願第510621号 2、発明の名称 ッ プログラム可能信号プロセッサeアーキテクチャ3、補正をする者 事件との関係 特許出願人 住所 名 称 スター・セミコンダクター・コーポレーション4、代理人 住 所 東京都千代田区大手町二丁目2番1号新大手町ビル 206区 5、補正命令の日付 平成 5年 8月10日 溌送日)6、補正の対象 (1)出願人の代表音名を記載した国内書面(2)委任状及び翻訳文 (3)図面翻訳文 国際調査報告 一呻晴鴫譬^−−− −PCT/lJs91103386

Claims (3)

    【特許請求の範囲】
  1. 1.データ信号を受取り、該データ信号を処理することにより、処理装置に対し て外部で使用可能な処理されたデータ信号を生成する半導体集積回路用の処理装 置において、 a)前記データ信号を受取る少なくとも1つのデータ信号受取り手段と、b)前 記データ信号受取り装置と接続されて、前記受取ったデータ信号を記憶するマル チポート中央記憶装置とを設け、該データ信号受取り手段は、前記マルチポート 中央記憶装置における所要の場所へ前記受取ったデータ信号を送る手段を含み、 c)前記マルチポート中央記憶装置と接続されて、前記データ信号を該マルチポ ート中央記憶装置から取得し、該データ信号を処理することにより処理済みデー タ信号を生成し、該処理済みデータ信号を記憶するため前記マルチポート中央記 憶装置へ送る複数のディジタル処理手段と、d)前記複数のディジタル処理手段 と接続されて、該複数のディジタル処理手段に対するマイクロ命令を記憶するプ ログラム・メモリー手段とを設け、該ディジタル処理手段は前記プログラム・メ モリーに記憶された前記マイクロ命令に従って前記データ信号を処理し、 c)前記マルチポート中央記憶装置と接続されて、前記処理装置に対して外部で 使用可能となる前記処理流みデータ信号を該マルチポート中央記憶装置から受取 る少なくとも1つの出力ポートを設けてなることを特徴とする処理装置。
  2. 2.データ信号を受取り、該データ信号を処理することにより、処理装置に対し て外部で使用可能な処理済みデータ信号を生成する半導体集積回路用の処理装置 において、 a)前記データ信号を受取る少なくとも1つのデータ信号受取り手段を設け、該 各データ信号受取り手段は、マルチポート中央記憶装置における所要の第1のア ドレス場所へ反復的に逐次にデータを書込む手段を含み、b)前記マルチポート 中央記憶装置は前記少なくとも1つのデータ信号受取り装置と接続されて前記受 取ったデータ信号を記憶し、c)前記マルチポート中央記憶装置と接続されて、 前記データ信号を該マルチポート中央記憶装置の前記第1のアドレスから取得し 、該データ信号を処理することにより処理済みデータ信号を生成し、該処理済み データ信号を前記マルチポート中央記憶装置の第2のアドレス場所に記憶するた め送るディジタル処理手段と、 d)前記マルチポート中央記憶装置と接続されて、前記第1のマルチポート中央 記憶装置の前記第2のアドレス場所から前記処理済みデータ信号を反復的に逐次 取得し、前記処理装置に対して外部で使用可能な前記処理済みデータ信号を形成 する少なくとも1つのデータ出力手段とを設け、前記処理装置により受取られた 実質的に全ての信号データが前記マルチポート中央記憶装置に流れ、前記データ 信号受取り手段および前記出力手段が、前記処理装置に対して出入りするデータ ・フローを提供して、前記ディジタル処理手段がデータ入力割込みから実質的に 解放されて機能することを可能にすることを特徴とする処理装置。
  3. 3.テキストまたは図形的に高レベルの記述により定義された実質的に集積され た回路のフォーマットの異なる回路において実現するシステムにおいて、a)開 発システムを設け、該開発システムは、1)前記異なる回路を実現する際に有効 な、各々が1組の命令により定義される複数の機能ブロック要素を含むセル・ラ イブラリを記憶する記憶手段と、2)前記セル・ライブラリの前記機能ブロック 要素を選択し、該機能ブロック要素間の相互接続を定義する同路定義エントリ手 段とを含み、該回路定義エントリ手段が所要の回路の一部として選択された複数 の機能ブロック要素に対するパラメータを入力する手段を含み、 3)前記1組の命令および前記パラメータを、少なくとも1つの信号処理装置に 対するマイクロコードを生成する所定のアルゴリズムに従ってコンパイルする処 理手段を含み、これにより前記少なくとも1つの信号処理装置が前記所要の回路 を実現することができ、 b)前記信号処理装置は、これに対して外部で生成されたデータ信号を受取り、 該データ信号を処理することにより処理済みデータ信号を生成し、該処理済みデ ータ信号を前記処理装置に対して外部の手段から使用可能にし、該信号処理装置 は、 1)前記データ信号を受取り、前記マイクロコードを前記開発システムから受取 るポート手段と、 2)プログラム・バスを含み、前記ポート手段と接続されて前記マイクロコード を受取り記憶するプログラム・メモリーと、3)データ・バスを含み、前記受取 ったデータ信号をマルチポート中央記憶装置における所要の場所へ送る手段を含 む前記ポート手段と接続された、前記受取ったデータ信号を記憶するためのマル チポート中央記憶装置と、4)前記マルチポート中央記憶装置および前記プログ ラム・メモリーと接続されて、前記データ信号を該マルチポート中央記憶装置か ら取得し、前記プログラム・メモリーに記憶された前記マイクロコードに従って 前記データ信号を処理することにより処理済みデータ信号を生成し、前記マルチ ポート中央記憶装置に記憶するため該処理済みデータ信号を検出するディジタル 処理手段と、5)前記マルチポート中央記憶装置と接続されて、該マルチポート 中央記憶装置から前記処理済みデータ信号を取得し、該処理済みデータ信号を前 記処理装置に対して外部の前記手段から使用可能にする出力手段とを含むことを 特徴とするシステム。
JP3510621A 1990-05-18 1991-05-15 プログラム可能信号プロセッサ・アーキテクチャ Pending JPH05509425A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US52597790A 1990-05-18 1990-05-18
US525,977 1990-05-18

Publications (1)

Publication Number Publication Date
JPH05509425A true JPH05509425A (ja) 1993-12-22

Family

ID=24095404

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3510621A Pending JPH05509425A (ja) 1990-05-18 1991-05-15 プログラム可能信号プロセッサ・アーキテクチャ

Country Status (8)

Country Link
US (1) US5428749A (ja)
EP (1) EP0530310A4 (ja)
JP (1) JPH05509425A (ja)
KR (1) KR100240158B1 (ja)
AU (1) AU665927B2 (ja)
CA (1) CA2084420C (ja)
IL (1) IL98161A (ja)
WO (1) WO1991018342A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011203946A (ja) * 2010-03-25 2011-10-13 Kyocera Mita Corp 集積回路、及びこれを用いた情報処理システム
JP2013061851A (ja) * 2011-09-14 2013-04-04 Ricoh Co Ltd メモリコントローラ及びsimd型プロセッサ

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630161A (en) * 1995-04-24 1997-05-13 Martin Marietta Corp. Serial-parallel digital signal processor
US5696985A (en) * 1995-06-07 1997-12-09 International Business Machines Corporation Video processor
US5764884A (en) * 1996-10-31 1998-06-09 International Business Machines Corp. Method and apparatus for improved instruction counting schemes
US6219720B1 (en) 1998-08-10 2001-04-17 Micron Technology, Inc. Core logic unit with internal register for peripheral status
US6374320B1 (en) 1998-08-10 2002-04-16 Micron Technology, Inc Method for operating core logic unit with internal register for peripheral status
US6233627B1 (en) 1998-08-10 2001-05-15 Micron Technology, Inc. Processor with internal register for peripheral status
ATE239255T1 (de) * 1998-08-10 2003-05-15 Micron Technology Inc Prozessor oder zentraleinheit mit internem register für peripheriezustand
US6922754B2 (en) 2002-12-09 2005-07-26 Infabric Technologies, Inc. Data-aware data flow manager
US7809928B1 (en) * 2005-11-29 2010-10-05 Nvidia Corporation Generating event signals for performance register control using non-operative instructions
US8253748B1 (en) 2005-11-29 2012-08-28 Nvidia Corporation Shader performance registers
WO2015140113A1 (en) * 2014-03-21 2015-09-24 Thomson Licensing Realization of recursive digital filters on parallel computing platforms
CN107844321B (zh) * 2016-09-21 2021-09-07 上海芯旺微电子技术有限公司 一种mcu处理系统
CN110825378B (zh) * 2019-09-17 2023-07-18 秦皇岛米格教育科技有限公司 基于程序积木的编程系统和控制系统
CN110780877B (zh) * 2019-09-17 2023-10-03 秦皇岛米格教育科技有限公司 基于程序积木的编程系统及其配置装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3815104A (en) * 1973-01-18 1974-06-04 Lexitron Corp Information processing system
WO1980000758A1 (en) * 1978-10-06 1980-04-17 Hughes Aircraft Co Modular programmable signal processor
US4435759A (en) * 1981-06-15 1984-03-06 International Business Machines Corporation Hardware monitor for obtaining processor software/hardware interrelationships
US4439839A (en) * 1981-08-24 1984-03-27 International Telephone And Telegraph Corporation Dynamically programmable processing element
US4477873A (en) * 1982-04-29 1984-10-16 International Telephone & Telegraph Corporation Channel monitor for connection to channel lines
US4750111A (en) * 1984-08-22 1988-06-07 Crosby Jr Edward D Computer system for processing analog and digital data
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US4701860A (en) * 1985-03-07 1987-10-20 Harris Corporation Integrated circuit architecture formed of parametric macro-cells
US4748573A (en) * 1985-06-28 1988-05-31 Honeywell Inc. Test management system to acquire, process and display test data
US4873630A (en) * 1985-07-31 1989-10-10 Unisys Corporation Scientific processor to support a host processor referencing common memory
US4740894A (en) * 1985-09-27 1988-04-26 Schlumberger Systems And Services, Inc. Computing processor with memoryless function units each connected to different part of a multiported memory
US4868785A (en) * 1987-01-27 1989-09-19 Tektronix, Inc. Block diagram editor system and method for controlling electronic instruments
GB2217058A (en) * 1988-03-23 1989-10-18 Benchmark Technologies Processing integral transform operations
EP0350911A3 (en) * 1988-07-13 1990-09-05 Modular Computer Systems Inc. Tightly coupled multiprocessor structure for real-time applications
US5031111C1 (en) * 1988-08-08 2001-03-27 Trw Inc Automated circuit design method
US5210862A (en) * 1989-12-22 1993-05-11 Bull Hn Information Systems Inc. Bus monitor with selective capture of independently occuring events from multiple sources
US5150313A (en) * 1990-04-12 1992-09-22 Regents Of The University Of California Parallel pulse processing and data acquisition for high speed, low error flow cytometry

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011203946A (ja) * 2010-03-25 2011-10-13 Kyocera Mita Corp 集積回路、及びこれを用いた情報処理システム
JP2013061851A (ja) * 2011-09-14 2013-04-04 Ricoh Co Ltd メモリコントローラ及びsimd型プロセッサ

Also Published As

Publication number Publication date
EP0530310A1 (en) 1993-03-10
IL98161A0 (en) 1992-06-21
CA2084420C (en) 2002-10-22
KR100240158B1 (ko) 2000-01-15
AU665927B2 (en) 1996-01-25
AU7980391A (en) 1991-12-10
EP0530310A4 (en) 1993-07-21
CA2084420A1 (en) 1991-11-19
WO1991018342A1 (en) 1991-11-28
US5428749A (en) 1995-06-27
IL98161A (en) 1997-01-10

Similar Documents

Publication Publication Date Title
US5590349A (en) Real time programmable signal processor architecture
US5524244A (en) System for dividing processing tasks into signal processor and decision-making microprocessor interfacing therewith
JPH05509425A (ja) プログラム可能信号プロセッサ・アーキテクチャ
CA1337531C (en) Programmable circuit device and method for designing custom circuits from same
KR100241065B1 (ko) 엠펙 프레젠테이션 시스템에 있어서 오디오 및 비디오 프레임들을 동기화시키기 위한 장치 및 방법
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
US5175863A (en) Signal data processing system having independently, simultaneously operable alu and macu
WO2002031653A2 (en) System, method, and article of manufacture for emulating a microprocessor in reconfigurable logic
KR20050084628A (ko) 파이프라인 코프로세서
JPS61276032A (ja) 情報処理装置
JPS635776B2 (ja)
JPH0228721A (ja) プロセシング・システム
US5734927A (en) System having registers for receiving data, registers for transmitting data, both at a different clock rate, and control circuitry for shifting the different clock rates
JPH10143494A (ja) スカラ/ベクトル演算の組み合わせられた単一命令複数データ処理
JP3851008B2 (ja) プロセッサおよびそれを有する半導体集積回路、処理装置ならびに命令処理方法
Gaines Multi-processor developments in the United States for future high energy physics experiments and accelerators
Schwede An Introduction to Stream Computer Architecture
Powell et al. High Performance, Real-Time, Parallel Processing Telemetry System
JP3117214B2 (ja) シーケンサのマイクロプログラム制御方式
Hill et al. Real-time signal preprocessor trade-off study
JPS62127961A (ja) パルス入出力プロセッサ及びそれを用いたマイクロコンピュータ
Faisal Ibne Jalal et al. PC based real-time audio signal processing
JPH033047A (ja) 演算機能付きメモリ
George Fault-Tolerant Multicomputer Design with DSP96002 Microprocessors
Gould Digital signal conditioning on multiprocessor systems