CN105393227A - 存储器控制的数据移动及时序 - Google Patents
存储器控制的数据移动及时序 Download PDFInfo
- Publication number
- CN105393227A CN105393227A CN201480038337.XA CN201480038337A CN105393227A CN 105393227 A CN105393227 A CN 105393227A CN 201480038337 A CN201480038337 A CN 201480038337A CN 105393227 A CN105393227 A CN 105393227A
- Authority
- CN
- China
- Prior art keywords
- request
- data
- several
- instruction
- storer
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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 Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明包含用于存储器控制的数据移动及时序的设备、电子装置可读媒体及方法。若干个电子装置可读媒体可存储可由电子装置执行以提供对存储器内的数据移动操作的可编程控制的指令。所述存储器可独立于任何相关联处理器而针对所述存储器与所述相关联处理器之间的交互提供时序控制。
Description
技术领域
本发明一般来说涉及半导体存储器及方法,且更特定来说涉及用于存储器控制的数据移动及时序的设备、电子装置可读媒体及方法。
背景技术
存储器装置通常被提供作为计算装置或其它电子装置中的内部半导体集成电路。存在包含易失性及非易失性存储器的许多不同类型的存储器。易失性存储器可需要电力来维持其数据(例如,用户数据、错误数据等),且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)以及其它存储器。非易失性存储器可通过在不被供电时存留所存储数据而提供持久数据,且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁阻式随机存取存储器(MRAM)以及其它。
计算装置通常包含耦合到主存储器(例如,DRAM)及辅助存储器(例如,存储装置,例如硬盘驱动器或固态驱动器)的若干个处理器。主存储器接口通常紧紧地耦合到或从属于处理器。在DRAM中,这是通过处理器的存储器控制器管理明确定时的接口(例如,经由行地址选通(RAS)/列地址选通(CAS)协议)来完成。存储器通常已针对密度优化且处理器通常已针对速度优化,从而在两者之间造成称为存储器墙或冯·诺伊曼(vonNeumann)瓶颈的差异。此差异通常使得处理器与存储器之间的带宽成为比处理器的速度或存储器的密度更具限制性的资源。
附图说明
图1图解说明根据本发明的若干个实施例呈计算装置的形式的设备的框图,所述计算装置包含若干个处理器、若干个主存储器装置及其之间的接口。
图2图解说明根据本发明的若干个实施例的处理器与主存储器之间的数据移动操作。
图3包含根据本发明的若干个实施例耦合于存储器装置与请求装置之间的逻辑装置的较详细视图的图解说明。
图4图解说明根据本发明的若干个实施例的若干个基于地址及偏移的请求及响应的框图。
具体实施方式
处理器与主存储器之间的抽象存储器接口可提供与处理器的显式控制解耦的定时(及在一些实例中,解耦的命名)。具有抽象接口的主存储器的实例是混合存储器立方体(HMC)。在HMC中,此功能是通过与硬件逻辑(例如,逻辑层存储器控制件)耦合的经包化网络协议而实现。此些接口可允许简化的处理器侧存储器控制器接口、主存储器请求的无序返回、主存储器的局部RAS及/或CAS管理、多处理器设备(同构及异构两者)中的高级存储器拓扑及共享策略、局部管理的同步功能及元数据存储以及复原力(例如,其中可(例如)由存储器中的逻辑层重新映射存储器的有故障部分(例如字或块))。
例如高性能计算、基于图表的分析、数据挖掘、国家安全、数据库技术及其它商业驱动器等应用展现出不适合于许多处理器的基于高速缓冲存储器的架构的稀疏存储器存取模式,其中数据通常展现不良空间局部性及/或时间局部性。主存储器的一般化数据移动功能可提供较好地利用存储器带宽及基于高速缓冲存储器的架构的机会。
本发明包含用于存储器控制的数据移动及时序的设备、电子装置(例如,计算装置)可读媒体及方法。若干个电子装置可读媒体存储可由电子装置执行以提供对存储器(例如,主存储器)内的数据移动操作的可编程控制的指令。主存储器可独立于任何相关联处理器而针对存储器与相关联处理器之间的交互提供时序控制。如所属领域的技术人员将了解,“主存储器”是描述存储可由处理器直接存取及操纵的数据的存储器的技术术语。主存储器的实例是DRAM。主存储器提供数据的初级存储且可为易失性存储器或非易失性存储器(例如,在非易失性RAM经管理作为主存储器的情况中,例如非易失性双列直插式存储器模块(DIMM))。次级存储可用以提供数据的次级存储且可不被处理器直接存取。然而,如本文中所使用,“主存储器”未必一定是易失性存储器,且在一些实施例中可为非易失性存储器。
在本发明的以下详细说明中,参考形成其一部分且其中以图解说明方式展示可如何实践本发明的一或多个实施例的附图。足够详细地描述这些实施例旨在使得所属领域的技术人员能够实践本发明的实施例,且应理解,可在不背离本发明的范围的情况下利用其它实施例并可做出过程、电及/或结构改变。如本文中所使用,尤其是相对于图式中的参考编号的标示符“B”、“L”、“M”、“N”及“P”指示可包含若干个如此标示的特定特征。如本文中所使用,“若干个”特定事物可指代此些事物中的一或多者(例如,若干个存储器装置可指代一或多个存储器装置)。
本文中的各图遵循其中第一个数字或前几个数字对应于图式图编号且其余数字识别图式中的元件或组件的编号惯例。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,在图1中,106可指代元件“06”,且在图2中类似元件可指代为206。如将了解,可添加、交换及/或消除本文中的各种实施例中所展示的元件以便提供本发明的若干个额外实施例。另外,如将了解,各图中所提供的元件的比例及相对标度打算图解说明本发明的某些实施例且不应视为具有限制性意义。
图1图解说明根据本发明的若干个实施例呈计算装置100的形式的设备的框图,计算装置100包含若干个处理器102-1、…、102-P、若干个主存储器装置104-1、…、104-M及其之间的接口106。如本文中所使用,计算装置100、处理器102、存储器装置104或接口106也可单独地视为“设备”。计算装置100可为包含处理器及存储由所述处理器存取的数据的主存储器的任何电子装置。计算装置100的实例包含超级计算机、个人计算机、视频卡、声卡及移动电子装置,例如膝上型计算机、平板计算机、智能电话等等。
处理器102-1、…、102-P可为任何类型的通用处理器。举例来说,处理器102-1、…、102-P可为基于高速缓冲存储器的处理器、向量处理器(例如,单指令多数据(SIMD))、标量处理器(例如,单指令单数据(SISD)、多指令单数据(MISD)、多指令多数据(MIMD)处理器)等。在一些实施例中,处理器102-1、…、102-P不提供对主存储器装置104-1、…、104-M的时序控制。处理器102-1、…、102-P可经配置以在不知晓与请求相关联的读取时间(例如,处理器102-1、…、102-P可不控制及/或不知晓何时将由处理器102-1、…、102-P接收所请求数据)的情况下经由接口106将所述请求发送到主存储器装置104-1、…、104-M。来自处理器102-1、…、102-P的请求可不具有与其相关联的时序,从而将何时对请求做出响应的确定留给主存储器装置104-1、…、104-M。
主存储器装置104-1、…、104-M可存储由处理器102-1、…、102-P操作的数据。主存储器装置的实例包含DRAM及HMC以及其它。然而,根据本发明的若干个实施例,主存储器装置104-1、…、104-M可独立于处理器102-1、…、102-P而针对主存储器装置104-1、…、104-M与处理器102-1、…、102-P之间的交互而控制其时序。举例来说,主存储器装置104-1、…、104-M可提供其自身对行地址选通(RAS)及/或列地址选通(CAS)的时序控制,以存取主存储器装置104-1、…、104-M。此时序控制的实例包含随机读取或写入循环时间、存取时间等。
在一些实施例中,可(例如,通过由程序员所提供的可执行指令)提供对主存储器装置104-1、…、104-M内的数据移动操作的可编程控制。此些操作的实例包含收集/分散操作、基于地址的操作、基于偏移的操作、跨步操作、基于指针的操作等。增强的数据移动语义可对程序员揭露(根据一些先前方法,程序员不具备控制主存储器204中的数据移动操作的能力)。此些实施例可有益于允许编写通过在将数据跨越接口106传送到处理器以供进一步操作之前在主存储器装置104-1、…、104-M内移动所述数据而减少对接口106的带宽的使用的指令。益处可包含减少计算或此些操作的序列的总等待时间。本文中描述主存储器装置104-1、…、104-M内的此些移动操作的更特定实例。举例来说,主存储器装置104-1、…、104-M可存储数据结构且独立于来自处理器102-1、…、102-P的指令流而遍历所述数据结构。尽管处理器102-1、…、102-P可向主存储器装置104-1、…、104-M请求某些数据,但主存储器装置104-1、…、104-M可独立地遍历所述数据结构且移动数据以便对来自处理器102-1、…、102-P的对数据的请求较有效地(例如,就对接口106的带宽的使用来说)做出响应,但来自处理器102-1、…、102-P的请求并不具体地请求数据移动。除较有效地利用接口106的带宽以外,本发明的实施例可通过跨越接口106较少次传输(例如,传输密集数据,此需要比传输稀疏数据少的传送)实现等效结果而减少与接口106的使用相关联的功率消耗。
图2图解说明根据本发明的若干个实施例的处理器202与主存储器204之间的数据移动操作。处理器202可类似于图1中所图解说明的处理器102-1、…、102-P。处理器202可为基于高速缓冲存储器的处理器且可包含(举例来说)处理单元208(例如,中央处理单元“CPU”)、耦合到处理单元208的第一级高速缓冲存储器“L1”210-1、耦合到第一级高速缓冲存储器210-1的第二级高速缓冲存储器“L2”210-2及耦合到第二级高速缓冲存储器210-2的若干个额外级高速缓冲存储器“LN”210-L。第一级高速缓冲存储器210-1、第二级高速缓冲存储器210-2及额外级高速缓冲存储器210-L可在本文中统称为高速缓冲存储器210。实施例并不限于高速缓冲存储器级的特定数目且可包含比图2中所图解说明的数目多或少的数目。可由处理单元208使用高速缓冲存储器210通过存储来自主存储器204的频繁使用的数据来减少存取主存储器204的平均时间。由处理单元208存取高速缓冲存储器210的等待时间小于由处理单元208经由接口206存取主存储器204的等待时间。接口206可类似于图1中所图解说明的接口106且主存储器204可类似于图1中所图解说明的主存储器装置104-1、…、104-M。
图2还图解说明高速缓冲存储器210中的高速缓存行212的表示。图式中位于高速缓冲存储器210下方的每一行表示一高速缓存行且以由每一块中的“x”指示的数据来图解说明特定高速缓存行212。高速缓冲存储器210可具有固定高速缓存行大小(例如,可存储于高速缓存行中的某一数目个数据字节)。与高速缓冲存储器(例如,来自主存储器204)的交互可以等于单个高速缓存行大小的数据部分的固定数据增量发生。根据本发明的若干个实施例,主存储器204可经配置以通过将分布于主存储器204中的数据收集到单个高速缓存行大小的数据部分216中而对来自处理器202的对数据的请求做出响应。关于图2,由主存储器204的行214中的“x”条目表示分布于主存储器204中的数据。所述主存储器可经配置以在将如所展示的数据(x)跨越接口206传送到处理器202之前将所述数据收集到单个高速缓存行大小的数据部分216中。如所图解说明,所请求数据可非连续地分布于主存储器204中,使得所请求数据及周围数据包括多个高速缓存行大小的数据部分。如本文中所描述,主存储器204可控制操作(例如,收集操作)的时序且处理器202可能不知晓与对数据的请求相关联的读取时间(例如,处理器可不知道或不控制数据何时将被从主存储器204发送到处理器202)。
相比之下,用以存取主存储器204的一些先前方法包含处理器202控制操作的时序。此外,此种对数据的请求原本是以通过传送含有所请求数据(x)的每一行214而非首先将数据收集到单个高速缓存行大小的数据部分216中而来自主存储器204的多个响应来满足。此些先前方法将消耗接口206的较大带宽,因为每一行214将可能与非请求数据(例如,并未由处理器202请求的周围数据(由空白方框表示))一起跨越接口被单独地发送。接着将由处理器202来处理(例如,筛选)从主存储器204接收的数据以隔离并进一步操作所请求数据(例如x)。然而,根据本发明,可在不发送非请求数据的情况下将所请求数据发送到处理器。
根据本发明的若干个实施例,来自处理器的请求可包含若干个属性的指示。属性可为定义对象、元素或文件的性质的规格。属性可指代给定数据实例的特定值。举例来说,在主存储器存储包括图像的数据的情况下,所述图像的属性可为具有特定色彩的像素值(其中所述特定色彩是属性)。响应于来自处理器的对存储于主存储器204中的属性的请求,主存储器204可检查存储于主存储器中的数据结构以确定所述数据结构是否包含所述属性。主存储器204可响应于确定数据结构包含所述属性而将指示所述属性的数据(例如,指示图像中的特定色彩的数据)返回到处理器202。所述若干个属性可为将从主存储器204收集的属性或将分散到主存储器204的属性。其中收集操作可尤其有益的请求(来自处理器202)的类型的实例可为搜索请求(例如,“在存储于数据结构中的数据当中,请返回匹配准则的值”,其中“x”表示匹配所述准则的数据)及筛选请求(例如,“在存储于数据结构中的数据当中,请返回给定谓词针对其返回布林(Boolean)真值的值”,其中“x”表示针对谓词返回布林真值的数据)。
根据本发明的一些实施例,在处理器202已修改所请求数据之后,其可将经修改数据返回到主存储器装置204。主存储器装置204可接收经修改数据(例如,单个高速缓存行大小的经修改数据部分216)、分散经修改数据,使得其在与从中收集所请求数据的位置相同的位置中存储于主存储器装置204的数据结构中。因此,可经由主存储器204内的数据移动操作(例如,收集及/或分散操作)而提供可编程控制。
主存储器204(例如,与主存储器204相关联的硬件逻辑)可经配置以提供主存储器204中从中收集数据的位置不可用直到由处理器202释放所收集数据为止的指示。此些实施例可提供同步机制(例如,使得不会响应于例如直接存储器存取(DMA)请求或来自另一处理器的请求的另一请求而递送过期数据)。所述指示可为表、满/空位或一系列基址寄存器及界限寄存器以及其它指示。
在若干个实施例中,来自处理器202的请求可为由主存储器204修改数据,其中所述数据分布于主存储器204的数据结构中。主存储器204(例如,其硬件逻辑)可经配置以提供对主存储器204内的数据的修改(例如,经由存储器中处理(PIM))。响应于所述请求,主存储器204可基于所述数据结构而在主存储器204中发起并执行数据收集操作。主存储器204可经配置以在所述主存储器中发起并执行对所收集数据的数据修改操作(例如,并不跨越存储器接口206传送数据及/或并不使用处理器)。修改操作的实例包含调整所收集数据(例如,所收集数据的每一单元)的值。此一实例在以下情况中可为有益的:设备是(举例来说)视频卡且所请求修改是(举例来说)在处理器202对包括存储于主存储器204中的图像的数据执行较复杂操作或将其传送到外围装置(例如,监视器)之前增加所述图像中的特定色彩的亮度。主存储器204可经配置以在完成修改之后将经修改数据发送到处理器202。如本文中所描述,主存储器204可独立于处理器202而控制主存储器204的时序。对于其中主存储器204包含在无直接处理器202控制的情况下修改数据(以及移动数据)的能力的那些实施例,主存储器204可被视为处理器202的同级装置(例如,主存储器204可被视为处理器202的高速缓冲存储器210的扩展以扩展地址空间)。
图3图解说明根据本发明的若干个实施例呈计算装置300的形式的设备的框图,计算装置300包含主存储器装置304及若干个请求装置302、318、321。请求装置的实例可包含处理器302、DMA装置318及/或存储器单元321以及其它。处理器302可类似于图1中所图解说明的处理器102-1、…、102-P。存储器单元321可类似于图1中所图解说明的主存储器104及/或类似于除主存储器之外的另一存储器单元。计算装置300可类似于图1中所图解说明的计算装置100。在图3中,展示关于为混合存储器立方体(HMC)的主存储器304的特定实例的更多细节。图3中所图解说明的主存储器HMC304可类似于图1中所图解说明的主存储器装置104-1、…、104-M。
HMC304可为包含使用穿硅通孔(TSV)堆叠在一起的多个存储器装置320-1、320-2、320-3、…、320-B(例如,DRAM裸片)及硬件逻辑装置322(例如,逻辑裸片、专用集成电路(ASIC)、另一装置中的对应逻辑等)的单个封装,但其它实施例可不同(例如,硬件逻辑装置322可未必与存储器装置320堆叠在一起)。HMC304内的存储器可被组织成若干子组324(例如,库),其中每一库324在功能上及操作上独立于其它库324。每一库324可包含来自存储器装置320中的每一者的存储器分区。每一库324可包含逻辑装置322中的硬件逻辑单元328(例如,库控制器),硬件逻辑单元328类似于用于库324的存储器控制器而起作用。每一库控制器324可耦合到所述多个存储器装置320的相应子组。举例来说,库控制器328可管理针对库324的存储器操作,包含确定其自身时序要求(例如,代替由例如处理器等请求装置来管理)。库控制器328可包含用于针对处理器302的请求及响应的若干个缓冲器且可利用所述若干个缓冲器将响应相对于从处理器302接收请求的次序无序地发送到处理器302。因此,处理器302可经配置以在不知晓与请求相关联的读取时间的情况下经由接口将请求发送到HMC304。
图3包含耦合于存储器装置320与请求装置302、318、321之间的逻辑装置322的较详细视图的图解说明。逻辑库322可包含用于每一库的存储器控制逻辑328(例如,库控制件)。库控制器328可耦合到用于HMC304的可加强库324的功能的共享存储器控制逻辑330。然而,共享存储器控制逻辑330在传统意义上未必包括中央存储器控制器,因为库324中的每一者可独立于彼此直接受控制(例如,受控制时序、存取等)且因为共享存储器控制逻辑330未必与请求装置302、318、321介接(例如,直接介接)。因此,在一些实施例中,计算装置300及/或主存储器304不包含中央存储器控制器。存储器控制逻辑330可耦合到交换器332(例如,纵横式交换器)。交换器332可将来自库324的集体内部带宽的可用性提供到输入/输出(I/O)链路336。交换器332可耦合到链路接口控制器334,链路接口控制器334控制到请求装置302、318、321的I/O链路336。举例来说,I/O链路336可为串行全双工输入/输出链路。逻辑装置322可提供用于主存储器304的逻辑/物理接口。
主存储器304可从例如处理器302、DMA装置318及/或存储器单元321以及其它的请求装置接收请求。如本文中所描述,在一些实施例中,主存储器304可经配置以提供主存储器304中的从中收集数据的位置不可用直到由请求装置302、318、321释放所收集数据为止的指示。此些实施例可提供同步机制(例如,使得在正由处理器302操作数据时不会响应于来自DMA装置318的请求而递送过期数据)。
图4图解说明根据本发明的若干个实施例的若干个基于地址及偏移的请求及响应的框图。请求装置(例如,若干个基于高速缓冲存储器的处理器)可将请求提供到主存储器装置,且在一些实施例中,所述请求可包含标签448以允许由请求装置进行的缓冲直到主存储器装置对请求做出响应为止。由于主存储器装置响应于来自请求装置的请求而控制操作的时序,因此请求装置可受益于针对其请求保持对标签448的追踪,使得在主存储器装置对请求做出响应时,请求装置可基于标签448快速地识别所述响应适用于哪个请求。主存储器装置可存储数据结构(例如,链接列表、树及图表以及其它)且经配置以响应于来自请求装置的请求而遍历数据结构。请求可包含基于地址的请求440、基于偏移的请求444、跨步请求及基于指针的请求以及其它。主存储器装置可经配置以依种类做出响应(例如,可以基于地址的响应442来满足基于地址的请求440且可以基于偏移的响应446来满足基于偏移的请求444等)。
基于地址的请求可包含识别请求的标签448、所请求元素的类型及/或大小(例如,字节、字的数目等)的指示450、所请求元素的数目的指示452及其中存储所述元素的若干个地址454-1、…、454-N。基于地址的响应可包含对应于所述请求的标签448及数据元素456-1、…、456-N。
基于偏移的请求可包含识别请求的标签448、所请求元素的类型及/或大小(例如,字节、字的数目等)的指示450、基地址458、所请求元素的数目的指示452及其中存储元素的若干个偏移索引460-1、…、460-N。基于偏移的响应可包含对应于所述请求的标签448及数据元素456-1、…、456-N。
尽管未具体图解说明,但跨步请求与基于偏移的请求的类似之处可在于所述请求可包含识别请求的标签、所请求元素的类型及/或大小(例如,字节、字的数目等)的指示、基地址及若干个所请求元素的指示。然而,代替包含偏移,跨步请求包含步幅(例如,可加到基地址或先前存取的地址以找到下一个所要地址的数目)。跨步响应可包含对应于所述请求的标签及数据元素。
尽管未具体图解说明,但基于指针的请求可包含指向主存储器中的数据结构的指针、若干个属性(例如,将由主存储器从数据结构收集并返回到请求装置的若干个属性)的指示及待解参考的指针列表的指示(例如,包含多少个指针将被解参考的指示)以及针对请求的若干个条件及对应操作。主存储器可根据指针、若干个属性的指示及指针列表的指示而检查数据结构,且响应于对应条件被满足而执行操作。主存储器可通过解参考指针列表直到到达列表的末尾为止或直到已解参考阈值数目个指针为止来检查数据结构。解参考指针可包含检索由指针指示的数据(例如,从主存储器中的由指针指示的位置检索数据)。检查数据结构可包含确定由特定指针参考的数据结构是否包含所述属性且主存储器可响应于确定由所述指针参考的数据结构包含所述属性而将包含所述属性的数据返回到请求装置。在一些实施例中,主存储器可响应于确定由所述指针参考的数据结构包含所述属性而通过复制来自请求装置的请求而产生新请求。
条件及对应操作的实例包含响应于数据匹配设定值或搜索关键字而将包含属性的数据返回到请求装置。另一实例包含响应于匹配执行对包含属性的数据的原子更新。另一实例包含响应于指针的剩余数目是标记值(致使操作结束的值,举例来说,零)或已解参考阈值数目个指针而结束针对所述请求的操作。数据结构的实例包含链接列表、树及图表。
尽管未如此具体地图解说明,但用于存储可执行指令的非暂时性计算装置可读媒体可包含所有形式的易失性存储器及非易失性存储器,包含(通过实例方式)半导体存储器装置、DRAM、HMC、EPROM、EEPROM、快闪存储器装置、磁盘(例如固定磁盘、软磁盘及可装卸磁盘)、包含磁带的其它磁性媒体、光学媒体(例如紧密光盘(CD)、数字多功能光盘(DVD)及蓝光光盘(BD))。指令可由ASIC来补充或并入于ASIC中。
尽管本文中已图解说明及描述了特定实施例,但所属领域的技术人员将了解,旨在实现相同结果的布置可替代所展示的特定实施例。本发明打算涵盖本发明的一或多个实施例的更改或变化形式。应理解,已以说明性方式而非限制性方式做出上文说明。在审阅上文说明之后,所属领域的技术人员将明了上文实施例与本文中未具体描述的其它实施例的组合。本发明的一或多个实施例的范围包含其中使用上文结构及方法的其它应用。因此,本发明的一或多个实施例的范围应参考所附权利要求书连同授权此权利要求书的等效内容的全部范围来确定。
在前述实施方式中,出于简化本发明的目的,将一些特征一起聚集于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比明确陈述于每一权利要求中更多的特征的意图。而是,如所附权利要求书反映:发明性标的物在于少于单个所揭示实施例的所有特征。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求独立地作为单独实施例。
Claims (42)
1.一种存储一组指令的非暂时性电子装置可读媒体,所述指令可由电子装置执行以:
提供对存储器内的数据移动操作的可编程控制;
其中所述存储器独立于任何相关联处理器而针对所述存储器与所述相关联处理器之间的交互提供时序控制。
2.根据权利要求1所述的媒体,其中所述用以提供可编程控制的指令包括用以提供对数据收集操作的可编程控制的指令。
3.根据权利要求1到2中任一权利要求所述的媒体,其中所述用以提供可编程控制的指令包括用以提供对数据分散操作的可编程控制的指令。
4.根据权利要求1所述的媒体,其中所述用以提供可编程控制的指令包括用以提供对跨步数据收集/分散操作的可编程控制的指令。
5.根据权利要求1所述的媒体,其中所述用以提供可编程控制的指令包括用以提供对基于指针的收集/分散操作的可编程控制的指令。
6.一种方法,其包括:
从请求装置接收对存储于存储器中的数据的请求,其中所述所请求数据分布于所述存储器中;
独立于所述请求装置而控制所述存储器的时序;
从所述存储器收集所述所请求数据;及
在不发送环绕所述所请求数据的非请求数据的情况下,将所述所请求数据发送到所述请求装置。
7.根据权利要求6所述的方法,其中:
所述请求装置包括基于高速缓冲存储器的处理器;
所述所请求数据非连续地分布于所述存储器中,使得所述所请求数据及环绕数据的所述非请求数据包括多个高速缓存行大小的数据部分;且
发送所述所请求数据包括发送单个高速缓存行大小的数据部分中的所述所请求数据。
8.根据权利要求6所述的方法,其中所述请求包括直接存储器存取DMA请求。
9.根据权利要求6到8中任一权利要求所述的方法,其中所述请求装置不知晓与所述请求相关联的读取时间。
10.根据权利要求6到8中任一权利要求所述的方法,其中所述方法包含与收集所述所请求数据相关联地提供所述存储器中的其中存储所述所请求数据的位置不可用直到由所述请求装置释放所述所请求数据为止的指示。
11.根据权利要求6到8中任一权利要求所述的方法,其中所述方法包含在将所述所请求数据发送到所述请求装置之后:
从所述请求装置接收对应于所述所请求数据的经修改数据;及
将所述经修改数据分散于所述存储器中,使得所述经修改数据存储于其中先前存储所述所请求数据的相同位置中。
12.一种方法,其包括:
由存储器从请求装置接收请求,所述请求包含:
指向所述存储器中的数据结构的指针;
若干个属性的指示;
待解参考的指针列表的指示;及
针对所述请求的若干个条件及对应操作;
由所述存储器根据所述指针、所述若干个属性的所述指示及所述指针列表的所述指示而检查所述数据结构;及
由所述存储器响应于所述若干个条件中的一对应条件被满足而执行所述若干个操作中的一操作。
13.根据权利要求12所述的方法,其中接收所述指针列表的所述指示包含接收来自所述列表的多少个指针将被解参考的指示。
14.根据权利要求12所述的方法,其中检查所述数据结构包括将所述指针列表解参考直到到达所述列表的末尾为止或直到已解参考阈值数目个所述指针为止。
15.根据权利要求12到14中任一权利要求所述的方法,其中所述若干个属性的所述指示包括将由所述存储器从所述数据结构收集且返回到所述请求装置的数据的若干个属性的指示。
16.根据权利要求15所述的方法,其中接收所述请求包括接收搜索请求。
17.根据权利要求15所述的方法,其中接收所述请求包括接收筛选请求。
18.根据权利要求12到14中任一权利要求所述的方法,其中所述若干个属性的所述指示包括将由所述存储器从所述请求装置分散到所述数据结构中的数据的若干个属性的指示。
19.根据权利要求12到14中任一权利要求所述的方法,其中检查包括确定由所述指针列表的特定指针参考的所述数据结构是否包含所述属性;且
其中响应于所述对应条件而执行所述操作包括响应于确定由所述特定指针参考的所述数据结构包含所述属性而将包含所述属性的数据返回到所述请求装置。
20.根据权利要求19所述的方法,其中所述方法包含由所述存储器响应于确定由所述特定指针参考的所述数据结构包含所述属性而产生复制来自所述请求装置的所述请求的新请求。
21.根据权利要求12到14中任一权利要求所述的方法,其中接收包含所述若干个条件及对应操作的所述请求包括接收包含特定条件及对应操作的请求,包括:
响应于所述数据匹配设定值或搜索关键字而将包含所述若干个属性中的一属性的数据返回到所述请求装置。
22.根据权利要求12到14中任一权利要求所述的方法,其中接收包含所述若干个条件及对应操作的所述请求包括接收包含特定条件及对应操作的请求,包括:
响应于匹配而执行对包含所述若干个属性中的一属性的数据的原子更新。
23.根据权利要求12到14中任一权利要求所述的方法,其中接收包含所述若干个条件及对应操作的所述请求包括接收包含特定条件及对应操作的请求,包括:
响应于指针的剩余数目是标记值或已解参考阈值数目个所述指针而结束针对所述请求的操作。
24.根据权利要求12到14中任一权利要求所述的方法,其中所述数据结构包括包含链接列表、树及图表的群组中的一者。
25.一种方法,其包括:
从请求装置接收对待修改的数据的请求,其中所述数据分布于存储器中的数据结构中;及
响应于接收到所述请求而基于所述数据结构在所述存储器中发起并执行数据收集操作;
在所述存储器中发起并执行对所述所收集数据的数据修改操作;及
将所述经修改数据发送到所述请求装置。
26.根据权利要求25所述的方法,其中执行所述数据修改操作包括调整所述所收集数据的值。
27.根据权利要求26所述的方法,其中调整所述所收集数据的所述值包括调整所述所收集数据的每一单元的值。
28.根据权利要求25到27中任一权利要求所述的方法,其中所述方法包括独立于所述请求装置而控制所述存储器的时序。
29.一种设备,其包括:
存储器;及
硬件逻辑,其耦合到所述存储器,包含用于所述存储器的逻辑/物理接口,其中所述接口经配置以耦合到若干个处理器;
其中所述硬件逻辑经配置以:
独立于所述若干个处理器而针对所述存储器与所述若干个处理器之间的交互提供时序控制;及
将分布于所述存储器中的数据收集到单个高速缓存行大小的数据部分中。
30.根据权利要求29所述的设备,其中所述逻辑经配置以接收单个高速缓存行大小的经更新数据部分且将所述经更新数据分散到所述存储器中的从中收集所述经分布数据的相同位置。
31.根据权利要求29所述的设备,其中所述设备不包含中央存储器控制器。
32.根据权利要求29所述的设备,其中所述存储器包括组织成若干库的多个存储器装置;且
其中所述硬件逻辑包括各自耦合到所述多个存储器装置的相应库的多个逻辑单元。
33.根据权利要求29所述的设备,其中所述接口包括:
交换器,其耦合到所述硬件逻辑;及
多个链路,其耦合到所述交换器且经配置以耦合到所述若干个处理器。
34.根据权利要求29所述的设备,其中所述逻辑经配置以提供所述存储器中的从中收集所述数据的位置不可用直到由所述若干个处理器释放所述所收集数据为止的指示。
35.根据权利要求29所述的设备,其中所述逻辑经配置以通过提供对所述存储器的行地址选通RAS或列地址选通CAS中的至少一者的时序控制而提供时序控制。
36.根据权利要求29所述的设备,其中所述设备包括混合存储器立方体HMC。
37.根据权利要求29到36中任一权利要求所述的设备,其中所述逻辑经配置以响应于接收到对所述数据的请求而收集所述数据,其中所述请求包含标签;且
其中所述逻辑经配置以借助所述标签返回所述所收集数据。
38.根据权利要求29到36中任一权利要求所述的设备,其中所述逻辑经配置以根据所接收基地址、所接收步幅、所请求的数据元素的数目的所接收指示及数据元素大小的所接收指示而收集所述数据。
39.一种设备,其包括:
若干个基于高速缓冲存储器的处理器;
若干个主存储器装置;及
所述若干个基于高速缓冲存储器的处理器与所述若干个主存储器装置之间的接口;
其中所述若干个主存储器装置经配置以:
提供对所述若干个主存储器装置的时序控制;及
独立于来自所述若干个基于高速缓冲存储器的处理器的指令流而遍历存储于所述若干个主存储器装置中的数据结构。
40.根据权利要求39所述的设备,其中所述若干个基于高速缓冲存储器的处理器包括向量处理器;
其中所述若干个基于高速缓冲存储器的处理器不提供对所述若干个主存储器装置的时序控制;
其中所述若干个基于高速缓冲存储器的处理器经配置以将请求提供到所述若干个主存储器装置;
其中所述请求包含标签以允许由所述若干个基于高速缓冲存储器的处理器进行缓冲直到所述若干个主存储器装置对所述请求做出响应为止。
41.根据权利要求40所述的设备,其中所述若干个主存储器装置经配置以响应于所述请求而遍历所述数据结构以收集数据,其中所述请求包括基于地址的请求。
42.根据权利要求40所述的设备,其中所述若干个主存储器装置经配置以响应于所述请求而遍历所述数据结构以收集数据,其中所述请求包括基于偏移的请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/935,303 US11074169B2 (en) | 2013-07-03 | 2013-07-03 | Programmed memory controlled data movement and timing within a main memory device |
US13/935,303 | 2013-07-03 | ||
PCT/US2014/043384 WO2015002753A1 (en) | 2013-07-03 | 2014-06-20 | Memory controlled data movement and timing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105393227A true CN105393227A (zh) | 2016-03-09 |
CN105393227B CN105393227B (zh) | 2019-03-22 |
Family
ID=52133620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480038337.XA Active CN105393227B (zh) | 2013-07-03 | 2014-06-20 | 存储器控制的数据移动及时序 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11074169B2 (zh) |
EP (2) | EP3617891B1 (zh) |
JP (1) | JP6280214B2 (zh) |
KR (2) | KR102115129B1 (zh) |
CN (1) | CN105393227B (zh) |
TW (1) | TWI537962B (zh) |
WO (1) | WO2015002753A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021081730A1 (zh) * | 2019-10-29 | 2021-05-06 | 深圳鲲云信息科技有限公司 | 直接内存访问控制方法、系统、计算机设备及存储介质 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9558143B2 (en) * | 2014-05-09 | 2017-01-31 | Micron Technology, Inc. | Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device |
CN103942162B (zh) * | 2014-05-14 | 2020-06-09 | 清华大学 | 在存储器中进行多访问的方法、装置和存储系统 |
GB2529429B (en) * | 2014-08-19 | 2021-07-21 | Origami Energy Ltd | Power distribution control system |
US10007435B2 (en) * | 2015-05-21 | 2018-06-26 | Micron Technology, Inc. | Translation lookaside buffer in memory |
US9971541B2 (en) | 2016-02-17 | 2018-05-15 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US10642496B2 (en) * | 2016-04-01 | 2020-05-05 | Sandisk Technologies Inc. | Out of order read transfer with host memory buffer |
TWI596541B (zh) * | 2016-11-30 | 2017-08-21 | 財團法人工業技術研究院 | 資料存取系統、資料存取裝置及資料存取方法 |
US10318168B2 (en) | 2017-06-19 | 2019-06-11 | Micron Technology, Inc. | Apparatuses and methods for simultaneous in data path compute operations |
US10866900B2 (en) | 2017-10-17 | 2020-12-15 | Samsung Electronics Co., Ltd. | ISA extension for high-bandwidth memory |
US10628295B2 (en) | 2017-12-26 | 2020-04-21 | Samsung Electronics Co., Ltd. | Computing mechanisms using lookup tables stored on memory |
US11568907B2 (en) | 2020-09-07 | 2023-01-31 | Samsung Electronics Co., Ltd. | Data bus and buffer management in memory device for performing in-memory data operations |
TWI769080B (zh) * | 2021-09-17 | 2022-06-21 | 瑞昱半導體股份有限公司 | 用於同步動態隨機存取記憶體之控制模組及其控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5239639A (en) * | 1990-11-09 | 1993-08-24 | Intel Corporation | Efficient memory controller with an independent clock |
US5708849A (en) * | 1994-01-26 | 1998-01-13 | Intel Corporation | Implementing scatter/gather operations in a direct memory access device on a personal computer |
US20120158682A1 (en) * | 2010-12-17 | 2012-06-21 | Yarnell Gregory A | Scatter-gather list usage for a configuration database retrieve and restore function and database blocking and configuration changes during a database restore process |
TW201246065A (en) * | 2011-04-01 | 2012-11-16 | Intel Corp | Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements |
Family Cites Families (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5353415A (en) * | 1992-10-02 | 1994-10-04 | Compaq Computer Corporation | Method and apparatus for concurrency of bus operations |
US5465342A (en) * | 1992-12-22 | 1995-11-07 | International Business Machines Corporation | Dynamically adaptive set associativity for cache memories |
GB2289779B (en) * | 1994-05-24 | 1999-04-28 | Intel Corp | Method and apparatus for automatically scrubbing ECC errors in memory via hardware |
US5790137A (en) * | 1995-10-05 | 1998-08-04 | Apple Computer, Inc. | System and method for using a frame buffer in cached mode to increase bus utilization during graphics operations |
US5802546A (en) | 1995-12-13 | 1998-09-01 | International Business Machines Corp. | Status handling for transfer of data blocks between a local side and a host side |
US5848068A (en) * | 1996-03-07 | 1998-12-08 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US6145017A (en) | 1997-08-05 | 2000-11-07 | Adaptec, Inc. | Data alignment system for a hardware accelerated command interpreter engine |
US6223301B1 (en) * | 1997-09-30 | 2001-04-24 | Compaq Computer Corporation | Fault tolerant memory |
WO1999034273A2 (en) * | 1997-12-30 | 1999-07-08 | Lsi Logic Corporation | Automated dual scatter/gather list dma |
US6157398A (en) * | 1997-12-30 | 2000-12-05 | Micron Technology, Inc. | Method of implementing an accelerated graphics port for a multiple memory controller computer system |
US6097402A (en) * | 1998-02-10 | 2000-08-01 | Intel Corporation | System and method for placement of operands in system memory |
US6262937B1 (en) * | 1998-03-13 | 2001-07-17 | Cypress Semiconductor Corp. | Synchronous random access memory having a read/write address bus and process for writing to and reading from the same |
US6473818B1 (en) * | 1998-09-09 | 2002-10-29 | Advanced Micro Devices, Inc. | Apparatus and method in a network interface device for asynchronously generating SRAM full and empty flags using coded read and write pointer values |
US6353438B1 (en) * | 1999-02-03 | 2002-03-05 | Artx | Cache organization—direct mapped cache |
US6754779B1 (en) * | 1999-08-23 | 2004-06-22 | Advanced Micro Devices | SDRAM read prefetch from multiple master devices |
US6452600B1 (en) * | 1999-10-28 | 2002-09-17 | Nintendo Co., Ltd. | Graphics system interface |
US20050060441A1 (en) | 2001-03-27 | 2005-03-17 | Schmisseur Mark A. | Multi-use data access descriptor |
US6728855B2 (en) | 2001-09-27 | 2004-04-27 | Seagate Technology Llc | Method and system for data path verification |
AU2002361603A1 (en) * | 2001-11-09 | 2003-05-26 | Chaparral Network Storage, Inc. | Transferring data using direct memory access |
US6754735B2 (en) | 2001-12-21 | 2004-06-22 | Agere Systems Inc. | Single descriptor scatter gather data transfer to or from a host processor |
US6963955B1 (en) * | 2002-08-20 | 2005-11-08 | Juniper Networks, Inc. | Scattering and gathering data for faster processing |
US7149867B2 (en) | 2003-06-18 | 2006-12-12 | Src Computers, Inc. | System and method of enhancing efficiency and utilization of memory bandwidth in reconfigurable hardware |
US7389364B2 (en) | 2003-07-22 | 2008-06-17 | Micron Technology, Inc. | Apparatus and method for direct memory access in a hub-based memory system |
US7191189B2 (en) * | 2003-11-20 | 2007-03-13 | Hewlett-Packard Development Company, Lp. | Organizing data objects in a storage device |
US20050235072A1 (en) * | 2004-04-17 | 2005-10-20 | Smith Wilfred A | Data storage controller |
US20060064517A1 (en) * | 2004-09-23 | 2006-03-23 | Honeywell International Inc. | Event-driven DMA controller |
WO2007011705A2 (en) | 2005-07-14 | 2007-01-25 | University Of Notre Dame Du Lac | Response time detection in a network having shared interfaces |
JP4846306B2 (ja) | 2005-09-09 | 2011-12-28 | 富士通セミコンダクター株式会社 | 半導体記憶装置及びそれを用いた半導体集積回路システム並びに半導体記憶装置の制御方法 |
US8471861B2 (en) * | 2005-12-27 | 2013-06-25 | Imsys Ab | Method and system for cost-efficient, high-resolution graphics/image display system |
US7761486B2 (en) * | 2006-01-03 | 2010-07-20 | Oracle America, Inc. | Memory management system that supports both address-referenced objects and identifier-referenced objects |
US8074026B2 (en) | 2006-05-10 | 2011-12-06 | Intel Corporation | Scatter-gather intelligent memory architecture for unstructured streaming data on multiprocessor systems |
FR2901618A1 (fr) * | 2006-05-24 | 2007-11-30 | St Microelectronics Sa | Controleur de dma, systeme sur puce comprenant un tel controleur de dma, procede d'echange de donnees par l'intermediaire d'un tel controleur de dma |
US7536511B2 (en) * | 2006-07-07 | 2009-05-19 | Advanced Micro Devices, Inc. | CPU mode-based cache allocation for image data |
US8074022B2 (en) * | 2006-09-28 | 2011-12-06 | Virident Systems, Inc. | Programmable heterogeneous memory controllers for main memory with different memory modules |
JP4476267B2 (ja) * | 2006-10-06 | 2010-06-09 | 株式会社日立製作所 | プロセッサ及びデータ転送ユニット |
US20080183984A1 (en) | 2007-01-31 | 2008-07-31 | Dale Beucler | Memory system with read-modify-write |
US9015399B2 (en) * | 2007-08-20 | 2015-04-21 | Convey Computer | Multiple data channel memory module architecture |
US8356138B1 (en) * | 2007-08-20 | 2013-01-15 | Xilinx, Inc. | Methods for implementing programmable memory controller for distributed DRAM system-in-package (SiP) |
US8495301B1 (en) * | 2007-11-23 | 2013-07-23 | Pmc-Sierra Us, Inc. | System and method for scatter gather cache processing |
US8447962B2 (en) | 2009-12-22 | 2013-05-21 | Intel Corporation | Gathering and scattering multiple data elements |
US7984273B2 (en) * | 2007-12-31 | 2011-07-19 | Intel Corporation | System and method for using a mask register to track progress of gathering elements from memory |
US7872936B2 (en) * | 2008-09-17 | 2011-01-18 | Qimonda Ag | System and method for packaged memory |
US8254191B2 (en) * | 2008-10-30 | 2012-08-28 | Micron Technology, Inc. | Switched interface stacked-die memory architecture |
US20100121994A1 (en) | 2008-11-10 | 2010-05-13 | International Business Machines Corporation | Stacked memory array |
US20100162065A1 (en) * | 2008-12-19 | 2010-06-24 | Unity Semiconductor Corporation | Protecting integrity of data in multi-layered memory with data redundancy |
JP2010187180A (ja) | 2009-02-12 | 2010-08-26 | Sharp Corp | 画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体 |
US8364901B2 (en) | 2009-02-13 | 2013-01-29 | Micron Technology, Inc. | Memory prefetch systems and methods |
US8018752B2 (en) | 2009-03-23 | 2011-09-13 | Micron Technology, Inc. | Configurable bandwidth memory devices and methods |
US8198717B1 (en) | 2009-05-08 | 2012-06-12 | Micron Technology, Inc. | Signal shifting to allow independent control of identical stacked memory modules |
JP2011029535A (ja) | 2009-07-29 | 2011-02-10 | Elpida Memory Inc | 半導体装置 |
US8612809B2 (en) | 2009-12-31 | 2013-12-17 | Intel Corporation | Systems, methods, and apparatuses for stacked memory |
US9123552B2 (en) | 2010-03-30 | 2015-09-01 | Micron Technology, Inc. | Apparatuses enabling concurrent communication between an interface die and a plurality of dice stacks, interleaved conductive paths in stacked devices, and methods for forming and operating the same |
US10026458B2 (en) | 2010-10-21 | 2018-07-17 | Micron Technology, Inc. | Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size |
US8421245B2 (en) * | 2010-12-22 | 2013-04-16 | Intel Corporation | Substrate with embedded stacked through-silicon via die |
US8547769B2 (en) * | 2011-03-31 | 2013-10-01 | Intel Corporation | Energy efficient power distribution for 3D integrated circuit stack |
US8493089B2 (en) | 2011-04-06 | 2013-07-23 | International Business Machines Corporation | Programmable logic circuit using three-dimensional stacking techniques |
JP2013097410A (ja) | 2011-10-28 | 2013-05-20 | Olympus Imaging Corp | 画像収集方法 |
TWI456739B (zh) * | 2011-12-13 | 2014-10-11 | Nat Univ Tsing Hua | 三維記憶體晶片之控制結構 |
US9632777B2 (en) * | 2012-08-03 | 2017-04-25 | International Business Machines Corporation | Gather/scatter of multiple data elements with packed loading/storing into/from a register file entry |
US9785436B2 (en) * | 2012-09-28 | 2017-10-10 | Intel Corporation | Apparatus and method for efficient gather and scatter operations |
-
2013
- 2013-07-03 US US13/935,303 patent/US11074169B2/en active Active
-
2014
- 2014-06-20 WO PCT/US2014/043384 patent/WO2015002753A1/en active Application Filing
- 2014-06-20 JP JP2016523813A patent/JP6280214B2/ja active Active
- 2014-06-20 KR KR1020197026296A patent/KR102115129B1/ko active IP Right Grant
- 2014-06-20 KR KR1020167002507A patent/KR102022751B1/ko active IP Right Grant
- 2014-06-20 CN CN201480038337.XA patent/CN105393227B/zh active Active
- 2014-06-20 EP EP19197613.3A patent/EP3617891B1/en active Active
- 2014-06-20 EP EP14820229.4A patent/EP3017372B1/en active Active
- 2014-07-03 TW TW103123051A patent/TWI537962B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5239639A (en) * | 1990-11-09 | 1993-08-24 | Intel Corporation | Efficient memory controller with an independent clock |
US5708849A (en) * | 1994-01-26 | 1998-01-13 | Intel Corporation | Implementing scatter/gather operations in a direct memory access device on a personal computer |
US20120158682A1 (en) * | 2010-12-17 | 2012-06-21 | Yarnell Gregory A | Scatter-gather list usage for a configuration database retrieve and restore function and database blocking and configuration changes during a database restore process |
TW201246065A (en) * | 2011-04-01 | 2012-11-16 | Intel Corp | Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021081730A1 (zh) * | 2019-10-29 | 2021-05-06 | 深圳鲲云信息科技有限公司 | 直接内存访问控制方法、系统、计算机设备及存储介质 |
CN113228172A (zh) * | 2019-10-29 | 2021-08-06 | 深圳鲲云信息科技有限公司 | 直接内存访问控制方法、系统、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP6280214B2 (ja) | 2018-02-14 |
TWI537962B (zh) | 2016-06-11 |
EP3617891A1 (en) | 2020-03-04 |
EP3017372A1 (en) | 2016-05-11 |
EP3017372A4 (en) | 2017-03-15 |
TW201519243A (zh) | 2015-05-16 |
US20150012717A1 (en) | 2015-01-08 |
JP2016532933A (ja) | 2016-10-20 |
KR20160025613A (ko) | 2016-03-08 |
EP3017372B1 (en) | 2019-12-04 |
US11074169B2 (en) | 2021-07-27 |
WO2015002753A1 (en) | 2015-01-08 |
CN105393227B (zh) | 2019-03-22 |
EP3617891B1 (en) | 2022-04-13 |
KR102115129B1 (ko) | 2020-05-26 |
KR20190107178A (ko) | 2019-09-18 |
KR102022751B1 (ko) | 2019-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105393227A (zh) | 存储器控制的数据移动及时序 | |
US11947798B2 (en) | Packet routing between memory devices and related apparatuses, methods, and memory systems | |
US8996781B2 (en) | Integrated storage/processing devices, systems and methods for performing big data analytics | |
US11366752B2 (en) | Address mapping between shared memory modules and cache sets | |
KR20190070915A (ko) | 분산된 gpu들을 위해 데이터 로컬리티를 개선하기 위한 매커니즘 | |
US9420036B2 (en) | Data-intensive computer architecture | |
US20210334234A1 (en) | Distributed graphics processor unit architecture | |
EP3506116A1 (en) | Shared memory controller in a data center | |
US20180039523A1 (en) | Information processing system that determines a memory to store program data for a task carried out by a processing core | |
US10725933B2 (en) | Method and apparatus for redirecting memory access commands sent to unusable memory partitions | |
US11392494B2 (en) | Technologies for performant column read operations on clustered data in a dimm architecture | |
US10872394B2 (en) | Frequent pattern mining method and apparatus | |
CN103577347A (zh) | 用于操作存储器设备的方法和用于存储器操作的系统 | |
US10235299B2 (en) | Method and device for processing data | |
EP4060505A1 (en) | Techniques for near data acceleration for a multi-core architecture | |
US20160314073A1 (en) | Technologies for scalable remotely accessible memory segments | |
CN107291209B (zh) | 细胞阵列计算系统 | |
US20210373790A1 (en) | Inference in memory | |
US20240045914A1 (en) | Intelligent data storage for efficient retrieval based on contextual awareness for mobile applications | |
US20220075541A1 (en) | Memory device performing configurable mode setting and method of operating the same | |
GB2516091A (en) | Method and system for implementing a dynamic array data structure in a cache line |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |