CN107710173A - 用于存储器管理单元的多线程转换及事务重新排序 - Google Patents

用于存储器管理单元的多线程转换及事务重新排序 Download PDF

Info

Publication number
CN107710173A
CN107710173A CN201680029881.7A CN201680029881A CN107710173A CN 107710173 A CN107710173 A CN 107710173A CN 201680029881 A CN201680029881 A CN 201680029881A CN 107710173 A CN107710173 A CN 107710173A
Authority
CN
China
Prior art keywords
address translation
translation
requests
cache
translation requests
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
CN201680029881.7A
Other languages
English (en)
Chinese (zh)
Inventor
J·E·波达艾玛
P·C·J·维尔齐恩斯基
C·J·摩瑞拉
A·米雷特斯凯
M·瓦里亚
K·J·厄恩魏因
M·索马孙达拉姆
M·U·乔德里
S·M·加代尔拉布
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN107710173A publication Critical patent/CN107710173A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/655Same page detection
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/684TLB miss handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
CN201680029881.7A 2015-05-29 2016-04-27 用于存储器管理单元的多线程转换及事务重新排序 Pending CN107710173A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562168712P 2015-05-29 2015-05-29
US62/168,712 2015-05-29
US14/859,351 US10007619B2 (en) 2015-05-29 2015-09-20 Multi-threaded translation and transaction re-ordering for memory management units
US14/859,351 2015-09-20
PCT/US2016/029502 WO2016195850A1 (en) 2015-05-29 2016-04-27 Multi-threaded translation and transaction re-ordering for memory management units

Publications (1)

Publication Number Publication Date
CN107710173A true CN107710173A (zh) 2018-02-16

Family

ID=57397568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680029881.7A Pending CN107710173A (zh) 2015-05-29 2016-04-27 用于存储器管理单元的多线程转换及事务重新排序

Country Status (9)

Country Link
US (1) US10007619B2 (enExample)
EP (1) EP3304320A1 (enExample)
JP (1) JP2018519581A (enExample)
KR (1) KR20180013924A (enExample)
CN (1) CN107710173A (enExample)
BR (1) BR112017025625A2 (enExample)
CA (1) CA2983797A1 (enExample)
TW (1) TW201710908A (enExample)
WO (1) WO2016195850A1 (enExample)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830224B2 (en) * 2013-03-15 2017-11-28 Nvidia Corporation Selective fault stalling for a GPU memory pipeline in a unified virtual memory system
US10509729B2 (en) 2016-01-13 2019-12-17 Intel Corporation Address translation for scalable virtualization of input/output devices
US10228981B2 (en) 2017-05-02 2019-03-12 Intel Corporation High-performance input-output devices supporting scalable virtualization
US10635654B2 (en) * 2017-06-12 2020-04-28 Samsung Electronics Co., Ltd. Data journaling for large solid state storage devices with low DRAM/SRAM
US10649912B2 (en) * 2017-07-14 2020-05-12 International Business Machines Corporation Method and apparatus for an efficient TLB lookup
US20190087351A1 (en) * 2017-09-20 2019-03-21 Qualcomm Incorporated Transaction dispatcher for memory management unit
US10628072B2 (en) * 2018-08-21 2020-04-21 Samsung Electronics Co., Ltd. Scalable architecture enabling large memory system for in-memory computations
GB2578099B (en) 2018-10-15 2021-05-12 Advanced Risc Mach Ltd Memory access control
CN113127064B (zh) * 2019-12-31 2025-02-14 深圳云天励飞技术有限公司 一种并发调度和执行时序数据的方法及相关装置
KR102824954B1 (ko) * 2020-07-24 2025-06-25 한국전자통신연구원 병렬 처리 시스템에서의 메모리 액세스 제어 장치 및 메모리 액세스 제어 방법
US11636043B2 (en) 2021-08-30 2023-04-25 International Business Machines Corporation Sleeping and waking-up address translation that conflicts with translation level of active page table walks

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020065993A1 (en) * 2000-08-21 2002-05-30 Gerard Chauvel TLB operations based on shared bit
CN101727413A (zh) * 2008-10-15 2010-06-09 英特尔公司 使用完成者对存储器区域排序要求的知识来修改事务属性
US20120159039A1 (en) * 2010-12-16 2012-06-21 Andy Kegel Generalized Control Registers
US8271700B1 (en) * 2007-11-23 2012-09-18 Pmc-Sierra Us, Inc. Logical address direct memory access with multiple concurrent physical ports and internal switching
CN102763086A (zh) * 2012-01-18 2012-10-31 华为技术有限公司 分布式计算任务处理系统和任务处理方法
CN103262036A (zh) * 2010-12-17 2013-08-21 英特尔公司 非阻塞无等待数据并行调度器
CN103348333A (zh) * 2011-12-23 2013-10-09 英特尔公司 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置
CN103502946A (zh) * 2011-04-05 2014-01-08 高通股份有限公司 用于动态控制到便携式计算装置的多核心处理器中的多个核心的电力的方法和系统
CN103777926A (zh) * 2012-10-25 2014-05-07 辉达公司 多线程处理单元中的高效存储器虚拟化
CN104484228A (zh) * 2014-12-30 2015-04-01 成都因纳伟盛科技股份有限公司 基于Intelli-DSC的分布式并行任务处理系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010052053A1 (en) 2000-02-08 2001-12-13 Mario Nemirovsky Stream processing unit for a multi-streaming processor
US20040103248A1 (en) * 2002-10-08 2004-05-27 Hass David T. Advanced telecommunications processor
US7434000B1 (en) 2004-06-30 2008-10-07 Sun Microsystems, Inc. Handling duplicate cache misses in a multithreaded/multi-core processor
US8347065B1 (en) 2006-11-01 2013-01-01 Glasco David B System and method for concurrently managing memory access requests
US7814253B2 (en) * 2007-04-16 2010-10-12 Nvidia Corporation Resource arbiter
US7904692B2 (en) * 2007-11-01 2011-03-08 Shrijeet Mukherjee Iommu with translation request management and methods for managing translation requests
WO2010142432A2 (en) 2009-06-09 2010-12-16 Martin Vorbach System and method for a cache in a multi-core processor
US8301865B2 (en) 2009-06-29 2012-10-30 Oracle America, Inc. System and method to manage address translation requests
US8386748B2 (en) * 2009-10-29 2013-02-26 Apple Inc. Address translation unit with multiple virtual queues
US8738860B1 (en) 2010-10-25 2014-05-27 Tilera Corporation Computing in parallel processing environments
US9921967B2 (en) * 2011-07-26 2018-03-20 Intel Corporation Multi-core shared page miss handler
US9152566B2 (en) * 2012-06-15 2015-10-06 International Business Machines Corporation Prefetch address translation using prefetch buffer based on availability of address translation logic
US9069690B2 (en) 2012-09-13 2015-06-30 Intel Corporation Concurrent page table walker control for TLB miss handling
US20150100733A1 (en) 2013-10-03 2015-04-09 Synopsys, Inc. Efficient Memory Organization
US9411745B2 (en) 2013-10-04 2016-08-09 Qualcomm Incorporated Multi-core heterogeneous system translation lookaside buffer coherency
US20160210069A1 (en) * 2015-01-21 2016-07-21 Bitdefender IPR Management Ltd. Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine
US10019380B2 (en) * 2015-09-25 2018-07-10 Qualcomm Incorporated Providing memory management functionality using aggregated memory management units (MMUs)

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020065993A1 (en) * 2000-08-21 2002-05-30 Gerard Chauvel TLB operations based on shared bit
US8271700B1 (en) * 2007-11-23 2012-09-18 Pmc-Sierra Us, Inc. Logical address direct memory access with multiple concurrent physical ports and internal switching
CN101727413A (zh) * 2008-10-15 2010-06-09 英特尔公司 使用完成者对存储器区域排序要求的知识来修改事务属性
CN102981984A (zh) * 2008-10-15 2013-03-20 英特尔公司 使用完成者对存储器区域排序要求的知识来修改事务属性
US20120159039A1 (en) * 2010-12-16 2012-06-21 Andy Kegel Generalized Control Registers
CN103262036A (zh) * 2010-12-17 2013-08-21 英特尔公司 非阻塞无等待数据并行调度器
CN103502946A (zh) * 2011-04-05 2014-01-08 高通股份有限公司 用于动态控制到便携式计算装置的多核心处理器中的多个核心的电力的方法和系统
CN103348333A (zh) * 2011-12-23 2013-10-09 英特尔公司 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置
CN102763086A (zh) * 2012-01-18 2012-10-31 华为技术有限公司 分布式计算任务处理系统和任务处理方法
CN103777926A (zh) * 2012-10-25 2014-05-07 辉达公司 多线程处理单元中的高效存储器虚拟化
CN104484228A (zh) * 2014-12-30 2015-04-01 成都因纳伟盛科技股份有限公司 基于Intelli-DSC的分布式并行任务处理系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BRICE GOGLIN: "Decoupling memory pinning from the application with overlapped on-demand pinning and MMU notifiers", 《2009 IEEE INTERNATIONAL SYMPOSIUM ON PARALLEL & DISTRIBUTED PROCESSING》 *

Also Published As

Publication number Publication date
US20160350234A1 (en) 2016-12-01
KR20180013924A (ko) 2018-02-07
BR112017025625A2 (pt) 2018-08-07
WO2016195850A1 (en) 2016-12-08
TW201710908A (zh) 2017-03-16
CA2983797A1 (en) 2016-12-08
JP2018519581A (ja) 2018-07-19
US10007619B2 (en) 2018-06-26
EP3304320A1 (en) 2018-04-11

Similar Documents

Publication Publication Date Title
CN107710173A (zh) 用于存储器管理单元的多线程转换及事务重新排序
KR102407128B1 (ko) 메모리 컨트롤러
US9639466B2 (en) Control mechanism for fine-tuned cache to backing-store synchronization
CN101002178B (zh) 用于对存储器的各种访问类型进行预测的预取器
JP5118199B2 (ja) マルチスレッドおよびマルチコア・システムのためのキャッシュ、および、その方法
CN105765525A (zh) 加载和存储单元以及数据高速缓存的排序和带宽改进
US9384136B2 (en) Modification of prefetch depth based on high latency event
US9418018B2 (en) Efficient fill-buffer data forwarding supporting high frequencies
US10331357B2 (en) Tracking stores and loads by bypassing load store units
US20240330216A1 (en) Direct memory access system with read reassembly circuit
US20070067572A1 (en) Buffering missed requests in processor caches
CN1967506B (zh) 高速缓存存储器处理器中的合并入口
US8458406B2 (en) Multiple critical word bypassing in a memory controller
CN112639749A (zh) 减少由于地址转换缺失而引起的管线暂缓的方法、装置和系统
CN105830027A (zh) 用于为网络处理器中的处理器核心预取并处理作业的方法和装置
US7610458B2 (en) Data processing system, processor and method of data processing that support memory access according to diverse memory models
US9804959B2 (en) In-flight packet processing
US11748107B2 (en) Complex I/O value prediction for multiple values with physical or virtual addresses
KR20220083849A (ko) 메모리 컨트롤러
AU2011224124A1 (en) Tolerating cache misses
US10380020B2 (en) Achieving high bandwidth on ordered direct memory access write stream into a processor cache

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180216

WD01 Invention patent application deemed withdrawn after publication