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

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

Info

Publication number
JP2007011781A
JP2007011781A JP2005192938A JP2005192938A JP2007011781A JP 2007011781 A JP2007011781 A JP 2007011781A JP 2005192938 A JP2005192938 A JP 2005192938A JP 2005192938 A JP2005192938 A JP 2005192938A JP 2007011781 A JP2007011781 A JP 2007011781A
Authority
JP
Japan
Prior art keywords
host
ata
data transfer
nth
data
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.)
Granted
Application number
JP2005192938A
Other languages
English (en)
Other versions
JP4442523B2 (ja
Inventor
Shinji Kobayashi
信治 小林
Takashi Oshita
俊 大下
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 JP2005192938A priority Critical patent/JP4442523B2/ja
Priority to US11/473,013 priority patent/US20070005851A1/en
Priority to CNA2006100866921A priority patent/CN1893361A/zh
Publication of JP2007011781A publication Critical patent/JP2007011781A/ja
Application granted granted Critical
Publication of JP4442523B2 publication Critical patent/JP4442523B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】 転送レートの低下を最小限に抑えるか、または転送レートを低下させず維持した状態で、ATAホストに対して様々なインターフェースを提供できるデータ転送制御装置及びこれを含む電子機器の提供。
【解決手段】 データ転送制御装置は、ATABUS1を介してATAホストとの間でデータ転送を行うATAのデバイス側I/Fと、ATABUS2を介してATAデバイスとの間でデータ転送を行うATAのホスト側I/Fと、デバイス側I/F用のパッドであるデバイス側パッド58-1、58-2、58-3・・・と、ホスト側I/F用のパッドであるホスト側パッド68-1、68-2、68-3・・・と、デバイス側パッド58-1、58-2、58-3・・・からの信号線と、ホスト側パッド68-1、68-2、68-3・・・からの信号線との間の接続、非接続を行うスイッチング素子112-1、112-2、112-3・・・を有するスイッチング回路を含む。
【選択図】 図8

Description

本発明は、データ転送制御装置及び電子機器に関する。
近年、USB(Universal serial Bus)やIEEE1394などの高速シリアルインターフェースが脚光を浴びている。そしてUSB等の高速シリアルインターフェースバスと、HDD(Hard Disk Drive)等のストレージが接続されるATA(AT Attachment)バスとの間のバスブリッジ機能を有するデータ転送制御装置も知られている。この従来技術のデータ転送制御装置によれば、USBを介してHDDに高速にデータを書き込んだり、HDDから高速にデータを読み出したりすることが可能になる。
しかしながら、この従来のデータ転送制御装置では、電子機器のメインCPU上で動作するファームウェアに、USBのプロトコル制御のためのプログラムを組み込む必要がある。このため、電子機器の設計者もUSBのプロトコル制御についてある程度理解しておく必要があり、設計者の設計作業が繁雑化したり、データ転送制御装置のメーカのサポート業務が繁雑化するなどの問題があった。
またメインCPUの機種によっては、USB等の高速シリアルインターフェース回路がIP(Intellectual Property)コアとして組み込まれるものもある。
しかしながら、高速シリアルインターフェース回路には、データの送受信を高速に行うためのアナログ回路(物理層回路)が設けられており、このアナログ回路が原因となってメインCPUの歩留まりが低下するなどの問題があった。また高速アナログ回路の設計は難しく、ノウハウが必要であるため、規格が想定する転送レートを達成できず、HDDの高速なデータの書き込み、読み出しを実現できないという問題もあった。
特開2002−344537号公報
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、転送レートの低下を最小限に抑えるか、または転送レートを低下させず維持した状態で、ATAホストに対して様々なインターフェースを提供できるデータ転送制御装置及びこれを含む電子機器を提供することにある。
本発明は、第1のATAバスを介してATAホストとの間でデータ転送を行うATAのデバイス側インターフェースと、第2のATAバスを介してATAデバイスとの間でデータ転送を行うATAのホスト側インターフェースと、前記第1のATAバスの第1〜第Nの信号線に接続されるパッドであり、前記デバイス側インターフェース用のパッドである第1〜第Nのデバイス側パッドと、前記第2のATAバスの第1〜第Nの信号線に接続されるパッドであり、前記ホスト側インターフェース用のパッドである第1〜第Nのホスト側パッドと、前記第1〜第Nのデバイス側パッドからの信号線と前記第1〜第Nのホスト側パッドからの信号線との間の接続、非接続を行う第1〜第Nのスイッチング素子を有するスイッチング回路とを含むデータ転送制御装置に関係する。
本発明によれば、第1のATAバスを介してATAホストとの間でデータ転送を行うことができるため、第1のATAバスを、ATAホストとデータ転送制御装置の間のインターフェースバスとして使用できるようになる。また本発明では、第1のATAバスの第1〜第Nの信号線に接続される第1〜第Nのデバイス側パッド(電極)と、第2のATAバスの第1〜第Nの信号線に接続される第1〜第Nのホスト側パッド(電極)と、第1〜第Nのスイッチング素子(スイッチングトランジスタ)を有するスイッチング回路が設けられる。そして第1〜第Nのスイッチング素子により、第1〜第Nのデバイス側パッドからの信号線と第1〜第Nのホスト側パッドからの信号線との間の接続、非接続が行われる。従ってATAホストは、あたかも第1のATAバスにATAデバイスが直接接続されたかのようにATAデバイスを扱って、ATAデバイスへのデータのライト、リードができる。また第1〜第Nのスイッチング素子がオンになった場合に、第1〜第Nのデバイス側パッドと第1〜第Nのホスト側パッドがショートパスで接続されるようになるため、信号遅延を小さくでき、転送レートの低下を最小限に抑えるか、または転送レートを低下させないでデータ転送を行うことが可能になる。
また本発明では、前記第1〜第Nのデバイス側パッドからの信号線に接続されるI/Oセルであり、前記デバイス側インターフェース用のI/Oセルである第1〜第Nのデバイス側I/Oセルと、前記第1〜第Nのホスト側パッドからの信号線に接続されるI/Oセルであり、前記ホスト側インターフェース用のI/Oセルである第1〜第Nのホスト側I/Oセルとを含み、前記第1〜第Nのスイッチング素子のうちの第M(1≦M≦N)のスイッチング素子は、前記第1〜第Nのデバイス側I/Oセルのうちの第Mのデバイス側I/Oセルと、前記第1〜第Nのホスト側I/Oセルのうちの第Mのホスト側I/Oセルとの間に配置されるようにしてもよい。
このようにすれば、第Mのスイッチング素子の一端と第Mのデバイス側パッドとを結ぶ信号線や、第Mのスイッチング素子の他端と第Mのホスト側パッドとを結ぶ信号線の長さを短くできる。従って、第Mのデバイス側パッドと第Mのホスト側パッドを第Mのスイッチング素子を介してショートパスで接続できるようになる。この結果、ATAバス信号の信号遅延を小さくでき、転送レートの低下を最小限に抑えるか、または転送レートを低下させないでデータ転送を行うことが可能になる。
また本発明では、前記第1〜第Nのデバイス側パッドと前記第1〜第Nのホスト側パッドは、第L(1≦L<N)のデバイス側パッドの隣に第Lのホスト側パッドが位置し、前記第Lのホスト側パッドの隣に第L+1のデバイス側パッドが位置し、前記第L+1のデバイス側パッドの隣に第L+1のホスト側パッドが位置するように配置されるようにしてもよい。
このようにすれば、第Mのデバイス側パッドからの信号線をショートパスで第Mのデバイス側I/Oセルに接続できると共に第Mのホスト側パッドからの信号線もショートパスで第Mのホスト側I/Oセルに接続できるようになる。従って、第Mのスイッチング素子の一端と第Mのデバイス側パッドとを結ぶ信号線や、第Mのスイッチング素子の他端と第Mのホスト側パッドとを結ぶ信号線の長さを更に最適に短くできるようになる。
また本発明では、前記第1〜第Nのデバイス側パッドと前記第1〜第Nのホスト側パッドは、第L(1≦L<N)のデバイス側パッドの隣に第Lのホスト側パッドが位置し、前記第Lのホスト側パッドの隣に第L+1のホスト側パッドが位置し、前記第L+1のホスト側パッドの隣に第L+1のデバイス側パッドが位置するように配置されるようにしてもよい。
このようにしても、第Mのスイッチング素子の一端と第Mのデバイス側パッドとを結ぶ信号線や、第Mのスイッチング素子の他端と第Mのホスト側パッドとを結ぶ信号線の長さを更に最適に短くできるようになる。
また本発明では、前記スイッチング回路を制御する処理部を含み、前記処理部は、ハードワイヤードモードに設定されたと判断した場合に、前記第1〜第Nのスイッチング素子をオンにし、前記第1〜第Nのデバイス側パッドからの信号線と前記第1〜第Nのホスト側パッドからの信号線との間を接続するようにしてもよい。
このようにすれば、処理部により、第1〜第Nのスイッチング素子のオン、オフを制御し、第1〜第Nのデバイス側パッドからの信号線と第1〜第Nのホスト側パッドからの信号線との間の接続(導通)、非接続(非導通)を制御できるようになる。
また本発明では、前記第1のATAバスを介して前記ATAホストが発行したコマンドが書き込まれるレジスタを含み、前記処理部は、前記レジスタに書き込まれたコマンドに基づいて、前記ハードワイヤードモードに設定されたか否かを判断するようにしてもよい。
このようにすれば、ATAホストは、第1のATAバスを介してレジスタにコマンドを書き込むだけで、ハードワイヤードモードの設定を制御できるようになる。従って、ATAホストの処理負荷をそれほど増加させることなく、ATAホストに対して様々なインターフェースの提供が可能になる。
また本発明では、前記レジスタは、前記デバイス側インターフェースが含むタスクレジスタであってもよい。
このようにすれば、ATAホストは、ATA規格に準拠した手法で、コマンドを、ATAのタスクレジスタであるレジスタに設定できるようになり、ATAホストの処理の簡素化や処理負荷の軽減化を図れる。
また本発明では、前記処理部は、ベンダ定義コマンドとして割り当てられたモード設定コマンドが前記レジスタに書き込まれた場合に、書き込まれたベンダ定義の前記モード設定コマンドに基づいて、前記ハードワイヤードモードに設定されたか否かを判断するようにしてもよい。
このようにすれば、ATAホストは、ATA規格においてベンダ定義コマンドとして割り当てられたモード設定コマンドを利用して、ハードワイヤードモードの設定を制御できるようになる。
また本発明では、前記処理部は、前記第1、第2のATAバスを介して前記ATAホスト、前記ATAデバイスの間でデータ転送を行うためのエミュレーション処理を行うようにしてもよい。
このようにすれば、エミュレーション処理を利用して、様々な形態のデータ転送を実現できるようになる。
また本発明では、第1のバスを介してデータ転送を行う第1のインターフェースと、前記デバイス側インターフェース、前記ホスト側インターフェース、前記第1のインターフェースの間でのデータ転送を制御する転送コントローラとを含むようにしてもよい。
このようにすれば、第1のATAバスを介してATAホストとの間で通信を行いながら、転送コントローラによるデータ転送制御により、例えばATAホストからのデータをATAデバイスに転送したり、ATAデバイスからのデータを第1のバスに接続されるホストやデバイスに対して転送することが可能になる。このように本発明では、第1のATAバスを有効活用することで、ATAホストに対して様々なインターフェースの提供が可能になる。
また本発明では、第3のATAバスを介してATAデバイスとの間でデータ転送を行うATAの第2のホスト側インターフェースを含み、前記転送コントローラは、前記デバイス側インターフェース、前記ホスト側インターフェース、前記第2のホスト側インターフェース、前記第1のインターフェースの間でのデータ転送を制御するようにしてもよい。
このようにすれば、ATAホストと複数のATAデバイスとの間でのデータ転送や、複数のATAデバイス間でのデータ転送を実現できる。
また本発明では、前記第1のインターフェースは、シリアルバスを介してデータの送信及び受信の少なくとも一方を行う物理層回路を含むようにしてもよい。
また本発明では、前記第1のバスはUSBであり、前記第1のインターフェースはUSBインターフェースであってもよい。
また本発明では、第1〜第K(K≧2)のバスを介してデータ転送を行う第1〜第Kのインターフェースを含み、前記転送コントローラは、前記デバイス側インターフェース、前記ホスト側インターフェース、前記第1〜第Kのインターフェースの間でのデータ転送を制御するようにしてもよい。
このようにすれば、様々なインターフェースを容易に組み込むことができるデータ転送制御装置を提供できる。
また本発明は、上記のいずれかに記載のデータ転送制御装置と、前記第1のATAバスを介して前記データ転送制御装置に接続される前記ATAホストと、前記第2のATAバスを介して前記データ転送制御装置に接続される前記ATAデバイスとを含む電子機器に関係する。
以下、本発明の実施形態について詳細に説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
1.比較例
図1(A)(B)に本実施形態の比較例を示す。図1(A)の第1の比較例では、データ転送制御装置550が、ATA(AT Attachment)のホスト側I/F(インターフェース)570とUSBI/F580を含む。この図1(A)の第1の比較例によれば、USB(Universal serial Bus)を介して転送されてきたデータをHDD540に書き込んだり、HDD540に書き込まれたデータをUSBを介してPC(Personal Computer)等に転送でき、ATAバスとUSBの変換ブリッジ機能を実現できる。
この第1の比較例では、データ転送制御装置550はメインCPU530により制御されて動作する。従って、ROM520(マスクROM、EEPROM)に記憶されメインCPU530上で動作するファームウェア(ソフトウェア)に対して、USBのプロトコル制御のためのプログラムを組み込む必要がある。
しかしながら、USBのプロトコル制御は複雑であり、電子機器の設計者にこのプロトコル制御の理解を強要すると、設計作業が繁雑化する。またデータ転送制御装置550のメーカにおいても、プロトコル制御の説明が必要になったり、不具合発生時のサポートが必要になり、サポート業務が繁雑化する。
また、USB以外のインターフェース(例えばIEEE1394、シリアルATA等)が組み込まれたデータ転送制御装置550を開発しようとすると、上記と同様の問題が生じるため、データ転送制御装置550の機能拡張や商品展開が制限されるなどの問題も生じる。
一方、図1(B)の第2の比較例では、メインCPU530に対してUSBI/F580がIPコアとして組み込まれている。このようにUSBI/F580をメインCPU530に組み込めば、メインCPU530は、USBを介して直接にUSBホストとの間でデータ転送を行うことが可能になる。
しかしながら、差動信号を用いた高速のシリアルインターフェース回路であるUSBI/F580には、データの送受信を行う物理層の高速アナログ回路が設けられており、この高速アナログ回路は、設計も難しく、プロセス変動の影響も受けやすい。従って、メインCPU530のコア回路には問題が無いのに、高速アナログ回路が原因となってメインCPU530の設計開発が失敗したり、歩留まりが低下する。またUSBI/F580の回路設計にはノウハウが必要であるため、USB2.0の規格が想定する転送レートを実現できない事態も生じる。そしてこのような事態が生じると、HDD540に対する高速なデータの書き込み、読み出しができなくなり、ユーザの利便性を阻害する。
2.構成
図2に、以上のような問題を解決できる本実施形態のデータ転送制御装置50及びこれを含む電子機器20の構成例を示す。本実施形態では、メインCPU30(ATAホスト)が有するATAのホスト側I/F32の存在に着目し、このホスト側I/F32に対応するATAのデバイス側I/F60をデータ転送制御装置50に設けている。即ち図1(A)の第1の比較例では設けられていなかったデバイス側I/F60を設けている。またHDD40を接続するためのATAのホスト側I/F70もデータ転送制御装置50に設けている。即ち、通常はどちらか一方しか設けられていないデバイス側I/F60とホスト側I/F70の両方を、データ転送制御装置50に内蔵させている。こうすることで、メインCPU30からのデータを、デバイス側I/F60、ホスト側I/F70を介してHDD40に書き込むことが可能になる。また本実施形態では、HDD40に書き込まれたデータをPC10に転送するためのUSBI/F80(第1のインターフェース)を設けている。こうすることで、図1(A)の第1の比較例と同様に、ATAバスとUSBの間のバスブリッジ機能も実現できる。
なおデータ転送制御装置50、電子機器20は図2の構成に限定されず、その構成要素の一部を省略したり、構成要素間の接続形態を変更したり、図2とは異なる構成要素を追加する変形実施が可能である。例えばデータ転送制御装置50において処理部120やUSBI/F80等の構成を省く変形実施も可能である。また電子機器20においてHDD(Hard Disk Drive)40の構成を省いたり、図2に示されるもの以外の構成要素(例えば操作部、表示部、ROM、RAM、撮像部又は電源等)を追加してもよい。
また本実施形態の電子機器20としては、ビデオカメラ、デジタルカメラ、携帯型音楽プレーヤ、携帯型映像プレーヤ、光ディスクドライブ装置、ハードディスクドライブ装置、オーディオ機器、携帯電話機、携帯型ゲーム機、電子手帳、電子辞書又は携帯型情報端末等の種々のものが考えられる。
電子機器20は、メインCPU30(広義にはメインプロセッサ、更に広義にはATAホスト)と、HDD40(広義にはストレージ、更に広義にはATAデバイス)と、データ転送制御装置50(データ転送制御回路、データ転送制御チップ)を含む。
メインCPU30は電子機器20の全体的な処理、制御を行う。例えば電子機器20がビデオカメラである場合には、メインCPU30はカメラプロセッサとして機能し、撮像デバイスの制御や画像のエフェクト処理や画像の圧縮処理などを行う。このメインCPU30はATAのホスト側I/F(インターフェース)32を含む。なおホスト側I/F32は、モード設定によりATAインターフェースに切り替わるCF+のインターフェース規格のものであってもよい。
HDD40には種々のデータが書き込まれる。例えば電子機器20がビデオカメラである場合には、撮影された映像(画像)データが、メインCPU30からデータ転送制御装置50を介してHDD40に書き込まれる。そしてHDD40に書き込まれた映像データは、データ転送制御装置50、USBを介してPC(Personal Computer)10に転送できる。こうすればユーザは、HDD40の使用記憶容量が満杯になった場合に、HDD40の映像データをPC10に転送し、PC10の内蔵HDDや光ディスクに保存することが可能になり、ユーザの利便性を向上できる。
データ転送制御装置50は、ATA(IDE)のデバイス側I/F60とATAのホスト側I/F70を含む。またUSBI/F80や転送コントローラ100やスイッチング回路110や処理部120やイベント通知部130を含むことができる。
ここでデバイス側I/F60は、ATABUS1(第1のATAバス)を介してメインCPU30(ATAホスト)との間でデータ転送(通信)を行うためのインターフェースである。またホスト側I/F70は、ATABUS2(第2のATAバス)を介してHDD40(ATAデバイス)との間でデータ転送を行うためのインターフェースである。なお本実施形態におけるATAは、ATAPI(AT Attachment with Packet Interface)を含むことができる。また、シリアルATAやCE−ATAなどの従来のATA規格を発展した規格を含むこともできる。またデータ転送制御装置50に、複数のATAのホスト側I/Fを設けてもよい。
デバイス側I/F60はレジスタ62を含む。このレジスタ62には、ATABUS1を介してメインCPU30が発行したコマンドが書き込まれる。具体的には、このレジスタ62として、ATAのデバイス側I/Fが含むタスクレジスタを使用できる。そして本実施形態では、ATAのコマンドのうちベンダ定義コマンド(Vender specific command)として割り当てられたコマンドが、レジスタ62(タスクレジスタ)に書き込まれる。転送コントローラ100、処理部120は、このベンダ定義コマンドに基づいて動作することができる。例えば転送コントローラ100は、レジスタ62に設定されたベンダ定義の転送制御コマンド(転送方向や転送データ量を指定するコマンド)に基づいて、デバイス側I/F60、ホスト側I/F70、USBI/F80のうちのいずれのインターフェース間でデータ転送を行うかを決定する。またインターフェース間で転送するデータ量を決定する。また処理部120は、レジスタ62に設定されたベンダ定義のモード設定コマンドに基づいて、データ転送制御装置50の動作モードを判断する。具体的には、動作モードがハードワイヤードモード(Hard wired mode)に設定された否かを判断する。
USBI/F80(広義には第1のインターフェース)は、USB(広義には第1のバス)を介してデータ転送(高速シリアル転送)を行うためのインターフェースである。具体的にはUSBI/F80は、USB(シリアルバス)を介してデータの受信や送信を行う物理層回路を含み、PC10(広義にはUSBホスト、更に広義にはホスト)との間のデータ転送を行う。
なおUSBI/F80がホスト機能を有する場合には、USBにUSBデバイス(広義にはデバイス)を接続し、そのUSBデバイスとの間でデータ転送を行うようにしてもよい。また第1のインターフェースは、USBインターフェースに限定されず、IEEE1394、SDなどの他の規格のインターフェースであってもよい。また第1のインターフェースがシリアルATAやCE−ATAであってもよい。また第1〜第K(K≧2)のバスを介してデータ転送を行う複数の第1〜第Kのインターフェースをデータ転送制御装置50に設けてもよい。また本実施形態におけるバスは有線であってもよいし、無線であってもよい。
転送コントローラ100は、デバイス側I/F60、ホスト側I/F70、USBI/F80(第1のインターフェース)の間でのデータ転送を制御する。
具体的には転送コントローラ100は、デバイス側I/F60、ホスト側I/F70の間でのデータ転送を制御する。これにより、メインCPU30から転送されてきたデータをHDD40に書き込んだり、HDD40に書き込まれたデータをメインCPU30に転送することが可能になる。また転送コントローラ100は、ホスト側I/F70、USBI/F80の間でのデータ転送を制御する。これにより、HDD40に書き込まれたデータをUSBを介してPC10に転送したり、PC10から転送されてきたデータをHDDに書き込むことが可能になる。また転送コントローラ100は、デバイス側I/F60、USBI/F80の間でのデータ転送を制御することも可能である。これにより、メインCPU30から転送されてきたデータをUSBを介してPC10に転送したり、PC10から転送されてきたデータをメインCPU30に転送することが可能になる。
なお転送コントローラ100は、レジスタ62に書き込まれたコマンドに基づいて、デバイス側I/F60、ホスト側I/F70、USBI/F80のうちのいずれかのインターフェース間でデータ転送を行うかを制御(決定)することができる。
転送コントローラ100はデータバッファ102(例えばFIFO)を含む。データバッファ102は、転送コントローラ100により転送されるデータを一時的に格納するためのバッファである。このデータバッファ102は、RAMなどのメモリにより実現できる。
転送コントローラ100はポートセレクタ104を含む。このポートセレクタ104は、転送コントローラ100のポートに接続されるデバイス側I/F60、ホスト側I/F70、USBI/F80(第1〜第Kのインターフェース)のうち、いずれのインターフェース間でデータ転送を行うかを選択するための回路である。例えばデバイス側I/F60、ホスト側I/F70の間でデータ転送を行う場合には、デバイス側I/F60のポートとホスト側I/F70のポートを選択し、これらのポート間でのデータ転送を行う。またホスト側I/F70、USBI/F80の間でデータ転送を行う場合には、ホスト側I/F70のポートとUSBI/F80のポートを選択し、これらのポート間でのデータ転送を行う。
スイッチング回路110は、ATABUS1とATABUS2の接続、非接続を行う回路である。具体的にはATABUS1の複数の第1〜第N(N≧2)の信号線とATABUS2の複数の第1〜第Nの信号線との間の接続、非接続を行う複数の第1〜第Nのスイッチング素子を有する。ここで第1〜第Nの信号線は、例えばCS[1:0]、DA[2:0]、DD[15:0]、DASP、DIOR、DIOW、DMACK、DMARQ、INTRQ、IORDY、PDIAG、RESETなどの信号線である。そして第1〜第Nのスイッチング素子は、ハードワイヤードモードの場合に、ATABUS1の第1〜第Nの信号線とATABUS2の第1〜第Nの信号線との間を接続する。こうすることで、メインCPU30のホスト側I/F32(ATABUS1)とHDD40(ATABUS2)を直結することができ、ハードワイヤードモードを実現できる。なおスイッチング回路110の第1〜第Nのスイッチング素子のオン、オフ制御は、例えば処理部120(スイッチング信号生成部)からのスイッチング信号に基づき行われる。
処理部120は、データ転送制御装置50の全体的な処理、制御を行ったり、データ転送制御装置50が含む各回路ブロックの制御を行う。この処理部120の機能の一部又は全部は、例えばCPUとCPU上で動作するファームウェアにより実現したり、専用のハードウェア回路により実現できる。
具体的には処理部120は、ATABUS1、ATABUS2を介してメインCPU30(ATAホスト)、HDD40(ATAデバイス)の間でデータ転送を行うためのエミュレーション処理を行う。また処理部120は、スイッチング回路110の制御を行う。そしてハードワイヤードモードに設定されたと判断した場合に、スイッチング回路110の第1〜第Nのスイッチング素子をオンにして、ATABUS1の第1〜第Nの信号線とATABUS2の第1〜第Nの信号線との間を接続する処理を行う。また処理部120は、USBを介したUSBのプロトコル制御処理(広義には、第1のバスを介したデータ転送のプロトコル制御処理)を行うこともできる。
なお処理部120をデータ転送制御装置50に内蔵させず、メインCPU30との間のインターフェース処理を行うCPUI/Fを設けるようにしてもよい。この場合には、データ転送制御装置50やデータ転送制御装置50が含む各回路ブロックの制御は、CPUI/Fを介してメインCPU30が行うことになる。
なお処理部120を動作させるためのプログラムは、メインCPU30側のメモリ(EEPROM等)に記憶しておき、電源投入後にメインCPU30がダウンロードコマンドを発行し、ATABUS1を介してデータ転送制御装置50(データ転送制御装置が有するメモリ)にダウンロードするようにしてもよい。
イベント通知部130(イベント通知回路)は、メインCPU30(ATAホスト)に対してイベントの発生を通知するための処理を行う。具体的にはイベント通知部130は、USBI/F80(第1のインターフェース)について発生したイベントをメインCPU30に対して通知する。例えばUSBにPC10が接続された場合に、PC10が接続されたことをメインCPU30に通知する。或いは、転送コントローラ100のデータ転送にエラーが生じた場合に、このエラーの発生をメインCPU30に通知する。或いは、ATABUS2に接続されるATA(ATAPI)デバイスが光ディスクドライブであり、光ディスクドライブに光ディスクがロードされた場合に、光ディスクがロードされたことをメインCPU30に通知する。
即ち本実施形態ではメインCPU30とデータ転送制御装置50の間のインターフェースは、ATABUS1になる。従ってATAのデータ転送に関するイベントの発生については、ATABUS1を介してメインCPU30に通知できるが、それ以外のイベントの発生については通知することが難しい。
この点、図2のイベント通知部130を設ければ、ATAのデータ転送に関するイベント以外のイベントについても、そのイベントの発生をメインCPU30に対して通知できるようになる。
なお、メインCPU30へのイベント発生の通知は、ATABUS1の信号線とは別に設けられた割り込み信号線などを用いて実現できる。或いは、メインCPU30のホスト側I/F32がCF+規格のI/Fである場合には、ATAモードの場合に使用されない端子(例えばカード・ディテクト端子CD)の信号線を用いて、メインCPU30にイベント発生を通知してもよい。
3.変形例
図3(A)(B)に本実施形態のデータ転送制御装置50の変形例を示す。例えば図3(A)では、データ転送制御装置50が、ATABUS3(第3のATAバス)を介してHDD41(ATAデバイス)との間でデータ転送を行うATAの第2のホスト側I/F71を含む。そして転送コントローラ100は、デバイス側I/F60、ホスト側I/F70、第2のホスト側I/F71、USBI/F80の間でのデータ転送を制御する。
図3(A)の構成によれば、2台のHDD40、41をデータ転送制御装置50に接続できるようになる。そして例えばメインCPU30からのデータをHDD40に書き込んでいる最中に、HDD41に書き込まれているデータを、USBI/F80を介してPC10に転送できる。またHDD40に書き込まれたデータをHDD41に転送して書き込んだり、HDD41に書き込まれたデータをHDD40に転送して書き込むことも可能になる。なお図3(A)では、2つのホスト側I/F70、71を設けた例を示しているが、3つ以上のホスト側I/Fを設けてもよい。
また図3(B)では、USBI/F80に加えて、SD(Secure Digital)メモリカード用のSDI/F90が設けられており、著作権保護機能(CPRM)を有するSDインターフェースを実現している。即ち図3(B)ではデータ転送制御装置50が、BUS1、BUS2(広義には第1〜第Kのバス)を介してデータ転送を行うUSBI/F80、SDI/F90(広義には第1〜第Kのインターフェース)を含む。そして転送コントローラ100は、デバイス側I/F60、ホスト側I/F70、USBI/F80、SDI/F90の間でのデータ転送を制御する。これにより、例えばメインCPU30からのデータをSDメモリカード42に書き込み、SDメモリカード42に書き込んだデータをUSBI/F80を介してPC10に転送できる。或いは、HDD40に書き込んだデータをSDメモリカード42に書き込むことも可能になる。
なお本実施形態においてデータ転送制御装置50に設ける第1〜第Kのインターフェースは、USBやSDのインターフェースに限定されない。例えばIEEE1394、シリアルATA、CE−ATAなどの種々のインターフェースを採用できる。即ち、シリアルバスなどを介してデータの受信及び送信の少なくとも一方を行う物理層回路を含む種々のインターフェースを、第1〜第Kのインターフェースとして設けることができる。
4.動作
次に本実施形態の動作について図4(A)(B)(C)を用いて説明する。本実施形態ではスイッチング回路110を設けることで、ハードワイヤードモードを実現している。このハードワイヤードモードでは図4(A)に示すように、スイッチング回路110が含むスイッチング素子がオンになり、ATABUS1の信号線(第1〜第Nの信号線)とATABUS2の信号線(第1〜第Nの信号線)が接続される。この結果、メインCPU30のホスト側I/F32とHDD40(HDD40が含むデバイス側I/F)とが直結されるようになる。従ってメインCPU30は、HDD40にデータを直接ライトしたり、HDD40からデータを直接リードすることが可能になる。またATABUS1とATABUS2が直結されるため、高速なデータのライト、リードが可能になる。
ハードワイヤードモードの設定は、例えばメインCPU30により発行されてATABUS1を介してレジスタ62に書き込まれるモード設定コマンドに基づき行うことができる。具体的には、動作モードをハードワイヤードモードに設定するモード設定コマンドがレジスタ62に書き込まれると、処理部120が、このモード設定コマンドに基づいてスイッチング信号を制御する。そしてスイッチング回路110が含むスイッチング素子をオンにし、ATABUS1の信号線とATABUS2の信号線を接続する。
この場合に、レジスタ62としては、デバイス側I/F60が含むATAのタスクレジスタを使用できる。例えば図5にATAのレジスタ構成を示す。図5は、チップセレクト信号CS1、CS0(#は負論理を示す)が、各々、H、Lレベルの場合にアドレス選択されるコマンドブロックレジスタを示している。図5において、チップセレクト信号CS1、CS0、アドレス信号DA2、DA1、DA0が、各々、H、L、H、H、Hレベルであり、ホストによるレジスタライトの場合には、A1に示すCommandレジスタにアクセスされる。そしてCommandレジスタに書き込まれるコマンドのうち、コマンドコードが80h〜8Fhのものは、ベンダ(メーカ)により自由に定義可能なベンダ定義コマンドとして規定されている。本実施形態におけるハードワイヤードモードの設定は、ベンダ定義のモード設定コマンドにより行うことができる。
また本実施形態ではメインCPU30側から見て、レジスタ62はATAの例えばスレーブとして動作し、HDD40は例えばマスタとして動作する。なお、レジスタ62をマスタとして動作させ、HDD40をスレーブとして動作させてもよい。
具体的には図5のA2に示すDevice/HeadレジスタのDEVビット(デバイス選択ビット)によって、メインCPU30からのコマンドブロックがスレーブ用なのかマスタ用なのかを判別できる。そしてメインCPU30がDEVビットをスレーブ側に設定して、ベンダ定義のモード設定コマンドを発行すると、処理部120は、DEVビットを見て、自分宛のコマンドであると判断する。そしてモード設定コマンドによりハードワイヤードモードがイネーブルに設定されると、スイッチング回路110のスイッチング素子をオンにして、ATABUS1の信号線とATABUS2の信号線を接続し、ATAホスト側I/F32とHDD40を直結する。
次に、メインCPU30がDEVビットをマスタ側に設定して、データを転送すると、HDD40は、DEVビットを見て、そのデータが自分宛のデータであると判断し、データを内蔵するハードディスクに書き込む。
その後、メインCPU30が、DEVビットをスレーブ側に設定し、ハードワイヤードモードをディスエーブルに設定するモード設定コマンドを発行すると、処理部120は、スイッチング回路110のスイッチング素子をオフにする。そしてATABUS1の信号線とATABUS2の信号線を非接続にして、ハードワイヤードモードを解除する。
図4(A)のようなハードワイヤードモードを用いることで、メインCPU30は、あたかもATABUS1に直結されたかのようにHDD40を扱って、HDD40への高速なデータのライト、リードが可能になる。
また本実施形態では図4(B)に示すように、処理部120が、ATABUS1、ATABUS2を介してメインCPU30(ATAホスト)、HDD40(ATAデバイス)の間でデータ転送を行うためのエミュレーション処理を行う。
具体的には、ATABUS1を介してデバイス側I/F60がメインCPU30からコマンドを受信すると、受信したコマンドに対応するコマンド(受信コマンドそのもの或いは受信コマンドを変換することで得られるコマンド)を、ホスト側I/F70、ATABUS2を介して、HDD40に発行する。即ちATAのホスト側I/F70にコマンドを発行させる。
そしてコマンド発行後に、ATABUS1、デバイス側I/F60、ホスト側I/F70、ATABUS2を介したデータ転送を開始する。例えば図4(B)では、メインCPU30からのデータがATABUS1、デバイス側I/F60を介して、仮想HDDとして機能するデータバッファ102に転送されて書き込まれる。そしてデータバッファ102に書き込まれたデータが、ホスト側I/F70、ATABUS2を介してHDD40に転送されて書き込まれる。
そしてデータ転送完了後に、ATABUS2を介してHDD40からホスト側I/F70がステータスをリードすると、リードしたステータスに対応するステータス(リードステータスそのもの或いはリードステータスを変換することで得られるステータス)を、デバイス側I/F60、ATABUS1を介してメインCPU30に対して返信する。
図4(B)のエミュレーション処理によれば、図4(A)のハードワイヤードモードに比べた場合、転送レートは劣るものの、ハードワイヤードモードでは実現できない様々なタイプのデータ転送が可能になる。
例えば図4(A)のハードワイヤードモードでは、レジスタ62がスレーブ(或いはマスタ)になるため、1台のマスタ(或いはスレーブ)のHDD40しか接続できないという制約がある。これに対して図4(B)のエミュレーション処理では、このような制約が無くなり、2台のマスタ、スレーブのHDD40、41を接続することが可能になる。
即ち図4(B)において、メインCPU30は、ベンダ定義のライトコマンドを発行してレジスタ62に書き込み、仮想HDDとして機能するデータバッファ102にデータを書き込む。すると処理部120は、このベンダ定義のライトコマンドを解析する。
そして処理部120が、データの宛先がマスタ側のHDD40であると、解析結果に基づき判断すると、ホスト側I/F70は、DEVビットがマスタ側に設定されたATA規格のライトコマンドを発行し、データバッファ102のデータをATABUS2に出力する。すると、マスタ側のHDD40が、このデータを受け取り、ハードディスクに書き込む。
一方、処理部120が、データの宛先がスレーブ側のHDD41であると、解析結果に基づき判断すると、ホスト側I/F70は、DEVビットがスレーブ側に設定されたATA規格のライトコマンドを発行し、データバッファ102のデータをATABUS2に出力する。すると、スレーブ側のHDD41が、このデータを受け取り、ハードディスクに書き込む。以上のようなエミュレーション処理を利用すれば、ホスト側I/F70への2台のHDD40、41の接続が可能になり、利便性を向上できる。
図4(C)に示すように、ハードワイヤードモードやエミュレーション処理によりHDD40に書き込まれたデータはUSBを介してPC10に転送できる。即ち転送コントローラ100は、HDD40からホスト側I/F70を介してリードされたデータを、USBI/F80に転送する。すると、USBI/F80は、転送されたデータをUSB(第1のバス)を介してUSBに接続されるPC10(ホスト、デバイス)に送信する。こうすることで、HDD40に書き込まれたデータを、PC10側に転送して、PC10の内蔵HDDや光ディスクに保存することが可能になり、ユーザの利便性を向上できる。
以上の本実施形態のデータ転送制御装置50によれば、図1(A)(B)の第1、第2の比較例に比べて以下の利点がある。
第1の比較例では、メインCPU530上で動作するファームウェアにUSBのプロトコル制御のためのプログラム等を組み込む必要があり、電子機器の設計作業やサポート業務が繁雑化するなどの問題があった。
これに対して図2に示す本実施形態では、メインCPU30とデータ転送制御装置50はATAインターフェースにより通信し、データ転送制御装置50のデータ転送は、ATABUS1を介してレジスタ62に書き込まれるベンダ定義コマンドにより制御される。そしてUSBのプロトコル制御については処理部120により実行される。従って、メインCPU30のファームウェアにUSBのプロトコル制御のためのプログラムを組み込む必要がなく、電子機器20の設計作業やデータ転送制御装置50のサポート作業の負担を軽減できる。
即ちATAインターフェースは従来から慣用されており、電子機器20の設計者も精通しているため、メインCPU30とデータ転送制御装置50との間の接続は確実に行うことができる。そして例えばHDD40のデータをUSBI/F80を介してPC10に転送する場合には、メインCPU30は、このような転送方向でのデータ転送を指示するベンダ定義コマンドを発行し、レジスタ62に書き込むだけで済み、USBI/F80のプロトコル制御については関与する必要がない。即ちメインCPU30のファームウェアのノーマルのATAドライバに対して、ベンダ定義コマンドの処理のための制御ドライバを付加するだけで済む。従ってメインCPU30の処理負荷を軽減できると共に、電子機器20の設計作業の負担も軽減できる。またデータ転送制御装置50のメーカは、ベンダ定義コマンドやベンダ定義コマンドの処理のための制御ドライバについてのサポートだけを行えば済むため、サポート業務の負担も軽減できる。
また本実施形態によれば、データ転送制御装置50の将来の機能拡張や商品展開を容易化できるという利点がある。例えば図3(B)の変形例のように第1〜第KのインターフェースとしてSDI/F90を追加した場合にも、SDのプロトコル制御プログラムをメインCPU30のファームウェアに組み込む必要が無く、SDのデータ転送は、ベンダ定義コマンドと処理部120の処理により実現される。従ってSDI/F90を追加しても、電子機器20の設計作業の負担やデータ転送制御装置50のサポート業務の負担はそれほど増加しない。従って、SDやシリアルATAやCE−ATAなどの新しい規格のインターフェースを、データ転送制御装置50に容易に組み込むことができ、データ転送制御装置50の多様な機能拡張や商品展開を実現できる。また、このような種々の新規格のインターフェースをデータ転送制御装置50に組み込むことで、データ転送制御装置50の商品価値も向上できる。
また図1(B)の第2の比較例では、物理層回路である高速アナログ回路をメインCPU530に組み込む必要があり、メインCPU530の設計期間が長期化したり歩留まりが低下するなどの問題があった。
これに対して図2の本実施形態では、メインCPU30には、従来から慣用されているATAのホスト側I/F32を設けるだけで済む。そしてATAのインターフェースは、CMOS(TTL)の電圧レベルのロジック回路により実現できるため、メインCPU30の設計期間の長期化や歩留まりの低下などの問題を防止できる。
またUSBのインターフェースは、回路技術のノウハウの優劣によって、実際のデータ転送レートに差が生じてしまう。これに対してATAのインターフェースは、回路技術のノウハウの優劣によって転送レートにそれほど差が生じず、その転送レートも、メインCPU30とデータ転送制御装置50の間のインターフェースとしては、十分に高速である。従って、メインCPU30、HDD40、PC10間での高速なデータ転送も実現できる。
5.スイッチング回路
図6(A)にスイッチング回路110の構成例を示す。図6(A)に示すようにスイッチング回路110は、ATABUS1の信号線とATABUS2の信号線との間の接続(導通)、非接続(非導通)を行うスイッチング素子112-1、112-2、112-3・・・(第1〜第Nのスイッチング素子)を含む。そしてレジスタ62にハードワイヤードモードの設定コマンドが書き込まれ、処理部120(スイッチング信号生成部)からのスイッチング信号がアクティブになると、スイッチング素子112-1、112-2、112-3・・・はオンになる。これにより、ATABUS1の信号線とATABUS2の信号線との間が接続される。こうすることで、メインCPU30から見て、ホスト側I/F32にHDD40があたかも直接接続されているかのように見えるハードワイヤードモードを実現できる。
そして本実施形態ではスイッチング回路110の構成として、図6(B)に示す構成を採用している。
図6(B)において、デバイス側パッド58-1、58-2、58-3・・・(広義には第1〜第Nのデバイス側パッド)は、ATABUS1の信号線(第1〜第Nの信号線)に接続されるパッド(電極)であり、デバイス側I/F60用のパッドである。即ちデバイス側パッド58-1、58-2、58-3・・・からの信号線は、デバイス側I/F60用のI/Oセル59-1、59-2、59-3・・・(広義には第1〜第Nのデバイス側I/Oセル)に接続される。
またホスト側パッド68-1、68-2、68-3・・・(広義には第1〜第Nのホスト側パッド)は、ATABUS2の信号線(第1〜第Nの信号線)に接続されるパッドであり、ホスト側I/F70用のパッドである。即ちホスト側パッド68-1、68-2、68-3・・・からの信号線は、ホスト側I/F70用のI/Oセル69-1、69-2、69-3・・・(広義には第1〜第Nのホスト側I/Oセル)に接続される。なおデバイス側I/Oセル59-1、59-2、59-3・・・や、ホスト側I/Oセル69-1、69-2、69-3・・・は、入力用I/Oセル、出力用I/Oセル、入出力用I/Oセルなどである。
本実施形態のデータ転送制御装置50は、図6(B)に示すようなデバイス側パッド58-1、58-2、58-3・・・と、ホスト側パッド68-1、68-2、68-3・・・を含む。またデバイス側I/Oセル59-1、59-2、59-3・・・と、ホスト側I/Oセル69-1、69-2、69-3・・・を含む。
そして本実施形態では、スイッチング回路110が有するスイッチング素子112-1、112-2、112-3・・・は、デバイス側パッド58-1、58-2、58-3・・・からの信号線と、ホスト側パッド68-1、68-2、68-3・・・からの信号線との間の接続、非接続を行う。即ちデバイス側パッド58-1、58-2、58-3・・・と、デバイス側I/Oセル59-1、59-2、59-3・・・の間の信号線と、ホスト側パッド68-1、68-2、68-3・・・と、ホスト側I/Oセル69-1、69-2、69-3・・・の間の信号線との接続、非接続を行う。
図6(B)に示す本実施形態の構成によれば、ATABUS1の信号線とATABUS2の信号線をショートパスで接続できる。従ってATA信号の信号遅延を小さくでき、ハードワイヤードモード時の転送レートの低下を最小限に抑えるか、または転送レートを低下させず維持することが可能になる。特にATAのデータのリード動作の場合には、信号DIORがアクティブになった後に、データ信号DDが有効になる。従って図6(B)のようにデバイス側パッド58-1、58-2、58-3・・・とホスト側パッド68-1、68-2、68-3・・・を直結して信号遅延を抑える本実施形態の手法は、転送レートの低下防止のために有効になる。
なお図7に比較例のスイッチング回路の構成を示す。図7の比較例では、スイッチング素子112-1、112-2、112-3・・・は、デバイス側I/Oセル59-1、59-2、59-3・・・と、デバイス側I/F60の間の信号線と、ホスト側I/Oセル69-1、69-2、69-3・・・と、ホスト側I/F70の間の信号線との接続、非接続を行う。
この図7の比較例では、ATABUS1の信号線とATABUS2の信号線の間の信号遅延に、I/Oセル59-1、59-2、59-3・・・や、I/Oセル69-1、69-2、69-3・・・での信号遅延が付加されてしまう。従って、信号遅延が大きくなり、ハードワイヤードモード時の転送レートが低下してしまう。
これに対して図6(B)の本実施形態によれば、図7の比較例に比べて信号遅延を小さくできるため、ハードワイヤードモード時の転送レートの低下を最小限に抑えるか、または転送レートを低下させず維持することができる。
なお図6(B)の構成の場合、スイッチング素子112-1、112-2、112-3・・・の一端及び他端に接続されるB1、B2に示す信号線が、デバイス側パッド58-1、58-2、58-3・・・、ホスト側パッド68-1、68-2、68-3・・・に直結される。従って、これらのB1、B2に示す信号線がエレクトロマイグレーションによって断線されてしまうおそれもある。従って、これらの断線を防止するためには、B1、B2に示す信号線の線幅を太くすることが望ましく、例えば6mA程度の電流が流れても断線しないように、その線幅は例えば10μm以上にすることが好ましく、更に望ましくは18μm以上にすることが好ましい。
また図6(B)ではスイッチング素子112-1、112-2、112-3・・・が、ターゲット側パッド58-1、58-2、58-3・・・と、ホスト側パッド68-1、68-2、68-3・・・に直結される。従って、パッドを介して入力される静電気によりスイッチング素子112-1、112-2、112-3・・・が破壊されるおそれもある。従ってこのような静電気破壊を防止するために、図6(B)のB1、B2に示す信号線に対してサイリスタやダイオードなどの静電気保護素子を設けることが望ましい。但し、スイッチング素子112-1、112-2、112-3・・・のドレイン/ソースの領域に寄生するダイオードにより、静電気破壊を十分に防止できる場合には、このような静電気保護素子を設けないようにすることもできる。
図8に、I/Oセル、スイッチング素子、パッドの詳細な構成及び配置の例を示す。図8では、データ転送制御装置50のI/O領域56には、デバイス側I/F60用のI/Oセルであるデバイス側I/Oセル59-1、59-2、59-3・・・と、ホスト側I/F70用のI/Oセルであるホスト側I/Oセル69-1、69-2、69-3・・・が配置されている。またI/O領域56には、スイッチング素子112-1、112-2、112-3・・・が配置されている。
なおI/O領域56は、データ転送制御装置50のチップの周縁部の領域である。またI/Oセル59-1、59-2、59-3・・・や、69-1、69-2、69-3・・・は、入力用バッファや出力用バッファを含む。またスイッチング素子112-1、112-2、112-3・・・は、N型トランジスタのソース/ドレインとP型トランジスタのソース/ドレインが接続されたトランスファーゲートのスイッチング素子となっている。これらのトランスファーゲートを構成するN型、P型トランジスタのゲートには、処理部120(スイッチング信号生成部)からのスイッチング信号が接続される。なおスイッチング素子を例えばN型トランジスタだけで構成することも可能である。
図8では、第1〜第Nのスイッチング素子のうちの第M(1≦M≦N)のスイッチング素子は、第1〜第Nのデバイス側I/Oセルのうちの第Mのデバイス側I/Oセルと、第1〜第Nのホスト側I/Oセルのうちの第Mのホスト側I/Oセルとの間に配置される。具体的には、スイッチング素子112-1(第Mのスイッチング素子)は、デバイス側I/Oセル59-1(第Mのデバイス側I/Oセル)とホスト側I/Oセル69-1(第Mのホスト側I/Oセル)の間に配置される。またスイッチング素子112-2は、デバイス側I/Oセル59-2とホスト側I/Oセル69-2の間に配置され、スイッチング素子112-3は、デバイス側I/Oセル59-3とホスト側I/Oセル69-3の間に配置される。
I/Oセルやスイッチング素子を図8に示すようにI/O領域56に配置すれば、ハードワイヤードモード時に、デバイス側パッドとホスト側パッドをスイッチング素子を介してショートパスで接続できるようになる。
例えば図8では、デバイス側I/Oセル59-1、スイッチング素子112-1、ホスト側I/Oセル69-1が隣接して配置されるため、図8のC1、C2に示す信号線の長さを短くできる。従ってハードワイヤードモード時に、スイッチング素子112-1がオンになった場合に、デバイス側パッド58-1とホスト側パッド58-2がショートパスで接続されるようになる。従って、ATAバス信号の信号遅延を小さくでき、ハードワイヤードモード時の転送レートの低下を最小限に抑えるか、または転送レートを低下させず維持した状態で、データ転送を行うことが可能になる。
また図8の配置によれば、I/O領域56の空き領域を有効活用して、スイッチング素子112-1、112-2、112-3・・・を配置できる。従って、スイッチング素子112-1、112-2、112-3・・・を設けたことによるデータ転送制御装置50のチップ面積の増加を最小限に抑えることができ、データ転送制御装置50の低コスト化を図れる。
なお図8では、第L(1≦L<N)のデバイス側パッドの隣に第Lのホスト側パッドが位置し、第Lのホスト側パッドの隣に第L+1のデバイス側パッドが位置し、第L+1のデバイス側パッドの隣に第L+1のホスト側パッドが位置するように、デバイス側パッドとホスト側パッドが配置されている。具体的には、デバイス側パッド58-1の隣にホスト側パッド68-1が位置し、ホスト側パッド68-1の隣にデバイス側パッド58-2が位置し、デバイス側パッド58-2の隣にホスト側パッド68-2が位置するように、パッドが配置される。
このようにパッドを配置すれば、デバイス側パッドからの信号線をショートパスでデバイス側I/Oセルに接続できると共にホスト側パッドからの信号線もショートパスでホスト側I/Oセルに接続できる。従って図8のC1、C2に示す信号線の長さを更に最適に短くでき、ハードワイヤードモード時の転送レートの低下を最小限に抑えるか、または転送レートを低下させず維持した状態で、データ転送を行うことが可能になる。
なお、パッド、I/Oセル、スイッチング素子の配置は図8に限定されず、図9のような配置であってもよい。
即ち図9では、第L(1≦L<N)のデバイス側パッドの隣に第Lのホスト側パッドが位置し、第Lのホスト側パッドの隣に第L+1のホスト側パッドが位置し、第L+1のホスト側パッドの隣に第L+1のデバイス側パッドが位置するように、デバイス側パッドとホスト側パッドが配置される。具体的には、デバイス側パッド58-1の隣にホスト側パッド68-1が位置し、ホスト側パッド68-1の隣にホスト側パッド68-2が位置し、ホスト側パッド68-2の隣にデバイス側パッド58-2が位置するように、パッドが配置される。
この図9の配置でも、デバイス側パッドからの信号線をショートパスでデバイス側I/Oセルに接続できると共にホスト側パッドからの信号線もショートパスでホスト側I/Oセルに接続できる。従って図9のD1、D2に示す信号線の長さを短くでき、ハードワイヤードモード時の転送レートの低下を最小限に抑えるか、または転送レートを低下させず維持した状態で、データ転送を行うことが可能になる。
なおデバイス側I/Oセル、ホスト側I/Oセル、スイッチング素子、デバイス側パッド、ホスト側パッドの配置は、図8、図9の配置に限定されない。例えばデバイス側I/Oセルとホスト側I/Oセルの間以外の場所に、スイッチング素子を配置する変形実施も可能である。また図8、図9とは異なる配置で、デバイス側パッドやホスト側パッドを配置することも可能である。
6.ATAのデバイス側I/F、ホスト側I/F
図10(A)にATAのデバイス側I/F60の構成例を示す。図10(A)に示すようにデバイス側I/F60は、タスクレジスタ200、MDMA/PIO制御部202、UltraDMA制御部204、データバッファ206、転送制御部208を含む。
タスクレジスタ200は、ATA(IDE)で規格化されているレジスタであり、図5に示すようなコマンドブロックレジスタや、コントロールブロックレジスタを含む。ここでコマンドブロックレジスタは、コマンドを発行したりステータスを読み込むのに使用されるレジスタである。またコントロールブロックレジスタは、デバイスをコントロールしたり、代替えステータスを読み込むのに使用されるレジスタである。
MDMA/PIO制御部202は、ATAのマルチワードDMA転送やPIO転送についてのデバイス側の制御処理を行う。UltraDMA制御部204は、ATAのUltraDMA転送についてのデバイス側の制御処理を行う。データバッファ206(FIFO)は、データ転送の転送レートの差を調整(緩衝)するためのバッファである。転送制御部208は後段の回路(転送コントローラ100、データバッファ102)との間のデータ転送を制御する。
図10(B)にATAのホスト側I/F70の構成例を示す。図10(B)に示すようにホスト側I/F70は、タスクレジスタ・アクセスアービタ210、MDMA/PIO制御部212、UltraDMA制御部214、データバッファ216、転送制御部218を含む。
タスクレジスタ・アクセスアービタ210は、デバイス側に設けられるタスクレジスタ(図10(A)の200)に対するアクセスの調停処理を行う。MDMA/PIO制御部212は、ATAのマルチワードDMA転送やPIO転送についてのホスト側の制御処理を行う。UltraDMA制御部214は、ATAのUltraDMA転送についてのホスト側の制御処理を行う。データバッファ216(FIFO)は、データ転送の転送レートの差を調整(緩衝)するためのバッファである。転送制御部218は後段の回路(転送コントローラ100、データバッファ102)との間のデータ転送を制御する。
次に、ATAのデータ転送について図11(A)〜図12(B)の信号波形を用いて説明する。図11(A)〜図12(B)においてCS[1:0]は、ATAの各レジスタにアクセスするために使用するチップセレクト信号である。DA[2:0]は、データ又はデータポートにアクセスするためのアドレス信号である。DMARQ、DMACKは、DMA転送に使用される信号である。データ転送の準備が整った時にデバイス側がDMARQをアクティブ(アサート)にし、これに応答して、ホスト側がDMACKをアクティブにする。
DIOW(STOP)は、レジスタ又はデータポートの書き込み時に使用するライト信号である。なお、UrtraDMA転送中はSTOP信号として機能する。DIOR(HDMARDY、HSTROBE)は、レジスタ又はデータポートの読み出し時に使用するリード信号である。なお、UrtraDMA転送中はHDMARDY、HSTROBE信号として機能する。IORDY(DDMARDY、DSTROBE)は、デバイス側のデータ転送の準備が整っていない時のウェイト信号等に使用される。なお、UrtraDMA転送中はDDMARDY、DSTROBE信号として機能する。
INTRQは、デバイス側が、ホスト側に対して割り込みを要求するために使用される信号である。このINTRQがアクティブになった後、ホスト側がデバイス側のタスクレジスタのステータスレジスタの内容を読むと、所定時間後にデバイス側はINTRQを非アクティブ(ネゲート)にする。このINTRQを用いることで、デバイス側は、コマンド処理の終了をホスト側に通知できる。
図11(A)、(B)は、PIO(Parallel I/O)リード、PIOライト時の信号波形例である。ATAのステータスレジスタのリードは図11(A)のPIOリードにより行い、コマンドレジスタへのライトは図11(B)のPIOライトにより行う。例えば、メインCPU30によるベンダ定義のコマンドの発行は、PIOライトにより実現できる。
図12(A)、(B)は、DMAリード、DMAライト時の信号波形例である。データ転送の準備ができると、デバイス側が、DMARQをアクティブにする。そして、それを受けて、ホスト側が、DMACKをアクティブにして、DMA転送を開始する。その後、DIOR(リード時)又はDIOW(ライト時)を使用して、データDD[15:0]のDMA転送を行う。
7.USBI/F
USBでは、図13(A)に示すようなエンドポイント(EP0〜15)がUSBデバイス側に用意される。またUSBでは、転送(transfer)のタイプとして、コントロール転送、アイソクロナス転送、インタラプト転送、バルク転送などが定義されており、各転送は一連のトランザクションにより構成される。そしてトランザクションは図13(B)に示すように、トークンパケットと、オプショナルなデータパケットと、オプショナルなハンドシェークパケットにより構成される。
OUTトランザクションでは、図13(C)に示すように、まず、USBホストがUSBデバイスに対してOUTトークン(トークパケット)を発行する。次に、USBホストはUSBデバイスに対してOUTデータ(データパケット)を送信する。そして、USBデバイスは、OUTデータの受信に成功すれば、USBホストに対してACK(ハンドシェークパケット)を送信する。一方、INトランザクションでは、図13(D)に示すように、まず、USBホストがUSBデバイスに対してINトークンを発行する。そしてINトークンを受信したUSBデバイスは、USBホストに対してINデータを送信する。そしてUSBホストは、INデータの受信に成功すると、USBデバイスに対してACKを送信する。
なお”D←H”は、USBホストからUSBデバイスに対して情報が転送されることを意味し、”D→H”は、USBデバイスからUSBホストに対して情報が転送されることを意味する。
次に、USBのバルクオンリートランスポートのプロトコルについて説明する。ハードディスクドライブや光ディスクドライブなどの大容量記憶装置は、マスストレージと呼ばれるクラスに属する。このマスストレージクラスには、バルクオンリートランスポートというプロトコルが規格化されている。
バルクオンリートランスポートでは、バルクIN、バルクOUTの2つのエンドポイントを用いてパケット転送が行われる。即ち、コマンドには、CBW(Command Block Wrapper)と呼ばれる31バイトのデータが使用され、バルクOUTのエンドポイントを用いて転送される。データ転送には、転送方向に応じてバルクIN、バルクOUTのエンドポイントが使用される。コマンドに対するステータスには、CSW(Command Status Wrapper)と呼ばれる13バイトのデータが使用され、バルクINのエンドポイントを用いて転送される。
次に、バルクオンリートランスポートの送受信処理(プロトコル制御)について、図14(A)、(B)を用いて説明する。図14(A)に示すように、USBホストがUSBデバイスにデータを送信する場合には、まずUSBホストがCBWをUSBデバイスに送信するコマンドトランスポートが行われる。具体的には、USBホストが、エンドポイントEP1を指定するトークンパケットをUSBデバイスに送信し、次に、CBWをUSBデバイスのエンドポイントEP1に送信する。このCBWはライトコマンドを含む。そして、USBデバイスからUSBホストにACKのハンドシェークパケットが返却されると、コマンドトランスポートが終了する。
コマンドトランスポートが終了するとデータトランスポートに移行する。このデータトランスポートでは、まずUSBホストが、エンドポイントEP1を指定するトークンパケットをUSBデバイスに送信し、次に、OUTデータをUSBデバイスのエンドポイントEP1に送信する。そして、USBデバイスからUSBホストにACKのハンドシェークパケットが返却されると、1つのトランザクションが終了する。そして、このようなトランザクションが繰り返され、CBWで指定されるデータ長の分だけデータが送信されると、データトランスポートが終了する。
データトランスポートが終了するとステータストランスポートに移行する。このステータストランスポートでは、まず、USBホストが、エンドポイントEP2を指定するトークンパケットをUSBデバイスに送信する。すると、USBデバイスが、エンドポイントEP2にあるCSWをUSBホストに送信する。そして、USBホストからUSBデバイスにACKのハンドシェークパケットが返却されると、ステータストランスポートが終了する。
USBホストがUSBデバイスからデータを受信する場合は、図14(B)に示すように処理が行われる。図14(B)が図14(A)と異なるのは、コマンドトランスポートのCBWがリードコマンドを含む点と、データトランスポートにおいてINデータの転送が行われる点である。
図15にUSBI/F80の構成例を示す。USBI/F80は、トランシーバ220、転送コントローラ250、データバッファ290を含む。
トランシーバ220(デュアルトランシーバ)は、差動信号(DP、DM)を用いてUSB(広義にはバス或いはシリアルバス)のデータを送受信するための回路であり、ホストトランシーバ230、デバイストランシーバ240を含む。
ホストトランシーバ230は、アナログフロントエンド回路(物理層回路)及び高速ロジック回路を有し、USBのHSモード(480Mbps)、FSモード(12Mbps)、LSモード(1.5Mbps)をサポートする。デバイストランシーバ240は、アナログフロントエンド回路(物理層回路)及び高速ロジック回路を有し、USBのHSモード、FSモードをサポートする。このデバイストランシーバ240としてはUTMI(USB2.0 Transceiver Macrocell Interface)仕様に準拠した回路を用いることができる。
転送コントローラ250は、USBを介したデータ転送を制御するためのコントローラであり、トランザクション層やリンク層などのデータ転送制御を行う。この転送コントローラ250は、ホストコントローラ260、デバイスコントローラ270、ポートセレクタ280を含む。なおこれらの一部を省略する構成としてもよい。
ホストコントローラ260(ホストSerial Interface Engine)は、ホストモード時のデータ転送を制御する。具体的にはホストコントローラ260は、トランザクションのスケジューリング(発行)やトランザクションの管理やパケットの生成&解析などを行う。またサスペンド、レジューム、リセット等のバスイベントを生成する。更にバスの接続・切断状態の検出やVBUSの制御などを行う。
デバイスコントローラ270(デバイスSerial Interface Engine)は、デバイスモード時のデータ転送を制御する。具体的にはデバイスコントローラ270は、トランザクションの管理やパケットの生成&解析などを行う。またサスペンド、レジューム、リセット等のバスイベントを制御する。
ポートセレクタ280は、ホストモードとデバイスモードのいずれかを選択して有効にするためのセレクタである。例えばレジスタ等の設定によりホストモードが選択されると、ポートセレクタ280はホストコントローラ260、ホストトランシーバ230を選択(イネーブル)する。一方、レジスタ等の設定によりデバイスモードが選択されると、ポートセレクタ280はデバイスコントローラ270、デバイストランシーバ240を選択(イネーブル)する。
データバッファ290(FIFO、パケットバッファ)は、USB(シリアルバス)を介して転送されるデータ(送信データ、受信データ)を一時的に格納(バッファリング)するためのバッファである。このデータバッファ290は、RAMなどのメモリにより実現できる。
なお、転送コントローラ250やデータバッファ290の一部の機能を、図2の転送コントローラ100やデータバッファ102により実現してもよい。また図15では、ホスト動作とデバイス動作の両方の動作を行うUSBI/F80の例を示したが、デバイス動作だけを行うものであってもよい。
8.詳細な処理
次に、本実施形態の詳細な処理について図16、図17のフローチャートを用いて説明する。図16は、ハードワイヤードモード時の詳細な処理を示すフローチャートである。
まず、ATAのデバイス側I/Fが、タスクレジスタのハードワイヤードモードのイネーブルビットをオンにするコマンド(ベンダ定義コマンド)を、メインCPUから受信する(ステップS1)。すると処理部(スイッチング信号生成部)が、デバイス側パッドとホスト側パッドを接続するスイッチング素子をオンにする(ステップS2)。そしてメインCPUがハードワイヤードモードでHDDにデータをライトする(ステップS3)。
次に、ATAのデバイス側I/Fが、タスクレジスタのハードワイヤードモードのイネーブルビットをオフにするコマンドを、メインCPUから受信する(ステップS4)。すると処理部が、デバイス側パッドとホスト側パッドを接続するスイッチング素子をオフにする(ステップS5)。
次に、USBI/FがPC(USBホスト)からCBWを受信する(ステップS6)。即ちユーザがPCの画面上で、HDDのデータをPCに移動又はコピーする操作を行うと、PCがUSBI/Fに対して、リードコマンドを含むCBWを送信する。すると、ATAのホスト側I/FがHDDにデータのリードコマンドを発行する(ステップS7)。そしてHDDからホスト側I/Fへのデータ転送を開始する(ステップS8)。またUSBI/FからPCへのINデータの転送を開始する(ステップS9)。
そして、両方のデータ転送が全て終了したか否かが判断され(ステップS10)、終了した場合には、ホスト側I/FがHDDにステータスのリードコマンドを発行し、ステータスをリードする(ステップS11)。そしてリードしたステータスをUSBI/FのデータバッファのCSW領域にライトする(ステップS12)。そしてPCがUSBI/FからCSWを受信して(ステップS13)、転送処理が終了する。
図17はエミュレーションによるデータ転送の詳細な処理を示すフローチャートである。まず、ATAのデバイス側I/FがメインCPUからコマンドを受信する(ステップS21)。すると、受信したコマンドを処理部が解析し、受信したコマンドに対応するコマンドをホスト側I/FがHDDに発行する(ステップS22)。このコマンド発行はATAのPIO転送により行われる。そしてメインCPUからデバイス側I/Fへのデータ転送が開始する(ステップS23)。またホスト側I/FからHDDへのデータ転送も開始する(ステップS24)。
次に、両方のデータ転送が全て終了したか否かが判断され(ステップS25)、終了した場合には、ホスト側I/FがHDDにステータスのリードコマンドを発行し、ステータスをリードする(ステップS26)。そして、リードしたステータスを処理部が解析し、リードしたステータスに対応するステータスを、デバイス側I/Fのタスクレジスタにライトする(ステップS27)。すると、メインCPUがタスクレジスタからステータスをリードする(ステップS28)。
次に、図16のステップS6〜S13と同様の処理が行われ(ステップS29〜S36)、HDDに書き込まれたデータがPCに転送される。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(ATAホスト、ATAデバイス、第1のインターフェース等)と共に記載された用語(メインCPU、HDD、USBI/F等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またデータ転送制御装置や電子機器の構成、動作も本実施形態で説明したものに限定に限定されず、種々の変形実施が可能である。例えば第1のATAバスや第2のATAバスは、シリアルATAやCE−ATAのバスであってもよい。また第1〜第Kのインターフェースは、USB、IEEE1394、SD以外のインターフェースであってもよく、例えばデータの受信及び送信の少なくとも一方を行う物理層回路を含む様々なインターフェースを採用できる。
図1(A)(B)は第1、第2の比較例の説明図。 本実施形態のデータ転送制御装置、電子機器の構成例。 図3(A)(B)は本実施形態の変形例。 図4(A)(B)(C)は本実施形態の動作の説明図。 ATAのレジスタの説明図。 図6(A)(B)はスイッチング回路の構成例。 比較例のスイッチング回路。 I/Oセル、スイッチング素子、パッドの詳細な構成及び配置の例。 I/Oセル、スイッチング素子、パッドの詳細な構成及び配置の例。 図10(A)(B)はATAのデバイス側I/F、ホスト側I/Fの構成例。 図11(A)(B)はATAのPIO転送の信号波形例。 図12(A)(B)はATAのDMA転送の信号波形例。 図13(A)〜(D)はUSBのデータ転送の説明図。 図14(A)(B)はバルクオンリートランスポートの説明図。 USBI/Fの構成例。 本実施形態の詳細な動作を説明するためのフローチャート。 本実施形態の詳細な動作を説明するためのフローチャート。
符号の説明
ATABUS1 第1のATAバス、ATABUS2 第2のATAバス、
ATABUS2 第3のATAバス、
10 PC(USBホスト)、20 電子機器、30 メインCPU(ATAホスト)、
32 ATAのホスト側I/F、40、41 HDD(ATAデバイス)、
50 データ転送制御装置、58 デバイス側パッド、59 デバイス側I/Oセル、
60 ATAのデバイス側I/F、62 レジスタ、68 ホスト側パッド、
69 ホスト側I/Oセル、70、71 ATAのホスト側I/F、
80 USBI/F、90 SDI/F、100 転送コントローラ、
102 データバッファ、104 ポートセレクタ、110 スイッチング回路、
112 スイッチング素子、120 処理部(CPU等)、130 イベント通知部、

Claims (15)

  1. 第1のATAバスを介してATAホストとの間でデータ転送を行うATAのデバイス側インターフェースと、
    第2のATAバスを介してATAデバイスとの間でデータ転送を行うATAのホスト側インターフェースと、
    前記第1のATAバスの第1〜第Nの信号線に接続されるパッドであり、前記デバイス側インターフェース用のパッドである第1〜第Nのデバイス側パッドと、
    前記第2のATAバスの第1〜第Nの信号線に接続されるパッドであり、前記ホスト側インターフェース用のパッドである第1〜第Nのホスト側パッドと、
    前記第1〜第Nのデバイス側パッドからの信号線と前記第1〜第Nのホスト側パッドからの信号線との間の接続、非接続を行う第1〜第Nのスイッチング素子を有するスイッチング回路と、
    を含むことを特徴とするデータ転送制御装置。
  2. 請求項1において、
    前記第1〜第Nのデバイス側パッドからの信号線に接続されるI/Oセルであり、前記デバイス側インターフェース用のI/Oセルである第1〜第Nのデバイス側I/Oセルと、
    前記第1〜第Nのホスト側パッドからの信号線に接続されるI/Oセルであり、前記ホスト側インターフェース用のI/Oセルである第1〜第Nのホスト側I/Oセルとを含み、
    前記第1〜第Nのスイッチング素子のうちの第M(1≦M≦N)のスイッチング素子は、前記第1〜第Nのデバイス側I/Oセルのうちの第Mのデバイス側I/Oセルと、前記第1〜第Nのホスト側I/Oセルのうちの第Mのホスト側I/Oセルとの間に配置されることを特徴とするデータ転送制御装置。
  3. 請求項1又は2において、
    前記第1〜第Nのデバイス側パッドと前記第1〜第Nのホスト側パッドは、
    第L(1≦L<N)のデバイス側パッドの隣に第Lのホスト側パッドが位置し、前記第Lのホスト側パッドの隣に第L+1のデバイス側パッドが位置し、前記第L+1のデバイス側パッドの隣に第L+1のホスト側パッドが位置するように配置されることを特徴とするデータ転送制御装置。
  4. 請求項1又は2において、
    前記第1〜第Nのデバイス側パッドと前記第1〜第Nのホスト側パッドは、
    第L(1≦L<N)のデバイス側パッドの隣に第Lのホスト側パッドが位置し、前記第Lのホスト側パッドの隣に第L+1のホスト側パッドが位置し、前記第L+1のホスト側パッドの隣に第L+1のデバイス側パッドが位置するように配置されることを特徴とするデータ転送制御装置。
  5. 請求項1乃至4のいずれかにおいて、
    前記スイッチング回路を制御する処理部を含み、
    前記処理部は、
    ハードワイヤードモードに設定されたと判断した場合に、前記第1〜第Nのスイッチング素子をオンにし、前記第1〜第Nのデバイス側パッドからの信号線と前記第1〜第Nのホスト側パッドからの信号線との間を接続することを特徴とするデータ転送制御装置。
  6. 請求項5において、
    前記第1のATAバスを介して前記ATAホストが発行したコマンドが書き込まれるレジスタを含み、
    前記処理部は、
    前記レジスタに書き込まれたコマンドに基づいて、前記ハードワイヤードモードに設定されたか否かを判断することを特徴とするデータ転送制御装置。
  7. 請求項6において、
    前記レジスタは、前記デバイス側インターフェースが含むタスクレジスタであることを特徴とするデータ転送制御装置。
  8. 請求項6又は7において、
    前記処理部は、
    ベンダ定義コマンドとして割り当てられたモード設定コマンドが前記レジスタに書き込まれた場合に、書き込まれたベンダ定義の前記モード設定コマンドに基づいて、前記ハードワイヤードモードに設定されたか否かを判断することを特徴とするデータ転送制御装置。
  9. 請求項5乃至8のいずれかにおいて、
    前記処理部は、
    前記第1、第2のATAバスを介して前記ATAホスト、前記ATAデバイスの間でデータ転送を行うためのエミュレーション処理を行うことを特徴とするデータ転送制御装置。
  10. 請求項1乃至9のいずれかにおいて、
    第1のバスを介してデータ転送を行う第1のインターフェースと、
    前記デバイス側インターフェース、前記ホスト側インターフェース、前記第1のインターフェースの間でのデータ転送を制御する転送コントローラと、
    を含むことを特徴とするデータ転送制御装置。
  11. 請求項10において、
    第3のATAバスを介してATAデバイスとの間でデータ転送を行うATAの第2のホスト側インターフェースを含み、
    前記転送コントローラは、
    前記デバイス側インターフェース、前記ホスト側インターフェース、前記第2のホスト側インターフェース、前記第1のインターフェースの間でのデータ転送を制御することを特徴とするデータ転送制御装置。
  12. 請求項10又は11おいて、
    前記第1のインターフェースは、
    シリアルバスを介してデータの送信及び受信の少なくとも一方を行う物理層回路を含むことを特徴とするデータ転送制御装置。
  13. 請求項10乃至12のいずれかにおいて、
    前記第1のバスはUSBであり、前記第1のインターフェースはUSBインターフェースであることを特徴とするデータ転送制御装置。
  14. 請求項10乃至13のいずれかにおいて、
    第1〜第K(K≧2)のバスを介してデータ転送を行う第1〜第Kのインターフェースを含み、
    前記転送コントローラは、
    前記デバイス側インターフェース、前記ホスト側インターフェース、前記第1〜第Kのインターフェースの間でのデータ転送を制御することを特徴とするデータ転送制御装置。
  15. 請求項1乃至14のいずれかに記載のデータ転送制御装置と、
    前記第1のATAバスを介して前記データ転送制御装置に接続される前記ATAホストと、
    前記第2のATAバスを介して前記データ転送制御装置に接続される前記ATAデバイスと、
    を含むことを特徴とする電子機器。
JP2005192938A 2005-06-30 2005-06-30 データ転送制御装置及び電子機器 Expired - Fee Related JP4442523B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005192938A JP4442523B2 (ja) 2005-06-30 2005-06-30 データ転送制御装置及び電子機器
US11/473,013 US20070005851A1 (en) 2005-06-30 2006-06-23 Data transfer control device and electronic instrument
CNA2006100866921A CN1893361A (zh) 2005-06-30 2006-06-28 数据传输控制装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005192938A JP4442523B2 (ja) 2005-06-30 2005-06-30 データ転送制御装置及び電子機器

Publications (2)

Publication Number Publication Date
JP2007011781A true JP2007011781A (ja) 2007-01-18
JP4442523B2 JP4442523B2 (ja) 2010-03-31

Family

ID=37591143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005192938A Expired - Fee Related JP4442523B2 (ja) 2005-06-30 2005-06-30 データ転送制御装置及び電子機器

Country Status (3)

Country Link
US (1) US20070005851A1 (ja)
JP (1) JP4442523B2 (ja)
CN (1) CN1893361A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010519617A (ja) * 2007-03-22 2010-06-03 エルエスアイ コーポレイション イニシエータの通知方法および装置
JP2013254479A (ja) * 2012-05-08 2013-12-19 Unitex:Kk インタフェース変換装置及びインタフェース変換方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200813856A (en) * 2006-09-15 2008-03-16 Alcor Micro Corp USB peripheral device with dynamic change class and application thereof
TWI784165B (zh) * 2019-05-06 2022-11-21 旺玖科技股份有限公司 Usb主機對主機晶片

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317210A (en) * 1993-02-23 1994-05-31 Altera Corporation I/O cell for programmable logic device providing latched, unlatched, and fast inputs
US6038624A (en) * 1998-02-24 2000-03-14 Compaq Computer Corp Real-time hardware master/slave re-initialization
US6145019A (en) * 1998-03-02 2000-11-07 Hewlett-Packard Company Unconfigured device that automatically configures itself as the primary device if no other unconfigured device is present
US6772108B1 (en) * 1999-09-22 2004-08-03 Netcell Corp. Raid controller system and method with ATA emulation host interface
US6813688B2 (en) * 2000-12-04 2004-11-02 Sun Microsystems, Inc. System and method for efficient data mirroring in a pair of storage devices
JP3680762B2 (ja) * 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
EP1330033B1 (en) * 2002-01-17 2008-08-13 Sicronic Remote KG, LLC Utilization of unused IO block for core logic functions
DE10214701B4 (de) * 2002-04-03 2004-08-05 Advanced Micro Devices, Inc., Sunnyvale ATA- und SATA-Gemässes Controllerbauelement, Verfahren zum Betreiben und integrierter Schaltkreischip
TW589568B (en) * 2002-11-04 2004-06-01 Via Tech Inc Serial ATA control circuit capable of automatically switching the connection path
US7246192B1 (en) * 2003-01-10 2007-07-17 Marvell International Ltd. Serial/parallel ATA controller and converter
JP3886460B2 (ja) * 2003-01-31 2007-02-28 富士通株式会社 複合型記憶装置及びそのカード用基板
US6993639B2 (en) * 2003-04-01 2006-01-31 Hewlett-Packard Development Company, L.P. Processing instruction addressed by received remote instruction and generating remote instruction to respective output port for another cell
US7360010B2 (en) * 2003-04-14 2008-04-15 Copan Systems, Inc. Method and apparatus for storage command and data router
JP2005038382A (ja) * 2003-06-26 2005-02-10 Sanyo Electric Co Ltd 制御装置及びデータ書き込み方法
US7284082B2 (en) * 2004-08-19 2007-10-16 Lsi Corporation Controller apparatus and method for improved data transfer
US7179108B2 (en) * 2004-09-08 2007-02-20 Advanced Interconnections Corporation Hermaphroditic socket/adapter
US8949920B2 (en) * 2005-03-17 2015-02-03 Vixs Systems Inc. System and method for storage device emulation in a multimedia processing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010519617A (ja) * 2007-03-22 2010-06-03 エルエスアイ コーポレイション イニシエータの通知方法および装置
JP2013254479A (ja) * 2012-05-08 2013-12-19 Unitex:Kk インタフェース変換装置及びインタフェース変換方法

Also Published As

Publication number Publication date
JP4442523B2 (ja) 2010-03-31
CN1893361A (zh) 2007-01-10
US20070005851A1 (en) 2007-01-04

Similar Documents

Publication Publication Date Title
JP4799417B2 (ja) ホストコントローラ
JP5085334B2 (ja) Usb・otgコントローラ
US5867733A (en) Mass data storage controller permitting data to be directly transferred between storage devices without transferring data to main memory and without transferring data over input-output bus
KR100708128B1 (ko) 낸드 플래시 메모리 제어 장치 및 방법
US8135873B2 (en) Information processing device for performing information exchange between a PCI express bus and a non-PCI express bus interface
JP4377603B2 (ja) バス通信システムおよびその通信制御方法
WO2005091812A2 (en) Pvdm (packet voice data module) generic bus protocol
US7725621B2 (en) Semiconductor device and data transfer method
US7225288B2 (en) Extended host controller test mode support for use with full-speed USB devices
JP4404023B2 (ja) データ転送制御装置及び電子機器
JP4442523B2 (ja) データ転送制御装置及び電子機器
US7165124B2 (en) Data transfer control system, electronic instrument, program, and data transfer control method
JP2010218196A (ja) データ転送制御装置及び電子機器
JP2963426B2 (ja) バスブリッジ装置及びトランザクションフォワード方法
WO2012124431A1 (ja) 半導体装置
US20030217218A1 (en) Interface for devices having different data bus widths and data transfer method using the interface
JP2009048444A (ja) Usbデバイスの制御方法、コントローラ及び電子機器
US8996772B1 (en) Host communication device and method with data transfer scheduler
JP4337783B2 (ja) データ転送制御装置及び電子機器
US20040230734A1 (en) Data transfer control system, electronic instrument, and data transfer control method
JP2009026165A (ja) コントローラ、電子機器及び電子機器の制御方法
JP3718764B2 (ja) コンピュータ装置、回路基板およびコンピュータにおける拡張デバイスの選択方法
US20050273530A1 (en) Combined optical storage and flash card reader apparatus using sata port and accessing method thereof
CN118035158A (zh) 一种存储设备的使用方法及存储设备
JP2671743B2 (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090512

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090713

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: 20091222

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100104

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140122

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees