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

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

Info

Publication number
JP4404023B2
JP4404023B2 JP2005192949A JP2005192949A JP4404023B2 JP 4404023 B2 JP4404023 B2 JP 4404023B2 JP 2005192949 A JP2005192949 A JP 2005192949A JP 2005192949 A JP2005192949 A JP 2005192949A JP 4404023 B2 JP4404023 B2 JP 4404023B2
Authority
JP
Japan
Prior art keywords
ata
host
data transfer
data
bus
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
Application number
JP2005192949A
Other languages
English (en)
Other versions
JP2007011783A (ja
Inventor
謙陽 長尾
卓也 石田
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 JP2005192949A priority Critical patent/JP4404023B2/ja
Priority to CNA2006100866974A priority patent/CN1893362A/zh
Priority to US11/477,717 priority patent/US20070005847A1/en
Publication of JP2007011783A publication Critical patent/JP2007011783A/ja
Application granted granted Critical
Publication of JP4404023B2 publication Critical patent/JP4404023B2/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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Landscapes

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

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、第2のATAバスを介して前記ATAホスト、前記ATAデバイスの間でデータ転送を行うためのエミュレーション処理を行う処理部とを含み、前記処理部は、前記第1のATAバスを介して前記デバイス側インターフェースが前記ATAホストからコマンドを受信した場合に、受信したコマンドに対応するコマンドを、前記ホスト側インターフェース、前記第2のATAバスを介して前記ATAデバイスに対して発行し、コマンド発行後に、前記第1のATAバス、前記デバイス側インターフェース、前記ホスト側インターフェース、前記第2のATAバスを介したデータ転送を開始し、データ転送完了後に、前記第2のATAバスを介して前記ホスト側インターフェースが前記ATAデバイスからステータスをリードした場合に、リードしたステータスに対応するステータスを、前記デバイス側インターフェース、前記第1のATAバスを介して前記ATAホストに対して返信するエミュレーション処理を行うデータ転送制御装置に関係する。
本発明によれば、第1のATAバスを介してATAホストとの間でデータ転送を行うことができるため、第1のATAバスを、ATAホストとデータ転送制御装置の間のインターフェースバスとして使用できるようになる。そして、第1のATAバスを介してATAホストとの間で通信を行いながら、処理部によりエミュレーション処理が行われる。即ち、第1、第2のATAバスを介してATAホスト、ATAデバイスの間でデータ転送を行うためのエミュレーション処理が行われる。このようにすれば、ATAホストとATAデバイスとの間などで、様々な形態のデータ転送を実現できるようになり、ATAホストに対して様々なインターフェースを提供できるようになる。
また本発明では、前記第1のATAバスを介して前記ATAホストが発行したコマンドが書き込まれるレジスタを含み、前記処理部は、前記レジスタに書き込まれたコマンドに対応するコマンドを、前記ホスト側インターフェース、前記第2のATAバスを介して前記ATAデバイスに対して発行して、前記エミュレーション処理を行うようにしてもよい。
このようにすれば、ATAホストは、第1のATAバスを介してレジスタにコマンドを書き込むだけで、エミュレーション処理の指示や制御が可能になる。従って、ATAホストの処理負荷をそれほど増加させることなく、ATAホストに対して様々なインターフェースの提供が可能になる。
また本発明では、前記レジスタは、前記デバイス側インターフェースが含むタスクレジスタであってもよい。
このようにすれば、ATAホストは、ATA規格に準拠した手法で、各種のコマンドを、ATAのタスクレジスタであるレジスタに設定できるようになり、ATAホストの処理の簡素化や処理負荷の軽減化を図れる。
また本発明では、前記処理部は、ベンダ定義コマンドとして割り当てられたコマンドが前記レジスタに書き込まれた場合に、書き込まれたベンダ定義の前記コマンドに対応するコマンドを、前記ホスト側インターフェース、前記第2のATAバスを介して前記ATAデバイスに対して発行して、前記エミュレーション処理を行うようにしてもよい。
このようにすれば、ATAホストは、ATA規格においてベンダ定義コマンドとして割り当てられたコマンドを利用して、エミュレーション処理の指示や制御が可能になる。
また本発明では、前記第1のATAバスの第1〜第Nの信号線と前記第2のATAバスの第1〜第Nの信号線との間の接続、非接続を行う第1〜第Nのスイッチング素子を有するスイッチング回路を含み、前記処理部は、ハードワイヤードモードに設定されたと判断した場合に、前記第1〜第Nのスイッチング素子をオンにして、前記第1のATAバスの第1〜第Nの信号線と前記第2のATAバスの第1〜第Nの信号線との間を接続するようにしてもよい。
このようにすれば、ATAホストは、ATAデバイスを、あたかも自身のホスト側インターフェースに直接接続されているかのように扱うことができるようになる。
また本発明では、前記ATAホストに対してイベントの発生を通知するためのイベント通知部を含むようにしてもよい。
このようにすれば、データ転送制御装置側において発生したイベントを、ATAホストに通知することが可能になり、ATAホストの管理や制御を簡素化できる。
また本発明では、第1のバスを介してデータ転送を行う第1のインターフェースを含み、前記転送コントローラは、前記デバイス側インターフェース、前記ホスト側インターフェース、前記第1のインターフェースの間でのデータ転送を制御するようにしてもよい。
このようにすれば、第1のATAバスを介してATAホストとの間で通信を行いながら、転送コントローラによるデータ転送制御により、例えばATAホストからのデータをATAデバイスに転送したり、ATAデバイスからのデータを第1のバスに接続されるホストやデバイスに対して転送することが可能になる。このように本発明では、第1のATAバスを有効活用することで、ATAホストに対して様々なインターフェースの提供が可能になる。
また本発明では、前記処理部は、前記第1のバスを介したデータ転送のプロトコル制御処理を行うようにしてもよい。
このようにすれば、第1のバスを介したデータ転送のプロトコル制御を、ATAホストが行わなくても済むようになり、ATAホストの処理負荷を軽減できる。
また本発明では、前記転送コントローラは、前記ATAデバイスから前記ホスト側インターフェースを介してリードされたデータを、前記第1のインターフェースに転送し、前記第1のインターフェースは、転送されたデータを前記第1のバスを介して前記第1のバスに接続されるホスト又はデバイスに送信するようにしてもよい。
このようにすれば、ATAデバイスからのデータを、第1のバスに接続されるホストやデバイスに効率的に転送できる。
また本発明では、第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)に示すように、ATABUS1、ATABUS2を介してメインCPU30(ATAホスト)、HDD40(ATAデバイス)の間でデータ転送を行うためのエミュレーション処理が行われる。このエミュレーション処理については後に詳述する。
また本実施形態では図4(C)に示すように、ハードワイヤードモードやエミュレーション処理によりHDD40に書き込まれたデータはUSBを介してPC10に転送できる。即ち転送コントローラ100は、HDD40からホスト側I/F70を介してリードされたデータを、USBI/F80に転送する。すると、USBI/F80は、転送されたデータをUSB(第1のバス)を介してUSBに接続されるPC10(ホスト、デバイス)に送信する。こうすることで、HDD40に書き込まれたデータを、PC10側に転送して、PC10の内蔵HDDや光ディスクに保存することが可能になり、ユーザの利便性を向上できる。
5.エミュレーション処理
次に本実施形態のエミュレーション処理について説明する。図1(A)に示すようにUSBとATAのバスブリッジ機能を有する従来のデータ転送制御装置550では、ATAのホスト側I/F570だけが設けられており、このホスト側I/F570にHDD540が接続される。
これに対して図2の本実施形態ではATAのデバイス側I/F60が設けられている。またHDD40を接続するためにATAのホスト側I/F70も設けられている。従って、メインCPU30からHDD40にデータを書き込んだり、HDD40のデータをメインCPU30が読み出すためには、ATABUS1、デバイス側I/F60、ホスト側I/F70、ATABUS2を介したルートのデータ転送が必要になる。そして本実施形態では、このルートのデータ転送を実現するためのエミュレーション処理を行っている。
具体的には本実施形態のエミュレーション処理では図6(A)に示すように、ATAホストがATABUS1を介して、エミュレーション処理によるデータ転送を行うためのコマンド(エミュレーションコマンド)を発行する。この場合、発行されるコマンドとしては、ATAのベンダ定義コマンドとして割り当てられたコマンドを用いることができる。即ちコマンドコードが例えば80h〜8Fhであるコマンドを用いることができる。
そしてメインCPU30により発行されたコマンドはATAのタスクレジスタであるレジスタ62に書き込まれる。この場合に図6(A)ではレジスタ62(デバイス側I/F60)はATAのスレーブとして動作している。従ってメインCPU30は、図5のA2のDevice/HeadレジスタのDEVビットをスレーブ側に設定して、レジスタ62にコマンドを書き込む。なおレジスタ62をATAのマスタとして動作させてもよい。
そして図6(A)に示すように、処理部120は、ATABUS1を介してデバイス側I/F60がメインCPU30からコマンドを受信すると、受信したコマンドに対応するコマンドを、ホスト側I/F70、ATABUS2を介してHDD40に発行する。即ちATAのホスト側I/F70にコマンドを発行させる。
ここで受信したコマンド(ベンダ定義コマンド)に対応するコマンドとは、受信コマンドそのものであってもよいし、受信コマンドを変換することで得られるコマンドであってもよい。例えば図6(A)では、レジスタ62(デバイス側I/F60)はスレーブとして動作し、HDD40(HDDが含むデバイス側I/F)はマスタとして動作している。従ってこの場合には、スレーブを宛先とするコマンドを、マスタを宛先にするコマンドに変換する必要がある。具体的にはレジスタ62には、DEVビットがスレーブ側に設定されたコマンドが書き込まれており、処理部120は、このコマンドのDEVビットをマスタ側の設定に書き直す変換を行い、変換により得られたコマンドをHDD40に発行する。この場合には、ベンダ定義コマンドではなく、ATAにより予め規格化されたコマンド(ライトコマンド等)が発行される。なおHDD40がスレーブとして動作する場合には、このような変換を行わなくてもよい場合があり、この場合には、メインCPU30から受信したコマンドそのものを、ホスト側I/F70を介してHDD40に発行してもよい。
このようなHDD40へのコマンド発行後に、処理部120は、ATABUS1、デバイス側I/F60、ホスト側I/F70、ATABUS2を介したエミュレーション処理によるデータ転送を開始する。例えば図6(B)では、メインCPU30からのデータが、ATABUS1、デバイス側I/F60を介して、仮想HDDとして機能するデータバッファ102に転送されて書き込まれる。そしてデータバッファ102に書き込まれたデータが、ホスト側I/F70、ATABUS2を介してHDD40に転送されて書き込まれる。なお、HDD40のデータを読み出す場合には、HDD40からのデータがATABUS2、ホスト側I/F70を介して、仮想HDDとして機能するデータバッファ102に転送されて書き込まれる。そしてデータバッファ102に書き込まれたデータが、デバイス側I/F60、ATABUS1を介してメインCPU30に転送される。
このようなデータ転送の完了後に、図6(C)に示すように、ATABUS2を介してホスト側I/F70がHDD40からステータスをリードすると、処理部120は、リードしたステータスに対応するステータスを、デバイス側I/F60、ATABUS1を介してメインCPU30に返信する。具体的にはホスト側I/F70、HDD40間のデータ転送が完了し、HDD40(HDDが含むデバイス側I/F)が例えば割り込み信号INTRQをアクティブにすると、ホスト側I/F70がステータスのリードコマンドを発行して、HDD40からステータスをリードする。すると処理部120は、リードしたステータスに対応するコマンドを、タスクレジスタであるレジスタ62に書き込む。そしてデバイス側I/F60が例えば割り込み信号INTRQをアクティブにすると、メインCPU30のホスト側I/F32が、ステータスのリードコマンドを発行して、レジスタ62に書き込まれたステータスをリードする。なおリードしたステータスに対応するステータスは、リードしたステータスそのものであってもよいし、リードスしたテータスを変換することで得られるステータスであってもよい。
本実施形態のエミュレーション処理によれば、図4(A)のハードワイヤードモードに比べた場合、転送レートは劣るものの、ハードワイヤードモードでは実現できない様々なタイプのデータ転送が可能になる。
例えば図4(A)のハードワイヤードモードでは、レジスタ62がスレーブ(或いはマスタ)になるため、1台のマスタ(或いはスレーブ)のHDD40しか接続できないという制約がある。これに対して本実施形態のエミュレーション処理では、このような制約が無くなり、2台のマスタ、スレーブのHDD40、41を接続することが可能になる。
例えば図7(A)〜図8(C)に、2台のマスタ、スレーブのHDD40、41をホスト側I/F70に接続した場合のエミュレーション処理の概要を示す。
例えば図7(A)に示すように、メインCPU30は、ベンダ定義のライトコマンドを発行してレジスタ62に書き込む。すると処理部120は、このベンダ定義のライトコマンドを解析する。そして処理部120が、データの宛先がマスタ側のHDD40であると、解析結果に基づき判断すると、ホスト側I/F70は、DEVビットがマスタ側に設定されたATA規格のライトコマンドを発行する。するとマスタ側のHDD40が、発行されたコマンドを受け取る。
コマンド発行後に、図7(B)に示すように、メインCPU30が、仮想HDDとして機能するデータバッファ102にデータを書き込むと、ホスト側I/F70が、書き込まれたデータをATABUS2に出力する。すると、マスタ側のHDD40が、このデータを受け取り、ハードディスクに書き込む。
データ転送の完了後に、図7(C)に示すように、ATABUS2を介してマスタ側のHDD40からホスト側I/F70がステータスをリードすると、処理部120は、リードしたステータスに対応するステータスを、デバイス側I/F60、ATABUS1を介してメインCPU30に返信する。
一方、図8(A)では、メインCPU30は、ベンダ定義のライトコマンドを発行してレジスタ62に書き込み、処理部120が、書き込まれたコマンドを解析し、データの宛先がスレーブ側のHDD40であると、解析結果に基づき判断している。するとホスト側I/F70は、DEVビットがスレーブ側に設定されたATA規格のライトコマンドを発行する。するとスレーブ側のHDD41が、発行されたコマンドを受け取る。
コマンド発行後に、図8(B)に示すように、メインCPU30が、仮想HDDとして機能するデータバッファ102にデータを書き込むと、ホスト側I/F70が、書き込まれたデータをATABUS2に出力する。すると、スレーブ側のHDD41が、このデータを受け取り、ハードディスクに書き込む。
データ転送の完了後に、図8(C)に示すように、ATABUS2を介してスレーブ側のHDD41からホスト側I/F70がステータスをリードすると、処理部120は、リードしたステータスに対応するステータスを、デバイス側I/F60、ATABUS1を介してメインCPU30に返信する。
このように本実施形態のエミュレーション処理によれば、ホスト側I/F70への2台のHDD40、41の接続等が可能になり、利便性を向上できる。
以上の本実施形態のデータ転送制御装置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間での高速なデータ転送も実現できる。
6.スイッチング回路
図9(A)に本実施形態のスイッチング回路110の構成例を示す。図9(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のスイッチング素子112-1、112-2、112-3・・・の接続は、図9(B)のような接続構成にすることが望ましい。
図9(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セルなどである。
そして図9(B)では、スイッチング回路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・・・の間の信号線との接続、非接続を行う。
図9(B)の構成によれば、ATABUS1の信号線とATABUS2の信号線をショートパスで接続できる。従ってATA信号の信号遅延を小さくでき、ハードワイヤードモード時の転送レートの低下を最小限に抑えるか、または転送レートを低下させず維持することが可能になる。特にATAのデータのリード動作の場合には、信号DIORがアクティブになった後に、データ信号DDが有効になる。従って図9(B)のようにデバイス側パッド58-1、58-2、58-3・・・とホスト側パッド68-1、68-2、68-3・・・を直結して信号遅延を抑える手法は、転送レートの低下防止のために有効になる。
なお図10の変形例のような接続を行うことも可能である。図10では、スイッチング素子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の間の信号線との接続、非接続を行う。図10の変形例では、ATABUS1の信号線とATABUS2の信号線の間の信号遅延に、I/Oセル59-1、59-2、59-3・・・や、I/Oセル69-1、69-2、69-3・・・での信号遅延が付加されてしまう。従って、図9(B)に比べて信号遅延が大きくなり、ハードワイヤードモード時の転送レートが低下してしまう。
しかしながら、図10の構成では、スイッチング素子112-1、112-2、112-3・・・に接続される信号線のマイグレーションや、スイッチング素子112-1、112-2、112-3・・・の静電気破壊についてはそれほど問題にならない。従って、転送レートの低下がそれほど問題にならない場合には、図10の構成を採用することも可能である。
7.ATAのデバイス側I/F、ホスト側I/F
図11(A)にATAのデバイス側I/F60の構成例を示す。図11(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)との間のデータ転送を制御する。
図11(B)にATAのホスト側I/F70の構成例を示す。図11(B)に示すようにホスト側I/F70は、タスクレジスタ・アクセスアービタ210、MDMA/PIO制御部212、UltraDMA制御部214、データバッファ216、転送制御部218を含む。
タスクレジスタ・アクセスアービタ210は、デバイス側に設けられるタスクレジスタ(図11(A)の200)に対するアクセスの調停処理を行う。MDMA/PIO制御部212は、ATAのマルチワードDMA転送やPIO転送についてのホスト側の制御処理を行う。UltraDMA制御部214は、ATAのUltraDMA転送についてのホスト側の制御処理を行う。データバッファ216(FIFO)は、データ転送の転送レートの差を調整(緩衝)するためのバッファである。転送制御部218は後段の回路(転送コントローラ100、データバッファ102)との間のデータ転送を制御する。
次に、ATAのデータ転送について図12(A)〜図13(B)の信号波形を用いて説明する。図12(A)〜図13(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を用いることで、デバイス側は、コマンド処理の終了をホスト側に通知できる。
図12(A)、(B)は、PIO(Parallel I/O)リード、PIOライト時の信号波形例である。ATAのステータスレジスタのリードは図12(A)のPIOリードにより行い、コマンドレジスタへのライトは図12(B)のPIOライトにより行う。例えば、メインCPU30によるベンダ定義のコマンドの発行は、PIOライトにより実現できる。
図13(A)、(B)は、DMAリード、DMAライト時の信号波形例である。データ転送の準備ができると、デバイス側が、DMARQをアクティブにする。そして、それを受けて、ホスト側が、DMACKをアクティブにして、DMA転送を開始する。その後、DIOR(リード時)又はDIOW(ライト時)を使用して、データDD[15:0]のDMA転送を行う。
8.USBI/F
USBでは、図14(A)に示すようなエンドポイント(EP0〜15)がUSBデバイス側に用意される。またUSBでは、転送(transfer)のタイプとして、コントロール転送、アイソクロナス転送、インタラプト転送、バルク転送などが定義されており、各転送は一連のトランザクションにより構成される。そしてトランザクションは図14(B)に示すように、トークンパケットと、オプショナルなデータパケットと、オプショナルなハンドシェークパケットにより構成される。
OUTトランザクションでは、図14(C)に示すように、まず、USBホストがUSBデバイスに対してOUTトークン(トークパケット)を発行する。次に、USBホストはUSBデバイスに対してOUTデータ(データパケット)を送信する。そして、USBデバイスは、OUTデータの受信に成功すれば、USBホストに対してACK(ハンドシェークパケット)を送信する。一方、INトランザクションでは、図14(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のエンドポイントを用いて転送される。
次に、バルクオンリートランスポートの送受信処理(プロトコル制御)について、図15(A)、(B)を用いて説明する。図15(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デバイスからデータを受信する場合は、図15(B)に示すように処理が行われる。図15(B)が図15(A)と異なるのは、コマンドトランスポートのCBWがリードコマンドを含む点と、データトランスポートにおいてINデータの転送が行われる点である。
図16に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により実現してもよい。また図16では、ホスト動作とデバイス動作の両方の動作を行うUSBI/F80の例を示したが、デバイス動作だけを行うものであってもよい。
9.詳細な処理
次に、本実施形態の詳細な処理について図17、図18のフローチャートを用いて説明する。図17は、ハードワイヤードモード時の詳細な処理を示すフローチャートである。
まず、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)、転送処理が終了する。
図18はエミュレーションによるデータ転送の詳細な処理を示すフローチャートである。まず、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)。
次に、図17のステップ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)(C)は本実施形態のエミュレーション処理の説明図。 図7(A)(B)(C)は本実施形態のエミュレーション処理の説明図。 図8(A)(B)(C)は本実施形態のエミュレーション処理の説明図。 図9(A)(B)はスイッチング回路の構成例。 スイッチング回路の構成例 図11(A)(B)はATAのデバイス側I/F、ホスト側I/Fの構成例。 図12(A)(B)はATAのPIO転送の信号波形例。 図13(A)(B)はATAのDMA転送の信号波形例。 図14(A)〜(D)はUSBのデータ転送の説明図。 図15(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 (13)

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

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005192949A JP4404023B2 (ja) 2005-06-30 2005-06-30 データ転送制御装置及び電子機器
CNA2006100866974A CN1893362A (zh) 2005-06-30 2006-06-28 数据传输控制装置及电子设备
US11/477,717 US20070005847A1 (en) 2005-06-30 2006-06-30 Data transfer control device and electronic instrument

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2007011783A JP2007011783A (ja) 2007-01-18
JP4404023B2 true JP4404023B2 (ja) 2010-01-27

Family

ID=37591141

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US20070005847A1 (ja)
JP (1) JP4404023B2 (ja)
CN (1) CN1893362A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250245B2 (en) * 2007-04-05 2012-08-21 Seiko Epson Corporation Information processing system, with information processing terminal capable of operating in multiple operation modes when connected to a host device
JP2008269223A (ja) * 2007-04-19 2008-11-06 Hitachi Ltd 車載情報端末
JP2009110162A (ja) * 2007-10-29 2009-05-21 Buffalo Inc ディスクアレイ装置
JP2009129243A (ja) * 2007-11-26 2009-06-11 Acard Technology Corp データ伝送装置及び制御方法
JP5287112B2 (ja) * 2008-10-06 2013-09-11 セイコーエプソン株式会社 データ転送制御装置及び電子機器

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3680762B2 (ja) * 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6854045B2 (en) * 2001-06-29 2005-02-08 Intel Corporation Hardware emulation of parallel ATA drives with serial ATA interface
US7346724B1 (en) * 2002-06-28 2008-03-18 Cypress Semiconductor Corp. Enabling multiple ATA devices using a single bus bridge
TW589568B (en) * 2002-11-04 2004-06-01 Via Tech Inc Serial ATA control circuit capable of automatically switching the connection path
US7664909B2 (en) * 2003-04-18 2010-02-16 Nextio, Inc. Method and apparatus for a shared I/O serial ATA controller
US7360010B2 (en) * 2003-04-14 2008-04-15 Copan Systems, Inc. Method and apparatus for storage command and data router

Also Published As

Publication number Publication date
US20070005847A1 (en) 2007-01-04
CN1893362A (zh) 2007-01-10
JP2007011783A (ja) 2007-01-18

Similar Documents

Publication Publication Date Title
JP4799417B2 (ja) ホストコントローラ
JP5085334B2 (ja) Usb・otgコントローラ
US7272676B2 (en) Data transmission controller that restarts data transmission when reconstruction is completed
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
JP4377603B2 (ja) バス通信システムおよびその通信制御方法
US7225288B2 (en) Extended host controller test mode support for use with full-speed USB devices
JPH09179812A (ja) 情報処理システム及びその制御方法
JP2002342261A (ja) データ転送制御装置及び電子機器
JP4404023B2 (ja) データ転送制御装置及び電子機器
EP1389761B1 (en) Data transfer control system, program and data transfer control method
JP4442523B2 (ja) データ転送制御装置及び電子機器
US7469304B2 (en) Data transfer control device, electronic equipment, and method for a data transfer through a bus, the data transfer control device including a register and a packet buffer that are commonly used during a host operation and a peripheral operation
JP2009048444A (ja) Usbデバイスの制御方法、コントローラ及び電子機器
US20030217218A1 (en) Interface for devices having different data bus widths and data transfer method using the interface
JP3714420B2 (ja) データ転送制御装置、電子機器、プログラム及び電子機器の製造方法
JP4337783B2 (ja) データ転送制御装置及び電子機器
JP2008242701A (ja) データ転送制御装置及び電子機器
US8996772B1 (en) Host communication device and method with data transfer scheduler
JP2009026165A (ja) コントローラ、電子機器及び電子機器の制御方法
JP5287112B2 (ja) データ転送制御装置及び電子機器
JP2009037479A (ja) データ転送制御装置及び電子機器
CN118035158A (zh) 一种存储设备的使用方法及存储设备
JP2002229929A (ja) メモリアクセスコントロール方法及びメモリアクセスコントロール装置
JP2008204048A (ja) データ転送制御装置及び電子機器
JP2010087808A (ja) データ転送制御装置及び電子機器

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090525

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

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

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

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131113

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees