CN100511207C - 一种双处理器间的通讯方法 - Google Patents

一种双处理器间的通讯方法 Download PDF

Info

Publication number
CN100511207C
CN100511207C CNB2007100639424A CN200710063942A CN100511207C CN 100511207 C CN100511207 C CN 100511207C CN B2007100639424 A CNB2007100639424 A CN B2007100639424A CN 200710063942 A CN200710063942 A CN 200710063942A CN 100511207 C CN100511207 C CN 100511207C
Authority
CN
China
Prior art keywords
processor
interrupt
communication
memory block
interruption
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.)
Active
Application number
CNB2007100639424A
Other languages
English (en)
Other versions
CN101013414A (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.)
Shenzhen ZTE Microelectronics Technology Co Ltd
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CNB2007100639424A priority Critical patent/CN100511207C/zh
Publication of CN101013414A publication Critical patent/CN101013414A/zh
Application granted granted Critical
Publication of CN100511207C publication Critical patent/CN100511207C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

一种双处理器间的通讯方法,在DPRAM中划分出4个不重叠的存储区域:第一存储区、第二存储区、第三存储区和第四存储区;第二处理器周期***替触发第一处理器的中断:第一中断和第二中断;在触发第一中断之后、触发第二中断之前,第二处理器读取第一存储区中保存的通讯数据,并在第三存储区写入通讯数据;作为对第一中断的响应,第一处理器在第二存储区写入通讯数据,并读取第四存储区中保存的通讯数据;在触发第二中断之后、触发第一中断之前,第二处理器读取第二存储区中保存的通讯数据,并在第四存储区写入通讯数据;作为对第二中断的响应,第一处理器在第一存储区写入通讯数据,并读取第三存储区中保存的通讯数据。

Description

一种双处理器间的通讯方法
技术领域
本发明涉及一种多处理器的通讯方法,尤其涉及一种双处理器间通过DPRAM(Dual Port RAM,双端口随机存取存储器)进行通讯的方法。
背景技术
在通讯、多媒体处理等广泛使用计算机***的领域,随着处理的数据量和复杂程度的不断提高,包含一个处理器的***已经很难满足用户对实时性和处理能力的要求。因此,大型复杂的***通常包含两个或多个处理器,每个处理器完成各自的任务。此外,在某些***中还需要使用不同类型的处理器完成不同的任务。例如,将控制功能和数据运算分别交由不同的处理器进行处理,以达到最佳的***性能。
作为一个***,多个处理器之间需要实时交换数据才能保证协同并行地工作。可将多个处理器以总线的方式连接在一起实现处理器之间的数据交换。但是采用这种方式,通常需要使用VME(Versa ModuleEurope,欧洲通用模块)等支持多处理器的总线结构对***进行设计,并且需要在各处理器上运行同样的操作***才能有效地进行同步和互斥。因此这种方式适用范围较小,成本较高。
基于以上原因,在包含两个处理器的***中通常采用共享存储器进行消息和数据的交互,以实现两个处理器器之间的通讯,通常共享存储器采用DPRAM。但是采用这种方式也需要设计专门的总线控制电路以实现两个处理器对DPRAM的分时访问。这增加了硬件设计的难度和成本,并且灵活性和通用性较差。
发明内容
本发明所要解决的技术问题是,克服现有技术中两个处理器之间的通讯方法的不足,提出一种采用DPRAM和特定的通讯协议实现两个处理器之间的实时通讯的方法,降低对硬件电路的依赖程度,提高灵活性和通用型。
为了解决上述问题,本发明提出一种双处理器间的通讯方法,应用于包含第一处理器、第二处理器和DPRAM的***中,其中,所述第一处理器、第二处理器分别与DPRAM的不同端口相连;第二处理器触发第一处理器的中断;其特征在于,在DPRAM中划分出4个不重叠的存储区域:第一存储区、第二存储区、第三存储区和第四存储区;第二处理器周期***替触发第一处理器的中断:第一中断和第二中断;
在触发第一中断之后、触发第二中断之前,第二处理器读取第一存储区中保存的通讯数据,并在第三存储区写入通讯数据;
作为对第一中断的响应,第一处理器在第二存储区写入通讯数据,并读取第四存储区中保存的通讯数据;
在触发第二中断之后、触发第一中断之前,第二处理器读取第二存储区中保存的通讯数据,并在第四存储区写入通讯数据;
作为对第二中断的响应,第一处理器在第一存储区写入通讯数据,并读取第三存储区中保存的通讯数据。
此外,在所述DPRAM中设置中断控制位,所述第二处理器以在该中断控制位写入标识中断类型的数值的方式触发所述第一处理器的中断;在接收到中断后,所述第一处理器根据该中断控制位中的数值判断接收到的中断的类型,并清中断;所述中断控制位长度大于1比特。
此外,所述第一处理器运行的子***包含第一时钟计数器,第二处理器运行的子***包含第二时钟计数器,第二处理器在触发第一中断之后、触发第二中断之前将第一时钟计数器加1;第一处理器作为对第一中断的响应将第二时钟计数器加1。
此外,所述通讯数据包含:数据长度,用于标识相应存储区中保存的数据的长度;数据类型,用于标识数据的类型;和数据内容。
此外,所述第二处理器在第四存储区写入表示***时间的通讯数据,所述第一处理器根据该通讯数据调整***时间。
此外,触发第一中断到触发第二中断之间的时间间隔和触发第二中断到触发第一中断的时间间隔大于第二处理器和第一处理器进行中断处理和对DPRAM进行读写操作所需的时间。
此外,所述第二中断的触发时刻与其相邻的两次第一中断的触发时刻之间的时间间隔相等。
本发明通过由两个处理器中的一个触发2次中断的方式发起对DPRAM的特定区域的读写操作,不仅实现了两个处理器的实时通讯,并且完全隔离了运行在两个处理器上的操作***的差异性,极大缩短了不同***的整合和移植的周期。
附图说明
图1是通过DPRAM通讯的双处理器***的结构示意图;
图2是本发明的双处理器间的通讯方法的示意图;
图3是采用本发明的通讯方法的ARM和DSP通讯的时序关系图。
具体实施方式
本发明的基本思路是,在包含处理器A和处理器B的***中,处理器B以固定的时间间隔触发2次处理器A的中断,在中断触发后,处理器A和处理器B同时对DPRAM的特定区域进行读或写操作,以实现在该时间间隔中处理器A和处理器B之间的双向数据和消息的通讯。
下面将结合附图和实施例对本发明进行详细的描述。
图1是通过DPRAM通讯的双处理器***的结构示意图,如图1所示,该***包含处理器A、处理器B和DPRAM。其中,处理器A和处理器B与DPRAM之间都以地址和数据总线相连。此外,处理器A和DPRAM之间还包含中断控制线。
其中,处理器A通常是有较好控制功能的嵌入式处理器,如ARM或PPC,负责整个***的任务调度和管理;处理器A上运行操作***A。
处理器B通常是有较强运算功能的DSP(Digital Signal Processing,数字信号处理器),负责复杂的数据运算和处理;处理器B上运行操作***B。
DPRAM是具有2个独立的访问端口的RAM(随机存取存储器),允许处理器A和处理器B分别通过不同的端口对其进行数据的读写操作,用于存储两个处理器间交互的消息或数据。
中断控制线用于触发处理器A的中断。中断的实现原理同硬件的设计有关,可以采用对DPRAM中的特定寄存器写数据产生中断,读数据清中断的方式。本实施例采用处理器B写DPRAM中的中断控制位产生中断,处理器A读DPRAM中的中断控制位清中断的工作方式。
作为一个包含多处理器协同工作的***,特别是包含多处理器的ASIC(Application SpecialIntegrated Circuit,专用集成电路)芯片,需要保证一个***内有唯一的时钟。在本实施例中,以处理器B作为***中的唯一时钟源,通过以固定的时间间隔T不断地触发处理器A的中断,可以使得两个处理器保持同步。
为了实现处理器A和处理器B对DPRAM的互斥访问,处理器B需要在时间间隔T触发2次处理器A的中断以发起通讯。也就是说,将***时间划分为长度为T的单元,我们称之为帧;一帧可包含多个处理器的时钟周期,每一帧开始的时刻,称为全帧时刻,每一帧的中间时刻,称为半帧时刻。处理器B在全帧时刻发起的中断称为全帧中断;处理器B在半帧时刻发起的中断称为半帧中断。
图2是本发明的双处理器间的通讯方法的示意图。如图2所示,DPRAM被划分为上行消息、上行数据、下行消息、下行数据和中断控制位5个区域。其中,上行消息和上行数据区域保存处理器A发送给处理器B的消息和数据;下行消息和下行数据区域保存处理器B发送给处理器A的消息和数据;中断控制位用于处理器B写入中断信息以区分中断的类型,同时触发中断。
处理器A和处理器B之间的通讯包含全帧通讯和半帧通讯两部分:
全帧通讯:当全帧时刻来临时处理器B和处理器A进行如下操作:
201:处理器B向中断控制位写入全帧中断信息,触发硬件中断;
其中全帧中断信息可以是大于0的整数,用以标识该中断的类型为全帧中断。
202:处理器B从DPRAM读取上行数据;
203:处理器B向DPRAM写入下行消息;
204:同时,处理器A响应硬件中断,读取中断控制位,识别出是全帧中断;并向中断控制位写入0,清中断,以便能够响应下一次中断请求;
此外,根据***设计的要求,清中断的方式也可以是处理器A读取中断控制位后自动清除。
205:处理器A向DPRAM写入上行消息;
206:处理器A从DPRAM读取下行数据。
半帧通讯:当半帧时刻来临时处理器B和处理器A进行如下操作:
207:处理器B向中断控制位写入半帧中断信息,触发硬件中断;
其中半帧中断信息是不等于0和全帧中断信息的整数,用以标识该中断的类型为半帧中断。
208:处理器B从DPRAM读取上行消息;
209:处理器B向DPRAM写入下行数据;
210:同时,处理器A响应硬件中断,读取中断控制位,识别出是半帧中断;并向中断控制位写入0,清中断,以便能够响应下一次中断请求;
211:处理器A向DPRAM写入上行数据;
212:处理器A从DPRAM读取下行消息。
处理器B可通过周期性中断(时钟中断)获知全帧时刻和半帧时刻的来临以触发相应的中断。在全帧时刻和半帧时刻,处理器A和处理器B分别重复上述步骤,即可实现两个处理器之间的实时通讯。
下面将以包含ARM和DSP两个处理器的WCDMA物理层软件测试平台为例对本发明作进一步的描述。
该测试平台由后台模块子***和前台模块子***组成,分别运行于ARM和DSP两个处理器上,ARM上运行的操作***是VxWorks,DSP上运行的是Nucleus。由于两个操作***实现的机制不同,***函数也不一样,不能直接通过消息进行交互,因此在这个***中采用DPRAM作为中间媒介实现消息和数据的交互。
在该测试平台中采用了一个4K字节大小的DPRAM,包含ULMSG,DLMSG,ULDATA,DLDATA,INTReg五个区域,分别对应上行消息、下行消息、上行数据、下行数据和中断控制位,其中ULMSG、DLMSG、ULDATA、DLDATA分为长度和数据/信息两部分,数据/信息部分还可包含数据/信息类型和数据/信息内容,长度部分为1字节,用于标识该区域的数据/信息长度,具体的空间以及数据流向等信息见下表:
Figure C200710063942D00091
在这个***中,一帧包含16个时隙,为了实现两个处理器间的实时通讯,DSP需要分别在0时隙触发全帧中断和7时隙触发半帧中断来启动通讯。具体的通讯协议如以上步骤201至212所述。
其中,中断控制位的长度为1字节,DSP将其设置为1和2时分别触发全帧中断和半帧中断;ARM读取中断控制位后将其清零。
在该***中,为了使两个处理器上的***时间保持一致,通常在两个子***上分别设置有时钟计数器,当全帧时刻来临时,DSP上的时钟计数器加1,同时ARM在接收到全帧中断时也将其上的时钟计数器加1。
此外,DSP还可在半帧时刻,以消息的形式将时钟信息提交给ARM,ARM根据该信息进行时钟计数器的调整。
该***中DSP和ARM进行通讯的时序关系如图3所示。
由以上描述可知,处理器A和处理器B的八个读写操作需要在两个全帧中断之间完成,这需要处理器A和处理器B的主频(处理速度)满足此要求。在上述WCDMA物理层软件测试平台的例子中,根据3GPP协议,1帧为10ms,并且该帧被分为16个时隙,因此DSP和ARM最多在8个时隙内需要完成一次读和一次写操作。
在上述实施例的基础上,本发明还有其它变换方式,例如,触发处理器A的中断可以通过其它方式实现。
一般的处理器都提供有GPIO(通用输入输出),用于用户自定义用途。我们可以利用处理器B的GPIO#0作为触发处理器A的中断的用途,并连接一根从处理器B的GPIO#0到处理器A的中断线。这样我们通过写GPIO#0的控制寄存器相应的值就可以发出脉冲(电平),进而触发处理器A中断。处理器A检测到中断请求后通过读(或写0)的方式就可以清中断。通过这种方式同样能够实现处理器间的中断控制。

Claims (7)

1、一种双处理器间的通讯方法,应用于包含第一处理器、第二处理器和DPRAM的***中,其中,所述第一处理器、第二处理器分别与DPRAM的不同端口相连;第二处理器触发第一处理器的中断;其特征在于,在DPRAM中划分出4个不重叠的存储区域:第一存储区、第二存储区、第三存储区和第四存储区;第二处理器周期***替触发第一处理器的中断:第一中断和第二中断;
在触发第一中断之后、触发第二中断之前,第二处理器读取第一存储区中保存的通讯数据,并在第三存储区写入通讯数据;
作为对第一中断的响应,第一处理器在第二存储区写入通讯数据,并读取第四存储区中保存的通讯数据;
在触发第二中断之后、触发第一中断之前,第二处理器读取第二存储区中保存的通讯数据,并在第四存储区写入通讯数据;
作为对第二中断的响应,第一处理器在第一存储区写入通讯数据,并读取第三存储区中保存的通讯数据。
2、如权利要求1所述的双处理器间的通讯方法,其特征在于,在所述DPRAM中设置中断控制位,所述第二处理器以在该中断控制位写入标识中断类型的数值的方式触发所述第一处理器的中断;在接收到中断后,所述第一处理器根据该中断控制位中的数值判断接收到的中断的类型,并清中断;所述中断控制位长度大于1比特。
3、如权利要求1所述的双处理器间的通讯方法,其特征在于,所述第一处理器运行的子***包含第一时钟计数器,第二处理器运行的子***包含第二时钟计数器,第二处理器在触发第一中断之后、触发第二中断之前将第一时钟计数器加1;第一处理器作为对第一中断的响应将第二时钟计数器加1。
4、如权利要求1所述的双处理器间的通讯方法,其特征在于,所述通讯数据包含:数据长度,用于标识相应存储区中保存的数据的长度;数据类型,用于标识数据的类型;和数据内容。
5、如权利要求1所述的双处理器间的通讯方法,其特征在于,所述第二处理器在第四存储区写入表示***时间的通讯数据,所述第一处理器根据该通讯数据调整***时间。
6、如权利要求1所述的双处理器间的通讯方法,其特征在于,触发第一中断到触发第二中断之间的时间间隔和触发第二中断到触发第一中断的时间间隔大于第二处理器和第一处理器进行中断处理和对DPRAM进行读写操作所需的时间。
7、如权利要求1所述的双处理器间的通讯方法,其特征在于,所述第二中断的触发时刻与其相邻的两次第一中断的触发时刻之间的时间间隔相等。
CNB2007100639424A 2007-02-14 2007-02-14 一种双处理器间的通讯方法 Active CN100511207C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100639424A CN100511207C (zh) 2007-02-14 2007-02-14 一种双处理器间的通讯方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100639424A CN100511207C (zh) 2007-02-14 2007-02-14 一种双处理器间的通讯方法

Publications (2)

Publication Number Publication Date
CN101013414A CN101013414A (zh) 2007-08-08
CN100511207C true CN100511207C (zh) 2009-07-08

Family

ID=38700937

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100639424A Active CN100511207C (zh) 2007-02-14 2007-02-14 一种双处理器间的通讯方法

Country Status (1)

Country Link
CN (1) CN100511207C (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101860894A (zh) * 2010-03-04 2010-10-13 宇龙计算机通信科技(深圳)有限公司 一种移动终端处理器间通讯的***、方法及移动终端
CN101894082B (zh) * 2010-07-21 2014-09-10 中兴通讯股份有限公司 一种存储器装置及智能手机***
JP5935235B2 (ja) * 2011-02-18 2016-06-15 ソニー株式会社 通信装置、通信システムおよび通信方法
CN103853692B (zh) * 2014-03-12 2017-03-15 四川九洲空管科技有限责任公司 一种基于中断判断机制的多处理器数据通讯方法
CN106227681B (zh) * 2016-06-15 2019-08-23 北京和信瑞通电力技术股份有限公司 一种新型防冲突的双口ram访问方法
CN107577562B (zh) * 2017-09-19 2021-02-09 南京南瑞继保电气有限公司 一种数据交互的方法、设备及计算机可读存储介质
WO2020118721A1 (zh) * 2018-12-14 2020-06-18 华为技术有限公司 一种多处理器***及处理器间通信方法
CN110532217A (zh) * 2019-08-02 2019-12-03 广州粒子微电子有限公司 一种双处理器通信方法及其通讯装置

Also Published As

Publication number Publication date
CN101013414A (zh) 2007-08-08

Similar Documents

Publication Publication Date Title
CN100511207C (zh) 一种双处理器间的通讯方法
US11294844B2 (en) EtherCAT master-slave station integrated bridge controller and control method thereof
CN109857685B (zh) 一种mpu与fpga扩展多串口的实现方法
JP4742116B2 (ja) アウトオブオーダdramシーケンサ
EP2350847B1 (en) Method and system for improving serial port memory communication latency and reliability
CN108228492B (zh) 一种多通道ddr交织控制方法及装置
US7694035B2 (en) DMA shared byte counters in a parallel computer
WO2012143953A4 (en) Optimized multi-root input output virtualization aware switch
US20070136503A1 (en) Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
CN103593306A (zh) 一种协议处理器Cache控制单元的设计方法
US8880745B2 (en) Efficient scheduling of transactions from multiple masters
CA2468797A1 (en) Supercharge message exchanger
CN103714026B (zh) 一种支持原址数据交换的存储器访问方法及装置
JP4903801B2 (ja) FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法
CN102855214B (zh) 实现数据一致性的方法和一种多核***
CN101866328A (zh) 一种自动访问的串行总线读写控制方法
US4691280A (en) High performance multi-processor system
CN1619524A (zh) 具有共享本地存储器的通信装置和方法
CN101692346A (zh) 一种存储器数据采样装置及一种采样控制器
CN102236623A (zh) 信号控制设备和信号控制方法
CN100592272C (zh) 多处理器共享外设电路实现方法及其电路
CN101071404A (zh) 一种小容量fifo存储器的数据搬移触发装置和方法
CN105530153A (zh) 网络内的从设备通信方法、通信网络、主设备及从设备
CN102567248A (zh) 一种避免双端口存储器访问冲突的控制电路与方法
EP3599554A1 (en) Improving read performance on a sata storage device behind a host bus adapter

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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151104

Address after: Dameisha Yantian District of Shenzhen City, Guangdong province 518085 Building No. 1

Patentee after: SHENZHEN ZTE MICROELECTRONICS TECHNOLOGY CO., LTD.

Address before: 518057 Nanshan District high tech Industrial Park, Guangdong, South Road, science and technology, ZTE building, legal department

Patentee before: ZTE Corporation

EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20070808

Assignee: Xi'an Chris Semiconductor Technology Co. Ltd.

Assignor: SHENZHEN ZTE MICROELECTRONICS TECHNOLOGY CO., LTD.

Contract record no.: 2019440020036

Denomination of invention: Communication method between two processors

Granted publication date: 20090708

License type: Common License

Record date: 20190619

EE01 Entry into force of recordation of patent licensing contract