CN1788257B - 用于处理存储器事务的方法和装置 - Google Patents
用于处理存储器事务的方法和装置 Download PDFInfo
- Publication number
- CN1788257B CN1788257B CN03824548.5A CN03824548A CN1788257B CN 1788257 B CN1788257 B CN 1788257B CN 03824548 A CN03824548 A CN 03824548A CN 1788257 B CN1788257 B CN 1788257B
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- affairs
- precharge
- memory affairs
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims abstract description 340
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 title description 7
- 230000004044 response Effects 0.000 claims description 34
- 238000005516 engineering process Methods 0.000 description 6
- 230000000712 assembly Effects 0.000 description 5
- 238000000429 assembly Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000007334 memory performance Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Dram (AREA)
- Storage Device Security (AREA)
- Communication Control (AREA)
- Amplifiers (AREA)
- Steering Control In Accordance With Driving Conditions (AREA)
- Control Of Motors That Do Not Use Commutators (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Medicines Containing Material From Animals Or Micro-Organisms (AREA)
Abstract
本发明描述了处理存储器事务的机器可读介质、方法和装置。在一些实施方案中,基于第一存储器事务和第二存储器事务之间的关系,处理器请求外部存储器控制器关闭存储器中与第一存储器事务相关联的存储位置。
Description
技术领域
本发明涉及处理存储器事务的方法和装置。
背景技术
计算设备一般包括处理器、存储器和外部存储器控制器,所述外部存储器控制器用于向处理器以及计算设备的其他组件提供对存储器的访问。这些计算设备的性能受到计算设备的“存储器读延时(latency)”和“存储器写延时”的很大影响。一般来说,“存储器读延时”就是处理器请求外部存储器控制器从存储器取数据时和外部存储器控制器向处理器提供所请求数据时两者之间的时间长度。同样,“存储器写延时”通常就是处理器请求外部存储器控制器向存储器写数据时和外部存储器控制器向处理器指示数据已被或者将被写入存储器时两者之间的时间长度。
发明内容
根据本发明的第一方面,提供了一种方法,包括基于通过处理器对第一存储器事务的第一地址以及第二存储器事务的第二地址的部分译码确定第一存储器事务与将在所述第一存储器事务之后进行处理的第二存储器事务之间是否具有预定的关系;以及响应于确定所述第一存储器事务与所述第二存储器事务之间具有所述预定的关系,请求存储器控制器对用来满足所述第一存储器事务的存储器器件进行预充电。
根据本发明的第二方面,提供了一种与耦合到存储器的外部存储器控制器一同使用的处理器,包括生成预充电建议的预充电建议逻辑,所述预充电建议响应于基于第一存储器事务的第一地址以及后续第二存储器事务的第二地址的部分译码而确定第一存储器事务与后续第二存储器事务之间具有预定的关系,请求将与所述第一存储器事务相关联的第一页关闭;以及向所述外部存储器控制器提供所述第一存储器事务和所述预充电建议的接口。
根据本发明的第三方面,提供了一种与处理器和存储器一同使用的存储器控制器,包括第一接口,其从所述处理器接收第一存储器请求和第一建议,所述第一建议指示所述处理器是否请求了对所述存储器进行预充电,并且在所述第一存储器请求之后从所述处理器接收第二存储器请求;预充电判定逻辑,其至少部分地基于所述第一建议以及第一存储器请求的部分译码地址和等待执行的第二存储器请求的部分译码地址来确定是否将对所述存储器进行预充电;以及第二接口,其为所述第一存储器请求而访问所述存储器的第一存储位置,并且响应于所述预充电判定逻辑确定将对所述存储器进行预充电,而在处理所述第二存储器请求之前对所述存储器进行预充电。
根据本发明的第四方面,提供了一种计算设备,包括包括多页的动态随机访问存储器;
如权利要求6所述的处理器,其为第一存储器事务生成预充电建议,并且在处理器总线上发出所述第一存储器事务和所述预充电建议;以及位于所述处理器之外的存储器控制器,其经由存储器总线耦合到所述动态随机访问存储器,并且经由所述处理器总线耦合到所述处理器,所述存储器控制器从所述处理器总线接收所述第一存储器事务和所述预充电建议,打开所述动态随机访问存储器中由所述第一存储器事务寻址的第一页,并且至少部分地基于所述预充电建议而关闭所述动态随机访问存储器的所述第一页。
附图说明
在附图中以示例而非限制的方式图示了这里所描述的发明。为了图示的简单明了,在图中示出的元件不一定是按比例绘制的。例如,为清楚起见,有些元件的尺寸可能相对于其他元件被放大了。此外,在适当的地方,在附图中重复使用标号来表示相应或相似的元件。
图1图示了计算设备的一种实施方案。
图2图示了图1中计算设备的分层存储器设置的一种实施方案。
图3图示了图1中的处理器可用来向外部存储器控制器提供预充电建议的方法的一种实施方案。
图4图示了图1中的存储器控制器可用来基于从处理器接收的关联预充电建议来处理存储器请求的方法的一种实施方案。
具体实施方案
以下内容描述了处理存储器事务的技术。在以下描述中,阐述了很多具体的细节,例如逻辑实现、操作码、指定操作数的装置、资源划分/共享/复制的实现、系统组件的类型和相互关系、以及逻辑划分/合成选择,以提供对本发明更加完整的理解。然而,本领域的技术人员将会理解,没有这些具体的细节也可以实现本发明。此外,没有详细地示出控制结构、门级电路和全部软件指令序列,以免模糊了本发明。本领域的普通技术人员利用所包括的描述内容将能够实现适当的功能,而无需非常规的试验(undue experimentation)。
在说明书中提及“一种实施方案”、“实施方案”、“一种示例性的实施方案”等表示所描述的实施方案可以包括特定的特征、结构或特性,但是不是每种实施方案都要包括所述特征、结构或特性。而且,这样的短语不一定是指相同的实施方案。此外,当与某种实施方案相关地描述特定的特征、结构或特性时,无论是否明确描述,其要表达的含义都是本领域的技术人员将可以与其他实施方案相关地实现这种特征、结构或特性。
可以用硬件、软件或者它们的任意组合来实现本发明的实施方案。本发明的实施方案还可以实现为存储在机器可读介质上的指令,这些指令可由一个或多个处理器读取并执行。机器可读介质可以包括以机器(例如计算设备)可读的形式来存储或传输信息的任何机制。例如,机器可读介质可以包括只读存储器(ROM);随机访问存储器(RAM);磁盘存储介质;光存储介质;闪存器件;电、光、声或其他形式的传播信号(例如载波、红外线信号、数字信号等),等等。
在图1中示出了计算设备100的示例性实施方案。计算设备100可以包括经由处理器总线106耦合到外部存储器控制器104的处理器102。此外,外部存储器控制器104可以经由存储器总线110耦合到存储器108,以向处理器102以及计算设备100的其他组件112(例如鼠标、键盘、视频控制器、硬盘、软盘、固件等)提供对存储器108的访问。
处理器102可以包括处理器总线接口114,用于处置处理器总线106上的事务。处理器总线接口114可以在处理器总线106上发出诸如存储器事务一类的事务。此外,处理器总线接口114可以响应和/或跟踪由其他总线主体(例如存储器控制器104和其他处理器(未示出))在处理器总线106上发出的事务。
处理器102还可以包括预充电建议逻辑116,用于生成预充电建议。在一种实施方案中,预充电建议逻辑116可以基于处理器102的未决存储器事务来确定关闭存储器108的开放页118(见附图2)是否可能有利于存储器性能。响应于确定关闭开放页118可能是有利的,预充电建议逻辑116可以使处理器总线接口114向外部存储器控制器104提供预充电建议,该建议请求存储器控制器104关闭存储器108的页118。
存储器108可以包括各种由可寻址存储位置(location)组成的存储器器件,存储器控制器104可以从这些存储位置中读数据和/或向其中写数据。存储器108可以包括一种或多种不同类型的存储器器件,例如动态随机访问存储器(DRAM)器件、同步直接随机访问存储器(SDRAM)器件、双数据率(DDR)SDRAM器件、四倍数据率(QDR)SDRAM器件或者其他存储器器件。此外,如图2所示,可以按分层方式设置存储器108。存储器108可以包括一个或者多个通道(channel)或级(rank)120。每一级120可以包括一个或者多个库(bank)122,每一库122可以包括一个或者多个页或行118。而且,每一页118可以包括一个或者多个列124。在其他实施方案中,存储器108可以比图2包括更多或更少的层级。
存储器控制器104可以包括请求接口126,用于处置处理器102的存储器请求。在另一种实施方案中,请求接口126还可以处置其他组件112的存储器请求。请求接口126可以包括处理器总线接口128,用以经由处理器总线106直接与处理器102通信。请求接口126还可以包括组件接口130,用以经由总线132直接与其他组件112通信,所述总线132例如是外设部件互连(PCI)总线、加速图形端口(AGP)总线、通用串行总线(USB)总线、低引线(LPC)总线、和/或其他I/O总线。在其他实施方案中,请求接口126经由处理器总线接口128和芯片组(未示出)的组件接口134,与处理器102和组件112间接通信,所述芯片组可以包括一个或多个封装集成电路器件。
存储器控制器104还可以包括地址译码器136,用于译码存储器请求的地址。地址译码器136可以对存储器请求的地址进行译码,以生成一个或多个选择,所述选择对应于存储器108的分层设置,并且可被用来选择或寻址存储器108中的具体存储位置。在一种实施方案中,地址译码器136可以确定级选择、库选择、页选择和列选择,它们分别选择存储器108中的级120、库122、页118和列124(参见图2)。
存储器控制器104还可以包括耦合到存储器总线110的存储器接口138。存储器接口138可以将一个或多个选择(例如级选择、库选择和页选择)施加到存储器总线110,以打开存储器108中与存储器请求相关联的页118。存储器接口138还可以将一个或多个选择(例如列选择)施加到存储器总线110,以选择被打开的页118的列124进行读和写。
存储器控制器104还可以包括预充电判定逻辑140,用于确定是否关闭存储器108的开放页118。在一种实施方案中,预充电判定逻辑140基于从处理器102接收的预充电建议来确定是否关闭一个开放页。预充电判定逻辑140还可以进一步基于从处理器和/或组件112接收的存储器请求的译码地址来确定是否关闭一个开放页118。预充电判定逻辑140可以利用不同的算法改进存储器性能的多个方面,例如减小存储器延时和/或增加存储器带宽。总的来说,这些算法力图增加“页命中(page-hit)”访问的数量和/或减少所发生的“页未命中(page-miss)”访问的数量,并且力图比“页空白(page-empty)”算法做得更好,所述“页空白”算法在每次访问后都会关闭存储器108的页118。
响应于对为先前的存储器请求而打开的开放页118进行访问的存储器请求,发生页命中访问。对于页命中访问,存储器控制器104可以在为先前的存储器请求访问了页118的列124后,使页118保持开放,并且可以为了当前的存储器请求而访问开放页118中一个不同的列124。响应于对具有一个被打开的页118的库122中的另一个关闭页118进行访问的存储器请求,发生页未命中访问。对于页未命中访问,存储器控制器104关闭库122的开放页118,打开库122的另一个页118,并且为了当前的存储器请求而访问新打开的页118中的列124。页未命中访问一般具有大约三倍于页命中访问的延时。响应于对不具有任何被打开的页118的库122中的关闭页118进行访问的存储器请求,发生页空白访问。对于页空白访问,存储器控制器104打开库122中的关闭页118,并且为了所述存储器请求而访问新打开的页118中的列124。页空白访问一般具有大约两倍于页命中访问的延时。
图3中示出的是可被处理器102用来向存储器控制器104提供预充电建议的方法的一种实施方案。在框200中,处理器102的预充电建议逻辑116可以对第一存储器事务的第一地址进行译码或者部分译码。在一种实施方案中,预充电建议逻辑116对第一存储器事务的第一物理地址进行译码或者部分译码,以获得第一物理级选择、第一物理库选择和/或第一物理页选择。计算设备100在某些实施方案中可以支持虚拟寻址,其中处理器102使用虚拟地址来访问存储器108的存储位置。处理器102和/或存储器控制器104可以将虚拟地址转换为物理地址,或者以其他方式将虚拟地址映射到物理地址,最终是对所述物理地址进行译码以访问存储器108的存储位置。在这种虚拟寻址的实施方案中,预充电建议逻辑116可以对第一存储器事务的第一虚拟地址而不是第一物理地址进行译码或者部分译码,以获得第一虚拟级选择、第一虚拟库选择和/或第一虚拟页选择。
在框202中,预充电建议逻辑116可以对跟随在第一存储器事务之后的第二存储器事务的第二地址进行译码或者部分译码。在一种实施方案中,预充电建议逻辑116对第二存储器事务的第二物理地址进行译码或者部分译码,以获得第二物理级选择、第二物理库选择和/或第二物理页选择。在虚拟寻址的实施方案中,预充电建议逻辑116可以对第二存储器事务的第二虚拟地址而不是第二物理地址进行译码或者部分译码,以获得第二虚拟级选择、第二虚拟库选择和/或第二虚拟页选择。
预充电建议逻辑116在框204中可以基于各种不同的算法来为第一存储器事务确定预充电建议。例如,可以用一种默认的关闭算法来实现预充电建议逻辑116,在所述关闭算法中,预充电建议逻辑116响应于确定预定的开放标准未被满足而生成一个请求存储器控制器104关闭存储器108的页118的预充电建议。反之,可以用默认的开放算法来实现预充电建议逻辑116,在所述开放算法中,预充电建议逻辑116响应于确定预定的关闭标准未被满足而生成一个请求存储器控制器104使存储器108的页118处于开放的预充电建议。在另外一种实施方案中,可以用肯定算法来实现预充电建议逻辑116,在所述肯定算法中,预充电建议逻辑116响应于确定已满足预定的关闭标准而生成一个请求存储器控制器104关闭页118的预充电建议,响应于确定已满足预定的开放标准而生成一个请求存储器控制器104使页118处于开放的预充电建议,并且响应于确定既没有满足预定的关闭标准也没有满足预定的开放标准而不提供任何预充电建议。通过不提供任何预充电建议,预充电建议逻辑116可以让存储器控制器104的预充电判定逻辑140做出预充电决定。
在一种实施方案中,预充电建议逻辑116基于译码后的第一地址和译码后的第二地址来确定第一存储器事务和第二存储器事务是否指向存储器108的同一页118。例如,如果第一存储器事务和第二存储器事务的级选择、库选择和页选择都是相等的,那么预充电建议逻辑116可以确定这两个事务是指向存储器108的同一页118,并且可以向处理器总线接口114提供一个请求存储器控制器104在为第一存储器事务访问了页118后使所述页118保持开放的预充电建议。通过使页118保持开放,第二存储器事务有可能导致页命中访问,这将有助于减少存储器事务的平均延时。
在另一种实施方案中,预充电建议逻辑116基于对第一存储器事务的第一地址和第二存储器事务的第二地址所进行的部分译码,确定第一存储器事务和第二存储器事务是否可能导致页未命中访问。具体地说,预充电建议逻辑116可以基于级选择、库选择、页选择或者级选择、库选择、页选择的组合,来确定第一存储器事务和第二存储器事务是否可能导致页未命中。例如,如果第一存储器事务和第二存储器事务的页选择是不同的,而没有确定这些存储器事务的级选择和/或库选择,那么预充电建议逻辑116可以确定第二存储器事务有可能导致页未命中。相反,如果第一存储器事务和第二存储器事务的页选择是相同的,而没有确定这些存储器事务的级选择和/或库选择,那么预充电建议逻辑116可以确定第二存储器事务有可能导致页命中。
在另外一种实施方案中,预充电建议逻辑116基于第一存储器事务的选择和跟随在第一存储器事务后的一个或多个存储器事务的选择,来确定所述一个或多个后续存储器事务是否和第一存储器事务指向同一页118。例如,预充电建议逻辑116可以基于跟随在第一存储器事务之后的四个存储器事务的选择,确定这四个后续存储器事务中没有一个和第一存储器事务指向同一页118。响应于确定四个后续存储器事务中没有一个和第一存储器事务指向同一页118,预充电建议逻辑116可以向外部存储器控制器104提供一个请求在处理了第一存储器事务后将所述页118关闭的预充电建议。
在框206中,处理器102在处理器总线106上发出第一存储器事务,并且向存储器控制器104提供针对第一存储器事务的预充电建议。在一种实施方案中,处理器总线接口114在处理器总线106上生成信号,该信号请求存储器控制器104处理第一存储器事务,并且该信号向存储器控制器104提供针对第一存储器事务的预充电建议。在另一种实施方案中,处理器总线接口114在第一存储器事务的事务类型段(transaction type phase)期间提供预充电建议。在另外一种实施方案中,处理器总线接口114在第一存储器事务的地址段(address phase)期间提供预充电建议。在其他实施方案中,处理器总线接口114经由与处理器总线106分开的边带总线(未示出),向存储器控制器104提供预充电建议。然而,应当理解,处理器102可以通过其他技术向存储器控制器104提供预充电建议,这些技术例如是第一存储器事务的其他段(phase)、位于第一存储器事务之前的单独总线事务或者跟在第一存储器事务之后的单独总线事务。
处理器102在框208中可以在第一存储器事务之后,在处理器总线106上发出第二存储器事务。此外,处理器102可以基于跟随在第二存储器事务之后的第三存储器事务,向存储器控制器104提供针对第二存储器事务的预充电建议。
应当理解,由于各种原因,第二存储器事务可能实际上不会导致前面所指出的可能访问。例如,存储器控制器104可以基于除从处理器102接收的预充电建议之外的标准而选择关闭或者打开页118。例如,存储器控制器104可以选择关闭页118,并且在所述存储器事务和第二存储器事务之间处理来自另一个处理器(未示出)或组件112的另一个存储器事务。此外,存储器控制器104和/或存储器108可以选择关闭所述页118,并且在所述存储器事务和第二存储器事务之间动态地刷新存储器108的所述页118或者其他页118。
现在参考图4,所描绘的方法可被存储器控制器104用来处理存储器请求。在框300中,存储器控制器104的请求接口126可以从处理器102接收存储器请求,该请求包括地址和预充电建议。在一种实施方案中,处理器总线接口128通过处理器总线106的存储器事务,接收到所述存储器请求的地址和预充电建议。然而,如前面参考图3所指示的,可以通过其他技术将预充电建议提供给存储器控制器104,这些技术例如是边带总线上的信号或者处理器总线106上的单独事务。
地址译码器136在框302中可以对所述存储器请求中的地址进行译码,以获得包括一个或多个存储器选择的译码地址。在一种实施方案中,地址译码器136可以由所述地址生成包括级选择、库选择、页选择和列选择的译码地址,并且可以向预充电判定逻辑140和存储器接口138提供所述译码地址。在另一种实施方案中,地址译码器136可以向预充电判定逻辑140提供部分译码地址,该部分译码地址只包括一个或多个所生成的存储器选择的一部分,例如只包括页选择。
响应于存储器控制器104选择所述存储器请求进行处理,存储器接口138在框304中可以在存储器总线110上生成页地址信号,该信号打开存储器108的一页118。在一种实施方案中,存储器接口138可以生成以下页地址信号,这些信号包括行地址选通信号(strobe)(RAS)以及与所述存储器请求相关联的级选择、库选择和页选择。响应于行地址信号,存储器108可以打开存储器108中与所述级选择、库选择和页选择相关联的页118。
存储器接口138在框306中还可以在存储器总线110上生成列地址信号和命令地址信号,这些信号选择被打开的页118当中的列124以进行数据传输。在一种实施方案中,存储器接口138可以生成以下列地址信号,这些信号包括列地址选通信号(CAS)以及与所述存储器请求相关联的列选择。响应于列地址信号,存储器108选择被打开页118当中与所述存储器请求相关联的列124。此外,存储器接口138在框306中还可以在存储器总线110上生成命令信号,这些信号配置所选择的列以进行数据传输。例如,存储器接口138可以生成活动的输出使能(OE)信号,从而让所选择的列124向存储器接口138提供存储在所选择的列124中的数据。同样,存储器接口138可以生成不活动的OE信号,从而让所选择的列124接收由存储器接口138提供的数据。
存储器接口138在框308中可以访问所选择的列124,以在存储器接口138和所选择的列124之间传输数据。在一种实施方案中,存储器接口138可以通过在存储器总线110上生成数据信号,而对所选择的列124写数据,所述数据信号包括将要写入的数据以及数据选通信号。同样,存储器接口138可以响应于在存储器总线110上接收到数据信号,而生成来自所选择的列124的读数据,所述数据信号包括来自所选择的列124的数据以及来自存储器108的数据选通信号。
在框310中,存储器控制器104的预充电判定逻辑140可以基于与所述存储器请求相关联的预充电建议,确定是否关闭与所述存储器请求相关联的页118。在一种实施方案中,预充电判定逻辑140确定存储器接口138将关闭页118,除非预充电建议请求该页118保持开放。在另一种实施方案中,预充电判定逻辑140确定存储器接口138将使页118处于开放,除非预充电建议请求将该页118关闭。
在另外一种实施方案中,预充电判定逻辑140还可以基于其他信息做出决定,所述信息例如包括所述存储器请求的译码后地址或部分译码后地址和/或其他未决存储器请求的译码后地址或部分译码后地址。作为所述附加信息的结果,预充电判定逻辑140可以决定使预充电建议已请求关闭的页118保持开放,和/或预充电判定逻辑140可以决定将预充电建议已请求保持开放的页118关闭。
例如,存储器控制器104可能具有从计算设备100的其他组件112或其他处理器(未示出)接收的未决存储器请求。预充电判定逻辑140在框310中可以确定让与所述存储器请求相关联的页118保持开放,直到另一个未决存储器请求已被处理之后,而无视请求将所述页118关闭的预充电建议。同样,预充电判决逻辑140在框310中可以响应于确定存储器接口138在处理了所述存储器请求之后将启动对存储器108中与所述存储器请求相关联的页118或者其他页118的动态刷新,确定关闭与所述存储器请求相关联的页118,而无视请求所述页118保持开放的预充电建议。
响应于确定将关闭页118,存储器接口138在框312中可以使存储器108关闭所选择的页118。在一种实施方案中,存储器接口138可以在存储器总线110上生成预充电命令信号,所述信号使得存储器108关闭所述页118。一般而言,在对所述存储器请求的处理结束之后,和/或在存储器接口138对接收自处理器102的后续存储器请求进行处理之前,预充电命令信号导致存储器108在为所述存储器请求访问了列124之后关闭所述页118。一般而言,生成预充电命令信号的定时和方式取决于存储器108的实现方式。例如,在一种实施方案中,存储器接口138可以通过在适当的时刻使与所述存储器请求相关联的第一行地址信号的RAS不活动(inactivate)而生成预充电命令信号,所述适当的时刻例如是在数据信号已被传输之后,对于某些存储器实现方式而言或许有可能更快一些。在另一种实施方案中,存储器接口138可以提供预充电命令作为存储器接口138在框306中生成的命令信号的一部分,以让存储器108在存储器接口138和稍后选择的列124之间传输数据之后关闭开放页118。
响应于确定使页118处于开放,存储器接口138在框314中还可以让存储器108使所选择的页118处于开放。在一种实施方案中,存储器接口138可以不生成预充电命令信号,或者可以在存储器总线110上生成页开放命令信号,该信号使得存储器108保持页118开放。在一种实施方案中,缺少预充电命令信号将导致存储器108保持页118开放,直至接收到预充电命令信号或者存储器108中一个不同的页118被打开为止。在另一种实施方案中,在为所述存储器请求访问了列124之后,在所述存储器请求结束后,和/或在存储器接口138处理一个后续存储器请求之前,存储器108关闭页118,除非存储器接口138在适当的时刻向存储器108提供了页开放命令信号。一般而言,生成页开放命令信号的定时和方式取决于存储器108的实现方式。例如,在一种实施方案中,存储器接口138可以通过将行地址信号的RAS保持在活动状态,而生成页开放命令信号。在另一种实施方案中,存储器接口138可以提供页开放命令作为存储器接口138在框306中生成的命令信号的一部分,以让存储器108在存储器接口138和稍后选择的列124之间传输数据后保持页118开放。
虽然已参考示例性的实施方案描述了本发明的某些特征,但是以上描述不希望被理解为限制性的含义。对本发明所属领域的技术人员而言很清楚的对所述示例性实施方案以及本发明其他实施方案的各种修改被视为落入本发明的精神和范围之内。
Claims (18)
1. 一种方法,包括:
基于通过处理器对第一存储器事务的第一地址以及第二存储器事务的第二地址的部分译码确定第一存储器事务与将在所述第一存储器事务之后进行处理的第二存储器事务之间是否具有预定的关系;以及
响应于确定所述第一存储器事务与所述第二存储器事务之间具有所述预定的关系,请求存储器控制器对用来满足所述第一存储器事务的存储器器件进行预充电。
2. 如权利要求1所述的方法,还包括:
响应于确定所述第一存储器事务与所述第二存储器事务之间不具有所述预定的关系,请求所述存储器控制器不对用来满足所述第一存储器事务的所述存储器器件进行预充电。
3. 如权利要求1所述的方法,其中的确定操作包括:
由所述第一存储器事务的第一地址来确定第一页选择;
由所述第二存储器事务的第二地址来确定第二页选择;以及
响应于所述第一页选择与所述第二页选择之间具有预定的关系,确定所述第一存储器事务与所述第二存储器事务之间具有所述预定的关系。
4. 如权利要求1所述的方法,其中的确定操作包括:
由所述第一存储器事务的第一物理地址来确定第一页选择;
由所述第二存储器事务的物理地址来确定第二页选择;以及
响应于所述第一页选择与所述第二页选择之间具有预定的关系,确定所述第一存储器事务与所述第二存储器事务之间不具有所述预定的关系。
5. 如权利要求1所述的方法,其中的确定操作包括:响应于所述第一存储器事务和所述第二存储器事务指向同一页,确定所述第一存储器事务与所述第二存储器事务之间不具有所述预定的关系。
6. 一种与耦合到存储器的外部存储器控制器一同使用的处理器,包括:
生成预充电建议的预充电建议逻辑,所述预充电建议响应于基于第一存储器事务的第一地址以及后续第二存储器事务的第二地址的部分译码而确定第一存储器事务与后续第二存储器事务之间具有预定的关系,请求将与所述第一存储器事务相关联的第一页关闭;以及
向所述外部存储器控制器提供所述第一存储器事务和所述预充电建议的接口。
7. 如权利要求6所述的处理器,其中所述预充电建议逻辑生成所述预充电建议,所述预充电建议请求所述第一页响应于确定所述第一存储器事务与所述后续第二存储器事务之间不具有所述预定的关系而保持开放。
8. 如权利要求6所述的处理器,其中所述预充电建议逻辑响应于确定所述后续第二存储器事务没有与所述第一存储器事务指向同一页,将确定所述第一存储器事务与所述后续第二存储器事务之间具有所述预定的关系。
9. 如权利要求6所述的处理器,其中所述预充电建议逻辑响应于确定所述后续第二存储器事务没有与所述第一存储器事务指向同一库,将确定所述第一存储器事务与所述后续第二存储器事务之间具有所述预定的关系。
10. 如权利要求6所述的处理器,其中所述预充电建议逻辑响应于确定所述后续第二存储器事务没有与所述第一存储器事务指向同一级,将确定所述第一存储器事务与所述后续第二存储器事务之间具有所述预定的关系。
11. 一种与处理器和存储器一同使用的存储器控制器,包括:
第一接口,其从所述处理器接收第一存储器请求和第一建议,所述第一建议指示所述处理器是否请求了对所述存储器进行预充电,并且在所述第一存储器请求之后从所述处理器接收第二存储器请求;
预充电判定逻辑,其至少部分地基于所述第一建议以及第一存储器请求的部分译码地址和等待执行的第二存储器请求的部分译码地址来确定是否将对所述存储器进行预充电;以及
第二接口,其为所述第一存储器请求而访问所述存储器的第一存储位置,并且响应于所述预充电判定逻辑确定将对所述存储器进行预充电,而在处理所述第二存储器请求之前对所述存储器进行预充电。
12. 如权利要求11所述的存储器控制器,还包括地址译码器,其基于所述第一存储器请求的第一地址而生成一个或多个第一存储器选择,并且基于所述第二存储器请求的第二地址而生成一个或多个第二存储器选择,其中:
所述预充电判定逻辑还基于所述一个或多个第一存储器选择和所述一个或多个第二存储器选择来确定是否将对所述存储器进行预充电。
13. 如权利要求12所述的存储器控制器,还包括第三接口,其从不同于所述处理器的组件接收第三存储器请求,其中:
所述预充电判定逻辑还基于所述第三存储器请求来确定是否将对所述存储器进行预充电。
14. 一种计算设备,包括:
包括多页的动态随机访问存储器;
如权利要求6所述的处理器,其为第一存储器事务生成预充电建议,并且在处理器总线上发出所述第一存储器事务和所述预充电建议;以及
位于所述处理器之外的存储器控制器,其经由存储器总线耦合到所述动态随机访问存储器,并且经由所述处理器总线耦合到所述处理器,所述存储器控制器从所述处理器总线接收所述第一存储器事务和所述预充电建议,打开所述动态随机访问存储器中由所述第一存储器事务寻址的第一页,并且至少部分地基于所述预充电建议而关闭所述动态随机访问存储器的所述第一页。
15. 如权利要求14所述的计算设备,其中所述处理器在发出所述第一存储器事务后,还在所述处理器总线上发出第二存储器事务,并且基于所述第一存储器事务和所述第二存储器事务之间的预定关系,为所述第一存储器事务生成所述预充电建议。
16. 如权利要求15所述的计算设备,其中:
至少通过页选择对所述动态随机访问存储器中的多页进行寻址;以及
所述处理器确定用于所述第一存储器事务的第一页选择以及用于所述第二存储器事务的第二页选择,并且生成所述预充电建议以请求响应于所述第一页选择和所述第二页选择是不同的而将所述第一存储器事务寻址的第一页关闭。
17. 如权利要求15所述的计算设备,其中:
至少通过库选择和页选择对所述动态随机访问存储器中的多页进行寻址;以及
所述处理器确定用于所述第一存储器事务的第一库选择和第一页选择以及用于所述第二存储器事务的第二库选择和第二页选择,并且生成所述预充电建议,所述预充电建议请求由所述第一存储器事务寻址的第一页响应于所述第一库选择和所述第二库选择是相等的,并且所述第一页选择和所述第二页选择是相等的而保持开放。
18. 如权利要求15所述的计算设备,其中:
至少通过级选择、库选择和页选择对所述动态随机访问存储器中的多页进行寻址;以及
所述处理器确定用于所述第一存储器事务的第一级选择、第一库选择和第一页选择,并且确定用于所述第二存储器事务的第二级选择、第二库选择和第二页选择,并且生成所述预充电建议,所述预充电建议请求响应于所述第一级选择和所述第二级选择是相等的,所述第一库选择和所述第二库选择是相等的,并且所述第一页选择和所述第二页选择是不同的而将由所述第一存储器事务寻址的第一页关闭。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/229,655 | 2002-08-27 | ||
US10/229,655 US7159066B2 (en) | 2002-08-27 | 2002-08-27 | Precharge suggestion |
PCT/US2003/026243 WO2004021194A2 (en) | 2002-08-27 | 2003-08-22 | Precharge suggestion requesting a memory controller to close a page of the memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1788257A CN1788257A (zh) | 2006-06-14 |
CN1788257B true CN1788257B (zh) | 2011-04-06 |
Family
ID=31976284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN03824548.5A Expired - Fee Related CN1788257B (zh) | 2002-08-27 | 2003-08-22 | 用于处理存储器事务的方法和装置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7159066B2 (zh) |
EP (1) | EP1573551B1 (zh) |
CN (1) | CN1788257B (zh) |
AT (1) | ATE368257T1 (zh) |
AU (1) | AU2003258321A1 (zh) |
DE (1) | DE60315190T2 (zh) |
HK (1) | HK1076522A1 (zh) |
TW (1) | TWI236678B (zh) |
WO (1) | WO2004021194A2 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6888777B2 (en) * | 2002-08-27 | 2005-05-03 | Intel Corporation | Address decode |
US7120765B2 (en) * | 2002-10-30 | 2006-10-10 | Intel Corporation | Memory transaction ordering |
US7469316B2 (en) * | 2003-02-10 | 2008-12-23 | Intel Corporation | Buffered writes and memory page control |
US7076617B2 (en) * | 2003-09-30 | 2006-07-11 | Intel Corporation | Adaptive page management |
JP4941644B2 (ja) | 2005-09-28 | 2012-05-30 | ハイニックス セミコンダクター インク | 半導体メモリ装置 |
KR100772841B1 (ko) * | 2006-07-28 | 2007-11-02 | 삼성전자주식회사 | 프로세서들간 호스트 인터페이싱 기능을 갖는 멀티패쓰억세스블 반도체 메모리 장치 |
US20070189084A1 (en) * | 2006-02-15 | 2007-08-16 | Broadcom Corporation | Reduced pin count synchronous dynamic random access memory interface |
US8605099B2 (en) * | 2008-03-31 | 2013-12-10 | Intel Corporation | Partition-free multi-socket memory system architecture |
JP5759276B2 (ja) * | 2011-06-09 | 2015-08-05 | キヤノン株式会社 | 処理装置及び情報処理方法 |
CN102855195B (zh) * | 2011-06-30 | 2015-05-27 | 重庆重邮信科通信技术有限公司 | 第二代低功耗双倍速率存储控制器及访问命令处理方法 |
WO2016089355A1 (en) | 2014-12-01 | 2016-06-09 | Hewlett Packard Enterprise Development Lp | Auto-negotiation over extended backplane |
EP3284218B1 (en) | 2015-10-12 | 2020-01-01 | Hewlett-Packard Enterprise Development LP | Switch network architecture |
US20180293189A1 (en) * | 2015-10-13 | 2018-10-11 | Hewlett Packard Enterprise Development Lp | Memory manager for autonomous memory device |
KR20220007403A (ko) * | 2020-07-10 | 2022-01-18 | 한국전자기술연구원 | 프로세싱인메모리의 메모리 관리 방법 및 장치 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6003111A (en) * | 1997-11-19 | 1999-12-14 | Intel Corporation | Bank state tracking method and device |
US6219765B1 (en) * | 1998-08-03 | 2001-04-17 | Micron Technology, Inc. | Memory paging control apparatus |
EP1191444A1 (en) * | 2000-09-20 | 2002-03-27 | Broadcom Corporation | Page open hint in transactions |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5390308A (en) * | 1992-04-15 | 1995-02-14 | Rambus, Inc. | Method and apparatus for address mapping of dynamic random access memory |
US5664153A (en) | 1993-04-21 | 1997-09-02 | Intel Corporation | Page open/close scheme based on high order address bit and likelihood of page access |
JP3492761B2 (ja) * | 1994-04-07 | 2004-02-03 | 株式会社ソニー・コンピュータエンタテインメント | 画像生成方法及び装置 |
US6154826A (en) * | 1994-11-16 | 2000-11-28 | University Of Virginia Patent Foundation | Method and device for maximizing memory system bandwidth by accessing data in a dynamically determined order |
US20030009616A1 (en) | 1994-11-30 | 2003-01-09 | Brian K. Langendorf | Method and apparatus for integrating and determining whether a memory subsystem is installed with standard page mode memory or an extended data out memory |
US6725349B2 (en) | 1994-12-23 | 2004-04-20 | Intel Corporation | Method and apparatus for controlling of a memory subsystem installed with standard page mode memory and an extended data out memory |
US5761695A (en) * | 1995-09-19 | 1998-06-02 | Hitachi, Ltd. | Cache memory control method and apparatus, and method and apparatus for controlling memory capable of interleave control |
US5603010A (en) | 1995-12-28 | 1997-02-11 | Intel Corporation | Performing speculative system memory reads prior to decoding device code |
US6108745A (en) * | 1997-10-31 | 2000-08-22 | Hewlett-Packard Company | Fast and compact address bit routing scheme that supports various DRAM bank sizes and multiple interleaving schemes |
US6742098B1 (en) | 2000-10-03 | 2004-05-25 | Intel Corporation | Dual-port buffer-to-memory interface |
US6401180B1 (en) | 1999-01-04 | 2002-06-04 | Advanced Micro Devices, Inc. | Bank history table for improved pre-charge scheduling of random access memory banks |
US6389514B1 (en) | 1999-03-25 | 2002-05-14 | Hewlett-Packard Company | Method and computer system for speculatively closing pages in memory |
US6400631B1 (en) | 2000-09-15 | 2002-06-04 | Intel Corporation | Circuit, system and method for executing a refresh in an active memory bank |
US6553449B1 (en) | 2000-09-29 | 2003-04-22 | Intel Corporation | System and method for providing concurrent row and column commands |
US6697888B1 (en) | 2000-09-29 | 2004-02-24 | Intel Corporation | Buffering and interleaving data transfer between a chipset and memory modules |
US6785793B2 (en) * | 2001-09-27 | 2004-08-31 | Intel Corporation | Method and apparatus for memory access scheduling to reduce memory access latency |
US6507530B1 (en) | 2001-09-28 | 2003-01-14 | Intel Corporation | Weighted throttling mechanism with rank based throttling for a memory system |
US6766385B2 (en) | 2002-01-07 | 2004-07-20 | Intel Corporation | Device and method for maximizing performance on a memory interface with a variable number of channels |
US6795899B2 (en) | 2002-03-22 | 2004-09-21 | Intel Corporation | Memory system with burst length shorter than prefetch length |
US20040015645A1 (en) | 2002-07-19 | 2004-01-22 | Dodd James M. | System, apparatus, and method for a flexible DRAM architecture |
US6888777B2 (en) | 2002-08-27 | 2005-05-03 | Intel Corporation | Address decode |
US7120765B2 (en) | 2002-10-30 | 2006-10-10 | Intel Corporation | Memory transaction ordering |
US7469316B2 (en) | 2003-02-10 | 2008-12-23 | Intel Corporation | Buffered writes and memory page control |
US7404047B2 (en) | 2003-05-27 | 2008-07-22 | Intel Corporation | Method and apparatus to improve multi-CPU system performance for accesses to memory |
-
2002
- 2002-08-27 US US10/229,655 patent/US7159066B2/en not_active Expired - Fee Related
-
2003
- 2003-08-22 AT AT03791720T patent/ATE368257T1/de not_active IP Right Cessation
- 2003-08-22 WO PCT/US2003/026243 patent/WO2004021194A2/en active IP Right Grant
- 2003-08-22 CN CN03824548.5A patent/CN1788257B/zh not_active Expired - Fee Related
- 2003-08-22 EP EP03791720A patent/EP1573551B1/en not_active Expired - Lifetime
- 2003-08-22 DE DE60315190T patent/DE60315190T2/de not_active Expired - Lifetime
- 2003-08-22 AU AU2003258321A patent/AU2003258321A1/en not_active Abandoned
- 2003-08-26 TW TW092123457A patent/TWI236678B/zh not_active IP Right Cessation
-
2005
- 2005-09-23 HK HK05108413A patent/HK1076522A1/xx not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6003111A (en) * | 1997-11-19 | 1999-12-14 | Intel Corporation | Bank state tracking method and device |
US6219765B1 (en) * | 1998-08-03 | 2001-04-17 | Micron Technology, Inc. | Memory paging control apparatus |
EP1191444A1 (en) * | 2000-09-20 | 2002-03-27 | Broadcom Corporation | Page open hint in transactions |
Also Published As
Publication number | Publication date |
---|---|
EP1573551A2 (en) | 2005-09-14 |
US7159066B2 (en) | 2007-01-02 |
AU2003258321A8 (en) | 2004-03-19 |
ATE368257T1 (de) | 2007-08-15 |
TW200415655A (en) | 2004-08-16 |
WO2004021194A2 (en) | 2004-03-11 |
EP1573551B1 (en) | 2007-07-25 |
HK1076522A1 (en) | 2006-01-20 |
US20040044832A1 (en) | 2004-03-04 |
DE60315190D1 (de) | 2007-09-06 |
TWI236678B (en) | 2005-07-21 |
DE60315190T2 (de) | 2007-11-22 |
CN1788257A (zh) | 2006-06-14 |
WO2004021194A3 (en) | 2006-01-12 |
AU2003258321A1 (en) | 2004-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6081477A (en) | Write scheme for a double data rate SDRAM | |
US6347055B1 (en) | Line buffer type semiconductor memory device capable of direct prefetch and restore operations | |
CN1788257B (zh) | 用于处理存储器事务的方法和装置 | |
JP3398583B2 (ja) | キャッシュ・シンクロナス・ダイナミック・ランダム・アクセス・メモリ | |
US6647478B2 (en) | Semiconductor memory device | |
US20060168407A1 (en) | Memory hub system and method having large virtual page size | |
US20050268024A1 (en) | Memory controller for use in multi-thread pipeline bus system and memory control method | |
US7840744B2 (en) | Rank select operation between an XIO interface and a double data rate interface | |
US6754135B2 (en) | Reduced latency wide-I/O burst architecture | |
US20040088472A1 (en) | Multi-mode memory controller | |
US6535966B1 (en) | System and method for using a page tracking buffer to reduce main memory latency in a computer system | |
US8621132B2 (en) | System and methods for memory expansion | |
US9368175B2 (en) | Semiconductor memory device receiving multiple commands simultaneously and memory system including the same | |
JP2004134069A (ja) | 部分活性化構造を有してページモード動作が可能な半導体メモリ装置及びその動作方法 | |
US7336551B2 (en) | Semiconductor memory devices and systems, and methods of using having reduced timers and registers | |
US6026466A (en) | Multiple row address strobe DRAM architecture to improve bandwidth | |
US6545932B1 (en) | SDRAM and method for data accesses of SDRAM | |
CN100377138C (zh) | 地址译码的方法与系统 | |
US7003643B1 (en) | Burst counter controller and method in a memory device operable in a 2-bit prefetch mode | |
US9087603B2 (en) | Method and apparatus for selective DRAM precharge | |
US6715024B1 (en) | Multi-bank memory device having a 1:1 state machine-to-memory bank ratio | |
US20070121398A1 (en) | Memory controller capable of handling precharge-to-precharge restrictions | |
KR20210114639A (ko) | 메모리, 메모리 시스템 및 메모리의 동작 방법 | |
US6094397A (en) | Method and apparatus for addressing multi-bank memory | |
JPH06282983A (ja) | メモリ内のデータをアクセスするための方法、メモリシステムおよびメモリ制御システム |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110406 Termination date: 20170822 |
|
CF01 | Termination of patent right due to non-payment of annual fee |