JP2004102867A - Hardware controller - Google Patents

Hardware controller Download PDF

Info

Publication number
JP2004102867A
JP2004102867A JP2002266367A JP2002266367A JP2004102867A JP 2004102867 A JP2004102867 A JP 2004102867A JP 2002266367 A JP2002266367 A JP 2002266367A JP 2002266367 A JP2002266367 A JP 2002266367A JP 2004102867 A JP2004102867 A JP 2004102867A
Authority
JP
Japan
Prior art keywords
hardware
command
control
register
data transfer
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
JP2002266367A
Other languages
Japanese (ja)
Inventor
Kikei Kanda
神田 貴恵
Masanobu Mori
森 正伸
Masatoshi Konagaya
小長谷 昌利
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.)
Hitachi Ltd
Hitachi Information Technology Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Information Technology Co Ltd
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 Hitachi Ltd, Hitachi Information Technology Co Ltd filed Critical Hitachi Ltd
Priority to JP2002266367A priority Critical patent/JP2004102867A/en
Publication of JP2004102867A publication Critical patent/JP2004102867A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To reduce software overhead by simplifying command processing between a hardware driver and control execution hardware. <P>SOLUTION: In this hardware controller which has a hardware driver having a memory and the control execution hardware for executing a command, and controls target hardware by the control execution hardware, the hardware driver analyzes a request from a host application, converts the request into a plurality of commands for controlling the target hardware, a control command table in which the commands are arranged is formed in the memory, the contents of the control command table are set in block by a group of registers provided in the control execution hardware and after that, the control execution hardware performs execution processing of the commands between it and the target hardware by referring to the contents of the group of registers. Thus, continuous execution of the commands by the control execution hardware becomes possible by making pieces of information set by every command execution into the control command table by the hardware driver and transferring the group of commands made into the table to the control execution hardware in block. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明はハードウェア制御装置に係り、特に制御実行ハードウェアにおけるコマンド実行の手順の簡素化を図り、ソフトウェアオーバーヘッドを削減するハードウェア制御装置に関するものである。
【0002】
【従来の技術】
一般に大型の計算機はその筐体の中に、サービスプロセッサと、演算処理ユニット用のパッケージと、IOプロセッサ用のプラッタなどを備えている。サービスプロセッサはその制御対象のハードウェアである演算処理装置を制御するために、ハードウェアドライバ及び制御実行ハードウェアを具備する。
【0003】
従来、ハードウェアドライバは例えば図5に示すように対象のハードウェアを制御する。即ち、ハードウェアドライバは上位アプリケーションからの要求を解析し、制御対象のハードウェアに対する複数のコマンドに変換する。ハードウェアドライバはそれらのコマンドを1つ1つ順次実行していく。1つのコマンド実行に対して、ハードウェアドライバは、制御実行ハードウェアのレジスタにコマンド、およびデータ転送処理時には転送データのデータ格納領域先頭アドレス、データ転送長等のデータを設定し、コマンド起動を行う。そのコマンドが終了した際には、ハードウェアドライバが処理のコマンド終了チェックを行った後、次のコマンドを実行する。このような手順を繰り返すことによりコマンドが順次実行される。
【0004】
またデータ転送処理において、対象ハードウェア側にFIFO(First In First Out)バッファが存在する場合、ハードウェアドライバはそのFIFOバッファのサイズに合わせて転送データを分割し、分割したデータの単位ごとにデータ転送処理を制御実行ハードウェアに起動をかける。一回の転送処理が終了すると、ハードウェアドライバはデータ転送処理のステータスチェックを行う。ステータスチェックが正常終了ならばハードウェアドライバは次の分割された転送データを制御実行ハードウェアに依頼する。このような手順を繰り返さなければならない。
【0005】
【発明が解決しようとする課題】
本発明の目的は、ハードウェアドライバと制御実行ハードウェア間におけるコマンド処理の手順の簡略化を図り、ソフトウェアオーバーヘッドを削減するハードウェア制御装置を提供することにある。
【0006】
【課題を解決するための手段】
上記目的を達成するために、本発明は、メモリを有するハードウェアドライバと、コマンドの実行を行う制御実行ハードウェアを有し、該制御実行ハードウェアによって対象ハードウェアを制御するハードウェア制御装置において、ハードウェアドライバは上位アプリケーションからの要求を解析して、対象ハードウェアを制御する複数のコマンドに変換し、これらのコマンドを配列した制御コマンドテーブルをメモリに形成し、かつ制御コマンドテーブルの内容は制御実行ハードウェアに備えられたレジスタ群に設定され、制御実行ハードウェアは以後、このレジスタ群の内容を参照して対象ハードウェアとの間でコマンドの実行処理を行うように構成したものである。
【0007】
本発明はまた、上記制御コマンドテーブルにはコマンドに加えて、データ転送に必要なデータ格納領域先頭アドレスおよびデータ転送長を示す情報を含んで形成されるようにし、これらの先頭アドレス及びデータ転送長を示す情報をコマンドと同様に前記レジスタ群に設定されるように構成する。
【0008】
更に本発明は、制御実行ハードウェアが前記レジスタ群に設定されたコマンドを連続的に実行する場合、各コマンド処理が正常終了であれば次のコマンドを実行し、異常終了であればその処理を中断して前記ハードウェアドライバへエラー情報を通知し、該ハードウェアドライバがエラー回復処理を行うようにしている。
【0009】
また本発明は、対象ハードウェアがデータ転送用FIFOバッファを有する場合、制御実行ハードウェアには、FIFOバッファのサイズ分のデータ転送が終了する度に、そのデータ転送処理が正常に終了したかどうかをチェックするためのステータスチェック論理部を有し、前記FIFOバッファのサイズを超えるデータの転送処理を連続して処理するように構成する。好ましくは、対象ハードウェアに対するデータの転送処理を実行するとき、この制御コマンドテーブルには前記ステータスチェック論理部におけるチェックの有効/無効を切り替える制御ビットを含んでいる。
【0010】
このように本発明によれば、ハードウェアドライバがコマンド実行ごとに設定していた情報を制御コマンドテーブル(SCW)化し、このテーブル化したコマンド群を一括して制御実行ハードウェアに渡すことにより、従来は単発的に処理していたコマンドを制御実行ハードウェアで連続的に実行することが可能となる。
【0011】
また、対象ハードウェア側にデータ転送用FIFOバッファが存在する場合、データ転送処理をスムーズに行える。即ち、従来はデータ転送量がそのFIFOサイズを超えているとハードウェアドライバが判断した場合、ハードウェアドライバはそのFIFOサイズに合わせて転送データを分割して処理しなければならなかったが、本発明によれば、上記制御コマンドテーブル内にステータスチェック許可ビットを設けることにより、また制御実行ハードウェアにステータスチェック論理を組み込むことにより、対象ハードウェア/ハードウェア制御装置間のデータ転送をよりスムーズに行える。
【0012】
【発明の実施の形態】
以下、図面を参照して本発明の実施例を説明する。図1は本発明の一実施例によるハードウェア制御装置が適用される情報処理システムを示すブロック図である。
図1において、計算機1はその筐体の中にサービスプロセッサ(SVP)2と、演算処理ユニット(BPU)パッケージ11と、IOプロセッサ用のプラッタ16を具備する。この計算機1にはコンソール10が接続され、このコンソール10より計算機1に対してコマンドの入力や表示の入力、制御が行われる。
【0013】
サービスプロセッサ2は、上位アプリケーション3と、ハードウェアドライバ4及び制御実行ハードウェア6を備える。ハードウェアドライバ4は上位アプリケーション3からの要求を解析すると共に制御対象のハードウェアに対する複数のコマンドに変換する。また制御実行ハードウェア6は制御対象のハードウェアである演算処理ユニット11を制御する。尚、これらハードウェアドライバ4及び制御実行ハードウェア6の構成は、後で図2を参照して詳述される。ハードウェアドライバ4はメモリ5を有し、基本的にはコマンドを実行する機能を果たす。本発明の実施例に特徴的なことは、このメモリ5内に制御コマンドテーブルが形成され、ハードウェアドライバがコマンド実行ごとに設定している情報はこの制御コマンドテーブル(SCW)に纏められる。このテーブルの構成及びその動作については後で詳述する。
【0014】
制御実行ハードウェア6は、バス制御部7、制御レジスタ群8、コマンド用FIFOバッファ91、データ用FIFOバッファ92を有する。レジスタ群8及び関連するハードウェアの構成については後述する。
演算処理ユニット11は制御対象のハードウェアとなるものであり、メモリ12、メモリコントローラ13、複数のプロセッサ15を備えるプロセッサモジュール14を備えて構成される。メモリ12にはユーザアプリケーションソフトウェアや、コマンド、OS等が格納される。メモリコントローラ13は、冗長性と負荷の分散を考慮して複数のパスを備えている。尚、上記のような演算処理ユニット11の構成は、本発明の趣旨とは直接的には関係しない。
IOプロセッサ16はチャネルプロセッサ17とそれらに接続される複数のチャネル18から構成される。これらのチャネル18には入出力装置が接続される。
【0015】
次に図2を参照して本発明の一実施例によるハードウェア制御装置について説明する。
ハードウェアドライバ4は上位アプリケーション3から命令を受け取ると、その命令を解析し、メモリ5内に制御コマンドテーブル(SCW)51を作成する。このテーブル51内にはコマンドが実行される順に配列される。ライトデータ52には書込みデータが格納され、リードデータ53には読出しデータが格納される。テーブル51に関して、SCWAPは本テーブルの先頭アドレスを示し、SCWWCはテーブル長を示す。ICMDは即実行コマンドであり、例えばリセットコマンドや停止コマンドのようなデータ転送の無い場合のコマンドである。コマンドは例えば4バイト/ワードであり、CMD−WRはライトコマンドを示し、CMD−RDはリードコマンドを示す。コマンドがデータ転送コマンドの場合には、データ格納領域先頭アドレスおよびデータ転送長も制御コマンドテーブル51に格納する。アドレス1〜3はそのデータの先頭アドレスを示し、ワード1〜3はデータ長を示す。さらに、対象ハードウェア側のFIFOバッファ使用時には転送データ量によって、ステータスチェック許可ビットの設定も行う。
【0016】
テーブル化して作成されたこれらコマンド類は、一括して制御実行ハードウェア6に転送される。制御実行ハードウェア6では、バス制御部7を介してコマンド類、及びライトデータを受ける。コマンドはコマンドバッファ(FIFO)91に一旦格納され、その後デコード論理部63でデコードされて、レジスタ群8の関連するレジスタにセットされる。尚、デコードの結果、コマンドの内あるものはレジスタ群8にセットされないで、コマンドレジスタ64にセットされ、演算処理ユニット11に転送される。本発明の実施例ではテーブル化されたコマンド類の処理に特徴がある。スタートアドレスレジスタ(SCWAP)81はテーブル51の先頭アドレスを格納する。ワード数レジスタ(SCWWC)82はワード数、即ちテーブル51のテーブル長を格納する。本例の場合1ワードが4バイトなので、ワード数によりテーブル長が解る。スタート要求レジスタ83は起動命令を表し、その値が“1”ならばスタートを示し、テーブルの内容を最後まで実行したら、その値として“0”を書き込む。データアドレスレジスタ(DATAAP)84はデータのアドレスポインタをセットするものであり、テーブル内のアドレス1〜3をセットする。データワード数レジスタ(DATAWC)85は同じくワード1〜3をセットする。ステータスチェックビット許可レジスタ(STRFLG)86はステータスチェック論理62を使うか否かを制御するビットである。このビットが“1”ならばチェック論理62を使い、一方“0”ならばそれを使わないものとする。また、ステータス情報リードコマンドレジスタ(STRCMD)87はステータス情報を読むためのコマンドである。
ライトデータはライトデータバッファ(FIFO)92にセットされ、その後演算処理ユニット11に転送されるために1ワードライトレジスタ65に送られる。
【0017】
一方、演算処理ユニット11からのリードデータは1ワードリードレジスタ66にセットされるが、その後リードバッファ(FIFO)93に格納され、バス制御部7を介してメモリ5のリードデータバッファ53へ送られる。データ転送の結果(エラー情報等)はレジスタ66を介してステータスレジスタ67にセットされる。その値はステータスチェック論理部62でチェックされる。チェック結果に応じて割り込み制御部61を介してメモリ5へ割り込み制御が行われる。尚、ステータスチェック論理部62については図3を参照して後で詳述する。
【0018】
次に図3を参照して、ハードウェア制御装置におけるステータスチェック論理について説明する。
エラー状態のチェック論理は3種類のチェック機能がある。
全てのチェック機能はデータ転送の結果(エラー情報等)を反映しているステータスレジスタ67の値を元にしている。3種類のチェック機能は以下の通りである。
(1)ステータスレジスタ67の値とコンペア値との一致/不一致判定。
(2)ステータスレジスタ67の値とコンペア値との大小判定。
(3)ステータスレジスタ67の値とコンペア値との判定結果による処理中断判定。
上記(1),(2)に関しては両チェック機能の結果の関連付けを行い出力する。
全てのチェック機能において1つのレジスタ値を使用しているため、各チェック機能に対してレジスタ内のどのビットを使用して判定するかをマスク620、621,622の値によって決定する。ステータスレジスタ67の値と、マスク620、621,622の値のANDをとり、コンペア623,624、629の値と比較してチェックを行う。
上記(1)と(2)は主に連続して処理を行うために、ステータスレジスタ67の値がいかなる値になるかをチェックするための論理であり、(3)はエラーを検出し、処理を中断するための論理として用いられる。
【0019】
また、各チェック機能にはSelレジスタ625,626,628が有り、それらSelレジスタ625、626,628によって判定内容を決定している。各チェック機能のSelレジスタ625、626,628の値は2ビットであり、各ビットの意味は次の通りである。
(a)ビット0:一致判定有効。ビット1:不一致判定有効。
(b)ビット0:大なり判定有効。ビット1:小なり判定有効。
(c)ビット0:一致判定有効。ビット1:不一致判定有効。
となっている。
尚、各Selレジスタ625、626,628の両方のビットが“0”の場合は、対応するチェック機能は無効となる。
【0020】
ステータスレジスタ67の値は制御実行ハードウェア6が読み出した値を使用するが、マスク値、コンペア値、Sel値はハードウェアドライバ4が目的に応じて設定する。
一致/不一致判定の判定論理は、ステータスレジスタ67の値とマスク621とをANDし、Selレジスタ625のビット0が“1”ならば、コンペア623の値と一致しているかどうか判定する。また、Selレジスタ625のビット1が“1”ならば、コンペア623の値と不一致かどうか判定する。
【0021】
大小判定の判定論理は、ステータスレジスタ67の値とマスク622とをANDし、Selレジスタ626のビット0が“1”ならば、コンペア624の値より大きいかどうか判定する。また、Selレジスタ626のビット1が“1”ならば、コンペア624の値より小さいかどうか判定する。
また両判定結果の関連付けは、Selレジスタ627によって行われる。このレジスタ627は1ビットであり、そのビットが“0”ならば、一致/不一致判定の結果と、大小判定の結果のORを出力する。一方レジスタ627のビットが“1”ならば、一致/不一致判定の結果と、大小判定の結果のANDを出力する。
【0022】
処理中断判定の判定論理はステータスレジスタ67の値とマスク620とをANDし、2ビット構成のSelレジスタ628のビット0が“1”ならば、コンペア629の値と一致しているかどうか判定し、一致する場合には処理を停止する。また、Selレジスタ628のビット1が“1”ならば、コンペア629の値と不一致か否かを判定し、不一致の場合には処理を停止する。
【0023】
次に図4に示すフローチャートを参照しながら図2のハードウェア制御の動作について説明する。
ハードウェアドライバ4は上位アプリケーション3から命令を受け取ると、その命令を解析し、メモリ5内に制御コマンドテーブル51を作成する。コマンドは実行の順にテーブル51に配列される。
【0024】
データ転送コマンドの場合にはデータ格納領域先頭アドレスおよびデータ転送長もテーブル51に格納する。さらに、対象ハードウェア側FIFO使用時には転送データ量によって、ステータスチェック許可ビットの設定も行う。データ転送処理において、対象ハードウェア側にFIFOが存在する場合、ハードウェアドライバ4はデータ転送量がそのFIFOサイズを超えているか否かを判断する。もしFIFOサイズを超えていると判断した場合、テーブル51内のステータスチェック許可ビットを設定する。
【0025】
制御コマンドテーブル51の作成が終了すると、ハードウェアドライバ4は制御実行ハードウェア6のSCWスタートアドレスレジスタ81にテーブル51の先頭アドレス、SCWワード数レジスタ82にテーブル51のワード数を設定する。また、ステータス情報リードコマンドレジスタ87にステータスチェック時にステータス情報を読み込むためのコマンド、ステータスチェック論理部62にマスク値、比較値等を設定し、SCWスタート要求レジスタ83にスタートビットを設定し、その後制御実行ハードウェア6に対してテーブルの処理開始を依頼する。制御実行ハードウェア6は、スタートアドレスレジスタ81及びワード数レジスタ82の内容を参照して、コマンドバッファ(SCWFIFO)91にBUS制御部7を介してテーブル51の内容を読み込む。その後制御実行ハードウェア6はコマンドバッファ91から1つずつコマンドを読出し、デコード論理部63でデコードする。デコード論理部63では単発コマンドかデータ転送コマンドかの判定が行なわれる。デコードの結果、もし単発コマンドであれば、コマンドレジスタ64にコマンドを設定し、対象ハードウェアに対してコマンド実行を行う。一方、データ転送コマンドである場合には、コマンドバッファ91からデータ格納領域先頭アドレスおよびデータ転送長を読み出し、データアドレスレジスタ84、データワード数レジスタ85、ステータスチェック許可ビットレジスタ86の設定を行う。その後、書き込み処理の場合には、データアドレスレジスタ84、データワード数レジスタ85の内容を参照してハードウェアドライバ4のメモリ5上から書き込みデータをデータバッファ92に読出し、対象ハードウェア11に対してデータ転送を開始する。読み込み処理の場合には読出しデータバッファ93に読み込んだデータをデータアドレスレジスタ84、データワード数レジスタ85を元にハードウェアドライバ4のメモリ5上に書き込みを行う。
【0026】
制御実行ハードウェア6はワード数レジスタ82の値が“0”になる迄(またはコマンドのエラーを検出するまで)処理を連続して行う。
また、制御実行ハードウェア6はステータスチェック許可ビットレジスタ86が設定されている場合にはステータス情報リードコマンドレジスタ87を使用して、ステータス情報を読み込む。読み込まれたデータはステータスレジスタ67に格納され、ステータスチェック論理部62でステータス情報のチェックが行われる。チェックすべきデータが無い場合には次のデータ転送処理を続行する。例えば図4のFIFOサイズに分割された転送データ1のコマンド処理データが無くなると、次に転送データ2のコマンド処理,その次に転送データ3のコマンド処理と言う順に、制御実行ハードウェア6と対象ハードウェア(即ち演算処理ユニット11)との間で順次コマンドの実行処理が行われる。ステータスチェック論理部62におけるチェックで、チェックデータが有る場合には、割り込み制御部61を経由してハードウェアドライバ4に対してエラーを返す。
【0027】
このように本実施例によれば、実行すべきコマンドをハードウェアドライバで制御コマンドテーブル化し、このテーブル化したコマンド群を一括して制御実行ハードウェアに送って、レジスタ群に設定することにより、以後、コマンドの実行処理を制御実行ハードウェアと対象ハードウェアとの間で連続的に実行することができる。このため従来技術のようにハードウェアドライバと制御実行ハードウェア間で一々コマンドの転送に関する処理を行う必要が無くなり、コマンド処理が簡略化する。またハードウェアドライバは個別のコマンド処理から開放されるため、ハードウェアドライバにおけるソフトウェアオーバーヘッドが大幅に削減される。
【0028】
【発明の効果】
以上説明したように、本発明によれば、ハードウェアドライバにおいて制御対象ハードウェアの制御コマンドをテーブル化し、これを制御実行ハードウェアに送ることによって、以後のコマンドの実行処理を制御実行ハードウェアと対象ハードウェアとの間のやり取りに任せることができる。このためハードウェアドライバと制御実行ハードウェア間のコマンド処理に関する手順の簡略化が図れ、ソフトウェアオーバーヘッドが大幅に削減される。
【図面の簡単な説明】
【図1】本発明の一実施例によるハードウェア制御装置が適用される情報処理システムを示すブロック図。
【図2】本発明の一実施例によるハードウェア制御装置を示すブロック図。
【図3】本発明の一実施例によるハードウェア制御装置のステータスチェック論理におけるエラー状態をチェックするための論理図。
【図4】本発明の一実施例によるハードウェア制御装置におけるハードウェア制御のシーケンスを示すフローチャート。
【図5】従来技術によるハードウェア制御のシーケンスを示すフローチャート。
【符号の説明】
1.計算機 2.サービスプロセッサ 3.上位アプリケーション
4.ハードウェアドライバ 5.メモリ 6.制御実行ハードウェア
7.バス制御部 8.制御レジスタ群 91.コマンド用レジスタ
92.データ用レジスタ 10.コンソール 11.演算処理ユニット
12.メモリ 13.メモリコントローラ 14.プロセッサモジュール
15.プロセッサ 16.IOプロセッサ 17.チャネルプロセッサ
18.チャネル 51.制御コマンドテーブル(SCW) 52.ライトデータ
53.リードデータ 81.SCWスタートアドレスレジスタ
82.SCWワード数レジスタ 83.SCWスタート要求レジスタ
84.データアドレスレジスタ 85.データワード数レジスタ
86.ステータスチェック許可ビットレジスタ
87.ステータス情報リードコマンドレジスタ 61.割り込み制御部
62.ステータスチェック論理部 63.デコード論理部
64.コマンドレジスタ 65.1ワードWriteレジスタ
66.1ワードReadレジスタ 67.ステータスレジスタ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a hardware control device, and more particularly to a hardware control device that simplifies a command execution procedure in control execution hardware and reduces software overhead.
[0002]
[Prior art]
Generally, a large computer includes a service processor, a package for an arithmetic processing unit, a platter for an IO processor, and the like in its housing. The service processor includes a hardware driver and control execution hardware to control an arithmetic processing device which is hardware to be controlled.
[0003]
Conventionally, a hardware driver controls target hardware, for example, as shown in FIG. That is, the hardware driver analyzes a request from the host application and converts the request into a plurality of commands for the hardware to be controlled. The hardware driver sequentially executes these commands one by one. For one command execution, the hardware driver sets a command in a register of the control execution hardware and data such as a data storage area head address of transfer data and a data transfer length during data transfer processing, and activates the command. . When the command has been completed, the hardware driver performs a command completion check of the processing, and then executes the next command. Commands are sequentially executed by repeating such a procedure.
[0004]
In the data transfer process, if a FIFO (First In First Out) buffer exists on the target hardware side, the hardware driver divides the transfer data according to the size of the FIFO buffer and divides the data in units of the divided data. Controls the transfer process and activates the execution hardware. When one transfer process is completed, the hardware driver checks the status of the data transfer process. If the status check is completed normally, the hardware driver requests the next divided transfer data to the control execution hardware. Such a procedure must be repeated.
[0005]
[Problems to be solved by the invention]
An object of the present invention is to provide a hardware control device that simplifies a command processing procedure between a hardware driver and control execution hardware and reduces software overhead.
[0006]
[Means for Solving the Problems]
In order to achieve the above object, the present invention relates to a hardware control device having a hardware driver having a memory and control execution hardware for executing a command, and controlling target hardware by the control execution hardware. The hardware driver analyzes a request from a higher-level application, converts the request into a plurality of commands for controlling the target hardware, forms a control command table in which these commands are arranged in a memory, and stores the contents of the control command table in a memory. The control execution hardware is set in a register group provided in the control execution hardware, and the control execution hardware is configured to execute a command execution process with the target hardware by referring to the contents of the register group thereafter. .
[0007]
According to the present invention, in addition to the command, the control command table is formed to include information indicating a data storage area start address and a data transfer length necessary for data transfer. Is set in the register group similarly to the command.
[0008]
Further, according to the present invention, when the control execution hardware continuously executes the commands set in the register group, the next command is executed if each command processing is normally completed, and the processing is executed if the command processing is abnormally ended. The information is interrupted and error information is notified to the hardware driver, and the hardware driver performs an error recovery process.
[0009]
Further, according to the present invention, when the target hardware has a data transfer FIFO buffer, the control execution hardware checks whether or not the data transfer process is normally completed every time the data transfer of the size of the FIFO buffer is completed. And a status check logic unit for checking the data transfer rate, and configured to continuously process data transfer processing exceeding the size of the FIFO buffer. Preferably, when the data transfer processing to the target hardware is executed, the control command table includes a control bit for switching the validity / invalidity of the check in the status check logic unit.
[0010]
As described above, according to the present invention, the information set by the hardware driver every time a command is executed is converted into a control command table (SCW), and the grouped commands are collectively transferred to the control execution hardware. Conventionally, commands that have been processed sporadically can be continuously executed by the control execution hardware.
[0011]
When a data transfer FIFO buffer exists on the target hardware side, the data transfer process can be performed smoothly. That is, conventionally, when the hardware driver determines that the data transfer amount exceeds the FIFO size, the hardware driver has to process the transfer data by dividing it according to the FIFO size. According to the present invention, by providing a status check permission bit in the control command table and incorporating status check logic in the control execution hardware, data transfer between the target hardware / hardware control device can be performed more smoothly. I can do it.
[0012]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing an information processing system to which a hardware control device according to one embodiment of the present invention is applied.
1, a computer 1 includes a service processor (SVP) 2, a processing unit (BPU) package 11, and a platter 16 for an IO processor in its housing. A console 10 is connected to the computer 1, and a command input, a display input, and control are performed on the computer 1 from the console 10.
[0013]
The service processor 2 includes an upper application 3, a hardware driver 4, and control execution hardware 6. The hardware driver 4 analyzes a request from the host application 3 and converts the request into a plurality of commands for the hardware to be controlled. The control execution hardware 6 controls the arithmetic processing unit 11 which is hardware to be controlled. The configurations of the hardware driver 4 and the control execution hardware 6 will be described later in detail with reference to FIG. The hardware driver 4 has a memory 5 and basically performs a function of executing a command. A feature of the embodiment of the present invention is that a control command table is formed in the memory 5, and information set by the hardware driver every time a command is executed is collected in the control command table (SCW). The configuration and operation of this table will be described later in detail.
[0014]
The control execution hardware 6 includes a bus control unit 7, a control register group 8, a command FIFO buffer 91, and a data FIFO buffer 92. The configuration of the register group 8 and related hardware will be described later.
The arithmetic processing unit 11 is hardware to be controlled, and includes a memory 12, a memory controller 13, and a processor module 14 including a plurality of processors 15. The memory 12 stores user application software, commands, an OS, and the like. The memory controller 13 has a plurality of paths in consideration of redundancy and load distribution. Note that the configuration of the arithmetic processing unit 11 as described above does not directly relate to the gist of the present invention.
The IO processor 16 includes a channel processor 17 and a plurality of channels 18 connected thereto. Input / output devices are connected to these channels 18.
[0015]
Next, a hardware control device according to an embodiment of the present invention will be described with reference to FIG.
When the hardware driver 4 receives an instruction from the host application 3, it analyzes the instruction and creates a control command table (SCW) 51 in the memory 5. The commands are arranged in the table 51 in the order in which the commands are executed. The write data 52 stores write data, and the read data 53 stores read data. Regarding the table 51, SCWAP indicates the head address of this table, and SCWWC indicates the table length. The ICMD is an immediate execution command, such as a reset command or a stop command when there is no data transfer. The command is, for example, 4 bytes / word, CMD-WR indicates a write command, and CMD-RD indicates a read command. If the command is a data transfer command, the data storage area start address and the data transfer length are also stored in the control command table 51. Addresses 1 to 3 indicate the head address of the data, and words 1 to 3 indicate the data length. Further, when the FIFO buffer on the target hardware side is used, the status check permission bit is set according to the transfer data amount.
[0016]
These commands created in the form of a table are collectively transferred to the control execution hardware 6. The control execution hardware 6 receives commands and write data via the bus control unit 7. The command is temporarily stored in a command buffer (FIFO) 91, then decoded by the decode logic unit 63, and set in an associated register of the register group 8. As a result of decoding, some of the commands are not set in the register group 8 but are set in the command register 64 and transferred to the arithmetic processing unit 11. The embodiment of the present invention is characterized by the processing of commands in a table. The start address register (SCWAP) 81 stores the start address of the table 51. The word number register (SCWWC) 82 stores the number of words, that is, the table length of the table 51. In this example, since one word is 4 bytes, the table length can be determined from the number of words. The start request register 83 indicates a start instruction. If the value of the start request register 83 is "1", the start is indicated. When the contents of the table are completely executed, "0" is written as the value. The data address register (DATAAP) 84 sets an address pointer of data, and sets addresses 1 to 3 in the table. The data word number register (DATAWC) 85 similarly sets words 1 to 3. The status check bit enable register (STRFLG) 86 is a bit for controlling whether to use the status check logic 62 or not. If this bit is "1", check logic 62 is used, while if "0", it is not used. The status information read command register (STRCMD) 87 is a command for reading status information.
The write data is set in a write data buffer (FIFO) 92 and then sent to the one-word write register 65 for transfer to the arithmetic processing unit 11.
[0017]
On the other hand, the read data from the arithmetic processing unit 11 is set in the one-word read register 66, then stored in a read buffer (FIFO) 93 and sent to the read data buffer 53 of the memory 5 via the bus control unit 7. . The result of the data transfer (such as error information) is set in the status register 67 via the register 66. The value is checked by the status check logic unit 62. Interrupt control is performed on the memory 5 via the interrupt control unit 61 according to the check result. The status check logic unit 62 will be described later in detail with reference to FIG.
[0018]
Next, the status check logic in the hardware control device will be described with reference to FIG.
The error state check logic has three types of check functions.
All check functions are based on the value of the status register 67 which reflects the result of data transfer (error information and the like). The three types of check functions are as follows.
(1) Match / mismatch determination between the value of the status register 67 and the compare value.
(2) Determine whether the value of the status register 67 is larger than the compare value.
(3) Processing interruption determination based on the determination result of the value of the status register 67 and the compare value.
As for the above (1) and (2), the results of both check functions are associated and output.
Since one register value is used in all the check functions, which bit in the register is used for each check function is determined by the values of the masks 620, 621, and 622. The value of the status register 67 is ANDed with the values of the masks 620, 621, and 622, and compared with the values of the comparisons 623, 624, and 629 to check.
The above (1) and (2) are logics for checking what value the value of the status register 67 takes to perform processing mainly continuously, and (3) detects an error and performs processing. Is used as logic for interrupting
[0019]
Each check function has Sel registers 625, 626, and 628, and the contents of determination are determined by the Sel registers 625, 626, and 628. The value of the Sel registers 625, 626, and 628 of each check function is 2 bits, and the meaning of each bit is as follows.
(A) Bit 0: Match determination valid. Bit 1: validity of mismatch determination.
(B) Bit 0: greater-than judgment valid. Bit 1: Less than judgment valid.
(C) Bit 0: match determination valid. Bit 1: validity of mismatch determination.
It has become.
If both bits of each Sel register 625, 626, 628 are "0", the corresponding check function is invalidated.
[0020]
As the value of the status register 67, the value read by the control execution hardware 6 is used, but the mask value, the compare value, and the Sel value are set by the hardware driver 4 according to the purpose.
The determination logic of the match / mismatch determination ANDs the value of the status register 67 with the mask 621, and if bit 0 of the Sel register 625 is "1", determines whether or not the value matches the value of the compare 623. If bit 1 of the Sel register 625 is “1”, it is determined whether the value does not match the value of the compare 623.
[0021]
The determination logic of the magnitude determination performs an AND operation between the value of the status register 67 and the mask 622, and if the bit 0 of the Sel register 626 is “1”, determines whether or not the value is greater than the value of the compare 624. If bit 1 of the Sel register 626 is “1”, it is determined whether the value is smaller than the value of the compare 624.
The association between the two determination results is performed by the Sel register 627. This register 627 has one bit, and if the bit is “0”, outputs the OR of the result of the match / mismatch determination and the result of the size determination. On the other hand, if the bit of the register 627 is “1”, AND of the result of the match / mismatch determination and the result of the size determination is output.
[0022]
The determination logic of the processing interruption determination ANDs the value of the status register 67 and the mask 620, and if bit 0 of the 2-bit Sel register 628 is "1", determines whether or not the value matches the value of the compare 629. If they match, the processing is stopped. If bit 1 of the Sel register 628 is “1”, it is determined whether or not the value matches the value of the compare 629. If not, the process is stopped.
[0023]
Next, the operation of the hardware control of FIG. 2 will be described with reference to the flowchart shown in FIG.
When the hardware driver 4 receives an instruction from the host application 3, it analyzes the instruction and creates a control command table 51 in the memory 5. Commands are arranged in the table 51 in the order of execution.
[0024]
In the case of a data transfer command, the data storage area start address and the data transfer length are also stored in the table 51. Further, when the target hardware FIFO is used, a status check permission bit is set according to the amount of transfer data. In the data transfer process, if a FIFO exists on the target hardware side, the hardware driver 4 determines whether the data transfer amount exceeds the FIFO size. If it is determined that the size exceeds the FIFO size, the status check permission bit in the table 51 is set.
[0025]
When the creation of the control command table 51 is completed, the hardware driver 4 sets the head address of the table 51 in the SCW start address register 81 and the number of words in the table 51 in the SCW word number register 82 of the control execution hardware 6. Also, a command for reading status information at the time of status check is set in the status information read command register 87, a mask value, a comparison value, and the like are set in the status check logic unit 62, a start bit is set in the SCW start request register 83, and then control is performed. Requests the execution hardware 6 to start processing the table. The control execution hardware 6 reads the contents of the table 51 into the command buffer (SCWFIFO) 91 via the BUS control unit 7 with reference to the contents of the start address register 81 and the word number register 82. Thereafter, the control execution hardware 6 reads the commands one by one from the command buffer 91 and decodes them by the decode logic unit 63. The decoding logic unit 63 determines whether the command is a single command or a data transfer command. As a result of the decoding, if the command is a one-time command, the command is set in the command register 64 and the command is executed on the target hardware. On the other hand, if the command is a data transfer command, the data storage area start address and the data transfer length are read from the command buffer 91, and the data address register 84, the data word number register 85, and the status check permission bit register 86 are set. Thereafter, in the case of the write processing, the write data is read from the memory 5 of the hardware driver 4 to the data buffer 92 with reference to the contents of the data address register 84 and the data word number register 85, and Start data transfer. In the case of the read processing, the data read into the read data buffer 93 is written into the memory 5 of the hardware driver 4 based on the data address register 84 and the data word number register 85.
[0026]
The control execution hardware 6 continuously performs the processing until the value of the word number register 82 becomes “0” (or until a command error is detected).
When the status check permission bit register 86 is set, the control execution hardware 6 uses the status information read command register 87 to read the status information. The read data is stored in the status register 67, and the status check logic unit 62 checks the status information. If there is no data to be checked, the next data transfer process is continued. For example, when the command processing data of the transfer data 1 divided into the FIFO size shown in FIG. 4 is exhausted, the command processing of the transfer data 2 and then the command processing of the transfer data 3 are performed in the order of the control execution hardware 6 and the target. Command execution processing is sequentially performed with the hardware (that is, the arithmetic processing unit 11). If there is check data in the status check logic unit 62, an error is returned to the hardware driver 4 via the interrupt control unit 61.
[0027]
As described above, according to the present embodiment, a command to be executed is made into a control command table by the hardware driver, and the command group in this table is sent to the control execution hardware collectively and set in the register group. Thereafter, the command execution processing can be continuously executed between the control execution hardware and the target hardware. For this reason, it is not necessary to perform a process related to command transfer between a hardware driver and control execution hardware as in the related art, and command processing is simplified. Further, since the hardware driver is released from individual command processing, software overhead in the hardware driver is significantly reduced.
[0028]
【The invention's effect】
As described above, according to the present invention, the control command of the hardware to be controlled is tabulated in the hardware driver, and the table is sent to the control execution hardware. You can rely on the interaction with the target hardware. Therefore, the procedure for command processing between the hardware driver and the control execution hardware can be simplified, and the software overhead can be greatly reduced.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an information processing system to which a hardware control device according to an embodiment of the present invention is applied.
FIG. 2 is a block diagram showing a hardware control device according to one embodiment of the present invention.
FIG. 3 is a logic diagram for checking an error state in the status check logic of the hardware control device according to one embodiment of the present invention.
FIG. 4 is a flowchart showing a sequence of hardware control in the hardware control device according to one embodiment of the present invention.
FIG. 5 is a flowchart showing a sequence of hardware control according to the related art.
[Explanation of symbols]
1. Computer 2. Service processor 3. Upper application 4. Hardware driver 5. Memory 6. 6. Control execution hardware Bus control unit 8. Control register group 91. Command register 92. Data register 10. Console 11. Arithmetic processing unit 12. Memory 13. Memory controller 14. Processor module 15. Processor 16. IO processor 17. Channel processor 18. Channel 51. Control command table (SCW) 52. Write data 53. Read data 81. SCW start address register 82. SCW word number register 83. SCW start request register 84. Data address register 85. Data word number register 86. Status check enable bit register 87. Status information read command register 61. Interrupt control unit 62. Status check logic unit 63. Decode logic 64. Command register 65.1 word Write register 66.1 word Read register 67. Status register

Claims (5)

メモリを有するハードウェアドライバと、コマンドの実行を行う制御実行ハードウェアを有し、該制御実行ハードウェアによって対象ハードウェアを制御するハードウェア制御装置において、該ハードウェアドライバは上位アプリケーションからの要求を解析して、対象ハードウェアを制御する複数のコマンドに変換し、これらのコマンドを配列した制御コマンドテーブルを該メモリに形成し、かつ該制御コマンドテーブルの内容は該制御実行ハードウェアに備えられたレジスタ群に設定され、制御実行ハードウェアは以後、該レジスタ群の内容を参照して対象ハードウェアとの間でコマンドの実行処理を行うことを特徴とするハードウェア制御装置。In a hardware control device having a hardware driver having a memory and control execution hardware for executing a command, and controlling the target hardware by the control execution hardware, the hardware driver receives a request from a host application. Analyzed and converted into a plurality of commands for controlling the target hardware, a control command table in which these commands are arranged is formed in the memory, and the contents of the control command table are provided in the control execution hardware. A hardware control device which is set in a register group, wherein the control execution hardware thereafter executes a command execution process with target hardware by referring to the contents of the register group. 前記制御コマンドテーブルは、コマンドに加えて、データ転送に必要なデータ格納領域先頭アドレスおよびデータ転送長を示す情報を含んで形成され、これらの先頭アドレス及びデータ転送長を示す情報はコマンドと同様に前記レジスタ群に設定されることを特徴とする請求項1項記載のハードウェア制御装置。The control command table is formed to include, in addition to the command, information indicating a data storage area start address and a data transfer length necessary for data transfer, and the information indicating the start address and the data transfer length is the same as the command. 2. The hardware control device according to claim 1, wherein the hardware control device is set in the register group. 制御実行ハードウェアが前記レジスタ群に設定されたコマンドを連続的に実行する場合、各コマンド処理が正常終了であれば次のコマンドを実行し、異常終了であればその処理を中断してハードウェアドライバへエラー情報を通知し、該ハードウェアドライバがエラー回復処理を行うことを特徴とする請求項1項記載のハードウェア制御装置。When the control execution hardware continuously executes the command set in the register group, the next command is executed if each command processing is normally completed, and if the command processing is abnormally terminated, the processing is interrupted and the hardware is interrupted. 2. The hardware control device according to claim 1, wherein error information is notified to the driver, and the hardware driver performs an error recovery process. 対象ハードウェアがデータ転送用FIFOバッファを有する場合、制御実行ハードウェアには、該FIFOバッファのサイズ分のデータ転送が終了する度に、そのデータ転送処理が正常に終了したかどうかをチェックするためのステータスチェック論理部を有し、前記FIFOバッファのサイズを超えるデータの転送処理を連続して処理することを特徴とする請求項1項記載のハードウェア制御装置。When the target hardware has a data transfer FIFO buffer, the control execution hardware checks whether or not the data transfer process has been completed normally every time the data transfer of the size of the FIFO buffer is completed. 2. The hardware control device according to claim 1, further comprising a status check logic unit for continuously transferring data exceeding the size of the FIFO buffer. 対象ハードウェアに対するデータの転送処理を実行するとき、該制御コマンドテーブルには前記ステータスチェック論理部におけるチェックの有効/無効を切り替える制御ビットを含んでいることを特徴とする請求項4項記載のハードウェア制御装置。5. The hardware according to claim 4, wherein, when executing a data transfer process to the target hardware, the control command table includes a control bit for switching valid / invalid of a check in the status check logic unit. Wear control device.
JP2002266367A 2002-09-12 2002-09-12 Hardware controller Pending JP2004102867A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002266367A JP2004102867A (en) 2002-09-12 2002-09-12 Hardware controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002266367A JP2004102867A (en) 2002-09-12 2002-09-12 Hardware controller

Publications (1)

Publication Number Publication Date
JP2004102867A true JP2004102867A (en) 2004-04-02

Family

ID=32265195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002266367A Pending JP2004102867A (en) 2002-09-12 2002-09-12 Hardware controller

Country Status (1)

Country Link
JP (1) JP2004102867A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012027718A (en) * 2010-07-23 2012-02-09 Toshiba Corp Command management unit and storage device equipped with command management unit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012027718A (en) * 2010-07-23 2012-02-09 Toshiba Corp Command management unit and storage device equipped with command management unit

Similar Documents

Publication Publication Date Title
JP4928100B2 (en) Controller apparatus and method for improved data transfer
AU613823B2 (en) Virtual computer system having improved input/output interrupt control
US8200875B2 (en) Processing and forwarding of message-signaled interrupts
JPS62151971A (en) Microprocessor
TWI808869B (en) Hardware processor and processor
JPS6375955A (en) Program mode access control system
WO1995010806A1 (en) Device and method for controlling interruption
JPS61182160A (en) Data processing device
US20030188169A1 (en) System and method for controlling device-to-device accesses within a computer system
JP5322567B2 (en) Data processing system and semiconductor integrated circuit
JP2004102867A (en) Hardware controller
JPS63296158A (en) Information processor
JP4334026B2 (en) Computer system and method for generating and handling system management interrupts therein
JP2001256044A (en) Data processor
JPH11184799A (en) Method for transferring memory data and device therefor
JPH06324861A (en) System and method for controlling cpu
JPS603049A (en) Bus interface apparatus
JP3785807B2 (en) Control device
EP0382529A2 (en) Microprocessor having store buffer
JP2004038422A (en) Semiconductor device
JPH11327798A (en) Data transfer controller
JPS5942331B2 (en) Prosetsusasouchinoseigiohoshiki
JPS60142767A (en) Asynchronous type bus dominating system
JPS60142450A (en) Storage system
JPH0683640A (en) Interruption response processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050803

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050803

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20070220

A977 Report on retrieval

Effective date: 20080428

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080520

A521 Written amendment

Effective date: 20080722

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090519