用于基于串流事务信息应用页面管理策略的存储器控制器、系统和方法

文档序号:6361974阅读:155来源:国知局
专利名称:用于基于串流事务信息应用页面管理策略的存储器控制器、系统和方法
技术领域
本发明的技术大体涉及在基于处理器的系统中的存储器存取控制器以及存储页
面管理策略。
背景技术
基于处理器的系统,包含基于中央处理单元(CPU)的系统,通常将动态存储器用于系统存储器。动态存储器也常称作“动态随机存取存储器”或“DRAM”。动态存储器通常被组织成多个存储条,其中每一存储条含有多个存储页面。存取动态存储器涉及两个离散的任务,其两者均可能会消耗处理时间。首先,打开对应于被存取的存储条中的所要存储器位置的存储页面(即,行)。此过程也称作“行选择”,参考二维的行和列存储器布置。其次,存取存储页面内的所要存储器位置(即,列)。此过程也称作“列选择”。必须先关闭含有被存取的存储器位置的存储页面,才可打开同一存储条中的另一存储页面。这样可能会使存储器存取时间增加,这可能会影响到CPU性能,体现于在涉及到存储器存取的事务中带宽减少且等待时间(即,处理时间)增加这两方面。为了减少存储器存取时间和等待时间,可用全局存储页面管理策略对存储器控制器进行配置以使存储页面在存储器存取之后保持打开。所述保持打开存储页面管理策略仅在需要时关闭存储页面,以服务目标为新存储页面的待决存储器存取请求或执行存储器维护命令,例如自动刷新或自刷新(作为实例)。配置存储器控制器以使存储页面在存取之后保持打开对于某些存储器应用来说可为有利的,特别是涉及例如由多媒体应用或处理器(作为实例)进行的非随机、顺序存储器位置存取的那些应用。在这些情形中,通常是对同一存储页面进行顺序存储器存取。通过在对存储条中的同一存储页面进行下一存储器存取之前不关闭所述存储条的所述存储页面来节省处理时间。然而,提供用以使存储页面保持打开的存储页面管理策略会导致折衷。如果对存储条的顺序存储器存取是针对不同存储页面,那么会招致处理时间损失。举例来说,如果存储器控制器接收到对与存储条中的当前打开的存储页面不同的存储页面进行存取的请求,那么存储器控制器在可打开新的存储页面之前必须关闭当前打开的存储页面。在可存取新存储页面之前关闭当前打开的存储页面过程中所招致的额外处理时间可使等待时间增加。采用使存储页面保持打开的存储页面管理策略的另一折衷是保持存储页面在存取之后打开所花费的额外功率。

发明内容
详细描述中揭示的实施例包含用于基于串流事务信息应用页面管理策略的存储器控制器、系统、方法,以及计算机可读媒体。就此而言,在一个实施例中,提供一种存储器控制器。所述存储器控制器包括经配置以接收针对串流事务的存储器存取请求的控制器。串流事务是用以促进有效的数据成批传送的突发存取类型的超集。所述存储器控制器也经配置以接收针对非串流事务(例如单突发和单拍存取类型)的存储器存取请求。所述存储器控制器经配置以对串流事务所指定的存储器中的存储页面执行存储器存取。所述控制器经进一步配置以基于与串流事务有关的信息将页面管理策略应用于存储器。作为实例,串流事务信息可提供关于将来被存取的存储器中的地址范围的信息以及待决串流事务的进度。以此方式,可对页面管理策略进行配置以在利用串流事务时提高效率。还可提供页面管理策略,所述页面管理策略将在存储器控制器正处置来自不同装置的多个存储器存取请求(包含串流事务)时可能出现的等待时间问题考虑在内。作为一个非限制性实例,所述页面管理策略可基于针对串流事务的当前存储页面是否为将由待决串流事务存取的下一存储页面。如果是,那么所应用的页面管理策略可以是使当前存储页面在针对当前串流事务的存储器存取之后保持打开以避免在关闭和重新打开当前存储页面过程中花费处理时间。如果不是,那么所应用的页面管理策略可以是在针对当前串流事务的存储器存取之后关闭当前存储页面。作为另一非限制性实例,页面管理策略可基于针对当前串流事务的下一存储页面是否不是针对所述串流事务而存取的当前存储页面(即,跨页面或行)。如果不是,那么所应用的页面管理策略可以是在针对当前串流事务的存储器存取之后关闭当前存储页面。在另一非限制性实例中,页面管理策略可基于是否存在针对串流事务的对存储器中的同一存储条的多个存储器存取请求。如果是,那么页面管理策略可以是取决于串流事务属性使针对当前串流事务的存储页面打开或关闭,所述串流事务属性包含但不限于是否所有串流事务都有最终期限,是否仅一个串流事务有最终期限,和/或串流事务是否过了其最终期限。在另一实施例中,提供一种用于存取存储器的方法。所述方法包括在存储器控制器处接收针对串流事务的存储器存取请求。所述方法还包括对所述串流事务中包含的存储器中的至少一个存储页面执行存储器存取。所述方法还包括基于与所述串流事务有关的信息来确定用于所述至少一个存储页面的页面管理策略。所述方法还包括将所述页面管理策略应用于所述至少一个存储页面。在另一实施例中,提供一种计算机可读媒体,所述计算机可读媒体上面存储有用以使存储器控制器接收针对串流事务的存储器存取请求的计算机可执行指令。所述计算机可读媒体上面还存储有用以使所述存储器控制器对所述串流事务中包含的存储器中的至少一个存储页面执行存储器存取的计算机可执行指令。所述计算机可读媒体上面还存储有用以使所述存储器控制器基于与所述串流事务有关的信息将页面管理策略应用于所述至少一个存储页面的计算机可执行指令。


图1是包含总线互连件的示范性系统的框图,所述总线互连件将多个主装置连接到从装置,其中一个从装置是包括存储器控制器的存储系统,所述存储器控制器经配置以支持串流事务且基于与串流事务有关的信息将页面管理策略应用于存储器;图2是响应于主装置对从装置的针对串流事务的存储器存取请求而从所述从装置到所述主装置的示范性串流事务响应的框图;图3是说明由图1的存储器控制器执行以处理存储器存取请求且基于与串流事务有关的信息将页面管理策略应用于存储器的示范性过程的流程图;图4A和4B是说明存储器控制器基于与串流事务有关的信息应用页面管理策略的示范性过程的流程图;图5是用于存储器控制器的示范性存储器存取请求队列的图,所述队列经配置以支持来自由请求总线事务的主装置提供的控制块的主装置识别词、存储页面信息以及串流识别符块;图6是存储器控制器基于正被存取的当前存储页面是否为将由待决串流事务存取的下一存储页面将页面管理策略应用于存储器的示范性过程的流程图;图7是存储器控制器基于针对当前串流事务将被存取的下一存储页面是否不是正被当前串流事务存取的当前存储页面将页面管理策略应用于存储器的示范性过程的流程图;图8是存储器控制器基于涉及存储器中的同一存储条的两个或两个以上串流事务是否在作用中将页面管理策略应用于存储器的示范性过程的流程图;以及图9是示范性的基于处理器的系统的框图,所述系统可包含图1的总线互连件和存储系统。
具体实施例方式现在参看图式,描述本发明的若干示范性实施例。词语“示范性”在本文中用以表示“充当实例、例子或示例”。本文中描述为“示范性”的任何实施例不一定被理解为比其它实施例优选或有利。详细描述中揭示的实施例包含用于基于串流事务信息应用页面管理策略的存储器控制器、系统、方法,以及计算机可读媒体。就此而言,在一个实施例中,提供一种存储器控制器。所述存储器控制器包括经配置以接收针对串流事务的存储器存取请求的控制器。串流事务是用以促进有效的数据成批传送的突发存取类型的超集。所述存储器控制器也经配置以接收针对非串流事务(例如单突发和单拍存取类型)的存储器存取请求。所述存储器控制器经配置以对串流事务所指定的存储器中的存储页面执行存储器存取。所述控制器经进一步配置以基于与串流事务有关的信息将页面管理策略应用于存储器。作为实例,串流事务信息可提供关于将来被存取的存储器中的地址范围的信息以及待决串流事务的进度。以此方式,在利用串流事务时,可对页面管理策略进行配置以获得效率。还可提供页面管理策略,所述页面管理策略将在存储器控制器正处置来自不同装置的多个存储器存取请求(包含串流事务)时可能出现的等待时间问题考虑在内。图1和2说明一示范性系统,所述系统包含用于执行存储器存取请求(包含针对串流事务的存储器存取请求)的存储器控制器。就此而言,图1说明示范性系统10,所述系统包含用于基于串流事务信息将页面管理策略应用于存储器的存储器控制器。系统10包含经由总线互连件16互连到从装置14的多个主装置12。总线互连件16可经配置以允许连接到总线互连件16的一个或一个以上主装置12与任一从装置14通信,所述从装置也各自连接到总线互连件16。在此实施例中,在总线互连件16中设置仲裁器20,以仲裁从主装置12到从装置14的多个通信请求,这是因为从装置14是主装置12的共享资源。作为一实例,在需要时,总线互连件16可设置在半导体裸片22中且可提供为系统芯片(SOC)集成电路设计。主装置12和从装置14可以是所要的任何类型的电子装置或子系统,且因此可包含但不限于中央处理单元(CPU) 12(1)、数字信号处理器(DSP) 12(2)、现场可编程门阵列(FPGA) 12(3)、直接存储器存取(DMA)控制器12(4),以及对提供到显示器18的信息进行控制的显示处理器12(5),如图1中所说明。从装置14的实例是存储系统24,其说明于图1中。存储系统24连接到总线互连件16以允许任一主装置12将读取和写入存储器存取请求提供到存储系统24中的存储器26以及接收读取和写入响应。就此而言,存储系统24包含存储器控制器28,所述存储器控制器使总线互连件16与存储器26建立接口且响应于由主装置12经由总线互连件16提供到存储系统24的存储器存取请求而控制去往和来自存储器26的数据流。如下文更详细地论述,将以控制块(CTRL_BL0CK)形式提供的存储器存取信息提供到存储器控制器28以请求对存储器26的存储器存取事务。存储器控制器28包含用以缓冲来自主装置12的存储器存取请求的存储器存取请求队列29。在存储器控制器28中还可设置控制器31,以控制由存储器控制器28进行的操作,包含接收并执行存储器存取请求,以及确定页面管理策略并将页面管理策略应用于存储器26。控制器31可包含电路,而不采用软件指令。存储器控制器28还可包含处理器,所述处理器执行在控制器31中的计算机可读媒体33中提供的或否则存储器控制器28可存取的软件指令。作为实例,计算机可读媒体33可包括寄存器和/或其它存储器。提供存储器总线32以使存储器26与存储器控制器28建立接口,所述存储器总线包含芯片选集CS (O) -CS (N),所提供的每一存储单元30 (O) -30 (N) 一个芯片选集。每一存储单元30 (O)-30 (N)可为分离的存储芯片。芯片选集CS (O)-CS (N)可由存储器控制器28选择性地启用以启用含有将被存取的所要存储器位置的存储单元30 (O) -30 (N)。在此实例中,存储器控制器28—次启用存储单元30 (O)-30 (N)中的一者,使得存储单元30 (O)-30 (N)中的一者在一时间确认数据总线(DATA)上的数据以避免数据冲突。存储器总线32还包含地址/控制总线(ADDR/CTRL),其允许存储器控制器28控制在存储单元30 (O) -30 (N)中存取的存储器地址以用于写入到存储器26或从存储器26读取。存储器总线32还包含时钟信号(CLK),以使存储器控制器32与存储单元30(0)-30 (N)之间的定时同步以进行存储器存取。继续参看图1,每一存储单元30 (O)-30 (N)含有多个存储条,一般被称作元件34。图1说明用于一个存储单元30(0)的存储条34。存储条是存储器的逻辑单元。在图1的所说明实例中,存储条34在DATA总线上一次提供十六(16)位的信息。在所说明实例中,每一存储单元30 (O)-30 (N)含有四个存储条。在图1中仅说明四个存储条(B0、B1、B2和B3);然而,在每一存储单元30 (O)-30 (N)中可设置所要的任何数目的存储条。每一存储条(B0-B3)被组织成栅格状样式,具有“行”和“列”。每一行被称作存储页面36。为了存取存储器26中的存储器位置,存储器控制器28确认芯片选集CS(O)-CS(N),且发出存储页面打开命令,所述命令激活由ADDR/CTRL总线上的地址指示的某一存储页面36。此命令通常占用几个时钟周期。在打开了所要存储页面36之后,列地址38与“读取”或“写入”命令一起由存储器控制器28发出以存取所要存储器位置中的数据。当请求存取存储条34中的另一存储页面36时,存储器控制器28必须减活或关闭当前激活的存储页面36,这通常占用几个时钟周期。如果对给定的一个存储条34中的同一存储页面36进行顺序的或一连串的存储器存取,那么使存储页面36在存取之后保持打开可节省时钟周期。以此方式,对同一存储页面36进行后续存储器存取将不需要重新打开存储页面36。总时钟周期节省的量取决于对同一存储页面36进行的顺序或一连串存储器存取的数目。然而,如果经常对不同的存储页面36进行存储器存取,那么保持或使存储页面36在存取之后打开可导致时钟周期损失。时钟周期损失的量可取决于对不同存储页面36进行后续存储器存取的数目。时钟周期损失的量还可取决于存储器26的特定定时参数,所述参数管控存储器控制器28必须等多长时间才响应于存储器存取请求。在此实施例中,存储单元30 (O) -30 (N)是动态存储器。每一存储单元30 (O) -30 (N)是十六(16)位双数据速率(DDR)动态随机存取存储器(DRAM)芯片,标为DDRtl和DDRn。就此而言,控制对存储单元30 (O)-30 (N)的存取的存储器控制器28可为DDR存储器控制器。存储单元30 (O)-30 (N)可为任何类型的动态存储器。实例包含同步DRAM(SDRAM)、双数据速率(DDR) SDRAM、DDR2 DRAM、DDR3 DRAM、移动 DDR (MDDR) DRAM、低功率 DDR (LPDDR) DRAM 以及LPDDR2 DRAM。存储单元30 (O)-30 (N)可为不同于动态存储器的其它类型的存储器。存储器控制器28可为与存储单元30 (O)-30 (N)兼容的任何类型的存储器控制器。另外,存储器控制器28或存储系统24可作为分离装置设置在母板或其它印刷电路板(PCB)上,或可集成到包含总线互连件16的同一半导体裸片22中,这样可减少等待时间。另外,主装置12也可集成到包含总线互连件16的同一半导体裸片22中。图1中的主装置12可将单拍或突发事务提供到总线互连件16以便由连接到总线互连件16的存储系统24服务。图1中的主装置12也可将串流事务提供到总线互连件16以便由存储系统24服务。串流事务可用以有效地移动大量数据。到存储系统24的串流事务可由突发的超集组成以提供用于将被当作单个事务请求的一部分传送的较大量数据。串流事务的实例说明于图2中。在图2的此实例中,存在数据的两百五十六(256)个突发,其中每一突发包括四(4)个数据拍。从装置14响应于先前由主装置12向从装置14请求的串流事务而提供数据串流40,所述数据串流包括总线互连件16上的突发数据事务42的超集。举例来说,在此实例中,主装置12可为DMA控制器,所述DMA控制器经配置以从存储器26接收大量数据并将所述数据传送到耦合到DMA控制器的其它装置。因为串流事务提供关于将来的存储器存取以及总线互连件16上的相关数据传送业务的有限信息,所以在时钟周期效率方面,使用与串流事务有关的信息来确定存储器控制器28所应用的页面管理策略可能为有利的。举例来说,如果针对串流事务的当前存取的存储页面为将由另一待决串流事务存取的下一存储页面,那么应用使当前存储页面在存储器存取之后保持打开的页面管理策略可能更有效率。作为另一实例,如果在串流事务的处理期间接下来将发生跨页面(或行),那么应用在当前存储页面中的最后一次存取之后关闭当前存储页面的页面管理策略可能更有效率。如果存取同一存储条的多个串流事务在作用中,那么应用取决于串流事务属性使针对当前串流事务的存储页面打开或关闭的页面管理策略可能更有效率,所述串流事务属性包含但不限于是否所有串流事务都有最终期限,是否仅一个串流事务有最终期限,和/或串流事务是否过了其最终期限。就此而言,图3为说明由图1的存储器控制器28执行以处理可包含串流事务的存储器存取请求的总体示范性过程的流程图。对于串流事务,存储器控制器28经配置以基于与串流事务有关的信息来确定页面管理策略并将所述页面管理策略应用于存储器。参看图3,存储器控制器28从存储器存取请求队列29拉来下一个未完成的存储器存取请求(框50)。存储器控制器28确定所拉来的存储器存取请求是否是针对串流事务(框52)。如果不是,那么存储器控制器28可对存储器26执行存储器存取且应用并非基于串流事务信息的缺省页面管理策略(框54)。然而,如果所述存储器存取请求是针对串流事务(框52),那么存储器控制器28可确定所述串流事务是新的还是当前在进行中的(框56)。如果不是已经在进行中的,那么存储器控制器28进行设置并起始所述串流事务(框58)。其后,存储器控制器28通过存取存储器26中含有存储器存取请求的地址的存储页面36来执行串流事务中的下一存储器存取(框60)。存储器控制器28接着基于与所述串流事务有关的信息将页面管理策略应用于所存取的存储页面36 (框60)。如果正处理的串流事务完成(框62),那么存储器控制器28从存储器存取请求队列29拉来下一个未完成的存储器存取请求(框50)且过程重复。如果串流事务未完成(框62),那么存储器控制器28确定是否应将对存储器26的存取的控制给予存储器存取请求队列29中的另一存储器存取(框63)。举例来说,存储器控制器28可经配置以在当前存储器存取请求完成之前切换到存储器存取请求队列29中的下一存储器存取请求。可执行在完成之前切断针对串流事务的存储器存取请求,使得存储器控制器28不会使其它存储器存储请求空等。并且,作为另一实例,如果存储器存取请求队列29中的其它串流事务比正处理的当前串流事务具有更紧迫的最终期限和/或更高的优先级,那么可切换串流事务。如果将放弃对当前串流事务的控制,那么存储器控制器28将关于当前串流事务的进度信息存储在存储器请求存取队列29中,使得可在稍后时间继续所述串流事务(框64)。存储器控制器28接着从存储器存取请求队列29拉来下一个未完成的存储器存取请求(框50)且过程重复。如果将放弃对正处理的当前串流事务的控制(框63),那么存储器控制器28通过存取存储器26中含有存储器存取请求的地址的存储页面36来执行串流事务中的下一存储器存取(框60)。存储器控制器28接着基于与所述串流事务有关的信息将页面管理策略应用于所存取的存储页面36 (框60)。图4A和4B是说明存储器控制器基于与串流事务有关的信息应用页面管理策略的示范性过程的流程图。作为实例,图4A和4B中所说明的过程可作为图3中的框60的一部分由图1中的存储器控制器28执行。就此而言,将关于图1中的系统10和存储器控制器28来论述图4A和4B。然而,图4A和4B中的过程可用在所要的任何系统中,在所述系统中提供并应用了页面管理策略。参看图4A,存储器控制器28确定将针对当前存储器存取请求而存取的存储条34和存储页面36 (图4A中的框70)。如先前在上文所论述,由存储器控制器28处理的存储器存取请求必须存储在存储器存取请求队列29中。存储器控制器28接着咨询内部寄存器,例如图5中的内部寄存器66,以确定将被存取的存储页面36是否已经打开(图4A中的框72)。在图5的实例中,内部寄存器66被提供用于存储器26中的每一存储条34。内部寄存器66含有用以存储给定存储条34的上次被存取的存储页面(MEMORY_PAGE) 36的存储条寄存器68,以及如由页面打开寄存器(PAGE_0PEN)69指示的存储页面36当前是否打开。如果将被存取的存储页面36并未已经打开(图4A中的框72),那么存储器控制器28打开对应于存储器存取请求的存储页面36 (图4B中的框74)。存储器控制器28其后存取存储器存取请求中的存储器位置(图4B中的框76)。如果在图4A的框72中,将被存取的存储页面36已经打开,如图5中的页面打开寄存器69所确定,那么存储器控制器28可直接存取在存储器存取请求中请求的存储器位置,而不必打开含有存储器地址的存储页面36(图4A中的框78)。在请求了存储器存取中的存储器位置之后(在图4A中的框78或图4B中的框76之后),存储器控制器28接着确定将针对存储器存取请求而应用于打开的存储页面36的页面管理策略。取决于所确定的页面管理策略,存储器控制器28可使当前存储页面36在存储器存取之后保持打开或在存储器存储之后关闭当前存储页面36。在此实施例中,存储器控制器28可基于与串流事务有关的信息来确定页面管理策略。就此而言,存储器控制器28确定在存储器存取请求队列29中是否存在任何作用中串流事务,包含当前存储器存取请求(图4A中的框80)。如果没有,那么存储器控制器28确定与串流事务无关的缺省页面管理策略(图4A中的框82),且关闭当前存储器存取请求中的存储页面36(图4A中的框84)或在过程结束(图4A中的框86)之前使当前存储器存取请求中的存储页面36保持打开。如果存在作用中串流事务(图4A中的框80),那么存储器控制器28基于串流事务信息来确定在存储器存取之后用于当前打开的存储页面36的页面管理策略(图4A中的框88)。如下文将关于图6到13更详细论述,基于串流事务信息的页面管理策略可由存储器控制器以各种非限制性方式来提供。如果页面管理策略允许关闭当前存储器存取请求中的存储页面36(图4A中的框88),那么存储器控制器28在过程结束(图4A中的框86)之前关闭当前打开的存储页面36,否则在过程结束(图4A中的框86)之前使当前打开的存储页面36保持打开。为了使存储器控制器支持串流事务请求,将关于串流事务的信息提供到存储器控制器。所述串流事务信息提供大体上指示存储器控制器如何执行串流事务的信息。举例来说,关于图1,存储器控制器28经由总线互连件16从主装置12接收与串流事务有关的信息。如本文所论述,存储器控制器28还使用此串流事务信息来确定在存储器存取之后将应用于存储器的页面管理策略。就此而言,图5是示范性存储器存取请求队列29A的图,所述队列可用作图1中的经配置以支持串流事务的存储器控制器28中的存储器存取请求队列29。存储器存取请求队列29A可提供在内部寄存器中,或在存储器控制器28内部或外部且可由存储器控制器28存取的其它存储器中。存储器存取请求队列29A包括经配置以保持从零(O)到N个存储器存取请求的表格。图5包含示范性主装置识别符92的图,所述识别符提供在存储器存取请求队列29A中以识别请求总线事务的主装置14(0-M)。在此实例中,主装置识别符92是10位的词。前两位(FpFtl)含有构造识别符(fabric identifier) 100,其允许识别在特定存储器存取请求中涉及到的四⑷个不同的构造。中间四位軋為為為)是识别主装置12的主装置识别符102。因此,在此实例中,十六(16)个独特的主装置12是可能的。两位(Sp S0)含有子主装置识别符104,其识别耦合到主装置12的所提供或适用的子主装置。因此,在此实例中,四(4)个独特的子主装置是可能的。后两位(ApAtl)含有属性识别符106,其可用以允许主装置12和/或子主装置提供所要的任何属性信息。举例来说,对软件进程或线程的识别可提供在属性识别符106中以允许主装置12和/或子主装置识别负责存储器存取请求的软件进程或线程。所要的任何其它信息可包含在属性识别符106中。图5还提供了由图1的总线互连件16支持的总线协议的示范性控制块(CTRL_BLOCK)90的图,所述控制块允许主装置12将串流事务信息提供到存储器控制器28用于执行串流事务。控制块90含有允许仲裁器20和存储器控制器28执行来自主装置12的事务请求的控制信息。举例来说,控制块90包含主装置识别符(M_ID)92,其含有与向仲裁器20作出存储器存取请求的请求者相关联的识别符。仲裁器20使用主装置识别符92来确定哪个主装置12将接收从从装置14(包含存储器控制器28)接收到的响应。将对于存储器存取请求而存取的地址提供在地址(ADDRESS)字段94中。存储器存取请求是读取事务还是写入事务提供在读取/写入(R/W)字段96中。提供串流识别符块(STREAM_ID_BL0CK)98以提供总线事务的串流事务信息,所述总线事务在此实例中是存储器存取请求。图5还包含示范性串流识别符块的图,所述串流识别符块可用作图5的控制块90中的串流识别符块98且提供在存储器存取请求队列29A中。串流识别符块98含有与串流事务有关的示范性信息,所述信息提供允许存储器控制器(包含图1中的存储器控制器28)执行与串流识别符块98相关联的串流事务的信息。串流识别符块98还含有与串流事务有关的示范性信息,所述信息可由存储器控制器(包含图1中的存储器控制器28)用以确定在存储器存取之后将应用于存储器的页面管理策略。主装置12在互连总线16上请求串流事务时提供串流识别符块98中的信息。 如图5中所说明,串流块识别符98包含识别串流事务的串流识别符字段(STREAM_ID) 108。传送数目字段(N0_TRANSFERS)110提供与串流事务相关联的突发传送的数目。拍数目字段(N0_BEATS) 112提供对于每一突发传送将执行的数据传送的拍数目。字节数字段114(N0_BYTES)提供在每一拍传送期间将传送的数据的字节数。字节数字段114可为可配置的或为固定值,具体取决于总线互连件16和从装置14的架构。如果存在与串流事务相关联的最终期限,那么可将最终期限信息存储在最终期限字段(DEADLINE) 116中。举例来说,主装置12可请求在某一定时内完成特定串流事务,所述定时可以是按时钟周期、拍,或其它相对或绝对定时来说的。还提供优先级字段(PRIORITY) 118以允许优先级与串流事务相关联。优先级字段118可经配置以取决于设计由主装置12、仲裁器20或从装置14供应和/或更改。此串流信息的任何部分可由存储器控制器28用以确定页面管理策略。图1中的存储器控制器28在此实例中从仲裁器20接收包含图5中的控制块90的存储器存取请求,且将所述存储器存取请求存储在存储器存取请求队列29A中。使用队列数目字段(QUEUE_N0) 120对存储在存储器存取请求队列29A中的存储器存取请求编索弓I。在此实例中,存储器存取请求队列29A中的每一存储器存取请求条目包含用以识别组织存储器存取请求的主装置12的主装置识别符字段92。存储器存取请求条目还包含由存储器控制器28基于接收到的控制块90中的地址字段94中的地址确定的芯片选集字段(CS) 122、存储条字段(MEM0RY_BANK) 124,以及存储页面字段(MEM0RY_PAGE) 126。串流识别符块98还被提供用于每一存储器存取请求条目以在存储器存取请求是串流事务的情况下存储串流事务信息。还提供剩余传送数目字段(NO_ACCESSES_REMAIN) 128以允许存储器控制器28在串流事务由存储器控制器28执行时存储串流事务的存储器存取请求的进度。存储器控制器(包含图1的存储器控制器28)可使用不同准则来基于与串流事务有关的信息确定页面管理策略。本发明不限于任何特定准则。图6是基于正被存取的当前存储页面是否为将由待决串流事务存取的下一存储页面来应用页面管理策略的一个示范性准则和过程88A的流程图。所述过程可作为图4A中的框88的一部分来执行。如图6中所说明,在存储器控制器28进行了存储器存取之后,存储器控制器28确定所存取的当前存储页面36是否为将由存储器请求存取队列29A中待决的串流事务存取的下一存储页面(框130)。待决串流事务可为正处理的当前串流事务的后续部分或为存储器请求存取队列29A中的另一串流事务。如果不是,那么存储器控制器28可在存储器存取之后应用缺省页面管理策略(框132),所述缺省页面管理策略可以是在存取之后关闭当前存储页面36或使当前存储页面36在存储之后保持打开。继续参看图6,如果存储器控制器28确定所存取的当前存储页面36为将由存储器请求存取队列29A中待决的串流事务存取的下一存储页面(框130),那么可能希望使当前存储页面36保持打开。在此情形中,已知至少一个串流事务将请求对打开的当前存储页面36进行存储器存取。在此情况中,存储器控制器28可使当前存储页面36保持打开(框134)。或者,存储器控制器28可仅在待决串流事务过了其最终期限的情况下使当前存储页面36保持打开(框136),所述最终期限提供在存储器存取请求队列29A中的串流识别符块98中的最终期限字段116中(图5);否则,存储器控制器28可关闭当前存储页面36。其后,当前存储器存取请求结束(框138)。图7是存储器控制器应用页面管理策略的另一示范性准则和过程88B的流程图。在此实例中,存储器控制器基于将由当前串流事务存取的下一存储页面是否不是正由当前串流事务存取的当前存储页面来应用页面管理策略。这表示在当前存储页面36中将发生“跨页面”或“跨行”,且因此在存取之后在下一存储页面存取之前关闭当前存储页面36可能为有利的。此过程可作为图4A中的框88的一部分来执行。如图7中所说明,在存储器控制器28进行了存储器存取之后,存储器控制器28确定将由正处理的当前串流事务存取的下一存储页面是否不是当前存储页面36 (框140)。如果是,那么存储器控制器28可应用缺省页面管理策略(框142),所述缺省页面管理策略可以是在存取之后关闭当前存储页面
36。如果不是,那么这表示对于串流事务的下一存储器存取将不会发生“跨行”。在此情况中,存储器控制器28可在当前存储器存取请求结束(框146)之前使当前存储页面36在存取之后保持打开(框144)。图8是存储器控制器应用页面管理策略的另一示范性准则和过程88C的流程图。在此实例中,存储器控制器基于涉及存储器中的同一存储条的两个或两个以上串流事务是否在作用中来应用页面管理策略,且如果是,那么基于另外的准则。此过程可作为图4A中的框88的一部分来执行。如图8中所说明,在存储器控制器28进行了存储器存取之后,存储器控制器28确定是否存在向同一存储条呈现的两个或两个以上待决串流事务(框150)。如果不是,那么存储器控制器28可应用缺省页面管理策略(框151)。如果存在向同一存储条呈现的两个或两个以上待决串流事务(框150),那么存储器控制器28可确定所述待决串流事务中仅有一个串流事务还是有一个以上串流事务有最终期限(框152)。有最终期限的串流事务是完成串流事务是有时间最终期限要求的串流事务。举例来说,如果串流事务由“N”个“X”拍的子传送组成,那么与串流事务相关联的最终期限可为完成所述子传送中的每一者所用的时间。或者,与串流事务相关联的最终期限可为完成所有子传送所用的时间。再另外,最终期限可与子传送和完整传送两者相关联。作为一个实例,串流事务的最终期限可按时钟周期来提供,例如在串流事务的传送中涉及到的所有实体都具有共同的时钟源的情况下,其中最终期限可按共同时间值来确定。作为另一实例,串流事务的最终期限可按绝对时间来提供,所述绝对时间是由串流事务的传送中涉及到的实体来计算。如果待决串流事务中仅有一个串流事务有最终期限,那么可通过使有最终期限的串流事务的存储页面在存取之后保持打开以为有最终期限的串流事务提供减少的存储器存取时间将优先级给予有最终期限的串流事务。就此而言,如果存储器控制器28当前在处理有最终期限的串流事务(框154),那么存储器控制器28可在结束当前存储器存取请求(框158)之前使当前存储页面36保持打开以用于正处理的串流事务(框156)。如果存储器控制器28当前不在处理有最终期限的串流事务(框154),那么存储器控制器28可在需要时为当前存储器存取请求应用缺省页面管理策略(框160)。如果在框152中,一个以上待决串流事务有最终期限,那么存储器控制器28确定所述有最终期限的待决串流事务中是有一个串流事务还是有一个以上串流事务过了其最终期限(框162)。如果仅有一个待决串流事务有最终期限,且如果存储器控制器28当前在处理此有最终期限的串流事务(框164),那么存储器控制器28使当前存储页面36保持打开(框156)。如果存储器控制器28当前不在处理过了其最终期限的串流事务(框164),那么存储器控制器28可应用缺省页面管理策略(框160)。然而,如果一个以上待决串流事务有最终期限(框162),那么存储器控制器28确定正处理的当前串流事务是否具有比当前不在处理的其它待决串流事务高的优先级(框166)。就此而言,可针对当前串流事务和其它待决串流事务来咨询图5中的串流识别符块98中的优先级字段118。如果正处理的当前串流事务具有比当前不在处理的其它待决串流事务高的优先级(框166),那么存储器控制器28可使当前存储页面36保持打开(框156);否则,存储器控制器28可应用缺省页面管理策略(框160)。如果不为当前串流事务提供优先级字段118,或如果提供了优先级字段118但两个或两个以上有最终期限的竞争串流事务在优先级字段118中具有相同的优先级,那么可用其它方式来进行优先级确定。举例来说,可通过编码值(例如,完成百分比、落后的时钟周期、或落后的时间)来确定优先级确定,所述编码值指示在存储器控制器28必须作出页面管理策略决策的给定时间点处每一串流事务落后了多久或提前多久。如果所有有最终期限的竞争串流事务都过了时间,那么编码值可指示每一串流事务落后了多久,这可用以确定页面管理策略中使哪些存储页面保持打开。请注意,本文中的页面管理策略实例(包含图10到12中的)可按需要单个地提供或以组合方式一起提供。并且,本文所揭示的任何或所有页面管理策略可由存储器控制器28通过电路来进行,所述电路可以或可以不包含执行计算机可读媒体33中的软件指令的控制器31,如图1中所说明。存储器控制器28可使用其它页面管理策略准则来应用页面管理策略。根据本文所揭示的实施例的用于应用页面管理策略的存储器控制器、系统、方法和计算机可读媒体可提供于或集成到用于控制对存储器的存取的任何基于处理器的装置中。实例(并非限制)包含机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器,以及便携式数字视频播放器。就此而言,图9说明基于处理器的系统170的实例,所述系统可采用图1中所说明的系统10的组件。在此实例中,基于处理器的系统170包含一个或一个以上中央处理单元(CPU) 172,其各自包含一个或一个以上处理器174。CPU172可为主装置。CPU172可具有高速缓冲存储器存储器176,所述高速缓冲存储器存储器耦合到处理器174以快速存取临时存储的数据。CPU172耦合到系统总线180,所述系统总线将基于处理器的系统170中包含的其它装置互相耦合。系统总线180可为如图1的总线互连件16的总线互连件。如众所周知的,CPU172与这些其它装置通过经由系统总线180交换地址、控制和数据信息来进行通信。举例来说,CPU172可经由通信将对外部存储器的存储器存取请求传达给作为从装置的存储器控制器28。尽管图9中未说明,但可提供多个系统总线180,其中每一系统总线180构成了不同的构造。其它主装置和从装置可连接到系统总线180。如图9中所说明,作为实例,这些装置可包含存储系统24、一个或一个以上输入装置184、一个或一个以上输出装置186、一个或一个以上网络接口装置188,以及一个或一个以上显示控制器190。输入装置184可包含任何类型的输入装置,包含但不限于输入键、开关、话音处理器等。输出装置186可包含任何类型的输出装置,包含但不限于音频、视频、其它视觉指示器等。网络接口装置188可为经配置以允许与网络192交换数据的任何装置。网络192可为任何类型的网络,包含但不限于有线或无线网络、专用或公用网络、局域网(LAN)、广域网(WLAN),以及因特网。网络接口装置188可经配置以支持所要的任何类型的通信协议。存储系统24可包含耦合到存储器26的存储器控制器28。存储器26可包含如提供在图1的存储系统10中的一个或一个以上存储单元30 (O)-30 (N)。仲裁器20可设置在系统总线180与存储单元30 (O)-30 (N)(如设置在图1的存储系统24中)之间,以控制对存储单元30 (O)-30 (N)的存取。CPU172还可经配置以经由系统总线180接入显示控制器190以控制发送到一个或一个以上显示器194的信息。显示控制器190将信息经由一个或一个以上视频处理器196发送到显示器194以便显示,所述处理器将待显示的信息处理成适合于显示器194的格式。显示器194可包含任何类型的显示器,包含但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。CPU172和显示控制器190可充当主装置以经由系统总线180向仲裁器20作出存储器存取请求。CPU172和显示控制器190内的不同线程可向仲裁器20作出多个请求。如先前所描述,CPU172和显示控制器190可将主装置识别符92提供到仲裁器20以确定请求对存储系统24的存储器存取。所属领域的技术人员将进一步了解,结合本文所揭示的实施例描述的各种说明性逻辑块、模块、电路和算法可实施为电子硬件、存储在存储器中或在另一计算机可读媒体中且由处理器或其它处理装置执行的指令,或其两者的组合。作为实例,本文所描述的存储器控制器、仲裁器、主装置以及子主装置可用在任何电路、硬件组件、集成电路(1C),或IC芯片中。存储器可为任何类型和大小的存储器且可经配置以存储所要的任何类型的信息。为了清楚说明此互换性,上文已大体在功能性方面描述了各种说明性组件、块、模块、电路和步骤。此类功能性如何实施取决于特定应用、设计选择,和/或施加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述功能性,但此些实施决策不应被解释为导致偏离本发明的范围。结合本文揭示的实施例描述的各种说明性逻辑块、模块和电路可用经设计以执行本文描述的功能的处理器、DSP、专用集成电路(ASIC)、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。举例来说,总线互连件可通过现场可编程门阵列(FPGA)、异步同步集成电路(ASIC)、控制器、可执行软件指令的微控制器或微处理器,或其任何组合来提供。处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器,或状态机。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、一个或一个以上微处理器与DSP核心结合,或任何其它此类配置。本文揭示的实施例可用硬件以及存储在硬件中的指令来体现,且可驻存(例如)在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、寄存器、硬盘、可装卸磁盘、CD-ROM,或此项技术中已知的任何其它形式的计算机可读媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息以及将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻存在ASIC中。ASIC可驻存在远程站中。在替代方案中,处理器和存储媒体可作为离散组件驻存在远程站、基站或服务器中。还应注意,描述在本文的任何示范性实施例中描述的操作步骤是为了提供实例和论述。所描述的操作可按除了所说明的顺序之外的众多不同顺序来执行。此外,在单个操作步骤中描述的操作实际上可在多个不同步骤中执行。另外,在示范性实施例中论述的一个或一个以上操作步骤可进行组合。应理解,在流程图中说明的操作步骤可进行众多不同的修改,如所属领域的技术人员所易于了解的。所属领域的技术人员还应理解,可使用各种不同技术和技艺中的任一者来表不信息和信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在以上描述中始终参考的数据、指令、命令、信息、信号、位、符号以及码片。提供本发明的先前描述是为了使所属领域的技术人员能够制作或使用本发明。所属领域的技术人员将容易了解对本发明的各种修改,且本文中界定的一般原理可应用于其它变化而不偏离本发明的精神或范围。因此,不希望本发明限于本文中描述的实例和设计,而是赋予其与本文中揭示的原理和新颖特征相一致的最广范围。
权利要求
1.一种存储器控制器,其包括: 控制器,其经配置以接收针对串流事务的存储器存取请求且对所述串流事务中包含的存储器中的至少一个存储页面执行存储器存取; 其中所述控制器经配置以基于与所述串流事务有关的信息将页面管理策略应用于所述至少一个存储页面。
2.根据权利要求1所述的存储器控制器,其中与所述串流事务有关的所述信息是选自由以下各项组成的群组的信息:主装置识别符、串流识别符、与所述串流事务相关联的优先级,以及与所述串流事务相关联的最终期限。
3.根据权利要求1所述的存储器控制器,其中所述页面管理策略是基于针对所述串流事务的当前存储页面是否为所述存储器中将由待决串流事务存取的所述当前存储页面的下一存储页面。
4.根据权利要求3所述的存储器控制器,其中所述页面管理策略是在针对所述待决串流事务的待决存储器存取请求过了最终期限的情况下使存储页面保持打开。
5.根据权利要求4所述的存储器控制器,其中针对所述串流事务的所述待决存储器存取请求选自由以下各项组成的群组:针对所述串流事务的所述存储器存取请求,以及针对另一串流事务的另一存储器存取请求。
6.根据权利要求1所述的存储器控制器,其中所述页面管理策略是基于针对所述存储器存取请求的下一存储页面是否不是针对所述存储器存取请求的当前存储页面。
7.根据权利要求1所述的存储器控制器,其中所述页面管理策略是基于是否存在针对多个串流事务的对所述存储器中的同一存储条的多个存储器存取请求。
8.根据权利要求7所述的存储器控制器,其中所述页面管理策略是基于是否针对串流事务的所述多个存储器存取请求中的至少一者有最终期限,且针对串流事务的所述多个存储器存取请求中的至少一者没有最终期限。
9.根据权利要求8所述的存储器控制器,其中所述页面管理策略是对于针对串流事务的所述多个存储器存取请求中没有最终期限的所述至少一者关闭存储页面。
10.根据权利要求8所述的存储器控制器,其中所述页面管理策略是对于针对串流事务的所述多个存储器存取请求中有最终期限的所述至少一者使存储页面保持打开。
11.根据权利要求7所述的存储器控制器,其中所述页面管理策略是基于是否针对串流事务的所述多个存储器存取请求中的两者或两者以上有最终期限。
12.根据权利要求11所述的存储器控制器,其中所述页面管理策略是对于针对串流事务的所述多个存储器存取请求中没到做出其最终期限的针对串流事务的所述存储器存取请求使存储页面保持打开。
13.根据权利要求11所述的存储器控制器,其中所述页面管理策略进一步基于针对串流事务的所述多个存储器存取请求中没到做出其最终期限的所述两者或两者以上的优先级。
14.根据权利要求11所述的存储器控制器,其中所述页面管理策略进一步基于针对串流事务的所述多个存储器存取请求中没到做出其最终期限的所述两者或两者以上的主装置识别符。
15.根据权利要求11所述 的存储器控制器,其中所述页面管理策略进一步基于针对串流事务的所述多个存储器存取请求中的所述两者或两者以上中的至少一者不具有优先级。
16.根据权利要求1所述的存储器控制器,其集成到半导体裸片中。
17.根据权利要求1所述的存储器控制器,其进一步包括选自由以下各项组成的群组的装置:机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理PDA、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘DVD播放器,以及便携式数字视频播放器,所述存储器控制器集成到所述装置中。
18.—种用于存取存储器的方法,其包括: 在存储器控制器处接收针对串流事务的存储器存取请求; 对所述串流事务所涉及的存储器中的至少一个存储页面执行存储器存取;基于与所述串流事务有关的信息来确定用于所述至少一个存储页面的页面管理策略;以及 将所述页面管理策略应用于所述至少一个存储页面。
19.根据权利要求18所述的方法,其中确定用于所述至少一个存储页面的所述页面管理策略是基于针对所述串流事务的当前存储页面是否为所述存储器中将由待决串流事务存取的所述当前存储页面的下一存储页面。
20.根据权利要求18所述的方法,其中所述页面管理策略是在针对串流事务的待决存储器存取请求过了最终期限的情况下使存储页面保持打开。
21.根据权利要求18所述的方法,其中确定用于所述至少一个存储页面的所述页面管理策略是基于针对所述存储器存取请求的下一存储页面是否不是针对所述存储器存取请求的当前存储页面。
22.根据权利要求18所述的方法,其中确定用于所述至少一个存储页面的所述页面管理策略是基于是否存在针对串流事务的对所述存储器中的同一存储条的多个存储器存取请求。
23.根据权利要求22所述的存储器控制器,其中确定用于所述至少一个存储页面的所述页面管理策略是基于是否针对串流事务的所述多个存储器存取请求中的至少一者有最终期限,且针对串流事务的所述多个存储器存取请求中的至少一者没有最终期限。
24.根据权利要求23所述的方法,其中所述页面管理策略是对于针对串流事务的所述多个存储器存取请求中没有最终期限的所述至少一者关闭存储页面。
25.根据权利要求23所述的方法,其中所述页面管理策略是对于针对串流事务的所述多个存储器存取请求中有最终期限的所述至少一者使存储页面保持打开。
26.根据权利要求22所述的方法,其中确定用于所述至少一个存储页面的所述页面管理策略是基于是否针对串流事务的所述多个存储器存取请求中的两者或两者以上有最终期限。
27.根据权利要求22所述的方法,其中确定用于所述至少一个存储页面的所述页面管理策略是基于针对串流事务的所述多个存储器存取请求中的所述两者或两者以上中的至少一者不具有优先级。
28.一种计算机可读媒体,其上面存储有用以使存储器控制器进行以下操作的计算机可执行指令:接收针对串流事务的存储器存取请求且对所述串流事务中包含的存储器中的至少一个存储页面执行存储器存取,以及基于与所述串流事务有关的信息将页面管理策略应用于所述至少一个存储页面。
29.根据权利要求28所述的计算机可读媒体,其进一步包括用以使所述存储器控制器执行以下操作的计算机可执行指令:基于针对所述串流事务的当前存储页面是否为所述存储器中将由待决串流事务存取的所述当前存储页面的下一存储页面来应用所述页面管理策略。
30.根据权利要求28所述的计算机可读媒体,其进一步包括用以使所述存储器控制器执行以下操作的计算机可执行指令:基于针对所述存储器存取请求的下一存储页面是否不是针对所述存储器存取请求的当前存储页面来应用所述页面管理策略。
31.根据权利要求28所述的计算机可读媒体,其进一步包括用以使所述存储器控制器执行以下操作的计算机可执行指令:基于是否存在针对串流事务的对所述存储器中的同一存储条的多个存储器存取请求来应用所述页面管理策略。
全文摘要
揭示了用于基于串流事务信息应用页面管理策略的存储器控制器、系统、方法,以及计算机可读媒体。在一个实施例中,提供一种存储器控制器,且所述存储器控制器经配置以接收针对串流事务的存储器存取请求。所述存储器控制器经配置以对所述串流事务中包含的存储器中的存储页面执行存储器存取。所述控制器经进一步配置以基于与所述串流事务有关的信息将页面管理策略应用于存储器中的存储页面。以此方式,所述页面管理策略可经配置以利用页面打开策略来实现串流事务可促成的效率,而且同时还辨识出在存储器控制器正处置来自不同装置的存储器存取请求时可能出现的等待时间问题且在页面管理策略中将其考虑在内。
文档编号G06F13/16GK103154918SQ201180048672
公开日2013年6月12日 申请日期2011年10月10日 优先权日2010年10月8日
发明者马丁·瑞安·雪伦, 理查德·杰拉尔德·霍夫曼, 马克·迈克尔·谢弗 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1