CN111209227A - 数据处理系统 - Google Patents

数据处理系统 Download PDF

Info

Publication number
CN111209227A
CN111209227A CN201910197794.8A CN201910197794A CN111209227A CN 111209227 A CN111209227 A CN 111209227A CN 201910197794 A CN201910197794 A CN 201910197794A CN 111209227 A CN111209227 A CN 111209227A
Authority
CN
China
Prior art keywords
data
memory
memories
processing system
data processing
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
CN201910197794.8A
Other languages
English (en)
Other versions
CN111209227B (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.)
SK Hynix Inc
Original Assignee
SK Hynix 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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN111209227A publication Critical patent/CN111209227A/zh
Application granted granted Critical
Publication of CN111209227B publication Critical patent/CN111209227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; 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/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/163Server or database system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/254Distributed memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • 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)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

本申请公开了一种数据处理系统,其涉及用于实现设置有多个存储器的融合式存储系统的技术。所述数据处理系统包括:计算刀片,其被配置为产生用以存储数据的写入命令以及用以读取数据的读取命令;以及存储刀片,其被配置为响应于读取命令和写入命令而在多个存储器中选择性地执行读取操作和写入操作。计算刀片具有存储关于多个存储器中的每个存储器的性能特性的信息的存储器,并且被配置为基于所存储的信息来确定执行对高速缓存行的逐出的优先级信息。

Description

数据处理系统
相关申请的交叉引用
本申请要求于2018年11月21日在韩国知识产权局提交的申请号为10-2018-0144288的韩国专利申请的优先权,其全部内容通过引用合并于此。
技术领域
本公开的实施例总体而言可以涉及数据处理系统,更具体地,涉及用于实现设置有多个存储器的融合式存储系统的技术。
背景技术
近来,各种移动通信终端(例如智能手机、平板PC等)已经在全世界广泛使用。此外,对随时随地可访问的社交网络服务(SNS)、机器到机器(M2M)服务、传感器网络等的需求正在迅速增加。因此,数据的量、创建数据的速度和数据的多样性按几何级数地增加。为了处理数量越来越多的数据,存储器的数据处理速率很重要,并且还需要高容量的存储器件和高容量的存储模块。
因此,存储系统包括多个存储器件来增加存储容量。然而,包含在存储系统中的多个存储器件可以具有不同的存储特性。因此,当在存储系统中执行高速缓存管理时,具有不同存储特性的存储器件可能导致存取错误,从而导致存储系统中的未命中损失(misspenalty)。
发明内容
本公开的各种实施例旨在提供一种数据处理系统,其基本上消除了因相关技术的限制和缺点而导致的一个或多个问题。
本公开的实施例涉及一种存储系统,其在逐出一个或多个高速缓存行期间响应于存储特性来指配优先级信息,从而减少未命中损失。
根据本公开的实施例,一种数据处理系统包括:计算刀片,其被配置为产生用以存储数据所需的写入命令和用以读取数据所需的读取命令;以及存储刀片,其被配置为响应于读取命令和写入命令而在多个存储器中选择性地执行读取操作和写入操作。计算刀片具有高速缓冲存储器,所述高速缓冲存储器存储关于多个存储器中的每个存储器的性能特性的信息,并且计算刀片被配置为基于所存储的信息来确定优先级信息,对高速缓存行的逐出是按所述优先级信息来执行的。
应理解,本公开的前述一般描述和以下详细描述二者都是示例性和解释性的,并且旨在提供对要求保护的本公开的进一步解释。
附图说明
当结合附图考虑时,通过参考以下详细描述本公开的上述和其他特征和优点将变得显而易见,在附图中:
图1是示出根据本公开的实施例的数据处理系统的示例的框图。
图2是示出根据本公开的实施例的图1中所示的计算机架的示例的框图。
图3是示出根据本公开的实施例的图1中所示的计算机架的示例的框图。
图4是示出根据本公开的实施例的图3中所示的存储刀片的示例的示意图。
图5是示出根据本公开的实施例的图3中所示的计算刀片的示例的示意图。
图6是示出根据本公开的实施例的图5中所示的高速缓冲存储器的示例的示意图。
图7和8是示出根据本公开的实施例的图6中所示的逐出电路的操作的流程图。
具体实施方式
现在将详细参考本公开的实施例,其示例在附图中示出。只要有可能,在整个附图中使用相同的附图标记来指代相同或相似的部分。遍及本公开的说明书,如果假设特定部件被连接(或耦接)到另一部件,则术语“连接或耦接”意味着该特定部件直接连接(或耦接)到另一部件和/或通过第三方的媒介而电连接(或耦接)到另一部件。遍及本公开的说明书,如果假设特定部件包括特定组件,则术语“包括或包含”意味着对应的部件还可以包括其他组件,除非写明了对该对应的部件的相反特定含义。如在说明书和所附权利要求中所使用的,术语“一”、“一个”、“该”和其他类似术语包括单数形式和复数形式二者,除非上下文另外明确指示。本申请中使用的术语仅被用于描述特定实施例,而不旨在限制本公开。除非在上下文中另外说明,否则单数表述可以包括复数表述。
图1是示出根据本公开的实施例的数据处理系统10的示例的框图。
参考图1,数据处理系统10可以包括多个计算机架(computing rack)20、管理接口30和网络40,计算机架20和管理接口30可以通过网络40而彼此通信。设置有这种机架级架构的数据处理系统10可以在用于处理大量数据的数据中心等中使用。
计算机架20中的每一个都可以独立地实现单个计算设备。可选地,计算机架20中的每一个可以与其他计算机架组合,从而实现单个计算设备。稍后将参考附图来描述计算机架20的详细组成元件和操作。
管理接口30可以提供交互式接口,用户可以通过该交互式接口来协调、监管或管理数据处理系统10。管理接口30可以被实现为包括各种种类的设备的任意计算设备,例如计算机、系统、服务器、机架式服务器、刀片服务器、膝上型计算机、平板PC、可穿戴计算设备、网络设备、Web设备、分布式计算系统、基于处理器的系统、和/或消费类电子设备。
根据一个实施例,管理接口30可以被实现为分布式系统,该分布式系统具有能够由计算机架20执行的计算功能或者能够由管理接口30执行的用户界面(UI)功能。根据另一实施例,管理接口30可以被实现为虚拟服务器,该虚拟服务器由分布在网络40上的多个计算设备组成并且作为云设备来操作。在这种情况下,管理接口30可以包括处理器、输入/输出(I/O)子系统、存储器、数据存储设备和通信电路。
网络40可以执行计算机架20中的每一个与管理接口30之间的数据通信,和/或可以执行计算机架20之间的数据通信。网络40可以是有线或无线网络,或者具有有线和无线元件的组合。
网络40可以是有线或无线局域网(LAN)、广域网(WAN)蜂窝网络和/或可公开访问的全球网络(诸如因特网)。此外,网络40可以包括许多网络设备,诸如计算机、路由器、交换机等。
图2是示出根据本公开的实施例的图1中所示的计算机架的示例的框图。
参考图2,计算机架20的范围不限于图中所示的特定结构、形状、名称等,并且应当注意计算机架20可以包括各种组件。例如,计算机架20可以包括多个抽屉21至29。所述抽屉21至29中的每一个可以包括多个模块,并且模块中的每一个可以包括多个刀片(blade)。
根据一个实施例,计算机架20可以通过一个或多个计算刀片、一个或多个存储刀片和/或一个或多个互联刀片的组合来实现。尽管本公开使用术语“计算机架”来指代多个刀片的组合,但是应当注意,计算机架也可以被称为其他名称,例如抽屉、模块、托盘、板、底架、或单元等。
计算机架20的组件可以根据其功能来排序或分类。虽然本公开的范围不限于任何特定实施例,但是计算机架20按向下方向可以包括一个互联刀片、至少一个计算刀片和至少一个存储刀片。
在各种实施例中,计算设备可以通过单个计算机架20来实现。可选地,计算设备可以通过包含在至少两个计算机架20中的所有刀片、通过包含在至少两个计算机架20中的部分刀片的组合、或通过单个计算机架20中的部分刀片来实现。
根据各种实施例,计算设备可以通过包含在计算机架20中的计算刀片、存储刀片和互联刀片的组合来实现。例如,计算设备20A可以包括两个计算刀片、三个存储刀片和单个互联刀片的组合。在另一示例中,计算设备20B可以包括三个计算刀片、两个存储刀片和单个互联刀片的组合。在又一示例中,计算设备20C可以包括单个计算刀片、四个存储刀片和单个互联刀片的组合。
尽管图2示出包括多个计算刀片、存储刀片和互联刀片的计算机架20,但是本公开的范围不限于此。计算机架20可以包括常规的服务器中具有的另外的组成元件,例如电力系统、冷却系统、输入/输出(I/O)设备等。
图3是示出根据本公开的实施例的图1中所示的计算机架20的框图。
参考图3,计算机架20可以包括多个计算刀片200、互联刀片300和多个存储刀片400。
在这种情况下,多个计算刀片200可以被称为池化计算刀片、或池化计算系统等。类似地,多个存储刀片400也可以被称为池化存储刀片、或池化存储系统等。计算刀片200中的每一个可以产生用以存储数据的写入命令和用以读取数据的读取命令。每个计算刀片200可以包括至少一个处理元件,例如至少一个处理器、至少一个处理/控制电路、或至少一个中央处理单元(CPU)。
存储刀片400中的每一个可以响应于读取命令或写入命令来选择性地执行数据的读取或写入操作。更详细地,每个存储刀片400可以响应于读取命令来执行用以读取数据的读取操作,并且可以响应于写入命令来执行用以写入数据的写入操作。每个存储刀片400可以包括各种类型的存储器,例如多个易失性存储器和/或多个非易失性存储器。
在一个实施例中,存储刀片400中的每一个可以包括多个动态随机存取存储器(DRAM)、快闪存储器、存储卡、硬盘驱动器(HDD)、固态驱动器(SSD)或其组合。
可以由包含在每个计算刀片200中的一个或多个处理器来划分、分配或指定存储刀片400中的每一个。每个存储刀片400可以存储能够被计算刀片200初始化和/或执行的至少一个操作系统(OS)。
互联刀片300可以具有多个网络接口端口(port)、卡(card)或交换器(switch)。互联刀片300可以使用与一种或多种有线或无线通信技术相关的协议。例如,互联刀片300可以根据各种协议(诸如外围组件快速互连(PCIe)、快速路径互联(QPI)、以太网等)来支持计算刀片200中的每一个与存储刀片400中的每一个之间的数据通信。
服务器系统或数据处理系统(诸如数据中心)可以具有多个刀片(例如计算刀片200、存储刀片400等),其安装到单位计算机架20中同时在计算机架20内被彼此区分开。单个存储刀片或多个存储刀片可以被实现为其中设置相同或不同种类的存储器的融合式存储器件,或者也可以被实现为池化存储系统。
图4是示出根据本公开的实施例的图3中所示的每个存储刀片的示意图。
参考图4,存储刀片400可以包括控制器410和多个存储器420。
控制器410可以包括数据控制器510、多个存储器控制器520A~520C和输入/输出(I/O)接口530。
数据控制器510可以对在图3中所示的计算刀片200和存储器420之间传送的数据进行控制。例如,数据控制器510可以响应于写入请求或写入命令而从计算刀片200接收要写入的数据。数据控制器510可以控制用于将接收到的数据写入来自多个存储器420之中的对应存储器中的写入操作。在另一个示例中,数据控制器510可以响应于来自计算刀片200的读取请求或读取命令,而读取存储在来自多个存储器420之中的特定存储器中的数据。数据控制器510可以控制用于将读取的数据输出至来自计算刀片200之中的对应计算刀片的读取操作。
存储器控制器520A~520C可以被设置在数据控制器510和多个存储器420之间,并且可以在数据控制器510和存储器420之间提供接口。存储器控制器520A可以控制包含在多个存储器420中的第一组存储器420A的操作。存储器控制器520B可以控制包含在多个存储器420中的第二组存储器420B的操作。存储器控制器520C可以控制包含在多个存储器420中的第三组存储器420C的操作。
因此,存储器控制器520A可以被设置在数据控制器510和第一组存储器420A之间,并且可以支持数据控制器510和第一组存储器420A之间的数据通信。存储器控制器520B可以被设置在数据控制器510和第二组存储器420B之间,并且可以支持数据控制器510和第二组存储器420B之间的数据通信。存储器控制器520C可以被设置在数据控制器510和第三组存储器420C之间,并且可以支持数据控制器510和第三组存储器420C之间的数据通信。
如可以从图4看到的,为了便于描述,控制器410可以示例性地包括三个存储器控制器520A~520C。然而,本公开的范围不限于此。在一些实施例中,控制器410针对每种类型的存储器420具有一个存储器控制器520。如果第一组存储器420A、第二组存储器420B和第三组存储器420C是相同种类的存储器,则控制器410可以具有单个存储器控制器。
I/O接口530可以通过互联刀片300而在数据控制器510与计算刀片200之间提供接口。I/O接口530可以使用与至少一种有线或无线通信技术相关的协议来将从数据控制器510接收到的数据发送(Tx)至互联刀片300,并且可以从互联刀片300接收(Rx)数据并将接收数据发送至数据控制器510。
例如,I/O接口530可以根据诸如外围组件快速互连(PCIe)、快速路径互联(QPI)、以太网等之类的各种协议来支持数据控制器510和互联刀片300之间的数据通信。
响应于从控制器410接收到的控制信号,多个存储器420可以存储(或写入)数据,或者可以输出(或读取)所存储的数据。多个存储器420可以包括第一组存储器420A、第二组存储器420B和第三组存储器420C。所述第一组存储器420A、第二组存储器420B和第三组存储器420C可以具有相同或不同的特性。
根据一些实施例,第一组存储器420A、第二组存储器420B和第三组存储器420C可以具有相同或不同的等待时间(latency)特性。
例如,第一组存储器420A、第二组存储器420B和第三组存储器420C可以是具有相同特性的DRAM存储器。可选地,第一组存储器420A、第二组存储器420B和第三组存储器420C可以是另一种类型的存储器,例如静态随机存取存储器(SRAM)或快闪存储器。另外,第一组存储器420A、第二组存储器420B和第三组存储器420C也可以被实现为不同类型的存储器。
根据其他实施例,包含在存储刀片400中的相同种类的存储器420(例如易失性存储器(DRAM))可以根据各种温度环境而共有或表现出各种性能特性。在这种情况下,性能特性可以包括数据存取速度、刷新周期或片上泄漏量。
也就是说,第一组存储器420A、第二组存储器420B和第三组存储器420C可以处于不同的温度环境中。第一组存储器420A可以在第一温度环境(例如室温环境)中操作。第二组存储器420B可以在第二温度环境(例如低温环境)中操作。第三组存储器420C可以在第三温度环境(例如超低温(深冷,cryogenic))环境中操作。
例如,当第三组存储器420C在深冷环境中操作时,易失性存储器(例如DRAM)的操作速度可以更快。另外,随着片上泄漏量的减少,刷新周期可以被延长,从而减少在深冷环境中使用的易失性存储器所消耗的能量总量。如上所述,在深冷环境中使用的易失性存储器可以具有与非易失性存储器相同的特性。在一个实施例中,响应于请求最佳系统性能的请求信号,可以从多个存储器420之中选择被设置在深冷环境中的第三组存储器420C。结果是,图4中所示的存储刀片400可以更迅速地处理具有相对较高优先级的请求信号(例如紧急请求信号),同时可以大大降低功耗。
如果存储器控制器接收到请求符合要求的系统性能的请求信号,则可以选择第二组存储器420B。另外,当第一组存储器420A在诸如室温环境的较高温度环境中操作时,易失性存储器的操作速度会降低。随着片上泄漏量的增加,功耗也可能与增加的片上泄漏成比例地增加。
因此,可以在各种温度的环境中使用第一组存储器420A、第二组存储器420B和第三组存储器420C,从而实现各种性能特性。因此,第一组存储器420A可以被设置成在室温环境中操作的存储器,其中的每一个具有对应于慢操作速度的第一特性(例如慢特性:SS)。第二组存储器420B可以被设置成在低温环境中操作的存储器,其中的每一个具有对应于正常操作速度的第二特性(例如正常特性:TT)。第三组存储器420C可以被设置成在超低温(深冷)环境中操作的存储器,其中的每一个具有对应于快操作速度的第三特性(例如快特性:FF)。
图5是示出根据本公开的实施例的图3中所示的计算刀片的示意图。
参考图5,计算刀片200可以包括一个或多个CPU 210A~210C、一个或多个高速缓冲存储器220A~220C、以及I/O接口230。
CPU 210A~210C中的每一个可以产生用于控制至少一个存储刀片400的命令。CPU210A~210C中的每一个可以用于对来自图3中所示的多个存储刀片400之中的至少一个存储刀片400进行划分、分配或指定。CPU 210A~210C中的每一个可以对至少一个被划分、分配或指定的存储刀片400进行初始化。CPU 210A~210C中的每一个可以对在多个存储刀片400中执行的读取或写入操作(或读取或写入程序)进行控制。
为了减少等待时间,高速缓冲存储器220A可以存储用于CPU 210A的数据,高速缓冲存储器220B可以存储用于CPU 210B的数据,并且高速缓冲存储器220C可以存储用于CPU210C的数据。高速缓冲存储器220A~220C可以将用于操作CPU 210A~210C的数据存储在高速缓存行中,并且可以根据相应的存储器420的特性,来确定其中逐出操作被执行的每个存储器的优先级信息。根据一个实施例。高速缓冲存储器220A~220C可以一对一地耦接到CPU210A~210C。例如,高速缓冲存储器220A~220C可以被设置在用于CPU 210A~210C的相应处理器裸片上。
I/O接口230可以通过图3中所示的互联刀片300来支持存储刀片400和CPU210A~210C之间的通信。
I/O接口230可以使用与至少一种有线或无线通信技术相关的协议来控制数据输入/输出(I/O)操作。也就是说,I/O接口230可以将从CPU 210A~210C接收到的发送(Tx)数据输出到互联刀片300,并且可以将从互联刀片300接收到的接收(Rx)数据发送到CPU 210A~210C。
例如,I/O接口230可以根据诸如外围组件快速互连(PCIe)、快速路径互联(QPI)、以太网等的各种协议来支持互联刀片300和CPU 210A~210C之间的数据通信。
图6是示出根据本公开的实施例的图5中所示的高速缓冲存储器220A和220B的示意图。由于该示例中的高速缓冲存储器220A~220C具有相同的结构,所以为了便于描述和更好地理解本公开,在下文中将仅参考来自多个高速缓冲存储器220A~220C之中的一个高速缓冲存储器220A的详细的组成元件来描述本公开的以下实施例。
参考图6,高速缓冲存储器220A可以包括地址解码器211、路块(way block)212、数据处理器213、逐出电路214和特性存储电路215。
在这种情况下,地址解码器211可以对从CPU 210A接收到的地址ADD进行解码,使得地址解码器211可以选择特性存储电路215、逐出电路214和路块212的对应地址。路块212可以包括多个路WAY0~WAY3以在CPU 210A的操作期间存储数据。
在这种情况下,路WAY0~WAY3中的每一个可以包括标签地址、脏标志和数据。可以通过组号和标签地址的组合来创建从CPU请求的地址ADD。因此,为了确定关于从CPU 210A请求的地址的值是否已被存储在高速缓冲存储器220A中,高速缓冲存储器220A可以查询(或检查)通过所请求的地址ADD而自动决定的组中包含的多个路WAY0~WAY3的标签地址。在一个实施例中,可以将特定值(例如,“0”)分配给标签地址,使得标签地址“0”可以指示对应的路的空状态。
脏标志可以指示存储在高速缓冲存储器220A中的数据是否已被存储在存储器420中的每一个中。例如,被激活的(或被使能的)脏标志可以指示存储在路WAY0~WAY3中的每一个中的数据已经被更新并且还没有被存储在存储器420中的每一个中。因此,如果确认从高速缓冲存储器220A被驱出的路的脏标志被激活(或被使能),则可以使用被激活的数据来更新存储器420。
数据处理器213可以处理与高速缓存替换策略相对应的数据。例如,高速缓存替换策略可以指以下操作,其用于使用最近最少使用(LRU)操作或先进先出(FIFO)操作来对高速缓存数据进行替换。在这种情况下,LRU操作可以是用于顺序地替换最近最少使用的数据以提高命中率的功能。FIFO操作可以是用于以与数据被输入的顺序相同的顺序来对数据进行替换的功能。
高速缓冲存储器220A的特征可以在于,当由于空间有限而出现高速缓存满状态时,应该删除现存数据(即遗留数据)以加载新数据。为此,基于在高速缓存满状态下数据处理器213的操作,逐出电路214可以删除将被引用的概率为低的数据,或者将相同的数据写回主存储器中,并且然后可以用新的数据来替换对应的空间的数据。根据一个实施例的逐出电路214可以基于存储在特性存储电路215中的特性信息来确定执行逐出操作的每个存储器的优先级信息。
特性存储电路215可以存储关于第一组存储器420A的特性信息、关于第二组存储器420B的特性信息、以及关于第三组存储器420C的特性信息。例如,特性存储电路215可以存储关于上述第一组存储器420A的数据存取速度信息。假设第一组存储器420A的每一个存储器可以包括四个DRAM,则特性存储电路215可以存储包含在第一组存储器420A中的四个DRAM中的每一个的数据存取速度信息。来自包含在第一组存储器420A中的四个存储器之中的两个存储器可以具有与快操作速度相对应的快特性(FF),并且其余的两个存储器可以具有与慢操作速度相对应的慢特性(SS)。
在这种情况下,特性存储电路215可以将每个存储器的数据存取速度信息存储为1比特位数据。例如,如果存储器具有快特性(FF),则数据“0”可以被存储在特性存储电路215中。如果存储器具有慢特性,则数据“1”可以被存储在特性存储电路215中。在其他实施例中,可以使用更多的比特位来存储特性,以在性能级别方面指定更多的等级。
在传统的仅使用数据处理器213的命中率来逐出(或移除)高速缓存数据的过程中,根本不考虑未命中损失。尽管使用命中率确实在一定程度上说明了未命中(例如,未命中是命中的相反),这些未命中的未命中损失表现为延迟(delay),其取决于包括存储性能特性的许多因素。因此,根据本公开的实施例的数据处理系统可以通过特性存储电路215来存储存储器420的特性信息。数据处理系统可以在考虑所存储的存储器420的特性的情况下来逐出(或移除)高速缓存数据。
图7和8是示出根据本公开的实施例的图6中所示的逐出电路的操作的流程图。为了便于描述,图7和图8中所示的示例示出了在其中存储器420是DRAM的实施例。另外,图7和8的示例示出了数据处理器213使用LRU操作来替换高速缓存数据。
如上所述,存储器420可以根据CPU 210A和存储器420之间的相对位置或存储器420的温度环境而具有不同的数据存取速度,使得相应存储器420可以具有不同的特性。根据实施例,关于相应存储器420的特性的信息可以被存储在特性存储电路215中。逐出电路214可以确定相应存储器的优先级信息,使得逐出电路214可以不仅根据所确定的优先级信息而且还根据存储在特性存储电路215中的信息来执行对高速缓存行的逐出。
例如,具有快特性(FF)的存储器的未命中损失可能与具有慢特性(SS)的存储器不同。例如,FAST(快)存储器可能具有比其他SLOW(慢)存储器小的未命中损失。
在这种情况下,未命中损失可以表示要执行由于出现未命中的高速缓存而引起的行填充操作所消耗的时间。更详细地,行填充操作可以表示:高速缓冲存储器因为出现至少一个未命中的高速缓存而对外部的主存储器进行存取,使得高速缓冲存储器的对应的行被存储在主存储器中的数据填充。由于FAST存储器的存取时间比其他SLOW存储器的存取时间快,因此可以通过先使用FAST存储器执行逐出操作来减少未命中损失。
因此,在FAST存储器中可以先执行逐出操作,使得具有低未命中损失的数据可以被存储在高速缓冲存储器220A中。
图7是示出逐出电路214搜索其中数据逐出将先被执行的存储器以及然后在该对应的存储器中执行LRU操作的过程的流程图。
参考图7,在步骤S1中,逐出电路214可以基于存储在特性存储电路215中的特性信息来确定在高速缓冲存储器中存在或不存在FAST DRAM区域。如果在步骤S1中FAST DRAM区域存在于高速缓冲存储器中,则可以将该FAST DRAM区域确定为逐出块。在步骤S2中,逐出电路214可以通过数据处理器213而在该FAST DRAM区域内执行LRU操作。在步骤S4中,逐出电路214可以根据LRU操作来执行对高速缓存数据的逐出。相反,如果在步骤S1中FAST DRAM区域不存在于高速缓冲存储器中,即在步骤S1中确定SLOW DRAM区域存在于高速缓冲存储器中,则可以将SLOW DRAM区域指定为逐出块。在步骤S3中,逐出电路214可以通过数据处理器213在SLOW DRAM区域内执行LRU操作。此后,逐出电路214可以在步骤S4中根据LRU操作来执行对高速缓存数据的逐出。
图8是示出逐出电路214先执行LRU操作和搜索其中数据逐出将被执行的存储器的流程图。
参考图8,在步骤S10中,逐出电路214可以通过数据处理器213来执行LRU操作。此后,在步骤S11中,逐出电路214可以基于存储在特性存储电路215中的特性信息来确定其中数据逐出将被执行的存储器的优先级信息。
此后,在步骤S12中,逐出电路214可以确定其中数据逐出将先被执行的第一优先级存储器是否是SLOW DRAM。如果在步骤S12中确定第一优先级存储器是SLOW DRAM,则在步骤S13中逐出电路214可以确定第二优先级存储器是否是SLOW DRAM。
如果在步骤S12中第一优先级存储器不是SLOW DRAM,则逐出电路214可以将FASTDRAM确定为第一优先级存储器。更详细地,逐出电路214可以将FAST DRAM的未命中损失值彼此进行比较,在步骤S14中可以将来自多个FAST DRAM之中的具有较低未命中损失的一个FAST DRAM确定为第一优先级存储器,并且在步骤S16中可以执行对所确定的第一优先级存储器内的至少一个高速缓存行的逐出。
尽管第一优先级存储器是SLOW DRAM并且第二优先级存储器不是SLOW DRAM,但是优先级顺序被改变,使得FAST DRAM可以被确定为第一优先级存储器。尽管FAST DRAM不是第一优先级存储器,但是FAST DRAM的优先级顺序可以改变为第一优先级存储器,从而可以先在FAST DRAM中执行逐出操作。也就是说,FAST DRAM的未命中损失值可以被互相比较,在步骤S14中具有较低未命中损失的任何FAST DRAM可以被确定为第一优先级存储器,并且在步骤S16中可以在所确定的第一优先级存储器中执行对高速缓存行的逐出。
相反,当第一优先级存储器和第二优先级存储器是SLOW DRAM时,可以将FASTDRAM确定为第二优先级存储器,而不是将SLOW DRAM确定为第二优先级存储器。换句话说,可以将FAST DRAM的未命中损失值互相比较,从而在步骤S15中可以将具有较低未命中损失的任何FAST DRAM确定为第二优先级存储器,并且在步骤S16中可以在所确定的第二优先级存储器中执行对高速缓存行的逐出。
从以上描述显而易见的是,根据本公开的实施例的数据处理系统在高速缓存管理期间可以考虑存储器特性来确定逐出块,从而减少未命中损失。
本领域技术人员将理解,在不脱离本公开的精神和基本特性的情况下,可以以除了本文所述之外的其他特定方式来实施实施例。因此,上述实施例在所有方面都被解释为说明性的而非限制性的。本公开的范围应该根据所附权利要求及其合法等同物来确定,而不是根据以上描述来确定。此外,落入所附权利要求的含义和等同范围内的所有改变都旨在被包含在其中。另外,对于本领域技术人员来说显而易见的是,在所附权利要求中未明确引用彼此的权利要求可以组合地呈现为实施例,或者在提交本申请之后通过随后的修改被包括为新的权利要求。
尽管已经描述了许多说明性实施例,但是应该理解,本领域技术人员可以设计出将落入本公开的原理的精神和范围内的大量的其他修改和实施例。特别地,在本公开内容、附图和所附权利要求的范围内的组成部件和/或布置中的许多变化和修改是可能的。除了组成部件和/或布置的变化和修改之外,替代性的使用对于本领域技术人员而言也是显而易见的。
附图中每个元件的符号
220A:高速缓冲存储器
211:地址解码器
212:路块
213:数据处理器
214:逐出电路
215:特性存储电路。

Claims (20)

1.一种数据处理系统,包括:
计算刀片,其被配置为产生用以存储数据的写入命令和用以读取数据的读取命令;以及
存储刀片,其被配置为响应于所述读取命令和所述写入命令来在多个存储器中选择性地执行读取操作和写入操作,
其中,所述计算刀片具有高速缓冲存储器,所述高速缓冲存储器存储关于所述多个存储器中的每个存储器的性能特性的信息,并且所述计算刀片被配置为基于所存储的信息来确定对高速缓存行进行逐出的优先级信息。
2.根据权利要求1所述的数据处理系统,还包括:
互联刀片,其被配置为在所述计算刀片与所述存储刀片之间传送数据。
3.根据权利要求1所述的数据处理系统,其中,所述存储刀片包括:
所述多个存储器,所述读取操作和所述写入操作在其中被执行;以及
控制器,其被配置为响应于从所述计算刀片接收到的请求而选择性地对所述多个存储器进行存取。
4.根据权利要求3所述的数据处理系统,其中,所述控制器包括:
数据控制器,其被配置为控制在所述计算刀片与所述多个存储器之间传送的数据;
多个存储器控制器,其被配置为控制所述数据控制器与所述多个存储器之间的数据的传送;以及
输入/输出I/O接口,其为所述数据控制器与所述计算刀片之间的接口。
5.根据权利要求4所述的数据处理系统,其中:
响应于所述写入命令,所述数据控制器从所述计算刀片接收要被写入的数据,并将接收到的数据写入来自所述多个存储器之中的第一存储器;以及
响应于所述读取命令,所述数据控制器读取存储在来自所述多个存储器之中的第二存储器中的数据,并将读取的数据输出至所述计算刀片。
6.根据权利要求1所述的数据处理系统,其中,所述多个存储器包括:
第一组存储器,其处于第一温度环境中;
第二组存储器,其处于第二温度环境中;以及
第三组存储器,其处于第三温度环境中,
其中,所述第二温度低于所述第一温度,并且所述第三温度低于所述第二温度。
7.根据权利要求6所述的数据处理系统,其中,所述第一组存储器、所述第二组存储器和所述第三组存储器为相同种类的存储器。
8.根据权利要求6所述的数据处理系统,其中,所述多个存储器具有不同的性能特性。
9.根据权利要求6所述的数据处理系统,其中:
所述第一组存储器具有第一存取速度;
所述第二组存储器具有第二存取速度,所述第二存取速度比所述第一存取速度快;以及
所述第三组存储器具有第三存取速度,所述第三存取速度比所述第二存取速度快。
10.根据权利要求1所述的数据处理系统,其中,所述计算刀片包括:
中央处理单元,其被配置为产生用以控制所述存储刀片的命令;
所述高速缓冲存储器,其被配置为:将用于所述中央处理单元的数据存储在高速缓存行中,以及基于所述性能特性来确定要被执行对所述高速缓存行的逐出操作的存储器的优先级信息;以及
输入/输出接口,其在所述中央处理器与所述存储刀片之间。
11.根据权利要求10所述的数据处理系统,其中,所述高速缓冲存储器包括:
路块,其被配置为存储用于中央处理单元的高速缓存的数据;
数据处理器,其被配置为对数据进行处理以执行对所述高速缓存行的逐出;
特性存储电路,其被配置为存储所述性能特性;以及
逐出电路,其被配置为:响应于所述性能特性而确定所述存储器的优先级信息,并且根据所确定的优先级信息来在所述存储器中执行所述逐出操作。
12.根据权利要求11所述的数据处理系统,其中,所述高速缓冲存储器还包括:
地址解码器,其被配置为对从所述中央处理单元接收到的地址进行解码。
13.根据权利要求11所述的数据处理系统,其中,所述数据处理器使用最近最少使用操作来替换所述高速缓存的数据。
14.根据权利要求11所述的数据处理系统,其中,所述数据处理器使用先进先出操作来替换所述高速缓存的数据。
15.根据权利要求11所述的数据处理系统,其中,所述性能特性包括数据存取速度、刷新周期和片上泄漏量中的任何一种。
16.根据权利要求11所述的数据处理系统,其中所述逐出电路将数据存取速度具有快特性的存储器确定为第一优先级存储器,并且将数据存取速度具有慢特性的存储器确定为第二优先级存储器。
17.根据权利要求11所述的数据处理系统,其中,所述数据处理器被配置为:在确定所述存储器的所述优先级信息之后利用所述数据处理器来对数据进行处理。
18.根据权利要求11所述的数据处理系统,其中,所述系统在所述数据处理器对数据进行处理之后确定所述存储器的所述优先级信息。
19.根据权利要求18所述的数据处理系统,其中,当数据存取速度具有慢特性的存储器被确定为第一优先级存储器并且数据存取速度具有快特性的存储器被确定为第二优先级存储器时,所述逐出电路将第一优先级分配给具有快特性的存储器,使得具有快特性的存储器变为第一优先级存储器。
20.根据权利要求18所述的数据处理系统,其中,当具有慢的数据存取速度的存储器被分别确定为第一优先级存储器和第二优先级存储器时,所述逐出电路将第二优先级分配给具有快的数据存取速度的存储器,使得所述具有快的数据存取速度的存储器变为第二优先级存储器。
CN201910197794.8A 2018-11-21 2019-03-15 数据处理系统 Active CN111209227B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0144288 2018-11-21
KR1020180144288A KR20200059493A (ko) 2018-11-21 2018-11-21 데이터 처리 시스템

Publications (2)

Publication Number Publication Date
CN111209227A true CN111209227A (zh) 2020-05-29
CN111209227B CN111209227B (zh) 2023-08-18

Family

ID=70726348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910197794.8A Active CN111209227B (zh) 2018-11-21 2019-03-15 数据处理系统

Country Status (5)

Country Link
US (1) US10860498B2 (zh)
JP (1) JP2020087409A (zh)
KR (1) KR20200059493A (zh)
CN (1) CN111209227B (zh)
TW (1) TW202020674A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544063B2 (en) * 2018-11-21 2023-01-03 SK Hynix Inc. Memory system and data processing system including the same

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717884A (en) * 1996-02-02 1998-02-10 Storage Technology Corporation Method and apparatus for cache management
CN1991792A (zh) * 2005-09-30 2007-07-04 英特尔公司 用于有效使用高速缓存及存储器的指令辅助高速缓存管理
CN101739357A (zh) * 2008-11-21 2010-06-16 辉达公司 多类数据高速缓存策略
CN102576350A (zh) * 2009-08-21 2012-07-11 谷歌公司 高速缓存信息的系统及方法
CN102792289A (zh) * 2010-03-08 2012-11-21 惠普发展公司,有限责任合伙企业 数据存储装置和方法
US20120311269A1 (en) * 2011-06-03 2012-12-06 Loh Gabriel H Non-uniform memory-aware cache management
CN107852379A (zh) * 2015-05-22 2018-03-27 格雷研究有限公司 用于现场可编程门阵列的定向二维路由器和互连网络、以及所述路由器和网络的其他电路和应用
CN108139905A (zh) * 2015-10-29 2018-06-08 英特尔公司 用于从持久存储器预取信息的指令和逻辑
US20180165211A1 (en) * 2016-12-12 2018-06-14 Samsung Electronics Co., Ltd. System and method for store streaming detection and handling
CN108734627A (zh) * 2017-04-17 2018-11-02 英特尔公司 按工作负荷的自适应高速缓存定大小

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05289760A (ja) * 1992-04-06 1993-11-05 Mitsubishi Electric Corp 基準電圧発生回路
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7206902B2 (en) 2004-08-17 2007-04-17 Nvidia Corporation System, apparatus and method for predicting accesses to a memory
KR100782592B1 (ko) 2006-08-10 2007-12-06 엠텍비젼 주식회사 공유 메모리를 구비한 장치 및 공유 메모리 제어 방법
US8102663B2 (en) 2007-09-28 2012-01-24 Oracle America, Inc. Proximity communication package for processor, cache and memory
US8095738B2 (en) 2009-06-15 2012-01-10 International Business Machines Corporation Differential caching mechanism based on media I/O speed
US8539163B1 (en) 2010-12-17 2013-09-17 Amazon Technologies, Inc. Speculative reads
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US8792511B2 (en) 2011-04-18 2014-07-29 Lsi Corporation System and method for split ring first in first out buffer memory with priority
JP5888050B2 (ja) 2012-03-27 2016-03-16 株式会社ソシオネクスト 半導体集積回路およびそのdma制御方法
US8922243B2 (en) 2012-12-23 2014-12-30 Advanced Micro Devices, Inc. Die-stacked memory device with reconfigurable logic
KR20140024593A (ko) 2012-08-20 2014-03-03 에스케이하이닉스 주식회사 시스템 패키지
US9235513B2 (en) * 2012-10-18 2016-01-12 International Business Machines Corporation Cache management based on physical memory device characteristics
US9218285B2 (en) * 2012-11-26 2015-12-22 Arm Limited Variable mapping of memory accesses to regions within a memory
KR102029806B1 (ko) 2012-11-27 2019-10-08 삼성전자주식회사 선입선출 버퍼를 포함하는 시스템 온 칩, 응용 프로세서 및 그것을 포함하는 모바일 장치
US9170948B2 (en) 2012-12-23 2015-10-27 Advanced Micro Devices, Inc. Cache coherency using die-stacked memory device with logic die
US9135185B2 (en) 2012-12-23 2015-09-15 Advanced Micro Devices, Inc. Die-stacked memory device providing data translation
KR102070136B1 (ko) 2013-05-03 2020-01-28 삼성전자주식회사 프리페치를 위한 캐시 제어 장치 및 그 캐시 제어 장치를 이용한 프리페치 방법
KR20140147213A (ko) 2013-06-19 2014-12-30 에스케이하이닉스 주식회사 프리페치 동작을 제어하는 반도체 장치
GB2516831B (en) 2013-07-31 2020-10-21 Advanced Risc Mach Ltd Error code management in systems permitting partial writes
US9612975B2 (en) 2014-11-20 2017-04-04 Samsung Electronics Co., Ltd. Page cache device and method for efficient mapping
US10417134B2 (en) * 2016-11-10 2019-09-17 Oracle International Corporation Cache memory architecture and policies for accelerating graph algorithms
JP6979777B2 (ja) 2017-03-22 2021-12-15 キヤノン株式会社 インターフェース装置およびその制御方法
US10496561B2 (en) 2017-04-18 2019-12-03 Advanced Micro Devices, Inc. Resilient vertical stacked chip network for routing memory requests to a plurality of memory dies
KR102469811B1 (ko) 2017-12-20 2022-11-24 에스케이하이닉스 주식회사 서비스품질 제어를 위한 선입선출 버퍼 시스템
US10713173B2 (en) * 2018-09-06 2020-07-14 Intel Corporation Memory controller with pre-loader

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717884A (en) * 1996-02-02 1998-02-10 Storage Technology Corporation Method and apparatus for cache management
CN1991792A (zh) * 2005-09-30 2007-07-04 英特尔公司 用于有效使用高速缓存及存储器的指令辅助高速缓存管理
CN101739357A (zh) * 2008-11-21 2010-06-16 辉达公司 多类数据高速缓存策略
CN102576350A (zh) * 2009-08-21 2012-07-11 谷歌公司 高速缓存信息的系统及方法
CN102792289A (zh) * 2010-03-08 2012-11-21 惠普发展公司,有限责任合伙企业 数据存储装置和方法
US20120311269A1 (en) * 2011-06-03 2012-12-06 Loh Gabriel H Non-uniform memory-aware cache management
CN107852379A (zh) * 2015-05-22 2018-03-27 格雷研究有限公司 用于现场可编程门阵列的定向二维路由器和互连网络、以及所述路由器和网络的其他电路和应用
CN108139905A (zh) * 2015-10-29 2018-06-08 英特尔公司 用于从持久存储器预取信息的指令和逻辑
US20180165211A1 (en) * 2016-12-12 2018-06-14 Samsung Electronics Co., Ltd. System and method for store streaming detection and handling
CN108734627A (zh) * 2017-04-17 2018-11-02 英特尔公司 按工作负荷的自适应高速缓存定大小

Also Published As

Publication number Publication date
US10860498B2 (en) 2020-12-08
JP2020087409A (ja) 2020-06-04
CN111209227B (zh) 2023-08-18
KR20200059493A (ko) 2020-05-29
TW202020674A (zh) 2020-06-01
US20200159671A1 (en) 2020-05-21

Similar Documents

Publication Publication Date Title
CN110008149B (zh) 融合式存储器件及其操作方法
US11163699B2 (en) Managing least recently used cache using reduced memory footprint sequence container
KR20200030325A (ko) 스토리지 장치 및 시스템
KR101845371B1 (ko) 오프-다이 캐시 메모리의 태그들의 세트들을 캐시하기 위한 방법, 장치, 및 시스템
CN112262365B (zh) 存储器系统或子系统中的等待时间指示
CN111338561B (zh) 存储器控制器与存储器页面管理方法
US11243716B2 (en) Memory system and operation method thereof
US20180088853A1 (en) Multi-Level System Memory Having Near Memory Space Capable Of Behaving As Near Memory Cache or Fast Addressable System Memory Depending On System State
WO2018022175A1 (en) Techniques to allocate regions of a multi level, multitechnology system memory to appropriate memory access initiators
US20230094634A1 (en) Memory system and data processing system including the same
US10908846B2 (en) Memory system and operation method thereof
WO2014172078A1 (en) A cache allocation scheme optimized for browsing applications
US20190303032A1 (en) Memory system, operating method thereof and computing system inclduing the memory system
CN111209227B (zh) 数据处理系统
KR101823983B1 (ko) 메모리 디바이스들 및 방법들
CN109983444A (zh) 具有不同高速缓存结构和支持对不同高速缓存结构的并发查找的存储器控制器的多级系统存储器
US20190163639A1 (en) Caching bypass mechanism for a multi-level memory
CN107038126B (zh) 存储系统
US10691625B2 (en) Converged memory device and operation method thereof
CN111208939B (zh) 存储器系统以及存储器系统的操作方法
US11016666B2 (en) Memory system and operating method thereof
US11899585B2 (en) In-kernel caching for distributed cache
US20220229552A1 (en) Computer system including main memory device having heterogeneous memories, and data management method thereof

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