JPH05216712A - コンピュータシステムおよびこのコンピュータシステム上で内観的タスクを遂行する方法並びにi/oプロセッサアセンブリ - Google Patents

コンピュータシステムおよびこのコンピュータシステム上で内観的タスクを遂行する方法並びにi/oプロセッサアセンブリ

Info

Publication number
JPH05216712A
JPH05216712A JP4243796A JP24379692A JPH05216712A JP H05216712 A JPH05216712 A JP H05216712A JP 4243796 A JP4243796 A JP 4243796A JP 24379692 A JP24379692 A JP 24379692A JP H05216712 A JPH05216712 A JP H05216712A
Authority
JP
Japan
Prior art keywords
computer system
processor
script
bus
simulation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4243796A
Other languages
English (en)
Inventor
Mark A Boegel
マーク、アーノルド、ボーゲル
Douglas O Bolstad
ダグラス、オラフ、ボルスタード
Stephen A Knight
スティーブン、アーサー、ナイト
Harvey G Kiel
ハーベイ、ジーン、キール
Robert R Nelson
ロバート、ラッセル、ネルソン
Pamela A Wright
パメラ、アン、ライト
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05216712A publication Critical patent/JPH05216712A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 コンピュータシステム上で内観的タスクを遂
行するための高精度低コストの方法・装置を提供する。 【構成】 コンピュータシステム100はシステムラン
ダムアクセスメモリ102に結合されたCPU101を
含む。メモリ102、CPU101はバス制御ユニット
103に結合、I/Oバス105を制御。バス105、
106は複数のI/Oプロセッサ111−118への通
信経路を提供。I/OプロセッサはI/O装置との通信
を扱う。メモリI/Oプロセッサ111−113は磁気
ディスク装置を処理する高速I/Oチャネルを制御。I
/Oプロセッサアセンブリ(IOP)111−118は
I/O装置に関連する隷属処理機能を遂行する。シュミ
レーションプロトコルがこれに対して定義され、これに
よりホストCPUはIOPにシュミレーションスクリプ
トを実行するよう指令できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理システムの
設計、より詳細には、コンピュータシステムに接続され
た物理装置及びこのシステムに課せられる作業負荷のシ
ミュレーションをサポートするための設計に関する。
【0002】
【従来の技術】現代のコンピュータシステムはますます
多様な困難なデータ収集及び分析タスクを遂行するため
に使用されるようになってきている。コンピュータの普
及及び複雑化とともに、コンピュータシステム自体に関
する情報を得、また質問に答えることが頻繁に要求され
るようになった。マシンの複雑化のために、有効な情報
を純粋に手作業による方法のみで得ることは困難であ
る。コンピュータはこのような様々な問題を解決するた
めに使用されるため、コンピュータを内観的タスク(in
trospective task)にも使用しようと言う考えはごく自
然である。例えば、コンピュータシステムは、ハードウ
ェアの故障を診断し、性能及び使用頻度情報を提供し、
またプログラムのデバギング支援等の能力を持つように
設計されてきた。
【0003】内観的問題を解く場合、コンピュータは、
しばしば、仮想的な要求に答えることを要求される。例
えば、それが任意の外部作業負荷にいかに応答するか、
特定のプログラムを実行するのにどれだけ時間がかかる
か、ハードウェア要素の一時的な損失の影響はどの程度
であるかなどを知ることが必要である。このような質問
に答えなければならない一つのアプリケーションは容量
計画アプリケーションである。容量計画には、コンピュ
ータシステムに課せられると考えられる将来の作業負荷
の予測、このような作業負荷にシステムがいかに応答す
るかの予測、及び(システムに追加のハードウェアを接
続する等によって)その応答がいかに向上できるかの決
定を含む。もう一つのこのようなアプリケーションはハ
ードウェア及びソフトウェア開発であるが、ここでは、
様々な予測される環境において、システムが開発中のハ
ードウェア或はソフトウェア要素にいかに応答するかを
知ることが必要である。さらにもう一つの可能なアプリ
ケーションは、欠陥診断、特に、断続的エラー状態の欠
陥診断であるが、この場合、断続的エラー状態の再現は
特定の環境が想定されることを必要とする。もう一つの
可能なアプリケーションは性能分析及び診断であるが、
この場合、システムが任意の与えられた条件下において
いかに振る舞うか及びシステムの挙動をいかに変えるこ
とができるかを決定することが必要である。
【0004】理論的には、実ユーザの代わりに適当なソ
フトウェアを実行する実ハードウエアにて仮想条件を模
擬することが可能である。但し、現実的には、このよう
な解決方法は全く実際的でない。例えば、将来の拡張を
計画している企業はそのシステムが多数の接続された端
末及び対話ユーザからの作業負荷の増加にいかに応答す
るかを知りたいと望む。理論的には、この企業は、要求
される設備を実際に購入し、端末オペレータを採用し、
システムへの入力のための追加の作業負荷を生成し、結
果を観察することもできる。但し、現実的には、このよ
うなアプローチは費用が高くつきすぎて問題とならな
い。もう一つの例として、ソフトウェア開発会社は、そ
のソフトウェアが、様々なシステム構成及び作業負荷の
下で、特定のシリーズのコンピュータシステム上でどの
ように振る舞うかを知りたいと望む。この場合、様々な
構成を模擬するために要求される全てのハードウェアを
実際に購入し、要求される数の対話ユーザを雇い、結果
を観察することもできるが、このアプローチも経費及び
時間がかかり過ぎる。経費及び時間がかかり過ぎるのに
加えて、上に説明されたような方法による実状態の模擬
は、再現可能な結果を得ることができないと言う理由で
もしばしば望ましくない。実ユーザがキーボードの所で
データを入力する場合、当然、入力流の実タイミングに
幾らかの変動が生じ、観察される結果に変動を与える。
幾つかのアプリケーションョンにおいては、このような
変動は重大な欠点となる。例えば、断続的なエラー状態
を診断しようとする開発者はエラー状態がそれによって
誘発される再現可能な一連の事象を確定することを目的
とする。
【0005】仮想的問題のためのデータを提供するもう
一つのアプローチは実ユーザと接続されたハードウェア
の代わりを勤める専用ハードウェアシミュレータの使用
である。このようなハードウェアシミュレータは実対話
ユーザの必要性を排除し、再現可能な方法にてシミュレ
ートされた作業負荷を生成することを可能にする。但
し、ハードウェアシミュレータは、それでも、この情報
を提供するための非常にコストの掛かる方法である。典
型的には、ハードウェアシミュレータはそれらが置換さ
れる製造よりも高い。このため、ハードウェアシミュレ
ータは、通常、システム開発研究所に限定される。
【0006】シミュレーションソフトウェアを生成する
ことも可能である。このソフトウェアは中央演算ユニッ
ト(CPU)から命令を発生し、シミュレートされた作
業負荷をシステムによって処理させることによって仮想
上の条件を模擬することを試みる。このソフトウェアは
あるタスクに対しては十分であるが、但し、しばしば、
システム上で多くの条件をシミュレーションする能力に
欠如する。このコンピュータシステムは、典型的には、
一つのCPUを含み、これが一つ或は複数の通信バスを
介して様々なメモリ装置及び隷属プロセッサに接続され
る。これら隷属プロセッサは、他方、I/O装置、例え
ば、ディスクドライバ、対話型ワークステーション、プ
リンタ等に結合され、或は他の隷属プロセッサに結合さ
れる。システムの挙動はこれら装置の数及びタイプに依
存するばかりか、接続トポロジーにも依存する。CPU
内で実行されるシミュレーションソフトウェアは、必ず
しも、システムの他の部分、特に、隷属プロセッサ及び
I/O装置の状態を正確に表わさない。
【0007】コンピュータが内観的タスクを遂行する場
合、これは、オペレータから幾らかの情報を得るが、但
し、通常は、情報源はコンピュータ自体である。コンピ
ュータ上で遂行される任意のタスクと同様に、出力情報
の品質は入力の品質以上であることはない。不幸にし
て、先行技術によるこれらコンピュータシステムは妥当
なコストにて多くの仮想上の質問に答えるための正確な
情報を得る能力が欠如している。
【0008】
【発明が解決しようとする課題】本発明の一つの目的
は、従って、コンピュータシステム上で内観的タスクを
遂行するための向上された方法及び装置を提供すること
にある。
【0009】本発明のもう一つの目的はコンピュータシ
ステム内の仮想装置及び作業負荷に関する情報の精度を
向上させることにある。
【0010】本発明のもう一つの目的はコンピュータシ
ステム内の仮想装置及び作業負荷に関する正確な情報を
提供するコトスを低減することにある。
【0011】本発明のもう一つの目的はコンピュータシ
ステム上で容量計画タスクを遂行するための向上した方
法及び装置を提供することにある。
【0012】本発明のもう一つの目的はコンピュータシ
ステムに関する容量計画予測の精度を向上させることに
ある。
【0013】本発明のもう一つの目的はコンピュータシ
ステムのためのソフトウェアを開発するための向上した
方法及び装置を提供することにある。
【0014】本発明のもう一つの目的は、コンピュータ
システム内の問題を診断するための向上した方法及び装
置を提供することにある。
【0015】本発明のもう一つの目的は、向上した精度
及び再現性にてコンピュータシステム装置及び作業負荷
のシミュレーションを遂行することにある。
【0016】
【課題を解決するための手段および作用】本発明による
コンピュータシステムはCPU、主メモリ、及び互いに
一つ或は複数のシステムI/Oバスにて結合された複数
のI/Oプロセッサアセンブリ(IOP)を含む。IO
PはI/O装置に関連する隷属処理機能を遂行する。個
々のI/O装置はプログラマブルプロセッサを含む。個
々のI/O装置はIOPを介してシステムに接続され、
これとシステムの他の要素との間の全ての通信はIOP
を通らなければならない。
【0017】シミュレーションプロトコールがIOPに
対して定義されるが、ここで、主メモリ内に常駐する命
令を実行するCPUはIOPにシミュレーションスクリ
プトを実行するように指令できる。このシミュレーショ
ンスクリプトはシミュレートされるべき一つ或は複数の
I/O装置を定義し、また装置と関連するシミュレート
された作業負荷を指定する。IOPはシミュレーション
スクリプトをあたかもIOPに接続された実I/O装置
がスクリプト内に示された作業を遂行するかのようにシ
ステムI/Oバスと対話することによって実行する。例
えば、対話型ワークステーションがシミュレートされる
場合、IOPはシミュレートされた入力データストリン
グをある間隔で送信し、意図されたCPUからシミュレ
ートされたワークステーション上に対話表示するために
出力を受信する。
【0018】シミュレートされたI/O装置が実際にシ
ステム上に存在する必要はない。単一のIOPにて複数
のI/O装置、及び複数のタイプのI/O装置をシミュ
レートでき、また複数のIOPが複数のI/O装置を同
時にシミュレートできる。実I/O装置も同一のIOP
或は異なるIOPからシミュレーションと同時に動作で
きる。こうして、I/O装置のシステムへの事実上全て
の仮想構成がシミュレートできる。
【0019】典型的な使用においては、一つ或は複数の
アプリケーションプログラムがシステムI/Oバスに接
続されたIOP内の一つ或は複数のシミュレーションス
クリプトの実行と平行して中央演算ユニット上で実行す
る。IOPはシミュレーションスクリプトの実行を通じ
て通常の使用の際に実I/O装置から期待されるアプリ
ケーションプログラムへの入力をシミュレートする。I
OPはまたシミュレートされたI/O装置に向けられる
アプリケーションプログラムによって生成された出力を
受信し、この確認通知を送る。このような条件下でのこ
のシステムの挙動は容量計画予測、アプリケーションプ
ログラムの開発及びデバッギング、断続的エラー状態の
模擬及び診断、或は仮想条件下でシステムの特性を決定
するために必要な他のタスクを遂行するために使用する
ことができる。
【0020】
【実施例】図1には本発明の好ましい実施例に従うI/
O装置をシミュレートする能力を持つコンピュータシス
テムの主要なハードウェア要素が示される。コンピュー
タシステム100はシステムランダムアクセスメモリ1
02に結合された中央演算ユニット(CPU)101を
含む。システムメモリ102はCPU101のアドレス
空間内に存在する。単一ユニットとして示されている
が、これは、実際には、当分野において周知のように、
メモリ装置の階層、例えば、小さな比較的高速のキャッ
シュメモリ及びより低速であるが大きな主メモリから成
ることに注意する。CPU101及びメモリ102はバ
スインターフェースユニット103に結合される。イン
ターフェースユニット103はシステムI/Oバス10
5の制御を仲裁し、またバス105とCPU101或は
メモリ102との間の通信を扱う。システム100は1
つ以上のシステムI/Oバスを持つことができる。図1
にはユニット103に接続された第二のバスインターフ
ェースユニット104が示される。第二のユニット10
4は第二のシステムI/Oバス106の制御を仲裁し、
バスインターフェースユニット103を通じて第一のシ
ステムI/Oバス105、CPU101及びメモリ10
2と通信する。バス105、106は複数のI/Oプロ
セッサ111−118への通信経路を提供する。I/O
プロセッサはI/O装置との通信を扱い、これら装置の
幾つかの機能を制御する。システム100上には様々な
異なるタイプのI/Oプロセッサが存在する。個々のメ
モリI/Oプロセッサ111−113は磁気ディスクド
ライブ直接アクセスメモリ装置(DASD)、磁気テー
プドライブ、及びディスケットドライブ等のような記憶
装置を処理する高速I/Oチャネルを制御する。ワーク
ステーションI/Oプロセッサ114−116は複数の
直接ローカル接続を通じてローカルに位置する対話型ワ
ークステーション及びプリンタを処理する。通信I/O
プロセッサ117−118は遠隔通信ライン及びトーク
ンリングローカルエリアネットワークを処理するが、こ
れらは、追加のI/O装置或は(システム100にとっ
てはI/O装置と見える)他のコンピュータシステムに
接続される。I/O装置、I/Oプロセッサ及び他の要
素の数、タイプ及び構成は変動することに注意する。本
発明に従うコンピュータシステムは単一のシステムI/
Oバスを含むことも、或は複数のバスを含むこともあ
る。システム内には異なるタイプのI/Oプロセッサが
存在し、これらには、I/Oプロセッサの1つのタイプ
以上の複数の機能を遂行する多重機能I/Oプロセッサ
が含まれる。また、光学メモリ装置、光学文字リーダ、
音声I/O装置等のような異なるタイプのI/O装置が
存在する。これに加えて、システム100は、複数の中
央演算ユニットを含む多重プロセッサシステムでもあり
得る。この好ましい実施例においては、システム100
はIBMアプリケーションシステム/400システムで
ある。
【0021】図2にはこの好ましい実施例の典型的なI
/Oプロセッサアセンブリ(IOP)201の主要な要
素が示される。このI/Oプロセッサアセンブリは、示
されるように様々な通信経路を介して互いに結合され
た、プログラマブルプロセッサ202、ローカル的にア
ドレス可能なメモリ203、システムI/Oバスインタ
ーフェース回路206、及び装置インターフェース回路
207を含む。ローカル的にアドレス可能なメモリ20
3は命令及びIOPの始動のために要求される必須デー
タを格納するための不揮発性部分205、及びダイナミ
ック部分204を含む。IOPの目的は、CPUがそれ
自体によって全てのI/Oサポートを遂行する負担を解
放することにある。IOPは高速I/Oチャネル、ワー
クステーションライン、或は他の通信ラインをドライブ
することによってI/O装置をサポートする。IOPは
またシステムメモリとI/O装置との間の直接メモリア
クセスを扱う。ワークステーションの場合は、IOPは
またディスプレイを更新することに関連するタスク、例
えば、データキーストロークの処理、カーソル移動、画
面移動等の様々なタスクを遂行する。こうして、CPU
はこれらI/Oサポートの詳細から遮蔽され、I/O装
置がシステムに対して準備された幾つかの入力を持つと
きにのみI/O装置から情報を受ける。
【0022】動作において、IOPプログラマブルプロ
セッサ202はローカル的にアドレス可能なメモリ20
3内に格納された制御プログラム210内に含まれる命
令を実行する。メモリ203はシステムI/OバスとI
/O装置との間で伝送されるデータを一時的に格納する
ためのキャッシュとしても機能する。プロセッサ202
はシステムI/Oバスインターフェース回路206或は
装置インターフェース回路207にデータを移動させた
り、或はコマンド、状態情報等を発行する機能を持つ。
データはまたメモリ203,バイパスプロセッサ202
を通じても移動される。
【0023】この好ましい実施例においては、IOP2
01はワークステーションコントローラであり、これに
複数の対話型ワークステーションが接続される。IOP
はそれがダイナミックメモリ204内で処理する個々の
ワークステーションに対する画面バッファ及びフィール
ドフォーマットテーブルを維持する。画面バッファはワ
ークステーションの所の現ディスプレイ画面の内容を格
納し、フィールドフォーマットテーブルは項目フィール
ドの位置を識別する。このバッファ及びフィールドフォ
ーマットテーブルはワークステーションコントローラI
OPがワークステーションから受信された幾つかのキー
ストロークをホストからの介在無しで処理することを可
能にする。例えば、カーソル移動キーストロークは画面
バッファを更新することによって処理できる。
【0024】ここで使用される用語I/Oプロセッサは
I/Oに関連する隷属処理機能を遂行する主体を指すこ
とに注意する。コンピュータシステム内には多くの異な
るIOP設計が存在する。この好ましい実施例において
は、このI/Oプロセッサアセンブリは単一の電子回路
カードから成り、この上に複数の電子部品が搭載され、
これら部品は互いにこの回路基板上の一つ或は複数の印
刷回路平面内に含まれる様々な回路を介して電気的に接
続される。ただし、I/Oプロセッサアセンブリは、多
重回路カード内に含まれることも、単一回路カードの一
部の上に含まれることも、或は単一チップ上に含まれる
こともある。
【0025】このシステムのIOPのホスト側部分(つ
まり、CPU、システムメモリ、システムI/Oバス、
他のIOP、その他)から見た場合、このIOPはこれ
に接続された一つ或は複数のI/O装置である。CPU
及び/或は主メモリはIOPからシステムI/Oバスを
通じて入力データ流を受信し、またIOPにシステムI
/Oバスを通じて出力データ流を送る。ここに開示され
る発明の本質は、IOPが、通常、ある一つのI/O装
置から受信され或はこれに送られるデータ流を生成及び
受け入れることによって、効果的にそのI/Oをこのシ
ステムのホスト部分にシミュレートすることである。
【0026】この好ましい実施例によると、これらIO
Pに対してシミュレーションプロトコールが定義され
る。このプロトコールは、主メモリ内に常駐する命令を
実行するCPUがシミュレーションスクリプトを実行す
るためにIOPにコマンドを発行する手順を定義する。
プロトコールによってフォーマットが定義されるシミュ
レーションスクリプトが主メモリから実行のためにIO
Pに運ばれる。このスクリプトはIOPによって一つ或
は複数の装置をシミュレートするために取られるべき動
作の速記記述である。このスクリプトはIOPが実行す
る一連のコマンドのように見えるが、但し、個々の”コ
マンド”は、IOPのプログラマブルプロセッサによっ
て実行される単一命令ではなく、IOPによる複雑な一
連の動作を要求する。IOPローカルメモリ203内に
常駐するIOPの制御プログラムの部分は、スクリプト
の個々のブロックを復号し、これをI/O装置をシミュ
レートするためにIOPに要求される一連の動作に拡張
する。IOPは、次に、拡張されたスクリプトによって
要求される動作を実行する。実行には、あたかもIOP
に接続された実I/O装置がこのスクリプトによってシ
ミュレートされるべき仕事を遂行するかのように、シス
テムI/Oバスとの対話が伴う。I/O装置が生成する
であろう典型的なデータ流がI/O装置に代わってIO
Pによって生成され、システムI/Oバス上に置かれ、
CPU、主メモリ或は他のシステム要素に向けられる。
I/O装置に向けられるホストからの出方向のデータ流
は、IOPによって受信及びその通知を与えられ、これ
によって、あたかも実I/O装置が接続されているかの
ように処理されるが、但し、実際には、IOPからI/
O装置にデータは伝送されない。
【0027】図3は好ましい実施例に従う典型的なシミ
ュレーションスクリプト301の高レベルフォーマット
を示す。この実施例においては、IOPはワークステー
ションコントローラであり、これに複数の対話型ワーク
ステーションが接続される。但し、本発明は、多機能I
OPを含む他のタイプのIOPによっても実施できるこ
とに注意する。シミュレーションスクリプトは、一つの
1バイト制御ブロックカウントフィールド302、一つ
或は複数のシミュレータ制御ブロック303−305、
及び一つ或は複数のデータ流スクリプトを含む。ブロッ
クカウント302はスクリプト301内のシミュレータ
制御ブロック303−305の数を示す。図3の例にお
いては、3つのシミュレータ制御ブロック303−30
5がスクリプト内に含まれ、ブロックカウント302
は、従って、”3”にセットされる。個々のシミュレー
タ制御ブロックはシミュレートされるべき単一のI/O
装置を定義する。個々のデータ流スクリプトは、IOP
があたかも入り方向のデータ流を生成するために対話型
ワークステーションのキーボードから受信されたかのよ
うに処理するシミュレートされた入力データ流(この場
合は、シミュレートされたキーストローク)を定義す
る。この入り方向データ流は、次に、システムI/Oバ
ス上に、あたかもこれが対話型ワークステーションから
発せられたかのように送る。複数のデータ流スクリプト
が個々のシミュレートされたI/O装置と関連する。図
3の例においては、4つのデータ流スクリプトが第一の
シミュレートされたI/O装置と関連し、3つのデータ
流スクリプトが他のシミュレートされたI/O装置の個
々と関連する。これに加え、異なるシミュレートされI
/O装置と関連する制御ブロックが一つ或は複数のデー
タ流スクリプトを共有する。
【0028】図4は、シミュレーションスクリプト30
1の一部である典型的なシミュレータ制御ブロック30
3のフォーマットを示す。シミュレータ制御ブロック3
03は以下に説明されるフィールドを含む。ブロック長
フィールド321(バイト位置0−3の所)はシミュレ
ータ制御ブロックの全体の長さを(バイト単位にて)含
む2バイトフィールドである。装置IDフィールド32
2及びモデルIDフィールド323はシミュレートされ
るI/O装置(この場合は、ワークステーション)のタ
イプ及びモデルを識別する。キーボードIDフィールド
324及び拡張キーボードIDフィールド325はシミ
ュレートされるワークステーションに接続されたキーボ
ードのタイプを識別する。装置アドレスフィールド32
6はシミュレートされたワークステーションのIOP内
の論理アドレスを識別する。ワークステーションのシス
テムワイドアドレスはIOPのアドレスとワークステー
ションのIOP内のアドレスとの組合わせである。遅延
時間フィールド327はシミュレーションの開始からI
OPがシミュレーション制御ブロックによって呼び出さ
れるデータ流スクリプトの実行を開始するまでの遅延時
間を(秒単位にて)含む。ストリームカウントフィール
ド328はシミュレータ制御ブロック303内に含まれ
るデータ流制御ブロックの数を識別する。可変数のデー
タ流制御ブロック329−322(3つ以下でない)が
ストリームカウントフィールド328に続く。データ流
制御ブロックはバイト位置10から(9+11* N)を
占拠する。ここで、Nは示されるように制御ブロックの
数である。個々のデータ流制御ブロック329−332
はIOPによって実行されるべきデータ流スクリプトを
識別する。終端バイト333はシミュレータ制御ブロッ
ク303の終端を合図する。
【0029】図5はシミュレータ制御ブロック303の
一部である典型的なデータ流制御ブロック330を示
す。このデータ流制御ブロックはデータ流スクリプトを
識別し、この実行を制御するために使用される。個々の
データ流制御ブロックは一つのデータ流スクリプトと関
連するが、一方、一つのデータ流スクリプトを多重制御
ブロックにて共有し、多重シミュレートされたI/O装
置が同一データ流スクリプトを使用できるようにするこ
とも可能である。図5の例においては、データ流制御ブ
ロック330はデータ流スクリプト311と関連する。
データ流制御ブロック330は以下に示されるフィール
ドを含む。スクリプト長フィールド341は対応するデ
ータ流スクリプトの長さを(バイト単位にて)識別す
る。オフセットフィールド342はシミュレーションス
クリプトレコード内のデータ流スクリプトの開始位置を
レコードの開始からのオフセットとして(バイト単位に
て)識別する。キーイング速度フィールド343はキー
ストロークがシミュレートされるべき速度を(秒当りの
文字数にて)識別する。思考時間乗数(think time mul
tiplier )フィールド344は(対話型ユーザによる思
考をシミュレートして)ワークステーションからの応答
時間を計算するために使用される乗数を含む。ループカ
ウントフィールド345はデータ流スクリプトが次のス
クリプトに進む前に実行されるべき回数を示す。終端バ
イト346はデータ流制御ブロックの終端を合図する。
【0030】図6は典型的なデータ流スクリプト311
の高レベルフォーマットを示す。データ流スクリプトは
キーストロークを表わすコマンド及び個々のバイトの可
変長流である。これは開始コマンド351と終端コマン
ド353によって区切られる。開始コマンドと終端コマ
ンドとの間に追加のコマンドが存在するが、但し、主に
コマンド間のデータ流部分352はシミュレートされた
ワークステーションからのキーストロークを表わす個々
のバイトから成る。好ましい実施例においては、データ
流部分に対して思考時間コマンドが定義され、これは、
IOPにデータ流内に指定される時間遅延を挿入するよ
うに指示する。コマンド内に指定される時間遅延にデー
タ流制御ブロックのフィールド344内に指定される思
考時間乗数が掛けられる。
【0031】図7はデータ流内に含まれるデータ流コマ
ンド351のフォーマットを示す。このコマンドはコマ
ンド361の開始を合図するための1バイトエスケープ
コード、コマンドの長さを(バイト単位にて)示す長さ
欄362、コマンドを識別するコマンドコード363及
び1バイトスケープフィールド367を含む。フィール
ド366及び367はコマンドをバイトの対称性シリー
ズにし、これが順方向或は逆方向のいずれからも読める
ようにする。コマンド351は、オプションとして、追
加のコマンドパラメータ364を含む。追加のパラメー
タ364が存在する場合、対称性を維持するために第二
のコマンドコードフィールドが必要である。図7の例に
おいては、コマンドはデータ流スクリプト長及び識別子
を指定する10バイトの追加のパラメータを持つ開始コ
マンドである。
【0032】この好ましい実施例に従う本発明の動作に
ついて次に説明される。図8は関与するステップの高レ
ベルフローチャートである。シミュレーションはシステ
ムのホストサイドから開始される。シミュレーションは
ホストCPU上で実行されるアプリケーションプログラ
ムからの呼或は対話型端末から入力されるコマンドのい
ずれかによって開始される(ステップ401)。シミュ
レーションスクリプト301は、アプリケーションプロ
グラム内に埋め込まれるか、或は一つの別個のファイル
とされる。アプリケーションプログラム或はシミュレー
ションを開始したユーザは多重IOP内のシミュレーシ
ョンを同時に開始するが、これは同一或は異なるシミュ
レーションスクリプトを使用する。図8は一つのIOP
のみに対するシミュレーションステップを示すが、図8
に示されるように複数のIOPがこれらステップを同時
に遂行できることに注意する。
【0033】例えば、容量計画アプリケーションプログ
ラムは一つ或は複数のシミュレーションスクリプトを呼
び出し、これらスクリプトを実行し、システム応答を測
定することによって仮想上の形態及び作業負荷をテスト
する。別の一つの例においては、ソフトウェアモジュー
ルを展開するソフトウェア開発者がIOPにそのソフト
ウェアモジュールが実行されている最中に一つ或は複数
のシミュレーションスクリプトを実行するように指令す
る。ここで、これらシミュレーションスクリプトは、単
に、システムに対する典型的な背景ワークを提供するこ
とも、或はテスト下のソフトウェアモジュールを直接呼
び出すこともできる。さらにもう一つの例においては、
システム開発者が断続的なエラー状態をデバッグするた
めのシミュレーションを呼び出すためにシステムコンソ
ールを使用する。いったんシミュレーションスクリプト
が断続エラーを誘引するように構成されると、これはそ
れを任意の回数だけ誘引でき、こうしてシステムの挙動
が観察される。
【0034】シミュレーションの開始の際に、ホストは
シミュレーションを開始するためにホストにシミュレー
ションスクリプトと共にシミュレーション一つのコマン
ドを送る(ステップ402)。このスクリプトはシステ
ムのホスト側のどこか、例えば、主メモリ、ティスク記
憶装置、その他に格納され、次に、システムI/Oバス
を介してIOPにダウンロードされる。IOPはこのス
クリプトをそのローカルメモリ内にシミュレーションの
期間だけ格納する。この好ましい実施例においては、シ
ミュレーションスクリプトは、通常の動作の際は、スク
リプトを復号及び実行する任務を持つIOPの制御プロ
グラムの部分であるIOPローカルメモリ203内には
保たれない。ホストからのシミュレーションスクリプト
のこのダウンローディングは、ホストが多様のシミュレ
ーションスクリプトを格納できるためシミュレーション
の内容により大きな柔軟性を与える。但し、もう一つの
代替実施例においては、標準シミュレーションスクリプ
トをその制御プログラムの一部としてIOP内に永久保
存する。
【0035】シミュレーションスクリプト301が受信
されると、IOPはこのスクリプトをローカルメモリ2
03内に格納し、スクリプトの様々な制御ブロックを構
文解析する(ステップ403)。スクリプト301は一
つ或は複数のシミュレータ制御ブロック303−305
を含むが、個々のブロックはシミュレートされるべき一
つのI/O装置に対応する。IOPは個々のシミュレー
トされたワークステーションに対するホストにパワーア
ップメッセージを送る。このパワーアップメッセージは
ホストに対話型ワークステーションがパワーアップさ
れ、ホストからの命令を待っていることを通知する。同
時に、IOPは個々のシミュレートされたワークステー
ションに対する画面バッファ及びフィールドフォーマッ
トテーブルをそのローカルメモリ内に割り当てる。ホス
トは、通常これに応答して、あたかも実ワークステーシ
ョンがパワーアップされたかのように、ワークステーシ
ョンにログオン画面を送る(ステップ404)。
【0036】以下に説明されるステップが個々のシミレ
ートされるワークステーションに対して別個に実行され
る。IOP制御プログラムは、結果として、あたかも複
数の現実の対話型ワークステーションに対して持つよう
に、並列にて動作する複数の別個のワークステーション
セッションを持つ。
【0037】個々のログオン画面を受信すると、IOP
はシミュレートされたワークステーションに対するタイ
マを始動し、対話型ユーザによるシミュレートされたロ
グオンを開始する前に初期時間遅延だけ待つ(ステップ
406)。この遅延時間はシミュレータ制御ブロック3
03の遅延時間フィールド内に指定される時間である。
個々のシミュレートされた装置に対して別個のシミュレ
ータ制御ブロック303が存在するため、異なる遅延時
間を持つことが可能であり、シミュレートされたユーザ
の時差ログオンが可能となる。
【0038】遅延期間を待った後に、IOP内の制御プ
ログラムは第一のデータ流スクリプトを実行するが、こ
れは、慣習上、ログオンスクリプトである(ステップ4
07)。ログオンスクリプトは一度のみ実行される。I
OPはデータスクリプトを実行するが、これは、スクリ
プト内に埋め込まれた全てのコマンドを復号し、適当な
動作を実行することによって達成される。つまり、スク
リプト内に含まれるデータバイトのストリームをあたか
もこれらが実ワークステーションから受信されたかのよ
うに処理することにより入り方向データが生成され、ス
クリプトからこうして生成された入り方向データがシス
テムI/Oバス上に伝送される。例えば、ログオンデー
タ流スクリプトのケースにおいては、スクリプトは、典
型的には、開始コマンド351、これに続く、ユーザの
識別子に対応する文字ストリング、パスワード、オプシ
ョンとしてのログオンパラメータ、タブキー或は入力キ
ー(一体となってパート352を構成)等のような適当
な区切り文字、及びこれに続く終端コマンド353を含
む。開始及び終端コマンド351、353はホストから
受信されるコマンドと区別されるべきである。つまり、
コマンド351、353はデータ流スクリプトの区切り
文字としてのみ使用され、IOPにある特定の動作を行
なわせるコマンドとしては使用されない。ホストはログ
オンスクリプトに、あたかも実ユーザがシステムにログ
オンされているかのように、通常の方法で応答する(ス
テップ408)。
【0039】第一の(ログオン)データ流スクリプトを
実行した後に、IOPは”中間”スクリプトをシーケン
スにて遂行する(ステップ409)。この中間スクリプ
トは第一及び最後のスクリプト以外の全てのデータ流ス
クリプトから成る。ログオンスクリプトのケースのよう
に、個々の中間スクリプトはスクリプト内に含まれるデ
ータバイト流を処理することによって実行される。つま
り、全ての埋め込まれたコマンドに対する適当な動作が
遂行され、システムI/Oバスを通じて結果として生成
された出方向のデータ流がホストに伝送される。例え
ば、ある埋め込まれたコマンドは、IOPにデータ流の
中間において指定される長さの時間だけ休止することを
要求する。データ流スクリプトはデータ流制御ブロック
330のループカウントフィールド345内に指定され
る回数だけ反復される。IOPがあるデータ流スクリプ
トの実行を終了すると、これは、次のスクリプトへと進
む。全ての中間データ流スクリプトが実行されると、I
OPは第一の中間スクリプト(第二のデータ流スクリプ
ト)へとループバックし、このシーケンスを反復する。
この中間データ流スクリプトがホストから停止コマンド
が受信されるまで無限に反復される。
【0040】ログオンスクリプトのケースと同様に、ホ
ストは必要に応じて中間データ流スクリプトの結果とし
て受信された様々な入力流に応答する(ステップ41
0)。例えば、ある中間データスクリプトは、第一に、
資料を編集するために編集プログラムを呼び出し、次に
この資料内のランダムの文字挿入及び削除を遂行し、最
後に編集された資料を保存するための入り方向データ流
を生成する。ホストはこれらデータ流の各々に応答し
て、例えば、最初にこの資料を表示し、ワークステーシ
ョンのディスプレイ上のこの資料を修正されたように更
新し、ワークステーションのディスプレイに適当な保存
メッセージを送信する。また、このデータ流のために、
ホストの様々な部分が応答して、例えば、資料が最初に
呼び出されたときティスク記憶装置からこれを読み出
し、或は後に保存するためにティスク記憶装置にこれを
書き込ませる等の動作が遂行されることに注意する。
【0041】IOPがホストからシミュレーションを停
止するためのコマンドを受信すると(ステップ41
1)、これは、現データ流スクリプトの処理を完結し、
次に、最後のデータ流スクリプト、つまり、ログオフス
クリプトを実行する(ステップ412)。ホストがこれ
に応答してログオフの受取りを通知し、ディスプレイを
アイドル状態に戻すと(ステップ413)、IOPはホ
ストにパワーダウンメッセージを送信することによって
シミュレートされたワークステーションがパワーダウン
されたことを示す。こうして、このシミュレーションが
完結される。
【0042】図9はIOP制御プログラムによって個々
のワークステーションをシミュレートするために遂行さ
れるステップをより詳細に示すが、これらは、図8の高
レベルのダイヤグラムにおいては、ステップ405、4
06、407、409、412として表わされる。IO
Pがホストからのパワーオン受取り通知及びログオン画
面を受信すると、これはタイマをフィールド327内に
指定される遅延値にセットする(ステップ501)。こ
れは、次に、タイマが満了するまでアイドル状態にて待
つ(ステップ502)。タイマが満了すると、現データ
流スクリプトに対するポインタが第一のスクリプトに初
期化され、ループカウンタが1に初期化される(50
3)。IOPは次に現データ流スクリプトを処理する。
つまり、スクリプトを構文解析し、ホストへの入り方向
データ流を構築し、データ流を伝送し、そしてホストの
応答を受信する(ステップ504)。図10にはデータ
流スクリプトの処理の詳細が示される。データ流スクリ
プトが完全に処理されると、IOPはホストからの停止
コマンドの存在をチェックする。(ステップ505)。
停止コマンドが受信されてないときは、これは、ループ
カウント変数Lを増分し(ステップ506)、Lがフィ
ールド345内に指定されるループカウントを超えるか
否かチェックし(ステップ507)、超えない場合は、
流れはステップ504に進み、ここでデータ流スクリプ
トが反復される。ループカウントが指定カウントに達し
ているときは、現データ流ポインタが次のデータ流スク
リプトに増分され、ループカウントが1にリセットされ
る(ステップ508)。ポインタが現在最後のデータ流
スクリプトをポイントするときは(ステップ509)、
ポインタが第二のスクリプトにリセットされる(ステッ
プ510)。流れは次にステップ504に進む。ステッ
プ505において、停止コマンドが受信されたことが決
定されると、現データ流スクリプトポインタがログオフ
スクリプトである最後のスクリプトにセットされ、この
スクリプトが前のスクリプトと同様な方法で処理される
(ステップ512)。IOPは、次に、装置パワーダウ
ンメッセージを送信し、ダイナミックRAMのシミュレ
ートされた装置に対して割り当てられた画面バッファ及
びフィールドフォーマットテーブルの部分を解放する。
全てのシミュレートされた装置がパワーダウンされた
ら、ダイナミックRAMのシミュレーションスクリプト
のメモリに割り当てられた部分が解放される。
【0043】図10はデータ流スクリプトの構文解析の
時にIOP制御プログラムによって遂行されるステップ
を示す。このプログラムはローカルメモリ内のデータ流
スクリプトの位置をシミュレーションスクリプトレコー
ド301の位置及びデータ流制御ブロックのオフセット
フィールド342から決定する。これは次に、最初の1
6文字の構文解析を行なうが、これは開始コマンドでな
ければならない(ステップ602)。この最初の16文
字が開始コマンドでないときは、エラー状態が合図され
る(ステップ360)。データ流スクリプト内のバイト
を識別するためのバイトポインタがデータ流スクリプト
の開始位置に開始コマンドの長さを加えた値にセットさ
れる(ステップ603)が、これは開始コマンドの直後
の位置である。システムI/Oバスに向けられた入力方
向データ流がブランクに初期化される(ステップ60
4)。
【0044】プログラムは次にデータ流スクリプトを一
度に1バイトづつ構文解析する。解析中のバイトが’0
0’Xでないときは(ステップ605)、これは、あた
かもワークステーションが実在するかのようにワークス
テーションから受信されたキーストライクと同様な方法
にて処理される(ステップ606)。この好ましい実施
例のIOPはワークステーションディスプレイに関する
状態情報をその画面バッファ及びフィールドフォーマッ
トテーブル内に維持する。ある種のキーストローク、例
えば、カーソル移動或はタブキーは、IOPにこの状態
情報をホストに何も送ることなく更新させる。他のキー
ストローク、例えば、英数文字は、典型的には、ホスト
に送られるために入り方向データ流に加えられる。但
し、このデータ流は直ちにホストに送られるのではな
く、注意喚起識別子(Attention Identifier、AI
D)、例えば、”エンター”キー或は機能キーに続いて
送られる。さらに別のキーストロークが、例えば、後退
或はカーソル移動に続く前に入力された入力フィールド
のタイピングの場合のように、入力データ流の編集をI
OPに起こさせる場合もある。
【0045】キーストロークの処理が終ると、バイトポ
インタが増分され(ステップ607)、IOPはバイト
ポインタがデータ流スクリプトレコードの境界を越えな
いか検証する(ステップ608)。長さが境界を越える
場合は、エラー状態が示される(ステップ630)。超
えないときは、今処理されたキーはAIDキーではなく
(ステップ609)、シミュレーションプログラムはス
テップ610において1/(フィールド343内に指定
されたキー速度)に等しい期間だけ待つ。
【0046】この遅延は対話型ユーザからのキーストロ
ーク間の典型的な遅延をシミュレートする。これは、次
に、ステップ605に進み、データ流スクリプトの次の
バイトの構文解析を行なう。
【0047】AIDキーが処理された場合は(ステップ
609)、この入り方向データ流がシステムI/Oバス
上のホストに伝送される(ステップ611)。IOPは
次に、典型的には、次の表示画面であるホストの応答を
待つ(ステップ612)。応答が受信されると、流れは
ステップ604に戻る。典型的には、ワークステーショ
ンに対するデータ流はAIDの直後に思考時間コマンド
を含む。
【0048】ステップ605において構文解析されてい
るバイトが‘00’Xである場合は、コマンドであるこ
とが示される。この場合、このコマンドコードバイト
(フィールド363)が調べられる。このコマンドが思
考時間コマンドである場合は(ステップ620)、シミ
ュレーションプログラムは指定される思考時間期間にフ
ィールド344内に指定される時間乗数を掛けた値だけ
待ち(ステップ621)、バイトポインタをこのコマン
ドの長さだけ増分し(ステップ622)、流れはステッ
プ605に戻る。このコマンドが”終端”コマンド以外
の他の任意のコマンドである場合は(ステップ62
3)、このコマンドが実行され(ステップ624)、流
れはステップ605に戻る。ここに説明される実施例に
おいては、開始、終端及び思考時間コマンドのみが定義
されるが、多くの他のコマンドが可能であり、シミュレ
ーションプロトコールの一部として定義される。例え
ば、“パーセントジャンプ(percent jump)”コマンド
を定義することができるが、この場合、データ流スクリ
プト内の他の位置への分岐はそのコマンドが実行される
時間の指定されるパーセントの時間を占め、ある特定の
ケースにおいてジャンプを行なうか否かの決定は当分野
において周知のように乱数を生成することによって行な
われる。このようなコマンドはシミュレーションに幾つ
かの状況において必要となるランダム効果を導入すると
言う長所を持つ。別の例として、“呼(call)”コマン
ドを定義することもできるが、この場合、もう一つのデ
ータ流スクリプトが呼び出され、これが実行される。制
御はこうして呼び出されたデータ流スクリプト内で”終
端”コマンドが遭遇されたとき、元のデータ流スクリプ
トに戻る。
【0049】ステップ623において”終端”コマンド
であることが示された場合、プログラムはステップ62
5において、この終端コマンドが正しい位置にあるか検
証するが、これは、開始位置にオフセット(フィールド
342)及びデータ流スクリプトの長さ(フィールド3
41)を加えた値から5(終端コマンドの長さ)を引い
た値でなければならない。ステップ611において、終
端コマンド位置のエラーが示された場合は、プログラム
はこのエラーを処理するために分岐する(ステップ63
0)。終端コマンドが正しい位置にある場合は、データ
流スクリプトは正常に処理されたのであり、プログラム
は図9に示される次のステップを実行するためにリター
ンする。
【0050】ここに説明の好ましい実施例においては、
データ流スクリプト内に含まれるデータは、ワークステ
ーションからIOPによって受信されたデータを表わ
す。このデータはIOPによってあたかも実存のワーク
ステーションからのデータを処理するかのように処理さ
れる。IOPの部分は実ワークステーションに対して振
る舞うのと全く同様に振る舞う。画面バッファ及びフィ
ールドフォーマットが維持テーブルが維持され、制御プ
ログラムは実データのように見えるキーストロークを処
理し、こうしてより実際に近いシミュレーションを達成
する。但し、もう一つの代替実施例においては、データ
流スクリプトがホストへの入り方向データを表わし、こ
の場合は、IOPによるデータの処理は殆ど或は全く必
要とされない。あるタイプのワークステーション及びI
OPのケースにおいては、IOPがワークステーション
から受信するデータとこれがホストに伝送するデータと
の間に殆ど差異がない。例えば、ASCIIワークステ
ーションは、典型的には、IOP内においてデータ流ス
クリプトからのデータが処理されることを殆ど必要とし
ない。当業者においては、本発明はASCIIワークス
テーションを(ブロックモード或は列モードにて)処理
するIOPに簡単に適用できることが認識できるもので
ある。
【0051】IOPプロセッサ及びメモリ機能は、シミ
ュレートされたデータを処理するとき、殆どの部分にお
いてそれらの通常の方法にて動作するため、IOPは一
つ或は複数のワークステーションのシミュレーションと
同時に一つ或は複数の実存の対話型ワークステーション
を処理することができる。IOPは実存の或はシミュレ
ートされた個々のワークステーションに対してローカル
ダイナミックメモリ内に別個の画面バッファ及びフィー
ルドフォーマットテーブルを保持する。制御プログラム
は、実或はシミュレートされた個々のワークステーショ
ンからのデータを同一の方法にて処理する。唯一の差異
は、実ワークステーションからのデータはI/O装置イ
ンターフェース207上に出現し、他方、シミュレート
されたデータは制御プログラムのシミュレーションスク
リプトを実行する部分によってプロセッサに注入される
ことである。
【0052】ここに説明される好ましい実施例において
は、シミュレーションスクリプトはこれを実行するIO
P制御プログラムから分離される。このIOP制御プロ
グラムは、多くの異なるシミュレーションスクリプトを
実行できる能力を持つ汎用プログラムである。制御プロ
グラムはホストに送られるシミュレートされたデータ流
の実テキストを含まないために、これは、比較的コンパ
クトで、典型的にIOPメーカルメモリに提供される制
約された空間内への格納に適当である。好ましくは、シ
ミュレーションスクリプトは大容量データメモリ、例え
ば、磁気ディスク装置内に、シミュレーションを実行す
るためにシミュレーションスクリプトが実際に必要とな
るまで格納される。要求されると、選択されたスクリプ
トがIOPローカルモリ内にロードされ、説明されたよ
うに実行される。もう一つの代替実施例においては、シ
ミュレーションの際にIOPによってホストに送信され
るべきテキストは常時IOPローカルメモリ内に格納さ
れるか、或はIOPによって使用できる他の記憶装置内
に格納される。このテキストはシミュレーション制御プ
ログラム或は一つ或は複数の別個のシミュレーションレ
コード内に埋め込むこともできる。
【0053】さらにもう一つの代替実施例においては、
シミュレーションスクリプトを遂行する任務を持つ制御
プログラムの部分を正常の動作の際にIOPローカルメ
モリ内に保持することを必要としない。この実施例にお
いては、シミュレーションが要求される度に、専用のシ
ミュレーションプログラムがIOPのローカルメモリ内
にロードされるが、これは、I/O装置のシミュレーシ
ョンを達成するためにホストに送られるデータ流の埋め
込みテキストを保持することも保持しないこともある。
この代替実施例は要求されるIOPローカルメモリのサ
イズをシミュレーションの実行のために要求される制御
プログラムの部分のサイズまで削減できると言う長所を
持つが、但し、ホストオペレーティングシステムに、異
なるバージョンのIOPコードのロード、どのバージョ
ンが動作しているかの追跡などのサポートのための追加
の複雑さを要求する。
【0054】シミュレーションスクリプト301は、コ
ンピュータシステム内において任意のレコードとして生
成及び伝送されるレコードである。例えば、汎用ファイ
ルエディタを持つシミュレーションスクリプトを生成す
ることも可能であるが、但し、大きなスクリプトに対し
ては、これは幾分冗長である。別の方法として、シミュ
レーションスクリプトを生成及び編集するための専用の
エディタを生成することもできる。例えば、当分野にお
いて周知のように、多くのシミュレーションスクリプト
フィールドに対する省略時の値が、自動的に提供され、
フィールド位置及び長さ等が検証される。さらにもう一
つの代替として、サンプル期間の際に実存のI/O装置
の動作を捕捉し、これをシミュレーションスクリプトに
変換するアプリケーションプログラムを生成することも
できる。
【0055】本発明の一つの特定の実施例が幾つかの代
替とともに開示されたが、当業者においては、形式或は
細部での追加のバリエーションも本発明の請求の範囲に
入ると認識できるものである。
【0056】
【発明の効果】以上のように本発明によれば、コンピュ
ータシステムに接続された物理装置およびシステムに課
される作業負荷に関するシミュレーションを高精度かつ
高い再現性で実現することができる。
【図面の簡単な説明】
【図1】本発明の好ましい実施例に従うI/O装置をシ
ミュレートするための手段を持つコンピュータシステム
の主要なハードウェア要素を示す。
【図2】好ましい実施例に従うコンピュータシステムの
典型的なI/Oプロセッサアセンブリの主要な要素を示
す。
【図3】好ましい実施例に従う典型的なシミュレーショ
ンスクリプトの高レベルフォーマットを示す。
【図4】好ましい実施例に従うシミュレーションスクリ
プト内の典型的なシミュレータ制御ブロックのフォーマ
ットを示す。
【図5】好ましい実施例に従うシミュレータ制御ブロッ
ク内の典型的なデータ流制御ブロックのフォーマットを
示す。
【図6】好ましい実施例に従う典型的なデータ流スクリ
プトの高レベルフォーマットを示す。
【図7】好ましい実施例に従うデータ流スクリプト内に
含まれるデータ流コマンドのフォーマットを示す。
【図8】好ましい実施例に従うI/O装置のシミュレー
ションに関与するステップの高レベルフローチャートで
ある。
【図9】好ましい実施例に従うI/O装置をシミュレー
トするときIOP制御プログラムによって遂行されるス
テップのフローチャートである。
【図10】好ましい実施例に従うデータ流スクリプトを
構文解析するときIOP制御プログラムによって遂行さ
れるステップを示すフローチャートである。
【符号の説明】
101 CPU 102 システムメモリ 105,106 I/Oバス 110−118 I/Oプロセッサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ダグラス、オラフ、ボルスタード アメリカ合衆国ミネソタ州、ロチェスタ ー、ベア、コート、エス、イー、1938 (72)発明者 スティーブン、アーサー、ナイト アメリカ合衆国ミネソタ州、ロチェスタ ー、トゥエンティーシックスス、ストリー ト、エヌ、ダブリュ、524 (72)発明者 ハーベイ、ジーン、キール アメリカ合衆国ミネソタ州、ロチェスタ ー、バックリッジ、ドライブ、エヌ、イ ー、1268 (72)発明者 ロバート、ラッセル、ネルソン アメリカ合衆国ミネソタ州、オロノコ、ポ スティアー、ドライブ、エヌ、ダブリュ、 13608 (72)発明者 パメラ、アン、ライト アメリカ合衆国ミネソタ州、ロチェスタ ー、アルバート、ドライブ、エヌ、イー、 3931

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】中央演算ユニット 前記中央演算ユニットに結合されたシステムI/Oバス 前記システムI/Oバスに結合されたプログラマブルプ
    ロセッサ及び前記プログラマブルプロセッサ上で実行可
    能な命令を格納するためのローカルメモリを含むI/O
    プロセッサアセンブリ、及び前記I/Oプロセッサアセ
    ンブリ内のI/O装置を前記システムI/Oバスにシミ
    ュレートするための手段を含むコンピュータシステム。
  2. 【請求項2】前記I/O装置をシミュレートするための
    手段が複数のI/O装置を同時にシミュレートするため
    の手段から成ることを特徴とする請求項1のコンピュー
    タシステム。
  3. 【請求項3】前記I/Oプロセッサアセンブリに結合さ
    れた実I/O装置がさらに含まれ、 前記I/O装置をシミュレートするための手段がI/O
    装置を前記実I/O装置の処理と並行してシミュレート
    する手段から成ることを特徴とする請求項1のコンピュ
    ータシステム。
  4. 【請求項4】前記I/O装置をシミュレートするための
    手段が、 前記システムI/Oバスからシミュレーションスクリプ
    トを受信するための手段、及びI/O装置をシミュレー
    トするために前記シミュレーションスクリプトを実行す
    るための手段を含むことを特徴とする請求項1のコンピ
    ュータシステム。
  5. 【請求項5】中央演算ユニット、システムI/Oバス、
    及び前記I/Oバスに結合されたI/Oプロセッサアセ
    ンブリを持つコンピュータシステム上で内観的タスクを
    遂行するための方法において、この方法が、 前記I/OプロセッサアセンブリにてI/O装置をシミ
    ュレートするために前記システムI/Oバスからコマン
    ドを受信するステップ、 前記I/Oプロセッサアセンブリにて複数のシミュレー
    トされたデータ流を生成するステップ、及び前記I/O
    プロセッサアセンブリにて前記シミュレートされたデー
    タ流を前記システムI/Oバス上に送出するステップを
    含むことを特徴とする方法。
  6. 【請求項6】前記I/Oプロセッサアセンブリにて、シ
    ミュレートされるべき前記I/O装置に向けられた出力
    を受信するステップがさらに含まれることを特徴とする
    請求項5のコンピュータシステム上で内観的タスクを遂
    行するための方法。
  7. 【請求項7】前記I/Oプロセッサアセンブリにて受信
    された前記コマンドが前記I/Oプロセッサに複数のI
    /O装置を同時にシミュレートするように指令し、 前記生成及び送出ステップが前記複数のシミュレートさ
    れたI/O装置から同時に複数のデータ流を生成し、こ
    れを送出することを特徴とする請求項5のコンピュータ
    システム上で内観的タスクを遂行するための方法。
  8. 【請求項8】前記I/Oプロセッサアセンブリにて前記
    I/Oプロセッサアセンブリに結合された実I/O装置
    を処理するステップがさらに含まれ、前記処理ステップ
    が前記シミュレートされたデータ流を生成及び送出する
    ステップと平行して遂行されることを特徴とする請求項
    5のコンピュータシステム上で内観的タスクを遂行する
    ための方法。
  9. 【請求項9】第二の数のI/O装置を持つ実コンピュー
    タシステムにて第一の数のI/O装置を持つ仮想コンピ
    ュータシステムの性能をシミュレートするための方法に
    おいて、前記第一の数が前記第二の数よりも大きく、こ
    の方法が、 前記実コンピュータシステムによってシミュレートされ
    るべき複数のI/O装置を定義するステップ、 前記実コンピュータシステムに接続されたI/Oプロセ
    ッサに前記シミュレートされるべきI/O装置をシミュ
    レートするように指令するステップ、及び前記I/Oプ
    ロセッサにて前記I/O装置を前記実コンピュータシス
    テムにシミュレートするステップを含むことを特徴とす
    る方法。
  10. 【請求項10】前記シミュレーションが前記実コンピュ
    ータシステムによって容量計画タスクの一部として遂行
    され、前記仮想システムの動作特性に関する情報が前記
    容量計画タクスを遂行するために使用されることを特徴
    とする請求項9の方法。
  11. 【請求項11】前記シミュレーションがソフトウェアモ
    ジュールを展開するために前記実コンピュータシステム
    によって実行されるソフトウェア開発タスクの一部とし
    て遂行され、前記ソフトウェアモジュールを実行する前
    記仮想システムの動作特性に関する情報が前記ソフトウ
    ェア開発タスクを遂行するために使用されることを特徴
    とする請求項9の方法。
  12. 【請求項12】前記指令ステップがシミュレーションス
    クリプトを前記I/Oプロセッサに送るステップを含
    み、前記シミュレーションステップが前記I/Oプロセ
    ッサにて前記シミュレーションスクリプトを実行するス
    テップを含むことを特徴とする請求項9の方法。
  13. 【請求項13】コンピュータシステムのシステムI/O
    バスに結合するためのI/Oプロセッサアセンブリにお
    いて、これが、 システムI/Oバスインターフェース、 前記システムI/Oバスインターフェースに結合された
    プログラマブルプロセッサ、 前記プログラマブルプロセッサに結合された前記プログ
    ラマブルプロセッサ上で実行が可能な命令を格納するた
    めのローカルメモリ、 前記I/Oプロセッサに接続されたI/O装置をシミュ
    レートするために前記システムI/Oバスからコマンド
    を受信するための手段、及び前記コマンドを受信するた
    めの手段に応答して、前記I/O装置を前記システムI
    /Oバスにシミュレートするための手段を含むことを特
    徴とするI/Oプロセッサアセンブリ。
  14. 【請求項14】前記I/O装置をシミュレートするため
    の手段が複数のI/O装置を同時にシミュレートするた
    めの手段を含むことを特徴とする請求項13のI/Oプ
    ロセッサアセンブリ。
  15. 【請求項15】前記I/O装置をシミュレートするため
    の手段がI/O装置を前記I/Oプロセッサアセンブリ
    に接続された実I/O装置の処理と並行してシミュレー
    トするための手段から成ることを特徴とする請求項13
    のI/Oプロセッサアセンブリ。
  16. 【請求項16】前記システムI/Oバスからシミュレー
    ションスクリプトを受信するための手段、及びI/O装
    置をシミュレートするために前記シミュレーションスク
    リプトを実行するための手段がさらに含まれることを特
    徴とする請求項13のI/Oプロセッサアセンブリ。
JP4243796A 1991-10-23 1992-09-11 コンピュータシステムおよびこのコンピュータシステム上で内観的タスクを遂行する方法並びにi/oプロセッサアセンブリ Pending JPH05216712A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US78146091A 1991-10-23 1991-10-23
US781460 1991-10-23

Publications (1)

Publication Number Publication Date
JPH05216712A true JPH05216712A (ja) 1993-08-27

Family

ID=25122817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4243796A Pending JPH05216712A (ja) 1991-10-23 1992-09-11 コンピュータシステムおよびこのコンピュータシステム上で内観的タスクを遂行する方法並びにi/oプロセッサアセンブリ

Country Status (3)

Country Link
US (1) US5440697A (ja)
EP (1) EP0539313A3 (ja)
JP (1) JPH05216712A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232035A (ja) * 2012-04-27 2013-11-14 Pfu Ltd 情報処理システム、情報処理装置、情報処理方法、及びプログラム

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2712998B1 (fr) * 1993-11-22 1996-02-09 Aerospatiale Simulateur de bus numériques intégré dans un système de test automatique de boîtiers électroniques embarqués sur avion.
AU1303595A (en) * 1993-12-14 1995-07-03 Apple Computer, Inc. Method and apparatus for transferring data between a computer and a peripheral storage device
DE4426740C1 (de) * 1994-07-28 1996-03-21 Sel Alcatel Ag Testverfahren sowie Konvertereinrichtung, Testeinrichtung und Testprogramm-Modul dafür
US5678028A (en) * 1994-10-25 1997-10-14 Mitsubishi Electric Information Technology Center America, Inc. Hardware-software debugger using simulation speed enhancing techniques including skipping unnecessary bus cycles, avoiding instruction fetch simulation, eliminating the need for explicit clock pulse generation and caching results of instruction decoding
IL117457A (en) * 1995-03-13 1999-09-22 Knights Technology Inc Information automation using graphics macros and multimedia macros
US5715433A (en) * 1995-04-20 1998-02-03 Raghavan; Rajan Dynamic software model for emulating hardware
US5828855A (en) * 1995-06-06 1998-10-27 Apple Computer, Inc. Socket simulation protocol for network printing systems
US5978575A (en) * 1995-07-07 1999-11-02 Sun Microsystems, Inc. Remote terminal emulator with improved time accounting
AU745780B2 (en) * 1995-07-07 2002-03-28 Sun Microsystems, Inc. Remote terminal emulator
GB2346467B (en) * 1995-07-07 2000-09-20 Sun Microsystems Inc Remote terminal emulator
US5675731A (en) * 1995-09-22 1997-10-07 Sun Microsystems, Inc. Scatter load for system test
US5799169A (en) * 1995-10-02 1998-08-25 Chromatic Research, Inc. Emulated registers
US5848293A (en) * 1995-11-03 1998-12-08 Sun Microsystems, Inc. Method and apparatus for transmission and processing of virtual commands
DE19543826A1 (de) * 1995-11-23 1997-05-28 Siemens Ag Simulatoreinheit zum Simulieren einer Peripherieeinheit einer modular aufgebauten speicherprogrammierbaren Steuerung
US6167534A (en) * 1995-11-24 2000-12-26 Rational Software Corporation Load test system and method
KR0167644B1 (ko) * 1995-11-30 1999-02-01 김광호 다수의 통신 전송 방식을 선택적으로 사용하기 위한 통신시스템
US5960188A (en) * 1997-03-13 1999-09-28 Delco Electronics Corporation Method for modeling electrical interconnections in a cycle based simulator
US6076180A (en) * 1997-06-23 2000-06-13 Micron Electronics, Inc. Method for testing a controller with random constraints
US5966306A (en) * 1997-07-07 1999-10-12 Motorola Inc. Method for verifying protocol conformance of an electrical interface
US5995945A (en) * 1997-08-25 1999-11-30 I2 Technologies, Inc. System and process for inter-domain planning analysis and optimization using model agents as partial replicas of remote domains
US6222533B1 (en) 1997-08-25 2001-04-24 I2 Technologies, Inc. System and process having a universal adapter framework and providing a global user interface and global messaging bus
US5931900A (en) * 1997-08-25 1999-08-03 I2 Technologies, Inc. System and process for inter-domain interaction across an inter-domain connectivity plane
US6078743A (en) * 1997-11-24 2000-06-20 International Business Machines Corporation Generic IDE interface support for scripting
US6571206B1 (en) * 1998-01-15 2003-05-27 Phoenix Technologies Ltd. Apparatus and method for emulating an I/O instruction for the correct processor and for servicing software SMI's in a multi-processor environment
GB2336224A (en) * 1998-04-07 1999-10-13 Northern Telecom Ltd Hardware register access and database
US6873948B1 (en) 1998-05-21 2005-03-29 Lsi Logic Corporation Method and apparatus for emulating a device within a data processing system
FR2795195B1 (fr) * 1999-06-21 2001-08-31 Sextant Avionique Dispositif informatique de telechargement, en particulier pour gestionnaires de vol
US6886111B1 (en) 2000-03-08 2005-04-26 International Business Machines Corporation Method and data processing system for software testing of a device driver
US7596484B1 (en) 2000-11-15 2009-09-29 Itt Manufacturing Enterprises, Inc. Network node emulator and method of node emulation
JP2003044369A (ja) * 2001-07-27 2003-02-14 Fujitsu Ltd 擬似i/oシステムおよび擬似i/o方法
JP2003044420A (ja) * 2001-07-27 2003-02-14 Fujitsu Ltd デバイスドライバ装置
US20030093258A1 (en) * 2001-11-14 2003-05-15 Roman Fishstein Method and apparatus for efficient simulation of memory mapped device access
US6898734B2 (en) * 2001-12-13 2005-05-24 International Business Machines Corporation I/O stress test
US7158925B2 (en) * 2002-04-18 2007-01-02 International Business Machines Corporation Facilitating simulation of a model within a distributed environment
US7231334B2 (en) * 2002-04-18 2007-06-12 International Business Machines Corporation Coupler interface for facilitating distributed simulation of a partitioned logic design
US7343279B2 (en) * 2002-08-01 2008-03-11 Teradyne, Inc. Universal approach for simulating, emulating, and testing a variety of serial bus types
US7428218B2 (en) * 2002-08-01 2008-09-23 Teradyne, Inc. Flexible approach for representing different bus protocols
DE10245176A1 (de) * 2002-09-26 2004-04-01 Endress + Hauser Process Solutions Ag Verfahren zur Simulation eines Feldgerätes in einem Netzwerk der Prozessautomatisierungstechnik
US7334032B2 (en) * 2002-12-04 2008-02-19 International Business Machines Corporation System for allocating storage performance resource
US7412544B2 (en) 2004-06-18 2008-08-12 International Business Machines Corporation Reconfigurable USB I/O device persona
US8838794B2 (en) 2004-06-30 2014-09-16 International Business Machines Corporation Method, system and program product for simulating activity in a server environment
FR2916546A1 (fr) * 2007-05-24 2008-11-28 Airbus France Sa Procede de simulation d'un systeme embarque a bord d'un aeronef pour tester un logiciel de fonctionnement et dispositif pour la mise en oeuvre de ce procede
US8484626B2 (en) * 2007-09-28 2013-07-09 Verizon Patent And Licensing Inc. Generic XML screen scraping
US9535817B2 (en) * 2011-06-10 2017-01-03 Microsoft Technology Licensing, Llc Application development environment for portable electronic devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5757329A (en) * 1980-09-25 1982-04-06 Toshiba Corp Controller of virtual input-output device
JPS583014A (ja) * 1981-06-30 1983-01-08 Fujitsu Ltd チヤネル自動診断装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2159150A1 (ja) * 1972-11-30 1973-06-15 Materiel Telephonique
US4031517A (en) * 1974-04-24 1977-06-21 Honeywell Information Systems, Inc. Emulation of target system interrupts through the use of counters
US4040021A (en) * 1975-10-30 1977-08-02 Bell Telephone Laboratories, Incorporated Circuit for increasing the apparent occupancy of a processor
IT1209283B (it) * 1980-11-26 1989-07-16 Italtel Spa Disposizione circuitale per simulare le unita' periferiche di un elaboratore elettronico.
US4484266A (en) * 1981-12-11 1984-11-20 The United States Of America As Represented By The Secretary Of The Navy Externally specified index peripheral simulation system
JPH0619747B2 (ja) * 1984-01-18 1994-03-16 株式会社日立製作所 I/o命令実行方法、i/o割込処理方法およびそれらを用いた計算機システム
US4814983A (en) * 1984-03-28 1989-03-21 Daisy Systems Corporation Digital computer for implementing event driven simulation algorithm
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
JP2550063B2 (ja) * 1987-04-24 1996-10-30 株式会社日立製作所 分散処理システムのシミユレ−シヨン方式
JPH0752366B2 (ja) * 1987-09-21 1995-06-05 株式会社日立製作所 防去加工シミュレータ装置
US4901260A (en) * 1987-10-28 1990-02-13 American Telephone And Telegraph Company At&T Bell Laboratories Bounded lag distributed discrete event simulation method and apparatus
US5129064A (en) * 1988-02-01 1992-07-07 International Business Machines Corporation System and method for simulating the I/O of a processing system
JPH02155050A (ja) * 1988-12-06 1990-06-14 Nec Corp 試験環境構築方式
US5093776A (en) * 1989-06-15 1992-03-03 Wang Laboratories, Inc. Information processing system emulation apparatus and method
US4985860A (en) * 1989-06-21 1991-01-15 Martin Vlach Mixed-mode-simulator interface
WO1992012480A1 (en) * 1991-01-09 1992-07-23 Verifone, Inc. Transaction system emulator

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5757329A (en) * 1980-09-25 1982-04-06 Toshiba Corp Controller of virtual input-output device
JPS583014A (ja) * 1981-06-30 1983-01-08 Fujitsu Ltd チヤネル自動診断装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232035A (ja) * 2012-04-27 2013-11-14 Pfu Ltd 情報処理システム、情報処理装置、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
US5440697A (en) 1995-08-08
EP0539313A2 (en) 1993-04-28
EP0539313A3 (en) 1993-11-24

Similar Documents

Publication Publication Date Title
JPH05216712A (ja) コンピュータシステムおよびこのコンピュータシステム上で内観的タスクを遂行する方法並びにi/oプロセッサアセンブリ
EP1004072B1 (en) Embedded graphical programming system
US7047446B1 (en) Load test system and method
US20060101404A1 (en) Automated system for tresting a web application
US20070247430A1 (en) Keyboard and mouse operation data recording/reproducing system and method thereof
US5161116A (en) System for evaluating the performance of a large scale programmable machine capable of having a plurality of terminals attached thereto
US7472052B2 (en) Method, apparatus and computer program product for simulating a storage configuration for a computer system
CN115658529A (zh) 用户页面的自动化测试方法以及相关设备
US7131080B2 (en) Simulation management system
CN113032246A (zh) Ssd固件运行方法、装置、可读存储介质及电子设备
US7099813B2 (en) Simulating program instruction execution and hardware device operation
JPH08314760A (ja) プログラム開発支援装置
WO1991000575A1 (en) Computer operations recorder and training system
JP3129286B2 (ja) システムレベルシミュレーション方法及びその装置並びにプログラムを記録した機械読み取り可能な記録媒体
Dolotta et al. The LEAP load and test driver
JP2533489B2 (ja) シミユレ−シヨン方式
JP2002016662A (ja) データ分析方法及び装置
Goldberg et al. The PRIM System: An alternative architecture for emulator development and use
JP2001209555A (ja) 入出力エミュレーション装置、入出力装置のエミュレーション方法および入出力装置エミュレーションプログラムを記録した記録媒体
EP1297456A2 (en) Tcl pli, a framework for reusable, run time configurable test benches
JP3110418B2 (ja) インサーキットエミュレータおよび制御方法
Nahouraii Direct-access device simulation
CN116107896A (zh) 基于虚拟串口实现自动化测试的方法、装置及存储介质
Haigh Simulation of computer systems and networks with MOGUL and REGAL
JPH02224141A (ja) 論理シミュレーション方式