JPH03208187A - 拡張グラフィック機能を与える方法 - Google Patents

拡張グラフィック機能を与える方法

Info

Publication number
JPH03208187A
JPH03208187A JP27515790A JP27515790A JPH03208187A JP H03208187 A JPH03208187 A JP H03208187A JP 27515790 A JP27515790 A JP 27515790A JP 27515790 A JP27515790 A JP 27515790A JP H03208187 A JPH03208187 A JP H03208187A
Authority
JP
Japan
Prior art keywords
function
functions
processor
host
graphics
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.)
Granted
Application number
JP27515790A
Other languages
English (en)
Other versions
JP3051438B2 (ja
Inventor
Michael A Denio
マイケル エイ デニオ
William S Egr
ウィリアム エス イーグル
Douglas C Crawford
ダグラス シー クローフォード
D Asar Michael
マイケル ディー アサル
Graham Short
グレイアム ショート
James G Littleton
ジェイムズ ジー リトルトン
Aken Jerry R Van
ジェリー アール ヴァン アーカン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US07/420,491 external-priority patent/US5247678A/en
Priority claimed from US07/420,409 external-priority patent/US5269021A/en
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH03208187A publication Critical patent/JPH03208187A/ja
Application granted granted Critical
Publication of JP3051438B2 publication Critical patent/JP3051438B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Image Generation (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は全体として、コンピュータ処ll、殊ニ、ホス
トプロセソサとグラフィソクブ1コセソサを共に備える
システム用のソフトウェアインターフェースに関する。
〔従来の技術〕
今日の、グラフィンクディスプレイを使用するコンピエ
ータシステムは、相異なる一連のアーキテクチャをイ丁
している。システムによってはホストプロセソサとディ
スプレイコントローラを備えるものがある。これらは本
質上、ハードヮイアド・ビノ1・マップシステムであっ
て、ホストプロセソサが全てのグラフインク処理を実行
することが要求される。しかし、かかるシステムの欠点
は、解像度の如き図形に課される要求が厳しくなるにつ
れて、ホストプロセソサに対する処理上の負担もまた大
きくなり、その結果、処理速度が低下することである。
ディスプレイコントローラに代わる選択肢として、他の
システムではグラフィンク処理の任務をグラフィノク処
理サブシステムに委ねているものがある。かかるシステ
ムにはグラフインク機能の実行を専らハーハウエアが行
うという形に依存しているものもある。その他のグラフ
ィンク処理サブシステムはプログラルブルなグラフイン
クプロセッサを使用して、プログラマが機能性を追加で
きるようにしたものがある。
グラフィックブロセソササブシステムは高い解像度と高
速な実行を可能にするけれども、かかるシステムの多く
の欠点は、ハードワイヤド方式のものであれ、プログラ
マプルなものであれ、それらの拡張が容易でないという
点である。プログラマブルプロセソサを有するサブシス
テムでさえ、ホストシステムとそのアプリケーションプ
ログラムとを統合することは困難であり、この理由から
、それらは本質上、固定機能システムとなっている。
かかるシステムはできる限り、汎用的であろうと努めて
いるため、余りに多くの機能をサブシステムに追加する
ためにその機能性は効率性を犠牲にして得られることに
なり、いわゆる「輪廻」効果を有することになりがちで
ある。固定された組のa能を有するか、拡張困難なシス
テムの有するもう一つの問題点は、それらが、新たなグ
ラフインクアルゴリズムが間断なく開発されているグラ
フインクソフトウエアと歩調をあわせることができない
点である。
拡張可能性の他に、グラフィソクシステムを設計する際
に考慮すべきもう一つの問題は規格化の問題である。ハ
ードウエアメーカの観点からは、グラフィンク規格の目
的は、一つのグラフインクシステムが多くのアプリケー
ションプログラムと共に使用できるようにすることであ
る。ソフトウエア開発汗の観点からは、一つの規格は一
つのプログラムがどんなグラフィソクシステム上でも走
ることができるようにしなければならない。
CGA,EGA、VGAの如き多くの規枯は、グラフィ
ノクサブブロセノサシステムよりも単一のプロセノサシ
ステムに対して向けられたものであり、それらはソフl
・ウエアとグラフィックハードウエアのインターフェー
スをとる点では或功しているけれども、ホストとグラフ
ィソクシステム間のインターフェースを提供することに
は成功していない。
そのため、効率性を落とさずに拡張可能性を提供できる
グラフィックサブシステムインターフェースに対する二
−ズが存在している。更に、拡張可能性を実現するため
の機構は、適用業務プログラマーとハードウエアメーカ
の双方が彼らの製品を対象とすることの可能なインター
フェースを提供する必要がある。上記インターフェース
は、規格化を促進するだけの十分に高い水準にあるが、
しかも処理速度を促進するに十分低いレベルになければ
ならない。
〔発明が解決しようとする課題〕 〔課題を解決するた
めの手段〕 本発明を一面から述べると、グラフインクプロセソササ
ブシステムにより実行されるが、ホストプロセソサシス
テム上を走るメインプログラムから呼出される関数を拡
張する方法に関する。上記方法の基本的なステップは、
グラフインクブロセソサにより実現されるサブプログラ
ムをつくりだし、同サブプログラムを定義することによ
ってその引き数がランタイム時にパスできるようにし、
サブプログラムをグラフインクプロセソサ用にコンパイ
ル又はアセンブリし、そのサブプログラムをグラフィソ
クブロセソサヘロードし、同しサブプログラムを先にロ
ードされた関数にリンクすることである。
本発明をもう一つの面から表現すると、ホストコンピュ
ータシステム中にグラフインクサブシステムを使用する
方法に関する。同方法は、グラフィソクサブシステムを
使用して組の原始コア関数を提供し、ホストシステムを
使用して拡張関数をグラフィソクサブシステムへダウン
ロードし、ソフl・ウエアインターフェースを用いてホ
ストシステムからサブシステムへ引数をパスし、更にグ
ラフインクサブシステムを用いて拡張関数とコア関数を
実行する基本的ステップより構成される。
本発明をハードウエアの面から見ると、第lのプロセソ
サ上で単一のソフトウエアプロヂラムを実行することに
よってそのプログラムが第2のプロセッサによって実行
さるべき指定関数を呼出すことができるようにした多重
処理コンピュータシステムである。同システムは、プロ
グラマブルホストブロセソサシステムと、プログラマブ
ルグラフィックプロセッサシステムより成り、上記ホス
トシステムは、拡張関数がグラフィソクブロセッサへダ
ウンロードされ実行可能にするソフトウェアインターフ
ェースを使用している。
本発明をもう一つの面から見ると、多重処理コンピュー
タシステムのホストブロセソサとグラフィンクプロセッ
ササブシステムとのインターフェースをとるためのソフ
トウェアインターフェースである。本発明は、種々のソ
フトウエアプログラムを含み、それらが一つのアプリケ
ーションプログラムによって提供されるデータを処理す
ることによってそのアプリケーションプログラムがグラ
フィックプロセソサにより実行される関数を呼出すこと
ができるようになっている。
〔発明の効果] 本発明の技術的な利点は、それがグラフインクサブシス
テムを効率的であると共に容易に拡張可能とする点であ
る。
実行速度は、ソフトウエア開発者がそのアプリケーショ
ンに最も良く適合するグラフインク関数のカスタム集合
をつくりだすことができるために最適化される。本発明
のもう一つの利点は、それが、グラフィノクサブシステ
ムの機能性を拡張するために使用される方法を標準化で
きる点である。
本発咽は、ハードウエアメーカとソフトウエア開発者の
双方が対象とする彼らの製品に対するインターフェース
を提供するものである。
[実施例] 本発明がオベレートするハードウエア環境は、−tC的
に表現すれば、ホストブロセノサとグラフィノク処理用
プロセソサの少なくとも2個のブロセノサを有する多重
処理コンピュータシステムである。かかるシステムの通
用業務は、コンピュータ支援設計(CAD) 、デスク
トノプバプリソシング、画像処理、プレゼンテーション
グラフィソクスの如き高解像度グラフインク処理である
。本発明のハードウエア的側面は、第3図に関して詳論
する。
本発明の利点の一つは、一つの言語で書かれたメインソ
フトウエアプログラムをホストシステム上で走らせるこ
とができるが、グラフィソクプロセソサにより実行さる
べく指名された関数を呼出すことができることである。
それ故、暗黙上、本発明の場合に使用されるプロセソサ
は高水準言語でプログラミングすることが可能であり、
上記言語は両プロセッサについて同一の言語とすること
ができる。かくして、各フ“ロセフサは、それ自身の命
令集合とコンパイラと関わりあうことによって、そのプ
ロセッサの低水準言語がつくりだれさる。
本発明の基本にある思想は、グラフィックサブシステム
上で実行されるべきグラフィック関数がコア原始関数と
拡張関数の2つのグループで最もよく実行されるという
ことである。
コア原妬関数は、常時、グラフィンクプロセッサから利
用可能である。これらのコア原始関数は、少数の基本グ
ラフィックユーティリティ関数を含んでいるが、同時に
、システム初期化、グラフィンク属性制御、メモリ管理
、スクリーンクリア、カーソル操作、通信、および拡張
用の関数をも備えている。拡張関数は、必要に応してロ
ードされ、アプリケーションプログラムにより使用され
るグラフィンク関数を提供する。
本発明のソフトウエア的側面に関する以下の記述は、主
として、C言語で書かれたプログラムを対象とするもの
である。然しなから、本発明がオペレートするプログラ
ミング環境はC言語に固有なものではなく、本文中に解
説したプログラミング構造と関数性は任意の高水準言語
へ容易に翻訳することが可能である。
その特殊なインプリメンテーションは、本明細書を検討
すれば、当該技術分野において通常の技能を有するプロ
グラマの能力の範囲内にあると考えられる。本発明の開
示は種々の適用業務に対して今日利用可能な無数の言語
とシステムで本発明を実施するために行うものである。
また拡張関数もアセンブラ言語で容易にプログラミング
でき、その場合にはそれらは同様な方法で呼出される。
拡張関数コードがコンパイルされるのではなくアンセプ
ルされる点を除いては同じ方法が使用される。それ故、
本解説上“アセンブル”は“コンパイル”と置換するこ
とが可能である。
本発明の「ユーザ」は、一つの多重処理システムの諸々
の一部を提供する種々の人物であって差支えない。例え
ば、ユーザは上記ユーザはソフトウエア開発者で、シス
テム上で使用するために作威中のアプリケーション又は
ドライバに対する拡張関数を追加したいと欲しているも
のであってもよい。あるいは、単に他のプログラマが使
用できるようにするために拡張関数を提供するプログラ
マであってもよい.その代わりに、ボードメーカの如き
ハードウエアメーカが、グラフインクシステム用の関数
をブログラξングすることもできる.また、上記ユーザ
は、そのインターフェースを使用するプログラムを実際
に実行させる者であってもよい。更に、計算方法とプロ
グラムについて特徴的なことであるが、ユーザは、コン
ピュータ上でランする他のソフトウエアであってもよい
本解説の目的上、一人のユーザが多重処理システムに付
加したいと希望しているようなサブプログラムは「拡張
関数」と称することにする。メインプログラムを実行す
るシステムは「ホストブロセノサシステム」あるいは「
ホストシステム」と称することにする。そして、その際
、そのブロセノサは「ホストブロセソサ」と称する。拡
張関数がその上で実行されるシステムは、「グラフィッ
ク処理システム」であり、そのブロセソサは「グラフィ
ノクプロセノサ」又は「グラフインクシステムプロセノ
サJ  (GSP)と称することにする。
第1図は、マルチブロセソサシステムと共に使用される
拡張関数をつくりだす基本的ステップを示すブロソク線
図であって、上記システムはホストプロセノサとグラフ
インクプロセフサを備えている。この方法を使用して、
コア原始関数内に含まれないグラフィンク関数を一人の
プログラマがつくりだすことができる。これらの拡張関
数はダイナミックロードモジュール(DLM)内に組込
まれ、エンドユーザによって使用され、エンドユーザは
普通、それらを初期化時にグラフィソクシステムへダウ
ンロードする。その後、それらはホストシステム上で実
行中のメインプログラムから呼出すことができる。
上記方法の基本的ステップは、グラフィックブロセソサ
が実行するに適当なサブプロセソサを作成し、同サブプ
ログラムをその引数が実行中にパス可能なように定義し
、グラフィックプロセソサ用にコンパイルし、そのサブ
プログラムを一部リンクしてDLMを形成することであ
る。最終的に、DLMはグラフィンクプロセッサへダウ
ンロードされ、そこで現存のサブプロセッサ関数とコア
原始関数とリンクされる。
ステソプ1lにおいて、プログラマは、グラフインクプ
ロセッサが実行するに適当な、少なくとも一つの、通常
は一連の関数を有するサブプログラムを開発する。これ
らの関数は、高水準言語又はアセンブラ言語で書くこと
ができる。本発明の特徴の一つは、拡張関数がメインプ
ログラムと同一の言語で記述でき、グラフインクプロセ
ッサ用にコンパイル又はアンセブル可能な点である。関
数定数は、本文中では、本発明を実施するために使用さ
れるその他のコンピュータプログラミンクと同様に、そ
の“コードと称することにずる。
ステンプ12では、サブプログラムはランタイム中にサ
ブプログラム引数がグラフインクプロセッナへパスでき
るような形に定義される。ステ・ノプ13は、メインプ
ログラム中のサブプログラムの呼出しがステソプ12の
定義によって理解可能な形に表現されなければならない
点でステップ12と関連している。ステップl2と13
を実行するには少なくとも2つの異なる方法が存在する
これらの方法は、それぞれ「マルチプロセッサブロセノ
サにおけるソフトウエアパーティショニング」と「マル
チプロセソサシステム用拡張ソフトウエア関数」(権利
者テキサス・インスッルメント社、ケース番号# 13
625号、および1 14443号)と題する同時係属
出願に解説されている。上記第1の出願は、拡張関数を
マルチブロセソサシステムに付加するパケット法を記述
し、第2の出願はダイレクト法について記述している。
上記両出願の開示事項は、参考のため本文中に組込んで
ある。
上記パケット法は、ユーザ側でのプログラミング労力量
が最小になるようにグラフィソクシステムを拡張できる
ように設計されている。同方法によれば、C言語のよう
な高水準言語で記述された関数をホストシステム上でラ
ン中のメインプログラムから呼出してグラフィックシス
テムによって実行することができる.事実、上記同時係
属出願中に説明されているように、バケソト法によれば
、一人のユーザがホストシステム上をラン中の一関数を
グラフインクシステムに移動させ、それを同じパラメー
タによって呼出すことができる。パケ・ノト法では、関
数の引数は、送られるデータのサイズと型を記述するバ
ケソトの形で送られる。
ダイレクト法は、バケソト法のように引数をスタソク上
に配置することはない。関数は、1個の引数と共にグラ
フィソクサブシステムにより呼出される。上記引数は、
通信バ・ノファのポインタで、そこにホストは関数の引
数をダウンロードする。
上記関数は、付加ロードを含み、同コードは、グラフィ
ソクプロセソサに対して上記バソファからパラメータを
得て、それらを局所的変数と突合わせるように指令する
。上記関数は、直接入口点法を用いてメインプログラム
から呼出される。入口点は関数の引数のフォーマノトと
復帰条件を判断する。これらの直接入口点については同
時係属の「拡張関数」出願中に詳説されている通りであ
る.ステノブ14はグラフィソクブロセッサ用にサブプ
ログラムをコンパイルする。もし、サブプログラムがグ
ラフィノクプロセソサ用にアセンブラ言語で書かれてい
れば、ステノプl4はそのコードをアセンブリすること
はいうまでもない。コンパイルとアセンブルの技法は周
知の通りである。
ステソプ1 5 − 1. 7は、サブプログラムの一
部リンクとロードを喚起する。これらステップの実行は
「マルチプロセソサシステムに使用されるソフトウエア
用ロードタイムリンカゴ (権利者テキスト・インスト
ルメント社、ケース番号# 14442号)と題する同
時係属出願中に説明されている。
本願は参考のため本文中に組込まれてある。本発明の重
要な特徴点は特定のアプリケーションプログラムの要求
に応じてランタイム時に拡張関数がロードされリングで
きる点にあるため、上記リンク・ロードのステップは、
本文中、「ダイナミックダウンローデイング」と称する
ことにする。
同時係属出願に解説されているロードタイムリンカの方
法論に従って、ステップ15はサブプログラムを一部リ
ンクしてDLMを形成する。この一部リンキングステソ
プによってサブプログラム内部の変数と関数に対する参
照が全て分解される。
サブプログラムにより外部参照されたそれらの変数と関
数は分解されないままにとどまる。ステソブ16はDL
Mをグラフィ・ノクシステムにロードする。ランタイム
中にロードが行われることによって、アプリケーション
プログラムは、それと共に使用されるハードウエアとは
別個に市販することができるようにすることが望ましい
。ステソプ17は、D L. Mのリンクを完了し、サ
ブプロセッサシステム中に常駐する外部参照変数と関数
を全て分解する。これらの常駐関数はコア原価関数であ
るのが通常であろうが、本発明の方法によりロードされ
る他の拡張関数であってもよい。ソフトウエア開発段階
中において、ステップ16とl7は、当該アプリケーシ
ョンが最終的に使用されることになるグラフィ・7クサ
ブシステム上でなく、特殊なテストグラフインクサブシ
ステム上で行わうことかできる。にもかかわらず、上記
テストシステムは、グラフィックプロセソサとエミュレ
ータを備えるものと想定され、上記方法は基本的に同一
である。エンドユーザは、また、ランタイム時にステッ
プ16とl7を実行することもできる。
第2図は、本発明の第2の面であるホストコンピュータ
システム中にグラフィックサブシステムを使用する方法
を示す。第2図は、システムフローダイアグラムの形を
とっており、その方法のステップはそれらを実行するソ
フトウエアプログラムと関連している。全体として、第
2図は、ホストメモリ210とグラフインクメモリ22
0内に共に常駐するソフトウェアより構成される。メモ
リ210内に常駐するソフトウェアは、通信ドライバ2
11と、アプリケーションプログラムオブジェクトファ
イル214と、拡張関数オブジェクトファイル216で
あり、後者は以下に論ずるようにグラフインクメモリ2
20ヘロードされる。
212と215の番号をふったコンポーネントは、アプ
リケーションファイル214と拡張関数DLMファイル
216がソースコードモジュールからコンパイルされた
ことを示す。アプリケーションファイル214の一つは
、メインプログラム213である。メモリ220内に常
駐するソフトウェアは、コマンド実行ルーチン221と
、拡張関数定義の実行可能ファイル226と、インクル
ードファイル225と、コア原始関数222、223、
224である。これらコンポーネントは第4図に関連し
て更に解説する。
第2図の方法は、プロセソサどうしの間の交信手段を備
える多種処理コンピュータシステム上で使用するための
ものである。従って、かかるシステムのブロソク線図で
ある第3図を参照することによって最も良く理解するこ
とができる。同システムはホストブロセソサシステム3
10と、グラフィノクブ口セノササブシステム320を
共に備えている。グラフィノクシステム320は、グラ
フィソクブロセソサ321がホストブロセノサ311と
平行してランし、グラフィンク情報を計算・処理する一
方、ホストプロセソサ311が他の処理タスクを続行処
理可能なように構成することが望ましい。
ホストプロセソサ311は、インテル社製の80286
と80386ブロセノサの如き周辺制御用に最適化され
るのがg通である。これらのプロセソサはDOSをベー
スとしたパーソナルコンピュータシステムと共に使用さ
れるが、本発明はDOSオペレーティングシステムに限
定されるものではない。事実、本文中に解説した方法と
メカニズムは各種のプロセソサとオペレーティングシス
テムを使用して実施することが可能である。ホストコン
ピュータ311と関係するメモリ210は、ランダムア
クセスメモリ (RAM)を備えることによって、同メ
モリがその処理を指示するプログラムにアクセス可能と
することができる。
グラフィックプロセッサ321はグラフィソク処理用に
設計され、ブログラξング可能である。
かかるプロセッサの一例は、テキサス・インスッルメン
ト社製の34010グラフィックプロセソサであって、
同プロセッサは、ディスプレイ装置制御とリフレッシュ
操作用のハードウエアと共に、グラフィンク処理用の命
令集合を拡張した32ビットマイクロプロセッサである
。メモリ220はRAMメモリを備えることによって、
グラフインクブロセソサ321が同メモリに如何にして
グラフィンク情報を処理すべきかを命令するプログラム
を格納することができるようになっている。
上記2個のプロセッサどうしの間の通信手段は、パス3
30と通信バソファ323により具体化する。パス33
0は双方向性であって、データ通路と制御ラインを提供
する。通信バソファ323は、両方のプロセソサシステ
ム310と320とによってアクセス可能であり、第5
図に関して詳説する。通信千段のその他のハードウエア
製作も可能であって、その場合の第一次的な要求条件は
、各ブロセッIJ− 3 1 1と321とが、通信バ
ッファ323にアクセスでき、同バソファ323が、プ
ロセソサどうしの間をハンドシェイクさせるためのメソ
セージデー夕と、呼出し中の関数を識別するための識別
空間と、コマンド引数と追加データをパスするためのデ
ータ空間より構成されていることである。第3図に示す
形は、プロセ・ツサ間の交信を可能にするための数多く
の手段のうちの一つにすぎず、その他の手段も容易に開
発することができる。更に、第3図は2プロセソサシス
テム310、320で別々のメモリ210と220を備
えたものを示しているが、通信手段は共用メモリであっ
ても差支えない。
第3図のマルチプロセソサシステムは、種々の標準的な
周辺装置群、殊に、ディスプレイ340、大容量メモリ
350、およびキーボードやマウスの如き人力装置36
0と共に動作する。これらの人出力装置とその他のホス
トシステム3 1 0 部分間でホストシステムパス3
14を介して適当な形で情報を交信するためにI/O回
路313を使用する。人力装置360によってユーザは
、ホストブロセノサシステム310と対話することがで
きる。ディスプレイ340は、周知の制御技法と人出力
技法を介してグラフインクプロセソサ321へ接続され
る。
再び第2図について見ると、上記方法は、DLMファイ
ル216からグラフィックサブシステム320へ拡張関
数をダウンロードし、上記拡張関数をメインプログラム
213から呼出し、同関数の引数をホストシステム31
0からサブシステム320ヘパスし、拡張関数を実行す
るという基本的なステップより構或される。コア原始関
数は、メインプログラム213がサブシステム320内
に常駐する関数を呼出す前に、グラフインクサブシステ
ム320内ヘロードされる。このことによってロードと
リンクがグラフィソクプロセソサ321によって実行さ
れることが可能になると共に、拡張関数によって一定の
基本的なグラフィンクタスクを呼出すことが可能になる
第2図の方法は、一つのアプリケーションブログラ人が
実行されることになるまで行われる必要はないから、同
方法2はランタイム法と称することにする。然しなから
、上記アプリケーションプログラムは再びその拡張関数
をロードしリンクすることなく再実行可能な点を理解さ
れたい。
かくして、ステップ22では、拡張関数DLM216が
グラフィソクメモリ220ヘロードされ、同関数をそれ
が呼出す他の任意のコードとリンクされる。このことは
、コア関数であるダイナミ,ノクリンカ224によって
実現される。同リンカ224は、第1図に関して先に説
明したロードとリンクのステソプを実行する。
殊に、ステノブ22のロードとリンクによって拡張関数
DLM216がメモリ220ヘロードされ、ランタイム
時に他の拡張関数とコア原始関数にリンクされ、実行可
能ファイル226を形戒することが可能になる。ダイナ
旦ソクリンカ224は、インクルードファイル225の
一部である記号テーブルファイルを用いて拡張関数を含
む実行可能なファイル226をつくりだし、システム残
部に対する関数を識別する。本発明の特徴の一つは、拡
張関数がコードモジュール215としてホストシステム
310上で開発され、オブジェクl・ファイル216へ
とコンパイルされ、グラフイノクシステム320ヘダウ
ンロードできる点である。
ステップ232では、現在は実行可能なファイル226
の形をとった拡張関数がホストシステム3】0上をラン
するメインプログラム213から呼出される。メインプ
ログラム213はオブジェクトファイル214から導出
される実行可能ファイルである。
ステップ24では拡張関数226の引数がホストシステ
ム310からサブシステム320ヘパスされる。ステノ
プ24を実行するために、ホストシステム310は通信
ドライバ211を供給され、グラフインクシステム32
0は、コマンド実行プログラム221を供給される。通
信ドライバ211の詳細は、第4図と第5図に関して以
下に説明するが、要するに、通信ドライバ211は、ホ
ス1・システム310とグラフインクシステム320間
を交信するために使用されるプログラムを格納している
。また、コマンド実行プログラム221も、第4図に関
して以下に説明する。通信ドライバ211どコマンド実
行プログラム221双方の働きは、バケソト法又は引数
をパスするダイレクト法の何れか一方、又はその両方を
包含する。
ステソブ25では、グラフインクサブシステム310を
用いて拡張関数226が実行される。もし拡張関数22
6がコアアプリケーション原始関数223を呼出す場合
には、ステップ25はその原始関数の実行を伴うことに
なる。
ステノブ26では、グラフィソクサブシステム320を
使用してコア原始関数222、223、224をザブシ
ステム320内ヘロードする。上記関数は常に呼出し可
能である。コア原始関数は、システム原始関数222と
、アプリケーション原始プログラム223の2つの基本
的な関数型にグループ分けすることができる。システム
原始関数222は、サブシステム初期化、出力、メモリ
管理、通信、および拡張の如き処理を実行するための関
数を含む。システム原始関数の後者の型、拡張関数は、
拡張関数をロードし、リンクすることに関連して使用さ
れ、ダイナミックリンカ224として別個に命令する特
殊プログラムを含んでいる。アプリケーション原始関数
223は、第1図の方法によりリンクされた後に、メイ
ンプログラム213から呼出して利用される。コア原始
関数222、223、224のインプリメンテーション
の特殊例は、“TIGA−340インターフェースユー
ザガイド″ (テキサス・インスツルメント社刊)と題
する刊行物に見ることができる。
第4図は、メモリ210と220を有する第3図のプロ
セフサ311と321の如き2個の異なるプロセノサに
ロードされる一連のソフトウエア案を示したものである
。この解説はスタソク群を使用することを対象としてい
るが、本発明の他の実施例では、1スタノク以外の構造
を使用することもできよう。その本質的な特徴は、メモ
リの一エリアが両方のプロセソサ311と321とにと
って同一に見える点である。上記構造はまた、つの共用
メモリとすることも可能であろう。メモリとメモリ内容
の共用性によって、ファンクションコールが両ブロセソ
サ311と321により容易に交信しあえ、了解可能と
なる。
全体として、第4図は、第1のプロセソサシステム31
0にロードされアプリケーションインターフェースライ
ブラリ217とリンクされる、実行可能なコード形式2
14のアプリケーションプログラムを示す。ホストシス
テム310は同時に通信ドライバ211と1スタノク4
14を備えている。拡張関数定義226は、グラフィン
クシステム320のメモリ220内にロードされ、コマ
ント実行ルーチン221によってアクセスされる。
また、グラフィソクシステム320は1スタソク423
を備えている。第3図について説明したように、通信バ
ッファ323は、データをプロセソサどうしの間でパス
しあうためのスペースを備えている。引数ハンドラ44
1aと441bとは、拡張関数のパケソト形に関連して
使用される。
本発明のホストグラフィソクインターフェースは、アプ
リケーションインターフェース417と、通信ドライバ
211と、コマンド実行ルーチン221と、拡張関数を
インストールするために使用されるコア原始関数の5つ
の基本的部分から構戊される。もし関数定義のパケソト
形が使用される場合には、インターフェースの第5番目
のコンポーネントが44 1aと441bとして示すよ
うな引数ハンドラとなる。
アプリケーションインターフェース217は、ヘッダフ
ァイルとアプリケーションインターフェースライブラリ
より成る。ヘソダファイルは、コアと拡張関数の定義2
23、226を参照する。
それらは同時に、コアと拡張ファンクションの呼出しを
適当な入口点呼出しにマ・ツビングしなおす。
これらの入口点呼出しは、スソテプ12に関して上記し
たように、関数にパスされるパラメータ型に応して、ダ
イレクト又はパケソト型のものとすることができる。
アプリケーションインターフェースライブラリは、アプ
リケーションオブジェクトファイルとリンクされて、実
行可能なアプリケーションファイルを形威する。上記ア
プリケーションインターフェースライブラリは、アプリ
ケーションプログラム用の手段を提供して、情報を通信
ドライバ211間でパスさせる。アプリケーションによ
り行われる最初のファンクションコールは、初期化作用
である。この作用によって既にメモリ内に常駐している
通信ドライバ211に対してその人口点ジャソブテーブ
ルの出発点メモリをパスすることが知らされる。このテ
ーブルは、通信ドライバ211により提供される各通信
入口点のアドレスのリストである。一たんアプリケーシ
ョンインターフェース217がジャンプテーブルのアク
セスを知るや、アプリケーションにより呼出された適当
な入口点関数ヘジャンブすることが可能になる。
通信ドライバ211は、アプリケーションプログラム2
12からデータを受取り、それを通信ハソファ323へ
送る。同バソファ323はグラフインクシステム320
ヘアクセス可能である。通信ドライバ211は、ホスト
システム310上をランする終端・ステー常駐(TSR
)プログラムであることが望ましいが、TSRコンフィ
ギュレーションは必ずしも必要な特徴ではない。通信ド
ライバ211は、グラフィックシステム310のハード
ウエアに特有のものであるが、インターフェースをポー
タブルにすることによって異なるハードウエア向けに変
形することもできる。
通信ドライバ211の特性は、それが幾つかのコマンド
系列を待ち行列状態にする能力を備え、非割当バソファ
リングシステムを可能にするという点である。通信ドラ
イバ211により使用される通信バソファ323の基本
形は、第5図に示す。
基本エリアはコマンドバソファ510とデータバッファ
520であり、通信ドライバ211により実行されるハ
ンドシエイクルーチンと共に使用される。ポストとグラ
フィンクハードウエア間を交信するために使用される定
義済みメノセージは以下の通りである。
GSP ホスト間の通信メッセージ GSP  IDLE=0.GSPはコマンドを待機中。
GSP  BUSr=1;GSPはコマンドを実行中。
G S P  FINISIIED= 2 ; G S
 Pはコマンドを完了した。
GSP  tlNINIT  =3 .GSPは初期化
されていない。
G S I)  ホスト間の通信メソセージHST  
IDLE=0;ホストはcspを待機中。
HST  CMD  =1;ホストはセットアソブコマ
ンドレディ状態。
HST  fllT=3:ホストはGSPの初期化を期
待中。
上記−INITコマンドはドライバ初期中に使用される
再び第5図について述べると、メッセージフィールドを
使用してコマンドを次の如く処理する。
(1)  ホストは呼出し中の関数のパラメータをデー
タバソファ内に配置する。それと同時にこの関数のコマ
ンド識別子をコマンド識別フィールド内へ書込む。この
識別子はダイレクト法又はバケソト法の何れかと、呼出
し中の関数を含むDLMに対応するモジュール番号と、
D L M内の適当な関数を識別する関数番号とを用い
て実行中の人口点呼出しの型を指定する。その後、この
ホストはI{ S T  C M Dメッセージをメソ
セージフィールド内にセソトする。
(2)GSPはGSP  BUSYをGSPメソセージ
フィールド内にセントしてコマンドを実行する。
+31GSPはホストメッセージフィールド内のCOM
MAND  PENDINGをクリアして、GSPメソ
セージフィールド内にC S P  FINISIIE
Dメソセジをセソトする・ (4)ホストはC S P  FINISIIEDメソ
セージをチェノクして、それをクリアした後、なんらか
の復Jibパラメータを読み取るか、バノファを再使用
する。
ハンドシェイクは2ワードを使用して行われる。
そのうちlワードはホストからのメソセージに対しての
もので、もう一つはGSPからのノソセジに対するもの
である。ホスl・はGSPからのメソセージをクリアす
る働きを行い、GSPはホストメノセージをクリアする
。このことによって1メノセージ肯定応答」や「肯定応
答確認」のタイプのメソセージをやりとりする必要なく
完全なハンドシェイクが確保できる。メモリが使用され
るため、システムは1時に活動可能なコマンド待ち行列
の数に限定されない。
再び、第4図について述べると、コマンド実行ルーチン
221は全体としてホストシステム310からデータを
受取りグラフインクプロセノサ321に対してグラフイ
ンク処理を実行するように命ずるソフトウエアプログラ
ムである。普通の場合、コマンド実行ルーヂン221は
メモリ220のRA.M内に常駐し、バヮーア・7ブ後
にロードされるが、このことは必要条件ではない.通信
ドライバ211と同様に、コマンド実行ルーチン221
は、インターフェースが異なるハードウェアシステムと
ボート接続できるように修飾することが可能である。
コマント実行ルーチン221は通信ドライバ211に対
するスレーブとしてグラフィ・7クシステム310上で
ランし、ホストGSPハシドシェイキングのGSP側を
処理し、ホストにより送られるコマンドを受取り、それ
らがパケソト法コマンドであるかダイレクト法コマンド
であるかを判断し、それによって呼出された関数を呼出
す。グレイクトモードコマンドの場合、コマンド実行ル
ーチン221は、関数に対するパラメータデータの大域
的ポインタをセントアンプして、関数を呼出す。パケソ
トコマンドの場合、コマンド実行ル一チン221は、引
数ハンドラ44lbを呼出す。
同ハントラ441bはダイレクト法と同一の大域的デー
タポインタを使用して上記説明したようにデータを配列
しなおす。コア原始関数とアセンブリa 3fi関数は
同一の方法で呼出すことができる。
引数ハントラ441aと441b内に含まれる引数ハン
ドラブログラムは特殊な引数をパスするプログラムで、
引数をホストシステム310のスタノク414から除去
してそれらをグラフィックシステム320ヘパスし、そ
れらがパスされた後にそれらをアセンブリしなおすこと
によって高水Y$M語のフォーマノトでグラフィソクシ
ステム320のスタノク423ヘブソシュできるように
するランクイムタスクを実行する。第4図の実施例では
、引数ハンドラは、システム310と320上に常駐し
、単方向通信用に設計される。然しなから、引数ハンド
ラどうしを対称形にすることtこよって2方向パラメー
タ交換を可能にすることもできることを理解すべきであ
る。その後、各々の引数ハントラは、バケソトを再構成
して1スタノクにプソシュすると共にそれらをスタソク
から分解することの両方を実行することができよう。更
に、統合型マルチブロセソサシステムの場合、システム
内の全プロセッサについて一個の引数ハンドラが存在す
るようにすることもできよう。がくしで、第4図では、
引数ハンドラ441aは通信ドライバ211にリンクさ
れ、スタック414と交信する。引数ハンドラ441b
はコマンド実行ルーチン221にリンクされ、スタック
423と連絡する。
プログラごングの利便性上、インターフェースは一定の
インクルードファイルを備えることによって反復定義を
回避するようにすることも可能である。これらのインク
ルードファイルは次の2つのグループに分割できる。即
ち、(1)ホストシステム3]0上でランするように設
計されたソースファイル内に包含されるファイルと、(
2)グラフインクシステム320上でランするソースフ
ァイル内に包まれるファイル、である。第1のグループ
のインクルードファイルは、アプリケーションインター
フェース412の一部であり、第2のグループは、参照
番号225を有する第2図のグラフィノクシステム32
0を構築するために使用される。
ホス{・システム310のインクルードファイルは以下
の通りである。
extend.l+   拡張原始関数を呼出す。
graphics.h  バケソト法の場合に使用され
るデータ型を定義する。
typede4s.h  インターフェースに関して使
用される構造定義用。
グラフインクシステム320用のインクルードファイル
225は以下の通りである。
gspcxtend.h   拡張原始関数の外部宣言
gspglobals.b   大域的変数全ての外部
宣言gspregs.h    グラフィノクシステム
レジスタの定義 gspgraphics.h  コア原始関数全ての外
部宣言通信ドライバ211とコマンド実行ルーヂン22
1に関して先に示した如く、本発明の特徴は、それがハ
ードウエア依存性であるということである。この特徴は
、一部はコア原始関数224の一部であるインクヮイア
リ関数により実現され、通信ドライバ211やコマンド
実行ルーチン221の修飾を要しない。上記関数によっ
て、アプリケーションプログラムはグラフィンクシステ
ム320の構威を切断し、ビント表現によるピクセル深
度や、水平方向と垂直方向の解像度や、グラフィックシ
ステム上のランダムアクセスメモリ量の如き情報を復帰
させることができる。その後、アプリケーションプログ
ラムはその出力をスケーリングして任意のディスプレイ
解像度にフィットさせることができる. 表Aは2個の関数、geLconfigとset−co
nfigを使用してこのハードウエア依存特徴の一実施
例である。関数gelconfigは、ボードとモード
に特有の情報を全て含む構造を復帰させる。selco
nfig関数は、デフォルトグラフィックモードにパス
されるインデクスにより選択されるグラフィックモード
をセントする。その場合、ボードは次のset−con
figに対する呼出しが行われるまで残留する。
selconfigについて表Aを見ると、もしgra
phicsmode引数が妥当であるならば、関数は新
たなグラフィンクモードをセソトアノプし、適当なGS
Pレジスクを初期化する。もしiniLdra−フラグ
が真であれば、関数は作図環境を初期化する。
「コア原始関数」は、サブプロセッサシステム中に永久
的にインスl一一ルされ常時ロード用に利用可能な基本
的関数である。これらのコア原始関数は、システム原始
関数とアブリゲーション原始関数との2つの基本的関数
型へグループ分けできる。システム原始関数は、サブシ
ステム初期化、出力、メモリ管理、通信、および拡張の
如き処理を実行する関数を含んでいる。後者のタイプの
システム原始関数である拡張関数は、本発明の方法と関
連して使用され、以下により詳細に論ずることにする。
アブリケーシジン原始関数は、もしそれが本発明を使用
してリンクされた場合、ホスト上を走るアプリケーショ
ンプログラムから呼出されて利用される。
本発明の以下の説明は、第一義的にはCプログラミング
言語を対象としたものであるが、本発明を実施するため
のプログラミングは、C言語に固有のものではなく、本
文中に解説したプログラξング構造と関数は任意の高水
準言語へ容易に翻訳することができる。本発明を実施す
るために必要な実際の言語とプログラムは、本発明が実
施される特定のシステムに依存する。その特定のプログ
ラムは、本発明を検討した後に当該技術分野における通
常の技能を有するプログラマの能力の範囲内にあると考
えられる。
本発明の前提は、サブプロセソサシステムはそれがその
コア原始関数とは独立にロード、リンク、ならびに使用
可能な拡張関数を備えた場合に最もよく活用できるとい
うことである。この前提に従って、本発明は、他のマル
チプロセソサシステムのプログラミング有する拡張関数
を組込む方法を提供することができる。上記方法は、何
時また何処で関数がコーディングされたかに関わりなく
、一つのアプリケーションプログラムに使用される種々
の関数をダイナミソクにリンクするソフトウエアメカニ
ズムを実装することができる。
第6図は、サブシステムプロセッサ用の拡張関数を開発
したいと欲しているプログラマの見地から本発明の方法
を図解したものである。これら拡張関数は、最終的にア
プリケーションプログラム内で呼出されてユーザに対し
て一定のタスクを実行する関数群より構威される。基本
的に、そのステソブは一組の拡張関数と、各関数に対す
るアドレス参照セクションをつくりだす。拡張関数をセ
クション参照とリンクすることによって一つのロードモ
ジュールがつくりだされ、同モジュールは、一部、現存
のコードにリンクされ、参照をランタイムに分解される
他のコードに任せることが可能になる。
本発明のリンクとロードのステップに関して、以下の記
述はこれらのタスクを実行するソフトウエアプログラミ
ングに共通な処理と構造に関するものである。殊に、リ
ンカは当該技術分野では周知のフォーマントである共通
のオブジェクトファイルフォーマソトでオブジェクトフ
ァイルをつくりだすものと想定される。このフォーマソ
1・は各モジュールがセクションと称される小さなコー
ドとデータのフ゛口・冫クを有するモジュラ−フ゛ログ
ラミングを有利にするものである。1セクションはlオ
ブジェクトファイルの最も小さな再配置可能な単位であ
って、最終的に、それがロードされるメモリ内に隣接す
る空間を占めることになろう。
COFFフォーマットによれば、拡張関数を数多くの高
水準言語のうちの一つ、又はアセンブラ言語で書くこと
ができる。然しなから、COFFは、再配置可能な、一
部リンクされた関数モジュールをつくりだすために十分
なオブジェクトフォーマノトのただ一つの形にすぎない
ことを理解すべきである。
ステソプ111では、拡張関数を含むプログラムコード
のモジュールがつくりだされる。通常の場合、この関数
の集合は、如何なる関数が必要となっても特定アプリケ
ーションプログラムの指定タスクを実行することになろ
う。ステップ11では拡張関数がコーディングされるが
、それは拡張関数がホスト上を走るアプリケーションプ
ログラムから呼出されサブプロセソサによって実行可能
なものであればどんな形でも実行することが可能である
。かかる一連の方法は、関数定義によって関数の実パラ
メータがホストからサブプロセソサヘパスされ何れの戻
り値もホストに復帰できるということを第一次的な要求
条件として活用することができよう。
かかる方法の例はパケソト法とダイレクトアクセス法で
あり、両方とも同時係属出願中に解説されている.,(
「マルチプロセッサシステムにおけるソフトウエアパー
ティショニング」、「マルチブロセ・7サシステム用拡
張ソフトウエア関数」)関数が定義された後、それらは
集められ、コンパイル又はアセンブルされて一連の共通
のオブジェクトファイルの如き一定形のロード可能なコ
ドにリンクされる。ステソプl1の結果の例を一つあげ
ると、■yfuncs. objと称されるファイルで
あって、+wy−funclとIly−func2の2
つの関数を含む。
本発明の利点は、拡張関数のモジュールが、それらを使
用するアプリケーションプログラムをつくりだす同じプ
ログラマによってつくりだすことができる点である。そ
のため、特定の1アプリケーションの実行中にロードさ
れて使用されるべきモジュールはそのアブリケーシヲン
により必要とされる関数を含むだけで足りる。更に、そ
の関数を呼出しそれをパラメータ化する方法は、プロセ
ッサどうしの間でのパラメータのパスに必要とされる何
れかの特殊技法に従ってプログラマが選択することがで
きる。
ステップ112では参照セクションがつくりだされ、ス
テップ11lでつくりだされるモジュール内のそれぞれ
の拡張関数についてアドレス参照が宣言される。ステソ
ブ112の一例は次のプログラミングで、my−fun
cl とmy−func2の2個の関数を引用する。
;外部引用 ゜globl−my−funcl+ −my−func
2;スタートセクション宣言 ・sect  ”.EXT’ ・long  劃y−funcl ;モジュール内のコ
マンド数O long  −my−func2 :モジュール内のコ
マmodule   ンド数1 ・tex t        ;エンドセクションコマ
ンド数は特定命令中で定義されるべきロートモジュール
内の関数を宣言する。これは関数を引用する手段を提供
する。殊に、一つの関数のコマンド番号は同関数を呼出
すアプリケーションプログラム内のファンクションコー
ル内に組込むことができる。引用セクションは、コンパ
イル又はアセンブルされて、例えばext. obj.
の如き共通のオブジェクトフォーマソ1・ファイルが生
成される。
ステソブ113では、ステソプ111でつくりだされた
モジュールを、ステップ112でつくりだされたセクシ
ョンとが一部リンクされて一つのロードモジュールが形
成される。このリンクステップはモジュール内の関数間
に引用値を分解するが、上記モジュールは、モジュール
外部の関数を引用する又は同関数によって引用される関
数を含むことができることを理解されたい。もし外部引
用が存在すれば、そのリンキングは部分的にしかすぎず
、その引用は未解決であることになる。
部リンクされたファイルは配置替え情報と記号情報を備
えていなければならない。一部リンキングは出力セクシ
ョンの形成に関係し、配分には関係しない.割当て、束
縛、メモリ指令は全て次のリンクでのランタイム時に実
行される。
一部リンキングの例は、モジュールがコア原始関数を呼
出す関数を有する場合である。未解決の引用は、サブプ
ロセッサシステム内に既にストアされているモジュール
の外部にあり、引用関数はそれに対するアドレスを有し
ない。ステップ113で使用されるリンカの本質的特徴
は、それがランタイムまで解決不可能な呼出しを関数に
対して持たせることができるという点である。第2図、
第3図、第4図に関して以下に説明するように、関数が
サブブロセソサシステムのメモリ内にロードされる時、
これらの引用は解決される。ダイナミソクリンカはアド
レスをコード内にインサートすることによって呼出しを
解決する。
以下は、リン力を一個有するコンピュータを使用してス
テノプ113を実行するためのコマンドの一例である。
その場合、ステップ111中で定義された2つの関数と
、ステノプ112でつくりだされたセクションとがリン
クされることになっている。一例として、リンカは以下
のコマンドで呼出される。
link LOAD. MOD ayfuncs. o
bj ext. objその粘果はLOAD. MUD
と題する再配置可能なロードモジュールで、ステップ1
11と112でつくりだされたオブジェクトモジュール
の組合せである。
その後、ロードモジュールは一連の相異なる方法で使用
できる。それが本発明の利点の一つである。例えば、モ
ジュールは他のモジュールへ供給され、モジュールをメ
インプログラムにリンクしたりサブシステムにロードし
てコア原始関数とリソクさせることができる。その代わ
り、同じユーザはロードモジュールを使用して、マクチ
プロセッサシステム用のアプリケーションプログラムを
開発することができる。かくして、第4図に示すように
、次のステップはl14aとなり、モジュールをサブシ
ステムにロードしたり、あるいはステップ114bとな
ってモジュールをアプリケーションプログラムへリンク
させたりすることができる。エンドユーザの観点からす
ると、ロードモジュールは一部リンクされた状態でユー
ザのホストシステムメモリ内に常駐し、最終的にサブプ
ロセフサシステムへダウンロードされ、第2図に関して
以下に説明するように、特定のアプリケーションプログ
ラムと共に使用することができる。
第2、3、および7図は、本発明の第2の面であるコン
ピュータを使用してマルチブロセソサシステム内に拡張
関数をロードしダイナミックにリンクする方法を示した
ものである。上記リンキングは拡張関数がつくりだされ
る時に拡張関数が呼出すその他の関数のアドレスが未知
であるという意味でグイナミノクである。これらのアド
レスは、アプリケーションプログラムが走るまで未知の
状態にある。
本発明のダイナミソクダウンロ一ド法のステップは、第
7図に示す。一般的にいって、上記方法は、ホストプロ
セッサシステム310をサブプロセッサシステム320
へ一組の拡張関数をロードし、この時未解決な拡張関数
の引用をリンクするステップより構成される。
まづ、ステソプ141−43では、グイナミソクリンカ
224はそれが必要とする2個のファイル、即ち、記号
テーブルファイル225と、先にリンクされたオブジェ
クトファイル216のように現在メモリ210内にス1
・アされたロードモジュール215とが存在することを
チェソクする。
記号テーブルファイル225は、コア原始関B222内
の記号テーブル関数によって維持され、サブプロセソサ
システム320のメモリ220に既にロードされた関数
と、それぞれの関数について関連するメモリアドレスを
表現する記号情報を格納する。かくして、もし先につく
りだされたロードモジュールが使用される場合には、そ
れらはロードされ、それらの記号とアドレスは記号テー
ブルファイル225内に配置される必要がある。
かくして、本発明の方法を実行するに先立ち、記号テー
ブルファイル225は、ロードモジュール215外部の
関数を表わす。即ち、それらはロードモジュール215
内で定義されない。このタスクを実行する記号テーブル
関数の例は次のC言語関数である. inL create...symbol−file(
name)char far ” name ; 但し、nameは関数を含むファイルの通路名である。
記号とそれらの各々の絶対アドレスは、それらが続くロ
ーダの呼出し中にアクセスできるような具合にストアさ
れる. 記号テーブルファイル225のインテグリティを確保す
るために、ダイナミソクリンカ224は、コマンド実行
ルーチン221に対して制限呼出しを実行し、上記ルー
チン221は特殊でコアシステム原始関数を使用してサ
ブプロセソサシステムメモリ220内に先にインストー
ルされたモジュールの状態について間合わせる。このス
テソブの目的は、かかるモジュールと記号テーブルファ
イル225内のモジュール記号との間の畢離が存在する
かどうかを判断することである。もし存在すれば、記号
テーブルファイル225は、それに従って調節される。
もし存在しなければ、エラーメノセージがユーザに対し
て伝達される。
ステノプ144では、ダイナ旦ソクリンカ224は、所
望のロードモジュールオブジェクトファイル216に対
して必要とされるメモリサイズを取得ずる。上記リンカ
はコアシステム原始関数から特殊な割当て関数を呼出し
てロードモジュールを格納するに十分な大きなのメモリ
ブロンクを取得する。かかる割当て関数を表わすコマン
ドの例は以下の通りである。
long alloc (size) long size ; 但しlong sizeとはバイト表現によるモジュー
ルの大きさである。この関数は指定サイズのサブプロセ
ソサシステムメモリ220のフ゛ロフクを割当て、ポイ
ンタを復帰させる。
ステップ145−46において、ダイナミックリンカ2
24は、サブブロセソサシステム320により実行され
るオブジェクトファイルを実行可能なイメージファイル
226内へ結合するというその第一次的な任務を実行ず
る。ダイナミソクリンカ224が実行可能ファイル22
6をつくりだすと、オブジェクトファイル216をメモ
リ220ヘロードし、外部引用を解決する。そうする際
、上記リン力は、アプリケーション原始ファイル223
と共にロードファイル216を入力として受取る。殊に
、グイナミソクリンカ224は所望のCOFFセクショ
ンをサブシステムのメモリマップ内へ再配置する。先に
未解決の外部関数即ち、ロードモジュール215内で定
義されなかった関数に対する参照を解決するために、ダ
イナミソクリンカ224は記号テーブルファイル225
を参照してその関数を表わす記号を発見する。その後、
ダイナミソクリンカ224はロードモジュール216内
の引用を引用された関数のアドレスと置換する。このよ
うにして、ダイナミックリンカ224は、ロードモジュ
ール216の引用セクション内にリストされた全ての拡
張関数をサブプロセソサシステム320内にロードされ
たその他のコードにリンクする。同様にして、ダイナミ
ックリンカ224はロードモジュール2 1 6内で定
義された関数を表わす記号を記号テーブルファイル22
5へ付加することによって、続い“ζインストルされた
ロードモジュールがロードモジュール216ヘアクセス
できるようになっている。
概して、ステップ146をリンクするプログラミング方
法は、一プロセソサシステムの場合に使用されるその他
のダイナミソクリンクツールのそれと同様なプログラ鑓
ング手法を使用する。いうまでもなく、それらのシステ
ムは本発明によって行われるような2個のプロセッサシ
ステムどうしを関連づけるという余分な任務を必要とし
ない.ステップ147でロードモジュール216がメモ
リ220内にロードされ終った後に、ダイナミックリン
カ224は、ロードモジュールの参照セクション内の情
報を活用してモジュール内の関数がアプリケーションプ
ログラム212から呼出すことができるようにする。殊
に、グイナミソクリンカ224はコマンド実行ルーチン
221により使用される拡張関数アドレスを表わすテー
ブル(図示せず)を構築する。
ステップ148では、グイナミソクリンカ224は、現
在、アプリケーションプログラムによって必要とされな
い関数でメモリ220ヘロードされたものが存在するか
どうか判断する。もし存在するならば、これらの関数は
活動中のメモリから廃棄される. 最後に、ステソブ149において、ダイナミソクリンカ
224は、モジュール識別子をアプリケーションプログ
ラムへ復帰させる.上記モジュール識別子はアプリケー
ションプログラム212から拡張関数に対する呼出しに
際して使用され、それらの関数を呼出す。例として、モ
ジュール識別子は第1図に関して論じた参照セクシヲン
中のモジュール数と同一とすることができる。ステソブ
148は一個以上のモジュールがサブプロセッサシステ
ム320上にロードされることになっている場合に有益
である。
第2図に示すグイナミソクリンキングは、インストール
プロセスの一部であって、その間に、ユーザはコンピュ
ータを使用してインストールプロシージャを呼出し、同
プロシージャ自体は今度はグイナミソクリンカ224を
呼出すことが望ましい。インストール命令の例はC言語
で書かれた次の関数である。
int installlm(1++−nan+e)c
har for ”lm−nan+e ;但し、lm−
nameはロードモジュール名である。上記ステソプに
続いて、この関数は、ロードモジュール名により指定さ
れるロードモジュールは何れもインストールしてモジュ
ール識別子を復帰させる。
ひとたびロードモジュール216がダウンロードされリ
ンクされると、マルチプロセッサシステムのランタイム
処理は2個のプロセッサシステム間の一定種類のパラメ
ータパス手法の使用を喚起する。第1図に関して上記し
た如く、このことは引数データと復帰データがプロセン
サシステム間を転送され両プロセッサ311と321と
によって理解できるように設計された特殊関数定義と呼
出しと共にプログラミング段階で行うことができる。
上記した如く、一個以上のロードモジュール216がロ
ード可能で、その各々はそれ自身のモジュール識別番号
を受取る。ダイナミックリンカ224をプログラミング
することによって、モジュールと同モジュール内の拡張
関数とを共に識別する識別子を復帰させることができる
。識別を可能にする一つの方法例は、それがインストー
ルされる順序に従って各ロードモジュール215にモジ
ュール番号を付与することである。この識別子は、モジ
ュール内の一関数がプログラムから呼出されることにな
っている場合には常に、第6図のステップ112で付与
されたような関数番号をモジュール識別子に接続するこ
とによって使用される。C言語の場合、このことはピン
ト毎のOR演算子によって実行することができる。その
後リンキングは全てのロードモジュールを含むことにな
ろう。
本発明の代替例では、拡張関数ではなく、アプリケーシ
ョンプログラムにより使用される割込みサービスルーチ
ンがマルチブロセソサシステムに追加される。第1図に
示す方法は、ロードモジュールが割込みサービスルーヂ
ンを格納する点を除いては本質上同一である。後者は、
サブシステムの割込みハンドラを介して割込みを受ける
とすぐ呼出される。ステソプ12では、モジュール内の
全ての割込みサービスルーチンについて2つの人口を含
む参照セクションがつくりだされる。これらの人口は割
込みサービスルーチンに対するアドレス参照と、同ルー
チンの割込み数を指定する。
例えば、+*y−inflとmy− inf2の2個の
ルーチンがステンプ11のモジュール内に格納されてい
る場合、セクション宣言は以下のようになろう。
;外部参照 ・globLmy−infl, −IIIy−inf2
;スタートセクション宣言 ・secf  ”.ISR” ; ong  −鎮y−infl ong    −my−infl ong   1   ;割込み数1 0ng  −s+y−inf2 ong   2   ;割込み数2 ・text      i エンドセクション割込みサ
ービスルーチンを追加することに関連するロードタイム
方法もまた、第2図に関して上記したものと本質上同一
である。もう一つ余分に考慮すべき点は、各ルーチンと
関連する優先順位の情報がモジュールの擾先1頑位リス
トにアクセスすることによって検索可能なことである。
かくして、同じ割込みレベルに鎖状結合された割込みサ
ービスルーチンは特別にアクセス又は参照可能となる。
以上の記載に関して以下の各項を開示する。
l. ホストブロセソサシステムとグラフィンクプロセ
ソサシステムを共に備え、ホスト上を走るメインプログ
ラムにより呼出され上記グラフィソクブロセソサにより
実行可能な関数を拡張するためのマルチブロセソサシス
テムにおいて使用される方法において、 上記グラフィックプロセノサにより実行されるサブプロ
グラムをつくりだし、 上記サブプログラムを定義することによってその引数が
ランタイム時に上記グラフィソクブlコセソサシステム
にパスできるようにし、上記メインプログラム内のサブ
プログラムに対してサブプログラムにより使用されるパ
ラメータを含む呼出しを宣言し、 上記サブプログラムをコンパイルして上記グラフィック
プロセッサシステム上で実行し、上記サブプログラムを
上記グラフィンクプロセノサシステムヘロードし、 上記ザブプログラムを上記グラフィックプロセッサシス
テム上にロードされる他のコードにリンクする、 ステップより或る前記方法。
2, ホスl・プロセソサシステムとグラフイソクブロ
センサシステムを備えることによって上記ホストコンピ
ュータ上を走るメインプログラムによって呼出されグラ
フィックプロセンサによって実行される拡張関数を実行
するマルチプロセッサコンピュータシステムを使用する
方法において、 上記拡張関数を上記グラフィックプロセッサシステムヘ
ロードし、 上記メインプログラムから上記拡張関数を呼出し、 上記ホストシステムから上記グラフイノクシステムへ上
記拡張関数の引数をパスし、上記拡張関数を上記グラフ
ィックプロセソサによって実行する、ステソプより成る
前記方法。
3.第1のプロセッサ上で一つのソフトウエアプログラ
ムを実行することによって同プログラムが第2のプロセ
ッサにより実行さるべき指定拡張関数を呼出すことがで
きるようにしたマルチブロセソサコンピュータシステム
において、プログラマブルホストプロセソサと、 上記ホストブロセソサによりアクセス可能なメモリと、 プログラマブルグラフインクプロセッサと、上記グラフ
ィノクプロセソサによりアクセス可能なメモリと、 を備え、上記ホストブロセソサとグラフィックブロセノ
サがソフトウエアインターフェースによりプログラミン
グされ、同インターフェースによって上記拡張関数が上
記グラフインクプロセッサメモリにダイナミックにダウ
ンロードされ、上記グラフインクプロセソサにより実行
できるようになった前記システム。
4, ホストプロセソサシステムとグラフィックプロセ
ッサシステムを備え、ホストシステム上を走るメインプ
ログラムにより呼出されグラフインクブロセソサにより
実行される拡張関数を実行するマルチプロセッサコンピ
ュータシステムと共に使用されるソフトウエアインター
フェースにおいて、 上記拡張関数を上記グラフィックプロセッサシステム上
にロードされた他のコードヘダイナξ・ノクにダウンロ
ードしリンクするリンカと、上記ホストシステムから引
数を受取り、上記拡張関数を識別し、上記拡張関数を呼
出すコマンド実行ルーチンと、から威り、 上記コマンド実行ルーチンとリンカとが一体となったツ
ールの集合を備え、拡張関数をダイナミックにダウンロ
ードしてそれらの引き数を上記ホストプロセッサシステ
ムから受取る前記インターフェース. 5. ホストプロセッサとサブプロセッサとを備えるマ
ルチプロセッサシステム内にサブシステムプロセッサの
メモリにロードされる拡張関数を追加する方法において
、 上記サブプロセンサにより実行さるべき少なくとも一つ
の関数を備えるロードモジュールをプログラミングし、 上記ロードモジュールに対する再配置可能なアドレス引
用を含む上記モジュールの引用セクションをつくりだし
、 上記ロートモジュールを部分的にリンクして内部引用が
全て解決され、外部引用が未解決のまま残されることに
よって上記ロードモジュールがランタイム時に完全にリ
ンクできるようにする、ステップより或る前記方法。
6. サブシステムプロセソサにより実行さるべき拡張
関数をロードすることによって同関数がホストプロセッ
サシステム上を走るアプリケーションプログラムから呼
出せるようにするマルチブロセソサシステムにおいて使
用される方法において、 上記サブプロセノサシステム内のメモリを上記拡張関数
の定義を含むロードモジュールに対して割当て、 上記ロードモジュールを上記サブプロセソサシステムに
ロードし、 上記ロードモジュールを上記サブプロセソサシステムに
ロードされる他のコードにリンクすることによって上記
ロードモジュールの未解決の引用が解決されるようにす
る、 ステップより威る前記方法。
7.拡張関数をサブプロセッサシステムヘロードしリン
クすることによって上記関数がホストプロセッサシステ
ム上を走るアプリケーションプログラムと共に使用可能
になったマルチプロセッサコンピュータシステムにおい
て、プログラマブルホストプロセッサと、 上記ホストプロセッサによりアクセス可能なメモリ、よ
り成り、 上記サブプロセッサが上記ホストプロセソサのメモリ内
ヘロードされる拡張関数を上記第2のプロセンサのメモ
リへダウンロードして上記拡張関数を上記サブプロセッ
サ上にロードされた他のコードにダイナミソクにリンク
するようにプログラミングされる前記システム。
8. ホストプロセッサシステム上を走るアプリケ一シ
ョンプログラムのロード中にサブシステムブロセノサに
より実行されべき拡張関数を上記サブシステムブロセソ
サの他のコードにリンクするためのマルチブロセソサシ
ステム中に使用されるグイナミソクリンカプログラ旦ン
グ機構において、 」二記アフ゜リケーシヲンフ゜ログラムのロードに呼応
して実行開始の呼出しを受取る入口点と、上記拡張関数
を含むロードモジュールのメモリサイズを取得する命令
と、 上記ホストのメモリから上記サブプロセッサシステムの
メモリ内へ上記ロードモジュールを再配置するための命
令と、 上記ロードモジュール外部の関数に対する未解決の参照
を解決するための命令と、より成り、上記入口点と命令
とが上記サブシステムプロセソサにより実行可能な一つ
の構文と文とへ構成される前記機構。
9. ホストプロセッサシステムとグラフィソクプロセ
ソサシステムを有するマルチプロセッサコンビュータシ
ステムと共に使用されるインターフェースによって、拡
張関数がホストシステム又は別のシステム上で開発され
、次いでグラフィックブロセソサシステムにロードする
ことが可能になる.上記インターフェースは、ホストシ
ステム側とグラフィンクシステム側に常駐するソフトウ
エアにより成り、ランタイムにオペレートして上記関数
がホスト上を走るメインプログラムから呼出すことが可
能になる。関数の引数はグラフィックシステムにパスさ
れることによって、同関数はグラフィックブロセソサに
よって実行される。
【図面の簡単な説明】
第1図はグラフインクサブシステムの機能性を拡張段階
を示すフローダイアグラム、 第2図はホストプロセッサとグラフインクプロセッサを
有するコンピュータシステムを使用するステップを示す
フローダイアダラム、 第3図はホストプロセッサとグラフインクブロセソサヲ
有スるマルチブロセソサコンビュータシステムのブロソ
ク線図、 第4図は第3図のマルチプロセソサシステムと共に使用
されるソフトウエアインターフェースを示すブロノク線
図、 第5図はホストブロセソサとグラフィックプロセノサ間
の通信用に使用される通信バンファの構造を示す図、 第6図は、サブプロセッサシステムに共も使用される拡
張関数を格納するモジュールをつくりだすステップを示
す図 第7図は拡張関数を第1のプロセソサから第2のプロセ
ソサヘロードし、未解決の参照をグイナミソクにリンク
するステップを示す図。 212・・・アプリケーションプログラム、211・・
・通f3ドライハ、216・・・オブジェクトファイル
、215・・・拡張関数、233・・・コアアプリケー
ション原始関数、224・・・ダイナミソクリンカ、2
25・・・インクルードファイル、222・・・コアシ
ステム原始関数、423・・・スタック、323・・・
バソファ● 表AI get−configの構文 typedef  struct { 夏ong  drsp−pHch  ;shorL d
isp−vres  ;short dispJres
  ; short screen−wide  ;short
 screenJigh  :short disp−
psize  ;long pixeLmask  ; short palet−gun−depLh  il
ong  paleLsize  ;short pa
let−inset  ;short  nu麟一pa
ges  ;short nun−offscrn−a
reas  ;long wksp−addr  ; long wksp−pitch  :}  MODE
INFO ; typedcf struct { long comm−buff−size ;shor
t nun−modes  ;short curre
nt−mode Slong program−mem
−start ;1oB progra+i−mem−
end ;long display−meal−st
art ;long display−mem−end
 ;long stack−size ; long shared−sew−size :cha
r for ”shared−host−addr ;
PTR shared−gsp−addr ;MODE
INFO tmode  ; )co肝XG; void get−config (config)C
ONFIG far ” config ;上記の構造
定義におけるフイーノレト′ムよ次の通りであるO comm−buff−size :通信ノN7ファのノ
Xイトサイズ.nun+−a+odes  : アプリケーションは、送られ たデータがこのバソファをオ ーバーフローさせない必要が ある.これは、グラフィソク プロセフサにダウンロードさ れるデータの大きさをチェッ クしない命令に関して有益で ある。 異なる表示セソトアップ間をスイ ッチングするグラフィソクボード 用の拡張モード数 表A2 curren lmode:現在操作モードに対応する
モード数 program−mem−start:プログラムメモ
リのスタートアドレス program−mem−end :プログラムメモリ
のエンドアドレス display−meIII−start:ディスプレ
イメモリのスタートアドレス display劃em−end:ディスプレイメモリの
エンドアドレス stack−size:デフォルトスタソクサイズsh
’are−mem−size:使用すべきアプリケーシ
ョンに利用可能な共用メモリのバ イトサイズ shareJost−addr: もしshare−m
eIll−sizeがゼロでなければ、これは共用メモ リのホストメモリ中のスター トアドレスである。 share4sp−addr+ もしshare−+a
em−sizeがゼロでなければ、これは共用メモリの GSPメモリのスタートアドレ スである。 djsp−pitch:  ディスプレイピッチ、即ち
、2本の走査線間の線間差のビソト表示 disp−vres:走査線の垂直解像度dispJr
es: ピクセルの水平方向解像度screen−wt
de: モニタの幅と高さ(ミリメートル単位〉 screenJigh: disp−psfze:  ビクセルサイズpixel
s+ask:  1ピクセルに使用されるビットのマス
ク。通常2の(dis− psize−1)乗の値を含
むことになろう。ピクセ ルデータの全ビットが妥当であるこ とを示す。 palet−gun−depth:バレソト内のガンあ
たりビッ1・数 palelsize:パレット内の人口の数pa Ie
 t− inse t 二大抵のシステムの場合、この
フィールドは零となろう。しかし、フレー ムバッファ内にパレットをストアす るシステムの場合には、これは走査 線の開始から第1のピクセルデータ へ至るオフセットとなる。 表A3 nun−pages:多重バッファシステムの表示ペー
ジ数num−offscreen:利用可能なオフスク
リーンメモリブロックの数。もしゼロでなければ オフスクリーンアレイ用の空間を割 当てるために使用される。上記アレ イはもう一つの関数(geloffscreensew
.)に対する呼出しを介してGSPから得ることができ
る。 wksp−addr:オフスクリーンワークスペースエ
リアのメモリ中における開始線形アド レス wksp−pitch:オフスクリーンワークベースエ
リアアのピンチ.もしピッチが0ならば、 オフスクリーンワークスペースは割 当てられない。 Set−contigの構文 int seLconf)g (graphics−m
ode+ init−draw)short grap
hics−mode;short inildraw 
; 第4図 第5図 第6図 第7図

Claims (1)

    【特許請求の範囲】
  1. (1)ホストプロセッサシステムとグラフィックプロセ
    ッサシステムとを共に備え、ホスト上を走るメインプロ
    グラムにより呼出され 上記グラフィックプロセッサにより実行可能な関数を拡
    張するためのマルチプロセッサシステムにおいて使用さ
    れる方法において、 上記グラフィックプロセッサにより実行されるサブプロ
    グラムをつくりだし、 上記サブプログラムを定義することによってその引数が
    ランタイム時に 上記グラフィックプロセッサシステムにパスできるよう
    にし、 上記メインプログラム内のサブシステムに対してサブプ
    ログラムにより使用されるパラメータを含む呼出しを宣
    言し、 上記サブプログラムをコンパイルして上記グラフィック
    プロセッサシステム上で実行し、上記サブプロセッサを
    上記グラフィックプロセッサシステムへロードし、 上記サブプログラムを上記グラフィックプロセッサシス
    テム上にロードされる他のコードにリンクする、 ステップより成る前記方法。
JP27515790A 1989-10-12 1990-10-12 拡張グラフィック機能を与える方法 Expired - Fee Related JP3051438B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US07/420,491 US5247678A (en) 1989-10-12 1989-10-12 Load time linker for software used with a multiprocessor system
US420409 1989-10-12
US420491 1989-10-12
US07/420,409 US5269021A (en) 1989-10-12 1989-10-12 Multiprocessor software interface for a graphics processor subsystem employing partially linked dynamic load modules which are downloaded and fully linked at run time

Publications (2)

Publication Number Publication Date
JPH03208187A true JPH03208187A (ja) 1991-09-11
JP3051438B2 JP3051438B2 (ja) 2000-06-12

Family

ID=27024835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27515790A Expired - Fee Related JP3051438B2 (ja) 1989-10-12 1990-10-12 拡張グラフィック機能を与える方法

Country Status (1)

Country Link
JP (1) JP3051438B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005322224A (ja) * 2004-05-03 2005-11-17 Microsoft Corp 拡張グラフィックスパイプラインを提供するシステムおよび方法
JP2008518355A (ja) * 2004-10-28 2008-05-29 株式会社ソニー・コンピュータエンタテインメント 異種混合アーキテクチャからの複数のオブジェクトファイルを一組のファイルに統合する方法
JP2010061648A (ja) * 2008-09-04 2010-03-18 Internatl Business Mach Corp <Ibm> ハイブリッド・コンピューティング環境におけるデータ処理のための方法、装置、およびプログラム
US9064334B2 (en) 2004-05-03 2015-06-23 Microsoft Technology Licensing, Llc Systems and methods for providing an enhanced graphics pipeline
CN111190658A (zh) * 2020-01-08 2020-05-22 乐鑫信息科技(上海)股份有限公司 一种基于片内执行且在不具有MMU的SoC片上支持应用程序动态加载的系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005322224A (ja) * 2004-05-03 2005-11-17 Microsoft Corp 拡張グラフィックスパイプラインを提供するシステムおよび方法
US9064334B2 (en) 2004-05-03 2015-06-23 Microsoft Technology Licensing, Llc Systems and methods for providing an enhanced graphics pipeline
JP2008518355A (ja) * 2004-10-28 2008-05-29 株式会社ソニー・コンピュータエンタテインメント 異種混合アーキテクチャからの複数のオブジェクトファイルを一組のファイルに統合する方法
JP2010061648A (ja) * 2008-09-04 2010-03-18 Internatl Business Mach Corp <Ibm> ハイブリッド・コンピューティング環境におけるデータ処理のための方法、装置、およびプログラム
CN111190658A (zh) * 2020-01-08 2020-05-22 乐鑫信息科技(上海)股份有限公司 一种基于片内执行且在不具有MMU的SoC片上支持应用程序动态加载的系统
CN111190658B (zh) * 2020-01-08 2023-02-28 乐鑫信息科技(上海)股份有限公司 一种基于片内执行且在不具有MMU的SoC片上支持应用程序动态加载的系统

Also Published As

Publication number Publication date
JP3051438B2 (ja) 2000-06-12

Similar Documents

Publication Publication Date Title
US5269021A (en) Multiprocessor software interface for a graphics processor subsystem employing partially linked dynamic load modules which are downloaded and fully linked at run time
US5247678A (en) Load time linker for software used with a multiprocessor system
US6789254B2 (en) Java classes comprising an application program interface for platform integration derived from a common codebase
Cmelik et al. Shade: A fast instruction-set simulator for execution profiling
US7761701B2 (en) Component firmware integration in distributed systems
US7707566B2 (en) Software development infrastructure
US6760905B1 (en) Lazy compilation of template-generated classes in dynamic compilation execution environments
US6546553B1 (en) Service installation on a base function and provision of a pass function with a service-free base function semantic
US6865733B2 (en) Standardized interface between Java virtual machine classes and a host operating environment
JP4716681B2 (ja) ソフトウェアを拡張するための方法、システムおよび記録媒体
US20080270979A1 (en) Methods and systems for using type models to generate an implementation of a type
US20150100949A1 (en) Processing method
US5381547A (en) Method for dynamically linking definable program elements of an interactive data processing system
US7856618B2 (en) Adaptively generating code for a computer program
JP2000347871A (ja) スタブ/アダプタ自動生成器
US5991538A (en) System for generating and using programs in an object-oriented environment with a message dispatch architecture
US20020054124A1 (en) Hosting objects in a windowed environment
JP3051438B2 (ja) 拡張グラフィック機能を与える方法
US9582398B1 (en) Debugging using presentation layer representations of objects
Brooks et al. L-a common lisp for embedded systems
US8984473B2 (en) Methods for type analysis in systems for code generation
US20060107257A1 (en) Executing a native software routine in a virtual machine
Benson et al. The OpenVMS mixed pointer size environment
Reinke Towards a haskell/Java connection
Wang Research and Development of Porting SYCL on QNX Operating System for High Parallelism

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080331

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090331

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees