JP2008204050A - データ転送制御装置及び電子機器 - Google Patents

データ転送制御装置及び電子機器 Download PDF

Info

Publication number
JP2008204050A
JP2008204050A JP2007037827A JP2007037827A JP2008204050A JP 2008204050 A JP2008204050 A JP 2008204050A JP 2007037827 A JP2007037827 A JP 2007037827A JP 2007037827 A JP2007037827 A JP 2007037827A JP 2008204050 A JP2008204050 A JP 2008204050A
Authority
JP
Japan
Prior art keywords
fis
data
transfer
host
register
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
JP2007037827A
Other languages
English (en)
Inventor
Kuniaki Matsuda
邦昭 松田
Chisato Akiyama
千里 秋山
Nobuyuki Saito
伸之 齋藤
Haruo Nishida
治雄 西田
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2007037827A priority Critical patent/JP2008204050A/ja
Publication of JP2008204050A publication Critical patent/JP2008204050A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】フリーランのDMA転送を行った場合にもFISの適正な終了処理を実現できるデータ転送制御装置及び電子機器を提供すること。
【解決手段】データ転送制御装置は、PATAバスに接続されるPATAI/F10と、SATAバスに接続されるSATAI/F50と、転送シーケンス制御を行うシーケンスコントローラ30を含む。SATAI/F50は、ホスト2により発行されたATAコマンドを含むレジスタFISをデバイス4に送信する。シーケンスコントローラ30はレジスタFISの送信後にフリーラン転送を開始する。SATAI/F50は、DMAライトにおいて、データFISにより送信されるデータのサイズが最大ペイロードサイズに満たない状態でホスト2からのデータ供給が停止した場合に、タイムカウント処理を開始し、タイムアウトになった場合には、FISの強制終了処理を行う。
【選択図】図2

Description

本発明は、データ転送制御装置及び電子機器に関する。
近年、ストレージデバイス等のシリアルインターフェースとして、シリアルATA(Serial AT Attachment)と呼ばれる規格が脚光を浴びている。このシリアルATAは、パラレルATA(IDE)との間のソフトウェアレベルでの互換性を備えた規格である。そして最初の規格であるシリアルATA Iのデータ転送速度は1.5Gbpsであったが、次の規格であるシリアルATA II Gen2ではデータ転送速度が3.0Gbpsに高速化している。このシリアルATAを用いれば、電子機器が内蔵する回路基板間の配線本数を減らすことができ、電子機器のコンパクト化を図れる。
ところが、電子機器のホスト(ホストデバイス、ホスト基板)は、パラレルATA(以下、適宜、PATAと呼ぶ)のインターフェース(以下、適宜、I/Fと呼ぶ)は備えているが、シリアルATA(以下、適宜、SATAと呼ぶ)のI/Fについては備えていないものが多い。従って、このようPATAI/Fのみを備えた既存のホストに対しては、SATAのデバイスを接続できないという問題がある。
またHDD(ハードディスクドライブ)などのデバイスは、その大部分が、PATAI/FからSATAI/Fに置き換わっており、PATAI/Fを備えるHDDの入手が困難になっている。このため、PATAI/Fのみを備えるホストに対して接続可能なHDDの種類が限定されてしまい、電子機器の内蔵HDDの大容量化等が妨げられるという問題がある。
なお特許文献1、2には、SATAとPATAのブリッジICが開示されている。しかしながらこの特許文献1、2は、ブリッジICを使用した回路基板などに関する発明であり、ブリッジICの具体的な構成に関する発明ではない。
また特許文献3には、SATAブリッジを内蔵するHDDが開示されている。しかしながら、この特許文献3のSATAブリッジは、SATA側にホストが接続されPATA側にデバイスが接続されるブリッジであり、PATA側にホストが接続されSATA側にデバイスが接続されるブリッジに関する発明ではない。また特許文献3は、ファームウェアによるプロトコル制御に特徴がある発明であり、回路構成に特徴がある発明ではない。
特開2005−346123号公報 特開2006−121621号公報 特開2006−18428号公報
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、フリーランのDMA転送を行った場合にもFISの適正な終了処理を実現できるデータ転送制御装置及びこれを含む電子機器を提供することにある。
本発明は、パラレルATAとシリアルATAのバスブリッジ機能を有するデータ転送制御装置であって、パラレルATAバスに接続され、ホストとの間のインターフェースを行うパラレルATAインターフェースと、シリアルATAバスに接続され、シリアルATAのデバイスとの間のインターフェースを行うシリアルATAインターフェースと、転送シーケンス制御を行うシーケンスコントローラを含み、前記シリアルATAインターフェースは、前記パラレルATAバスを介して前記ホストがATAコマンドを発行した場合に、発行された前記ATAコマンドを含むレジスタFISを前記シリアルATAバスを介して前記デバイスに送信し、前記シーケンスコントローラは、前記レジスタFISが送信された後に、総データ転送数を管理しないフリーラン転送を開始し、前記シリアルATAインターフェースは、発行された前記ATAコマンドがDMAライトコマンドであり、データFISにより送信されるデータのサイズが最大ペイロードサイズに満たない状態で前記ホストからのデータ供給が停止した場合に、タイムカウント処理を開始し、タイムアウトになった場合には、データFISの強制終了処理を行うデータ転送制御装置に関係する。
本発明では、ホストがATAコマンドを発行すると、そのATAコマンドを含むレジスタFISがデバイスに送信され、その後に、フリーラン転送が開始する。そしてDMAライトにおいてホストからのデータ供給が停止すると、タイムカウント処理が開始し、タイムアウトになるとデータFISが強制終了する。従って、データ転送制御装置が総データ転送数を認識していないフリーラン転送において、適正な転送シーケンス制御を実現できる。
また本発明では、前記シリアルATAインターフェースは、前記ホストからのデータ供給が停止した場合にホールドプリミティブを送信し、前記ホールドプリミティブを送信したタイミングから前記タイムカウント処理を開始してもよい。
このようにホールドプリミティブを送信すれば、送信すべきデータが無い場合に、デバイスを待たせることが可能になる。またホールドプリミティブを送信したタイミングからタイムカウント処理を開始すれば、適正なタイミングでのタイムアウト判断が可能になる。
また本発明では、前記シリアルATAインターフェースは、データFISの強制終了処理の後、DMAアクティブFISを前記デバイスから受信した場合に、残りデータについてのデータFISの送信を再開してもよい。
このようにすれば、ホスト側の都合によりデータ供給が一時的に停止した場合にも、残りデータについてのデータ転送を適正に終了できるようになる。
また本発明では、前記シリアルATAインターフェースは、タイムアウトになった場合に、EOFプリミティブを送信することで、データFISの強制終了処理を行ってもよい。
このようにEOFプリミティブを送信すれば、データFISの終了をデバイスに対して伝えることができる。
また本発明では、前記シーケンスコントローラは、フリーラン転送の開始後に前記シリアルATAインターフェースが前記デバイスから受信したFISが、総データ転送の終了を示すFISであると判断した場合に、DMAライトのフリーラン転送の終了処理を行ってもよい。
このようにすれば、総データ転送数のカウント回路や、カウント回路の動作制御が不要になり、回路の小規模化や処理の簡素化を図れ、データのペイロードを意識しない転送シーケンスの終了処理を実現できる。
また本発明では、前記シーケンスコントローラは、受信したFISが前記デバイスから前記ホストへのレジスタFISである場合に、DMAライトのフリーラン転送の終了を示すFISであると判断して、DMAライトのフリーラン転送の終了処理を行ってもよい。
このようにすれば、受信したFISがレジスタFISであるか否かを判断するだけで、DMAライトのフリーラン転送の終了を判断できるようになる。
また本発明では、前記シーケンスコントローラは、DMAライトのフリーラン転送では、前記デバイスから前記ホストへのレジスタFISを受信した場合に、DMAライトのフリーラン転送の終了処理を行い、DMAリードのフリーラン転送では、前記デバイスから前記ホストへのレジスタFISを受信した後、前記パラレルATAインターフェースから前記ホストへのデータ転送が完了した場合に、DMAリードのフリーラン転送の終了処理を行ってもよい。
このようにすれば、ホストによる適正なDMAライト、DMAリードを実現できる。また、パラレルATAインターフェースからホストへのデータ転送の完了によりDMAリードのフリーラン転送を終了すれば、データ転送制御装置にデータが残ってしまう事態を防止できる。
また本発明では、前記シリアルATAインターフェースは、前記デバイスから受信したFISをデコードし、デコード結果に基づいて、FISの種類を前記シーケンスコントローラに知らせるための割り込み信号を生成して出力し、前記シーケンスコントローラは、前記シリアルATAインターフェースからの前記割り込み信号に基づいて、受信したFISが総データ転送の終了を示すFISであるか否かを判断してもよい。
このようにすれば、シリアルATAインターフェースに元々必要なFISデコード回路を有効活用して、FISの種類を判別できるため、回路の小規模化を図れる。
また本発明では、前記シーケンスコントローラは、前記デバイスに送信された前記レジスタFISに対応するFISを、前記シリアルATAインターフェースが前記デバイスから受信した場合に、前記ホストから発行された前記ATAコマンドの転送シーケンス制御として、受信したFISの種類に応じた転送シーケンス制御を行ってもよい。
このようにすれば、データ転送制御装置は、ホストが発行したATAコマンドの詳細な内容をデコードすることなく、ATAコマンドを含むレジスタFISをそのままデバイスに送信できる。そしてレジスタFISに対してデバイスが返却して来たFISの種類によって、転送シーケンスが制御される。従って、ATAコマンドのデコーダ回路を節約でき、データ転送制御装置の小規模化を図れる。また、新規コマンドの追加が発生しても、これに容易に対応できるようになる。
また本発明では、前記シーケンスコントローラは、前記デバイスから受信したFISがDMAアクティベートFISである場合には、DMAライトの転送シーケンス制御を行ってもよい。
このようにすれば、受信したFISがDMAアクティベートFISか否かを判断するだけで、DMAライトの転送シーケンスを制御できるようになる。
また本発明は、上記のいずれかに記載のデータ転送制御装置と、前記データ転送制御装置に接続される前記ホストと、前記データ転送制御装置に接続される前記デバイスとを含む電子機器に関係する。
以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
1.データ転送制御装置の構成
図1に本実施形態のデータ転送制御装置の構成例を示す。このデータ転送制御装置はPATA(Parallel AT Attachment)とSATA(Serial AT Attachment)のバスブリッジ機能を有する。なお本実施形態のデータ転送制御装置は図1の構成に限定されず、その構成要素の一部(例えばデータバッファ)を省略したり、他の構成要素(例えば外部I/F回路、CPU、タイマ)を追加するなどの種々の変形実施が可能である。
PATAI/F10(パラレルATAインターフェース)は、PATAバス(ATAバス、IDEバス)に接続され、ホスト2(ホストデバイス)との間のインターフェースを行う。具体的にはPATAI/F10は、ホスト2が有するホスト側のPATAI/FにPATAバスを介して接続される。そしてATAで規格化された後述する各種信号によりやり取りを行い、PATA(IDE)のデータ転送を実現する。またPATAI/F10は、データバッファ70を介したSATAI/F50との間のデータ転送制御も行う。このPATAI/F10は、PATAとSATAのブリッジ用に擬似的(仮想的)に設けられたタスクファイル・レジスタを含むことができる。
なおホスト2としては、例えばCPU、MPU、DSPなどのプロセッサや、専用制御ICや、これらのプロセッサ又は専用制御ICが実装されたホスト回路基板などが考えられる。またデバイス4としては、ハードディスクドライブ(HDD)、光ディスクドライブ(CD、DVD)、磁気ディスクドライブなどのSATAI/Fを備える各種デバイスが考えられる。
SATAI/F50(シリアルATAインターフェース)は、SATAバス(高速シリアルバス)に接続され、SATAのデバイス4との間のインターフェースを行う。具体的にはSATAI/F50は、デバイス4が有するデバイス側のSATAI/Fに接続され、小振幅の差動信号によりやり取りを行い、SATAのデータ転送を実現する。またSATAI/F50は、データバッファ70を介したPATAI/F10との間のデータ転送制御も行う。このSATAI/F50は、SATA規格のシャドウ・タスクファイル・レジスタを含むことができる。
シーケンスコントローラ30は転送のシーケンス制御を行う。具体的には、PATAとSATAのブリッジ機能を実現するために、PATAI/F10、SATAI/F50、データバッファ70の間のデータ転送のシーケンス制御を行ったり、レジスタ値の転送シーケンス制御を行う。
データバッファ70は、ホスト2(PATAI/F)、デバイス4(SATAI/F)の間で転送されるデータのバッファリングを行う。そしてPATA側とSATA側のクロック周波数の差を吸収するための緩衝用のバッファ(FIFO)として機能する。即ちPATA側のクロック周波数が例えば50MHz(或いは60MHz)で、SATA側のクロック周波数が例えば37.5MHzである場合に、データバッファ70を設けることでこのクロック周波数の差を吸収できる。このデータバッファ70は、例えば50MHz(第1の周波数)でデータが入出力されるPATAI/F10側の第1のポートと、例えば37.5MHz(第2の周波数)でデータが入出力されるSATAI/F50側の第2のポートとを有するデュアルポートのメモリ(RAM)などにより実現できる。
図1の構成によれば、ホスト2がPATAI/Fしか備えていない場合にも、SATAI/Fを有するデバイス4をデータ転送制御装置を介してホスト2に接続できる。従って、ホスト2のファームウェア、ソフトウェアとして、既存のPATA(IDE)用のファームウェア、ソフトウェアを使用できる。これにより電子機器の開発期間の短縮化や低コスト化を図れる。またデバイス4として、市場供給量が多い大容量のHDDをホスト2に接続できるようになり、電子機器の内蔵HDDの大容量化を図れる。
またホスト2が搭載される回路基板とデバイス4が搭載される回路基板の間を、シリアルバスであるSATAバスで接続できるため、回路基板間の配線本数を減らすことができ、電子機器のコンパクト化を図れる。
2.FISの強制終了処理
図1に示すようなブリッジ機能を有するデータ転送制御装置では、ホスト2がATAコマンドを発行すると、そのATAコマンドに対応したデータ転送が行われる。具体的には、PIO転送(PIOリード、PIOライト)やDMA転送(DMAリード、DMAライト)が行われる。
例えばPIO転送では、各セクタの転送バイト数(例えば512バイト)や総セクタ数(セクタカウント)が設定され、総セクタ数で設定される個数のセクタが転送されると、PIO転送が終了する。またDMA転送では、DMA転送数(DMAデータ転送サイズ)が設定され、DMA転送数分のデータが転送されると、DMA転送が終了する。従って、PIO転送やDMA転送を行うためには、総セクタ数やDMA転送数などの総データ転送数のカウント処理を行うカウント回路が必要になる。
しかしながら、このようなカウント回路を設けると、そのカウント回路の分だけデータ転送制御装置の回路が大規模化する。またカウント回路の動作制御(例えばポインタ制御)が必要になり、データ転送制御装置の回路や処理が繁雑化する。
このような問題を解決するために本実施形態では、ホスト2が発行したATAコマンドに対応するPIO転送やDMA転送などのデータ転送として、フリーラン転送を行う。即ちシーケンスコントローラ30は、転送開始信号(Tran Go)をアクティブにした後、総データ転送数(総セクタ数、DMA転送数)のカウント処理を行わないフリーラン転送を開始する。そしてフリーラン転送を終了する場合には、転送停止信号(Tran Stop)をアクティブにする。
このようなフリーラン転送を行えば、総データ転送数のカウント回路が不要になるため、データ転送制御装置の回路の小規模化を図れる。またカウント回路の動作制御(例えばポインタ制御)も不要になるため、データ転送制御装置の回路や処理を簡素化できる。
さて、DMAライトのデータ転送を行う場合には、SATAI/F50は、ホスト2からのデータがそのペイロードに設定されたデータFISをデバイス4に送信する。そしてこの場合に、SATA規格で規定される最大ペイロードサイズ(以下、適宜、MPLSと記載する)である8Kバイト(以下、適宜、「Kバイト」を「KB」と記載する)のデータが転送されると、FIS(Frame Information Structure)の終了処理が行われる。
しかしながら、上述した総データ転送数をカウントしないフリーラン転送により、8Kバイト未満のデータ(例えば6Kバイト)のDMA転送を行う場合には、フレームにより送信されるデータのサイズが最大ペイロードサイズ(MPLS)である8Kバイトに満たないため、FISの終了処理が、いつまでも行われないことになる。従って、データ転送制御装置によるデータ転送終了の判断及び処理ができなくなってしまう。
このような課題を解決するために本実施形態では、DMAライトのデータサイズが最大ペイロードサイズに満たない場合には、タイムカウント処理を行い、タイムアウトになった場合にはデータFISの強制終了処理を行う。例えばEOF(End Of Frame)のプリミティブをデバイス4に送信し、このフレームのFISを強制終了させる。このようにすれば、DMAライトの送信データが最大ペイロードサイズに満たない場合にも、総データ転送数をカウントしないフリーランのDMAライト転送を適正に終了させることができる。従ってデータ転送制御装置の小規模化を図りながら適正なデータ転送制御を実現できる。
具体的には図2(A)に示すようにホスト2がPATAバスを介してATAコマンド(転送コマンド)を発行すると、PATAI/F10がこのコマンドを受ける。そしてSATAI/F50は、発行されたATAコマンドを含むレジスタFIS(Host to Device)を作成して、SATAバスを介してデバイス4に送信する。
そして、シーケンスコントローラ30は、レジスタFISが送信された後に、総データ転送数を管理しないフリーラン転送を開始する。例えばPIOリードやPIOライトのフリーラン転送においては、各セクタの転送バイト数については管理(カウント)しながら、総データ転送数である総セクタ数については管理(カウント)しないフリーラン転送を行う。またDMAリードやDMAライトのフリーラン転送では、総データ転送数であるDMA転送数を管理(カウント)しないフリーラン転送を行う。
例えば図2(B)では、ホスト2が発行したATAコマンドがDMAライトコマンドであったため、DMAライトのフリーラン転送が行われている。そして図2(B)では、DMAの転送サイズ(総データ転送サイズ、総DMA転送数)が6Kバイトになっており、最大ペイロードサイズ(MPLS)よりも小さくなっている(或いはMPLSで割り切れない転送サイズになっている)。
この場合に、DMAライトコマンドを発行したホスト2は、DMA転送サイズが6Kバイトであることを認識している。また図2(A)のようにホスト2からのDMAライトコマンドを含むレジスタFISを受信したデバイス4も、DMA転送サイズが6Kバイトであることを認識している。
一方、本実施形態のデータ転送制御装置は、総データ転送数であるDMA転送サイズについては管理(カウント)しないフリーラン転送を行っているため、DMA転送サイズが6Kバイトであることを認識していない。従って、このような6KバイトのフリーランによるDMA転送を如何にして終了させるかが課題になる。
このために本実施形態では図2(C)に示すように、発行されたATAコマンドがDMAライトコマンドであり、データFISにより送信されるデータのサイズ(DMA転送サイズ)が最大ペイロードサイズに満たない状態でホスト2からのデータ供給が停止すると、タイムカウント処理を開始する。
即ち図2(C)では、ホスト2は、予定していた6Kバイト(<MPLS)のデータの送信が完了したため、データ転送制御装置へのデータ供給(データ出力)を停止する。これによりSATAI/F50等が有するFIFO(例えば送信FIFO)がエンプティになる。すると、図4(A)のE1に示すようにSATAI/F50は、SATA規格で規定されるホールドプリミティブ(HOLD)をデバイス4に送信し、デバイス4を待たせる。
そしてこのようにFIFOがエンプティになり、ホールドプリミティブの送信を開始した場合に、図4(A)のE2に示すようにタイムカウント処理を開始する。具体的にはホスト2からのデータ供給の停止によりホールドプリミティブを送信したタイミングから(送信の開始と同時に)、タイマの動作をスタートして、タイムカウント処理を開始する。なおタイムカウント処理を実現するためのカウンタは、SATAI/F50やシーケンスコントローラ30の内部に設けてもよいし、SATAI/F50やシーケンスコントローラ30の外部に設けてもよい。
このようにタイムカウント処理を開始した後、図3(A)や図4(A)のE3に示すように、所定期間TCが経過してタイムアウトになると、SATAI/F50はFISの強制終了処理を行う。具体的には、図4(A)のE4に示すようにEOF(及びCRC)のプリミティブを付加してデバイス4に送信し、強制的にデータFISを閉じる。
すると、EOFプリミティブを受信したデバイス4は、予定していた6Kバイトのデータ受信が終了しているため、レジスタFISをSATAI/F50に送信する。そしてシーケンスコントローラ30は、このようにレジスタFISをデバイス4から受信すると、DMAライトのフリーラン転送を終了する。このようにフリーラン転送を終了しても、ホスト2側においては、予定していた6Kバイトのデータ送信が終了しており、デバイス4側においても、予定していた6Kバイトのデータ受信が終了しているため、DMAライトのフリーラン転送を適正に終了できるようになる。
以上のように本実施形態によれば、DMAライトのフリーラン転送の際に、ホストのデータ供給が停止すると、タイムアウトによりデータFISが強制終了する。従って、データ転送制御装置が総データ転送数(DMA転送サイズ)を認識していないフリーラン転送において、適正な転送シーケンス制御を実現できる。
なお、図2(B)〜図3(A)では、DMA転送サイズが最大ペイロードサイズに満たない場合について説明したが、DMA転送サイズが最大ペイロードサイズで割りきれない場合も、同様である。例えばDMA転送サイズが14Kバイトである場合には、8Kバイトのデータ転送が終了した後、残りの6Kバイトのデータ転送について、図2(B)〜図3(A)で説明した強制終了処理が行われる。
また例えば図3(B)に示すように、DMAデータ転送サイズは例えば6Kバイトであるが、ホスト2側の都合により、ホスト2からのデータ供給が例えば4Kバイトで一時的に停止する場合がある。即ちホスト2がDMAのライトデータを用意できないため、データ供給が一時的に停止する。
この時、SATAI/F50は、データ供給の停止によりFIFO(送信FIFO)がエンプティになるため、図4(B)のF1に示すようにホールドプリミティブをデバイス4に送信して、デバイス4を待たせる。そしてこのようにホスト2側の都合によりデータ供給が停止した場合にも、図4(B)のF2に示すようにカウント処理が開始する。そしてF3に示すようにタイムアウトになると、F4に示すようにEOF(CRC)のプリミティブが送信されて、FISが強制終了する。
しかしながら、このような場合にも、デバイス4はホスト2からのDMAライトコマンドにより、DMA転送サイズが6Kバイトであることを認識している。従って、デバイス4は、転送が終了したDMA転送サイズが4Kバイトであり、予定していた6Kバイトに満たないため、図3(C)に示すように残りデータの転送を要求するDMAアクティベートFISを送信する。
このようにFISの強制終了処理の後にDMAアクティブFISをデバイス4から受信すると、SATAI/F50は、図4(B)のF5に示すように、残りデータである2KバイトのデータについてのデータFISの送信を再開する。そして2Kバイトは最大ペイロードサイズ未満であるため、F6に示すようなタイムカウント処理が行われ、タイムアウトになるとF7に示すようにEOFプリミティブが送信されて、FISが強制終了する。
このように本実施形態によれば、ホスト2側の都合でデータ供給が一時的に停止し、意図せずにFISが強制終了してしまった場合にも、DMA転送サイズを認識しているデバイス4がDMAアクティベートFISを送信する。従って、DMAライトで設定されたDMA転送サイズのデータを、問題なくデバイス4に書き込むことが可能になる。
3.フリーラン転送の終了処理
さて、フリーラン転送を行えば、総データ転送数のカウント回路が不要になるため、回路の小規模化を図れる。しかしながら、フリーラン転送では総データ転送数のカウント処理が行われないため、フリーラン転送の終了を判断できないという課題がある。
そこで本実施形態では、フリーラン転送の開始後にデータ転送制御装置がデバイス4から受信するFIS(Frame Information Structure)に着目し、フリーラン転送の開始後にSATAI/F50がデバイス4から受信したFISが、総データ転送の終了を示すFISであると判断した場合に、フリーラン転送の終了処理を行う。例えばシーケンスコントローラ30は、SATAI/F50から受信FIS情報(FISの割りこみ信号等)を受け、この受信FIS情報に基づいてFISの種類を判別する。そして総データ転送の終了を示すFISである場合に、フリーラン転送を終了する。このようにすれば、総データ転送数のカウント処理を行わなくも、フリーラン転送の終了を判断できるようになり、データ転送制御装置の小規模化を図りながら適正なデータ転送制御を実現できる。
具体的には図5(A)に示すように、受信したFISがデバイス4からホスト2へのレジスタFISである場合には、PIOライト、DMAリード又はDMAライトのフリーラン転送の終了を示すFISであると判断する。そしてこの場合には、PIOライト、DMAリード又はDMAライトのフリーラン転送の終了処理を行う。例えばPIOライトのフリーラン転送を開始した後、デバイス4からレジスタFISを受信した場合には、そのPIOライトのフリーラン転送を終了する。即ちPATAI/F10、SATAI/F50等に、フリーラン転送の停止信号を出力する。
更に具体的にはDMAライトのフリーラン転送では、図5(B)に示すようにデバイス4からレジスタFISを受信した場合に、DMAライトのフリーラン転送の終了処理を行う。例えばレジスタFISを受信したら直ぐにフリーラン転送を終了する。
一方、DMAリードのフリーラン転送では、図6(A)に示すようにデバイス4からレジスタFISを受信した後、図6(B)に示すようにPATAI/F10からホスト2へのデータ転送(データ出力)が完了した場合に、DMAリードのフリーラン転送の終了処理を行う。即ちDMAライトではレジスタFISの受信により直ぐにフリーラン転送を終了したが、DMAリードでは、レジスタFISの受信後、PATAバスへのデータ出力が完了した後に、フリーラン転送を終了する。例えばPATAI/F10は、データ転送が完了すると転送完了割り込みをシーケンスコントローラ30に出力し、これによりシーケンスコントローラ30は、転送の停止信号を出力して、フリーラン転送を終了する。このようにすればホスト2による適正なDMAリードを実現できる。
即ち図5(B)のDMAライトでは、ホスト2からの全てのデータがデバイス4にライトされた後に、デバイス4はレジスタFISを送信する。従って、デバイス4からのレジスタFISの受信後、直ぐにフリーラン転送を終了しても、ライトデータがデータ転送制御装置に残ることはない。
これに対して図6(A)、図6(B)のDMAリードでは、デバイス4からのレジスタFISの受信後、直ぐにフリーラン転送を終了してしまうと、ホスト2に対して未転送のデータが、データ転送制御装置に残ってしまう。
この点、図6(B)に示すようにPATAI/F10からホスト2へのデータ転送が完了した後に、フリーラン転送を終了すれば、データ転送制御装置にデータが残ってしまう事態を防止できる。
また図6(C)に示すように本実施形態では、シーケンスコントローラ30は、受信したFISがPIOセットアップFISであり、且つ、受信したPIOセットアップFISのエンドステータスのBUSYビット及びDRQ(データリクエスト)ビットが0にクリアされている場合に、PIOリードのフリーラン転送の終了を示すFISであると判断して、PIOリードのフリーラン転送の終了処理を行う。
即ちPIOライト、DMAリード、DMAライトの場合とは異なり、PIOリードでは、総データ転送の終了の際にデバイス4はレジスタFISを送信しない。従って、レジスタFISの受信によっては、フリーラン転送の終了を判断できない。
そこで図6(C)では、総データ転送の終了の際には、最後に転送されるセクタのPIOセットアップFISのエンドステータスが、BUSY=0、DRQ=0であることに着目して、フリーラン転送の終了を判断している。これにより、総データ転送終了の際にデバイス4がレジスタFISを送信しないPIOリードの場合にも、フリーラン転送の適切な終了処理を実現できる。
図5(A)〜図6(C)の手法によれば、総データ転送数を管理しないフリーラン転送が行われ、フリーラン転送の開始後にデバイス4から受信したFISにより、フリーラン転送の終了を判断している。従って、総データ転送数のカウント回路や、カウント回路の動作制御が不要になり、回路の小規模化や処理の簡素化を図れ、回路のバグ発生のリスク低減や低コスト化を図れる。またデータのペイロードを意識しない転送シーケンスの終了処理を実現できる。
なおデータサイズが最大ペイロードサイズに満たない場合に、タイムカウント処理を開始して、FISの強制終了処理を行う手法(図2(A)〜図4(B))では、図5(A)〜図6(C)の手法によりフリーラン転送の終了処理を行ってもよいし、図5(A)〜図6(C)とは異なる手法でフリーラン転送の終了処理を行ってもよい。
4.詳細な構成例
図7にデータ転送制御装置の詳細な構成例を示す。PATAI/F10はタスクファイル・レジスタ(以下、適宜、TFRと呼ぶ)12、転送コントローラ14を含む。ここでTFR12は、PATAとSATAのバスブリッジ用に擬似的に設けられたレジスタである。このTFR12を設けることで、ホスト2は、SATAのデバイス4を、あたかもPATAのデバイスのように扱ってデータのリードやライトを行うことが可能になる。即ちホスト2は、既存のPATA用のファームウェアやソフトウェアを使用して、SATAのデバイス4を制御できるようになる。
転送コントローラ14は、PATA用の信号XCS〜XPDIAGを用いてPATA(IDE)のインターフェースを実現したり、データ転送用の制御信号を用いて、データバッファ70との間のデータ転送を制御する。
データバッファ70は、メモリコントローラ72、FIFOメモリ(FIFORAM)74を含む。メモリコントローラ72は、FIFOメモリ74のデータの書き込み制御や読み出し制御を行う。またPATAI/F10やSATAI/F50との間で、例えばREQ信号やACK信号などの制御信号を用いたデータ転送制御を行う。
SATAI/F50は、シャドウ・タスクファイル・レジスタ(以下、適宜、SFRと呼ぶ)52、トランスポートコントローラ110、リンクコントローラ150、物理層回路200を含む。
トランスポートコントローラ110、リンクコントローラ150、物理層回路200は、各々、SATA規格のトランスポート層、リンク層、物理層の処理を行う回路である。
シャドウ・タスクファイル・レジスタ(SFR)52はSATAで規格化されているレジスタである。即ちSATAでは、従来のPATA(IDE)との間でソフトウェアレベルでの互換性が維持されており、タスクファイル・レジスタが2つ存在することが特徴になっている。即ちホスト(HBA)側のシャドウ・タスクファイル・レジスタ52とデバイス側の本来のタスクファイル・レジスタ5である。
一方、PATAI/F10に設けられたタスクファイル・レジスタ(TFR)12はSATAで規格化されるレジスタではなく、PATAとSATAのブリッジ用に設けられた擬似的なレジスタである。ホスト2は、レジスタ12をPATAのタスクファイル・レジスタとして認識してアクセスし、レジスタ値を書き込んだり、レジスタ値を読み出す。すると本実施形態のデータ転送制御装置が、タスクファイル・レジスタ12のレジスタ値をシャドウ・タスクファイル・レジスタ52に転送したり、シャドウ・タスクファイル・レジスタ52のレジスタ値をタスクファイル・レジスタ12に転送するなどの処理を行う。
このようにすれば、ホスト2が、PATAのタスクファイル・レジスタ12にレジスタ値を書き込むと、そのレジスタ値がSATAのシャドウ・タスクファイル・レジスタ52に転送されて書き込まれ、SATAバスを介してFISによりデバイス4に転送されるようになる。またデバイス4からのFISによりシャドウ・タスクファイル・レジスタ52に書き込まれたレジスタ値が、タスクファイル・レジスタ12に転送されてホスト2に読み出されるようになる。従ってホスト2は、SATAのデバイス4を、あたかもPATAのデバイスのように扱ってデータのリードやライトを行うことが可能になり、PATAとSATAのブリッジ機能を効率良く実現できる。
なおタスクファイル・レジスタ(TFR)12とシャドウ・タスクファイル・レジスタ(SFR)52の間のレジスタ値の転送は次のような手法により実現できる。即ちTFR12のレジスタ群のビット(全ビット)とSFR52のレジスタ群のビット(全ビット)を、シーケンスコントローラ30を介して信号線により接続しておく。そしてレジスタ値の転送を行う場合には、シーケンスコントローラ30が転送トリガ信号を生成し、この転送トリガ信号に基づいて、TFR12のレジスタ値をSFR52に転送したり、SFR52のレジスタ値をTFR12に転送すればよい。
5.PATAI/F
次に、PATAI/F10のデータ転送処理について、図7の構成及び図8(A)〜図9(B)の信号波形を用いて説明する。
XCS[1:0]は、PATAの各レジスタにアクセスするために使用するチップセレクト信号である。DA[2:0]は、データ又はデータポートにアクセスするためのアドレス信号である。DMARQ、DMACKは、DMA転送に使用される信号である。データ転送の準備が整った時にデバイス側がDMARQをアクティブ(アサート)にし、これに応答して、ホスト側がDMACKをアクティブにする。
XDIOWは、レジスタ又はデータポートの書き込み時に使用するライト信号である。XDIORは、レジスタ又はデータポートの読み出し時に使用するリード信号である。IORDYは、デバイス側のデータ転送の準備が整っていない時のウェイト信号等に使用される。
INTRQは、デバイス側が、ホスト側に対して割り込みを要求するために使用される信号である。このINTRQがアクティブになった後、ホスト側がデバイス側のTFR12のステータスレジスタの内容を読むと、所定時間後にデバイス側はINTRQを非アクティブ(ネゲート)にする。このINTRQを用いることで、デバイス側は、コマンド処理の終了をホスト側に通知できる。
図8(A)、図8(B)は、PIO(Programmed I/O)リード、PIOライトの信号波形例である。PATAのTFR12のステータスレジスタのリードは図8(A)のPIOリードにより行い、コマンドレジスタへのライトは図8(B)のPIOライトにより行う。例えばホスト2によるATAコマンドの発行は、PIOライトにより実現できる。
図9(A)、図9(B)は、DMAリード、DMAライトの信号波形例である。データ転送の準備ができると、デバイス側(データ転送制御装置)が、DMARQをアクティブにする。そして、それを受けて、ホスト側が、DMACKをアクティブにして、DMA転送を開始する。その後、XDIOR(リード時)又はXDIOW(ライト時)を使用して、データDD[15:0]のDMA転送を行う。
6.SATAI/F
次にSATAI/F50のデータ転送処理について説明する。図10はSATAの送信側のデータ転送処理の流れを示し、図11は受信側のデータ転送処理の流れを示している。
図10に示すように送信側のトランスポートコントローラ(トランスポート層)では、シャドウ・タスクファイル・レジスタに書き込まれたコマンドやデータポートに入力されたデータによりFISが生成される。ここでFISは、フレームのペイロード部であり、Dword(32ビット)単位で構成される。またフレームは、ホストとデバイスの間で交換される情報ユニットであり、SOF(Start Of Frame)プリミティブと、FISと、FISに対して計算されたCRC(Cyclic Redundancy Check)と、EOF(End Of Frame)プリミティブにより構成される。
送信側のリンクコントローラでは、FISに対するCRCが演算されてFISの最後尾に付加される。そしてFIS及びCRCとスクランブルデータとの排他的論理和(XOR)をとるスクランブル処理が行われる。このようにスクランブルされたFIS及びCRCに対して、8b/10bのエンコードが行われる。ここで8b/10bエンコードは、8ビットのデータを10ビットの伝送キャラクタに変換するデータ伝送符号化のアルゴリズムであり、符号列内の1と0の数を揃え、連続的な伝送を保証する。そして8b/10bエンコード後のFIS及びCRCに対してSOF、EOFなどのプリミティブが付加される。
送信側の物理層回路では、リンクコントローラからのパラレルデータがシリアルデータに変換され、小振幅の差動信号としてSATAバスに送信される。
図11に示すように受信側の物理層回路では、SATAバスを介して受信したシリアルデータがパラレルデータに変換される。
受信側のリンクコントローラでは、FIS及びCRCに付加されたプリミティブに対するデコードが行われる。またFIS及びCRCに対する8b/10bのデコードが行われる。即ち10ビットの伝送キャラクタが8ビットのデータに変換される。次に、スクランブルされたFIS及びCRCとスクランブルデータとの排他的論理和をとるデスクランブル処理が行われる。そしてFISの最後尾に付加されたCRCがチェックされる。
受信側のトランスポートコントローラでは、FISのコマンドがシャドウ・タスクファイル・レジスタに書き込まれ、ステータスや割り込みが出力されると共に、データがデータポートを介して出力される。
図12にSATAI/F50の構成例を示す。なおSATAI/F50の構成は図12に限定されず、その構成要素の一部を削除したり、他の構成要素を追加するなどの種々の変形実施が可能である。例えば物理層回路200を設けない構成としてもよい。
SATAでは、データは32ビット単位で処理される。この32ビットのデータが、リンクコントローラ150により8b/10bでエンコードされて40ビットのデータになり、物理層回路200に送られる。物理層回路200は、この40ビットのデータをシリアル化してSATAのケーブルに送信する。受信も逆の手順で、シリアルデータが物理層回路200で40ビットのデータに変換され、リンクコントローラ150で32ビットのデータに変換され、トランスポートコントローラ110に送られる。
トランスポートコントローラ110はトランスポート層の制御を行うものである。具体的にはトランスポートコントローラ110は、上位層(アプリケーション層)からFISの送信要求が来た時に、以下の処理を行う。
まずトランスポートコントローラ110は、FISタイプの要件に基づいてFISの内容を収集する。また送信する情報をFISのタイプ毎に定義フォーマットに配置する。次にリンクコントローラ150に対して送信要求を通知する。これによりリンクコントローラ150はX_RDYの送信処理を行う。そして相手ノードからのR_RDYを受信し、リンクコントローラ150から受信のアクノリッジが来ると、トランスポートコントローラ110はFISをリンクコントローラ150に転送する。そして送信FIFO120のフロー管理を行い、必要なフロー制御をリンクコントローラ150に通知する。その後、リンクコントローラ150から送信結果を受信すると、必要に応じて上位層に送信結果を通知する。
トランスポートコントローラ110は、リンクコントローラ150からFISを受信した時には、以下の処理を行う。
トランスポートコントローラ110は、リンクコントローラ150からFISを受信すると、受信したFISのタイプを判別する。そしてFISのタイプに応じた適切なレジスタやFIFOにデータを転送する。そして受信FIFO122のフロー管理を行い、必要なフロー制御をリンクコントローラ150に通知する。その後、リンクコントローラ150及び上位層(アプリケーション層)に受信結果を通知する。
リンクコントローラ150はリンク層の制御を行うものである。具体的にはリンクコントローラ150は、送信時には以下の処理を行う。
まずリンクコントローラ150はトランスポートコントローラ110からのデータ(FIS)を受け取る。そしてFISのCRCを生成し、FISの最後尾に付加する。次にデータのスクランブルを行い、その後、8b/10bのエンコードを行う。そしてSATA通信のプロトコルにしたがったプリミティブ、FISの送信を行う。そして送信結果をトランスポートコントローラ110に通知する。
リンクコントローラ150は受信時には以下の処理を行う。即ちリンクコントローラ150は物理層回路200から、8b/10bエンコードキャラクタを受信する。そして8b/10bエンコードキャラクタをデコードし、デコードしたプリミティブを処理部等に通知する。次にデコードしたFISのデスクランブル処理を行い、CRCをチェックする。そしてトランスポートコントローラ110にデータを渡す。またデコード結果やCRCのチェック結果をトランスポートコントローラ110に通知する。
物理層回路200は物理層を実現するアナログフロントエンド回路である。この物理層回路200は、シリアルデータ(シリアルストリーム)の送受信や、シリアルデータからパラレルデータへの変換や、パラレルデータからシリアルデータへの変換を行う。また8b/10bのK28.5キャラクタの検出や、OOB(Out Of Band)信号の検出と送信を行う。またデバイスステータス(デバイスの有無、転送状態、パワー状態)の提供や、通信制御用のインターフェース(転送レート制御、ループバック)の提供を行う。またオプションでパワーマネージメントも行う。
物理層回路(PHY)200はトランスミッタ(ドライバ)210、レシーバ220、OOB検出回路230などを含む。
トランスミッタ210は、差動信号線(差動信号線ペア)TX+/−を介してシリアルデータ(パケット)の送信を行い、レシーバ220は、差動信号線(差動信号線ペア)RX+/−を介してシリアルデータ(パケット)の受信を行う。TX+/−、RX+/−のSATAバス(広義にはシリアルバス)では、振幅電圧+/−250mVのNRZ差動信号によるシリアルストリーム転送が行われる。
OOB検出回路230はOOB信号の検出処理を行う。このOOB信号は、SATAインターフェースのリセット/初期化、通信の確立や、スピード・ネゴシエーションをつかさどる信号である。
リンクコントローラ150は、リンクステート制御回路160、フレーム生成回路190、フレームデコード回路192を含む。
リンクステート制御回路160は、リンクコントローラ150のステート制御を行う。例えばリセットステート、アイドルステート、送信ステート、受信ステート等のステート間の遷移処理等を行う。
フレーム生成回路190は、トランスポートコントローラ110からの送信データ(FIS)や、リンクステート制御回路160からの送信制御信号などに基づいてフレームの生成処理を行う。具体的には、トランスポートコントローラ110からのFISのCRCを演算したり、スクランブル処理を行ったり、8b/10bエンコード処理を行ったり、プリミティブを生成して付加する処理などを行う。
フレームデコード回路192は、受信したフレームの解析(分解)処理を行い、受信解析信号(パワーダウンリクエスト信号等)をリンクステート制御回路160に出力する。具体的には、FISに付加されたプリミティブを解析したり、8b/10bのデコード処理を行ったり、デスクランブル処理を行ったり、CRCを演算してチェックする処理などを行う。
トランスポートコントローラ110は、割りこみコントローラ118、DMA制御回路119、送信FIFO120、受信FIFO122、FIS生成回路130、FISデコード回路132、トランスポートステート制御回路140を含む。
割り込みコントローラ118は、デバイス4からの受信FIS情報などを知らせるための割り込み信号を生成する。DMA制御回路119は、FISに含まれる送信データや受信データ(コンテンツ・データ)のDMA転送を制御する。送信FIFO120は、DMA制御回路119からの送信データのバッファとなるFIFOである。受信FIFO122は、リンクコントローラ150からの受信データのバッファとなるFIFOである。FIS生成回路130はFISの生成を行う回路であり、FISデコード回路132はFISの解析を行う回路である。トランスポートステート制御回路140は、トランスポートコントローラ110のステート制御を行う。
なお図13(A)〜図13(D)に、SATAI/F50により送受信されるFISのフォーマット例を示す。図13(A)はホストからデバイスへのレジスタFIS、図13(B)はデバイスからホストへのレジスタFIS、図13(C)はPIOセットアップFIS、図13(D)はDMAアクティベートFISのフォーマットである。
7.シーケンスコントローラ
図14にシーケンスコントローラ30の構成例を示す。シーケンスコントローラ30はレジスタ更新部32、初期化シーケンス管理部34、パラメータ書き換え部36、DMAモード設定記憶部38、転送制御部40を含む。なおシーケンスコントローラ30の構成は図14に限定されず、その構成要素の一部を削除したり、他の構成要素を追加するなどの種々の変形実施が可能である。
レジスタ更新部32はTFR12(タスクファイル・レジスタ)、SFR52(シャドウ・タスクファイル・レジスタ)のレジスタ値の更新処理を行う。具体的にはTFR12のレジスタ値をSFR52に転送してSFR52のレジスタ値を更新したり、SFR52のレジスタ値をTFR12に転送してTFR12のレジスタ値を更新する。
例えばTFR12にホスト2によりATAコマンドが書き込まれると、PATAI/F10はコマンドライト検出信号をアクティブにする。そしてコマンドライト検出信号がアクティブになると、レジスタ更新部32はTFR12のレジスタ値をSFR52に転送する処理を行う。
またSATAI/F50は、デバイス4から受信したFISをデコードし、デコード結果に基づいて、FISの種類を知らせるための割り込み信号(広義には受信FIS情報)を生成して出力する。レジスタ更新部32は、この割り込み信号に基づいて受信FISの種類を判別して、SFR52からTFR12へのレジスタ値の転送処理などを行って、レジスタ値の更新処理を行う。
初期化シーケンス管理部34は、HRST(ハードリセット)、SRST(ソフトリセット)に伴う初期化シーケンスを管理する。具体的には、マスター、スレーブなどの設定をモニタして、PATAの初期化シーケンスを管理する。
パラメータ書き換え部36は、ホスト2がデバイス4に対してアイデンティファイ・デバイス・コマンドを発行し、デバイス4からデバイス情報のパラメータを受信した場合に、パラメータの書き換え処理を行う。即ち転送速度などのパラメータを自身が対応可能なパラメータに書き換える。
DMAモード設定記憶部38は、ホスト2がセットフューチャー・コマンドを発行した場合に、セットフューチャー・コマンドを解析して、DMA転送のモード設定を記憶する。
転送制御部40はデータ転送制御装置の転送シーケンスを制御するものであり、モニタ部42、制御信号生成部44を含む。モニタ部42は、PATAI/F10からのコマンドライト検出信号や、SATAI/F50からの割り込み信号(受信FIS情報)などの信号をモニタする。そして制御信号生成部44は、モニタ結果に基づいて、転送方向設定信号、転送開始信号、転送停止信号などの制御信号を生成し、PATI/F10、データバッファ70、SATAI/F50に出力して、転送シーケンス制御を実行する。なおデータバッファ70に対しては転送開始信号、転送停止信号は出力せず、転送方向設定信号を出力する。
図15にATAのタスクファイル・レジスタのフォーマット例を示す。タスクファイル・レジスタはコントロールブロックレジスタとコマンドブロックレジスタを有し、チップセレクト信号XCS0、XCS1が、Hレベル(ネゲート)、Lレベル(アサート)である場合にはコントロールブロックレジスタが選択され、Lレベル、Hレベルである場合にはコマンドブロックレジスタが選択される。またコマンドブロックレジスタには、ステータスレジスタ(Status)やATAコマンドレジスタ(ATA Command)が設けられる。
8.PIO転送、DMA転送
次に本実施形態のデータ転送制御装置により実現されるPIO転送、DMA転送の詳細について図16〜図19を用いて説明する。
図16はPIOリードの転送シーケンス図である。ホスト2によりPIOリードのコマンドが発行されると、図16のA1に示すようにTFR12のステータスレジスタがD0hに設定される。即ちPATAI/F10によりBUSYビットが1にセットされ、デバイス4がビジー状態であることがホスト2に知らされる。そしてシーケンスコントローラ30によりTFR12のレジスタ値がSFR52に転送(コピー)される。するとA2に示すように、SATAI/F50は、SFR52のレジスタ値に基づいてPIOリードコマンドを含むレジスタFIS(Host to Device)を作成し、SATAバスを介してデバイス4に送信する。
このレジスタFISを受信したデバイス4は、A3に示すようにPIOセットアップFISを送信する。この場合に図13(C)のPIOセットアップFISのステータス(Status)には58hが設定され、エンドステータス(E_ Status)にはD0hが設定される。ここで図20に示すように、D0hではBUSYビットが1にセットされ、58hではDRQビットが1にセットされる。また50hではBUSYビット及びDRQビットが共に0にクリア(解除)される。またエンドステータスは例えばSATAI/F50の一時保存レジスタに保存される。
シーケンスコントローラ30は、デバイス4からPIOセットアップFISを受信し、その方向パラメータD(図13(C)参照)がデバイスからホストへの方向である場合には、ホスト2が発行したコマンドはPIOリードであると判断する。そしてSFR52からTFR12にレジスタ値を転送し、A4に示すようにTFR12のステータスレジスタを58hに設定して、DRQビットを1にセットする。これによりホスト2に対する割り込みINTRQが発生する。なおINTRQの代わりにホスト2によるポーリングを採用してもよい。
そしてデバイス4からデータFISを受信し、ホスト2がデータをリードすると、A5に示すように、PIOセットアップFISのエンドステータスであるD0hがTFR12のステータスレジスタに設定され、BUSYビットが1にセットされる。即ちSATAI/F50の一時保存レジスタに保存されたエンドステータス(D0h)が、TFR12のステータスレジスタに転送されて書き込まれる。これにより、デバイス4がビジー状態であることがホスト2に知らされる。
以上のようにして各セクタのPIOリードが繰り返される。そしてA6に示すように最後のセクタのPIOセットアップFISではエンドステータスが50h又は51hになっている。従ってA7に示すようにこのエンドステータス50h又は51hがTFR12のステータスレジスタに設定され、DRQビットがクリアされる。これにより、全てのデータ転送が完了したことがホスト2に知らされる。
図17はPIOライトの転送シーケンス図である。ホスト2によりPIOライトのコマンドが発行されると、B1に示すようにBUSYビットが1にセットされる(D0h)。そしてTFR12のレジスタ値がSFR52に転送され、B2に示すようにPIOライトコマンドを含むレジスタFISがデバイス4に送信される。
このレジスタFISを受信したデバイス4は、B3に示すようにPIOセットアップFISを送信する。そしてシーケンスコントローラ30は、デバイス4からPIOセットアップFISを受信し、その方向パラメータD(図13(C)参照)がホストからデバイスへの方向である場合には、ホスト2が発行したコマンドはPIOライトであると判断する。そしてSFR52からTFR12にレジスタ値を転送し、B4に示すようにTFR12のステータスレジスタを58hに設定して、DRQビットを1にセットする。これによりホスト2に対する割り込みINTRQが発生する。
そしてホスト2がデータをライトすると、B5に示すように、PIOセットアップFISのエンドステータスであるD0hがTFR12のステータスレジスタに設定される。
以上のようにして各セクタのPIOライトが繰り返される。そしてB6に示すように最後のセクタの転送が終わると、デバイス4がレジスタFISを送信する。するとこのレジスタFISのステータス(50h又は51h)が、SFR52からTFR12に転送されて、B7に示すようにDRQビットがクリアされる。
図18はDMAリードの転送シーケンス図である。ホスト2によりDMAリードのコマンドが発行されると、C1に示すようにBUSYビットが1にセットされる(D0h)。PIO転送とは異なりDMA転送では、データ転送中にBUSYビットが1にセットされたままになる。そしてTFR12のレジスタ値がSFR52に転送され、C2に示すようにDMAリードコマンドを含むレジスタFISがデバイス4に送信される。
このレジスタFISを受信したデバイス4は、C3に示すようにデータFISを送信する。シーケンスコントローラ30は、デバイス4から受信したFISがデータFISである場合には、ホスト2が発行したコマンドはDMAリードであると判断する。そしてC4に示すようにDMARQ(図9(A)参照)がアサートされて、DMA転送が開始し、デバイス4のデータがホスト2にリードされる。
そしてDMA転送が終了し、デバイス4がレジスタFISを送信すると、C5に示すように、SFR52のレジスタ値がTFR12に転送されて、BUSYビットがクリアされる(50h又は51h)。
図19はDMAライトの転送シーケンス図である。ホスト2によりDMAライトのコマンドが発行されると、D1に示すようにBUSYビットが1にセットされる(D0h)。そしてTFR12のレジスタ値がSFR52に転送され、D2に示すようにDMAライトコマンドを含むレジスタFISがデバイス4に送信される。
このレジスタFISを受信したデバイス4は、D3に示すようにDMAアクティベートFISを送信する。シーケンスコントローラ30は、デバイス4から受信したFISがDMAアクティベートFISである場合には、ホスト2が発行したコマンドはDMAライトであると判断する。そしてD4に示すようにDMARQ(図9(B)参照)がアサートされて、DMA転送が開始し、ホスト2のデータがデバイス4にライトされる。
そしてDMA転送が終了し、デバイス4がレジスタFISを送信すると、D5に示すように、SFR52のレジスタ値がTFR12に転送され、BUSYビットがクリアされる(50h又は51h)。
9.詳細な動作
次に本実施形態のデータ転送制御装置の詳細な動作について図21〜図24のフローチャートを用いて説明する。
図21は、図16で説明したPIOリードの場合のフローチャートである。ホスト2がPIOリードコマンドを発行すると、発行されたコマンドがTFR12のコマンドレジスタに書き込まれる(ステップS1)。するとデータ転送制御装置(PATAI/F)は、TFR12のステータスレジスタをBUSY=1(D0h)に設定する(ステップS2)。またTFR12のレジスタ値をSFR52に転送(コピー)し、レジスタFIS(Host to Device)をデバイスに送信する(ステップS3)。
次にデータ転送制御装置は、PIOセットアップFISをデバイス4から受信する(ステップS4)。すると、受信したPIOセットアップFISのパラメータに基づき、転送方向(リード、ライト)、転送種別(PIO)、各セクタの転送バイト数(例えば512バイト)を設定し、総データ転送数(総セクタ数。Total sector count)を管理しないフリーラン転送を開始する(ステップS5)。
次に、デイバイス4からデータFISを受信し、データバッファ70(FIFO)に少なくとも1セクタ分のデータが蓄積されたか否かを判断する(ステップS6)。そしてデータが蓄積されると、SFR52のレジスタ値をTFR12に転送し、TFR12のステータスレジスタをBUSY=0、DRQ=1(58h)に設定する(ステップS7)。
このようにDRQ(データリクエスト)が1にセットされると、ホスト2がPIOのデータリードを開始する(ステップS8)。そしてデータ転送制御装置(シーケンスコントローラ)は、SATAI/F50、PATAI/F10の転送完了割り込みが発生したか否かを判断する(ステップS10)。
転送完了割り込みが発生した場合には、PIOセットアップFISのエンドステータスがBUSY=0、DRQ=0(50h又は51h)か否かを判断する(ステップS11)。そしてBUSY=0、DRQ=0ではない場合には、PIOセットアップFISのエンドステータス(D0h)をTFR12のステータスレジスタに設定する(ステップS12)。そしてPIOセットアップFISをデバイスから受信すると(ステップS15)、受信したPIOセットアップFISのパラメータに基づき、転送方向(リード、ライト)、転送種別(PIO)、セクタ転送バイト数を設定し(ステップS16)、ステップS6に戻る。
一方、エンドステータスがBUSY=0、DRQ=0(50h)である場合には、フリーラン転送の終了処理を行う(ステップS13)。そして、BUSY=0、DRQ=0(50h)のエンドステータスをTFR12のステータスレジスタに設定する(ステップS14)。
図22は、図17で説明したPIOライトの場合のフローチャートである。図22のステップS21〜S25は図21のステップS1〜S5と同様である。図22では、フリーラン転送を開始した後、データバッファ70のデータ蓄積を確認することなく、SFR52のレジスタ値をTFR12に転送し、TFR12のステータスレジスタをBUSY=0、DRQ=1(58h)に設定する(ステップS27)。
このようにDRQが1にセットされると、ホスト2がPIOのデータライトを開始する(ステップS28)。これによりデータ転送制御装置はデバイス4に対してデータFISを送信する(ステップS29)。そしてデータ転送制御装置は、SATAI/F50、PATAI/F10の転送完了割り込みが発生したか否かを判断する(ステップS30)。
転送完了割り込みが発生した場合には、レジスタFIS(Device to Host)の受信割り込みが発生したか否かを判断する(ステップS31)。即ちSATAI/F50はレジスタFISを受信すると、割り込み信号をシーケンスコントローラ30に出力し、レジスタFISを受信したことを知らせる。
レジスタFISの受信割り込みが発生しなかった場合には、PIOセットアップFISのエンドステータス(D0h)をTFR12のステータスレジスタに設定する(ステップS32)。そしてPIOセットアップFISをデバイスから受信すると(ステップS35)、受信したPIOセットアップFISのパラメータに基づき、転送方向(リード、ライト)、転送種別(PIO)、セクタ転送バイト数を設定し(ステップS36)、ステップS27に戻る。
一方、レジスタFISの受信割り込みが発生した場合には、フリーラン転送の終了処理を行う(ステップS33)。そしてSFR52のレジスタ値をTFR12に転送し、TFR12のステータスレジスタをBUSY=0、DRQ=0(50h、51h)に設定する(ステップS34)。
図23は、図18で説明したDMAリードの場合のフローチャートである。ホスト2がDMAリードコマンドを発行すると、発行されたコマンドがTFR12のコマンドレジスタに書き込まれる(ステップS41)。するとデータ転送制御装置は、TFR12のステータスレジスタをBUSY=1(D0h)に設定する(ステップS42)。またTFR12のレジスタ値をSFR52に転送(コピー)し、レジスタFIS(Host to Device)をデバイス4に送信する(ステップS43)。
次にデータ転送制御装置は、データFISをデバイス4から受信すると(ステップS44)、転送方向を設定し、総データ転送数(総DMA転送カウント)を管理しないフリーラン転送を開始する(ステップS45)。
次にデータ転送制御装置は、レジスタFIS(Device to Host)の受信割り込みが発生したか否かを判断する(ステップS46)。受信割り込みが発生した場合には、PATAI/F10の転送完了割り込み(ホストへのデータ出力の完了)が発生したか否かを判断する(ステップS47)。具体的には、SATAI/F50の受信FIFOやデータバッファ70のFIFOがエンプティになったか否かを確認した後、PATAI/F10の転送完了割り込みを確認する。
PATAI/F10の転送完了割り込みが発生した場合には、フリーラン転送の終了処理を行う(ステップS48)。そしてSFR52のレジスタ値をTFR12に転送し、TFR12のステータスレジスタをBUSY=0、DRQ=0(50h、51h)に設定する(ステップS49)。
図24は、図19で説明したDMAライトの場合のフローチャートである。図24が図23と異なる点は、図23ではPATAI/Fの転送完了割り込みを判断するのに対して、図24ではこのような判断は行わない点である。DMAライトの場合には、デバイス4からレジスタFISを受信した場合(ステップS56)には、フリーラン転送を終了してもよいと判断できるからである。
本実施形態では図21のステップS5、図22のステップS25、図23のステップS45、図24のステップS55に示すように、レジスタFISがデバイス4に送信された後に、総データ転送数を管理しないフリーラン転送を開始する。そして図21のステップS11、S13、図22のステップS31、S33、図23のステップS46〜S48、図24のステップS56、S58に示すように、フリーラン転送の開始後にSATAI/F50がデバイス4から受信したFISが、総データ転送の終了を示すFISであると判断した場合に、フリーラン転送の終了処理を行う。
具体的には図21のステップS11に示すように、PIOリードの場合には、フリーラン転送開始後に、エンドステータスがBUSY=0、DRQ=0であるPIOセットアップFISを受信した場合に、PIOリードのフリーラン転送を終了する。
また図22のステップS31に示すように、PIOライトの場合には、フリーラン転送開始後にデバイス4からレジスタFISを受信した場合に、PIOライトのフリーラン転送を終了する。また図23のステップS46に示すように、DMAリードの場合にも、フリーラン転送開始後にデバイス4からレジスタFISを受信した場合に、DMAリードのフリーラン転送を終了する。また図24のステップS56に示すように、DMAライトの場合にも、フリーラン転送開始後にデバイス4からレジスタFISを受信した場合に、DMAライトのフリーラン転送を終了する。このようにすれば、総データ転送数をカウントすることなくフリーラン転送を終了することが可能になり、回路の小規模化、処理の簡素化を図れる。
なお図23のステップS47に示すように、DMAリードの場合には、レジスタFISの受信後、PATAI/F10からホスト2へのデータ転送が完了した場合に、フリーラン転送を終了する。このようにすれば、データ転送制御装置にフリーラン転送のデータが残ってしまう事態を防止できる。
このように本実施形態では、総データ転送数を管理しないフリーラン転送を行うと共に、デバイス4から受信したFISが、総データ転送の終了を示すFISであると判断した場合に、フリーラン転送を終了する。従って、データサイズが最大ペイロードサイズに満たない場合には、フリーラン転送を終了できないという課題がある。
この点、本実施形態では、DMAライトの場合にFISの強制処理を行うことで、上記の課題を解決している。
例えば図25にDMAライトの場合のFISの強制終了処理のフローチャートを示す。図24のステップS55でフリーラン転送が開始すると、図25の強制終了処理では、FIFO(例えば図12の送信FIFO120)がエンプティになり、ホールドプリミティブを送信する状態になったか否かを判断する(ステップS61)。即ちホスト2からのデータ供給が停止し、デバイス4に転送すべきデータが無くなったか否かを判断する。そしてホールドプリミティブを送信すべき状態になった場合には、図2(C)で説明したように、例えばホールドプリミティブを送信したタイミングからタイムカウント処理を開始する(ステップS62)。即ちタイマに対してタイムカウントの開始信号を出力する。
次に、タイムカウント処理を開始してから所定期間TCが経過して、タイムアウトになったか否かを判断する(ステップS63)。即ち所定期間TC(例えば100μS〜10mS)の経過を知らせる検出信号がタイマから来たか否かを判断する。そしてタイムアウトになった場合には、図3(A)で説明したようにEOFを送信して、データFISを強制終了する。
このようなFISの強制終了処理を行えば、データサイズが最大ペイロードサイズに満たない場合にも、フリーラン転送を適正に終了できるようになる。
また本実施形態では図21のステップS4、S5、図22のステップS24、S25、図23のステップS44、S45、図24のステップS54、S55に示すように、デバイス4から受信したFISの種類に応じた転送シーケンス制御を実行している。即ちデバイス4に送信されたレジスタFISに対応するFISを、SATAI/F50がデバイス4から受信した場合に、ホスト2から発行されたATAコマンドの転送シーケンス制御として、受信したFISの種類に応じた転送シーケンス制御を行う。
具体的には図21のステップS4、図22のステップS24のようにPIOセットアップFISを受信した場合には、PIOリード、PIOライトの転送シーケンス制御を行う。また図23のステップS44のようにデータFISを受信した場合には、DMAリードの転送シーケンス制御を行う。また図24のステップS54のようにDMAアクティベートFISを受信した場合には、DMAライトの転送シーケンス制御を行う。
このようにすれば、ホスト2が発行したATAコマンドをデコードしなくても、デバイス4からの受信FIS情報に基づいて、発行されたATAコマンドの種別を判断して、そのATAコマンドに対応する転送シーケンス制御を実現できる。従って、コマンドデコーダの回路を節約でき、データ転送制御装置の小規模化を図れる。また、規格において新規コマンドの追加が発生しても、データ転送制御装置の回路修正を行うことなく、これに対応できる。またデータ転送制御装置にCPUを内蔵させなくても済むため、CPU上で動作するファームウェアの開発やデバッグツールの開発が不要になり、開発期間を短縮化でき、開発コストを低減できる。なおデータ転送制御装置にATAコマンドの一部をデコードする回路を設けたり、CPU(処理部)を内蔵させる変形実施も可能である。
また、データサイズが最大ペイロードサイズに満たない場合に、タイムカウント処理を開始してFISの強制終了処理を行う手法(図2(A)〜図4(B))では、デバイス4からの受信FISに基づいて転送シーケンス制御を行ってもよいし、ホスト2からのATAコマンドをデコードして転送シーケンス制御を行ってもよい。
10.割りこみ信号
図26に示すように本実施形態では、SATAI/F50は、デバイス4から受信したFISをデコード(解析)する。具体的にはSATAI/F50が有するFISデコード回路132(図11参照)がFISのデコード処理を行う。そしてSATAI/F50が有する割りこみコントローラ118が、デコード結果に基づいて、FISの種類をシーケンスコントローラ30に知らせるための割り込み信号を生成して出力する。具体的には、例えばレジスタFIS、PIOセットアップFISなどの受信を知らせる割りこみ信号を出力する。
するとシーケンスコントローラ30は、SATAI/F50からの割り込み信号に基づいて、受信したFISが総データ転送の終了を示すFISであるか否かを判断する。例えばPIOライト、DMAリード、DMAライトのフリーラン転送を開始した後に、レジスタFISの割り込み信号をSATAI/F50から受けた場合には、PIOライト、DMAリード、DMAライトの総データ転送が終了したと判断し、フリーラン転送を終了する。またPIOリードのフリーラン転送を開始した後に、PIOセットアップFISの割り込み信号をSATAI/F50から受け、PIOセットアップFISのエンドステータスがBUSY=0、DRQ=0に設定されていた場合には、PIOリードの総データ転送が終了したと判断し、フリーラン転送を終了する。
このようにすれば、シーケンスコントローラ30は、SATAI/F50に元々必要なFISデコード回路132を有効活用して、FISの種類を判別できる。従ってシーケンスコントローラ30にFISのデコード回路を設けなくても済むため、回路の小規模化を図れる。
11.電子機器
図27に本実施形態の電子機器の構成例を示す。この電子機器は、本実施形態で説明したデータ転送制御装置310とホスト302とデバイス304を含む。ホスト302とデータ転送制御装置310はPATAバスを介して接続され、データ転送制御装置310とデバイス304はSATAバスを介して接続される。なお本実施形態の電子機器の構成は図27に限定されず、その構成要素の一部を省略したり、他の構成要素を付加する変形実施が可能である。
同図においてデバイス304は、HDD(ハードディスクドライブ)等のストレージデバイスである。但しデバイス304はHDD等のストレージデバイスに限定されず、例えば光ディスクドライブ(CD、DVD)等であってもよい。
ホスト302は、処理部330(CPU)、ROM340、RAM350、表示部360、操作部370を含むことができる。処理部330(CPU)はデータ転送制御装置310や電子機器の全体制御を行う。なおデータ転送制御装置310を制御する処理部と、電子機器を制御する処理部とを別々に設けてもよい。ROM340は制御プログラムや各種データを記憶する。RAM350は処理部330やデータ転送制御装置310のワーク領域やデータ格納領域として機能する。表示部360は種々の情報をユーザに表示する。操作部370はユーザが電子機器を操作するためのものである。
本実施形態の電子機器によれば、ホスト302がSATAI/Fを有していない場合にも、データ転送制御装置310を介してSATAのデバイス304をホスト302に接続して、あたかもPATAのデバイスのように扱うことが可能になる。
なお、本実施形態を適用できる電子機器としては、カーナビゲーションシステム、車載用オーディオ機器、HDDレコーダ、ビデオカメラ、携帯型音楽プレーヤ、携帯型映像プレーヤ、ゲーム装置、又は携帯型ゲーム装置等の種々のものが考えられる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(シリアルバス、処理部、受信FIS情報等)と共に記載された用語(SATA、CPU、割りこみ信号等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またデータ転送制御装置、電子機器の構成、動作も本実施形態で説明したものに限定に限定されず、種々の変形実施が可能である。また本実施形態では、SATAへの本発明の適用例について説明したが、本発明は、SATAと同様の思想に基づく規格や、SATA(SATA I、SATA II、SAS)を発展させた規格等にも適用できる。
本実施形態のデータ転送制御装置の構成例。 図2(A)〜図2(C)は本実施形態のFISの強制終了手法の説明図。 図3(A)〜図3(C)は本実施形態のFISの強制終了手法の説明図。 図4(A)、図4(B)は本実施形態のFISの強制終了手法の説明図。 図5(A)、図5(B)は本実施形態のフリーラン転送の終了手法の説明図。 図6(A)〜図6(C)は本実施形態のフリーラン転送の終了手法の説明図。 本実施形態のデータ転送制御装置の詳細な構成例。 図8(A)、図8(B)はPIOリード、PIOライトの信号波形例。 図9(A)、図9(B)はDMAリード、DMAライトの信号波形例。 SATAの送信側のデータ処理の説明図。 SATAの受信側のデータ処理の説明図。 SATAI/Fの構成例。 図13(A)〜図13(D)はFISのフォーマット例。 シーケンスコントローラの構成例。 タスクファイル・レジスタのフォーマット例。 PIOリードの転送シーケンス図。 PIOライトの転送シーケンス図。 DMAリードの転送シーケンス図。 DMAライトの転送シーケンス図。 ステータスの各ビットの説明図。 PIOリードの動作を説明するためのフローチャート。 PIOライトの動作を説明するためのフローチャート。 DMAリードの動作を説明するためのフローチャート。 DMAライトの動作を説明するためのフローチャート。 FISの強制終了処理を説明するためのフローチャート。 割り込み信号の説明図。 電子機器の構成例。
符号の説明
2 ホスト、4 デバイス、10 PATAI/F、
12 タスクファイル・レジスタ(TFR)、14 転送コントローラ、
30 シーケンスコントローラ、32 レジスタ更新部、
34 初期化シーケンス管理部、36 パラメータ書き換え部、
38 DMA転送設定記憶部、40 転送制御部、
42 モニタ部、44 制御信号生成部、50 SATAI/F、
52 シャドウ・タスクファイル・レジスタ(SFR)、70 データバッファ、
72 メモリコントローラ、74 FIFOメモリ、
110 トランスポートコントローラ、118 割りこみコントローラ、
120 送信FIFO、122 受信FIFO、130 FIS生成回路、
132 FISデコード回路、150 リンクコントローラ、
160 リンクステート制御回路、190 フレーム生成回路、
192 フレームデコード回路、200 物理層回路、210 トランスミッタ、
220 レシーバ、230 OOB検出回路

Claims (11)

  1. パラレルATAとシリアルATAのバスブリッジ機能を有するデータ転送制御装置であって、
    パラレルATAバスに接続され、ホストとの間のインターフェースを行うパラレルATAインターフェースと、
    シリアルATAバスに接続され、シリアルATAのデバイスとの間のインターフェースを行うシリアルATAインターフェースと、
    転送シーケンス制御を行うシーケンスコントローラを含み、
    前記シリアルATAインターフェースは、
    前記パラレルATAバスを介して前記ホストがATAコマンドを発行した場合に、発行された前記ATAコマンドを含むレジスタFISを前記シリアルATAバスを介して前記デバイスに送信し、
    前記シーケンスコントローラは、
    前記レジスタFISが送信された後に、総データ転送数を管理しないフリーラン転送を開始し、
    前記シリアルATAインターフェースは、
    発行された前記ATAコマンドがDMAライトコマンドであり、データFISにより送信されるデータのサイズが最大ペイロードサイズに満たない状態で前記ホストからのデータ供給が停止した場合に、タイムカウント処理を開始し、タイムアウトになった場合には、データFISの強制終了処理を行うことを特徴とするデータ転送制御装置。
  2. 請求項1において、
    前記シリアルATAインターフェースは、
    前記ホストからのデータ供給が停止した場合にホールドプリミティブを送信し、前記ホールドプリミティブを送信したタイミングから前記タイムカウント処理を開始することを特徴とするデータ転送制御装置。
  3. 請求項1又は2において、
    前記シリアルATAインターフェースは、
    データFISの強制終了処理の後、DMAアクティブFISを前記デバイスから受信した場合に、残りデータについてのデータFISの送信を再開することを特徴とするデータ転送制御装置。
  4. 請求項1乃至3のいずれかにおいて、
    前記シリアルATAインターフェースは、
    タイムアウトになった場合に、EOFプリミティブを送信することで、データFISの強制終了処理を行うことを特徴とするデータ転送制御装置。
  5. 請求項1乃至4のいずれかにおいて、
    前記シーケンスコントローラは、
    フリーラン転送の開始後に前記シリアルATAインターフェースが前記デバイスから受信したFISが、総データ転送の終了を示すFISであると判断した場合に、DMAライトのフリーラン転送の終了処理を行うことを特徴とするデータ転送制御装置。
  6. 請求項5において、
    前記シーケンスコントローラは、
    受信したFISが前記デバイスから前記ホストへのレジスタFISである場合に、DMAライトのフリーラン転送の終了を示すFISであると判断して、DMAライトのフリーラン転送の終了処理を行うことを特徴とするデータ転送制御装置。
  7. 請求項6において、
    前記シーケンスコントローラは、
    DMAライトのフリーラン転送では、前記デバイスから前記ホストへのレジスタFISを受信した場合に、DMAライトのフリーラン転送の終了処理を行い、DMAリードのフリーラン転送では、前記デバイスから前記ホストへのレジスタFISを受信した後、前記パラレルATAインターフェースから前記ホストへのデータ転送が完了した場合に、DMAリードのフリーラン転送の終了処理を行うことを特徴とするデータ転送制御装置。
  8. 請求項5乃至7のいずれかにおいて、
    前記シリアルATAインターフェースは、
    前記デバイスから受信したFISをデコードし、デコード結果に基づいて、FISの種類を前記シーケンスコントローラに知らせるための割り込み信号を生成して出力し、
    前記シーケンスコントローラは、
    前記シリアルATAインターフェースからの前記割り込み信号に基づいて、受信したFISが総データ転送の終了を示すFISであるか否かを判断することを特徴とするデータ転送制御装置。
  9. 請求項1乃至8のいずれかにおいて、
    前記シーケンスコントローラは、
    前記デバイスに送信された前記レジスタFISに対応するFISを、前記シリアルATAインターフェースが前記デバイスから受信した場合に、前記ホストから発行された前記ATAコマンドの転送シーケンス制御として、受信したFISの種類に応じた転送シーケンス制御を行うことを特徴とするデータ転送制御装置。
  10. 請求項9において、
    前記シーケンスコントローラは、
    前記デバイスから受信したFISがDMAアクティベートFISである場合には、DMAライトの転送シーケンス制御を行うことを特徴とするデータ転送制御装置。
  11. 請求項1乃至10のいずれかに記載のデータ転送制御装置と、
    前記データ転送制御装置に接続される前記ホストと、
    前記データ転送制御装置に接続される前記デバイスと、
    を含むことを特徴とする電子機器。
JP2007037827A 2007-02-19 2007-02-19 データ転送制御装置及び電子機器 Pending JP2008204050A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007037827A JP2008204050A (ja) 2007-02-19 2007-02-19 データ転送制御装置及び電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007037827A JP2008204050A (ja) 2007-02-19 2007-02-19 データ転送制御装置及び電子機器

Publications (1)

Publication Number Publication Date
JP2008204050A true JP2008204050A (ja) 2008-09-04

Family

ID=39781518

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007037827A Pending JP2008204050A (ja) 2007-02-19 2007-02-19 データ転送制御装置及び電子機器

Country Status (1)

Country Link
JP (1) JP2008204050A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010157033A (ja) * 2008-12-26 2010-07-15 Brother Ind Ltd コンピュータシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010157033A (ja) * 2008-12-26 2010-07-15 Brother Ind Ltd コンピュータシステム

Similar Documents

Publication Publication Date Title
JP4400650B2 (ja) データ転送制御装置及び電子機器
JP3636157B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US7349973B2 (en) Data transfer control device, electronic equipment, and data transfer control method
US7272676B2 (en) Data transmission controller that restarts data transmission when reconstruction is completed
JP3632695B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2004070571A (ja) データ転送制御システム、電子機器、プログラム及びデータ転送制御方法
JP4434218B2 (ja) データ転送制御装置及び電子機器
JP2002342261A (ja) データ転送制御装置及び電子機器
US7409471B2 (en) Data transfer control device for data transfer over a bus, electronic equipment and method for data transfer over a bus
US7359996B2 (en) Data transfer control device, electronic equipment, and data transfer control method
US20030200360A1 (en) Data transfer control device, electronic equipment, and data transfer control method
JP3636160B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2008242701A (ja) データ転送制御装置及び電子機器
JP3614161B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2009048444A (ja) Usbデバイスの制御方法、コントローラ及び電子機器
JP2008204050A (ja) データ転送制御装置及び電子機器
JP2008204048A (ja) データ転送制御装置及び電子機器
JP2008204049A (ja) データ転送制御装置及び電子機器
JP2009037479A (ja) データ転送制御装置及び電子機器
JP2009037474A (ja) データ転送制御装置及び電子機器
JP2009032011A (ja) データ転送制御装置及び電子機器
JP2008293154A (ja) データ転送制御装置及び電子機器
JP2009032010A (ja) データ転送制御装置及び電子機器
JP4127071B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2009037475A (ja) データ転送制御装置及び電子機器