相关申请的交叉引用
本申请要求于2019年9月11日向韩国知识产权局提交的申请号为10-2019-0112829的韩国申请的优先权,其通过引用整体并入本文。
各个实施例总体涉及半导体集成设备,且更特别地,涉及数据处理设备及其操作方法。
背景技术:
近来,对各种仲裁(arbitration)技术进行了研究,以提高对诸如其中集成有多个装置的半导体集成设备中的共享存储器的共享资源的访问效率。
为了仲裁一个或多个主装置可以传输到从装置的请求,可以考虑每个请求的延迟和优先级。通过这样的考虑,希望以最大的功率效率和尽可能低的延迟来执行仲裁。
技术实现要素:
在实施例中,数据处理设备可以包括:主装置;从装置;以及控制器,被配置成通过以下步骤仲裁主装置和从装置之间的通信:为从主装置传输的每个请求设置各个超时计数器(tc),将一个或多个虚拟通道分配给一个或多个请求组中的每一个,一个或多个虚拟通道分别对应于优先等级,将请求与对应于该请求的优先等级的虚拟通道相关联,对于每个请求组,根据tc选择各个虚拟通道的前导请求(leadingrequests)之一,并将所选择的请求传输到从装置。
在实施例中,数据处理设备可以包括:主装置;从装置,包括多个存储体;以及控制器,被配置成仲裁主装置和从装置之间的通信,其中控制器包括:超时计数器(tc)设置组件,被配置成根据从主装置传输的请求的各个优先等级针对该请求设置各个tc;分组组件,被配置成根据请求的各个优先等级将每个请求组中的请求分组到请求组的虚拟通道中;虚拟通道分配组件,被配置成将一个或多个虚拟通道分配给每个请求组;以及选择组件,被配置成针对每个请求组,基于请求组的虚拟通道的前导请求的tc来选择请求并输出所选择的请求。
在实施例中,存在一种数据处理设备的操作方法,该数据处理设备包括主装置、具有多个目的地的从装置以及被配置成仲裁主装置和从装置之间的通信的控制器,该操作方法包括以下步骤:当从主装置接收到待传输到多个目的地中的任意一个的请求时,控制器针对请求设置各个超时计数器(tc);控制器通过根据请求的各个目的地对请求进行分类来生成请求组;控制器根据请求的各个优先等级,针对每个请求组将请求组中的请求分配给请求组的多个虚拟通道中的一个;以及控制器根据请求组的虚拟通道的前导请求的tc,从每个请求组中选择任意一个请求,并将所选择的请求传输到从装置。
附图说明
图1是示出根据实施例的数据处理设备的配置图。
图2是示出根据实施例的仲裁组件的配置图。
图3是示出根据实施例的调度器的配置图。
图4是示出根据另一实施例的仲裁组件的配置图。
图5a、图5b、图5c和图5d示出请求传输通道虚拟化概念。
图6是示出根据实施例的数据处理设备的操作方法的流程图。
图7是示出根据实施例的数据处理系统的配置图。
图8是根据实施例的计算框架的概念图。
图9是示出根据实施例的计算框架的配置图。
图10是示出根据实施例的计算板的配置图。
图11是示出根据实施例的存储器板的配置图。
具体实施方式
在下文中,将通过说明性实施例并参照附图来描述根据本公开的数据处理设备及其操作方法。
图1是示出根据实施例的数据处理设备10的配置图。
数据处理设备10可以包括主装置100、从装置300和互连器200。
主装置100可以包括一个或多个主ip(智能属性)m0、m1、…mm,从装置300可以包括一个或多个从ips0、s1、…sn。
主装置100可以被称为主机装置。主装置100可以在主ipm0至mm之中包括各种处理器,诸如cpu(中央处理单元)、gpu(图形处理单元)和应用处理器,或者用作dma(直接存储器访问)或i/o(输入/输出)子系统。
在实施例中,主装置100可以通过第一前向通道(forwardchannel)fch1传输包括表1中的命令、请求id、从地址和数据的请求,并且通过第一后向通道bch1接收与请求处理结果和/或响应信号相对应的数据。
[表1]
从装置300可以用作由主装置100共享的资源。在实施例中,从装置300可以是共享存储器设备。在实施例中,从装置300可以通过第二前向通道fch2接收主装置的请求中的命令、数据和地址,并且通过第二后向通道bch2传输与命令处理结果和/或响应信号相对应的数据。
在主装置100和从装置300之间,可以通过独立的通道来传输地址、数据和响应信号。然而,实施例不限于此。
互连器200可以被配置成仲裁主装置100和从装置300之间的通信,并且在实施例中可以被集成到存储器控制器中,以根据主装置100的请求来控制从装置300。互连器200可以包括主接口210、仲裁组件220和从接口230。
主接口210可以通过第一前向通道fch1接收主装置100的请求,并将所接收的请求传输到仲裁组件220,并且通过第一后向通道bch1将由从装置300提供的响应信号和/或数据传送到主装置100。
仲裁组件220可以被配置成根据优先级和延迟来调度通过第一前向通道fch1被传输的主装置100的请求。
从接口230可以通过第二前向通道fch2将经调度的请求传送到从装置300,通过第二后向通道bch2接收从装置300输出的响应信号和/或数据,并且将所接收的响应信号和/或数据传送到主接口210以传递到主装置100。
在实施例中,仲裁组件220可以根据目的地地址和优先等级将从主装置100传输的请求分组。而且,仲裁组件220可以根据请求到达互连器200的顺序,首先对根据优先等级被分组的请求进行分类,然后将经分类的请求作为链接列表来进行管理。
仲裁组件220可以配置与优先等级相对应的虚拟通道,并且可以根据优先等级,通过被分配的各个虚拟通道将经分组和经分类的请求传输到从装置300。
仲裁组件220可以在各个虚拟通道的前导请求之中选择一个最接近待处理的到期时间的请求。在实施例中,每个请求可以与计数器相关联。仲裁组件220可以选择一个其计数器最接近到期时间的请求,并通过从接口230的第二前向通道fch2将所选择的请求传输到从装置300。
对于该操作,仲裁组件220考虑到优先等级,可以将唯一的id(唯一的优先级id)分派给从主装置100传输的各个请求。在实施例中,主装置100可以将id(请求id)分派给主装置100将请求从装置300处理的请求,并通过第一前向通道fch1将id传输到互连器200。主装置100可以根据各个请求的预设优先等级来分派请求id。换言之,可以以指示优先等级的形式来生成请求id。仲裁组件220可以管理能够识别构成主装置100的主ipm0至mm的主标识符,并且通过联接主标识符和请求id来生成唯一的优先级id。
仲裁组件220可以为被分派了唯一的优先级id的请求设置tc(超时计数器)。在实施例中,优先等级越高,tc可以被设置的值越小(即,对于较短的延迟)。然而,本实施例不限于此。
以这种方式,数据处理设备可以根据不同虚拟通道的优先等级将多个请求分配给不同的虚拟通道,并且向从装置300提供在各个虚拟通道的前导请求之中、其tc最接近到期时间的请求。因此,数据处理设备不仅可以优先处理具有更高优先等级的请求,而且还可以防止接近到期时间的请求的hol(队首(headofline))阻塞,即使这些请求可能具有低优先等级。
图2是示出根据实施例的仲裁组件220-1的配置图。
仲裁组件220-1可以包括id管理组件410、tc设置组件420、请求保持组件430、地址转换组件440和调度器450。
当主装置100传输每个都包括请求id、命令、从地址和数据的请求req时,id管理组件410可以通过合并主标识符和请求id来生成唯一的优先级id,诸如,例如通过使用主标识符来设置唯一的优先级id的一些位和使用请求id来设置唯一的优先级id的其他位。可以根据优先等级p_level1至p_levell来分派通过主装置100传输的请求中包括的请求id。因此,由id管理组件410生成的唯一的优先级id可以以能够识别请求的优先等级p_level1至p_levell的形式来生成。
tc设置组件420可以为分派了唯一的优先级id的每个请求设置tc。在实施例中,优先等级越高,tc可以被设置的值越小,从而以更短的延迟来调度具有更高优先等级的请求。
请求可以根据到达顺序被存储在请求保持组件430的独立的条目中。每个请求的唯一的优先级id、命令、地址、数据和tc值可以被存储在请求保持组件430的相应条目中。例如,响应于时钟信号,在请求被存储在请求保持组件430中之后,tc可以在每个预设周期中被向下计数。
地址转换组件440可以将各个请求中包括的地址转换为从装置300的地址,以识别可能在从0至k范围内的目的地存储体地址。然后,可以根据请求的目的地存储体地址将每个请求分派到存储体调度器450-1、450-2,…450-k中的一个。在实施例中,存储体调度器450-1、450-2、…450-k中的每一个并行地并独立于其他存储体调度器450-1、450-2、…450-k操作,以调度发送到此的请求。因此,每个存储体调度器450-1、450-2、……450-k包括供给各个虚拟通道vch1至vchl的各个虚拟队列vq和选择组件457。以下的说明描述了调度器450的操作,但在实施例中公开了一个或多个存储体调度器450-1、450-2、…450-k的操作。在实施例中,仲裁组件220的固件根据存储体的数量来实施存储体调度器450-1、450-2、…450-k。
调度器450可以根据优先等级p_level1至p_levell对具有相同目的地存储体地址的请求进行分组,并且将虚拟通道vch1至vchl分配给各个请求组。而且,调度器450可以基于等待通过各个虚拟通道vch1至vchl输出的前导请求的tc来选择任意一个请求,并将所选择的请求提供给从装置300。
图3是示出根据实施例的调度器450的配置图。
调度器450可以包括目的地分类组件451和一个或多个调度针对bank#x的请求的存储体调度器450-x。每个存储体调度器450-x可以包括分组组件453、虚拟通道分配组件455和选择组件457。
目的地分类组件451可以通过参考输入请求的地址信息来分类针对每个目的地的输入请求。在实施例中,从装置300可以是包括多个存储体bank#0至bank#k的存储器设备,并且请求的地址信息可以包括存储体地址。目的地分类组件451可以根据请求的存储体地址对请求进行分类,并且将具有相同存储体地址的请求发送到相同的存储体调度器。例如,在实施例中,目的地分类组件451将具有存储体地址x的请求发送到存储体调度器450-x,其中x属于0...k中,每个存储体调度器450-x对应于各个存储体bank#x。
分组组件453可以通过参考各个请求的唯一优先级id,根据优先等级p_level1至p_levell为相同的目的地(即相同的存储体地址)分组请求。分组组件453可以根据请求到达互连器200的顺序,将属于每个请求组的请求作为链接列表来管理。经分组的请求可以在虚拟队列vq中等待每个组。在实施例中,具有第一优先等级p_level1的请求组可以在第一虚拟队列vq_p1中等待,具有第二优先等级p_level2的请求组可以在第二虚拟队列vq_p2中等待,并且具有第l优先等级p_levell的请求组可以在第l虚拟队列vq_pl中等待。
虚拟通道分配组件455可以配置与请求的优先等级p_level1至p_levell相对应的预定数量的虚拟通道vch1至vchl,并且将虚拟通道vch1至vchl分配给各个请求组。在请求被存储在图2的公共请求保持组件430中的实施例中,虚拟通道分配组件455可以管理将请求组织到虚拟队列vq_p1至vq_pl中的数据结构,并且可以选择每个虚拟队列的头部(也就是虚拟队列中的前导请求)以传递到选择组件457。在实施例中,向选择组件457传递请求不会导致相应的虚拟队列vq的头部被改变。当接收到对请求的响应时,相应的虚拟队列vq的前导请求被移除,并且该虚拟队列vq中的下一个请求成为该虚拟队列vq的头部。
选择组件457可以针对各个虚拟通道vch1至vchl,在虚拟队列vq_p1至vq_pl的前导请求之中,选择其tc最接近到期时间的请求,并将所选择的请求提供给相应的存储体bank#x。
在实施例中,从装置300可以是包括多个存储体的存储器设备。调度器450可以根据优先等级p_level1至p_levell针对相同的存储体地址分组请求,并且将虚拟通道vch1至vchl分配给各个优先等级p_level1至p_levell。因此,根据优先等级p_level1至p_levell为特定的存储体分组的请求在相应的虚拟通道vch1至vchl中等待,并且在各个虚拟通道的前导请求之中,其tc最低的请求可以被选择并通过第二前向通道fch2被传送到相应的存储体bank#x。
图2中所示的仲裁组件220-1可以操作公共请求保持组件430,而不考虑目的地地址,这使得能够最大化请求保持组件430的利用效率。也就是,在实施例中,图3的所有虚拟队列vq_p1至vq_pl中的所有请求可以物理地被存储在图2的请求保持组件430中。
图4是示出根据另一实施例的仲裁组件220-2的配置图。
仲裁组件220-2可以包括id管理组件510、地址转换组件520、tc设置组件530、请求保持组件540和调度器550。
因为针对各个目的地地址(例如,为每个存储体)提供独立的请求保持组件540,所以图4所示的仲裁组件220-2可以与图2的仲裁组件220-1区分开。
当主装置100传输每个都包括请求id、命令、从地址和数据的请求req时,id管理组件510可以通过联接主标识符和请求id来生成唯一的优先级id。因为根据优先等级p_level1至p_levell分派了由主装置100传输的请求id(启用请求的优先等级可以根据请求id来确定),所以由id管理组件510生成的唯一的优先级id可以以根据唯一的优先级id确定请求的优先等级p_level1至p_levell的形式来生成。
地址转换组件520可以将各个请求中包括的地址转换为从装置300的地址,以便识别目的地存储体地址,目的地存储体地址可以具有分别对应于从装置300中的bank#0至bank#k的从0至k的值。其目的地存储体地址被识别的请求可以根据到达的顺序被存储在针对各个存储体目的地提供的请求保持组件540-0至540-k的独立的条目中。在实施例中,从装置300可以是包括多个存储体bank#0至bank#k的存储器设备,并且可以针对存储体bank#0至bank#k分别提供请求保持组件540-0至540-k。
tc设置组件530可以向分派了唯一优先级id的每个请求设置tc。在实施例中,由唯一的优先级id指示的优先等级越高,相应请求的tc可以被设置的值越小,以便以更短的延迟来处理更高的优先级请求。因此,每个请求的唯一优先级id、命令、地址、数据和tc值可以被存储在请求保持组件540的相应条目中。例如在请求被存储在请求保持组件430中之后的每个预设周期中,tc可以响应于时钟信号被向下计数。
调度器550可以包括多个分别联接到各个目的地的请求保持组件540-0至540-k的存储体调度器550-0至550-k。调度器550可以具有与图2中所示的调度器450基本相同的配置。
也就是,调度器550可以根据优先等级p_level1至p_levell对具有相同目的地地址的请求进行分组,并且将虚拟通道vch1至vchl分配给各个请求组。而且,对于每个请求组,调度器550可以基于等待通过各个虚拟通道vch1至vchl输出的前导请求的tc来选择任意一个请求,并将所选择的请求提供给从装置300。存储体调度器550-0至550-k中的每一个可以如参照图3所述的配置,但是本实施例不限于此。在存储体调度器550-x的配置类似于图3的存储体调度器450-x的实施例中,存储体调度器550-x的虚拟通道分配组件通过在相应的请求保持组件540-x中管理请求的存储、检索和移除来分配和管理存储体调度器550-x的虚拟队列。
图5a至图5d是用于描述请求虚拟化概念的示图,并示出关于一个请求组的虚拟队列的操作。
图5a至图5d中所示的说明性示例是基于以下假设,即主装置100的请求根据优先等级p_level1至p_leve13被分类成三组,并且通过各个虚拟通道vch1至vch3被传送到相同的目的地bank#0。优先等级p_level1是第一(最高)优先等级,优先等级p_level2是第二优先等级,优先等级p_level3是第三优先等级。
参照图5a,调度器450或550可以针对目的地bank#0对设置了唯一优先级id和tc的请求进行分类,使得具有第一优先等级p_level1的请求r11至r13可以根据请求到达仲裁组件220、220-1或220-2的顺序在第一虚拟队列vq_p1中等待。具有第二优先等级p_level2的请求r21至r23可以根据请求到达仲裁组件220、220-1或220-2的顺序在第二虚拟队列vq_p2中等待,并且具有第三优先等级p_level3的请求r31至r33可以根据请求到达仲裁组件220、220-1或220-2的顺序在第三虚拟队列vq_p3中等待。
调度器450或550的选择组件457可以比较各个虚拟队列vq_p1至vq_p3的前导请求r11、r21和r31的tc(分别为tc11、tc21和tc31),并且当tc11≤tc21≤tc31时,可以选择最接近到期时间(即最接近于零)的请求r11,并且将所选择的请求r11传输到目的地bank#0。
在这样的过程中,各个请求的tc被连续向下计数。在实施例中,当向下计数时,处于零的tc保持为零。
参照图5b,在(如划掉请求r11所指示的)第一优先等级的请求r11被传送到目的地bank#0之后,各个虚拟队列vq_p1至vq_p3的前导请求被改变为请求r12、r21和r31。如图5b所示,当满足tc12≤tc21≤tc31的关系时,选择组件457选择请求r12并将所选择的请求传送到目的地bank#0。
然后,各个请求的tc再次向下计数。如图5c所示,当满足(tc21≤tc31且tc21<tc13)的关系时,选择组件457选择请求r21。随后,在tc再次向下计数之后,如图5d所示,当满足(tc31<tc13且tc31<tc22)的关系时,选择组件457选择请求r31。
图6是示出根据实施例的数据处理设备的操作过程600的流程图。
在步骤s101中,当主装置100传输每个都包括根据其优先等级分派的请求id、命令、从地址(例如存储体地址)和数据的请求req时,在步骤s103中,仲裁组件220,220-1或220-2可以通过合并主标识符和请求id来生成唯一的优先级id。可以根据优先等级p_level1至p_levell来分派由主装置100传输的请求中包括的请求id。因此,由仲裁组件220、220-1或220-2生成的唯一的优先级id可以以能够识别请求的优先等级p_level1至p_levell的形式来生成。
仲裁组件220、220-1或220-2可以针对在步骤s105中被分派唯一优先级id的每个请求设置超时计数器(tc)。在实施例中,请求的优先等级越高,与该请求相关联的tc可以被设置的值越小,从而更高优先级的请求往往以更短的延迟被处理。
每个请求可以根据到达的顺序被存储在仲裁组件220、220-1或220-2内的请求保持组件430或540中。每个请求的唯一优先级id、命令、地址、数据和tc值可以被存储在请求保持组件430或540中。请求保持组件430或540可以被配置为fifo队列,并且被提供给多个从装置中的每一个或多个从装置的每个目的地,或者被提供给多个从装置或共同构成多个从装置的目的地。
例如,在请求被存储在请求保持组件430或540中之后的每个预设周期中,tc可以响应于时钟信号而被向下计数。
在步骤s107中,仲裁组件220、220-1或220-2可以根据优先等级p_level1至p_levell对具有相同目的地存储体地址的请求进行分组,并且在步骤s109中,在实施例中可以根据请求到达仲裁组件220、220-1或220-2的顺序来将属于每个请求组的请求作为链接列表来管理。
在步骤s111中,仲裁组件220、220-1或220-2可以针对每个目的地存储体地址配置与请求的优先等级p_level1至p_levell相对应的预定数量的虚拟通道vch1至vchl,并且将虚拟通道vch1至vchl分配给各个请求组。
然后,在步骤s113中,请求可以在虚拟队列中等待各个请求组的各个虚拟通道vch1至vchl,并且对于每个请求组,仲裁组件220、220-1或220-2可以在各个通道vch1至vchl的虚拟队列的引导请求之中,选择其tc最接近到期时间的请求,并将所选择的请求提供给从装置300。
在本实施例中,可以根据优先等级对主装置的请求进行分组,并且每个请求组可以等待被通过相应的虚拟通道输出。可以在多个虚拟通道中等待的前导请求之中,选择其tc最接近到期时间的请求,并将该请求传送到从装置的目的地。
也就是,当根据优先等级重新排序请求时,可以优先处理优先具有较高优先等级的请求。
另外,当具有不同优先等级的请求在多个虚拟通道的前端竞争输出时,可以考虑利用tc防止针对特定虚拟通道的队首(hol)阻塞。
图7是示出根据实施例的数据处理系统的配置图。
参照图7,数据处理系统1000可以包括多个计算框架20、管理接口30和用于它们之间的通信的网络40。例如,具有这种框架级架构的数据处理系统1000可以用于数据中心以处理大数据。
每个计算框架20可以与其他计算框架20组合以便实现一个计算系统。下文将描述计算框架20的特定的配置和操作。在实施例中,计算框架20可以是图1至图4所示的数据处理设备10。
管理接口30可以提供交互接口,使用户能够控制、操作或管理数据处理系统1000。管理接口30可以被实施为任意类型的计算装置,包括计算机、多处理器系统、服务器、框架安装服务器、板服务器、膝上型计算机、笔记本电脑、平板电脑、可穿戴计算系统、网络装置、上网装置、分布式计算系统、基于处理器的系统和/或消费电子装置。
在一些实施例中,数据处理系统1000可以被实施为具有可以由计算框架20执行的计算功能或可以由管理接口30执行的用户接口功能的分布式系统。在其他实施例中,数据处理系统1000可以由通过网络40分布的多计算系统来配置,并被实施为作为云操作的虚拟服务器。管理接口30可以包括处理器、i/o子系统、存储器、数据存储装置和通信电路。
网络40可以用作在计算框架和管理接口30之间和/或计算框架之间传输/接收数据的通道。网络40可以通过有线和/或无线网络来实施。例如,网络40可以通过有线或无线lan(局域网)、wan(广域网)、蜂窝网络和/或诸如因特网的可公开访问的全球网络来实施,或者包括网络。另外,网络40可以包括诸如辅助计算机、路由器和交换机的一个或多个辅助网络装置。进一步地,网络40可以包括基于诸如ccix(针对加速器的高速缓存一致性互连)和gen-z的接口标准的接口网络。
图8是根据实施例的计算框架的概念图。
参照图8,计算框架20可以包括各种类型的组件,即使组件的结构、形状和标题不受限制。例如,计算框架20可以包括多个抽屉21至29。抽屉21至29中的每一个可以包括多个板。
在各个实施例中,计算框架20可以通过适当数量的计算板compute、存储器板memory和/或互连板interconnect的结合来实施。在本实施例中,定义了计算框架20通过多个板的结合来实施。然而,可以替代地定义计算框架20以诸如抽屉、模块、托盘、板、机箱或单元的各种称谓来实施。计算框架20可以具有为了便于实施各个功能,对组件进行分类和区分的结构。计算框架20可以具有组件从顶部起被顺序地分类为互连板、计算板和存储器板的结构,但是本实施例不限于此。计算框架20和由计算框架20实施的计算系统可以被称为“框架级系统”或“分解系统”。存储器板可以被称为存储器系统。
在各个实施例中,计算系统可以由一个计算框架20来实施。替代地,计算系统可以由包括在两个或更多个计算框架中的所有组件来实施,由包括在两个或更多个计算框架中的一些组件的组合来实施,或者由包括在一个计算框架20中的一些组件来实施。
在各个实施例中,计算系统可以由包括在计算框架20中的适当数量的计算板、存储器板和/或互连板的组合来实施。例如,计算系统20a可以由两个计算板compute、三个存储器板memory和一个互连板interconnect来实施。再例如,计算系统20b可以由三个计算板compute、两个存储器板memory和一个互连板interconnect来实施。又例如,计算系统20c可以由一个计算板compute、四个存储器板memory和一个互连板interconnect来实施。
尽管图8示出计算框架20由适当数量的计算板、存储器板和/或互连板的组合来实施的情况,但是计算框架20可以包括诸如电力系统、冷却系统和i/o装置的附加组件,可以在典型的服务器等中检查这些组件。
图9是示出根据实施例的计算框架的配置图。
参照图9,计算框架20可以包括多个计算板2000、多个存储器板4000和互连板3000。多个计算板2000可以被称为集合计算板、集合计算系统等。类似地,多个存储器板4000可以被称为集合存储器板、集合存储器系统等。在本实施例中,定义了计算系统由多个板的组合来实施。然而,可以替代地定义计算系统由诸如抽屉、模块、托盘、板、机箱或单元的各种称谓来实施。
每个计算板2000可以包括诸如一个或多个处理器、处理/控制电路或cpu以及与可在硬件中运行的软件联接的处理元件的硬件。
每个存储器板4000可以包括各种类型的存储器,诸如多个易失性存储器和/或非易失性存储器。例如,多个存储器板4000可以包括多个dram(动态随机存取存储器)、闪速存储器、存储卡、hdd(硬盘驱动器)、ssd(固态驱动器)和/或其结合。
每个存储器板4000可以被包括在每个计算板2000中的一个或多个处理元件划分、分配或指定,然后使用。每个存储器板4000可以存储一个或多个可以由计算板2000初始化和/或执行的os(操作系统)。
互连板3000可以由随机通信电路、随机装置或其结合来实施,该互连板3000可以被包括在每个计算板2000中的一个或多个处理元件划分、分配或指定,然后使用。例如,互连板3000可以被实施为随机数量的网络接口端口、卡或交换机。互连板3000可以使用与一个或多个有线或无线通信技术相关的协议来执行通信。例如,互连板3000可以根据诸如pcie(高速外围组件互连)、qpi(快速路径互连)和以太网的协议来支持计算板2000和存储器板4000之间的通信。进一步地,互连板3000可以根据诸如ccix和gen-z的接口标准连接到计算板2000。
图10是示出根据实施例的计算板的配置图。
参照图10,计算板2000可以包括一个或多个cpu2100、一个或多个本地存储器2200以及i/o接口2300。
cpu2100可以划分、分配或指定要在图9所示的多个存储器板4000之中使用的一个或多个存储器板。cpu2100可以初始化一个或多个被划分、分配或指定的存储器板,并通过存储器板来执行数据读取操作、数据写入(或编程)操作等。
本地存储器2200可以存储cpu2100操作期间所需要的数据。在各个实施例中,计算板可以具有其中一个本地存储器2200与一个cpu2100一一对应的结构。
i/o接口2300可以支持cpu2100和存储器板4000之间通过图9的互连板3000的接口连接。i/o接口2300可以使用与一个或多个有线或无线通信技术相关的协议,从cpu2100向互连板3000输出tx数据,并从互连板3000向cpu2100输入rx数据。例如,i/o接口2300可以根据诸如pcie、qpi和以太网的协议来支持cpu2100和互连板3000之间的通信。进一步地,i/o接口2300可以根据诸如ccix和gen-z的接口标准来支持cpu2100和互连板3000之间的通信。
图11是示出根据实施例的存储器板的配置图。
参照图11,存储器板4000可以包括控制器4100和多个存储器组4200。存储器组4200可以包括一种或多种类型的存储器设备4200a、4200b和4200c。存储器设备4200a、4200b和4200c可以在控制器4100的控制下存储(或写入)数据或者输出(或读取)所存储的数据。多个存储器组4200可以包括第一存储器设备4200a、第二存储器设备4200b和第三存储器设备4200c。第一至第三存储器设备4200a至4200c可以具有相同的特性或具有不同的特性。在各个实施例中,第一至第三存储器设备4200a至4200c可以是在存储容量或延迟方面具有相同特性或不同特性的存储器设备。
虽然上面已经描述了各个实施例,但是本领域技术人员将理解的是,所描述的实施例仅为示例。因此,本文所描述的数据存储装置的操作方法不应基于所描述的实施例而被限制。
1.一种数据处理设备,包括:
主装置;
从装置;以及
控制器,通过以下步骤仲裁所述主装置和所述从装置之间的通信:
针对从所述主装置传输的请求中的每一个设置各个超时计数器,即tc,
将一个或多个虚拟通道分配给一个或多个请求组中的每一个,所述一个或多个虚拟通道分别对应于优先等级,
将请求与对应于所述请求的优先等级的虚拟通道相关联,
对于每个请求组,根据所述tc选择各个虚拟通道的前导请求之一,并将所选择的请求传输到所述从装置。
2.根据权利要求1所述的数据处理设备,其中所述主装置传输包括请求标识符,即请求id、命令、地址和数据的请求信息,根据相应的优先等级分派所述请求id,
其中所述控制器基于所述请求id和已传输所述请求的所述主装置的标识符来生成唯一的优先级id,以及
其中所述控制器包括存储包括所述唯一的优先级id和所述tc的请求信息的请求保持组件。
3.根据权利要求1所述的数据处理设备,其中所述控制器包括根据到达的顺序来存储所述请求的请求保持组件,并且根据所述到达的顺序将包括在相同请求组中的一个或多个请求的处理顺序作为链接列表来管理。
4.根据权利要求1所述的数据处理设备,其中所述从装置包括多个目的地,
其中所述控制器包括分别被提供给所述多个目的地并根据到达的顺序存储所述请求的多个请求保持组件。
5.根据权利要求1所述的数据处理设备,其中所述从装置包括多个目的地,
其中所述控制器包括被提供给所述多个目的地并根据到达的顺序存储所述请求的公共请求保持组件。
6.根据权利要求1所述的数据处理设备,其中所述从装置包括多个目的地,
其中所述控制器根据所述目的地将所述请求分类成所述请求组,并根据所述优先等级对针对每个所述目的地的所述请求进行分组。
7.根据权利要求1所述的数据处理设备,其中所述从装置包括包含多个存储体的存储器装置,
其中所述控制器根据所述存储体地址将所述请求分类成所述请求组,并根据所述优先等级对针对每个所述存储体的所述请求进行分组。
8.一种数据处理设备,包括:
主装置;
从装置,包括多个存储体;以及
控制器,仲裁所述主装置和所述从装置之间的通信,
其中所述控制器包括:
超时计数器即tc设置组件,根据从所述主装置传输的请求的各个优先等级针对所述请求设置各个tc;
分组组件,根据所述请求的各个优先等级将每个请求组中的所述请求分组到所述请求组的虚拟通道中;
虚拟通道分配组件,将一个或多个虚拟通道分配给每个请求组;以及
选择组件,针对每个所述请求组,基于所述请求组的虚拟通道的前导请求的tc来选择请求并输出所选择的请求。
9.根据权利要求8所述的数据处理设备,其中由所述主装置传输的所述请求包括根据相应的优先等级和所述存储体的地址被分派的请求标识符,即请求id,
其中所述控制器进一步包括id管理组件,根据所述请求id和所述主装置的标识符来生成唯一的优先级id,
其中所述分组组件根据所述唯一的优先级id对每个所述请求组中的请求进行分组。
10.根据权利要求8所述的数据处理设备,其中所述控制器进一步包括被提供给每个所述存储体并根据到达的顺序存储所述请求的请求保持组件。
11.根据权利要求8所述的数据处理设备,其中所述控制器进一步包括被共同提供给所述多个存储体并根据到达的顺序存储所述请求的请求保持组件。
12.根据权利要求8所述的数据处理设备,其中所述选择组件在所述前导请求之中,选择其tc最接近到期时间的请求。
13.一种数据处理设备的操作方法,包括主装置、具有多个目的地的从装置以及仲裁所述主装置和所述从装置之间的通信的控制器,所述操作方法包括以下步骤:
当从所述主装置接收到待传输到所述多个目的地中的任意一个的请求时,所述控制器针对所述请求设置各个超时计数器,即tc;
所述控制器通过根据所述请求的各个目的地对所述请求进行分类来生成请求组;
所述控制器根据所述请求的各个优先等级,针对每个请求组将所述请求组中的请求分配给所述请求组的多个虚拟通道中的一个;以及
所述控制器根据所述请求组的虚拟通道的前导请求的所述tc,从每个请求组中选择任意一个请求,并将所选择的请求传输到所述从装置。
14.根据权利要求13所述的操作方法,
其中从所述主装置接收的所述请求分别包括请求标识符,即请求id、命令、地址和数据,根据所述请求的相应优先等级分派所述请求id,
其中所述控制器包括请求保持组件,以及
其中所述操作方法进一步包括以下步骤:
所述控制器基于所述请求id和传输所述请求的所述主装置的标识符,来生成唯一的优先级id;以及
所述控制器将包括所述唯一的优先级id和所述tc的请求信息存储在所述请求保持组件中。
15.根据权利要求13所述的操作方法,其中所述控制器包括根据到达的顺序存储所述请求的请求保持组件,以及
其中所述操作方法进一步包括所述控制器根据所述到达的顺序,将包括在相同请求组中的一个或多个请求作为链接列表来管理的步骤。
16.根据权利要求13所述的操作方法,其中所述从装置包括多个目的地,以及
其中所述操作方法进一步包括以下步骤:
所述控制器根据所述目的地,对所述请求进行分类;以及
所述控制器根据所述优先等级,通过将针对每个所述目的地的所述请求进行分组和分类来生成请求组。
技术总结