CN1276371C - 基于pci共享内存的双cpu通信方法 - Google Patents

基于pci共享内存的双cpu通信方法 Download PDF

Info

Publication number
CN1276371C
CN1276371C CN 200410003490 CN200410003490A CN1276371C CN 1276371 C CN1276371 C CN 1276371C CN 200410003490 CN200410003490 CN 200410003490 CN 200410003490 A CN200410003490 A CN 200410003490A CN 1276371 C CN1276371 C CN 1276371C
Authority
CN
China
Prior art keywords
microprocessor
data
passage
bcm1250
ppc8245
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.)
Expired - Fee Related
Application number
CN 200410003490
Other languages
English (en)
Other versions
CN1564147A (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.)
Huawei Technologies Co Ltd
Original Assignee
Harbour Networks Holdings 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 Harbour Networks Holdings Ltd filed Critical Harbour Networks Holdings Ltd
Priority to CN 200410003490 priority Critical patent/CN1276371C/zh
Publication of CN1564147A publication Critical patent/CN1564147A/zh
Application granted granted Critical
Publication of CN1276371C publication Critical patent/CN1276371C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

本发明提供了一种基于PCI共享内存的双CPU通信系统,属于板内多CPU之间通信系统领域。在本系统中,BCM1250微处理器分配一段物理内存作为共享内存,设置PCI配置空间中的地址映射寄存器,PPC8245微处理器保留一段内存地址空间,设置PCI配置空间中的BAR0寄存器,将共享内存分为一从PPC8245微处理器到BCM1250微处理器的通信通道和一从BCM1250微处理器到PPC8245微处理器的通信通道,两个CPU之间通过这两个通道来实现通信。同时实现从PPC8245到BCM1250的可靠同步发送方式和从BCM1250到PPC8245的不可靠发送方式,使本发明在保证通信效率的同时,保证了系统的可靠性和稳定性。

Description

基于PCI共享内存的双CPU通信方法
技术领域
本发明属于板内多CPU之间通信系统领域,具体涉及一种基于PCI共享内存的双CPU通信系统。
背景技术
在双CPU系统中,一个CPU作为PCI主设备,另一个作为PCI从设备,作为PCI从设备的CPU可以将自己的一段内存映射到PCI设备上(作为PCI从设备的一个功能),作为PCI主设备的CPU可以访问这段内存,将这段内存叫做共享内存,用它来实现这两个CPU之间的通信。目前,基于双CPU结构的网络处理器通常采用BCM1250微处理器做转发,负责数据报文的转发,PPC8245微处理器做控制,负责转发表项的管理,两者通过PCI总线相互通信。其中,BCM1250微处理器作为PCI从设备,提供16M内存作为共享内存,PPC8245微处理器可通过PCI总线访问BCM1250微处理器上的16M物理内存。数据报文采用TLV方式编码,包括数据的类型、长度和数据体。但由于PPC8245微处理器下发转发表项到BCM1250微处理器,BCM1250微处理器向PPC8245微处理器上传调试信息,需要数据传输的一致性,保证共享内存访问的一致性是亟待解决的问题。
发明内容
本发明解决了双CPU基于PCI的通信共享内存访问一致性的问题,提供了一种双CPU之间的简洁、高效的通信方法。
本发明的另一个目的,在双CPU之间提供两种不同的数据传输方式。
本发明的技术内容:一种基于PCI共享内存的双CPU通信方法,其特征在于:
(1)BCM1250微处理器分配一段物理内存作为共享内存,设置PCI配置空间中的地址映射寄存器,PPC8245微处理器保留一段内存地址空间,设置PCI配置空间中的BAR0寄存器;
(2)将共享内存分为一从PPC8245微处理器到BCM1250微处理器的通信通道和一从BCM1250微处理器到PPC8245微处理器的通信通道;
(3)每个通道的一方只能读,而另一方只能写。
每个通道提供一个通道读写标志位,用于表示通道中是否有数据,通信的接收方轮循这个标志位,当有数据时,则接收数据;通信的发送方在发送数据时检查这个标志位,当没有数据时,可以发送数据,否则不可以发送数据,同时给出相应的出错信息。
每个通道进一步提供一个返回值标志位,用于表示接收方作完处理后的回应,PPC8245微处理器到BCM1250微处理器通道的发送方在给定的时间内轮循这个标志位,如在给定的时间内还没有接收方的回应,说明可能接收CPU出现异常情况,这时发送CPU需要延长等待时间,同时提示系统管理员PCI通信系统出错信息。
所述通道读写标志位的访问权限为:对于发送方,只能将通道读写标志位由无数据状态(0)改为有数据状态(1),而接收方只能将通道读写标志位由有数据状态(1)改为无数据状态(0)。
本发明的技术效果:将共享内存分为两个通道,没有采用多通道设计,也没有采用发送和接收缓存,这样在保证通信效率的同时,尽量保持简洁。
通信协议必须保证重要数据的可靠传输,对于同步调用的通信方式,可以保证数据的可靠性,同时还保证了数据先后的一致性,而异步调用方式则不保证数据的可靠性。本发明采用两种数据传输方式保证了系统的可靠性、稳定性,且在可靠的同步发送方式中,如果在规定的时间内接受方还没有返回,则发送方必须采用相应的措施来通知系统管理员,使系统具有容错性。
接收数据的CPU通过轮循标志位的方式来判断是否有数据的到来,这种方式下的系统开销很小,且不中断同一报文的转发流程。
附图说明
图1是本发明中共享内存示意图;
图2是本发明中共享内存的结构示意图;
图3是本发明中从PPC8245微处理器到BCM1250微处理器通道的发送数据流程示意图;
图4是本发明中从BCM1250微处理器到PPC8245微处理器通道的发送数据流程示意图;
图5是本发明中两个通信的接收数据流程示意图。
具体实施方式
在本系统中,BCM1250微处理器分配16M物理内存作为共享内存,设置PCI配置空间中的地址映射寄存器;PPC8245微处理器保留16M内存地址空间,设置PCI配置空间中的BAR0寄存器。通过双方的配置,PPC8245微处理器就可以通过PCI总线访问BCM1250微处理器上的16M物理内存,完成PCI设备的初始化,同时BCM1250微处理器可以通过INTA中断PPC8245微处理器,PPC8245微处理器可以通过MAILBOX中断BCM1250微处理器,实现二者之间的中断通信。
将共享内存分为一从PPC8245微处理器到BCM1250微处理器的通信通道和一从BCM1250微处理器到PPC8245微处理器的通信通道。参考图1,共享内存的前8M为PPC8245微处理器的发送通道,BCM1250微处理器的接收通道。后8M为BCM1250微处理器的发送通道,PPC8245微处理器的接收通道,每个通道的一方只能读,而另一方只能写,这样一方面保证了两个通道的并行使用,同时也起到了数据区的读写保护。
两个通道的结构定义相同,参考图2,两个通道的前1K空间为控制头:第一个四字节整型数定义为通道读写标志位,第二个四字节整型数定义为通道返回值标志位,其它的空间暂时保留。两个通道从1K到8M的空间为数据部分,其中前32字节为数据头,第一个四字节整型数定义为数据类型标志位,第二个四字节整型数定义为数据操作标志位,第三个四字节整型数定义为数据长度标志位,其它20字节保留。即从1K+32字节之后才是具体的数据内容。
虽然两个通道的结构定义相同,但通信方式不同。PPC8245微处理器下发转发表项到BCM1250微处理器,需要可靠的传输,一方在发送数据之后,必须同步等待另一方做完处理之后的返回结果,整个过程通信才结束,类似RPC的同步调用过程。在正常情况下,由于发送函数是同步调用的,每次调用发送函数都可以成功发送数据,保证了数据的可靠传输和数据的先后顺序。这种通信方式能够满足从PPC8245微处理器到BCM1250微处理器的转发表项数据的传输,其传输频繁,且必须保证这些数据的可靠传输和效率,同时还要保证数据的先后顺序。BCM1250微处理器向PPC8245微处理器上传调试信息,不需要可靠的传输,一方调用发送函数发送数据,发送函数发送数据之后立刻返回,另一方在处理完成之后也不给返回结果。这样发送函数有可能没有发送成功,即数据得不到可靠的传输。这种传输方式适合从BCM1250微处理器到PPC8245微处理器的调试信息数据的传输,其数据传输少,且是在需要的时候才有传输。
在本网络处理器中,发送模块的实现用函数的方式提供给上层模块,接收模块启动一个任务来实现,在任务中将收到的数据分发给相应的处理模块。同时每个通道提供一个通道读写标志位,用来表示通道中是否有数据(如,0表示没有数据,1表示有数据),通信的双方轮循这个标志位,来决定做相应的操作。当有数据时,接收方接收数据,当没有数据时,发送方可以发送数据。这样的设计还必须保证通道标志位的访问权限,对于发送方,只能将通道标志位由无数据状态(0)改为有数据状态(1),而接收方只能将通道标志位由有数据状态(1)改为无数据状态(O),否则共享内存的读写可能会混乱。参考图3,从PPC8245微处理器到BCM1250微处理器的可靠同步发送流程为,发送方首先通过“通道读写标志位”判断是否可以访问共享内存,如果可以访问,则发送数据,即将数据写入共享内存,再将“通道读写标志位”设置为可接收状态,然后轮循“通道返回值标志位”,等待接收方的回应。如果在给定的时间内还没有返回,说明可能接收方出现异常情况,这时发送方需要延长等待时间,如1s,每隔100ms判断一次是否返回,同时提示系统管理员PCI通信系统出错信息(这个过程不占CPU时间),然后退出发送流程。如果共享内存不可以访问,即接收方没有释放共享内存的控制权,可能接收方出现异常情况,这时发送方必须告警,提示系统管理员PCI通信系统出错的信息,然后退出发送流程。
参考图4,从BCM1250微处理器到PPC8245微处理器的不可靠的发送流程为,发送方首先通过“通道读写标志位”判断是否可以可访问共享内存,如果可以访问,则发送数据,即将数据写入共享内存,再将“通道读写标志位”设置为可接收状态,然后返回。如果共享内存不可以访问,即接收方没有释放共享内存的控制权,可能接收方出现异常情况,这时发送方直接退出。
参考图5,两个通道的接收流程为:接收方启动接收任务,通过轮循“通道读写标志位”,判断通道中是否有数据,如果有数据,“通道读写标志位”为接收状态,则接收数据,根据数据控制头中的TYPE和OPTCODE,交给相应的模块处理,然后将“通道读写标志位”改为发送状态。对于“可靠的同步发送方式”的接收模块,需要将处理模块返回的结果写到“通道返回值标志位”中。

Claims (4)

1.一种基于PCI共享内存的双CPU通信方法,其特征在于:
(1)BCM1250微处理器分配一段物理内存作为共享内存,设置PCI配置空间中的地址映射寄存器,PPC8245微处理器保留一段内存地址空间,设置PCI配置空间中的BAR0寄存器;
(2)将共享内存分为一从PPC8245微处理器到BCM1250微处理器的通信通道和一从BCM1250微处理器到PPC8245微处理器的通信通道;
(3)每个通道的一方只能读,而另一方只能写。
2.如权利要求1所述的基于PCI共享内存的双CPU通信方法,其特征在于:每个通道提供一个通道读写标志位,用于表示通道中是否有数据,通信的接收方轮循这个标志位,当有数据时,则接收数据;通信的发送方在发送数据时检查这个标志位,当没有数据时,可以发送数据,否则不可以发送数据,同时给出相应的出错信息。
3.如权利要求1或2所述的基于PCI共享内存的双CPU通信方法,其特征在于:每个通道进一步提供一个返回值标志位,用于表示接收方作完处理后的回应,PPC8245微处理器到BCM1250微处理器通道的发送方在给定的时间内轮循这个标志位,如在给定的时间内还没有接收方的回应,发送方需要延长等待时间,同时提示系统管理员PCI通信系统出错信息。
4.如权利要求2所述的基于PCI共享内存的双CPU通信方法,其特征在于:所述通道读写标志位的访问权限为:对于发送方,只能将通道读写标志位由无数据状态改为有数据状态,而接收方只能将通道读写标志位由有数据状态改为无数据状态。
CN 200410003490 2004-03-31 2004-03-31 基于pci共享内存的双cpu通信方法 Expired - Fee Related CN1276371C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200410003490 CN1276371C (zh) 2004-03-31 2004-03-31 基于pci共享内存的双cpu通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200410003490 CN1276371C (zh) 2004-03-31 2004-03-31 基于pci共享内存的双cpu通信方法

Publications (2)

Publication Number Publication Date
CN1564147A CN1564147A (zh) 2005-01-12
CN1276371C true CN1276371C (zh) 2006-09-20

Family

ID=34477619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200410003490 Expired - Fee Related CN1276371C (zh) 2004-03-31 2004-03-31 基于pci共享内存的双cpu通信方法

Country Status (1)

Country Link
CN (1) CN1276371C (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100432967C (zh) * 2005-06-15 2008-11-12 杭州华三通信技术有限公司 Pci设备之间进行通信的方法、设备以及计算机系统
CN101242447B (zh) * 2008-03-12 2010-07-14 上海闻泰电子科技有限公司 一种双cpu架构智能手机及其通信控制方法
CN101604304B (zh) * 2009-01-24 2011-09-07 北京清电华力电气自动化科技有限公司 一种多cpu间通信的方法和继电保护装置
CN106407131B (zh) * 2016-03-30 2019-06-11 沈阳泰科易科技有限公司 内存访问方法和装置
CN106776278B (zh) * 2016-11-23 2020-06-19 福州瑞芯微电子股份有限公司 一种基于双核架构的dsp调试方法和装置
CN108829631A (zh) * 2018-04-27 2018-11-16 江苏华存电子科技有限公司 一种提升多核处理器的信息管理方法
CN108874699B (zh) * 2018-06-19 2021-06-25 北京元心科技有限公司 多系统使用mtp功能的方法、装置及电子设备
CN110532109B (zh) * 2019-08-16 2023-06-30 东南大学 一种共享多通道进程通信内存结构和方法
CN112711491B (zh) * 2021-03-29 2021-07-09 江苏未来智慧信息科技有限公司 一种基于共享内存的消息传递方法

Also Published As

Publication number Publication date
CN1564147A (zh) 2005-01-12

Similar Documents

Publication Publication Date Title
EP1358562B1 (en) Method and apparatus for controlling flow of data between data processing systems via a memory
US8843655B2 (en) Data transfer, synchronising applications, and low latency networks
EP1514191B1 (en) A network device driver architecture
CN1305271C (zh) 基于代理映射的网络安全隔离与信息交换系统及方法
CN101501660B (zh) 因特网连接交换机和因特网连接系统
US7409468B2 (en) Controlling flow of data between data processing systems via a memory
CN113852656B (zh) 一种数据传输方法、处理器系统及内存访问系统
WO2006019512B1 (en) Apparatus and method for supporting connection establishment in an offload of network protocol processing
EP1779609B1 (en) Integrated circuit and method for packet switching control
CN1276371C (zh) 基于pci共享内存的双cpu通信方法
CN101150487A (zh) 一种零拷贝网络报文发送方法
US20040054822A1 (en) Transferring interrupts from a peripheral device to a host computer system
CN111431757A (zh) 虚拟网络的流量采集方法及装置
CN102664918A (zh) 刀片服务器控制方法及控制台
US6484208B1 (en) Local access of a remotely mirrored disk in a computer network
EP3058684B1 (en) Network interface
US7269666B1 (en) Memory utilization in a network interface
US8566833B1 (en) Combined network and application processing in a multiprocessing environment
EP1190317A2 (en) Data transfer, synchronising applications, and low latency networks
EP1508096B1 (en) Backplane architecture for a media server
Liaaen et al. Dolphin SCI Adapter Cards.
CN115576656A (zh) 一种域间通讯的装置、方法及设备
CN117749868A (zh) 一种基于反射内存与dds架构的半实物仿真通信系统
Gifford et al. A Component Based Architecture for CAN Based Systems
CN1671216A (zh) 利用双发选收电路的双平面系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: HUAWEI TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: GANGWAN NETWORK CO., LTD.

Effective date: 20060922

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20060922

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee after: Huawei Technologies Co., Ltd.

Address before: 100089, No. 21 West Third Ring Road, Beijing, Haidian District, Long Ling Building, 13 floor

Patentee before: Harbour Networks Holdings Limited

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060920

Termination date: 20110331