CN110134638B - 一种双处理器数据交换方法 - Google Patents
一种双处理器数据交换方法 Download PDFInfo
- Publication number
- CN110134638B CN110134638B CN201910386889.4A CN201910386889A CN110134638B CN 110134638 B CN110134638 B CN 110134638B CN 201910386889 A CN201910386889 A CN 201910386889A CN 110134638 B CN110134638 B CN 110134638B
- Authority
- CN
- China
- Prior art keywords
- processor
- data
- semaphore
- dual
- state
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提供一种双处理器数据交换方法,所述方法应用于双处理器,所述双处理器包括发送处理器和接收处理器,所述方法包括:所述双处理器配置双口RAM数据空间、信号量地址;所述双处理器对所述信号量地址进行操作,获得信号量状态;所述双处理器根据所述信号量状态,访问所述双口RAM数据空间。
Description
技术领域
本发明属于数据通信技术,具体涉及一种双处理器数据交换方法。
背景技术
在航空、工业控制领域中,一般需要主辅两个处理器共同完成I/O的输入输出控制。主处理器用于控制器整机控制策略的实现,辅处理器用于I/O输入数据的采集和输出控制。辅处理器将采集的输入数据经特定方法处理后传输给主处理器,参与控制决策;主处理器将输出控制信息传输给辅处理器,辅处理器根据输出控制信息控制作动器的动作。这种应用本身要求控制具有较高的可靠性,数据具有较强的可信性,并且具有一定的数据吞吐量。因此,为了控制器可靠有效地采集输入状态和控制输出状态,用于双处理器的数据交换方法应运而生。
目前主流双处理器数据交换实现方法一般都是基于处理器的外设通信控制器,比如CAN总线、UART总线、SPI总线等和传统的双口RAM。而这些串行总线数据吞吐量较低;传统的通过双口RAM地址的busy信号来判断访问地址处数据的冲突,存在冲突地址数据恢复等异常问题,软件处理复杂。
发明内容
本发明的目的是:提供一种能够简捷、可靠、有效的双处理器数据交换方法。
第一方面,本申请提供一种双处理器数据交换方法,所述方法应用于双处理器,所述双处理器包括发送处理器和接收处理器,所述方法包括:
所述双处理器配置双口RAM数据空间、信号量地址;
所述双处理器对所述信号量地址进行操作,获得信号量状态;
所述双处理器根据所述信号量状态,访问所述双口RAM数据空间。
可选的,所述配置双口RAM数据空间、信号量地址,具体包括:
将双口RAM数据空间,按相同端口地址分成至少一个非零块数据区,所述非零块数据区具有一个信号量地址空间及一个信号量。
可选的,对所述信号量地址进行操作,获得信号量状态,具体包括:
当发送处理器向所述信号量地址写入数据时,信号量状态由无效变成有效;
当接收处理器向所述信号量地址写入数据时,信号量状态不变;
当接收处理器读取所述信号量地址存储的数据时,信号量状态由有效变成无效;
当发送处理器读取所述信号量地址存储的数据时,信号量状态不变。
可选的,根据所述信号量状态访问所述双口RAM数据空间,具体包括:
发送处理器根据信号量状态,判断发送的数据是否被接收处理器读取,并发送新的数据;
接收处理器根据信号量状态,判断是否收到发送处理器发送的新数据。
可选的,在所述访问所述双口RAM数据空间之后,方法还包括:
接收处理器根据信号量地址存储的数据,判断已接收的数据是否有效;
根据所述信号量状态,判断读操作、写操作是否故障。
可选的,当信号量状态为有效时,接收处理器从对应的双口RAM数据空间读取所述发送处理器发送的数据;
当信号量状态有效时,发送处理器发送新的数据,并记录接收处理器未读取发送处理器上次发送的数据的状态;当信号量无效时,发送处理器发送新的数据。
可选的,所述接收处理器根据信号量地址存储的数据,判断已接收的数据是否有效,具体包括:
当信号量状态有效时,接收处理器从信号量地址读取发送处理器发送的双方预先定义的数据,当读取的数据和双方预先定义的数据一致时,接收处理器从数据区读取的数据有效,否则无效。
可选的,所述根据所述信号量状态,判断读操作、写操作是否故障,具体包括:
接收处理器从信号量地址读取发送处理器发送的双方预先定义的数据后,若信号量状态为有效时,则接收处理器读取操作故障;若信号量状态为无效时,则接收处理器读取操作正常;
发送处理器向信号量地址写入双方预先定义的数据后,若信号量状态为有效时,发送处理器写操作正常;若信号量状态为无效时,发送处理器写操作故障。
本发明的技术效果是:相对于传统的外设串行通信接口有效数据吞吐量低,传统的通过双口RAM地址的busy信号来判断访问地址处数据的冲突,存在冲突地址数据恢复等异常问题,软件处理复杂。本发明处理器访问本方和对方双口RAM端口信号量状态,根据信号量状态访问对应的双口RAM数据区,再访问本方双口RAM端口信号量地址处的数据,判断数据区是否有效。双方处理器均可以访问同一数据区的端口信号量状态,实现双处理器数据的可靠交换。
附图说明
图1是本申请实施例提供的双处理器数据交换方法的流程图。
具体实施方式
实施例一
如图1所示,提供一种能够简捷、可靠、有效的双处理器数据交换方法。
本发明的技术方案是:处理器访问双口RAM信号量状态,根据信号量状态访问对应的双口RAM数据空间;接收处理器再访问双口RAM信号量地址存储的数据,根据该数据判断已读取的数据区是否有效;处理器再访问双口RAM信号量状态,根据信号量状态判断读操作、写操作是否故障;
所述的双处理器数据交换方法,其具体过程如下:
步骤1:配置双口RAM数据空间、信号量地址
将双口RAM数据空间,按相同端口地址分成至少一个非零块数据区,所述非零块数据区具有一个信号量地址及一个信号量状态。
步骤2:信号量状态的产生
当发送处理器向所述信号量地址写入数据时,信号量状态由无效变成有效;
当接收处理器向所述信号量地址写入数据时,信号量状态不变;
当接收处理器读取所述信号量地址存储的数据时,信号量状态由有效变成无效;
当发送处理器读取所述信号量地址存储的数据时,信号量状态不变。
步骤3:处理器根据的信号量状态访问对应的数据区
发送处理器根据信号量状态,判断发送的数据是否被接收处理器读取,并发送新的数据;接收处理器根据信号量状态,判断是否收到发送处理器发送的新数据。
将双口RAM数据空间按地址分成至少一个数据区;每个数据区具有一个独立的信号量状态、信号量地址;处理器均可以访问每个数据区的信号量、信号量地址;每个数据区对一个处理器只读,对另一个处理器只写。
发送处理器在写入信号量地址数据时,该数据可为握手口令,或者数据包号,或者两者的结合;接收处理器根据从信号量地址读取的数据判断本次数据是否有效。
信号量状态,无效时为低电平,有效时为高电平,或者相反电平状态。
接收处理器访问信号量状态,当信号量有效时,从对应数据区读取发送处理器发送的数据;当信号量无效时,发送处理器没有发送新的有效数据,并记录该状态信息供系统使用。
发送处理器访问信号量状态,当信号量有效时,接收处理器未读取发送处理器发送的数据,并记录该状态信息供系统使用;当信号量无效时,接收处理器已取走发送的数据,发送处理器发送新的数据。
本发明的技术效果是:相对于传统的外设串行通信接口有效数据吞吐量低,传统的通过双口RAM地址的busy信号来判断访问地址处数据的冲突,存在冲突地址数据恢复等异常问题,软件处理复杂。本发明处理器访问双口RAM信号量状态,根据信号量状态访问对应的双口RAM数据空间,再访问信号量地址处的数据,判断数据区是否有效。处理器均可以访问同一数据区的信号量状态,实现双处理器数据的可靠交换。
实施例二
下面结合附图和实施例对本发明做进一步说明:
本发明处理器信号量状态,根据信号量状态访问对应的双口RAM数据空间,再访问对应的信号量地址处的数据,判断数据区是否有效。处理器均可以访问同一数据区的信号量状态,实现双处理器数据的可靠交换。
请参阅图1,所述的双处理器数据交换方法具体过程如下:
步骤1:配置双口RAM数据空间、信号量地址
在处理器交换数据前,根据系统输入、输出功能确定处理器需要的数据区数量和数据区大小,将双口RAM存储空间按地址分成相应正整数块不同的数据区。每个数据区具有一个独立的信号量、信号量地址。处理器均可以访问每个数据区的信号量、信号量地址。每个数据区对一个处理器只读,对另一个处理器只写。
步骤2:处理器交换数据前的双口RAM信号量状态的检测
发送处理器向接收处理器发送新数据,首先发送处理器读取信号量状态。若信号量状态无效,则表明相应数据区中没有需要接收处理器读取的数据信息;若信号量状态有效,则表明数据区中含有接收处理器待读取的数据信息,并记录该状态信息供系统使用。
接收处理器读取发送处理器发送的数据信息,首先接收处理器读取信号量状态。若该信号量状态有效,则表明数据区中含有发送处理器新发送的数据信息;若该信号量状态无效,则表明数据区中没有发送处理器新发送的数据信息。
步骤3:处理器访问双口RAM数据空间
发送处理器读取信号量状态,若信号量状态无效,将要交换的新数据信息写入双口RAM数据区;若信号量状态有效,则表明相应数据区中含有接收处理器待读取的数据信息,重新写入需要接收处理器读取的新数据信息,并记录接收处理器未读取已发送的数据信息状态,以供系统使用。
接收处理器读取信号量状态,若信号量状态有效,接收处理器从相应的双口RAM数据空间中读出发送处理器发送的数据;若信号量状态无效,无新数据需要接收处理器读取,并记录发送处理器未发送新数据信息的状态,以供系统使用。
步骤4:处理器访问信号量地址
发送处理器把发送给接收处理器的数据写入双口RAM数据空间后,发送处理器向信号量地址处写入命令或者数据包号等数据,使信号量状态有效,以通知接收处理器有待处理的数据需要读取。
接收处理器把发送处理器发送的数据从双口RAM数据空间读取后,接收处理器读取信号量地址,并判断该信号量地址存储的数据是否为预先定义的命令或者数据包号。若从信号量地址读出得数据不符合预定义数据,则判断本次读取的双口RAM数据空间数据无效,并记录该故障状态,以供系统使用。
步骤5:处理器再访问信号量状态
发送处理器写入信号量地址后,再读取信号量状态,若该信号量状态无效,表明发送处理器双口RAM写故障,记录该故障状态,以供系统使用;若该信号量状态有效,表明发送处理器双口RAM写数据完成。
接收处理器读取信号量地址后,再读取信号量状态,若该信号量状态无效,表明接收处理器双口RAM读数据完成;若该状态有效,则表明接收处理器双口RAM读数据故障,并记录该故障状态,以供系统使用。
该方法描述的双处理器数据交换,可以利用ASIC双口RAM或者逻辑实现,使用总线和双口RAM信号量增大了数据吞吐量,简化了双处理器数据传输过程,并提高了处理器传输数据的可靠性。另外,该方法可以根据不同处理器型号方便配置地址总线、数据总线宽度,经过简单修改即可以适应不同处理器类型间的数据传输需求。
综上所述,本发明双处理器数据交换方法在处理器进行读写数据时,利用双口RAM及其指示信号,将双口RAM的读写状态信号传输给双方处理器,实现双处理器数据的简单、可靠交换。针对传统的通过双口RAM地址的busy信号来判断访问地址处数据的冲突,存在冲突地址数据恢复、冲突等待等异常问题,本发明采取双口RAM的读写状态指示信号方法,来判断是否产生有效数据访问,可以简捷、可靠的实现双处理器的数据交换。
Claims (4)
1.一种双处理器数据交换方法,其特征在于,所述方法应用于双处理器,所述双处理器包括发送处理器和接收处理器,所述方法包括:
所述双处理器配置双口RAM数据空间、信号量地址;
所述双处理器对所述信号量地址空间进行操作,获得信号量状态,具体包括:当发送处理器向所述信号量地址写入数据时,信号量状态由无效变成有效;当接收处理器向所述信号量地址写入数据时,信号量状态不变;当接收处理器读取所述信号量地址存储的数据时,信号量状态由有效变成无效;当发送处理器读取所述信号量地址存储的数据时,信号量状态不变;
所述双处理器根据所述信号量状态,访问所述双口RAM数据空间;
接收处理器根据信号量地址存储的数据,判断已接收的数据是否有效,具体包括:当信号量状态有效时,接收处理器从信号量地址读取发送处理器发送的双方预先定义的数据,当读取的数据和双方预先定义的数据一致时,接收处理器从数据区读取的数据有效,否则无效;
根据所述信号量状态,判断读操作、写操作是否故障,具体包括:接收处理器从信号量地址读取发送处理器发送的双方预先定义的数据后,若信号量状态为有效时,则接收处理器读取操作故障;若信号量状态为无效时,则接收处理器读取操作正常;发送处理器向信号量地址写入双方预先定义的数据后,若信号量状态为有效时,发送处理器写操作正常;若信号量状态为无效时,发送处理器写操作故障。
2.根据权利要求1所述的方法,其特征在于,所述配置双口RAM数据空间、信号量地址空间,具体包括:
将双口RAM数据空间,按相同端口地址分成至少一个非零块数据区,所述非零块数据区具有一个信号量地址及一个信号量。
3.根据权利要求1所述的方法,其特征在于,根据所述信号量状态访问所述双口RAM数据空间,具体包括:
发送处理器根据信号量状态,判断发送的数据是否被接收处理器读取,并发送新的数据;
接收处理器根据信号量状态,判断是否收到发送处理器发送的新数据。
4.根据权利要求3所述的双处理器数据交换方法,其特征在于,
当信号量状态为有效时,接收处理器从对应的双口RAM数据空间读取所述发送处理器发送的数据;
当信号量状态有效时,发送处理器发送新的数据,并记录接收处理器未读取发送处理器上次发送的数据的状态;当信号量无效时,发送处理器发送新的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910386889.4A CN110134638B (zh) | 2019-05-09 | 2019-05-09 | 一种双处理器数据交换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910386889.4A CN110134638B (zh) | 2019-05-09 | 2019-05-09 | 一种双处理器数据交换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110134638A CN110134638A (zh) | 2019-08-16 |
CN110134638B true CN110134638B (zh) | 2023-05-23 |
Family
ID=67577045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910386889.4A Active CN110134638B (zh) | 2019-05-09 | 2019-05-09 | 一种双处理器数据交换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110134638B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115168079B (zh) * | 2022-09-08 | 2022-12-02 | 深圳市恒运昌真空技术有限公司 | 一种双处理器设备及其控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102654858A (zh) * | 2011-03-04 | 2012-09-05 | 国基电子(上海)有限公司 | 双处理器系统及双处理器系统的通信方法 |
CN203643819U (zh) * | 2013-12-23 | 2014-06-11 | 上海新华控制技术集团科技有限公司 | 智能前端控制器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020156966A1 (en) * | 2001-04-20 | 2002-10-24 | Ward Alan R. | Dual port RAM with automatic write indicators |
CN102693210B (zh) * | 2011-03-21 | 2017-03-01 | 中兴通讯股份有限公司 | 一种处理器间传递参数的方法及装置 |
-
2019
- 2019-05-09 CN CN201910386889.4A patent/CN110134638B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102654858A (zh) * | 2011-03-04 | 2012-09-05 | 国基电子(上海)有限公司 | 双处理器系统及双处理器系统的通信方法 |
CN203643819U (zh) * | 2013-12-23 | 2014-06-11 | 上海新华控制技术集团科技有限公司 | 智能前端控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN110134638A (zh) | 2019-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101196547B1 (ko) | 결정론적 sas 검색 및 구성을 위한 방법 | |
KR100958685B1 (ko) | Dma 컨트롤러, 노드, 데이터 전송 제어 방법 및 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 | |
US20110246720A1 (en) | Storage system with multiple controllers | |
US9208039B2 (en) | System and method for detecting server removal from a cluster to enable fast failover of storage | |
CN110580235B (zh) | 一种sas扩展器通信方法及装置 | |
CN110134638B (zh) | 一种双处理器数据交换方法 | |
JP2009053946A (ja) | 二重化コントーラ構成ブロックデバイス制御装置 | |
CN112000286B (zh) | 一种四控全闪存储系统及其故障处理方法、装置 | |
JP5316502B2 (ja) | I/oブリッジ装置、応答通知方法、及びプログラム | |
CA2234635C (en) | Method and device for exchanging data | |
JP4936088B2 (ja) | ディスクアレイ装置、ディスクアレイシステム、及びキャッシュ制御方法 | |
CN101241478B (zh) | 数据传送方法 | |
JP2007334668A (ja) | メモリダンプ方法、クラスタシステム、それを構成するノードおよびプログラム | |
CN111600685A (zh) | 一种基于以太网实现can总线冗余的装置 | |
CN113672537B (zh) | 一种sata设备热插拔管理方法和装置 | |
CN113691649B (zh) | 一种stp sata桥的地址配置方法和装置 | |
JP5640941B2 (ja) | プロセスデータモニタシステム | |
CN216014148U (zh) | 一种服务器和服务器背板 | |
CN112181705B (zh) | 基于多控制器的管理存储控制方法及存储设备 | |
CN111106949A (zh) | 一种交换机多Phy芯片管理的方法和设备 | |
JPH07143148A (ja) | 高速サイクリック伝送装置 | |
JP4154678B2 (ja) | 情報処理装置 | |
CN113687619A (zh) | 一种具有双从机接口的控制器设计方法 | |
CN117220861A (zh) | 秘钥烧录系统、方法、智能网卡以及可读存储介质 | |
JPS6046460B2 (ja) | デ−タ転送装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |