一种实现处理器相互通讯的方法及装置的制作方法

文档序号:6464832阅读:145来源:国知局

专利名称::一种实现处理器相互通讯的方法及装置的制作方法
技术领域
:本发明涉及通讯
技术领域
,尤其涉及一种实现处理器相互通讯的方法及装置。
背景技术
:现有的实现两个处理器之间相互通讯的方式一般有以下两种一、通过外围设备接口的方式。即两个处理器之间为了实现相互通讯,使用外围设备接口,如串行接口。但是,这种通讯方式速度慢,而且通讯的数据可能会丟失,容错性不好。二、通过共享内存的方式。所谓共享内存的方式,是指一个处理器将自己的一段内存与另一处理器共享,使得另一处理器也可以访问该段内存,从而实现两个处理器之间的相互通讯,那么该段内存即称为共享内存。然而,现有的通过共享内存的方式实现两个处理器之间的相互通讯时,一个处理器在向共享内存写入数据时,另一处理器只能从该共享内存中读取数据,而不可以同时也向该共享内存中写入数据,否则会造成数据混乱,造成读写错误。也就是说,在处理器向共享内存写入数据时,另一处理器只能从该共享内存中读取数据,如果一个处理器要向共享内存写入数据的话,只能等待另一处理器对共享内存的写入操作结束。所以,这种通讯方式的速度也比较慢。综上所述,现有技术实现两个处理器之间相互通讯的效率较低。
发明内容本发明实施例提供了一种实现处理器相互通讯的方法及装置,用以提高处理器之间相互通讯的效率。本发明实施例提供的一种实现处理器相互通讯的方法,预先将第一处理器和第二处理器共享的内存划分为命令区和反馈区,该方法包括所述第一处理器和第二处理器将指示对方操作的命令写入所述命令区中状态标识为可写的不同的命令字,并将该命令字的状态标识设置为对方可读;所述第一处理器和第二处理器从所述命令区中读取状态标识为自身可读的命令字中的命令,并将该命令字的状态标识设置为可写;所述第一处理器和第二处理器将自身对命令的执行结果写入所述反馈区中状态标识为可写的不同的命令字,并将该命令字的状态标识设置为对方可读;所述第一处理器和第二处理器从所述反馈区读取状态标识为自身可读的命令字中的命令执行结果,并设置该命令字的状态标识为可写。本发明实施例提供的一种实现处理器相互通讯的系统包括内存划分单元和两个处理器;所述内存划分单元,用于将所述两个处理器共享的内存划分为命令区和反馈区;所述处理器,用于将指示对端处理器操作的命令写入所述命令区中状态标识为可写的命令字,并将该命令字的状态标识设置为对端处理器可读;从所述命令区中读取状态标识为自身可读的命令字中的命令,并将该命令字的状态标识设置为可写;将对所述读取到的命令的执行结果写入所述反馈区中状态标识为可写的命令字,并将该命令字的状态标识设置为对端处理器可读;从所述反馈区读取状态标识为自身可读的命令字中的命令执行结果,并设置该命令字的状态标识为可写。本发明实施例,预先将第一处理器和第二处理器共享的内存划分为命令区和反馈区,所述第一处理器和第二处理器将指示对方操作的命令写入所述命令区中状态标识为可写的不同的命令字,并将该命令字的状态标识设置为对方可读;所述第一处理器和第二处理器从所述命令区中读取状态标识为自身可读的命令字中的命令,并将该命令字的状态标识设置为可写;所述第一处理器和第二处理器将自身对命令的执行结果写入所述反馈区中状态标识为可写的不同的命令字,并将该命令字的状态标识设置为对方可读;所述第一处理器和第二设置该命令字的状态标识为可写,从而使得两个处理器可以同时互相发送命令,以及读取命令,实现了两个处理器的双工通讯,因此,提高了处理器之间相互通讯的效率。图1为本发明实施例提供的一种实现处理器相互通讯的装置的总体结构示意图2为本发明实施例提供的一种实现处理器相互通讯的装置的具体结构示意图3为本发明实施例提供的一种实现处理器相互通讯的方法流程示意图。具体实施例方式本发明实施例提供了一种通过采用共享内存的方式,在两个处理器之间实现双工通讯的方法及装置,用以提高两个处理器之间的通讯速率。本发明实施例所述的双工通讯,是指两个处理器可以同时相互发送命令,以及可以同时读糾目互发送的命令。下面结合附图对本发明实施例提供的技术方案进行说明。参见图1,本发明实施例提供的一种实现处理器相互通讯的装置总体包括:内存划分单元101、第一处理器102和第二处理器103。所述内存划分单元101,用于将第一处理器102和第二处理器103共享的内存划分为命令区和反馈区。所述命令区,是用来存储第一处理器102和第二处理器103相互发送的命令的;所述反馈区,是用来存储第一处理器102和第二处理器103相互发送的命令执行结果的。所述第一处理器102,用于将指示第二处理器103操作的命令写入所述命令区中状态标识为可写的命令字,并将该命令字的状态标识设置为第二处理器103可读;从所述命令区中读取状态标识为自身可读的命令字中的命令,并将该命令字的状态标识设置为可写;将对所述读取到的命令的执行结果写入所述反馈区中状态标识为可写的命令字,并将该命令字的状态标识设置为第二处理果,并设置该命令字的状态标识为可写。所述第二处理器103,用于将指示第一处理器102操作的命令写入所述命令区中状态标识为可写的命令字,并将该命令字的状态标识设置为第一处理器102可读;从所述命令区中读取状态标识为自身可读的命令字中的命令,并将该命令字的状态标识设置为可写;将对所述读取到的命令的执行结果写入所述反馈区中状态标识为可写的命令字,并将该命令字的状态标识设置为第一处理果,并设置该命令字的状态标识为可写。较佳地,参见图2,所述第一处理器102具体包括清除单元21、写入命令单元22、读取命令通知单元23、读取命令单元24、命令已读通知单元25、写入执行结果单元26、读取执行结果通知单元27、读取执行结果单元28;所述第二处理器103具体包括清除单元31、写入命令单元32、读取命令通知单元33、读取命令单元34、命令已读通知单元35、写入执行结果单元36、读取执行结果通知单元37、读取执行结果单元38。为了保证新来的命令得到及时处理,保证系统的健壮性,设置清除单元21,用于当命令区或反馈区中不存在状态标识为可写的命令字时,将命令区或反馈区的命令字中存储时间最长的数据删除,并将该命令字的状态标识设置为可写,并触发写入命令单元22。写入命令单元22,用于将指示第二处理器103操作的命令写入所述命令区中状态标识为可写的命令字,并将该命令字的状态标识设置为对端处理器可读。读取命令通知单元23,用于通知第二处理器103从命令区读取命令。时,将命令区或反馈区的命令字中存储时间最长的数据删除,并将该命令字的状态标识设置为可写,并触发写入命令单元32。写入命令单元32,用于将指示第一处理器102操作的命令写入所述命令区中状态标识为可写的命令字,并将该命令字的状态标识设置为对端处理器可读。读取命令通知单元33,用于通知第一处理器102从命令区读取命令。读取命令单元24,用于根据读取命令通知单元33的通知,从命令区中读取状态标识为第一处理器102可读的命令字中的命令,并将该命令字的状态标识设置为可写。读取命令单元34,用于根据读取命令通知单元23的通知,从命令区中读取状态标识为第二处理器103可读的命令字中的命令,并将该命令字的状态标识设置为可写。命令已读通知单元25,用于通知第二处理器103已从命令区读取命令。写入执行结果单元26,用于将对读取到的命令的执行结果写入所反馈区中状态标识为可写的命令字,并将该命令字的状态标识设置为第二处理器103可读。读取执行结果通知单元27,用于通知第二处理器103从反馈区读取命令执行结果。命令已读通知单元35,用于通知第一处理器102已从命令区读取命令。写入执行结果单元36,用于将对读取到的命令的执行结果写入反馈区中状态标识为可写的命令字,并将该命令字的状态标识设置为第一处理器102可读。读取执行结果通知单元37,用于通知第一处理器102从反馈区读取命令执行结果。读取执行结果单元28,用于根据读取执行结果通知单元37的通知,从反馈区读取状态标识为第一处理器102可读的命令字中的命令执行结果,并设置该命令字的状态标识为可写。读取执行结果单元38,用于根据读取执行结果通知单元27的通知,从反馈区读取状态标识为第二处理器103可读的命令字中的命令执行结果,并设置该命令字的状态标识为可写。例如,便携式々某体播;改器(PMP,PortableMediaPlayer)中包括两个微处理器,一个是单片机,另外一个是CPU。单片机完成控制功能,CPU完成主要功能的实现。如何实现这两个处理器之间快速、稳定、有效的通讯,是PMP开发的重点和难点。可以采用本发明实施例提供的基于共享内存的方式实现两个处理器之间的双工通讯。由于这两个处理器有同样的地址空间(即共享内存)可以访问,所以在这段共享内存建立了通讯区,该通讯区分为命令区和反馈区,即对于每个处理器而言,都存在用于发布命令的命令区和用于接收命令执行结果的反馈区。进一步,还可以有一个是数据区,用来交换命令区或反馈区中存储不下的数据。比如,单片机向CPU发送命令,单片机把命令写入命令区中的状态标识为可写的命令字中,然后将该命令字的状态标识设置为CPU可读,并通知CPU已经发送了命令给它,可以采用中断的方式进行通知,例如,CPU有一个外部中断管脚,单片机通过设置这个管脚,触发CPU的中断,从而通知CPU读取命令。CPU收到通知后,会把命令区中状态标识为CPU可读的命令字中的命令读走,并更新该命令字的状态标识为可写。等CPU执行完这个命令后,把执行结果写到反馈区中状态标识为可写的命令字中,并将该命令字的状态标识设置为单片机可读,然后通知单片机。单片机也有一个外部中断管脚,CPU通过设置这个管脚,触发单片机的中断,从而通知单片机读取命令执行结果。单果信息,从而完成单片机向CPU发送命令的整个操作。CPU向单片机发送命令的过程同理可得。命令区和状态区分离使得可以实现CPU和单片机的双工通讯,单片机给CPU发送命令的同时,CPU也可以给单片机发送命令。另外,命令区和状态区都是循环緩存(buffer),可以同时处理和响应多个命令。例如该buffer共有10个存储空间,第一段数据先存储到第一个空间中,然后依次向后存储,当存储到最后一个空间时,会接着从第一个空间存储。命令区和反馈区都以命令字为单位(一个命令字对应一个存储空间),每个命令区可以存放多条(例如4条)命令字。每个命令字包含一个主命令号、一个辅命令号、命令参数(即具体的命令内容)、一个状态标识。所述状态标识可以设置为可写、第一处理器可读或第二处理器可读,〃t人而指示各处理器对本命令字的具体读写操作。由于本发明实施例中,为了保证新来的命令得到及时处理,保证系统的健壮性,当命令区或反馈区中不存在状态标识为可写的命令字时,将命令区或反馈区的命令字中存储时间最长的数据删除,并将该命令字的状态标识设置为可写,以便写入新的命令,所以,较佳地,为了防止数据丢失,读取命令或读取命令执行结果的处理器,需要一次性把命令区或反馈区中所有自身可读数据全部读走,并按照时间的先后顺序依次处理。参见图3,本发明实施例提供的一种实现处理器相互通讯的方法,预先将第一处理器和第二处理器共享的内存划分为命令区和反馈区,那么,实现两个处理器双工通讯的方法包括步骤5301、第一处理器和第二处理器将指示对方操作的命令写入命令区中状态标识为可写的不同的命令字,并将该命令字的状态标识设置为对方可读。5302、第一处理器和第二处理器从命令区中读取状态标识为自身可读的命令字中的命令,并将该命令字的状态标识设置为可写。5303、第一处理器和第二处理器将自身对命令的执行结果写入反馈区中状态标识为可写的不同的命令字,并将该命令字的状态标识设置为对方可读。5304、第一处理器和第二处理器从反馈区读取状态标识为自身可读的命令字中的命令执行结果,并设置该命令字的状态标识为可写。进一步,步骤S301后,该方法还包括第一处理器和第二处理器通知对方从命令区读取命令。进一步,步骤S302后,该方法还包括第一处理器和第二处理器通知对方已从所述命令区读取命令。进一步,步骤S303后,该方法还包括第一处理器和第二处理器通知对方从反馈区读取命令执行结果。当命令区中不存在状态标识为可写的命令字时,将命令区的命令字中存储时间最长的命令删除,并将该命令字的状态标识设置为可写;当反馈区中不存在状态标识为可写的命令字时,将反馈区的命令字中存储时间最长的命令删除,并将该命令字的状态标识设置为可写。综上所述,本发明实施例通过预先将两个处理器共享的内存划分为两个区域,即用于存储命令的命令区和用于存储命令执行结果的反馈区,并为命令区和反馈区中的命令字设置状态标识,用以指示命令字的读或写的状态,从而使得两个处理器可以实现双工通讯,提高通讯效率。明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。权利要求1、一种实现处理器相互通讯的方法,其特征在于,预先将第一处理器和第二处理器共享的内存划分为命令区和反馈区,该方法包括所述第一处理器和第二处理器将指示对方操作的命令写入所述命令区中状态标识为可写的不同的命令字,并将该命令字的状态标识设置为对方可读;所述第一处理器和第二处理器从所述命令区中读取状态标识为自身可读的命令字中的命令,并将该命令字的状态标识设置为可写;所述第一处理器和第二处理器将自身对命令的执行结果写入所述反馈区中状态标识为可写的不同的命令字,并将该命令字的状态标识设置为对方可读;所述第一处理器和第二处理器从所述反馈区读取状态标识为自身可读的命令字中的命令执行结果,并设置该命令字的状态标识为可写。2、根据权利要求1所述的方法,其特征在于,所述第一处理器和第二处理器将指示对方操作的命令写入所述命令区中状态标识为可写的不同的命令字后,该方法还包^l舌所述第一处理器和第二处理器通知对方从所述命令区读取命令;所述第一处理器和第二处理器从所述命令区中读取状态标识为自身可读的命令字中的命令后,该方法还包括所述第一处理器和第二处理器通知对方已从所述命令区读取命令。3、根据权利要求1所述的方法,其特征在于,所述第一处理器和第二处理器将自身对命令的执行结果写入所述反馈区中状态标识为可写的不同的命令字后,该方法还包括所述第一处理器和第二处理器通知对方从所述反馈区读取命令执行结果。4、根据权利要求1所述的方法,其特征在于,当所述命令区或反馈区中不存在状态标识为可写的命令字时,该方法还包括将所述命令区或反馈区的命令字中存储时间最长的命令删除,并将该命令字的状态标识设置为可写。5、一种实现处理器相互通讯的装置,其特征在于,所述装置包括内存划分单元和两个处理器;所述内存划分单元,用于将所述两个处理器共享的内存划分为命令区和反馈区;所述处理器,用于将指示对端处理器操作的命令写入所述命令区中状态标识为可写的命令字,并将该命令字的状态标识设置为对端处理器可读;从所述命令区中读取状态标识为自身可读的命令字中的命令,并将该命令字的状态标识设置为可写;将对所述读取到的命令的执行结果写入所述反馈区中状态标识为可写的命令字,并将该命令字的状态标识设置为对端处理器可读;从所述反馈区读取状态标识为自身可读的命令字中的命令执行结果,并设置该命令字的状态标识为可写。6、根据权利要求5所述的装置,其特征在于,所述处理器包括写入命令单元,用于将指示对端处理器操作的命令写入所述命令区中状态标识为可写的命令字,并将该命令字的状态标识设置为对端处理器可读;的命令,并将该命令字的状态标识设置为可写;写入执行结果单元,用于将对所述读取到的命令的执行结果写入所述反馈区中状态标识为可写的命令字,并将该命令字的状态标识设置为对端处理器可读;读取执行结果单元,用于从所述反馈区读取状态标识为自身可读的命令字中的命令执行结果,并设置该命令字的状态标识为可写。7、根据权利要求6所述的装置,其特征在于,所述处理器还包括读取命令通知单元,用于通知对端处理器从所述命令区读取命令。8、根据权利要求6所述的装置,其特征在于,所述处理器还包括命令已读通知单元,用于通知对端处理器已从所述命令区读取命令。9、根据权利要求6所述的装置,其特征在于,所述处理器还包括读取执行结果通知单元,用于通知对端处理器从所述反馈区读取命令执行结果。10、根据权利要求6所述的装置,其特征在于,所述处理器还包括清除单元,用于当所述命令区或反馈区中不存在状态标识为可写的命令字时,将所述命令区或反馈区的命令字中存储时间最长的数据删除,并将该命令字的状态标识设置为可写。全文摘要本发明公开了一种实现处理器相互通讯的方法及装置,预先将第一处理器和第二处理器共享的内存划分为命令区和反馈区,所述第一处理器和第二处理器将指示对方操作的命令写入所述命令区中状态标识为可写的不同命令字,并将该命令字的状态标识设置为对方可读;所述第一处理器和第二处理器从所述命令区中读取状态标识为自身可读的命令字中的命令,并将该命令字的状态标识设置为可写;所述第一处理器和第二处理器将自身对命令的执行结果写入所述反馈区中状态标识为可写的不同的命令字,并将该命令字的状态标识设置为对方可读;所述第一处理器和第二处理器从所述反馈区读取状态标识为自身可读的命令字中的命令执行结果,并设置该命令字的状态标识为可写。文档编号G06F15/16GK101359321SQ20081011929公开日2009年2月4日申请日期2008年9月2日优先权日2008年9月2日发明者华张申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1