JPH11328046A - 情報処理装置及び記録媒体 - Google Patents

情報処理装置及び記録媒体

Info

Publication number
JPH11328046A
JPH11328046A JP10127155A JP12715598A JPH11328046A JP H11328046 A JPH11328046 A JP H11328046A JP 10127155 A JP10127155 A JP 10127155A JP 12715598 A JP12715598 A JP 12715598A JP H11328046 A JPH11328046 A JP H11328046A
Authority
JP
Japan
Prior art keywords
dma
data
corrector
transfer
host
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
JP10127155A
Other languages
English (en)
Inventor
Hiroshi Sakurai
博 櫻井
Takashi Ono
隆 小野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP10127155A priority Critical patent/JPH11328046A/ja
Publication of JPH11328046A publication Critical patent/JPH11328046A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】本発明は情報処理装置に関し、バス上にパリテ
ィビット等の異常検出/訂正情報を持たない装置におい
て、DMA転送を行う場合、既存のアプリケーションや
ホスト側のハードウェアに全く影響を与えることなく、
DMA転送データの信頼性を確保できるようにする。 【解決手段】転送データの異常検出/訂正情報を持たな
いバス4上に、I/O装置3とホスト2を配置し、I/
O装置3にDMA転送情報を格納するDMAレジスタ1
5を備えて、ホスト2からもアクセス可能にした装置に
おいて、I/O装置3は、転送データの訂正子を格納す
る訂正子レジスタ22を備えると共に、I/O装置3か
らホスト2へDMAによりデータ転送を行う際、予め、
前記DMA転送データの訂正子を計算して訂正子レジス
タ22に書き込むI/O装置側訂正子書き込み手段(サ
ブCPU12)を備えている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ワークステーショ
ン、パーソナルコンピュータ等の情報処理装置に関す
る。近年、情報処理装置において、既存のI/O装置、
アプリケーションソフト等の資産の継承を実施するた
め、共通のアーキテクチャの情報処理装置を使用するこ
とが増えて来ている。しかしながら、共通アーキテクチ
ャにおいて、バス上にパリティが無いなど、機能、信頼
性面で問題が発生し対策が必要になってきている。この
ため、信頼性の要求される情報処理装置において、転送
データの信頼性を確保するための対策の検討が必要とな
ってきている。
【0002】
【従来の技術】以下、図に基づいて従来例を説明する。
図11は従来例の説明図であり、A図は装置構成図、B
図は例2のデータ配列を示す図、C図はデータの並べ替
え結果を示す図である。以下、図11に基づいて従来例
を説明する。なお、以下の説明では、入出力装置を「I
/O装置」、ダイレクトメモリアクセス(Direct Memor
y Access)を「DMA」、ダイレクトメモリアクセスコ
ントローラ(Direct Memory Access Controller )を
「DMAC」と記す。また、DMAによるデータ転送
を、単に「DMA転送」とも記す。
【0003】§1:従来例1の説明 従来、高信頼性が要求される装置であって、かつ、バス
上にパリティビット等のチェック情報が存在しない装置
(例えば、ワークステーション等の情報処理装置)が知
られていた。この装置では、装置本体(例えば、ワーク
ステーション本体)1に、パリティ等のチェック情報が
存在しないバス4が設けてあり、このバス4上に、ホス
ト2とI/O装置(例えば、I/Oカード)3が配置さ
れていた。
【0004】この場合、ホスト2には、該ホスト2の各
種制御を行うメインCPU10と、転送データ等のデー
タを格納するメモリ11が設けてあり、I/O装置3に
は、I/O装置3の各種制御を行うサブCPU12と、
転送データ等のデータを格納するメモリ13と、回線制
御を行う回線制御部14と、DMAデータ転送を行う際
の情報(転送先、転送元アドレス、転送長、リード/ラ
イトコマンド等)を格納するDMAレジスタ15と、D
MA転送制御を行うDMAC16が設けてある。なお、
バス4は、ISA(Industrial Standard Archtecture
)バス(ATバスとも呼ばれている)であり、該バス
4上にパリティビットが存在しない。
【0005】このような装置において、ホスト2とI/
O装置3との間でデータのDMA転送を行う場合、従来
例1では、転送データの異常検出/訂正は実施しないで
データ転送を行っていた。例えば、I/O装置3からホ
スト2へのDMA転送(DMAライト)を行う場合、メ
インCPU10が、I/O装置3のDMAレジスタ15
に転送元アドレス、転送先アドレス、転送長、DMAコ
マンド(リード/ライト)を書き込む。
【0006】その後、I/O装置3のサブCPU12
が、DMAレジスタ15の内容に基づいてDMAC16
を起動し、該DMAC16が、転送するためのデータ
(メモリ13のデータ)をそのまま転送(メモリ11へ
転送)していた。その結果、DMA転送中にデータ化け
が発生しても、データの異常を判断できなかった。従っ
て、金融系のデータなど、高信頼性が必要なデータ転送
には適していなかった。
【0007】§2:従来例2の説明 従来例2は、前記従来例1と同じ高信頼性が要求される
装置において、バス4上にパリティビットが存在しない
ISAバスを使用した場合、前記バス4上に配置された
ホスト2とI/O装置3との間の転送データの正当性確
認のため、転送データに対して訂正子を追加したものを
データとして転送し、転送後、追加した訂正子と比較
し、データの正当性を確認する例である。
【0008】この例では、DMA転送を実施した場合、
実際のデータ長よりも転送長を大きくとらなければなら
ず、既存アプリケーションに対してDMA転送長の変
更、及びデータのソート(訂正子の除去)が必要になっ
ていた。以下、具体例について説明する。
【0009】バス4にはパリティビットが存在しない場
合、従来例2でのDMA転送は次のようにして行う。D
MAリード(メモリ11のデータをメモリ13へ転送)
の場合は、予めメインCPU10は、DMA転送元領域
のCRC(データの排他的論理和等のコード)を計算
し、転送元データ領域の後に追加し、ホスト2からのI
/Oアクセス指示によって、I/O装置3にDMA転送
の転送元、転送先アドレス、転送長、DMAリード指示
を行い、CRCを含めた転送長でDMAC16にDMA
リードの起動指示をかける。
【0010】そして、ホスト2は、DMAリードが終了
した場合、ホスト2の転送先DMA転送領域のデータと
CRCを計算し、データの正当性を確認する。実際は、
DMAが同時に複数起動される事が多く、図11のB図
に示したように、メモリ空間にCRCと必要なデータが
混在する。このため、図11のC図に示したように、必
要なデータを並べ替える処理(ソート)を行う。
【0011】すなわち、図11のB図の例では、データ
の配列は、データ1、CRC1、データ2(1) 、データ
2(2) 、CRC2、データ3(1) 、データ3(2) 、CR
C3、データ4(1) 、データ4(2) 、CRC4・・・の
ようになっている。このような配列のデータをDMA転
送した後、必要なデータを並べ替える。このデータの並
べ替えでは、前記CRC1、CRC2、CRC3、CR
C4・・・等を取り除き、必要なデータのみを残して、
図11のC図に示したように配列する。
【0012】すなわち、並べ替えた後は、データ1、デ
ータ2(1) 、データ2(2) 、データ3(1) 、データ3
(2) 、データ4(1) 、データ4(2) ・・・のように、必
要なデータのみとなっている。このため、ソフトの変更
が必要であったり、或いは、余分な処理が必要となるた
め、装置の性能の低下も招く。
【0013】
【発明が解決しようとする課題】前記のような従来のも
のにおいては、次のような課題があった。 (1) :従来例1では、転送データの異常検出/訂正は実
施しないでDMAによるデータ転送を行っていた。従っ
て、DMA転送中にデータ化けが発生しても、データの
異常を判断できなかった。このため、金融系のデータな
ど、信頼性が必要なデータ転送には適していなかった。
【0014】(2) :従来例2のように、バス上にパリテ
ィチェックビット等のチェック情報が存在しない装置に
おいて、DMA転送を実施した場合、実際のデータ長よ
りも転送長を大きくとらなければならず、既存アプリケ
ーションに対してDMA転送長の変更、及びデータのソ
ート(訂正子の除去)が必要になる。この場合、既存ア
プリケーションがあれば大幅変更が必要になる。また、
訂正子による転送を実施していない旧アプリケーション
は全く使用できない。
【0015】(3) :従来例2では、メモリ空間にCRC
と必要なデータが混在する。このため、必要なデータを
並べ替える処理が必要である。このため、ソフトの変
更、性能の低下も招く。
【0016】(4) :従来のISAバスは、バス上にパリ
ティビットが存在せず、従来例1のDMA転送時には、
データの異常検出/訂正は実施していなかった。また、
従来例2のように、転送データ自身に訂正子を追加し
て、転送データ=必要なデータ+訂正子として転送する
場合もあった。
【0017】しかしながら、従来例2では、ハードウェ
アの変更は不要であるが、従来例1で使用していたソフ
トウェアや、ファームウェアの資産を活用する場合、D
MA転送長が異なる等、性能の低下や、ソフトウェア、
或いはファームウェア全てに大幅な作り直しが発生して
いた。
【0018】本発明は、このような従来の課題を解決
し、バス上にパリティビット等の異常検出/訂正情報を
持たない装置において、DMA転送を行う場合、既存の
アプリケーションや、ホスト側のハードウェアに全く影
響を与えることなく、DMA転送データの信頼性を確保
できるようにすると共に、I/Oアクセスにおけるデー
タの異常検出を確実に行うことを目的とする。
【0019】
【課題を解決するための手段】図1は本発明の原理説明
図である。本発明は前記の目的を達成するため、次のよ
うに構成した。 (1) :転送データの異常検出/訂正情報を持たないバス
4上に、I/O装置3とホスト2を配置し、I/O装置
3にDMA転送情報を格納するDMAレジスタ15を備
えて、ホスト2からもアクセス可能にした情報処理装置
において、I/O装置3は、転送データの訂正子を格納
する訂正子レジスタ22を備えると共に、I/O装置3
からホスト2へDMAによりデータ転送を行う際、予
め、前記DMA転送データの訂正子を計算して訂正子レ
ジスタ22に書き込むI/O装置側訂正子書き込み手段
(サブCPU12)を備えている。
【0020】(2) :転送データの異常検出/訂正情報を
持たないバス4上に、I/O装置3とホスト2を配置
し、I/O装置3にDMA転送情報を格納するDMAレ
ジスタ15を備えて、ホスト2からもアクセス可能にし
た情報処理装置において、I/O装置3は、転送データ
の訂正子を格納する訂正子レジスタ22を備え、ホスト
2は、DMAによりホストからI/O装置3へデータ転
送を行う際、予め、前記DMA転送データの訂正子を計
算して訂正子レジスタ22に書き込むホスト側訂正子書
き込み手段(メインCPU10)を備えている。
【0021】(3) :前記(1) 又は(2) の情報処理装置に
おいて、前記DMA転送データの訂正子と異なるテスト
用訂正子を訂正子レジスタ22に書き込むテスト用訂正
子書き込み手段(メインCPU10、又はサブCPU1
2)と、前記テスト用訂正子書き込み手段が、訂正子レ
ジスタ22にテスト用訂正子を書き込んだ後、ホスト2
とI/O装置間3でテストDMA転送を行わせて、DM
Aエラーとなるか否かにより、前記(1) 、又は(2) のD
MAデータ転送が可能か否かを判断するテストDMA制
御手段(メインCPU10、又はサブCPU12)を備
えている。
【0022】(4) :前記(3) の情報処理装置において、
ホスト2は、前記テストDMA制御手段によるテストD
MA転送で、前記DMAデータ転送が可能と判断した場
合、ホスト2からI/O装置3のDMAレジスタ15又
は訂正子レジスタ22に対してDMA転送情報又は転送
データの訂正子を書き込むホスト2のI/Oライトシー
ケンスで、ハードウェアにより同一のライトシーケンス
を後続作成する複数ライトシーケンス作成手段(判定回
路20)を備え、I/O装置3は、前記複数の同一ライ
トシーケンスにより複数回に渡り転送されたライトデー
タを比較してエラーか否かを判定するI/O装置側判定
手段(判定回路21)を備えている。
【0023】(5) :前記(3) の情報処理装置において、
ホスト2は、前記テストDMA制御手段によるテストD
MA転送で、前記DMA転送が可能と判断した場合、I
/O装置3のDMAレジスタ15又は訂正子レジスタ2
2からDMA転送情報又は転送データの訂正子を読み出
すホスト2のI/Oリードシーケンスで、ハードウェア
により同一のリードシーケンスを後続作成する複数リー
ドシーケンス作成手段(判定回路20)を備えると共
に、前記複数の同一リードシーケンスにより複数回に渡
り転送されたリードデータを比較してエラーか否かを判
定するホスト側判定手段(判定回路20)を備えてい
る。
【0024】(6) :転送データの異常検出/訂正情報を
持たないバス4上に、I/O装置3とホスト2を配置
し、I/O装置3にDMA転送情報を格納するDMAレ
ジスタ15を備えて、ホスト2からもアクセス可能にし
た情報処理装置に、I/O装置3からホスト2へDMA
によりデータ転送を行う際、予め、転送データの訂正子
を計算してI/O装置の訂正子レジスタ22に書き込む
手順を実行させるためのプログラムを記録したコンピュ
ータ読み取り可能な記録媒体。
【0025】(作用)前記構成に基づく本発明の作用
を、図1に基づいて説明する。 (a) :前記(1) の作用 I/O装置側訂正子書き込み手段は、I/O装置3から
ホスト2へDMAによりデータ転送(DMAライト)を
行う際、予め、前記DMA転送データの訂正子を計算し
て、訂正子レジスタ22に書き込む。そして、DMA転
送後、ホスト2側が、転送データと訂正子レジスタ22
内の訂正子を比較し、I/O装置3からのデータの正当
性を確認する。
【0026】このようにすれば、パリティビット等の異
常検出/訂正情報を持たないバス4上に配置されたI/
O装置3が、ホスト2にDMA転送(DMAライト)す
る場合、DMA転送長の変更がないため、ソフトウェア
の変更が最小で、DMA転送データの異常検出/訂正が
可能になる。
【0027】(b) :前記(2) の作用 ホスト側訂正子書き込み手段は、DMAによりホスト2
からI/O装置3へデータ転送(DMAリード)を行う
際、予め、前記DMA転送データの訂正子を計算して訂
正子レジスタ22に書き込む。そして、DMA転送後、
I/O装置3が転送データと訂正子レジスタ22内の訂
正子を比較し、ホスト2側からのデータの正当性を確認
し、結果を訂正子レジスタ22にライトする。
【0028】ホスト2側は、訂正子レジスタ22の結果
をリードすることにより、I/O装置3へのDMA転送
が正常に転送できたかを確認する。従って、ホスト2か
らI/O装置3へのDMA転送時に、DMA長を変更す
ることなく、DMAリード転送が可能になり、従来のパ
リティビット等の異常検出/訂正情報を持たない装置で
も、データの異常検出/訂正が可能になる。
【0029】また、I/O装置3が訂正子レジスタ22
を持たない装置でも、アプリケーションが、訂正子レジ
スタ22の存在を無視すれば、従来と全く変わりないデ
ータ転送が可能であり、旧アプリケーションは、全く変
更無しで従来のDMAリード動作が可能になる。
【0030】(c) :前記(3) の作用 テストDMA制御手段は、テスト用訂正子書き込み手段
が訂正子レジスタ22にテスト用訂正子を書き込んだ
後、ホスト2とI/O装置3間でテストDMA転送(D
MAライト/DMAリード)を行わせて、DMAエラー
となるか否かにより、前記(1) 又は(2) のDMAデータ
転送が可能か否かを判断する。
【0031】すなわち、初期動作時(例えば、電源投入
時)にテストDMA転送を行い、訂正子レジスタ22
に、転送データの訂正子と異なるデータをライトし、D
MAエラーとなるか否かにより、前記(1) 、(2) のDM
Aデータ転送が可能か否かを認識する。そして、自動的
に、前記(1) 、(2) のDMA転送が可能な場合は、前記
(1) 、(2) のDMA転送を実行し、不可能な場合は、従
来のアプリケーションや、ハードウェアの変更無しで従
来のDMA転送を実施する。
【0032】このように、前記(1) 、(2) のDMA転送
が不可能な場合は従来のDMA転送を行うため、従来の
DMA転送しかできない装置でも、ホスト2のアプリケ
ーション、I/O装置3のファームウェアに影響を与え
ないため、既存資産の継承が可能である。
【0033】(d) :前記(4) の作用 複数ライトシーケンス作成手段は、前記テストDMA制
御手段によるテストDMA転送で、前記DMAデータ転
送が可能と判断した場合、ホスト2からI/O装置3の
DMAレジスタ15又は訂正子レジスタ22に対してD
MA転送情報又は転送データの訂正子を書き込むホスト
2のI/Oライトシーケンスで、ハードウェアにより同
一のライトシーケンスを後続作成する。そして、I/O
装置側判定手段は、前記複数の同一ライトシーケンスに
より複数回に渡り転送されたライトデータを比較してエ
ラーか否かを判定する。
【0034】このようにすれば、DMAデータ転送でな
いI/Oライトアクセス時にも、データ(DMA転送情
報や、訂正子)の異常検出が可能となる。 (e) :前記(5) の作用 複数リードシーケンス作成手段は、テストDMA制御手
段によるテストDMA転送で、前記DMA転送が可能と
判断した場合、I/O装置3のDMAレジスタ15又は
訂正子レジスタ22からDMA転送情報又は転送データ
の訂正子を読み出すホストのI/Oリードシーケンス
で、ハードウェアにより同一のリードシーケンスを後続
作成する。そして、ホスト側判定手段は、前記複数の同
一リードシーケンスにより複数回に渡り転送されたリー
ドデータを比較してエラーか否かを判定する。
【0035】このようにすれば、DMAデータ転送でな
いI/Oリードアクセス時にも、データ(DMA転送情
報や、訂正子)の異常検出が可能となる。 (f) :前記(6) の作用 前記情報処理装置が、記録媒体のプログラムを読み出し
て実行することにより、I/O装置からホストへDMA
によりデータ転送を行う際、予め、転送データの訂正子
を計算してI/O装置の訂正子レジスタに書き込む。
【0036】このようにすれば、パリティ等の異常検出
/訂正情報を持たないバス4上に配置されたI/O装置
3が、ホスト2にDMA転送(DMAライト)した場
合、DMA転送長の変更がないため、ソフトウェアの変
更が最小で、DMA転送データの異常検出/訂正が可能
になる。
【0037】
【発明の実施の形態】以下、発明の実施の形態を図面に
基づいて詳細に説明する。なお、以下の説明では、入出
力装置を「I/O装置」、ダイレクトメモリアクセス
(Direct Memory Access)を「DMA」、ダイレクトメ
モリアクセスコントローラ(Direct Memory Access Con
troller )を「DMAC」と記す。
【0038】§1:装置の説明・・・図2参照 図2は装置の説明図である。図2に示したように、本実
施の形態で使用する装置(例えば、ワークステーション
等の情報処理装置)には、装置本体1と、該装置本体1
に接続されたハードディスク装置(HDD)24、フレ
キシブルディスクドライブ(FDD)25、CD−RO
Mドライブ26等が設けてあり、前記装置本体1には、
ホスト2とI/O装置(入出力装置)3が設けてある。
【0039】そして、ホスト2には、該ホスト2の各種
制御を行うメインCPU10と、転送データ等を格納す
るメモリ11と、転送データが異常か否かを判定する判
定回路20が設けてある。また、I/O装置3には、該
I/O装置3の各種制御を行うサブCPU12と、転送
データ等を格納するメモリ13と、回線制御を行う回線
制御部14と、DMA転送情報(転送元アドレス、転送
先アドレス、転送長、リード/ライトコマンド等)を格
納するDMAレジスタ15と、転送データの訂正子を格
納する訂正子レジスタ22と、DMA転送制御を行うD
MAC16と、転送データが異常か否かを判定する判定
回路21が設けてある。なお、前記バス4は、ISA
(Industrial Standard Archtecture )バスであり、該
バス4上にパリティビット(異常検出/訂正情報)が存
在しない。
【0040】前記装置において、I/O装置3のDMA
レジスタ15、及び訂正子レジスタ22は、ホスト2の
メインCPU10がアクセス(リード/ライト)可能な
レジスタである。例えば、メインCPU10がDMAレ
ジスタ15にDMA転送情報を書き込んだり、或いは、
サブCPU12が訂正子レジスタ22に書き込んだ情報
を、メインCPU10が読み出したりすることができる
ようになっている。
【0041】このような構成の装置において、ホスト2
とI/O装置3との間でDMA転送を行う。このDMA
転送では、ホスト2側(メモリ11)からI/O装置3
側(メモリ13)へのデータ転送がDMAリードであ
り、I/O装置3側(メモリ13)からホスト2側(メ
モリ11)へのデータ転送がDMAライトである。
【0042】そして、前記DMA転送(DMAライト/
リード)を行う場合、本来転送するデータだけでなく、
DMA転送先アドレス、転送元アドレス、転送長、DM
Aライト/リードコマンド等のDMA転送情報や、訂正
子のデータも転送する必要がある。但し、前記DMA転
送情報や訂正子はDMAによる転送ではない。以下、こ
れらのデータについて転送時の制御(或いは処理)を、
各例について説明する。
【0043】§2:例1の説明・・・図3参照 図3は例1の説明図であり、A図は装置説明図、B図は
例1の処理フローチャートである。なお、S1〜S5は
各処理ステップを示す。以下、図3に基づいて例1を説
明する。
【0044】(1) :例1の処理概要 例1は、I/O装置3からホスト2へのDMAデータ転
送(DMAライト)の例である。この例1では、バス4
上に配置されたI/O装置3が、ホスト2側へDMA転
送(DMAライト)を実行する場合、予め、I/O装置
3のサブCPU12が転送データに対する訂正子を計算
して、その訂正子を訂正子レジスタ22に書き込む。そ
して、DMA転送後、ホスト2のメインCPU10が、
転送データと訂正子レジスタ22内の訂正子を比較し、
I/O装置3からのデータの正当性を確認する。
【0045】すなわち、転送データの異常検出/訂正情
報を持たないバス4上に、I/O装置3とホスト2を配
置し、I/O装置3からホスト2へDMAによりデータ
転送を行う際、予め、I/O装置3のサブCPU12
が、転送データの訂正子を計算して訂正子レジスタ22
に書き込むようにしている。
【0046】これにより、I/O装置3からホスト2側
へのDMA転送時に、DMAの転送長を変更することな
くDMAライト転送が可能となり、従来のパリティ等の
異常検出/訂正ビットを持たない装置でも、データの異
常検出/訂正が可能になる。また、I/O装置3が訂正
子レジスタ22を持たない装置でも、アプリケーション
が、訂正子レジスタ22の存在を無視すれば、従来と変
わらないデータ転送が可能であり、旧アプリケーション
は全く変更無しで従来のDMAライト動作が可能にな
る。
【0047】(2) :詳細な説明 以下、図3のB図に示した処理フローチャートに基づい
て説明する。先ず、ホスト2のメインCPU10からI
/O装置3に対して、DMA転送先アドレス、転送元ア
ドレス、DMAライトコマンド等のDMA転送情報をI
/O装置3のDMAレジスタ15にライトする(S
1)。次に、I/O装置3のサブCPU12は、DMA
レジスタ15のリードにより、DMAライトコマンドを
受け付ける(S2)。
【0048】次に、サブCPU12は、DMAC16に
DMAライトを起動する前に、転送元(I/O装置3)
メモリ領域の訂正子(メモリ13に格納されたデータの
訂正子)を計算する。この場合、前記訂正子の計算はハ
ードが自動的に計算しても良い。そして、サブCPU1
2は、前記計算結果の訂正子を訂正子レジスタ22にラ
イトし、DMAライトを起動する(S3)。
【0049】その後、I/O装置3のサブCPU12
は、DMAC16からの情報によりDMAライトが終了
した事を認識し、ホスト2に対してDMA終了通知を行
う。この場合、I/O装置3のサブCPU12は、ホス
ト2に対して割り込みにより前記DMA終了通知を行う
(S4)。次に、ホスト2のメインCPU10は、前記
通知によりDMAライトの終了を認識すると、転送先ア
ドレス範囲と、訂正子レジスタ22のデータを元に計算
を行い、転送データの正当性を確認してDMAライトを
終了する(S5)。
【0050】§3:例2の説明・・・図4参照 図4は例2の説明図であり、A図は装置説明図、B図は
例2の処理フローチャートである。なお、S21〜S2
5は各処理ステップを示す。以下、図4に基づいて例2
を説明する。
【0051】(1) :例2の処理概要 例2は、ホスト2からI/O装置3へのDMAデータ転
送(DMAリード)の例である。ホスト2がバス4上に
配置されたI/O装置3へDMA転送(DMAリード)
を実行する場合、予め、ホスト2のメインCPU10が
転送データに対する訂正子を用意し、I/O装置3の訂
正子レジスタ22に、転送データの訂正子を計算してラ
イトする。
【0052】そして、DMA転送後、I/O装置3のサ
ブCPU12が転送データと訂正子レジスタ22内の訂
正子を比較し、ホスト2側からのデータの正当性を確認
し、結果を訂正子レジスタ22にライトする。ホスト2
側は、訂正子レジスタ22の結果により、I/O装置3
へのDMA転送が正常に転送できたかを確認する。
【0053】すなわち、転送データの異常検出/訂正情
報を持たないバス4上に、I/O装置3とホスト2を配
置し、ホスト2のメインCPU10は、DMAによりホ
スト2からI/O装置3へデータ転送を行う際、予め、
DMA転送データの訂正子を計算して訂正子レジスタ2
2に書き込む。
【0054】このようにすれば、ホスト2からI/O装
置3へのDMA転送時に、DMA長を変更することな
く、DMAリード転送が可能になり、従来のパリティ等
の異常検出/訂正ビットを持たない装置でも、転送デー
タの異常検出/訂正が可能になる。また、I/O装置3
が訂正子レジスタ22を持たない装置でも、アプリケー
ションが、訂正子レジスタ22の存在を無視すれば、従
来と全く変わりないデータ転送が可能であり、旧アプリ
ケーションは、全く変更無しで従来のDMAリード動作
が可能になる。
【0055】(2) :詳細な説明 以下、図4のB図に示した処理フローチャートに基づい
て説明する。ホスト2のメインCPU10は、ホスト2
からI/O装置3へのDMA転送(DMAリード)を実
行する場合、予め、転送データ(メモリ11内のデー
タ)に対する訂正子を計算し、I/O装置3の訂正子レ
ジスタ22にライトする(S21)。次に、ホスト2の
メインCPU10は、I/O装置3に対してDMA転送
先アドレス、転送元アドレス、転送長、DMAリードコ
マンド等のDMA転送情報をI/O装置3のDMAレジ
スタ15にライトする(S22)。
【0056】次に、I/O装置3のサブCPU12は、
DMAレジスタ15のリードにより、DMAリードコマ
ンドを受け付け、DMAC16にDMAリードを起動す
る(S23)。I/O装置3は、DMAC16のステー
タス情報により、DMAリードが終了した事を認識する
と、DMA転送先アドレスと訂正子レジスタ22の訂正
子を元に計算を行い、データの正当性を確認する。
【0057】そして、DMAリードの終了通知と同時
に、訂正子レジスタ22に前記計算結果を格納して、転
送データの計算結果をホスト2に通知する。この場合、
割り込み等によりホスト2に通知を行う(S24)。ホ
スト2のメインCPU10は、DMAリードの終了と訂
正子と訂正子レジスタ22の計算結果により、データの
正当性を確認し、例2のDMAリードを終了する(S2
5)。
【0058】§4:例3の説明・・・図5参照 図5は例3の説明図である。以下、図5に基づいて例3
を説明する。 (1) :例3の処理概要 例3は、パリティビット等の異常検出/訂正ビットを持
たない装置において、初期動作時(例えば、電源投入
時)にテストDMA転送を行い、そのテスト結果によ
り、前記例1、例2のようなDMA転送を行う例であ
る。この場合、初期動作時にテストDMA転送を行い、
訂正子レジスタ22に、転送データの訂正子と異なるデ
ータをライトし、DMAエラーとなるか否かにより、前
記例1、例2のDMAデータ転送が可能か否かを認識す
る。
【0059】そして、自動的に、前記例1、例2のDM
A転送が可能な場合は、例1、例2のDMA転送を実行
し、不可能な場合は、従来のアプリケーションや、ハー
ドウェアの変更無しで従来のDMA転送を実施する。こ
のように、訂正子レジスタ22にテスト用訂正子を書き
込んだ後、ホスト2とI/O装置3間で、テストデータ
によるテストDMA転送(DMAライト/DMAリー
ド)を行わせて、DMAエラーとなるか否かにより、前
記例1、例2のDMAデータ転送が可能か否かを判断す
る。
【0060】そして、自動的に、前記例1、例2のDM
A転送が可能な場合は、例1、例2のDMA転送を実行
し、不可能な場合は、従来のアプリケーションや、ハー
ドウェアの変更無しで従来のDMA転送を実施する。こ
のように、前記例1、例2のDMA転送が不可能な場合
は従来のDMA転送を行うため、従来のDMA転送しか
できない装置でも、ホスト2のアプリケーション、I/
O装置3のファームウェアに影響を与えないため、既存
資産の継承が可能である。
【0061】なお、例3では、前記処理により、前記例
1、例2のDMAデータ転送が可能か否かを判断する
が、この処理により、後述する例4、例5のデータ転送
(DMA転送ではないデータ転送)が可能か否かも判断
している。従って、前記例4、例5のデータ転送が可能
な場合は、例4、例5のデータ転送を実行し、不可能な
場合は、従来のアプリケーションや、ハードウェアの変
更無しで従来のデータ転送を実施する。
【0062】(2) :詳細な説明 例えば、例1の処理を実施の場合、前記訂正子にはBC
Cコード(データの排他的論理和)を使用する。また、
DMAリード時には、I/O装置3のサブCPU12
は、訂正子レジスタ22にI/O装置3のサブCPU1
2が計算した訂正子と、転送元の訂正子をAND演算
し、訂正子レジスタ22に返却する処理を行う。
【0063】この場合、電源投入時や、リセット時に特
定のデータパターン(例えば、1248H,2486
H)と、その訂正子をAAAAH(36CE以外のデー
タ)として、DMAリードを起動する。この時、例1が
有効なI/O装置3は、訂正子が36CEH以外なの
で、訂正子レジスタ22には、(36CEH EX−O
RAAAAH)9C64Hとなるはずであり、データを
確認する。
【0064】§5:例4の説明・・・図6〜図8参照 図6は例4の説明図(その1)である。図7は例4の説
明図(その2)であり、A図はホスト側判定回路の説明
図、B図はタイムチャートである。図8は例4の説明図
(その3)であり、A図はI/O装置側判定回路の説明
図、B図はタイムチャートである。以下、図6〜図8に
基づいて例4を説明する。
【0065】(1) :例4の処理概要 例4は、前記例1、2において、ホスト2がI/O装置
3のDMAレジスタ15と訂正子レジスタ22にライト
する時、前記例3の処理により、例1、例2によりDM
A転送が可能と判断した場合に行う処理である。この場
合、ホスト2は、メインCPU10のI/Oライトシー
ケンスからバス4上に同一の2つのI/Oライトシーケ
ンスを作成し、I/O装置3が1回目のデータと2回目
のデータの比較を行う。この処理により、I/Oライト
によるデータ異常を検出する事ができ、I/Oライトデ
ータの異常検出が可能になる。
【0066】前記のようにして、テストDMA転送で、
前記例1、例2のDMAデータ転送が可能と判断した場
合、ホスト2からI/O装置3のDMAレジスタ15又
は訂正子レジスタ22に対してDMA転送情報又は転送
データの訂正子を書き込むホスト2のI/Oライトシー
ケンスで、ハードウェアにより同一のライトシーケンス
を後続作成する。
【0067】そして、I/O装置2のサブCPU12
が、複数の同一ライトシーケンスにより2回に渡り転送
されたライトデータを比較してエラーか否かを判定す
る。このようにすれば、DMAデータ転送でないI/O
ライトアクセス時にも、データ(DMA転送情報や、訂
正子)の異常検出が可能となる。なお、前記I/Oライ
トシーケンスでは、2つのI/Oライトシーケンスを後
続作成しているが、このような例に限らず、3つ以上の
任意数のI/Oライトシーケンスを作成しても良い。
【0068】(2) :詳細な説明 図6に示したように、ホスト2には、メインCPU10
とメモリ11を備えると共に、転送データが異常か否か
を判定するためのハードウェア構成の判定回路20を備
えている。また、I/O装置3には、サブCPU12
と、メモリ13と、DMAレジスタ15と、訂正子レジ
スタ22を備えると共に、転送データが異常か否かを判
定するためのハードウェア構成の判定回路21を備えて
いる。
【0069】例4では、前記ホスト2側の判定回路20
と、I/O装置3側の判定回路21により、転送データ
が異常か否かを判定することで、ホスト2がI/O装置
3にライトするデータの正常性を確認する。以下、ホス
ト2側とI/O装置3側の判定回路について詳細に説明
する。
【0070】:ホスト側判定回路の説明・・・図7参
照 図7のA図に示したように、ホスト2の判定回路20に
は、I/Oアクセスタイミングを制御するためのハード
構成のI/Oアクセスタイミング回路29が設けてあ
る。また、ホスト2には、発振器(XTAL)30が設
けてあり、この発振器(水晶発振器:XTAL)30か
ら前記I/Oアクセスタイミング回路29と、メインC
PU10にクロック(CLK)を供給している。
【0071】前記のI/Oアクセスタイミング回路29
により、メインCPU10のI/Oライトシーケンスか
らバス4上に同一の2つのI/Oライトシーケンスを作
成し、I/O装置3が1回目のデータと2回目のデータ
の比較を行う。この処理により、I/Oライトによるデ
ータ異常を検出する事ができ、I/Oライトデータの異
常検出が可能になる。
【0072】以下、図7のB図を参照しながら動作を説
明する。図7のB図において、aは発振器30からメイ
ンCPU10と判定回路20に供給されるクロック(C
LK)、bはホスト2がI/O装置3にライトするデー
タ(I/Oライトデータ)、cはメインCPU10から
判定回路20に送出されるI/Oライト信号(IOWC
信号:I/Oライトコントロール信号)、dは1クロッ
クシフト信号(S1)、eは2クロックシフト信号(S
2)、fはIOACK(I/Oアクノーリッジ信号)、
gは1回目のライト信号、hは2回目のライト信号、i
はバス4上のIOW(I/Oライト信号)、jはバス4
上のライトデータ、kは割り込み信号IRQ(エラーの
場合)を示す。
【0073】今、aのクロックに同期してメインCPU
10からI/Oアクセスタイミング回路29に対して、
cのIOWC信号が送出され、メインCPU10からバ
ス4上にbのデータ(I/Oライトデータ)が送出され
たとする。この時、I/Oアクセスタイミング回路29
内で、前記IOWC信号を1クロック分づつ順次シフト
(遅延)させることで、dの1クロックシフト信号(S
1)を作成し、続いて、eの2クロックシフト信号(S
2)を作成する。これにより、IOWC信号を2つのラ
イト信号に分割する。
【0074】そして、I/Oアクセスタイミング回路2
9は、前記1クロックシフト信号(S1)と2クロック
シフト信号(S2)の論理和演算(OR)により、fの
IOACK信号を作成し、メインCPU10へ送出す
る。このようにして、メインCPU10から出されたI
OWC信号を後続する2つのライト信号に分割し、I/
Oアクセスタイミング回路29からバス4上に、後続す
る2つの分割したIOW(I/Oライト信号)を送出す
る。
【0075】すなわち、gの1回目のライト信号と、h
の2回目のライト信号をバス4に送出することで、バス
4上では、iのバス上のIOW(I/Oライト信号)が
得られる。そして、前記バス4上のIOWと、jのバス
上のライトデータにより、I/O装置3にデータをライ
トする。このようにしてメインCPU10がI/O装置
3にデータをライトするが、この転送データが異常とな
った場合、I/O装置3側からkのIRQ(割り込み信
号)が送られてくる(詳細は後述する)ので、このIR
QをメインCPU10が受け取ることで、転送データの
異常を認識することができる。
【0076】:I/O装置側判定回路の説明・・・図
8参照 図8のA図に示したように、I/O装置3の判定回路2
1には、I/Oアクセスタイミングを制御するためのハ
ード構成のI/Oアクセスタイミング回路32と、レジ
スタ35、レジスタ36と、排他的論理和回路(EX−
OR)33と、NAND回路(論理積反転回路)34
と、NOT回路(反転回路)42が設けてある。I/O
装置3では、前記判定回路21により、ホスト2からの
転送データの異常を判定するようになっている。以下、
図8のB図を参照しながら詳細な動作を説明する。
【0077】図8のB図において、aはバス4上のIO
W(I/Oライト信号)、bは1/2回目選択信号(S
EL:IOWの立ち上がりトグルで得られる信号)、c
は1回目ライトパルス(W1=IOW or SELの
反転信号)、dは2回目ライトパルス(W2)、eはレ
ジスタ35の出力、fはレジスタ36の出力、gは割り
込み信号IRQ(エラーの場合)を示す。
【0078】前記のようにしてホスト2がバス4上にI
OW(I/Oライト信号)を送出すると、この信号をI
/O装置3の判定回路21に取り込む。この場合、I/
Oアクセスタイミング回路32がaのIOWを取り込
み、bの1/2回目選択信号を作成し、この信号により
cの1回目ライトパルス(W1)とdの2回目ライトパ
ルス(W2)を作成する。
【0079】そして、前記1回目ライトパルス(W1)
はレジスタ35へ送出し、2回目ライトパルス(W2)
はレジスタ36へ送出する。そのため、1回目ライトパ
ルス(W1)によりレジスタ35にバス4上のデータが
取り込まれ、2回目ライトパルス(W2)によりレジス
タ36にバス4上のデータが取り込まれる。
【0080】この時、レジスタ35のデータとレジスタ
36のデータがEX−OR33へ送られ、該EX−OR
33において排他的論理和演算が行われ、その結果の信
号がNAND回路34へ送られる。そして、NAND回
路34において、前記EX−OR33の出力と、前記W
2からNOT回路42により反転された信号との論理積
反転演算が行われ、該AND回路34の出力をIRQ信
号としてホスト2へ送出する。
【0081】この場合、レジスタ35のデータとレジス
タ36のデータが一致していれば、EX−OR33の出
力はローレベルLとなり、NAND回路34の出力(I
RQ)はハイレベルHとなってデータが正常であること
を示す。しかし、レジスタ35のデータとレジスタ36
のデータが不一致であれば、EX−OR33の出力はハ
イレベルHとなり、NAND回路34の出力(IRQ)
はローレベルLとなってデータが異常(エラー)である
ことを示す。この場合、NAND回路34からバス4上
に、ローレベルL(エラー)のIRQ信号が送出され、
ホスト2のメインCPU10へ割り込みを行う。
【0082】§6:例5の説明 (1) :例5の処理概要 例5は、ホスト2がI/O装置3のDMAレジスタ15
と、訂正子レジスタ22からデータをリード(I/Oリ
ード)する時、ホスト2では、メインCPU10のI/
Oリードシーケンスからバス4上に同一の2つのI/O
リードシーケンスを後続作成し、ホスト2のメインCP
U10が1回目のデータと2回目のデータの比較を行
い、I/Oリードによるデータ異常を検出できるように
した例である。この処理により、I/Oリードアクセス
時にも、転送データ(DMA転送情報、訂正子)の異常
検出が可能になる。
【0083】すなわち、前記例3のテストDMA転送
で、前記例1、例2のDMA転送が可能と判断した場
合、I/O装置3のDMAレジスタ15又は訂正子レジ
スタ22からDMA転送情報又は転送データの訂正子を
読み出すホスト2のI/Oリードシーケンスで、ハード
ウェア(判定回路20)により同一のI/Oリードシー
ケンスを後続作成する。そして、ホスト2のメインCP
U10は、前記複数の同一I/Oリードシーケンスによ
り2回に渡り転送されたリードデータを比較してエラー
か否かを判定する。このようにすれば、DMAデータ転
送でないI/Oリードアクセス時にもデータ(DMA転
送情報や、訂正子)の異常検出が可能となる。
【0084】なお、前記I/Oリードシーケンスでは、
2つのI/Oリードシーケンスを後続作成しているが、
このような例に限らず、3つ以上の任意数のI/Oリー
ドシーケンスを作成しても良い。
【0085】(2) :詳細な説明・・・図10参照 図10のA図に示したように、ホスト2の判定回路20
には、I/Oアクセスタイミングを制御するためのハー
ド構成のI/Oアクセスタイミング回路29と、レジス
タ38、レジスタ39と、EX−OR回路(排他的論理
和回路)40と、NAND回路(論理積反転回路)41
と、NOT回路(反転回路)42が設けてある。また、
ホスト2には、発振器(水晶発振器:XTAL)30が
設けてあり、この発振器30から前記I/Oアクセスタ
イミング回路29と、メインCPU10にクロック(C
LK)を供給している。前記構成により、ホスト2では
前記判定回路20により、I/O装置3からの転送デー
タの異常を判定するようになっている。以下、図10の
B図を参照しながら詳細な動作を説明する。
【0086】図10のB図において、aは発振器30か
らメインCPU10と判定回路20に供給されるクロッ
ク(CLK)、bはメインCPU10から判定回路20
に送出されるI/Oリード信号(IORC信号:I/O
リードコントロール信号)、cは1クロックシフト信号
(S1)、dは2クロックシフト信号(S2)、eはI
OACK信号(I/Oアクノーリッジ信号)、fは1回
目リード信号(RR1=IORC or S1の反転信
号)、gは2回目リード信号(RR2=IORC or
S2)、hはバス4上のI/Oリード信号(IOR=
1回目リード信号+2回目リード信号)、iはバス4上
のデータ(DATA1、DATA2)、kは割り込み信
号IRQ(エラーの場合)を示す。
【0087】今、aのクロックに同期してメインCPU
10からI/Oアクセスタイミング回路29に対してb
のIORC信号が送出されると、I/Oアクセスタイミ
ング回路29内で、前記IORC信号を1クロック分づ
つ順次シフト(遅延)させ、cの1クロックシフト信号
(S1)、dの2クロックシフト信号(S2)を作成す
る。これにより、IORC信号を2つに分割する。
【0088】そして、I/Oアクセスタイミング回路2
9は、前記1クロックシフト信号(S1)と2クロック
シフト信号(S2)の信号の論理和演算(OR)によ
り、eのIOACK信号を作成し、メインCPU10へ
送る。このようにして、メインCPU10から出された
IORC信号を2つの信号に分割し、I/Oアクセスタ
イミング回路29からバス4上に、2つの分割したIO
R(I/Oリード信号)を送出する。
【0089】そして、前記2つに分割したI/Oリード
信号によりI/O装置3から2回に渡りデータをリード
する。すなわち、fの1回目リード信号RR1によりi
のDATA1をバス4上に読み出し、gの2回目リード
信号RR2によりiのDATA2をバス4上に読み出
す。
【0090】この時、I/Oアクセスタイミング回路2
9から出力されるRR1信号とRR2信号により、バス
4上のデータ(リードデータ)をレジスタ38、39に
取り込む。そして、レジスタ38のデータとレジスタ3
9のデータがEX−OR回路40へ送られ、該EX−O
R回路40において排他的論理和演算が行われ、その結
果の信号がNAND回路41へ送られる。そして、NA
ND回路41において、前記EX−OR回路40の出力
と、前記RR2からNOT回路42により反転された信
号との論理積演算が行われ、該NAND回路41の出力
をIRQ信号としてメインCPU10へ送出する。
【0091】この場合、レジスタ38のデータとレジス
タ39のデータが一致していれば、EX−OR回路40
の出力はローレベルLとなり、NAND回路41の出力
(IRQ)はハイレベルHとなってデータが正常である
ことを示す。しかし、レジスタ38のデータとレジスタ
39のデータが不一致であれば、EX−OR回路40の
出力はハイレベルHとなり、NAND回路41の出力
(IRQ)はローレベルLとなってデータが異常(エラ
ー)であることを示す。このようにしてNAND回路4
1の出力を割り込み信号としてメインCPU10に対し
て割り込みを行う。
【0092】§7:具体例による例1〜例5全体の説明
・・・図2参照 以下、図2を参照しながら、具体例による前記例1〜例
5全体の処理を説明する。
【0093】(1) :テストDMA転送時の説明 この具体例では、前記例3のテストDMA転送により、
前記例1、例2、例4、例5の実施が可能か否かを判定
する。例えば、前記例1の実施として、訂正子にはBC
Cコード(データの排他的論理和)を使用する。また、
DMAリード時には、I/O装置3のサブCPU12
は、訂正子レジスタ22に、I/O装置3が計算した訂
正子と、転送元の訂正子を論理積演算し、訂正子レジス
タ22に返却するものとする。
【0094】電源投入時や、装置のリセット時に、前記
例3で説明したテストDMA転送を実施するが、この場
合、特定のデータパターン(例えば、1248H,24
86H)と、その訂正子をAAAAH(36CE以外の
データ)として、DMAリードを起動する。この時、前
記例1が有効なI/O装置3は、訂正子が36CEH以
外なので、訂正子レジスタ22は、(36CEH EO
R AAAAH)9C64Hとなるはずであり、このデ
ータを確認する。
【0095】この例では、前記テストDMA転送によ
り、前記例1、例2、例4、例5の処理が実施可能なI
/O装置3であることをホスト2のメインCPU10が
認識する。以下、このテストDMA転送について、更に
詳細に説明する。
【0096】(a) :電源投入時、又はリセット時の1回
目のDMA転送は、予めテストパターンデータ(124
8H,2486H)と、通常の訂正データ(排他的論理
和=36CEH)とは異なる訂正子データ(AAAA
H)をホスト2が用意し、テストDMAリード(説明は
後述する)を行う。
【0097】(b) :DMA起動後、I/O装置3のサブ
CPU12はDMAレジスタ15に、転送先アドレス
と、転送長を元に、転送済みデータ(1248H,24
86H)と、訂正子レジスタ22の値(AAAAH)
を、排他的論理和して(データ検証して)その結果を書
き込み、ホスト2は、訂正子レジスタ22のデータをリ
ードして、リードした値が9C64H(1248Hと、
2486Hと、AAAAHの排他的論理和)である事を
期待する。
【0098】(c) :ホスト2は、訂正子レジスタ22の
値が、9C64Hである事を確認すると、前記例1、
2、4、5が実行可能な装置と認識する。なお、訂正子
レジスタ22の値が一致しない場合は、I/O装置3が
例1、2、4、5の実行ができない、従来のI/O装置
である為、ホスト2は、従来のDMAを実行する。
【0099】(d) :通常のDMAアクセスを行う場合、
DMAレジスタ15に、前記例4、5によるI/Oリー
ド/ライトを行い、I/Oアクセス中にデータが異常の
場合は、前記判定回路20、21によりホスト2に割り
込みを上げ、I/Oアクセス中のデータが異常である事
をホスト2のメインCPU10に通知する。
【0100】(e) :DMAリード時は、ホスト2のメモ
リ11に転送元データが用意されており、回線データを
送信する場合のホスト2のメモリデータと、I/O装置
3のメモリデータの転送について解明する。そして、D
MAレジスタ15に転送元アドレス、転送先アドレス、
転送長をライトし、ホスト2のメインCPU10が、転
送元データの排他的論理和を計算し、訂正子レジスタ2
2に結果をライトし、DMAコマンドをライトする。そ
して、ホスト2は、DMAリードコマンドを発行する。
【0101】(f) :I/O装置3のサブCPU12は、
ホスト2のDMAリードコマンドを認識した場合、DM
AC16に対してDMAリードの起動をかけ、DMAC
16からのDMA終了ステータスにより、DMAが終了
した事を認識する。
【0102】(g) :I/O装置3のサブCPU12は、
転送先アドレスから、転送長分のデータと、訂正子レジ
スタ22の内容を排他的論理和し、計算結果を訂正子レ
ジスタ22に書き込み、割り込みによりDMAリードが
終了した事をホスト2に通知する。
【0103】(h) :ホスト2は、I/O装置3からの割
り込みによって、DMAリードが終了した事を認識し、
訂正子レジスタ22の値が「0」であるか否かを認識す
る。そして、「0」の場合は、ホスト2が計算した訂正
子と、I/O装置3が計算した訂正子が一致した事を知
り、DMAデータ転送が正常に終了した事を認識する。
一致しなかった場合は、DMAリード時にデータエラー
(データ化け)が発生したとして、ホスト2のメインC
PU10は、異常処理(システムダウン等)を実行す
る。
【0104】(i) :DMAライト時は、I/O装置3の
メモリデータをホスト2に転送する場合で、回線制御部
14からI/O装置3のメモリ13に回線から受信した
データをホスト2に転送する場合である。I/O装置3
は、回線制御部14から受信データがある事を認識する
と、ホスト2に、DMAライト要求があるとの割り込み
を上げる。ホスト2は、これを受けてDMAレジスタ1
5に、転送元アドレス、転送先アドレス、転送長、DM
Aライトコマンドを書き込む。
【0105】(j) :I/O装置3はDMAライトコマン
ドを受け取ると、転送元アドレスと、転送長を元に、排
他的論理和を計算し、訂正子レジスタ22に計算結果を
書き込んだ後、DMAC16に対してDMAライトを起
動する。
【0106】(k) :I/O装置3はDMAC16のステ
ータスにより、DMAライトが終了した事を認識後、ホ
スト2にDMAライトが終了した事を通知する。 (l) :ホスト2は割り込みによりDMAライトが終了し
た事を認識し、転送先データと、訂正子レジスタ22の
値の排他的論理和の値が、「0」であるか否かを確認す
る。「0」の場合は、ホスト2が計算した訂正子と、I
/O装置3が計算した訂正子が一致した事を示し、DM
Aデータ転送が正常に終了した事を認識する。
【0107】一致しなかった場合は、DMAリード時に
データエラー(データ化け)が発生していたとして、ホ
スト2のメインCPU10は、異常処理(システムダウ
ン等)を実行する。
【0108】(m) :なお、本実施の形態では、訂正子を
排他的論理和としたが、ECCコードを使用した場合
は、エラーデータの訂正も可能である。 (2) :DMA転送情報、及び訂正子のライト/リード時
の説明 ホスト2がDMAレジスタ15、又は訂正子レジスタ2
2にI/Oライト(DMA転送情報や訂正子のライト)
を行う場合、ホスト2のメインCPU10のI/Oライ
トシーケンスからバス4上に同一の2つのI/Oライト
シーケンスを作成し、I/O装置3のサブCPU12が
1回目のデータと2回目のデータの比較を行い、I/O
ライトによるデータ異常がある場合は、ホスト2のメイ
ンCPU10に割り込みを上げ、異常検出する。
【0109】また、ホスト2がDMAレジスタ15、又
は訂正子レジスタ22に対してI/Oリード(DMA転
送情報や訂正子のリード)を行う場合、ホスト2側のメ
インCPU10のI/Oリードシーケンスからバス4上
に同一の2つのI/Oリードシーケンスを作成し、ホス
ト2側が1回目のデータと2回目のデータの比較を行
い、I/Oリードによるデータ異常がある場合は、割り
込みを上げて異常を通知する。以下、I/Oアクセスは
全て同様に行うものとする。
【0110】(3) :DMAライト時の説明 I/O装置3がDMAライトを行う場合、ホスト2は、
I/OアクセスによりDMAレジスタ15に、DMA転
先、及び転送元のメモリ転送アドレス、転送長、DMA
コマンドを格納する。I/O装置3は、DMA転送開始
前に、予めDMA転送元データの訂正子を計算して訂正
子レジスタ22に書き込み、DMAC16にDMAライ
トを起動する。
【0111】I/O装置3はDMAC16のステータス
により、DMAが終了した事を認識すると、ホスト2に
対してDMA転送終了の割り込みを通知する。その後、
ホスト2は転送先データと訂正子レジスタ22のリード
内容を元に、計算を行って転送データの正当性を確認す
る。ホスト2は、この計算結果により、転送データに異
常があったかをホスト2は認識できる。
【0112】(4) :DMAリード時の説明 I/O装置3がDMAリードを行う場合、ホスト2側は
I/Oアクセスにより、DMAレジスタ15にDMAの
転送先、及び転送元のメモリ転送アドレス、転送長、D
MAコマンドを格納する。この時、ホスト2側は、予め
転送元のDMA転送データの訂正子を訂正子レジスタ2
2にライトする。
【0113】I/O装置3は、DMAC16に対してD
MAリードを起動する。I/O装置3は、DMAC16
のステータスによりDMAリードが終了した事を認識す
ると、転送先データと訂正子レジスタ22の内容を元に
計算する。I/O装置3側は、前記計算結果により転送
データに異常があった場合、ホスト2側に対して異常割
り込みを発生させる。また、DMA転送終了が正常であ
つた場合は、正常割り込みとして通知する事ができる。
【0114】§8:記録媒体とプログラムの説明 前記装置が行う前記例1〜例5の処理は、装置本体1内
のホスト2、及びI/O装置3が、メインCPU10、
或いはサブCPU12内のプログラムを実行することに
より行うが、このような例に限らず、次のようにしても
実現できる。
【0115】例えば、装置本体1にはハードディスク装
置24が設けてあり、このハードディスク装置24の記
録媒体(ハードディスク)に、前記例1〜例5の処理を
実現するためのプログラムやその他のデータを格納して
おく。そして、前記例1〜例5の処理を行う場合は、例
えば、メインCPU10の制御によりハードディスク装
置24の記録媒体に格納されている前記プログラムやデ
ータを読み出して、一旦、メモリ11、及びメモリ13
に格納する。
【0116】その後、メインCPU10、及びサブCP
U12がメモリ11、メモリ13に格納してあるプログ
ラムの内、必要なプログラムから順次読み出して実行す
ることにより、前記例1〜例5の処理を行う。なお、前
記ハードディスク装置24の記録媒体に格納するプログ
ラムは、次のようにして記録(記憶)する。
【0117】:フレキシブルディスク(フロッピィデ
ィスク)に格納されているプログラム(他の装置で作成
したプログラムデータ)を、装置本体1に接続したフレ
キシブルディスクドライブ(FDD)25により読み取
り、ハードディスク装置24の記録媒体(ハードディス
ク)に格納する。
【0118】:光磁気ディスク、或いはCD−ROM
等の記憶媒体に格納されているデータを、装置本体1の
ドライブ装置(CD−ROMドライブ26等)により読
み取り、ハードディスク装置24の記録媒体(ハードデ
ィスク)に格納する。
【0119】:LAN等の通信回線を介して他の装置
から伝送されたプログラム等のデータを、ホスト2が通
信制御部(図示省略)を介して受信し、そのデータをハ
ードディスク装置24の記録媒体(ハードディスク)に
格納する。
【0120】
【発明の効果】以上説明したように、本発明によれば次
のような効果がある。 (1) :バス上にパリティビット等の異常検出/訂正情報
を持たない装置において、該バス上に配置されたホスト
とI/O装置との間でDMA転送を行う場合、DMA転
送長の変更無しで訂正子付DMA転送が可能となり、D
MA転送データの信頼性が向上する。
【0121】(2) :本発明のDMA転送が不要な場合
は、ホストのアプリケーション、I/O装置のファーム
ウェアが、訂正子を全く意識しないため、本発明によら
ないで開発した既存のアプリケーションや、ハードウェ
アに全く影響を受けずに、既存資産(ハードウェア/ソ
フトウェア)の継承が可能となる。
【0122】(3) :本発明によるDMAデータ転送の機
能の有無が自動的に識別できるので、従来のアプリケー
ションや、I/O装置のファームウェアを全く変更せず
に動作が可能である。
【0123】(4) :I/O装置のレジスタ(DMAレジ
スタ、訂正子レジスタ)のリード/ライト(DMA転送
データ以外のデータのリード/ライト)においても、デ
ータ転送時の異常データの検出が可能となり、レジスタ
アクセスにおいてのデータの信頼性が向上する。
【0124】前記効果の他、各請求項に対応して次のよ
うな効果がある。 (5) :請求項1では、I/O装置側訂正子書き込み手段
はI/O装置からホストへDMAによりデータ転送(D
MAライト)を行う際、予め、DMA転送データの訂正
子を計算して訂正子レジスタに書き込む。そして、DM
A転送後、ホストが転送データと訂正子レジスタ内の訂
正子を比較し、I/O装置からのデータの正当性を確認
する。
【0125】このようにすれば、パリティビット等の異
常検出/訂正情報を持たないバス上に配置されたI/O
装置がホストにDMA転送(DMAライト)した場合、
DMA転送長の変更がないため、ソフトウェアの変更が
最小で、DMA転送データの異常検出/訂正が可能にな
る。
【0126】(6) :請求項2では、ホスト側訂正子書き
込み手段はDMAによりホストからI/O装置へデータ
転送(DMAリード)を行う際、予め、前記DMA転送
データの訂正子を計算して訂正子レジスタに書き込む。
そして、DMA転送後、I/O装置が転送データと訂正
子レジスタ内の訂正子を比較し、ホスト側からのデータ
の正当性を確認し、結果を訂正子レジスタにライトす
る。
【0127】ホスト側は訂正子レジスタの結果により、
I/O装置へのDMA転送が正常に転送できたかを確認
する。従って、ホストからI/O装置へのDMA転送時
に、DMA長を変更することなく、DMAリード転送が
可能になり、従来のパリティ等の異常検出/訂正ビット
を持たない装置でも、データの異常検出/訂正が可能に
なる。
【0128】また、I/O装置が訂正子レジスタを持た
ない装置でも、アプリケーションが、訂正子レジスタの
存在を無視すれば、従来と全く変わりないデータ転送が
可能であり、旧アプリケーションは、全く変更無しで従
来のDMAリード動作が可能になる。
【0129】(7) :請求項3では、テストDMA制御手
段はテスト用訂正子書き込み手段が訂正子レジスタにテ
スト用訂正子を書き込んだ後、ホストとI/O装置間で
テストDMA転送(DMAライト/DMAリード)を行
わせて、DMAエラーとなるか否かにより、前記請求項
1、または請求項2のDMAデータ転送が可能か否かを
判断する。
【0130】すなわち、初期動作時(例えば、電源投入
時)にテストDMA転送を行い、訂正子レジスタに、転
送データの訂正子と異なるデータをライトし、DMAエ
ラーとなるか否かにより、前記請求項1、2のDMAデ
ータ転送が可能か否かを認識する。そして、自動的に、
前記請求項1、2のDMA転送が可能な場合は、請求項
1、2のDMA転送を実行し、不可能な場合は、従来の
アプリケーションや、ハードウェアの変更無しで従来の
DMA転送を実施する。
【0131】このように、前記請求項1、2のDMA転
送が不可能な場合は従来のDMA転送を行うため、従来
のDMA転送しかできない装置でも、ホストのアプリケ
ーション、I/O装置のファームウェアに影響を与えな
いため、既存資産の継承が可能である。
【0132】(8) :請求項4では、複数ライトシーケン
ス作成手段はテストDMA制御手段によるテストDMA
転送でDMAデータ転送が可能と判断した場合、ホスト
からI/O装置のDMAレジスタ又は訂正子レジスタに
対してDMA転送情報又は転送データの訂正子を書き込
むホストのI/Oライトシーケンスで、ハードウェアに
より同一のライトシーケンスを後続作成する。そして、
I/O装置側判定手段は、前記複数の同一ライトシーケ
ンスにより複数回に渡り転送されたライトデータを比較
してエラーか否かを判定する。
【0133】このようにすれば、DMAデータ転送でな
いI/Oライトアクセス時にも、データ(DMA転送情
報や、訂正子)の異常検出が可能となる。 (9) :請求項5では、複数リードシーケンス作成手段は
テストDMA制御手段によるテストDMA転送で、DM
A転送が可能と判断した場合、I/O装置のDMAレジ
スタ又は訂正子レジスタからDMA転送情報又は転送デ
ータの訂正子を読み出すホストのI/Oリードシーケン
スで、ハードウェアにより同一のリードシーケンスを後
続作成する。そして、ホスト側判定手段は、前記複数の
同一リードシーケンスにより複数回に渡り転送されたリ
ードデータを比較してエラーか否かを判定する。
【0134】このようにすれば、DMAデータ転送でな
いI/Oリードアクセス時にも、データ(DMA転送情
報や、訂正子)の異常検出が可能となる。 (10):請求項6では、情報処理装置が記録媒体のプログ
ラムを読み出して実行することにより、I/O装置から
ホストへDMAによりデータ転送を行う際、予め、転送
データの訂正子を計算してI/O装置の訂正子レジスタ
に書き込む。
【0135】このようにすれば、パリティ等の異常検出
/訂正情報を持たないバス上に配置されたI/O装置
が、ホストにDMA転送(DMAライト)した場合、D
MA転送長の変更がないため、ソフトウェアの変更が最
小で、DMA転送データの異常検出/訂正が可能にな
る。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明の実施の形態における装置の説明図であ
る。
【図3】本発明の実施の形態における例1の説明図であ
る。
【図4】本発明の実施の形態における例2の説明図であ
る。
【図5】本発明の実施の形態における例3の説明図であ
る。
【図6】本発明の実施の形態における例4の説明図(そ
の1)である。
【図7】本発明の実施の形態における例4の説明図(そ
の2)である。
【図8】本発明の実施の形態における例4の説明図(そ
の3)である。
【図9】本発明の実施の形態における例5の説明図(そ
の1)である。
【図10】本発明の実施の形態における例5の説明図
(その2)である。
【図11】従来例の説明図である。
【符号の説明】
1 装置本体 2 ホスト 3 I/O装置(入出力装置) 4 バス 10 メインCPU 11、13 メモリ 12 サブCPU 14 回線制御部 15 DMAレジスタ 16 DMAC(ダイレクトメモリアクセスコントロー
ラ) 20、21 判定回路 22 訂正子レジスタ 24 HDD(ハードディスク装置) 25 FDD(フレキシブルディスクドライブ) 26 CD−ROMドライブ 29、32 I/Oアクセスタイミング回路 30 発振器 33、40 EX−OR回路(排他的論理和回路) 34、41 NAND回路(論理積反転回路) 35、36、38、39 レジスタ 42 NOT回路(反転回路)

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】転送データの異常検出/訂正情報を持たな
    いバス上に、I/O装置とホストを配置し、前記I/O
    装置にDMA転送情報を格納するDMAレジスタを備え
    て、ホストからもアクセス可能にした情報処理装置にお
    いて、 前記I/O装置は、転送データの訂正子を格納する訂正
    子レジスタを備えると共に、 I/O装置からホストへDMAによりデータ転送を行う
    際、予め、前記DMA転送データの訂正子を計算して前
    記訂正子レジスタに書き込むI/O装置側訂正子書き込
    み手段を備えていることを特徴とした情報処理装置。
  2. 【請求項2】転送データの異常検出/訂正情報を持たな
    いバス上に、I/O装置とホストを配置し、前記I/O
    装置にDMA転送情報を格納するDMAレジスタを備え
    て、ホストからもアクセス可能にした情報処理装置にお
    いて、 前記I/O装置は、転送データの訂正子を格納する訂正
    子レジスタを備え、 前記ホストは、DMAによりホストからI/O装置へデ
    ータ転送を行う際、予め、前記DMA転送データの訂正
    子を計算して前記訂正子レジスタに書き込むホスト側訂
    正子書き込み手段を備えていることを特徴とした情報処
    理装置。
  3. 【請求項3】前記DMA転送データの訂正子と異なるテ
    スト用訂正子を前記訂正子レジスタに書き込むテスト用
    訂正子書き込み手段と、 前記テスト用訂正子書き込み手段が、前記訂正子レジス
    タにテスト用訂正子を書き込んだ後、前記ホストとI/
    O装置間でテストDMA転送を行わせて、DMAエラー
    となるか否かにより、前記DMAデータ転送が可能か否
    かを判断するテストDMA制御手段を備えていることを
    特徴とした請求項1又は2記載の情報処理装置。
  4. 【請求項4】前記ホストは、前記テストDMA制御手段
    によるテストDMA転送で、前記DMAデータ転送が可
    能と判断した場合、ホストからI/O装置のDMAレジ
    スタ又は訂正子レジスタに対してDMA転送情報又は転
    送データの訂正子を書き込むホストのI/Oライトシー
    ケンスで、ハードウェアにより同一のライトシーケンス
    を後続作成する複数ライトシーケンス作成手段を備え、 前記I/O装置は、前記複数の同一ライトシーケンスに
    より複数回に渡り転送されたライトデータを比較してエ
    ラーか否かを判定するI/O装置側判定手段を備えてい
    ることを特徴とした請求項3記載の情報処理装置。
  5. 【請求項5】前記ホストは、前記テストDMA制御手段
    によるテストDMA転送で、前記DMA転送が可能と判
    断した場合、I/O装置のDMAレジスタ又は訂正子レ
    ジスタからDMA転送情報又は転送データの訂正子を読
    み出すホストのI/Oリードシーケンスで、ハードウェ
    アにより同一のリードシーケンスを後続作成する複数リ
    ードシーケンス作成手段を備えると共に、 前記複数の同一リードシーケンスにより複数回に渡り転
    送されたリードデータを比較してエラーか否かを判定す
    るホスト側判定手段を備えていることを特徴とした請求
    項3記載の情報処理装置。
  6. 【請求項6】転送データの異常検出/訂正情報を持たな
    いバス上に、I/O装置とホストを配置し、前記I/O
    装置にDMA転送情報を格納するDMAレジスタを備え
    て、ホストからもアクセス可能にした情報処理装置に、 I/O装置からホストへDMAによりデータ転送を行う
    際、予め、転送データの訂正子を計算してI/O装置の
    訂正子レジスタに書き込む手順を実行させるためのプロ
    グラムを記録したコンピュータ読み取り可能な記録媒
    体。
JP10127155A 1998-05-11 1998-05-11 情報処理装置及び記録媒体 Pending JPH11328046A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10127155A JPH11328046A (ja) 1998-05-11 1998-05-11 情報処理装置及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10127155A JPH11328046A (ja) 1998-05-11 1998-05-11 情報処理装置及び記録媒体

Publications (1)

Publication Number Publication Date
JPH11328046A true JPH11328046A (ja) 1999-11-30

Family

ID=14953002

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10127155A Pending JPH11328046A (ja) 1998-05-11 1998-05-11 情報処理装置及び記録媒体

Country Status (1)

Country Link
JP (1) JPH11328046A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357000A (ja) * 2000-06-13 2001-12-26 Hitachi Telecom Technol Ltd 記憶装置
JP2015212969A (ja) * 2015-07-09 2015-11-26 トヨタ自動車株式会社 情報処理装置およびdmaコントローラの動作確認方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357000A (ja) * 2000-06-13 2001-12-26 Hitachi Telecom Technol Ltd 記憶装置
JP2015212969A (ja) * 2015-07-09 2015-11-26 トヨタ自動車株式会社 情報処理装置およびdmaコントローラの動作確認方法

Similar Documents

Publication Publication Date Title
US6243829B1 (en) Memory controller supporting redundant synchronous memories
TWI553650B (zh) 以記憶體控制器來處理資料錯誤事件之方法、設備及系統
EP3734466A1 (en) Apparatus, systems, and methods to detect and/or correct bit errors using an in band link over a serial peripheral interface
US20070240018A1 (en) Functional level reset on a per device/function basis
JP2001236304A (ja) マイクロコンピュータ
EP1714214A1 (en) An apparatus and method for maintaining data integrity following parity error detection
US10777296B2 (en) Information handling system and method to dynamically detect and recover from thermally induced memory failures
CN113778328B (zh) 在半导体封装之间引导控制数据
US11880289B2 (en) Auto-detection of interconnect hangs in integrated circuits
JP2005149501A (ja) Dmaを使用して拡張カードでメモリをテストするためのシステムおよび方法
JPH11328046A (ja) 情報処理装置及び記録媒体
US20220107866A1 (en) Fast memory ecc error correction
JPH07129427A (ja) Eccコードによるデータの比較チェック方法
US11023244B2 (en) System, apparatus and method for recovering link state during link training
JP2002312416A (ja) メモリ制御回路の論理検証装置及び方法
KR100393982B1 (ko) 원격데이터집중장치와데이터전송방법
JPH10198524A (ja) ハードディスク制御装置
US11604709B2 (en) Hardware control path redundancy for functional safety of peripherals
JP4977324B2 (ja) バスシステム、バス接続機器、及び、リセット方法
US7225284B2 (en) Increasing the quantity of I/O decode ranges using SMI traps
JPH0981502A (ja) コンピュータシステム
CN114443558A (zh) 一种可控ep传输数据的方法、装置及介质
JP2001273200A (ja) コンピュータシステム
JPH0981465A (ja) 主記憶制御装置
JPH11232206A (ja) 入出力制御回路

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040628

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040701

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20041105