CN102968291B - 包括可变写命令调度的内存系统 - Google Patents
包括可变写命令调度的内存系统 Download PDFInfo
- Publication number
- CN102968291B CN102968291B CN201210146921.XA CN201210146921A CN102968291B CN 102968291 B CN102968291 B CN 102968291B CN 201210146921 A CN201210146921 A CN 201210146921A CN 102968291 B CN102968291 B CN 102968291B
- Authority
- CN
- China
- Prior art keywords
- command
- memory
- frame
- write order
- internal memory
- 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
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4239—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
Abstract
本公开涉及包括可变写命令调度的内存系统。一种系统包括一种主机设备,其可被配置为向系统内存发起内存请求。该系统还包括内存控制器,其可被配置为接收内存请求,并将该内存请求格式化为能够经由内存接口而传输到内存设备的内存事务。内存事务包括多种内存写命令类型。每种内存写命令类型都对应用于传输相应的数据有效载荷的不同的各自的调度。
Description
技术领域
本公开涉及内存系统,并尤其涉及对内存接口的内存命令调度。
背景技术
在许多计算机系统中,可以使用各种常规内存接口和协议来对内存设备进行读和写。例如,在一些常规协议中,可以用单独的通道来传送内存命令、地址和相关写数据。分配到每个这种通道的带宽基于各个通道所需要的带宽。这种类型的接口可能存在不足之处。尤其,由于一些通道几乎不需要与其它通道同样多的带宽,所以这些通道的带宽被丢失。例如,用于写命令的数据只有在与写命令相关的特定时间才会被发送。这种类型的命令和数据调度还可能会限制带宽,这取决于何时以及有多少读命令或其它命令被同时挂起。
发明内容
本文公开了包括可变写命令调度的内存系统的多个实施例。在一个实施例中,内存子系统包括内存设备和控制单元。内存设备可能包括一个或多个用于存储数据的内存阵列。控制单元可被配置为响应于接收内存事务,向一个或多个内存阵列读和写数据。内存事务包括多种内存写命令类型。然而,每种内存写命令类型都对应用于传输相应数据有效载荷不同的调度。
在一个特定实施方式中,每个内存事务包括至少一个具有第一命令段和第二命令段的帧。此外,内存写命令的类型中的一种包括第一帧、第二帧和第三帧。第一帧包括位于第一或第二命令段之一的相应内存写命令。第二帧传输相应数据有效载荷的第一部分,并且第三帧传输该相应数据有效载荷的其余部分。
在另一个特定实施方式中,内存写命令类型中的一种包括第一帧和第二帧。第一帧包括位于第一或第二命令段之一的相应内存写命令。第二帧传输在第一命令段中的相应数据有效载荷的第一部分,以及传输在第二命令段中的相应数据有效载荷的其余部分。
在另一个实施例中,系统包括主机设备,其可配置为向系统内存发起内存请求。该系统还包括内存控制器,其可配置为接收内存请求并将其格式化为经由内存接口传输到内存设备的内存事务。该内存事务包括多种内存写命令类型。每种内存写命令类型对应用于传输相应的数据有效载荷不同的各自的调度。
附图说明
图1是包含内存子系统的系统的一个实施例的框图。
图2是描述非指定内存事务帧的一个实施例的示图。
图3是描述内存读事务的一个实施例的示图。
图4A是描述内存写事务的一个实施例的示图。
图4B是描述包含5个帧的突发内存写事务的一个实施例的示图。
图4C是描述内存写事务的另一个实施例的示图。
图4D是描述内存写事务的另一个实施例的示图。
图4E是描述内存写事务的另一个实施例的示图。
图5是描述内存读-修改-写事务的一个实施例的示图。
图6是描述图1所示系统的实施例操作的流程图。
在附图中通过示例的方式显示了具体的实施例,并在此对其进行详细描述。然而,应当理解这些附图和详细描述并非旨在将权利要求限制到所公开的特定实施例,即使相对于特定特征只描述了一个单独的实施例。相反,它旨在覆盖得益于本公开的本领域技术人员而言明显的所有修改、等价物和替代。在公开中所提供的特征示例旨在是说明性的而非限制性的,除非另有说明。
本申请通篇使用的词语“可能”是容许的意思(即,意为有潜力做),而并非强制的意思(即,意为必须)。同样,词语“包括”(一般现在时、现在进行时、第三人称动词)意为包括但不限于。
各种单元、电路,或其它组件可以被描述成“被配置为”执行一个或多个任务。这里,“被配置为”是结构的一种广义陈述,一般意为“具有电路”来在操作期间执行一个或多个任务。因此,甚至在该单元/电路/组件并没有正在运行时,也可以将单元/电路/组件配置为执行任务。一般,构成对应于“被配置为”的结构的电路系统可包括硬件电路。同样,为了便于描述,可将各种单元/电路/组件描述成执行一个或多个任务。这种描述应当解释为包含短语“被配置为”。对被配置为执行一个或多个任务单元/电路/组件的叙述,其并非旨在明确援引35U.S.C.§112第6段中对于单元/电路/组件的解释。
具体实施方式
现在参照图1,其示出了包括内存子系统的系统的一个实施例的框图。系统100包括专用集成电路(ASIC)/主机50,其经由接口33耦接到内存子系统15。在例示的实施例中,ASIC/主机50包括耦接到内存控制器25的路由器27。内存子系统15包括耦接到内存设备20的控制单元22。
在一个实施例中,ASIC/主机50可接收来自内部或外部源的内存请求。路由器27可将内存请求转发给内存控制器25。内存控制器25会将内存请求格式化为适于在接口33向内存子系统15进行传送的内存事务。在各种实施例中,内存事务可包括内存写事务、内存读事务,和内存读-修改-写(RMW)事务。如图2至图5中所示,内存事务可以被格式化为80位的帧,但是其它数量的位是可能和可考虑的。在一个实施例中,该帧可在事务层使用。
如下面结合图4A至图4D进一步描述的,内存写事务可包括多种不同类型的写命令。更具体地,通过使用具有不同数据有效载荷调度的不同类型的写命令,内存控制器25可以被配置为格式化内存写事务,以利用接口33上的可用带宽。
在图1中,控制单元22可接收来自内存控制器25的内存事务,对不同的命令操作码进行解码,重新格式化该事务并将其发送到内存设备20。因此,控制单元22可配置为控制对到内存设备20数据的发送和接收操作。如图所示,控制单元22包括存储器单元23。在一个实施例中,存储器单元23可存储读-修改-写操作期间使用的多个基本地址。如结合图5和图6的描述下面将有更加详细的描述,使用指定写入帧,基础地址可被写入。此外,控制单元22的处理单元24被配置为对从内存设备20读取(read)的数据执行多个逻辑和算术函数,作为读-修改-写(RMW)内存事务的修改阶段的一部分。
在各种实施例中,根据特定具体实施方式,接口33可以是串行互连;也可以是并行互连。在串行互连的实施方式中(例如,33A),接口33可包括一个或多个串行通道。每个通道可包括一个或多个单向或双向通信通路(lane)。在具有单个串行通路的实施方式中,给定帧会通过通路在单个位流中被串行发送。但是,在每个通道包括多个通路的实施方式中,一个80位的帧可以在给定通道中通过一个或多个通路来传送。在并行实施方式中(例如,33B),接口33可包括构成并行总线的多个单向命令和地址信号路径,以及多个双向数据信号路径,而且该80位的帧可以传统并行格式通过并行总线传送。应当注意,在对接口33使用串行接口的实施方式中,内存控制器25可以在接口33的不同通道上同时发送各种不同的内存事务。
内存设备20可包括一个或多个用于存储数据的内存阵列。例如,在一个特定实施例中,内存设备20的一个或多个内存阵列可以使用1T-SRAM单元来实现。在一个实施例中,内存设备20和控制单元22可以经由并行互连而耦接,但在其它实施例中也可以考虑使用任意其它互连方式。此外,内存设备20和控制单元22可以在同一集成电路(IC)芯片上实现。进一步,在一个实施例中,内存子系统15和ASIC/主机50也可以在同一IC芯片上实现。
如下文进一步所述,为了提高带宽,内存控制器25可以采取不同类型的内存事务。更具体地,通过使用不同类型的内存读和写事务,各种内存写和读事务可以组合,并且根据有多少数据需要读取或写入内存设备20,内存控制器25可以在不同时间选择内存读和写命令中不同的命令。
转到图2,示出了描述非特定内存事务帧的一个实施例的示图。帧200是包括多个字段的80位的帧。如例示的实施例所示,帧200包括位于第0位至第5位的循环冗余校验(CRC)字段。第6位对应于一个确认位,而第7位对应事务层字段,其中编码为1表示该帧是一个事务层的帧。第8位到第43位对应一个命令段,这里命名为R(即,右)命令段,以及第44位至第79位对应另一命令段,这里命名为L(即,左)命令段。如下文进一步所述,根据在该帧或前一帧中是什么信息,每个L和R命令段都会包含与读命令、写命令、RMW命令,或数据相应的信息。在各种实施例中,一个给定事务中既可以使用帧中的一个命令段,也可以使用帧中的两个命令段。
参照图3,示出了描述内存读事务的一个实施例的示图。读帧300包括读命令操作码和地址。如图所示,该读命令操作码和地址位于该读帧300的L命令段。如图所示,其R命令段为空。然而,在其它实施例中,同一帧可以发出两个读命令。这样,L和R命令段都将包括读命令操作码和相关地址。另外,如下文将进一步描述,一个命令段(例如,L命令段)可以发出一个读命令,而写命令会包含于其它命令段中。
在各种实施例中,可以有多个不同的读操作码,各自指定不同类型的读事务。例如,在一个实施例中,一个读操作码可以指定在读帧所指定的地址对数据的读操作。因此,读操作码可以指示控制单元22在所指定的地址处执行读操作。在另一个实施例中,不同的读操作码可以指定一种特定长度的突发(burst)读操作,且该读事务中的地址可以是该突发的起始地址。
现在转到图4A,示出了描述包括两个帧的内存写事务的一个实施例的示图。与图3中的读事务帧类似,写事务帧410头部(top)帧的起始0-7位包括CRC位和各种控制位,如事务层指示位。在例示的实施例中,L命令段为空,而R命令段包括写命令操作码和地址。但是,在帧尾部(bottom)的第8-79位中传送用于上述写命令的数据,从而提供72位的数据有效载荷。注意,该头部帧可以被称为命令帧,而该尾部帧可以被称为数据帧。在数据帧中,数据有效载荷被分成高位数据(DataHi)和低位数据(DataLo),其中高位数据在第44-79位(例如,L命令段)中进行传送,而低位数据在8-43位(例如,R命令段)中进行传送。如上所述,由于在此实施例中命令帧中的L命令段为空,所以可注意到读命令可以被放置到L命令段中。如图所示,写命令WR_000对应一个特定的操作码编码,其向图1中的控制单元22指示,该写命令的全部72位数据有效载荷都将在下一帧中跟随。
参考图4B,示出了描述包含5帧的突发内存写事务的一个实施例的示图。在例示的实施例中,写事务420的头部帧是命令帧。图4B的命令帧类似于图4A的命令帧;但是操作码编码对于这种写命令而不同。更具体地,在图4B中,写命令操作码被编码为WR_001。在一个实施例中,操作码WR_001向图1的控制单元22指示,在该命令帧之后将有4个后续数据有效载荷帧,其中每个帧都包括72位的数据有效载荷。应当注意,尽管在图4B中示出为4个后续数据有效载荷帧,但在其它实施例中预计内存控制器25可能会发出不同数量的数据有效载荷帧。与图4A中所示的命令帧类似,并且如上所述,L命令段为空。然而L命令段也可以包括非写命令,例如读或者其它命令。在一个实施例中,接收到在L命令段中具有读命令的命令帧之后,控制单元22可先处理读命令,接着处理写命令。
现在参考图4C,示出了描述包括3个帧的内存写事务的一个实施例的示图。在例示的实施例中,写事务430的命令帧与图4B和图4A中所示的命令帧相类似。但是,在写事务430中,写命令操作码被编码为WR_010。因此,在一个实施例中,这种编码向控制单元22指示,该数据有效载荷将在随后2个帧中进行传送,每次传送36位半字。但是,如图4C所示,高位数据半字在下一个后续帧中传送,而低位数据半字在第二个后继帧中传送。同样在事务430中全部3个帧,L命令段为空。然而,如上所述,可能会向这些L命令段中的每个插入非写命令。因此,内存控制器25可通过向这些帧中的每个插入命令,例如读命令,而利用可用带宽。
现在参考图4D,示出了描述写事务的另一实施例的示图。在例示的实施例中,事务440包括一个帧,该帧在L命令段中包括写命令操作码,而在R命令段中包括数据有效载荷。如图所示,写命令被编码为WR_011。在例示的实施例中,数据有效载荷被作为半字发送。更具体地,在R命令段中发送数据高位半字。因此,写操作码WR_011向控制单元22指示,在当前帧中只传送72位数据有效载荷的上(upper)半字。
参考图4E,示出了描述写事务的另一个实施例的示图。与图4D中的事务440类似,图4E中的事务450包括一个帧,该帧在L命令段包括写命令操作码,而在R命令段包括数据有效载荷。但是,在图4E中,写操作码被编码为WR_100。在图4E的实施例中,数据有效载荷仍旧作为半字发送。更具体地,在R命令段中发送数据低位半字。因此,写操作码WR_100向控制单元22指示,在当前帧中只传送72位数据有效载荷的下(lower)半字。
在一个实施例中,图4D和图4E中所示的事务可以根据需要一起使用或者单独使用。因此,依据图4A-4E所示的上述实施例,通过使用各种不同类型的写命令,内存控制器25可最好地利用可用带宽。
在另一个实施例中,可使用其它方式来执行半字写事务。尤其,内存控制器25可使用其它写操作码来执行半字写入,其中写操作码可指定应发送上半字还是下半字中的哪个。在一个实施例中,写命令可在R命令段中发送,而其数据半字将在下一帧的R命令段或者L命令段中发送。在这种实施例中,写操作码可指定该数据有效载荷是数据高位半字还是数据低位半字,并且可能还会指定该数据占据R命令段还是占据L命令段。
转到图5,示出了包括一个帧的读-修改-写事务的一个实施例的示图。类似于图3中的读事务帧和图4A-4E中的写事务帧,RMW事务500的头部帧的第一0-7位包括CRC位和各种控制位,例如事务层指示位。在例示的实施例中,L命令段为空,而R命令段包括RMW命令操作码。然而,并非只是在读和写命令帧地址段中的地址不同,而且该RMW地址也是不同的。在图5所示的实施例中,第8至23位包括一个16位立即操作数,第24-35位包括一个双位字编码,第26-32位包括一个7位偏移,第33-35位包括一个3位分区编码。
在图1的系统100中,通过接口33发送最少数目的内存事务,RMW事务会允许修改内存数据。例如,通过接口33发送单独的一个RMW事务,会允许修改在特定地址的数据。内存地址可以被给定作为相对于基址的偏移,该基址预存在图1的存储器23中。
在一个实施例中,RMW修改操作包括16位、32位和64位的算术逻辑单元(ALU)运算,其包括加法和减法运算,如饱和加减法和模2n加法和减法。另外,还可以执行下列逻辑运算:与、或、以及异或(XOR)。此外,各种其他算术运算或逻辑运算,如移位、比较、增加、减少等都可以被执行。这些不同类型的RMW操作中的每一个都相应的RMW命令操作码编码。在一个实施例中,控制单元22可以包括处理功能块24以执行这些以及其它操作。
返回参考图5,在一个实施例中,RMW命令中的每个都执行该帧[23:8]位之间的16位立即操作数的操作,该帧的16、32或64位操作数都存储在RMW操作码指定的内存设备20中的地址。一旦内存操作数被修改,控制单元22就会将结果写回到内存设备。通过组合(例如,ADD、XOR等)预先加载到存储器23中的基址和偏移字段(例如,位[32:26]),来计算内存地址。分区字段(例如,位[35:33])可以选择存储器23中存储的多个基址中的一个。通过将RMW操作码与字段相结合来确定数据的大小和排列。更具体地,对于16位和32位RMW命令,字值可以确定内存操作数中哪些位是数据,而对于64位RMW命令,由于64位全部都表示数据,因此该字段被忽略。
在另一个实施例中,一个或多个另外RMW操作码可指定要操作的变量数据的大小。更具体地,一个RMW操作码可指定两种不同且独立的操作,以在内存操作数的两个不同部分上执行。例如,一个这种RMW操作码可指定该内存操作数的一部分是40位而另一部分是24位。另外,相同RMW操作码可指定控制单元22在例如24位部分上执行一种操作,例如增加或减少,而例如在40位部分上执行另一种操作,例如使用该帧的16位立即操作数进行例如XOR操作。因此,使用一个RMW操作码,对来自内存操作数的两个不同部分数据(大小相同或不同)执行两种独立的操作。应当注意,对内存操作数所执行的上述任何操作都可以在两个部分上都执行。
如上所述,存储器23在多个存储位置中可以持有多个写入基址。使用与图3-图5所示帧相类似的写基本命令帧,内存控制器25可以将内存基址加载到存储器23中。尤其在一个实施例中,写基本命令帧可以包括位于标准帧的任一命令段的写基本命令。写基本命令可包括写基本操作码、基址和分区。一旦接收写基本命令帧,控制单元22会将该帧中的基址写入到存储位置之一中。
转到图6,示出了描述图1系统的一个实施例的操作的流程图。在块601处开始,内存控制器25接收来自路由器27的内存请求。内存控制器25将内存请求格式化为内存事务(块603)。如上所述,根据可用带宽和其它因素,内存控制器25可以使用任意内存写命令而将数据写入到内存设备20。尤其,如上述附图所示以及如上所述,例如如果存在多个尚未处理的读和写请求,则内存控制器25会利用写命令的调度可变性,以及在相同命令帧中包含读命令的能力。替代地,如果有突发数据,内存控制器25会利用图2B所示的内存写突发命令。如上所述,一个或多个写、读,和/或RMW帧都会在事务层被格式化。
一旦内存事务已经被格式化,内存控制器25就会经由接口33将内存事务传送到内存子系统15(块605)。该格式化的帧会经由物理层在接口33上被发送。
在接收到内存事务命令之后,控制单元22会对每个帧中的命令都进行解码(块607)。一旦命令被解码,控制单元22就会重新格式化该命令,并将其发送给内存设备20(块609)。尤其,在写命令的情况下,控制单元22会向内存设备20的地址发送数据。在读命令的情况下,控制单元会在内存设备20上执行读操作,并且当内存设备20返回所请求的数据时,控制单元22会向内存控制器25发回所请求的数据。然而,在RMW命令的情况下,控制单元22会执行特定内存地址的读操作,该地址是由控制单元22根据RMW帧信息而计算出的。然后,控制单元22可以修改由RMW操作码指定的读取数据,接着再将该修改后的数据写回到内存设备20的地址。
尽管已经相当详细地描述了上述实施例,但是一旦上述公开内容被完全理解,则对于本领域技术人员而言,各种变化和修改都是显然的。旨在下列权利要求解释为包括所有这些变化和修改。
Claims (22)
1.一种内存子系统,包括:
内存设备,包括用于存储数据的一个或多个内存阵列;和
控制单元,耦接到内存设备,并被配置为响应于经由内存接口接收内存事务,向所述一个或多个内存阵列读和写数据;
其中内存事务包括多个内存写命令类型,其中每个内存写命令类型都对应用于传输相应数据有效载荷的不同调度;以及
其中内存事务进一步包括多个内存读-修改-写命令类型,其中每个内存读-修改-写命令类型对应于对从内存设备读取并且随后被写回到内存设备的数据执行的不同操作,其中控制单元被配置为执行对应于由通过内存接口发送到控制单元的事务指定的多个读-修改-写命令类型中的读-修改-写命令类型的操作。
2.如权利要求1所述的内存子系统,其中每个内存事务包括至少一个具有第一命令段和第二命令段的帧。
3.如权利要求2所述的内存子系统,其中所述多个内存写命令类型中的一种包括第一帧,其包括位于第一命令段或第二命令段之一中的相应内存写命令,第二帧,其传输相应数据有效载荷的第一部分,和第三帧,其传输相应数据有效载荷的其余部分。
4.如权利要求2所述的内存子系统,其中所述多个内存写命令类型中的一种包括第一帧,其包括位于第一命令段或第二命令段之一中的相应内存写命令,和第二帧,其在第一命令段中传输相应数据有效载荷的第一部分以及在第二命令段中传输相应数据有效载荷的其余部分。
5.如权利要求2所述的内存子系统,其中所述多个内存写命令类型中的一种包括第一帧,其包括位于第一命令段或第二命令段之一中的相应内存写命令,多个后继帧,其中所述多个后继帧的每个都被配置为在第一命令段中传输相应数据有效载荷的第一部分以及在第二命令段中传输相应数据有效载荷的其余部分。
6.如权利要求2所述的内存子系统,其中所述多个内存写命令类型中的一种包括一个单独的帧,其包括位于第一命令段或第二命令段之一中的相应内存写命令,和位于其余命令段中的数据有效载荷部分。
7.如权利要求1所述的内存子系统,其中每个内存写命令类型包括具有各自编码的各自内存写命令。
8.如权利要求1所述的内存子系统,其中内存事务进一步包括内存读命令,其中至少一些内存写命令类型被配置为在其余命令段中包括内存读命令。
9.如权利要求1所述的内存子系统,其中内存设备内的特定地址使用与控制单元内的存储器中存储的基本地址相关的偏移进行访问。
10.如权利要求1所述的内存子系统,其中控制单元被配置为响应于接收一个读-修改-写事务,独立地从特定地址读取数据,对数据执行各自的操作,以及将由操作修改的数据写回到内存设备。
11.一种内存系统,包括:
主机设备,被配置为向内存设备发起内存请求;和
内存控制器,耦接到该主机设备,且被配置为接收该内存请求,并将该内存请求格式化为能够经由内存接口传输给内存设备的内存事务;
控制单元,耦接到内存设备,并被配置为响应于经由内存接口接收内存事务,向所述内存设备读和写数据;
其中内存事务包括多个内存写命令类型,其中每个内存写命令类型都对应于用于传输相应数据有效载荷的不同调度;以及
其中内存事务进一步包括多个内存读-修改-写命令类型,其中每个内存读-修改-写命令类型对应于对从内存设备读取并且随后被写回到内存设备的数据执行的不同操作,其中控制单元被配置为执行对应于由通过内存接口发送到内存设备的事务指定的多个内存读-修改-写命令类型中的内存读-修改-写命令类型的操作。
12.如权利要求11所述的系统,其中多个内存写命令类型中的一种包括第一帧,其包括位于第一命令段或第二命令段之一中的相应内存写命令,第二帧,其传输相应数据有效载荷的第一部分,和第三帧,其传输相应数据有效载荷的其余部分。
13.如权利要求11所述的系统,其中所述多个内存写命令类型中的一种包括第一帧,其包括位于第一命令段或第二命令段之一中的相应内存写命令,和第二帧,其在第一命令段中传输相应数据有效载荷的第一部分以及在第二命令段中传输相应数据有效载荷的其余部分。
14.如权利要求11所述的系统,其中所述多个内存写命令类型中的一种包括第一帧,其包括位于第一命令段或第二命令段之一中的相应内存写命令,以及多个后继帧,其中所述多个后继帧的每个者被配置为在第一命令段中传输相应数据有效载荷的第一部分以及在第二命令段中传输相应数据有效载荷的其余部分。
15.如权利要求11所述的系统,其中所述多个内存写命令类型中的一种包括一个单独的帧,其包括位于第一命令段或第二命令段之一中的相应内存写命令,和位于其余命令段中的数据有效载荷部分。
16.一种用于操作系统内存的方法,包括:
接收对系统内存读和写数据的内存请求;
将该内存请求格式化为传输给系统内存的内存事务;
其中该内存事务包括多个内存写命令类型,其中每个内存写命令类型都对应于用于传输相应数据有效载荷的不同调度;以及
其中内存事务进一步包括多个内存读-修改-写命令类型,其中每个内存读-修改-写命令类型对应于对从内存设备内的特定地址读取并且随后被写回到内存设备的特定地址的数据执行的不同操作;
对于每个读-修改-写命令类型,通过内存接口将一个读-修改-写事务发送到系统内存。
17.如权利要求16所述的方法,其中所述多个内存写命令类型中的一种包括第一帧,其包括位于第一命令段或第二命令段之一中的相应内存写命令,第二帧,其传输相应数据有效载荷的第一部分,和第三帧,其传输相应数据有效载荷的其余部分。
18.如权利要求16所述的方法,其中所述多个内存写命令类型中的一种包括第一帧,其包括位于第一命令段或第二命令段之一中的相应内存写命令,和第二帧,其在第一命令段中传输相应数据有效载荷的第一部分以及在第二命令段中传输相应数据有效载荷的其余部分。
19.如权利要求16所述的方法,其中所述多个内存写命令类型中的一种包括第一帧,其包括位于第一命令段或第二命令段之一中的相应内存写命令,以及多个后继帧,其中所述多个后继帧的每个者被配置为在第一命令段中传输相应数据有效载荷的第一部分以及在第二命令段中传输相应数据有效载荷的其余部分。
20.如权利要求16所述的方法,其中所述多个内存写命令类型中的一种包括一个单独的帧,其包括位于第一命令段或第二命令段之一中的相应内存写命令,和位于其余命令段中的数据有效载荷部分。
21.如权利要求16所述的方法,其中内存事务进一步包括内存读命令,其中至少一些内存写命令类型被配置为在其余命令段中包括内存读命令。
22.如权利要求16所述的方法,其中内存事务进一步包括内存读命令,其中至少一些内存读-修改-写命令类型被配置为在其余命令段中包括内存读命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/077,261 US8473695B2 (en) | 2011-03-31 | 2011-03-31 | Memory system including variable write command scheduling |
US13/077,261 | 2011-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102968291A CN102968291A (zh) | 2013-03-13 |
CN102968291B true CN102968291B (zh) | 2016-05-18 |
Family
ID=46022025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210146921.XA Active CN102968291B (zh) | 2011-03-31 | 2012-03-31 | 包括可变写命令调度的内存系统 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8473695B2 (zh) |
EP (1) | EP2506149B1 (zh) |
JP (1) | JP5892838B2 (zh) |
KR (1) | KR101600131B1 (zh) |
CN (1) | CN102968291B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10389845B2 (en) * | 2009-10-29 | 2019-08-20 | Pure Storage, Inc. | Determining how to service requests based on several indicators |
US9774678B2 (en) * | 2009-10-29 | 2017-09-26 | International Business Machines Corporation | Temporarily storing data in a dispersed storage network |
US20190297169A1 (en) * | 2009-10-29 | 2019-09-26 | International Business Machines Corporation | Determining how to service requests based on several indicators |
US10757187B2 (en) | 2009-10-29 | 2020-08-25 | Pure Storage, Inc. | Streaming all-or-nothing encoding with random offset support |
US20180054486A1 (en) * | 2009-10-29 | 2018-02-22 | International Business Machines Corporation | Speculative Requests |
US9354823B2 (en) * | 2012-06-06 | 2016-05-31 | Mosys, Inc. | Memory system including variable write burst and broadcast command scheduling |
US20130318268A1 (en) | 2012-05-22 | 2013-11-28 | Xockets IP, LLC | Offloading of computation for rack level servers and corresponding methods and systems |
US9495308B2 (en) | 2012-05-22 | 2016-11-15 | Xockets, Inc. | Offloading of computation for rack level servers and corresponding methods and systems |
TWI587142B (zh) * | 2012-11-23 | 2017-06-11 | 普誠科技股份有限公司 | 介面傳輸方法以及資料結構產品 |
KR102028336B1 (ko) * | 2012-12-03 | 2019-10-04 | 삼성전자주식회사 | 복수 스크린을 표시하는 디스플레이 장치 및 그 제어 방법 |
KR102030733B1 (ko) | 2013-01-02 | 2019-10-10 | 삼성전자주식회사 | 메모리 시스템 및 이의 구동 방법 |
US9250954B2 (en) * | 2013-01-17 | 2016-02-02 | Xockets, Inc. | Offload processor modules for connection to system memory, and corresponding methods and systems |
US9304709B2 (en) | 2013-09-06 | 2016-04-05 | Western Digital Technologies, Inc. | High performance system providing selective merging of dataframe segments in hardware |
KR102249810B1 (ko) | 2014-07-23 | 2021-05-11 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
WO2016122466A1 (en) * | 2015-01-27 | 2016-08-04 | Hewlett Packard Enterprise Development Lp | Transferring a variable data payload |
WO2016122463A1 (en) * | 2015-01-27 | 2016-08-04 | Hewlett Packard Enterprise Development Lp | Correcting errors of a variable data payload |
US10908820B2 (en) | 2017-09-14 | 2021-02-02 | Samsung Electronics Co., Ltd. | Host-based and client-based command scheduling in large bandwidth memory systems |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1180900A (zh) * | 1996-08-20 | 1998-05-06 | 索尼公司 | 同时输入和输出数据的双端的存储器 |
CN1568607A (zh) * | 2001-08-16 | 2005-01-19 | 高通股份有限公司 | 无线通信系统内的重发方法和装置 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0697664A1 (de) | 1994-08-01 | 1996-02-21 | Siemens Aktiengesellschaft | System zur bidirektionalen Datenübertragung |
US5930359A (en) | 1996-09-23 | 1999-07-27 | Motorola, Inc. | Cascadable content addressable memory and system |
US6070200A (en) | 1998-06-02 | 2000-05-30 | Adaptec, Inc. | Host adapter having paged data buffers for continuously transferring data between a system bus and a peripheral bus |
US6693880B2 (en) | 1998-09-10 | 2004-02-17 | International Business Machines Corporation | System of controlling the flow of information between senders and receivers across links being used as channels |
US6687247B1 (en) | 1999-10-27 | 2004-02-03 | Cisco Technology, Inc. | Architecture for high speed class of service enabled linecard |
KR20010087685A (ko) * | 2000-03-08 | 2001-09-21 | 정훈 | 멀티 클라이언트용 웹 카메라를 이용한 위치영역탐색시스템 및 방법 |
JP2003196084A (ja) * | 2001-12-25 | 2003-07-11 | Toshiba Corp | リードモディファイライトユニットを有するシステム |
US7631313B2 (en) | 2002-06-17 | 2009-12-08 | David Mayhew | System and method for transferring data |
US7139860B2 (en) | 2002-07-29 | 2006-11-21 | Freescale Semiconductor Inc. | On chip network with independent logical and physical layers |
US7382788B2 (en) | 2002-12-24 | 2008-06-03 | Applied Micro Circuit Corporation | Method and apparatus for implementing a data frame processing model |
CN1534906B (zh) | 2003-04-02 | 2010-04-28 | 华为技术有限公司 | 一种帧对齐方法及电路 |
US8180931B2 (en) | 2004-01-20 | 2012-05-15 | Super Talent Electronics, Inc. | USB-attached-SCSI flash-memory system with additional command, status, and control pipes to a smart-storage switch |
US8060670B2 (en) | 2004-03-17 | 2011-11-15 | Super Talent Electronics, Inc. | Method and systems for storing and accessing data in USB attached-SCSI (UAS) and bulk-only-transfer (BOT) based flash-memory device |
US7308526B2 (en) | 2004-06-02 | 2007-12-11 | Intel Corporation | Memory controller module having independent memory controllers for different memory types |
JP4989900B2 (ja) * | 2006-01-31 | 2012-08-01 | ルネサスエレクトロニクス株式会社 | 並列演算処理装置 |
US20070189232A1 (en) | 2006-02-14 | 2007-08-16 | Chang Li F | Method and system for data packer unit for accelerating stack functions |
US7522468B2 (en) | 2006-06-08 | 2009-04-21 | Unity Semiconductor Corporation | Serial memory interface |
DE102006035612B4 (de) | 2006-07-31 | 2011-05-05 | Qimonda Ag | Speicherpuffer, FB-DIMM und Verfahren zum Betrieb eines Speicherpuffers |
US20080059748A1 (en) | 2006-08-31 | 2008-03-06 | Nokia Corporation | Method, mobile device, system and software for a write method with burst stop and data masks |
US7949794B2 (en) | 2006-11-02 | 2011-05-24 | Intel Corporation | PCI express enhancements and extensions |
US8069327B2 (en) * | 2006-12-28 | 2011-11-29 | Intel Corporation | Commands scheduled for frequency mismatch bubbles |
WO2009039462A1 (en) | 2007-09-19 | 2009-03-26 | Tabula, Inc. | Method and system for reporting on a primary circuit structure of an integrated circuit (ic) using a secondary circuit structure of the ic |
US8533384B2 (en) | 2007-12-27 | 2013-09-10 | Sandisk Enterprise Ip Llc | Flash memory controller garbage collection operations performed independently in multiple flash memory groups |
US20100005212A1 (en) | 2008-07-01 | 2010-01-07 | International Business Machines Corporation | Providing a variable frame format protocol in a cascade interconnected memory system |
US7873066B2 (en) | 2009-01-26 | 2011-01-18 | International Business Machines Corporation | Streaming direct inter-thread communication buffer packets that support hardware controlled arbitrary vector operand alignment in a densely threaded network on a chip |
US8713248B2 (en) | 2009-06-02 | 2014-04-29 | Nokia Corporation | Memory device and method for dynamic random access memory having serial interface and integral instruction buffer |
US8416770B2 (en) * | 2009-07-20 | 2013-04-09 | Futurewei Technologies, Inc. | Universal service transport transitional encoding |
EP2483875A4 (en) * | 2009-09-29 | 2013-12-11 | Savi Techn Inc | DEVICE AND METHOD FOR ADVANCED COMMUNICATION IN WIRELESS LOW-POWER APPLICATIONS |
US8625635B2 (en) | 2010-04-26 | 2014-01-07 | Cleversafe, Inc. | Dispersed storage network frame protocol header |
-
2011
- 2011-03-31 US US13/077,261 patent/US8473695B2/en active Active
-
2012
- 2012-03-30 EP EP12162499.3A patent/EP2506149B1/en active Active
- 2012-03-30 KR KR1020120033541A patent/KR101600131B1/ko active IP Right Grant
- 2012-03-31 CN CN201210146921.XA patent/CN102968291B/zh active Active
- 2012-04-02 JP JP2012083966A patent/JP5892838B2/ja active Active
- 2012-05-10 US US13/468,850 patent/US8635417B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1180900A (zh) * | 1996-08-20 | 1998-05-06 | 索尼公司 | 同时输入和输出数据的双端的存储器 |
CN1568607A (zh) * | 2001-08-16 | 2005-01-19 | 高通股份有限公司 | 无线通信系统内的重发方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2506149A1 (en) | 2012-10-03 |
US8473695B2 (en) | 2013-06-25 |
US20120254562A1 (en) | 2012-10-04 |
KR20120112265A (ko) | 2012-10-11 |
KR101600131B1 (ko) | 2016-03-14 |
JP5892838B2 (ja) | 2016-03-23 |
CN102968291A (zh) | 2013-03-13 |
US20120254558A1 (en) | 2012-10-04 |
US8635417B2 (en) | 2014-01-21 |
JP2012216210A (ja) | 2012-11-08 |
EP2506149B1 (en) | 2017-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102968291B (zh) | 包括可变写命令调度的内存系统 | |
US7451273B2 (en) | System, method and storage medium for providing data caching and data compression in a memory subsystem | |
JP6986369B2 (ja) | メモリモジュール、これを含むシステム及びその動作方法 | |
CN101711385B (zh) | 非ecc组件中的ecc实现 | |
CN102160044B (zh) | PCIe接口上的SATA大容量存储装置仿真 | |
US20210011629A1 (en) | Memory device | |
CN102810081B (zh) | 光纤信道输入/输出数据路由系统和方法 | |
KR20160034913A (ko) | 미―준수 메모리 기술을 포함하거나 이와 인터페이스하는 메모리 모듈에 대한 응답 제어 | |
CN105340017A (zh) | 对包括非兼容性存储器技术或与其接合的存储器模块的写入流控制 | |
CN109478168A (zh) | 内存访问技术及计算机系统 | |
CN101978356A (zh) | 用单独循环冗余码帧的有效带内可靠性 | |
KR20100085564A (ko) | 데이터 처리 시스템과 데이터 처리 방법 | |
CN102150215A (zh) | 用于带内数据掩码比特传输的系统、方法和装置 | |
KR100539251B1 (ko) | 독출-변경-기입 기능을 가지는 메모리 컨트롤러 및 이를구비하는 soc | |
CN102831028A (zh) | 基于数据总线的ecc纠错方法及系统 | |
US10747699B2 (en) | Bus control circuit, semiconductor integrated circuit, circuit board, information processing device and bus control method | |
US20110004817A1 (en) | Crc management method performed in sata interface and data storage device using crc management method | |
CN101261611A (zh) | 一种外围设备间的数据传输装置和传输方法 | |
US11658922B2 (en) | Optional path ordering in packet-based network | |
CN108139993B (zh) | 内存装置、内存控制器、数据缓存装置及计算机系统 | |
CN116486868A (zh) | 计算高速链路(CXL)上的高速非易失性存储器(NVMe) | |
CN111694772A (zh) | 存储器控制器 | |
CN106940684B (zh) | 一种按比特写数据的方法及装置 | |
CN104471645A (zh) | 采用检错编码的事务的存储器设备的定时优化 | |
US8964495B2 (en) | Memory operation upon failure of one of two paired memory devices |
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 |