CN1474296A - 一种基于共享存储器的多处理器间数据交互方法及装置 - Google Patents

一种基于共享存储器的多处理器间数据交互方法及装置 Download PDF

Info

Publication number
CN1474296A
CN1474296A CNA031097219A CN03109721A CN1474296A CN 1474296 A CN1474296 A CN 1474296A CN A031097219 A CNA031097219 A CN A031097219A CN 03109721 A CN03109721 A CN 03109721A CN 1474296 A CN1474296 A CN 1474296A
Authority
CN
China
Prior art keywords
processor
multiprocessor
data
dimension
bus
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
CNA031097219A
Other languages
English (en)
Other versions
CN1232918C (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.)
China Academy of Telecommunications Technology CATT
Original Assignee
Datang Mobile Communications Equipment 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 Datang Mobile Communications Equipment Co Ltd filed Critical Datang Mobile Communications Equipment Co Ltd
Priority to CNB031097219A priority Critical patent/CN1232918C/zh
Publication of CN1474296A publication Critical patent/CN1474296A/zh
Application granted granted Critical
Publication of CN1232918C publication Critical patent/CN1232918C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

本发明提供了一种基于共享存储器的多处理器间数据交互方法,该方法包括步骤:源处理器申请总线并将数据写入共享存储器并发送消息目的字;根据各处理器的总线请求消息及源处理器发送的消息目的字,采用隐式中断原则通知目的处理器从共享存储器中读取数据。本发明还提供了一种基于共享存储器的多处理器间数据交互装置,其中包括:多个一维多处理器;共享存储器组,用于存储各处理器之间需要交互的数据;总线仲裁器,决定各处理器对共享总线的使用权。利用本发明,可以提高多处理器系统中数据交互能力,减少系统的阻塞率。

Description

一种基于共享存储器的多处理器间数据交互方法及装置
技术领域
本发明涉及数据存取技术,具体涉及一种基于共享存储器的多处理器间数据交互方法及装置。
背景技术
在现代移动通信系统中,为了实时完成功能强大但算法复杂的基带处理,常常需要多个处理器构成处理器阵列来提高系统的实时运算能力。在这类系统中,多处理器间的数据通信速度日益成为影响多处理器系统性能的关键因素。
多处理器间数据交互的方法一般有:基于共享存储器的数据交互、串行数据交互和并行数据交互等。
一般地,对于没有高速通信端口的处理器系统而言,采用基于共享存储器的方案是一个很好的选择。通常情况下,共享一条总线的多个处理器在进行数据交互时,源处理器必须首先申请总线,在获得总线占有权后将数据写入预定的缓冲区,而后通知(例如,通过中断方式)目的处理器,目的处理器申请总线,在获得总线占有权后将从预定的缓冲区中读取数据。由于一次数据交互需要进行两次数据读写,收发一条消息的两个处理器模块需要两次申请同一条总线,同时目的处理器响应目的通知中断信号,当总线不处于空闲状态时,目的处理器可能会多次响应中断,并且不断申请总线,从而带来不必要的较大的额外开销。这类系统通常难以满足高流量的数据交互的要求,同时当多个处理器同时向某个处理器发送多条消息时,有较大的阻塞率。
发明内容
本发明的目的是克服现有技术的上述缺点,提供一种基于共享存储器的多处理器间数据交互方法及装置,它可以提高系统多处理器间数据的交互能力,降低系统阻塞率。
本发明提供了一种基于共享存储器的多处理器间数据交互方法,其特征在于,所述方法包括步骤:
源处理器申请总线并将数据写入所述共享存储器;
所述源处理器发送消息目的字,所述消息目的字表示所述共享存储器中已有数据需要所述目的存储器读取;
根据各处理器的总线请求消息及所述源处理器发送的所述消息目的字,判断是否通知所述目的处理器读取数据,
如果通知所述目的处理器读取数据,所述目的处理器从所述共享存储器中读取数据;
如果不通知所述目的处理器读取数据,等待预定时间后返回判断是否通知所述目的处理器读取数据的步骤。
可选地,所述根据各处理器的总线请求消息及所述源处理器发送的所述消息目的字,判断是否通知所述目的处理器读取数据的步骤包括步骤:将共享同一条总线的多个所述处理器设定为一个一维多处理器系统,将由多个所述一维多处理器系统设定为一个多维多处理器系统。
可选地,还包括步骤:设定所述多维多处理器系统中所述共享存储器的内部缓冲单元与所述多维多处理器系统中各处理器的对应关系。
优选地,所述根据各处理器的总线请求消息及所述源处理器发送的所述消息目的字,判断是否通知所述目的处理器读取数据的步骤包括步骤:所述多维多处理器系统中每个所述一维多处理器系统分别根据各自系统内的所述各处理器的总线请求消息进行所述一维多处理器的所述共享总线子仲裁。
可选地,所述根据各处理器的总线请求消息及所述源处理器发送的所述消息目的字,判断是否通知所述目的处理器读取数据的步骤包括步骤:
根据所述消息目的字的内容将所述消息目的字转换成所述目的处理器的隐式总线请求消息,所述目的处理器的隐式总线请求消息表示需要通知所述目的处理器读取数据;
根据所述共享总线子仲裁结果消息及所述目的处理器的隐式总线请求消息判断是否通知所述目的处理器读取数据。
优选地,所述根据所述共享总线子仲裁结果消息及所述目的处理器的隐式总线请求消息判断是否通知所述目的处理器读取数据的步骤包括步骤:采用隐式中断原则判断是否通知所述目的处理器读取数据,所述隐式中断原则表示,
对于当前拥有总线控制权的所述目的处理器,通知所述目的处理器读取数据;
对于当前正在申请总线但没有总线控制权的所述目的处理器,不通知所述目的处理器读取数据;
对于当前没有申请总线但也没有总线控制权的所述目的处理器,采用固定优先级的策略或动态优先级的策略决定是否通知所述目的处理器读取数据。
本发明还提供了一种基于共享存储器的多处理器间数据交互装置,其特征在于,所述装置包括:
多个一维多处理器:用于处理系统中不同的业务,每个一维多处理器中包括共享一条总线的多个处理器;
共享存储器组:通过所述一维处理器的共享总线分别耦合到所述多个一维多处理器,用于存储各处理器之间需要交互的数据;
总线仲裁器:通过所述一维处理器的共享总线分别耦合到所述多个一维多处理器,用于对所述多个一维多处理器中各处理器的总线请求进行仲裁,决定所述一维多处理器中各处理器对所述一维多处理器的共享总线的使用权。
可选地,所述共享存储器组还包括:有多个接口分别对应不同的所述一维多处理器的多口共享存储器,所述多口共享存储器的每个接口分别通过对应的所述一维多处理器的共享总线耦合到对应的所述一维多处理器,用于存储所述一维多处理器中各处理器需要与系统中其它处理器之间交互的数据。
优选地,所述总线仲裁器包括:一个核心处理器和多个子仲裁器,其中每个所述子仲裁器对应一个所述一维多处理器,通过对应的所述一维多处理器的共享总线耦合到对应的所述一维多处理器,并分别耦合到所述核心处理器,用于对所对应的所述一维多处理器进行共享总线的仲裁;其中所述核心处理器用于对所述子仲裁器的仲裁结果进行判断,并根据判断结果通知所述一维多处理器从所述共享存储器组中读取数据。
优选地,所述子仲裁器还包括:
消息寄存器,用于处理所述一维多处理器与所述子仲裁器之间以及所述一维多处理器组与所述核心处理器之间的交互消息。
线性仲裁器,用于根据所述消息寄存器中的消息对所对应的所述一维多处理器进行共享总线的仲裁。
利用本发明,可以提高多处理器系统中数据交互能力,减少系统的阻塞率,进一步提高基于共享存储器的数据通信系统的性能。
附图说明
图1是本发明的优选实施例基于共享存储器的多处理器间数据交互方法的步骤的流程图;
图2是本发明的优选实施例基于共享存储器的多处理器间数据交互装置结构示意图;
图3是图1所示的本发明的优选实施例基于共享存储器的多处理器间数据交互装置中的共享存储器B200的内部缓冲单元的划分;
图4是图1所示的本发明的优选实施例基于共享存储器的多处理器间数据交互装置中的仲裁器A200结构示意图;
图5是图3所示的仲裁器A200中的子仲裁器A301结构示意图;
图6是本发明中所述仲裁器根据隐式中断原则工作时序示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细说明。
参照图1,图1是本发明的优选实施例基于共享存储器的多处理器间数据交互方法的步骤的流程:
首先在步骤11源处理器申请总线并将数据写入所述共享存储器;
然后进到步骤12,源处理器发送消息目的字,所述消息目的字表示共享存储器中已有数据需要目的存储器读取;
系统中的总线仲裁器收到上述消息目的字后,并不直接向目的处理器发送中断,而是进入步骤13,将消息目的字转换成目的处理器的隐式总线请求消息;
然后进到步骤14,根据共享总线子仲裁结果及目的处理器的隐式总线请求消息采用隐式中断原则判断是否通知所述目的处理器读取数据,
如果通知目的处理器读取数据,则进到步骤15,向目的处理器发送中断通知信号,目的处理器收到上述中断信号后,进到步骤16,目的处理器申请总线并从共享存储器中读取数据,
如果不通知目的处理器读取数据,则等待预定时间后返回步骤14,判断是否通知目的处理器读取数据。
为了更好地理解本发明,下面结合本发明的共享存储器的多处理器间数据交互装置作详细地描述。
参照图2,图2是本发明基于共享存储器的多处理器间数据交互装置结构示意图,为了简化说明,以四个一维多处理器、一个仲裁器A200和一个四口共享存储器B200组成的系统为例说明。其中,
共享存储器B200有四个输入输出端口,即pt1,pt2,pt3,pt4;
处理器101,102,103,104组成第一个一维多处理器,共享四口共享存储器B200的pt1端口的数据线,地址线和控制线;
处理器105,106,107,108组成第二个一维多处理器,共享四口共享存储器B200的pt2端口的数据线,地址线和控制线;
处理器109,110,111,112组成第三个一维多处理器,共享四口共享存储器B200的pt3端口的数据线,地址线和控制线;
处理器113,114,115,116组成第四个一维多处理器,共享四口共享存储器B200的pt2端口的数据线,地址线和控制线。
仲裁器A200负责仲裁处理器101,102,103,104,105,106,107,108,109,110,112,113,114,115,116之间的通信。
B200是四端口共享存储器,如图3所示,其内部在逻辑上被划分成64块,其中,
M100,M200,M300,M400是处理器101的数据缓冲区,
M101,M201,M301,M401是处理器102的数据缓冲区,
M102,M202,M302,M402是处理器103的数据缓冲区,
M103,M203,M303,M403是处理器104的数据缓冲区,
M104,M204,M304,M404是处理器105的数据缓冲区,
M105,M205,M305,M405是处理器106的数据缓冲区,
M106,M206,M306,M406是处理器107的数据缓冲区,
M107,M207,M307,M407是处理器108的数据缓冲区,
M108,M208,M308,M408是处理器109的数据缓冲区,
M109,M209,M309,M409是处理器110的数据缓冲区,
M10A,M20A,M30A,M40A是处理器111的数据缓冲区,
M10B,M20B,M30B,M40B是处理器112的数据缓冲区,
M10C,M20C,M30C,M40C是处理器113的数据缓冲区,
M10D,M20D,M30D,M40D是处理器114的数据缓冲区,
M10E,M20E,M30E,M40E是处理器115的数据缓冲区,
M10F,M20F,M30F,M40F是处理器116的数据缓冲区。
共享存储器的大小为N*M个子存储空间,其中N表示本系统有N个一维多处理器,它与多口共享存储器的端口是相关的。M是本系统处理器的个数。
这些子存储空间被定义为:
M100用于存储目的处理器101,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M200用于存储目的处理器101,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M300用于存储目的处理器101,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M400用于存储目的处理器101,并且来自第四个一维多处理器,即处理器113,114,115,116的数据;
M101用于存储目的处理器102,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M201用于存储目的处理器102,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M301用于存储目的处理器102,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M401用于存储目的处理器102,并且来自第四个一维多处理器,即处理器113,114,115,116的数据;
M102用于存储目的处理器103,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M202用于存储目的处理器103,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M302用于存储目的处理器103,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M402用于存储目的处理器103,并且来自第四个一维各处理器,即处理器113,114,115,116的数据;
M103用于存储目的处理器104,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M203用于存储目的处理器104,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M303用于存储目的处理器104,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M403用于存储目的处理器104,并且来自第四个一维多处理器,即处理器113,114,115,116的数据;
M104用于存储目的处理器105,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M204用于存储目的处理器105,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M304用于存储目的处理器105,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M404用于存储目的处理器105,并且来自第四个一维多处理器,即处理器113,114,115,116的数据;
M105用于存储目的处理器106,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M205用于存储目的处理器106,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M305用于存储目的处理器106,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M405用于存储目的处理器106,并且来自第四个一维多处理器,即处理器113,114,115,116的数据;
M106用于存储目的处理器107,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M206用于存储目的处理器107,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M306用于存储目的处理器107,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M406用于存储目的处理器107,并且来自第四个一维各处理器,即处理器113,114,115,116的数据;
M107用于存储目的处理器108,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M207用于存储目的处理器108,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M307用于存储目的处理器108,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M407用于存储目的处理器108,并且来自第四个一维多处理器,即处理器113,114,115,116的数据;
M108用于存储目的处理器109,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M208用于存储目的处理器109,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M308用于存储目的处理器109,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M408用于存储目的处理器109,并且来自第四个一维多处理器,即处理器113,114,115,116的数据;
M109用于存储目的处理器110,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M209用于存储目的处理器110,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M309用于存储目的处理器110,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M409用于存储目的处理器110,并且来自第四个一维多处理器,即处理器113,114,115,116的数据;
M10A用于存储目的处理器111,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M20A用于存储目的处理器111,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M30A用于存储目的处理器111,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M40A用于存储目的处理器111,并且来自第四个一维多处理器,即处理器113,114,115,116的数据;
M10B用于存储目的处理器112,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M20B用于存储目的处理器112,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M30B用于存储目的处理器112,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M40B用于存储目的处理器112,并且来自第四个一维多处理器,即处理器113,114,115,116的数据;
M10C用于存储目的处理器113,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M20C用于存储目的处理器113,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M30C用于存储目的处理器113,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M40C用于存储目的处理器113,并且来自第四个一维多处理器,即处理器113,114,115,116的数据;
M10D用于存储目的处理器114,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M20D用于存储目的处理器114,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M30D用于存储目的处理器114,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M40D用于存储目的处理器114,并且来自第四个一维多处理器,即处理器113,114,115,116的数据;
M10E用于存储目的处理器115,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M20E用于存储目的处理器115,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M30E用于存储目的处理器115,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M40E用于存储目的处理器115,并且来自第四个一维多处理器,即处理器113,114,115,116的数据;
M10F用于存储目的处理器116,并且来自第一个一维多处理器,即处理器101,102,103,104的数据,
M20F用于存储目的处理器116,并且来自第二个一维多处理器,即处理器105,106,107,108的数据,
M30F用于存储目的处理器116,并且来自第三个一维多处理器,即处理器109,110,111,112的数据,
M40F用于存储目的处理器116,并且来自第四个一维多处理器,即处理器113,114,115,116的数据。
A200是本文所述多处理器阵列的仲裁器,如图4所示,它包括四个子仲裁器A301,A302,A303,A304和一个核心处理器A300。其中,
第一个子仲裁器A301负责对第一个一维多处理器,即处理器101,102,103,104的共享总线进行仲裁,以保证不发生总线冲突;
第二个子仲裁器A302负责对第二个一维多处理器,即处理器105,106,107,108的共享总线进行仲裁,以保证不发生总线冲突;
第三个子仲裁器A303负责对第三个一维多处理器,即处理器109,110,111,112的共享总线进行仲裁,以保证不发生总线冲突;
第四个子仲裁器A304负责对第四个一维多处理器,即处理器113,114,115,116的共享总线进行仲裁,以保证不发生总线冲突。
s101、s102、s103分别是来自第一个一维多处理器,即处理器101,102,103,104,并且连接到第一个子仲裁器A301的共享数据总线、共享地址总线、共享接口控制总线,
s104是来自第一个一维多处理器,即处理器101,102,103,104,并且连接到第一个子仲裁器A301的总线保持应答信号,
s105是来自第一个一维多处理器,即处理器101,102,103,104,并且连接到第一个子仲裁器A301和核心处理器A300的总线请求信号,
s106是由第一个子仲裁器A301输出到第一个一维多处理器,即处理器101,102,103,104和核心处理器A300的总线保持信号,
s107是由第一个子仲裁器A301输出到核心处理器A300的第一个一维多处理器目的信号;
s201、s202、s203分别是来自第二个一维多处理器,即处理器105,106,107,108,并且连接到第二个子仲裁器A302的共享数据总线、共享地址总线、共享接口控制总线,
s204是来自第二个一维多处理器,即处理器105,106,107,108,并且连接到第二个子仲裁器A302的总线保持应答信号,
s205是来自第二个一维多处理器,即处理器105,106,107,108,并且连接到第二个子仲裁器A302和核心处理器A300的总线请求信号,
s206是由第二个子仲裁器A302输出到第二个一维多处理器,即处理器105,106,107,108和核心处理器A300的总线保持信号,
s207是由第二个子仲裁器A302输出到核心处理器A300的第二个一维多处理器目的信号;
s301、s302、s303分别是来自第三个一维多处理器,即处理器109,110,111,112,并且连接到第三个子仲裁器A303的共享数据总线、共享地址总线、共享接口控制总线,
s304是来自第三个一维多处理器,即处理器109,110,111,112,并且连接到第三个子仲裁器A303的总线保持应答信号,
s305是来自第三个一维多处理器,即处理器109,110,111,112,并且连接到第三个子仲裁器A303和核心处理器A300的总线请求信号,
s306是由第三个子仲裁器A303输出到第三个一维多处理器,即处理器109,110,111,112和核心处理器A300的总线保持信号,
s307是由第三个子仲裁器A303输出到核心处理器A300的第三个一维多处理器目的信号;
s401、s402、s403分别是来自第四个一维多处理器,即处理器113,114,115,116,并且连接到第四个子仲裁器A304的共享数据总线、共享地址总线、共享接口控制总线,
s404是来自第四个一维多处理器,即处理器113,114,115,116,并且连接到第四个子仲裁器A304的总线保持应答信号,
s405是来自第四个一维多处理器,即处理器113,114,115,116,并且连接到第四个子仲裁器A304和核心处理器A300的总线请求信号,
s406是由第四个子仲裁器A304输出到第四个一维多处理器,即处理器113,114,115,116和核心处理器A300的总线保持信号,
s407是由第四个子仲裁器A304输出到核心处理器A300的第四个一维多处理器目的信号。
核心单元A300接收
来自第一个一维多处理器的总线请求信号s105、第一个子仲裁器A301输出到第一个一维多处理器的总线保持信号s106、第一个一维多处理器目的信号s107,
来自第二个一维多处理器的总线请求信号s205、第二个子仲裁器A302输出到第二个一维多处理器的总线保持信号s206、第二个一维多处理器目的信号s207,
来自第三个一维多处理器的总线请求信号s305、第三个子仲裁器A303输出到第三个一维多处理器的总线保持信号s306、第三个一维多处理器目的信号s307,
来自第四个一维多处理器的总线请求信号s405、第四个子仲裁器A304输出到第四个一维多处理器的总线保持信号s406、第四个一维多处理器目的信号s407,
并根据这些信号
向第一个一维多处理器发送目的通知信号s108,
向第二个一维多处理器发送目的通知信号s208,
向第三个一维多处理器发送目的通知信号s308,
向第四个一维多处理器发送目的通知信号s408。
如图5所示,子仲裁器A301又进一步包括消息寄存器401和线性仲裁器402。
消息寄存器401接收来自第一个一维多处理器,即处理器101、102、103、104,并且连接第一个子仲裁器A301的共享数据总线s101的信号、共享地址总线s102的信号、共享接口控制总线s103的信号,并由此向线性仲裁器402输出总线元消息s109,向核心处理器A300输出第一个一维多处理器目的信号s107。
线性仲裁器402接收来自第一个一维多处理器,即处理器101、102、103、104,并且连接到第一个子仲裁器A301的总线保持应答信号s104,来自第一个一维多处理器,并且连接到第一个子仲裁器A301和核心处理器A300的总线请求信号s105,并向核心处理器A300和第一个一维多处理器输出总线保持信号s106。
子仲裁器A302,A303,A304的结构可以设计为与A301类似,在此不再详细描述。
基于上述系统结构,本发明可采用如下仲裁策略:
其一是处理器参与仲裁的机制。当某处理器模块获取总线后,它可以在系统预设的某个时间窗内尽可能多地完成现有任务,并在任务完成后显式通知子仲裁器,表示愿意释放总线。在预设的某个时间窗内,各子仲裁器只有得到来自当前总线占有者释放总线的消息后,才进行又一次仲裁,由此,可以减少总线切换次数,提高了系统的性能。
本发明还采用了一种新型的总线请求机制,即隐式总线请求机制,也就是说总线仲裁器在接收到由源处理器模块发来的消息目的字后,并不直接向目的处理器模块发中断,以通知目的处理器模块来取回消息。而是将消息目的字通过目的映射单元转换成由目的处理器模块发来的隐式总线请求,各个子仲裁器根据与本子仲裁器对应的一维多处理器发来的显式总线请求和由消息字映射出的隐式总线请求进行总线仲裁。由此,大大减少了由响应中断所带来的处理器的额外开销。待目的处理器获取总线后,总线仲裁器将隐式请求转换成显式中断,通知目的处理器来取回消息。
例如,隐式总线请求到显式中断的转换可采用如下方式:
1.对于当前正在申请总线但没有总线控制权的处理器模块,仲裁器不产生显式中断通知目的处理器模块;
2.对于当前没有申请总线但也没有总线控制权的处理器模块,待仲裁器根据预定的仲裁策略给与其总线控制权后,仲裁器将隐式总线请求转换为显式中断用以通知目的处理器模块;
3.对于当前拥有总线控制权的处理器模块,仲裁器产生显式中断,通知目的处理器模块。
如图6所示,仲裁器工作过程及策略可解释如下:
为表示方便,特作如下表所示的映射。
处理器模块 总线保持应答信号   总线许可信号   总线请求信号    中断信号
    101     s104[0]     s106[0]      s105[0]     s108[0]
    102     s104[1]     s106[1]      s105[1]     s108[1]
    103     s104[2]     s106[2]      s105[2]     s108[2]
    104     s104[3]     s106[3]      s105[3]     s108[3]
    105     s204[0]     s206[0]      s205[0]     s208[0]
    106     s204[1]     s206[1]      s205[1]     s208[1]
    107     s204[2]     s206[2]      s205[2]     s208[2]
    108     s204[3]     s206[3]      s205[3]     s208[3]
    109     s304[0]     s306[0]      s305[0]     s308[0]
    110     s304[1]     s306[1]      s305[1]     s308[1]
    111     s304[2]     s306[2]      s305[2]     s308[2]
    112     s304[3]     s306[3]      s305[3]     s308[3]
    113     s404[0]     s406[0]      s405[0]     s408[0]
    114     s404[1]     s406[1]      s405[1]     s408[1]
    115     s404[2]     s406[2]      s405[2]     s408[2]
    116     s404[3]     s406[3]      s405[3]     s408[3]
参照图6所示仲裁器工作时序示意图,图中OP_1、OP_2、OP_3、OP_4分别表示数据总线和地址总线上的操作:
在t1时刻,s105信号为“0011”,即第一个一维多处理器中的处理器101和处理器102同时申请总线,这里假定处理器101比处理器102具有更高的优先级,
在t2时刻,s106信号变为“0001”,表明第一个子仲裁器A301仲裁许可处理器101占有总线,
在t3时刻,s104信号变为“0001”,表明处理器101忙信号有效,
在t3和t4时刻之间,处理器101将数据发送到目的缓冲区M107,
在t4时刻,由OP_1可见,第一个一维多处理器中占有总线的处理器101向总线仲裁器发出写目的字命令c1,子仲裁器A301根据目的字可以解析出处理器101希望将数据发送给处理器108,并将此消息通过s107告知核心处理器A300,在核心处理器A300和第二个子仲裁器A302的控制下,
在t5时刻,s206变为“1000”,即第二个子仲裁器A302许可处理器108占有总线,
在t6时刻,s208变为“1000”,即核心处理器A300根据本发明的隐式中断原则向处理器108发送中断通知信号,
在t7时刻,由OP_1可见,第一个一维多处理器中占有总线的处理器101向总线仲裁器发出写释放总线命令c2,第一个子仲裁器A301接收到该命令后,
在t8时刻,让处理器101释放总线,由于此时s104信号为“0010”,第一个子仲裁器A301许可处理器102占有总线。
与此并行地,第二个一维多处理器中的处理器108接收到中断通知信号后,可以到自己的缓冲区M107,M207,M307和M407中去查看并读取消息,关于检索消息的具体方式,这里不作详述。
待消息读取之后,t10时刻,第二个子仲裁器A302接收到OP_2的释放总线命令c2,
t11时刻,第二个子仲裁器A302让处理器108释放总线。
在t9和t12时刻之间,处理器102将数据发送到目的缓冲区M10A和M10D,由OP_1可见,
在t12时刻,第一个子仲裁器A301接收到来自当前占有总线的处理器102的目的命令字c3,并解析出处理器102希望通知处理器111和处理器114读取消息。第一个子仲裁器A301将此消息发送给核心处理器A300,由信号s304,s305,s306可见,第三个一维多处理器中的处理器111已占有总线,
在t13时刻,由信号s308可见,核心处理器A300根据本发明的隐式中断原则向处理器111发送中断通知信号。由信号s404,s405,s406可见,第四个一维多处理器中的处理器113占有总线,处理器114正在申请总线,核心处理器A300根据本发明的隐式中断原则不向处理器114发送中断通知信号。
由上述隐式中断原则的具体实施例可见,本发明通过采用这种策略,大大降低了各处理器模块的中断响应次数,提高了系统效率。同时,通过采用高效的存储缓冲区的划分方法,避免了同一时刻各处理器模块同时访问同一块缓冲区,而与此同时,各处理器模块可以同时对一个处理器模块的各个目的缓冲区操作。通过这种方法,极大提高了各处理器模块通过共享存储器进行数据交互的带宽。
虽然本发明所述的实施例是在源处理器向其缓冲区写完数据后通知目的处理器来取回数据的,事实上,对本发明稍作改动,源处理器也可以在向其缓冲区写完数据之前,发通知给目的处理器,由此可以进一步提高不同一维多处理器之间通信的效率。
虽然本发明所述的实施例采用了隐式中断的方式通知目的处理器模块,对本发明稍作改动,也可以采用目的处理器主动感知来获取总线控制权的方式,所述主动感知是指当仲裁器已分配给某个处理器总线所有权,仲裁器无需去通知该处理器其已占有总线,而是由该处理器自动查寻而得知自己已占有总线。
虽然本发明所述的实施例采用共享一个多口存储器的结构,对本发明稍作改动,也可以采用共享一个或多个存储器的其它类似结构。
虽然本发明所述的实施例中,共享总线是以并行方式出现的,对本发明稍作改动,共享总线仍可采用高速串行或其它自定制的总线结构。
虽然本发明所述的实施例中,各子仲裁器采用了类似结构,实际上,对本发明稍作改动,各子仲裁器也可以采用不同的结构或策略。
虽然本发明所述的实施例采用了基于收件人邮箱机制的存储缓冲区划分方式,对本发明稍作改动,仍可采用基于发件人缓冲区的广播机制的其它类似结构,所述基于发件人缓冲区的广播机制是指发信方将信息放在自己的信箱里,需要此信息的处理器到发信人的信箱中取出该信息。
本发明所提出的基于共享存储器的多个处理器通信系统是其中一个解决方案,它可由多个处理器模块、多个存储器或多口存储器和总线仲裁器构成,共享存储器总线的多个处理器构成一维多处理器系统,分别共享存储器总线的多个端口的多个处理器构成多维处理器系统。在多维处理器系统中,每一维共享总线的处理器结构中的子仲裁器可根据系统需求采用固定优先级或动态优先级的策略。对于多维处理器系统,各个子仲裁器可分别对本维内的各处理器共享总线作独立仲裁,系统控制由核心控制器来完成。由此构成了高效率的多处理器系统。
实际上,本发明所述的体系结构不仅可以用商用器件,如多口RAM,多个RAM,FPGA或其它类似可编程逻辑器件来构建,同时由于内部集成大量存储单元的FPGA或其它类似可编程器件已经商用,由此,还可以将多口RAM与仲裁器整合在一起,用FPGA或其它类似可编程逻辑器件来实现。更进一步地,这种方案也可以作为ASIC或半定制ASIC设计的架构。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。

Claims (10)

1.一种基于共享存储器的多处理器间数据交互方法,其特征在于,所述方法包括步骤:
源处理器申请总线并将数据写入所述共享存储器;
所述源处理器发送消息目的字,所述消息目的字表示所述共享存储器中已有数据需要所述目的存储器读取;
根据各处理器的总线请求消息及所述源处理器发送的所述消息目的字,判断是否通知所述目的处理器读取数据,
如果通知所述目的处理器读取数据,所述目的处理器从所述共享存储器中读取数据;
如果不通知所述目的处理器读取数据,等待预定时间后返回判断是否通知所述目的处理器读取数据的步骤。
2.如权利要求1所述的基于共享存储器的多处理器间数据交互方法,其特征在于,所述根据各处理器的总线请求消息及所述源处理器发送的所述消息目的字,判断是否通知所述目的处理器读取数据的步骤包括步骤:将共享同一条总线的多个所述处理器设定为一个一维多处理器系统,将由多个所述一维多处理器系统设定为一个多维多处理器系统。
3.如权利要求2所述的基于共享存储器的多处理器间数据交互方法,其特征在于,还包括步骤:设定所述多维多处理器系统中所述共享存储器的内部缓冲单元与所述多维多处理器系统中各处理器的对应关系。
4.如权利要求2所述的基于共享存储器的多处理器间数据交互方法,其特征在于,所述根据各处理器的总线请求消息及所述源处理器发送的所述消息目的字,判断是否通知所述目的处理器读取数据的步骤包括步骤:所述多维多处理器系统中每个所述一维多处理器系统分别根据各自系统内的所述各处理器的总线请求消息进行所述一维多处理器的所述共享总线子仲裁。
5.如权利要求4所述的基于共享存储器的多处理器间数据交互方法,其特征在于,所述根据各处理器的总线请求消息及所述源处理器发送的所述消息目的字,判断是否通知所述目的处理器读取数据的步骤包括步骤:
根据所述消息目的字的内容将所述消息目的字转换成所述目的处理器的隐式总线请求消息,所述目的处理器的隐式总线请求消息表示需要通知所述目的处理器读取数据;
根据所述共享总线子仲裁结果消息及所述目的处理器的隐式总线请求消息判断是否通知所述目的处理器读取数据。
6.如权利要求5所述的基于共享存储器的多处理器间数据交互方法,其特征在于,所述根据所述共享总线子仲裁结果消息及所述目的处理器的隐式总线请求消息判断是否通知所述目的处理器读取数据的步骤包括步骤:采用隐式中断原则判断是否通知所述目的处理器读取数据,所述隐式中断原则表示,
对于当前拥有总线控制权的所述目的处理器,通知所述目的处理器读取数据;
对于当前正在申请总线但没有总线控制权的所述目的处理器,不通知所述目的处理器读取数据;
对于当前没有申请总线但也没有总线控制权的所述目的处理器,采用固定优先级的策略或动态优先级的策略决定是否通知所述目的处理器读取数据。
7.一种基于共享存储器的多处理器间数据交互装置,其特征在于,所述装置包括:
多个一维多处理器:用于处理系统中不同的业务,每个一维多处理器中包括共享一条总线的多个处理器;
共享存储器组:通过所述一维处理器的共享总线分别耦合到所述多个一维多处理器,用于存储各处理器之间需要交互的数据;
总线仲裁器:通过所述一维处理器的共享总线分别耦合到所述多个一维多处理器,用于对所述多个一维多处理器中各处理器的总线请求进行仲裁,决定所述一维多处理器中各处理器对所述一维多处理器的共享总线的使用权。
8.如权利要求7所述的基于共享存储器的多处理器间数据交互装置,其特征在于,所述共享存储器组还包括:有多个接口分别对应不同的所述一维多处理器的多口共享存储器,所述多口共享存储器的每个接口分别通过对应的所述一维多处理器的共享总线耦合到对应的所述一维多处理器,用于存储所述一维多处理器中各处理器需要与系统中其它处理器之间交互的数据。
9.如权利要求7所述的基于共享存储器的多处理器间数据交互装置,其特征在于,所述总线仲裁器包括:一个核心处理器和多个子仲裁器,其中每个所述子仲裁器对应一个所述一维多处理器,通过对应的所述一维多处理器的共享总线耦合到对应的所述一维多处理器,并分别耦合到所述核心处理器,用于对所对应的所述一维多处理器进行共享总线的仲裁;其中所述核心处理器用于对所述子仲裁器的仲裁结果进行判断,并根据判断结果通知所述一维多处理器从所述共享存储器组中读取数据。
10.如权利要求9所述的基于共享存储器的多处理器间数据交互装置,其特征在于,所述子仲裁器还包括:
消息寄存器,用于处理所述一维多处理器与所述子仲裁器之间以及所述一维多处理器组与所述核心处理器之间的交互消息。
线性仲裁器,用于根据所述消息寄存器中的消息对所对应的所述一维多处理器进行共享总线的仲裁。
CNB031097219A 2003-04-11 2003-04-11 一种基于共享存储器的多处理器间数据交互方法及装置 Expired - Lifetime CN1232918C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB031097219A CN1232918C (zh) 2003-04-11 2003-04-11 一种基于共享存储器的多处理器间数据交互方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB031097219A CN1232918C (zh) 2003-04-11 2003-04-11 一种基于共享存储器的多处理器间数据交互方法及装置

Publications (2)

Publication Number Publication Date
CN1474296A true CN1474296A (zh) 2004-02-11
CN1232918C CN1232918C (zh) 2005-12-21

Family

ID=34152347

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031097219A Expired - Lifetime CN1232918C (zh) 2003-04-11 2003-04-11 一种基于共享存储器的多处理器间数据交互方法及装置

Country Status (1)

Country Link
CN (1) CN1232918C (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100349142C (zh) * 2004-05-25 2007-11-14 中国科学院计算技术研究所 一种用于虚拟共享存储系统的远程取页方法及网络接口卡
CN100514316C (zh) * 2007-07-11 2009-07-15 南京大学 基于片上多处理器系统的动态自适应总线仲裁器
CN102306139A (zh) * 2011-08-23 2012-01-04 北京科技大学 用于ofdm无线通信系统的异构多核数字信号处理器
CN103136141A (zh) * 2013-02-06 2013-06-05 浪潮电子信息产业股份有限公司 一种多控制器间的高速互联方法
CN110825312A (zh) * 2018-08-10 2020-02-21 北京百度网讯科技有限公司 数据处理装置、人工智能芯片及电子设备
CN110858187A (zh) * 2018-08-23 2020-03-03 慧荣科技股份有限公司 具有分布式信箱结构的多处理器系统及其处理器错误检查方法
CN111061674A (zh) * 2019-11-30 2020-04-24 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 多处理器交叉通信装置及方法
CN114168522A (zh) * 2022-02-14 2022-03-11 北京微核芯科技有限公司 一种数据传输方法、装置及传输部件

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100349142C (zh) * 2004-05-25 2007-11-14 中国科学院计算技术研究所 一种用于虚拟共享存储系统的远程取页方法及网络接口卡
CN100514316C (zh) * 2007-07-11 2009-07-15 南京大学 基于片上多处理器系统的动态自适应总线仲裁器
CN102306139A (zh) * 2011-08-23 2012-01-04 北京科技大学 用于ofdm无线通信系统的异构多核数字信号处理器
CN103136141A (zh) * 2013-02-06 2013-06-05 浪潮电子信息产业股份有限公司 一种多控制器间的高速互联方法
CN110825312A (zh) * 2018-08-10 2020-02-21 北京百度网讯科技有限公司 数据处理装置、人工智能芯片及电子设备
CN110825312B (zh) * 2018-08-10 2023-06-23 昆仑芯(北京)科技有限公司 数据处理装置、人工智能芯片及电子设备
CN110858187A (zh) * 2018-08-23 2020-03-03 慧荣科技股份有限公司 具有分布式信箱结构的多处理器系统及其处理器错误检查方法
CN110858187B (zh) * 2018-08-23 2023-07-04 慧荣科技股份有限公司 具有分布式信箱结构的多处理器系统及其处理器错误检查方法
CN111061674A (zh) * 2019-11-30 2020-04-24 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 多处理器交叉通信装置及方法
CN111061674B (zh) * 2019-11-30 2023-05-16 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 多处理器交叉通信装置及方法
CN114168522A (zh) * 2022-02-14 2022-03-11 北京微核芯科技有限公司 一种数据传输方法、装置及传输部件

Also Published As

Publication number Publication date
CN1232918C (zh) 2005-12-21

Similar Documents

Publication Publication Date Title
CN1147785C (zh) 执行多个指令流的多程序流程同时处理器
CN1152305C (zh) 虚拟机系统
CN1082211C (zh) 微计算机
CN1134741C (zh) 网络系统和打印机
CN1232918C (zh) 一种基于共享存储器的多处理器间数据交互方法及装置
CN1517869A (zh) 处理器、运算处理方法和优先度决定方法
CN1508709A (zh) 仲裁电路和数据处理系统
CN1591374A (zh) 直接存储器存取传输控制器
CN1661583A (zh) 协议转换和仲裁电路、系统及转换和仲裁信号的方法
CN1878131A (zh) 进行流量控制的方法和系统
CN1382333A (zh) 可按比例配置的开关结构
CN1906583A (zh) 信息处理设备、中断处理控制方法、以及计算机程序
CN1117315C (zh) 微处理机及多处理机系统
CN1503150A (zh) 多处理器系统中的任务分配方法和多处理器系统
CN1758213A (zh) 带有共享内容的异构型并行多线程处理器(hpmt)
CN1689284A (zh) 网络交换装置和网络交换方法
CN1859275A (zh) 多端口以太网交换装置及数据传输方法
CN1967506A (zh) 高速缓存存储器处理器中的合并入口
CN101078999A (zh) 一种实现数据备份和恢复的方法及系统
CN100346285C (zh) 处理器芯片与存储控制系统及方法
CN1506971A (zh) 半导体器件、图像数据处理装置和方法
CN1321273A (zh) 操作系统和虚拟计算机系统
CN1270440C (zh) 包含逻辑电路的总线缓冲电路
CN101048739A (zh) 多处理器系统、同步控制装置及同步控制方法
CN1474568A (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
PE01 Entry into force of the registration of the contract for pledge of patent right

Effective date of registration: 20070510

Pledge (preservation): Pledge

PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20100413

Granted publication date: 20051221

Pledgee: CHINA DEVELOPMENT BANK

Pledgor: DATANG MOBILE COMMUNICATIONS EQUIPMENT Co.,Ltd.|SHANGHAI DATANG MOBILE COMMUNICATIONS EQUIPMENT Co.,Ltd.|CHINA ACADEMY OF TELECOMMUNICATIONS TECHNOLOGY

Registration number: 2007110000354

ASS Succession or assignment of patent right

Owner name: INST OF TELECOMMUNICATION SCIENCE AND TECHNOLGOY

Free format text: FORMER OWNER: DATANG MOBILE COMMUNICATION EQUIPMENT CO., LTD.

Effective date: 20110401

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100083 NO. 40, XUEYUAN ROAD, HAIDIAN DISTRICT, BEIJING TO: 100191 NO. 40, XUEYUAN ROAD, HAIDIAN DISTRICT, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20110401

Address after: 100191 Haidian District, Xueyuan Road, No. 40,

Patentee after: CHINA ACADEMY OF TELECOMMUNICATIONS TECHNOLOGY

Address before: 100083 No. 40, Haidian District, Beijing, Xueyuan Road

Patentee before: DATANG MOBILE COMMUNICATIONS EQUIPMENT Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20040211

Assignee: TENTH INSTITUTE OF TELECOMMUNICATIONS TECHNOLOGY

Assignor: CHINA ACADEMY OF TELECOMMUNICATIONS TECHNOLOGY

Contract record no.: 2015990000346

Denomination of invention: Data interacting method and device between multiple processors based on shared storage

Granted publication date: 20051221

License type: Exclusive License

Record date: 20150520

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
CX01 Expiry of patent term

Granted publication date: 20051221

CX01 Expiry of patent term