CN116848519A - 硬件接口信号的生成方法、装置及电子设备 - Google Patents
硬件接口信号的生成方法、装置及电子设备 Download PDFInfo
- Publication number
- CN116848519A CN116848519A CN202380009060.7A CN202380009060A CN116848519A CN 116848519 A CN116848519 A CN 116848519A CN 202380009060 A CN202380009060 A CN 202380009060A CN 116848519 A CN116848519 A CN 116848519A
- Authority
- CN
- China
- Prior art keywords
- bit information
- signal
- hardware interface
- logic bit
- request
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 158
- 230000004044 response Effects 0.000 claims description 136
- 238000012545 processing Methods 0.000 claims description 96
- 238000006243 chemical reaction Methods 0.000 claims description 91
- 230000006854 communication Effects 0.000 claims description 91
- 238000004891 communication Methods 0.000 claims description 89
- 230000005540 biological transmission Effects 0.000 claims description 35
- 238000003860 storage Methods 0.000 claims description 25
- 230000001960 triggered effect Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 13
- 230000007423 decrease Effects 0.000 claims description 6
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 6
- 101150039033 Eci2 gene Proteins 0.000 claims 2
- 102100021823 Enoyl-CoA delta isomerase 2 Human genes 0.000 claims 2
- 238000013461 design Methods 0.000 abstract description 41
- 230000006870 function Effects 0.000 description 41
- 230000008569 process Effects 0.000 description 40
- 230000002093 peripheral effect Effects 0.000 description 31
- 230000003993 interaction Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 230000000694 effects Effects 0.000 description 8
- 238000007405 data analysis Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 230000001976 improved effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000033228 biological regulation Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000008093 supporting effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 101150012619 FCS1 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Landscapes
- Communication Control (AREA)
Abstract
本申请公开了一种硬件接口信号的生成方法、装置及电子设备。其中,该方法包括:通过第一***获取请求命令;确定请求命令对应的多个逻辑位信息;根据多个逻辑位信息和定时器生成请求命令对应的硬件接口信号。本申请解决了现有技术中需要芯片本身具备控制器的硬件逻辑设计,从而导致的芯片的设计成本较高的技术问题。
Description
技术领域
本申请涉及通信技术领域,具体而言,涉及一种硬件接口信号的生成方法、装置及电子设备。
背景技术
目前,在现有技术中,芯片为了与外部元器件进行硬件接口信号的通信,需要芯片本身具有相关控制器的硬件逻辑设计,其中,相关控制器用于专门处理硬件接口信号。
但是,相关控制器的引入会增加芯片的设计成本和制造成本,因此,为了降低芯片的设计难度,同时降低芯片的制造成本,亟须寻找一种新的解决方案。
发明内容
本申请提供了一种硬件接口信号的生成方法、装置及电子设备。
根据本申请的一个方面,提供了一种硬件接口信号的生成方法,包括:通过第一***获取请求命令;确定请求命令对应的多个逻辑位信息;根据多个逻辑位信息和定时器生成请求命令对应的硬件接口信号。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:根据多个逻辑位信息确定定时器对应的重装载值和初次匹配值;根据重装载值和初次匹配值生成请求命令对应的硬件接口信号。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:获取每个逻辑位信息对应的运行时长;根据运行时长确定重装载值;根据每个逻辑位信息的逻辑位确定定时器对应的一个初次匹配值,得到定时器对应的多个初次匹配值,其中,每个逻辑位信息对应的初次匹配值用于控制该逻辑位信息处于高电平时的时长,以控制该逻辑位信息的逻辑位为0或1。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:按照请求命令对应的多个逻辑位信息之间的先后顺序,根据重装载值和每个逻辑位信息对应的初次匹配值依次生成每个逻辑位信息对应的硬件接口子信号,得到硬件接口信号。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:依据定时器对每个逻辑位信息对应的重装载值进行递减操作;在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之前,通过第一***输出该逻辑位信息对应的第一信号,其中,第一信号为高电平的信号;在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之后,通过第一***输出该逻辑位信息对应的第二信号,其中,第一信号为低电平的信号;在每个逻辑位信息对应的重装载值递减至0时,确定生成该逻辑位信息对应的硬件接口子信号,得到每个逻辑位信息对应的硬件接口子信号,其中,每个逻辑位信息对应的硬件接口子信号由该逻辑位信息对应的第一信号和第二信号组成。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值时,触发该逻辑位信息对应的第一中断;在每个逻辑位信息对应的重装载值递减至0时,触发该逻辑位信息对应的第二中断。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:在根据重装载值和每个逻辑位信息对应的初次匹配值依次生成每个逻辑位信息对应的硬件接口子信号的过程中,每触发一个第一中断或第二中断,进行一次中断计数;依据中断计数确定请求命令中当前正在进行信号转换处理的字段,其中,信号转换处理用于生成请求命令中的每个字段对应的逻辑位信息所对应的硬件接口子信号。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:获取请求命令中每个字段对应的字节个数;根据字节个数确定请求命令对应的逻辑位信息的个数,其中,请求命令对应的每个字节与一个逻辑位信息相对应;依据逻辑位信息的个数确定请求命令对应的中断数量,其中,请求命令对应的中断数量为逻辑位信息的个数的两倍;根据中断数量和中断计数确定请求命令中当前正在进行信号转换处理的字段。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:依据中断数量和中断计数确定当前正在转换为硬件接口子信号的逻辑位信息;确定当前正在转换为硬件接口子信号的逻辑位信息所对应的字节为目标字节;确定目标字节对应的字段为请求命令中当前正在进行信号转换处理的字段。
在本申请的一个实施例中,请求命令对应的请求数据的数据结构为第一数据结构,其中,第一数据结构至少包括设备地址、写长度、读长度、命令码以及请求参数,设备地址用于表征目标器件的地址,目标器件为依据硬件接口信号生成响应数据的器件,命令码用于区别不同的请求命令,写长度用于表征从命令码开始到请求数据结束的字节数量,读长度用于表征请求数据中包含完成码以及读数据在内的字节数量,请求参数用于表征请求命令的参数。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:在通过第一***检测到第二***触发的第一请求的情况下,获取请求数据,其中,第一***和第二***在同一处理器上运行,请求数据由第二***生成,第二***的业务响应速度小于第一***的业务响应速度;对请求数据进行解析,得到请求命令。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:在获取请求数据之前,通过第二***将请求数据存储至目标内存中,并在请求数据存储完毕之后,通过第二***触发第一请求,其中,第一请求用于通知第一***从目标内存中读取请求数据,目标内存为第一***和第二***均能够访问的内存。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:在根据逻辑位信息和定时器生成请求命令对应的硬件接口信号之后,对硬件接口信号的电压进行转换,得到目标硬件接口信号。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:将硬件接口信号输入至电压转换器件中,得到电压转换器件输出的目标硬件接口信号。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:在根据逻辑位信息和定时器生成请求命令对应的硬件接口信号之后,通过第一***接收硬件接口信号对应的响应数据,其中,响应数据的传输形式与硬件接口信号的传输形式相同;将响应数据的数据结构调整为第二数据结构。
在本申请的一个实施例中,第二数据结构至少包括:第一校验值、第二校验值以及响应有效数据,其中,第一校验值用于表征请求数据中的校验值,第二检验值用于表征响应数据中的校验值,响应有效数据用于表征响应数据中的完成码以及用于描述目标器件的状态的数据,目标器件为依据硬件接口信号生成响应数据的器件。
在本申请的一个实施例中,硬件接口信号的生成方法还包括:在将响应数据的数据结构调整为第二数据结构之后,通过第一***触发第二请求,其中,第二请求用于通知第二***读取响应数据。
在本申请的一个实施例中,硬件接口信号为PECI信号、HDMI信号、SGMII信号、RGMII信号、GPIO信号以及SPI信号中的任意一种信号。
根据本申请实施例的另一方面,还提供了一种硬件接口信号的生成装置,包括:获取模块,用于通过第一***获取请求命令;确定模块,用于确定请求命令对应的多个逻辑位信息;生成模块,用于根据多个逻辑位信息和定时器生成请求命令对应的硬件接口信号。
在本申请的一个实施例中,生成模块包括:第一确定单元和第二生成单元。其中,第一确定单元,用于根据多个逻辑位信息确定定时器对应的重装载值和初次匹配值;第二生成单元,用于根据重装载值和初次匹配值生成请求命令对应的硬件接口信号。
在本申请的一个实施例中,第一确定单元还包括:第一获取子单元、第一确定子单元以及第二确定子单元。其中,第一获取子单元,用于获取每个逻辑位信息对应的运行时长;第一确定子单元,用于根据运行时长确定重装载值;第二确定子单元,用于根据每个逻辑位信息的逻辑位确定定时器对应的一个初次匹配值,得到定时器对应的多个初次匹配值,其中,每个逻辑位信息对应的初次匹配值用于控制该逻辑位信息处于高电平时的时长,以控制该逻辑位信息的逻辑位为0或1。
在本申请的一个实施例中,第二生成单元还包括:第一生成子单元,用于按照请求命令对应的多个逻辑位信息之间的先后顺序,根据重装载值和每个逻辑位信息对应的初次匹配值依次生成每个逻辑位信息对应的硬件接口子信号,得到硬件接口信号。
在本申请的一个实施例中,第一生成子单元还包括:递减子模块、第一信号输出子模块、第二信号输出子模块以及第一确定子模块。其中,递减子模块,用于依据定时器对每个逻辑位信息对应的重装载值进行递减操作;第一信号输出子模块,用于在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之前,通过第一***输出该逻辑位信息对应的第一信号,其中,第一信号为高电平的信号;第二信号输出子模块,用于在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之后,通过第一***输出该逻辑位信息对应的第二信号,其中,第一信号为低电平的信号;第一确定子模块,用于在每个逻辑位信息对应的重装载值递减至0时,确定生成该逻辑位信息对应的硬件接口子信号,得到每个逻辑位信息对应的硬件接口子信号,其中,每个逻辑位信息对应的硬件接口子信号由该逻辑位信息对应的第一信号和第二信号组成。
在本申请的一个实施例中,硬件接口信号的生成装置还包括:第一中断触发模块、第二中断触发模块。其中,第一中断触发模块,用于在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值时,触发该逻辑位信息对应的第一中断;第二中断触发模块,用于在每个逻辑位信息对应的重装载值递减至0时,触发该逻辑位信息对应的第二中断。
在本申请的一个实施例中,硬件接口信号的生成装置还包括:中断计数模块、字段确定模块。其中,中断计数模块,用于每触发一个第一中断或第二中断,进行一次中断计数;字段确定模块,用于依据中断计数确定请求命令中当前正在进行信号转换处理的字段,其中,信号转换处理用于生成请求命令中的每个字段对应的逻辑位信息所对应的硬件接口子信号。
在本申请的一个实施例中,字段确定模块还包括:第二获取单元、第二确定单元、第三确定单元以及第四确定单元。其中,第二获取单元,用于获取请求命令中每个字段对应的字节个数;第二确定单元,用于根据字节个数确定请求命令对应的逻辑位信息的个数,其中,请求命令对应的每个字节与一个逻辑位信息相对应;第三确定单元,用于依据逻辑位信息的个数确定请求命令对应的中断数量,其中,请求命令对应的中断数量为逻辑位信息的个数的两倍;第四确定单元,用于根据中断数量和中断计数确定请求命令中当前正在进行信号转换处理的字段。
在本申请的一个实施例中,第四确定单元还包括:第三确定子单元、第四确定子单元以及第五确定子单元。其中,第三确定子单元,用于依据中断数量和中断计数确定当前正在转换为硬件接口子信号的逻辑位信息;第四确定子单元,用于确定当前正在转换为硬件接口子信号的逻辑位信息所对应的字节为目标字节;第五确定子单元,用于确定目标字节对应的字段为请求命令中当前正在进行信号转换处理的字段。
在本申请的一个实施例中,获取模块还包括:请求数据获取单元和请求数据解析单元。其中,请求数据获取单元,用于在通过第一***检测到第二***触发的第一请求的情况下,获取请求数据,其中,第一***和第二***在同一处理器上运行,请求数据由第二***生成,第二***的业务响应速度小于第一***的业务响应速度;请求数据解析单元,用于对请求数据进行解析,得到请求命令。
在本申请的一个实施例中,硬件接口信号的生成装置还包括:请求数据存储模块,用于通过第二***将请求数据存储至目标内存中,并在请求数据存储完毕之后,通过第二***触发第一请求,其中,第一请求用于通知第一***从目标内存中读取请求数据,目标内存为第一***和第二***均能够访问的内存。
在本申请的一个实施例中,硬件接口信号的生成装置:电压转换模块,用于对硬件接口信号的电压进行转换,得到目标硬件接口信号。
在本申请的一个实施例中,电压转换模块还包括:信号输入单元,用于将硬件接口信号输入至电压转换器件中,得到电压转换器件输出的目标硬件接口信号。
在本申请的一个实施例中,硬件接口信号的生成装置还包括:响应数据接收模块以及数据结构调整模块。其中,响应数据接收模块,用于通过第一***接收硬件接口信号对应的响应数据,其中,响应数据的传输形式与硬件接口信号的传输形式相同;数据结构调整模块,用于将响应数据的数据结构调整为第二数据结构。
在本申请的一个实施例中,硬件接口信号的生成装置还包括:第二请求触发模块,用于通过第一***触发第二请求,其中,第二请求用于通知第二***读取响应数据。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
为了实现上述目的,根据本申请的另一方面,还提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
为了实现上述目的,根据本申请的另一方面,还提供了一种嵌入式***,嵌入式***包括:第一***和处理器,其中,第一***在处理器上运行;第一***用于获取请求命令,确定请求命令对应的多个逻辑位信息,以及根据多个逻辑位信息和定时器生成请求命令对应的硬件接口信号。
在本申请的一个实施例中,第一***,用于根据多个逻辑位信息确定定时器对应的重装载值和初次匹配值;第一***,用于根据重装载值和初次匹配值生成请求命令对应的硬件接口信号。
在本申请的一个实施例中,第一***,用于获取每个逻辑位信息对应的运行时长;第一***,用于根据运行时长确定重装载值;第一***,用于根据每个逻辑位信息的逻辑位确定定时器对应的一个初次匹配值,得到定时器对应的多个初次匹配值,其中,每个逻辑位信息对应的初次匹配值用于控制该逻辑位信息处于高电平时的时长,以控制该逻辑位信息的逻辑位为0或1。
在本申请的一个实施例中,第一***,用于按照请求命令对应的多个逻辑位信息之间的先后顺序,根据重装载值和每个逻辑位信息对应的初次匹配值依次生成每个逻辑位信息对应的硬件接口子信号,得到硬件接口信号。
在本申请的一个实施例中,第一***,用于依据定时器对每个逻辑位信息对应的重装载值进行递减操作;第一***,用于在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之前,通过第一***输出该逻辑位信息对应的第一信号,其中,第一信号为高电平的信号;第一***,用于在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之后,通过第一***输出该逻辑位信息对应的第二信号,其中,第二信号为低电平的信号;第一***,用于在每个逻辑位信息对应的重装载值递减至0时,确定生成该逻辑位信息对应的硬件接口子信号,得到每个逻辑位信息对应的硬件接口子信号,其中,每个逻辑位信息对应的硬件接口子信号由该逻辑位信息对应的第一信号和第二信号组成。
在本申请的一个实施例中,第一***,用于在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值时,触发该逻辑位信息对应的第一中断;第一***,用于在每个逻辑位信息对应的重装载值递减至0时,触发该逻辑位信息对应的第二中断。
在本申请的一个实施例中,第一***,用于每触发一个第一中断或第二中断,进行一次中断计数;第一***,用于依据中断计数确定请求命令中当前正在进行信号转换处理的字段,其中,信号转换处理用于生成请求命令中的每个字段对应的逻辑位信息所对应的硬件接口子信号。
在本申请的一个实施例中,第一***,用于获取请求命令中每个字段对应的字节个数;第一***,用于根据字节个数确定请求命令对应的逻辑位信息的个数,其中,请求命令对应的每个字节与一个逻辑位信息相对应;第一***,用于依据逻辑位信息的个数确定请求命令对应的中断数量,其中,请求命令对应的中断数量为逻辑位信息的个数的两倍;第一***,用于根据中断数量和中断计数确定请求命令中当前正在进行信号转换处理的字段。
在本申请的一个实施例中,第一***,用于依据中断数量和中断计数确定当前正在转换为硬件接口子信号的逻辑位信息;第一***,用于确定当前正在转换为硬件接口子信号的逻辑位信息所对应的字节为目标字节;第一***,用于确定目标字节对应的字段为请求命令中当前正在进行信号转换处理的字段。
在本申请的一个实施例中,嵌入式***还包括第二***,其中,第二***与第一***均在处理器上运行,第二***,用于生成请求数据;第一***,用于在检测到第二***触发的第一请求的情况下,获取请求数据,其中,第二***的业务响应速度小于第一***的业务响应速度;第一***,用于对请求数据进行解析,得到请求命令。
在本申请的一个实施例中,第二***,用于将请求数据存储至目标内存中,并在请求数据存储完毕之后,触发第一请求,其中,第一请求用于通知第一***从目标内存中读取请求数据,目标内存为第一***和第二***均能够访问的内存。
在本申请的一个实施例中,第一***,用于对硬件接口信号的电压进行转换,得到目标硬件接口信号。
在本申请的一个实施例中,第一***,用于将硬件接口信号输入至电压转换器件中,得到电压转换器件输出的目标硬件接口信号。
在本申请的一个实施例中,第一***,用于接收硬件接口信号对应的响应数据,其中,响应数据的传输形式与硬件接口信号的传输形式相同;第一***,用于将响应数据的数据结构调整为第二数据结构。
在本申请的一个实施例中,第一***,用于触发第二请求,其中,第二请求用于通知第二***读取响应数据。
根据本申请的另一方面,还提供了一种芯片,其中,芯片包括可编程逻辑电路以及可执行指令中的至少之一,芯片在电子设备中运行,用于实现上述任一项方法实施例中的步骤。
根据本申请的另一方面,还提供了一种BMC芯片,其中,包括:存储单元以及与存储单元连接的处理单元,存储单元用于存储程序,处理单元用于运行程序,以执行上述任一项方法实施例中的步骤。
根据本申请的另一方面,还提供了一种主板,其中,包括:至少一个处理器;至少一个存储器,用于存储至少一个程序;当至少一个程序被至少一个处理器执行,使得至少一个处理器实现上述任一项方法实施例中的步骤。
根据本申请的另一方面,还提供了一种服务器,其中,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一项方法实施例中的步骤。
本申请中采用由第一***生成请求命令对应的硬件接口信号的方式,首先通过第一***获取请求命令,然后确定请求命令对应的多个逻辑位信息,最后根据多个逻辑位信息和定时器生成请求命令对应的硬件接口信号。由上述内容可知,本申请通过第一***生成请求命令对应的硬件接口信号,从而实现了使用软件方式模拟生成硬件接口信号的技术效果,进而达到了无需芯片本身具备相关硬件接口信号的硬件逻辑设计的目的,不仅能够降低芯片的设计难度,还能减低芯片的设计成本。本申请达到了在无需对芯片进行硬件接口信号的硬件逻辑设计的基础上利用软件***生成硬件接口信号的目的,从而降低了芯片的设计难度,进而解决了现有技术中需要芯片本身具备控制器的硬件逻辑设计,从而导致的芯片的设计成本较高的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是是根据本申请实施例一提供的计算机终端的示意图;
图2是根据本申请实施例的一种硬件接口信号的生成方法的流程图;
图3是根据本申请实施例的一种逻辑位为0的波形信号示意图;
图4是根据本申请实施例的一种逻辑位为1的波形信号示意图;
图5是根据本申请实施例的一种硬件接口子信号的生成流程图;
图6是根据本申请实施例的一种请求命令的示意图;
图7是根据本申请实施例的一种初始化函数的调用流程图;
图8是根据本申请实施例的一种传输函数处理的流程图;
图9是根据本申请实施例的一种定时器中断函数的处理流程图;
图10是根据本申请实施例的一种双***的交互图;
图11是根据本申请的一种模拟生成硬件接口信号的硬件拓扑架构图;
图12是根据本申请实施例的一种可选的第一***和第二***之间的交互图;
图13是根据本申请实施例提供的一种可选的硬件接口信号的生成装置的示意图;
图14是根据本申请实施例的一种计算机终端的结构框图;
图15是根据本申请实施例的一种嵌入式***的结构框图;
图16是根据本申请实施例的通信方法的流程图;
图17是根据本申请实施例的可选的通信方法的流程图一;
图18是根据本申请实施例的可选的通信方法的流程图二;
图19是根据本申请实施例的一种可选的BMC芯片的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据,电子病历等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
根据本申请实施例,提供了一种硬件接口信号的生成方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现硬件接口信号的生成方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端(或移动设备)10可以包括处理器集合102(处理器集合102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置、以及处理器集合102可以包括处理器集合,图1中采用102a,102b,……,102n来示出)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB,Universal Serial Bus)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的硬件接口信号的生成方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的硬件接口信号的生成方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
在上述运行环境下,本申请提供了如图2所示的硬件接口信号的生成方法。如图2所示,该方法包括如下步骤:
步骤S201,通过第一***获取请求命令。
在步骤S201中,第一***可以是部署在芯片上的一种软件***,例如RTOS(Real-time system,一种实时***)***,请求命令则可以是一种硬件接口信号的生成命令,例如,硬件接口信号可以是PECI(platform environment control interface,平台环境控制接口协议)信号,则请求命令是基于PECI协议的一种PECI请求命令。
另外,上述的芯片可以是BMC(baseboard management controller,一种服务器平台管理控制芯片,可实现对服务器的健康状态监控、远程开关机、温度(电压)采集,以及故障诊断等功能)芯片,也可以是其他类型的芯片,本申请对芯片的类型不作特别限定。
可选地,硬件接口信号还可以是其他协议类型的硬件接口信号,例如,HDMI(highdefinition multimedia interface,高清多媒体接口)信号、RGMII(reduced gigabitmedia independent interface,并行总线)信号、SGMII(serial gigabit mediaindependent interface,单路传输的串行总线)信号、GPIO(general-purpose input/output,通用型输入输出端口)信号、SPI(serial peripheral interface,串行外设接口)信号等等。在此基础上,请求命令也可以是其他协议类型的请求命令,例如,在硬件接口信号为GPIO信号时,请求命令为GPIO请求命令。本申请对于请求命令和硬件接口信号的具体类型不作特殊限定。
另外,还需要注意到的是,第一***除了可以是RTOS***之外,还可以是其他软件***,例如,Linux***或者其他自开发的软件***,本申请仅需要第一***能够保证持续生成并输出硬件接口信号即可。
步骤S202,确定请求命令对应的多个逻辑位信息。
在步骤S202中,第一***在得到请求命令之后,可以分析得到请求命令对应的多个逻辑位信息,其中,多个逻辑位信息之间存在先后顺序,第一***通过请求命令对应的多个逻辑位信息可以生成请求命令对应的波形信号(即硬件接口信号),从而通过硬件接口信号将请求命令包含的信息传输给其他设备。
可选地,请求命令中包括有至少一个字段,每个字段可以通过逻辑位0或1进行表示,在此基础上,每个字段与逻辑位1或0之间对应的转换关系即为该字段对应的逻辑位信息,在请求命令对应多个字段的情况下,请求命令对应有多个逻辑位信息。此外,每个逻辑位可通过高电平信号和低电平信号的结合使用来表示,例如,对于逻辑位0,可使用第一预设时长的高电平信号和第二预设时长的低电平信号来组合表示,对于逻辑位1,可使用第二预设时长的高电平信号和第一预设时长的低电平信号来组成表示,其中,第一预设时长和第二预设时长不同。在此基础上,由于每个逻辑位既包含有高电平信号,也包含有低电平信号,因此每个逻辑位实际上是通过一段波形信号(高低电平信号之间的变换呈现为一个波形)来表示的,由于请求命令对应有多个逻辑位信息,也就是对应有多个逻辑位,因此请求命令对应的硬件接口信号是由每个逻辑位信息对应的波形信号组合得到的一个波形信号。
步骤S203,根据多个逻辑位信息和定时器生成请求命令对应的硬件接口信号。
可选地,步骤S203中的定时器可以是第一***中的一个计时程序,定时器还可以是第一***所在芯片上的一个寄存器,其中,定时器至少可以提供计时功能以及计数功能。本申请采用定时器的计时功能和计数功能,结合多个逻辑位信息生成请求命令对应的硬件接口信号。
需要注意到的是,以芯片为BMC芯片、硬件接口信号为PECI信号为例,在现有技术中,为了实现BMC芯片与CPU(central processing unit,中央处理单元)等元器件之间的PECI通信,现有技术需要BMC芯片本身具备PECI控制器的硬件逻辑设计,从而导致了BMC芯片的设计成本较高的问题。换言之,现有技术中,为了在BMC芯片上生成PECI信号,则必须要预先在BMC芯片上实现PECI控制器的硬件逻辑设计,而在本申请中,仅需要第一***即可在BMC芯片上生成PECI信号,无需必须在BMC芯片上实现PECI控制器的硬件逻辑设计,从而降低了BMC芯片的设计难度和设计成本。
基于步骤S201至步骤S203的内容可知,在本申请中,采用由第一***生成请求命令对应的硬件接口信号的方式,首先通过第一***获取请求命令,然后确定请求命令对应的多个逻辑位信息,最后根据多个逻辑位信息和定时器生成请求命令对应的硬件接口信号。
由上述内容可知,本申请通过第一***生成请求命令对应的硬件接口信号,从而实现了使用软件方式模拟生成硬件接口信号的技术效果,进而达到了无需芯片本身具备相关硬件接口信号的硬件逻辑设计的目的,不仅能够降低芯片的设计难度,还能减低芯片的设计成本。
由此可见,本申请达到了在无需对芯片进行硬件接口信号的硬件逻辑设计的基础上利用软件***生成硬件接口信号的目的,从而降低了芯片的设计难度,进而解决了现有技术中需要芯片本身具备控制器的硬件逻辑设计,从而导致的芯片的设计成本较高的技术问题。
在一种可选的实施例中,为了根据多个逻辑位信息和定时器生成请求命令对应的硬件接口信号,第一***首先根据多个逻辑位信息确定定时器对应的重装载值和初次匹配值,然后根据重装载值和初次匹配值生成请求命令对应的硬件接口信号。
可选地,重装载值可以理解为是定时器的计数周期,例如,假设重装载值为100ms,则定时器每计数100ms之后便会重新开始计数。初次匹配值则用于控制每个逻辑位信息对应的逻辑位是0或1。
可选地,在根据多个逻辑位信息确定定时器对应的重装载值和初次匹配值的过程中,第一***首先获取每个逻辑位信息对应的运行时长,然后根据运行时长确定重装载值。另外,第一***还会根据每个逻辑位信息的逻辑位确定定时器对应的一个初次匹配值,得到定时器对应的多个初次匹配值,其中,每个逻辑位信息对应的初次匹配值用于控制该逻辑位信息处于高电平时的时长,以控制该逻辑位信息的逻辑位为0或1。
需要说明的是,通常来说,在一种信号传输协议下,多个逻辑位信息中的每个逻辑位信息对应的运行时长都是相同的,例如,假设每个逻辑位信息对应的运行时长为tBIT,则定时器对应的重装载值为依据定时器的计时单位对tBIT进行换算后得到的数值,例如,运行时长tBIT为100秒,定时器的计时单位为秒,则重装载值为100。
另外,每个逻辑位信息对应的初始匹配值与该逻辑位信息对应的逻辑位相关。
如图3所示,tBIT为一个逻辑位信息对应的运行时长,当一个逻辑位信息的逻辑位为0时,该逻辑位信息对应的信号是一个占空比约为1/4的波形,其中高电平的保持时间满足0.2~0.4tBIT。另外,如图4所示,当一个逻辑位信息的逻辑位为1时,该逻辑位信息对应的信号是一个占空比约为3/4的波形,其中高电平的保持时间满足0.6~0.8tBIT。
由上述内容可知,要想以软件的方式模拟出硬件接口信号,关键在于实现波形的变换(无论是逻辑0还是逻辑1均存在高低电平的波形变换)。因此,本申请通过定时器的重装载值Reload Value和初次匹配值First Match Value实现波形变换。可选地,本申请一方面通过重装载值实现对逻辑位运行时长即一个波形信号运行时长的控制,另一方面通过初次匹配值实现不同的逻辑位的标识,即不同的逻辑位对应的波形信号具有不同的占空比。
可选地,第一***需要按照请求命令对应的多个逻辑位信息之间的先后顺序,根据重装载值和每个逻辑位信息对应的初次匹配值依次生成每个逻辑位信息对应的硬件接口子信号,得到硬件接口信号。
举例而言,假设请求命令对应逻辑位信息1、逻辑位信息2、逻辑位信息3……逻辑位信息i……逻辑位信息N,则第一***依次生成每个逻辑位信息对应的硬件接口子信号,即硬件接口子信号1、硬件接口子信号2、硬件接口子信号3……硬件接口子信号i……硬件接口子信号N。最后,硬件接口子信号1、硬件接口子信号2、硬件接口子信号3……硬件接口子信号i……硬件接口子信号N拼接为硬件接口信号。
可选地,针对每个逻辑位信息对应的硬件接口子信号的生成过程如图5所示:
步骤S501,依据定时器对每个逻辑位信息对应的重装载值进行递减操作;
步骤S502,在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之前,通过第一***输出该逻辑位信息对应的第一信号,其中,第一信号为高电平的信号;
步骤S503,在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之后,通过第一***输出该逻辑位信息对应的第二信号,其中,第二信号为低电平的信号;
步骤S504,在每个逻辑位信息对应的重装载值递减至0时,确定生成该逻辑位信息对应的硬件接口子信号,得到每个逻辑位信息对应的硬件接口子信号,其中,每个逻辑位信息对应的硬件接口子信号由该逻辑位信息对应的第一信号和第二信号组成。
可选地,根据定时器的工作原理,定时器的内部含有一个递减计数器,当递减计数器随着***时钟递减至0时会触发定时器中断,同时将重装载值自动载入后重新进行递减计数;此外,当递减计数值减至与初次匹配值相等时也会触发中断,其中,中断可以理解为是一种标识,因此,中断也可以称为中断标识,第一中断可称为第一中断标识,第二中断可称为第二中断标识。本申请为了实现逻辑位0和逻辑位1的波形,将定时器的重装载值设置为逻辑位信息对应的运行时长tBIT,同时将初次匹配值设置为3×tBIT/4表示逻辑0,将初次匹配值设置为1×tBIT/4表示逻辑1)。
下面以10kbps的传输速率为例,说明每个逻辑位信息对应的硬件接口子信号的软件实现过程:
将定时器的重装载值Reload Value设置为100ms;
设置输出高电平(每次进行信号生成时,都需要将信号拉高至高电平);
如果一个逻辑位信息的逻辑位为0,则设置该逻辑位信息对应的初次匹配值FirstMatch Value的值为75ms;
如果一个逻辑位信息的逻辑位为1,则设置该逻辑位信息对应的初次匹配值FirstMatch Value的值为25ms;
当定时器的递减计数值与初次匹配值匹配时,通过第一***输出低电平;
在定时器重装载值递减为0时,确定该逻辑位对应的硬件接口子信号生成,同时,第一***将低电平拉升为高电平继续生成下一个逻辑位信息对应的硬件接口子信号。
由上述内容,本申请通过定时器的重装载值Reload Value和初次匹配值FirstMatch Value实现了信号的波形变换,从而模拟生成了硬件接口信号。
在一种可选的实施例中,在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值时,第一***还会触发该逻辑位信息对应的第一中断;在每个逻辑位信息对应的重装载值递减至0时,第一***还会触发该逻辑位信息对应的第二中断。
需要说明的是,本申请可以通过记录每个逻辑位信息对应触发的第一中断和第二中断,从而实现进行中断计数,进而根据中断计数确定请求命令中当前要进行信号转换的字段是哪一个字段。
可选地,每触发一个第一中断或第二中断,第一***进行一次中断计数并依据中断计数确定请求命令中当前正在进行信号转换处理的字段,其中,信号转换处理用于生成请求命令中的每个字段对应的逻辑位信息所对应的硬件接口子信号。
可选地,第一***可以获取请求命令中每个字段对应的字节个数,然后根据字节个数确定请求命令对应的逻辑位信息的个数,其中,请求命令对应的每个字节与一个逻辑位信息相对应。随后,第一***依据逻辑位信息的个数确定请求命令对应的中断数量,其中,请求命令对应的中断数量为逻辑位信息的个数的两倍。最后,第一***根据中断数量和中断计数确定请求命令中当前正在进行信号转换处理的字段。
举例而言,如图6所示,一个请求命令包括四个字段,分别为地址速率协商位、目标地址addr、消息速率协商位以及写长度。其中,地址速率协商位对应的字节个数为2,即地址速率协商位由2个bit组成,目标地址addr对应的字节个数为8,消息速率协商位对应的字节个数为1,写长度对应的字节个数为8。由此可知,图6中的请求命令共对应19个字节,由于每个字节对应一个逻辑位信息,因此,该请求命令对应有19个逻辑位信息,而又由于每个逻辑位信息对应两个中断,因此,该请求命令共对应38个中断,即该请求命令的中断数量为38。在此基础上,通过中断计数,第一***可以确定地址速率协商位的两个bit由中断0~3这4个中断处理,而写长度字段则需要由22~37这16个中断处理。
可选地,第一***依据中断数量和中断计数确定当前正在转换为硬件接口子信号的逻辑位信息,并确定当前正在转换为硬件接口子信号的逻辑位信息所对应的字节为目标字节,从而第一***确定目标字节对应的字段为请求命令中当前正在进行信号转换处理的字段。
举例而言,仍以上述图6中的请求命令为例,假设当前的中断计数为4,则可确定当前正在进行信号转换的逻辑位信息为19个逻辑位信息中的第2个逻辑位信息,目标字节为19个字节中的第2个字节,由于第2个字节对应的字段为地址速率协商位,因此第一***可以确定该请求命令中当前正在进行信号转换处理的字段为地址速率协商位。
另外,还需要说明的是,本申请除了可以采用中断计数的方式确定正在进行信号转换处理的字段,还可以通过记录重装载值减至初次匹配值的次数、重装载值减至0的次数来确定正在进行信号转换处理的字段或者确定已经完成信号转换处理的字段,亦或者还未完成信号转换处理的字段。
可选地,本申请还可以单独记录已经完成信号转换处理的字段。
此外,需要注意到的是,相比于通过记录重装载值减至初次匹配值的次数、重装载值减至0的次数来确定正在进行信号转换处理的字段,或者单独记录已经完成信号转换处理的字段,使用中断计数确定正在进行信号转换处理的字段的方式可以减少第一***的计算工作量,从而实现更加便捷高效的确定字段的技术效果。
在一种可选的实施例中,第一***还可以将当前正在进行信号转换处理的字段、已经完成信号转换处理的字段以及还未完成信号转换处理的字段发送至显示界面中,从而当信号转换出现故障时,工作人员可以直接从显示界面中查看信号转换的进度,进而协助工作人员尽快地恢复信号转换工作,例如,工作人员可以向第一***发送控制指令,要求第一***从信号转换出现故障时正在进行信号转换处理的字段开始重新进行信号转换,对于已经完成信号转换处理的字段则无需重复进行信号转换,从而提高了信号转换效率,避免了***计算资源的浪费。
为了更好的说明本申请中的硬件接口信号的生成过程,以下结合附图,以硬件接口信号为PECI信号为例进行说明。
如图7所示,首先第一***进行初始化函数的调用,其中,初始化函数的主要功能为完成请求命令传输前的初始化功能,根据信号传输协议规范,默认电平状态为低电平,因此初始化函数用于控制信号生成端口的电平为低电平。其中,信号生成端口可以是GPIO端口。
随后,第一***进入传输函数处理过程,具体步骤如图8所示:
步骤1,首先第一***提取请求参数,涉及的请求参数包括请求命令中的目标地址addr、写长度wl、读长度rl、命令码cmd和参数para;
步骤2,第一***计算此次传输所需的中断数量。其中,每个逻辑位信息的传输需要两次中断来完成(递减计数值至0产生一次中断,递减计数值与初次匹配值相等时产生一次中断),重装载值用于界定逻辑位信息的起始,初次匹配值用于控制输出逻辑位信息对应的逻辑位是0或是1;
步骤3,第一***设置定时器的重装载值Reload Value为一个逻辑位时间tBIT;
步骤4,第一***设置定时器的初次匹配值First Match Value为3×tBIT/4时间(对应逻辑0,由于每次传输都是从逻辑0开始);
步骤5,第一***开启定时器1中断,并启动定时器;
步骤6,等待定时器中断处理完成,结束本次传输。
可选地,图9示出了根据本申请实施例的一种定时器中断函数的处理流程图,如图9所示,在每次中断计数的变量加1后,第一***将得到的中断计数和之前计算的此次传输所需的中断数量进行比较,如果中断计数大于中断数量,则关闭定时器,确定请求命令对应的硬件接口信号已经生成。如果中断计数小于或等于中断数量,则根据中断计数和中断数量确定当前要处理的字段,判断下次需要进行信号转换的逻辑位信息的逻辑位是否为1,如果不是,则更新初次匹配值为3×tBIT/4,如果是1,则更新初次匹配值为tBIT/4,从而实现控制信号生成端口的电平变化。
在一种可选的实施例中,本申请中的硬件接口***可以通过双***实现,可选地,在通过第一***检测到第二***触发的第一请求的情况下,获取请求数据,其中,第一***和第二***在同一处理器上运行,请求数据由第二***生成,第二***的业务响应速度小于第一***的业务响应速度。最后,由第一***对请求数据进行解析,得到请求命令。
可选地,第二***可以是各种类型的软件***,例如linux***,本申请对于第二***的类型也不做过多限定。此外,为了顺利地持续生成硬件接口信号,第一***的空闲计算资源大于第二***的空闲计算资源,换言之,本申请选择空闲资源更多的***生成硬件接口信号,从而避免由于***资源不足导致的硬件接口信号无法持续生成的问题。
在另一种可选的实施例中,可以设置第一***的空闲计算资源大于预设阈值,预设阈值用于表征持续生成硬件接口信号时所需的最大计算资源值。
可选地,在获取请求数据之前,本申请通过第二***将请求数据存储至目标内存中,并在请求数据存储完毕之后,通过第二***触发第一请求,其中,第一请求用于通知第一***从目标内存中读取请求数据,目标内存为第一***和第二***均能够访问的内存。
如图10所示,以第一***为RTOS***,第二***为Linux***,硬件接口信号为PECI信号为例。本申请将芯片中PECI通信协议的软件处理流程分为命令请求与命令响应两个过程,下面对上述两个过程分别进行详细阐述。
如图10所示,针对命令请求过程,首先由Linux***中涉及PECI业务的上层应用(如故障诊断、CPU温度获取等)根据需要主动发起PECI请求命令,这些请求命令包括但不限于基本的Ping()命令,获取CPU温度命令及读取MSR寄存器信息命令等,不同的PECI请求命令的代码实现由对应的接口函数完成。
可选地,Linux***采用图10中的命令参数结构化模块,按照PECI协议规范将各请求命令的目标地址、读写长度、命令码、para参数等请求数据写入目标内存中,待请求数据全部写入目标内存之后,Linux***通过图10中的中断事件发生与检测功能模块产生第一请求通知RTOS***。其中,第一请求可以是一种SGI中断请求(software generatedinterrupt,一种处理器核之间的通信中断请求)。
需要注意到的是,在通过第二***将请求数据存储至目标内存中的过程中,第二***将请求数据按照第一数据结构的形式存储至目标内存中,其中,第一数据结构至少包括设备地址、写长度、读长度、命令码以及请求参数,设备地址用于表征目标器件的地址,目标器件为依据硬件接口信号生成响应数据的器件,命令码用于区别不同的请求命令,写长度用于表征从命令码开始到请求数据结束的字节数量,读长度用于表征请求数据中包含完成码以及读数据在内的字节数量,请求参数用于表征请求命令的参数。
如表1所示,表1示出了一种可选的请求数据的数据结构(对应第一数据结构)的示例。
表1
可选地,如图10所示,RTOS***检测到Linux***触发的第一请求后,读取目标内存中的请求数据,然后通过图10中的命令解析与参数提取功能模块完成数据解析过程。接着,PECI命令和参数匹配功能模块将根据解析出的数据确立对应的PECI请求命令和命令参数,并最终通过图10中的PECI波形生成与发送模块从BMC的GPIO端口发出PECI信号。
在一种可选的实施例中,第一***还可以接收硬件接口信号对应的响应数据,其中,响应数据的传输形式与硬件接口信号的传输形式相同。其次,第一***还将响应数据的数据结构调整为第二数据结构。
另外,在将响应数据的数据结构调整为第二数据结构之后,本申请通过第一***触发第二请求,其中,第二请求用于通知第二***读取响应数据。
可选地,仍以硬件接口信号为PECI信号为例,图10还示出了命令响应过程。如图10所示,首先由RTOS***接收PECI总线传来的响应数据,然后经图10中的PECI命令解析与参数提取功能模块完成数据解析,以将响应数据的信号形式从硬件接口信号的形式转换为软件信号的形式,例如,识别硬件接口信号中的高电平信号与低电平信号之间的波形变化,从而得到对应的逻辑位信息,基于逻辑为信息得到软件信号数据。解析后的响应数据经命令参数结构化模块进行调整并写入目标内存中。待解析后的响应数据全部写入完毕后,RTOS***的中断事件发生与检测模块触发第二请求通知Linux***。Linux***检测到第二请求,主动读取目标内存中存储的解析后的响应数据,数据经命令解析与参数提取模块处理后返回给上层应用。其中,第二请求也是一种SGI中断请求。
需要注意到的是,图10中的共享内存即为本申请中的目标内存,在本申请中,目标内存除了可以是共享内存之外,还可以是其他内存,例如,随机存取存储器(Random AccessMemory,简称为RAM)、闪存存储器(Flash)等等。
在一种可选的实施例中,鉴于上述的第一请求和第二请求均可以是一种中断请求(例如SGI中断请求),以下对中断请求进行说明。
可选地,在不同操作***之间进行处理资源的抢占和释放可以是通过核间中断完成的,例如,SGI中断请求,一个操作***还可以通过IPI(Inter-Processor Interrupt,处理器间中断)向另一个操作***发出资源抢占请求(例如,核心抢占请求)或者资源释放请求(例如,核心释放请求),以请求进行处理资源的抢占或者释放。以Linux***为例,在Linux***中可以基于自定义的中断向量表及异构操作***间的中断事件实现核间通信。这里,IPI是在SOC(System on Chip,***级芯片,也称片上***)内多个核心(core)之间触发的中断,有别于常见的外设中断,因此核心可以专门预留部分中断号给IPI,在ARM 64架构(一种CPU构架)上是0-15这16个中断号。
在一个示例性实施例中,通过核间通信接口可以将第一操作***(可对应上述的第一***)的第一交互请求传输至第二操作***,处理方式包括以下至少之一:
通过核间通信接口将中断号为第一中断号的第一抢占请求传输至第二操作***(可对应上述的第二***),其中,第一抢占请求用于请求抢占第二操作***的处理资源;
通过核间通信接口将中断号为第二中断号的资源释放请求传输至第二操作***,其中,资源释放请求用于请求将第一操作***所占用的处理资源释放给第二操作***。
在本实施例中,在不同操作***之间进行处理资源的抢占和释放可以是通过核间中断完成的,可以定义不同的中断事件对不同的资源交互类型,而不同的中断事件可以对应于不同的中断号,其中,为第一操作***向第二操作***申请抢占处理资源的第一中断事件所分配的中断号为第一中断号,为第一操作***主动向第二操作***释放处理资源的第二中断事件所分配的中断号为第二中断号。
作为一种可选的实施方式,第一交互请求可以是第一抢占请求,即,用于请求抢占第二操作***的处理资源的请求,第一操作***可以通过核间通信接口将中断号为第一中断号的第一抢占请求传输至第二操作***,即,中断号为第一中断号的核间通信中断的触发源为第一操作***,响应源为第二操作***,此核间通信中断的含义为第一操作***抢占第二操作***的处理资源。
作为另一种可选的实施方式,第一交互请求可以是资源释放请求,即,用于请求将第一操作***所占用的处理资源释放给第二操作***,第一操作***可以通过核间通信接口将中断号为第二中断号的资源释放请求传输至第二操作***,即,中断号为第二中断号的核间通信中断的触发源为第一操作***,响应源为第二操作***,此核间通信中断的含义为第一操作***主动释放处理资源给第二操作***。
通过本实施例,通过分配用于在不同操作***间抢占和主动释放处理资源的中断号,通过核间通信中断的方式进行操作***间的资源调度,提高了资源调度的准确性。
在一个示例性实施例中,通过核间通信接口将第二操作***的第二交互请求传输至第一操作***,包括:
通过核间通信接口将中断号为第三中断号的第二抢占请求传输至第二操作***,其中,第二抢占请求用于请求抢占第一操作***的处理资源。
在本实施例中,与前述实施例中类似的,在不同操作***之间进行处理资源的抢占和释放可以是通过核间中断完成的,可以定义不同的中断事件对不同的资源交互类型,而不同的中断事件可以对应于不同的中断号,其中,为第二操作***向第一操作***申请抢占处理资源的第三中断事件所分配的中断号为第三中断号。
可选地,第二交互请求可以是第二抢占请求,即,用于请求抢占第一操作***的处理资源的请求,第二操作***可以通过核间通信接口将中断号为第三中断号的第二抢占请求传输至第一操作***,即,中断号为第三中断号的核间通信中断的触发源为第二操作***,响应源为第一操作***,此核间通信中断的含义为第二操作***抢占第一操作***的处理资源。
通过本实施例,通过分配用于在不同操作***间抢占处理资源的中断号,通过核间通信中断的方式进行操作***间的资源调度,提高了资源调度的准确性。
在一个示例性实施例中,还可以通过核间通信接口获取第一操作***响应第二交互请求返回的第二交互响应,包括以下至少之一:
通过核间通信接口将中断号为第四中断号的允许资源释放响应传输至第二操作***,其中,允许资源释放响应用于指示第一操作***允许第二操作***抢占第一操作***的处理资源;
通过核间通信接口将中断号为第五中断号的拒绝资源释放响应传输至第二操作***,其中,拒绝资源释放响应用于指示第一操作***拒绝第二操作***抢占第一操作***的处理资源。
在本实施例中,与前述实施例中类似的,在不同操作***之间进行处理资源的抢占和释放可以是通过核间中断完成的,可以定义不同的中断事件对不同的资源交互类型,而不同的中断事件可以对应于不同的中断号,其中,为第二操作***向第二操作***申请返回资源抢占响应的第四中断事件和第五中断时间所分配的中断号为第五中断号,其中,第四中断事件为允许资源抢占的中断事件,第五中断事件为拒绝资源抢占的中断事件。
作为一种可选的实施方式,如果第一操作***确定允许第二操作***占用其至少部分处理资源,第一操作***可以通过核间通信接口将中断号为第四中断号的允许资源释放响应传输至第二操作***,即,中断号为第四中断号的核间通信中断的触发源为第一操作***,响应源为第二操作***,此核间通信中断的含义为第一操作***被动释放处理资源给第二操作***。
作为另一种可选的实施方式,如果第一操作***确定拒绝第二操作***占用其处理资源,第一操作***可以通过核间通信接口将中断号为第五中断号的拒绝资源释放响应传输至第二操作***,即,中断号为第五中断号的核间通信中断的触发源为第一操作***,响应源为第二操作***,此核间通信中断的含义为第一操作***拒绝释放处理资源给第二操作***。
通过本实施例,通过分配用于在不同操作***间允许抢占处理资源和拒绝抢占处理资源的中断号,通过核间通信中断的方式进行操作***间的资源调度,提高了资源调度的准确性。
作为一种可选示例,下面以RTOS***和Linux***为例对核间通信中断进行解释说明。在Linux***中可以基于自定义的中断向量表及异构操作***间的中断事件实现核间通信。Linux操作***充分利用SGI未定义的位号,实现终端信号的自定义,降低核间通信的成本。未定义的位号可以是8-15号,在多核异构操作***中,为了最大程度的兼容当下的资源分配方式,使用8-15号(共8个中断)表征核间中断向量表,向量表的一种可行分配方案如表2所示:
表2
序号 | 中断号 | 触发源 | 响应源 | 含义 |
1 | 8 | RTOS核心 | Linux核心 | RTOS***主动释放CPU核心 |
2 | 9 | Linux核心 | RTOS核心 | Linux***请求接管CPU核心 |
3 | 10 | RTOS核心 | Linux核心 | RTOS***被动释放CPU核心 |
4 | 11 | RTOS核心 | Linux核心 | RTOS***拒绝释放CPU核心 |
5 | 12 | RTOS核心 | Linux核心 | RTOS抢占CPU核心 |
其中,前述第一中断号对应于中断号12,前述第二中断号对应于中断号8,前述第三中断号对应于中断号9,前述第四中断号对应于中断号10,前述第五中断号对应于中断号11。
如表2所示,主动释放是指:当RTOS***无业务调度(即,处于空闲状态)时,发送中断号为8的SGI中断到Linux***,这时,RTOS的核心资源将由Linux***接管,RTOS***进入休眠状态,被动释放是指:当Linux***业务负载急剧增加时,发送中断号为9的SGI中断到RTOS***,若此时RTOS***正在执行的进程允许被打断(RTOS***上的进程都有优先级,可以根据实际情况配置,如果优先级高于中断9,则不可打断,低于则可以打断),RTOS***将发送中断号为10的SGI中断到Linux***并被动地释放其占用CPU核心资源供Linux***调度使用,此后,RTOS***进入休眠状态,若此时RTOS***不允许被打断,它将发送中断号为11的SGI中断到Linux***,以此告知Linux***,此时RTOS的核心资源无法被释放,此时,Linux***会按照当前的运行策略继续执行,不发生变化。
需要说明的是,核间通信向量表并不是唯一的,并不限于上述表2中所限定的核间通信向量表。
可选地,第二数据结构至少包括:第一校验值、第二校验值以及响应有效数据,其中,第一校验值用于表征请求数据中的校验值,第二检验值用于表征响应数据中的校验值,响应有效数据用于表征响应数据中的完成码以及用于描述目标器件的状态的数据,目标器件为依据硬件接口信号生成响应数据的器件。
如表3所示,表3示出了一种可选的响应数据的数据结构(对应第二数据结构)的示例。
表3
序号 | 成员变量 | 类型 | 含义 |
1 | FCS1(第一校验值) | unsigned char | 请求部分的CRC-8校验值 |
2 | 响应有效数据部分 | unsigned char[32] | 包含完成码及响应数据 |
3 | FCS2(第二校验值) | unsigned char | 响应部分的CRC-8校验值 |
可选地,表4示出了第一请求和第二请求的示例。
表4
在一种可选的实施例中,在根据逻辑位信息和定时器生成请求命令对应的硬件接口信号之后,第一***可以对硬件接口信号的电压进行转换,得到目标硬件接口信号。
可选地,第一***可以将硬件接口信号输入至电压转换器件中,得到电压转换器件输出的目标硬件接口信号。
可选地,上述的电压转换器件可以是CPLD(complex programmable logicdevice,一种复杂的可编程逻辑器件),并且CPLD可以与目标器件相连接,其中,目标器件可以是服务器中的CPU。
以硬件接口信号为PECI信号、芯片为BMC芯片为例,图11示出了根据本申请的一种模拟生成PECI信号的硬件拓扑架构图,如图11所示,BMC芯片(对应图11中的BMC器件)上运行两种软件***,分别为Linux***与RTOS***(两个***可以分别运行在不同的BMC核心上),其中,Linux***用于处理BMC的常规管理业务及PECI业务。所提方法的PECI业务在Linux***中作为上层应用运行,当有业务数据交互需求时(如BMC发起收集故障寄存器信息),Linux***与RTOS***进行交互,进而启动RTOS中的GPIO端口,并由RTOS***模拟PECI的软件模块生成PECI信号。
需要注意到的是,此时从BMC的GPIO端口发出的PECI信号可能无法满足PECI协议电气特性要求,例如,CPU的工作电压为5V,但是BMC的GPIO端口输出的信号的电压为3.3V。为了实现的通用性考虑,本申请可以将生成的PECI信号输入到CPLD的一个GPIO端口中,然后通过CPLD的内部逻辑进行电压转换,转换后的PECI波形满足PECI协议要求,并且满足目标器件对应的电压要求(例如转换后的PECI信号的电压为3.3V)。最后由CPLD的另一个GPIO端口输出PECI信号,并且该GPIO端口与CPU侧标准的PECI接口进行物理连接。
需要注意到的是,本申请中的方案除了可以应用于替代PECI接口生成PECI信号之外,还可以应用在其他硬件接口上,在一种可选的实施例中,表5示出本申请实施例支持的多种硬件接口。
表5
在一种可选的实施例中,图12示出了根据本申请实施例的一种可选的第一***和第二***之间的交互图。如图12所示,Linux***(对应第二***)与RTOS***(对应第一***)的交互具体步骤为:
步骤一:Linux***作为请求命令的发起者与使用者,在触发请求命令前,先将请求数据存储至目标内存中;
步骤二:Linux***触发第一请求通知RTOS***PECI请求数据准备完毕;
步骤三:RTOS***接收到第一请求之后,从目标内存中读取请求数据,并依据请求数据生成硬件接口信号;
步骤四:RTOS***通过接收硬件接口信号对应的响应数据;
步骤五:RTOS***将接收到的响应数据存储至目标内存中;
步骤六:RTOS触发第二请求通知Linux***响应数据准备完毕;
步骤七:Linux***从目标内存中获取响应数据并解析。
由上述内容可知,本申请联合嵌入式***的第一***与第二***,通过核间中断与共享内存的方式实现了嵌入式***中数据的交互,在RTOS***中构建请求命令的波形发生功能模块,通过软件模拟的方式实现嵌入式***与外部器件之间进行硬件接口信号的通信。另外,本申请充分利用RTOS***的高实时性特点,保证了在模拟请求命令波形时时序的准确性,具有灵活高效的特点。通过本申请的方案,能够显著降低芯片设计难度,由于采用软件模拟生成硬件接口信号,为嵌入式***中通信功能与其他业务功能间的优化设计提供了更多可能性,同时由于省去芯片中专门用于实现硬件接口信号通信的控制器,因此能够降低芯片的设计成本和制造成本。
在一个可选的实施方式中,本申请还提供了一种操作***的启动控制过程,该过程包括如下步骤:
步骤A,通过处理器的第一处理器核心上运行的第一操作***经由第一总线对目标设备的硬件控制器进行控制,以对目标设备的运行状态进行控制。
对于如服务器、个人电脑、工控机等设备,可以配备一些特定设备执行与设备运行相关的操作。相关技术中,通常在***上电后,这些特定设备就开始工作。而由于***上电后,运行在处理器上的操作***会经过一段时间才能正常接管特定设备,进行特定设备的运行状态控制,而在操作***启动的过程中,特定设备是不可控的。
例如,在***上电后风扇就开始工作,由于***上电后跑在CPU上的操作***会经过一段时间才能正常接管风扇,进行风扇转速的设置,所以在操作***启动过程中风扇是不可控的。
例如,为了实现在操作***启动的过程中对风扇可以控制,服务器通过采用BMC结合CPLD的控制方式,个人电脑采用EC芯片的控制方式(EC芯片根据温度调整风扇转速的功能),工控机采用定制芯片的控制方式,在服务器、个人电脑、工控机操作***启动过程中,CPLD、EC芯片、定制芯片就会介入控制风扇的转速,等待操作***完全启动后,风扇的控制权就会交给操作***中的应用程序进行控制。
为了至少部分解决上述技术问题,可以采用多核多***(例如,多核双***)的启动控制方式,在处理器的不同处理器核心上运行嵌入式***的不同操作***,不同的操作***的响应速度不同,对于第二操作***未启动、重启或者其他无法对特定设备的运行状态进行控制的情况,可以由响应速度高于第二操作***的第一操作***对特定设备的运行状态进行控制,可以降低特定设备的运行状态不可控的情况,同时,由于不需要增加额外的成本,此外还具有很好的可扩展性。
在本实施方式中,在第二操作***未启动、重启或者其他无法对目标设备的运行状态进行控制的情况下,可以通过第一操作***经由第一总线对目标设备的硬件控制器进行控制,以对目标设备的运行状态进行控制。这里的目标设备可以是风扇,或者其他需要在***启动是运行的设备,对于风扇,其对应的硬件控制器为风扇控制器,例如,PWM(PulseWidth Modulation,脉冲宽度调制)控制器、FanTach(风扇转速)控制器。这里,使用第一操作***(例如,RTOS***)代替传统的CPLD、EC芯片、定制芯片,一方面节省硬件成本,另一方面由于设备控制是由软件实现的,可扩展性较高。
例如,基于BMC双核实现双***,RTOS***和Linux***,基于多核双***实现风扇,利用RTOS***实时性高的特性,在Linux***启动的过程中,可以由RTOS***代替CPLD、EC芯片、定制芯片控制风扇,即,接管风扇控制权,以足够快的速度对风扇的运行状态进行控制。
步骤B,引导在处理器的第二处理器核心上启动第二操作***。
在***上电时或者第二操作***重启时,可以引导在处理器的第二处理器核心上启动第二操作***,以使得第二操作***在第二处理器核心上运行。这里,在第二处理器核心上启动第二操作***是指将第二处理器核心调度给第二操作***,操作***的***文件或者镜像文件可以存储在处理器所在芯片上或者芯片以外的存储器内,例如,外部RAM(Random Access Memory,随机存取存储器)内。
步骤C,在第二操作***启动之后,通过第二操作***经由第一总线接管硬件控制器,以接管目标设备的控制权。
在第二操作***启动完成之后,可以一直由第一操作***对目标设备的运行状态进行控制,考虑到在多核处理器上运行多个操作***需要在多个操作***之间进行数据交互,以及方便由一个操作***进行设备的总体控制,也可以由第二操作***接管目标设备的控制权。例如,可以通过第二操作***经由第一总线接管硬件控制器。第二操作***接管目标设备的控制权的方式可以是:在第二操作***启动之后,由第二操作***向第一操作***发送设备接管请求,例如,通过第二总线发送中断请求,以请求接管目标设备的硬件控制器。第一操作***可以接收第二操作***发送的设备接管请求,将目标设备的控制权转交给第二操作***,还可以执行与目标设备的控制权交接相关的操作,例如,停止运行用于对目标设备的运行状态进行控制的业务(进程)。
例如,等到Linux***完全启动后,RTOS***将风扇的控制权转交给Linux***,由Linux***对风扇进行控制。上述过程可以是在***上电之后执行的,即,采用多核双***的启动方式,先启动RTOS***,利于更早介入风扇控制,而等到Linux***完全启动之后,RTOS***将风扇的控制权转交给Linux***进行控制。
在一个示例性实施例中,通过处理器的第一处理器核心上运行的第一操作***经由第一总线对目标设备的硬件控制器进行控制之前,还包括:在处理器所在的芯片上电之后,通过处理器唤醒第一处理器核心;通过第一处理器核心运行第一操作***的引导加载程序,以引导第一操作***在第一处理器核心上启动。
整个***按照工作时段可以划分为两个阶段,初始启动阶段和实时运行阶段,本实施例中的启动控制方法可以是在初始启动阶段或者实时运行阶段执行的。对于初始启动阶段,初始启动阶段起于***上电,即,处理器所在的芯片上电,***上电后会唤醒一个核心去执行操作***的引导动作,其余核心暂时处于休眠状态,被唤醒的核心可以是第一处理器核心。
可选地,上电后***将首先执行一个预置的核心调度策略(启动引导策略),即,由处理器的一个处理器核心执行核心调度策略,核心调度策略可以存储在SOC片上的RAM或Norflash(非易失闪存)中,该调度策略可以根据不同的设计需求进行灵活配置,其主要功能包括:指定不同操作***需要运行的初始处理资源(处理器核心),确定异构操作***的引导过程,芯片上电可以是指SOC芯片层面的上电。
在第一处理器核心唤醒之后,可以通过引导加载程序在第一处理器核心上引导运行第一操作***:可以,由第一处理器核心通过引导加载程序引导第一操作***在第一处理器核心上启动。引导加载(BootLoader)程序可以位于电脑或其他计算机应用上,其是指用于引导操作***加载的程序,例如,BootRom里的固有程序,固有程序指的是引导操作***启动的代码,属于BootLoader程序,BootRom是CPU片上的嵌入处理器芯片内的一小块掩模ROM(Read-Only Memory,只读存储器)或者写保护闪存。
在初始启动阶段,通过引导加载程序引导操作***对应的处理器核心上启动,可以提高操作***启动的成功率,同时为实时运行阶段做准备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
根据本申请实施例,还提供了一种用于实施上述硬件接口信号的生成方法的硬件接口信号的生成装置,如图13所示,该硬件接口信号的生成装置包括:获取模块1301、确定模块1302以及生成模块1303。
可选地,获取模块1301,用于通过第一***获取请求命令;确定模块1302,用于确定请求命令对应的多个逻辑位信息;生成模块1303,用于根据多个逻辑位信息和定时器生成请求命令对应的硬件接口信号。
在本申请实施例提供的硬件接口信号的生成装置中,生成模块包括:第一确定单元和第二生成单元。其中,第一确定单元,用于根据多个逻辑位信息确定定时器对应的重装载值和初次匹配值;第二生成单元,用于根据重装载值和初次匹配值生成请求命令对应的硬件接口信号。
在本申请实施例提供的硬件接口信号的生成装置中,第一确定单元还包括:第一获取子单元、第一确定子单元以及第二确定子单元。其中,第一获取子单元,用于获取每个逻辑位信息对应的运行时长;第一确定子单元,用于根据运行时长确定重装载值;第二确定子单元,用于根据每个逻辑位信息的逻辑位确定定时器对应的一个初次匹配值,得到定时器对应的多个初次匹配值,其中,每个逻辑位信息对应的初次匹配值用于控制该逻辑位信息处于高电平时的时长,以控制该逻辑位信息的逻辑位为0或1。
在本申请实施例提供的硬件接口信号的生成装置中,第二生成单元还包括:第一生成子单元,用于按照请求命令对应的多个逻辑位信息之间的先后顺序,根据重装载值和每个逻辑位信息对应的初次匹配值依次生成每个逻辑位信息对应的硬件接口子信号,得到硬件接口信号。
在本申请实施例提供的硬件接口信号的生成装置中,第一生成子单元还包括:递减子模块、第一信号输出子模块、第二信号输出子模块以及第一确定子模块。其中,递减子模块,用于依据定时器对每个逻辑位信息对应的重装载值进行递减操作;第一信号输出子模块,用于在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之前,通过第一***输出该逻辑位信息对应的第一信号,其中,第一信号为高电平的信号;第二信号输出子模块,用于在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之后,通过第一***输出该逻辑位信息对应的第二信号,其中,第一信号为低电平的信号;第一确定子模块,用于在每个逻辑位信息对应的重装载值递减至0时,确定生成该逻辑位信息对应的硬件接口子信号,得到每个逻辑位信息对应的硬件接口子信号,其中,每个逻辑位信息对应的硬件接口子信号由该逻辑位信息对应的第一信号和第二信号组成。
在本申请实施例提供的硬件接口信号的生成装置中,硬件接口信号的生成装置还包括:第一中断触发模块、第二中断触发模块。其中,第一中断触发模块,用于在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值时,触发该逻辑位信息对应的第一中断;第二中断触发模块,用于在每个逻辑位信息对应的重装载值递减至0时,触发该逻辑位信息对应的第二中断。
在本申请实施例提供的硬件接口信号的生成装置中,硬件接口信号的生成装置还包括:中断计数模块、字段确定模块。其中,中断计数模块,用于每触发一个第一中断或第二中断,进行一次中断计数;字段确定模块,用于依据中断计数确定请求命令中当前正在进行信号转换处理的字段,其中,信号转换处理用于生成请求命令中的每个字段对应的逻辑位信息所对应的硬件接口子信号。
在本申请实施例提供的硬件接口信号的生成装置中,字段确定模块还包括:第二获取单元、第二确定单元、第三确定单元以及第四确定单元。其中,第二获取单元,用于获取请求命令中每个字段对应的字节个数;第二确定单元,用于根据字节个数确定请求命令对应的逻辑位信息的个数,其中,请求命令对应的每个字节与一个逻辑位信息相对应;第三确定单元,用于依据逻辑位信息的个数确定请求命令对应的中断数量,其中,请求命令对应的中断数量为逻辑位信息的个数的两倍;第四确定单元,用于根据中断数量和中断计数确定请求命令中当前正在进行信号转换处理的字段。
在本申请实施例提供的硬件接口信号的生成装置中,第四确定单元还包括:第三确定子单元、第四确定子单元以及第五确定子单元。其中,第三确定子单元,用于依据中断数量和中断计数确定当前正在转换为硬件接口子信号的逻辑位信息;第四确定子单元,用于确定当前正在转换为硬件接口子信号的逻辑位信息所对应的字节为目标字节;第五确定子单元,用于确定目标字节对应的字段为请求命令中当前正在进行信号转换处理的字段。
在本申请实施例提供的硬件接口信号的生成装置中,请求命令对应的请求数据的数据结构为第一数据结构,其中,第一数据结构至少包括设备地址、写长度、读长度、命令码以及请求参数,设备地址用于表征目标器件的地址,目标器件为依据硬件接口信号生成响应数据的器件,命令码用于区别不同的请求命令,写长度用于表征从命令码开始到请求数据结束的字节数量,读长度用于表征请求数据中包含完成码以及读数据在内的字节数量,请求参数用于表征请求命令的参数。
在本申请实施例提供的硬件接口信号的生成装置中,获取模块还包括:请求数据获取单元和请求数据解析单元。其中,请求数据获取单元,用于在通过第一***检测到第二***触发的第一请求的情况下,获取请求数据,其中,第一***和第二***在同一处理器上运行,请求数据由第二***生成,第二***的业务响应速度小于第一***的业务响应速度;请求数据解析单元,用于对请求数据进行解析,得到请求命令。
在本申请实施例提供的硬件接口信号的生成装置中,硬件接口信号的生成装置还包括:请求数据存储模块,用于通过第二***将请求数据存储至目标内存中,并在请求数据存储完毕之后,通过第二***触发第一请求,其中,第一请求用于通知第一***从目标内存中读取请求数据,目标内存为第一***和第二***均能够访问的内存。
在本申请实施例提供的硬件接口信号的生成装置中,硬件接口信号的生成装置:电压转换模块,用于对硬件接口信号的电压进行转换,得到目标硬件接口信号。
在本申请实施例提供的硬件接口信号的生成装置中,电压转换模块还包括:信号输入单元,用于将硬件接口信号输入至电压转换器件中,得到电压转换器件输出的目标硬件接口信号。
在本申请实施例提供的硬件接口信号的生成装置中,硬件接口信号的生成装置还包括:响应数据接收模块以及数据结构调整模块。其中,响应数据接收模块,用于通过第一***接收硬件接口信号对应的响应数据,其中,响应数据的传输形式与硬件接口信号的传输形式相同;数据结构调整模块,用于将响应数据的数据结构调整为第二数据结构。
在本申请实施例提供的硬件接口信号的生成装置中,第二数据结构至少包括:第一校验值、第二校验值以及响应有效数据,其中,第一校验值用于表征请求数据中的校验值,第二检验值用于表征响应数据中的校验值,响应有效数据用于表征响应数据中的完成码以及用于描述目标器件的状态的数据,目标器件为依据硬件接口信号生成响应数据的器件。
在本申请实施例提供的硬件接口信号的生成装置中,硬件接口信号的生成装置还包括:第二请求触发模块,用于通过第一***触发第二请求,其中,第二请求用于通知第二***读取响应数据。
在本申请实施例提供的硬件接口信号的生成装置中,硬件接口信号为PECI信号、HDMI信号、SGMII信号、RGMII信号、GPIO信号以及SPI信号中的任意一种信号。
本申请的实施例还提供了一种计算机可读存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述所提供的硬件接口信号的生成方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述所提供的硬件接口信号的生成方法。
本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:通过第一***获取请求命令;确定请求命令对应的多个逻辑位信息;根据多个逻辑位信息和定时器生成请求命令对应的硬件接口信号。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:根据多个逻辑位信息确定定时器对应的重装载值和初次匹配值;根据重装载值和初次匹配值生成请求命令对应的硬件接口信号。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:获取每个逻辑位信息对应的运行时长;根据运行时长确定重装载值;根据每个逻辑位信息的逻辑位确定定时器对应的一个初次匹配值,得到定时器对应的多个初次匹配值,其中,每个逻辑位信息对应的初次匹配值用于控制该逻辑位信息处于高电平时的时长,以控制该逻辑位信息的逻辑位为0或1。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:按照请求命令对应的多个逻辑位信息之间的先后顺序,根据重装载值和每个逻辑位信息对应的初次匹配值依次生成每个逻辑位信息对应的硬件接口子信号,得到硬件接口信号。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:依据定时器对每个逻辑位信息对应的重装载值进行递减操作;在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之前,通过第一***输出该逻辑位信息对应的第一信号,其中,第一信号为高电平的信号;在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之后,通过第一***输出该逻辑位信息对应的第二信号,其中,第一信号为低电平的信号;在每个逻辑位信息对应的重装载值递减至0时,确定生成该逻辑位信息对应的硬件接口子信号,得到每个逻辑位信息对应的硬件接口子信号,其中,每个逻辑位信息对应的硬件接口子信号由该逻辑位信息对应的第一信号和第二信号组成。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值时,触发该逻辑位信息对应的第一中断;在每个逻辑位信息对应的重装载值递减至0时,触发该逻辑位信息对应的第二中断。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:在根据重装载值和每个逻辑位信息对应的初次匹配值依次生成每个逻辑位信息对应的硬件接口子信号的过程中,每触发一个第一中断或第二中断,进行一次中断计数;依据中断计数确定请求命令中当前正在进行信号转换处理的字段,其中,信号转换处理用于生成请求命令中的每个字段对应的逻辑位信息所对应的硬件接口子信号。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:获取请求命令中每个字段对应的字节个数;根据字节个数确定请求命令对应的逻辑位信息的个数,其中,请求命令对应的每个字节与一个逻辑位信息相对应;依据逻辑位信息的个数确定请求命令对应的中断数量,其中,请求命令对应的中断数量为逻辑位信息的个数的两倍;根据中断数量和中断计数确定请求命令中当前正在进行信号转换处理的字段。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:依据中断数量和中断计数确定当前正在转换为硬件接口子信号的逻辑位信息;确定当前正在转换为硬件接口子信号的逻辑位信息所对应的字节为目标字节;确定目标字节对应的字段为请求命令中当前正在进行信号转换处理的字段。
另外,请求命令对应的请求数据的数据结构为第一数据结构,其中,第一数据结构至少包括设备地址、写长度、读长度、命令码以及请求参数,设备地址用于表征目标器件的地址,目标器件为依据硬件接口信号生成响应数据的器件,命令码用于区别不同的请求命令,写长度用于表征从命令码开始到请求数据结束的字节数量,读长度用于表征请求数据中包含完成码以及读数据在内的字节数量,请求参数用于表征请求命令的参数。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:在通过第一***检测到第二***触发的第一请求的情况下,获取请求数据,其中,第一***和第二***在同一处理器上运行,请求数据由第二***生成,第二***的业务响应速度小于第一***的业务响应速度;对请求数据进行解析,得到请求命令。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:在获取请求数据之前,通过第二***将请求数据存储至目标内存中,并在请求数据存储完毕之后,通过第二***触发第一请求,其中,第一请求用于通知第一***从目标内存中读取请求数据,目标内存为第一***和第二***均能够访问的内存。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:在根据逻辑位信息和定时器生成请求命令对应的硬件接口信号之后,对硬件接口信号的电压进行转换,得到目标硬件接口信号。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:将硬件接口信号输入至电压转换器件中,得到电压转换器件输出的目标硬件接口信号。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:在根据逻辑位信息和定时器生成请求命令对应的硬件接口信号之后,通过第一***接收硬件接口信号对应的响应数据,其中,响应数据的传输形式与硬件接口信号的传输形式相同;将响应数据的数据结构调整为第二数据结构。
可选地,第二数据结构至少包括:第一校验值、第二校验值以及响应有效数据,其中,第一校验值用于表征请求数据中的校验值,第二检验值用于表征响应数据中的校验值,响应有效数据用于表征响应数据中的完成码以及用于描述目标器件的状态的数据,目标器件为依据硬件接口信号生成响应数据的器件。
上述计算机终端可以执行硬件接口信号的生成方法中以下步骤的程序代码:在将响应数据的数据结构调整为第二数据结构之后,通过第一***触发第二请求,其中,第二请求用于通知第二***读取响应数据。
另外,硬件接口信号为PECI信号、HDMI信号、SGMII信号、RGMII信号、GPIO信号以及SPI信号中的任意一种信号。
可选地,图14是根据本申请实施例的一种计算机终端的结构框图。如图14所示,该计算机终端14可以包括:一个或多个(图14中仅示出一个)处理器102、存储器104。该计算机终端14还可以包括存储控制器,通过存储控制器对存储器104进行控制和管理;该计算机终端10还可以包括外设接口,通过外设接口连接射频模块、音频模块以及显示屏等。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的硬件接口信号的生成方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的硬件接口信号的生成方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:通过第一处理器内核中的第一***检测是否接收到串口切换指令,其中,串口切换指令中携带有待切换至的目标串口的信息;在接收到串口切换指令的情况下,则通过第一***将串口切换指令发送至第二处理器内核中的第二***,其中,第二***的业务响应速度小于第一***的业务响应速度;通过第二***依据串口切换指令执行串口切换。
本领域普通技术人员可以理解,图14所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图14其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图14中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图14所示不同的配置。
本申请实施例中还提供了一种嵌入式***,如图15所示,该嵌入式***可以包括:芯片和至少两个操作***,其中,芯片包括处理器1502、硬件控制器1504、第一总线1506和第二总线1508,其中,第一总线1506的带宽高于第二总线1508带宽,且第一总线1506被配置为多主多从模式,第二总线1508被配置为一主多从模式;至少两个操作***基于处理器1502运行;至少两个操作***通过第一总线1506进行通信;至少两个操作***通过第二总线1508实现对硬件控制器的控制。
其中,上述芯片可以是BMC芯片;上述处理器可以是多核处理器,上述硬件控制器可以用于控制连接到对应的对外接口的外部设备;上述第一总线被配置为多主多从模式,其可以是处理器的多个处理器内核之间进行通信所使用的总线,例如,AHB(Advanced HighPerformance Bus,高级高性能总线),上述第二总线被配置为一主多从模式,其可以是处理器对硬件控制器之间控制所使用的总线,例如,APB(Advanced Peripheral Bus,***总线),第一总线的带宽高于第二总线带宽。
嵌入式***可以包括至少两个操作***,至少两个操作***基于处理器运行,而处理器的处理资源被动态分配给至少两个操作***,处理器的处理资源包括处理器核心,至少两个操作***通过第一总线进行通信,至少两个操作***通过第二总线实现对硬件控制器的控制。
可选地,硬件控制器可以包括一种或多种,可以包括但不限于以下至少之一的芯片外设对应的控制器:I2C,USB(Universal Serial Bus,通用串行总线),UART,ADC(Analogto Digital Converter,模拟数字转换器),JTAG(Joint Test Action Group,联合测试工作组),RTC(Real_Time Clock,实时时钟),GPIO(General Purpose Input/Output,通用输入输出),WDT(Watch Dog Timer,看门狗),虚拟UART(Virtual UART),超级I/O(Super I/O),SGPIO(Serial General Purpose Input/Output,串行通用输入输出),PWM(PulseWidth Modulation,脉冲宽度调制),FanTach(风扇调速),Timer(时钟),PECI(PlatformEnvironment Control Interface,平台环境式控制接口),邮箱(MailBox),还可以包括其他类型的控制器。对外接口可以包括一种或多种,可以包括但不限于与上述任一控制器对应的对外接口。
上述提及了第一总线被配置为多主多从模式,其可以是处理器的多个处理器内核之间进行通信所使用的总线,例如,AHB(Advanced High Performance Bus,高级高性能总线),第二总线被配置为一主多从模式,其可以是处理器对硬件控制器之间控制所使用的总线,例如,APB(Advanced Peripheral Bus,***总线),第一总线的带宽高于第二总线带宽。以下对此进行展开说明。第一总线在AMBA2中就已经定义,第一总线一开始主要是作为***高速总线使用,适用于高性能,低功耗的***设计,主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上***总线。在AMBA协议中,AHB主要面向***级高带宽高性能的***互联设计,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多master,多slave的互联模式;可配置32位-128位总线宽度;支持字节、半字节和字的传输。AHB***由主模块、从模块和基础结构(Infrastructure)3部分组成,整个第一总线上的传输都由主模块发出,由从模块负责回应。基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummy Master)所组成。
APB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像AHB支持多个主模块,在APB里面唯一的主模块就是APB桥。其特点包括:
①可工作在高频下;
②协议简单:无复杂的时序;
③同步总线:总线上所有的transaction(读写操作)都依赖于时钟的上升沿;
④一主多从:一般情况下,APB挂在第一总线***下,通过AHB-APB Bridge将事务在第一总线***之间进行转化,此时Bridgre即为APB的master,其他的***设备均为slave;
⑤接口简单:相对应AXI、AHB来说,接口比较简单;
⑥低功耗;
⑦可连接多种***设备:I2C、SPI、Timer、Keypad、UART。
在一种可选的实施例中,在AHB的多主(master)多从(slave)模式下,Master会首先向仲裁发送发文请求,仲裁决定合适让master获取总线访问的权限,master获取权限之后会将数据与控制信号发送到仲裁器,仲裁器通过地址解析判断对应的slave通路,然后将请求发送到对应的目的端。同样响应的数据会通过Decoder解析,然后返回给对应的master。通过这种多路复用的机制实现多对多的访问。
在一种可选的实施例中,在APB的一主多从模式下,通常APB挂在第一总线***下,通过AHB-APB Bridge将事务在第一总线***之间进行转化,此时Bridgre即为APB的master,其他的***设备均为slave。数据请求只能由Master发向slave,slave收到请求后返回相应的响应数据给master,此过程可以实现一对多的访问,且访问不涉及第一总线中的仲裁和Decoder解析操作。
此外,第一总线还具有高带宽特性,用于***中高性能模块(CPU、DMA等)间的互联,APB总线带宽较低,用于***中周边外设(UART、I2C等)之间的连接。第一总线逻辑电路和总线协议复杂,APB总线接口电路和总线协议相对简单。
可选地,针对RTOS休眠唤醒时CPU资源占用的情况,RTOS休眠后完全不占用CPU核心资源,当它被唤醒时(比如外设或唤醒定时器产生中断触发唤醒动作),会通过核间中断重新获取核心0的控制权。上述从休眠状态到重新获取核心控制权期间,RTOS***都不需要核心的参与。
其中,在本实施例中,所提供的嵌入式***可以用于实现生成硬件接口信号。嵌入式***中包括的两个操作***可以是第一***和第二***。在本实施例中,第一***用于获取请求命令,确定请求命令对应的多个逻辑位信息,以及根据多个逻辑位信息和定时器生成请求命令对应的硬件接口信号。
可选地,第一***,用于根据多个逻辑位信息确定定时器对应的重装载值和初次匹配值;第一***,用于根据重装载值和初次匹配值生成请求命令对应的硬件接口信号。
可选地,第一***,用于获取每个逻辑位信息对应的运行时长;第一***,用于根据运行时长确定重装载值;第一***,用于根据每个逻辑位信息的逻辑位确定定时器对应的一个初次匹配值,得到定时器对应的多个初次匹配值,其中,每个逻辑位信息对应的初次匹配值用于控制该逻辑位信息处于高电平时的时长,以控制该逻辑位信息的逻辑位为0或1。
可选地,第一***,用于按照请求命令对应的多个逻辑位信息之间的先后顺序,根据重装载值和每个逻辑位信息对应的初次匹配值依次生成每个逻辑位信息对应的硬件接口子信号,得到硬件接口信号。
可选地,第一***,用于依据定时器对每个逻辑位信息对应的重装载值进行递减操作;第一***,用于在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之前,通过第一***输出该逻辑位信息对应的第一信号,其中,第一信号为高电平的信号;第一***,用于在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之后,通过第一***输出该逻辑位信息对应的第二信号,其中,第二信号为低电平的信号;第一***,用于在每个逻辑位信息对应的重装载值递减至0时,确定生成该逻辑位信息对应的硬件接口子信号,得到每个逻辑位信息对应的硬件接口子信号,其中,每个逻辑位信息对应的硬件接口子信号由该逻辑位信息对应的第一信号和第二信号组成。
可选地,第一***,用于在每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值时,触发该逻辑位信息对应的第一中断;第一***,用于在每个逻辑位信息对应的重装载值递减至0时,触发该逻辑位信息对应的第二中断。
可选地,第一***,用于每触发一个第一中断或第二中断,进行一次中断计数;第一***,用于依据中断计数确定请求命令中当前正在进行信号转换处理的字段,其中,信号转换处理用于生成请求命令中的每个字段对应的逻辑位信息所对应的硬件接口子信号。
可选地,第一***,用于获取请求命令中每个字段对应的字节个数;第一***,用于根据字节个数确定请求命令对应的逻辑位信息的个数,其中,请求命令对应的每个字节与一个逻辑位信息相对应;第一***,用于依据逻辑位信息的个数确定请求命令对应的中断数量,其中,请求命令对应的中断数量为逻辑位信息的个数的两倍;第一***,用于根据中断数量和中断计数确定请求命令中当前正在进行信号转换处理的字段。
可选地,第一***,用于依据中断数量和中断计数确定当前正在转换为硬件接口子信号的逻辑位信息;第一***,用于确定当前正在转换为硬件接口子信号的逻辑位信息所对应的字节为目标字节;第一***,用于确定目标字节对应的字段为请求命令中当前正在进行信号转换处理的字段。
可选地,请求命令对应的请求数据的数据结构为第一数据结构,其中,第一数据结构至少包括设备地址、写长度、读长度、命令码以及请求参数,设备地址用于表征目标器件的地址,目标器件为依据硬件接口信号生成响应数据的器件,命令码用于区别不同的请求命令,写长度用于表征从命令码开始到请求数据结束的字节数量,读长度用于表征请求数据中包含完成码以及读数据在内的字节数量,请求参数用于表征请求命令的参数。
可选地,嵌入式***还包括第二***,其中,第二***与第一***均在处理器上运行,第二***,用于生成请求数据;第一***,用于在检测到第二***触发的第一请求的情况下,获取请求数据,其中,第二***的业务响应速度小于第一***的业务响应速度;第一***,用于对请求数据进行解析,得到请求命令。
可选地,第二***,用于将请求数据存储至目标内存中,并在请求数据存储完毕之后,触发第一请求,其中,第一请求用于通知第一***从目标内存中读取请求数据,目标内存为第一***和第二***均能够访问的内存。
可选地,第一***,用于对硬件接口信号的电压进行转换,得到目标硬件接口信号。
可选地,第一***,用于将硬件接口信号输入至电压转换器件中,得到电压转换器件输出的目标硬件接口信号。
可选地,第一***,用于接收硬件接口信号对应的响应数据,其中,响应数据的传输形式与硬件接口信号的传输形式相同;第一***,用于将响应数据的数据结构调整为第二数据结构。
可选地,第二数据结构至少包括:第一校验值、第二校验值以及响应有效数据,其中,第一校验值用于表征请求数据中的校验值,第二检验值用于表征响应数据中的校验值,响应有效数据用于表征响应数据中的完成码以及用于描述目标器件的状态的数据,目标器件为依据硬件接口信号生成响应数据的器件。
可选地,第一***,用于触发第二请求,其中,第二请求用于通知第二***读取响应数据。
可选地,硬件接口信号为PECI信号、HDMI信号、SGMII信号、RGMII信号、GPIO信号以及SPI信号中的任意一种信号。
在一种可选的实施例中,上述的第一***和第二***可以分别运行在处理器的不同处理器核心中,因此,第一***和第二***之间的通信为一种核间通信的方式,如图16所示,提供了一种核间通信方法,通过上述实施例的嵌入式***实现,其中,图16中的第一操作***可对应上述的第一***,第二操作***可对应上述的第二***,包括如下步骤:
步骤S1602,第一操作***将目标数据发送至处理器内存中的目标虚拟通道,其中,第一操作***和第二操作***在处理器上运行。
具体地,第一操作***和第二操作***可以是实时操作***,也可以是非实时操作***,第一操心***和第二操作***可以是单核操作***,也可以是多核操作***,目标数据为待发送的数据,目标虚拟通道是内存中的一段空闲存储空间,第一操作***将目标数据发送至处理器内存中的目标虚拟通道是指第一操作***的CPU核将待发送数据写入目标虚拟通道。
步骤S1604,向第二操作***发送中断通知消息。
具体地,第一操作***的CPU核向第二操作***的CPU核发送中断通知消息,中断通知消息中可以携带目标虚拟通道的地址,用于通知第二操作***从目标虚拟通道中获取目标数据,中断通知消息可以是软件触发的,也可以是硬件触发的。
步骤S1606,第二操作***响应中断通知消息,从内存中的目标虚拟通道获取目标数据。
具体地,第二操作***的CPU核响应中断通知消息,从中断通知消息中解析目标虚拟通道的地址,再根据解析的地址定位至内存中的目标虚拟通道,从目标虚拟通道获取目标数据,实现第一操作***和第二操作的***之间的数据交互。
通过上述步骤,在处理器上运行的多个操作***需要互相传输数据时,发送数据的第一操作***将目标数据发送至处理器内存中的目标虚拟通道,并向第二操作***发送中断通知消息,接收数据的第二操作***响应中断通知消息从目标虚拟通道获取目标数据,解决了核间通信过程浪费资源,对操作***的依赖性强的问题,达到减少核间通信过程对资源的浪费,对操作***的依赖的效果。
另外,图17是根据本申请实施例的可选的通信方法的流程图一,如图17所示,具体是非实时操作***向实时操作***发送数据的过程。
首先,非实时操作***的应用层把需要发送的数据按照对应的格式填充好,然后在***的/dev路径生成一个设备文件ipidev,应用层需要从驱动层读写数据的时候,可以先使用***自带的open函数打开设备/dev/ipidev,使用写函数把需要发送的数据从非实时操作***的应用层发送到驱动层,非实时操作***的驱动层把数据放在共享内存中,然后触发软中断通知另一个核的实时操作***去读取数据。
具体地,共享内存区域划分为多个内存通道,每个内存通道对应一个通道结构体(IpiHeader),结构体数据用于记录内存通道的相关信息。非实时操作***的驱动层首先根据要发送数据的大小使用接口GetEmptyChannel在所有的通道中的寻找满足以下两个条件的内存通道:一是通道结构体IpiHeader中的空闲标志Flag不等于0xA5A5A5A5;二是通道结构体IpiHeader中的通道的大小ChannelSize大于要发送数据的大小,寻找满足要求的空闲通道后,把该该通道设置为非空,即设置通道结构体IpiHeader中的空闲标志Flag为0xA5A5A5A5,然后把需要发送的数据拷贝到空闲通道中,然后触发软中断通知另一个核的实时操作***。
在一个示例性实施例中,实时操作***收到中断,触发对应的中断处理函数,中断处理函数会发送任务通知唤醒对应的任务,该任务从共享内存中读取数据并解析。具体地,该任务首先使用接口GetNoEmptyChannel在所有的通道中寻找满足以下三个条件的通道:一是通道结构体IpiHeader中的空闲标志Flag等于0xA5A5A5A5;二是通道结构体中的TargetId等于当前CPU的ID;三是通道结构体中的TargetId不等于SrcId。寻找到满足要求的非空闲通道后,解析非空闲通道的数据,根据通道结构体IpiHeader中的NetFn和Cmd完成具体的功能,最后设置该通道为空,即设置通道结构体中的空闲标志Flag为0。
图18是根据本申请实施例的可选的通信方法的流程图二,如图18所示,具体是实时操作***向非实时操作***发送数据的过程。
首先,实时操作***侧如果有需要发送的数据,从共享分内存中寻找空闲的通道,如果找到空闲通道,设置此通道为空,把需要发送的数据拷贝到寻找到的空闲通道,然后产生软中断,通知非实时操作***侧,非实时操作***侧调用对应的中断处理函数,中断处理函数会扫描所有的通道的结构体IpiHeader,根据结构体中的NetFn和Cmd字段判断发送信号给哪个应用层程序,同时把对应的通道ID发送给应用程序,需要说明的是,***初始化的时候核间通信的应用层程序需要注册NetFn和Cmd以及应用层程序对应的PID到驱动程序,应用层收到信号后调用的对应的处理函数,打开设备/dev/ipidev读取数据,驱动程序根据通道ID在共享内存中找到对应的数据,返回给应用层数据和数据长度,设置此通道为空,即设置通道结构体中的空闲标志Flag为0。
本发明提供了一种本实施例的多核多操作***的核间通信的方法,物理层交换数据采用共享内存的方式,同时增加了虚拟的通道对共享内存进行管理,当发送方的CPU核把需要发送的数据按照约定的协议格式放在共享内存中后,会触发一个软中断通知接收方的CPU核去读取数据,然后按照约定的协议格式解析数据,接收方的CPU核读取的数据后支持选择给发送方的CPU核回复应答或者不回复。核间通信采用共享内存、软中断的方式实现多核多操作***的核间通信。使用虚拟通道管理共享内存的方法,以及虚拟通道结构体的格式。不使用额外的组件,使用开发简单,节省***资源,同时只使用操作***任务,信号量等通用功能,大大减弱了对操作***的依懒性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括
若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
为了实现上述目的,根据本申请的另一方面,还提供了一种芯片,芯片包括可编程逻辑电路以及可执行指令中的至少之一,芯片在电子设备中运行,用于实现上述任一项方法实施例中的步骤。
本申请的实施例还提供了一种BMC芯片,其中,该BMC芯片可以包括:存储单元以及与存储单元连接的处理单元。存储单元用于存储程序,而处理单元用于运行该程序,以执行上述任一项方法实施例中的步骤。
例如,BMC芯片的一个示例可以如图19所示,BMC芯片的硬件可以但不限于包括SOC子模块和BMC带外子模块,其中,SOC子模块主要包含ARM核心(ARM Core 1,ARM Core 2……ARM Core X),其还可以但不限于包括DDR(Double Data Rate,双倍速率)4控制器(内存控制器)、MAC(Media Access Control Address,媒体访问控制地址)控制器(网络控制器)、SD(Secure Digital,安全数字)Card/eMMC(Embedded Multi Media Card,嵌入式多媒体卡)控制器(存储控制器)、PCIe RC(Root Complex,根复合体)控制器、SRAM(Static Random-Access Memory,静态随机存取存储器)及SPI控制器。
上述核心与各控制器通过第一总线互连,实现核心与各控制器间的交互。同时,ARM核心间连接至第一总线(比如:可以通过AXI(Advanced eXtensible Interface,高级可扩展接口)桥(Bridge)连接),核心间的通信通过第一总线实现。此外,SOC子模块中还实现了第一总线与第二总线的互连互通(比如:通过APB桥(APB Bridge)的转换实现),这样为SOC子模块访问第二总线上的外设提供一条物理通路。
DDR4控制器可以通过DDR4 PHY(Physical Layer,物理层)接口与其他部件或者设备相连,MAC控制器通过RGMII(Reduced Gigabit Media Independent Interface,吉比特介质独立接口)与其他部件或者设备相连,SD卡/eMMC控制器通过SD接口与其他部件或者设备相连,PCIe RC控制器通过PCIe PHY接口与其他部件或者设备相连。
BMC带外子模块主要包含PWM、GPIO、FanTech(风扇调速)、mailbox(邮箱)等芯片外设对应的控制器,通过这些控制器能够实现对BMC的PECI通信(比如使用GPIO模拟PECI)、风扇调控等带外管理功能。由图19可知,该BMC带外子模块可以但不限于通过第二总线实现与SOC子模块的交互。
BMC芯片通过AHB与第二总线实现片内ARM核、存储单元及控制器硬件资源间的互连。处理器资源的动态均衡调度主要涉及BMC芯片的ARM核心资源调度,核间通信指ARM核之间进行的通信。以Linux***抢占RTOS***核心为例,Linux***首先在核2~N的某个核上通过片上第一总线向核1发送核间中断(中断号9)。如果此时RTOS***处于空闲状态允许抢占,核1通过第一总线回复核间中断(中断号10),并释放当前核1映射的外设控制器资源(如,PWM/PECI),Linux***收到核间中断10,发起抢占流程,把核1加入Linux SMP调度中,同时获得了PWM/PECI外设的控制权,可以通过第二总线对其进行控制。
一方面,至少两个操作***包括第一操作***和第二操作***,其中,芯片将通信值装载至第一总线,第一总线将携带有通信值的通信信号发送至第二操作***对应的通信寄存器,以实现第一操作***和第二操作***之间的通信,其中,通信值用于指示第一操作***和第二操作***之间的通信内容。
另一方面,芯片将控制值装载至第二总线,第二总线将携带有控制值的控制信号发送至硬件控制器对应的寄存器,以实现操作***对硬件控制器的控制,其中,控制值用于指示操作***对硬件控制器的控制内容。
上述提及了第一总线被配置为多主多从模式,其可以是处理器的多个处理器内核之间进行通信所使用的总线,例如,AHB(Advanced High Performance Bus,高级高性能总线),第二总线被配置为一主多从模式,其可以是处理器对硬件控制器之间控制所使用的总线,例如,APB(Advanced Peripheral Bus,***总线),第一总线的带宽高于第二总线带宽。以下对此进行展开说明。
AHB总线在AMBA2中就已经定义,AHB总线一开始主要是作为***高速总线使用,适用于高性能,低功耗的***设计,主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上***总线。在AMBA协议中,AHB主要面向***级高带宽高性能的***互联设计,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多master,多slave的互联模式;可配置32位"128位总线宽度;支持字节、半字节和字的传输。AHB***由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummySlave)、虚拟主模块(dummy Master)所组成。
APB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像AHB支持多个主模块,在APB里面唯一的主模块就是APB桥。其特点包括:
①可工作在高频下;
②协议简单:无复杂的时序;
③同步总线:总线上所有的transaction(读写操作)都依赖于时钟的上升沿;
④一主多从:一般情况下,APB挂在AHB总线***下,通过AHB-APB Bridge将事务在AHB总线***之间进行转化,此时Bridgre即为APB的master,其他的***设备均为slave;
⑤接口简单:相对应AXI、AHB来说,接口比较简单;
⑥低功耗;
⑦可连接多种***设备:I2C、SPI、Timer、Keypad、UART。
在一种可选的实施例中,在AHB的多主(master)多从(slave)模式下,Master会首先向仲裁发送发文请求,仲裁决定合适让master获取总线访问的权限,master获取权限之后会将数据与控制信号发送到仲裁器,仲裁器通过地址解析判断对应的slave通路,然后将请求发送到对应的目的端。同样响应的数据会通过Decoder解析,然后返回给对应的master。通过这种多路复用的机制实现多对多的访问。
在一种可选的实施例中,在APB的一主多从模式下,通常APB挂在AHB总线***下,通过AHB-APB Bridge将事务在AHB总线***之间进行转化,此时Bridgre即为APB的master,其他的***设备均为slave。数据请求只能由Master发向slave,slave收到请求后返回相应的响应数据给master,此过程可以实现一对多的访问,且访问不涉及AHB总线中的仲裁和Decoder解析操作。
此外,AHB总线还具有高带宽特性,用于***中高性能模块(CPU、DMA等)间的互联,APB总线带宽较低,用于***中周边外设(UART、I2C等)之间的连接。AHB总线逻辑电路和总线协议复杂,APB总线接口电路和总线协议相对简单。
操作***通过访问(比如执行读操作与写操作)各硬件控制器的寄存器来控制硬件控制器,操作***访问硬件控制器的寄存器的方式可以但不限于是通过对各硬件控制器的寄存器地址进行读或写,而这些寄存器的地址可以但不限于是在芯片设计时唯一且确定的。例如,操作***向特定的地址(即上述通信寄存器或者硬件控制器对应的寄存器)写特定的值(即上述通信值或者控制值)就能实现特定的功能(比如上述操作***之间的通信功能或者操作***对硬件控制器的控制功能)。也就是说,不同功能对应了不同的控制值,芯片中维护了硬件控制器的功能与控制值之间的对应关系,比如:控制值00表示空调加速一档,控制值01表示空调减速一档等等。
各个操作***之间,操作***与硬件控制器之间可以但不限于通过总线进行通信,控制等等的交互。上述操作***对各硬件控制器的寄存器的读写操作最终会转换为第一总线(或第二总线)对该硬件控制器的控制信号,这部分转换工作及第一总线(或第二总线)对硬件控制器的控制过程可以但不限于是由芯片内部硬件自动实现的。其实现过程遵循总线规范。其中,第一总线(或第二总线)的操作过程中一方面可以传输控制与总线协议相关的物理信号,另一方面还可以通过其物理数据通道传输有效数据至各硬件控制器。
通过上述嵌入式***,第一操作***和第二操作***基于处理器运行,并通过不同功能的总线实现操作***间的通信和硬件控制器的控制。由于第一操作***和第二操作***均是基于同一个处理器运行,避免了硬件器件的增加和部署,降低了***成本,并且合理利用处理器资源支持***之间的运行,因此,可以解决操作***的运行效率较低的技术问题,达到了提高操作***的运行效率的技术效果。
本申请的实施例还提供了一种主板,其中,该主板包括:至少一个处理器;至少一个存储器,用于存储至少一个程序;当至少一个程序被至少一个处理器执行,使得至少一个处理器实现上述任一项方法实施例中的步骤。
本申请的实施例还提供了一种服务器,其中,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信,存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一项方法实施例中的步骤,以达到相同的技术效果。
上述服务器的通信总线可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。通信接口用于上述服务器与其他设备之间的通信。
存储器可以包括RAM(RandomAccessMemory,随机存取存储器),也可以包括NVM(Non-VolatileMemory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括CPU(CentralProcessingUnit,中央处理器)、NP(NetworkProcessor,网络处理器)等;还可以是DSP(DigitalSignalProcessing,数字信号处理器)、ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)、FPGA(Field-ProgrammableGateArray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
需要说明的是,针对服务器而言,服务器至少具有可扩展性高和稳定性高的特性,其中,由于企业网络是不可能长久不变的,在网络信息化的今天,如果服务器没有一定的可扩展性,则可能会影响到企业之后的发展,因此可拓展性成为服务器的最为基本的特性之一,可扩展性除了硬件上的可扩展性上之外,还包含软件上的可扩展性,由于服务器的功能与计算机相比较而言还是十分复杂,因此不仅仅是在硬件配置方面,还有就是软件配置也是很重要的,想要实现更多的功能,没有全面软件支持也是没有办法想象的。
此外,由于服务器需要处理大量的数据用以支撑业务的持续性运行,因此服务器还有一个很重要的特征,即为稳定性高,如果服务器的数据传输不能稳定运行,则无疑会对业务开展造成极大的影响。
本申请的方案利用服务器可扩展性高的特点,引入了第一***、第二***双软件***用于生成硬件接口信号,同时还引入了GPLD、BMC芯片等硬件设备分别用于调整硬件接口信号的传输电压、监控服务器内部其他器件的运行状态。在此基础上,本申请中采用由第一***生成请求命令对应的硬件接口信号的方式,首先通过第一***获取请求命令,然后确定请求命令对应的多个逻辑位信息,最后根据多个逻辑位信息和定时器生成请求命令对应的硬件接口信号。由上述内容可知,本申请通过第一***生成请求命令对应的硬件接口信号,从而实现了使用软件方式模拟生成硬件接口信号的技术效果,进而达到了无需芯片本身具备相关硬件接口信号的硬件逻辑设计的目的,不仅能够降低芯片的设计难度,还能减低芯片的设计成本。本申请达到了在无需对芯片进行硬件接口信号的硬件逻辑设计的基础上利用软件***生成硬件接口信号的目的,从而降低了芯片的设计难度,进而解决了现有技术中需要芯片本身具备控制器的硬件逻辑设计,从而导致的芯片的设计成本较高的技术问题。
另外,引入了第一***、第二***双软件***还能确保服务器的稳定性,由于第二***的业务响应速度小于第一***的业务响应速度,因此,使用业务响应速度更快的第一***生成硬件接口信号,能够保证硬件接口信号的生成不会中断,从而确保硬件接口信号能够持续稳定的输出。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (43)
1.一种硬件接口信号的生成方法,包括:
通过第一***获取请求命令;
确定所述请求命令对应的多个逻辑位信息;
根据所述多个逻辑位信息和定时器生成所述请求命令对应的硬件接口信号。
2.根据权利要求1所述的方法,其中,根据所述多个逻辑位信息和定时器生成所述请求命令对应的硬件接口信号,包括:
根据所述多个逻辑位信息确定所述定时器对应的重装载值和初次匹配值;
根据所述重装载值和所述初次匹配值生成所述请求命令对应的硬件接口信号。
3.根据权利要求2所述的方法,其中,根据所述多个逻辑位信息确定定时器对应的重装载值和初次匹配值,包括:
获取每个逻辑位信息对应的运行时长;
根据所述运行时长确定所述重装载值;
根据所述每个逻辑位信息的逻辑位确定所述定时器对应的一个初次匹配值,得到所述定时器对应的多个初次匹配值,其中,所述每个逻辑位信息对应的初次匹配值用于控制该逻辑位信息处于高电平时的时长,以控制该逻辑位信息的逻辑位为0或1。
4.根据权利要求3所述的方法,其中,根据所述重装载值和所述初次匹配值生成所述请求命令对应的硬件接口信号,包括:
按照所述请求命令对应的所述多个逻辑位信息之间的先后顺序,根据所述重装载值和所述每个逻辑位信息对应的初次匹配值依次生成所述每个逻辑位信息对应的硬件接口子信号,得到所述硬件接口信号。
5.根据权利要求4所述的方法,其中,根据所述重装载值和所述每个逻辑位信息对应的初次匹配值依次生成所述每个逻辑位信息对应的硬件接口子信号,包括:
依据所述定时器对所述每个逻辑位信息对应的重装载值进行递减操作;
在所述每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之前,通过所述第一***输出该逻辑位信息对应的第一信号,其中,所述第一信号为高电平的信号;
在所述每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之后,通过所述第一***输出该逻辑位信息对应的第二信号,其中,所述第二信号为低电平的信号;
在所述每个逻辑位信息对应的重装载值递减至0时,确定生成该逻辑位信息对应的硬件接口子信号,得到所述每个逻辑位信息对应的硬件接口子信号,其中,所述每个逻辑位信息对应的硬件接口子信号由该逻辑位信息对应的第一信号和第二信号组成。
6.根据权利要求5所述的方法,其中,所述方法还包括:
在所述每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值时,触发该逻辑位信息对应的第一中断;
在所述每个逻辑位信息对应的重装载值递减至0时,触发该逻辑位信息对应的第二中断。
7.根据权利要求6所述的方法,其中,在根据所述重装载值和所述每个逻辑位信息对应的初次匹配值依次生成所述每个逻辑位信息对应的硬件接口子信号的过程中,所述方法还包括:
每触发一个所述第一中断或所述第二中断,进行一次中断计数;
依据所述中断计数确定所述请求命令中当前正在进行信号转换处理的字段,其中,所述信号转换处理用于生成所述请求命令中的每个字段对应的逻辑位信息所对应的硬件接口子信号。
8.根据权利要求7所述的方法,其中,依据所述中断计数确定所述请求命令中当前正在进行信号转换处理的字段,包括:
获取所述请求命令中每个字段对应的字节个数;
根据所述字节个数确定所述请求命令对应的逻辑位信息的个数,其中,所述请求命令对应的每个字节与一个逻辑位信息相对应;
依据所述逻辑位信息的个数确定所述请求命令对应的中断数量,其中,所述请求命令对应的中断数量为所述逻辑位信息的个数的两倍;
根据所述中断数量和所述中断计数确定所述请求命令中当前正在进行信号转换处理的字段。
9.根据权利要求8所述的方法,其中,根据所述中断数量和所述中断计数确定所述请求命令中当前正在进行信号转换处理的字段,包括:
依据所述中断数量和所述中断计数确定当前正在转换为所述硬件接口子信号的逻辑位信息;
确定当前正在转换为所述硬件接口子信号的逻辑位信息所对应的字节为目标字节;
确定所述目标字节对应的字段为所述请求命令中当前正在进行信号转换处理的字段。
10.根据权利要求1所述的方法,其中,请求命令对应的请求数据的数据结构为第一数据结构,其中,所述第一数据结构至少包括设备地址、写长度、读长度、命令码以及请求参数,所述设备地址用于表征目标器件的地址,所述目标器件为依据所述硬件接口信号生成响应数据的器件,所述命令码用于区别不同的请求命令,所述写长度用于表征从所述命令码开始到所述请求数据结束的字节数量,所述读长度用于表征所述请求数据中包含完成码以及读数据在内的字节数量,所述请求参数用于表征所述请求命令的参数。
11.根据权利要求10所述的方法,其中,通过第一***获取请求命令,包括:
在通过所述第一***检测到第二***触发的第一请求的情况下,获取所述请求数据,其中,所述第一***和所述第二***在同一处理器上运行,所述请求数据由所述第二***生成,所述第二***的业务响应速度小于所述第一***的业务响应速度;
对所述请求数据进行解析,得到所述请求命令。
12.根据权利要求11所述的方法,其中,在获取请求数据之前,所述方法还包括:
通过第二***将所述请求数据存储至目标内存中,并在请求数据存储完毕之后,通过所述第二***触发所述第一请求,其中,所述第一请求用于通知所述第一***从所述目标内存中读取所述请求数据,所述目标内存为所述第一***和所述第二***均能够访问的内存。
13.根据权利要求1所述的方法,其中,在根据所述逻辑位信息和定时器生成所述请求命令对应的硬件接口信号之后,所述方法还包括:
对所述硬件接口信号的电压进行转换,得到目标硬件接口信号。
14.根据权利要求13所述的方法,其中,对所述硬件接口信号的电压进行转换,得到目标硬件接口信号,包括:
将所述硬件接口信号输入至电压转换器件中,得到所述电压转换器件输出的目标硬件接口信号。
15.根据权利要求1所述的方法,其中,所述方法还包括:
通过所述第一***接收所述硬件接口信号对应的响应数据,其中,所述响应数据的传输形式与所述硬件接口信号的传输形式相同;
将所述响应数据的数据结构调整为第二数据结构。
16.根据权利要求15所述的方法,其中,所述第二数据结构至少包括:第一校验值、第二校验值以及响应有效数据,其中,第一校验值用于表征请求数据中的校验值,第二检验值用于表征所述响应数据中的校验值,所述响应有效数据用于表征所述响应数据中的完成码以及用于描述目标器件的状态的数据,所述目标器件为依据所述硬件接口信号生成所述响应数据的器件。
17.根据权利要求16所述的方法,其中,在将所述响应数据的数据结构调整为第二数据结构之后,所述方法还包括:
通过所述第一***触发第二请求,其中,所述第二请求用于通知第二***读取所述响应数据。
18.根据权利要求1所述的方法,其中,所述硬件接口信号为PECI信号、HDMI信号、SGMII信号、RGMII信号、GPIO信号以及SPI信号中的任意一种信号。
19.一种嵌入式***,包括:
第一***和处理器,其中,所述第一***在所述处理器上运行;
所述第一***用于获取请求命令,确定所述请求命令对应的多个逻辑位信息,以及根据所述多个逻辑位信息和定时器生成所述请求命令对应的硬件接口信号。
20.根据权利要求19所述的嵌入式***,其中,
所述第一***,用于根据所述多个逻辑位信息确定所述定时器对应的重装载值和初次匹配值;
所述第一***,用于根据所述重装载值和所述初次匹配值生成所述请求命令对应的硬件接口信号。
21.根据权利要求20所述的嵌入式***,其中,
所述第一***,用于获取每个逻辑位信息对应的运行时长;
所述第一***,用于根据所述运行时长确定所述重装载值;
所述第一***,用于根据所述每个逻辑位信息的逻辑位确定所述定时器对应的一个初次匹配值,得到所述定时器对应的多个初次匹配值,其中,所述每个逻辑位信息对应的初次匹配值用于控制该逻辑位信息处于高电平时的时长,以控制该逻辑位信息的逻辑位为0或1。
22.根据权利要求21所述的嵌入式***,其中,
所述第一***,用于按照所述请求命令对应的多个所述逻辑位信息之间的先后顺序,根据所述重装载值和所述每个逻辑位信息对应的初次匹配值依次生成所述每个逻辑位信息对应的硬件接口子信号,得到所述硬件接口信号。
23.根据权利要求22所述的嵌入式***,其中,
所述第一***,用于依据所述定时器对所述每个逻辑位信息对应的重装载值进行递减操作;
所述第一***,用于在所述每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之前,通过所述第一***输出该逻辑位信息对应的第一信号,其中,所述第一信号为高电平的信号;
所述第一***,用于在所述每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值之后,通过所述第一***输出该逻辑位信息对应的第二信号,其中,所述第二信号为低电平的信号;
所述第一***,用于在所述每个逻辑位信息对应的重装载值递减至0时,确定生成该逻辑位信息对应的硬件接口子信号,得到所述每个逻辑位信息对应的硬件接口子信号,其中,所述每个逻辑位信息对应的硬件接口子信号由该逻辑位信息对应的第一信号和第二信号组成。
24.根据权利要求23所述的嵌入式***,其中,
所述第一***,用于在所述每个逻辑位信息对应的重装载值递减至该逻辑位信息对应的初次匹配值时,触发该逻辑位信息对应的第一中断;
所述第一***,用于在所述每个逻辑位信息对应的重装载值递减至0时,触发该逻辑位信息对应的第二中断。
25.根据权利要求24所述的嵌入式***,其中,
所述第一***,用于每触发一个所述第一中断或所述第二中断,进行一次中断计数;
所述第一***,用于依据所述中断计数确定所述请求命令中当前正在进行信号转换处理的字段,其中,所述信号转换处理用于生成所述请求命令中的每个字段对应的逻辑位信息所对应的硬件接口子信号。
26.根据权利要求25所述的嵌入式***,其中,
所述第一***,用于获取所述请求命令中每个字段对应的字节个数;
所述第一***,用于根据所述字节个数确定所述请求命令对应的逻辑位信息的个数,其中,所述请求命令对应的每个字节与一个所述逻辑位信息相对应;
所述第一***,用于依据所述逻辑位信息的个数确定所述请求命令对应的中断数量,其中,所述请求命令对应的中断数量为所述逻辑位信息的个数的两倍;
所述第一***,用于根据所述中断数量和所述中断计数确定所述请求命令中当前正在进行信号转换处理的字段。
27.根据权利要求26所述的嵌入式***,其中,
所述第一***,用于依据所述中断数量和所述中断计数确定当前正在转换为所述硬件接口子信号的逻辑位信息;
所述第一***,用于确定当前正在转换为所述硬件接口子信号的逻辑位信息所对应的字节为目标字节;
所述第一***,用于确定所述目标字节对应的字段为所述请求命令中当前正在进行信号转换处理的字段。
28.根据权利要求19所述的嵌入式***,其中,请求命令对应的请求数据的数据结构为第一数据结构,其中,所述第一数据结构至少包括设备地址、写长度、读长度、命令码以及请求参数,所述设备地址用于表征目标器件的地址,所述目标器件为依据所述硬件接口信号生成响应数据的器件,所述命令码用于区别不同的请求命令,所述写长度用于表征从所述命令码开始到所述请求数据结束的字节数量,所述读长度用于表征所述请求数据中包含完成码以及读数据在内的字节数量,所述请求参数用于表征所述请求命令的参数。
29.根据权利要求28所述的嵌入式***,其中,所述嵌入式***还包括第二***,其中,所述第二***与所述第一***均在所述处理器上运行,
所述第二***,用于生成所述请求数据;
所述第一***,用于在检测到所述第二***触发的第一请求的情况下,获取所述请求数据,其中,所述第二***的业务响应速度小于所述第一***的业务响应速度;
所述第一***,用于对所述请求数据进行解析,得到所述请求命令。
30.根据权利要求29所述的嵌入式***,其中,
所述第二***,用于将所述请求数据存储至目标内存中,并在请求数据存储完毕之后,触发所述第一请求,其中,所述第一请求用于通知所述第一***从所述目标内存中读取所述请求数据,所述目标内存为所述第一***和所述第二***均能够访问的内存。
31.根据权利要求19所述的嵌入式***,其中,
所述第一***,用于对所述硬件接口信号的电压进行转换,得到目标硬件接口信号。
32.根据权利要求31所述的嵌入式***,其中,
所述第一***,用于将所述硬件接口信号输入至电压转换器件中,得到所述电压转换器件输出的目标硬件接口信号。
33.根据权利要求19所述的嵌入式***,其中,
所述第一***,用于接收所述硬件接口信号对应的响应数据,其中,所述响应数据的传输形式与所述硬件接口信号的传输形式相同;
所述第一***,用于将所述响应数据的数据结构调整为第二数据结构。
34.根据权利要求33所述的嵌入式***,其中,所述第二数据结构至少包括:第一校验值、第二校验值以及响应有效数据,其中,第一校验值用于表征请求数据中的校验值,第二检验值用于表征所述响应数据中的校验值,所述响应有效数据用于表征所述响应数据中的完成码以及用于描述目标器件的状态的数据,所述目标器件为依据所述硬件接口信号生成所述响应数据的器件。
35.根据权利要求34所述的嵌入式***,其中,
所述第一***,用于触发第二请求,其中,所述第二请求用于通知第二***读取所述响应数据。
36.根据权利要求19所述的嵌入式***,其中,所述硬件接口信号为PECI信号、HDMI信号、SGMII信号、RGMII信号、GPIO信号以及SPI信号中的任意一种信号。
37.一种硬件接口信号的生成装置,包括:
获取模块,用于通过第一***获取请求命令;
确定模块,用于确定所述请求命令对应的多个逻辑位信息;
生成模块,用于根据所述多个逻辑位信息和定时器生成所述请求命令对应的硬件接口信号。
38.一种芯片,其中,所述芯片包括可编程逻辑电路以及可执行指令中的至少之一,所述芯片在电子设备中运行,用于实现权利要求1至18任一项所述的硬件接口信号的生成方法。
39.一种BMC芯片,其中,所述BMC芯片包括:存储单元以及与所述存储单元连接的处理单元,所述存储单元用于存储程序,所述处理单元用于运行所述程序,以执行如权利要求1至18任一项所述的硬件接口信号的生成方法。
40.一种主板,其中,所述主板包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1至18任一项所述的硬件接口信号的生成方法。
41.一种服务器,其中,所述服务器上包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1至18任一项所述的硬件接口信号的生成方法。
42.一种计算机可读存储介质,其中,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至18任一项中所述的硬件接口信号的生成方法的步骤。
43.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现所述权利要求1至18任一项中所述的硬件接口信号的生成方法的步骤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2023091854 | 2023-04-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116848519A true CN116848519A (zh) | 2023-10-03 |
Family
ID=88169289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202380009060.7A Pending CN116848519A (zh) | 2023-04-28 | 2023-04-28 | 硬件接口信号的生成方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116848519A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056275A (zh) * | 2023-10-10 | 2023-11-14 | 苏州元脑智能科技有限公司 | 基于硬件分区***的通信控制方法、装置及服务器 |
-
2023
- 2023-04-28 CN CN202380009060.7A patent/CN116848519A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056275A (zh) * | 2023-10-10 | 2023-11-14 | 苏州元脑智能科技有限公司 | 基于硬件分区***的通信控制方法、装置及服务器 |
CN117056275B (zh) * | 2023-10-10 | 2024-02-09 | 苏州元脑智能科技有限公司 | 基于硬件分区***的通信控制方法、装置及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10126954B1 (en) | Chipset and server system using the same | |
EP3663913B1 (en) | Techniques for processor boot-up | |
CN116302141B (zh) | 串口切换方法、芯片及串口切换*** | |
EP1892626A2 (en) | Method and apparatus for managing power from sequestered partition of a processing system | |
CN116541227B (zh) | 故障诊断方法、装置、存储介质、电子装置及bmc芯片 | |
CN116243995B (zh) | 通信方法、装置、计算机可读存储介质以及电子设备 | |
EP3319283B1 (en) | Server data port learning at data switch | |
CN116302617B (zh) | 共享内存的方法、通信方法、嵌入式***以及电子设备 | |
CN116521209B (zh) | 操作***的升级方法及装置、存储介质及电子设备 | |
US7093118B2 (en) | System and method for external bus device support | |
US20160306634A1 (en) | Electronic device | |
CN116627520B (zh) | 基板管理控制器的***运行方法以及基板管理控制器 | |
CN116243996B (zh) | 业务的运行切换方法、装置、存储介质及电子装置 | |
CN116244229B (zh) | 硬件控制器的访问方法、装置、存储介质和电子设备 | |
CN116830082A (zh) | 嵌入式***的启动控制方法和装置、存储介质和电子设备 | |
CN116868167A (zh) | 操作***的运行控制方法和装置,以及嵌入式***和芯片 | |
CN116848519A (zh) | 硬件接口信号的生成方法、装置及电子设备 | |
US20040064620A1 (en) | Device representation apparatus and methods | |
CN116521324B (zh) | 中断虚拟化处理方法、装置及电子设备 | |
US11068430B2 (en) | Configuration parameter transfer | |
CN116868170A (zh) | 嵌入式***的运行方法和装置、嵌入式***及芯片 | |
CN210072612U (zh) | 一种物联网芯片*** | |
CN117555760B (zh) | 服务器监测方法及装置、基板控制器及嵌入式*** | |
CN115237849B (zh) | 可动态重构和异构的计算模块及计算装置 | |
CN113867835B (zh) | 用于dsp动态加载的装置及方法 |
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 |