JP6960933B2 - 実行許可に基づくキャッシュのライトアロケーション(Write−Allocation) - Google Patents
実行許可に基づくキャッシュのライトアロケーション(Write−Allocation) Download PDFInfo
- Publication number
- JP6960933B2 JP6960933B2 JP2018545297A JP2018545297A JP6960933B2 JP 6960933 B2 JP6960933 B2 JP 6960933B2 JP 2018545297 A JP2018545297 A JP 2018545297A JP 2018545297 A JP2018545297 A JP 2018545297A JP 6960933 B2 JP6960933 B2 JP 6960933B2
- Authority
- JP
- Japan
- Prior art keywords
- write
- cache
- write address
- address
- execute
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing 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
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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/12—Replacement control
-
- 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/60—Details of cache memory
- G06F2212/604—Details relating to cache allocation
-
- 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/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
- G06F2212/6046—Using a specific cache allocation policy other than replacement policy
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- 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/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB 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)
- Storage Device Security (AREA)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/057,121 US20170255569A1 (en) | 2016-03-01 | 2016-03-01 | Write-allocation for a cache based on execute permissions |
| US15/057,121 | 2016-03-01 | ||
| PCT/US2017/016971 WO2017151280A1 (en) | 2016-03-01 | 2017-02-08 | Write-allocation for a cache based on execute permissions |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2019511045A JP2019511045A (ja) | 2019-04-18 |
| JP2019511045A5 JP2019511045A5 (enExample) | 2020-03-05 |
| JP6960933B2 true JP6960933B2 (ja) | 2021-11-05 |
Family
ID=58018350
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2018545297A Active JP6960933B2 (ja) | 2016-03-01 | 2017-02-08 | 実行許可に基づくキャッシュのライトアロケーション(Write−Allocation) |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US20170255569A1 (enExample) |
| EP (1) | EP3423946B1 (enExample) |
| JP (1) | JP6960933B2 (enExample) |
| KR (1) | KR102846691B1 (enExample) |
| CN (1) | CN108604210B (enExample) |
| ES (1) | ES2903162T3 (enExample) |
| SG (1) | SG11201806067SA (enExample) |
| TW (1) | TW201734807A (enExample) |
| WO (1) | WO2017151280A1 (enExample) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10114768B2 (en) * | 2016-08-29 | 2018-10-30 | Intel Corporation | Enhance memory access permission based on per-page current privilege level |
| US10713177B2 (en) | 2016-09-09 | 2020-07-14 | Intel Corporation | Defining virtualized page attributes based on guest page attributes |
| US11010309B2 (en) * | 2018-05-18 | 2021-05-18 | Intel Corporation | Computer system and method for executing one or more software applications, host computer device and method for a host computer device, memory device and method for a memory device and non-transitory computer readable medium |
| CN111124267B (zh) * | 2018-10-31 | 2023-10-31 | 伊姆西Ip控股有限责任公司 | 数据写入的方法、设备和计算机程序产品 |
| US11360905B2 (en) * | 2019-05-24 | 2022-06-14 | Texas Instmments Incorporated | Write merging on stores with different privilege levels |
| CN112559389B (zh) * | 2019-09-25 | 2025-02-25 | 阿里巴巴集团控股有限公司 | 存储控制装置、处理装置、计算机系统和存储控制方法 |
| WO2021103020A1 (zh) * | 2019-11-29 | 2021-06-03 | 华为技术有限公司 | 缓存存储器和分配写操作的方法 |
| CN111831587A (zh) * | 2020-04-17 | 2020-10-27 | 北京奕斯伟计算技术有限公司 | 数据写入方法、装置和电子设备 |
| US20220194366A1 (en) * | 2020-12-22 | 2022-06-23 | Mobileye Vision Technologies Ltd. | Access control mechanism in cache coherent integrated circuit |
| US12093181B2 (en) * | 2022-06-28 | 2024-09-17 | Advanced Micro Devices, Inc. | Allocation control for cache |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5606687A (en) * | 1993-10-07 | 1997-02-25 | Sun Microsystems, Inc. | Method and apparatus for optimizing supervisor mode store operations in a data cache |
| EP0651332B1 (en) * | 1993-10-29 | 2001-07-18 | Advanced Micro Devices, Inc. | Linearly addressable microprocessor cache |
| US6119151A (en) * | 1994-03-07 | 2000-09-12 | International Business Machines Corp. | System and method for efficient cache management in a distributed file system |
| US6263407B1 (en) * | 1998-02-17 | 2001-07-17 | International Business Machines Corporation | Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode |
| EP0989496B1 (en) * | 1998-09-01 | 2005-04-27 | Texas Instruments Incorporated | Improved memory hierarchy for processors and coherence protocol therefor |
| US6412043B1 (en) * | 1999-10-01 | 2002-06-25 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
| JP2003044358A (ja) * | 2001-07-31 | 2003-02-14 | Mitsubishi Electric Corp | キャッシュメモリ制御装置 |
| EP1304620A1 (en) * | 2001-10-17 | 2003-04-23 | Texas Instruments Incorporated | Cache with selective write allocation |
| US6990502B2 (en) * | 2003-02-26 | 2006-01-24 | Microsoft Corporation | Reviewing cached user-group information in connection with issuing a digital rights management (DRM) license for content |
| US7437510B2 (en) * | 2005-09-30 | 2008-10-14 | Intel Corporation | Instruction-assisted cache management for efficient use of cache and memory |
| US20070079070A1 (en) * | 2005-09-30 | 2007-04-05 | Arm Limited | Cache controller |
| US7805588B2 (en) * | 2005-10-20 | 2010-09-28 | Qualcomm Incorporated | Caching memory attribute indicators with cached memory data field |
| US8606998B2 (en) * | 2006-08-24 | 2013-12-10 | Advanced Micro Devices, Inc. | System and method for instruction-based cache allocation policies |
| US7949834B2 (en) * | 2007-01-24 | 2011-05-24 | Qualcomm Incorporated | Method and apparatus for setting cache policies in a processor |
| US8275971B2 (en) * | 2008-08-27 | 2012-09-25 | International Business Machines Corporation | Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities |
| US8621184B1 (en) * | 2008-10-31 | 2013-12-31 | Netapp, Inc. | Effective scheduling of producer-consumer processes in a multi-processor system |
| US8621149B2 (en) * | 2009-12-23 | 2013-12-31 | Intel Corporation | Controlling access to a cache memory using privilege level information |
| US8504777B2 (en) * | 2010-09-21 | 2013-08-06 | Freescale Semiconductor, Inc. | Data processor for processing decorated instructions with cache bypass |
| US20130179642A1 (en) * | 2012-01-10 | 2013-07-11 | Qualcomm Incorporated | Non-Allocating Memory Access with Physical Address |
| US9158685B2 (en) * | 2012-09-11 | 2015-10-13 | Apple Inc. | System cache with cache hint control |
| US8819342B2 (en) * | 2012-09-26 | 2014-08-26 | Qualcomm Incorporated | Methods and apparatus for managing page crossing instructions with different cacheability |
| GB2526849B (en) * | 2014-06-05 | 2021-04-14 | Advanced Risc Mach Ltd | Dynamic cache allocation policy adaptation in a data processing apparatus |
| US9335943B2 (en) * | 2014-06-30 | 2016-05-10 | Intel Corporation | Method and apparatus for fine grain memory protection |
| US9767040B2 (en) * | 2015-08-31 | 2017-09-19 | Salesforce.Com, Inc. | System and method for generating and storing real-time analytics metric data using an in memory buffer service consumer framework |
-
2016
- 2016-03-01 US US15/057,121 patent/US20170255569A1/en not_active Abandoned
-
2017
- 2017-02-08 KR KR1020187024970A patent/KR102846691B1/ko active Active
- 2017-02-08 JP JP2018545297A patent/JP6960933B2/ja active Active
- 2017-02-08 EP EP17705003.6A patent/EP3423946B1/en active Active
- 2017-02-08 SG SG11201806067SA patent/SG11201806067SA/en unknown
- 2017-02-08 WO PCT/US2017/016971 patent/WO2017151280A1/en not_active Ceased
- 2017-02-08 ES ES17705003T patent/ES2903162T3/es active Active
- 2017-02-08 CN CN201780010875.1A patent/CN108604210B/zh active Active
- 2017-02-24 TW TW106106528A patent/TW201734807A/zh unknown
Also Published As
| Publication number | Publication date |
|---|---|
| EP3423946B1 (en) | 2021-12-15 |
| WO2017151280A1 (en) | 2017-09-08 |
| JP2019511045A (ja) | 2019-04-18 |
| TW201734807A (zh) | 2017-10-01 |
| CN108604210B (zh) | 2022-08-19 |
| EP3423946A1 (en) | 2019-01-09 |
| BR112018067341A2 (pt) | 2019-01-08 |
| KR20180117629A (ko) | 2018-10-29 |
| KR102846691B1 (ko) | 2025-08-13 |
| SG11201806067SA (en) | 2018-09-27 |
| US20170255569A1 (en) | 2017-09-07 |
| HK1254828A1 (zh) | 2019-07-26 |
| CN108604210A (zh) | 2018-09-28 |
| ES2903162T3 (es) | 2022-03-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6960933B2 (ja) | 実行許可に基づくキャッシュのライトアロケーション(Write−Allocation) | |
| JP6133896B2 (ja) | 物理アドレスを用いる非割当てメモリアクセス | |
| US8250332B2 (en) | Partitioned replacement for cache memory | |
| US10474584B2 (en) | Storing cache metadata separately from integrated circuit containing cache controller | |
| US7284112B2 (en) | Multiple page size address translation incorporating page size prediction | |
| KR102448124B1 (ko) | 가상 주소들을 사용하여 액세스된 캐시 | |
| KR101483849B1 (ko) | 계층적으로 캐싱되는 프로세서들에서의 조정된 프리페칭 | |
| US9218286B2 (en) | System cache with partial write valid states | |
| US9158685B2 (en) | System cache with cache hint control | |
| US20130254491A1 (en) | Controlling a processor cache using a real-time attribute | |
| US11604733B1 (en) | Limiting allocation of ways in a cache based on cache maximum associativity value | |
| US20140089600A1 (en) | System cache with data pending state | |
| US8856453B2 (en) | Persistent prefetch data stream settings | |
| IL280089B2 (en) | Binary search procedure for control table stored in memory system | |
| US10489306B2 (en) | Apparatus and method for processing data, including cache entry replacement performed based upon content data read from candidates selected using victim selection | |
| US9311251B2 (en) | System cache with sticky allocation | |
| US8886886B2 (en) | System cache with sticky removal engine | |
| KR20100022483A (ko) | 마이크로코드 에뮬레이션 메모리의 캐싱 | |
| HK1254828B (en) | Write-allocation for a cache based on execute permissions | |
| US11232034B2 (en) | Method to enable the prevention of cache thrashing on memory management unit (MMU)-less hypervisor systems | |
| BR112018067341B1 (pt) | Método para gerenciar um cache unificado configurado para armazenar dados e instruções, equipamento e memória legível por computador | |
| CN118020056A (zh) | 将一个高速缓存中的请求类别和重用记录用于另一个高速缓存的插入策略 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180904 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200124 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200124 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201216 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210208 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20210510 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210610 |
|
| 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: 20210913 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211012 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6960933 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |