JP3703439B2 - データ転送制御装置及び方法 - Google Patents
データ転送制御装置及び方法 Download PDFInfo
- Publication number
- JP3703439B2 JP3703439B2 JP2002076147A JP2002076147A JP3703439B2 JP 3703439 B2 JP3703439 B2 JP 3703439B2 JP 2002076147 A JP2002076147 A JP 2002076147A JP 2002076147 A JP2002076147 A JP 2002076147A JP 3703439 B2 JP3703439 B2 JP 3703439B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- buffer memory
- ata
- host controller
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Description
【発明の属する技術分野】
本発明は、データ転送制御装置及び方法にかかり、特に、上位ホストがハードディスクなどのデバイスからデータを読み出すと共に、当該デバイスからの割り込み信号を受け付けるよう、データ転送制御する装置及び方法に関する。
【0002】
【従来の技術】
近年のデータ転送を行うインタフェースは、転送量の増加により高速化に対応した規格に移行している。これらのインタフェースを制御するホスト側では、かかるデータ転送をCPUにより制御するが、データ転送の高速化によりホストで行っている転送制御処理の影響によるデータ転送スループット(コンピュータが単位時間内に処理できるジョブ(仕事)の量)の低下が無視できなくなってきた。
【0003】
これを、図8乃至図13を参照して説明する。図8乃至図10は、従来例におけるデータ転送制御装置の一例を示す図であり、図11乃至図13は、従来例の他の例を示す図である。そして、図8は、従来例の一例における装置の構成を示すブロック図であり、図9は、その動作を示すフローチャートを示す。図10は、図8に開示した従来例の一例における信号の動作を示すタイミングチャートである。また、図11は、従来例の他の例における装置の構成を示すブロック図であり、図12は、その動作を示すフローチャートである。図13は、図11に開示した従来例におけるデータ転送装置の信号の動作を示すタイミングチャートである。
【0004】
図8に示すように、パーソナルコンピュータなどの上位ホストであるのLSI1には、制御装置としてのCPU10と、ハードディスクやCD−ROMドライブなどのATA/ATAPIデバイス2の動作を制御するATAホストコントローラ3とが備えられている。そして、CPU10の指令にて、デバイス内の記憶媒体から、ATAホストコントローラ3を介してデータを読み出す処理、すなわち、データ転送処理が実行される。
【0005】
図9において、処理A1から処理A6、及び処理A8は、LSI1内部に構成されたATAホストコントローラ3に対するCPU10からの制御処理を示している。またB1、B2、B7は上記ATAホストコントローラ3の動作処理を示している。ここで、本発明におけるデータ転送とは、特に上位ホスト1が、所定のデバイス2からデータを読み出すときのデータ転送である。
【0006】
処理A1は、CPU10が、データ転送における開始セクタ番号やセクタサイズ、データサイズ、モードなどのデータ転送に必要なパラメータを、データ転送処理を行うATA/ATAPIデバイス2に対して設定する処理を示している。処理A2は、CPU10が、転送を行うATA/ATAPIデバイス2への転送における、データサイズ、モードなどのデータ転送に必要なパラメータを、ATAホストコントローラ3へ設定する処理を示している。処理A3は、CPU10が処理A1により設定されたパラメータによって、実際の転送処理の開始を指示するコマンドを、ATAホストコントローラ3を介してATA/ATAPIデバイス2に書き込む処理を示している。処理A4は、処理A3の処理に対して、デバイス2が正常に転送処理の開始を受け付けたか否かを、処理対象のATA/ATAPIデバイス2へ確認する処理である。処理A5は、ATAホストコントローラ3にデータ読み出しを開始するよう、当該ATAホストコントローラ3をデータ転送モード(リードモード)に設定する処理を示している。
【0007】
そして、CPU10がATAホストコントローラ3を介してATAデバイス2からデータを読み出している最中に、処理A6に示すように、ATA/ATAPIデバイス2からの割込み信号の検出を行う。このとき、ATAデバイス2からは、当該ATA/ATAPIデバイス2がATAホストコントローラ3に読み出し予定容量のデータを全て転送した後に、割り込み信号を出力する。処理A8は、転送されたデータがATAホストコントローラ3に敷設されたバッファメモリ6の中にあるか否か、すなわち、バッファメモリ6の状態を示すレジスタの値を読み出す処理を示す。このとき、処理A8での処理の結果、バッファメモリ6の状態が空になったかどうかを処理9にて判定し、空であると判断したときに上記割り込み処理を許容する(図示せず)。そして、転送終了処理が行われる。
【0008】
また、ATAホストコントローラ3では、まず処理B1に示すように、CPU10からの処理A5を受けて、自己の動作をデータ転送モードに切り換える。すなわち、ATAホストコントローラ3がデータ転送モードへ切り替わる。そして、処理B2で、ATA/ATAPIデバイス2に対してATAプロトコルに従ってデータの読み出しであるデータ転送処理を行う。その後、処理A2に設定されたデータサイズとなるまで処理B2の処理を繰り返す判定を処理B7にて行う。このようにして、ホストであるLSI1は、ATA/ATAPIデバイス2からデータを読み出している。
【0009】
【発明が解決しようとする課題】
しかしながら、上記従来技術では、以下のような不都合があった。すなわち、処理A9にて、ATAホストコントローラ3のバッファメモリ6の状態が空になった事を認識するまで、CPU10がATAホストコントローラ3に対し処理A8と処理A9を繰り返すポーリング処理により、データ転送速度の低下が発生するという問題が生じる。すなわち、図10のタイミングチャートに示すように、上記ポーリング処理により、CPUバス9のデータ信号17にサイクルD8が伴うため、当該サイクルD8とデータ転送サイクルとがCPUバス9内で同時に行われ、データ転送速度の低下が起こる問題があった。
【0010】
また、上記従来例において、CPU10によるバッファメモリ6の状態のポーリング処理開始を、ATA/ATAPIデバイス2からの割込み信号発生直後ではなく、一定時間ウェイトする処理とすることも考えられる。しかし、かかる場合、ATAホストコントローラ3のバッファ6のサイズやCPUバス9の転送速度の違いにより、割込み認識からCPU10によるバッファ状態のポーリング処理開始までのタイミングを個別に設定する必要があり、ATAホストコントローラ3を他のシステムに流用した場合に処理方法がシステムにより異なってくるため、制御プログラムのポータビリティ性(移植性)が失われるという不都合がある。
【0011】
一方で、上記問題点を解決するために、上記従来例に対して、図11に示すように、ATAホストコントローラ16内に、転送終了までATA/ATAPIデバイス2へ入力されるの割込信号12をマスクする回路13を敷設するという手段が採られている。そして、バッファ6メモリから出力される当該バッファが空であることを示すEMPTY信号14(図11参照)により、ATA/ATAPIデバイス2から出力される割込信号12を制御する。すなわち、図13におけるATAバスからの割込信号12をATAホストコントローラ内部信号のFIFO空信号19が”H”である場合に、CPUバス9への割込信号20を出力するようにする。従って、図12における、割込み信号をマスクする処理B10と処理B4の後に割込み信号12のマスクを解除する処理B11の制御が追加されることとなる。これにより、図8におけるCPU10からのATAホストコントローラ16に対するポーリング処理A8及び処理A9を抑制することができ、データ転送速度の低速化を抑制することができる。
【0012】
しかし、上記データ転送方法では、ATA/ATAPIデバイス2からの割込み信号をATAホストコントローラ16内のバッファメモリ6の状態によってマスク処理を行っている間に、データ転送エラー等によりATA/ATAPIデバイス2からの割込みが発生すると、バッファメモリ6が空になるまで割込み信号を認識できないという不都合が生じる。このため、エラーに対するCPU10の処理が遅れ、システムとしての性能を劣化させるという不都合が生じる。また、何らかの原因によりCPUバス9でのデータ転送も行われなかった場合には、割込み信号が全く認識できないという事態になり、システムがフリーズしてしまうという問題も生じる。
【0013】
【発明の目的】
本発明は、データ転送速度の低下の抑制を図ると共に、動作の安定したデータ転送制御装置及び方法を提供することをその目的とする。
【0014】
【課題を解決するための手段】
そこで、本発明では、上位ホスト自体の動作を制御する制御装置と、上位ホストに備えられた所定のデバイスの動作を制御するホストコントローラとを備え、ホストコントローラが、デバイスから読み出したデータを一時的に保持するバッファメモリを備えると共に、制御装置の指示に基づいてデバイスからデータをバッファメモリに読み出す機能を備え、制御装置が、バッファメモリに保持されたデータを読み出す機能と、デバイスがホストコントローラにデータを転送した後に出力する割り込み処理を受け付ける機能とを備えている。
そして、ホストコントローラが、当該ホストコントローラ内に備えられたバッファメモリにデバイスからあらかじめ設定された読み出し予定容量の一部を残して所定の単位量毎にデータを読み出すデータ読出制限機能と、バッファメモリ内のデータが制御装置に転送されることにより当該バッファメモリが空になったことを検出してデバイスから読み出し予定容量の残りの一部に相当するデータをバッファメモリに読み出す残余データ読出機能とを備えた、という構成を採っている(請求項1)。
【0015】
このような構成にすることにより、デバイスからホストにデータが読み出される際には、まず、読み出し予定容量の全てのデータではなく、その一部をデバイスに残してバッファメモリに読み出される。これと同時に、バッファメモリから制御装置にデータが転送される。このとき、ホストコントローラがデバイスからデータを読み出した後にバッファメモリから制御装置に転送していることや、転送速度の違いなどから、ホストコントローラがデバイスから所定量のデータの読み出しが終わっても、依然として制御装置ではバッファメモリからデータ転送が実行されていて、当該バッファメモリ内にはデータが残存している。すなわち、バッファメモリと制御装置との間でデータ転送が行われている間は、それが終了するまでホストコントローラはデバイスから残りのデータの読み出しを行わず、バッファメモリ内が空になるまで一時的に処理が停止状態となる。その後、バッファメモリ内が空になると、ホストコントローラは読み出し予定の残りのデータをデバイスからバッファメモリに読み出す。すると、バッファメモリに読み出されたデータは、容量が少ないため、迅速に制御装置に転送され、バッファメモリは再度空状態となる。
【0016】
ここで、デバイスは、読み出される予定の全てのデータ、すなわち、残りのデータをバッファメモリに転送し終えると、割り込み処理がある場合には、割り込み信号をホストコントローラを介して出力する。この場合でも、上述したようにバッファメモリほぼ空状態になっているか、あるいは、すぐに空状態となるため、制御装置にて上記割り込み処理を迅速に受け付けて処理することができる。
【0017】
また、データ読出制限機能にて、デバイスに残す一部のデータの容量を、ホストコントローラがデバイスから読み出し最小単位量とすると望ましい(請求項2)。これにより、デバイスからバッファメモリに転送される最終データが、一度の転送処理で読み出し可能な単位量のデータであるため、かかるデータがバッファメモリに一旦保持されて、その後、制御装置により一度の処理で転送される。従って、デバイスが転送予定量のデータを全て転送終了した後に、すぐに割り込み処理が出力されたとしても、バッファメモリに読み出されたデータは読み出し最小単位量であり、迅速に制御装置にて転送されて当該バッファメモリの再度空となるため、当該制御装置は迅速に割り込み処理することができる。このため、ポーリング処理の発生を抑制し、処理速度の低下を抑制することができる。
【0018】
さらに、本発明では、ホストコントローラが、デバイスから読み出したデータを一時的に保持するバッファメモリを備えると共に、制御装置の指示に基づいてデバイスからデータをバッファメモリに読み出す機能と、読み出したデータの誤り検出データであるCRC値を前記デバイスに書き込む機能とを備え、制御装置が、バッファメモリに保持されたデータを読み出す機能と、CRC値を受け取ったデバイスから出力される割り込み処理を受け付ける機能とを備えたデータ転送制御装置において、ホストコントローラが、当該ホストコントローラ内に備えられたバッファメモリにデバイスからあらかじめ設定された読み出し予定容量の全部のデータを所定の単位量毎に読み出すデータ読出機能と、バッファメモリ内のデータが制御装置に転送されることにより当該バッファメモリが空になったことを検出してCRC値を前記デバイスに対して書き込むCRC値書込機能を備えた、という構成をも採っている(請求項3)。
【0019】
このような構成にすることにより、デバイスからホストにデータが読み出される際には、まず、読み出し予定容量の全てのデータがバッファメモリに読み出される。これと同時に、バッファメモリから制御装置にデータが転送される。そして、このとき、バッファメモリ内の全てのデータが制御装置に転送されるまで、ホストコントローラはデバイスから次のデータの読み出しがあったとしてもかかる処理を行わず、バッファメモリ内が空になるまで一時的に処理が停止状態となる。その後、バッファメモリ内が空になると、CRC値がデバイスに対して書き込まれる。これを受けたデバイスは、割り込み処理がある場合には、当該割り込み処理信号を出力するが、かかる場合にはすでにバッファメモリは空状態であるため、制御装置にて上記割り込み処理を迅速に受け付けて処理することができる。
【0020】
また、本発明では、上述したデータ転送制御装置にて実現するデータ転送方法をも提供している。すなわち、上位ホスト自体の動作を制御する制御装置が、所定のデバイスの動作を制御する上位ホストに備えられたホストコントローラ内のバッファメモリを介してデバイスから所定の容量のデータを読み出すと共に、デバイスがホストコントローラにデータを転送した後に当該デバイスから発生する割り込み処理を受け付けるよう、データ転送を制御する方法であって、ホストコントローラがバッファメモリにデバイスからあらかじめ設定された読み出し予定容量の一部を残して所定の単位量毎にデータを読み出すデータ読出制限工程と、制御装置がバッファメモリに一時的に保持されたデータを所定の単位量毎に読み出すデータ転送工程と、このデータ転送工程に並列してホストコントローラがバッファメモリが空になったか否かを検出するバッファメモリ容量検出工程とを備え、このバッファメモリ容量検出工程にてバッファメモリの容量が空になったことを検出したときに、ホストコントローラがデバイスから読出予定容量の残りの一部に相当するデータをバッファメモリに読み出す残余データ読出工程を備えたデータ転送制御方法をも提供している(請求項4)。このとき、データ読出工程にて、デバイスに残す一部のデータの容量を、読み出し最小単位量とすると望ましい(請求項5)。
【0021】
また、上位ホスト自体の動作を制御する制御装置が、所定のデバイスの動作を制御する上位ホストに備えられたホストコントローラ内のバッファメモリを介してデバイスから所定の容量のデータを読み出すと共に、ホストコントローラがデバイスに対して読み出しデータの転送における誤り検出データであるCRC値を書き込み、このCRC値を受け取ったデバイスから出力される割り込み処理を制御装置が受け付けるよう、データ転送を制御する方法であって、ホストコントローラがバッファメモリにデバイスからあらかじめ設定された読み出し予定容量の全てのデータを読み出す全データ読出工程と、制御装置がバッファメモリに一時的に保持されたデータを所定の単位量毎に読み出すデータ転送工程と、このデータ転送工程に並列してホストコントローラがバッファメモリが空になったか否かを検出するバッファメモリ容量検出工程とを備え、このバッファメモリ容量検出工程にてバッファメモリの容量が空になったことを検出したときに、ホストコントローラがCRC値をデバイスに書き込むCRC値書込工程を備えた、というデータ転送制御方法をも提供している(請求項6)。
このようにしても、上述と同様の作用、効果を得ることができる。
【0022】
【発明の実施の形態】
〈第1の実施形態〉
以下、本発明の第1の実施形態について、図1乃至図3を参照して説明する。図1は、本発明の第1の実施形態における構成を示すブロック図であり、図2は、その動作を示すフローチャートである。図3は、信号の動作を示すタイミングチャートである。
【0023】
本発明は、ATA/ATAPI規格に準拠したハードディスク及びCD−ROM装置などのストレージデバイスのデータ転送制御を行う装置及び方法である。特に、後述するように、ストレージデバイスに対するデータ読み出し時の転送終了直前における読み出し制御方法を工夫したことにより、転送速度を低下させることなく転送可能となる。
【0024】
はじめに、その概略を簡単に説明すると、図2の本実施形態におけるデータ読み出し回路の動作を示すフローチャートに示すように、ATAホストコントローラ3がATA/ATAPIデバイス2から読み出すべきデータサイズに対し、残り1回の読み出しとなったタイミングで、ATAホストコントローラ3の上記デバイス2からのデータ転送制御を停止する。そして、先に取り込んだデータがバッファメモリ6からCPU10に転送されて、当該バッファメモリ6が空になったら、ATAホストコントローラ3のデータ転送制御を再開し、ATA/ATAPIデバイス2から残り1回の読み出しを行う。これにより、ATAホストコントローラ3のバッファメモリ6の状態が空になった事を認識するまで、常にATAホストコントローラ3への状態をポーリングする処理を抑制し、データ転送速度の低下をなくす。さらに、データ転送中のエラーにより発生した割込みに対しても遅れなくCPU側で認識可能となる。
【0025】
(構成)
図1に示すように、本発明であるデータ転送制御装置は、ATA/ATAPIデバイス2を制御する機能を有すLSI1などの上位ホストに備えられている。具体的には、上位ホスト1自体の動作を制御する制御装置であるCPU10と、上位ホスト1に備えられた所定のデバイス2の動作を制御するホストコントローラであるATAホストコントローラ3とにより構成される。
【0026】
そして、上記ATA/ATAPIデバイス2とは、ATA/ATAPI規格に準拠したハードディスクやCD−ROMなどであり、ATAバス15によりATAホストコントローラ3に接続される。また、上記ATAバス15には、ATA規格に準拠した制御信号及びデータを受け渡しするデータ信号11と割込信号12を含む。また、LSI1の内部では、ATAホストコントローラ3とCPU10とがCPUバス9により接続される。このCPUバス9は、CPU10からATAホストコントローラ3への制御信号及びデータを受け渡しするデータ信号17と割込信号18を含む。
【0027】
また、ATAホストコントローラ3の構成は、以下のようになっている。すなわち、上記ATAバス15とデータ受け渡しを行うATAインタフェース部4と、CPUバス9とデータ受け渡しを行うCPUインタフェース部5と、ATAバス15及びCPUバス9への転送データを一時的に貯えるバッファメモリ6と、ATAバス15及びCPUバス9の動作を制御する制御部7で構成される。また、バッファメモリ6の制御部7には、当該バッファメモリ6からATAバス15でのデータ転送を一時的に停止させるサイクルウェイト信号19が接続されている。ATAバス15及びCPUバス9への転送データを一時的に貯えるバッファメモリ6は、入った順番に処理を行うFIFO8で構成される。
【0028】
ここで、データ転送制御装置が有する基本的な機能について説明する。まず、ATAホストコントローラ3には、CPU10からの指示に基づいてATA/ATAPIデバイス2からデータをバッファメモリ6に読み出す機能を備えている。このように、デバイス2からのデータは、まず、バッファメモリ6に読み出される。また、CPU10には、バッファメモリ6に保持されたデータを読み出す機能と、ATA/ATAPIデバイス2がATAホストコントローラ3にデータを転送した後に出力する割り込み処理を受け付ける機能とを備えている。これにより、ATA/ATAPIデバイス2からデータを読み出すと共に、当該デバイス2からの割り込み処理を実行することができる。但し、上述したようなポーリングなどの処理遅延の問題が生じている。
【0029】
そして、本実施形態では、さらに、ATAホストコントローラ3には、当該ホストコントローラ3内に備えられたバッファメモリ6にATA/ATAPIデバイス2からあらかじめ設定された読み出し予定容量の一部を残して所定の単位量毎にデータを読み出すデータ読出制限機能と、バッファメモリ6内のデータがCPU10に転送されることにより当該バッファメモリ6が空になったことを検出してATA/ATAPIデバイス2から読み出し予定容量の残りの一部に相当するデータをバッファメモリ6に読み出す残余データ読出機能と、が備えられている。
【0030】
これらの機能が作動することにより、本実施形態におけるデータ転送制御装置は、以下のように作動する。ちなみに、上記CPU10やATAホストコントローラ3が備えている各機能は、当該各機能用プログラムがそれぞれの演算処理部(CPU10自体や、バッファメモリ6の制御部7)に組み込まれることにより実現できる。そして、上記プログラムは、あらかじめLSI1内の所定の記憶装置(図示せず)に記憶されている。
【0031】
次に、図2及び図3を参照して本発明の第1の実施形態の動作について詳細に説明する。また、図3は、図2の処理内容に対し、ATAバス及びCPUバスでの信号動作を示したタイミングチャートを示している。
【0032】
まず、図2において、処理A1は、図1に示すCPU10が転送を行うATA/ATAPIデバイス2に対して、転送における開始セクタ番号やセクタサイズ、データサイズ、モードなどの、データ転送に必要なパラメータを設定する処理を示している。このとき、ATA/ATAPIデバイス2の転送プロトコルに従い、実際にデータ転送を行いたいセクタの開始アドレスを示すセクタ番号や、前記セクタ番号からの転送セクタ数を示すセクタサイズを、ATA/ATAPIデバイス2のATA規格で定められたレジスタへ書き込む。
【0033】
処理A2は、転送を行うATA/ATAPIデバイス2への転送におけるデータサイズ、モードなどの、データ転送に必要なパラメータをATAホストコントローラ3へ設定する処理を示している。ここでは、前記処理A1で設定したセクタサイズと1セクタあたりのデータサイズよりデータサイズをCPU10が計算しATAホストコントローラ3に設定する。
【0034】
処理A3は実際の転送処理の開始をATA/ATAPIデバイス2に指示するために、転送方法によってATA規格により定められたコマンドをATA/ATAPIデバイス2のレジスタへ書き込む。そして、このとき、上記処理A3に対して、正常に転送処理の開始を受け付けたかをATA/ATAPIデバイス2へ確認する為に、ATA/ATAPIデバイス2のステータスレジスタを読み込む。ここで、仮にエラーとなった場合は、データ転送処理を直ちに中止しエラー処理を行う(処理A4)。エラーがない場合は、処理A5によりATAホストコントローラ3にデータ転送モード(リードモード)を設定することで、ATA/ATAPIデバイス2との転送を行うモードへ移行する。
【0035】
ここで、以上の処理は、図3に示すCPUバスの動作状態C7における区間S4の間で行われる。この後は、処理A5によりATA/ATAPIデバイス2からの割込み信号の検出を行う処理に移行する。そして、当該処理は、図3に示すCPUバスの動作状態C7における区間S5の間にて行われる。
【0036】
続いて、処理B1がATAホストコントローラ3内で行われる。すなわち、CPU10が処理A5を行っている間、ATAホストコントローラ3の制御によりATA/ATAPIデバイス2との間でデータ転送が行われる。
【0037】
続いて、処理B2によりATA/ATAPIデバイス2に対して、ATAプロトコルにしたがってデータ転送を行う。ここで、上記処理A3とA5により、ATA/ATAPIデバイス2とATAホストコントローラ3がデータ転送モードへ移行したことにより双方の間でデータ転送のハンドシェイクを行いながら、処理A2、A3で設定したデータサイズ分の転送を行う。これらの処理は、図3に示すCPUバス9の動作状態C7における区間S5及びATAバスの動作状態C3の区間S1の間で行われる。このとき、処理B3により、転送が行われたデータサイズが残り1Wordとなるまで処理B2を繰り返す(データ読出制限工程)。すなわち、上記処理A2、A3で設定されたデータサイズ分が全て一度に転送されるわけではなく、わずかなデータをATA/ATAPIデバイス2に残して、バッファメモリ6に読み出す。ここでは、Wordとは、一度に読み出すことができるデータの最小単位をいう。例えば、1Wordは、32ビットである。
【0038】
そして、転送が行われたデータサイズが残り1Wordとなったタイミングで、すなわち、図3に示すATAバス15のデータ信号11に示すサイクルD2において、ATAホストコントローラ3の内部信号のサイクルウェイト信号19を”H”にする(信号を立ち上げる)。そして、サイクルウェイト信号19が”H”の区間では(図3のD5参照)、ATAバス15のデータ信号11をウェイトする信号として用い、サイクルD2の終了を延長する。これにより、処理B2であるデバイス2からのデータの読み出しを1Word残して一旦停止する。
【0039】
このとき、処理B2によりATA/ATAPIデバイス2からATAホストコントローラ3に転送されたデータは、ATAホストコントローラ3に敷設されたバッファメモリ6に蓄積されている。この蓄積されたデータは、CPU10がCPUバス9を介して読み出し、バッファメモリ6が空になるまで実行する(データ転送工程)。そして、バッファメモリ6が空になったことを、バッファメモリ6の制御部7が認識し(バッファメモリ容量検出工程)、そのタイミング、すなわち、図3に示すCPUバス9のデータ信号17におけるサイクルD3が終了したタイミングの後、上記サイクルウェイト信号19を”L”にする(信号を下げる)。
【0040】
これにより、残っている1Word分のデータがATA/ATAPIデバイス2からATAホストコントローラ2に転送されて、すなわち、図3に示すデータ信号11におけるサイクルD2のウェイトが解除されて、サイクルD2が終了する(残余データ読出工程)。その後、バッファメモリ6に貯まった1Word分のデータをCPU10が読み出すことにより、図3に示すCPUバス9のデータ信号17におけるサイクルD4が完了する。
【0041】
ATA/ATAPIデバイス2は、全てのデータをATAホストコントローラ3に完全に転送したら、図3に示すATAバスの処理内容C3における割込み信号を出力するまでのリカバリ区間S2を経たのち、図3に示すATAバス15の割込信号12を”H”にし(信号を立ち上げ)、割込が有ることをATAホストコントローラ3へ伝える。すなわち、ATAバス15の処理内容C3における区間S3の割込み信号出力時間へ移る。
【0042】
すると、ATAホストコントローラ3は、ATA/ATAPIデバイス2から割込信号12を受け、図3に示すCPUバス9の割込信号18を”H”にし、CPU10に割込が有ることを伝える。CPU10は、この信号を受けて処理A6から抜け、データ転送が正常終了か異常終了かを判断する為に、ATA/ATAPIデバイス2のステータスレジスタを読込み判断する。すると、図3に示すCPUバス9の動作状態C7における状態S6へ移行する。エラーがなければ転送終了となる。
【0043】
このようにすることにより、ATAホストコントローラ3内でデータ転送終了直前残り1回の転送となるタイミングでATA/ATAPIデバイス2からの転送を一旦ウェイトし、バッファメモリ6が空になったら最終データ転送を行う処理を追加したことで、当該最終データがバッファメモリ6に転送されるまでATA/ATAPIデバイス2から割り込み処理が出力されず、CPU10がATAホストコントローラ3の状態をポーリングする処理を抑制することができる。そして、ATA/ATAPIデバイス2が転送する最終データは1Wordであるため、バッファメモリ6に転送した後に迅速にCPU10に転送され、割り込み処理が出力されたとしてもATAホストコントローラ3のバッファメモリ6の状態がすぐに空の状態となることから、ポーリング処理とデータ転送がCPUバス9内で同時に行われることがなくなり、データ転送速度の低下を有効に抑制することができる。
【0044】
このとき、上記効果は、バッファサイズ、CPU性能により効果は変化するが、ATAホストコントローラ3のバッファメモリ6のサイズを512KByte、データ転送中は10サイクル毎にポーリングが行われるCPUを一般的に考えた場合、転送データサイズがバッファサイズ以下の場合は、データサイズによらず従来より約10%転送速度が向上する。転送データサイズがバッファサイズ以上の場合でも、データサイズが1MByteの場合を例にとると、最後の512KByteの転送に対するポーリングが行われなくなり、従来より約5%転送速度が向上する。
【0045】
また、従来例にて備えられるATA/ATAPIデバイス2からの割込み信号をATAホストコントローラ3内のバッファメモリ6の状態によってCPU10に伝播しないための信号マスク処理を行う回路を不要としたことにより、データ転送中のエラーにより発生した割込みも迅速にCPU10で認識することができる。従って、エラー割込に対する処理の遅れを抑制することができる。
【0046】
さらには、ATAホストコントローラ3内でデータ転送終了直前残り1回の転送となるタイミングで転送を一旦ウェイトし、バッファメモリ6が空になったら最終データ転送を行う処理を追加したことにより、ATAホストコントローラ3のバッファメモリ6の状態が空になった事を認識するまで常にCPU10がATAホストコントローラ3の状態をポーリングする処理を不要としたため、CPUバス9で行われるプログラムをリードするROMフェッチ処理や、他インタフェースの制御処理とポーリング処理とがCPUバス内で同時に行われることがなくなったことにより、システムの安定性の向上など、当該システム全体の性能の向上を図ることができる。
【0047】
そして、転送制御方法をATAホストコントローラ3のバッファ6のサイズに関係なく、ATA/ATAPIデバイス2からの転送回数により制御するようにしたため、転送タイミングに依存しない。従って、ATAホストコントローラ3内のバッファ6のサイズにより処理のタイミングを切替える必要がないという効果をも有する。すなわち、本装置及び方法は、あらゆるデバイス2に用いることができ、汎用性の向上を図ることができる。
【0048】
〈第2の実施形態〉
以下、本発明の第2の実施形態について、図4乃至図5を参照して説明する。図4は、本発明の第2の実施形態における動作を示すフローチャートであり、図5は、その信号の動作を示すタイミングチャートである。
【0049】
本実施形態では、基本的には上記第1の実施形態と同様であるが、特に、図4において、処理B3における転送データサイズの残り、すなわち、ATA/ATAPIデバイス2から読み出さず残しておくデータ量が1Wordであったのが、残り2Wordとする処理B6となっている点で異なる。
【0050】
また、図5において、ATAバス15中のデータ信号11に対するサイクルウェイト信号19を”H”とするタイミングが、転送データが残り2Wordとなったとき、すなわち、ATAバス15のデータサイクルがサイクルD1である点で異なる。
【0051】
図4を参照して、その動作を詳細に説明する。図4において、処理A1から処理A6は、LSI1内部に構成されたATA/ATAPIデバイス2の動作を制御するATAホストコントローラ3に対するCPU10からの制御処理を示している。また処理B1、B2、B4、B5及びB6は、ATAホストコントローラ3の動作処理を示している。
【0052】
まず、処理A1は、図1に示すCPU10が転送を行うATA/ATAPIデバイス2に対して、転送における開始セクタ番号やセクタサイズ、データサイズ、モードなどの、データ転送に必要なパラメータを設定する処理を示している。このとき、ATA/ATAPIデバイス2の転送プロトコルに従い、実際にデータ転送を行いたいセクタの開始アドレスを示すセクタ番号や、前記セクタ番号からの転送セクタ数を示すセクタサイズを、ATA/ATAPIデバイス2のATA規格で定められたレジスタへ書き込む。
【0053】
処理A2は、転送を行うATA/ATAPIデバイス2への転送におけるデータサイズ、モードなどの、データ転送に必要なパラメータをATAホストコントローラ3へ設定する処理を示している。ここでは、前記処理A1で設定したセクタサイズと1セクタあたりのデータサイズよりデータサイズをCPU10が計算しATAホストコントローラ3に設定する。
【0054】
処理A3は、実際の転送処理の開始をATA/ATAPIデバイス2に指示するために、転送方法によってATA規格により定められたコマンドをATA/ATAPIデバイス2のレジスタへ書き込む。そして、このとき、上記処理A3に対して、正常に転送処理の開始を受け付けたかをATA/ATAPIデバイス2へ確認する為に、ATA/ATAPIデバイス2のステータスレジスタを読み込む。ここで、仮にエラーとなった場合は、データ転送処理を直ちに中止しエラー処理を行う(処理A4)。エラーがない場合は、処理A5によりATAホストコントローラ3にデータ転送モード(リードモード)を設定することで、ATA/ATAPIデバイス2との転送を行うモードへ移行する。また、処理A6では、ATA/ATAPIデバイス2からの割込み信号の検出を行う。
【0055】
また、上記処理A5を受けて、ATAホストコントローラ3がデータ転送モードへ切り替わる処理を実行する(処理B1)。そして、処理B2が実行され、ATA/ATAPIデバイス2に対して、ATAプロトコルにしたがってデータ転送を行う。処理B3は、上記処理A2に設定されたデータサイズより転送データが残り2Wordとなるまで、処理B2の処理を繰り返す判定を行う処理である。すなわち、転送を行う予定のデータサイズよりも2Word少ないサイズのデータの転送をまず実行する。
【0056】
その後、処理B4にて、処理B2により転送されたデータが、ATAホストコントローラ3に敷設されたバッファメモリ6からCPU10にて読み出されるまで待つ。そして、転送サイズよりも2Word少ないサイズのデータが、CPU10に転送されるとバッファメモリ6が空となり、処理B2と同様にATA/ATAPIデバイス2に対して、ATAプロトコルにしたがって残っているデータ転送を行う処理が実行される。
【0057】
これらの処理が終了すると、ATA/ATAPIデバイス2から割り込み処理が実行される場合があり、かかる場合であってもバッファメモリ6がすぐに空となるため、迅速に割り込み処理を実行することができる(処理A6)。
【0058】
このようにすることにより、ATAホストコントローラ3内でデータ転送終了直前残り2回の転送となるタイミングで転送を一旦ウェイトし、バッファメモリ6が空になったら最終データ転送を行う処理を追加したことにより、当該最終データがバッファメモリ6に転送されるまでATA/ATAPIデバイス2から割り込み処理が出力されず、CPU10がATAホストコントローラ3の状態をポーリングする処理を抑制することができる。そして、ATA/ATAPIデバイス2が転送する最終データは2Wordであるため、バッファメモリ6に転送した後に迅速にCPU10に転送されるため、割り込み処理が出力されたとしてもATAホストコントローラ3のバッファメモリ6の状態がすぐに空の状態となるため、ポーリング処理とデータ転送がCPUバス9内で同時に行われることがなくなり、データ転送速度の低下を有効に抑制することができる。
【0059】
このことから、システム構成やATA/ATAPIデバイス2の割込み信号の出力タイミング、すなわち、図5に示すATAバスの動作状態C3の区間S2の時間が長ければ、上記処理B3における処理B2のデータ転送サイズは、[転送すべきデータサイズ−1Word]以下であっても、同様の効果が得られる。換言すると、ATAホストコントローラ3のデータ読出制限機能にてATA/ATAPIデバイス2からデータが読み出される際に、当該ATA/ATAPIデバイス2に残されるデータは、1Wordに限定されず、CPU10がバッファメモリ6から短時間で転送できるよう、転送予定容量の一部であればその容量に制限はない。但し、少なければ少ないほど、ポーリングを抑制することができる。
【0060】
〈第3の実施形態〉
以下、本発明の第3の実施形態について、図6乃至図7を参照して説明する。図6は、本発明の第3の実施形態における動作を示すフローチャートであり、図7は、その信号の動作を示すタイミングチャートである。
【0061】
本実施形態では、図6において、上記第1の実施形態における図2に対して、処理B3における転送データサイズが残り1Wordであったのが、全てのデータを転送する処理B7となっている点と、処理B5における残っているデータ転送を行う処理であったのが、ATA/ATAPIデバイス2へ転送したデータのCRC値を書き込む処理を行う処理B8となっている点で異なる。
【0062】
また、図7において、上記第1の実施形態における図3に対して、ATAバスデータサイクルウェイト信号C4を”H”とするタイミングが、転送データをすべて終了したのち、すなわち、ATAバスのデータサイクル11のサイクルD2が終了した後に”H”とする点と、ATAバス15のデータサイクル11にホストからのCRC出力サイクルD8がある点と、ATAバス15の動作状態C3にホストからのCRC受信待ちS8がある点とで異なる。
【0063】
このため、第3の実施形態におけるATAホストコントローラ3には、ATA/ATAPIデバイス2から読み出したデータの誤り検出データであるCRC値を当該ATA/ATAPIデバイス2に書き込む機能を備えている。この機能は、特に、バッファメモリ6内のデータがCPU10に転送されることにより当該バッファメモリ6が空になったことを検出してCRC値をATA/ATAPIデバイス2に対して書き込むCRC値書込機能である。上述したデータ読み取り機能は、ATAホストコントローラ3内に備えられたバッファメモリ6にATA/ATAPIデバイス2からあらかじめ設定された読み出し予定容量の全部のデータを所定の単位量毎に読み出す機能である。すなわち、上記実施形態と異なり、ATA/ATAPIデバイス2にデータを残すことなく、バッファメモリ6に読み出す。
【0064】
また、CPU10には、CRC値を受け取ったATA/ATAPIデバイス2から出力される割り込み処理を受け付ける機能が備えられている。すなわち、本実施形態におけるATA/ATAPIデバイス2は、上記CRC値を受け取った後にホスト1に割り込み処理を出力するようになっている。
【0065】
次に、図6を参照して、その動作を詳細に説明する。図6において、処理A1から処理A6は、LSI1内部に構成されたATA/ATAPIデバイス2の動作を制御するATAホストコントローラ3に対するCPU10からの制御処理を示している。また処理B1、B2、B4、B7及びB8は、ATAホストコントローラ3の動作処理を示している。
【0066】
まず、処理A1は、図1に示すCPU10が転送を行うATA/ATAPIデバイス2に対して、転送における開始セクタ番号やセクタサイズ、データサイズ、モードなどの、データ転送に必要なパラメータを設定する処理を示している。このとき、ATA/ATAPIデバイス2の転送プロトコルに従い、実際にデータ転送を行いたいセクタの開始アドレスを示すセクタ番号や、前記セクタ番号からの転送セクタ数を示すセクタサイズを、ATA/ATAPIデバイス2のATA規格で定められたレジスタへ書き込む。
【0067】
処理A2は、転送を行うATA/ATAPIデバイス2への転送におけるデータサイズ、モードなどの、データ転送に必要なパラメータをATAホストコントローラ3へ設定する処理を示している。ここでは、前記処理A1で設定したセクタサイズと1セクタあたりのデータサイズよりデータサイズをCPU10が計算しATAホストコントローラ3に設定する。
【0068】
処理A3は、実際の転送処理の開始をATA/ATAPIデバイス2に指示するために、転送方法によってATA規格により定められたコマンドをATA/ATAPIデバイス2のレジスタへ書き込む。そして、このとき、上記処理A3に対して、正常に転送処理の開始を受け付けたかをATA/ATAPIデバイス2へ確認する為に、ATA/ATAPIデバイス2のステータスレジスタを読み込む。ここで、仮にエラーとなった場合は、データ転送処理を直ちに中止しエラー処理を行う(処理A4)。エラーがない場合は、処理A5によりATAホストコントローラ3にデータ転送モード(リードモード)を設定することで、ATA/ATAPIデバイス2との転送を行うモードへ移行する。また、処理A6では、ATA/ATAPIデバイス2からの割込み信号の検出を行う。
【0069】
また、上記処理A5を受けて、ATAホストコントローラ3がデータ転送モードへ切り替わる処理を実行する(処理B1)。そして、処理B2が実行され、ATA/ATAPIデバイス2に対して、ATAプロトコルにしたがってデータ転送を行う。続いて、処理B7は、処理A2に設定されたデータサイズとなるまで処理B2を繰り返す判定を行う。すなわち、ATA/ATAPIデバイス2からバッファメモリ6に読み出し予定容量のデータを全て読み出す。
【0070】
その後、処理B4では、上記処理B2により転送されたデータがATAホストコントローラ3に敷設されたバッファメモリ6からCPU10にCPUバス9を介して読み出されるまで待つ。全てのデータが転送されると、処理B8では、ATAホストコントローラ3内で行っている、転送を行ったデータに対して計算されたCRC値をATA/ATAPIデバイス2へ書き込む。
【0071】
ここで、ATA規格におけるUltraDMA転送のプロトコルでは、データ転送終了後ホストからデバイスに対し転送データのCRC値を書き込む処理B8が必要である。転送が正常に行われた場合は、前記CRC値の書き込みをATA/ATAPIデバイス2が受け取った後に割込み信号が出力される。本実施形態は、この処理の特徴を生かしたものである。
【0072】
すなわち、ATA/ATAPIデバイス2からATAホストコントローラ3に敷設されたバッファメモリ6にあらかじめ設定されたデータ全てを読み出し、CPU10がCPUバス9を介してかかるデータを転送し、その全てが転送された事を認識するまで待ち、その後、処理8のCRC出力を行う。これにより、図7に示すATAバスのデータサイクル11におけるサイクルD2が終了したのちに、ATAホストコントローラ内部信号のATAバスデータサイクルウェイト信号C4を”H”にし、当該ATAバスデータサイクルウェイト信号C4が”H”の区間ではATAホストコントローラ3からのCRC出力サイクルD8をウェイトし、その間もATAホストコントローラ3に敷設されたバッファ6に蓄積されたデータをCPU10がCPUバス9を介して読み出される。そして、バッファが空になったことを認識したタイミング、すなわち、図7に示すCPUバスのデータサイクルC5におけるサイクルD4が終了したタイミングの後、ATAバスデータサイクルウェイト信号C4を”L”にし、ATAホストコントローラ3からのCRC出力サイクルD8のウェイトを解除することで、CRC値がATA/ATAPIデバイス2に出力されて、当該ATA/ATAPIデバイス2から割り込み処理がホスト1に出力される。
【0073】
かかる場合であっても、バッファメモリ6からCPU10へのデータのデータの転送はすでに終了しており、バッファメモリ6は空となっているので、CPU10は受け付けた割り込み処理を迅速に実行することができ、上記同様の効果が得られる。
【0074】
【発明の効果】
本発明は、以上のように構成され機能するので、これによると、まず、デバイスからホストに予定容量の一部をデバイスに残してバッファメモリに読み出され、これと同時に、バッファメモリから制御装置にデータが転送されるが、このとき、バッファメモリ内が空になってからホストコントローラが読み出し予定の残りのデータをデバイスからバッファメモリに読み出し、かかるデータが制御装置に迅速に転送されるため、デバイスが転送予定容量のデータを全て出力した後に、すぐに割り込み処理を出力したとしても、バッファメモリがすぐに空となるため、当該割り込み処理を直ちに処理することができ、ポーリング処理とデータ転送の同時発生を抑制することができるため、データ転送速度の低下を有効に抑制することができる、という従来にない優れた効果を有する。
【0075】
また、このようにすると、データ転送中のエラーにより発生した割込みも迅速に制御装置にて認識することができるため、従来例にて割込み信号をマスクする回路が不要となり、エラー割込に対する処理の遅れを抑制することができる。
【0076】
さらには、上位ホスト内部で行われるプログラムをリードする処理や、他インタフェースの制御処理とポーリング処理とがホストで同時に行われることがなくなったことにより、システムの安定性の向上など、当該システム全体の性能の向上を図ることができる。
【0077】
また、転送制御方法をホストコントローラのバッファサイズに関係なく、デバイスからの転送回数により制御するようにしたため、バッファメモリのサイズにより処理のタイミングを切替える必要がなく、本装置及び方法を容易にあらゆるデバイスに用いることができ、汎用性の向上を図ることができる。
【0078】
そして、ATA規格におけるUltraDMA転送のプロトコルでは、データ転送終了後ホストからデバイスに対し転送データのCRC値を書き込む処理が必要であるが、かかる場合には、デバイスから転送予定容量全てのデータをバッファメモリに読み出し、これを全て制御装置に転送してバッファメモリが空になった後に、上記CRC値をデバイスに書き込み、このCRC値を受け取った後に当該デバイスから割り込み処理が出力されるが、このときにはバッファメモリは空であるため、割り込み処理を迅速に処理することができ、データ転送速度の低速化を抑制することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態における構成を示すブロック図である。
【図2】本発明の第1の実施形態における動作を示すフローチャートである。
【図3】本発明の第1の実施形態における信号の動作を示すタイミングチャートである。
【図4】本発明の第2の実施形態における動作を示すフローチャートである。
【図5】本発明の第2の実施形態における信号の動作を示すタイミングチャートである。
【図6】本発明の第3の実施形態における動作を示すフローチャートである。
【図7】本発明の第3の実施形態における信号の動作を示すタイミングチャートである。
【図8】従来例の一例における構成を示すブロック図である。
【図9】従来例の一例における動作を示すフローチャートである。
【図10】従来例の一例における信号の動作を示すタイミングチャートである。
【図11】従来例の他の例における構成を示すブロック図である。
【図12】従来例の他の例における動作を示すフローチャートである。
【図13】従来例の他の例における信号の動作を示すタイミングチャートである。
【符号の説明】
1 LSI(上位ホスト)
2 ATA/ATAPIデバイス(デバイス)
3 ATAホストコントローラ(ホストコントローラ)
4 ATAインタフェース部
5 CPUインタフェース部
6 バッファメモリ
7 制御部(バッファメモリ用)
8 FIFO
9 CPUバス
10 CPU(CPUバス)
11 データ信号(ATAバス)
12 割込信号(ATAバス)
15 ATAバス
17 データ信号(CPUバス)
18 割込信号(CPUバス)
19 サイクルウェイト信号
Claims (6)
- 上位ホスト自体の動作を制御する制御装置と、前記上位ホストに備えられた所定のデバイスの動作を制御するホストコントローラとを備え、
前記ホストコントローラが、前記デバイスから読み出したデータを一時的に保持するバッファメモリを備えると共に、前記制御装置の指示に基づいて前記デバイスからデータを前記バッファメモリに読み出す機能を備え、
前記制御装置が、前記バッファメモリに保持されたデータを読み出す機能と、前記デバイスが前記ホストコントローラにデータを転送した後に出力する割り込み処理を受け付ける機能とを備えたデータ転送制御装置において、
前記ホストコントローラが、当該ホストコントローラ内に備えられたバッファメモリに前記デバイスからあらかじめ設定された読み出し予定容量の一部を残して所定の単位量毎にデータを読み出すデータ読出制限機能と、前記バッファメモリ内のデータが前記制御装置に転送されることにより当該バッファメモリが空になったことを検出して前記デバイスから読み出し予定容量の残りの一部に相当するデータを前記バッファメモリに読み出す残余データ読出機能とを備えたことを特徴とするデータ転送制御装置。 - 前記データ読出制限機能にて、前記デバイスに残す一部のデータの容量を、前記ホストコントローラが前記デバイスから読み出し最小単位量としたことを特徴とする請求項1記載のデータ転送制御装置。
- 上位ホスト自体の動作を制御する制御装置と、前記上位ホストに備えられた所定のデバイスの動作を制御するホストコントローラとを備え、
前記ホストコントローラが、前記デバイスから読み出したデータを一時的に保持するバッファメモリを備えると共に、前記制御装置の指示に基づいて前記デバイスからデータを前記バッファメモリに読み出す機能と、読み出したデータの誤り検出データであるCRC値を前記デバイスに書き込む機能とを備え、
前記制御装置が、前記バッファメモリに保持されたデータを読み出す機能と、前記CRC値を受け取った前記デバイスから出力される割り込み処理を受け付ける機能とを備えたデータ転送制御装置において、
前記ホストコントローラが、当該ホストコントローラ内に備えられたバッファメモリに前記デバイスからあらかじめ設定された読み出し予定容量の全部のデータを所定の単位量毎に読み出すデータ読出機能と、前記バッファメモリ内のデータが前記制御装置に転送されることにより当該バッファメモリが空になったことを検出して前記CRC値を前記デバイスに対して書き込むCRC値書込機能を備えたことを特徴とするデータ転送制御装置。 - 上位ホスト自体の動作を制御する制御装置が、所定のデバイスの動作を制御する前記上位ホストに備えられたホストコントローラ内のバッファメモリを介して前記デバイスから所定の容量のデータを読み出すと共に、前記デバイスが前記ホストコントローラにデータを転送した後に当該デバイスから発生する割り込み処理を受け付けるよう、データ転送を制御する方法であって、
前記ホストコントローラが前記バッファメモリに前記デバイスからあらかじめ設定された読み出し予定容量の一部を残して所定の単位量毎にデータを読み出すデータ読出制限工程と、前記制御装置が前記バッファメモリに一時的に保持されたデータを所定の単位量毎に読み出すデータ転送工程と、このデータ転送工程に並列して前記ホストコントローラが前記バッファメモリが空になったか否かを検出するバッファメモリ容量検出工程とを備え、
このバッファメモリ容量検出工程にて前記バッファメモリの容量が空になったことを検出したときに、前記ホストコントローラが前記デバイスから前記読出予定容量の残りの一部に相当するデータを前記バッファメモリに読み出す残余データ読出工程を備えたことを特徴とするデータ転送制御方法。 - 前記データ読出工程にて、前記デバイスに残す一部のデータの容量を、読み出し最小単位量としたことを特徴とする請求項4記載のデータ転送制御方法。
- 上位ホスト自体の動作を制御する制御装置が、所定のデバイスの動作を制御する前記上位ホストに備えられたホストコントローラ内のバッファメモリを介して前記デバイスから所定の容量のデータを読み出すと共に、前記ホストコントローラが前記デバイスに対して読み出しデータの転送における誤り検出データであるCRC値を書き込み、このCRC値を受け取った前記デバイスから出力される割り込み処理を前記制御装置が受け付けるよう、データ転送を制御する方法であって、
前記ホストコントローラが前記バッファメモリに前記デバイスからあらかじめ設定された読み出し予定容量の全てのデータを読み出す全データ読出工程と、前記制御装置が前記バッファメモリに一時的に保持されたデータを所定の単位量毎に読み出すデータ転送工程と、このデータ転送工程に並列して前記ホストコントローラが前記バッファメモリが空になったか否かを検出するバッファメモリ容量検出工程とを備え、
このバッファメモリ容量検出工程にて前記バッファメモリの容量が空になったことを検出したときに、前記ホストコントローラが前記CRC値を前記デバイスに書き込むCRC値書込工程を備えたことを特徴とするデータ転送制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002076147A JP3703439B2 (ja) | 2002-03-19 | 2002-03-19 | データ転送制御装置及び方法 |
US10/386,779 US7249237B2 (en) | 2002-03-19 | 2003-03-12 | Control method for data transfer control unit |
TW092105981A TW591510B (en) | 2002-03-19 | 2003-03-18 | Control method for data transfer control unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002076147A JP3703439B2 (ja) | 2002-03-19 | 2002-03-19 | データ転送制御装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003271536A JP2003271536A (ja) | 2003-09-26 |
JP3703439B2 true JP3703439B2 (ja) | 2005-10-05 |
Family
ID=28035417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002076147A Expired - Fee Related JP3703439B2 (ja) | 2002-03-19 | 2002-03-19 | データ転送制御装置及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7249237B2 (ja) |
JP (1) | JP3703439B2 (ja) |
TW (1) | TW591510B (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958292B2 (en) * | 2004-06-23 | 2011-06-07 | Marvell World Trade Ltd. | Disk drive system on chip with integrated buffer memory and support for host memory access |
KR100578143B1 (ko) | 2004-12-21 | 2006-05-10 | 삼성전자주식회사 | 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템 |
US8122193B2 (en) | 2004-12-21 | 2012-02-21 | Samsung Electronics Co., Ltd. | Storage device and user device including the same |
JP4749002B2 (ja) * | 2005-02-25 | 2011-08-17 | ルネサスエレクトロニクス株式会社 | データ転送装置、画像処理装置及びデータ転送制御方法 |
KR100681429B1 (ko) * | 2005-10-24 | 2007-02-15 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 비트 에러 검출 방법 |
WO2008126138A1 (ja) * | 2007-03-26 | 2008-10-23 | Fujitsu Limited | 入出力完了検出システム |
JP2013192176A (ja) * | 2012-03-15 | 2013-09-26 | Hitachi Automotive Systems Ltd | 自動車用電子制御装置 |
JP5867206B2 (ja) * | 2012-03-16 | 2016-02-24 | 富士通株式会社 | 移動制御装置,プログラム及びストレージ装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0713898A (ja) | 1993-06-29 | 1995-01-17 | Mitsubishi Electric Corp | 半導体集積回路装置 |
US5623607A (en) * | 1993-10-05 | 1997-04-22 | Hitachi, Ltd. | Data transfer control method for controlling transfer of data through a buffer without causing the buffer to become empty or overflow |
JPH11345091A (ja) | 1998-06-02 | 1999-12-14 | Fujitsu Ltd | データ転送制御装置および光ディスク装置 |
US6633933B1 (en) * | 1999-09-30 | 2003-10-14 | Oak Technology, Inc. | Controller for ATAPI mode operation and ATAPI driven universal serial bus mode operation and methods for making the same |
US6567953B1 (en) * | 2000-03-29 | 2003-05-20 | Intel Corporation | Method and apparatus for host-based validating of data transferred between a device and a host |
JP3870717B2 (ja) * | 2001-05-14 | 2007-01-24 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
-
2002
- 2002-03-19 JP JP2002076147A patent/JP3703439B2/ja not_active Expired - Fee Related
-
2003
- 2003-03-12 US US10/386,779 patent/US7249237B2/en not_active Expired - Fee Related
- 2003-03-18 TW TW092105981A patent/TW591510B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
TW591510B (en) | 2004-06-11 |
US7249237B2 (en) | 2007-07-24 |
US20030182506A1 (en) | 2003-09-25 |
JP2003271536A (ja) | 2003-09-26 |
TW200305818A (en) | 2003-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100708128B1 (ko) | 낸드 플래시 메모리 제어 장치 및 방법 | |
US6810444B2 (en) | Memory system allowing fast operation of processor while using flash memory incapable of random access | |
JP2008090375A (ja) | 割込み制御システム、およびこれを利用した記憶制御システム | |
JP3703439B2 (ja) | データ転送制御装置及び方法 | |
WO2009098737A1 (ja) | 外部デバイスアクセス装置、その制御方法及びシステムlsi | |
JP2004078683A (ja) | コンピュータシステムおよび共有メモリ制御方法 | |
US20100106869A1 (en) | USB Storage Device and Interface Circuit Thereof | |
JP2004227501A (ja) | データ転送制御装置および方法 | |
KR101109600B1 (ko) | 직접 메모리 접근 제어를 이용한 데이터 전송 방법 및 그장치 | |
JP4867897B2 (ja) | コマンドキューイング制御装置、コマンドキューイングプログラム及びストレージシステム | |
JP2009093225A (ja) | ストレージ制御装置、方法及びプログラム並びにストレージ装置 | |
JP2006018642A (ja) | Dma転送制御装置 | |
JP4935182B2 (ja) | コマンドキューイング制御装置、コマンドキューイングプログラム及びストレージシステム | |
KR20130051821A (ko) | 인터럽트 속도 지연이 개선된 코어 시스템 및 이의 벡터 레지스터 파일 데이터 전송방법 | |
JP2848099B2 (ja) | 多重ドライブ制御方式 | |
CN116225345B (zh) | 一种eMMC的数据存储方法、控制器及可读存储介质 | |
JP2000020398A (ja) | ディスク記憶装置及び同装置に適用するディスクコントローラ | |
US20220415405A1 (en) | Memory-control circuit and method for controlling erasing operation of flash memory | |
JP2006119982A (ja) | コンピュータシステム | |
JP4238556B2 (ja) | データ入出力装置 | |
JP3157794B2 (ja) | 周辺制御処理装置 | |
US20060031604A1 (en) | DMA transfer apparatus and method of controlling data transfer | |
JP2007164511A (ja) | 通信装置および受信データ通知方法 | |
JP2008198119A (ja) | データ転送装置、データ転送システムおよびデータ転送方法 | |
JP2008310547A (ja) | 画像形成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050606 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050621 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050719 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090729 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |