CN114710421B - 一种基于数据预取的网络连接状态维护装置和方法 - Google Patents
一种基于数据预取的网络连接状态维护装置和方法 Download PDFInfo
- Publication number
- CN114710421B CN114710421B CN202210391283.1A CN202210391283A CN114710421B CN 114710421 B CN114710421 B CN 114710421B CN 202210391283 A CN202210391283 A CN 202210391283A CN 114710421 B CN114710421 B CN 114710421B
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- prefetching
- prefetch
- task
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
- G06F8/4442—Reducing the number of cache misses; Data prefetching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Environmental & Geological Engineering (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于数据预取的网络连接状态维护装置和方法,该装置包括经Fifo缓存连接组成流水线形式的哈希计算单元、预取单元和综合处理单元,所述预取单元包括第一级预取单元和至少一个后续预取单元,从而可以有效隐藏内存访问延迟,大幅提高网络连接状态维护的综合处理效率;同时,按需预取的设计也能避免冗余读操作,从而节省访存带宽和相应的硬件资源开销。
Description
技术领域
本申请涉及计算机通信技术领域,更具体地,涉及一种基于数据预取的网络连接状态维护装置和方法。
背景技术
在网络数据分析处理中,为网络连接进行状态维护是一项基础工作。但在骨干网环境下,同时连接数非常庞大(每100G线路高达数千万条同时连接数)。对这些数量庞大的连接进行状态维护的技术需求,在技术层面就面临如下难题。
1.内存容量问题。高达数千万的同时连接数,意味着要维护数千万个连接状态表,这是一个巨大的存储开销。同时,为了实现连接状态表的快速增加、删除和查找,必然要使用以Hash机制为基础的快速表机制,而这又将带来显著的存储需求膨胀,因而内存容量问题将是一个必须妥善处理的问题。如何在确保表访问性能的前提下提高存储利用率,减少存储容量,成为了一个至关重要的核心问题。
2.访存带宽与延迟问题。随着技术的发展,DDR(Double Data Rate,双倍数据速率)器件的理论带宽获得了长足的发展,而且在通用任务处理领域,Cache机制的存在也进一步减少了“存储墙”的制约。但是在骨干网数据处理领域,却存在如下一些制约因素:
(1)数据局部性低导致Cache 加速效果受限问题。大量网络连接同时存在,各连接数据包交叉混合达到,数据局部性非常差,在连接状态管理应用中,Cache机制很难起到加速效果;
(2)DDR访存长延时问题。当没有Cache加速时,DDR访存开销是一个很大得时间开销,通常高达数百个时钟周期,从而极大地限制了包处理效率的提升。
因此,如何进一步提高进行网络连接状态维护时的效率和存储利用率,是目前有待解决的技术问题。
发明内容
本发明公开了一种基于数据预取的网络连接状态维护装置,用以解决现有技术中进行网络连接状态维护时访存延迟大,存储利用率低的技术问题。
该装置包括经Fifo缓存连接组成流水线形式的哈希计算单元、预取单元和综合处理单元,所述预取单元包括第一级预取单元和至少一个后续预取单元,其中,
所述哈希计算单元,用于根据与网络连接状态维护任务对应的IP数据包元数据生成哈希值,并将包括所述哈希值和所述IP数据包元数据的任务元数据输出至第一级预取单元;
所述第一级预取单元,用于根据所述哈希值从内存获取预取数据,并将预取数据和经预取数据更新后的任务元数据输出至首个后续预取单元;
所述后续预取单元,用于根据从前一级预取单元接收的预取数据和任务元数据生成后续预取长度和预取地址,并根据后续预取长度和预取地址从内存获取本级的预取数据,并将本级的预取数据和经本级的预取数据更新后的任务元数据输出至下一级预取单元或所述综合处理单元;
所述综合处理单元,用于根据从最后一个后续预取单元接收的预取数据和任务元数据进行数据处理。
在本申请一些实施例中,所述第一级预取单元,具体用于:
根据从哈希计算单元接收的任务元数据分离出所述哈希值,并基于所述哈希值生成对内存的读命令;
若输出Fifo未满且未检测到暂停指令,向内存发出读命令并将从内存返回的预取数据输出至首个后续预取单元;
根据预取数据更新任务元数据,并将新的任务元数据输出至首个后续预取单元。
在本申请一些实施例中,所述后续预取单元具体用于:
根据后续预取长度和预取地址生成对内存的读指令;
若输出Fifo未满且未检测到暂停指令,向内存发出读命令并将从内存返回的预取数据输出至下一级预取单元或所述综合处理单元;
根据预取数据更新任务元数据,并将新的任务元数据输出至下一级预取单元或所述综合处理单元;
其中,所述后续预取单元在后续预取长度为0时不再进行预取。
在本申请一些实施例中,所述暂停指令是在在途数据数不小于预设数量时触发的,所述在途数据数为内存接收到读命令后未返回的预取数据的数量。
在本申请一些实施例中,所述综合处理单元具体用于:
根据从最后一个后续预取单元接收的预取数据和任务元数据确定当前任务状态和已获取的流表数据;
根据当前任务状态和已获取的流表数据判断是否需要进一步获取流表数据;
若是,根据当前任务状态向内存发送读命令,并接收从内存返回的新的流表数据,并根据当前任务状态和最新的已获取的流表数据进行数据处理;
若否,根据当前任务状态和已获取的流表数据进行数据处理。
在本申请一些实施例中,所述综合处理单元还用于:
若在结束数据处理后需要进行流表写操作,根据当前任务状态生成写命令,并基于写命令将与流表写操作对应的数据写入内存,并输出任务处理结果;
若在结束数据处理后不需要进行流表写操作,输出任务处理结果。
在本申请一些实施例中,所述哈希计算单元具体用于:
锁存接收到的所述IP数据包元数据的IP5T并记为r_IP5T;
取与所述IP数据包元数据对应的对向会话报文的IP5T并记为r_IP5T’;
确定IP5T的归一化结果:c_IP5T=min(r_IP5T, r_IP5T’);
基于预设哈希算法对IP5T的归一化结果计算并生成所述哈希值;
其中,IP5T为IP数据的五个元素,包括源IP地址、目的IP地址、源端口、目的端口和协议号。
在本申请一些实施例中,内存为DDR内存。
在本申请一些实施例中,所述装置集成在FPGA芯片或ASIC芯片上。
相应的,本发明还公开了一种基于数据预取的网络连接状态维护方法,所述方法应用于如上所述的装置中,所述方法包括:
在所述哈希计算单元中根据与网络连接状态维护任务对应的IP数据包元数据生成哈希值,并将包括所述哈希值和所述IP数据包元数据的任务元数据输出至第一级预取单元;
在所述第一级预取单元中根据所述哈希值从内存获取预取数据,并将预取数据和经预取数据更新后的任务元数据输出至首个后续预取单元;
在所述后续预取单元中根据从前一级预取单元接收的预取数据和任务元数据生成后续预取长度和预取地址,并根据后续预取长度和预取地址获取本级的预取数据,并将本级的预取数据和经本级的预取数据更新后的任务元数据输出至下一级预取单元或所述综合处理单元;
在所述综合处理单元中根据从最后一个后续预取单元接收的预取数据和任务元数据进行数据处理。
通过应用以上技术方案,基于数据预取的网络连接状态维护装置包括经Fifo缓存连接组成流水线形式的哈希计算单元、预取单元和综合处理单元,预取单元包括第一级预取单元和至少一个后续预取单元,其中,哈希计算单元,用于根据与网络连接状态维护任务对应的IP数据包元数据生成哈希值,并将包括哈希值和IP数据包元数据的任务元数据输出至第一级预取单元;第一级预取单元,用于根据哈希值从内存获取预取数据,并将预取数据和经预取数据更新后的任务元数据输出至首个后续预取单元;后续预取单元,用于根据从前一级预取单元接收的预取数据和任务元数据生成后续预取长度和预取地址,并根据后续预取长度和预取地址从内存获取本级的预取数据,并将本级的预取数据和经本级的预取数据更新后的任务元数据输出至下一级预取单元或综合处理单元;综合处理单元,用于根据从最后一个后续预取单元接收的预取数据和任务元数据进行数据处理,从而可以有效隐藏内存访问延迟,大幅提高网络连接状态维护的综合处理效率;同时,按需预取的设计也能避免冗余读操作,从而节省访存带宽和相应的硬件资源开销。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提出的一种基于数据预取的网络连接状态维护装置的结构示意图;
图2示出了本发明实施例中哈希计算单元接口与内部工作方式示意图;
图3示出了本发明实施例中第一级预取单元接口与内部工作方式示意图;
图4示出了本发明实施例中后续预取单元单级接口与内部工作方式示意图;
图5示出了本发明实施例中综合处理单元接口与内部工作方式示意图;
图6示出了本发明实施例提出的一种基于数据预取的网络连接状态维护方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种基于数据预取的网络连接状态维护装置,如图1所示,包括经Fifo(First Input First Output,先进先出)缓存连接组成流水线形式的哈希计算单元100、预取单元和综合处理单元400,预取单元包括第一级预取单元200和至少一个后续预取单元300,其中,
哈希计算单元100,用于根据与网络连接状态维护任务对应的IP数据包元数据生成哈希值,并将包括哈希值和IP数据包元数据的任务元数据输出至第一级预取单元200;
第一级预取单元200,用于根据哈希值从内存获取预取数据,并将预取数据和经预取数据更新后的任务元数据输出至首个后续预取单元300;
后续预取单元300,用于根据从前一级预取单元接收的预取数据和任务元数据生成后续预取长度和预取地址,并根据后续预取长度和预取地址从内存获取本级的预取数据,并将本级的预取数据和经本级的预取数据更新后的任务元数据输出至下一级预取单元或综合处理单元400;
综合处理单元400,用于根据从最后一个后续预取单元300接收的预取数据和任务元数据进行数据处理。
本实施例中,哈希计算单元100、预取单元和综合处理单元400之间通过Fifo缓存连接,组成流水线形式,保证各个单元可以同时并行操作,并可以通过Fifo平滑处理过程中的工作压力波动。预取单元包括第一级预取单元200和至少一个后续预取单元300,可根据需要设置后续预取单元300的个数,从而避免额外的硬件开销和处理时间增加。
IP数据包元数据是指IP数据包处理过程中一些典型元素的组合,常常包含IP5T,以及数据包长度,到达时间,协议标志,负载起点与长度、访存地址、DDR返回数据等应用分析中关注的数据。
IP5T是指IP数据的五个元素,分别为源IP地址(简称SIP),目的IP地址(简称DIP),源端口(简称sport),目的端口(简称dport),协议号(简称protocol或pro)。
哈希计算单元100接收到与网络连接状态维护任务对应的IP数据包元数据后,根据该IP数据包元数据生成哈希值,并将包括哈希值和IP数据包元数据的任务元数据输出至第一级预取单元200。第一级预取单元200接收到任务元数据后提取哈希值,并根据哈希值从内存获取预取数据,然后将预取数据和经预取数据更新后的任务元数据输出至首个后续预取单元300。各后续预取单元300的功能相同,后续预取单元300接收到预取数据和任务元数据后,生成后续预取长度和预取地址,根据后续预取长度和预取地址从内存获取本级的预取数据,然后基于本级的预取数据更新任务元数据,并将本级的预取数据和更新后的任务元数据输出至下一级预取单元或综合处理单元400。综合处理单元400接收从最后一个后续预取单元300输出的预取数据和任务元数据,并进行相应的数据处理。
为了提高第一级预取单元的可靠性,在本申请一些实施例中,第一级预取单元,具体用于:
根据从哈希计算单元接收的任务元数据分离出哈希值,并基于哈希值生成对内存的读命令;
若输出Fifo未满且未检测到暂停指令,向内存发出读命令并将从内存返回的预取数据输出至首个后续预取单元;
根据预取数据更新任务元数据,并将新的任务元数据输出至首个后续预取单元。
本实施例中,第一级预取单元接收到任务元数据后,从任务元数据中提取出哈希值,该哈希值表征了对内存的访存地址,然后基于哈希值生成对内存的读命令,若Fifo未满且未检测到暂停指令,则向内存发出读命令,从内存返回的预取数据经第一预取单元中转后输出至首个后续预取单元,同时,根据预取数据更新任务元数据,并将新的任务元数据输出至首个后续预取单元。
对内存的读指令是流水发出的,并不需要等待本条读指令的数据返回后再发送下一条指令,因而实现了隐藏访存延迟,提高吞吐率的目的。
为了提高第一级预取单元的可靠性,在本申请一些实施例中,暂停指令是在在途数据数不小于预设数量时触发的,在途数据数为内存接收到读命令后未返回的预取数据的数量。
本实施例中,根据读命令中的访存信息和从内存返回的有效信号进行综合计数,生成在途数据数,即内存接收到读命令后未返回的预取数据的数量,将在途数据数与预设数量进行比较,若在途数据数不小于预设数量,则触发暂停指令,停止向内存发送读指令,以防后端模块缓存不足导致溢出。
为了提高后续预取单元的可靠性,在本申请一些实施例中,后续预取单元具体用于:
根据后续预取长度和预取地址生成对内存的读指令;
若输出Fifo未满且未检测到暂停指令,向内存发出读命令并将从内存返回的预取数据输出至下一级预取单元或综合处理单元;
根据预取数据更新任务元数据,并将新的任务元数据输出至下一级预取单元或综合处理单元。
本实施例中,后续预取单元在后续预取长度为0时不再进行预取,因此可按需进行数据预取。后续预取单元根据后续预取长度和预取地址生成对内存的读指令,若输出Fifo未满且未检测到暂停指令,向内存发出读命令,从内存返回的预取数据经后续预取单元中转后输出至下一级预取单元或综合处理单元,同时,根据预取数据更新任务元数据,并将新的任务元数据输出至下一级预取单元或综合处理单元。
除了第一级预取单元外,后续预取单元可以不进行任何预取操作;即便要预取,也可以根据当前输入的任务数据和已经预取的数据进行综合判断,只预取必要长度的数据,是可变长度的。这样可以避免读取无用数据及浪费访存带宽。
为了提高综合处理单元的可靠性,在本申请一些实施例中,综合处理单元具体用于:
根据从最后一个后续预取单元接收的预取数据和任务元数据确定当前任务状态和已获取的流表数据;
根据当前任务状态和已获取的流表数据判断是否需要进一步获取流表数据;
若是,根据当前任务状态向内存发送读命令,并接收从内存返回的新的流表数据,并根据当前任务状态和最新的已获取的流表数据进行数据处理;
若否,根据当前任务状态和已获取的流表数据进行数据处理。
本实施例中,在流表数据方面,已经通过预取获得的数据域不需要再重复访存获取。但如果数据处理需要又没有通过预取获得,则需要综合处理单元单独进行访存读取。
综合处理单元接收到最后一个后续预取单元输出的预取数据和任务元数据后,根据该预取数据和任务元数据确定当前任务状态和已获取的流表数据,然后根据当前任务状态和已获取的流表数据判断当前已获取的流表数据是否足够,是否需要进一步获取流表数据,若需要,综合处理单元则根据当前任务状态向内存发送读命令,并接收从内存返回的新的流表数据,数据备齐后,根据当前任务状态和最新的已获取的流表数据进行数据处理;若不需要,则不再向内存发送读命令,根据当前任务状态和已获取的流表数据进行数据处理。
需要说明的是,综合处理单元根据当前任务状态和已获取的流表数据进行数据处理的具体过程对于本领域技术人员是显而易见的,在此不再赘述。
为了进一步提高综合处理单元的可靠性,在本申请一些实施例中,综合处理单元还用于:
若在结束数据处理后需要进行流表写操作,根据当前任务状态生成写命令,并基于写命令将与流表写操作对应的数据写入内存,并输出任务处理结果;
若在结束数据处理后不需要进行流表写操作,输出任务处理结果。
本实施例中,在进行网络连接状态维护时的一些情况下,在结束数据处理后需要进行流表写操作,若在结束数据处理后需要进行流表写操作,综合处理单元根据当前任务状态生成写命令,然后基于写命令将与流表写操作对应的数据写入内存,最后输出任务处理结果;若在结束数据处理后不需要进行流表写操作,则直接输出任务处理结果。
为了提高哈希计算单元,在本申请一些实施例中,哈希计算单元具体用于:
锁存接收到的IP数据包元数据的IP5T并记为r_IP5T;
取与IP数据包元数据对应的对向会话报文的IP5T并记为r_IP5T’;
确定IP5T的归一化结果:c_IP5T=min(r_IP5T, r_IP5T’);
基于预设哈希算法对IP5T的归一化结果计算并生成哈希值。
本实施例中,哈希计算单元接收到IP数据包元数据时,将IP数据包元数据的IP5T锁存,并记为r_IP5T,然后取与IP数据包元数据对应的对向会话报文的IP5T,并记为r_IP5T’,将两种IP5T进行归一化,即取会话双向IP5T中绝对值较小的那一个,c_IP5T=min(r_IP5T, r_IP5T’),然后使用预设哈希算法对IP5T的归一化结果计算并生成哈希值。
可选的,预设哈希算法包括CRC32算法。本领域技术人员可根据实际需要其他的哈希算法,这并不影响本申请的保护范围。
为了进一步提高数据处理效率,在本申请一些实施例中,内存为DDR内存。
本领域技术人员可根据实际需要采用其他的内存形式,这并不影响本申请的保护范围。
为了进一步提高数据处理效率,在本申请一些实施例中,装置集成在FPGA(FieldProgrammable Gate Array,现场可编程逻辑门阵列)芯片或ASIC(Application SpecificIntegrated Circuit,专用集成电路)芯片上。
通过应用以上技术方案,基于数据预取的网络连接状态维护装置包括经Fifo缓存连接组成流水线形式的哈希计算单元、预取单元和综合处理单元,预取单元包括第一级预取单元和至少一个后续预取单元,其中,哈希计算单元,用于根据与网络连接状态维护任务对应的IP数据包元数据生成哈希值,并将包括哈希值和IP数据包元数据的任务元数据输出至第一级预取单元;第一级预取单元,用于根据哈希值从内存获取预取数据,并将预取数据和经预取数据更新后的任务元数据输出至首个后续预取单元;后续预取单元,用于根据从前一级预取单元接收的预取数据和任务元数据生成后续预取长度和预取地址,并根据后续预取长度和预取地址从内存获取本级的预取数据,并将本级的预取数据和经本级的预取数据更新后的任务元数据输出至下一级预取单元或综合处理单元;综合处理单元,用于根据从最后一个后续预取单元接收的预取数据和任务元数据进行数据处理,从而可以有效隐藏内存访问延迟,大幅提高网络连接状态维护的综合处理效率;同时,按需预取的设计也能避免冗余读操作,从而节省访存带宽和相应的硬件资源开销。
为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。
本申请实施例提供一种基于数据预取的网络连接状态维护装置,包括结构设计和操作步骤设计两部分内容。
结构设计模块框图如图1所示。要点如下:
(1)独立设置哈希计算单元、预取单元、综合处理单元;
(2)各单元间通过Fifo缓存连接,组成流水线形式;
(3)流水线中预取单元的级数按需设置,单个设计中保持不变。
操作步骤要点如下:
(1)哈希计算单元生成首次预取地址;
(2)第一级预取单元流水发出读内存指令,并在流水接收到返回数据后向下一级单元流水输出;
(3)后续预取单元根据输入数据综合判断,生成后续预取长度(0表示不再预取)和地址,按需进行数据预取;
(4)综合处理单元接收预取数据和其他任务数据,进行后续处理。
以下对具体的操作步骤进行说明。
S100:任务输入和哈希计算。
在本步骤,按照既定格式接受输入的IP数据包元数据,然后进行相应的转换和计算,生成对应的哈希值并输出。
如图2所示,具体过程如下:
S110:接收输入数据IP5T({sip,dip,sport,dport,pro}),并锁存,记为r_IP5T({r_sip,r_dip,r_sport,r_dport,r_pro});
S120:取本输入报文的对向会话报文IP5T,记为r_IP5T’={r_dip,r_sip,r_dport,r_pro};
S130:对输入IP5T进行归一化,取会话双向IP5T中绝对值较小的那一个,记c_IP5T=min(r_IP5T, r_IP5T’);
S140:使用CRC32计算模块对归一化之后的IP5T进行哈希计算:h=CRC32(c_IP5T);
S150:输出任务元数据,即计算后的哈希值h和原始IP包元数据。
S200:预取单元:第1级。
第一级预取单元的功能是根据哈希计算单元生成的hash地址,生成第一次访存的访存地址并发送访存命令(即对内存的读命令),流水化发送访存命令并流水化接受返回数据,汇同元数据一并向后发送。
如图3所示,具体过程如下:
S210:接收输入的任务元数据,分离其中的哈希值,传递给访存地址生成单元(Genvmcmd);
S220:访存地址生成单元,根据输入的哈希值生成对应的访存命令。然后判断输出Fifo是否将满,以及流控单元是否发出暂停指令(Dstream,Pause);若都为否,则向读命令通道发出DDR读命令;
S230:读数据返回,经本单元中转后直接向下一级单元输出;
S240:流控单元,根据访存地址生成单元送来的访存信息和读返回数据的有效信号进行综合计数,生成在途数据数(即已经发出了读请求,但尚未从接口返回的在途DDR数据个数);
S250:将在途数据数与预定义参数进行比较,若大于等于预定义参数,则将暂停信号置位,通知访存地址生成单元暂停命令发送,以防止后端模块缓存不足导致溢出;
S260:流控单元根据访存信息生成新的任务元数据,合并进入元数据总线,继续向后续单元传递。
S300:预取单元:第2级至第n级。
预取单元从第2级起(即从第一个后续预取单元起),可以向后重复衍生设置多级,每一级的结构类似,工作步骤也类似,在此统一说明。
单个后续预取单元的功能是根据预取返回的数据和任务本身的相应元数据,生成本级预取访存的地址并发送访存命令,流水化发送访存命令并流水化接受返回数据,汇同元数据一并向后发送。
如图4所示,具体过程如下:
S310:接收输入的任务元数据(含之前已经预取获得的DDR数据)和上一级预取单元传递过来的DDR预取数据,分离其中的相关预取数据和任务元数据,传递给访存地址生成单元(Gen vmcmd);
S320:访存地址生成单元根据输入的预取数据和任务元数据,生成对应的访存命令。然后判断输出Fifo是否将满,以及流控单元是否发出暂停指令(Dstream,Pause);若都为否,则向读命令通道发出DDR读命令;
S330:读数据返回,经本单元中转后直接向下一级单元输出;
S340:流控单元,根据访存地址生成单元送来的访存信息和读返回数据的有效信号进行综合计数,生成在途数据数(即已经发出了读请求,但尚未从接口返回的在途DDR数据个数);
S350:将在途数据数与预定义参数进行比较,若大于等于预定义参数,则将暂停信号置位,通知访存地址生成单元暂停命令发送,以防止后端单元缓存不足导致溢出;
S360:流控单元根据访存信息生成新的任务元数据,合并进入元数据总线,继续向后续单元传递。
S400:综合处理单元
综合处理单元是流管理操作的真正业务处理单元,主要功能是根据应用需求完成输入数据的各种操作。其中,在流表数据方面,已经通过预取获得的数据域则不需要再重复访存获取。但如果数据处理需要又没有通过预取获得,则需要本单元单独进行DDR访存读取。
如图5所示,具体过程如下:
S410:接收输入的任务元数据(含之前已经预取获得的DDR数据)和上一级预取单元传递过来的DDR预取数据;
S420:根据当前任务处理状态和已经获得的流表数据进行分析,判断是否需要进一步获取流表数据,若是,转S430;否则,转S450。
S430:访存命令模块(Genvmcmd)根据当前任务需要,生成读访存命令,通过访存接口发出读取DDR命令;
S440:等待DDR读数据返回,数据齐备后,转下一步;
S450:根据当前任务状态和已经获取的流表数据,进行相应的数据处理;
S460:判断数据处理是否结束,若是转下一步,否者,转S420;
S470:判断是否需要进行流表写操作,若是,转下一步,否者,转S490;
S480:访存命令模块(Genvmcmd)根据当前任务需要,生成写访存命令,通过访存接口发出写DDR命令(含对应的写数据);
S490:输出任务处理结果,流程结束。
与现有技术对比,本发明具备以下有益效果:
1、针对DDR访问延迟长的固有不足,通过流水化预取操作隐藏了访问延迟,可以提升单个模块的包处理效率至流水化之前的5倍以上。
2、针对流表处理中可能存在数据依赖关系的固有特点,通过多级预取机制的设置,使得存在数据依赖关系的数据处理可以被分别预取,可以提升模块的包处理效率至分级预取之前的5倍以上。
3、通过并行设置n个预取单元的专用结构设计,使得多级预取可以并行执行,可以提升预取模块的包处理效率至单个模块的n倍。
4、通过预取访存与综合处理模块灵活访存组合工作的方式,使得大量的访存操作通过预取完成,保证了处理的高效;同时通过综合处理模块灵活访存的方式可以在算法设计时提升基于哈希机制的流表存储利用率,从而有效的压缩内存存储需求。相比未采用此种方式的方案,DDR的存储需求可以减少30%以上。
本申请实施例还提出了一种基于数据预取的网络连接状态维护方法,应用于如上所述的装置中,如图6所示,该方法包括以下步骤:
步骤S101,在所述哈希计算单元中根据与网络连接状态维护任务对应的IP数据包元数据生成哈希值,并将包括所述哈希值和所述IP数据包元数据的任务元数据输出至第一级预取单元;
步骤S102,在所述第一级预取单元中根据所述哈希值从内存获取预取数据,并将预取数据和经预取数据更新后的任务元数据输出至首个后续预取单元;
步骤S103,在所述后续预取单元中根据从前一级预取单元接收的预取数据和任务元数据生成后续预取长度和预取地址,并根据后续预取长度和预取地址获取本级的预取数据,并将本级的预取数据和经本级的预取数据更新后的任务元数据输出至下一级预取单元或所述综合处理单元;
步骤S104,在所述综合处理单元中根据从最后一个后续预取单元接收的预取数据和任务元数据进行数据处理。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种基于数据预取的网络连接状态维护装置,其特征在于,所述装置包括经Fifo缓存连接组成流水线形式的哈希计算单元、预取单元和综合处理单元,所述预取单元包括第一级预取单元和至少一个后续预取单元,其中,
所述哈希计算单元,用于根据与网络连接状态维护任务对应的IP数据包元数据生成哈希值,并将包括所述哈希值和所述IP数据包元数据的任务元数据输出至第一级预取单元;
所述第一级预取单元,用于根据所述哈希值从内存获取预取数据,并将预取数据和经预取数据更新后的任务元数据输出至首个后续预取单元;
所述后续预取单元,用于根据从前一级预取单元接收的预取数据和任务元数据生成后续预取长度和预取地址,并根据后续预取长度和预取地址从内存获取本级的预取数据,并将本级的预取数据和经本级的预取数据更新后的任务元数据输出至下一级预取单元或所述综合处理单元;
所述综合处理单元,用于根据从最后一个后续预取单元接收的预取数据和任务元数据进行数据处理。
2.如权利要求1所述的装置,其特征在于,所述第一级预取单元,具体用于:
根据从哈希计算单元接收的任务元数据分离出所述哈希值,并基于所述哈希值生成对内存的读命令;
若输出Fifo未满且未检测到暂停指令,向内存发出读命令并将从内存返回的预取数据输出至首个后续预取单元;
根据预取数据更新任务元数据,并将新的任务元数据输出至首个后续预取单元。
3.如权利要求1所述的装置,其特征在于,所述后续预取单元具体用于:
根据后续预取长度和预取地址生成对内存的读命令;
若输出Fifo未满且未检测到暂停指令,向内存发出读命令并将从内存返回的预取数据输出至下一级预取单元或所述综合处理单元;
根据预取数据更新任务元数据,并将新的任务元数据输出至下一级预取单元或所述综合处理单元;
其中,所述后续预取单元在后续预取长度为0时不再进行预取。
4.如权利要求2或3所述的装置,其特征在于,所述暂停指令是在在途数据数不小于预设数量时触发的,所述在途数据数为内存接收到读命令后未返回的预取数据的数量。
5.如权利要求1所述的装置,其特征在于,所述综合处理单元具体用于:
根据从最后一个后续预取单元接收的预取数据和任务元数据确定当前任务状态和已获取的流表数据;
根据当前任务状态和已获取的流表数据判断是否需要进一步获取流表数据;
若是,根据当前任务状态向内存发送读命令,并接收从内存返回的新的流表数据,并根据当前任务状态和最新的已获取的流表数据进行数据处理;
若否,根据当前任务状态和已获取的流表数据进行数据处理。
6.如权利要求5所述的装置,其特征在于,所述综合处理单元还用于:
若在结束数据处理后需要进行流表写操作,根据当前任务状态生成写命令,并基于写命令将与流表写操作对应的数据写入内存,并输出任务处理结果;
若在结束数据处理后不需要进行流表写操作,输出任务处理结果。
7.如权利要求1所述的装置,其特征在于,所述哈希计算单元具体用于:
锁存接收到的所述IP数据包元数据的IP5T并记为r_IP5T;
取与所述IP数据包元数据对应的对向会话报文的IP5T并记为r_IP5T’;
确定IP5T的归一化结果:c_IP5T=min(r_IP5T, r_IP5T’);
基于预设哈希算法对IP5T的归一化结果计算并生成所述哈希值;
其中,IP5T为IP数据的五个元素,包括源IP地址、目的IP地址、源端口、目的端口和协议号,min(r_IP5T, r_IP5T’)为取会话双向IP5T中绝对值较小的那一个。
8.如权利要求1-7任一项所述的装置,其特征在于,内存为DDR内存。
9.如权利要求8所述的装置,其特征在于,所述装置集成在FPGA芯片或ASIC芯片上。
10.一种基于数据预取的网络连接状态维护方法,其特征在于,所述方法应用于如权利要求1-9任一项所述的装置中,所述方法包括:
在所述哈希计算单元中根据与网络连接状态维护任务对应的IP数据包元数据生成哈希值,并将包括所述哈希值和所述IP数据包元数据的任务元数据输出至第一级预取单元;
在所述第一级预取单元中根据所述哈希值从内存获取预取数据,并将预取数据和经预取数据更新后的任务元数据输出至首个后续预取单元;
在所述后续预取单元中根据从前一级预取单元接收的预取数据和任务元数据生成后续预取长度和预取地址,并根据后续预取长度和预取地址获取本级的预取数据,并将本级的预取数据和经本级的预取数据更新后的任务元数据输出至下一级预取单元或所述综合处理单元;
在所述综合处理单元中根据从最后一个后续预取单元接收的预取数据和任务元数据进行数据处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210391283.1A CN114710421B (zh) | 2022-04-14 | 2022-04-14 | 一种基于数据预取的网络连接状态维护装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210391283.1A CN114710421B (zh) | 2022-04-14 | 2022-04-14 | 一种基于数据预取的网络连接状态维护装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114710421A CN114710421A (zh) | 2022-07-05 |
CN114710421B true CN114710421B (zh) | 2022-10-25 |
Family
ID=82174477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210391283.1A Active CN114710421B (zh) | 2022-04-14 | 2022-04-14 | 一种基于数据预取的网络连接状态维护装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114710421B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103490A (zh) * | 2010-12-17 | 2011-06-22 | 曙光信息产业股份有限公司 | 一种利用流水处理提高内存效率的方法 |
CN105159654A (zh) * | 2015-08-21 | 2015-12-16 | 中国人民解放军信息工程大学 | 基于多线程并行的完整性度量散列算法优化方法 |
CN113632427A (zh) * | 2021-06-25 | 2021-11-09 | 新华三技术有限公司 | 一种报文匹配方法、装置、网络设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10078514B2 (en) * | 2016-05-11 | 2018-09-18 | International Business Machines Corporation | Techniques for dynamic sequential instruction prefetching |
-
2022
- 2022-04-14 CN CN202210391283.1A patent/CN114710421B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103490A (zh) * | 2010-12-17 | 2011-06-22 | 曙光信息产业股份有限公司 | 一种利用流水处理提高内存效率的方法 |
CN105159654A (zh) * | 2015-08-21 | 2015-12-16 | 中国人民解放军信息工程大学 | 基于多线程并行的完整性度量散列算法优化方法 |
CN113632427A (zh) * | 2021-06-25 | 2021-11-09 | 新华三技术有限公司 | 一种报文匹配方法、装置、网络设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114710421A (zh) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111126589B (zh) | 神经网络数据处理装置、方法和电子设备 | |
US9632937B2 (en) | Pre-decoding analysis based configuration information cache management method and system | |
US8001278B2 (en) | Network packet payload compression | |
US10042576B2 (en) | Method and apparatus for compressing addresses | |
US20050086353A1 (en) | Fast and adaptive packet processing device and method using digest information of input packet | |
US20120173846A1 (en) | Method to reduce the energy cost of network-on-chip systems | |
US8959155B1 (en) | Data compression through redundancy removal in an application acceleration environment | |
JP2008065834A (ja) | フュージョンメモリ装置及び方法 | |
US8423689B2 (en) | Communication control device, information processing device and computer program product | |
US11687276B2 (en) | Data streaming for computational storage | |
CN113411380B (zh) | 基于fpga可编程会话表的处理方法、逻辑电路和设备 | |
CN114968102B (zh) | 一种数据缓存方法、装置、系统、计算机设备及存储介质 | |
KR100452640B1 (ko) | 데이터 패킷 수신 장치 및 방법 | |
US20220365892A1 (en) | Accelerating Method of Executing Comparison Functions and Accelerating System of Executing Comparison Functions | |
CN114710421B (zh) | 一种基于数据预取的网络连接状态维护装置和方法 | |
WO2020211000A1 (zh) | 数据解压缩的装置与方法 | |
US20050105556A1 (en) | Packet processor and buffer memory controller for extracting and aligning packet header fields to improve efficiency of packet header processing of main processor and method and medium therefor | |
KR102692838B1 (ko) | 저장 디바이스들에 대한 강화된 선판독 능력 | |
CN114401072B (zh) | 一种基于hinoc协议的拆帧重排序队列的动态缓存控制方法及系统 | |
CN103631726B (zh) | 一种串接流式计算节点的文件处理方法及装置 | |
US6615334B2 (en) | Method and apparatus for I/O data management with an I/O buffer in compressed memory subsystem | |
US20080263314A1 (en) | Address translation apparatus which is capable of easily performing address translation and processor system | |
CN118132472B (zh) | 一种基于多接口ddr内存控制器的实现方法及装置 | |
WO2023115319A1 (zh) | 一种数据存储方法、存储装置及设备 | |
CN108399146B (zh) | Flash控制器、取指令方法及计算机可读存储介质 |
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 |