JP3588139B2 - Interface control device - Google Patents
Interface control device Download PDFInfo
- Publication number
- JP3588139B2 JP3588139B2 JP06815794A JP6815794A JP3588139B2 JP 3588139 B2 JP3588139 B2 JP 3588139B2 JP 06815794 A JP06815794 A JP 06815794A JP 6815794 A JP6815794 A JP 6815794A JP 3588139 B2 JP3588139 B2 JP 3588139B2
- Authority
- JP
- Japan
- Prior art keywords
- base address
- interface module
- configuration base
- interface
- communication bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0669—Configuration or reconfiguration with decentralised address assignment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/128—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Small-Scale Networks (AREA)
- Stored Programmes (AREA)
Description
【0001】
【産業上の利用分野】
本発明は、パーソナルコンピュータ用の増設カード(add−on card) に関し、より詳細には、外部イーサネットネットワークにATバスを接続するための、International Business Machines (IBM) AT 互換パーソナルコンピュータ用の増設インタフェースカードに関する。
【0002】
【従来の技術及び発明が解決しようとする課題】
IBM ATパーソナルコンピュータとAT互換パーソナルコンピュータは、内部通信用にAT標準化バスシステムを使用する。ATバスは、一般的には、8 及び16ビットシステムの場合にはIndustry Standard Architecture (ISA)バスと呼ばれ、32ビットシステムの場合にはExtended Industry Standard Architecture (EISA)と呼ばれる。このATバスの規格は、”AT Bus Design”, Edward Solari (Annabooks, 1990)に詳細に説明されており、この文献の主題が本明細書に引例として組み入れられている。ATバスとは、例えば中央処理装置(CPU) メモリや様々な入出力(I/O) 装置用インタフェースのようなコンピュータの様々な機能単位の間のインタフェースである。ATバスは、システムクロックと、記憶装置と、読取り書込みアクセスと、I/O 読取り書込みサイクルと、データバス方向と、データ及び割込み要求と、スピーカドライバと、を制御するために必要なロジックを与える。上記記憶装置は、ハードディスクと、フロッピーディスクと、電気的消去可能プログラム可能読出し専用メモリ(EEPROM)と、ランダムアクセスメモリ(RAM) と、を含む。上記I/O 装置は、プリンタと、モデムと、イーサネット通信ネットワークと、を含む。
【0003】
パーソナルコンピュータは、電子モジュールを保持し相互接続するためのモジュールカードラック(module card rack)を収容するハウジングを有する。このハウジングが開かれている時に、電子モジュールが上記ラックの中に挿入され、ハウジングの開口の反対側のコンピュータハウジングの末端に配置されたマザーボードに接続される。このマザーボードは、ATバスと電源と接地とを含むコンピュータ内モジュールの間の電気的相互接続を与える。ユーザは、コンピュータハウジングに対してコンピュータモジュールを取り付け又は取り外しすることによって、そのパーソナルコンピュータの能力を変化させることが可能である。例えば、RAM(Random Access Memory) モジュールを上記ハウジング内に挿入することによって、記憶容量を増大させることが可能である。
【0004】
ATバスに接続され且つ記憶装置を有する各装置は、CPU がその記憶装置に対する読取り又は書込みを命令することが可能であるように、その各装置が使用するメモリ空間を定義するメモリ基底アドレス(ベースアドレス)(base address)も持たなければならない。こうした読取り書込み命令に対して1つの装置のみが応答するように、各々の記憶装置は固有のメモリ基底アドレスを有することが必要である。ATバス規格は、特定のメモリアドレスを特定の装置に割り当てる。更に明確に言えば、ハードディスク駆動装置とフロッピーディスク駆動装置とRAM メモリとは各々に固有のメモリ基底アドレス範囲を割り当てられる。従って、あらゆるパーソナルコンピュータは、こうしたアドレスを、ハードディスク駆動装置とフロッピーディスク駆動装置とRAM メモリとの通信のために使用する。これとは対照的に、新たな装置がそのパーソナルコンピュータに接続される時には、その新たな装置のメモリ基底アドレスは、他の装置に既に割り当てられているアドレスの1つであってはならないが、未だ割り当てられていないアドレス範囲内の任意のアドレスであってよい。しかし、各々に固有の記憶装置とそれに対応する固有のメモリ基底アドレスとを有する複数の装置が付加される時には、2つ以上の装置が同一のメモリ基底アドレスを有する可能性がある。この事態が生じる場合には、システム電源投入時の初期設定ルーチン中に、CPU が、2つ以上の別々の装置に対応するアドレスを送り出す。これらの2つ以上の別々の装置は各々にアドレス命令に応答し、これらの装置全てがメモリの読取り又はメモリへの書込みを行おうとする。こうした多重応答は、そのバスのデータ部分上でのコンフリクトを生じさせる。場合によっては、例えばシステム起動時又は読取り中に、読み取られるデータがシステム期待値と異なる可能性があるので、CPU がバス上に上記コンフリクトを検出する可能性がある。
【0005】
現行のシステムでは、増設カードの1つのタイプは、ATバスとイーサネットネットワークシステムとの間をインタフェースするためのイーサネットインタフェースモジュールである。イーサネットの規格は、Institute of Electrical and Electronics Engineers, Inc. によって1989年に発行された”Information Processing Systems − Local Area Networks − Part 3: Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications”, International Standard ISO, 8902−3: 1989, ANSI/IEEE Std 802.3 − 1988で詳細に説明され、この主題は本明細書に引例として組み入れられている。更に、現行のシステムでは、メモリアドレスのコンフリクトが検出される時に、そのシステムの電源を切り、コンフリクトを生じさせていると推測される増設カードをシステムから取り外し、そのモジュール上に備えられている何らかの手段によってそのカードの構成を変更し、その後で、その増設カードをシステム内に再び取り付け、システム電源を投入し、そのモジュールの動作を再テストすることが必要である。(基底アドレスを変更するために現行のシステムで使用される手段は、可動ジャンパ又はスイッチである。) CPUは再びその初期設定ルーチンを行い、別のメモリ基底アドレスのコンフリクトが検出されると、そのメモリのコンフリクトが取り除かれるまで、モジュールの取り外しとメモリ基底アドレスの物理的変更との過程が反復される。メモリのコンフリクトが検出されない時には、CPU はその初期設定ルーチンを実行し続ける。
【0006】
ATバスに接続される複数のI/O インタフェース装置は、各々にI/O 基底アドレスを有する。これらのI/O インタフェース装置は、そのI/O 基底アドレスをバス上に検出すると、バス上の命令に応答する。上記メモリ基底アドレスの場合と同様に、各々のI/O インタフェース装置が固有のI/O 基底アドレスを有することが必要である。メモリアドレスと同様に、ATバス規格は、I/O アドレス範囲を特定の装置に割り当てる。従って、これらのI/O アドレスは、これらの装置によってだけ使用される。しかし、他の装置がATバスに付け加えられる時に、その各々の装置はその装置に固有のI/O アドレスを持たなければならない。しかし、メモリ基底アドレスの場合と同様に、これらの装置は、事前に割り当てられたアドレスを持たない。従って、ATバス規格は、これらの新たな装置にI/O アドレス範囲を割り当てる。
【0007】
しかし、新たな装置がATバスに接続される時には、CPU がその初期設定ルーチンを実行し終わるまで、システムは、ATバス上の2つ以上の装置が同一のI/O 基底アドレスを使用しているかどうかを知ることはない。従って、CPU が、同一のアドレスを使用するATバス上の2つ以上の装置に対して1つのI/O バスアドレスを送る時に、これらの2つ以上の装置全部が応答し、ATバス上にコンフリクトを生じさせる。
【0008】
EEPROMに基づく構成を有する現行のシステムは、ジャンパ又はスイッチに基づく設計によってアドレスコンフリクトを解消する方法に相応する方法によって、I/O 基底アドレスにおけるコンフリクトを解決する。詳細に説明すると、EEPROMに基づく構成を有するイーサネットモジュールの場合には、コンピュータユーザが先ず最初にコンピュータの電源をオンにする。CPU の初期設定ルーチン中に、I/O メモリアドレスのコンフリクトが検出されると、ユーザは、第1のコンピュータから当該モジュールを取り外し、I/O 基底アドレスコンフリクトを起こしていない第2のシステムの中にそのモジュールを挿入しなければならない。その後で、ユーザは、そのモジュールのEEPROMを書き直すことによって、そのモジュールのI/O アドレスを変更することが可能である。その後で、最初の構成が既に変更された上記モジュールが、当初のシステムの中に再び取り付けられることが可能である。
【0009】
アドレスコンフリクトを解消するための上記方法は、面倒であり、高コストであり、オペレーターエラーを被り易い。その作業は、第1のコンピュータからモジュールを取り外すことと、そのモジュールを第2のコンピュータの中に挿入することと、その第2のコンピュータの電源をオンし第2のシステム内でそのモジュールを再構成することと、そのモジュールを第2のシステムから取り外すことと、そのモジュールを第1のシステムの中に再挿入して再テストすることと、全てのコンフリクトが除去されるまでこの作業を繰り返すことと、を必要とする。これらのステップの各々は、その遂行のために労力を必要とし、従って、時間浪費的である。セットアップとテストと手直しとのための追加時間が、そのモジュールのコストを増大させる。更に、上記の多数のステップが、手直し中にエラーが生じる可能性と、上記2つのコンピュータシステム内でのモジュールの取り外しと取り付けの繰り返しによってモジュール又はコンピュータに損傷を与える可能性と、を増大させる。
【0010】
増設モジュールのメモリアドレスとI/O アドレスとをジャンパ無しで変更することと、その変更におけるステップを自動化しそのステップ数を減少させることと、が求められている。
【0011】
【課題を解決するための手段及び作用】
簡略的に説明すると、本発明の実施例の1つは、アドレス指定可能インタフェースモジュール用のインタフェース制御装置である。このインタフェースモジュールは、他のアドレス指定可能インタフェースモジュールと共に通信バスを介して中央処理装置に結合されるように適合させられている。各々のインタフェースモジュールは、中央処理装置によって通信バス上に与えられる各インタフェースモジュールに固有の基底アドレスと、上記インタフェースモジュールから通信バスへのデータの読取りのための、中央処理装置によって通信バス上に与えられる読取り命令、又は、通信バスから上記インタフェースモジュールへのデータの書込みのための、中央処理装置によって通信バス上に与えられる書込み命令と、に応答するように適合させられている。上記インタフェース制御装置は、対応するインタフェースモジュールがそれに応答しなければならない固有のアドレスを決定するための、記憶された構成基底アドレスを有する。更に、このインタフェース制御装置は、対応するインタフェースモジュールによる応答のための固有のアドレスの決定時に、対応するインタフェースモジュールによる使用のための変更された構成アドレスを含む基底アドレスを復号する復号器も有する。このインタフェース制御装置は、記憶された構成基底アドレスが他のインタフェースモジュールのいずれか1つのための固有のアドレスと同一である時に、記憶された構成基底アドレスを自動的に変更する回路を含む。この回路は、記憶された構成基底アドレスを異なった構成アドレスに変更するために、通信バス上の予め決められたアドレスと読取り命令とに対して応答する第2の回路を含む。1つの特定の実装例では、上記第1の回路は、構成基底アドレスによって表される値を増分調節するためのカウンタを含む。
【0012】
簡略的に説明すると、本発明の実施例の1つは、同じバスに接続された第2のモジュールとのコンフリクトを除去するために、そのバスに接続された第1のモジュールの第1の識別コードを、開始命令に応答して、適応的に調節するための方法である。第1の識別コードが1つのレジスタ内に格納される。命令された識別コードが上記バスを通して受け取られる。記憶された第1の識別コードが、上記バスを通して受け取られた上記命令された識別コードと比較される。第1の識別コードと命令された識別コードとの間の一致に応答して、データが上記バスを通して送り出される。期待データが発生させられる。送り出されたデータは、そのデータの期待値と比較され、送り出されたデータがこの期待データと一致しない場合には、その結果が不一致として識別される。上記レジスタ内の記憶された第1の識別コードが、この識別された不一致に応答して変更される。第1のモジュールが第1の識別コードによって一意に識別されるように、送り出されたデートと期待データとの間に不一致が識別されなくなるまで、上記の過程が逐次的に反復される。
【0013】
上記バスがIBM ATバスであり、識別コードが入出力基底アドレスであり、且つ、開始命令がハードウェアリセット命令であることが好ましい。
【0014】
同じバスに接続された第2のモジュールとのコンフリクトを回避するために、そのバスに接続された第1のモジュールの第1の識別コードを開始命令に応答して適応的に調節するための回路が提供される。この回路は、第1の識別コードを記憶するための手段と、この記憶手段内の第1の識別コードを命令された識別コードと比較するための手段と、第1の識別コードと命令された識別コードとの間の一致に応答してデータを送り出すための手段と、第1のモジュールと第2のモジュールの両方が第1の識別コードと命令された識別コードとの間の一致に応答してデータを送り出すかどうかを検出するための、及び、この一致が無い時にコンフリクト信号を発生させるための手段と、上記コンフリクト信号に応答して、第1の識別コードと命令された識別コードとの間の一致が生じる時に第1のモジュールと第2のモジュールとが両方ともデータを送り出すことがないように、第1の識別コードを変更するための手段と、を有する。
【0015】
特定の実施例では、インタフェースモジュールが、Industry Standard Architecture (ISA)バスとイーサネットネットワークとの間でデータを転送する。ISA バスは、アドレスの第1のグループ及び第2のグループとリセット命令とを、中央処理装置(CPU) から上記インタフェースモジュールに転送し、上記インタフェースモジュールからCPU にデータを転送する。このインタフェースモジュールは、可適応の識別コードを有する。このインタフェースモジュールは、可適応の識別アドレスを記憶するためのレジスタを含む。CPU からの可適応識別アドレスとアドレスの第1のグループとを復号するために、復号器がこのレジスタに結合される。バッファメモリがこの復号器とISA バスとに結合される。復号されたアドレスの第1のグループの中の選択されたアドレスが可適応識別アドレスを含む時に、このバッファメモリが、復号されたアドレスの第1のグループに応答して、ISA バスにデータを送り出すか、又は、ISA バスからデータを受け取る。CPU からのアドレスの第2のグループとリセット命令とに応答して、カウンタが、上記レジスタ内に記憶された可適応識別アドレスを変更する。
【0016】
【実施例】
図1は、本発明の原理によるイーサネットとATバスとの間を通信するためのイーサネットインタフェースモジュールを使用するコンピュータを示す機能ブロック図である。コンピュータ10は、ATバス14に接続された中央処理装置(CPU) モジュール12を有する。このCPU 12は、Intel Corporation, Santa Clara, Californiaによって製造される486 タイプのマイクロプロセッサチップから構成されることが好ましい。上記のように、ATバス14は、IBM ATパーソナルコンピュータとAT互換パーソナルコンピュータとで使用される標準バスである。ATバス14は、ハードディスク16とフロッピーディスク18とランダムアクセスメモリ(RAM)20 とを含む複数の記憶装置にも接続される。幾つかの記憶装置が示されているが、本発明はこれらの装置全てを必要とするわけではない。プリンタインタフェースモジュール22が、ATバス14と、コンピュータ10の外部にあるプリンタ23と、に接続される。キーボードインタフェースモジュール24が、ATバス14とキーボード25とに接続される。キーボード25は、ユーザによって選択された命令をコンピュータ10に与える。イーサネットインタフェース(I/F) モジュール26は、ATバス14とイーサネットネットワーク27との間の通信のためのインタフェースを与える。或いは、インタフェースモジュール26は、他のバスに対してインタフェースしてもよい。上記のように、イーサネットは、典型的にはローカルエリアネットワーク(Local Area Network)(LAN) のために使用される標準化された通信ネットワークである。イーサネットインタフェースモジュール26は、1つのモジュール上にパッケージ化されることが好ましい。
【0017】
IBM ATコンピュータの場合の電源投入シーケンスは、当業で公知である。簡略的に説明すると、電源投入時に、そのコンピュータ10内の各モジュールに初期設定ルーチンを開始するように命じるために、CPU 12が、コンピュータ10内の全モジュールに対してハードウェアリセットを送り出す。CPU 12は、そのCPU モジュール上に配置されたプログラム可能読出し専用メモリ(PROM)から、基本入出力システム(BIOS)のための命令を読み取る。BIOSからの複数の初期設定ルーチンを実行した後に、CPU 12は、上記メモリからユーティリティプログラムを読み取る。このユーティリティプログラムは、上記記憶装置の1つ(好ましくはハードディスク16)の中に前もって格納され、ATバス14に接続されると見込まれるモジュールを識別し、これらのモジュールと、ATバスに対するこれらのモジュールのインタフェースとに対して、初期設定ルーチンと診断ルーチンとを実行する。
【0018】
図2は、図1に示されるコンピュータのためのイーサネットインタフェースモジュール26の機能ブロック図である。イーサネットインタフェース制御信号が、CPU 12からATバス14を通してライン102 上をインタフェース制御装置32に送られ、一方、これとは逆方向に、インタフェース制御装置32からATバス14ヘライン102 上を送られる。CPU 12は、ATバス14とシステムアドレスバス116 とを通して、ブートプログラム可能読出し専用メモリ(boot programmable read−only memory)(PROM) 34 とインタフェース制御装置32とにシステムアドレス命令を与える。イーサネットインタフェースモジュールのアドレスは、そのモジュールを識別するための識別コードとして機能する。そのイーサネットインタフェースモジュール 26 のアドレスに合致する命令アドレスを受け取ると、モジュール26は要求された機能に応答する。ブートPROM 34 は、イーサネットインタフェースモジュール26用の立上げプログラムを含む。このブートPROM 34 は、例えばハードディスク16又はフロッピーディスク18を持たない無ディスクのシステム(diskless system) で使用されることが可能であり、この場合には、ドライバプログラムがイーサネット 27 からロードされる。インタフェース制御装置32は、ATバス14とイーサネット 27 との間をインタフェースするための制御回路を与える。インタフェース制御装置32は、ブートPROM 34 を使用可能にしてその出力を制御するために、ライン114 を通してPROM制御信号を与える。ブートPROM 34 は、バス110 を通して、インタフェース制御装置32にデータを与える。
【0019】
CPU 12は、第1の方向においては、ATバス14とそれに続いてシステムデータバス106 とを通して、16ビットATバス14の場合には、システムデータバス高位(ハイ)バイトトランシーバ(system data bus high byte transceiver)40 とシステムデータバス低位(ロウ)バイトトランシーバ(system data bus low byte transceiver)42との両方にシステムデータを与え、8 ビットATバス14の場合には、システムデータバス低位バイトトランシーバ42だけにシステムデータを与える。これに加えて、システムテータバス106 を通して命令と状態の転送が行われる。これとは逆に、CPU 12は、第2の方向において、システムデータバス106 とそれに続いてATバス14とを通して、16ビットATバス14の場合には、システムデータバス高位バイトトランシーバ40とシステムデータバス低位バイトトランシーバ42との両方からシステムデータを受け取るか、又は、8 ビットATバス14の場合には、システムデータバス低位バイトトランシーバ42だけからシステムデータを受け取る。システムデータバス高位バイトトランシーバ40は、選択的に、バス108 を通して、インタフェース制御装置32にデータを与えるか、又は、これとは逆方向に、インタフェース制御装置32からデータを受け取る。インタフェース制御装置32は、システムデータバス高位バイトトランシーバ40を通したデータ伝送を制御するために、ライン104 を通してトランシーバ制御信号を与える。同様に、システムデータバス低位バイトトランシーバ42は、選択的に、バス110 を通して、インタフェース制御装置32にデータを与えるか、又は、これとは逆方向に、インタフェース制御装置32からデータを受け取る。インタフェース制御装置32は、システムデータバス低位バイトトランシーバ42を通したデータ伝送を制御するために、ライン112 を通してトランシーバ制御信号を与える。
【0020】
クロック118 がライン238 を通してインタフェース制御装置32にクロック信号を与える。インタフェース制御装置32は、ライン143 を通して発光ダイオード(LED)144に制御信号を与え、これらの発光ダイオード144 は、イーサネットインタフェースモジュール26の状態の視覚的表示をもたらす。例えば、LED 144 は、受信、送信、衝突、リンクテストパス(link test pass)を表示することが可能である。IDメモリ36が、インタフェース制御装置32からのライン120 を通してのIDメモリ制御信号に応答して、ライン122 を通してインタフェース制御装置32に無ジャンパの形態識別情報とノード識別情報とを与える。ブートPROM構成では、IDメモリ36が、ブートPROMアドレスのための記憶域を与える。IDメモリ36が電気的消去可能プログラム可能読出し専用メモリ(EEPROM)であることが好ましい。別の実施例では、形態識別とノード識別とが、バス108 、110 に直接的にこのデータを与えるID PROM 内に格納されてもよい。インタフェース制御装置32は、バッファ制御信号142 とバッファ記憶装置バスアドレス信号140 とをバッファ記憶装置138 に供給し、スタティックランダムアクセスメモリ(SRAM)であることが好ましいこのバッファ記憶装置138 は、ATバス14とイーサネット27との間のデータバス136 を通して転送されるデータのためのメモリ記憶域を与える。SRAM 138は、典型的には8 キロバイトまたは32キロバイトである。
【0021】
コネクタインタフェース30は、イーサネットインタフェースモジュール26をイーサネット27に電気的に接続するための幾つかのタイプの機械式コネクタを有する。更に具体的に言えば、イーサネットインタフェースモジュール26は、AUI インタフェース用にはAttachment Unit Interface (AUI) コネクタ128 を有し、同軸ラインを通しての信号通信用には同軸トランシーバインタフェース130 を有し、ツイストペアインタフェース用にはツイストペアコネクタ134 を有する。インタフェース制御装置32は、AUI コネクタ128 と同軸トランシーバインタフェース130 との両方に対してライン124 を通して伝送対信号(transmit pair signal)を与える。AUI コネクタ128 と同軸トランシーバインタフェース130 の各々は、ライン126 を通してインタフェース制御装置32に受信/衝突対信号(receive/collision pairs signals) を与える。インタフェース制御装置32とツイストペアコネクタ134 は、ライン132 を通して差分対信号(differential pairs signals)を送ることによって、互いに通信し合う。
【0022】
図3は、図2に示されたインタフェース制御装置の機能ブロック図である。インタフェース制御装置32は、5つの機能ブロック、即ち、システムインタフェース146 と、バッファ制御装置152 と、制御及び状態レジスタ150 と、送信回路154 と、受信回路156 と、を有する。
【0023】
システムインタフェース146 は、上記のようにライン102 、104 、108 、110,112 、114 、116 上の信号を使用してATバス14と通信する。システムインタフェース146 は、ATバス14とイーサネット27との間での通信中にデータを保持するためのバッファレジスタ148 を有する。システムインタフェース146 はバッファ制御装置152 と双方向に通信し、このバッファ制御装置152 は、バッファ制御装置152 と、バッファレジスタ148 、IDメモリ36、SRAM 138、受信回路156 、及び送信回路154 と、の間のデータ転送を制御する。制御及び状態レジスタ150 は、システムインタフェース146 とバッファ制御装置152 と送信回路154 と受信回路156 とから制御及び状態情報を受け取り、システムインタフェース146 とバッファ制御装置152 とに制御及び状態情報を送る。
【0024】
送信回路154 は、符号器160 内でのバッファ制御装置152 からのデータの符号化を制御するための送信回路制御装置158 を有する。符号化されたデータは、パルス整形回路及びフィルタ162 によって処理され、その後で、送信回路増幅器166 内で増幅され、コネクタインタフェース30に供給される(図2を参照されたい)。これとは逆に、受信回路156 は、コネクタインタフェース30からのデータ信号を受け取り、受信回路増幅器174 内で増幅する。増幅されたデータ信号は、受信回路スライサ172 内で処理され、その後で復号器170 によって復号される。その後で、復号されたデータ信号が受信回路制御装置168 に送られ、更に、バッファ制御装置152 に送られる。衝突回路(collision circuit)164が、復号器170 からの復号信号と符号器160 からの符号化信号とを処理することによって、イーサネット27上での受信と送信との間の衝突を解消する。
【0025】
図4は、図1に示されたコンピュータ10のためのイーサネットインタフェースモジュール26の具体的な実現例の機能ブロック図である。
【0026】
CPU 12は、ATバス14を介して、イーサネットインタフェースモジュール26と、ATバス14上のその他のモジュールとにシステムアドレス(System Address)(SYSADDRESS)信号を送る。更に明確に言えば、イーサネットインタフェースモジュール26上では、SYSADDRESS信号が、ブートPROM 34 のアドレス入力とインタフェース制御装置32のアドレス入力とに対してライン116 を通して供給される。CPU 12は、メモリアドレス空間とI/O アドレス空間とを定義するためにこれらのシステムアドレス命令を送り出す。このアドレス指定は、図9〜12と共に下記で詳細に説明される。更に、ATバス14は、イーサネットインタフェース制御信号ライン102(図2)の一部分であるライン176 を通して、ブートPROM 34 の出力イネーブル(Output Enable)(OEバー) 入力とインタフェース制御装置32との両方にシステムメモリ読取り(System Memory Read)(SMEMRバー) 命令を与える。(信号名称の上線(バー)の取り決めは、その信号が低状態(low state) でアサートされることを表している)。SMEMR バー命令は、ATバス14からのアクティブ低(アクティブロウ)(active low)信号であり、この信号は、現在のバスサイクルがメモリ読取り動作であることを示し、且つATバス14を通してイーサネットインタフェースモジュール26が上記記憶装置からデータを出力することを要求する。ここでは命令がアクティブ高低信号として説明されるが、本発明はこれに限定されない。イーサネットインタフェースモジュール26は、アクティブ低信号又はアクティブ高(アクティブハイ)(active high) 信号のどちらの場合にも設計されることが可能である。
【0027】
更に、CPU 12は、システムデータ(System Data)(SYSDATA)バス106 を通して全てのデータと命令と状態との転送を可能にし、又は、ATバス14を通して全てのデータと命令と状態をイーサネットインタフェースモジュール26に送るよう他の装置に命令する。更に明確に言えば、システムデータバス高位バイトトランシーバ40とシステムデータバス低位バイトトランシーバ42との両方の第1の双方向入力/出力端子に至るSYSDATA バスライン106 が、ATバス14に接続される。CPU 12がシステムデータバス高位バイトトランシーバ40を通るデータフロー方向を制御し、一方、インタフェース制御装置32がシステムデータバス低位バイトトランシーバ42を通るデータフロー方向を制御するということを除いて、システムデータバス高位バイトトランシーバ40とシステムデータバス低位バイトトランシーバ42との両方が同一の仕方で動作する。システムデータバス高位バイトトランシーバ40は、CPU 12からの入出力読取り(Input/Output Read)(IOR バー) 命令を、ATバス14とライン178 とを経由して、このトランシーバの方向制御(DIR) 入力端子を介して受け取る。このDIR 端子上のアクティブ高信号は、書込み動作のために、システムデータバス106 からバッファシステムデータ(BSD) バス180 (バス108 、110 を含む (図2))へデータを転送するように、システムデータバス高位バイトトランシーバ40を切り替える。このバッファシステムデータ(BSD) バス180 は、イーサネットインタフェースモジュール26上の内部データバスである。DIR 入力端子上のアクティブ低信号は、読取り動作のために、BSD バスからシステムデータバスに逆方向にデータを転送するように、トランシーバ40を切り替える。IOR バー命令は、CPU 12からのアクティブ低信号であり、この信号は、現在バスサイクルがI/O 読取り動作であることを示し、且つATバス14のシステムデータバス106 上にイーサネットインタフェースモジュール26がデータを出力することを要求する。
【0028】
バッファシステムデータバス( BSD<15:0> ) 180 は、ブートPROM 34 と、システムデータバス高位バイトトランシーバ40と、システムデータバス低位バイトトランシーバ42と、制御装置チップ32とを相互接続する。(ここで使用される信号ライン上のビットを定義する取り決めは、コロンで分けられた<>記号でビット数を囲むことである。例えば、BSD <15:0>は、BSD バスのビット15−0を表す。)システムデータバストランシーバ40、42は、74ALS245トライステートバストランシーバ(tri−state bus tranceiver)であることが好ましい。ジャンパバッファ38、39の出力も、システムデータバス高位バイトトランシーバ40とシステムデータバス低位バイトトランシーバ42の第2の双方向入出力端子へのBSD バス<15:0> 180上に与えられる。
【0029】
インタフェース制御装置32は、システムデータバス高位バイトトランシーバ40のイネーブル(Enable)(EN バー) 入力へライン182 を通してイネーブルデータ高位バイト(Enable Data High Byte)(ENHBバー) 命令を与える。イネーブルデータ高位バイト信号は、システムデータバス高位バイトトランシーバ40をイネーブル又はディスエーブルにするアクティブ低信号である。更に明確に言えば、イネーブルデータ高位バイト命令は、バッファシステムデータバス180 からSYSDATA バス106 を切り離すために、システムデータバス高位バイトトランシーバ40をディスエーブルにする。
【0030】
イーサネットインタフェースモジュール26によるシステムデータフローの制御のために、システムデータバス低位バイトトランシーバ42が同様の仕方で制御される。しかし、システムデータバス低位バイトトランシーバ42に対する両方の制御信号は、インタフェース制御装置32によって与えられる。更に詳細に説明すると、ライン184 上のイネーブルデータ低位バイト(Enable Data Low Byte)(ENLB バー) 信号によってシステムデータバス低位バイトトランシーバ42をイネーブルにすることによって、及び、ライン186 上に低位バイト方向(Low Byte Direction)(LBDIRバー) 信号を送ることによってバッファシステムデータバス180 からシステムデータバス106 へのデータフローの方向を制御することによって、イーサネットインタフェースモジュール26がシステムデータバス106 上にデータを出力する。
【0031】
下記で詳細に説明されるように、イーサネットインタフェースモジュール26は、有ジャンパモード(jumper mode) と無ジャンパモード(jumperless mode) のどちらでも動作することが可能である。有ジャンパモードでは、イーサネットインタフェースモジュールの構成は、このモジュール上の物理的ワイヤである構成ジャンパ188 〜195 によって定義される。ジャンパ188 、192 はI/O 基底アドレスを定義し、ジャンパ189 、193 はメモリ基底アドレスを定義し、ジャンパ190 、194 はDMA (Direct Memory Access)アクノリッジ(Acknowledge)(DACK) を定義し、ジャンパ191 、195 は割込みを定義する。DACK信号はアクティブ低信号であり、この信号は、ホストシステムとイーサネットインタフェースバッファメモリとの間でデータを転送する用意が外部DMA 制御装置(図示されていない)に整っていることを示す。I/O 基底アドレスとメモリ基底アドレスと割込み信号は、図9 〜12と共に下記で定義される。構成ジャンパは、その一方の末端において、接地又は電圧源(VCC)(図示されていない) に接続され、その他方の末端において、構成ジャンパバッファ38、39の入力に接続される。或いは、その代わりに、構成ジャンパ192 〜195 は、上記の構成以外の構成を定義するために使用されてもよい。EEPROMとID PROM のどちらが初期パラメタを格納するのかということと、その動作が有ジャンパ動作と無ジャンパ動作のどちらであるかということを定義する1組のモードジャンパ235 が、インタフェース制御装置32に与えられる。
【0032】
有ジャンパモードでは、各々の構成ジャンパの論理レベルが、バッファシステムデータバス180 に与えられる。イーサネットインタフェースモジュール26が構成ジャンパの状態を読み取ることを求めると、インタフェース制御装置32は、ジャンパバッファ38のイネーブル(EN バー) 入力に対してライン196 を通して構成レジスタ1選択(Select Configuration Register 1) 命令(SEL12) を与え、ジャンパバッファ38は、これに応答して、構成ジャンパ信号をバッファシステムデータバス180 に与える。SEL 12命令は、無ジャンパモードでは使用されない。この代わりに、ジャンパバッファ39は、構成ジャンパバッファ39のイネーブル(EN バー) 入力にインタフェース制御装置32から与えられるライン198 上の構成レジスタ2選択(Select Configuration Register 2) 命令(SEL13) によってイネーブルにされる。下記で説明されるように、SEL13 命令は、シフトレジスタ/カウンタ48からの読取りを行うために無ジャンパモードで使用される。構成ジャンパバッファ38、39は、74LS244 トライステートバッファであることが好ましい。論理1レベルは、ライン196 上のSEL12 信号とライン198 上のSEL13 信号のどちらの場合にも、その対応するバッファ出力を高インピーダンス状態に切り替え、ジャンパされた入力をバスへの出力から切り離す。これとは逆に、論理0レベルは、SEL12 命令196 とSEL13 命令198 のどちらの場合にも、その対応するバッファ38、39を各々に切り替えて、構成ジャンパ188 〜195 に対応する信号をバッファシステムデータバス180 に与える。
【0033】
IDメモリ36は、イーサネットインタフェースモジュール26のための構成バイトを記憶する。IDメモリ36は、256 、512 又は1024ビットを各々に有するNational Semiconductor NMC93C06 、C26 又はC46 シリーズのような、直列EEPROMであることが好ましい。直列EEPROMは、インタフェース制御装置32からの3つの入力、即ち、直列データ入力と、直列データクロック又はシフトクロック(SK)と、チップ選択(chip select)(CS) とを有する。IDメモリ36は、単一出力である直列データ出力(DO)をライン206 を通してインタフェース制御装置32に与える。命令とアドレスと書込みデータとの全てが、IDメモリ36入力としてライン200 を通してIDメモリ36の入力端子に与えられる。直列EEPROMの読取りデータと状態情報とが、直列データ出力端子から出力される。インタフェース制御装置32は、チップ選択信号をライン202 を通してIDメモリ36に与える。直列EEPROMは、インタフェース制御装置32からのライン204 上のシフトクロック(SK)の低から高への遷移時に、データをシフトイン(shift−in)又はシフトアウト(shif−out)する。
【0034】
別の実施例では、ID PROM 208 が、ライン210 を通して、バッファシステムデータバス180 に対してデータを与え、バッファシステムデータバス180 からデータを受け取る。インタフェース制御装置32は、ID PROM 208 をイネーブルにするためにPROMチップ選択信号をライン212 上に与え、ID PROM 36をアドレスするために、ラッチされたアドレス信号をライン213 上に与える。
【0035】
(SRAM 138とも呼ばれる)バッファ記憶メモリ138 と任意の追加のバッファ記憶メモリ138’とが、そのメモリ内の記憶場所を選択するための、インタフェース制御装置32からのアドレス信号140 を受け取る。インタフェース制御装置32は、SRAM 138、138’上の各々のチップイネーブル入力端子にバッファチップ選択信号をライン224 、226 を通して与え、その選択されたチップをイネーブルにする。更に、インタフェース制御装置32は、SRAM 138、138’の両方に対して、ライン228 を通して書込みイネーブル(write enable)(WE バー) 信号を与え、ライン230 を通して出力イネーブル(output enable)(OEバー) 信号を与える。SRAM 138、138’とインタフェース制御装置32との間でバス232 を通してバッファデータが双方向に通信される。バッファデータのビット7〜0がSRAM 138に与えられる。バッファデータのビット15〜8 がSRAM 138’ に与えられる。
【0036】
インタフェース制御装置32とコネクタインタフェース30は、上記のライン124 、126 、132 を通して通信する。コネクタインタフェース30は、イーサネット27に結合される。インタフェース制御装置32は、ライン222 を通してATバス14にシステム要求を与え、ライン220 を通してATバス14からシステム制御信号を受け取る。ライン220 、222 はライン102 の一部分である(図2)。
【0037】
I/O 基底アドレスジャンパは、有ジャンパモードでI/O 基底アドレスを定義するための構成バイトのビット2〜0を置換するために、ライン216 に接続されることが可能である。同様に、メモリ基底アドレスジャンパは、メモリ基底アドレスのビット5〜3又は(下記で説明される)割込み要求のビット7〜6を置換するためにライン218 に接続されることが可能である。割込み要求0 は、インタフェース制御装置32にライン214 を通して与えられる。
【0038】
図5は、図4に示されたインタフェース制御装置のアドレス復号回路及び構成バイト処理回路の機能ブロック図である。
【0039】
ジャンパモード復号器44は、接地又は電圧源(VCC)(図示されていない) の何方かに選択的に接続されている(ライン235 として一括して示される)第1の入力と第2の入力とを有するモードジャンパ235 を有する。ジャンパモード復号器44の一方の出力は、ライン237 上の有ジャンパ/無ジャンパ(JP/JPLESS) 信号であり、この信号は、そのモジュールがジャンパワイヤの変更又は(下記で説明される)ソフトウェアの何方によって再構成されることになるかということをインタフェース制御装置32に対して示す。例えば、第2の入力235 を電圧源(VCC) に接続する時には、ライン237 上のJP/JPLESS 信号は、そのモジュールが無ジャンパモードで動作していることを示す論理1である。これとは逆に、第1の入力235 を接地に接続する時には、JP/JPLESS 信号は、そのモジュールが有ジャンパモードで動作していることを示す論理0である。
【0040】
IDメモリ36からのライン206 上の直列データ出力は、インタフェース制御装置32内のデータ選択マルチプレクサ(MUX)46 の第1の入力とシフトレジスタ/カウンタ48との両方に与えられる。シフトレジスタ/カウンタ48は、ビット7〜0を有する8ビット直列入力/並列出力シフトレジスタを含む。ビット2〜0(I/O SEL <2:0> とも呼ばれる)は、I/O 基底アドレスを定義する。ビット5〜3(MSEL <2:0>とも呼ばれる)はメモリ基底アドレスを定義する。ビット7〜6(IRQ <3:0> とも呼ばれる)は割込みライン構成を定義する。これらのビットの復号を下記で詳細に説明する。シフトレジスタ/カウンタ48は、下記で説明するように、ビット2〜0用のカウンタとしても機能する。
【0041】
データ選択MUX 46は、BSD バス180 に与えられるデータを選択的に制御する。更に、シフトレジスタ/カウンタ48のビット7〜0は、データ選択MUX 46の第2の入力に接続される。インタフェース制御装置32の内部バスであり且つシステムインタフェース146 と制御及び状態レジスタ150 とバッファ制御装置152 と送信回路154 と受信回路156 と(図3)を相互接続するバスである、システムデータ出力高/低バス(System Data Output High/Low bus)(SDOHL <7:0>)信号が、データ選択MUX 46の第3の入力に与えられる。
【0042】
データ選択MUX 46によって与えられる信号は、制御論理回路58によって制御される。図6は、データ選択MUX 46によってバッファシステムデータバスに与えられるデータを制御するための制御論理回路の略図である。ライン237 上の有ジャンパ/無ジャンパ(JP/JPLESS) 信号がジャンパモード復号器44によって制御論理回路58の第1の入力に与えられる。バッファレジスタ148 (図3)の読取りアドレス13に対するREAD 13 − 命令が、制御論理回路58の第2の入力に与えられる。JP/JPLESS 信号と READ 13− とが、データ選択MUX 46に与えられるJPLS− READ 13 信号を発生させるために、制御論理回路58内で否定論理和 (NOR)をとられる。
【0043】
IDメモリ36からデータ出力を読み取るためのREAD 11 命令も、データ選択MUX 46に与えられる。表Iは、データ選択MUX 46用に選択された出力に関する真理値表を示す。
【0044】
データ選択MUX 46の出力は、双方向トライステートバッファ50に接続される。双方向トライステートバッファ50の双方向入出力ポートが、上記の通りにバッファシステムデータバス(BSD <15:0>) 180に接続される。双方向トライステートバッファ50は、バッファシステムデータバス180 とインタフェース制御装置32との間のデータフローの方向を選択的に制御する。双方向トライステートバッファ50からの単一方向出力が、システムデータ入力低(System Data Input Low)(SDAIL <6:5> ) 信号とSDAIL <7> とによって別々にフリップフロップ52とフリップフロップ54とに接続される。双方向トライステートバッファ50内のデータフローの方向は、制御論理回路56によって制御される。
【0045】
図7は、双方向トライステートバッファを制御するための制御論理回路の略図である。図6に示されるように、制御論理回路58は、SEL 13− 信号を発生させるために、JP/JPLESS 信号と READ 13− 信号との論理積(AND) をとり、このSEL 13− 信号は、構成ジャンパバッファ39と制御論理回路56とに与えられる。次に図7を見ると,SEL 13− 信号が、Tri − Out 信号を発生させるために、システム最下位ビット(System Least Significant Bit)(SYS− LSB − ) 信号の反転と否定論理積(NAND)され、Tri − Out 信号は、第1の論理状態(例えば論理「1」)においてインタフェース制御装置32からBSD バス180 へデータが流れることを命令し、一方、これとは逆に、第2の論理状態(例えば論理「0」)においてBSD バス180 からインタフェース制御装置32へデータが流れることを命令する。SYS − LSB − 信号は内部FIFO又はレジスタ(図示されていない)によって与えられ、修飾子である。従って、データ選択MUX 46は、IDメモリ36か、シフトレジスタ/カウンタ48か、SDOHL バスかのいずれかからBSD ライン180 上にデータを出力するように選択される。
【0046】
ライン236 上のハードウェアリセット(Hardware Reset)信号と、ライン237 上のJP/JPLESS 信号と、20 MHzクロックとが、無ジャンパ状態機械(jumperless state machine)60の第1と第2と第3の入力に与えられる。イーサネットインタフェースモジュール26は、クロック118 (図2)からのライン238 上の20 MHzクロック信号に基づいて動作する。無ジャンパ状態機械60の第1の出力信号であるイネーブルカウンタ(Enable Counter)(EN CNTR) 信号が、シフトレジスタ/カウンタ48にシフトレジスタ又はカウンタのどちらとして動作するかを命令するために、ライン244 上をシフトレジスタ/カウンタ48に与えられる。これに加えて、シフトレジスタクロック(shift register clock)(SRCLK) 信号も、シフトレジスタ/カウンタ48内でデータをシフトイン(shift in)するために与えられる。無ジャンパ状態機械60は、その第2の出力からハードウェア被制御データイン(hardware controlled data in)(HARD DI)信号をライン239 を通してIDメモリ制御MUX 62に与え、IDメモリ制御MUX 62は、IDメモリ36にライン200 を通して選択的にHARD DI 信号を与える。無ジャンパ状態機械60は、その第3の出力からハードウェア被制御シフトクロック(hardware controlled shift clock)(HARD SK)信号をライン241 を通してIDメモリ制御MUX 62に与え、IDメモリ制御MUX 62は、IDメモリ36にライン204 を通して選択的にHARD SK 信号を与える。無ジャンパ状態機械60は、その第4の出力からハードウェア被制御チップ選択(hardware controlled chip select)(HARD CS)信号をライン242 を通してIDメモリ制御MUX 62に与え、IDメモリ制御MUX 62は、IDメモリ36にライン202 を通して選択的にHARD CS 信号を与える。無ジャンパ状態機械60は、その第5の出力からMUX ハードウェア選択(MUX hardware select)(MUXHW)信号をライン243 を通してIDメモリMUX 制御回路69に与える。
【0047】
図8は、図5に示されたIDメモリMUX 制御回路の略図である。MUXHW 制御信号がライン243 上をIDメモリMUX 制御回路69に与えられ、IDメモリMUX 制御回路69では、このMUXHW 信号が、SEL − MUX 信号を形成するために、反転されてJP/JPLESS 信号と論理積される。再び図5を参照すると、無ジャンパ状態機械60からIDメモリ36への信号と、フリップフロップ52、54からの信号との何方か一方を選択するように、SEL − MUX 信号がライン246 上をIDメモリ制御MUX 62に与えられる。
【0048】
ソフトウェア被制御チップ選択信号と、ソフトウェア被制御シフトクロック信号と、ソフトウェア被制御データイン信号とが、フリップフロップ52、54に与えられる。特に、SDAIL <6:5> とSDAIL <7> とが、上記のようにバッファシステムデータバス180 からフリップフロップ52、54に別々に与えられる。更に、WRITE 10 信号とWRITE 11 信号とがフリップフロップ52、54に別々に与えられる。
【0049】
シフトレジスタ/カウンタ48のビット2〜0は、復号器選択MUX 64の第1の入力にI/OSEL <2:0>として接続される。シフトレジスタ/カウンタ48のビット5〜3は、復号器選択MUX 64の第2の入力に信号MSEL <2:0>として与えられる。ジャンパによって定義されるI/OSEL <2:0>命令は、ライン216 を通して、復号器選択MUX 64の第3の入力に与えられる。復号器選択MUX 64の第4の入力は、双方向トライステートバッファ72に接続される。双方向トライステートバッファ72の双方向ポートは、ジャンパによって定義されるMSEL <2:0>命令を入力として搬送するか又は割込み要求(IRQ <3:0>) 信号を出力として搬送する信号ラインに接続される。双方向トライステートバッファ72への入力は、割込み要求復号器70の第1の出力である。割込み要求復号器70の第2の出力は、割込み要求0である。シフトレジスタ/カウンタ48のビット7〜6も、割込み要求復号器70の2つの入力に与えられる。双方向トライステートバッファ72は、ジャンパ復号器44からのライン237 上のJP/JPLESS 命令によって制御される。復号器選択MUX 64の出力は、メモリアドレス復号器66とI/O アドレス復号器68とに接続される。メモリアドレス復号器66の出力とI/O アドレス復号器68の出力は、SRAM 138 (図3)に接続される。復号器選択MUX 64は、ジャンパ復号器44からのJP/JPLESS 命令によっても制御される。復号器選択MUX 64は、論理1のJP/JPLESS 命令又は論理0のJP/JPLESS 命令に各々に応答して、シフトレジスタ/カウンタ48又はジャンパからMSEL <2:0>を出力することと、I/OSEL <2:0>を出力することとの間で切り替えられる。
【0050】
次に、上記で定義されたハードウェアに関して、イーサネットインタフェースモジュール26の動作を、図9 〜12を参照して説明する。図9は、システム電源投入時、又は、System Hardware Reset 命令が送り出される他のいずれかの時点における、IDメモリからシフトレジスタ/カウンタへの構成バイトの読み取りと、メモリアドレスのコンフリクトの解消とのフローチャートである。システム電源投入時(ステップ300 )に、CPU 12は、イーサネットインタフェースモジュール26を含むATバス14上の各モジュールに対して、System Hardware Reset 命令を開始命令又は初期設定命令として送り出す。リセット後に、CPU 12は、最初のATバス所有者となる。更に、例えば、キーボード25上のコントロール(Ctrl)キーとALT キーと削除(Del) キーとを3つ同時にユーザが押すことによって、通常のシステム動作中にHardware Reset命令が送り出されることも可能である。以下の説明は、典型的な目的のためにシステム電源投入時に送り出されるハードウェアリセットに関して、システムの動作を説明する。しかし、本発明はこれに限定されない。
【0051】
ハードウェアリセット時に、ジャンパ復号器44(図5)からのJP/JPLESS 信号が示すシステム構成が有ジャンパシステム構成と無ジャンパシステム構成との何方であるかを、無ジャンバ状態機械60が判定する。無ジャンパモジュールとしてのイーサネットインタフェースモジュール26の動作を、先ず最初に次で説明する。
【0052】
システムが無ジャンパシステムである場合には、無ジャンバ状態機械60(図5)が、ライン202 (図4)上のChip Select 信号を高状態にセットすることによってIDメモリ制御MUX 62にIDメモリ36を選択するように命令する。ライン204 上のShift Clock 命令(図4)が、直列データ出力206 上をIDメモリ36からシフトレジスタ/カウンタ48にデータをシフトするようにセットされる。更に、シフトレジスタ/カウンタ48にシフトレジスタとして動作することとIDメモリ36からの直列データ出力206 をクロックイン(clock in)することとを命令するために、無ジャンバ状態機械60が、ライン244 (図5)を通してシフトレジスタ/カウンタ48に命令を送る。
【0053】
IDメモリ36の位置Ox11から構成バイトを読み取って、それをシフトレジスタ/カウンタ48内にロードするために、無ジャンバ状態機械60は適切な信号を発生させる(ステップ 302)。上記のように、ビット5〜3はメモリ基底アドレスを決定する(ステップ 304)。図10は、ATバス用のメモリ基底アドレスのマップである。メモリアドレスは0(00 0000 Hex)〜16384 K (FF FFFF Hex)の範囲内である。実際にはアドレスは16384 K マイナス1であるが、説明を分かり易くするために、この−1は、接尾辞「K 」を有するアドレスから省かれる。このアドレス範囲内で、複数の部分範囲(subrange)がプラットフォームメモリとBI0Sとのために割り当てられるか又は確保される。アドレス 0 (00 0000 Hex)− 512 K (06 FFFF Hex)が、プラットフォームメモリ用に確保された位置である。アドレス 512 K (07 0000 Hex)− 640K (09 FFFF Hex) が、プラットフォームメモリ用のアドレス範囲である。アドレス範囲 100000 (Hex) − FD FFFF (Hex)が、スロットメモリ用に確保される。このアドレス範囲内に、イーサネットインタフェースモジュール26がC4000−DFFFF のアドレス範囲を有することが好ましい。基底アドレスビットに割り当てられるアドレスが次の表IIに示されている。
【0054】
再び図9を参照すると、この図に示されるように、イーサネットインタフェースモジュール26は、IDメモリ36から構成バイトをロードする。IDメモリ36から構成バイトを読み取る過程は、システム電源投入時に開始し、上記のシステムBIOS立ち上げ時の初期設定と検査とに並行している。構成バイトの並行読取りは、BIOSが有効ブートROM を求めてROM 位置を走査することを可能にする。システムが適正に立ち上がる場合(ステップ 306)には、ブートROM 初期設定コードがそのリソースを初期化し、所望の割込みベクトルを置換し(ステップ 307)、システムコントロールをシステムBIOSに戻し、その初期設定を完了する(ステップ 308)。
【0055】
一方、システムが適正に立ち上がらない場合には、コンピュータ10内のイーサネットインタフェースモジュール26と別の増設モジュールとの間でメモリアドレスのコンフリクトがあると見なされる(ステップ 306)。メモリコンフリクトがある場合には、システム電源投入中にCPU 12が停止する。このコンフリクトを解消するために、イーサネットインタフェースモジュール26が、コンピュータ10から取り外され(ステップ 310)、第2のコンピュータシステム内にインストールされる(ステップ 312)。この第2のシステムは、メモリ基底アドレスのコンフリクトの可能性を低減させることによってイーサネットインタフェースモジュール26が適正に動作するかどうかを判定するために使用される。この第2のシステムは、第1のシステムと同一の基本構成を有するが、増設モジュールを全く含まないことが好ましく、これによって、イーサネットインタフェースモジュール26と増設モジュールとの間のメモリコンフリクトを排除する。これに加えて、無ジャッパモードでは、下記で説明されるように、異なるメモリ基底アドレスによってIDメモリ36を再プログラムするために第2のシステムが使用される。イーサネットインタフェースモジュール26を第2のシステム内に挿入した後に、第2のシステムが電源投入される。第2のシステムが適正に立ち上がった場合(ステップ 314)には、イーサネットインタフェースモジュール26は作動中であり、第1のシステムでの問題点はメモリコンフリクトであったと見なされる。従って、このコンフリクトを排除するために、イーサネットインタフェースモジュール26のメモリ基底アドレス位置を再割当てすることが必要である(ステップ 316)。
【0056】
有ジャンパモードでは、ジャンパワイヤを物理的に付加又は変更することによってイーサネットインタフェースモジュール26のメモリ基底構成ジャンパ189 (図4)を変更することによって、メモリ基底アドレス位置が再割当てされる。これとは対照的に、無ジャンパモードでは、好ましくはIDメモリ36のアドレス 0X 13において構成バイトを再プログラムすることによって、メモリ基底アドレス位置が変更される。例えば、構成バイトのビット5〜3内に最初に格納されたイーサネットインタフェースモジュール26のメモリ基底アドレス位置が000 であるとすると、この値000 に対応するアドレス範囲は、上記の表IIに示されるように、範囲 0XC4000 (Hex)− 00XC7FFF (Hex)である。アドレスコンフリクトがある場合には、この範囲内のアドレスに応答することによって、イーサネットインタフェースモジュール26とATバス14上の第2の増設モジュールとの両方が作動する。イーサネットインタフェースモジュール26のメモリ基底アドレスは、構成バイトのビット5〜3を変更することによって再割当てされる。例えば、000 から001 にビット5〜3を増分することによって、これに対応してメモリ基底アドレス範囲が、表IIに示されるような 0XC8000 (Hex) − 0XCBFFF (Hex)の範囲に増分する。
【0057】
IDメモリ36を再プログラムするために、CPU 12は最初に、構成バイトの現在状態を知るために、その構成バイトを読み取らなければならない。CPU 12は、IDメモリ36のメモリ位置 0X13 における構成バイトのアドレスのためのメモリ読取りの要求を送り出す。CPU 12は、データアドレスと要求命令をシステムデータバスを通してIDメモリ36に通信するために、I/O 読取り(IORバー) 信号をシステムデータバストランシーバ40に送る。インタフェース制御装置32は、IDメモリ36にアドレスとシフト選択命令とシフトクロック命令とを与えるために、システムデータバス180 からフリップフロップ52、54にデータを供給するようにインタフェース制御装置32の双方向トライステートバッファ50(図5)に命令する。IDメモリ36は、そのデータ出力ポートから、要求された構成バイトをデータ選択MUX 46に供給し、データ選択MUX 46は、バッファシステムデータバス180 上にそのデータを出力するように、イーサネットインタフェースモジール26によって命令される。インタフェース制御装置32は、バッファシステムデータバス180 からATバス14を経由してシステムデータバス106 とCPU 12とにデータを供給することをシステムデータバストランシーバ40に命令し、更にシステムデータバストランシーバ40をディスエーブルにする。その後で、CPU 12は構成バイトのビット5〜3を増分し、それによって新たなメモリ基底アドレスを発生させ、更にその後で、上記の仕方で、位置0X13においてIDメモリ36の中にその新たな構成バイトを書き込むことをイーサネットインタフェースモジュール26に命令する。CPU 12によるIDメモリ36からの構成バイトの読取りと同様の仕方で、CPU は、システムデータバス106 を通してIDメモリ36に適切な命令を与えることによって、増分された構成バイトを上記0X13メモリ位置に書き込むことを、イーサネットインタフェースモジュール26に命令する。
【0058】
再び図9を参照すると、この図に示されるように、新たなメモリ基底アドレスを有する構成バイトによってイーサネットインタフェースモジュール26が再プログラムされ終わった後に、そのイーサネットインタフェースモジュール26が第1のコンピュータシステム内にインストールされ(ステップ 317)、この第1のシステムが、ステップ 300を繰り返すことによって再び立ち上げられる。この第1のシステムはその立上げルーチンを完了し、ステップ 302に関して上記で説明された通りに、IDメモリ36からシフトレジスタ/カウンタ48の中に構成バイトをロードする。復号器66、68を使用するインタフェース制御装置32は、その構成バイトをステップ 304において復号する。そのシステムがステップ 306で適正に立ち上がる場合には、ステップ 316で行われたメモリ位置の再割り当てが適正であり、イーサネットインタフェースモジュール26は上記で説明したようにステップ 307に進む。一方、再構成されたイーサネットインタフェースモジュールがステップ 306で適正に立ち上がらない場合には、第1のシステムからそのイーサネットインタフェースモジュールを取り外し(ステップ 310)、第2のシステムでそのモジュールをテストする(ステップ 312)という過程が繰り返される。
【0059】
第2のシステムがステップ 314で適正に立ち上がらない場合には、ステップ 316で説明した通りに、そのメモリの構成バイトが再構成される(ステップ 318)。ステップ 314で第2のシステムの立ち上げが再び試みられる。或いは、ステップ 318でメモリ位置を再構成する代わりに、イーサネットインタフェースモジュールが別のシステムに挿入され(ステップ 320)、この別のシステムが、ステップ 314に関して上記で説明したように、再び立ち上げられることも可能である。
【0060】
全てのメモリ基底アドレスコンフリクトを除去するためにイーサネットインタフェースモジュール26が再構成された後で、I/O 基底アドレスのコンフリクトがあるかどうかが判定される。概要を説明すると、そのシステムが立ち上がった時に、全てのメモリ基底アドレスコンフリクトが上記のように解消されているならば、そのシステムは、イーサネットインタフェースモジュール26上の幾つかの予め決められたレジスタ位置から内容を読み取ることと、これらの内容をその期待値と比較することとによって、I/O 基底アドレスを検査する。別の実施例では、イーサネットインタフェースモジュールはブートメモリを含まない。この実施例では、コンフリクトが発生する可能性があるメモリがイーサネットインタフェースモジュール上にないので、メモリコンフリクトを解消することは不必要である。上記比較が一致を示す場合には、I/O 基底アドレスコンフリクトは存在しない。一方、システムは、上記比較が一致を示さない場合にはコンフリクトがあると見なす。この時には、システムは、予め決められたレジスタ位置からダミー読取り(dummy read)を行う。これに応答して、イーサネットインタフェースモジュール26はそのI/O 基底アドレスを増分する。システムは、新たなアドレスにおけるレジスタ位置の内容を読み取って比較し、再びコンフリクトがあるかどうかを判定する。コンフリクトが検出されなくなるまで、システムはこの過程を繰り返す。
【0061】
次に、ATバス14に関するI/O アドレス基底を示す図11を参照して、I/O アドレス指定を説明する。このI/O アドレスは、0 (0000 Hex)から 64 K (FFFF Hex)の範囲である。このアドレス範囲内では、各々の1 K 範囲は2つの部分範囲に分けられる。第1の部分範囲はメモリの下位の256 バイトであり、割込み制御装置やDMA 制御装置のようなI/O プラットフォームリソース用に確保される。第2の部分範囲は残りの上位の768 バイトであり、これらのバイトは汎用I/O 従属モジュール用に使用可能である。
【0062】
下記で説明される通りの好ましい実施例では、イーサネットインタフェースモジュール26は、上記第2の部分範囲内にある 0x260 (Hex)〜 0x3FF (Hex)のI/O アドレス範囲を有する。上記のように、構成バイトのビット2〜0(I/OSEL <2:0>とも呼ばれる)は、I/O 基底アドレスを決定する。表III は、 0x260 (Hex)〜 0x3FF (Hex)のアドレス範囲内の構成バイトに関するI/O アドレス復号を示す。
【0063】
次に図12を参照すると、この図では、I/O 基底アドレスコンフリクトルーチンの過程を説明している。この段階では、メモリ基底アドレスコンフリクトは、図9〜10において上記で説明したように、既に解消され終わっていると見なされる。(或いは、イーサネットインタフェースモジュールがブートメモリを持たない別の実施例では、上記のようにメモリコンフリクトを解消することは不必要である。)コンピュータが立ち上げられ、図9のステップ300 に関して上記で説明されたように初期設定ルーチンを行う(ステップ 330)。インタフェース制御装置32は、図9に関して上記で説明されたステップ302 と同様の仕方で、IDメモリ36からシフトレジスタ/カウンタ48の中に構成バイトをロードする(ステップ 332)。この読取りの完了時に、シフトレジスタ/カウンタ48は、無シャンパ状態機械60によってカウンタモードにセットされる。このモードでは、イーサネットインタフェースモジュール26のI/O 基底アドレスを決定する構成バイトのビット2〜0だけが、カウンタによって増分される。構成バイトの残りのバイトは無変更のままに保たれる。インタフェース制御装置32は、図9のステップ 304に関して説明された仕方と同様の仕方で、その構成バイトをI/O 基底アドレスとメモリ基底アドレスと割込みの形に復号する(ステップ 334)。これに加えて、イーサネットインタフェースモジュール26内のレジスタ中の「汚染ビット(dirty bit) 」が、その特殊セルのレジスタ/カウンタモードの監視のために割り当てられる。その後で、CPU 12が初期範囲内でメモリから読み取る(ステップ 336)。更に明確に言えば、CPU 12は、インタフェース制御装置32の8つのレジスタの内容を読み取るために、そのI/O プログラムに入る。各レジスタが8バイトを有することが好ましい。8つのレジスタの読み取りは、単に一例として示したにすぎない。本発明は、8つのレジスタだけを読み取ることには限定されない。コンフリクトがあるかどうかを判定するためにCPU 12によって読み取られるレジスタ位置内に記憶された同じ値を、ATバス14上の2つの異なる増設モジュールが偶然の一致から有することがないという所期の見込みを満たすように、ソフトウェアプログラマーは、必要に応じた数のレジスタを読み取ることが可能である。
【0064】
システム電源投入時に、インタフェース制御装置32の8つのレジスタが、ハードディスク16上に記録されたユーティリティプログラムの一部として、モジュール識別子又は「カンパニーコード(company code)」としても記憶される予め決められた値にセットされる。モジュール識別子は、当該モジュールをATバス14上の他のモジュールに対して一意に識別することが好ましい。このモジュール識別子は、イーサネットインタフェースモジュール26の最初の8つのレジスタの中に記憶された初期値であることが好ましい。これら8つのレジスタをCPU 12が読み取った後に、CPU 12はソフトウェアユーティリティを実行し、このソフトウェアユーティリティは、ハードディスク16からモジュール識別子を読み取り、この識別子を最初の8つのレジスタからの読取り値と比較する(ステップ 338)。CPU 12は、このモジュール識別子の値に上記読取り値が一致することを期待するので、これらの2つの値の間の差異をI/O 基底アドレスコンフリクトと解釈する。読取り値とモジュール識別子との間に一致がある時(ステップ 340)には、CPU 12は、この一致を、イーサネットインタフェースモジュール26とATバス14上の他のモジュールとの間にI/O 基底アドレスコンフリクトが存在しないことと解釈すると共に、イーサネットインタフェースモジュール26のための固有のI/O 基底アドレスをそのCPU 12が発見したと解釈する(ステップ 342)。
【0065】
一方、CPU 12によって読み取られた上記8つのレジスタの内容が予想値と相違する場合( ステップ 340) には、システムは、この不一致を、I/O 基底アドレスのコンフリクトと解釈するか、又は、イーサネットインタフェースモジュール26が、そのCPU 12が読み取ったばかりのI/O アドレスにはないということと解釈する。システムは、ATバス14上に与えられるデータを無視することによってイーサネットモジュール26の存在を無視するが、ソフトウェアユーティリティは、予め決められたメモリ位置からの読取りを試みることによって続行する(ステップ 344)。この予め決められたメモリ位置は、アドレス 0X12 (Hex) にあることが好ましい。CPU 12が幾つかタイプの記憶装置に書込みを行おうとする場合に、イーサネットインタフェースモジュール26が、コンフリクトを生じるアドレス指定によって物理的に損傷を与えられる可能性があるので、読取りが好ましい。シフトレジスタ/カウンタ48がカウンタモード用にセットされ、且つ、何が実際に読み取られているかということをCPU 12が関知しないので、この読取りは、「ダミー読取り(dummy raed)」である。カウンタモードでは、ダミー読取りが行われる毎に、シフトレジスタ/カウンタ48がビット2〜0の値を1ずつ増分し、それによって、I/O 基底アドレスを、表III に定義されているようなその次のアドレス範囲にジャンプさせる。初期I/O 基底アドレス範囲は、値 111を有する構成バイトのビット2〜0によって定義される 0X300 (Hex) 〜 0X31F (Hex)に設定されることが好ましい。メモリ位置 0X12 からの読取りによってカウンタが増分される時に、構成バイトのビット2〜0が、0X260 (Hex) 〜 0X27F (Hex)の新たなアドレス範囲に対応する 000の値に変化する。ユーティリティプログラムは、シフトレジスタ/カウンタ48がその次の基底I/O アドレスにカウントアップ(count up)する毎に、適正なモジュール識別子を求めてインタフェース制御装置32を読み取る。このことは、コンフリクトを起こさないI/O 基底アドレスにイーサネットインタフェースモジュール26がそのモジュール自体を動的に再構成することを可能にする。しかし、7回目の増分の後で、ビット2〜0は値 111に戻る。8回目の上記メモリ読取りの後では、システム内にはイーサネットインタフェースモジュール26が存在しないか、又は、I/O 基底アドレスは全て使用不可能である。CPU 12は、読み取られているメモリの範囲内にモジュール位置があるかどうかを判定する(ステップ 346)。モジュール位置が上記メモリ範囲内にない場合には、その構成バイトの値は増分(又はカウント)されず、システムはI/O 基底アドレスを増分し(ステップ 353)、その増分されたアドレスにおけるレジスタを読み取り(ステップ 348)、読取り値を期待値と比較するためにステップ 338にループバック(loop back) する。ステップ 340で一致が得られない時には、CPU 12はステップ 344にループバックする。一致が得られた時には、CPU 12はステップ 342にループバックする。CPU 12は、予め決められたアドレスに書込み命令を送り、インタフェース制御装置32がシフトレジスタ/カウンタ48をカウントモードにセットして、ユーザモード(user mode) に切り替え、必要に応じてユーザがシステム側からIDメモリにアクセスすることを可能にする。
【0066】
一方、イーサネットインタフェースモジュールのアドレスがステップ 346で読み取られたメモリの範囲内にある場合には、CPU 12が、それが上記範囲の最後の増分であるかどうかを判定し(ステップ 350)、そうであるならば、I/O 基底アドレス範囲スロットは全て使用不可能であるか、又は、システム内にはイーサネットインタフェースモジュール26がインストールされていない(ステップ 354)。一方、メモリ読取りがそのメモリ範囲の最終メモリ増分でない場合には、制御装置チップ32は、シフトレジスタ/カウンタ48のビット2〜0を増加させることによって、イーサネットインタフェースモジュール26のI/O 基底アドレスを増分する(ステップ 352)。CPU はI/O 基底アドレスを増分し(ステップ 353)、その後で、その増分されたI/O 基底アドレスにおいて8つのレジスタから読み取る(ステップ 348)。CPU 12は、ステップ 338における読取り値と期待値との比較にループバックする。
【0067】
アドレス0X12への不慮の書込みからシフトレジスタ/カウンタ48内の構成バイトを誤って変更してしまうことを防止するために、ソフトウェア機能抑止が備えられる。データリンクレジスタ内のI/O 基底アンロックビット(I/O base unlock bit) を0にセットすることによって、シフトレジスタ/カウンタ48が、システムハードウェアリセットが再び送り出されるまで、ディスエーブルにされる。このリセット命令によって、上記アンロックビットが1にセットされ、コンフリクトを起こさないI/O 基底アドレスにイーサネットインタフェースモジュール26がそのモジュール自体を動的に再構成することを可能にする。
【0068】
I/O アドレスのコンフリクトが解消されると、上記ソフトウェアは初期設定ルーチンを続行することが可能である。イーサネットインタフェースモジュール26は、所謂「汚染ビット」をセット/リセットすることによって、シフトレジスタ/カウンタ48をレジスタモードに設定し直す。その直後に、上記ユーティリティプログラムは、シフトレジスタ/カウンタ48から新たな構成バイトを読み取って、新たな基底アドレスによってIDメモリ36内に格納された構成バイトを再プログラムすることが可能である。
【0069】
さて、I/O アドレスプログラムを終了した後に、割込みを説明する。上記のように、ビット7〜6は、割込みライン構成だけに使用される。割込み信号は、CPU 12による割込みサービスを増設カードが要求することを可能にする。これらのビットは、イーサネットインタフェースモジュール26のホストインタフェース側で使用可能な4つの割込みラインのいずれか1つを選択するようにプログラム可能である。ユーザは、システムユーザに使用可能な4つのシステム割込みライン(割込み0〜3)の任意のセットに対して上記割込みラインを接続する任意選択権を有する。上記ユーティリティは割込み構成をテストし、コンフリクトがある場合には、その次の使用可能な割込みオプションによってIDメモリ36を再プログラムし、システムを再立ち上げし、構成を再テストする。
【0070】
次表IVは割込みビット定義のリストである。
【0071】
メモリ基底アドレスのコンフリクトと、I/O 基底アドレスのコンフリクトと、割込みのコンフリクトとを解消するためにIDメモリ36が再プログラムされた後には、構成バイトの更に別の再プログラミングは不要である。こうして構成されたコンピュータ10を引き続いて使用する際には、コンフリクトは発生しないだろう。
【0072】
以上のように本発明が説明され、その好ましい実施例が説明されたが、他の変更と応用とが当業者にとって見い出されることが予想される。従って、本明細書の特許請求の範囲によってのみ本発明が限定されることが意図されている。
【0073】
【発明の効果】
以上説明したように、本発明によれば、増設モジュールのメモリアドレスとI/Oアドレスとがジャンパ無しで変更されるとともに、その変更におけるステップが自動化され、ステップ数も減少する、という効果がある。
【図面の簡単な説明】
【図1】本発明の原理によるコンピュータを示す説明図である。
【図2】図1に示されたコンピュータのためのイーサネットインタフェースモジュールの機能ブロック図である。
【図3】図2に示されたインタフェース制御装置の機能ブロック図である。
【図4】図1に示されたコンピュータのためのイーサネットインタフェースモジュールの特定の実施例の機能ブロック図である。
【図5】図4に示されたインタフェース制御装置のアドレス復号回路と構成バイト処理回路との機能ブロック図である。
【図6】データ選択MUX によってバッファシステムデータバスに与えられるデータを制御するための制御論理回路の略図である。
【図7】双方向トライステートバッファを制御するための制御論理回路の略図である。
【図8】図5に示されるIDメモリMUX 制御回路の略図である。
【図9】システム電源投入時における、又はSystem Hardware Reset 命令が送り出されるその他の時点における、IDメモリからシフトレジスタ/カウンタへの構成バイトの読取りと、ブートメモリのコンフリクトの解消とのフローチャートである。
【図10】ATバス用のメモリ基底アドレスのマップである。
【図11】ATバス用のI/D 基底アドレスのマップである。
【図12】図4に示されたイーサネットインタフェースモジュールのI/O 基底アドレスを再構成する際に使用される手順を示すフローチャートである。
【符号の説明】
10…コンピュータ
12…中央処理装置モジュール
14…ATバス
16…ハードディスク
18…フロッピーディスク
20…ランダムアクセスメモリ
22…キーボードインタフェースモジュール
26…イーサネットインタフェース(I/F) モジュール
27…イーサネットネットワーク
32…インタフェース制御装置[0001]
[Industrial applications]
The present invention relates to an add-on card for a personal computer, and more particularly, to an additional interface card for an International Business Machines (IBM) AT compatible personal computer for connecting an AT bus to an external Ethernet network. About.
[0002]
Problems to be solved by the prior art and the invention
IBM AT personal computers and AT compatible personal computers use an AT standardized bus system for internal communication. The AT bus is generally referred to as an Industry Standard Architecture (ISA) bus for 8- and 16-bit systems, and an Extended Industry Standard Architecture (EISA) for 32-bit systems. The AT bus standard is described in detail in "AT Bus Design", Edward Solari (Annbooks, 1990), the subject matter of which is incorporated herein by reference. An AT bus is an interface between various functional units of a computer, such as a central processing unit (CPU) memory and various input / output (I / O) device interfaces. The AT bus provides the necessary logic to control the system clock, storage, read / write access, I / O read / write cycles, data bus direction, data and interrupt requests, and speaker driver. . The storage device includes a hard disk, a floppy disk, an electrically erasable programmable read only memory (EEPROM), and a random access memory (RAM). The I / O device includes a printer, a modem, and an Ethernet communication network.
[0003]
A personal computer has a housing that houses a module card rack for holding and interconnecting electronic modules. When the housing is open, an electronic module is inserted into the rack and connected to a motherboard located at the end of the computer housing opposite the housing opening. This motherboard provides the electrical interconnection between the modules in the computer including the AT bus and power and ground. The user can change the capabilities of the personal computer by attaching or removing a computer module to or from the computer housing. For example, by inserting a RAM (Random Access Memory) module into the housing, the storage capacity can be increased.
[0004]
Each device connected to the AT bus and having a storage device has a memory base address (base) that defines the memory space used by that device so that the CPU can command a read or write to the storage device. (Base address). Each storage device must have a unique memory base address so that only one device responds to such a read / write instruction. The AT bus standard assigns specific memory addresses to specific devices. More specifically, the hard disk drive, floppy disk drive and RAM memory are each assigned a unique memory base address range. Therefore, all personal computers use these addresses for communication between the hard disk drive, the floppy disk drive and the RAM memory. In contrast, when a new device is connected to the personal computer, the memory base address of the new device must not be one of the addresses already assigned to other devices, It may be any address in the address range that has not yet been assigned. However, when more than one device is added, each with its own storage device and its corresponding unique memory base address, two or more devices may have the same memory base address. If this occurs, the CPU sends out addresses corresponding to two or more separate devices during an initialization routine at system power-up. The two or more separate devices each respond to an address command, and all of these devices attempt to read or write to memory. These multiple responses cause a conflict on the data portion of the bus. In some cases, the CPU may detect the conflict on the bus because, for example, during system startup or during reading, the data to be read may be different from the system expected values.
[0005]
In current systems, one type of add-on card is an Ethernet interface module for interfacing between an AT bus and an Ethernet network system. The Ethernet standard is Institute of Electrical and Electronics Engineers, Inc. It was issued in 1989 by the "Information Processing Systems - Local Area Networks - Part 3: Carrier sense multiple access with collision detection (CSMA / CD) access method and physical layer specifications", International Standard ISO, 8902-3: 1989, ANSI / IEEE Std 802.3-1988, the subject matter of which is incorporated herein by reference. Further, in the current system, when a memory address conflict is detected, the power of the system is turned off, an add-on card that is presumed to be causing the conflict is removed from the system, and any memory provided on the module is removed. It is necessary to change the configuration of the card by means, after which the expansion card is reinstalled in the system, the system is powered on, and the operation of the module is retested. (The means used in current systems to change the base address is a moveable jumper or switch.) The CPU again performs its initialization routine, and if a conflict with another memory base address is detected, The process of removing the module and physically changing the memory base address is repeated until the memory conflict is eliminated. When no memory conflict is detected, the CPU continues to execute its initialization routine.
[0006]
A plurality of I / O interface devices connected to the AT bus each have an I / O base address. When these I / O interface devices detect their I / O base address on the bus, they respond to instructions on the bus. As with the memory base addresses described above, each I / O interface device must have a unique I / O base address. Like memory addresses, the AT bus standard assigns I / O address ranges to specific devices. Therefore, these I / O addresses are used only by these devices. However, as other devices are added to the AT bus, each of those devices must have its own I / O address. However, as with the memory base address, these devices do not have pre-assigned addresses. Thus, the AT bus standard assigns I / O address ranges to these new devices.
[0007]
However, when a new device is connected to the AT bus, until the CPU has executed its initialization routine, the system will allow two or more devices on the AT bus to use the same I / O base address. I do not know if they are. Thus, when the CPU sends one I / O bus address to two or more devices on the AT bus that use the same address, all of these two or more devices respond and the Creates a conflict.
[0008]
Current systems with EEPROM-based configurations resolve conflicts in the I / O base address in a way that corresponds to how address conflicts are resolved by jumper or switch based designs. More specifically, in the case of an Ethernet module having an EEPROM-based configuration, a computer user first turns on the computer. If a conflict in the I / O memory address is detected during the initialization routine of the CPU, the user removes the module from the first computer and removes the module from the second system that has not caused an I / O base address conflict. You must insert that module into Thereafter, the user can change the I / O address of the module by rewriting the EEPROM of the module. Thereafter, the module whose original configuration has already been changed can be reinstalled in the original system.
[0009]
The above method for resolving address conflicts is cumbersome, expensive, and prone to operator error. The tasks include removing the module from the first computer, inserting the module into the second computer, turning on the second computer and re-installing the module in the second system. Configuring, removing the module from the second system, reinserting the module into the first system and retesting, and repeating this process until all conflicts are eliminated. And need. Each of these steps requires effort to perform, and is therefore time consuming. The additional time for setup, test, and rework increases the cost of the module. Furthermore, the numerous steps described above increase the likelihood of errors during rework and the possibility of damaging the module or the computer by repeated removal and installation of the module in the two computer systems.
[0010]
There is a need for changing the memory address and I / O address of an extension module without jumpers, and for automating the steps in the change to reduce the number of steps.
[0011]
Means and Action for Solving the Problems
Briefly, one embodiment of the present invention is an interface controller for an addressable interface module. This interface module is adapted to be coupled to a central processing unit via a communication bus with other addressable interface modules. Each interface module has a base address unique to each interface module provided on the communication bus by the central processing unit, and a base address on the communication bus for reading data from the interface module to the communication bus. And a write command provided by the central processing unit on the communication bus for writing data from the communication bus to the interface module. The interface controller has a stored configuration base address for determining a unique address to which the corresponding interface module must respond. In addition, the interface controller also has a decoder for decoding a base address including a modified configuration address for use by the corresponding interface module when determining a unique address for a response by the corresponding interface module. The interface controller includes circuitry for automatically changing the stored configuration base address when the stored configuration base address is the same as the unique address for any one of the other interface modules. The circuit includes a second circuit responsive to a predetermined address on the communication bus and a read command to change the stored configuration base address to a different configuration address. In one particular implementation, the first circuit includes a counter for incrementally adjusting a value represented by a configuration base address.
[0012]
Briefly, one embodiment of the present invention provides for the first identification of a first module connected to a bus to eliminate conflicts with a second module connected to the same bus. A method for adaptively adjusting a code in response to a start command. The first identification code is stored in one register. A commanded identification code is received over the bus. A stored first identification code is compared to the commanded identification code received over the bus. Data is sent out over the bus in response to a match between the first identification code and the commanded identification code. Expected data is generated. The sent data is compared to the expected value of the data, and if the sent data does not match the expected data, the result is identified as a mismatch. The first identification code stored in the register is changed in response to the identified mismatch. The above process is sequentially repeated until no discrepancy is identified between the sent date and the expected data so that the first module is uniquely identified by the first identification code.
[0013]
Preferably, the bus is an IBM AT bus, the identification code is an input / output base address, and the start command is a hardware reset command.
[0014]
Circuit for adaptively adjusting a first identification code of a first module connected to the bus in response to a start command to avoid a conflict with a second module connected to the same bus Is provided. The circuit includes means for storing the first identification code, means for comparing the first identification code in the storage means with the commanded identification code, and the commanded first identification code. Means for sending data in response to a match between the identification code, and wherein both the first module and the second module are responsive to the match between the first identification code and the commanded identification code. Means for detecting whether or not data is sent out, and for generating a conflict signal when there is no match, in response to the conflict signal, determining whether the first identification code and the commanded identification code correspond to each other. Means for changing the first identification code such that neither the first module nor the second module sends out data when a match between them occurs.
[0015]
In certain embodiments, an interface module transfers data between an Industry Standard Architecture (ISA) bus and an Ethernet network. The ISA bus transfers first and second groups of addresses and reset instructions from the central processing unit (CPU) to the interface module, and transfers data from the interface module to the CPU. This interface module has an adaptive identification code. The interface module includes a register for storing an applicable identification address. A decoder is coupled to this register for decoding the adaptive identification address from the CPU and the first group of addresses. A buffer memory is coupled to the decoder and the ISA bus. The buffer memory sends data to the ISA bus in response to the first group of decoded addresses when a selected address in the first group of decoded addresses includes an adaptive identification address. Or receive data from the ISA bus. In response to the second group of addresses from the CPU and the reset instruction, the counter changes the adaptive identification address stored in the register.
[0016]
【Example】
FIG. 1 is a functional block diagram illustrating a computer using an Ethernet interface module for communicating between an Ethernet and an AT bus according to the principles of the present invention. The
[0017]
Power-up sequences for IBM AT computers are well known in the art. Briefly, at power up, CPU 12 sends a hardware reset to all modules in
[0018]
FIG. 2 is a functional block diagram of the
[0019]
In the first direction, the CPU 12 passes through the
[0020]
[0021]
[0022]
FIG. 3 is a functional block diagram of the interface control device shown in FIG. The
[0023]
[0024]
The
[0025]
FIG. 4 is a functional block diagram of a specific implementation of the
[0026]
The CPU 12 sends a system address (SYSADDRESS) signal to the
[0027]
Further, the CPU 12 enables the transfer of all data, instructions, and states through a system data (SYSDATA) bus 106 or the transfer of all data, instructions, and states through the
[0028]
A buffer system data bus (BSD <15: 0>) 180 interconnects the
[0029]
The
[0030]
For control of system data flow by the
[0031]
As will be described in more detail below, the
[0032]
In the jumper mode, the logic level of each configuration jumper is provided on the buffer
[0033]
The
[0034]
In another embodiment, ID PROM 208 provides data to and receives data from buffer
[0035]
Buffer storage memory 138 (also referred to as SRAM 138) and any additional buffer storage memory 138 'receive an
[0036]
[0037]
An I / O base address jumper can be connected to
[0038]
FIG. 5 is a functional block diagram of the address decoding circuit and the constituent byte processing circuit of the interface control device shown in FIG.
[0039]
Jumper mode decoder 44 has first and second inputs (shown collectively as line 235) selectively connected to either ground or a voltage source (VCC) (not shown). And a
[0040]
The serial data output on
[0041]
[0042]
The signals provided by data select
[0043]
A READ 11 instruction for reading the data output from the
[0044]
The output of the
[0045]
FIG. 7 is a schematic diagram of a control logic circuit for controlling a bidirectional tristate buffer. As shown in FIG. 6, the control logic circuit 58 includes the
[0046]
The hardware reset signal on
[0047]
FIG. 8 is a schematic diagram of the ID memory MUX control circuit shown in FIG. The MUXHW control signal is supplied on
[0048]
The software controlled chip selection signal, the software controlled shift clock signal, and the software controlled data-in signal are provided to flip-flops 52 and 54. In particular, SDAIL <6: 5> and SDAIL <7> are separately provided from buffer
[0049]
Bits 2-0 of shift register /
[0050]
Next, with respect to the hardware defined above, the operation of the
[0051]
At the time of hardware reset, the
[0052]
If the system is a jumperless system, the jumperless state machine 60 (FIG. 5) stores the
[0053]
To read the configuration byte from location Ox11 in
[0054]
Referring again to FIG. 9, the
[0055]
On the other hand, if the system does not start up properly, it is determined that there is a memory address conflict between the
[0056]
In the jumper mode, the memory base address location is reassigned by changing the memory base configuration jumper 189 (FIG. 4) of the
[0057]
To reprogram the
[0058]
Referring again to FIG. 9, after the
[0059]
If the second system does not boot properly at
[0060]
After the
[0061]
Next, I / O address designation will be described with reference to FIG. 11 showing an I / O address base for the
[0062]
In a preferred embodiment, as described below, the
[0063]
Referring now to FIG. 12, this illustrates the process of an I / O base address conflict routine. At this stage, the memory base address conflict is deemed to have been resolved as described above in FIGS. (Alternatively, in another embodiment where the Ethernet interface module does not have a boot memory, it is not necessary to resolve the memory conflict as described above.) The computer is booted and described above with respect to step 300 of FIG. The initialization routine is performed as described above (step 330).
[0064]
When the system power is turned on, the eight registers of the
[0065]
On the other hand, if the contents of the eight registers read by the CPU 12 differ from the expected values (step 340), the system interprets the mismatch as a conflict of the I / O base address, or The
[0066]
On the other hand, if the address of the Ethernet interface module is within the range of the memory read in
[0067]
Software function inhibition is provided to prevent accidental writing to address 0X12 from accidentally changing configuration bytes in shift register /
[0068]
When the I / O address conflict is resolved, the software can continue with the initialization routine. The
[0069]
Now, an interrupt after the completion of the I / O address program will be described. As mentioned above, bits 7-6 are used only for interrupt line configuration. The interrupt signal enables the expansion card to request the interrupt service by the CPU 12. These bits are programmable to select any one of the four interrupt lines available on the host interface side of the
[0070]
Table IV below is a list of interrupt bit definitions.
[0071]
After the
[0072]
While the invention has been described and a preferred embodiment thereof has been described, it is anticipated that other modifications and applications will occur to those skilled in the art. It is therefore intended that the invention be limited only by the claims herein.
[0073]
【The invention's effect】
As described above, according to the present invention, the memory address and the I / O address of the extension module can be changed without a jumper, and the steps in the change can be automated, and the number of steps can be reduced. .
[Brief description of the drawings]
FIG. 1 is an explanatory diagram showing a computer according to the principle of the present invention.
FIG. 2 is a functional block diagram of an Ethernet interface module for the computer shown in FIG.
FIG. 3 is a functional block diagram of the interface control device shown in FIG. 2;
FIG. 4 is a functional block diagram of a particular embodiment of an Ethernet interface module for the computer shown in FIG.
FIG. 5 is a functional block diagram of an address decoding circuit and a constituent byte processing circuit of the interface control device shown in FIG. 4;
FIG. 6 is a schematic diagram of a control logic circuit for controlling data provided to a buffer system data bus by a data selection MUX.
FIG. 7 is a schematic diagram of control logic for controlling a bidirectional tristate buffer.
FIG. 8 is a schematic diagram of an ID memory MUX control circuit shown in FIG. 5;
FIG. 9 is a flowchart of reading configuration bytes from the ID memory to the shift register / counter and resolving conflicts in the boot memory at system power-up or at other times when the System Hardware Reset command is issued.
FIG. 10 is a map of a memory base address for an AT bus.
FIG. 11 is a map of an I / D base address for an AT bus.
FIG. 12 is a flowchart illustrating a procedure used when reconfiguring an I / O base address of the Ethernet interface module illustrated in FIG. 4;
[Explanation of symbols]
10 ... Computer
12 Central processing unit module
14 ... AT bus
16 ... Hard disk
18. Floppy disk
20: random access memory
22 ... Keyboard interface module
26 ... Ethernet interface (I / F) module
27 ... Ethernet network
32 ... Interface control device
Claims (21)
前記インタフェース制御装置が、
対応する前記インタフェースモジュールがそれに応答しなければならない固有の構成基底アドレスを決定するための、記憶された構成基底アドレスと、
対応する前記インタフェースモジュールによる応答のための前記固有の構成基底アドレスの決定時に、対応する前記インタフェースモジュールによる使用のための変更された構成基底アドレスを含む前記構成基底アドレスを復号するための復号器と、
前記中央処理装置が、前記インタフェースモジュールから読取った値とハードディスクに記憶されているモジュール識別子とを比較し、該比較の結果、前記読取った値と前記モジュール識別子とが不一致であることに基づき、前記記憶された構成基底アドレスが他のインタフェースモジュールのいずれかのための固有の構成基底アドレスと同一であると判断した時に、前記記憶された構成基底アドレスを自動的に変更するための変更手段と、を含み、
前記変更手段が、前記記憶された構成基底アドレスを異なった構成基底アドレスに変更するために、前記中央処理装置によって前記通信バス上に与えられる構成基底アドレスと前記読取り命令とに対して応答する手段、を含み、
前記インタフェース制御装置が、前記変更手段が前記構成基底アドレスを変更することを選択的にイネーブル又はディスエーブルにするためのモードセレクタと、前記変更手段がディスエーブルにされる時にその対応する前記インタフェースモジュールによる使用のための前記固有の構成基底アドレスを選択するためのジャンパ制御装置と、を含む、
インタフェース制御装置。An interface controller for an addressable interface module, wherein said interface module is adapted to be coupled to a central processing unit via a communication bus with other addressable interface modules, the interface module comprising: A configuration base address unique to the interface module provided on the communication bus by the central processing unit, and a configuration base address on the communication bus by the central processing unit for reading data from the interface module to the communication bus. Or a write command provided by the central processing unit for writing data from the communication bus to the interface module.
The interface control device,
A stored configuration base address for determining a unique configuration base address to which the corresponding interface module must respond;
A decoder for decoding the configuration base address including a modified configuration base address for use by the corresponding interface module upon determining the unique configuration base address for a response by the corresponding interface module; ,
The central processing unit compares the value read from the interface module with a module identifier stored in a hard disk, and as a result of the comparison, based on the fact that the read value and the module identifier do not match, Changing means for automatically changing the stored configuration base address when it is determined that the stored configuration base address is the same as the unique configuration base address for any of the other interface modules. , Including
Means for responding to the configuration base address and the read command provided on the communication bus by the central processing unit to change the stored configuration base address to a different configuration base address. , Including
A mode selector for selectively enabling or disabling the changing means to change the configuration base address, the interface controller corresponding to the interface module when the changing means is disabled; A jumper controller for selecting said unique configuration base address for use by
Interface control unit.
前記自動再構成可能インタフェースモジュールが、
前記自動再構成可能インタフェースモジュールに固有の識別子データを記憶するためのメモリと、
前記自動再構成可能インタフェースモジュールがそれに対して応答しなければならない固有の構成基底アドレスを決定するための、構成基底アドレスを記憶するためのレジスタと、
前記レジスタに記憶された構成基底アドレスを異なった構成基底アドレスに変更するための、前記中央処理装置によって前記通信バス上に与えられる構成基底アドレスと前記読取り命令の1つとに応答する手段と、
前記自動再構成可能インタフェースモジュールによる応答のための前記固有の構成基底アドレスの決定時における前記インタフェースモジュールによる使用のために、前記手段によって変更された構成基底アドレスを復号するための復号器と、を含み、
前記自動再構成可能インタフェースモジュールが、前記中央処理装置による期待データとの比較のために前記通信バスに前記メモリから前記固有の識別子データを読み出すために、前記通信バス上の前記読取り命令の1つに応答し、
前記自動再構成可能インタフェースモジュールが、更に、
前記中央処理装置が、前記インタフェースモジュールから読取った値とハードディスクに記憶されているモジュール識別子とを比較し、該比較の結果、前記読取った値と前記モジュール識別子とが不一致であることに基づき、前記記憶された構成基底アドレスが他のインタフェースモジュールのいずれかのための固有の構成基底アドレスと同一であると判断した時に、前記記憶された構成基底アドレスを自動的に変更するための変更手段と、
前記変更手段が前記構成基底アドレスを変更することを選択的にイネーブル又はディスエーブルにするためのモードセレクタと、前記変更手段がディスエーブルにされる時にその対応する前記インタフェースモジュールによる使用のための前記固有の構成基底アドレスを選択するためのジャンパ制御装置と、を含む、
自動再構成可能インタフェースモジュール。An auto-reconfigurable addressable interface module for coupling between a communication network and a communication bus with other addressable interface modules and a central processing unit, wherein each of the interface modules comprises the central processing unit. A configuration base address unique to the interface module provided on the communication bus by a device, and a read command provided on the communication bus by the central processing unit for reading data from the interface module to the communication bus; Or a write command provided on the communication bus by the central processing unit for writing data from the communication bus to the interface module;
The automatic reconfigurable interface module comprises:
A memory for storing identifier data unique to the auto-reconfigurable interface module;
A register for storing a configuration base address for determining a unique configuration base address to which the auto-reconfigurable interface module has to respond;
Means for responding to the configuration base address provided on the communication bus by the central processing unit and one of the read instructions for changing the configuration base address stored in the register to a different configuration base address;
A decoder for decoding the configuration base address modified by said means for use by said interface module in determining said unique configuration base address for response by said auto-reconfigurable interface module. Including
One of the read instructions on the communication bus for the automatic reconfigurable interface module to read the unique identifier data from the memory to the communication bus for comparison with expected data by the central processing unit. Responds to
The automatic reconfigurable interface module further comprises:
The central processing unit compares the value read from the interface module with a module identifier stored in a hard disk, and as a result of the comparison, based on the fact that the read value and the module identifier do not match, Changing means for automatically changing the stored configuration base address when it is determined that the stored configuration base address is the same as the unique configuration base address for any of the other interface modules. ,
A mode selector for selectively enabling or disabling the changing means to change the configuration base address; and a mode selector for use by the corresponding interface module when the changing means is disabled. A jumper controller for selecting a unique configuration base address.
Automatically reconfigurable interface module.
前記自動再構成可能インタフェースモジュールと前記通信バス又は前記通信ネットワークとの間で通信されるデータを記憶するためのバッファメモリと、
前記バッファメモリからのデータ転送を制御するためのバッファ制御装置と、
前記バッファ制御装置からの命令に応答して前記通信ネットワークへのデータを処理及び供給するための送信回路と、
前記通信ネットワークからのデータを受信して処理するための受信回路と、
を更に含む、請求項7に記載の自動再構成可能インタフェースモジュール。A system interface coupled to the communication bus for controlling communication with the communication bus;
A buffer memory for storing data communicated between the auto-reconfigurable interface module and the communication bus or the communication network;
A buffer control device for controlling data transfer from the buffer memory;
A transmission circuit for processing and supplying data to the communication network in response to a command from the buffer control device;
A receiving circuit for receiving and processing data from the communication network;
The auto-reconfigurable interface module according to claim 7, further comprising:
前記インタフェースモジュールの各々が、前記中央処理装置によって前記通信バス上に与えられる前記インタフェースモジュール各々に固有の構成基底アドレスと、前記インタフェースモジュールから前記通信バスへのデータ読取りのための、前記中央処理装置によって前記通信バス上に与えられる読取り命令、又は、前記通信バスから前記インタフェースモジュールへのデータ書込みのための、前記中央処理装置によって与えられる書込み命令と、に応答するように適合させられ、前記インタフェースモジュールの少なくとも1つが、自動再構成可能インタフェースモジュールを含み、
前記自動再構成可能インタフェースモジュールが、
前記自動再構成可能インタフェースモジュールに固有の識別子データを記憶するためのメモリと、
前記自動再構成可能インタフェースモジュールがそれに対して応答しなければならない固有の構成基底アドレスを決定するための、構成基底アドレスを記憶するためのレジスタと、
前記レジスタに記憶された構成基底アドレスを異なった構成基底アドレスに変更するための、前記中央処理装置によって前記通信バス上に与えられる構成基底アドレスと前記読取り命令の1つとに応答する手段と、
前記自動再構成可能インタフェースモジュールによる応答のための前記固有の構成基底アドレスの決定時における前記自動再構成可能インタフェースモジュールによる使用のために、前記手段によって変更された構成基底アドレスを復号するための復号器と、を含み、
前記自動再構成可能インタフェースモジュールが、前記中央処理装置による期待データとの比較のために前記通信バスに前記メモリから前記固有の識別子データを読み出すために、前記通信バス上の前記読取り命令に応答し、
前記自動再構成可能インタフェースモジュールが、更に、
前記中央処理装置が、前記インタフェースモジュールから読取った値とハードディスクに記憶されているモジュール識別子とを比較し、該比較の結果、前記読取った値と前記モジュール識別子とが不一致であることに基づき、前記記憶された構成基底アドレスが他のインタフェースモジュールのいずれかのための固有の構成基底アドレスと同一であると判断した時に、前記記憶された構成基底アドレスを自動的に変更するための変更手段と、
前記変更手段が前記構成基底アドレスを変更することを選択的にイネーブル又はディスエーブルにするためのモードセレクタと、前記変更手段がディスエーブルにされる時にその対応する前記インタフェースモジュールによる使用のための前記固有の構成基底アドレスを選択するためのジャンパ制御装置と、を含む、
マイクロプロセッサシステム。A microprocessor system comprising: a communication bus; a plurality of addressable interface modules each coupled to the communication bus; and a central processing unit coupled to the communication bus.
A central processing unit for each of the interface modules to provide a configuration base address unique to each of the interface modules provided on the communication bus by the central processing unit, and to read data from the interface module to the communication bus; And a read command provided on the communication bus by the central processing unit for writing data from the communication bus to the interface module. At least one of the modules includes an auto-reconfigurable interface module;
The automatic reconfigurable interface module comprises:
A memory for storing identifier data unique to the auto-reconfigurable interface module;
A register for storing a configuration base address for determining a unique configuration base address to which the auto-reconfigurable interface module has to respond;
Means for responding to the configuration base address provided on the communication bus by the central processing unit and one of the read instructions for changing the configuration base address stored in the register to a different configuration base address;
Decoding for decoding the configuration base address modified by the means for use by the auto-reconfigurable interface module in determining the unique configuration base address for a response by the auto-reconfigurable interface module; And a vessel,
The auto-reconfigurable interface module is responsive to the read command on the communication bus to read the unique identifier data from the memory to the communication bus for comparison with expected data by the central processing unit. ,
The automatic reconfigurable interface module further comprises:
The central processing unit compares the value read from the interface module with a module identifier stored in a hard disk, and as a result of the comparison, based on the fact that the read value and the module identifier do not match, Changing means for automatically changing the stored configuration base address when it is determined that the stored configuration base address is the same as the unique configuration base address for any of the other interface modules. ,
A mode selector for selectively enabling or disabling the changing means to change the configuration base address; and a mode selector for use by the corresponding interface module when the changing means is disabled. A jumper controller for selecting a unique configuration base address.
Microprocessor system.
前記中央処理装置と前記自動再構成可能インタフェースモジュールとの間で前記通信バス上にデータを通過させるために結合されたデータバスと、
前記中央処理装置から前記自動再構成可能インタフェースモジュールへ前記通信バス上にアドレス信号を通過させるために結合されたアドレスバスと、
を含む、請求項14に記載のマイクロプロセッサシステム。The automatic reconfigurable interface module comprises:
A data bus coupled to pass data over the communication bus between the central processing unit and the auto-reconfigurable interface module;
An address bus coupled to pass address signals on the communication bus from the central processing unit to the auto-reconfigurable interface module;
The microprocessor system according to claim 14, comprising:
前記インタフェース制御装置内に構成基底アドレスを記憶する段階と、
前記中央処理装置が、前記インタフェースモジュールから読取った値とハードディスクに記憶されているモジュール識別子とを比較し、該比較の結果、前記読取った値と前記モジュール識別子とが不一致であることに基づき、前記インタフェース制御装置を有する前記インタフェースモジュールのための前記固有の構成基底アドレスが他のインタフェースモジュールの構成基底アドレスと同一であると判断した時に、前記中央処理装置によって前記通信バス上に与えられる構成基底アドレスと前記読取り命令の1つとに応答して、前記段階で記憶された構成基底アドレスを異なった構成基底アドレスに変更する段階と、
前記インタフェースモジュールによる応答のために前記固有の構成基底アドレスを決定する際に、前記インタフェース制御装置を有する前記インタフェースモジュールによる使用のために、該変更された構成基底アドレスを復号する段階と、を含み、
前記インタフェースモジュールが、モード制御装置と無ジャンパ制御装置とを含む前記インタフェース制御装置を有し、前記方法が更に、
前記モード制御装置の制御を受けて、前記構成基底アドレスの変更を選択的にイネーブル又はディスエーブルにする段階と、
前記変更がディスエーブルにされる時に、前記ジャンパ制御装置の制御を受けて、前記固有の構成基底アドレスを選択する段階と、
を含む方法。A method for automatically generating a unique configuration base address for an addressable interface module having an interface controller, said addressable interface module including a communication bus with other addressable interface modules. Each of the interface modules is configured to be coupled to the central processing unit via a central processing unit, the configuration base address being unique to the interface module provided on the communication bus by the central processing unit, and the interface module. A read command provided on the communication bus by the central processing unit for reading data from the communication bus to the communication bus, or the central processing unit for writing data from the communication bus to the interface module. A write command given by the apparatus, and is adapted to respond to said method,
Storing a configuration base address in the interface controller;
The central processing unit compares the value read from the interface module with a module identifier stored in a hard disk, and as a result of the comparison, based on the fact that the read value and the module identifier do not match, A configuration base provided on the communication bus by the central processing unit when it determines that the unique configuration base address for the interface module having the interface controller is the same as the configuration base address of the other interface module. Changing the configuration base address stored in the step to a different configuration base address in response to the address and one of the read instructions;
Decoding the modified configuration base address for use by the interface module having the interface controller in determining the unique configuration base address for a response by the interface module. ,
The interface module includes the interface controller including a mode controller and a jumperless controller, and the method further includes:
Selectively enabling or disabling the change of the configuration base address under the control of the mode control device;
Selecting the unique configuration base address under the control of the jumper controller when the change is disabled;
A method that includes
前記メモリ内に前記構成基底アドレスを最初に格納する段階と、
前記増分調節段階の前に前記メモリからの前記構成基底アドレスを前記カウンタ内に受け取る段階と、
を更に含む、請求項18に記載の方法。The interface controller has a memory, and the method comprises:
First storing the configuration base address in the memory;
Receiving the configuration base address from the memory into the counter prior to the incrementing step;
19. The method of claim 18, further comprising:
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US3118093A | 1993-03-12 | 1993-03-12 | |
| US11951193A | 1993-09-10 | 1993-09-10 | |
| US031180 | 1993-09-10 | ||
| US119511 | 1993-09-10 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH076120A JPH076120A (en) | 1995-01-10 |
| JP3588139B2 true JP3588139B2 (en) | 2004-11-10 |
Family
ID=26706922
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP06815794A Expired - Fee Related JP3588139B2 (en) | 1993-03-12 | 1994-03-14 | Interface control device |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP3588139B2 (en) |
| KR (1) | KR100276496B1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016098027A (en) * | 2014-11-25 | 2016-05-30 | 富士フイルム株式会社 | Wrap around case |
-
1994
- 1994-03-11 KR KR1019940004756A patent/KR100276496B1/en not_active Expired - Fee Related
- 1994-03-14 JP JP06815794A patent/JP3588139B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| KR940022289A (en) | 1994-10-20 |
| JPH076120A (en) | 1995-01-10 |
| KR100276496B1 (en) | 2000-12-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5491804A (en) | Method and apparatus for automatic initialization of pluggable option cards | |
| CA1335843C (en) | Programmable option select | |
| KR100264632B1 (en) | Add-in board with programmable configuration registers for pci bus computers | |
| KR100262677B1 (en) | ADD-IN Board With Enable/Disable Expansion ROM for PCI BUS Computer | |
| US5628027A (en) | Method of determining the configuration of devices installed on a computer bus | |
| EP0992000B1 (en) | Bus interface system and method | |
| EP0698240B1 (en) | Apparatus and method for automatic recognition and configuration of a peripheral device | |
| US5446869A (en) | Configuration and RAM/ROM control of PCI extension card residing on MCA adapter card | |
| US5729767A (en) | System and method for accessing peripheral devices on a non-functional controller | |
| US5586268A (en) | Multiple peripheral adapter device driver architecture | |
| US7890690B2 (en) | System and method for dual-ported flash memory | |
| WO1994019750A1 (en) | System and method for computer interface board identification | |
| US5590374A (en) | Method and apparatus for employing a dummy read command to automatically assign a unique memory address to an interface card | |
| US6748515B1 (en) | Programmable vendor identification circuitry and associated method | |
| CA2092631C (en) | Physical partitioning of logically continuous bus | |
| CN114020681B (en) | Method, device and system for distributing logical drive letter, electronic equipment and storage medium | |
| US5537663A (en) | System for determining configuration of devices installed on a computer bus by comparing response time of data lines to read from I/O address when undriven | |
| US20030023793A1 (en) | Method and apparatus for in-system programming through a common connection point of programmable logic devices on multiple circuit boards of a system | |
| US6128718A (en) | Apparatus and method for a base address register on a computer peripheral device supporting configuration and testing of address space size | |
| EP0104545A2 (en) | Input and output port control unit | |
| JP3588139B2 (en) | Interface control device | |
| CN101189577A (en) | Access configuration registers by automatically changing index | |
| US20090119420A1 (en) | Apparatus and method for scaleable expanders in systems management | |
| JP3305474B2 (en) | Activation device for information processing device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040113 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040312 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040420 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040616 |
|
| 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: 20040713 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040812 |
|
| 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: 20080820 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090820 Year of fee payment: 5 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090820 Year of fee payment: 5 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090820 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100820 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |