JP6136033B2 - 方法、コンピューティングデバイス、およびプログラム - Google Patents
方法、コンピューティングデバイス、およびプログラム Download PDFInfo
- Publication number
- JP6136033B2 JP6136033B2 JP2015527456A JP2015527456A JP6136033B2 JP 6136033 B2 JP6136033 B2 JP 6136033B2 JP 2015527456 A JP2015527456 A JP 2015527456A JP 2015527456 A JP2015527456 A JP 2015527456A JP 6136033 B2 JP6136033 B2 JP 6136033B2
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- gpu
- memory
- computing device
- plane
- 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
Links
- 238000000034 method Methods 0.000 title claims description 64
- 230000015654 memory Effects 0.000 claims description 174
- 238000012545 processing Methods 0.000 claims description 49
- 238000013507 mapping Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 8
- 230000001427 coherent effect Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000013519 translation Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 210000003414 extremity Anatomy 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 210000003811 finger Anatomy 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/455—Image or video data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/656—Address space sharing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Image Input (AREA)
Description
本実施形態の例を下記の各項目として示す。
[項目1]
コンピューティングデバイスの中央処理装置(CPU)と入出力(I/O)デバイスとの間におけるメモリ共有のための方法であって、
物理メモリ内で面を割り当てる段階と、
CPUページテーブル内の複数の仮想メモリアドレスに対して、前記面をマッピングする段階と、
I/Oデバイスページテーブル内の複数のグラフィクス仮想メモリアドレスに対して前記面をマッピングする段階とを備える、方法。
[項目2]
I/Oデバイスページテーブル内の複数のグラフィクス仮想メモリアドレスに対して前記面をマッピングする段階は、前記面のピニングを含む、項目1に記載の方法。
[項目3]
CPUメモリからI/Oデバイスメモリに対してデータをコピーすることなく、前記CPUと前記I/Oデバイスとの間で、前記面を介して、物理メモリを共有する段階を備える、項目1または2に記載の方法。
[項目4]
前記コンピューティングデバイスの前記CPU上で実行されるアプリケーションからの入力に応答して、前記面を割り当てる段階を備える、項目1から3のいずれか1項に記載の方法。
[項目5]
前記方法は、前記コンピューティングデバイスのドライバにより実行される、項目1から4のいずれか1項に記載の方法。
[項目6]
前記CPUのキャッシュ及び前記I/Oデバイスのキャッシュからのデータが、前記CPUと前記I/Oデバイスとの間で共有されるラストレベルキャッシュ(LLC)とコヒーレントであることを確保する段階を備える、項目1から5のいずれか1項に記載の方法。
[項目7]
前記CPUから前記I/Oデバイスに対して、オペレーションをオフロードする段階と、
前記I/Oデバイス内で前記オペレーションを実行する段階と、
前記CPUに完了信号を送信する段階とを備え、
前記完了信号は、前記I/Oデバイスがいくつかの計算を実行した結果、前記面内のデータが変更されたという指標を備える、項目1から6のいずれか1項に記載の方法。
[項目8]
デバイスドライバは、前記CPUと前記I/Oデバイスとの間でデータの前記処理を同期させる、項目1から7のいずれか1項に記載の方法。
[項目9]
前記面内で対応する複数の物理的位置を決定するべく、前記複数のグラフィクス仮想メモリアドレスのいずれかまたは前記複数の仮想メモリアドレスのいずれか、もしくは両方を変換する段階を備える、項目1から8のいずれか1項に記載の方法。
[項目10]
記憶された複数の命令を実行する中央処理装置(CPU)と、
グラフィクス処理装置(GPU)及びGPUページテーブルと、
複数の命令を記憶する記憶デバイスとを備え、
前記記憶デバイスは、プロセッサ実行可能コードを備え、前記プロセッサ実行可能コードは、前記CPUに実行された場合に、
物理メモリ内における面の割り当てと、
CPUページテーブル内の複数の仮想メモリアドレスに対する前記面のマッピングと、
前記GPUページテーブル内の複数の仮想メモリアドレスに対する前記面のマッピングとを行う、コンピューティングデバイス。
[項目11]
前記プロセッサ実行可能コードは、前記面をピニングする、項目10に記載のコンピューティングデバイス。
[項目12]
前記プロセッサ実行可能コードは、前記プロセッサ実行可能コードがCPUメモリからGPUメモリに対してデータをコピーすることなく、前記CPUと前記GPUとの間で前記物理メモリを共有する、項目10または11に記載のコンピューティングデバイス。
[項目13]
前記CPU及び前記GPUは、前記コンピューティングデバイス内の同じダイ上にある、項目10から12のいずれか1項に記載のコンピューティングデバイス。
[項目14]
前記CPU及び前記GPUは、ラストレベルキャッシュ(LLC)を共有し、前記LLCは、前記CPUまたは前記GPUの任意のキャッシュからデータを取り出す、項目10から13のいずれか1項に記載のコンピューティングデバイス。
[項目15]
前記CPU及び前記GPUは、ユニファイドメモリアーキテクチャ(UMA)を備える、項目10から14のいずれか1項に記載のコンピューティングデバイス。
[項目16]
前記プロセッサ実行可能コードは、
前記CPUページテーブル内の前記複数の仮想メモリアドレスを、複数の物理アドレスに変換し、
前記GPUページテーブル内の前記複数の仮想メモリアドレスを複数の物理アドレス変換し、
前記CPUページテーブル及び前記GPUページテーブル内の前記複数の仮想メモリアドレスを、前記面内の複数の物理的位置に対してマッピングする、項目10から15のいずれか1項に記載のコンピューティングデバイス。
[項目17]
前記プロセッサ実行可能コードの実行を開始するドライバを備える、項目10から16のいずれか1項に記載のコンピューティングデバイス。
[項目18]
無線装置及びディスプレイをさらに備え、前記無線装置及びディスプレイは、少なくとも前記中央処理装置と通信可能に結合される、項目10から17のいずれか1項に記載のコンピューティングデバイス。
[項目19]
複数の命令を有する少なくとも1つのプログラムであって、前記複数の命令がコンピューティングデバイス上で実行されたことに応答して、前記コンピューティングデバイスは、
物理メモリ内で面を生成し、
CPUページテーブル内の複数の仮想メモリアドレスに対して前記面をマッピングし、
前記面に基づいて、GPUページテーブル内の複数の仮想メモリアドレスに対して、前記面をマッピングする、少なくとも1つのプログラム。
[項目20]
前記物理メモリは、CPUメモリからGPUメモリに対してデータをコピーすることなく、前記CPUと前記GPUとの間で共有される、項目19に記載の、少なくとも1つのプログラム。
Claims (19)
- コンピューティングデバイスの中央処理装置(CPU)と入出力(I/O)デバイスとの間におけるメモリ共有のための方法であって、
物理メモリ内で面を割り当てる段階と、
CPUページテーブル内の複数の仮想メモリアドレスに対して、前記面をマッピングする段階と、
I/Oデバイスページテーブル内の複数のグラフィクス仮想メモリアドレスに対して前記面をマッピングする段階と、
前記CPUのキャッシュ及び前記I/Oデバイスのキャッシュからのデータが、前記CPUと前記I/Oデバイスとの間で共有されるラストレベルキャッシュ(LLC)とコヒーレントであることを確保する段階とを備える
方法。 - コンピューティングデバイスの中央処理装置(CPU)と入出力(I/O)デバイスとの間におけるメモリ共有のための方法であって、
物理メモリ内で面を割り当てる段階と、
CPUページテーブル内の複数の仮想メモリアドレスに対して、前記面をマッピングする段階と、
I/Oデバイスページテーブル内の複数のグラフィクス仮想メモリアドレスに対して前記面をマッピングする段階と、
前記CPUから前記I/Oデバイスに対して、オペレーションをオフロードする段階と、
前記I/Oデバイス内で前記オペレーションを実行する段階と、
前記CPUに完了信号を送信する段階とを備え、
前記完了信号は、前記I/Oデバイスがいくつかの計算を実行した結果、前記面内のデータが変更されたという指標を備える
方法。 - I/Oデバイスページテーブル内の複数のグラフィクス仮想メモリアドレスに対して前記面をマッピングする段階は、前記面のピニングを含む、請求項1または2に記載の方法。
- CPUメモリからI/Oデバイスメモリに対してデータをコピーすることなく、前記CPUと前記I/Oデバイスとの間で、前記面を介して、物理メモリを共有する段階を備える、請求項1から3のいずれか1項に記載の方法。
- 前記コンピューティングデバイスの前記CPU上で実行されるアプリケーションからの入力に応答して、前記面を割り当てる段階を備える、請求項1から4のいずれか1項に記載の方法。
- 前記方法は、前記コンピューティングデバイスのドライバにより実行される、請求項1から5のいずれか1項に記載の方法。
- デバイスドライバは、前記CPUと前記I/Oデバイスとの間でデータの処理を同期させる、請求項1から6のいずれか1項に記載の方法。
- 前記面内で対応する複数の物理的位置を決定するべく、前記複数のグラフィクス仮想メモリアドレスのいずれかまたは前記複数の仮想メモリアドレスのいずれか、もしくは両方を変換する段階を備える、請求項1から7のいずれか1項に記載の方法。
- 記憶された複数の命令を実行する中央処理装置(CPU)と、
グラフィクス処理装置(GPU)及びGPUページテーブルと、
複数の命令を記憶する記憶デバイスとを備え、
前記記憶デバイスは、プロセッサ実行可能コードを備え、前記プロセッサ実行可能コードは、前記CPUに実行された場合に、
物理メモリ内における面の割り当てと、
CPUページテーブル内の複数の仮想メモリアドレスに対する前記面のマッピングと、
前記GPUページテーブル内の複数の仮想メモリアドレスに対する前記面のマッピングとを行い、
前記CPUから前記GPUに対して、オペレーションをオフロードし、
前記GPU内で前記オペレーションを実行し、
前記CPUに完了信号を送信し、
前記完了信号は、前記GPUがいくつかの計算を実行した結果、前記面内のデータが変更されたという指標を備える
コンピューティングデバイス。 - 前記プロセッサ実行可能コードは、前記面をピニングする、請求項9に記載のコンピューティングデバイス。
- 前記プロセッサ実行可能コードは、前記プロセッサ実行可能コードがCPUメモリからGPUメモリに対してデータをコピーすることなく、前記CPUと前記GPUとの間で前記物理メモリを共有する、請求項9または10に記載のコンピューティングデバイス。
- 前記CPU及び前記GPUは、前記コンピューティングデバイス内の同じダイ上にある、請求項9から11のいずれか1項に記載のコンピューティングデバイス。
- 前記CPU及び前記GPUは、ラストレベルキャッシュ(LLC)を共有し、前記LLCは、前記CPUまたは前記GPUの任意のキャッシュからデータを取り出す、請求項9から12のいずれか1項に記載のコンピューティングデバイス。
- 前記CPU及び前記GPUは、ユニファイドメモリアーキテクチャ(UMA)を備える、請求項9から13のいずれか1項に記載のコンピューティングデバイス。
- 前記プロセッサ実行可能コードは、
前記CPUページテーブル内の前記複数の仮想メモリアドレスを、複数の物理アドレスに変換し、
前記GPUページテーブル内の前記複数の仮想メモリアドレスを複数の物理アドレス変換し、
前記CPUページテーブル及び前記GPUページテーブル内の前記複数の仮想メモリアドレスを、前記面内の複数の物理的位置に対してマッピングする、請求項9から14のいずれか1項に記載のコンピューティングデバイス。 - 前記プロセッサ実行可能コードの実行を開始するドライバを備える、請求項9から15のいずれか1項に記載のコンピューティングデバイス。
- 無線装置及びディスプレイをさらに備え、前記無線装置及びディスプレイは、少なくとも前記中央処理装置と通信可能に結合される、請求項9から16のいずれか1項に記載のコンピューティングデバイス。
- 複数の命令を有する少なくとも1つのプログラムであって、前記複数の命令がコンピューティングデバイス上で実行されたことに応答して、前記コンピューティングデバイスは、
物理メモリ内で面を生成し、
CPUページテーブル内の複数の仮想メモリアドレスに対して前記面をマッピングし、
前記面に基づいて、GPUページテーブル内の複数の仮想メモリアドレスに対して、前記面をマッピングし、
前記コンピューティングデバイスのCPUからGPUに対して、オペレーションをオフロードし、
前記GPU内で前記オペレーションを実行し、
前記CPUに完了信号を送信し、
前記完了信号は、前記GPUがいくつかの計算を実行した結果、前記面内のデータが変更されたという指標を備える
少なくとも1つのプログラム。 - 前記物理メモリは、CPUメモリからGPUメモリに対してデータをコピーすることなく、前記CPUと前記GPUとの間で共有される、請求項18に記載の、少なくとも1つのプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/588,453 | 2012-08-17 | ||
US13/588,453 US9373182B2 (en) | 2012-08-17 | 2012-08-17 | Memory sharing via a unified memory architecture |
PCT/US2013/045657 WO2014028109A2 (en) | 2012-08-17 | 2013-06-13 | Memory sharing via a unified memory architecture |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016068954A Division JP6478119B2 (ja) | 2012-08-17 | 2016-03-30 | コンピューティングデバイス、コンピューティングシステム、方法、データ処理システム、非一時的な機械可読媒体、およびプログラム |
JP2016186273A Division JP6330169B2 (ja) | 2012-08-17 | 2016-09-23 | 異種コンピューティングデバイス、異種コンピューティングシステム、方法、プログラム、および非一時的機械可読記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015524979A JP2015524979A (ja) | 2015-08-27 |
JP6136033B2 true JP6136033B2 (ja) | 2017-05-31 |
Family
ID=50099759
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015527456A Active JP6136033B2 (ja) | 2012-08-17 | 2013-06-13 | 方法、コンピューティングデバイス、およびプログラム |
JP2016068954A Active JP6478119B2 (ja) | 2012-08-17 | 2016-03-30 | コンピューティングデバイス、コンピューティングシステム、方法、データ処理システム、非一時的な機械可読媒体、およびプログラム |
JP2016186273A Active JP6330169B2 (ja) | 2012-08-17 | 2016-09-23 | 異種コンピューティングデバイス、異種コンピューティングシステム、方法、プログラム、および非一時的機械可読記録媒体 |
JP2017144418A Active JP6391077B2 (ja) | 2012-08-17 | 2017-07-26 | コンピューティングデバイス、コンピューティングシステム、方法、データ処理システム、非一時的な機械可読媒体、およびプログラム |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016068954A Active JP6478119B2 (ja) | 2012-08-17 | 2016-03-30 | コンピューティングデバイス、コンピューティングシステム、方法、データ処理システム、非一時的な機械可読媒体、およびプログラム |
JP2016186273A Active JP6330169B2 (ja) | 2012-08-17 | 2016-09-23 | 異種コンピューティングデバイス、異種コンピューティングシステム、方法、プログラム、および非一時的機械可読記録媒体 |
JP2017144418A Active JP6391077B2 (ja) | 2012-08-17 | 2017-07-26 | コンピューティングデバイス、コンピューティングシステム、方法、データ処理システム、非一時的な機械可読媒体、およびプログラム |
Country Status (6)
Country | Link |
---|---|
US (5) | US9373182B2 (ja) |
JP (4) | JP6136033B2 (ja) |
KR (3) | KR101741598B1 (ja) |
CN (5) | CN104471540B (ja) |
DE (3) | DE112013007658B4 (ja) |
WO (1) | WO2014028109A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10198361B2 (en) | 2012-08-17 | 2019-02-05 | Intel Corporation | Memory sharing via a unified memory architecture |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10445243B2 (en) | 2013-03-14 | 2019-10-15 | Nvidia Corporation | Fault buffer for resolving page faults in unified virtual memory system |
DE102013022169A1 (de) | 2013-03-14 | 2014-09-18 | Nvidia Corporation | Fehlerpuffer zur verfolgung von seitenfehlern in einem vereinheitlichten virtuellen speichersystem |
US9323684B2 (en) * | 2014-03-21 | 2016-04-26 | Intel Corporation | Dynamic cache and memory allocation for memory subsystems |
CN105302765A (zh) * | 2014-07-22 | 2016-02-03 | 电信科学技术研究院 | 一种系统级芯片及其内存访问管理方法 |
US9779471B2 (en) * | 2014-10-01 | 2017-10-03 | Qualcomm Incorporated | Transparent pixel format converter |
US10542233B2 (en) * | 2014-10-22 | 2020-01-21 | Genetec Inc. | System to dispatch video decoding to dedicated hardware resources |
DE102016106939B4 (de) | 2015-04-17 | 2024-05-02 | Suunto Oy | Eingebettetes Rechengerät |
US10572288B2 (en) * | 2015-06-26 | 2020-02-25 | Intel Corporation | Apparatus and method for efficient communication between virtual machines |
KR102651425B1 (ko) | 2016-06-30 | 2024-03-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
JP6756177B2 (ja) * | 2016-07-20 | 2020-09-16 | コニカミノルタ株式会社 | 画像形成装置 |
CN106909515B (zh) * | 2017-02-11 | 2020-09-18 | 苏州浪潮智能科技有限公司 | 面向混合主存的多核共享末级缓存管理方法及装置 |
US10380039B2 (en) * | 2017-04-07 | 2019-08-13 | Intel Corporation | Apparatus and method for memory management in a graphics processing environment |
US10725929B2 (en) | 2017-04-10 | 2020-07-28 | Intel Corporation | Graphics memory extended with nonvolatile memory |
US10872394B2 (en) * | 2017-04-27 | 2020-12-22 | Daegu Gyeongbuk Institute Of Science And Technology | Frequent pattern mining method and apparatus |
CN107391431B (zh) * | 2017-06-29 | 2020-05-05 | 北京金石智信科技有限公司 | 一种多个处理器共享访问存储器的方法、装置及系统 |
US10489881B2 (en) * | 2017-06-30 | 2019-11-26 | H3 Platform Inc. | Direct memory access for co-processor memory |
US11243790B2 (en) * | 2017-09-20 | 2022-02-08 | Huawei Technologies Co., Ltd. | Re-playable execution optimized for page sharing in a managed runtime environment |
US10474568B2 (en) * | 2017-09-20 | 2019-11-12 | Huawei Technologies Co., Ltd. | Re-playable execution optimized for page sharing in a managed runtime environment |
KR102533241B1 (ko) * | 2018-01-25 | 2023-05-16 | 삼성전자주식회사 | 적응적으로 캐시 일관성을 제어하도록 구성된 이종 컴퓨팅 시스템 |
US11461869B2 (en) * | 2018-03-14 | 2022-10-04 | Samsung Electronics Co., Ltd. | Slab based memory management for machine learning training |
CN108459912B (zh) * | 2018-04-10 | 2021-09-17 | 郑州云海信息技术有限公司 | 一种末级缓存管理方法及相关装置 |
CN110377534B (zh) * | 2018-04-13 | 2023-11-17 | 华为技术有限公司 | 数据处理方法及装置 |
JP7017650B2 (ja) * | 2018-06-12 | 2022-02-08 | 華為技術有限公司 | メモリ管理の方法、装置、およびシステム |
US11442628B2 (en) | 2018-07-31 | 2022-09-13 | SK Hynix Inc. | Apparatus and method for engaging a plurality of memory systems with each other |
US11249919B2 (en) | 2018-07-31 | 2022-02-15 | SK Hynix Inc. | Apparatus and method for managing meta data for engagement of plural memory system to store data |
CN110780810B (zh) | 2018-07-31 | 2023-06-27 | 爱思开海力士有限公司 | 用于彼此接合多个存储器系统以存储数据的设备和方法 |
CN109547531B (zh) * | 2018-10-19 | 2021-04-09 | 华为技术有限公司 | 数据处理的方法、装置和计算设备 |
KR20200109973A (ko) * | 2019-03-15 | 2020-09-23 | 에스케이하이닉스 주식회사 | 메모리 공유를 위한 메모리 시스템 및 그것을 포함하는 데이터 처리 시스템 |
US10698842B1 (en) | 2019-04-10 | 2020-06-30 | Xilinx, Inc. | Domain assist processor-peer for coherent acceleration |
JP2020177073A (ja) | 2019-04-16 | 2020-10-29 | 株式会社デンソー | 車両用装置、車両用装置の制御方法 |
US10853263B1 (en) * | 2019-07-23 | 2020-12-01 | Ati Technologies Ulc | Unified kernel virtual address space for heterogeneous computing |
US11385941B2 (en) * | 2019-07-31 | 2022-07-12 | EMC IP Holding Company, LLC | System and method for address space slicing with strong CPU core affinity |
US11321068B2 (en) * | 2019-09-05 | 2022-05-03 | International Business Machines Corporation | Utilizing memory coherency to improve bandwidth performance |
US11507527B2 (en) | 2019-09-27 | 2022-11-22 | Advanced Micro Devices, Inc. | Active bridge chiplet with integrated cache |
CN113515483A (zh) * | 2020-04-10 | 2021-10-19 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN112463714B (zh) * | 2020-11-30 | 2022-12-16 | 成都海光集成电路设计有限公司 | 远程直接内存访问方法、异构计算系统及电子设备 |
CN113190346A (zh) * | 2021-03-30 | 2021-07-30 | 联想(北京)有限公司 | 一种内存管理方法、装置及电子设备 |
CN114691385A (zh) * | 2021-12-10 | 2022-07-01 | 全球能源互联网研究院有限公司 | 一种电力异构计算系统 |
CN115454358B (zh) * | 2022-11-09 | 2023-03-24 | 摩尔线程智能科技(北京)有限责任公司 | 数据的存储控制方法及其装置、图像处理系统 |
CN116185910B (zh) * | 2023-04-25 | 2023-07-11 | 北京壁仞科技开发有限公司 | 访问设备内存、管理设备内存的方法、设备和介质 |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5421433A (en) | 1977-07-18 | 1979-02-17 | Murata Manufacturing Co | Conductive silver coating |
JPH01291343A (ja) * | 1988-05-18 | 1989-11-22 | Nippon Telegr & Teleph Corp <Ntt> | メモリ管理装置 |
GB2283596B (en) * | 1993-11-01 | 1998-07-01 | Ericsson Ge Mobile Communicat | Multiprocessor data memory sharing |
JPH08328994A (ja) * | 1995-05-30 | 1996-12-13 | Toshiba Corp | 情報処理装置 |
US6104417A (en) | 1996-09-13 | 2000-08-15 | Silicon Graphics, Inc. | Unified memory computer architecture with dynamic graphics memory allocation |
FR2806170B1 (fr) | 2000-03-07 | 2003-06-20 | Michel Paramythioti | Relais optique correcteur d'aberrations pour systeme optique , notamment telescope a miroirs |
US6891543B2 (en) * | 2002-05-08 | 2005-05-10 | Intel Corporation | Method and system for optimally sharing memory between a host processor and graphics processor |
US7421694B2 (en) | 2003-02-18 | 2008-09-02 | Microsoft Corporation | Systems and methods for enhancing performance of a coprocessor |
JP4446373B2 (ja) * | 2003-03-19 | 2010-04-07 | パナソニック株式会社 | プロセッサ、データ共有装置 |
US6981072B2 (en) * | 2003-06-05 | 2005-12-27 | International Business Machines Corporation | Memory management in multiprocessor system |
US7355601B2 (en) * | 2003-06-30 | 2008-04-08 | International Business Machines Corporation | System and method for transfer of data between processors using a locked set, head and tail pointers |
GB2417105B (en) * | 2004-08-13 | 2008-04-09 | Clearspeed Technology Plc | Processor memory system |
US7441087B2 (en) * | 2004-08-17 | 2008-10-21 | Nvidia Corporation | System, apparatus and method for issuing predictions from an inventory to access a memory |
US7305524B2 (en) * | 2004-10-08 | 2007-12-04 | International Business Machines Corporation | Snoop filter directory mechanism in coherency shared memory system |
KR100633420B1 (ko) | 2004-11-12 | 2006-10-16 | (주)캠퍼스라인 | 책걸상의 높낮이 조절장치 |
US7490215B2 (en) | 2004-12-22 | 2009-02-10 | Intel Corporation | Media memory system and method for providing concurrent memory access to a plurality of processors through separate translation table information |
US7334076B2 (en) * | 2005-03-08 | 2008-02-19 | Microsoft Corporation | Method and system for a guest physical address virtualization in a virtual machine environment |
US7487271B2 (en) | 2005-09-22 | 2009-02-03 | Motorola, Inc. | Method and apparatus using buffer pools and arrays of buffer pointers for sharing memory in a multiprocessor system |
CN101356510B (zh) * | 2005-11-15 | 2013-04-03 | 太阳微系统有限公司 | 当处理器处于低功率状态时可为后台dma装置提供数据的小型高功效高速缓冲存储器 |
US20070174429A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
JP4208895B2 (ja) * | 2006-05-30 | 2009-01-14 | 株式会社東芝 | キャッシュメモリ装置および処理方法 |
US7623134B1 (en) * | 2006-06-15 | 2009-11-24 | Nvidia Corporation | System and method for hardware-based GPU paging to system memory |
US7636800B2 (en) | 2006-06-27 | 2009-12-22 | International Business Machines Corporation | Method and system for memory address translation and pinning |
US8860741B1 (en) * | 2006-12-08 | 2014-10-14 | Nvidia Corporation | Graphics processor with memory management unit and cache coherent link |
US8274520B2 (en) * | 2007-06-08 | 2012-09-25 | Apple Inc. | Facilitating caching in an image-processing system |
US7996628B2 (en) * | 2008-02-14 | 2011-08-09 | International Business Machines Corporation | Cross adapter shared address translation tables |
US8209493B2 (en) * | 2008-03-26 | 2012-06-26 | Intel Corporation | Systems and methods for scheduling memory requests during memory throttling |
US9035959B2 (en) | 2008-03-28 | 2015-05-19 | Intel Corporation | Technique to share information among different cache coherency domains |
CA2734613C (en) * | 2008-08-19 | 2020-06-09 | Digimarc Corporation | Methods and systems for content processing |
GB2462860B (en) | 2008-08-22 | 2012-05-16 | Advanced Risc Mach Ltd | Apparatus and method for communicating between a central processing unit and a graphics processing unit |
US8531471B2 (en) * | 2008-11-13 | 2013-09-10 | Intel Corporation | Shared virtual memory |
US8589629B2 (en) * | 2009-03-27 | 2013-11-19 | Advanced Micro Devices, Inc. | Method for way allocation and way locking in a cache |
US8219758B2 (en) * | 2009-07-10 | 2012-07-10 | Apple Inc. | Block-based non-transparent cache |
US8615637B2 (en) * | 2009-09-10 | 2013-12-24 | Advanced Micro Devices, Inc. | Systems and methods for processing memory requests in a multi-processor system using a probe engine |
US8412885B2 (en) | 2009-11-12 | 2013-04-02 | Intel Corporation | Searching a shared cache by using search hints and masked ways |
US8868848B2 (en) * | 2009-12-21 | 2014-10-21 | Intel Corporation | Sharing virtual memory-based multi-version data between the heterogenous processors of a computer platform |
US8719543B2 (en) | 2009-12-29 | 2014-05-06 | Advanced Micro Devices, Inc. | Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
US20110161620A1 (en) * | 2009-12-29 | 2011-06-30 | Advanced Micro Devices, Inc. | Systems and methods implementing shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
US8669990B2 (en) * | 2009-12-31 | 2014-03-11 | Intel Corporation | Sharing resources between a CPU and GPU |
US9128849B2 (en) * | 2010-04-13 | 2015-09-08 | Apple Inc. | Coherent memory scheme for heterogeneous processors |
US8650349B2 (en) * | 2010-05-26 | 2014-02-11 | International Business Machines Corporation | Memory mapped input/output bus address range translation for virtual bridges |
US8392628B2 (en) * | 2010-07-16 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Sharing memory spaces for access by hardware and software in a virtual machine environment |
JP2012037971A (ja) | 2010-08-04 | 2012-02-23 | Tdk Corp | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 |
US9189297B2 (en) * | 2010-12-14 | 2015-11-17 | Hewlett-Packard Development Company, L.P. | Managing shared memory |
US20120159090A1 (en) * | 2010-12-16 | 2012-06-21 | Microsoft Corporation | Scalable multimedia computer system architecture with qos guarantees |
US8917279B2 (en) * | 2011-01-24 | 2014-12-23 | Nec Laboratories America, Inc. | Method and system to dynamically bind and unbind applications on a general purpose graphics processing unit |
US9471532B2 (en) * | 2011-02-11 | 2016-10-18 | Microsoft Technology Licensing, Llc | Remote core operations in a multi-core computer |
US9430391B2 (en) * | 2012-03-29 | 2016-08-30 | Advanced Micro Devices, Inc. | Managing coherent memory between an accelerated processing device and a central processing unit |
US9009419B2 (en) * | 2012-07-31 | 2015-04-14 | Advanced Micro Devices, Inc. | Shared memory space in a unified memory model |
US8938602B2 (en) | 2012-08-02 | 2015-01-20 | Qualcomm Incorporated | Multiple sets of attribute fields within a single page table entry |
US9373182B2 (en) | 2012-08-17 | 2016-06-21 | Intel Corporation | Memory sharing via a unified memory architecture |
US9378572B2 (en) * | 2012-08-17 | 2016-06-28 | Intel Corporation | Shared virtual memory |
-
2012
- 2012-08-17 US US13/588,453 patent/US9373182B2/en active Active
-
2013
- 2013-06-13 CN CN201380038015.0A patent/CN104471540B/zh active Active
- 2013-06-13 DE DE112013007658.6T patent/DE112013007658B4/de active Active
- 2013-06-13 CN CN201610605380.0A patent/CN106294214B/zh active Active
- 2013-06-13 JP JP2015527456A patent/JP6136033B2/ja active Active
- 2013-06-13 CN CN201910298113.7A patent/CN110069421B/zh active Active
- 2013-06-13 WO PCT/US2013/045657 patent/WO2014028109A2/en active Application Filing
- 2013-06-13 KR KR1020157001126A patent/KR101741598B1/ko active IP Right Grant
- 2013-06-13 CN CN201610338721.2A patent/CN106021132B/zh active Active
- 2013-06-13 KR KR1020167023688A patent/KR101964917B1/ko active IP Right Grant
- 2013-06-13 CN CN202010065102.7A patent/CN111522754B/zh active Active
- 2013-06-13 DE DE112013004078.6T patent/DE112013004078B4/de active Active
- 2013-06-13 KR KR1020167008492A patent/KR101721499B1/ko active IP Right Grant
- 2013-06-13 DE DE112013007741.8T patent/DE112013007741B4/de active Active
-
2016
- 2016-03-24 US US15/080,145 patent/US9514559B2/en active Active
- 2016-03-30 JP JP2016068954A patent/JP6478119B2/ja active Active
- 2016-06-30 US US15/199,508 patent/US10198361B2/en active Active
- 2016-09-23 JP JP2016186273A patent/JP6330169B2/ja active Active
-
2017
- 2017-07-26 JP JP2017144418A patent/JP6391077B2/ja active Active
-
2018
- 2018-12-13 US US16/219,093 patent/US10929304B2/en active Active
-
2021
- 2021-02-19 US US17/179,828 patent/US11531623B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10198361B2 (en) | 2012-08-17 | 2019-02-05 | Intel Corporation | Memory sharing via a unified memory architecture |
US10929304B2 (en) | 2012-08-17 | 2021-02-23 | Intel Corporation | Memory sharing via a unified memory architecture |
US11531623B2 (en) | 2012-08-17 | 2022-12-20 | Intel Corporation | Memory sharing via a unified memory architecture |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6391077B2 (ja) | コンピューティングデバイス、コンピューティングシステム、方法、データ処理システム、非一時的な機械可読媒体、およびプログラム | |
JP6746645B2 (ja) | 共有仮想メモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150224 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160301 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160524 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160628 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160923 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20161018 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170217 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20170301 |
|
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: 20170404 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170413 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6136033 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |