避免在单端口存储器设备中的写入冲突的方法和芯片的制作方法_3

文档序号:8362682阅读:来源:国知局
二数据对象。
[0032]图3图示根据一个实施例的通过模块115的数据对象流的定时图300。标号350指向数据对象的写入/读取的写入操作部分。标号360指向数据对象的写入/读取的读取操作部分。对于写入操作350,在时间t0,第一写入操作可以向模块115发送第一数据对象305a,并且第二写入操作可以在基本上相同时间发送第二数据对象305b。第一写入操作可以来自第一发送器110a(图1)。第二写入操作可以来自第二发送器110b(图1)。
[0033]在时间tl,第一数据对象305a和第二数据对象305b可以均进入它们的相应第一串行化器205a和第二串行化器205b。第一串行化器205a可以将第一数据对象305a划分成第一偶子数据对象310a和第一奇子数据对象315a。例如,16B数据对象可以被划分成两个8B子数据对象。在其它实施例中,第一串行化器205a可以将第一数据对象305a划分成任何数目的子数据对象。而且,第二串行化器205b也可以将第二数据对象305b划分成第二偶子数据对象310b和第二奇子数据对象315b。在其它实施例中,第二串行化器205b可以将第二数据对象305b划分成任何数目的子数据对象。
[0034]在时间t2,第一偶子数据对象310a可以被写入到支持偶子数据对象的单端口存储器设备中。第二奇子数据对象315b可以被写入到支持奇子数据对象的单端口存储器设备。在其它实施例中,第二奇子数据对象315b的定时可以更晚出现。第二串行化器205b可以从第一串行化器205a被延迟半个周期并且开始于在时间t3写入第二偶子数据对象310b、然后随后写入第二奇子数据对象315b。
[0035]在时间t3,第一奇子数据对象315a可以被写入到支持奇子数据对象的单端口存储器设备。第二偶子数据对象310b可以被写入到支持偶子数据对象的单端口存储器设备。在向单端口存储器设备写入子数据对象时交替它们可以避免对于在基本上相同时间从独立发送器到达模块的数据对象的写入冲突。
[0036]标号360指向从单端口存储器设备读取子数据对象的操作。读取操作可以包括来自两个读取请求器的两个独立读取请求。在时间t4,读取控制器220 (图2)可以从第一读取请求器接收对于第一数据对象305a的第一读取请求。读取控制器220也可以从第二读取请求器接收对于第二数据对象305b的第二读取请求。读取控制器220可以发布对于第一数据对象305a的第一读取命令和对于第二数据对象305b的第二读取命令。奇单端口存储器设备和偶单端口存储器设备可以在读取命令的第一半周期期间输出第一数据对象305a的第一偶子数据对象310a和第二数据对象305b的第二奇子数据对象315b。在其它实施例中,可以仅存在一个读取请求器,在图7中图示该读取请求器的定时。
[0037]在时间t5,在读取命令的第二半周期期间,读取控制器220可以发布对于将针对第一数据对象305a从奇单端口存储器120b发送第一奇子数据对象315a的命令。可以从偶单端口存储器120a发送用于第二数据对象305b的第二偶子数据对象310b。
[0038]在时间t6,第一偶子数据对象310a和第一奇子数据对象315a可以进入用于第一读取请求器的第一解串行化器235a(图2)。第二偶子数据对象310b和第二奇子数据对象315b可以也在时间t6进入用于第二读取请求器的第二解串行化器235b。
[0039]在时间t7,第一解串行化器235a可以向第一读取请求器输出被级联为第一数据对象305a的第一偶子数据对象310a和第一奇子数据对象315b。也在时间t7,第二解串行化器235b向第二读取请求器输出被级联为第二数据对象305a的第二偶子数据对象310a和第二奇子数据对象315b。通过断开多于一个数据对象来交织它们并且将每个数据对象的子部分一起发送并且再次组合适当部分可以避免在存在两个或者更多读取请求器时从单端口存储器的读取冲突。
[0040]图4是根据本公开的实施例的用于避免在单端口存储器设备中的写入冲突的方法400的流程图。方法400可以在操作405开始。在操作405中,第一数据对象可以被划分成第一偶子数据对象和第一奇子数据对象。在一个实施例中,第一数据对象可以从第一写入操作产生。第一写入操作可以从第一数据发送器、诸如高速缓存(L3高速缓存)或者任何其它电路源被发送到单端口存储器设备、诸如SRAM或者DRAM。在一个实施例中,第一数据对象可以被均匀地拆分成第一偶子数据对象和第一奇子数据对象。在其它实施例中,可以设想如何划分第一数据对象、是否对其均匀地或者非均匀地划分和其被划分多少次、例如三次或者四次。第一数据对象的划分可以由第一串行化器完成。
[0041]在操作410中,第二数据对象可以被划分成第二偶子数据对象和第二奇子数据对象。在一个实施例中,第二数据对象可以从第二写入操作产生。第二写入操作可以从第二数据发送器、诸如高速缓存(L3高速缓存)或者任何其它电路数据对象源针对单端口存储器设备、诸如SRAM或者DRAM发生。在一个实施例中,第二数据对象可以被均匀地拆分成第二偶子数据对象和第二奇子数据对象。在其它实施例中,可以设想如何划分第二数据对象、是否对其均匀地或者非均匀地划分和其被划分多少次、例如三次或者四次。第二数据对象的划分可以由第二串行化器完成。
[0042]在操作415中,第一偶子数据对象可以被存储于第一单端口存储器设备中,并且第二奇子数据对象可以被存储于第二单端口存储器设备中。在操作420中,第二偶子数据对象可以被存储于第一单端口存储器设备中,并且第一奇子数据对象可以被存储于第二单端口存储器设备中。在向第二单端口存储器设备写入第一和第二奇子数据对象时,可以对准第一和第二数据对象,从而第一和第二奇子数据对象的写入不在相同时间出现。在各种实施例中,可以对准第一和第二写入操作,从而在第一偶子数据对象被写入到第一单端口存储器设备时,第二奇子数据对象被写入到第二单端口存储器设备。类似地,在第一奇子数据对象被写入到第二单端口存储器设备时,然后第二偶子数据对象被写入到第一单端口存储器设备。
[0043]图5图示根据实施例的模块500的框图,在该模块上,单端口存储器设备被配置为避免数据对象的写入冲突,其中数据对象未被划分成子数据对象。与某些实施例一致,模块500可以用作图1的模块115。模块500可以被配置为在没有串行化器且没有使用子数据对象的情况下操作。可以在模块500中使用数据对象的规则总线宽度。数据对象中的每个数据对象可以根据最低阶地址位而为奇或者偶。而且,数据总线也可以在模块500中以其规则数据宽度和速度运行。
[0044]这里讨论的各种实施例、包括结合图2和图5讨论的实施例可以具有对使用的逻辑的具体类型和数量的不同要求。例如,在图5中图示第一数据发送器505a、第二数据发送器505b和模块500。第一数据发送器505a和第二数据发送器505b可以包括用于允许模块500的逻辑正确地操作的起动逻辑。在图6中示出并且以下进一步说明起动逻辑的示例。模块500可以包括这里可以统称为可选延迟510的第一可选延迟510a和第二可选延迟510b。模块500可以包括这里可以统称为写入复用器520的第一写入复用器520a和第二写入复用器520b。模块500也可以包括多个单写入端口存储器。在图5中示出单端口存储器设备525a、525b、525c和525d这四个单端口存储器设备作为示例。单端口存储器设备这里可以统称为单端口存储器设备525。模块500也可以包括写入控制器530和读取控制器535。模块500也可以包括这里可以统称为读取复用器540的第一读取复用器540a和第二读取复用器540b。
[0045]第一数据发送器505a和第二数据发送器505b可以与模块500的相应第一可选延迟510a和第二可选延迟510b通信地耦合。数据发送器505可以包括在图6中进一步说明的修改的起动逻辑。起动逻辑可以用来保证以相同方式被对准的情况下来自发送器505的数据传送到达模块500。每个数据传送可以包含多个数据对象。数据对象可以按照它们将被发送到单端口存储器的顺序作为偶和奇数据对象交替。数据发送器505可以等待以在两个发送器具有相同数目的数据对象之后传送数据对象。一旦数据传送被模块500接收并且以相同方式对准,然后它们可以通过可选延迟确保数据对象在不同地被对准的情况下且在基本上相同的时间到达实际单端口存储器设备525。例如,可选延迟510可以保证一个数据发送器505将在另一数据发送器发送它的奇数据对象时向单端口存储器设备525发送它的偶数据对象。延迟是可选的,因为零是有效偶数目延迟。例如,在两个发送器具有待写入的相同数量的数据对象时,一个发送器可以立即开始而无延迟,而另一发送器可以被延迟一个数据对象。
[0046]第一可选延迟510a和第二可选延迟510b分别与偶复用器520a和奇复用器520b通信地耦合。从任一数据发送器505,偶复用器520a可以接收偶数据对象而奇复用器520b可以接收奇数据对象。偶复用器520a可以通信地耦合到第一偶单端口存储器设备525a和第二偶单端口存储器设备525b。第一偶单端口存储器设备525a (最高阶位地址)可以接收偶数据对象的上
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1