JP2012089105A - メモリシステム及びホストコントローラ - Google Patents

メモリシステム及びホストコントローラ Download PDF

Info

Publication number
JP2012089105A
JP2012089105A JP2011086523A JP2011086523A JP2012089105A JP 2012089105 A JP2012089105 A JP 2012089105A JP 2011086523 A JP2011086523 A JP 2011086523A JP 2011086523 A JP2011086523 A JP 2011086523A JP 2012089105 A JP2012089105 A JP 2012089105A
Authority
JP
Japan
Prior art keywords
descriptor
memory
system memory
host controller
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.)
Pending
Application number
JP2011086523A
Other languages
English (en)
Inventor
Teruhisa Fujimoto
曜久 藤本
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011086523A priority Critical patent/JP2012089105A/ja
Publication of JP2012089105A publication Critical patent/JP2012089105A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA

Abstract

【課題】DMA転送を高効率に実施することが可能なメモリシステムを提供する。
【解決手段】ホストコントローラ14は、コマンドを発行するレジスタセット33、及びADMA34を有し、システムメモリ13、及びメモリデバイス15,16をアクセスする。第1乃至第4ディスクリプタはシステムメモリ上に記憶され、複数の第2ディスクリプタを示す複数のポインタの集まりであり、第3、第4ディスクリプタは複数の第2ディスクリプタを構成し、メモリデバイスのコマンド発行に必要な情報としてコマンド番号、コマンド動作モード、引数、ブロック長、ブロック数及び複数のデータのアドレスと大きさの情報を含んでいる。DMAは、第1ディスクリプタの先頭を起点として第2ディスクリプタを構成する第3ディスクリプタの内容をレジスタセットに設定し、第4ディスクリプタの内容に従ってシステムメモリとホストコントローラ間のデータを読み込み転送する。
【選択図】図1

Description

本発明の実施形態は、例えばSDTMカードに適用され、ADMA(Advanced Direct Memory Access)を有するホストコントローラ及びメモリシステムに関する。
近時、SDカード例えばSDメモリカードは、ホスト機器としての携帯電話器やデジタルカメラ等に広く使用されている。このSDカードは、ホストコントローラを介してホスト機器に接続され、ホストコントローラにより、ホスト機器とSDメモリカードとの間のデータ伝送が制御されている。
SD Host Controller Simplified Specification Version 2.00. Section 1.13 Advanced DMA, http://www.sdcard.org/developers/tech/host_controller/
データ転送中にホストドライバの処理が必要であった部分をDMAで処理可能にすることにより、データ転送を高効率に実施することが可能なホストコントローラ及びメモリシステムを提供する。
実施形態に係るメモリシステムによれば、ホストコントローラは、デバイスに対しコマンド発行を制御するレジスタセットと、システムメモリをアクセスするダイレクトメモリアクセス(DMA)回路を有し、システムメモリ、及びメモリデバイス間の転送を制御する。第1ディスクリプタは、前記システムメモリ上に記憶され、複数の第2ディスクリプタを示す複数のポインタの集まりで構成されている。第3ディスクリプタは、前記複数の第2ディスクリプタのそれぞれを構成し、前記ホストコントローラの前記レジスタセットを介して前記メモリデバイスのコマンド発行に必要な情報としてコマンド番号、コマンド動作モード、引数と、データ転送に必要な情報としてブロック長、ブロック数の情報を含んでいる。第4ディスクリプタは、前記複数の第2ディスクリプタのそれぞれを構成し、前記システムメモリ上に配置された複数のデータのアドレスと大きさの情報を含んでいる。前記DMA回路は、前記第1ディスクリプタの先頭を起点として前記第2ディスクリプタを構成する前記第3ディスクリプタの内容を前記レジスタセットに設定し、前記第4ディスクリプタの内容に従って前記システムメモリと前記ホストコントローラ間のデータを転送する。
実施形態に係るメモリシステムを概略的に示す構成図。 システムメモリとメモリカードのメモリマップを概略的に示す図。 実施形態に係るディスクリプタの構造を示す図。 図1に示すADMAを概略的に示す構成図。 ADMAの動作を示すフローチャート。
ホスト機器に設けられたシステムメモリは、ページングにより管理されているため、システムメモリ上のデータはページ単位で断片的に管理されている。
メモリカードに対するデータのリード/ライトを効率良く行うため、ホストコントローラはDMAを有し、DMAはページ単位で管理されたデータ転送を可能としている。すなわち、システムメモリ上に断片化されたデータは、データ転送リストとしてのディスクリプタを用いることにより、DMA転送が可能とされている。
しかし、従来のDMAは、ページの境界において新たなシステムアドレスを生成するために割り込みを発生していた。このため、CPUの動作が乱されていた。これを解消するため、ADMAが開発された。
AMDAは、SDカードの1つのリード/ライトコマンドに対応して、ページングによりシステムメモリ上に断片的に配置されたデータ領域に対してデータ転送を行う機能を有している。このため、ADMAは、システムメモリ上にあるディスクリプタを読み込むことで、CPUに対する割り込みなしにホストコントローラとシステムメモリ間のデータ転送を制御している。ホストドライバは、ホストコントローラ内のレジスタセットを設定することにより、メモリカードへのコマンドの発行を制御し、ホストコントローラとメモリカード間のデータ転送を制御し、CPUに対する割り込みを使用していた。従来のように、バス性能が低い場合には、このような方法で問題はなかった。
しかし、近時、バスの性能が向上し、高速なデータ転送が可能となるに従い、ホストドライバの処理がオーバーヘッドとして現れるという問題がある。メモリカードの領域は必ずしも連続的に使用することができないため、複数のメモリコマンドに分割する必要がある。ホストドライバがメモリカードへのコマンドの発行を制御する方式では、データ転送の途中でホストCPUに割り込みを発生させ、ホストドライバを実行させる必要があり、割り込みに応答するまでにある程度の時間がかかる。このため、高速バスを使用してもドライバ処理の待ち時間が影響して性能を低下させてしまう問題があった。
以下、実施の形態について、図面を参照して説明する。下記の説明の中のADMAは、本提案による改良版ADMAを示す。
図1は、本実施形態に係るメモリシステムを概略的に示している。
本実施形態は、システムメモリのデータ転送を可能とするディスクリプタを拡張し、複数のSDコマンドをDMA転送中にホストコントローラによって発行可能とすることにより、ホストドライバの処理によるオーバーヘッドを低減する。
図1に示すシステムコントローラ11は、CPU12、システムメモリ13、及びSDホストコントローラ14とのインタフェースを制御する。
システムメモリ13は、ホストドライバ21、ディスクリプタテーブル22、及びデータ23を記憶する。これらホストドライバ21、ディスクリプタテーブル22、及びデータ23を記憶するために必要な領域は、オペレーティングシステム(OS)によってシステムメモリ13上に確保される。
ホストドライバ21は、例えばSDホストコントローラ14用のOS固有のドライバであり、CPU12により実行される。ホストドライバ21は、後述するADMAを実行する前に、ディスクリプタテーブル22を生成する。このディスクリプタテーブル22は、システムメモリ13とSDカードの間のデータ転送に必要な情報をリストにしたものであり、SDホストコントローラ14が解釈可能なフォーマットで記述されている。ディスクリプタテーブル22の構造については後述する。
SDホストコントローラ14は、SDコマンドを用いて、システムメモリ13とSDカード間のデータ転送を双方向で行う機能を有している。SDホストコントローラ14は、主としてシステムバスインターフェース(I/F)回路31、メモリカードI/F回路32、複数のレジスタを含むレジスタセット33、ADMA34、タイマ35により構成されている。
システムバスI/F回路31は、システムバスを介してシステムコントローラ11に接続される。メモリカードI/F回路32は、図示せぬSDバスインタフェースを介してSDカード、例えばSDメモリカード15、SDIOカード16に接続可能とされている。
SDバスインタフェースは、従来の4ビットタイプには限定されず、LVDS(Low Voltage Difference Signaling)方式を用いたUHS-II(Ultra High Speed-II)などにも適用可能である。UHS-IIでは、コマンドはパケット形式で送られる。
SDホストコントローラ14のレジスタセット33は、例えば図示せぬSDコマンド発生部、レスポンス部、バッファデータポート部、ホストコントロール部、割り込みコントロール部、ADMA部など、複数の部分に分類されている。SDコマンドの発行に必要な情報、例えばコマンド番号、コマンドモード、及びアーギュメントやデータ転送に必要な情報 ブロック長、ブロック数は、レジスタセット33のSDコマンド発生部に設定される。SDコマンド発生部は、これらの情報が設定されることにより、SDカードに対してコマンドを発行する。このコマンドに応じてSDカードから供給されるレスポンスは、レジスタセット33内のレスポンス部で受信される。
ADMA34は、CPU12を介さずに、SDカードとシステムメモリ13間において、データを転送する回路である。このADMA34は、システムメモリ13上のディスクリプタテーブル22に記載された内容に従ってデータ転送を実行する。
タイマ35は、タイムアウトエラーを検出するものである。例えばリードコマンドが発行されてから終了するまでに設定された時間内にリードコマンドの動作が完了しない場合、タイマ35がタイムアウトエラーを検出する。このタイムアウトエラーは、ホストCPU12に割り込みで通知され、ホストドライバによって処理される。
図2は、システムメモリ13のページング管理とSD物理アドレスの関係の例を示している。システムメモリ13はページングにより、例えば4kByte毎の小領域単位で管理される。ホストCPU12が実行するアプリケーションからは、ホストCPU12で管理されるページング機能によって、論理アドレスによりシステムメモリ13がアクセスされる。このため、論理アドレスシステムメモリマップに示すように、データは連続したアドレス領域に配置されているように見える。しかし、システムメモリ13に実際に記録されるデータの位置は、任意であり、物理アドレスシステムメモリマップに示すように断片的である。これらデータは、アドレスとデータ長(length)により管理されている。データ長は可変である。また、システムメモリ13に記憶されたデータの物理アドレスと論理アドレスの関係は、図示せぬページテーブルで管理される。
一方、SDメモリカード13に記憶されるデータは、例えば512Byte〜数MByteのページ単位(ブロック単位)に管理されており、システムメモリ13と完全に独立している。このため、システムメモリ13上のデータをSDメモリカード15に記憶させる場合、SD物理アドレスメモリマップに示すように、システムメモリ13上のデータは、システムメモリ13上とは異なるサイズにより記憶される。SDメモリカード15内のデータは、コマンド毎に指定される連続的な記憶領域に保持され、コマンドにより指定されたアドレスを有しており、データ長は可変であり別なコマンドで指定される。
DMA転送は、物理アドレスによって直接システムメモリ13をアクセスする。このため、システムメモリ13上に転送リストとしてのディスクリプタを作成することにより、ADMAの実行が可能となる。
図3は、本実施形態に係るディスクリプタを示している。このディスクリプタは、システムメモリ13のディスクリプタテーブル22内に作成される。
本実施形態のディスクリプタは、従来のディスクリプタを拡張するものであり、階層構造により構成されている。本実施形態のディスクリプタを用いることにより、ADMAによるシステムメモリ13とSDメモリカード15間のデータ転送を、完全にハードウェアにより実行可能としている。したがって、データ転送中にホストCPU12に割り込みを行う必要がなくなる。エラー処理要求は割り込みで通知されるが、発生確率が非常に小さいので問題はない。
図3に示すように、第1ディスクリプタ(Integrated Descriptor)は、複数の第2ディスクリプタ(Partial Descriptor)へのポインタの集まりによって構成されている。
各第2ディスクリプタ(Partial Descriptor)は、第3ディスクリプタ(SD Command Descriptor)と第4ディスクリプタ(System Memory Descriptor)のペアで構成される。
第3ディスクリプタの内容は、SDコマンドを発行するための情報により構成されている。すなわち、第3ディスクリプタの内容は、例えばコマンド番号、コマンドモード、引数、データ転送に必要な情報としてのブロック長、ブロック数により構成されている。コマンドモードは、例えばリード/ライトを示すものである。この第3ディスクリプタをSDホストコントローラ14のレジスタセット33のうち、SDコマンド発生部に書き込むことにより、1つのSDコマンドが発行される。
第4ディスクリプタ(System Memory Descriptor)の内容は、システムメモリ13上の各データの位置を示すアドレスと、データ長を示すレングス(length)とにより構成され、断片的に配置された複数のデータの集まりを示している。
第3ディスクリプタは、1つのリード/ライトコマンドに対応しているため、SDメモリカードのある1つの連続領域を指定できる。図2に示すように、複数領域が分かれている場合、それぞれの領域に対して第3ディスクリプタが必要となる。また、各第3ディスクリプタと同じデータ転送長になるように対応する第4ディスクリプタがプログラムされる。
第1乃至第4ディスクリプタは、それぞれ属性情報Attを有している。各属性情報Attは、例えばディクスリプタの種類を識別するための情報、及びディスクリプタの終了位置を示す終了ビットを含んでいる。
尚、第3ディスクリプタは、フォーマットが他のディスクリプタと相違するため、属性情報Attは、少なくもと先頭のコマンド番号に対応して設けてもよいし、他のディスクリプタと同様に各ライン毎に持っていても良い。
図4は、ADMA34の概略構成を示している。ADMA34は、システムアドレス制御部34a、データバッファ34b、SDコマンド制御部34c、及びバッファメモリ34dを有している。
システムアドレス制御部34aは、システムメモリ13のアドレスを管理する。具体的には、システムメモリ13に記憶された第1乃至第4のディスクリプタの読み込みを管理する。すなわち、システムアドレス制御部34aには、初期値として、第1ディスクリプタ(Integrated descriptor)の先頭アドレスが設定されている。これによりシステムメモリ13から第1ディスクリプタ(Integrated descriptor)の情報を読み出すことができる。第1ディスクリプタには複数の第2ディスクリプタのポインタが書かれているため、各ポインタの指し示す第2ディスクリプタのアドレスを読み込み、このアドレスに従って第2ディスクリプタを読み込む。つまり、第2ディスクリプタを構成する第3ディスクリプタとしてのSDコマンドディスクリプタをSDコマンド制御部34cに転送する。さらに、第2ディスクリプタを構成する第4ディスクリプタに記述されたデータのアドレス、及びデータ長を順次読み込み、このアドレス及びデータ長に従って、メモリライト時は、システムメモリ13からデータを読み出し、データバッファ34bに転送する。メモリリード時は、データバッファ34bからシステムメモリ13にデータを転送する。
これらの動作を実行するため、システムアドレス制御部34aは、第1ディスクリプタ(Integrated Descriptor)の先頭アドレス、第2ディスクリプタ(Partial Descriptor)のポインタ、データのアドレス及びデータ長を保持するため、複数のレジスタ34a_1〜34a_4、及びこれらレジスタの出力信号を選択するマルチプレクサ(MPX)34a_5を有している。
SDコマンド制御部34cは、SDコマンド発生部に値を設定するためのレジスタアドレスを順次発生するとともに、第3ディスクリプタとしてのSD Command Descriptorに含まれるレジスタ設定情報をホストコントローラ14のレジスタセット33のうちSDコマンド発生部に順次設定する。レジスタセット33のSDコマンド発生部は、レジスタの設定が完了するとSDコマンドを発行する。
バッファメモリ34dは、メモリライトの場合、システムアドレス制御部34aにより指定されたシステムメモリ13上のデータを読み込み、供給されたデータを一時的に保持する。データバッファ34bに保持されたデータは、発行されたSDコマンドに同期してSDメモリカード15に転送される。
また、バッファメモリ34dは、メモリリードの場合、発行されたSDコマンドに同期してメモリデバイスとしてのSDメモリカード15から読み込んだデータを一時的に保持し、システムアドレス制御部34aにより指定されたシステムメモリ13上の位置にデータを転送する。
上記構成において、図5を参照して拡張ディスクリプタを用いたADMA34の動作について説明する。
ホストドライバ21は、システムメモリ13とSDメモリカード15との間でデータ転送を行うため、図3に示すような拡張ディクスリプタをシステムメモリ13上に作成する。第1ディスクリプタの先頭アドレスは、ホストドライバ21により、システムアドレス制御部34aのレジスタ34a_1に設定される。
この後、ホストドライバ21により、AMDA34が起動されると、システムアドレス制御部34aは、レジスタ34a_1に保持された第1ディスクリプタの先頭アドレスに基づき、第1ディスクリプタ(Integrated Descriptor)の先頭に記載された第2ディスクリプタポインタ(Partial Descriptor Pointer)を読み込み、レジスタ34a_2に保持する。(ST11)。
次いで、第2ディスクリプタポインタが示す場所にある第2ディスクリプタがシステムアドレス制御部34aにより読み込まれる(ST12)。
第2ディクスリプタの先頭に記述された第3ディスクリプタ(SD Command Descriptor)は、SDコマンド制御部34cに供給される。SDコマンド制御部34cは、第3ディスクリプタに記述されているデータをSDホストコントローラ14のレジスタセット33を構成するSDコマンド発生部に書き込む。すると、SDコマンド発生部によりSDメモリカード15に対してマンドが発行される(ST13)。
続いて、システムアドレス制御部34aにより、第4ディスクリプタ(System Memory Descriptor)が読み込まれる。システムアドレス制御部34aは、第4ディスクリプタに記述されているアドレス、及びデータ長をそれぞれレジスタ34a_3(Address)とレジスタ34a_4(Length)に保持する。システムアドレス制御部34aは、メモリライトの場合、レジスタ34a_3(Address)のアドレスを先頭アドレスとしてシステムメモリ13からデータを読み出しデータバッファ34bに転送する。また、システムアドレス制御部34aは、メモリリードの場合、レジスタ34a_3(Address)のアドレスを先頭アドレスとして、システムメモリ13にデータバッファ34bのデータを書き込む(ST14)。
メモリライトの場合、データバッファ34b内において、システムメモリ13から供給された断片的なデータが連続したデータとされる。第4ディスクリプタ(System Memory Descriptor)は、アドレスとデータ長のペアで構成される複数のデータで構成され、ADMAは順次これを繰り返しシステムメモリとデータバッファ34b間のデータ転送を行う。
この後、ADMAは、データバッファ34bに保持されたデータをSDメモリカード15に転送する(ST15)。発行したコマンド(リード/ライトコマンド)に同期して、ADMAはシステムメモリ13上のデータをアクセスし、データバッファ34bを介して両者のデータ転送は同期をとりながら実行される。総データ転送量は、メモリデバイス側もシステムメモリ側も、どちらも同じ値に設定されていなければならない。
1つの第2ディスクリプタに基づくデータの転送が完了すると、全ての第1ディスクリプタの実行が終了したかどうかが判別される(ST16)。この結果、全ての第1ディスクリプタの実行が終了していない場合、制御がステップST12に移行され、第1ディスクリプタに記述されたPartial Descriptor Pointerに従って、次の第2ディスクリプタが読み込まれ、上記の動作が実行される(ST16−ST12)。各ディスクリプタには前記属性情報Attの中の終了ビットが設けられており、この終了ビットにより、ディスクリプタプログラムの終了位置を指定することができる。
次の第2ディスクリプタに対応して、第3ディスクリプタがSDホストコントローラ14のレジスタに設定されると、SDコマンドが発行され、第4ディスクリプタに従ってデータが転送される。例えばメモリリードの場合、最終データがデータバッファ34bに読み込まれた後、次の第3ディスクリプタを読み込んでおくことにより、システムメモリへのDMA転送中に、次の転送のSDコマンドを発行することも可能である。この場合、コマンド発行時間が見えなくなるため、一層高速動作が可能となる。
一方、第1ディスクリプタに記述された内容の全てが実行された場合、SDホストコントローラ14は、ADMA完了割り込みを発生する(ST17)。これにより、CPU12(ホストドラバ21)は、ADMAの処理が正常終了したことを知ることができる。エラーが発生しなかった場合、ホストCPU12は、ADMAの起動から終了まで転送に関わる必要がないため、ホストドライバによる性能低下は発生しない。また、データ転送中に次のディスクリプタを準備することができるため、ディスクリプタ作成時間は、転送性能に影響しない。
ホストドライバ21は、転送が完了するとファイルシステムに対して、情報を更新するように指示する。これによりSDメモリカードに転送されたデータは確定する。
上記実施形態によれば、システムメモリ13とSDメモリカード15との間でデータ転送を行うため、ホストドライバ21により、システムメモリ13内に拡張ディスクリプタが生成される。この拡張ディスクリプタは、第2ディスクリプタの位置を示すポインタの集合としての第1ディスクリプタを含む。ホストドライバ21により、ADMA34が起動されると、第1ディスクリプタの先頭アドレスの内容に基づき、順次第2ディスクリプタの内容がADMA34に取り込まれ、ADMA34により第2ディスクリプタに記述された第3、第4ディスクリプタの内容に従って、システムメモリ13とSDメモリカード15との間でデータ転送が実行される。このため、ホストドライバ21は、ADMA34によるデータ転送中、データ転送に何ら関与しない。したがって、ADMA34により高速なデータ転送が可能となる。
また、ADMA34は、起動後、第3ディスクリプタをレジスタセット33のSDコマンド発生部に設定することによりコマンドを発生させ、システムメモリ13とSDメモリカード15間のデータ転送を、ADMA34によって、ハードウェアのみにより実行可能としている。したがって、ホストドライバ21を介在する場合に比べて格段に高速化することが可能である。
さらに、データ転送中にホストドライバを動作させるためには、通常割り込みによって起動される。したがって、割り込み応答時間が無視できないとデータ転送性能の低下を引き起こしてしまう。しかし、本方式を用いることにより、そのような性能低下を回避することができる。
尚、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
12…CPU、13…システムメモリ、14…SDホストコントローラ、15…SDメモリカード、21…ホストドライバ、22…ディスクリプタテーブル、33…レジスタセット、34…ADMA、34a…システムアドレス制御部、34b…データバッファ、34c…SDコマンド制御部。

Claims (10)

  1. デバイスに対しコマンド発行を制御するレジスタセットと、システムメモリをアクセスするダイレクトメモリアクセス(DMA)回路を有し、システムメモリ、及びメモリデバイス間の転送を制御するホストコントローラと、
    前記システムメモリ上に記憶され、複数の第2ディスクリプタを示す複数のポインタの集まりで構成された第1ディスクリプタと、
    前記複数の第2ディスクリプタのそれぞれを構成し、前記ホストコントローラの前記レジスタセットを介して前記メモリデバイスのコマンド発行に必要な情報としてコマンド番号、コマンド動作モード、引数と、データ転送に必要な情報としてブロック長、ブロック数の情報を含む第3ディスクリプタと、
    前記複数の第2ディスクリプタのそれぞれを構成し、前記システムメモリ上に配置された複数のデータのアドレスと大きさの情報を含む第4ディスクリプタとを具備し、
    前記DMA回路は、前記第1ディスクリプタの先頭を起点として前記第2ディスクリプタを構成する前記第3ディスクリプタの内容を前記レジスタセットに設定し、前記第4ディスクリプタの内容に従って前記システムメモリと前記ホストコントローラ間のデータを転送することを特徴とするメモリシステム。
  2. 前記システムメモリは、ホストドライバを保持し、前記ホストドライバは、転送情報を含むディスクリプタを作成し、前記DMA回路の起動のみを指示する機能を有し、割り込みによって再度起動され、次のデータ転送の起動または、エラー処理を行うことを特徴とする請求項1記載のメモリシステム。
  3. 前記DMA回路は、
    前記システムメモリのアドレスを制御し、前記各ディスクリプタを読み出すシステムアドレス制御部と、
    前記システムメモリから読み出された前記第3ディスクリプタの内容を前記ホストコントローラの前記レジスタセットに設定するSDコマンド制御部と、
    前記システムメモリ又は前記メモリデバイスから読み出されたデータを保持するデータバッファと
    を具備することを特徴とする請求項2記載のメモリシステム。
  4. 前記ホストコントローラは、前記第1ディスクリプタ内の複数のポインタを全てアクセスした場合、データ転送の終了を示す割り込み信号を発生することを特徴とする請求項3記載のメモリシステム。
  5. 前記第1乃至第4ディスクリプタのそれぞれは、ディクスリプタの種類を識別するための情報、及びディスクリプタの終了位置を示す情報を含む属性情報を有することを特徴とする請求項4記載のメモリシステム。
  6. デバイスに対しコマンド発行を制御するレジスタセットと、システムメモリをアクセスするダイレクトメモリアクセス(DMA)回路を有し、システムメモリ、及びメモリデバイス間の転送を制御するホストコントローラであって、
    前記システムメモリ上に記憶され、複数の第2ディスクリプタを示す複数のポインタの集まりで構成された第1ディスクリプタと、前記複数の第2ディスクリプタのそれぞれを構成し、前記ホストコントローラの前記レジスタセットを介して前記メモリデバイスのコマンド発行に必要な情報としてコマンド番号、コマンド動作モード、引数と、データ転送に必要な情報としてブロック長、ブロック数の情報を含む第3ディスクリプタと、前記複数の第2ディスクリプタのそれぞれを構成し、前記システムメモリ上に配置された複数のデータのアドレスと大きさの情報を含む第4ディスクリプタとの読み込みが可能であり、
    前記DMA回路は、前記第1ディスクリプタの先頭を起点として前記第2ディスクリプタを構成する前記第3ディスクリプタの内容を前記レジスタセットに設定し、前記第4ディスクリプタの内容に従って前記システムメモリからデータを読み込み転送することを特徴とするホストコントローラ。
  7. 前記システムメモリは、ホストドライバを保持し、前記ホストドライバは、転送情報を含むディスクリプタを作成し、前記DMA回路の起動のみを指示する機能を有し、割り込みによって再度起動され、次のデータ転送の起動または、エラー処理を行うことを特徴とする請求項6記載のホストコントローラ。
  8. 前記DMA回路は、
    前記システムメモリのアドレスを制御し、前記各ディスクリプタを読み出すシステムアドレス制御部と、
    前記システムメモリから読み出された前記第3ディスクリプタの内容を前記ホストコントローラの前記レジスタセットに設定するSDコマンド制御部と、
    前記システムメモリから読み出されたデータを保持するデータバッファと
    を具備することを特徴とする請求項7記載のホストコントローラ。
  9. 前記第1ディスクリプタ内の複数のポインタを全てアクセスした場合、データ転送の終了を示す割り込み信号を発生することを特徴とする請求項8記載のホストコントローラ。
  10. 前記第1乃至第4ディスクリプタのそれぞれは、ディクスリプタの種類を識別するための情報、及びディスクリプタの終了位置を示す情報を含む属性情報を有することを特徴とする請求項9記載のホストコントローラ。
JP2011086523A 2010-09-22 2011-04-08 メモリシステム及びホストコントローラ Pending JP2012089105A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011086523A JP2012089105A (ja) 2010-09-22 2011-04-08 メモリシステム及びホストコントローラ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010212721 2010-09-22
JP2010212721 2010-09-22
JP2011086523A JP2012089105A (ja) 2010-09-22 2011-04-08 メモリシステム及びホストコントローラ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015135991A Division JP6046216B2 (ja) 2010-09-22 2015-07-07 ホストシステム及びホストコントローラ

Publications (1)

Publication Number Publication Date
JP2012089105A true JP2012089105A (ja) 2012-05-10

Family

ID=45818746

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011086523A Pending JP2012089105A (ja) 2010-09-22 2011-04-08 メモリシステム及びホストコントローラ
JP2015135991A Active JP6046216B2 (ja) 2010-09-22 2015-07-07 ホストシステム及びホストコントローラ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015135991A Active JP6046216B2 (ja) 2010-09-22 2015-07-07 ホストシステム及びホストコントローラ

Country Status (4)

Country Link
US (9) US8195845B2 (ja)
JP (2) JP2012089105A (ja)
CN (2) CN104360967B (ja)
TW (1) TWI465905B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014010759A (ja) * 2012-07-02 2014-01-20 Toshiba Corp ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI465905B (zh) * 2010-09-22 2014-12-21 Toshiba Kk 記憶體系統、主機控制器、及直接記憶體存取之控制方法
US9026568B2 (en) 2012-03-30 2015-05-05 Altera Corporation Data compression for direct memory access transfers
US9558129B2 (en) * 2014-06-10 2017-01-31 Xilinx, Inc. Circuits for and methods of enabling the access to data
TWI553476B (zh) * 2015-03-05 2016-10-11 光寶電子(廣州)有限公司 區域描述元管理方法及其電子裝置
CN105988954B (zh) * 2015-03-05 2018-09-11 光宝科技股份有限公司 区域描述元管理方法及其电子装置
CN104850517B (zh) * 2015-05-20 2018-01-12 新华三技术有限公司 一种dma传输报文数据的方法及装置
US20170147517A1 (en) * 2015-11-23 2017-05-25 Mediatek Inc. Direct memory access system using available descriptor mechanism and/or pre-fetch mechanism and associated direct memory access method
EP3173935B1 (en) * 2015-11-24 2018-06-06 Stichting IMEC Nederland Memory access unit
CN106547709B (zh) * 2016-11-24 2019-05-21 盛科网络(苏州)有限公司 灵活配置多通道dma控制器的方法及装置
JP6882080B2 (ja) * 2017-05-31 2021-06-02 キヤノン株式会社 画像処理装置、方法、プログラム及びシステム
CN108388529B (zh) * 2018-01-26 2021-03-09 武汉中元华电电力设备有限公司 一种外设主动实现与cpu间数据交换的方法
US10657087B2 (en) * 2018-05-31 2020-05-19 Toshiba Memory Corporation Method of out of order processing of scatter gather lists
CN113805813A (zh) * 2018-11-30 2021-12-17 北京忆芯科技有限公司 降低读命令处理延迟的方法与装置
CN109558344B (zh) * 2018-12-03 2021-10-29 郑州云海信息技术有限公司 一种适用于网络传输的dma传输方法及dma控制器
US10664282B1 (en) * 2019-02-04 2020-05-26 Amazon Technologies, Inc. Runtime augmentation of engine instructions
JP2020154493A (ja) * 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステム
KR20210053384A (ko) 2019-11-01 2021-05-12 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
TWI771852B (zh) * 2020-12-29 2022-07-21 新唐科技股份有限公司 直接記憶體存取裝置、資料傳輸方法與電子設備
US11941131B1 (en) * 2020-12-31 2024-03-26 Meta Platforms Technologies, Llc Isolation of secrets from an operating system
US11940935B2 (en) * 2021-04-19 2024-03-26 Mellanox Technologies, Ltd. Apparatus, method and computer program product for efficient software-defined network accelerated processing using storage devices which are local relative to a host
CN114443529B (zh) * 2022-04-02 2022-07-05 苏州浪潮智能科技有限公司 内存直接访问架构、系统、方法、电子设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005157717A (ja) * 2003-11-26 2005-06-16 Nec Micro Systems Ltd データ転送方法及びその装置
JP2005258783A (ja) * 2004-03-11 2005-09-22 Ricoh Co Ltd データ転送装置、データ転送方法、画像形成装置及びオプションボード
WO2010074944A2 (en) * 2008-12-22 2010-07-01 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
JP3448689B2 (ja) * 1993-02-22 2003-09-22 株式会社日立製作所 Io制御方法および情報処理装置
US5598568A (en) * 1993-05-06 1997-01-28 Mercury Computer Systems, Inc. Multicomputer memory access architecture
US5933654A (en) * 1996-09-24 1999-08-03 Allen-Bradley Company, Llc Dynamic buffer fracturing by a DMA controller
US6202107B1 (en) * 1998-11-19 2001-03-13 Sun Microsystems, Inc. Host controller interface descriptor fetching unit
US6697885B1 (en) * 1999-05-22 2004-02-24 Anthony E. B. Goodfellow Automated DMA engine for ATA control
US6782465B1 (en) * 1999-10-20 2004-08-24 Infineon Technologies North America Corporation Linked list DMA descriptor architecture
US7120708B2 (en) * 2003-06-30 2006-10-10 Intel Corporation Readdressable virtual DMA control and status registers
US7287101B2 (en) * 2003-08-05 2007-10-23 Intel Corporation Direct memory access using memory descriptor list
JP2005092742A (ja) * 2003-09-19 2005-04-07 Toshiba Corp ビデオ出力コントローラ及びビデオカード
US20050114561A1 (en) * 2003-11-24 2005-05-26 Ho-Keng Lu Method for performing DMA transfers with dynamic descriptor structure
US20050289253A1 (en) * 2004-06-24 2005-12-29 Edirisooriya Samantha J Apparatus and method for a multi-function direct memory access core
CN100432968C (zh) * 2004-07-09 2008-11-12 上海奇码数字信息有限公司 存储器直接存取装置及其数据传输方法
US7493427B2 (en) * 2004-07-14 2009-02-17 International Business Machines Corporation Apparatus and method for supporting received data processing in an offload of network protocol processing
EP1647894A3 (en) * 2004-10-12 2007-11-21 NEC Electronics Corporation Information processing apparatus with parallel DMA processes
JP4390694B2 (ja) * 2004-12-24 2009-12-24 富士通株式会社 Dma回路及びこれを用いたディスクアレイ装置
JP4563829B2 (ja) * 2005-01-27 2010-10-13 富士通株式会社 ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム
US7395385B2 (en) * 2005-02-12 2008-07-01 Broadcom Corporation Memory management for a mobile multimedia processor
US7496699B2 (en) * 2005-06-17 2009-02-24 Level 5 Networks, Inc. DMA descriptor queue read and cache write pointer arrangement
CN1713164A (zh) * 2005-07-21 2005-12-28 复旦大学 可自主处理多事务传输要求的dma控制器及数据传输方法
US7496695B2 (en) * 2005-09-29 2009-02-24 P.A. Semi, Inc. Unified DMA
CN101136000B (zh) * 2006-09-01 2011-01-05 飞思卡尔半导体公司 实现sd主机/从属设备的应用处理器电路和电子设备
US7827331B2 (en) * 2006-12-06 2010-11-02 Hitachi, Ltd. IO adapter and data transferring method using the same
JP4672742B2 (ja) * 2008-02-27 2011-04-20 株式会社東芝 メモリコントローラおよびメモリシステム
US7912997B1 (en) * 2008-03-27 2011-03-22 Xilinx, Inc. Direct memory access engine
CN101303677B (zh) * 2008-05-04 2010-06-02 华为技术有限公司 一种直接存储器访问控制方法、系统及控制器
US20100017650A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
TW201005537A (en) * 2008-07-29 2010-02-01 Ralink Technology Corp Controller, method, system and program for direct memory access
US8073990B1 (en) * 2008-09-23 2011-12-06 Teradici Corporation System and method for transferring updates from virtual frame buffers
JP5193822B2 (ja) 2008-11-19 2013-05-08 株式会社東芝 追記型メモリデバイス
JP2010211322A (ja) * 2009-03-06 2010-09-24 Renesas Electronics Corp ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法
US8626963B2 (en) * 2010-05-04 2014-01-07 Mediatek Inc. Packet based data transfer system and method for host-slave interface
TWI465905B (zh) * 2010-09-22 2014-12-21 Toshiba Kk 記憶體系統、主機控制器、及直接記憶體存取之控制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005157717A (ja) * 2003-11-26 2005-06-16 Nec Micro Systems Ltd データ転送方法及びその装置
JP2005258783A (ja) * 2004-03-11 2005-09-22 Ricoh Co Ltd データ転送装置、データ転送方法、画像形成装置及びオプションボード
WO2010074944A2 (en) * 2008-12-22 2010-07-01 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014010759A (ja) * 2012-07-02 2014-01-20 Toshiba Corp ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
US9122779B2 (en) 2012-07-02 2015-09-01 Kabushiki Kaisha Toshiba Bridge device with an error tolerant DMA transfer function

Also Published As

Publication number Publication date
TW201214118A (en) 2012-04-01
US8195845B2 (en) 2012-06-05
US20150120984A1 (en) 2015-04-30
CN102411549B (zh) 2014-11-12
JP6046216B2 (ja) 2016-12-14
US8959260B2 (en) 2015-02-17
CN104360967B (zh) 2017-08-04
US20140337542A1 (en) 2014-11-13
JP2015201234A (ja) 2015-11-12
USRE48736E1 (en) 2021-09-14
US20120226830A1 (en) 2012-09-06
US8825923B2 (en) 2014-09-02
USRE49875E1 (en) 2024-03-19
USRE47659E1 (en) 2019-10-22
US8683093B2 (en) 2014-03-25
CN104360967A (zh) 2015-02-18
US20140156881A1 (en) 2014-06-05
CN102411549A (zh) 2012-04-11
TWI465905B (zh) 2014-12-21
US9122630B2 (en) 2015-09-01
US8447896B2 (en) 2013-05-21
US20120072618A1 (en) 2012-03-22
US20130232283A1 (en) 2013-09-05

Similar Documents

Publication Publication Date Title
JP6046216B2 (ja) ホストシステム及びホストコントローラ
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
JP4745465B1 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
US10866755B2 (en) Two stage command buffers to overlap IOMMU map and second tier memory reads
JP4373255B2 (ja) ダイレクトメモリアクセス制御装置および方法
WO2014100954A1 (zh) 数据控制方法及系统
CN111813703A (zh) 数据储存装置及逻辑至物理地址映射表的更新方法
JP5923913B2 (ja) ストレージ装置、ストレージ装置の制御方法及びストレージシステム
JP2000305818A (ja) チップカードのメモリ断片化解消(デフラグ)
JP5334048B2 (ja) メモリ装置および計算機
CN104424124A (zh) 内存装置、电子设备和用于控制内存装置的方法
JP2011175666A (ja) 半導体記憶装置及び半導体記憶装置の制御方法
JP2011192053A (ja) ディスクアレイ装置、ディスクアレイシステム、及びキャッシュ制御方法
JP3940701B2 (ja) ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法
KR101881038B1 (ko) 비휘발성 메모리에 저장된 메모리 매핑 파일의 원자적 업데이트 방법 및 제어 장치
CN115878021A (zh) 计算机可读取存储介质、写入数据到闪存存储器的方法及装置
JP6157158B2 (ja) 情報処理装置、その制御方法及びプログラム
JP6080490B2 (ja) 情報処理装置、起動方法およびプログラム
JP2011118623A (ja) データ同期装置
JP2003216478A (ja) インタフェース回路及び半導体装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130904

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141225

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150407