CN113227956A - 计算瓦片 - Google Patents

计算瓦片 Download PDF

Info

Publication number
CN113227956A
CN113227956A CN201980081731.4A CN201980081731A CN113227956A CN 113227956 A CN113227956 A CN 113227956A CN 201980081731 A CN201980081731 A CN 201980081731A CN 113227956 A CN113227956 A CN 113227956A
Authority
CN
China
Prior art keywords
data
block
computing
data block
tile
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
CN201980081731.4A
Other languages
English (en)
Other versions
CN113227956B (zh
Inventor
R·C·墨菲
G·E·胡申
V·S·拉梅什
A·波特菲尔德
A·科尔日
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN113227956A publication Critical patent/CN113227956A/zh
Application granted granted Critical
Publication of CN113227956B publication Critical patent/CN113227956B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0855Overlapped cache accessing, e.g. pipeline
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with 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/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/1041Resource optimization
    • G06F2212/1044Space efficiency 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/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • 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/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • G06F2212/284Plural cache memories being distributed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/465Structured object, e.g. database record
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch 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/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

描述了与计算瓦片有关的系统、设备和方法。所述计算瓦片可以对接收到的数据执行操作以提取所述接收到的数据中的一些数据。所述计算瓦片可以在没有中间命令的情况下执行操作。所述计算瓦片可以对通过所述计算瓦片流式传输的数据执行操作以从由所述计算瓦片接收到的数据中提取相关数据。在一个实例中,所述计算瓦片被配置成接收发起用于将数据块的大小从第一大小减小到第二大小的操作的命令。然后,所述计算瓦片可以从耦接到所述设备的存储器装置接收数据块。然后,所述计算瓦片可以对所述数据块执行操作以从所述数据块中提取预定数据,以便将所述数据块的大小从第一大小减小到第二大小。

Description

计算瓦片
技术领域
本公开总体上涉及半导体存储器和方法,并且更具体地涉及用于计算瓦片的设备、系统和方法。
背景技术
存储器装置通常以内部半导体集成电路的形式设置于计算机或其它电子系统中。存在许多不同类型的存储器,包含易失性存储器和非易失性存储器。易失性存储器可能需要电力来维护其数据(例如,主机数据、错误数据等)并且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)和晶闸管随机存取存储器(TRAM)等等。非易失性存储器可以通过在不供电时保留所存储的数据来提供持久数据,并且可以包含NAND闪速存储器、NOR闪速存储器和电阻可变存储器(如相变随机存取存储器(PCRAM))、电阻式随机存取存储器(RRAM)和磁阻式随机存取存储器(MRAM),如自旋扭矩转移随机存取存储器(STT RAM),等等。
存储器装置可以耦接到主机(例如,主机计算装置),以在计算机或电子系统操作时存储供主机使用的数据、命令和/或指令。例如,当在计算系统或其它电子系统的操作期间,数据、命令和/或指令可以在主机与一或多个存储器装置之间转移。
附图说明
图1是根据本公开的若干个实施例的呈包含设备的计算系统的形式的功能框图,所述设备包含存储控制器和若干个存储器装置。
图2是根据本公开的若干个实施例的呈包含存储控制器的设备的形式的功能框图。
图3是根据本公开的若干个实施例的呈包含存储控制器的设备的形式的另一功能框图。
图4A是根据本公开的若干个实施例的呈包含存储控制器的设备的形式的又另一功能框图。
图4B是根据本公开的若干个实施例的呈包含存储控制器的设备的形式的又另一功能框图。
图4C是根据本公开的若干个实施例的呈包含存储控制器的设备的形式的又另一功能框图。
图5是根据本公开的若干个实施例的呈计算瓦片的形式的框图。
图6是根据本公开的若干个实施例的呈计算瓦片的形式的另一框图。
图7是根据本公开的若干个实施例的表示用于存储装置操作编排的示例方法的流程图。
具体实施方式
本公开包含用于计算瓦片的设备、系统和方法。示例设备包含计算瓦片,所述计算瓦片包括处理装置和存储器资源。所述计算瓦片被配置成接收发起用于将数据块的大小从第一大小减小到第二大小的操作的命令。所述计算瓦片可以响应于接收到所述命令而从耦接到所述设备的存储器装置接收数据块。所述计算瓦片可以响应于接收到所述数据块而对所述数据块执行操作以从所述数据块中提取预定数据,以便将所述数据块的大小从第一大小减小到第二大小。
存储器装置可以用于在计算装置中存储重要数据或关键数据,并且可以在与计算装置相关联的主机之间传送此类数据。然而,随着存储器装置所存储的数据的大小和数量的增加,往返于主机的数据传送可能变得既耗时又耗费资源。例如,当主机从存储器装置请求大数据块时,强制请求所耗费的时间量和/或资源量可能与和数据块相关联的数据的大小和/或数量成比例地增加。
随着存储器装置的存储能力的增加,这些影响可能变得更显著,因为越来越多的数据能够被存储器装置存储并且因此可用于传送到主机或从主机传送。另外,请求的数据块可以包含与主机不相关或主机不需要的数据。例如,在一些方法中,不相关数据可以与包含相关数据的数据块一起被传送到主机。这可能导致需要在主机端上进行进一步处理以从数据块中提取相关数据,这可能招致另外的处理时间和/或消耗另外的处理资源。
例如,在一些方法中,在包含大量信息的数据块(如包含多列信息的数据块)的情况下,可以将包含在数据块中的所有信息传送到主机,尽管主机只期望数据块中包含的某些列的数据。在大数据块的情况下,与处理数据块以提取相关信息相关联的处理时间和/或资源消耗可能变得过多,从而降低了主机或计算装置的效能。
作为非限制性实例,主机可以请求由存储器装置存储在数据库中的特定数据。主机可能只对来自数据库的前两列数据感兴趣,而对第三列数据不感兴趣。在一些方法中,存储器装置可以将所有三列数据传送到主机,并且主机可以对数据执行另外的处理以获得仅相关的前两列。在此类实例中,另外的时间、带宽和/或处理资源可能不仅在将主机将不使用的整列数据传送到主机中被消耗,而且在用于移除不相关数据(例如,此实例中的第三列)的主机操作中被消耗。
相比之下,本文的实施例允许在将数据传送到主机之前,由存储控制器(例如,由耦接到存储器装置或设置在存储器装置上的电路系统)从数据块中提取相关数据。例如,本文的实施例可以允许在将数据传送到主机之前对数据块执行如过滤操作等操作,其中在将要传送到主机的数据传送到主机之前减少所述数据的量。关于上述非限制性实例,这可以允许主机仅接收数据的前两列(例如,相关数据),而不是相关数据和不相关数据。与一些方法相比,这不仅可以减少将不相关数据传送到主机所消耗的时间、带宽和/或处理资源,还可以减少用于移除不相关数据的主机操作所消耗的时间、带宽和/或处理资源。
类似地,本文的实施例允许在将数据传送到耦接到存储控制器的存储器装置之前,由存储控制器(例如,由耦接到存储器装置或设置在存储器装置上的电路系统)从数据块中提取相关数据。例如,本文的实施例可以允许在将数据传送到一或多个存储器装置之前对数据块执行如过滤操作等操作,其中在将要传送到一或多个存储器装置的数据传送到一或多个存储器装置之前减少所述数据的量。
在本公开的以下详细说明中,参考了附图,所述附图形成所述详细说明的一部分,并且在所述附图中,通过图解的方式示出了可以如何实践本公开的一或多个实施例。对这些实施例的描述的详细程度足以使本领域的普通技术人员能够实践本公开的实施例,并且应当理解的是,可以利用其它实施例,并且在不背离本公开的范围的情况下,可以做出工艺改变、电气改变和结构改变。
如本文所使用的,如“X”、“Y”、“N”、“M”、“A”、“B”、“C”、“D”等指示符,尤其是关于附图中的附图标记的指示符,表明可以包含若干个如此指定的特定特征。还应理解,本文所使用的术语仅出于描述特定实施例的目的,并且并不旨在是限制性的。如本文所使用的,除非上下文另外明确规定,否则单数形式“一(a)”、“一个(an)”和“所述(the)”可以包含单数个参考物和复数个参考物两者。另外,“若干个”、“至少一个”以及“一或多个”(例如,若干个存储器组)可以指代一或多个存储器组,然而“多个”旨在指代不止一个此类物品。此外,贯穿本申请,词语“能够(can)”和“可以(may)”以允许的意义(即,有可能、能够)而非强制性的意义(即,必须)使用。术语“包含(include)”和其派生词意味着“包含但不限于”。术语“耦接(coupled)”和“耦接(coupling)”意指物理地或用于访问以及移动(传输)命令和/或数据的直接或间接连接,视情况而定。术语“数据”和“数据值”在本文中可互换地使用并且可以具有相同的含义,视情况而定。
本文的附图遵循编号惯例,其中一或多个第一数字对应于附图图号,并且其余数字标识图中的元件或组件。可以通过使用类似的数字来标识不同图之间的类似元件或组件。例如,104可以引用图1中的元件“04”,并且类似的元件可以在图2中被引用为204。一组或多个类似的元件或组件通常可以在本文中用单个元件图号来指代。例如,多个参考元件110-1、110-2、…、110-N通常可以被称为110。如将理解的,可以添加、交换和/或消除在本文的各个实施例中示出的元件,以提供本公开的若干个另外的实施例。另外,在图中提供的元件的比例和/或相对尺度旨在展示本公开的某些实施例并且不应以限制性的意义而采用。
图1是根据本公开的若干个实施例的呈包含设备的计算系统100的形式的功能框图,所述设备包含存储控制器104和若干个存储器装置116-1、…、116-N。如本文所使用的,“设备”可以指但不限于各种结构或结构组合中的任何结构或结构组合,如电路或电路系统、管芯或晶粒、一或多个模块、一或多个装置或一或多个系统。在图1展示的实施例中,存储器装置116-1、…、116-N可以包含一或多个存储器模块(例如,单列直插存储器模块、双列直插存储器模块等)。存储器装置116-1、…、116-N可以包含易失性存储器和/或非易失性存储器。在若干个实施例中,存储器装置116-1、…、116-N可以包含多芯片装置。多芯片装置可以包含若干种不同的存储器类型和/或若干个存储器模块。例如,存储器系统可以包含任何类型的模块上的非易失性或易失性存储器。
存储器装置116-1、…、116-N可以提供计算系统100的主存储器,或者可以用作整个计算系统100的另外的存储器或存储件。每个存储器装置116-1、…、116-N可以包含存储器单元,例如,易失性存储器单元和/或非易失性存储器单元的一或多个阵列。阵列可以是具有例如NAND架构的闪存阵列。实施例不限于特定类型的存储器装置。例如,存储器装置可以包含RAM、ROM、DRAM、SDRAM、PCRAM、RRAM和闪速存储器等等。
在存储器装置116-1、…、116-N包含非易失性存储器的实施例中,存储器装置116-1、…、116-N可以是闪速存储器装置,如NAND或NOR闪速存储器装置。然而,实施例不限于此,并且存储器装置116-1、…、116-N可以包含其它非易失性存储器装置,如非易失性随机存取存储器装置(例如,NVRAM、ReRAM、FeRAM、MRAM、PCM)、“新兴”存储器装置,如3-D交叉点(3DXP)存储器装置等或其组合。
如图1所展示的,主机102可以耦接到存储控制器104,所述存储控制器可以继而耦接到存储器装置116-1、…、116-N。在若干个实施例中,每个存储器装置116-1、…、116-N可以经由通道(例如,通道107-1、…、107-N)耦接到存储控制器104。在图1中,包含编排控制器106的存储控制器104经由通道103耦接到主机102,并且编排控制器106经由通道105耦接到主机102。主机102可以是主机系统如个人膝上型计算机、台式计算机、数字相机、智能电话、存储卡读取器和/或支持物联网的装置以及各种其它类型的主机,并且可以包含存储器存取装置,例如处理器(或处理装置)。本领域的普通技术人员应理解,“处理器”可以意指一或多个处理器,如并行处理系统、若干个协处理器等。
主机102可以包含系统主板和/或背板并且可以包含若干个处理资源(例如,一或多个处理器、微处理器或其它某种类型的控制电路系统)。系统100可以包含单独的集成电路,或者主机102、存储控制器104、编排控制器106、片上网络(NoC)108和/或存储器装置116-1、…、116-N可以位于同一集成电路上。系统100可以是例如服务器系统和/或高性能计算(HPC)系统和/或其一部分。尽管图1中示出的实例展示了具有冯·诺依曼(Von Neumann)架构的系统,但是本公开的实施例可以在非冯·诺依曼架构上实施,所述非冯·诺依曼架构可以不包含通常与冯·诺依曼架构相关联的一或多个组件(例如,CPU、ALU等)。
存储控制器104可以包含编排控制器106、片上网络(NoC)108、多个计算瓦片110-1、…、110-N和媒体控制器112,所述多个计算瓦片将在本文中结合图5和6进行更详细地描述。编排控制器106可以包含被配置成在执行本文所述的操作期间向计算瓦片110-1、…、110-N分配和解除分配资源的电路系统和/或逻辑。在一些实施例中,编排控制器106可以是专用集成电路(ASIC)、现场可编程门阵列(FPGA)或被配置成编排由计算瓦片110-1、…、110-N执行的操作的电路系统和/或逻辑的其它组合。例如,编排控制器106可以包含用于控制计算瓦片110-1、…、110-N以对接收到的数据块执行操作以便减少数据块中包含的数据量的电路系统和/或逻辑。
编排控制器106可以被配置成从存储器装置116-1、…、116-N中的一或多个存储器装置请求数据块,并且使计算瓦片110-1、…、110-N对数据块执行操作(例如,过滤操作)。可以执行所述操作以减少与数据块相关联的数据总量(例如,数据的位数)。编排控制器104可以被进一步配置成使已对其进行操作的数据块(例如,经过滤的数据块)传送到接口(例如,通信路径103和/或105)和/或主机102。
在一些实施例中,编排控制器106可以是多个计算瓦片110之一。例如,编排控制器106可以包含与计算瓦片110-1、…、110-N所包含的电路系统相同或相似的电路系统,如本文结合图4B更详细地描述的。然而,在一些实施例中,编排控制器106可以是与计算瓦片110-1、…、110-N不同或分开的组件,并且因此可以包含与计算瓦片110不同的电路系统,如图1所示。
NoC 108可以是允许编排控制器106与计算瓦片110-1、…、110-N之间的通信的通信子系统。NoC 108可以包含用于促进编排控制器106与计算瓦片110-1、…、110-N之间的通信的电路系统和/或逻辑。在一些实施例中,如本文结合图2更详细地描述的,NoC 108可以接收来自计算瓦片110-1、…、110-N的输出并且将来自计算瓦片110-1、…、110-N的输出传送到编排控制器106和/或主机102,反之亦然。例如,NoC 108可以被配置成接收已经经受由计算瓦片110-1、…、110-N进行的过滤操作的数据,并且将经过滤的数据传送到编排控制器106和/或主机102。在一些实施例中,如本文结合图4B更详细地描述的,NoC 108可以包含编排控制器106的至少一部分。例如,NoC 108可以包含包括编排控制器106或其一部分的电路系统。
尽管在图1中示出了NoC 108,但是实施例不限于利用NoC 108来在编排控制器106与计算瓦片110-1、…、110-N之间提供通信路径。例如,如存储控制器交叉开关(XBAR)等其它通信路径可以用于促进计算瓦片110-1、…、110-N与编排控制器106之间的通信。
媒体控制器112可以是“标准”或“哑”媒体控制器。例如,媒体控制器112可以被配置成对存储器装置116-1、…、116-N执行简单的操作如复制、写入、读取、纠错等。然而,在一些实施例中,媒体控制器112不对与存储器装置116-1、…、116-N相关联的数据执行处理(例如,用于操纵数据的操作)。例如,媒体控制器112可以使读取和/或写入操作被执行以经由通信路径107-1、…、107-N从存储器装置116-1、…、116-N读取数据或经由所述通信路径将数据写入到所述存储器装置,但是媒体控制器112可以不对从存储器装置116-1、…、116-N读取的或写入到所述存储器装置的数据执行处理。在一些实施例中,媒体控制器112可以是非易失性媒体控制器,但是实施例不限于此。
图1的实施例可以包含未展示以免模糊本公开的实施例的另外的电路系统。例如,存储控制器104可以包含用于锁存通过I/O电路系统在I/O连接上提供的地址信号的地址电路系统。地址信号可以由行解码器和列解码器接收和解码,以存取存储器装置116-1、…、116-N。本领域的技术人员将理解,地址输入连接的数量可以取决于存储器装置116-1、…、116-N的密度和架构。
图2是根据本公开的若干个实施例的呈包含存储控制器204的设备的形式的功能框图。存储控制器204可以类似于图1所展示的存储控制器104。如图2所示,存储控制器204可以包含媒体控制器212、多个计算瓦片210-1、…、210-N、片上网络(NoC)208和编排控制器206。
媒体控制器212可以被配置成响应于来自编排控制器206的请求而从耦接到存储控制器204的存储器装置(例如,图1中展示的一或多个存储器装置116-1、…、116-N)检索数据块211A-1、…、211A-N、211B-1、…、211B-N、211C-1、…、211C-N、211D-1、…、211D-N、211E-1、…、211E-N。媒体控制器随后可以使数据块211A-1、…、211A-N、211B-1、…、211B-N、211C-1、…、211C-N、211D-1、…、211D-N、211E-1、…、211E-N传送到计算瓦片210-1、…、210-N和/或编排控制器206。
类似地,媒体控制器212可以被配置成从计算瓦片210和/或编排控制器206接收数据块211A-1、…、211A-N、211B-1、…、211B-N、211C-1、…、211C-N、211D-1、…、211D-N、211E-1、…、211E-N。媒体控制器随后可以使数据块211A-1、…、211A-N、211B-1、…、211B-N、211C-1、…、211C-N、211D-1、…、211D-N、211E-1、…、211E-N传送到耦接到存储控制器204的存储器装置。
数据块211的大小可以为大约4千字节(但是实施例不限于此特定大小),并且可以响应于由编排控制器206生成的一或多个命令而由计算瓦片210-1、…、210-N以流式传输的方式进行处理。例如,如本文结合图5和6更详细地描述的,因为计算瓦片210可以响应于对先前的数据块211的处理的完成而处理第二数据块211,所以当数据块211由计算瓦片210处理时,数据块211可以通过计算瓦片210连续地流式传输。在一些实施例中,数据块211可以在不存在来自编排控制器206的中间命令的情况下以流式传输的方式通过计算瓦片210进行处理。也就是说,在一些实施例中,编排控制器206可以发出命令以使计算瓦片210处理所述计算瓦片接收到的数据块211,并且随后由计算瓦片210接收到的数据块211可以在不存在来自编排控制器206的另外的命令的情况下进行处理。
在一些实施例中,处理数据块211可以包含减小与数据块211相关联的数据的大小和/或数量。例如,计算瓦片210-1、…、211-N可以响应于来自编排控制器206的命令而对数据块211执行过滤操作,以移除不需要的数据,提取相关数据或以其它方式解析数据块211,以便减小与所述数据块相关联的数据的大小或数量。
在非限制性实例中,数据块211可以包含一或多个逗号分隔值(CSV)文件。如果期望来自一或多个CSV文件的特定串或特定数据,则编排控制器206可以向计算瓦片210发送命令,以使计算瓦片210从例如耦接到存储控制器204的存储器装置接收含有CSV文件的数据块211。计算瓦片210可以对一或多个CSV文件执行操作以提取相关信息(如本文结合图5更详细地描述的),并且随后将相关数据从计算瓦片210传送到计算瓦片210外部的电路系统(例如,传送到编排控制器204、NoC 208和/或如本文在图1中展示的主机102等主机)。
在其中从含有三列数据A、B和C的数据块(例如,数据块211A-1)中请求两列数据A和B的另一个非限制性实例中,可以响应于来自编排控制器206的命令而将含有全部三列的数据块传送到计算瓦片210。计算瓦片210可以选择性地处理数据块以从数据块中提取相关列(例如,列A和列B),并且随后可以将经过滤的数据从计算瓦片210传送到计算瓦片210外部的电路系统(例如,传送到编排控制器206、NoC 208和/或如本文在图1中展示的主机102等主机)。
编排控制器206可以被进一步配置成向计算瓦片210-1、…、210-N发送命令以分配和/或解除分配用于处理数据块211的可用于计算瓦片210-1、…、210-N的资源。在一些实施例中,分配和/或解除分配可用于计算瓦片210-1、…、210-N的资源可以包含选择性地启用计算瓦片210中的一些计算瓦片,同时选择性地禁用计算瓦片210中的一些计算瓦片。例如,如果需要少于总数的计算瓦片210来处理数据块211,则编排控制器206可以向要用于处理数据块211的计算瓦片210发送命令,以仅启用期望处理数据块211的那些计算瓦片210。
在一些实施例中,编排控制器206可以被进一步配置成发送命令以使由计算瓦片210执行的操作的执行同步。例如,编排可以向第一计算瓦片(例如,计算瓦片210-1)发送命令以使第一计算瓦片执行第一操作,并且编排控制器206可以向第二计算瓦片(例如,计算瓦片210-2)发送命令以使用第二计算瓦片执行第二操作。通过编排控制器206使由计算瓦片210执行的操作的执行同步可以进一步包含使计算瓦片210在特定时间或以特定顺序执行特定操作。
在一些实施例中,可以在由计算瓦片210处理数据块211之后将经过滤的数据块转换成逻辑记录213-1、…、213-N。逻辑记录213可以包括与其物理位置无关的数据记录。例如,逻辑记录213可以是指向计算瓦片210中的至少一个计算瓦片中的位置的数据记录,在所述位置中存储了与经处理的(例如,经过滤的)数据块相对应的物理数据。
如本文结合图5和6更详细地描述的,作为用于处理或过滤数据块以提取相关数据或以其它方式减小与数据块相关联的位的大小和数量的操作的一部分,可以将经处理或经过滤的数据块211存储在计算瓦片存储器(例如,图5中展示的计算瓦片存储器538或图6中展示的计算瓦片存储器638)的分区中,所述分区与在处理之前存储数据块的分区不同。在一些实施例中,逻辑记录213可以指向所述位置,使得可以从计算瓦片210存取经处理或经过滤的数据,并将所述经处理或经过滤的数据传送到计算瓦片210外部的电路系统。
在一些实施例中,编排控制器206可以直接从媒体控制器212接收数据块211E-1、…、211E-N和/或直接将所述数据块发送到所述媒体控制器。这可以允许编排控制器206将未由计算瓦片210处理的数据块211E-1、…、211E-N传送到媒体控制器212并且将所述数据块从所述媒体控制器传送。
例如,如果编排控制器206从耦接到存储控制器204的主机(例如,图1中展示的主机102)接收到待由耦接到存储控制器204的一或多个存储器装置(例如,图1中展示的存储器装置116)存储的未处理的数据块211E-1、…、211E-N,则编排控制器206可以使未处理的数据块211E-1、…、211E-N传送到媒体控制器212,所述媒体控制器继而可以使未处理的数据块211E-1、…、211E-N传送到耦接到存储控制器204的一或多个存储器装置。
类似地,如果主机请求未处理的(例如,完整的)数据块(例如,未由计算瓦片210处理的数据块),则媒体控制器212可以使完整的数据块211E-1、…、211E-N传送到编排控制器206,所述编排控制器可以随后将未处理的数据块211E-1、…、211E-N传送到主机。
图3是根据本公开的若干个实施例的呈包含存储控制器304的设备的形式的另一功能框图。存储控制器304可以类似于本文图1所展示的存储控制器104或图2所展示的存储控制器204。如图3所示,存储控制器304可以包含媒体控制器312、多个计算瓦片310-1、…、310-N、片上网络(NoC)308和编排控制器306。
媒体控制器312可以被配置成响应于来自编排控制器306的请求而从耦接到存储控制器304的存储器装置(例如,图1中展示的一或多个存储器装置116-1、…、116-N)检索数据块311A-1、…、311A-N、311B-1、…、311B-N、311C-1、…、311C-N、311D-1、…、311D-N、311E-1、…、311E-N和/或逻辑记录313A-1、…、313A-N、313B-1、…、313B-N、313C-1、…、313C-N、313D-1、…、313D-N、313E-1、…、313E-N。媒体控制器随后可以使数据块311A-1、…、311A-N、311B-1、…、311B-N、311C-1、…、311C-N、311D-1、…、311D-N、311E-1、…、311E-N和/或逻辑记录313A-1、…、313A-N、313B-1、…、313B-N、313C-1、…、313C-N、313D-1、…、313D-N、313E-1、…、313E-N传送到计算瓦片310-1、…、310-N和/或编排控制器306。
类似地,媒体控制器312可以被配置成从计算瓦片310和/或编排控制器306接收数据块311A-1、…、311A-N、311B-1、…、311B-N、311C-1、…、311C-N、311D-1、…、311D-N、311E-1、…、311E-N和/或逻辑记录313A-1、…、313A-N、313B-1、…、313B-N、313C-1、…、313C-N、313D-1、…、313D-N、313E-1、…、313E-N。媒体控制器随后可以使数据块311A-1、…、311A-N、311B-1、…、311B-N、311C-1、…、311C-N、311D-1、…、311D-N、311E-1、…、311E-N和/或逻辑记录313A-1、…、313A-N、313B-1、…、313B-N、313C-1、…、313C-N、313D-1、…、313D-N、313E-1、…、313E-N传送到耦接到存储控制器304的存储器装置。
数据块311的大小可以为大约4千字节,并且可以响应于由编排控制器306生成的一或多个命令而由计算瓦片310-1、…、310-N以流式传输的方式进行处理。在一些实施例中,处理数据块311可以包含减小与数据块311相关联的数据的大小和/或数量。例如,计算瓦片310-1、…、310-N可以响应于来自编排控制器306的命令而对数据块311执行过滤操作,以移除不需要的数据,提取相关数据或以其它方式解析数据块311,以便减小与所述数据块相关联的数据的大小或数量。例如,计算瓦片310-1、…、310-N可以响应于来自编排控制器306的命令而处理数据块311,生成逻辑记录313,和/或将逻辑记录传送到计算瓦片310外部的位置。
图4A-4C展示了根据本公开的若干个实施例的呈包含存储控制器404的设备的形式的功能框图的各种实例。在图4A-4C中,媒体控制器412与多个计算瓦片410、NoC 408和编排控制器406通信,所述编排控制器与输入/输出(I/O)缓冲器422通信。尽管在图4A-4C中示出了八(8)个离散的计算瓦片410,但是应当理解,实施例不限于包含八个离散的计算瓦片410的存储控制器404。例如,存储控制器404可以包含一或多个计算瓦片410,这取决于存储控制器404和/或其中部署有存储控制器404的整个系统的特性。
如图4A-4C所示,媒体控制器412可以包含直接存储器存取(DMA)组件418和DMA通信子系统419。DMA 418可以促进媒体控制器418与如图1中展示的存储器装置116-1、…、116-N等一或多个存储器装置之间的通信,所述一或多个存储器装置独立于如图1中展示的主机102等主机的中央处理单元而耦接到存储控制器404。DMA通信子系统419可以是如交叉开关(“XBAR”)、片上网络或允许在媒体控制器412、耦接到存储控制器404的一或多个存储装置和/或计算瓦片410之间进行互连和互操作的其它通信子系统等通信子系统。
在一些实施例中,NoC 408可以促进计算瓦片410的相应地址空间之间的可见性。例如,每个计算瓦片410-1、…、410-8可以响应于接收到文件而将所述文件存储在计算瓦片410的存储器资源(例如,本文图5和6中展示的计算瓦片存储器548或计算瓦片存储器638)中。计算瓦片410可以将与计算瓦片410存储器资源中的存储有文件的位置相对应的地址(例如,物理地址)相关联。另外,计算瓦片410可以将与文件相关联的地址划分为逻辑块。
在一些实施例中,可以将与文件相关联的第零逻辑块传送到处理装置(例如,本文图5和6中展示的精简指令集计算(RISC)装置536或RISC装置636)。特定计算瓦片(例如,计算瓦片410-2)可以被配置成识别特定的逻辑地址集对于所述计算瓦片410-2是可存取的,而其它计算瓦片(例如,计算瓦片410-3、410-4等)可以被配置成识别不同的逻辑地址集对于那些计算瓦片是可存取的。换句话说,第一计算瓦片(例如,计算瓦片410-2)可以存取与所述计算瓦片410-2相关联的第一逻辑地址集,并且第二计算瓦片(例如,计算瓦片410-3)可以存取与所述第二计算瓦片相关联的第二逻辑地址集,等等。
如果在第一计算瓦片(例如,计算瓦片410-2)处请求与第二逻辑地址集(例如,第二计算瓦片410-3可存取的逻辑地址)相对应的数据,则NoC 408可以促进第一计算瓦片(例如,计算瓦片410-2)与第二计算瓦片(例如,计算瓦片410-3)之间的通信,以允许第一计算瓦片(例如,计算瓦片410-2)存取与第二逻辑地址集(例如,第二计算瓦片410-3可存取的逻辑地址集)相对应的数据。也就是说,NoC 408可以促进计算瓦片410之间的通信,以允许计算瓦片410的地址空间彼此可见。
在一些实施例中,计算瓦片410之间的促进地址可见性的通信可以包含:通过第一计算瓦片的事件队列(例如,图5和6中展示的事件队列532和632)来接收请求存取与第二逻辑地址集相对应的数据的消息;将所请求的数据加载到第一计算瓦片的存储器资源(例如,本文图5和6中展示的计算瓦片存储器538和638)中;以及将所请求的数据传送到消息缓冲器(例如,本文图5和6中展示的消息缓冲器534和634)。一旦数据已由消息缓冲器缓冲,就可以通过NoC 408将数据传送到第二计算瓦片。
在其它实施例中,请求存储在计算瓦片410中的数据的应用可以知道哪些计算瓦片410包含所请求的数据。在此实例中,所述应用可以从相关的计算瓦片410请求数据,和/或地址可以被加载到多个计算瓦片410中并且可以通过NoC 408由请求数据的应用来存取。
如图4A所示,编排控制器406包括与NoC 408物理分离的分立电路系统。NoC 408可以是以一或多个集成电路的形式提供的通信子系统,所述通信子系统允许计算瓦片410、媒体控制器412和/或编排控制器406之间进行通信。NoC 408的非限制性实例可以包含XBAR或允许编排控制器406、计算瓦片410和/或媒体控制器412进行互连和/或互操作的其它通信子系统。
如上所述,响应于接收到由编排控制器406和/或NoC 408生成的命令,可以执行用于从通过计算瓦片410流式传输的数据块中提取相关数据的操作。
如图4B所示,编排控制器406驻留在多个计算瓦片410-1、…、410-8中的计算瓦片410-1之一上。如本文所使用的,术语“驻留在…上”是指物理地位于特定组件上的某物。例如,编排控制器406“驻留在”计算瓦片410之一上是指编排控制器406物理耦接到特定计算瓦片的条件。术语“驻留在…上”可以在本文中与如“部署在…上”或“位于…上”等其它术语互换使用。
如上所述,响应于接收到由计算瓦片410-1/编排控制器406和/或NoC 408生成的命令,可以执行用于从通过计算瓦片410流式传输的数据块中提取相关数据的操作。
如图4C所示,编排控制器406驻留在NoC 408上。在一些实施例中,将编排控制器406设置为NoC 408的一部分使得编排控制器406和NoC 408紧密耦接,这可以减少使用编排控制器406执行操作的时间消耗。
如上所述,响应于接收到由编排控制器406和/或NoC 408生成的命令,可以执行用于从通过计算瓦片410流式传输的数据块中提取相关数据的操作。
图5是根据本公开的若干个实施例的呈计算瓦片510的形式的框图。如图5所示,计算瓦片510可以包含排队电路系统,所述排队电路系统可以包含系统事件队列530和/或事件队列532,以及消息缓冲器534(例如,出站缓冲电路系统)。计算瓦片510可以进一步包含如精简指令集计算(RISC)装置536等处理装置、计算瓦片存储器538部分和直接存储器存取缓冲器539(例如,入站缓冲电路系统)。RISC装置536可以是可以采用如RISC-V ISA等精简指令集架构(ISA)的处理资源,然而实施例不限于RISC-V ISA,并且可以使用其它处理装置和/或ISA。
系统事件队列530、事件队列532和消息缓冲器534可以与如图1-4中分别展示的编排控制器106、206、306和406等编排控制器通信。在一些实施例中,系统事件队列530、事件队列532和消息缓冲器534可以与编排控制器直接通信,或者系统事件队列530、事件队列532和消息缓冲器534可以与片上网络(如分别在图1-3中展示的NoC 108、208和308)进行通信,所述片上网络可以进一步与编排控制器通信。
系统事件队列530、事件队列532和消息缓冲器534可以从编排控制器接收消息和/或命令和/或可以向编排控制器发送消息和/或命令,以控制计算瓦片510的操作,以便对由计算瓦片510处理的数据块(例如,本文图2和3中展示的数据块211和311)执行操作。在一些实施例中,命令和/或消息可以包含用于在执行操作期间分配或解除分配可用于计算瓦片510的资源的消息和/或命令。另外,命令和/或消息可以包含用于使计算瓦片510的操作与部署在存储控制器(例如,图1-4中分别展示的存储控制器104、204、304和404)中的其它计算瓦片同步的命令和/或消息。
例如,系统事件队列530、事件队列532和消息缓冲器534可以促进计算瓦片510与编排控制器之间的通信以使计算瓦片510处理数据块,以便减小与数据块相关联的数据的大小和/或数量。在非限制性实例中,系统事件队列530、事件队列532和消息缓冲器534可以处理从编排控制器接收到的命令和/或消息以使计算瓦片510对数据块执行过滤操作,以便在将减小的数据对象从计算瓦片510传送之前选择性地移除数据的某些部分。这可以允许在将数据传送到计算瓦片510外部的电路系统(如编排控制器、NoC或主机(例如,本文图1中展示的主机102))之前从数据块中提取相关数据。
系统事件队列530可以从编排控制器或NoC接收中断消息。中断消息可以由系统事件队列532处理,以使从编排控制器或NoC发送的命令或消息立即执行。例如,一或多个中断消息可以指示系统事件队列532使计算瓦片510中止未决命令或消息的操作,并且代替地执行从编排控制器或NoC接收到的新命令或消息。在一些实施例中,新命令或消息可以涉及发起操作的命令或消息,所述操作用于使用计算瓦片510来处理一或多个数据块以从所述一或多个数据块中提取相关信息或以其它方式减小与数据块相关联的数据的大小或数量。
事件队列532可以接收可以串行处理的消息。例如,事件队列532可以从编排控制器或NoC接收消息和/或命令,并且可以以串行方式处理接收到的消息,使得按照接收消息的顺序来处理消息。可以由事件队列接收并处理的消息的非限制性实例可以包含来自编排控制器和/或NoC的发起对数据块的处理的请求消息(例如,计算瓦片510上的远程程序调用)、来自其它计算瓦片的提供或改变接收消息请求的计算瓦片的计算瓦片存储器538中的特定存储器位置的内容的请求消息(例如,用于发起在计算瓦片之间进行远程读取或写入操作的消息)、来自其它计算瓦片的使在计算瓦片之间的数据块处理同步的同步消息请求等。
消息缓冲器534可以包括缓冲区域以缓冲要从计算瓦片510被传送到计算瓦片510外部的电路系统(如编排控制器、NoC和/或主机)的数据。在一些实施例中,消息缓冲器534可以以串行方式操作,使得数据按照由消息缓冲器534接收数据的顺序从缓冲器传送出计算瓦片510。消息缓冲器534可以进一步通过控制数据从消息缓冲器534传送的速率来提供路由控制和/或瓶颈控制。例如,消息缓冲器534可以被配置成以允许在不对编排控制器、NoC和/或主机造成数据瓶颈或路由问题的情况下从计算瓦片510传送数据的速率来从计算瓦片510传送数据。
RISC装置536可以与系统事件队列530、事件队列532和消息缓冲器534通信,并且可以处理由系统事件队列530、事件队列532和消息缓冲器534接收到的命令和/或消息,以促进对由计算瓦片510接收到的数据块的操作的执行。例如,RISC装置536可以包含被配置成处理命令和/或消息以使与由计算瓦片510接收到的数据块相关联的数据的大小或数量减小的电路系统。RISC装置536可以包含单核或者可以是多核处理器。
在一些实施例中,计算瓦片存储器538可以是如随机存取存储器(例如,RAM、SRAM等)等存储器资源。然而,实施例不限于此,并且计算瓦片存储器538可以包含各种寄存器、高速缓存、缓冲器和/或存储器阵列(例如,1T1C、2T2C、3T等、DRAM阵列)。计算瓦片存储器538可以被配置成从例如存储器装置(如本文图1中展示的存储器装置116-1、…、116-N)接收数据块。在一些实施例中,计算瓦片存储器538的大小可以为大约256千字节(KB),然而实施例不限于此特定大小,并且计算瓦片存储器538的大小可以大于或小于256KB。
计算瓦片存储器538可以被划分成一或多个可寻址存储器区域。如图5所示,计算瓦片存储器538可以被划分成可寻址存储器区域,从而可以在其中存储各种类型的数据。例如,一或多个存储器区域可以存储由计算瓦片存储器538使用的指令(“INSTR”)541,一或多个存储器区域可以存储数据块543-1、…、543-N(例如,从一或多个存储器装置中检索到的数据块),和/或一或多个存储器区域可以用作计算瓦片存储器538的本地存储器(“LOCALMEM.”)545部分。尽管在图5中示出了二十(20)个不同的存储器区域,但是应当理解,计算瓦片存储器538可以被划分为任意数量的不同的存储器区域。
如以上所讨论的,可以响应于由编排控制器(例如,本文图1-4中展示的编排控制器106、206、306、406)生成的消息和/或命令而从一或多个存储器装置中检索数据块。在一些实施例中,命令和/或消息可以由如在图1-4中分别展示的媒体控制器112、212、312或412等媒体控制器处理。一旦数据块由计算瓦片510接收,所述数据块就可以由DMA缓冲器539缓冲并且随后被存储在计算瓦片存储器538中。
因此,在一些实施例中,计算瓦片510可以提供对从一或多个存储器装置接收到的数据块的操作的数据驱动执行。例如,计算瓦片510可以响应于接收到数据块而开始对从一或多个存储器装置接收到的数据块执行操作(例如,用于减小数据块的大小、用于从数据块中提取相关信息、用于从数据块中移除不相关信息的操作等)。
例如,因为从一或多个存储器装置到计算瓦片510的数据传送的不确定性(例如,因为由于在将数据块传送到计算瓦片510之前由媒体控制器执行纠错操作而使得某些数据块可能花费更长的时间才能到达计算瓦片510等),所以与不以数据驱动的方式工作的方法相比,对数据块的操作的数据驱动执行可以提高计算性能。
在一些实施例中,编排控制器可以发送由计算瓦片510的系统事件队列530接收到的命令或消息。如上所述,所述命令或消息可以是指示计算瓦片510请求数据块并对所述数据块执行操作以减小与所述数据块相关联的数据的大小或数量的中断。然而,由于从一或多个存储器装置到计算瓦片510的数据传送的不确定性,数据块可能没有立即准备好从存储器装置发送到计算瓦片510。然而,一旦数据块由计算瓦片510接收,计算瓦片510就可以立即开始执行操作以减小与数据块相关联的数据的大小或数量。换句话说,计算瓦片510可以响应于接收到数据块而开始对数据块执行操作,而不需要另外的命令或消息来引起对数据块执行操作。
在一些实施例中,可以通过在计算瓦片存储器538中选择性地移动数据以从数据块中提取相关数据或从数据块中移除不相关数据来执行操作。在其中从对应于数据库并且含有三列数据A、B和C的数据块中请求两列数据A和B的非限制性实例中,可以将含有所有三列的数据块传送到计算瓦片存储器538的第一块(例如,块543-1)。
RISC装置536可以执行指令以使含有三列的数据块的前两列A和B(例如,所请求的数据或相关数据)选择性地移动到计算瓦片存储器的不同分区(例如,移动到块543-N)。在此阶段,可以将仅含有相关或所请求的列A和B的“经过滤的”数据块(例如,块543-N)传送到消息缓冲器534,以传送到计算瓦片510外部的电路系统。
随着经过滤的数据块(可以被称为“所得数据块”)被传送到消息缓冲器534,后续数据块可以从DMA缓冲器539传送到计算瓦片存储器538,并且可以在计算瓦片存储器538中发起用于减小与所述后续数据块相关联的数据的大小或数量的操作。通过在对先前数据块的操作完成之前将后续数据块缓冲到计算瓦片510中,可以在不存在来自编排控制器的发起对后续数据块的操作的另外的命令或消息的情况下,将数据块通过计算瓦片连续地流式传输。另外,通过抢先将后续数据块缓冲到DMA缓冲器539中,由于在通过计算瓦片510流式传输的同时对数据块进行操作,可以减轻由于从一或多个存储器装置到计算瓦片510的数据传送的不确定性引起的延迟。
在另一非限制性实例中,数据块可以包含一或多个逗号分隔值(CSV)文件。如果期望来自CSV文件的特定串或特定数据,则可以将含有整个CSV文件的数据块存储在计算瓦片存储器538的特定分区(例如,块543-1)中。RISC装置536可以执行指令以使特定串或特定数据(例如,所请求的数据或相关数据)移动到计算瓦片存储器538的不同分区(例如,块543-N)。在此阶段,可以将仅含有相关或所请求的串或数据的“经过滤的”数据块(例如,块543-N)传送到消息缓冲器534,以传送到计算瓦片510外部的电路系统。
随着经过滤的数据块被传送到消息缓冲器534,后续数据块可以从DMA缓冲器539传送到计算瓦片存储器538,并且可以在计算瓦片存储器538中发起用于减小与所述后续数据块相关联的数据的大小或数量的操作。
当数据(例如,已被操作的数据)要从计算瓦片510移动到计算瓦片510外部的电路系统(例如,NoC、编排控制器和/或主机)时,RISC装置536可以将命令和/或消息发送到编排控制器,所述编排控制器可以继而发送命令和/或消息以从计算瓦片存储器538请求数据。
计算瓦片存储器538可以响应于请求数据的命令和/或消息而将数据传送到期望的位置(例如,传送到NoC、编排瓦片和/或主机)。例如,响应于请求已被操作的数据的命令,已被操作的数据可以被传送到消息缓冲器534,并且随后被传送出计算瓦片510。在一些实施例中,从计算瓦片存储器538传送到NoC、编排控制器和/或主机的数据可以是已对其执行用于通过从数据块中移除不相关数据和/或通过从数据块中提取相关数据来减小数据的原始大小(例如,减小由计算瓦片510从一或多个存储器装置接收到的数据块的大小)的操作的数据。
图6是根据本公开的若干个实施例的呈计算瓦片610的形式的另一框图。如图6所示,计算瓦片610可以包含系统事件队列630、事件队列632和消息缓冲器634。计算瓦片610可以进一步包含指令高速缓存635、数据高速缓存637、如精简指令集计算(RISC)装置636等处理装置、计算瓦片存储器638部分和直接存储器存取缓冲器639。图6所示的计算瓦片610可以类似于图5中展示的计算瓦片510,然而图6中展示的计算瓦片610进一步包含指令高速缓存635和/或数据高速缓存637。
指令高速缓存635和/或数据高速缓存637的大小可以小于计算瓦片存储器638的大小。例如,计算瓦片存储器可以为大约256KB,而指令高速缓存635和/或数据高速缓存637的大小为大约32KB。然而,实施例不限于这些特定大小,只要指令高速缓存635和/或数据高速缓存637的大小小于计算瓦片存储器638的大小即可。
在一些实施例中,指令高速缓存635可以存储和/或缓冲在RISC装置636到计算瓦片存储器638之间传送的消息和/或命令,而数据高速缓存637可以存储和/或缓冲在计算瓦片存储器638与RISC装置636之间传送的数据。
图7是根据本公开的若干个实施例的表示用于存储装置操作编排的示例方法750的流程图。在框752处,方法750可以包含由处理装置(例如,与计算瓦片相对应的处理装置)接收发起执行涉及存储在耦接到计算瓦片的存储器装置中的数据块的操作的命令。处理装置可以是如本文图5和6中展示的RISC计算装置536/636等处理装置,并且可以是如本文图1-6中展示的计算瓦片110、210、310、410、510和610等计算瓦片的一部分。存储器装置可以类似于本文图1中展示的一或多个存储器装置116-1、…、116-N。在一些实施例中,发起执行操作的命令可以由如本文图1-4中展示的编排控制器106、206、306或406等编排控制器来生成。
在框754处,方法750可以包含响应于发起命令而从存储器装置(例如,从耦接到计算瓦片的处理装置的存储器资源)在计算瓦片处接收第一数据块。在一些实施例中,可以使用如本文图1-4中展示的媒体控制器112、212、312或412等媒体控制器将第一数据块从存储器装置传送到存储控制器。如上所述,在一些实施例中,接收发起执行操作的命令可以包含由对应于计算瓦片的处理装置(如图5和6中展示的RISC装置536和636)接收发起执行操作的命令。
在框756处,方法750可以包含响应于接收到数据块而执行第一操作以从由处理装置和/或计算瓦片接收到的第一数据块中提取数据。在一些实施例中,执行第一操作可以包含通过与处理装置和/或计算瓦片相对应的存储器资源(例如,在本文图5和6中展示的计算瓦片存储器538和638)来执行第一操作。在一些实施例中,执行第一操作以从第一数据块中提取数据可以包含将第一数据块存储在计算瓦片的存储器资源的第一分区(例如,耦接到处理装置的存储器资源)中和/或选择性地将与第一数据块相关联的数据的一部分传送到存储器装置的第二分区。数据的所述部分可以包含要从数据块中提取的数据。换句话说,数据的所述部分可以包含已经被过滤使得由于操作的执行而保留相关数据并且丢弃不相关数据的数据。
在框758处,方法750可以包含在计算瓦片执行第一操作时在计算瓦片的处理装置处从存储器装置接收第二数据块。在一些实施例中,可以使用如本文图1-4中展示的媒体控制器112、212、312或412等媒体控制器将第二数据块从存储器装置传送到存储控制器。
在框760处,方法750可以包含响应于第一操作的完成而执行第二操作以从由计算瓦片的处理装置接收到的第二数据块中提取数据,而不接收另外的发起命令。例如,如上所述,计算瓦片可以以数据驱动的方式操作,使得在发起命令由计算瓦片的处理装置接收之后,在不存在另外的命令的情况下通过处理装置和/或计算瓦片对数据块进行流式传输和处理。在一些实施例中,执行第二操作可以包含通过与计算瓦片相对应的存储器资源(例如,耦接到计算瓦片的处理装置的存储器资源)来执行第二操作。
方法750可以进一步包含在执行第二操作之前由计算瓦片的处理装置缓冲第二数据块,使得第二数据块可用于计算瓦片以在第一操作完成时执行第二操作。缓冲可以由驻留在计算瓦片上的缓冲器(如在本文图5和6中展示的DMA缓冲器539和639)执行。
方法750可以进一步包含响应于用于从第一数据块中提取数据的操作的完成而将从第一数据块中提取的数据传送到处理装置和/或计算瓦片外部的电路系统。在一些实施例中,对应于所提取的数据的逻辑记录可以被传送到处理装置和/或计算瓦片外部的电路系统。例如,方法750可以包含:生成与从第一数据块和第二数据块中提取的数据中的至少一个数据相对应的逻辑记录;并且将逻辑字传送到计算瓦片外部的电路系统,如以上结合图2和3所描述的。
在一些实施例中,所述方法可以包含由计算瓦片的处理装置请求存储在与所述计算瓦片不同的计算瓦片的地址空间中的信息,和/或将所请求的信息从所述与所述计算瓦片不同的计算瓦片传送到所述计算瓦片。例如,如以上结合图4A-4C所描述的,计算瓦片可以被配置成使得计算瓦片的地址空间对于存储控制器中的其它计算瓦片是可见的。
尽管本文已经展示并描述了具体实施例,但是本领域的普通技术人员将理解,旨在实现相同结果的布置可以替换所示出的具体实施例。本公开旨在覆盖本公开的一或多个实施例的改编形式或变化形式。应理解的是,上面的描述以说明性方式而非限制性方式进行。在阅读以上描述后,上述实施例的组合以及本文未具体描述的其它实施例对于本领域的技术人员而言将是显而易见的。本公开的一或多个实施例的范围包含以上结构和工艺被使用的其它应用。因此,本公开的一或多个实施例的范围应当参考所附权利要求连同与此类权利要求被赋予的等效物的全部范围确定。
在以上具体实施方式中,出于使本公开简单化的目的,在单个实施例中将一些特征分组在一起。本公开的此方法并不被解释为反映本公开的所公开的实施例必须使用比每项权利要求中明确陈述的更多特征的意图。相反,如以下权利要求所反映的,本发明主题在于少于单个所公开实施例的全部特征。因此,以下权利要求由此被并入具体实施方式中,其中每项权利要求作为单独的实施例而独立存在。

Claims (21)

1.一种设备,其包括:
计算瓦片,所述计算瓦片包括处理装置和存储器资源,其中所述计算瓦片被配置成:
接收发起用于将数据块的大小从第一大小减小到第二大小的操作的命令;
响应于接收到所述命令而从耦接到所述设备的存储器装置接收数据块;并且
响应于接收到所述数据块而对所述数据块执行操作以从所述数据块中提取预定数据,以便将所述数据块的大小从第一大小减小到第二大小。
2.根据权利要求1所述的设备,其中所述计算瓦片被配置成在不存在中间命令的情况下响应于接收到所述数据块而对所述数据块执行所述操作。
3.根据权利要求1到2中任一权利要求所述的设备,其中所述计算瓦片被进一步配置成使大小减小的数据块传送到所述计算瓦片外部的电路系统。
4.根据权利要求1到2中任一权利要求所述的设备,其中所述计算瓦片进一步包括DMA缓冲器,以在对所述数据块执行所述操作期间接收后续数据块,并且其中所述计算瓦片被配置成:
在没有接收到发起后续操作的中间命令的情况下,对所述后续数据块执行所述后续操作以从所述后续数据块中提取预定数据,以便将所述后续数据块的大小从第一大小减小到第二大小,并且
在所述计算瓦片没有接收到中间命令的情况下,使大小减小的后续数据块传送到所述计算瓦片外部的电路系统。
5.一种设备,其包括:
存储器资源,所述存储器资源耦接到处理装置和入站缓冲电路系统;以及
处理装置,所述处理装置耦接到排队电路系统和出站缓冲电路系统,其中所述处理资源被配置成:
通过所述排队电路系统接收发起用于减小相应数据块大小的操作的命令;
使第一数据块从所述入站缓冲电路系统加载到所述存储器资源中;
使所述存储器资源对所述第一数据块执行所述操作;
使第二数据块加载到所述入站缓冲电路系统中;
使所述第二数据块从所述入站缓冲电路系统加载到所述存储器资源中;并且
响应于确定对所述第一数据块的所述操作完成,使所述存储器资源对所述第二数据块执行所述操作。
6.根据权利要求5所述的设备,其中所述处理装置被进一步配置成使所述第二数据块加载到所述入站缓冲电路系统中,加载到所述存储器资源中,并且在不存在与发起所述操作的所述命令分开的另外的命令的情况下使所述存储器资源对所述第二数据块执行所述操作。
7.根据权利要求5所述的设备,其中作为所述操作的一部分,所述存储器资源被配置成:
将所述第一数据块存储在所述存储器资源的第一分区中;
将所述第一数据块的相关部分传送到所述存储器资源的第二分区;并且
将存储在所述第二分区中的数据传送到所述出站缓冲电路系统。
8.根据权利要求5到7中任一权利要求所述的设备,其中所述发起所述操作的命令包含中断消息。
9.根据权利要求5到7中任一权利要求所述的设备,其中所述第一数据块或所述第二数据块包含与数据库相对应的数据,并且其中所述操作包括用于从所述第一数据块或所述第二数据块中提取特定数据列的过滤操作。
10.根据权利要求5到7中任一权利要求所述的设备,其中所述处理装置被配置成在执行所述操作之后,在不存在与所述发起所述操作的命令分开的另外的命令的情况下,使第一所得数据块和第二所得数据块中的至少一个:
传送到所述出站缓冲电路系统;
从所述出站缓冲电路系统传送到所述设备外部的电路系统;
传送到所述出站缓冲电路系统;并且
从所述出站缓冲电路系统传送到所述设备外部的电路系统。
11.一种系统,其包括:
多个计算瓦片,所述多个计算瓦片各自包括相应存储器资源和相应精简指令集计算RISC装置,其中所述多个计算瓦片中的计算瓦片被配置成:
接收包括多个数据块的相应数据流;并且
通过在所述相应存储器资源的分区之间传送所述数据块的部分,对所述数据块执行用于提取所述数据块的所请求部分的操作。
12.根据权利要求11所述的系统,其进一步包括通信子系统,所述通信子系统耦接到所述多个计算瓦片,其中所述通信子系统被配置成在所述多个计算瓦片之间提供通信路径,以允许所述多个计算瓦片中的第一计算瓦片对与所述多个计算瓦片中的第二计算瓦片相关联的地址空间进行存取。
13.根据权利要求11到12中任一权利要求所述的系统,其进一步包括控制器,所述控制器耦接到所述计算瓦片,其中所述控制器被配置成分配所述多个计算瓦片中的特定计算瓦片,以对所述数据块执行所述操作。
14.根据权利要求11到12中任一权利要求所述的系统,其中所述计算瓦片被配置成响应于接收到发起命令而发起对所述数据块的所述操作,并且其中所述计算瓦片被配置成接收相应的数据流并且在所述发起命令之后不存在命令的情况下对所述数据块执行所述操作。
15.根据权利要求11到12中任一权利要求所述的系统,其中所述计算瓦片被配置成响应于用于提取所请求数据的所述操作的完成而将包含所提取的数据的所请求部分的数据块传送到所述计算瓦片外部的电路系统。
16.一种方法,其包括:
由处理装置接收发起执行涉及存储在耦接到所述处理装置的存储器装置中的数据块的操作的命令;
响应于所述发起命令而从所述存储器装置接收第一数据块;
响应于接收到所述数据块而执行第一操作以从接收自所述存储器装置的所述第一数据块中提取数据;
在所述处理装置执行所述第一操作时在所述处理装置处从所述存储器装置接收第二数据块;
响应于所述第一操作的完成并且在接收到另外的发起命令之前,执行第二操作以从由所述处理装置接收到的所述第二数据块中提取数据。
17.根据权利要求16所述的方法,其进一步包括在执行所述第二操作之前,由耦接到所述处理装置的缓冲电路系统缓冲所述第二数据块,使得所述第二数据块能够用于处理装置以在所述第一操作完成时执行所述第二操作。
18.根据权利要求16所述的方法,其进一步包括:
由所述处理装置请求存储在与所述处理装置不同的处理装置的地址空间中的信息;
将所请求的信息从所述与所述处理装置不同的处理装置传送到所述处理装置。
19.根据权利要求16所述的方法,其进一步包括响应于用于从所述第一数据块中提取数据的所述操作的完成而将从所述第一数据块中提取的数据传送到所述处理装置外部的电路系统。
20.根据权利要求16所述的方法,其中执行所述第一操作以从所述第一数据块中提取数据进一步包括:
将所述第一数据块存储在耦接到所述处理装置的存储器资源的第一分区中;以及
将数据的与所述第一数据块相关联的一部分选择性地传送到所述存储器装置的第二分区,其中数据的所述部分包含要从所述数据块中提取的数据。
21.根据权利要求16到20中任一权利要求所述的方法,其进一步包括:
生成与从所述第一数据块和所述第二数据块中提取的所述数据中的至少一个数据相对应的逻辑记录;并且
将逻辑字传送到所述处理装置外部的电路系统。
CN201980081731.4A 2018-12-28 2019-11-21 计算瓦片 Active CN113227956B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/236,188 2018-12-28
US16/236,188 US10606775B1 (en) 2018-12-28 2018-12-28 Computing tile
PCT/US2019/062516 WO2020139489A1 (en) 2018-12-28 2019-11-21 Computing tile

Publications (2)

Publication Number Publication Date
CN113227956A true CN113227956A (zh) 2021-08-06
CN113227956B CN113227956B (zh) 2023-03-24

Family

ID=69951605

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980081731.4A Active CN113227956B (zh) 2018-12-28 2019-11-21 计算瓦片

Country Status (5)

Country Link
US (3) US10606775B1 (zh)
EP (1) EP3903176A4 (zh)
KR (1) KR20210097809A (zh)
CN (1) CN113227956B (zh)
WO (1) WO2020139489A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481317B2 (en) * 2020-06-26 2022-10-25 Micron Technology, Inc. Extended memory architecture
CN113791996B (zh) * 2021-09-10 2024-02-06 中科寒武纪科技股份有限公司 集成电路装置、电子设备、板卡和计算方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179179A1 (en) * 2005-02-08 2006-08-10 Masakazu Suzuoki Methods and apparatus for hybrid DMA queue and DMA table
CN104575568A (zh) * 2009-12-31 2015-04-29 英特尔公司 用于混合存储器的系统、方法和装置
US20150212759A1 (en) * 2014-01-29 2015-07-30 Samsung Electronics Co., Ltd. Storage device with multiple processing units and data processing method
CN105844210A (zh) * 2015-01-29 2016-08-10 Hgst荷兰有限公司 硬件有效的指纹识别
WO2018211122A1 (en) * 2017-05-19 2018-11-22 Movidius Ltd. Methods, systems and apparatus to reduce memory latency when fetching pixel kernels
CN108874303A (zh) * 2017-05-09 2018-11-23 西部数据技术公司 非易失性存储器命令冲突避免的储存系统和方法

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668809A (en) * 1993-10-20 1997-09-16 Lsi Logic Corporation Single chip network hub with dynamic window filter
US6310652B1 (en) * 1997-05-02 2001-10-30 Texas Instruments Incorporated Fine-grained synchronization of a decompressed audio stream by skipping or repeating a variable number of samples from a frame
US5999936A (en) * 1997-06-02 1999-12-07 Compaq Computer Corporation Method and apparatus for compressing and decompressing sequential records in a computer system
US6931012B2 (en) * 2001-04-06 2005-08-16 Texas Instruments Incorporated ATM processor for switching in an ATM system
US7194766B2 (en) * 2001-06-12 2007-03-20 Corrent Corporation Method and system for high-speed processing IPSec security protocol packets
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
JP2007207328A (ja) * 2006-01-31 2007-08-16 Toshiba Corp 情報記憶媒体、プログラム、情報再生方法、情報再生装置、データ転送方法、及びデータ処理方法
KR20080095672A (ko) * 2007-04-25 2008-10-29 삼성전자주식회사 화상회전기능을 가지는 화상처리장치 및 화상회전방법
US8032499B2 (en) * 2007-05-21 2011-10-04 Sap Ag Compression of tables based on occurrence of values
US7769729B2 (en) * 2007-05-21 2010-08-03 Sap Ag Block compression of tables with repeated values
US20090055005A1 (en) * 2007-08-23 2009-02-26 Horizon Semiconductors Ltd. Audio Processor
US20100017649A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation Data storage system with wear-leveling algorithm
US8438455B2 (en) 2008-12-31 2013-05-07 Intel Corporation Error correction in a solid state disk
EP2273796A3 (en) * 2009-06-09 2011-12-21 Thomson Licensing Method and device for coding
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US9195657B2 (en) * 2010-03-08 2015-11-24 Microsoft Technology Licensing, Llc Columnar storage of a database index
KR101759658B1 (ko) * 2011-02-23 2017-07-19 삼성전자 주식회사 메모리 장치 및 메모리 시스템
US8639672B2 (en) * 2012-03-27 2014-01-28 International Business Machines Corporation Multiplex classification for tabular data compression
US9092429B2 (en) * 2012-10-23 2015-07-28 Analog Devices Global DMA vector buffer
WO2014113055A1 (en) * 2013-01-17 2014-07-24 Xockets IP, LLC Offload processor modules for connection to system memory
JP6089844B2 (ja) * 2013-03-22 2017-03-08 富士通株式会社 制御装置,ストレージ装置,及び制御プログラム
GB2513111A (en) * 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
GB2516422A (en) * 2013-07-09 2015-01-28 Sony Corp Data encoding and decoding
US9178824B2 (en) * 2013-10-29 2015-11-03 Solana Networks Inc. Method and system for monitoring and analysis of network traffic flows
WO2015121912A1 (ja) * 2014-02-12 2015-08-20 株式会社日立製作所 データ記憶装置
US9009171B1 (en) 2014-05-02 2015-04-14 Palantir Technologies Inc. Systems and methods for active column filtering
US9477295B2 (en) 2014-05-15 2016-10-25 Dell Products, L.P. Non-volatile memory express (NVMe) device power management
US9740621B2 (en) * 2014-05-21 2017-08-22 Qualcomm Incorporated Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods
US20150371684A1 (en) 2014-06-18 2015-12-24 NXGN Data, Inc. Ultra high capacity ssd
JP6457364B2 (ja) * 2015-09-11 2019-01-23 東芝メモリ株式会社 メモリシステム
US20180300840A1 (en) * 2017-04-17 2018-10-18 Joydeep Ray Display link compression by render engine
US10909037B2 (en) * 2017-04-21 2021-02-02 Intel Corpor Ation Optimizing memory address compression
US11416475B2 (en) * 2018-10-19 2022-08-16 Adobe Inc. Block quantity reduction in distributed ledgers
US11016765B2 (en) * 2019-04-29 2021-05-25 Micron Technology, Inc. Bit string operations using a computing tile
US20200387444A1 (en) * 2019-06-06 2020-12-10 Micron Technology, Inc. Extended memory interface

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179179A1 (en) * 2005-02-08 2006-08-10 Masakazu Suzuoki Methods and apparatus for hybrid DMA queue and DMA table
CN104575568A (zh) * 2009-12-31 2015-04-29 英特尔公司 用于混合存储器的系统、方法和装置
US20150212759A1 (en) * 2014-01-29 2015-07-30 Samsung Electronics Co., Ltd. Storage device with multiple processing units and data processing method
CN105844210A (zh) * 2015-01-29 2016-08-10 Hgst荷兰有限公司 硬件有效的指纹识别
CN108874303A (zh) * 2017-05-09 2018-11-23 西部数据技术公司 非易失性存储器命令冲突避免的储存系统和方法
WO2018211122A1 (en) * 2017-05-19 2018-11-22 Movidius Ltd. Methods, systems and apparatus to reduce memory latency when fetching pixel kernels

Also Published As

Publication number Publication date
KR20210097809A (ko) 2021-08-09
US10606775B1 (en) 2020-03-31
EP3903176A1 (en) 2021-11-03
WO2020139489A1 (en) 2020-07-02
US11157424B2 (en) 2021-10-26
US20200210353A1 (en) 2020-07-02
US20220027297A1 (en) 2022-01-27
US11650941B2 (en) 2023-05-16
CN113227956B (zh) 2023-03-24
EP3903176A4 (en) 2022-11-09

Similar Documents

Publication Publication Date Title
US11573903B2 (en) Memory devices and methods which may facilitate tensor memory access with memory maps based on memory operations
US11907814B2 (en) Data path for GPU machine learning training with key value SSD
US11650941B2 (en) Computing tile
CN113994314B (zh) 扩展存储器接口
US20200293452A1 (en) Memory device and method including circular instruction memory queue
US11579882B2 (en) Extended memory operations
KR102722832B1 (ko) 저장 디바이스 동작 오케스트레이션
CN113454612B (zh) 存储装置操作编排
KR20240157127A (ko) 저장 디바이스 동작 오케스트레이션

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