CN101788973A - 双处理器之间进行通信的方法 - Google Patents
双处理器之间进行通信的方法 Download PDFInfo
- Publication number
- CN101788973A CN101788973A CN201010002366A CN201010002366A CN101788973A CN 101788973 A CN101788973 A CN 101788973A CN 201010002366 A CN201010002366 A CN 201010002366A CN 201010002366 A CN201010002366 A CN 201010002366A CN 101788973 A CN101788973 A CN 101788973A
- Authority
- CN
- China
- Prior art keywords
- passage area
- data
- mailbox
- indication
- channel
- 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
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
本发明公开了双处理器之间进行通信的方法,包括:将双端口随机存取存储器DPRAM划分为至少两个通道区域,所述通道区域包括用于传输上行数据的上行通道区域和用于传输下行数据的下行通道区域,所有的上行数据通道区域对应一个邮箱mailbox,所有的下行数据通道区域对应另一个mailbox,为每个通道区域设置一个通道号,每个通道区域对应中断指示中的一个位;双处理器内分别存储了通道号与通道区域的地址之间的第一对应关系,还分别存储了通道号与mailbox中相应位之间的第二对应关系;本发明通过mailbox进行通信过程中通道号的通知,从而,实现双处理器之间的通信。本发明方案提高了双处理器之间进行通信的灵活性和通用性。
Description
技术领域
本发明涉及通信传输技术,尤其涉及双处理器之间进行通信的方法。
背景技术
为满足人们在进行数据传输时对实时性和数据处理能力的要求,大型复杂的系统通常使用双处理器来完成各自的任务,以达到最佳的系统性能。相应地,双处理器之间的数据通信成为业内关注的焦点。
作为一个系统,双处理器之间需要实时交换才能保证协同并行地工作。双处理器之间通过双端口随机存取存储器(DPRAM,Dual Port RAM)实现数据传输,如图1所示,为现有技术中通过DPRAM进行双处理器之间数据传输的实例,处理器A与DPRAM之间通过端口A进行数据传输,处理器B与DPRAM之间通过端口B进行数据传输。
现有双处理器之间的进行数据传输的方案将DPRAM划分为四个存储区:第一存储区、第二存储区、第三存储区和第四存储区。DPRAM中除了用于进行数据传输的存储区外,还包括用于进行触发中断的中断控制位。进行数据传输的过程如下:利用两个中断,把读写允许的时间段分为两段,在第一时间段里,处理器A写入第一存储区和读出第三存储区,而处理器B读出第二存储区和写入第四存储区,如图1a所示;而在第二时间段里,处理器A写入第二存储区和读出第四存储区,而处理器B读出第一存储区和写入第三存储区,如图1b所示。这两个中断的触发时间由处理器B控制,具体地,需要触发第一个中断时,处理器B向DPRAM中的中断控制位写入中断信息,DPRAM向处理器B触发中断,然后,执行第一段时间里的操作,即,处理器A写入第一存储区和读出第三存储区,而处理器B读出第二存储区和写入第四存储区;需要触发第二个中断时,处理器B向DPRAM中的中断控制位写入中断信息,DPRAM向处理器B触发中断,然后,执行第二段时间里的操作,即,处理器A写入第二存储区和读出第四存储区,而处理器B读出第一存储区和写入第三存储区。
现有技术将DPRAM划分为四个存储区,只能在四个存储区中进行数据传输,并且,通过两个中断,约定了两个时间段内处理器A和处理器B进行读取的固定操作方式,这导致了双处理器之间进行数据传输的灵活性和通用性差。
发明内容
本发明提供一种双处理器之间进行通信的方法,该方法能够提高双处理器之间进行通信的灵活性和通用性。
一种双处理器之间进行通信的方法,将DPRAM划分为至少两个通道区域,所述通道区域包括用于传输上行数据的上行通道区域和用于传输下行数据的下行通道区域,所有的上行数据通道区域对应一个邮箱(mailbox),所有的下行数据通道区域对应另一个mailbox,为每个通道区域设置一个通道号,每个通道区域对应中断指示中的一个位;双处理器内分别存储了通道号与通道区域的地址之间的第一对应关系,还分别存储了通道号与mailbox中相应位之间的第二对应关系;该方法包括:
所述双处理器中的一个处理器在DPRAM中指定的通道区域内写入数据,向与该指定的通道区域对应的mailbox发送中断指示;根据所述第二对应关系,将所述中断指示中与该指定的通道区域的通道号对应的位设置为读取指示;
所述与该指定的通道区域对应的mailbox接收中断指示后,向另一个处理器触发中断;
所述另一个处理器读取mailbox中的中断指示,确定中断指示中设置为读取指示的位,根据所述第二对应关系,确定与设置为读取指示的位对应的通道号;在所述第一对应关系中查询出与确定的通道号对应的通道区域的地址,从相应的通道区域读取数据。
从上述方案可以看出,本发明将DPRAM划分为至少两个通道区域,每个通道区域用中断指示中的一个位指示其读取情况,实现了同时通过至少两个通道区域进行数据传输;而不是像现有技术那样将DPRAM划分为四个存储区,只能在四个存储区中采用固定的方式进行数据传输;从而,提高了双处理器之间进行数据传输的灵活性和通用性。
附图说明
图1为现有技术中双处理器之间进行通信的流程实例,包括图1a和图1b.;
图2为本发明双处理器之间进行通信的方法流程图;
图3为本发明双处理器之间进行通信的流程实例一;
图4为本发明双处理器之间进行通信的流程实例二。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
DPRAM中包括用于传输数据的区域,通常所称的对DPRAM进行划分,便指的是对用于传输数据的区域进行划分;DPRAM中还包括用于在两个处理器之间触发中断的两个mailbox,其中一个mailbox用于进行一个处理器向另一个处理器的中断触发,另一个mailbox用于进行所述另一个处理器向所述一个处理器的中断触发;具体地,当一个处理器需要通过DPRAM向另一个处理器触发中断时,该处理器向相应的mailbox写入一个值,由于从mailbox的一端口写入任一值便可引起另一端口中断引脚被拉低,另一端口intr引脚被拉低,也就实现触发了另一处理器;这里,将向mailbox写入的值称为中断指示。
本发明结合mailbox的特性,不仅采用mailbox进行中断触发,还通过mailbox进行通道号的通知,从而实现双处理器之间的通信。具体地,本发明将DPRAM划分为至少两个通道区域,所述通道区域包括用于传输上行数据的上行通道区域和用于传输下行数据的下行通道区域,所有的上行数据通道区域对应一个mailbox,所有的下行数据通道区域对应另一个mailbox,为每个通道区域设置一个唯一的通道号,每个通道区域对应中断指示中的一个位;预先在两个处理器内分别存储了通道号与通道区域的地址之间的第一对应关系,还分别存储了通道号与mailbox中相应位之间的第二对应关系。
在两个处理器之间进行数据传输的方法流程图为图2所示,其包括以下步骤:
步骤201,双处理器中的一个处理器在DPRAM中指定的通道区域内写入数据,向与该指定的通道区域对应的mailbox发送中断指示;根据所述第二对应关系,将所述中断指示中与该指定的通道区域的通道号对应的位设置为读取指示。
所述指定的通道区域为当前需要进行数据传输的通道区域。
读取指示的设置例如为:将相应的位设置为“1”,表示读取指示,而将相应的位设置为“0”则不表示读取指示;相反地,也可以将相应的位设置为“0”,表示读取指示,而将相应的位设置为“1”则不表示读取指示。
步骤202,与该指定的通道区域对应的mailbox接收中断指示后,向另一个处理器触发中断。
步骤201与202可以无序执行。
步骤203,所述另一个处理器读取mailbox中的中断指示,确定中断指示中设置为读取指示的位,根据所述第二对应关系,确定与设置为读取指示的位对应的通道号;在所述第一对应关系中查询出与确定的通道号对应的通道区域的地址,从相应的通道区域读取数据。
DPRAM的两个mailbox一般都为16位,mailbox的每个位对应一个通道区域,每个通道包括一个上行通道区域和一个下行通道区域,相应地,通道数目最大可以为16,通道区域的数目最大可以为32。根据将DPRAM划分的通道数目选择mailbox中位的使用数目,例如,划分为2个通道,则选择中断指示中的2个位表示读取指示;再如,划分为5个通道,则选择中断指示中的5个位表示读取指示,选择出的每个位对应一个通道;等等;当划分为16个通道,即32个通道区域时,需要用中断指示中的所有位,即16位表示读取指示,这种情况下,可以同时使用32个通道区域进行数据传输。需要说明的是,中断指示并不仅限于16位的情况。
在通道区域中进行数据写入和数据读取时,可以采用环形队列方式实现。若采用该方式,每个通道区域中除了包括用于进行数据写入和读取的有效数据单元外,还包括用于存储写入数据时需要的头指针的头指针单元,以及存储读取数据时需要的尾指针的尾指针单元。
写入数据时,在该通道区域中的头指针存储单元内获取头指针,根据获取的头指针向该通道区域中的有效数据单元中写入数据,具体地,沿着头指针指向尾指针的方向写入数据;并用完成数据写入后的头指针更新头指针存储单元中存储的头指针。
读取数据时,在该通道区域中的尾指针存储单元内获取尾指针,根据获取的尾指针从该通道区域中的有效数据单元中读取数据,具体地,沿着尾指针指向头指针的方向读取数据;并用完成数据读取后的尾指针更新指针存储单元中存储的尾指针。
在通道区域中进行数据写入和数据读取,并不仅限于环形队列方式,还可以采用现有技术中已经使用的多种实现方式。
将双处理器用第一处理器和第二处理器表示,将第一处理器向第二处理器传输数据的方向称为下行,将第二处理器向第一处理器传输数据的方向称为上行。为了便于说明,下面以划分的通道为2,即划分的通道区域为4的情况对本发明方案进行举例说明,划分后的通道区域包括通道0上行区域、通道0下行区域、通道1上行区域和通道1下行区域,这里假设中断指示为16位,选择16位中的最低位和次低位表示读取指示。如图3所示,用mailbox1对应上行方向,中断指示中的最低位对应通道0,次低位对应通道1;用mailbox2对应下行方向,中断指示中的最低位对应通道0,次低位对应通道1;在本实施例中第一处理器具体为图中的CPU1,第二处理器具体为图中的CPU2;将中断指示中的位设置为“1”,表示读取指示,设置为“0”,不表示读取指示。
通过通道0上行区域进行上行数据传输的过程为:CPU2往通道0上行区域写入数据,往mailbox1写入中断指示0000000000000001B,其中B表示二进制,即当前在上行方向上只通过通道0进行数据传输,向mailbox1进行写入操作使得对应的中断引脚拉低;mailbox1检测到引脚拉低,向CPU2触发中断;CPU2读取mailbox1中的中断指示0000000000000001B,由于最低位为1,则获知需要从通道0上行区域中读取数据,然后CPU2清零mailbox1,从通道0上行区域中读取数据。上述过程在图中操作顺序的:001->002->003->004。
通过通道0下行区域进行下行数据传输的过程为:CPU1往通道0下行区域写入数据,往mailbox2写入中断指示0000000000000001B,即当前在下行方向上只通过通道0进行数据传输,向mailbox2进行写入操作使得对应的中断引脚拉低;mailbox2检测到引脚拉低,向CPU2触发中断;CPU2读取mailbox2中的中断指示0000000000000001B,由于最低位为1,便获知需要从通道0下行区域中读取数据;然后CPU2清零mailbox2,从通道0下行区域中读取数据。上述过程在图中操作顺序的:011->012->013->014。
同样的道理,通过通道1进行数据传输的流程可通过图4进行说明。
通过通道1上行区域进行上行数据传输的过程为:CPU2往通道1上行区域写入数据,往mailbox1写入0000000000000010B,即当前在上行方向上只通过通道1进行数据传输,向mailbox1进行写入操作使得对应的中断引脚拉低;mailbox1检测到引脚拉低,向CPU1触发中断;CPU1读取mailbox1中的中断指示0000000000000010B,由于次低位为1,则获知需要从通道1上行区域中读取数据,然后CPU1清零mailbox1,从通道1上行区域中读取数据。上述过程在图中操作顺序的:101->102->103->104。
通过通道1下行区域进行下行数据传输的过程为:CPU1往通道1下行区域写入数据,往mailbox2写入0000000000000010B,即当前在下行方向上只通过通道1进行数据传输,向mailbox2进行写入操作使得对应的中断引脚拉低;mailbox2检测到引脚拉低,向CPU2触发中断;CPU2读取mailbox2中的中断指示0000000000000010B,由于次低位为1,便获知需要从通道1下行区域中读取数据;然后CPU2清零mailbox2,从通道1下行区域中读取数据。上述过程在图中操作顺序的:111->112->113->114。
类似地,在上行方向上,还可以同时通过通道0和通道1进行数据传输,这种情况下,CPU2往通道0上行区域和通道1上行区域分别写入数据,往mailbox1写入0000000000000011B,向mailbox1进行写入操作使得对应的中断引脚拉低;CPU1检测到引脚拉低,向CPU2触发中断;CPU2读取mailbox1中的中断指示0000000000000011B,由于最低位和次低位都为1,则获知需要从通道0上行区域和通道1上行区域中读取数据,然后CPU2清零mailbox1,从通道0上行区域和通道1上行区域中读取数据。
本发明将DPRAM划分为至少两个通道区域,每个通道区域用中断指示中的一个位指示其读取情况,实现了同时通过至少两个通道区域进行数据传输;而不是像现有技术那样将DPRAM划分为四个存储区,只能在四个存储区中采用固定的方式进行数据传输;从而,提高了双处理器之间进行数据传输的灵活性和通用性。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种双处理器之间进行通信的方法,其特征在于,将双端口随机存取存储器DPRAM划分为至少两个通道区域,所述通道区域包括用于传输上行数据的上行通道区域和用于传输下行数据的下行通道区域,所有的上行数据通道区域对应一个邮箱mailbox,所有的下行数据通道区域对应另一个mailbox,为每个通道区域设置一个通道号,每个通道区域对应中断指示中的一个位;双处理器内分别存储了通道号与通道区域的地址之间的第一对应关系,还分别存储了通道号与mailbox中相应位之间的第二对应关系;该方法包括:
所述双处理器中的一个处理器在DPRAM中指定的通道区域内写入数据,向与该指定的通道区域对应的mailbox发送中断指示;根据所述第二对应关系,将所述中断指示中与该指定的通道区域的通道号对应的位设置为读取指示;
所述与该指定的通道区域对应的mailbox接收中断指示后,向另一个处理器触发中断;
所述另一个处理器读取mailbox中的中断指示,确定中断指示中设置为读取指示的位,根据所述第二对应关系,确定与设置为读取指示的位对应的通道号;在所述第一对应关系中查询出与确定的通道号对应的通道区域的地址,从相应的通道区域读取数据。
2.如权利要求1所述的方法,其特征在于,所述mailbox为16位,所述通道区域的数目最大为32。
3.如权利要求1或2所述的方法,其特征在于,所述在DPRAM中指定的通道区域写入数据包括:
在所述指定的通道区域中的头指针存储单元内获取头指针,根据获取的头指针向所述指定的通道区域中的有效数据单元中写入数据,并用完成数据写入后的头指针更新头指针存储单元中存储的头指针;
所述从相应的通道区域读取数据包括:
在所述指定的通道区域中的尾指针存储单元内获取尾指针,根据获取的尾指针从所述指定的通道区域中的有效数据单元中读取数据,并用完成数据读取后的尾指针更新指针存储单元中存储的尾指针。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010100023664A CN101788973B (zh) | 2010-01-12 | 2010-01-12 | 双处理器之间进行通信的方法 |
HK11100763.2A HK1146670A1 (en) | 2010-01-12 | 2011-01-25 | Method for communication between dual processors |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010100023664A CN101788973B (zh) | 2010-01-12 | 2010-01-12 | 双处理器之间进行通信的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101788973A true CN101788973A (zh) | 2010-07-28 |
CN101788973B CN101788973B (zh) | 2012-03-21 |
Family
ID=42532192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010100023664A Expired - Fee Related CN101788973B (zh) | 2010-01-12 | 2010-01-12 | 双处理器之间进行通信的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101788973B (zh) |
HK (1) | HK1146670A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102654858A (zh) * | 2011-03-04 | 2012-09-05 | 国基电子(上海)有限公司 | 双处理器系统及双处理器系统的通信方法 |
CN103116566A (zh) * | 2013-01-17 | 2013-05-22 | 东南大学 | 一种利用邮件收发箱实现双核之间通信的装置 |
CN103324599A (zh) * | 2013-06-04 | 2013-09-25 | 北京创毅讯联科技股份有限公司 | 处理器间通信方法与系统级芯片 |
CN106612266A (zh) * | 2015-10-27 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 网络转发方法及设备 |
CN108959149A (zh) * | 2018-06-28 | 2018-12-07 | 南京南瑞继保电气有限公司 | 一种基于共享内存的多核处理器交互总线设计方法 |
CN109840241A (zh) * | 2017-11-27 | 2019-06-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种异构双核处理器核间通讯电路 |
CN110532217A (zh) * | 2019-08-02 | 2019-12-03 | 广州粒子微电子有限公司 | 一种双处理器通信方法及其通讯装置 |
WO2022037176A1 (zh) * | 2020-08-18 | 2022-02-24 | Oppo广东移动通信有限公司 | 核间通信方法、装置、电子组件以及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100414531C (zh) * | 2005-04-22 | 2008-08-27 | 四川长虹电器股份有限公司 | 双处理器通信的方法 |
CN101135999A (zh) * | 2006-08-29 | 2008-03-05 | 郑州威科姆技术开发有限公司 | 双处理器串行控制器端口与串行外设接口通信实现方法 |
CN101212551B (zh) * | 2007-12-21 | 2012-05-23 | 深圳市同洲电子股份有限公司 | 一种双处理器通信系统、通信方法及数字电视接收终端 |
-
2010
- 2010-01-12 CN CN2010100023664A patent/CN101788973B/zh not_active Expired - Fee Related
-
2011
- 2011-01-25 HK HK11100763.2A patent/HK1146670A1/xx not_active IP Right Cessation
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102654858A (zh) * | 2011-03-04 | 2012-09-05 | 国基电子(上海)有限公司 | 双处理器系统及双处理器系统的通信方法 |
CN102654858B (zh) * | 2011-03-04 | 2015-02-04 | 国基电子(上海)有限公司 | 双处理器系统及双处理器系统的通信方法 |
CN103116566A (zh) * | 2013-01-17 | 2013-05-22 | 东南大学 | 一种利用邮件收发箱实现双核之间通信的装置 |
CN103324599A (zh) * | 2013-06-04 | 2013-09-25 | 北京创毅讯联科技股份有限公司 | 处理器间通信方法与系统级芯片 |
CN106612266A (zh) * | 2015-10-27 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 网络转发方法及设备 |
CN106612266B (zh) * | 2015-10-27 | 2020-05-08 | 阿里巴巴集团控股有限公司 | 网络转发方法及设备 |
CN109840241A (zh) * | 2017-11-27 | 2019-06-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种异构双核处理器核间通讯电路 |
CN109840241B (zh) * | 2017-11-27 | 2023-05-26 | 西安翔腾微电子科技有限公司 | 一种异构双核处理器核间通讯电路 |
CN108959149A (zh) * | 2018-06-28 | 2018-12-07 | 南京南瑞继保电气有限公司 | 一种基于共享内存的多核处理器交互总线设计方法 |
CN110532217A (zh) * | 2019-08-02 | 2019-12-03 | 广州粒子微电子有限公司 | 一种双处理器通信方法及其通讯装置 |
WO2022037176A1 (zh) * | 2020-08-18 | 2022-02-24 | Oppo广东移动通信有限公司 | 核间通信方法、装置、电子组件以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
HK1146670A1 (en) | 2011-06-30 |
CN101788973B (zh) | 2012-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101788973B (zh) | 双处理器之间进行通信的方法 | |
CN107992436B (zh) | 一种NVMe数据读写方法及NVMe设备 | |
US20170083474A1 (en) | Distributed memory controller | |
US9448955B2 (en) | Method for controlling interruption in data transmission process | |
JP6847694B2 (ja) | ソリッドステートドライブ、ガーベッジコレクションを遂行する方法、及びストレージ媒体を含む物品 | |
CN104090847B (zh) | 一种固态存储设备的地址分配方法 | |
CN100373362C (zh) | 直接存储访问控制器 | |
US9032156B2 (en) | Memory access monitor | |
CN101387988B (zh) | 具有闪速存储器的计算机和运行闪速存储器的方法 | |
CN100349150C (zh) | 通过直接存储器访问控制器传输数据的系统及方法 | |
CN110309088A (zh) | Zynq fpga芯片及其数据处理方法、存储介质 | |
CN101149717A (zh) | 计算机系统及直接内存访问传输方法 | |
CN101178701B (zh) | 一种多处理器间通信的方法及系统 | |
CN104679691A (zh) | 一种用于gpdsp的采用主机计数的多核dma分段数据传输方法 | |
CN101359321A (zh) | 一种实现处理器相互通讯的方法及装置 | |
CN110765034A (zh) | 一种数据预取方法及终端设备 | |
CN107870866B (zh) | Io命令调度方法与nvm接口控制器 | |
CN101303685B (zh) | 可提升通用序列总线储存设备的读写数据速率的方法 | |
CN101667105B (zh) | 一种对动态内存进行动态读写访问分组的调度装置和方法 | |
CN1331070C (zh) | 数据通信的方法及设备 | |
CN103150216A (zh) | 一种SoC集成的多端口DDR2/3调度器及调度方法 | |
CN104679689A (zh) | 一种用于gpdsp的采用从机计数的多核dma分段数据传输方法 | |
KR20180049340A (ko) | 스토리지 장치 및 그것의 링크 상태 제어 방법 | |
CN105302493A (zh) | 一种混合存储阵列中ssd缓存的换入换出控制方法及系统 | |
CN102279825A (zh) | 一种固态硬盘控制器的智能dma控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1146670 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1146670 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120321 Termination date: 20150112 |
|
EXPY | Termination of patent right or utility model |