CN101198941A - 存储器控制器 - Google Patents
存储器控制器 Download PDFInfo
- Publication number
- CN101198941A CN101198941A CNA2006800210944A CN200680021094A CN101198941A CN 101198941 A CN101198941 A CN 101198941A CN A2006800210944 A CNA2006800210944 A CN A2006800210944A CN 200680021094 A CN200680021094 A CN 200680021094A CN 101198941 A CN101198941 A CN 101198941A
- Authority
- CN
- China
- Prior art keywords
- stream
- memory controller
- storer
- buffer
- mem
- 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.)
- Pending
Links
Images
Classifications
-
- 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/1689—Synchronisation and timing concerns
-
- 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/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
一种存储器控制器(SMC),配置用于将存储器(MEM)网络(N)相连。存储器控制器(SMC)包括第一接口(PI)、流存储器单元(SMU)和第二接口。所述第一接口(PI)用来将所述存储器控制器与用于来接收和发射数据流(ST1-ST4)的所述网络相连。所述流存储单元(SMU)与用来控制在所述网络(N)和所述存储器(MEM)之间的数据流(ST1-ST4)的所述第一接口(PI)相连。所述流存储单元(SMU)包括:缓冲器(B),用来临时存储至少一部分数据流(ST1-ST4);以及缓冲管理单元(BMU),用来管理在缓冲器(B)中暂时存储的数据流(ST1-ST4)以及用于为至数据流(ST1-ST4)的至少一个动态地分配缓存器(PFB、WBB)。所述第二接口与用来将所述存储器控制器(SMC)连接到所述存储器(MEM)的所述流存储单元(SMU)相连,以便按照突发模式与所述存储器(MEM)交换数据。另外,缓存器大小确定单元(BDU)配置用于至少其中一个数据流(ST1-ST4)确定缓存器(B)的大小。
Description
技术领域
本发明涉及一种存储器控制器和一种用于将网络和存储器相连的方法。
背景技术
随着高级移动和便携装置复杂性的增加,这种装置更大的需求应用,复杂性、适应性和可编程性的需求增加了装置内部的数据交换。实现这些应用的装置通常由几个功能或处理模块组成,在这里称为子系统。典型地,将这些子系统实现为作为分立的集成电路(separate ICs),每一所述集成电路均具有不同的内部结构,所述结构由局部处理器、总线和存储器等等组成。可选择地,可以将各种子系统集成到一个集成电路(IC)中。在系统级水平,这些子系统经由最高级的互联彼此通信,这提供了可靠的且通常具有实时支持的服务。其中,作为移动电话结构的一个例子,我们还可以具有基带处理器、显示器、媒体处理器或存储元件。为了支持多媒体应用,这些子系统以数据流方式交换大部分数据。作为数据流的一个例子,可以参考通过媒体处理器从局部存储器中读出MP3编码的音频文件并发送解码流到扬声器。附图1示出了这种通信的基本表示图,可以经由FIFO缓冲器B连接的处理器P1-P4来表示。这样的表示经常称为Kahn处理网。可以将Kahn处理网映射到系统结构上,如E.A.de Kock等人的“YAPI:Application modeling for signalprocessing systems”文章中所述的,发表于Proc.of the 37th.DesignAutomation Conference,Los Angeles,CA,June 2000,pages 402-405.IEEE,2000。在这种结构中,将处理P映射到子系统S上、存储器SMEM上的FIFO缓冲器上,并且在系统级水平的互联IM上进行通信。
在相关的处理之间的数据流的适当支持中,缓冲是必不可少的。典型地,将FIFO缓冲器用于数据流,所述数据流与数据流应用的(有界限的)Kahn处理网模型一致。随着能够同时运行的多媒体处理数量的增加,程序、实时数据流的数量、以及与FIFOs相关的数量实质上也在增加。
对于存储器使用和FIFOs分配,存在两种极端的流实现方式。第一种使用物理分布的存储器,其中FIFO缓冲器位于子系统的局部存储器中,第二种使用物理和逻辑统一的存储器,其中江南所有的FIFO缓冲器被分配在一个共享的、通常在片外的存储器中。也可能采用它们的结合的方式。
FIFO缓冲器可以采用外部DRAM存储技术在共享存储器中实现。SDRAM和DDR-SDRAM是能以低成本提供大容量外部存储器的技术,相对于硅面积比具有非常有吸引力的成本优势。
图2示出了一个具有共享存储器流框架的片上系统的基本结构。处理单元C、S经由缓冲器B彼此通信。处理单元C、S和缓冲器的每一个均与接口单元IU相关联,用于将它们与互联设备IM相连。在共享存储器数据交换的情况下,存储器也能用作其它目的。例如,存储器可以用于代码执行或用于在主处理器上处理程序运行进行动态存储分配。
包括互联装置、接口单元以及处理单元C、S和缓冲器B的这种通信结构或网络可以提供特定的传输工具和独立的下部结构来给以确定的数据传输保证,例如保证信息吞吐量或保证数据的无误传递或作为同步源和终端元件的同步服务,例如由于缓冲器的欠载或过载也不会丢失数据。如果系统执行实时流处理并且为所有部件提供实时支持,那么上面这种情况就变得很重要。
在图2所示的许多芯上系统(SoC)和微处理器系统内部,后台存储器(DRAM)用于数据的缓冲。当数据以流方式通信并以缓冲为存储器中的流时,可以使用预取缓冲。这意味着从SDRAM中预先读取数据并且保存在特定的(预取)缓冲器中。当读取请求到达时,可以从局部预取缓冲器中提供数据,一般情况下在片上SRAM中执行,不用由后台存储器(DRAM)另外引入的反应时间。这种方式类似于公知的用于处理器的随机数据超高速缓存技术(caching techniques of random data)。对于数据流,预取缓冲器中使用数据的连续(或最好称为可预测的)寻址,而不是在超高速缓存中使用的随机寻址。更详细的,请参考J.L.Hennessy和D.A.Patterson的“Computer Architecture--A QuantitativeApproach”论文。
另一方面,由于DRAM技术,最好是以突发模式存取(读取或写入)DRAM。因此,通常实现了回写缓冲器,这样聚集许多单一数据存入确定长度的存取序列,一旦对于第一DRAM存取的初始程序完成,每个紧邻的具有与在前的数据字(例如下一个、前一个取决于序列策略)确定关系的地址的数据字能够不用任何延迟(在1个周期内)的以指定的存取量(例如2/4/8整页)存入每个紧邻的存储器的循环。因此,通过流存储到存储器,对于同样方式的每次存取(例如连续寻址)当地址增加或减小时,序列存取以最低的功耗提供了最好的性能。关于DRAM存储器的原理的更多信息,请参考Micron’s 128-Mbit DDRRAM的说明,在此一并作为参考,网址如下:http://download.micron.eom/pdf/datasheets/dram/ddr/128MbDDRx4x8xl 6.pdf
为了通过(外部)存储器交换流数据,写入存储器的数据首先被存储在回写缓冲器中,而从外部存储器读出的数据首先被存储在预取缓冲器中,对类似这样的缓冲器的要求是它们应该足够大来尽可能降低延时或反应时间,而不是仅大于需要的空间,类似于不会有空间被浪费并用作其它目的。
发明内容
本发明的一个目的是提供一种存储器控制器,用于将网络和存储器相连,本发明也提供一种用来将网络和存储器相连的方法,该方法提供多个数据流到存储器的有效缓冲。
本发明的这个目的通过如权利要求1所述的存储器控制器和如权利要求5所述的用来将网络和存储器相连的方法来解决。
提供一种存储器控制器用来将存储器与网络相连。所述的存储器控制器包括第一接口、流存储单元和第二接口。所述第一接口将所述存储器控制器与所述网络相连,用于接收和传输多个数据流。所述流存储单元与所述第一接口相连,用来控制在所述网络和所述存储器之间的多个数据流,所述流存储单元包括缓冲器用来暂时存储至少一部分多个数据流,并且流存储单元还包括缓冲管理单元用来管理在缓冲器中的数据流存储和为多个数据流的至少一个动态地分配缓冲器。所述第二接口与所述流存储单元相连,用来将所述流存储器控制器与所述存储器相连,并以突发模式与所述存储器交换数据。此外,提供缓冲器大小确定单元根据所述数据流中的至少一个计算缓冲器的大小。
因此,在运行时,可以为缓冲器计算并分配准确且最佳的容量,因而增加了整个系统的容量。
按照本发明的一个方面,将第一接口实现为PCI-Express接口,使得PCI-Express标准网络的性能和网络服务通过存储器控制器来实现。
按照本发明的进一步的一个方面,提供仲裁器用来在所述数据流中对所述存储器的存取进行仲裁,以使得每个数据流在一个时隙内访问所述存储器,该一个时隙足够存取所述存储器(MEM)的至少一个存储页,考虑到功耗,象DRAM这样的存储器以突发模式是最好操作的,这样的存储器控制器将因此可以在低功耗下实现智能仲裁。
本发明也涉及一种用来将存储器与网络相连的方法,经由第一接口接收和传输数据流,所述第一接口将存储器控制器与网络相连,通过流存储单元控制在所述网络和所述存储器之间的所述数据流,在缓冲器中暂时存储所述数据流的至少一部分,管理在所述缓冲器中暂时存储的所述数据流和为所述数据流中的至少一个动态分配缓冲器,连接所述流存储器控制器到所述存储器,通过第二接口和以突发模式与所述存储器交换数据,为所述数据流中的至少一个确定缓冲器的大小。
本发明涉及计算缓存量的概念,如考虑到流带宽、通信网络表现和DRAM仲裁的细节,在运行期间存储器控制器会进行预取和回写缓存。提供缓冲器大小确定单元来确定存储器控制器中的缓冲器的大小,特别的,依照缓冲器大小确定单元来确定预取缓冲器和回写缓冲器,预取缓存和回写缓存的最佳缓存量能够在存入存储器时达到零延迟,这样的延迟对应于存储器的一个存储页并且在长的最坏情形的队列时间下传送的大量字节,具有这样的缓存量,由存储器控制器引入的延迟被有效地减小到最小值,小的缓冲器将会导致增加延迟,而大的缓冲器将会减小用作其它目的的可用存储空间。
本发明的其它方面服从于其依赖的权利要求。
本发明的这些和其它方面是显然的并且参考下面的实施例和附图来说明。
附图说明
附图1为Kahn处理网的基本结构及其到共享存储器结构上的映射;
附图2为具有共享存储器流框架的片上系统的基本结构图;
附图3为按照第一实施例的流存储器控制器SMC的方框图;
附图4为按照第二实施例的流存储器控制器SMC的逻辑视图的方框图;
附图5为最坏情形下的延迟对缓冲器大小的影响的曲线图;
附图6为反应时间相对缓冲器大小的影响的曲线图;以及
附图7为功率对缓冲器大小的影响的曲线图。
具体实施方式
附图3为按照第一实施例的流存储器控制器SMC的方框图,流存储器控制器SMC包括PCI-Express接口PI,流存储单元SMU和更多的接口MI作为到(外部)SDRAM存储器MEM的接口,流存储单元SMU包括缓冲管理单元BMU,缓冲器B,缓冲器B可以作为SRAM存储器来执行,还包括仲裁器ARB,在SRAM中执行缓冲的流存储单元SMU和缓存管理器BMU共同通过到SDRAM的PCI-Express接口来用作缓冲存取,为了管理缓冲器(更新指针记录)和从/向缓冲器(SRAM)及从/向SDRAM传递数据,缓冲管理单元BMU适于对从PCI-Express接口到SDRAM的读或写存储反应,特别的,缓冲管理单元BMU可以包括FIFO管理器。
流存储单元进一步包括缓冲器大小确定单元BDU,缓冲器大小确定单元BDU确定缓存器B的大小,缓冲器大小确定单元BDU确定缓冲器的大小,例如为了在存入SDRAM存储器时确保零等待来预存取和回复缓存,基于流带宽和仲裁通道量来执行上述操作。有了类似这样的缓冲器大小确定单元BDU,在运行期间,能够计算和分配预取和回写缓存及其它缓存的准确且最佳的缓存量,进一步,存入SDRAM的低延迟被实现,如果需要的话,在可用存储空间、已分配的存储器和时间延迟之间实现平衡。在SDRAM存储器中,可执行预取缓冲和回写缓冲。
流存储器控制器SMC调整由网络(基于PCI-Express标准的网络)产生的通信量以适合外部存储器MEM的指定行为,该外部存储器MEM可以作为一个SDRAM被执行。换句话说,流存储器控制器SMC用来为每一个流提供一个带宽保证,而且提供受限的传递时间和从或到外部存储器MEM的数据无误传输。当流存储器控制器SMC用来设计成控制外部存储器的存取时,在流存储器控制器SMC中的带宽仲裁与在网络中的仲裁具有相同的概念,例如,时隙和实隙分配,然而,时隙的大小不得不被调整以适应SDRAM的性能。
换句话说,流存储单元SMU向外部存储器MEM执行PCI-Express网络的网络服务。因此,为对外部SDRAM存储器存取,流存储单元SMU将来自PCI-Express网络的数据流译成突发以使得将该SDRAM的总的有用带宽划分为多个突发存取。突发存取的数量可以赋给来自于网络的流以实现这些流的带宽需求。流存储单元SMU也可以执行同步机制以服从PCI-Express网络的流控制机制。该同步机制可以包括各个需求的一个阻塞。当流存储器控制器SMC被设计用来处理几个独立的流时,流存储单元SMU被设计为建立、维护以及管理所需求的缓存。
由图3知,流存储器控制器SMC有两个接口:一个朝向PCI-Express结构,第二个朝向存储器(例如,DRAM)。流存储器控制器SMC的PCI-Express接口为遵守PCI-Express的通信规则必须对从SDRAM存储器恢复的数据执行通信整形。在流存储器控制器SMC的另外一个接口上,对DRAM存储器的访问是按组来进行的,因为这种访问存储在DRAM存储器中数据的模式对于能量消耗有最大的优点。流存储器控制器SMC本身必须提供在不同的流中对DRAM进行存取的智能仲裁以保证存取的吞吐量和延迟时间。此外,SMC也可以提供智能FIFO缓存管理的功能。
PCI-Express网络的基本思想在“PCI Express Base Specification,Revision 1.0”,PCI-SIG,July 2002,www.pcisig.org,中有相应的描述,这里,将此作为参考。在设计流存储器控制器时,所考虑的PCI-Express的特点是:支持数据的同步传输,流控制,以及特殊的地址配置。同步支持主要基于同步和异步通信的分离利用虚拟通道VCs。因此,网络资源如带宽和缓存在交换结构中可以明确地为某个特定的流而保留,因而在不同的虚拟通道中流之间保证不会有冲突。此外,在交换结构中,同步通信通过时序被调整,即允许控制服务。
在第一个实施例中,使用了一个(DDR)SDRAM存储器。作为举例,可以查阅在Micron公司的128-Mbit DDRRAM说明书中描述的128-MbitDDR-SDRAM存储器,http://download.micron.eom/pdf/datasheets/dram/ddr/l28MbDDRx4x8xl 6.pdf,这里提出来作为参考。这种技术是非常可取的,因为它提供了满意的能量消耗和定时行为。然而,设计被参数化,并且存储器控制器SMC也要配置单数据率存储器进行工作。因为DDR-SDRAM和SDRAM的工作方式是相同的,除了数据线的定时,因此我们用SDRAM的概念解释其基本要点。
PCI-Express网络PCIE提供网络服务,例如保证数据的实时传输,通过在实时流经过的设备中保留专用的资源/带宽。当被一个标准控制器支持的一个外部DRAM连接到PCI-Express结构,而在它们之间没有连接任何智能存储器控制器,带宽延迟和其他的被PCI-Express能提供的典型的保证,都不能通过存储器实现,因为它不能给出任何保证并且其对于输入的通信量只担当一个从属的角色。
标准存储器控制器的设计集中在以最可能少的反应时间来获得最可能高的带宽。这样的方法适合处理机对数据和指令(高速缓存存取器)的存取,而不适合同步通信。为了能够提供PCI-Express网络被外部DRAM扩充后的可预测的性能,需要一个流存储器控制器,它能保证,对流来说,外部存储器的可预测的性能。另外,根据本发明的存储器控制器的设计,其目的不仅能够保证吞吐量和延迟时间,而且当对DRAM存取时还能减少能量消耗。
图4根据第二实施例显示出了流存储器控制器SMC的逻辑视图的方框图。这里,显示出了一个多流缓冲过程的逻辑视图。流ST1-ST4中的每一个都与一个独立的缓冲器相关。当数据进入所需要的外部SDRAM时,这些缓冲器可以被分成两部分,例如,一个往返缓冲器PFB和一个回写缓冲器WBB。在仅有一个流可以进入外部SDRAM的时候,一个仲裁器ARB被提供用来与一个多路复用器MUX联合执行仲裁以解决不同流在根据其带宽需求而进入存储缓冲器时之间的冲突。
不同实时流之间的内存存取仲裁是保证吞吐量和限定存取延迟所必需的。假设无论何时当数据被写入或从内存中读出,最好一整页(或者多页)被读写,例如,以突发的模式进行存取。存取一页(对读写操作来说略有不同)所需要的时间被称为一个时隙TS。每个流能对其在一个时隙TS内可以执行作为一个SDRAM的存储器MEM进行控制,在该时隙TS中,该SDRAM中例如一页的数据被存取。一个服务周期SC可以包括一固定数目的时隙。在每个服务周期开始的时候,存取序列重复和重置。
时隙的大小从原理上来说是能够设计的。时隙的大小应当反映存储器的性能,以及数据所期望的大小,例如,在SDRAM和连接(例如,PCI-Express)之间传送的内部存储器控制器缓冲区的大小。因此,对每个系统和每个存储器来说时隙都将是不同的。时隙的大小能在运行中调整。如果提出缺少内部存储器(例如,被其他的流缓冲器占用)而要为当前的流创建一个最佳的缓冲器时,一个权衡在缓冲器大小而浪费的能量和反映非最佳的缓冲(例如,较小的缓冲器)的时隙调整之间被执行。
对一个PCI-Express网络和一个SDRAM,SDRAM存取一个整页的时隙的计算如下:
在一个时隙中,任何一个流访问SDRAM的一个整页。对Micron公司的128Mb DDR-RAM(4Meg*8*4Banks)来说,该页的大小为1Kbytes。1Kbytes等于8个基本包大小(128 Bytes)的PCI-Express包。
假定16-bit字节,读取1页(重复激活)的最少的时间等于:2(激活到读取的周期)+512(读取的周期)+2(预充电到激活的周期)=516个时钟周期=516*7.5ns=3.87μs
写入1页(重复激活)的最少的时间等于:2(激活到写入的周期)+512(写入的周期)+1.25(tQDSSmax)+2(tWR)+2(预充电到激活的周期)=519.25个时钟周期=519*7.5ns=3.894μs。
因此,一个时隙至少为3.894μs(或520个内存时钟周期)。因而,对SDRAM来说每秒可达到(最大)256,805的页面存取。
在上述假设下,SDRAM最大可能的数据率(带宽)是256.805Mbytes/S,需要注意的是,这些数值是对于上述描述的DDR-RAM而言的。对其他的DRAM来说是另外的值。
作为一个例子,SDRAM FIFO缓冲器的总数被选定为4个是为了计算最坏情形下由仲裁引入的包的延迟,例如,一个包在离开存储器控制器SMC与它进入存储器控制器的时间的差别。进一步,假设所有的数据流有相同的优先权,例如,基于循环(round robin)方式执行仲裁。存储器控制器SMC的缓冲器的大小为8个包或1Kbytes。读取和写入SDRAM的流的数据率相同。因此,SDRAM中每个FIFO缓冲器在提供的一个具有8个时隙窗口中被写入和读取,如果有足够的数据的话。
T=t1+t2+t3+t4+t5+t6+t7
t1对应于对数据解包并送到存储器控制器SMC中时被PCI-Express占用的时间。t2对应于有多少包保留在存储器控制器SMC的回写缓冲器中的时间。t3对应于在向SDRAM写入包时消耗的时间。t4对应于包保留在SDRAM FIFO的FIFO中的时间。t5对应于从SDRAM读出包时所消耗的时间。t6对应于有多少包保留在存储器控制器的预取缓冲器中的时间。t7对应于从存储器控制器接收数据并形成包时被PCI-Express所占用的时间。
作为举例,t2,t3,t5和t6在一些假设条件下被计算。对最坏情形下的延迟,假设一个包首先到达存储器控制器的回写缓冲器,然后等待多于7个的包(为了填满回写缓冲器),再然后它还必须等待7个时隙才能进入SDRAM(7个其它的流首先进入SDRAM)。同样地,对于最坏的情形,假设包要等待7个时隙且多于7个的包被读取。
假设对于举例的流而言,两个包之间的时间是945μs(单音频通道:44.1KHz*24bit=1058.4kbps=1058包/秒)。
对于最坏的情况:t2=7*945=6615μs,t6=7*945=6615μs。
然而,在最坏的情况下,t2和t6的时间是专有的,因为在SRAM中任何包都必须等待在回写缓冲器中的7个其它的包(最坏情形),然后这个包才能成为第一个被读取的包。
因此,可以导出总的时间t2+t6=6615μs。最坏情形下t3和t5的值是对SDRAM进行8个页存取的时间,因为在最坏情形下任何流都不得不等待7个时隙然后才能完成页存取。因而,总的时间就是等待(7个时隙)和实际的读/写(1个时隙)。t3=t5=8*3.894=31.2μs,当作为一个SDRAM的时隙(页存取)为之前所计算的3.894μs时。
假设t’=t1+t4+t7是一个不依赖流参数的常数值,那么最坏情形下的延迟T=6615+31.2+31.2+t’μSec=6.7mSec+t’.
假设(对其他情形)12.8MB/sec的数据率(每10μs一个包),最坏情形下的延迟为T=70+31.2+31.2+t’μSec=132.4+t’μSec
在SDRAM的这种存取原则(整页存取)下,需要的能量是最小的,但是最坏情形下的延迟要比那些有较小数据率(带宽)的流要大。
图5的曲线图是在数据率为128Mbits/s,使用页突发的一个128MbDDR-RAM(4Meg*8*4Banks),以及假设所有流具有相同的分配带宽时的最坏情形延迟的情况下计算出来的。如图5所示,最坏情形下的延迟WCD随着缓冲器的大小BS线性增加。
图6的曲线图解释了回写缓冲器的缓存大小对存储器控制器SMC的反应时间LT的影响。当存储器控制器SMC中的预取缓冲器或回写缓冲器出现对SDRAM的存取需求时,需要一个限定的时间(如上述计算的t5)以进行存取。在最坏的情形下,这个需求被所有较高优先级的流所延迟。假设所有其它7个流首先将被以循环(Round Robin)的方式处理。如果在这个时间当中缓冲器有任何需求出现,缓冲器都将需要足够多的额外空间(超过SDRAM一页数据的基本大小)去完成该需求。否则,该需求将被阻塞因为缓冲器将不得不等待直到它能进行SDRAM的存取。为提供非阻塞存取,缓冲器中所需的额外空间依赖于流的数据率。
图6中的曲线图是在128Mb DDR-RAM(4Meg*8*4Banks)以及假设所有的流具有相同的分配带宽时的平均反应时间的情况下计算出来的。
当预取缓冲器变空而DRAM的整页要传送到预取缓冲器时,在最坏情形下8个时隙(~8*516周期=32μs)是需要的。如果缓冲器的大小等于DRAM的一个页,那么第一个包的存取(读需求的完成)需要32μs,而剩余的包理想地被存取(读需求的完成)在单个时钟周期内。因此,对于任何包来说平均反应时间为517((8*516+7)/8)个时钟周期。该平均反应时间与数据率无关。
由图6知,对于高数据率的流所需要的缓存大小也更大,因为它要供应更多的数据在SDRAM存取时间内进行非阻塞存取。在SDRAM的存取时间中,对高数据率的流来说,更多的包被需求。
在存储器控制器SMC(对于本例)中,提供零延迟的SDRAM存取的最佳的缓冲器的大小=1DRAM的页+当需求在队列中时的缓存包(max~32μs)=1KB+对每个4Mbit/s的数据率来说1个额外空间包(128 Bytes)。
图7的曲线图解释了缓冲器的大小BS对消耗的能量P的影响。这里,当缓冲器的大小被调整时,又一个设计权衡被执行和计算。SDRAM支持1,2,4,8大小的突发长度和页突发。当突发大小增加时,对SDRAM来说处于激活ACTIVE模式下的时间就会减小,并且SDRAM能被提早进入待命状态(SELF REFRESH,自刷新)。因此,当突发增加时,SDRAM中的能量消耗减少。
图7中的曲线图是在对SDRAM读取数据为10Mbit/s以及128MbDDR-RAM(4Meg*8*4Banks)的情况下计算出来的。该图显示出了页突发消耗了最低的能量。不同的突发所消耗的能量的差别越大,SDRAM所需要的带宽越多。
以上所描述的思想也能在需要对SDRAM存取进行实时仲裁(如一个流存取)的系统中实施,当满足小的能量需求的时候。这里可以举出带有音频/视频功能的移动电话的例子。
因此,以上提到的本发明实施例的原理能应用于所有包括一个互连基础结构如一条总线或者一个网络,并当其他的(外部的)设备不能实施该网络服务时,可以支持特定的服务的系统。作为一个互连基础结构例子的PCI-express标准网络,能够执行带宽分配服务,流控制服务或其他类似服务,当(外部的)SDRAM存储器不能执行这些服务时。
尽管在以上的实施例中,仅有一个存储器MEM被描述,但对于每个PCI-Express标准的流的处理来说,以上提到的配置都能够使用,尤其是对于顺序地址,如一个直接存储器存取DMA的地址,本发明的以上原理也可用于有两个或更多独立存储器的分布式存储器系统中。在这种情形下,每个存储器都应当被提供一个独立的存储器控制器,其中每个存储器都应当包括一个独立的设备地址。这里,流缓冲器的数量不局限于8个。
当通过改变参数(如,缓冲器和缓冲器的大小,仲裁策略)来调整设计时,对片外存储器的实时流存储器控制器的设计中,为了获得结果而进行实验成为可能以进一步优化和权衡设计指标(Trade-offs)。这些优化和权衡设计指标(trade-offs)的例子,其在练习设计的过程中能够被体现出来,在相对于在数据存取时最坏情形下的延迟的突发大小和输入/输出缓冲器的大小,外部存储器的能量浪费,和SMC中的反应时间之间是相互联系的。
根据本发明的实时流存储器控制器支持片外网络服务而且对以流的方式访问外部DRAM提供了实时保证。
存储器控制器SMC已被设计成允许访问来自于PCI Express标准的网络中的外部DRAM。该存储器控制器SMC用VHDL设计,综合和验证。根据消耗的硅和能量可得到复杂性图。另外,作为一个特殊的应用可以探索设计空间,某种设计指标的优化和权衡(trade-offs)也能在使用不同的参数和仲裁原则练习设计的过程中得到体现。
这里,存储器控制器SMC能被实现在低能量的模式下给出进行SDRAM存取的带宽保证。仲裁算法,尽管要保证带宽,但仍然可以灵活的应付网络的波动和不稳定。PCI Express限定8流独立地被仲裁。对SMC设计中有一些重要的权衡Trade-offs,如缓冲器大小(费用)与能量的比值,以及存取延迟。I/O缓冲器的增加可以缓解仲裁,降低存取反应时间,以及减少来自于SDRAM累积的带宽需求。
应当注意到,上述提到的实施例是用来解释而非限制本发明,能用来设计多个可替换的实施例的技术手段没有脱离权利要求书的范围。在权利要求中,括号里的任何参考标记都不限定该权利要求。在权利要求中,词“包括”不排除已有的元件或方法除了列出来的之外。在元件前的词“一个”不排除存在多个该元件。在装置权利要求以列举的多种方式,这些方式中的多种能通过一个相同的硬件设备概括。某些属于相互不同的从属权利要求的步骤不表示它们的结合是没有优点的。
进一步,权利要求中的任何附图标记不构成对权利要求保护范围的限制。
Claims (6)
1.一种存储器控制器(SMC),用来将存储器(MEM)网络(N)相连,包括:
第一接口(PI),用于将所述存储器控制器(SMC)与所述网络(N)相连,所述第一接口配置用来接收和发射多个数据流(ST1-ST4);
流存储单元(SMU),与所述第一接口(PI)相连,用于控制在所述网络(N)和所述存储器(MEM)之间的所述多个数据流(ST1-ST4);所述流存储单元(SMU)包括:缓冲器(B),用来暂时存储至少一部分所述多个数据流(ST1-ST4);缓冲管理单元(BMU),用来动态地为所述多个数据流(ST1-ST4)的至少一个分配缓冲器(PFB,WBB);以及缓冲器大小确定单元(BDU),用于针对所述数据流(ST1-ST4) 中的至少一个计算缓冲器(B、PFB、WBB)的大小;以及
第二接口,与所述流存储单元(SMU)相连,用来将所述流存储器控制器(SMC)与所述存储器(MEM)相连,并按照突发模式与所述存储器(MEM)交换数据。
2.根据权利要求1所述的存储器控制器,其中:
所述第一接口(PI)是PCI express接口。
3.根据权利要求1所述的存储器控制器,其中:
将用来在所述数据流(ST1-ST4)中对所述存储器的存取进行仲裁仲裁器(ARB)配置为使得每个数据流(ST1-ST4)在时隙期间访问所述存储器(MEM),所述时隙足够存取所述存储器(MEM)的至少一个存储页。
4.根据权利要求3所述的存储器控制器,其中:所述缓冲器(B)包括至少一个预取缓冲器(PFB)和一个回写缓冲器(WBB),
其中所述缓冲器大小确定单元(BDU)确定所述预取缓冲器(PFB)和所述回写缓冲器(WBB)的大小,使所述大小与所述存储器(MEM)的一个存储页和针对数据流在最坏情形的队列时间期间传输的位数相对应。
5.一种将存储器(MEM)与网络(N)相连的方法,包括以下步骤:
经由第一接口(PI)接收和发射数据流(ST1-ST4),所述第一接口用于将存储器控制器(SMC)与所述网络(N)相连;
通过流存储单元(SMU)控制在所述网络(N)和所述存储器(MEM)之间的所述数据流(ST1-ST4);
在缓冲器(B)中暂时存储所述数据流(ST1-ST4)的至少一部分;
管理在所述缓冲器(B)中暂时存储所述数据流(ST1-ST4)以及针对所述数据流(ST1-ST4)中的至少一个动态地分配缓冲器;
经由第二接口将所述流存储器控制器(SMC)与所述存储器(MEM)相连,并且按照突发模式与所述存储器(MEM)交换数据;
针对所述数据流(ST1-ST4)中的至少一个来确定缓冲器的大小。
6.一种数据处理系统,包括:
多个处理单元;
网络,用于连接所述处理单元;以及
根据权利要求1-4中任一项所述的存储器控制器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05105145.6 | 2005-06-13 | ||
EP05105145 | 2005-06-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101198941A true CN101198941A (zh) | 2008-06-11 |
Family
ID=37235997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800210944A Pending CN101198941A (zh) | 2005-06-13 | 2006-06-13 | 存储器控制器 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1894108A2 (zh) |
JP (1) | JP2008544359A (zh) |
CN (1) | CN101198941A (zh) |
WO (1) | WO2006134550A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109981620A (zh) * | 2019-03-14 | 2019-07-05 | 山东浪潮云信息技术有限公司 | 一种后台接口管理系统 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008544348A (ja) * | 2005-06-09 | 2008-12-04 | エヌエックスピー ビー ヴィ | メモリーコントローラ及びネットワークとメモリーの結合方法 |
EP1894107B1 (en) * | 2005-06-09 | 2011-12-21 | Nxp B.V. | Memory controller and method for coupling a network and a memory |
US20120066444A1 (en) | 2010-09-14 | 2012-03-15 | Advanced Micro Devices, Inc. | Resolution Enhancement of Video Stream Based on Spatial and Temporal Correlation |
WO2014193376A1 (en) * | 2013-05-30 | 2014-12-04 | Hewlett-Packard Development Company, L.P. | Separate memory controllers to access data in memory |
CN105630714B (zh) * | 2014-12-01 | 2018-12-18 | 晨星半导体股份有限公司 | 接口资源分析装置及其方法 |
KR20210066631A (ko) | 2019-11-28 | 2021-06-07 | 삼성전자주식회사 | 메모리에 데이터를 기입하기 위한 장치 및 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6859454B1 (en) * | 1999-06-30 | 2005-02-22 | Broadcom Corporation | Network switch with high-speed serializing/deserializing hazard-free double data rate switching |
US6813701B1 (en) * | 1999-08-17 | 2004-11-02 | Nec Electronics America, Inc. | Method and apparatus for transferring vector data between memory and a register file |
US6553446B1 (en) * | 1999-09-29 | 2003-04-22 | Silicon Graphics Inc. | Modular input/output controller capable of routing packets over busses operating at different speeds |
-
2006
- 2006-06-13 CN CNA2006800210944A patent/CN101198941A/zh active Pending
- 2006-06-13 EP EP06765728A patent/EP1894108A2/en not_active Withdrawn
- 2006-06-13 WO PCT/IB2006/051876 patent/WO2006134550A2/en not_active Application Discontinuation
- 2006-06-13 JP JP2008516481A patent/JP2008544359A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109981620A (zh) * | 2019-03-14 | 2019-07-05 | 山东浪潮云信息技术有限公司 | 一种后台接口管理系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2008544359A (ja) | 2008-12-04 |
WO2006134550A2 (en) | 2006-12-21 |
WO2006134550A3 (en) | 2007-03-08 |
EP1894108A2 (en) | 2008-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1820309B1 (en) | Streaming memory controller | |
US7269709B2 (en) | Memory controller configurable to allow bandwidth/latency tradeoff | |
CN100472494C (zh) | 支持多总线多类型存储器的内存仲裁实现系统和方法 | |
US8359420B2 (en) | External memory based FIFO apparatus | |
US7539812B2 (en) | System and method to increase DRAM parallelism | |
CN101198941A (zh) | 存储器控制器 | |
US20020087614A1 (en) | Programmable tuning for flow control and support for CPU hot plug | |
US10210117B2 (en) | Computing architecture with peripherals | |
US6571302B1 (en) | Dynamic adjustment of multiple sequential burst data transfers | |
CN103324585A (zh) | 分级缓存的处理器中的协作预取处理 | |
JP2007220046A (ja) | バス装置、バスシステムおよび情報転送方法 | |
CN101194242A (zh) | 存储器控制器和用于连接网络和存储器的方法 | |
WO2004099995A2 (en) | Hierarchical memory access via pipelining | |
CN100557584C (zh) | 用于对网络和存储器进行耦合的存储器控制器和方法 | |
CN117716679A (zh) | 地址转换类型分组的传输 | |
JPH10260895A (ja) | 半導体記憶装置およびそれを用いた計算機システム | |
JP2005508549A (ja) | アンキャッシュ素子のための帯域幅の向上 | |
CN100437536C (zh) | 一种多用户访问缓存方法和系统 | |
US7552252B2 (en) | Memory interface circuit and method | |
JP2002198987A (ja) | ハブおよびポート付き転送コントローラのアクティブ・ポート | |
WO2006011063A2 (en) | Dmac issue mechanism via streaming id method | |
KR100335371B1 (ko) | 로컬 메모리 중재 및 인터페이스 장치 | |
NZ716954B2 (en) | Computing architecture with peripherals |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20080611 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |