JP7682148B2 - ヘテロジニアスコンピューティングのための統合カーネル仮想アドレス空間 - Google Patents
ヘテロジニアスコンピューティングのための統合カーネル仮想アドレス空間 Download PDFInfo
- Publication number
- JP7682148B2 JP7682148B2 JP2022503804A JP2022503804A JP7682148B2 JP 7682148 B2 JP7682148 B2 JP 7682148B2 JP 2022503804 A JP2022503804 A JP 2022503804A JP 2022503804 A JP2022503804 A JP 2022503804A JP 7682148 B2 JP7682148 B2 JP 7682148B2
- Authority
- JP
- Japan
- Prior art keywords
- subsystem
- address space
- region
- kernel
- memory
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
一般に、コンピューティングデバイス間でメモリバッファを共有するには、デバイスがデバイスアドレス空間又は物理アドレス空間においてポインタ又はハンドルを交換する必要がある。
Claims (17)
- 第1のサブシステムが、第1のカーネルアドレス空間の第1の領域を第1の物理アドレス空間の第1の領域にマッピングすることと、
前記第1のサブシステムとは異なる第2のサブシステムが、第2のカーネルアドレス空間の第1の領域を前記第1の物理アドレス空間の第1の領域及びデバイスメモリ空間にマッピングすることと、
前記第1のカーネルアドレス空間及び前記第2のカーネルアドレス空間の両方において共通の共有領域を使用可能にすることと、を含む、
方法。 - 前記共通の共有領域は、第1のサブシステム及び前記第1のサブシステムとは異なる第2のサブシステムの両方による共有が可能である、
請求項1の方法。 - 前記第1のカーネルアドレス空間の第1の領域内のアドレスは、前記第1の物理アドレス空間において、前記第2のカーネルアドレス空間の第1の領域内のアドレスと同じ位置にマッピングされる、
請求項1の方法。 - 前記第1のカーネルアドレス空間の第1の領域を前記第1の物理アドレス空間の第1の領域にマッピングすることは、第1のサブシステムによって実行される、
請求項1の方法。 - 前記第2のカーネルアドレス空間の第1の領域を前記第1の物理アドレス空間の第1の領域にマッピングすることは、前記第1のサブシステムとは異なる第2のサブシステムによって実行される、
請求項4の方法。 - 前記第2のサブシステムは、入力/出力メモリ管理ユニットである、
請求項5の方法。 - システムであって、
第1のカーネルアドレス空間の第1の領域を第1の物理アドレス空間の第1の領域にマッピングするように構成された第1のサブシステムと、
第2のカーネルアドレス空間の第1の領域を前記第1の物理アドレス空間の第1の領域及びデバイスメモリ空間にマッピングするように構成された、前記第1のサブシステムとは異なる第2のサブシステムと、を備え、
前記システムは、前記第1のカーネルアドレス空間及び前記第2のカーネルアドレス空間の両方において共通の共有領域を使用可能にするように構成されている、
システム。 - 前記第1のカーネルアドレス空間の第1の領域内のアドレスは、前記第1の物理アドレス空間において、前記第2のカーネルアドレス空間の第1の領域内のアドレスと同じ位置にマッピングされる、
請求項7のシステム。 - 前記第2のサブシステムは、入力/出力メモリ管理ユニットである、
請求項7のシステム。 - 前記第1のサブシステムは、前記第1の領域を前記第1の物理アドレス空間に割り当てるように構成されている、
請求項7のシステム。 - 前記第1のサブシステムは、前記第1の物理アドレス空間の第1の領域内の位置に対するポインタを、前記共通の共有領域を介して前記第2のサブシステムに伝達するように構成されている、
請求項8のシステム。 - 前記第2のサブシステムは、前記第2のカーネルアドレス空間の第1の領域を前記第1の物理アドレス空間の第1の領域にマッピングするように構成された入力/出力メモリ管理ユニットを備える、
請求項11のシステム。 - システムであって、
メモリデバイスと、
第1の仮想アドレス空間の第1の領域を前記メモリデバイス内の領域にマッピングするように構成された第1の処理デバイスと、
第2の仮想アドレス空間の第1の領域を前記メモリデバイス内の領域にマッピングして、前記メモリデバイス内の領域を前記第1の処理デバイスと第2の処理デバイスによって共有させるように構成された第2の処理デバイスと、を備え、
前記第1の仮想アドレス空間の第1の領域内のアドレスは、前記メモリデバイスにおいて、前記第2の仮想アドレス空間の第1の領域内のアドレスと同じ位置にマッピングされる、
システム。 - 前記第2の処理デバイスは、前記第2の仮想アドレス空間の第1の領域を前記メモリデバイス内の領域にマッピングするために、前記第2の仮想アドレス空間の第1の領域を、前記メモリデバイス内の領域にマッピングされるデバイスメモリ空間にマッピングするように構成されている、
請求項13のシステム。 - 前記第2の処理デバイスは、前記デバイスメモリ空間を前記メモリデバイス内の領域にマッピングするように構成された入力/出力メモリ管理ユニットを備える、
請求項14のシステム。 - 前記第1の処理デバイスは、前記領域を前記メモリデバイスに割り当てるように構成されている、
請求項13のシステム。 - 前記第1の処理デバイスは、前記メモリデバイスの領域内の位置に対するポインタを、前記メモリデバイス内の前記位置を介して前記第2の処理デバイスに伝達するように構成されている、
請求項13のシステム。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/519,311 US10853263B1 (en) | 2019-07-23 | 2019-07-23 | Unified kernel virtual address space for heterogeneous computing |
| US16/519,311 | 2019-07-23 | ||
| PCT/IB2020/056906 WO2021014382A1 (en) | 2019-07-23 | 2020-07-22 | Unified kernel virtual address space for heterogeneous computing |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2022541059A JP2022541059A (ja) | 2022-09-21 |
| JPWO2021014382A5 JPWO2021014382A5 (ja) | 2023-07-18 |
| JP7682148B2 true JP7682148B2 (ja) | 2025-05-23 |
Family
ID=73554876
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022503804A Active JP7682148B2 (ja) | 2019-07-23 | 2020-07-22 | ヘテロジニアスコンピューティングのための統合カーネル仮想アドレス空間 |
Country Status (6)
| Country | Link |
|---|---|
| US (2) | US10853263B1 (ja) |
| EP (1) | EP4004743B1 (ja) |
| JP (1) | JP7682148B2 (ja) |
| KR (1) | KR20220036972A (ja) |
| CN (1) | CN114286987A (ja) |
| WO (1) | WO2021014382A1 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10853263B1 (en) | 2019-07-23 | 2020-12-01 | Ati Technologies Ulc | Unified kernel virtual address space for heterogeneous computing |
| CN120670331B (zh) * | 2025-08-19 | 2025-11-25 | 瀚博半导体(上海)股份有限公司 | 用于异构系统的地址管理方法、装置及计算机设备 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014531672A (ja) | 2011-09-25 | 2014-11-27 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | I/oデバイスによるメモリへのアクセスを防止する保護モードを有する入出力メモリ管理ユニット |
| JP2015500524A (ja) | 2011-11-30 | 2015-01-05 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 効率的なメモリ及びリソース管理 |
| JP2016532959A (ja) | 2013-08-07 | 2016-10-20 | クアルコム,インコーポレイテッド | 異種マルチプロセッサシステムにおける共有メモリ領域のための動的なアドレスのネゴシエーション |
| US20190114193A1 (en) | 2017-10-13 | 2019-04-18 | Electronics And Telecommunications Research Institute | Method for processing input and output on multi kernel system and apparatus for the same |
Family Cites Families (39)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7035963B2 (en) * | 2000-12-27 | 2006-04-25 | Intel Corporation | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
| US6961941B1 (en) * | 2001-06-08 | 2005-11-01 | Vmware, Inc. | Computer configuration for resource management in systems including a virtual machine |
| US8041878B2 (en) | 2003-03-19 | 2011-10-18 | Samsung Electronics Co., Ltd. | Flash file system |
| US7493465B2 (en) * | 2004-05-17 | 2009-02-17 | Oracle International Corporation | Method and system for extended memory with user mode input/output operations |
| US7444493B2 (en) | 2004-09-30 | 2008-10-28 | Intel Corporation | Address translation for input/output devices using hierarchical translation tables |
| US7634584B2 (en) * | 2005-04-27 | 2009-12-15 | Solarflare Communications, Inc. | Packet validation in virtual network interface architecture |
| US7225287B2 (en) | 2005-06-01 | 2007-05-29 | Microsoft Corporation | Scalable DMA remapping on a computer bus |
| US7543131B2 (en) | 2005-08-12 | 2009-06-02 | Advanced Micro Devices, Inc. | Controlling an I/O MMU |
| US7793067B2 (en) | 2005-08-12 | 2010-09-07 | Globalfoundries Inc. | Translation data prefetch in an IOMMU |
| US7500048B1 (en) * | 2005-12-15 | 2009-03-03 | Vmware, Inc. | Transparent page sharing on commodity operating systems |
| US7653803B2 (en) | 2006-01-17 | 2010-01-26 | Globalfoundries Inc. | Address translation for input/output (I/O) devices and interrupt remapping for I/O devices in an I/O memory management unit (IOMMU) |
| US7548999B2 (en) | 2006-01-17 | 2009-06-16 | Advanced Micro Devices, Inc. | Chained hybrid input/output memory management unit |
| US8032899B2 (en) * | 2006-10-26 | 2011-10-04 | International Business Machines Corporation | Providing policy-based operating system services in a hypervisor on a computing system |
| US7849287B2 (en) | 2006-11-13 | 2010-12-07 | Advanced Micro Devices, Inc. | Efficiently controlling special memory mapped system accesses |
| US7873770B2 (en) | 2006-11-13 | 2011-01-18 | Globalfoundries Inc. | Filtering and remapping interrupts |
| US7707383B2 (en) | 2006-11-21 | 2010-04-27 | Intel Corporation | Address translation performance in virtualized environments |
| US8032897B2 (en) | 2007-07-31 | 2011-10-04 | Globalfoundries Inc. | Placing virtual machine monitor (VMM) code in guest context to speed memory mapped input/output virtualization |
| US8145876B2 (en) | 2007-08-06 | 2012-03-27 | Advanced Micro Devices, Inc. | Address translation with multiple translation look aside buffers |
| US8352705B2 (en) | 2008-01-15 | 2013-01-08 | Vmware, Inc. | Large-page optimization in virtual memory paging systems |
| US8307360B2 (en) | 2008-01-22 | 2012-11-06 | Advanced Micro Devices, Inc. | Caching binary translations for virtual machine guest |
| US8055827B2 (en) | 2009-01-26 | 2011-11-08 | Advanced Micro Devices, Inc. | Guest interrupt controllers for each processor to aid interrupt virtualization |
| US8386745B2 (en) | 2009-07-24 | 2013-02-26 | Advanced Micro Devices, Inc. | I/O memory management unit including multilevel address translation for I/O and computation offload |
| US9535849B2 (en) | 2009-07-24 | 2017-01-03 | Advanced Micro Devices, Inc. | IOMMU using two-level address translation for I/O and computation offload devices on a peripheral interconnect |
| 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 |
| US8719466B2 (en) * | 2011-12-16 | 2014-05-06 | Oracle International Corporation | Direct data transfer for device drivers |
| US20130262736A1 (en) * | 2012-03-30 | 2013-10-03 | Ati Technologies Ulc | Memory types for caching policies |
| US9373182B2 (en) * | 2012-08-17 | 2016-06-21 | Intel Corporation | Memory sharing via a unified memory architecture |
| US9628279B2 (en) * | 2014-09-30 | 2017-04-18 | Microsoft Technology Licensing, Llc | Protecting application secrets from operating system attacks |
| US10705952B2 (en) * | 2015-11-04 | 2020-07-07 | Sandisk Technologies Llc | User space data storage management |
| US10459850B2 (en) | 2016-09-20 | 2019-10-29 | Advanced Micro Devices, Inc. | System and method for virtualized process isolation including preventing a kernel from accessing user address space |
| US10678432B1 (en) * | 2016-10-04 | 2020-06-09 | Pure Storage, Inc. | User space and kernel space access to memory devices through private queues |
| KR101932604B1 (ko) | 2016-11-11 | 2019-03-15 | 주식회사 모션디바이스 | 모션 시뮬레이터의 조종간 |
| US10481951B2 (en) * | 2016-11-15 | 2019-11-19 | Red Hat Israel, Ltd. | Multi-queue device assignment for application groups |
| WO2018152688A1 (en) * | 2017-02-22 | 2018-08-30 | Intel Corporation | Virtualization of process address space identifiers for scalable virtualization of input/output devices |
| US10198202B2 (en) * | 2017-02-24 | 2019-02-05 | Red Hat, Inc. | Safe userspace device access for network function virtualization using an IOMMU to map supervisor memory to a reserved range of application virtual addresses |
| KR20190091035A (ko) * | 2018-01-26 | 2019-08-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
| US11792307B2 (en) * | 2018-03-28 | 2023-10-17 | Apple Inc. | Methods and apparatus for single entity buffer pool management |
| US11036405B2 (en) * | 2018-09-07 | 2021-06-15 | Vmware, Inc. | Runtime information transfer between kernel modules |
| US10853263B1 (en) | 2019-07-23 | 2020-12-01 | Ati Technologies Ulc | Unified kernel virtual address space for heterogeneous computing |
-
2019
- 2019-07-23 US US16/519,311 patent/US10853263B1/en active Active
-
2020
- 2020-07-22 JP JP2022503804A patent/JP7682148B2/ja active Active
- 2020-07-22 CN CN202080060590.0A patent/CN114286987A/zh active Pending
- 2020-07-22 KR KR1020227005983A patent/KR20220036972A/ko active Pending
- 2020-07-22 WO PCT/IB2020/056906 patent/WO2021014382A1/en not_active Ceased
- 2020-07-22 EP EP20844551.0A patent/EP4004743B1/en active Active
- 2020-11-25 US US17/105,331 patent/US11960410B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014531672A (ja) | 2011-09-25 | 2014-11-27 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | I/oデバイスによるメモリへのアクセスを防止する保護モードを有する入出力メモリ管理ユニット |
| JP2015500524A (ja) | 2011-11-30 | 2015-01-05 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 効率的なメモリ及びリソース管理 |
| JP2016532959A (ja) | 2013-08-07 | 2016-10-20 | クアルコム,インコーポレイテッド | 異種マルチプロセッサシステムにおける共有メモリ領域のための動的なアドレスのネゴシエーション |
| US20190114193A1 (en) | 2017-10-13 | 2019-04-18 | Electronics And Telecommunications Research Institute | Method for processing input and output on multi kernel system and apparatus for the same |
Also Published As
| Publication number | Publication date |
|---|---|
| US10853263B1 (en) | 2020-12-01 |
| EP4004743A1 (en) | 2022-06-01 |
| US11960410B2 (en) | 2024-04-16 |
| EP4004743A4 (en) | 2023-08-16 |
| JP2022541059A (ja) | 2022-09-21 |
| KR20220036972A (ko) | 2022-03-23 |
| EP4004743B1 (en) | 2025-03-26 |
| CN114286987A (zh) | 2022-04-05 |
| WO2021014382A1 (en) | 2021-01-28 |
| US20210081328A1 (en) | 2021-03-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9547535B1 (en) | Method and system for providing shared memory access to graphics processing unit processes | |
| US10824341B2 (en) | Flash-based accelerator and computing device including the same | |
| US20230196502A1 (en) | Dynamic kernel memory space allocation | |
| CN101847105B (zh) | 一种计算机及多操作系统共享内存的方法 | |
| KR102321913B1 (ko) | 불휘발성 메모리 장치, 및 그것을 포함하는 메모리 시스템 | |
| US8395631B1 (en) | Method and system for sharing memory between multiple graphics processing units in a computer system | |
| CN107818054B (zh) | 分配连续物理内存空间到设备的方法及系统 | |
| CN100421089C (zh) | 处理器资源虚拟化的系统和方法 | |
| US20120017029A1 (en) | Sharing memory spaces for access by hardware and software in a virtual machine environment | |
| CN109977037B (zh) | 一种dma数据传输方法及系统 | |
| CN106445628A (zh) | 一种虚拟化方法、装置和系统 | |
| CN114080587B (zh) | 输入-输出存储器管理单元对访客操作系统缓冲区和日志的访问 | |
| CN113906389B (zh) | 向访客操作系统提供输入输出存储器管理单元寄存器副本 | |
| JP7682148B2 (ja) | ヘテロジニアスコンピューティングのための統合カーネル仮想アドレス空間 | |
| US9436395B2 (en) | Mechanisms to save user/kernel copy for cross device communications | |
| US12045475B1 (en) | Resizable scratchpad memory | |
| US20200201691A1 (en) | Enhanced message control banks | |
| US11113440B1 (en) | Memory migration in hybrid emulation | |
| WO2017113329A1 (zh) | 一种主机集群中缓存管理方法及主机 | |
| US12443363B2 (en) | High bandwidth extended memory in a parallel processing system | |
| US20230266992A1 (en) | Processor for managing resources using dual queues, and operating method thereof | |
| CN121116868A (zh) | 地址映射方法、装置、设备、存储介质及程序产品 | |
| CN118885287A (zh) | 用于指定分配内存物理地址段的方法及计算设备 | |
| CN120216404A (zh) | 一种指令发送方法、指令接收方法和相关设备 | |
| CN104679664A (zh) | 一种集群系统中的通信方法和装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230707 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230707 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240710 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240716 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20241016 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20241216 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250114 |
|
| 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: 20250430 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250513 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7682148 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |