CN118057340A - 用于管理封包缓冲的可用指针的电子装置及控制方法 - Google Patents
用于管理封包缓冲的可用指针的电子装置及控制方法 Download PDFInfo
- Publication number
- CN118057340A CN118057340A CN202211454700.9A CN202211454700A CN118057340A CN 118057340 A CN118057340 A CN 118057340A CN 202211454700 A CN202211454700 A CN 202211454700A CN 118057340 A CN118057340 A CN 118057340A
- Authority
- CN
- China
- Prior art keywords
- buffer
- available
- pointers
- processing unit
- pointer
- 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 30
- 230000003139 buffering effect Effects 0.000 title abstract description 4
- 238000012545 processing Methods 0.000 claims abstract description 108
- 238000004891 communication Methods 0.000 claims description 79
- 230000005540 biological transmission Effects 0.000 claims description 25
- 101100138677 Arabidopsis thaliana NPF8.1 gene Proteins 0.000 description 33
- 101150059273 PTR1 gene Proteins 0.000 description 33
- 101100262635 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBR1 gene Proteins 0.000 description 33
- 102100035475 Blood vessel epicardial substance Human genes 0.000 description 24
- 101001094636 Homo sapiens Blood vessel epicardial substance Proteins 0.000 description 24
- 101000608194 Homo sapiens Pyrin domain-containing protein 1 Proteins 0.000 description 24
- 101000595404 Homo sapiens Ribonucleases P/MRP protein subunit POP1 Proteins 0.000 description 24
- 101100031674 Arabidopsis thaliana NPF8.3 gene Proteins 0.000 description 16
- 101100235787 Schizosaccharomyces pombe (strain 972 / ATCC 24843) pim1 gene Proteins 0.000 description 16
- 101150114015 ptr-2 gene Proteins 0.000 description 16
- 101000828788 Homo sapiens Signal peptide peptidase-like 3 Proteins 0.000 description 15
- 101100524516 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RFA2 gene Proteins 0.000 description 10
- 101100033865 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RFA1 gene Proteins 0.000 description 7
- 101000942586 Homo sapiens CCR4-NOT transcription complex subunit 8 Proteins 0.000 description 6
- 101001094629 Homo sapiens Popeye domain-containing protein 2 Proteins 0.000 description 6
- 101000608230 Homo sapiens Pyrin domain-containing protein 2 Proteins 0.000 description 6
- 102100035482 Popeye domain-containing protein 2 Human genes 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000004308 accommodation Effects 0.000 description 4
- 101000821905 Homo sapiens Solute carrier family 15 member 4 Proteins 0.000 description 3
- 101100215778 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) ptr-1 gene Proteins 0.000 description 3
- 102100021484 Solute carrier family 15 member 4 Human genes 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 101100445488 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) ptr-2 gene Proteins 0.000 description 2
- 108091006595 SLC15A3 Proteins 0.000 description 2
- 102100021485 Solute carrier family 15 member 3 Human genes 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100407828 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) ptr-3 gene Proteins 0.000 description 1
- 101100351735 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) ptr-4 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 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
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及用于管理封包缓冲的可用指针的电子装置及控制方法一种电子装置包含处理单元、缓冲存储器以及缓冲管理器。缓冲存储器具有多个封包缓存空间,其中该多个封包缓存空间分别对齐一封包尺寸。缓冲管理器包含缓存器用以暂存多个可用指针,每一个可用指针用以标示于封包缓存空间的起始地址,缓冲管理器用以管理可用指针数量并分配该至少一可用指针给该处理单元,当处理单元向缓冲管理器传送配置请求且该可用指针数量足够时,缓冲管理器用以自缓存器取出可用指针并更新可用指针数量,缓冲管理器将可用指针与可用指针数量整合为配置答复并传送至处理单元。
Description
技术领域
本公开有关于一种缓冲空间之控制方法及电子装置,且特别是有关管理封包缓冲的可用指针之控制方法及电子装置。
背景技术
具有通信功能的电子装置中经常具有处理器以及通信电路,处理器主要负责电子装置上的数据运算任务,通信电路则负责与外部其他装置的沟通任务,例如接收或传送封包。
一般来说,通过通信电路接收的输入封包通常暂时存放在封包缓冲区,处理器可以至封包缓冲区的特定地址读取此输入封包。另一方面,若处理器产生了输出封包欲对外传输,处理器也会将输出封包暂时存放至封包缓冲区,再由通信电路从封包缓冲区的特定地址读取并传送至此输出封包。
因此,电子装置需要有效管理封包缓冲区的配置与归还,其中一种做法是处理器以及通信电路通过以轮询方式沟通目前封包缓冲区的使用状态,但经常性轮询会占用总线的通信时间。
另一种作法,是利用特定的准备信号来沟通封包缓冲区的使用状态,例如通过准备信号来表示通信电路是否已经完成上一阶段的收发任务。若准备信号(例如PREADY信号)尚未切换到完成准位,处理器会继续等待。上述作法属于背压(back pressure)式流量控制,虽然可有效表示当前封包缓冲区占用状况,但缺乏预测流量的效果,且容易造成队头阻塞(head of line blocking)问题。若有其中一个任务占用大量时间而迟未将准备信号切换至完成准位,处理器则无法顺利读写封包缓冲区,不利于处理器对于其他任务的平行运算。
发明内容
本公开的一方面披露一种电子装置包含处理单元、缓冲存储器以及缓冲管理器。缓冲存储器具有多个封包缓存空间,其中该多个封包缓存空间分别对齐一封包尺寸。缓冲管理器包含一缓存器用以暂存至少一可用指针,每一个可用指针用以标示于该缓冲存储器其中一个封包缓存空间的一起始地址,缓冲管理器用以监测该缓存器当中的一可用指针数量并分配该至少一可用指针给该处理单元,其中当该处理单元向该缓冲管理器传送一第一配置请求且该可用指针数量足够时,该缓冲管理器用以自该缓存器取出一第一可用指针并更新该可用指针数量,该缓冲管理器将该第一可用指针与该可用指针数量整合为一第一配置答复并传送至该处理单元。
本公开的另一方面披露一种电子装置包含处理单元、缓冲存储器以及缓冲管理器。缓冲存储器具有多个封包缓存空间,其中该多个封包缓存空间分别对齐一封包尺寸。缓冲管理器包含一缓存器用以暂存至少一可用指针,每一个可用指针用以标示于该缓冲存储器其中一个封包缓存空间的一起始地址,缓冲管理器用以监测该缓存器当中的一可用指针数量并分配该至少一可用指针给该处理单元,其中该处理单元统计一待归还指针数量,该处理单元将一第一可用指针与该待归还指针数量整合为一归还请求并传送至该缓冲管理器,当该缓冲管理器接收到该归还请求时,该缓冲管理器根据该归还请求将该第一可用指针推入该缓存器并更新该可用指针数量。
本公开的另一方面披露一种控制方法,包含:由处理单元传送第一配置请求至缓冲管理器;由缓冲管理器判断缓存器当中可用指针数量是否足够;当可用指针数量足够,根据第一配置请求由缓冲管理器从缓存器取出第一可用指针,第一可用指针用以标示于封包缓存空间的起始地址;更新缓存器当中可用指针数量;整合第一可用指针与可用指针数量产生第一配置答复;以及由缓冲管理器传送第一配置答复至处理单元。
须说明的是,上述说明以及后续详细描述是以实施例方式例示性说明本案,并用以辅助本案所请求之发明内容的解释与理解。
附图说明
为让本公开内容之上述和其他目的、特征与实施例能更明显易懂,所附图式之说明如下:
图1绘示根据本公开之一些实施例中一种电子装置的功能方框图;
图2及图3绘示本公开文件的一些实施例中当处理单元产生对外传送封包并借由通信收发单元发出对外传送封包的过程中缓冲管理器分配可用指针所采用之控制方法的流程图;
图4绘示根据本公开文件的一些实施例中第一可用指针与可用指针数量整合得到的第一配置答复的示意图;
图5绘示根据本公开文件的一些实施例中第一可用指针与待归还指针数量整合得到的第一归还请求的示意图;以及
图6及图7绘示本公开文件的一些实施例中当通信收发单元接收到对内传输封包并传送至处理单元的过程中缓冲管理器分配可用指针所采用之控制方法的流程图。
具体实施方式
以下公开提供许多不同实施例或例证用以实施本公开文件的不同特征。特殊例证中的组件及配置在以下讨论中被用来简化本公开。所讨论的任何例证只用来作解说的用途,并不会以任何方式限制本公开文件或其例证之范围和意义。在适当的情况下,在图式之间及相应文字说明中采用相同的标号以代表相同或是相似的组件。
请参阅图1,其绘示根据本公开之一些实施例中一种电子装置100的功能方框图。如图1所示,电子装置100当中包含缓冲存储器120、缓冲管理器140、处理单元160以及通信收发单元180。
于一实施例中,电子装置100可以是计算机、智能型手机、网络交换机、网关、路由器等具备通信功能的装置。电子装置100可以通过通信收发单元180传送对外传送封包PTX至外部网络190。另一方面,电子装置100可以通过通信收发单元180由外部网络接收对内传输封包PRX。借此,电子装置100可以通过通信收发单元180与外部网络190上的其他装置交换数据。
于一实施例中,通信收发单元180可以包含以太网络(Ethernet)收发电路、WiFi收发电路、蓝牙收发电路或其他通信收发电路所实现。于另一实施例中,通信收发单元180也可以包含高画质多媒体接口(High Definition Multimedia Interface,HDMI)传输电路、数字视频接口(Digital Visual Interface,DVI)等用于传输影音数据的通信接口。
在一些实施例中,通信收发单元180可以是由上述收发电路或通信接口的硬件所实现,在另一些实施例中,通信收发单元180也可以由系统单芯片(system on a chip,SoC)当中的逻辑电路执行有关上述通信功能的软件/固件所实现。
电子装置100当中的处理单元160负责电子装置100上的数据运算任务,例如处理单元160处理用户语音输入,产生相应的声音封包并进行传送。另一方面,处理单元160也可以将接收到的声音封包进行译码并在装置上播放。于一实施例中,处理单元160可以由处理器(processor)、中央处理单元(central processing unit,CPU)、图像处理单元(graphicprocessing unit,GPU)、张量处理单元(tensor processing unit,TPU)或特殊应用集成电路(ASIC)或其他相似的处理电路所实施。
在一些实施例中,处理单元160与通信收发单元180所采用的工作频率可能不同,处理单元160通常采用较高的工作频率以快速高效进行运算。由于工作频率的不同,上述通信收发单元180所接收的对内传输封包PRX,不适合由通信收发单元180直接传输至处理单元160。相似地,处理单元160产生的对外传送封包PTX,不适合由处理单元160直接传输至通信收发单元180。于此实施例中,对外传送封包PTX与对内传输封包PRX会先暂存于缓冲存储器120当中。处理单元160与通信收发单元180分别经由缓冲存储器120写入或读取对外传送封包PTX与对内传输封包PRX。
如图1所示,缓冲存储器120具有多个封包缓存空间BUF1~BUF8,每一个封包缓存空间BUF1~BUF8可以用来储存单个对外传送封包PTX或者一个对内传输封包PRX。需特别说明的是,缓冲存储器120当中可以包含更多数量的封包缓存空间。为了说明上的简洁,图1示范性绘示了8个封包缓存空间BUF1~BUF8,但本公开文件并不以此数量的封包缓存空间为限。
于一些实施例中,为了传输上的便利性,对外传送封包PTX与对内传输封包PRX具有固定的封包尺寸。在此情况下,缓冲存储器120当中的这些封包缓存空间BUF1~BUF8各自的边界分别对齐固定的封包尺寸,以提高缓冲存储器120的空间使用效率。
以图1所示的实施例来说,封包缓存空间BUF1是位在十六进制表示的起始地址h0000_0000至结束地址h0000_0FFF之间。封包缓存空间BUF2是位在十六进制表示的起始地址h0000_1000至结束地址h0000_1FFF之间。依此类推,封包缓存空间BUF8是位在十六进制表示的起始地址h0000_7000至结束地址h0000_7FFF之间。
于一实施例中,缓冲管理器140管理缓冲存储器120中的封包缓存空间BUF1~BUF8,将其指派给相应的处理单元160与通信收发单元180所利用。在一些应用中,缓冲管理器140由可用缓冲区管理(free buffer manager,FBM)电路、特殊应用集成电路(ASIC)或微控制器所实现。在另一些应用中,缓冲管理器140可由系统单芯片(system on a chip,SoC)当中的逻辑电路执行相关软件/固件所实现。
于一实施例中,缓冲管理器140、处理单元160与通信收发单元180可由同一个系统单芯片当中的逻辑电路执行相关软件/固件所实现。于另一实施例中,缓冲管理器140、处理单元160与通信收发单元180可以分别由不同的硬件(例如系统单芯片、中央处理器与网络收发电路)所实现。
于一些实施例中,上述缓冲存储器120、缓冲管理器140、处理单元160以及通信收发单元180通过总线BUS彼此耦接。于一实施例中,此总线BUS包含高级外设总线(advancedperipheral bus,APB)、高阶可拓展界面(advanced extensible interface,AXI)或高阶高效能总线(advanced high-performance bus,AHB)其中至少一者。
如图1所示的实施例中,缓冲管理器140包含缓存器142,用以暂存至少一可用指针,每一个可用指针用以标示于缓冲存储器120其中一个封包缓存空间的起始地址。缓冲管理器140管理缓存器142当中的可用指针数量,并分配至少一可用指针给处理单元160与通信收发单元180。
于图1的例子中,缓存器142目前暂存了四个可用指针PTR1~PTR4,可用指针PTR1标示了封包缓存空间BUF1的起始地址h0000_0000;可用指针PTR2标示了封包缓存空间BUF2的起始地址h0000_1000;可用指针PTR3标示了封包缓存空间BUF3的起始地址h0000_2000;可用指针PTR4标示了封包缓存空间BUF4的起始地址h0000_3000。
于图1的例子中,假设封包缓存空间BUF5~BUF8已被占用。因此,缓存器142中并未储存封包缓存空间BUF5~BUF8所对应的可用指针。
缓冲管理器140管理缓存器142当中的可用指针数量(图1中例子此时为4个),并分配可用指针PTR1~PTR4给有需要的工作电路,例如处理单元160与通信收发单元180。
当处理单元160或通信收发单元180请求封包缓存空间时,缓冲管理器140由缓存器142取出(pop)一个可用指针,并配置给处理单元160与通信收发单元180。当处理单元160或通信收发单元180使用封包缓存空间完毕时,缓冲管理器140可将相应的可用指针推入(push)至缓存器142当中,借此释放封包缓存空间,以供后续使用。关于取出(pop)与推入(push)指针的详细过程,将在后续实施例中有完整说明。
请一并参阅图2以及图3,图2以及图3绘示本公开文件的一些实施例中当处理单元160产生对外传送封包PTX并借由通信收发单元180发出对外传送封包PTX的过程中缓冲管理器140分配可用指针所采用之控制方法200的流程图。
如图1及图2所示,当处理单元160欲对外传送对外传送封包PTX时,首先进行步骤S201,由处理单元160向缓冲管理器140传送第一配置请求QPOP1,用以向缓冲管理器140请求取用一个可用指针(对应到缓冲存储器120中的一个封包缓存空间)。
当缓冲管理器140接收到第一配置请求QPOP1时,缓冲管理器140执行步骤S202判断目前缓存器142中的可用指针数量CPN是否足够。于图1所示的例子中,缓存器142目前仍有四个可用指针PTR1~PTR4,因此缓冲管理器140判断可用指针数量CPN为4,可满足第一配置请求QPOP1。进行步骤S204,缓冲管理器140由缓存器142取出其中一个可用指针,在此假设取出的指针为对应封包缓存空间BUF1的可用指针PTR1。
接着,进行步骤S206,缓冲管理器140将可用指针数量CPN更新为3,使可用指针数量CPN实时反映目前缓存器142中的可供取用的指针数量。
进行步骤S208,缓冲管理器140将第一可用指针PTR1与可用指针数量CPN整合为第一配置答复RPOP1。
如图1所示的例子中,每个封包缓存空间BUF1~BUF8具有相同的封包尺寸,故每个封包缓存空间BUF1~BUF8的起始地址彼此之间间隔十六进制的h1000,也就是间隔12个位(12bits)。在此情况下,每个可用指针彼此记载的起始地址,也都间隔十六进制的h1000。若以二进制表示,则封包缓存空间BUF1~BUF8各自的起始地址彼此之间间隔b1000000000000,即为上述实施例中所称间隔12个位。
例如,第一可用指针PTR1标示了封包缓存空间BUF1的起始地址h0000_0000,第二可用指针PTR2标示了封包缓存空间BUF2的起始地址h0000_1000;第三可用指针PTR3标示了封包缓存空间BUF3的起始地址h0000_2000。在这样的情况下,虽然不同的可用指针全部地址长度为32个位,但靠近最低有效位(least significant bit,LSB)的12个位是固定数值,固定为h000。也就是说,不同的可用指针仅在靠近最高有效位(most significant bit,MSB)的20个位是携带有效地址。
于一些实施例中,缓冲管理器140整合为第一配置答复RPOP1的方式是将可用指针数量CPN记录在最低有效位的12个位当中。请一并参阅图4,其绘示根据本公开文件的一些实施例中第一可用指针PTR1与可用指针数量CPN整合得到的第一配置答复RPOP1的示意图。如图4所示,缓冲管理器140将第一可用指针PTR1的高位部分PM复制为第一配置答复RPOP1的高位部分PM,缓冲管理器140将当前的可用指针数量CPN纪录于第一配置答复RPOP1的低位部分PL,借此产生(整合出)第一配置答复RPOP1。于此例子中,如图4所示,产生的第一配置答复RPOP1为h0000_0003。
在上述举例当中,第一配置答复的高位部分与低位部分的边界为第12个位与第13个位之间,但本公开文件并不以此为限,第一配置答复RPOP1的高位部分PM与低位部分PL之边界是由对外传送封包PTX的封包尺寸决定。若对外传送封包PTX的尺寸愈大,则封包缓存空间BUF1~BUF8愈大,则不同可用指针所记载的起始地址间隔愈远,则上述边界将更往最高有效位(MSB)移动。反之,若对外传送封包PTX的尺寸愈小,则封包缓存空间BUF1~BUF8愈小,则不同可用指针所记载的起始地址间隔愈近,则上述边界将更往最低有效位(LSB)移动。
在步骤S209中,缓冲管理器140将第一配置答复RPOP1传送至处理单元160,用以响应处理单元160传送的第一配置请求QPOP1。需特别说明的是,于此实施例中,整合后的第一配置答复RPOP1的长度为32位,与原始第一可用指针PTR1的长度相同。
也就是说,缓冲管理器140将第一配置答复RPOP1传送至处理单元160的过程,可以采用与纯粹传送第一可用指针PTR1的相同格式(同样为32位的数据长度)。相较于仅将第一可用指针PTR1传递至处理单元160,此第一配置答复RPOP1利用相同的数据长度携带了第一可用指针PTR1的有效位以及可用指针数量CPN等两种信息。
于步骤S210中,处理单元160解析第一配置答复RPOP1,得到第一可用指针PTR1以及可用指针数量CPN,其解析方式大致上为图4的反向操作。处理单元160由第一配置答复RPOP1的低位部分PL得到可用指针数量CPN。处理单元160由第一配置答复RPOP1的高位部分PM得到第一可用指针PTR1的高位部分PM,并将第一可用指针PTR1的低位部分PL填入000。
如图1及图2所示,于步骤S212中,处理单元160根据第一可用指针PTR1所标示的起始地址,将对外传送封包PTX写入缓冲存储器120的BUF1。于步骤S213中,处理单元160将第一可用指针PTR1传送至通信收发单元180。
于步骤S214中,通信收发单元180根据收到的第一可用指针PTR1自封包缓存空间BUF1读取对外传送封包PTX,接着于步骤S216中,通信收发单元180将对外传送封包PTX传送至外部网络190,借此完成对外传送封包PTX的对外传输。
需特别说明的是,在上述步骤S210当中,处理单元160可得知缓冲管理器140的缓存器142当下的可用指针数量CPN以及其变化趋势,借此处理单元160与缓冲管理器140可以预先沟通目前可用指针的数量变化。于部分应用中,若处理单元160发现可用指针数量CPN已低于某一阈值(例如已剩下不到2个可用指针)时,处理单元160可以暂时停止传送其他配置请求或降低传送其他配置请求之频率。相较于背压式流量控制通常在可用指针完全用完时才禁止处理单元160提出配置请求,本公开文件通过可用指针数量CPN的传递,让处理单元160预先了解目前可用指针的使用状况,有助于处理单元160提早安排后续的配置请求,例如处理单元160可以改为优先执行与释放缓冲存储器有关的任务。
上述实施例中说明了处理单元160提出第一配置请求QPOP1时,缓冲管理器140判断可用指针数量足够的情况。在另一情况中,若缓冲管理器140的缓存器142中已经不存在任何可用指针时,缓冲管理器140判断可用指针数量不足,如图2的控制方法200所示。此时执行步骤S218,缓冲管理器140将配置答复RNULL的低位部分设定为空值(或者设定为零)。于另一实施例中,缓冲管理器140可将整个配置答复RNULL设定为空值(或者设定为零)。
在步骤S219中,配置答复RNULL被传送至处理单元160。处理单元160根据设定为空值(或者设定为零)的配置答复RNULL了解目前无法从缓冲管理器140获得可用指针及封包缓存空间。处理单元160了解此对外传送封包PTX目前无法传送,可以马上重新尝试,或等待一段时间后重新提出配置请求。于一实施例中,当处理单元160收到配置答复RNULL,执行步骤S220,暂时停止传送其他配置请求或降低传送其他配置请求之频率。
需要补充说明的是,在上述步骤中,控制方法200不需要调整总线BUS上任一准备信号(例如PREADY信号)的准位。于此实施例中,处理单元160可随后重新提出配置请求。也就是说,控制方法200未强制要求处理单元160或通信收发单元180停止后续读写操作并等待准备信号PREADY信号恢复。因此,可避免因某一封包迟未完成传输导致队头阻塞(headof line blocking)问题。
接着,当通信收发单元180完成对外传送封包PTX的传送时,通信收发单元180将目前被占用的第一可用指针PTR1归还至缓冲管理器140,详细作法请见图3。如图1及图3所示,当通信收发单元180完成传送对外传送封包PTX时,通信收发单元180执行步骤S222统计待归还指针数量PSH1。
在实际应用中,处理单元160与通信收发单元180可能采用平行处理。在一段时间内,通信收发单元180可能会分别进行多个传送/接收任务,这些传送/接收任务依照紧急程度与传输状态可能会在先后不同时间完成。待归还指针数量PSH1用以表示通信收发单元180目前因为还在进行封包传送,而仍在使用中且预计稍后将归还的可用指针总数。举例来说,若通信收发单元180仍有两个传送任务进行中,待归还指针数量PSH1为2。
于步骤S224中,通信收发单元180将已使用完毕的第一可用指针PTR1与待归还指针数量PSH1整合为第一归还请求QPUSH1。请一并参阅图5,其绘示根据本公开文件的一些实施例中第一可用指针PTR1与待归还指针数量PSH1整合为第一归还请求QPUSH1的示意图。通信收发单元180将第一可用指针PTR1的高位部分PM复制为第一归还请求QPUSH1的高位部分PM,通信收发单元180将当前的待归还指针数量PSH1纪录于第一归还请求QPUSH1的低位部分PL,借此产生(整合出)第一归还请求QPUSH1。
如先前实施例所述,第一可用指针PTR1的靠近最低有效位(least significantbit,LSB)的12个位是固定数值。于本实施例中,通信收发单元180将待归还指针数量PSH1纪录于第一归还请求QPUSH1的低位部分PL,并不影响第一可用指针PTR1的传递。相似于先前讨论的第一配置答复RPOP1,第一归还请求QPUSH1利用相同的数据长度携带了第一可用指针PTR1的有效位以及待归还指针数量PSH1等两种信息。于步骤S225中,通信收发单元180将第一归还请求QPUSH1传送至缓冲管理器140。
于步骤S226中,缓冲管理器240根据第一归还请求QPUSH1的低位部分PL得到(解析出)待归还指针数量PSH1,并根据第一归还请求QPUSH1的高位部分PM得到(解析出)第一可用指针PTR1。具体来说,缓冲管理器240根据第一归还请求QPUSH1的高位部分PM得到(解析出)第一可用指针PTR1的高位部分PM,并将第一可用指针PTR1的低位部分PL填入000,进而得到完整的第一可用指针PTR1。
接着,缓冲管理器240执行步骤S228,判断待归还指针数量PSH1与可用指针数量CPN之一总和是否高于缓存器142的最大容纳量MAX。
实际应用中,为了节省缓冲管理器140及其缓存器142的成本,通常只会设置空间较小的缓存器142。在此情况下,缓存器142所能容纳指针的最大容纳量MAX可能会小于缓冲管理器120当中所有封包缓存空间的总数。当处理单元160与通信收发单元180在短时间内大量归还可用指针时,可能导致可用指针溢流(overflow)并超出缓存器142的最大容纳量MAX。这样的情况可能导致溢流的指针丢失,电子装置100后续将无法有效利用缓冲管理器140中指针丢失的封包缓存空间。
于此实施例中,缓冲管理器140通过步骤S228的归还指针数量PSH1与可用指针数量CPN之总和预先判断是否可能会发生指针溢流。若判断总和已大于缓存器142的最大容纳量MAX,执行步骤S230产生警示信号WRN。于步骤S231中,缓冲管理器140将警示信号WRN传送至通信收发单元180。于步骤S232中,通信收发单元180根据警示信号WRN暂时停止或延缓产生其他归还请求。如此一来,通信收发单元180不会密集归还可用指针至缓冲管理器140,有助于避免可用指针溢流并超出缓存器142的最大容纳量MAX。
另一方面,若判断待归还指针数量PSH1与可用指针数量CPN之总和未高于缓存器142的最大容纳量MAX,可执行步骤S234。缓冲管理器140将第一可用指针PTR1推入(push)至缓存器142当中,以归还第一可用指针PTR1并释放相应的封包缓存空间BUF1,以利后续的其他任务可以再次使用第一可用指针PTR1。
上述图2至图3中的控制方法200是有关处理单元160产生对外传送封包PTX并借由通信收发单元180发出对外传送封包PTX的处理过程。本公开文件并不以对外传送封包PTX为限,实际上当通信收发单元180接收到封包并对内传输时,也可采用类似的控制方法。
请一并参阅图6及图7,绘示本公开文件的一些实施例中当通信收发单元180接收到对内传输封包PRX并传送至处理单元160的过程中缓冲管理器140分配可用指针所采用之控制方法300的流程图。
如图1及图6所示,于步骤S302中,通信收发单元180自外部网络190接收对内传输封包PRX。于步骤S303中,通信收发单元180向缓冲管理器140传送第二配置请求QPOP2。
当缓冲管理器140接收到第二配置请求QPOP2时,执行步骤S304,判断可用指针数量CPN是否足够。假设此时第一可用指针PTR1已被取出尚未归还,此时可用指针数量CPN为2。
此时,缓冲管理器140判断可用指针数量CPN仍足够,则执行步骤S306。缓冲管理器140自缓存器142取出第二可用指针PTR2,并且执行步骤S308以更新可用指针数量CPN。
接着,缓冲管理器140执行步骤S310以将第二可用指针PTR2的高位部分与可用指针数量CPN整合为第二配置答复RPOP2。在步骤S310中,第二可用指针PTR2的高位部分与可用指针数量CPN整合为第二配置答复RPOP2的详细作法,相似于图2中步骤S210以及图4所示由第一可用指针PTR1的高位部分与可用指针数量CPN整合为第一配置答复RPOP1,请参见先前实施例的详细说明,在此不另赘述。
缓冲管理器140执行步骤S311以将第二配置答复RPOP2传送至通信收发单元180。通信收发单元180执行步骤S312以根据接收到的第二配置答复RPOP2的高位部分得到(解析出)第二可用指针PTR2以及缓冲存储器120中与第二可用指针PTR2对应的封包缓存空间BUF2。通信收发单元180执行步骤S314以将对内传输封包PRX写入至封包缓存空间BUF2。
通信收发单元180执行步骤S315以将第二可用指针PTR2传送至处理单元160。于步骤S316中,处理单元160根据第二可用指针PTR2由封包缓存空间BUF2读取对内传输封包PRX。
在上述步骤S312当中,通信收发单元180可得知缓冲管理器140的缓存器142当下的可用指针数量CPN以及其变化趋势,借此通信收发单元180与缓冲管理器140可以预先沟通目前可用指针的数量变化。于部分应用中,若通信收发单元180发现可用指针数量CPN已低于某一阈值(例如已剩下不到2个可用指针)时,通信收发单元180可以暂时停止传送其他配置请求或降低传送其他配置请求之频率。相较于背压式流量控制通常在可用指针完全用完时才禁止通信收发单元180提出配置请求,本公开文件通过可用指针数量CPN的传递,让通信收发单元180预先了解目前可用指针的使用状况,有助于通信收发单元180提早安排后续的配置请求,例如通信收发单元180可以改为优先执行与释放缓冲存储器有关的任务。
在另一情况中,若缓冲管理器140的缓存器142当中已经不存在任何可用指针时,缓冲管理器140判断可用指针数量不足,如图6的控制方法300所示。此时执行步骤S318,缓冲管理器140将配置答复RNULL的低位部分设定为空值(或者设定为零)。于另一实施例中,缓冲管理器140可将整个配置答复RNULL设定为空值(或者设定为零)。
在步骤S319中,配置答复RNULL被传送至通信收发单元180。通信收发单元180根据设定为空值(或者设定为零)的配置答复RNULL了解目前无法从缓冲管理器140分配到可用指针及封包缓存空间,通信收发单元180了解此对外传送封包PTX目前无法传送,可以马上重新尝试,或需要等待一段时间后重新提出配置请求。于一实施例中,当通信收发单元180收到配置答复RNULL,执行步骤S320,暂时停止传送其他配置请求或降低传送其他配置请求之频率。
接着,当处理单元160完成对内传输封包PRX的读取时,处理单元160将目前已被占用的第二可用指针PTR2归还至缓冲管理器140,详细作法请见图7。如图1及图7所示,当处理单元160完成读取对内传输封包PRX时,处理单元160执行步骤S322统计待归还指针数量PSH2。
在实际应用中,处理单元160与通信收发单元180可能采用平行处理。在一段时间内,处理单元160可能会分别进行多个读取/写入任务。待归还指针数量PSH2用以表示因为处理单元160目前还在进行读取,而仍在使用中且预计稍后将归还的可用指针总数。举例来说,若处理单元160仍有四个对内传输封包还在进行传送任务进行中,待归还指针数量PSH2为4。
于步骤S324中,处理单元160将已使用完毕的第二可用指针PTR2与待归还指针数量PSH2整合为第二归还请求QPUSH2。关于第二可用指针PTR2与待归还指针数量PSH2整合为第二归还请求QPUSH2相似于图5所示的第一可用指针PTR1与待归还指针数量PSH1整合得到的第一归还请求QPUSH1的做法,在此不另赘述。
通信收发单元180将第二可用指针PTR2的高位部分复制为第二归还请求QPUSH2的高位部分,通信收发单元180将当前的待归还指针数量PSH2纪录于第二归还请求QPUSH2的低位部分,借此产生(整合出)第二归还请求QPUSH2。
于步骤S326中,缓冲管理器240根据第二归还请求QPUSH2的低位部分得到(解析出)待归还指针数量PSH2,并根据第二归还请求QPUSH2的高位部分得到(解析出)第二可用指针PTR2。
接着,缓冲管理器240执行步骤S328,以判断待归还指针数量PSH2与可用指针数量CPN之一总和是否高于缓存器142的最大容纳量MAX。于一些实施例中,图2、图3当中的控制方法200与图6、图7当中的控制方法300可以平行进行。于此情况下,步骤S328包含判断待归还指针数量PSH1、PSH2与可用指针数量CPN之一总和是否高于缓存器142的最大容纳量MAX。
于此实施例中,缓冲管理器140通过步骤S328的归还指针数量PSH2与可用指针数量CPN之总和预先判断是否可能会发生指针溢流。若判断总和已大于缓存器142的最大容纳量MAX,执行步骤S330产生警示信号WRN。于步骤S331中,缓冲管理器140将警示信号WRN传送至处理单元160(也可将警示信号WRN同时传送至通信收发单元180)。于步骤S332中,处理单元160根据警示信号WRN暂时停止或延缓产生其他归还请求,如此一来,处理单元160不会密集归还可用指针至缓冲管理器140,有助于避免可用指针溢流并超出缓存器142的最大容纳量MAX。
另一方面,若判断待归还指针数量PSH2与可用指针数量CPN之总和未高于缓存器142的最大容纳量MAX,可执行步骤S334。缓冲管理器140将第二可用指针PTR2推入至缓存器142当中,借此归还第二可用指针PTR2并释放相应的封包缓存空间BUF2,以利后续的其他任务可以再次使用第二可用指针PTR2。
虽然本公开的特定实施例已经披露有关上述实施例,此些实施例不意欲限制本公开。各种替代及改良可借由相关领域中的一般技术人员在本公开中执行而没有从本公开的原理及精神背离。因此,本公开的保护范围由所附申请专利范围确定。
【符号说明】
100:电子装置
120:缓冲存储器
140:缓冲管理器
142:缓存器
160:处理单元
180:通信收发单元
190:外部网络
200:控制方法
S201~S232:步骤
300:控制方法
S301~S332:步骤
BUS:总线
CPN:可用指针数量
PTR1,PTR2,PTR3,PTR4:可用指针
BUF1,BUF2,BUF3,BUF4:封包缓存空间
BUF5,BUF6,BUF7,BUF8:封包缓存空间
PTX:对外传送封包
PRX:对内传输封包
PSH1,PSH2:待归还指针数量
QPOP1,QPOP2:配置请求
RPOP1,RPOP2:配置答复
RNULL:配置答复
QPUSH1,QPUSH2:归还请求
PM:高位部分
PL:低位部分
MAX:最大容纳量。
Claims (10)
1.一种电子装置,包含:
一处理单元;
一缓冲存储器,具有多个封包缓存空间,其中该多个封包缓存空间分别对齐一封包尺寸;以及
一缓冲管理器,包含一缓存器用以暂存至少一可用指针,每一个可用指针用以标示于该缓冲存储器中一个封包缓存空间的一起始地址,该缓冲管理器用以监测该缓存器当中的一可用指针数量并分配该至少一可用指针给该处理单元,
其中当该处理单元向该缓冲管理器传送一第一配置请求且该可用指针数量足够时,该缓冲管理器自该缓存器取出一第一可用指针并更新该可用指针数量,以及该缓冲管理器将该第一可用指针与该可用指针数量整合为一第一配置答复并传送该第一配置答复至该处理单元。
2.如权利要求1所述的电子装置,其中该缓冲管理器将该第一可用指针的一高位部分复制为该第一配置答复的一高位部分,该缓冲管理器将当前的该可用指针数量纪录于该第一配置答复的一低位部分,以产生该第一配置答复。
3.如权利要求2所述的电子装置,其中该处理单元根据该第一配置答复的该低位部分得到该可用指针数量,当该可用指针数量低于一阈值时,该处理单元暂时停止传送其他配置请求或降低传送该其他配置请求之一频率。
4.如权利要求2所述的电子装置,其中该处理单元根据该第一配置答复的该高位部分,得到该第一可用指针以及该缓冲存储器中与该第一可用指针对应的一第一封包缓存空间,该处理单元将一对外传送封包写入至该第一封包缓存空间。
5.如权利要求4所述的电子装置,还包含:
一通信收发单元,用以自该第一封包缓存空间读取该对外传送封包,并将该对外传送封包传送至一外部网络,其中该通信收发单元完成传送时,该通信收发单元向该缓冲管理器提出一第一归还请求用以归还该第一可用指针,该缓冲管理器根据该第一归还请求将该第一可用指针推入该缓存器。
6.如权利要求5所述的电子装置,其中该通信收发单元统计一待归还指针数量,该通信收发单元将该第一可用指针与该待归还指针数量整合为该第一归还请求并传送该第一归还请求至该缓冲管理器,其中该通信收发单元将该第一可用指针的该高位部分复制为该第一归还请求的一高位部分,该通信收发单元将当前的该待归还指针数量纪录于该第一归还请求的一低位部分,以产生该第一归还请求。
7.如权利要求6所述的电子装置,其中该缓冲管理器根据该第一归还请求的该低位部分得到该待归还指针数量,当该待归还指针数量与该可用指针数量之一总和高于该缓存器的一最大容纳量时,该缓冲管理器发出一警示信号至该通信收发单元。
8.如权利要求1所述的电子装置,其中当该处理单元提出该第一配置请求且该可用指针数量不足时,该缓冲管理器将该第一配置答复的一低位部分设定为空值或零,并将该第一配置答复传送至该处理单元。
9.一种电子装置,包含:
一处理单元;
一缓冲存储器,具有多个封包缓存空间,其中该多个封包缓存空间分别对齐一封包尺寸;以及
一缓冲管理器,包含一缓存器用以暂存至少一可用指针,每一个可用指针用以标示于该缓冲存储器中一个封包缓存空间的一起始地址,该缓冲管理器用以监测该缓存器当中的一可用指针数量并分配该至少一可用指针给该处理单元,
其中该处理单元统计一待归还指针数量,该处理单元将一第一可用指针与该待归还指针数量整合为一归还请求并传送该归还请求至该缓冲管理器,
当该缓冲管理器接收到该归还请求时,该缓冲管理器根据该归还请求将该第一可用指针推入该缓存器并更新该可用指针数量。
10.一种控制方法,包含:
由一处理单元传送一第一配置请求至一缓冲管理器;
由该缓冲管理器判断一缓存器中一可用指针数量是否足够;
当该可用指针数量足够,由该缓冲管理器根据该第一配置请求从该缓存器取出一第一可用指针,该第一可用指针用以标示于一封包缓存空间中的一起始地址;
由该缓冲管理器更新该缓存器当中该可用指针数量;
由该缓冲管理器整合该第一可用指针与该可用指针数量以产生一第一配置答复;以及
由该缓冲管理器传送该第一配置答复至该处理单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211454700.9A CN118057340A (zh) | 2022-11-21 | 2022-11-21 | 用于管理封包缓冲的可用指针的电子装置及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211454700.9A CN118057340A (zh) | 2022-11-21 | 2022-11-21 | 用于管理封包缓冲的可用指针的电子装置及控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118057340A true CN118057340A (zh) | 2024-05-21 |
Family
ID=91069079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211454700.9A Pending CN118057340A (zh) | 2022-11-21 | 2022-11-21 | 用于管理封包缓冲的可用指针的电子装置及控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118057340A (zh) |
-
2022
- 2022-11-21 CN CN202211454700.9A patent/CN118057340A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6925512B2 (en) | Communication between two embedded processors | |
US7788422B2 (en) | Interface and interrupt circuitry coupling data to host DMA circuitry | |
US8520563B2 (en) | Interface device, communications system, non-volatile storage device, communication mode switching method and integrated circuit | |
WO2021254330A1 (zh) | 内存管理方法、系统、客户端、服务器及存储介质 | |
US8155136B2 (en) | Single network interface circuit with multiple-ports and method thereof | |
CN107783727B (zh) | 一种内存设备的访问方法、装置和系统 | |
US6526068B2 (en) | Interface control of communication between a control processor and a digital signal processor | |
US7974190B2 (en) | Dynamic queue memory allocation with flow control | |
CN116431079A (zh) | 数据读取、写入方法及装置、带宽转换装置和电子设备 | |
US7822040B2 (en) | Method for increasing network transmission efficiency by increasing a data updating rate of a memory | |
US20230389003A1 (en) | Information transmission method and apparatus | |
CN118057340A (zh) | 用于管理封包缓冲的可用指针的电子装置及控制方法 | |
TWI831474B (zh) | 電子裝置以及控制方法用以管理封包緩衝的可用指標 | |
CN110583019B (zh) | 视频帧编解码器架构 | |
CN103442091A (zh) | 一种数据传输方法及装置 | |
TW202422352A (zh) | 電子裝置以及控制方法用以管理封包緩衝的可用指標 | |
US20180018296A1 (en) | Flow control protocol for an audio bus | |
CN117234977B (zh) | 数据处理方法、系统、设备及计算机可读存储介质 | |
CN115103291B (zh) | 一种fifo缓存控制方法、装置及系统 | |
EP4283468A1 (en) | Data transmission system and related device | |
JP2004056376A (ja) | 半導体装置及びデータ転送制御方法 | |
JP4514411B2 (ja) | バス間通信インタフェース装置 | |
CN117331689A (zh) | 数据处理方法、网卡及计算设备 | |
CN115599574A (zh) | 图形处理系统、电子组件、电子设备及信息处理方法 | |
JP2006251931A (ja) | Cpu間通信システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |