专利名称:用于多线程流水线总线系统的存储控制器的利记博彩app
技术领域:
本发明涉及一种数据处理系统,具体地说,涉及一种用于控制存取动态随机存取存储器的存储控制器。
背景技术:
同步动态随机存取存储器(SDRAM)器件用于各种计算设备,并且由各种类型的处理器存取。SDRAM控制器响应来自诸如主处理器的主机的命令和地址,产生用于控制读写操作的信号。当存取SDRAM的存储单元时,该存储单元位于其上的一行(或一字线)被激活。SDRAM控制器的一个功能是判定待存取的行当前是否被激活。如果该行没有被激活,则SDRAM控制器在进行涉及该行的读或写存取之前激活该行。SDRAM控制器的另一个功能是当存取转向新的行时惰化(inactivate)先前被激活的行。
众所周知,为了保持所存储数据的状态,SDRAM在读/写操作之后进行预充电操作。当执行该预充电操作时,先前被激活的行受到惰化,而将列(或位线)设置为预充电电压(例如VCC/2)。该预充电操作通常需要几个时钟周期,例如两个或三个时钟周期来完成。当连续存取SDRAM同一排中的行时,即使不需要也要进行预充电操作。如图1所示,当存取给定排(A排)中的行和存取另一排(B排)中的行时,为了对先前选择的A排进行预充电操作需要附加的时钟周期(图1中的时间间隔A)。在预充电时间期间,暂停对存储单元的存取。因此,由于SDRAM的预充电操作而影响了SDRAM的存取速率。具体地说,SDRAM的存取频率越大,SDRAM的存取速率受预充电操作的影响越大。
发明内容
本发明针对一种用于按照更为有效或理想的方式来控制SDRAM的预充电操作的系统和方法,从而提高SDRAM的存取速率,同时适应对预充电操作的需要。
本发明的一个方面是提供一种能减小存取时间的存储控制器和方法。
本发明的另一个方面是提供一种能有效控制SDRAM的预充电操作的存储控制器和方法。
在第一个方面中,本发明针对一种多线程流水线系统中的存储控制方法。根据该方法,从主机顺序接收存储单元中待访问的多排的地址。对于该多排中的每一排,判定当读/写命令输出到存储单元时对应于该排的地址是否从主机输入。当该判定结果表明对应于该排的地址已输入时,向该存储单元输出包括公开页信息和自动预充电信息中任一种在内的读/写命令。
在一个实施例中,输出所述读/写命令包括对于所述多排的每一排确定当前行地址是否等于所接收的地址序列的下一个行地址;如果当前行地址等于下个行地址则输出包括公开页信息在内的所述读/写命令;如果当前行地址不等于下个行地址则输出包括自动预充电信息在内的所述读/写命令。
在另一个实施例中,当所述判定结果表明对应于该排的地址没有从主机输入时,还包括在对所述多排的另一排进行存取操作期间,对该同一排执行预充电操作。
在另一实施例中,所述方法还包括对于所述多排中的每一排判定是否输入了对应于该排的下个行地址;判定对应于该排的下个行地址是否等于对应于该排的先前被激活行的行地址;以及当对应于该排的下个行地址不等于对应于该排的先前被激活行的行地址时,向存储单元输出预充电命令,以开始对该排的预充电操作。
在另一个实施例中,在对所述多排的另一排进行存储操作期间对该排执行预充电操作。在另一实施例中,所述存储单元包括DDR SDRAM。
在另一个方面中,本发明针对一种用于控制多线程流水线系统中包括多排的存储单元的存储控制器。多个FIFO存储器分别顺序存储着该存储单元的多排的对应排的地址和命令。多个第一状态机器对应着每个FIFO存储器,其中每个第一状态机器响应存储在对应FIFO存储器中的地址和命令,产生激活命令和读/写命令作为该存储单元的对应排的存取操作的输出。每个第一状态机器判定在所述读/写命令输出到存储单元时,该存储单元的对应排的地址是否输入到对应FIFO存储器中。
在一个实施例中,在各第一状态机器中,如果在输出所述读/写命令时所述存储单元的对应排的地址输入到对应FIFO存储器中,则该第一状态机器判定当前行地址是否与下个行地址相同。
在另一个实施例中,在各第一状态机器中,如果所述当前行地址等于下个行地址,则该第一状态机器向存储单元输出包括公开页信息在内的读/写命令。
在另一个实施例中,在各第一状态机器中,如果所述当前行地址不等于下个行地址,则该第一状态机器向存储单元输出包括自动预充电信息在内的读/写命令。
在另一个实施例中,在各第一状态机器中,如果在输出所述读/写命令时所述存储单元的对应排的地址没有输入到对应FIFO存储器中,则该第一状态机器继续监控是否输入了该对应排的地址。
在另一个实施例中,在各第一状态机器中,如果输入所述存储单元的对应排的地址,则该第一状态机器发布预充电命令,以便在对该存储单元的多排的另一排进行存取操作期间,执行该存储单元的对应排的预充电操作。
在另一个实施例中,所述存储控制器还包括接收所述第一状态机器的输出的多路选择器;第二状态机器,用于响应所输入的该地址的排信息来控制该多路选择器,以选择任何一个第一状态机器的输出;定时发生器,用于响应由多路选择器选择的第一状态机器的输出,来控制所述存储单元的存取定时。
在另一个实施例中,所述存储器包括DDR SDRAM。
所包括的附图提供了对本发明的进一步理解,并且合并在此组成了说明书的一部分。附图示出了本发明的实施例,和说明一起用于解释本发明的原理。在附图中图1是说明经历存取周期的传统存储控制器的预充电操作的定时的时序图;图2是根据本发明的存储控制器的示意框图;图3是说明对本发明的存储控制器的控制操作的流程图;图4和图5是说明对本发明的存储控制器的控制操作的时序图。
具体实施例方式
下面参考附图详细描述本发明的优选实施例。但是,本发明可以体现为不同形式,并且不应当构建为仅限于这里提出的实施例。相反,提供这些实施例是为了使本公开彻底和完备,并向本领域的技术人员充分展示本发明的范围。整个说明书中,相同的标记表示相同的元件。
下面,结合附图描述本发明的示例实施例。
本发明的存储控制器适用于多线程流水线总线系统。在这种系统中,存储控制器不仅接收当前存取周期所需要的地址和命令,还接收后来的存取周期所需要的地址和命令。在本发明的控制器和方法中,当输出读或写命令时,判定下个存取周期所需要的地址是否与当前地址相同。根据该判定结果,可以向存储器件输出自动预充电或公开页读/写命令。此外,如果在读/写命令输出到存储器件时无法获得下个存取周期所需要的地址,则在对存储器件的另一排进行存取操作期间,根据随后的输入地址执行预充电操作。下面将详细解释该过程。本发明的预充电操作调度系统和方法减少了存储器件的存取时间,并由此改善了系统性能。
图2是根据本发明的存储控制器的示意框图。参照图2,本发明的存储控制器100用于多线程流水线总线系统,并相应从主机200接收的地址和命令来控制存储器300的存取操作(例如读操作、写操作、预充电操作等等)。存储控制器100包括接收器110、多个FIFO存储器120_i(i=0~n)、多个第一状态机器130_i、第二状态机器140、多路选择器150和定时发生器160。每个FIFO存储器120_i分别具有对应的第一状态机器130_i。在一个实施例中,FIFO存储器120_i的个数等于存储器的排数。但是,本领域的技术人员公知即使在每个存储器件都包括多排的情况下,FIFO存储器120_i也可以选择实施为分别对应于多个存储器件。
接收器110从诸如主处理器的主机200接收地址和命令。所输入的地址包括涉及待存取的存储器件的行、列和排的信息。所输入的地址根据排信息存储在对应的一个FIFO存储器120_i中。每个第一状态机器130_i响应存储在每个对应FIFO存储器中的地址和命令来输出存取该存储器件300所需要的信息(例如激活命令、读/写命令、预充电命令、地址等等)。第二状态机器140参照从接收器110输出的排信息进行操作来调度第一状态机器130_i。多路选择器150响应第二状态机器140输出的控制信息来选择一个第一状态机器130_i的输出。定时发生器160响应由多路选择器150选择的第一状态机器130_i产生的信息,来控制存储器300的存储器存取操作的定时。
下面,参考图3、4和5详细解释存储控制器的控制操作。图3是说明本发明的存储控制器的控制操作的流程图。图4和图5是解释本发明的存储控制器的控制操作的时序图。
在采用本发明的存储控制器110的多线程流水线总线系统中,为存储控制器100顺序提供涉及存储器存取操作的地址。存储控制器100在对应的存储器件中存储从主机200提供的多个地址。在一个实施方式中,下面描述的操作由第一状态机器130_i执行,为方便起见在第一状态机器130_0的基础上进行解释。也就是说,下面详细解释对A排的存取操作;但是所描述的操作同样适用于该存储器件或多个存储器件中的其他排。
第一状态机器130_0开始时判定是否断定了新地址(步骤S100)。参考图3和图4,假设输入新地址BANK_A和ROW_A,第一状态机器130_0判定对应于第一状态机器130_0的存储器排(例如A排)的行是激活还是没有激活(步骤S110)。本领域的技术人员公知,第一状态机器130_i排列为记录对应存储器排以前的操作状态。如果A排的行事先没有激活,则状态机器发布激活该排的行的命令(步骤S120)。
如本领域公知的,按照如下方式执行激活行的操作(步骤S120)。第一状态机器130_0输出包括控制信号和行地址的组合在内的激活命令。包括控制信号和行地址在内的激活命令通过多路选择器150,在第二状态机器140的控制下提供给定时发生器160。然后,定时发生器160根据定时协议向存储器件300输出所输入的激活命令和有关的行地址。在上述过程中,可以激活存储器A排的一个新行。如本领域的技术人员公知的,在向存储器件300发送了行激活命令之后,可以将列地址和读/写命令输出到A排。如上所述来执行发送列地址和读/写命令的过程。此后,该过程行进至步骤S140。
返回步骤S110,如果激活A排中的期望行,则第一状态机器130_0接下来判定当前行地址是否等于先前激活的行地址(步骤S130)。如果不相等,则该过程行进至步骤S120。如果它们相等,则该过程行进至步骤S140。在步骤S140中,第一状态机器130_0判定与当前行地址进行比较的下个行地址是否在对应的FIFO存储器120_0中 如果存在,则第一状态机器130_0接下来判定当前行地址是否等于下个行地址(步骤S150)。换句话说,当读/写命令输出到该排时(例如在图4的时间T1时),第一状态机器130_0判定存储在对应FIFO存储器120_0中的行地址是否等于对应于当前激活行的行地址。也就是说,当读/写命令输出到对应排时(T1),第一状态机器130_0判定当前执行的存取周期中的行地址(即当前行地址)是否等于接下来要执行的存取周期中的行地址(即下个行地址)。
如果当前行地址等于下个行地址,则第一状态机器130_0发布公开页读/写命令,以连续激活对应于当前行地址的行(步骤160)。从第一状态机器130_0发布的公开页读/写命令通过多路选择器150,在第二状态机器140的控制下发送到定时发生器160。此后,此操作返回步骤S100。返回步骤S150,如果当前行地址不等于下个行地址,第一状态机器130_0发布自动预充电读/写命令,以惰化对应于当前行地址的行(步骤S170)。也就是说,在没有如图4所示的用于激活对应于下个行地址的行的激活命令的情况下执行存取操作。由此减少了存取时间。从第一状态机器130_0输出的自动预充电读/写命令可以通过多路选择器150,在第二状态机器140的控制下发送到定时发生器160。此后,该过程行进至步骤S100。由于自动预充电读/写命令发送到存储器300,因此为了执行附加的预充电命令不需要附加的时钟周期,如图1中的周期A。因此,在本发明中,可以将存储器件的存取时间减少该附加时钟周期A的数量,而其它情况下预充电操作需要该附加时钟周期A。
返回图3的步骤S140,如果与当前行地址进行比较的下个行地址没有在对应的FIFO存储器120_0中,第一排的第一状态机器130_0判定是否输入了同一排的下个行地址(步骤S180)。例如,参考图5,第一状态机器130_0在输出读/写命令的每个时刻(例如图5的时间T4和T5),判定与当前行地址ROW_A进行比较的下个行地址是否存在于对应的FIFO存储器120_0中。由于与当前行地址ROW_A进行比较的下个行地址在T4时刻不存在于对应的FIFO存储器120_0中,因此第一状态机器130_0继续判定与当前行地址ROW_A进行比较的下个行地址是否输入到对应的FIFO存储器120_0中(在步骤S180)。
在与当前行地址ROW_A进行比较的下个行地址输入到对应的FIFO存储器120_0中时,第一状态机器130_0接下来行进至步骤S190,来判定给定排的下个行地址是否等于对应于该排的先前激活行的行地址。如果给定排的下个行地址不等于对应于该排的先前激活行的行地址,例如在图5的时刻T5,则第一状态机器130_0发布预充电命令。该预充电命令通过多路选择器150,在第二状态机器140的控制下发送到定时发生器160。定时发生器160在适当时刻及时输出针对A排的预充电命令(步骤S200)。在该配置和方法中,输出预充电命令的时刻由其它排的存取周期确定,在其它排的存取操作期间可以执行A排的预充电操作。针对步骤S180输入的地址的存取操作可以在输出下个读/写命令时(例如在步骤S140)开始。在这种方式下,可以减少存储器件的存取时间,这是因为在对该存储系统中的另一排进行存取期间对A排进行了预充电,因此针对A排的预充电操作不需要附加的时钟周期。
总之,当在本发明的存储控制系统和方法中输出读/写命令时,判定同一排的当前要求的行地址和下个要求的行地址是否相等。根据该判定结果向存储器发布公开页或自动预充电读/写命令。如果与当前行地址比较的下个行地址不存在,或者对同一排的存取很少或长时间没有发生,则先前选择的行继续保持在激活状态下,直到输入下个行地址为止。如果输入与当前行地址比较的下个行地址,则在对该系统中的另一排进行存取操作期间,根据下个行地址是否等于前一行地址来执行预充电操作。
如上所述,在本发明中,在输出读/写命令时控制预充电操作调度。这减少了相关SDRAM的存取时间。此外,结合了这种存储控制器的系统和SDRAM比传统系统提供了更好的性能。
虽然参考优选实施例特别描述了本发明,本领域的技术人员可以理解,在不脱离本发明限定在所附权利要求中的精神和范围的情况下,可以做出形式和细节的各种修改。
权利要求
1.一种多线程流水线系统中的存储控制方法,包括a)从主机顺序接收存储单元中待访问的多排的地址;b)对于该多排中的每一排,判定当读/写命令输出到存储单元时对应于该排的地址是否从主机输入;以及c)当判定步骤b)的结果表明对应于该排的地址已输入时,向该存储单元输出包括公开页信息和自动预充电信息中任一种在内的读/写命令。
2.根据权利要求1所述的方法,其中所述步骤c)包括对于所述多排的每一排,确定当前行地址是否等于所接收的地址序列的下一个行地址;如果当前行地址等于下个行地址,则输出包括公开页信息在内的所述读/写命令;如果当前行地址不等于下个行地址,则输出包括自动预充电信息在内的所述读/写命令。
3.根据权利要求1所述的方法,其中,当所述判定步骤b)的结果表明对应于该排的地址没有从主机输入时,还包括在对所述多排的另一排进行存取操作期间对同一排执行预充电操作。
4.根据权利要求3所述的方法,还包括对于所述多排中的每一排,判定是否输入了对应于该排的下个行地址;判定对应于该排的下个行地址是否等于对应于该排的先前被激活行的行地址;以及当对应于该排的下个行地址不等于对应于该排的先前被激活行的行地址时向存储单元输出预充电命令,以开始对该排执行预充电操作。
5.根据权利要求4所述的方法,其中,在对所述多排的另一排进行存储操作期间对该排执行预充电操作。
6.根据权利要求1所述的方法,所述存储单元包括DDR SDRAM。
7.一种多线程流水线系统中用于控制包括多排的存储单元的存储控制器,包括多个FIFO存储器,分别顺序存储针对该存储单元的多排的对应排的地址和命令;以及对应于每个FIFO存储器的多个第一状态机器,每个第一状态机器响应存储在对应FIFO存储器中的地址和命令,产生激活命令和读/写命令作为该存储单元的对应排的存取操作的输出;其中,每个第一状态机器判定在所述读/写命令输出到存储单元时,该存储单元的对应排的地址是否输入到对应FIFO存储器中。
8.根据权利要求7所述的存储控制器,其中,在各第一状态机器中,如果在输出所述读/写命令时,所述存储单元的对应排的地址输入到对应FIFO存储器中,则该第一状态机器判定当前行地址是否与下个行地址相同。
9.根据权利要求8所述的存储控制器,其中,在各第一状态机器中,如果所述当前行地址等于下个行地址,则该第一状态机器向存储单元输出包括公开页信息在内的读/写命令。
10.根据权利要求8所述的存储控制器,其中,在各第一状态机器中,如果所述当前行地址不等于下个行地址,则该第一状态机器向存储单元输出包括自动预充电信息在内的读/写命令。
11.根据权利要求8所述的存储控制器,其中,在各第一状态机器中,如果在输出所述读/写命令时,所述存储单元的对应排的地址没有输入到对应FIFO存储器中,则该第一状态机器继续监控是否输入了该对应排的地址。
12.根据权利要求11所述的存储控制器,其中,在各第一状态机器中,如果输入所述存储单元的对应排的地址,则该第一状态机器发布预充电命令,以便在对该存储单元的多排的另一排进行存取操作期间,执行该存储单元的对应排的预充电操作。
13.根据权利要求7所述的存储控制器,还包括多路选择器,用于接收所述第一状态机器的输出;第二状态机器,用于响应所输入的该地址的排信息来控制该多路选择器,以选择任何一个第一状态机器的输出;定时发生器,用于响应由多路选择器选择的第一状态机器的输出,来控制所述存储单元的存取定时。
14.根据权利要求7所述的存储控制器,其中,所述存储器包括DDRSDRAM。
全文摘要
在多线程流水线系统的存储控制方法中,从主机顺序接收存储单元中待访问的多排的地址。对于该多排中的每一排,判定当读/写命令输出到存储单元时对应于该排的地址是否从主机输入。当该判定结果表明对应于该排的地址已输入时,向该存储单元输出包括公开页信息和自动预充电信息中任一种在内的读/写命令。
文档编号G11C11/409GK1707694SQ20051007048
公开日2005年12月14日 申请日期2005年5月13日 优先权日2004年5月28日
发明者徐允范, 辛宗哲 申请人:三星电子株式会社