CN102789429B - 支持页属性的虚拟地址至物理地址的转换 - Google Patents

支持页属性的虚拟地址至物理地址的转换 Download PDF

Info

Publication number
CN102789429B
CN102789429B CN201210167652.5A CN201210167652A CN102789429B CN 102789429 B CN102789429 B CN 102789429B CN 201210167652 A CN201210167652 A CN 201210167652A CN 102789429 B CN102789429 B CN 102789429B
Authority
CN
China
Prior art keywords
memory address
physical memory
page
address
instruction
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
Application number
CN201210167652.5A
Other languages
English (en)
Chinese (zh)
Other versions
CN102789429A (zh
Inventor
O·法里克
B-Z·弗莱德曼
J·D·多维科
E·维斯曼
J·B·克罗斯兰德
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN102789429A publication Critical patent/CN102789429A/zh
Application granted granted Critical
Publication of CN102789429B publication Critical patent/CN102789429B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • 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]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • 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
    • G06F2212/507Control mechanisms for virtual memory, cache or TLB using speculative control
    • 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
    • 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/657Virtual address space management
    • 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]
    • 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)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
CN201210167652.5A 2007-06-01 2008-05-30 支持页属性的虚拟地址至物理地址的转换 Active CN102789429B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/757,103 2007-06-01
US11/757,103 US8799620B2 (en) 2007-06-01 2007-06-01 Linear to physical address translation with support for page attributes
CN2008101000501A CN101315614B (zh) 2007-06-01 2008-05-30 支持页属性的虚拟地址至物理地址的转换

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2008101000501A Division CN101315614B (zh) 2007-06-01 2008-05-30 支持页属性的虚拟地址至物理地址的转换

Publications (2)

Publication Number Publication Date
CN102789429A CN102789429A (zh) 2012-11-21
CN102789429B true CN102789429B (zh) 2016-06-22

Family

ID=39596288

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201210167652.5A Active CN102789429B (zh) 2007-06-01 2008-05-30 支持页属性的虚拟地址至物理地址的转换
CN2008101000501A Expired - Fee Related CN101315614B (zh) 2007-06-01 2008-05-30 支持页属性的虚拟地址至物理地址的转换

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2008101000501A Expired - Fee Related CN101315614B (zh) 2007-06-01 2008-05-30 支持页属性的虚拟地址至物理地址的转换

Country Status (5)

Country Link
US (7) US8799620B2 (enExample)
JP (5) JP2008299844A (enExample)
CN (2) CN102789429B (enExample)
DE (1) DE102008025476A1 (enExample)
GB (1) GB2449749B (enExample)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108132894A (zh) * 2017-12-23 2018-06-08 天津国芯科技有限公司 一种cpu中tlb多命中异常的定位装置及方法

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799620B2 (en) 2007-06-01 2014-08-05 Intel Corporation Linear to physical address translation with support for page attributes
CN101882113B (zh) * 2009-05-05 2012-02-22 北京大学 一种基于客户操作系统内核代码替换的内存虚拟化方法
US9213651B2 (en) * 2009-06-16 2015-12-15 Vmware, Inc. Synchronizing a translation lookaside buffer with page tables
EP2507951B1 (en) 2009-12-04 2013-08-14 Napatech A/S An apparatus and a method of receiving and storing data packets controlled by a central controller
KR101716832B1 (ko) 2009-12-04 2017-03-27 나파테크 에이/에스 큐들의 채움 레벨들의 갱신을 제어함으로써 대역폭을 절감하면서 데이터를 수신 및 저장하는 방법 및 어셈블리
WO2013048497A1 (en) 2011-09-30 2013-04-04 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy
CN107391397B (zh) 2011-09-30 2021-07-27 英特尔公司 支持近存储器和远存储器访问的存储器通道
WO2013048467A1 (en) 2011-09-30 2013-04-04 Intel Corporation Generation of far memory access signals based on usage statistic tracking
WO2013101188A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Memory event notification
US9811472B2 (en) * 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
JP5958195B2 (ja) * 2012-08-31 2016-07-27 日本電気株式会社 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム
US9507729B2 (en) * 2013-10-01 2016-11-29 Synopsys, Inc. Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor
CN105814547B (zh) 2013-10-27 2019-12-03 超威半导体公司 输入/输出内存映射单元和北桥
KR20150065435A (ko) * 2013-12-05 2015-06-15 삼성전자주식회사 저장 장치 및 컴퓨팅 시스템
JP2016048502A (ja) * 2014-08-28 2016-04-07 富士通株式会社 情報処理装置及びメモリアクセス処理方法
US9842065B2 (en) * 2015-06-15 2017-12-12 Intel Corporation Virtualization-based platform protection technology
US9672159B2 (en) * 2015-07-02 2017-06-06 Arm Limited Translation buffer unit management
US9996357B2 (en) 2015-10-30 2018-06-12 International Business Machines Corporation Resolving page faults out of context for shared contexts
US9588758B1 (en) 2015-12-18 2017-03-07 International Business Machines Corporation Identifying user managed software modules
US10255196B2 (en) * 2015-12-22 2019-04-09 Intel Corporation Method and apparatus for sub-page write protection
US10713177B2 (en) 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
US10324857B2 (en) * 2017-01-26 2019-06-18 Intel Corporation Linear memory address transformation and management
US10997083B2 (en) * 2018-09-04 2021-05-04 Arm Limited Parallel page table entry access when performing address translations
US11954026B1 (en) * 2018-09-18 2024-04-09 Advanced Micro Devices, Inc. Paging hierarchies for extended page tables and extended page attributes
CN109918131B (zh) * 2019-03-11 2021-04-30 中电海康无锡科技有限公司 一种基于非阻塞指令cache的指令读取方法
US10877788B2 (en) 2019-03-12 2020-12-29 Intel Corporation Processing vectorized guest physical address translation instructions
KR102400977B1 (ko) * 2020-05-29 2022-05-25 성균관대학교산학협력단 프로세서를 통한 페이지 폴트 처리 방법
CN116662224A (zh) * 2022-02-17 2023-08-29 华为技术有限公司 内存访问的方法、装置、存储介质及计算机程序产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN85106711A (zh) * 1985-06-13 1987-02-04 英特尔公司 微处理机系统的存储管理
US5918251A (en) * 1996-12-23 1999-06-29 Intel Corporation Method and apparatus for preloading different default address translation attributes
CN1784663A (zh) * 2003-05-12 2006-06-07 国际商业机器公司 无效存储器,清除缓冲区表项

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5734251A (en) 1980-08-07 1982-02-24 Toshiba Corp Address conversion and generating system
US4363095A (en) * 1980-12-31 1982-12-07 Honeywell Information Systems Inc. Hit/miss logic for a cache memory
US5173872A (en) 1985-06-13 1992-12-22 Intel Corporation Content addressable memory for microprocessor system
US5182811A (en) 1987-10-02 1993-01-26 Mitsubishi Denki Kabushiki Kaisha Exception, interrupt, and trap handling apparatus which fetches addressing and context data using a single instruction following an interrupt
JP2556870B2 (ja) * 1987-10-02 1996-11-27 健 坂村 データ処理装置
JPH0391046A (ja) * 1989-09-04 1991-04-16 Hitachi Ltd データ処理装置
JPH07117918B2 (ja) 1989-09-25 1995-12-18 株式会社日立製作所 データ処理システム
DE4030267A1 (de) 1990-09-25 1992-05-07 Alten K Verformbare dichtung des spaltes zwischen dem rand einer gebaeudeoeffnung und dem heck eines an diese herangefahrenen fahrzeuges
JPH04131931A (ja) * 1990-09-25 1992-05-06 Nec Software Ltd 実アドレスロード命令制御方式
EP0526114A1 (en) * 1991-07-29 1993-02-03 Motorola, Inc. A method and apparatus for performing address translation in a data processor using masked protection indirection page descriptors
JPH05189320A (ja) * 1992-01-16 1993-07-30 Mitsubishi Electric Corp メモリ管理ユニット
JPH05250260A (ja) * 1992-03-04 1993-09-28 Toshiba Corp 物理アドレス読出し機能を持つ仮想記憶制御方式の情報処理装置
JPH07152654A (ja) * 1993-10-04 1995-06-16 Motorola Inc メモリ・アクセス誤りを処理しアドレス変換キャッシュを更新する方法
JPH07287668A (ja) 1994-04-19 1995-10-31 Hitachi Ltd データ処理装置
US5754818A (en) 1996-03-22 1998-05-19 Sun Microsystems, Inc. Architecture and method for sharing TLB entries through process IDS
US5893166A (en) 1997-05-01 1999-04-06 Oracle Corporation Addressing method and system for sharing a large memory address space using a system space global memory section
US6105113A (en) 1997-08-21 2000-08-15 Silicon Graphics, Inc. System and method for maintaining translation look-aside buffer (TLB) consistency
US6085296A (en) 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
US6260131B1 (en) 1997-11-18 2001-07-10 Intrinsity, Inc. Method and apparatus for TLB memory ordering
US6351797B1 (en) * 1997-12-17 2002-02-26 Via-Cyrix, Inc. Translation look-aside buffer for storing region configuration bits and method of operation
US6289432B1 (en) 1998-03-25 2001-09-11 International Business Machines Corporation Sharing segments of storage by enabling the sharing of page tables
US6564311B2 (en) 1999-01-19 2003-05-13 Matsushita Electric Industrial Co., Ltd. Apparatus for translation between virtual and physical addresses using a virtual page number, a physical page number, a process identifier and a global bit
JP2001051900A (ja) * 1999-08-17 2001-02-23 Hitachi Ltd 仮想計算機方式の情報処理装置及びプロセッサ
US6598050B1 (en) 2000-02-11 2003-07-22 Integrated Device Technology, Inc. Apparatus and method for limited data sharing in a multi-tasking system
JP2001282616A (ja) * 2000-04-03 2001-10-12 Mitsubishi Electric Corp メモリ管理方式
US6604187B1 (en) * 2000-06-19 2003-08-05 Advanced Micro Devices, Inc. Providing global translations with address space numbers
US6651156B1 (en) * 2001-03-30 2003-11-18 Mips Technologies, Inc. Mechanism for extending properties of virtual memory pages by a TLB
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US6895491B2 (en) * 2002-09-26 2005-05-17 Hewlett-Packard Development Company, L.P. Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
US20040123081A1 (en) * 2002-12-20 2004-06-24 Allan Knies Mechanism to increase performance of control speculation
US7194582B1 (en) * 2003-05-30 2007-03-20 Mips Technologies, Inc. Microprocessor with improved data stream prefetching
US7177985B1 (en) * 2003-05-30 2007-02-13 Mips Technologies, Inc. Microprocessor with improved data stream prefetching
US7552255B1 (en) * 2003-07-30 2009-06-23 Intel Corporation Dynamically partitioning pipeline resources
US20050144422A1 (en) * 2003-12-30 2005-06-30 Mcalpine Gary L. Virtual to physical address translation
US7302546B2 (en) 2004-01-09 2007-11-27 International Business Machines Corporation Method, system, and article of manufacture for reserving memory
US20050182903A1 (en) * 2004-02-12 2005-08-18 Mips Technologies, Inc. Apparatus and method for preventing duplicate matching entries in a translation lookaside buffer
US7167970B2 (en) 2004-05-24 2007-01-23 Sun Microsystems, Inc. Translating loads for accelerating virtualized partition
EP1617335A1 (fr) 2004-07-12 2006-01-18 Stmicroelectronics SA Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
US20060036830A1 (en) * 2004-07-31 2006-02-16 Dinechin Christophe De Method for monitoring access to virtual memory pages
US8954751B2 (en) * 2004-10-08 2015-02-10 International Business Machines Corporation Secure memory control parameters in table look aside buffer data fields and support memory array
JP2006185284A (ja) 2004-12-28 2006-07-13 Renesas Technology Corp データ処理装置
US7334076B2 (en) * 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
US7428626B2 (en) 2005-03-08 2008-09-23 Microsoft Corporation Method and system for a second level address translation in a virtual machine environment
US20060224815A1 (en) * 2005-03-30 2006-10-05 Koichi Yamada Virtualizing memory management unit resources
US7363463B2 (en) * 2005-05-13 2008-04-22 Microsoft Corporation Method and system for caching address translations from multiple address spaces in virtual machines
WO2006127613A2 (en) * 2005-05-24 2006-11-30 Marathon Technologies Corporation Symmetric multiprocessor fault tolerant computer system
US7426626B2 (en) * 2005-08-23 2008-09-16 Qualcomm Incorporated TLB lock indicator
US20070061549A1 (en) * 2005-09-15 2007-03-15 Kaniyur Narayanan G Method and an apparatus to track address translation in I/O virtualization
US7805588B2 (en) * 2005-10-20 2010-09-28 Qualcomm Incorporated Caching memory attribute indicators with cached memory data field
CA2630251C (en) 2005-11-24 2014-01-14 Tonen Chemical Corporation Microporous polyolefin membrane, its production method, battery separator and battery
JP4647477B2 (ja) 2005-12-02 2011-03-09 株式会社トーツヤ・エコー 両面装飾体用の印刷物、その製造方法、及び両面装飾体
US7555628B2 (en) * 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
US8799620B2 (en) 2007-06-01 2014-08-05 Intel Corporation Linear to physical address translation with support for page attributes
JP4814970B2 (ja) 2009-03-30 2011-11-16 株式会社沖データ 画像形成装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN85106711A (zh) * 1985-06-13 1987-02-04 英特尔公司 微处理机系统的存储管理
US5918251A (en) * 1996-12-23 1999-06-29 Intel Corporation Method and apparatus for preloading different default address translation attributes
CN1784663A (zh) * 2003-05-12 2006-06-07 国际商业机器公司 无效存储器,清除缓冲区表项

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108132894A (zh) * 2017-12-23 2018-06-08 天津国芯科技有限公司 一种cpu中tlb多命中异常的定位装置及方法
CN108132894B (zh) * 2017-12-23 2021-11-30 天津国芯科技有限公司 一种cpu中tlb多命中异常的定位装置及方法

Also Published As

Publication number Publication date
JP6567618B2 (ja) 2019-08-28
US20220050791A1 (en) 2022-02-17
US8799620B2 (en) 2014-08-05
DE102008025476A1 (de) 2008-12-18
US20140304488A1 (en) 2014-10-09
US20140351553A1 (en) 2014-11-27
JP2008299844A (ja) 2008-12-11
JP2012123814A (ja) 2012-06-28
US20140351554A1 (en) 2014-11-27
CN102789429A (zh) 2012-11-21
GB2449749B (en) 2010-03-03
US20080301398A1 (en) 2008-12-04
US20160041921A1 (en) 2016-02-11
US9158703B2 (en) 2015-10-13
US11074191B2 (en) 2021-07-27
US9164916B2 (en) 2015-10-20
JP2016066372A (ja) 2016-04-28
GB2449749A (en) 2008-12-03
US20180060246A1 (en) 2018-03-01
JP2014067445A (ja) 2014-04-17
CN101315614A (zh) 2008-12-03
GB0809264D0 (en) 2008-06-25
US9164917B2 (en) 2015-10-20
CN101315614B (zh) 2012-07-04
JP2018022508A (ja) 2018-02-08
JP5855632B2 (ja) 2016-02-09
JP6212102B2 (ja) 2017-10-11

Similar Documents

Publication Publication Date Title
CN102789429B (zh) 支持页属性的虚拟地址至物理地址的转换
US8688953B2 (en) Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities
US8301863B2 (en) Recursive logical partition real memory map
CN102473139B (zh) 包括用于i/o和计算卸载的多层次地址转换的i/o存储器管理单元
CN100397368C (zh) 无效存储器,清除缓冲区表项
KR20120106696A (ko) 집성된 소페이지들을 사용한 페이지 사이즈 확장
CN106021131B (zh) 存储器管理
US20090150335A1 (en) Achieving coherence between dynamically optimized code and original code
EP0793179A2 (en) System and method for emulating a segmented virtual address space by a microprocessor that provides a non-segmented virtual address space
US9734089B2 (en) Memory management unit and method for accessing data
US11494211B2 (en) Domain identifier and device identifier translation by an input-output memory management unit
US20080215830A1 (en) Employing a data structure of readily accessible units of memory to facilitate memory access

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant