JP4783527B2 - データ処理システム、データ処理装置およびその制御方法 - Google Patents

データ処理システム、データ処理装置およびその制御方法 Download PDF

Info

Publication number
JP4783527B2
JP4783527B2 JP2001294546A JP2001294546A JP4783527B2 JP 4783527 B2 JP4783527 B2 JP 4783527B2 JP 2001294546 A JP2001294546 A JP 2001294546A JP 2001294546 A JP2001294546 A JP 2001294546A JP 4783527 B2 JP4783527 B2 JP 4783527B2
Authority
JP
Japan
Prior art keywords
data
data processing
general
unit
dedicated
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 - Fee Related
Application number
JP2001294546A
Other languages
English (en)
Other versions
JP2002304382A (ja
JP2002304382A5 (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.)
GAIA SYSTEM SOLUTIONS Inc
Original Assignee
GAIA SYSTEM SOLUTIONS 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 GAIA SYSTEM SOLUTIONS Inc filed Critical GAIA SYSTEM SOLUTIONS Inc
Priority to JP2001294546A priority Critical patent/JP4783527B2/ja
Priority to US10/053,737 priority patent/US7165166B2/en
Priority to GB0201997A priority patent/GB2374692B/en
Publication of JP2002304382A publication Critical patent/JP2002304382A/ja
Publication of JP2002304382A5 publication Critical patent/JP2002304382A5/ja
Application granted granted Critical
Publication of JP4783527B2 publication Critical patent/JP4783527B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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/7864Architectures of general purpose stored program computers comprising a single central processing unit with memory on more than one IC chip
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor

Description

【0001】
【発明の属する技術分野】
本発明は、ハードウェアで演算処理を実行可能なデータパスを備えた専用データ処理ユニットを備えたデータ処理装置およびそれを用いたデータ処理システムに関するものである。
【0002】
【従来の技術】
LSIの大規模・微細化は数十年に及ぶ進展を遂げ、近年では極めて大きな機能を持ったシステムがシステムLSIなどとしてシリコン上に具現化できるようになりつつある。このような背景にあって、インテル社のペンティアム(登録商標)LSIに代表されるような高速・高性能な汎用LSIとは別に、目的に応じて性能を最大限に引き出す専用目的のシステムLSIや、その応用分野では汎用LSIよりコストパフォーマンスの優れた解を引き出すシステムLSIの需要が拡大している。例えば、携帯電話に見られるような低消費電力を要求されるLSIや、ネットワーク機器に見られるようなリアルタイム応答性とデータもしくはパケット転送に適したLSI、さらには、画像データの転送を目的とした画像圧縮伸長に適したLSIなどの通信ネットワーク応用分野とディジタルTVに代表される情報家電応用分野で特に顕著である。
【0003】
【発明が解決しようとする課題】
このような要求に対し、専用目的のシステムLSIを構築するにあたり、専用目的のプロセッサを開発および製造する方式が採用されつつある。大規模な専用システムLSIが要求される場合、システムLSIの機能、すなわち仕様は何らかの形式で高級言語(C言語やJava(登録商標)言語)で定義され記述される。したがって、その高級言語を実行できるコンパイラ等の環境を備えたプロセッサ、あるいはそのような環境に対応できるプロセッサであることが要求される。このため、目的に応じた専用命令を装備させた専用プロセッサであれば、その高級言語で記述された内容を処理するための専用回路を備えているので極めてコストパフォーマンスの良いシステムLSIを提供できる。
【0004】
一方、処理速度を向上する手法としてマルチプロセッサにより並列処理を行う手法が知られている。したがって、C言語により記述された一つのプログラムを分割して複数の処理プロセスにし、これらの処理プロセスを並列に実行することができれば処理速度は大幅に向上する。そして、汎用プロセッサでは装備されにくい特殊な演算を処理する命令による演算処理は、汎用プロセッサではクロック数を多く費やし易いので、専用命令として専用データ処理回路で処理する設計とし、それらの専用データ処理回路により並列処理することにより大幅に処理速度が向上する。
【0005】
しかしながら、C言語で記述されたシステムを複数の処理あるいはプロセスに分解して、それを処理可能な専用回路が設計できたとしても、それらの処理あるいはプロセスが並列に実行されるように制御するためには、相互の専用回路の処理状況などを伝達する何らかの通信機能も専用回路に設ける必要がある。さらに、その通信結果に基づき専用回路における処理を制御する機能も盛り込む必要がある。さらに、適用分野に応じて多種多様の演算が要求されるので、それぞれの演算に対応した専用回路を開発することに加えて、専用回路同士を並列に動作させるための機能が必要である。したがって、専用回路を並列動作させるシステムLSIは、処理速度は大幅に向上すると考えられるが、そのようなシステムLSIを設計し検査するためには膨大な時間とコストが必要となる。したがって、需要に応じてタイムリーに提供することは難しく、さらに、コストパフォーマンスも悪く、これらを改善することができる技術は開示されていない。
【0006】
そこで、本発明においては、複数の専用回路を並列動作させることが可能なシステムLSIを短期間で低コストで開発し、提供することができるデータ処理システムおよびデータ処理装置を提供することを目的としている。そして、C言語などの高級言語で記載されたプロセスを複数のプロセスに分散して並列に実行することができるシステムLSIを短期間で経済的に供給することができるデータ処理システムおよびデータ処理装置を提供することを目的としている。
【0007】
さらに、ハードウェアを直接意識しないで記述できるC言語やJAVA(登録商標)言語に対応した、あるいは連動した通信機能を採用することにより、C言語などで記述された大規模なシステムを、複数の専用回路を備えたシステムとして短期間に低コストで提供することができるデータ処理システムおよびデータ処理装置を提供することも本発明の目的としている。
【0008】
【課題を解決するための手段】
本願の出願人は、たとえば、特開2000−207202号にカスタマイズ可能な専用命令を装着できるデータ処理装置を開示している。このデータ処理装置は、専用データ処理ユニットであるVU部と、汎用なデータ処理が可能なRISCプロセッサに当るPU部とを有するデータ処理装置であり、VU部はPU部とは異なりマルチサイクルで動作可能であり、専用命令により大規模な処理を実行可能になっている。したがって、専用命令により実行される特定のデータ処理用のデータパス部、すなわち専用回路を備えた専用データ処理ユニットと、汎用データ処理ユニットとが組み合わされたVUPUアーキテクチャによるデータ処理装置をさらに組み合わせて、汎用データ処理ユニットに他のデータ処理装置の汎用データ処理ユニットとの通信機能を搭載することにより、複数の専用回路を備えたシステムであって、それらの専用回路を並列動作させることができるデータ処理システムを短期間に、そして経済的に提供することが可能となる。さらに、C言語などの高級言語で記述されたシステムのプログラムファンクションそのものを専用命令として一命令化して専用データ処理ユニットで実行可能とすることにより、C言語で記述されたシステムを複数の処理あるいはプロセスに分解し、それらの処理あるいはプロセスを専用回路で高速に並列に実行することができる処理能力の高いデータ処理システムを短期間に、そして低コストで提供することができる。
【0009】
本発明のデータ処理システムは、複数のデータ処理装置を有し、それらのうち2以上のデータ処理装置は、専用命令により実行される特定のデータ処理用のデータパス部を備えた少なくとも1つの専用データ処理ユニットと、汎用命令により汎用処理を実行可能な汎用データ処理ユニットと、専用命令および汎用命令を備えたプログラムに基づき、専用データ処理ユニットおよび汎用データ処理ユニットに命令を発行する命令発行ユニットと、プログラムを記憶するコードメモリと、汎用命令によりデータを入力または出力可能なデータメモリとを有する第1のタイプのデータ処理装置であり、少なくとも1つの第1のタイプのデータ処理装置の汎用データ処理ユニットは、他の第1のタイプのデータ処理装置の汎用データ処理ユニットとデータ転送経路を介してデータを交換可能な通信手段と、汎用レジスタとを備え、通信手段は、汎用レジスタを介してプログラムにより設定可能なコンフィグレーション・レジスタを含み、さらに、汎用命令に基づき入力するデータの入力アドレスコンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに、他の第1のタイプのデータ処理装置に、入力するデータを読み出すリクエスト信号を送出し、リクエスト信号により他の第1のタイプのデータ処理装置からデータ転送経路を介して送信された他の第1のタイプのデータ処理装置に含まれたデータメモリの上記入力するデータを受信する手段、および、汎用命令に基づき出力するデータの出力アドレスがコンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに他の第1のタイプのデータ処理装置に含まれたデータメモリにデータを書き込む手段に対してデータ転送経路を介して上記出力するデータを送信する手段の少なくともいずれかを含む。したがって、本発明のデータ処理装置は、専用命令により実行される特定のデータ処理用のデータパス部を備えた少なくとも1つの専用データ処理ユニットと、汎用命令により汎用処理を実行可能な汎用データ処理ユニットと、専用命令および汎用命令を備えたプログラムに基づき、専用データ処理ユニットおよび汎用データ処理ユニットに命令を発行する命令発行ユニットと、プログラムを記憶するコードメモリと、汎用命令によりデータを入力または出力可能なデータメモリとを有し、汎用データ処理ユニットは、他のデータ処理装置の汎用データ処理ユニットとデータ転送経路を介してデータを交換可能な通信手段と、汎用レジスタとを備え、通信手段は、汎用レジスタを介してプログラムにより設定可能なコンフィグレーション・レジスタを含み、さらに、汎用命令に基づき入力するデータの入力アドレスコンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに、他のデータ処理装置に入力するデータを読み出すリクエスト信号を送出し、リクエスト信号により他のデータ処理装置からデータ転送経路を介して送信された他のデータ処理装置に含まれたデータメモリの上記入力するデータを受信する手段、および、汎用命令に基づき出力するデータの出力アドレスがコンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに他のデータ処理装置に含まれたデータメモリにデータを書き込む手段に対してデータ転送経路を介して上記出力するデータを送信する手段の少なくともいずれかを含む。
【0010】
本発明の専用データ処理ユニットは、アプリケーションなどに特化した専用回路となるデータパス部を備えており、専用命令により特化した処理あるいはプロセスを高速で実行できる。一方、汎用データ処理ユニットは、専用命令に対処する必要がなく、基本命令あるいは汎用命令を解釈して実行できる機能があればよく、汎用性を犠牲にすることなく様々なアプリケーションなどに対応した専用データ処理ユニットと共存できる。そして、専用命令および汎用命令を備えたプログラムに基づき、専用データ処理ユニットおよび汎用データ処理ユニットが制御されるので、汎用データ処理ユニットにより専用データ処理ユニットを制御したり、その演算結果による汎用的な処理を行うことができる。したがって、汎用データ処理ユニットに並列処理に必要な通信手段を設けることにより、通信機能を専用回路から分離して組み込むことが可能となり、さらに通信機能をプログラムにより制御することができる。
【0011】
このため、複数の専用回路を有するデータ処理システムにおいて、それらの専用回路を並列に実行するために必要な通信機能を、専用回路に影響を与えず、汎用的な構成で簡単に設けることが可能であり、さらに、プログラムにより柔軟に制御できる。このため、複数の専用回路を並列実行可能なデータ処理システムの設計および開発期間を短縮でき、低コストで提供できる。さらに、通信機能はプログラムで制御が可能なので、後の変更や修正にも柔軟に対処できる。したがって、複数のデータ処理装置の専用データ処理ユニットを含む、単一のデータの流れを処理するデータ処理系統を形成したり、複数のデータ処理装置の専用データ処理ユニットを含む、データの流れを処理する複数のデータ処理系統を形成することにより、C言語などの高級言語で記載されたプロセスを複数のプロセスに分散して並列に実行できるシステムLSIとして適したデータ処理システムおよびデータ処理装置を提供できる。
【0012】
システム全体がC言語などの高級言語で記述されており、これを複数のプロセスに分割し、各々のプロセスを本発明のデータ処理装置に割り当てる場合においては、データ処理装置の間のデータ通信をいかにして行うかという課題に直面する。プロセッサ間のデータ通信はバスを通じて行う方式や、専用の通信専用ハードウェアマクロを介して行う方式が多く用いられている。したがって、本発明のデータ処理システムにおいて、データ処理装置の間の通信手段として、これらの通信専用のハードウェアを用いることも可能である。しかしながら、C言語を記述するユーザから直にデータ転送を制御もしくは管理し難いという欠点がある。すなわち、バス方式ではハードウェアであるバス自体をC言語のレベルから直接参照するのが困難である。上述したように、C言語のような高級言語ではハードウェアを直接意識しないで記述できることに特徴があり、当然の事とも言える。また、通信専用ハードウェアマクロを使用してデータ通信を行う場合には、通信機能は専用ハードウェアが保持するのでC言語のレベルからでは細かな制御もしくはプログラミングが困難ということになる。すなわち、これらの従来多く採用されているプロセッサ間データ通信機構は、ハードウェア側の要求に基づいてボトムアップに構築されたものである。従って、C言語との連動性は要求されておらず、そのため連動性は薄いといえる。
【0013】
しかしながら、本発明のデータ処理システムに基づき、C言語で記述された仕様に基づいてシステムLSIを設計するためには、C言語で記述されたシステム仕様からLSI化に向けてトップダウンな設計方式であることが望ましい。したがって、C言語でハードウェアを意識することなしにデータの転送が自由に行えることが望ましい。すなわち、本発明のデータ処理システムにおいては、C言語で記述されたシステム全体を複数のC言語のプロセスに分割し、それらの各々の対応した専用回路を備えた複数のデータ処理装置の集合としてシステムLSIを設計することができる。そして、複数のC言語のプロセスに分解する際に、C言語により、ハードウェアを意識すること無しにデータを転送する記述が可能となれば、複数のC言語のプロセスに分解する設計作業を円滑に進めることがはじめて可能となる。そのためには、C言語により、ハードウェアを意識すること無しにデータ転送を自由に行えるハードウェア・アーキテクチャを提供する必要がある。
【0014】
このため、本発明においては、汎用命令に基づくデータの入出力において、そのデータを入力または出力するアドレスにより、データを他のデータ処理装置のデータメモリから入力、または他のデータ処理装置のデータメモリに対し出力するようにしている。すなわち、本発明のデータ処理装置は、プログラムを記憶するコードメモリ、たとえば、メモリのプログラム記憶領域、コードRAMあるいはコードROMと、汎用命令によりデータを入力または出力可能なデータメモリ、たとえば、メモリのデータ記憶領域あるいはデータRAMとを有しており、通信手段は、汎用命令に基づき入力または出力するデータの入力アドレスまたは出力アドレスが予め設定されたアドレスのときに、他のデータ処理装置との間でデータを交換し、他のデータ処理装置のデータメモリからデータを入力し、またはそのデータメモリに対しデータを出力するようにしている。また、本発明の、データ処理装置の制御方法においては、汎用命令に基づき入力または出力するデータの入力アドレスまたは出力アドレスが予め設定されたアドレスのときに、他のデータ処理装置との間でデータを交換する通信工程を有する。
【0015】
他のデータ処理装置のデータメモリに対しデータを入出力するタイプのデータ通信において、相手側となる他のデータ処理装置のデータメモリに書き込みに行くPUTあるいはPUSH型(以降ではPUT型と呼ぶ)と、相手側となる他のデータメモリに読み出しに行くGET型とを提示することができる。そして、どちらもC言語からのデータ転送を制御することができる。すなわち、PUT型のデータ処理装置の通信手段あるいは通信工程では、出力アドレスが予め設定されたアドレスのときに、他のデータ処理装置へデータを送信する。したがって、受信側となる他のデータ処理装置のデータメモリの少なくとも1部の領域を、自己のデータ処理装置のデータメモリと同じレベルで仮想的に取り扱うことができる。このため、C言語により、データの出力先を所定のアドレスにすると、他のデータ処理装置のデータメモリにデータを書き込むことができる。
【0016】
一方、PUT型のデータ処理装置の相手となる受信側のデータ処理装置の通信手段あるいは通信工程では、発信側の他のデータ処理装置からデータを受信するとデータメモリの所定のアドレスにデータを記憶する。これにより、受信したデータを自己のデータメモリに記憶できる。したがって、C言語によりデータが書き込まれたアドレスのデータを読み込むことにより、汎用データ処理ユニットではそのデータを使用できる。この結果、C言語により発信側と受信側のデータ処理装置間でデータを転送する処理を操作できたことになる。
【0017】
たとえば、あるアドレスを予め設定しておき、そのアドレス以上であれば、他のデータ処理装置のデータメモリへ書き込み、そのアドレス以下であれば自身のデータメモリへ書き込む、という制御を行う。この制御を行う為に、通信相手となるデータ処理装置の情報を格納するレジスタを設け、そこに送出先のデータ処理装置の識別情報、そのデータ処理装置に対しデータ転送を開始するアドレス、転送を終了するアドレスなどの情報を格納しておくことができる。
【0018】
同様に、GET型のデータ処理装置の通信手段あるいは通信工程では、入力アドレスが予め設定されたアドレスのときに、他のデータ処理装置からデータを受信する。したがって、送信側となる他のデータ処理装置のデータメモリの少なくとも1部の領域を、自己のデータ処理装置のデータメモリと同じレベルで仮想的に取り扱うことができる。このため、C言語により、データの入力元を所定のアドレスにすると、他のデータ処理装置のデータメモリからデータを読み込むことができる。
【0019】
一方、GET型のデータ処理装置の相手となる送信側のデータ処理装置の通信手段あるいは通信工程では、受信側となる他のデータ処理装置からデータを要求されるとデータメモリの所定のアドレスからデータを提供する。これにより、C言語によりデータをデータメモリの所定のアドレスに書き込むことにより、受信側のデータ処理装置にデータを転送できたことになる。このようにGET型においても、C言語により発信側と受信側のデータ処理装置間でデータを転送する処理を操作できたことになる。
【0020】
複数のデータ処理装置を通信手段により組み合わせてシステムを構築する場合、複数のデータ処理装置をPUT型あるいはGET型に揃えることが可能である。あるデータ処理装置が親あるいはマスタとして動作し、それと通信を行う他のデータ処理装置が子あるいはスレーブとして動作するシステムを構築した場合も、マスタ(親)およびスレーブ(子)のデータ処理装置の構成をPUT型あるいはGET型に揃えることが可能である。一方、子のデータ処理装置の通信手段が、出力アドレスが予め設定されたアドレスのときに、親のデータ処理装置へデータを送信する手段と、入力アドレスが予め設定されたアドレスのときに、親のデータ処理装置からデータを受信する手段とを備えている第1のPUT・GET型にすることも可能である。また、親のデータ処理装置の通信手段が、出力アドレスが予め設定されたアドレスのときに、子のデータ処理装置へデータを送信する手段と、入力アドレスが予め設定されたアドレスのときに、子のデータ処理装置からデータを受信する手段とを備えている第2のPUT・GET型にすることも可能である。
【0021】
第1のPUT・GET型は、子供と親の間で転送されるデータを入出力する領域をマスタ側に集中するのでメモリのスペース効率は良い。一方、第2のPUT・GET型であると、転送するデータを入出力する領域が子供の側に分散するので子側のデータ処理装置の独立性が強くなり、分散処理のメリットをさらに活かすことができる。
【0022】
データが誤り無く転送されるには、転送するデータを入力または出力する領域に、送信側および受信側のデータ処理装置が同時に入力または出力しないようにすることが望ましい。本発明のデータ処理装置は、データを転送するタイミングをプログラムで制御することができるので、そのような事態が発生しないように送信側および受信側のデータ処理装置のプログラムを作成でき、C言語により制御することができる。また、通信手段に、データを記憶する手段がデータを記憶するデータメモリの受信専用領域が汎用データ処理ユニットにより読み出されているときは、データを記憶する手段の処理を延期し、データを記憶する手段の処理中は、汎用データ処理ユニットが受信専用領域からデータを読み出す処理を延期する調停手段、または、データを提供する手段がデータを取得するデータメモリの送信専用領域が汎用データ処理ユニットにより書き込まれているときは、データを提供する手段の処理を延期し、データを提供する手段の処理中は、汎用データ処理ユニットが送信専用領域にデータを書き込む処理を延期する調停手段を設けても良い。また、本発明のデータ処理装置の制御方法の通信工程で調停手段と同様の制御を行うようにしても良い。
【0023】
このように、本発明は、専用データ処理ユニットと、通信手段を備えた汎用データ処理ユニットとを有するデータ処理装置を複数有するデータ処理システムを提供するものであり、本発明のデータ処理システムにより、複数の専用回路を並列実行することができるシステムLSIを極めて短期間に、そして低コストで提供することができる。さらに、本発明においては、専用回路を備えた分散処理システムであるデータ処理装置の間の通信機構を、C言語あるいはJAVA(登録商標)言語などの高級言語と連動性および対応性のあるハードウェアで実現するアーキテクチャを提供しており、1のプロセスから他のプロセスへデータ転送がC言語で記述でき、その結果、C言語によるプロセスを複数のプロセスに分割が容易となり、分散処理システムの設計が可能となる。したがって、C言語で記述された仕様を実現し、高速で処理可能な複数の専用回路を用いた分散処理タイプのシステムLSIをさらに短期間に、経済的に設計し供給することができる。
【0024】
さらに、少なくとも1つの第1のタイプ、すなわちVUPUアーキテクチャのデータ処理装置の少なくとも1つの専用データ処理ユニットに、VUPUアーキテクチャ以外の、たとえば従来型のRISCプロセッサなどの第2のタイプのデータ処理装置とデータを交換する機能を持たせることにより、本発明にかかるデータ処理システムで実現できるシステム構成はさらに広がる。
【0025】
【発明の実施の形態】
以下に図面を参照しながら本発明についてさらに説明する。図1に、特定の処理に特化した専用データ処理ユニット(専用命令実行ユニット、以降ではVU)1と、汎用的な構成の汎用データ処理ユニット(汎用命令実行ユニットあるいはプロセスユニット、以降ではPU)2とを備えた本発明のデータ処理装置10の概要を説明する。このデータ処理装置10は、専用回路を備えたプログラマブルなプロセッサであり、このため、実行形式の制御プログラム(プログラムコード、マイクロプログラムコード)4aを内蔵したコードRAM4から命令をフェッチし、専用データ処理ユニット1および汎用データ処理ユニット2にデコードされた制御信号を提供するフェッチユニット5を備えている。本例においては、このフェッチユニットFU5が命令発行ユニットに該当する。
【0026】
このフェッチユニット5は、前の命令あるいはステートレジスタ6の状態、割り込み信号φiなどによって決まる所定のコードRAM4の所定のアドレスから命令をフェッチするフェッチ部7と、フェッチされた専用命令あるいは汎用命令(一般命令)をデコードするデコード部8とを備えている。デコード部8は、専用命令をデコードした制御信号(デコーデド・コントロール・シグナル;Decoded Control Signal)φvおよび汎用命令をデコードした制御信号(デコーデド・コントロール・シグナル;Decoded Control Signal)φpを、専用データ処理ユニットVU1および汎用データ処理ユニットPU2にそれぞれ供給する。さらに、PU2からは実行状態を示すステータス信号(Exec unit Status Signal)φsが返えされ、PU2およびVU1の状態がステートレジスタ(状態レジスタ)6に反映されるようになっている。
【0027】
本例のPU2は、汎用レジスタ、フラグレジスタおよび演算ユニット(ALU)などから構成される汎用性の高い実行ユニット11と、他のPU2との間でデータを交換する機能を備えた通信ユニット12とを備えており、データRAM15を一時的な記憶領域としてデータを入出力しながら汎用処理を実行できるようになっている。これらのフェッチユニットFU5、汎用データ処理ユニットPU2、コードRAM4、データRAM15を有する構成は、個々の機能は異なるが一般的なプロセッサユニットと類似の構成となる。したがって、FU5、PU2、コードRAM4およびデータRAM15を有する構成をプロセッサユニット3と称することも可能であり、プロセッサユニット(PUX)3からVU1を制御するような概念で本例のデータ処理装置10を構成あるいは設計することができる。
【0028】
FU5からの専用命令φvを実行する専用データ処理ユニットVU1は、FU5が供給する命令がV命令φvであるかなどをデコードするユニット22と、予め特定のデータ処理を行うように制御信号をハードウェア的に出力するシーケンサ(FSM(Finite State Machine)、ファイナイトステートマシン)21と、このシーケンサ21からの制御信号に従って特定のデータ処理を行うようにデザインされたデータパス部20を備えている。また、VU1は、PU2からアクセス可能なレジスタ23を備えており、データパス部20の処理に必要なデータをインターフェイスレジスタ23を介してPU2で制御したり、VU1の内部状態をレジスタ23を介してPU2で参照できるようになっている。また、データパス部20で処理された結果はPU2に供給され、PU2ではその結果を利用した処理が行われる。
【0029】
本例のデータ処理装置10は、コードRAM4に、汎用命令(P命令)および専用命令(V命令)を含んだプログラムが記憶されており、それがフェッチユニット5でフェッチされ、デコードされた制御信号φpまたはφvとしてVU1およびPU2に供給される。VU1は、制御信号φpおよびφvのうち、自己を起動する専用命令の制御信号φvが供給されると稼動する。一方、PU2には、汎用命令がデコードされた制御信号φpだけが供給されるようになっており、V命令をデコードした制御信号φvはPU2には発行されず、その代わりに、実行を伴わないnop命令を示す制御信号が発行され、PU2の処理はスキップされる。VU1は、アプリケーションなどによって変更されるものであり、VU1に指示を出す専用命令もアプリケーションによって変わることが多い。VU1は、アプリケーションに特化した専用回路であり、V命令をデコードした制御信号を解釈するように設計することは容易である。一方、PU2は、nop命令が出力されることにより、VU1に特化した命令に対処する必要がなく、基本命令あるいは汎用命令を解釈して実行できる機能があればよく、汎用性を犠牲にすることなく様々なアプリケーションに対応したVU1と共存し、これらを制御したり、その演算結果を用いて処理を行うことができる。
【0030】
このように、図1に示したデータ処理装置10は、リアルタイム応答などの特殊な演算が要求される処理を実現できる専用回路を備えたVU1と、汎用性があるPU2とを有し、この組合せによりシステムLSIあるいはプロセッサを形成可能なアーキテクチャである。また、VU1およびPU2の組合せを複数搭載することによってもシステムLSIあるいはプロセッサを形成できるアーキテクチャでもあり、以降においては、VU1とPU2との組合せによる処理ユニットあるいは処理装置の単位をVUPUと称することにする。このVUPU10は、リアルタイム応答性を犠牲にすることなく、設計および開発期間を短縮でき、さらに、その後の変更や修正にも柔軟に対処できるものである。また、VU1は、1つに限定されることはなく、アプリケーションで要求される専用処理を処理できるように複数のVU1を用意し、それぞれのVU1を稼動する複数の専用命令をプログラムコードに含めることが可能である。さらに、本例のVU1は、特殊な演算処理だけでなく、プログラム中の特定のプログラムファンクションを専用回路化してプログラムを効率良く可動させることができる。そして、本例のPU2は、他のPU2とデータを交換することができる通信ユニット12を備えており、他のVUPU10と通信することにより、複数のVUPU10のVU1を並列に稼動させることができる。したがって、VUPU10を複数備えたデータ処理システムは適応可能な範囲が非常に広いアーキテクチャである。
【0031】
たとえば、図2に示すように、C言語により記述されたプロセスが図2のように、親あるいはマスタとなるプロセスC1と、そのプロセスC1からデータが転送され、そのデータに基づく処理結果を返すプロセスC2およびC3により構成されている場合、これらのプロセスC1、C2およびC3を図3に示すように3つのVUPU10に割り振ることが可能である。そして、VUPU10であれば、特殊な演算処理だけでなく、プログラム中の特定のプロセスあるいはプログラムファンクションを専用回路化してプログラムを効率良く可動させることができるので、処理速度を向上できる。さらに、VUPU10は、PU2が通信機能を備えているので、図4に示すように、親となるプロセスC1が割り振られたVU1、すなわちVU(C1)を備えたVUPU10から、子供あるいはスレーブとなるプロセスC2が割り振られたVU(C2)を備えたVUPU10に対しデータが転送されることにより、VU(C2)がVU(C1)と並列に処理を開始することができる。そして、VU(C2)の処理結果をVU(C1)に返すことによりVU(C1)ではその処理結果に基づく処理を実行することができる。
【0032】
同様に、プロセスC3が割り当てられたVU(C3)を備えたVUPU10に対しデータが転送されることにより、VU(C3)がVU(C1)と並列に処理を開始することができる。さらに、VU(C2)とVU(C3)とが並列に処理を行うことができるプロセスであればさらに並列度を上げることが可能であり、処理速度を向上することができる。このように、各VUPU10がある時刻でひとつしか動作しなければ、非並列であり、元のC言語で記述されたプロセスを専用回路化した効果しか得られない。これに対し、本発明のVUPU10であれば、専用回路化した複数の複数のプロセスを並列に実行することが可能となり、処理速度を大幅に向上できる。このため、図3に示すように、C言語で記述された仕様を複数のプロセスに分け、複数のVUPU10のVUに割り当て、それらのVUPU10によってシステムLSI30などのデータ処理システムを構築することにより、プロセスあるいはファンクションを専用回路化するメリットに加えて、それらの専用回路を並列に実行することが可能となる。したがって、非常に処理速度の速いシステムLSI30を提供することが可能となる。
【0033】
すなわち、図5に示すように、C言語で記述されたある仕様51が与えられたときに、その仕様51をある程度並列実行可能な複数のプロセス52に分けることが可能である。そして、専用回路を形成するデータパス部20とシーケンサ21により、プロセス52の全てあるいは一部が実行できるようにVU1を生成することが可能であり、VUPU10として供給することができる。そして、そのようにして作成されたVUPU10を組み合わせてシステムLSI30とすることにより、並列度の高い処理が可能なシステムLSI30を提供することができる。さらに、VUPU10は、専用回路で処理することが適さない処理はプロセッサとしての機能を備えたPU2により処理することが可能であり、専用回路による処理を並列に実行できるのみならず、汎用プロセッサによる処理も並列に実行させることができる。
【0034】
図6ないし図8は、通信機能を備えた本発明のVUPU10によりデータ処理システム30を構成する幾つかの例を示してある。多くのケースでは、1つのチップに複数のVUPU10が搭載され、本明細書に示したような構成のデータ処理システム30は、特定のアプリケーションの処理を効率良く行うことができるシステムLSIとして提供されることになるであろう。図6に示したデータ処理システム30は、VUPU10のPU2と通信するのに適したアーキテクチャを備えたプロセッサ31を中心に、複数のVUPU10が適当な通信手段により接続されているものである。たとえば、並列に稼動する複数のVU1により、画像データとなるビットストリーム39に対し圧縮あるいは解凍に必要な一連の処理を順次施すことが可能であり、画像処理を高速に実行することができる。そして、各処理を行うVU1はPU2で制御され、そのPU2は他のPU2とデータを交換できるようになっているので、処理の同期、調停あるいはエラーなどを適切に処理することができる。これらのVUPU10は、各々が独立したプログラムコードにより動作するので、マルチインストラクションによりシングルデータフローを処理することができるデータ処理システム30を提供することができる。
【0035】
図7に示したデータ処理システム30は、汎用のバスなどを介してデータを送受信することができる通信機能を備えたVU(COM)を搭載したVUPU10Aをインターフェイスとして用い、VUPU10を繋げたシステムと、VUPUとは異なるアーキテクチャの従来あるいは他のタイプ(第2のタイプ)のプロセッサ32とにより構築されている。また、図8に示したデータ処理システム30は、VU(COM)とプロセスを搭載したVU(C1)あるいはVU(C2)の2つのVUを搭載したVUPU10Bをインターフェイスとして、他のタイプのプロセッサ32を含めてシステムを構築した例である。通信機能を備えたPU2を採用することにより、複数のVUPU10を用いたシステムを非常にフレキシブルに構築することが可能であり、様々な仕様のアプリケーションに対しの最適な構成のシステムLSIを提供できる。
【0036】
このように、複数のVUPU10を並列実行させることにより極めて処理速度の速いシステムLSIを提供することが可能となる。そのためには、図9に示すようにC言語で記述された機能あるいは仕様51を複数のプロセス52に分解してVUPU10を作成する必要がある。その際に、VUPU10の間のデータ通信をいかにして行うかという課題に直面する。プロセッサ間のデータ通信はバスを通じて行う方式や、専用の通信専用ハードウェアマクロを介して行う方式が多く用いられており、本例のデータ処理システム30にも適用できる。
【0037】
しかしながら、バス方式ではハードウェアであるバス自体をC言語のレベルから直接参照するのが困難であり、C言語により複数のプロセス52に分解したときに通信機能をC言語のレベルからでは細かな制御ができない。したがって、上述したような複数のVUPU10を備えたデータ処理システムを短期間に低コストで開発するためには、C言語でハードウェアを意識することなしにデータの転送が自由に行えることが望ましい。すなわち、複数のC言語のプロセスに分解する際に、C言語により、ハードウェアを意識することなしにデータを転送する記述が可能となれば、複数のC言語のプロセスに分解する設計作業を円滑に進めることがはじめて可能となる。そして、C言語のレベルで分割されたプロセスに基づき、専用回路化できる部分をRTLに変換して専用回路を設計および製造し、専用回路を稼動する専用命令とその他の汎用処理を行う汎用命令を備えたプログラムコードを作成し、さらにこれらをテストして完成するステップ53の負荷を軽減することができる。
【0038】
このため、本例ではC言語により、ハードウェアを意識すること無しにデータ転送を自由に行えるハードウェア・アーキテクチャを通信機能として採用している。この方式の通信機能は、C言語に限定されるものではなく、より分散および並列記述の容易なJAVA(登録商標)言語、あるいはその他の高級言語で記載された仕様をシステムLSIなどのデータ処理システムとして実現するためにも好適である。
【0039】
図10に、本発明のVUPU10の一例をPU2を中心に示してある。PU2は、図1に基づき説明したように、コードRAM4に格納されたプログラム4aの汎用命令をデコードした制御信号φpを実行する実行ユニット11と、通信機能を備えた通信ユニット12とを備えている。そして、本例の通信ユニット12は、実行ユニット11がデータRAM15にアクセスするために出力するアドレスAOが予め設定された範囲のアドレスであるときは、通常のRD/WRデータRAM15Nとは異なる受信用データRAM15Xあるいは送信用データRAM15Yに対し入出力動作を行う。そして、自己の受信用データRAM15Xに書き込まれたデータを読み込んだり、他のVUPUの送信用データRAM15Yからデータを取得することにより、他のVUPUとの間でデータ転送を行う。すなわち、本例のVUPU10のプロセッサPUX3は、コードRAM4と、データRAM15とが異なる、いわゆるハーバードアーキテクチャと称されるタイプである。そして、データRAMの一部を他のVUPU10と共用したり、他のVUPU10と共用のデータRAMを設けることにより、入出力アドレスにより他のVUPU10に対しデータ転送することができる。したがって、入出力アドレスをC言語で記述することによりにVUPU10の間の通信を制御することができる。
【0040】
この通信方式は、通信相手のVUPU10の受信RAM15Xに出力データを書き込むPUTあるいはPUSH型と、通信相手のVUPU10の送信RAM15Yから入力データを取得するGET型に大きく分かれる。図10に示したVUPU10は、PUT型の例である。したがって、VUPU10は、入出力可能な通常のRD/WRデータRAM15Nに加え、自己の実行ユニット11に対してはリードオンリとなる受信RAM(受信データRAM)15Xを備えている。また、通信ユニット12は、出力データDOを他のVUPU10に送信する送信インターフェイス13と、他のVUPU10から受信した入力データDIを受信RAM15Xに書き込む受信インターフェイス14を備えている。
【0041】
送信インターフェイス13は、送信制御部13Cを備えており、実行ユニット11がプログラム4aにしたがってデータを書き込む際に出力するアドレスAOがあるアドレス以上であると、送信バッファ13Bを経由して他のVUPUのデータRAM(受信RAM)に書き込む。したがって、プログラム4aからみると、自身のVUPU10に実体のあるデータRAMに書き込むのと同じ操作で、実体の無い送信用のデータRAM15Zにデータを転送することができる。そして、その実体のない送信用のデータRAM15Zは、通信相手のVUPUに存在する送信専用のライトオンリのデータRAM15Xであり、通信相手の実行ユニット11にとってはリードオンリの受信専用のデータRAMとなる。
【0042】
受信インターフェイス14は、受信制御部14Cを備えており、他のVUPU10から受信した入力データDI(送信元においては出力データDO)を受信RAM15Xに書き込む。送信制御部13Cおよび受信制御部14Cは、それぞれ、コンフィグレーション・レジスタ13Rおよび14Rを備えている。送信用のコンフィグレーション・レジスタ13Rには、送信先のVUPUの識別情報(ID)、送信開始アドレス、転送サイズ、さらには送信終了アドレスなどの実行ユニット11から出力されるデータを転送先に送信するために必要なデータが格納される。受信用のコンフィグレーション・レジスタ14Rには、受信源となる送信元のVUPUのID、受信開始アドレスおよび受信終了アドレスなどのデータを受信するために必要なデータが格納される。また、送信元の実体の無い送信専用のデータRAM15Zのアドレスと、送信先の受信専用のデータRAM15Xの受信アドレスが一致しない場合には、それらのアドレスの対応表を送信側あるいは受信側のコンフィグレーション・レジスタ13Rあるいは14Rに登録しておき、送信時あるいは受信時にアドレス変換することができる。
【0043】
これらの送信用のコンフィグレーション・レジスタ13Rおよび受信用のコンフィグレーション14Rの内容は、例えば、PU2の汎用レジスタ11Rを介してプログラム4aを通じて設定することができる。したがって、C言語により送信および受信を行うことになる入力および出力アドレスや、アドレス変換などの初期条件を設定することができる。
【0044】
また、実行ユニット11に入力されるデータDIは、受信用のコンフィグレーション・レジスタ14Rに格納されているアドレスの内容から、受信専用のデータRAM15Xからの読出か、通常のデータRAM15Nからの読出かを判断することが可能である。このため、受信RAM15Xの出力DOと、RD/WRデータRAM15Nの出力DOは、受信制御回路からの信号により制御されるセレクタ16を経由して実行ユニット11のDIに供給される。この結果、プログラム4aは、自己が入出力可能なデータRAM15Nのデータか、通信相手が書き込んだ受信RAM15Xのデータかはアドレスの違いで制御することが可能であり、その他の操作は全く同等に処理できることとなる。
【0045】
さらに、送信インターフェイス13は、調停回路13Aを備えており、データ書込状態を示す信号φputを送出する。それと共に、送信を開始するに当たっては、相手がデータを読出中でない事を確認する必要があり、送信相手のVUPUにおける受信RAM15Xのデータ読出状態を示す信号φbusyによって識別する。したがって、データ読出状態を示す信号φbusyは転送する相手のプロセッサの数分(ID分)だけ必要となる。受信インターフェイス14も調停回路14Aを備えており、受信専用のデータRAM15Xから読出中は、他のVUPUからの出力データを受信できないようになっている。そのため、データ書込状態を示す信号φputを受信したときに、受信RAM15Xが読み出し中であると、読出状態を示す信号φbusyを出力する。送信インターフェイス13および受信インターフェイス14で取り扱われるこれらの書込状態を示す信号φputと読出状態を示す信号φbusyは、方向は逆だが同じ種類に信号である。そして、レベル信号で送出されるのが一般的である。
【0046】
本例の受信専用のデータRAM15Xは、デュアルポートデータRAMであるが、シングルポートデータRAMにより構成することも可能である。デュアルポートデータRAMであれば受信しながらの読出操作が可能となり、並列性が向上し、さらに、上記のような調停回路を省くことができる可能性がある。しかしながら、書込みアドレスAIと、読出しアドレスRAIが同一の場合があることを考慮すると上記の調停回路13Aおよび14Aと状態信号φputおよびφbusyを設けておくことが望ましい。調停回路を省いた場合でも、書込みアドレスAIと、読出しアドレスRAIが同一の場合を考慮すると、入力データDIから読出しデータRDIにRAMをバイパスしてデータを出力可能な論理回路が必要となる。
【0047】
以上に示す送信・受信機構全体をIVC機構(Inter VUPU Communication機構)と称することとする。
【0048】
図11に、IVC機構を備えた2つのVUPU10の間でデータ交換される様子を各々のPUのメモリマップ19を用いて示してある。本図から分かるように、PUT型のIVC機構においては、アドレスがA1からA2の範囲であるときは、相手側のデータRAM15Xにデータを書き込むことによりデータを転送する。したがって、データRAMの使用効率が高く、また、データの二重持ちを防ぐことができるのでデータに齟齬が発生することも防止できる。また、アドレスがA3からA4のときは、相手側のPUによりデータが書き込まれたデータRAM15Xからデータを取得する。したがって、転送されたデータをPU2で使用して処理を進めることができる。
【0049】
図12に、PUT型のIVC機構を備えた4つのVUPU10を接続したデータ処理システム30の例を示してある。この例では、1つのVUPU10pが親あるいはマスタとなり、他の3つのVUPU10cは子供あるいはスレーブとなっている。親のVUPU10cからは全ての子供のVUPU10pに対し同様にデータが転送され、子供のVUPU10cからは親VUPU10pへ個別にデータが転送される。このため、親のVUPU10pは、子供の数に相当する受信RAMあるいは受信RAM領域15Xを備えており、子供のVUPU10cは1つの受信RAMあるいは受信RAM領域15Xを備えている。したがって、親のVUPU10pにおいては、子供のVUPU10cからデータを並列に受信することが可能であり、また、受信したデータを保持しておけるのでプログラムにより適当なときに使用できる。一方、親のVUPU10pの受信RAM15Xを1つにすることも可能であり、この場合は、順番に子供のVUPU10cからデータを受信するように、親のVUPU10pおよび子供のVUPU10cのプログラムを作成する必要がある。
【0050】
また、本例のシステムでは、VUPU10pおよびVUPU10cの間では、4本のデータ転送可能な経路を備えたチャネル35が用意されている。このようなプロセッサ間のデータ転送経路は、一般的な信号通信処理により形成することが可能である。そして、チャネル数を増加させれば子供のVUPU10c同士が直接通信する構成にすることも可能であり、本発明のIVC機構を備えたVUPUを用いて通信経路を構築するアーキテクチャは自由度が高い。
【0051】
図13は、図12に示したデータ処理システム30の各々のVUPUのPUにおけるメモリ構成を示してある。上記と同様に、PUT型のIVC機構を備えたVUPU10を用いているので、1対Nのシステムであってもデータを送出する場合にはますますシステム全体の分散性を高め、かつ、データRAMの使用効率を向上することができる。たとえば、親のVUPU10pのPU(PU−A)においては、メモリマップ19の送信RAMの領域はVUPU10pには実体がなく、そのアドレスに物理的に対応するデータRAMは、子供のVUPU10cにそれぞれ分散して配置されている。また、子供のVUPU10cのPU(PU−B、PU−CおよびPU−D)においても、メモリマップ19の送信RAM領域は実体がなく、それらのアドレスに物理的に対応するデータRAMは、親のVUPU10pに配置されている。
【0052】
図14に、本例のIVC機構を実現する通信ユニット12の動作をフローチャートで纏めてある。実際に通信を開始する前に、送信用のコンフィグレーション・レジスタ13Rに、送信先のVUPUのID、送信するデータの開始アドレス(実体のない送信RAMに割り当てられたアドレス)、受信RAM15Xの開始アドレスなどを設定し、受信用のコンフィグレーション・レジスタ14Rに、送信元となるVUPUのID、送信されるデータの開始アドレス、受信RAMの開始アドレスなどを設定する処理が行われる。これらのコンフィグレーション・レジスタ13Rおよび14Rの設定は、C言語のレベルであればインライン・アセンブル記述により設定できる。また、この処理をファンクションとしてサブルーチン化しておくことも可能である。
【0053】
そして、プログラムにしたがって入出力アドレスが出力されると、通信ユニット12においては、まず、ステップ61でデータの入出力アドレスを判断する。入出力データが通常のデータRAMに割り当てられたアドレスでないときは、ステップ62で、アドレスに基づき出力処理か入力処理かを判断する。入力の場合は、ステップ63で受信RAM15Xに送信されたデータが書き込み中でないこと、すなわち、書込み状態信号φputの書込み終了を待ち、ステップ64で自己の受信RAM15Xからデータを読み出す。それと同時に読出し状態信号φbusyを読出しにして書込みを禁止し、読出しが終了すると読出し状態信号φbusyを終了状態にする。
【0054】
一方、ステップ62で出力の場合は、ステップ65で読出し状態信号φbusyが読出し終了になるのを待ち、ステップ66で出力データ(アドレスとデータおよびそれらアドレスとデータが有効である事を示すライトイネーブル信号)を転送先のVUPU10に送信する。それと共に、書込み状態信号φputを書き込み状態にして読み出しを禁止し、書込みが終了すると書込み状態信号φputを終了状態にする。このように、入出力のアドレスによりデータを通信先のVUPU10のデータRAM15Xにする制御方法を採用することにより、C言語レベルの記述でデータの入出力アドレスを管理あるいは制御することだけで複数のVUPU10の間でデータを簡単に交換することができる。
【0055】
図15に、PU−AからPU−Bの受信RAM15Xにデータを書き込む様子をタイミングチャートで示してある。サイクル1では、PU−Bの読出し状態信号φbusyがオンになっているので、転送データは有効にならず書き込まれない。さらに、通常、読出し状態信号φbusyがオフとなってから1サイクルあけて書込が行われる。このため、サイクル3に、PU−Aの書込み状態信号φputがオンとなり、転送データがアドレスA、データDおよびライトイネーブルWE込みで受信側のPU−Bの受信専用データRAM15Xに転送される。そして、書込み状態信号φputが出力されている間に有効なデータが送信されると、それが受信データRAM15Xに書き込まれる。この例では3サイクルと5サイクル目が有効データであることを示している。
【0056】
本発明のIVC機構においては、図14に示した処理を通信ユニット12のファームウェアやゲートロジックで実装することも可能であるが、データ転送のすべてをC言語レベルの記述で制御することが可能である。図16(a)は、送信側のPU−Aの転送手順をC言語のレベルで記述した例であり、図16(b)は、受信側のPU−Bの転送手順をC言語のレベルで記述した例である。PU−Aのプログラム71では、ステップ71aでコンフィグレーション・レジスタ13Rに送信スタートアドレスが指定される。ついでステップ71bで転送相手の受信RAMにデータを書込むための送信を開始する。この際、ステップ71cに示すように、送信先の読出し状態信号φbusyをチェックし、書込み状態信号φputをオンにする処理をファンクション・コールによりサブルーチン化しておくことができる。信号のチェックおよび設定が済むと、ステップ71dで、書き込むためのデータを送出する。そして、データの送出が終わるとステップ71eで終了処理を行うが、ステップ71fに示すように書込み状態信号φputをオフにする処理などをサブルーチン化しておくことができる。
【0057】
一方、PU−Bのプログラム72では、ステップ72aでコンフィグレーション・レジスタ14Rに受信スタートアドレスが指定される。ステップ72bで受信RAMに書込まれた送信元からのデータを読み出す処理を開始する。この際、ステップ72cに示すように、送信元の書込み状態信号φputをチェックし、読出し状態信号φbusyをオンにする処理をファンクション・コールによりサブルーチン化しておくことができる。信号のチェックおよび設定が済むと、ステップ72dで、転送されたデータを読出し、ステップ72eで読出し終了処理を行う。ここでも、ステップ72fに示すように読出し状態信号φbusyをオフにする処理などをサブルーチン化しておくことができる。書込み状態信号φputおよび読出し状態信号φbusyをオン状態にしたり、その状態を確認するのはレジスタ操作となる。このため、上記のように、ファンクション・コールによりサブルーチン化しておき、別途アセンブラによりレジスタ設定を行う方法が適している。
【0058】
このように、本発明のIVC機構による通信方法は、データの転送をすべてC言語のレベルの記述により操作できる。先に説明したように、C言語による仕様を複数のC言語によるプロセスに分解してVUPU化する設計手法により、C言語による仕様を並列処理および分散処理することができるシステムLSIを設計することが可能であり、この際、データのやりとりがC言語のレベルで直接記述できることにより、VUPU化するのが容易となる。したがって、本発明のIVC機構を採用することにより、C言語による仕様から、並列実行可能な複数の専用回路を備えたシステムLSIを設計および製造する期間を大幅に短縮でき、低コストで提供することができる。
【0059】
図17は、データを送信するPU−Aと、データを受信するPU−Bの間の状態情報伝達とそれを構成する信号線を示している。上記の例では、図17(a)に示すように、読取状態信号φbusyと、書込状態信号φputの各々の専用の信号線に情報を持たせている。このため、図17(b)に示すように、それらの状態信号に対応する読取状態提示専用信号線75と、書込状態提示専用信号線76が、データを転送する信号線77に加えて必要になる。
【0060】
これに対し、状態情報の伝達に、受信データRAM15Xを専用信号線に代わって使用する方法がある。上記の専用信号線を用いた方法では、アセンブラによるレジスタ操作を介してC言語のレベルから操作する必要があるのに対し、受信データRAM15Xを使用すると、データに意味を持たせるので、すべてC言語のレベルからデータ操作により転送処理を行うことができる。
【0061】
図18(a)に、送信側のPU−Aの転送手順をC言語のレベルで記述した例を示し、図18(b)は、受信側のPU−Bの転送手順をC言語のレベルで記述した例を示してある。PU−Aのプログラム71では、ステップ71aでコンフィグレーション・レジスタ13Rに送信スタートアドレスを指定すると共に、ステップ71gで、自己の受信RAM15Xのアドレスで、受信側、すなわち、送信先の読取状態信号φbusyが格納されるアドレスを指定する。送信先のPU−Bが受信RAM15Xを読み出している状態のときは、送信元の受信RAM15Xの読取状態信号φbusyが格納されるアドレスにフラグが立つ。したがって、転送相手の受信RAMにデータを書込むための送信を開始する際は、まず、ステップ71hで、自己の受信RAM15Xの読取状態信号φbusyが格納されるアドレスのデータを参照して送信先の状態をチェックする。ついで、ステップ71iで、送信先の受信RAM15Xの受信スタートアドレスにフラグを立てて書込みを開始したことを伝達する。すなわち、本例では、受信スタートアドレスのデータが書込み状態信号φputが格納されるアドレスとなっている。その後、ステップ71jで書き込むためのデータを送出し、ステップ71kで送信先の受信スタートアドレスにフラグをクリアするデータを送出し、書込みを終了する。
【0062】
一方、PU−Bのプログラム72では、ステップ72aでコンフィグレーション・レジスタ14Rに受信スタートアドレスが指定されると共に、ステップ72gで、送信元の受信RAM15Xの読取状態信号φbusyが格納されるアドレスが設定される。受信RAM15Xに書込まれた送信元からのデータを読み出す処理を開始する際は、まず、ステップ72hで、書込み状態信号φputが格納される受信スタートアドレスのデータをチェックし、次に、ステップ72iで、送信元の受信RAM15Xの読取状態信号φbusyが格納されるアドレスにデータを送ってフラグを立てる。その後、ステップ72jで転送されたデータを読取、ステップ72kで、送信元の受信RAM15Xの読取状態信号φbusyが格納されるアドレスにデータを送ってフラグを解除する。
【0063】
この方式では、双方のVUPU10の受信用データRAM15Xに情報を持たせることが前提となる。しかしながら、VUPU10の間で通信が行われるので、特に制約にはなることではない。一方、自己の受信用データRAM15Xに、相手方の状態が書き込まれているので、C言語レベルのデータを読み込む処理で相手側が読出状態、あるいは書込み状態の終了を確認できる。
【0064】
図19は、この方式でデータを送信するPU−Aと、データを受信するPU−Bの間の状態情報伝達とそれを構成する信号線を示している。本例の方式では、図19(a)に示した読取状態信号φbusyと書込状態信号φputの専用の信号線は不要である。したがって、図19(b)に示すように、データを転送する信号線77だけで通信チャネル35を構成することができ、データを転送するインターフェイスのみで手順の構築が可能となる。しかしながら、その手順はプログラム側にて記載せねばならず、例えば、データ転送の回数をシーケンス番号により表示し、転送漏れが無かったかどうかをプログラム側で判断する、といった操作が必要である。
【0065】
図20に、本発明のVUPUの他の例を示してある。このVUPU10Bは、図8に示した一般のプロセッサ32と通信する機能を備えたVU(COM)を備えているものである。本発明のVUPU10は、上述したIVC機構をVUPU間の通信方式として採用しているものであるが、既に広く使用されているプロセッサには独自のバスプロトコルまたは通信機構を搭載している場合も多く、これら既存プロセッサとVUPU10を通信させることにより、さらにフレキシブルなデータ処理システム30を構築できることは上述した通りである。すなわち、IVC機構により複数のVUPUを用いた分散処理システムを構築したとしても、その中でひとつは既存のプロセッサを使用したいというケースも多い。このような場合にでも本発明にかかるVUPUは有効である。
【0066】
図20に示したVUPU10BのVU(COM)1Bは、通信ユニット12と他のCPU32のバスとのインターフェイスを受け持つバスブリッジ機能26と、通信時のバッファとなるデュアルポートデータRAM25とを備えている。また、VUPU10Bにおいては、PU側とVU側との間でレジスタ転送によるVUPUインターフェイスがサポートされているので、PU2からVU1Bへのデータ転送はVUPUインターフェイスを利用できる。したがって、デュアルポートデータRAM25を他のCPU32への送信データRAMとして用いることにより、PU2の側から送信を行うことができる。受信はCPU32のシステムバスと通信ユニット12に受信インターフェイス14をバスブリッジすることにより受信専用データRAM15Xへ書込むことができる。
【0067】
この通信用のVU(COM)1Bを設けることにより、VUPU10Bでは、上述したIVC機能では、送信側は相手側のVUPUの受信RAMにデータを書き込むようになっているのに対し、自身の送信データRAM25にデータを書き込むことになり、実体のある送信データRAMを有するシステムとなる。したがって、IVC機能の多くのメリットのうち、データRAMの利用効率を向上できるメリットは得られない。しかしながら、既存のCPUと本発明による複数のVUPU10による分散システム30を構築することが可能となり、これらのタイプの異なるプロセッサが共存し、並列に各々の処理を実行可能となるメリットは大きい。
【0068】
上記では、本発明にかかるVUPU10の通信ユニット12がPUT型の場合を例に説明しているが、受信RAM15Xの代わりに送信RAM15Yを設けたGET型であっても上記と同様のIVC機能を実現できる。図21にGET型の通信ユニット12を備えたVUPU10をPU2を中心に示してある。
【0069】
GET型の場合は、VUPU10に送信専用のデータRAM15Yが設けられており、この送信専用のデータRAM15Yが通信相手の他のVUPU10においては受信専用のデータRAMとなる。通信ユニット12も、送信インターフェイス13と受信インターフェイス14とを備えており、各々の制御部13Cおよび14Cは、送受信の条件が設定されるコンフィグレーション・レジスタ13Rおよび14Rを備えている。したがって、基本的な構成および動作は上記で説明したPUT型とほぼ同じである。
【0070】
GET型の通信ユニット12の調停回路13Aは、送信専用のデータRAM15Yにデータを書き込む際に、書込み状態信号φbusyを書込み状態にして、自分のIDで他のVUPU10に送出して書き込み状態であることを通知する。一方、送信データRAM15Yからのデータの読出しは、通信先の各VUPU10からのリクエスト信号あるいは読出し状態信号φgetによる。調停回路13Aを有する送信制御部13Cは、リクエスト信号φgetが受け入れられ読出可能な状態となると、受信先のVUPU10のIDを加えた書込み状態信号φbusyを読出し可能な状態にして送出し、通信相手のVUPU10へ読出可能状態であることを通知する。これにより、通信相手のVUPU10の受信インターフェイス14では、アドレスを送出し、データを読み出す。したがって、PU2が通信先からデータを読み取る場合には、リクエスト信号φgetにより自分自身へのビジー信号φbusy(もちろん、レディ信号φreadyであっても良いが)を確認して、受信インターフェイス14に示されるアドレスに応じたデータが受信制御部14Cにより制御されるセレクタ16を通じてPU2に供給される。
【0071】
送信専用のデータRAM15Yも上述した受信専用のデータRAM15Xと同様にデュアルポートデータRAMにより構成することが可能である。この場合には送信しながら書込操作が可能となり、並列性が向上する。しかしながら、調停機能を設けない場合は、読出しと書込みのアドレスが同一の場合を考慮して、入力データDIを出力データDOにバイパスする論理回路が必要となる。
【0072】
図22に、GET型のIVC機構を実現する通信ユニット12の動作をフローチャートで纏めてある。実際に通信を開始する前に、送信用のコンフィグレーション・レジスタ13Rに、送信先のVUPUのID、送信RAM15Yの開始アドレス、受信するデータの開始アドレス(実体のない受信RAMに割り当てられたアドレス)などを設定し、受信用のコンフィグレーション・レジスタ14Rに、受信元となるVUPUのID、送信RAMの開始アドレス、受信されるデータの開始アドレス、などを設定する処理が行われる。これらのコンフィグレーション・レジスタ13Rおよび14Rの設定は、C言語のレベルであればインライン・アセンブル記述により設定できる。また、この処理をファンクションとしてサブルーチン化しておくことができる。
【0073】
そして、プログラムにしたがって入出力アドレスが出力されると、通信ユニット12においては、まず、ステップ81でデータの入出力アドレスを判断する。入出力データが通常のデータRAMに割り当てられたアドレスでないときは、ステップ82で、アドレスに基づき出力処理か入力処理かを判断する。出力の場合は、ステップ83で送信RAM15Yが読出し中でないこと、すなわち、読出し状態信号(リクエスト信号)φgetの読出し終了を待ち、ステップ84で自己の送信RAM15Yにデータを書き込む。それと同時に書込み状態信号φbusyを書込みにして読出しを禁止し、書込みが終了すると状態信号φbusyを終了状態にする。
【0074】
一方、ステップ82で入力の場合は、リクエスト信号φgetを送出し、ステップ85で状態信号φbusyが書込み終了になるのを待ち、ステップ86でデータを通信先のVUPU10から受領する。そして、読出しが終了すると、リクエスト信号φgetを終了状態にする。このように、GET型においても、入出力のアドレスによりデータを受信先のVUPU10のデータRAM15Yから取得する制御方法を採用することにより、Cレベルの記述でデータの入出力アドレスを管理あるいは制御することだけで複数のVUPU10の間でデータを簡単に交換することができる。そして、このような処理を通信ユニット12のファームウェアやゲートロジックで行っても良く、あるいはC言語のレベルで記述することも可能である。
【0075】
上述したPUT型の通信方法とGET型の通信方法は、どちらもC言語から直接データをアクセスできる点では同じであり、自己のVUPUのデータRAMにアクセスするのと同じ操作で他のVUPUのデータRAMにデータを書込・読出することによりデータ交換を行うことができる。PUT型の通信方法のVUPU10を採用したデータ処理システム30では、親のVUPU10pあるいは他のプロセッサが、共通のデータを複数の子のVUPU10cに転送し、子のVUPU10cは転送されたデータを頻繁にアクセスし、かつ加工し、処理を進める分散処理に適している。一方、GET型の通信方法のVUPU10を採用したデータ処理システム30は、親のVUPU10pあるいは他のプロセッサから子のVUPU10cに供給されるデータが少量であり、さらに、子のVUPU10cがデータをそれぞれ独立に参照しながら処理を進める分散処理に適している。
【0076】
さらに、目的に応じてPUT型とGET型を両立させたデータ処理システムを構築することも可能である。例えば、親のVUPU10pのデータを少量ずつ複数の子のVUPU10cが参照しながら各々分散処理を行い、その結果を親のVUPU10pに戻す処理が要求される場合がある。このような処理に対応したデータ処理システム30としては、GET型の通信方法で親のVUPU10pから子のVUPU10cにデータを転送し、PUT型の通信方法で子のVUPU10cから親のVUPU10pにデータを返却する方式が最もメモリ効率がよい。なぜなら、送信専用・受信専用データRAMを親のVUPU10pがひとつ持てばよいからである。また、ひとつの親のVUPU10pと複数の子のVUPU10cにより分散処理を行う構造のデータ処理システム30は、本発明にかかるVUPU10を用いた極めて基本的な構造であると考えられる。したがって、親のVUPU10pにのみ転送専用メモリを保有させて共有化を図るデータ処理システムは、本発明のVUPU10を用いた有効な分散処理の基本構造であるといえる。
【0077】
図23に、送信専用のデータRAM15Yと受信専用のデータRAM15Xを有するVUPU10pの構成例を示してある。このVUPU10pにおいては、通信ユニット12の送信インターフェイス13は上述したGET型の構成であり、送信専用のデータRAM15Yを制御し、子のVUPU10cのそれぞれからのリクエスト信号φgetに基づいてデータ転送を行う。受信インターフェイス14は、PUT型の構成であり、子のVUPU10cのそれぞれからの書込要求信号φputに基づいてデータの書込を行う。
【0078】
図23に示したVUPU10pの構成は、子のVUPUcの通信ユニット12が、出力アドレスが予め設定されたアドレスのときに親のVUPU10pにデータを送信する送信インターフェイスと、入力アドレスが予め設定されたアドレスのときに親のVUPU10pからデータを受信する受信インターフェイス手段とを備えている第1のPUT・GET型に対応したものである。したがって、IVC機構を構成するメモリ15Xおよび15Yがマスタである親のVUPU10pに集中する。このため、メモリのスペース効率の高いシステムとなる。
【0079】
図24に、送信専用のデータRAM15Yと受信専用のデータRAM15Xを有しないVUPU10pの構成例を示してある。また、このVUPU10pとそれに対応したVUPU10cとにより構成されたシステムの概要を図25に示してある。このVUPU10pの通信ユニット12の送信ユニット13は、出力アドレスが予め設定されたアドレスのときに子のVUPU10cへデータを送信し、受信ユニット14は、入力アドレスが予め設定されたアドレスのときに子のVUPU10cからデータを受信する。したがって、上述した第2のPUT・GET型のシステムであり、転送するデータを入出力する送信RAM15Yおよび受信RAM15Xが子のVUPU10cに分散するのでメモリを多数必要とする。しかしながら、各子供のVUPU10cでは独自に分散処理を進めることができるので、処理の独立性が高まる。さらに、本例では、送信インターフェイス13の送信制御部13Cを受信インターフェイス14の制御部としても兼用することにより、1つの送受信制御部により通信ユニット12を制御する簡易な構成となっている。
【0080】
なお、以上では、通常のデータRAM15N、受信専用のデータRAM15Xおよび送信専用のデータRAM15Yがそれぞれ独立している構成を例に説明しているが、同一のデータRAMの領域を割り振ることで対応することも可能である。しかしながら、受信専用および送信専用のデータRAMはデュアルポートRAMあるいは多ポートRAMを採用することによるメリットがあり、通信容量が小さくて良いデータ処理システムにおいては、受信専用あるいは送信専用のデータRAMを独立して設けることが望ましい。
【0081】
【発明の効果】
以上に説明したように、本発明においては、専用データ処理ユニット(VU)と汎用データ処理ユニット(PU)とを有するデータ処理装置(VUPU)において、PUに通信機能を持たせることにより、複数のVU、すなわち専用回路を並列に実行できるデータ処理システムを極めて短期間に、そして低コストで開発することができる。システムLSIとして与えられた仕様全体をハードウェア化する作業は膨大であり時間と経費の点から現在ではほとんど経済的に見合わないものとなっている。これに対し、本発明のVUPUは、システムLSIとして与えられた仕様の内、ハードウェア化するのに適した機能を適当な単位で抽出し、シミュレーションによって高速化などの効果が確認された機能だけをVUとしてハードウェア化することができる。したがって、ハードウェア化される範囲は限られたものとなり、容易に設計および開発でき、また費用も最小限で済む。その一方で、ハードウェア化したことによる効果は最大限にすることが可能である。それに加えて、ハードウェア化したVUを並列に実行することができるので、処理を複数のVUに分散することが可能となり、処理効率が高く処理速度の速く、さらに経済的なデータ処理システムを提供することが可能となる。
【0082】
さらに、本発明のVUPUは、繰り返し計算の多い処理などを機能単位で抽出してVUとして実現し高速処理を可能とすると共に、他の処理は汎用プロセッサであるPUで処理することによって、ハードウェア化に伴うコストアップや設計期間の長期化を抑制し、さらに、仕様変更や、開発のあらゆる段階の変更にも柔軟に対処できるというメリットも備えている。そして、プログラムレベルで制御できるPUに通信機能を設けることにより、プログラムレベルで並列処理の制御を行うことが可能となり、極めて柔軟な制御が可能となる。その結果、高級言語で記述された仕様に基づくシステムLSIを極めて短い期間で設計および開発できる。
【0083】
このようなVUPUを用いてデータ処理システムを構築することにより、ひとつのC言語などの高級言語で記述されたプロセスを分割して複数の処理プロセスにし、これらプロセス間のデータの転送と処理依頼、それに基づく処理結果の返却を設計するにはデータ転送に関してC言語あるいはJAVA(登録商標)言語などの高級言語との親和性が高く、かつハードウェアを意識しないでデータ転送の設計が進められる方式が不可欠となる。上述した本発明によれば、アドレスによって、通信先のVUPUの受信専用のデータRAMにデータを送信し、あるいは通信先のVUPUの送信専用のデータRAMからデータを取得することができる。このため、VUPU間の通信を、メモリへのアクセスと同じ方法にてC言語などから直接に行うことができ、極めて自由にデータ送受を行うことができる。このため、複数のC言語により記述されたプロセスが並列に動作するように設計することが極めて容易となる。
【0084】
このように、C言語あるいはその他の高級言語との連動性および対応性のあるデータ通信機構をハードウェア側に設けることにより、極めて容易に、高級言語のレベルでデータ転送が記述できる。その結果、高級言語により記述されたプロセスを複数に分割が容易となり、分散処理システムの設計が可能となる。したがって、本発明で開示した通信機構は、上述した複数のVUPUを用いた処理速度の速いデータ処理システムを構築するのに好適なものである。
【図面の簡単な説明】
【図1】本発明に係るPUおよびVUを備えたデータ処理装置(VUPU)の概要を示す図である。
【図2】C言語により記述されたプロセスを複数に分解する様子を示す図である。
【図3】本発明のデータ処理装置により分散処理するデータ処理システムを構築する例を示す図である。
【図4】図3に示したデータ処理システムの各VUPUの実行状態を例示する図である。
【図5】C言語で記述したプログラムが分散処理用に分解される様子を示す図である。
【図6】本発明のデータ処理装置により分散処理するデータ処理システムの異なる例を示す図である。
【図7】本発明のデータ処理装置により分散処理するデータ処理システムのさらに異なる例を示す図である。
【図8】本発明のデータ処理装置により分散処理するデータ処理システムのさらに異なる例を示す図である。
【図9】C言語で記述された機能をVUPU化する過程の概要を示す図である。
【図10】本発明の通信機能を有するVUPUの概略構成をPUの構成を中心に示す図である。
【図11】2つのVUPUで交信する際のメモリの使用状況を示す図である。
【図12】親のVUPUと複数の子のVUPUで交信するデータ処理システムの概要を示す図である。
【図13】図12に示すデータ処理システムの各PUのメモリマップを示す図である。
【図14】通信ユニットの処理の概要を示すフローチャートである。
【図15】受信RAMにデータを入出力するタイミングを示す図である。
【図16】通信ユニットの処理をC言語により制御するプログラム例を示す図である。
【図17】調停を行うための状態信号とそれに対応する信号線を示す図である。
【図18】状態信号を受信RAMに書き込む通信方式の処理をC言語により制御するプログラム例を示す図である。
【図19】状態信号を受信RAMに書き込む通信方式における状態信号と信号線とを示す図である。
【図20】本発明の通信機能を有するVUPUの概略構成をPUの構成を中心に示す図であり、他のCPUとの通信機能を備えたVU(COM)を有するVUPUの概要を示す図である。
【図21】本発明の通信機能を有するVUPUの概略構成をPUの構成を中心に示す図であり、GET型の通信機能を有するVUPUを示す図である。
【図22】図21に示すVUPUの通信ユニットの処理の概要を示すフローチャートである。
【図23】本発明の第1のPUT・GET型の通信機能を有するVUPUを示す図である。
【図24】本発明の第2のPUT・GET型の通信機能を有するVUPUを示す図である。
【図25】第2のPUT・GET型の通信機能を備えたVUPUを親として構成されたシステムの概要を示すブロック図である。
【符号の説明】
1 専用データ処理ユニットVU
2 汎用データ処理ユニットPU
3 汎用プロセッサPUX
4 コードRAM
4a 制御プログラム
5 フェッチユニットFU
10 データ処理装置(VUPU)
11 実行ユニット
12 通信ユニット
13 送信インターフェイス、14 受信インターフェイス
15N RD/WRデータRAM
15X 受信専用のデータRAM、15Y 送信専用のデータRAM

Claims (20)

  1. 複数のデータ処理装置を有するデータ処理システムであって、2以上の前記データ処理装置は、専用命令により実行される特定のデータ処理用のデータパス部を備えた少なくとも1つの専用データ処理ユニットと、汎用命令により汎用処理を実行可能な汎用データ処理ユニットと、前記専用命令および汎用命令を備えたプログラムに基づき、前記専用データ処理ユニットおよび汎用データ処理ユニットに命令を発行する命令発行ユニットと、前記プログラムを記憶するコードメモリと、前記汎用命令によりデータを入力または出力可能なデータメモリとを有する第1のタイプのデータ処理装置であり、
    少なくとも1つの前記第1のタイプのデータ処理装置の汎用データ処理ユニットは、他の第1のタイプのデータ処理装置の前記汎用データ処理ユニットとデータ転送経路を介してデータを交換可能な通信手段と、汎用レジスタとを備え、
    前記通信手段は、前記汎用レジスタを介して前記プログラムにより設定可能なコンフィグレーション・レジスタを含み、さらに、
    前記汎用命令に基づき入力するデータの入力アドレス前記コンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに前記他の第1のタイプのデータ処理装置に前記入力するデータを読み出すリクエスト信号を送出し、前記リクエスト信号により前記他の第1のタイプのデータ処理装置から前記データ転送経路を介して送信された前記他の第1のタイプのデータ処理装置に含まれたデータメモリの前記入力するデータを受信する手段、および、前記汎用命令に基づき出力するデータの出力アドレスが前記コンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに前記他の第1のタイプのデータ処理装置に含まれたデータメモリにデータを書き込む手段に対して前記データ転送経路を介して前記出力するデータを送信する手段の少なくともいずれかを含む、データ処理システム。
  2. 請求項1において、少なくとも1つの前記第1のタイプのデータ処理装置の少なくとも1つの前記専用データ処理ユニットは、第2のタイプの前記データ処理装置とデータを交換する機能を備えているデータ処理システム。
  3. 請求項1または2において、前記複数のデータ処理装置は、親のデータ処理装置、前記親のデータ処理装置と前記データ転送経路を介して通信する子のデータ処理装置となる前記第1のタイプのデータ処理装置とを含み、
    前記子のデータ処理装置の前記通信手段は前記送信する手段および前記受信する手段を含み、前記送信する手段は、前記出力アドレスが前記コンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに、前記親のデータ処理装置へ前記出力するデータを送信し、前記受信する手段は、前記入力アドレスが前記コンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに、前記親のデータ処理装置から前記入力するデータを受信するデータ処理システム。
  4. 請求項1または2において、前記複数のデータ処理装置は、親のデータ処理装置となる前記第1のタイプのデータ処理装置と、前記親のデータ処理装置と前記データ転送経路を介して通信する子のデータ処理装置を含み、
    前記親のデータ処理装置の前記通信手段は前記送信する手段および前記受信する手段を含み、前記送信する手段は、前記出力アドレスが前記コンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに、前記子のデータ処理装置へ前記出力するデータを送信し、前記受信する手段は、前記入力アドレスが前記コンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに、前記子のデータ処理装置から前記入力するデータを受信するデータ処理システム。
  5. 請求項1または2において、前記通信手段は、前記送信する手段を含み、さらに、前記他の第1のタイプのデータ処理装置の前記送信する手段から前記データ転送経路を介して前記出力するデータを受信すると前記データメモリの受信専用領域のアドレスにデータを記憶する手段を備えているデータ処理システム。
  6. 請求項において、前記通信手段は、前記受信専用領域が前記汎用データ処理ユニットにより読み出されているときは、前記データを記憶する手段の処理を延期し、前記データを記憶する手段の処理中は、前記汎用データ処理ユニットが前記受信専用領域からデータを読み出す処理を延期する調停手段を備えているデータ処理システム。
  7. 請求項1または2において、前記通信手段は、前記受信する手段を含み、さらに、前記他の第1のタイプのデータ処理装置の前記受信する手段から前記リクエスト信号を受信すると前記データメモリの送信専用領域のアドレスから前記データ転送経路を介して前記入力するデータを出力する手段を備えているデータ処理システム。
  8. 請求項において、前記通信手段は、前記送信専用領域が前記汎用データ処理ユニットにより書き込まれているときは、前記データを出力する手段の処理を延期し、前記データを出力する手段の処理中は、前記汎用データ処理ユニットが前記送信専用領域にデータを書き込む処理を延期する調停手段を備えているデータ処理システム。
  9. 請求項1ないしのいずれかにおいて、複数の前記第1のタイプのデータ処理装置の前記専用データ処理ユニットを含む、単一のデータの流れを処理するデータ処理系統が形成されているデータ処理システム。
  10. 請求項1ないしのいずれかにおいて、複数の前記第1のタイプのデータ処理装置の前記専用データ処理ユニットを含む、データの流れを処理する複数のデータ処理系統が形成されているデータ処理システム。
  11. 専用命令により実行される特定のデータ処理用のデータパス部を備えた少なくとも1つの専用データ処理ユニットと、
    汎用命令により汎用処理を実行可能な汎用データ処理ユニットと、
    前記専用命令および汎用命令を備えたプログラムに基づき、前記専用データ処理ユニットおよび汎用データ処理ユニットに命令を発行する命令発行ユニットと、
    前記プログラムを記憶するコードメモリと、
    前記汎用命令によりデータを入力または出力可能なデータメモリとを有するデータ処理装置であって、
    前記汎用データ処理ユニットは、他の前記データ処理装置の前記汎用データ処理ユニットとデータ転送経路を介してデータを交換可能な通信手段と、汎用レジスタとを備え、
    前記通信手段は、前記汎用レジスタを介して前記プログラムにより設定可能なコンフィグレーション・レジスタを含み、さらに、
    前記汎用命令に基づき入力するデータの入力アドレス前記コンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに、前記他のデータ処理装置に前記入力するデータを読み出すリクエスト信号を送出し、前記リクエスト信号により前記他のデータ処理装置から前記データ転送経路を介して送信された前記他のデータ処理装置に含まれたデータメモリの前記入力するデータを受信する手段、および、前記汎用命令に基づき出力するデータの出力アドレスが前記コンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに、前記他のデータ処理装置に含まれたデータメモリにデータを書き込む手段に対して前記データ転送経路を介して前記出力するデータを送信する手段の少なくともいずれかを含む、データ処理装置。
  12. 請求項11において、前記通信手段は、前記送信する手段を含み、さらに、前記他のデータ処理装置の前記送信する手段から前記データ転送経路を介して前記出力するデータを受信すると前記データメモリの受信専用領域のアドレスにデータを記憶する手段を備えているデータ処理装置。
  13. 請求項12において、前記通信手段は、前記受信専用領域が前記汎用データ処理ユニットにより読み出されているときは、前記データを記憶する手段の処理を延期し、前記データを記憶する手段の処理中は、前記汎用データ処理ユニットが前記受信専用領域からデータを読み出す処理を延期する調停手段を備えているデータ処理装置。
  14. 請求項11において、前記通信手段は、前記受信する手段を含み、さらに、前記他のデータ処理装置の前記受信する手段から前記リクエスト信号を受信すると前記データメモリの送信専用領域のアドレスから前記データ転送経路を介して前記入力するデータを出力する手段を備えているデータ処理装置。
  15. 請求項14において、前記通信手段は、前記送信専用領域が前記汎用データ処理ユニットにより書き込まれているときは、前記データを出力する手段の処理を延期し、前記データを出力する手段の処理中は、前記汎用データ処理ユニットが前記送信専用領域にデータを書き込む処理を延期する調停手段を備えているデータ処理装置。
  16. 専用命令により実行される特定のデータ処理用のデータパス部を備えた少なくとも1つの専用データ処理ユニットと、汎用命令により汎用処理を実行可能な汎用データ処理ユニットと、前記専用命令および汎用命令を備えたプログラムに基づき、前記専用データ処理ユニットおよび汎用データ処理ユニットに命令を発行する命令発行ユニットと、前記プログラムを記憶するコードメモリと、前記汎用命令によりデータを入力または出力可能なデータメモリとを有するデータ処理装置であって、前記汎用データ処理ユニットが、他のデータ処理装置の前記汎用データ処理ユニットとデータ転送経路を介してデータを交換可能な通信手段と、汎用レジスタとを含む、データ処理装置の制御方法であって、
    前記汎用レジスタを介して前記プログラムにより、前記通信手段に含まれるコンフィグレーション・レジスタを設定する工程を有し、さらに、
    前記汎用命令に基づき入力するデータの入力アドレス前記コンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに、前記他のデータ処理装置に前記入力するデータを読み出すリクエスト信号を送出し、前記リクエスト信号により前記他のデータ処理装置から前記データ転送経路を介して送信された前記他のデータ処理装置に含まれたデータメモリの前記入力するデータを受信する工程、および前記汎用命令に基づき出力するデータの出力アドレスが前記コンフィグレーション・レジスタに予め設定されたアドレスの範囲のときに前記他のデータ処理装置に含まれたデータメモリにデータを書き込む手段に対して前記データ転送経路を介して前記出力するデータを送信する工程の少なくともいずれかを含む通信工程を有するデータ処理装置の制御方法。
  17. 請求項16において、前記通信工程は、前記送信する工程を含み、さらに、前記他のデータ処理装置の前記送信する工程により送信された前記出力するデータを受信すると前記データメモリの受信専用領域のアドレスにデータを記憶する工程を備えているデータ処理装置の制御方法。
  18. 請求項17において、前記通信工程は、前記受信専用領域が前記汎用データ処理ユニットにより読み出されているときは、前記データを記憶する工程を延期し、前記データを記憶する工程中は、前記汎用データ処理ユニットが前記受信専用領域からデータを読み出す処理を延期することを含む、データ処理装置の制御方法。
  19. 請求項16において、前記通信工程は、前記受信する工程を含み、さらに、前記他のデータ処理装置の前記受信する工程により送信された前記リクエスト信号を受信すると前記データメモリの送信専用領域のアドレスから前記データ転送経路を介して前記入力するデータを出力する工程を備えているデータ処理装置の制御方法。
  20. 請求項19において、前記通信工程は、前記送信専用領域が前記汎用データ処理ユニットにより書き込まれているときは、前記データを出力する工程を延期し、前記データを出力する工程中は、前記汎用データ処理ユニットが前記送信専用領域にデータを書き込む処理を延期することを含む、データ処理装置の制御方法。
JP2001294546A 2001-01-31 2001-09-26 データ処理システム、データ処理装置およびその制御方法 Expired - Fee Related JP4783527B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001294546A JP4783527B2 (ja) 2001-01-31 2001-09-26 データ処理システム、データ処理装置およびその制御方法
US10/053,737 US7165166B2 (en) 2001-01-31 2002-01-24 Data processing system, data processing apparatus and control method for a data processing apparatus
GB0201997A GB2374692B (en) 2001-01-31 2002-01-29 Data processing system data processing apparatus and control method for a data processing apparatus

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2001024513 2001-01-31
JP2001-24513 2001-01-31
JP2001024513 2001-01-31
JP2001294546A JP4783527B2 (ja) 2001-01-31 2001-09-26 データ処理システム、データ処理装置およびその制御方法

Publications (3)

Publication Number Publication Date
JP2002304382A JP2002304382A (ja) 2002-10-18
JP2002304382A5 JP2002304382A5 (ja) 2008-11-13
JP4783527B2 true JP4783527B2 (ja) 2011-09-28

Family

ID=26608698

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001294546A Expired - Fee Related JP4783527B2 (ja) 2001-01-31 2001-09-26 データ処理システム、データ処理装置およびその制御方法

Country Status (3)

Country Link
US (1) US7165166B2 (ja)
JP (1) JP4783527B2 (ja)
GB (1) GB2374692B (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4651790B2 (ja) * 2000-08-29 2011-03-16 株式会社ガイア・システム・ソリューション データ処理装置
US20020152061A1 (en) * 2001-04-06 2002-10-17 Shintaro Shimogori Data processing system and design system
JP4865960B2 (ja) * 2001-06-25 2012-02-01 株式会社ガイア・システム・ソリューション データ処理装置およびその制御方法
JP5372307B2 (ja) * 2001-06-25 2013-12-18 株式会社ガイア・システム・ソリューション データ処理装置およびその制御方法
JP2003005958A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
US6993674B2 (en) * 2001-12-27 2006-01-31 Pacific Design, Inc. System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
US20030163674A1 (en) * 2002-02-26 2003-08-28 Mitsumasa Yoshimura Data processing apparatus, processor unit and debugging unit
US20060015314A1 (en) * 2004-06-30 2006-01-19 International Business Machines Corporation Methods, systems and program products for annotating system traces with control program information and presenting annotated system traces
JP5046353B2 (ja) * 2005-06-14 2012-10-10 株式会社オートネットワーク技術研究所 車載通信用アダプタ
JP5044822B2 (ja) * 2008-05-02 2012-10-10 インターナショナル・ビジネス・マシーンズ・コーポレーション データをテープ媒体に書き込む装置及び方法
US7941644B2 (en) * 2008-10-16 2011-05-10 International Business Machines Corporation Simultaneous multi-thread instructions issue to execution units while substitute injecting sequence of instructions for long latency sequencer instruction via multiplexer
US8803897B2 (en) * 2009-09-03 2014-08-12 Advanced Micro Devices, Inc. Internal, processing-unit memory for general-purpose use
US20120203647A1 (en) * 2011-02-09 2012-08-09 Metrologic Instruments, Inc. Method of and system for uniquely responding to code data captured from products so as to alert the product handler to carry out exception handling procedures
JP6678093B2 (ja) * 2016-11-04 2020-04-08 株式会社日立製作所 データ共有システム、データ共有方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4395758A (en) 1979-12-10 1983-07-26 Digital Equipment Corporation Accelerator processor for a data processing system
DE3300699C2 (de) 1983-01-11 1985-12-19 Nixdorf Computer Ag, 4790 Paderborn Schaltungsanordnung zum Adressieren der jeweils ein Adreßvolumen aufweisenden Speicher mehrerer datenverarbeitender Einrichtungen in einem Mehrprozessorsystem mit Systembus
EP0174231B1 (en) 1984-08-02 1990-11-14 Telemecanique Programmable controller ("pc") with co-processing architecture
US4648034A (en) 1984-08-27 1987-03-03 Zilog, Inc. Busy signal interface between master and slave processors in a computer system
JP2564805B2 (ja) 1985-08-08 1996-12-18 日本電気株式会社 情報処理装置
US5870602A (en) 1987-11-03 1999-02-09 Compaq Computer Corporation Multi-processor system with system wide reset and partial system reset capabilities
GB2225881A (en) 1988-12-06 1990-06-13 Flare Technology Limited Co-processor intrude mechanism
GB2230119B (en) 1989-04-07 1993-04-21 Intel Corp Conditional execution speed-up on synchronizing instructions
GB2232514B (en) 1989-04-24 1993-09-01 Yokogawa Electric Corp Programmable controller
EP0442041A3 (en) * 1990-01-18 1991-09-04 National Semiconductor Corporation Integrated digital signal processor/general purpose cpu with shared internal memory
US5450553A (en) 1990-06-15 1995-09-12 Kabushiki Kaisha Toshiba Digital signal processor including address generation by execute/stop instruction designated
US5430850A (en) 1991-07-22 1995-07-04 Massachusetts Institute Of Technology Data processing system with synchronization coprocessor for multiple threads
DE69228980T2 (de) 1991-12-06 1999-12-02 Nat Semiconductor Corp Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul
JP3369558B2 (ja) * 1992-01-31 2003-01-20 エフ・ホフマン−ラ ロシユ アーゲー 燐化合物
JPH06103068A (ja) 1992-09-18 1994-04-15 Toyota Motor Corp データ処理装置
IT1260848B (it) 1993-06-11 1996-04-23 Finmeccanica Spa Sistema a multiprocessore
US5740404A (en) * 1993-09-27 1998-04-14 Hitachi America Limited Digital signal processor with on-chip select decoder and wait state generator
US5495588A (en) 1993-11-18 1996-02-27 Allen-Bradley Company, Inc. Programmable controller having joined relay language processor and general purpose processor
EP0739517B1 (en) 1994-01-10 2000-08-16 The Dow Chemical Company A massively miltiplexed superscalar harvard architecture computer
EP0671685B1 (en) 1994-03-08 1998-11-04 Digital Equipment Corporation Method and apparatus for detecting and executing cross-domain calls in a computer system
JP3180175B2 (ja) 1995-02-13 2001-06-25 株式会社日立製作所 命令レベルの並列処理制御方法およびプロセッサ
US6085314A (en) * 1996-03-18 2000-07-04 Advnced Micro Devices, Inc. Central processing unit including APX and DSP cores and including selectable APX and DSP execution modes
US5911082A (en) * 1997-02-25 1999-06-08 Audio Digitalimaging Inc. Parallel processing building block chip
US6055373A (en) * 1997-04-28 2000-04-25 Ncr Corporation Computer system including a digital signal processor and conventional central processing unit having equal and uniform access to computer system resources
US5903744A (en) 1997-05-15 1999-05-11 Logic Express System, Inc. Logic emulator using a disposable wire-wrap interconnect board with an FPGA emulation board
WO2000000903A1 (fr) * 1998-06-30 2000-01-06 Mitsubishi Denki Kabushiki Kaisha Processeur central multiple
JP2000112585A (ja) 1998-10-02 2000-04-21 Toshiba Corp システムlsi及びパワーマネジメント方法
JP2000207202A (ja) * 1998-10-29 2000-07-28 Pacific Design Kk 制御装置およびデ―タ処理装置
US6301650B1 (en) 1998-10-29 2001-10-09 Pacific Design, Inc. Control unit and data processing system
US7793076B1 (en) 1999-12-17 2010-09-07 Intel Corporation Digital signals processor having a plurality of independent dedicated processors

Also Published As

Publication number Publication date
GB2374692B (en) 2005-08-17
JP2002304382A (ja) 2002-10-18
US7165166B2 (en) 2007-01-16
US20020103986A1 (en) 2002-08-01
GB2374692A (en) 2002-10-23
GB0201997D0 (en) 2002-03-13

Similar Documents

Publication Publication Date Title
JP4783527B2 (ja) データ処理システム、データ処理装置およびその制御方法
US9442872B2 (en) Methods and apparatus for providing bit-reversal and multicast functions utilizing DMA controller
US20070250682A1 (en) Method and apparatus for operating a computer processor array
US7313641B2 (en) Inter-processor communication system for communication between processors
WO2017120270A1 (en) Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications
CN109308283B (zh) 一种SoC片上系统及其外设总线切换方法
US6347294B1 (en) Upgradeable highly integrated embedded CPU system
JP2009238252A (ja) データドリブン型アーキテクチャメッシュアレイ中のメモリアクセスデバイス制御
JPH10289192A (ja) コプロセッサ内蔵パケット型メモリlsi及びパケット型メモリ/コプロセッサバスとそれらの制御方法
CN101510185A (zh) 一种高速总线向低速总线写入、读取数据的方法和装置
US7007111B2 (en) DMA port sharing bandwidth balancing logic
Dehyadegari et al. Architecture support for tightly-coupled multi-core clusters with shared-memory HW accelerators
US6948049B2 (en) Data processing system and control method
TW594482B (en) Information processing apparatus with open architectures
WO2011030498A1 (ja) データ処理装置及びデータ処理方法
Tohara A new kind of processor interface for a system-on-chip processor with TIE ports and TIE queues of Xtensa LX
Schaumont et al. On-Chip Busses
JPS62266646A (ja) デ−タ転送方式
JP2001092792A (ja) データ処理装置
Liao et al. A Design of High Performance Parallel Architecture and Communication for Multi-ASIP Based Image Processing Engine
Ziouva et al. A PCI-bus based ASN. l Accelerator
JPH02132575A (ja) 並列計算機,ベクトルレジスタ間データフロー同期装置およびネットワークプリセット装置
JPH0553860A (ja) データ処理装置
JPH01177667A (ja) マルチプロセッサ間データ転送方式
KR20110028201A (ko) 멀티코어 플랫폼을 위한 스위칭 장치

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080305

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080618

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080925

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080925

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100423

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110530

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: 20110623

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110711

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

Free format text: PAYMENT UNTIL: 20140715

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S802 Written request for registration of partial abandonment of right

Free format text: JAPANESE INTERMEDIATE CODE: R311802

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees