JP2009512004A5 - - Google Patents

Download PDF

Info

Publication number
JP2009512004A5
JP2009512004A5 JP2008534001A JP2008534001A JP2009512004A5 JP 2009512004 A5 JP2009512004 A5 JP 2009512004A5 JP 2008534001 A JP2008534001 A JP 2008534001A JP 2008534001 A JP2008534001 A JP 2008534001A JP 2009512004 A5 JP2009512004 A5 JP 2009512004A5
Authority
JP
Japan
Prior art keywords
block
data
dma controller
written
temporary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008534001A
Other languages
English (en)
Other versions
JP4629779B2 (ja
JP2009512004A (ja
Filing date
Publication date
Priority claimed from US11/246,824 external-priority patent/US7725620B2/en
Application filed filed Critical
Publication of JP2009512004A publication Critical patent/JP2009512004A/ja
Publication of JP2009512004A5 publication Critical patent/JP2009512004A5/ja
Application granted granted Critical
Publication of JP4629779B2 publication Critical patent/JP4629779B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (20)

  1. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに結合されたダイレクト・メモリ・アクセス(DMA)コントローラと、
    前記DMAコントローラ及び前記少なくとも1つのプロセッサに結合されたメモリと、 前記メモリ内に存在して前記少なくとも1つのプロセッサにより実行される仮想メモリ・マネージャとを含む装置であって、前記仮想メモリ・マネージャは、前記メモリ内に一時的ブロックを作り、前記DMAコントローラによる将来の書込みが前記一時的ブロックに書き込まれるように前記DMAコントローラ内のアドレス変換テーブルを変更し、データを前記メモリ内の第1ブロックから第2ブロックに移動し、前記第1ブロックから前記第2ブロックへの前記データ移動の後に、前記DMAコントローラによる前記一時的ブロックへの書込みが前記仮想メモリ・マネージャによる前記第1ブロックから前記第2ブロックへの前記データ移動の間に行われたか否かを判定し、もし前記判定が肯定ならば、前記第1ブロックから前記第2ブロックへの前記データ移動中に前記DMAコントローラによって一時的場所に書き込まれたデータを前記一時的場所から前記第2ブロックに書き込む、
    前記装置。
  2. 前記装置は複数のビットを含むハードウェア・レジスタを更に含んでおり、各ビットは前記メモリの画定されたブロックに対応し、各ビットの値は、そのビットに対応する前記画定されたブロックに前記DMAコントローラがデータを書き込んだならば1であり、そのビットに対応する前記画定されたブロックに前記DMAコントローラがデータを書き込まなかったならば0である、請求項1の装置。
  3. 前記ハードウェア・レジスタは改変記録レジスタを含む、請求項2の装置。
  4. 前記ハードウェア・レジスタは前記DMAコントローラ内に存在する、請求項2の装置。
  5. 前記ハードウェア・レジスタの1である各ビットは、メモリの対応するブロックの中のデータが前記第2ブロックに書き込まれたときに0に変更される、請求項2の装置。
  6. メモリにおいて第1ブロックから第2ブロックにデータを移動する、コンピュータにより実行される方法であって、
    (A)前記メモリ内に一時的ブロックを作るステップと、
    (B)DMAコントローラ内のアドレス変換テーブルを、前記DMAコントローラによる将来の書込みが前記一時的ブロックに書き込まれるように、変更するステップと、
    (C)データを前記メモリ内の第1ブロックから第2ブロックに移動するステップと、
    (D)ステップ(C)における前記データ移動の後に、前記DMAコントローラによる前記一時的ブロックへの書込みがステップ(C)における前記データ移動の間に行われたか否かを判定するステップと、
    (E)前記DMAコントローラによる前記一時的ブロックへの書込みがステップ(C)における前記データ移動の間に行われたならば、ステップ(C)における前記データ移動の間に前記DMAコントローラによって書き込まれた前記データを一時的場所から前記第2ブロックに書き込むステップと、
    を含む、前記方法。
  7. (F)ステップ(E)における前記データの前記書き込みの間に前記DMAコントローラにより前記一時的ブロックへの書込みが行われたならば、ステップ(E)における前記データの前記書き込みの間に前記DMAコントローラにより書き込まれた前記データを前記一時的場所から前記第2ブロックに書きこむステップを更に含む、請求項6の方法。
  8. (G)ステップ(F)における前記データの前記書き込みの間に前記DMAコントローラが前記一時的場所にデータを書き込まなくなるまでステップ(F)を反復するステップを更に含む、請求項7の方法。
  9. ステップ(D)は、前記DMAコントローラによる前記一時的ブロックの変更を反映するハードウェア・レジスタの状態を調べることによって実行される、請求項8の方法。
  10. 前記ハードウェア・レジスタは前記DMAコントローラ内に存在する、請求項9の方法。
  11. 前記ハードウェア・レジスタは複数のビットを含み、各ビットは前記メモリの画定されたブロックに対応し、各ビットの値は、そのビットに対応する前記画定されたブロックに前記DMAコントローラがデータを書き込んだならば1であり、そのビットに対応する前記画定されたブロックに前記DMAコントローラがデータを書き込まなかったならば0である、請求項9の方法。
  12. 前記ハードウェア・レジスタの1である各ビットは、メモリの対応するブロックの中のデータが前記第2ブロックに書き込まれたときに0に変更される、請求項11の方法。
  13. 仮想メモリ・マネージャを提供するようにデータ処理装置の動作を制御するためのコンピュータ可読プログラム・コードにおいて実現される命令のセットを含むコンピュータ・プログラムであって、前記仮想メモリ・マネージャは、
    メモリ内に一時的ブロックを作り、
    DMAコントローラによる将来の書込みが前記一時的ブロックに書き込まれるように前記DMAコントローラ内のアドレス変換テーブルを変更し、
    データを前記メモリ内の第1ブロックから第2ブロックに移動し、
    前記第1ブロックから前記第2ブロックへの前記データ移動の後に、前記DMAコントローラによる前記一時的ブロックへの書込みが前記仮想メモリ・マネージャによる前記第1ブロックから前記第2ブロックへの前記データ移動の間に行われたか否かを判定し、
    もし前記判定が肯定ならば、前記第1ブロックから前記第2ブロックへの前記データ移動中に前記DMAコントローラによって一時的場所に書き込まれたデータを前記一時的場所から前記第2ブロックに書き込む、
    前記コンピュータ・プログラム。
  14. (A)請求項13のコンピュータ・プログラムと、
    (B)前記コンピュータ・プログラムを担持するコンピュータ可読信号担持媒体と、
    を含むコンピュータ・プログラム製品。
  15. 前記コンピュータ可読信号担持媒体は記録可能な媒体を含む、請求項14のコンピュータ・プログラム製品。
  16. 前記コンピュータ可読信号担持媒体は伝送媒体を含む、請求項14のコンピュータ・プログラム製品。
  17. 前記仮想メモリ・マネージャは、前記第1ブロックから前記第2ブロックへの前記データ移動の後に、ハードウェア・レジスタを読むことによって、前記仮想メモリ・マネージャによる前記第1ブロックから前記第2ブロックへの前記データ移動の間に前記DMAコントローラによる前記一時的ブロックへの書込みが行われたか否かを判定し、前記ハードウェア・レジスタは複数のビットを含み、各ビットは前記メモリ内のデータの画定されたブロックに対応し、各ビットの値は、そのビットに対応する前記画定されたブロックに前記DMAコントローラがデータを書き込んだならば1であり、そのビットに対応する前記画定されたブロックに前記DMAコントローラがデータを書き込まなかったならば0である、請求項13のコンピュータ・プログラム製品。
  18. 前記ハードウェア・レジスタは改変記録レジスタを含む、請求項17のコンピュータ・プログラム製品。
  19. 前記ハードウェア・レジスタは前記DMAコントローラ内に存在する、請求項17のコンピュータ・プログラム製品。
  20. 前記ハードウェア・レジスタの1である各ビットは、メモリの対応するブロックの中のデータが前記第2ブロックに書き込まれたときに0に変更される、請求項17のコンピュータ・プログラム製品。
JP2008534001A 2005-10-07 2006-10-03 仮想メモリ環境においてdmaリクエストを処理するための装置、方法、及び、コンピュータ・プログラム Active JP4629779B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/246,824 US7725620B2 (en) 2005-10-07 2005-10-07 Handling DMA requests in a virtual memory environment
PCT/EP2006/066999 WO2007042428A2 (en) 2005-10-07 2006-10-03 Apparatus and method for handling dma requests in a virtual memory environment

Publications (3)

Publication Number Publication Date
JP2009512004A JP2009512004A (ja) 2009-03-19
JP2009512004A5 true JP2009512004A5 (ja) 2010-08-12
JP4629779B2 JP4629779B2 (ja) 2011-02-09

Family

ID=37912128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008534001A Active JP4629779B2 (ja) 2005-10-07 2006-10-03 仮想メモリ環境においてdmaリクエストを処理するための装置、方法、及び、コンピュータ・プログラム

Country Status (7)

Country Link
US (2) US7725620B2 (ja)
EP (1) EP1934762B1 (ja)
JP (1) JP4629779B2 (ja)
CN (1) CN100589089C (ja)
AT (1) ATE450831T1 (ja)
DE (1) DE602006010893D1 (ja)
WO (1) WO2007042428A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4770602B2 (ja) * 2006-06-23 2011-09-14 株式会社デンソー 電子機器
US20080229053A1 (en) * 2007-03-13 2008-09-18 Edoardo Campini Expanding memory support for a processor using virtualization
US8751738B2 (en) 2010-02-08 2014-06-10 Microsoft Corporation Background migration of virtual storage
US9092149B2 (en) * 2010-11-03 2015-07-28 Microsoft Technology Licensing, Llc Virtualization and offload reads and writes
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US8903966B2 (en) * 2011-06-01 2014-12-02 International Business Machines Corporation Re-programming programmable hardware devices without system downtime
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
WO2014068607A1 (en) * 2012-10-30 2014-05-08 Hitachi, Ltd. Computer system and method for updating configuration information
US9071585B2 (en) 2012-12-12 2015-06-30 Microsoft Technology Licensing, Llc Copy offload for disparate offload providers
US9251201B2 (en) 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size
US9582223B2 (en) 2014-04-14 2017-02-28 International Business Machines Corporation Efficient reclamation of pre-allocated direct memory access (DMA) memory

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4590467A (en) * 1983-10-13 1986-05-20 Rockwell International Corporation Local area network interface controller
US4658351A (en) 1984-10-09 1987-04-14 Wang Laboratories, Inc. Task control means for a multi-tasking data processing system
EP0348628A3 (en) 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
US5463739A (en) 1992-12-22 1995-10-31 International Business Machines Corporation Apparatus for vetoing reallocation requests during a data transfer based on data bus latency and the number of received reallocation requests below a threshold
US5640527A (en) 1993-07-14 1997-06-17 Dell Usa, L.P. Apparatus and method for address pipelining of dynamic random access memory utilizing transparent page address latches to reduce wait states
US5778427A (en) 1995-07-07 1998-07-07 Sun Microsystems, Inc. Method and apparatus for selecting a way of a multi-way associative cache by storing waylets in a translation structure
US6931471B2 (en) * 2002-04-04 2005-08-16 International Business Machines Corporation Method, apparatus, and computer program product for migrating data subject to access by input/output devices
US6804729B2 (en) 2002-09-30 2004-10-12 International Business Machines Corporation Migrating a memory page by modifying a page migration state of a state machine associated with a DMA mapper based on a state notification from an operating system kernel
US7574709B2 (en) * 2004-04-30 2009-08-11 Microsoft Corporation VEX-virtual extension framework
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US20060069818A1 (en) * 2004-09-27 2006-03-30 Cliff Mather Synchronizing direct memory access and evacuation operations in a computer system
US20060181949A1 (en) * 2004-12-31 2006-08-17 Kini M V Operating system-independent memory power management
US20070074067A1 (en) 2005-09-29 2007-03-29 Rothman Michael A Maintaining memory reliability

Similar Documents

Publication Publication Date Title
JP2009512004A5 (ja)
JP4629779B2 (ja) 仮想メモリ環境においてdmaリクエストを処理するための装置、方法、及び、コンピュータ・プログラム
MX2012005183A (es) Linea de espera de comandos para componente periferico.
JP2006031579A5 (ja)
WO2002017305A3 (en) Disk controller configured to perform out of order execution of write operations
JP2014026635A5 (ja)
JP2008016003A (ja) メモリー格納装置及びその読み書き方法
JP2011515001A (ja) 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
CN101257626B (zh) 动态随机存储器的存取方法、装置和媒体播放器
JP2013239099A5 (ja)
JP2011508296A5 (ja)
JP2013235347A (ja) Ssd(ソリッドステートドライブ)装置
JP2016186828A5 (ja) 記憶装置および記憶制御方法
TWI530785B (zh) 電腦系統及非揮發性記憶體的控制方法
WO2014206220A1 (zh) 数据写入方法及内存系统
EP3000095A1 (en) Techniques for organizing three-dimensional array data
JP2006236105A5 (ja)
JP2007026433A (ja) オペレーティングシステム補足ディスクのキャッシュシステムおよび方法
JP2010146084A (ja) キャッシュメモリ制御部を備えるデータ処理装置
JP2009033439A5 (ja)
KR20090098275A (ko) 플래시 메모리 시스템
JP2010237837A (ja) ファイルシステム及びそのデータ再配置方法,プログラム
JPH05233155A (ja) ディスクアレイ装置
JP2007226330A5 (ja)
JP2007011659A (ja) インターフェース装置、ディスクドライブ及びインターフェース制御方法