[go: up one dir, main page]

JP4343923B2 - Dma回路およびデータ転送方法 - Google Patents

Dma回路およびデータ転送方法 Download PDF

Info

Publication number
JP4343923B2
JP4343923B2 JP2006154419A JP2006154419A JP4343923B2 JP 4343923 B2 JP4343923 B2 JP 4343923B2 JP 2006154419 A JP2006154419 A JP 2006154419A JP 2006154419 A JP2006154419 A JP 2006154419A JP 4343923 B2 JP4343923 B2 JP 4343923B2
Authority
JP
Japan
Prior art keywords
data
pattern
descriptor
dummy
transfer
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
JP2006154419A
Other languages
English (en)
Other versions
JP2007323467A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006154419A priority Critical patent/JP4343923B2/ja
Priority to US11/589,997 priority patent/US7640377B2/en
Publication of JP2007323467A publication Critical patent/JP2007323467A/ja
Application granted granted Critical
Publication of JP4343923B2 publication Critical patent/JP4343923B2/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は,LSI内部で検証に適したデータパターンを生成することにより,効率的で効果の高いシステム検証の実行を可能とするDMA回路およびデータ転送方法に関するものである。
近年,様々なデータが電子化されコンピュータ上で扱われるようになるに従い,コンピュータとは独立して大量のデータを効率よく格納することができるストレージサーバが重要性を増してきている。ストレージサーバは,運用中に業務を停止させないことが必須であり,高度な品質を持つことが重要となるため,開発においては特に十分な検証を行う必要がある。しかしながら,ストレージサーバの巨大化が進むにつれ,開発期間に占める検証期間の割合が増加する傾向にあり,開発サイクルを短縮するためには検証期間を短縮する必要がある。
図4は,ストレージシステムの例を示す図である。図4に示すストレージシステムは,ストレージサーバ100と,ホストコンピュータ200とから構成される。ストレージサーバ100の例としては,例えばRAID装置などが挙げられる。RAID(Redundant Arrays of Independent(Inexpensive) Disks)は,複数台のHDD(Hard Disk Drive )を組み合わせることにより,1台のHDDに比べて高速,大容量,高信頼性に優れたディスクシステムを構築する技術である。例えば,データとパリティ情報を記録する際に複数のディスクにストライピング(複数ドライブからの分散書き込み/読み出し)を行なうことで信頼性と高速化を行なうRAID5や,ミラーリングを行うRAID1などが知られている。さらに,データに対してチェックコードを付加することで,さらなる高信頼性化を図っている。
ストレージサーバ100は,チャネルアダプタ(CA:Channel Adapter )101,キャッシュ制御部(CM:Central Module;以下,CMともいう)102,キャッシュメモリ103,デバイスアダプタ(DA:Device Adapter)104,スイッチ105,ドライブモジュール(DM:Drive Module)106を備える。
チャネルアダプタ101は,ホストコンピュータ200とのIOを制御するアダプタである。FC(ファイバチャネル),iSCSI等の各種インタフェースを制御し,内部バスへのデータ転送,内部バスデータの各種IOへの変換などを行う。また,ホストコンピュータ200から転送されるユーザデータに,ディスクフォーマットにあわせたデータ保護のための冗長ビット(CRCやBID)を付加し,キャッシュ制御部102を介してディスクに書き込む。また,ディスクから読み出されたデータをチェックし,データ保護用の冗長ビットを外してホストコンピュータ200に転送する。
チャネルアダプタ101には,ストレージ装置特有のデータ保護ビットの付加,データ保護ビットのチェック/取り外しなどを効率よく行うためのデータストレージシステム専用DMAが搭載されている。
キャッシュ制御部102は,チャネルアダプタ101,キャッシュメモリ103,デバイスアダプタ104間のデータ転送等の制御を行う。デバイスアダプタ104は,ディスクアレイモジュールの1つであり,複数のドライブモジュール106を接続し,制御する。ドライブモジュール106は,磁気ディスクシステム用にパッケージされたハードディスクドライブである。
図5は,チャネルアダプタの例を示す図である。図5に示すチャネルアダプタ101の内部構成例は,光ファイバチャネルによりホストコンピュータと接続されるチャネルアダプタ101の内部構成例である。
チャネルアダプタ101は,ファームウェアが搭載されるMPU110,メモリ111,MPU110と外部インタフェースを接続するチップセット112,光信号を電気信号にしてシリアル−パラレル変換を行なうSERDES(Serialization/deserialization )113,ファイバチャネルプロトコル制御とMPU110からの指示を受けてデータ転送を行なうDMA制御とを行うプロトコル/DMA制御回路114を備える。図5のチャネルアダプタ101では,特に,ファイバチャネルプロトコル制御とDMA制御の両方を含む専用LSI(プロトコル/DMA制御回路114)を使用している。ファイバチャネルプロトコル制御とDMA制御とがそれぞれ別のLSIで実現される場合もある。
DMA(Direct Memory Access)は,MPUを介さずに装置とRAM間で直接データ転送を行う方式である。ここでは,専用LSIに,サーチ(リードDMA),データチェック(リードDMA),データチェックコード付加(ライトDMA)といったストレージシステムに特化した機能を付加したDMAが搭載されている。DMAでは,MPU命令によってハードウェア的にデータが転送される。
図6は,プロトコル/DMA制御回路の構成例を示す図である。プロトコル/DMA制御回路114は,プロトコル制御回路120,センドエンジン(Send Engine )121,ホストインタフェース122,PCIインタフェース123,CMインタフェース124を備える。センドエンジン121は,ディスクリプタ制御回路130,ホストデータ制御回路131,BCC生成回路132,FCC生成回路133,ライト制御回路134を備える。
プロトコル/DMA制御回路114において,プロトコル制御回路120は,ホストインタフェース122を介してホストデータを受け取り,プロトコル制御を行う。センドエンジン121は,データライト用のDMAエンジン(ホストコンピュータ200からキャッシュメモリ103へのライトDMAのためのDMAエンジン)である。センドエンジン121は,PCIインタフェース123を介してMPU110からディスクリプタを受け取り,そのディスクリプタの情報に従って,CMインタフェース124を介してデータをキャッシュ制御部(CM)102に転送する。
センドエンジン121において,ディスクリプタ制御回路130は,PCIインタフェース123を介して,MPU110からディスクリプタを取得し,各回路に対してディスクリプタの情報を通知する。ホストデータ制御回路131は,ディスクリプタの情報に従って,ホストデータの入力制御を行う。BCC生成回路132は,ディスクリプタの情報に従って,BCC(Block Check Code)を生成する。FCC生成回路133は,ディスクリプタの情報に従って,FCC(Field Check Code)を生成する。ライト制御回路134は,ディスクリプタの情報に従って,CMへのデータの転送制御を行う。
ディスクリプタについて説明する。ディスクリプタは,MPUからDMA制御回路に対する命令である。MPUがメモリ上にディスクリプタを用意した後,DMA制御回路が自身でメモリからディスクリプタを読み出して参照する方法が広く用いられている。DMA制御回路に対する命令とは,具体的にはDMAがアクセスするリードアドレス/ライトアドレス,データ転送長,動作モード(例:データ転送終了後にMPUに通知するか,データチェックを行うか,データコンペアを行うか等)などである。ディスクリプタは,ある一定のフォーマットを持った特定サイズのデータとなっている。
図7は,ディスクリプタの例を示す図である。図7に示すディスクリプタは,データライト用のディスクリプタ140の例である。ディスクリプタ140は,メモリ141に格納され,Mode,DL,CMA,BBID,FBIDの情報を持つ。Modeにおいて,bit0にはデータ転送終了後のMPUへの通知の有無が示され,bit1にはBCCの生成の有無が示され,bit2にはFCCの生成の有無が示される。DLには,データ転送長が指定される。CMAには,転送先のアドレスが指定される。BBIDには,BCC−BIDが設定される。FBIDには,FCC−BIDが設定される。
MPUは,DMA制御回路への処理命令をディスクリプタ140に記載し,メモリ141に書き込む(ディスクリプタの構築)。処理命令が複数に及ぶ場合には,複数のディスクリプタを連続したメモリ領域に書き込む。MPUは,構築したディスクリプタ140のアドレスポインタをDMA制御回路に通知する。DMA制御回路を搭載するLSIは,自らメモリ141上のディスクリプタ140を読み出し,処理命令(データ転送)を実行する。ディスクリプタ140が残っていれば,次のディスクリプタ140を読み出し,処理(データ転送)を継続する。
図8は,ディスクリプタの概念を示す図である。ここでは,ディスクリプタ140は,メモリ141のディスクリプタエリア(Descriptor area )に,DMAエンジンごとに格納される。例えば,図8において,DMA2 Descriptor がセンドエンジン用のディスクリプタ格納領域とし,そこの連続領域にディスクリプタ140(図8では,Descriptor#0からDescriptor#4)が格納されている。DMAエンジン搭載LSI142は,MPUから通知されたディスクリプタのアドレスポインタをもとに,ディスクリプタ140を読み出し,その指示に従ってデータ転送を実行する。
なお,図8において,DMA_BASEはDMAのアクセス領域(メモリ141のAccess area )のベースアドレスを示し,DSC_BASEはディスクリプタエリアのベースアドレスを示す。また,DMA2_TOPは実行予約中のディスクリプタポインタ(TOPポインタ)を示し,DMA2_BTMは処理中のディスクリプタポインタ(BTMポインタ)を示す。読み出したディスクリプタ140の指示によるデータ転送を終了するたびに,次に読み出すディスクリプタ140の位置にBTMポインタを変更し,BTMポインタがTOPポインタと同じになったところで,一連のDMAデータ転送が終了となる。
データチェックコードについて説明する。一般的なデータチェックコードとして,CRC(Cyclic Redundancy Check )とBID(BlockID )からなる冗長ビットをデータの後ろに付加してデータと共に送付するBCC(Block Check Code)やFCC(Field Check Code)が知られている。CRCは,ある管理ブロック単位のデータから生成多項式による演算を行い生成する。BIDは例えばデータの位置を示す情報やファームウェアが管理するタグである。
図9は,BCCとFCCの概念を示す図である。図9に示すように,520バイト中の最後の8バイトには,常にBCC(図中斜線部分)が書き込まれる。また,64バイト中の最後の8バイトには,FCC(図中網掛部分)が書き込まれることがある。
ディスクのフォーマットの一例として,固定長の論理ブロック単位でディスクを管理する方法がある。例えば,512バイトのデータにこのデータから生成したCRC(BCC−CRC)とデータの位置情報を示すBID(BCC−BID)の計8バイトを付加し,520バイト単位でデータの管理を行う。このブロック単位,もしくはブロックの先頭アドレスをLBA(Logical Block Address )という。
ディスクのフォーマットの一例として,カウント(Count )/キー(Key )/データ(Data)という3種のデータフォーマット(フィールド:Field )一組をレコード(Record)とし,これを1つの単位としてデータの管理を行う手法がある。主にグローバルサーバ(メインフレーム)で一般的である。カウントは固定長,キーとデータは可変長で,カウント部にはキー長とデータ長の情報が含まれる。フィールドごとにフィールド中のデータから生成したCRC(FCC−CRC)とデータの位置情報や管理情報を含むBID(FCC−BID)の計8バイトが保護情報として書き込まれる。図9において,Pad はパディングデータを示す。パディングデータは通常0である。
なお,DMAを備えた装置の検証を行う先行技術が記載された文献として,例えば特許文献1などがある。特許文献1には,回路装置のDMA機能を試験する技術が記載されている。特許文献1では,あるメモリ領域から別のメモリ領域にデータを移す機能(折り返し機能)を持つDMA回路についての試験を行っている。これは,メモリ試験を実施することを目的とした技術であり,下記の本発明の課題を解決することはできない。
特開平7−319728号公報
DMAを用いるシステムの負荷試験を行う際に,LSIが低速IOと高速IOで接続されている場合,低速IOから高速IOへのデータ転送では高速IO側に最大負荷をかけることが難しく,性能検証が困難である。具体的には,ホストインタフェースに比べてストレージサーバの内部バスが高速である場合や,既存回路やIPを利用することで既存回路部の動作周波数と新規設計回路部の動作周波数に差が発生する場合などが,これに該当する。
図10は,ストレージシステムの一部の例を示す図である。図10のストレージシステムでは,ストレージサーバ100とホストコンピュータ200とがホストインタフェース160で接続されている。ストレージサーバ100は,ホストアダプタ150,制御部151を備える。ここでは,ホストアダプタ150は図4のチャネルアダプタ101に該当し,制御部151は図4のキャッシュ制御部102に該当する。ホストアダプタ150では,FPGA(Field Programmable Gate Array )152によってDMAエンジンなどの回路が実現されている。
図10では,グローバルサーバ(メインフレーム)とストレージサーバとの接続を想定しており,ホストコンピュータ200−ホストアダプタ150間を接続するホストインタフェース160は,最大伝送距離10キロメートルと,長距離区間の転送では有効であるが,最大転送速度は17MB/sと,やや低速なインタフェースである。これに対してホストアダプタ150−制御部151間の内部バス161は,他の高速ホストインタフェースに追従するため,その最大転送速度は533MB/sとなっている。
ホストインタフェースの動作周波数は20MHzであり,内部バスの動作周波数は66MHzである。また,専用LSIの内部動作周波数もホストインタフェース160と内部バス161に合わせ,ホストインタフェース制御回路153は20MHz,内部バス制御回路154は66MHz,FPGA152は80MHzとなっている。
図10のストレージシステムにおいて,ホストコンピュータ200から最大転送速度(17MB/s)でストレージサーバ100にアクセスした場合,ホストコンピュータ200−ホストアダプタ150間の負荷検証は十分に測定できる。しかし,ホストアダプタ150−制御部151間には負荷を十分にかけることができず,FPGA152の実機検証が不足してしまう。内部バス161を動作率100%でトグルすることが難しいため,最大消費電力の測定,装置内部各モジュールの接続性,データ負荷をかけた場合のデータ保全性などを十分に検証することができず,品質の低下につながることとなる。
本発明は,上記の問題点の解決を図り,高速IOの負荷試験やシステムのデバッグを容易にする手段を提供することにより,LSIの品質向上を実現することを目的とする。
本発明は,上記の課題を解決するため,ライト動作を行うセンドDMA回路に任意のダミーデータパターンを生成する手段を持たせ,高負荷での検証に適したデータパターンを回路内で意図的に生成することを特徴とする。これにより,高速IOの負荷試験を容易に行うことができるようになり,LSIの品質向上を実現することが可能となる。
また,本発明は,転送データにおいて,データとデータ保証ビットの間に挿入するパディングデータは通常0であるが,このパディングデータに任意のデータパターンを挿入することを特徴とする。これにより,転送データに手を加えずにデータパターンを変化させることができるため,様々な検証データパターンの生成が容易となり,システムデバッグが容易となる。
具体的には,本発明は,データ転送の指示情報であるディスクリプタに従って,データ転送を行うDMA回路であって,ディスクリプタを取得する手段と,DMA回路の検証のためのデータパターンを生成する手段と,データ転送を行う手段とを備え,データパターンを生成する手段は,取得されたディスクリプタでダミーモードが設定されている場合に,その指示に従ってデータパターンを生成し,データ転送を行う手段は,取得されたディスクリプタでダミーモードが設定されている場合に,生成されたデータパターンをダミーの転送データとすることを特徴とする。
また,本発明は,データ転送の指示情報であるディスクリプタに従って,データ転送を行うDMA回路であって,ディスクリプタを取得する手段と,DMA回路の検証のためのデータパターンを生成する手段と,データ転送を行う手段とを備え,データパターンを生成する手段は,取得されたディスクリプタにおいて,ダミーモードが設定されている場合に,ディスクリプタで指定されたパターンをダミーパターンとし,ダミーモードが設定されていない場合に,ディスクリプタで指定されたパターンをパディングパターンとし,データ転送を行う手段は,ダミーパターンに対しては当該ダミーパターンをダミーの転送データとし,パディングパターンに対しては当該パディングパターンをユーザデータに付加して転送データとすることを特徴とする。
また,本発明は,データ転送の指示情報であるディスクリプタに従って,データ転送を行うDMA回路であって,ディスクリプタを取得する手段と,DMA回路の検証のためのデータパターンを生成する手段と,データ転送を行う手段とを備え,ディスクリプタは,少なくともダミーモードおよびトグルモードを含むモード情報を指定する領域と,データパターン生成用の第1のパターンおよび第2のパターンを指定する領域とを有し,データパターンを生成する手段は,取得されたディスクリプタにおいてダミーモードが設定されており,かつトグルモードが設定されている場合に,第1のパターンと第2のパターンとを交互に繰り返すデータパターンを生成し,ダミーモードが設定されており,かつトグルモードが設定されていない場合に,第1のパターンだけを含むデータパターンを生成し,データ転送を行う手段は,取得されたディスクリプタにおいてダミーモードが設定されている場合に,生成されたデータパターンをダミーの転送データとすることを特徴とする。
本発明によって,LSIのインタフェースが低速IOと高速IOで接続されている場合において,低速IOの最大性能に縛られることなく高速IOに負荷をかけることが可能となり,十分な性能検証を行えるようになる。また,データパターンを任意に設定できることから,問題点の調査に対しても有効となる。以上により,十分な負荷試験を行うことが可能となり,ユニットの品質向上を実現することが可能となる。
以下,本発明の実施の形態について,図を用いて説明する。
図1は,本発明の実施の形態によるプロトコル/DMA制御回路の構成例を示す図である。プロトコル/DMA制御回路10は,プロトコル制御回路11,センドエンジン(Send Engine )12,ホストインタフェース13,PCIインタフェース14,CMインタフェース15を備える。センドエンジン12は,ディスクリプタ制御回路20,ホストデータ制御回路21,BCC生成回路22,FCC生成回路23,ライト制御回路24,ダミー/パディング生成回路25を備える。
図1において,20MHzと記載がある回路はホストインタフェース13の動作周波数と同じ20MHzで動作している。CMインタフェース15は66MHz,その他内部回路は80MHzで動作している。
プロトコル/DMA制御回路10において,プロトコル制御回路11は,ホストインタフェース13を介してホストデータを受け取り,プロトコル制御を行う。センドエンジン12は,データライト用のDMAエンジンであり,PCIインタフェース14を介してMPUからディスクリプタを受け取り,そのディスクリプタの情報に従って,CMインタフェース15を介してデータをCMに転送する。
センドエンジン12において,ディスクリプタ制御回路20は,PCIインタフェース14を介して,MPUからディスクリプタを取得し,各回路に対してディスクリプタの情報を通知する。ホストデータ制御回路21は,ディスクリプタの情報に従って,ホストデータの入力を行う。BCC生成回路22は,ディスクリプタの情報に従って,BCC(Block Check Code)を生成する。FCC生成回路23は,ディスクリプタの情報に従って,FCC(Field Check Code)を生成する。ライト制御回路24は,ディスクリプタの情報に従って,CMへのデータの転送制御を行う。ダミー/パディング生成回路25は,ディスクリプタの情報に従って,ダミー(Dummy )パターンやパディング(Padding )パターンなどのデータパターンを生成する回路である。
図2は,本実施の形態によるディスクリプタの例を示す図である。図2に示すディスクリプタ30は,データライト用のディスクリプタ30の例である。ディスクリプタ30は,メモリ31に格納され,Mode,DL,CMA,ptn0,ptn1,BBID,FBIDの情報を持つ。DL,CMA,BBID,FBIDについては,図7に示すディスクリプタ140のものと同様である。また,Modeにおいて,bit0〜bit2については,図7に示すディスクリプタ140のものと同様である。すなわち,図2に示すディスクリプタ30は,図7に示すディスクリプタ140に新たにMode(bit3,bit4),ptn0,ptn1が加えられたものとなる。
Modeにおいて,bit3にはダミーモードのセット/リセットが示され,bit4にはトグルモードのセット/リセットが示される。ptn0には,ダミー/パディングのデータパターンが指定される。ptn1には,トグルモードで使用するパターンが指定される。
ダミー/パディング生成回路25は,ダミーモードがセットされると,ptn0に設定されたデータパターンをダミーパターンとしてライト制御回路24に送付する。また,ダミーモードがセットされていないときには,ptn0に設定されたデータパターンをパディングパターンとしてライト制御回路24に送付し,転送するユーザデータに付加させる。ダミーモードがセットされておらず,ptn0がオール・ゼロのパターンである場合には,従来の通常のパディングと同じパディングが行われることになる。試験の場合には,試験の目的に応じた任意のパターンをptn0として設定することにより,パディングデータを変化させることができる。
トグルモードがセットされると,ダミー/パディング生成回路25は,ptn0とptn1のデータパターンを交互に変化させたデータパターンをライト制御回路24に送付する。これにより,ptn0とptn1とを交互に繰り返すデータパターンが,データ転送長DLで指定された長さ分だけダミーデータとして転送されることになる。ptn0とptn1にそれぞれ異なる値を設定することで,高速IO,回路内部のグラウンドバウンスやクロストーク耐性の評価を容易に行うことができる。なお,グラウンドバウンス(ground bounce )とは,ICの内部状態や出力が同時に変化したとき,ピン・ボンディング・ワイヤなどの寄生容量,グラウンド・インピーダンスなどにより,グラウンド・レベルが変化することをいう。また,クロストーク(cross talk)とは,ある回路・回線に浮遊容量,寄生容量,アースの共通インピーダンスなどの影響により,不必要な信号が漏れることをいう。
また,パディングパターンを一定とせずにディスクリプタ30ごとに変化させることによって,例えば検証中のデータ化け発生時に,どのディスクリプタ30によるデータ転送でデータ化けが発生したかの切り分けを行うことができる。
ライト制御回路24は,ダミー/パディング生成回路25からダミーパターンを受け取ると,そのダミーパターンを転送データとし,CMへのデータ転送を行う。また,ダミー/パディング生成回路25からパディングパターンを受け取ると,そのパディングパターンをホストデータ制御回路21から受け取った転送データにパディングデータとして挿入し,CMへのデータ転送を行う。
図3は,本実施の形態のセンドエンジンによるデータ転送処理フローチャートである。以下において,TOPポインタとはMPUが構築したキューが格納されている先頭アドレスを示し,BTMポインタとはデータ転送処理を完了したキューのアドレスを示す。また,例えば,Modeのbit3をMode[3]と表現する。なお,図3の例では,転送データへのパディングパターンの挿入は行っていない。
リセットが解除されると(ステップS10),MPUによってDMAスタートビットがセットされるまで待機する(ステップS11)。
MPUによってDMAスタートビットがセットされると,MPUによってTOPポインタが更新されるまで待機する(ステップS12)。
MPUによってTOPポインタが更新されると,残りキュー数の判定を行う。TOPポインタとBTMポインタとの差分が,これから処理しなければならない残りキュー数となる。TOPポインタ=BTMポインタであれば(ステップS13),ステップS12に戻り,MPUによってTOPポインタが更新されるまで待機する。
TOPポインタ=BTMポインタでなければ(ステップS13),BTMポインタが指すメモリ31の位置からディスクリプタ30を読み出す(ステップS14)。読み出されたディスクリプタ30を解析し,Mode[3]=1(ダミーモードセット)であれば(ステップS15),ダミー/パディング生成回路25によってデータパターンを生成する(ステップS16)。このとき,Mode[4]=1(トグルモードセット)であれば,ptn0,ptn1を繰り返したデータパターンを生成し,Mode[4]=0であれば,ptn0そのものをデータパターンとする。Mode[3]=1でなければ(ステップS15),データバッファからユーザデータを読み出し,パディングが必要な場合には,ptn0のデータパターンをパディングデータとする(ステップS17)。
ディスクリプタ30を解析し,Mode[2]=1(FCC生成)であれば(ステップS18),FCC生成回路23によってFCCを生成し,生成されたFCCをデータに追加する(ステップS19)。
ディスクリプタ30を解析し,Mode[1]=1(BCC生成)であれば(ステップS20),BCC生成回路22によってBCCを生成し,生成されたBCCをデータに追加する(ステップS21)。
データ転送が正常に終了していれば(ステップS22),BTMポインタをインクリメントし(ステップS23),ステップS13に戻り,残りキュー数の判定を行う。データ転送が正常に終了していなければ(ステップS22),MPUにエラー通知を発行し(ステップS24),エラー刈り取り処理およびDMA再起動を行う(ステップS25)。
本発明の実施の形態によるプロトコル/DMA制御回路の構成例を示す図である。 本実施の形態によるディスクリプタの例を示す図である。 本実施の形態のセンドエンジンによるデータ転送処理フローチャートである。 ストレージシステムの例を示す図である。 チャネルアダプタの例を示す図である。 プロトコル/DMA制御回路の構成例を示す図である。 ディスクリプタの例を示す図である。 ディスクリプタの概念を示す図である。 BCCとFCCの概念を示す図である。 ストレージシステムの一部の例を示す図である。
符号の説明
10 プロトコル/DMA制御回路
11 プロトコル制御回路
12 センドエンジン
13 ホストインタフェース
14 PCIインタフェース
15 CMインタフェース
20 ディスクリプタ制御回路
21 ホストデータ制御回路
22 BCC生成回路
23 FCC生成回路
24 ライト制御回路
25 ダミー/パディング生成回路

Claims (5)

  1. データ転送の指示情報であるディスクリプタに従って,データ転送を行うDMA回路であって,
    前記ディスクリプタを取得する手段と,
    前記DMA回路の検証のためのデータパターンを生成する手段と,
    データ転送を行う手段とを備え,
    前記データパターンを生成する手段は,前記取得されたディスクリプタでダミーモードが設定されている場合に,その指示に従って前記データパターンを生成し,
    前記データ転送を行う手段は,前記取得されたディスクリプタで前記ダミーモードが設定されている場合に,前記生成されたデータパターンをダミーの転送データとする
    ことを特徴とするDMA回路。
  2. データ転送の指示情報であるディスクリプタに従って,データ転送を行うDMA回路であって,
    前記ディスクリプタを取得する手段と,
    前記DMA回路の検証のためのデータパターンを生成する手段と,
    データ転送を行う手段とを備え,
    前記データパターンを生成する手段は,前記取得されたディスクリプタにおいて,ダミーモードが設定されている場合に,前記ディスクリプタで指定されたパターンをダミーパターンとし,ダミーモードが設定されていない場合に,前記ディスクリプタで指定されたパターンをパディングパターンとし,
    前記データ転送を行う手段は,前記ダミーパターンに対しては当該ダミーパターンをダミーの転送データとし,前記パディングパターンに対しては当該パディングパターンをユーザデータに付加して転送データとする
    ことを特徴とするDMA回路。
  3. データ転送の指示情報であるディスクリプタに従って,データ転送を行うDMA回路であって,
    前記ディスクリプタを取得する手段と,
    前記DMA回路の検証のためのデータパターンを生成する手段と,
    データ転送を行う手段とを備え,
    前記ディスクリプタは,少なくともダミーモードおよびトグルモードを含むモード情報を指定する領域と,データパターン生成用の第1のパターンおよび第2のパターンを指定する領域とを有し,
    前記データパターンを生成する手段は,前記取得されたディスクリプタにおいてダミーモードが設定されており,かつトグルモードが設定されている場合に,前記第1のパターンと第2のパターンとを交互に繰り返すデータパターンを生成し,ダミーモードが設定されており,かつトグルモードが設定されていない場合に,前記第1のパターンだけを含むデータパターンを生成し,
    前記データ転送を行う手段は,前記取得されたディスクリプタにおいてダミーモードが設定されている場合に,前記生成されたデータパターンをダミーの転送データとする
    ことを特徴とするDMA回路。
  4. データ転送の指示情報であるディスクリプタに従ってデータ転送を行うDMA回路によるデータ転送方法であって,
    前記DMA回路が,
    前記ディスクリプタを取得する過程と,
    前記取得されたディスクリプタでダミーモードが設定されている場合に,その指示に従って前記DMA回路の検証のためのデータパターンを生成する過程と,
    前記取得されたディスクリプタでダミーモードが設定されている場合に,前記生成されたデータパターンをダミーの転送データとし,データ転送を行う過程とを有する
    ことを特徴とするデータ転送方法。
  5. データ転送の指示情報であるディスクリプタに従ってデータ転送を行うDMA回路によるデータ転送方法であって,
    前記DMA回路が,
    前記ディスクリプタを取得する過程と,
    前記取得されたディスクリプタにおいて,ダミーモードが設定されている場合に,前記ディスクリプタで指定されたパターンをダミーパターンとし,ダミーモードが設定されていない場合に,前記ディスクリプタで指定されたパターンをパディングパターンとして,前記DMA回路の検証のためのデータパターンを生成する過程と,
    前記ダミーパターンに対しては当該ダミーパターンをダミーの転送データとし,前記パディングパターンに対しては当該パディングパターンをユーザデータに付加して転送データとして,データ転送を行う過程とを有する
    ことを特徴とするデータ転送方法。
JP2006154419A 2006-06-02 2006-06-02 Dma回路およびデータ転送方法 Expired - Fee Related JP4343923B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006154419A JP4343923B2 (ja) 2006-06-02 2006-06-02 Dma回路およびデータ転送方法
US11/589,997 US7640377B2 (en) 2006-06-02 2006-10-31 DMA circuit with pattern generation unit for DMA verification

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006154419A JP4343923B2 (ja) 2006-06-02 2006-06-02 Dma回路およびデータ転送方法

Publications (2)

Publication Number Publication Date
JP2007323467A JP2007323467A (ja) 2007-12-13
JP4343923B2 true JP4343923B2 (ja) 2009-10-14

Family

ID=38856206

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006154419A Expired - Fee Related JP4343923B2 (ja) 2006-06-02 2006-06-02 Dma回路およびデータ転送方法

Country Status (2)

Country Link
US (1) US7640377B2 (ja)
JP (1) JP4343923B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805622B2 (en) * 2007-01-26 2010-09-28 Emcore Corporation Pluggable transceiver module
JP4362134B2 (ja) * 2007-02-09 2009-11-11 富士通株式会社 データアクセス方法、チャネルアダプタ、データアクセス制御装置およびデータアクセスプログラム
JP5387155B2 (ja) * 2009-06-15 2014-01-15 富士通セミコンダクター株式会社 Dma転送制御装置およびdma転送制御方法
EP2876559B1 (en) * 2010-09-21 2016-04-27 Mitsubishi Electric Corporation DMA controller and data readout device
US10248587B2 (en) * 2013-11-08 2019-04-02 Sandisk Technologies Llc Reduced host data command processing
WO2015067983A1 (en) * 2013-11-08 2015-05-14 Sandisk Il Ltd. Reduced host data command processing
CN105765484B (zh) * 2013-12-23 2019-04-09 英特尔公司 输入输出数据对齐
KR102180972B1 (ko) * 2014-04-23 2020-11-20 에스케이하이닉스 주식회사 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
US9535850B1 (en) 2015-01-28 2017-01-03 Google Inc. System and method for efficient DMA transfers
JP6594652B2 (ja) * 2015-05-01 2019-10-23 ローム株式会社 Dsdデコーダ、オーディオシステム
US10877911B1 (en) * 2016-03-30 2020-12-29 Amazon Technologies, Inc. Pattern generation using a direct memory access engine

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2697663B1 (fr) * 1992-10-30 1995-01-13 Hewett Packard Cy Circuit de test de mémoire.
JPH07319728A (ja) 1994-05-24 1995-12-08 Fujitsu Ltd Dma機能内蔵回路装置及び該回路装置の試験方法
US6748486B2 (en) * 2001-01-04 2004-06-08 International Business Machines Corporation Method, system, and data structures for superimposing data records in a first data format to memory in a second data format
JP2003143217A (ja) 2001-10-31 2003-05-16 Nec Commun Syst Ltd パケット通信システム及びそれに用いるパケット通信方法
US8190796B2 (en) * 2004-11-02 2012-05-29 Standard Microsystems Corporation Hardware supported peripheral component memory alignment method
US7383363B2 (en) * 2004-11-20 2008-06-03 Marvell International Technology Ltd. Method and apparatus for interval DMA transfer access
US7710968B2 (en) * 2006-05-11 2010-05-04 Intel Corporation Techniques to generate network protocol units

Also Published As

Publication number Publication date
US20080005386A1 (en) 2008-01-03
JP2007323467A (ja) 2007-12-13
US7640377B2 (en) 2009-12-29

Similar Documents

Publication Publication Date Title
JP4343923B2 (ja) Dma回路およびデータ転送方法
CN104516843B (zh) 基于fpga的非安装型存储器测试装置
US7917810B2 (en) Method for detecting problematic disk drives and disk channels in a RAID memory system based on command processing latency
US7191285B2 (en) Configuring memory for a RAID storage system
CN100454227C (zh) 数据存取方法及其存储子系统
US7590884B2 (en) Storage system, storage control device, and storage control method detecting read error response and performing retry read access to determine whether response includes an error or is valid
US7475279B2 (en) Data storage system, data storage control device, and write error diagnosis method for disks thereof
US20100049905A1 (en) Flash memory-mounted storage apparatus
US20150095712A1 (en) Non-mounted storage test device based on fpga
JP2007513435A (ja) データ組織化を管理するための方法、システム、及びプログラム
US20120221809A1 (en) Storage apparatus and data processing method of the same
US9003119B2 (en) Control apparatus and method, and storage apparatus
US8489946B2 (en) Managing logically bad blocks in storage devices
US20080222500A1 (en) Data relay apparatus, data relay method and data relay integrated circuit
US20100125685A1 (en) Storage apparatus and output signal generation circuit
US20120304016A1 (en) Storage control device, storage device, and diagnostic method
US7293139B2 (en) Disk array system generating a data guarantee code on data transferring
US20100211703A1 (en) Storage Apparatus and Data Integrity Assurance Method
TW201118558A (en) Virtual hard disk drive
JP4475621B2 (ja) メモリ制御回路の論理検証装置及び方法
US10348605B2 (en) Embedding analyzer functionality in storage devices
US20040193785A1 (en) System for improving the performance of read/write testing in a hard drive
JP6206138B2 (ja) ストレージ制御装置およびストレージ制御装置の制御プログラム
US20040193812A1 (en) Method for improving the performance of read/write testing in a hard drive
JP4972932B2 (ja) メモリアクセス装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080801

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080801

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081225

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

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

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

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4343923

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130717

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees