存储器控制设备和方法

文档序号:6545703阅读:133来源:国知局
存储器控制设备和方法
【专利摘要】本发明公开存储器控制设备和方法。一种存储器控制设备通过重新调度存储器请求来最小化存储器组冲突。所述存储器控制设备包括:调度器,被配置为响应于当前周期中存在的至少两个存储器请求,基于关于针对包括在所述至少两个存储器请求中的多个元素确定的存储器组的信息来调度所述多个元素;请求产生器,被配置为响应于调度器调度所述多个元素,使用所述至少两个存储器请求中的至少一个元素来产生针对当前周期的调度的存储器请求,以防止存储器组冲突。
【专利说明】存储器控制设备和方法
[0001] 本申请要求于2013年5月6日提交到韩国知识产权局的第10-2013-0050820号 韩国专利申请的权益,其全部公开为了所有目的通过引用包含于此。

【技术领域】
[0002] 一个或更多个示例性实施例涉及一种存储器控制设备和方法,其中,通过调度存 储器请求减少存储器组冲突。

【背景技术】
[0003] 在能够处理矢量运算的处理器中,加载/存储指令通常以如下的流水线方式来处 理:地址产生(AG)阶段、存储器设置(MS)阶段、存储器存取(MA)阶段和在寄存器文件中写 回数据的写回(WB)阶段。具体地讲,在AG操作中,计算加载/存储请求的地址,并且选择 将被存取的存储器组。在MS操作中,设置用于存储器存取的存储器,并且在MA操作中,将 值写回到存储器或者从存储器获取数据。
[0004] 通常,存储器组仅能正对一个加载/存储指令每次处理一个存储器请求。因此,如 果同时发出两个或更多个用于访问同一存储器组的存储器请求,则发生存储器组冲突。在 这种情况下,一个存储器请求进入MA操作,而另一个存储器请求在AG操作中等待。此外, 为了防止在处理连续的存储器请求时存储器值的改变,处理器的操作停止(stall)。具体地 讲,如果同时发出两个或更多个用于访问多个存储器组的加载/存储指令,则仅在多个存 储器组的一部分之间发生冲突。然而,在这种情况下,在每个存储器冲突,存储器会停止,从 而降低数据处理性能。


【发明内容】

[0005] 在一个或更多个示例性实施例中,提供一种存储器控制设备,包括:调度器,被配 置为响应于当前周期中存在的多个存储器请求,基于关于针对包括在所述多个存储器请求 中的多个元素确定的存储器组的信息来调度所述多个元素;请求产生器,被配置为在调度 器调度所述多个元素之后,使用所述多个存储器请求中的至少一个元素来产生针对当前周 期的调度的存储器请求,以防止存储器组冲突。
[0006] 所述存储器控制设备还可包括:组确定器,被配置为响应于接收到多个存储器请 求,确定将被包括在所述多个存储器请求中的多个元素访问的各个存储器组。
[0007] 组确定器还可计算所述多个元素的各个地址,并基于计算的地址确定针对所述多 个元素的各个存储器组。
[0008] 所述存储器控制设备还可包括:与一个或更多个存储器组相应的一个或更多个缓 冲器,其中,响应于针对所述多个元素确定存储器组,调度器还将所述多个元素中的元素输 入到与针对所述多个元素中的元素确定的各个存储器组相应的缓冲器。
[0009] 当将元素输入到相应的缓冲器时,调度器还可使用所述多个存储器请求中包括所 述元素的存储器请求的标识(ID)为所述元素添加标签。
[0010] 请求产生器还可通过从包含元素的所述一个或更多个缓冲器中的每个缓冲器提 取一个元素来产生调度的存储器请求。
[0011] 所述存储器控制设备还可包括:控制器,被配置为在产生调度的存储器请求之后 响应于在任何一个缓冲器中存在元素,在将调度的存储器请求发送到存储器时使得停止发 生。
[0012] 控制器还可在下一周期将调度的存储器请求发送到存储器。
[0013] 在一个或更多个示例性实施例中,提供一种存储器控制方法,包括以下步骤:响 应于当前周期中存在的多个存储器请求,基于关于针对包括在所述多个存储器请求中的多 个元素确定的存储器组的信息来调度所述多个元素;在调度所述多个元素之后,使用包括 在所述多个存储器请求中的至少一个元素来产生调度的存储器请求,而不引起存储器组冲 关。
[0014] 所述存储器控制方法还可包括以下步骤:响应于接收到多个存储器请求,确定将 被包括在所述多个存储器请求中的多个元素访问的各个存储器组。
[0015] 确定存储器组的步骤可包括:计算所述多个元素的各个地址,并基于计算的地址 确定针对所述多个元素的各个存储器组。
[0016] 调度所述多个元素的步骤可包括:响应于针对所述多个元素确定各个存储器组, 将所述多个元素中的元素输入到与针对所述多个元素中的元素确定的各个存储器组相应 的缓冲器。
[0017] 将元素输入到相应的缓冲器的步骤可包括:使用所述多个存储器请求中包括所述 元素的存储器请求的标识(ID)为所述元素添加标签。
[0018] 在产生调度的存储器请求的步骤中,可通过从包含元素的每个缓冲器提取一个元 素来产生调度的存储器请求。
[0019] 所述存储器控制方法还可包括以下步骤:在产生调度的存储器请求之后,响应于 在任何一个缓冲器中存在至少一个元素,在将调度的存储器请求发送到存储器时使得停止 发生。
[0020] 所述存储器控制方法还可包括以下步骤:在下一周期将调度的存储器请求发送到 存储器。
[0021] 在一个或更多个示例性实施例中,提供一种存储器控制设备,包括:请求产生器, 被配置为从包括在多个存储器请求中的多个元素产生包括至少一个元素的调度的存储器 请求。所述多个存储器请求可分别包括至少一个元素。包括在多个存储器请求中的多个元 素中的每个元素可具有相应的确定的存储器组。调度的存储器请求的至少一个元素中的每 个元素的确定的存储器组与调度的存储器请求的每个其他元素的确定的存储器组不同。
[0022] 请求产生器还可通过从至少一个缓冲器提取至少一个元素来产生调度的存储器 请求。所述至少一个缓冲器可对应于所述至少一个元素的确定的存储器组。
[0023] 所述至少一个缓冲器中的每个缓冲器可唯一地对应于一个存储器组。
[0024] 在一个或更多个示例性实施例中,提供一种存储器控制方法,包括:从包括在多个 存储器请求中的多个元素产生包括至少一个元素的调度的存储器请求。所述多个存储器请 求可分别包括至少一个元素。包括在所述多个存储器请求中的多个元素中的每个元素可具 有相应的确定的存储器组。调度的存储器请求的至少一个元素中的每个元素的确定的存储 器组与调度的存储器请求的每个其他元素的确定的存储器组不同。
[0025] 产生步骤可包括:从至少一个缓冲器提取至少一个元素。所述至少一个缓冲器可 对应于所述至少一个元素的确定的存储器组。
[0026] 所述至少一个缓冲器中的每个缓冲器可唯一地对应于一个存储器组。
[0027] 通过以下详细描述、附图和权利要求,其他特征和方面会是清楚的。

【专利附图】

【附图说明】
[0028] 被包括以提供对一个或更多个示例性实施例的理解并且被包含并构成本说明书 的一部分的附图示出示例性实施例,并且与描述一起用于解释一个或更多个示例性实施例 的原理。
[0029] 图1是示出根据示例性实施例的存储器系统的配置的示图。
[0030] 图2是示出根据图1中的示例性实施例的存储器控制设备的框图。
[0031] 图3A示出当没有发生存储器组冲突时处理存储器请求的一般过程。
[0032] 图3B示出当存储器组冲突发生时处理存储器请求的一般过程。
[0033] 图4A示出根据示例性实施例的存储器控制设备如何处理存储器请求的过程。
[0034] 图4B示出根据另一示例性实施例的存储器控制设备如何处理存储器请求的过 程。
[0035] 图4C示出根据另一示例性实施例的存储器控制设备如何处理存储器请求的过 程。
[0036] 图5是示出根据示例性实施例的存储器控制方法的流程图。
[0037] 图6是示出根据另一示例性实施例的存储器控制方法的流程图。
[0038] 贯穿附图和详细描述,除非另外描述,否则相同的附图标号将被理解为指示相同 的元件、特征和结构。为了清楚、说明和方便,可能夸大这些元件的相对大小和描绘。

【具体实施方式】
[0039] 提供下面的描述以帮助读者获得对这里描述的方法、设备和/或系统的全面理 解。因此,将向本领域的普通技术人员推荐这里描述的方法、设备和/或系统的各种改变、 修改和等同物。此外,为了增加清楚和简洁,可省略公知功能和构造的描述。
[0040] 以下,将参照附图详细描述存储器控制设备和方法的示例。
[0041] 图1是示出根据示例性实施例的存储器系统的配置的示图。参照图1,存储器系统 1可有效地支持执行处理大规模数据(诸如图像、音频和三维(3D)图形)的应用所需的高 性能矢量。
[0042] 响应于特定周期中的一个或更多个加载/存储指令,处理器通过一个或更多个加 载/存储单元310发出用于访问存储器的存储器请求。响应于来自一个或更多个加载/存 储单元310的存储器请求,存储器控制设备100可确定存储器200的组(以下称为存储器 组),以访问包括在存储器请求中的元素。存储器请求可以是包括单个元素以访问一个存储 器组的标量存储器请求,或者是包括两个或更多个元素以便能够同时访问一个或更多个存 储器组的矢量存储器请求。
[0043] 存储器控制设备100将存储器请求(针对存储器请求,存储器组被确定)发送到 存储器200,以访问存储器200。如果在特定周期中同时存在两个或更多个存储器请求,则 存储器控制设备100可使用包括在每个存储器请求中的所有元素来调度两个或更多个存 储器请求,并且产生调度的存储器请求SMR,以访问存储器200。这里,在特定周期中同时 存在两个或更多个存储器请求的事件可包括以下情况:在当前周期中从处理器同时接收到 两个或更多个存储器请求;存在在前一周期中未被处理的两个或更多个未完成的存储器请 求;存在在前一周期中未被处理的未完成的存储器请求,并且在当前周期中从处理器接收 到一个或更多个存储器请求。
[0044] 存储器控制设备100可包括一个或更多个缓冲器,并且每个缓冲器可对应于不同 的存储器组。在这种情况下,缓冲器可以是先进先出(FIFO)队列。存储器控制设备100可 使用缓冲器来调度包括在每个存储器请求中的一个或更多个元素。
[0045] 同时,响应于一个载入指令在特定周期中发出的存储器请求的处理结果被存储在 一个或更多个缓冲器320中,并且等待直到响应于每个加载指令在所述特定周期中发出的 所有存储器请求被完全处理。如果在所述特定周期中发出的所有存储器请求被完全处理, 则在缓冲器320中处于等待状态的数据被写回处理的寄存器文件400。
[0046] 这样,通过重新调度每个元素以最小化存储器组冲突,可尽可能多地防止处理器 停止,从而提高处理性能。
[0047] 图2是示出根据图1中的实施例的存储器控制设备的框图。参照图2,存储器控制 设备100包括组确定器110、调度器120、请求产生器130、控制器140和缓冲器150。
[0048] 如果接收到用于访问存储器以加载或存储数据的存储器请求,则组确定器110确 定将被包括在存储器请求中的一个或更多个元素访问的存储器组。此时,组确定器110可 计算包括在存储器请求中的每个元素的地址,并基于计算结果确定将按照每个地址访问的 存储器组。
[0049] 调度器120基于关于在组确定器110中确定的存储器组的信息,调度包括在存储 器请求中的所有元素。也就是说,如果在当前周期中存在两个或更多个将被处理的存储器 请求,则调度器120可基于关于确定的存储器组的信息调度包括在所述两个或更多个存储 器请求中的所有元素。这里,在当前周期中存在两个或更多个将被处理的存储器请求的事 件可包括以下情况:在当前周期从处理器同时接收到两个或更多个存储器请求;存在在前 一周期未被处理的两个或更多个未完成的存储器请求;存在在前一周期未被处理的未完成 的存储器请求,并且在当前周期从处理器接收到一个或更多个存储器请求。
[0050] 在完成存储器请求中的所有元素的调度之后,请求产生器130可使用一个或更多 个元素产生针对当前周期的调度的存储器请求,以防止存储器冲突。
[0051] 具体地讲,调度器120可使用存储器控制设备100中的一个或更多个缓冲器150 来调度包括在存储器请求中的每个元素。此时,如上所述,一个或更多个缓冲器150中的每 个可对应于不同的存储器组。如果组确定器110针对包括在输入的存储器请求中的所有 元素确定各个存储器组,则调度器120可通过将每个元素输入到相应的存储器组来调度元 素。
[0052] 当将元素输入到相应的缓冲器150时,调度器120可使用包括该元素的存储器请 求的标识(ID)来为该元素添加标签,以使原始的存储器请求可以与稍后将由请求产生器 130产生的调度的存储器请求区分开。
[0053] 请求产生器130可通过从缓冲器中的每一个或多个提取元素并将提取的元素彼 此组合来产生调度的存储器请求。因为每个缓冲器150对应于不同的存储器组,所以即使 从每个缓冲器150提取一个元素,也不发生存储器冲突。
[0054] 简单地说,响应于将在当前周期中被处理的两个或更多个存储器请求,不以从处 理器输入的存储器请求为单位来执行存储器访问。相反,包括在每个存储器请求中的所有 元素被调度,从而产生由能够在当前周期中被处理的元素组成的调度的存储器请求。以这 种方式,可减少存储器冲突,从而可尽可能多地防止存储器停止。
[0055] 在产生针对当前周期的调度的存储器请求之后,控制器140将调度的存储器请求 发送到用于处理的存储器。具体地讲,控制器140可在下一周期中将调度的存储器请求发 送到存储器。此时,检查是否有任何未完成的元素保留在缓冲器150中。如果未完成的元 素保留在缓冲器150中,则意味着已经发生存储器冲突,可能使得停止发生。
[0056] 如上所述,如果在下一周期中从处理器输入新的存储器请求,则确定用于包括在 新的存储器请求中的所有元素的存储器组,然后将元素输入到缓冲器150中。此外,如果 任何未完成的元素已经在当前周期或前一周期被输入到任何缓冲器150中并且仍然保留 在缓冲器150中,则这样的未完成的元素被调度并且针对下一周期调度的存储器请求被产 生。此外,如果没有在下一周期中从处理器输入任何存储器请求,并且在前一周期(即,当 前周期或者下一周期之前的周期)输入的未完成的元素保留在缓冲器150中,则未完成的 元素被调度,从而产生针对下一周期的调度的存储器请求。
[0057] 上述过程在每个周期被重复地执行。如果在特定周期没有未完成的元素保留在缓 冲器150中,则意味着每个存储器请求已经被完全处理,因此过程结束。
[0058] 图3A是示出当没有发生存储器组冲突时处理存储器请求的一般过程的示例。图 3B是示出当存储器组冲突发生时处理存储器请求的一般过程的示例。图4A示出根据示例 性实施例的存储器控制设备如何处理存储器请求的过程。图4B示出根据另一示例性实施 例的存储器控制设备如何处理存储器请求的过程。图4C示出根据另一示例性实施例的存 储器控制设备如何处理存储器请求的过程。
[0059] 图3A和图3B是处理器响应于存储器加载指令在特定周期i同时发出三个存储 器请求MR n、MR n+1和MR n+2的示例。具体地讲,图3A涉及在三个存储器请求MR n、MR n+1和MR n+2之间没有发生存储器组冲突的情况。如果在由存储器请求MR n、MR n+1和 MR n+2中的各个元素访问的存储器组之间不存在冲突,则存储器控制设备100在周期i+1 进入存储器设置(MS)阶段,在周期i+2进入存储器存取(MA)阶段以加载存储器数据,并且 在周期i+3进入写回(WB)阶段以将加载的存储器数据写回寄存器文件。
[0060] 图3B涉及在三个存储器请求MR n、MR n+1和MR n+2之间发生存储器组冲突的情 况。如果在三个存储器请求MR n、MR n+1和MR n+2中的任何一个中的元素尝试访问与另 一元素相应的同一存储器组,则发生存储器组冲突。在这种情况下,三个存储器请求被顺序 地处理。例如,如图3B所示,一个存储器请求MR η在周期i+1进入MS阶段;另一个存储器 请求MR n+1在周期i+2进入MS阶段;剩余的存储器请求MR n+2在周期i+3进入MS阶段。 在这种情况下,具有存储器冲突的存储器请求仍然保留在周期i+Ι和周期i+2中,从而使得 停止发生。
[0061] 图4A至图4C说明这样的示例:假设存储器由七个存储器组(0?7)组成并且标 量存储器请求或矢量存储器请求被输入,图2中示出的存储器控制设备100处理存储器请 求,其中,每个矢量存储器请求包括多达四个元素,以同时访问四个存储器组。然而,这仅是 示例,存储器可由一个或更多个存储器组组成,并且矢量存储器请求可由一个或更多个元 素组成。
[0062] 参照图4A,三个矢量存储器请求0MR1、0MR2和0MR3 (每个请求由四个元素组成) 从处理器被输入。组确定器110确定用于包括在存储器请求0MR1、0MR2和0MR3中的四个 元素中的每个元素的存储器组。如图4A所示,由组确定器110确定的用于存储器请求0MR1 的存储器组是"0、1、2、3",用于01?2的存储器组是"2、3、4、5",用于0MR3的存储器组是"4、 5、6、7"。
[0063] 调度器120基于关于确定的存储器组的信息将元素输入到对应于存储器组(0? 7)的缓冲器(0?7)。结果,在周期i中,一个元素被输入到缓冲器0、1、6和7,并且两个元 素被输入到缓冲器2、3、4和5。
[0064] 请求产生器130通过从用于周期i的缓冲器(0?7)中的每个缓冲器提取元素并 且将提取的元素彼此组合,来产生用于在周期i中同时访问七个存储器组的调度的存储器 请求SMR1。
[0065] 在周期i+Ι,控制器140将调度的存储器请求SMR1发送到存储器,尝试访问存储器 组以加载输入。然而,未被处理的元素在周期i+Ι中仍然保留在缓冲器中。也就是说,原始 的存储器请求0MR2和0MR3具有包含存储器组冲突的元素,并且所述元素尚未被处理,从而 使得停止发生。
[0066] 调度器120检查由组确定器110确定的针对存储器组的新的存储器请求是否存在 于周期i+Ι中。如图4B所示,新的存储器请求在周期i+Ι中未被输入,从而调度器120检 查任何存储器请求的任何元素是否保留在缓冲器(0?7)的任何一个中。然后,因为元素 仍然保留在特定缓冲器(即,缓冲器2、3、4和5)中的每个中,所以新调度的存储器请求被 产生。
[0067] 请求产生器130通过从特定缓冲器(2、3、4和5)提取元素在周期i+Ι中产生调度 的存储器请求SMR2。
[0068] 在周期i+2中,控制器140可将调度的存储器请求SMR2发送到存储器。此时,因 为在缓冲器(0?7)中不存在剩余的元素,所以停止没有发生。
[0069] 同时,当完成存储器存取时,调度的存储器请求SMR1在周期i+3中停留在一个或 更多个写入缓冲器320中。然后,在原始的存储器请求0MR1、0MR2和0MR3被完全处理之 后,调度的存储器请求SMR1在周期i+4中被写回寄存器文件400。
[0070] 在如上参照图3B描述的处理存储器请求的一般过程中,在存储器请求0MR1、0MR2 和0MR3中发生存储器组冲突,从而必然发生两个停止。然而,在图4A中示出的示例性实施 例中,通过调度存储器请求,只发生一个停止,因此存储器处理速度可变得更快。
[0071] 图4B是存储器控制设备100处理存储器请求的另一示例。参照图4B,在周期i中 同时发出具有存储器组冲突的两个存储器请求0MR1和0MR2,然后在周期i+Ι中发出具有存 储器组冲突的存储器请求0MR3和0MR4。这样,当在两个或更多个周期连续发生存储器组 冲突时,另外的阶段(即,用于检查存储器组冲突的存在的阶段)可被添加到存储器处理流 水线处理中,从而存储器控制设备100检查存储器组冲突的存在以最小化发生停止的可能 性。
[0072] 如图4B所示,如果在周期i发出的存储器请求0MR1和0MR2被输入,则组确定器 110确定用于存储器请求0MR1和0MR2中的各个元素的存储器组。然后,在周期i+Ι检查是 否发生任何存储器组冲突。因为存储器请求0MR1和0MR2中的所有元素被调度器120输入 到相应的缓冲器150中,并且所有存储器组彼此冲突,所以请求产生器130通过从每个缓冲 器150提取元素来产生调度的存储器请求SMR1。结果,调度的存储器请求SMR1变为在周期 i中输入的存储器请求0MR1。类似地,组确定器110确定用于在周期i+Ι中输入的存储器 请求0MR3和0MR4中的各个元素的存储器组。
[0073] 在周期i+2中,控制器140将调度的存储器请求SMR1发送到存储器,并使得停止 发生。此外,调度器120将不引起存储器组冲突的存储器请求0MR4输入到缓冲器150。请 求产生器130通过从每个缓冲器150提取元素来产生调度的存储器请求SMR2。结果,调度 的存储器请求SMR2是在存储器请求0MR3和0MR4之间不具有存储器组冲突的元素的组合。
[0074] 在周期i+3中,控制器140将调度的存储器请求SMR2发送到存储器,并且调度器 120将尚未被处理的未完成的存储器请求0MR3输入到缓冲器150,控制请求产生器130产 生另一调度的存储器请求,并使得停止发生。作为响应,请求产生器130通过从每个缓冲器 150提取元素来产生调度的存储器请求SMR3。然后,在周期i+4中,控制器140将调度的存 储器请求SMR3发送到存储器。
[0075] 在周期i+4中,最先发送的调度的存储器请求SMR1被完全处理,并等待直到调度 的存储器请求SMR2被完全处理,然后SMR1被写回寄存器文件。在周期i+5中,调度的存储 器请求SMR2被完全处理,从而原始的存储器请求0MR1和0MR2的处理结果被写回寄存器文 件。同时,包括在调度的存储器请求SMR2中的原始的存储器请求0MR4的处理结果不被写 回寄存器文件,直到调度的存储器请求SMR3被完全处理。在周期i+6中,调度的存储器请 求SMR3被完全处理,并且原始的存储器请求0MR3和0MR4的处理结果被写回寄存器文件。
[0076] 图4C是存储器控制设备100处理存储器请求的另一示例。参照图4C,在周期i中 同时发出会发生存储器组冲突的两个存储器请求0MR1和0MR2。
[0077] 此时,存储器控制设备100确定在存储器中是否存在空的存储器组。如果存在,则 存储器控制设备100在周期i+Ι中首先将具有最高优先级的存储器请求(例如,存储器请 求0MR1)发送到存储器,从而可省略用于检查存储器组冲突的存在的阶段。
[0078] 同时,另一存储器请求0MR2的元素 0、1、2和3中的每个可在周期i+Ι中在相应的 存储器组中等待。然后,存储器请求0MR2可根据参照图4B描述的过程被处理。
[0079] 根据本示例性实施例,当在特定周期中发出新的存储器请求并且存在空的存储器 组时,本公开将具有最高优先级的存储器请求直接发送到存储器,而不检查存储器组冲突 的存在,从而减少发生停止的可能性并提高处理性能。
[0080] 图5是示出根据示例性实施例的用于控制存储器的方法的流程图。用于控制存储 器的方法可以由图2中示出的存储器控制设备100来执行。
[0081] 针对在特定周期中输入的一个或更多个存储器请求,在510,存储器控制设备100 确定将被访问的存储器组。例如,如果处理器发送用于处理加载/存储指令的存储器请求, 则存储器控制设备100在511从处理器接收存储器请求,然后在512确定将被包括在存储 器请求中的一个或更多个元素访问的存储器组。此时,存储器控制设备100可计算每个元 素的地址,并基于计算的地址确定针对每个元素的存储器组。
[0082] 如果确定了用于包括在一个或更多个存储器请求中的所有元素的存储器组,则在 520,存储器控制设备100可调度元素以最小化存储器组冲突。如果在特定周期中同时接收 到两个或更多个存储器请求,或者在前一周期中尚未被处理的两个或更多个存储器请求仍 然存在,则调度元素会特别有效。
[0083] 例如,如果确定了用于包括在存储器请求中的所有元素的存储器组,则在521,存 储器控制设备100使用相应的存储器请求的标识(ID)为每个元素添加标签,以使哪个元素 与哪个存储器请求相关清楚,然后在522,存储器控制设备100将使用相应的存储器请求的 ID添加了标签的每个元素输入到相应的缓冲器。这样,为每个存储器组提供相应的缓冲器, 并且使用缓冲器调度将被发送到存储器的存储器请求。以这种方式,可调度存储器请求,而 没有存储器组冲突,从而减少在处理器中发生停止的可能性。
[0084] 同时,如果在特定周期中没有接收到存储器请求,则在523,存储器控制设备100 检查是否在缓冲器中存在任何未处理的存储器请求,即,是否在任何缓冲器中存在剩余的 任何元素。如果在缓冲器中存在元素,则意味着在前一周期发出的存储器请求没有被处理, 仍然保留在缓冲器中。在这种情况下,存储器控制设备100产生将被发送到存储器的调度 的存储器请求。可选择地,在缓冲器中不存在元素的情况下,这意味着不存在将被处理的存 储器请求,调度处理结束。如果在操作520,新的元素被输入到缓冲器或者任何元素保留在 缓冲器中,则在530,存储器控制设备100通过从每个缓冲器提取元素来产生调度的存储器 请求。
[0085] 然后,在540,调度的存储器请求被发送到用于处理的存储器。具体地讲,在541, 调度的存储器请求需要等待,直到下一周期,然后在542,在下一周期被发送到存储器。此 时,如果在543确定在任何缓冲器中存在剩余的任何元素,则在544使得停止发生。此外, 根据在511是否在下一周期接收到新的存储器请求,可重复执行上述处理。
[0086] 图6是根据另一示例性实施例的存储器控制方法的流程图。存储器控制方法可以 由存储器控制设备100来执行。
[0087] 在操作610,存储器控制设备100确定将被在特定周期中接收的一个或更多个存 储器请求访问的存储器组。与在图5中示出的示例性实施例相反,当在操作611,在特定周 期中接收到一个或更多个存储器请求时,在操作612,存储器控制设备100确定是否在存储 器中存在空的存储器组。如果确定在存储器中存在空的存储器组,则在操作613,存储器控 制设备100在下一周期中将具有最高优先级的存储器请求发送到存储器,而不检查存储器 组冲突的存在。存储器控制设备100可计算包括在每个接收到的存储器请求中的每个元素 的地址,并基于计算的地址确定将被访问的存储器组。此时,存储器控制设备100可确定具 有最高优先级的存储器请求访问空的存储器组。
[0088] 然后,在操作620,存储器控制设备100调度剩余的存储器请求或未处理的存储器 请求。也就是说,当在操作610在特定周期中接收的两个或更多个存储器请求中的一部分 被发送到空的存储器时,剩余的存储器请求在操作621在缓冲器中被接收。
[0089] 同时,如果在特定周期中没有接收到任何存储器请求,则在操作622,存储器控制 设备100确定是否存在尚未被处理的任何存储器请求,即,是否在缓冲器中存在剩余的任 何元素。如果在缓冲器中存在剩余的元素,则意味着在前一周期中发出的存储器请求仍然 保留而未被处理,从而存储器控制设备100请求产生将被发送到存储器的调度的存储器请 求。如果在缓冲器中不存在剩余的元素,则意味着不存在将被处理的存储器请求,从而调度 处理结束。
[0090] 然后,如果在操作620,新的元素被输入到缓冲器,或者在操作620,任何未处理的 元素仍然保留在缓冲器中,则在操作630,存储器控制设备100可每次分别从一个缓冲器获 取一个元素,以产生调度的存储器请求。
[0091] 然后,在操作640,存储器控制设备100将调度的存储器请求发送到存储器,从而 调度的存储器可被处理。也就是说,存储器控制设备100在操作641等待下一周期,并且 在操作642在下一周期中将调度的存储器请求发送到存储器。然后,在操作643,存储器控 制设备100检查是否在缓冲器中保留任何元素,如果在缓冲器中保留任何元素,则在操作 644,存储器控制设备100使得停止发生。
[0092] 上述方法和/或操作可被记录、存储或固化在一个或更多个计算机可读存储介质 中,所述计算机可读存储介质包括程序指令,所述程序指令由计算机执行以使处理器运行 或执行程序指令。介质还可包括单独的程序指令、数据文件、数据结构等或者包括它们的组 合。计算机可读存储介质可以是非暂时性计算机可读存储介质。计算机可读存储介质的示 例包括磁介质(诸如硬盘、软盘和磁带)、光介质(诸如CD ROM盘和DVD)、磁光介质(诸如 光盘)和专门配置为存储和执行程序指令的硬件装置(诸如只读存储器(ROM)、随机存取存 储器(RAM)、闪存等)。程序指令的示例包括诸如由编译器产生的机器代码以及包含可由计 算机使用解释器执行的高级代码的文件。描述的硬件装置可被配置为用作一个或更多个软 件模块,以执行上述操作和方法,反之亦然。此外,计算机可读存储介质可分布在通过网络 连接的计算机系统之中,并且计算机可读代码或程序指令可以以分散方式被存储和执行。
[0093] 以上已经描述了多个示例。然而,应该理解,可进行各种修改。例如,如果描述的 技术以不同的顺序被执行和/或如果描述的系统、架构、装置或电路中的组件以不同的方 式被组合和/或被其他组件或它们的等同物替换或补充,则可实现适当的结果。因此,其他 实施方式包括在权利要求的范围内。
【权利要求】
1. 一种存储器控制设备,包括: 调度器,被配置为响应于当前周期中存在的多个存储器请求,基于关于针对包括在所 述多个存储器请求中的多个元素确定的存储器组的信息来调度所述多个元素; 请求产生器,被配置为在调度器调度所述多个元素之后,使用包括在所述多个存储器 请求中的所述多个元素中的至少一个元素来产生针对当前周期的调度的存储器请求,以防 止存储器组冲突。
2.如权利要求1所述的存储器控制设备,还包括: 组确定器,被配置为响应于接收到多个存储器请求,确定将被包括在所述多个存储器 请求中的多个元素访问的各个存储器组。
3.如权利要求2所述的存储器控制设备,其中,组确定器还被配置为计算所述多个元 素的各个地址,并基于计算的地址确定针对所述多个元素的各个存储器组。
4.如权利要求2所述的存储器控制设备,还包括: 与一个或更多个存储器组分别相应的一个或更多个缓冲器, 其中,调度器还被配置为响应于针对所述多个元素确定各个存储器组,将所述多个元 素中的元素输入到与针对所述多个元素中的元素确定的各个存储器组相应的缓冲器。
5.如权利要求4所述的存储器控制设备,其中,当将元素输入到相应的缓冲器时,调度 器还被配置为使用所述多个存储器请求中包括所述元素的存储器请求的标识(ID)为所述 元素添加标签。
6.如权利要求4所述的存储器控制设备,其中,请求产生器还被配置为通过从所述一 个或更多个缓冲器中的包括至少一个元素的每个缓冲器提取一个元素来产生调度的存储 器请求。
7.如权利要求6所述的存储器控制设备,还包括: 控制器,被配置为在产生调度的存储器请求之后响应于在任何一个缓冲器中存在至少 一个元素,在将调度的存储器请求发送到存储器时使得停止发生。
8.如权利要求1所述的存储器控制设备,其中,控制器还被配置为在下一周期将调度 的存储器请求发送到存储器。
9. 一种存储器控制方法,包括以下步骤: 响应于当前周期中存在的多个存储器请求,基于关于针对包括在所述多个存储器请求 中的多个元素确定的存储器组的信息来调度所述多个元素; 在调度所述多个元素之后,使用包括在所述多个存储器请求中的所述多个元素中的至 少一个元素来产生调度的存储器请求,而不引起存储器组冲突。
10.如权利要求9所述的存储器控制方法,还包括以下步骤: 响应于接收到多个存储器请求,确定将被包括在所述多个存储器请求中的多个元素访 问的各个存储器组。
11.如权利要求10所述的存储器控制方法,其中,确定存储器组的步骤包括:计算所述 多个元素的各个地址,并基于计算的地址确定针对所述多个元素的各个存储器组。
12.如权利要求10所述的存储器控制方法,其中,调度所述多个元素的步骤包括:响应 于针对所述多个元素确定各个存储器组,将所述多个元素中的元素输入到与针对所述多个 元素中的元素确定的各个存储器组相应的缓冲器。
13.如权利要求12所述的存储器控制方法,其中,将元素输入到相应的缓冲器的步骤 包括:使用所述多个存储器请求中包括所述元素的存储器请求的标识(ID)为所述元素添 加标签。
14.如权利要求11所述的存储器控制方法,其中,在产生调度的存储器请求的步骤中, 通过从包括至少一个元素的每个缓冲器提取一个元素来产生调度的存储器请求。
15.如权利要求14所述的存储器控制方法,还包括以下步骤:在产生调度的存储器请 求之后,响应于在任何一个缓冲器中存在至少一个元素,在将调度的存储器请求发送到存 储器时使得停止发生。
16.如权利要求10所述的存储器控制方法,还包括以下步骤: 在下一周期将调度的存储器请求发送到存储器。
17. 一种存储器控制设备,包括: 请求产生器,被配置为从包括在多个存储器请求中的多个存储器请求元素产生包括至 少一个调度的元素的调度的存储器请求, 其中,所述多个存储器请求分别包括至少一个存储器请求元素, 其中,所述多个存储器请求元素中的每个存储器请求元素和所述至少一个调度的元素 中的每个调度的元素具有相应的确定的存储器组, 其中,所述至少一个调度的元素中的每个调度的元素的确定的存储器组与所述至少一 个调度的元素中的每个其他调度的元素的确定的存储器组不同。
18.如权利要求17所述的存储器控制设备,其中,请求产生器还被配置为通过从至少 一个缓冲器提取各个存储器请求元素来产生调度的存储器请求, 其中,所述至少一个缓冲器对应于各个存储器请求元素的确定的存储器组。
19.如权利要求18所述的存储器控制设备,其中,所述至少一个缓冲器中的每个缓冲 器唯一地对应于一个存储器组。
20. 一种存储器控制方法,包括: 从包括在多个存储器请求中的多个存储器请求元素产生包括至少一个调度的元素的 调度的存储器请求, 其中,所述多个存储器请求分别包括至少一个存储器请求元素, 其中,所述多个存储器请求元素中的每个存储器请求元素和所述至少一个调度的元素 中的每个调度的元素具有相应的确定的存储器组, 其中,所述调度的存储器请求的至少一个调度的元素中的每个调度的元素的确定的存 储器组与所述调度的存储器请求的至少一个调度的元素中的每个其他调度的元素的确定 的存储器组不同。
21.如权利要求20所述的存储器控制方法,其中,产生步骤包括:从至少一个缓冲器提 取各个存储器请求元素, 其中,所述至少一个缓冲器对应于各个存储器请求元素的确定的存储器组。
22.如权利要求21所述的存储器控制方法,其中,所述至少一个缓冲器中的每个缓冲 器唯一地对应于一个存储器组。
【文档编号】G06F3/06GK104142802SQ201410188280
【公开日】2014年11月12日 申请日期:2014年5月6日 优先权日:2013年5月6日
【发明者】金浩荣 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1