CN113835891A - 资源分配方法、装置、电子设备及计算机可读存储介质 - Google Patents
资源分配方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113835891A CN113835891A CN202111123443.6A CN202111123443A CN113835891A CN 113835891 A CN113835891 A CN 113835891A CN 202111123443 A CN202111123443 A CN 202111123443A CN 113835891 A CN113835891 A CN 113835891A
- Authority
- CN
- China
- Prior art keywords
- descriptor
- data
- chain table
- endpoint
- storage space
- 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
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000013468 resource allocation Methods 0.000 title claims abstract description 29
- 230000005540 biological transmission Effects 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 9
- 239000002699 waste material Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000013500 data storage Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering 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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请实施例公开了一种资源分配方法、装置、电子设备及计算机可读存储介质。该方法,包括:根据描述符链表生成器接收到数据描述符的接收频率,所述描述符链表生成器用于根据接收的数据描述符生成描述符链表;将所述描述符链表存储到所述存储空间中。该资源分配方法、装置、电子设备及计算机可读存储介质,能够改善***分配用于存储描述符链表的存储空间不合理的情况。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种资源分配方法、装置、电子设备及计算机可读存储介质。
背景技术
USB(Universal Serial Bus,通用串行总线)是一种新兴的数据通信方式,具备高速传输、安装配置便捷等优点。目前市面上的大部分电子产品都设置有USB芯片,以支持进行USB数据传输。在一些USB的数据传输机制中,为了成功地传输数据,电子设备会在***内存中开辟两块内存空间,分别用于存储待发送的数据及用于描述该数据的描述符,目前存在分配用于存储该描述符的存储空间不合理的问题。
发明内容
本申请实施例公开了一种资源分配方法、装置、电子设备及计算机可读存储介质,能够改善***分配用于存储描述符链表的存储空间不合理的情况。
本申请实施例公开了一种资源分配方法,包括:
根据描述符链表生成器接收到数据描述符的接收频率,获取与所述接收频率对应的存储空间,所述描述符链表生成器用于根据接收的数据描述符生成描述符链表;
将所述描述符链表存储到所述存储空间中。
本申请实施例公开了一种资源分配装置,包括:
空间获取模块,用于根据描述符链表生成器接收到数据描述符的接收频率,获取与所述接收频率对应的存储空间,所述描述符链表生成器用于根据接收的数据描述符生成描述符链表;
存储模块,用于将所述描述符链表存储到所述存储空间中。
本申请实施例公开了一种电子设备,包括:
存储器;
描述符链表生成器,用于根据接收到数据描述符的接收频率,从所述存储器中获取与所述接收频率对应的存储空间;
所述描述符链表生成器,还用于根据接收的数据描述符生成描述符链表,并将所述描述符链表存储到所述存储空间中。
本申请实施例公开了一种电子设备,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如上所述的方法。
本申请实施例公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法。
本申请实施例公开的资源分配方法、装置、电子设备及计算机可读存储介质,根据描述符链表生成器接收到数据描述符接收频率,获取与该接收频率对应的存储空间,该描述符链表生成器用于根据接收的数据描述符生成描述符链表,再将描述符链表存储到存储空间中,能够根据描述符链表生成器接收到数据描述符的接收频率分配合适的存储空间,可避免出现存储空间过大造成空间浪费或存储空间过小导致存储的描述符链表发生重叠等问题,能够改善***分配用于存储描述符链表的存储空间不合理的情况,且提高了存储空间的使用率,减少存储空间浪费。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中资源分配方法的应用场景图;
图2为一个实施例中电子设备的结构框图;
图3为一个实施例中资源分配方法的流程图;
图4为一个实施例中描述符链表的示意图;
图5为一个实施例中根据描述符链表生成器接收数据描述符的接收频率获取存储空间的流程图;
图6为另一个实施例中资源分配方法的流程图;
图7为一个实施例中描述符链表生成器分析频率的示意图;
图8A为一个实施例中电子设备的架构图;
图8B为一个实施例中频率分析器的架构图;
图9为一个实施例中资源分配装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一频率阈值称为第二频率阈值,且类似地,可将第二频率阈值称为第一频率阈值。第一频率阈值和第二频率阈值两者都是频率阈值,但其不是表示的同一频率阈值。本申请所使用的术语“多个”指的是两个及两个以上。
目前市面上的大部分电子产品都设置有USB芯片,以支持进行USB数据传输。在一些USB的数据传输机制中,为了成功地传输数据,电子设备会在***内存中设置两个独立的内存空间,其中,第一个内存空间用于存储待发送的数据块,一个或多个数据块可组成一个数据包,第二个内存空间可存储用于描述待发送的数据包的一种数据结构。该数据结构通常是一个链式结构,链上每个数据单元在内存中依次放置,每个数据单元又被称为一个数据描述符,用于描述数据包中包含的数据块,一个数据结构可称为一个描述符链表。
为了提升建立描述符链表的速度,作为一种方式,电子设备会将第二个内存空间平均划分为多个存储空间,在每次建立描述符链表后,将描述符链表存入到划分的存储空间中。由于存储空间是按照平均的方式进行划分的,而描述符链表的长度是不固定的,因此可能存在划分的存储空间过大造成空间浪费,或划分的存储空间过小导致描述符链表发生重叠等问题,存在分配用于存储该描述符的存储空间不合理的问题。
本申请实施例提供一种资源分配方法、装置、电子设备及计算机可读存储介质,能够根据描述符链表生成器接收到数据描述符的接收频率分配合适的存储空间,可避免出现存储空间过大造成空间浪费或存储空间过小导致存储的描述符链表发生重叠等问题,能够改善***分配用于存储描述符链表的存储空间不合理的情况,且提高了存储空间的使用率,减少存储空间浪费。
图1为一个实施例中资源分配方法的应用场景图。如图1所示,电子设备100可通过USB接口与目标设备200建立USB通信连接,并与目标设备200通过USB进行数据传输。其中,电子设备100可包括但不限于手机、平板电脑、可穿戴设备、车载终端、PC(PersonalComputer,个人计算机)等支持USB传输的设备,目标设备200可包括但不限于手机、平板电脑、键盘、鼠标、可穿戴设备等支持USB传输的设备,本申请实施例对电子设备100及目标设备200不作限定。
图2为一个实施例中电子设备的结构框图。如图2所示,电子设备100可包括处理器110、存储器120、描述符链表生成器130及USB模块140。
处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)、双倍数据率同步动态随机存取存储器(Double DataRate Synchronous Dynamic Random Access Memory,DDR SDRAM)等。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器720可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现电子设备100中的各个功能的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据等。
USB模块140可包括支持USB通信功能的USB芯片,USB模块140可根据处理器110发出的控制指令向目标设备发送数据或接收从目标设备发送的数据等。USB模块140可从存储器120获取待发送的数据,并按照USB协议进行数据打包,再发送给目标设备。USB模块140也可接收目标设备发送的数据包,并按照USB协议进行解包,再将解包后的数据发送给存储器120进行存储。
在一些USB的传输机制中,USB模块140在向目标设备发送数据包之前,描述符链表生成器130会生成数据包对应的描述符链表,该描述符链表可用于描述待发送的数据包。在本申请实施例中,处理器110可在存储器120中开辟两个独立的存储空间,分别用于存储待发送的数据以及描述符链表生成器130生成的描述符链表。处理器110可将存储器120中开辟的用于存储描述符链表的空间划分为至少两组大小不同的存储空间,每组存储空间下可包括一个或多个划分的存储空间。
处理器110在向存储器120写入待发送数据时,处理器110可向描述符链表生成器130可发送写入的待发送数据对应的数据描述符,该数据描述符可用于描述该写入的待发送数据。描述符链表生成器130可确定接收到数据描述符的接收频率,并根据该接收频率,从存储器120中获取与该接收频率对应的存储空间,在描述符链表生成器130根据数据描述符生成描述符链表后,可将生成的描述符链表存储到获取的存储空间中。由于存储器120中划分有至少两组大小不同的存储空间,描述符链表生成器130可根据数据描述符的接收频率从存储器120中获取到空间大小与描述符链表的长度合适的存储空间,可避免出现存储空间过大造成空间浪费或存储空间过小导致存储的描述符链表发生重叠等问题,能够改善***分配用于存储描述符链表的存储空间不合理的情况,且提高了存储空间的使用率,减少存储空间浪费。
需要说明的是,电子设备100可包括比上述结构框图中更多或更少的结构元件,例如,包括电源模块、物理按键、WiFi(Wireless Fidelity,无线保真)模块、扬声器、蓝牙模块、传感器等,还可在此不进行限定。
如图3所示,在一个实施例中,提供一种资源分配方法,可应用于上述的电子设备,该方法可包括但不限于以下步骤:
步骤310,根据描述符链表生成器接收到数据描述符的接收频率,获取与接收频率对应的存储空间,描述符链表生成器用于根据接收的数据描述符生成描述符链表。
在电子设备需要通过USB向目标设备发送数据时,一个完整的数据会被分解成多个数据块,每个数据块可作为待发送数据写入到内存,以方便USB模块从内存中读取多个待发送数据进行打包,得到待发送的数据包。
在电子设备中的处理器将待发送数据写入内存时,可向描述符链表生成器发送用于描述该待发送数据的数据描述符。描述符链表生成器可根据接收的多个数据描述符生成描述符链表,该描述符链表可用于描述一个待发送的数据包,一个数据包可包括对应的描述符链表中包含的各个数据描述符所描述的待发送数据。
在一些实施例中,数据描述符可包括内存地址及控制信息,该内存地址可为数据描述符所描述的待发送数据在内存中存储的起始地址,控制信息可用于表征数据描述符所描述的待发送数据的长度,该长度可用字节数进行表示。例如,数据描述符可包括Address=0x0000_0000,Length=4byte,则可表示待发送数据在内存中存储的起始地址为0x0000_0000,待发送数据的长度为4个字节。
在一个实施例中,上述的控制信息可包括数据长度及连接控制信号,该数据长度为待发送数据的长度,连接控制信号可用于表征数据包的范围。在描述符链表中的任一数据描述符的连接控制信号为第一标识时,表示该数据描述符为描述符链表的最后一个数据描述符,完成对数据包的描述;在任一数据描述符的连接控制信号为第二标识时,表示该数据描述符不为描述符链表的最后一个数据描述符,后面还有连接的数据描述符。
可选地,该第一标识与第二标识可以是数字、字母、符号等中的一种或多种组成的字符或字符串,例如,第一标识为0,第二标识为1等,但不限于此。
示例性地,图4为一个实施例中描述符链表的示意图。如图4所示,图4中的描述符链表可包括数据描述符1及数据描述符2,每个数据描述符可包括所描述的待发送数据(即数据块)在内存中的起始地址、待发送数据的长度及连接控制信号(CHN)。其中,数据描述符1描述的待发送数据的起始地址为0x0000_0000,长度为4个字节,即对应内存地址0x0000_0000~0x0000_0003中存储的数据,CHN=1表示数据描述符1不是描述符链表的最后一个数据描述符;数据描述符2描述的待发送数据的起始地址为0x0000_0004,长度为4个字节,即对应内存地址0x0000_0004~0x0000_0007中存储的数据,CHN=0表示数据描述符2为描述符链表的最后一个数据描述符。通过描述符链表,USB模块可获取数据包中包含的待发送数据的内存地址,并从内存中读取相应的待发送数据进行打包。
在一些实施例中,数据描述符还可包括状态信息,该状态信息可用于定义USB模块在使用完该数据描述符后所需返回的信息,也即,USB模块根据该数据描述符从内存中读取相应的待发送数据后所需返回的信息。例如,USB模块使用完每个数据描述符后,可向处理器返回响应信息,若处理器接收到USB模块返回的描述符链表中所有数据描述符对应的响应信息,则可将该描述符链表从存储空间中删除,释放该存储空间,使用该存储空间可继续用于存储描述符链表。
在本申请实施例中,描述符链表生成器可确定接收到数据描述符的接收频率,该接收频率可以是描述符链表生成器在单位时间内接收到的数据描述符的数量。作为一种实施方式,可统计描述符链表生成器在预设时长内(例如1秒内、3秒内等)接收到的数据描述符的数量,并确定接收频率,例如,描述符链表生成器在1秒内接收到5个数据描述符,则接收频率可为5个/秒。
作为一种实施方式,描述符链表生成器可记录每次接收到数据描述符时,与上一次接收到数据描述符之间的时间间隔,并根据该时间间隔计算接收频率。例如,描述符链表生成器在接收数据描述符1与数据描述符2之间的时间间隔为T1,在接收数据描述符2与数据描述符3之间的时间间隔为T2,则接收频率可2/(T1+T2)。
若描述符链表生成器接收到数据描述符的接收频率较高,可说明待传输的数据量较大,为了提高数据的传输效率,USB模块可使用更大的数据包进行传输,则描述符链表生成器生成的描述符链表也较长,所需的存储空间也较大。可描述符链表生成器接收到数据描述符的接收频率较低,可说明待传输的数据量较小,USB模块可使用较小的数据包进行传输,则描述符链表生成器生成的描述符链表较短,所需的存储空间较小。
因此,可根据描述符链表生成器接收到数据描述符的接收频率,从内存中获取与该接收频率对应的存储空间,获取的存储空间的大小可与生成的描述符链表较为适配。在接收频率较高,生成的描述符链表较长时,获取的存储空间可较大,在接收频率较低,生成的描述符链表较短时,获取的存储空间可较小,以提高存储空间的使用率。
步骤320,将描述符链表存储到该存储空间中。
描述符链表生成器可将接收的多个数据描述符合成得到描述符链表,该描述符链表的长度小于或等于获取的存储空间的大小,避免发生描述符链表存储重叠(指的是由于描述符链表较大占据了其它存储空间,后续存入的描述符链表会将之前的描述符链表覆盖)的问题。
描述符链表生成器可将生成的描述符链表存储到获取的存储空间中,电子设备可通过USB模块获取该描述符链表。在一些实施例中,电子设备的处理器可向USB模块发送第一传输指令,该第一传输指令可包括该存储空间的地址信息。第一传输指令可用于指示USB模块根据该地址信息从存储空间获取描述符链表,根据描述符链表从内存中获取与描述符链表对应的待发送数据,并按照USB协议将对应的待发送数据发送至目标设备。
该存储空间的地址信息可以是存储空间的起始地址,也即描述符链表在内存中的起始地址,USB模块接收到第一传输指令后,可根据该起始地址从内存中读取描述符链表,并对描述符链表进行解析,得到描述符链表包含的各个数据描述符指示的内存地址(即待发送数据的起始地址)。再根据解析得到的各个内存地址从内存中读取多个待发送数据,并按照USB协议将读取的待发送数据封装为一个数据包,再将该数据包通过USB接口发送给目标设备。
在本申请实施例中,能够根据描述符链表生成器接收到数据描述符的接收频率分配合适的存储空间,可避免出现存储空间过大造成空间浪费或存储空间过小导致存储的描述符链表发生重叠等问题,能够改善***分配用于存储描述符链表的存储空间不合理的情况,且提高了存储空间的使用率,减少存储空间浪费。
如图5所示,在一个实施例中,步骤根据描述符链表生成器接收到数据描述符的接收频率,获取与接收频率对应的存储空间,可包括以下步骤:
步骤502,从多个频率区间中,确定描述符链表生成器接收到数据描述符的接收频率所处的目标频率区间。
可将内存中用于存储描述符链表的内存空间划分成多组存储空间,每个组可包括一个或多个存储空间,每组内包含的各个存储空间的空间大小相同,不同组之间的存储空间的空间大小不同。可分别建立与各组存储空间对应的描述符资源池,描述符资源池内可包括组内可用的存储空间(即未存储数据的存储空间)的空间信息(如存储空间的起始地址及终止地址,或是存储空间的起始地址及空间大小等)。
例如,可将用于存储描述符链表的内存空间划分成3组存储空间,其中,第1组内的各个存储空间的空间大小为X1,第2组内的各个存储空间的空间大小为X2,第3组内的各个存储空间的空间大小为X3,X1<X2<X3。可建立3个描述符资源池,其中,描述符资源池1与第1组存储空间对应,描述符资源池1中可包括第1组内可用的存储空间,描述符资源池2与第2组存储空间对应,描述符资源池2中可包括第2组内可用的存储空间,描述符资源池3与第3组存储空间对应,描述符资源池3中可包括第3组内可用的存储空间。
可预先设置有多个频率区间,多个频率区间与多个描述符资源池可一一对应,描述符链表生成器在确定接收到数据描述符的接收频率后,可将该接收频率与各个频率区间进行比对,并确定该接收频率所处的目标频率区间。
步骤504,从与目标频率区间对应的目标描述符资源池中获取存储空间。
描述符链表生成器可从与目标频率区间对应的目标描述符资源池中,获取可用的存储空间的空间信息,并在生成描述符链表后,根据该空间信息将描述符链表写入该存储空间中。描述符链表生成器从目标描述符资源池中获取存储空间的空间信息后,可将该存储空间的空间信息从目标描述符资源池中删除。在USB模块将与存储空间中存储的描述符链表对应的数据包发出后,可清除该存储空间中的描述符链表,该存储空间被释放,该存储空间的空间信息可重新放入目标描述符资源池中,实现存储空间的循环使用,避免造成内存资源浪费。
在一个实施例中,多个描述符资源池包括第一描述符资源池及第二描述符资源池,频率区间可包括第一频率区间及第二频率区间,第一频率区间可对应第一描述符资源池,第二频率区间对应第二描述符资源池,第一描述符资源池包括一个或多个可用的第一存储空间的空间信息,第二描述符源池包括一个或多个可用的第二存储空间的空间信息。第一描述符资源池中划分的各个第一存储空间的空间大小可小于第二描述符资源池中划分的各个第二存储空间的空间大小,其中,第一描述符资源池对应的第一频率区间内的频率低于第二描述符资源池对应的第二频率区间内的频率。
在一些实施例中,若描述符链表生成器接收到数据描述符的接收频率小于第一频率阈值,则可确定该接收频率所处的目标频率区间为第一频率区间,可从第一频率区间对应的第一描述符资源池中获取第一存储空间。
若描述符链表生成器接收到数据描述符的接收频率大于第二频率阈值,则可确定该接收频率所处的目标频率区间为第二频率区间,可从第二频率区间对应的第二描述符资源池中获取第二存储空间。
其中,第一频率阈值可小于或等于第二频率阈值,在接收频率处于频率较小的第一频率区间内时,USB模块传输的数据包较小,描述符链表生成器生成的描述符链表较短,可从第一描述符资源池中获取空间较小的第一存储空间,能够避免存储空间过大造成的空间浪费的问题,可提高存储空间的使用率。在接收频率处于频率较大的第二频率区间时,USB模块传输的数据包较大,描述符链表生成器生成的描述符链表较长,可从第二描述符资源池中获取空间较大的第二存储空间,能够避免存储空间过小导致存储的描述符链表发生重叠的问题,且在接收频率较大时,描述符链表生成器生成较长的描述符链表,即USB模块可传输大的数据包,能够提高USB的传输效率。
在本申请实施例中,通过设置多个频率区间以及各个频率区间对应的描述符资源池,不同描述符资源池中划分的存储空间的空间大小不同,可根据描述符链表生成器接收到数据描述符的接收频率所处的目标频率区间,从相应的目标描述符资源池中获取存储空间,使得获取的存储空间的空间大小与生成的描述符链表的长度更加适配,能够改善***分配用于存储描述符链表的存储空间不合理的情况,且通过资源池的方式可实现存储空间的循环利用,提高存储空间的使用率。
如图6所示,在另一个实施例中,提供一种资源分配方法,可应用于上述的电子设备,该方法可包括以下步骤:
步骤602,获取描述符链表生成器接收到的各个数据描述符对应的端点标识,端点标识用于表征对应的数据描述符所描述的待发送数据进行数据传输的目标USB端点。
在USB通信机制中,可包括主机及从设备,一个主机可连接一个或多个从设备,主机可为每个连接的从设备分配相应的设备地址,并基于该设备地址对从设备进行访问。从设备中可配置有一个或多个USB端点(Endpoint),主机与从设备之间的USB通信都基于USB端点来实现,每个USB端点可对应一个唯一的端点标识,该端点标识可以是数字、字符或符号等,例如,从设备可包括端点标识0~15的16个USB端点等。主机通过会发出每次进行数据传输的设备地址及端点标识,以与从设备的一个具体USB端点进行数据传输。
在USB的传输机制中,USB通信可包括多种数据传输类型,例如,可包括控制传输、批量传输、同步传输、中断传输等中的一种或多种,其中,控制传输指的是传输控制信息,批量传输指的是传输数据量大的数据,同步传输指的是传输同步信息,中断传输指的是传输发生的中断事件。可选地,可根据数据传输类型对USB端点进行分类,每个USB端点可支持一种数据传输类型。
电子设备的处理器将待发送数据写入内存,并向描述符链表生成器发送用于描述该待发送数据的数据描述符以及该待发送数据对应的端点标识。
作为一种实施方式,电子设备可以是USB通信中的从设备,目标设备可以是USB通信中的主机,则电子设备的USB模块可配置有一个或多个USB端点,该端点标识可用于表征发送该待发送数据的目标USB端点,电子设备的USB模块通过该目标USB端点向目标设备发送该待发送数据。
作为另一种实施方式,电子设备可以是USB通信中的主机,目标设备可以是USB通信中的从设备,目标设备中配置有一个或多个USB端点,则该端点标识可用于表征接收该待发送数据的目标USB端点,电子设备的USB模块将待发送数据向目标设备的目标USB端点发送。
步骤604,根据各个数据描述符对应的端点标识,确定各个目标USB端点对应的接收频率。
描述符链表生成器用于根据各个目标USB端点对应的数据描述符生成各个所述目标USB端点对应的描述符链表。USB模块可将对应同一端点标识的多个待发送数据进行打包,以提高数据的传输效率,因此,描述符链表生成器可将对应同一端点标识的多个数据描述符合成为描述符链表。描述符链表生成器针对各个目标USB端点可分别从内存中获取对应的存储空间,用于存储各个目标USB端点对应的描述符链表。
在本申请实施例中,描述符链表生成器可根据接收到的各个数据描述符对应的端点标识,确定各个目标USB端点对应的接收频率,目标USB端点对应的接收频率可指的是描述符链表生成器在单位时间内接收到的对应于同一目标USB端点的数据描述符的数量。例如,描述符链表生成器在1秒内接收到5个对应USB端点1的数据描述符,接收到3个对应USB端点2的数据描述符,则USB端点1对应的接收频率为5个/秒,USB端点2对应的接收频率为3个/秒。
在一些实施例中,根据各个数据描述符对应的端点标识,确定各个目标USB端点对应的接收频率,可包括:在描述符链表生成器接收到对应第一端点标识的数据描述符时,确定与上一次接收到对应第一端点标识的数据描述符之间的接收时间间隔,其中,第一端点标识用于表征对应的数据描述符所描述的待发送数据通过第一目标USB端点传输;根据至少一个确定的接收时间间隔计算第一目标USB端点对应的接收频率。
描述符链表生成器在每次接收到对应第一端点标识的数据描述符时,均可获取与上一对应第一端点标识的数据描述符之间的接收时间间隔,该接收时间间隔即为相邻两个对应第一端点标识的数据描述符之间的间隔时长。
作为一种实施方式,描述符链表生成器可包括与各个USB端点对应的计数器,每个USB端点对应的计数器,可用于记录描述符链表生成器接收到与计数器对应USB端点的数据描述符的接收时间间隔。
可选地,在描述符链表生成器接收到对应第一端点标识的数据描述符时,确定与上一次接收到对应第一端点标识的数据描述符之间的接收时间间隔,可包括:在描述符链表生成器接收到对应第一端点标识的数据描述符时,获取与第一目标USB端点对应的计数器记录的时长,并将该时长作为与上一次接收到的对应第一端点标识的数据描述符之间的接收时间间隔;其中,计数器在描述符链表生成器每次接收到对应第一端点标识的数据描述符时,复位至初始值。
以USB端点中的第一目标USB端点为例,第一目标USB端点的端点标识为第一端点标识,描述符链表生成器每次接收到对应该第一端点标识的数据描述符时,第一目标USB端点对应的计数器都会进行复位,并开始计数(可以是计算脉冲数量)。第一目标USB端点对应的计数器在两次复位之间记录的数值即可作为计数器记录的时长,也即两个对应第一端点标识的数据描述符之间的接收时间间隔。
可选地,计数器复位的初始值可为0,当计数器每接收到一个时间脉冲时,可往上增加1,依次递增,直至描述符链表生成器再次接收到对应第一端点标识的数据描述符时,计数器重新复位为0,计数器在重新复位为0之前记录的数值即可作为接收时间间隔。
示例性地,图7为一个实施例中描述符链表生成器分析频率的示意图。如图7所示,clock表示时间脉冲波形,system_rst表示***复位波形,type_a_wen表示描述符链表生成器接收到USB端点A的数据描述符的波形,type_a_cnt_rst表示USB端点A的计数器的复位波形,type_b_wen表示描述符链表生成器接收到USB端点B的数据描述符的波形,type_b_cnt_rst表示USB端点B的计数器的复位波形。
从图7中可直观看出,计数器在***复位以及描述符链表生成器每次接收到对应的USB端点的数据描述符时进行复位。可将每两次复位之间计数器记录的时间脉冲数量作为接收时间间隔,例如,type_a_cnt_rst中,计数器第2次复位及第3次复位之间包含了3个时间脉冲(脉冲6、7、8),则USB端点A对应的数据描述符的接收时间间隔为3;type_b_cnt_rst中,计数器第2次复位及第3次复位之间包含了10个时间脉冲(脉冲12~21),则USB端点B对应的数据描述符的接收时间间隔为10。
在确定第一目标USB端点对应的计数器记录的至少一个接收时间间隔后,可根据至少一个确定的接收时间间隔计算第一目标USB端点对应的接收频率。在一些实施例中,可获取确定的N个接收时间间隔,该N个接收时间间隔为按照确定时刻从近到远排列在前N个的接收时间间隔,N为大于1的整数。再计算N个接收时间间隔的平均时间间隔,并根据该平均时间间隔计算第一目标USB端点对应的接收频率。
N可根据实际需求进行设置,例如3、4等。在描述符链表生成器第M次接收到第一目标USB端点对应的数据描述符时,可获取计数器第M次、第M-1次、第M-2次、……、第M-N+1次记录的接收时间间隔(即N个接收时间间隔),并计算平均时间间隔。第一目标USB端点的接收频率可为单位时间与平均时间间隔的比值,例如,单位时间为100个时间脉冲,描述符链表生成器接收到第一目标USB端点的数据描述符的平均时间间隔为3个时间脉冲,则接收频率可为33.3个。
步骤606,根据各个目标USB端点对应的接收频率,分别获取与各个目标USB端点对应的存储空间。
步骤608,将各个目标USB端点对应的描述符链表分别存储到各个目标USB端点对应的存储空间中。
以第一目标USB端点为例,第一目标USB端点可为任一目标USB端点,第一目标USB端点对应的第一描述符链表可存储在第一目标USB端点对应的存储空间中,第一目标USB端点对应的存储空间是基于描述符链表生成器接收到第一目标USB端点对应的数据描述符的接收频率获取的。描述符链表生成器可根据接收到对应第一端点标识的数据描述符的接收频率,获取第一目标USB端点对应的存储空间,可根据对应第一端点标识的多个数据描述符生成第一描述符链表,并将第一描述符链表存储到第一目标USB端点对应的存储空间中。
在一些实施例中,可确定各个目标USB端点对应的接收频率所处的目标频率区间,并从该目标频率区间对应的目标描述符资源池中获取各个目标USB端点对应的存储空间。描述符链表生成器可将生成的与各个目标USB端点对应的描述符链表存储到各个目标USB端点对应的存储空间中。
举例说明,USB端点A的接收频率处于第一目标频率区间,则可从第一频率区间对应的第一描述符资源池中获取第一存储空间。描述符链表生成器可将多个对应USB端点A的数据描述符合成为数据符链表,并将该数据符链表存入获取的第一存储空间。又例如,USB端点B的接收频率处于第二目标频率区间,则可从第二目标频率区间对应的第二描述符资源池中获取第二存储空间,描述符链表生成器可将多个对应USB端点B的数据描述符合成为数据符链表,并将该数据符链表存入获取的第二存储空间。能够根据传输到各个目标USB端点的待发送数据的频率为各个目标USB端点分配合适的描述符链表的存储空间,无需在设计阶段就将不同的描述符链表的存储空间僵化的分配给每一个USB端点,分配方式更为灵活、合理。
在一些实施例中,上述方法还包括:通过USB模块从第一目标USB端点对应的存储空间中获取第一描述符链表,第一描述符链表用于描述通过第一目标USB端点进行传输的待发送的数据。作为一种具体实施方式,电子设备中的处理器可向USB模块发送第二传输指令,该第二传输指令包含第一目标USB端点对应的存储空间的地址信息。第二传输指令用于指示USB模块根据地址信息从第二存储空间中获取第一描述符链表,根据第一描述符链表从内存中获取与第一描述符链表对应的待发送数据,并按照USB协议通过第一目标USB端点将获取的待发送数据传输至目标设备。
描述符链表生成器在将目标USB端点对应的描述符链表写入相应的存储空间后,USB模块可从该存储空间中读取描述符链表,并根据该描述符链表从内存中读取目标USB端点对应的待发送数据,可按照USB协议对读取的待发送数据进行封装得到数据包,再向目标USB端点发送。
以第一目标USB端点为例,第一目标USB端点可为任一目标USB端点,描述符链表生成器将第一目标USB端点对应的第一描述符链表写入第一目标USB端点对应的存储空间后,处理器可向USB模块发送第二传输指令。USB模块可根据第二传输指令中包含的地址信息,从内存中读取第一描述符链表,并对第一描述符链表进行解析,得到待发送数据的内存地址,再根据该待发送数据的内存地址从内存读取待发送数据。USB模块可按照USB协议对待发送数据进行封装,并将封装得到的数据包向第一目标USB端点发送。若电子设备为主机,则USB模块将数据包向目标设备的第一目标USB端点发送,若电子设备为从设备,则USB模块将数据包向第一目标USB端点发送,再由第一目标USB端点传输到目标设备。
在一个实施例中,在通过USB模块从第一目标USB端点对应的存储空间中获取第一描述符链表之前,还包括:通过端点仲裁器轮流判断各个目标USB端点对应的描述符链表是否存储到各个目标USB端点对应的存储空间中。
电子设备中可设置有端点仲裁器,该端点仲裁器可以采用轮询的方式查看描述符生成器中的每个USB端点的描述符链表是否已经存储到相应的存储空间中,也即,可轮流判断各个目标USB端点对应的描述符链表是否已准备好。若端点仲裁器检测到当前查看的目标USB端点的描述符链表已存储到相应的存储空间中,则可向USB模块发送相应的传输指令。以第一目标USB端点为例,若端点仲裁器确定第一目标USB端点对应的第一描述符链表已存储到第一目标USB端点对应的存储空间中,则可通过USB模块从第一目标USB端点对应的存储空间中获取第一描述符链表。
若端点仲裁器检测到当前查看的目标USB端点的描述符链表还未存储到相应的存储空间中,则可查看下一目标USB端点。通过轮询的方式可以保证各个目标USB端点以更加公平的频率进行数据传输,提高了USB的通信效率及通信质量。
图8A为一个实施例中电子设备的架构图。如图8A所示,电子设备可包括处理器810、描述符生成器820、端点仲裁器830、USB模块840及存储器(图未示)。
描述符生成器820可包括调度单元821、频率分析器822、描述符资源池选择器826及多个链表建立器,每个链表建立器分别对应1个USB端点,如端点0链表建立器823对应USB端点0,端点1链表建立器824对应USB端点1,端点2链表建立器825对应USB端点2。
可设置有数据资源池870、第一描述符资源池850及第二描述符资源池860,其中,数据资源池870中包括可使用的数据存储空间的起始地址,第一描述符资源池850中包括可使用的用于存储描述符链表的第一存储空间的起始地址,第二描述符资源池860中包括可使用的用于存储描述符链表的第二存储空间的起始地址,该第一存储空间的空间大小区别于第二存储空间的空间大于。
在处理器810需要通过USB模块840向目标设备发送数据时,可从数据资源池中获取可使用的数据存储空间的起始地址,可根据该起始地址将待发送数据写入内存中,并向描述符生成器820发送用于描述该待发送数据的数据描述符。
调度单元821可分析数据描述符对应的端点标识,并将接收到的数据描述符分配到该端点标识对应的链表建立器当中。频率分析器822可根据数据描述符对应的端点标识,确定各个目标USB端点对应的接收频率。进一步地,频率分析器822可确定各个目标USB端点对应的接收频率所处的目标频率区间,并将目标频率区间发送给描述符资源选择器826。
描述符资源选择器826可根据各个目标USB端点对应的接收频率所处的目标频率区间,从目标频率区间对应的目标描述符资源池中获取存储空间。例如,目标USB端点对应的接收频率处于第一频率区间,则从第一描述符资源池850中获取第一存储空间的起始地址;目标USB端点对应的接收频率处于第二频率区间,则从第二描述符资源池860中获取第一存储空间的起始地址。
图8B为一个实施例中频率分析器的架构图。在一个实施例中,如图8B所示,频率分析器822针对各个目标USB端点,可分别设置资源空闲计数器、空间时间均衡器及频率系数生成器。在处理器810从数据资源池870中获取数据存储空间并将待发送数据写入内存后,处理器810可向描述符生成器820发送数据描述符。
频率分析器822可根据数据描述符对应的端点标识确定各个目标USB端点的数据描述符的接收频率(也即出现的频率)。资源空闲计数器在每次接收到与端点标识对应的数据描述符时进行复位,以记录相邻两个与端点标识对应的数据描述符之间的接收时间间隔。空闲时间均衡器可将N个接收时间间隔进行平均,得到平均时间间隔。频率系数生成器可根据平均时间间隔确定接收频率,以及该接收频率所处的频率区间。
在一些实施例中,频率系数生成器也可直接将平均时间间隔与时间阈值进行比较,若平均时间间隔小于第一时间阈值,则可生成第一频率系数(例如1等系数),平均时间间隔小于第一时间阈值说明接收频率较高,第一频率系数可表示接收频率处于第二频率区间。若平均时间间隔大于第二时间阈值,则可生成第二频率系数(例如0等系数),平均时间间隔大于第二时间阈值可说明接收频率较低,第二频率系数可表示接收频率处于第一频率区间。其中,第一时间阈值可小于或等于第二时间阈值。
描述符资源选择器826可将获取的各个目标USB端点对应的存储空间的起始地址,反馈给各个目标USB端点对应的链表建立器。链表建立器根据多个对应目标USB端点的数据描述符生成描述符链表,并根据描述符资源选择器826反馈的起始地址将该描述符链表写入内存中。
端点仲裁器830可采用轮询的方式依次查看描述符生成器820中的各个链表建立器是否将对应目标USB端点的描述符链表写入相应的存储空间中,若检测到已将目标USB端点的描述符链表写入相应的存储空间中,则可向USB模块840发送包含该存储空间的起始地址的传输指令。USB模块840根据该传输指令可从内存中读取描述符链表,并根据描述符链表从内存中获取待发送数据,按照USB协议将待发送数据向目标USB端点发送。
在USB模块840完成一个数据包的传输后,内存可释放用于存储该数据包的描述符链表的存储空间,描述符资源选择器826可将该释放的存储空间的起始地址重新放入对应的描述符资源池中。在USB模块840将一个数据存储空间内的待发送数据均发送完成后,内存可释放该数据存储空间,处理器810可重新将该释放的数据存储空间的起始地址放入数据资源池810,方便内存空间的重复利用,节省内存资源。
在本申请实施例中,可根据各个目标USB端点对应的数据描述符的接收频率,为各个目标USB端点更加合理地分配用于存储描述符链表的存储空间,可避免出现存储空间过大造成空间浪费或存储空间过小导致存储的描述符链表发生重叠等问题,能够改善***分配用于存储描述符链表的存储空间不合理的情况。而且,描述符链表生成器具备了根据数据描述符的出现频率自适应的为每个端点分配不同空间大小的存储空间的能力,分配方式更为灵活。
如图8A所示,在一个实施例中,提供一种电子设备,该电子设备可包括描述符生成器820、存储器(图未示)。
描述符链表生成器820,用于根据接收到数据描述符的接收频率,从存储器中获取与接收频率对应的存储空间。
描述符链表生成器820,还用于根据接收的数据描述符生成描述符链表,并将描述符链表存储到所述存储空间中。
在一个实施例中,描述符链表生成器820可包括频率分析器822及描述符资源选择器826。
频率分析器822,用于从多个频率区间中,确定接收频率所处的目标频率区间。其中,多个频率区间与多个描述符资源池一一对应,且不同描述符资源池中划分的存储空间的空间大小不同。
描述符资源选择器826,用于从与目标频率区间对应的目标描述符资源池中获取存储空间。
进一步地,如图8A所示,电子设备还可包括USB模块840。USB模块840,用于从存储空间获取描述符链表,并根据描述符链表从存储器中获取待发送数据。
需要说明的是,本申请实施例中的描述可参考上述关于图8A的实施例描述,在此不再重复赘述。
如图9所示,在一个实施例中,提供一种资源分配装置900,可应用于上述的电子设备,该资源分配装置900可包括空间获取模块910及存储模块920。
空间获取模块910,用于根据描述符链表生成器接收到数据描述符的接收频率,获取与接收频率对应的存储空间,描述符链表生成器用于根据接收的数据描述符生成描述符链表。
存储模块930,用于将描述符链表存储到存储空间中。
在一个实施例中,该资源分配装置900,还包括链表获取模块,用于通过USB模块从存储空间获取所述描述符链表,该描述符链表用于描述USB模块待发送的数据。
在本申请实施例中,能够根据描述符链表生成器接收到数据描述符的接收频率分配合适的存储空间,可避免出现存储空间过大造成空间浪费或存储空间过小导致存储的描述符链表发生重叠等问题,能够改善***分配用于存储描述符链表的存储空间不合理的情况,且提高了存储空间的使用率,减少存储空间浪费。
在一个实施例中,空间获取模块910,还用于从多个频率区间中,确定接收频率所处的目标频率区间;从与目标频率区间对应的目标描述符资源池中获取存储空间,其中,多个频率区间与多个描述符资源池一一对应,且不同描述符资源池中划分的存储空间的空间大小不同。
在一个实施例中,多个描述符资源池包括第一描述符资源池及第二描述符资源池,第一描述符资源池中划分的各个第一存储空间的空间大小小于第二描述符资源池中划分的各个第二存储空间的空间大小,其中,第一描述符资源池对应的第一频率区间内的频率低于第二描述符资源池对应的第二频率区间内的频率。
在本申请实施例中,通过设置多个频率区间以及各个频率区间对应的描述符资源池,不同描述符资源池中划分的存储空间的空间大小不同,可根据描述符链表生成器接收到数据描述符的接收频率所处的目标频率区间,从相应的目标描述符资源池中获取存储空间,使得获取的存储空间的空间大小与生成的描述符链表的长度更加适配,能够改善***分配用于存储描述符链表的存储空间不合理的情况,且通过资源池的方式可实现存储空间的循环利用,提高存储空间的使用率。
在一个实施例中,数据描述符与端点标识对应,端点标识用于表征数据描述符所描述的待发送数据进行数据传输的目标USB端点。描述符链表生成器用于根据各个目标USB端点对应的数据描述符生成各个目标USB端点对应的描述符链表。其中,第一目标USB端点对应的第一描述符链表存储在第一目标USB端点对应的存储空间中,第一目标USB端点对应的存储空间是基于描述符链表生成器接收到第一目标USB端点对应的数据描述符的接收频率获取的,其中,第一目标USB端点为任一目标USB端点。
在一个实施例中,上述资源分配装置900,还包括频率确定模块,频率确定模块包括标识获取单元及频率计算单元。
标识获取单元,用于获取描述符链表生成器接收到的各个数据描述符对应的端点标识,该端点标识用于表征对应的数据描述符所描述的待发送数据进行数据传输的目标USB端点。
频率计算单元,用于根据各个数据描述符对应的端点标识,确定各个目标USB端点对应的接收频率。
在一个实施例中,频率计算单元,还用于在描述符链表生成器接收到对应第一端点标识的数据描述符时,确定与上一次接收到对应第一端点标识的数据描述符之间的接收时间间隔;根据至少一个确定的接收时间间隔计算第一目标USB端点对应的接收频率,其中,第一端点标识用于表征对应的数据描述符所描述的待发送数据通过第一目标USB端点传输。
在一个实施例中,频率计算单元,还用于在描述符链表生成器接收到对应第一端点标识的数据描述符时,获取与第一目标USB端点对应的计数器记录的时长,并将时长作为与上一次接收到的对应第一端点标识的数据描述符之间的接收时间间隔;其中,计数器在描述符链表生成器每次接收到对应第一端点标识的数据描述符时,复位至初始值。
在一个实施例中,频率计算单元,还用于获取确定的N个接收时间间隔,N个接收时间间隔为按照确定时刻从近到远排列在前N个的接收时间间隔,N为大于1的整数;以及用于计算N个接收时间间隔的平均时间间隔,并根据平均时间间隔计算第一目标USB端点对应的接收频率。
空间获取模块910,还用于根据各个目标USB端点对应的接收频率,分别获取与各个目标USB端点对应的存储空间。
存储模块920,还用于将各个目标USB端点对应的描述符链表存储到各个目标USB端点对应的存储空间中。
在一个实施例中,链表获取模块,还用于通过USB模块从第一目标USB端点对应的存储空间中获取第一描述符链表,第一描述符链表用于描述通过第一目标USB端点进行传输的待发送的数据;其中,第一目标USB端点为任一目标USB端点。
在一个实施例中,上述的资源分配装置900,还包括轮询模块,用于通过端点仲裁器轮流判断各个目标USB端点对应的描述符链表是否存储到各个目标USB端点对应的存储空间中。
链表获取模块,还用于若端点仲裁器确定第一目标USB端点对应的第一描述符链表已存储到第一目标USB端点对应的存储空间中,则通过USB模块从第一目标USB端点对应的存储空间中获取第一描述符链表。
在本申请实施例中,可根据各个目标USB端点对应的数据描述符的接收频率,为各个目标USB端点更加合理地分配用于存储描述符链表的存储空间,可避免出现存储空间过大造成空间浪费或存储空间过小导致存储的描述符链表发生重叠等问题,能够改善***分配用于存储描述符链表的存储空间不合理的情况。而且,描述符链表生成器具备了根据数据描述符的出现频率自适应的为每个端点分配不同空间大小的存储空间的能力,分配方式更为灵活。
在一个实施例中,提供一种电子设备,包括存储器及处理器,该存储器中存储有计算机程序,该计算机程序被该处理器执行时,使得该处理器实现如上述各实施例中描述的方法。
本申请实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序被处理器执行时实现如上述实施例描述的方法。
本申请实施例公开一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可被处理器执行时实现如上述各实施例描述的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、ROM等。
如此处所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括ROM、可编程ROM(Programmable ROM,PROM)、可擦除PROM(Erasable PROM,EPROM)、电可擦除PROM(Electrically ErasablePROM,EEPROM)或闪存。易失性存储器可包括随机存取存储器(random access memory,RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM可为多种形式,诸如静态RAM(Static RAM,SRAM)、动态RAM(Dynamic Random Access Memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、双倍数据率SDRAM(Double Data Rate SDRAM,DDR SDRAM)、增强型SDRAM(Enhanced Synchronous DRAM,ESDRAM)、同步链路DRAM(Synchlink DRAM,SLDRAM)、存储器总线直接RAM(Rambus DRAM,RDRAM)及直接存储器总线动态RAM(DirectRambus DRAM,DRDRAM)。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定特征、结构或特性可以以任意适合的方式结合在一个或多个实施例中。本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上对本申请实施例公开的一种资源分配方法、装置、电子设备及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (17)
1.一种资源分配方法,其特征在于,包括:
根据描述符链表生成器接收到数据描述符的接收频率,获取与所述接收频率对应的存储空间,所述描述符链表生成器用于根据接收的数据描述符生成描述符链表;
将所述描述符链表存储到所述存储空间中。
2.根据权利要求1所述的方法,其特征在于,所述根据描述符链表生成器接收到数据描述符的接收频率,获取与所述接收频率对应的存储空间,包括:
从多个频率区间中,确定描述符链表生成器接收到数据描述符的接收频率所处的目标频率区间,所述多个频率区间与多个描述符资源池一一对应,且不同描述符资源池中划分的存储空间的空间大小不同;
从与所述目标频率区间对应的目标描述符资源池中获取存储空间。
3.根据权利要求2所述的方法,其特征在于,所述多个描述符资源池包括第一描述符资源池及第二描述符资源池,所述第一描述符资源池中划分的各个第一存储空间的空间大小小于所述第二描述符资源池中划分的各个第二存储空间的空间大小,其中,所述第一描述符资源池对应的第一频率区间内的频率低于所述第二描述符资源池对应的第二频率区间内的频率。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过USB模块从所述存储空间获取所述描述符链表,所述描述符链表用于描述所述USB模块待发送的数据。
5.根据权利要求1~4任一所述的方法,其特征在于,所述数据描述符与端点标识对应,所述端点标识用于表征所述数据描述符所描述的待发送数据进行数据传输的目标USB端点;
所述描述符链表生成器用于根据各个所述目标USB端点对应的数据描述符生成各个所述目标USB端点对应的描述符链表;
其中,第一目标USB端点对应的第一描述符链表存储在所述第一目标USB端点对应的存储空间中,所述第一目标USB端点对应的存储空间是基于所述描述符链表生成器接收到所述第一目标USB端点对应的数据描述符的接收频率获取的,其中,所述第一目标USB端点为任一所述目标USB端点。
6.根据权利要求5所述的方法,其特征在于,在所述根据描述符链表生成器接收到数据描述符的接收频率,获取与所述接收频率对应的存储空间之前,所述方法还包括:
在所述描述符链表生成器接收到对应第一端点标识的数据描述符时,确定与上一次接收到对应所述第一端点标识的数据描述符之间的接收时间间隔;其中,所述第一端点标识用于表征对应的数据描述符所描述的待发送数据通过第一目标USB端点传输;
根据至少一个确定的接收时间间隔计算所述第一目标USB端点对应的接收频率。
7.根据权利要求6所述的方法,其特征在于,所述在所述描述符链表生成器接收到对应第一端点标识的数据描述符时,确定与上一次接收到对应所述第一端点标识的数据描述符之间的接收时间间隔,包括:
在所述描述符链表生成器接收到对应第一端点标识的数据描述符时,获取与所述第一目标USB端点对应的计数器记录的时长,并将所述时长作为与上一次接收到的对应所述第一端点标识的数据描述符之间的接收时间间隔;其中,所述计数器在所述描述符链表生成器每次接收到对应第一端点标识的数据描述符时,复位至初始值。
8.根据权利要求6或7所述的方法,其特征在于,所述根据至少一个确定的接收时间间隔计算所述第一目标USB端点对应的接收频率,包括:
获取确定的N个接收时间间隔,所述N个接收时间间隔为按照确定时刻从近到远排列在前N个的接收时间间隔,所述N为大于1的整数;
计算所述N个接收时间间隔的平均时间间隔,并根据所述平均时间间隔计算所述第一目标USB端点对应的接收频率。
9.根据权利要求5所述的方法,其特征在于,所述方法还包括:
通过USB模块从所述第一目标USB端点对应的存储空间中获取所述第一描述符链表,所述第一描述符链表用于描述通过所述第一目标USB端点进行传输的待发送的数据。
10.根据权利要求9所述的方法,其特征在于,在所述通过USB模块从第一目标USB端点对应的存储空间中获取第一描述符链表之前,所述方法还包括:
通过端点仲裁器轮流判断各个所述目标USB端点对应的描述符链表是否存储到各个所述目标USB端点对应的存储空间中;
所述通过USB模块从所述第一目标USB端点对应的存储空间中获取所述第一描述符链表,包括:
若所述端点仲裁器确定所述第一目标USB端点对应的第一描述符链表已存储到所述第一目标USB端点对应的存储空间中,则通过USB模块从所述第一目标USB端点对应的存储空间中获取所述第一描述符链表。
11.根据权利要求1~4、6~7、9~10任一所述的方法,其特征在于,所述数据描述符包括内存地址及控制信息,所述内存地址为所述数据描述符所描述的待发送数据在内存中存储的起始地址,所述控制信息用于表征所述数据描述符所描述的待发送数据的长度。
12.一种资源分配装置,其特征在于,包括:
空间获取模块,用于根据描述符链表生成器接收到数据描述符的接收频率,获取与所述接收频率对应的存储空间,所述描述符链表生成器用于根据接收的数据描述符生成描述符链表;
存储模块,用于将所述描述符链表存储到所述存储空间中。
13.一种电子设备,其特征在于,包括:
存储器;
描述符链表生成器,用于根据接收到数据描述符的接收频率,从所述存储器中获取与所述接收频率对应的存储空间;
所述描述符链表生成器,还用于根据接收的数据描述符生成描述符链表,并将所述描述符链表存储到所述存储空间中。
14.根据权利要求13所述的电子设备,其特征在于,所述描述符链表生成器,包括:
频率分析器,用于从多个频率区间中,确定所述接收频率所处的目标频率区间;所述多个频率区间与多个描述符资源池一一对应,且不同描述符资源池中划分的存储空间的空间大小不同;
描述符资源选择器,用于从与所述目标频率区间对应的目标描述符资源池中获取存储空间。
15.根据权利要求13所述的电子设备,其特征在于,所述电子设备还包括:
USB模块,用于从所述存储空间获取所述描述符链表,并根据所述描述符链表从所述存储器中获取待发送数据。
16.一种电子设备,其特征在于,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如权利要求1至11任一所述的方法。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至11任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111123443.6A CN113835891B (zh) | 2021-09-24 | 2021-09-24 | 资源分配方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111123443.6A CN113835891B (zh) | 2021-09-24 | 2021-09-24 | 资源分配方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113835891A true CN113835891A (zh) | 2021-12-24 |
CN113835891B CN113835891B (zh) | 2023-05-23 |
Family
ID=78970155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111123443.6A Active CN113835891B (zh) | 2021-09-24 | 2021-09-24 | 资源分配方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113835891B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020118690A1 (en) * | 2001-02-23 | 2002-08-29 | International Business Machines Corporation | Assignment of packet descriptor field positions in a network processor |
CN1547358A (zh) * | 2003-12-02 | 2004-11-17 | 烽火通信科技股份有限公司 | 一种用于以太网无源光网络的数据帧缓存设备和方法 |
US20090119460A1 (en) * | 2007-11-07 | 2009-05-07 | Infineon Technologies Ag | Storing Portions of a Data Transfer Descriptor in Cached and Uncached Address Space |
CN105446898A (zh) * | 2014-09-23 | 2016-03-30 | Arm有限公司 | 描述符环管理 |
CN108259380A (zh) * | 2017-12-21 | 2018-07-06 | 安凯(广州)微电子技术有限公司 | 数据帧处理的方法、***及以太网控制器 |
CN109428827A (zh) * | 2017-08-21 | 2019-03-05 | 深圳市中兴微电子技术有限公司 | 一种流量自适应的缓存分配装置及方法、onu设备 |
CN110795400A (zh) * | 2019-10-12 | 2020-02-14 | 苏州浪潮智能科技有限公司 | 一种文件的管理方法、装置、设备及介质 |
CN112131175A (zh) * | 2020-08-28 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种SoC芯片、功耗控制方法及可读存储介质 |
CN113225307A (zh) * | 2021-03-18 | 2021-08-06 | 西安电子科技大学 | 卸载引擎网卡中描述符预读取的优化方法、***及终端 |
-
2021
- 2021-09-24 CN CN202111123443.6A patent/CN113835891B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020118690A1 (en) * | 2001-02-23 | 2002-08-29 | International Business Machines Corporation | Assignment of packet descriptor field positions in a network processor |
CN1547358A (zh) * | 2003-12-02 | 2004-11-17 | 烽火通信科技股份有限公司 | 一种用于以太网无源光网络的数据帧缓存设备和方法 |
US20090119460A1 (en) * | 2007-11-07 | 2009-05-07 | Infineon Technologies Ag | Storing Portions of a Data Transfer Descriptor in Cached and Uncached Address Space |
CN105446898A (zh) * | 2014-09-23 | 2016-03-30 | Arm有限公司 | 描述符环管理 |
CN109428827A (zh) * | 2017-08-21 | 2019-03-05 | 深圳市中兴微电子技术有限公司 | 一种流量自适应的缓存分配装置及方法、onu设备 |
CN108259380A (zh) * | 2017-12-21 | 2018-07-06 | 安凯(广州)微电子技术有限公司 | 数据帧处理的方法、***及以太网控制器 |
CN110795400A (zh) * | 2019-10-12 | 2020-02-14 | 苏州浪潮智能科技有限公司 | 一种文件的管理方法、装置、设备及介质 |
CN112131175A (zh) * | 2020-08-28 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种SoC芯片、功耗控制方法及可读存储介质 |
CN113225307A (zh) * | 2021-03-18 | 2021-08-06 | 西安电子科技大学 | 卸载引擎网卡中描述符预读取的优化方法、***及终端 |
Non-Patent Citations (3)
Title |
---|
ZERUN LI等: "Bi-Transfer: A Data Packet Allocation Module with Chaining Transmission Mode", 《2019 IEEE 5TH INTERNATIONAL CONFERENCE ON COMPUTER AND COMMUNICATIONS (ICCC)》 * |
陈紫卿: "数字对讲机监测***用户接口单元的架构设计及驱动程序的开发", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
高健: "多通道PCI Express网卡与Linux***交互机制研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113835891B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558344B (zh) | 一种适用于网络传输的dma传输方法及dma控制器 | |
US20050240688A1 (en) | Efficient data transfer from an ASIC to a host using DMA | |
WO2016011811A1 (zh) | 一种内存管理方法、装置及存储介质 | |
CN111177025B (zh) | 数据存储方法、装置及终端设备 | |
WO2021043212A1 (zh) | 一种日志数据的存储方法、电子设备及存储介质 | |
CN113660351B (zh) | 数据通信方法、装置、通信终端及计算机可读存储介质 | |
CN101707565A (zh) | 零拷贝网络报文发送、接收方法和装置 | |
CN105264930A (zh) | 发送节点及其缓存状态上报方法 | |
CN112732628A (zh) | 核间数据处理方法、***、片上***以及电子设备 | |
CN105630424A (zh) | 数据处理方法、装置及*** | |
CN108304272B (zh) | 一种数据io请求的处理方法及装置 | |
CN115002046B (zh) | 报文处理方法、numa节点、电子设备及存储介质 | |
CN115102908B (zh) | 基于带宽控制的网络报文生成的方法以及相关装置 | |
CN112422485B (zh) | 一种传输控制协议的通信方法及装置 | |
CN113835891B (zh) | 资源分配方法、装置、电子设备及计算机可读存储介质 | |
CN113852533A (zh) | 一种多通道数据通信***、方法及电子设备 | |
CN110489356B (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN113672532B (zh) | 一种usb设备控制装置及数据传输装置 | |
CN113316230B (zh) | 一种发送数据任务调度方法、装置、电子设备及存储介质 | |
CN107911317B (zh) | 一种报文调度方法及装置 | |
CN115550442A (zh) | 数据包传输方法、装置、电子设备及存储介质 | |
CN112804027B (zh) | 数据包生成方法及装置、数据读取方法及装置 | |
CN104375871A (zh) | 一种基于eMMC加速***开机的方法和装置 | |
CN101873198B (zh) | 一种构造网络数据包的方法及装置 | |
CN113127064A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |