CN108062279A - 用于处理数据的方法和设备 - Google Patents

用于处理数据的方法和设备 Download PDF

Info

Publication number
CN108062279A
CN108062279A CN201711084768.1A CN201711084768A CN108062279A CN 108062279 A CN108062279 A CN 108062279A CN 201711084768 A CN201711084768 A CN 201711084768A CN 108062279 A CN108062279 A CN 108062279A
Authority
CN
China
Prior art keywords
data
write
cache set
cache
memory
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.)
Granted
Application number
CN201711084768.1A
Other languages
English (en)
Other versions
CN108062279B (zh
Inventor
刘东勋
金南亨
安准焕
崔起荣
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.)
Samsung Electronics Co Ltd
Seoul National University Industry Foundation
Original Assignee
Samsung Electronics Co Ltd
Seoul National University Industry Foundation
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
Priority claimed from KR1020170003050A external-priority patent/KR20180051326A/ko
Application filed by Samsung Electronics Co Ltd, Seoul National University Industry Foundation filed Critical Samsung Electronics Co Ltd
Publication of CN108062279A publication Critical patent/CN108062279A/zh
Application granted granted Critical
Publication of CN108062279B publication Critical patent/CN108062279B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F2212/455Image or video data
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种处理数据的方法,包括接收要被存储在来自与多个核心相对应的多个高速缓存组当中的第一群高速缓存组中的数据。该方法还包括,根据所接收的数据的写入强度来分割所接收的数据并发送所分割的数据到第一群高速缓存组,以及将所发送的数据的部分存储在来自第一群高速缓存组当中的第一高速缓存组中。

Description

用于处理数据的方法和设备
相关申请的交叉引用
本申请要求于2016年11月7日在美国专利及商标局提交的美国专利第62/418,551号以及于2017年1月9日在韩国知识产权局提交的韩国专利申请第10-2017-0003050号的优先权,其全部内容通过引用并入文本。
技术领域
本发明构思涉及一种用于处理数据的方法和设备。
背景技术
提高系统核心的时钟频率的方法已经被用来改进计算机或计算系统的性能。然而,一旦核心的时钟频率提高,系统核心的功耗和来自系统核心的热量辐射也增加。由于先前提到的效果,通过提高核心的时钟频率来改进计算机或计算系统的性能的努力最近已经衰退。因此,增加核心的数量的方法正被用来改进计算系统或计算机的性能。
然而,因为所使用的高速缓存的特性,通过使用多个核心来处理数据的方法可能不会被最佳地执行。通常,术语“高速缓存”是指安装在中央处理器(central processingunit,CPU)芯片中或周围来加快对具有大容量的主存储器的访问的相对小的存储器。由于CPU的处理速度趋向于比访问存储器的速度更快地增加,具有相对小容量和高速的高速缓存直接地影响处理器的性能。
发明内容
根据本发明构思的示范性实施例,处理数据的方法包括:接收要被存储来自从与多个核心相对应的多个高速缓存组当中的第一群高速缓存组(a first group of cachebanks)中的数据。该方法还包括,根据所接收的数据的写入强度来分割(partition)所接收的数据并发送所分割的数据到第一群高速缓存组,以及将所发送的数据的部分存储在来自第一群高速缓存组当中的第一高速缓存组中。
根据本发明构思的示范性实施例,用于处理数据的设备包括,被配置为接收要被存储在来自与多个核心相对应的多个高速缓存组当中的第一群高速缓存组中的数据的接收器。该设备还包括,被配置为根据所接收的数据的写入强度来分割所接收的数据并发送所分割的数据到第一群高速缓存组的处理器。该设备额外地包括,被配置为存储所发送的数据的部分的第一高速缓存组,其中第一高速缓存组来自第一群高速缓存组当中。
根据本发明构思的示范性实施例,非瞬时性计算机可读记录介质具有具体实现在其上的用于执行该方法的程序。
根据本发明构思的示范性实施例,处理数据的方法包括,通过使用接收器来接收数据、划分所接收的数据、以及发送所划分的数据到多个高速缓存组的第一群高速缓存组。该方法还包括,基于所发送的数据的部分的写入强度,将所发送的数据的部分存储在包括在第一群高速缓存组的第一高速缓存组中的多个存储器的一个存储器中。
附图说明
通过参考附图详细描述本发明构思的示范性实施例,本发明构思的以上和其它特征将变得更加显而易见,其中:
图1是根据本发明构思的示范性实施例的设备的框图;
图2是根据本发明构思的示范性实施例的在其中操作多个核心的计算环境中的设备的操作的框图;
图3是根据本发明构思的示范性实施例的在其中设备将数据存储在包括多个存储器的高速缓存组中的情况的示图;
图4是根据本发明构思的示范性实施例的在其中设备通过使用指针来处理数据的情况的示图;
图5是根据本发明构思的示范性实施例的在其中设备分割数据并将数据存储在多个高速缓存组中的情况的示图;
图6是根据本发明构思的示范性实施例的在其中设备在操作多个核心的计算环境中发送数据并存储数据的情况的流程图;
图7是根据本发明构思的示范性实施例的在其中设备根据高速缓存访问请求来输出数据的情况的流程图;
图8是根据本发明构思的示范性实施例的在其中设备将所获得的数据存储在来自多个存储器当中的、根据所获得的数据的写入强度确定的存储器中的情况的流程图。
图9是根据本发明构思的示范性实施例的在其中操作多个瓦片(tile)的计算环境中的设备的操作的框图;以及
图10是根据本发明构思的示范性实施例的在其中设备通过预测或监测写入强度来处理数据的情况的框图。
具体实施方式
本发明构思的示范性实施例将参考附图在下文中更加充分地描述。然而,本发明构思可以以多种不同的形式被具体实现,并且不应该被解释为限制于本文所阐述的示范性实施例。
将理解的是,虽然术语“第一”、“第二”等可能在本文中被用来描述各种组件和/或元件,但是这些组件和/或元件不应该被这些术语所限制。这些术语仅被用来将一个组件或元件与另一组件或元件区分。
本发明构思的示范性实施例涉及渲染方法和设备。
图1是根据本发明构思的示范性实施例的设备100的框图。本领域普通技术人员将理解,除了图1中所示的元件以外的元件可以被进一步包括在设备100中。
参考图1,设备100可以包括接收器110、处理器120和第一高速缓存组131。
当通过使用多个核心来处理数据时,设备100可以与来自多个核心当中的一个核心相对应。例如,来自多个核心当中的一个核心和设备100可以被包括在一个瓦片中。根据本发明构思的示范性实施例的术语“瓦片”可以指包括核心和高速缓存组的数据处理单元。当高速缓存被分布在多个位置时,根据本发明构思的示范性实施例的术语“瓦片”可以指所分布的高速缓存的每个部分。根据本发明构思的示范性实施例的术语“分布的高速缓存方法”可以指在多个位置分布高速缓存的方法。
接收器110可以从设备100的外部(例如,外部设备)接收数据。例如,根据本发明构思的示范性实施例的接收器110可以接收要被存储在来自与多个核心相对应的多个高速缓存组当中的一些高速缓存组(例如,第一群高速缓存组)中的数据。
根据本发明构思的示范性实施例的第一高速缓存组131,可以是来自与多个核心相对应的多个高速缓存组当中的一个高速缓存组。根据本发明构思的示范性实施例的第一高速缓存组131,可以从接收器110获得数据并且可以将数据存储在其中。例如,接收器110可以发送数据到第一高速缓存组131,并且第一高速缓存组131可以存储所发送的数据。根据本发明构思的示范性实施例的第一高速缓存组131,可以包括具有不同写入特性的多个存储器,并且第一高速缓存组131可以接收并存储由接收器110接收的数据中的一些。
根据本发明构思的示范性实施例的处理器120,可以控制接收器110和第一高速缓存组131。根据由接收器110接收的数据的写入强度,处理器120可以分割数据并发送数据到一些高速缓存组。此外,根据被发送到第一高速缓存组131的数据的写入强度,处理器120可以控制第一高速缓存组131以将所发送的数据存储在来自包括在第一高速缓存组131中的多个存储器当中的一个存储器中。例如,写入强度可以指被频繁地请求写入存储器的数据的量。
图2是根据本发明构思的示范性实施例的在其中操作多个核心(例如,第一核心141至第N核心145)的计算环境中的设备100的操作的框图。
根据本发明构思的示范性实施例的接收器110可以接收要被存储在来自多个高速缓存组(例如,分别与第一核心141至第N核心145相对应的第一高速缓存组131至第N高速缓存组135)当中的一些高速缓存组(例如,第一高速缓存组131至第四高速缓存组134)中的数据。
根据分布的高速缓存方法,高速缓存130可以包括第一高速缓存组131至第N高速缓存组135。此外,设备100可以在包括第一核心141至第N核心145和第一高速缓存组131至第N高速缓存组135的计算环境中操作。
第一高速缓存组131至第M高速缓存组135可以分别与第一核心141至第N核心145相对应。例如,第一高速缓存组131可以与第一核心141相对应,第二高速缓存组132可以与第二核心142相对应,并且第N高速缓存组135可以与第N核心145相对应。
接收器110可以从设备100的外部接收要被存储在来自第一高速缓存组131至第N高速缓存组135当中的一些高速缓存组(例如,第一高速缓存组131至第四高速缓存组134)中的数据。可以在接收器110接收数据之前或之后执行确定哪些高速缓存组来存储所接收的数据。例如,设备100可以在接收器110接收数据之前,获得关于第二高速缓存组132的剩余存储器容量的信息。
设备100可以使用来自多个高速缓存组当中的一些高速缓存组来处理数据。例如,在第一核心141中处理的数据可以被存储在第二高速缓存组132中。
根据本发明构思的示范性实施例的第一高速缓存组132可以包括具有不同写入特性的多个存储器。此外,第一高速缓存组131可以接收并存储由接收器110接收的数据中的一些。
第一高速缓存组131可以从接收器110或处理器120接收数据,并且第一高速缓存组131可以将数据存储在其中。第一高速缓存组131可以将所接收的数据存储在来自包括在第一高速缓存组131中的多个存储器当中的一个存储器中。包括在第一高速缓存组131中的多个存储器可以具有不同的写入特性。例如,第一高速缓存组131可以具有混合高速缓存的特性。术语“混合高速缓存”可以指包括具有不同属性的多个存储器的高速缓存。
当多个存储器的写入特性彼此不同时,写入单元数据所要求的延迟时间或能量在多个存储器当中可能为不同。根据本发明构思的示范性实施例的多个存储器的示例可以包括易失性存储器和非易失性存储器。多个存储器的示例可以包括静态随机存取存储器(static random-access memory,SRAM)、自旋转移力矩随机存取存储器(spin transfertorque random-access memory,STT-RAM)和相变随机存取存储器(phase change random-access memory,PCRAM)。
根据由接收器110接收的数据的写入强度,根据本发明构思的示范性实施例的处理器120可以分割所接收的数据并发送所接收的数据到一些高速缓存组,例如,第一高速缓存组131至第四高速缓存组134。根据本发明构思的示范性实施例的处理器120可以分割数据并发送数据到来自多个瓦片(例如,第一瓦片171至第N瓦片175)当中的一些瓦片(例如,第一瓦片171到第四瓦片174)。包括高速缓存组和核心的每个瓦片可以作为数据处理单元来操作。根据本发明构思的示范性实施例,包括在第一瓦片171中的第一高速缓存组131或第一核心141可以被用来处理在第一瓦片171中执行的应用的数据。
可以根据由接收器110接收的数据的量或属性,来确定来自第一高速缓存组131至第N高速缓存组135当中哪些高速缓存组存储由接收器110接收的数据。例如,处理器120可以根据由接收器110接收的数据的量或属性,来确定存储所接收的数据所要求的高速缓存组的数量,并且可以分布所接收的数据并发送所接收的数据到来自第一高速缓存组131至第N高速缓存组135当中的可用高速缓存组。处理器120可以监测第一高速缓存组131至第N高速缓存组135,可以确定哪些高速缓存组(例如,第一高速缓存组131至第四高速缓存组134)适合于对其发送数据,并且可以分布由接收器110接收的数据并发送由接收器110接收的数据到所确定的高速缓存组(例如,第一高速缓存组131至第四高速缓存组134)。
当由接收器110接收的数据被分布并被发送到一些高速缓存组(例如,第一高速缓存组131至第四高速缓存组134)时,可以使用由接收器110接收的数据的属性。例如,处理器120可以基于由接收器110接收的数据的写入强度,来分布(例如,分割)数据并发送数据。
根据本发明构思的示范性实施例的处理器120可以分割所接收的数据并发送所接收的数据,从而写入被均匀地分布到一些高速缓存组,例如,第一高速缓存组131至第四高速缓存组134。例如,处理器120可以分割所接收的数据并发送所接收的数据,从而包括频繁要求被写入的数据的写入密集型分割、和包括不频繁要求被写入的数据的非写入密集型分割被均匀地分布到一些高速缓存组,例如,第一高速缓存组131至第四高速缓存组134。
“均匀”的含义不一定是指物理地均匀。均匀的含义可以指在预设的误差范围内的均匀性。例如,当100条数据被均匀地分布到第一高速缓存组131、第二高速缓存组132和第三高速缓存组133时,100条数据可以被分布在预设的误差范围之内,从而,例如35条数据、32条数据和33条数据分别被分布到第一高速缓存组131、第二高速缓存组132和第三高速缓存组133。
此外,根据本发明构思的示范性实施例,处理器120可以控制第一高速缓存组131,从而根据被发送到第一高速缓存组131的数据的写入强度,将被发送到第一高速缓存组131的数据存储在来自包括在第一高速缓存组131中的多个存储器当中的一个存储器中。
包括在第一高速缓存组131中的多个存储器可以具有不同的写入特性。例如,以下将假设具有彼此不同的写入特性的第一存储器和第二存储器被包括在第一高速缓存组131中来进行说明,并且第一存储器的写入特性指示比第二存储器的写入特性更高的写入数据的效率。
被包括在第一高速缓存组131中的第一存储器和第二存储器可以具有彼此不同的写入特性。例如,写入单元数据所要求的延迟时间或能量在第一存储器和第二存储器当中可能为不同。例如,写入单元数据到第一存储器所要求的延迟时间或能量可能小于预设值,并且写入单元数据到第二存储器所要求的延迟时间或能量可能等于或大于预设值。根据本发明构思的示范性实施例的处理器120可以在第一存储器中存储具有高的写入强度的数据,并且可以在第二存储器中存储具有低的写入强度的数据。根据本发明构思的示范性实施例的第一高速缓存组131可以通过根据写入强度分类数据并将数据存储在第一存储器或第二存储器中,来减少消耗的资源。例如,当写入单元数据到第一存储器所要求的延迟时间少于写入单元数据到第二存储器所要求的延迟时间时,可以通过在第一存储器中存储具有高的写入强度的数据,来减少写入数据所要求的延迟时间。此外,当写入单元数据到第一存储器所要求的能量少于写入单元数据到第二存储器所要求的能量时,可以通过在第一存储器中存储具有高的写入强度的数据,来减少写入数据所消耗的能量。
下面将参考图3更详细地说明,根据写入强度将数据存储在来自具有不同的写入特性的多个存储器当中的一个存储器中。
根据本发明构思的示范性实施例的处理器120可以输出数据处理结果到外部设备150。此外,处理器120以及接收器110可以从外部设备150接收对数据处理过程所必需的数据。
根据本发明构思的示范性实施例,当从处理器120输出的数据是图像数据时,处理器120可以输出图像数据到外部设备150。外部设备150可以包括显示器。当外部设备150是显示器并且从处理器120输出的数据是图像数据时,外部设备150可以从处理器120接收图像数据并且可以显示图像。
虽然设备100不被包括在图2中的第一瓦片171中,但是根据本发明构思的示范性实施例,设备100可以被包括在第一瓦片171中。根据本发明构思的示范性实施例,接收器110和/或处理器120可以被包括在第一瓦片171中。
虽然处理器120与图2中的第一核心141分离,但是根据本发明构思的示范性实施例,处理器120的一些或全部功能可以由第一核心141执行。
根据本发明构思的示范性实施例的设备100可以根据分布的高速缓存方法来可伸缩地操作。例如,随着所使用的核心的数量增加,性能可能相应地增加。
图3是根据本发明构思的示范性实施例的在其中设备100将数据存储在包括多个存储器的高速缓存组中的情况的示图。
根据本发明构思的示范性实施例的设备100,可以通过根据要被存储在高速缓存组中的数据的属性来分类并存储要被存储在包括在高速缓存组中的多个存储器中的数据,以执行组内最优化。
参考图3,例如,以下将假设第一高速缓存组131包括具有写入特性的第一存储器310和具有不同于第一存储器310的写入特性的写入特性的第二存储器320来进行说明。例如,第一存储器的写入特性可以指示比第二存储器的写入特性更高的写入数据的效率。
写入单元数据到具有相对高的效率的写入特性的第一存储器310所要求的延迟时间或能量,可以等于或小于预设值。写入单元数据到具有相对低的效率的写入特性的第二存储器320所要求的延迟时间或能量,可以大于预设值。例如,第一存储器310可以是SRAM,并且第二存储器320可以是STT-RAM或PCRAM。此外,第一存储器310可以是易失性存储器,并且第二存储器320可以是非易失性存储器。非易失性存储器可以是STT-RAM、铁电随机存取存储器(ferroelectric random-access memory,FeRAM)、磁性随机存取存储器(magneticrandom-access memory,MRAM)、或相变存储器(phase change memory,PCM)。可以以高速度和低功率操作的STT-RAM可以具有比其他非易失性存储器(例如,FeRAM、MRAM和PCM)的能耗更低的能耗,并且可以使用比其他非易失性存储器的写入能量更少的写入能量。此外,STT-RAM可以具有比其他非易失性存储器的耐用性更高的耐久性、比其他非易失性存储器的密度更高的密度、比其他非易失性存储器的可伸缩性更高的可伸缩性。例如,设备100可以通过在SRAM中存储写入密集型数据并且在STT-RAM中存储非写入密集型数据,来使得大部分写入操作在SRAM中被执行。
设备100可以预测或确定要被存储在第一高速缓存组131中的数据的写入强度,并且可以根据预测或确定结果来将数据存储在第一存储器310或第二存储器320中。例如,设备100可以将其写入强度被预测为等于或大于预设值的数据存储在第一存储器310中,并且可以将其写入强度被预测为小于预设值的数据存储在第二存储器320中。设备100可以通过将具有高的写入强度的数据存储在具有,例如,向存储器(例如,第一存储器310)写入单元数据所要求的较低延迟时间或较低能量的存储器中,来减少写入数据所要求的延迟时间或能量。
根据本发明构思的示范性实施例的第一高速缓存组131,可以是根据分布的高速缓存方法的混合的高速缓存的高速缓存组。由于混合的高速缓存包括具有不同的属性的多个存储器,所以混合的高速缓存的高速缓存组可以包括具有不同的属性的多个存储器。
当根据本发明构思的示范性实施例的设备100通过预测要被存储的数据的写入强度,将数据存储在第一存储器310或第二存储器320中时,可以使用在预测混合高速缓存(prediction hybrid cache,PHC)中所使用的方法。例如,设备100可以基于程序计数器来预测要被存储的数据的写入强度。通过使用由第一程序计数器访问的数据的写入强度历史,根据本发明构思的示范性实施例的设备100可以预测接下来要由第一程序计数器访问的数据的写入强度。当响应于相同的指令被访问的多条数据的特性彼此相似时,可以增加写入强度的预测的精度。此外,设备100可以基于要被预测的应用来预测要被存储的数据的写入强度。通过使用与要被发送到第一高速缓存组131的数据相对应的应用的写入强度历史,根据本发明构思的示范性实施例的设备100可以确定要被发送到第一高速缓存组131的数据的写入强度。
图4是根据本发明构思的示范性实施例的在其中设备100通过使用指针来处理数据的情况的示图。
术语“指针”可以指标签到数据的指针。高速缓存或高速缓存组可以包括标签区域410和数据区域420。标签区域410可以包括关于存储在数据区域420中的数据的信息。例如,标签区域410可以存储关于有效性、访问时间、以及被存储在数据区域420中的数据的地址的信息。例如,第一标签411可以包括第一数据421的信息,第二标签412可以包括第二数据422的信息,以及第三标签413可以包括第三数据423的信息。此外,指针可以包括用于匹配标签和数据的信息。例如,第一指针431可以将第一标签411匹配到第一数据421,第二指针432可以将第二标签412匹配到第二数据422,并且第三指针433可以将第三标签413匹配到第三数据423。
根据本发明构思的示范性实施例的设备100可以通过更新存储在标签区域410中的一个或多个标签、或通过更新指针,来减少数据写入操作的数量。例如,当要在数据区域420中交换多条数据的位置时,根据本发明构思的示范性实施例的设备100可以通过仅仅更新指针而不更新存储在数据区域420中的多条数据的位置,来获得数据位置交换效果。此外,当数据要被写入到特定位置时,根据本发明构思的示范性实施例的设备100可以将新的数据写入到要被删除的数据的位置,并且设备100可以更新标签或指针的值而不顺序地移动多条数据。在这种情况下,可以通过更新标签或指针来更新多条数据的位置。
图5是根据本发明构思的示范性实施例的在其中设备100分割数据并将数据存储在多个高速缓存组中的情况的示图
根据本发明构思的示范性实施例的设备100可以分割数据并发送数据到来自多个高速缓存组当中的一些高速缓存组(例如,第一高速缓存组131至第四高速缓存组134)。当设备100发送数据到高速缓存组(例如,131至134)时,设备100可以通过根据要被发送的数据的写入强度来分割数据、以及通过发送数据到一些高速缓存组(例如,第一高速缓存组131至第四高速缓存组134),来执行组间优化。例如,设备100可以通过用具有高SRAM使用度的高速缓存组的数据来代替具有低SRAM使用度的高速缓存组的数据,来增加整个高速缓存的SRAM使用度。因此,设备100可以在高速缓存组之间移动数据。此外,设备100可以通过使用预设方法来分割数据并发送数据到高速缓存组。
参考图5,现在将说明在其中不管写入强度来分割数据并发送数据的第一情况510、和在其中考虑到写入强度来分割数据并发送数据的第二情况520。
当如第一情况510中不管写入强度来分割数据并发送数据时,分别存储在一些高速缓存组(例如,第一高速缓存组131至第四高速缓存组134)中的多条数据的写入强度可能彼此不同。例如,第一高速缓存组131和第三高速缓存组133中的每一个包括具有高写入强度的两个分割,并且第二高速缓存组132和第四高速缓存组134中的每一个可能不包括具有高写入强度的分割。根据本发明构思的示范性实施例的术语“分割”可以指逻辑高速缓存数据群(logical cache data group)。例如,每个分割可以包括由一个应用访问的数据。
然而,当如第二情况520中根据写入强度来分割数据并发送数据时,分别存储在一些高速缓存组(例如,第一高速缓存组131至第四高速缓存组134)中的多条数据的写入强度可能是均匀的。例如,第一高速缓存组131至第四高速缓存组134中的每一个可以包括具有高写入强度的一个分割。如上所述,“均匀”的含义可以指预设的误差范围内的均匀性,而不是物理地均匀。
图6是根据本发明构思的示范性实施例的在其中设备100在操作多个核心的计算环境中发送数据并存储数据的情况的流程图。
在操作S610中,根据本发明构思的示范性实施例的设备100接收要被存储在来自与多个核心相对应的多个高速缓存组当中的一些高速缓存组中的数据。
设备100可以在包括多个核心和多个高速缓存组的计算环境中操作。多个高速缓存组可以与多个核心相对应。
根据本发明构思的示范性实施例的设备100可以从设备100的外部(例如,外部设备)接收要被处理的数据。此外,设备100可以通过分析从设备100的外部接收的所接收的数据,来确定来自多个高速缓存组当中的哪些高速缓存组要被使用。另外,设备100可以发送所接收的数据到来自多个高速缓存组当中的所确定的高速缓存组。
在操作S620中,根据本发明构思的示范性实施例的设备100根据在操作S610中接收的数据的写入强度来分割所接收的数据并发送所接收的数据到所确定的高速缓存组(例如,高速缓存组中的一些)。
当根据本发明构思的示范性实施例的设备100发送数据时,设备100可以通过根据要被发送的数据的写入强度来分割数据、以及通过发送数据到所确定的高速缓存组,来执行组间优化。
由于设备100根据写入强度来分割数据并发送数据,所以存储在所确定的高速缓存组中的多条数据的写入强度可能是均匀的。如上所述,“均匀”的含义可以指在预定的误差范围内的均匀性,而不是物理的均匀性。
此外,根据本发明构思的示范性实施例的设备100可以基于写入强度、和数据要被发送到的所确定的高速缓存组的条件,来分割数据并发送数据。例如,在其中写入密集型数据正被发送到包括具有相对低效率写入特性的存储器的高速缓存组的情况下,设备100可以确定正被发送的写入密集型数据的量小于平均值。此外,在其中写入密集型数据正被发送到包括具有相对高效率写入特性的存储器的高速缓存组的情况下,设备100可以确定正被发送的写入密集型数据的量大于平均值。
在操作S630中,根据本发明构思的示范性实施例的设备100将发送到所确定的高速缓存组当中的第一高速缓存组的数据存储在第一高速缓存组中。第一高速缓存组可以是来自构成高速缓存的多个高速缓存组当中的一个高速缓存组。
此外,根据本发明构思的示范性实施例的处理器120可以根据被发送到第一高速缓存组的数据的写入强度,来控制第一高速缓存组以将所发送的数据存储在来自包括在第一高速缓存组中的多个存储器当中的一个存储器中。
根据本发明构思的示范性实施例的设备100可以根据要被存储在第一高速缓存组中的数据的属性,通过分类要被存储在第一高速缓存组中的数据并将要被存储在第一高速缓存组中的数据存储在包括在第一高速缓存组中的多个存储器中,来执行组内优化。
例如,设备100可以预测由第一高速缓存组接收的数据的写入强度,并且可以根据预测结果来将由第一高速缓存组接收的数据存储在来自包括在第一高速缓存组中的多个存储器当中的一个存储器中。当要被存储的数据的预测的写入强度等于或大于预设值时,设备100可以将数据存储在来自包括在第一高速缓存组中的多个存储器当中的、具有相对高效率写入特性的存储器中。当要被存储的数据的写入强度小于预设值时,设备100可以将数据存储在来自包括在第一高速缓存组中的多个存储器当中的、具有相对低效率写入特性的存储器中。写入单元数据到具有相对高效率写入特性的存储器所要求的延迟时间或能量可能小于写入单元数据到具有相对低效率写入特性的存储器所要求的延迟时间或能量。
此外,设备100可以通过使用在PHC中使用的方法,将由第一高速缓存组接收的数据存储在来自包括在第一高速缓存组中的多个存储器当中的一个存储器中。
图7是根据本发明构思的示范性实施例的在其中设备100根据高速缓存访问请求来输出数据的情况的流程图。
在操作S710中,根据本发明构思的示范性实施例的设备100接收高速缓存访问请求。例如,设备100可以接收用于获取存储在高速缓存中数据的请求。
在操作S720中,根据本发明构思的示范性实施例的设备100确定是否存在来自存储在第一高速缓存组的数据当中的、与在操作S710中接收的高速缓存访问请求相对应的数据。例如,设备100可以根据在操作S710中接收的高速缓存访问请求,来确定对第一高速缓存组的访问是否为必需。在图7中的第一高速缓存组可以指根据分布的高速缓存方法的、来自多个高速缓存组当中的一个高速缓存组。
当在操作S720中确定与在操作S710中接收的高速缓存访问请求相对应的数据存在于第一高速缓存组中时,在操作S730中,根据本发明构思的示范性实施例的设备100根据在操作S710中接收的高速缓存访问请求来输出存储在第一高速缓存组中的数据。例如,设备100可以根据在操作S710中接收的高速缓存访问请求,将存储在第一高速缓存组中的数据输出到外部设备(例如,图2中所示出的150)。
当所输出的数据是根据本发明构思的示范性实施例的图像数据时,设备100可以输出该图像数据到显示器。显示器可以从设备100中接收图像数据,并且可以显示该图像数据。
图8是根据本发明构思的示范性实施例的在其中设备100将所获得的数据存储在来自多个存储器当中的、根据所获得的数据的写入强度确定的存储器中的情况的流程图。
在操作S810中,根据本发明构思的示范性实施例的设备100获得要被存储在第一高速缓存组中的数据。例如,设备100可以确定来自从设备100的外部接收的数据当中要被存储在第一高速缓存组中的数据。
在操作S820中,根据本发明构思的示范性实施例的设备100确定在操作S810中获得的数据的写入强度是否等于或大于预设值。
根据本发明构思的示范性实施例的设备100可以通过使用预测算法来预测在操作S810中获得的数据的写入强度,并且可以确定所预测的写入强度是否等于或大于预设值。
例如,通过使用与被发送到第一高速缓存组的数据相对应的由程序计数器访问的数据的写入强度历史,设备100可以确定被发送到第一高速缓存组的数据的写入强度。此外,设备100可以确定根据由程序计数器访问的数据的写入强度历史确定的写入强度是否等于或大于预设值。
此外,通过使用与被发送到第一高速缓存组的数据相对应的应用的写入强度历史,设备100可以确定被发送到第一高速缓存组的数据的写入强度。另外,设备100可以确定根据应用的写入强度历史确定的写入强度是否等于或大于预设值。
以下将假设第一存储器310的写入特性指示比第二存储器320的写入特性更高的写入数据的效率来进行说明。
在操作S830中,根据本发明构思的示范性实施例的设备100将在操作S810中获得的数据存储在第一存储器310中。
由于第一存储器310的写入特性具有比第二存储器320的写入特性更高的写入数据的效率,所以写入单元数据到第一存储器310所要求的延迟时间或能量可能小于写入单元数据到第二存储器320所要求的延迟时间或能量。例如,第一存储器310可以是SRAM,并且第二存储器320可以是STT-RAM或PCRAM。可替换地,第一存储器310可以是易失性存储器,并且第二存储器可以是非易失性存储器。
根据本发明构思的示范性实施例的设备100可以通过将具有等于或大于预设值的写入强度的数据存储在第一存储器310中,来减少存储数据所要求的延迟时间或能量。
在操作S840中,根据本发明构思的示范性实施例的设备100将在操作S810中获得的数据存储在第二存储器320中。
根据本发明构思的示范性实施例的设备100可以通过将具有小于预设值的写入强度的数据存储在第二存储器320中,来减少存储数据所要求的延迟时间或能量。
图9是根据本发明构思的示范性实施例的在其中操作多个瓦片的计算环境中的设备100的操作的框图。
根据本发明构思的示范性实施例的设备100可以在在其中操作多个瓦片的计算环境中操作。例如,设备100可以在在其中操作包括第一瓦片171和第二瓦片180的多个瓦片的计算环境中操作。
根据本发明构思的示范性实施例的设备100可以被包括在第一瓦片171中。参考图9,设备100可以包括组分割硬件910、监测硬件920、大部分无效(bulk invalidation)硬件930、写入强度预测器940、写入强度监测器950、以及第一高速缓存组131。
虽然在图9中示出设备100包括与本实施例有关的元件,但是本领域普通技术人员将理解,设备100还可以包括除了在图9中所示的元件以外的通用元件。此外,本领域普通技术人员将理解,来自图9中所示出的元件当中的一些元件可以被省略。
根据本发明构思的示范性实施例的设备100可以高效地使用在分布的高速缓存中的混合高速缓存。例如,设备100可以根据分布的高速缓存方法来使用混合高速缓存。
根据本发明构思的示范性实施例的组分割硬件可以分割数据。例如,组分割硬件910可以分配高速缓存大小到要被执行的应用。组分割硬件910可以通过分割来维持分配到每个应用的高速缓存大小。组分割硬件910可以通过分割来防止在其中多个核心被使用的高速缓存结构中的干扰。
根据本发明构思的示范性实施例的监测硬件920可以监测高速缓存或数据的特性。监测硬件920可以监测高速缓存的操作特性。根据本发明构思的示范性实施例的设备100可以通过基于每个应用的操作特性的分割决定来提高正在被执行的应用的性能。通过使用在监测高速缓存的操作特性之后获得的结果来获得分割决定。监测硬件920可以监测由每个应用所要求的高速缓存大小。
根据本发明构思的示范性实施例的大部分无效硬件930可以使被确定为不必要的数据无效。例如,大部分无效硬件930可以使在周期性地更新高速缓存大小的过程中被确定为不必要的数据无效。如果必要的话,设备100的大部分无效硬件930可以被省略。
根据本发明构思的示范性实施例的写入强度预测器940可以被使用在组内优化过程中。例如,写入强度预测器940可以预测或确定要被存储在第一高速缓存组131中的数据的写入强度。
根据本发明构思的示范性实施例的写入强度预测器940可以使用在PHC中使用的方法来预测要被存储的数据的写入强度。例如,写入强度预测器940可以基于程序计数器来预测要被存储的数据的写入强度。通过使用由第二程序计数器访问的数据的写入强度历史,写入强度预测器940可以预测接下来要由第二程序计数器访问的数据的写入强度。当响应于相同的指令被访问的多条数据的特性彼此相似时,可以提高写入强度的预测的精度。此外,写入强度预测器940可以基于要被预测的应用来预测要被存储的数据的写入强度。通过使用与要被发送到第一高速缓存组131的数据相对应的应用的写入强度历史,根据本发明构思的示范性实施例的写入强度预测器940可以确定要被发送到第一高速缓存组131的数据的写入强度。
根据本发明构思的示范性实施例的写入强度监测器950可以通过监测数据的写入强度在组间优化过程中使用。例如,可以根据写入强度监测器950的监测结果来分布数据并发送数据。写入强度监测器950可以被用来确定同时执行的不同应用的写入特性,并且可以被用来分布数据使得存储在高速缓存组(例如,如图2中所示的第一高速缓存组131至第N高速缓存组135)中的数据的写入特性彼此相似。
写入强度监测器950可以监测哪个应用频繁地使用写入密集型数据。写入强度监测器950可以确定并存储在数据被存储在高速缓存中的同时发生在数据上的数据写入操作的次数。所存储的、在数据被存储在高速缓存中的同时发生在数据上的数据写入操作的次数可以被用来周期性地更新数据位置。例如,写入强度监测器950可以监测在每个高速缓存组中的每个应用的写入强度。此外,监测结果可以被用来分配数据到高速缓存组,使得写入被均匀地分布到高速缓存组。
根据本发明构思的示范性实施例的第一高速缓存组131可以包括多个存储器。例如,如图3中所示,第一高速缓存组131可以包括具有相对高效率写入特性的第一存储器310和具有相对低效率写入特定的第二存储器320。
参考图9,第一存储器960和第二存储器970可以被连接到设备100。第一存储器960和第二存储器970可以是等级-1存储器。此外,第一存储器960和第二存储器970可以被连接到第一核心141,并且可以被用来处理数据。第一存储器960和第二存储器970可以位于设备100外部。
虽然根据本发明构思的示范性实施例,设备100被包括在图9中的第一瓦片171中,但是设备100可以不被包括在第一瓦片171中。
此外,虽然根据本发明构思的示范性实施例,第一核心141位于设备100外部,但是第一核心141可以位于设备100内部。
根据本发明构思的示范性实施例,设备100可以通过使用分布的高速缓存方法来可伸缩地操作。例如,不同于图9中,设备100可以在在其中使用128、256、512或1024个瓦片的计算环境中操作。
图10是根据本发明构思的示范性实施例的在其中设备100通过预测或监测写入强度来处理数据的情况的框图。
参考图10,设备100可以包括组分割硬件910、监测硬件920、写入强度预测器940、写入强度监测器950、第一高速缓存组131、以及分割布局(placement)算法1010。
组分割硬件910、监测硬件920、写入强度预测器940、写入强度监测器950、以及第一高速缓存组131已经在以上被描述,并且因此可能不给出其详细的说明。
分割布局算法1010可以作为单独的元件来操作,或者可以作为处理器120中的算法来提供。
根据本发明构思的示范性实施例的分割布局算法1010可以从写入强度监测器950接收监测结果(例如,监测信息)。分割布局算法1010可以向组分割硬件910发送指示关于如何执行分割的分割结果的数据。
根据本发明构思的示范性实施例,写入强度预测器940和第一高速缓存组131可以与PHC中的操作类似地操作。例如,根据写入强度预测器940的预测结果,数据可以被存储在来自包括在第一高速缓存组131中的多个存储器当中的一个存储器中。
根据本发明构思的示范性实施例,非瞬时性计算机可读记录介质可以具有具体实现在其上的用于执行本文中描述的方法的程序。
本文描述的设备可以包括处理器、用于存储程序数据并执行它的存储器、诸如磁盘驱动器的永久性存储单元、用于处理与外部设备的通信的通信端口、以及包括触摸面板、按键、按钮等的用户界面设备。当涉及软件模块或算法时,这些软件模块可以被存储在计算机可读介质上作为可由处理器运行的程序指令或计算机可读代码。计算机可读记录介质的示例包括磁性储存器介质(例如,ROM、软盘、硬盘等)、以及光学记录介质(例如,CD-ROM或DVD)。计算机可读记录介质还能够分布在网络耦合的计算机系统上,使得计算机可读代码以分布式方式被存储和运行。这个介质可以被计算机读取,存储在存储器中,并且被处理器运行。
本发明构思可以根据功能块(block)组件和各种处理步骤来描述。这样的功能块可以由被配置为执行指定功能的任意数量的硬件和/或软件组件来实现。例如,本发明构思可以采用可以在一个或多个微处理器或者其它控制设备的控制下执行各种功能的各种集成电路(integrated circuit,IC)组件,例如,存储器元件、处理元件、逻辑元件、查找表等。类似地,在使用软件编程或者软件元素来实施本发明构思的元素的情况下,可以利用任何编程或者脚本语言,诸如C、C++、Java、汇编语言等,利用以数据结构、对象、进程、例程、或者其它编程元素的任何组合实施的各种算法来实施。功能方面可以以在一个或多个处理器上运行的算法来实施。另外,本发明构思能够采用用于电子配置、信号处理和/或控制、数据处理等的任意数量的传统技术。词语“机构”、“元素”、“装置”和“配置”可以被宽泛地使用并且不限于机械或物理的示范性实施例,而是可以包括结合处理器的软件例程等。
本文示出和描述的本发明构思的示范性实施例是本发明构思的例示性示例,并且没有意图以任何方式来限制本发明构思的范围。为了简洁起见,可以不详细描述传统的电子、控制系统、软件开发和系统的其它功能方面。另外,在所呈现的各个附图中示出的连接线或者连接器意图代表各种元素之间的示范性功能关系和/或物理或逻辑耦合。应该注意到,根据本发明构思的示范性实施例,许多替换性的或额外的功能关系、物理连接或逻辑连接可以被包括在设备中。
将理解的是,本文描述的所有方法的步骤可以以任何合适的顺序被执行,除非本文另有指示或明确地与上下文矛盾。本发明构思不限于所描述的步骤的次序。
虽然已经具体地示出并且参考它们的示范性实施例描述了本发明构思,但是对于本领域普通技术人员将显而易见的是,可以对其做出各种形式和细节上的改变而不脱离本发明构思的范围和精神。

Claims (20)

1.一种处理数据的方法,包括:
接收要被存储在来自与多个核心相对应的多个高速缓存组当中的第一群高速缓存组中的数据;
根据所接收的数据的写入强度,分割所接收的数据并发送所分割的数据到第一群高速缓存组;以及
将所发送的数据的部分存储在来自第一群高速缓存组当中的第一高速缓存组中。
2.根据权利要求1所述的方法,其中,所述将所发送的数据的部分存储在第一高速缓存组中包括,根据由第一高速缓存组接收的所发送的数据的部分的写入强度,将所发送的数据的部分存储在来自包括在第一高速缓存组中的多个存储器当中的一个存储器中,其中所述多个存储器包括不同的写入特性。
3.根据权利要求1所述的方法,还包括:
接收高速缓存访问请求;以及
根据所接收的高速缓存访问请求,输出存储在第一高速缓存组中的数据。
4.根据权利要求1所述的方法,其中,所述分割所接收的数据并发送所分割的数据到第一群高速缓存组包括,分割所接收的数据并发送所分割的数据到第一群高速缓存组使得写入被均匀地分布到第一群高速缓存组。
5.根据权利要求2所述的方法,其中,多个存储器包括第一存储器和第二存储器,其中第一存储器包括小于第一预设值的写入单元数据的延迟时间或能量,并且第二存储器包括等于或大于第一预设值的写入单元数据的延迟时间或能量。
6.根据权利要求5所述的方法,其中,将所发送的数据的部分存储在第一高速缓存组中包括,
当由第一高速缓存组接收的所发送的数据的部分的写入强度小于第二预设值时,将所发送的数据的部分存储在第二存储器中。
7.根据权利要求5所述的方法,其中,将所发送的数据的部分存储在第一高速缓存组中包括,
当由第一高速缓存组接收的所发送的数据的部分的写入强度大于第二预设值时,将所发送的数据的部分存储在第一存储器中。
8.根据权利要求5所述的方法,其中,第二存储器包括来自自旋转移力矩随机存取存储器STT-RAM和相变随机存取存储器PCRAM当中的至少一个,并且第一存储器包括静态随机存取存储器SRAM。
9.根据权利要求2所述的方法,还包括通过使用与由第一高速缓存组接收的所发送的数据的部分相对应的、由程序计数器访问的数据的写入强度历史来确定由第一高速缓存组接收的所发送的数据的部分的写入强度。
10.根据权利要求2所述的方法,还包括通过使用与由第一高速缓存组接收的所发送的数据的部分相对应的应用的写入强度历史来确定由第一高速缓存组接收的所发送的数据的部分的写入强度。
11.用于处理数据的设备,包括:
接收器,被配置为接收要被存储在来自与多个核心相对应的多个高速缓存组当中的第一群高速缓存组中的数据;
处理器,被配置为根据所接收的数据的写入强度来分割所接收的数据并发送所分割的数据到第一群高速缓存组;以及
第一高速缓存组,被配置为存储所发送的数据的部分,其中第一高速缓存组来自第一群高速缓存组当中。
12.根据权利要求11所述的设备,其中,第一高速缓存组还被配置为根据由第一高速缓存组接收的所发送的数据的部分的写入强度,将所发送的数据的部分存储在来自包括在第一高速缓存组中的多个存储器当中的一个存储器中,其中所述多个存储器包括不同的写入特性。
13.根据权利要求11所述的设备,其中,
所述接收器还被配置为接收高速缓存访问请求,并且
所述处理器还被配置为根据所接收的高速缓存访问请求来输出存储在第一高速缓存组中的数据。
14.根据权利要求11所述的设备,其中,所述处理器还被配置为分割所接收的数据并发送所分割的数据到第一群高速缓存组使得写入被均匀地分布到第一群高速缓存组。
15.一种非瞬时性计算机可读记录介质,具有具体实现在其上的用于执行如权利要求1所述的方法的程序。
16.一种处理数据的方法,包括:
通过使用接收器来接收数据;
划分所接收的数据并发送所划分的数据到多个高速缓存组的第一群高速缓存组;以及
基于所发送的数据的部分的写入强度,将所发送的数据的部分存储在包括在第一群高速缓存组的第一高速缓存中的多个存储器的一个存储器中。
17.根据权利要求16所述的方法,其中,所述多个高速缓存组与多个核心相对应。
18.根据权利要求16所述的方法,其中,所述多个存储器包括具有彼此不同的写入特性的第一存储器和第二存储器。
19.根据权利要求18所述的方法,其中,用于写入单元数据的延迟时间和能量在第一存储器和第二存储器当中为不同。
20.根据权利要求19所述的方法,其中,所述将所发送的数据的部分存储在包括在第一高速缓存组中的多个存储器的一个存储器中包括,当所发送的数据的部分的写入强度大于或等于预设值时,将所发送的数据的部分存储在第一存储器中,以及,
当所发送的数据的部分的写入强度小于所述预设值时,将所发送的数据的部分存储在第二存储器中。
CN201711084768.1A 2016-11-07 2017-11-07 用于处理数据的方法和设备 Active CN108062279B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662418551P 2016-11-07 2016-11-07
US62/418,551 2016-11-07
KR10-2017-0003050 2017-01-09
KR1020170003050A KR20180051326A (ko) 2016-11-07 2017-01-09 데이터 처리 방법 및 디바이스

Publications (2)

Publication Number Publication Date
CN108062279A true CN108062279A (zh) 2018-05-22
CN108062279B CN108062279B (zh) 2023-06-06

Family

ID=62064591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711084768.1A Active CN108062279B (zh) 2016-11-07 2017-11-07 用于处理数据的方法和设备

Country Status (2)

Country Link
US (1) US10235299B2 (zh)
CN (1) CN108062279B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11194726B2 (en) * 2019-02-25 2021-12-07 Micron Technology, Inc. Stacked memory dice for combined access operations
EP4002106A4 (en) * 2020-03-18 2022-11-16 NEC Corporation INFORMATION PROCESSING DEVICE AND METHOD
CN113553009B (zh) * 2021-07-27 2022-06-03 湖南国科微电子股份有限公司 数据读取方法、数据写入方法及数据读写方法

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1485745A (zh) * 2003-08-08 2004-03-31 倚天资讯股份有限公司 非挥发性存储器存取系统及其存取方法
JP2005122343A (ja) * 2003-10-15 2005-05-12 Matsushita Electric Ind Co Ltd キャッシュメモリ制御方法及びキャッシュメモリ制御装置
CN1853232A (zh) * 2002-12-20 2006-10-25 皇家飞利浦电子股份有限公司 易失文件类分配的描述
CN1908859A (zh) * 2005-08-05 2007-02-07 富士通株式会社 降低高速缓存的功耗
CN101004661A (zh) * 2006-01-17 2007-07-25 株式会社东芝 使用非易失性高速缓冲存储器的存储设备及其控制方法
US20080109630A1 (en) * 2006-11-02 2008-05-08 Hitachi, Ltd. Storage system, storage unit, and storage management system
CN102214143A (zh) * 2010-04-06 2011-10-12 深圳市江波龙电子有限公司 一种多层单元闪存的管理方法、装置及存储设备
CN102231285A (zh) * 2011-05-18 2011-11-02 成都市华为赛门铁克科技有限公司 数据存储方法和装置
CN102483720A (zh) * 2009-09-18 2012-05-30 国际商业机器公司 读写感知的高速缓存
CN102521142A (zh) * 2011-12-13 2012-06-27 曙光信息产业(北京)有限公司 一种提高大容量、多内存设备访问效率的方法
CN102844814A (zh) * 2010-04-14 2012-12-26 飞思卡尔半导体公司 具有可变数量的使用写端口的多端口存储器
CN103810119A (zh) * 2014-02-28 2014-05-21 北京航空航天大学 一种利用三维集成电路片上温差降低stt-ram功耗的缓存设计方法
CN104915150A (zh) * 2015-05-26 2015-09-16 浙江工商大学 一种优化stt-ram缓存写能耗的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662272B2 (en) 2001-09-29 2003-12-09 Hewlett-Packard Development Company, L.P. Dynamic cache partitioning
KR101480424B1 (ko) 2013-03-06 2015-01-13 서울시립대학교 산학협력단 하이브리드 플래시 메모리의 성능과 수명 최적화 장치 및 방법
US9304913B2 (en) 2013-03-15 2016-04-05 Qualcomm Incorporated Mixed memory type hybrid cache
US9472248B2 (en) 2014-03-28 2016-10-18 Intel Corporation Method and apparatus for implementing a heterogeneous memory subsystem

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1853232A (zh) * 2002-12-20 2006-10-25 皇家飞利浦电子股份有限公司 易失文件类分配的描述
CN1485745A (zh) * 2003-08-08 2004-03-31 倚天资讯股份有限公司 非挥发性存储器存取系统及其存取方法
JP2005122343A (ja) * 2003-10-15 2005-05-12 Matsushita Electric Ind Co Ltd キャッシュメモリ制御方法及びキャッシュメモリ制御装置
CN1908859A (zh) * 2005-08-05 2007-02-07 富士通株式会社 降低高速缓存的功耗
CN101004661A (zh) * 2006-01-17 2007-07-25 株式会社东芝 使用非易失性高速缓冲存储器的存储设备及其控制方法
US20080109630A1 (en) * 2006-11-02 2008-05-08 Hitachi, Ltd. Storage system, storage unit, and storage management system
CN102483720A (zh) * 2009-09-18 2012-05-30 国际商业机器公司 读写感知的高速缓存
CN102214143A (zh) * 2010-04-06 2011-10-12 深圳市江波龙电子有限公司 一种多层单元闪存的管理方法、装置及存储设备
CN102844814A (zh) * 2010-04-14 2012-12-26 飞思卡尔半导体公司 具有可变数量的使用写端口的多端口存储器
CN102231285A (zh) * 2011-05-18 2011-11-02 成都市华为赛门铁克科技有限公司 数据存储方法和装置
CN102521142A (zh) * 2011-12-13 2012-06-27 曙光信息产业(北京)有限公司 一种提高大容量、多内存设备访问效率的方法
CN103810119A (zh) * 2014-02-28 2014-05-21 北京航空航天大学 一种利用三维集成电路片上温差降低stt-ram功耗的缓存设计方法
CN104915150A (zh) * 2015-05-26 2015-09-16 浙江工商大学 一种优化stt-ram缓存写能耗的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AMIN JADIDI 等: "High-Endurance and Performance-Efficient Design of Hybrid Cache Architectures through Adaptive Line Replacement", 《IEEE》 *
JUNWHAN AHN等: "Prediction Hybrid Cache: An Energy-Efficient STT-RAM Cache Architecture" *
周童: "日立企业级SSD值得期待" *

Also Published As

Publication number Publication date
US20180129259A1 (en) 2018-05-10
CN108062279B (zh) 2023-06-06
US10235299B2 (en) 2019-03-19

Similar Documents

Publication Publication Date Title
US20100180208A1 (en) Server side data cache system
US20150127880A1 (en) Efficient implementations for mapreduce systems
CN105393227B (zh) 存储器控制的数据移动及时序
US9697111B2 (en) Method of managing dynamic memory reallocation and device performing the method
CN107154013A (zh) 用于图像处理的附加卡、内容递送网络服务器及执行方法
US20190171392A1 (en) Method of operating storage device capable of reducing write latency
US11068418B2 (en) Determining memory access categories for tasks coded in a computer program
CN107562645B (zh) 一种内存页管理方法及计算设备
CN108062279A (zh) 用于处理数据的方法和设备
US10204060B2 (en) Determining memory access categories to use to assign tasks to processor cores to execute
US11656981B2 (en) Memory reduction in a system by oversubscribing physical memory shared by compute entities supported by the system
US10353829B2 (en) System and method to account for I/O read latency in processor caching algorithms
US10915470B2 (en) Memory system
US11775431B2 (en) Cache memory with randomized eviction
Yoon et al. Design of DRAM-NAND flash hybrid main memory and Q-learning-based prefetching method
CN117015767A (zh) 存储器信道控制器的芯片上互连
CN115729438A (zh) 数据访问方法、装置及存储介质
CN112947867A (zh) 全闪存阵列高性能存储系统及电子设备
CN110392093A (zh) 具有可定制的软件高速缓存级别的数据中心环境
US11782830B2 (en) Cache memory with randomized eviction
US20240118808A1 (en) Connection pool management with strategic connection allocation to reduce memory consumption of statement pools
US11281612B2 (en) Switch-based inter-device notational data movement system
US20230214258A1 (en) Storage controller and storage device
US20240143498A1 (en) Methods, devices, and systems for allocating memory space
US9286238B1 (en) System, apparatus, and method of cache management

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant