CN107273092B - 一种优化数据流架构访存延迟的方法及其系统 - Google Patents
一种优化数据流架构访存延迟的方法及其系统 Download PDFInfo
- Publication number
- CN107273092B CN107273092B CN201710304654.7A CN201710304654A CN107273092B CN 107273092 B CN107273092 B CN 107273092B CN 201710304654 A CN201710304654 A CN 201710304654A CN 107273092 B CN107273092 B CN 107273092B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- downstream
- memory access
- downstream node
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种优化数据流架构的访存延迟的方法及其系统。传统的数据流架构为了保证上下文数据的正确流动,上游节点和下游节点之间的数据交互采用握手的方式进行通信协调。下游的数据源指令槽空闲之后,会向上游节点发送“Ready”状态(表明下游节点可以接收新的数据),另一个方面,上游节点只有当收到下游节点的“Ready”确认之后,才能向下游发送数据。对于访存指令来说,尤其是Load指令,在这种协议框架下的延迟格外长。本发明针对传统数据流架构的数据传输特点,通过在数据流架构的每个节点增加针对访存延迟的预测、训练、和令牌机制,有效地优化访存指令的传输延迟,从而提高整个数据流架构的执行效率和数据吞吐率。
Description
技术领域
本发明涉及数据流架构当中访存指令的执行方式,特别涉及降低访存指令延迟的方法和系统。
背景技术
随着计算机体系结构的发展,领域专用的计算机体系结构成为主要发展趋势。在面向特定应用时,专用型结构利用应用特征对结构进行相应的优化,从而更好地发挥出硬件的计算性能。在高性能计算领域,数据流计算是领域专用计算结构的一个重要分支,数据流计算表现出了较好的性能和适用性。数据流指令执行的基本原则是:所有的源操作数都准备好了,并且下游节点有空闲的数据槽可以接收数据,则该指令即可执行。在数据流计算模式中,源指令(生产者)执行的结果不会写入共享寄存器或共享缓存,而是直接传递给目的指令(消费者)。
针对传统数据流架构当中的访存指令,尤其是Load指令,数据传递方式如图1所示。在这个例子当中,PE3节点103当中的一条Load指令,要从SPM节点105取出Load数据,发送给PE9节点101的源操作数槽。要想完成这样一条指令,需要经历3个步骤:
在这个过程中,PE3节点103是上游节点,PE9节点101是下游节点。
步骤101:下游节点101的源操作数槽(source operand)空闲之后,通过网络102向上游节点103发送“Ready”消息;
步骤102:上游节点103通过网络104向片上缓存SPM节点105发出数据请求;
步骤103:片上缓存SPM节点105通过网络106把取出的Load数据发送给下游节点101;
从时间轴107可以看出,最差情况下,三段步骤的时间是完全串行的。这种情况下Load指令的延迟完全取决于上游节点、下游节点以及片上缓存SPM的相对距离和位置,没有任何可以优化的余地。
发明内容
针对现有技术中数据访存指令的数据传输延迟较大的问题,本发明提出了一套优化和降低Load指令传输延迟的方法和系统,具体技术方案如下:
一种优化数据流架构访存延迟的方法,包括以下步骤:
S1:上游节点对下游节点反馈空闲状态的时间进行预测,并将得到的预测时间与一阈值进行比较;当所述预测时间小于所述阈值时,执行推测模式进行数据访存;当所述预测时间大于所述阈值时,执行三段式握手模式进行数据访存;
S2:所述推测模式的执行步骤为:所述上游节点向片上缓存节点发送带有令牌信息的数据包,并同时向下游节点发送令牌信息;所述片上缓存节点将所述带有令牌信息的数据包发送给下游节点;所述下游节点将从所述片上缓存节点中收到的数据包中的令牌信息与从所述上游节点收到的令牌信息进行比较;如果两个令牌信息的比较结果一致且所述下游节点的指令槽为空闲状态,则所述下游节点向所述上游节点发送确认信息;
S3:如果两个令牌信息的比较结果不一致或者所述下游节点的指令槽不为空闲状态,则所述下游节点丢弃来自片上缓存节点的数据包和来自上游节点的令牌信息,不向所述上游节点反馈任何信息;待所述下游节点的指令槽为空闲状态时,执行三段式握手模式进行数据访存。
根据本发明提出的优化数据流架构访存延迟的方法,其中,每个数据访存指令需要单独计算预测时间。
根据本发明提出的优化数据流架构访存延迟的方法,其中,所述阈值是通过软件profiling的方式得到的。
本发明同时还提出一种优化数据流架构访存延迟的系统,在数据流架构的每个节点上包括以下部件:
访存计数器:用于计算当上游节点发出数据访存指令时,从下游节点的源操作数空闲状态到上游节点的目的操作数空闲状态之间的时间差;
阈值存储器,用于保存一预设的时间阈值;
预测位,与所述访存计数器和所述阈值存储器相连,根据所述时间差和所述时间阈值的比较结果来确定执行推测模式或三段式握手模式进行数据访存;
令牌管理部件,与所述预测位相连,当所述预测位确定执行推测模式时,所述令牌管理部件用于分别向上游节点和下游节点发送令牌信息;
令牌确认部件,与所述令牌管理部件相连,用于将所述下游节点接收到的令牌信息与来自片上缓存节点的访存数据包中包含的令牌信息进行比较,如果两个令牌信息的比较结果一致且所述下游节点的指令槽为空闲状态,则所述下游节点向所述上游节点发送确认信息;如果两个令牌信息的比较结果不一致或者所述下游节点的指令槽不为空闲状态,则所述下游节点丢弃来自片上缓存节点的数据包和来自上游节点的令牌信息,不向所述上游节点反馈任何信息;待所述下游节点的指令槽为空闲状态时,执行三段式握手模式进行数据访存。
根据本发明提出的优化数据流架构访存延迟的系统,其中,每个数据访存指令需要单独计算预测时间。
根据本发明提出的优化数据流架构访存延迟的系统,其中,所述阈值是通过软件profiling的方式得到的。
与现有技术相比,本发明针对传统数据流架构的数据传输特点,通过在数据流架构的每个节点增加针对访存延迟的预测、训练、和令牌机制,有效地优化访存指令的传输延迟,从而提高整个数据流架构的执行效率和数据吞吐率。
附图说明
图1为传统数据流架构当中Load指令的数据传递过程图;
图2为本发明的数据流架构当中Load指令的数据传递过程图;
图3为本发明的数据流架构的节点当中新增部件的结构示意图;
图4为本发明的实施例流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出的优化方法主要包括3个方面,分别是预测、令牌管理、推测执行和令牌确认。具体步骤和结构如图2所示:
预测和令牌管理:在数据流架构的每个执行节点当中设置预测部件,为节点当中的每个指令槽增加预测位214、令牌管理部件207和令牌确认部件208。针对访存指令(Load指令)等待下游节点反馈“Ready”状态的时间进行预测和训练;训练结果会得到一个阈值N。如果一条Load指令等待下游节点“Ready”的时间小于阈值N,认为是“Taken”的结果,该结果会保存在指令槽的预测位214当中;如果一条Load指令等待下游节点“Ready”的时间大于阈值N,认为是“Non-Taken”的结果,该结果会保存在指令槽的预测位214当中。
推测执行:这个步骤是基于预测的结果。如果一条Load指令等待下游的时间总是小于阈值,那么预测位214保存的结果是“Taken”,那么该指令不用等待下游节点反馈的“Ready”状态,就可以同时向下游节点201和片上缓存SPM节点205发送带有令牌的消息。其中,通过网络209从上游节点203发送给下游节点201的消息,是向该下游节点发送令牌信息。通过网络211从上游节点203发给SPM节点205的消息,是带有令牌信息的取Load数据请求的数据包。当SPM节点205把Load数据取出后,通过网络212向下游节点发送带有令牌信息的Load数据。
令牌确认:当下游节点201收到来自上游节点203的令牌消息和来自SPM节点205的Load数据之后,会把两者之间的令牌进行比较,如果令牌一致并且此时下游节点201的指令源数据槽也空闲的话,该Load数据接收成功。下游节点201通过网络210向上游节点203发送“推测执行确认”消息,表明本次推测执行成功。
也需要考虑推测执行不成功的情况,也就是当下游节点201收到来自上游节点203的令牌消息和来自SPM节点205的Load数据之后,发现自己的指令源数据槽还没有空闲,那么此时丢弃来自SPM节点205的Load数据和来自上游节点203的令牌消息,不向上游节点反馈任何确认消息。本次推测执行失败。等到该下游节点指令源数据槽空闲之后,还是按照传统数据流结构当中的方式传递Load数据。并且上游节点203根据实际的执行情况调整它内部的预测部件当中的预测值。
从时间轴213可以看出,推测执行成功的话,可以把原本3段串行的步骤变成2段并行的步骤,大大缩短了访存(load)指令的数据传输延迟。
请继续参阅图3,示出了本发明的优化系统中数据流架构每个节点需要增加的部件,具体包括:
(1)Load计数器301:用于表示这条Load指令从所有的源操作数都Ready到目的操作数“Ready”之间的时间差;其中,目的操作数“Ready”是来自下游节点的反馈;每条Load指令需要单独设置。
(2)预测位302:由2个比特位组成,2’b11表示taken,2’b00表示non-taken;中间的2’b10和2’b01属于过渡状态;每条Load指令需要单独设置。
(3)阈值存储寄存器303:每个节点设置一个;这个阈值的数值通过软件profiling的方式得到。
(4)令牌管理部件304:每次有Load指令需要采用推测执行方式的时候,该部件负责发放令牌;在数据流架构当中,令牌由两部分组成,即节点号和令牌编号;针对每个节点设置。
(5)令牌确认部件305:每次当节点接收到来自片上缓存节点的Load数据包和来自上游节点的令牌数据包之后,需要在节点内针对两个令牌进行比较,如果一致并且下游节点的源操作数指令槽空闲的话,表示推测执行成功;如果令牌不一致或者下游节点的源操作数指令槽不空闲的话,表示推测执行失败。
当Load计数器的数值大于阈值存储寄存器时,预测位加1;当Load计数器的数值小于阈值存储寄存器时,预测位减1。针对预测位的加法和减法都采用饱和计算的方式。
当一条Load指令执行的时候,根据预测位的数值决定其执行流程。
如图4所示,上游节点401当中,一条Load指令的目标操作数字段408,要把Load数据发送到下游节点409当中指令槽421的源操作数字段410。
如果上游节点401的Load指令对应的预测位403的数值为2’b11,表示要针对这条Load指令采用推测执行的方式。由令牌管理部件405产生本次Load指令对应的令牌。
上游节点401针对Load指令产生数据包的时候会加入令牌管理部件405产生的令牌,通过网络414向SPM节点411发送带有令牌消息的数据包;SPM节点411接收到带有令牌的数据包之后,会按照正常的步骤取出Load数据,然后把Load数据和对应的令牌通过网络412发送给下游节点409。
下游节点409可能会先收到通过网络412传递的来自SPM节点411的带有令牌的数据包,也可能先收到通过网络415传递的来自上游节点401的令牌数据包。当两个数据包都收到之后,下游节点409会针对通过令牌确认部件416对两个数据包当中的令牌进行比较确认。
在下游节点409当中,如果令牌比对通过,同时对应Load指令的目标指令槽421也“Ready”的话,该指令槽421可以接收来自SPM节点411的Load数据,本次推测执行成功;如果对应Load指令的目标指令槽421没有“Ready”的话,丢弃来自SPM节点411的Load数据,本次推测执行失败;
在下游节点409当中,如果Load指令的目标指令槽421成功接收了推测执行的Load数据,下游节点409需要向上游节点401发送确认消息422,表示本次推测执行成功。如果在下游节点409当中,Load指令的目标指令槽421没有成功接收推测执行的Load数据,下游节点409不需要向上游节点401发送任何消息。等到该指令槽421“Ready”之后,采用传统的执行方式向上游节点401发送“Ready”消息,上游节点401等到指令槽的源操作都准备好之后,向SPM节点411发送Load请求,SPM节点411把Load数据发送给下游节点409。
在上游节点401当中,如果收到了来自下游节点409的推测执行成功的确认消息422,更新预测位403,进行饱和加1的操作;如果上游节点401发出了推测执行的消息但是没有收到来自下游节点的推测执行成功的确认消息反而收到的是“Ready”消息,上游节点401同样需要更新预测位403,进行饱和减1的操作。
另外,在上游节点401当中,如果Load指令对应的预测位403的数值是2’b10,2’b01,2’b00的话,表示该Load指令不采用推测执行的方式,而是采用传统的Load数据传递方式。即三段式握手模式,如图1所示。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (6)
1.一种优化数据流架构访存延迟的方法,其特征在于,包括以下步骤:
S1:上游节点对下游节点反馈空闲状态的时间进行预测,并将得到的预测时间与一阈值进行比较;当所述预测时间小于所述阈值时,执行推测模式进行数据访存;当所述预测时间大于所述阈值时,执行三段式握手模式进行数据访存;
S2:所述推测模式的执行步骤为:所述上游节点向片上缓存节点发送带有令牌信息的数据包,并同时向下游节点发送令牌信息;所述片上缓存节点将所述带有令牌信息的数据包发送给下游节点;所述下游节点将从所述片上缓存节点中收到的数据包中的令牌信息与从所述上游节点收到的令牌信息进行比较;如果两个令牌信息的比较结果一致且所述下游节点的指令槽为空闲状态,则所述下游节点向所述上游节点发送确认信息;
S3:如果两个令牌信息的比较结果不一致或者所述下游节点的指令槽不为空闲状态,则所述下游节点丢弃来自片上缓存节点的数据包和来自上游节点的令牌信息,不向所述上游节点反馈任何信息;待所述下游节点的指令槽为空闲状态时,执行三段式握手模式进行数据访存。
2.根据权利要求1所述的优化数据流架构访存延迟的方法,其特征在于,每个数据访存指令需要单独计算预测时间。
3.根据权利要求1所述的优化数据流架构访存延迟的方法,其特征在于,所述阈值是通过软件profiling的方式得到的。
4.一种优化数据流架构访存延迟的系统,其特征在于,在数据流架构的每个节点上包括以下部件:
访存计数器:用于计算当上游节点发出数据访存指令时,从下游节点的源操作数空闲状态到上游节点的目的操作数空闲状态之间的时间差;
阈值存储器,用于保存一预设的时间阈值;
预测位,与所述访存计数器和所述阈值存储器相连,根据所述时间差和所述时间阈值的比较结果来确定执行推测模式或三段式握手模式进行数据访存;
令牌管理部件,与所述预测位相连,当所述预测位确定执行推测模式时,所述令牌管理部件用于分别向上游节点和下游节点发送令牌信息;
令牌确认部件,与所述令牌管理部件相连,用于将所述下游节点接收到的令牌信息与来自片上缓存节点的访存数据包中包含的令牌信息进行比较,如果两个令牌信息的比较结果一致且所述下游节点的指令槽为空闲状态,则所述下游节点向所述上游节点发送确认信息;如果两个令牌信息的比较结果不一致或者所述下游节点的指令槽不为空闲状态,则所述下游节点丢弃来自片上缓存节点的数据包和来自上游节点的令牌信息,不向所述上游节点反馈任何信息;待所述下游节点的指令槽为空闲状态时,执行三段式握手模式进行数据访存。
5.根据权利要求4所述的优化数据流架构访存延迟的系统,其特征在于,每个数据访存指令需要单独计算预测时间。
6.根据权利要求4所述的优化数据流架构访存延迟的系统,其特征在于,所述阈值是通过软件profiling的方式得到的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710304654.7A CN107273092B (zh) | 2017-05-03 | 2017-05-03 | 一种优化数据流架构访存延迟的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710304654.7A CN107273092B (zh) | 2017-05-03 | 2017-05-03 | 一种优化数据流架构访存延迟的方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107273092A CN107273092A (zh) | 2017-10-20 |
CN107273092B true CN107273092B (zh) | 2020-09-01 |
Family
ID=60073692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710304654.7A Active CN107273092B (zh) | 2017-05-03 | 2017-05-03 | 一种优化数据流架构访存延迟的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107273092B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509365B (zh) * | 2018-01-23 | 2020-08-04 | 东莞市爱协生智能科技有限公司 | 一种dbi的数据传输方法及系统 |
CN109189477B (zh) * | 2018-06-27 | 2021-09-28 | 北京中科睿芯科技集团有限公司 | 一种面向多上下文粗粒度数据流结构的指令发射控制方法 |
CN110209629B (zh) * | 2019-07-15 | 2023-12-15 | 北京一流科技有限公司 | 协处理器的数据处理路径中的数据流动加速装置及其方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103270471A (zh) * | 2010-12-21 | 2013-08-28 | 高通股份有限公司 | 通过调度资源集转变来使便携式计算设备的处理器应用状态之间的资源等待时间最小化 |
US8817031B2 (en) * | 2009-10-02 | 2014-08-26 | Nvidia Corporation | Distributed stream output in a parallel processing unit |
-
2017
- 2017-05-03 CN CN201710304654.7A patent/CN107273092B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8817031B2 (en) * | 2009-10-02 | 2014-08-26 | Nvidia Corporation | Distributed stream output in a parallel processing unit |
CN103270471A (zh) * | 2010-12-21 | 2013-08-28 | 高通股份有限公司 | 通过调度资源集转变来使便携式计算设备的处理器应用状态之间的资源等待时间最小化 |
Non-Patent Citations (2)
Title |
---|
A Scratch-Pad Memory Aware Dynamic Loop Scheduling Algorithm;Ozcan Ozturk等;《9th International Symposium on Quality Electronic Design》;20081231;全文 * |
层次化共享多通道便签存储器的嵌入式多核体系;刘彩霞等;《计算机辅助设计与图形学学报》;20100831;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107273092A (zh) | 2017-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10887238B2 (en) | High performance, scalable multi chip interconnect | |
US10659254B2 (en) | Access node integrated circuit for data centers which includes a networking unit, a plurality of host units, processing clusters, a data network fabric, and a control network fabric | |
US20210406027A1 (en) | Advanced processor architecture | |
US7873817B1 (en) | High speed multi-threaded reduced instruction set computer (RISC) processor with hardware-implemented thread scheduler | |
JP3789454B2 (ja) | 暗号コプロセッサを有するストリームプロセッサ | |
US8681819B2 (en) | Programmable multifield parser packet | |
US8473567B2 (en) | Generating a packet including multiple operation codes | |
US20170093986A1 (en) | Data-plane stateful processing units in packet processing pipelines | |
CN107273092B (zh) | 一种优化数据流架构访存延迟的方法及其系统 | |
US20200106828A1 (en) | Parallel Computation Network Device | |
US8473818B2 (en) | Reliable communications in on-chip networks | |
US11706163B2 (en) | Accelerating distributed reinforcement learning with in-switch computing | |
CN105393240A (zh) | 具有辅助异步向量处理器的异步处理器的方法和装置 | |
US6920562B1 (en) | Tightly coupled software protocol decode with hardware data encryption | |
KR20040010789A (ko) | 데이터 룩업을 실행하는 방법 및 컴퓨터 판독가능 매체 및 장치 | |
CN113094309A (zh) | 一种数据位宽转换方法和装置 | |
CN109379303A (zh) | 基于提升万兆以太网性能的并行化处理框架系统和方法 | |
CN113411380B (zh) | 基于fpga可编程会话表的处理方法、逻辑电路和设备 | |
US20230127722A1 (en) | Programmable transport protocol architecture | |
CN110535847B (zh) | 网络处理器及网络数据的入栈处理方法 | |
CN109617833A (zh) | 多线程用户态网络协议栈系统的nat数据审计方法和系统 | |
CN109743350B (zh) | 一种科学计算应用影像区交换通信模式的卸载实现方法 | |
Rashti et al. | A speculative and adaptive MPI rendezvous protocol over RDMA-enabled interconnects | |
JP5533538B2 (ja) | 情報処理装置、エミュレーション処理プログラム及びエミュレーション処理方法 | |
Small et al. | Near-optimal Rendezvous protocols for RDMA-enabled clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 100094 room 135, 1st floor, building 15, Chuangke Town, Wenquan Town, Haidian District, Beijing Patentee after: Beijing Zhongke Ruixin Technology Group Co.,Ltd. Address before: 1 wensong Road, Zhongguancun environmental protection park, Beiqing Road, Haidian District, Beijing 100094 Patentee before: SMARTCORE (BEIJING) Co.,Ltd. |
|
CP03 | Change of name, title or address |