CN103914412A - 用于存储设备中的流量优先化的方法,存储设备以及存储系统 - Google Patents
用于存储设备中的流量优先化的方法,存储设备以及存储系统 Download PDFInfo
- Publication number
- CN103914412A CN103914412A CN201410007821.8A CN201410007821A CN103914412A CN 103914412 A CN103914412 A CN 103914412A CN 201410007821 A CN201410007821 A CN 201410007821A CN 103914412 A CN103914412 A CN 103914412A
- Authority
- CN
- China
- Prior art keywords
- access request
- memory
- memory access
- treatment element
- priority
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012913 prioritisation Methods 0.000 title claims abstract description 13
- 238000011282 treatment Methods 0.000 claims description 139
- 238000012545 processing Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 14
- 230000009471 action Effects 0.000 description 13
- 238000007726 management method Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Landscapes
- Multi Processors (AREA)
Abstract
根据一个实施例,一种用于存储设备中的流量优先化的方法包括将包括优先级值的存储器访问请求从所述存储设备中的处理元件发送到所述存储设备中的交叉互连。通过所述交叉互连,将所述存储器访问请求路由到所述存储设备中与所述存储器访问请求相关联的存储器控制器。在所述存储控制器接收所述存储器访问请求。将所述存储器访问请求的优先级值与存储在所述存储器控制器的队列中的多个存储器访问请求的优先级值进行比较,以确定最高优先级的存储器访问请求。所述存储器控制器基于所述最高优先级的存储器访问请求执行下一个存储器访问请求。
Description
背景技术
本发明涉及计算机存储器,并且尤其是涉及存储设备内的流量优先化。
当计算机接通电源并运行时,计算机系统常常需要相当数量的高速存储器(诸如随机存取存储器(RAM))以容纳信息(诸如数据和程序)。随着计算机系统已经提高了性能和复杂性,存储设备的需求已经不断增长。
从主处理器到存储设备上的位置的通信可以涉及相当长的数据访问时间和延迟。主处理器访问存储器所花费的时间例如可以是数百个周期,包括:认识到数据不在缓冲器中(对于存储器读取)的时间,从主处理器的处理器核穿过模块或其他封装到I/O的时间,在多处理器/共享存储系统中建立到存储器的通道的仲裁时间,以及在存储单元中放入和取出数据的时间。试图同时访问共享存储器的多个资源之间的竞争增加了系统时延和功率需求。
发明内容
根据一个实施例,一种用于存储设备中的流量优先化的方法,包括将包括优先级值的存储器访问请求从所述存储设备中的处理元件发送到所述存储设备中的交叉互连(crossbar interconnect)。通过所述交叉互连,将所述存储器访问请求路由到与所述存储器访问请求相关联的所述存储设备中的存储器控制器。在所述存储控制器处接收所述存储器访问请求。将所述存储器访问请求的优先级值与存储在所述存储器控制器的队列中的多个存储器访问请求的优先级值进行比较,以确定最高优先级的存储器访问请求。所述存储器控制器基于所述最高优先级的存储器访问请求执行下一个存储器访问请求。
另外的示例性实施例包括存储设备。所述存储设备包括耦合到交叉互连的处理元件。所述处理元件被配置为将包括优先级值的存储器访问请求发送到所述交叉互连。所述交叉互连被配置为将所述存储器访问请求路由到与所述存储器访问请求相关联的存储器控制器。所述存储器控制器被耦合到存储器以及所述交叉互连。所述存储控制器包括队列并且被配置为将所述存储器访问请求的优先级值与存储在所述存储器控制器的所述队列中的多个存储器访问请求的优先级值进行比较,以确定最高优先级的存储器访问请求,并且基于所述最高优先级的存储器访问请求执行下一个存储器访问请求。
通过本发明的技术实现了另外的特征和优点。本发明的其它实施例和方面在本文中进行了详细描述,并且被认为是本发明的一部分。为更好地理解本发明的优点和特征,请参照以下描述和附图。
附图说明
在说明书结尾处的权利要求中特别指出并明确要求了本发明的主题。从以下结合附图的详细描述中本发明的上述和其它特征、以及优点是明显的,在附图中:
图1示出了依照一个实施例的计算机系统的框图;
图2示出了依照一个实施例的存储设备的框图;
图3示出了依照一个替代实施例的存储设备的框图;以及
图4示出了依照一个实施例的用于存储设备中的流量优先化的方法的流程图。
具体实施方式
实施例是针对具有主处理器和一个或多个具有片上流量优先化的主动存储(active memory)设备的计算机系统。存储器中的功率和时延是影响系统性能和能量的重要因素。在示例性实施例中,存储器流量的优先化减少了带宽竞争和功率,以提高系统性能。每个主动存储设备可包括连接来自主处理器、多个处理元件、以及多个存储控制器的若干链路的交叉互连开关的片上网络。可利用若干特征以增强存储器流量优先化。流量优先化可以通过在每个存储器访问请求的源处通过关键度(criticality)和进展的硬件或软件指示来本地设置优先级,以分布式的方式进行管理,或者通过片上进展监视器来全局控制进展,以集中式的方式进行管理。流量优先化管理可实现在处理元件中,实现在交叉互连中,和/或实现在存储器控制器中。
在实施例中,处理元件能够执行各种任务,诸如算术运算、加载、存储和递减。每个处理元件可执行被加载到车道指令缓冲器(lane instructionbuffer)中的指令序列,以卸载主处理器对在主动存储设备中访问的数据所执行的操作。多个处理元件可访问每个存储设备中的存储器。
在一个实施例中,每个主动存储设备包括组成三维(3D)存储设备的多个存储器层,其中存储芯片的各个列形成与存储器控制器通信的栈或库(vault)。在一个实施例中,多个存储器库位于主动存储设备上,其中每个库具有各自的存储器控制器。栈还可包括被配置为与主动存储设备中的存储器和其它处理元件进行通信的处理元件。在其它实施例中,处理元件是与存储器栈物理分离的,但是仍是主动存储设备的一部分,其中处理元件被放入池中并且可以用于使用所述设备内的任何存储器栈来执行指令。在一个实施例中,处理元件通过开关的交叉互连和存储器控制器来访问库中的被选地址。在一个实施例中,多个存储设备、栈以及处理元件可经由通过耦合多个交叉互连所形成的互连网络进行通信。在实施例中,存储器栈包括堆叠在一起的多个动态随机访问存储器(DRAM)管芯(die),其中每个DRAM管芯分成若干存储体(bank)。此外,在示例中,在每个管芯中的垂直排列的一组存储体可被称为由库控制器或存储器控制器访问的库。
实施例包括具有存储器控制器和处理元件的多个存储器库,其被称为主动存储设备。主动存储设备可执行使用存储设备内的多个位置(例如,存储在特定地址的数据)作为操作数的一组复杂的操作。提供了一个过程,由此对存储设备内的这些操作数自主执行指令和操作。指令和操作可被存储在存储设备自身内,并且不从主处理器发送,其中所存储的指令被提供给处理元件以便由存储设备中的处理元件进行处理。在一个实施例中,处理元件是可编程引擎,其包含车道指令缓冲器,指令单元(包括分支能力和指令解码),矢量、标量和屏蔽寄存器文件的混合,用于在存储器和寄存器文件之间移动数据的多个加载/存储单元,以及用于各种数据类型的算术和逻辑处理的多个执行单元。在处理元件中还包括用于将虚拟地址转换或翻译成物理地址的地址转换能力,对存储器和处理元件之间的数据移动进行排序的统一加载/存储队列,以及用于与主处理器通信的处理器通信单元。
图1示出了依照一个实施例的包括一个或多个具有片上流量优先化的主动处理器设备的计算机系统的框图。在图1中示出的计算机系统100包括计算机处理器102、存储器106、包括开关的交叉互连的互连网络104、存储器控制器105、以及处理元件108。
在一个实施例中,存储器106和存储器控制器105经由互连网络104耦合到计算机处理器102。在计算机处理器102上执行的过程可以通过互连网络104发出存储器访问请求,或者向处理元件108提供导致存储器访问请求的指令。在一个示例中,写请求包含将被写到存储器106的数据,以及标识存储器106中该数据将被写到的位置的实地址。
在一个实施例中,从计算机处理器102通过互连网络104发送到处理元件108的命令指定了包括设置动作、执行动作和完成通知动作的指令序列。设置动作可包括配置动作,诸如直接从存储器106将配置信息加载到处理元件108的命令。通过在存储器106中提供配置信息,处理元件108能够在接收到命令后被适当地配置。在一个实施例中,配置信息可包括用于在虚拟地址和存储器中的实地址之间进行转换的信息。此外,配置信息可包括通过确保准确性和一致性来维持在处理元件和请求者(例如,主处理器)之间的存储器映射和转换的一致性的信息。设置动作还可包括从存储器106将代码(诸如指令序列)加载到处理元件108。执行动作包括执行包括加载、存储、算术/逻辑和其它指令的代码。
在实施例的另外模式中,处理元件108通过互连网络104耦合到主处理器或计算机处理器102,并且从计算机处理器102接收命令。命令对应于存储在存储器中的指令,以在存储器106上进行访问和执行操作。在该实施例中,(一个或多个)指令执行并形成对应于存储器106中的位置的虚拟地址。存储器控制器105和/或处理元件108在存储器106内的实地址处存储数据。在一个实施例中,当存储或取回数据时,处理元件108将虚拟地址映射到存储器106中的实地址。计算机处理器102向存储器106提供命令,其中处理元件108接收该命令并从存储器106中取来对应的指令。在一个实施例中,处理元件108接收作为命令一部分的任务,其中可将该任务的一部分发回给计算机处理器102以便执行。由于若干因素(诸如数据位置和对功能的支持),计算机处理器102可能更适合于执行由所述任务指定的功能。在一个实施例中,存储器106、存储器控制器105、互连网络104、以及处理元件108被合并到与主处理器102通信的单个设备(诸如主动存储设备)中。
系统100是可用于执行本文所描述的处理的配置的一种示例。虽然系统100被示出只有单个存储器106、存储器控制器105、互连网络104、处理元件108、以及计算机处理器102,但是应当理解,其它实施例还可在具有两个或更多个存储器106、存储器控制器105、处理元件108或计算机处理机102的其它系统中运行。在一个实施例中,存储器106、存储器控制器105、互连网络104、处理元件108、以及计算机处理器102未位于同一计算机内。例如,存储器106、处理元件108以及存储器控制器105可位于一个物理位置(例如,在存储器模块上)中,而计算机处理器102位于在另一个物理位置中(例如,计算机处理器102经由互连网络104或其它网络访问存储器控制器105)。另外,本文所描述的处理的部分可跨域存储器106、存储器控制器105、互连网络104、处理元件108和计算机处理器102中的一个或多个。
存储器106可存储一个或多个不同的程序,其每个包含用于实现逻辑功能的可执行指令的有序列表。例如,存储在存储器106中的软件可包括操作系统(未示出)、源代码112、以及一个或多个应用。如图1所示,存储器106存储源代码112和编译器110。替代地,编译器110可在系统100之外的系统上被存储和执行,编译器110为系统100产生可执行程序(诸如可执行体114)。编译器110包括许多功能组件,其用于实现如本文将进一步描述的示例性实施例的一个或多个特征、过程、方法、功能以及操作。在一个实施例中,编译器110将源代码112编译和链接成将在处理元件108内执行的可执行体114。为改进流量优先化,编译器110可被配置为当为处理元件108生成可执行体114时,确定加载和使用与来自处理元件108的存储器访问请求相关联的数据之间的加载至使用距离。编译器110可在用于处理元件108的可执行体114的可执行指令中设置加载至使用距离提示。基于加载至使用识别的松弛(slack)可以导致对于较大的加载至使用距离使用请求准许协议将存储器访问请求格式化为较低功率的非推测性请求,或对于较小的加载至使用距离将其格式化为较高功率的推测性请求。
图2是根据一个实施例的存储设备200的框图。在一个实施例中,存储设备200是包括耦合到交叉互连204的处理元件(PE)202A和202B(一般称为处理元件或多个处理元件202)的主动存储设备。存储设备200还包括分别耦合到交叉互连204以及耦合到存储器库208A和208B(一般称为存储器库或多个存储器库208)的存储器控制器206A和206B(一般称为存储器控制器或多个存储器控制器206)。存储设备200还可包括一个或多个耦合到交叉互连204的附加处理元件202N。一个或多个附加元件210还可耦合到交叉互连204,诸如存储器控制器206、存储器库208、以及诸如图1的计算机处理器102的主处理器的附加组。存储器库208A和208B每一个都可包括独立并行可访问的以三维块区域排列的多层栈式可寻址存储器元件。
交叉互连204使用开关的网络(未示出)提供用于在存储设备200的部分之间通信的快速和高带宽路径。交叉互连204包括被配置为接收存储器访问请求的仲裁器212。每一个存储器访问请求都可包括路由标签和优先级值。仲裁器212基于比较存储器访问请求相互之间的优先级值在存储器访问请求之间进行仲裁。仲裁器212可支持用于非推测性请求的请求准许协议,其中仲裁器212接收调度请求并用指示请求资源(例如,处理元件202)何时将被准许访问以通过交叉互连204传递通信的调度槽进行响应。仲裁器212还可支持推测性请求协议。如果仲裁器212接收到推测性请求并且通过交叉互连204的路径是可用的,则可立即准许该推测性请求;否则,可以拒绝该推测性请求。被仲裁器212拒绝的请求可在本地进行排队以重试或者请求资源可负责重新发送该请求。
在存储器控制器206的队列214中收集成功通过交叉互连204路由的存储器访问请求。每个存储器控制器206可以具有单独的队列,以存储用于其各自库208的存储器访问请求。例如,存储器控制器206A包括队列214A以缓冲到由存储器控制器206A控制的栈式存储器芯片的库208A的存储器访问请求,以及存储器控制器206B包括队列214B以缓冲到由存储器控制器206B控制的栈式存储器芯片的库208B的存储器访问请求。
每个处理元件202包括支持流量优先化的特征。例如,处理元件202A包括车道指令缓冲器(LIB)216A、进展计数器(PC)218A、加载存储队列(LSQ)220A、以及存储器请求优先级寄存器(PR)222A。类似的,处理元件202B包括车道指令缓冲器216B、进展计数器218B、加载存储队列220B、以及存储器请求优先级寄存器222B。车道指令缓冲器216A和216B包括用于由处理元件202A和202B中的每一个处理元件执行的指令序列,诸如图1的可执行体114的部分。
处理元件202A和202B中的每一个处理元件可以以不同的速率在指令中前进。当到达执行检查点或者执行了预定数目的指令时,处理元件202A和202B中的每一个处理元件可以更新其各自的进展计数器218A和218B。在进展计数器218A和218B中的变化可导致存储器请求优先级寄存器222A和222B中的变化。例如,进展计数器218A和218B中的较低进展指示可导致存储器请求优先级寄存器222A和222B中的较高优先级值,而进展计数器218A和218B中的较高进展指示可导致存储器请求优先级寄存器222A和222B中的较低优先级值以给予在指令中前进较慢的处理元件202优先权。
存储器请求优先级寄存器222A和222B可基于相对于加载存储队列220A和220B的加载存储队列容量的加载存储队列深度进行调整,其中加载存储队列220A和220B缓冲存储器访问请求序列,以及在处理元件202和存储器控制器206之间发送的数据。存储器请求优先级寄存器222A和222B还可基于指示代码段的关键度或在指令缓冲器216A和216B中的指令中的存储器访问请求的加载至使用距离的应用代码或编译器提示来进行调整。
虽然图2只示出了存储设备200中的两个处理元件202A和202B、存储器控制器206A和206B、以及存储器库208A和208B,但是存储设备200中的元件的数量可以变化。在一个示例中,处理单元202的数量可以大于存储器库208的数量。在另一个实施例中,存储设备200可包括少于存储器库208的处理元件202。在实施例中,处理元件202被放入池中并可用于访问存储设备200中的任何存储器库208。例如,存储设备200可包括十六个存储器库208和存储器控制器206,但是只有八个处理元件202。这八个处理元件202被放入池中,并且用作用于访问耦合到交叉互连204的任何存储器库208的资源。在另一个示例中,存储设备可以是被动的,其中存储设备由耦合到交叉互连204的外部请求者(如图1的计算机处理器102)进行控制。
图3示出了依照一个替代实施例的存储设备300的框图。如图2的存储设备200那样,图3的存储设备300是主动存储设备,其包括处理单元202A和202B、一个或多个附加处理元件202N、交叉互连204、耦合到存储器库208A和208B的存储器控制器206A和206B、一个或多个附加元件210、仲裁器212、队列214A和214B、车道指令缓冲器216A和216B、进展计数器218A和218B、加载存储队列220A和220B、以及存储器请求优先级寄存器222A和222B。另外,存储设备300还包括用于全局流量优先化的进展监视器(PM)302。
进展监视器302接收进展计数器218A和218B的进展计数器值,以及来自存储设备300中的任何其他进展计数器218的进展计数器值。进展监视器302比较进展计数器值,并调整存储器请求优先级寄存器222A和222B,以及存储设备300中的其它存储器请求优先级寄存器222,以对于具有较少进展的处理元件202增加优先级,以及对于具有较多进展的处理元件202减少优先级。全局地调整存储器请求优先级寄存器222能够导致对于超前运行的任务减少功率,并且对于落后的任务提供较小的时延,以平衡存储设备300内的整体进展。
图4是用于诸如在图1-3的系统100和存储设备200和300中的存储器流量优先化的示例性过程的流程图400。在框402,将包括优先级值的存储器访问请求从存储设备(诸如存储设备200或300)中的处理元件202发送到交叉互连204。所述优先级值是基于处理元件202中的存储器请求优先级寄存器222来设置的。
在框404,存储器访问请求通过交叉互连204路由到与该存储器访问请求相关联的存储设备中的存储器控制器206。在交叉互连204处可以接收该存储器访问请求和一个或多个其它存储器访问请求。仲裁器212基于将该存储器访问请求的优先级值与所述一个或多个其它存储器访问请求的一个或多个优先级值进行比较,在该存储器访问请求和一个或多个其它存储器访问请求之间进行仲裁。
在框406,在存储器控制器206处接收存储器访问请求以访问由存储器控制器206控制的栈式存储器芯片的库208中的存储器。在框408,存储器控制器206将所述存储器访问请求的优先级值与存储在存储器控制器206的队列214中的多个存储器访问请求的优先级值进行比较,以确定最高优先级的存储器访问请求,其中所述多个存储器访问请求来自所述处理元件202和一个或多个其它处理元件。
在框410,存储器控制器206基于最高优先级的存储器访问请求执行下一个存储器访问请求。存储器控制器206可调整队列214中的存储器访问请求的优先级。例如,存储器控制器206可接收加载存储队列220已经到达相对于加载存储队列容量的加载存储队列深度的阈值水平的指示,并且基于所述指示增加队列214中来自处理元件202的存储器访问请求的优先级值。存储器控制器206还可基于下列因素中的一个或多个来调整存储在队列214中的多个存储器访问请求的优先级值:队列214中来自同一个处理元件202的存储器访问请求的数量;来自同一个处理元件202的最后到达的存储器访问请求的最新优先级;以及队列214中的存储器访问请求的年龄。
存储器请求优先级寄存器222可以基于各种因素进行调整以动态地修改存储器访问请求的优先级。例如,存储器请求优先级寄存器222可以基于指示代码段的关键度的应用代码提示来进行调整。存储器请求优先级寄存器222还可基于来自编译器110的加载至使用距离提示来进行调整,其中较大的加载至使用距离与较低优先级相关联,以及较小的加载至使用距离与较高优先级相关联。可基于较低优先级值,将存储器访问请求作为非推测性请求进行处理,以及基于较高优先级值,将存储器访问请求作为推测性请求进行处理。存储器请求优先级寄存器222还可基于相对于处理元件202中的加载存储队列220的加载存储队列容量的加载存储队列深度进行调整。存储器请求优先级寄存器222还可基于进展计数器218的值进行调整,其中进展计数器218基于在处理元件202中所执行的指令的相对数量来进行更新。基于进展计数器218对存储器请求优先级寄存器222的调整可由处理元件202本地进行管理,或由进展监视器302全局进行管理。
技术效果包括减少时延和功率,同时平衡通过存储器控制器和交叉互连访问共享存储器库的存储设备的处理元件中的计算。
本文所使用的术语仅是出于描述特定实施例的目的,并且不是旨在限制本发明。如本文所使用的,单数形式“一”、“一个”和“所述”旨在也包括复数形式,除非上下文中以其他方式清楚地指出。还应当理解,当在本说明书中使用时,术语“包含”和/或“包括”指定存在阐明的特征、整数、步骤、操作、元素、和/或组件,但是不排除存在或附加一个或多个其他特征、整数、步骤、操作、元素组件、和/或其组合。
在下面的权利要求中的所有装置或步骤加功能元件的对应的结构、材料、动作、以及等同物旨在包括用于与如明确要求的其它所要求的元件组合执行功能的任何结构、材料、或动作。出于说明和描述的目的已经提供了本发明的描述,但是不是旨在穷尽或将本发明限制于所公开的形式。对于本领域的普通技术人员来说,在不背离本发明的范围和精神的前提下,许多修改和变化将是明显的。所选择和描述的实施例是为了更好的解释本发明的原理和实际应用,以及使得本领域的其它普通技术人员能够理解具有如适合于所预期的特定使用的各种修改的各种实施例的本发明。
进而,如所属技术领域的技术人员所知道,本公开的各个方面可以实现为系统、方法或计算机程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本公开的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上将参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本公开。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中所指定的功能/动作的过程。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (30)
1.一种用于存储设备中的流量优先化的方法,所述方法包含:
将包含优先级值的存储器访问请求从所述存储设备中的处理元件发送到所述存储设备中的交叉互连;
通过所述交叉互连,将所述存储器访问请求路由到所述存储设备中与所述存储器访问请求相关联的存储器控制器;
在所述存储控制器处接收所述存储器访问请求;
将所述存储器访问请求的优先级值与存储在所述存储器控制器的队列中的多个存储器访问请求的优先级值进行比较,以确定最高优先级的存储器访问请求;以及
由所述存储器控制器基于所述最高优先级的存储器访问请求执行下一个存储器访问请求。
2.根据权利要求1所述的方法,还包含:
基于在所述处理元件中的存储器请求优先级寄存器,设置所述优先级值。
3.根据权利要求2所述的方法,还包含:
基于指示代码段的关键度的应用代码提示,调整所述存储器请求优先级寄存器。
4.根据权利要求2所述的方法,还包含:
基于来自编译器的加载至使用距离提示,调整所述存储器请求优先级寄存器;
基于较低优先级值,将所述存储器访问请求作为非推测性请求进行处理;以及
基于较高优先级值,将所述存储器访问请求作为推测性请求进行处理。
5.根据权利要求2所述的方法,还包含:
基于相对于所述处理元件中的加载存储队列的加载存储队列容量的加载存储队列深度,调整所述存储器请求优先级寄存器。
6.根据权利要求5所述的方法,还包含:
在所述存储器控制器处接收所述加载存储队列已经到达相对于所述加载存储队列容量的所述加载存储队列深度的阈值水平的指示;以及
基于所述指示,增加所述存储器控制器的所述队列中的来自所述处理元件的存储器访问请求的优先级值。
7.根据权利要求2所述的方法,还包含:
基于在所述处理元件中所执行的指令的相对数目,更新所述处理元件中的进展计数器;以及
基于所述进展计数器,调整所述存储器请求优先级寄存器。
8.根据权利要求7所述的方法,还包含:
在进展监视器处接收所述进展计数器的进展计数器值;
将所述进展计数器值与从一个或多个其它处理元件接收的一个或多个其它进展计数器值进行比较;以及
调整所述处理元件的所述存储器请求优先级寄存器和所述一个或多个其它处理元件的一个或多个其它存储器请求优先级寄存器,以便为具有较少进展的处理元件增加优先级,以及为具有较多进展的处理元件减少优先级。
9.根据权利要求1所述的方法,还包含:
在所述交叉互连处接收所述存储器访问请求和一个或多个其它存储器访问请求;以及
基于将所述存储器访问请求的所述优先级值与所述一个或多个其它存储器访问请求的一个或多个优先级值进行比较,在所述交叉互连中在所述存储器访问请求和所述一个或多个其它存储器访问请求之间进行仲裁。
10.根据权利要求1所述的方法,还包含:
基于下列因素中的一个或多个,调整存储在所述存储器控制器的所述队列中的所述多个存储访问请求的所述优先级值:
在所述队列中的来自同一处理元件的存储器访问请求的数目;
来自同一处理元件的最后到达的存储器访问请求的最新优先级;以及
所述队列中的所述存储器访问请求的年龄。
11.一种存储设备,包含:
耦合到交叉互连的处理元件,所述处理元件被配置为将包含优先级值的存储器访问请求发送到所述交叉互连;
所述交叉互连,其被配置为将所述存储器访问请求路由到与所述存储器访问请求相关联的存储器控制器;以及
所述存储器控制器,其耦合到存储器和所述交叉互连,所述存储器控制器包含队列,并且被配置为将所述存储器访问请求的优先级值与存储在所述存储器控制器的所述队列中的多个存储器访问请求的优先级值进行比较,以确定最高优先级的存储器访问请求并基于所述最高优先级的存储器访问请求执行下一个存储器访问请求。
12.根据权利要求11所述的存储设备,其中所述处理元件还包含存储器请求优先级寄存器,并且所述处理元件进一步被配置为基于在所述处理元件中的所述存储器请求优先级寄存器,设置所述优先级值。
13.根据权利要求12所述的存储设备,其中基于指示代码段的关键度的应用代码提示,调整所述存储器请求优先级寄存器。
14.根据权利要求12所述的存储设备,其中所述处理元件进一步被配置为:
基于来自编译器的加载至使用距离提示,调整所述存储器请求优先级寄存器;
基于较低优先级值,将所述存储器访问请求作为非推测性请求进行处理;以及
基于较高优先级值,将所述存储器访问请求作为推测性请求进行处理。
15.根据权利要求12所述的存储设备,其中所述处理元件还包含加载存储队列,并且所述处理元件进一步被配置为基于相对于所述加载存储队列的加载存储队列容量的加载存储队列深度来调整所述存储器请求优先级寄存器。
16.根据权利要求15所述的存储设备,其中所述存储器控制器进一步被配置为:
接收所述加载存储队列已经到达相对于所述加载存储队列容量的所述加载存储队列深度的阈值水平的指示;以及
基于所述指示,增加所述存储器控制器的所述队列中的来自所述处理元件的存储器访问请求的优先级值。
17.根据权利要求12所述的存储设备,其中所述处理元件还包含进展计数器,并且所述处理元件进一步被配置为:
基于在所述处理元件中所执行的指令的相对数目,更新所述处理元件中的所述进展计数器;以及
基于所述进展计数器,调整所述存储器请求优先级寄存器。
18.根据权利要求17所述的存储设备,还包含:
一个或多个其它处理元件,其包含一个或多个其它存储器请求优先级寄存器和一个或多个其它进展计数器;以及
进展监视器,其耦合到所述处理元件和所述一个或多个其它处理元件,所述进展监视器被配置为:
接收所述进展计数器的进展计数器值以及来自所述一个或多个其它进展计数器的一个或多个其它进展计数器值;
将所述进展计数器值与所述一个或多个其它进展计数器值进行比较;以及
调整所述处理元件的所述存储器请求优先级寄存器和所述一个或多个其它处理元件的所述一个或多个其它存储器请求优先级寄存器,以便为具有较少进展的处理元件增加优先级,以及为具有较多进展的处理元件减少优先级。
19.根据权利要求11所述的存储设备,其中所述交叉互连还包含仲裁器,所述仲裁器被配置为:
接收所述存储器访问请求和一个或多个其它存储器访问请求;以及
基于将所述存储器访问请求的所述优先级值与所述一个或多个其它存储器访问请求的一个或多个优先级值进行比较,在所述存储器访问请求和所述一个或多个其它存储器访问请求之间进行仲裁。
20.根据权利要求11所述的存储设备,其中所述存储器控制器进一步被配置为基于下列因素中的一个或多个,调整存储在所述存储器控制器的所述队列中的所述多个存储访问请求的所述优先级值:
在所述队列中的来自同一处理元件的存储器访问请求的数目;
来自同一处理元件的最后到达的存储器访问请求的最新优先级;以及
所述队列中的所述存储器访问请求的年龄。
21.一种存储系统,包含:
耦合到存储设备的交叉互连的处理元件,以及耦合到所述存储设备的所述交叉互连的一个或多个其它处理元件,所述处理元件被配置为将包含优先级值的存储器访问请求发送到所述交叉互连;以及
所述存储设备,其包含:
多个存储器控制器;
耦合到所述多个存储器控制器中的每一个存储器控制器的栈式存储器的库;
所述交叉互连,其被配置为将所述存储器访问请求路由到所述多个存储器控制器中的与所述存储器访问请求相关联的存储器控制器;以及
与所述存储器访问请求相关联的所述存储器控制器,其包含队列,并且被配置为将所述存储器访问请求的所述优先级值与存储在所述存储器控制器的所述队列中的多个存储器访问请求的优先级值进行比较,以确定最高优先级的存储器访问请求并基于所述最高优先级的存储器访问请求执行下一个存储器访问请求,所述多个存储器访问请求来自所述处理元件和所述一个或多个其它处理元件。
22.根据权利要求21所述的存储系统,其中所述处理元件还包含存储器请求优先级寄存器,并且所述处理元件进一步被配置为基于所述处理元件中的所述存储器请求优先级寄存器,设置所述优先级值。
23.根据权利要求22所述的存储系统,其中基于指示代码段的关键度的应用代码提示,调整所述存储器请求优先级寄存器。
24.根据权利要求22所述的存储系统,还包含编译器,其被配置为当生成用于所述处理元件的可执行指令时,确定与所述存储器访问请求相关联的数据的加载和使用之间的加载至使用距离,以及在用于所述处理元件的所述可执行指令中设置加载至使用距离提示,其中所述处理元件进一步被配置为:
基于来自所述编译器的所述加载至使用距离提示来调整所述存储器请求优先级寄存器,其中较大的加载至使用距离与较高优先级相关联,以及较小加载至使用距离与较低优先级相关联;
基于较低优先级值,将所述存储器访问请求作为非推测性请求进行处理;以及
基于较高优先级值,将所述存储器访问请求作为推测性请求进行处理。
25.根据权利要求22所述的存储系统,其中所述处理元件还包含加载存储队列,并且所述处理元件进一步被配置为基于相对于所述加载存储队列的加载存储队列容量的加载存储队列深度来调整所述存储器请求优先级寄存器。
26.根据权利要求25所述的存储系统,其中与所述存储器访问请求相关联的所述存储器控制器进一步被配置为:
接收所述加载存储队列已经到达相对于所述加载存储队列容量的所述加载存储队列深度的阈值水平的指示;以及
基于所述指示,增加所述存储器控制器的所述队列中来自所述处理元件的存储器访问请求的优先级值。
27.根据权利要求22所述的存储系统,其中所述处理元件还包含进展计数器,并且所述处理元件进一步被配置为:
基于在所述处理元件中所执行的指令的相对数目,更新所述处理元件中的所述进展计数器;以及
基于所述进展计数器,调整所述存储器请求优先级寄存器。
28.根据权利要求27所述的存储系统,其中所述一个或多个其它处理元件包含一个或多个其它存储器请求优先级寄存器和一个或多个其它进展计数器;并且还包含:
进展监视器,其耦合到所述处理元件和所述一个或多个其它处理元件,所述进展监视器被配置为:
接收所述进展计数器的进展计数器值以及来自所述一个或多个其它进展计数器的一个或多个其它进展计数器值;
将所述进展计数器值与所述一个或多个其它进展计数器值进行比较;以及
调整所述处理元件的所述存储器请求优先级寄存器和所述一个或多个其它处理元件的所述一个或多个其它存储器请求优先级寄存器,以便为具有较少进展的处理元件增加优先级,以及为具有较多进展的处理元件减少优先级。
29.根据权利要求21所述的存储系统,其中所述交叉互连还包含仲裁器,所述仲裁器被配置为:
接收所述存储器访问请求和一个或多个其它存储器访问请求;以及
基于将所述存储器访问请求的所述优先级值与所述一个或多个其它存储器访问请求的一个或多个优先级值进行比较,在所述存储器访问请求和所述一个或多个其它存储器访问请求之间进行仲裁。
30.根据权利要求21所述的存储系统,其中与所述存储器访问请求相关联的所述存储器控制器进一步被配置为基于下列因素中的一个或多个,调整存储在所述存储器控制器的所述队列中的所述多个存储访问请求的所述优先级值:
在所述队列中来自同一处理元件的存储器访问请求的数目;
来自同一处理元件的最后到达的存储器访问请求的最新优先级;以及
所述队列中的所述存储器访问请求的年龄。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/737,339 | 2013-01-09 | ||
US13/737,339 US9405711B2 (en) | 2013-01-09 | 2013-01-09 | On-chip traffic prioritization in memory |
US13/761,252 | 2013-02-07 | ||
US13/761,252 US9405712B2 (en) | 2013-01-09 | 2013-02-07 | On-chip traffic prioritization in memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103914412A true CN103914412A (zh) | 2014-07-09 |
CN103914412B CN103914412B (zh) | 2017-11-24 |
Family
ID=51040110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410007821.8A Expired - Fee Related CN103914412B (zh) | 2013-01-09 | 2014-01-08 | 用于存储设备中的流量优先化的方法,存储设备以及存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103914412B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446913A (zh) * | 2014-09-29 | 2016-03-30 | 华为数字技术(成都)有限公司 | 一种数据访问方法及装置 |
CN106339329A (zh) * | 2015-12-04 | 2017-01-18 | 深圳艾科创新微电子有限公司 | 控制多请求源访问存储器的方法、控制器和视频处理装置 |
CN106933765A (zh) * | 2017-03-31 | 2017-07-07 | 山东超越数控电子有限公司 | 一种基于fpga的多主多从数据采集系统及其交叉通信控制方法 |
CN109074290A (zh) * | 2016-04-08 | 2018-12-21 | 高通股份有限公司 | 用于共享资源的请求的基于QoS等级的服务 |
CN110503999A (zh) * | 2018-05-17 | 2019-11-26 | 希捷科技有限公司 | 用于管理存储器访问操作的方法和系统 |
CN113032109A (zh) * | 2019-12-09 | 2021-06-25 | 北京灵汐科技有限公司 | 一种数据处理的方法、装置和电子设备 |
CN113540033A (zh) * | 2020-04-13 | 2021-10-22 | 阿里巴巴集团控股有限公司 | 制品、集成电路及其制造方法 |
CN116324743A (zh) * | 2020-11-05 | 2023-06-23 | 谷歌有限责任公司 | 存储器请求优先级升级 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441608A (zh) * | 2008-12-04 | 2009-05-27 | 北京中星微电子有限公司 | 一种寄存器多源访问控制装置和方法 |
CN101587461A (zh) * | 2008-05-20 | 2009-11-25 | 上海奇码数字信息有限公司 | 存储器访问调度装置、调度方法与存储器访问控制系统 |
US20100031006A1 (en) * | 2008-08-04 | 2010-02-04 | International Business Machines Corporation | Thread completion rate controlled scheduling |
CN102331977A (zh) * | 2011-09-07 | 2012-01-25 | 上海交通大学 | 内存控制器、处理器系统及内存访问控制方法 |
US20120054760A1 (en) * | 2010-08-24 | 2012-03-01 | Jaewoong Chung | Memory request scheduling based on thread criticality |
-
2014
- 2014-01-08 CN CN201410007821.8A patent/CN103914412B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587461A (zh) * | 2008-05-20 | 2009-11-25 | 上海奇码数字信息有限公司 | 存储器访问调度装置、调度方法与存储器访问控制系统 |
US20100031006A1 (en) * | 2008-08-04 | 2010-02-04 | International Business Machines Corporation | Thread completion rate controlled scheduling |
CN101441608A (zh) * | 2008-12-04 | 2009-05-27 | 北京中星微电子有限公司 | 一种寄存器多源访问控制装置和方法 |
US20120054760A1 (en) * | 2010-08-24 | 2012-03-01 | Jaewoong Chung | Memory request scheduling based on thread criticality |
CN102331977A (zh) * | 2011-09-07 | 2012-01-25 | 上海交通大学 | 内存控制器、处理器系统及内存访问控制方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446913A (zh) * | 2014-09-29 | 2016-03-30 | 华为数字技术(成都)有限公司 | 一种数据访问方法及装置 |
CN105446913B (zh) * | 2014-09-29 | 2018-08-14 | 华为数字技术(成都)有限公司 | 一种数据访问方法及装置 |
CN106339329A (zh) * | 2015-12-04 | 2017-01-18 | 深圳艾科创新微电子有限公司 | 控制多请求源访问存储器的方法、控制器和视频处理装置 |
CN106339329B (zh) * | 2015-12-04 | 2019-09-13 | 深圳开阳电子股份有限公司 | 控制多请求源访问存储器的方法、控制器和视频处理装置 |
CN109074290A (zh) * | 2016-04-08 | 2018-12-21 | 高通股份有限公司 | 用于共享资源的请求的基于QoS等级的服务 |
US11221971B2 (en) | 2016-04-08 | 2022-01-11 | Qualcomm Incorporated | QoS-class based servicing of requests for a shared resource |
CN106933765A (zh) * | 2017-03-31 | 2017-07-07 | 山东超越数控电子有限公司 | 一种基于fpga的多主多从数据采集系统及其交叉通信控制方法 |
CN110503999A (zh) * | 2018-05-17 | 2019-11-26 | 希捷科技有限公司 | 用于管理存储器访问操作的方法和系统 |
CN110503999B (zh) * | 2018-05-17 | 2023-08-01 | 希捷科技有限公司 | 用于管理存储器访问操作的方法和系统 |
CN113032109A (zh) * | 2019-12-09 | 2021-06-25 | 北京灵汐科技有限公司 | 一种数据处理的方法、装置和电子设备 |
CN113540033A (zh) * | 2020-04-13 | 2021-10-22 | 阿里巴巴集团控股有限公司 | 制品、集成电路及其制造方法 |
CN116324743A (zh) * | 2020-11-05 | 2023-06-23 | 谷歌有限责任公司 | 存储器请求优先级升级 |
Also Published As
Publication number | Publication date |
---|---|
CN103914412B (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9841926B2 (en) | On-chip traffic prioritization in memory | |
CN103914412A (zh) | 用于存储设备中的流量优先化的方法,存储设备以及存储系统 | |
US11843691B2 (en) | Technologies for managing a flexible host interface of a network interface controller | |
US10732879B2 (en) | Technologies for processing network packets by an intelligent network interface controller | |
US10833969B2 (en) | Methods and apparatus for composite node malleability for disaggregated architectures | |
US9268704B2 (en) | Low latency data exchange | |
CN109426633A (zh) | 用于管理网络接口控制器的灵活主机接口的技术 | |
CN104750559B (zh) | 跨多节点的存储器资源的池化 | |
US20120209943A1 (en) | Apparatus and method for controlling distributed memory cluster | |
US20200050497A1 (en) | Cloud-based scale-up system composition | |
CN107710238A (zh) | 具有堆栈存储器的硬件加速器上的深度神经网络处理 | |
US10437480B2 (en) | Intelligent coded memory architecture with enhanced access scheduler | |
KR20170124995A (ko) | 자율 메모리 아키텍처 | |
US9390038B2 (en) | Local bypass for in memory computing | |
JP2020505666A (ja) | 面積高効率、再設定可能、エネルギ高効率、速度高効率のニューラル・ネットワーク基板 | |
CN107070709A (zh) | 一种基于底层numa感知的nfv实现方法 | |
CN103455371A (zh) | 用于优化的管芯内小节点间消息通信的方法和系统 | |
CN107924309A (zh) | 用于可变通道架构的系统和方法 | |
US10223260B2 (en) | Compiler-generated memory mapping hints | |
US9104465B2 (en) | Main processor support of tasks performed in memory | |
CN112990448B (zh) | 用于计算的方法、计算系统、计算设备和介质 | |
CN109313583A (zh) | 用于减小对软件定义的基础设施架构的静态和动态分片影响的方法和装置 | |
CN118860561A (zh) | 调度方法、调度装置、电子设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171124 |
|
CF01 | Termination of patent right due to non-payment of annual fee |