CN104681082A - 单端口存储器件中的读和写冲突避免方法及其半导体芯片 - Google Patents

单端口存储器件中的读和写冲突避免方法及其半导体芯片 Download PDF

Info

Publication number
CN104681082A
CN104681082A CN201410687013.0A CN201410687013A CN104681082A CN 104681082 A CN104681082 A CN 104681082A CN 201410687013 A CN201410687013 A CN 201410687013A CN 104681082 A CN104681082 A CN 104681082A
Authority
CN
China
Prior art keywords
port memory
memory device
number subdata
data object
even number
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.)
Granted
Application number
CN201410687013.0A
Other languages
English (en)
Other versions
CN104681082B (zh
Inventor
N·哈格斯皮尔
S·荣汉斯
M·克莱纳
J·沃尔特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104681082A publication Critical patent/CN104681082A/zh
Application granted granted Critical
Publication of CN104681082B publication Critical patent/CN104681082B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2209Concurrent read and write

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Static Random-Access Memory (AREA)

Abstract

描述了单端口存储器件中的读和写冲突避免方法及其半导体芯片。将来自第一写操作的第一数据对象划分成第一偶数子数据对象和第一奇数子数据对象。将来自第二写操作的第二数据对象划分成第二偶数子数据对象和第二奇数子数据对象。当第一写操作和第二写操作同时发生时,将第一偶数子数据对象存储到第一单端口存储器件并将第二奇数子数据对象存储到第二单端口存储器件。当第一写操作和第二写操作同时发生时,将第二偶数子数据对象存储到第一单端口存储器件并将第一奇数子数据对象存储到第二单端口存储器件。

Description

单端口存储器件中的读和写冲突避免方法及其半导体芯片
技术领域
本发明一般涉及单端口存储器件,并且更特别地涉及单端口存储器件中的读和写冲突避免系统。
背景技术
单端口存储器件一次只可以允许一个写或读操作。单端口存储器件的示例可以包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等等。SRAM是一种易失性存储器,其中存储的任何数据在提供给SRAM的电源关闭时被擦除。SRAM单元经常由六个晶体管组成。四个晶体管构成交叉耦合锁存器,其存储逻辑一或逻辑零。另外两个晶体管用于在读和写操作期间存取SRAM单元。对SRAM的存取速度与某些其它存储器相比而言很快,并且因此经常被用作高速缓冲存储器和缓冲器。诸如SRAM之类的单端口存储器件经常被用作两个异步电路之间的缓冲器。
发明内容
在实施例中,描述了一种在单端口存储器件中避免来自两个或更多独立写操作的写冲突的方法。将来自第一写操作的第一数据对象划分成第一偶数子数据对象和第一奇数子数据对象。将来自第二写操作的第二数据对象划分成第二偶数子数据对象和第二奇数子数据对象。当第一写操作和第二写操作基本上同时发生时,在单个写入中将第一偶数子数据对象存储到第一单端口存储器件并将第二奇数子数据对象存储到第二单端口存储器件。当第一写操作和第二写操作基本上同时发生时,利用单个写入将第二偶数子数据对象存储到第一单端口存储器件并将第一奇数子数据对象存储到第二单端口存储器件。
在另一实施例中,描述了包括模块的半导体芯片。该模块包括配置成存储第一偶数子数据对象和第二偶数子数据对象的第一单端口存储器件。该模块还包括配置成存储第一奇数子数据对象和第二奇数子数据对象的第二单端口存储器件。该模块还包括串行器。该串行器配置成将来自第一写操作的第一数据对象划分成第一偶数子数据对象和第一奇数子数据对象。该串行器还配置成将来自第二写操作的第二数据对象划分成第二偶数子数据对象和第二奇数子数据对象。当第一写操作和第二写操作基本上同时发生时,该串行器还能够在单个写入中将第一偶数子数据对象存储到第一单端口存储器件并将第二奇数子数据对象存储到第二单端口存储器件。此外,该串行器配置成:当第一写操作和第二写操作基本上同时发生时,在单个写入中将第二偶数子数据对象存储到第一单端口存储器件并将第一奇数子数据对象存储到第二单端口存储器件。
在又一实施例中,描述了一种避免来自两个或更多独立读操作请求的对单端口存储器件的读冲突的方法。从第一读请求器接收针对第一数据对象的第一读请求。在与第一读请求基本上相同的时刻从第二读请求器接收针对第二数据对象的第二读请求。从第一单端口存储器件读取第一数据对象的第一偶数子数据对象。在与读取第一偶数子数据对象基本上相同的时刻从第二单端口存储器件读取第二数据对象的第二奇数子数据对象。从第二单端口存储器件读取第一数据对象的第一奇数子数据对象。在与读取第一奇数子数据对象基本上相同的时刻从第一单端口存储器件读取第二数据对象的第二偶数子数据对象。组合第一偶数子数据对象和第一奇数子数据对象以形成第一数据对象。组合第二偶数子数据对象和第一奇数子数据对象以形成第二数据对象。
附图说明
将参考附图从随后的详细说明中更好地理解实施例,在附图中:
图1示出根据实施例的半导体芯片的框图,在所述半导体芯片上,支持单端口存储器件的模块被配置成避免写冲突和读冲突。
图2示出根据实施例的模块的框图,其中单端口存储器件位于所述模块上并且所述模块被配置成避免单端口存储器件上的写冲突和读冲突。
图3示出根据实施例通过图2的模块的数据对象流的时序图。
图4示出根据实施例的用于避免单端口存储器件中的写冲突的流程图。
图5示出根据实施例的模块的框图,在所述模块上,单端口存储器件被配置成避免数据对象的写冲突,其中所述数据对象未被划分成子数据对象。
图6示出根据实施例的发送写操作的数据发送器的启动逻辑。
图7示出根据实施例的通过诸如图5的模块之类的模块的数据对象流的时序图。
图8示出根据实施例的用于避免诸如图5的模块之类的模块中的单端口存储器件中的写冲突的方法的流程图。
图9示出根据各个实施例的用于图5的模块的读操作电路。
具体实施方式
附图中示出的特征不一定按比例绘制。熟知的组件和处理技术的描述被省略以避免不必要地模糊所公开的实施例。实施例的描述仅通过示例的方式提供,并且不旨在限制所要求保护的发明的范围。相同的附图标记可以在附图和详细描述中使用以指代相同的设备、部分、组件、步骤、操作等等。
本文的实施例提供了一种避免来自两个或更多数据对象发送器的单端口存储器件写冲突的半导体芯片和方法,所述两个或更多数据对象发送器执行可能同时发生的写操作从而导致写冲突。可以通过将写操作的数据对象划分成两个或更多子数据对象来避免写冲突。可以对每个写操作进行划分、并且写操作的每个子数据对象可以具有专用的单端口存储器件。每个专用单端口存储器件可以存储来自每个写操作的一种类型的子数据对象。这允许写操作同时到达单端口存储器件,以便将来自第一写操作的第一类型子数据对象写入第一单端口存储器件,同时将来自第二写操作的第二类型子数据对象写入第二单端口存储器件。在实施例中,可以按照防止相同的单端口存储器件上的写冲突的目的的必要,通过将第一单端口存储器件专用于偶数数据对象、并将第二单端口存储器件专用于奇数数据对象,来对准和延迟数据对象。
其他实施例包括:在基本上相同的时刻将偶数数据对象存储到第一单端口存储器并将奇数数据对象存储到第二单端口存储器。来自两个或更多发送器的偶数和奇数数据对象在存储到单端口存储器时可以被交织(interleave)以便不产生写冲突。本文的其他实施例提供了避免两个或更多读请求器对单端口存储器的单端口存储器读冲突的半导体芯片和方法。
在单端口存储器件的某些读/写环境中,写冲突可能会发生。当单端口存储器件中两个或更多写操作基本上同时到达时可能会发生写冲突。写冲突会在试图被执行的操作中产生错误。单端口存储器件可以接收两个或更多写操作,因为它们可能正在接收来自两个或更多独立源的写操作,其中所述两个或更多独立源共享该单端口存储器件的资源。出于诸如为了降低功耗和尺寸限制之类的多种原因,共享单端口存储器件可能是有利的。
在单端口存储器件中不但可能有写冲突而且也可能发生读冲突。在基本上相同的时刻有多个读请求器从共享的单端口存储器请求数据对象时,可能会发生读冲突。读冲突也会在试图被执行的操作中产生错误。
本公开的各方面基于这样的认识:单端口存储器件中的写冲突可以通过使用多端口存储器来应对,其中多端口存储器允许同时向存储器的多于一行进行写入。每个写操作源可以具有专用写端口,这将允许同时向存储器的不同行进行写入。然而,在功率、面积、可测试性、产出和开发工作等方面,多端口存储器会比单端口存储器件更昂贵。避免单端口存储器件中的写冲突的另一认识是:当有来自独立源的多个写操作时使用两倍那么多的单端口存储器件。每个源将得到其自己的专用单端口存储器件组。附加的控制逻辑可以用来跟踪哪个写入源拥有实际的单端口存储器件。使单端口存储器件的数量成为两倍也会使功率、面积和产出方面的成本成为两倍。这些认识由于其避免写冲突的性质(多端口和双倍数量的单端口存储器)而也会预期到读冲突的避免。
在单端口存储器件中可能会发生写冲突的情形的示例是在计算机处理器芯片或其他半导体芯片上。诸如三级(L3)高速缓存之类的处理器芯片上的数据发送器(本文中也被称为写入源)可以被分割成两个,这允许来自两个独立的写入源(例如,第一L3高速缓存和第二L3高速缓存)的第一和第二写操作。分割的L3高速缓存可以连接到诸如PCI桥控制器之类的包含单端口存储器件的模块。PCI桥控制器可以包括针对从L3高速缓存取回数据对象的每个I/O取回有限状态机的专用缓冲器。每个缓冲器可以具有256字节的容量。缓冲器不是一次被全部写入而是以4:1周期以16字节被写入。在示例模块中可以有总共32个缓冲器。出于有效率的功率和面积的原因,多个缓冲器可以共享单端口存储器件,诸如SRAM或DRAM。对于所使用的总共八个SRAM而言,在每个SRAM中可以有四个缓冲器。SRAM内的缓冲器可以与对通过分割而生成的L3高速缓存中的任何一个的取回相关联。两个L3高速缓存是独立的、并且具有数据对象的响应可能在任何时刻到达。当针对共享同一个单端口SRAM的两个缓冲器的两个取回响应(也被称为写操作)同时从第一L3高速缓存和第二L3高速缓存到达时,可能会发生写冲突。
图1示出根据本公开实施例的半导体芯片100的框图,在半导体芯片100上,支持单端口存储器件120的模块115被配置成避免写冲突。半导体芯片100例如可以是计算机处理芯片。半导体芯片100可以包括统称为105的一个或多个处理器核。图1示出四个核105a、105b、105c和105d。半导体芯片100可以包括第一数据发送器110a和第二数据发送器110b,本文中统称为数据发送器110。在实施例中,数据发送器110可以是诸如L3高速缓存之类的高速缓存。每个数据发送器110可以被核105共享。与模块115通信的数据发送器110可以向模块115发送写操作。模块115可以包括一个或多个单端口存储器件(SPM)120。模块115可以是外围组件互连(PCI)桥控制器,然而,也可以考虑包括单端口存储器件120的其它模块。模块115可以向一个或多个读请求器输出。在实施例中,可以使用多个半导体芯片来包含所提及的组件。
本文的实施例可以提供模块115,其被配置成允许从数据发送器110向单端口存储器件120的写操作而不会发生写冲突。可以通过将来自数据发送器110的写操作的数据对象划分成两个或更多子数据对象来避免写冲突。可以针对每个写操作进行划分、并且写操作的每个子数据对象可以具有专用单端口存储器件120。每个专用单端口存储器件120存储来自每个写操作的一种类型的子数据对象。这允许写操作同时到达单端口存储器件120,以便将来自第一写操作的第一类型子数据对象写入第一单端口存储器件,同时将来自第二写操作的第二类型子数据对象写入第二单端口存储器件。在实施例中,可以按照防止相同的单端口存储器件上的写冲突的目的的必要,通过将第一单端口存储器件专用于偶数数据对象、并将第二单端口存储器件专用于奇数数据对象,来对准和延迟数据对象。当存在来自单个数据请求器的数据请求时,模块115可以并行地输出数据对象的偶数和奇数子数据对象以便合并成整个数据对象。在其他实施例中,当存在同时来自两个或更多读请求器的两个或更多数据对象请求时,模块115可以配置成发送两个数据对象而不导致读冲突。
图2示出根据实施例的模块115的框图,其中单端口存储器件120位于模块115中并且该模块115被配置成避免该单端口存储器件120上的写冲突和读冲突。按照某些实施例,模块115可以包括用于每个写操作的串行器,诸如串行器205a和205b,其被统称为串行器205。模块115可以包括多个单端口存储器件120(120a、120b、120c和120d)、写控制器215、读控制器220、写电路225和读电路230。第一写操作可以来自第一数据发送器110a,诸如高速缓存或者可产生写操作的任何其它电路。第二写操作可以来自第二数据发送器110b,诸如高速缓存或者可产生写操作的任何其它电路。第一写操作可以产生第一数据对象。第二写操作可以产生第二数据对象。数据对象可以是数据发送器110和单端口存储器件120之间的接口总线的自然宽度。在从L3高速缓存向PCI桥控制器的写操作的情况中,数据对象例如可以是16个字节。
一旦由模块115从数据发送器110接收到,第一数据对象可以进入第一串行器205a。第二数据对象可以进入第二串行器205b。串行器205可以将数据对象划分成多个子数据对象。在图示的示例中,串行器205可以是2:1的串行器,其可以要求单端口存储器件以常规总线速度两倍的速度进行操作。串行器205可以将数据对象划分成两半成为偶数和奇数子数据对象。这可以从第一数据对象产生第一偶数子数据对象和第一奇数子数据对象。第二偶数子数据对象和第二奇数子数据对象可以由第二串行器205b从第二数据对象产生。在给定的示例中,16字节的数据对象可以被划分成8字节的子数据对象。偶数子数据对象可以发送到专用于偶数子数据对象的第一单端口存储器件,并且奇数子数据对象可以发送到专用于奇数子数据对象的第二单端口存储器件。
子数据对象可以被写入到多个单端口存储器件120。在实施例中,单端口存储器件120可以是SRAM。每个单端口存储器件120可以被指定用于偶数子数据对象或者奇数子数据对象。每个单端口存储器件120可以包含多个缓冲器。单端口存储器件120a和120b可以包括八个缓冲器。每个缓冲器的一半可以在每个单端口存储器件120a和120b中。例如,单端口存储器件120a可以包括用于偶数子数据对象的偶数缓冲器(0),并且单端口存储器件120b可以包括用于该数据对象的奇数部分的奇数缓冲器(0)。如所示,写电路225可以利用示例性写多路复用器240调节进入单端口存储器件120的子数据对象。写控制器215可以与单端口存储器件120互连,以便向单端口存储器件提供写使能信号和写地址。写控制器可以与数据发送器110可操作地通信。数据发送器110可以在执行写入时挑选写控制器215。写控制器215也可以与每个写多路复用器240通信(为了附图的清楚起见,在图2中写控制器215与写电路225通信)以操纵子数据对象。
对于针对单端口存储器件120的每个写使能周期,写操作可以被设置成只写入奇数子数据对象或偶数子数据对象。这可以被实现,使得第一写操作并不与第二写操作同等地对准。在图示的示例中,第一数据发送器110a可以写入偶数子数据对象,而第二数据发送器110b写入奇数数据对象。该配置可以确保不会发生单端口存储器件写冲突。这是因为,当偶数子数据对象从第一数据发送器110a被写入到第一单端口存储器件120a时,奇数子数据对象从第二发送器110b被写入到第二单端口存储器件120b,并且当奇数子数据对象从第一数据发送器110b被写入时,反之亦然。
当要从单端口存储器件120中提取数据对象时,读控制器220可以管理获取子数据对象的读操作。读控制器220可以与每个单端口存储器件120互连。读控制器220可以被用来向单端口存储器件120提供读使能信号和读地址。读控制器220可以接收来自一个或多个读请求器250a和250b的读请求。读控制器220也可以与读电路230通信。读控制器220可以控制读电路230的多路解复用器245以及解串器235a和235b以进行适当的读取。可能会存在多个读请求器同时请求一个或多个数据对象,这可能会导致读冲突。图2示出当存在两个读请求器时的读电路230的实施例。在各种实施例中,从一个读请求器一次可以发生一次读取。图5示出下面进一步解释的读电路545,其可以用于模块115以取代当存在一个读请求器时的读电路230。当存在一个读请求器时,奇数和偶数子数据对象可以从针对第一或第二数据对象的单端口存储器件120中被提取或发送。可以并行地提取奇数和偶数子数据对象,以便取决于哪个数据对象被请求而形成完整的第一或第二数据对象。
在其它实施例中,如图2所示,可以存在两个读请求器。可能有来自第一读请求器250a的针对数据对象的第一读取请求,同时有来自第二读请求器250b的针对存储在至少一个相同的单端口存储器中的数据对象的第二请求。这会导致与上面解释的写冲突相类似的读冲突。单端口存储器120可以与相应的多路解复用器245通信。每个多路解复用器245可以与第一解串器235a和第二解串器235b通信。读控制器220可以管理多路解复用器245以及解串器235a和235b的输出。第一读请求器250a可以耦合到第一解串器235a的输出、并且第二读请求器250b可以耦合到第二解串器235b的输出。两个读请求器可以耦合到读控制器220,用于用信号通知读取。
在各种实施例中,第一和第二数据对象可以被存储在至少一个相同的单端口存储器(其可以是针对偶数子数据对象的单端口存储器120a和针对奇数子数据对象的单端口存储器120b)中。第一读请求器可以请求第一数据对象,同时第二读请求器请求第二数据对象。如果出现两个读请求,则模块115的读控制器220可以引导来自偶数单端口存储器120a的第一数据对象的第一偶数子数据对象以使其发送到第一解串器235a。另外,来自奇数单端口存储器120b的第二数据对象的第二奇数子数据对象可以被发送到第二解串器235b。这可以全部发生在读取的前半周期。在读取的后半周期期间,模块115的读控制器220可以引导来自偶数单端口存储器120a的第二数据对象的第二偶数子数据对象以使其发送到第二解串器235b。此外,来自偶数单端口存储器120a的第一数据对象的第一奇数子数据对象可以被发送到第一解串器235a。在第一解串器235a处,可以组合第一奇数子数据对象和第一偶数子数据对象,以向第一读请求器输出第一数据对象。在第二解串器235b处,第二偶数子数据对象可以与第二奇数子数据对象组合,以向第二读请求器输出第二数据对象。
图3示出根据实施例通过模块115的数据对象流的时序图300。参考标记350指向数据对象的写/读的写操作部分。参考标记360指向数据对象的写/读的读操作部分。对于写操作350,在时刻t0,第一写操作可以向模块115发送第一数据对象305a,并且在基本相同的时刻,第二写操作可以发送第二数据对象305b。第一写操作可以来自于第一发送器110a(图1)。第二写操作可以来自于第二发送器110b(图1)。
在时刻t1,第一数据对象305a和第二数据对象305b可以都进入它们各自的第一串行器205a和第二串行器205b。第一串行器205a可以将第一数据对象305a划分成第一偶数子数据对象310a和第一奇数子数据对象315a。例如,一个16B数据对象可以划分成两个8B子数据对象。在其它实施例中,第一串行器205a可以将第一数据对象305a划分成任意数量的子数据对象。另外,第二串行器205b可以将第二数据对象305b划分成第二偶数子数据对象310b和第二奇数子数据对象315b。在其它实施例中,第二串行器205b可以将第二数据对象305b划分成任意数量的子数据对象。
在时刻t2,第一偶数子数据对象310a可以被写入到支持偶数子数据对象的单端口存储器件。第二奇数子数据对象315b可以被写入到支持奇数子数据对象的单端口存储器件。在其它实施例中,第二奇数子数据对象315b的时序可以在之后发生。第二串行器205b可以从第一串行器205a被延迟半个周期,并以在时刻t3被写入的第二偶数子数据对象310b开始,然后使第二奇数子数据对象315b被随后写入。
在时刻t3,第一奇数子数据对象315a可以被写入到支持奇数子数据对象的单端口存储器件。第二偶数子数据对象310b可以被写入到支持偶数子数据对象的单端口存储器件。在子数据对象正被写入到单端口存储器件时使子数据对象交替可以避免从独立的发送器基本同时地到达模块的数据对象的写冲突。
参考标记360指向来自单端口存储器件的子数据对象的读操作。读操作可以包括来自两个读请求器的两个独立的读请求。在时刻t4,读控制器220(图2)可以接收来自第一读请求器的对第一数据对象305a的第一读请求。读控制器220还可以接收来自第二读请求器的对第二数据对象305b的第二读请求。读控制器220可以发布针对第一数据对象305a的第一读命令、以及针对第二数据对象305b的第二读命令。在读命令的前半周期期间,奇数和偶数单端口存储器件可以输出第一数据对象305a的第一偶数子数据对象310a和第二数据对象305b的第二奇数子数据对象315b。在其它实施例中,可能只有一个读请求器,其时序在图7中示出。
在时刻t5,在读命令的后半周期期间,读控制器220可以发布针对从奇数单端口存储器120b要发送的第一数据对象305a的第一奇数子数据对象315a的命令。第二数据对象305b的第二偶数子数据对象310b可以从奇数单端口存储器120a发送。
在时刻t6,第一偶数子数据对象310a和第一奇数子数据对象315a可以进入第一读请求器的第一解串器235a(图2)。还是在时刻t6,第二偶数子数据对象310b和第二奇数子数据对象315b可以进入第二读请求器的第二解串器235b。
在时刻t7,第一解串器235a可以向第一读请求器输出第一偶数和奇数子数据对象310a和315b,其被串接起来作为第一数据对象305a。此外,在时刻t7,第二解串器235b向第二读请求器输出第二偶数和奇数子数据对象310a和315b,其被串接起来作为第二数据对象305a。当有两个或更多读请求器时,通过将多于一个的数据对象分裂开并将每个数据对象的子部分一起发送、以及再次组合适当的部分来交织多于一个的数据对象,可以避免来自单端口存储器的读冲突。
图4示出根据本公开实施例的用于避免单端口存储器件中的写冲突的方法400的流程图。方法400可以开始于操作405。在操作405中,可以将第一数据对象划分成第一偶数子数据对象和第一奇数子数据对象。在实施例中,第一数据对象可以产生于第一写操作。第一写操作可以从诸如高速缓存(L3高速缓存)或者任何其它电路源之类的第一数据发送器向诸如SRAM或DRAM之类的单端口存储器件发送。在实施例中,第一数据对象可以被均匀地划分成第一偶数子数据对象和第一奇数子数据对象。在其它实施例中,如何划分第一数据对象、是被均匀地还是不均匀地划分、以及将其进行多少次划分(例如,三次或四次)都是可预期到的。第一数据对象的划分可以由第一串行器来完成。
在操作410中,可以将第二数据对象划分成第二偶数子数据对象和第二奇数子数据对象。在实施例中,第二数据对象可以产生于第二写操作。第二写操作可以从诸如高速缓存(L3高速缓存)或者任何其它电路数据对象源之类的第二数据发送器向诸如SRAM或DRAM之类的单端口存储器件发送。在实施例中,第二数据对象可以被均匀地划分成第二偶数子数据对象和第二奇数子数据对象。在其它实施例中,如何划分第二数据对象、是被均匀地还是不均匀地划分、以及将其进行多少次划分(例如,三次或四次)都是可预期到的。第二数据对象的划分可以由第二串行器来完成。
在操作415中,可以将第一偶数子数据对象存储在第一单端口存储器件中、并且可以将第二奇数子数据对象存储在第二单端口存储器件中。在操作420中,可以将第二偶数子数据对象存储在第一单端口存储器件中、并且可以将第一奇数子数据对象存储在第二单端口存储器件中。当将第一和第二奇数子数据对象写入到第二单端口存储器件时,第一和第二数据对象可以被对准,使得第一和第二奇数子数据对象的写入不会在同一时刻发生。在各种实施例中,第一和第二写操作可以被对准,使得当第一偶数子数据对象正被写入到第一单端口存储器件时,第二奇数子数据对象正被写入到第二单端口存储器件。同样,当第一奇数子数据对象正被写入到第二单端口存储器件时,那么第二偶数子数据对象正被写入到第一单端口存储器件。
图5示出根据实施例的模块500的框图,在所述模块500上,单端口存储器件被配置成避免数据对象的写冲突,其中所述数据对象未被划分成子数据对象。按照某些实施例,模块500可以用作图1的模块115。模块500可以配置成在无串行器且不使用子数据对象的情况下进行操作。在模块500中可以使用数据对象的常规总线宽度。取决于最低阶(lowest order)地址位,每个数据对象可以是奇数或偶数。此外,数据总线可以按照其常规数据宽度和速度在模块500中运行。
在此所讨论的各种实施例(包括结合图2和5所讨论的那些)可能对所使用的逻辑的特定类型和数量具有不同的要求。例如,第一数据发送器505a、第二数据发送器505b以及模块500在图5中示出。第一数据发送器505a和第二数据发送器505b可以包括启动逻辑以允许模块500的逻辑正确地操作。启动逻辑的示例在图6中示出、并在下面进一步解释。模块500可以包括第一可选延迟510a和第二可选延迟510b,其在此可以被统称为可选延迟510。模块500可以包括第一写多路复用器520a和第二写多路复用器520b,其可以被统称为写多路复用器520。模块500还可以包括多个单写端口存储器。四个单端口存储器件在图5中示出作为示例,即单端口存储器件525a、525b、525c和525d。单端口存储器件在此可以被统称为单端口存储器件525。模块500还可以包括写控制器530和读控制器535。模块500还可以包括第一读多路复用器540a和第二读多路复用器540b,其在此可以被统称为读多路复用器540。
第一数据发送器505a和第二数据发送器505b可以可通信地与模块500的相应的第一可选延迟510a和第二可选延迟510b相耦合。数据发送器505可以包括修改的启动逻辑,其在图6中进一步解释。启动逻辑可以被用来确保来自发送器505的数据传送到达模块500时以相同的方式对准。每个数据传送可以包含多个数据对象。数据对象可以按照它们将被发送到单端口存储器的顺序交替作为偶数和奇数数据对象。数据发送器505可以等待以便在两个发送器具有相同数量的数据对象之后传送数据对象。一旦数据传送被模块500接收并以相同的方式对准,则可选延迟可以保证它们使数据对象被不同地对准且在基本上相同的时刻到达实际的单端口存储器件525。例如,可选延迟510可以确保:在其它数据发送器发送其奇数数据对象时,一个数据发送器505将发送其偶数数据对象到单端口存储器件525。延迟是可选的,因为零是有效的偶数延迟。例如,当两个发送器都具有相同数量的数据对象要写入时,一个发送器可以没有延迟地立即开始,而另一发送器可以被延迟一个数据对象。
第一和第二可选延迟510a和510b分别可通信地与偶数多路复用器520a和奇数多路复用器520b耦合。偶数多路复用器520a可以接收来自任何一个数据发送器505的偶数数据对象、并且奇数多路复用器520b可以接收奇数数据对象。偶数多路复用器520a可以可通信地耦合到第一偶数单端口存储器件525a和第二偶数单端口存储器件525b。第一偶数单端口存储器件525a(最高阶位地址)可以接收偶数数据对象的上半部分、并且第二偶数单端口存储器件525b可以接收偶数数据对象的下半部分(最低阶位地址)。同样地,第一奇数单端口存储器件525c可以接收奇数数据对象的上半部分、并且第二奇数单端口存储器件525d可以接收奇数数据对象的下半部分。在其它实施例中,可以使用双倍宽的单端口存储器件使得每个单端口存储器件具有与偶数或奇数数据对象相同的宽度。
数据发送器505还可以与写控制器530可操作地通信。写控制器可以从数据发送器505接收写命令。写控制器530可以与每个单端口存储器件525可通信地耦合、并且可以发信号传送写地址和针对该写地址的写使能。写控制器530可以同步用于数据对象写入的上半部分和下半部分。偶数对的单端口存储器件可以被写控制器530视为一个单端口存储器件。奇数对的单端口存储器件525也可以被写控制器530视为一个单端口存储器件。
图5示出当存在单个读请求器时来自单端口存储器的读操作的实施例。读控制器535可以与每个单端口存储器件525可通信地耦合、并且当从读请求器550接收到读请求时可以发信号传送针对单端口存储器件525内的数据对象的读地址和读使能。读请求器550可以可通信地耦合到读控制器。读控制器535可以在基本上相同的时刻为所请求的数据对象的上半部分和下半部分发信号。偶数对的单端口存储器件可以被读控制器535视为一个单端口存储器件。同样,奇数对的单端口存储器件525可以被读控制器535视为一个单端口存储器件。数据对象可以以信号形式发送到读电路545,其可以包含用于上半部分数据对象的上部读多路复用器540a和用于下半部分数据对象的下部读多路复用器540b。在被请求时,偶数数据对象的上半部分和下半部分可以一起以信号形式发送。两个半部分可以通过被并行地发送而串接起来。同样,在奇数数据对象被请求时,奇数数据对象的上半部分和下半部分可以一起以信号形式发送。两个半部分可以通过被并行地发送而串接起来。在各种实施例中,当存在两个或更多读请求器时,读电路545可以用图2的读电路230替换。
现在参考图9,图9示出模块500,其中存在来自系统的两个读请求器。具体地,图9示出包括读操作的模块500的部分。偶数单端口存储器525a和525b可以可通信地耦合到第一多路解复用器902a。奇数单端口存储器525c和525d可以耦合到第二多路解复用器。当读取每对单端口存储器时,单端口存储器的上半部分和下半部分的输出可以在到达它们各自的多路解复用器902a和902b之前被串接。取决于数据对象被指定去往的目的地,多路解复用器902可以将数据对象路由到第一数据发送器910a或第二数据发送器910b。读控制器可以控制从单端口存储器525以及读电路904的多路解复用器902的读取何时发生。
第一读请求器910a和第二读请求器910b可以在基本相同的时刻从单端口存储器525a请求读取。第一和第二请求器910a和910b可以具有延迟逻辑,其通过在第一和第二读请求器之间交替奇数和偶数数据对象来确保两个或更多读请求器没有读冲突。延迟逻辑可以将请求器中的一个对数据对象的请求延迟一个周期。一个请求器可以接收偶数数据对象,而另一请求器接收奇数数据对象。在各种实施例中,读控制器906可以包含接收逻辑,使得当两个请求器910a和910b在基本上相同的时刻请求数据对象时,读控制器906可以在奇数数据对象正被第二数据请求器910b读取时,引导偶数数据对象以使其由第一读请求器910a读取。
图6示出根据实施例的数据发送器505的示例性启动逻辑600。启动逻辑600包括数据传送逻辑605、偶数状态锁存器610、与门615、反相器620、以及接收数据总线请求625的数据传送仲裁器630。数据传送逻辑605可以是对数据对象进行计数、并当数据总线可用时发信号通知数据传送仲裁器630的逻辑。当数据总线对模块500可用时,数据传送逻辑605可以用逻辑一发信号通知与门615。当数据对象发送器505处于偶数周期(例如4:1周期)时,偶数状态锁存器610发信号向与门615通知逻辑一。当数据总线可用、并且发送器505处于偶数周期时,则数据总线请求626可以被数据传送仲裁器630许可并发送给模块500。
在某些实施例中,如果有奇数个数据对象,则在可选延迟510处可以延迟具有奇数个数据对象的数据传送以等待一个数据对象,以便从在偶数格(even grid)开始的偶数数据传送开始。在各种实施例中,可以在数据发送器505的一个中用奇数状态锁存器替换偶数状态锁存器610。这可以允许从数据发送器505发送的数据对象在奇数和偶数数据对象之间交替,而无需可选延迟电路510。
图7示出根据实施例通过模块500的数据对象流的时序图700。参考标记750示出对模块500的单端口存储器525的写操作,而参考标记760示出来自模块500的单端口存储器525的读操作。读操作示出来自单个读请求器的读请求。在时刻t0,具有至少第一偶数数据对象705a和第一奇数数据对象707a的第一写操作可以从第一数据发送器505a发送。在与第一写操作从第一发送器505a被发送的时刻基本上相同的时刻,具有至少第二偶数数据对象705b和第一奇数数据对象707a的第二写操作可以从第二数据发送器505b发送。写操作可以被发送到可选延迟510。
在时刻t1,可选延迟510可以延迟写操作之一,使得来自一个写操作的偶数数据对象不与来自另一写操作的另一偶数数据对象同时写入到单端口存储器件。同样地,可选延迟510可以延迟写操作,使得两个奇数数据对象不会在基本上相同的时刻被写入到单端口存储器件。在时序图700所示的示例中,可以延迟第二写操作。
在时刻t2,来自第一写操作的第一偶数数据对象705a可以被写入到专用于偶数数据对象的单端口存储器件。第二偶数数据对象705b可以被延迟,使得它不会与第一偶数数据对象705a同时写入到单端口存储器件。
在时刻t3,第二偶数数据对象705b可以被写入到专用于偶数数据对象的单端口存储器件。此外,在时刻t3,第一奇数数据对象707a可以被写入到专用于奇数数据对象的单端口存储器件。
在时刻t4,第二奇数数据对象707b可以被写入到专用于奇数数据对象的单端口存储器件。延迟可以确保对相同单端口存储器件的数据对象写入在不同的时刻发生,这可以避免单端口存储器件中的写冲突。在实施例中,每个奇数和偶数数据对象可以划分成专用于数据对象的下半部分和上半部分的分离的单端口存储器。
现在参考由附图标记760标明的从单个读请求器向单端口存储器件的单个读请求。在时刻t5,读请求器可以做出对第二偶数数据对象的请求。第二偶数数据对象可能已经被划分成存储在第一偶数单端口存储器525a(图5)中的上半部分710a以及存储在第二偶数单端口存储器525b中的下半部分710b。当存在请求时,读控制器535可以发信号通知包含第二偶数数据对象705b的上半部分710a和下半部分710b的单端口存储器。单端口存储器可以在基本上相同的时刻发送上半部分710a和下半部分710b。
在时刻t6,上半部分710a和下半部分710b在被并行地发送时可以被串接。串接的两个半部分可以形成完整的第二偶数数据对象705b。第二偶数数据对象705b可以继续去往读请求器。
图8示出根据实施例的用于避免图5的模块500中的单端口存储器件中的写冲突的流程图。方法800可以开始于操作805。在操作805中,模块可以从第一数据发送器接收具有第一偶数数据对象和第一奇数数据对象的第一写操作。
在操作808中,模块还可以从第二数据发送器接收具有第二偶数数据对象和第二奇数数据对象的第二写操作。第一写操作和第二写操作可以被模块在基本上相同的时刻接收并被相同地对准。
在操作810中,可以延迟第二写操作,使得第一偶数数据对象不会与第二偶数数据对象基本上同时地写入到第一单端口存储器件。该延迟还确保第一奇数数据对象不会在与第二奇数数据对象被写入的时刻基本上相同的时刻写入到第二单端口存储器件。
在操作815中,可以将第一偶数数据对象写入到第一单端口存储器件、并且可以将第一奇数数据对象写入到第二单端口存储器件。另外,可以将第二偶数数据对象写入到第一单端口存储器件、并且可以将第二奇数数据对象写入到第二单端口存储器件。
尽管已经参考其特定实施例描述了本发明,但本领域技术人员在不脱离实施例的范围和精神的情况下将能够对所描述的各种实施例做出各种修改。在此所使用的术语和描述仅仅通过举例说明的方式来阐述,并且并非意在作为限制。本领域技术人员将意识到在随附的权利要求及其等效物中所定义的实施例的精神和范围内可以存在这些及其他变型。

Claims (20)

1.一种在单端口存储器件中避免来自两个或更多独立写操作的写冲突的方法,包括:
将来自第一写操作的第一数据对象划分成第一偶数子数据对象和第一奇数子数据对象;
将来自第二写操作的第二数据对象划分成第二偶数子数据对象和第二奇数子数据对象;
当所述第一写操作和所述第二写操作基本上同时发生时,在单个写入中将所述第一偶数子数据对象存储到第一单端口存储器件并将所述第二奇数子数据对象存储到第二单端口存储器件;以及
当所述第一写操作和所述第二写操作基本上同时发生时,在单个写入中将所述第二偶数子数据对象存储到所述第一单端口存储器件并将所述第一奇数子数据对象存储到所述第二单端口存储器件。
2.如权利要求1所述的方法,还包括:
引入写延迟,使得存储所述第一和第二偶数子数据对象不在基本上相同的时刻发生、并且存储所述第一和第二奇数子数据对象不在基本上相同的时刻发生。
3.如权利要求1所述的方法,还包括:
从第一数据发送器接收所述第一数据对象和从第二数据发送器接收所述第二数据对象。
4.如权利要求3所述的方法,其中所述第一数据发送器和所述第二数据发送器是高速缓冲存储器。
5.如权利要求1所述的方法,还包括:
从第一读请求器接收针对所述第一数据对象的读请求;
从所述第一单端口存储器件读取所述第一偶数子数据对象;
在与读取所述第一偶数子数据对象基本上相同的时刻从第二单端口存储器件读取所述第一奇数子数据对象;以及
将所述第一偶数子数据对象添加到所述第一奇数子数据对象上以获得发送给所述读请求器的所述第一数据对象。
6.如权利要求1所述的方法,还包括:
从第一读请求器接收针对所述第一数据对象的第一读请求;
在与接收所述第一读请求基本上相同的时刻从第二读请求器接收针对所述第二数据对象的第二读请求;
从所述第一单端口存储器件读取所述第一偶数子数据对象;
在与读取所述第一偶数子数据对象基本上相同的时刻从所述第二单端口存储器件读取所述第二奇数子数据对象;
从所述第二单端口存储器件读取所述第一奇数子数据对象;
在与读取所述第一奇数子数据对象基本上相同的时刻从所述第一单端口存储器件读取所述第二偶数子数据对象;
组合所述第一偶数子数据对象和所述第一奇数子数据对象,以形成所述第一数据对象;
组合所述第二偶数子数据对象和所述第一奇数子数据对象,以形成所述第二数据对象;以及
向所述第一读请求器发送所述第一数据对象,并且在基本上相同的时刻向所述第二读请求器发送所述第二数据对象。
7.如权利要求1所述的方法,其中在与所述第二奇数子数据对象被写入所述第二单端口存储器件的时刻基本上相同的时刻,将所述第一偶数子数据对象写入所述第一单端口存储器件。
8.如权利要求1所述的方法,其中所述单端口存储器件是单端口静态随机存取存储器(SRAM)。
9.一种半导体芯片,包括:
模块,包括:
第一单端口存储器件,其配置成存储第一偶数子数据对象和第二偶数子数据对象,
第二单端口存储器件,其配置成存储第一奇数子数据对象和第二奇数子数据对象,以及
串行器,其配置成:
将来自第一写操作的第一数据对象划分成第一偶数子数据对象和第一奇数子数据对象;
将来自第二写操作的第二数据对象划分成第二偶数子数据对象和第二奇数子数据对象;
当所述第一写操作和所述第二写操作基本上同时发生时,在单个写入中将所述第一偶数子数据对象存储到所述第一单端口存储器件并将所述第二奇数子数据对象存储到所述第二单端口存储器件;以及
当所述第一写操作和所述第二写操作基本上同时发生时,在单个写入中将所述第二偶数子数据对象存储到所述第一单端口存储器件并将所述第一奇数子数据对象存储到所述第二单端口存储器件。
10.如权利要求9所述的半导体芯片,其中所述模块还配置成:
引入写延迟,使得存储所述第一和第二偶数子数据对象不在基本上相同的时刻发生、并且存储所述第一和第二奇数子数据对象不在基本上相同的时刻发生。
11.如权利要求9所述的半导体芯片,其中所述模块还配置成:
从第一数据发送器接收所述第一数据对象和从第二数据发送器接收所述第二数据对象。
12.如权利要求11所述的半导体芯片,其中所述第一数据发送器和所述第二数据发送器是高速缓冲存储器。
13.如权利要求9所述的半导体芯片,其中所述模块还包括:
读控制器,其配置成:
从第一读请求器接收针对所述第一数据对象的读请求;
从所述第一单端口存储器件读取所述第一偶数子数据对象;
在与读取所述第一偶数子数据对象基本上相同的时刻从第二单端口存储器件读取所述第一奇数子数据对象;以及
将所述第一偶数子数据对象添加到所述第一奇数子数据对象上以获得发送给所述读请求器的所述第一数据对象。
14.如权利要求9所述的半导体芯片,其中所述模块被还包括:
读控制器,其配置成:
从第一读请求器接收针对所述第一数据对象的第一读请求;
在与接收所述第一读请求基本上相同的时刻从第二读请求器接收针对所述第二数据对象的第二读请求;
从所述第一单端口存储器件读取所述第一偶数子数据对象;
在与读取所述第一偶数子数据对象基本上相同的时刻从所述第二单端口存储器件读取所述第二奇数子数据对象;
从所述第二单端口存储器件读取所述第一奇数子数据对象;
在与读取所述第一奇数子数据对象基本上相同的时刻从所述第一单端口存储器件读取所述第二偶数子数据对象;
组合所述第一偶数子数据对象和所述第一奇数子数据对象,以形成所述第一数据对象;
组合所述第二偶数子数据对象和所述第一奇数子数据对象,以形成所述第二数据对象;以及
向所述第一读请求器发送所述第一数据对象,并且在基本上相同的时刻向所述第二读请求器发送所述第二数据对象。
15.如权利要求9所述的半导体芯片,其中在与所述第二奇数子数据对象被写入所述第二单端口存储器件的时刻基本上相同的时刻,将所述第一偶数子数据对象写入所述第一单端口存储器件。
16.如权利要求9所述的半导体芯片,其中所述单端口存储器件是单端口静态随机存取存储器(SRAM)。
17.一种避免来自两个或更多独立读操作请求的对单端口存储器件的读冲突的方法,包括:
从第一读请求器接收针对第一数据对象的第一读请求;
在与接收所述第一读请求基本上相同的时刻,从第二读请求器接收针对第二数据对象的第二读请求;
从第一单端口存储器件读取所述第一数据对象的第一偶数子数据对象;
在与读取所述第一偶数子数据对象基本上相同的时刻,从第二单端口存储器件读取所述第二数据对象的第二奇数子数据对象;
从所述第二单端口存储器件读取所述第一数据对象的第一奇数子数据对象;
在与读取所述第一奇数子数据对象基本上相同的时刻,从所述第一单端口存储器件读取所述第二数据对象的第二偶数子数据对象;
组合所述第一偶数子数据对象和所述第一奇数子数据对象,以形成所述第一数据对象;以及
组合所述第二偶数子数据对象和所述第一奇数子数据对象,以形成所述第二数据对象。
18.如权利要求17所述的方法,还包括:
向所述第一读请求器发送所述第一数据对象,并且在基本上相同的时刻向所述第二读请求器发送所述第二数据对象。
19.如权利要求17所述的方法,还包括:
通过以下方式在基本上相同的时刻将所述第一数据对象和第二数据对象写入所述单端口存储器而不产生写冲突:
将来自第一写操作的所述第一数据对象划分成第一偶数子数据对象和第一奇数子数据对象;
将来自第二写操作的所述第二数据对象划分成第二偶数子数据对象和第二奇数子数据对象;
当所述第一写操作和所述第二写操作基本上同时发生时,在单个写入中将所述第一偶数子数据对象存储到所述第一单端口存储器件并将所述第二奇数子数据对象存储到所述第二单端口存储器件;以及
当所述第一写操作和所述第二写操作基本上同时发生时,在单个写入中将所述第二偶数子数据对象存储到所述第一单端口存储器件并将所述第一奇数子数据对象存储到所述第二单端口存储器件。
20.如权利要求17所述的方法,其中所述单端口存储器件是单端口静态随机存取存储器(SRAM)。
CN201410687013.0A 2013-11-26 2014-11-25 单端口存储器件中的读和写冲突避免方法及其半导体芯片 Active CN104681082B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/090,347 US9396116B2 (en) 2013-11-26 2013-11-26 Write and read collision avoidance in single port memory devices
US14/090347 2013-11-26

Publications (2)

Publication Number Publication Date
CN104681082A true CN104681082A (zh) 2015-06-03
CN104681082B CN104681082B (zh) 2018-06-01

Family

ID=53183682

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410687013.0A Active CN104681082B (zh) 2013-11-26 2014-11-25 单端口存储器件中的读和写冲突避免方法及其半导体芯片

Country Status (2)

Country Link
US (2) US9396116B2 (zh)
CN (1) CN104681082B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108461099A (zh) * 2017-02-21 2018-08-28 爱思开海力士有限公司 半导体存储装置
CN111610933A (zh) * 2020-05-22 2020-09-01 芯颖科技有限公司 基于ram数据动态更新的数据存储方法、装置和系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102387460B1 (ko) * 2015-04-09 2022-04-15 삼성전자주식회사 데이터 저장 장치와 이의 작동 방법
CN110858191A (zh) * 2018-08-24 2020-03-03 北京三星通信技术研究有限公司 文件处理方法、装置、电子设备及可读存储介质
CN111209232B (zh) 2018-11-21 2022-04-22 昆仑芯(北京)科技有限公司 访问静态随机存取存储器的方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4724518A (en) * 1983-07-29 1988-02-09 Hewlett-Packard Company Odd/even storage in cache memory
TW311222B (en) * 1996-09-23 1997-07-21 Ind Tech Res Inst Static random access memory of simultaneous read/write operation
CN101483743A (zh) * 2009-01-19 2009-07-15 凌阳科技股份有限公司 一种数据存取装置和方法
CN101650967A (zh) * 2009-09-08 2010-02-17 凌阳科技股份有限公司 硬件硅智产的缓冲器结构

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4280176A (en) * 1978-12-26 1981-07-21 International Business Machines Corporation Memory configuration, address interleaving, relocation and access control system
US5414719A (en) * 1992-04-24 1995-05-09 Sharp Kabushiki Kaisha Operating circuit for galois field
JP3090384B2 (ja) * 1993-06-29 2000-09-18 株式会社日立製作所 着脱可能な記憶媒体を用いる外部記憶装置
TW321770B (en) 1997-06-21 1997-12-01 Ind Tech Res Inst Single block static random access memory without read/write collision
KR100304963B1 (ko) 1998-12-29 2001-09-24 김영환 반도체메모리
DE60217346T2 (de) 2002-10-02 2007-10-04 Dialog Semiconductor Gmbh Verfahren und Vorrichtung zur Vermeidung von Speicherzugriffskonflikten
KR20060019755A (ko) * 2004-08-30 2006-03-06 삼성에스디아이 주식회사 발광 표시장치와 그의 구동방법
US8209478B2 (en) 2009-03-03 2012-06-26 Himax Technologies Limited Single-port SRAM and method of accessing the same
US8645609B2 (en) 2010-12-06 2014-02-04 Brocade Communications Systems, Inc. Two-port memory implemented with single-port memory blocks
US9641464B2 (en) 2012-04-30 2017-05-02 Nxp Usa, Inc. FIFO buffer system providing same clock cycle response to pop commands

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4724518A (en) * 1983-07-29 1988-02-09 Hewlett-Packard Company Odd/even storage in cache memory
TW311222B (en) * 1996-09-23 1997-07-21 Ind Tech Res Inst Static random access memory of simultaneous read/write operation
CN101483743A (zh) * 2009-01-19 2009-07-15 凌阳科技股份有限公司 一种数据存取装置和方法
CN101650967A (zh) * 2009-09-08 2010-02-17 凌阳科技股份有限公司 硬件硅智产的缓冲器结构

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108461099A (zh) * 2017-02-21 2018-08-28 爱思开海力士有限公司 半导体存储装置
CN108461099B (zh) * 2017-02-21 2021-12-17 爱思开海力士有限公司 半导体存储装置
CN111610933A (zh) * 2020-05-22 2020-09-01 芯颖科技有限公司 基于ram数据动态更新的数据存储方法、装置和系统

Also Published As

Publication number Publication date
US20150149716A1 (en) 2015-05-28
US20150149727A1 (en) 2015-05-28
US9396116B2 (en) 2016-07-19
US9390017B2 (en) 2016-07-12
CN104681082B (zh) 2018-06-01

Similar Documents

Publication Publication Date Title
KR101611516B1 (ko) 직렬 포트 메모리 통신 레이턴시 및 신뢰성을 향상시키기 위한 방법 및 시스템
KR102261805B1 (ko) 높은 스루풋 키값 저장부의 구현을 위한 메모리 배치
CN111190553B (zh) 使用混合存储器立方体链路的互连系统及方法
CN104681082A (zh) 单端口存储器件中的读和写冲突避免方法及其半导体芯片
US9032162B1 (en) Systems and methods for providing memory controllers with memory access request merging capabilities
CN103593306A (zh) 一种协议处理器Cache控制单元的设计方法
CN110058816B (zh) 一种基于ddr的高速多用户队列管理器及方法
CN112189324B (zh) 带宽匹配的调度器
US20090089538A1 (en) Synchronous Address And Data Multiplexed Mode For SRAM
CN104681081B (zh) 避免在单端口存储器设备中的写入冲突的方法和芯片
CN113626353A (zh) 处理加速器架构
CN102789424B (zh) 基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器
CN104598404B (zh) 计算设备扩展方法和装置、以及可扩展的计算系统
WO2020118713A1 (zh) 位宽匹配电路、数据写入装置、数据读出装置和电子设备
CN104407992A (zh) 一种基于双端口寄存器阵列的四端口存储器
US8219745B2 (en) Memory controller to utilize DRAM write buffers
US20240037046A1 (en) Tensor transfer though interleaved data transactions
TWI382313B (zh) 管理分離匯流排上匯流排代理之間的資料流程的方法和系統
US6324122B1 (en) RAM synchronized with a signal
CN112100098B (zh) Ddr控制系统及ddr存储系统
JPWO2016063667A1 (ja) 再構成可能デバイス
US8244929B2 (en) Data processing apparatus
US12100468B2 (en) Standalone mode
US20230342313A1 (en) Systems And Methods For Load Balancing Memory Traffic
US20230359573A1 (en) Field programmable gate array (fpga) for implementing data transmission by using built-in edge module

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20171023

Address after: Grand Cayman, Cayman Islands

Applicant after: GLOBALFOUNDRIES INC.

Address before: American New York

Applicant before: Core USA second LLC

Effective date of registration: 20171023

Address after: American New York

Applicant after: Core USA second LLC

Address before: American New York

Applicant before: International Business Machines Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant