CN111124997A - 数据发送方法、接收方法及装置、处理器芯片、服务器 - Google Patents

数据发送方法、接收方法及装置、处理器芯片、服务器 Download PDF

Info

Publication number
CN111124997A
CN111124997A CN201911363022.3A CN201911363022A CN111124997A CN 111124997 A CN111124997 A CN 111124997A CN 201911363022 A CN201911363022 A CN 201911363022A CN 111124997 A CN111124997 A CN 111124997A
Authority
CN
China
Prior art keywords
data
processor core
packet
sending
data packet
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
CN201911363022.3A
Other languages
English (en)
Other versions
CN111124997B (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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN201911363022.3A priority Critical patent/CN111124997B/zh
Publication of CN111124997A publication Critical patent/CN111124997A/zh
Application granted granted Critical
Publication of CN111124997B publication Critical patent/CN111124997B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Communication Control (AREA)

Abstract

本发明实施例公开一种数据发送方法、接收方法及装置、处理器芯片、服务器,涉及计算机技术领域,能够大大扩展互连主体之间的时钟适配范围,有效提高数据传输效率。所述发送方法包括:在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;在发送端链路读时钟到来时,从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送,其中,发送端数据写时钟的时钟频率高于发送端链路读时钟的时钟频率,所述第一处理器核心和所述第一缓存区位于第一晶粒,所述第二处理器核心位于第二晶粒。本发明适用于芯片互连中。

Description

数据发送方法、接收方法及装置、处理器芯片、服务器
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据发送方法、接收方法及装置、处理器芯片、服务器。
背景技术
随着集成电路和通信技术的发展,芯片内部以及芯片之间互连的场景越来越多,也出现越来越多的互连标准,以保证芯片等互连主体之间数据传输的高速率、低延迟,以及对多种版本以及生产厂家的兼容。
然而,由于互连主体的复杂性和多样性,实际的应用场景中,不同互连主体的时钟之间常常会出现时钟不匹配的情况。这一方面使工程师在器件选择方面受到了非常大的限制,例如只能选择具有相同时钟频率的器件,另一方面,各互连主体的时钟频率也会受限于时钟频率最慢的互连主体,从而严重降低了整个系统的数据传输效率。
发明内容
有鉴于此,本发明实施例提供一种数据发送方法、接收方法及装置、处理器芯片、服务器,能够大大扩展互连主体之间的时钟适配范围,有效提高数据传输效率。
第一方面,本发明实施例提供一种数据发送方法,所述方法包括:在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;在发送端链路读时钟到来时,从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送,其中,发送端数据写时钟的时钟频率高于发送端链路读时钟的时钟频率,所述第一处理器核心和所述第一缓存区位于第一晶粒,所述第二处理器核心位于第二晶粒。
可选的,所述方法还包括:间隔预设时长生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送。
可选的,所述间隔预设时长生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送包括:间隔预设时长,通过预先设置的虚拟包发生器生成虚拟包;在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包向所述第二处理器核心发送。
可选的,所述间隔预设时长生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送包括:间隔预设时长,通过所述第一处理器核心生成所述虚拟包;将所述虚拟包写入所述第一缓存区,以从所述第一缓存区读取所述虚拟包,并将所述虚拟包向所述第二处理器核心发送。
可选的,所述方法还包括:根据所述发送端链路读时钟的每个时钟周期内向所述第二处理器核心发送的数据位宽,以及所述发送端数据写时钟的每个时钟周期内写入所述第一缓存区的数据包的数据位宽,动态调整所述预设时长。
可选的,所述将所述数据包向第二处理器核心发送包括:为所述数据包生成校验码,并将所述数据包与所述校验码一起向所述第二处理器核心发送。
第二方面,本发明的实施例还提供一种数据发送方法,包括:在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;在发送端链路读时钟到来时,若所述第一缓存区非空,则从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送;若所述第一缓存区为空,则通过预先设置的虚拟包发生器生成虚拟包,并将所述虚拟包向所述第二处理器核心发送;其中,所述发送端数据写时钟的时钟频率低于所述发送端链路读时钟的时钟频率,所述第一处理器核心和所述第一缓存区位于第一晶粒,所述第二处理器核心位于第二晶粒。
可选的,所述方法还包括:间隔预设时长,通过预先设置的虚拟包发生器生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送。
可选的,所述将所述虚拟包向所述第二处理器核心发送包括:在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包发生器生成的虚拟包向所述第二处理器核心发送。
可选的,所述将所述数据包向第二处理器核心发送包括:为所述数据包生成校验码,并将所述数据包与所述校验码一起向所述第二处理器核心发送。
第三方面,本发明的实施例还提供一种数据接收方法,包括:在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区,所述第二缓存区为先进先出缓存区;在接收端数据读时钟到来时,将所述数据包从所述第二缓存区读入第二处理器核心,其中,所述第一处理器核心位于第一晶粒,所述第二处理器核心和所述第二缓存区位于第二晶粒,所述接收端数据读时钟的时钟频率与所述接收端链路写时钟的时钟频率不同。
可选的,所述数据包为事务数据包或虚拟数据包;其中,所述在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区,包括:确定所述数据包是否为虚拟数据包,若所述数据包为虚拟数据包,则将所述虚拟数据包删除,否则,将所述数据包写入第二缓存区。
第四方面,本发明的实施例还提供一种数据发送装置,包括:数据写入单元,用于在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;发送单元,用于在发送端链路读时钟到来时,从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送,其中,发送端数据写时钟的时钟频率高于发送端链路读时钟的时钟频率,所述第一处理器核心和所述第一缓存区位于第一晶粒,所述第二处理器核心位于第二晶粒。
可选的,所述发送单元,还用于:间隔预设时长生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送。
可选的,所述发送单元包括:第一生成模块,用于间隔预设时长,通过预先设置的虚拟包发生器生成虚拟包;第一发送模块,用于在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包向所述第二处理器核心发送。
可选的,所述发送单元包括:第二生成模块,用于间隔预设时长,通过所述第一处理器核心生成所述虚拟包;第二发送模块,用于将所述虚拟包写入所述第一缓存区,以从所述第一缓存区读取所述虚拟包,并将所述虚拟包向所述第二处理器核心发送。
可选的,所述装置还包括:时长调整单元,用于根据所述发送端链路读时钟的每个时钟周期内向所述第二处理器核心发送的数据位宽,以及所述发送端数据写时钟的每个时钟周期内写入所述第一缓存区的数据包的数据位宽,动态调整所述预设时长。
可选的,所述发送单元,还用于为所述数据包生成校验码,并将所述数据包与所述校验码一起向所述第二处理器核心发送。
第五方面,本发明的实施例还提供一种数据发送装置,包括:数据写入单元,用于在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;发送单元,用于在发送端链路读时钟到来时,若所述第一缓存区非空,则从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送;若所述第一缓存区为空,则通过预先设置的虚拟包发生器生成虚拟包,并将所述虚拟包向所述第二处理器核心发送;其中,所述发送端数据写时钟的时钟频率低于所述发送端链路读时钟的时钟频率,所述第一处理器核心和所述第一缓存区位于第一晶粒,所述第二处理器核心位于第二晶粒。
可选的,所述发送单元,还用于间隔预设时长,通过预先设置的虚拟包发生器生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送。
可选的,所述发送单元,具体用于在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包发生器生成的虚拟包向所述第二处理器核心发送。
可选的,所述发送单元,还用于:为所述数据包生成校验码,并将所述数据包与所述校验码一起向所述第二处理器核心发送。
第六方面,本发明的实施例还提供一种数据接收装置,包括:接收单元,用于在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区,所述第二缓存区为先进先出缓存区;数据读入单元,用于在接收端数据读时钟到来时,将所述数据包从所述第二缓存区读入第二处理器核心,其中,所述第一处理器核心位于第一晶粒,所述第二处理器核心和所述第二缓存区位于第二晶粒,所述接收端数据读时钟的时钟频率与所述接收端链路写时钟的时钟频率不同。
可选的,所述数据包为事务数据包或虚拟数据包;其中,所述接收单元,具体用于确定所述数据包是否为虚拟数据包,若所述数据包为虚拟数据包,则将所述虚拟数据包删除,否则,将所述数据包写入第二缓存区。
第七方面,本发明的实施例还提供一种处理器芯片,包括:第一晶粒,所述第一晶粒上设置有第一处理器核心、第一缓存区和串行-解串行模块;所述第一处理器核心,用于在发送端数据写时钟到来时,将要发送的数据包写入所述第一缓存区,所述第一缓存区为先进先出缓存区;所述串行-解串行模块,用于在发送端链路读时钟到来时,从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送,其中,所述发送端数据写时钟的时钟频率高于所述发送端链路读时钟的时钟频率;所述第二处理器核心位于第二晶粒上;所述第二晶粒在所述处理器芯片上,或在所述处理器芯片外的另一处理器芯片上。
可选的,处理器芯片还包括:虚拟包发生器,用于间隔预设时长,生成虚拟包;所述串行-解串行模块,还用于在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包向所述第二处理器核心发送。
可选的,所述第一处理器核心还用于:间隔预设时长,生成所述虚拟包;将所述虚拟包写入所述第一缓存区,以使所述串行-解串行模块从所述第一缓存区读取所述虚拟包并将所述虚拟包向所述第二处理器核心发送。
可选的,所述第一处理器核心,还用于:根据所述发送端链路读时钟的每个时钟周期内向所述第二处理器核心发送的数据位宽,以及所述发送端数据写时钟的每个时钟周期内写入所述第一缓存区的数据包的数据位宽,动态调整所述预设时长。
可选的,所述处理器芯片还包括校验码生成模块,设在所述第一缓存区和所述串行-解串行模块之间,用于为所述数据包生成校验码;所述串行-解串行模块,具体用于将所述数据包与所述校验码一起向所述第二处理器核心发送。
第八方面,本发明的实施例还提供一种处理器芯片,包括:第一晶粒,所述第一晶粒上设置有第一处理器核心、第一缓存区、串行-解串行模块、虚拟包发生器;所述第一处理器核心,用于在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;所述串行-解串行模块,用于在发送端链路读时钟到来时,若所述第一缓存区非空,则从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送;若所述第一缓存区为空,则将所述虚拟包发生器生成的虚拟包向所述第二处理器核心发送;所述虚拟包发生器,用于在发送端链路读时钟到来时,若所述第一缓存区为空,则生成虚拟包;其中,所述发送端数据写时钟的时钟频率低于所述发送端链路读时钟的时钟频率;所述第二处理器核心位于第二晶粒;所述第二晶粒在所述处理器芯片上,或在所述处理器芯片外的另一处理器芯片上。
可选的,所述虚拟包发生器,还用于间隔预设时长生成虚拟包;所述串行-解串行模块,还用于在所述发送端链路读时钟到来时,将所述虚拟包发生器间隔预设时长生成的所述虚拟包向所述第二处理器核心发送。
可选的,所述串行-解串行模块,具体用于:在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包发生器生成的虚拟包向所述第二处理器核心发送。
可选的,所述处理器芯片还包括校验码生成模块,用于为所述数据包生成校验码;所述串行-解串行模块,具体用于将所述数据包与所述校验码一起向所述第二处理器核心发送。
第九方面,本发明的实施例还提供一种处理器芯片,包括:第二晶粒,所述第二晶粒上设置有第二处理器核心、第二缓存区、串行-解串行模块;所述串行-解串行模块,用于在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区,所述第二缓存区为先进先出缓存区;所述第二处理器核心,用于在接收端数据读时钟到来时,从所述第二缓存区读取所述数据包,其中,所述第一处理器核心位于第一晶粒,所述第一晶粒在所述处理器芯片上,或在所述处理器芯片外的另一处理器芯片上;所述接收端数据读时钟的时钟频率与所述接收端链路写时钟的时钟频率不同。
可选的,所述串行-解串行模块,具体用于:确定所述数据包是否为虚拟数据包,若所述数据包为虚拟数据包,则将所述虚拟数据包删除,否则,将所述数据包写入第二缓存区。
第十方面,本发明的实施例还提供一种服务器,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述服务器的各个电路或器件供电;存储器用于存储可执行程序代码;所述处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述权利要求本发明的实施例提供的任一种方法。
本发明的实施例提供的数据发送方法、接收方法及装置、处理器芯片、服务器,当需要将第一处理器核心的数据包向第二处理器核心发送时,先将第一处理器核心中的数据包传输至第一缓存区,并从第一缓存区获取数据包进行发送,这样即使在发送端数据写时钟的时钟频率高于发送端链路读时钟的时钟频率的情况下,第一处理器核心也不需要等待链路时钟的数据读取,而只需要按照发送端数据写时钟的时钟频率将数据包传输至第一缓存区后,即可进行下一个数据包的传输或者进行其他操作,同样的,数据发送操作也可以按照发送端链路读时钟的节律稳定进行,从而使两个不同时钟频率的互连主体可以高效协同工作,大大扩展了互连主体之间的时钟适配范围,也有效提高了数据传输效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的实施例所基于的数据传输系统的一种结构示意图;
图2为本发明的实施例提供的数据发送方法的一种流程图;
图3为本发明的实施例提供的数据发送方法的另一种流程图;
图4为本发明的实施例提供的数据接收方法的一种流程图;
图5为本发明的实施例提供的数据发送装置的一种结构示意图;
图6为本发明的实施例提供的数据发送装置的另一种结构示意图;
图7为本发明的实施例提供的数据接收装置的一种结构示意图;
图8为本发明的实施例提供的处理器芯片的一种结构示意图;
图9为本发明的实施例提供的处理器芯片的另一种结构示意图;
图10为本发明的实施例提供的处理器芯片的又一种结构示意图;
图11为本发明的实施例中在晶粒之间进行数据传输的一种结构示意图;
图12为本发明的实施例提供的服务器的一种结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,在芯片互连中,需要进行数据传输的系统一般可以包括发送端控制层,接收端控制层,以及连接这两个控制层的链路层。其中,控制层可以包括各种控制模块例如CPU,GPU等,用于执行各种运算或控制指令。链路层可以包括各种通信链路,用于在不同的控制层之间传输数据。例如,控制模块可以产生需要对外传输的事务数据包,以及包括流量控制在内的链路管理数据包等。链路层可以将这些事务数据包和链路管理数据包以预定的协议格式向其他控制模块发送。
无论是发送端控制层、接收端控制层还是链路层,都需要在一定的时钟节律控制下工作,而它们各自的时钟频率可能相同,也可能不同。具体而言,系统中驱动电路动作的各时钟可以由石英晶体振荡器输出的晶振频率经过相同或不同的分频得到。如果几个时钟源自同一个石英晶体振荡器,则这几个时钟处于同一个时钟域,如果几个时钟源自不同的石英晶体振荡器,则这几个时钟处于不同的时钟域。而无论是在同一个时钟域下,还是跨时钟域,只要两个时钟的频率不同,就存在时钟匹配的问题。为了使数据传输链路上的各互连主体之间的时钟更加匹配,从而使数据传输的效率更高,本发明的实施例提供了如下的数据发送方法、接收方法及装置。
第一方面,本发明的实施例提供一种数据发送方法,能够大大扩展互连主体之间的时钟适配范围,有效提高数据传输效率。
如图2所示,本发明的实施例提供的数据发送方法可以包括:
S11,在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;
其中,发送端数据写时钟,可以是发送端控制模块输出数据的时钟。发送端控制模块可以是计算机系统中进行控制、计算、管理的模块,例如CPU、GPU等。
第一缓存区可以是一段连续的存储空间,既可以为存储器,也可以为寄存器。第一缓存区设置的物理位置不限,既可以集成在第一处理器核心中,也可以设置在第一处理器核心外。存入第一缓存区的数据遵循FIFO(first in first out,先进先出)原则,即先存入的数据被先读取,后存入的数据被后读出。
S12,在发送端链路读时钟到来时,从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送,其中,发送端数据写时钟的时钟频率高于发送端链路读时钟的时钟频率,所述第一处理器核心和所述第一缓存区位于第一晶粒,所述第二处理器核心位于第二晶粒。
本发明的实施例中,第一处理器核心和第二处理器核心分别可以是各种处理器中的任意一种,例如CPU核心、GPU核心等。第一处理器核心与第二处理器核心之间的通信链路的工作时钟可以称为链路时钟。其中,第一处理器核心与通信链路可以视为两个不同的互连主体,通信链路与第二处理器核心之间可以视为另外两个互连主体。根据数据发送或数据接收任务的不同,链路时钟可以在不同的时钟周期执行不同的任务。例如,链路时钟可以包括发送端链路读时钟和接收端链路写时钟,其中,发送端链路读时钟可以用于触发数据包发送,接收端链路写时钟可以用于触发数据包接收等。
需要说明的是,发送端链路读时钟和接收端链路写时钟只是根据时钟所触发的动作的不同进行的划分,其本质都是链路时钟,因此,发送端的链路时钟与接收端的链路时钟的时钟频率相同。
可选的,第二处理器核心可以与第一处理器核心处于不同设备或不同器件,或处于同一器件中不同的晶粒上,例如第二处理器核心与第一处理器核心可以分别位于两个处理器芯片上,也可以位于同一个处理器芯片的两个不同的晶粒上。
本发明的实施例提供的数据发送方法,当需要将第一处理器核心的数据包向第二处理器核心发送时,先将第一处理器核心中的数据包传输至第一缓存区,并从第一缓存区获取数据包进行发送,这样即使在发送端数据写时钟的时钟频率高于发送端链路读时钟的时钟频率的情况下,第一处理器核心也不需要等待链路时钟的数据读取,而只需要按照发送端数据写时钟的时钟频率将数据包传输至第一缓存区后,即可进行下一个数据包的传输或者进行其他操作,同样的,数据发送操作也可以按照发送端链路读时钟的节律稳定进行,从而使两个不同时钟频率的互连主体可以高效协同工作,大大扩展了互连主体之间的时钟适配范围,也有效提高了数据传输效率。
可选的,将数据包向第二处理器核心发送时,可以按照不同的传输协议进行传输。在本发明的一个实施例中,数据包可以以串行数据的形式被连续不断地向第二处理器核心传输,也即是说,在数据包的传输过程中,需要有数据源源不断地进行串行发送,而不能中断。而由于在本发明的实施例中,发送端数据写时钟的时钟频率高于发送端链路读时钟的时钟频率,也即是说,数据包产生速率要比数据包发送速率快,因此,可以保证发送端数据的连续不断。
虽然发送端可以连续不断地发送数据,但这样大量的数据,接收端未必能够有效接收。例如,如果接收端接收数据较慢,则可能会造成发送过来的数据在接收端堆积,最后导致数据溢出而丢失。为此,在本发明的一个实施例中,可以在发送端间隔预设时长生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送。
虚拟包的数据内容无关紧要,可以为多种内容,例如可以为某些特殊字符如11111,或可以为随机数等,数据量大小也可以根据需要进行调整,例如如果需要连续多个时钟周期发送虚拟包,则可以生成多个虚拟包,如果仅需要发送一个时钟周期的虚拟包,则可以仅生成一个虚拟包。虚拟包的数据格式只要符合数据发送的通信协议即可。可选的,在本发明的一个实施例中,虚拟包可以与数据包采用不同的数据组成,以便接收端可以对数据包与虚拟包区分开。接收端接收虚拟包后,会直接将虚拟包删除,而不会占用接收端资源或增加接收端的数据接收任务,因此,通过每间隔预设时长插入一次虚拟包,能够有效缓解接收端的数据接收压力,避免接收端的数据丢失。
可选的,在本发明的实施例中,虚拟包既可以由第一处理器核心生成,也可以由预先设置的虚拟包发生器生成,本发明的实施例对此不做限定。
具体而言,在本发明的一个实施例中,所述间隔预设时长生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送可以包括:
间隔预设时长,通过预先设置的虚拟包发生器生成虚拟包;
在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包向所述第二处理器核心发送。
也即是说,本实施例中,虚拟包发生器生成的虚拟包和第一缓存区中的数据包是发送数据的两个数据来源,一般情况下,都是将第一缓存区中的数据包向第二处理器核心发送,而每间隔预设时长,例如10分钟,暂停从第一缓存区读取数据包,而是由虚拟包发生器生成虚拟包,然后将虚拟包向第二处理器发送。
可选的,在本发明的另一个实施例中,所述间隔预设时长生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送可以包括:
间隔预设时长,通过所述第一处理器核心生成所述虚拟包;
将所述虚拟包写入所述第一缓存区,以从所述第一缓存区读取所述虚拟包,并将所述虚拟包向所述第二处理器核心发送。
也即是说,本实施例中,虚拟包和数据包都是由第一处理器核心产生、并写入第一缓存区的。
可选的,由于间隔预设时长插入虚拟包是为了避免接收端数据堆砌而丢失,因此,可以根据接收端控制层时钟与所述链路时钟之间的频率差,确定是否定时插入虚拟包,以及如果插入虚拟包,则间隔的预设时长是多少,具体分析如下。
令f1=发送端数据写时钟的时钟频率,f2=发送端链路读时钟的时钟频率=接收端链路写时钟的时钟频率,f3=接收端数据读时钟的时钟频率,则:
当f3<f2<f1时,每间隔预设时长生成虚拟包,并在发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送。也即是说,在发送端数据写时钟的时钟频率高于发送端链路读时钟的时钟频率,且接收端控制层时钟(即接收端数据读时钟)的时钟频率低于链路时钟(即接收端链路写时钟或发送端链路读时钟)的时钟频率时,由于接收端接收数据慢于数据到达接收端的速率,以致可能出现接收端数据堆砌的情况,因此,在这种情况下,可以间隔预设时长插入一次虚拟包。接收端控制层时钟与所述链路时钟之间的频率差的绝对值越大,说明数据越容易在接收端堆砌,因此,插入虚拟包所间隔的预设时长越短,以便及时通过插入虚拟包为接收端赢得更多的数据接收时间。
进一步的,在确定了预设时长后,在本发明的一个实施例中,还可以根据所述发送端链路读时钟的每个时钟周期内向所述第二处理器核心发送的数据位宽,以及所述发送端数据写时钟的每个时钟周期内写入所述第一缓存区的数据包的数据位宽,动态调整所述预设时长。
例如,可选的,若发送端链路读时钟的每个时钟周期内向所述第二处理器核心发送的数据带宽小于发送端数据写时钟的每个时钟周期内写入所述第一缓存区的数据包的数据位宽,则可以适当增大所述预设时长,例如增大第一值;若发送端链路读时钟的每个时钟周期内向所述第二处理器核心发送的数据带宽大于发送端数据写时钟的每个时钟周期内写入所述第一缓存区的数据包的数据位宽,则可以适当减小所述预设时长,例如减小第二值等。
举例而言,在本发明的一个实施例中,发送端数据写时钟的每个时钟周期内,发送端将X bits数据包传输至第一缓存区,发送端链路读时钟的每个时钟周期内,以Z bits/每周期的方式向第二处理器核心发送。若X>Z,则说明发送端需要花费额外的链路时钟周期来将X bit的数据发送出去,数据发送速度会相对变慢,因此可以将预设时长适当延长,使虚拟包发送频率适当降低。若X<Z,则说明发送端每次可以发送更多的数据,数据发送速度会相对变快,因此可以将预设时长适当缩短,使虚拟包发送频率适当增大。
当f2<f3<f1或f2<f1<f3时,由于发送端数据写时钟和接收端数据读时钟都快于链路时钟,接收端不会产生数据堆砌的情况,因此,发送端无需定时插入虚拟包。
上述实施例中,在定时插入虚拟包的情况下,接收端可以依据虚拟包的特殊格式或特殊内容来将虚拟包与数据包进行区分,也可以采用其他方法也区分数据包与虚拟包,本发明的实施例对此不做限定。
可选的,在本发明的一个实施例中,为了保证数据传输的正确性,将所述数据包向第二处理器核心发送可以包括:为所述数据包生成校验码,并将所述数据包与所述校验码一起向所述第二处理器核心发送。也即是说,发送端在发送数据包之前,可以按照预定算法为每个数据包生成校验码,然后将数据包和校验码一起向第二处理器发送,以便在接收端利用校验码对接收到的数据进行校验。
基于此,在本发明的一个实施例中,为了对虚拟包和数据包进行区分,可以在发送端按照不同的算法分别为虚拟包和数据包生成校验码,以便接收端利用该不同的校验码区分虚拟包和数据包。
举例而言,可选的,在本发明的一个实施例中,将数据包向第二处理器核心发送可以包括:为所述数据包生成第一校验码,并将所述第一数据与所述第一校验码一起向所述第二处理器核心发送;将所述虚拟包向所述第二处理器核心发送可以包括:为所述虚拟包生成第二校验码,并将所述虚拟包与所述第二校验码一起向所述第二处理器核心发送,其中,所述第二校验码的校验算法与所述第一校验码的校验算法不同。这样,即可通过校验码将数据包与虚拟包区分开。
可选的,在生成校验码的情况下,也可以根据所述发送端链路读时钟的每个时钟周期内向所述第二处理器核心发送的数据位宽,以及所述发送端数据写时钟的每个时钟周期内写入所述第一缓存区的数据包的数据位宽,动态调整所述预设时长。
例如,在本发明的一个实施例中,发送端数据写时钟的每个时钟周期内,发送端将X bits数据包与Y bits CRC/ECC校验码进行组装,发送端链路读时钟的每个时钟周期内,以Z-bits/每周期的方式向第二处理器核心发送。若X+Y>Z,则说明发送端需要花费额外的链路时钟周期来将(X+Y)bit的数据发送出去,数据发送速度会相对变慢,因此可以将预设时长适当延长,使虚拟包发送频率适当降低。若X+Y<Z,则说明发送端每次可以发送更多的数据,数据发送速度会相对变快,因此可以将预设时长适当缩短,使虚拟包发送频率适当增大。
第二方面,本发明的实施例还提供一种数据发送方法,能够大大扩展互连主体之间的时钟适配范围,有效提高数据传输效率。
如图3所示,本发明的实施例提供的数据发送方法可以包括:
S21,在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;
其中,发送端数据写时钟,可以是发送端控制模块输出数据的时钟。发送端控制模块可以是计算机系统中进行控制、计算、管理的模块,例如CPU、GPU等。
第一缓存区可以是一段连续的存储空间,既可以为存储器,也可以为寄存器。第一缓存区设置的物理位置不限,既可以集成在第一处理器核心中,也可以设置在第一处理器核心外。存入第一缓存区的数据遵循FIFO(first in first out,先进先出)原则,即先存入的数据被先读取,后存入的数据被后读出。
S22,在发送端链路读时钟到来时,若所述第一缓存区非空,则从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送;若所述第一缓存区为空,则通过预先设置的虚拟包发生器生成虚拟包,并将所述虚拟包向所述第二处理器核心发送;其中,所述发送端数据写时钟的时钟频率低于所述发送端链路读时钟的时钟频率,所述第一处理器核心和所述第一缓存区位于第一晶粒,所述第二处理器核心位于第二晶粒。
本发明的实施例中,第一处理器核心与第二处理器核心之间的通信链路的工作时钟可以称为链路时钟。其中,第一处理器核心与通信链路可以视为两个不同的互连主体,通信链路与第二处理器核心之间可以视为另外两个互连主体。根据数据发送或数据接收任务的不同,链路时钟可以在不同的时钟周期执行不同的任务。例如,链路时钟可以包括发送端链路读时钟,用于触发数据包发送,接收端链路写时钟,用于触发数据包接收等。
需要说明的是,发送端链路读时钟和接收端链路写时钟只是根据时钟所触发的动作的不同进行的划分,其本质都是链路时钟,因此,发送端的链路时钟与接收端的链路时钟的时钟频率相同。
可选的,第二处理器核心可以与第一处理器核心处于不同设备或不同器件,或处于同一器件中不同的晶粒上,例如第二处理器核心与第一处理器核心可以分别位于两个处理器芯片上,也可以位于同一个处理器芯片的两个不同的晶粒上。
本发明的实施例提供的数据发送方法,当需要将第一处理器核心的数据包向第二处理器核心发送时,先将第一处理器核心中的数据包传输至第一缓存区,在发送端链路读时钟到来时,若所述第一缓存区非空,则从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送;若所述第一缓存区为空,则通过预先设置的虚拟包发生器生成虚拟包,并将所述虚拟包向所述第二处理器核心发送。这样,即可通过第一缓存区进行数据缓冲,发送端数据写时钟和发送端链路读时钟可以按照各自的节律进行工作。在发送端数据写时钟的时钟频率低于发送端链路读时钟的时钟频率的情况下,即使数据包没有来得及写入第一缓存区,也可以使用虚拟包代替数据包进行发送,从而保证数据能够被连续不断地串行发送,从而使两个不同时钟频率的互连主体可以高效协同工作,大大扩展了互连主体之间的时钟适配范围,也有效提高了数据传输系统的工作效率。
可选的,将数据包向第二处理器核心发送时,可以按照不同的传输协议进行传输。在本发明的一个实施例中,数据包可以以串行数据的形式被连续不断地向第二处理器核心传输,也即是说,在数据包的传输过程中,需要有数据源源不断地进行串行发送,而不能中断。对此,本发明的实施例中,当第一缓存区为空时,则将虚拟包发生器生成的虚拟包向第二处理器核心发送,以便实现数据的连续发送。
进一步的,在本发明的一个实施例中,除了保证发送端的数据连续不断之外,也可以根据接收端控制层的时钟频率(即接收端数据读时钟的时钟频率),确定发送端是否需要间隔预设时长发送一次虚拟包,具体分析如下。
令f1=发送端数据写时钟的时钟频率,f2=发送端链路读时钟的时钟频率=接收端链路写时钟的时钟频率、f3=接收端数据读时钟的时钟频率,则:
当f3<f1<f2时,每间隔预设时长生成虚拟包,并在发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送。也即是说,当接收端接收数据最慢时,为了防止接收端数据堆砌,从而造成数据溢出缓存而丢失,发送端进行数据包发送时,可以间隔一段时间,发送一些虚拟包。接收端接收虚拟包后,会直接将虚拟包删除,而不会占用接收端资源或增加接收端的数据接收任务,因此,通过每间隔预设时长插入一次虚拟包,能够有效缓解接收端的数据接收压力,避免接收端的数据丢失。
可选的,该预设时长可以根据接收端数据读时钟与所述发送端数据写时钟之间的频率差确定,即该预设时长可以根据(f1-f3)确定。频率差越大,接收端数据越容易堆砌,因此,插入虚拟包间隔的预设时长越短。
当f1<f3<f2或f1<f2<f3时,由于发送端数据写时钟慢于接收端数据读时钟,接收端不会产生数据堆砌的情况,因此,仅在第一缓存区为空时插入虚拟包即可。
具体而言,虚拟包的数据内容无关紧要,可以为多种内容,例如可以为某些特殊字符如11111,或可以为随机数等,数据量大小也可以根据需要进行调整,例如如果需要连续多个时钟周期发送虚拟包,则可以生成多个虚拟包,如果仅需要发送一个时钟周期的虚拟包,则可以仅生成一个虚拟包。虚拟包的数据格式只要符合数据发送的通信协议即可。可选的,在本发明的一个实施例中,虚拟包可以与数据包采用不同的数据组成,以便接收端可以对数据包与虚拟包区分开。
需要说明的是,由于第一处理器核心的发送端数据写时钟的时钟频率低于发送端链路读时钟的时钟频率,为了保证发送端链路读时钟到来时,始终有数据发送,本实施例中的虚拟包只能由虚拟包发生器生成,而不能由第一处理器核心生成。
具体而言,在本发明的一个实施例中,所述将所述虚拟包向所述第二处理器核心发送可以包括:
在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包发生器生成的虚拟包向所述第二处理器核心发送。
也即是说,本实施例中,虚拟包发生器生成的虚拟包和第一缓存区中的数据包是发送数据的两个数据来源,一般情况下,都是将第一缓存区中的数据包向第二处理器核心发送,而每间隔预设时长,例如10分钟,暂停从第一缓存区读取数据包,而是由虚拟包发生器生成虚拟包,然后将虚拟包向第二处理器发送。
可选的,在本发明的一个实施例中,为了保证数据传输的正确性,将所述数据包向第二处理器核心发送可以包括:为所述数据包生成校验码,并将所述数据包与所述校验码一起向所述第二处理器核心发送。也即是说,发送端在发送数据包之前,可以按照预定算法为每个数据包生成校验码,然后将数据包和校验码一起向第二处理器发送,以便在接收端利用校验码对接收到的数据进行校验。
基于此,在本发明的另一个实施例中,为了对虚拟包和数据包进行区分,可以在发送端按照不同的算法分别为虚拟包和数据包生成校验码,以便接收端利用该不同的校验码区分虚拟包和数据包。
相应的,第三方面,本发明的实施例还提供一种数据接收方法,能够大大扩展互连主体之间的时钟适配范围,有效提高数据传输效率。
如图4所示,本发明的实施例提供的数据接收方法,可以包括:
S31,在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区,所述第二缓存区为先进先出缓存区;
其中,第二处理器核心可以是计算机系统中进行控制、计算、管理的模块,例如CPU、操作系统等。接收端链路写时钟可以是第二处理器核心读取数据的触发时钟。
第二缓存区可以是在内存或其他存储器件中设置的缓存区域,存入第二缓存区的数据遵循FIFO(first in first out,先进先出)原则,即先存入的数据被先读取,后存入的数据被后读出。
S32,在接收端数据读时钟到来时,将所述数据包从所述第二缓存区读入第二处理器核心,其中,所述第一处理器核心位于第一晶粒,所述第二处理器核心和所述第二缓存区位于第二晶粒,所述接收端数据读时钟的时钟频率与所述接收端链路写时钟的时钟频率不同。
本发明的实施例提供的数据接收方法,能够在接收端链路写时钟到来时,,接收发送端发送的数据包,并将所述数据包写入第二缓存区,在接收端数据读时钟到来时,将所述数据包从所述第二缓存区读入第二处理器核心。这样即使接收端链路写时钟的时钟频率比接收端数据读时钟的时钟频率快,通信链路也不需要等待接收端数据读时钟进行数据读取,而只需要按照链路时钟的节律,将数据包传输至第二缓存区后,即可进行下一个数据包的传输或者进行其他操作,同样的,第二处理器核心也可以按照接收端数据读时钟的节律执行操作,从而使两个不同时钟频率的互连主体可以高效协同工作,大大扩展了互连主体之间的时钟适配范围,也有效提高了数据传输效率。
可选的,在本发明的一个实施例中,数据包可以为事务数据包或虚拟数据包;则,所述在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区具体可以包括:确定所述数据包是否为虚拟数据包,若所述数据包为虚拟数据包,则将所述虚拟数据包删除,否则,将所述数据包写入第二缓存区。
可以理解的,由于先剔除虚拟数据包后,再将事务数据包存入第二缓存区,因此当接收端数据读时钟的时钟频率慢于链路时钟(即接收端链路写时钟)的时钟频率时,可以通过虚拟数据包的传输消耗更多的通信时间,从而使链路时钟与接收端数据读时钟的时钟频率更加匹配。
可选的,虚拟数据包与事务数据包除了可以通过不同的数据组成进行区分外,还可以通过不同的校验方法区分。举例而言,在本发明的一个实施例中,本发明的实施例提供的数据接收方法还可以包括:分别通过所述事务数据包携带的第一校验码以及所述虚拟数据包携带的第二校验码,识别所述事务数据包和所述虚拟数据包,其中,所述第二校验码的校验算法与所述第一校验码的校验算法不同。
第四方面,如图5所示,本发明的实施例还提供一种数据发送装置,包括:
数据写入单元41,用于在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;
发送单元42,用于在发送端链路读时钟到来时,从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送,其中,发送端数据写时钟的时钟频率高于发送端链路读时钟的时钟频率,所述第一处理器核心和所述第一缓存区位于第一晶粒,所述第二处理器核心位于第二晶粒。
本发明的实施例提供的数据发送装置,当需要将第一处理器核心的数据包向第二处理器核心发送时,先将第一处理器核心中的数据包传输至第一缓存区,并从第一缓存区获取数据包进行发送,这样即使在发送端数据写时钟的时钟频率高于发送端链路读时钟的时钟频率的情况下,第一处理器核心也不需要等待链路时钟的数据读取,而只需要按照发送端数据写时钟的时钟频率将数据包传输至第一缓存区后,即可进行下一个数据包的传输或者进行其他操作,同样的,数据发送操作也可以按照发送端链路读时钟的节律稳定进行,从而使两个不同时钟频率的互连主体可以高效协同工作,大大扩展了互连主体之间的时钟适配范围,也有效提高了数据传输效率。
可选的,发送单元42,还用于:间隔预设时长生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送。
可选的,发送单元42可以包括:
第一生成模块,用于间隔预设时长,通过预先设置的虚拟包发生器生成虚拟包;
第一发送模块,用于在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包向所述第二处理器核心发送。
可选的,发送单元42可以包括:
第二生成模块,用于间隔预设时长,通过所述第一处理器核心生成所述虚拟包;
第二发送模块,用于将所述虚拟包写入所述第一缓存区,以从所述第一缓存区读取所述虚拟包,并将所述虚拟包向所述第二处理器核心发送。
可选的,所述装置还可以包括:时长调整单元,用于根据所述发送端链路读时钟的每个时钟周期内向所述第二处理器核心发送的数据位宽,以及所述发送端数据写时钟的每个时钟周期内写入所述第一缓存区的数据包的数据位宽,动态调整所述预设时长。
可选的,发送单元42,还可以用于为所述数据包生成校验码,并将所述数据包与所述校验码一起向所述第二处理器核心发送。
第五方面,如图6所示,本发明的实施例还提供一种数据发送装置,包括:
数据写入单元51,用于在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;
发送单元52,用于在发送端链路读时钟到来时,若所述第一缓存区非空,则从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送;若所述第一缓存区为空,则通过预先设置的虚拟包发生器生成虚拟包,并将所述虚拟包向所述第二处理器核心发送;
其中,所述发送端数据写时钟的时钟频率低于所述发送端链路读时钟的时钟频率,所述第一处理器核心和所述第一缓存区位于第一晶粒,所述第二处理器核心位于第二晶粒。
本发明的实施例提供的数据发送装置,当需要将第一处理器核心的数据包向第二处理器核心发送时,先将第一处理器核心中的数据包传输至第一缓存区,在发送端链路读时钟到来时,若所述第一缓存区非空,则从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送;若所述第一缓存区为空,则通过预先设置的虚拟包发生器生成虚拟包,并将所述虚拟包向所述第二处理器核心发送。这样,即可通过第一缓存区进行数据缓冲,发送端数据写时钟和发送端链路读时钟可以按照各自的节律进行工作。在发送端数据写时钟的时钟频率低于发送端链路读时钟的时钟频率的情况下,即使数据包没有来得及写入第一缓存区,也可以使用虚拟包代替数据包进行发送,从而保证数据能够被连续不断地串行发送,从而使两个不同时钟频率的互连主体可以高效协同工作,大大扩展了互连主体之间的时钟适配范围,也有效提高了数据传输效率。
可选的,发送单元52,还用于间隔预设时长,通过预先设置的虚拟包发生器生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送。
可选的,发送单元52,具体用于在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包发生器生成的虚拟包向所述第二处理器核心发送。
可选的,发送单元52,还用于:为所述数据包生成校验码,并将所述数据包与所述校验码一起向所述第二处理器核心发送。
第六方面,如图7所示,本发明的实施例还提供一种数据接收装置,包括:
接收单元61,用于在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区,所述第二缓存区为先进先出缓存区;
数据读入单元62,用于在接收端数据读时钟到来时,将所述数据包从所述第二缓存区读入第二处理器核心,其中,所述第一处理器核心位于第一晶粒,所述第二处理器核心和所述第二缓存区位于第二晶粒,所述接收端数据读时钟的时钟频率与所述接收端链路写时钟的时钟频率不同。
本发明的实施例提供的数据接收装置,能够在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区,在接收端数据读时钟到来时,将所述数据包从所述第二缓存区读入第二处理器核心。这样即使接收端链路写时钟的时钟频率比接收端数据读时钟的时钟频率快,通信链路也不需要等待接收端数据读时钟进行数据读取,而只需要按照链路时钟的节律,将数据包传输至第二缓存区后,即可进行下一个数据包的传输或者进行其他操作,同样的,第二处理器核心也可以按照接收端数据读时钟的节律执行操作,从而使两个不同时钟频率的互连主体可以高效协同工作,大大扩展了互连主体之间的时钟适配范围,也有效提高了数据传输效率。
可选的,所述数据包可以为事务数据包或虚拟数据包;
其中,接收单元61,具体用于确定所述数据包是否为虚拟数据包,若所述数据包为虚拟数据包,则将所述虚拟数据包删除,否则,将所述数据包写入第二缓存区。
第七方面,如图8所示,本发明的实施例还提供一种处理器芯片,包括:
第一晶粒7,第一晶粒7上设置有第一处理器核心71、第一缓存区72和串行-解串行模块73;
第一处理器核心71,用于在发送端数据写时钟到来时,将要发送的数据包写入第一缓存区72,第一缓存区72为先进先出缓存区;
串行-解串行模块73,用于在发送端链路读时钟到来时,从第一缓存区72读取所述数据包,并将所述数据包向第二处理器核心发送,其中,所述发送端数据写时钟的时钟频率高于所述发送端链路读时钟的时钟频率;所述第二处理器核心位于第二晶粒上;所述第二晶粒在所述处理器芯片上,或在所述处理器芯片外的另一处理器芯片上。
可选的,处理器芯片可以包括CPU芯片、GPU芯片、异构核芯片中的任一种。
可选的,处理器芯片还可以包括虚拟包发生器,用于间隔预设时长,生成虚拟包;
串行-解串行模块73,还用于在所述发送端链路读时钟到来时,暂停从所述第一缓存区72读取所述数据包,而将所述虚拟包向所述第二处理器核心发送。
可选的,第一处理器核心71还用于:
间隔预设时长,生成所述虚拟包;
将所述虚拟包写入所述第一缓存区,以使所述串行-解串行模块从所述第一缓存区读取所述虚拟包并将所述虚拟包向所述第二处理器核心发送。
可选的,第一处理器核心71,还用于:根据所述发送端链路读时钟的每个时钟周期内向所述第二处理器核心发送的数据位宽,以及所述发送端数据写时钟的每个时钟周期内写入所述第一缓存区的数据包的数据位宽,动态调整所述预设时长。
可选的,处理器芯片还可以包括校验码生成模块,设在所述第一缓存区和所述串行-解串行模块之间,用于为所述数据包生成校验码;所述串行-解串行模块,具体用于将所述数据包与所述校验码一起向所述第二处理器核心发送。
第八方面,如图9所示,本发明的实施例还提供一种处理器芯片,包括:
第一晶粒8,第一晶粒8上设置有第一处理器核心81、第一缓存区82、串行-解串行模块83、虚拟包发生器84;
第一处理器核心81,用于在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区82,第一缓存区82为先进先出缓存区;
串行-解串行模块83,用于在发送端链路读时钟到来时,若第一缓存区82非空,则从第一缓存区82读取所述数据包,并将所述数据包向第二处理器核心发送;若第一缓存区82为空,则将虚拟包发生器84生成的虚拟包向所述第二处理器核心发送;
虚拟包发生器84,用于在发送端链路读时钟到来时,若第一缓存区82为空,则生成虚拟包;
其中,所述发送端数据写时钟的时钟频率低于所述发送端链路读时钟的时钟频率;所述第二处理器核心位于第二晶粒;所述第二晶粒在所述处理器芯片上,或在所述处理器芯片外的另一处理器芯片上。
可选的,虚拟包发生器84,还用于间隔预设时长生成虚拟包;串行-解串行模块83,还用于在所述发送端链路读时钟到来时,将所述虚拟包发生器间隔预设时长生成的所述虚拟包向所述第二处理器核心发送。
可选的,串行-解串行模块83,具体用于:在所述发送端链路读时钟到来时,暂停从所述第一缓存区82读取所述数据包,而将所述虚拟包发生器生成的虚拟包向所述第二处理器核心发送。
可选的,所述处理器芯片还包括校验码生成模块85,用于为所述数据包生成校验码;串行-解串行模块83,具体用于将所述数据包与所述校验码一起向所述第二处理器核心发送。
第九方面,如图10所示,本发明的实施例还提供一种处理器芯片,包括:
第二晶粒9,第二晶粒9上设置有第二处理器核心91、第二缓存区92、串行-解串行模块93;
串行-解串行模块93,用于在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区92,第二缓存区92为先进先出缓存区;
第二处理器核心91,用于在接收端数据读时钟到来时,从第二缓存区92读取所述数据包,其中,所述第一处理器核心位于第一晶粒,所述第一晶粒在所述处理器芯片上,或在所述处理器芯片外的另一处理器芯片上;所述接收端数据读时钟的时钟频率与所述接收端链路写时钟的时钟频率不同。
本发明的实施例提供的数据接收装置,能够在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区,在接收端数据读时钟到来时,将所述数据包从所述第二缓存区读入第二处理器核心。这样即使接收端链路写时钟的时钟频率比接收端数据读时钟的时钟频率快,通信链路也不需要等待接收端数据读时钟进行数据读取,而只需要按照链路时钟的节律,将数据包传输至第二缓存区后,即可进行下一个数据包的传输或者进行其他操作,同样的,第二处理器核心也可以按照接收端数据读时钟的节律执行操作,从而使两个不同时钟频率的互连主体可以高效协同工作,大大扩展了互连主体之间的时钟适配范围,也有效提高了数据传输效率。
可选的,串行-解串行模块93,具体用于:确定所述数据包是否为虚拟数据包,若所述数据包为虚拟数据包,则将所述虚拟数据包删除,否则,将所述数据包写入第二缓存区。
示例性的,在本发明的一个实施例中,第一晶粒7和第二晶粒9之间进行数据传输的结构示意图可以如图11所示。
第十方面,如图12所示,本发明的实施例还提供一种服务器,包括:壳体100、处理器110、存储器120、电路板130和电源电路140,其中,电路板130安置在壳体100围成的空间内部,处理器110和存储器120设置在电路板130上;电源电路140,用于为上述服务器的各个电路或器件供电;存储器120用于存储可执行程序代码;处理器110通过读取存储器120中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述实施例提供的任一种的方法。
处理器110对上述步骤的具体执行过程以及处理器110通过运行可执行程序代码来进一步执行的步骤,可以参见前述实施例的描述,在此不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (36)

1.一种数据发送方法,其特征在于,所述方法包括:
在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;
在发送端链路读时钟到来时,从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送,其中,发送端数据写时钟的时钟频率高于发送端链路读时钟的时钟频率,所述第一处理器核心和所述第一缓存区位于第一晶粒,所述第二处理器核心位于第二晶粒。
2.根据权利要求1所述的方法,其特征在于,还包括:
间隔预设时长生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送。
3.根据权利要求2所述的方法,其特征在于,所述间隔预设时长生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送包括:
间隔预设时长,通过预先设置的虚拟包发生器生成虚拟包;
在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包向所述第二处理器核心发送。
4.根据权利要求2所述的方法,其特征在于,所述间隔预设时长生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送包括:
间隔预设时长,通过所述第一处理器核心生成所述虚拟包;
将所述虚拟包写入所述第一缓存区,以从所述第一缓存区读取所述虚拟包,并将所述虚拟包向所述第二处理器核心发送。
5.根据权利要求2所述的方法,其特征在于,还包括:根据所述发送端链路读时钟的每个时钟周期内向所述第二处理器核心发送的数据位宽,以及所述发送端数据写时钟的每个时钟周期内写入所述第一缓存区的数据包的数据位宽,动态调整所述预设时长。
6.根据权利要求2至5中任一项所述的方法,其特征在于,
所述将所述数据包向第二处理器核心发送包括:
为所述数据包生成校验码,并将所述数据包与所述校验码一起向所述第二处理器核心发送。
7.一种数据发送方法,其特征在于,包括:
在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;
在发送端链路读时钟到来时,若所述第一缓存区非空,则从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送;若所述第一缓存区为空,则通过预先设置的虚拟包发生器生成虚拟包,并将所述虚拟包向所述第二处理器核心发送;
其中,所述发送端数据写时钟的时钟频率低于所述发送端链路读时钟的时钟频率,所述第一处理器核心和所述第一缓存区位于第一晶粒,所述第二处理器核心位于第二晶粒。
8.根据权利要求7所述的方法,其特征在于,还包括:
间隔预设时长,通过预先设置的虚拟包发生器生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送。
9.根据权利要求7或8所述的方法,其特征在于,所述将所述虚拟包向所述第二处理器核心发送包括:
在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包发生器生成的虚拟包向所述第二处理器核心发送。
10.根据权利要求7所述的方法,其特征在于,
所述将所述数据包向第二处理器核心发送包括:
为所述数据包生成校验码,并将所述数据包与所述校验码一起向所述第二处理器核心发送。
11.一种数据接收方法,其特征在于,包括:
在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区,所述第二缓存区为先进先出缓存区;
在接收端数据读时钟到来时,将所述数据包从所述第二缓存区读入第二处理器核心,其中,所述第一处理器核心位于第一晶粒,所述第二处理器核心和所述第二缓存区位于第二晶粒,所述接收端数据读时钟的时钟频率与所述接收端链路写时钟的时钟频率不同。
12.根据权利要求11所述的方法,其特征在于,所述数据包为事务数据包或虚拟数据包;
其中,所述在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区,包括:
确定所述数据包是否为虚拟数据包,若所述数据包为虚拟数据包,则将所述虚拟数据包删除,否则,将所述数据包写入第二缓存区。
13.一种数据发送装置,其特征在于,包括:
数据写入单元,用于在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;
发送单元,用于在发送端链路读时钟到来时,从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送,其中,发送端数据写时钟的时钟频率高于发送端链路读时钟的时钟频率,所述第一处理器核心和所述第一缓存区位于第一晶粒,所述第二处理器核心位于第二晶粒。
14.根据权利要求13所述的装置,其特征在于,所述发送单元,还用于:
间隔预设时长生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送。
15.根据权利要求14所述的装置,其特征在于,所述发送单元包括:
第一生成模块,用于间隔预设时长,通过预先设置的虚拟包发生器生成虚拟包;
第一发送模块,用于在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包向所述第二处理器核心发送。
16.根据权利要求14所述的装置,其特征在于,所述发送单元包括:
第二生成模块,用于间隔预设时长,通过所述第一处理器核心生成所述虚拟包;
第二发送模块,用于将所述虚拟包写入所述第一缓存区,以从所述第一缓存区读取所述虚拟包,并将所述虚拟包向所述第二处理器核心发送。
17.根据权利要求14所述的装置,其特征在于,还包括:时长调整单元,用于根据所述发送端链路读时钟的每个时钟周期内向所述第二处理器核心发送的数据位宽,以及所述发送端数据写时钟的每个时钟周期内写入所述第一缓存区的数据包的数据位宽,动态调整所述预设时长。
18.根据权利要求13至17中任一项所述的装置,其特征在于,
所述发送单元,还用于为所述数据包生成校验码,并将所述数据包与所述校验码一起向所述第二处理器核心发送。
19.一种数据发送装置,其特征在于,包括:
数据写入单元,用于在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;
发送单元,用于在发送端链路读时钟到来时,若所述第一缓存区非空,则从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送;若所述第一缓存区为空,则通过预先设置的虚拟包发生器生成虚拟包,并将所述虚拟包向所述第二处理器核心发送;
其中,所述发送端数据写时钟的时钟频率低于所述发送端链路读时钟的时钟频率,所述第一处理器核心和所述第一缓存区位于第一晶粒,所述第二处理器核心位于第二晶粒。
20.根据权利要求19所述的装置,其特征在于,
所述发送单元,还用于间隔预设时长,通过预先设置的虚拟包发生器生成虚拟包,并在所述发送端链路读时钟到来时,将所述虚拟包向所述第二处理器核心发送。
21.根据权利要求19或20所述的装置,其特征在于,所述发送单元,具体用于在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包发生器生成的虚拟包向所述第二处理器核心发送。
22.根据权利要求19所述的装置,其特征在于,所述发送单元,还用于:
为所述数据包生成校验码,并将所述数据包与所述校验码一起向所述第二处理器核心发送。
23.一种数据接收装置,其特征在于,包括:
接收单元,用于在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区,所述第二缓存区为先进先出缓存区;
数据读入单元,用于在接收端数据读时钟到来时,将所述数据包从所述第二缓存区读入第二处理器核心,其中,所述第一处理器核心位于第一晶粒,所述第二处理器核心和所述第二缓存区位于第二晶粒,所述接收端数据读时钟的时钟频率与所述接收端链路写时钟的时钟频率不同。
24.根据权利要求23所述的装置,其特征在于,所述数据包为事务数据包或虚拟数据包;
其中,所述接收单元,具体用于确定所述数据包是否为虚拟数据包,若所述数据包为虚拟数据包,则将所述虚拟数据包删除,否则,将所述数据包写入第二缓存区。
25.一种处理器芯片,其特征在于,包括:
第一晶粒,所述第一晶粒上设置有第一处理器核心、第一缓存区和串行-解串行模块;
所述第一处理器核心,用于在发送端数据写时钟到来时,将要发送的数据包写入所述第一缓存区,所述第一缓存区为先进先出缓存区;
所述串行-解串行模块,用于在发送端链路读时钟到来时,从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送,其中,所述发送端数据写时钟的时钟频率高于所述发送端链路读时钟的时钟频率;所述第二处理器核心位于第二晶粒上;所述第二晶粒在所述处理器芯片上,或在所述处理器芯片外的另一处理器芯片上。
26.根据权利要求25所述的处理器芯片,其特征在于,还包括:虚拟包发生器,用于间隔预设时长,生成虚拟包;
所述串行-解串行模块,还用于在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包向所述第二处理器核心发送。
27.根据权利要求25所述的处理器芯片,其特征在于,所述第一处理器核心还用于:
间隔预设时长,生成所述虚拟包;
将所述虚拟包写入所述第一缓存区,以使所述串行-解串行模块从所述第一缓存区读取所述虚拟包并将所述虚拟包向所述第二处理器核心发送。
28.根据权利要求26或27所述的处理器芯片,其特征在于,所述第一处理器核心,还用于:根据所述发送端链路读时钟的每个时钟周期内向所述第二处理器核心发送的数据位宽,以及所述发送端数据写时钟的每个时钟周期内写入所述第一缓存区的数据包的数据位宽,动态调整所述预设时长。
29.根据权利要求25中任一项所述的处理器芯片,其特征在于,还包括校验码生成模块,设在所述第一缓存区和所述串行-解串行模块之间,用于为所述数据包生成校验码;
所述串行-解串行模块,具体用于将所述数据包与所述校验码一起向所述第二处理器核心发送。
30.一种处理器芯片,其特征在于,包括:
第一晶粒,所述第一晶粒上设置有第一处理器核心、第一缓存区、串行-解串行模块、虚拟包发生器;
所述第一处理器核心,用于在发送端数据写时钟到来时,将第一处理器核心要发送的数据包写入第一缓存区,所述第一缓存区为先进先出缓存区;
所述串行-解串行模块,用于在发送端链路读时钟到来时,若所述第一缓存区非空,则从所述第一缓存区读取所述数据包,并将所述数据包向第二处理器核心发送;若所述第一缓存区为空,则将所述虚拟包发生器生成的虚拟包向所述第二处理器核心发送;
所述虚拟包发生器,用于在发送端链路读时钟到来时,若所述第一缓存区为空,则生成虚拟包;
其中,所述发送端数据写时钟的时钟频率低于所述发送端链路读时钟的时钟频率;所述第二处理器核心位于第二晶粒;所述第二晶粒在所述处理器芯片上,或在所述处理器芯片外的另一处理器芯片上。
31.根据权利要求30所述的处理器芯片,其特征在于,所述虚拟包发生器,还用于间隔预设时长生成虚拟包;
所述串行-解串行模块,还用于在所述发送端链路读时钟到来时,将所述虚拟包发生器间隔预设时长生成的所述虚拟包向所述第二处理器核心发送。
32.根据权利要求30或31所述的处理器芯片,其特征在于,所述串行-解串行模块,具体用于:
在所述发送端链路读时钟到来时,暂停从所述第一缓存区读取所述数据包,而将所述虚拟包发生器生成的虚拟包向所述第二处理器核心发送。
33.根据权利要求30所述的处理器芯片,其特征在于,还包括校验码生成模块,用于为所述数据包生成校验码;
所述串行-解串行模块,具体用于将所述数据包与所述校验码一起向所述第二处理器核心发送。
34.一种处理器芯片,其特征在于,包括:
第二晶粒,所述第二晶粒上设置有第二处理器核心、第二缓存区、串行-解串行模块;
所述串行-解串行模块,用于在接收端链路写时钟到来时,接收发送端发送的数据包,并将所述数据包写入第二缓存区,所述第二缓存区为先进先出缓存区;
所述第二处理器核心,用于在接收端数据读时钟到来时,从所述第二缓存区读取所述数据包,其中,所述第一处理器核心位于第一晶粒,所述第一晶粒在所述处理器芯片上,或在所述处理器芯片外的另一处理器芯片上;所述接收端数据读时钟的时钟频率与所述接收端链路写时钟的时钟频率不同。
35.根据权利要求34所述的处理器芯片,其特征在于,所述串行-解串行模块,具体用于:
确定所述数据包是否为虚拟数据包,若所述数据包为虚拟数据包,则将所述虚拟数据包删除,否则,将所述数据包写入第二缓存区。
36.一种服务器,其特征在于,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述服务器的各个电路或器件供电;存储器用于存储可执行程序代码;所述处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述权利要求1-12中任一项所述的方法。
CN201911363022.3A 2019-12-25 2019-12-25 数据发送方法、接收方法及装置、处理器芯片、服务器 Active CN111124997B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911363022.3A CN111124997B (zh) 2019-12-25 2019-12-25 数据发送方法、接收方法及装置、处理器芯片、服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911363022.3A CN111124997B (zh) 2019-12-25 2019-12-25 数据发送方法、接收方法及装置、处理器芯片、服务器

Publications (2)

Publication Number Publication Date
CN111124997A true CN111124997A (zh) 2020-05-08
CN111124997B CN111124997B (zh) 2021-07-23

Family

ID=70502744

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911363022.3A Active CN111124997B (zh) 2019-12-25 2019-12-25 数据发送方法、接收方法及装置、处理器芯片、服务器

Country Status (1)

Country Link
CN (1) CN111124997B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590520A (zh) * 2021-06-15 2021-11-02 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101320362A (zh) * 2008-06-27 2008-12-10 北京大学深圳研究生院 支持异步传输的阵列处理系统及其时钟管理方法
CN202135138U (zh) * 2011-06-29 2012-02-01 北京阳光金力科技发展有限公司 Mctp的时钟调整装置
US20120233363A1 (en) * 2008-10-28 2012-09-13 Vmware, Inc. Quality of service management
CN103516627A (zh) * 2012-06-20 2014-01-15 中兴通讯股份有限公司 多芯片通信中数据包发送、接收的方法和装置
CN105680871A (zh) * 2016-04-07 2016-06-15 武汉芯泰科技有限公司 用于数据串行传输的并串、串并转换装置
CN107209543A (zh) * 2015-02-03 2017-09-26 高通股份有限公司 用于处理单元的时钟速率调整
CN108880723A (zh) * 2017-05-16 2018-11-23 深圳市中兴软件有限责任公司 一种时钟同步的方法和装置
CN109388370A (zh) * 2017-08-03 2019-02-26 深圳市中兴微电子技术有限公司 一种实现先入先出队列的方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101320362A (zh) * 2008-06-27 2008-12-10 北京大学深圳研究生院 支持异步传输的阵列处理系统及其时钟管理方法
US20120233363A1 (en) * 2008-10-28 2012-09-13 Vmware, Inc. Quality of service management
CN202135138U (zh) * 2011-06-29 2012-02-01 北京阳光金力科技发展有限公司 Mctp的时钟调整装置
CN103516627A (zh) * 2012-06-20 2014-01-15 中兴通讯股份有限公司 多芯片通信中数据包发送、接收的方法和装置
CN107209543A (zh) * 2015-02-03 2017-09-26 高通股份有限公司 用于处理单元的时钟速率调整
CN105680871A (zh) * 2016-04-07 2016-06-15 武汉芯泰科技有限公司 用于数据串行传输的并串、串并转换装置
CN108880723A (zh) * 2017-05-16 2018-11-23 深圳市中兴软件有限责任公司 一种时钟同步的方法和装置
CN109388370A (zh) * 2017-08-03 2019-02-26 深圳市中兴微电子技术有限公司 一种实现先入先出队列的方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590520A (zh) * 2021-06-15 2021-11-02 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统
CN113590520B (zh) * 2021-06-15 2024-05-03 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统

Also Published As

Publication number Publication date
CN111124997B (zh) 2021-07-23

Similar Documents

Publication Publication Date Title
CN102708086B (zh) 一种应用于usb3.0的弹性缓冲结构及方法
CN111124997B (zh) 数据发送方法、接收方法及装置、处理器芯片、服务器
CN102902646B (zh) 板卡通信方法及板卡、fpga的加载方法和系统
CN109902056A (zh) 一种串行传输的方法、装置、设备及计算机可读存储介质
CN116795172B (zh) 一种用于高速数字传输的跨时钟域处理方法、介质及装置
CN116431079A (zh) 数据读取、写入方法及装置、带宽转换装置和电子设备
CN110708133A (zh) 一种基于fpga的系统内时钟同步和时间同步的方法及装置
US6941434B2 (en) Self-synchronous FIFO memory device having high access efficiency, and system provided with interface for data transfer using the same
CN114443170B (zh) Fpga动态并行加卸载系统
CN111352888A (zh) 异步收发器的中断信号产生方法及装置
CN105808476B (zh) 跨时钟域数据的传输方法及装置
CN104991883A (zh) 片间互联的发送、接收装置及发送、接收方法及系统
US10476630B2 (en) Digital bus noise suppression
CN103592594B (zh) 电路测试系统及电路测试方法
CN106533976A (zh) 一种数据包处理方法及装置
US8510485B2 (en) Low power digital interface
CN114003525B (zh) 数据传输的方法、模块、装置、设备及存储介质
Das et al. Sas: Source asynchronous signaling protocol for asynchronous handshake communication free from wire delay overhead
CN115220528A (zh) 时钟获得方法、装置、芯片、电子设备及存储介质
JP6289147B2 (ja) データ伝送装置、データ伝送システム、キャリブレーション方法及びプログラム
US9509780B2 (en) Information processing system and control method of information processing system
CN110601784B (zh) Tdm接口扩展方法及装置、设备、可读存储介质
EP1911188B1 (en) Asynchronous data buffer
CN114301991A (zh) 通信方法、设备、系统及计算机可读存储介质
US7421522B1 (en) Techniques for transmitting and receiving SPI4.2 status signals using a hard intellectual property block

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
CB02 Change of applicant information

Address after: 300 000 Tianjin Binhai New Area Tianjin Huayuan Industrial Zone No. 18 Haitai West Road North 2-204 industrial incubation-3-8

Applicant after: Haiguang Information Technology Co., Ltd

Address before: 300 000 Tianjin Binhai New Area Tianjin Huayuan Industrial Zone No. 18 Haitai West Road North 2-204 industrial incubation-3-8

Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant