KR102219845B1 - 어드레스를 압축하기 위한 방법 및 장치 - Google Patents
어드레스를 압축하기 위한 방법 및 장치 Download PDFInfo
- 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
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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/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/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- 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
-
- 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/0817—Cache consistency protocols using directory methods
-
- 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/0864—Addressing 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
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- 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/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- 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/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- 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
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)
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)
| 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)
| 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)
| 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 |
-
2016
- 2016-11-08 US US15/345,639 patent/US10042576B2/en active Active
-
2017
- 2017-08-04 JP JP2019508974A patent/JP6768928B2/ja active Active
- 2017-08-04 EP EP17841858.8A patent/EP3500935A4/en not_active Ceased
- 2017-08-04 KR KR1020197005418A patent/KR102219845B1/ko active Active
- 2017-08-04 CN CN201780048506.1A patent/CN109564545B/zh active Active
- 2017-08-04 EP EP23158871.6A patent/EP4220415A3/en active Pending
- 2017-08-04 WO PCT/US2017/045639 patent/WO2018034875A1/en not_active Ceased
Patent Citations (9)
| 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 |