CN116974636A - 多路互联系统及其总线接口初始化方法、装置 - Google Patents

多路互联系统及其总线接口初始化方法、装置 Download PDF

Info

Publication number
CN116974636A
CN116974636A CN202310976215.6A CN202310976215A CN116974636A CN 116974636 A CN116974636 A CN 116974636A CN 202310976215 A CN202310976215 A CN 202310976215A CN 116974636 A CN116974636 A CN 116974636A
Authority
CN
China
Prior art keywords
slave
initialization
bus interface
host
computer
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
CN202310976215.6A
Other languages
English (en)
Other versions
CN116974636B (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.)
Hexin Technology Co ltd
Shanghai Hexin Digital Technology Co ltd
Original Assignee
Hexin Technology Co ltd
Shanghai Hexin Digital Technology Co 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 Hexin Technology Co ltd, Shanghai Hexin Digital Technology Co ltd filed Critical Hexin Technology Co ltd
Priority to CN202310976215.6A priority Critical patent/CN116974636B/zh
Publication of CN116974636A publication Critical patent/CN116974636A/zh
Application granted granted Critical
Publication of CN116974636B publication Critical patent/CN116974636B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Abstract

本申请提供一种多路互联系统及其总线接口初始化方法、装置。该多路互联系统包括:主机,用于确定从机总线接口的初始化信息,并在将从机总线接口的初始化信息发送给从机后,执行主机总线接口的初始化流程;从机,与主机通信,用于根据接收到的从机总线接口的初始化信息,执行从机总线接口的初始化流程;其中,主机和从机各自在执行初始化流程的过程中,若主机和/或从机执行单个初始化步骤的失败次数达到预定次数,则对整个初始化流程执行重试操作,若失败次数未达到预定次数,则对单个初始化步骤执行重试操作。通过将主机和从机各自的总线接口初始化流程分开进行,可以实时追踪单个初始化步骤的完成情况,并针对性进行重试机制。

Description

多路互联系统及其总线接口初始化方法、装置
技术领域
本申请涉及计算机技术,尤其涉及一种多路互联系统及其总线接口初始化方法、装置。
背景技术
目前,在CPU多路互联的应用场景中,CPU之间的信息交互多采用总线接口PCIe协议。这就需要在多路互联系统上电后,为每个CPU中的PCIe进行初始化操作并建立与其他CPU中的PCIe的连接。在PCIe初始化建立的过程中,一般采用的是低速接口如I2C/I3C等交换配置信息。以如图1所示的两路CPU为例,多路互联系统上电后,以根据外部的GPIO或者系统寄存器等选定其中的一个CPU为主机,另一个CPU则为从机。
现有技术中,在ARM提供的开源的SCP软件栈中,提供了一种CPU多路互联场景下,针对主机和从机的共同的总线接口PCIe初始化流程。如图2所示的流程图可以看出,主机每完成一个PCIe的初始化步骤,都需要等待从机也完成对应的PCIe的初始化步骤才进行下一步,如果任一步骤出现失败的情况,则整个初始化流程就需要重新执行。这种方式极大的影响了多路互联系统的启动效率,甚至在极端情况下一直卡在PCIe初始化步骤。
发明内容
本申请提供一种多路互联系统及其总线接口初始化方法、装置,通过将主机和从机各自的总线接口初始化流程分开进行,可以实时追踪单个初始化步骤的完成情况,并针对性进行重试机制,解决了原有方案在遇到极端情况下卡死在总线接口初始化流程的问题。
一方面,本申请提供一种多路互联系统,上述多路互联系统包括:
主机,用于确定从机总线接口的初始化信息,并在将上述从机总线接口的初始化信息发送给从机后,执行主机总线接口的初始化流程;
从机,与上述主机通信,用于根据接收到的上述从机总线接口的初始化信息,执行从机总线接口的初始化流程;其中,上述主机和上述从机各自在执行初始化流程的过程中,若上述主机和/或上述从机执行单个初始化步骤的失败次数达到预定次数,则对整个初始化流程执行重试操作,若上述失败次数未达到上述预定次数,则对上述单个初始化步骤执行重试操作。
一种可选的实施例中,上述主机还用于查询上述从机中执行从机总线接口的初始化流程的执行状态;
上述从机,还用于在将上述从机总线接口的初始化流程执行完毕后,主动向上述主机报告执行完毕信息。
一种可选的实施例中,上述主机中设置有一个从机执行状态变量,用于记录上述从机的从机总线接口的初始化流程是否成功执行完毕,其中,当上述主机获知上述从机将上述从机总线接口的初始化流程成功执行完毕后,将上述从机执行状态变量的变量值由初始变量值0置为1。
一种可选的实施例中,上述主机中还设置有一个主从执行状态变量,用于记录上述主机的主机总线接口的初始化流程,以及上述从机的从机总线接口的初始化流程是否均成功执行完毕。
一种可选的实施例中,上述主机还用于在执行完毕上述主机总线接口的初始化流程后,查询上述从机执行状态变量的变量值,若上述从机执行状态变量的变量值为1,则将上述主从执行状态变量的变量值置为1;若上述从机执行状态变量的变量值为0,则上述主机执行其他主机任务,并在间隔预定时段后查询上述从机执行状态变量的变量值,直至查询到上述从机执行状态变量的变量值为1,将上述主从执行状态变量的变量值置为1。
另一方面,本申请提供一种路互联系统的总线接口初始化方法,上述方法包括:
确定从机总线接口的初始化信息;
在将上述从机总线接口的初始化信息发送给从机后,执行主机总线接口的初始化流程,其中,上述从机用于根据接收到的上述从机总线接口的初始化信息,执行从机总线接口的初始化流程;
其中,上述主机和上述从机各自在执行初始化流程的过程中,若上述主机和/或上述从机执行单个初始化步骤的失败次数达到预定次数,则对整个初始化流程执行重试操作,若上述失败次数未达到上述预定次数,则对上述单个初始化步骤执行重试操作。
另一方面,本申请提供一种多路互联系统的总线接口初始化装置,上述装置包括:
确定模块,用于确定从机总线接口的初始化信息;
执行模块,用于在将上述从机总线接口的初始化信息发送给从机后,执行主机总线接口的初始化流程,其中,上述从机用于根据接收到的上述从机总线接口的初始化信息,执行从机总线接口的初始化流程;
其中,上述主机和上述从机各自在执行初始化流程的过程中,若上述主机和/或上述从机执行单个初始化步骤的失败次数达到预定次数,则对整个初始化流程执行重试操作,若上述失败次数未达到上述预定次数,则对上述单个初始化步骤执行重试操作。
另一方面,本申请提供一种电子设备,包括:处理器,以及与上述处理器连接的存储器;上述存储器存储计算机执行指令;上述处理器执行上述存储器存储的计算机执行指令,以实现如任一项上述的方法。
另一方面,本申请提供一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机执行指令,上述计算机执行指令被处理器执行时用于实现如任一项上述的方法。
另一方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现任一项上述的方法。
本申请提供一种多路互联系统及其总线接口初始化方法、装置。该多路互联系统包括:主机,用于确定从机总线接口的初始化信息,并在将从机总线接口的初始化信息发送给从机后,执行主机总线接口的初始化流程;从机,与主机通信,用于根据接收到的从机总线接口的初始化信息,执行从机总线接口的初始化流程;其中,主机和从机各自在执行初始化流程的过程中,若主机和/或从机执行单个初始化步骤的失败次数达到预定次数,则对整个初始化流程执行重试操作,若失败次数未达到预定次数,则对单个初始化步骤执行重试操作。通过将主机和从机各自的总线接口初始化流程分开进行,可以实时追踪单个初始化步骤的完成情况,并针对性进行重试机制,解决了原有方案在遇到极端情况下卡死在总线接口初始化流程的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为现有技术提供的一种多路互联系统的架构示意图;
图2为现有技术提供的一种可选的多路互联系统的架构示意图;
图3为本申请实施例提供的一种多路互联系统的架构示意图;
图4为本申请实施例提供的一种可选的多路互联系统的架构示意图;
图5是本申请实施例所提供的一种多路互联系统的总线接口初始化方法的流程示意图;
图6为本申请实施例提供的一种多路互联系统的总线接口初始化装置的结构框图;
图7为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
通用型之输入输出(General-purpose input/output,GPIO),功能类似8051的P0—P3,其接脚可以供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO)。
CPU:Central Processing Unit,中央处理器。
SCP是ARM提供的开源软件,SCP是一款可以在微软Windows系统环境下使用的开源图形化SFTP客户端工具。
RP:高速串行计算机扩展总线标准PCIe的根端口Root Port的简称。
EP:PCIe的终点端口EndPoint的简称。
在CPU多路互联的应用场景中,CPU之间的信息交互多采用PCIe协议。这就需要在多路互联系统上电后,为每个CPU中的PCIe进行初始化操作并建立与其他CPU中的PCIe的连接。在PCIe初始化建立的过程中,一般采用的是低速接口如I2C/I3C等交换配置信息。以如图1所示的两路CPU为例,多路互联系统上电后,以根据外部的GPIO或者系统寄存器等选定其中的一个CPU为主机,另一个CPU则为从机。
现有技术中,在ARM提供的开源的SCP软件栈中,提供了一种CPU多路互联场景下,针对主机和从机的共同的总线接口PCIe初始化流程。如图2所示的流程图可以看出,主机每完成一个PCIe的初始化步骤,都需要等待从机也完成对应的PCIe的初始化步骤才进行下一步,如果任一步骤出现失败的情况,则整个初始化流程就需要重新执行。这种方式极大的影响了多路互联系统的启动效率,甚至在极端情况下一直卡在PCIe初始化步骤。
本申请提供的多路互联系统的总线接口初始化方法,旨在解决现有技术的如上技术问题。该多路互联系统的总线接口初始化方法,可以适用于图3所示的一种多路互联系统的架构示意图。如图3所示,该多路互联系统包括:
主机10,用于确定从机总线接口的初始化信息,并在将上述从机总线接口的初始化信息发送给从机后,执行主机总线接口的初始化流程;
从机20,与上述主机10通信,用于根据接收到的上述从机总线接口的初始化信息,执行从机总线接口的初始化流程;其中,上述主机和上述从机各自在执行初始化流程的过程中,若上述主机和/或上述从机执行单个初始化步骤的失败次数达到预定次数,则对整个初始化流程执行重试操作,若上述失败次数未达到上述预定次数,则对上述单个初始化步骤执行重试操作。
本申请实施例中,在实际的应用场景中,主机和从机的初始化流程完全可以分开进行,最后由主机来统计是否初始化完成的结果即可。具体在多路互联系统上电后,由主机将初始化需要的操作步骤确定的从机总线接口的初始化信息,打包发送给从机。之后主机、从机各自运行自身的初始化状态机,同时针对“每个步骤失败一次就要重新开始”的这个影响效率的点,增加了失败重试的机制,例如,每个步骤都运行失败三次等(可以根据实际情况设置,并非固定为三次),并且在主从机各自的初始化流程中,主机可以有选择的查询从机当前进行到哪一步,从机也可以在所有步骤完成后主动上报状态给主机。
一种可选的实施例中,上述从机可以为多个,本申请实施例示意性举例给出一个从机20。从机20与主机10通信的方式,可以但不限于为主机10通过其主机总线接口与总线进行连接,从机20通过其从机总线接口与总线进行连接。进而,主机10和从机20之间通过总线进行通信。
本申请方案提出了一种新的多路互联系统中PCIe初始化流程的方法,通过主机和从机之间的通信,实现多路互联系统的总线接口的初始化,解决了原有方案在遇到极端情况下卡死在PCIe初始化流程的问题,并提高了初始化执行的效率。通过将主机和从机各自对应的PCIe初始化流程分开进行,并可以实时追踪单个初始化步骤的完成情况,并针对性进行重试机制,以及最终结果的查询与主动汇报。
可选的,上述主机10是指一个能够与多个从机进行数据交换的设备。主机具有一个主机总线接口,用于与总线进行连接。主机还具有确定和发送从机总线接口的初始化信息的功能。初始化信息是指用于指导从机进行总线接口初始化的数据或指令。例如,初始化信息可以包括但不限于:从机总线接口的工作模式、工作频率、工作电压等参数。
可选的,上述从机20是指一个能够与主机进行数据交换的设备。从机具有一个从机总线接口,用于与总线进行连接。从机还具有接收和执行主机发送的从机总线接口的初始化信息的功能。
可选的,本申请实施例中的总线是指一种用于在主机和从机之间传输数据或信号的介质。总线可以是任何一种能够实现数据或信号传输的物理或逻辑结构。例如,总线可以是一根电缆、一组导线、一片电路板、一段无线频段等。
可选的,本申请实施例中的初始化流程是指在主机和从机进行数据交换之前,对各自的总线接口进行配置和检测的一系列操作。例如,初始化流程可以包括多个初始化步骤,每个初始化步骤可以包括多个初始化动作。
一种可选的实施例中,本申请实施例的初始化流程可以包括但不限于以下几个初始化步骤:
设置工作模式:即根据初始化信息,设置总线接口的工作模式。工作模式是指总线接口在与总线进行数据或信号传输时采用的协议或规范。例如,工作模式可以是同步或异步、串行或并行、单向或双向等。
设置工作频率:即根据初始化信息,设置总线接口的工作频率。工作频率是指总线接口在与总线进行数据或信号传输时采用的速率或周期。例如,工作频率可以是1MHz、10MHz、100MHz等。
设置工作电压:即根据初始化信息,设置总线接口的工作电压。工作电压是指总线接口在与总线进行数据或信号传输时采用的电压或电平。例如,工作电压可以是3.3V、5V、12V等。
检测连接状态:即检测总线接口是否与总线成功连接。连接状态是指总线接口与总线之间是否能够正常地进行数据或信号传输。例如,连接状态可以是已连接或未连接、正常或异常等。
本申请实施例针对主机和从机在分别执行各自的总线接口初始化过程中,提供了一种错误处理机制,即在执行初始化流程时,对可能出现的错误进行处理。例如,在执行初始化流程时,由于某些不可控因素导致的初始化步骤或初始化动作失败的情况。可以是由于总线接口损坏、总线断开、干扰信号等原因导致的设置失败、检测失败等。
通过预先设定主机或者从机执行单个初始化步骤或初始化动作时允许失败的最大次数,即预定次数可以是一个整数值,用于表示容忍的错误程度或范围。例如,预定次数可以是1、2、3、4等。在初始化过程中,通过记录主机或者从机执行单个初始化步骤或初始化动作时失败的次数。可选的,失败次数可以是一个整数值,用于表示失败的次数或频率。例如,失败次数可以是0、1、2、3等。
当主机或者从机执行单个初始化步骤或初始化动作时失败时,重新执行该步骤或动作的操作,以尝试消除错误或提高成功率。例如,若上述主机和/或上述从机执行单个初始化步骤的失败次数达到预定次数(如设定为3次),则对整个初始化流程执行重试操作,具体的,重试操作可以是重新设置工作模式、重新检测连接状态等。例如,重试对象可以是设置工作模式、设置工作频率、检测连接状态等单个步骤或动作。若上述失败次数未达到上述预定次数,则对上述单个初始化步骤执行重试操作。
本申请实施例,通过主机和从机之间的通信,使得主机和从机能够根据各自的初始化信息,对各自的总线接口进行配置和检测,以确保总线接口能够正常工作。通过采用一种智能化的错误处理机制,使得主机和从机能够有效地处理初始化过程中可能出现的错误,并及时地恢复正常状态,使得主机和从机能够及时地反馈和更新各自的初始化状态,并根据状态变化确定是否启动重试机制。
作为一种可选的实施例,上述主机还用于查询上述从机中执行从机总线接口的初始化流程的执行状态;上述从机,还用于在将上述从机总线接口的初始化流程执行完毕后,主动向上述主机报告执行完毕信息。
可选的,主机通过与从机之间的通信,获取从机执行从机总线接口的初始化流程的执行状态,以确定从机总线接口的初始化流程是否成功执行完毕。例如,执行状态可以是已完成或未完成、正常或异常等。
一种示例中,从机在将从机总线接口的初始化流程执行完毕后,主动向主机发送一个表示执行完毕的信息,该执行完毕信息是指用于通知主机从机总线接口已经成功初始化的数据或信号。例如,执行完毕信息可以是一个特定的数值、字符、代码等。
本申请实施例,通过主机和从机之间的双向反馈,实现多路互联系统的总线接口的初始化状态的同步。通过主机和从机之间的双向反馈,使得主机能够及时地获知从机是否完成初始化,并使得从机能够及时地通知主机自己已经完成初始化,实现了多路互联系统的总线接口的初始化状态的同步。通过采用一种主动式的状态报告方式,使得从机不需要等待主机的查询请求,而是主动向主机发送执行完毕信息,以避免因为通信延迟或丢失而导致主机无法及时获知从机的初始化状态,也可以减少主机和从机之间不必要的通信开销,进而提高了多路互联系统的可靠性和效率。
本申请实施例,还提供一种可选的实施例,上述主机中设置有一个从机执行状态变量,用于记录上述从机的从机总线接口的初始化流程是否成功执行完毕,其中,当上述主机获知上述从机将上述从机总线接口的初始化流程成功执行完毕后,将上述从机执行状态变量的变量值由初始变量值0置为1。
可选的,主机中设置一个从机执行状态变量SlaveStatus来记录从机的初始化状态。其中,主机中设置有一个用于记录从机是否完成初始化的变量作为从机执行状态变量,来存储从机的初始化状态。
可选的,该变量可以是一个布尔型或整型变量,用于表示从机的初始化状态。例如,该变量可以是一个布尔型变量,其值为true或false;也可以是一个整型变量,其值为0或1。
可选的,初始变量值是从机执行状态变量在未获知从机是否完成初始化之前的默认值。该值可以是任何一个合法的值,用于表示从机的初始状态。例如,该值可以是false或0,表示从机未完成初始化。
一种示例中,可以是一个赋值语句或函数调用,用于更新从机的初始化状态,即当主机获知从机完成初始化后,将从机执行状态变量的值改为1。例如,该操作可以是将布尔型变量赋值为true;也可以是将整型变量赋值为1。
通过主机中设置一个从机执行状态变量来存储从机是否完成初始化的信息。这样可以方便地判断从机是否已经准备好与主机进行数据交换,实现了多路互联系统的总线接口的初始化状态的存储。通过主机根据从机是否完成初始化来更新从机执行状态变量的值。这样可以及时地反映从机的最新状态,并避免因为使用过期或错误的信息而导致错误,实现了多路互联系统的总线接口的初始化状态的更新。
还存在一种可选的实施例,上述主机中还设置有一个主从执行状态变量,用于记录上述主机的主机总线接口的初始化流程,以及上述从机的从机总线接口的初始化流程是否均成功执行完毕。
可选的,上述主从执行状态变量MasterAndS laveFlag,即主机中设置有一个用于记录主机和从机是否都完成初始化的变量。该变量可以是一个布尔型或整型变量,用于表示主机和从机的初始化状态,例如,该变量可以是一个布尔型变量,其值为true或false;也可以是一个整型变量,其值为0或1。
通过主机中设置一个主从执行状态变量来存储主机和从机是否都完成初始化的信息,可以方便地判断多路互联系统是否已经进入正常工作状态,实现了多路互联系统的总线接口的初始化状态的存储。主机根据主机和从机是否都完成初始化来更新主从执行状态变量的值,可以及时地反映多路互联系统的最新状态,并避免因为使用过期或错误的信息而导致错误,实现了多路互联系统的总线接口的初始化状态的更新。
还存在一种可选的实施例,上述主机还用于在执行完毕上述主机总线接口的初始化流程后,查询上述从机执行状态变量的变量值,若上述从机执行状态变量的变量值为1,则将上述主从执行状态变量的变量值置为1;若上述从机执行状态变量的变量值为0,则上述主机执行其他主机任务,并在间隔预定时段后查询上述从机执行状态变量的变量值,直至查询到上述从机执行状态变量的变量值为1,将上述主从执行状态变量的变量值置为1。
可选的,可以采用读取语句或函数调用的方式,主机通过读取或访问从机执行状态变量来获取其当前的值,以获取从机是否完成初始化的信息。例如,该操作可以是读取布尔型或整型变量的值;也可以是调用一个返回布尔型或整型值的函数。
一种示例中,当主机发现从机未完成初始化时,先暂停更新主从执行状态变量,而是先执行其他与初始化无关的任务。该操作可以是任何一种能够实现其他功能或目标的操作,用于提高主机的资源利用率和效率。例如,该操作可以是进行数据处理、数据存储、数据发送等。
之后,当主机先暂停更新主从执行状态变量后,在一段预定的时间后再次查询从机执行状态变量。例如,可以采用一个定时器或循环语句,用于控制查询频率和时间,还可以是设置一个定时器,在每隔一定时间后触发查询操作;也可以是设置一个循环语句,在每次循环中延迟一定时间后进行查询操作。
通过主机根据从机是否完成初始化来更新主从执行状态变量。一种示例中,当主机执行完所有步骤后,首先查询下SlaveStatus变量的值,如果该变量为1,则置位MasterAndS laveFlag变量;如果SlaveStatus变量的值为0,则主机知道从机还没有完成所有步骤,主机可以执行自身的其他任务,可以选择隔一段时间查询从机的状态,或者等待从机所有步骤执行完发送通知到主机。
在主机检测到主机总线接口的初始化流程,以及从机的从机总线接口的初始化流程都成功执行完毕,则MasterAndSlaveFlag变量置位为1,标志着主从机都完成了PCIe的初始化流程,则表明整个多路互联系统的PCIe初始化部分也就完成了。
通过上述实施例,可以及时地反映多路互联系统的最新状态,并避免因为使用过期或错误的信息而导致错误。通过采用一种灵活高效的状态更新方式,使得主机在发现从机未完成初始化时,不需要一直等待或查询,而是先执行其他任务,并在间隔预定时段后再次查询,可以避免因为等待从机初始化而浪费主机的资源,并提高主机和从机之间的协调性和响应速度,提高了多路互联系统的性能和效率。
根据本发明的技术方案,还提供了一种可选的实施方式示例,如图4所示,在多路互联系统上电后,主机和从机分别初始化低速外设等接口,主机首先确定从机总线接口的初始化需要操作的步骤,得到从机总线接口的初始化信息,并将其发送给从机。从机根据接收到的初始化信息,执行从机总线接口的初始化流程。同时,主机执行主机总线接口的初始化流程。
在执行初始化流程的过程中,主机和从机各自采用一种智能化的错误处理机制。即如果主机或者从机执行单个初始化步骤(例如主机执行步骤1,2,…n,从机执行步骤1,2,…n)时失败,则重试该步骤(即单次失败重试);如果主机或者从机重试次数达到预定次数(例如,失败3次等),则各自重试整个初始化流程,这样可以避免因为某些不可控因素导致的初始化失败,主机和从机执行各自的初始化流程,及时失败重试整个初始化流程,也不会影响到另一个机器的初始化流程。
在执行完各自的初始化流程后,主机和从机之间采用一种双向反馈的状态同步机制。仍如图4所示,即从机在完成初始化流程后,会主动向主机报告执行完毕信息;主机在完成初始化流程后,可以查询从机的执行状态,并根据查询结果更新自己的状态变量。
具体来说,主机中设置有两个状态变量:一个是从机执行状态变量,用于记录从机是否完成初始化;另一个是主从执行状态变量,用于记录主机和从机是否都完成初始化。初始时,这两个变量的初始值都为0。
当主机获知某个从机完成初始化后(例如通过接收到该从机发送的执行完毕信息),则将该从机对应的从机执行状态变量置为1。当所有的从机都完成初始化后,则所有的从机执行状态变量都为1。
当主机完成自己的初始化后,则查询所有的从机执行状态变量。如果所有的从机执行状态变量都为1,则将主从执行状态变量置为1;如果有任何一个从机执行状态变量为0,则主机继续执行其他任务,并在间隔预定时段后再次查询所有的从机执行状态变量,直至所有的从机执行状态变量都为1,然后将主从执行状态变量置为1。
可选的,当主从执行状态变量为1时,表示主机和从机都完成了各自的总线接口的初始化,多路互联系统进入了正常工作状态,可以进行数据交换。
根据上述实施例,本发明能够有效地处理初始化过程中可能出现的错误,并及时地同步主机和从机的初始化状态,可以提高多路互联系统的稳定性和可靠性,避免因为初始化失败而导致的数据交换失败或者数据丢失。同时,本发明还能够避免因为等待从机而浪费主机的资源,提高多路互联系统的性能和效率。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图5是本申请实施例所提供的一种多路互联系统的总线接口初始化方法的流程示意图,如图5所示,该方法包括:
S501,确定从机总线接口的初始化信息。
S502,在将上述从机总线接口的初始化信息发送给从机后,执行主机总线接口的初始化流程,其中,上述从机用于根据接收到的上述从机总线接口的初始化信息,执行从机总线接口的初始化流程。
其中,上述主机和上述从机各自在执行初始化流程的过程中,若上述主机和/或上述从机执行单个初始化步骤的失败次数达到预定次数,则对整个初始化流程执行重试操作,若上述失败次数未达到上述预定次数,则对上述单个初始化步骤执行重试操作。
一种可选的实施例中,主机根据从机的类型、功能、需求等因素,确定适合从机进行总线接口初始化的数据或指令。例如,该步骤可以是根据从机的工作模式、工作频率、工作电压等参数,计算或生成相应的数据或指令。
可选的,主机通过与从机之间的通信,将确定好的初始化信息发送给从机。例如,该步骤可以是通过总线将数据或指令发送给从机;也可以是通过其他方式(如无线、光纤等)将数据或指令传输给从机。
之后,主机根据自身的类型、功能、需求等因素,对自己的主机总线接口进行配置和检测,以执行主机总线接口的初始化流程。例如,该步骤可以是调用或执行主机总线接口的初始化流程。从机根据接收到的来自主机的初始化信息,对自己的从机总线接口进行配置和检测,即执行从机总线接口的初始化流程。例如,该步骤可以是调用或执行从机总线接口的初始化流程。进而,主机和从机各自在执行各自的总线接口的初始化流程时,对可能出现的错误进行处理。
通过主机和从机之间的通信和协作,使得主机和从机能够对各自的总线接口进行配置和检测,实现了多路互联系统的总线接口的初始化,即以确保总线接口能够正常工作。并且提供一种智能化的错误处理方法,使得主机和从机能够有效地处理初始化过程中可能出现的错误,并及时地恢复正常状态,提高了多路互联系统的稳定性和可靠性。
此外,本申请实施例中,主机在发现从机未完成初始化时,不需要一直等待或查询,而是先执行其他任务,并在间隔预定时段后再次查询。这样可以避免因为等待从机而浪费主机的资源,并提高主机和从机之间的协调性和响应速度,提高了多路互联系统的性能和效率。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
根据本申请的一个或多个实施例,提供了一种多路互联系统的总线接口初始化装置,图6为本申请实施例提供的一种多路互联系统的总线接口初始化装置的结构框图,如图6所示,上述装置包括:
确定模块601,用于确定从机总线接口的初始化信息。
执行模块602,用于在将上述从机总线接口的初始化信息发送给从机后,执行主机总线接口的初始化流程,其中,上述从机用于根据接收到的上述从机总线接口的初始化信息,执行从机总线接口的初始化流程;
其中,上述主机和上述从机各自在执行初始化流程的过程中,若上述主机和/或上述从机执行单个初始化步骤的失败次数达到预定次数,则对整个初始化流程执行重试操作,若上述失败次数未达到上述预定次数,则对上述单个初始化步骤执行重试操作。
在示例性实施例中,本申请实施例还提供了一种电子设备,包括:处理器,以及与上述处理器连接的存储器;
上述存储器存储计算机执行指令;
上述处理器执行上述存储器存储的计算机执行指令,以实现如任一项上述的方法。
在示例性实施例中,本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机执行指令,上述计算机执行指令被处理器执行时用于实现如任一项上述的方法。
在示例性实施例中,本申请实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现任一项上述的方法。
为了实现上述实施例,本申请实施例还提供了一种电子设备。参考图7,其示出了适于用来实现本申请实施例的电子设备700的结构示意图,该电子设备700可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、消息收发设备,游戏控制台,医疗设备,健身设备,个人数字助理(Personal DigitalAssistant,简称PDA)、平板电脑(Portable Android Device,简称PAD)、便携式多媒体播放器(Portable Media Player,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(Read Only Memory,简称ROM)702中的程序或者从存储装置708加载到随机访问存储器(Random Access Memory,简称RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有电子设备700操作所需的各种程序和数据。处理装置701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备700与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备700,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM 702被安装。在该计算机程序被处理装置701执行时,执行本申请实施例的方法中限定的上述功能。
需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (10)

1.一种多路互联系统,其特征在于,所述多路互联系统包括:
主机,用于确定从机总线接口的初始化信息,并在将所述从机总线接口的初始化信息发送给从机后,执行主机总线接口的初始化流程;
从机,与所述主机通信,用于根据接收到的所述从机总线接口的初始化信息,执行从机总线接口的初始化流程;其中,所述主机和所述从机各自在执行初始化流程的过程中,若所述主机和/或所述从机执行单个初始化步骤的失败次数达到预定次数,则对整个初始化流程执行重试操作,若所述失败次数未达到所述预定次数,则对所述单个初始化步骤执行重试操作。
2.根据权利要求1所述的多路互联系统,其特征在于,
所述主机还用于查询所述从机中执行从机总线接口的初始化流程的执行状态;
所述从机,还用于在将所述从机总线接口的初始化流程执行完毕后,主动向所述主机报告执行完毕信息。
3.根据权利要求1或2所述的多路互联系统,其特征在于,
所述主机中设置有一个从机执行状态变量,用于记录所述从机的从机总线接口的初始化流程是否成功执行完毕,其中,当所述主机获知所述从机将所述从机总线接口的初始化流程成功执行完毕后,将所述从机执行状态变量的变量值由初始变量值0置为1。
4.根据权利要求3所述的多路互联系统,其特征在于,
所述主机中还设置有一个主从执行状态变量,用于记录所述主机的主机总线接口的初始化流程,以及所述从机的从机总线接口的初始化流程是否均成功执行完毕。
5.根据权利要求4所述的多路互联系统,其特征在于,
所述主机还用于在执行完毕所述主机总线接口的初始化流程后,查询所述从机执行状态变量的变量值,若所述从机执行状态变量的变量值为1,则将所述主从执行状态变量的变量值置为1;若所述从机执行状态变量的变量值为0,则所述主机执行其他主机任务,并在间隔预定时段后查询所述从机执行状态变量的变量值,直至查询到所述从机执行状态变量的变量值为1,将所述主从执行状态变量的变量值置为1。
6.一种多路互联系统的总线接口初始化方法,其特征在于,所述方法包括:
确定从机总线接口的初始化信息;
在将所述从机总线接口的初始化信息发送给从机后,执行主机总线接口的初始化流程,其中,所述从机用于根据接收到的所述从机总线接口的初始化信息,执行从机总线接口的初始化流程;
其中,所述主机和所述从机各自在执行初始化流程的过程中,若所述主机和/或所述从机执行单个初始化步骤的失败次数达到预定次数,则对整个初始化流程执行重试操作,若所述失败次数未达到所述预定次数,则对所述单个初始化步骤执行重试操作。
7.一种多路互联系统的总线接口初始化装置,其特征在于,所述装置包括:
确定模块,用于确定从机总线接口的初始化信息;
执行模块,用于在将所述从机总线接口的初始化信息发送给从机后,执行主机总线接口的初始化流程,其中,所述从机用于根据接收到的所述从机总线接口的初始化信息,执行从机总线接口的初始化流程;
其中,所述主机和所述从机各自在执行初始化流程的过程中,若所述主机和/或所述从机执行单个初始化步骤的失败次数达到预定次数,则对整个初始化流程执行重试操作,若所述失败次数未达到所述预定次数,则对所述单个初始化步骤执行重试操作。
8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求6所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求6所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求6所述的方法。
CN202310976215.6A 2023-08-03 2023-08-03 多路互联系统及其总线接口初始化方法、装置 Active CN116974636B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310976215.6A CN116974636B (zh) 2023-08-03 2023-08-03 多路互联系统及其总线接口初始化方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310976215.6A CN116974636B (zh) 2023-08-03 2023-08-03 多路互联系统及其总线接口初始化方法、装置

Publications (2)

Publication Number Publication Date
CN116974636A true CN116974636A (zh) 2023-10-31
CN116974636B CN116974636B (zh) 2024-04-26

Family

ID=88471216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310976215.6A Active CN116974636B (zh) 2023-08-03 2023-08-03 多路互联系统及其总线接口初始化方法、装置

Country Status (1)

Country Link
CN (1) CN116974636B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1072977A1 (en) * 1999-07-28 2001-01-31 Motorola, Inc. A system for initializing a distributed computer system and a method thereof
US20060294507A1 (en) * 2005-06-28 2006-12-28 Buskens Richard W Methods and devices for recovering from initialization failures
CN101876911A (zh) * 2009-11-04 2010-11-03 杭州海康威视数字技术股份有限公司 基于PCI/PCIe总线多CPU系统启动方法及模块
CN108810611A (zh) * 2018-05-31 2018-11-13 烽火通信科技股份有限公司 多媒体融合终端启动过程的控制系统及方法
CN111796875A (zh) * 2020-06-29 2020-10-20 苏州好玩友网络科技有限公司 一种主机初始化方法、装置、系统、设备及存储介质
CN112965755A (zh) * 2021-03-31 2021-06-15 龙芯中科技术股份有限公司 多核处理器的初始化方法、装置、电子设备及存储介质
CN114244678A (zh) * 2021-12-15 2022-03-25 浪潮通信信息系统有限公司 多协议告警设备接入方法及系统
CN115328706A (zh) * 2022-07-04 2022-11-11 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 双cpu冗余架构综合控制方法及系统
CN115454904A (zh) * 2022-08-22 2022-12-09 曙光信息产业股份有限公司 设备初始化方法、装置、计算机设备及相关产品
US20220405182A1 (en) * 2021-06-18 2022-12-22 Micron Technology, Inc. Automatic chip initialization retry
CN115617657A (zh) * 2022-09-29 2023-01-17 广州芯德通信科技股份有限公司 基于gpio信号实现系统启动调试的方法、系统、设备和介质
CN116192803A (zh) * 2023-02-13 2023-05-30 浙江正泰物联技术有限公司 一种主从机自动识别通信方法、装置、设备及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1072977A1 (en) * 1999-07-28 2001-01-31 Motorola, Inc. A system for initializing a distributed computer system and a method thereof
US20060294507A1 (en) * 2005-06-28 2006-12-28 Buskens Richard W Methods and devices for recovering from initialization failures
CN101876911A (zh) * 2009-11-04 2010-11-03 杭州海康威视数字技术股份有限公司 基于PCI/PCIe总线多CPU系统启动方法及模块
CN108810611A (zh) * 2018-05-31 2018-11-13 烽火通信科技股份有限公司 多媒体融合终端启动过程的控制系统及方法
CN111796875A (zh) * 2020-06-29 2020-10-20 苏州好玩友网络科技有限公司 一种主机初始化方法、装置、系统、设备及存储介质
CN112965755A (zh) * 2021-03-31 2021-06-15 龙芯中科技术股份有限公司 多核处理器的初始化方法、装置、电子设备及存储介质
US20220405182A1 (en) * 2021-06-18 2022-12-22 Micron Technology, Inc. Automatic chip initialization retry
CN114244678A (zh) * 2021-12-15 2022-03-25 浪潮通信信息系统有限公司 多协议告警设备接入方法及系统
CN115328706A (zh) * 2022-07-04 2022-11-11 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 双cpu冗余架构综合控制方法及系统
CN115454904A (zh) * 2022-08-22 2022-12-09 曙光信息产业股份有限公司 设备初始化方法、装置、计算机设备及相关产品
CN115617657A (zh) * 2022-09-29 2023-01-17 广州芯德通信科技股份有限公司 基于gpio信号实现系统启动调试的方法、系统、设备和介质
CN116192803A (zh) * 2023-02-13 2023-05-30 浙江正泰物联技术有限公司 一种主从机自动识别通信方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN116974636B (zh) 2024-04-26

Similar Documents

Publication Publication Date Title
US10339093B2 (en) USB interface using repeaters with guest protocol support
CN110880998B (zh) 一种基于可编程器件的报文传输方法及装置
WO2013118062A1 (en) Implementing updates to source code executing on a plurality of compute nodes
CN111338662A (zh) 从站的固件升级方法、固件升级装置及终端
CN113760332A (zh) 软件升级方法和电子设备
US10212272B1 (en) Near field communication enhanced computing systems
US9584268B2 (en) Device level enablement of a communications protocol
CN112084128B (zh) 消息中断通信方法、计算机设备和存储介质
CN116974636B (zh) 多路互联系统及其总线接口初始化方法、装置
CN116644011B (zh) 一种i2c设备的快速识别方法、装置、设备及存储介质
CN107656870A (zh) 应用调试方法及装置
CN115098301B (zh) 一种云原生场景下有状态应用的快照生成方法和系统
CN109582634B (zh) 总线系统
US20050262184A1 (en) Method and apparatus for interactively training links in a lockstep fashion
CN113050976B (zh) 基于PCIe总线的FPGA并行升级方法、装置、介质及电子设备
CN111427815A (zh) 一种基于spi接口的核间通讯方法、终端及存储介质
CN111427813A (zh) 一种基于串口的核间通讯方法、终端及存储介质
US20170351502A1 (en) Methods and apparatus to extend usb-c software support to non-usb-c devices
JPH1185637A (ja) ファイル転送方法及び媒体
CN112363962A (zh) 数据通信方法、系统、电子设备及计算机存储介质
CN102455970B (zh) 带可靠性检测功能的多外设boot实现方法、设备及系统
KR20070010945A (ko) 피디에이에서 호스트 씨피유와 주변 기기 간의 에스피아이통신 방법 및 시스템
CN115658154A (zh) Usb配置方法、装置、电子设备、存储介质及程序产品
CN117354185A (zh) 一种信号测试方法及系统、一种车辆
CN116521597A (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