JP2002542524A - Object-oriented processor array - Google Patents

Object-oriented processor array

Info

Publication number
JP2002542524A
JP2002542524A JP2000527869A JP2000527869A JP2002542524A JP 2002542524 A JP2002542524 A JP 2002542524A JP 2000527869 A JP2000527869 A JP 2000527869A JP 2000527869 A JP2000527869 A JP 2000527869A JP 2002542524 A JP2002542524 A JP 2002542524A
Authority
JP
Japan
Prior art keywords
processor
oriented
message
data
functional
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
JP2000527869A
Other languages
Japanese (ja)
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
Priority claimed from US09/003,684 external-priority patent/US6567837B1/en
Priority claimed from US09/003,993 external-priority patent/US6615279B1/en
Priority claimed from US09/004,174 external-priority patent/US6052729A/en
Application filed by アイ・キュー・システムズ・インコーポレーテッド filed Critical アイ・キュー・システムズ・インコーポレーテッド
Publication of JP2002542524A publication Critical patent/JP2002542524A/en
Pending legal-status Critical Current

Links

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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 オブジェクト指向プロセッサ・アレイは、システム・オブジェクトを介して指令によりインスタンス化されかつ高レベル言語を介して通信する機能的オブジェクトのライブラリを含む。オブジェクト指向プロセッサ・アレイは、ハードウエア、ソフトウエア、又はハードウエア及びソフトウエアの組合わせで具体化され得る。各機能的オブジェクトは、別々のハードウエア・プロセッサを含み得て、又は単一のプロセッサの動作内の仮想プロセッサとして具体化され得る。一実施形態において、オブジェクト指向プロセッサ・アレイは、単一のチップ上に、又は単一のプロセッサ・チップ及び関連のメモリ・チップ上に形成される。幾つかのオブジェクトが単一のチップ上にインスタンス化されるとき、ピンは、各オブジェクトに対して高レベル指令言語を介して割り当てられる。メモリをインスタンス化されたオブジェクトに割り当てる方法及び装置が開示され、インスタンス化されたオブジェクトがスクリプト・サーバと直接通信し、そのスクリプト・サーバは、インスタンス化されたオブジェクトにより発生されたデータ・イベントに対して反応するようプログラムされている。1つのスクリプト・サーバは、幾つかのオブジェクト指向プロセッサ・アレイにサービスのため働き得て、又はオブジェクト指向プロセッサ・アレイは、ローカル・スクリプト・サーバを持ち得る。幾つかの仮想プロセッサが単一のマイクロプロセッサの動作内で具現化されるときをスケジューリングする方法及び装置も開示される。本発明に従って、通信は「イベント反応」モデルに基づいており、そこにおいてプロセッサ・オブジェクトが送るべきメッセージを持つとき、「イベント反応」モデルはメッセージの目標受信者(通常ホスト)により登録されるデータ・イベントを発生する。その目標は、データ・イベントの肯定応答の前にプロセッサ・オブジェクトと目標との間で可変量のI/O交換を可能にすることによりそのイベントに反応する。一実施形態において、データ・イベントが肯定応答されるまで、他のデータ・イベントは目標に送られない。別の実施形態において、固定数のデータ・イベントが同時に保留状態にあり得る。 (57) Abstract An object-oriented processor array includes a library of functional objects that are instantiated by command through system objects and communicate through a high-level language. An object-oriented processor array may be embodied in hardware, software, or a combination of hardware and software. Each functional object may include a separate hardware processor or may be embodied as a virtual processor within the operation of a single processor. In one embodiment, the object-oriented processor array is formed on a single chip or on a single processor chip and associated memory chips. When several objects are instantiated on a single chip, pins are assigned to each object via a high-level command language. A method and apparatus for allocating memory to an instantiated object is disclosed, wherein the instantiated object communicates directly with a script server, the script server responding to data events generated by the instantiated object. It is programmed to respond. One script server may serve several object-oriented processor arrays to service, or an object-oriented processor array may have a local script server. A method and apparatus for scheduling when several virtual processors are embodied within the operation of a single microprocessor is also disclosed. In accordance with the present invention, communication is based on an "event response" model, in which when a processor object has a message to send, the "event response" model is a data register registered by the target recipient (usually the host) of the message. Raise an event. The target responds to the data event by allowing a variable amount of I / O exchange between the processor object and the target before acknowledging the event. In one embodiment, no other data events are sent to the target until the data event is acknowledged. In another embodiment, a fixed number of data events may be pending at the same time.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】 発明の背景 1.発明の分野 本発明は、オブジェクト指向プロセッサ及びプロセッサ・システムに関する。
詳細には、本発明は、プロセッサ・オブジェクトのアレイを実行するため選択可
能なプロセッサ・オブジェクトのライブラリを利用するオブジェクト指向プロセ
ッサ又はプロセッサ・システムに関する。次のことは限定にはならないが、プロ
セッサ又はプロセッサ・システムは、プロセッサ・オブジェクトが仮想的にいず
れの組合わせで自己インスタンス化されるように配列されるのが好ましく、そし
てプロセッサ又はプロセッサ・システムは、イベント反応通信プロトコルを利用
するのが好ましく、そのイベント反応通信プロトコルを介してプロセッサ・オブ
ジェクトは通信し、そしてそのイベント反応通信プロトコルは高レベルのスクリ
プトする言語により制御される。
BACKGROUND OF THE INVENTION FIELD OF THE INVENTION The present invention relates to object-oriented processors and processor systems.
In particular, the present invention relates to an object-oriented processor or processor system that utilizes a library of selectable processor objects to execute an array of processor objects. Preferably, but not limited to, the processor or processor system is arranged such that the processor objects are self-instantiated in virtually any combination, and the processor or processor system is Preferably, an event-reactive communication protocol is utilized, over which the processor objects communicate, and the event-reactive communication protocol is controlled by a high-level scripting language.

【0002】 2.技術状態 現代のコンピュータは、マイクロプロセッサに周期的に割り込んで幾つかのソ
フトウエア・スレッドを代わる代わる実行することにより多くの動作の同時実行
を見たところ可能にする。例えば、ユーザがキーボードをタイプするにつれ、こ
の周辺装置からマイクロプロセッサへの入力は、マイクロプロセッサによりビデ
オ・ディスプレイ周辺装置上に見たところ同時に表示される。実際には、マイク
ロプロセッサは、入力をキーボードから得るため出力をビデオ・ディスプレイ上
に表示することから周期的に割り込まれる。それは、マイクロプロセッサが同時
性の錯覚が存在する非常な高速度で動作するからだけである。より複雑な処理シ
ステムにおいては、いつでもマイクロプロセッサの注意を求めて競争している多
くのスレッドがある。例えば、デスクトップ・マルチメディア・コンピュータに
おいて、幾つかの周辺装置は、適切な結果を生成するため見かけ上同時のように
マイクロプロセッサにより制御されねばならず、そしてビデオの表示及びオーデ
ィオの再生のような異なる動作が別個のスレッドにより処理されねばならない。
そのような多くのスレッドを有するシステムにおけるプログラミング環境は、非
常に複雑である。システム・ソフトウエアは、各スレッドに対するマイクロプロ
セッサの注意をスケジュールし、優先度を各スレッドに対して割り当て、そして
周辺装置がマイクロプロセッサに適切な時間に割り込むのを可能にするよう書き
込まれねばならない。次いで、システム・ソフトウエアは、種々の周辺装置から
の割込みに応答してマイクロプロセッサのためタスクをスケジュールしなければ
ならない。
[0002] 2. 2. State of the Art Modern computers allow the simultaneous execution of many operations to be seen by periodically interrupting the microprocessor and executing several software threads in turn. For example, as the user types the keyboard, input from this peripheral to the microprocessor is simultaneously displayed as it appears on the video display peripheral by the microprocessor. In effect, the microprocessor is periodically interrupted from displaying output on a video display to obtain input from a keyboard. It is only because the microprocessor operates at a very high speed where there is an illusion of synchronization. In more complex processing systems, there are many threads competing for microprocessor attention at all times. For example, in a desktop multimedia computer, some peripherals must be controlled by a microprocessor, seemingly simultaneously, to produce appropriate results, and to display video and play audio. Different operations must be handled by separate threads.
The programming environment in such a system with many threads is very complex. System software must be written to schedule the microprocessor's attention to each thread, assign a priority to each thread, and allow the peripheral to interrupt the microprocessor at the appropriate time. The system software must then schedule tasks for the microprocessor in response to interrupts from various peripherals.

【0003】 スケジュール問題に加えて、マルチタスクする(マルチスレッドされた)シス
テムにおけるソフトウエアはデバッグするのが難しい。異なるスレッドは他のス
レッドの結果に依存するので、単一のステッピング技術を用いることができなく
、そして単一のスレッドのみが単一のステッピング中に動作状態にあることがで
きる。
[0003] In addition to scheduling issues, software in multitasking (multithreaded) systems is difficult to debug. Since different threads depend on the results of other threads, a single stepping technique cannot be used, and only a single thread can be active during a single stepping.

【0004】 マイクロプロセッサによる割込みの処理は、一部はバス・プロトコルにより、
また一部はマイクロプロセッサ自身の設計により決定される。通常、バスは、特
定のマイクロプロセッサ又は特定の群のマイクロプロセッサと働くよう設計され
、そして周辺装置は、特定のバスと働くよう設計される。更に、各マイクロプロ
セッサ−バス・システムは、割込みを異なる方法で処理する。これは、不可能で
はないが、1つのマイクロプロセッサ−バス・システムで用いられているプログ
ラム・コードを別のマイクロプロセッサ−バス・システムでの使用に適応させる
ことを難しくする。
[0004] The processing of interrupts by the microprocessor is partially based on a bus protocol.
Some are determined by the design of the microprocessor itself. Typically, a bus is designed to work with a particular microprocessor or a particular group of microprocessors, and peripherals are designed to work with a particular bus. Further, each microprocessor-bus system handles interrupts differently. This makes it difficult, if not impossible, to adapt the program code used in one microprocessor-bus system for use in another microprocessor-bus system.

【0005】 ホスト・コンピュータが全てのタスクを実行することから解放するため、マル
チプロセッサ・システムが提案されてきた。幾つかのマルチプロセッサ・システ
ムは、タスクがうまく定義されたときタスクをプロセッサ間に首尾よく分けてい
る。例えば、信号とデータをリアルタイムで扱うシステムにおいてタスクをデー
タ・プロセッサと信号プロセッサとの間で分けることはまれなことではない。デ
ータ処理タスクを幾つかのデータ・プロセッサの間で分けることは一層難しい。
オペレーティング・システムは、どのタスクがどのプロセッサにより実行される
かを決定しなければならず、そしてオペレーティング・システムは、プロセッサ
が新しいタスクを待ちながら又は必要とされる結果を供給するようにタスクを完
了するため他のプロセッサを待ちながらアイドル状態のままでないように、タス
クをスケジュールしなければならない。その結果、汎用マルチプロセッサ・シス
テムの開発は殆ど成功せず、マルチプロセッサ・システムをプログラミングする
標準プログラミング言語は存在していない。
To relieve the host computer from performing all tasks, multiprocessor systems have been proposed. Some multiprocessor systems have successfully split a task between processors when the task is well defined. For example, it is not uncommon to divide tasks between a data processor and a signal processor in a system that handles signals and data in real time. Dividing the data processing task between several data processors is more difficult.
The operating system must determine which tasks will be performed by which processor, and the operating system will complete the tasks while the processor is waiting for a new task or providing the required results. Tasks must be scheduled so that they do not remain idle waiting for other processors to do so. As a result, the development of general purpose multiprocessor systems has been largely unsuccessful, and there is no standard programming language for programming multiprocessor systems.

【0006】 フジタ他への米国特許No.5,095,522は、「コンセプト(概念)・
オブジェクト」と「インスタンス・オブジェクト」を利用するオブジェクト指向
並列処理システムを開示している。そのシステムは、ホスト・プロセッサ、及び
ホスト・プロセッサによりプログラムされる複数の汎用プロセッサを利用する。
ホスト・ユーザは、並列処理が始まる前に各プロセッサに対してプログラムし(
コンセプト・オブジェクト及びインスタンス・オブジェクトを発生し)なけらば
ならない。フジタ他は、これらのシステムのこの局面を、各プロセッサの機能性
の動的変化を可能にする特徴であると考えている。しかしながら、これらのシス
テムのこの局面は、ホスト・プロセッサのソフトウエアを非常に複雑にする。
[0006] US Pat. 5,095,522 is "Concept (concept).
An object-oriented parallel processing system using "objects" and "instance objects" is disclosed. The system utilizes a host processor and a plurality of general-purpose processors programmed by the host processor.
The host user programs each processor before parallel processing begins (
Concept and instance objects must be generated). Fujita et al. Consider this aspect of these systems to be a feature that allows for dynamic changes in the functionality of each processor. However, this aspect of these systems greatly complicates the host processor software.

【0007】 同様に、Simorへの米国特許No.5,165,018は、「ノード」に
包括的構成規則が設けられかつ実行時に制御ノードからの資源定義メッセージを
介して構成されるシステムを記述する。Simorは、彼のシステムのこの局面
を、とりわけ、「ハードウエアをソフトウエアから分離し」かつ「あたかもプロ
グラムが単一のプロセッサで実行されようとするようにプログラムを書くのを可
能にする」利点であると考えている。更に、Simonのシステムは、プログラ
ムを、「その目的のため明示的に設計されたことなしに、複数のプロセッサにま
たがって分散する」のを可能にする。
[0007] Similarly, US Pat. No. 5,165,018 describes a system in which "nodes" have generic configuration rules and are configured at runtime via resource definition messages from control nodes. Simor takes advantage of this aspect of his system, inter alia, by "separating the hardware from the software" and "allowing the program to be written as if the program were to be executed on a single processor." I believe. Further, Simon's system allows a program to be "spread across multiple processors without being explicitly designed for that purpose."

【0008】 フジタ他及びSimorの双方は、汎用プロセッサを利用し、ハードウエアを
ソフトウエアから分離するように試み、あたかもコードが単一のプロセッサで実
行されているようにプログラマがコードを書くことから解放する。しかしながら
、前述したように、マルチスレッドされたコードを単一のマイクロプロセッサに
対して書き込むことは気力を失わせる作業である。フジタ他もSimorもこの
問題に対するいずれの解決を提案していない。
[0008] Fujita et al. And Simor both use general-purpose processors and attempt to separate hardware from software, with programmers writing code as if the code were running on a single processor. release. However, as noted above, writing multi-threaded code to a single microprocessor is a daunting task. Neither Fujita nor Simor propose any solution to this problem.

【0009】 3.関連発明 関連出願Serial No.08/525,948は、フジタ他又はSim
orのいずれのそれとは完全に異なる要領で分散処理の問題に取り組んでいる。
関連出願Serial No.08/525,948に開示されたシステムは、
特定の目的のための機能性を用いて事前プログラムされ、それによりハードウエ
アをソフトウエアと統合化するプロセッサを利用する。開発者は、特定のソフト
ウエア・オブジェクトを選定するのと似た要領で特定のハードウエア(オブジェ
クト指向プロセッサ)を選定する。このアプローチは、開発者がシステムに用い
られるハードウエアを非常に熟知することを必要とするが、しかし開発者がシス
テムを実行するため用いられる大部分のコードを書くことから解放する。従って
、開発者は、特定のタスクを実行するため静的に記憶されたコードを含む事前プ
ログラムされたオブジェクト指向プロセッサをリンクするため最少量の比較的高
レベル・コードを書くことのみを必要とする。このアプローチは、コードを書き
込みかつデバッグすることが事前書き込みされバグのないコードを含むプロセッ
サを一緒にリンクするより多くの時間を消費しかつよりコストが高いという考え
に基づいている。このアプローチは、迅速なシステム開発を可能にし、ホスト・
プロセッサから多くのスケジューリング・タスクを解放し、デバッグを単純化し
、クロス−プラットフォーム支援(cross−platform suppo
rt)を可能にし、ハードウエア装置のソフトウエア・エミュレーションを可能
にし、並びに他の利点を与える。
[0009] 3. Related Invention Related Application Serial No. 08 / 525,948 is Fujita et al. Or Sim
It addresses the problem of distributed processing in a completely different way to either or.
Related application Serial No. No. 08 / 525,948 discloses a system comprising:
It utilizes a processor that is pre-programmed with specific purpose functionality, thereby integrating hardware with software. The developer selects specific hardware (an object-oriented processor) in a manner similar to selecting a specific software object. This approach requires the developer to be very familiar with the hardware used in the system, but relieves the developer from writing most of the code used to run the system. Thus, developers only need to write a minimal amount of relatively high-level code to link pre-programmed object-oriented processors containing statically stored code to perform specific tasks. . This approach is based on the idea that writing and debugging code consumes more time and is more costly linking together processors containing pre-written, bug-free code. This approach allows for rapid system development,
Releases many scheduling tasks from the processor, simplifies debugging, and provides cross-platform support.
rt), enables software emulation of hardware devices, and provides other advantages.

【0010】 関連出願Serial No.08/525,948に従って、オブジェクト
指向プロセッサは、相互に及び/又はホスト・プロセッサと高レベル・メッセー
ジの交換を介して通信する。通信プロトコルの最も早い実行は、ホストが、少な
くとも一部のオブジェクト指向プロセッサ(即ち、入力データを処理することを
担当するもの)をポーリングしてデータの可用性を決定することを必要とした。
これは、ホスト・コードが全てのあり得る入力ソースを頻繁に走査する要領で書
き込まれねばならなかったので、単純コーディングの目的を損ねることが結局分
かった。結局、このポーリングは望ましくないオーバヘッド及びコーディングの
複雑化を生じると判断された。多くの最初に開発されたオブジェクト指向プロセ
ッサはリアルタイムで動作したので、ポーリング走査速度は高く、従ってオーバ
ヘッドは相当であった。更に、初期の通信プロトコルは、データのソースについ
ての情報を与えなかった。これは、その代わり、ホストによる特定の情報要求に
より導出された。従って、幾つかのメッセージ交換は、データ及びソースの双方
が決定される前に要求される場合があった。
[0010] The related application Serial No. In accordance with 08 / 525,948, the object-oriented processors communicate with each other and / or with the host processor via the exchange of high-level messages. The earliest implementation of the communication protocol required the host to poll at least some object-oriented processors (i.e., those responsible for processing input data) to determine data availability.
This eventually proved to defeat the purpose of simple coding, as the host code had to be written in a manner that frequently scanned all possible input sources. Ultimately, it was determined that this polling caused undesirable overhead and coding complexity. Since many first-developed object-oriented processors operated in real time, the polling scan speed was high and the overhead was substantial. Furthermore, early communication protocols did not provide information about the source of the data. It was instead derived by a specific information request by the host. Thus, some message exchanges may have been required before both data and source were determined.

【0011】 関連出願Serial No.08/683,625は、1つ以上のオブジェ
クト指向プロセッサが単一のASICチップ上の部品の集約物として具現化され
た分散処理システムを開示する。この関連出願は、ホストがオブジェクト指向プ
ロセッサをポーリングする必要がなくかつ1つのプロセッサから別のプロセッサ
へのメッセージが発信元アドレスと宛先アドレスを含む増強された通信言語を含
む。この通信プロトコルは、「イベント駆動される」と言われることがある。こ
のイベント駆動型通信アーキテクチャの引き続きの開発の間に、イベント駆動型
モデルをプログラミングすることは幾分複雑であり、かつ通信帯域幅が容易に保
全されないことが明らかになった。
Related application Serial No. 08 / 683,625 discloses a distributed processing system in which one or more object-oriented processors are embodied as a collection of components on a single ASIC chip. This related application includes an enhanced communication language in which the host does not need to poll the object-oriented processor and messages from one processor to another include source and destination addresses. This communication protocol is sometimes referred to as "event driven." During subsequent development of this event-driven communication architecture, it became apparent that programming the event-driven model was somewhat complicated and that communication bandwidth was not easily conserved.

【0012】 両方の関連出願において、各オブジェクト指向プロセッサは、その物理的接続
性を定義する機能性を有する。詳細には、単一のチップ上に具現化されるように
、各オブジェクト指向プロセッサ(オブジェクト指向プロセッサの集合体)は、
プロセッサを他の装置に結合するための多数のピンを与える。オブジェクト指向
プロセッサの先に開示された実施形態に従って、各ピンの機能性は、実質的に、
オブジェクト指向プロセッサが製造される時に固定される。例えば、関連出願S
erial No.08/525,948に開示されているように、ユーザ・イ
ンタフェース・コントローラは、37ピンを利用し、それらの大部分は1組の機
能性を有する。それらのピンの幾つかは交替し得る機能性を有する。例えば、ピ
ンA0からA7は補助ポートである。しかしながら、ピンA1及びA2は、LC
Dがピンを使用可能にするとき用いることができ、ピンA3−A7は、LEDが
ピンを使用可能にするとき用いることができる。それにも拘わらず、大部分の部
分に対して、オブジェクト指向プロセッサの機能的資源は、ある一定のピンに関
して事前定義され、実質的に開発者/ユーザにより変えることができない。
In both related applications, each object-oriented processor has the functionality to define its physical connectivity. In particular, as embodied on a single chip, each object-oriented processor (a collection of object-oriented processors)
Provides a number of pins for coupling the processor to other devices. According to the previously disclosed embodiment of the object-oriented processor, the functionality of each pin is substantially
Fixed when the object-oriented processor is manufactured. For example, the related application S
rial no. As disclosed in 08 / 525,948, the user interface controller utilizes 37 pins, most of which have a set of functionality. Some of those pins have alternate functionality. For example, pins A0 to A7 are auxiliary ports. However, pins A1 and A2 are
D can be used when enabling the pin, and pins A3-A7 can be used when the LED enables the pin. Nevertheless, for the most part, the functional resources of an object-oriented processor are predefined for certain pins and cannot be changed substantially by the developer / user.

【0013】 発明の概要 本明細書において用いられように、用語「オブジェクト指向プロセッサ・アレ
イ」は、各オブジェクト指向プロセッサが別個のハードウエア・プロセッサを組
み込んでいるオブジェクト指向プロセッサの集合、又は各オブジェクト指向プロ
セッサが同じハードウエア・プロセッサを共用する仮想プロセッサとして、又は
別々のハードウエア・プロセッサ及び仮想プロセッサのいずれの組合わせとして
具現化されているオブジェクト指向プロセッサの集合を意味する。
SUMMARY OF THE INVENTION As used herein, the term “object-oriented processor array” refers to a collection of object-oriented processors, each object-oriented processor incorporating a separate hardware processor, or each object-oriented processor. A collection of object-oriented processors embodied as virtual processors where the processors share the same hardware processor, or as any combination of separate hardware processors and virtual processors.

【0014】 従って、本発明の目的は、増強された製造後の構成可能性(configur
ability)を有するオブジェクト指向プロセッサ・アレイを提供すること
にある。
Accordingly, an object of the present invention is to provide enhanced post-manufacturability configurability.
object-oriented processor array having a high availability.

【0015】 本発明の目的はまた、ピンの機能性が開発者/ユーザにより構成可能である多
数のピンを有する1チップ上のオブジェクト指向プロセッサ・アレイを提供する
ことにある。
It is also an object of the present invention to provide an object-oriented processor array on a single chip having a large number of pins whose pin functionality is configurable by a developer / user.

【0016】 本発明の別の目的は、仮想的にいずれの組合わせで選択され得る機能性のライ
ブラリを含むオブジェクト指向プロセッサ・アレイを提供することにある。
It is another object of the present invention to provide an object-oriented processor array that includes a library of functionalities that can be virtually selected in any combination.

【0017】 本発明の更なる目的は、ソフトウエア指令を介してピンに割り当てられ得る機
能性のライブラリを含むオブジェクト指向プロセッサ・アレイを提供することに
ある。
It is a further object of the present invention to provide an object oriented processor array that includes a library of functionality that can be assigned to pins via software instructions.

【0018】 本発明の更なる目的は、帯域幅を保全しかつ開発者/ユーザがオブジェクト待
ち時間との引き替えにコーディングの単純さのレベルを選定するのを可能にする
増強された通信プロトコルを利用するオブジェクト指向プロセッサ・アレイを提
供することにある。
It is a further object of the present invention to utilize an enhanced communication protocol that conserves bandwidth and allows a developer / user to select a level of coding simplicity in exchange for object latency. To provide an object-oriented processor array.

【0019】 本発明の別の目的は、メモリを効率的に利用するオブジェクト指向プロセッサ
・アレイを提供することにある。
It is another object of the present invention to provide an object oriented processor array that utilizes memory efficiently.

【0020】 概要 以下に詳細に説明するこれらの目的に従って、本発明のオブジェクト指向プロ
セッサ・アレイは、構成可能な(プログラム可能な)機能(これはまたオブジェ
クトと呼ばれる)のライブラリを含む読出し可能メモリ、及びその中にオブジェ
クトがインスタンス化されかつ構成される書込み可能メモリを含む。詳細には、
オブジェクト指向プロセッサ・アレイは、パワーアップ時に書込み可能メモリに
自動的にインスタンス化され、ホスト・プロセッサ又はブートROMからの指令
に応答して書込み可能メモリにインスタンス化されるべき他のオブジェクトを呼
び出し、そしてアクティブ・タスク・リスト、及びインスタンス化されたオブジ
ェクトについての他の情報を維持するシステム機能性(システム・オブジェクト
)を含む。本発明に従ったオブジェクト指向プロセッサ・アレイは更に、通信イ
ンタフェース、入力メッセージ・プロセッサ及び出力メッセージ・プロセッサを
含む。通信インタフェースは、オブジェクト指向プロセッサ・アレイが他のオブ
ジェクト指向プロセッサ・アレイと及び/又はホスト・プロセッサ又はスクリプ
ト・サーバと通信するのを可能にする。出力メッセージ・プロセッサは、アレイ
の中のプロセッサ・オブジェクトからのメッセージを処理するための出力流れマ
ネジャ、及びメッセージをキューに入れるための中央出力レジストリを含むのが
好ましい。本好適実施形態に従って、オブジェクト指向プロセッサ・アレイは、
マイクロプロセッサ上で実行するソフトウエアから形成された仮想マシンとして
具現化される。従って、オブジェクト指向プロセッサマシン・アレイを具現化す
るソフトウエアには、並行処理をシミュレートするタイミング・カーネル、及び
オブジェクトがインスタンス化されたときメモリをそれらオブジェクトに割り当
てるメモリ・マネジャが設けられている。
Overview In accordance with these objectives, which will be described in detail below, the object-oriented processor array of the present invention comprises a readable memory that includes a library of configurable (programmable) functions (also called objects); And writable memory in which the object is instantiated and configured. For details,
The object-oriented processor array is automatically instantiated in writable memory at power-up, calls other objects to be instantiated in writable memory in response to commands from the host processor or boot ROM, and Includes system functionality (system objects) that maintain the active task list and other information about the instantiated objects. The object oriented processor array according to the present invention further includes a communication interface, an input message processor and an output message processor. The communication interface allows the object oriented processor array to communicate with other object oriented processor arrays and / or with a host processor or script server. The output message processor preferably includes an output flow manager for processing messages from processor objects in the array, and a central output registry for queuing messages. According to the preferred embodiment, the object-oriented processor array comprises:
It is embodied as a virtual machine formed from software running on a microprocessor. Accordingly, software embodying an object-oriented processor machine array is provided with a timing kernel that simulates parallel processing and a memory manager that allocates memory to objects when they are instantiated.

【0021】 自己インスタンス化 本発明の好適実施形態に従って、機能性のライブラリは、ROMに記憶された
オブジェクトのライブラリとして構成される。各オブジェクトは、パーサ層、機
能層(これは実行時層及び背景層を含むのが好ましい。)、時間層、及びインス
タンス化層を含む。システム・オブジェクトはまた、ROMに記憶され、そして
プロセッサ・アレイがパワーオンされたときRAMに自動的にインスタンス化さ
れ、そして本発明の好適な実施形態においては、アクティブ・タスク・リスト・
テーブル(インスタンス化されたオブジェクトに対する機能的ポインタ)、アク
ティブ・タスク・リスト名前テーブル(インスタンス化されたオブジェクトの名
前)、及びアクティブ・タスク・リスト・データ・スペース(各インスタンス化
されたオブジェクトに対して割り当てられたメモリ・ブロックに対するポインタ
)のためRAMを確保する。システム・オブジェクトは、他のオブジェクトに類
似しているが、しかし全てのオブジェクトに対して共通である大域メソッド及び
ファンクション(機能)を処理する。システム・オブジェクトの主機能は、オブ
ジェクトを呼び出して、それら自身をインスタンス化するためオブジェクトを求
めることである。
Self-Instantiation In accordance with a preferred embodiment of the present invention, the library of functionality is configured as a library of objects stored in ROM. Each object includes a parser layer, a functional layer (which preferably includes a runtime layer and a background layer), a time layer, and an instantiation layer. System objects are also stored in ROM and are automatically instantiated in RAM when the processor array is powered on, and in a preferred embodiment of the present invention, the active task list
Table (functional pointer to instantiated objects), active task list name table (names of instantiated objects), and active task list data space (for each instantiated object) Allocate RAM for a pointer to the allocated memory block). System objects handle global methods and functions that are similar to other objects, but common to all objects. The main function of system objects is to call objects and ask for objects to instantiate themselves.

【0022】 ホスト・プロセッサ(又はブートROM)からの高レベル指令に応答して、シ
ステム・オブジェクトは、オブジェクト・ライブラリの中のオブジェクトのイン
スタンス化層を呼び出し、オブジェクト自身をRAMにインスタンス化するよう
オブジェクトに指令する。オブジェクトのインスタンス化層は、メモリ・マネジ
ャを呼び出し、RAMの割り当てを要求する。メモリ・マネジャは、(RAMに
おける開始アドレスに対する)ポインタをオブジェクトに戻す。一実施形態に従
って、オブジェクトは、いずれの必要なインスタンス化を実行してインスタンス
化を完了した後に、ポインタをシステム・オブジェクトに戻す。オブジェクトが
システム・オブジェクトにインスタンス化が成功したことを知らせた後に、シス
テム・オブジェクトはポインタを、オブジェクトが常駐するROMの部分に対す
るアクティブ・タスク・リスト・テーブルに記憶する。アクティブ・タスク・リ
ストにおける各ポインタは、索引番号と関連する。システム・オブジェクトはま
た、オブジェクトのインスタンスの名前を、その名前を同じ索引番号と関連付け
るアクティブ・タスク・リスト名前テーブルの中に記憶し、そして割り当てられ
たメモリ・ブロックに対するポインタを、これも同じ索引番号と関連付けられた
アクティブ・タスク・リスト・データ・スペースに記憶する。次いで、システム
・オブジェクトは、アクティブ・タスク・リストの中のオブジェクトのスケジュ
ーリングを再計算する。別の実施形態に従って、各インスタンス化されたオブジ
ェクトは、その割り当てられたRAMに対するポインタをRAMの予約済み範囲
に記憶する。
In response to a high level command from the host processor (or boot ROM), the system object invokes the object's instantiation layer in the object library and instantiates the object itself in RAM. Command. The object instantiation layer calls the memory manager to request the allocation of RAM. The memory manager returns a pointer (to the starting address in RAM) to the object. According to one embodiment, the object returns a pointer to the system object after completing any necessary instantiation to complete the instantiation. After the object informs the system object that the instantiation was successful, the system object stores a pointer in the active task list table for the portion of the ROM where the object resides. Each pointer in the active task list is associated with an index number. The system object also stores the name of the instance of the object in the active task list name table associating that name with the same index number, and stores a pointer to the allocated memory block, also at the same index number. Store in the active task list data space associated with. The system object then recalculates the scheduling of the object in the active task list. According to another embodiment, each instantiated object stores a pointer to its allocated RAM in a reserved area of RAM.

【0023】 インスタンス化されたオブジェクトは、その割り当てられたRAMを幾つかの
部分に配列する。第1の部分は出力メッセージ・ヘッダであり、その出力メッセ
ージ・ヘッダは、オブジェクト・インスタンス化、メッセージ長、アクティブ・
タスク・リスト索引、オブジェクト・インスタンス化の流れ優先度、メッセージ
・タイプ及びソースIDの出力バッファに対するポインタを含む。この第1の部
分は、全てのオブジェクトに共通であり、即ち全てのインスタンス化されたオブ
ジェクトは、この部分をその割り当てられたRAMの中に有する。第2の部分は
、その機能性の実行においてセルにより用いられる私用データである。この第2
の部分は、各インスタンス化されたオブジェクトに対して異なり、そして一部の
オブジェクトは、割り当てられたRAMの追加の部分を配列し得る。一旦オブジ
ェクトがこうしてインスタンス化されると、物理的ピンは、高レベル指令をホス
ト・プロセッサ(又はブートROM)からインスタンス化されたオブジェクトに
送ることにより、オブジェクトのインスタンス化に対して割り当てられることが
できる。
An instantiated object arranges its allocated RAM into several parts. The first part is the output message header, which contains the object instantiation, message length, active
Contains a pointer to the output buffer for the task list index, object instantiation flow priority, message type and source ID. This first part is common to all objects, ie all instantiated objects have this part in their allocated RAM. The second part is the private data used by the cell in performing its functionality. This second
Are different for each instantiated object, and some objects may arrange additional portions of the allocated RAM. Once the object is thus instantiated, physical pins can be assigned for object instantiation by sending a high-level command from the host processor (or boot ROM) to the instantiated object. .

【0024】 入力メッセージ・プロセッサは、全ての到来メッセージの構文をチェックし、
メッセージをバッファし、指令を検査し、アクティブ・タスク・リスト名前テー
ブルを見て、指令が向けられたインスタンス化されたオブジェクトに対する索引
番号を決定し、メッセージ及び索引番号をオブジェクトのパーサ層に通す。オブ
ジェクトのパーサ層は、ピン割り当てメッセージを解釈し、オブジェクトの名前
が付けられたインスタンス化に対してピン割り当てをRAMの私用データ範囲に
記憶する。
The input message processor checks the syntax of all incoming messages,
It buffers the message, examines the command, looks at the active task list name table, determines the index number for the instantiated object to which the command was directed, and passes the message and index number to the object's parser layer. The object parser layer interprets the pin assignment message and stores the pin assignment for the named instantiation of the object in a private data area of RAM.

【0025】 本発明の他の好適な局面に従って、オブジェクトは、十分なハードウエア資源
(ピン及びRAM)が別のインスタンス化をサポートするため利用可能である限
り数回インスタンス化され得る。システム・オブジェクトは、エントリをアクテ
ィブ・タスク・リスト・テーブル、アクティブ・タスク・リスト名前テーブル及
びアクティブ・タスク・リスト・データ・スペース・テーブルの中に置くことに
より、全てのオブジェクト・インスタンス化の軌跡を保持する。更に、メモリ・
マネジャは、利用されるメモリ・ヒープに対するポインタを維持し、そして利用
可能であるより多くのRAMを割り当てることが必要とされる場合エラー・メッ
セージを発生する。ピンがオブジェクトのインスタンス化に対して割り当てられ
た後に、メッセージ流れ優先度が割り当てられることができる。本好適実施形態
に従って、0−7の流れ優先度が割り当てられ得る。ここで、0はポーリングさ
れる優先度を表し、1−7は重要さの増大するレベルを指示する。優先度レベル
がゼロより大きいとき、オブジェクトからの出力メッセージは、自動的に発生さ
れる。流れ優先度は、RAMのその出力メッセージ・ヘッダの中のオブジェクト
のインスタンス化により記憶される。インスタンス化の間、システム・オブジェ
クトは、アクティブ・タスクの番号=0を指示する大域変数又はカウンタを開始
する。その変数が>0であるとき、システム・オブジェクトは、アクティブ・タ
スク・リストを走査するタイミング・カーネルに制御を戻す。オブジェクトがイ
ンスタンス化される度に、全てのアクティブ・タスクが停止され、そして全ての
インスタンス化されたオブジェクトがそれらのタイミング層に呼び出され、タス
クがスケジューリングされる。システム・オブジェクトは、タイミング層が私用
データの中に記憶する各オブジェクト・インスタンス化に対してオフセットを割
り当てる。オブジェクトは最悪ケース時間をシステム・オブジェクトに戻し、そ
して最悪ケース時間を用いて次のアクティブ・タスクに対するオフセットを計算
する。最悪ケース時間と実際時間との間の時間が、システム(背景)機能に対し
てシステム・オブジェクトにより有利に用いられ、即ち、さもなければ、システ
ム機能は、スケジューリングされず、従ってオーバヘッドを要求しない。
According to another preferred aspect of the invention, an object may be instantiated several times as long as sufficient hardware resources (pins and RAM) are available to support another instantiation. The system object keeps track of all object instantiations by placing entries in the active task list table, active task list name table, and active task list data space table. Hold. In addition, memory
The manager keeps a pointer to the memory heap used and issues an error message when needed to allocate more RAM available. After a pin has been assigned for object instantiation, a message flow priority can be assigned. According to the preferred embodiment, a flow priority of 0-7 may be assigned. Here, 0 indicates the priority to be polled, and 1-7 indicates a level of increasing importance. When the priority level is greater than zero, the output message from the object will be generated automatically. The flow priority is stored by the instantiation of the object in its output message header in RAM. During instantiation, the system object starts a global variable or counter that indicates the active task number = 0. When that variable is> 0, the system object returns control to the timing kernel that scans the active task list. Each time an object is instantiated, all active tasks are stopped, and all instantiated objects are called into their timing layer and tasks are scheduled. The system object assigns an offset for each object instantiation that the timing layer stores in private data. The object returns the worst case time to the system object and uses the worst case time to calculate an offset for the next active task. The time between the worst case time and the actual time is advantageously used by system objects for system (background) functions, i.e., otherwise, system functions are not scheduled and therefore require no overhead.

【0026】 基本的メッセージ処理 動作中、オブジェクトの特定のインスタンス化に対するメッセージが、入力メ
ッセージ・プロセッサによりパースされ、その入力メッセージ・プロセッサは、
アクティブ・タスク・リスト名前テーブルを走査して、アクティブ・タスク・リ
ストに対する索引、即ちアドレス指定されたオブジェクト・インスタンス化に対
するポインタを見つける。オブジェクトは、入力メッセージ・プロセッサからの
メッセージ、及び索引を受け取る。オブジェクトは、索引及びアクティブ・タス
ク・リスト・データ・スペース・テーブルを用いて、それ自身のどのインスタン
ス化がアドレス指定されているかを見つける。オブジェクトのインスタンス化か
らのメッセージが、そのRAMの出力メッセージ・ヘッダの部分に置かれ、そし
て登録のための要求が中央出力レジストリに送られる。その出力レジストリは、
メッセージに対するポインタのキューを出力メッセージ・ヘッダ部分の中に保持
する。そのキューは、1つ以上の出力流れマネジャにより走査され、その出力流
れマネジャは、出力メッセージ・ヘッダ部分に保持されている情報から出力メッ
セージを形成する。
During basic message processing operations , messages for a particular instantiation of an object are parsed by an input message processor, which
The active task list name table is scanned for an index to the active task list, ie, a pointer to the addressed object instantiation. The object receives a message from the input message processor, and an index. The object uses the index and the active task list data space table to find out which instantiation of itself is being addressed. The message from the object instantiation is placed in the output message header portion of its RAM, and a request for registration is sent to the central output registry. Its output registry is
Keep a queue of pointers to messages in the output message header portion. The queue is scanned by one or more output flow managers, which form output messages from information held in output message header portions.

【0027】 中央スクリプト・サーバ 本発明の一実施形態に従って、1つ以上のオブジェクト指向プロセッサ・アレ
イは、中央スクリプト・サーバ又はプロセッサに結合される。いずれのプロセッ
サ・オブジェクトにおけるデータ・イベントからもたらせるメッセージは、処理
のため中央スクリプト・サーバに送られる。中央スクリプト・サーバは、プロセ
ッサ・オブジェクトから受け取ったメッセージをパースし、このタイプのデータ
・イベントに対して書込まれたスクリプトを実行する。スクリプトは通常、デー
タ・イベントを有するプロセッサ・オブジェクトを含むアレイと同じアレイ又は
それとは異なるアレイ上の別のプロセッサ・オブジェクトに対してメッセージを
送ることをもたらす。本発明の一局面に従って、メッセージの流れは、イベント
反応アーキテクチャに基づいている。
Central Script Server In accordance with one embodiment of the present invention, one or more object-oriented processor arrays are coupled to a central script server or processor. Messages resulting from data events on any of the processor objects are sent to a central script server for processing. The central script server parses the message received from the processor object and executes the script written for this type of data event. Scripts typically result in sending a message to another processor object on the same array as the array containing the processor object with the data event or on a different array. According to one aspect of the invention, the message flow is based on an event reaction architecture.

【0028】 イベント反応モデル メッセージの流れのためのイベント反応アーキテクチャは、帯域幅を保全しか
つホスト・プロセッサ・プログラミングを単純化する多重バス・ユーザに対して
優先度を割り当てる柔軟な方法である。イベント反応モデルに従って、プロセッ
サ・オブジェクトが送るべきメッセージを有するとき、プロセッサ・オブジェク
トは、メッセージの目標受信者(通常スクリプト・サーバ)により登録されるデ
ータ・イベントを発生する。その目標は、データ・イベントの肯定応答の前にプ
ロセッサ・オブジェクトと目標との間の可変量のI/O交換を可能にすることに
よりイベントに反応する。一実施形態に従って、データ・イベントが肯定応答さ
れるまで、他のデータ・イベントは目標に送られない。別の実施形態に従って、
固定数のデータ・イベントが同時に保留状態であってよい。マルチノード・シス
テムの一実施形態において、各ノード(各オブジェクト指向プロセッサ・アレイ
)がネットワーク・トラフィックを知り、そして特定の目標(スクリプト・サー
バ)受信機と関連したデータ・イベントは、その受信機を目標として有する全て
のノードにより並びに目標により登録される。いつでも同時に保留になり得るデ
ータ・イベントの数は、目標により決定され、各ノードに対して知られている。
目標は、メッセージの流れをデータ・イベントの登録に基づいて調停する。調停
はFIFOベースであり得て、又は目標とされた受信機はより高い流れ優先度を
有する後に発生されたデータ・イベントに対して優先権を許可し得る。前述した
ように、インスタンス化されたオブジェクトの出力メッセージ・バッファは、メ
ッセージ流れ優先度のため備えられている。イベント反応モデルは、スクリプト
・サーバ・コードが許可された保留のデータ・イベント数に応じてスクリプト・
サーバ・コードの中のスレッド数に関して線形であることを可能にする。
Event Response Model The event response architecture for message flow is a flexible way to assign priorities to multiple bus users that conserves bandwidth and simplifies host processor programming. According to the event response model, when a processor object has a message to send, the processor object generates a data event that is registered by the target recipient of the message (typically a script server). The target responds to the event by allowing a variable amount of I / O exchange between the processor object and the target before acknowledging the data event. According to one embodiment, no other data events are sent to the target until the data event is acknowledged. According to another embodiment,
A fixed number of data events may be pending at the same time. In one embodiment of a multi-node system, each node (each object-oriented processor array) is aware of network traffic, and data events associated with a particular target (script server) receiver will cause that receiver to Registered by all nodes that have as a goal and by goal. The number of data events that can be pending at any one time is determined by the goal and is known for each node.
The goal arbitrates message flow based on the registration of data events. The arbitration may be FIFO based, or the targeted receiver may grant priority to subsequently generated data events having a higher flow priority. As described above, the output message buffer of the instantiated object is provided for message flow priority. The event response model is based on the number of pending data events that the script server code allows.
Allows to be linear in the number of threads in server code.

【0029】 別の実施形態に従って、中央ハブ(スクリプト・サーバ)は、共通バスよりむ
しろ個々のリンクによりそのハブに結合された多数のオブジェクト指向プロセッ
サ・アレイの間のメッセージの交換を調停する。ハブは、アレイの中のセルのメ
ッセージ流れ優先度に従って各アレイと通信する。ハブ上のコードの中のスレッ
ド数は、各オブジェクト指向プロセッサ・アレイにおいて許可された保留データ
・イベント数の合計に依存する。
According to another embodiment, a central hub (script server) arbitrates the exchange of messages between multiple object-oriented processor arrays coupled to that hub by individual links rather than a common bus. The hub communicates with each array according to the message flow priority of the cells in the array. The number of threads in the code on the hub depends on the total number of pending data events allowed in each object-oriented processor array.

【0030】 分散スクリプト・サーバ 別の実施形態に従って、1つ以上のオブジェクト指向プロセッサ・アレイにロ
ーカルな内部スクリプト・サーバが設けられている。この「分散スクリプトする
」実施形態において、データ・イベントを登録しかつキューに入れるための追加
の機能性、及びどのイベントが内部メッセージと関連するかを決定するためのイ
ベント・スクリプト・ルックアップ・テーブルを出力メッセージ・プロセッサに
与えることにより、イベント反応プロトコルに従って制御される。入力ッセージ
・プロセッサには、アレイの中のオブジェクト向けのメッセージをキューに入れ
かつバッファするための追加の機能性が与えられている。
Distributed Script Server In accordance with another embodiment, an internal script server is provided that is local to one or more object-oriented processor arrays. In this "distributed scripting" embodiment, additional functionality for registering and queuing data events, and an event script lookup table for determining which events are associated with internal messages Is provided to the output message processor to control according to the event response protocol. The input message processor is provided with additional functionality for queuing and buffering messages for objects in the array.

【0031】 高レベル言語 本発明の他の好適な局面に従って、高レベル言語が、セットアップ中及び動作
中におけるオブジェクト指向プロセッサとホスト・プロセッサとの間の通信のた
め与えられている。本発明に従った高レベル言語は、イベント反応プロトコル、
効率的なアドレス指定スキーム、帯域幅のより良い使用及び単純化したホスト・
パースすることに対するサポートを含む。本好適実施形態に従って、高レベル言
語メッセージは、十分定義されたヘッダを有する可変長のパケットで交換される
。ヘッダは、アドレス指定情報、それに続くメッセージのタイプの指示、メソッ
ド又はデータのタイプの指示、及びパケットの中の残りのデータの長さの指示を
含む。高レベル言語は、自己整列的で、単純、かつ強固である。
High-Level Language In accordance with another preferred aspect of the present invention, a high-level language is provided for communication between an object-oriented processor and a host processor during setup and operation. The high-level language according to the invention is an event reaction protocol,
Efficient addressing scheme, better use of bandwidth and simplified hosts
Includes support for parsing. In accordance with the preferred embodiment, high-level language messages are exchanged in variable length packets with well-defined headers. The header includes addressing information followed by an indication of the type of message, an indication of the type of method or data, and an indication of the length of the remaining data in the packet. High-level languages are self-aligned, simple, and robust.

【0032】 前述したように、本発明に従ったオブジェクト指向プロセッサ・アレイは、マ
イクロプロセッサ、フィールド・プログラマブル・ゲート・アレイ、多重マイク
ロプロセッサ、及び他のハードウエア装置上のソフトウエアを実行させることを
含む多くの代替構成で具現化される。
As mentioned above, an object-oriented processor array in accordance with the present invention implements software on microprocessors, field programmable gate arrays, multiple microprocessors, and other hardware devices. It is embodied in many alternative configurations, including:

【0033】 本発明の追加の目的及び利点は、提供される図面と関係した詳細な説明を参照
すれば当業者には明らかになるであろう。
[0033] Additional objects and advantages of the present invention will become apparent to those skilled in the art with reference to the detailed description taken in conjunction with the drawings provided.

【0034】 好適な実施形態の詳細な説明 基本的ハードウエア−ソフトウエア例 図1を参照すると、本発明の好適な実施形態に従ったオブジェクト指向プロセ
ッサ・アレイ10は、読出し可能メモリ12、書込み可能メモリ14、それらメ
モリ12及び14に結合された1つ以上のプログラマブル・プロセッサ16、及
びそのプロセッサ16に結合されている多数のピン18のような実際のインタフ
ェースを含む。以下に更に詳細に示されかつ説明されるように、本発明の一実施
形態は単一のチップ上に存在し、その単一のチップは単一の汎用マイクロプロセ
ッサ、RAM及びROMを含みかつ多数のピンを含む。しかしながら、当業者は
、本発明の機能的局面が多くの異なるタイプのハードウエア及び/又はソフトウ
エアを用いて具現化され得ることを認めるであろう。
Detailed Description of the Preferred Embodiment Basic Hardware-Software Example Referring to FIG. 1, an object-oriented processor array 10 according to a preferred embodiment of the present invention comprises a readable memory 12, a writable It includes an actual interface such as a memory 14, one or more programmable processors 16 coupled to the memories 12 and 14, and a number of pins 18 coupled to the processor 16. As shown and described in further detail below, one embodiment of the present invention resides on a single chip, which includes a single general-purpose microprocessor, RAM and ROM, and includes multiple Including pins. However, one skilled in the art will recognize that the functional aspects of the present invention may be embodied using many different types of hardware and / or software.

【0035】 ここで図2に目を向けかつ図1を参照すると、読出し可能メモリ12は、以下
に詳細に記載されるように書込み可能メモリ14にインスタンス化されかつ構成
される構成可能な(プログラム可能な)機能(それはまたオブジェクトと呼ばれ
る。)のライブラリ20を含む。詳細には、オブジェクト指向プロセッサ・アレ
イ10はシステム・オブジェクト22を含み、そのシステム・オブジェクト22
は、以下に詳細に説明されるように、パワーアップ時に書込み可能メモリに自動
的にインスタンス化され、他のオブジェクトをライブラリ20から呼び出して、
ホスト・プロセッサ又はブートROMからの指令に応答して書込み可能メモリ1
4にインスタンス化される。一旦オブジェクトがインスタンス化されると、オブ
ジェクトはオブジェクト指向プロセッサ・アレイ10の中のアクティブ・オブジ
ェクト、例えば23a、23b、23cとして見える。オブジェクト指向プロセ
ッサ・アレイ10は更に、通信インタフェース24、入力メッセージ・プロセッ
サ26及び出力メッセージ・プロセッサ28を含む。通信インタフェース24は
、アクティブ・オブジェクト23a−23cが他のオブジェクト指向プロセッサ
・アレイ及び/又はホスト・プロセッサ又はスクリプト・サーバと通信リンク又
はバス25(これらは物理的バス、多重ポート付きメモリ、又は更に無線リンク
の形式であり得る。)を介して通信するのを可能にする。通信インタフェースは
また、システム・オブジェクト22がホスト又はブートROMから指令を受け取
るのを可能にする。入力メッセージ・プロセッサ26は、到来メッセージのルー
ト付け及び基本的構文パースを行うことを担当する。一旦メッセージが受け取ら
れそして構文的に正しいとなると、そのメッセージは、以下に説明されるように
、アドレス指定されたオブジェクトのパーサ層にルート付けされる。出力メッセ
ージ・プロセッサ28は、オブジェクト指向プロセッサ・アレイ10の中のアク
ティブ・オブジェクトからオブジェクト指向プロセッサ・アレイ10の外部のプ
ロセッサにメッセージを処理する出力流れマネジャ32と、メッセージをキュー
に入れる中央出力レジストリ34とを含むのが好ましい。出力メッセージ・プロ
セッサ28への全ての入力は、中央出力レジストリ34を介する。以下に詳細に
説明されるように、イベントがオブジェクト内に発生すると同時に、オブジェク
トは、中央出力レジストリ34を呼び出し、出力キューの中に入れられる標準構
造体に対してハンドルを与える。出力キューは出力流れマネジャにより走査され
、出力流れマネジャは出力キューと、ある場合オブジェクトが割り当てられた優
先度とについての情報を捜す。一旦流れマネジャがどのオブジェクトがポートの
その後の使用を有するかを決定すると、流れマネジャは、メッセージのタイプ(
例えば、データ・イベント、指令肯定応答等)、メッセージを発生させたオブジ
ェクトの名前、データのタイプ又はソース、及びポインタを参照することにより
導出されるメッセージと関連したいずれのデータを決定する標準構造体における
情報を用いて、メッセージを構成する。次いで、新しく構成されたメッセージは
、出力ポートに送られそして送信される。
Turning now to FIG. 2 and referring to FIG. 1, the readable memory 12 is instantiated and configured in a writable memory 14 as described in detail below. (Possible) functions (which are also called objects). In particular, the object-oriented processor array 10 includes a system object 22,
Is automatically instantiated in writable memory at power-up, as described in detail below, and calls other objects from library 20 to
Writable memory 1 in response to a command from the host processor or boot ROM
4 instantiated. Once the object is instantiated, it appears as an active object in the object-oriented processor array 10, for example, 23a, 23b, 23c. The object-oriented processor array 10 further includes a communication interface 24, an input message processor 26, and an output message processor 28. The communication interface 24 includes a communication link or bus 25 where the active objects 23a-23c communicate with other object-oriented processor arrays and / or host processors or script servers, which may be physical buses, multi-ported memories, or even wireless. (Can be in the form of a link). The communication interface also allows system object 22 to receive commands from a host or boot ROM. The input message processor 26 is responsible for routing incoming messages and performing basic syntax parsing. Once a message has been received and is syntactically correct, it is routed to the parser layer of the addressed object, as described below. The output message processor 28 includes an output flow manager 32 for processing messages from active objects in the object-oriented processor array 10 to processors external to the object-oriented processor array 10, and a central output registry 34 for queuing messages. It is preferable to include All input to output message processor 28 is through central output registry 34. As described in detail below, at the same time that the event occurs in the object, the object calls the central output registry 34 and provides a handle to a standard structure that is placed in the output queue. The output queue is scanned by the output flow manager, which looks for information about the output queue and, in some cases, the priority to which the object was assigned. Once the flow manager determines which objects have subsequent use of the port, the flow manager determines the type of message (
A standard structure that determines any data associated with the message derived by referencing the pointer, eg, data event, command acknowledgment, the name of the object that caused the message, the type or source of the data, and the pointer. A message is constructed using the information in. The newly composed message is then sent to the output port and sent.

【0036】 前述したように、一実施形態に従って、オブジェクト指向プロセッサ・アレイ
10は、マイクロプロセッサ上で実行するソフトウエアから形成される仮想マシ
ンとして具現化される。従って、オブジェクト指向プロセッサ・アレイ10を具
現化するソフトウエアには、並行処理をシミュレートするタイミング・カーネル
36と、オブジェクトがインスタンス化されるときメモリをそれらオブジェクト
に割り当てるメモリ・マネジャ38とが設けられている。また、オブジェクト指
向プロセッサ・アレイ10が仮想マシンとして具現化されるとき、図2に示され
る構成要素の間の相互接続は、物理的接続ではなく、むしろ構成要素間の機能的
関係を示すことが認められるであろう。
As described above, according to one embodiment, the object-oriented processor array 10 is embodied as a virtual machine formed from software running on a microprocessor. Accordingly, the software embodying the object-oriented processor array 10 is provided with a timing kernel 36 that simulates parallel processing and a memory manager 38 that allocates memory to objects when they are instantiated. ing. Also, when the object-oriented processor array 10 is embodied as a virtual machine, the interconnections between the components shown in FIG. Will be recognized.

【0037】 プロセッサ・オブジェクトの基本的特徴 ここで図2及び図3を参照すると、各オブジェクト、例えば23cは、パーサ
層40、機能層42、時間層44及びインスタンス化層46を含む。パーサ層は
、特定のオブジェクトに関係する語彙を解釈するため、及び直ちに実行すること
ができるタスクを実行するための知能を含む。前述したように、各オブジェクト
は、構成可能なである或る一定の事前定義された機能性を有する。従って、各オ
ブジェクトのための語彙は、オブジェクトが含む機能性により幾分支配され、そ
してまた通信のための幾らかの汎用語彙を含むであろう。各オブジェクトの語彙
が異なる仕方の例は、関連出願Serial No.08/529,948に示
されている。パーサ層は、インスタンス化されたオブジェクトを初期化しかつ構
成する手段であり、かつその手段によりオブジェクトがメッセージを受け取る当
該手段である。機能層42は、オブジェクトの事前定義された機能性を実行する
のに必要とされる全ての知能を含み、そしてルーチン層と背景層とに分割されて
いるのが好ましい。ルーチン層は、連続ベースで実行されるのに必要とされる機
能性を含み、そして背景層は、比較的低い優先度のタスクのための機能性を含む
。例えば、オブジェクトが入力装置に結合されている場合、入力装置の走査は、
実行時層の一部であろう。背景層で実行される機能は、例えば装置ソケットとの
低速の通信対話を実行するため通常長時間かかる。時間層44は、以下により十
分説明されるように、特定のオブジェクトの動的性能及び挙動についての情報を
システム・オブジェクト22に与えることにより、実行時層のスケジューリング
に参加する。インスタンス化層46は、以下により十分説明されるように、オブ
ジェクトがシステム・オブジェクトにより呼び出されたときそのオブジェクトを
インスタンス化するのに必要とされるタスクを実行する。
Basic Features of Processor Objects Referring now to FIGS. 2 and 3, each object, eg, 23c, includes a parser layer 40, a functional layer 42, a time layer 44, and an instantiation layer 46. The parser layer contains the intelligence to interpret vocabulary associated with a particular object and to perform tasks that can be performed immediately. As described above, each object has certain predefined functionality that is configurable. Thus, the vocabulary for each object is somewhat governed by the functionality it contains, and will also include some generic vocabulary for communication. An example of how the vocabulary of each object is different is described in Related Application Serial No. 08 / 529,948. The parser layer is the means by which the instantiated object is initialized and configured, and by which the object receives messages. The functional layer 42 contains all the intelligence needed to perform the predefined functionality of the object, and is preferably divided into a routine layer and a background layer. The routine layer contains the functionality required to be performed on a continuous basis, and the background layer contains the functionality for relatively low priority tasks. For example, if the object is coupled to an input device, scanning the input device
Will be part of the runtime layer. The functions performed in the background layer typically take a long time to perform, for example, a slow communication interaction with the device socket. The time layer 44 participates in the scheduling of the runtime layer by providing information about the dynamic performance and behavior of the particular object to the system object 22, as described more fully below. The instantiation layer 46 performs the tasks required to instantiate an object when it is invoked by a system object, as described more fully below.

【0038】 前述したように、全てのオブジェクト、例えば23a−23cは、ROMに記
憶されているのが好ましい。システム・オブジェクト22はまた、ROMに記憶
されているのが好ましく、そしてオブジェクト指向プロセッサ・アレイ10がパ
ワーオンされるとき自動的にインスタンス化される。システム・オブジェクト2
2のインスタンス化は、RAM 14の一部14aをそれ自身のため確保するこ
と、及びアクティブ・タスク・リスト・テーブル14b(インスタンス化された
オブジェクトに対するポインタ)、アクティブ・タスク・リスト名前テーブル1
4c(インスタンス化されたオブジェクトの名前)及びアクティブ・タスク・リ
スト・データ・スペース・テーブル14d(各インスタンス化されたオブジェク
トに対して、割り当てられたメモリ・ブロックに対するポインタ)のためRAM
14の一部を確保することを含む。システム・オブジェクト22は、他のオブ
ジェクトと似ているが、しかし全てのオブジェクトに対して共通である大域メソ
ッド及び機能(例えば、例外をターン・オン/オフすること、シェル状態を戻す
こと等−シェル状態は例えば保留イベント数、保留肯定応答数、インスタンス化
されたオブジェクト数、通信エラー数等)を処理し、そして本質的にパーサ層の
みから成る。システム・オブジェクトの主要機能は、インスタンス化されるべき
他のオブジェクトを呼び出すことである。
As mentioned above, all objects, eg, 23a-23c, are preferably stored in ROM. The system objects 22 are also preferably stored in ROM and are instantiated automatically when the object-oriented processor array 10 is powered on. System object 2
2 instantiates a portion 14a of RAM 14 for itself, and an active task list table 14b (a pointer to the instantiated object), an active task list name table 1
RAM for 4c (name of instantiated object) and active task list data space table 14d (pointer to allocated memory block for each instantiated object)
14 in part. System objects 22 are similar to other objects, but global methods and functions that are common to all objects (eg, turn on / off exceptions, return shell state, etc.—shell) States handle, for example, pending events, pending acknowledgments, instantiated objects, communication errors, etc.), and consist essentially of only the parser layer. The primary function of a system object is to call other objects to be instantiated.

【0039】 初期化、構成及び動作 ここで、図4に目を向けて、そして図2及び図3を参照すると、オブジェクト
指向プロセッサ・アレイの初期化、構成及び動作が、電力(パワー)が図4にお
ける200に示されるようにオブジェクト指向プロセッサ・アレイに印加される
とき始まる。パワーオンすると同時に、システム・オブジェクトは、図4におけ
る202に示されるように自動的に初期化される。システム・オブジェクトは、
アクティブ・タスク数=0を指示する大域変数又はカウンタを初期化する。オブ
ジェクトがインスタンス化される度にこの変数は増分される。図4における判定
点204に示されるように変数が>0であるとき、タイミング・カーネル36が
図4における206に示されるようにアクティブ・タスク・リスト・テーブル1
4bを走査する。しかしながら、最初に、システム・オブジェクトがインスタン
ス化された後に生じる動作のみが、オブジェクトをインスタンス化するための指
令メッセージの受信である。メッセージが図4における208に示されるように
受信されると常に、入力メッセージ・プロセッサ26は、メッセージの構文をチ
ェックし、そして210においてメッセージがシステム・オブジェクト(SO)
に対してあるかを決定する。図4に示されていないが、メッセージの構文が正し
くない場合、入力メッセージ・プロセッサ26は、中央出力レジストリ34の中
でキューに入れられるエラー・メッセージを準備するであろう。到来メッセージ
がシステム・オブジェクトのためである(即ち、オブジェクトをインスタンス化
するための指令)と210において決定される場合、入力パーサは、指令をシス
テム・オブジェクトに通し、次いでシステム・オブジェクトは212においてハ
ードウエア資源可用性をチェックし、そして十分なピンが指令において呼び出さ
れたオブジェクトをインスタンス化するため利用可能であるかを決定する。詳細
には、システム・オブジェクトは、オブジェクトのインスタンス化層を問い合わ
せて、どの資源がオブジェクトをインスタンス化するため必要とされるかを決定
して、次いで十分な資源(例えば、ピン及びメモリ)か否かを決定する。システ
ム・オブジェクトが212において(このオブジェクトより先にあった他のオブ
ジェクト・インスタンス化故に)オブジェクトをインスタンス化するのに十分な
ピンがないことを決定した場合、システム・オブジェクトは、214においてエ
ラー・メッセージをバッファし、そして出力レジストリに対するポインタを送っ
て、エラー・メッセージをホストに戻す。次いで、制御は、206においてアク
ティブ・タスク・リストを走査するタイミング・カーネルに戻される。
Initialization, Configuration and Operation Turning now to FIG. 4 and referring to FIGS. 2 and 3, the initialization, configuration and operation of an object-oriented processor array is described in terms of power. 4 begins when applied to the object oriented processor array as shown at 200 in FIG. Upon power-on, the system objects are automatically initialized as shown at 202 in FIG. The system object is
Initialize a global variable or counter indicating 0 active tasks. This variable is incremented each time the object is instantiated. When the variable is> 0, as indicated by decision point 204 in FIG. 4, the timing kernel 36 determines the active task list table 1 as indicated by 206 in FIG.
Scan 4b. However, initially, the only action that occurs after a system object is instantiated is the receipt of a command message to instantiate the object. Whenever a message is received as shown at 208 in FIG. 4, input message processor 26 checks the syntax of the message, and at 210 the message is sent to the system object (SO).
To determine if there is. Although not shown in FIG. 4, if the syntax of the message is incorrect, input message processor 26 will prepare an error message to be queued in central output registry 34. If the incoming message is determined at 210 to be for a system object (i.e., a command to instantiate the object), the input parser passes the command through the system object and then the system object is hard-coded at 212. Check wear resource availability and determine if enough pins are available to instantiate the object called in the command. Specifically, the system object queries the object's instantiation layer to determine which resources are needed to instantiate the object, and then determines whether there are sufficient resources (eg, pins and memory) To decide. If the system object determines at 212 that there are not enough pins to instantiate the object (due to other object instantiations that were earlier than this object), the system object returns an error message at 214 Buffer and send a pointer to the output registry and return an error message to the host. Control is then returned at 206 to the timing kernel, which scans the active task list.

【0040】 212において十分な資源がオブジェクトをインスタンス化するのに利用可能
であると決定された場合、システム・オブジェクトは216においてオブジェク
ト・ライブラリの中のオブジェクトのインスタンス化層を呼び出し、そしてオブ
ジェクトにそれ自身RAM 14にインスタンス化するよう指令する。オブジェ
クトのインスタンス化層は、(図4における218において)メモリ・マネジャ
38を呼び出し、RAM 14の割り当て(例えば、14e)を要求する。メモ
リ・マネジャは、220においてRAMの可用性をチェックし、そして十分なメ
モリが利用可能でない場合、214においてエラー・メッセージを送る。十分な
RAMが利用可能である場合、メモリ・マネジャ38は、222においてポイン
タ(RAMの中の開始アドレスに対する)をインスタンス化層に戻し、インスタ
ンス化層は224においてそのポインタを受け取りかつそのメモリを配列する。
メモリ・マネジャはまた、222においてヒープ・ポインタを増分し、そのヒー
プ・ポインタは、メモリ・マネジャにより用いられ、220において十分なRA
Mが他のインスタンス化のため利用可能か否かを決定する。インスタンス化層4
6が首尾よくインスタンス化を完了した後に、インスタンス化層46は、226
において、システム・オブジェクト22にインスタンス化が成功であったことを
知らせ、そしてポインタをシステム・オブジェクト(SO)に送る。オブジェク
トがインスタンス化されるとき、インスタンス化層は(224において)その割
り当てられたRAMを編成された部分の中に配列する。第1の部分は出力メッセ
ージ・ヘッダであり、その出力メッセージ・ヘッダは、オブジェクト・インスタ
ンス化の出力バッファに対するポインタ、メッセージ長、アクティブ・タスク・
リスト索引、オブジェクト・インスタンス化の流れ優先度、メッセージ・タイプ
及びソースIDを含む。第1の部分は、全てのオブジェクトに対して共通であり
、即ち、全てのインスタンス化されたオブジェクトは、それらの割り当てられた
RAMの一部をこのようにして配列する。RAMの1つ以上の他の部分は、その
機能性の実行においてインスタンス化されたオブジェクトにより用いられる私用
データのため配列される。メッセージ流れ優先度は、開発者により選択される変
数であり、そしてアレイの初期化中にオブジェクトのインスタンス化に対して割
り当てられることを注目すべきである。メッセージ流れ優先度は、「イベント反
応」通信プロトコルに関して以下により詳細に説明される。
If it is determined at 212 that sufficient resources are available to instantiate the object, the system object calls the object instantiation layer in the object library at 216 and assigns it to the object. Instructs itself to be instantiated in RAM 14. The object instantiation layer calls the memory manager 38 (at 218 in FIG. 4) and requests an allocation of RAM 14 (eg, 14e). The memory manager checks the availability of the RAM at 220 and sends an error message at 214 if sufficient memory is not available. If sufficient RAM is available, the memory manager 38 returns a pointer (for the starting address in RAM) to the instantiation layer at 222, which receives the pointer at 224 and arranges the memory. I do.
The memory manager also increments the heap pointer at 222, and the heap pointer is used by the memory manager and at 220 sufficient RA
Determine if M is available for another instantiation. Instantiation layer 4
After 6 successfully completes the instantiation, the instantiation layer 46
Inform the system object 22 that the instantiation was successful and send a pointer to the system object (SO). When an object is instantiated, the instantiation layer arranges (at 224) its allocated RAM into organized parts. The first part is the output message header, which contains a pointer to the output buffer of the object instantiation, the message length, the active task
Includes list index, object instantiation flow priority, message type and source ID. The first part is common to all objects, i.e. all instantiated objects arrange a part of their allocated RAM in this way. One or more other portions of the RAM are arranged for private data to be used by the instantiated object in performing its functionality. It should be noted that message flow priority is a variable chosen by the developer and is assigned to object instantiation during array initialization. Message flow priority is described in more detail below with respect to the "event response" communication protocol.

【0041】 228において、システム・オブジェクト(SO)22は、オブジェクトが常
駐するROMの部分を指し示すポインタをアクティブ・タスク・リスト・テーブ
ル(ATLT)14bに記憶する。アクティブ・タスク・リスト・テーブルにお
ける各ポインタは、索引番号と関連付けられ、そしてポインタに対する索引番号
は、システム・オブジェクトによりインスタンス化層に対して与えられ、そのイ
ンスタンス化層は、索引番号をRAMの部分に記憶し、その部分は静的変数の記
憶のため構成された。オブジェクトの前述の層は、インスタンス化されたオブジ
ェクトに対して割り当てられたRAMの中に複写されないことが認められるべき
である。オブジェクトの実際の機能性は、ROMの中に留まったままであり、そ
してポインタによりアクティブ・タスク・リスト・テーブル14bの中に配置さ
れる。オブジェクトのインスタンス化に対して割り当てられたRAMは、オブジ
ェクトの機能性により用いられる。オブジェクト・ライブラリ中の特定のオブジ
ェクトが数回インスタンス化され得ることもまた認められるべきである。実際に
、各オブジェクトは機能的名前(それはROMの中のオブジェクトに言及する。
)、及びインスタンス化された名前(それはオブジェクトのインスタンス化に言
及する。)を有する。インスタンス化された名前は、インスタンス化の始めにシ
ステム・オブジェクトに対して高レベル指令の一部として与えられる。システム
・オブジェクト22はまた、オブジェクトのインスタンス化された名前をアクテ
ィブ・タスク・リスト名前テーブル(ATLNT)14cに記憶し、そのアクテ
ィブ・タスク・リスト名前テーブル14cは、名前をROMに対するポインタと
同じ索引番号と関連付け、そしてRAMの割り当てられたブロックに対するポイ
ンタをアクティブ・タスク・リスト・データ・スペース・テーブル(ATLDS
T)14dに記憶し、そのアクティブ・タスク・リスト・データ・スペース・テ
ーブル14dはまた同じ索引番号と関連付けられる。
At 228, the system object (SO) 22 stores a pointer to the portion of the ROM where the object resides in the active task list table (ATLT) 14b. Each pointer in the active task list table is associated with an index number, and the index number for the pointer is given to the instantiation layer by a system object, which instantiates the index number in a portion of RAM . , Part of which was configured for storage of static variables. It should be appreciated that the aforementioned layers of the object are not copied into the RAM allocated for the instantiated object. The actual functionality of the object remains in the ROM and is located in the active task list table 14b by pointer. The RAM allocated for object instantiation is used by the functionality of the object. It should also be appreciated that certain objects in the object library can be instantiated several times. In fact, each object has a functional name (it refers to the object in ROM).
), And an instantiated name, which refers to the instantiation of the object. The instantiated name is given as part of a high-level directive to the system object at the beginning of the instantiation. System object 22 also stores the instantiated name of the object in an active task list name table (ATLNT) 14c, which stores the name in the same index number as the pointer to ROM. And assigns a pointer to the allocated block of RAM to the active task list data space table (ATLDS).
T) 14d, whose active task list data space table 14d is also associated with the same index number.

【0042】 次いで、システム・オブジェクト22は、アクティブ・タスク・リスト・テー
ブル14bの中のオブジェクトのスケジューリングを再計算する。詳細には、オ
ブジェクト・インスタンス化が図4における228において完了される度に、全
てのアクティブ・タスクは図4において示されるように230において停止され
、そして全てのインスタンス化されたオブジェクトは、それらの時間層に呼び出
される。各インスタンス化されたオブジェクトは、232において最悪ケース(
WC)時間をシステム・オブジェクトに戻し、そして最悪ケース時間を用いて、
各アクティブ・タスクに対するオフセットを計算する(各インスタンス化された
オブジェクトは少なくとも1つのアクティブ・タスクを含む。)。システム・オ
ブジェクト22は、オフセットを各オブジェクト・インスタンス化に対して割り
当て、その各オブジェクト・インスタンス化を時間層は234において私用デー
タの中に記憶する。最悪ケース時間と実際時間との間の時間は、システム(背景
)機能のためのシステム・オブジェクトにより有利に用いられる、即ちシステム
機能は、さもなければ、スケジューリングされず、従ってオーバヘッドを要求し
ない。このように再スケジューリングが完了した後に、システム・オブジェクト
は制御をタイミング・カーネルに戻し、タイミング・カーネルは206において
アクティブ・タスク・リストを走査するのを再開する。
Next, the system object 22 recalculates the scheduling of the objects in the active task list table 14b. In particular, every time object instantiation is completed at 228 in FIG. 4, all active tasks are stopped at 230 as shown in FIG. 4, and all instantiated objects are Called on the time layer. Each instantiated object has the worst case (
WC) Return time to system object and, using worst case time,
Compute the offset for each active task (each instantiated object contains at least one active task). System object 22 assigns an offset to each object instantiation, and the time layer stores each object instantiation at 234 in private data. The time between the worst case time and the actual time is advantageously used by system objects for system (background) functions, i.e., system functions are otherwise not scheduled and thus require no overhead. After this rescheduling is complete, the system object returns control to the timing kernel, which resumes scanning the active task list at 206.

【0043】 インスタンス化後に、ピンは、(必要ならば)指令メッセージをインスタンス
化されたオブジェクトに直接送ることによりインスタンス化されたオブジェクト
に対して割り当てられ得る。特定のオブジェクトの機能性は、キーボード又はデ
ィスプレイのような外部装置への物理的接続を要求するある一定の入力又は出力
タスクを実行することを含み得る。しかしながら、一部のオブジェクトは、他の
オブジェクト及び/又はスクリプト・サーバと(前述したように)通信すること
のみを要求する機能性を有し得て、その場合ピンはインスタンス化されたオブジ
ェクトに対して割り当てられる必要がない。ピンをインスタンス化されたオブジ
ェクトに割り当てるため、インスタンス化されたオブジェクトへのメッセージは
、オブジェクトのインスタンス化された名前にアドレス指定される。例えば、図
4に示されように、到来メッセージが208において検出されたとき、入力メッ
セージ・プロセッサ26は、メッセージの構文をチェックし、メッセージをバッ
ファし、そしてメッセージを検査して210においてメッセージがそのシステム
・オブジェクトのためであるか否かを決定する。メッセージがシステム・オブジ
ェクトのためでない場合、メッセージはオブジェクトの名前を付されたインスタ
ンス化に対してアドレス指定されるであろう。入力メッセージ・プロセッサは、
236においてアクティブ・タスク・リスト名前テーブル(ATLNT)14c
の中の名前を付されたインスタンス化を捜して、指令が向けられたインスタンス
化されたオブジェクトの索引番号を決定する。図4に示されていないが、名前が
アクティブ・タスク・リスト名前テーブルの中に見つけられない場合、エラー・
メッセージが準備され、出力レジストリによりキューに入れられるであろう。入
力メッセージ・プロセッサはまた、236において索引番号を用いてアクティブ
・タスク・リスト・テーブル(ATLT)14bを走査して、オブジェクトの層
を含むROMの部分に対するポインタを見つける。次いで、入力メッセージ・プ
ロセッサは、238においてメッセージ及び索引番号をオブジェクトのパーサ層
に送る。オブジェクトのパーサ層は、索引番号を用いて、オブジェクトのどのイ
ンスタンス化がアドレス指定されつつあるかを決定し、かつRAMの適切な部分
に対するポインタを見つける。パーサ層はまた、メッセージを解釈し、240に
おいてメッセージが構成メッセージであるか、例えばピンを割り当てるため、又
は流れ優先度を設定するためかを決定する。240においてメッセージが構成メ
ッセージであることが決定された場合、構成データは、242においてRAMの
適切な部分に記憶される。
After instantiation, pins can be assigned to the instantiated object by sending a command message (if necessary) directly to the instantiated object. The functionality of a particular object may include performing certain input or output tasks that require a physical connection to an external device such as a keyboard or display. However, some objects may have functionality that requires only communication with other objects and / or the script server (as described above), in which case the pin is Need not be assigned. To assign a pin to an instantiated object, messages to the instantiated object are addressed to the object's instantiated name. For example, as shown in FIG. 4, when an incoming message is detected at 208, input message processor 26 checks the syntax of the message, buffers the message, and examines the message and at 210 the message is Determine if it is for a system object. If the message is not for a system object, the message will be addressed to the named instantiation of the object. The input message processor
Active Task List Name Table (ATLNT) 14c at 236
Look up the named instantiation in to determine the index number of the instantiated object to which the directive was directed. If not shown in FIG. 4, but the name cannot be found in the active task list name table, an error
The message will be prepared and queued by the output registry. The input message processor also scans the active task list table (ATLT) 14b using the index number at 236 to find a pointer to the portion of the ROM that contains the layer of the object. The input message processor then sends the message and index number at 238 to the object's parser layer. The object's parser layer uses the index number to determine which instantiation of the object is being addressed and finds a pointer to the appropriate portion of RAM. The parser layer also interprets the message and determines at 240 whether the message is a configuration message, eg, to assign a pin or set a flow priority. If it is determined at 240 that the message is a configuration message, the configuration data is stored at 242 in an appropriate portion of RAM.

【0044】 オブジェクトのパーサ層が240においてメッセージが構成メッセージでない
と決定した場合、メッセージは244においてオブジェクトの機能層により処理
され、そして制御がタイミング・カーネルに戻ってアクティブ・タスク・リスト
を走査する。インスタンス化されたオブジェクトの機能層はまた、オブジェクト
指向プロセッサ・アレイ10の外部の別のオブジェクト又はスクリプト・サーバ
に送られる必要があるメッセージを発生し得る。セルのインスタンス化からのメ
ッセージは、そのRAMの出力メッセージ・ヘッダ部分に置かれ、そして登録の
要求が、中央出力レジストリ34に送られる。中央出力レジストリ34は、メッ
セージに対するポインタのキューを出力メッセージ・ヘッダ部分の中に維持する
。キューは、1つ以上の出力流れマネジャにより走査される。図4に示されよう
に、出力メッセージが246においてキューの中にあると決定されたとき、出力
流れマネジャは、248においてキューの中の最高の優先度ポインタを読み出す
。ポインタは、メッセージを準備したオブジェクトのインスタンス化により用い
られたRAMの出力メッセージ・ヘッダ(OMH)部分を指し示す。出力流れマ
ネジャ(OFM)は、図4における250においてデータをそこで用いて、メッ
セージを準備しかつ送るか、又は「イベント反応」メッセージ・プロトコルを参
照して以下により詳細に説明されるように、「データ・イベント」を送る。
If the parser layer of the object determines at 240 that the message is not a configuration message, the message is processed at 244 by the functional layer of the object, and control returns to the timing kernel to scan the active task list. The functional layer of the instantiated object may also generate messages that need to be sent to another object or script server outside of the object-oriented processor array 10. The message from the cell instantiation is placed in the output message header portion of its RAM, and a request for registration is sent to the central output registry 34. The central output registry 34 maintains a queue of pointers to messages in the output message header portion. The queue is scanned by one or more output flow managers. As shown in FIG. 4, when the outgoing message is determined to be in the queue at 246, the output flow manager reads at 248 the highest priority pointer in the queue. The pointer points to the output message header (OMH) portion of the RAM used by the instantiation of the object that prepared the message. The output flow manager (OFM) uses the data there at 250 in FIG. 4 to prepare and send a message or, as described in more detail below with reference to the "event response" message protocol, " Send a data event.

【0045】 前述したように、オブジェクトは、十分なハードウエア資源(ピン及びRAM
)が別のインスタンス化をサポートするため利用可能である限り数回インスタン
ス化され得る。システム・オブジェクト22は、エントリをアクティブ・タスク
・リスト・テーブル14b、アクティブ・タスク・リスト名前テーブル14c及
びアクティブ・タスク・リスト・データ・スペース・テーブル14dの中に置く
ことにより、全てのオブジェクト・インスタンス化の軌跡を保持する。更に、メ
モリ・マネジャ38は、メモリ・ヒープに対するポインタを維持し、そのメモリ
・ヒープは、利用され、そして利用可能であるよりも多くのRAMを割り当てる
ことを要求された場合エラー・メッセージを発生する。いずれの必要なピンがオ
ブジェクトのインスタンス化に対して割り当てられた場合、メッセージ流れ優先
度は割り当てられることができる。代替として、流れ優先度は、ピンを割り当て
る前に割り当てられ得る。本好適実施形態に従って、0−7の流れ優先度が割り
当てられ得る。ここで、0はポーリングされた優先度を表し、そして1−7は重
要さの増大するレベルを示す。優先度レベルがゼロより大きいとき、インスタン
ス化されたオブジェクトからの出力メッセージは自動的に発生されるであろう。
流れ優先度は、オブジェクトのインスタンス化によりRAMのその出力メッセー
ジ・ヘッダ部分に記憶される。
As mentioned above, an object has sufficient hardware resources (pins and RAM).
) Can be instantiated several times as long as it is available to support another instantiation. The system object 22 places all object instances in the active task list table 14b, active task list name table 14c, and active task list data space table 14d by placing an entry in the table. The trajectory of transformation is maintained. In addition, the memory manager 38 maintains a pointer to the memory heap, which generates an error message when the memory heap is used and requested to allocate more RAM than is available. . Message flow priorities can be assigned if any required pins are assigned for object instantiation. Alternatively, the flow priority may be assigned before assigning the pins. According to the preferred embodiment, a flow priority of 0-7 may be assigned. Here, 0 represents the polled priority and 1-7 indicates increasing levels of importance. When the priority level is greater than zero, the output message from the instantiated object will be generated automatically.
The flow priority is stored in the outgoing message header portion of RAM by object instantiation.

【0046】 システム・オブジェクト 前述したように、システム・オブジェクトは、電力(パワー)がオブジェクト
指向プロセッサ・アレイに印加されたとき、それ自身自動的にインスタンス化す
る。システム・オブジェクトの動作は、図4aにより詳細に示されている。ここ
で図4aを参照すると、電力がオブジェクト指向プロセッサ・アレイに印加され
るとき、システム・オブジェクトは、図4aにおける1200において示される
ように、その使用のためのRAMの事前割り当てされた部分の動作を止める。1
202においてオブジェクト指向プロセッサ・アレイの低レベル診断を実行した
後に、システム・オブジェクトは、1204においてタイミング・カーネルを始
動する。この時点で、ホスト又はブートROMは、大域構成を、1206におい
て示されるように、「例外報告を使用可能にする」等のようなシステム・オブジ
ェクトに送り得る。次いで、システム・オブジェクトは、1208においてオブ
ジェクトをインスタンス化するためのホストからの指令を待つ。オブジェクトを
インスタンス化するための指令を受け取ると直ぐに、システム・オブジェクトは
、オブジェクト指向プロセッサ・アレイの中のハードウエア資源(例えば利用可
能なメモリ)を検査して、1210においてこの特定のオブジェクトをインスタ
ンス化するのに利用可能な十分な資源があるか否かを決定する。システム・オブ
ジェクトには、オブジェクト・ライブラリの中の各オブジェクトのハードウエア
要件の知識が与えられる必要がないことが理解されるであろう。十分な資源が利
用可能な場合、システム・オブジェクトは、1212において(例外が使用可能
にされる場合)エラー・メッセージを送り、そして1208に戻りオブジェクト
をインスタンス化するための指令を待つ。十分に開発されたアプリケーションに
おいて、例えば、システムへの指令がプログラムされたROMから来る場合、エ
ラーが存在しなく、そして、オブジェクト指向プロセッサ・アレイがホスト・プ
ロセッサに結合されるとき、図4aに示されるエラーの報告がアプリケーション
の開発中に用いられることが理解されるであろう。1210において十分な資源
が利用可能であると決定された場合、システム・オブジェクトは、1214にお
いて所定のオブジェクトのインスタンス化層を呼び出す。インスタンス化層は、
図4を参照して参照番号218から226において前述したタスクを実行し、そ
して図4aにおける1216において示されているシステム・オブジェクト(S
O)に対してそのメモリ・ポインタを戻し、そこでシステム・オブジェクトはそ
のポインタを受け取る。次いで、システム・オブジェクトは、図4を参照して参
照番号228において前述したように1218においてアクティブ・タスク・リ
ストに対して書き込む。アクティブ・タスク・リストに対する書き込み後に、シ
ステム・オブジェクトは、1220において制御をタイミング・カーネルから取
り、そして1222において全てのインスタンス化されたオブジェクトのタイミ
ング層を呼び出す。図4aを参照して更に以下に詳細に説明されるように、タイ
ミング層は、1224においてそれらの最悪ケース(WC)時間を報告し、そし
てシステム・オブジェクトは、1226において各インスタンス化されたオブジ
ェクトに対してオフセット値を計算する。これらの値は、図4を参照して234
において前述したように、オブジェクトに与えられる。次いで、システム・オブ
ジェクトは、1228において制御をタイミング・カーネルに戻し、そして12
08に戻り、オブジェクトをインスタンス化するためのいずれの更なる指令を待
つ。
System Objects As mentioned above, system objects automatically instantiate themselves when power is applied to an object-oriented processor array. The operation of the system object is shown in more detail in FIG. Referring now to FIG. 4a, when power is applied to the object-oriented processor array, the system object operates in a pre-allocated portion of the RAM for its use, as shown at 1200 in FIG. 4a. Stop. 1
After performing low-level diagnostics of the object-oriented processor array at 202, the system object starts the timing kernel at 1204. At this point, the host or boot ROM may send the global configuration to a system object, such as "Enable Exception Reporting", as shown at 1206. The system object then waits at 1208 for instructions from the host to instantiate the object. Upon receiving a command to instantiate the object, the system object checks hardware resources (eg, available memory) in the object-oriented processor array and instantiates this particular object at 1210. Determine if there are enough resources available to do so. It will be appreciated that the system objects need not be given knowledge of the hardware requirements of each object in the object library. If sufficient resources are available, the system object sends an error message at 1212 (if exceptions are enabled) and returns to 1208 to await instructions to instantiate the object. In a well-developed application, for example, if the commands to the system come from a programmed ROM, there are no errors, and when the object-oriented processor array is coupled to the host processor, as shown in FIG. It will be appreciated that error reporting is used during application development. If it is determined at 1210 that sufficient resources are available, the system object invokes at 1214 the instantiation layer of the given object. The instantiation layer is
Perform the tasks previously described at 218 to 226 with reference to FIG. 4 and perform the system object (S
Return the memory pointer to O), where the system object receives the pointer. The system object then writes to the active task list at 1218 as described above at 228 with reference to FIG. After writing to the active task list, the system object takes control from the timing kernel at 1220 and calls the timing layer of all instantiated objects at 1222. The timing layers report their worst case (WC) times at 1224, and system objects are added at 1226 to each instantiated object, as described in further detail below with reference to FIG. Calculate the offset value. These values are 234 with reference to FIG.
, As described above. The system object then returns control to the timing kernel at 1228 and
Return to 08 and wait for any further instructions to instantiate the object.

【0047】 メモリ・マネジャ 前述したように、メモリ・マネジャは、インスタンス化過程中利用可能なRA
Mの軌跡を保持する。詳細には、図4bに示されるように、システム・オブジェ
クトが自己インスタンス化された後に、メモリ・マネジャは、2200において
、オブジェクト指向プロセッサ・アレイの合計メモリ量を読み出し、そしてシス
テム・オブジェクトにより既に占有されている部分を越えたRAMの次の利用可
能な部分に対してヒープ・ポインタを設定する。次いで、メモリ・マネジャは、
2202においてRAMを割り当てるための要求を待つ。メモリ・マネジャがR
AMを割り当てるための要求をオブジェクトのインスタンス化層から受け取ると
き、メモリ・マネジャは、2204においてその要求を検査して、要求されたR
AMの量を決定する。メモリ・マネジャは、2206においてヒープ・ポインタ
を合計メモリ量から減算することにより現在利用可能なRAMの量を見つける。
メモリ・マネジャは、2208において、要求された量を利用可能な量と比較す
ることにより、RAMに対する要求が実現されることができるかを判断する。十
分なRAMがない場合、メモリ・マネジャは、2210においてエラー・メッセ
ージをオブジェクトのインスタンス化層に送る。アプリケーションが開発されつ
つあるときエラー報告のみが用いられることが理解されるであろう。十分なRA
Mがある場合、メモリ・マネジャは、2212において、要求するオブジェクト
にヒープ・ポインタの現在の位置を与えることにより、その要求するオブジェク
トにRAMを割り当てる。次いで、メモリ・マネジャは、2214においてRA
Mの要求された量をポインタに加えることによりインスタンス化されたオブジェ
クトにより現在占有されているRAMの部分を越えたRAMの部分の開始点にポ
インタを移動させることにより、ヒープ・ポインタの位置を調整する。次いで、
メモリ・マネジャは、2202に戻って、RAMに対する別の要求を待つ。
Memory Manager As described above, the memory manager uses the RA available during the instantiation process.
The trajectory of M is held. Specifically, as shown in FIG. 4b, after the system object is self-instantiated, the memory manager reads the total amount of memory in the object-oriented processor array at 2200 and is already occupied by the system object. Set the heap pointer to the next available portion of RAM beyond the portion being addressed. Then, the memory manager
At 2202, a request to allocate RAM is awaited. Memory manager is R
When a request to allocate an AM is received from the object's instantiation layer, the memory manager examines the request at 2204 and requests the requested R
Determine the amount of AM. The memory manager finds the amount of RAM currently available by subtracting the heap pointer from the total amount of memory at 2206.
The memory manager determines at 2208 whether the request for RAM can be fulfilled by comparing the requested amount to the available amount. If there is not enough RAM, the memory manager sends an error message at 2210 to the object instantiation layer. It will be appreciated that only error reporting is used as the application is being developed. Enough RA
If there is M, the memory manager allocates RAM at 2212 for the requesting object by giving the requesting object the current location of the heap pointer. The memory manager then determines RA at 2214.
Adjust the position of the heap pointer by moving the pointer to the start of the portion of RAM beyond the portion of RAM currently occupied by the object instantiated by adding the requested amount of M to the pointer I do. Then
The memory manager returns to 2202 to wait for another request for RAM.

【0048】 タイミング及びスケジューリング 本発明の一局面に従って、図4を参照して232及び234において前述した
ようにタスクをスケジューリングすることを実行するとき、システム・オブジェ
クトは、タイミング・カーネルによりいずれの特定の動作時間を割り当てられず
、またシステム・オブジェクトは、それ自身の使用のためいずれの時間も割り当
てない。詳細には、図4cに示されるように、タイミング・カーネルは、320
0において(図4aを参照して参照番号1204において前述したようにシステ
ム・オブジェクトにより開始されるとき)初期化する。新しいオブジェクトが3
202においてインスタンス化された場合、システム・オブジェクトは、図4a
を参照して参照番号1220において前述したように3203において制御をカ
ーネルから取る。システム・オブジェクトは、図4aを参照して参照番号122
2及び1224において前述したように3204において全てのインスタンス化
されたオブジェクトから最悪ケース時間を収集する。次いで、システム・オブジ
ェクトは、3206において、全ての最悪ケース時間を合計し、そしてまたシェ
ル・オペレーション(即ち、通信及びメッセージ処理)に対して割り当てられた
事前定義された時間を加える。それらの時間は、クロック周波数に依存するシス
テム・クロックによって与えられる。次いで、システム・オブジェクトの比例配
分タイマ(pro−rates timer)は、3208において各アクティ
ブ・オブジェクト及びシェルのため割込む。3210において、システム・オブ
ジェクトは、システム・クロック時間をオフセットの形式で割り当て、そのオフ
セットは、タイミング・カーネルにより用いられ、時間を各アクティブ・オブジ
ェクト及びシェルに対して割り当てる。各アクティブ・オブジェクトは、321
2において、その割り当てられたオフセットをその割り当てられたRAMの部分
に記憶する。次いで、システムは、3214において制御をタイミング・カーネ
ルに戻す。タイミング・カーネルは、3216においてアクティブ・タスク・リ
ストを走査する。アクティブ・タスク・リストの中の各オブジェクトに対して、
タイミング・カーネルは、プロセッサが3218において示されるそのオブジェ
クトに対するオフセットに基づく適切な時間にそのオブジェクトのタスクに対し
て多数のクロック・サイクルを当てることを可能にする。しかしながら、オブジ
ェクトは、それに割り当てられた全てのクロック・サイクルを必要としないこと
もあり得る。例えば、オブジェクトがキーボード又はエンコーダに結合された入
力プロセッサであり、かつ入力アクティビティが起こっていない場合、オブジェ
クトはアイドル状態であろう。アクティブ・タスク・リストの中のオブジェクト
がいずれの時間を必要としない場合、時間は3220においてシステム・オブジ
ェクトに与えられる。システム・オブジェクトが3220において時間を与えら
れるとき、システム・オブジェクトは、3202においてインスタンス化された
新しいオブジェクトがあったかを知るため見る。新しいオブジェクトがインスタ
ンス化されなかった場合、システム・オブジェクトは、3220において新しい
オブジェクトをインスタンス化するための指令があるかを知るため見る。新しい
オブジェクトをインスタンス化するための指令があった場合、システム・オブジ
ェクトは、前述したように3224においてオブジェクトのインスタンス化層を
呼び出す。3222においてインスタンス化するための指令がない場合、タイミ
ング・カーネルは、3216においてアクティブ・タスク・リスト(ATL)を
走査するのを継続する。
Timing and Scheduling In accordance with one aspect of the present invention, when performing the scheduling of tasks as described above at 232 and 234 with reference to FIG. No operating time can be allocated, and the system object does not allocate any time for its own use. In particular, as shown in FIG.
0 (when initiated by a system object as described above at reference numeral 1204 with reference to FIG. 4a). 3 new objects
When instantiated at 202, the system object is
, Control is taken from the kernel at 3203 as described above at reference numeral 1220. The system object is identified by reference numeral 122 with reference to FIG.
Collect the worst case time from all instantiated objects at 3204 as described above at 2 and 1224. The system object then sums all the worst case times at 3206, and also adds the predefined time allotted for shell operations (ie, communication and message processing). These times are given by the system clock which depends on the clock frequency. The system object's pro-rates timer then interrupts at 3208 for each active object and shell. At 3210, the system object assigns a system clock time in the form of an offset, which offset is used by the timing kernel to assign time to each active object and shell. Each active object has 321
At 2, the assigned offset is stored in a portion of the assigned RAM. The system then returns control to the timing kernel at 3214. The timing kernel scans the active task list at 3216. For each object in the active task list,
The timing kernel allows the processor to devote a number of clock cycles to the object's task at the appropriate time based on the offset for that object as shown at 3218. However, an object may not need every clock cycle assigned to it. For example, if the object is an input processor coupled to a keyboard or encoder, and no input activity has occurred, the object will be idle. If an object in the active task list does not require any time, time is provided to the system object at 3220. When the system object is given time at 3220, it looks to see if there was a new object instantiated at 3202. If the new object was not instantiated, the system object looks at 3220 to see if there is a command to instantiate the new object. If there is a command to instantiate a new object, the system object calls the object's instantiation layer at 3224 as described above. If there are no instructions to instantiate at 3222, the timing kernel continues to scan the active task list (ATL) at 3216.

【0049】 代替実施形態の初期化 本発明に従ったオブジェクト指向プロセッサ・アレイは、代替実施形態に従っ
て、僅かに異なる要領でメモリを利用しかつオブジェクトをインスタンス化する
。特に、図5に示されるように、メモリ314は、僅かに異なる要領で配列され
、即ち、以下に説明されるようにインスタンス化されたオブジェクトがポインタ
を記憶するメモリの予約済み範囲314eがある。メモリのこの予約済み範囲を
設けることは、アクティブ・タスク・リスト名前テーブル、又はアクティブ・タ
スク・リストデータ・スペース・テーブルの必要をなくし、アクティブ・タスク
・リスト314bのみが必要とされる。しかしながら、この予約済み範囲を設け
ることは、決して用いられないメモリの無駄である場合がある。
Initialization of the Alternative Embodiment The object-oriented processor array according to the present invention utilizes memory and instantiates objects in a slightly different manner, according to an alternative embodiment. In particular, as shown in FIG. 5, the memory 314 is arranged in a slightly different manner, ie, there is a reserved range 314e of memory in which the instantiated objects store pointers as described below. Providing this reserved range of memory eliminates the need for an active task list name table, or active task list data space table, and only the active task list 314b is needed. However, providing this reserved range may be a waste of memory that is never used.

【0050】 ここで図5及び図6を参照すると、オブジェクト指向プロセッサ・アレイが図
6における300においてパワーオンされるとき、システム・オブジェクトは、
図6における302においてそれ自身を、図5に示されるようにRAMの部分3
14aに自動的にインスタンス化する。自動インスタンス化中に、システム・オ
ブジェクトはまた、アクティブ・タスク・リスト、即ちオブジェクトに対するポ
インタのリストをオブジェクト・ライブラリに維持するためRAMの部分314
bを確保する。従って、オブジェクト指向プロセッサ・アレイは、ホスト又はブ
ートROMから高レベル指令を受け取る状態にある。
Referring now to FIGS. 5 and 6, when the object-oriented processor array is powered on at 300 in FIG. 6, the system objects are:
At 302 in FIG. 6, itself as shown in FIG.
14a. During auto-instantiation, the system object also stores a portion 314 of RAM to maintain an active task list, a list of pointers to the objects, in the object library.
secure b. Thus, the object oriented processor array is ready to receive high level commands from the host or boot ROM.

【0051】 この代替実施形態に従ったホストからオブジェクト指向プロセッサ・アレイへ
の例示的構成指令は、{zF(ENC4)}の形を取る。ここで、zはシステム
・オブジェクトのアドレスであり、Fはインスタンス化するための指令であり、
ENC4はオブジェクト・ライブラリの中のオブジェクトの名前、即ち4ワイド
・エンコーダ(4−wide encoder)である。この代替実施形態に従
って、異なるオブジェクトの名前(アドレス)は、機能的に与えられる、例えば
LCDT(テキストLCDコントローラ)、ENC4(4ワイド・エンコーダ)
、KB44(4×4キーパッド・コントローラ)等である。図6における304
において与えられたこの指令に応答して、入力メッセージ・プロセッサは、30
6において指令の構文をチェックし、そしてシステム・オブジェクトに対する指
令をパースする。システム・オブジェクトは、308において呼びをオブジェク
ト「ENC4」のインスタンス化層に送り、オブジェクト「ENC4」にそれ自
身インスタンス化することを告げる。システム・オブジェクトからの指令に応答
して、オブジェクト「ENC4」のインスタンス化層は、310において「EN
C4」の先のインスタンス化に対して予約済みメモリのその事前定義された範囲
314eをチェックし、そして312において1つの(他の)インスタンス化の
ため利用可能な十分なハードウエア資源があるか否かを決定する。この代替実施
形態に従って、ライブラリの中の各オブジェクトには、RAMの小さいブロック
(図5における314eの部分)に対する事前コード化されたアドレスが与えら
れ、従ってそのアドレスは、インスタンス化の軌跡を保持するのに使用するため
確保される。312において十分な資源が利用可能でないことが決定された場合
、313において、出力レジストリにより受け取られたエラー・メッセージが、
送られ、そしてホストに送られ、そのホストは316においてエラー・メッセー
ジを受け取る。312において十分な資源がインスタンス化のため存在すると決
定された場合、「ENC4」のインスタンス化層は、318において、メモリ・
マネジャを呼び出し、その必要性に対して十分なRAMの割り当てを要求する。
メモリ・マネジャは、「ヒープ」の中の利用可能なメモリの次のバイトに対する
ポインタ、並びにヒープの端のアドレスを維持する。「nバイト」の要求に応答
して、メモリ・マネジャは、320において、「nバイト」をヒープ・アドレス
の端から減算し、そしてその結果をヒープ・ポインタと比較して、利用可能な十
分なRAMが存在するか否かを決定する。十分なRAMが利用可能でない場合、
エラー・メッセージは、322において出力レジストリに送られ、その出力レジ
ストリは、メッセージをホストに通す。320においてRAMが利用可能である
と決定された場合、メモリ・マネジャは、324において、ポインタを「ENC
4」のインスタンス化に対して割り当て、そしてヒープ・ポインタをnバイトだ
け増分する。「ENC4」のインスタンス化層は、326においてポインタを受
け取り、328においてそのポインタを314eの中の予約済みメモリのそのブ
ロックに書き込む。図6に図示されているように、ポインタは、メモリ・ブロッ
ク314eの開始点を指し示す。この代替実施形態に従って、オブジェクト「E
NC4」は、出力メッセージ・ヘッダのためオブジェクト「ENC4」に割り当
てられたRAM空間の部分を割り当て、そして「私用データ」のためオブジェク
ト「ENC4」に割り当てられたRAMの別の部分を割り当てる。オブジェクト
「ENC4」がインスタンス化されたとき、システム・オブジェクトの中のタス
ク・ディスパッチャは、330においてオブジェクト「ENC4」に対するポイ
ンタをアクティブ・タスク・リスト(ATL)に記憶する。この代替実施形態に
従って、アクティブ・タスク・リストの中の位置は、オブジェクトのインスタン
ス化のインスタンス化名として用いられる。例えば、アクティブ・タスク・リス
トが6個のエントリ(a−f)を有する場合、第1のインスタンス化されたオブ
ジェクトは、インスタンス化名「a」、第2の「b」、第3の「c」等を有する
であろう。オブジェクトのインスタンス化との更なる通信は、この名前を利用す
る。
An exemplary configuration command from the host to the object-oriented processor array according to this alternative embodiment takes the form {zF (ENC4)}. Where z is the address of the system object, F is the command to instantiate,
ENC4 is the name of the object in the object library, i.e., a 4-wide encoder. According to this alternative embodiment, the names (addresses) of the different objects are given functionally, for example LCDT (text LCD controller), ENC4 (4 wide encoder)
, KB44 (4 × 4 keypad controller) and the like. 304 in FIG.
In response to this command given at
At step 6, check the syntax of the directive and parse the directive for the system object. The system object sends a call to the instantiation layer of object "ENC4" at 308, telling object "ENC4" to instantiate itself. In response to a command from the system object, the instantiation layer of object "ENC4"
Check its predefined range 314e of reserved memory for the previous instantiation of "C4" and at 312 whether there is enough hardware resources available for one (other) instantiation To decide. According to this alternative embodiment, each object in the library is given a pre-coded address for a small block of RAM (portion 314e in FIG. 5), and that address therefore keeps track of the instantiation. Reserved for use. If it is determined at 312 that not enough resources are available, at 313 the error message received by the output registry is:
Sent to the host, which receives the error message at 316. If it is determined at 312 that sufficient resources exist for instantiation, then the instantiation layer of "ENC4"
Call the manager and request sufficient RAM allocation for its needs.
The memory manager maintains a pointer to the next byte of available memory in the "heap", as well as the address of the edge of the heap. In response to the "n bytes" request, the memory manager subtracts "n bytes" from the end of the heap address at 320 and compares the result with the heap pointer to determine if there is enough available Determine if RAM is present. If not enough RAM is available,
The error message is sent to the output registry at 322, which passes the message to the host. If it is determined at 320 that RAM is available, the memory manager moves the pointer to "ENC" at 324.
4 "and instantiate the heap pointer by n bytes. The instantiation layer of "ENC4" receives the pointer at 326 and writes the pointer at 328 to that block of reserved memory in 314e. As shown in FIG. 6, the pointer points to the start of memory block 314e. According to this alternative embodiment, the object "E
"NC4" allocates a portion of RAM space allocated to object "ENC4" for outgoing message headers and another portion of RAM allocated to object "ENC4" for "private data". When object "ENC4" is instantiated, the task dispatcher in the system object stores at 330 a pointer to object "ENC4" in the active task list (ATL). According to this alternative embodiment, the position in the active task list is used as the instantiation name of the object instantiation. For example, if the active task list has six entries (af), the first instantiated object will have the instantiation name "a", the second "b", the third "c". And so on. Further communication with the instantiation of the object will make use of this name.

【0052】 オブジェクトが前述したようにインスタンス化された後に、ピンが、本発明に
従った指令言語を用いてホストによりオブジェクトに対して割り当てられること
ができる。例えば、ホストからオブジェクト指向プロセッサ・アレイへの形式{
aP(B)}の指令は、名前「a」を有するインスタンス化されたオブジェクト
に向けられ、そして指令Pを利用して、ピンを割り当て、そこにおいて、パラメ
ータBは「a」に対して割り当てられたピンの位置である。図6において示され
るように、そのような指令が332において出される。そのようなメッセージを
ホストから受け取ると直ぐに、入力メッセージ・プロセッサは、334において
正しい構文に対してそのメッセージをチェックし、そして構文が正しくない場合
エラー・メッセージをホストに対して発生するであろう。アドレス「a」に基づ
いて、入力メッセージ・プロセッサは、336においてアクティブ・タスク・リ
スト(ATL)の中の「a」を捜し、メッセージをオブジェクト「ENC4」に
向ける。この代替実施形態に従って、「a」は、アクティブ・タスク・リストの
中の第1のポインタであり、「b」は第2のポインタである等々である。本明細
書で与えられる本事例に従って、「a」でのポインタは、オブジェクト「ENC
4」を指し示し、従って入力メッセージ・プロセッサは、338においてメッセ
ージをオブジェクト「ENC4」に送る。オブジェクト「ENC4」は、アドレ
ス指定されたメッセージを受け取り、そして図6における340においてその予
約済みメモリを走査して、それ自身の名前を付されたインスタンス化の割り当て
られた作業スペースに対するポインタを見つける。次いで、ピン番号は、342
においてインスタンス化「a」の私用データ範囲の中にオブジェクト「ENC4
」により記憶される。一旦ピンがオブジェクト「ENC4」のインスタンス化「
a」に対して割り当てられてしまうと、インスタンス化は動作し、そしてピンは
ゼロのデフォルト流れ優先度でもって機能する。
After the object is instantiated as described above, pins can be assigned to the object by the host using a command language according to the present invention. For example, from host to object-oriented processor array
The command of aP (B)} is directed to the instantiated object with the name "a" and assigns a pin using command P, where parameter B is assigned to "a". Pin position. As shown in FIG. 6, such a command is issued at 332. Upon receiving such a message from the host, the input message processor checks the message at 334 for the correct syntax and will generate an error message to the host if the syntax is incorrect. Based on address "a", the input message processor looks for "a" in the active task list (ATL) at 336 and directs the message to object "ENC4". According to this alternative embodiment, "a" is the first pointer in the active task list, "b" is the second pointer, and so on. In accordance with the present case given herein, the pointer at "a" is the object "ENC
4 ", so the input message processor sends the message at 338 to the object" ENC4 ". Object "ENC4" receives the addressed message, and scans its reserved memory at 340 in FIG. 6 to find a pointer to its own named instantiated assigned workspace. Then, the pin number is 342
In the private data range of the instantiation "a", the object "ENC4
Is stored. Once the pin instantiates the object "ENC4"
Once assigned to "a", the instantiation works and the pin works with a default flow priority of zero.

【0053】 新しいオブジェクトが前述のようにインスタンス化される度に、全てのタスク
のタイミングは再計算される。従って、図6において示されるように、システム
・オブジェクトは、344において全てのタスクを停止し、そしてオブジェクト
の全てのインスタンス化のタイミング層を呼び出す。インスタンス化は、346
において最悪ケース(WC)時間を有してシステム・オブジェクトに応答し、そ
して最悪ケース時間を用いて、次のアクティブ・タスクに対するオフセットを計
算する。オブジェクトの各インスタンス化は、348においてそのオフセットを
その割り当てられたRAMの私用データ範囲に記憶する。各オブジェクト・イン
スタンス化により用いられた最悪ケース時間と実際時間との間の時間は、背景タ
スクに対してシステム・オブジェクトにより用いられる。全てのタスクのタイミ
ングが再計算された後に、システム・オブジェクトは、350において戻って、
図7を参照して以下により詳細に説明されるアクティブ・タスク・リスト(AT
L)を走査する。図6に示されるように、タイミングは、352においてホスト
指令に応答して再計算され、特定の優先度レベルを特定のオブジェクト・インス
タンス化に対して割り当て得る。優先度のスケジューリングは、スケジューラに
より実行され得て、スケジューラは、システム・オブジェクトの一部又は別個の
エンティティと見なされ得る。
Each time a new object is instantiated as described above, the timing of all tasks is recalculated. Thus, as shown in FIG. 6, the system object stops all tasks at 344 and calls the timing layer of all instantiations of the object. Instantiation is 346
Respond to the system object with the worst case (WC) time at and use the worst case time to calculate the offset for the next active task. Each instantiation of the object stores its offset at 348 in its assigned RAM private data range. The time between the worst case time and the actual time used by each object instantiation is used by the system object for background tasks. After the timing of all tasks has been recalculated, the system object returns at 350,
The active task list (AT) described in more detail below with reference to FIG.
L) is scanned. As shown in FIG. 6, the timing may be recalculated in response to a host command at 352 and a particular priority level may be assigned to a particular object instantiation. Priority scheduling may be performed by a scheduler, which may be considered as part of a system object or a separate entity.

【0054】 ここで図7を参照すると、システム・オブジェクトのタスク・ディスパッチャ
は、400において開始しアクティブ・タスク・リストを走査し、そして402
において新しいオブジェクト・インスタンス化が加えられたか否かを周期的にチ
ェックする。実際には、スケジューラは、それらの優先度に基づいてタスクに対
してタイマを設定し、そして背景タスクは、余分の時間が利用可能であるとき完
了される。従って、図7に示される動作の順序は、必ずしも、動作がスケジュー
ラによってスケジューリングされる順序ではない。新しいオブジェクト・インス
タンス化が加えられた場合、前述の手順(図6における344−350)は、図
7における404において実行され、次いでシステム・オブジェクトは、アクテ
ィブ・タスクの走査に戻る。これは、出力メッセージ・プロセッサ及び入力メッ
セージ・プロセッサを監視してメッセージが導出される必要があるか否かを決定
することを含む。例えば、406において、到来メッセージが(入力メッセージ
・プロセッサのバッファの中で)保留であるかが決定される。そうである場合、
入力メッセージ・プロセッサは、408においてアクティブ・タスク・リスト(
ATL)を検査して、どのオブジェクトに対してメッセージがアドレス指定され
たかを決定し、そしてそのメッセージをオブジェクトに通す。オブジェクトのパ
ーサ層は、410において、その事前に割り当てられた予約済みメモリを検査し
て、それ自身のどのインスタンス化がメッセージを受け取るべきかを決定し、そ
してアクティブ・タスクとして処理するためのオブジェクトの適切な層(機能的
、タイミング、又はインスタンス化)に対してメッセージを通す。次いで、シス
テム・オブジェクトは、412において出力メッセージが出力レジストリのキュ
ーの中にあるか否かをチェックする。メッセージがキューの中にある場合、出力
メッセージ・プロセッサは、414において出力レジストリの中の最高優先度の
ポインタを読み出す。キューの中のポインタは、メッセージを発生するオブジェ
クトの出力メッセージ・ヘッダを指し示す。前述したように、出力メッセージ・
ヘッダは、RAMの中の出力バッファに対するポインタ、並びに送られるべきデ
ータのタイプの指示、及び出力メッセージ・ヘッダがキューに入れられたか否か
を指示するフラグ、等を含む。416において、出力メッセージ形成器は、出力
メッセージ・ヘッダ(OMH)及びデータを用いて、ネットワーク上への出力の
ためのメッセージを生成し、ネットワークはそのメッセージを送り、次いでキュ
ー・フラグを降ろす。この代替実施形態に従ったメッセージ・フォーマットの例
は、{ToArraytoobjMethod(data)FromObjfr
omarray}であり、そこにおいてフィールドはケースにより区切られる(
delimited)。ToArrayは、受信者のプロセッサ・アドレスであ
り、toobjは受信者のオブジェクト・アドレスであり、Methodはファ
ンクション(関数)であり、dataはデータであり、Fromからの最後のフ
ィールドは送信者のアドレスを示す。From以下のアドレス指定がブランクで
ある場合、ホストが送信者である。次いで、システム・オブジェクトは、400
においてアクティブ・タスク・リストの走査を再開する。
Referring now to FIG. 7, the system object's task dispatcher starts at 400, scans the active task list, and 402
Check periodically to see if a new object instantiation has been added. In effect, schedulers set timers for tasks based on their priorities, and background tasks are completed when extra time is available. Thus, the order of the operations shown in FIG. 7 is not necessarily the order in which the operations are scheduled by the scheduler. If a new object instantiation is added, the above procedure (344-350 in FIG. 6) is performed at 404 in FIG. 7, and then the system object returns to scanning for active tasks. This involves monitoring the output message processor and the input message processor to determine whether the message needs to be derived. For example, at 406, it is determined whether the incoming message is pending (in the buffer of the input message processor). If so,
The input message processor determines at 408 the active task list (
ATL) to determine to which object the message was addressed and pass the message through the object. The object's parser layer examines, at 410, its pre-allocated reserved memory to determine which instantiation of itself should receive the message, and of the object for processing as an active task. Pass the message to the appropriate layer (functional, timing, or instantiation). The system object then checks at 412 if the output message is in the queue of the output registry. If the message is in the queue, the output message processor reads 414 the highest priority pointer in the output registry. A pointer in the queue points to the output message header of the object that originated the message. As mentioned earlier, the output message
The header includes a pointer to the output buffer in RAM, as well as an indication of the type of data to be sent, a flag indicating whether the output message header has been queued, and the like. At 416, the outgoing message former uses the outgoing message header (OMH) and data to generate a message for output on the network, which sends the message, and then clears the queue flag. An example of a message format according to this alternative embodiment is @ToArraytoobjMethod (data) FromObjfr
omarray $, where the fields are delimited by cases (
delimited). ToArray is the recipient's processor address, toobj is the recipient's object address, Method is a function, data is data, and the last field from the From is the sender's address. Show. If the address designation below From is blank, the host is the sender. Then the system object is 400
Resumes scanning the active task list at.

【0055】 中央スクリプト・サーバ ここで図8を参照すると、オブジェクト指向プロセッサ・アレイ10の好適な
実施形態は、複数のピン、例えばp0からp39を有する単一のチップ上に含ま
れている。3個のピン、例えばp0、p1及びp2は、ネットワーク・リンク2
5を介してホスト・プロセッサ又はスクリプト・サーバ50及び追加のオブジェ
クト指向プロセッサ・アレイ、例えば10a−10cとの通信リンクのため確保
されていることが好ましい。そして、2個のピン、例えばp38及びp39は、
DC電源52に対する接続のため確保されていることが好ましい。本好適実施形
態に従って、3個のピンは、1996年5月13日に出願された共有された同時
継続出願No.08/645,262に記載された通信ネットワークを実行する
ため用いられる。なお、上記出願No.08/645,262は本明細書に援用
されている。しかしながら、ある事例において、ホスト50と各アレイ10、1
0a−10cとの間に、例えば上記アレイが相互に実質的な距離だけ物理的に移
されているとき、上記アレイが実質的に異なる速度で動作しているとき、又はた
だ1つのみのアレイが用いられているとき、別々のポイント・ツー・ポイント・
リンクを設けることは有利であり得る。これらの状況においては、ただ2個のピ
ンが、リンクをサポートするため必要とされ、1995年10月20日に出願さ
れた共有された同時継続出願No.08/545,881に開示されたポイント
・ツー・ポイント通信方法を用いてよい。なお、上記出願No.08/545,
881は本明細書に援用されている。また、スクリプト・サーバも他の通常のマ
イクロプロセッサ及び/又は周辺装置に結合され、従来のマイクロプロセッサ・
システムを有する分散型オブジェクト指向処理の双方を含むシステムを生成し得
ることに注目すべきである。
Central Script Server Referring now to FIG. 8, a preferred embodiment of the object-oriented processor array 10 is included on a single chip having a plurality of pins, eg, p0 to p39. Three pins, eg, p0, p1 and p2, are connected to network link 2
Preferably, it is reserved for a communication link with a host processor or script server 50 and an additional object-oriented processor array, e.g. And two pins, for example p38 and p39,
Preferably, it is secured for connection to the DC power supply 52. In accordance with the presently preferred embodiment, the three pins are shared by co-pending co-pending application no. 08 / 645,262 for implementing the communication network described therein. In addition, the above-mentioned application No. 08 / 645,262 is incorporated herein by reference. However, in some cases, the host 50 and each array 10, 1
0a-10c, for example, when the arrays are physically displaced from each other by a substantial distance, when the arrays are operating at substantially different speeds, or when only one array is present. Is used, separate point-to-point
Providing a link may be advantageous. In these situations, only two pins are needed to support the link and the shared co-pending application no. The point-to-point communication method disclosed in 08 / 545,881 may be used. In addition, the above-mentioned application No. 08/545,
881 is incorporated herein by reference. Also, a script server is coupled to other conventional microprocessors and / or peripherals, and the conventional microprocessor
It should be noted that a system can be created that includes both distributed object oriented processing with the system.

【0056】 本発明に従って、ホスト・プロセッサ50は、高レベル指令言語を利用してオ
ブジェクト指向プロセッサ・アレイ10、10a−10cを構成するため用いら
れ、そしてまたオブジェクト指向プロセッサ・アレイと正常動作中に通信するた
め用いられるのが好ましい。本発明の一実施形態に従って、ホスト・プロセッサ
は、中央スクリプト・サーバとして動作し、オブジェクト指向プロセッサ・アレ
イにより発生された全てのメッセージは、処理のためスクリプト・サーバに送ら
れる。詳細には、オブジェクト指向プロセッサ・アレイ10、10a−10cの
1つにおけるインスタンス化されたオブジェクトが別のオブジェクトに送るべき
データを有するとき、そのデータは、最初にスクリプト・サーバ50に送られ、
そしてスクリプト・サーバ上で実行するプログラムは、データの宛先を決定する
。スクリプト・サーバ上のプログラムはまた、データを別のオブジェクト上へ送
る前にそのデータを操作し得る。本発明に従って、オブジェクト指向プロセッサ
・アレイ10、10a−10cとスクリプト・サーバとの間の通信は、「イベン
ト反応」モデルに従って管理される。
In accordance with the present invention, host processor 50 is used to construct object-oriented processor arrays 10, 10a-10c utilizing a high-level command language, and also during normal operation with object-oriented processor arrays. It is preferably used for communication. According to one embodiment of the invention, the host processor operates as a central script server, and all messages generated by the object-oriented processor array are sent to the script server for processing. Specifically, when an instantiated object in one of the object-oriented processor arrays 10, 10a-10c has data to send to another object, that data is first sent to the script server 50,
Then, the program executed on the script server determines a data destination. A program on the script server may also manipulate the data before sending it on another object. In accordance with the present invention, communication between the object-oriented processor arrays 10, 10a-10c and the script server is managed according to an "event response" model.

【0057】 イベント反応モデル 幾つかのオブジェクト指向プロセッサ・アレイが単一のスクリプト・サーバに
結合されるとき、スクリプト・サーバは、その幾つかのオブジェクト指向プロセ
ッサ・アレイとの多くの同時発生の対話に参加するのを要求され得る。各同時発
生の対話は、スクリプト・サーバの中の別個のスレッドを要求する。しかしなが
ら、イベント反応モデルは、開発者を複雑にマルチスレッドされたスクリプト・
サーバ・コードを書き込むタスクから解放する。更に、入力装置に結合されたオ
ブジェクト指向プロセッサ・アレイの中のオブジェクトは、データ・イベントを
、スクリプト・サーバがそれらを処理する(又は処理することを望む)ことがで
きるより早い速度で発生することができる。例えば、回転エンコーダの回転は、
そのエンコーダが1つの回り止めだけ進められる毎にデータ・イベントを生じ得
る。これは、著しい量の冗長な計算及び通信をもたらす。イベント反応モデルは
、スクリプト・サーバがデータがそのスクリプト・サーバに送られるときを制御
するのを可能にすることにより上記問題を解決する。本発明のイベント反応モデ
ルに従って、オブジェクト指向プロセッサ・アレイ10が送るべきメッセージを
有するとき、オブジェクト指向プロセッサ・アレイ10は、データ・イベントを
発生する。データ・イベントは、スクリプト・サーバ50でもって登録され、そ
してスクリプト・サーバ50にバス51を介して結合されている各オブジェクト
指向プロセッサ・アレイ10、10a−10cの出力メッセージ・プロセッサで
もって登録される。スクリプト・サーバ50は、データ・イベントの肯定応答を
バス25上へ送る前にオブジェクトとスクリプト・サーバとの間の可変量のI/
O交換を可能にすることによりデータ・イベントに反応する。1つの動作モード
に従って、データ・イベントが肯定応答されるまで、他のデータ・イベントは、
いずれのオブジェクト指向プロセッサ・アレイ10、10a−10c上のいずれ
のオブジェクトからスクリプト・サーバ50に送られない。別の動作モードに従
って、固定数のデータ・イベントが同時に保留状態にあり得る。同時に保留状態
にあり得るデータ・イベント数は、スクリプト・サーバ50により決定され、そ
して各オブジェクト指向プロセッサ・アレイは、それらがスクリプト・サーバに
より初期化されたとき、それらの出力メッセージ・プロセッサがいずれの1回に
許される保留イベントの数を知るように構成される。各オブジェクト指向プロセ
ッサ・アレイの中の出力メッセージ・プロセッサは、保留データ・イベントのカ
ウンタを保持する。データ・イベントが発生されるとき、カウンタは増分され、
そしてデータ・イベントが肯定応答されるとき、カウンタは減分される。当業者
は、許される保留データ・イベント数がスクリプト・サーバ上で実行するのに必
要であるスレッド数を決定することを認めるであろう。
Event Response Model When several object-oriented processor arrays are combined into a single script server, the script server is responsible for many concurrent interactions with its several object-oriented processor arrays. You may be required to participate. Each concurrent interaction requires a separate thread in the script server. However, the event-response model requires developers to use complex multi-threaded scripts
Frees up the task of writing server code. In addition, objects in the object-oriented processor array coupled to the input device generate data events at a faster rate than the script server can process (or want to process) them. Can be. For example, the rotation of the rotary encoder is
A data event may occur each time the encoder is advanced by one detent. This results in a significant amount of redundant computation and communication. The event response model solves the above problem by allowing a script server to control when data is sent to that script server. According to the event response model of the present invention, when the object-oriented processor array 10 has a message to send, the object-oriented processor array 10 generates a data event. The data event is registered with the script server 50 and with the output message processor of each object-oriented processor array 10, 10a-10c coupled to the script server 50 via a bus 51. . Script server 50 provides a variable amount of I / O between the object and the script server before sending an acknowledgment of the data event on bus 25.
React to data events by enabling O-exchange. According to one mode of operation, until a data event is acknowledged, another data event is:
It is not sent to the script server 50 from any object on any of the object oriented processor arrays 10, 10a-10c. According to another mode of operation, a fixed number of data events may be pending at the same time. The number of data events that can be pending at the same time is determined by the script server 50, and each object-oriented processor array has its outgoing message processor, when they are initialized by the script server, It is configured to know the number of pending events allowed at one time. The output message processor in each object-oriented processor array maintains a counter of pending data events. When a data event occurs, the counter is incremented,
And when the data event is acknowledged, the counter is decremented. One skilled in the art will recognize that the number of pending data events allowed will determine the number of threads required to execute on the script server.

【0058】 複数のオブジェクト指向プロセッサ・アレイが中央スクリプト・サーバにバス
を介して結合されるとき、各オブジェクト指向プロセッサ・アレイは、ネットワ
ーク・トラフィックを知り、そして特定の目標(スクリプト・サーバ)受信機と
関連したデータ・イベントが全てのオブジェクト指向プロセッサ・アレイでもっ
て登録される。任意の時間に同時に保留状態にあり得るデータ・イベント数は、
上記目標により決定され、そして各オブジェクト指向プロセッサ・アレイに知ら
れる。目標は、メッセージの流れをデータ・イベントの登録に基づいて調停する
。調停はFIFOベースであり、又は目標とされた受信機は、(許された保留デ
ータ・イベント数が1より大きい場合)より高い流れ優先度を有する後に発生さ
れたデータ・イベントに対して優先権を許可し得る。前述したように、インスタ
ンス化されたオブジェクトの出力メッセージ・バッファは、メッセージ流れ優先
度のため設けられる。イベント反応モデルは、スクリプト・サーバ・コードが、
許された保留データ・イベント数に依存するスクリプト・サーバ・コードの中の
スレッド数に関して線形であることを可能にする。
When multiple object-oriented processor arrays are coupled via a bus to a central script server, each object-oriented processor array knows the network traffic and has a specific target (script server) receiver. Is registered with all object-oriented processor arrays. The number of data events that can be pending at any given time is
Determined by the above goals and known to each object-oriented processor array. The goal arbitrates message flow based on the registration of data events. The arbitration may be FIFO based, or the targeted receiver may have a higher priority on flow events (if the number of pending data events allowed is greater than 1) for subsequently generated data events. May be allowed. As mentioned above, the output message buffer of the instantiated object is provided for message flow priority. The event response model is based on script server code
Allows to be linear in the number of threads in the script server code depending on the number of pending data events allowed.

【0059】 多数のオブジェクト指向プロセッサ・アレイがスクリプト・サーバに共通バス
ではなく個々のリンクにより結合されたとき、スクリプト・サーバは、オブジェ
クト指向プロセッサ・アレイの中のセルのメッセージ流れ優先度に従って各オブ
ジェクト指向プロセッサ・アレイと通信する。ハブ上のコードの中のスレッド数
は、各オブジェクト指向プロセッサ・アレイにおいて許可された保留データ・イ
ベント数の合計に依存する。
When multiple object-oriented processor arrays are coupled to the script server by individual links, rather than by a common bus, the script server will assign each object according to the message flow priority of the cells in the object-oriented processor array. Communicate with a directional processor array. The number of threads in the code on the hub depends on the total number of pending data events allowed in each object-oriented processor array.

【0060】 イベント反応モデルの例(ここで保留データ・イベントの最大数は1である)
が表1を参照して以下に説明される。
Example Event Response Model (where the maximum number of pending data events is 1)
Are described below with reference to Table 1.

【0061】[0061]

【表1】 [Table 1]

【0062】 表1に示されるように、t1においてスクリプト・サーバに送るべきデータを
有するオブジェクトは、[dataEvent]をスクリプト・サーバに送り、
そしてメッセージをスクリプト・サーバに送ることができる全ての他のオブジェ
クトは、その時点でデータ・イベントの送信を止めなければならない。スクリプ
ト・サーバがt1においてデータ・イベントを送ったオブジェクトからデータを
受け取る用意ができたとき、スクリプト・サーバはt2において{cmdEve
ntを発行する。アドレス指定されたオブジェクトは、t3において、それが送
らなければならないデータの一部をも含む}cmdAckを用いて応答する。次
いで、スクリプト・サーバは、t4においてオブジェクトがそのデータの残りの
部分を送ることを要求する。オブジェクトは、t5においてデータの残りの部分
を送り、そしてスクリプト・サーバは、全てのデータがt5+nにおいて受け取
られたことを、[dataAck]を送ることにより肯定応答する。全てのオブ
ジェクトは、表1に示されるt5+mにおけるデータ・イベントをその時点で自
由に送ることができる。t1におけるデータ・イベントとt5+nにおけるデー
タ肯定応答との間のポーリングされたデータ・パケット数は、システムのタイミ
ング、スクリプト・サーバにより処理されている他のタスク、及びオブジェクト
が送るのを必要とするデータ量に応じて可変である。システムはまたタイマを含
むことができ、そのタイマは、サーバがある一定時間内に応答しない場合元のデ
ータ・イベントの再送信を生じさせ、及び/又はイベント発生器が再び使用可能
にされることができるようにいずれの保留イベントを片付ける。
As shown in Table 1, an object having data to send to the script server at t 1 sends [dataEvent] to the script server,
And all other objects that can send messages to the script server must stop sending data events at that point. When the script server is ready to receive data from the object that sent the data event at t1, the script server returns $ cmdEve at t2.
issue nt. The addressed object responds at t3 with a $ cmdAck that also contains some of the data it has to send. The script server then requests at t4 that the object sends the rest of its data. The object sends the rest of the data at t5, and the script server acknowledges that all data was received at t5 + n by sending [dataAck]. All objects are now free to send data events at t5 + m as shown in Table 1. The number of polled data packets between the data event at t1 and the data acknowledgment at t5 + n depends on the timing of the system, other tasks being processed by the script server, and the data that the object needs to send. It is variable depending on the quantity. The system may also include a timer, which causes a retransmission of the original data event if the server does not respond within a certain period of time, and / or that the event generator is re-enabled. Clear any pending events so that you can.

【0063】 イベント反応モデルの別の例(ここで保留データ・イベントの最大数は2であ
る。)が、表2を参照して以下に説明される。
Another example of an event response model (where the maximum number of pending data events is 2) is described below with reference to Table 2.

【0064】[0064]

【表2】 [Table 2]

【0065】 表2に示されるように、第1のデータ発生器は、t1においてデータ・イベン
トを送り、第2のデータ発生器は、t2においてデータ・イベントを送る。[d
ataEvent2と同時に、全てのデータ発生器は、]dataAckが発生
されるまで、データ・イベントを送るのを禁止される。サーバは、t3において
データに関して第1のデータ発生器をポーリングし、そして第1のデータ発生器
は、t4においてサーバに肯定応答を行い、データを送る。全てのデータが送ら
れた(それは幾つかの{cmdEventsと}cmdAckを要求できる。)
とき、データの完全な受信がt5において肯定応答される。全てのデータ発生器
はここでデータ・イベントを自由に送ることができる。t6において、サーバは
、第2のデータ発生器のポーリングを始める。表2に見られるように、第2のデ
ータ発生器が応答する前に、第1の(又は別の)データ発生器がt7において別
のデータ・イベントを送る。再び、2個の保留イベントでもって、全てのデータ
発生器は追加のデータ・イベントを送るのを禁止される。第2のデータ発生器は
、t8においてそのデータを送り、その完全な受信がt9において肯定応答され
る。ここで、単一のデータ・イベントがスクリプト・サーバの中で保留状態にあ
るということで、全てのデータ発生器は、その時データ・イベントを自由に送る
ことができる。
As shown in Table 2, the first data generator sends a data event at t1, and the second data generator sends a data event at t2. [D
At the same time as dataEvent2, all data generators are prohibited from sending data events until a [dataAck] is generated. The server polls the first data generator for data at t3, and the first data generator acknowledges the server at t4 and sends the data. All data has been sent (it can require some $ cmdEvents and $ cmdAck).
At that time, complete reception of the data is acknowledged at t5. All data generators are now free to send data events. At t6, the server starts polling the second data generator. As seen in Table 2, before the second data generator responds, the first (or another) data generator sends another data event at t7. Again, with two pending events, all data generators are barred from sending additional data events. The second data generator sends its data at t8 and its complete reception is acknowledged at t9. Now that a single data event is pending in the script server, all data generators are then free to send data events.

【0066】 この例は、第1及び第2のデータ発生器が等しい優先度を有することが仮定し
ている。しかしながら、第2のデータ発生器が第1のデータ発生器より上の優先
度を有する場合、サーバは、それを最初にポーリングしたであろう。任意に、サ
ーバは、時分割多重スキームを実行して双方のデータ発生器がデータを同時に送
るのを可能にし得る。データを送るのを禁止されているデータ発生器が局所的動
作を実行するのを依然許可されていること、そしてそれらのデータ発生器にはバ
ッファが設けられ、サーバがそれらデータ発生器にそれらのデータを送るのを許
可するまで局所的に発生されたデータを記憶し得ることは認められるであろう。
This example assumes that the first and second data generators have equal priority. However, if the second data generator had a higher priority than the first data generator, the server would have polled it first. Optionally, the server may implement a time division multiplexing scheme to allow both data generators to send data simultaneously. That data generators that are forbidden to send data are still allowed to perform local operations, and that these data generators are provided with buffers and servers It will be appreciated that the locally generated data may be stored until the data is allowed to be sent.

【0067】 高レベル言語 イベント反応をサポートするメッセージング言語の好適な実施形態は、以下の
構文、<array address|message type><obje
ct name><method/data type>(<data len
gth><data>...<data>)を有する。<>はバイトを示し、(
)は文字であり、...はデータ・バイト数が変わり得ることを示す。アレイ・
アドレスは、5ビットであり、そしてポイント・ツー・ポイント通信に対して、
アレイ・アドレスはゼロに設定される。メッセージ・タイプは、3ビットであり
、現在6個のメッセージ・タイプが定義されている。これらは、(1)例外、(
2)データ肯定応答、(3)データ・イベント、(4)指令肯定応答、(5)ポ
ーリングされた応答、及び(6)指令イベントを含む。オブジェクト名は、8ビ
ットであり、そして現在ASCII文字@からZに制限されている。メソッド/
データ・タイプ・フィールドは、8ビットであり、そしてASCII文字aから
zに制限されている。このフィールドは、メソッド・タイプが指令イベント又は
指令肯定応答であるとき、メソッドとして解釈される。現在定義された5個のデ
ータ・タイプがある。即ち、(z)符号付き文字、(y)符号のない文字、(x
)符号付き整数、(w)符号のない整数、及び(v)浮動小数点数字である。デ
ータ長は、8ビットであり、右及び左括弧又はデータ長それ自身を含まない。指
令の肯定応答は強制的であり、そして肯定応答は指令のアドレス・フィールドを
エコー(反響)しなければならない。
A preferred embodiment of a messaging language that supports high-level language event reactions has the following syntax: <array address | message type><object
ct name><method / data type>(<data len
gth><data>. . . <Data>). <> Indicates a byte, (
) Is a character and. . . Indicates that the number of data bytes can vary. array·
The address is 5 bits and for point-to-point communication,
The array address is set to zero. The message type is 3 bits, and currently 6 message types are defined. These are (1) exception, (
2) data acknowledgment, (3) data event, (4) command acknowledgment, (5) polled response, and (6) command event. Object names are 8 bits and are currently restricted to ASCII characters $ through Z. Method /
The data type field is 8 bits and is restricted to ASCII characters a to z. This field is interpreted as a method when the method type is a command event or command acknowledgment. There are currently five defined data types. That is, (z) a signed character, (y) a character without a sign, (x
) Signed integers, (w) unsigned integers, and (v) floating point numbers. The data length is 8 bits and does not include right and left parentheses or the data length itself. The acknowledgment of the command is mandatory, and the acknowledgment must echo the address field of the command.

【0068】 スマート電話器例 ここで図9を参照すると、オブジェクト指向プロセッサ・アレイ10の例示的
応用は「スマート電話器アクセサリ」である。この応用において、オブジェクト
指向プロセッサ・アレイ10には、音声認識プロセッサ・オブジェクト23a、
音声メッセージング・プロセッサ・オブジェクト23b、呼出し元IDプロセッ
サ・オブジェクト23c、及びDTMFダイヤラー(自動ダイヤル装置)23d
が設けられている。これらの各プロセッサ・オブジェクトは、オブジェクト・ラ
イブラリ20に含められており、そしてシステム・オブジェクト22からの呼び
に応答して自己インスタンス化され、そのシステム・オブジェクト22は、前述
したように指令をブートROM 51から受け取る。ブートROMはまた、ピン
をオブジェクト23a−23dに対して割り当てる指令を含む。この応用に従っ
て、音声認識プロセッサ・オブジェクト23aに対して割り当てられた2個のピ
ンは、外部マイクロフォン53に結合され、そして音声メッセージング・プロセ
ッサ・オブジェクト23bに対して割り当てられた2個のピンは、外部スピーカ
55に結合されている。更に、呼出し元IDプロセッサ・オブジェクト23c及
びDTMFダイヤラー23dに対して割り当てられた2個のピンは、RJ−11
プラグ及びジャックに結合されている。スマート電話器アクセサリ応用は、特定
の認識された名前と関連した電話番号をダイヤルすることにより音声指令に応答
するよう設計されている。更に、この応用はまた、人の呼出しの名前をアナウン
スすることにより到来の呼びに応答するよう設計されている。これらの機能を達
成するため、スクリプト・サーバ51には、音声認識プロセッサ・オブジェクト
23a又は呼出し元IDプロセッサ・オブジェクト23cのいずれかからのデー
タ・イベントに応答して実行されるスクリプトが与えられている。音声認識プロ
セッサ・オブジェクト23aからのデータ・イベントに応答して実行されるスク
リプトの例が、以下の表3に示されている。
Smart Phone Example Referring now to FIG. 9, an exemplary application of the object oriented processor array 10 is a "smart phone accessory". In this application, the object-oriented processor array 10 includes a speech recognition processor object 23a,
Voice Messaging Processor Object 23b, Caller ID Processor Object 23c, and DTMF Dialer (Auto Dialer) 23d
Is provided. Each of these processor objects is included in the object library 20 and is self-instantiated in response to a call from the system object 22, which in turn issues instructions to the boot ROM as described above. Receive from 51. The boot ROM also contains instructions to assign pins to objects 23a-23d. According to this application, the two pins assigned to the speech recognition processor object 23a are coupled to an external microphone 53, and the two pins assigned to the speech messaging processor object 23b are It is connected to the speaker 55. Further, the two pins assigned to the caller ID processor object 23c and the DTMF dialer 23d are RJ-11
Connected to plug and jack. Smart phone accessory applications are designed to respond to voice commands by dialing the telephone number associated with a particular recognized name. In addition, this application is also designed to answer incoming calls by announcing the name of the person's call. To accomplish these functions, script server 51 is provided with a script that is executed in response to a data event from either speech recognition processor object 23a or caller ID processor object 23c. . An example of a script that is executed in response to a data event from the speech recognition processor object 23a is shown in Table 3 below.

【0069】[0069]

【表3】 [Table 3]

【0070】 表3に示されるように、音声認識オブジェクトがデータ・イベントを登録する
とき、スクリプト・サーバは、認識された名前をデータベースの中で探索して、
名前、この場合「HOME(ホーム、家庭)」と関連した電話番号を見つける。
次いで、スクリプト・サーバは、データベースの中のHOMEと関連した番号を
ダイヤルするため指令をDTMFダイヤラーに送る。更に、スクリプト・サーバ
は、指令を音声メッセージ・オブジェクトに送って、3個のメッセージ、例えば
「I am(私は…です。)」、「calling(呼んでいる)」、「hom
e(ホーム、家庭)」を再生する。この応用に対するスクリプトの別の例が、以
下の表4に示されている。
As shown in Table 3, when the voice recognition object registers a data event, the script server searches the database for the recognized name,
Find the name, in this case the phone number associated with "HOME".
The script server then sends a command to the DTMF dialer to dial the number associated with HOME in the database. In addition, the script server sends a command to the voice message object to send three messages, eg, "I am (I am ...)", "calling", "hom".
e (home, home) ". Another example of a script for this application is shown in Table 4 below.

【0071】[0071]

【表4】 [Table 4]

【0072】 表4に示されるように、呼出し元IDオブジェクトは、データ・イベントを登
録するとき、スクリプト・サーバは、電話番号をデータベースの中で探索して、
呼出し元の名前を決定する。スクリプト・サーバは、例えば、「Jeff is
calling(ジェフが呼んでいます。)」を再生するためメッセージを構
成し、そしてそのメッセージを音声認識オブジェクトに送る。
As shown in Table 4, when the caller ID object registers a data event, the script server searches the database for the telephone number,
Determine the name of the caller. The script server may, for example, use “Jeff is
Construct a message to play "calling (Jeff is calling.)" and send the message to the speech recognition object.

【0073】 分散型(ローカル)スクリプト・サーバ 図10において見られる別の実施形態に従って、1つ以上のオブジェクト指向
プロセッサ・アレイには、ローカル内部スクリプト・サーバが設けられており、
そして中央スクリプト・サーバ又はホスト・プロセッサは必要とされない。この
「分散型にスクリプトする」実施形態においては、通信は、データ・イベント及
びイベント・スクリプト・ルックアップ・テーブルを登録しかつキューに入れ、
どのイベントが内部メッセージと関連しているかを決定するための追加の機能性
が出力メッセージ・プロセッサに与えられることによりイベント反応プロトコル
に従って制御される。入力メッセージ・プロセッサには、オブジェクト指向プロ
セッサ・アレイの中のオブジェクトに宛てられたメッセージをキューに入れかつ
バッファするための追加の機能性が与えられている。
Distributed (Local) Script Server In accordance with another embodiment seen in FIG. 10, one or more object-oriented processor arrays are provided with a local internal script server;
And no central script server or host processor is required. In this "distributed script" embodiment, the communication registers and queues data events and event script lookup tables;
Additional functionality to determine which events are associated with internal messages is provided according to the event response protocol by being provided to the output message processor. The input message processor is provided with additional functionality to queue and buffer messages destined for objects in the object-oriented processor array.

【0074】 詳細には、本発明に従ったオブジェクト指向プロセッサ・アレイ110は、前
述したオブジェクト指向プロセッサ・アレイ10と多くの類似の構成要素を有し
、類似の構成要素は、100だけ増分した類似の参照番号を付されている。オブ
ジェクト指向プロセッサ・アレイ110は、オブジェクト・ライブラリ20、シ
ステム・オブジェクト122、及び初期化後に、多数のアクティブ・オブジェク
ト123a、123b等を含む。オブジェクト指向プロセッサ・アレイはまた、
通信受信機124a及び通信送信機124bを有し、これら双方は、オブジェク
ト指向プロセッサ・アレイ110を他の類似のアレイに結合するための外部バス
又はリンク125に結合されている。オブジェクト指向プロセッサ・アレイ内の
オブジェクトに対して結び付けられたメッセージは、入力ルータ126cにより
ルート付けされ、入力ルート126cは、メッセージをバッファ126bから受
け取る。バッファ126bは、大域入力パーサ126a及び内部メッセージ・イ
ンタフェース・キュー130から受け取られたメッセージをバッファする。オブ
ジェクト指向プロセッサ・アレイの外部で発生するメッセージは、通信受信機1
24aにより受信され、大域入力パーサ126aに通される。オブジェクト指向
プロセッサ・アレイ内で発生するメッセージは、内部メッセージ・インタフェー
ス・キュー130により受け取られ、内部メッセージ・インタフェース・キュー
130は、メッセージをデータ・イベント・プロセッサ135から受け取る。デ
ータ・イベント・プロセッサ135はまた、通信送信機124bによりオブジェ
クト指向プロセッサ・アレイの外部のオブジェクトへ送信するための出力キュー
132に対して入力を与える。データ・イベント・プロセッサ135は、保留出
力イベント・キュー133及び及びイベント・スクリプト137のプログラム可
能テーブルからの入力を受け取る。第1の実施形態におけるように、オブジェク
ト指向プロセッサ・アレイの中のオブジェクトからのメッセージは、出力レジス
トリ134に登録される。
In particular, the object-oriented processor array 110 according to the present invention has many similar components to the object-oriented processor array 10 described above, wherein similar components are incremented by 100 Reference numbers. The object-oriented processor array 110 includes an object library 20, system objects 122, and a number of active objects 123a, 123b, etc. after initialization. Object-oriented processor arrays also
It has a communication receiver 124a and a communication transmitter 124b, both of which are coupled to an external bus or link 125 for coupling the object-oriented processor array 110 to another similar array. Messages bound to objects in the object-oriented processor array are routed by input router 126c, which receives messages from buffer 126b. Buffer 126b buffers messages received from global input parser 126a and internal message interface queue 130. Messages occurring outside the object-oriented processor array are transmitted to the communication receiver 1
24a and passed to a global input parser 126a. Messages originating in the object-oriented processor array are received by the internal message interface queue 130, which receives the message from the data event processor 135. Data event processor 135 also provides input to output queue 132 for transmission by communication transmitter 124b to objects external to the object-oriented processor array. The data event processor 135 receives inputs from the pending output event queue 133 and the event script 137 programmable table. As in the first embodiment, messages from objects in the object-oriented processor array are registered in the output registry 134.

【0075】 この実施形態に従って、データ・イベントの発信元アドレスは、データ・イベ
ント・プロセッサ135により保留出力イベント・キュー133から読み出され
、そしてスクリプト・テーブル137の中のそのアドレスと関連したスクリプト
を探索するため用いられる。スクリプトは、データ・イベント・プロセッサ13
5により実行され、通常メッセージの発生をもたらす。スクリプトにより発生さ
れたメッセージは、オブジェクト指向プロセッサ・アレイ内のオブジェクト又は
その外のオブジェクト宛てとされる。前者の状況において、メッセージは、内部
メッセージ・インタフェース・キューに通される。後者の状況において、メッセ
ージは、出力キュー132に送られる。こうして、データ・イベント・プロセッ
サ及びスクリプト・テーブルは、オブジェクト指向プロセッサ・アレイ内のロー
カル・スクリプト・サーバとして機能し、そして中央スクリプト・サーバの必要
性がない。しかしながら、中央スクリプト・サーバは、オブジェクト指向プロセ
ッサ・アレイ110と共に用いられ得ることに注目すべきである。データ・イベ
ントに対するスクリプトがスクリプト・テーブルの中に現れないとき、又はデー
タ・イベントと関連したスクリプトがメッセージを中央スクリプト・サーバに送
るようにさせるとき、メッセージは中央スクリプト・サーバに送られるであろう
According to this embodiment, the source address of the data event is read from the pending output event queue 133 by the data event processor 135 and the script associated with that address in the script table 137 is retrieved. Used to search. The script is executed by the data event processor 13
5 and usually results in the generation of a message. Messages generated by the script are addressed to objects in or outside the object-oriented processor array. In the former situation, the message is passed to an internal message interface queue. In the latter situation, the message is sent to the output queue 132. Thus, the data event processor and script table function as local script servers in an object-oriented processor array, and there is no need for a central script server. However, it should be noted that a central script server may be used with the object-oriented processor array 110. The message will be sent to the central script server when the script for the data event does not appear in the script table, or when the script associated with the data event causes the message to be sent to the central script server. .

【0076】 オブジェクト指向プロセッサ・アレイのこの実施形態は、第1の実施形態と同
様に、関連のRAM及びROMを有する1つ以上のマイクロプロセッサを用いて
単一のチップ上に具現化され得る。そのように具現化されたとき、オブジェクト
指向プロセッサ・アレイ110はまた、メモリ・マネジャ138及びタイミング
・カーネル136を含む。スクリプト・テーブルは、RAMかROMかのいずれ
かに記憶され得て、そしてブートROM又はホスト・プロセッサのいずれかによ
りスタートアップ時に初期化(プログラム)される。
This embodiment of the object-oriented processor array, like the first embodiment, can be embodied on a single chip using one or more microprocessors with associated RAM and ROM. When so embodied, the object-oriented processor array 110 also includes a memory manager 138 and a timing kernel 136. The script table can be stored in either RAM or ROM, and is initialized (programmed) at startup by either the boot ROM or the host processor.

【0077】 別個のハードウエア・プロセッサとして具現化されたプロセッサ・オブジェク 前述したように、オブジェクト指向プロセッサ・アレイの中のオブジェクト指
向プロセッサは、ハードウエア、ソフトウエア、又はハードウエア及びソフトウ
エアの組合わせとして具現化され得る。ここで図11を参照すると、オブジェク
ト指向プロセッサ・アレイ510は、図2に示されるオブジェクト指向プロセッ
サ・アレイ10と機能的に似ている。この実施形態において、別個のマイクロプ
ロセッサ521、522及び523a−c等が設けられている。マイクロプロセ
ッサ521は、オブジェクト指向プロセッサ・アレイ510に関する全てのI/
O機能を扱うため用いられる。従って、マイクロプロセッサ521は、通信イン
タフェース524、入力メッセージ・プロセッサ526、内部出力流れマネジャ
530、外部出力流れマネジャ532及び中央出力レジストリ534の機能性を
備える。マイクロプロセッサ522は、システム・オブジェクトの機能性を備え
、そしてマイクロプロセッサ523a−cは、オブジェクト・ライブラリ520
からのオブジェクトの各インスタンス化のための別個のプロセッサの機能性を備
える。一実施形態に従って、ライブラリは、各オブジェクトに対するソフトウエ
アを含み、そしてオブジェクトは、ソフトウエアを複数のプロセッサ523aの
うちの1つの中にロードすることにより、インスタンス化される。
[0077] As distinct embodied by a processor, objects as hardware processor described above, an object-oriented processor in the object-oriented processor array, hardware, software, or hardware and software set It can be embodied as a combination. Referring now to FIG. 11, the object-oriented processor array 510 is functionally similar to the object-oriented processor array 10 shown in FIG. In this embodiment, separate microprocessors 521, 522 and 523a-c are provided. Microprocessor 521 includes all I / Os for object-oriented processor array 510.
Used to handle O functions. Accordingly, microprocessor 521 includes the functionality of communication interface 524, input message processor 526, internal output flow manager 530, external output flow manager 532, and central output registry 534. Microprocessor 522 provides system object functionality, and microprocessors 523a-c include object library 520.
With a separate processor functionality for each instantiation of the object from. According to one embodiment, the library includes software for each object, and the object is instantiated by loading the software into one of the plurality of processors 523a.

【0078】 オブジェクト指向プロセッサ・アレイの汎用型レイアウト この点に対して、本発明は、マイクロプロセッサを利用する実施形態であって
、前述したように、ソフトウエアで実行されるシステム・オブジェクトを含む実
施形態を参照して主に説明してきたが、本発明は、限定されないがプログラムさ
れたマイクロプロセッサ、フィールド・プログラマブル・ゲート・アレイ、カス
タムLSI等を含む、多数の方法で実行されることができる。多数の実行を考慮
する本発明の一般的概念が図12に概略見られ、そこにおいてオブジェクト指向
プロセッサ・アレイ10は、ピン1000a、ビット及びフォーマット処理リン
グ1000b、伸縮性メモリ・リング1000c、及び数学及び論理処理コア1
000dを有する。ピン1000aは、オブジェクト指向プロセッサ・アレイ1
0のそれを囲む実世界への実際の物理的リンクである。以下により詳細に説明さ
れるように、ビット及びフォーマット処理リング1000b、伸縮性メモリ・リ
ング1000c及び数学及び論理処理コア1000dはオブジェクトを実行し、
大部分のオブジェクトは、ビット及びフォーマット処理、メモリ及び数学及び論
理処理を利用し、そして一部のオブジェクトは、メモリを用いたビット及びフォ
ーマット処理か、又はメモリを用いた数学及び論理処理のみを利用する。
Universal Layout of Object-Oriented Processor Array In this regard, the present invention is directed to a microprocessor-based embodiment that includes system objects implemented in software, as described above. Although described primarily with reference to embodiments, the present invention can be implemented in numerous ways, including but not limited to a programmed microprocessor, a field programmable gate array, a custom LSI, and the like. The general concept of the present invention that takes into account multiple implementations is schematically illustrated in FIG. 12, where the object-oriented processor array 10 includes a pin 1000a, a bit and format processing ring 1000b, an elastic memory ring 1000c, and mathematical and Logical processing core 1
000d. Pin 1000a is the object-oriented processor array 1
Zero is the actual physical link to the surrounding real world. As described in more detail below, the bit and format processing ring 1000b, the elastic memory ring 1000c, and the math and logic processing core 1000d execute the object,
Most objects use bit and format operations, memory and math and logic operations, and some objects use memory bit and format operations or only memory math and logic operations I do.

【0079】 ビット及びフォーマット処理リング1000bは、現実のインタフェースの非
常に異なる集合体を定型構造に変える機能を実行する。なお、「定型構造」は、
何が数学及び論理処理コア1000d、及び外部装置の高速、低レベル制御の必
要性に最良に適合するかにより決定される。ビット及びフォーマット処理リング
1000bにおいて実行される典型的な機能は、シリアルI/O、パラレルI/
O、アナログ/ディジタル変換器の特定の低レベル制御、及び高いアナログ内容
を有する信号の他の処理を含む。ビット及びフォーマット処理層の実行は、非常
に可変的である。例えば、標準マイクロコントローラ・ポートは、著しい計算資
源が消費されるが、その機能の中にマップされることができる。代替として、フ
ィールド・プログラマブル・ゲート・アレイ(FPGA)技術は、FPGA技術
の使用が回路ボード面積及びコストに関して費用がかかるが、これらの機能を実
行するのに十分適合している。多くの他の実行が可能である。特に、ビット及び
フォーマット処理リングのビット処理部分は、概念的に、高周波数でサンプリン
グされるベクトルとして入力ピンを扱うシステムとして見ることができる。サン
プリングの動作は、状態の変化の検出を非常に効率的に決定するのを可能にする
動作を含む手順アルゴリズムとしてビット処理を考えることを可能にする。同様
に、ビット及びフォーマット処理のフォーマット処理部分は、概念的に、関連の
メモリ構造体1000cへの配送のためデータを再フォーマット化するための手
順アルゴリズムとして見ることができる。
The bit and format processing ring 1000 b performs the function of turning a very different collection of real interfaces into a canonical structure. The “standard structure”
It is determined by what best fits the need for high speed, low level control of the math and logic processing core 1000d and external devices. Typical functions performed in the bit and format processing ring 1000b include serial I / O, parallel I / O
O, specific low-level control of the analog-to-digital converter, and other processing of signals with high analog content. The implementation of the bit and format processing layers is highly variable. For example, a standard microcontroller port can be mapped into its functionality, although it consumes significant computing resources. Alternatively, field programmable gate array (FPGA) technology is well suited to perform these functions, although the use of FPGA technology is expensive in terms of circuit board area and cost. Many other implementations are possible. In particular, the bit processing portion of the bit and format processing ring can be conceptually viewed as a system that treats input pins as vectors sampled at a high frequency. The operation of sampling makes it possible to think of bit processing as a procedural algorithm that includes an operation that enables the detection of a change in state to be determined very efficiently. Similarly, the formatting portion of the bit and formatting process can conceptually be viewed as a procedural algorithm for reformatting data for delivery to an associated memory structure 1000c.

【0080】 伸縮性メモリ・リング1000cは、広範囲の要領で実行されることができる
。その実行は、1つ以上のバッファ、FIFO、LIFO又はスタック、循環型
バッファ、メール・ボックス、RAM、ROM等を含み得る。伸縮性メモリ・リ
ング1000cは、ポインタ位置等の計算のためのロジックを含み得る。代替と
して、このロジックは、一方の側でビット及びフォーマット処理リング1000
bの機能性の中に、他方の側で数学及び論理処理コア1000dの機能性の中に
組み込まれることができる。コードがオブジェクトのインスタンス化のため記憶
される場合、伸縮性メモリ・リング1000cはそのコードを含む。
The elastic memory ring 1000 c can be implemented in a wide variety of ways. The implementation may include one or more buffers, FIFOs, LIFOs or stacks, circular buffers, mailboxes, RAM, ROM, etc. The elastic memory ring 1000c may include logic for calculations such as pointer position. Alternatively, this logic can be implemented on one side with a bit and format processing ring 1000.
b, on the other side, can be incorporated into the functionality of the math and logic processing core 1000d. If the code is stored for instantiation of an object, elastic memory ring 1000c contains that code.

【0081】 数学及び論理的プロセッサ・コア1000dは,I/Oデータを外部装置又は
アプリケーションが必要とするいずれのものに処理及び変換する1つ以上の標準
プロセッサ・コア(例えば、インテル(登録商標)x86,モトローラ(登録商
標)68xxx、インテル(登録商標)8051、PowerPC(登録商標)
、又はAnalog Devices 21xxDSP)であってよい。換言す
ると、数学及び論理処理部分は、種々のプロセッサ・オブジェクトの機能層を含
む。伸縮性メモリリング、及びビット及びフォーマット処理リングに関してのよ
うに、数学及び論理的プロセッサ・コア1000dは、非常にアプリケーション
に依存している。
The math and logical processor core 1000 d may include one or more standard processor cores (eg, Intel®) that process and convert I / O data to whatever external devices or applications require. x86, Motorola (registered trademark) 68xxx, Intel (registered trademark) 8051, PowerPC (registered trademark)
Or Analog Devices 21xx DSP). In other words, the mathematical and logical processing parts include the functional layers of the various processor objects. As with the elastic memory ring and the bit and format processing rings, the math and logical processor core 1000d is highly application dependent.

【0082】 上記に提案したように、典型的には、オブジェクト指向プロセッサ・アレイの
インスタンス化されたオブジェクトは、1つ以上のピン1000a、ビット及び
フォーマット処理リング1000b、伸縮性メモリ・リング1000c及び数学
及び論理処理コア1000dを利用する。例えば、図9を参照して前述した音声
認識及び音声メッセージ・オブジェクトは、通常各上記リング及び各々2ピンを
利用する。しかしながら、内部オブジェクト(例えば、内部データベース・オブ
ジェクト)である或る一定のオブジェクトは、ビット及びフォーマット処理リン
グ1000b又はピン1000aを利用することは必ずしも必要でない。同様に
して、入力を回転エンコーダから受け入れ、その入力をバッファし、そしてその
入力をスクリプト・サーバに送るエンコーダ・オブジェクトのような他のオブジ
ェクトは、数学及び論理処理を必要としない。これらのオブジェクトは、ピン1
000a、ビット及びフォーマット処理リング1000b及び伸縮性メモリ・リ
ング1000cのみを必要とする。
As suggested above, typically, the instantiated objects of an object-oriented processor array include one or more pins 1000a, a bit and format processing ring 1000b, an elastic memory ring 1000c, and a math And the logic processing core 1000d. For example, the voice recognition and voice message objects described above with reference to FIG. 9 typically utilize each of the above rings and two pins each. However, certain objects that are internal objects (eg, internal database objects) need not utilize the bit and format ring 1000b or pin 1000a. Similarly, other objects, such as an encoder object that receives input from a rotary encoder, buffers the input, and sends the input to a script server, do not require math and logic processing. These objects are pin 1
000a, a bit and format processing ring 1000b and an elastic memory ring 1000c.

【0083】 オブジェクト指向プロセッサ・アレイの幾つかの実施形態がここに記載され図
示された。本発明の特定の実施形態が記載されたが、本発明は当該技術が許す範
囲で広くかつ明細書が同様に読めることを意図するので、本発明はこれらに限定
されないことを意図していない。従って、特定のマイクロプロセッサが好適な実
施形態を参照して開示されたが、他の既製品又はカスタムのマイクロプロセッサ
を利用することができることが認められるであろう。また、特定のソフトウエア
が示されたが、他のソフトウエア・コードを用いて同様の結果を得ることができ
ることが認められるであろう。
Several embodiments of an object-oriented processor array have been described and illustrated herein. Although specific embodiments of the present invention have been described, the present invention is not intended to be limited thereto, as this invention is as broad as the technology allows and the specification is intended to be equally readable. Thus, while a particular microprocessor has been disclosed with reference to the preferred embodiment, it will be appreciated that other off-the-shelf or custom microprocessors can be utilized. Also, although particular software has been shown, it will be appreciated that other software code can be used to achieve similar results.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 図1は、本発明に従ったオブジェクト指向プロセッサ・アレイの主要ハードウ
エア要素の略ブロック図である。
FIG. 1 is a schematic block diagram of the main hardware elements of an object-oriented processor array according to the present invention.

【図2】 図2は、本発明に従ったオブジェクト指向プロセッサ・アレイの主要機能要素
の略ブロック図である。
FIG. 2 is a schematic block diagram of the main functional elements of an object-oriented processor array according to the present invention.

【図3】 図3は、図1及び図2のオブジェクト指向プロセッサ・アレイの中の書込み可
能メモリ範囲の略メモリ・マップである。
FIG. 3 is a schematic memory map of a writable memory range in the object-oriented processor array of FIGS. 1 and 2;

【図4】 図4は、図1及び図2のオブジェクト指向プロセッサ・アレイの初期化、セッ
トアップ及び動作における基本的ステップを図示するフローチャートであり、 図4aは、システム・オブジェクトの基本的機能及び動作を図示するフローチ
ャートであり、 図4bは、メモリ・マネジャの基本的機能及び動作を図示するフローチャート
であり、 図4cは、スケジューリングに関するタイミング・カーネル、アクティブ・オ
ブジェクト及びシステム・オブジェクトの基本的機能及び動作を図示するフロー
チャートである。
FIG. 4 is a flowchart illustrating the basic steps in the initialization, setup and operation of the object-oriented processor array of FIGS. 1 and 2, and FIG. 4a is the basic function and operation of a system object. 4b is a flowchart illustrating the basic functions and operations of the memory manager, and FIG. 4c is a flowchart illustrating the basic functions and operations of the timing kernel, the active object and the system object regarding scheduling. FIG.

【図5】 図5は、オブジェクト指向プロセッサ・アレイの代替実施形態における書込み
可能メモリ範囲の略メモリ・マップである。
FIG. 5 is a schematic memory map of a writable memory range in an alternative embodiment of the object-oriented processor array.

【図6】 図6は、代替実施形態のセットアップ・プログラミングにおけるステップを図
示する略フローチャートである。
FIG. 6 is a simplified flowchart illustrating steps in setup programming of an alternative embodiment.

【図7】 図7は、代替実施形態の動作モードを図示する略フローチャートである。FIG. 7 is a simplified flowchart illustrating an operation mode of an alternative embodiment.

【図8】 図8は、ホスト・プロセッサ及び電源に結合された本発明のオブジェクト指向
プロセッサ・アレイの略ブロック図である。
FIG. 8 is a schematic block diagram of the object oriented processor array of the present invention coupled to a host processor and a power supply.

【図9】 図9は、「スマート電話」を制御するためのオブジェクト指向プロセッサ・アレ
イの実行の略ブロック図である。
FIG. 9 is a schematic block diagram of an implementation of an object-oriented processor array for controlling a “smart phone”.

【図10】 図10は、本発明の第2の実施形態に従ったオブジェクト指向プロセッサ・ア
レイの主要機能要素の略ブロック図である。
FIG. 10 is a schematic block diagram of the main functional elements of an object-oriented processor array according to a second embodiment of the present invention.

【図11】 図11は、複数のマイクロプロセッサを利用する本発明に従ったオブジェクト
指向プロセッサ・アレイの略ブロック図である。
FIG. 11 is a schematic block diagram of an object-oriented processor array according to the present invention utilizing multiple microprocessors.

【図12】 図12は、オブジェクト指向プロセッサ・アレイをいずれのハードウエア装置
(単数又は複数)上への実行を一般的に図示する概略図である。
FIG. 12 is a schematic diagram generally illustrating the implementation of an object-oriented processor array on any hardware device (s).

【手続補正書】[Procedure amendment]

【提出日】平成13年3月7日(2001.3.7)[Submission date] March 7, 2001 (2001.3.7)

【手続補正1】[Procedure amendment 1]

【補正対象書類名】図面[Document name to be amended] Drawing

【補正対象項目名】全図[Correction target item name] All figures

【補正方法】変更[Correction method] Change

【補正の内容】[Contents of correction]

【図1】 FIG.

【図2】 FIG. 2

【図3】 FIG. 3

【図4】 FIG. 4

【図5】 FIG. 5

【図6】 FIG. 6

【図7】 FIG. 7

【図8】 FIG. 8

【図9】 FIG. 9

【図10】 FIG. 10

【図11】 FIG. 11

【図12】 FIG.

───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 09/003,993 (32)優先日 平成10年1月7日(1998.1.7) (33)優先権主張国 米国(US) (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GE,GH,GM,HU ,ID,IL,IS,JP,KE,KG,KP,KR, KZ,LC,LK,LR,LS,LT,LU,LV,M D,MG,MK,MN,MW,MX,NO,NZ,PL ,PT,RO,RU,SD,SE,SG,SI,SK, SL,TJ,TM,TR,TT,UA,UG,UZ,V N,YU,ZW 【要約の続き】 るようプログラムされている。1つのスクリプト・サー バは、幾つかのオブジェクト指向プロセッサ・アレイに サービスのため働き得て、又はオブジェクト指向プロセ ッサ・アレイは、ローカル・スクリプト・サーバを持ち 得る。幾つかの仮想プロセッサが単一のマイクロプロセ ッサの動作内で具現化されるときをスケジューリングす る方法及び装置も開示される。本発明に従って、通信は 「イベント反応」モデルに基づいており、そこにおいて プロセッサ・オブジェクトが送るべきメッセージを持つ とき、「イベント反応」モデルはメッセージの目標受信 者(通常ホスト)により登録されるデータ・イベントを 発生する。その目標は、データ・イベントの肯定応答の 前にプロセッサ・オブジェクトと目標との間で可変量の I/O交換を可能にすることによりそのイベントに反応 する。一実施形態において、データ・イベントが肯定応 答されるまで、他のデータ・イベントは目標に送られな い。別の実施形態において、固定数のデータ・イベント が同時に保留状態にあり得る。──────────────────────────────────────────────────続 き Continued on the front page (31) Priority claim number 09 / 003,993 (32) Priority date January 7, 1998 (1.7.1998) (33) Priority claim country United States (US) ( 81) Designated countries EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, IT, LU, MC, NL, PT, SE), OA (BF, BJ, CF, CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG), AP (GH, GM, KE, LS, MW, SD, SZ, UG, ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, CA, CH, CN, CU, CZ, DE, K, EE, ES, FI, GB, GE, GH, GM, HU, ID, IL, IS, JP, KE, KG, KP, KR, KZ, LC, LK, LR, LS, LT, LU, LV, MD, MG, MK, MN, MW, MX, NO, NZ, PL, PT, RO, RU, SD, SE, SG, SI, SK, SL, TJ, TM, TR, TT, UA, UG, UG , VN, YU, ZW. One script server may serve several object-oriented processor arrays to service, or an object-oriented processor array may have a local script server. A method and apparatus for scheduling when several virtual processors are embodied within the operation of a single microprocessor is also disclosed. According to the present invention, communication is based on an "event response" model, in which when a processor object has a message to send, the "event response" model is a data register registered by the target recipient (usually the host) of the message. Raise an event. The target responds to the data event by allowing a variable amount of I / O exchange between the processor object and the target before acknowledging the event. In one embodiment, no other data event is sent to the target until the data event is acknowledged. In another embodiment, a fixed number of data events may be pending at the same time.

Claims (45)

【特許請求の範囲】[Claims] 【請求項1】 メッセージ・ベース通信リンクを介して構成可能なオブジェ
クト指向プロセッサ・アレイにおいて、 a)複数の仮想プロセッサを実行するプロセッサ手段と、 b)前記プロセッサ手段に結合された書込み可能メモリと、 c)前記プロセッサ手段に結合された読出し可能メモリであって、システム・
オブジェクト、及び機能的プロセッサ・オブジェクトのライブラリを含み、各機
能的プロセッサ・オブジェクトが事前定義された機能性を有する、読出し可能メ
モリと、 d)前記機能的プロセッサ・オブジェクトの少なくとも1つを外部装置に結合
する複数の物理的ピンと、 e)前記オブジェクト指向プロセッサ・アレイを前記メッセージ・ベース通信
リンクに結合する通信インタフェース手段と、を備え、 前記システム・オブジェクトは、前記ライブラリの中の第1の機能的プロセッ
サ・オブジェクトを呼び出しかつそれ自身前記書込み可能メモリの中の仮想プロ
セッサとしてインスタンス化するため前記第1の機能的プロセッサ・オブジェク
トを指令することにより、前記メッセージ・ベース通信リンクを介して前記オブ
ジェクト指向プロセッサ・アレイに送られる第1の構成メッセージに応答し、 前記第1の機能的プロセッサ・オブジェクトは、前記複数の物理的ピンの少な
くとも1つに結合される オブジェクト指向プロセッサ・アレイ。
1. An object-oriented processor array configurable via a message-based communication link, comprising: a) processor means for executing a plurality of virtual processors; b) writable memory coupled to said processor means; c) a readable memory coupled to said processor means, comprising:
A readable memory comprising objects and a library of functional processor objects, each functional processor object having predefined functionality; d) transferring at least one of said functional processor objects to an external device. A plurality of physical pins for coupling; and e) communication interface means for coupling the object-oriented processor array to the message-based communication link, wherein the system object comprises a first functional library in the library. Calling the processor object and instructing the first functional processor object to instantiate itself as a virtual processor in the writable memory, thereby enabling the object-oriented communication via the message-based communication link. In response to the first configuration message sent to the processor array, said first functional processor objects, object oriented processor array that is coupled to at least one of said plurality of physical pins.
【請求項2】 前記システム・オブジェクトは、電力が前記オブジェクト指
向プロセッサ・アレイに印加されたとき自動的にインスタンス化される請求項1
記載のオブジェクト指向プロセッサ・アレイ。
2. The system object of claim 1, wherein the system object is automatically instantiated when power is applied to the object-oriented processor array.
An object-oriented processor array as described.
【請求項3】 前記第1の機能的プロセッサ・オブジェクトは、構成可能で
ある事前定義された機能性を有し、 前記第1の機能的プロセッサ・オブジェクトは、その事前定義された機能性を
構成することにより、前記メッセージ・ベース通信リンクを介して前記オブジェ
クト指向プロセッサ・アレイに送られる第2の構成メッセージに応答する 請求項1記載のオブジェクト指向プロセッサ・アレイ。
3. The first functional processor object has a predefined functionality that is configurable, and the first functional processor object configures the predefined functionality. 2. The object-oriented processor array of claim 1, wherein the object-oriented processor array responds to a second configuration message sent to the object-oriented processor array via the message-based communication link.
【請求項4】 前記システム・オブジェクトは、前記ライブラリの中の第2
の機能的プロセッサ・オブジェクトを呼び出しかつそれ自身前記書込み可能メモ
リの中の仮想プロセッサとしてインスタンス化するため前記第2の機能的プロセ
ッサ・オブジェクトを指令することにより、前記メッセージ・ベース通信リンク
を介して前記オブジェクト指向プロセッサ・アレイに送られる第2の構成メッセ
ージに応答する請求項1記載のオブジェクト指向プロセッサ・アレイ。
4. The system object according to claim 2, wherein said system object is a second object in said library.
Via the message-based communication link by invoking the second functional processor object to call and instantiate itself as a virtual processor in the writable memory. The object-oriented processor array of claim 1 responsive to a second configuration message sent to the object-oriented processor array.
【請求項5】 前記第2の機能的プロセッサ・オブジェクトは、構成可能で
ある事前定義された機能性を有し、 前記第2の機能的プロセッサ・オブジェクトは、その事前定義された機能性を
構成することにより、前記メッセージ・ベース通信リンクを介して前記オブジェ
クト指向プロセッサ・アレイに送られる第3の構成メッセージに応答する 請求項4記載のオブジェクト指向プロセッサ・アレイ。
5. The second functional processor object has a predefined functionality that is configurable, and the second functional processor object configures the predefined functionality. 5. The object-oriented processor array of claim 4, wherein the response comprises responding to a third configuration message sent to the object-oriented processor array via the message-based communication link.
【請求項6】 f)インスタンス化された仮想プロセッサをリストするアク
ティブ・タスク・リスト手段を更に備え、 前記システム・オブジェクトは、インスタンス化された仮想プロセッサとして
前記第1の機能的オブジェクトを前記アクティブ・タスク・リスト手段の中にリ
ストすることにより、それ自身をインスタンス化する前記第1の機能的プロセッ
サ・オブジェクトに応答する 請求項1記載のオブジェクト指向プロセッサ・アレイ。
6. The system further comprising: f) active task list means for listing instantiated virtual processors, wherein the system object includes the first functional object as an instantiated virtual processor. The object-oriented processor array of claim 1 responsive to said first functional processor object instantiating itself by listing in a task list means.
【請求項7】 g)前記通信インタフェース手段、前記アクティブ・タスク
・リスト手段、前記システム・オブジェクト及び前記インスタンス化された第1
の機能的プロセッサ・オブジェクトに結合された入力メッセージ処理手段を更に
備え、 前記入力メッセージ処理手段は、前記オブジェクト指向プロセッサ・アレイに
より受け取られたメッセージを前記メッセージ・ベース通信リストを介して前記
システム・オブジェクト及び前記機能的プロセッサ・オブジェクトのうちの1つ
に向ける 請求項6記載のオブジェクト指向プロセッサ・アレイ。
7. The communication interface means, the active task list means, the system object and the instantiated first.
Further comprising input message processing means coupled to the functional processor object of the system object, wherein the input message processing means receives messages received by the object-oriented processor array via the message-based communication list. 7. An object-oriented processor array according to claim 6, wherein said array is directed to one of said functional processor objects.
【請求項8】 f)前記書込み可能メモリに結合されかつ各前記機能的オブ
ジェクトからの呼びに応答するメモリ・マネジャを更に備え、 前記システム・オブジェクトが、前記機能的プロセッサ・オブジェクトの1つ
を呼び出して、それ自身を書込み可能メモリの中にインスタンス化するとき、前
記システム・オブジェクトにより呼び出された前記機能的プロセッサ・オブジェ
クトは前記メモリ・マネジャを呼び出し、前記メモリ・マネジャは、開始アドレ
スに対するポインタを前記書込み可能メモリの中で見つけ、かつ前記ポインタを
、前記システム・オブジェクトにより呼び出された前記機能的オブジェクトに与
え、かつ前記システム・オブジェクトにより呼び出された前記機能的オブジェク
トは、前記ポインタを、それに事前割り当てされた書込み可能メモリの一部に記
憶する 請求項1記載のオブジェクト指向プロセッサ・アレイ。
8. The system further comprising: f) a memory manager coupled to the writable memory and responsive to calls from each of the functional objects, wherein the system object calls one of the functional processor objects. Then, when instantiating itself in writable memory, the functional processor object called by the system object calls the memory manager, and the memory manager stores a pointer to a starting address in the memory object. Finding in writable memory and providing the pointer to the functional object called by the system object, and the functional object called by the system object pre-allocates the pointer to it Object-oriented processor array of claim 1, wherein storing a portion of the writable memory that is.
【請求項9】 f)前記書込み可能メモリに結合されかつ各前記機能的オブ
ジェクトからの呼びに応答するメモリ・マネジャを更に備え、 前記システム・オブジェクトは、前記機能的プロセッサ・オブジェクトの第1
のものを呼び出して、それ自身を前記書込み可能メモリの中で第1のインスタン
ス化名を用いてインスタンス化し、 前記機能的プロセッサ・オブジェクトの前記第1のものは、前記メモリ・マネ
ジャを呼び出し、 前記メモリ・マネジャは、書込み可能メモリの一部に対する第1のポインタを
見つけ、前記第1のポインタを前記機能的プロセッサ・オブジェクトの前記第1
のものに与え、 前記機能的プロセッサ・オブジェクトの前記第1のものは、前記第1のポイン
タを前記システム・オブジェクトに与え、 前記システム・オブジェクトは、前記第1のポインタを第1の索引を有してメ
モリ・テーブルに記憶し、前記第1の索引を前記インスタンス化名を有して名前
テーブルに記憶し、前記第1の索引を前記機能的オブジェクトの前記第1のもの
の前記機能的名前を有してタスク・リスト・テーブルに記憶する 請求項1記載のオブジェクト指向プロセッサ・アレイ。
9. The system further comprising: f) a memory manager coupled to the writable memory and responsive to calls from each of the functional objects, wherein the system object is a first one of the functional processor objects.
And instantiating itself in the writable memory using a first instantiation name; the first one of the functional processor objects calls the memory manager; The manager finds a first pointer to a portion of the writable memory and stores the first pointer in the first of the functional processor object;
The first of the functional processor objects provides the first pointer to the system object, the system object having the first pointer with a first index. Storing the first index in the name table with the instantiation name, and storing the first index with the functional name of the first one of the functional objects. The object-oriented processor array according to claim 1, wherein the object-oriented processor array is stored in a task list table.
【請求項10】 前記システム・オブジェクトは、前記ライブラリの中の追
加の機能的オブジェクトを呼び出しかつそれら自身を仮想プロセッサとして前記
書込み可能メモリにインスタンス化するため前記追加の機能的オブジェクトを指
令することにより、前記メッセージ・ベース通信リンクを介して前記オブジェク
ト指向プロセッサ・アレイに送られる追加の構成メッセージに応答し、 前記第1の機能的オブジェクト及び前記追加の機能的オブジェクトの各々は、
その機能を実行するため必要とされる最悪ケース時間を計算する手段を含み、 各機能的オブジェクトのインスタンス化と同時に、前記システム・オブジェク
トは、各インスタンス化された機能的オブジェクトに対する最悪ケース時間を収
集し、かつ各インスタンス化された機能的オブジェクトに対するプロセッサ時間
をスケジューリングする 請求項1記載のオブジェクト指向プロセッサ・アレイ。
10. The system object by invoking additional functional objects in the library and directing the additional functional objects to instantiate themselves as virtual processors in the writable memory. Responsive to an additional configuration message sent to the object-oriented processor array via the message-based communication link, wherein each of the first functional object and the additional functional object comprises:
Means for calculating a worst case time required to perform the function, wherein upon instantiation of each functional object, the system object collects a worst case time for each instantiated functional object. 2. The object-oriented processor array of claim 1, wherein the processor time schedules processor time for each instantiated functional object.
【請求項11】 前記システム・オブジェクトは、機能を最悪ケース時間よ
り少ない時間で完了するインスタンス化された機能的オブジェクトにより用いら
れないプロセッサ時間を利用する請求項10記載のオブジェクト指向プロセッサ
・アレイ。
11. The object-oriented processor array of claim 10, wherein said system objects utilize processor time not used by instantiated functional objects to complete functions in less than worst case time.
【請求項12】 前記システム・オブジェクトは、オフセットを各インスタ
ンス化された機能的オブジェクトに割り当てることにより各インスタンス化され
た機能的オブジェクトに対してプロセッサ時間をスケジューリングする請求項1
0記載のオブジェクト指向プロセッサ・アレイ。
12. The system object of claim 1, wherein the system object schedules processor time for each instantiated functional object by assigning an offset to each instantiated functional object.
0. An object-oriented processor array according to claim 0.
【請求項13】 メッセージ・ベース通信リンクを介して構成可能なオブジ
ェクト指向プロセッサ・アレイにおいて、 a)各々のプロセッサ手段が機能的プロセッサを実行する複数のプロセッサ手
段と、 b)前記複数のプロセッサ手段の各々に結合された書込み可能メモリと、 c)前記複数のプロセッサ手段の各々に結合された読出し可能メモリであって
、システム・オブジェクト、及び機能的プロセッサ・オブジェクトのライブラリ
を含み、各機能的プロセッサ・オブジェクトが事前定義された機能性を有する、
読出し可能メモリと、 d)前記オブジェクト指向プロセッサ・アレイを前記メッセージ・ベース通信
リンクに結合する通信インタフェース手段と、を備え、 前記システム・オブジェクトは、前記ライブラリの中の第1の機能的プロセッ
サ・オブジェクトを呼び出しかつそれ自身前記書込み可能メモリの中の前記複数
のプロセッサ手段の1つを用いてインスタンス化するため前記第1の機能的プロ
セッサ・オブジェクトを指令することにより、メッセージ・ベース通信リンクを
介して前記オブジェクト指向プロセッサ・アレイに送られる第1の構成メッセー
ジに応答する、 オブジェクト指向プロセッサ・アレイ。
13. An object-oriented processor array configurable via a message-based communication link, comprising: a) a plurality of processor means, each processor means executing a functional processor; b) a plurality of processor means; A writable memory coupled to each; and c) a readable memory coupled to each of the plurality of processor means, the library comprising a system object and a library of functional processor objects. The object has predefined functionality,
Readable memory; and d) communication interface means for coupling the object-oriented processor array to the message-based communication link, wherein the system object is a first functional processor object in the library. Via a message-based communication link by invoking the first functional processor object to call itself and instantiate itself with one of the plurality of processor means in the writable memory. An object-oriented processor array responsive to a first configuration message sent to the object-oriented processor array.
【請求項14】 前記書込み可能メモリは、前記複数のプロセッサ手段の各
々に結合された別個の書込み可能メモリを含む請求項13記載のオブジェクト指
向プロセッサ・アレイ。
14. The object-oriented processor array of claim 13, wherein said writable memory includes a separate writable memory coupled to each of said plurality of processor means.
【請求項15】 前記書込み可能メモリは、前記複数のプロセッサ手段の各
々に結合された共用書込み可能メモリを含む請求項13記載のオブジェクト指向
プロセッサ・アレイ。
15. The object-oriented processor array of claim 13, wherein said writable memory includes a shared writable memory coupled to each of said plurality of processor means.
【請求項16】 メッセージ・ベース通信リンクを介して構成可能でかつ少
なくとも1つの外部装置と使用するオブジェクト指向プロセッサ・アレイにおい
て、 a)前記オブジェクト指向プロセッサ・アレイを前記メッセージ・ベース通信
リンクに結合する通信インタフェース手段と、 b)各機能的オブジェクトが事前定義された機能性を有する複数の機能性オブ
ジェクトと、 c)前記機能的オブジェクトの少なくとも1つを前記外部装置に結合する複数
の物理的ピンと、を備え、 前記ピンは、前記メッセージ・ベース通信リンクを介して前記オブジェクト指
向プロセッサ・アレイに送られるメッセージに応答して前記機能的オブジェクト
の前記少なくとも1つに選択的に結合される オブジェクト指向プロセッサ・アレイ。
16. An object-oriented processor array configurable via a message-based communication link for use with at least one external device, comprising: a) coupling the object-oriented processor array to the message-based communication link. Communication interface means; b) a plurality of functional objects, each functional object having a predefined functionality; c) a plurality of physical pins coupling at least one of said functional objects to said external device; An object-oriented processor selectively coupled to the at least one of the functional objects in response to a message being sent to the object-oriented processor array via the message-based communication link. array.
【請求項17】 メッセージ・ベース通信リンクを介して構成可能なオブジ
ェクト指向プロセッサ・アレイにおいて、 a)プロセッサと、 b)前記プロセッサに結合された書込み可能メモリと、 c)前記プロセッサに結合された読出し可能メモリであって、システム・オブ
ジェクト、及び機能的プロセッサ・オブジェクトのライブラリを含み、各機能的
プロセッサ・オブジェクトが事前定義された機能性を有する、読出し可能メモリ
と、 d)前記機能的プロセッサ・オブジェクトの少なくとも1つを外部装置に結合
する複数の物理的ピンと、 e)前記オブジェクト指向プロセッサ・アレイを前記メッセージ・ベース通信
リンクに結合する通信インタフェースと、を備え、 前記システム・オブジェクトは、前記ライブラリの中の第1の機能的プロセッ
サ・オブジェクトを呼び出しかつそれ自身前記書込み可能メモリの中の仮想プロ
セッサとしてインスタンス化するため前記第1の機能的プロセッサ・オブジェク
トを指令することにより、前記メッセージ・ベース通信リンクを介して前記オブ
ジェクト指向プロセッサ・アレイに送られる第1の構成メッセージに応答し、 前記第1の機能的プロセッサ・オブジェクトは、前記複数の物理的ピンの少な
くとも1つに結合される オブジェクト指向プロセッサ・アレイ。
17. An object-oriented processor array configurable via a message-based communication link, comprising: a) a processor; b) writable memory coupled to the processor; c) a read coupled to the processor. A readable memory, comprising a system object and a library of functional processor objects, each functional processor object having predefined functionality; d) the functional processor object. And e) a communication interface coupling the object-oriented processor array to the message-based communication link, the system object comprising: The first functional in The object-oriented processor via the message-based communication link by invoking a processor object and instructing the first functional processor object to instantiate itself as a virtual processor in the writable memory An object-oriented processor array responsive to a first configuration message sent to the array, wherein the first functional processor object is coupled to at least one of the plurality of physical pins;
【請求項18】 f)インスタンス化された仮想プロセッサをリストするア
クティブ・タスク・リストを更に備え、 前記システム・オブジェクトは、インスタンス化された仮想プロセッサとして
前記第1の機能的オブジェクトを前記アクティブ・タスク・リストの中にリスト
することにより、それ自身をインスタンス化する前記第1の機能的プロセッサ・
オブジェクトに応答する 請求項17記載のオブジェクト指向プロセッサ・アレイ。
18. The system of claim 18 further comprising: f) an active task list listing instantiated virtual processors, wherein the system object includes the first functional object as the instantiated virtual processor. The first functional processor instantiating itself by listing in a list
The object-oriented processor array of claim 17 responsive to an object.
【請求項19】 g)前記通信インタフェース、前記アクティブ・タスク・
リスト、前記システム・オブジェクト及び前記インスタンス化された第1の機能
的プロセッサ・オブジェクトに結合された入力メッセージ・プロセッサを更に備
え、 前記入力メッセージ・プロセッサは、前記オブジェクト指向プロセッサ・アレ
イにより受け取られたメッセージを前記メッセージ・ベース通信リストを介して
前記システム・オブジェクト及び前記機能的プロセッサ・オブジェクトのうちの
1つに向ける 請求項18記載のオブジェクト指向プロセッサ・アレイ。
G) the communication interface, the active task
Further comprising an input message processor coupled to the list, the system object and the instantiated first functional processor object, wherein the input message processor receives a message received by the object-oriented processor array 20. The object-oriented processor array of claim 18, wherein a message is directed to one of the system object and the functional processor object via the message-based communication list.
【請求項20】 前記システム・オブジェクトは、前記ライブラリの中の追
加の機能的オブジェクトを呼び出しかつそれら自身を仮想プロセッサとして前記
書込み可能メモリにインスタンス化するため前記追加の機能的オブジェクトを指
令することにより、前記メッセージ・ベース通信リンクを介して前記オブジェク
ト指向プロセッサ・アレイに送られる追加の構成メッセージに応答し、 前記第1の機能的オブジェクト及び前記追加の機能的オブジェクトの各々は、
その機能を実行するため必要とされる最悪ケース時間を計算する最悪ケース時間
計算器を含み、 各機能的オブジェクトのインスタンス化と同時に、前記システム・オブジェク
トは、各インスタンス化された機能的オブジェクトに対する最悪ケース時間を収
集し、各インスタンス化された機能的オブジェクトに対するプロセッサ時間をス
ケジューリングする 請求項17記載のオブジェクト指向プロセッサ・アレイ。
20. The system object by invoking additional functional objects in the library and instructing the additional functional objects to instantiate themselves as virtual processors in the writable memory. Responsive to an additional configuration message sent to the object-oriented processor array via the message-based communication link, wherein each of the first functional object and the additional functional object comprises:
A worst case time calculator that calculates the worst case time required to perform the function, wherein upon instantiation of each functional object, the system object generates the worst case time for each instantiated functional object. The object-oriented processor array of claim 17, wherein case time is collected and processor time is scheduled for each instantiated functional object.
【請求項21】 複数のメッセージ・ソースとメッセージ目標との間の通信
を調停する方法において、 a)最大数の許可された保留メッセージを確立するステップと、 b)前記ソースの各々に前記最大数を知らせるステップと、 c)各ソースが前記目標との通信を監視して保留メッセージの現在数を決定す
るステップと、 d)前記現在数が前記最大数より少なくない場合ソースはメッセージを前記目
標に送るのを行わないステップと、 e)各ソースが要求を前記目標に送ることにより前記目標へのメッセージを開
始するステップと、 f)前記現在数が、要求が前記目標に送られる度に増分されるステップと、 g)前記目標は、メッセージを送るよう要求するソースに指令することにより
、前記要求するソースによる要求に応答するステップと、 h)前期目標が、前記目標に送られた各メッセージの受け取りを確認するステ
ップと、 i)前記現在数は、前記目標がメッセージの受け取りを確認する度に減分され
るステップと を備える方法。
21. A method for arbitrating communication between a plurality of message sources and a message target, comprising: a) establishing a maximum number of allowed pending messages; b) the maximum number for each of the sources. C) each source monitoring communications with the target to determine the current number of pending messages; and d) if the current number is not less than the maximum, the source sends a message to the target. Not sending; e) each source initiating a message to the target by sending a request to the target; f) the current number is incremented each time a request is sent to the target. G) responding to the request by the requesting source by instructing the requesting source to send a message. H) checking the receipt of each message sent to the goal by the previous goal; i) decrementing the current number each time the goal confirms receipt of the message. Method.
【請求項22】 j)前記メッセージ・ソースの少なくとも一部に対して優
先度を割り当てるステップと、 k)前記目標に割り当てられた優先度を知らせるステップと、 l)前記目標は、メッセージを送るためより高い優先度を有するソースに指令
することにより、異なる優先度を有するソースによる複数の保留要求に応答する
ステップと を更に備える請求項21記載の方法。
22. j) assigning a priority to at least a portion of said message source; k) signaling a priority assigned to said target; 1) said target is to send a message; 22. Responding to a plurality of pending requests by sources having different priorities by directing sources having higher priorities.
【請求項23】 a)ホスト・プロセッサと、 b)前記ホスト・プロセッサに結合された複数のオブジェクト指向プロセッサ
と、を備え、 前記オブジェクト指向プロセッサの少なくとも一部は、イベントに応答してデ
ータを発生し、 前記データを発生するオブジェクト指向プロセッサの各々は、要求を前記ホス
ト・プロセッサに送る要求手段と、最大許容数の同時保留要求を知るメモリ手段
と、前記ホスト・プロセッサとの通信を監視して保留要求の現在数を決定する監
視手段とを含み、 i)前記データを発生するオブジェクト指向プロセッサの各々が、データを前
記ホスト・プロセッサに送ることができる前に、要求を前記ホスト・プロセッサ
に送り、 ii)前記データを発生するオブジェクト指向プロセッサの各々が、最大許容
数の同時保留要求を知り、 iii)前記データを発生するオブジェクト指向プロセッサの各々が、前記ホ
スト・プロセッサとの通信を監視して、保留メッセージの現在数を決定し、 iv)前記データを発生するオブジェクト指向プロセッサのいずれもが、現在
数が最大数より少なくない場合要求を前記ホスト・プロセッサに送らない オブジェクト指向プロセッサ・システム。
23. A system comprising: a) a host processor; and b) a plurality of object-oriented processors coupled to the host processor, at least some of the object-oriented processors generating data in response to events. And each of the object-oriented processors generating the data monitors request means for sending a request to the host processor, memory means for knowing a maximum allowable number of simultaneous pending requests, and communication with the host processor. Monitoring means for determining a current number of pending requests; i) each of the object-oriented processors generating the data sends a request to the host processor before data can be sent to the host processor. Ii) each of the object-oriented processors producing the data has a maximum allowed number of identical Iii) each of the object-oriented processors that generate the data monitor the communication with the host processor to determine the current number of pending messages; and iv) the object-oriented processor that generates the data. None of which sends a request to said host processor if the current number is not less than the maximum number.
【請求項24】 前記データを発生するオブジェクト指向プロセッサの各々
は、現在数を増分する手段を含み、 前記ホスト・プロセッサは、メッセージを送るようオブジェクト指向プロセッ
サに指令する指令手段を含み、 v)前記現在数が、要求が前記ホスト・プロセッサに送られる度に増分され、 vi)前記ホスト・プロセッサは、要求するオブジェクト指向プロセッサにメ
ッセージを送るよう指令することにより要求に応答する 請求項23記載のオブジェクト指向プロセッサ・システム。
24. Each of the object-oriented processors generating the data includes means for incrementing a current number; the host processor includes command means for commanding the object-oriented processor to send a message; 24. The object of claim 23, wherein a current number is incremented each time a request is sent to the host processor, and vi) the host processor responds to the request by instructing the requesting object-oriented processor to send a message. Oriented processor system.
【請求項25】 前記ホスト・プロセッサは、前記ホスト・プロセッサに送
られたメッセージの受け取りを確認する確認手段を含み、 前記データを発生するオブジェクト指向プロセッサの各々は、現在数を減分す
る手段を含み、 vii)前記ホスト・プロセッサは、それに送られた各メッセージの受け取り
を確認し、 viii)前記現在数は、前記ホスト・プロセッサがメッセージの受け取りを
確認する度に減分される 請求項24記載のオブジェクト指向プロセッサ・システム。
25. The host processor further comprises: acknowledgment means for acknowledging receipt of a message sent to the host processor; and each of the data-oriented object-oriented processors comprises means for decrementing a current number. 26) viii) the host processor acknowledges receipt of each message sent to it; viii) the current number is decremented each time the host processor acknowledges receipt of a message. Object-oriented processor system.
【請求項26】 前記ホスト・プロセッサは、前記データを発生するオブジ
ェクト指向プロセッサの少なくとも一部を異なる優先度と関連付ける優先度メモ
リ手段を有し、 ix)前記データを発生するオブジェクト指向プロセッサの少なくとも一部は
、割り当てられた優先度を有し、 x)前記ホスト・プロセッサは、前記割り当てられた優先度を知り、 xi)前記ホスト・プロセッサは、より高い優先度を有するデータを発生する
オブジェクト指向プロセッサにメッセージを送るよう指令することにより異なる
優先度を有するデータを発生するオブジェクト指向プロセッサによる複数の保留
要求に応答する 請求項25記載のオブジェクト指向プロセッサ・システム。
26. The host processor includes priority memory means for associating at least a portion of the object-oriented processor generating the data with different priorities; ix) at least one of the object-oriented processors generating the data. Section has an assigned priority; x) said host processor is aware of said assigned priority; xi) said host processor is an object oriented processor which generates data having a higher priority. 26. The object oriented processor system of claim 25, wherein the system is responsive to a plurality of pending requests by an object oriented processor that generates data having different priorities by instructing the object to send a message.
【請求項27】 a)ホスト・プロセッサと、 b)前記ホスト・プロセッサに結合された複数のオブジェクト指向プロセッサ
と、を備え、 前記オブジェクト指向プロセッサの少なくとも一部は、イベントに応答してデ
ータを発生し、 前記データを発生するオブジェクト指向プロセッサの各々は、要求発生器、メ
モリ及び通信モニタを含み、 i)前記データを発生するオブジェクト指向プロセッサの各々が、データを前
記ホスト・プロセッサに送ることができる前に、要求を前記要求発生器を介して
前記ホスト・プロセッサに送り、 ii)前記データを発生するオブジェクト指向プロセッサの各々の前記メモリ
は、最大許容数の同時保留要求の指示を含み、 iii)前記データを発生するオブジェクト指向プロセッサの各々が、前記ホ
スト・プロセッサとの通信を前記通信モニタを介して監視して、保留要求の現在
数を決定し、 iv)前記データを発生するオブジェクト指向プロセッサのいずれもが、現在
数が最大数より少なくない場合要求を前記ホスト・プロセッサに送らない オブジェクト指向プロセッサ・システム。
27. A system comprising: a) a host processor; and b) a plurality of object-oriented processors coupled to the host processor, at least some of the object-oriented processors generating data in response to events. And each of the data-oriented object-oriented processors includes a request generator, a memory, and a communication monitor; and i) each of the data-generating object-oriented processors can send data to the host processor. Previously sending a request to said host processor via said request generator; ii) said memory of each of said object-oriented processors generating said data includes an indication of a maximum allowable number of concurrent pending requests; iii) Each of the object-oriented processors that generate the data is connected to the host Monitoring communication with the processor via the communication monitor to determine the current number of pending requests; and iv) if any of the object-oriented processors that generate the data determine that the current number is not less than the maximum number, An object-oriented processor system that does not send to the host processor.
【請求項28】 前記データを発生するオブジェクト指向プロセッサの各々
は、前記メモリ及び前記通信モニタに結合された現在数増分器を含み、 前記ホスト・プロセッサは、指令メッセージ発生器を含み、 v)前記現在数増分器の各々は、前記通信モニタが要求が前記ホスト・プロセ
ッサに送られていることを指示する度に現在数を増分し、 vi)前記ホスト・プロセッサは、指令メッセージを前記指令メッセージ発生
器を介して、要求するオブジェクト指向プロセッサにメッセージを送るよう命令
する要求するオブジェクト指向プロセッサに送ることにより要求に応答する 請求項27記載のオブジェクト指向プロセッサ・システム。
28. Each of the object-oriented processors that generate the data includes a current number incrementer coupled to the memory and the communication monitor; the host processor includes a command message generator; Each of the current number incrementers increments the current number each time the communications monitor indicates that a request is being sent to the host processor; vi) the host processor generates a command message by generating the command message. 28. The object oriented processor system of claim 27, wherein the request is responsive to the request by sending the message to the requesting object oriented processor via a device.
【請求項29】 前記ホスト・プロセッサは、確認メッセージ発生器を含み
、 前記データを発生するオブジェクト指向プロセッサの各々は、前記メモリ及び
前記通信モニタに結合された現在数減分器を含み、 vii)前記ホスト・プロセッサは、確認メッセージを前記確認メッセージ発
生器を介して送ることにより前記ホスト・プロセッサに送られた各メッセージの
受け取りを確認し、 viii)前記現在数減分器の各々は、前記通信モニタが前記ホスト・プロセ
ッサがメッセージの受け取りを確認する度に現在数を減分する 請求項28記載のオブジェクト指向プロセッサ・システム。
29. The host processor includes an acknowledgment message generator, each of the object-oriented processors generating data includes a current decrementer coupled to the memory and the communication monitor, vii). The host processor acknowledges receipt of each message sent to the host processor by sending an acknowledgment message through the acknowledgment message generator; viii) each of the current number decrementers comprises 29. The object oriented processor system of claim 28, wherein a monitor decrements the current number each time the host processor acknowledges receipt of the message.
【請求項30】 前記ホスト・プロセッサは、優先度メモリを有し、 ix)前記データを発生するオブジェクト指向プロセッサの少なくとも一部は
、前記優先度メモリに記憶された割り当てられた優先度を有し、 x)前記ホスト・プロセッサは、より高い優先度を有する前記データを発生す
るオブジェクト指向プロセッサにメッセージを送るよう指令することにより、異
なる優先度を有するデータを発生するオブジェクト指向プロセッサによる複数の
保留要求に応答する 請求項29記載のオブジェクト指向プロセッサ・システム。
30. The host processor has a priority memory; ix) at least a portion of the object-oriented processor that generates the data has an assigned priority stored in the priority memory. X) the host processor instructs the object-oriented processor generating the data with higher priority to send a message to cause a plurality of pending requests by the object-oriented processor generating data having different priority. An object-oriented processor system according to claim 29, responsive to:
【請求項31】 a)各々のオブジェクト指向プロセッサが事前定義された
機能性を有し、かつ少なくとも1つのデータ・イベントを発生することができる
複数のオブジェクト指向プロセッサと、 b)前記オブジェクト指向プロセッサの各々に結合されたスクリプト・サーバ
であって、複数の実行可能なスクリプトを含み、各々のスクリプトは識別データ
・イベントにリンクされている前記スクリプト・サーバと、を備え、 前記オブジェクト指向プロセッサの1つによるデータ・イベントの発生と同時
に、前記スクリプト・サーバがデータ・イベントと関連したスクリプトを実行す
る、分散処理システム。
31. a) a plurality of object-oriented processors, each object-predefined processor having predefined functionality, and capable of generating at least one data event; A script server coupled to each one, the script server including a plurality of executable scripts, each script linked to an identification data event; and one of the object-oriented processors. The script server executes a script associated with the data event at the same time as the occurrence of the data event by the distributed processing system.
【請求項32】 前記スクリプト・サーバは、前記メッセージ・ベース通信
リンクにより前記複数のオブジェクト指向プロセッサに結合された別個のプロセ
ッサである請求項31記載の分散処理システム。
32. The distributed processing system according to claim 31, wherein said script server is a separate processor coupled to said plurality of object-oriented processors by said message-based communication link.
【請求項33】 前記複数のオブジェクト指向プロセッサの少なくとも2つ
は、単一のハードウエア・マイクロプロセッサの中の仮想プロセッサとして実行
される請求項31記載の分散処理システム。
33. The distributed processing system according to claim 31, wherein at least two of said plurality of object-oriented processors execute as virtual processors in a single hardware microprocessor.
【請求項34】 前記複数のオブジェクト指向プロセッサの少なくとも2つ
は、単一のハードウエア・マイクロプロセッサの中の仮想プロセッサとして実行
される請求項32記載の分散処理システム。
34. The distributed processing system of claim 32, wherein at least two of said plurality of object-oriented processors execute as virtual processors in a single hardware microprocessor.
【請求項35】 前記スクリプト・サーバは、前記単一のハードウエア・マ
イクロプロセッサの中の仮想プロセッサとして実行される請求項33記載の分散
処理システム。
35. The distributed processing system according to claim 33, wherein the script server is executed as a virtual processor in the single hardware microprocessor.
【請求項36】 前記複数のオブジェクト指向プロセッサは、別々のプロセ
ッサ・アレイに配列される請求項31記載の分散処理システム。
36. The distributed processing system according to claim 31, wherein said plurality of object-oriented processors are arranged in separate processor arrays.
【請求項37】 前記スクリプト・サーバは複数のスクリプト・サーバを備
え、その各々が前記アレイの1つと関連している請求項36記載の分散処理シス
テム。
37. The distributed processing system according to claim 36, wherein said script server comprises a plurality of script servers, each associated with one of said arrays.
【請求項38】 前記アレイの少なくとも1つは、単一のハードウエア・マ
イクロプロセッサである請求項37記載の分散処理システム。
38. The distributed processing system according to claim 37, wherein at least one of said arrays is a single hardware microprocessor.
【請求項39】 a)各々のオブジェクト指向プロセッサが事前定義された
機能性を有し、各々のオブジェクト指向プロセッサが少なくとも1つのデータ・
イベントを発生することができ、かつ各々のオブジェクト指向プロセッサがアド
レスを有する複数のオブジェクト指向プロセッサと、 b)前記オブジェクト指向プロセッサの各々に結合されたスクリプト・サーバ
であって、複数の実行可能なスクリプトを含み、各々のスクリプトは前記アドレ
スの1つにリンクされている前記スクリプト・サーバと、を備え、 前記オブジェクト指向プロセッサの1つによるデータ・イベントの発生と同時
に、前記スクリプト・サーバが、データ・イベントを発生したオブジェクト指向
プロセッサのアドレスと関連したスクリプトを実行する、分散処理システム
39) a) each object-oriented processor has predefined functionality, and each object-oriented processor has at least one data processor;
A plurality of object-oriented processors capable of generating an event, each object-oriented processor having an address; and b) a script server coupled to each of the object-oriented processors, the plurality of executable scripts. Wherein each script comprises: a script server linked to one of the addresses; and upon the occurrence of a data event by one of the object-oriented processors, the script server A distributed processing system that executes a script associated with the address of the object-oriented processor that generated the event
【請求項40】 前記スクリプトの少なくとも1つは、実行されたとき、前
記スクリプト・サーバが指令を前記オブジェクト指向プロセッサの1つに送るこ
とをもたらす請求項39記載の分散処理システム。
40. The distributed processing system of claim 39, wherein at least one of the scripts, when executed, causes the script server to send a command to one of the object-oriented processors.
【請求項41】 前記スクリプトの少なくとも1つは、実行されたとき、前
記スクリプト・サーバがデータを前記オブジェクト指向プロセッサの1つに送る
ことをもたらす請求項39記載の分散処理システム。
41. The distributed processing system of claim 39, wherein at least one of the scripts, when executed, causes the script server to send data to one of the object-oriented processors.
【請求項42】 複数のオブジェクト指向プロセッサを有し、前記複数のオ
ブジェクト指向プロセッサの少なくとも1つはデータを発生するプロセッサであ
る分散処理システムにおいてデータを処理する方法において、 a)スクリプト・サーバを前記複数のオブジェクト指向プロセッサに結合する
ステップと、 b)少なくとも1つのデータを発生するプロセッサにより発生されたデータを
処理するための命令を含む少なくとも1つのスクリプトを前記スクリプト・サー
バに与えるステップと、 c)前記データを発生するプロセッサに命令を与えて、少なくとも1つのスク
リプトに従って処理するためデータを前記スクリプト・サーバに送るステップと
を備える方法。
42. A method for processing data in a distributed processing system having a plurality of object-oriented processors, wherein at least one of the plurality of object-oriented processors is a processor that generates the data, comprising: Coupling to a plurality of object-oriented processors; b) providing to the script server at least one script including instructions for processing data generated by the at least one data-generating processor; c). Providing instructions to a processor that generates the data and sending the data to the script server for processing according to at least one script.
【請求項43】 前記少なくとも1つのデータを発生するプロセッサは、第
1の複数のデータを発生するプロセッサであり、 前記スクリプト・サーバに少なくとも1つのスクリプトを含む命令を与える前
記ステップは、前記第1の複数のデータを発生するプロセッサと数において対応
する第1の複数のスクリプトを与えるステップを含み、 各スクリプトは、前記データを発生するプロセッサのそれぞれのものからのデ
ータを処理するための命令を含む 請求項42記載の方法。
43. The processor for generating the at least one data is a processor for generating a first plurality of data, wherein the step of providing the script server with an instruction including at least one script includes the step of: Providing a first plurality of scripts corresponding in number to a plurality of data-generating processors, each script including instructions for processing data from a respective one of said data-generating processors. 43. The method of claim 42.
【請求項44】 前記第1の複数のスクリプトの少なくとも1つは、データ
を前記オブジェクト指向プロセッサの1つに送る命令を含む 請求項43記載の方法。
44. The method of claim 43, wherein at least one of said first plurality of scripts includes instructions for sending data to one of said object-oriented processors.
【請求項45】 d)別の処理システムを前記スクリプト・サーバに結合す
るステップを更に備え、 前記第1の複数のスクリプトの少なくとも1つは、データを他の処理システム
に送る命令を含む 請求項43記載の方法。
45. The method of claim 45, further comprising: d) coupling another processing system to the script server, wherein at least one of the first plurality of scripts includes instructions for sending data to another processing system. 43. The method of claim 43.
JP2000527869A 1998-01-07 1999-01-07 Object-oriented processor array Pending JP2002542524A (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US09/003,684 US6567837B1 (en) 1997-01-29 1998-01-07 Object oriented processor arrays
US09/004,174 1998-01-07
US09/003,993 US6615279B1 (en) 1997-01-29 1998-01-07 Central and distributed script servers in an object oriented processor array
US09/004,174 US6052729A (en) 1997-01-29 1998-01-07 Event-reaction communication protocol in an object oriented processor array
US09/003,684 1998-01-07
US09/003,993 1998-01-07
PCT/US1999/000307 WO1999035548A2 (en) 1998-01-07 1999-01-07 Object oriented processor arrays

Publications (1)

Publication Number Publication Date
JP2002542524A true JP2002542524A (en) 2002-12-10

Family

ID=27357464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000527869A Pending JP2002542524A (en) 1998-01-07 1999-01-07 Object-oriented processor array

Country Status (5)

Country Link
EP (1) EP1121628A2 (en)
JP (1) JP2002542524A (en)
AU (1) AU2452299A (en)
CA (1) CA2317772A1 (en)
WO (1) WO1999035548A2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7487507B1 (en) 2001-07-18 2009-02-03 City U Research Limited Secure control transfer in information system
US7146479B2 (en) 2001-07-18 2006-12-05 City U Research Limited Method and apparatus of storage allocation/de-allocation in object-oriented programming environment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5165018A (en) * 1987-01-05 1992-11-17 Motorola, Inc. Self-configuration of nodes in a distributed message-based operating system
JP2594979B2 (en) * 1987-10-23 1997-03-26 株式会社日立製作所 Multi-processor system
US5692193A (en) * 1994-03-31 1997-11-25 Nec Research Institute, Inc. Software architecture for control of highly parallel computer systems
US5634070A (en) * 1995-09-08 1997-05-27 Iq Systems Distributed processing systems having a host processor and at least two object oriented processors which communicate directly with each other

Also Published As

Publication number Publication date
CA2317772A1 (en) 1999-07-15
AU2452299A (en) 1999-07-26
WO1999035548A3 (en) 2000-10-26
WO1999035548A2 (en) 1999-07-15
EP1121628A2 (en) 2001-08-08

Similar Documents

Publication Publication Date Title
US10817184B2 (en) Control node for multi-core system
US6697878B1 (en) Computer having a remote procedure call mechanism or an object request broker mechanism, and data transfer method for the same
US6223217B1 (en) Distributed object networking service
US5434975A (en) System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications
JP2514303B2 (en) Method and system for transferring message to network using virtual device driver
JP4690437B2 (en) Communication method, communication apparatus and program for network application
US5428781A (en) Distributed mechanism for the fast scheduling of shared objects and apparatus
US20030065856A1 (en) Network adapter with multiple event queues
US6567837B1 (en) Object oriented processor arrays
WO2002031672A2 (en) Method and apparatus for interprocessor communication and peripheral sharing
JPH06309252A (en) Interconnection interface
TW200411403A (en) System and method for transferring data between virtual machines or other computer entities
US7640549B2 (en) System and method for efficiently exchanging data among processes
US6052729A (en) Event-reaction communication protocol in an object oriented processor array
CN116243995B (en) Communication method, communication device, computer readable storage medium, and electronic apparatus
CN113032166A (en) Inter-core communication method, processor, inter-core communication system, and computer-readable storage medium
JP2534229B2 (en) Distributed data processing method in multi-process computer system
US6615279B1 (en) Central and distributed script servers in an object oriented processor array
JP2002542524A (en) Object-oriented processor array
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication
JPH06301655A (en) Distributed processing system
US6272524B1 (en) Distributed processing systems incorporating a plurality of cells which process information in response to single events
Winterbottom et al. Topsy: an extensible unix multicomputer
JPH09245003A (en) Parallel distributed processing system and method therefor
JP3007340B1 (en) Function calling method, parallel distributed processing system and computer