CN112765085A - 数据传输方法及相关装置 - Google Patents
数据传输方法及相关装置 Download PDFInfo
- Publication number
- CN112765085A CN112765085A CN202011608057.1A CN202011608057A CN112765085A CN 112765085 A CN112765085 A CN 112765085A CN 202011608057 A CN202011608057 A CN 202011608057A CN 112765085 A CN112765085 A CN 112765085A
- Authority
- CN
- China
- Prior art keywords
- address offset
- cache
- address
- buffer
- data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 230000005540 biological transmission Effects 0.000 title claims abstract description 95
- 239000000872 buffer Substances 0.000 claims abstract description 294
- 238000004891 communication Methods 0.000 claims abstract description 24
- 239000013256 coordination polymer Substances 0.000 claims abstract 38
- 238000011144 upstream manufacturing Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 2
- 230000003993 interaction Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 12
- 230000009286 beneficial effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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/547—Remote procedure calls [RPC]; Web services
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例公开了一种数据传输方法及相关装置。该数据传输方法中,针对上行传输来说,终端设备利用通信处理器CP获取应用处理器AP写入上行数据通道中的地址偏移,并根据该地址偏移从存储上行数据的缓存中读取上行数据。针对下行传输来说,终端设备利用AP获取CP写入下行数据通道中的地址偏移,并根据该地址偏移从存储下行数据的缓存中读取下行数据。可见,本申请实施例所述的数据传输方法在数据通道中传递是缓存的地址偏移,避免了数据的拷贝,从而提高了AP与CP之间的数据交互效率,有利于降低终端设备的功耗。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据传输方法及相关装置。
背景技术
物联网(Internet of things,IoT)是在互联网基础上延伸和扩展的网络,是将各种信息传感设备与互联网结合起来而形成的一个巨大网络,可实现在任何时间、任何地点,人、机、物的互联互通。物联网终端单芯片方案中主要由应用处理器(applicationprocessor,AP)和通信处理器(communication processor,CP)的架构实现。目前,AP与CP之间的通信主要通过AP与CP之间进行数据拷贝来实现,该过程中需要进行大量的数据搬移和存储,导致AP与CP之间数据交互效率低,终端设备功耗较大。
发明内容
本申请实施例提供一种数据传输方法及相关装置,可提高AP与CP之间的数据交互效率,有利于降低终端设备的功耗。
第一方面,本申请实施例提供了一种数据传输方法,所述方法应用于终端设备,所述终端设备包括应用处理器AP和通信处理器CP,所述方法包括:
所述终端设备利用所述CP获取所述AP写入上行数据通道中的地址偏移,所述地址偏移是存储上行数据的缓存的首地址相对于内存首地址的偏移;
所述终端设备利用所述CP,根据所述地址偏移从存储上行数据的缓存中读取所述上行数据。
一种实施方式中,所述方法还包括:所述终端设备利用所述AP将所述地址偏移写入到上行数据通道中,并向所述CP发送中断通知;
所述终端设备在所述CP接收到所述中断通知时,执行所述的终端设备利用所述CP获取所述AP写入上行数据通道中的地址偏移的步骤。
一种实施方式中,所述方法还包括:所述终端设备利用所述AP,配置一个或多个用于存储上行数据的缓存;以及利用所述AP将所述上行数据存储到配置的一个或多个缓存中。
一种实施方式中,所述终端设备利用所述AP,配置一个或多个用于存储上行数据的缓存,包括:所述终端设备利用所述AP从上行空闲缓存数组中确定一个或多个地址偏移,所述上行空闲缓存数组用于存储N个空闲缓存中每一个空闲缓存的首地址相对于内存首地址的地址偏移,所述N为正整数;
确定的一个或多个地址偏移所对应的空闲缓存,作为配置的用于存储上行数据的缓存。
一种实施方式中,所述终端设备利用所述CP,根据所述地址偏移从所述存储上行数据的缓存中读取上行数据之后,所述方法还包括:所述终端设备利用所述CP发送读取的上行数据,以及释放已发送的上行数据的缓存,并将已发送的上行数据的缓存的地址偏移写入到所述上行空闲缓存数组。
一种实施方式中,所述上行空闲缓存数组中各地址偏移对应的空闲缓存中,部分空闲缓存的大小不同。
一种实施方式中,所述方法还包括:所述终端设备配置所述AP与所述CP之间的多个通道,所述多个通道包括所述上行数据通道。
一种实施方式中,存储上行数据的缓存中还包括串链的缓存的地址偏移;所述终端设备利用所述CP,根据所述地址偏移从存储上行数据的缓存中读取所述上行数据,包括:
所述终端设备利用所述CP,从所述存储上行数据的缓存中读取获取的地址偏移的缓存中的上行数据,并从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的上行数据。
第二方面,本申请实施例还提供了一种数据传输方法,所述方法应用于终端设备,所述终端设备包括应用处理器AP和通信处理器CP,所述方法包括:
所述终端设备利用所述AP获取所述CP写入下行数据通道中的地址偏移,所述地址偏移是存储下行数据的缓存的首地址相对于内存首地址的偏移;
所述终端设备利用所述AP,根据所述地址偏移从存储下行数据的缓存中读取所述下行数据。
一种实施方式中,所述方法还包括:所述终端设备利用所述CP将所述地址偏移写入到下行数据通道中,并向所述AP发送中断通知;
所述终端设备在所述AP接收到所述中断通知时,执行所述的终端设备利用所述AP获取所述CP写入下行数据通道中的地址偏移的步骤。
一种实施方式中,所述方法还包括:所述终端设备利用所述CP,配置一个或多个用于存储下行数据的缓存;以及利用所述CP将所述下行数据存储到配置的一个或多个缓存中。
一种实施方式中,所述终端设备利用所述CP,配置一个或多个用于存储下行数据的缓存,包括:所述终端设备利用所述CP从下行空闲缓存数组中确定一个或多个地址偏移,所述下行空闲缓存数组用于存储M个空闲缓存中每一个空闲缓存的首地址相对于内存首地址的地址偏移,所述M为正整数;
确定的一个或多个地址偏移所对应的空闲缓存,作为配置的用于存储下行数据的缓存。
一种实施方式中,所述终端设备利用所述AP,根据所述地址偏移从所述存储下行数据的缓存中读取下行数据之后,所述方法还包括:
所述终端设备利用所述AP输出读取的下行数据,以及释放已输出的下行数据的缓存,并将已输出的下行数据的缓存的地址偏移写入到所述下行空闲缓存数组。
一种实施方式中,所述下行空闲缓存数组中各地址偏移对应的空闲缓存中,部分空闲缓存的大小不同。
一种实施方式中,所述方法还包括:所述终端设备配置所述AP与所述CP之间的多个通道,所述多个通道包括所述下行数据通道。
一种实施方式中,存储下行数据的缓存中还包括串链的缓存的地址偏移;所述终端设备利用所述AP,根据所述地址偏移从存储下行数据的缓存中读取所述下行数据,包括:
所述终端设备利用所述AP,从所述存储下行数据的缓存中读取获取的地址偏移的缓存中的下行数据,并从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的下行数据。
第三方面,本申请实施例还提供了一种数据传输装置,所述装置包括应用处理器AP和通信处理器CP;
所述CP,用于获取所述AP写入上行数据通道中的地址偏移,所述地址偏移是存储上行数据的缓存的首地址相对于内存首地址的偏移;
所述CP,还用于根据所述地址偏移从存储上行数据的缓存中读取所述上行数据。
一种实施方式中,所述AP,用于将所述地址偏移写入到上行数据通道中,并向所述CP发送中断通知;
所述CP,还用于在接收到所述中断通知时,执行获取所述AP写入上行数据通道中的地址偏移的操作。
一种实施方式中,所述AP,还用于配置一个或多个用于存储上行数据的缓存;以及将所述上行数据存储到配置的一个或多个缓存中。
一种实施方式中,所述AP,还用于从上行空闲缓存数组中确定一个或多个地址偏移,所述上行空闲缓存数组用于存储N个空闲缓存中每一个空闲缓存的首地址相对于内存首地址的地址偏移,所述N为正整数;确定的一个或多个地址偏移所对应的空闲缓存,作为配置的用于存储上行数据的缓存。
一种实施方式中,所述CP,还用于所述的根据所述地址偏移从所述存储上行数据的缓存中读取上行数据之后,发送读取的上行数据,以及释放已发送的上行数据的缓存,并将已发送的上行数据的缓存的地址偏移写入到所述上行空闲缓存数组。
一种实施方式中,所述上行空闲缓存数组中各地址偏移对应的空闲缓存中,部分空闲缓存的大小不同。
一种实施方式中,所述AP与所述CP之间的通信基于配置的多个通道进行,所述多个通道包括所述上行数据通道。
一种实施方式中,存储上行数据的缓存中还包括串链的缓存的地址偏移;
所述CP,还用于从所述存储上行数据的缓存中读取获取的地址偏移的缓存中的上行数据,并从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的上行数据。
第四方面,本申请实施例还提供了一种数据传输装置,所述装置包括应用处理器AP和通信处理器CP;
所述AP,用于获取所述CP写入下行数据通道中的地址偏移,所述地址偏移是存储下行数据的缓存的首地址相对于内存首地址的偏移;
所述AP,还用于根据所述地址偏移从存储下行数据的缓存中读取所述下行数据。
一种实施方式中,所述CP,用于将所述地址偏移写入到下行数据通道中,并向所述AP发送中断通知;
所述AP,还用于在接收到所述中断通知时,执行所述的获取所述CP写入下行数据通道中的地址偏移的操作。
一种实施方式中,所述CP,还用于配置一个或多个用于存储下行数据的缓存;以及将所述下行数据存储到配置的一个或多个缓存中。
一种实施方式中,所述CP,还用于从下行空闲缓存数组中确定一个或多个地址偏移,所述下行空闲缓存数组用于存储M个空闲缓存中每一个空闲缓存的首地址相对于内存首地址的地址偏移,所述M为正整数;确定的一个或多个地址偏移所对应的空闲缓存,作为配置的用于存储下行数据的缓存。
一种实施方式中,所述AP,还用于在所述的根据所述地址偏移从所述存储下行数据的缓存中读取下行数据之后,输出读取的下行数据,以及释放已输出的下行数据的缓存,并将已输出的下行数据的缓存的地址偏移写入到所述下行空闲缓存数组。
一种实施方式中,所述下行空闲缓存数组中各地址偏移对应的空闲缓存中,部分空闲缓存的大小不同。
一种实施方式中,所述AP与所述CP之间的通信基于配置的多个通道进行,所述多个通道包括所述下行数据通道。
一种实施方式中,存储下行数据的缓存中还包括串链的缓存的地址偏移;
所述AP,还用于从所述存储下行数据的缓存中读取获取的地址偏移的缓存中的下行数据,并从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的下行数据。
第五方面,本申请实施例还提供了一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以执行第一方面所述的数据传输方法,或者执行第二方面所述的数据传输方法。
第六方面,本申请实施例还提供了一种芯片模组,该芯片模组包括如第五方面所述的芯片。
第七方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器运行的过程中,实现第一方面所述的数据传输方法,或者实现第二方面所述的数据传输方法。
本申请实施例中,终端设备可以利用CP获取AP写入上行数据通道中的地址偏移,并根据该地址偏移从存储上行数据的缓存中读取上行数据。相应的,终端设备还可以利用AP获取CP写入下行数据通道中的地址偏移,并根据该地址偏移从存储下行数据的缓存中读取下行数据。与AP与CP之间通过数据拷贝来传输数据的方式相比,有利于提高AP与CP之间数据交互效率,进而降低终端设备的功耗。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种终端设备的结构示意图;
图2是本申请实施例提供的一种数据传输方法的流程示意图;
图3是本申请实施例提供的一种空闲缓存、上行空闲缓存数组和地址偏移的关系示意图;
图4是本申请实施例提供的一种缓存链表的结构示意图;
图5是本申请实施例提供的另一种数据传输方法的流程示意图;
图6是本申请实施例提供的另一种数据传输方法的流程示意图;
图7是本申请实施例提供的一种空闲缓存、下行空闲缓存数组和地址偏移的关系示意图;
图8是本申请实施例提供的另一种数据传输方法的流程示意图;
图9是本申请实施例提供的一种数据传输装置的结构示意图;
图10是本申请实施例提供的一种芯片的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
物联网终端单芯片方案涉及系统级芯片(System on Chip,SOC)内部的处理器,主要基于SOC内部的应用处理器(application processor,AP)和通信处理器(communicationprocessor,CP)的架构实现。其中,AP用于扩展和定制物联网模块的功能,例如提供上网等业务功能,同时还需要根据业务场景控制CP正常工作;CP用于处理无线通信的功能,例如cat.1bis,以实现和网络上的其他设备进行通信,CP还提供高清语音通话等业务。AP与CP之间的通信属于内部处理器通信(Internal Processor Communication,IPC),例如,AP在不同业务场景下给CP发送不同的控制命令,或者,AP与CP之间通过传递上下行网际互连协议(Internet Protocol,IP)包数据完成上网业务的功能。
对于上行传输来说,终端设备在发送上行数据时,AP需要将上行数据拷贝到CP,CP才能将上行数据发送出去;对于下行传输来说,终端设备利用CP接收到来自网络的下行数据后,需将该下行数据拷贝至AP,然后由AP对该下行数据进行输出和存储等相关操作。可见,这些过程中需要进行大量的数据搬移和存储,进而会耗费终端设备的中央处理器(Central Processing Unit,CPU)的大量时间和功耗,导致AP与CP之间数据交互效率低,终端设备功耗较大。
本申请分别针对上行传输、下行传输提供一种数据传输方法,该方法能够提高AP与CP之间的数据交互效率,进而有利于降低终端设备的功耗。
本申请实施例提供的数据处理方法可以应用于如图1所示的终端设备中。请参见图1,图1是本申请实施例提供的一种终端设备的结构示意图,该终端设备包括AP、CP,其中,AP和CP之间可以通过总线连接。
本申请实施例中,终端设备可以为用户设备(user equipment,UE)。终端设备可以是手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtualreality,VR)终端、增强现实(augmented reality,AR)终端、工业控制(industrialcontrol)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remotemedical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smart city)中的无线终端等等。
请参见图2,图2是本申请实施例提供的一种数据传输方法的流程示意图,该数据传输方法可应用于如图1所示的终端设备中。该数据传输方法包括但不限于以下步骤:
S101、终端设备利用CP获取AP写入上行数据通道中的地址偏移;
其中,该地址偏移是存储上行数据的缓存的首地址相对于内存首地址的偏移。
一种实施方式中,终端设备利用CP获取AP写入上行数据通道中的地址偏移之前,该数据传输方法还包括:终端设备利用AP将地址偏移写入到上行数据通道中,并向CP发送中断通知;终端设备在CP接收到中断通知时,执行步骤S101。
一种实施方式中,上行数据通道具有对应的内存,该内存可用于存储AP写入的地址偏移。相应的,终端设备利用AP将地址偏移写入到上行数据通道中,可以为:终端设备可利用AP将地址偏移写入上行数据通道对应的内存中;以及,步骤S101可以为:终端设备利用CP从该上行数据通道对应的内存中获取地址偏移。其中,CP可在收到中断通知时,从该上行数据通道对应的内存中获取地址偏移。
一种实施方式中,终端设备利用AP将地址偏移写入到上行数据通道中之前,终端设备还可以利用AP配置一个或多个用于存储上行数据的缓存;以及利用AP将上行数据存储到配置的一个或多个缓存中。
其中,终端设备利用AP,配置一个或多个用于存储上行数据的缓存可以包括:终端设备利用AP从上行空闲缓存数组中确定一个或多个地址偏移,其中,上行空闲缓存数组用于存储N个空闲缓存中每一个空闲缓存的首地址相对于内存首地址的地址偏移,该N为正整数;上述确定的一个或多个地址偏移所对应的空闲缓存,作为配置的用于存储上行数据的缓存。
其中,终端设备利用AP将上行数据存储到配置的一个或多个缓存中,可以为:终端设备利用AP侧的硬件,例如通用串行总线(Universal Serial Bus,USB)硬件,将上行数据存储到配置的一个或多个缓存中。
其中,N个空闲缓存是终端设备将上行缓存按照固定块大小划分得到的。该固定块可以分为大包和小包,相应的,N个空闲缓存中可以包括存储空间较大的缓存和存储空间较小的缓存,也就是说,该N个空闲缓存中部分空闲缓存的大小不同。由于业务需求不同,终端设备发送的上行数据的比特大小也不同,终端设备在利用AP配置用于存储上行数据的缓存时,可以从N个空闲缓存中确定存储空间大小与该上行数据的比特大小匹配的空闲缓存,作为配置的用于存储该上行数据的缓存。例如,上行数据的比特较小时,终端设备可以利用AP确定存储空间较小的缓存作为存储该上行数据的缓存,从而,有利于节约内存空间,符合物联网模块内存局限的场景。
例如,上行缓存的存储空间大小为100字节,终端设备将上行缓存划分得到的空闲缓存包括存储空间大小为30字节的空闲缓存1和存储空间大小为70字节的空闲缓存2。假设终端设备发送的上行数据的比特大小为20字节,那么,空闲缓存1的存储空间大小与该上行数据的比特大小更为匹配,因此,终端设备可以利用AP确定空闲缓存1为用于存储该上行数据的缓存。
其中,上行缓存空闲数组可以是利用申请指针进行管理的循环数组。相应的,终端设备利用AP从上行空闲缓存数组中确定一个或多个地址偏移可以为:终端设备利用AP,通过申请指针指向上行空闲缓存数组中的一个或多个地址偏移,作为确定的一个或多个地址偏移。
结合图3,图3是本申请实施例提供的一种空闲缓存、上行空闲缓存数组和地址偏移的关系示意图。其中,N个空闲缓存如图3中A部分所示,该N个空闲缓存均可以预被终端设备利用AP确定为用于存储上行数据的缓存;上行空闲缓存数组如图3中B部分所示,该上行空闲缓存数组用于存储A部分中N个空闲缓存分别对应的地址偏移;上行数据通道对应的内存如图3中C部分所示,该内存中存储了终端设备利用AP写入的地址偏移。
一种实施方式中,存储上行数据的缓存中包括该上行数据外,还可以包括串链的缓存的地址偏移。可选的,存储上行数据的缓存中可包括缓存头和上行数据,该缓存头包括该缓存的地址偏移和next指针,该next指针可以用于指向串链的缓存的地址偏移。
相应的,终端设备利用AP配置多个缓存可以包括:终端设备利用AP通过各个缓存中的next指针将多个缓存作串链处理,形成一个缓存链表。该缓存链表中除最后一个缓存之外的其他缓存的缓存头中的next指针分别指向串链的缓存的地址偏移。其中,最后一个缓存的缓存头中的next指针指向为空,说明该缓存后没有串链的缓存。相应的,终端设备利用AP写入上行数据通道中的地址偏移可以为该缓存链表中第一个缓存的地址偏移。
例如,结合图4,图4是本申请实施例提供的一种缓存链表的结构示意图。该缓存链表以终端设备配置了X个缓存为例,该X为大于1的整数。如4所示,X个缓存分别包括缓存头和上行数据,各个缓存的缓存头中包括该缓存的地址偏移和next指针,并且,通过箭头指示next指针指向串链的缓存的地址偏移。其中,缓存1的缓存头中包括缓存1的地址偏移0x0以及next指针,该next指针指向缓存2的地址偏移0x640,同理,前X-1个缓存的缓存头中分别包括该缓存的地址偏移和指向串链的缓存的地址偏移的next指针。该缓存链表的最后一个缓存,即缓存X的缓存头包括缓存X的地址偏移0x2580和指向为空的next指针,说明缓存X后没有串链的缓存。相应的,终端设备利用AP写入到上行数据通道的地址偏移为缓存1的地址偏移0x0。
S102、终端设备利用CP,根据地址偏移从存储上行数据的缓存中读取上行数据;
一种实施方式中,步骤S102可以包括:终端设备利用CP,根据地址偏移和内存首地址得到该地址偏移对应的缓存的地址,并根据该缓存的地址从该缓存中读取存储的上行数据。
另一种实施方式中,步骤S102可以包括:终端设备利用CP,从存储上行数据的缓存中读取获取的地址偏移的缓存中的上行数据,并从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的上行数据。
可选的,结合步骤S101部分所述的缓存头结构,终端设备从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的上行数据可以包括:终端设备利用CP,读取该获取的地址偏移的缓存中缓存头的next指针,若读取到缓存头中的next指针指向串链的缓存的地址偏移,终端设备利用CP,根据该串链的缓存的地址偏移,读取串链的缓存中的上行数据,并继续读取该串链的缓存的缓存头,直到读取的串链的缓存的缓存头中的next指针为0。
一种实施方式中,步骤S102之后,该数据传输方法中还包括:终端设备利用CP发送读取的上行数据,以及释放已发送的上行数据的缓存,并将已发送的上行数据的缓存的地址偏移写入到上行空闲缓存数组。
其中,终端设备利用CP,释放已发送的上行数据的缓存可以为:终端设备利用CP,通过释放指针释放已发送的上行数据的缓存。该方法有利于在多次进行上述步骤S101和S102的上行数据传输过程时,可以循环使用该缓存和该缓存对应的地址偏移。可见,该数据传输方法可采用指针的方式,直接申请用于存储上行数据的空闲缓存的地址偏移,也可在发送上行数据后及时释放对应的地址偏移,即AP和CP都可以直接访问空闲缓存数组,不需要发送额外的控制消息来完成,从而有利于实现缓存的高效管理。
另外,终端设备还可以配置AP与CP之间的多个通道,该多个通道包括上述上行数据通道。可选的,该多个通道还可以包括上行控制通道,该上行控制通道用于终端设备利用AP向CP发送各类控制信息,例如远程过程调用(Remote Procedure Call,RPC)、配置参数NV和异常通知等。终端设备利用AP与CP通过上行数据通道和上行控制通道分别传输上行数据和控制信息,有利于减少终端设备在AP与CP之间同时传输上行数据和控制信息时的相互影响。
综上所述,图2所示的数据传输方法中,终端设备利用CP获取AP写入上行数据通道中的地址偏移,并且,终端设备利用CP,根据该地址偏移从存储上行数据的缓存中读取上行数据。通过上述方法,能够提高终端设备利用AP向CP传输上行数据的效率,降低终端设备的功耗。
请参见图5,图5是本申请实施例提供的另一种数据传输方法的流程示意图,该数据传输方法是从上行发送开始至上行发送结束的角度进行阐述的。该数据传输方法包括但不限于以下步骤:
S201、终端设备利用AP从上行空闲缓存数组中确定一个或多个地址偏移;
S202、终端设备利用AP根据确定的一个或多个地址偏移,配置一个或多个用于存储上行数据的缓存;
S203、终端设备利用AP将上行数据存储到配置的一个或多个缓存中;
S204、终端设备利用AP将地址偏移写入到上行数据通道中,并向CP发送中断通知;
S205、终端设备利用CP判断是否接收到来自AP的中断通知;若接收到来自AP的中断通知,则执行步骤S206;若没有接收到来自AP的中断通知,则继续执行步骤S205;
S206、终端设备利用CP获取AP写入上行数据通道中的地址偏移;
S207、终端设备利用CP,根据地址偏移从存储上行数据的缓存中读取上行数据;
S208、终端设备利用CP发送读取的上行数据,以及释放已发送的上行数据的缓存,并将已发送的上行数据的缓存的地址偏移写入到上行空闲缓存数组。
其中,步骤S201至步骤S208的相关阐述,可参见上述图2所示的数据传输方法中的相关内容,此处不再详述。
可见,图5所述的数据传输方法在上行传输通道上,可通过传递上行数据的缓存(如IP包缓存)的地址偏移,如以单个地址偏移的方式传递,或以地址偏移串链的方式传递,来提高数据传输效率。另外,图5所述的数据传输方法还能够通过上行空闲缓存数组,配置一个或多个用于存储上行数据的缓存,以及及时释放已发送的上行数据的缓存,从而实现缓存的高效管理。
请参见图6,图6是本申请实施例提供的另一种数据传输方法的流程示意图,该数据传输方法可应用于如图1所示的终端设备中,该数据传输方法是从下行传输的角度进行阐述的。该数据传输方法包括但不限于以下步骤:
S301、终端设备利用AP获取CP写入下行数据通道中的地址偏移;
其中,该地址偏移是存储下行数据的缓存的首地址相对于内存首地址的偏移。
一种实施方式中,终端设备利用AP获取CP写入下行数据通道中的地址偏移之前,该数据传输方法还包括:终端设备利用CP将地址偏移写入到下行数据通道中,并向AP发送中断通知;终端设备在AP接收到中断通知时,执行步骤S301。
一种实施方式中,下行数据通道具有对应的内存,该内存可用于存储CP写入的地址偏移。相应的,终端设备利用CP将地址偏移写入到下行数据通道中,可以为:终端设备可利用CP将地址偏移写入下行数据通道对应的内存中;以及,步骤3101可以为:终端设备利用AP从该下行数据通道对应的内存中获取地址偏移。其中,AP可在收到中断通知时,从该下行数据通道对应的内存中获取地址偏移。
一种实施方式中,终端设备利用CP将地址偏移写入到下行数据通道中之前,终端设备还可以利用CP配置一个或多个用于存储下行数据的缓存;以及利用CP将下行数据存储到配置的一个或多个缓存中。
其中,终端设备利用CP,配置一个或多个用于存储下行数据的缓存可以包括:终端设备利用CP从下行空闲缓存数组中确定一个或多个地址偏移,其中,下行空闲缓存数组用于存储M个空闲缓存中每一个空闲缓存的首地址相对于内存首地址的地址偏移,该M为正整数;上述确定的一个或多个地址偏移所对应的空闲缓存,作为配置的用于存储下行数据的缓存。终端设备利用CP将下行数据存储到配置的一个或多个缓存中,可以为:终端设备利用CP侧的硬件,例如USB硬件,将下行数据存储到配置的一个或多个缓存中。
其中,该M个空闲缓存是终端设备将下行缓存按照固定块大小划分得到的。该固定块可以分为大包和小包,相应的,M个空闲缓存中可以包括存储空间较大的缓存和存储空间较小的缓存,也就是说,该M个空闲缓存中部分空闲缓存的大小不同。由于业务需求不同,终端设备从网络获取的下行数据的比特大小也不同,终端设备在利用CP配置用于存储下行数据的缓存时,可以从M个空闲缓存中确定存储空间大小与该下行数据的比特大小匹配的空闲缓存,作为配置的用于存储该下行数据的缓存,有利于节约缓存空间,符合物联网模块内存局限的场景。
其中,下行缓存空闲数组可以是利用申请指针进行管理的循环数组。相应的,终端设备利用CP从下行空闲缓存数组中确定一个或多个地址偏移可以为:终端设备利用CP,通过申请指针指向下行空闲缓存数组中的一个或多个地址偏移,作为确定的一个或多个地址偏移。
其中,下行缓存空闲数组可以包括上网(NET)空闲缓存数组和长期演进语音承载(Voice over Long-Term Evolution,VOLTE)空闲缓存数组。该NET空闲缓存数组用于存储M个空闲缓存中每一个空闲缓存的首地址相对于内存首地址的地址偏移;该VOLTE空闲缓存数组中的每个成员初始化为0。相应的,终端设备利用CP从下行空闲缓存数组中确定一个或多个地址偏移可以为:终端设备利用CP从NET空闲缓存数组中查找是否存在与下行数据的比特大小匹配的空闲缓存的地址偏移;若存在,则终端设备利用CP从NET空闲缓存数组中确定一个或多个地址偏移;若不存在,则终端设备利用CP从VOLTE空闲缓存数组中确定一个或多个地址偏移。
结合图7,图7是本申请实施例提供的一种空闲缓存、下行空闲缓存数组和地址偏移的关系示意图。其中,M个空闲缓存如图7中D部分所示,该M个空闲缓存均可以预被终端设备利用CP确定为用于存储下行数据的缓存;下行空闲缓存数组如图7中E部分和F部分所示,其中,NET空闲缓存数组如图7中E部分所示,VOLTE空闲缓存数组如图7中F部分所示;下行数据通道对应的内存如图7中G部分所示,该内存中存储了终端设备利用CP写入的地址偏移。
一种实施方式中,存储下行数据的缓存中包括该下行数据外,还可以包括串链的缓存的地址偏移。具体地,上述存储下行数据的缓存包括缓存头和下行数据,该缓存头包括该缓存的地址偏移和next指针,该next指针可以用于指向串链的缓存的地址偏移。终端设备利用CP配置多个缓存可以包括:终端设备利用CP通过各个缓存中的next指针将多个缓存作串链处理,形成一个缓存链表。该缓存链表中除最后一个缓存之外的其他缓存的缓存头中的next指针分别指向串链的缓存的地址偏移,最后一个缓存的缓存头中的next指针指向为空,说明该缓存后没有串链的缓存。相应的,终端设备利用CP写入下行数据通道中的地址偏移可以为该缓存链表中第一个缓存的地址偏移。该缓存链表的相关阐述可参见上述结合图4所示的缓存链表的相关阐述,此处不再赘述。
S302、终端设备利用AP,根据地址偏移从存储下行数据的缓存中读取下行数据;
一种实施方式中,步骤S302可以包括:终端设备可以利用AP,根据地址偏移和内存首地址得到该地址偏移对应的缓存的地址,并根据该缓存的地址从该缓存中读取存储的下行数据。
一种实施方式中,步骤S302可以包括:终端设备利用AP,根据地址偏移从存储下行数据的缓存中读取下行数据可以包括:终端设备利用AP,从存储下行数据的缓存中读取获取的地址偏移的缓存中的下行数据,并从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的下行数据。
可选的,结合步骤S301部分所述的缓存头结构,终端设备从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的下行数据可以包括:终端设备利用AP,读取该获取的地址偏移的缓存中缓存头的next指针,若读取到缓存头中的next指针指向串链的缓存的地址偏移,终端设备利用AP,根据该串链的缓存的地址偏移,读取串链的缓存中的下行数据,并继续读取该串链的缓存的缓存头,直到读取的串链的缓存的缓存头中的next指针为0。
一种实施方式中,步骤S302之后,该数据传输方法中还包括:终端设备利用AP输出读取的下行数据,以及释放已发送的下行数据的缓存,并将已发送的下行数据的缓存的地址偏移写入到下行空闲缓存数组。
其中,终端设备利用AP输出读取的下行数据可以为:终端设备利用AP输出读取的下行数据至可以使用该下行数据的设备,例如上位机。终端设备利用AP,释放已输出的下行数据的缓存可以为:终端设备利用AP,通过释放指针释放已输出的下行数据的缓存。终端设备利用AP将已输出的下行数据的缓存的地址偏移写入到下行空闲缓存数组可以为:终端设备利用AP将已发送的下行数据的缓存的地址偏移写入到下行空闲缓存数组中的NET空闲缓存数组中。该方法有利于在多次进行上述步骤S301和S302的下行数据传输过程时,可以循环使用该缓存和该缓存对应的地址偏移。
可见,该数据传输方法可采用指针的方式,直接申请用于存储下行数据的空闲缓存的地址偏移,也可在发送下行数据后及时释放对应的地址偏移,即AP和CP都可以直接访问空闲缓存数组,不需要发送额外的控制消息来完成,从而有利于实现缓存的高效管理。
另一种实施方式中,终端设备利用CP配置一个或多个用于存储下行数据的缓存;以及利用CP将下行数据存储到配置的一个或多个缓存中之后,该数据传输方法还包括:终端设备判断该下行数据是否为VOLTE业务数据,若该下行数据不是VOLTE业务数据,则执行步骤S201、S302;若该下行数据是VOLTE业务数据,则终端设备利用CP将该下行数据输出至音频模块,以及释放已输出的下行数据的缓存,并将已输出的下行数据的缓存的地址偏移写入到下行空闲缓存数组中的VOLTE空闲缓存数组中。
另外,终端设备还可以配置AP与CP之间的多个通道,该多个通道包括上述下行数据通道。可选的,该多个通道还可以包括下行控制通道,该下行控制通道用于终端设备利用CP向AP发送各类控制信息,例如RPC、NV和异常通知等。终端设备利用CP与AP通过下行数据通道和下行控制通道分别传输下行数据和控制信息,有利于减少终端设备在CP与AP之间同时传输下行数据和控制信息时的相互影响。
综上所述,图6所示的数据传输方法中,终端设备利用AP获取CP写入下行数据通道中的地址偏移,并且,终端设备利用AP,根据该地址偏移从存储下行数据的缓存中读取下行数据。通过上述方法,能够提高终端设备利用CP向AP传输下行数据的效率,降低终端设备的功耗。
可见,图2和图6分别所示的数据传输方法中,终端设备通过上行数据通道发送上行数据,通过下行数据通道输出下行数据;并且,终端设备在同时发送上行数据和输出下行数据时,上行数据和下行数据可以分别存储在不同的缓存中以实现无锁设计,进而减少终端设备在同时发送上行数据和输出下行数据时的相互影响,提高数据传输效率。
请参见图8,图8是本申请实施例提供的另一种数据传输方法的流程示意图,该数据传输方法是从下行发送开始至下行发送结束的角度进行阐述的。该数据传输方法包括但不限于以下步骤:
S401、终端设备利用CP从下行空闲缓存数组中确定一个或多个地址偏移;
S402、终端设备利用CP根据确定的一个或多个地址偏移,配置一个或多个用于存储下行数据的缓存;
S403、终端设备利用CP将下行数据存储到配置的一个或多个缓存中;
S404、终端设备利用CP判断下行数据是否为VOLTE业务数据;若该下行数据是VOLTE业务数据,则执行步骤S405;若该下行数据不是VOLTE业务数据,则执行步骤S406至S410。
S405、终端设备利用CP输出下行数据,以及释放已输出的下行数据的缓存,并将已输出的下行数据的缓存的地址偏移写入到VOLTE空闲缓存数组。
S406、终端设备利用CP将地址偏移写入到下行数据通道中,并向AP发送中断通知;
S407、终端设备利用AP判断是否接收到来自CP的中断通知;若接收到来自CP的中断通知,则执行步骤S408;若没有接收到来自CP的中断通知,则继续执行步骤S407;
S408、终端设备利用AP获取CP写入下行数据通道中的地址偏移;
S409、终端设备利用AP,根据地址偏移从存储下行数据的缓存中读取下行数据;
S410、终端设备利用AP输出读取的下行数据,以及释放已输出的下行数据的缓存,并将已输出的下行数据的缓存的地址偏移写入到NET空闲缓存数组。
其中,步骤S401至步骤S410的相关阐述,可参见上述图6所示的数据传输方法中的相关内容,此处不再详述。
可见,图8所述的数据传输方法在下行传输通道上,可通过传递下行数据的缓存(如IP包缓存)的地址偏移,如以单个地址偏移的方式传递,或以地址偏移串链的方式传递,来提高数据传输效率。另外,图8所述的数据传输方法还能够通过下行空闲缓存数组,配置一个或多个用于存储下行数据的缓存,以及及时释放已发送的下行数据的缓存,从而实现缓存的高效管理。
综上,本申请通过设计上行数据通道、下行数据通道,以及对应的上行空闲缓存数组、下行空闲缓存数组,分别提供了针对上行传输的数据传输方法,以及针对下行传输的数据传输方法,从而满足AP和CP间的高效数据传输,降低CPU占用率和功耗,同时满足物联网模块内存大小局限的场景。另外,本申请还将传输通道分为控制通道和数据通道。控制通道传输各类控制信息,数据通道的上下行分开设计,如上行数据通道、下行数据通道,满足上网和语音业务并发时的数据高效传输,且采用上行空闲缓存数组、下行空闲缓存数组的尽量无锁设计,减少了AP与CP间两种业务互斥访问内部处理器通信(Internal ProcessorCommunication,IPC)的场景。
请参见图9,图9是本申请实施例提供的一种数据传输装置的结构示意图。如图9所示,该数据传输装置包括AP901和CP902。
AP901,用于将地址偏移写入到上行数据通道中,并向CP902发送中断通知。
一种实施方式中,AP901还用于配置一个或多个用于存储上行数据的缓存;以及将上行数据存储到配置的一个或多个缓存中。
一种实施方式中,AP901还用于从上行空闲缓存数组中确定一个或多个地址偏移,该上行空闲缓存数组用于存储N个空闲缓存中每一个空闲缓存的首地址相对于内存首地址的地址偏移,N为正整数;该确定的一个或多个地址偏移所对应的空闲缓存,作为配置的用于存储上行数据的缓存。
CP902,用于获取AP901写入上行数据通道中的地址偏移,该地址偏移是存储上行数据的缓存的首地址相对于内存首地址的偏移;还用于根据该地址偏移从存储上行数据的缓存中读取上行数据。
一种实施方式中,CP902还用于在接收到中断通知时,执行获取AP901写入上行数据通道中的地址偏移的操作。
一种实施方式中,CP902还用于根据地址偏移从存储上行数据的缓存中读取上行数据之后,发送读取的上行数据,以及释放已发送的上行数据的缓存,并将已发送的上行数据的缓存的地址偏移写入到上行空闲缓存数组。其中,该上行空闲缓存数组中各地址偏移对应的空闲缓存中,部分空闲缓存的大小不同。
一种实施方式中,该存储上行数据的缓存中还包括串链的缓存的地址偏移,CP902还用于从存储上行数据的缓存中读取获取的地址偏移的缓存中的上行数据,并从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的上行数据。
一种实施方式中,AP901与CP902之间的通信基于配置的多个通道进行,该多个通道包括上行数据通道。
一种实施方式中,该数据传输装置还包括存储器,用于作为上述的空闲缓存。
可选的,上述数据传输装置还可执行上述方法实施例中的相关操作,此处不再详述。
另一实施例中,图9所示的数据传输装置中,AP901和CP902还可以用于执行如下操作:
AP901,用于获取CP902写入下行数据通道中的地址偏移,该地址偏移是存储下行数据的缓存的首地址相对于内存首地址的偏移;还用于根据地址偏移从存储下行数据的缓存中读取下行数据。
一种实施方式中,AP901还用于在接收到中断通知时,执行获取CP902写入下行数据通道中的地址偏移的操作。
一种实施方式中,AP901还用于在根据地址偏移从存储下行数据的缓存中读取下行数据之后,输出读取的下行数据,以及释放已输出的下行数据的缓存,并将已输出的下行数据的缓存的地址偏移写入到下行空闲缓存数组。其中,该下行空闲缓存数组中各地址偏移所对应的空闲缓存中,部分空闲缓存的大小不同。
一种实施方式中,存储下行数据的缓存中还包括串链的缓存的地址偏移,AP901还用于从存储下行数据的缓存中读取获取的地址偏移的缓存中的下行数据,并从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的下行数据。
CP902,用于将地址偏移写入到下行数据通道中,并向AP901发送中断通知。
一种实施方式中,CP902还用于配置一个或多个用于存储下行数据的缓存;以及将下行数据存储到配置的一个或多个缓存中。
一种实施方式中,CP902还用于从下行空闲缓存数组中确定一个或多个地址偏移,该下行空闲缓存数组用于存储M个空闲缓存中每一个空闲缓存的首地址相对于内存首地址的地址偏移,所述M为正整数;该确定的一个或多个地址偏移所对应的空闲缓存,作为配置的用于存储下行数据的缓存。
一种实施方式中,AP901与CP902之间的通信基于配置的多个通道进行,该多个通道包括下行数据通道。
可选的,上述数据传输装置还可执行上述方法实施例中的相关操作,此处不再详述。
以上实施例描述中的数据传输装置可以是图2所示的数据传输方法中的终端设备,也可以是图6所示的数据传输方法中的终端设备,但本申请实施例中描述的数据传输装置的范围并不限于此,而且数据传输装置的结构可以不受图9的限制。数据传输装置可以是独立的设备或者可以是较大设备的一部分。例如所述数据传输装置可以是:
(1)独立的集成电路IC,或芯片,或,芯片系统或子系统;
(2)具有一个或多个IC的集合,可选的,该IC集合也可以包括用于存储数据,指令的存储部件;
(3)ASIC,例如调制解调器(MSM);
(4)可嵌入在其他设备内的模块;
(5)接收机、终端、智能终端、蜂窝电话、无线设备、手持机、移动单元、车载设备、网络设备、云设备、人工智能设备等等;
(6)其他等等。
对于数据传输装置可以是芯片或芯片系统的情况,可参见图10,图10是本申请实施例提供的一种芯片的结构示意图。图10所示的芯片1000包括处理器1001和接口1002,还可包括存储器1003。其中,处理器1001的数量可以是一个或多个,接口1002的数量可以是多个。
一种设计中,对于芯片用于实现本申请实施例中图2所示的数据传输方法中的终端设备的功能的情况:
所述处理器1001,用于利用所述CP获取所述AP写入上行数据通道中的地址偏移,所述地址偏移是存储上行数据的缓存的首地址相对于内存首地址的偏移;
所述处理器1001,还用于利用所述CP,根据所述地址偏移从存储上行数据的缓存中读取所述上行数据。
另一种设计中,对于芯片用于实现本申请实施例中图6所示的数据传输方法中的终端设备的功能的情况:
所述处理器1001,用于利用所述AP获取所述CP写入下行数据通道中的地址偏移,所述地址偏移是存储下行数据的缓存的首地址相对于内存首地址的偏移;
所述处理器1001,还用于利用所述AP,根据所述地址偏移从存储下行数据的缓存中读取所述下行数据。
其中,存储器1003可以是共享内存设备(Shared Memory Device,SMD)或随机存取存储器(random access memory,RAM)等。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)或直接内存总线随机存取存储器(direct rambus RAM,DRRAM)等。
本申请实施例中芯片1000还可执行上述数据传输装置900所述的实现方式。
本申请实施例还提供一种芯片模组。该芯片模组包括上述所述的芯片1000。
本申请实施例中还提供一种计算机可读存储介质。该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时,可执行上述数据传输方法,以及相关实施方式所执行的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于申请所涵盖的范围。
Claims (35)
1.一种数据传输方法,其特征在于,所述方法应用于终端设备,所述终端设备包括应用处理器AP和通信处理器CP,所述方法包括:
所述终端设备利用所述CP获取所述AP写入上行数据通道中的地址偏移,所述地址偏移是存储上行数据的缓存的首地址相对于内存首地址的偏移;
所述终端设备利用所述CP,根据所述地址偏移从存储上行数据的缓存中读取所述上行数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述终端设备利用所述AP将所述地址偏移写入到上行数据通道中,并向所述CP发送中断通知;
所述终端设备在所述CP接收到所述中断通知时,执行所述的终端设备利用所述CP获取所述AP写入上行数据通道中的地址偏移的步骤。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述终端设备利用所述AP,配置一个或多个用于存储上行数据的缓存;以及利用所述AP将所述上行数据存储到配置的一个或多个缓存中。
4.根据权利要求3所述的方法,其特征在于,所述终端设备利用所述AP,配置一个或多个用于存储上行数据的缓存,包括:
所述终端设备利用所述AP从上行空闲缓存数组中确定一个或多个地址偏移,所述上行空闲缓存数组用于存储N个空闲缓存中每一个空闲缓存的首地址相对于内存首地址的地址偏移,所述N为正整数;
确定的一个或多个地址偏移所对应的空闲缓存,作为配置的用于存储上行数据的缓存。
5.根据权利要求4所述的方法,其特征在于,所述终端设备利用所述CP,根据所述地址偏移从所述存储上行数据的缓存中读取上行数据之后,所述方法还包括:
所述终端设备利用所述CP发送读取的上行数据,以及释放已发送的上行数据的缓存,并将已发送的上行数据的缓存的地址偏移写入到所述上行空闲缓存数组。
6.根据权利要求4或5所述的方法,其特征在于,所述上行空闲缓存数组中各地址偏移对应的空闲缓存中,部分空闲缓存的大小不同。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
所述终端设备配置所述AP与所述CP之间的多个通道,所述多个通道包括所述上行数据通道。
8.根据权利要求1至5任一项所述的方法,其特征在于,存储上行数据的缓存中还包括串链的缓存的地址偏移;
所述终端设备利用所述CP,根据所述地址偏移从存储上行数据的缓存中读取所述上行数据,包括:
所述终端设备利用所述CP,从所述存储上行数据的缓存中读取获取的地址偏移的缓存中的上行数据,并从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的上行数据。
9.一种数据传输方法,其特征在于,所述方法应用于终端设备,所述终端设备包括应用处理器AP和通信处理器CP,所述方法包括:
所述终端设备利用所述AP获取所述CP写入下行数据通道中的地址偏移,所述地址偏移是存储下行数据的缓存的首地址相对于内存首地址的偏移;
所述终端设备利用所述AP,根据所述地址偏移从存储下行数据的缓存中读取所述下行数据。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述终端设备利用所述CP将所述地址偏移写入到下行数据通道中,并向所述AP发送中断通知;
所述终端设备在所述AP接收到所述中断通知时,执行所述的终端设备利用所述AP获取所述CP写入下行数据通道中的地址偏移的步骤。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述终端设备利用所述CP,配置一个或多个用于存储下行数据的缓存;以及利用所述CP将所述下行数据存储到配置的一个或多个缓存中。
12.根据权利要求11所述的方法,其特征在于,所述终端设备利用所述CP,配置一个或多个用于存储下行数据的缓存,包括:
所述终端设备利用所述CP从下行空闲缓存数组中确定一个或多个地址偏移,所述下行空闲缓存数组用于存储M个空闲缓存中每一个空闲缓存的首地址相对于内存首地址的地址偏移,所述M为正整数;
确定的一个或多个地址偏移所对应的空闲缓存,作为配置的用于存储下行数据的缓存。
13.根据权利要求12所述的方法,其特征在于,所述终端设备利用所述AP,根据所述地址偏移从所述存储下行数据的缓存中读取下行数据之后,所述方法还包括:
所述终端设备利用所述AP输出读取的下行数据,以及释放已输出的下行数据的缓存,并将已输出的下行数据的缓存的地址偏移写入到所述下行空闲缓存数组。
14.根据权利要求12或13所述的方法,其特征在于,所述下行空闲缓存数组中各地址偏移对应的空闲缓存中,部分空闲缓存的大小不同。
15.根据权利要求9至13任一项所述的方法,其特征在于,所述方法还包括:
所述终端设备配置所述AP与所述CP之间的多个通道,所述多个通道包括所述下行数据通道。
16.根据权利要求9至13任一项所述的方法,其特征在于,存储下行数据的缓存中还包括串链的缓存的地址偏移;
所述终端设备利用所述AP,根据所述地址偏移从存储下行数据的缓存中读取所述下行数据,包括:
所述终端设备利用所述AP,从所述存储下行数据的缓存中读取获取的地址偏移的缓存中的下行数据,并从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的下行数据。
17.一种数据传输装置,其特征在于,所述装置包括应用处理器AP和通信处理器CP;
所述CP,用于获取所述AP写入上行数据通道中的地址偏移,所述地址偏移是存储上行数据的缓存的首地址相对于内存首地址的偏移;
所述CP,还用于根据所述地址偏移从存储上行数据的缓存中读取所述上行数据。
18.根据权利要求17所述的装置,其特征在于,
所述AP,用于将所述地址偏移写入到上行数据通道中,并向所述CP发送中断通知;
所述CP,还用于在接收到所述中断通知时,执行所述的获取所述AP写入上行数据通道中的地址偏移的操作。
19.根据权利要求18所述的装置,其特征在于,
所述AP,还用于配置一个或多个用于存储上行数据的缓存;以及将所述上行数据存储到配置的一个或多个缓存中。
20.根据权利要求19所述的装置,其特征在于,
所述AP,还用于从上行空闲缓存数组中确定一个或多个地址偏移,所述上行空闲缓存数组用于存储N个空闲缓存中每一个空闲缓存的首地址相对于内存首地址的地址偏移,所述N为正整数;
确定的一个或多个地址偏移所对应的空闲缓存,作为配置的用于存储上行数据的缓存。
21.根据权利要求20所述的装置,其特征在于,
所述CP,还用于所述的根据所述地址偏移从所述存储上行数据的缓存中读取上行数据之后,发送读取的上行数据,以及释放已发送的上行数据的缓存,并将已发送的上行数据的缓存的地址偏移写入到所述上行空闲缓存数组。
22.根据权利要求20或21所述的装置,其特征在于,所述上行空闲缓存数组中各地址偏移对应的空闲缓存中,部分空闲缓存的大小不同。
23.根据权利要求17至21任一项所述的装置,其特征在于,
所述AP与所述CP之间的通信基于配置的多个通道进行,所述多个通道包括所述上行数据通道。
24.根据权利要求17至21任一项所述的装置,其特征在于,存储上行数据的缓存中还包括串链的缓存的地址偏移;
所述CP,还用于从所述存储上行数据的缓存中读取获取的地址偏移的缓存中的上行数据,并从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的上行数据。
25.一种数据传输装置,其特征在于,所述装置包括应用处理器AP和通信处理器CP;
所述AP,用于获取所述CP写入下行数据通道中的地址偏移,所述地址偏移是存储下行数据的缓存的首地址相对于内存首地址的偏移;
所述AP,还用于根据所述地址偏移从存储下行数据的缓存中读取所述下行数据。
26.根据权利要求25所述的装置,其特征在于,
所述CP,用于将所述地址偏移写入到下行数据通道中,并向所述AP发送中断通知;
所述AP,还用于在接收到所述中断通知时,执行所述的获取所述CP写入下行数据通道中的地址偏移的操作。
27.根据权利要求26所述的装置,其特征在于,
所述CP,还用于配置一个或多个用于存储下行数据的缓存;以及将所述下行数据存储到配置的一个或多个缓存中。
28.根据权利要求27所述的装置,其特征在于,
所述CP,还用于从下行空闲缓存数组中确定一个或多个地址偏移,所述下行空闲缓存数组用于存储M个空闲缓存中每一个空闲缓存的首地址相对于内存首地址的地址偏移,所述M为正整数;
确定的一个或多个地址偏移所对应的空闲缓存,作为配置的用于存储下行数据的缓存。
29.根据权利要求28所述的装置,其特征在于,
所述AP,还用于在所述的根据所述地址偏移从所述存储下行数据的缓存中读取下行数据之后,输出读取的下行数据,以及释放已输出的下行数据的缓存,并将已输出的下行数据的缓存的地址偏移写入到所述下行空闲缓存数组。
30.根据权利要求28或29所述的装置,其特征在于,所述下行空闲缓存数组中各地址偏移对应的空闲缓存中,部分空闲缓存的大小不同。
31.根据权利要求25至29任一项所述的装置,其特征在于,
所述AP与所述CP之间的通信基于配置的多个通道进行,所述多个通道包括所述下行数据通道。
32.根据权利要求25至29任一项所述的装置,其特征在于,存储下行数据的缓存中还包括串链的缓存的地址偏移;
所述AP,还用于从所述存储下行数据的缓存中读取获取的地址偏移的缓存中的下行数据,并从该获取的地址偏移的缓存中读取串链的缓存的地址偏移,根据该串链的缓存的地址偏移,读取串链的缓存中的下行数据。
33.一种芯片,其特征在于,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以执行如权利要求1至8任一项所述的数据传输方法,或者执行如权利要求9至16任一项所述的数据传输方法。
34.一种芯片模组,其特征在于,该芯片模组包括如权利要求33所述的芯片。
35.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器运行的过程中,实现权利要求1至8任一项所述的方法,或者实现权利要求9至16任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011608057.1A CN112765085A (zh) | 2020-12-29 | 2020-12-29 | 数据传输方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011608057.1A CN112765085A (zh) | 2020-12-29 | 2020-12-29 | 数据传输方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112765085A true CN112765085A (zh) | 2021-05-07 |
Family
ID=75697497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011608057.1A Pending CN112765085A (zh) | 2020-12-29 | 2020-12-29 | 数据传输方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112765085A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422975A (zh) * | 2021-12-31 | 2022-04-29 | 中国电信股份有限公司 | 数据的延迟发送方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095526A (en) * | 1990-01-26 | 1992-03-10 | Apple Computer, Inc. | Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status |
CN102541805A (zh) * | 2010-12-09 | 2012-07-04 | 沈阳高精数控技术有限公司 | 一种基于共享内存的多处理器通信方法及其实现装置 |
CN106716384A (zh) * | 2015-01-15 | 2017-05-24 | 华为技术有限公司 | 一种数据混洗的装置及方法 |
CN109857573A (zh) * | 2018-12-29 | 2019-06-07 | 深圳云天励飞技术有限公司 | 一种数据共享方法、装置、设备及系统 |
CN109871717A (zh) * | 2016-02-29 | 2019-06-11 | 华为技术有限公司 | 一种数据安全传输装置及方法 |
CN110647493A (zh) * | 2018-06-26 | 2020-01-03 | 大唐移动通信设备有限公司 | 一种数据传输方法、处理器和pcie系统 |
-
2020
- 2020-12-29 CN CN202011608057.1A patent/CN112765085A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095526A (en) * | 1990-01-26 | 1992-03-10 | Apple Computer, Inc. | Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status |
CN102541805A (zh) * | 2010-12-09 | 2012-07-04 | 沈阳高精数控技术有限公司 | 一种基于共享内存的多处理器通信方法及其实现装置 |
CN106716384A (zh) * | 2015-01-15 | 2017-05-24 | 华为技术有限公司 | 一种数据混洗的装置及方法 |
CN109871717A (zh) * | 2016-02-29 | 2019-06-11 | 华为技术有限公司 | 一种数据安全传输装置及方法 |
CN110647493A (zh) * | 2018-06-26 | 2020-01-03 | 大唐移动通信设备有限公司 | 一种数据传输方法、处理器和pcie系统 |
CN109857573A (zh) * | 2018-12-29 | 2019-06-07 | 深圳云天励飞技术有限公司 | 一种数据共享方法、装置、设备及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422975A (zh) * | 2021-12-31 | 2022-04-29 | 中国电信股份有限公司 | 数据的延迟发送方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102138297B (zh) | 图形多媒体集成电路及其运作方法 | |
CN101304373B (zh) | 一种实现局域网内高效传输大块数据的方法及系统 | |
EP3624486A1 (en) | Resource configuration method, terminal device and network device | |
US10402119B2 (en) | Data format conversion apparatus and method and buffer chip | |
CN104796337A (zh) | 一种转发报文的方法及装置 | |
CN111190854B (zh) | 通信数据处理方法、装置、设备、系统和存储介质 | |
TW200928769A (en) | Schedule and data caching for wireless transmission | |
CN101409675A (zh) | 网络分组净荷压缩 | |
CN107135189B (zh) | 一种报文发送方法及物理机 | |
CN112840327B (zh) | 一种片上系统、访问命令的路由方法及终端 | |
WO2019141157A1 (zh) | 一种核间数据传输的装置和方法 | |
US20220360650A1 (en) | Apparatus and method for descriptor handling and computer-readable medium | |
US20220240266A1 (en) | Information transmission method, information receiving method, terminal, and network side device | |
CN114443322A (zh) | 核间通信方法、装置、电子设备及存储介质 | |
WO2014134947A1 (zh) | 控制信息的收发装置和方法 | |
CN112765085A (zh) | 数据传输方法及相关装置 | |
US20230180344A1 (en) | Wireless communication method and device | |
IL272881B2 (en) | Method and device for wireless communication | |
CN111405534A (zh) | 信息传输方法、第一终端及计算机存储介质 | |
CN115437811A (zh) | 进程间通信方法、装置、设备及存储介质 | |
CN114338567A (zh) | Sdio接口数据传输方法及装置、sdio接口设备 | |
CN111801955A (zh) | 一种数据传输的方法、低功耗蓝牙装置和低功耗蓝牙芯片 | |
CN112399471B (zh) | 一种数据缓存的方法及相关装置 | |
CN116151345B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN113467930B (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 |