CN105940381B - 存储器控制器和由存储器控制器执行的方法 - Google Patents

存储器控制器和由存储器控制器执行的方法 Download PDF

Info

Publication number
CN105940381B
CN105940381B CN201380081205.0A CN201380081205A CN105940381B CN 105940381 B CN105940381 B CN 105940381B CN 201380081205 A CN201380081205 A CN 201380081205A CN 105940381 B CN105940381 B CN 105940381B
Authority
CN
China
Prior art keywords
memory controller
data
register file
vector register
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201380081205.0A
Other languages
English (en)
Other versions
CN105940381A (zh
Inventor
S-L.L.卢
C.夏
B.荣
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN105940381A publication Critical patent/CN105940381A/zh
Application granted granted Critical
Publication of CN105940381B publication Critical patent/CN105940381B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing

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)
  • Software Systems (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

实施例包括与重排序从动态随机存取存储器(DRAM)检索的数据相关联的系统、方法和装置。存储器控制器可以配置成从中央处理单元(CPU)接收指令并且基于指令从DRAM检索顺序数据。存储器控制器然后可以配置成重排序顺序数据并且将经重排序的数据放置在向量寄存器文件的一个或多个位置中。

Description

存储器控制器和由存储器控制器执行的方法
技术领域
本发明的实施例一般涉及存储器访问的技术领域。
背景技术
本文所提供的背景技术描述出于一般地呈现公开内容的上下文的目的。当前提名的发明人的就在本背景技术章节中加以描述而言的工作以及在提交时原本可能未取得现有技术资格的描述的方面既不明确地也不暗含地被承认是针对本公开的现有技术。除非本文中以其它方式指示,本章节中所描述的方法不是本公开中的权利要求的现有技术,且不因包含在本章节中而被承认是现有技术。
可能要求密集型计算的许多应用以及特别是高性能计算应用(诸如图形)可能对向量起作用。例如,数据可以被加载到向量寄存器堆中且然后由与彼此并行工作的多个向量处理单元处理。具体地,可以将数据划分在向量寄存器堆的多个向量寄存器之间,并且然后,向量处理单元可以处理给定向量寄存器中的数据。
在实施例中,从多个存储器地址检索数据并将数据写入到向量寄存器中的过程可以被称为“聚集”操作。相反,将数据从向量寄存器写入到多个存储器地址位置中的过程可以被称为“分散”操作。
附图说明
通过结合附图的以下详细描述,将容易理解实施例。为了便于该描述,相似的附图标记指代相似的结构元件。在附图的各图中通过示例的方式而非通过限制的方式图示了实施例。
图1图示了依照各种实施例的包括存储器控制器的示例系统。
图2图示了依照各种实施例的存储器重排序操作的示例表。
图3图示了依照各种实施例的存储器重排序操作的可替换示例表。
图4图示了依照各种实施例的用于重排序从存储器读取的数据的示例过程。
图5图示了依照各种实施例的配置成施行本文所描述的过程的示例系统。
具体实施方式
在以下详细描述中,参照形成其部分的附图,其中相似的附图标记自始至终指代相似的部分,并且其中通过图示的方式示出了可实践的实施例。要理解的是,在不脱离于本公开的范围的情况下,可以利用其它实施例并且可以做出结构或逻辑改变。因此,以下详细描述不应在限制的意义上理解,并且实施例的范围由随附权利要求及其等同物限定。
本文描述了与顺序数据的处理相关联的装置、方法和存储介质。具体地,在遗留系统中,向量寄存器堆可以包括多个向量寄存器,并且多个向量处理单元化单元可以配置成处理每一个相应向量寄存器的数据。例如,顺序数据可以被划分成一系列数据“组块”,并且每一个组块可以由不同的向量处理单元来处理。
在一些实施例中,对于具体向量处理单元而言,处理具体数据组块而非另一数据组块可能是合期望的。在现有遗留系统中,顺序数据可以从存储器读取,并且顺序数据的每一个组块可以被放置到向量寄存器堆的向量寄存器中。接着,可以搅乱各种向量寄存器中的数据的次序,使得所期望的数据组块处于向量寄存器堆的所期望的向量寄存器中。最后,数据可以由各种向量处理单元来处理。
然而,本文中的实施例提供了一种过程,其可以提高将数据加载到向量处理单元中并处理该数据的效率。具体地,在本文所描述的实施例中,中央处理单元(CPU)可以向与其中存储数据的存储器(诸如动态随机存取存储器(DRAM))耦合的存储器控制器发送命令。基于该命令,存储器控制器可以从DRAM检索数据并在数据被加载到向量寄存器堆的一个或多个向量寄存器中之前重排序数据。然后,存储器控制器可以根据重排序将经重排序的数据加载到向量寄存器堆的一个或多个向量寄存器中。可以通过在检索过程期间而不是在数据被加载到向量寄存器堆中之后重排序数据来实现各种益处。例如,被要求从CPU传输的信号的数目可以减少。此外,加载和处理时间以及因而系统的等待时间可以减少。还可以实现附加或可替换的益处。
各种操作可以以最有助于理解所要求保护的主题的方式而被依次描述为多个分立的动作或操作。然而,描述的次序不应当被解释为暗示这些操作必然是依赖于次序的。特别地,这些操作可以不以呈现的次序施行。所描述的操作可以以与所描述的实施例不同的次序施行。可以施行各种附加操作,和/或可以在附加实施例中省略所描述的操作。
出于本公开的目的,短语“A和/或B”和“A或B”意指(A)、(B)或(A和B)。出于本公开的目的,短语“A、B和/或C”意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
描述可以使用短语“在一个实施例中”或者“在实施例中”,其均可以是指相同或不同实施例中的一个或多个。另外,如关于本公开的实施例所使用的术语“包含”、“包括”、“具有”等是同义的。
如本文所使用的,术语“电路”可以是指下述各项、是下述各项的一部分或包括下述各项:执行一个或多个软件或固件程序的专用集成电路(ASIC)、电子电路、处理器(共享、专用或组)和/或存储器(共享、专用或组)、组合逻辑电路和/或提供所描述的功能性的其它合适硬件组件。如本文所使用的,“计算机实现的方法”可以是指由一个或多个处理器、具有一个或多个处理器的计算机系统、诸如智能电话之类的移动设备(其可以包括一个或多个处理器)、平板电脑、膝上型计算机、机顶盒、游戏控制台等执行的任何方法。
图1描绘了系统100的示例,系统100可以允许数据到向量寄存器堆中的更高效的聚集。在实施例中,CPU 105,并且具体地,CPU 105的元件,诸如以下讨论的向量寄存器堆130,可以经由一个或多个总线与存储器控制器110耦合。在实施例中,存储器控制器110可以此外与DRAM 120耦合。在本文所描述的实施例中,DRAM 120可以是同步DRAM(SDRAM)、双数据速率(DDR)DRAM(诸如第二代(DDR2)、第三代(DDR3)或第四代(DDR4)DRAM)或某种其它类型的DRAM。在一些实施例中,存储器控制器110可以经由DDR通信链路125与DRAM 120耦合。
在实施例中,存储器控制器110可以此外与CPU 105的向量寄存器堆130耦合,向量寄存器堆130可以包括多个向量寄存器135a、135b和135c。在一些实施例中,向量寄存器堆130可以被称为单指令多数据(SIMD)寄存器堆。每一个向量寄存器可以配置成存储由存储器控制器110从DRAM 120检索的数据的部分。在实施例中,向量寄存器堆130可以与CPU 105的多个向量处理单元140a、140b和140c耦合。向量处理单元140a、140b和140c可以配置成与向量处理单元140a、140b或140c中的另一个处理向量寄存器堆130的不同的一个或多个向量寄存器135a、135b或135c中的数据的另一部分并行地处理向量寄存器堆130的向量寄存器135a、135b或135c中的一个或多个中的数据的部分。例如,向量处理单元140a可以与向量处理单元140b处理向量寄存器135b的数据并行地处理向量寄存器135a的数据。尽管图1仅将向量寄存器堆130描绘为具有三个向量寄存器135a、135b和135c,但是在其它实施例中,向量寄存器堆130可以具有更多或更少的向量寄存器。此外,系统100可以包括比图1中描绘的三个向量处理单元140a、140b和140c更多或更少的向量处理单元。
尽管某些元件被示出为彼此的元件或者与彼此耦合,但是在其它实施例中,一个或多个元件可以以片上系统(SoC)或系统级封装(SiP)配置而处于相同芯片或封装上,或者可以与彼此分离。例如,向量寄存器堆130和/或向量处理单元140a、140b和140c中的一个或多个可以与CPU 105分离。可替换地,单个芯片可以包括CPU 105、存储器控制器110、向量寄存器堆130和向量处理单元140a、140b或140c中的一个或多个。
在一些实施例中,存储器控制器110可以包含一个或多个模块或电路,诸如存储器检索电路145、重排序电路150和存储电路155。在实施例中,存储器检索电路145可以配置成从DRAM 120检索数据的一个或多个部分。重排序电路150,如以下将进一步详细讨论的,可以配置成重排序由存储器检索电路145检索的数据。存储电路155可以配置成将经重排序的数据放置到向量寄存器堆130中。
在实施例中,CPU 105可以配置成向存储器控制器110传输指令。指令,其可以为SIMD指令,可以包括例如供存储器控制器110生成“ACTIVE”命令的指令。在一些实施例中,指令可以是或者包括来自CPU 105的“LOAD”或“MOV”指令,其可以包括所期望的数据在DRAM120中的位置的指示。ACTIVE命令可以使存储器控制器110激活(打开)其中可存储或检索数据的DRAM 120中的存储器位置或“页”。在一些实施例中,由ACTIVE命令打开的位置可以包括数千个字节的数据。如果对存储器的随后访问在所打开的页的范围内,仅地址的子集可能需要被供给以选择页内的数据。在实施例中,ACTIVE命令还可以标识其中存储数据的DRAM 120的行地址。
在ACTIVE命令之后,存储器控制器110可以生成“READ”或“WRITE”命令。在一些实施例中,READ或WRITE命令可以响应于生成了ACTIVE命令的相同指令而生成,并且在其它实施例中,READ或WRITE命令可以响应于来自CPU 105的分离指令而生成。在一些实施例中,ACTIVE、READ或WRITE命令中的一个或全部可以包括DRAM 120的存储器地址,诸如DRAM 120中的位置的列地址或行地址。具体地,来自CPU 105的指令可以包括一个或多个存储器地址,其可以被转化成DRAM 120中的具体行和列地址。该转化可以由存储器控制器110完成并可以专用于实现其它目的,诸如均匀地分布对DRAM 120的访问。由于DRAM 120可以被组织为2D阵列,因此ACTIVE、READ或WRITE命令中的行地址可以选择其中存储所期望的数据的DRAM 120的行,并且ACTIVE、READ或WRITE命令的列地址可以选择被访问的DRAM 120的列。在一些实施例中,行和列地址可以被锁存在一些DRAM中。
CPU 105可以在数个时钟周期之后向存储器控制器110传输指令。可替换地,CPU105可以向存储器控制器110传输指令,并且存储器控制器110可以在数个时钟周期之后实现指令。例如,在一些实施例中,存储器控制器110可能能够根据存储器控制器110的一个或多个预设参数追踪某些命令之间的时钟周期的数目。在实施例中,可以在tRCD周期中测量数目,tRCD周期可以对应于存储器控制器110发布行地址选通(RAS)到存储器控制器110发布列地址选通(CAS)之间的时间。
在一些实施例中,来自CPU的指令可以通过READ命令使存储器控制器110将数据读取到向量寄存器135a、135b或135c中的一个或多个中。数据的该读取可以是通过断言与诸如其中存储数据的DRAM 120的存储器位置的列地址或行地址之类的命令的部分相对应的DRAM 120的管脚来完成的。DRAM 120的一个或多个管脚可以对应于READ命令的列地址。通过这些管脚的断言,可以在“突发”中将数据从DRAM 120递送至存储器控制器110,如以下更加详细描述的。
具体地,DRAM 120可以具有多个管脚,通过该多个管脚,其可以传输或接收来自存储器控制器110的具体信号。在具体管脚上接收的命令可以使DRAM 120施行具体功能,例如读取数据,如以上描述的,或者写入数据,如以下描述的。
相反,WRITE命令可以使存储器控制器110将数据从向量寄存器135a、135b和135c写入到由WRITE命令指定的DRAM 120的存储器位置。
在一些实施例中,存储在DRAM 120中的数据可以是顺序数据。作为顺序数据的示例,数据可以是64字节长且被组织在八个8字节组块中。64字节的第一8字节组块可以被称为第0组块,64字节的第二8字节组块可以被称为第1组块,以此类推。总体上,顺序数据可以由组块0、1、2、3、4、5、6和7组成。
在一些实施例中,CPU 105可以包括高速缓存115。如图1中所示,在一些实施例中,高速缓存115可以与存储器控制器110和/或向量寄存器堆130耦合且处于其之间。在一些实施例中,高速缓存115还可以与向量处理单元140a、140b和140c中的一个或多个耦合。在一些实施例中,向量处理单元140a、140b和140c和/或向量寄存器堆130中的一个或多个可以配置成在试图借助于存储器控制器110访问来自DRAM 120的数据之前访问来自高速缓存115的数据。
具体地,诸如CPU 105之类的许多现代微处理器可以采用高速缓存来减少系统的平均等待时间。高速缓存115可以包括一个或多个层,诸如L1层、L2层、L3层等。在实施例中,对系统100的DRAM 120中的数据的访问可以基于存储器控制器110的高速缓存线的大小。例如,在一些实施例中,高速缓存线大小可以是64字节。在该实施例中,将64字节高速缓存线从DRAM 120传送至向量寄存器堆130可以要求八个连续8字节数据组块。
在其中使用标量寄存器和标量寄存器堆的本文中未示出的一些遗留实施例中,如与本实施例的向量寄存器堆130形成对比,可能合期望的是,不作为顺序数据中的第一个的组块(其可以在本文中被称为经优先化的组块)在其它组块之前被输入到标量寄存器堆,使得与标量寄存器相关联的处理器(例如CPU 105)可以在从DRAM(诸如DRAM 120)读取顺序数据的其余部分的同时立即在数据上操作。向标量寄存器提供经优先化的组块可能是合期望的,因为标量寄存器可能仅能够一次处理单个数据组块,如与可与配置成与彼此并行地处理顺序数据的组块的一个或多个向量处理单元140a、140b和140c耦合的诸如向量寄存器堆130之类的向量寄存器堆形成对比。在一些实施例中,READ命令可以配置成至少部分地基于READ命令的起始列地址以及是否READ命令包括突发类型是顺序的还是交织的指示来访问来自DRAM 120的经优先化的组块,如以下进一步详细解释的。
在本公开的实施例中,类似的READ命令可以用于访问来自DRAM 120的顺序数据。然而,在本公开的实施例中,READ命令还可以用于确定哪个数据组块被放置在向量寄存器堆的哪个向量寄存器(诸如向量寄存器堆130的向量寄存器135a、135b和135c)中。可能合期望的是,将特定数据组块放置在特定向量寄存器中,使得给定向量处理单元可以处理该数据组块。例如,在一些实施例中,可能合期望的是,向量处理单元140a处理顺序数据的第二组块而同时向量处理单元140b处理顺序数据的第四组块。给定向量处理单元对数据组块的处理可以基于具体算法、过程的要求或某种其它要求。
具体地,在一些实施例中,向量运算符可以被称为SIMD命令。在实施例中,利用具体数据组块填充向量寄存器堆130的向量寄存器135a、135b和135c可以使用一个或多个SIMD命令而完成。具体地,SIMD指令可以用于搅乱顺序数据的32位或64位向量元素,其中诸如向量寄存器堆130或存储器操作数之类的向量寄存器堆作为选择器。
图2描绘了可以用于重排序向量寄存器堆中的顺序数据的组块的表的示例。如以上所指出的,CPU 105可以向存储器控制器110传输READ命令。READ命令可以包括起始列地址。此外或可替换地,READ命令可以包括从DRAM 120检索顺序数据将是顺序的还是交织的指示。在顺序突发模式中,顺序数据的组块可以以增大地址次序被访问,当到达结尾时卷绕回到块的起始。相反,交织突发模式可以使用异或(XOR)运算基于起始地址和计数器值来标识组块。在一些实施例中,交织突发模式可以更简单或者在计算上更高效,因为XOR运算可以比可以用于顺序突发模式的“加法”运算更简单地实现在逻辑门上。
如图2中所示,基于起始列地址和从CPU 105接收的指令中(例如以上讨论的“LOAD”或“MOV”指令中)的突发类型指示,存储器控制器110可以访问顺序数据,重排序顺序数据,且然后将经重排序的数据存储在向量寄存器堆130的向量寄存器135a、135b和135c中。具体地,存储器控制器110的存储器检索电路145可以访问存储在DRAM 120中的顺序数据。对数据的访问可以至少部分地基于DRAM 120中的数据的列和/或行地址的READ命令中的指示。
接着,存储器控制器110,并且具体为存储器控制器110的重排序电路150,可以重排序由存储器检索电路145从DRAM 120检索的顺序数据。具体地,顺序数据的组块可以是根据突发类型的指示和READ命令的起始列地址来重排序的。作为示例,假定顺序数据由被组织成8个每一个8字节且被标记为组块0、1、2、3、4、5、6和7的顺序组块的64字节组成。在该示例中,READ命令可以具有“1、0、0”的起始列地址。如图2所指示,该起始列地址可以指示顺序数据应当被重排序为组块4、5、6、7、0、1、2和3。换言之,“1、0、0”的起始列地址可以指示应当交换顺序数据的第一32字节和顺序数据的第二32字节。在该示例中,突发类型是顺序还是交织的READ命令中的指示可以不影响重排序。
存储器控制器110的存储电路155然后可以根据由READ命令指示的重排序将经重排序的数据存储在向量寄存器堆的向量寄存器135a、135b和135c中。例如,继续以上示例,组块4可以存储在向量寄存器135a中以供向量处理单元140a处理,组块5可以存储在向量寄存器135b中以供向量处理单元140b处理,组块6可以存储在向量寄存器135c中以供向量处理单元140c处理,以此类推。
在其它实施例中,可以添加一个或多个附加的接口和/或逻辑以包括超出图2中所列举的序列的其它数据排列。图3描绘了可指示使用附加接口对数据的重排序的表的示例。具体地,可以向CPU 105添加额外的管脚,使得数据的额外位可以连同READ命令一起被传输至存储器控制器110。如图3的实施例中所示,额外的管脚可以允许经重排序的顺序数据的高达八个附加排列。
图4描绘了可由如上描述的存储器控制器110施行的示例过程。最初,存储器控制器110可以在400处从CPU(诸如CPU 105)接收指令。指令可以是例如以上讨论的READ命令。
接着,存储器控制器110可以在405处从DRAM(诸如DRAM 120)检索顺序数据。具体地,存储器控制器110的存储器检索电路145可以从DRAM 120检索顺序数据。
在从DRAM检索顺序数据之后,存储器控制器110,并且具体为存储器控制器110的重排序电路150,可以在410处根据来自CPU 105的指令重排序顺序数据。例如,存储器控制器110可以根据起始列地址、突发类型的指示或在一个或多个附加接口或逻辑元件(诸如来自CPU 105的管脚)上接收的指示中的一个或多个重排序数据,如以上描述的。
在重排序数据之后,存储器控制器110,并且具体为存储器控制器110的存储电路155,可以在415处根据重排序将顺序数据的第一部分放置在向量寄存器堆的第一非顺序位置中。具体地,存储器控制器110可以将数据组块放置在向量寄存器堆的向量寄存器(诸如向量寄存器堆130的向量寄存器135a)中。数据组块可以是顺序数据的第一组块。接着,存储器控制器110,并且具体为存储器控制器110的存储电路155,可以在420处根据重排序将顺序数据的第二部分放置在向量寄存器堆的第二非顺序位置中。例如,存储器控制器110可以将顺序数据的第二组块放置在向量寄存器堆的向量寄存器(诸如向量寄存器堆130的向量寄存器135c)中。该过程然后可以在425处结束。
将理解的是,以上描述的组块和向量寄存器仅仅是可由存储器控制器用于重排序从DRAM(诸如DRAM 120)检索的顺序数据且将经重排序的数据存储在向量寄存器堆的向量寄存器(诸如向量寄存器堆130的向量寄存器135a、135b和135c)中的过程的示例。“第一和第二”的描述在本文中用于区分顺序数据的两个不同组块,且不应当被解释为将描述限制到顺序数据的仅前两个组块。类似地,如本文关于向量寄存器所使用的“第一和第二”的描述意图是描述性的而非限制性的。
尽管关于数据的64字节给出以上示例,但是数据重排序过程可以被进一步扩展到更大的范围。例如,尽管突发次序被描述为仅包括8个组块,但是在其它实施例中可以使用更多或更少数目的组块。此外,每一个组块可以包括更多或更少字节的数据。在一些实施例中,诸如DRAM 120之类的DRAM可以包括在数千位的量级上的数据,并且顺序数据的组块和/或长度可以被扩充成包括增加的数据量。扩充可根据以上描述的过程重排序的数据的量的一种方式可以是:使用READ命令中的附加列地址,或者使用附加管脚从CPU向存储器控制器传输附加数据,如以上在图3中所描述的。在其它实施例中,数据重排序过程可以被扩展到数据的“步幅”,其中取代于顺序数据包括连续组块{0,1,2,3,4,5,6,7},顺序数据可以包括非连续组块{0,2,4,6,8,10,12,14}或者某个其它的顺序非连续增量。在一些实施例中,改变被发送到存储器控制器或READ命令的列地址的数据的量可能要求DRAM中的附加逻辑以处理附加命令或数据。此外,尽管以上描述的过程关于向量寄存器堆130加以描述,但是在一些实施例中,从DRAM检索顺序数据、重排序数据且然后将数据供给到寄存器的过程可以用于将数据供给到标量寄存器,其中超出仅经优先化的数据组块的数据组块的具体次序是合期望的。
图5图示依照各种实施例的了示例计算设备500,其中可以合并诸如早前描述的CPU 105、存储器控制器110和/或DRAM 120之类的系统。计算设备500可以包括数个组件、一个或多个附加处理器504和至少一个通信芯片506。
在各种实施例中,一个或多个处理器504或CPU 105每一个可以包括一个或多个处理器核。在各种实施例中,该至少一个通信芯片506可以物理和电耦合到该一个或多个处理器504或CPU 105。在另外的实现方式中,通信芯片506可以是该一个或多个处理器504或CPU105的一部分。在各种实施例中,计算设备500可以包括印刷电路板(PCB)502。对于这些实施例,该一个或多个处理器504、CPU 105和通信芯片506可以设置在其上。在可替换实施例中,各种组件可以在不采用PCB 502的情况下耦合。
取决于其应用,计算设备500可以包括可以或可以不物理和电耦合到PCB 502的其它组件。这些其它组件包括但不限于易失性存储器(例如DRAM 120)、诸如ROM 508之类的非易失性存储器、I/O控制器514、数字信号处理器(未示出)、密码处理器(未示出)、图形处理器516、一个或多个天线518、显示器(未示出)、触摸屏显示器520、触摸屏控制器522、电池524、音频编解码器(未示出)、视频编解码器(未示出)、全球定位系统(GPS)设备528、罗盘530、加速度计(未示出)、陀螺仪(未示出)、扬声器532、摄像机534和大容量存储设备(诸如硬盘驱动器、固态驱动器、压缩盘(CD)、数字多功能盘(DVD))(未示出)等等。在各种实施例中,CPU 105可以与其它组件集成在相同管芯上以形成片上系统(SoC),如图1中所示。在实施例中,DRAM 120和/或ROM 508中的一个或全部二者可以是或可以包括交叉点非易失性存储器。
在各种实施例中,计算设备500可以包括驻留持久或非易失性存储器,例如闪速存储器512。在一些实施例中,一个或多个处理器504、CPU 105和/或闪速存储器512可以包括存储编程指令的关联固件(未示出),所述编程指令被配置成响应于一个或多个处理器504、CPU 105或存储器控制器110执行编程指令而使得计算设备500能够实践以上关于图4描述的块的全部或所选方面。在各种实施例中,这些方面可以附加地或可替换地使用与该一个或多个处理器504、CPU 105、存储器控制器110或闪速存储器512分离的硬件而实现。
通信芯片506可以实现用于向计算设备500传送数据和从计算设备500传送数据的有线和/或无线通信。术语“无线”及其派生词可以用于描述可通过使用通过非固体介质进行的调制电磁辐射来传送数据的电路、设备、系统、方法、技术、通信信道等。该术语不暗示关联设备不包含任何导线,尽管在一些实施例中它们可能不包含。通信芯片506可以实现数个无线标准或协议中的任一个,包括但不限于IEEE 802.20、通用分组无线电服务(GPRS)、演进数据优化(Ev-DO)、演进高速分组接入(HSPA+)、演进高速下行链路分组接入(HSDPA+)、演进高速上行链路分组接入(HSUPA+)、全球移动通信系统(GSM)、增强数据速率GSM演进(EDGE)、码分多址(CDMA)、时分多址(TDMA)、数字增强无绳电信(DECT)、蓝牙、其派生物、以及被指明为3G、4G、5G及更高的任何其它无线协议。计算设备500可以包括多个通信芯片506。例如,第一通信芯片506可以专用于诸如Wi-Fi和蓝牙之类的较短距离无线通信,并且第二通信芯片506可以专用于诸如GPS、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO和其它之类的较长距离无线通信。
在各种实现方式中,计算设备500可以是膝上型电脑、上网本、笔记本电脑、超极本、智能电话、计算平板、个人数字助理(PDA)、超移动PC、移动电话、台式计算机、服务器、打印机、扫描仪、监视器、机顶盒、娱乐控制单元(例如游戏控制台)、数字摄像机、便携式音乐播放器或数字视频记录器。在另外的实现方式中,计算设备500可以是处理数据的任何其它电子设备。
在实施例中,本公开的第一示例可以包括一种存储器控制器,包括:检索电路,配置成至少部分地基于来自中央处理单元(CPU)的指令检索包括以第一顺序排序的多个部分的数据;重排序电路,与检索电路耦合且配置成至少部分地基于所接收到的指令重排序数据使得所述多个部分以不同于第一顺序的第二顺序排序;以及存储电路,配置成至少部分地基于所接收到的指令以第二顺序将所述多个部分存储在向量寄存器堆的相应多个位置中。
示例2可以包括示例1的存储器控制器,其中第二顺序至少部分地基于指令的起始列地址。
示例3可以包括示例1的存储器控制器,其中第二顺序至少部分地基于指令中的突发类型的指示。
示例4可以包括示例3的存储器控制器,其中突发类型的指示是突发类型是顺序突发类型还是交织突发类型的指示。
示例5可以包括示例1的存储器控制器,其中第二顺序至少部分地基于CPU的管脚设定。
示例6可以包括示例1-5中任一个的存储器控制器,其中存储器控制器与配置成存储数据的动态随机存取存储器(DRAM)耦合。
示例7可以包括示例1-5中任一个的存储器控制器,其中数据是64字节长。
示例8可以包括示例7的存储器控制器,其中所述多个部分中的每一个部分是8字节长。
示例9可以包括一种方法,包括:通过存储器控制器并且至少部分地基于从中央处理单元(CPU)接收的指令检索顺序数据的第一部分和顺序数据的第二部分,第一部分和第二部分在顺序数据中靠近于彼此;通过存储器控制器将第一部分放置在向量寄存器堆的第一非顺序位置中;以及通过存储器控制器将第二部分放置在向量寄存器堆的第二非顺序位置中。
示例10可以包括示例9的方法,其中存储器控制器还配置成将第一部分放置在向量寄存器堆的第一非顺序位置中以供与存储器控制器耦合的第一向量处理单元处理;并且存储器控制器还配置成将第二部分放置在向量寄存器堆的第二非顺序位置中以供与存储器控制器耦合的第二向量处理单元处理。
示例11可以包括示例9的方法,还包括通过存储器控制器至少部分地基于指令中的起始列地址从向量寄存器堆的多个位置选择向量寄存器堆的第一非顺序位置。
示例12可以包括示例9的方法,还包括通过存储器控制器基于检索是根据顺序突发类型还是交织突发类型来从向量寄存器堆的多个位置选择向量寄存器堆的第一非顺序位置。
示例13可以包括示例9-12中任一个的方法,其中顺序数据存储在动态随机存取存储器(DRAM)中。
示例14可以包括示例9-12中任一个的方法,其中顺序数据的第一部分是8字节的数据。
示例15可以包括示例14的方法,其中顺序数据是64字节的数据。
示例16可以包括一种装置,包括:与存储器控制器耦合且配置成存储顺序数据的动态随机存取存储器(DRAM);与存储器控制器耦合的中央处理单元(CPU),其中CPU配置成向存储器控制器传输指令,并且其中存储器控制器配置成:通过存储器控制器并且至少部分地基于从CPU接收的指令检索顺序数据的第一部分和顺序数据的第二部分,第一部分和第二部分在顺序数据中靠近于彼此;以及将第一部分放置在向量寄存器堆的第一非顺序位置中;以及将第二部分放置在向量寄存器堆的第二非顺序位置中。
示例17可以包括示例16的装置,还包括与存储器控制器耦合的第一处理器和第二处理器;其中第一处理器配置成处理第一非顺序位置中的第一部分;并且其中第二处理器配置成与第一处理器同时处理第二非顺序位置中的第二部分。
示例18可以包括示例16的装置,其中向量寄存器堆的第一非顺序位置是至少部分地基于指令中的起始列地址从向量寄存器堆的多个位置选择的。
示例19可以包括示例16的装置,其中向量寄存器堆的第一非顺序位置由存储器控制器至少部分地基于指令是根据顺序突发类型还是交织突发类型检索第一部分和第二部分而从向量寄存器堆的多个位置选择。
示例20可以包括示例16的装置,其中向量寄存器堆的第一非顺序位置是至少部分地基于CPU的管脚设定从向量寄存器堆的多个位置选择的。
示例21可以包括示例16-20中任一个的装置,其中指令为顺序数据的第一部分,是8字节的数据。
示例22可以包括示例21的装置,其中顺序数据是64字节的数据。
示例23可以包括一个或多个包括指令的计算机可读介质,所述指令配置成在由存储器控制器执行指令时使存储器控制器:至少部分地基于从中央处理单元(CPU)接收的指令检索顺序数据的第一部分和顺序数据的第二部分,第一部分和第二部分在顺序数据中靠近于彼此;将第一部分放置在向量寄存器堆的第一非顺序位置中;以及将第二部分放置在向量寄存器堆的第二非顺序位置中。
示例24可以包括示例23的一个或多个计算机可读介质,其中指令还配置成使存储器控制器:将第一部分放置在向量寄存器堆的第一非顺序位置中以供与存储器控制器耦合的第一向量处理单元处理;以及将第二部分放置在向量寄存器堆的第二非顺序位置中以供与存储器控制器耦合的第二向量处理单元处理。
示例25可以包括示例23的一个或多个计算机可读介质,其中指令还配置成使存储器控制器至少部分地基于指令中的起始列地址从向量寄存器堆的多个位置选择向量寄存器堆的第一非顺序位置。
示例26可以包括示例23的一个或多个计算机可读介质,其中指令还配置成使存储器控制器基于检索是根据顺序突发类型还是交织突发类型来从向量寄存器堆的多个位置选择向量寄存器堆的第一非顺序位置。
示例27可以包括示例23-26中任一个的一个或多个计算机可读介质,其中顺序数据存储在动态随机存取存储器(DRAM)中。
示例28可以包括示例23-26中任一个的一个或多个计算机可读介质,其中顺序数据的第一部分是8字节的数据。
示例29可以包括示例28的一个或多个计算机可读介质,其中顺序数据是64字节的数据。
示例30可以包括一种装置,包括:至少部分地基于从中央处理单元(CPU)接收的指令检索顺序数据的第一部分和顺序数据的第二部分的构件,第一部分和第二部分在顺序数据中靠近于彼此;将第一部分放置在向量寄存器堆的第一非顺序位置中的构件;以及将第二部分放置在向量寄存器堆的第二非顺序位置中的构件。
示例31可以包括示例30的装置,还包括:将第一部分放置在向量寄存器堆的第一非顺序位置中以供第一向量处理单元处理的构件;以及将第二部分放置在向量寄存器堆的第二非顺序位置中以供第二向量处理单元处理的构件。
示例32可以包括示例30的装置,还包括至少部分地基于指令中的起始列地址从向量寄存器堆的多个位置选择向量寄存器堆的第一非顺序位置的构件。
示例33可以包括示例30的装置,还包括基于检索是根据顺序突发类型还是交织突发类型从向量寄存器堆的多个位置选择向量寄存器堆的第一非顺序位置的构件。
示例34可以包括示例30-33中任一个的装置,其中顺序数据存储在动态随机存取存储器(DRAM)中。
示例35可以包括示例30-33中任一个的装置,其中顺序数据的第一部分是8字节的数据。
示例36可以包括示例35的装置,其中顺序数据是64字节的数据。
尽管本文已经出于描述的目的而图示和描述了某些实施例,但是本申请意图覆盖本文所讨论的实施例的任何适配或变型。因此,明确意图是本文所描述的实施例仅由权利要求限制。
在本公开记载“一”或“第一”元件或其等同物的情况下,这样的公开包括一个或多个这样的元件,其既不要求也不排除两个或更多这样的元件。另外,用于所标识的元件的序数指示符(例如第一、第二或第三)用于区分元件,且不指示或暗示这样的元件的所要求或限制的数目,它们也不指示这样的元件的特定位置或次序,除非以其它方式具体陈述。

Claims (27)

1.一种存储器控制器,包括:
检索电路,配置成至少部分地基于来自中央处理单元CPU的指令检索包括以第一顺序排序的多个部分的数据;
重排序电路,与检索电路耦合且配置成至少部分地基于所接收到的指令重排序所述数据使得所述数据的所述多个部分以不同于第一顺序的第二顺序排序;以及
存储电路,配置成至少部分地基于所接收到的指令以第二顺序将所述多个部分存储在向量寄存器堆的相应多个位置中。
2.根据权利要求1的存储器控制器,其中第二顺序至少部分地基于指令的起始列地址。
3.根据权利要求1的存储器控制器,其中第二顺序至少部分地基于指令中的突发类型的指示。
4.根据权利要求3的存储器控制器,其中突发类型的指示是突发类型是顺序突发类型还是交织突发类型的指示。
5.根据权利要求1的存储器控制器,其中第二顺序至少部分地基于CPU的管脚设定。
6.根据权利要求1-5中任一项的存储器控制器,其中存储器控制器与配置成存储数据的动态随机存取存储器(DRAM)耦合。
7.根据权利要求1-5中任一项的存储器控制器,其中所述数据是64字节长。
8.根据权利要求7的存储器控制器,其中所述多个部分中的每一个部分是8字节长。
9.一种由存储器控制器执行的方法,包括:
通过所述存储器控制器并且至少部分地基于从中央处理单元CPU接收的指令检索顺序数据的第一部分和顺序数据的第二部分,第一部分和第二部分在顺序数据中靠近于彼此;
通过存储器控制器将第一部分放置在向量寄存器堆的第一非顺序位置中;以及
通过存储器控制器将第二部分放置在向量寄存器堆的第二非顺序位置中。
10.根据权利要求9的方法,其中存储器控制器还配置成将第一部分放置在向量寄存器堆的第一非顺序位置中以供与存储器控制器耦合的第一向量处理单元处理;并且
存储器控制器还配置成将第二部分放置在向量寄存器堆的第二非顺序位置中以供与存储器控制器耦合的第二向量处理单元处理。
11.根据权利要求9的方法,还包括通过存储器控制器至少部分地基于指令中的起始列地址从向量寄存器堆的多个位置选择向量寄存器堆的第一非顺序位置。
12.根据权利要求9的方法,还包括通过存储器控制器基于检索是根据顺序突发类型还是交织突发类型来从向量寄存器堆的多个位置选择向量寄存器堆的第一非顺序位置。
13.根据权利要求9-12中任一项的方法,其中顺序数据存储在动态随机存取存储器(DRAM)中。
14.根据权利要求9-12中任一项的方法,其中顺序数据的第一部分是8字节的数据;并且
其中顺序数据是64字节的数据。
15.一种计算设备,包括:
与存储器控制器耦合且配置成存储顺序数据的动态随机存取存储器(DRAM);
与存储器控制器耦合的中央处理单元CPU,其中CPU配置成向存储器控制器传输指令,并且其中存储器控制器配置成:
通过存储器控制器并且至少部分地基于从CPU接收的指令检索顺序数据的第一部分和顺序数据的第二部分,第一部分和第二部分在顺序数据中靠近于彼此;
将第一部分放置在向量寄存器堆的第一非顺序位置中;以及
将第二部分放置在向量寄存器堆的第二非顺序位置中。
16.根据权利要求15的计算设备,还包括与存储器控制器耦合的第一处理器和第二处理器;
其中第一处理器配置成处理第一非顺序位置中的第一部分;并且
其中第二处理器配置成与第一处理器同时处理第二非顺序位置中的第二部分。
17.根据权利要求15的计算设备,其中向量寄存器堆的第一非顺序位置是至少部分地基于指令中的起始列地址从向量寄存器堆的多个位置选择的。
18.根据权利要求15的计算设备,其中向量寄存器堆的第一非顺序位置由存储器控制器至少部分地基于指令是根据顺序突发类型还是交织突发类型检索第一部分和第二部分而从向量寄存器堆的多个位置选择。
19.根据权利要求15的计算设备,其中向量寄存器堆的第一非顺序位置是至少部分地基于CPU的管脚设定从向量寄存器堆的多个位置选择的。
20.根据权利要求15-19中任一项的计算设备,其中指令为顺序数据的第一部分,是8字节的数据;并且
其中顺序数据是64字节的数据。
21.一种与存储器控制器一起使用的装置,包括:
用于通过存储器控制器并且至少部分地基于从中央处理单元(CPU)接收的指令检索顺序数据的第一部分和顺序数据的第二部分的部件,第一部分和第二部分在顺序数据中靠近于彼此;
用于通过存储器控制器将第一部分放置在向量寄存器堆的第一非顺序位置中的部件;以及
用于通过存储器控制器将第二部分放置在向量寄存器堆的第二非顺序位置中的部件。
22.根据权利要求21的设备,其中存储器控制器还配置成将第一部分放置在向量寄存器堆的第一非顺序位置中以供与存储器控制器耦合的第一向量处理单元处理;并且
存储器控制器还配置成将第二部分放置在向量寄存器堆的第二非顺序位置中以供与存储器控制器耦合的第二向量处理单元处理。
23.根据权利要求21的设备,还包括用于通过存储器控制器至少部分地基于指令中的起始列地址从向量寄存器堆的多个位置选择向量寄存器堆的第一非顺序位置的部件。
24.根据权利要求21的设备,还包括用于通过存储器控制器基于检索是根据顺序突发类型还是交织突发类型来从向量寄存器堆的多个位置选择向量寄存器堆的第一非顺序位置的部件。
25.根据权利要求21-24中任一项的设备,其中顺序数据存储在动态随机存取存储器(DRAM)中。
26.根据权利要求21-24中任一项的设备,其中顺序数据的第一部分是8字节的数据;并且
其中顺序数据是64字节的数据。
27.一种计算机可读介质,其上存储有指令,在执行所述指令时使得计算机执行根据权利要求9-14中任一项所述的方法。
CN201380081205.0A 2013-12-26 2013-12-26 存储器控制器和由存储器控制器执行的方法 Active CN105940381B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/077878 WO2015099746A1 (en) 2013-12-26 2013-12-26 Data reorder during memory access

Publications (2)

Publication Number Publication Date
CN105940381A CN105940381A (zh) 2016-09-14
CN105940381B true CN105940381B (zh) 2019-11-15

Family

ID=53479408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380081205.0A Active CN105940381B (zh) 2013-12-26 2013-12-26 存储器控制器和由存储器控制器执行的方法

Country Status (6)

Country Link
US (1) US20160306566A1 (zh)
EP (1) EP3087489A4 (zh)
JP (1) JP6388654B2 (zh)
KR (1) KR101937544B1 (zh)
CN (1) CN105940381B (zh)
WO (1) WO2015099746A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183568B (zh) * 2015-08-19 2018-08-07 山东超越数控电子有限公司 一种存储双控制器间scsi命令同步方法
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10776118B2 (en) * 2016-09-09 2020-09-15 International Business Machines Corporation Index based memory access using single instruction multiple data unit
US10585624B2 (en) 2016-12-01 2020-03-10 Micron Technology, Inc. Memory protocol
US20180217838A1 (en) * 2017-02-01 2018-08-02 Futurewei Technologies, Inc. Ultra lean vector processor
US10380034B2 (en) * 2017-07-14 2019-08-13 International Business Machines Corporation Cache return order optimization
US11099779B2 (en) 2018-09-24 2021-08-24 Micron Technology, Inc. Addressing in memory with a read identification (RID) number
US11226816B2 (en) * 2020-02-12 2022-01-18 Samsung Electronics Co., Ltd. Systems and methods for data placement for in-memory-compute
US10942878B1 (en) * 2020-03-26 2021-03-09 Arm Limited Chunking for burst read transactions
WO2021207919A1 (zh) * 2020-04-14 2021-10-21 深圳市大疆创新科技有限公司 控制器、存储器件访问系统、电子设备和数据传输方法
CN112799599B (zh) * 2021-02-08 2022-07-15 清华大学 一种数据存储方法、计算核、芯片和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825479A (zh) * 2005-01-18 2006-08-30 因芬尼昂技术股份公司 改进的双数据速率ⅱ型动态随机存取存储器数据通路
CN101176076A (zh) * 2005-05-13 2008-05-07 英特尔公司 用于直接高速缓存访问的直接存储器存取重新排序
US8250322B2 (en) * 2008-12-12 2012-08-21 Sunplus Technology Co., Ltd. Command reordering based on command priority
CN103092785A (zh) * 2013-02-08 2013-05-08 豪威科技(上海)有限公司 Ddr2 sdram控制器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3594260B2 (ja) * 1995-05-11 2004-11-24 富士通株式会社 ベクトルデータ処理装置
US6163839A (en) * 1998-09-30 2000-12-19 Intel Corporation Non-stalling circular counterflow pipeline processor with reorder buffer
US6487640B1 (en) * 1999-01-19 2002-11-26 International Business Machines Corporation Memory access request reordering to reduce memory access latency
US20110087859A1 (en) * 2002-02-04 2011-04-14 Mimar Tibet System cycle loading and storing of misaligned vector elements in a simd processor
GB2399900B (en) * 2003-03-27 2005-10-05 Micron Technology Inc Data reording processor and method for use in an active memory device
US8200945B2 (en) * 2003-11-07 2012-06-12 International Business Machines Corporation Vector unit in a processor enabled to replicate data on a first portion of a data bus to primary and secondary registers
US20070226469A1 (en) * 2006-03-06 2007-09-27 James Wilson Permutable address processor and method
US7450588B2 (en) * 2006-08-24 2008-11-11 Intel Corporation Storage network out of order packet reordering mechanism
JP2009223758A (ja) * 2008-03-18 2009-10-01 Ricoh Co Ltd 画像処理装置
GB2470780B (en) * 2009-06-05 2014-03-26 Advanced Risc Mach Ltd A data processing apparatus and method for performing a predetermined rearrangement operation
US8688957B2 (en) * 2010-12-21 2014-04-01 Intel Corporation Mechanism for conflict detection using SIMD
JP5658556B2 (ja) * 2010-12-24 2015-01-28 富士通株式会社 メモリ制御装置、及びメモリ制御方法
US20130339649A1 (en) * 2012-06-15 2013-12-19 Intel Corporation Single instruction multiple data (simd) reconfigurable vector register file and permutation unit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825479A (zh) * 2005-01-18 2006-08-30 因芬尼昂技术股份公司 改进的双数据速率ⅱ型动态随机存取存储器数据通路
CN101176076A (zh) * 2005-05-13 2008-05-07 英特尔公司 用于直接高速缓存访问的直接存储器存取重新排序
US8250322B2 (en) * 2008-12-12 2012-08-21 Sunplus Technology Co., Ltd. Command reordering based on command priority
CN103092785A (zh) * 2013-02-08 2013-05-08 豪威科技(上海)有限公司 Ddr2 sdram控制器

Also Published As

Publication number Publication date
EP3087489A4 (en) 2017-09-20
KR20160075728A (ko) 2016-06-29
EP3087489A1 (en) 2016-11-02
JP2016538636A (ja) 2016-12-08
US20160306566A1 (en) 2016-10-20
JP6388654B2 (ja) 2018-09-12
WO2015099746A1 (en) 2015-07-02
KR101937544B1 (ko) 2019-01-10
CN105940381A (zh) 2016-09-14

Similar Documents

Publication Publication Date Title
CN105940381B (zh) 存储器控制器和由存储器控制器执行的方法
US11016811B2 (en) Apparatuses and methods to determine timing of operations
US20230410863A1 (en) Memory device and memory system
CN103677665B (zh) 嵌入式多媒体卡、控制其的主机及操作其系统的方法
CN105702277B (zh) 存储器系统和存储器控制器
US9978430B2 (en) Memory devices providing a refresh request and memory controllers responsive to a refresh request
CN102640226B (zh) 具有内部处理器的存储器及控制存储器存取的方法
US20180005670A1 (en) Hybrid lpddr4-dram with cached nvm and flash-nand in multi-chip packages for mobile devices
US20230236836A1 (en) Memory device for processing operation, data processing system including the same, and method of operating the memory device
EP2530593B1 (en) Nonvolatile memory, memory controller, nonvolatile memory accessing method, and program
US8873329B1 (en) Patterned memory page activation
CN105474323B (zh) 刷新存储器单元的电压值的存储器控制器和方法
CN108701081A (zh) 用于同时存取非易失性存储器的多个分区的设备和方法
CN106776358A (zh) Dimm ssd寻址性能技术
US9641464B2 (en) FIFO buffer system providing same clock cycle response to pop commands
CN110059032A (zh) 存储器接口及具有存储器接口的存储器控制器
TW202044043A (zh) 記憶體裝置、資料處理系統以及操作記憶體裝置的方法
CN104391799B (zh) 内存装置中的内存访问控制
CN109891397A (zh) 用于固态装置中的操作系统高速缓冲存储器的设备及方法
JP2021517692A (ja) キャッシュ及び複数の独立したアレイを有するメモリのためのインタフェース
CN108351836A (zh) 具有选择性储存的多级非易失性缓存
CN108139989A (zh) 配备有存储器中的处理和窄访问端口的计算机设备
CN104903878B (zh) 具有嵌入式大容量存储装置的移动装置中的数据存储
CN111694513A (zh) 包括循环指令存储器队列的存储器器件和方法
WO2013184855A1 (en) Memory with bank-conflict-resolution (bcr) module including cache

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