WO2015179591A1 - Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods - Google Patents

Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods Download PDF

Info

Publication number
WO2015179591A1
WO2015179591A1 PCT/US2015/031885 US2015031885W WO2015179591A1 WO 2015179591 A1 WO2015179591 A1 WO 2015179591A1 US 2015031885 W US2015031885 W US 2015031885W WO 2015179591 A1 WO2015179591 A1 WO 2015179591A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
cache
data
controller
compressed
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.)
Ceased
Application number
PCT/US2015/031885
Other languages
English (en)
French (fr)
Inventor
Mattheus Cornelis Antonius Adrianus HEDDES
Natarajan Vaidhyanathan
Colin Beaton Verrilli
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
Priority to EP15728287.2A priority Critical patent/EP3146435A1/en
Priority to CN201580026261.3A priority patent/CN106462495B/zh
Priority to JP2016568009A priority patent/JP2017516234A/ja
Publication of WO2015179591A1 publication Critical patent/WO2015179591A1/en
Anticipated expiration legal-status Critical
Ceased 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/04Addressing variable-length words or parts of words
    • 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/0877Cache access modes
    • G06F12/0886Variable-length word access
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy 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/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/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/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency 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/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch
    • 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
    • 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

Definitions

  • MEMORY CONTROLLERS EMPLOYING MEMORY CAPACITY AND/OR BANDWIDTH COMPRESSION WITH NEXT READ ADDRESS PREFETCHING, AND RELATED PROCESSOR-BASED SYSTEMS AND
  • FIG. 2 is a schematic diagram of a SOC that includes an exemplary CPU- based system having a plurality of CPUs and a memory controller employing memory capacity and/or memory bandwidth compression;
  • Figure 7 is a schematic diagram of an exemplary free list buffer that can be employed in a page-based or line-based buffer memory capacity compression scheme, including in Figures 4-6;
  • Figure 10 is a flowchart illustrating an exemplary process of the compressed memory controller in Figure 3 translating a PA to an allocated DB within an allocated data page (DP) in Figure 9 according to the hybrid line/page-based buffer memory capacity compression scheme in Figure 8 for a memory access;
  • Figure 11 A illustrates an example of the SOC in Figure 3 that additionally includes an optional L4 cache to compensate for performance loss due to address translation in the compressed memory controller;
  • aspects disclosed in the detailed description include memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods.
  • memory controllers are employed that can provide memory capacity compression.
  • a next read address prefetching scheme may be combined with a memory bandwidth compression scheme and/or a memory capacity compression scheme.
  • the next read address prefetching scheme can be used by a memory controller to speculatively prefetch data from system memory at another address beyond the currently accessed address.
  • the next read address to be prefetched from system or main memory can be stored as metadata in association with compressed memory data stored in compressed memory, since there may be left over space in a memory block that holds compressed memory data in the compressed memory.
  • the compressed controller 50 can perform any number of compression techniques and algorithms to provide memory capacity and/or bandwidth compression.
  • Local memory 52 is provided for data structures and other information needed by the compressed controller 50 to perform such compression techniques and algorithms.
  • the local memory 52 provided in the form of a static random access memory (SRAM) 54 in this example, is also provided in the compressed memory controller 36 to store data structures and other information needed by the compressed controller 50 to perform compression techniques and algorithms.
  • SRAM static random access memory
  • the local memory 52 is of sufficient size to be used for data structures and other data storage that may be needed for the compressed controller 50 to perform compression techniques and algorithms.
  • the additional internal memory 56 is external to the compressed memory controller 36, such as on a different semiconductor die for example, the memory access latency to the additional internal memory 56 may be greater than to the local memory 52, although an increased size of the additional internal memory 56 may allow for enhanced compression and/or a larger number of CPUs 16(1), 16(2) and/or hardware threads per CPU 16 to be accommodated.
  • Each of the resources provided for memory capacity and/or bandwidth compression in the compressed memory controller 36 in Figure 3, including the local memory 52 and the additional internal memory 56 can be used individually or in conjunction with each other to achieve the desired balance among resources and area, power consumption, increased memory capacity through memory capacity compression, and increased performance through memory bandwidth compression. Memory capacity and memory bandwidth compression can be enabled or disabled, as desired.
  • the compressed memory controller 36 can be configured to assign a PA to other PBAs in another PB pool 62(1)-62(Q). This functionality may be provided as part of a background task by the compressed memory controller 36. Depletion means that the available PBs in a particular PB pool 62(1)-62(Q) drops below a threshold, because it may be desired to assign a PA to other PBAs in another PB pool 62(1)-62(Q) before there are no remaining PBs available in a given PB pool 62(1)-62(Q).

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)
PCT/US2015/031885 2014-05-21 2015-05-21 Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods Ceased WO2015179591A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP15728287.2A EP3146435A1 (en) 2014-05-21 2015-05-21 Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods
CN201580026261.3A CN106462495B (zh) 2014-05-21 2015-05-21 存储器控制器以及基于处理器的系统和方法
JP2016568009A JP2017516234A (ja) 2014-05-21 2015-05-21 次の読取りアドレスプリフェッチングによるメモリ容量圧縮および/またはメモリ帯域幅圧縮を利用するメモリコントローラ、ならびに関連するプロセッサベースシステムおよび方法

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201462001545P 2014-05-21 2014-05-21
US62/001,545 2014-05-21
US201462092409P 2014-12-16 2014-12-16
US201462092326P 2014-12-16 2014-12-16
US62/092,409 2014-12-16
US62/092,326 2014-12-16
US14/716,108 US9740621B2 (en) 2014-05-21 2015-05-19 Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods
US14/716,108 2015-05-19

Publications (1)

Publication Number Publication Date
WO2015179591A1 true WO2015179591A1 (en) 2015-11-26

Family

ID=53373596

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/031885 Ceased WO2015179591A1 (en) 2014-05-21 2015-05-21 Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods

Country Status (5)

Country Link
US (1) US9740621B2 (enExample)
EP (1) EP3146435A1 (enExample)
JP (1) JP2017516234A (enExample)
CN (1) CN106462495B (enExample)
WO (1) WO2015179591A1 (enExample)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3185127A1 (en) * 2015-12-24 2017-06-28 Renesas Electronics Corporation Semiconductor device, data processing system, and semiconductor device control method
WO2018144184A1 (en) * 2017-01-31 2018-08-09 Qualcomm Incorporated Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur
WO2018208526A1 (en) * 2017-05-11 2018-11-15 Qualcomm Incorporated Reducing metadata size used for address mapping in compressed memory systems of processor-based systems
EP3903176A4 (en) * 2018-12-28 2022-11-09 Micron Technology, Inc. CALCULATOR TILE

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9740621B2 (en) * 2014-05-21 2017-08-22 Qualcomm Incorporated Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods
US10838862B2 (en) 2014-05-21 2020-11-17 Qualcomm Incorporated Memory controllers employing memory capacity compression, and related processor-based systems and methods
US10503661B2 (en) 2014-05-21 2019-12-10 Qualcomm Incorporated Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
US9652384B2 (en) * 2014-12-16 2017-05-16 Intel Corporation Apparatus, system and method for caching compressed data
US10191850B2 (en) 2016-03-31 2019-01-29 Qualcomm Incorporated Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system
US10067706B2 (en) 2016-03-31 2018-09-04 Qualcomm Incorporated Providing memory bandwidth compression using compression indicator (CI) hint directories in a central processing unit (CPU)-based system
US10176090B2 (en) * 2016-09-15 2019-01-08 Qualcomm Incorporated Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems
US10126979B2 (en) 2016-10-04 2018-11-13 Qualcomm Incorporated Bus encoding using metadata
WO2018165939A1 (en) * 2017-03-16 2018-09-20 Intel Corporation Flash data compression decompression method and apparatus
CN108268381B (zh) * 2017-12-15 2021-12-24 中国航空工业集团公司西安飞行自动控制研究所 一种安全实现数据快速寻址的方法
US11449428B2 (en) * 2018-06-19 2022-09-20 Western Digital Technologies, Inc. Enhanced read-ahead capability for storage devices
US11086534B2 (en) 2018-06-28 2021-08-10 Apple Inc. Memory data distribution based on communication channel utilization
US10664325B1 (en) * 2018-09-06 2020-05-26 Rockwell Collins, Inc. System for limiting shared resource access in multicore system-on-chip (SoC)
SE544272C2 (en) * 2018-11-14 2022-03-22 Zeropoint Tech Ab Accessing compressed computer memory
CN109857463B (zh) * 2019-01-30 2020-12-01 上海兆芯集成电路有限公司 加速压缩方法以及加速压缩装置
US11010059B2 (en) * 2019-07-30 2021-05-18 EMC IP Holding Company LLC Techniques for obtaining metadata and user data
TWI739227B (zh) * 2019-12-03 2021-09-11 智成電子股份有限公司 避免多餘記憶體存取的系統單晶片模組
US11422934B2 (en) 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US11409657B2 (en) 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking
US12147341B2 (en) 2020-08-06 2024-11-19 Alibaba Group Holding Limited Memory controller prioritizing writing compressed data
US11507516B2 (en) * 2020-08-19 2022-11-22 Micron Technology, Inc. Adaptive cache partitioning
CN114168495B (zh) * 2020-09-10 2025-09-23 桑迪士克科技股份有限公司 存储设备的增强的预读能力
CN114428764B (zh) * 2022-01-26 2024-04-02 重庆紫光华山智安科技有限公司 文件写入方法、系统、电子设备及可读存储介质
US12379841B2 (en) 2022-09-20 2025-08-05 Samsung Electronics Co., Ltd. Systems and methods for performing data compression in memory
US20250293704A1 (en) * 2024-03-14 2025-09-18 Qualcomm Incorporated Bandwidth Compressed Data Movement and Footprint Compression

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130138867A1 (en) * 2011-11-30 2013-05-30 International Business Machines Corporation Storing Multi-Stream Non-Linear Access Patterns in a Flash Based File-System

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2831602B2 (ja) 1995-01-13 1998-12-02 富士通株式会社 圧縮データ管理装置及び圧縮データ管理方法
US5696927A (en) 1995-12-21 1997-12-09 Advanced Micro Devices, Inc. Memory paging system and method including compressed page mapping hierarchy
JPH09259040A (ja) * 1996-03-25 1997-10-03 Sharp Corp キャッシュメモリ装置
US6353871B1 (en) 1999-02-22 2002-03-05 International Business Machines Corporation Directory cache for indirectly addressed main memory
US6523102B1 (en) 2000-04-14 2003-02-18 Interactive Silicon, Inc. Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules
US7047382B2 (en) 2000-11-29 2006-05-16 Quickshift, Inc. System and method for managing compression and decompression and decompression of system memory in a computer system
US6735673B2 (en) 2002-01-10 2004-05-11 Hewlett-Packard Development Company, L.P. Apparatus and methods for cache line compression
US6640283B2 (en) 2002-01-16 2003-10-28 Hewlett-Packard Development Company, L.P. Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size
US6944740B2 (en) 2002-03-27 2005-09-13 International Business Machines Corporation Method for performing compressed I/O with memory expansion technology
US6795897B2 (en) 2002-05-15 2004-09-21 International Business Machines Corporation Selective memory controller access path for directory caching
US6981119B1 (en) 2002-08-29 2005-12-27 Advanced Micro Devices, Inc. System and method for storing performance-enhancing data in memory space freed by data compression
US7512750B2 (en) 2003-12-31 2009-03-31 Intel Corporation Processor and memory controller capable of use in computing system that employs compressed cache lines' worth of information
US7225297B2 (en) * 2004-05-28 2007-05-29 International Business Machines Corporation Compressed cache lines incorporating embedded prefetch history data
US7636813B2 (en) 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US8122216B2 (en) 2006-09-06 2012-02-21 International Business Machines Corporation Systems and methods for masking latency of memory reorganization work in a compressed memory system
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US8595437B1 (en) 2008-11-21 2013-11-26 Nvidia Corporation Compression status bit cache with deterministic isochronous latency
TWI435215B (zh) * 2009-08-26 2014-04-21 Phison Electronics Corp 下達讀取指令與資料讀取方法、控制器與儲存系統
US8341380B2 (en) 2009-09-22 2012-12-25 Nvidia Corporation Efficient memory translator with variable size cache line coverage
US8539163B1 (en) 2010-12-17 2013-09-17 Amazon Technologies, Inc. Speculative reads
US10031850B2 (en) * 2011-06-07 2018-07-24 Sandisk Technologies Llc System and method to buffer data
WO2012168960A1 (en) 2011-06-07 2012-12-13 Hitachi, Ltd. Semiconductor storage apparatus and method of controlling semiconductor storage apparatus
KR101888074B1 (ko) 2012-01-09 2018-08-13 삼성전자주식회사 저장 장치 및 불휘발성 메모리 장치, 그리고 그것의 동작 방법
US8751830B2 (en) 2012-01-23 2014-06-10 International Business Machines Corporation Memory address translation-based data encryption/compression
US8830716B2 (en) 2012-09-29 2014-09-09 Intel Corporation Intelligent far memory bandwith scaling
CN104133780B (zh) * 2013-05-02 2017-04-05 华为技术有限公司 一种跨页预取方法、装置及系统
CN107608912B (zh) * 2013-08-20 2020-10-16 华为技术有限公司 内存物理地址查询方法和装置
US10503661B2 (en) 2014-05-21 2019-12-10 Qualcomm Incorporated Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
US10838862B2 (en) 2014-05-21 2020-11-17 Qualcomm Incorporated Memory controllers employing memory capacity compression, and related processor-based systems and methods
US9740621B2 (en) * 2014-05-21 2017-08-22 Qualcomm Incorporated Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods
US10372613B2 (en) * 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
KR20160104387A (ko) * 2015-02-26 2016-09-05 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP2017072981A (ja) * 2015-10-07 2017-04-13 富士通株式会社 情報処理装置、キャッシュ制御方法およびキャッシュ制御プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130138867A1 (en) * 2011-11-30 2013-05-30 International Business Machines Corporation Storing Multi-Stream Non-Linear Access Patterns in a Flash Based File-System

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3185127A1 (en) * 2015-12-24 2017-06-28 Renesas Electronics Corporation Semiconductor device, data processing system, and semiconductor device control method
JP2017117145A (ja) * 2015-12-24 2017-06-29 ルネサスエレクトロニクス株式会社 半導体装置、データ処理システム及び半導体装置の制御方法
US10229063B2 (en) 2015-12-24 2019-03-12 Renesas Electronics Corporation Semiconductor device, data processing system, and semiconductor device control method
WO2018144184A1 (en) * 2017-01-31 2018-08-09 Qualcomm Incorporated Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur
US10061698B2 (en) 2017-01-31 2018-08-28 Qualcomm Incorporated Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur
CN110235110A (zh) * 2017-01-31 2019-09-13 高通股份有限公司 当停顿的写入操作发生时减少或避免来自压缩存储器系统中的未压缩高速缓冲存储器的经逐出高速缓冲存储数据的缓冲
WO2018208526A1 (en) * 2017-05-11 2018-11-15 Qualcomm Incorporated Reducing metadata size used for address mapping in compressed memory systems of processor-based systems
US10169246B2 (en) 2017-05-11 2019-01-01 Qualcomm Incorporated Reducing metadata size in compressed memory systems of processor-based systems
EP3903176A4 (en) * 2018-12-28 2022-11-09 Micron Technology, Inc. CALCULATOR TILE

Also Published As

Publication number Publication date
US20150339237A1 (en) 2015-11-26
US9740621B2 (en) 2017-08-22
JP2017516234A (ja) 2017-06-15
CN106462495A (zh) 2017-02-22
CN106462495B (zh) 2019-06-04
EP3146435A1 (en) 2017-03-29

Similar Documents

Publication Publication Date Title
US9740621B2 (en) Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods
US10838862B2 (en) Memory controllers employing memory capacity compression, and related processor-based systems and methods
EP3146434B1 (en) Providing memory bandwidth compression using compressed memory controllers in a central processing unit (cpu)-based system
EP3722959A1 (en) Scalable application-customized memory compression
USRE43483E1 (en) System and method for managing compression and decompression of system memory in a computer system
CN108885585B (zh) 在基于中央处理单元(cpu)的系统中使用多个末级高速缓冲存储器(llc)线提供存储器带宽压缩
US11803482B2 (en) Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system
US20160224241A1 (en) PROVIDING MEMORY BANDWIDTH COMPRESSION USING BACK-TO-BACK READ OPERATIONS BY COMPRESSED MEMORY CONTROLLERS (CMCs) IN A CENTRAL PROCESSING UNIT (CPU)-BASED SYSTEM
US20180173623A1 (en) Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compressed memory system to avoid stalling write operations
US10198362B2 (en) Reducing bandwidth consumption when performing free memory list cache maintenance in compressed memory schemes of processor-based systems
US9507729B2 (en) Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor
WO2018052653A1 (en) Providing memory bandwidth compression using adaptive compression in central processing unit (cpu)-based systems
US9934150B1 (en) Data caching circuit and method
US20050071566A1 (en) Mechanism to increase data compression in a cache
US10067706B2 (en) Providing memory bandwidth compression using compression indicator (CI) hint directories in a central processing unit (CPU)-based system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15728287

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
REEP Request for entry into the european phase

Ref document number: 2015728287

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015728287

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2016568009

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE