《指令管理方法及装置、指令管理系统、运算核心.pdf》由会员分享,可在线阅读,更多相关《指令管理方法及装置、指令管理系统、运算核心.pdf(28页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103377085 A (43)申请公布日 2013.10.30 CN 103377085 A *CN103377085A* (21)申请号 201210107228.1 (22)申请日 2012.04.12 G06F 9/50(2006.01) (71)申请人 无锡江南计算技术研究所 地址 214083 江苏省无锡市滨湖区军东新村 030 号 (72)发明人 高剑刚 李宏亮 郑方 许勇 卢宏生 任秀江 高红光 (74)专利代理机构 北京集佳知识产权代理有限 公司 11227 代理人 骆苏华 (54) 发明名称 指令管理方法及装置、 指令管理系统、 运算核 心 (57。
2、) 摘要 一种指令管理方法及装置、 指令管理系统和 一种运算核心, 所述指令管理方法包括 : 按照程 序的执行顺序将所述程序划分为指令块 ; 按照执 行顺序发送指令块至至少一个运算核心。本发明 的技术方案有效的减少了运算核心的指令脱靶和 等待延迟, 提高了运算核心的计算效率。 (51)Int.Cl. 权利要求书 3 页 说明书 19 页 附图 5 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书19页 附图5页 (10)申请公布号 CN 103377085 A CN 103377085 A *CN103377085A* 1/3 页 2 1. 一种指令管理方。
3、法, 其特征在于, 包括 : 按照程序的执行顺序将所述程序划分为指令块 ; 按照执行顺序发送指令块至至少一个运算核心。 2. 如权利要求 1 所述的指令管理方法, 其特征在于, 所述运算核心包括接收并储存所 述指令块的指令存储单元和运行所述指令存储单元储存的指令块的运算单元, 所述指令块 所占的空间小于或等于所述指令存储单元的存储空间。 3. 如权利要求 1 所述的指令管理方法, 其特征在于, 所述发送指令块包括按照约定粒 度发送该指令块的指令, 所述约定粒度为每次预送的指令的数量。 4. 如权利要求 1 所述的指令管理方法, 其特征在于, 还包括 : 在发送指令块前, 向各运 算核心发送预送。
4、查询请求, 基于各运算核心对所述预送查询请求做出的响应发送该指令块 中的指令, 所述预送查询请求包含预送的指令的信息。 5. 如权利要求 4 所述的指令管理方法, 其特征在于, 所述运算核心对所述预送查询请 求做出的响应包括 : 指令接收响应、 指令放弃响应和指令冲突响应 ; 所述基于各运算核心 对所述预送查询请求做出的响应发送该指令块中的指令包括 : 若所有运算核心做出的响应不包括指令冲突响应, 则向发出接收指令响应的运算核心 发送所述预送的指令 ; 若所有运算核心做出的响应仅包括指令放弃响应, 则放弃向各运算核心发送所述预送 的指令 ; 若所有运算核心做出的响应包括指令冲突响应, 则等待做。
5、出指令冲突响应的运算核心 再次做出响应, 直至所有运算核心做出的响应不包括指令冲突响应。 6. 如权利要求 4 所述的指令管理方法, 其特征在于, 所述运算核心对所述预送查询请 求做出的响应包括 : 即时接收响应、 延迟接收响应、 指令放弃响应和指令冲突响应 ; 所述基 于各运算核心对所述预送查询请求做出的响应发送该指令块中的指令包括 : 若所有运算核心做出的响应不包括指令冲突响应和延迟接收响应, 则向发出即时接收 响应的运算核心发送所述预送的指令 ; 若所有运算核心做出的响应仅包括指令放弃响应, 则放弃向各运算核心发送所述预送 的指令 ; 若所有运算核心做出的响应包括指令冲突响应和 / 或延。
6、迟接收响应, 则等待做出指令 冲突响应的运算核心再次做出响应, 以及等待做出延迟接收响应的运算核心做出即时接收 响应, 直至所有运算核心做出的响应不包括指令冲突响应和延迟接收响应。 7. 如权利要求 4 所述的指令管理方法, 其特征在于, 所述指令块存储在指令存储器中, 所述基于所述运算核心对所述预送查询请求做出的响应发送该指令块中的指令包括 : 基于 所述运算核心对所述预送查询请求做出的响应控制指令存储器向运算核心发送该指令块 中的指令。 8. 如权利要求 1 所述的指令管理方法, 其特征在于, 还包括 : 获取所述运算核心发出的 停止响应后, 停止向全部运算核心发送指令块。 9. 如权利要。
7、求 8 所述的指令管理方法, 其特征在于, 还包括 : 获取所述运算核心发出的 停止响应后, 再次获取该运算核心发出的重新接收响应, 并重新向全部运算核心发送指令 块。 权 利 要 求 书 CN 103377085 A 2 2/3 页 3 10. 如权利要求 1 所述的指令管理方法, 其特征在于, 还包括将所述程序的执行顺序保 存在所述运算核心中。 11. 如权利要求 1 所述的指令管理方法, 其特征在于, 通过广播或多播的方式向所述运 算核心发送所述指令块。 12. 一种指令管理装置, 其特征在于, 包括 : 反馈单元, 用以发出指令块发送信号, 所述指令块按照程序的执行顺序将所述程序划 分。
8、得到。 13. 如权利要求 12 所述的指令管理装置, 其特征在于, 还包括 : 预送查询单元, 用以在发送指令块的指令前, 向各运算核心发送预送查询请求, 所述预 送查询请求包含预送的指令的信息 ; 所述反馈单元还用以基于各运算核心对所述预送查询请求做出的响应, 发出发送指令 消息。 14. 如权利要求 13 所述的指令管理装置, 其特征在于, 还包括指令存储器, 用以存储所 述指令块, 所述指令存储器从所述反馈单元获取所述发送指令消息后, 按照执行顺序发送 指令块至至少一个运算核心。 15. 如权利要求 14 所述的指令管理装置, 其特征在于, 所述指令存储器按照约定粒度 向所述运算核心发。
9、送该指令块的指令, 所述约定粒度为每次预送的指令的数量。 16. 如权利要求 15 所述的指令管理装置, 其特征在于, 所述指令存储器通过广播或多 播的方式向所述运算核心发送所述指令块的指令。 17. 如权利要求 13 所述的指令管理装置, 其特征在于, 若所有运算核心做出的响应不 包括指令冲突响应, 则所述反馈单元做出向发出接收指令响应的运算核心发送所述预送的 指令的反馈 ; 若所有运算核心做出的响应包括指令冲突响应, 则所述反馈单元做出等待指 令冲突响应的运算核心再次做出响应, 直至所有运算核心做出的响应不包括指令冲突响应 的反馈。 18. 如权利要求 13 所述的指令管理装置, 其特征在。
10、于, 若所有运算核心做出的响应不 包括指令冲突响应和延迟接收响应, 则所述反馈单元做出向发出即时接收响应的运算核心 发送所述预送的指令的反馈 ; 若所有运算核心做出的响应包括指令冲突响应和 / 或延迟接 收响应, 则所述反馈单元做出等待做出指令冲突响应的运算核心再次做出响应, 以及等待 做出延迟接收响应的运算核心做出即时接收响应, 直至所有运算核心做出的响应不包括指 令冲突响应和延迟接收响应的反馈。 19. 如权利要求 12 所述的指令管理装置, 其特征在于, 还包括划块单元, 用以按照程序 的执行顺序将所述程序划分为所述指令块。 20. 如权利要求 12 所述的指令管理装置, 其特征在于, 。
11、所述反馈单元还用以在获取所 述运算核心发出的停止响应后, 停止发出所述指令块发送信号。 21. 如权利要求 20 所述的指令管理装置, 其特征在于, 所述反馈单元还用以在获取所 述运算核心发出的停止响应后, 再次获取该运算核心发出的重新接收响应后, 重新发出所 述指令块发送信号。 22. 一种运算核心, 其特征在于, 包括 : 指令存储单元, 用以接收并储存指令块的指令, 所述指令块为预送的 ; 权 利 要 求 书 CN 103377085 A 3 3/3 页 4 运算单元, 用以运行所述指令存储单元储存的指令。 23. 如权利要求 22 所述的运算核心, 其特征在于, 还包括 : 指令传输处。
12、理单元, 用以基于当前运行的指令块、 所述指令存储单元中存储的指令块 和权利要求 13 所述的指令管理装置发出的预送查询请求, 做出对所述预送查询请求的响 应。 24. 如权利要求 23 所述的运算核心, 其特征在于, 若预送的指令覆盖所述运算核心正 在运行的指令和 / 或覆盖已经存储但还未执行的指令, 则该运算核心的指令传输处理单元 做出指令冲突响应 ; 若预送的指令为所述运算核心需要的指令, 则该运算核心的指令传输 处理单元做出指令接收响应 ; 若预送的指令在所述运算核心中已经存储, 则该运算核心的 指令传输处理单元做出指令放弃响应。 25. 如权利要求 23 所述的运算核心, 其特征在于。
13、, 若预送的指令为所述运算核心的运 算单元需要的指令且该运算核心的指令存储单元具有足够的存储空间存储所述预送的指 令, 则该运算核心的指令传输处理单元做出即时接收响应 ; 若预送的指令为所述运算核心 的运算单元需要的指令但该运算核心的指令存储单元没有足够的存储空间存储所述预送 的指令, 则该运算核心的指令传输处理单元做出延迟接收响应。 26. 如权利要求 23 所述的运算核心, 其特征在于, 所述指令传输处理单元发出所述延 迟接收响应后, 经过延迟时间, 再发出即时接收响应。 27. 如权利要求 24 或 25 所述的运算核心, 其特征在于, 所述指令传输处理单元发出指 令冲突响应后, 在冲突。
14、解除后, 再次做出响应。 28. 如权利要求 27 所述的运算核心, 其特征在于, 所述冲突包括所述预送的指令覆盖 所述运算核心的运算单元正在运行的指令和 / 或覆盖已经存储但还未执行的指令。 29. 如权利要求 22 所述的运算核心, 其特征在于, 所述指令存储单元还用以发出停止 响应, 所述指令存储单元发出所述停止响应后, 停止接收预送的指令块。 30. 如权利要求 22 所述的运算核心, 其特征在于, 所述指令存储单元还用以在发出停 止响应后, 再次发送重新接收响应, 所述指令存储单元发出所述重新接收响应后, 重新接收 预送的指令块。 31. 如权利要求 22 所述的运算核心, 其特征在。
15、于, 所述指令存储单元还用以保存所述 指令块的执行顺序。 32.如权利要求22所述的运算核心, 其特征在于, 还包括权利要求12至21任一项所述 的指令管理装置。 33. 一种指令管理系统, 其特征在于, 包括 : 权利要求 12 至 21 任一项所述的指令管理装置 ; 权利要求 22 至 31 任一项所述的运算核心。 34. 一种指令管理系统, 其特征在于, 包括 : 权利要求 22 至 31 任一项所述的运算核心 ; 权利要求 32 所述的运算核心。 权 利 要 求 书 CN 103377085 A 4 1/19 页 5 指令管理方法及装置、 指令管理系统、 运算核心 技术领域 0001 。
16、本发明涉及指令管理技术领域, 尤其是一种指令管理方法及装置、 指令管理系统 和一种运算核心。 背景技术 0002 在通用处理器中, 通常采用分级的指令存储结构, 也就是, 指令存储在不同级别的 存储介质中。运算核心 ( 处理器的组成器件, 每个运算核心可以看成是一个小的处理器 ) 在运行时从本地存储器中获得指令, 由于运算核心本地的存储器容量有限, 容易产生取指 失败的情况, 也就是说, 若运算核心中未存储将要运行的指令, 运算核心需要从上一级指令 存储器获得指令后才能继续运行, 取指失败也称为指令脱靶。在采用分级的指令存储结构 情况下, 从上一级指令存储器中获得指令会耗费大量的时间, 若频繁。
17、的发生取指失败, 会增 加指令传输的耗时, 降低运算核心的工作效率。 0003 多核、 众核处理器中, 单硅片上集成多个运算核心。由于运算核心数量多, 每个运 算核心内的指令存储器容量小, 对共享的上一级指令存储器的取指竞争冲突会增多, 运算 核心间的取指竞争问题逐渐凸显出来。尤其当单硅片上的运算核心数增加到几十、 几百个 时, 传统的取指处理方式使运算核心取指延迟的情况明显增加。 同时, 取指竞争还会导致通 信网络拥塞, 这会成为制约运算核心的性能和适应面的瓶颈。 0004 目 前 处 理 器 中 比 较 常 用 的 指 令 处 理 技 术 包 括 SIMD(Single Instructi。
18、on Multiple Data, 单指令多数据流 ) 技术和 SPMD(Single Programe Multiple Data, 单程序 多数据流 ) 技术。 0005 多核处理器中采用的 SIMD、 SPMD 等技术统一指令需求, 这在一定程度上能够降低 指令需求。 0006 在多核处理器中采用SIMD技术, 主要是指多个运算核心(或运算核心内的多条流 水线 ) 共享同一个指令发射站台, 同步运行相同的指令, 但运算核心处理的数据各不相同。 0007 在多核处理器中采用 SPMD 技术, 主要是指每个运算核心执行相同的程序代码, 每 个运算核心运行的程序相同, 但处理的数据各不相同。 。
19、0008 SIMD 技术的优势是要求每个运算核心共享指令发射单元, 每条指令都同步执行, 这防止了取指竞争, 能够减轻多核心聚集的取指操作对通信网络的拥塞。 0009 SPMD 技术的优势是放宽了对运算核心间的同步要求, 将各运算核心间的同步粒度 提高到独立的程序级, 在程序范围内各运算核心能够自主运行。 0010 以上这些技术从减少取指操作源头、 减少程序代码种类的角度, 都能在一定程度 上降低取指冲突和减小取指延迟。 0011 但是 SIMD 技术要求每个运算核心的每条指令都要同步执行, 运算核心的资源通 常难以得到充分利用, 无法发挥所有运算核心的计算能力, 限制了该技术的适用范围。 0。
20、012 多核、 众核处理器中, 随着运算核心数量增长, 运算核心内的存储器容量小, 如果 SPMD 程序量大于运算核心内的存储器容量, 取指脱靶还是会导致频繁的取指操作, 引起取 说 明 书 CN 103377085 A 5 2/19 页 6 指操作冲突加剧, 通信网络拥塞严重, 运算核心的取指等待时间较长, 对发挥运算核心的计 算效率有较大影响。因此, 在多核、 众核处理器中, 运算核心内的存储器容量限制了 SPMD 技 术的适用范围。 0013 公开号为 CN 1466716A 的中国专利中的方法只可以为一个处理器提供指令预取 服务, 不适于多核、 众核处理器的处理器结构。 另一方面, 该。
21、专利中用于预取指令的方法, 对 每个计算核心需要额外的辅助处理器, 用于执行程序的简化版本, 硬件开销较大。 0014 如何有效减少运算核心的指令脱靶和等待延迟, 提高运算核心的计算效率成为目 前亟待解决的问题之一。 发明内容 0015 本发明解决的问题是如何有效减少运算核心的指令脱靶和等待延迟, 提高运算核 心的计算效率。 0016 为解决上述问题, 本发明提供了一种指令管理方法, 包括 : 0017 按照程序的执行顺序将所述程序划分为指令块 ; 0018 按照执行顺序发送指令块至至少一个运算核心。 0019 为解决上述问题, 本发明还提供了一种指令管理装置, 包括 : 0020 反馈单元,。
22、 用以发出指令块发送信号, 所述指令块按照程序的执行顺序将所述程 序划分得到。 0021 为解决上述问题, 本发明还提供了一种运算核心, 包括 : 0022 指令存储单元, 用以接收并储存指令块的指令, 所述指令块为预送的 ; 0023 运算单元, 用以运行所述指令存储单元储存的指令。 0024 为解决上述问题, 本发明还提供了一种指令管理系统, 包括 : 0025 如上所述的指令管理装置 ; 0026 如上所述的运算核心。 0027 为解决上述问题, 本发明还提供了一种指令管理系统, 包括 : 0028 如上所述的运算核心。 0029 与现有技术相比, 本发明具有以下优点 : 0030 采用。
23、软硬件相结合的方法, 软件根据程序的执行轨迹, 将指令代码划分为一系列 指令块序列, 软件保证每个运算核心指令的指令块轨迹一致。硬件按照软件划分出来的指 令块序列信息, 将运算核心所需指令送入运算核心的指令存储器中。由于程序指令轨迹提 前可知, 可以在运算核心真正执行指令之前, 将指令主动提前载入运算核心的存储器中。 0031 将程序切分为小的指令块, 将指令块中的指令预送至运算核心, 运算核心可在运 行前获得指令。这使得指令的预送与计算核心运行相对独立, 各运算核心可以在不影响正 在执行的指令同时接受其他预送的指令, 降低运算核心取指等待的时间, 提高运算核心的 运算效率。 0032 预先向。
24、运算核心发送指令块的指令, 各运算核心不再主动发出取指请求, 能够消 除运算核心取指竞争, 还能够减少对通信网络的占用, 有利于进一步提高运算核心的运算 效率。 0033 指令组织成容量可变的指令块, 每个运算核心执行的指令超块轨迹相同, 但允许 说 明 书 CN 103377085 A 6 3/19 页 7 每个运算核心在指令块内的执行轨迹各不相同。 也就是说, 各运算核心的执行速度不同, 基 于各运算核心对所述预送查询请求做出的响应发送该指令块中的指令, 可以平衡各运算核 心之间的运行速度的差异。这使得各运算核心运行速度差异在可控范围内, 但是未强制各 运算核心同步运行指令。这种以预送指令。
25、为手段的控制方式是一种松散的同步机制, 即通 过发送预送查询请求, 基于运算核心的响应控制指令的预先发送的节奏, 平衡运行速度快 的运算核心与运行速度慢的运算核心之间的速度差异。也就是说, 使运行最快的运算核心 不会超过运行最慢的核心太多, 若运行快的运算核心将要运行的指令会覆盖运行慢的运算 核心的正在运行的指令块时, 运行慢的运算核心发出指令冲突响应, 暂停向所有运算核心 发送指令的工作。本发明的技术方案允许各运算核心的速度存在一定差异, 指令预送过程 中对运算核心的干扰少, 因此适用的范围更广。 0034 以多播、 广播的指令预送方式, 对多核、 众核结构尤其适用, 能够减少运算核心间 的。
26、取指竞争, 以及减少指令传输对通信网络的拥塞时间, 提高片上通信网络利用效率。 0035 本发明的技术方案是一种基于松散同步的指令预送机制, 解决了单核、 多核、 众核 处理器中计算核心取指延迟长的问题和多核、 众核处理器中的取指竞争问题, 提高了处理 器的运算效率。 附图说明 0036 图 1 是本发明实施例提供的指令管理方法的流程图 ; 0037 图 2 是本发明实施例提供的指令管理装置 ; 0038 图 3 是本发明实施例提供的运算核心 ; 0039 图 4 是本发明实施例提供的指令存储器与运算核心存储指令块的存储地址映射 关系的示意图 ; 0040 图 5 是本发明实施例提供的程序和指。
27、令块的示意图 ; 0041 图 6 是本发明实施例提供的指令块中的指令的示意图 ; 0042 图 7 是本发明实施例提供的指令管理系统。 具体实施方式 0043 为使本发明的上述目的、 特征和优点能够更为明显易懂, 下面结合附图对本发明 的具体实施方式做详细的说明。 0044 在以下描述中阐述了具体细节以便于充分理解本发明。 但是本发明能够以多种不 同于在此描述的其它方式来实施, 本领域技术人员可以在不违背本发明内涵的情况下做类 似推广。因此本发明不受下面公开的具体实施方式的限制。 0045 图 1 是本发明实施例提供的指令管理方法的流程图, 下面结合图 1 详细说明。 0046 所述指令管理。
28、方法包括 : 0047 步骤 S1, 按照程序的执行顺序将所述程序划分为指令块 ; 0048 步骤 S2, 按照执行顺序发送指令块至至少一个运算核心。 0049 所述指令管理方法还可以包括 : 0050 步骤 S3( 图 1 中未显示 ), 在发送指令块的指令前, 向各运算核心发送预送查询请 求, 基于各运算核心对所述预送查询请求做出的响应发送该指令块中的指令, 所述预送查 说 明 书 CN 103377085 A 7 4/19 页 8 询请求包含预送的指令的信息。 0051 具体实施中, 所述步骤 S1 中, 将程序按照执行顺序划分成指令块, 划分完成之后, 得到指令块的执行顺序, 也称为指。
29、令块执行轨迹。 0052 具体来讲, 指令块是第三方软件按照程序的执行顺序, 或者结合实际经验例如指 令的执行时间、 指令的调用次数等按照执行顺序划分得到的, 划分之后的指令块的执行顺 序与程序的执行顺序相同, 也就是指令块的执行轨迹与程序的执行顺序是一致的。所述程 序的执行顺序是指程序中指令的执行顺序。 0053 若程序中具有循环、 递归或者条件判断等程序时, 指令块的执行轨迹与程序的执 行顺序可以略有不同, 但是指令块中指令的执行顺序与程序的执行顺序相同。如表 1 所示。 例如, 程序中包含指令 1、 指令 2、 指令 3、 指令 4, 若指令 2 和指令 3 形成循环程序, 且循环的 次。
30、数为 2 次, 则程序的执行顺序为指令 1 指令 2 指令 3 指令 2 指令 3 指令 4 ; 将 程序划分为三个指令块, 指令块 1 包含指令 1, 指令块 2 包含指令 2 和指令 3, 指令块 3 包含 指令 4, 则指令块的执行轨迹为指令块 1 指令块 2 指令块 3。 0054 表 1 0055 0056 0057 上述举例中, 虽然指令块的执行顺序与程序的执行顺序略有不同, 两者本质是相 同的。指令块的执行顺序表示了指令块中包含的指令的执行顺序, 指令块的执行轨迹为指 令块 1 指令块 2 指令块 3, 指令块中的指令的执行顺序仍旧是指令 1 指令 2 指令 3 指令 2 指令 。
31、3 指令 4。因此指令块的执行轨迹与程序的执行顺序略有不同, 但是指 令块中指令的执行顺序与程序的执行顺序是相同的。 0058 将程序划分的指令块的数量可以为一个也可以为多个, 也就是说, 可以将程序划 分为多个指令块, 也可以整个一个程序作为一个指令块。每个指令块中包含一定数量的指 令, 每个指令块中包含的指令的数量可以为一条也可以是多条。 一般情况下, 指令块中包含 至少两条指令, 但也可以仅包含一条指令。 0059 运算核心包括接收并储存所述指令块的指令存储单元和运行所述指令存储单元 储存的指令块的运算单元, 所述指令块所占的空间小于或等于所述指令存储单元的存储空 间。所述程序的执行顺序。
32、通常还会保存在所述运算核心中。 0060 将程序划分为指令块时, 要求划分之后的指令块所占的空间小于或等于所述指令 说 明 书 CN 103377085 A 8 5/19 页 9 存储单元的存储空间。这可以保证运算核心可以保存至少一个完整的指令块。 0061 所述步骤 S2 中, 按照执行顺序发送指令块至至少一个运算核心, 直至将所有的指 令块发送完毕, 或者若获取所述运算核心发出的停止响应, 则停止向全部运算核心发送指 令块。 若获取所述运算核心发出的停止响应后, 再次获取该运算核心发出的重新接收响应, 则重新向全部运算核心发送指令块。 0062 运算核心内部出现异常时, 发出停止响应, 停。
33、止接收预送的指令块, 例如, 运算核 心的存储空间已满, 不能存储新的指令块时 ; 预送的指令块与运算核心当前正在执行的指 令块冲突时等。运算核心内部出现异常时, 发出停止响应, 若异常排除, 运算核心还可以再 次发送重新接收响应, 重新接收预送的指令块, 例如, 删除已执行过的指令块, 运算核心的 存储空间可以继续接收新的指令块时 ; 当前存储的指令块可以被后续预送的指令块覆盖 时。 0063 运算核心中运行的指令块是预送的, 因此按照执行顺序发送指令块, 可以保证运 算核心按照执行顺序执行指令块。 0064 根据程序的执行轨迹, 将指令代码划分为一系列指令块序列, 保证每个运算核心 指令的。
34、指令块轨迹一致。将运算核心所需指令送入运算核心的指令存储器中, 由于程序指 令轨迹提前可知, 因此可以在运算核心真正执行指令之前, 将指令主动提前载入运算核心 的存储器中。 0065 具体实施中, 在发送指令块时, 将指令块拆分成若干条指令, 按照约定粒度发送该 指令块的指令, 所述约定粒度为每次预送的指令的数量。通过广播或多播的方式向所述运 算核心发送所述指令块或指令, 可以提高发送速度, 从而提高工作效率。 0066 所述步骤 S3 中, 为保证运算核心可以正确收到指令块, 在发送指令块前, 向各运 算核心发送预送查询请求。如步骤 S2 中所述, 发送指令块时, 将所述指令块拆分成若干条 。
35、指令, 根据约定粒度发送指令块中的指令。因此每次按照约定粒度发送指令块中的指令之 前, 都会向所述运算核心发送预送查询请求。 0067 所述预送查询请求在每次按照约定粒度发送该指令块的指令前发送。 这保证了运 算核心可以提前正确地判断是否需要接收预送的指令, 对不需要指令的运算核心, 避免无 用的传输。 0068 将程序切分为小的指令块, 将指令块中的指令预送至运算核心, 运算核心可在运 行前获得指令。这使得指令的预送与计算核心运行相对独立, 各运算核心可以在不影响正 在执行的指令同时接受其他预送的指令, 降低运算核心取指等待的时间, 提高运算核心的 运算效率。 0069 基于各运算核心对所述。
36、预送查询请求做出的响应发送该指令块中的指令, 所述预 送查询请求包含预送的指令的信息。 所述预送查询请求主要是询问运算核心目前是否需要 新的指令。 0070 各运算核心不再主动发出取指请求, 能够消除运算核心取指竞争, 还能够减少对 通信网络的占用, 有利于进一步提高运算核心的运算效率。 0071 所述运算核心对所述预送查询请求做出的响应包括 : 指令接收响应、 指令放弃响 应和指令冲突响应 ; 其中指令接收响应分为 : 即时接收响应、 延迟接收响应。 0072 运算核心根据目前正在执行的指令、 预送的指令和已经存储但尚未执行的指令的 说 明 书 CN 103377085 A 9 6/19 页。
37、 10 信息, 判断是否需要接收预送的指令, 并做出响应, 具体来讲 : 0073 若预送的指令为所述运算核心需要的指令且该运算核心具有足够的存储空间存 储所述预送的指令, 则该运算核心做出即时接收响应 ; 若预送的指令为所述运算核心需要 的指令但该运算核心没有足够的存储空间存储所述预送的指令, 则该运算核心做出延迟接 收响应。 0074 若预送的指令覆盖所述运算核心正在运行的指令或覆盖已经存储但还未执行的 指令, 或者两种情况均存在, 则该运算核心做出指令冲突响应 ; 若预送的指令在所述运算核 心中已经存储, 则该运算核心做出指令放弃响应。 0075 所述基于各运算核心对所述预送查询请求做出。
38、的响应发送该指令块中的指令包 括 : 0076 若所有运算核心做出的响应不包括指令冲突响应, 则向发出接收指令响应的运算 核心发送所述预送的指令 ; 0077 若所有运算核心做出的响应仅包括指令放弃响应, 则放弃向各运算核心发送所述 预送的指令 ; 0078 若所有运算核心做出的响应包括指令冲突响应, 则等待做出指令冲突响应的运算 核心再次做出响应, 直至所有运算核心做出的响应不包括指令冲突响应。 0079 所述运算核心对所述预送查询请求做出的响应包括 : 即时接收响应、 延迟接收响 应、 指令放弃响应和指令冲突响应则 : 0080 若所有运算核心做出的响应不包括指令冲突响应和延迟接收响应, 。
39、则向发出即时 接收响应的运算核心发送所述预送的指令 ; 0081 若所有运算核心做出的响应仅包括指令放弃响应, 则放弃向各运算核心发送所述 预送的指令 ; 0082 若所有运算核心做出的响应包括指令冲突响应或延迟接收响应, 或者两种情况均 存在, 则等待做出指令冲突响应的运算核心再次做出响应, 以及等待做出延迟接收响应的 运算核心做出即时接收响应, 直至所有运算核心做出的响应不包括指令冲突响应和延迟接 收响应。 0083 也就是说, 只有当运算核心做出的响应只包括即时接收响应和指令放弃响应时, 才会向做出即时接收响应的运算核心发送预送的指令, 且只会向做出即时接收响应的运算 核心发送预送的指令。
40、, 而不会向做出指令放弃响应的运算核心发送预送的指令。这是为了 保证需要指令的运算核心可以获得需要的指令, 不需要指令的运算核心避免重复接收, 减 小通信资源的浪费。 0084 如果运算核心做出的响应中包含指令冲突响应或延迟接收响应, 或者两者都有, 则等待已经发送了指令冲突响应或延迟接收响应的运算核心再次发出响应, 并判断新的响 应是否是即时接收响应或者指令放弃响应, 若两者皆不是, 则继续等, 直到接收的响应只包 括即时接收响应和指令放弃响应时, 向做出即时接收响应的运算核心发送预送的指令。 0085 运算核心在执行指令块的过程中, 由于各运算核心的启动时间可能不一致, 各运 算核心运行的。
41、数据也不尽相同, 因此各运算核心的执行速度经常出现差异, 通过所述指令 管理方法可以使执行速度快的运算核心等待执行速度慢的运算核心。 0086 由于各运算核心的执行速度不同, 运行速度快的运算核心可能已经执行完所有其 说 明 书 CN 103377085 A 10 7/19 页 11 存储的指令, 等待后续发送的指令, 而运行速度慢的运算核心, 可能还未执行完其存储的指 令。由于运算核心的存储空间有限, 因此其中存储的指令是不断被后续发送的指令所更新 替代的。 若运行速度慢的运算核心存储空间已满, 且存储的指令为未执行的指令, 则该运算 核心无法接收后续发送的指令, 该运算核心对预送查询请求的。
42、响应为指令冲突响应或延迟 接收响应。 运行速度快的运算核心, 由于已经执行完所有其存储的指令, 则该运算核心对预 送查询请求的响应为即时接收响应。 0087 由于只有当运算核心做出的响应只包括即时接收响应和指令放弃响应时, 才会向 做出即时接收响应的运算核心发送预送的指令, 因此运行速度慢的运算核心发出指令冲突 响应或延迟接收响应后, 暂停向所有的运算核心发送指令的工作。此时执行速度快的运算 核心也无法收到后续的指令, 只能等待运算核心再次发出即时接收响应或指令放弃响应 后, 才能恢复后续指令的发送, 运行速度快的运算核心才能接收后续的指令。另外, 若运行 速度慢的运算核心再次发送的响应为延迟。
43、接收响应, 则依旧需要等待直至运行速度慢的运 算核心发出即时接收响应或指令放弃响应, 才能恢复后续指令的发送, 运行速度快的运算 核心才能接收后续的指令。 0088 基于上述内容, 由于运行速度慢的运算核心做出指令冲突响应或延迟接收响应, 这将导致后续发送指令的工作暂停, 等待直至运行速度慢的运算核心发送即时接收响应或 指令放弃响应才能恢复。这样的机制能够允许各运算核心间可以存在一定运行差异, 当这 种差异过大时该机制一方面可以平衡各运算核心之间的速度差异, 同时也起到了控制程序 执行节奏的作用。 0089 图 2 是本发明实施例提供的指令管理装置, 包括 : 0090 反馈单元 12, 用以。
44、发出指令块发送信号, 所述指令块按照程序的执行顺序将所述 程序划分得到。 0091 反馈单元 12 还用以在获取所述运算核心发出的停止响应后, 停止发出所述指令 块发送信号。所述反馈单元 12 还用以在获取所述运算核心发出的停止响应后, 再次获取该 运算核心发出的重新接收响应后, 重新发出所述指令块发送信号。 0092 划分好的指令块可以存储在独立存储器中, 反馈单元 12 发出指令块发送信号后, 由独立存储器向运算核心发送指令块。 0093 所述指令管理装置也可以设置内置的指令存储器 13( 图 2 所示 ), 指令存储器 13 与反馈单元 12 相连, 用以存储所述指令块, 所述指令存储器。
45、 13 获取所述反馈单元 12 发出 的所述指令块发送信号后, 按照执行顺序发送指令块至至少一个运算核心。 0094 所述指令管理装置还可以包括 : 0095 预送查询单元 11, 用以在发送指令块的指令前, 向各运算核心发送预送查询请求, 所述预送查询请求包含预送的指令的信息, 所述指令块按照程序的执行顺序将所述程序划 分得到 ; 0096 所述反馈单元 12 还用以基于各运算核心对所述预送查询请求做出的响应, 做出 发送指令消息 ; 反馈单元 12 与预送查询单元 11 相连, 从预送查询单元 11 获取预送查询请 求, 反馈单元 12 根据获取的预送查询请求, 在获取的响应中查找对应的响。
46、应 ; 0097 指令存储器 13 还可以从反馈单元 12 获取所述发送指令消息, 按照执行顺序发送 指令块至至少一个运算核心 ; 指令存储器 13 与反馈单元 12 连接, 从反馈单元 12 处获取向 说 明 书 CN 103377085 A 11 8/19 页 12 运算核心发送指令的消息, 也称取指请求。 0098 指令存储器 13 按照约定粒度向所述运算核心发送该指令块的指令, 所述约定粒 度为每次预送的指令的数量。指令存储器 13 通过广播或多播的方式向所述运算核心发送 所述指令块的指令。 0099 所述指令管理装置还包括划块单元 ( 图中未显示 ), 用以按照程序的执行顺序将 所述。
47、程序划分为所述指令块。 0100 在具体实施中, 反馈单元 12 针对运算核心的响应做出不同的反馈, 可以是 : 0101 若所有运算核心做出的响应不包括指令冲突响应, 则所述反馈单元 12 做出向发 出接收指令响应的运算核心发送所述预送的指令的反馈 ; 若所有运算核心做出的响应包括 指令冲突响应, 则所述反馈单元 12 做出等待指令冲突响应的运算核心再次做出响应, 直至 所有运算核心做出的响应不包括指令冲突响应的反馈。 0102 还可以是 : 若所有运算核心做出的响应不包括指令冲突响应和延迟接收响应, 则 所述反馈单元 12 做出向发出即时接收响应的运算核心发送所述预送的指令的反馈 ; 若所。
48、 有运算核心做出的响应包括指令冲突响应和/或延迟接收响应, 则所述反馈单元12做出等 待做出指令冲突响应的运算核心再次做出响应, 以及等待做出延迟接收响应的运算核心做 出即时接收响应, 直至所有运算核心做出的响应不包括指令冲突响应和延迟接收响应的反 馈。 0103 指令管理装置可以作为独立的装置与运算核心配合工作, 也可以集成在运算核心 中。 0104 图 3 是本发明实施例提供的运算核心, 包括 : 0105 指令存储单元 21, 用以接收并储存指令块的指令 ; 0106 运算单元 22, 用以运行指令存储单元 21 储存的指令块 ; 运算单元 22 与指令存储 单元 21 相连, 从指令存。
49、储单元 21 处获取指令后运行 ; 0107 所述运算核心还可以包括 : 0108 指令传输处理单元 23, 用以基于当前运行的指令块、 指令存储单元 21 中存储的指 令块和指令管理装置发出的预送查询请求, 做出对所述预送查询请求的响应 ; 指令传输处 理单元 23 与指令存储单元 21 相连, 指令传输处理单元 23 还与运算单元 22 相连, 指令传输 处理单元 23 从指令存储单元 21 获取已经储存的指令的信息, 包括 : 哪些指令已经执行, 哪 些指令还未执行 ; 指令传输处理单元23从运算单元22获取正在执行的指令块的信息, 包括 正在执行的指令块的存储位置。 0109 具体来讲, 所述预送查询请求包含预送的指令在指令存储器中的存储地址, 以及 预送的指令所属的指令块的第一条指令在指令存储单元 21 中的存储地址。