RU2008134124A - Эффективное управление иерархией памяти - Google Patents

Эффективное управление иерархией памяти Download PDF

Info

Publication number
RU2008134124A
RU2008134124A RU2008134124/09A RU2008134124A RU2008134124A RU 2008134124 A RU2008134124 A RU 2008134124A RU 2008134124/09 A RU2008134124/09 A RU 2008134124/09A RU 2008134124 A RU2008134124 A RU 2008134124A RU 2008134124 A RU2008134124 A RU 2008134124A
Authority
RU
Russia
Prior art keywords
command
data
cache
data cache
address
Prior art date
Application number
RU2008134124/09A
Other languages
English (en)
Other versions
RU2397534C2 (ru
Inventor
Майкл Уилльям МОРРОУ (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 RU2008134124A publication Critical patent/RU2008134124A/ru
Application granted granted Critical
Publication of RU2397534C2 publication Critical patent/RU2397534C2/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
    • 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
    • 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
    • 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/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
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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

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)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)
  • Communication Control (AREA)
  • Automatic Assembly (AREA)

Abstract

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

Claims (20)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/336,282 US7552283B2 (en) 2006-01-20 2006-01-20 Efficient memory hierarchy management
US11/336,282 2006-01-20

Publications (2)

Publication Number Publication Date
RU2008134124A true RU2008134124A (ru) 2010-02-27
RU2397534C2 RU2397534C2 (ru) 2010-08-20

Family

ID=38058452

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008134124/09A RU2397534C2 (ru) 2006-01-20 2007-01-22 Эффективное управление иерархией памяти

Country Status (12)

Country Link
US (1) US7552283B2 (ru)
EP (1) EP1974256B1 (ru)
JP (1) JP5065298B2 (ru)
KR (1) KR100955101B1 (ru)
CN (2) CN102866879B (ru)
AT (1) ATE467174T1 (ru)
BR (1) BRPI0707149A2 (ru)
CA (1) CA2635116C (ru)
DE (1) DE602007006276D1 (ru)
ES (1) ES2345733T3 (ru)
RU (1) RU2397534C2 (ru)
WO (1) WO2007085011A2 (ru)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602005017832D1 (de) * 2004-11-22 2009-12-31 Honda Motor Co Ltd Vorrichtung zur Installation eines weichen Elements
JP4376173B2 (ja) * 2004-11-30 2009-12-02 本田技研工業株式会社 モール装着方法及びその装置
EP1950125B1 (en) * 2005-11-16 2009-07-15 HONDA MOTOR CO., Ltd. Method and device for mounting soft member
EP1953073B1 (en) * 2005-11-24 2011-06-22 Honda Motor Co., Ltd. Method and device for installing open seal
US7555605B2 (en) * 2006-09-28 2009-06-30 Freescale Semiconductor, Inc. Data processing system having cache memory debugging support and method therefor
KR100877611B1 (ko) * 2007-02-08 2009-01-09 삼성전자주식회사 플래시 메모리 내장 마이크로 컨트롤러 유닛 시스템 및상기 마이크로 컨트롤러 유닛의 플래시 메모리 접근 방법
US8255629B2 (en) * 2009-06-22 2012-08-28 Arm Limited Method and apparatus with data storage protocols for maintaining consistencies in parallel translation lookaside buffers
JP5903173B2 (ja) * 2012-02-22 2016-04-13 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. コンピュータ上のオペレーティングシステムからの論理プロセッサの隠蔽
WO2014142867A1 (en) 2013-03-14 2014-09-18 Intel Corporation Power efficient level one data cache access with pre-validated tags
CN105103121B (zh) 2013-03-28 2018-10-26 慧与发展有限责任合伙企业 刀片***以及刀片***的分区执行方法
WO2014158161A1 (en) 2013-03-28 2014-10-02 Hewlett-Packard Development Company, L.P. Error coordination message for a blade device having a logical processor in another system firmware domain
US9781015B2 (en) 2013-03-28 2017-10-03 Hewlett Packard Enterprise Development Lp Making memory of compute and expansion devices available for use by an operating system
US9824021B2 (en) 2014-03-31 2017-11-21 International Business Machines Corporation Address translation structures to provide separate translations for instruction fetches and data accesses
US9734083B2 (en) * 2014-03-31 2017-08-15 International Business Machines Corporation Separate memory address translations for instruction fetches and data accesses
US9715449B2 (en) 2014-03-31 2017-07-25 International Business Machines Corporation Hierarchical translation structures providing separate translations for instruction fetches and data accesses

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4719568A (en) * 1982-12-30 1988-01-12 International Business Machines Corporation Hierarchical memory system including separate cache memories for storing data and instructions
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
US5440707A (en) * 1992-04-29 1995-08-08 Sun Microsystems, Inc. Instruction and data cache with a shared TLB for split accesses and snooping in the same clock cycle
JPH06100982B2 (ja) * 1992-05-20 1994-12-12 工業技術院長 階層キャッシュ・メモリ装置
JPH086853A (ja) * 1994-06-22 1996-01-12 Hitachi Ltd 記憶制御方法
US5737749A (en) 1996-05-20 1998-04-07 International Business Machines Corporation Method and system for dynamically sharing cache capacity in a microprocessor
US6260114B1 (en) * 1997-12-30 2001-07-10 Mcmz Technology Innovations, Llc Computer cache memory windowing
US6480952B2 (en) * 1998-05-26 2002-11-12 Advanced Micro Devices, Inc. Emulation coprocessor
JP2002007212A (ja) * 2000-06-19 2002-01-11 Sony Corp キャッシュ・メモリ・システム及びキャッシュ・メモリ制御方法
US7873776B2 (en) * 2004-06-30 2011-01-18 Oracle America, Inc. Multiple-core processor with support for multiple virtual processors
GB2426082B (en) 2005-05-09 2007-08-15 Sony Comp Entertainment Europe Memory caching in data processing

Also Published As

Publication number Publication date
WO2007085011A3 (en) 2007-10-04
CN102866879A (zh) 2013-01-09
CA2635116A1 (en) 2007-07-26
ATE467174T1 (de) 2010-05-15
EP1974256A2 (en) 2008-10-01
CA2635116C (en) 2011-05-17
BRPI0707149A2 (pt) 2011-04-19
US7552283B2 (en) 2009-06-23
WO2007085011A2 (en) 2007-07-26
ES2345733T3 (es) 2010-09-30
KR20080091481A (ko) 2008-10-13
CN101371224B (zh) 2013-03-27
CN102866879B (zh) 2015-10-28
CN101371224A (zh) 2009-02-18
JP5065298B2 (ja) 2012-10-31
DE602007006276D1 (de) 2010-06-17
RU2397534C2 (ru) 2010-08-20
JP2009524168A (ja) 2009-06-25
EP1974256B1 (en) 2010-05-05
KR100955101B1 (ko) 2010-04-28
US20070174553A1 (en) 2007-07-26

Similar Documents

Publication Publication Date Title
RU2008134124A (ru) Эффективное управление иерархией памяти
US8291202B2 (en) Apparatus and methods for speculative interrupt vector prefetching
US7797494B2 (en) Arithmetic processor, information processing apparatus and memory access method in arithmetic processor
KR101019266B1 (ko) 물리적으로-태그된 동작을 사용하는 가상으로-태그된 명령 캐시
US8190652B2 (en) Achieving coherence between dynamically optimized code and original code
KR102613645B1 (ko) 캐시의 콘텐츠 트랙킹
KR101898322B1 (ko) 상이한 인덱싱 방식을 사용하는 1차 캐시와 오버플로 캐시를 갖는 캐시 시스템
US8296518B2 (en) Arithmetic processing apparatus and method
JP2011227880A (ja) プレロード命令制御
KR20080097573A (ko) 가상 메모리 접근 방법
US10241810B2 (en) Instruction-optimizing processor with branch-count table in hardware
JP6963572B2 (ja) 条件付きメモリアクセスプログラム命令のための許可制御
KR102478766B1 (ko) 디스크립터 링 관리
CN111159062B (zh) 一种缓存数据的调度方法、装置、cpu芯片及服务器
US7529889B2 (en) Data processing apparatus and method for performing a cache lookup in an energy efficient manner
CN108874690B (zh) 数据预取的实现方法和处理器
JP2011065503A (ja) キャッシュメモリシステム及びキャッシュメモリのway予測の制御方法
CN108874691B (zh) 数据预取方法和内存控制器
WO2007099582A1 (ja) プリフェッチ制御装置
JP3445873B2 (ja) データプリフェッチ方法およびそのための情報処理装置
CN111274166B (zh) Tlb的预填及锁定方法和装置
US20100077145A1 (en) Method and system for parallel execution of memory instructions in an in-order processor
Li et al. Low power optimization of instruction cache based on tag check reduction
Tao et al. Instruction Hints for Super Efficient Data Caches
KR20080000944A (ko) 파이프라인 구조를 갖는 프로세서 및 그 제어방법

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20200123