JP4408840B2 - Hddコントローラ及びそれを搭載したシステム - Google Patents

Hddコントローラ及びそれを搭載したシステム Download PDF

Info

Publication number
JP4408840B2
JP4408840B2 JP2005189200A JP2005189200A JP4408840B2 JP 4408840 B2 JP4408840 B2 JP 4408840B2 JP 2005189200 A JP2005189200 A JP 2005189200A JP 2005189200 A JP2005189200 A JP 2005189200A JP 4408840 B2 JP4408840 B2 JP 4408840B2
Authority
JP
Japan
Prior art keywords
pci
hdd
hdd controller
slave
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.)
Active
Application number
JP2005189200A
Other languages
English (en)
Other versions
JP2007011526A (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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2005189200A priority Critical patent/JP4408840B2/ja
Priority to CNB2006100945834A priority patent/CN100527104C/zh
Priority to US11/476,946 priority patent/US7389376B2/en
Publication of JP2007011526A publication Critical patent/JP2007011526A/ja
Application granted granted Critical
Publication of JP4408840B2 publication Critical patent/JP4408840B2/ja
Active 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)

Description

本発明は、HDD(Hard Disk Drive)コントローラ及びそれを搭載したシステムに関し、より詳細には、PCI(Peripheral Component Interconnect)バス上のPCIデバイスとHDDとの間におけるデータ転送を制御するHDDコントローラ、及びそのHDDコントローラ及び複数の他のPCIデバイスを搭載し、それらの間でアクセスを行うシステムに関する。
従来から、パーソナルコンピュータ(PC)をはじめ各種電子機器内のデバイス間で使用されるシステムバスとしては、データ転送速度の高速化やプロセッサに依存しないシステムアーキテクチャの構築のために、PCIバスが採用されている。
PCIバスにおいては、全てのデータ転送はブロック転送を基本としており、これら各ブロック転送はバースト転送を用いて実現されている。これにより、PCIバスでは、最大133Mバイト/秒(データバスが32ビット幅の時)のデータ転送速度を実現できる。また、PCIバスは、仕様上、メモリ及びI/Oアドレス空間の両方でバースト転送をサポートしている。
よって、I/O空間でバーストを生成するようなプロセッサ又はバスマスタがあれば、これらのマスタがI/Oバーストを発生することにより、I/Oデバイス間、及びシステムメモリとI/Oデバイスとの間のデータ転送などをさらに高速に行うことが可能となり、システム性能を高めることができる。
このような高速化を図る従来技術として、CPU又は他のバスマスタからPCIバス経由で行われる既存のI/OマップされたI/Oデバイスに対するアクセス処理の高速化を実現することを目的としたコンピュータシステムが提案されている(例えば、特許文献1を参照)。
特許文献1に記載のコンピュータシステムは、PCIバスの所定のI/Oアドレスに割り当てられたI/Oデバイスを、メモリ空間に割り当て、I/Oデバイスに対するI/Oアクセス要求に対してメモリサイクルを発生する手段と、そのメモリバーストサイクルをI/Oデバイスをアクセスするための複数の連続したI/Oサイクルに変換する手段を具備している。
特許第3579149号公報
しかしながら、特許文献1に記載のシステムでは、CPUなどがバスマスタになって、I/Oデバイスにアクセスすることが可能だが、I/Oアクセス要求に対してメモリサイクルを発生するので、高速なI/Oデバイスに対しては充分なバスパフォーマンスを稼ぐことができなかった。すなわち、特許文献1に記載のシステムでは、I/Oアクセスとメモリアクセスとをブリッジ回路で切り換えており、少なくともメモリアクセスしている分に関しては、CPUが介在しなくてもよいが、結局は、毎回バースト期間の到来によりCPUが介在することとなり、高速なI/Oデバイスに対しては充分なバスパフォーマンスで処理が遂行されているとは言えなかった。
さらに、特許文献1に記載の技術は、CPUがバスマスタとなって特定のI/Oデバイスにアクセスするものであり、そのI/OデバイスはHDDである場合もある。そして、HDDを制御するHDDコントローラは、HDDへのアクセスを伴ったデータ転送をバスマスタとなって行っており、そのときターゲットとなる他のPCIデバイスがスレーブアクセス(ターゲットアクセス)の遅いデバイスであると、バスパフォーマンスを生かし切れない。
例えば、HDDコントローラがターゲットアクセスの遅い他のPCIデバイスAにバス接続されているものとする。PCIデバイスAがターゲットとなって、HDDコントローラがターゲットアクセスが遅いデバイスAにアクセスしているときには、図3において左半分のタイミングチャート(8バースト分のデータ転送例)で示すような処理がなされる。すなわち、PCIデバイスAはターゲットアクセスが遅いのでPCIデバイスAのPCI I/Fから発せられるTRDY信号によって、HDDコントローラを待たせてしまい、効率的な転送処理が実行できているとは言えない。
このことは、特許文献1に記載の技術に限らず一般的に言えることであり、HDDコントローラに接続された他のPCIデバイスがスレーブアクセスの遅いデバイスであること、並びに、スレーブアクセスが遅いPCIデバイスを備えたIC(Integrated Circuit)チップにHDDコントローラが接続されることは、回路の組み合わせなどの設計上、多々生じ得る。
スレーブアクセスによるデータ転送が遅くなる理由の一つとして、或るPCIデバイスでは、PCIデバイスからデータを受け取ったら直ぐにPCIバスを停止させてローカルメモリに書き込みを実行し、書き終わったら再度PCIバス上のデータを要求するといった処理がなされている。なお、一方で、PCIバスはアドレスをまず送出してデータを続けて送出するバースト転送により高速化を図っており、そこでは、データを受け取ったらデータを例えば32バースト分だけ全部まとめた後に、例えばページメモリに書き込む際の高速化を行っている。また、PCIバスの停止及び再要求の繰り返しを実行することを改良すればよいが、PCIバスコントローラの根本的な思想が高速化を考えたものではなく、改良は困難である。
本発明は、上述のごとき実情に鑑みてなされたものであり、HDDコントローラ及びそれを備えたシステムにおいて、HDDコントローラ自身に比べターゲットアクセスが遅いPCIデバイスとターゲットアクセスが速い又は同等のPCIデバイスが混在した場合に、ターゲットアクセスが遅いPCIデバイスとHDDコントローラの制御対象となるHDDとの間でデータアクセスを行う場合であっても、バスパフォーマンスを最大限に生かしてデータのバースト転送を実行することを可能にすることを目的とする。
本発明は、上述のごとき課題を解決するために、以下の各技術手段によりそれぞれ構成される。
第1の技術手段は、PCIバス上の1又は複数のPCIデバイスとATA規格のI/Oバス上のHDDとの間でデータを転送する制御を行うHDDコントローラであって、前記データの高速バースト転送を実行するに際し、当該HDDコントローラが前記PCIバスのバスマスタになるマスタモードと前記PCIバスのスレーブになるスレーブモードとを有し、前記PCIデバイスがスレーブとなってアクセスするときのデータ転送スピードが、当該HDDコントローラがスレーブとなってアクセスするときのデータ転送スピードより遅い場合に、当該HDDコントローラは前記スレーブモードで制御し、前記PCIデバイスがスレーブとなってアクセスするときのデータ転送スピードが、当該HDDコントローラがスレーブとなってアクセスするときのデータ転送スピードより速い又は同等の場合に、当該HDDコントローラは前記マスタモードで制御することを特徴としたものである。
第2の技術手段は、第1の技術手段において、前記マスタモードと前記スレーブモードとを切り換える手段を備えたことを特徴としたものである。
の技術手段は、第1又は第2の技術手段において、前記PCIバス上には、前記PCIデバイスとして、スレーブとなってアクセスするときのデータ転送スピードが当該HDDコントローラがスレーブとなってアクセスするときのデータ転送スピードより遅い第1のPCIデバイスと、スレーブとなってアクセスするときのデータ転送スピードが当該HDDコントローラがスレーブとなってアクセスするときのデータ転送スピードより速い又は同等の第2のPCIデバイスとが接続され、当該HDDコントローラは、前記HDDにRead/Writeする時に、データを暗号化・復号化する暗号手段を備え、当該HDDコントローラが前記マスタモードで制御されているときと前記スレーブモードで制御されているときとによって、前記暗号手段を異ならしめることを特徴としたものである。
の技術手段は、第1乃至第のいずれかの技術手段において、前記スレーブモードでは、当該HDDコントローラで指定された特定のアドレスにメモリバーストされたデータを、前記HDDにRead/Writeすることを特徴としたものである。
の技術手段は、第1乃至第のいずれかの技術手段において、当該HDDコントローラには、前記HDDに加え2台目のHDDが接続され、当該HDDコントローラが前記マスタモードで制御されているときに、前記PCIデバイスの一つがスレーブとして前記2台目のHDDアクセスすることを特徴としたものである。
の技術手段は、第1乃至第のいずれかの技術手段におけるHDDコントローラを備えたシステムであって、前記PCIバス上に、前記PCIデバイスとして、スレーブとなってアクセスするときのデータ転送スピードが前記HDDコントローラがスレーブとなってアクセスするときのデータ転送スピードより遅い第1のPCIデバイスと、スレーブとなってアクセスするときのデータ転送スピードが前記HDDコントローラがスレーブとなってアクセスするときのデータ転送スピードより速い又は同等の第2のPCIデバイスとが接続され、前記HDDコントローラは、前記第2のPCIデバイスとのデータの高速バースト転送を実行する際には前記PCIバスのバスマスタとなり、前記第1のPCIデバイスとのデータの高速バースト転送を実行する際には前記PCIバスのスレーブとなることを特徴としたものである。
本発明によれば、HDDコントローラ及びそれを備えたシステムにおいて、HDDコントローラ自身に比べターゲットアクセスが遅いPCIデバイスとターゲットアクセスが速い又は同等のPCIデバイスが混在した場合に、ターゲットアクセスが遅いPCIデバイスとHDDコントローラの制御対象となるHDDとの間でデータアクセスを行う場合であっても、バスパフォーマンスを最大限に生かしてデータのバースト転送を実行することを可能にする。
図1は、本発明の一実施形態に係るHDDコントローラ並びにそれに接続されたPCIデバイスを搭載したシステムの一構成例を示すブロック図で、図中、1はHDDコントローラ、2はHDD、3はPCIデバイスA、4はPCIデバイスA(3)のページメモリ、5はPCIデバイB、6はPCIデバイスB(5)のページメモリ、11はPCI I/F、12はPCIターゲット制御部、13はPCIイニシエータ制御部、14はマルチプレサ(MPX)、15はバーストアクセス用デュアルポートメモリ、16はATA(AT Attachment)側制御部である。
本発明の一実施形態に係るシステム(以下、本システムという)は、HDD2をATA(IDE)規格のI/Oバス(ATAバス)によって接続した本発明に係るHDDコントローラ1と、これらでなるPCIデバイスとは別のPCIデバイスA(3)及びPCIデバイスB(5)とが、PCIバス上に搭載されているシステムである。ここで、ATAはバスの規格であり、ATA−2,ATAPI等の規格も含み、本発明を適用可能である。
HDDコントローラ1は、PCIバス上の1又は複数のPCIデバイス(ここではデバイスA,Bで例示)とATAバス上のHDD2との間でデータを転送する制御を行う。すなわち、HDDコントローラ1は、PCIバス上のデータをATA上のHDDに(入出力)転送する。ここで実行される制御は、主として、PCIバス上のPCIデバイスからHDD2へのデータ書き込み処理、HDD2からPCIデバイスへのデータ読み出し処理、並びに、本発明に係るマスタモード/スレーブモードの切り換えに伴う処理に対するものである。
PCIデバイスA(3)は、ローカルバスによって接続されたページメモリ4上のデータに対し読み書き可能なメモリデバイスである。同様に、PCIデバイスB(5)は、ローカルバスによって接続されたページメモリ6上のデータに対し読み書き可能なメモリデバイスである。ここで前提として、PCIデバイスA(3)はHDDコントローラ1に比べスレーブアクセスが遅いデバイスとし、逆に、PCIデバイスB(5)はHDDコントローラ1に比べスレーブアクセスが速い或いは同程度のデバイスとし、本発明の説明を行う。つまり、PCIデバイスA(3)がスレーブとなってアクセスするときのデータ転送スピードが、HDDコントローラ1がスレーブとなってアクセスするときのデータ転送スピードより遅く、PCIデバイスB(4)がスレーブとなってアクセスするときのデータ転送スピードが、HDDコントローラ1がスレーブとなってアクセスするときのデータ転送スピードより速い又は同等であるものとして、本発明の説明を行う。なお、図1では示していないが、当然、PCIデバイスA(3)及びPCIデバイスB(5)においてもそれぞれPCI I/FをもったPCIコントローラが搭載されている。
PCIデバイスA(3)としては、例えば画像処理系のASIC(特定用途向け集積回路)が、PCIデバイスB(5)としては、例えば本システムのシステムASICが挙げられる。この例におけるシステムとしては、PCIバス上のページメモリ等のメモリ(ページメモリ4又はページメモリ6)のデータをHDD2に書くことが可能な多機能の複合機等の画像処理装置が挙げられ、後述するように書き込みや読み出しの際に暗号化及び復号化(データ消去機能を伴ってもよい)を併せて実行するようなシステムであってもよい。
本発明に係るHDDコントローラ1は、データの高速バースト転送(例えばDMA転送)を実行するに際し、すなわち高速バースト転送モードを行うにあたって、マスタモードとスレーブモードとをもつ。マスタモードとは、HDDコントローラ1自身がPCIバスのバスマスタになるモードで、スレーブモードとはPCIバスのスレーブになるモードである。
マスタ/スレーブのいずれのモードを採用するかは、データのやり取りの対象となるメモリに接続されたPCIデバイスがスレーブアクセスについてHDDコントローラよりも速いか遅いかによって決定するとよい。遅いデバイスであった場合には、HDDコントローラ1はスレーブモードで制御し、HDDコントローラ1より速い或いは同等のデバイスであった場合には、HDDコントローラ1はマスタモードで制御するようにするとよい。
また、ATAは、例えば、最大転送速度100MB/秒で転送できるATA100や、同様の定義でのATA66、ATA133等の規格がある。そして、HDDを高速で動かすデータ転送モードと低速で動かすデータ転送モードとがある。例えば、ATA133の場合、133MB/秒の高速で動かすデータ転送モードと、それより低速で動かすデータ転送モードとがある。従って、ATAでのデータ転送モードのように、対象となっているPCIデバイスの現在のデータ転送モードにおけるスレーブアクセス速度と、HDDコントローラ1のスレーブアクセスの速度とを比較して、マスタ/スレーブのいずれのモードを使用するかを決定するようにしてもよい。
さらに、HDDコントローラ1では、マスタモードとスレーブモードとを切り換える手段を備えることが好ましい。この手段としては、例えば、PCIバス上のCPUがレジスタ設定により、通常、HDDコントローラ1をバスマスタとして機能させるようにしておき、且つスレーブモードにするときには図4を参照して後述するような設定を行っておく。すなわち、HDDコントローラ1でPCIスレーブモードベースアドレス(以下、スレーブアドレスという)を指定しておき、他のPCIデバイス(ここではPCIデバイスA(3))がそのスレーブアドレス指定で伝送してきたデータをPCIターゲット制御部12が中心となって処理する。
これにより、PCIで高速なターゲットバーストアクセスが可能なメモリコントローラ上のローカルメモリのデータ(この例ではページメモリ6にあるデータ)をHDD2に転送する場合はHDDコントローラはバスマスタ(イニシエータ)になり、HDD2に高速に転送することができる。また、PCIでターゲットバーストアクセスが高速にできないメモリコントローラ上のローカルメモリのデータ(この例ではページメモリ4にあるデータ)を転送する場合は、メモリコントローラ(この例ではPCIデバイスA(3))がバスマスタになることで効率よくデータ転送ができる。
HDDコントローラ1は、PCI I/F11、PCIターゲット制御部12、PCIイニシエータ制御部13、入力を選択するマルチプレサ(MPX)14、バーストアクセス用デュアルポートメモリ15、及びATA側制御部16を備えるものとする。PCI I/F11は、図4を参照して後述する装置管理情報テーブル(コンフィギュレーションレジスタ)等をもつインターフェースである。
PCIイニシエータ制御部13は、HDDコントローラ1自身がPCIバスのバスマスタとなるときの制御を司り、この例ではターゲットとなっているPCIデバイスB(5)の制御も司る。PCIイニシエータ制御部13は、デュアルポートメモリ15へデータをMPX14経由で出力しているか否かを表すフレーム信号を発生させ、デュアルポートメモリ15及びPCIバス上の他のPCIデバイス(この例ではPCIデバイスA,B)へ送出する。このように、フレーム信号はデータを現在転送中であるか否かを表す信号であり、フレーム信号を送出してPCIバスをネゲートするまで、PCIバスを確保できる。
PCIイニシエータ制御部13は、フレーム信号を提示すると共に、最初の先頭アドレスを規定して、データを所定のバースト数(例えば32バースト)分を連続転送することで、アドレスとデータの多重化をはかっている。PCIイニシエータ制御部13は、その32バースト分の連続転送が終了したときに、フレーム信号をネゲートする。このように、データを何回連続して転送するかを示すバースト数は固定されており、ここで例示するようにバースト数32であった場合には、アドレス1回でデータを32回(32ロングワード)連続して転送することを示している。
また、PCIイニシエータ制御部13は、データ転送がデュアルポートメモリ15内のデータのReadであった場合にReadアドレスを、デュアルポートメモリ15へのWriteであった場合にWriteアドレスを、MPX14経由でデュアルポートメモリ15に送出する。PCIイニシエータ制御部13は、このように読み書きの時はバーストアクセス用デュアルポートメモリ15を使って、ATA側制御部16にデータを転送して、ATA側制御部16がATAバスをコントロールしてHDD2への読み書きを実行する。一方で、外部への制御は、PCIイニシエータ制御部13がPCI I/F11を介してPCIバスを経由して外部のPCIデバイスA(3),PCIデバイスB(5)を制御する。
一方、PCIターゲット制御部12は、HDDコントローラ1自身がPCIバスのスレーブ(ターゲット)となるときの制御を司り、この例では、PCIデバイスA(3)がバスマスタとなっているときの制御を司る。PCIターゲット制御部12は、HDDコントローラ1がスレーブとなった場合にPCIバス上の他のPCIデバイス(この例ではPCIデバイスA)から入力されるフレーム信号を受け取る。そのときのフレーム信号は例えばPCIデバイスA(3)からPCIターゲット制御部12に転送されるデータに対してデータを入力しているか否かを表す信号となる。
また、PCIターゲット制御部12は、データ転送がデュアルポートメモリ15内のデータのReadであった場合にReadアドレスを、デュアルポートメモリ15へのWriteであった場合にWriteアドレスを、MPX14経由でデュアルポートメモリ15に送出する。
MPX14は、PCIターゲット制御部12及びPCIイニシエータ制御部13からの入力のいずれを採用するかを選択し、選択した方の部位からの命令及びデータを出力する。ここでの選択は、単純に入力の有った方の制御部からの命令及びデータを出力するだけでもよい。
バーストアクセス用デュアルポートメモリ15は、Read/Write可能なデュアルポートに対応したバースト転送用のバッファメモリであり、ここでは、32バースト分のメモリを要するものとして説明する。ここで、デュアルポートメモリ15は、PCIターゲット制御部12、PCIイニシエータ制御部13、又はATA側制御部16を介して、PCIデバイスA(3)にバス接続されたページメモリ4、PCIデバイスB(5)にバス接続されたページメモリ6、又はHDD2に対し、データの読み込み及び書き込みが可能となっている。
このように、HDDコントローラ1は、デュアルポートメモリ15を有し、PCI上からHDD2へデータの書き込みを行う場合には、PCI上のデータをデュアルポートメモリ15に書き込んで、それを読み出して、HDD2へデータを書き込む。逆の場合、HDD2上のデータをデュアルポートメモリ15に書き込んで、それを読み出して、PCIバス上の他のメモリ(ページメモリ4,6等)に書き込む。
ATA側制御部16は、HDD2とのデータのやりとりを制御する部位であり、HDD2とデュアルポートメモリ15との間でATAバスを介して所定バースト数(所定のPCIバースト数ともいう。ここでは32バースト分で例示)のデータ転送を行うよう制御する。また、ATA側制御部16は、データ転送がデュアルポートメモリ15内のデータのReadであった場合にReadアドレスを、デュアルポートメモリ15へのWriteであった場合にWriteアドレスを、デュアルポートメモリ15に送出する。
なお、本システムにおいて、HDDコントローラ1と同じPCIバス上には、別のPCIデバイスが少なくとも一つ設けられていればよく、その場合、後述するようにターゲットアクセスの速度によって、そのPCIデバイスとのやり取りを、HDDコントローラ1がバスマスタとなって実行するのかスレーブとなって実行するのかが自然と決定されて、データのバースト転送が実行されることとなる。また、HDDコントローラ1が3つ以上のPCIデバイスに接続されていた場合にも、同様に、現在処理の対象となっているPCIデバイスとHDDコントローラ1のどちらがPCIバスのマスタとなるのかスレーブとなるのかが自然と決定され、それに基づきデータのバースト転送が実行される。
図2は、図1のシステムにおけるPCIデバイスAへのデータ転送及びBへのデータ転送を連続して実行したときのタイミングチャートを示す図で、図3は、図2と同様のデータ転送を従来のHDDコントローラで実行したときのタイミングチャートを示す図である。ここで、図3に関し、従来のHDDコントローラとは、自身に接続されたHDDへのアクセスに係わるデータ転送を実行する際にはバスマスタとなるコントローラを指す。
なお、図2及び図3では、紙面の関係上、データを8バースト転送することを前提としたタイミングチャートを示しており、その説明も8バースト転送を採用した場合について行っている。また、図2及び図3では、PCIデバイスAにデータを転送後、PCIデバイスBへデータを転送した場合のタイミングチャートを示しているが、データ転送の順番や転送量さらには転送方向についてはこの例のみでまかなえるものではなく、さらに一方のPCIデバイスのデータのみを取り扱っているときもあるが、本発明に係わる部分は同様であり説明を省略する。
また、図2及び図3において、FRAME#信号はデータ転送中か否かを示す信号(すなわちバスサイクルの開始及び終了を示す信号)、Aはアドレス信号、Dはデータ信号、IRDY#はバスマスタ(イニシエータ)がデータの入出力の準備を完了していることを示す信号、TRDY#はターゲットがデータの入出力の準備が完了していることを示す信号である。バスマスタとなったPCIデバイス(HDDコントローラ1である場合も含む)は、データ転送の必要を生じたとき、FRAME#信号をアサートにする。そのPCIデバイスのPCI I/Fは、IRDY#がアサートの状態で、データのバースト転送を開始し、TRDY#がネゲートされている間はデータ転送を待つ。
図2の右半分は、HDDコントローラ1がバスマスタ(イニシエータ)となってターゲットであるPCIデバイスB(5)へデータを転送するケースのタイミングチャートである。このときのTRDY信号、FRAME信号及びIRDY信号は、それぞれPCIデバイスB(5)のPCI I/F、HDDコントローラ1のPCI I/F11から発せられる信号で、Lowが準備済みを示す信号である。TRDY信号は、HDDコントローラ1のPCI I/F11で受け取られ、準備済みでない信号であった場合に処理を待機させる。しかし、このケースのデータ転送中は、TRDY信号はLowのままであり、データ転送は遅滞なく実行されているのがわかる。このように、このケースではPCIデバイスB(5)はターゲットアクセスが速いデバイスであるので、8バースト転送によってデータがスムーズに転送できている。
図2の左半分は、PCIデバイスA(3)がバスマスタ(イニシエータ)となってターゲットであるHDDコントローラ1へデータを転送するケースのタイミングチャートである。このときのTRDY信号、FRAME信号及びIRDY信号は、それぞれHDDコントローラ1のPCI I/F11、PCIデバイスA(3)のPCI I/Fから発せられる信号で、Lowが準備済みを示す信号である。TRDY信号は、PCIデバイスA(3)のPCI I/Fで受け取られ、準備済みでない信号であった場合に処理を待機させる。しかし、このケースのデータ転送中は、TRDY信号はLowのままであり、データ転送は遅滞なく実行されているのがわかる。このように、このケースではPCIデバイスA(3)はターゲットアクセスが遅いデバイスであるので、よりターゲットアクセスの速いHDDコントローラ1の方がターゲットとなってPCIデバイスA(3)がイニシエータとなることで、8バースト転送によってデータがスムーズに転送できている。
図3の左半分は、従来のHDDコントローラが従来通りバスマスタ(イニシエータ)となってターゲットであるPCIデバイスAへデータを転送するケースのタイミングチャートである。このときのTRDY信号、FRAME信号及びIRDY信号は、それぞれPCIデバイスAのPCI I/F、HDDコントローラのPCI I/Fから発せられる信号で、Lowが準備済みを示す信号である。TRDY信号は、HDDコントローラのPCI I/Fで受け取られ、準備済みでない信号であった場合に処理を待機させる。このケースのデータ転送中は、TRDY信号は、PCIデバイスAがターゲットアクセスが遅い関係上、Highとなってしまうことが多くあり、データ転送は遅滞して実行されているのがわかる。
なお、図3の右半分のケースは、従来のHDDコントローラがバスマスタとなって、PCIデバイスBにアクセスしているときのタイミングを示している。このケースでは、図3の左半分のケースと異なり、PCIデバイスBはターゲットアクセスが速いデバイスであるので、データ転送は遅滞なく実行されている。
図3の左半分と図2の左半分とを比較すると分かるように、従来のHDDコントローラに比べ、本発明に係るHDDコントローラ1では、従来データ転送がストップしてしまっていた時間分だけ転送時間が省略でき、データ転送を効率よく高速に実行できる。実際、従来製品に比べ、本発明に係る製品の方が3倍程度の高速化が図れた。
図4は、本発明の他の実施形態に係るHDDコントローラのPCI I/Fにおけるコンフィギュレーションレジスタの一例を示す図である。このレジスタは、図1のHDDコントローラ1のPCI I/F11に記録された例えば256バイトの装置管理情報テーブルである。
本発明の他の実施形態として、スレーブモードでは、HDDコントローラ1で指定された特定のアドレスにメモリバーストされたデータを、HDD2にRead/Writeするようにすることが好ましい。従って、本実施形態では、HDD2の高速バースト転送モードを行うにあたって、HDDコントローラ1がPCIのバスマスタになるモードとPCIのスレーブになるモードを併せてもち、PCIのスレーブとなるモードでは、特定のアドレスにメモリバーストされたデータをHDD2に高速バースト(UDMA Mode)でR/Wする。なお、本実施形態は、後述する暗号化・復号化処理についても併用できる。
本実施形態においては、HDDコントローラ1に関する特定アドレスを指定するために、PCI I/F11のレジスタに特定アドレスを設定しておくとよい。さらに、その特定アドレスにメモリバースト可能とするために、特定アドレスとして、通常のI/OデバイスのI/O空間より大幅に広い、メモリデバイスのごときアドレス空間を指定しておく。すなわち、本実施形態では、HDD2がI/Oデバイスであるのにも拘わらず、あたかもメモリのごとく、相手先がバスマスタとなってその特定アドレスをメモリコマンドでDMA転送することで、HDDコントローラ1がPCIのスレーブモードになる。スレーブモードになったHDDコントローラ1は、発生するデータをそのアドレス空間の指定によって受け取ることができる。
図4では、こういった特定アドレスを設定したレジスタを示している。このレジスタは、オフセットとしてPCI Slave Mode Base Address(以下、単に「スレーブモードアドレス」という)が設定可能となっている。このスレーブモードアドレスにおいて、スレーブモードのときのアドレス空間を設定しておけば、他のデバイスがマスタとなってDMA転送を実行するときにこのアドレス空間を転送先として設定することで、HDDコントローラ1へのデータのDMA転送が実行できる。
なお、これに対して、従来のHDDコントローラ(又はDMAコントローラ)では、HDDがI/Oデバイスであるのでアドレス空間が狭いので、DMA転送の対象とはならない。つまり、I/O空間の32バースト分の固定アドレスであった場合には、DMAが使えなくなってCPUが読み書きを繰り返すので、処理が遅くなる。一方、本実施形態では、デュアルポートメモリ15があたかもページメモリをもっているかのような番地設定をPCI I/F11で行っておくことで、DMA転送が可能となる。
また、本発明の他の実施形態として、HDDコントローラ1に、HDD2に加え2台目のHDD(以下、第2HDDという)が接続されるようにしてもよい。そして、HDDコントローラ1がマスタモードで制御されているときに、PCIデバイスの一つが第2HDDに対してスレーブアクセスを行う。
このように、1つのHDDコントローラにHDDを2台接続した場合、2つのメモリコントローラが効率よくHDDにアクセスすることが可能である。また、一方のHDDコントローラがバスマスタとなってやり取りしている間に、もう一つのPCIデバイスが第2HDDに対してこのスレーブアクセスをして、2台のHDDを同時に高速バースト転送することができる。また、本実施形態は、後述する暗号化・復号化処理についても併用できる。HDDを2台接続した場合で各々暗号化・復号化を行う場合、独立して、暗号化を行うか復号化を行うか、スルーするか、また、暗号化のModeをどうするか暗号鍵などを設定することで効率よく処理を行うことができる。一方が暗号化して、他方がその間復号化するといった形態も採用できる。
図5は、本発明の他の実施形態に係るHDDコントローラ並びにそれに接続されたPCIデバイスを搭載したシステムの一構成例を示すブロック図で、図中、17は暗号化・復号化部である。
図5で示す構成例では、HDDコントローラ1は、図1の各構成要素に加えて暗号化・復号化部17を備えるものとする。各構成要素の説明は、図1乃至図4を参照して説明した通りであり、暗号化・復号化部17の説明を除き省略する。
図5で示す実施形態においては、PCIバス上には、PCIデバイスとして、スレーブアクセスの遅いPCIデバイスと速い又は同等の速度のPCIデバイスとの2つのPCIデバイスが接続されているものとする。本実施形態におけるHDDコントローラ1は、HDD2にRead/Writeする時に、データを暗号化・復号化する暗号手段(暗号化・復号化部17で例示)を備えるものとする。暗号化・復号化部17においては、HDDコントローラ1がマスタモード(スレーブアクセスが速いPCIデバイス)で制御しているときとスレーブモード(スレーブアクセスが遅いPCIデバイス)で制御しているときとによって、暗号手段を異ならしめる。例えば、マスタの場合はAES(Advanced Encryption Standard)で、スレーブの場合にはDES(Data Encryption Standard)で暗号化・復号化を行うようにしてもよい。
実際、PCIデバイスA(3)のページメモリ4のデータを暗号化するときと、PCIデバイスB(5)のページメモリ6のデータを暗号化するときとでは、データの種類が異なるため、一般的に暗号化の方式や暗号鍵などを異ならせなければならない。さらに、ページメモリ4のデータとページメモリ6のデータとを同時処理でHDD2へ書き込んだりする場合には、暗号化方式や暗号鍵を異ならせないと、同時処理自体が実行不可能となってしまう。これらは復号化のときも同様である。
このような場合に、従来では、PCIバスに接続されたCPUがレジスタ設定などによって、処理がデバイスAとBで入れ替わるたびに、暗号化方式や暗号鍵などを指定する必要があった。これに対し、本実施形態では、HDD2にR/Wする時に、データを暗号化・復号化する機能を有し、PCIがターゲットとマスタとで暗号鍵や暗号化方式などを独立して設定可能とする。すなわち、本実施形態では、CPUが介在することで処理速度を遅延させることなく、暗号化や復号を伴うHDD2への高速データアクセスが可能となる。
なお、HDDコントローラ1が3つ以上のPCIデバイスに接続されていた場合には、上述したように、どちらがPCIバスのマスタとなるのかスレーブとなるのかが自然と決定され、それに基づきデータのバースト転送が実行される。そのとき、例えばターゲットアクセスの遅いPCIデバイスが2つ存在した場合には、その2台の暗号処理については、本発明とは別の手法にて暗号手段を異ならしめるか、或いは同じ暗号手段を採用するとよい。
本発明の一実施形態に係るHDDコントローラ並びにそれに接続されたPCIデバイスを搭載したシステムの一構成例を示すブロック図である。 図1のシステムにおけるPCIデバイスAへのデータ転送及びBへのデータ転送を連続して実行したときのタイミングチャートを示す図である。 図2と同様のデータ転送を従来のHDDコントローラで実行したときのタイミングチャートを示す図である。 本発明の他の実施形態に係るHDDコントローラのPCI I/Fにおけるコンフィギュレーションレジスタの一例を示す図である。 本発明の他の実施形態に係るHDDコントローラ並びにそれに接続されたPCIデバイスを搭載したシステムの一構成例を示すブロック図である。
符号の説明
1…HDDコントローラ、2…HDD、3…PCIデバイスA、4…PCIデバイスAのページメモリ、5…PCIデバイB、6…PCIデバイスBのページメモリ、11…PCI I/F、12…PCIターゲット制御部、13…PCIイニシエータ制御部、14…マルチプレサ(MPX)、15…バーストアクセス用デュアルポートメモリ、16…ATA側制御部、17…暗号化・復号化部。

Claims (6)

  1. PCIバス上の1又は複数のPCIデバイスとATA規格のI/Oバス上のHDDとの間でデータを転送する制御を行うHDDコントローラであって、
    前記データの高速バースト転送を実行するに際し、当該HDDコントローラが前記PCIバスのバスマスタになるマスタモードと前記PCIバスのスレーブになるスレーブモードとを有し、
    前記PCIデバイスがスレーブとなってアクセスするときのデータ転送スピードが、当該HDDコントローラがスレーブとなってアクセスするときのデータ転送スピードより遅い場合に、当該HDDコントローラは前記スレーブモードで制御し、前記PCIデバイスがスレーブとなってアクセスするときのデータ転送スピードが、当該HDDコントローラがスレーブとなってアクセスするときのデータ転送スピードより速い又は同等場合に、当該HDDコントローラは前記マスタモードで制御することを特徴とするHDDコントローラ。
  2. 前記マスタモードと前記スレーブモードとを切り換える手段を備えたことを特徴とする請求項1に記載のHDDコントローラ。
  3. 前記PCIバス上には、前記PCIデバイスとして、スレーブとなってアクセスするときのデータ転送スピードが当該HDDコントローラがスレーブとなってアクセスするときのデータ転送スピードより遅い第1のPCIデバイスと、スレーブとなってアクセスするときのデータ転送スピードが当該HDDコントローラがスレーブとなってアクセスするときのデータ転送スピードより速い又は同等の第2のPCIデバイスとが接続され、当該HDDコントローラは、前記HDDにRead/Writeする時に、データを暗号化・復号化する暗号手段を備え、当該HDDコントローラが前記マスタモードで制御されているときと前記スレーブモードで制御されているときとによって、前記暗号手段を異ならしめることを特徴とする請求項1又は2に記載のHDDコントローラ。
  4. 前記スレーブモードでは、当該HDDコントローラで指定された特定のアドレスにメモリバーストされたデータを、前記HDDにRead/Writeすることを特徴とする請求項1乃至のいずれか1項に記載のHDDコントローラ。
  5. 当該HDDコントローラには、前記HDDに加え2台目のHDDが接続され、当該HDDコントローラが前記マスタモードで制御されているときに、前記PCIデバイスの一つがスレーブとして前記2台目のHDDアクセスすることを特徴とする請求項1乃至のいずれか1項に記載のHDDコントローラ。
  6. 請求項1乃至のいずれか1項に記載のHDDコントローラを備えたシステムであって、前記PCIバス上に、前記PCIデバイスとして、スレーブとなってアクセスするときのデータ転送スピードが前記HDDコントローラがスレーブとなってアクセスするときのデータ転送スピードより遅い第1のPCIデバイスと、スレーブとなってアクセスするときのデータ転送スピードが前記HDDコントローラがスレーブとなってアクセスするときのデータ転送スピードより速い又は同等の第2のPCIデバイスとが接続され、前記HDDコントローラは、前記第2のPCIデバイスとのデータの高速バースト転送を実行する際には前記PCIバスのバスマスタとなり、前記第1のPCIデバイスとのデータの高速バースト転送を実行する際には前記PCIバスのスレーブとなることを特徴とするシステム。
JP2005189200A 2005-06-29 2005-06-29 Hddコントローラ及びそれを搭載したシステム Active JP4408840B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005189200A JP4408840B2 (ja) 2005-06-29 2005-06-29 Hddコントローラ及びそれを搭載したシステム
CNB2006100945834A CN100527104C (zh) 2005-06-29 2006-06-21 硬盘驱动器控制器及搭载它的系统
US11/476,946 US7389376B2 (en) 2005-06-29 2006-06-26 HDD controller and system equipped with the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005189200A JP4408840B2 (ja) 2005-06-29 2005-06-29 Hddコントローラ及びそれを搭載したシステム

Publications (2)

Publication Number Publication Date
JP2007011526A JP2007011526A (ja) 2007-01-18
JP4408840B2 true JP4408840B2 (ja) 2010-02-03

Family

ID=37591146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005189200A Active JP4408840B2 (ja) 2005-06-29 2005-06-29 Hddコントローラ及びそれを搭載したシステム

Country Status (3)

Country Link
US (1) US7389376B2 (ja)
JP (1) JP4408840B2 (ja)
CN (1) CN100527104C (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8285988B2 (en) * 2006-05-09 2012-10-09 Broadcom Corporation Method and system for command authentication to achieve a secure interface
US8032761B2 (en) 2006-05-09 2011-10-04 Broadcom Corporation Method and system for memory attack protection to achieve a secure interface
US8560829B2 (en) * 2006-05-09 2013-10-15 Broadcom Corporation Method and system for command interface protection to achieve a secure interface
US10255463B2 (en) 2008-11-17 2019-04-09 International Business Machines Corporation Secure computer architecture
JP2013196589A (ja) * 2012-03-22 2013-09-30 Ricoh Co Ltd 印刷装置および印刷システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235111A (ja) 1994-12-26 1996-09-13 Toshiba Corp コンピュータシステム
JP3579149B2 (ja) 1995-11-10 2004-10-20 株式会社東芝 コンピュータシステム
US5922062A (en) * 1997-06-26 1999-07-13 Vlsi Technology, Inc. Combined IDE and SCSI disk controller interface for common hardware reference platforms
US6401142B1 (en) * 1999-05-24 2002-06-04 Advanced Micro Devices, Inc. Apparatus and method for selective bus transfer using master and slave modes
US6950897B2 (en) * 2001-02-23 2005-09-27 Hewlett-Packard Development Company, L.P. Method and apparatus for a dual mode PCI/PCI-X device
KR100400386B1 (ko) * 2001-05-18 2003-10-08 아라리온 (주) 이종버스를 연결하는 고기밀 호스트 어댑터

Also Published As

Publication number Publication date
JP2007011526A (ja) 2007-01-18
US7389376B2 (en) 2008-06-17
US20070005856A1 (en) 2007-01-04
CN100527104C (zh) 2009-08-12
CN1892622A (zh) 2007-01-10

Similar Documents

Publication Publication Date Title
JP4869065B2 (ja) 仮想周辺コンポーネントインターコネクト多重ファンクション装置
KR101035225B1 (ko) 개량 데이터 전송을 위한 제어기 장치 및 방법
JP3820011B2 (ja) Pciインタフェース同期化回路
JP3514477B2 (ja) 入力/出力装置及びデータ転送方法
JP4408840B2 (ja) Hddコントローラ及びそれを搭載したシステム
KR100449721B1 (ko) 서로 다른 데이터 버스 폭을 갖는 장치들을 위한인터페이스 및 이를 이용한 데이터 전송방법
JPH10178626A (ja) 伝送装置及びサーバ装置並びに伝送方法
JP2005316781A (ja) 記憶媒体のマルチホスト切替え方法
JPH0628261A (ja) データ転送方法及び装置
US8856389B1 (en) Efficient data transfers over serial data streams
US7694004B2 (en) Bit-granular writes of control registers
JP2010140440A (ja) バス調停装置
JP3703958B2 (ja) 情報処理装置
JP2008083978A (ja) データ処理装置
JPH02207363A (ja) データ転送制御方式、デバイスコントローラ、およびメモリ・コントローラ
KR100606698B1 (ko) 인터페이스 장치
JPH0351943A (ja) 高速バスと低速バスのバスライン共用化方式
JP5392037B2 (ja) 情報処理装置
KR100427169B1 (ko) 통신 시스템 및 이 시스템의 데이터 전송 방법
JP2007328647A (ja) Cpu間のデータ転送方式
JP2008009804A (ja) 情報処理装置および情報処理方法、情報処理システム、プログラム、並びに、記録媒体
JPH07334453A (ja) メモリアクセスシステム
JPH1141595A (ja) ビデオデコーダlsi
JPS61285566A (ja) 入出力制御装置
JP2007004314A (ja) Pciコントローラ及びそれを搭載したシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090617

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4408840

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4