JPH08278927A - 再プログラム可能ネットワーク通信装置及びネットワーク通信装置の再プログラム方法 - Google Patents

再プログラム可能ネットワーク通信装置及びネットワーク通信装置の再プログラム方法

Info

Publication number
JPH08278927A
JPH08278927A JP7286159A JP28615995A JPH08278927A JP H08278927 A JPH08278927 A JP H08278927A JP 7286159 A JP7286159 A JP 7286159A JP 28615995 A JP28615995 A JP 28615995A JP H08278927 A JPH08278927 A JP H08278927A
Authority
JP
Japan
Prior art keywords
network
configuration information
file block
image data
information file
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
JP7286159A
Other languages
English (en)
Other versions
JP3651987B2 (ja
Inventor
Lorraine F Barrett
エフ. バレット ロレイン
Natsuko Takahashi
タカハシ ナツコ
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.)
Canon Information Systems Inc
Original Assignee
Canon Information Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Information Systems Inc filed Critical Canon Information Systems Inc
Publication of JPH08278927A publication Critical patent/JPH08278927A/ja
Application granted granted Critical
Publication of JP3651987B2 publication Critical patent/JP3651987B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/64Retargetable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

(57)【要約】 【課題】 ネットワーク通信機器に互換性のないイメ
ージデータがダウンロードされた場合に上記のような悲
惨な結果を招かないようにするために、ダウンロードさ
れたイメージデータが互換性のあるものであるかどう
か、再プログラムを行う前に確認する装置及び方法を提
供すること。 【解決手段】 再プログラム可能ネットワーク通信装置
であって、現プログラムイメージデータと、現ネットワ
ーク情報ファイルブロックと、ソフトウエア再プログラ
ムモジュールとを記憶する再プログラム可能ROMと、新
しいプログラムイメージデータを記憶するためのRAM
と、新しいプログラムイメージデータが互換性があるか
どうかを確認し、互換性が確認された場合に、ソフトウ
エア再プログラムモジュールを実行する、ネットワーク
通信を送受信するプロセッサーとを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ネットワーク上で
通信する、再プログラム可能なネットワーク通信装置に
関する。特に、本発明は、再プログラムする前に、再プ
ログラムようのイメージデータが互換性があるものであ
ることを確認する、再プログラム可能なネットワーク通
信装置に関する。
【0002】
【従来の技術】近年、ローカルエリアネットワーク(LA
N)が複雑になるにつれ、入手可能な最新の技術をもっ
てネットワーク通信装置をグレードアップすることが一
般的となっている。このようなグレードアップは、LAN
を介して行うのが簡単である。例えば、ネットワーク統
括者は、新しいデータを遠隔操作でネットワーク通信装
置にダウンロードすることによって、この装置のファー
ムウエアのイメージデータを変更することができ、装置
はこの新しいファームウエアイメージデータで再プログ
ラムを行う。
【0003】ネットワーク統括者がログインすることが
できる典型的なパーソナルコンピューター(PC)は2
つ以上のLANに接続されていることもある。例えば、P
CはEthernet LAN及びToken-ring LANの両方に接続して
いてもよく、両方のネットワークの統括者として機能し
てもよい。また、それぞれのLANは、いくつかの再プロ
グラム可能なネットワーク通信装置に接続していてもよ
い。従って、このような構成においては、ネットワーク
統括者が潜在的に再プログラムすることのできる装置が
複数あり、従って、ネットワーク統括者が、うっかりこ
れらの装置のどれかを互換性のないイメージデータで再
プログラムしてしまう可能性がある。
【0004】互換性がないイメージデータをダウンロー
ドした結果は、破壊的なものでありうる。例えば、ネッ
トワーク統括者が誤ってToken-ringイメージデータをEt
hernet LANに接続されているカードにダウンロードし、
その後にそのカードがToken-ringイメージデータで再プ
ログラムした場合、カードはEthernet LAN上で通信を行
うことが全くできなくなる。これはつまり、カードがLA
Nから再プログラムすることさえできないことを意味す
る。Ethernet LANに関しては全く「役立たず」のボード
となるわけである。例えば、ホストインターフェース構
成や、製品構成や、プロセッサー構成や、メモリ構成に
おける非互換性は、「役立たず」のボードにしてしまう
可能性がある。
【0005】
【発明が解決しようとする課題】本発明は上記従来例に
鑑みてなされたもので、ネットワーク通信装置に互換性
のないイメージデータがダウンロードされた場合に上記
のような悲惨な結果を招かないようにするために、ダウ
ンロードされたイメージデータが互換性のあるものであ
るかどうか、再プログラムを行う前に確認する装置及び
方法を提供することを目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するため
に本発明における再プログラム可能ネットワーク通信装
置は、以下の様な構成からなる。即ち、ネットワーク上
で通信し、現プログラムイメージデータと、ネットワー
ク通信装置のための構成情報を含む現ネットワーク情報
ファイルブロックと、再プログラム可能ROMを再プログ
ラムするためのソフトウエア再プログラムモジュールと
を記憶する再プログラム可能ROMと、再プログラム可能R
OMの為の新しいプログラムイメージデータを記憶するた
めのRAMと、新しいプログラムイメージデータが現ネッ
トワーク情報ファイルブロックの構成情報と互換性があ
るかどうかを確認し、互換性が確認された場合に、再プ
ログラム可能ROMを新しいプログラムイメージデータで
再プログラムするために、ソフトウエア再プログラムモ
ジュールを実行する、ネットワーク通信を送受信するプ
ロセッサーとを含む。
【0007】また、本発明におけるネットワーク通信装
置の再プログラム方法は、現プログラムイメージデータ
と、ネットワーク通信装置のための構成情報を含む現ネ
ットワーク情報ファイルブロックと、再プログラム可能
ROMを再プログラムするためのソフトウエア再プログラ
ムモジュールとを再プログラム可能ROMに記憶する工程
と、再プログラム可能ROMの為の新しいプログラムイメ
ージデータをRAMに記憶する工程と、新しいプログラム
イメージデータが現ネットワーク情報ファイルブロック
の構成情報と互換性があるかどうかを確認する工程と、
互換性が確認された場合に、再プログラム可能ROMを新
しいプログラムイメージデータで再プログラムするため
に、ソフトウエア再プログラムモジュールを実行する工
程とを含む。
【0008】好ましくは、現ネットワーク情報ファイル
ブロックにおける構成情報は、MACアドレスと、ネット
ワーク構成情報と、ホストインターフェース構成情報
と、製品構成情報と、プロセッサー構成情報と、メモリ
構成情報とを含む。プロセッサーは、現ネットワーク情
報ファイルブロックを新しいネットワーク情報ファイル
ブロックと比較することによって、新しいプログラムイ
メージデータの互換性を確認する。
【0009】上記の問題を解決するための手段は、本発
明が迅速に理解されるように提供されたものである。本
発明に関する更に詳しい理解は、添付図面を参照して説
明された、下記の好適な実施例の詳細を参照することに
より、明かになるであろう。
【0010】
【発明の実施の形態】以下添付図面を参照して本発明の
好適な実施の形態を詳細に説明する。最も好適な例とし
ては、本発明はネットワークボード(NEB)の形態を取
る。このNEBは、プリンターや対話型インテリジェント
・ネットワーク・メンバー等のネットワーク周辺機器
を、ネットワークからデータを受信して処理するだけで
はなく、詳細な状態情報や演算パラメーター等の周辺機
器に関する多量のデータをネットワークに送信すること
ができるようにする、ハードウエアやソフトウエア、又
はファームウエアを用いた解決法を提供する。また、本
発明をスキャナーやファクシミリ、コピー機、画像処理
装置等の、ネットワークに接続された他の周辺機器に使
用してもよい。このようなハードウエア、ソフトウエ
ア、ファームウエアを周辺機器と融合することで、パー
ソナルコンピューターを周辺機器のサーバーとして使用
する必要がなくなる。 [ネットワーク構成]図1は、ネットワークボード(NE
B)101を、開放型アーキテクチャを持つプリンター
102へつなげた場合を示す図である。NEB101はロ
ーカルエリアネットワーク(LAN)100へ、例えば、
同軸コネクタをもつEthernetインターフェース10Base
-2や、RJ−45を持つ10Base-T等のLANインターフ
ェースを介してつながれている。
【0011】PC103やPC104等の複数のパーソ
ナルコンピューター(PC)もまた、100に接続され
ており、ネットワークオペレーティングシステムの制御
の下、これらのPCはNEB101と通信することができ
る。PCの一つ、例えばPC103を、ネットワーク管
理部として使用するように指定することができる。PC
に、PC104に接続されているプリンター105のよ
うなプリンターを接続してもよい。
【0012】また、LAN100にファイルサーバー10
6が接続されており、これは大容量(例えば100億バ
イト)のネットワークディスク107に記憶されたファ
イルへのアクセスを管理する。プリントサーバー108
は、接続されたプリンター109a及び109b、又は遠
隔地にあるプリンター105などのプリンターに印刷を
行わせる。また他の図示しない周辺機器をLAN100に
接続してもよい。
【0013】更に詳しくは、図1に示すネットワーク
は、様々なネットワークメンバー間で効率良く通信を行
うために、NovellやUNIXのソフトウエアなどのネットワ
ークソフトウエアを使用することができる。どのネット
ワークソフトウエアを使用することも可能であるが、本
実施の形態においては、Novell社のNetWare(Novell社
の商標。以下省略) ソフトウエアを使用したLANに基づ
いて説明する。このソフトウエアパッケージに関する詳
細な説明は、1990年に著作権登録されたM&Tブック
ス社発行の「NetWareユーザーガイド」及び「NetWareス
ーパーバイザーガイド」に示されている。また、Novell
社発行の1991年3月版「NetWareプリントサーバ
ー」(Novell Part第100−000892−001)
も参照されたい。
【0014】簡潔に説明すると、ファイルサーバー10
6は、LANメンバー間でデータのファイルの受信や、記
憶、キューイング、キャシング、及び送信を行う、ファ
イル管理部としての役割を果たす。例えば、PC103
及びPC104それぞれによって作られたデータファイ
ルは、ファイルサーバー106へ送られ、ファイルサー
バー106はこれらのデータファイルを順に並べ、そし
てプリントサーバー108からのコマンドに従って、並
べられたデータファイルをプリンター109aへ送信す
る。
【0015】PC103とPC104はそれぞれ、デー
タファイルの生成や、生成したデータファイルのLAN1
00への送信や、また、LAN100からのファイルの受
信や、更にそのようなファイルの表示及び/又は処理を
行うことのできる、通常のPCで構成される。図1にパ
ーソナルコンピューター機器が示されているが、ネット
ワークソフトウエアを実行するのに適切であるような、
他のコンピューター機器を含んでもよい。例えば、UNIX
のソフトウエアを使用している場合に、UNIXワークステ
ーションをネットワークに含んでもよく、これらのワー
クステーションは、適切な状況下で、図示されているP
Cと共に使用することができる。
【0016】通常、LAN100などのLANは、一つの建物
内の一つの階又は連続した複数の階でのユーザーグルー
プ等の、幾分ローカルなユーザーグループにサービスを
提供する。例えば、ユーザーが他の建物や他県に居るな
ど、あるユーザーが他のユーザーから離れるに従って、
ワイドエリアネットワーク(WAN)を作ってもよい。WAN
は、基本的には、いくつかのLANを高速度サービス総合
デジタルネットワーク(ISDN)電話線等の高速度デジタ
ルラインで接続して形成された集合体である。従って、
図1に示すように、LAN100と、LAN110と、LAN1
20とは変調/復調(MODEM)/トランスポンダー13
0及びバックボーン140を介して接続されWANを形成
する。これらの接続は、数本のバスによる単純な電気的
接続である。それぞれのLANは専用のPCを含み、ま
た、必ずしも必要なわけではないが、通常はファイルサ
ーバー及びプリントサーバーを含む。
【0017】従って図1に示すように、LAN110は、
PC111と、PC112と、ファイルサーバー113
と、ネットワークディスク114と、プリントサーバー
115と、プリンター116及びプリンター117とを
含む。対象的に、LAN120はPC121とPC122
のみを含む。LAN100と、LAN110と、LAN130と
に接続されている機器は、WAN接続を介して、他のLANの
機器の機能にアクセスすることができる。
【0018】PC104には、例えばRPINTERソフトウ
エアプログラムが搭載されており、これによりネットワ
ーク周辺機器の制限された制御を行うことができる。RP
INTERプログラムは、MS-DOSターミネート・アンド・ス
テイ・レジデント(TSR)プログラムである。このプロ
グラムにより、ユーザーがPC104に接続されたプリ
ンター105を共有していても、PC104は印刷以外
の他のアプリケーションを実行することができる。RPIN
TERは、ワークのためのプリンターキューを検索する機
能を持たない、比較的非インテリジェントなプログラム
である。RPINTERはネットワーク上のどこかで稼働して
いるプリントサーバー108からワークを受ける。PC
104で実行されているRPINTERは、接続されたプリン
ターと、プリンターのパラレルポートを介して通信を行
うため、プリンター105から限られた状態情報のみを
手に入れ、その状態情報をプリントサーバー108へLA
N100を介して返すことができる。制御の点から見る
と、RPINTERは印刷ジョブの中止や(例えば、プリンタ
ーの用紙切れや、接続されていない場合に行われる)、
他のいくつかの制御を行うことができる。プリンターに
よっては、パーソナルコンピューターで実行されてい
る、RPINTER TSRプログラムの特長機能のいくつかを供
給する、内部又は外部回路ボードを提供することによ
り、RPINTERと同様の機能を持つことができる。
【0019】プリントサーバー108はLAN周辺機器に
対して、更に多くの制御を行なうことができるが、他の
タスクに使用することのできない専用のPCを必要とす
る。プリントサーバー108はPCであってもよく、多
数のユーザー定義のプリントキューをサービスし、ダイ
ナミック検索キューの更新を行い、例外(失敗)条件及
び状態・制御性能についての、定義された通知手順を提
供することができる。また、プリントサーバー108
は、ローカルプリンター109aおよび109b(つま
り、物理的にプリントサーバー108に接続されている
プリンター)と、遠隔地にあるプリンターとの両方を制
御することができる。ローカルプリンター109aおよ
び109bはシリアルポート又はパラレルポートのどち
らにも接続することができ、プリンター105のような
遠隔地にあるプリンターは、RPRINTERソフトウエアを介
してプリントサーバー108が制御する、システムの何
処かで稼働しているプリンタである。
【0020】プリントサーバー108は、多数のローカ
ル又は遠隔地のプリンターを制御したり、多数のファイ
ルサーバーキューから印刷情報をリクエストすることが
できる。しかし、ネットワークプリントサービスを制御
するためにプリントサーバー108に頼ることに関し
て、いくつかの欠点がある。第1の欠点は、複数のプリ
ンターストリームが単一のネットワークノードを介して
集められなければならないことである。これは障害とな
りうる。第2の欠点は、最も効率的な操作のためには、
プリンター109a及び109bのように、プリンターを
プリントサーバーにローカルに接続しなけらばならない
ことである。このため、プリンターがプリントサーバー
108の周辺に集まっていなければならず、ユーザーが
プリンターの集まっている場所までわざわざ行かなけれ
ばならないということから、ユーザーにとって不便であ
る。第3の欠点は、RPRINTERによってサービスされてい
るプリンター105のように、制御されているプリンタ
ーが遠隔地にある場合、プリントデータは、先ずファイ
ルサーバー106からプリントサーバー108へ、次に
プリントサーバー108からRPRINTERを稼働しいるプリ
ンターへと、いくつかの経路を辿らなければならないこ
とである。これは非効率である。
【0021】第4の欠点は、限られた量のプリンター状
態及び制御情報しか、プリントサーバー108を通して
供給されないことである。既に説明したとおり、RPRINT
ERは、「用紙切れ」及び「オフライン」等の基本的な状
態情報以上のものを供給しないことである。パーソナル
コンピューターパラレルポートの制限を鑑みて設計され
ているため、プリントサーバー108は、これ以上の情
報を提供しないのである。 [ネットワークボード]NEB101をプリンター102
にインストールすることによって、上記のネットワーク
周辺機器制御に多くの利点をもたらす。そのうちの一つ
は、プリンター102をインテリジェントな対話式ネッ
トワークメンバーにすることである。
【0022】図2に示すように、好ましくは、NEB10
1は、プリンター102の内部拡張I/Oスロットに内蔵
されており、本発明の実施の形態においては、プリンタ
ーはキヤノン社のLBP1260レーザープリンターを
用いている。これにより、NEB101は、下に示す処理
及びデータ記憶機能を持つ、「埋め込まれた」ネットワ
ークノードとなる。
【0023】このNEB101の構成により、大きなマル
チエリアWANネットワークを統括及び管理するための、
特徴的な補助機能を持つという利点をもたらす。これら
の補助機能は、例えば、ネットワーク上の遠隔地(ネッ
トワーク統括者の事務所など)からのプリンター制御及
び状態観察や、各印刷ジョブ後の次のユーザーのための
保証初期環境を提供するためのプリンター構成の自動管
理、及びプリンターの負荷量を特徴付け、あるいはトナ
ーカートリッジの交換スケジュールを組むためにネット
ワークを通してアクセスできる、プリンターログ又は使
用統計を含む。
【0024】NEB設計において重要な要因は、共有メモ
リ等の両方向インターフェースを介して、NEB101か
らプリンター制御状態にアクセスする機能である。共有
メモリ以外に、SCSIインターフェース等のインターフェ
ースを使用することもできる。これにより、多数の便利
な補助機能のプログラムができるように、プリンター操
作情報をNEB101又は外部ネットワークノードへ送出
することができる。印刷画像データ及び制御情報のブロ
ックは、NEB101上にあるマイクロプロセッサーによ
って構成され、共有メモリに記述され、そして、プリン
ター102によって読み込まれる。同様に、プリンター
状態情報は、プリンター102から共有メモリへ送ら
れ、そこからNEBプロセッサーによって読み込まれる。
【0025】図2は、NEB101をプリンター102に
インストールした状態を示す断面図である。図2に示す
ように、NEB101はネットワーク接続の為のフェース
プレート101bを設置した印刷回路ボード101aから
構成されており、コネクタ170を介してプリンターイ
ンターフェースカード150に接続されている。後で説
明するが、プリンターインターフェースカード150
は、プリンター102のプリンターエンジンを直接制御
する。印刷データ及びプリンター状態コマンドは、NEB
101からコネクタ170を介して、プリンターインタ
ーフェースカード150へ入力され、また、プリンター
状態情報はプリンターインターフェースカード150か
らやはりコネクター170を介して得られる。NEB10
1はこの情報を、フェースプレート101bのネットワ
ークコネクタを介して、LAN100上で通信する。同時
に、プリンター102は、従来のシリアルポート102
a及びパラレルポート102bから、印刷データを受信す
ることもできる。
【0026】図3は、NEB101とプリンター102とL
AN100との電気的接続を示すブロック図である。NEB
101は、LAN100へはLANインターフェースを介し
て、プリンター102へはプリンターインターフェース
カード150を介して直接接続されている。本発明の実
施の形態においては、このプリンターインターフェース
カード150は、Peerless System社から販売されてい
る、PeerlessLBP−860/1260−エクスターナ
ル・スタンダードI/Oボードインターフェースである。
この詳細は、1994年3月10日付けPeerless Syste
m社PeerlessスタンダードI/Oインターフェース設計仕様
書、改訂版2.07aに記されている。このボードはイ
ンテル80960KB−20マイクロプロセッサー15
1を搭載している。これは32ビット機であるが、マイ
クロプロセッサー151はNEB101とのデータのアク
セスを2バイト幅(16ビット)で、NEB101に設置
されている共有メモリ200を介して行う。マイクロプ
ロセッサー151は、実際に印刷機構を動かす、プリン
ターエンジン160とも通信する。 [NEBの物理的配列]図4は、好ましいNEB101の構成
要素の大小、及びその主要な構成要素の物理的配列を示
す図である。NEBカードは縦3.93インチ、横5.6
インチである。NEB101は、プリンターインターフェ
ースに接続するプリンターインターフェースカードコネ
クタ170(Peerlessプリンターインターフェースカー
ドの場合、80ピンコネクタ)と、LAN100に接続可
能なコネクター301及び302を持つフェースプレー
ト300とを含む。また、このフェースプレートは、4
状態発光ダイオード(LED)303乃至306を含む。N
EBカード上には、トランシーバー171と、水晶発振器
172と、マイクロプロセッサー173と、アービター
制御論理回路400と、フラッシュ消去可能プログラム
可能ROM(EPROM)174と、ダイナミックRAM(DRAM)
175と、第1スタティックRAM(SRAM)(共有メモ
リ)200と、第2SRAM176と、ネットワーク及びNE
B制御論理回路500と、シリアルポートコネクタ60
0とが配置されている。これらの構成要素それぞれにつ
いては、後で詳細に説明する。
【0027】図5は、大きさが縦4.56インチ、横
1.28インチのフェースプレート300を更に詳しく
示す図である。上記のとおり、NEB101はLAN100に
コネクタ301及び302を介してつながれている。好
ましくは、コネクタ301は10Base-Tを接続すること
ができるRJ−45コネクタであり、コネクタ302は
10Base-2を接続することができる簡易同軸コネクタで
ある。状態LED303は、NEB101がLAN100上にデ
ータを送信しているときに点灯し、状態LED304は、N
EB101がLAN100からデータを受信しているときに
点灯する。状態LED305は、RJ−45コネクタ30
1がLAN100に接続しているときに点灯し、また、状
態LED306は、NEB101の自己診断中に点灯する。搭
載穴307は、NEB101をプリンター102へ固定す
るためのねじを受けるためのものである。 [NEBの構成]NEB101の構成を図6に示す。+5V電
源177からNEB101へ電気を供給することによっ
て、すべての回路に電気が供給される。+5Vの電圧
は、電圧変換装置178及び179へも供給される。電
圧変換装置178は、−9Vの電圧をトランシーバー1
71へ供給し、また電圧変換装置179は、+12Vの
電圧をフラッシュEPROM174へ「フラッシュするため
に」(つまり、EPROMを再プログラムするために)供給
する。
【0028】ネットワーク・NEB制御論理回路500は、
ネットワーク制御部510及びNEB制御論理回路520
を含む、単一の144ピンアプリケーション用集積回路
(ASIC)であることが好ましい。ネットワーク制御部5
10はナショナルDP83902A「ST-NIC」Ethernet
コントローラーと互換性のある、NCRマクロセルであ
り、このコントローラーの詳細はナショナルセミコンダ
クター社の1993年版ローカルエリアネットワークデ
ータブック(Local Area Network Data Book)、ナショ
ナルセミコンダクターp/n400055に示されるとお
りである。ネットワーク制御部510は、CSMA/CD-タイ
プ(キャリア検知多重アクセス/衝突検出)ローカルエ
リアネットワークとインターフェースするように設計さ
れている。
【0029】ネットワーク制御部510は、RJ−45
コネクタ301に直接接続し、同軸コネクタ302へ
は、トランシーバー171を介して接続する。同軸コネ
クタ302は、ナショナル半導体DP8392同軸トラ
ンシーバーインターフェースであることが好ましく、そ
の詳細は、ナショナルセミコンダクター社のローカルエ
リアネットワークデータブックに示されている。ネット
ワーク制御部510はまた、Ethernetデータのための入
出力パケットバッファとして利用される、8KBのSRAM
176につながれている。このメモリのアクセス時間
は、約70ns以下であることが好ましい。
【0030】NEB制御論理回路520は、ネットワーク
制御部510と、マイクロプロセッサー173と、メモ
リ装置であるEPROM174およびDRAM175との間のイ
ンターフェースを提供する。また、NEB制御論理回路5
20は、不揮発性RAM(NVRAM)180とインターフェー
スする。このNVRAM180は、NEB101を内蔵するプリ
ンター102のパワーサイクリング中の初期化データの
記憶部のために使用される、256バイトの電気的に消
去可能プログラム可能シリアルメモリである。プリンタ
ーが最初にネットワークにインストールされたときに、
プリンターがオフ・オンの一巡をした後に、NEBソフト
ウエアがインストール用のパラメーターをリカバーする
ために、ネットワーク及びプリンター構成パラメーター
がNVRAM180へ書き込まれる。
【0031】また、NEB制御論理回路520は、デバッ
グを行うためにシリアルデータ列を送受信するためのデ
ータ受信ピン601(RX)とデータ送信ピン602
(TX)とを持つ、シリアルポートコネクタ600へつ
ながれている。NEB制御論理回路520は、現在受信デ
ータ線上にあるデータを感知し、定間隔でシリアルビッ
トをサンプリングする。この方法は、後に詳しく説明す
る。
【0032】NEB101の中央処理部はマイクロプロセ
ッサー173であり、好ましくは、インテル80C18
8EA−208−ビットプロセッサーである。このプロセ
ッサーの詳細は、インテル社の80C186EA/801
88EAユーザーマニュアル、インテルp/n270950
−001に記されている。このプロセッサーは、8ビッ
トプロセッサーで、ダイレクトメモリアクセス(DM
A)、割り込み機能、タイマー、及びDRAMリフレッシュ
制御機能を持つ。AMD80C188−208−ビットマイ
クロプロセッサーのような、他のプロセッサーを代わり
に使用してもよい。256KBのフラッシュEPROM17
4及び512KBのDRAM175は、NEB制御論理回路5
20を介してマイクロプロセッサー173につながれて
おり、32KBのSRAM200(プリンターインターフェ
ースカード150と共有されている)は、アービター制
御論理回路400を介してマイクロプロセッサー173
につながれている。40MHz、50ppmの水晶発振
器172は、プリンターインターフェースカード150
のマイクロプロセッサー151へ供給されるクロック信
号と、非同期で完全に異なるクロック信号を、マイクロ
プロセッサー173に供給する。
【0033】マイクロプロセッサー173は、制御ファ
ームウエアと印刷アプリケーションソフトウエアを記憶
するフラッシュEPROM174に記憶された命令を実行す
る。電源投入時の自己診断(POST)を終えると、コード
は選択的に高性能512KBDRAM175へ移動する。こ
のDRAM175は、実際の実行では、約80nsのアクセス
時間を持つことが好ましい。後述するように、LAN10
0からフラッシュEPROM174を、再プログラム、つま
り、「フラッシュ」することが可能である。
【0034】図7は、フラッシュEPROM174に記憶さ
れているコードブロック、つまりモジュールの数例を示
す図である。XPLモジュールは、プリンター102とNEB
101間に標準化されたインターフェースを供給する。
MLID(マルチリンクインターフェースドライバ)は、ネ
ットワーク接続の最下層である専用コード(ハードウエ
ア補助モジュール、又はHSM)の一部と共にリンクす
る、Novellコード(メディア補助モジュール、又はMS
M)の一部である。また、LSL(リンク補助層)は、下層
のMLIDとその上層にあるいくつかのプロトコルスタック
間のマルチプレクサとして機能する、Novellコードの一
部である。CNETXは、ローカルDOSのような機能呼び出し
を、OPEN、READ、WRITE、CLOSEのようなファイル機能を
提供するネットワーク機能呼び出しへ変える、専用コー
ドである。
【0035】PRETASKモジュールは、以下に示すよう
に、いかなるフレームタイプが上記の様々なプロトコル
スタックのどれに関連するかを識別する。MEB101は
複数のプロトコルスタックを補助するため、このモジュ
ールはNEB101が作動しているかぎり存在する。Novel
lのIPX/SPXプロトコルスタックは、フラッシュEPROM1
74に含まれており、SAPつまりサービスアドバタイジ
ングプロトコルによって補助されている。SAPは、アク
ティブ及び非アクティブなネットワーク要素をリストに
するファイルサーバーのバインダリー(bindery)へ、
機器がそれ自身を登録できるようにした、Novellのコン
セプトである。プリントサーバーはある特殊なバインダ
リー項目であるため、SAPはNEB101をCPSOCKETを介し
て登録し、また、NEB101がプリントサーバーとして
構成されている場合には、SAPはプリントサーバーをNet
Wareバインダリーにも登録する。CPRINTSERVERは、Nove
llプリントサーバーアプリケーションが専用に実行す
る。このモジュールは自己発生印刷バナー(banner)
と、ユーザーへの完了及び例外状態の通知と、印刷デー
タ及び情報コマンドのプリンターエンジンへの送信とを
提供する。これは、CPRINTSERVERがローカルプリンター
(つまり、NEB101が内蔵されているプリンター10
2)の作動のみを行い、遠隔地のRPRINTERを動かすこと
ができないという点で、Novellのプリントサーバーとは
異なる。このプログラムは、印刷ジョブを継続するため
の印刷データチャンネルを所有している。RPRINTERは、
NovellのRPRINTERプリントアプリケーションが専用実行
する。このモジュールは、Novellプリントサーバーアプ
リケーションによってデータをLAN100の何処かへ送
信する、従属アプリケーションである。
【0036】TCP/IPプロトコルスタックは、その内部に
ユーザーデータグラムプロトコル(UDP)と、逆アドレ
ス分解プロトコル(RARP)と、BootP補助とを持つ。INT
ERRUPTは、TCP/IPタスクの為の割り込み取り扱い部であ
り、TIMERTICKはUNIXのTCP/IPネットワークタスクのた
めのタイマーチック(timer tick)である。LPRINTSERV
ERはTCP/IPプリントサーバーアプリケーションであり、
印刷ジョブを継続するための印刷データチャンネルを所
有している。
【0037】CPSOCKETプログラムは、全てのプロトコル
スタックのために動作する。プログラムは接続リクエス
トや、データダウンロードリクエストや、遠隔地の装置
からのサービスのリクエスト等に応答し、中間処理通信
を介して他のタスクへ状態及び制御を供給する。典型的
なCPSOCKETは、NEB101とプリンター102間の状態
及び制御チャンネルを持っているため、状態チャンネル
を介してプリンター状態を得る機能を持つのは、このタ
スクだけである。CPSOCKETは、Novellオリエントの状態
と制御機器(CPNET)間、又はUNIXオリエントの状態と
制御機器(cpnet)間の、ネットワーク接続及びパケッ
トの内容を取り扱う。
【0038】MONITORは、タスクの生成と、タスクの終
了と、マイクロプロセッサーディスパッチ(microproce
ssor dispatch)とを行う、専用マルチタスクモニター
である。MONITOR はまた、メモリ管理サブモジュールME
MGET及びMEMFREEを持つ。RESIDENTは、NVRAM読み込み及
び書き込み、FLASHコード、ROMベースのデバッガー、ハ
ードウエアタイマーチック、及び他の基本的な機能など
の、一般的なサービスを提供する、ルーチンのブロック
である。POSTは起動時の自己診断モジュールで、電源供
給開始時のNEBハードウエア及びソフトウエアの保全度
を確認する。
【0039】フラッシュEPROM174は、ネットワーク
ボードや、ハードウエア構成や、ボード修正番号などに
独特の、メディアアクセス制御(MAC)アドレスのよう
なボード不変の情報及びソフトウエアバージョン番号の
ような可変情報を記憶する、ネットワーク識別ファイル
(NIF)ブロックも記憶する。NIFブロックの情報は、フ
ラッシュEPROM174が互換性の無いイメージデータで
再プログラムされていないことを確認する為に使用され
る。このNIFブロックは、後で図13を参照して詳しく
説明する。
【0040】NEB101とプリンターインターフェース
回路150間の全ての通信は、32KBの共有SRAM20
0を介して行われる。アービター制御論理回路400
は、好ましくは単一の100ピンASICであり、プリンタ
ーインターフェースマイクロプロセッサー151による
2バイト幅のメモリアクセスと、NEBマイクロプロセッ
サー173による1バイト幅のメモリアクセスとの調整
を行う。なお、それぞれのメモリアクセスは、完全に独
立したものである。
【0041】一般的に言えば、マイクロプロセッサー1
73の8ビットデータバスが搭載されたNEB101は、
バス制御論理回路410と通信し、また、マイクロプロ
セッサー151の32ビットデータバスが搭載されたプ
リンターインターフェースカード150はバス制御論理
回路420と通信する。それぞれのバスからのメモリア
クセスは、共有メモリアービター430を経由しておこ
なわれ、この共有メモリアービター430はどちらのバ
スが優先されるべきかを判断し(後で説明するアービト
レーション技術による)、優先権のあるバスがSRAMイン
ターフェース440を介してSRAM200へアクセスする
ことを許可する。割り込み制御レジスタ450は共有メ
モリアービター430を介してアクセスされ、一方のマ
イクロプロセッサーが他方のマイクロプロセッサーへ割
り込めるようにする。 [NEBの機能性]大まかに言えば、NEB101は、プリン
ター102をLAN100へつなぎ、プリンター102を
応答可能でインタラクティブなネットワークメンバーに
する、通話型ネットワーク回路ボードである。NEB10
1は、印刷ジョブ情報及び状態リクエストをLAN100
から受信し、印刷データ及び状態コマンドを実行するた
めにプリンター102へ送信し、状態情報をプリンター
102から受信し、更に、その状態情報をLAN100へ
返す。
【0042】従って、NEB101はRPRINTER遠隔プリン
ターサービス及びPSERVERプリントサーバー機能を実行
するだけでなく、様々な種類の情報及び制御特性をネッ
トワークのメンバーに提供することができる。NEB10
1を介して、ネットワークメンバーは、印刷ジョブの数
や、1つのジョブ当たりのページ数、1分当たりのペー
ジ数、1つのジョブ当たりの時間、1日当たりの全ペー
ジ数、1日当たりのジョブの数など、NEBに記憶されて
いる非常に多くの状態情報にアクセスすることができ
る。更に、例えば、ネットワークに接続されたPCから
プリンターのフロントパネル機能を試験するなど、ネッ
トワークからプリンター102へ、多量の制御情報が供
給されることもある。
【0043】ネットワークトラフィック(network traf
fic)の全ては、トランシーバー171を介してネット
ワーク制御部510とインターフェースするBNCコネク
タ302もしくは、ネットワーク制御部510に直接イ
ンターフェースするRJ−45コネクタ301のどちら
かを介して、NEB101に入出力される。ユーザーがス
イッチの位置を動かす必要性を省くために、NEB101
は、上記2つのうちのどちらのコネクタがネットワーク
につながれているかを自動的に検出する、ハードウエア
及びソフトウエアを含む。ネットワーク通信は、選択さ
れたコネクタとボードの残りとの間で、ネットワーク制
御部510と、選択されたコネクタ上のネットワークト
ラフィックとマイクロプロセッサー173のデータバス
との間のデータの流れを制御する、NEB制御論理回路5
20とを用いて行われる。
【0044】マイクロプロセッサー173によって実行
される全てのソフトウエアモジュールは、フラッシュEP
ROM174に格納されている。タイマーチックやNVRAM読
み込み等のように、常に必要とされる下層モジュールの
いくつかはEPROM174から直接実行することもできる
が、ほとんどの部分について、マイクロプロセッサー1
73はソフトウエアモジュールをフラッシュEPROM17
4から直接実行することはせず、これら必要なモジュー
ルをDRAMから実行する為に、選択的にDRAM175へロー
ドする。こうすることにより、NEB101の構成を柔軟
性のあるものにするために、DRAM175から実行するよ
うにフラッシュEPROM174からリトリーブされるこれ
ら特定のモジュールを選択することができる。
【0045】例えば、多くの通信プロトコルタイプがLA
N100でブロードキャストされているため、NEB101
はそのフラッシュEPROM174中に、多重プロトコルを
補助するためのソフトウエアモジュールを持つ。NEB1
01は、使用されているプロトコルのタイプを判定する
ために、異種ネットワーク上のネットワークトラフィッ
クを観察し、判定したプロトコルに対応するプロトコル
スタックをDRAM175へロードする。
【0046】新しいプロトコルスタックを含む可能性の
ある新しいイメージデータでフラッシュEPROM174を
再プログラムすることは、DRAM175を介しても行われ
る。ネットワーク又はシリアルポートコネクタ600か
ら受信されるコマンドなどの、再プログラムの為の新し
いイメージデータ及びコマンドが受信されると、ソフト
ウエア再プログラムモジュールがEPROM174からDRAM
175へロードされる。マイクロプロセッサー173
は、このモジュールをDRAM175から実行し、新しいフ
ァームウエアイメージデータがNEB101の構成と互換
性があることを確認し、互換性があると判断すると、EP
ROM174を以下に詳しく示すように、再プログラムす
る。
【0047】DRAM175からロードされたプロトコルス
タックを実行するマイクロプロセッサー173は、その
プロトコルを使用している他のLANメンバーと、ネット
ワーク通信を行うことができる。印刷ジョブデータはネ
ットワーク制御部510によって受信され、NEB制御論
理回路520を介してマイクロプロセッサー173へ送
られる。マイクロプロセッサー173は、その印刷ジョ
ブデータを共有メモリSRAM200へ書き込み、プリンタ
ーマイクロプロセッサー151はその共有メモリSRAM2
00からデータを読み出し、そのデータに従ってプリン
ターエンジン160を操作する。更に、マイクロプロセ
ッサー173及び151は、それぞれお互いのマイクロ
プロセッサーの共有メモリの他の部分に、メッセージデ
ータを書き込むことができる。
【0048】上記に説明したとおり、共有SRAM200へ
のアクセスは、調停優先順位技術に基づいて、アービタ
ー制御論理回路400によって調停される。アービター
制御論理回路400は、マイクロプロセッサーが共有SR
AMに先着順にアクセスすることを許可し、また、高優先
プロセッサーがアクセスを行っている間に待機状態を低
優先プロセッサーに示すことにより、2つのマイクロプ
ロセッサーの同時アクセスを互いにインターリーブす
る。2つのマイクロプロセッサーが全く同時にアクセス
した場合には、NEB101のマイクロプロセッサー17
3が任意に優先される。
【0049】共有SRAM200の大部分はリングバッファ
として構成され、NEBマイクロプロセッサー173はそ
こに印刷データを書き込み、プリンターインターフェー
スマイクロプロセッサー151はそこから印刷データを
読み込む。それぞれのプロセッサーがデータブロックを
書き込み又は読み込む度に、プロセッサーがアクセスす
べき次の場所を示すために、SRAM200の他の場所に記
憶されている「プット(put)」ポインターまたは「ゲ
ット(get)」ポインタをそれぞれ更新する。
【0050】この構成により、プットポインタ及びゲッ
トポインタをお互いに比較することにより、書き込みプ
ロセッサーは書き込み可能な領域がメモリ中にあるか否
かを判断することができ、読み込みプロセッサーは読み
込むべき残りのデータが存在しているか否かを判断する
ことができる。この2つのプロセッサー間の共有メモリ
の競合の回数を減らすために、NEBマイクロプロセッサ
ー173は所定の時間、メモリへの書き込みを停止し
(これに伴い、読み込み及びポインターの更新を停止す
る)、プリンターインターフェースマイクロプロセッサ
ー151が追い付くまで、プロセッサー151が単独で
メモリにアクセスするようにする。この動作は後で詳し
く説明する。
【0051】シリアルポートコネクタ600は、NEB1
01を外部コンピューターからデバッグできるようにす
るために設置される。シリアルポートコネクタ600
は、NEB制御論理回路520につながれており、シリア
ルポートコネクタ600のデータ受信ピン601からシ
リアルデータを受け付け、マイクロプロセッサー173
とビット単位でシリアルデータを通信する。また、シリ
アルデータの最初のビットが、そのマイクロプロセッサ
ー173のマスク不可能な割り込みを作動させるよう
に、マイクロプロセッサー173はNEB制御論理回路5
20を構成する。そして、マイクロプロセッサー173
はシリアルデータのデータビットを8ビットのワードに
組み立てる。更に、NEB制御論理回路520はマイクロ
プロセッサー173のデータバスを監視し、そのデータ
バス上に存在するデータのシリアル列を、シリアルポー
トコネクタ600のデータ送信ピン602へ渡す。この
動作は後に詳しく説明する。 [ネットワークハードウエア接続の自動検出]ネットワ
ークインターフェースカードは、一般的に、ネットワー
クケーブルをLANへ接続する為の、数種の異なるタイプ
の物理的接続手段を提供する。例えばNEB101は、1
0BASE−2同軸ケーブルをつなぐことのできるBNCコネ
クタ302及び、10BASE-T非シールドツイストペア
(UTP)線をつなぐことのできるRJ−45コネクタ3
01を有する。シールドツイストペア(STP)線の為のI
BMデータコネクタや光ファイバーケーブルの為のST光
ファイバーコネクタ等、他の物理的接続も可能である。
【0052】典型的には、ネットワークインターフェー
スカードが数個のコネクタの一つを介してLANに接続さ
れたときは、LANとの接続を設定又は変更するユーザー
は、データが適切なコネクタを通してやり取りされるよ
うに、LANケーブルを適切なコネクタに挿入しなければ
ならないだけでなく、ハードスイッチ、又は「ジャンパ
ー(jumpers)」の位置を物理的に変更しなければなら
ない。
【0053】しかし、ユーザーの手違いによって、ジャ
ンパーを変更することを忘れる可能性や、設定された接
続にそぐわない状態にジャンパーを変えてしまう可能性
がある。そのような場合、言うまでもなく、カードはネ
ットワークと全く会話することができない。これらの問
題を弁別して訂正するために、時間や、人力や、コンピ
ュータ資源を無駄に費やす結果となる。どのコネクタが
LANに接続されているかを自動的に感知し、そのコネク
タを通してデータをやり取りするネットワークインター
フェースカードは、接続の設定及び/又は変更処理を大
幅に能率的にする。
【0054】本発明は、テストによって上記のようにハ
ードウエアを自動検出し、コネクターそれぞれのネット
ワークへの接続性を調べ、そして一つのコネクターを選
択することにより、ネットワーク通信がその選択された
コネクタとボード上のプロセッサ間で行われるようにす
る。概略としては、ネットワーク制御部は、第1のコネ
クタがネットワークに電気的に接続されていることを検
出する第1検出部と、第2のコネクタが不適切に終端し
ていることを示す「ジャバー(jabber)」ビットを記憶
する、プロセッサーが読み出すことのできる第1レジス
ターとを含む。やはりプロセッサーが読み出すことので
きる第2レジスターは、前記第1検出部が第1のコネク
タがネットワークに電気的に接続されていることを検出
したことを示す、「リンク良好(good-link)」ビット
を記憶する。また、プロセッサーが書き込むことのでき
る制御レジスタは、選択ビットを記憶する。この制御レ
ジスタは、記憶されている選択ビットに応じて選択信号
を出力する。
【0055】マイクロプロセッサーはソフトウエアによ
って制御される選択処理を次の方法によって実行する。
即ち、(1)第1のコネクタ(ここではRJ−45、コ
ネクタ301)を選択する選択信号を出力させるよう
に、制御レジスタに選択ビットを書き込み、(2)リン
ク良好ビットを第2レジスタから読み出し、(3)リン
ク良好ビットがネットワークへの電気的な接続を示す時
に選択ビットの状態を保持し、(4)リンク良好ビット
がネットワークへの電気的な接続を示さない時に、第2
のコネクタ(ここではUTP、コネクタ302)を選択す
る選択信号を出力させるように、制御レジスタに選択ビ
ットを書き込み、(5)ジャバービットを第1レジスタ
から読み込み、(6)ジャバービットが第2コネクタの
電気的に不適切な終端であることを示さない場合に、選
択ビットの状態を保持し、(7)ジャバービットが第2
コネクタが電気的に不適切な終端状態にあることを示す
場合に、選択処理を繰り返す。この手順により、それは
ボードの電源が投入されてしばらくたった後に、選択処
理を行なうことができる。一度選択されると、ボードに
電力が供給されている間中保持される。
【0056】具体的には、図8を参照して説明すると、
BNCコネクタ302(トランシーバー171を介して)
と、RJ−45コネクタ301は、それぞれネットワー
ク制御部510のセレクタ511につながれている。ネ
ットワークトラフィックは、セレクタ511の状態に応
じて、バス181及びBNCコネクタ302又はRJ−4
5コネクタ301を介して、マイクロプロセッサー17
3に入出力される。セレクタ511の位置は、制御レジ
スタ521の出力によって判断される。
【0057】RJ−45コネクタ301がLANに接続す
ると、電流がコネクターに供給される。従って、ネット
ワーク制御部510は、RJ−45コネクタ301が電
気的にLAN100に接続されていることをRJ−45コ
ネクタ301が判断するところを監視する、リンク良好
検出部512を含む。83902ネットワーク制御部に
おいては、リンク良好検出部512は、開放ドレイン型
(open drain)のN−チャンネルデバイスとして構成さ
れている。電流がRJ−45コネクタ301で検出され
ると、リンク良好検出部512からの出力は低くなり、
状態LED305が点灯することにより、電気的に接続し
ていることを示す。反対に、RJ−45コネクタ301
に電流がない場合、リンク良好検出部512からの出力
は高くなり、状態LED305は消灯する。リンク良好ビ
ットは、NEB制御論理回路520のリンク良好レジスタ
522にも入力される。これにより、マイクロプロセッ
サー173はリンク良好信号の状態を読み込めるように
なる。
【0058】BNCコネクタ302などのBNCコネクタは、
例えば、LANにT−タイプの同軸アダプタを用いてつなが
れたときなど、コネクタが適切に終端するまでジャバー
し続ける。ネットワーク制御部510は、当業者に知ら
れる方法でBNCコネクタ302でジャバリングがあるか
どうかを検出するジャバー検出回路513を含み、その
検出結果をジャバーレジスター514に書き込む。従っ
て、ジャバーレジスタ514は、BNCコネクタ302が
適切に終了したか否かを示すビットを含む。そして、こ
のジャバービットはソフトウエアによって読み込まれ
る。
【0059】マイクロプロセッサー173は、フラッシ
ュEPROM174に格納されているソフトウエアモジュー
ルを実行することによって、セレクタ511の状態を制
御する。制御の方法は、以下に図9のフローチャートを
参照にして説明する。NEB101が投入された後(ステ
ップS900)、マイクロプロセッサー173は、0を
制御レジスタ521にバス181を介して書き込むこと
により、セレクタ511をRJ−45の位置へ設定する
(ステップS901)。プログラムはリンク良好レジス
タ522の状態を読み込み(ステップS902)、そし
て、リンク良好レジスタ522に記憶されたビットが低
レベルならば(電流を示唆する)、プログラムはRJ−
45コネクタ301がLAN100に接続され、処理を抜
けて、セレクタ511をRJ−45の位置に残しておく
(ステップS903、S904)。
【0060】リンク良好検出部512を構成するN−チ
ャンネルデバイスのスイッチングにおいて、固有の遅れ
があるために、電気的接続を検出するための充分な時間
をリンク良好検出部512に与えることが必要である。
従って、リンク良好レジスタ522に記憶されているビ
ットが高レベルならば(電気的接続がないことを示
す)、プログラムはリンク良好レジスタ522を繰り返
し読み込み、読み出した内のどれかが低レベルならば、
処理を抜けて、セレクタをRJ−45の位置に留めてお
く(ステップS905−S906−S902)。しか
し、読み込みを500回繰り返してもリンク良好レジス
タ522に記憶されているビットが高レベルである場合
は、プログラムは1を制御レジスタ521へ書き込むこ
とによって、セレクタ511をBNCの側に設定する(ス
テップS907)。
【0061】そして、プログラムはジャバーレジスタ5
14を読み込む(ステップS908)。ジャバーレジス
タ514の状態が低レベルならば(BNCコネクタ302
が適切に終端し、BNC接続があることを示す)、プログ
ラムは処理を抜けて、セレクタ511をBNCの側に残し
ておく(ステップS909及びS910)。ジャバービ
ットの状態が高レベルの場合(BNCコネクタ302が不
適切に終端し、LAN100に接続されていないことを示
す)、プログラムはステップS901へ戻り、セレクタ
511をRJ−45の位置へリセットする。そして、R
J−45又はBNC接続が設定されるまで、プログラムは
定期的に再実行される。
【0062】このように、NEB101はBNCコネクタ30
2とRJ−45コネクタ301の間を断続し続け、特定
のコネクタがLAN100に接続されたことをトグルする
度に確認する。この構成により、電源投入時(及び接続
がなされるまで)に、NEB101は、操作者が実際にス
イッチを変えることを必要とせずに、そのBNCコネクタ
302又はRJ−45コネクタ301がネットワークに
接続されたか否かを判断することができる。従って、NE
B101が、LAN100につながれていないコネクタを通
してLAN100と通信しようとする可能性がなくなる。
【0063】本実施の形態において、電力が供給されて
いる現サイクル中、選択されたハードウエア接続は保持
される。電力が供給されている現サイクル中において選
択がなされた後に、ハードウエア接続が有効でなくなっ
たときを感知し、選択処理を繰り返し、コネクタを変更
することを許可するソフトウエアを実行することは可能
である。これにより、一つの接続から他の接続へのダイ
ナミックな切り換えを可能にする。 [ネットワークプロトコルセンサー]マルチプロトコル
システムにおける適切な操作を確実にし、またネットワ
ーク上で使用されるプロトコル及びフレームタイプに関
する不適切な前提を作らせないようにするために、NEB
101は、ネットワークトラフィックで使用されるフレ
ームタイプを決定し、NEB101が使用することのでき
る数種の異なるプロトコルのうちのある一つにこれらの
フレームタイプを関連させるための自動プロトコル判断
を使用する。特に、フラッシュEPROM174に格納され
ているPRETASKモジュールの使用を通じて、NEBマイクロ
プロセッサー173は、どのフレームタイプがネットワ
ークトラフィックのために使用されているかを判断し、
そのフレームタイプを数種の異なるプロトコルの一つに
関連づけ、そのプロトコル及び検出されたフレームタイ
プを使用したネットワーク通信を続けるために、フラッ
シュEPROM174からプロトコルスタック(IPX/SPX又は
TCP/IP等)をロードすることができる。
【0064】図10乃至図14は、この処理を説明する
為の図である。図10は、フラッシュEPROM174にロ
ードされたPRETASKソフトウエアモジュールに基づい
て、NEBマイクロプロセッサー173によって実行され
る処理ステップを示すフローチャートである。PRETASK
は、異なってはいるが、PRESCANソフトウエアモジュー
ルに似ている。PRESCANソフトウエアモジュールは、審
査中の特許出願番号第07/978,409の、「ロー
カルエリアネットワーク上で扱われるデータパケットの
形式を適応判断する方法及び装置(Method And Apparat
us For Adaptively Determining The Format Of Data P
ackets Carried On A Local Area Network)」に示され
ている通りである。
【0065】ステップS1001で、マイクロプロセッ
サー173はMLID(マルチリンクインターフェースドラ
イバ)をフラッシュEPROM174からDRAM175へロー
ドし、MLIDを実行開始する。上記のとおり、MLIDはネッ
トワークと通信する、最下層ソフトウエアである。した
がって、MLIDはネットワーク線上で扱われるネットワー
クフレームパケットへの直接のソフトウエアインターフ
ェースとして振る舞う。
【0066】ステップS1002において、マイクロプ
ロセッサー173はMLIDの上層にLSL(リンク補助層)
をロードし、LSLを実行開始する。LSLは、下層のMLIDと
その上層にロードされる様々なプロトコルスタックとの
間の、マルチプレクサとして機能する。特に、LSLは、
ネットワーク上でフレームパケットを運ぶ、様々なフレ
ームタイプの登録を受け入れる。従って、例えばEthern
et環境では、LSLは802.2、802.3、Ethernet_
II、Ethernet_Snap等の登録を受け入れ、またToken-rin
g環境では、LSLは802.5、及びToken_Ring_Snapの
登録を受け入れる。フレームタイプをLSLに登録するこ
とにより、LSLより上層のソフトウエアモジュールは登
録されたフレームタイプに適合する全てのフレームパケ
ットをモジュールに供給するように、LSLに命令する。
【0067】ステップS1003において、マイクロプ
ロセッサー173はLSLより上層にPRETASKをロードす
る。上記のとおり、PRETASKは、NEB101が通信を受け
入れられた様々なプロトコルに、どのフレームタイプが
関連するかを識別する。ステップS1004で、LSLか
ら受信するために、PRETASKはMLIDにサポートされた全
てのフレームタイプを登録する。従って、本実施の形態
におけるEthernet環境では、PRETASKは802.2、8
02.3、Ethernet_II、Ethernet_SnapをLSLに登録
し、これにより、登録されたフレームパケットに適合す
る全てのフレームパケットをPRETASKに供給するよう
に、LSLに命令する。
【0068】処理はステップS1005へ進み、MLIDと
LSLはネットワークのトラフィックを監視する。特に、
ステップS1005では、ネットワークはブロードキャ
ストトラフィック手段を監視して、トラフィックの行き
先が決定されていない(つまり、行き先はどこでもよ
い)ことを観察する。通常、ブロードキャストトラフィ
ックは、行き先のMACアドレス、例えば16進法のFが
12並んでいるアドレスなどのグローバルな特定によっ
て識別される。LANブロードキャストトラフィックが検
出されるまでは、PRETASKは何もしない。
【0069】PRETASKを実行中のこの時点では、様々な
ソフトウエアモジュールの関係は図11に示すとおりで
ある。図から分かるように、それぞれが異なるフレーム
タイプを用いる異なるプロトコルを起動している機器1
82、183、184、及び185などの複数のネット
ワーク機器全てが、一つのLAN100に接続する可能性
がある。図11において、機器182はNovelタイプの
機器で802.2フレームタイプを使用するIPX/SPXプ
ロトコルを起動しており、機器183はUNIXタイプのネ
ットワーク機器でEthernet_IIフレームタイプを使用す
るTCP/IPプロトコルを起動しており、機器184はMaci
ntoshタイプの機器でEthernet_Snapフレームタイプを使
用するEtherTalkプロトコルを起動しており、機器18
5は不明のフレームで、802.3フレームタイプを使
用するプロトコル機器である。言うまでもなく、図11
に示す組み合わせは図示のためだけのものであり、これ
に限られるものではなく、例えば、NovellのIPX/SPXが
802.3フレームタイプ又は他のフレームタイプを使
用することも可能である。ただし、それぞれのプロトコ
ルが唯一のフレームタイプにのみ、関連づけられなけれ
ばならない。
【0070】NEB101はまたLAN100に接続されてお
り、MLID186の上層にロードされたLSL187を含
む。PRETASK188は、LAN100上にブロードキャスト
される異なるフレームタイプをそれぞれ登録したものと
して示されている。従って、図11に示すように、PRET
ASK188は、802.2を189に、Ethernet_IIを1
90に、Ethernet_Snapを191に、そして802.3
を192に登録している。
【0071】LANブロードキャストトラフィックが検出
されると、ステップS1006へ進み、LSLはPRETASKへ
フレームパケットを供給する。ステップS1007で、
そのフレームパケットで使用されているプロトコルを識
別するために、PRETASKはフレームのプロトコルのヘッ
ダを復号する。このヘッダへのオフセットは、プロトコ
ルが使用しているフレームタイプによって異なる。下記
のテーブルは16進法による値と、異なるプロトコルを
識別するためのプロトコルのヘッダの数例を含む。 16進法値 プロトコルタイプ 0800 IP 0806 ARP 809B EtherTalk 8137 IPX/SPX 図12はこの手順を示す。図12から分かるように、ネ
ットワーク機器182は、802.2フレームタイプを
使用するブロードキャストフレームパケットを発する。
図11の189にPRETASKはLSLに802.2を登録して
いるため、LSLはそのフレームパケットをPRETASKに提供
する。そのフレームタイプで使用されているプロトコル
を判定するために、PRETASKは上記のテーブルを使用し
てそのフレームのプロトコルのヘッダーを復号する。
【0072】図10のステップS1008において、PR
ETASKは、LSLから受信したばかりのフレームタイプの登
録を取り消す。従って、図12の189aに示すとお
り、PRETASKは802.2の登録を取り消す。ステップ
S1008では、全ての場合に登録を取り消す場合を示
しているが、登録を取り消さないほうがより好ましい場
合もある。特に、それぞれ異なるプロトコルがそれに関
して、受け入れ可能なフレームタイプのリストを持つ場
合である。IPX/SPX及びTCP/ITの受け入れ可能なフレー
ムタイプの例を以下に示す。 IPX/SPX TCP/IP Ethernet_II Ethernet_II Ethernet_Snap Ethernet_Snap 802.2 802.3上記のリストから、2つのフレームタイプ
(Ethernet_IIとEthernet_Snap)が、異なるプロトコル
で使用可能であることが分かる。なお、同じフレームタ
イプを同じLAN上の異なるプロトコルで使用してもよ
い。従って、好ましいモードでは、ステップS1006
でPRETASKによって受信されたフレームタイプがLSLに登
録されていないプロトコルで使用可能な場合は、ステッ
プS1008の登録取消は行われない(後に示すステッ
プS1010を参照)。後で受信されたプロトコルをロ
ードするために、先に登録されたものと異なる、後で受
信されたプロトコルのフレームタイプをPRETASKによっ
て適切に検出し、処理することができるため、この好ま
しいモードでは、LANで使用することのできる全てのプ
ロトコルの検索及び操作をすることができる。
【0073】ステップS1009において、PRETASK
は、ステップS1007で復号したプロトコルに対応す
るプロトコルスタックをロードする。図12の例では、
IPX/SPXプロトコルが復号されたので、PRETASKはフラッ
シュEPROM174からIPX/SPXプロトコルスタックをロー
ドする。ロードする前に、プロトコルスタックは、LSL
から受信したばかりのフレームタイプ、ここでは80
2.2で初期化される。
【0074】ステップS1010では、新たにロードさ
れたプロトコルスタックは、例えば図13に示すよう
に、LSLに登録される。図に示すように、IPX/SPXプロト
コルスタックは802.2をLSLに登録する。上記のよ
うに登録することによって、登録されたフレームタイプ
(ここでは802.2)に適合する全てのフレームパケ
ットを新たにロードされたプロトコルスタックに提供す
るように、IPX/SPXは、LSLに通知する。
【0075】そして、ブロードキャストトラフィックの
ために引き続きネットワークを観察するために、PRETAS
KはステップS1005へ戻る。LSLが、PRETASKによっ
て登録された残りのフレームタイプに適合するフレーム
パケットを見つけると、LSLは、図10に示す処理を行
うためにこれらのフレームタイプをPRETASKに供給す
る。このように、例えばTCP/IPプロトコルに関連するフ
レームタイプのような追加フレームタイプが見つかる度
に、フラッシュEPROM174から適切なプロトコルスタ
ックがロードされるように、これらのフレームはPRETAS
Kによって処理される。
【0076】また、図14に示すように、プロトコルス
タックは既にロードされているため、ネットワーク上で
の操作を開始する。特に、PRETASKが完全に受け身で、
ネットワーク通信をブロードキャストしないのに対し、
IPX/SPXはそれに関するSAPリクエストをブロードキャス
トする。PRETASKによってロードされた他のプロトコル
タスクは、それらに関連するリクエストをブロードキャ
ストしてもよい。例えば、TCP/IPプロトコルスタックが
ロードされた場合、最も近くのネットワークサーバーか
らそのアドレスを得るために、RARPSをブロードキャス
トする。 [スマートフラッシュ]ローカルエリアネットワークが
より複雑になるにつれて、NEB101のようなネットワ
ークインターフェースカードを、最新の技術を用いてグ
レードアップする必要性が出てきた。従って、NEB10
1は操作用ソフトウエアに組み込まれているため、その
ソフトウエアを後でLAN100から再プログラムするこ
とができる。例えば、ネットワーク統括者は、統括者の
PC103から新しいデータをダウンロードすることに
よって、フラッシュEPROM174のROMファームウエアイ
メージデータを遠隔操作で変更することができる。その
新しいデータは、例えば、パッチコードと、製造テスト
ルーチンと、ファームウエア全体の更新と、異なる言語
バージョンとを含む。
【0077】典型的なPCは、2つ以上のLANに接続さ
れている。例えば、図15に示すように、PC103は
EthernetのLANであるLAN100と、Token-ringLANであ
るLAN193とに接続しており、実際に両ネットワーク
のネットワーク統括者用PCとして機能してもよい。そ
れぞれのLANはまた、独立したNEBをそれぞれ内蔵する複
数のプリンターに接続されていてもよい。また、他の再
プログラム可能な機器を、これらのLANの一方又は両方
に接続することもできる。従って、ネットワーク統括者
が潜在的に再プログラムすることができる、複数のNEB
や他の機器がある。
【0078】ある特定のNEBを再プログラムする場合、
ネットワーク統括者はPC103から、ネットワークに
接続されている全てのネットワーク機器から適切なフラ
ッシュターゲットを識別するために、そのネットワーク
のバインダリーをスキャンするためのプログラムを稼働
する。適するフラッシュターゲットは、フラッシュ機能
を持ち、Ethernet機器及びToken-ring機器を含む、NEB
のような機器を全て含む。ネットワーク統括者は、再プ
ログラムのために機器の一つを選択し、その機器とのネ
ットワーク通信を確立する。そしてボード上のフラッシ
ュEPROMは、新しいイメージデータでそれ自身を再プロ
グラムする。
【0079】ネットワーク統括者が、ネットワークに接
続されたいくつかの再プログラム可能ボードをそれぞれ
含む、2つ以上のネットワークを統括している場合があ
るため、統括者は適切なイメージデータが目的のNEBに
送られたことを確認しなければならない。従って、ネッ
トワーク統括者が、NEB101上のフラッシュEPROM17
4を再プログラムしたい場合(NEBはEthernet LANに接
続されている)、送信するイメージデータがEthernetイ
メージデータであることを確認し、NEB101の他の機
能と互換性があることを確認しなければならない。互換
性がないイメージデータをダウンロードした結果は、破
壊的なものでありうる。例えば、ネットワーク統括者が
誤ってToken-ringイメージデータをNEB101にダウン
ロードし、その後にNEB101がフラッシュEPROM174
をそのイメージデータで再プログラムした場合、フラッ
シュEPROM174はEthernet LAN100上で通信を行う
ことが全くできなくなる。これはつまり、NEB101がL
AN100から再プログラムすることさえできないことを
意味する。Ethernet LANに関しては全く「役立たず」の
ボードとなるわけである。例えば、ホストインターフェ
ース構成(NEBとそれが内蔵されている周辺機器間のイ
ンターフェースのタイプ)や、製品構成(NEBのボード
のタイプ)や、プロセッサー構成(ボード上のプロセッ
サーのタイプ及び速度)や、メモリ構成(ボードメモリ
上の様々な部品のサイズ及び消去性)における非互換性
は、問題となる可能性がある。従って、ある製品の前世
代のものがある場合、新しい世代のものでしか動かない
フラッシングソフトウエアはやはり「役立たず」のボー
ドとなってしまうのである。
【0080】互換性のないイメージデータがダウンロー
ドされた場合にこのような悲惨な結果を招かないように
するために、NEB101は、実際に再プログラムが行わ
れる前に、ダウンロードされたイメージデータが互換性
のあるものであるかを確認するソフトウエアコードを含
む。具体的には、NEB101のフラッシュEPROM174
は、NEB101のための構成情報を含むネットワーク情
報ファイル(NIF)ブロックを含む、現プログラムイメ
ージデータと、フラッシュEPROM174を再プログラム
するためのソフトウエアモジュールとを記憶する。マイ
クロプロセッサー173はネットワーク通信を送受信
し、そして新しいプログラムイメージデータをネットワ
ークから受信した時に、マイクロプロセッサー173は
その新しいプログラムイメージデータをDRAM175へダ
ウンロードし、その新しいプログラムイメージデータが
NIFブロック中の構成情報と互換性があることを確認
し、そして、互換性が確認された場合に限ってフラッシ
ュEPROM174を再プログラムする。
【0081】更に詳しくは、NIFブロックは、恒常的な
アダプタ特有の構成情報を含み、それぞれの個別のNEB
に特有のものである。一例としては、NIFブロックはフ
ラッシュEPROM413中のメモリスペースのうち32バ
イトを占め、それぞれ8バイトの4バンクに分けられ
る。図16に示すように、NIFブロックは、MACアドレス
情報バンクと、ボードバージョン及び識別情報バンク
と、構成要素識別情報バンクと、一般情報バンクとを含
む。
【0082】MACアドレス情報バンクは、その名が示す
とおり、ボードに特有のMACアドレスを記憶する。ボー
ドバージョン及び識別情報バンクは、4つのバンクに更
に分割される。NEB以外のネットワークインターフェー
スカードをLANにつなぐことも可能なため、製品カテゴ
リーバンクはLANにつながれた製品のタイプを識別し、
そしてボード修正バンクは製品の修正番号を識別する。
【0083】ネットワーク物理的媒体バンクは更に2つ
のバンクに分割される。これらは、ボードが使用されて
いる物理的媒体(例えば、Ethernet、Token-ring、FDDI
など)を識別する物理的ネットワークバンクと、ボード
が補助する物理的コネクタ(例えば、Ethernetネットワ
ークの場合は10baseTと、10base2と、10base
5、そしてToken-ringの場合はUTP及びSTP)のタイプを
識別する補助接続バンクである。ホストインターフェー
ス方法バンクでは、ボードを内蔵する周辺機器(NEB1
01の場合は、プリンター102等)へのインターフェ
ースのタイプを識別する。これらのインターフェースタ
イプの例としては、共用RAMや、小型コンピューターシ
ステムインターフェース(SCSI)や、標準パラレルイン
ターフェースや、RS−232Cシリアルインターフェ
ースや、セントロニクスパラレルインターフェース等が
ある。
【0084】構成要素識別情報バンクもまた、いくつか
の更に小さいバンクに分けられている。これらのバンク
は、ボード上のROMや、DRAM及びNVRAMのサイズ及び細か
さと、ROMの消去性を識別する。また、ネットワーク制
御部(Ethernetの場合はDP83902チップ、Token-
ringの場合はTI389C25)及びホスト制御部(調停
された共用RAM、NCR53C90A SCSIコントローラ
ー又はNCR53C80 SCSIコントローラー)が識別
される。CPU識別バンクには、プロセッサーのタイプと
クロックスピードが記憶される。最後に、一般情報バン
クは、ハードウエア修正レベル等、ボードに関する追加
構成属性を識別するための他のデータを記憶する。
【0085】次に図17のフローチャートを参照して説
明する。ネットワーク統括者のPC上のCPFLASHプログ
ラムがバインダリーをスキャンしたときに、NEB101
のフラッシュEPROM174の再プログラミングが開始さ
れ(ステップS1401)、潜在的なフラッシュターゲ
ットのリストを統括者に表示する。統括者はターゲット
を選択し(ステップS1402)、CPFLASHはそのター
ゲットとの通信を確立して、新しいフレームウエアイメ
ージデータをLANへダウンロードし、NEBのDRAM175に
記憶する(ステップS1403)。
【0086】一度新しいイメージデータがDRAM175に
ダウンロードされると、現在実行されているプロトコル
スタックはプログラムされようと(少なくとも潜在的
に)しているので、プログラムされている間はネットワ
ーク通信を行うことができないので、NEBマイクロプロ
セッサー173は、そのプロトコルスタックをインアク
ティブにする(ステップS1404)。マイクロプロセ
ッサー173は次に、現在のNIFブロックをフラッシュE
PROM174からDRAM175にコピーし(ステップS14
05)、ソフトウエア再プログラミングモジュールを実
行する。
【0087】そして、ソフトウエア再プログラミングモ
ジュールは、新しいイメージデータが互換性があること
を確認するために、現イメージデータNIFブロックに記
憶されている情報(DRAM175にコピーされた情報)を
参照して、その情報を新しいフレームウエアイメージNI
Fブロックに記憶されている情報と比較して、イメージ
データが互換性チェックを行う(ステップS140
6)。NIFブロックはNEB101に関する多量の情報を持
っているため、様々なチェックを行うことによってこの
ような互換性を判断することができる。
【0088】最初の互換性チェックは、NIFブロックの
物理的ネットワークバンクに記憶されたデータを参照す
ることによって行う、新しいイメージデータが正しいネ
ットワーク媒体のタイプか否かを判断するためのネット
ワーク媒体構成チェックを含む。同様に、2番目の互換
性チェックは、NIFブロックのホストインターフェース
方法バンクとホストインターフェース制御部バンクに記
憶されたデータと新しいイメージデータとを比較するこ
とによって行う、新しいイメージデータが適切なホスト
(例えば、共有RAM又はSCSI)にインターフェースする
ためのイメージデータであるか否かを判断するためのホ
ストインターフェース構成チェックを含む。
【0089】3番目の互換性チェックは、NIFブロック
の製品カテゴリーバンクとボード修正バンクを参照し、
そのデータを新しいイメージデータと比較することによ
って行われる、新しいイメージデータがEPROMが内蔵さ
れたボードのタイプの為のものであるか否かを判断する
ための製品構成チェックを含む。また、プロセッサー構
成チェックは、新しいイメージデータがボード上のプロ
セッサーと互換性があるか否かを判断するために、NIF
ブロックのCPUバンクを参照することによって行なうこ
とができる。更に、メモリ構成チェックは、新しいイメ
ージデータがボードのメモリと互換性があるか否かを判
断するために、NIFブロックのROMバンク、DRAMバンク、
及び/又はNVRAMバンクに記憶されているデータを新し
いイメージデータと比較することによって行なうことが
できる。NIFブロックに記憶された他の情報を使用する
ことによって、他の互換性チェックを行うこともでき
る。
【0090】新しいイメージデータが互換性が無いと判
断された場合、現プロトコルスタックは再度アクティブ
にされ(ステップS1407、S1408)、LAN10
0を通して、ネットワーク統括者のPC103にエラー
を告げ、互換性が無いイメージデータを用いてNEB10
1を再プログラムする試みがなされたことを知らせる
(ステップS1409)。
【0091】反対に、新しいイメージデータが互換性が
ある場合、ボード特有の情報(MACアドレスやボード修
正番号等)を保持するために、新しいイメージデータの
NIFブロックのボード不変部分が、現イメージデータのN
IFブロックの対応する部分で置き換えられる(ステップ
S1407とS1410)。そしてプログラムは現イメ
ージデータをフラッシュEPROM174から消去し、上記
の処理によってオリジナルのNIFブロックを含んでい
る、DRAM175に記憶された新しいイメージデータでフ
ラッシュEPROM174を再プログラムする。
【0092】この構成により、互換性の無いイメージデ
ータが誤ってLAN100からダウンロードされた場合で
も、マイクロプロセッサー173が、互換性の無いイメ
ージデータでフラッシュEPROM174を再プログラムす
ることがなくなる。そればかりか、ネットワーク統括者
が互換性の無いイメージデータでNEB101を再プログ
ラムしようとした場合、NEB101は、互換性の無いこ
とを知らせるメッセージをネットワーク統括者に送る。
従って、このような人的なエラーに対応する、失敗する
ことのないメジャーが、安価で効率的な方法で供給され
る。 [アービトレーション機器]図18乃至図20は、プリ
ンターインターフェースカード150又はボード上のNE
Bマイクロプロセッサー173からのアクセスリクエス
トに応答した、共有SRAM200のアービトレーションを
説明する図である。
【0093】図18は、プリンターアドレス/データバ
ス(A/Dバス)701と、印刷アドレスラッチイネーブ
ル(ALE)信号702と、プリンターデータイネーブル
(DEN)信号704と、プリンタークロック線705
と、プリンター準備完了信号706とを示す。これらの
信号は全て、プリンターインターフェースコネクタ17
0を介して、プリンターインターフェースカード150
から受信される。具体的には、例えば、A/Dバス701
は、プリンターインターフェースカード150に搭載さ
れたプリンターマイクロプロセッサー151の為のA/D
バスである。プリンターALE信号702は、有効なアド
レス情報がA/Dバス701上で運ばれた時を示す信号で
あり、そして、プリンターDEN信号704は、有効デー
タ情報がA/Dバス701上で運ばれた時を示す信号であ
る。プリンタークロック705はプリンターマイクロプ
ロセッサー151の為の主要クロック信号で、プリンタ
ー準備完了信号706は、それが「偽」である場合に、
メモリアクセスが完了していないことと、メモリアクセ
スが完了するまで続けるように、マイクロプロセッサー
151が待機状態を挿入しなければならないことを示す
信号である。
【0094】また、図15には、NEBアドレス/データ
バス(A/Dバス)711と、NEB ALE信号712と、読み
込み及び書き込み信号(WR及びRD)714と、NEB
クロック715と、NEB準備完了信号716とが示され
ている。NEB A/Dバス711は、マイクロプロセッサー
173のための主要アドレスバスであり、NEB101に
搭載された全ての構成要素のアドレス及びデータ情報を
運ぶ。NEB ALE信号712は、有効なアドレス情報がA/D
バス711上に現われた時を示す信号であり、読み込み
及び書き込み信号714は有効データ情報がA/Dバス7
11上に現われた時を示し、さらに、そのデータを読み
込むか書き込むかを示す信号であり、NEBクロック71
5は水晶発振機172によって供給される主要クロック
信号であり、NEB準備完了信号716は、それが「偽」
である場合に、メモリアクセスがまだ行うことができな
いことと、メモリアクセスを行えるようになるまでマイ
クロプロセッサー173が待機状態を挿入するように、
NEBマイクロプロセッサー173に知らせる信号であ
る。
【0095】上記のとおり、プリンターマイクロプロセ
ッサー151とNEBマイクロプロセッサー173は、共
有SRAM200を介して通信する。共有SRAM200へのア
クセスリクエストは、プリンターマイクロプロセッサー
151とNEBマイクロプロセッサー173によって、A/D
バス701及び711上にそれぞれ発行される。そして
上記のとおり、アービター制御論理回路400によって
調停される。更に詳しくは、図6を参照して説明したと
おり、アービター制御論理回路400は、NEB A/Dバス
711上のバスアクセスを制御するためのバス制御論理
回路410と、プリンターA/Dバス701上のバストラ
フィックを制御するためのバス制御論理回路420と、
A/Dバス701およびA/Dバス711上のアクセスリクエ
ストの調停を行うための共有メモリアービター430
と、プリンターA/Dバス701とNEB A/Dバス711を、
それぞれSRAMのためのアドレス及びデータバスにインタ
ーフェースするためのSRAMインターフェース440とを
含む。これらの部分のそれぞれは、以下に詳しく説明す
る。
【0096】バス制御論理回路410は、ラッチされた
アドレス情報719を提供するために、NEB ALE信号7
12に応答してNEB A/Dバス711上のアドレス情報を
ラッチする、ラッチ717を含む。復号部720は、読
み込み及び書き込み信号714がアクティブであるとき
に、NEB A/Dバス上のアドレス情報が共有SRAM200の
アドレス空間に対応している場合に、NEBリクエスト信
号(NREQ信号)721を提供するために、ラッチされた
アドレス情報を復号する。
【0097】同様に、バス制御論理回路420は、プリ
ンターALE信号702が高レベルであるときに、ラッチ
されたアドレス情報724を提供するために、プリンタ
ー A/Dバス701上のアドレス情報をラッチするラッチ
722を含む。復号部725は、プリンターDEN信号7
04がアクティブであって、ラッチされたアドレス情報
が共有SRAM200のアドレス空間に対応している場合
に、ラッチされたアドレス情報に応答し、プリンターリ
クエスト信号(PREQ)726を出力する。
【0098】共有メモリアービター430は、PREQアク
セスリクエスト信号とNREQアクセスリクエスト信号を共
通のクロック(ここではNEBクロック715)に同期さ
せるための同期回路と、上記リクエスト信号のどちらか
に断片的なクロックディレイを鋏み込む遅延回路と、最
初に受信したリクエスト信号にアクセスを許可し、後で
受信されたアクセスリクエストを延期する延期回路と、
再同期回路とを含む。特に、NREQ721とPREQ726は
共に、共通のクロックに同期させるためにNEBクロック
715に同期させる同期回路に入力する。ここで示す一
例では、プリンタークロック信号705に固有に同期さ
れたPREQは、NEBクロック信号715に同期される。遅
延信号729は、オフセットリクエスト信号を生成する
ために、アクセスリクエスト信号のどちらか一方(ここ
ではプリンターからのアクセスリクエスト信号)に挿入
される。遅延回路は、2つのアクセスリクエストが共に
全く同時に発行された場合でも、一方のアクセスリクエ
ストが延期回路730に他より必ず先に到着するよう
に、2分の1クロック遅延の様な、断片的なクロック遅
延信号を挿入する。
【0099】延期回路730は、第1及び第2のアクセ
スリクエスト信号に応じて、第1及び第2アクセス許可
信号、PACK及びNACKを出力する。第1及び第2オフセッ
トリクエスト信号で先に受信された順番に応じて、第1
及び第2アクセス許可信号の厳密に一方がアクティブに
される。他の(つまり、後で受信された)オフセットリ
クエスト信号は、先に受信されたアクセスリクエスト信
号の処理が終了するまで延期される。延期されたマイク
ロプロセッサーにアクセスが拒否されたことを示すため
に、準備未完了信号が発行される。例えば、NEBアクセ
スリクエストが、プリンターアクセスリクエストより後
に受信された場合、延期回路730はプリンターにアク
セス許可を与え、NEBからのアクセスを延期する。この
場合、NEB準備完了信号716は取り下げられ、アクセ
ス許可がおりるまで待機状態を挿入するように、マイク
ロプロセッサー173に示す。反対に、NEBアクセスリ
クエストが、プリンターアクセスリクエストより先に受
信された場合、延期回路730はNEBにアクセス許可を
与え、プリンターのアクセスを延期する。この場合、延
期回路730はプリンター準備完了信号を遅らし、マイ
クロプロセッサー151にアクセス許可がおりるまで待
機状態を挿入するように指示する。
【0100】プリンターのためのPACKアクセス許可信号
は、同期しないように制御された信号をそれ自身のクロ
ックに再同期するように、再同期回路731へ入力され
る。この再同期された信号はFPACKとして指示される。
再同期されたアクセス許可信号FPACK及びNACKは、アク
セス許可を受けたマイクロプロセッサーと共用SRAM20
0との間の適切なインターフェースを提供する、SRAMイ
ンターフェース440に入力される。
【0101】共用メモリアービター430は、Dタイプ
フリップフロップ及び標準の論理回路で構成することが
好ましい。好ましい構成の一つを図19に示す。図19
に示されるように、プリンターからのアクセスリクエス
ト信号726は、NEBクロック信号715にクロックさ
れる、同期するDタイプフリップフロップ728aに入
力され、その後、第2のDタイプフリップフロップ72
8bに入力する。同時に、NEBからのアクセスリクエスト
信号721は、Dタイプフリップフロップ727aに入
力され、その後、第2のDタイプフリップフロップ72
7bに入力する。これら2つのフリップフロップ727a
及びフリップフロップ727bは、アクセスリクエスト
信号721に適した同期及び遅延を確認するために提供
される。立下がり制動Dタイプフリップフロップ729
は、プリンターからのアクセスリクエスト信号726
に、1.5クロックの遅延を挿入するために供給されて
いる。フリップフロップ729の出力は、アクセス許可
信号がNEBに既に供給されている場合(つまり、NACK信
号が高レベル)に供給されるリセット信号732によっ
て、低レベルに保たれる。反対に、NEBに対してアクセ
ス許可が下りていない場合、プリンターからのアクセス
リクエスト信号は、PACK信号を形成するために、クロッ
クスルー(clocked through)される。このPACK信号
は、プリンタークロック705によってクロックされる
再同期フリップフロップ731へ送られる。同時に、PA
CK信号は、クロックされたNEBアクセスリクエスト信号
に連動するNANDゲート734に供給される。プリンター
にアクセス許可が下りると、NANDゲート734は、アク
セスリクエストがあったとしても、PACKが低レベルに変
わるまで、NEBのアクセスが拒絶されたことを確認す
る。
【0102】図19に示す構成により、延期回路730
が第1及び第2の許可信号を出力したとしても、一時
に、これら2つの許可信号のうちのどちらか一方のみが
アクティブにされる。つまり、プリンターにアクセス許
可が下りると、NEBのアクセスは延期される。逆に、NEB
にアクセス許可が下りると、プリンターのアクセスは延
期される。
【0103】図18に戻ると、SRAMインターフェース4
40は再同期されたプリンターアクセス許可信号FPACK
と、NEBアクセス許可信号NACKとを受信し、この信号の
うちどちらがアクティブにされているかに基づいて、プ
リンターマイクロプロセッサー151とNEBマイクロプ
ロセッサー173の間での、共有SRAM200へのアクセ
スを調整する。
【0104】更に詳しくは、図18に示すとおり、NEB
アクセス許可信号NACKはマルチプレクサ735へ供給さ
れる。このマルチプレクサ735は、ラッチされたNEB
アドレス情報719又はラッチされたプリンターアドレ
ス情報724のどちらかを、NACK信号に基づいて選択
し、選択されたアドレス情報を内部アドレスバス736
へ供給する。NACKがアクティブである場合、マルチプレ
クサ735は、ラッチされたNEBアドレス情報719の
13ビット全てを、内部アドレスバス736へ供給す
る。反対に、NACKがアクティブでない場合(つまり、プ
リンターがアクセス権を持つ)、マルチプレクサ735
は、ラッチされたプリンターアドレス情報724の13
ビットの内、12ビットを内部アドレスバス736へ供
給する。第13番目のビット、ここではAOは、ジェネレ
ーター747によって、以下に示す方法で供給される。
【0105】バッファ737は、内部アドレスバス73
6からのアドレス情報をSRAMアドレスバス740にバッ
ファする。バッファ737はORゲート739の出力によ
り、アクティブにされる。ORゲート739は、NEBアク
セス許可信号NACKを入力の一つとして受け付ける。これ
により、NACKが高レベルになるとすぐに、バッファ73
7は、内部アドレスバス736上のアドレス情報をSRAM
アドレスバス740にバッファする。
【0106】読み込み又は書き込みのどちらがリクエス
トされたかによって、つまり、読み込み又は書き込み信
号714の状態に応じて、SRAM200はデータ情報を、
データバス741から受信またはデータバス741へ送
出する。このデータ情報は、両方向バッファ742を介
して内部データバス744へ送信される。両方向バッフ
ァ742は、NEBアクセス許可信号NACKを入力の一つと
して受け付ける、ORゲート745からの出力によってア
クティブにされる。従って、NACKが高レベルになると、
ORゲート745の出力も高レベルになり、SRAMデータバ
ス741から内部データバス744へのデータ情報の送
信を許可することになる。内部データバス744上のデ
ータ情報は、NEBアクセス許可信号NACKによってアクテ
ィブにされる両方向バッファ746を介して、NEB A/D
バス711へ送出される。NEBアクセス許可信号NACK
は、読み込み又は書き込み信号714によって起動され
る復号部720から最終的に導き出されるため、バス7
11が有効なアドレスデータが出現することを期待せ
ず、有効なデータ情報が出現することを期待するので、
NEB A/Dバス711上のデータ情報のタイミングは適切
である。
【0107】従って、まとめると、NEBが共有SRAM20
0にアクセスする許可を受けると、ラッチ717からの
ラッチされたアドレス情報は、マルチプレクサ735及
びバッファ737を介して、SRAMアドレスバス740に
バッファされ、データ情報は、両方向バッファ742及
び746を介して、NEB A/Dバス711へ(から)SRAM
データバス741から(へ)バッファされる。NEBのた
めのアクセス操作が終了すると、プリンターからの延期
されたアクセスリクエストが処理される。
【0108】プリンターマイクロプロセッサー151
が、共有SRAM200にアクセスする許可を受けている場
合には、NEBマイクロプロセッサー173が使用するの
と同じ13ビット幅のアドレスを、プリンターマイクロ
プロセッサー151が使用していたとしても、プリンタ
ーマイクロプロセッサー151はSRAM200のデータバ
ス幅と異なるものを持っているため、これらのビット幅
の差を解決するために、上位又は下位バイトバッファが
必要とされる。詳しくは、上記のとおり、プリンターマ
イクロプロセッサー151は、規則に基づいて16ビッ
ト幅の共有RAMデータアクセスを通して外部機器と通信
する、32ビットのインテル80960KBRISCマイク
ロプロセッサーである。プリンターマイクロプロセッサ
ー151の内部32ビットフォーマットへの16ビット
アクセスの問題解決は、プリンターマイクロプロセッサ
ーに依存する。しかし、8ビット幅の共有SRAM200へ
の、プリンターマイクロプロセッサー151からの16
ビットデータアクセスの問題解決は、SRAMインターフェ
ース440及び上記の上位又は下位バイトバッファに依
存する。この構造を以下に更に詳しく説明する。
【0109】具体的には、ラッチ722でラッチされた
アドレス情報については、マルチプレクサ735は13
ビット中の12ビットを、内部アドレスバス736へ送
信する。第13番目のビット、ここではAOは、ジェネレ
ーター747から供給される。ジェネレーター747
は、ストローブ(strobe)ジェネレーター751からの
下位ストローブ出力750及び上位ストローブ出力75
2によってアクティブにされる。ストローブジェネレー
ター751は、共有メモリアービター430からのFPAC
Kアクセス許可信号の受信に応じて、2つの連続する信
号、つまり下位ストローブ750及び上位ストローブ7
52を供給するように構成されている。下位ストローブ
信号750はジェネレーター747へ供給され、ジェネ
レーター747は二値の0ビットを第13番目のアドレ
スビットのために、マルチプレクサ735へ供給する。
マルチプレクサ735は、これらの13のアドレスビッ
トを選択し、内部アドレスバス736へ出力する。内部
アドレスバス736に関するアドレス情報は、上述した
とおり、バッファ737を介してSRAMアドレスバス74
0へラッチされる。バッファ737は下位ストローブ7
50及び上位ストローブ752をその入力として含む、
ORゲート739の出力によってアクティブにされる。従
って、続く下位ストローブ750及び上位ストローブ7
52に応じて、ORゲート739はバッファ737へ信号
を出力し、これにより、内部アドレスバス736上のア
ドレス情報が、SRAMアドレスバス740へ送信されるこ
とになる。
【0110】上位アドレスストローブ752は、ジェネ
レーター747へも供給され、ジェネレーター747は
二値の1を第13番目のアドレスビットとして生成し、
マルチプレクサ735へ供給する。マルチプレクサ73
5は、内部アドレスバス736へ出力する、これらの1
3ビットを選択する。ORゲート739による上位ストロ
ーブ752の受信に続いて、この更新されたアドレス情
報は、SRAM200のアドレスバス740へ送出される。
【0111】データ情報の取り扱いは、プリンターマイ
クロプロセッサー151によって読み込み、書き込みの
どちらがリクエストされたかによって変わる。書き込み
の場合、ストローブジェネレーター751は、バッファ
754へ下位ストローブ信号750を供給する。バッフ
ァ754はプリンターA/Dバス701に関するデータ情
報の下位バイトを内部データバス744にバッファす
る。そしてプリンターアクセス許可信号FPACKをその入
力の一つとして受け入れるORゲート745の出力によっ
てアクティブにされる両方向バッファ742を介して、
このデータ情報はSRAMデータバス741にバッファされ
る。従って、プリンターA/Dバス701上にあるデータ
情報の下位バイトはバッファ754を介して、内部デー
タバス744、それからSRAMデータバス741にバッフ
ァされる。
【0112】プリンターA/Dバス701上にあるデータ
情報の上位バイトは、ストローブジェネレーター751
からの上位ストローブ752によってアクティブにされ
るバッファ755によってバッファされる。上記と同様
に、データ情報の上位バイトは両方向バッファ742を
介して、内部データバス744、それからSRAMデータバ
ス741に送信される。
【0113】プリンターマイクロプロセッサー151が
SRAMデータの読み込みをリクエストした場合、下位スト
ローブ信号750と上位ストローブ信号752はそれぞ
れ遅延回路756及び757によって遅延され、遅延さ
れたストローブはそれぞれラッチ758及び759を制
御する。これらのラッチは、SRAM200のデータバス7
41から供給された、それぞれ下位及び上位バイトをラ
ッチし、上位及び下位バイトをプリンターA/Dバス70
1へアセンブルし、アセンブルされたデータ情報をプリ
ンターマイクロプロセッサー151に供給する。
【0114】従って、要約すると、プリンターマイクロ
プロセッサー151が共有SRAM200へのアクセスを許
可されると、ラッチ722にラッチされたアドレス情報
はSRAM200のアドレスバスに供給され、また、SRAM2
00へ書き込まれた(または、SRAM200から読み込ま
れた)データ情報は、下位及び上位バッファ754及び
755によって、SRAMデータバス741用のデータ情報
へ分解される(または、ラッチ758と759によっ
て、データバス741からのデータ情報からアセンブル
される)。プリンターマイクロプロセッサー151によ
るアクセスが終了すると、NEBからの延期されていたア
クセスリクエストが処理される。
【0115】ORゲート760は、チップ選択信号761
を共有SRAM200へ出力する。ORゲート760への入力
は、下位アドレスストローブ750と、上位アドレスス
トローブ752と、NEBアクセス許可信号NACKである。
従って、これらの信号のどれかに対応して、チップ選択
信号761は発行される。図20は、アービター制御論
理回路400に入力される信号のタイミングを示す、タ
イミング図である。詳しくは、プリンター側では、上記
のとおり、アービター制御論理回路400には、プリン
タークロック705と、プリンターALE信号702と、
プリンターA/Dバス701と、プリンターDEN信号704
と、プリンター準備完了信号706とが供給される。共
用SRAM200のアドレス空間に対応し、プリンターALE
信号702が高レベルになったときに有効でありラッチ
され、プリンターDEN信号704が低レベルになったと
きにプリンターリクエスト信号726(図18)を生成
する、プリンターA/Dバス701上のアドレス情報に対
応して、アービター制御論理回路400の延期回路73
0は、プリンター準備完了信号706を生成する。これ
により、SRAM200へのアクセスが許可され、プリンタ
ーDEN信号が高レベルになることによって示される有効
データがプリンターA/Dバス701上に現われるまで、
プリンターマイクロプロセッサー151は待機状態を発
行するようになる。
【0116】NEB側では、共用SRAM200のアドレス空
間に対応し、NEB ALE信号712が低レベルになったと
きに有効でありラッチされ、NEB書き込み信号714
(不図示)が低レベルになったときにNEBリクエスト信
号721を生成する、NEB A/Dバス711上のアドレス
情報に応答して、SRAM200へのアクセスが許可され、
有効データがNEB A/Dバス711上に現われるまで、NEB
準備完了信号716は生成される。 [共有メモリ内のバス競合の削減]上記のとおり、アー
ビター制御論理回路400は、NEB101の設計に欠く
ことのできないものであり、その内部で、ある与えられ
た時点で一つのプロセッサーのみが、共有SRAM200へ
アクセスすることを許可する。これにより、同じメモリ
セルへの同時アクセスは回避され、データ破壊を防ぐこ
とができる。しかし、この調停は、必要上、メモリー列
全体について行われ、個々のメモリセルについて行われ
るわけではない。従って、2つの参照されたアドレスが
お互いに異なっていたとしても、一方のプロセッサー
は、他方のプロセッサーがメモリにアクセスしている
間、待たなければならない。これはメモリアクセス時間
を非常に遅くすることとなり、特に、印刷データがネッ
トワークから、NEBマイクロプロセッサー173によっ
て、プリンターマイクロプロセッサー151へ、共有SR
AM200を介して送信されているときは顕著である。
【0117】図21は、SRAM200中の使用可能なメモ
リが、どのように論理スペースに分割されているかを示
す図である。印刷ジョブデータや、コマンドや、状態リ
クエストを含む、NEB101からプリンター102へ送
信された全てのデータは、NEBマイクロプロセッサー1
73によって、プリンターデータ領域201へ書き込ま
れる。この領域からは、プリンターマイクロプロセッサ
ー151によってデータが読み込まれている。反対に、
プリンター102からNEB101へ送信された全てのデ
ータは、プリンターマイクロプロセッサー151によっ
て、メッセージデータ領域202へ書き込まれる。この
領域からは、NEBマイクロプロセッサー173によって
データが読み込まれる。
【0118】図21に示すように、プリンターデータ領
域201は、リングバッファとして構成されている。こ
の領域においては、最後に達したときに、アドレス付与
が自動的に最初から再スタートするように、線形メモリ
ーアレイは巡回してアドレス付与される。このようなメ
モリ構造は2つのポインタを必要とする。一つは「プッ
ト」ポインタで、次にデータを書き込むアドレスをマー
クし、もう一つは「ゲット」ポインタで、次のデータを
読み込むアドレスをマークする。これらのポインターの
値は、SRAM200中の状態メッセージ領域203に記憶
されている。送信側のプロセッサーは、リングバッファ
に新しいデータを書き込む度にプットポインタの値を進
めることによって、プットポインタの値を制御する。ま
た、受信側のプロセッサーは、データをコピーして取り
出す度に、ゲットポインタの値を進めることによって、
ゲットポインタの値を制御する。
【0119】データは、リングバッファに256バイト
のブロック単位で、次のブロックの始まる場所を示すプ
ットポインタ及びゲットポインタと共に書き込まれる。
例えば、図21において、プットポインタはブロック2
011を示し、そのブロックが、NEBマイクロプロセッ
サー173が書き込むことのできる次のメモリ領域であ
ることを示す。また、ゲットポインタはブロック201
2を示し、そのブロックが、プリンターマイクロプロセ
ッサー151が次に読み込むべきメモリ領域であること
を示す。データブロックをメモリに書き込む前に、NEB
マイクロプロセッサー173は、プットポインタ及びゲ
ットポインタの値を状態メッセージ領域203から読み
込み、リングバッファ中に使用可能な領域があるか否か
を判断するために、これらの値を比較する。同様に、プ
リンターマイクロプロセッサー151は、プットポイン
タ及びゲットポインタの値を状態メッセージ領域203
から読み込み、読み込むべきデータがあるか否かを判断
するためにこれらの値を比較する。
【0120】従って、一方のプロセッサーから他方のプ
ロセッサに、リングバッファを使用してデータを送信す
る場合において、受信側のプロセッサーは送信側のプロ
セッサーを「リングをまわりながら」追跡し、書き込ま
れたデータを読み出す。受信側のプロセッサーは運転し
ているプリンターの速さによって制限を受け、送信側の
プロセッサーは、通常、受信側のプロセッサーが読み出
しするよりも速い速度で書き込むため、従来のシステム
においては、プットポインターがリングを回って、後に
あるゲットポインタに追い付いてしまう傾向がある。こ
のような場合、送信側プロセッサーは、リングバッファ
のメモリー空間が使用可能になるまで待つ。この待機時
間に、従来のシステムにおいて、送信側のプロセッサー
は、空間が使用可能になったか否かを判断するために、
プットポインター及びゲットポインターを周期的に読み
込み、比較する。送信側のプロセッサーによるこのよう
なポーリングは、送信側のプロセッサーが共有メモリに
アクセスしてポインターの値を読み込まなければならな
いために、受信側プロセッサーの処理速度を低下させ
る。これによってプリンターによるアクセスが妨害さ
れ、システム全体の機能を低下させる。NEB101で
は、プットポインタをゲットポインタよりも一定量以上
先にならないようにし、ゲットポインタが追い付くまで
待機することによって、バスの競合は削減される。NEB
は、ゲットポインタがプットポインタに追い付いた時を
判断するたの共有SRAM200のポーリングせず、他の機
器に依存する。ここでは割り込み制御レジスタ450
が、ゲットポインタが追い付いた時の通知をする。特
に、プリンターインターフェースの特徴として、印刷デ
ータは、プリンターが受信通知を、割り込み制御レジス
タ450を介してNEBへ発行するように命令するコマン
ドを含んでもよい。NEBは、プリンターへ送信する印刷
データの最終ブロックにこのコマンドを挿入し、割り込
み制御レジスタ450からの受信通知をポーリングの変
わりに使用する。具体的には、NEBは印刷データをプリ
ンターに以下の方法によって送信する。即ち、(1)共
有RAM中に、印刷データの為の使用可能なスペースがあ
るか否かを、受信通知の受信予定カウンターを参照する
ことによって決定し、(2)使用可能なスペースがある
場合はゲットポインタ及びプットポインタを読み出し、
プットポインタが、リングバッファを分割して得られた
部分の数に対応する複数の部分インデックスのうちの一
つと等しいか否かを判断し、(3)プットポインタの値
が、予め設定された複数のインデックスの内の一つと等
しい場合に、受信通知を発行するように受信プロセッサ
ー(プリンター)にリクエストするコマンドを書き込
み、(4)共有メモリのプットポインタの位置に、印刷
データブロックを書き込み、(5)プットポインタの値
を更新する。NEB101が、受信通知を発行するように
プリンターにリクエストするコマンドを書いたときに、
受信通知の受信予定カウンターに1を加えることによっ
て、プリンターから受信することが期待される受信通知
の数が更新される。プリンターから受信通知を受信する
と、受信通知の受信予定カウンターは、1減少する。こ
のカウンターは共有SRAM200には記憶されておらず、
バス競合の問題の無い、NEBマイクロプロセッサー17
3が持つDRAM175中に記憶されている。このように、
NEB101は、カウンター中に記憶されている受信通知
の受信予定数と、リングバッファを分割して得られた部
分の数とを比較することによって、リングバッファに使
用可能なスペースがあるか否かを判断する。受信通知の
受信予定数が、分割部分の数以上ならば、リングバッフ
ァは満杯であり、NEB101は印刷情報をリングバッフ
ァに追加で書き込まない。その代わりに、プリンターが
リングバッファの一部分をクリアし、新しい印刷情報を
記憶できる部分ができたことを示す受信通知が受信され
るまで待機する。反対に、受信通知の受信予定数が、分
割部分の数より少なければ、リングバッファ内に使用可
能なスペースがまだあることを示す。
【0121】図22は、NEB101の送信側プロセッサ
ー(つまり、NEBマイクロプロセッサー173)が、共
有SRAM200にデータを書き込む手順を示す。この処理
は、印刷ジョブがLANから受信されたときに開始する
(ステップS1902)。印刷ジョブを受信すると、NE
Bマイクロプロセッサー173は、印刷データのために
使用可能なスペースが、リングバッファにあるか否かを
判断する。この判断は、プリンターからの受信通知の受
信予定数を数えることによって行われる。具体的には、
上記のとおり、NEBマイクロプロセッサー173は、割
り込み制御レジスタ450を介してプリンターからNEB
マイクロプロセッサー173へ送られる受信通知をプリ
ンターに発行させるコマンドを、印刷データに挿入する
ことができる。NEBマイクロプロセッサー173は、受
信通知の受信予定数、つまり、受信通知のために発行さ
れたコマンドの数から、実際に受信された受信通知の数
を引いた数を追跡する。受信通知の受信予定数が、リン
グバッファを分割して得られた部分の数よりも少いなら
ば(ここではリングバッファは2つに分割されてい
る)、印刷データのために更に使用可能なスペースがリ
ングバッファに存在することになる。反対に、未処理の
受信通知の数が、リングバッファを分割して得られた部
分の数以上ならば、使用可能なスペースは無く、NEBマ
イクロプロセッサー173は、受信通知を受信するまで
待機する。
【0122】従って、ステップS1903において、NE
Bマイクロプロセッサー173は、プリンターから受信
通知を受信したか否かを判断する。受信通知が受信され
た場合、処理はステップS1904へ分岐し、受信通知
の受信予定数を更新する。そしていづれの場合もステッ
プS1905へ進み、NEBマイクロプロセッサー173
は、ステップS1902で受信された印刷データの為の
スペースが、リングバッファ中にあるか否かを判断す
る。上述したように、NEBマイクロプロセッサー173
は、プットポインタ及びゲットポインタにアクセスする
ことによってスペースがあいているか否かを判断するこ
とはしない。なぜなら、このようなアクセスは、不必要
なバスの競合を招くからである。そのかわりに、NEBマ
イクロプロセッサー173は、受信通知の受信予定数
と、リングバッファを分割して得られた部分の数とを比
較することによって、使用可能なスペースがあるか否か
を判断する。受信通知の受信予定数が、リングバッファ
を分割して得られた部分の数よりも少なくなければ、リ
ングバッファに使用可能なスペースがなく、処理は、追
加の受信通知が受信されるまで、ステップS1903へ
戻る。反対に、受信通知の受信予定数が、リングバッフ
ァを分割して得られた部分の数よりも少いならば、リン
グバッファに使用可能なスペースがあり、処理はステッ
プS1906へ進む。
【0123】ステップS1906ではプットポインタ及
びゲットポインタが、共有SRAM200の状態メッセージ
領域203から読み込まれる。ステップS1907で
は、プットポインタが分割されたインデックスと等しい
場合、つまり、プットポインタが、図21のインデック
スA及びインデックスBのように、リングバッファの一
部分の最後を示す場合、NEBマイクロプロセッサー17
3は、プリンターに受信通知を発行させるようにコマン
ドを挿入する。具体的には、プットポインタが分割され
たインデックスの一つに等しいならば、処理はステップ
S1908に分岐し、NEBマイクロプロセッサー173
は、印刷データの次のブロックをプットポインタが指定
するメモリ位置に書き込み、そのブロックに、受信側の
プロセッサー(つまり、プリンターマイクロプロセッサ
ー151)に受信通知を発行させるコマンドを入れる。
NEBマイクロプロセッサー173は、次に、プットポイ
ンタの値を更新し(ステップS1909)、そして、受
信通知の受信予定数を更新する(ステップS191
0)。処理はステップS1911へ進み、印刷データを
更にプリンターへ送る必要があるか否かを判断する。デ
ータを更に送信する必要がある場合、処理はステップS
1903へ戻り、NEBマイクロプロセッサー173は、
受信通知の受信予定数を参照することによって、リング
バッファ内に使用可能なスペースがあるか否かを判断す
る。
【0124】反対に、ステップS1907で、プットポ
インタが分割されたインデックスのどれにも等しくない
場合は、ステップS1912へ進み、NEBマイクロプロ
セッサー173は、プットポインタに指定されたメモリ
へ、印刷データの次のブロックを単純に書き込み、プッ
トポインタの値を更新し(ステップS1913)、ステ
ップS1911へ進み、プリントデータを更にプリンタ
ーへ送る必要があるか否かを判断する。
【0125】受信側のプロセッサーは、共有メモリから
通知受信の発行コマンドを含むデータブロックを読み込
むと、受信通知を発行する。具体的には、図23を参照
すると、受信側のプロセッサーは、ゲットポインタ及び
プットポインタの値を共有メモリから読み込むことによ
って、データのリトリーブを開始する(ステップS20
01)。リトリーブするべきデータがある場合は(ステ
ップS2002)、受信側のプロセッサーは、ゲットポ
インタによって指定されているメモリ位置からデータブ
ロックを読み込み(ステップS2002からS200
4)、ゲットポインタの値を更新する(ステップS20
05)。
【0126】そして、受信側プロセッサーは、例えば受
信通知発行コマンドなどの、そのデータブロックに含ま
れているコマンドを全て実行する(ステップS200
6)。受信側プロセッサーは、アービター制御論理回路
400の一部である割り込み制御レジスタ450に1ビ
ットを書き込むことによって、この受信通知を送信側プ
ロセッサーへの割り込みとして発行する。送信側のプロ
セッサーは、この割り込みを受信すると、上述したよう
に、受信通知の受信予定数を更新する。
【0127】これにより、リングバッファが2つの部分
に分割されると、送信側のプロセッサーは、一回にリン
グバッファの半分だけにブロックを書き込み、受信側の
プロセッサーが残り半分を読み終えたかを確認し、それ
ぞれのインデックス毎に、受信側のプロセッサーが追い
付くまで、共有メモリへのアクセスをやめる。別の例で
は、2つのリングセグメントでは不充分な場合に、リン
グを更に細かく分割することができる。これらの場合、
図24の(a)から(c)に示すように、追加のインデッ
クスを使用することができる。
【0128】この構成により、NEBマイクロプロセッサ
ー173は待機中、共有SRAM200に全くアクセスしな
いので、NEBマイクロプロセッサー173の待機は、プ
リンターマイクロプロセッサー151の読み込み処理を
妨害しない。これにより、非常に多くのデータ処理を達
成できるだけでなく、プリンターインターフェースマイ
クロプロセッサー151がより速くそのタスクを達成す
ることができるので、NEBマイクロプロセッサー173
をプットポインタ及びゲットポインタのポーリングから
開放することができ、これにより共有SRAM200を使用
しない他のワークを行なうことができるようになる。 [シリアルポート]上述のとおり、シリアルポートコネ
クタ600は、外部プロセッサー、特にNEB101のた
めのデバッグサービスに関連して使用されるプロセッサ
ーとのシリアル通信を行うために、供給されている。具
体的には、NEB101がデバッグ状態にセットされたと
きに、シリアルポートコネクタ600を介して、外部プ
ロセッサーはNEB101によって送信されるデバッグ情
報をリトリーブすることができる。この情報は、例え
ば、内部NEBレジスタの状態や、ネットワークインター
フェース301(又は302、割り込み可能にされた
方)のネットワークブロードキャスト及びトラフィック
の状態や、印刷情報の状態や、共有SRAM200に書き込
まれた印刷情報の状態などを含む。
【0129】シリアルポートコネクタ600が、デバッ
クサービスに関連して使用されるために、NEBマイクロ
プロセッサー173の割り込み能力に関わらず、そのポ
ートを介してのシリアル通信をNEBマイクロプロセッサ
ー173によって応答することを避けることができな
い。例えば、プリンター102が受信通知を発行するま
で、新しい印刷データのSRAM200への書き込みを待つ
ことによってバスの競合を減らす場合、上記のとおり、
プリンターが間違えてそのような受信通知を発行しない
可能性がある。こういう場合、NEBマイクロプロセッサ
ー173は、受信通知が受信されるまでループを実行し
続ける。通常、そのような状態にあるプロセッサーは
「ロックアップ(錠を掛けられた;locked-up)」され
たことになる。ロックアップとはどのような割り込みに
も応じない状態を示す。ロックアップされた状態では、
通常、電力を一旦止めて再度投入する必要がある。しか
し、このようなエラーのある動作が、シリアルポートコ
ネクタ600上でデバッグ情報が望まれる動作の種類そ
のものであるため、NEBマイクロプロセッサー173
が、そのようなシリアル通信に応答できるようにするこ
とを避けることはできない。
【0130】図25は、受信チャンネルの信号が、NEB
マイクロプロセッサー173のマスク不可能な割り込み
(NMI)ピンに送信される、シリアルポートの構成を示
す。マスク不可能な割り込み特性は、インテルプロセッ
サー80X86ライン等の、最新のプロセッサーに搭載
されており、現状の処理状態に関わらず、プロセッサー
に割り込みを掛ける手段を有している。つまり、NMIピ
ンがアクティブにされた時には、プロセッサーは、現在
行っている動作の如何に関わらず、その割り込みに応答
しなければならない。
【0131】更に具体的には、図25に示すように、本
発明におけるシリアルポート構成は、上述の通り、マス
ク不可能な割り込み(NMI)ピン1731を含みNEB制御
論理回路520へバス181を介して接続されている、
NEBマイクロプロセッサー173を含む。NEB制御論理回
路520は、アドレス復号論理回路523を含む。この
アドレス復号論理回路523は、バス181上のアドレ
ス信号を復号し、NEB制御論理回路520の内部レジス
タへの接続を提供する。特に、ここでは、3つのレジス
タを考慮する。それらは、送信レジスタ524と、受信
レジスタ525と、NMIイネーブルレジスタ526とで
ある。
【0132】送信レジスタ524は、シリアルポートの
送信ピン602に接続されている送信ビットを含む。具
体的には、送信ビットは、その二値の1又は0に応じ
て、NEBマイクロプロセッサー173によって、バス1
81及びアドレス復号論理回路523を介して書き込み
可能となる。二値の1又は0は、+5ボルト又は0ボル
トの電圧として、送信ターミナル602に現れる。
【0133】受信レジスタ524は、ソフトウエアシリ
アルポートの受信ピン601に接続されている受信ビッ
トを含む。更に詳しくは、受信ターミナル601に現れ
る電圧のレベルに従って、受信ビットは二値の1又は0
にセットされ、この受信ビットは、バス181及びアド
レス復号論理回路523を介して、NEBマイクロプロセ
ッサー173によって読み込まれる。
【0134】NMIイネーブルレジスタ526は、NEBマイ
クロプロセッサー173によって制御されるスイッチ
で、受信ターミナル601とNMIピン1731との間に
接続されている。NEBマイクロプロセッサー173の制
御下で、バス181及びアドレス復号論理回路523を
介して、NMIイネーブルレジスタ526は、受信ターミ
ナル601上の信号をNMIピン1731へ接続する割り
込み可能状態又は、受信ターミナル601上の信号をブ
ロックする割り込み禁止状態を、スイッチで選択する。
【0135】送信レジスタ524と、受信レジスタ52
5と、NMIイネーブルレジスタ526は、物理的に、一
つのレジスタから構成することもできるが、通常は、図
25に示すように、別個にアドレスすることのできるレ
ジスタとして供給される。図26は、シリアル受信モー
ドでのシリアルポート処理を示すフローチャートであ
る。図26における処理ステップは、DRAM175に記憶
されたソフトウエアの命令に応じて、NEBマイクロプロ
セッサー173によって実行される。
【0136】ステップS2301において、受信ターミ
ナル601上の信号を直接NMIピン1731へ送信でき
るように、NEBマイクロプロセッサー173は、NMIイネ
ーブルレジスタ526を割り込み可能にする。そしてス
テップS2302で、NEBマイクロプロセッサー173
は、NMI信号が現われるのを確認のためにNMIピン173
1を観察する。マスク不可能な割り込みを受信すると、
NEBマイクロプロセッサー173は、コンピューターに
よって制御されたLANとプリンター間のネットワークを
介した印刷処理のような、進行中の処理を続行する(ス
テップS2303)。
【0137】反対に、NMI信号がNMIピン1731で受信
されると、処理はステップS2304へ進み、NEBマイ
クロプロセッサー173は、進行中の処理を中断する。
図27は、シリアル受信モードでの信号のタイミングを
示す図である。図27に示すように、NMIイネーブルレ
ジスタ526は割り込み可能にされているため、NMI信
号は、受信ターミナル601の開始ビットに対応して受
信される。従って、図27にあるとおり、最初のビット
に対応する電圧レベル610が受信ターミナル601に
現れると、NMIイネーブルレジスタ526が割り込み可
能状態であるために、最初のビットはNMIピン1731
へ送信される。同時に、最初のビットの電圧レベル61
0のために、受信レジスタ525の受信ビットは二値の
1にスイッチされる。
【0138】再び図26に戻って説明を続ける。NEBマ
イクロプロセッサー173が進行中の処理を中断した後
(ステップS2304)、マイクロプロセッサー173
は、ステップS2305で、NMI割り込み取り扱い処理
を実行開始し、受信ターミナル601からNMIピン17
31への信号の送信を遮るために、NMIイネーブルレジ
スタ526を割り込み禁止にする。そして、この割り込
み取り扱い処理は、受信ターミナル601に最初のデー
タビットが現れることのできるように、シリアル送信期
間中、待機する。シリアル送信が19.2KHzで行わ
れた場合、あらかじめ設定されたシリアル送信周期は、
1/19.2KHz、つまり52msである。あらかじめ
設定されたシリアル送信周期が過ぎると、処理はステッ
プS2307へ進み、受信レジスタ525の受信ビット
が読み込まれる。これは図27において、表現上、最初
データビットは受信ターミナル601の高電圧値に対応
して、二値の1である。受信ビットは受信レジスタ52
5からリトリーブされ、8データビットが受信されるま
で、ステップS2306及びS2307の処理を繰り返
す(ステップS2308)。送信された停止ビット(例
えば図27の611)はどれも無視される。
【0139】8ビットのデータが受信されると、処理は
ステップS2309へ進み、割り込み取り扱い処理は、
受信ターミナル601で受信された8ビットバイトデー
タを記憶する。次に、ステップS2310で、次のシリ
アル通信の受信に備えるために、NEBマイクロプロセッ
サー173は、NMIイネーブルレジスタ526を割り込
み可能にする。1バイトのシリアルデータを受信するた
めの、このシリアル通信サイクルは、これで完了する。
【0140】ステップS2311では、NEBマイクロプ
ロセッサー173は、ステップS2309で記憶された
8ビットバイトが、処理中のソフトウエアタスクに非同
期に割り込みのリクエストをしているか否かを判断す
る。詳しくは、上記のNMI割り込み取り扱い処理が中断
されると、処理は通常、CPSOCKET等の、MONITORによっ
て制御されている、進行中の処理へもどる。しかし、NM
Iによって動かされるシリアルポートの利点は、問題が
起きている最中に、実行中のプログラムへ割り込むこと
ができることである。例えば、NEBが、予期しないソフ
トウエアの問題によってクラッシュしたときは、NEBの
状態はしばしばわからないままである。デバッグメッセ
ージを送信することができないほど、非常にタイトなマ
イクロプロセッサーループ中にある可能性もある。NEB
をリセットすることが、しばしば唯一、マイクロセッサ
ーループに割り込む方法であるが、そうすることによっ
て、現状を失ってしまい、また、クラッシュの原因など
の情報が全く供給されないこともある。このような場
合、NMIによって動作するシリアルポートを介して割り
込む機能と、システムを検査する機能は、非常に価値の
あるものである。
【0141】従って、ステップS2311において、シ
リアルポートコネクタで受信されるバイトが非同期の割
り込みをリクエストするものであるか否かを判断する。
例えば、すでに設定されている規則を用いると、感嘆符
(「!」)の送信が非同期の割り込みを特定することを
判断することができる。この場合、NEBマイクロプロセ
ッサー173は、進行中の処理の一時停止を続け、イン
タラクティブデバッガーに入る。このインタラクティブ
デバッガーは、ROMに保存されているプログラムで、ユ
ーザーがメモリアドレスや、CPUレジスタ及びI/Oポート
を観察したり、変更したりすることができる。更に、こ
のインタラクティブデバッガーではコード中に2つの中
断点を設定することができ、このようなどの中断点から
も実行開始する機能を持つ。このすべては、シリアルポ
ートコネクタ600を介して、達成される。
【0142】従って、非同期の割り込みにより、トラブ
ルがおこった場合に、トラブルシューターがNEBの現在
の状態を分析することができる。シリアル通信の最初の
ビットによりNMI信号が生成されるので、非同期の割り
込みにより、システム状態を分析することを許可するた
めに非常にタイトに結ばれたマイクロプロセッサールー
プにさえも割り込むことのできる、インタラクティブデ
バッグのセッションを開始することができる。
【0143】反対に、ステップS2309で記憶された
8ビットバイトが、非同期な割り込みをリクエストして
いない場合は、NEBマイクロプロセッサー173は、受
信したバイトを単純に記憶し、ステップS2303へ戻
り、ステップS2304で一時停止された進行中の処理
の実行を再開する。典型的には、CPSOCKETなどの、NEB
マイクロプロセッサー173でアクティブな他のソフト
ウエアモジュールは、8ビットバイトが記憶されたデー
タバッファを観察する。例えば、新しいソフトウエアモ
ジュールをシリアルポートコネクタ600上にダウンロ
ードする、ダウンロードサービスのリクエストを、すで
に設定されている規則によって、文字列「DNLD」の送信
が特定することを判断することができる。このような場
合、CPSOCKETは、「DNLD」のそれぞれ文字が受信される
度に反応し、その後にダウンロードモードに入るように
構成してもよい。
【0144】図28は、ソフトウエアシリアルポートの
送信モードにおける処理の流れを示す図であり、図29
は、送信レジスタ524に書き込まれた送信ビットに関
連して、送信ターミナル602に現われる信号を示す図
である。ステップS2401において、NEBマイクロプ
ロセッサー173は二値の1の開始ビットを、送信レジ
スタ524の送信ビットに書き込む。この送信ビット
は、送信ターミナル602に接続しているため、送信タ
ーミナル602は+5ボルトの電圧を表すことになる。
【0145】処理はステップS2402へ進み、NEBマ
イクロプロセッサー173は、あらかじめ設定されたシ
リアル送信期間待機する。この送信期間は、19.2K
Hzのシリアルレートで、1/19.2KHzであるの
で、52msである(1インタービット時間)。必要期間
待機した後、NEBマイクロプロセッサー173は送信ワ
ードの最初のビットを、送信レジスタ524の送信ビッ
トへ書き込む(ステップS2403)。送信されたワー
ドの8ビットすべてが書き込まれるまで(ステップS2
404)、NEBマイクロプロセッサー173は、シリア
ル通信期間は待機し、次のデータビットを送信レジスタ
524の送信ビットへ書き込む、ステップS2402及
びS2403の処理を繰り返す。8ビットのすべてが書
き込まれると、処理はステップS2405へ進み、イン
タービット送信期間中待機した後、送信レジスタ524
へ停止ビットを書き込む。そしてステップS2406へ
進み、ポイントシリアル通信は終了する。
【0146】上記の説明は、特定の例を参照してなされ
たが、本発明は上記の実施の形態によって限定されるも
のではない。関係分野の当業者には、発明の精神と範囲
を越えない程度で、上記の説明から多数の変形例が可能
であることは明らかであろう。
【0147】
【発明の効果】以上述べた様に本発明によれば、ネット
ワーク通信装置に互換性のないイメージデータがダウン
ロードされた場合に上記のような悲惨な結果を招かない
ようにするために、ダウンロードされたイメージデータ
が互換性のあるものであるかどうか、再プログラムを行
う前に確認することができるという効果がある。
【図面の簡単な説明】
【図1】ネットワークボードがつながれたローカルエリ
アネットワークとワイドエリアネットワークを示す図で
ある。
【図2】キャノンLBP1260レーザープリンターに
嵌め込まれたネットワークボードを示す断面図である。
【図3】プリンターとローカルエリアネットワーク間に
つながれたネットワークボードを示すブロック図であ
る。
【図4】ネットワークボード上の構成要素の配置を示す
図である。
【図5】ネットワークボードのフェースプレートを示す
図である。
【図6】ネットワークボードの機能を示すブロック図で
ある。
【図7】フラッシュEPROMに記憶されるソフトウエアモ
ジュールの例を示す図である。
【図8】どのコネクタがネットワークに接続しているか
を判断するための構成を示すブロック図である。
【図9】どのコネクタがネットワークに接続しているか
を判断するための方法を示すフローチャートである。
【図10】PRETASKソフトウエアモジュールの動作を示
すフローチャートである。
【図11】様々なネットワークモジュール間で可能な関
係を示す図である。
【図12】様々なネットワークモジュール間で可能な関
係を示す図である。
【図13】様々なネットワークモジュール間で可能な関
係を示す図である。
【図14】様々なネットワークモジュール間で可能な関
係を示す図である。
【図15】Ethernetローカルエリアネットワーク及びTo
ken-ringローカルエリアネットワークに接続したPCを
示すブロック図である。
【図16】構造情報を記憶するための、ネットワーク情
報ファイルブロックの内容を示す図である。
【図17】フラッシュEPROMの再プログラミングを示す
フローチャートである。
【図18】メモリアービトレーション機器のブロック図
である。
【図19】メモリアービトレーション機器の共有メモリ
アービターの好ましい構成の一例を示すブロック図であ
る。
【図20】メモリアービトレーション機器に供給される
信号のタイミングを示す図である。
【図21】共有メモリの構成を示す図である。
【図22】共有メモリへの書き込みに関する手順を示す
フローチャートである。
【図23】共有メモリからの読み込みに関する手順を示
すフローチャートである。
【図24】共有メモリの構成の別の例を示す図である。
【図25】シリアルポートのブロック図である。
【図26】シリアルポートを介してシリアル通信の送受
信に関する手順を示すフローチャートである。
【図27】シリアル送受信モードにおける信号のタイミ
ングを示す図である。
【図28】シリアルポートを介してシリアル通信の送受
信に関する手順を示すフローチャートである。
【図29】シリアル送受信モードにおける信号のタイミ
ングを示す図である。
フロントページの続き (72)発明者 ナツコ タカハシ アメリカ合衆国 カリフォルニア州 90815, ロング ビーチ, エスパニタ ストリート 6511

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 ネットワーク上で通信する再プログラム
    可能ネットワーク通信装置であって、該通信装置は現プ
    ログラムイメージデータと、ネットワーク通信装置のた
    めの構成情報を含む現ネットワーク情報ファイルブロッ
    クと、再プログラム可能ROMを再プログラムするための
    ソフトウエア再プログラムモジュールとを記憶する再プ
    ログラム可能ROMと、 前記再プログラム可能ROMの為の新しいプログラムイメ
    ージデータを記憶するためのRAMと、 前記新しいプログラムイメージデータが前記現ネットワ
    ーク情報ファイルブロックの構成情報と互換性があるか
    どうかを確認し、互換性が確認された場合に、前記再プ
    ログラム可能ROMを前記新しいプログラムイメージデー
    タで再プログラムするために、前記ソフトウエア再プロ
    グラムモジュールを実行する、ネットワーク通信を送受
    信するプロセッサーとを含むことを特徴とする再プログ
    ラム可能ネットワーク通信装置。
  2. 【請求項2】 前記新しいプログラムイメージデータ
    は、新しいネットワーク情報ファイルブロックを含み、
    前記ソフトウエア再プログラムモジュールを実行する前
    に、前記プロセッサーは、少なくとも前記新しいネット
    ワーク情報ファイルブロックの部分を、対応する前記現
    ネットワーク情報ファイルブロックで置き換えることを
    特徴とする請求項1に記載の再プログラム可能ネットワ
    ーク通信装置。
  3. 【請求項3】 前記新しいプログラムイメージデータ
    は、ネットワークを介して前記ネットワーク通信装置に
    ダウンロードされることを特徴とする請求項2に記載の
    再プログラム可能ネットワーク通信装置。
  4. 【請求項4】 前記現ネットワーク情報ファイルブロッ
    クの構成情報は、MACアドレスを含むことを特徴とする
    請求項3に記載の再プログラム可能ネットワーク通信装
    置。
  5. 【請求項5】 前記現ネットワーク情報ファイルブロッ
    クの構成情報は、ネットワーク媒体構成情報を含み、前
    記プロセッサーは、前記現ネットワーク情報ファイルブ
    ロックのネットワーク媒体構成情報と、新しいネットワ
    ーク情報ファイルブロックのネットワーク媒体構成情報
    とを比較することによって、前記新しいプログラムイメ
    ージデータが互換性があることを確認することを特徴と
    する請求項4に記載の再プログラム可能ネットワーク通
    信装置。
  6. 【請求項6】 前記現ネットワーク情報ファイルブロッ
    クの構成情報は、ホストインターフェース構成情報を含
    み、前記プロセッサーは、前記現ネットワーク情報ファ
    イルブロックのホストインターフェース構成情報と、新
    しいネットワーク情報ファイルブロックのホストインタ
    ーフェース構成情報とを比較することによって、前記新
    しいプログラムイメージデータが互換性があることを確
    認することを特徴とする請求項4に記載の再プログラム
    可能ネットワーク通信装置。
  7. 【請求項7】 前記現ネットワーク情報ファイルブロッ
    クの構成情報は、製品構成情報を含み、前記プロセッサ
    ーは、前記現ネットワーク情報ファイルブロックの製品
    構成情報と、新しいネットワーク情報ファイルブロック
    の製品構成情報とを比較することによって、前記新しい
    プログラムイメージデータが互換性があることを確認す
    ることを特徴とする請求項4に記載の再プログラム可能
    ネットワーク通信装置。
  8. 【請求項8】 前記現ネットワーク情報ファイルブロッ
    クの構成情報は、プロセッサー構成情報を含み、前記プ
    ロセッサーは、前記現ネットワーク情報ファイルブロッ
    クのプロセッサー構成情報と、新しいネットワーク情報
    ファイルブロックのプロセッサー構成情報とを比較する
    ことによって、前記新しいプログラムイメージデータが
    互換性があることを確認することを特徴とする請求項4
    に記載の再プログラム可能ネットワーク通信装置。
  9. 【請求項9】 前記現ネットワーク情報ファイルブロッ
    クの構成情報は、メモリ構成情報を含み、前記プロセッ
    サーは、前記現ネットワーク情報ファイルブロックのメ
    モリ構成情報と、新しいネットワーク情報ファイルブロ
    ックのメモリ構成情報とを比較することによって、前記
    新しいプログラムイメージデータが互換性があることを
    確認することを特徴とする請求項4に記載の再プログラ
    ム可能ネットワーク通信装置。
  10. 【請求項10】 ネットワーク上で通信するネットワー
    ク通信装置を再プログラムする方法であって、前記方法
    は現プログラムイメージデータと、ネットワーク通信装
    置のための構成情報を含む現ネットワーク情報ファイル
    ブロックと、再プログラム可能ROMを再プログラムする
    ためのソフトウエア再プログラムモジュールとを再プロ
    グラム可能ROMに記憶する工程と、 前記再プログラム可能ROMの為の新しいプログラムイメ
    ージデータをRAMに記憶する工程と、 前記新しいプログラムイメージデータが前記現ネットワ
    ーク情報ファイルブロックの構成情報と互換性があるか
    どうかを確認する工程と、 互換性が確認された場合に、前記再プログラム可能ROM
    を前記新しいプログラムイメージデータで再プログラム
    するために、前記ソフトウエア再プログラムモジュール
    を実行する工程とを含むことを特徴とするネットワーク
    通信装置を再プログラムする方法。
  11. 【請求項11】 前記新しいプログラムイメージデータ
    は、新しいネットワーク情報ファイルブロックを含み、
    前記ソフトウエア再プログラムモジュールを実行する前
    に、少なくとも前記新しいネットワーク情報ファイルブ
    ロックの部分を、対応する前記現ネットワーク情報ファ
    イルブロックで置き換えること工程を更に含むことを特
    徴とする請求項10に記載のネットワーク通信装置を再
    プログラムする方法。
  12. 【請求項12】 前記新しいプログラムイメージデータ
    を、ネットワークを介して前記ネットワーク通信装置に
    ダウンロードする工程を更に含むことを特徴とする請求
    項11に記載のネットワーク通信装置を再プログラムす
    る方法。
  13. 【請求項13】 前記現ネットワーク情報ファイルブロ
    ックの構成情報は、MACアドレスを含むことを特徴とす
    る請求項12に記載のネットワーク通信装置を再プログ
    ラムする方法。
  14. 【請求項14】 前記現ネットワーク情報ファイルブロ
    ックの構成情報は、ネットワーク媒体構成情報を含み、
    前記現ネットワーク情報ファイルブロックのネットワー
    ク媒体構成情報と、新しいネットワーク情報ファイルブ
    ロックのネットワーク媒体構成情報とを比較することに
    よって、前記新しいプログラムイメージデータが互換性
    があることを確認することを特徴とする請求項13に記
    載のネットワーク通信装置を再プログラムする方法。
  15. 【請求項15】 前記現ネットワーク情報ファイルブロ
    ックの構成情報は、ホストインターフェース構成情報を
    含み、前記現ネットワーク情報ファイルブロックのホス
    トインターフェース構成情報と、新しいネットワーク情
    報ファイルブロックのホストインターフェース構成情報
    とを比較することによって、前記新しいプログラムイメ
    ージデータが互換性があることを確認することを特徴と
    する請求項13に記載のネットワーク通信装置を再プロ
    グラムする方法。
  16. 【請求項16】 前記現ネットワーク情報ファイルブロ
    ックの構成情報は、製品構成情報を含み、前記現ネット
    ワーク情報ファイルブロックの製品構成情報と、新しい
    ネットワーク情報ファイルブロックの製品構成情報とを
    比較することによって、前記新しいプログラムイメージ
    データが互換性があることを確認することを特徴とする
    請求項13に記載のネットワーク通信装置を再プログラ
    ムする方法。
  17. 【請求項17】 前記現ネットワーク情報ファイルブロ
    ックの構成情報は、プロセッサー構成情報を含み、前記
    現ネットワーク情報ファイルブロックのプロセッサー構
    成情報と、新しいネットワーク情報ファイルブロックの
    プロセッサー構成情報とを比較することによって、前記
    新しいプログラムイメージデータが互換性があることを
    確認することを特徴とする請求項13に記載のネットワ
    ーク通信装置を再プログラムする方法。
  18. 【請求項18】 前記現ネットワーク情報ファイルブロ
    ックの構成情報は、メモリ構成情報を含み、前記現ネッ
    トワーク情報ファイルブロックのメモリ構成情報と、新
    しいネットワーク情報ファイルブロックのメモリ構成情
    報とを比較することによって、前記新しいプログラムイ
    メージデータが互換性があることを確認することを特徴
    とする請求項13に記載のネットワーク通信装置を再プ
    ログラムする方法。
JP28615995A 1994-11-04 1995-11-02 再プログラム可能ネットワーク通信装置及びネットワーク通信装置の再プログラム方法 Expired - Fee Related JP3651987B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US33604394A 1994-11-04 1994-11-04
US08/336043 1994-11-04

Publications (2)

Publication Number Publication Date
JPH08278927A true JPH08278927A (ja) 1996-10-22
JP3651987B2 JP3651987B2 (ja) 2005-05-25

Family

ID=23314322

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28615995A Expired - Fee Related JP3651987B2 (ja) 1994-11-04 1995-11-02 再プログラム可能ネットワーク通信装置及びネットワーク通信装置の再プログラム方法

Country Status (4)

Country Link
US (1) US6023727A (ja)
EP (1) EP0710914B1 (ja)
JP (1) JP3651987B2 (ja)
DE (1) DE69516634T2 (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100247951B1 (ko) * 1997-04-11 2000-03-15 윤종용 휴대형정보단말장치의프로그램갱신방법
US6279066B1 (en) * 1997-11-14 2001-08-21 Agere Systems Guardian Corp. System for negotiating access to a shared resource by arbitration logic in a shared resource negotiator
DE19750365A1 (de) * 1997-11-14 1999-05-20 Bosch Gmbh Robert Verfahren zum Laden eines Programms und Datenverarbeitungsgerät
US6745243B2 (en) * 1998-06-30 2004-06-01 Nortel Networks Limited Method and apparatus for network caching and load balancing
US6515756B1 (en) * 1998-08-26 2003-02-04 International Business Machines Corporation Selecting print attribute values in a network printing system
TW460858B (en) * 1999-02-19 2001-10-21 Wacom Engineering Co Ltd Operator's input processing unit and method thereof
US7877290B1 (en) * 1999-03-29 2011-01-25 The Directv Group, Inc. System and method for transmitting, receiving and displaying advertisements
WO2001029762A2 (en) * 1999-10-20 2001-04-26 Spyrus, Inc. Method and system for an integrated circuit card interface device with multiple modes of operation
EP1168160A1 (en) 2000-06-19 2002-01-02 Hewlett-Packard Company, A Delaware Corporation Process for automatically displaying graphical objects such as buttons in a web page
EP1168163A1 (en) * 2000-06-19 2002-01-02 Hewlett-Packard Company, A Delaware Corporation Process for installing a software package in a client computer
DE60039975D1 (de) 2000-06-19 2008-10-02 Hewlett Packard Co Verfahren zur Verwaltung von Einheiten eines Intranet Netzwerkes über das WEB
GB2364483A (en) * 2000-06-30 2002-01-23 Nokia Oy Ab Accessing more than one item of information from a remote server
WO2002032345A2 (en) 2000-10-17 2002-04-25 Coapt Systems, Inc. Intraosseous soft tissue-to-bone anchor
US6711738B1 (en) * 2000-11-27 2004-03-23 Siemens Aktiengesellschaft Method for replacing technologically aging sub-systems in a system
US7051326B2 (en) * 2000-12-13 2006-05-23 International Business Machines Corporation Code image distribution in a multi-node network of processors
US6904457B2 (en) * 2001-01-05 2005-06-07 International Business Machines Corporation Automatic firmware update of processor nodes
US20020103861A1 (en) * 2001-01-31 2002-08-01 Janz Susan M. Manipulating fleet devices in an index
US7552216B2 (en) * 2001-03-27 2009-06-23 Lexmark International, Inc. Method of sharing a printer
US8458689B2 (en) * 2001-03-30 2013-06-04 Roderick A. Barman Method and apparatus for reprogramming engine controllers
US20050065533A1 (en) * 2001-05-31 2005-03-24 Magen Hugh E. Apparatus for assembling anterior cruciate ligament reconstruction system
US20040153153A1 (en) * 2001-05-31 2004-08-05 Elson Robert J. Anterior cruciate ligament reconstruction system and method of implementing same
WO2003001392A1 (en) * 2001-06-21 2003-01-03 Turbolinux, Inc. Sequential identification of a group of computers
US7178141B2 (en) * 2001-07-30 2007-02-13 International Business Machines Corporation Method and system for identifying compatibility between firmware images
GB2380018A (en) * 2001-09-21 2003-03-26 Hewlett Packard Co Reprogramming electronic apparatus having non-volatile memory
US7571221B2 (en) * 2002-04-03 2009-08-04 Hewlett-Packard Development Company, L.P. Installation of network services in an embedded network server
US20030217357A1 (en) * 2002-05-14 2003-11-20 Parry Travis J. Monitoring firmware
US20030233493A1 (en) * 2002-06-15 2003-12-18 Boldon John L. Firmware installation methods and apparatus
EP1387268A3 (en) * 2002-07-31 2005-03-02 Ricoh Company Image forming apparatus, information processing apparatus and version check method
DE10238546A1 (de) * 2002-08-22 2004-03-11 Siemens Ag Verfahren zur Bereitstellung von Ressourcen in Kommunikations-Netzwerken
JP2004171411A (ja) * 2002-11-21 2004-06-17 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びバッファメモリの管理方法
US7523184B2 (en) * 2002-12-31 2009-04-21 Time Warner Cable, Inc. System and method for synchronizing the configuration of distributed network management applications
US7644288B2 (en) * 2003-03-19 2010-01-05 Ricoh Company, Ltd. Image forming apparauts that checks authenticity of an update program
US7509399B1 (en) 2003-05-08 2009-03-24 Juniper Networks, Inc. Programmable communication interface
US7162103B2 (en) * 2003-07-21 2007-01-09 Xerox Corporation Output job request electronic message notification system and method
DE10340372A1 (de) * 2003-09-02 2005-03-24 Robert Bosch Gmbh Verfahren zur Installation einer Programmkomponente
US7487345B2 (en) * 2003-10-10 2009-02-03 Dell Products L.P. Method of comparing build capability flags of replacement BIOS with boot capability flags of current BIOS to determine compatibility between BIOS revisions and installed hardware during flash update
US7404178B2 (en) 2004-02-18 2008-07-22 Hewlett-Packard Development Company, L.P. ROM-embedded debugging of computer
US20050262337A1 (en) * 2004-05-24 2005-11-24 Siemens Vdo Automotive Corporation Method and device for determining flash software compatibility with hardware
US20060069824A1 (en) * 2004-09-24 2006-03-30 Hodder Leonard B Method of detecting printer interface and printer incompatibility and printing device employing the method
US20070033164A1 (en) * 2005-06-28 2007-02-08 Xerox Corporation ABAP utility program for assigning device types
US20070106764A1 (en) * 2005-11-08 2007-05-10 Carl Mansfield System and method for device configuration using a portable flash memory storage device with an infrared transmitter
US20080045169A1 (en) * 2006-07-27 2008-02-21 Motorola, Inc. Method and system for radio configuration
CN101123785B (zh) * 2006-08-11 2013-01-23 华为技术有限公司 一种通信系统中管理终端的方法和系统
RU2454739C1 (ru) * 2011-01-12 2012-06-27 Российская Федерация, от имени которой выступает Министерство обороны Российской Федерации Способ программирования имс flash-памяти типа nand и устройство для его реализации
US8687947B2 (en) 2012-02-20 2014-04-01 Rr Donnelley & Sons Company Systems and methods for variable video production, distribution and presentation
JP2023172071A (ja) * 2022-05-23 2023-12-06 セイコーエプソン株式会社 情報処理装置、印刷システム、印刷制御方法、及び印刷制御プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589063A (en) * 1983-08-04 1986-05-13 Fortune Systems Corporation Data processing system having automatic configuration
JPH0685538B2 (ja) * 1986-05-07 1994-10-26 日本電気株式会社 通信端末着信応答方式
US5321840A (en) * 1988-05-05 1994-06-14 Transaction Technology, Inc. Distributed-intelligence computer system including remotely reconfigurable, telephone-type user terminal
US5056001A (en) * 1989-12-20 1991-10-08 Ge Fanuc Automation North America, Inc. Method for configuring an input/output module coupled to a programmable logic controller
GB2245726B (en) * 1990-06-29 1994-08-24 Sun Microsystems Inc Accessing an option board in a computer system
US5257368A (en) * 1991-03-28 1993-10-26 International Business Machines Corp. System for dynamically changing a system I/O configuration by determining differences between current and future configurations and describing differences to software and hardware control blocks
US5367640A (en) * 1991-04-30 1994-11-22 Hewlett-Packard Company System for configuring an input/output board in a computer
JPH0736175B2 (ja) * 1991-10-11 1995-04-19 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムのシステム構成設定方法、データ処理システム、及びデータ処理システム用拡張ユニット
US5452454A (en) * 1991-12-10 1995-09-19 Digital Equipment Corporation Generic remote boot for networked workstations by creating local bootable code image
US5611046A (en) 1992-11-18 1997-03-11 Canon Kabushiki Kaisha Method and apparatus for interfacing a peripheral to a local area network
US5546595A (en) * 1993-12-21 1996-08-13 Taligent, Inc. Object-oriented system using objects representing hardware devices, physical connectors and connections between the physical connectors for configuring a computer
US5530753A (en) * 1994-08-15 1996-06-25 International Business Machines Corporation Methods and apparatus for secure hardware configuration
US5502797A (en) * 1994-10-04 1996-03-26 Lexmark International, Inc. Apparatus with flash memory control for revision

Also Published As

Publication number Publication date
EP0710914A1 (en) 1996-05-08
JP3651987B2 (ja) 2005-05-25
US6023727A (en) 2000-02-08
DE69516634D1 (de) 2000-06-08
DE69516634T2 (de) 2000-09-21
EP0710914B1 (en) 2000-05-03

Similar Documents

Publication Publication Date Title
JP3535634B2 (ja) ネットワークプロトコル判断方法、ネットワークボード、及び周辺機器
JP3651987B2 (ja) 再プログラム可能ネットワーク通信装置及びネットワーク通信装置の再プログラム方法
JP3796282B2 (ja) ネットワーク通信装置
JPH08227402A (ja) 共用メモリのバス競合の削減方法
JP3689463B2 (ja) アービトレーション装置
EP0835485B1 (en) Network board which responds to status changes of its installed peripheral by generating a testpage
US5828863A (en) Interface device connected between a LAN and a printer for outputting formatted debug information about the printer to the printer
US5935262A (en) Outputting a network device log file
JP2539614B2 (ja) ポインタアドレスを発生するための装置および方法
EP0751656B1 (en) Protocol independent and adaptive network interface
JPH08227391A (ja) シリアルポート
WO1995003581A1 (en) Method for configuring multiple adapter cards on a bus
US5852746A (en) System for transmitting a message using status button to system administrator by using a signal comprising predetermined number of changes effected over a period
EP1234235B1 (en) Method and apparatus for remotely debugging computer software over a serial bus
WO2001040945A2 (en) Method and apparatus for providing secure remote debugging of computer software over a serial bus

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050222

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080304

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090304

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100304

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100304

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110304

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120304

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130304

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees