KR102219845B1 - 어드레스를 압축하기 위한 방법 및 장치 - Google Patents

어드레스를 압축하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR102219845B1
KR102219845B1 KR1020197005418A KR20197005418A KR102219845B1 KR 102219845 B1 KR102219845 B1 KR 102219845B1 KR 1020197005418 A KR1020197005418 A KR 1020197005418A KR 20197005418 A KR20197005418 A KR 20197005418A KR 102219845 B1 KR102219845 B1 KR 102219845B1
Authority
KR
South Korea
Prior art keywords
memory address
cache
stored
tag
address
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
KR1020197005418A
Other languages
English (en)
Korean (ko)
Other versions
KR20190032527A (ko
Inventor
비드히아나탄 칼야나순드하람
그레고리 디. 돈레이
Original Assignee
어드밴스드 마이크로 디바이시즈, 인코포레이티드
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 어드밴스드 마이크로 디바이시즈, 인코포레이티드 filed Critical 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20190032527A publication Critical patent/KR20190032527A/ko
Application granted granted Critical
Publication of KR102219845B1 publication Critical patent/KR102219845B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/0815Cache consistency protocols
    • 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/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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
    • 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/60Details of cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
KR1020197005418A 2016-08-17 2017-08-04 어드레스를 압축하기 위한 방법 및 장치 Active KR102219845B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662376096P 2016-08-17 2016-08-17
US62/376,096 2016-08-17
US15/345,639 2016-11-08
US15/345,639 US10042576B2 (en) 2016-08-17 2016-11-08 Method and apparatus for compressing addresses
PCT/US2017/045639 WO2018034875A1 (en) 2016-08-17 2017-08-04 Method and apparatus for compressing addresses

Publications (2)

Publication Number Publication Date
KR20190032527A KR20190032527A (ko) 2019-03-27
KR102219845B1 true KR102219845B1 (ko) 2021-02-24

Family

ID=61191652

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197005418A Active KR102219845B1 (ko) 2016-08-17 2017-08-04 어드레스를 압축하기 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US10042576B2 (enExample)
EP (2) EP3500935A4 (enExample)
JP (1) JP6768928B2 (enExample)
KR (1) KR102219845B1 (enExample)
CN (1) CN109564545B (enExample)
WO (1) WO2018034875A1 (enExample)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10031834B2 (en) 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10042737B2 (en) 2016-08-31 2018-08-07 Microsoft Technology Licensing, Llc Program tracing for time travel debugging and analysis
US10489273B2 (en) 2016-10-20 2019-11-26 Microsoft Technology Licensing, Llc Reuse of a related thread's cache while recording a trace file of code execution
US10310977B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using a processor cache
US10310963B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using index bits in a processor cache
US10540250B2 (en) * 2016-11-11 2020-01-21 Microsoft Technology Licensing, Llc Reducing storage requirements for storing memory addresses and values
US10318332B2 (en) 2017-04-01 2019-06-11 Microsoft Technology Licensing, Llc Virtual machine execution tracing
CN109240944B (zh) * 2018-08-16 2021-02-19 上海天数智芯半导体有限公司 一种基于可变长缓存行的数据读写方法
US11831565B2 (en) * 2018-10-03 2023-11-28 Advanced Micro Devices, Inc. Method for maintaining cache consistency during reordering
US20210026686A1 (en) * 2019-07-22 2021-01-28 Advanced Micro Devices, Inc. Chiplet-integrated machine learning accelerators
CN111126589B (zh) * 2019-12-31 2022-05-20 昆仑芯(北京)科技有限公司 神经网络数据处理装置、方法和电子设备
KR102494444B1 (ko) * 2020-11-17 2023-02-06 성균관대학교산학협력단 어드레스 압축 방법 및 장치
JP2023079640A (ja) * 2021-11-29 2023-06-08 富士通株式会社 演算処理装置および演算処理方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644753A (en) 1995-03-31 1997-07-01 Sun Microsystems, Inc. Fast, dual ported cache controller for data processors in a packet switched cache coherent multiprocessor system
US6449689B1 (en) 1999-08-31 2002-09-10 International Business Machines Corporation System and method for efficiently storing compressed data on a hard disk drive
US6477613B1 (en) 1999-06-30 2002-11-05 International Business Machines Corporation Cache index based system address bus
US20030217237A1 (en) 2002-05-15 2003-11-20 Internation Business Machines Corporation Selective memory controller access path for directory caching
US20050144388A1 (en) 2003-12-31 2005-06-30 Newburn Chris J. Processor and memory controller capable of use in computing system that employs compressed cache lines' worth of information
WO2009006113A2 (en) 2007-06-29 2009-01-08 Intel Corporation Hierarchical cache tag architecture
US20130262538A1 (en) 2012-03-30 2013-10-03 Samplify Systems, Inc. Data compression for direct memory access transfers
US20150278096A1 (en) 2014-03-27 2015-10-01 Dyer Rolan Method, apparatus and system to cache sets of tags of an off-die cache memory
US20150363314A1 (en) 2007-03-15 2015-12-17 Taiwan Semiconductor Manufacturing Company, Ltd. System and Method for Concurrently Checking Availability of Data in Extending Memories

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3413344B2 (ja) * 1997-05-16 2003-06-03 シャープ株式会社 画像演算処理装置およびその動作方法
US7096323B1 (en) * 2002-09-27 2006-08-22 Advanced Micro Devices, Inc. Computer system with processor cache that stores remote cache presence information
US7143238B2 (en) * 2003-09-30 2006-11-28 Intel Corporation Mechanism to compress data in a cache

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644753A (en) 1995-03-31 1997-07-01 Sun Microsystems, Inc. Fast, dual ported cache controller for data processors in a packet switched cache coherent multiprocessor system
US6477613B1 (en) 1999-06-30 2002-11-05 International Business Machines Corporation Cache index based system address bus
US6449689B1 (en) 1999-08-31 2002-09-10 International Business Machines Corporation System and method for efficiently storing compressed data on a hard disk drive
US20030217237A1 (en) 2002-05-15 2003-11-20 Internation Business Machines Corporation Selective memory controller access path for directory caching
US20050144388A1 (en) 2003-12-31 2005-06-30 Newburn Chris J. Processor and memory controller capable of use in computing system that employs compressed cache lines' worth of information
US20150363314A1 (en) 2007-03-15 2015-12-17 Taiwan Semiconductor Manufacturing Company, Ltd. System and Method for Concurrently Checking Availability of Data in Extending Memories
WO2009006113A2 (en) 2007-06-29 2009-01-08 Intel Corporation Hierarchical cache tag architecture
US20130262538A1 (en) 2012-03-30 2013-10-03 Samplify Systems, Inc. Data compression for direct memory access transfers
US20150278096A1 (en) 2014-03-27 2015-10-01 Dyer Rolan Method, apparatus and system to cache sets of tags of an off-die cache memory

Also Published As

Publication number Publication date
CN109564545B (zh) 2021-02-02
EP3500935A4 (en) 2020-04-08
KR20190032527A (ko) 2019-03-27
JP6768928B2 (ja) 2020-10-14
US20180052631A1 (en) 2018-02-22
WO2018034875A1 (en) 2018-02-22
US10042576B2 (en) 2018-08-07
CN109564545A (zh) 2019-04-02
JP2019525354A (ja) 2019-09-05
EP4220415A2 (en) 2023-08-02
EP4220415A3 (en) 2023-09-06
EP3500935A1 (en) 2019-06-26

Similar Documents

Publication Publication Date Title
KR102219845B1 (ko) 어드레스를 압축하기 위한 방법 및 장치
US10198215B2 (en) System and method for multi-stream data write
EP2732374B1 (en) Mobile memory cache read optimization
KR102147356B1 (ko) 캐시 메모리 시스템 및 그 동작방법
US20150143045A1 (en) Cache control apparatus and method
TWI744289B (zh) 使用多個最後階層快取線提供記憶體帶寬壓縮之以一中央處理單元(cpu)為基礎之系統及方法
KR102780546B1 (ko) 프로세서―기반 시스템의 메모리 내의 압축된 메모리 라인들의 우선순위―기반 액세스
JP2021111315A (ja) ニューラルネットワークデータ処理装置、方法および電子機器
CN106575260A (zh) 采用数据压缩的高速缓存技术
KR20190033284A (ko) PCIe P2P 접속된 스토리지 장치들 사이의 데이터 전송 방법 및 시스템
US11010056B2 (en) Data operating method, device, and system
CN106030549A (zh) 用于对晶片外高速缓存存储器的标签集高速缓存的方法、装置和系统
WO2015180598A1 (zh) 对存储设备的访问信息处理方法和装置、系统
KR20180048938A (ko) 하드웨어-가속화된 스토리지 압축
TW201814518A (zh) 使用在以一中央處理器單元為基礎的系統中之適應性壓縮提供記憶體頻寬壓縮
US20230409332A1 (en) Devices transferring cache lines, including metadata on external links
EP4428699A1 (en) Memory device and method for scheduling block request
US10719440B2 (en) Semiconductor device and memory access method
US20190087351A1 (en) Transaction dispatcher for memory management unit
WO2014059781A1 (zh) 一种地址压缩、解压缩的方法、压缩器和解压缩器
US9299126B2 (en) Image processing apparatus and a method of storing encoded data blocks generated by such an image processing apparatus
US9298673B2 (en) Electronic device and information processing method
US20180129603A1 (en) Electronic device and method for accessing memory
CN114610661A (zh) 数据处理装置、方法和电子设备
CN116643999A (zh) 一种l2p加速器

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20190222

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20200731

Comment text: Request for Examination of Application

PA0302 Request for accelerated examination

Patent event date: 20200731

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20201120

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20210218

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20210219

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20250211

Start annual number: 5

End annual number: 5