CN102402493B - 用于共享数据总线的层级式缓冲器系统的系统和方法 - Google Patents
用于共享数据总线的层级式缓冲器系统的系统和方法 Download PDFInfo
- Publication number
- CN102402493B CN102402493B CN201110265775.8A CN201110265775A CN102402493B CN 102402493 B CN102402493 B CN 102402493B CN 201110265775 A CN201110265775 A CN 201110265775A CN 102402493 B CN102402493 B CN 102402493B
- Authority
- CN
- China
- Prior art keywords
- data
- impact damper
- layer
- buffer
- ground floor
- 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
Links
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/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)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
- Advance Control (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种用于控制层级式缓冲器系统中的数据条目的系统和方法。该系统包括集成电路器件,该集成电路器件包括存储器核、共享数据总线以及从存储器接收数据的多个第一层缓冲器。该系统还包括按预定时序将数据递送到共享数据总线上的多个第二层缓冲器。本发明还可以被视为提供一种用于控制移动层级式缓冲器系统中的数据条目的方法。该方法包括管理缓冲器以允许数据从多个第一层缓冲器流过第二层传送缓冲器,以及按预定时序将数据递送到共享数据总线上。
Description
技术领域
本发明总体上涉及控制在层级式缓冲器系统中移动数据条目。
背景技术
当前,现代计算机系统通常包含若干集成电路(IC),这些IC包括可以用来处理计算机系统中的信息的处理器。处理器所处理的数据可以包括处理器执行的计算机指令以及处理器使用计算机指令来操纵的数据。计算机指令和数据通常存储于计算机系统中的主存储器中。
处理器通常通过在一系列小步骤中执行指令来处理指令。在一些情况下,为了增加处理器处理的指令数目(并且因此增加处理器的速度),可以将处理器流水线化。流水线化是指在处理器中提供独立的级(stage),其中每个级运行执行指令所需的小步骤中的一个或者多个小步骤。在一些情况下,流水线(以及其他电路)可以放置于处理器的称为处理器核的部分中。一些处理器可以具有多个处理器核,并且在某些情况下,每个处理器核可以具有多个流水线。当处理器核具有多个流水线时,指令组(被称为发布组)可被并行地发布给多个流水线,并由每个流水线并行执行。
随着处理核数目增加,越发需要存储器子系统以递送所需带宽的数据。由于对处理器可以直接附接到存储器设备的通道数目存在实际的限制,所以一种寻常的架构解决方案涉及存在于通道上的一个或者多个存储器缓冲器芯片。缓冲器芯片的主要作用在于向附接到一个或者多个存储器端口的多层和多排转发读取操作流,并且缓冲用于向处理器核发回的返回读取数据。DRAM频率经常不同于存储器通道频率,并且这需要对返回数据的缓冲和速度匹配。
随着读取的缓冲器数目与缓冲器芯片自身的工作频率一起增加而出现了新问题。数据脉冲串数目与未完成读取请求数目的乘积结果是需要复用到存储器通道的数据源数目。例如,具有四个读缓冲器(每个缓冲器能够保持脉冲长度为8(即BL8)的DRAM读)的缓冲器芯片导致必须向存储器通道递送的32个数据脉冲串。在通道频率超过2GHz时,缓冲器数据流现在超过1.5GHz周期时间。
另外,高性能处理器能够生成连续读取流,这些流要求缓冲器芯片支持比物理读取缓冲器的实际数目更大的某一数目的未完成读取。例如,如果缓冲器芯片具有4个读取缓冲器,则存储器控制器运用的复杂调度方案将通常在第一次地区离开缓冲器芯片之前起动第5次读取。这利用存储器通道、缓冲器芯片和DRAM器件中的已知固定延时以将附加读取操作流水线化并且向缓冲器施压。
最简单的(即,强制)解决方案是超储备量地设计缓冲器芯片数据流并且将附加缓冲器实例化。通过使用简单的循环方案,缓冲器管理逻辑易于实施、但是有附加不动产的物理设计成本。如果数据源分散于芯片,则这引起巨大问题。这将需要添加流水线级以仅传送去往缓冲器池或者来自缓冲器池的数据。这种方法也将由于向数据流引入甚至更多的源进行复用而加剧不得不从所有数据源中进行选择的问题。
更常见的方式是仅运用所需数目的缓冲器(在该例子中为4)、但是使用支持流水线的更复杂缓冲器控制器。在从第一缓冲器读出数据时,来自第5次读取的返回DRAM数据同时开始加载到第一缓冲器。继而,来自第6次读取的返回数据可以流水线化到第二缓冲器等中。这种解决方案允许存储器控制器发送连续读取流,并且根据DRAM频率与通道频率之比,通常可以实现两倍于实际读取缓冲器数目的持续带宽。然而,输出门控32个源的问题仍然存在。在数据流运行于1-2GHz时,其经常要求在缓冲器池与存储器通道之间的附加流水线级。遗憾的是,此方法影响数据递送开始的延时。
发明内容
本发明的实施例提供一种用于控制层级式缓冲器系统中的数据条目的系统和方法。简言之,在架构中可以实施系统的一个实施例以及其他实施例如下。
该系统包括一种集成电路器件,该集成电路器件包括存储器核、共享数据总线和从存储器接收数据的多个第一层缓冲器。该系统还包括按预定时序将数据递送到共享数据总线上的第二层传送缓冲器。
本发明的实施例还可以被视为提供一种用于控制层级式缓冲器系统中的数据条目的方法。在此方面,此方法的一个实施例以及其他实施例可由以下步骤宽泛地概括。该方法包括:管理缓冲器以允许数据从多个第一层缓冲器流过第二层传送缓冲器,以及按预定时序将数据递送到共享数据总线上。
通过本发明的技术实现附加的特征和优点。这里详细描述本发明的其他实施例和方面并且被视为要求保护的本发明的部分。为了更好地理解具有优点和特征的本发明,参照说明书和附图。
附图说明
在说明书完结部分附带的权利要求书中特别地指出并且区别地要求保护被视为本发明实施例的主题名称。根据与以下附图结合进行的下文具体实施方式,本发明的前述和其他目的、特征及优点变得清楚:
图1是描绘根据本发明一个实施例的系统的框图。
图2是描绘根据本发明一个实施例的层级式缓冲器系统的架构例子的框图。
图3是图示了根据本发明一个实施例的层级式缓冲器系统的操作例子的流程图。
图4A-E是描绘层级式缓冲器系统的操作例子的时序图。
具体实施方式通过参照附图并以示例的方式说明本发明的优选实施例以及优点和特征。
具体实施方式
在下文中参照本发明的实施例。然而,应当理解本发明并不限于具体描述的实施例。相反,无论是否与不同实施例有关,构想以下特征和单元的任何组合以实施和实现本发明。另外,在各种实施例中,本发明提供较现有技术而言的诸多优点。然而,虽然本发明的实施例可以实现较其他可能的解决方案和/或较现有技术而言的优点,但是给定的实施例是否实现具体优点并不限制本发明。因此,除非在权利要求中明确记载,以下方面、特征、实施例和优点仅为示例性的,并且并不视为所附权利要求的要素或者限制。类似地,除非在权利要求中明确记载,对“本发明”的引用不应理解为在此公开的任何发明主题名称的概括并且不应被视为所附权利要求的要素或者限制。
本发明的一个实施例通过运用级联缓冲器结构来解决两个问题,其中第一层包括三个缓冲器,而第二层保持第四缓冲器。复杂的缓冲器控制器支持两级数据流水线化。第一级需要从三个保持缓冲器之一向第二层传送缓冲器的数据移动。第二级流水线化出现于给定缓冲器内,用以允许与一个事务关联的数据开始卸载同时将用于第二事务的数据加载至缓冲器中。这种方法针对脉冲串长度为8的读取操作将最终输出门控多路复用器或者复用减少至最多8个源,并且进一步减少用于在通道上传输数据的所需流水线级的数目。
为了与运用传统并行缓冲器池的传统设计的持续带宽相匹配,本发明的另一实施例还提出如下流控制器,该流控制器在缓冲器的在存储器通道上的调度时间片之前从第一层保持缓冲器向第二层传送缓冲器转发数据脉冲串。因此,在紧密接连发布多次读取的情况下,本发明的该一个实施例并入还充当了速度匹配缓冲器的读传送缓冲器,以保证用于后续读取事务的数据以无缝方式返回。
本发明的一个实施例包括在4槽先进先出缓冲器(即FIFO或者队列)、双端口2槽FIFO缓冲器和简单分级寄存器之间动态变换的创新读取传送缓冲器。这种结构在不要求缓冲时允许最小延时的初始数据传送,以及适应在任何序列中发布的4个和8个脉冲串读取操作。由于双数据速率三同步动态随机访问存储器(DDR3DRAM)在两个相继脉冲串斩波(chop)的4个读取操作之间引入间隙,所以DDR存储器设备通常支持两类数据传送。脉冲串斩波是在数据事务大小为缓冲器容量一半的时刻。脉冲串长度8在4个相继存储器时钟周期的每个上升和下降沿上传送8拍数据。优选实施例将这类传送运用于访问来自存储器的整个高速缓存线。此外,DDR设备也允许脉冲串长度为4或者其中设备递送仅4拍数据的动态脉冲串斩波操作。在处理器仅需部分高速缓存行的情形中,本发明允许第一和第二层缓冲器中的半数缓冲器用于容纳返回数据。另外,第二层缓冲器提供一种可以用来向第二层缓冲器的每半个缓冲器中同时加载来自两个不同事务的数据以在共享总线上确保无缝数据传送的手段。
本发明一个实施例的双端口读取传送缓冲器消除这些间隙并且在来自两个事务的数据都可用的情形中,允许来自第二事务的四个数据快照(shot)紧接于来自第一事务的四个数据快照之后传送。这样做的一个益处在于提高或者维持最大带宽的时序收敛(timingclosure)。然而,如果两个脉冲串斩波的4个事务依次出现于相同DRAM端口上并且第一事务在第二层缓冲器中未延迟,则在第一事务结束并且第二事务开始之后仍然可能在共享数据总线上存在间隙。
然而还存在平面图规划的基本方面。最优平面图规划的目的在于尽可能小的总芯片面积和短的延迟时间(即在单元之间的短连线)。同样在考虑具有16或者32个缓冲器(这些缓冲器需要向下汇集(funnel down)成某种输出通道)的例子时,传统方式将尝试将其聚集在一起以具有任何收敛时序的希望。然而,如果数据源分散于芯片,则这会引发严重的问题。这将需要添加流水线级以仅输送去往或者来自缓冲器池的数据。每次传送引起该额外延时(甚至引起在缓冲器中停留100个周期等待在输出通道上轮到它们的事务)。
本发明一个实施例的分层结构实现优化用于电路的平面图规划。考虑使那些32个1层组织为8个缓冲器的4个池,其中每个池位于芯片的拐角附近。现在将4个池汇集成两个第二层缓冲器,每个缓冲器可以位于路径中的中点。最后,两个第二层缓冲器可以向下多路复用或者复用成位于输出通道的单个第3层缓冲器。这实质上将芯片传播延迟隐藏为重载管理器在背景中移动数据这样的操作的部分。本发明的一个实施例是一种用于最小化缓冲器对关键路径的影响从而可以将传播延迟工作聚焦于低延时(快速)路径的方式。
本发明的实施例可以与例如计算机系统这样的系统一起利用并且下文参照该系统来描述。如在此处所用的,系统可以包括任何如下系统,该系统利用处理器和存储器、包括大型机、服务器、个人计算机、因特网装置、数字媒体装置、便携式数字助理(PDA)、便携式音乐/视频播放器和视频游戏控制台。尽管存储器可以位于与利用存储器的处理器相同的芯片上,但是在一些情况下,处理器和存储器可以位于不同芯片(例如在分离模块内的分离芯片或者在单个模块内的分离芯片)上。本发明的备选实施例可以与网络路由、图形卡存储器管理、高速缓存层级结构等一起利用。
尽管下文参照具有多个存储器的处理器(其中每个处理器核使用多个流水线以执行指令)来描述,但是本发明的实施例可以与利用存储器的任何处理器(包括具有单个处理核的处理器)一起利用。一般而言,本发明的实施例可以与任何处理器一起利用并且不限于任何具体配置。
图1是图示用于层级式缓冲器系统的利用本发明一个实施例的计算机11的例子的框图。计算机11包括但不限于大型机、服务器、PC、工作站、膝上型计算机、PDA、掌上设备等。通常,在硬件结构方面,如图1中所示,计算机11包括经由本地接口23通信耦合的处理器21、存储器22和一个或者多个输入和/或输出(I/O)设备(或者外设)。本地接口23例如可以是但不限于如本领域已知的一个或者多个总线或者其他有线或者无线连接。本地接口23可以具有为求简化而省略的附加单元、比如控制器、缓冲器(高速缓存)、驱动器、重发器和接收器以用于实现通信。另外,本地接口23可以包括地址、控制和/或数据连接以用于在前述部件之间实现适当通信。
处理器21是用于执行可以存储于存储器22中的软件的硬件设备。为了提供对数据和指令的快速访问以及对处理器21的更好利用,处理器可以具有多个处理器核41。处理器21可以经过本地接口23从存储器22取回数据。
处理器21可以实质上是在与计算机11关联的若干处理器之中的任何定制或者商业上可用的处理器、中央处理单元(CPU)、数据信号处理器(DSP)或者辅助处理器以及基于半导体的微处理器(形式为微芯片)或者宏处理器。适当的商业上可用微处理器的例子如下:来自美国IBM的PowerPC或者Cell BE微处理器或者Z系列处理器、来自美国Intel公司的80x86或者Pentium系列微处理器、来自Sun Microsystems公司的Sparc微处理器、来自美国Hewlett-Packard公司的PA-RISC系列微处理器或者来自美国Motorola公司的68xxx系列微处理器。可以复制存储器单元22(A-N)。在一个实施例中,存储器单元22(A-N)与本发明的层级式缓冲器系统60中的包括缓冲器管理设施的存储器缓冲器芯片对接。在串行连接拓扑中配置存储器缓冲器芯片,其中经过每个存储器缓冲器芯片转发每个存储器事务并且返回存储器读取数据共享也穿过每个存储器缓冲器芯片的单个上游数据路径。该拓扑允许通过以串行连接方式连接附加2端口存储器缓冲器芯片来实现简单存储器扩展。
存储器22可以包括易失性存储器单元(例如随机访问存储器(RAM,比如动态随机访问存储器(DRAM)、静态随机访问存储器(SRAM)等))和非易失性存储器单元(例如ROM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、可编程只读存储器(PROM)、磁带、光盘只读存储器(CD-ROM)、磁盘、磁碟、盒式磁带、卡带等)中的任一种或者组合。另外,存储器22可以并入电子、磁、光学和/或其他类型的存储介质。注意存储器22可以具有存储器单元22(A-N)的分布式架构,其中各种部件处于相互远离处、但是可以由处理器21访问。
还提出一个备选实施例,其中多个存储器单元22(A-N)直接附接到与层级式缓冲器系统60的本地接口23。层级式缓冲器系统60运用读取数据缓冲器延迟这样的概念以调度每个返回数据事务的精确时序并且以分布方式管理来自多个存储器单元22(A-N)的存储器数据事务。本发明的层级式缓冲器系统60无需在包含于多个存储器单元22(A-N)内的层级式缓冲器系统60之间的显式通信。
存储器22(A-N)中的软件可以包括一个或者多个分离程序,每个程序包括用于实施逻辑功能的可执行指令的有序列表。在图1中所示例子中,存储器22(A-N)中的软件包括适当的操作系统(O/S)31。操作系统31实质上控制对其他计算机程序的执行并且提供调度、输入-输出控制、文件和数据管理、存储器管理以及通信控制以及有关服务。
适当的商业上可用操作系统31的例子的非穷尽列举如下:(a)可从Microsoft公司获得的Windows操作系统;(b)可从Novell公司获得的Netware操作系统;(c)可从Apple Computer公司获得的Macintosh操作系统;(e)可从多家销售商如Hewlett-Packard公司、Sun Microsystems公司和AT&T公司购买获得的UNIX操作系统;(d)Linux操作系统(在因特网上容易获得的免费软件);(e)可从IBM公司获得的z/OSTM或者z/VMTM操作系统;(f)可从WindRiver Systems公司获得的运行期Vxworks操作系统;或者(g)基于装置的操作系统、比如实施于手持计算机或者个人数字助理(PDA)中的操作系统(例如可从Symbian公司获得的Symbian OS、可从Palm Computing公司获得的PalmOS和可从Microsoft公司获得的Windows CE)。
I/O设备可以包括输入设备、例如但不限于鼠标24、键盘25、扫描仪(未示出)、麦克风(未示出)等。另外,I/O设备还可以包括输出设备、例如但不限于打印机(未示出)、显示器26等、最后,I/O设备还可以包括传达输入和输出的设备、例如但不限于NIC或者调制器/解调器27(用于访问远程设备、其他文件、设备、系统或者网络)、射频(RF)或者其他收发器(未示出)、电话接口(未示出)、桥接器(未示出)、路由器(未示出)等。
如果计算机11是PC、工作站、智能设备等,则存储器22中的软件还可以包括基本输入输出系统(BIOS)(为求简化而省略)、BIOS是在启动时初始化和测试硬件、启动操作系统31并且支持在硬件设备之间传送数据的基本软件例程集。BIOS存储于诸如ROM、PROM、EPROM、EEPROM等某类只读存储器中,从而可以在激活计算机11时实现BIOS。
当计算机11操作时,处理器21被配置成执行在存储器22内存储的软件、传达去往和来自存储器22的数据并且通常控制计算机11的按照软件的操作。操作系统31和任何其他程序由处理器21整体或者部分读取、可能缓冲于处理器21内、继而被执行。
图2是描绘根据本发明一个实施例的层级式缓冲器系统60的架构例子的框图。为求简化,图2描绘层级式缓冲器系统60、存储器22(A-N)和本地接口23并且参照这些部件来描述。在一个备选实施例中,层级式缓冲器系统60被放置于高速缓存存储器42与处理器21的单个处理器核41之间。在一个实施例中,各处理器核41可以相同(例如包含相同层级式缓冲器系统60)。在另一实施例中,每个处理器核41可以共享单个层级式缓冲器系统60。
从第一层数据缓冲器61(a-c)经过第二层传送缓冲器65向存储器数据通道59(即本地接口23)上移动数据。在优选实施例中,存储器数据通道59可以是任何数据总线。存储器数据通道59可以仅为向请求数据的任何单元返回的共享数据总线。请求数据的单元可以例如是但不限于处理器单元、另一存储单元、外设等。数据移动由一起工作的多个控制有限状态机管理。第一层数据缓冲器61(a-c)由读取数据缓冲器延迟有限状态机71(a-c)控制,该状态机管理使用层级式选择器63(a-b)和选择器64(a-d)来管理从第一层数据缓冲器61(a-c)向第二层传送缓冲器65中卸载读取数据。在所示例子实施中,利用三个读取数据缓冲器延迟有限状态机71(a-c)(相应一个状态机用于每个对应物理第一层数据缓冲器(61a-c))和第四读取数据缓冲器延迟有限状态机71d。在读取数据绕过第一层数据缓冲器61(a-c)并且从快速路径分级寄存器62向第二层传送缓冲器65中直接加载的情形中,第四读取数据缓冲器延迟有限状态机71d管理向第二层传送缓冲器65中输入读取数据业务。下文将描述这种“排空”路径。
三个读取数据缓冲器延迟有限状态机71(a-c)各自与具体第一层数据缓冲器(61a-c)相联系,并且控制从该第一层数据缓冲器(61a-c)卸载数据。用于层级式选择器63(a-b)和选择器64(a-c)的来自仲裁块72的控制器信号81和82提供对从该第一层数据缓冲器(61a-c)向第二层传送缓冲器65中卸载数据的控制。信号83提供对向第二层传送缓冲器65加载数据的控制。在优选实施例中,仲裁块72仅将来自每个读取数据缓冲器延迟有限状态机71(a-c)的控制信号一起异或以形成向层级式选择器63(a-b)、选择器64(a-c)和第二层传送缓冲器65输出的控制信号。在优选实施例中,没有向一个读取数据缓冲器延迟有限状态机71(a-c)的控制中建立的与另一状态机相比的优先级。然而在备选实施例中,可以向读取数据缓冲器延迟有限状态机71(a-c)添加优先级以求附加保护。仲裁块72还执行检错功能以校验防止读取数据缓冲器延迟有限状态机71(a-c)试图向同时引起数据冲突的第二层传送缓冲器65加载数据。
在优选实施例中,读取数据缓冲器延迟有限状态机71(a-d)在DRAM时钟频率操作并且按照DRAM时钟增量管理延迟。读取数据缓冲器延迟有限状态机71(a-d)操作以使它们在向可用第一层数据缓冲器61(a-c)中加载新读取数据传送时同时向第二层数据传送缓冲器65卸载数据。在优选实施例中,这通过利用每个读取数据缓冲器延迟有限状态机71(a-c)内的队列系统来追踪第一层数据缓冲器61(a-c)中的每次读取数据传送的当前和将来缓冲器等待时间和数据脉冲串长度来实现。使用队列是因为可以在接收用于第一请求的数据之前向系统发布多个读取请求。读取数据缓冲器延迟有限状态机71(a-d)在它等待处理正在处理第一请求指示存储用于后续请求的信息。当完成第一请求时,如果存在下一请求则从队列的前端获取下一请求。
一旦从第一层数据缓冲器61(a-c)卸载数据,就从读取数据缓冲器延迟有限状态机71(a-d)向三个数据块控制器(即块有限状态机73(a-c))之一传递控制,这些控制器管理第二层传送缓冲器65内的数据并且控制向块分级寄存器68的数据串行化。类似于读取数据缓冲器延迟有限状态机71(a-d),块有限状态机73(a-c)能够在数据处于第二层传送缓冲器65中之时管理读取数据缓冲器延迟,并且在具体时间向存储器数据通道59上卸载数据,以防止在选择器66与选择器67之间的共享通道上的数据冲突。这不仅防止在选择器66与67之间的冲突,而且使用读取数据缓冲器延迟有限状态机71(a-d)也防止在多个缓冲器控制器之间(例如在多个存储器缓冲器芯片之间)的共享总线上的冲突。仲裁75由块有限状态机73(a-c)以及控制选择器66和选择器67管理。使用的块有限状态机73(a-c)的数目与实施的第一层数据缓冲器61(a-c)的数目有关。在所图示的例子中,三个块有限状态机73(a-c)以轮循方式操作并且未与具体第一层数据缓冲器61(a-c)相联系。三个块有限状态机73(a-c)中的每个状态机均可以独立控制从第二层传送缓冲器65向存储器数据通道59上的数据串行化。这样,必须在从第一层数据缓冲器61(a-c)向第二层传送缓冲器65中卸载时注意检测并避免冲突。读取数据缓冲器延迟有限状态机71(a-d)可以针对给定事务向数据块控制器(即块有限状态机73(a-c))传导协调信号以检测和避免在第二层传送缓冲器65与块分级寄存器68之间的冲突。
块分级寄存器68中的数据继而被移动通过毒性(poison)注入器69,此后被置于存储器数据通道59上。在出错情形的情况下,层级式缓冲器系统60使用特殊循环冗余代码(CRC)以向主机传回已经出现故障并且请求的读取数据未即将来临。这允许主机尝试恢复过程,比如重发失败的读取命令或者通知操作系统解除存储器空间分配并且将对其他物理存储器位置的未来读取重定向。在优选实施例中,层级式缓冲器系统60运用存储器数据通道59(59)上的80位宽的数据块。两个连续80位的块代表单个帧。在那些160位之中,144位是实际存储器数据而剩余16位用于循环冗余代码(CRC)。CRC在本领域中众所周知,并且存在可以应用于保护144位发送的大量代码。优选实施例运用能够检测任何单个实体通道故障的代码和在帧内的多达4位的任何随机位翻转。80位全零块被认为是有效空闲模式。通过代之以反转帧内的两个80位的块的首位和末位,这产生毒性CRC代码。毒性CRC代码是一种特殊模式,其使得如果出现发送错误则位翻转将造成真正的CRC错误。因此,可以使用毒性CRC代码作为用于向主机指示已经出现问题并且无法成功处理读取命令的消息。
层级式缓冲器系统60运用具有对应设施的毒性注入器69,这些设施监视层级式缓冲器系统600内的错误指示符。在检测到错误指示符时,毒性注入器69解析来自块分级寄存器68的任何未决传送,并且向现有80位数据模式叠加毒性CRC模式。另外,层级式缓冲器系统60包含帧边界检测逻辑,该逻辑保证毒性注入总是始于新帧的开始。在一个实施例中运用的CRC代码使得第一80位的块中的随机数据模式(继而为第二80位的块中的毒性CRC模式)具有产生160位数据这样的统计可能性,该数据看起来为具有良好CRC的有效数据。为了防止误导主机认为接收的帧包含有效数据这样的任何可能性,层级式缓冲器系统60将允许传送中的帧完成。在下一帧边界,毒性注入器69将叠加毒性模式并且向请求数据的单元通知故障。优选实施例运用如下系统范围内的恢复策略,该策略允许如下命令重试队列,该队列的深度足以允许毒性注入器69等待下一帧边界以插入毒性CRC模式。
使用块有限状态机73(a-c)允许在向DRAM数据向第一层数据缓冲器61(a-c)、第二层传送缓冲器65中的加载与从第二层传送缓冲器65向存储器数据通道59上的卸载之间使用多种时钟比(即齿数比)。在优选实施例中,块有限状态机73(a-c)在比读取数据缓冲器延迟有限状态机71(a-c)更高的时钟频率操作并且允许子DRAM时钟周期读取缓冲器延迟用来提供在独立读取数据传送之间的无缝转变。在一个备选实施例中,块有限状态机73(a-c)在读取数据缓冲器延迟有限状态机71的时钟频率操作。
在数据传送中使用的第三控制器是重载管理器,该管理器负责监视第二层传送缓冲器65并且向读取数据缓冲器延迟有限状态机71(a-c)信令通知第二层传送缓冲器65已经变得可用并且可以被加载来自第一层数据缓冲器61(a-c)的数据。这一“及早”卸载允许尽可能快地为后续数据释放第一层数据缓冲器61(a-c)并且保证完全利用第二层传送缓冲器65。为了辅助跟踪贯穿数据流的个别读取数据操作并且防止以不正确顺序卸载第一层数据缓冲器61(a-c),向每次读取数据传送分配id。重载管理器74跟踪已经卸载哪些读取id并且接着将从每个第一层数据缓冲器61(a-c)卸载哪些读取id。当读取数据缓冲器延迟有限状态机71向块有限状态机73(a-c)传送控制时,也传送这一id。当块有限状态机73(a-c)向重载管理器74信令通知卸载第二层传送缓冲器时,传送id作为这一信令的部分来传达,从而重载管理器74可以更新其与哪个传送id是应当移入第二层传送缓冲器65中的下一传送id有关的信息并且相应地信令通知读取数据缓冲器延迟有限状态机71(a-d)。
在本发明的一个实施例中,示出快速路径分级寄存器62收敛时序。在一个优选实施例中,快速路径分级寄存器62为分级寄存器。在一个备选实施例中,如果缺少快速路径分级寄存器62并且数据从源域56直接去往第二层传送缓冲器65,则提供层级式缓冲器系统60的系统和方法高效操作。在又一备选实施例中,提供层级式缓冲器系统60的系统和方法利用多个快速路径分级寄存器62以便收敛时序。
为了较早地卸载第一层数据缓冲器61(a-c),层级式缓冲器系统60利用重载管理器74。重载管理器74这一实体主动管理从第一层数据缓冲器61(a-c)向第二层传送缓冲器65的数据流动以保证数据在轮到它出现于存储器数据通道59上时在第二层传送缓冲器65中就绪。这是与现有技术的关键区分因素,现有技术将通常根据数据结构以三种方式之一操作:(a)简单地让数据停留于第一层数据缓冲器61(a-c)中直至延迟到期(达到0)。这称为被动缓冲器流水线,因为即使空间在第二层传送缓冲器65中可用,它仍然在数据移动之前空等直至延迟到期。(b)等待直至第二层传送缓冲器65清空、继而将数据从第一层数据缓冲器61(a-c)移向第二层传送缓冲器65。这一方法完全不依赖于延迟计时器。这在具有对数据的要求递送时间的架构中不能起作用。它仅能被用于如下环境中,数据在该环境中异步地或者以类似于现有技术的结构移动。换而言之,第二层传送缓冲器65可能一次在5个周期中释放,继而数据从第一层数据缓冲器61(a-c)移动。然而,可能下一次需要50个周期来释放,但是系统架构并不关注该可变时间,它仅要求操作有序完成。(c)使用(a)和(b)的组合以如果第二层传送缓冲器65在延迟到期之前腾空,则尝试将数据及早移向第二层传送缓冲器65,但是如果不是,则回到被动工作模式并且仅等待直至延迟到期。这样做的问题在于依赖于读取序列及其关联传送长度,将存在它无法坚持无缝传送规则这样的情况,该规则规定:一旦数据已经缓冲并且开始向主机发回,所有剩余数据的发送都将是无缝的并且出现于正确周期。
图3是图示根据本发明一个实施例的层级式缓冲器系统60的操作例子的流程图。流程图示出在经过缓冲器层级式移动数据时用于数据的控制路径。流程图示范基于预定读取延迟、缓冲器可用性和事务大小的用于单个事务(即脉冲串长度8或者4)的可能数据路径。
在步骤101,层级式缓冲器系统60计算第一数据脉冲串必须在存储器数据通道59上返回的精确递送时间。优选实施例运用一种包括初始帧延时(IFL)的方法,该IFL指示从命令发起到请求者看见前导数据脉冲串到达的全部传播时间。在系统初始化序列期间计算这一往返延迟一次并且本地存储以供参考。在无需缓冲的总线不活跃窗口期间,初始帧延时为计数器建立如下基线,该基线被进一步调节以考虑数据流内的DRAM访问时间和内部延时。在接收读取命令时加载计数器并且开始递减计数器。计数器指示必须在存储器数据通道59上发送第一数据脉冲串之前的剩余时间。
与初始读取命令邻近到达的任何后续读取命令将在等待存储器数据通道59变得可用之时引起附加延迟。通过比较当前事务的计数器的值与建立的基线来确定这一附加延迟。差值指示为了等待存储器数据通道59变得可用而必须缓冲第二事务的时间量。还应当注意,该读取数据缓冲器延迟计算还包括调整以考虑上游传送的脉冲串长度,因为该传送将使存储器数据通道59忙碌持续多个周期。要求缓冲(即具有主动读取数据缓冲延迟)的后续读取请求也将具有随着每个流逝周期递减读取数据缓冲器延迟计数的计数器。在数据从第一层缓冲器移向第二层缓冲器时,也在读取数据缓冲器延迟有限状态机71(A-D)与块有限状态机73(A-D)之间传递剩余读取数据缓冲器延迟。
最后,在串行连接拓扑的情况下,层级式缓冲器系统60可以接收针对一个存储器单元22A的读取请求而第二存储器单元2N当前正忙于存储器数据通道59。在这种情形下,层级式缓冲器系统60还包含如下设施,这些设施用于存储用于附接到串行连接的每个存储器单元22(A-N)的初始帧延时,从而层级式缓冲器系统60的每个实例可以用分布方式计算和追踪所有未完成事务的递送时间而无需在各存储器单元22(A-N)之间的任何相互通信。以这种方式,层级式缓冲器系统60管理第二读取请求并且将侦听第一读取请求从而理解层级式缓冲器系统60以其他(远程)存储器源为目标、计算用于第一请求的递送时间、继而将其作为读取数据缓冲器延迟应用于第二请求递送时间计算。因此,将读取数据缓冲器延迟确定为由于本地或者远程源利用存储器数据通道59、所以为了等待通道可用而必须缓冲一个事务的时间量。描述用于计算精确递送时间的方法是为了举例说明一种为读取数据缓冲器延迟有限状态机71(A-D)和块有限状态机73(A-D)建立读取数据缓冲器延迟的手段。在共同转让和共同未决的美国专利申请(代理案号为POU920080110)(标题为“Automatic Read Data Flow Control In A CascadeInterconnect Memory System”,序列号为12/166,226,于2008年7月1日提交)中描述用于计算精确递送时间的装置和方法。应理解存在用于为共享数据总线建立精确递送时间的其他手段并且本发明并不排除使用除了这里描述的手段之外的手段。一个备选实施例的一个例子是使用读取命令内的对用于事务的所需递送时间进行指定的字段。这种方式允许总线或者存储器控制器建立具体流程控制和总线的利用。无论用来计算递送时间的方法和任何关联读取数据缓冲器延迟如何,本发明提出使用这一要素以控制数据经过层级式缓冲器系统60的移动。
在步骤103,层级式缓冲器系统60等待接收处理器21所请求的数据。一旦已经接收处理器21所请求的数据,向每个事务分配ID,继而层级式缓冲器系统60在步骤105校验以查看延迟计数是否少于每一DRAM周期的块计数。如果在步骤105确定延迟计数少于每一DRAM周期的块计数,则层级式缓冲器系统60的操作转向步骤127。然而,如果在步骤105确定延迟计数不少于每一DRAM周期的块计数,则层级式缓冲器系统60继而在步骤107确定第二层传送缓冲器65是否可用。如果在步骤107确定第二层传送缓冲器65可用,则层级式缓冲器系统60的操作转向步骤125。然而,如果确定第二层传送缓冲器65不可用,则层级式缓冲器系统60在步骤109中将数据存储于第一层数据缓冲器61(a-c)中。这假设有第一层数据缓冲器61(a-c)可用,否则存在缓冲器溢出条件。
在步骤111确定第二层传送缓冲器65是否已满。如果确定第二层传送缓冲器65已满,则层级式缓冲器系统60转向步骤117。然而,如果在步骤111确定第二层传送缓冲器65未满,则在步骤113确定在第一层数据缓冲器61(a-c)中的序列中的下一数据事务是否为脉冲串斩波。当数据事务大小为第一层数据缓冲器61(a-c)或者第二层传送缓冲器65的容量的一半时,在第一层数据缓冲器61(a-c)中的数据为脉冲串载波。在这种情况下,缓冲器为一半(1/2)填满。如果在113确定第一层数据缓冲器61(a-c)中的数据为脉冲串斩波,则层级式缓冲器系统60的操作转向步骤119。然而,如果在步骤111确定第一层数据缓冲器61(a-c)中的数据并非脉冲串斩波,则刚好在第二层传送缓冲器65卸载时间之前,在步骤115处延迟层级式缓冲器系统60的操作。此延迟由读取数据缓冲器延迟有限状态机71(a-c)和仲裁块72来执行。在优选实施例中,块有限状态机73(A-D)通过基于下一线中的事务的内容变化何时向重载管理器74信令通知它在向共享数据总线59上腾空第二层缓冲器来执行延迟。重载管理器74根据第二层传送缓冲器65是半满还是全满在不同时间发布及早卸载第一层数据缓冲器61(a-c)的请求。层级式缓冲器系统60的操作继而跳转到步骤119。
在步骤117,层级式缓冲器系统60的操作延迟从第一层数据缓冲器61(a-c)向第二层传送缓冲器65中卸载数据,直至第二层传送缓冲器65主动地开始向存储器数据通道59卸载数据。一旦数据在第一层数据缓冲器61(a-c)中,存在可以将其移动到第二层传送缓冲器65的两种优选方式。在第一优选方式中,读取数据缓冲器延迟有限状态机71(a-c)计数自然地到期(即计数降至每一DRAM时钟周期的读取数据缓冲器延迟步数阈值)。在第二优选方法中,重载管理器74指示第二层传送缓冲器65可用并且可以被加载。如果出现这一“及早”指示,则它将出现在计数自然地到期之前。用于向第二层传送缓冲器65中卸载第一层数据缓冲器61(a-c)的这一信号将根据第二层传送缓冲器65的当前内容在2个不同时间出现。如果第二层传送缓冲器65保持半块(即BL4)事务,则这意味着在第二层传送缓冲器65中有2个自由时隙可用并且重载管理器74可以比第二层传送缓冲器65全满的情况下提前几个周期向它信令通知从第一层数据缓冲器61(a-c)卸载。这是因为第二层传送缓冲器65的2个空时隙可以在任何数据实际上开始从第二层传送缓冲器65的其他2个满时隙卸载之前开始被填充。在第二层传送缓冲器65为满的情况下,层级式缓冲器系统60必须等待直至第一层数据缓冲器61(a-c)的时隙已经至少在向它填充第一层数据缓冲器61(a-c)的新数据之前被卸载。
在步骤103分配的事务ID与读取数据延迟一起用来保证以序列方式处理事务并且以轮循方式处理第一层数据缓冲器61(a-c)。重载管理器74维持将向第二层传送缓冲器65中加载的下一待卸载事务ID的流水记录(running tally)。当读取数据缓冲器延迟有限状态机71(a-c)向第二层传送缓冲器65中卸载它们的数据时,它们向重载管理器73指示事务ID,使得重载管理器74可以更新其与哪个ID是将从每个第一层数据缓冲器61(a-c)卸载的下一ID有关的记录。每当块有限状态机73(a-c)卸载第二层传送缓冲器65时,其还将被卸载的ID通知给重载管理器74。这确保了依次处理事务并且无一遗漏。
在步骤119,层级式缓冲器系统60的操作确定它是否能够及早卸载第一层数据缓冲器61(a-c)。如果在步骤119确定可以及早卸载第一层数据缓冲器61(a-c),则层级式缓冲器系统60的操作继而转向步骤127。关于是否及早卸载的决定由重载管理器74和块有限状态机73(a-c)完成。当块有限状态机73(a-c)向重载管理器74通知第二层缓冲器正在或者将要卸载时,重载管理器74确定是否可以向下一待卸载的第一层缓冲器信令通知“及早”卸载其内容。此决策基于第一层缓冲器中是否仍有其数据以及它是否已经开始或者将要自然地开始卸载。如果它具有可用数据但是尚未开始自然地卸载,则重载管理器74将向它信令通知及早卸载。然而,如果在步骤119确定不能及早卸载第一层数据缓冲器61(a-c),则层级式缓冲器系统60的操作在步骤121确定延迟计数是否少于每一DRAM周期的时钟计数。如果在步骤121确定延迟计数不少于每一DRAM周期的时钟计数,则层级式缓冲器系统60的操作在步骤121递减延迟计数并且返回以重复步骤109-121。然而,如果在步骤121确定延迟计数少于每一DRAM周期的块计数,则在步骤127将第一层数据缓冲器61(a-c)中的数据存储于第二层传送缓冲器65中。
在步骤129,确定延迟计数是否等于零。如果在步骤127确定延迟计数不等于零,则层级式缓冲器系统60的操作在步骤131递减延迟计数并且返回以重复步骤127-129。然而,如果在步骤129确定延迟计数等于零,则层级式缓冲器系统60跳转到步骤137。
在步骤133,在快速路径分级寄存器62中将处理器21请求的数据存储1个周期。在步骤135,将处理器21请求的存储于第一快速分级寄存器62中的数据存储于第二层传送缓冲器65中。
在步骤137,将第二层传送缓冲器65中的数据存储在块分级寄存器68中。在步骤139,经过毒性注入器69将块分级寄存器68中的数据移动到存储器数据通道59上。在步骤141,层级式缓冲器系统60的操作等待接收用于处理器21的下一被请求数据。在接收用于处理器21的被请求数据之后,层级式缓冲器系统60的操作继而返回以重复步骤103-141。
图4A-图4D是描绘根据本发明一个实施例的层级式缓冲器系统100的操作例子的时序图。
在图4A中图示用于读取缓冲器延迟为零的排空读取的例子时序图。在存储器数据通道59在数据从DRAM返回时空闲和/或将空闲的情形中,不需要在第一层数据缓冲器61(a-c)之一中临时存储数据。在这种情况下,读取数据将如在203所示经由流水线化寄存器(即快速路径分级寄存器62)绕过第一层数据缓冲器61(a-c)并且如在204所示由排空读取数据缓冲器延迟有限状态机71(a-d)向第二层传送缓冲器65中直接加载。同时,如在205所示将调用3个块有限状态机73(a-c)之一以立即开始从第二层传送缓冲器65向存储器数据通道59上的数据串行化。在该例子中,第二层传送缓冲器65充当简单分级寄存器。这允许以最小延时经过该结构移动排空读取数据而数据不会在缓冲器中停留多于单个周期。
在图4B中图示用于缓冲器延迟不为零的排空读取的例子时序图。由于缓冲器结构旨在用于在级联互连存储器系统(其中存在从多个缓冲器设备向存储器控制返回的共同数据通道)中使用,所以有可能具有如下情况:读取数据可以向空的第二层传送缓冲器65中加载、但是不能立即从第二层传送缓冲器65串行化输出并且置于存储器数据通道59上(即通道在使用中)。在该情形中,数据将再次绕过第一层数据缓冲器61(a-c)并且向第二层传送缓冲器65中直接加载。然而,在这种情况下,读取数据缓冲器延迟有限状态机71(a-c)还将向块有限状态机73(a-c)提供非零的缓冲器延迟等待时间。块有限状态机73(a-c)将在从第二层传送缓冲器65向存储器数据通道59上卸载读取数据之前等待这一缓冲器延迟。如果在这一数据在第二层传送缓冲器65中等待的同时请求后续读取操作,则来自那些操作的数据将开始填充第一层读取数据缓冲器。
在图4C中图示用于从第一层缓冲器及早卸载的用于已缓冲读取的例子时序图。为了最大化数据吞吐量并且保证经过所述层级式缓冲器系统60按恰当固定时序返回数据,注意仅在必要时利用第一层数据缓冲器61(a-c),并且尽可能快地从它们向第二层传送缓冲器65卸载数据、由此释放它们用于后续读取操作。当块有限状态机73(a-c)开始将其读取数据从第二层传送缓冲器65向存储器数据通道59上上传时,它向重载管理器74信令通知第二层传送缓冲器65可用并且提供用于刚才卸载的数据传送的id。如果在第一层数据缓冲器61(a-c)中存在等待卸载的数据,则重载管理器74继而将向下一行中的读取数据缓冲器延迟有限状态机71(a-c)信令通知将其数据从第一层数据缓冲器61(a-c)向第二层传送缓冲器65中卸载。这使读取数据缓冲器延迟有限状态机71(a-c)及早(也就是在等待计数已经达到每一DRAM周期的步数阈值之前)将其读取数据向第二层传送缓冲器65中加载。继而,读取数据缓冲器延迟有限状态机71(a-c)调用接下来可用的块有限状态机73(a-c)并且向块有限状态机73(a-c)传送id和剩余等待计数、报数(count off)而且从存储器通道上卸载数据。为了最大化第一层数据缓冲器61(a-c)的可用性,经常在同时向存储器数据通道59上卸载先前读取数据的同时向第二层传送缓冲器65加载新数据。
在图4D中图示例子时序图,其中可以从两个源同时加载第二层传送缓冲器65并且共享数据总线59将可用于即时使用。在这种场景中,从端口A和端口B这2个位置提供读取数据。来自端口A的事务为脉冲串斩波4事务而在端口B上的事务为BL8。虽然同时出现,但是来自端口A的读取在共享数据总线上被给予优先级并且将首先被发回。这将使事务A利用快速路径分级寄存器并且向第二层传送缓冲器65的上半部分中加载而且将能够立即(即读取延迟=0)发往块分级寄存器。事务B将需要在向第二层传送缓冲器65中加载并且被分配4个块的读取延迟之前存入第一层数据缓冲器之一中。由于第二层传送缓冲器65将在被加载来自事务A的数据时仅为半满并且将立即向时钟分级寄存器中卸载,第二层传送缓冲器65的下半部分可以开始立即被加载来自事务B的数据。从第二层传送缓冲器65的较低时隙开始并且在缓冲器的已经卸载的较高时隙中最终重写来自事务A的数据来依次加载来自事务B的数据。
在图4E中图示包括来自第一层数据缓冲器61(a-c)的排空读取、缓冲读取和正常卸载的示例时序图。如上文所述,如果在第二层传送缓冲器65在使用或者将被使用时请求后续读取操作,则从该操作返回的数据将被分配非零数据缓冲器延迟时间并且存储于第一层数据缓冲器61(a-c)之一中。当数据被加载到第一层数据缓冲器61(a-c)中时,调用它对应的读取数据缓冲器延迟有限状态机71(a-c)。读取数据缓冲器延迟有限状态机71(a-c)将在DRAM时钟周期中对读取缓冲器延迟等待时间倒计数。由于读取缓冲器延迟按照子DRAM时钟周期粒度操作,所以读取数据缓冲器延迟有限状态机71(a-c)自动调用接下来可用的块有限状态机73(a-c)并且一旦读取缓冲器延迟计数已经达到每一DRAM周期的延迟步数阈值,就将其数据向第二传送缓冲器65中卸载。在调用块有限状态机73(a-c)时向它传递剩余读取缓冲器等待时间(即残留),并且块有限状态机73(a-c)将在从第二层传送缓冲器65向存储器数据通道59上卸载数据之前等待剩余残留时间。在该例子中,残留时间为0并且读取数据在第二层传送缓冲器65中未被延迟附加时间。在优选实施例中,第二层传送缓冲器65具有两个加载端口。
应当强调本发明的上述实施例(具体为任何“优选”实施例)只是仅为了清楚理解本发明的原理而阐述的可能实施例子。可以对本发明的上述实施例进行诸多变化和修改而实质上并不脱离本发明的精神实质和原理。所有这样的修改和变化旨在于此包含在本公开内容和本发明的范围内并且受所附权利要求所保护。
Claims (20)
1.一种控制用于多个存储器源的层级式缓冲器系统中的数据条目的方法,所述方法包括:
管理缓冲器以允许数据从多个第一层缓冲器流过第二层传送缓冲器,其中,所述多个第一层缓冲器和所述第二层传送缓冲器在一个第一时钟上操作;
计算所述第二层传送缓冲器中的所述数据的精确递送时间;以及
在计算出的所述精确递送时间将所述第二层传送缓冲器中的所述数据递送到在一个第二时钟上操作的共享数据总线上,其中,所述第一时钟与所述第二时钟互相之间同步。
2.根据权利要求1所述的方法,还包括:
将初始帧延时计算用于所述精确递送时间的所述计算。
3.根据权利要求1所述的方法,还包括:
使用读取数据缓冲器延迟以用于将所述数据保持在所述第一层缓冲器中,直至所述数据可以从所述第一层缓冲器被移动到所述第二层传送缓冲器并且从所述第二层传送缓冲器被移动到所述共享数据总线上的时刻。
4.根据权利要求3所述的方法,还包括:
响应于所述读取数据缓冲器延迟到期,被动地将数据移动到所述第二层传送缓冲器。
5.根据权利要求3所述的方法,还包括:
一旦所述第二层传送缓冲器中的时隙可用,主动地将数据移动到所述第二层传送缓冲器。
6.根据权利要求1所述的方法,其中所述第二层传送缓冲器可以操作为传统先进先出缓冲器,并且还包括由所述第二层传送缓冲器充当分级寄存器的能力,并且其中所述第二层传送缓冲器提供对所述数据的同时加载以用于以最小延时递送包括多个数据传送长度的所述数据。
7.根据权利要求1所述的方法,还包括:
采用多个时钟比,用于将所述第一层缓冲器和第二层传送缓冲器与所述共享数据总线同步。
8.根据权利要求7所述的方法,还包括:
在返回的数据流中插入空闲间隙,以便提供所述多个时钟比之间的所需速度匹配同时维持优选数据传送速率。
9.根据权利要求7所述的方法,还包括:
在不插入空闲间隙的情况下,以无缝模式中返回来自多个事务的经缓冲数据。
10.根据权利要求1所述的方法,还包括:
当所述共享数据总线可用并且无需缓冲时,用快速路径发送数据以最小化延时。
11.根据权利要求1所述的方法,还包括:
在数据帧边界上注入毒性数据模式,以提示存储器控制器制定系统恢复策略。
12.一种集成电路器件,包括:
存储器核;
共享数据总线;
从所述存储器核接收数据的多个第一层缓冲器,其中,所述第一层缓冲器在一个第一时钟上操作;以及
接收来自第一层缓冲器的数据并在计算出的精确递送时间将所述数据递送到在一个第二时钟上操作的所述共享数据总线上的第二层传送缓冲器,其中,所述第二层缓冲器在第一时钟上操作,所述第一时钟与所述第二时钟之间同步。
13.根据权利要求12所述的集成电路器件,还包括:
多个读取数据缓冲器延迟缓冲器,用于将所述数据保持在所述第一层缓冲器中,直至所述数据可以从所述第一层缓冲器被移动到所述第二层传送缓冲器并且从所述第二层传送缓冲器被移动到所述共享数据总线上的时刻,其中所述多个读取数据缓冲器延迟缓冲器使用初始帧延时计算以用于计算所述第一层缓冲器中的所述数据的精确递送时间而无需标记、令牌或者提示机制。
14.根据权利要求13所述的集成电路器件,其中响应于所述读取数据缓冲器延迟到期时以及一旦所述第二层传送缓冲器中的时隙可用,所述多个第一层缓冲器中的所述数据被动地移动到所述第二层传送缓冲器。
15.根据权利要求12所述的集成电路器件,其中所述第二层传送缓冲器可以操作为传统先进先出缓冲器,并且还包括由所述第二层传送缓冲器充当分级寄存器的能力,并且其中所述第二层传送缓冲器提供对所述数据的同时加载以用于以最小延时递送包括多个数据传送长度的所述数据。
16.根据权利要求12所述的集成电路器件,其中:
采用多个时钟比,用于将所述第一层缓冲器和第二层传送缓冲器与所述共享数据总线同步,其中所述多个时钟比中的至少一个时钟比在返回数据流中插入空闲间隙,以提供所需速度匹配同时维持优选数据传送速率。
17.一种处理器设备,包括:
包含数据的高速缓存核;
共享数据总线;
电路,配置用于:
管理缓冲器以允许所述数据从多个第一层缓冲器流过第二层传送缓冲器,其中,所述多个第一层缓冲器和所述第二层传送缓冲器在一个第一时钟上操作;以及
在计算出的精确递送时间将所述数据递送到在一个第二时钟上操作的共享数据总线上,其中,所述第一时钟与所述第二时钟互相之间同步。
18.根据权利要求17所述的处理器设备,还包括:
多个读取数据缓冲器延迟缓冲器,用于将所述数据保持在所述第一层缓冲器中,直至所述数据可以从所述第一层缓冲器被移动到所述第二层传送缓冲器并且从所述第二层传送缓冲器被移动到所述共享数据总线上的时刻,其中所述多个读取数据缓冲器延迟缓冲器使用初始帧延时计算以用于计算所述第一层缓冲器中的所述数据的精确递送时间而无需标记、令牌或者提示机制。
19.根据权利要求17所述的处理器设备,其中所述第二层传送缓冲器可以操作为传统先进先出缓冲器,并且还包括由所述第二层传送缓冲器充当分级寄存器的能力,并且其中所述第二层传送缓冲器提供对所述数据的同时加载以用于以最小延时递送包括多个数据传送长度的所述数据。
20.根据权利要求17所述的处理器设备,其中:
采用多个时钟比,用于将所述第一层缓冲器和第二层传送缓冲器与所述共享数据总线同步,其中所述多个时钟比中的至少一个时钟比在返回数据流中插入空闲间隙,以提供所需速度匹配同时维持优选数据传送速率。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/876,512 | 2010-09-07 | ||
US12/876,512 US8635390B2 (en) | 2010-09-07 | 2010-09-07 | System and method for a hierarchical buffer system for a shared data bus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102402493A CN102402493A (zh) | 2012-04-04 |
CN102402493B true CN102402493B (zh) | 2015-03-25 |
Family
ID=45771485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110265775.8A Active CN102402493B (zh) | 2010-09-07 | 2011-09-01 | 用于共享数据总线的层级式缓冲器系统的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8635390B2 (zh) |
JP (1) | JP5764004B2 (zh) |
CN (1) | CN102402493B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120137102A1 (en) * | 2010-11-30 | 2012-05-31 | Ramkumar Perumanam | Consumer approach based memory buffer optimization for multimedia applications |
EP2979271B1 (en) * | 2013-03-25 | 2019-06-19 | Hewlett-Packard Enterprise Development LP | Memory device having error correction logic |
CN104123234B (zh) | 2013-04-27 | 2017-04-05 | 华为技术有限公司 | 内存访问方法及内存系统 |
DE102015103809B3 (de) * | 2015-03-16 | 2016-07-07 | Intel IP Corporation | Verfahren und Vorrichtung zum Schützen eines Datentransportblocks gegen Speicherfehler und Übertragungsfehler |
CN105049454A (zh) * | 2015-08-27 | 2015-11-11 | 桂林理工大学 | 带稳定照明功能的rs232与vlc通信协议转换装置 |
CN107402805A (zh) * | 2016-05-18 | 2017-11-28 | 中国科学院微电子研究所 | 一种多级流水线并行计算的缓冲方法及系统 |
WO2018173164A1 (ja) * | 2017-03-22 | 2018-09-27 | 株式会社日立製作所 | データ処理システム |
US10698440B2 (en) | 2018-01-10 | 2020-06-30 | International Business Machines Corporation | Reducing latency of memory read operations returning data on a read data path across multiple clock boundaries, to a host implementing a high speed serial interface |
US10860215B2 (en) * | 2018-06-18 | 2020-12-08 | Arm Limited | Delay masking action for memory access requests |
CN114115439A (zh) | 2020-08-26 | 2022-03-01 | 长鑫存储技术有限公司 | 存储器 |
CN114115437B (zh) | 2020-08-26 | 2023-09-26 | 长鑫存储技术有限公司 | 存储器 |
CN114115440B (zh) | 2020-08-26 | 2023-09-12 | 长鑫存储技术有限公司 | 存储器 |
CN114115441B (zh) | 2020-08-26 | 2024-05-17 | 长鑫存储技术有限公司 | 存储器 |
US11533064B2 (en) * | 2020-11-09 | 2022-12-20 | Micron Technology, Inc. | Error correcting code poisoning for memory devices and associated methods and systems |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6721796B1 (en) * | 1999-07-22 | 2004-04-13 | Cisco Technology, Inc. | Hierarchical dynamic buffer management system and method |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3490502B2 (ja) * | 1994-08-01 | 2004-01-26 | 富士通株式会社 | メモリ制御装置 |
US5586264A (en) * | 1994-09-08 | 1996-12-17 | Ibm Corporation | Video optimized media streamer with cache management |
JPH09116541A (ja) * | 1995-10-16 | 1997-05-02 | Toshiba Corp | 通信制御装置 |
JP3727778B2 (ja) * | 1998-05-07 | 2005-12-14 | 株式会社東芝 | データ高速転送同期システム及びデータ高速転送同期方法 |
JP4264777B2 (ja) * | 1999-05-31 | 2009-05-20 | ソニー株式会社 | データ再生方法及びデータ再生装置 |
JP2002196975A (ja) * | 1999-07-12 | 2002-07-12 | Matsushita Electric Ind Co Ltd | データ処理装置 |
JP3609656B2 (ja) * | 1999-07-30 | 2005-01-12 | 株式会社日立製作所 | コンピュータシステム |
US7110423B1 (en) * | 1999-11-29 | 2006-09-19 | Cisco Technology, Inc. | Method and system for source synchronous clocking |
US7133407B2 (en) * | 2000-01-25 | 2006-11-07 | Fujitsu Limited | Data communications system |
US6606684B1 (en) * | 2000-03-31 | 2003-08-12 | Intel Corporation | Multi-tiered memory bank having different data buffer sizes with a programmable bank select |
US6633936B1 (en) * | 2000-09-26 | 2003-10-14 | Broadcom Corporation | Adaptive retry mechanism |
JP2002132572A (ja) * | 2000-10-19 | 2002-05-10 | Sanyo Electric Co Ltd | メモリ制御装置 |
US6738870B2 (en) * | 2000-12-22 | 2004-05-18 | International Business Machines Corporation | High speed remote storage controller |
KR100362167B1 (ko) * | 2000-12-26 | 2002-11-23 | 한국전자통신연구원 | 비동기전달모드 방식의 수동광망 광 네트워크 유니트 제어장치 |
JP2003030163A (ja) * | 2001-07-16 | 2003-01-31 | Nec Corp | マルチプロセッサシステム |
US7346714B2 (en) * | 2002-09-05 | 2008-03-18 | Canon Kabushiki Kaisha | Notification of completion of communication with a plurality of data storage areas |
US7383336B2 (en) | 2003-04-24 | 2008-06-03 | International Business Machines Corporation | Distributed shared resource management |
US7134035B2 (en) * | 2003-05-30 | 2006-11-07 | Sun Mircosystems, Inc. | Method for generating a synchronization signal based on the clock ratio between two clock domains for data transfer between the domains |
JP4661036B2 (ja) * | 2003-08-19 | 2011-03-30 | ソニー株式会社 | メモリコントローラおよびメモリコントロール方法、その方法を実行するためのプログラム |
JP4296122B2 (ja) * | 2004-04-27 | 2009-07-15 | 株式会社エヌ・ティ・ティ・ドコモ | データ配信装置およびデータ配信方法 |
US20060126770A1 (en) * | 2004-12-15 | 2006-06-15 | Takeshi Yamazaki | Methods and apparatus for providing an asynchronous boundary between internal busses in a multi-processor device |
US7337293B2 (en) * | 2005-02-09 | 2008-02-26 | International Business Machines Corporation | Streaming reads for early processing in a cascaded memory subsystem with buffered memory devices |
CN100442858C (zh) * | 2005-10-11 | 2008-12-10 | 华为技术有限公司 | 分组网络中多媒体实时传输的唇同步方法及其装置 |
JP2007213179A (ja) * | 2006-02-08 | 2007-08-23 | Renesas Technology Corp | 不揮発性半導体記憶装置 |
JP4674865B2 (ja) * | 2006-10-30 | 2011-04-20 | 株式会社日立製作所 | 半導体集積回路 |
US7656745B2 (en) * | 2007-03-15 | 2010-02-02 | Micron Technology, Inc. | Circuit, system and method for controlling read latency |
US20100005206A1 (en) | 2008-07-01 | 2010-01-07 | International Business Machines Corporation | Automatic read data flow control in a cascade interconnect memory system |
-
2010
- 2010-09-07 US US12/876,512 patent/US8635390B2/en not_active Expired - Fee Related
-
2011
- 2011-07-29 JP JP2011166269A patent/JP5764004B2/ja active Active
- 2011-09-01 CN CN201110265775.8A patent/CN102402493B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6721796B1 (en) * | 1999-07-22 | 2004-04-13 | Cisco Technology, Inc. | Hierarchical dynamic buffer management system and method |
Also Published As
Publication number | Publication date |
---|---|
CN102402493A (zh) | 2012-04-04 |
US8635390B2 (en) | 2014-01-21 |
US20120059958A1 (en) | 2012-03-08 |
JP2012059252A (ja) | 2012-03-22 |
JP5764004B2 (ja) | 2015-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102402493B (zh) | 用于共享数据总线的层级式缓冲器系统的系统和方法 | |
US8874808B2 (en) | Hierarchical buffer system enabling precise data delivery through an asynchronous boundary | |
US7685392B2 (en) | Providing indeterminate read data latency in a memory system | |
US7600091B2 (en) | Executing background writes to idle DIMMS | |
US8296541B2 (en) | Memory subsystem with positional read data latency | |
CN101341474B (zh) | 用于对事务重排序来确保每个事务所规定的服务质量的仲裁方法 | |
CN107360206A (zh) | 一种区块链共识方法、设备及系统 | |
EP2467781B1 (en) | Systems and methods to efficiently schedule commands at a memory controller | |
KR100619806B1 (ko) | 디스크 콘트롤러 메모리에 접속을 중개하기 위한 중개방법및 시스템 | |
US8539260B2 (en) | Method, apparatus, and system for enabling platform power states | |
CN103765522B (zh) | 排特定的循环冗余校验 | |
FR2578071A1 (fr) | Installation de multitraitement a plusieurs processus | |
US7603504B2 (en) | Reducing core wake-up latency in a computer system | |
CN111417935A (zh) | 用于分布式缓冲器存储器系统的地址/命令芯片同步的自动数据芯片地址定序器 | |
CN104346307B (zh) | 用于直接存储器访问传输的系统和方法 | |
US20140359195A1 (en) | Crossbar switch, information processing apparatus, and information processing apparatus control method | |
CN100419723C (zh) | 多中断的缓存装置和方法 | |
US20190163662A1 (en) | Communication controller, communication method, and system on a chip | |
CN101251787B (zh) | 用于处理读取和写入请求的方法和系统 | |
CN100547557C (zh) | 一种多模电子系统的组合同步方法 | |
US11720287B1 (en) | System and method for memory management | |
US20130268716A1 (en) | Executing host data transfer operations during setup of copy services operations | |
US20190163663A1 (en) | Communication controller, communication method, and system on a chip | |
CN111984550A (zh) | 通过使用机器学习模块管理全局队列与多个本地队列之间的高速缓存段的分配和迁移 | |
CN117455362A (zh) | 库存数据处理方法、装置、存储介质及计算机设备 |
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 |