存储控制装置及其控制方法

文档序号:6596401阅读:160来源:国知局
专利名称:存储控制装置及其控制方法
技术领域
本发明涉及存储控制装置及其控制方法。
背景技术
在针对 SDRAM (Synchronous Dynamic Random Access Memory 同步云力态随机存取存储器)等的具有多个存储体的多存储体存储器的存储器存取控制中,为了协调来自多个 CPU和输入输出装置的存储器请求的命令,有时采用使用了优先级控制寄存器的协调电路。 在该电路中,多个存储器请求按每个请求目标的存储体被分配保持在被称之为请求缓冲器的队列中。并且,根据从各个请求缓冲器读出后保存在优先级控制寄存器中的存储器请求的优先等级,从优先等级高的请求缓冲器读出存储器请求并执行。在该控制方式中,若某请求缓冲器的存储器请求的优先等级最高而被执行,则在下一个命令执行周期中该请求缓冲器的优先等级变为最低。另一方面,在下一个命令执行周期中,执行最早的命令读出,即、最近命令读出最没有被执行的请求缓冲器的优先等级被上升到最高等级,从该请求缓冲器读出的存储器请求被执行。该控制方式是所谓的基于LRU (Least Recently Used)的控制方式。在此,对于DRAM存在存取规定。所谓的存取规定是指,例如在某命令执行周期中对DRAM执行了数据读取请求的情况下,在接着执行数据写入请求(异种命令)时,例如有必须等待7个周期之类的规定。或者,在某命令执行周期中对DRAM的某存储体执行了数据读取请求的情况下,在接着对其他的存储体执行数据读取请求(同种命令)时,例如有必须等待2个周期之类的规定。现在,设想在使用了优先级控制寄存器的存储器存取控制的现有技术中,从根据保存在优先级控制寄存器中的存储器请求的优先等级而选择的一个请求缓冲器中读出的存储器请求A不满足DRAM的存取规定的情况。此时,存储器请求A等待其执行,直到存取规定被满足的命令执行周期。可是,在根据保存在优先级控制寄存器中的存储器请求的优先等级而没被选择的请求缓冲器中,可能存在读出满足存取规定的存储器请求的请求缓冲器。例如,在当前执行中的存储器请求是数据读取请求的情况下,当在下一个命令执行周期中所选择的存储器请求是数据写入请求时,该数据写入请求从先行的数据读取请求的执行开始,例如必须等待7 个周期。在此,设想针对与上述先行的数据读取请求的执行存储体不同的执行存储体的其他的数据读取请求,存在于没有被优先级控制寄存器选择的请求缓冲器中。此时,由于针对同种命令的等待周期比针对异种命令的等待周期短,所以上述其他的数据读取请求,从先行的数据读取请求的执行开始,例如在3个周期后可执行。在这样的情况下,若不是在执行完通过优先级控制寄存器从请求缓冲器当前读出的存储器请求A (异种命令)之后,则无法执行存在于其他的请求缓冲器中的满足存取规定的存储器请求B。即、在使用了优先级控制寄存器的存储器存取控制的现有技术中,在上述那样的情况下,存在存储器请求的执行效率下降的问题点。
专利文献1 日本特开平6-161941号公报专利文献2 日本特开平11-272567号公报专利文献3 日本特开2005-173859号公报专利文献4 日本特开2008-503808号公报

发明内容
因此,本发明的一个方面的目的在于,能够进行使满足DRAM等存储装置的存取规定的请求缓冲器的优先等级变高的优先等级控制。在实施方式的一例中,作为存储控制装置来实现,该存储控制装置与运算处理装置和具有对应于第一存储体的第一以及第二存储体的存储装置连接,并且向上述存储装置发行从上述运算处理装置接收到的存储器存取请求,具有以下的构成。第一请求存储部,保持针对第一存储体的存储器存取请求。第二请求存储部,保持针对第二存储体的存储器存取请求。译码部,按照存储器存取请求中包含的存储体地址,将从运算处理装置接收到的存储器存取请求,分配给第一请求存储部或第二请求存储部。选择部,与第一请求存储部和第二请求存储部连接,并根据选择信号,对保持于第一请求存储部或第二请求存储部的存储器存取请求进行选择并输出。第一判定电路,其输出第一判定结果,该第一判定结果为,根据保持在第一请求存储部中的存储器存取请求和已经向第一存储体发行的存储器存取请求之间的关系,判定保持在第一请求存储部中的存储器存取请求能否向第一存储体发行的判定结果。第二判定电路,其输出第二判定结果,该第二判定结果为,根据保持在第二请求存储部中的存储器存取请求和已经向第二存储体发行的存储器存取请求之间的关系,判定保持在第二请求存储部中的存储器存取请求能否向第二存储体发行的判定结果。第三判定电路,其输出第三判定结果,该第三判定结果为,根据选择电路所选择的存储器存取请求和已经向存储装置发行的存储器存取请求之间的关系,判定选择电路所选择的存储器存取请求能否向存储装置发行的判定结果。优先等级控制电路,与第一判定电路和第二判定电路连接,并且根据第一至第三判定结果,输出选择保持于第一判定电路的存储器存取请求或保持于第二判定电路的存储器存取请求的选择信号。根据以上的构成,根据已经发行的存储器存取请求的可否发行状况和各请求存储部内的存储器存取请求的滞留状况,可动态地控制优先等级的变化状态,也可进行与存储装置的存取规定对应的优先等级的跳跃控制。该控制可通过简单的构成的判定电路和简单的构成的优先等级控制电路来实现。由此,可有效地使用存储控制装置和存储装置、或连接它们的总线。


图1是表示存储器控制装置的实施方式的构成图。图2是表示存储器请求分配电路的构成 例的图。图3是表示判定电路的构成例的图。
图4是表示存储器请求可否发行信号生成部的构成例的图。图5是优先级控制寄存器的动作说明图。图6是表示优先级控制寄存器的电路构成例的图。图7是本 实施方式的动作流程图。图8是与本实施方式对比的现有技术的动作流程图。图9是表示应用本实施方式的计算机系统的构成例的图。
具体实施例方式以下,参照附图对用于实施公开的存储控制装置及其控制方法的方式进行详细地说明。图1是表示存储器控制装置的实施方式的构成图。存储器控制装置100与一个以上的CPU107(#0 #x)或IO(输入输出)装置 108 (#0 #y)以及一个以上的DRAM模块109连接。在存储器控制装置100中,存储器请求分配电路101如图2所示包含存储体地址译码电路201。该存储体地址译码电路201从图1的CPU107或IO装置108接收对DRAM 模块109的数据读取或数据写入的存储器请求。存储体地址译码电路201按照根据存储器请求所识别的、与构成DRAM模块109的N个存储体相对应的存储体地址,从N个请求缓冲器(REQ_BUF)102组中选择发送目的地。并且,存储体地址译码电路201对所选择的REQ_ BUF102设置存储器请求。在图1以及图2的例子中,构成的DRAM模块109存储体由#0 #3的4个存储体构成(N = 4),与其相对应地,REQ_BUF102也设置#0 #3的4个。REQ_ BUF102例如利用FIFO (First In First Out 先进先出)等缓冲器电路来实现。选择器电路103在存在存储器请求的REQ_BUF102中,选择优先级控制寄存器104 所表示的优先等级为最高的。判定电路105 (#1)根据存储器请求可否发行信号生成部106生成的存储器请求可否发行信号,对能否发行利用选择器电路103选择的存储器请求进行检查。并且,判定电路 105 (#1),只在判定为能够发行上述存储器请求时,对DRAM模块109发行利用选择器电路 103选择的存储器请求。判定电路105(#1)例如通过如图3所示的电路来实现。在图3中,译码部301对利用选择器电路103选择的存储器请求进行译码。其结果,译码部301仅使存储体#0读取、 存储体#1读取、存储体#2读取、存储体#3读取、存储体#0写入、存储体#1写入、存储体#2 写入、存储体#3写入中的一个的输出为“1”,使其他的输出为“0”。换言之,译码部301是独热(Ι-hot)译码器。例如,在存储器请求是访问DRAM模块109的存储体#0的数据读取请求的命令时,译码部301仅使存储体#0读取的输出为“1”。同样,在存储器请求是访问 DRAM模块109的存储体#0的数据写入请求的命令时,译码部301仅使存储体#0写入的输出为“1”。关于其他的存储体也是同样的。AND (逻辑与)电路302例如对存储体#0读取和存储器请求可否发行信号生成部 106输出的表示存储体#0可的存储器请求可否发行信号进行逻辑与运算。同样,存储体#1 读取和存储体#1读取可、存储体#2读取和存储体#2读取可、存储体#3读取和存储体#3 读取可、存储体#0写入和存储体#0写入可、存储体#1写入和存储体#1写入可、存储体#2写入和存储体#2写入可、存储体#3写入和存储体#3写入可的各逻辑与运算被进行。来自AND电路302的各逻辑与运算结果,经由OR(逻辑或)电路303输出存储器请求可发行信号。OR电路303对所有的AND电路302的输出进行逻辑或运算。图1的判定电路105, 在该存储器请求可发行信号被输出时,向DRAM模块109发行选择器电路103所选择的存储器请求。例如,在存储器请求是存储体#0读取的命令时,如果存储器请求可否发行信号生成部106输出表示存储体#0可的存储器请求可否发行信号,则输出存储器请求可否发行信号。另外,在存储器请求是存储体#0读取的命令时,如果存储器请求可否发行信号生成部 106没有输出表示存储体#0可的存储器请求可否发行信号,则不输出存储器请求可否发行信号。关于其他的存储体以及数据写入请求的命令也是同样的。图1所示的#2 #5的判定电路105也具有和图3所例示的判定电路105 (#1)大致相同的功能,然而,只监视各自负责的存储体的存储器请求即可。例如,判定电路105 (#2) 对是否从REQ_BUF102 (#0)输出了存储体#0读取或存储体#0写入进行监视,在从存储器请求可否发行信号生成部106分别输入了存储体#0读取可或存储体#0写入可的情况下,输出与存储体#0有关的存储器请求可否发行信号。判定电路105(#3)对是否从REQ_ BUF102(#1)输出了存储体#1读取或存储体#1写入进行监视,在从存储器请求可否发行信号生成部106分别输入了存储体#1读取可或存储体#1写入可的情况下,输出与存储体#1 有关的存储器请求可否发行信号。判定电路105(#4)对是否从REQ_BUF102(#2)输出了存储体#2读取或存储体#2写入进行监视,在从存储器请求可否发行信号生成部106分别输入了存储体#2读取可或存储体#2写入可的情况下,输出与存储体#2有关的存储器请求可否发行信号。判定电路105 (#5)对是否从REQ_BUF102(#3)输出了存储体#3读取或存储体 #3写入进行监视,在从存储器请求可否发行信号生成部106分别输入了存储体#3读取可或存储体#3写入可的情况下,输出与存储体#3有关的存储器请求可否发行信号。图1的存储器请求可否发行信号生成部106例如通过如图4所示的电路来实现。 在图4中,多级结构的触发电路401依次保持已发行存储器存取信息(已发行的存储器请求)。触发电路401的级数与能够判定DRAM模块109的存取规约的量的过去的已发行存储器存取信息的保持数相对应。控制电路402根据保持在触发电路401的已发行存储器存取信息组,对DRAM模块109的存取规约进行判定。其结果,控制电路402输出存储体#0读取可、存储体#1读取可、存储体#2读取可、存储体#3读取可、存储体#0写入可、存储体#1 写入可、存储体#2写入可以及存储体#3写入可的存储器请求可否发行信号。例如,设想当前对DRAM模块109发行的存储器请求是针对存储体#0的数据读取请求的情况。此时,从当前的命令执行周期开始例如7个周期后,存储体#0写入可、存储体#1写入可、存储体#2 写入可以及存储体#3写入可的各存储器请求可否发行信号变为“1”。另外,从当前的命令执行周期开始例如2个周期后,存储体#1读取可、存储体#2读取可以及存储体#3读取可的各存储器请求可否发行信号变为“1”。控制电路402是执行这样的存取规则的算法的电路。图1的优先级控制寄存器104根据#1 #5的各判定电路105的输出,进行如以下所示的动作。 首先,优先级控制寄存器104,在判定电路105向DRAM模块109发行了从选择器电路103所选择的REQ_BUF102读出的存储器请求时,更新内部的变化状态,以使在下一个命令执行周期中,该REQ_BUF102的优先等级变为最低。另外,优先级控制寄存器104,在判定为#2 #5的其中一个判定电路105能够针对#0 #3的其中一个REQ_BUF102发行存储器请求时,更新内部的变化状态,以使该REQ_ BUF102的优先等级变高。优先级控制寄存 器104,如图5所示,其内部具有优先级控制寄存器_01、优先级控制寄存器_02、优先级控制寄存器_03、优先级控制寄存器_12、优先级控制寄存器_13以及优先级控制寄存器_23这6个电路。优先级控制寄存器_01保持REQ_BUF102 (#0)和REQ_BUF102 (#1)的优先等级。如图5所示,优先级控制寄存器_01所保持的值为“0”时,表示REQ_BUF102 (#0)的优先等级比REQ_BUF102(#1)的优先等级高。优先级控制寄存器_01所保持的值为“ 1 ”时,表示REQ_ BUF102(#1)的优先等级比REQ_BUF102(#0)的优先等级高。优先级控制寄存器_02保持REQ_BUF102 (#0)和REQ_BUF102 (#2)的优先等级。如图5所示,优先级控制寄存器_02所保持的值为“0”时,表示REQ_BUF102(#0)的优先等级比REQ_BUF102(#2)的优先等级高。优先级控制寄存器_02所保持的值为“ 1 ”时,表示REQ_ BUF102(#2)的优先等级比REQ_BUF102(#0)的优先等级高。优先级控制寄存器_03保持REQ_BUF102 (#0)和REQ_BUF102 (#3)的优先等级。如图5所示,优先级控制寄存器03所保持的值为“0”时,表示REQ_BUF102(#0)的优先等级比 REQ_BUF102(#3)的优先等级高。优先级控制寄存器_03所保持的值为“1”时,表示REQ_ BUF102(#3)的优先等级比REQ_BUF102(#0)的优先等级高。优先级控制寄存器_12保持REQ_BUF102 (#1)和REQ_BUF102 (#2)的优先等级。如图5所示,优先级控制寄存器_12所保持的值为“0”时,表示REQ_BUF102(#1)的优先等级比REQ_BUF102(#2)的优先等级高。优先级控制寄存器_12所保持的值为“ 1 ”时,表示REQ_ BUF102(#2)的优先等级比REQ_BUF102(#1)的优先等级高。优先级控制寄存器_13保持REQ_BUF102 (#1)和REQ_BUF102 (#3)的优先等级。如图5所示,优先级控制寄存器_13所保持的值为“0”时,表示REQ_BUF102(#1)的优先等级比REQ_BUF102(#3)的优先等级高。优先级控制寄存器_13所保持的值为“ 1 ”时,表示REQ_ BUF102(#3)的优先等级比REQ_BUF102(#1)的优先等级高。优先级控制寄存器_23保持REQ_BUF102 (#2)和REQ_BUF102 (#3)的优先等级。如图5所示,优先级控制寄存器_23所保持的值为“0”时,表示REQ_BUF102(#2)的优先等级比REQ_BUF102(#3)的优先等级高。优先级控制寄存器_23所保持的值为“ 1 ”时,表示REQ_ BUF102(#3)的优先等级比REQ_BUF102(#2)的优先等级高。优先级控制寄存器104通过比较利用上述6个优先级控制寄存器得到的各优先等级来决定优先等级最高的REQ_BUF102,并将其信息通知给选择器电路103。选择器电路103 选择从该通知的REQ_BUF102输出的存储器请求。图6是表示实现构成优先级控制寄存器104的优先级控制寄存器_01、优先级控制寄存器_02、优先级控制寄存器_03、优先级控制寄存器_12、优先级控制寄存器_13以及优先级控制寄存器_23的各电路的电路构成例的图。在此,将一个优先级控制寄存器作为优先级控制寄存器」j。即、ij的组合是(01)、(02)、(03)、(12)、(13)以及(23)。图6是表示优先级控制寄存器」j的实现例的图。
在图6中,作为OR电路601的第一输入,输入对具有图3的构成例的判定电路 105 (#1)的、存储体#i读取被输入的AND电路302的输出以及存储体#i写入被输入的AND 电路302的输出进行或运算而得到的输出。作为OR电路601的第2输入,输入OR电路607 的输出。OR电路601的输出被作为AND电路602的第一输入。作为AND电路602的第二输入,输入对具有图3的构成例的判定电路105 (#1)的、存储体#j读取被输入的AND电路302 的输出以及存储体#j写入被输入的AND电路302的输出进行或运算而得到的输出的反相输出。

AND电路602的输出被输入至触发电路603。作为NAND电路604的第一输入,输入对具有图3的构成例的判定电路105(#i+2)的、存储体#i读取被输入的AND电路302 的输出以及存储体#i写入被输入的AND电路302的输出进行或运算而得到的输出。作为 NAND(与非逻辑)电路604的第二输入,输入对具有图3的构成例的判定电路105(#i+3) 的、存储体#j读取被输入的AND电路302的输出以及存储体#j写入被输入的AND电路302 的输出进行或运算而得到的输出的反相输出。作为AND电路605的第一输入,输入对具有图3的构成例的判定电路105(#i+2) 的、存储体#i读取被输入的AND电路302的输出以及存储体#i写入被输入的AND电路302 的输出进行或运算而得到的输出的反相输出。作为AND电路605的第二输入,输入对具有图3的构成例的判定电路105 (#i+3)的、存储体#j读取被输入的AND电路302的输出以及存储体#j写入被输入的AND电路302的输出进行或运算而得到的输出。作为AND电路606的第一输入,输入NAND电路604的输出。作为AND电路606的第二输入,输入触发电路603的输出。作为OR电路607的第一输入,输入AND电路606的输出。作为OR电路607的第二输入,输入AND电路605的输出。OR电路607的输出被作为OR电路601的第二输入。触发电路603的输出成为优先级控制寄存器」j的输出值。在触发电路603的输出值为“0”时,表示REQ_BUF102(#i)的优先等级比REQ_BUF102 (#j)的优先等级高。在触发电路603的输出值为“1”时,表示REQ_BUF102(#j)的优先等级比REQ_BUF102 (#i)的优先等级高。现在,假设(ij) = (01)。并且,假设在选择器电路103中,来自REQ_BUF102(#i = #0)的针对存储体#0的存储器请求被选择,来自判定电路105(#1)的与存储体#0对应的 AND电路302 (图3)的输出为“1”。其结果,图6的OR电路601的输出成为“ 1”。此时,来自判定电路105 (#1)的与其他的REQ_BUF102 (#j = #1)对应的AND电路302的输出为“0”。 因此,AND电路602的输出成为“1”,触发电路603被设置为“1”。其结果,在接下来以后的命令执行周期中,优先级控制寄存器_01的输出值成为“1”,REQ_BUF102(#i = #0)的优先等级比REQ_BUF102(#j = #1)的优先等级下降。涉及REQ_BUF102 (#i = #0)的其他的优先级控制寄存器」j也进行同样的动作,最终,REQ_BUF102(#i = #0)的优先等级变成最低。之后,例如,假设在判定电路105(#j+2 = #3)中,判定为可执行REQ_BUF102 (#j = #1)的存储器请求,与存储体#1对应的AND电路302 (图3)的输出成为“1”。另一方面, 假设在判定电路105(#i+2 = #2)中,REQ_BUF102(#i = #0)的存储器请求被判定为不可执行,与存储体#0对应的AND电路302 (图3)的输出成为“0”。其结果,AND电路605的输出成为“1”,其值经由OR电路607以及601输入至AND电路602。在此,如果选择器电路103 处于一直选择着REQ_BUF102 (#i = #0)的输出的状态,则来自判定电路105 (#1)的与REQ_ BUF102 (#j = #1)对应的AND电路302的输出维持为“0”。其结果,AND电路602的输出成为“1”,触发电路603的输出成为“1”。因此,REQ_BUF102(#j = #1)的优先等级变高。涉及REQ_BUF102(#j = #1)的其他的优先级控制寄存器」j也进行同样的动作,最终,REQ_ BUF102(#j =#1)的优先等级变为最高。如此,作为存取规定被判定的结果,针对判定为可执行的存储器请求,进行如下动作,即、通过本实施方式的优先级控制寄存器104,优先等级变高,从而使得来自对应的REQ_BUF102的存储器请求被较早地选择。 另外,例如,在由于来自REQ_BUF102(#0)的存储器请求的发行而导致优先级控制寄存器_01的触发电路603的输出值成为1,REQ_BUF102(#i = #0)的优先等级变为较低的状态之后,考虑以下的情况。即、假设在判定电路105(#i+2 = #2)中,REQ_BUF102(#i = #0)的存储器请求被判定为可连续执行(例如是同种命令),与存储体#0对应的AND电路 302 (图3)的输出成为“1”。此时,假设在判定电路105(#j+2 = #3)中,REQ_BUF102 (#j = #1)的存储器请求被判定为不可执行,与存储体#1对应的AND电路302 (图3)的输出成为 “0”。其结果,NAND电路604的输出成为“0”,AND电路606的输出成为“0”。另一方面, AND电路605的输出也成为“0”。其结果,OR电路607的输出成为“0”。另外,假设根据选择器电路103中的选择状态的变化,来自判定电路105(#1)的与存储体#0对应的AND电路 302(0 3)的输出变为“0”。由此,OR电路601的输出成为“0”,AND电路602的输出也成为 “0”,其结果,触发电路603的输出变为“0”。由此,执行以下的动作,即、对于由于存储器请求的发行而导致优先等级暂时下降的REQ_BUF102(#0)而言,如果有可发行的存储器请求, 则优先等级再次提高。由此,根据来自存储器请求可否发行信号生成部106的存储器请求的可否发行状况和来自#2 #5的各判定电路105的各REQ_BUF102内的存储器请求的滞留状况,对优先级控制寄存器104内的各优先级控制寄存器」j的变化状态进行控制。由此,可进行与 DRAM模块109的存取规定对应的优先等级的跳跃控制。该控制可通过#2 #5的简单的构成的判定电路105和图6所例示的简单的构成的优先级控制寄存器_ij来实现。下面对具有以上的图1 图6的构成的存储器控制装置100的实施例的具体动作进行说明。假设在REQ_BUF102(#0)中保持有一个目的地为存储体#0的数据写入请求、在 REQ_BUF102(#1)中保持有一个目的地为存储体#1的数据读取请求、在REQ_BUF102 (#2)中保持有一个目的地为存储体#2的数据写入请求。另外,假设在REQ_BUF102(#3)中没有保持存储器请求。另外,假设优先等级的控制基本按照LRU(Least Recently Used)而进行。现在,对根据优先级控制寄存器104,优先等级表示为REQ_BUF102 (#0) > REQ_ BUFlO2 (#1) > REQ_BUF102 (#2) > REQ_BUF102 (#3)的情况进行说明。首先,选择器电路103,根据从优先级控制寄存器104通知了 REQ_BUF102 (#0)的情况,选择从优先等级最高的REQ_BUF102 (#0)读出的目的地为存储体#0的数据写入请求。 在判定电路105 (#1)中,根据来自存储器请求可否发行信号生成部106的存储器请求可否发行信号,判定为可发行针对存储体#0的数据写入请求,并向DRAM模块109发行上述存储器请求。此时,通过对保持在优先级控制寄存器104内的具有图6的构成例的各优先级控制寄存器—ij的值进行逻辑运算,使REQ_BUF102(#0)的优先等级变为最低。其结果,优先等级更新为 REQ_BUF102(#1) > REQ_BUF102 (#2) > REQ_BUF102 (#3) > REQ_BUF102 (#0)。在接下来的命令执行周期中,选择器电路103,根据从优先级控制寄存器104通知了 REQ_BUF102(#1)的情况,选择从优先等级最高的REQ_BUF102 (#1)读出的目的地为存储体#1的数据读取请求。此时,对于DRAM模块109来说,通常规定有如下的存取规定,即、从数据写入请求发行后到能够发行数据读取请求为止,必须空出数周期(例如7个周期)的时间。因此,在之前刚发行的目的地为存储体#0的数据写入请求被发行之后例如7个周期内,存储器请求可否发行信号生成部106输出的存储器请求可否发行信号中的表示存储体 #1读取可的信息(参照图4)为“0”,由此判定电路105 (#3)的输出成为“0”。另一方面,对于DRAM模块109来说,规定有向某存储体发行了数据写入请求之后,可连续地发行针对其他的存储体的数据写入请求。因此,在之前刚发行的目的地为存储体#0的数据写入请求被发行之后2个周期左右,存储器请求可否发行信号生成部106输出的存储器请求可否发行信号中的表示存储体#2写入可的信息(参照图4)成为“1”,判定电路105(#4)的输出成为 “1”。其结果,通过对保持在优先级控制寄存器104内的具有图6的构成的各优先级控制寄存器_ij的值进行逻辑运算,REQ_BUF102(#2)的优先等级变为最高。其结果,优先等级更新为 REQ_BUF102 (#2) > REQ_BUF102 (#1) > REQ_BUF102 (#3) > REQ_BUF102 (#0)。在接下来的命令执行周期中,由于从优先级控制寄存器104通知了 REQ_ BUF102 (#2),所以选择器电路103选择从优先等级最高的REQ_BUF102 (#2)读出的目的地为存储体#2的数据写入请求。并且,存储器请求可否发行信号生成部106所输出的存储器请求可否发行信号中的表示存储体#2写入可的信息(参照图4)为“1”,由此,从判定电路105(#1)输出的存储器请求可发行信号成为“1”。其结果,向DRAM模块109发行目的地为存储体#2的数据写入请求。之后,优先级控制寄存器104中的优先等级更新为REQ_ BUF102(#1) > REQ_BUF102(#3) > REQ_BUF102(#0) > REQ_BUF102(#2) 之后,选择器电路103选择REQ_BUF102(#1)。并且,判定电路105 (#1)进行等待, 直到存储器请求可否发行信号生成部106所输出的存储器请求可否发行信号中的表示存储体#1读取可的信息(参照图4)成为“1”,自身输出的存储器请求可发行信号成为“1”为止。若存储器请求可发行信号成为“1”,则判定电路105 (#1)向DRAM模块109发行目的地为存储体#1的数据读取请求。其结果,优先级控制寄存器104中的优先等级更新为REQ_ BUF102(#3) > REQ_BUF102(#0) > REQ_BUF102(#2) > REQ_BUF102(#1)。对以上的动作,使用图7的动作时序图进行更详细地说明。在此,假设在数据写入请求的发行之后到可发行数据读取请求的间隔为7周期,在数据写入请求发行之后到可发行存储体不同的数据写入请求的间隔为2周期。图7(b) (f)中的“valid”(有效的)是表示,“ 1 ”时存在有效的请求,“0”时不存在有效的请求或所保持的请求无效的有效信号。在图7(b) (f)的#1 #5的各判定电路105的输出中,在判定为可发行来自各自对应的REQ_BUF102的存储器请求时是“〇”, 在判定为不可发行时为“ X ”。根据上述的实施方式,在周期编号为1的命令执行周期中,选择器电路103选择 REQ_BUF102(#0),判定电路105 (#1)判定为可发行来自REQ_BUF102 (#0)的存储器请求(图 7(b)、(C))。因此,判定电路105 (#1),在周期编号为2、3的各个命令执行周期中,向DRAM模块109发行目的地为存储体#0的数据写入请求(图7 (m))。在周期编号为2的命令执行周期中,优先控制寄存器_01、优先控制寄存器_02、优先控制寄存器_03被更新为“1”,REQ_BUF102(#0)的优先等级变为最低。

在周期编号为3的命令执行周期中,判定电路105(#1)判定为不可发行(图 7(b))、判定电路105(#4)判定为可发行(图7(e))。因此,在周期编号4中,优先级控制寄存器_12被更新为“ 1 ”,REQ_BUF102 (#2)的优先等级变为最高。其结果,在周期编号为4的命令执行周期中,选择器电路103选择来自REQ_ BUF102(#2)的存储器请求。该存储器请求在判定电路105(#1)中被判定为可发行(图 7(b))。其结果,在周期编号为5、6的命令执行周期中,向DRAM模块109发行目的地为存储体#2的数据写入请求(图7(m))。在周期编号5中,优先级控制寄存器_02、优先级控制寄存器_12被更新为“0”,优先级控制寄存器_23被更新为“1”,REQ_BUF102(#2)的优先等级变为最低。在从周期编号为5到11为止的命令执行周期中,选择器电路103选择REQ_ BUF102(#1)。并且,在周期编号为11的命令执行周期中,判定电路105(#1)判定为可发行来自REQ_BUF102(#1)的存储器请求。因此,在周期编号为12、13的命令执行周期中,发行目的地为存储体#1的数据读取请求(图7 (m))。并且,在周期编号为12的命令执行周期中,优先级控制寄存器_01被更新为“0”, 优先级控制寄存器_12、优先级控制寄存器_13被更新为“ 1”。根据上述的实施方式,可有效地使用存储器控制装置100和DRAM模块109、或连接它们的总线。图8是表示存储器控制装置被没有考虑DRAM模块109的存取规定的优先等级控制进行控制的情况下的动作的动作时序图。如在图7中说明的那样,在目的地为存储体#0 的数据写入请求发行之后,在REQ_BUF102 (#2)内保持有每隔2个命令执行周期可执行的目的地为存储体#2的数据读取请求。可是,在图8中,目的地为存储体#2的数据读取请求是在目的地为存储体#0的数据写入请求发行后的7个周期之后才可以执行。由此,本实施方式的优势很明显。图9是表示可应用具有图1的构成的实施方式的计算机系统的构成例的图。在图9 中,在被称为CMU(CPU Memory Unit :CPU存储器单元)的控制装置904内,配置有与图1的存储器控制装置100对应的MAC (Memory Access Controller 存储器存取控制器)901。该 MAC901 对从 CPU902(与图 1 的 CPU107 对应)向 DIMM(Dual Inline Memory Module)903(与图1中的DRAM模块109对应)发行的存储器请求的优先等级进行控制。另外,MAC901,还对从10框体907内的输入输出装置(与图1的10装置108对应)经由I0U(Input Output Unit 输入输出单元)906以及BP (Back Plane 背板)905输入的、针对DIMM903的存储器请求的优先等级进行控制。
权利要求
1.一种存储控制装置,其与运算处理装置和具有对应于第一存储体的第一以及第二存储体的存储装置连接,并且向上述存储装置发行从上述运算处理装置接收到的存储器存取请求,该存储控制装置的特征在于,包含第一请求存储部,其保持针对上述第一存储体的存储器存取请求; 第二请求存储部,其保持针对上述第二存储体的存储器存取请求; 译码部,其按照上述存储器存取请求中包含的存储体地址,将从上述运算处理装置接收到的存储器存取请求分配给上述第一请求存储部或上述第二请求存储部;选择部,其与上述第一请求存储部和上述第二请求存储部连接,根据选择信号,对保持在上述第一请求存储部或上述第二请求存储部中的存储器存取请求进行选择并输出;第一判定电路,其输出第一判定结果,该第一判定结果为,根据保持在上述第一请求存储部中的存储器存取请求和已经向上述第一存储体发行的存储器存取请求之间的关系,判定保持在上述第一请求存储部中的存储器存取请求能否向上述第一存储体发行的判定结果;第二判定电路,其输出第二判定结果,该第二判定结果为,根据保持在上述第二请求存储部中的存储器存取请求和已经向上述第二存储体发行的存储器存取请求之间的关系,判定保持在上述第二请求存储部中的存储器存取请求能否向上述第二存储体发行的判定结果;第三判定电路,其输出第三判定结果,该第三判定结果为,根据上述选择电路所选择的存储器存取请求和已经向上述存储装置发行的存储器存取请求之间的关系,判定上述选择电路所选择的存储器存取请求能否向上述存储装置发行的判定结果;和优先等级控制电路,其与上述第一判定电路和上述第二判定电路连接,并且根据上述第一至第三判定结果,输出选择保持于上述第一判定电路的存储器存取请求或保持于上述第二判定电路的存储器存取请求的上述选择信号。
2.根据权利要求1所述的存储控制装置,其特征在于,上述优先等级控制电路,在上述第一或第二请求存储部中,在针对最后被选择的存储器存取请求的存储器存取结束了的情况下,降低保持于上述最后被选择的请求存储部的存储器存取请求的优先等级,并且在从上述第一至第三判定电路中的任意一个接收到上述第一至第三判定结果为不能向上述第一存储装置或第二存储装置发行的意思的判定结果的情况下,提高输出了该判定结果的请求存储部的优先等级。
3.根据权利要求1或2所述的存储控制装置,其特征在于, 上述存储控制装置还与输入输出控制装置连接,除了从上述运算处理装置接收到的存储器存取请求之外,上述译码部还将从上述输入输出控制装置接收到的存储器存取请求,按照上述存储器存取请求中包含的存储体地址, 分配给上述第一请求存储部或上述第二请求存储部。
4.根据权利要求1至3的任意一项所述的存储控制装置,其特征在于, 上述第一以及第二请求存储部是先进先出缓冲器。
5.一种信息处理装置,其包含运算处理装置、具有对应于第一存储体的第一以及第二存储体的存储装置、和与上述存储装置连接的存储控制装置,该信息处理装置的特征在于,上述控制装置包含第一请求存储部,其保持针对上述第一存储体的存储器存取请求; 第二请求存储部,其保持针对上述第二存储体的存储器存取请求; 译码部,其按照上述存储器存取请求中包含的存储体地址,将从上述运算处理装置接收到的存储器存取请求分配给上述第一请求存储部或上述第二请求存储部;选择部,其与上述第一请求存储部和上述第二请求存储部连接,根据选择信号,对保持在上述第一请求存储部或上述第二请求存储部中的存储器存取请求进行选择并输出;第一判定电路,其输出第一判定结果,该第一判定结果为,根据保持在上述第一请求存储部中的存储器存取请求和已经向上述第一存储体发行的存储器存取请求之间的关系,判定保持在上述第一请求存储部中的存储器存取请求能否向上述第一存储体发行的判定结果;第二判定电路,其输出第二判定结果,该第二判定结果为,根据保持在上述第二请求存储部中的存储器存取请求和已经向上述第二存储体发行的存储器存取请求之间的关系,判定保持在上述第二请求存储部中的存储器存取请求能否向上述第二存储体发行的判定结果;第三判定电路,其输出第三判定结果,该第三判定结果为,根据上述选择电路所选择的存储器存取请求和已经向上述存储装置发行的存储器存取请求之间的关系,判定上述选择电路所选择的存储器存取请求能否向上述存储装置发行的判定结果;和优先等级控制电路,其与上述第一判定电路和上述第二判定电路连接,并且根据上述第一至第三判定结果,输出选择保持于上述第一判定电路的存储器存取请求或保持于上述第二判定电路的存储器存取请求的上述选择信号。
6.根据权利要求5所述的信息处理装置,其特征在于,上述优先等级控制电路,在上述第一或第二请求存储部中,在针对最后被选择的存储器存取请求的存储器存取结束了的情况下,降低保持于上述最后被选择的请求存储部的存储器存取请求的优先等级,并且在从上述第一至第三判定电路中的任意一个接收到上述第一至第三判定结果为不能向上述第一存储装置或第二存储装置发行的意思的判定结果的情况下,提高输出了该判定结果的请求存储部的优先等级。
7.根据权利要求5或6所述的信息处理装置,其特征在于, 上述存储控制装置还与输入输出控制装置连接,除了从上述运算处理装置接收到的存储器存取请求之外,上述译码部还将从上述输入输出控制装置接收到的存储器存取请求,按照上述存储器存取请求中包含的存储体地址, 分配给上述第一请求存储部或上述第二请求存储部。
8.根据权利要求4至7的任意一项所述的信息处理装置,其特征在于, 上述第一以及第二请求存储部是先进先出缓冲器。
9.一种存储控制装置的控制方法,该存储控制装置与运算处理装置和具有对应于第一存储体的第一以及第二存储体的存储装置连接,并且向上述的存储装置发行从上述运算处理装置接收到的存储器存取请求,该控制方法的特征在于,包含上述存储控制装置所具有的第一请求存储部保持针对上述第一存储体的存储器存取请求的步骤;上述存储控制装置所具有的第二请求存储部保持针对上述第二存储体的存储器存取请求的步骤;上述存储控制装置所具有的译码部,按照上述存储器存取请求中包含的存储体地址, 向上述第一请求存储部或上述第二请求存储部分配从上述运算处理装置接收到的存储器存取请求的步骤;上述存储控制装置所具有的选择部,与上述第一请求存储部和上述第二请求存储部连接,根据选择信号,对保持在上述第一请求存储部或上述第二请求存储部中的存储器存取请求进行选择并输出的步骤;上述存储控制装置所具有的第一判定电路输出第一判定结果的步骤,该第一判定结果为,根据保持在上述第一请求存储部中的存储器存取请求和已经向上述第一存储体发行的存储器存取请求之间的关系,判定保持在上述第一请求存储部中的存储器存取请求能否向上述第一存储体发行的判定结果;上述存储控制装置所具有的第二判定电路输出第二判定结果的步骤,该第二判定结果为,根据保持在上述第二请求存储部中的存储器存取请求和已经向上述第二存储体发行的存储器存取请求之间的关系,判定保持在上述第二请求存储部中的存储器存取请求能否向上述第二存储体发行的判定结果;上述存储控制装置所具有的第三判定电路输出第三判定结果的步骤,该第三判定结果为,根据上述选择电路所选择的存储器存取请求和已经向上述存储装置发行的存储器存取请求之间的关系,判定上述选择电路所选择的存储器存取请求能否向上述存储装置发行的判定结果;和 上述存储控制装置所具有的优先等级控制电路,与上述第一判定电路和上述第二判定电路连接,并且根据上述第一至第三判定结果,输出选择保持于上述第一判定电路的存储器存取请求或保持于上述第二判定电路的存储器存取请求的上述选择信号的步骤。
10.根据权利要求9所述的存储控制装置的控制方法,其特征在于, 上述优先等级控制电路,在上述第一或第二请求存储部中,在针对最后被选择的存储器存取请求的存储器存取结束了的情况下,降低保持于上述最后被选择的请求存储部的存储器存取请求的优先等级,并且在从上述第一至第三判定电路中的任意一个接收到上述第一至第三判定结果为不能向上述第一存储装置或第二存储装置发行的意思的判定结果的情况下,提高输出了该判定结果的请求存储部的优先等级。
全文摘要
优先级控制寄存器104根据从存储器请求可否发行信号生成部106内得到的存储器请求的可否发行状况和通过各#2~#5的各判定电路105得到的REQ_BUF102内的存储器请求的滞留状况,动态地控制内部的变化状态。由此,可进行与DRAM模块109的存取规定相对应的优先等级的跳跃控制。
文档编号G06F12/06GK102405466SQ200980158610
公开日2012年4月4日 申请日期2009年4月24日 优先权日2009年4月24日
发明者本藤干雄, 高桥德幸 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1