CN113704006A - 通信方法、装置、电子设备、存储介质及片上系统 - Google Patents
通信方法、装置、电子设备、存储介质及片上系统 Download PDFInfo
- Publication number
- CN113704006A CN113704006A CN202111013376.2A CN202111013376A CN113704006A CN 113704006 A CN113704006 A CN 113704006A CN 202111013376 A CN202111013376 A CN 202111013376A CN 113704006 A CN113704006 A CN 113704006A
- Authority
- CN
- China
- Prior art keywords
- communication
- functional module
- information
- task
- queue
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 440
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000004044 response Effects 0.000 claims abstract description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 241001504505 Troglodytes troglodytes Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供了一种通信方法、装置、电子设备、存储介质及片上系统。其中,本公开首先响应于第一功能模块针对与第二功能模块之间的第一通信任务发送的第一通信信息,向所述第一功能模块发送所述第一通信信息对应的第一通信就绪信息,以使所述第一功能模块向所述第二功能模块发送针对第二通信任务的第二通信信息;然后,将所述第一通信信息发送给所述第二功能模块,以使所述第二功能模块执行所述第一通信任务对应的接收准备工作;其中,所述第一通信任务和所述第二通信任务之间具有通信依赖关系;第一通信就绪信息用于表示第一通信任务对应的接收准备工作完成。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种通信方法、装置、电子设备、存储介质及片上系统。
背景技术
片上系统(System-on-a-chip,SoC)指在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术,SoC通常集成有多个功能模块,这些功能模块是预先被设计好的电路功能模块,如知识产权核(Intellectual Property core,IP核)。
在对SoC进行功能模块的集成时,会对候选的功能模块进行性能评估,筛选出合适的功能模块进行集成,然而,各个功能模块的评估环境是孤立的,通常仅针对单个功能模块进行评估,不能评估多种功能模块共同运行下的性能,在集成到SoC级别后,由于不同类型的功能模块在设计时会对自身携带的端口协议做出修改或约束,使得不同功能模块之间进行通信时,双方功能模块需要遵循对方功能模块端口协议的特殊设计,比如,在两功能模块进行通信时,两个相互独立的通信任务受到功能模块的端口约束的影响,需要在一个通信任务完成后才能开始下一通信任务,导致功能模块在通信时的效率较低。
发明内容
本公开实施例至少提供一种通信方法、装置、电子设备、存储介质及片上系统。
第一方面,本公开实施例提供了一种通信方法,包括:
响应于第一功能模块针对与第二功能模块之间的第一通信任务发送的第一通信信息,向所述第一功能模块发送所述第一通信信息对应的第一通信就绪信息,以使所述第一功能模块向所述第二功能模块发送针对第二通信任务的第二通信信息;
将所述第一通信信息发送给所述第二功能模块,以使所述第二功能模块执行所述第一通信任务对应的接收准备工作;其中,所述第一通信任务和所述第二通信任务之间具有通信依赖关系;第一通信就绪信息用于表示第一通信任务对应的接收准备工作完成。
该方面,通过在检测到第一通信信息后不等待第二功能模块进行接收准备工作,直接向第一功能模块发送第一通信就绪信息,使得第一功能模块直接发送第二通信任务的第二通信信息,将第一通信任务与第二通信任务之间的通信依赖关系进行解耦,使两个通信任务能够并行执行,通信效率较高。
在一种可能的实施方式中,所述将所述第一通信信息发送给所述第二功能模块,包括:
将所述第一通信信息存储至通信队列中;
在检测到所述通信队列从空载转换至非空的情况下,向所述第二功能模块发送队列可读信息,以使所述第二功能模块读取所述通信队列中存储的通信信息。
该实施方式,利用通信队列存储第一通信信息,并利用队列可读信息通知第二功能模块读取通信队列中存储的通信信息,借由队列先进先出的特性,能够保证第二功能模块在读取通信信息时的时序正确。
在一种可能的实施方式中,所述方法还包括:
在接收到所述第二功能模块在完成第一通信任务对应的接收准备工作后发送的第二通信就绪信息的情况下,将所述第一通信信息从所述通信队列中删除。
该实施方式,通过在接收到第二功能模块发送的第一通信就绪信息后,将通信队列中的第一通信信息删除,使得第二功能模块能够读取到通信队列中下一个存储的通信信息,并为下一次通信任务做准备,有效保证了通信顺序的准确性。
在一种可能的实施方式中,所述方法还包括:
在检测到所述通信队列从非空转换至空载的情况下,向所述第二功能模块发送队列不可读信息,以使所述第二功能模块停止读取所述通信队列中存储的通信信息。
该实施方式,通过在通信队列为空的情况下向第二模块发出队列不可读信息,使得第二功能模块停止读取通信队列中的信息,能够减少第二功能模块对通信队列的无效读取,从而降低计算资源的消耗。
在一种可能的实施方式中,所述方法还包括:
在检测到所述通信队列转换至满载的情况下,向所述第一功能模块发送队列不可写信息,以使所述第一功能模块停止发送新的第一通信信息。
该实施方式,通过在通信队列满载时禁止第一功能模块发送新的第一通信信息,能够减少因通信队列满载导致的通信信息溢出或丢失。
在一种可能的实施方式中,所述第一通信任务包括写地址任务;所述第二通信任务包括写数据任务;第一通信信息包括写地址有效信号;所述第一通信就绪信息包括写地址就绪信号;所述第二通信信息包括写数据有效信号。
该实施方式,能够适用于写地址任务及写数据任务,使得写数据任务与写地址任务能够不受功能模块的限制并行执行,效率较高。
第二方面,本公开实施例还提供一种片上系统,包括多个功能模块以及至少一个通信模块;
所述通信模块,用于执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第三方面,本公开实施例还提供一种通信装置,包括:
响应模块,用于响应于第一功能模块针对与第二功能模块之间的第一通信任务发送的第一通信信息,向所述第一功能模块发送所述第一通信信息对应的第一通信就绪信息,以使所述第一功能模块向所述第二功能模块发送针对第二通信任务的第二通信信息;
发送模块,用于将所述第一通信信息发送给所述第二功能模块,以使所述第二功能模块执行所述第一通信任务对应的接收准备工作;其中,所述第一通信任务和所述第二通信任务之间具有通信依赖关系;第一通信就绪信息用于表示第一通信任务对应的接收准备工作完成。
第四方面,本公开实施例还提供一种芯片,包括如上述第二方面所述的片上系统。
第五方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤;或者,包含如第四方面所述的芯片。
第六方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述通信装置、片上系统、芯片、电子设备、及计算机可读存储介质的效果描述参见通信方法的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种片上系统的示意图;
图2示出了本公开实施例中通信模块的示意图;
图3示出了本公开实施例所提供的一种通信方法的流程图;
图4示出了本公开实施例中执行第一通信任务及第二通信任务的时序图;
图5示出了本公开实施例所提供的一种通信装置的示意图;
图6示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
针对现有技术中,不同类型功能模块由于端口协议限制导致通信时效率低的缺陷,本公开提供了一种通信方法、装置、电子设备、存储介质及片上系统,本公开首先响应于第一功能模块针对与第二功能模块之间的第一通信任务发送的第一通信信息,向所述第一功能模块发送所述第一通信信息对应的第一通信就绪信息,以使所述第一功能模块向所述第二功能模块发送针对第二通信任务的第二通信信息,然后,将所述第一通信信息发送给所述第二功能模块,以使所述第二功能模块执行所述第一通信任务对应的接收准备工作,其中,所述第一通信任务和所述第二通信任务之间具有通信依赖关系,第一通信就绪信息用于表示第一通信任务对应的接收准备工作完成。本公开通过在检测到第一通信信息后不等待第二功能模块进行接收准备工作,直接向第一功能模块发送第一通信就绪信息,使得第一功能模块直接发送第二通信任务的第二通信信息,将第一通信任务与第二通信任务之间的通信依赖关系进行解耦,使两个通信任务能够并行执行,通信效率较高。
下面通过具体的实施例,对本公开实施例公开的通信方法、装置、电子设备、存储介质及片上系统进行说明。
如图1所示,本公开实施例公开了一种片上系统,其中,片上系统(System-on-a-chip,SoC)指在单个芯片上集成一个完整的系统,该片上系统包括多个功能模块以及至少一个通信模块,该功能模块可以为知识产权核(Intellectual Property core,IP核),通信模块可以以外包装的形式部署于功能模块之上,一个通信模块可以对应一个功能模块,多个功能模块之间可以通过总线进行通信,部署有通信模块的功能模块能够与其对应的通信模块进行直接通信,通信模块能够与其他功能模块之间通过总线通信,从而实现功能模块通过其对应的通信模块与其他功能模块之间进行通信,通信模块可以用于执行本公开实施例提供的通信方法。
示例性的,在图1所提供的片上系统中,第一功能模块部署有通信模块,第一功能模块可以与通信模块之间直接通信,通信模块可以与第二功能模块之间通过总线通信,第一功能模块与第二功能模块之间可以通过总线通信。
上述功能模块之间可以通过总线基于握手机制来实现数据或控制信号的传输,类似的,第一功能模块可以直接将握手信号发送至通信模块,然后通过通信模块及总线与第二功能模块进行通信,总线可以包括多个通信通道,比如,在Advanced eXtensibleInterface(AXI)总线协议下,可以包括5个独立的通道,分别为写地址、写数据、写响应、读地址、读数据通道,5条通道相互独立,并且各个通道分别使用握手机制来实现信息的传递,该握手机制可以为有效/就绪(VALID/READY)机制,在一次握手中,发送方置高VALID信号表示发送方已经将数据,地址或者控制信息已经就绪,并保持于总线上;接收方置高READY信号表示接收方已经做好接收的接收准备工作,在READY和VALID信号都置高的情况下,接收方即可从总线上读取发送方准备好的数据、地址或控制信息,写地址任务可以通过写地址通道执行,相似的,写数据任务可以通过写数据通道执行。
在AXI总线协议下,写操作可以包括写地址任务、写数据任务、响应任务组成,可以分别通过写地址通道、写数据通道、响应通道分别进行握手实现。写操作中,第一功能模块会先由写地址通道发出写地址请求,由写数据通道发出写数据有效的信号,等待第二功能模块准备好并发出对应通道的READY信号之后,第二功能模块开始读取总线上的待传输数据,完成一次传输。而由于地址和数据都是由第一功能模块向第二功能模块发出的,这两个通道之间没有先后顺序的约束。第二功能模块接收一次的传输后会由响应通道向第一功能模块发送接收有效信号BVALID,第一功能模块可以在通信任务开始时就向第二功能模块发出响应任务的响应就绪信号BREADY,在接收到BVALID信号后,在响应通道上的BREADY信号和BVALID信号都处于置高状态,此时该次写操作正式执行完成。
在功能模块的开发过程中,通常是基于孤立的运行环境展开进行的,功能模块的性能评估也是基于孤立的运行环境得到的,并不考虑多种类型的功能模块组成的片上系统的带宽、通信延迟等因素,在片上系统的环境下,需要基于集成的各个功能模块的端口协议,将各个功能模块互联起来,形成通信网络,使得各个功能模块自身端口协议上的限制会影响到整个片上系统的通信网络,比如,在如AXI等协议下,写地址、写数据两个通道的通信任务互相独立,然而,由于功能模块自身端口设计的原因,会导致功能模块需要在接收到写地址通信任务的就绪信息后才能开始写数据通信任务,导致通信消耗的时间增加,从而影响整个通信网络上的通信效率。
如图3所示,为了解决上述技术问题,本公开实施例公开了一种通信方法,该方法可以应用于具有计算能力的电子设备上,如上述片上系统中的通信模块等。具体的,该通信方法可以包括如下步骤:
S310、响应于第一功能模块针对与第二功能模块之间的第一通信任务发送的第一通信信息,向所述第一功能模块发送所述第一通信信息对应的第一通信就绪信息,以使所述第一功能模块向所述第二功能模块发送针对第二通信任务的第二通信信息。
其中,所述第一通信任务和所述第二通信任务之间具有通信依赖关系。
上述第一功能模块与第二功能模块可以为知识产权核,第一通信任务可以为第一功能模块向第二功能模块发送数据或信号的任务,如写地址任务,通过握手机制实现,第一通信信息可以为第一通信任务中的VALID信号。
在一种可能的实施方式中,通信模块可以拦截第一功能模块向第二功能模块发送的第一通信信息,以及第二功能模块向第一功能模块向第一功能模块发送的第二通信信息。
示例性的,在第一功能模块开始执行第一通信任务,准备待传输的地址数据,并将地址数据保存在总线上后,可以向第二通信模块发送第一通信信息,此时通信模块检测到第一通信信息后将其拦截,并向第一通信模块发送第二通信信息。
在通信模块检测到第一功能模块向第二功能模块发送的第一通信信息的情况下,可以生成第一通信信息对应的第一通信就绪信息,并将其发送至第一功能模块,使第一功能模块判断第一通信任务完成,从而开始执行第二通信任务。进一步的,由于第一功能模块已经判断当前的第一通信任务已经完成,可能会开始执行新的第一功能任务,但此时第二功能模块可能仍在执行第一通信任务,无法立刻执行新的第一通信任务,因此,可以通过通信模块将第一通信信息暂存起来,再逐个提供给第二功能模块,使第二功能模块逐步完成各个第一通信任务。
其中,在第一通信信息为VALID信号的情况下,第一通信就绪信息可以为与其对应的READY信号。在第一功能模块准备好写地址任务所需的地址数据时,即可将VALID信号置高,向第二功能模块发送第一通信信息。
在进行一次数据通信时,除了写地址任务,通常还需要进行写数据任务,写地址任务是传输地址信息的任务,写数据任务则为传输数据的任务。在第二功能模块接收到写地址任务及写数据任务发送的信息后,根据接收到的信息将指定的数据写入至对应的地址处。通常在AXI等常用总线协议下,写数据任务和写地址任务之间是相互独立的,可以在同一时间并行执行,一任务是否完成对另一任务的执行不存在影响,然而,一些特殊类型的功能模块所设计的端口行为使得写数据任务与写地址任务之间产生了通信依赖关系,比如,需要在第一功能模块检测到第二功能模块的第一通信就绪信息,第一功能模块才能够开始执行第二通信任务,也即,只有第一功能模块检测到了写地址任务对应的READY信号,才能够向第二通信模块发送写数据任务的VALID信号,使得两次通信任务不能够并行执行,通信任务消耗的时间增加。
为了解决上述因功能模块自身限制使第一通信任务和第二通信任务之间具有通信依赖关系引起的通信效率较低的问题,本公开实施例通过通信模块,在检测到第一通信信息的情况下,直接向第一功能模块发送第一通信信息,使得第一功能模块能够在第一通信任务的接收准备工作未完成时,就发送第二通信信息,例如针对第二通信任务的VALID信号,开始第二通信任务,从而将两次通信任务的通信依赖关系解耦。
其中,上述向第一功能模块发送的第一通信就绪信息可以为通信模块生成的READY信号,而并非是第二功能模块生成并发送的,用于表示第二功能模块针对第一通信任务的接收准备工作完成,在第一功能模块检测到第一通信信息对应的READY信号后,会判定第一通信任务的接收准备工作完成,此时满足第二通信任务的产生条件,满足两者之间的通信依赖关系,即可向第二功能模块发送第二通信任务的第二通信信息,从而开始执行第二通信任务。
S320、将所述第一通信信息发送给所述第二功能模块,以使所述第二功能模块执行所述第一通信任务对应的接收准备工作;
其中,第一通信就绪信息用于表示第一通信任务对应的接收准备工作完成。
本步骤中,第二功能模块在所述接收准备工作执行完成后可以获取所述第一功能模块存储在总线上的通信数据。
在检测到第一通信信息的情况下,可以将第一通信信息缓存下来,然后将第一通信信息发送给第二功能模块,这里,将第一通信信息发送给第二功能模块的步骤可以与向第一功能模块发送第一通信信息对应的第一通信就绪信息的步骤同步执行,也可以异步执行。通过将第一通信信息发送给第二功能模块,可以使第二功能模块开始执行第一通信任务对应的接收准备工作,并在接收准备工作执行完毕后发送第二通信信息,当第一通信信息与第二通信信息的信号都置高后,从总线上读取第一功能模块写入的地址数据,最终完成第一通信任务。
在第二功能模块执行的第一通信任务对应的接收准备工作完成时,即可置高与接收到的VALID信号对应READY信号,也即第二通信就绪信息,在VALID信号与READY信号同时置高时,即可通过总线进行第一通信任务的数据传输,完成写地址任务。
参见图4所示,为实施例中执行第一通信任务及第二通信任务的时序图,在第一通信任务的执行过程中,第一功能模块在准备好写地址的相关数据后,将其存储至总线上,并发送写地址的VALID信号,通信模块在检测到写地址的VALID信号后立即向第一功能模块发送写地址的READY信号,使得第一功能模块判定此时满足了第一通信任务及第二通信任务之间的通信依赖关系,进而发送写数据的VALID信号,而第二功能模块执行完毕第一通信任务的接收准备工作,并发送写地址的READY信号,此时第二功能模块开始真正读取总线上存储的写地址相关的数据,完成第一通信任务,然而写数据的第二通信任务已经开始执行了一段时间,第二通信任务能够在第二功能模块发送写地址的READY信号之前就开始执行,而并非等到接收有第二功能模块发送的READY信号后再执行,能够有效降低执行第一通信任务及第二通信任务的总时间。
这样,通过在检测到第一通信信息后不等待第二功能模块进行接收准备工作,直接向第一功能模块发送第一通信就绪信息,使得第一功能模块直接发送第二通信任务的第二通信信息,将第一通信任务与第二通信任务之间的通信依赖关系进行解耦,使两个通信任务能够并行执行,通信效率较高。
由于上述通信模块已经事先将第一通信任务的第一通信就绪信息发送至第一功能模块,若第二功能模块在接收准备工作完成后生成的第二通信就绪信息也发送至第一功能模块,可能会导致第一通信任务的混乱,再者,若在执行当前第一通信任务的过程中,第一功能模块执行了新的第一通信任务,发送了新的写地址的VALID信号,而第二功能模块并不直接接收第一功能模块的VALID信号,而是异步接收VALID信号,容易造成通信任务在时序上的混乱,不同组通信任务之间的VALID信号与READY信号错位,导致通信任务出现错误。
为了解决上述问题,本公开实施例提供了一种可能的实施方式,可以在通信模块中部署通信队列,并通过通信队列将第一通信信息发送给第二功能模块。
如图2所示,为本公开实施例中通信模块的示意图,通信模块内可以包含通信队列,通信队列可以为先进先出(First Input First Output,FIFO)存储器,具有先写入先读出的特性,FIFO能够响应第一功能模块的写入使能信号(wren),从而实现第一功能模块对FIFO进行写入数据(wrdata)操作,在FIFO满载时可以向第一功能模块发送队列不可写信息(满载信号,wrfull),FIFO还能够响应第二功能模块的读取使能信号(rden),实现第二功能模块读取FIFO中的数据,并在FIFO为空的情况下向第二功能模块发送队列不可读信息(读空信号,rdempty)。
在上述通信模块的基础上,可以通过以下步骤将第一通信信息发送给第二功能模块:
将所述第一通信信息存储至通信队列中;
在检测到所述通信队列从空载转换至非空的情况下,向所述第二功能模块发送队列可读信息,以使所述第二功能模块读取所述通信队列中存储的通信信息。
上述通信队列可以为FIFO存储器,具有先入先出的特性,在第二功能模块从通信队列中读取通信信息时,能够按照通信队列的写入顺序进行读取,从而保证通信任务的完备性。
示例性的,FIFO存储器可以向第二功能模块发送队列可读信息,表示第二功能模块可以读取通信队列中的数据,然后响应第二功能模块的读取使能信号,使第二功能模块读取FIFO存储器中的最先写入的数据,从而开始进行接收准备工作,并在完成后发送第二通信信息,开始读取发送到总线中的数据。
第二功能模块在完成第一通信任务对应的接收准备工作后,会发送第二通信就绪信息,上述第二通信就绪信息为第一通信任务对应的READY信号,由于通信模块已经将第一通信就绪信息发送至第一功能模块,为了保证通信任务的完备性,可以通过通信模块将第二功能模块发送的第二通信就绪信息拦截,在第二功能模块从该队列中读取第一通信信息时,可以保持读取的第一通信信息在队列首的状态,在接收到第二功能模块在完成第一通信任务对应的接收准备工作后发送的第二通信就绪信息的情况下,再将第一通信信息从通信队列中删除,从而防止在当前的第一通信任务未完成的情况下读取新的第一通信信息。
上述通信队列存在一定的深度,深度可以指通信队列能够存储的N位数据的个数的最大值,该深度可以根据通信任务需要存储的数据量设定。由于通信队列的深度的存在,在通信队列满载的情况下,无法再存储新的通信信息,因此可以在通信队列满载的情况下,向第一功能模块发送队列不可写信息,表示通信队列处于不可写入的状态,以使第一功能模块停止发送新的第一通信信息,从而避免通信任务的丢失,或与当前的通信任务发生冲突。
示例性的,通信模块可以以预设时间周期对通信队列中存储的通信信息数量进行检测,在检测到通信队列满载时,通信模块可以向第一功能模块发送队列不可写信息,在接收到不可写信息后第一功能模块可以不再像通信模块发送新的通信信息。
一种可能的实施方式中,不可写信息可以为使能信号,在通信队列满载时置高,在通信队列不满载时置低,第一功能模块在检测到不可写信息信号置高时可以暂停写入新的通信信息,在该信号置低后,或者接收到继续发送信号后,可以开始执行新的第一通信任务。
另外,在检测到通信队列中存储的数据为空的情况下,由于读取请求的原因,第二功能模块仍会尝试读取通信队列中的数据,造成计算资源的浪费,为了解决上述问题,可以在通信队列为空的情况下,向第二功能模块发送队列不可读信息,以使第二功能模块停止读取通信队列中存储的通信信息。
需要注意的是,虽然本公开实施例中的第一通信任务为写地址任务、第二通信任务为写数据任务,但本领域技术人员可以理解,任意两个互相独立、因功能模块的设计导致存在通信依赖关系的通信任务都可以实施上述通信方法,
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
对应于上述通信方法,本公开还公开一种通信装置,该装置中的各个模块能够实现上述各个实施例的通信方法中的每个步骤,并且能够取得相同的有益效果,因此,对于相同的部分这里不再进行赘述。具体地,如图5所示,通信装置包括:
响应模块510,用于响应于第一功能模块针对与第二功能模块之间的第一通信任务发送的第一通信信息,向所述第一功能模块发送所述第一通信信息对应的第一通信就绪信息,以使所述第一功能模块向所述第二功能模块发送针对第二通信任务的第二通信信息;;
发送模块520,用于将所述第一通信信息发送给所述第二功能模块,以使所述第二功能模块执行所述第一通信任务对应的接收准备工作;其中,所述第一通信任务和所述第二通信任务之间具有通信依赖关系;第一通信就绪信息用于表示第一通信任务对应的接收准备工作完成。
一种可能的实施方式中,所述发送模块520具体用于:
将所述第一通信信息存储至通信队列中;
在检测到所述通信队列从空载转换至非空的情况下,向所述第二功能模块发送读取请求,以使所述第二功能模块读取所述通信队列中存储的通信信息。
一种可能的实施方式中,所述发送模块520还用于:
在接收到所述第二功能模块在完成第一通信任务对应的接收准备工作后发送的第二通信就绪信息的情况下,将所述第一通信信息从所述通信队列中删除。
一种可能的实施方式中,所述发送模块520还用于:
在检测到所述通信队列从非空转换至空载的情况下,向所述第二功能模块发送队列不可读信息,以使所述第二功能模块停止读取所述通信队列中存储的通信信息。
一种可能的实施方式中,所述发送模块520还用于:
在检测到所述通信队列转换至满载的情况下,向所述第一功能模块发送队列不可写信息,以使所述第一功能模块停止发送新的第一通信信息。
一种可能的实施方式中,所述第一通信任务包括写地址任务;所述第二通信任务包括写数据任务;第一通信信息包括写地址有效信号;所述第一通信就绪信息包括写地址就绪信号;所述第二通信信息包括写数据有效信号。
本公开实施例还提供一种芯片,所述芯片包含上述片上系统。
对应于上述通信方法,本公开实施例还提供了一种电子设备600,如图6所示,为本公开实施例提供的电子设备600结构示意图,包括:
处理器61、存储器62、和总线63;存储器62用于存储执行指令,包括内存621和外部存储器622,或者包含上述部署有片上系统的芯片;这里的内存621也称内存储器,用于暂时存放处理器61中的运算数据,以及与硬盘等外部存储器622交换的数据,处理器61通过内存621与外部存储器622进行数据交换,当电子设备600运行时,处理器61与存储器62之间通过总线63通信,使得处理器61执行以下指令:
响应于第一功能模块针对与第二功能模块之间的第一通信任务发送的第一通信信息,向所述第一功能模块发送所述第一通信信息对应的第一通信就绪信息,以使所述第一功能模块向所述第二功能模块发送针对第二通信任务的第二通信信息;
将所述第一通信信息发送给所述第二功能模块,以使所述第二功能模块执行所述第一通信任务对应的接收准备工作;其中,所述第一通信任务和所述第二通信任务之间具有通信依赖关系;第一通信就绪信息用于表示第一通信任务对应的接收准备工作完成。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的通信方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供了一种计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述通信方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种通信方法,其特征在于,包括:
响应于第一功能模块针对与第二功能模块之间的第一通信任务发送的第一通信信息,向所述第一功能模块发送所述第一通信信息对应的第一通信就绪信息,以使所述第一功能模块向所述第二功能模块发送针对第二通信任务的第二通信信息;
将所述第一通信信息发送给所述第二功能模块,以使所述第二功能模块执行所述第一通信任务对应的接收准备工作;
其中,所述第一通信任务和所述第二通信任务之间具有通信依赖关系;第一通信就绪信息用于表示第一通信任务对应的接收准备工作完成。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一通信信息发送给所述第二功能模块,包括:
将所述第一通信信息存储至通信队列中;
在检测到所述通信队列从空载转换至非空的情况下,向所述第二功能模块发送队列可读信息,以使所述第二功能模块读取所述通信队列中存储的通信信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在接收到所述第二功能模块在完成第一通信任务对应的接收准备工作后发送的第二通信就绪信息的情况下,将所述第一通信信息从所述通信队列中删除。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
在检测到所述通信队列从非空转换至空载的情况下,向所述第二功能模块发送队列不可读信息,以使所述第二功能模块停止读取所述通信队列中存储的通信信息。
5.根据权利要求2至4任一项所述的方法,其特征在于,所述方法还包括:
在检测到所述通信队列转换至满载的情况下,向所述第一功能模块发送队列不可写信息,以使所述第一功能模块停止发送新的第一通信信息。
6.根据权利要求1至5任一所述的方法,其特征在于,所述第一通信任务包括写地址任务;所述第二通信任务包括写数据任务;第一通信信息包括写地址有效信号;所述第一通信就绪信息包括写地址就绪信号;所述第二通信信息包括写数据有效信号。
7.一种片上系统,其特征在于,包括多个功能模块以及至少一个通信模块;
所述通信模块,用于执行如权利要求1至权利要求6中任一所述的通信方法。
8.一种芯片,其特征在于,包括:如权利要求7所述的片上系统。
9.一种电子设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述处理器执行如权利要求1至6任一项所述的通信方法的步骤;或者,包含如权利要求8所述的芯片。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机设备运行时,所述计算机设备执行如权利要求1至6任意一项所述的通信方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111013376.2A CN113704006B (zh) | 2021-08-31 | 2021-08-31 | 通信方法、装置、电子设备、存储介质及片上系统 |
PCT/CN2022/114499 WO2023030128A1 (zh) | 2021-08-31 | 2022-08-24 | 通信方法、装置、电子设备、存储介质及片上系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111013376.2A CN113704006B (zh) | 2021-08-31 | 2021-08-31 | 通信方法、装置、电子设备、存储介质及片上系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704006A true CN113704006A (zh) | 2021-11-26 |
CN113704006B CN113704006B (zh) | 2023-11-03 |
Family
ID=78658095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111013376.2A Active CN113704006B (zh) | 2021-08-31 | 2021-08-31 | 通信方法、装置、电子设备、存储介质及片上系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113704006B (zh) |
WO (1) | WO2023030128A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023030128A1 (zh) * | 2021-08-31 | 2023-03-09 | 上海商汤智能科技有限公司 | 通信方法、装置、电子设备、存储介质及片上系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7219156B1 (en) * | 1999-09-29 | 2007-05-15 | Silicon Graphics, Inc. | System and method for a hierarchical system management architecture of a highly scalable computing system |
CN110297722A (zh) * | 2019-06-28 | 2019-10-01 | Oppo广东移动通信有限公司 | 线程任务通信方法及相关产品 |
CN110830276A (zh) * | 2018-08-09 | 2020-02-21 | 通号城市轨道交通技术有限公司 | 一种基于冷冗余机制的EtherCAT通信系统及方法 |
CN111026697A (zh) * | 2019-11-21 | 2020-04-17 | Oppo广东移动通信有限公司 | 核间通信方法、系统、电子器件以及电子设备 |
CN111586335A (zh) * | 2020-04-29 | 2020-08-25 | 从法信息科技有限公司 | 一种远程会见方法、装置、系统和电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090170557A1 (en) * | 2006-10-02 | 2009-07-02 | Prashant Chauhan | Systems and methods for enabling communication features utilizing various bearer media |
CN103139509B (zh) * | 2013-02-26 | 2016-06-15 | 西安创芯科技有限责任公司 | 一种基于axi总线协议的osd控制显示方法及装置 |
CN104281548A (zh) * | 2013-07-03 | 2015-01-14 | 炬芯(珠海)科技有限公司 | 一种基于axi总线传输数据的方法、装置及系统 |
CN105005546B (zh) * | 2015-06-23 | 2018-01-30 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种内置交点队列的异步axi总线结构 |
CN113704006B (zh) * | 2021-08-31 | 2023-11-03 | 上海阵量智能科技有限公司 | 通信方法、装置、电子设备、存储介质及片上系统 |
-
2021
- 2021-08-31 CN CN202111013376.2A patent/CN113704006B/zh active Active
-
2022
- 2022-08-24 WO PCT/CN2022/114499 patent/WO2023030128A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7219156B1 (en) * | 1999-09-29 | 2007-05-15 | Silicon Graphics, Inc. | System and method for a hierarchical system management architecture of a highly scalable computing system |
CN110830276A (zh) * | 2018-08-09 | 2020-02-21 | 通号城市轨道交通技术有限公司 | 一种基于冷冗余机制的EtherCAT通信系统及方法 |
CN110297722A (zh) * | 2019-06-28 | 2019-10-01 | Oppo广东移动通信有限公司 | 线程任务通信方法及相关产品 |
CN111026697A (zh) * | 2019-11-21 | 2020-04-17 | Oppo广东移动通信有限公司 | 核间通信方法、系统、电子器件以及电子设备 |
CN111586335A (zh) * | 2020-04-29 | 2020-08-25 | 从法信息科技有限公司 | 一种远程会见方法、装置、系统和电子设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023030128A1 (zh) * | 2021-08-31 | 2023-03-09 | 上海商汤智能科技有限公司 | 通信方法、装置、电子设备、存储介质及片上系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023030128A1 (zh) | 2023-03-09 |
CN113704006B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110213143B (zh) | 一种1553b总线ip核及监视系统 | |
US8032809B2 (en) | Retransmission and delayed ACK timer management logic for TCP protocol | |
JP5533097B2 (ja) | 情報処理装置、画像形成装置及び情報処理プログラム | |
CN101506783B (zh) | 用于阻隔操作的条件式广播的方法和设备 | |
CN106095604A (zh) | 一种多核处理器的核间通信方法及装置 | |
EP2097828A2 (en) | Dmac to handle transfers of unknown lengths | |
CN110858188A (zh) | 具有分布式信箱结构的多处理器系统及其沟通方法 | |
CN111538694B (zh) | 一种用于网络接口支持多链接和重传的数据缓存方法 | |
CN113704006A (zh) | 通信方法、装置、电子设备、存储介质及片上系统 | |
AU2003234641A1 (en) | Inter-chip processor control plane | |
JP2004021351A (ja) | Icカード及びその制御方法 | |
CN117472815A (zh) | 一种axi协议下的存储模块转换接口及其转换方法 | |
CN109285580B (zh) | 数据预处理装置、方法及异步双端随机存取存储器系统 | |
CN116107774A (zh) | Io请求处理方法、装置、电子设备和存储介质 | |
CN112667538B (zh) | 一种获取网卡标识号方法、系统、设备以及介质 | |
US11169947B2 (en) | Data transmission system capable of transmitting a great amount of data | |
US7577560B2 (en) | Microcomputer logic development device | |
JP3536777B2 (ja) | 非同期系間データ転送回路及び非同期系間データ転送方法 | |
CN118427151B (zh) | 一种数据传输方法、装置、设备、介质和产品 | |
CN111641708A (zh) | Dsp芯片传输数据的方法和装置 | |
CN113852511A (zh) | 网络性能测试方法、装置及计算机可读存储介质 | |
KR100615694B1 (ko) | 복수개의 기능블럭을 제어하는 제어시스템 | |
CN116401990B (zh) | 处理中断事件的方法、装置、系统和存储介质 | |
US12063287B1 (en) | Methods, systems, and computer readable media for determining an internal time of a time-sensitive networking (TSN) network card | |
CN109086208B (zh) | 一种数据处理方法及系统 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40053983 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |