CN103246625B - 一种数据与地址共用引脚自适应调整访存粒度的方法 - Google Patents
一种数据与地址共用引脚自适应调整访存粒度的方法 Download PDFInfo
- Publication number
- CN103246625B CN103246625B CN201310197024.6A CN201310197024A CN103246625B CN 103246625 B CN103246625 B CN 103246625B CN 201310197024 A CN201310197024 A CN 201310197024A CN 103246625 B CN103246625 B CN 103246625B
- Authority
- CN
- China
- Prior art keywords
- address
- data
- pin
- processor
- access
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
Abstract
本发明提供了一种多核处理器中数据与地址共用引脚自适应调整访存粒度的方法。包括:采用数据与地址共用处理器芯片引脚的方式;处理器根据并行线程发出的访存指令调节程序运行期间数据信息传输与地址信息传输的比例,使得运行时程序发出粗粒度访存为主的情形下自动减少地址信息传输,在细粒度访存为主的情形下自动增加地址信息,达到自适应动态调节的作用。本发明所述的方法,能够根据程序行为自适应改变处理器芯片引脚功能的访存,可以简化编程,提高访存带宽利用率,解决了任务处理类程序访存发散,访存带宽利用率低的问题,具有良好的应用前景。
Description
技术领域
本发明面向多用途高性能服务器,涉及多核/众核处理器内部存储控制器(简称存控)结构、存储控制器通过处理器芯片引脚与存储器颗粒相连电路,以及存储器颗粒之间连接电路的设计,属于计算机体系结构领域。
背景技术
当前处理器核数不断增加,为了充分发挥处理器计算性能,必须有效利用存储器访问(简称访存)带宽。以P表示所有数据与地址引脚(简称引脚)的总带宽(GB/s),以D表示数据总线带宽(GB/s),A表示地址总线带宽(GB/s),则有P=D+A。在引脚数与时钟频率一定(因此P是常数)的情况下,现有体系结构设计采用了固定的D与A,分为两大类:
第一类,数据引脚与地址引脚分开。存储控制器的个数决定了D/A比例。如果只有一个存控,大多数引脚作数据总线,D约等于P。但由于地址信息流少,每个从首地址读写的数据位数(访存粒度)很宽,例如256数据引脚访问DDR3型存储器(共连续地址多发次数,突发长度为8)的访存粒度为256字节。短于256字节的访存指令无法有效利用访存带宽。大部分云计算或其他事务处理类应用访存粒度只有4~8字节(整型、单精浮点4字节,长整型或+双精浮点8字节)。以8字节访存为例,单存控256位数据总线的实际带宽利用率只有8/256约0.03P。
增加存控个数虽然可以降低访存粒度,但同时也增加了地址引脚数目进而减少数据带宽。如果存控数目多到使得访存粒度达到8字节(64位),GB级的寻址常需要接近32位地址信息,D的理论极限是0.67P。实际上由于典型存储器(如DDR3)时序地址总线信息占用率不满(数据总线为倍率),实际实施可行的带宽D在0.5P以下。这意味着如果固定D/A比例,则满足事务处理计算任务的需要必将大幅降低科学计算应用的数据带宽。大多数科学计算任务在众核高性能处理器芯片上运行的性能瓶颈是访存带宽,带宽减半意味着性能减半。
第二类,数据与地址分时复用处理器芯片引脚。这类设计常见于嵌入式系统低端处理器,主要解决的问题是处理器封装简单,引脚数量接近寻址所需的引脚数,因此需要从引脚分时发出地址信息和读写数据。由于应用目的仅仅在于节约引脚数,因此D与A设计上是固定的,其缺点与第一类设计本质上是一样的,不能同时适应两类应用的性能需要。
在访存粒度固定的情况下,其他一些现有技术在不改变D/A比例前提下挖掘数据局部性,可以适当提高带宽利用率,但效果有限。缓存技术(Cache)在核数多的情况下不具有可扩展性:核数越多,每个核平均缓存越少,命中率越低;一个核获得的缓存行(CacheLine,典型为128字节,连续编址)存在于缓存短暂瞬间恰好被另一处理器核访问的几率很小;因此核数越多,缓存效果越差。GPGPU(通用图形处理器)技术每32个线程组成一个Warp单位,执行SIMD(单指令多数据流)的向量指令,使得同一访存数据段可以被向量指令中的不同线程交错访问其不同位置的数据元素,不需要显式地在源程序中不同线程间交换数据,简化了编程。但是这一技术仍然假设相当宽的同一连续数据段的数据(GPGPU典型为32字节)能够被有效利用,而很多任务处理程序没有大于8字节的数据局部性,访存地址十分发散,带宽利用率会很低。例如,尽管GPGPU往往对科学计算类任务能实现十几到几十倍的加速,但用于图(如最短路径)计算时,相对于同一代CPU加速度很少超过二倍。总之,如果处理器与存储器接口设计上D/A很高,采用处理器内部通讯机制在处理器核之间交换数据,可以适当提高利用率,简化编程,但无法解决任务处理类程序访存发散,访存带宽利用率低的问题。
目前,尚未发现有专利或者文献讨论共用地址与数据引脚,并根据程序行为自适应改变引脚功能的访存方法。
发明内容
本发明所使用的一些术语定义如下:
处理器核心:多核/众核处理器中具有独立指令流水线的最小指令处理硬件单元。
存储器颗粒:片外存储器颗粒,由若干个二维存储器阵列(Bank)和对应的控制逻辑部件(行选择器、列选择器等)构成。多个Bank共享一组数据引脚。
存储控制器(简称存控):存储控制器是用来管理流入及流出主存的数据流的电路,用以解析处理器发出的存储器访问地址等信息,同时对多个指令流水线发出的访存指令进行缓存和调度,并向片外存储器发送读写指令。
存储器访问(简称访存):处理器内部存储控制器向存储器发出读写访问指令。
本发明的目的是提出一种多核处理器数据与地址共用引脚自适应调整访存粒度的方法,使得应用程序能实现访存带宽的高利用率。
本发明提供的技术方案如下:
一种数据与地址共用引脚自适应调整访存粒度的方法,应用于多核/众核处理器,其特征是,采用数据与地址共用处理器芯片引脚的方式;处理器根据并行线程发出的访存指令调节程序运行期间数据信息传输与地址信息传输的比例,使得运行时程序发出粗粒度访存为主的情形下自动减少地址信息传输,在细粒度访存为主的情形下自动增加地址信息,达到自适应动态调节的作用。
其中,所述粗粒度访存指的是访存宽度大于等于32字节;所述细粒度访存指的是访存宽度小于等于8字节。
所述的数据与地址共用引脚自适应调整访存粒度的方法,在处理器芯片数据与地址引脚数及时钟频率一定的条件下,根据应用程序的动态行为特征自适应地动态确定各引脚在每一时钟周期读写数据还是发出地址信息,使粗粒度访存(即宽连续地址访问)的科学计算类应用程序,与细粒度访存的云计算或其他事务处理类应用程序都能实现访存带宽的高利用率。
所述的数据与地址共用引脚自适应调整访存粒度的方法,把处理器数据与地址引脚分成若干组,每组引脚在某一时钟周期既可以用于读写数据,也可以用于发出地址信息;处理器内部存储控制器将不同处理器核发出的访存指令针对不同引脚组建立队列,将多个访存指令拼成一个完整的组合访存指令;由于多个访存指令很可能涉及存储器不同的位置,需要从这些共用的引脚提前发出多个地址,在访存时序中插入地址周期;每个时钟周期处理器控制确定是存储器颗粒的数据总线还是地址总线与处理器的共用引脚相连,实现数据或地址信息间的切换;返回数据由存储控制器正确分离,分别传送给原来发出访存指令的处理器核。
所述的数据与地址共用引脚自适应调整访存粒度的方法,如果应用程序下处理器核发出大部分访存指令足够宽,不需要互相拼接,则共用的引脚很少发出地址周期,带宽利用率等同于粗粒度单存储控制器的情形;如果应用程序下处理器核发出大量发散的短小访存指令,则在时序中插入较多的地址周期,带宽利用率等同于细粒度多存储控制器的情形,由此实现自适应动态调整“数据传输速率/地址传输速率”比例的目的。
所述的数据与地址共用引脚自适应调整访存粒度的方法,执行访存指令的完整步骤如下:
1)处理器内部存储控制器将不同处理器核发出的访存指令针对不同共用引脚组建立队列,并将多个访存指令拼成一个组合访存指令;包括:
a)建立队列;
b)将队列中多个访存指令拼接成一个组合访存指令;
2)由于多个访存指令很可能涉及存储器不同的位置,需要从这些共用的引脚提前发出多个地址,并发出相应控制信号,在访存时序中插入地址周期;
3)存储器颗粒在每个时钟周期由处理器控制确定数据总线还是地址总线与处理器的共用引脚相连,实现数据或地址信息间的切换;
4)返回数据应当由存储控制器正确分离,分别传送给原来发出访存指令的那些处理器核。
本发明的有益效果:本发明所述的方法,能够根据程序行为自适应改变处理器芯片引脚功能的访存,可以简化编程,提高访存带宽利用率,解决了任务处理类程序访存发散,访存带宽利用率低的问题,具有良好的应用前景。
附图说明
图1是有锁存器方案时序图。其中(a)现有系统连续读指令周期时序;(b)有锁存器方案连续细粒度读指令周期。
图2是有锁存器方案的外围多选器电路。
图3是相邻插入地址周期与系统时钟周期对应关系图。
图4是无锁存器方案时序图。其中(a)现有系统连续读指令周期时序;(b)无锁存器连续细粒度读指令周期。
图5是无锁存器方案的外围多选器电路。
图6是中等粒度访存指令拼接示意图。
图7是实施方案三中存储管理器的外围电路。
具体实施方式
本发明首先给出一个当前技术条件下典型的、具有不同特点的三种实施方案。需要注意的是,本发明不应局限于实施例所公开的内容,要求保护的范围应以权利要求书界定的范围为准。
实施方案一:
本实施方案不改变当前DDR3存储器颗粒内部结构与时序逻辑,通过改进处理器存控使得每一个周期访存在粗粒度单发射(单地址)与8字节细粒度多发射(需多地址)两种模式间根据处理器内部队列中访存指令粒度动态自动切换。
1.处理器内部存控将引脚每8个组成一组,每组对应一个外部存储器颗粒。由于DDR3的突发长度为8(BurstLength=8),存控可以控制的最小访存粒度为8字节。
a)粗粒度访存指令队列
存控为粗粒度访存指令(例如大于或等于32字节宽)建立独立的队列,其地址从类似现有处理器的统一的专门地址引脚发出,由各个存储器颗粒地址总线共用。
b)细粒度访存指令队列
存控为每一引脚组建立一个单独队列。存控每次从所有队列头取出多个细粒度访存指令拼接成一个组合访存指令。本方案不专门设计大于8字节而小于32字节的中等粒度访存的拼接,而是要求将这样的访存分解为多个8字节细粒度访存。
c)访存指令
存控交替从粗粒度与细粒度访存指令队列中提取访存指令发往存储器颗粒。
2.由于共用总线在任意时刻只能传输数据或地址,在需要发射多个访存指令,数据连续传输时,存控需要发出相应控制信号,在访存时序中插入地址周期。
操作时序图如图1所示。图1(a)表示现有DDR3存储器颗粒多个连续读周期的时序。其中ABUS指现有存储器系统中的地址总线(在现有系统中等同于存储器颗粒的地址总线),DBUS指现有存储器系统中的数据总线,CL表示列选信号到数据传输的延迟周期数;图1(b)表示本发明设计的多个连续组合细粒度读周期的时序。其中mABUS指存储器颗粒端的地址总线,DABUS指数据与地址共用总线)。共用总线在数据周期组之间插入地址周期并记录于锁存器,并在下两个周期传输给存储器颗粒的地址总线。
在图1(b)中,第(i+1)个访存的行选信号与第(i-1)个访存的列选信号被设置在时序的相邻位置,由锁存器加以记录,并在约两个周期延迟后由锁存器发送至存储器颗粒地址端。
DDR3访存读写之间的切换涉及上下跳沿在存储器与存控之间传输的延迟,存在少量超前与滞后时序,因此被插入的2个地址信息时钟周期中锁存器输入时序应当与数据总线当前跳沿时序对齐,而锁存器输出到存储器颗粒的时序应当与存储器颗粒所要求的地址时序一致。
3.每个时钟周期由存控确定存储器颗粒的数据总线还是地址总线与处理器的共用引脚相连,实现数据或地址信息间的切换。
由于本发明中处理器数据与地址共用引脚,而现有系统设计中存储器颗粒的数据与地址总线是分离的,因此本实施方案设计在存储器颗粒与处理器之间增加了锁存与多选电路。本方案保留现有处理器设计中的地址总线,在粗粒度访存时直接将统一地址信息发往多个存储器颗粒的地址总线;对于细粒度拼接的组合访存指令,则需要从各组共用引脚发出多个地址信息,并通过锁存器记录,分别发送到不同存储器颗粒的地址总线。不同总线之间需要控制信号切换多选电路才能正常连接。
具体的,分别将每个存储器颗粒与存控相连的数据总线接入数据多选器的输入端Din,数据多选器的输出端Dout_b直接与存储器颗粒的数据引脚接通,而输出端Dout_a接入锁存器;锁存器的输出端接入地址多选器的输入端Din_b,其另一个输入端Din_a直接与存控的地址引脚接通,地址多选器的输出Dout直接与存储器颗粒的地址引脚接通;增加选通信号D_SEL控制数据多选器选通,A_SEL控制地址多选器选通(如图2)。
在地址周期,若该存储器芯片需要接受来自统一地址总线的粗粒度访存请求,则D_SEL控制数据多选器选通Dout_b,A_SEL控制地址多选器选通Din_a,此时,存储器颗粒接受来自存控的统一地址总线;对于组合的细粒度访存,D_SEL控制数据多选器选通Dout_a,A_SEL控制地址多选器选通Din_b,在一个地址周期内,锁存器可以先后从两个相邻周期的上升与下降共4个跳沿接收到32位地址信息,其中19位为第i+1个行选地址,10位为第i-1个列选地址。锁存器在延迟约2时钟周期之后按照存储器颗粒地址时序发出。
本方案假设存储器颗粒不变,但所有外围电路也可以集成到存储器颗粒内部。
4.返回数据由存储控制器正确分离,分别传送给原来发出访存指令的那些处理器核。当前发出的访存指令仍然以等待状态记录在存控中。对于组合的细粒度访存指令,存控收到返回数据之后需要将数据拆分为多个所需片段,根据存控中记录的信息,分别发往所需处理器核的相应寄存器。因此每个访存应当包含地址、读或写操作,以及发出访存的处理器核编号、返回寄存器数据位置的信息。
现有系统存控个数与每个存控所管理的数据总线宽度(访存粒度)都是固定的。总引脚个数一定的条件下,存控个数越多,访存粒度越细。如果存储器颗粒没有额外ECC校验功能,则面向细粒度的存控设计需要完全冗余的校验。本发明ECC校验方面的特性与面向细粒度访存的多存控的校验问题等同。
如果大部分访存为粗粒度,则本方案与现有众核处理器相同,通过独立的地址总线发送访存指令地址,其时序图等同于图1(a)所示的现有系统时序,数据吞吐率可以接近P;如果大部分访存为细粒度访存,且处理器核数足够多访存足够随机发散,那么在本方案中访存指令执行的时序图如图1(b)所示,每个突发传输之前需要插入2个时钟周期的地址信息,数据吞吐率接近0.67P。
实施方案二:
实施方案一需要在处理器与存储器颗粒外围增加锁存器,而实施方案二保留了方案一的步骤1与步骤4,对实施步骤2与步骤3进行改进,目的是省略锁存器、简化外围电路,改进的步骤如下:
2.无锁存器的数据与地址共用时序
由于本方案不使用锁存器,处理器和存储器的外围电路没有记录功能,因此从共用引脚发出的地址信息必须严格符合存储器颗粒的地址时序。存储器颗粒至少需要16根地址总线作行选与列选(如需更多的地址总线还可以使用原有地址总线)。本方案需要将处理器16根引脚组成一个引脚组,连到2个存储器颗粒,分别称成为“上存储器”与“下存储器”。
为了充分利用总线带宽,所有上存储器颗粒工作在系统时钟CK与数据选通DQS时序,地址信号在CK上跳沿采样;而所有下存储器颗粒工作在反时钟CK#与反数据选通DQS#时序,地址信号在CK下跳沿采样。图3显示了相邻的2个地址周期中,
2个上跳沿分别为上存储器颗粒的第i+1个行选(Ri+1)与第i-1(Ci-1)个列选,2个下跳沿分别为下存储器颗粒的相应行选(R’i+1)与列选(C’i-1)。地址时序超前读周期时序而在写周期与共用总线时序对齐。
由于DDR3写周期时序稍领先读周期时序(见图4),因此从读周期到写周期转换时需要多插入一个空闲周期。这一特性决定了插入的地址周期(写周期时序)也需要增加一个空闲周期,不论当前数据是读写,增加的空闲周期保持上存储器颗粒与下存储器颗粒大致同步,而地址信息严格按照存储器颗粒的地址时序发出。DDR3要求列选与相应数据传输的最小距离(CL)是5个周期,但在方案二的细粒度访存模式下,此距离需要通过设置存储器颗粒内的寄存器增加3个地址周期,拉长至8周期。
3.无锁存器的外围多选器电路
如图5,每16根共用引脚DABUS组成一组,通过多选器连到2个存储器颗粒的数据总线(每个存储器颗粒8根数据引脚)以及地址多选器。地址周期中该多选器连通DABUS与地址多选器,而在正常数据读写周期中连通DABUS到存储器颗粒的数据总线。地址多选器连接处理器共用地址总线ABUS、数据多选器以及存储器颗粒的地址总线。
由于行选信号需要19根地址总线,而每个共用引脚组只有16根,本方案设计原有地址总线(粗粒度访存时走共用地址而细粒度访存时空闲)为每组引脚组分出3根,共同组成宽19的行地址(而无需锁存)。
如果大部分访存为粗粒度,则本方案与现有处理器相同,通过统一的地址总线发送访存指令地址,数据吞吐率可以接近P;如果大部分访存为细粒度访存,且处理器核数足够多访存足够随机发散,相邻突发数据传输之间需要插入3个地址周期,数据吞吐率接近0.57P。
实施方案三:
实施方案一与实施方案二的设计重点支持粗粒度与细粒度这两种极端模式的访存。中等粒度(比如大于8字节小于32字节)访存指令被分解为多个细粒度访存指令。这两种方案设计优点是逻辑简单,缺点是需要占用总带宽发出冗余的相同地址信息。
实施方案三在处理器与存储器外围增加一个存储管理器,功能是建立队列,记录从处理器不同引脚组发出的访存指令,并负责按正确时序向不同存储器颗粒分别发出地址。处理器在地址周期从所有共用引脚发出包含地址信息的访存请求。本方案不再需要统一的地址总线,所有地址信息一律从数据与地址共用的引脚发出。
1.处理器内部存控设计
a)访存指令队列:
访存指令队列统一组织各种不同宽度的访存指令。每个存储器颗粒对应一个队列。
访存指令被分别记录在所有涉及到的存储器颗粒的队列中。
b)拼接方法:
拼接方法可以采取贪心法——从各个队列首部找到第一个涉及该存储器颗粒的访存,将所有这样的访存指令拼接成一个组合访存指令。如果两个访存指令有重叠,则截断后面的访存,将其重叠部分留在队列中,如图6所示,同一种线型的线条代表一个组合访存指令(共3条)。这样该组合访存指令只需要发出一组包含地址信息的访存请求,其中地址信息个数与包含的访存个数相同。
c)访存请求定义:
一个访存请求应当包含地址信息、访存宽度以及标识读写的信息。
2.时序
由于新增的存储管理器具有缓存功能,能够记录下较多组的访存请求,因此本方案采取集中发出多个地址周期的方法将一批访存请求从处理器经共用引脚发往存储管理器。这样地址周期就不再穿插于正常数据传输,而是等待一批数据传出结束以后再集中进行。
3.存储管理器的外围电路
如图7,所有的64根DABUS通过数据多选器选择与存储器颗粒的数据引脚连通还是与存储管理器的输入引脚连通,存储管理器的输出引脚分别与每个存储器颗粒的地址总线相连。在地址周期,选择信号D_SEL将DABUS与存储管理器的输入引脚接通,处理器向存储管理器发送一批组合访存请求缓存于存储管理器。在访存请求发送完毕后,存储管理器严格按照存储器颗粒的地址时序将每个访存请求的地址发送至相应的存储器颗粒。对于中等粒度的访存请求,存储管理器向每个需要响应的存储器颗粒都发出相同的地址。
4.返回数据由存储控制器正确分离并返回。
对于完整的访存请求,存储控制器将返回的数据发送给发出请求的处理器核;对于被截断的访存请求,存储控制器将已执行部分返回的数据进行缓存,等待剩余的部分全部执行完成并返回数据后,由存储控制器将其拼接成完整的返回数据,再发送给发起该访存请求的处理器核。
5.本方案也可以根据需要设计混合周期:
实施方案三的基本实现方式是在多个数据传输周期后插入多个地址传输周期。作为本方案的变种,也可以根据需要设计混合周期,即在某些周期中一部分存储器颗粒对应的共用引脚组进行数据传输而其余的共用引脚组传输地址信息。
实施方案三不论在粗粒度还是细粒度访存模式下,带宽利用率都不会低于实施方案一和实施方案二,但对于中等粒度访存模式,由于减少了处理器发出的地址信息,其数据带宽利用率会略高于前两种实施方案。
Claims (7)
1.一种数据与地址共用引脚自适应调整访存粒度的方法,应用于多核/众核处理器,其特征是,采用数据与地址共用处理器芯片引脚的方式;处理器根据并行线程发出的访存指令调节程序运行期间数据信息传输与地址信息传输的比例,使得运行时程序发出粗粒度访存为主的情形下自动减少地址信息传输,在细粒度访存为主的情形下自动增加地址信息,达到自适应动态调节的作用,所述粗粒度访存指的是访存宽度大于等于32字节;所述细粒度访存指的是访存宽度小于等于8字节,在处理器芯片数据与地址引脚数及时钟频率一定的条件下,根据应用程序的动态行为特征自适应地动态确定各引脚在每一时钟周期读写数据还是发出地址信息,把处理器数据与地址引脚分成若干组,每组引脚在某一时钟周期既可以用于读写数据,也可以用于发出地址信息;处理器内部存储控制器将不同处理器核发出的访存指令针对不同引脚组建立队列,将多个访存指令拼成一个完整的组合访存指令;由于多个访存指令很可能涉及存储器不同的位置,需要从这些共用的引脚提前发出多个地址,在访存时序中插入地址周期;每个时钟周期处理器控制确定是存储器颗粒的数据总线还是地址总线与处理器的共用引脚相连,实现数据或地址信息间的切换;返回数据由存储控制器正确分离,分别传送给原来发出访存指令的处理器核。
2.如权利要求1所述的数据与地址共用引脚自适应调整访存粒度的方法,其特征是,如果应用程序下处理器核发出大部分访存指令足够宽,不需要互相拼接,则共用的引脚很少发出地址周期,带宽利用率等同于粗粒度单存储控制器的情形;如果应用程序下处理器核发出大量发散的短小访存指令,则在时序中插入较多的地址周期,带宽利用率等同于细粒度多存储控制器的情形,由此实现自适应动态调整“数据传输速率/地址传输速率”比例的目的。
3.如权利要求1所述的数据与地址共用引脚自适应调整访存粒度的方法,其特征是,执行访存指令的完整步骤如下:
1)处理器内部存储控制器将不同处理器核发出的访存指令针对不同共用引脚组建立队列,并将多个访存指令拼成一个组合访存指令;
2)由于多个访存指令很可能涉及存储器不同的位置,需要从这些共用的引脚提前发出多个地址,并发出相应控制信号,在访存时序中插入地址周期;
3)存储器颗粒在每个时钟周期由处理器控制确定数据总线还是地址总线与处理器的共用引脚相连,实现数据或地址信息间的切换;
4)返回数据应当由存储控制器正确分离,分别传送给原来发出访存指令的那些处理器核。
4.如权利要求1所述的数据与地址共用引脚自适应调整访存粒度的方法,其特征是,实施方案如下:
(1)处理器内部存控将引脚每8个组成一组,每组对应一个外部DDR3存储器颗粒;
(2)由于共用总线在任意时刻只能传输数据或地址,在需要发射多个访存指令,数据连续传输时,存控需要发出相应控制信号,在访存时序中插入地址周期;
(3)每个时钟周期由存控确定存储器颗粒的数据总线还是地址总线与处理器的共用引脚相连,实现数据或地址信息间的切换;
(4)返回数据由存储控制器正确分离,分别传送给原来发出访存指令的那些处理器核;
所述实施方案在存储器颗粒与处理器之间增加了锁存与多选电路,保留现有处理器设计中的地址总线,在粗粒度访存时直接将统一地址信息发往多个存储器颗粒的地址总线;对于细粒度拼接的组合访存指令,则需要从各组共用引脚发出多个地址信息,并通过锁存器记录,分别发送到不同存储器颗粒的地址总线;不同总线之间通过控制信号切换多选电路进行连接。
5.如权利要求1所述的数据与地址共用引脚自适应调整访存粒度的方法,其特征是,不使用锁存器的实施方案如下:
(1)处理器内部存控将引脚每8个组成一组,每组对应一个外部DDR3存储器颗粒;
(2)无锁存器的数据与地址共用时序:
从共用引脚发出的地址信息必须严格符合存储器颗粒的地址时序;存储器颗粒至少需要16根地址总线作行选与列选,需要将处理器16根引脚组成一个引脚组,连到2个存储器颗粒,分别称成为“上存储器”与“下存储器”;为了充分利用总线带宽,所有上存储器颗粒工作在系统时钟CK与数据选通DQS时序,地址信号在CK上跳沿采样;而所有下存储器颗粒工作在反时钟CK#与反数据选通DQS#时序,地址信号在CK下跳沿采样;地址时序超前读周期时序而在写周期与共用总线时序对齐;
(3)无锁存器的外围多选器电路:
每16根共用引脚DABUS组成一组,通过多选器连到2个存储器颗粒的数据总线以及地址多选器;地址周期中该多选器连通DABUS与地址多选器,而在正常数据读写周期中连通DABUS到存储器颗粒的数据总线;地址多选器连接处理器共用地址总线ABUS、数据多选器以及存储器颗粒的地址总线;由于行选信号需要19根地址总线,而每个共用引脚组只有16根,本方案设计原有地址总线为每组引脚组分出3根,共同组成宽19的行地址,而无需锁存;
(4)返回数据由存储控制器正确分离,分别传送给原来发出访存指令的那些处理器核。
6.如权利要求1所述的数据与地址共用引脚自适应调整访存粒度的方法,其特征是,在处理器与存储器外围增加一个存储管理器,其功能是建立队列,记录从处理器不同引脚组发出的访存指令,并负责按正确时序向不同存储器颗粒分别发出地址;处理器在地址周期从所有共用引脚发出包含地址信息的访存请求;不再需要统一的地址总线,所有地址信息一律从数据与地址共用的引脚发出。
7.如权利要求6所述的数据与地址共用引脚自适应调整访存粒度的方法,其特征是,实施方案如下:
(1)处理器内部存控设计:
a)访存指令队列:访存指令队列统一组织各种不同宽度的访存指令;每个存储器颗粒对应一个队列;访存指令被分别记录在所有涉及到的存储器颗粒的队列中;
b)拼接方法:拼接方法采取贪心法,从各个队列首部找到第一个涉及该存储器颗粒的访存,将所有这样的访存指令拼接成一个组合访存指令;如果两个访存指令有重叠,则截断后面的访存,将其重叠部分留在队列中,这样该组合访存指令只需要发出一组包含地址信息的访存请求,其中地址信息个数与包含的访存个数相同;
c)访存请求定义:一个访存请求应当包含地址信息、访存宽度以及标识读写的信息;
(2)时序:
集中发出多个地址周期将一批访存请求从处理器经共用引脚发往存储管理器,这样地址周期就不再穿插于正常数据传输,而是等待一批数据传出结束以后再集中进行;
(3)存储管理器的外围电路:
所有的DABUS通过数据多选器选择与存储器颗粒的数据引脚连通还是与存储管理器的输入引脚连通,存储管理器的输出引脚分别与每个存储器颗粒的地址总线相连;在地址周期,选择信号D_SEL将DABUS与存储管理器的输入引脚接通,处理器向存储管理器发送一批组合访存请求缓存于存储管理器;在访存请求发送完毕后,存储管理器严格按照存储器颗粒的地址时序将每个访存请求的地址发送至相应的存储器颗粒;对于中等粒度的访存请求,存储管理器向每个需要响应的存储器颗粒都发出相同的地址;
(4)返回数据由存储控制器正确分离并返回:
对于完整的访存请求,存储控制器将返回的数据发送给发出请求的处理器核;对于被截断的访存请求,存储控制器将已执行部分返回的数据进行缓存,等待剩余的部分全部执行完成并返回数据后,由存储控制器将其拼接成完整的返回数据,再发送给发起该访存请求的处理器核;
(5)本方案也可以根据需要设计混合周期:
在某些周期中一部分存储器颗粒对应的共用引脚组进行数据传输而其余的共用引脚组传输地址信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310197024.6A CN103246625B (zh) | 2013-05-24 | 2013-05-24 | 一种数据与地址共用引脚自适应调整访存粒度的方法 |
US14/143,252 US9170753B2 (en) | 2013-05-24 | 2013-12-30 | Efficient method for memory accesses in a multi-core processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310197024.6A CN103246625B (zh) | 2013-05-24 | 2013-05-24 | 一种数据与地址共用引脚自适应调整访存粒度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103246625A CN103246625A (zh) | 2013-08-14 |
CN103246625B true CN103246625B (zh) | 2016-03-30 |
Family
ID=48926152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310197024.6A Expired - Fee Related CN103246625B (zh) | 2013-05-24 | 2013-05-24 | 一种数据与地址共用引脚自适应调整访存粒度的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9170753B2 (zh) |
CN (1) | CN103246625B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9965220B2 (en) | 2016-02-05 | 2018-05-08 | Qualcomm Incorporated | Forced idling of memory subsystems |
JP6734536B2 (ja) * | 2016-07-29 | 2020-08-05 | 富士通株式会社 | 情報処理装置及びメモリコントローラ |
US9684461B1 (en) | 2016-10-31 | 2017-06-20 | International Business Machines Corporation | Dynamically adjusting read data return sizes based on memory interface bus utilization |
US9892066B1 (en) | 2016-10-31 | 2018-02-13 | International Business Machines Corporation | Dynamically adjusting read data return sizes based on interconnect bus utilization |
TW201833421A (zh) * | 2017-03-08 | 2018-09-16 | 林 招慶 | 可更新韌體的電子鎖系統 |
US10747442B2 (en) | 2017-11-29 | 2020-08-18 | International Business Machines Corporation | Host controlled data chip address sequencing for a distributed memory buffer system |
US10395698B2 (en) | 2017-11-29 | 2019-08-27 | International Business Machines Corporation | Address/command chip controlled data chip address sequencing for a distributed memory buffer system |
US10489069B2 (en) | 2017-11-29 | 2019-11-26 | International Business Machines Corporation | Address/command chip synchronized autonomous data chip address sequencer for a distributed buffer memory system |
US10534555B2 (en) | 2017-11-29 | 2020-01-14 | International Business Machines Corporation | Host synchronized autonomous data chip address sequencer for a distributed buffer memory system |
KR20200019431A (ko) * | 2018-08-14 | 2020-02-24 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작방법 |
TWI728363B (zh) * | 2019-05-17 | 2021-05-21 | 創惟科技股份有限公司 | 具資料存取、傳輸及電源管理的整合電子裝置及其方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0466970A1 (en) * | 1990-07-20 | 1992-01-22 | Siemens Aktiengesellschaft | Microprocessor with multiple bus configurations |
EP0628916A1 (en) * | 1993-05-28 | 1994-12-14 | AT&T Corp. | Microprocessor with multiplexed and non-multiplexed address/data busses |
US5448521A (en) * | 1993-11-12 | 1995-09-05 | International Business Machines Corporation | Connecting a short word length non-volatile memory to a long word length address/data multiplexed bus |
CN1723448A (zh) * | 2002-11-18 | 2006-01-18 | Arm有限公司 | 用于保护以防恶意程序的安全存储器 |
CN102693196A (zh) * | 2011-03-18 | 2012-09-26 | 飞思卡尔半导体公司 | 存储器控制器地址与数据管脚多路复用 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5386579A (en) * | 1991-09-16 | 1995-01-31 | Integrated Device Technology, Inc. | Minimum pin-count multiplexed address/data bus with byte enable and burst address counter support microprocessor transmitting byte enable signals on multiplexed address/data bus having burst address counter for supporting signal datum and burst transfer |
US6044412A (en) * | 1997-10-21 | 2000-03-28 | Vlsi Technology, Inc. | Integrated circuit pin sharing method and apparatus for diverse memory devices by multiplexing subsets of pins in accordance with operation modes |
US6571319B2 (en) * | 1999-06-04 | 2003-05-27 | Sun Microsystems, Inc. | Methods and apparatus for combining a plurality of memory access transactions |
TWI252406B (en) * | 2001-11-06 | 2006-04-01 | Mediatek Inc | Memory access interface and access method for a microcontroller system |
US7457901B2 (en) * | 2005-07-05 | 2008-11-25 | Via Technologies, Inc. | Microprocessor apparatus and method for enabling variable width data transfers |
JP5195408B2 (ja) * | 2008-12-25 | 2013-05-08 | 富士通セミコンダクター株式会社 | マルチコアシステム |
-
2013
- 2013-05-24 CN CN201310197024.6A patent/CN103246625B/zh not_active Expired - Fee Related
- 2013-12-30 US US14/143,252 patent/US9170753B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0466970A1 (en) * | 1990-07-20 | 1992-01-22 | Siemens Aktiengesellschaft | Microprocessor with multiple bus configurations |
EP0628916A1 (en) * | 1993-05-28 | 1994-12-14 | AT&T Corp. | Microprocessor with multiplexed and non-multiplexed address/data busses |
US5448521A (en) * | 1993-11-12 | 1995-09-05 | International Business Machines Corporation | Connecting a short word length non-volatile memory to a long word length address/data multiplexed bus |
CN1723448A (zh) * | 2002-11-18 | 2006-01-18 | Arm有限公司 | 用于保护以防恶意程序的安全存储器 |
CN102693196A (zh) * | 2011-03-18 | 2012-09-26 | 飞思卡尔半导体公司 | 存储器控制器地址与数据管脚多路复用 |
Also Published As
Publication number | Publication date |
---|---|
CN103246625A (zh) | 2013-08-14 |
US9170753B2 (en) | 2015-10-27 |
US20140351525A1 (en) | 2014-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103246625B (zh) | 一种数据与地址共用引脚自适应调整访存粒度的方法 | |
EP3729281B1 (en) | Scheduling memory requests with non-uniform latencies | |
US7925824B2 (en) | System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency | |
US7925826B2 (en) | System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency | |
US7930469B2 (en) | System to provide memory system power reduction without reducing overall memory system performance | |
US7673111B2 (en) | Memory system with both single and consolidated commands | |
US7925825B2 (en) | System to support a full asynchronous interface within a memory hub device | |
CN103744644B (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
CN107590085B (zh) | 一种具有多级缓存的动态可重构阵列数据通路及其控制方法 | |
CN102622192B (zh) | 一种弱相关多端口并行存储控制器 | |
US20090150636A1 (en) | Memory subsystem with positional read data latency | |
US20190196995A1 (en) | Dynamic page state aware scheduling of read/write burst transactions | |
EP3732578B1 (en) | Supporting responses for memory types with non-uniform latencies on same channel | |
US9263106B2 (en) | Efficient command mapping scheme for short data burst length memory devices | |
CN102508803A (zh) | 一种矩阵转置存储控制器 | |
CN110888592A (zh) | 基于延迟ssd系统智能并行资源利用的请求调度方法及系统 | |
CN207008602U (zh) | 一种基于NandFlash存储器多通道的存储阵列控制装置 | |
US8219745B2 (en) | Memory controller to utilize DRAM write buffers | |
WO2004068362A1 (en) | Processor array | |
CN106502923B (zh) | 阵列处理器中簇内存储访问行列两级交换电路 | |
CN106293491A (zh) | 写请求的处理方法和内存控制器 | |
CN110413562B (zh) | 一种具有自适应功能的同步系统和方法 | |
Wang et al. | Alloy: Parallel-serial memory channel architecture for single-chip heterogeneous processor systems | |
Lai et al. | Fine-grained write scheduling for PCM performance improvement under write power budget | |
Kim et al. | A quantitative analysis of performance benefits of 3D die stacking on mobile and embedded SoC |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160330 Termination date: 20190524 |