RU2008103216A - Предотвращение множественных доступов к буферу быстрого преобразования адреса для одной и той же страницы в памяти - Google Patents

Предотвращение множественных доступов к буферу быстрого преобразования адреса для одной и той же страницы в памяти Download PDF

Info

Publication number
RU2008103216A
RU2008103216A RU2008103216/09A RU2008103216A RU2008103216A RU 2008103216 A RU2008103216 A RU 2008103216A RU 2008103216/09 A RU2008103216/09 A RU 2008103216/09A RU 2008103216 A RU2008103216 A RU 2008103216A RU 2008103216 A RU2008103216 A RU 2008103216A
Authority
RU
Russia
Prior art keywords
tlb
command
processor
current command
virtual address
Prior art date
Application number
RU2008103216/09A
Other languages
English (en)
Inventor
Брайан Джозеф КОПЕК (US)
Брайан Джозеф КОПЕК
Виктор Робертс ОГСБУРГ (US)
Виктор Робертс ОГСБУРГ
Джеймс Норрис ДИФФЕНДЕРФЕР (US)
Джеймс Норрис ДИФФЕНДЕРФЕР
Джеффри Тодд БРИДЖЕС (US)
Джеффри Тодд БРИДЖЕС
Томас Эндрю САРТОРИУС (US)
Томас Эндрю САРТОРИУС
Original Assignee
Квэлкомм Инкорпорейтед (US)
Квэлкомм Инкорпорейтед
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 Квэлкомм Инкорпорейтед (US), Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед (US)
Publication of RU2008103216A publication Critical patent/RU2008103216A/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

1. Процессор, содержащий ! память, сконфигурированную для хранения данных во множестве страниц; ! буфер быстрого преобразования адреса (TLB), сконфигурированный для отыскивания, когда подвергается доступу посредством команды, содержащей виртуальный адрес, информации преобразования адреса, которая предоставляет возможность преобразовать виртуальный адрес в физический адрес одной из множества страниц, и для выдачи информации преобразования адреса, если информация преобразования адреса найдена в TLB; и ! контроллер TLB, сконфигурированный для определения, запрашивают ли текущая команда и следующая команда доступ к одной и той же странице в пределах множества страниц, и, если так, для предотвращения доступа к TLB следующей командой. ! 2. Процессор по п. 1, в котором текущая команда включает в себя информацию о следующей команде, при этом контроллер TLB дополнительно сконфигурирован для использования информации, включенной в текущую команду, для того, чтобы определять, запрашивают ли текущая команда и следующая команда доступ к одной и той же странице в пределах множества страниц. ! 3. Процессор по п. 1, в котором контроллер TLB дополнительно сконфигурирован для сравнения виртуального адреса, сформированного для текущей команды, с виртуальным адресом, сформированным для следующей команды, для того, чтобы определять, запрашивают ли текущая команда и следующая команда доступ к одной и той же странице в пределах множества страниц. ! 4. Процессор по п. 3, в котором контроллер TLB дополнительно сконфигурирован для определения, преобразуются ли виртуальный адрес, сформированный для текущей команды, и виртуальный адрес, сформированны�

Claims (23)

1. Процессор, содержащий
память, сконфигурированную для хранения данных во множестве страниц;
буфер быстрого преобразования адреса (TLB), сконфигурированный для отыскивания, когда подвергается доступу посредством команды, содержащей виртуальный адрес, информации преобразования адреса, которая предоставляет возможность преобразовать виртуальный адрес в физический адрес одной из множества страниц, и для выдачи информации преобразования адреса, если информация преобразования адреса найдена в TLB; и
контроллер TLB, сконфигурированный для определения, запрашивают ли текущая команда и следующая команда доступ к одной и той же странице в пределах множества страниц, и, если так, для предотвращения доступа к TLB следующей командой.
2. Процессор по п. 1, в котором текущая команда включает в себя информацию о следующей команде, при этом контроллер TLB дополнительно сконфигурирован для использования информации, включенной в текущую команду, для того, чтобы определять, запрашивают ли текущая команда и следующая команда доступ к одной и той же странице в пределах множества страниц.
3. Процессор по п. 1, в котором контроллер TLB дополнительно сконфигурирован для сравнения виртуального адреса, сформированного для текущей команды, с виртуальным адресом, сформированным для следующей команды, для того, чтобы определять, запрашивают ли текущая команда и следующая команда доступ к одной и той же странице в пределах множества страниц.
4. Процессор по п. 3, в котором контроллер TLB дополнительно сконфигурирован для определения, преобразуются ли виртуальный адрес, сформированный для текущей команды, и виртуальный адрес, сформированный для следующей команды, в физические адреса одной и той же страницы в пределах множества страниц.
5. Процессор по п. 2, в котором контроллер TLB дополнительно сконфигурирован для использования для следующей команды информации преобразования адреса, которая уже выдавалась TLB для текущей команды, если контроллер доступа к памяти определяет, что текущая команда и следующая команда запрашивают доступ к данным из одной и той же страницы в пределах множества страниц.
6. Процессор по п. 1, в котором текущая команда содержит команду для итеративной операции.
7. Процессор по п. 1, в котором текущая команда и следующая команда содержат последовательные элементы единой составной команды.
8. Процессор по п. 1, в котором TLB сконфигурирован для хранения множества записей TLB, каждая одна из множества записей TLB включает в себя виртуальный адрес, физический адрес одной из множества страниц в памяти и информацию преобразования адреса для преобразования виртуального адреса в физический адрес, при этом TLB дополнительно сконфигурирован для поиска в пределах множества записей TLB информации преобразования адреса, когда подвергается доступу посредством команды, содержащей виртуальный адрес.
9. Процессор по п. 1, в котором контроллер TLB дополнительно сконфигурирован для определения, до точки доступа к TLB следующей команды, запрашивают ли текущая команда и следующая команда доступ к одной и той же странице в пределах множества страниц.
10. Процессор по п. 1, в котором текущая команда и следующая команда содержат последовательные команды, которые запрашивают последовательные доступы к памяти.
11. Процессор по п. 1, при этом процессор содержит многокаскадный конвейерный процессор.
12. Процессор по п. 11, при этом многокаскадный конвейерный процессор содержит по меньшей мере каскад выборки, каскад декодирования, каскад выполнения, каскад памяти и каскад обратной записи.
13. Процессор по п. 12, дополнительно содержащий
по меньшей мере один узел выборки, сконфигурированный для выборки одной или более команд из регистра команд;
по меньшей мере один узел декодирования, сконфигурированный для декодирования одной или более команд, извлеченных узлом выборки; и
по меньшей мере один узел выполнения, сконфигурированный для выполнения одной или более команд, декодированных узлом декодирования.
14. Процессор, содержащий память, сконфигурированную для хранения данных во множестве страниц;
TLB, сконфигурированный для отыскивания, когда подвергается доступу посредством команды, содержащей виртуальный адрес, информации преобразования адреса в пределах TLB, которая предоставляет возможность преобразовать виртуальный адрес в физический адрес, и для выдачи информации преобразования адреса, если информация преобразования адреса найдена в TLB; и контроллер TLB, сконфигурированный для определения, запрашивают ли текущая команда и множество следующих команд доступ к одной и той же странице в пределах множества страниц, и, если так, для предотвращения доступа к TLB одной или более из множества следующих команд.
15. Процессор, содержащий память, сконфигурированную для хранения данных во множестве страниц; TLB, сконфигурированный для отыскивания, когда подвергается доступу посредством команды, содержащей виртуальный адрес, информации преобразования адреса, которая предоставляет возможность преобразовать виртуальный адрес в физический адрес, и для выдачи информации преобразования адреса, если информация преобразования адреса найдена в TLB; средство для определения, запрашивают ли текущая команда и следующая команда доступ к данным из одной и той же страницы в пределах множества страниц в памяти; и средство для предотвращения доступа к TLB следующей командой, если текущая команда и следующая команда запрашивают доступ к данным из одной и той же страницы в пределах множества страниц в памяти.
16. Способ управления доступом к TLB в процессоре, содержащий следующие операции:
принимают текущую команду и следующую команду;
определяют, что текущая команда и следующая команда запрашивают доступ к одной и той же странице в пределах множества страниц в памяти; и
предотвращают доступ к TLB следующей командой.
17. Способ по п. 16, в котором текущая команда включает в себя информацию о следующей команде, и дополнительно содержащий этап, на котором используют информацию, включенную в текущую команду, чтобы определять, что текущая команда и следующая команда запрашивают доступ к одной и той же странице в пределах множества страниц.
18. Способ по п. 16, в котором действие по определению, что текущая команда и следующая команда запрашивают доступ к одной и той же странице в памяти, содержит этап, на котором формируют первый виртуальный адрес для текущей команды и второй виртуальный адрес для следующей команды, и сравнивают первый виртуальный адрес со вторым виртуальным адресом.
19. Способ по п. 18, в котором действие по сравнению первого виртуального адреса со вторым виртуальным адресом содержит этап, на котором определяют, преобразуются ли первый виртуальный адрес и второй виртуальный адрес в физические адреса, которые указывают одну и ту же страницу в пределах множества страниц.
20. Способ по п. 16, дополнительно содержащий этап, на котором используют для следующей команды информацию преобразования адреса, которая уже выдавалась TLB для текущей команды, после того, как определяют, что текущая команда и следующая команда запрашивают доступ к данным из одной и той же страницы в пределах множества страниц.
21. Процессор по п. 1, дополнительно содержащий память, сконфигурированную для хранения команд во множестве страниц.
22. Процессор по п. 1, в котором контроллер TLB дополнительно сконфигурирован для использования результата доступа к TLB предыдущей команды для текущей команды.
23. Процессор по п. 1, при этом процессор содержит множество уровней TLB.
RU2008103216/09A 2005-06-29 2006-06-27 Предотвращение множественных доступов к буферу быстрого преобразования адреса для одной и той же страницы в памяти RU2008103216A (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/174,097 US20070005933A1 (en) 2005-06-29 2005-06-29 Preventing multiple translation lookaside buffer accesses for a same page in memory
US11/174,097 2005-06-29

Publications (1)

Publication Number Publication Date
RU2008103216A true RU2008103216A (ru) 2009-08-10

Family

ID=37081590

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008103216/09A RU2008103216A (ru) 2005-06-29 2006-06-27 Предотвращение множественных доступов к буферу быстрого преобразования адреса для одной и той же страницы в памяти

Country Status (9)

Country Link
US (1) US20070005933A1 (ru)
EP (1) EP1899820A2 (ru)
JP (1) JP2008545199A (ru)
CN (1) CN101213526A (ru)
CA (1) CA2612838A1 (ru)
IL (1) IL188271A0 (ru)
RU (1) RU2008103216A (ru)
TW (1) TW200713034A (ru)
WO (1) WO2007002803A2 (ru)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621179B2 (en) * 2004-06-18 2013-12-31 Intel Corporation Method and system for partial evaluation of virtual address translations in a simulator
US8145874B2 (en) * 2008-02-26 2012-03-27 Qualcomm Incorporated System and method of data forwarding within an execution unit
US8285968B2 (en) 2009-09-29 2012-10-09 International Business Machines Corporation Performing memory accesses while omitting unnecessary address translations
US20110145542A1 (en) * 2009-12-15 2011-06-16 Qualcomm Incorporated Apparatuses, Systems, and Methods for Reducing Translation Lookaside Buffer (TLB) Lookups
JP5423871B2 (ja) * 2010-03-09 2014-02-19 富士通株式会社 情報処理装置、情報処理方法、およびプログラム
US9069690B2 (en) * 2012-09-13 2015-06-30 Intel Corporation Concurrent page table walker control for TLB miss handling
US9804969B2 (en) * 2012-12-20 2017-10-31 Qualcomm Incorporated Speculative addressing using a virtual address-to-physical address page crossing buffer
US9189398B2 (en) * 2012-12-28 2015-11-17 Intel Corporation Apparatus and method for memory-mapped register caching
CN105993005B (zh) * 2014-07-21 2019-06-04 上海兆芯集成电路有限公司 具有地址转译快取的处理器及其操作方法
US9875187B2 (en) * 2014-12-10 2018-01-23 Intel Corporation Interruption of a page miss handler
GB2544996B (en) * 2015-12-02 2017-12-06 Advanced Risc Mach Ltd An apparatus and method for managing bounded pointers
GB2557588B (en) * 2016-12-09 2019-11-13 Advanced Risc Mach Ltd Memory management
WO2018143423A1 (ja) * 2017-02-03 2018-08-09 株式会社東洋新薬 固形製剤

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781753A (en) * 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
DE69427734T2 (de) * 1993-10-29 2002-05-23 Advanced Micro Devices Inc Linearadressierter Mikroprozessorcachespeicher
US5706459A (en) * 1994-01-06 1998-01-06 Fujitsu Limited Processor having a variable number of stages in a pipeline
JP3512910B2 (ja) * 1995-07-06 2004-03-31 株式会社東芝 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法
US5617348A (en) * 1995-07-24 1997-04-01 Motorola Low power data translation circuit and method of operation
US5822788A (en) * 1996-12-20 1998-10-13 Intel Corporation Mechanism for prefetching targets of memory de-reference operations in a high-performance processor
US8121828B2 (en) * 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
US6735689B1 (en) * 2000-05-01 2004-05-11 Raza Microelectronics, Inc. Method and system for reducing taken branch penalty
US6678815B1 (en) * 2000-06-27 2004-01-13 Intel Corporation Apparatus and method for reducing power consumption due to cache and TLB accesses in a processor front-end
US7216202B1 (en) * 2003-02-25 2007-05-08 Sun Microsystems, Inc. Method and apparatus for supporting one or more servers on a single semiconductor chip
US20050050278A1 (en) * 2003-09-03 2005-03-03 Advanced Micro Devices, Inc. Low power way-predicted cache

Also Published As

Publication number Publication date
IL188271A0 (en) 2008-04-13
TW200713034A (en) 2007-04-01
CN101213526A (zh) 2008-07-02
CA2612838A1 (en) 2007-01-04
WO2007002803A3 (en) 2007-03-29
WO2007002803A2 (en) 2007-01-04
JP2008545199A (ja) 2008-12-11
US20070005933A1 (en) 2007-01-04
EP1899820A2 (en) 2008-03-19

Similar Documents

Publication Publication Date Title
RU2008103216A (ru) Предотвращение множественных доступов к буферу быстрого преобразования адреса для одной и той же страницы в памяти
JP5680179B2 (ja) 仮想化処理システムにおけるアドレスマッピング
JP6081672B2 (ja) 多数の異なるアドレス空間をサポートするプロセッサにおける効率的なアドレス変換キャッシング
TWI451334B (zh) 微處理器及縮短尋訪時間之方法
KR101694591B1 (ko) 보다 적은 비트들로 프로세서 콘텍스트를 나타내기 위한 방법 및 장치
US10146545B2 (en) Translation address cache for a microprocessor
KR20150066526A (ko) 이종 컴퓨팅 시스템에서 콜드 tlb 미스의 감축
KR101787851B1 (ko) 다중 페이지 크기 변환 색인 버퍼(tlb)용 장치 및 방법
US20040117588A1 (en) Access request for a data processing system having no system memory
WO2015161506A1 (zh) 一种寻址方法及装置
US20070094476A1 (en) Updating multiple levels of translation lookaside buffers (TLBs) field
JPH04320553A (ja) アドレス変換機構
JP2006048164A (ja) 情報処理装置およびソフトウェアプリフェッチ制御方法
KR20130036319A (ko) 변환 룩어사이드 버퍼를 관리하기 위한 시스템 및 방법
US20140189274A1 (en) Apparatus and method for page walk extension for enhanced security checks
US7017024B2 (en) Data processing system having no system memory
CN115774683A (zh) 用于超级用户模式中获取物理地址的方法及相应处理器
JP2001034537A (ja) アドレス変換回路
JP2007272280A (ja) データ処理装置
US7100018B2 (en) System and method for encoding page size information
US9229874B2 (en) Apparatus and method for compressing a memory address
WO2019177867A1 (en) Data structure with rotating bloom filters
CN110941565A (zh) 用于芯片存储访问的内存管理方法和装置
TW200931443A (en) Apparatus for predicting memory access and method thereof
JP2002312239A (ja) プロセッサ、システムオンチップ装置及びアクセス方法

Legal Events

Date Code Title Description
FA92 Acknowledgement of application withdrawn (lack of supplementary materials submitted)

Effective date: 20090719