CN101876944B - 动态随机存取存储器控制器和控制方法 - Google Patents

动态随机存取存储器控制器和控制方法 Download PDF

Info

Publication number
CN101876944B
CN101876944B CN2009102249412A CN200910224941A CN101876944B CN 101876944 B CN101876944 B CN 101876944B CN 2009102249412 A CN2009102249412 A CN 2009102249412A CN 200910224941 A CN200910224941 A CN 200910224941A CN 101876944 B CN101876944 B CN 101876944B
Authority
CN
China
Prior art keywords
write
data
address
dram
request
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
Application number
CN2009102249412A
Other languages
English (en)
Other versions
CN101876944A (zh
Inventor
丁杰
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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Priority to CN2009102249412A priority Critical patent/CN101876944B/zh
Priority to US12/855,566 priority patent/US8452918B2/en
Publication of CN101876944A publication Critical patent/CN101876944A/zh
Application granted granted Critical
Publication of CN101876944B publication Critical patent/CN101876944B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details 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)
  • Dram (AREA)

Abstract

提供了一种DRAM控制器和DRAM控制方法。该DRAM控制器控制对DRAM的读写,并且包括:存储单元,用于存储包含响应于先前的部分写请求而写入DRAM的数据的第一预定长度的数据、以及所述第一预定长度的数据在DRAM中的存储地址;以及控制单元,用于响应于所接收的读请求而判断在所述存储地址中是否存在与该读请求中的读地址相同的地址,并且当在所述存储地址中存在与该读地址相同的地址时,从存储单元中读取与该读地址相对应的数据以便输出。通过在每次执行部分写请求时都将所获得的合并后的数据存储在存储单元中,可以减少由于随后的读请求或部分写请求而从DRAM读取数据的次数,补偿由于响应于部分写请求执行读-修改-写操作而导致的DRAM控制器的性能下降。

Description

动态随机存取存储器控制器和控制方法
技术领域
本发明涉及一种动态随机存取存储器(DRAM)控制器和DRAM控制方法,更具体地涉及一种能够补偿由于响应于部分写请求执行读-修改-写(Read-Modify-Write,RMW)操作而导致的性能下降的DRAM控制器和DRAM控制方法。
背景技术
目前,动态随机存取存储器(DRAM)已经被广泛用于数据存储领域。通常,使用DRAM控制器来控制对DRAM的读写。图1示出了传统的DRAM控制器的框图。如图1所示,DRAM控制器100包括控制单元101和合并单元102,并且通过命令总线和数据总线与DRAM 200相连接。当从中央处理单元(CPU)(未示出)接收到读/写请求时,DRAM控制器100相应地控制对DRAM 200的读/写操作,以便向CPU返回所请求读的数据或者将所请求写的数据写入DRAM 200。
对于支持纠错码(ECC)纠错功能的DRAM(假设为图1所示的DRAM200),当接收到部分写请求时,DRAM控制器100需要对DRAM 200执行读-修改-写(RMW)操作,以便能够对写入DRAM 200的数据进行正确的ECC计算。具体地说,如本领域公知的,CPU向DRAM写数据的最小单位为1字节,然而CPU和DRAM之间的总线宽度通常大于1字节,例如可以为8字节。如果在写请求中,CPU要写入DRAM的字节数小于总线宽度,则这种写请求被称为部分写请求,反之,如果要写入的字节数等于总线宽度,则该写请求为完全写请求。由于ECC纠错是以例如8字节为单位进行的,因此,如果对于该部分写请求要写入的数据(例如,1字节)无法正确地计算ECC。为了解决这个问题,当接收到部分写请求时,控制单元101经由命令总线向DRAM 200发出读命令,以便将存储在DRAM 200中的、包括部分写请求的写地址上的数据的一个突发长度(burst length)的数据读取到合并单元102中(读操作)。该突发长度的数据的长度为总线宽度的倍数。然后,合并单元102将所读取的数据与该部分写请求要写入的数据合并,即,利用要写入的数据替换所读取的数据中、在所请求的写地址上的数据(修改操作)。最后,控制单元101将合并后的数据写入DRAM 200(写操作),由此,完成部分写请求的执行。
可以看到,对于一个部分写请求,需要连续执行三个操作,因而需要耗费较长的时间。如果DRAM控制器在短时间内接收到很多部分写请求,则其性能将严重降低。
因此,需要一种DRAM控制器和DRAM控制方法,其能够补偿由于响应于部分写请求执行RMW操作而导致的DRAM控制器的性能下降。
发明内容
考虑到以上问题而做出了本发明。本发明的一个目的是提供一种DRAM控制器和DRAM控制方法,其能够补偿由于响应于部分写请求执行RMW操作而导致的DRAM控制器的性能下降,由此在一定程度上提高DRAM控制器的性能。
根据本发明的一个方面,提供了一种DRAM控制器,用于控制对DRAM的读写,包括:存储单元,用于存储包含响应于先前的部分写请求而写入DRAM的数据的第一预定长度的数据、以及所述第一预定长度的数据在DRAM中的存储地址;以及控制单元,用于响应于所接收的读请求而判断在所述存储地址中是否存在与该读请求中的读地址相同的地址,并且当在所述存储地址中存在与该读地址相同的地址时,从存储单元中读取与该读地址相对应的数据以便输出。
根据本发明的另一方面,提供了一种DRAM控制方法,用于DRAM控制器,该DRAM控制器控制对DRAM的读写,并且包括存储单元,所述DRAM控制方法包括以下步骤:将包含响应于先前的部分写请求而写入DRAM的数据的第一预定长度的数据、以及所述第一预定长度的数据在DRAM中的存储地址存储在存储单元中;以及响应于所接收的读请求而判断在所述存储地址中是否存在与该读请求中的读地址相同的地址,并且当在所述存储地址中存在与该读地址相同的地址时,从存储单元中读取与该读地址相对应的数据以便输出。
如上所述,在根据本发明实施例的DRAM控制器中,设置了存储单元,用于存储包括响应于先前的部分写请求而写入DRAM的数据的第一预定长度的数据以及该数据在DRAM中的存储地址。当随后接收到的读请求所请求读取的数据已经被存储在存储单元中时,可以直接从存储单元读取所请求读取的数据,而不再需要像传统技术那样对DRAM执行读操作,从而缩短了执行读请求的时间,补偿了由于先前的RMW操作导致的DRAM控制器的性能下降。此外,如下文所述,当接收到部分写请求时,如果存储在DRAM中的、包括所请求的写地址上的数据的第一预定长度的数据已经被存储在存储单元中,则可以直接从存储单元读取应当与要写入的数据合并的数据,而不需要对DRAM执行读操作,由此缩短了执行部分写请求的时间,减小了由于RMW操作导致的性能下降。
附图说明
通过结合附图对本发明的实施例进行详细描述,本发明的上述和其它目的、特征、优点将会变得更加清楚,其中:
图1示出了传统的DRAM控制器的框图;
图2示出了根据本发明实施例的DRAM控制器的框图;
图3示出了根据本发明实施例的DRAM控制方法的流程图。
具体实施方式
下面将参照附图来描述根据本发明实施例的DRAM控制器以及DRAM控制方法。在附图中,相同的参考标号自始至终表示相同的元件。应当理解:这里描述的实施例仅仅是说明性的,而不应被解释为限制本发明的范围。
首先,参照图2来描述根据本发明实施例的DRAM控制器。
如图2所示,DRAM控制器300包括表格旁路缓冲器(Table Look-asideBuffer,TLB)301、控制单元302、复用单元(MUX)303、以及合并单元304。
DRAM控制器300通过命令总线和数据总线与DRAM 200相连接,其从诸如CPU的外部设备(未示出)接收读/写请求,并且根据所接收的请求控制对DRAM 200的读/写操作。
TLB 301存储包括响应于先前的部分写请求而写入DRAM的数据的第一预定长度的数据、以及该第一预定长度的数据在DRAM中的存储地址。所述第一预定长度可以为一个突发长度的数据长度的一倍或多倍,但优选地等于一个突发长度的数据长度。
具体地说,如稍后将详细描述的那样,当从CPU接收到部分写请求时,如果存储在DRAM 200中的、包括所请求的写地址上的数据的第一预定长度的数据没有被预先存储在TLB 301中,则控制单元302将从DRAM 200读取所述第一预定长度的数据,并且将所读取的数据写入TLB 301。然后,合并单元304将所读取的数据中、包括所请求的写地址上的数据的第二预定长度的数据与要写入的数据合并。另一方面,如果所述第一预定长度的数据已经被预先存储在TLB 301中,则合并单元304将把要写入的数据与从TLB 301读取的、包括所请求的写地址上的数据的第二预定长度的数据合并。在任一情况下,合并后的数据除了被存储到DRAM 200中以外,还被存储到TLB 301中并且替换原来的与相同地址相对应的数据,以供以后的读请求或部分写请求使用。除了合并后的数据以外,控制单元302还将所述第一预定长度的数据在DRAM中的对应存储地址存储在TLB 301中。在TLB 301中,可以以表的形式相关联地存储所述数据和存储地址,也可以采用任何其它合适的数据结构。所述第二预定长度可以小于或等于第一预定长度,例如可以为外部设备与DRAM控制器之间的总线宽度的一倍或多倍,但优选地等于总线宽度。
TLB 301的容量(即,存储所述数据和存储地址的表的深度)需要在DRAM控制器300的栅极数目(gate-count)和命中率之间进行权衡,命中率是指在存储于TLB 301内的存储地址中找到与所请求的读/写地址相同的地址的比率。如果TLB深度大,则性能补偿效果好,但DRAM控制器的栅极数目较多,反之,如果TLB深度小,则DRAM控制器的栅极数目少,但是性能补偿效果较差。在实际应用中,可以根据设计需要来设置TLB 301的容量。
控制单元302控制对TLB 301和DRAM 200的读/写。此外,控制单元302确定DRAM控制器300从CPU接收的请求的类型,并且相应地执行下文所述的操作。控制单元302判断请求类型的方法是本领域公知的,因此为简单起见,在这里省略对其的详细描述。
当控制单元302确定所接收的请求为读请求时,其利用该读请求中的读地址(以下称为读地址)来查询TLB 301,即,将读地址与存储在TLB 301中的存储地址进行比较,以便查看在TLB 301中是否存在与读地址相同的地址。如果在TLB 301中找到与该读地址相同的地址(即,“命中”),则这意味着:该读请求要读取的数据已经被预先存储在TLB 301中。因此,控制单元302根据读地址从TLB 301读取对应的数据,所读取的数据被提供给MUX303。控制单元302还向MUX 303发送第一指示信号,使得MUX 303响应于该第一指示信号而将所读取的数据提供给CPU。另一方面,如果在TLB 301中没有找到与读地址相同的地址(即,“没有命中”),则这意味着:该读请求要读取的数据没有被存储在TLB 301中。因此,控制单元302经由命令总线向DRAM 200发送读命令,以便从DRAM 200读取所述读地址上的数据。所读取的数据经由数据总线而被提供给MUX 303。控制单元302还向MUX 303发送第二指示信号,使得MUX 303响应于该第二指示信号而将所读取的数据提供给CPU。
当控制单元302确定所接收的请求为部分写请求时,其利用该部分写请求中的写地址(以下称为部分写地址)查询TLB 301,即,将部分写地址与存储在TLB 301中的存储地址进行比较,以便查看在TLB 301中是否存在与部分写地址相同的地址。如果在TLB 301中找到与该部分写地址相同的地址(即,“命中”),则这意味着,存储在DRAM 200中的、包括该部分写地址上的数据的第一预定长度的数据已经被预先存储在TLB 301中,因此,控制单元302根据部分写地址从TLB 301读取包括该部分写地址上的数据的第二预定长度的数据,所读取的数据被提供给MUX 303。控制单元302还向MUX303发送第三指示信号,使得MUX 303响应于该第三指示信号而将所述第二预定长度的数据提供给合并单元304。另一方面,如果在TLB 301中没有找到与部分写地址相同的地址,则这意味着:存储在DRAM 200中的、包括该部分写地址上的数据的第一预定长度的数据没有被预先存储在TLB 301中。因此,控制单元302经由命令总线向DRAM 200发送读命令,以便从DRAM200读取包括部分写地址上的数据的第一预定长度的数据,并且将所读取的数据以及该数据在DRAM中的对应存储地址存储到TLB 301中。然后,控制单元302从TLB 301读取包括部分写地址上的数据的第二预定长度的数据,并且将该数据提供给MUX 303。控制单元302还向MUX 303发送第三指示信号,使得MUX 303响应于该第三指示信号而将所述第二预定长度的数据提供给合并单元304。当合并单元304完成所述第二预定长度的数据与要写入的数据的合并操作时,控制单元302还控制合并单元304将合并后的数据存储到DRAM 200和TLB 301中,以便利用合并后的数据替换DRAM 200和TLB 301中的对应数据。该替换方法是本领域公知的,在这里不再赘述。
当控制单元302确定所接收的请求为完全写请求时,其根据该完全写请求中的写地址(以下称为完全写地址),经由合并单元304将要写入的数据写入DRAM 200。此外,控制单元302还利用完全写地址查询TLB 301,以便查看在TLB 301中是否存在与该完全写地址相同的地址。如果在TLB 301中找到与该完全写地址相同的地址(即,“命中”),则这意味着:在控制单元302将所述要写入的数据写入DRAM 200之前存储在DRAM 200中的、该完全写地址上的数据已经被预先存储在TLB 301中,因此,为了使存储在TLB301和DRAM 200中的、与该完全写地址相对应的数据始终保持一致,控制单元302将该完全写请求要写入的数据写入TLB 301以替换其中的对应数据。另一方面,如果在TLB 301中没有找到与完全写地址相同的地址,则控制单元302不执行上述替换操作。
MUX 303实际上为选择器。如上文所述,MUX 303响应于来自控制单元302的第一、第二或第三指示信号而选择性地将提供到其输入端的数据输出到CPU或合并单元304。
合并单元304将部分写请求要写入的数据与从MUX 303提供的所述第二预定长度的数据合并,即,利用要写入的数据替换所述第二预定长度的数据中、与部分写地址相对应的数据,并且在控制单元302的控制下将合并后的数据写入DRAM 200和TLB 301以替换其中的对应数据。
下面,将参照图3来描述根据本发明实施例的DRAM控制方法,该控制方法可由图2所示的DRAM控制器执行。
如图3所示,当DRAM控制器300从诸如CPU的外部设备接收到请求时,在步骤S401中,控制单元302确定所接收的请求是否是读请求。
如果所接收的请求是读请求,则控制单元302在步骤S402中利用该读请求中的读地址查询TLB 301,并且在步骤S403中确定在存储于TLB 301内的存储地址中是否存在与该读地址相同的地址,即,确定是否“命中”。如果命中,则在步骤S404中,控制单元302根据所述读地址从TLB 301读取对应的数据。所读取的数据被提供给MUX 303。此外,控制单元302还向MUX 303发送第一指示信号,使得MUX 303将所读取的数据提供给CPU。另一方面,如果没有命中,则在步骤S405中,控制单元302经由命令总线向DRAM 200发送读命令,以便利用所述读地址从DRAM 200读取对应的数据。所读取的数据经由数据总线而被提供给MUX 303。此外,控制单元302还向MUX 303发送第二指示信号,使得MUX 303将从DRAM 200读取的数据提供给CPU。
另一方面,如果在步骤S401确定所接收的请求不是读请求,则在步骤S406中,控制单元302确定该请求是否是部分写请求。控制单元302判断该请求是否是部分写请求的方法是本领域公知的,例如,可以通过该写请求中针对每个字节设置的BYTE ENABLE标志位判断该写请求要写入的字节数是否等于总线宽度,来确定该写请求是否是部分写请求;也可以在所接受的请求中设置一部分写请求标志位,以标志该请求为部分写请求。
如果在步骤S406中确定所接收的请求不是部分写请求而是完全写请求,则在步骤S407中,控制单元302根据该完全写请求中的写地址(以下称为完全写地址),将该写请求要写入的数据经由合并单元304写入DRAM 200。然后,在步骤S408中,控制单元302利用所述完全写地址查询TLB 301,并且在步骤S409中确定在TLB 301中是否存在与所述完全写地址相同的地址,即,确定是否“命中”。如果命中,则在步骤S410中,控制单元302将该完全写请求要写入的数据写入TLB 301中以便替换其中的对应数据。反之,如果在步骤S409中没有命中,则该过程结束,而不执行前述替换操作。
另一方面,如果在步骤S406中确定所接收的请求是部分写请求,则在步骤S411中,控制单元302利用该部分写请求中的写地址(以下称为部分写地址)查询TLB 301,并且在步骤S412中确定在TLB 301中是否存在与所述部分写地址相同的地址,即,确定是否“命中”。如果命中,则在步骤S413中,控制单元302从TLB 301读取包括部分写地址上的数据的第二预定长度的数据,所读取的数据被提供给MUX 303。此外,控制单元302还向MUX 303发送第三指示信号,使得MUX 303将从TLB 301读取的数据提供给合并单元304。反之,如果在步骤S412中没有命中,则在步骤S414中,控制单元302经由命令总线向DRAM 200发送读命令以便从DRAM 200读取包括所请求的写地址上的数据的第一预定长度的数据,并且将所读取的数据以及该数据在DRAM中的对应存储地址存储到TLB 301中。然后,在步骤S415中,控制单元302从TLB 301读取包括部分写地址上的数据的第二预定长度的数据并且将其提供给MUX 303。控制单元302还向MUX 303发送第三指示信号,使得MUX 303将所述第二预定长度的数据提供给合并单元304。
接下来,在步骤S416中,合并单元304将从MUX 303提供的所述第二预定长度的数据与该部分写请求要写入的数据合并,并且在步骤S417中,将合并后的数据输出到DRAM 200和TLB 301以替换其中的对应数据。
可以看到,在根据本发明实施例的DRAM控制方法中,每次执行部分写请求时,都将合并后的数据存储在TLB 301中。由此,当随后接收到读请求或者部分写请求时,如果该请求涉及的数据已经被存储在TLB 301中,则可以直接从TLB 301读取所需数据,而不再需要像传统技术那样对DRAM执行读操作,由此,减少了执行所述请求的时间,补偿了由于RMW操作导致的DRAM控制器性能的下降。
在上文中,描述了根据本发明实施例的DRAM控制器和DRAM控制方法。应当认识到,这里的描述仅仅是说明性的,而不是限制性的。本领域技术人员可以根据需要对所述DRAM控制器和DRAM控制方法进行各种改变。例如,可以对上述实施例进行如下修改:可以通过向TLB 301和MUX 303施加使能(ENABLE)信号或禁止(DISABLE)信号,来控制是否启动这两个部件。具体地,当控制单元302向TLB 301和MUX 303施加使能信号时,TLB 301和MUX 303启动并且如上文所述的那样工作,从而与控制单元302和合并单元304一起执行根据本发明实施例的DRAM控制方法。反之,当控制单元302向TLB 301和MUX 302施加禁止信号时,TLB 301和MUX 303被禁用,此时控制单元302和合并单元304像图1所示的传统DRAM控制器100那样工作,而不执行根据本发明实施例的DRAM控制方法。
尽管在上文中已经示出和描述了本发明的示例实施例以及示例性修改,但是本领域技术人员应当理解,在不背离权利要求及其等价物中限定的本发明的范围和精神的情况下,可以对这些示例实施例做出各种其它形式和细节上的修改和改变。

Claims (10)

1.一种DRAM控制器,用于控制对DRAM的读写,包括:
存储单元,用于存储包含响应于先前的部分写请求而写入该DRAM的数据的第一预定长度的数据、以及所述第一预定长度的数据在该DRAM中的存储地址;
控制单元,用于响应于所接收的部分写请求而判断在所述存储地址中是否存在与该部分写请求中的写地址相同的地址;以及
合并单元,当该控制单元判断在所述存储地址中存在与该部分写请求中的写地址相同的地址时,该合并单元将存储在该存储单元中的、包含该部分写请求中的写地址上的数据的第二预定长度的数据与该部分写请求要写入的数据合并,并且将合并后的数据写入该DRAM和该存储单元。
2.如权利要求1所述的DRAM控制器,其中,当接收到读请求时,该控制单元判断在所述存储地址中是否存在与该读请求中的读地址相同的地址,当在所述存储地址中存在与该读地址相同的地址时,该控制单元从该存储单元中读取与该读地址相对应的数据以便输出,当在所述存储地址中不存在与所述读地址相同的地址时,该控制单元从该DRAM读取所述读地址上的数据以便输出。
3.如权利要求1所述的DRAM控制器,其中,当接收到完全写请求时,该控制单元根据该完全写请求中的写地址,将该完全写请求要写入的数据写入该DRAM,控制单元还判断在所述存储地址中是否存在与该完全写请求中的写地址相同的地址,并且当在所述存储地址中存在与所述写地址相同的地址时,将该完全写请求要写入的数据写入该存储单元以便替换该存储单元中的对应数据。
4.如权利要求1所述的DRAM控制器,其中,当在所述存储地址中不存在与所述部分写请求中的写地址相同的地址时,控制单元从该DRAM读取包含该部分写请求中的写地址上的数据的第一预定长度的数据,并且该合并单元将所读取的第一预定长度的数据中、包含该部分写请求中的写地址上的数据的第二预定长度的数据与该部分写请求要写入的数据合并,并且将合并后的数据写入该DRAM和该存储单元。
5.如权利要求1所述的DRAM控制器,其中,所述第一预定长度为一个突发长度的数据的长度,所述第二预定长度为外部设备与该DRAM控制器之间的总线宽度。
6.一种DRAM控制方法,用于DRAM控制器,该DRAM控制器控制对DRAM的读写,并且包括存储单元,所述DRAM控制方法包括以下步骤:
将包含响应于先前的部分写请求而写入该DRAM的数据的第一预定长度的数据、以及所述第一预定长度的数据在该DRAM中的存储地址存储在该存储单元中;
响应于所接收的部分写请求而判断在所述存储地址中是否存在与该部分写请求中的写地址相同的地址;
当在所述存储地址中存在与该部分写请求中的写地址相同的地址时,将存储在该存储单元中的、包含该部分写请求中的写地址上的数据的第二预定长度的数据与该部分写请求要写入的数据合并;以及
将合并后的数据写入该DRAM和该存储单元。
7.如权利要求6所述的DRAM控制方法,还包括以下步骤:
当接收到读请求时,判断在所述存储地址中是否存在与该读请求中的读地址相同的地址;
当在所述存储地址中存在与该读地址相同的地址时,从该存储单元中读取与该读地址相对应的数据以便输出;以及
在所述存储地址中不存在与所述读地址相同的地址时,从该DRAM读取所述读地址上的数据以便输出。
8.如权利要求6所述的DRAM控制方法,还包括以下步骤:
当接收到完全写请求时,根据该完全写请求中的写地址,将该完全写请求要写入的数据写入DRAM;
判断在所述存储地址中是否存在与该完全写请求中的写地址相同的地址;以及
当在所述存储地址中存在与所述写地址相同的地址时,将该完全写请求要写入的数据写入该存储单元以便替换该存储单元中的对应数据。
9.如权利要求6所述的DRAM控制方法,还包括以下步骤:
当在所述存储地址中不存在与所述部分写请求中的写地址相同的地址时,从该DRAM读取包含该部分写请求中的写地址上的数据的第一预定长度的数据;
将所读取的第一预定长度的数据中、包含该部分写请求中的写地址上的数据的第二预定长度的数据与该部分写请求要写入的数据合并;以及
将合并后的数据写入该DRAM和该存储单元。
10.如权利要求6所述的DRAM控制方法,其中,所述第一预定长度为一个突发长度的数据的长度,所述第二预定长度为外部设备与该DRAM控制器之间的总线宽度。
CN2009102249412A 2009-11-26 2009-11-26 动态随机存取存储器控制器和控制方法 Active CN101876944B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2009102249412A CN101876944B (zh) 2009-11-26 2009-11-26 动态随机存取存储器控制器和控制方法
US12/855,566 US8452918B2 (en) 2009-11-26 2010-08-12 DRAM control method and the DRAM controller utilizing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102249412A CN101876944B (zh) 2009-11-26 2009-11-26 动态随机存取存储器控制器和控制方法

Publications (2)

Publication Number Publication Date
CN101876944A CN101876944A (zh) 2010-11-03
CN101876944B true CN101876944B (zh) 2012-02-15

Family

ID=43019503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102249412A Active CN101876944B (zh) 2009-11-26 2009-11-26 动态随机存取存储器控制器和控制方法

Country Status (2)

Country Link
US (1) US8452918B2 (zh)
CN (1) CN101876944B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876944B (zh) * 2009-11-26 2012-02-15 威盛电子股份有限公司 动态随机存取存储器控制器和控制方法
WO2015048037A1 (en) * 2013-09-24 2015-04-02 Rambus Inc. Memory component having internal read-modify-write operation
US9563369B2 (en) 2014-04-14 2017-02-07 Microsoft Technology Licensing, Llc Fine-grained bandwidth provisioning in a memory controller
CN105446908B (zh) * 2014-08-27 2018-12-21 珠海全志科技股份有限公司 Dram组合控制方法
US9423972B2 (en) * 2014-11-17 2016-08-23 Freescale Semiconductor, Inc. Error recovery in a data processing system which implements partial writes
CN106951374B (zh) * 2016-01-06 2022-06-10 北京忆芯科技有限公司 用于检查块页地址的方法及其装置
US10503435B2 (en) * 2016-12-01 2019-12-10 Qualcomm Incorporated Providing extended dynamic random access memory (DRAM) burst lengths in processor-based systems
EP3480702B1 (en) 2017-06-23 2020-09-30 Huawei Technologies Co., Ltd. Memory access technology and computer system
US11094372B1 (en) 2020-05-07 2021-08-17 Powerchip Semiconductor Manufacturing Corporation Partial writing method of dram memoryl device to reduce power consumption associated with large voltage swing of internal input/output lines
CN114185486B (zh) * 2021-11-17 2024-07-30 深圳市德明利技术股份有限公司 一种dram存储器的数据写入方法和dram控制系统
TWI811151B (zh) * 2022-11-09 2023-08-01 金麗科技股份有限公司 快取裝置中管理記憶體寫入要求的方法
CN116564374B (zh) * 2023-07-07 2023-11-14 长鑫存储技术有限公司 驱动控制电路及存储器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0508577A1 (en) * 1991-03-13 1992-10-14 International Business Machines Corporation Address translation mechanism
US6591341B1 (en) * 2000-03-31 2003-07-08 Intel Corporation Multilevel cache system and method having a merged tag array to store tags for multiple data arrays
US20030204702A1 (en) * 2002-04-30 2003-10-30 Adc Dsl Systems, Inc. Flexible memory architecture for an embedded processor
AU2003303412A1 (en) 2002-12-30 2004-07-22 Koninklijke Philips Electronics N.V. Memory controller and method for writing to a memory
US7213133B2 (en) * 2004-05-03 2007-05-01 Sun Microsystems, Inc Method and apparatus for avoiding write-after-write hazards in an execute-ahead processor
US8117422B2 (en) * 2009-02-05 2012-02-14 Texas Instruments Incorporated Fast address translation for linear and circular modes
CN101876944B (zh) * 2009-11-26 2012-02-15 威盛电子股份有限公司 动态随机存取存储器控制器和控制方法

Also Published As

Publication number Publication date
US20110125961A1 (en) 2011-05-26
US8452918B2 (en) 2013-05-28
CN101876944A (zh) 2010-11-03

Similar Documents

Publication Publication Date Title
CN101876944B (zh) 动态随机存取存储器控制器和控制方法
US10810144B2 (en) System and method for operating a DRR-compatible asynchronous memory module
AU2015371849B2 (en) Data reading method and apparatus
US11347444B2 (en) Memory device for controlling operations according to different access units of memory
KR100673013B1 (ko) 메모리 컨트롤러 및 그것을 포함한 데이터 처리 시스템
EP2443556B1 (en) Parallel training of dynamic random access memory channel controllers
US20080244369A1 (en) Register read mechanism
US20050132128A1 (en) Flash memory device and flash memory system including buffer memory
EP2972914A1 (en) Apparatuses and methods for variable latency memory operations
CN101038531A (zh) 用于嵌入式系统中部件的共用接口
JP2013025835A (ja) 不揮発性半導体記憶装置
KR100648292B1 (ko) 오토 듀얼 버퍼링 방식의 메모리 장치
US20090157949A1 (en) Address translation between a memory controller and an external memory device
US10019358B2 (en) Bank address remapping to load balance memory traffic among banks of memory
US11853608B2 (en) Information writing method and apparatus
US7962683B2 (en) Flash memory, and method for operating a flash memory
US7991990B2 (en) Memory access system and memory access method thereof
US8423819B2 (en) Data storage device, controller, and data access method for a downgrade memory
US11941273B2 (en) Variable capacity Zone Namespace (ZNS) flash storage data path
JP2013232097A (ja) 半導体記憶装置
US11308010B2 (en) Memory system having memories of different capacities
US11188265B2 (en) Method for performing storage space management, associated data storage device, and controller thereof
TWI436373B (zh) 動態隨機存取記憶體控制器與控制方法
US20240272836A1 (en) Control circuit, memory device including the same, and method
US20220405012A1 (en) Performing background operations during host read in solid state memory device

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