CN111158867A - 时间同步处理方法、线程调度方法、装置及电子设备 - Google Patents

时间同步处理方法、线程调度方法、装置及电子设备 Download PDF

Info

Publication number
CN111158867A
CN111158867A CN201811320660.2A CN201811320660A CN111158867A CN 111158867 A CN111158867 A CN 111158867A CN 201811320660 A CN201811320660 A CN 201811320660A CN 111158867 A CN111158867 A CN 111158867A
Authority
CN
China
Prior art keywords
hardware
cpu
tsc
time
thread
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
Application number
CN201811320660.2A
Other languages
English (en)
Other versions
CN111158867B (zh
Inventor
黄子龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811320660.2A priority Critical patent/CN111158867B/zh
Publication of CN111158867A publication Critical patent/CN111158867A/zh
Application granted granted Critical
Publication of CN111158867B publication Critical patent/CN111158867B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electric Clocks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明实施例提供一种时间同步处理方法、线程调度方法、装置及电子设备,其中,时间同步处理方法包括:响应于接收边沿触发快照信号的操作,抓取布设在CPU以及异构硬件中的TSC寄存器的瞬时值,并将所述瞬时值存放至快照寄存器中;根据所述快照寄存器中存储的各瞬时值,对各所述TSC寄存器的计数值进行一致性调整;其中,各所述TSC寄存器采用同源时钟进行计数,所述TSC寄存器的计数值用于向所述CPU以及所述异构硬件提供时间服务。本发明实施例的方案,能够在可重构资源中实现异构硬件与CPU的时间同步,进而实现CPU对硬件线程的高效调度管理。

Description

时间同步处理方法、线程调度方法、装置及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种时间同步处理方法、线程调度方法、装置及电子设备。
背景技术
当前云计算领域中,大部分的现场可编程门阵列(Field-Programmable GateArray,FPGA)加速应用局限在离线、非实时的场景例如图像处理,压缩,大数据搬移等。但是,随着FPGA实时加速场景例如在线人脸识别,智能交通等需求出现,如何将FPGA的处理延时、任务调度纳入处理器操作系统实现统一优化成为了提高FPGA异构硬件执行效率的关键。
近年来,业界正在探索软硬件混合架构,将可重构资源封装成操作系统服务来简化编程模型,通过共享内存实现软件线程和可重构硬件线程的并行执行,但是硬件线程的高效调度管理仍面临挑战。即使一致性总线的出现,在未来可能替代PCIe成为FPGA与CPU互连的主流选择,并且在一致性框架下,FPGA与CPU耦合更加紧密,共享cache和内存,延时更低,数据结构更灵活,编程模型更丰富,硬件加速单元对于处理器和操作系统来说可能从异步向同步转变,但是就目前为止,一致性总线仍无法比拟CPU对硬件线程的高效调度管理所带来的并发执行效果。
发明内容
本发明提供了一种时间同步处理方法、线程调度方法、装置及电子设备,能够在可重构资源中实现异构硬件与CPU的时间同步,进而实现CPU对硬件线程的高效调度管理。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种时间同步处理方法,包括:
响应于接收边沿触发快照信号的操作,抓取布设在CPU以及异构硬件中的TSC寄存器的瞬时值,并将所述瞬时值存放至快照寄存器中;
根据所述快照寄存器中存储的各瞬时值,对各所述TSC寄存器的计数值进行一致性调整;
其中,各所述TSC寄存器采用同源时钟进行计数,所述TSC寄存器的计数值用于向所述CPU以及所述异构硬件提供时间服务。
第二方面,提供了一种线程调度方法,包括:
基于CPU中线程调度系统的任务调度,创建硬件线程;所述硬件线程为对与CPU通信连接的异构硬件中的加速单元进行服务封装后实现;
基于所述CPU以及所述异构硬件所享有的一致性时间服务,对所述硬件线程的执行时间进行预测,得到该硬件线程对应的执行时间结束时刻;
将预测的所述执行时间结束时刻反馈至所述线程调度系统,以使所述线程调度系统基于所述硬件线程的时间结束时刻对其他线程进行调度。
第三方面,提供了一种时间同步处理装置,包括:
TSC抓取模块,用于响应于接收边沿触发快照信号的操作,抓取布设在CPU以及异构硬件中的TSC寄存器的瞬时值,并将所述瞬时值存放至快照寄存器中;
TSC调整模块,用于根据所述快照寄存器中存储的各瞬时值,对各所述TSC寄存器的计数值进行一致性调整;
其中,各所述TSC寄存器采用同源时钟进行计数,所述TSC寄存器的计数值用于向所述CPU以及所述异构硬件提供时间服务。
第四方面,提供了一种线程调度装置,包括:
硬件线程创建模块,用于基于CPU中线程调度系统的任务调度,创建硬件线程;所述硬件线程为对与CPU通信连接的异构硬件中的加速单元进行服务封装后实现;
时间预测模块,用于基于所述CPU以及所述异构硬件所享有的一致性时间服务,对所述硬件线程的执行时间进行预测,得到该硬件线程对应的执行时间结束时刻;
时间反馈模块,将预测的所述执行时间结束时刻反馈至所述线程调度系统,以使所述线程调度系统基于所述硬件线程的时间结束时刻对其他线程进行调度。
第五方面,提供了一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,所述程序运行时执行所述的时间同步处理方法。
第六方面,提供了另一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,所述程序运行时执行所述的线程调度方法。
本发明提供了一种时间同步处理方法、线程调度方法、装置及电子设备,通过在CPU以及异构硬件中分别设置TSC寄存器和快照寄存器,然后在接收到边沿触发快照信号后,抓取布设在CPU以及异构硬件中的TSC寄存器的瞬时值,并将瞬时值存放至快照寄存器中,以实现对各TSC寄存器的计数值进行一致性调整;其中,各TSC寄存器采用同源时钟进行计数,且TSC寄存器的计数值用于向CPU以及异构硬件提供时间服务,从而在可重构资源中实现异构硬件与CPU的时间同步,进而实现CPU对硬件线程的高效调度管理。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例的时间同步处理架构示意图;
图2为本发明实施例的线程调度架构示意图;
图3为本发明实施例的时间同步处理方法流程图一;
图4为本发明实施例的时间同步处理方法流程图二;
图5为本发明实施例的时间同步处理方法流程图三;
图6为本发明实施例的线程调度方法流程图一;
图7为本发明实施例的线程调度方法流程图二;
图8为本发明实施例的时间同步处理装置结构图一;
图9为本发明实施例的时间同步处理装置结构图二;
图10为本发明实施例的时间同步处理装置结构图三;
图11为本发明实施例的线程调度装置结构图一;
图12为本发明实施例的线程调度装置结构图二;
图13为本发明实施例的电子设备的结构示意一;
图14为本发明实施例的电子设备的结构示意二。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例改善了现有技术在异构资源控制系统中,主板上的CPU无法对异构硬件(如FPGA加速卡)上的硬件线程进行高效调度的缺陷,其核心思想是,在CPU与异构硬件中均设置时间计数器(Time Stamp Counter,TSC)和快照寄存器(Snapshot),并通过边沿触发快照信号对TSC的计数值进行抓取和一致性调整,从而使得异构硬件享有与CPU一致的时间服务。进一步地,基于CPU与异构硬件在时间服务上的一致性,在软、硬件混合线程调度模型中,CPU中的线程调度系统可以基于创建硬件线程时,由异构硬件计算得到并反馈的硬件线程执行时间结束时刻,来灵活调整其他线程(包括其他硬件线程和/或软件线程)的执行时序,从而实现对硬件线程的高效调度及管理。
基于上述实现异构硬件与CPU享有一致的时间服务的方案思想,图1为本发明实施例提供的时间同步处理架构示意图。该处理架构包括主板(Main Board)上的CPU和附加卡(Adding Card)上的异构硬件,异构硬件通过PCIe总线或者UPI总线与CPU互联。以FPGA为主要芯片的硬件加速卡作为异构硬件为例,对该时间同步处理架构进行详细说明如下:
首先,在FPGA内设置TSC寄存器,主板(Main Board)上的CPU与FPGA Core之间实现时钟同源,即FPGA中的TSC寄存器与CPU中的TSC寄存器通过同一个时钟源(Clock Gen/Buffer)进行时间计数。这里CPU可以为多个,例如图中示出的CPU0、CPU1,且多CPU之间可通过UPI总线互联。图中Core fabric代表FPGA的通用结构,这里表示在FPGA的core逻辑结构中设置TSC寄存器(tsc hi:32b和tsc lo:32b)。
CPU与FPGA Core上电后,通过复位电路触发的上电同步CPU_PG信号,CPU_PG同步信号可以实现CPU和FPGA内的TSC计数器同时开始计数,在时钟也同源的情况下计数器的值在两边实时保持一致。
在FPGA内设置和CPU对应的快照Snapshot寄存器(Snapshot 64b),通过TSC_SYNC边沿触发快照,并通过如BIOS/OS检测、计算、同步TSC快照的offset值。
有一些情况下,比如FPGA比CPU后启动,FPGA单边复位,FPGA热添加,时钟不严格同源等都会导致FPGA和CPU之间的TSC计数值不一致,此时就需要通过快照机制来校准。TSC_SYNC是CPU上的一个可以被BIOS/OS触发的物理信号,一旦FPGA和CPU同时接收到一个TSC_SYNC的脉冲,CPU和FPGA内部就会把TSC的瞬时值“快照”记录下来并放入各自的Snapshot寄存器中。CPU只需要通过总线去获取FPGA内部Snapshot寄存器的TSC计数值并和自己的Snapshot寄存器的TSC计数值比对就知道两者之间的offset差值。
由于TSC计数值调整的时候不能减小,因此将CPU和FPGA二者间TSC计数值较小的寄存器加上上一步计算出来的offset差值,即可实现时间同步。
基于图1所示的时间同步处理架构所实现的异构硬件享有与CPU一致的时间服务,如图2所示,为本发明实施例提供的线程调度架构,该处理架构包含了软件线程(Softwarethreads)以及封装后的硬件线程(Hardware threads)的混合线程调度逻辑,包括:
位于CPU中的实时线程调度系统(Real Time Thread Scheduler)对CPU中的Software threads以及封装后的Hardware threads进行混合调度。
其中,Hardware threads又分为两个部分:第1部分是在软件层面的一个硬件线程控制块(Control block);第2部分是配置在FPGA上的多个规格一致的硬件线程执行器(Hardware Thread Executer,简写为“Executer”),一个FPGA上可以布设多个Executer。硬件线程控制块遵循线程的基本接口行为和其他线程以及线程管理器进行交互通信。每个硬件线程执行器实际对应的是一个硬件执行单元,即图中的加速单元(AcceleratedFunction Unit,AFU),负责执行线程函数的计算任务,操作系统通过软件层的线程控制块对其进行管理。线程执行器以有限状态机控制执行,其状态包括:初始化、就绪、运行、等待、结束。在实时线程调度系统分发硬件线程任务时可以指定执行本次硬件线程的硬件线程执行器的地址(Excuter addr)。
另外,为了对硬件线程在时间上进行高效调度,每个硬件线程对应布设了时间服务(Time service),其主要功能是向实时线程调度系统提供每个硬件线程对应的执行完成的结束时间。
具体地,Time predictor会针对不同数据结构、加速算法对硬件线程执行器进行执行时间预测(基于时钟拍数和主频),然后通过Time service提交给CPU的Real TimeThread Scheduler。
进一步地,实时线程调度系统Real Time Thread Scheduler,根据创建的硬件任务的deadline时间戳调整关联线程的优先级,从而实现软、硬件线程混合调度。
下面通过多个实施例来进一步说明本申请的技术方案。
实施例一
基于上述时间同步处理架构中的方案思想,如图3所示,其为本发明实施例示出的时间同步处理方法流程图一,该方法的执行主体可布设在图1所示的处理架构中。如图3所示,该时间同步处理方法包括如下步骤:
S310,响应于接收边沿触发快照信号的操作,抓取布设在CPU以及异构硬件中的TSC寄存器的瞬时值,并将瞬时值存放至快照寄存器中。
其中,各TSC寄存器采用同源时钟进行计数,TSC寄存器的计数值用于向CPU以及异构硬件提供时间服务。
如图1中所示的可重构资源系统中,为了实现FPGA与CPU享有一致的时间服务,在FPGA内设置TSC寄存器,并且FPGA中的TSC寄存器与CPU中的TSC寄存器通过同一个时钟源(Clock Gen/Buffer)进行时间计数。
TSC_SYNC是CPU上的一个可以被BIOS/OS触发的物理信号,可以作为上述边沿触发快照信号。一旦FPGA和CPU同时接收到一个TSC_SYNC的脉冲,CPU和FPGA内部就会把TSC寄存器的瞬时值“快照”记录下来并放入各自的Snapshot寄存器中,以进行后续比对
S320,根据快照寄存器中存储的各瞬时值,对各TSC寄存器的计数值进行一致性调整。
CPU通过总线去获取FPGA内部Snapshot寄存器中存储的TSC计数值并和自己的Snapshot寄存器中存储的TSC计数值比对从而获知两者之间的offset差值。然后基于offset差值对各TSC寄存器的计数值进行一致性调整,即将各TSC计数值调整为相同计数值。
本发明提供的时间同步处理方法,通过在CPU以及异构硬件中分别设置TSC寄存器和快照寄存器,然后在接收到边沿触发快照信号后,抓取布设在CPU以及异构硬件中的TSC寄存器的瞬时值,并将瞬时值存放至快照寄存器中,以实现对各TSC寄存器的计数值进行一致性调整;其中,各TSC寄存器采用同源时钟进行计数,且TSC寄存器的计数值用于向CPU以及异构硬件提供时间服务,从而在可重构资源中实现异构硬件与CPU的时间同步,打通了FPGA与CPU处理器系统TSC时间服务的边界,实现了FPGA异构系统共享和CPU处理器系统一致的TSC高精度时间服务,进而为实现CPU对硬件线程的高效调度管理打下基础。
实施例二
如图4所示,为本发明实施例的时间同步处理方法流程图二,与图3所示方法的区别在于,采用了根据快照寄存器中存储的各瞬时值,对各TSC寄存器的计数值进行一致性调整的一种优选实施方案。如图4所示,该时间同步处理方法在步骤S310之后可执行如下步骤:
S410,计算最大瞬时值与其他瞬时值之间的差值。
CPU通过总线去获取FPGA内部Snapshot寄存器中存储的TSC计数值并和自己的Snapshot寄存器中存储的TSC计数值比对从而获知两者之间的offset差值。在实际应用场景中,当CPU或者FPGA为多个时,得到的Snapshot寄存器中的TSC计数值也为多个,为了对TSC寄存器的计数值进行一致性调整,可以先提取出其中最大的计数值与其他计数值之间的差值。
S420,将各TSC寄存器的计数值与该TSC寄存器对应的差值之和作为调整后的该TSC寄存器的计数值。
由于TSC计数值调整的时候不能减小,因此可将CPU和FPGA中TSC寄存器的计数值加上上一步计算出来的每个TSC计数值与最大TSC计数值的差值作为调整后的TSC寄存器的计数值,即可实现各TSC寄存器的时间同步。
本实施例与图3所示方法相比较,进一步地,通过计算最大瞬时值与其他瞬时值之间的差值;并将各TSC寄存器的计数值与该TSC寄存器对应的差值之和作为调整后的该TSC寄存器的计数值,从而快速实现各TSC寄存器的时间同步。
实施例三
如图5所示,为本发明实施例的时间同步处理方法流程图三,与图3所示方法的区别在于,增加了对各TSC寄存器进行上电复位的拓展方案。如图5所示,该时间同步处理方法在方法初始阶段可先执行如下步骤:
S510,在CPU以及异构硬件上电启动后,响应于接收TSC寄存器复位信号的操作,对CPU以及异构硬件上设置的TSC寄存器进行复位操作。
具体地,在CPU与FPGA Core上电后,可通过复位电路触发的上电同步CPU_PG信号,即本步骤中的TSC寄存器复位信号。该CPU_PG同步信号可以实现CPU和FPGA内的TSC计数器同时从0开始计数,在时钟也同源的情况下计数器的值在两边实时保持一致。
但是,有一些情况下,比如FPGA比CPU后启动,FPGA单边复位,FPGA热添加,时钟不严格同源等都会导致FPGA和CPU之间的TSC计数值不一致,此时就需要通过快照机制来校准。例如可通过继续执行步骤S310~S320的内容实现TSC寄存器的时间同步。
进一步地,在CPU以及异构硬件之间可通过以下任一种总线通信连接:PCIe总线、UPI总线。
本实施例与图3所示方法相比较,进一步地,在CPU以及异构硬件上电启动后,响应于接收TSC寄存器复位信号的操作,对CPU以及异构硬件上设置的TSC寄存器进行复位操作,从而在异构资源系统启动初始时刻,实现对各TSC寄存器的时间同步。
实施例四
基于上述线程调度架构中的方案思想,如图6所示,其为本发明实施例示出的线程调度方法流程图一,该方法的执行主体可布设在图2所示的处理架构中。如图6所示,该线程调度方法包括如下步骤:
S610,基于CPU中线程调度系统的任务调度,创建硬件线程;该硬件线程为对与CPU通信连接的异构硬件中的加速单元进行服务封装后实现。
其中,如图2所示,CPU中设置的线程调度系统既可以对CPU中的软件线程进行调度,也可以对异构硬件中的加速单元进行服务封装后执行的硬件线程进行调度。
根据操作系统产生的线程任务,线程调度系统可以根据任务执行需求灵活创建硬件线程来对CPU的中软件线程进行加速处理。
S620,基于CPU以及异构硬件所享有的一致性时间服务,对硬件线程的执行时间进行预测,得到该硬件线程对应的执行时间结束时刻。
在基于CPU以及异构硬件所享有一致性时间服务的基础上,即CPU以及异构硬件中的TSC基础器保持计数值一致的情况下,对分配给异构硬件执行的硬件线程的执行时间进行预测,得到该硬件线程对应的执行时间结束时刻。该执行时间结束时刻也对应于CPU中线程调度系统的所采用的时钟时间服务中该线程对应的执行时间结束时刻。
其中,CPU以及异构硬件所享有的一致性时间服务可通过图3至图5中任一种所示的时间同步处理方法实现。
S630,将预测的执行时间结束时刻反馈至线程调度系统,以使线程调度系统基于硬件线程的时间结束时刻对其他线程进行调度。
将预测的执行时间结束时刻反馈至线程调度系统后,线程调度系统就可以对上述硬件线程的执行时间进行掌控,从而对其他线程(如其他软件线程或者硬件线程)进行灵活调度,从而实现对硬件线程的高效调度和管理。
本发明提供了的线程调度方法,在基于CPU与异构硬件在时间服务上的一致性,在软、硬件混合线程调度模型中,CPU中的线程调度系统可以基于创建硬件线程时,由异构硬件计算得到并反馈的硬件线程执行时间结束时刻,来灵活调整其他线程(包括其他硬件线程和/或软件线程)的执行时序,从而实现对硬件线程的高效调度及管理。
实施例五
如图7所示,为本发明实施例的线程调度方法流程图二,与图6所示方法的区别在于,采用了基于CPU以及异构硬件所享有的一致性时间服务,对硬件线程的执行时间进行预测,得到该硬件线程对应的执行时间结束时刻的一种优选实施方案。如图7所示,该线程调度方法在步骤S610之后可执行如下步骤:
S710,基于异构硬件中的加速单元执行硬件线程所采用的时钟主频与处理数据所需的时钟拍数计算完成该硬件线程所需的执行时长。
通常,硬件系统在对数据执行计算逻辑时是可以计算出时钟拍数,即执行不同大小的数据量都可以在对应的时钟拍数内执行完成,并且这个时钟拍数在得到待计算的数据量后是可以计算出来的。当计算出加速单元执行某个硬件线程所需要的时钟拍数,并且获取到执行逻辑过程所采用的时钟主频后,就可以计算出执行该硬件线程逻辑所需要的执行时长。
S720,根据时间服务提供的执行硬件线程的执行起始时刻以及完成该硬件线程所需的执行时长,得到该硬件线程对应的执行时间结束时刻。
例如,当确定出执行硬件线程的执行起始时刻,如起始TSC计数值以及完成该硬件线程所需的执行时长,如TSC计数值长度值后,就可以得到该硬件线程对应的执行时间结束时刻,即结束时刻对应的TSC计数值。相应的,CPU中TSC寄存器的计数值在达到该结束时刻对应的TSC计数值时,对应的硬件线程执行完毕。
在步骤S720之后,可继续执行步骤S630。
本实施例与图6所示方法相比较,进一步地,通过基于异构硬件中的加速单元执行硬件线程所采用的时钟主频与处理数据所需的时钟拍数计算完成该硬件线程所需的执行时长;并根据时间服务提供的执行硬件线程的执行起始时刻以及完成该硬件线程所需的执行时长,得到该硬件线程对应的执行时间结束时刻,从而可以快速获取到硬件线程对应的执行时间结束时刻。
实施例六
如图8所示,为本发明实施例的时间同步处理装置结构图一,该时间同步处理装置可设置在图1所示的时间同步处理架构中,用于执行如图3所示的方法步骤,其包括:
TSC抓取模块810,用于响应于接收边沿触发快照信号的操作,抓取布设在CPU以及异构硬件中的TSC寄存器的瞬时值,并将瞬时值存放至快照寄存器中;
TSC调整模块820,用于根据快照寄存器中存储的各瞬时值,对各TSC寄存器的计数值进行一致性调整;
其中,各TSC寄存器采用同源时钟进行计数,TSC寄存器的计数值用于向CPU以及异构硬件提供时间服务。
进一步地,如图9所示,上述TSC调整模块820可包括:
差值计算单元910,用于计算最大瞬时值与其他瞬时值之间的差值;
TSC调整单元920,用于将各TSC寄存器的计数值与该TSC寄存器对应的差值之和作为调整后的该TSC寄存器的计数值。
图9所示的时间同步处理装置可用于执行如图4所示的方法步骤。
进一步地,如图10所示,上述时间同步处理装置中还可包括:
复位操作模块101,用于在CPU以及异构硬件上电启动后,响应于接收TSC寄存器复位信号的操作,对CPU以及所述异构硬件上设置的TSC寄存器进行复位操作。
图10所示的时间同步处理装置可用于执行如图5所示的方法步骤。
进一步地,上述CPU以及异构硬件之间可通过以下任一种总线通信连接:PCIe总线、UPI总线。
进一步地,上述异构硬件可包括以FPGA为主要芯片的硬件加速卡。
本发明提供的时间同步处理装置,通过在CPU以及异构硬件中分别设置TSC寄存器和快照寄存器,然后在接收到边沿触发快照信号后,抓取布设在CPU以及异构硬件中的TSC寄存器的瞬时值,并将瞬时值存放至快照寄存器中,以实现对各TSC寄存器的计数值进行一致性调整;其中,各TSC寄存器采用同源时钟进行计数,且TSC寄存器的计数值用于向CPU以及异构硬件提供时间服务,从而在可重构资源中实现异构硬件与CPU的时间同步,打通了FPGA与CPU处理器系统TSC时间服务的边界,实现了FPGA异构系统共享和CPU处理器系统一致的TSC高精度时间服务,进而为实现CPU对硬件线程的高效调度管理打下基础。
进一步地,通过计算最大瞬时值与其他瞬时值之间的差值;并将各TSC寄存器的计数值与该TSC寄存器对应的差值之和作为调整后的该TSC寄存器的计数值,从而快速实现各TSC寄存器的时间同步。
进一步地,在CPU以及异构硬件上电启动后,响应于接收TSC寄存器复位信号的操作,对CPU以及异构硬件上设置的TSC寄存器进行复位操作,从而在异构资源系统启动初始时刻,实现对各TSC寄存器的时间同步。
实施例七
如图11所示,为本发明实施例的线程调度装置结构图一,该线程调度装置可设置在图2所示的线程调度架构中,用于执行如图6所示的方法步骤,其包括:
硬件线程创建模块111,用于基于CPU中线程调度系统的任务调度,创建硬件线程;硬件线程为对与CPU通信连接的异构硬件中的加速单元进行服务封装后实现;
时间预测模块112,用于基于CPU以及所述异构硬件所享有的一致性时间服务,对硬件线程的执行时间进行预测,得到该硬件线程对应的执行时间结束时刻;
时间反馈模块113,将预测的执行时间结束时刻反馈至线程调度系统,以使线程调度系统基于硬件线程的时间结束时刻对其他线程进行调度。
进一步地,如图12所示,上述时间预测模块112可包括:
执行时长预测单元121,用于基于异构硬件中的加速单元执行硬件线程所采用的时钟主频与处理数据所需的时钟拍数计算完成该硬件线程所需的执行时长;
时间预测单元122,用于根据时间服务提供的执行硬件线程的执行起始时刻以及完成该硬件线程所需的执行时长,得到该硬件线程对应的执行时间结束时刻。
进一步地,上述CPU以及异构硬件所享有的一致性时间服务可通过如图3至图5中任一种的时间同步处理方法实现。
图12所示的线程调度装置可用于执行如图7所示的方法步骤。
本发明提供的线程调度装置,在基于CPU与异构硬件在时间服务上的一致性,在软、硬件混合线程调度模型中,CPU中的线程调度系统可以基于创建硬件线程时,由异构硬件计算得到并反馈的硬件线程执行时间结束时刻,来灵活调整其他线程(包括其他硬件线程和/或软件线程)的执行时序,从而实现对硬件线程的高效调度及管理。
进一步地,通过基于异构硬件中的加速单元执行硬件线程所采用的时钟主频与处理数据所需的时钟拍数计算完成该硬件线程所需的执行时长;并根据时间服务提供的执行硬件线程的执行起始时刻以及完成该硬件线程所需的执行时长,得到该硬件线程对应的执行时间结束时刻,从而可以快速获取到硬件线程对应的执行时间结束时刻。
实施例八
前面实施例描述了时间同步处理装置的整体架构,该装置的功能可借助一种电子设备实现完成,如图13所示,其为本发明实施例的电子设备的结构示意图,具体包括:存储器131和处理器132。
存储器131,用于存储程序。
除上述程序之外,存储器131还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器131可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器132,耦合至存储器131,用于执行存储器131中的程序,所述程序运行时执行如图3至图5中任意一种时间同步处理方法。
上述的具体处理操作已经在前面实施例中进行了详细说明,在此不再赘述。
进一步,如图13所示,电子设备还可以包括:通信组件133、电源组件134、音频组件135、显示器136等其它组件。图13中仅示意性给出部分组件,并不意味着电子设备只包括图13所示组件。
通信组件133被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件133经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件133还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件134,为电子设备的各种组件提供电力。电源组件134可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件135被配置为输出和/或输入音频信号。例如,音频组件135包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器131或经由通信组件133发送。在一些实施例中,音频组件135还包括一个扬声器,用于输出音频信号。
显示器136包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
实施例九
前面实施例描述了线程调度装置的整体架构,该装置的功能可借助一种电子设备实现完成,如图14所示,其为本发明实施例的电子设备的结构示意图,具体包括:存储器141和处理器142。
存储器141,用于存储程序。
除上述程序之外,存储器141还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器141可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器142,耦合至存储器141,用于执行存储器141中的程序,所述程序运行时执行如图6至图7中任意一种线程调度方法。
上述的具体处理操作已经在前面实施例中进行了详细说明,在此不再赘述。
进一步,如图14所示,电子设备还可以包括:通信组件143、电源组件144、音频组件145、显示器146等其它组件。图14中仅示意性给出部分组件,并不意味着电子设备只包括图14所示组件。
通信组件143被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件143经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件143还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件144,为电子设备的各种组件提供电力。电源组件144可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件145被配置为输出和/或输入音频信号。例如,音频组件145包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器141或经由通信组件143发送。在一些实施例中,音频组件145还包括一个扬声器,用于输出音频信号。
显示器146包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (18)

1.一种时间同步处理方法,包括:
响应于接收边沿触发快照信号的操作,抓取布设在CPU以及异构硬件中的TSC寄存器的瞬时值,并将所述瞬时值存放至快照寄存器中;
根据所述快照寄存器中存储的各瞬时值,对各所述TSC寄存器的计数值进行一致性调整;
其中,各所述TSC寄存器采用同源时钟进行计数,所述TSC寄存器的计数值用于向所述CPU以及所述异构硬件提供时间服务。
2.根据权利要求1所述的方法,其中,所述根据所述快照寄存器中存储的各瞬时值,对各所述TSC寄存器的计数值进行一致性调整包括:
计算最大瞬时值与其他瞬时值之间的差值;
将各所述TSC寄存器的计数值与该TSC寄存器对应的所述差值之和作为调整后的该TSC寄存器的计数值。
3.根据权利要求1所述的方法,其中,所述方法还包括:
在所述CPU以及所述异构硬件上电启动后,响应于接收TSC寄存器复位信号的操作,对所述CPU以及所述异构硬件上设置的所述TSC寄存器进行复位操作。
4.根据权利要求1所述的方法,其中,所述CPU以及异构硬件之间通过以下任一种总线通信连接:PCIe总线、UPI总线。
5.根据权利要求1-4任一项所述的方法,其中,所述异构硬件包括以FPGA为主要芯片的硬件加速卡。
6.一种线程调度方法,包括:
基于CPU中线程调度系统的任务调度,创建硬件线程;所述硬件线程为对与CPU通信连接的异构硬件中的加速单元进行服务封装后实现;
基于所述CPU以及所述异构硬件所享有的一致性时间服务,对所述硬件线程的执行时间进行预测,得到该硬件线程对应的执行时间结束时刻;
将预测的所述执行时间结束时刻反馈至所述线程调度系统,以使所述线程调度系统基于所述硬件线程的时间结束时刻对其他线程进行调度。
7.根据权利要求6所述的方法,其中,所述基于所述CPU以及所述异构硬件所享有的一致性时间服务,对所述硬件线程的执行时间进行预测,得到该硬件线程对应的执行时间结束时刻包括:
基于所述异构硬件中的加速单元执行所述硬件线程所采用的时钟主频与处理数据所需的时钟拍数计算完成该硬件线程所需的执行时长;
根据所述时间服务提供的执行所述硬件线程的执行起始时刻以及完成该硬件线程所需的执行时长,得到该硬件线程对应的执行时间结束时刻。
8.根据权利要求6所述的方法,其中,所述CPU以及所述异构硬件所享有的一致性时间服务通过如权力要求1-5中任一种所述的时间同步处理方法实现。
9.一种时间同步处理装置,包括:
TSC抓取模块,用于响应于接收边沿触发快照信号的操作,抓取布设在CPU以及异构硬件中的TSC寄存器的瞬时值,并将所述瞬时值存放至快照寄存器中;
TSC调整模块,用于根据所述快照寄存器中存储的各瞬时值,对各所述TSC寄存器的计数值进行一致性调整;
其中,各所述TSC寄存器采用同源时钟进行计数,所述TSC寄存器的计数值用于向所述CPU以及所述异构硬件提供时间服务。
10.根据权利要求9所述的装置,其中,所述TSC调整模块包括:
差值计算单元,用于计算最大瞬时值与其他瞬时值之间的差值;
TSC调整单元,用于将各所述TSC寄存器的计数值与该TSC寄存器对应的所述差值之和作为调整后的该TSC寄存器的计数值。
11.根据权利要求9所述的装置,其中,所述装置还包括:
复位操作模块,用于在所述CPU以及所述异构硬件上电启动后,响应于接收TSC寄存器复位信号的操作,对所述CPU以及所述异构硬件上设置的所述TSC寄存器进行复位操作。
12.根据权利要求9所述的装置,其中,所述CPU以及异构硬件之间通过以下任一种总线通信连接:PCIe总线、UPI总线。
13.根据权利要求9-12任一项所述的装置,其中,所述异构硬件包括以FPGA为主要芯片的硬件加速卡。
14.一种线程调度装置,包括:
硬件线程创建模块,用于基于CPU中线程调度系统的任务调度,创建硬件线程;所述硬件线程为对与CPU通信连接的异构硬件中的加速单元进行服务封装后实现;
时间预测模块,用于基于所述CPU以及所述异构硬件所享有的一致性时间服务,对所述硬件线程的执行时间进行预测,得到该硬件线程对应的执行时间结束时刻;
时间反馈模块,将预测的所述执行时间结束时刻反馈至所述线程调度系统,以使所述线程调度系统基于所述硬件线程的时间结束时刻对其他线程进行调度。
15.根据权利要求14所述的装置,其中,所述时间预测模块包括:
执行时长预测单元,用于基于所述异构硬件中的加速单元执行所述硬件线程所采用的时钟主频与处理数据所需的时钟拍数计算完成该硬件线程所需的执行时长;
时间预测单元,用于根据所述时间服务提供的执行所述硬件线程的执行起始时刻以及完成该硬件线程所需的执行时长,得到该硬件线程对应的执行时间结束时刻。
16.根据权利要求14所述的方法,其中,所述CPU以及所述异构硬件所享有的一致性时间服务通过如权力要求1-5中任一种所述的时间同步处理方法实现。
17.一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,所述程序运行时执行权利要求1-5中任意一项权利要求所述的时间同步处理方法。
18.一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,所述程序运行时执行权利要求6-8中任意一项权利要求所述的线程调度方法。
CN201811320660.2A 2018-11-07 2018-11-07 时间同步处理方法、线程调度方法、装置及电子设备 Active CN111158867B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811320660.2A CN111158867B (zh) 2018-11-07 2018-11-07 时间同步处理方法、线程调度方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811320660.2A CN111158867B (zh) 2018-11-07 2018-11-07 时间同步处理方法、线程调度方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN111158867A true CN111158867A (zh) 2020-05-15
CN111158867B CN111158867B (zh) 2023-05-16

Family

ID=70554649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811320660.2A Active CN111158867B (zh) 2018-11-07 2018-11-07 时间同步处理方法、线程调度方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN111158867B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804746A (zh) * 2020-12-30 2021-05-14 联想未来通信科技(重庆)有限公司 一种时间同步的方法、装置及计算机可读介质
CN112948124A (zh) * 2021-03-26 2021-06-11 浪潮电子信息产业股份有限公司 一种加速任务处理方法、装置、设备及可读存储介质
WO2022168475A1 (ja) * 2021-02-04 2022-08-11 オムロン株式会社 制御装置
CN116010047A (zh) * 2022-12-12 2023-04-25 爱芯元智半导体(上海)有限公司 线程调度方法、硬件电路及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729240A (zh) * 2009-11-13 2010-06-09 北京中创信测科技股份有限公司 一种实现时间同步的方法和装置
CN102103525A (zh) * 2009-12-22 2011-06-22 英特尔公司 控制多个核和线程的时戳计数器(tsc)偏移
CN102902581A (zh) * 2011-07-29 2013-01-30 国际商业机器公司 硬件加速器及方法、中央处理单元、计算设备
CN104731736A (zh) * 2015-03-27 2015-06-24 深圳怡化电脑股份有限公司 一种时间同步装置、方法及系统
US20160132329A1 (en) * 2014-11-12 2016-05-12 Texas Instruments Incorporated Parallel processing in hardware accelerators communicably coupled with a processor
CN106708168A (zh) * 2015-11-13 2017-05-24 华为技术有限公司 多处理器系统及时钟同步方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729240A (zh) * 2009-11-13 2010-06-09 北京中创信测科技股份有限公司 一种实现时间同步的方法和装置
CN102103525A (zh) * 2009-12-22 2011-06-22 英特尔公司 控制多个核和线程的时戳计数器(tsc)偏移
CN102902581A (zh) * 2011-07-29 2013-01-30 国际商业机器公司 硬件加速器及方法、中央处理单元、计算设备
US20160132329A1 (en) * 2014-11-12 2016-05-12 Texas Instruments Incorporated Parallel processing in hardware accelerators communicably coupled with a processor
CN104731736A (zh) * 2015-03-27 2015-06-24 深圳怡化电脑股份有限公司 一种时间同步装置、方法及系统
CN106708168A (zh) * 2015-11-13 2017-05-24 华为技术有限公司 多处理器系统及时钟同步方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BEN LICKLY, ISAAC LIU,SUNGJUN KIM,HIREN D. PATEL,STEPHEN A. EDWARDS,EDWARD A. LEE: "Predictable programming on a precision timed architecture" *
尹震宇;赵海;林恺;孙佩刚;王金英;: "一种面向硬件线程的实时调度算法研究与设计" *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804746A (zh) * 2020-12-30 2021-05-14 联想未来通信科技(重庆)有限公司 一种时间同步的方法、装置及计算机可读介质
CN112804746B (zh) * 2020-12-30 2023-06-23 联想未来通信科技(重庆)有限公司 一种时间同步的方法、装置及计算机可读介质
WO2022168475A1 (ja) * 2021-02-04 2022-08-11 オムロン株式会社 制御装置
CN112948124A (zh) * 2021-03-26 2021-06-11 浪潮电子信息产业股份有限公司 一种加速任务处理方法、装置、设备及可读存储介质
CN112948124B (zh) * 2021-03-26 2023-09-22 浪潮电子信息产业股份有限公司 一种加速任务处理方法、装置、设备及可读存储介质
CN116010047A (zh) * 2022-12-12 2023-04-25 爱芯元智半导体(上海)有限公司 线程调度方法、硬件电路及电子设备
CN116010047B (zh) * 2022-12-12 2023-12-15 爱芯元智半导体(宁波)有限公司 线程调度方法、硬件电路及电子设备

Also Published As

Publication number Publication date
CN111158867B (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
CN111158867B (zh) 时间同步处理方法、线程调度方法、装置及电子设备
CN110300328B (zh) 一种视频播放控制方法、装置及可读存储介质
EP3309676B1 (en) Method and apparatus for providing screenshot service on terminal device and storage medium and device
CN111090687B (zh) 数据处理方法及装置、系统、计算机可读存储介质
US20100199003A1 (en) Field control system
CN106663021A (zh) 虚拟化环境中的智能gpu调度
US20170329632A1 (en) Device scheduling method, task manager and storage medium
CN110162393B (zh) 任务调度方法、装置及存储介质
CN112380020A (zh) 一种算力资源分配方法、装置、设备及存储介质
CN106900082B (zh) 传感器网络节点的数据处理方法及传感器网络节点
CN109656691A (zh) 计算资源的处理方法、装置以及电子设备
US20170097854A1 (en) Task placement for related tasks in a cluster based multi-core system
US20190050234A1 (en) Automated preboot performance measurement
WO2023160608A1 (zh) 机器人的控制方法、装置、存储介质及机器人集群
WO2023246638A1 (zh) 信息处理方法、装置、可穿戴设备和电子设备
CN113110939A (zh) 运行数据的处理方法、装置、计算机设备及存储介质
CN113467884A (zh) 资源配置方法和装置、电子设备及计算机可读存储介质
CN115640149A (zh) Rdma事件管理方法、设备及存储介质
US10061676B2 (en) Remotely located timing method and device for a processing unit in an information processing system
WO2018063704A1 (en) Push telemetry data accumulation
CN112486658A (zh) 一种任务调度方法、装置和用于任务调度的装置
US10955872B2 (en) System and method to retain baseboard management controller real-time clock time during BMC reboot
EP4390852A1 (en) Scene rendering method and apparatus, device and system
US20220084481A1 (en) Dynamic refresh rates in multi-display systems
CN109558254A (zh) 异步回调方法、系统、装置及计算机可读存储介质

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