(57)【特許請求の範囲】
【請求項１】
周辺ユニットと、前記周辺ユニットと他の手段との間の通信を提供するモジュール式インターフェースユニットとを有し、前記モジュール式インターフェースユニットは前記他の手段との通信ができるようになるための構成設定を必要とするシステムにおいて、以下の（ａ）ないし（ｄ）を設けてなる通信システム：
（ａ）前記周辺ユニット内に設けられたディスプレイ、キーボード、周辺ユニットプロセッサ及び前記プロセッサに接続された不揮発性メモリ；
（ｂ）前記モジュール式インターフェースユニット内に設けられ、前記キーボードからユーザが与えた構成設定を指示する入力に応答して、一連の質問及び回答を前記ユーザが見えるように前記ディスプレイに与えるモジュール式インターフェースユニットプロセッサ；
（ｃ）前記モジュール式インターフェースユニット内に設けられ、前記ユーザが選択した回答であって前記モジュール式インターフェースユニットが遵守すべき通信インターフェース仕様を指示する回答を示す前記ユーザのキーボード操作を受信する、前記モジュール式インターフェースユニット及び前記周辺ユニットの両方からアクセス可能な記憶手段；
（ｄ）前記周辺ユニットプロセッサに関連付けられた前記不揮発性メモリに前記回答を記憶させて、前記回答が前記記憶手段を通して前記モジュール式インターフェースユニットによって実現できるようにする手段。
【請求項２】
前記モジュール式インターフェースユニット内の前記記憶手段が前記モジュール式インターフェースユニットプロセッサ及び前記周辺ユニットプロセッサにより共有される共有メモリであり、前記周辺ユニット及び前記モジュール式インターフェースユニットの間の通信が前記共有メモリを通して行われる、請求項１に記載の通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は周辺ユニットと他の装置との間の通信を可能とするインターフェースユニットに関し、特に周辺ユニットがインターフェースの機能を知らなくとも周辺ユニットのインターフェースを都合の良いように設定できるモジュール式インターフェースユニットに関する。
【０００２】
【従来の技術】
現在のマーケットでは、プリンタ、ファクシミリユニットプロッタ等の周辺ユニットは、多数の異なる実体、すなわちローカルエリアネットワーク、個々のパーソナルコンピュータ、広域ネットワーク等と通信できることが必要とされる。その潜在市場を大幅に減らすような、単一の通信インターフェースしか持っていない周辺ユニットを供給するのではもはや不充分である。
【０００３】
その結果、従来技術の周辺ユニットは、カード搭載型で、他のモジュール式インターフェースカードと単に置き換えるだけで取り替えることができるモジュール式インターフェースユニットを備えている。一般に、このようなインターフェースユニットにより、周辺ユニットはパケット構成のデータブロックを周知のやり方で使用することにより、外部世界と通信することができる。個々のインターフェースはかくしてネットワークとのインターフェース機能を実行することができ、ネットワークプロトコルのヘッダを処理することができる。このようなインターフェースユニットは、インターフェースユニットと接続された周辺ユニットとの間で使用されるインターフェースヘッダを挿入し、修正することができる。周辺ユニットを１つのコンピュータと直接通信させようとするときには、インターフェースユニットは単にインターフェースユニットのプロトコルを処理する能力を備えているだけであり、ネットワークプロトコルのヘッダを処理する能力を備えてはいない（あるいはその必要がない）。
【０００４】
このようなモジュール式インターフェースユニットの一つが本願出願人の２５６３ファミリのラインプリンタに組み込まれており、１枚の着脱自在のカード上に必要なインターフェース機能を設けている。このカードはプロセッサとランダムアクセスメモリの両者を備えており、このメモリはインターフェースユニットのプロセッサ及びプリンタのプロセッサの両方から共有されアクセス可能になっている。
【０００５】
図１はシステムの全体構成を示す高レベルのブロック図であり、周辺ユニット（ＰＵ）２０（例えばプリンタ）、モジュール式インターフェースユニット（ＭＩＵ）２２、及びホストコンピュータ２４を備えている。ＰＵ２０とＭＩＵ２２との間の点線２６はＭＩＵ／ＰＵインターフェースを示し、点線２８はＭＩＵ２２をホストコンピュータ２４に接続するＩ／Ｏハードウエアリンクである。全ての通信は（ある制御線機能に関するものを除き）ＭＩＵ２２とＰＵ２０との間でＭＩＵ２２の共有メモリを通して行われる。
【０００６】
図１の従来技術のシステムは、データパケット及び制御パケットを使用して通信し、要求／応答プロトコルを採用している。データパケット及び制御パケットはともにヘッダ部及びバッファ部を備えており、ヘッダの構成は一般に図２に示すようになっている。ヘッダの最初の８バイト（０〜７）は装置固有のものであって、ＰＵ２０とＭＩＵ２２との間で情報を交信するためのものではない。ヘッダ中でそれに続く７つのフィールドには特定の通信情報が入っている。バイト８及び９は、周辺ユニットの表示装置をセットする、自己試験する、データを周辺ユニットに読み込む、データを接続されているコンピュータに書き込む等のような、行うべき処置を示すコマンド及びコマンド修飾子のフィールドである。戻りステータスフィールドがそれに続く。このフィールドにはコマンド及びコマンド修飾子のフィールドにより定義された処置を行った結果を指示するものが入っている。データ開始フィールドはこの特定のヘッダに関連付けられたバッファの開始バイトのアドレスを示す。データ長フィールドはバッファ内の有効データのバイト数を示し、最大データ長フィールドはパケットのバッファ中で利用できる全バイト数を示す。
【０００７】
図３は、データ開始フィールド、データ長フィールド及び最大データ長フィールドをあるバッファに適用したものを表現している。データ開始フィールドはバッファ３０の最初のアドレスを示す。データ長フィールドはバッファ３０にある有効データの長さを示す。最大データ長フィールドはバッファ３０の有効データ及び空のバッファ領域の両者を含む全データ長を示す。
【０００８】
上に引用した２５６３プリンタでは、バッファ３０は制御パケット用の定められた長さを持っており、また直接にヘッダに付随している。バッファ３０はヘッダの指示にしたがってシステム内部で通信されている実質的な情報を保持している。バッファの長さが一定であることから困難が生じる。現在利用できない、これまでよりも多くのバッファ空間を使えるようにするという柔軟性は、このシステムでは制約される。バッファの大きさが一定であるため、システムは周辺ユニットまたはインターフェースユニットから負わされる要求事項の変化に対応することもできない。その他に、バッファの大きさが一定であることから、インターフェースの規格を新しいネットワーク構成やパケット構造に合わせて拡張しようとするとき制約が生じる。
【０００９】
交換可能なインターフェースを設ければ、周辺ユニット対外界の通信に関する柔軟性は大きくなるが、インターフェースの機能を周辺ユニットの機能から切離すことにより問題が生じる。具体的に言えば、周辺ユニットとそれに関連付けられたインターフェースユニットが外部のネットワークまたはコンピュータと通信する前に、ある構成設定入力をインターフェースユニットに供給して通信を行うことができるようにする必要がある。例えば、インターフェースユニットがシリアルポートを経由して通信しようとする場合には、ボーレート、１文字あたりのデータビット数、ハンドシェーキングの形式、線路の極性等を指定する入力が必要である。典型的には、これら入力はユーザが周辺ユニットのケースを開き、マニュアルからの指示にしたがってスイッチをセットすることにより実現されていた。これは最も良くとも扱いにくく、悪くすると誤りのために通信が全くできなくなる。
【００１０】
ローカルエリアネットワーク及び他のマルチユーザネットワークの利用可能性が増大するに連れて、インターフェースユニットがネットワークプロトコルのヘッダ及びトレイラを処理することに対する要求も増えてきている。これらのヘッダが比較的低速の通信線路から受信されている限り、あるいはデータの流入を選択的に制御することができるネットワークから受信されている限り、インターフェースユニットはプロトコルヘッダをそれが流れている間に除去することができ、システムの性能は低下しない。しかし、高速「停止不能」データ流を有する新しいネットワークの出現と共に、このような途中でのプロトコルヘッダ処理を経済的に達成するのが困難になってきている。従って、インターフェースユニットは、このようなネットワークプロトコルヘッダを処理するのに益々複雑になり、高価になってきている。
【００１１】
【発明が解決しようとする課題】
それ故、本発明の目的は、共有メモリの動作が改善された周辺ユニット用モジュール式インターフェースユニットを提供することである。
【００１２】
本発明の他の目的は、ユーザフレンドリな構成設定を行うことのできるようにするモジュール式インターフェースユニットを提供することである。
【００１３】
本発明の更に他の目的は、ネットワークプロトコルのヘッダ及びトレーラの処理を改善したモジュール式インターフェースユニットを提供することである。
【００１４】
【課題を解決するための手段】
周辺ユニット（ＰＵ）を通信リンクを介して外界と連絡するパケットベース通信システムが開示される。このシステムにはモジュール式インターフェースユニット（ＭＩＵ）が含まれており、このユニットはＰＵ及びＭＩＵの両者のプロセッサによって共有されるメモリを有している。本システムは、制御パケット、読込みパケット、書出しパケットを使用し、メモリの利用を最適化するメモリ割当方法を実行する。本システムはＰＵの動作に必要な読込みパケットと書出しパケットとの比を決定するが、通信リンクが書出しパケットを伝達しないことになっている場合にはこの比を無視する。通信リンクが書出しパケットを伝達する場合には、この比に従って共有メモリ内で読込みパケット用の空間と書出しパケット用の空間を割り当てる。本システムはまた、ＰＵを通したユーザ／キーボード入力により、ＭＩＵから質問及び回答メッセージを与えながらＭＩＵ構成を行うことができるようにする装置も有している。この特徴により、ＰＵは、単にＭＩＵの交換とユーザによる構成設定を行うだけで、多数の異なる通信リンクに適応することができる。本システムは更に、ネットワークプロトコルのヘッダ及びトレーラを迅速に処理する装置も持っている。これらのヘッダ及びトレーラはデータパケットと共にストアされており、ＰＵが共有メモリ中のパケットをアクセスする際には、ポインタを使用して、ネットワークプロトコルのヘッダ及びトレーラの部分を無視しながらこの様なパケットのデータ部分のみをアクセスできるようにする。
【００１５】
【発明の実施の形態】
図４を参照すると、本発明を取り入れたシステムのブロック図が示されている。ＰＵ４０はプリンタ、ファクシミリまたはそれ以外の、ネットワークまたはホストプロセッサと通信するようになっている周辺ユニットとすることができる。ＰＵ４０は、マイクロプロセッサ４２により、周知のやり方で制御される。ディスプレイ４４にはキーボード４６が設けられており、両者がマイクロプロセッサ４２と対話してユーザ入出力を行う。不揮発性メモリ４８はマイクロプロセッサ４２のファームウエアメモリとなり、図示していない他のメモリ（ＲＡＭ、ＲＯＭ）はマイクロプロセッサ４２のための他の操作記憶を含んでいる。ＰＵ機構部分５０はマイクロプロセッサ４２により操作されてＰＵの機能を果たす。ＰＵ４０がプリンタであるとすれば、ＰＵ機構部分５０はプリンタ機構及びマイクロプロセッサ４２からの指示に応答してこの機構を制御する電子部分から構成される。
【００１６】
ＰＵ４０と外界との間の通信は、ＰＵ４０が入出力リンク５４を介してネットワークまたはホストプロセッサと通信することができるようにするために全てのインターフェース機能を行うＭＩＵ５２を通して行われる。ＭＩＵ５２は、ＭＩＵ５２の動作を制御してそのインターフェース機能を行うことができるようにするマイクロプロセッサ５６を有している。マイクロプロセッサ５６には、作業データ記憶のためのローカルＲＡＭ（これはないこともある）及びＲＯＭが設けられている。ＭＩＵ５２のその他の主要構成要素は、入出力リンクインターフェースモジュール５８及び共有メモリ６０である。
【００１７】
図４のシステムはパケットベースモードで動作する。各パケットは、（１）パケット中の、コマンド、ステータス及びデータロケーション情報を転送する部分であるパケットヘッダ、及び（２）パケット中の、データまたはメッセージを転送する部分であるパケットバッファを含んでいる。
【００１８】
入出力リンクインターフェースモジュール５８は、出ていくデータを入出力リンク５４に導く働き及びそこから入ってくるデータを受け取る働きをする。モジュール５８は入ってくるパケットを直接マイクロプロセッサ５６に導くか、あるいはＤＭＡサブモジュール６２を介して共有メモリ６０に導く。インターフェースモジュール５８が低データレート（例えば９６００ビット／秒のＲＳ２３２リンク）しかサポートしていない場合は、ＤＭＡサブモジュール６２は不用である。この様な場合には、入ってきたデータパケットは、インターフェースモジュール５８にバッファされ、マイクロプロセッサ５６により読み出され、次いで共有メモリ６０の中へ移動させられる。これとは反対に、インターフェースモジュール５８が高データレート（例えば、１６Ｍビット／秒のデータレートのトークンリング）を採用したネットワークにインターフェースを取るように機能する場合には、ＤＭＡサブモジュール６２が動作に加わる。この様な場合には、マイクロプロセッサ５６は、インターフェースモジュール５８に次の有効パケットを共有メモリ６０の与えられたアドレスにストアするように指示する。このアドレスはＤＭＡサブモジュール６２のＤＭＡカウンタ（図示せず）に置かれている。パケットは、受信されると、共有メモリ６０中に指定されたアドレスから直接ストアされる。これらの動作はＤＭＡサブモジュール６２と共有メモリ６０との間に伸びている制御線、アドレス線及びデータ線を介して行われる。同じ構成の線のグループ６６及び６８がそれぞれ共有メモリ６０とマイクロプロセッサ５６、共有メモリ６６とマイクロプロセッサ４２の間に設けられている。従って、共有メモリ６０はＤＭＡサブモジュール６２から直接に入力を受信することができ、マイクロプロセッサ４２及び５２の双方から全てアクセスすることができる。その結果、共有メモリ６０は、ＰＵ４０とＭＩＵ５２との間で本質的に共有され、これら２つの装置の間に主要情報経路を形成する。アービトレーションサブモジュール７０は、２つ以上の実体が共有メモリ６０にアクセスしようとする場合に、この衝突を調停する。
【００１９】
ＰＵからのデータの通り道の決定は全てＭＩＵ５２によって行われ、ＰＵ４０にはＭＩＵ５２が外界と通信するのに使用するプロトコルや外界から入ってくるデータの特性に関する知識は組み込まれていない。その結果、ＰＵ４０は単にＭＩＵ５２を変更するだけで、どんなネットワークプロトコルや特定のホストプロセッサとも接続することができる。
【００２０】
図４のシステムが使用するパケット構造は図２に示すものと実質上同じである。多くの形式のパケットが存在するが、４つの特定の形式のパケットを以下で考慮することにする。それは、これらがＰＵ４０とＭＩＵ５２との間の通信をサポートするからである。
【００２１】
データ読込みパケット−このパケットはデータを外界からＰＵ４０に送るのに使用される。ＰＵ４０がプリンタである場合には、データ読込みパケットは処理されてプリントページに編成されてその後にプリントされるべき情報を含んでいることがよくある。
【００２２】
データ書出しパケット−このパケットはデータをＰＵ４０から外界に渡すのに使用される。ＰＵ４０がプリンタである場合には、主なデータ流れは外界からプリンタへ向かうのであってその逆ではないので、データ書出しパケットが必要になることはほとんどない。実際、広く使用されているあるインターフェース（つまり、セントロニクスプロトコル）には、データをプリンタからホストプロセッサへ渡す能力がない。
【００２３】
ＰＵ制御パケット−このパケットはＰＵからＭＩＵへの雑多な要求／応答情報転送に使用される。つまり、ＰＵはこのパケットを使って、制御情報をＭＩＵへ渡したり、あるいはＭＩＵに対して制御情報を要求する。この様なパケットは一般にシステム内の制御及びハウスキーピング機能に使用される。
【００２４】
ＭＩＵ制御パケット−このパケットはＭＩＵからＰＵへの雑多な要求／応答情報転送に使用することを意図している。つまり、ＭＩＵはこのパケットを使って、制御情報をＰＵへ渡したり、あるいはＰＵに対して制御情報を要求する。
【００２５】
ＰＵ制御パケット及びＭＩＵ制御パケットは制御コマンドをシステム内で受け渡すことができるようにする。初期設定中に双方向制御パケット通信を確実に利用できるようにするため、少なくとも２つのパケットがＭＩＵ制御パケットとして割り当てられ、少なくとも２つの別のパケットがＰＵ制御パケットとして割り当てられる。共有メモリ６０の中のいくつかの領域がこれらのパケット用に確保されており、従ってこれらの領域はここを通して制御情報を常にＰＵ４０からＭＩＵ５２へ、またはその逆方向に送ることができる「窓」を与える。
【００２６】
図４のシステムは、ＰＵ４０またはＭＩＵ５２によるパケットの「所有」という概念を利用している。パケットの所有者だけがそのパケットへアクセスできる。従って、パケットが共有メモリ６０内にある間は、それらのパケットはその所有者だけからアクセスでき、他の共有メモリ６０をアクセスできるものからはアクセスできない。共有メモリ６０内の「メイルボックス」を使用することで、所有権をＰＵ４０とＭＩＵ５２の間で受け渡される。共有メモリ６０内の４バイトがＰＵメイルボックスとして確保されており、また４バイトがＭＩＵメイルボックスとして確保されている。これらのメイルボックスは各々当該メイルボックス内に有効データが存在することを示すフラグビットを備えている。
【００２７】
パケットの所有権は、所有者が当該パケットのヘッダを指すポインタを非所有者のメイルボックスにストアすることにより転送される。所有者はこの非所有者のメイルボックス中の前述のフラグを有効状態にセットする。所有者は次に、物理的に接続された制御線を動作させることにより、この非所有者に割り込みをかけ、非所有者は自分のメイルボックスを調べて、セットされたフラグを見る。次に、非所有者は自分のメイルボックスに先にストアされたパケットヘッダポインタを取り出す。この時点でこの非所有者がこのパケットの所有者となり、以前の所有者は非所有者となる。この段階で、新しい所有者が今度はこのパケット及びそこにストアされているデータにアクセスできる。新しい所有者はそのメイルボックス内のフラグをクリアしてから、物理的に接続された制御線を通じて新しい非所有者に割り込む。これにより、非所有者は、もしそうしたければ、別のパケットの別のパケットの所有権の新たな転送を開始することができる。
【００２８】
上に述べたように、共有メモリ６０はＰＵ４０と外界との間の唯一のデータ経路である。図４のシステムの構成の初期設定で、共有メモリ６０の構成設定が行われる。その記憶空間の内のある部分は（前述のように）制御パケットに割り当てられ、ある部分はデータ読込みパケットに割り当てられ、ある部分はデータ書出しパケットに割り当てられる。ある状況下では、共有メモリ６０はその記憶空間のどの部分もデータ書出しパケットに割り当てていないことがある（以下で説明する）。
【００２９】
それ故、共有メモリ６０はデータの通信及び制御の通信が通る「窓」と見なすことができる。この窓の一部は外界から入ってくる読込みデータのために確保され、他の部分は外界へ出て行く書出しデータのために確保されて良い。共有メモリ６０の一部を上述のように割り当てることにより、圧倒的に多量のデータが一方向に（例えば、入ってくる方向に）流れている場合でも双方向通信が常にできることが保証される。従って、窓の一部が常に出て行く方向のパケット用に確保され、この部分へは入ってくるデータからはアクセスできない。
【００３０】
共有メモリ６０は記憶空間の割当は図４のシステムを最適に機能させるのに非常に重要だから、システムの構成の初期設定中に極めて詳細な割当プロセスが行われる。このプロセスを図５ないし図９のフローチャートに示す。
【００３１】
◎共有メモリの割当て
ＭＩＵは共有メモリ割当て手順を制御する。共有メモリ割当て手順では最初に先ずＰＵ４０から要求された読込み／書出しパケット比率を決定する。例えば、ＰＵ４０がプリンタであれば、ＰＵ４０は共有メモリ６０の読込みデータパケット空間を圧倒的に多く要求し、書出しデータパケットの要求は、もしあったとしてもごくわずかである。他方，ＰＵ４０がファクシミリであれば、その読込み／書出しデータパケット比率は約５０／５０である。図５のボックス１００に示すように、ＭＩＵ５２は最初にＰＵ４０に読込み／書出しデータパケット比率を要求する。ＰＵ４０は予め入力されている読込み／書出しデータパケット比率をそのファームウエアに尋ねる。この比率は前に述べたようにＰＵ４０の通信の特性に基づいている（ボックス１０２）。ＰＵ４０は次にＭＩＵ５２に応答を返し、要求されたデータパケット比率を提供する（ボックス１０４）。
【００３２】
ＭＩＵ５２は、通信リンク５４がＰＵ４０からホストへの通信をサポートする場合にのみ、ＰＵ４０から提供される比率を採用する。リンク５４がセントロニクス形式のものである場合には、このようなＰＵからホストへの通信をサポートしない。この理由により、共有メモリから何らかの割当てを書出しデータパケットに与えなければならない理由はない。このような場合には、ＭＩＵ５２は１００％読込みデータパケット側とするという比率を使用する（ボックス１０６）。この比率の使用方法は以下の説明から明らかになるだろう。
なお、以下に図５の各ボックスの内容を示す：
１００−「ＭＩＵが読込み／書出しデータパケット比率をＰＵに要求」
１０２−「ＰＵの通信特性に基づき、ＰＵが読込み／書出しデータパケット比率を決定」
１０４−「ＰＵが読込み／書出しデータパケット比率をＭＩＵに回答」
１０６−「通信リンクがＰＵからホストへの通信をサポートする場合には、ＭＩＵはＰＵから提供されたこの比率を使用。そうでない場合には、ＭＩＵは１００％読込みデータパケットであるという比率を使用」
【００３３】
図６に示すように、ＭＩＵ５２は次にＰＵ制御パケットに必要なバッファ空間の長さの決定に進む。最初に、ＭＩＵ５２はＰＵ４０に対して、許容できる最短のＰＵ制御パケットバッファ長を提示するように要求する（ボックス１０８）。ＰＵ４０は、これに応答して自分の制御パケットを調べて制御パケットによって必要になるバッファ情報から許容できる最短の制御パケット長を決定する。換言すれば、そのバッファ長はＰＵが発生した要求制御パケットの最大のサイズに基づいている（ボックス１１０）。これにより、問題のうちの半分への回答が出来上がった。
【００３４】
問題の他の局面は、ＰＵ制御パケットバッファもＭＩＵ５２から応答制御パケットバッファを受け取るのに使用されるということである。従って、最短のバッファはＭＩＵ応答制御パケットバッファの最大長も受け入れなければならない。従って、ＰＵ４０がＭＩＵ５２に応答して許容できる最短の制御パケットバッファ長を与える（ボックス１１２）と、ＭＩＵ５２はこれに続いてもう１つの最短の許容できる最短の制御パケットバッファ長の決定を行う。このバッファ長はＭＩＵ５２が発生する応答制御パケットバッファの最大のサイズに基づいている（ボックス１１４）。
【００３５】
この段階で、ＭＩＵ５２は、ＰＵ制御パケットバッファの大きさを、（１）ＰＵが決定した許容できる最短のＰＵ制御パケットバッファ長と、（２）ＭＩＵが決定した許容できる最短のＰＵ制御パケットバッファ長のうちの長いほうに定める。この段階で、ＭＩＵ５２はＰＵ制御パケットに対する許容可能な最小バッファ長を確定できた。
なお、以下に図６の各ボックスの内容を示す：
１０８−「ＭＩＵがＰＵに対して、許容できる最短のＰＵ制御パケット長を提示するように要求」
１１０−「ＰＵが生成するあらゆる要求制御パケットの最大サイズに基づいて、ＰＵ制御パケットバッファ長をＰＵが決定」
１１２−「ＰＵがＭＩＵに対して、許容できる最短のＰＵ制御パケットバッファ長を返答」
１１４−「ＭＩＵが生成するあらゆる応答制御パケットの最大のサイズに基づいて、もう１つの許容できる最短のＰＵ制御パケットバッファ長をＭＩＵが決定」
１１６−「ＭＩＵがＰＵ制御パケットバッファ長を、以下の２つのうちの大きいほうに決定：
１）ＰＵが決定した許容できる最短のＰＵ制御パケットバッファ長
２）ＭＩＵが決定した許容できる最短のＰＵ制御パケットバッファ長」
【００３６】
図７に示すように、ＭＩＵ５２は今度は自分の制御パケットバッファ長について同じ決定を行う。この決定は、ボックス１１８、１２０、１２２、１２４及び１２６に示すように行われる。これは、この決定に当たって、先ずＭＩＵ５２が最初にＰＵの発生する応答制御パケットバッファの最大のサイズを検討し、次いでＭＩＵの発生する要求制御パケットバッファの最大のサイズを決定するという点を除いては、図６に示すものと同じである。これら２つのバッファサイズのうちで大きい方がＭＩＵ制御パケットバッファ長を定める。
なお、以下に図７の各ボックスの内容を示す：
１１８−「ＭＩＵがＰＵに対して、許容できる最短のＭＩＵ制御パケットバッファ長を提示するように要求」
１２０−「ＰＵが生成するあらゆる要求制御パケットの最大サイズに基づいて、ＭＩＵ制御パケットバッファ長をＰＵが決定」
１２２−「ＰＵがＭＩＵに対して、許容できる最短のＭＩＵ制御パケットバッファ長を返答」
１２４−「ＭＩＵが生成するあらゆる要求制御パケットの最大のサイズに基づいて、もう１つの許容できる最短のＭＩＵ制御パケットバッファ長をＭＩＵが決定」
１２６−「ＭＩＵがＭＩＵ制御パケットバッファ長を、以下の２つのうちの大きいほうに決定：
１）ＰＵが決定した許容できる最短のＭＩＵ制御パケットバッファ長
２）ＭＩＵが決定した許容できる最短のＭＩＵ制御パケットバッファ長」
【００３７】
次に図８に移ると、ＭＩＵ５２は今や次の事項を知っている：読込み／書出しデータパケットの比率、最短ＰＵ制御パケットバッファ長及び最短ＭＩＵ制御パケットバッファ長。ＭＩＵ５２はＭＩＵ５２にインストールされている共有メモリ６０が全部でどのくらいあるかを確認し、この値を出発値として使用して、パケットに利用できる共有メモリの量を決定する（ボックス１２８）。ＭＩＵはこの値からメイルボックスのために必要な共有メモリ量を差し引き（ボックス１３０）、専らＭＩＵが使用するために必要な共有メモリ量も差し引く（ボックス１３２）。正味の残りがパケットのために利用できる共有メモリ量である。最後に、ＭＩＵ５２は通信リンクの必要条件及び特性に基づいて、読込み及び書出しデータパケットバッファ長を決定する。例えば、あるネットワークプロトコルは最短長データパケットを必要とする。従って、ＭＩＵ５２は、ネットワークプロトコルの必要条件に合致するようにデータパケットバッファ長を調節する（ボックス１３４）。
なお、以下に図８の各ボックスの内容を示す：
１２８−「ＭＩＵがＭＩＵにインストールされている共有メモリの全体量を確認し、この値をパケットに利用できる共有メモリ量の出発値として使用する」
１３０−「メイルボックスに必要な共有メモリ量をパケットのために利用できる共有メモリ量からＭＩＵが差し引く」
１３２−「専らＭＩＵが使用するために必要な共有メモリ量をパケットのために利用できる共有メモリ量からＭＩＵが差し引く。この結果が、パケットのために利用できる共有メモリ量である」
１３４−「ＭＩＵが、通信リンクの必要条件に基づいて、読込みデータパケットバッファ長及び書出しデータパケットバッファ長を決定」
【００３８】
共有メモリ割当てルーチンでのＭＩＵ５２の最後の動作は、利用可能な共有メモリを実際に割り当てることである。この割り当てを示すのが図９のボックス１３６である。ＰＵ４０とＭＩＵ５２との間の双方向制御通信を確保するためには、共有メモリ６０では少なくとも２つのＰＵ制御パケット及び２つのＭＩＵ制御パケットの割当てが行われる。更に、少なくとも２つの読込みデータパケットが割り当てられなければならず、書出しデータパケットは必要に応じて割り当てられる。次いで、読込み／書出し比率に従って、利用可能な共有メモリを使い尽くすまで、読込み及び書出しデータパケットが共有メモリ６０内に更に割り当てられる。この手続きにより、共有メモリ６０の最適割当てが出来るようになり、また条件が変わったときは割当てを変えることにより、大きな柔軟性がシステムに付与される。
なお、図９のボックス１３６の内容は次のようになっている。
「ＭＩＵは利用可能な共有メモリを以下のように割り当てる：
少なくとも２つのＰＵ制御パケット
少なくとも２つのＭＩＵ制御パケット
少なくとも２つの読込みデータパケット
必要なだけの書出しデータパケット
ＭＩＵは、読込み／書出し比率にしたがって、読込みデータパケットと書出しデータパケットを、利用可能な共有メモリを使い尽くすまで割り当てる」
【００３９】
図１０は割当て後の共有メモリ６０の概略図であり、各種メイルボックス、制御パケットヘッダ、データパケットヘッダ及びバッファ領域の関係を示す。図２から想起されるように、各パケットはそれに関連付けられた内の有効データの先頭アドレスを示すデータ開始フィールドを持っている。このアドレスは共有メモリ６０のどこにあっても良い。
【００４０】
◎ＭＩＵ構成設定
図４のシステムの最初の動作時に、ＭＩＵは通信リンクの要求事項を満たすように構成設定されなければならない。例えば、インターフェースがシリアルデータリンクであれば、ボーレート、１文字当たりのデータビット数、ハンドシェークの形式、線路の極性等を定義しなければならない。このシステムは、ユーザがＰＵ４０にあるディスプレイ４４及びキーボード４６と対話することにより、ＭＩＵを的確に構成設定できるようにしている。
【００４１】
最初に、ユーザはキーボード４６を操作して、構成設定要求パケットを開始する。これにより、ＰＵ４０がＭＩＵの構成設定を、機会内部に設けられたスイッチに頼らずに、ディスプレイ４４上のテキストプロンプトを使用して行うための手段が提供される。
【００４２】
構成設定要求パケットは共有メモリ６０に置かれ、その所有権はＭＩＵ５２に渡される。これに応答して、マイクロプロセッサ５６はディスプレイ４４を介してユーザに対して表示する質問及び回答をＰＵ４０に渡す。例えば、質問をディスプレイ４４上に提示し、それに続いて構成設定のためのユーザからの回答の１つあるいは複数の推奨回答を提示する。これらの推奨回答の内の１つをユーザが選択できる。回答が選択されると、その回答はＰＵ４０のマイクロプロセッサ４２により共有メモリ６０に渡される。次に、マイクロプロセッサ５６は、回答から生じる構成設定データを不揮発性メモリ４８にストアするように、マイクロプロセッサ４２に要求する。これにより、ＰＵ４０に既に設けられている不揮発性メモリ４８を入出力構成設定データのために利用することができ、同じようなメモリをＭＩＵ５２内に重複して設ける必要がなくなる。
【００４３】
ユーザがキーボード４６により構成設定動作をこれから行うことを表明する前に、マイクロプロセッサ４２はＰＵ４０が使用する言語の指示を予め渡してある。例えば、ＰＵ４０がプリンタであれば、その指示や他のユーザインターフェースは英語、ドイツ語等を用いることができる。マイクロプロセッサ５６は、構成設定要求に応答して、ディスプレイ４４上に同じ言語で質問及び回答を提示する。
【００４４】
上述の構成設定機能により、ＭＩＵ５２内の入出力機能の構成設定を、それについての知識を持っていないＰＵ４０を使って行うことができる。この結果、ＰＵ４０はどんなＭＩＵとも接続することができ、なおかつ制御機能を遂行することができる。それは質問及び回答はＭＩＵ５２の中のマイクロプロセッサ５６により制御されるからである。
【００４５】
◎ネットワークプロトコルパケットヘッダの取り扱い
図４に戻ると、そこに図示してあるシステムは、往々にしてネットワークプロトコルヘッダとトレイラとの間に「カプセル化されている」データを使用するネットワークに接続されなければならないことがある。ＭＩＵ５２の一つの目的は、ＰＵ４０が、自分の接続されたネットワークが具体的にはどんなプロトコルを必要とするのかについては全く気が付かないようにすることである。更に、ＭＩＵ５２の他の目的は、最適性能を維持することができるように、カプセル化されたデータを最も迅速に処理することである。以下の説明から判るように、図４に示すシステムは、これ以上のデータコピーを行うことを必要とせずに、リンクインターフェースモジュール５８と共有メモリ６０との間でそのようなカプセル化されたパケットを転送する。
【００４６】
共有メモリ６０の割当ての説明を行っている際に述べたように、ＭＩＵ５２はネットワークパケット全体（すなわち、ネットワークプロトコルヘッダ＋データ＋ネットワークプロトコルトレイラ）を収容するに充分な大きさのバッファを作り出す。これを図１１に示してある。図１１では、バッファ１５０（共有メモリ６０中にある）はリンクインターフェースモジュール５８を経由してネットワークから受け取ったままのパケット全体を含んで描かれている。ネットワークパケットがリンクインターフェースモジュール５８と共有メモリ６０の間を通ると、それに続いて、インターフェースパケットヘッダ１５２が共有メモリ６０のマイクロプロセッサ５６により構築される。インターフェースパケットヘッダ１５２は図２に示した形を取るが、そこに示したデータと図３の従来技術のパケットヘッダ構成に示したものとでは、３つの重要な差異がある。具体的には、パケットヘッダ１５２のデータ開始フィールドはバッファ１５０の中の有効データの最初のアドレス（ネットワークプロトコルヘッダの最初のアドレスではない）を示している。データ長フィールドは有効バッファデータだけの長さを示し、ネットワークプロトコルヘッダ及び、もし存在すれば、ネットワークプロトコルトレイラはどちらもこのフィールドに書き込まれている長さとしては勘定に入れていない。最後に、最大データ長フィールドは、バッファ１５０に格納し得る有効バッファデータの最大量を示し、ネットワークプロトコルヘッダ及びトレイラの記憶空間はどちらも勘定に入れていない。
【００４７】
その結果、パケットヘッダ１５２及びバッファ１５０からなるパケットの所有権がマイクロプロセッサ４２に渡され、次いでマイクロプロセッサ４２がそのパケットにアクセスすると、マイクロプロセッサ４２は有効バッファデータ及びそれを定義するデータフィールドを見るだけである。その結果、マイクロプロセッサ４２はプロトコルヘッダ及びトレイラがバッファ１５０に存在することを知らず、後の処理においてそれらを無視することができる。それ故、ネットワークプロトコルヘッダ及びトレイラを入って来るネットワークデータから「剥ぎ取る」のに別に処置を取る必要はなく、それだけで「剥ぎ取り」が自動的にかつ動作中に（ｏｎ  ｔｈｅ  ｆｌｙ）処理される。
【００４８】
ＰＵ４０が書出しデータパケットをＭＩＵ５２に渡すと、この場合も、ネットワークヘッダ及びトレイラを付加するのに出ていくデータをコピーすることは必要とされない。このわけは、マイクロプロセッサ５６が出ていくネットワークプロトコルのヘッダ及びトレイラの情報を挿入するため有効バッファデータ領域１５０（図１１）の上及び下に予め空間を確保しているからである。その結果、マイクロプロセッサ５６はその情報を共有メモリ６０のネットワークプロトコルヘッダ及びトレイラ領域に直接挿入することができる。次に、マイクロプロセッサ５６はＤＭＡサブモジュール６２に、ネットワークプロトコルヘッダ、有効バッファデータ、及びネットワークプロトコルトレイラをネットワークパケットとしてリンク５４上に送出するように指示する。
【００４９】
上述の説明は本発明を例示しただけであることを理解しなければならない。当業者は、本発明から逸脱することなく種々の代案及び修正案を考え出すことができる。従って、本発明は特許請求の範囲の射程に入るこのような代案、修正案及び変形を全て包含するものである。
【００５０】
【発明の効果】
以上詳細に説明したように、本願発明によれば、周辺ユニットとインターフェースユニットとの間の共有メモリの割当てを、状況に合わせて柔軟に行うことができ、またインターフェースの構成の設定が簡単化され、さらにまたパケットのプロトコルヘッダを取り去る処理が高速化されるという効果がある。
【図面の簡単な説明】
【図１】本発明を適用できる図１はシステムの全体構成を示す高レベルのブロック図。
【図２】パケットヘッダの構成を示す図。
【図３】従来技術のパケットヘッダの各フィールドとパケットバッファの各セクションとの関係を示す図。
【図４】本発明の一実施例のシステムのブロック図。
【図５】図４のシステムの動作を説明するためのフローチャート。
【図６】図４のシステムの動作を説明するためのフローチャート。
【図７】図４のシステムの動作を説明するためのフローチャート。
【図８】図４のシステムの動作を説明するためのフローチャート。
【図９】図４のシステムの動作を説明するためのフローチャート。
【図１０】本発明の一実施例における共有メモリの割当ての例を示す図。
【図１１】本発明の一実施例のパケットヘッダの各フィールドとパケットバッファの各セクションとの関係を示す図。
【符号の説明】
２０、４０：周辺ユニット（ＰＵ）
２２、５２：モジュール式インターフェースユニット（ＭＩＵ）
２４：ホストコンピュータ
２６：ＰＵ／ＭＩＵインターフェース
２８：Ｉ／Ｏハードウエアリンク
３０：バッファ
４２、５６：マイクロプロセッサ
４４：ディスプレイ
４６：キーボード
４８：不揮発性メモリ
５０：ＰＵ機構部分
５４：入出力リンク
５８：入出力リンクインターフェースモジュール
６０：共有メモリ
６２：ＤＭＡサブモジュール
７０：アービトレーションサブモジュール
【図１】
0003602089.tif 000002
【図２】
0003602089.tif 000003
【図３】
0003602089.tif 000004
【図４】
0003602089.tif 000005
【図５】
0003602089.tif 000006
【図６】
0003602089.tif 000007
【図７】
0003602089.tif 000008
【図８】
0003602089.tif 000009
【図９】
0003602089.tif 000010
【図１０】
0003602089.tif 000011
【図１１】
0003602089.tif 000012