CN116185502B - 流水线处理器及电子设备 - Google Patents

流水线处理器及电子设备 Download PDF

Info

Publication number
CN116185502B
CN116185502B CN202310126390.6A CN202310126390A CN116185502B CN 116185502 B CN116185502 B CN 116185502B CN 202310126390 A CN202310126390 A CN 202310126390A CN 116185502 B CN116185502 B CN 116185502B
Authority
CN
China
Prior art keywords
pipeline
message
information
instruction
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.)
Active
Application number
CN202310126390.6A
Other languages
English (en)
Other versions
CN116185502A (zh
Inventor
阮召崧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Jinzhen Microelectronics Technology Co ltd
Original Assignee
Nanjing Jinzhen Microelectronics Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Jinzhen Microelectronics Technology Co ltd filed Critical Nanjing Jinzhen Microelectronics Technology Co ltd
Priority to CN202310126390.6A priority Critical patent/CN116185502B/zh
Publication of CN116185502A publication Critical patent/CN116185502A/zh
Application granted granted Critical
Publication of CN116185502B publication Critical patent/CN116185502B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种流水线处理器及电子设备。所述流水线处理器包括:第一指令转换流水线,用于获取至少一个第二报文改写指令;第二指令转换流水线,用于基于所述第二报文改写指令的第一位置信息、命令信息以及改写字节量获取对应的控制信息;控制信息生成流水线,用于获取第一目标报文中的字节的来源信息以及计数信息;有效指示信息生成流水线,用于基于所述计数信息获取有效指示信息;第一目标报文生成流水线,用于基于所述有效指示信息和所述来源信息获取所述第一目标报文。所述流水线处理器在各流水线的协作下,高效的完成报文编辑工作。

Description

流水线处理器及电子设备
技术领域
本申请属于报文处理领域,涉及一种流水线处理器,特别是涉及一种流水线处理器及电子设备。
背景技术
流水线技术是指程序在执行时候多条指令重叠进行操作的一种准并行处理实现技术,通常是将一个时序过程分解成若干子过程,每个过程都能有效的与其它子过程同时执行。报文编辑一般是根据报文改写指令,例如报文的插入指令、报文的删除指令等,根据改写报文对原始报文进行处理获得目标报文的过程。目前,针对报文编辑的流水线处理报文的效率较低,相应的流水线处理器也无法满足实际的工作需求。
发明内容
本申请的目的在于提供一种流水线处理器及电子设备,用于解决现有的具备报文编辑功能的流水线处理器处理报文的效率较低,无法满足实际的工作需求的问题。
第一方面,本申请提供一种流水线处理器,所述流水线处理器包括:第一指令转换流水线,用于对至少一个第一报文改写指令进行格式转换,以获取至少一个第二报文改写指令;第二指令转换流水线,用于基于所述第二报文改写指令的第一位置信息、命令信息以及改写字节量获取对应的控制信息,所述控制信息包含原始报文改写的起止位置信息、改写的字节量和新增的字节量;控制信息生成流水线,用于基于改写数据包长度和所述控制信息获取第一目标报文中的字节的来源信息以及计数信息,所述来源信息用于指示所述第一目标报文中的字节来源和位置,所述计数信息包括输出数据的计数值,所述输出数据包括所述原始报文的子数据和所述改写数据包的子数据;有效指示信息生成流水线,用于基于所述计数信息获取有效指示信息,所述有效指示信息用于指示是否需要所述原始报文寄存器或所述改写数据寄存器额外加载所述有效指示信息对应的输出数据中的数据;第一目标报文生成流水线,用于基于所述有效指示信息和所述来源信息获取所述第一目标报文。
根据所述流水线处理器中的第一指令转换流水线、第二指令转换流水线、控制信息生成流水线、有效指示信息生成流水线以及第一目标报文生成流水线,能够使得所述流水线处理器在各流水线的协作下,高效的完成报文编辑工作。
于本申请的一实施例中,所述第一指令转换流水线包括两个格式转换单元、一个第一触发器、设于所述第一触发器和所述格式转换单元之间的一个第二触发器,所述报文改写指令集合包含八个所述第一报文改写指令,所述第一指令转换流水线转换单个所述第一报文改写指令的时长为两个时钟周期,所述第一指令转换流水线从所述报文改写指令集合中取出全部的所述第一报文改写指令的时长为四个所述时钟周期。
于本申请的一实施例中,所述第二指令转换流水线包括:四个相连的第三触发器、八个相连的第四触发器、设于所述第三触发器和所述第四触发器之间的转换处理单元,所述第三触发器的输出包括所述第二报文改写指令的命令信息、第一位置信息和改写字节量,所述第四触发器的输出包括所述控制信息,所述第二指令转换流水线对八个所述第二报文改写指令的转换处理时长为四个所述时钟周期。
于本申请的一实施例中,所述字节来源和位置包括所述第一目标报文的字节来自所述原始报文和在所述原始报文中的位置,或所述第一目标报文的字节来自所述改写数据包和在所述改写数据包中的位置,所述原始报文寄存器包括第一原始报文寄存器、第二原始报文寄存器,所述改写数据寄存器包括第一改写数据寄存器、第二改写数据寄存器,所述有效指示信息生成流水线包括所述第一原始报文寄存器、所述第二原始报文寄存器、所述第一改写数据寄存器和所述第二改写数据寄存器,所述第一原始报文寄存器和所述第二原始报文寄存器从原始报文的缓存数据中加载所述原始报文,所述第一改写数据寄存器和所述第二改写数据寄存器从改写数据的缓存数据中加载所述改写数据。
于本申请的一实施例中,所述控制信息生成流水线包括第一运算单元和第二运算单元,所述第一运算单元用于对所述改写数据包长度进行处理,以获取所述改写数据包的计数信息,所述第二运算单元包括比较运算单元和重定位运算单元,所述第二运算单元用于对所述改写数据包的计数信息、所述控制信息进行处理,以获取所述来源信息。
于本申请的一实施例中,所述流水线处理器还包括字节数值改写流水线,所述字节数值改写流水线接收所述第二指令转换流水线的输出和所述第一目标报文生成流水线的输出,所述第二指令转换流水线的输出包括至少一个字节数值改写指令的类型信息、位置信息、所述字节数值改写指令对应的改写数据,所述字节数值改写流水线用于基于各所述字节数值改写指令的类型信息、位置信息、所述字节数值改写指令对应的改写数据和所述第一目标报文,对所述第一目标报文中字节的数值进行处理,以获取第二目标报文,所述字节数值改写指令的位置信息为所述第一目标报文中被改写字节的位置信息。
于本申请的一实施例中,所述流水线处理器还包括校验和数据更新流水线,所述校验和数据更新流水线接收所述字节数值改写流水线的输出,所述字节数值改写流水线的输出还包括:至少一个校验和指令的类型信息、第一报文头的起始信息、第二报文头的起始信息,所述校验和数据更新流水线用于基于所述校验和指令的类型信息、第一报文头的起始信息、第二报文头的起始信息和所述第二目标报文,获取第三目标报文,所述第三目标报文的校验和数据为更新后的校验和数据。
于本申请的一实施例中,所述校验和数据更新流水线包括多个16位加法器,所述16位加法器用于基于第四目标报文,获取所述第三目标报文的校验和数据,所述第四目标报文为掩盖掉部分字节的所述第二目标报文。
于本申请的一实施例中,所述流水线处理器还包括报文分发流水线和网卡仲裁流水线,所述报文分发流水线用于分发所述第三目标报文,所述网卡仲裁流水线用于作所述第三目标报文输出的网络接口。
第二方面,本申请提供一种电子设备,所述电子设备包括第一方面任一项所述的流水线处理器。
如上所述,本申请所述流水点处理器及电子设备,具有以下有益效果:
根据所述流水线处理器中的第一指令转换流水线、第二指令转换流水线、控制信息生成流水线、有效指示信息生成流水线以及第一目标报文生成流水线,能够使得所述流水线处理器在各流水线的协作下,高效的完成报文编辑工作。
附图说明
图1显示为本申请实施例所述第一指令转换流水线的结构示意图。
图2显示为本申请实施例所述第二指令转换流水线的结构示意图。
图3显示为本申请实施例所述控制信息生成流水线的结构示意图。
图4显示为本申请实施例加载所述原始报文寄存器和改写数据寄存器的结构示意图。
图5显示为本申请实施例多种所述原始报文寄存器的加载模式的示意图。
图6显示为本申请实施例所述字节数值改写流水线的结构示意图。
元件标号说明
110 第一指令转换流水线
1110 格式转换单元
1120 第一触发器
1130 第二触发器
1140 第一有限状态机
1150 第一正确性检测单元
120 第二指令转换流水线
1210 第三触发器
1220 第四触发器
1230 转换处理单元
1240 第二正确性检测单元
1250 第二有限状态机
1260 第五触发器
1270 第六触发器
130 控制信息生成流水线
1310 第一运算单元
1320 第二运算单元
13210 比较运算单元
13220 重定位运算单元
140 字节数值改写流水线
1410 第五触发器
1420 第六触发器
1430 第七触发器
1440 第一数据选择器
1450 第二数据选择器
1460 第三运算单元
1470 第四运算单元
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,遂图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细描述。
本申请实施例提供一种流水线处理器,所述流水线处理器包括:第一指令转换流水线,用于对至少一个第一报文改写指令进行格式转换,以获取至少一个第二报文改写指令;第二指令转换流水线,用于基于所述第二报文改写指令的第一位置信息、命令信息以及改写字节量获取对应的控制信息,所述控制信息包含原始报文改写的起止位置信息、改写的字节量和新增的字节量;控制信息生成流水线,用于基于改写数据包长度和所述控制信息获取第一目标报文中的字节的来源信息以及计数信息,所述来源信息用于指示所述第一目标报文中的字节来源和位置,所述计数信息包括输出数据的计数值,所述输出数据包括所述原始报文的子数据和所述改写数据包的子数据;有效指示信息生成流水线,用于基于所述计数信息获取有效指示信息,所述有效指示信息用于指示是否需要所述原始报文寄存器或所述改写数据寄存器额外加载所述有效指示信息对应的输出数据中的数据;第一目标报文生成流水线,用于基于所述有效指示信息和所述来源信息获取所述第一目标报文。
可选地,所述第一报文改写指令可以包括:字节插入指令、字节替换指令、字节删除指令、字节滑动删除指令或跳过指令等。所述第一报文改写指令可以包括:所示第一报文改写指令的命令信息、第一位置信息、第二位置信息、改写字节量,当所述第一报文改写指令为所述字节插入指令时,所述第一报文改写指令的命令信息可以为插入,所述第一报文改写指令的命令信息可以通过编码表示,所述第一报文改写指令的第一位置信息可以表示为所述第一报文改写指令改写的报文中的起始位置信息,所述第一报文改写指令的第二位置信息可以表示为所述第一报文改写指令对应的改写数据在改写数据包中的位置信息,可以根据所述第一报文改写指令的第二位置信息获取所述第一报文改写指令对应的改写数据,所述第一报文改写指令的改写字节量为所述第一报文改写指令对应的改写数据的大小,例如所述第一报文改写指令为字节插入指令,所述字节插入指令用于在原始报文中插入字节,所述字节插入指令的第一位置信息为2,位置信息一般是由0开始计数,可以表示从原始报文的第三个字节开始插入字节,当插入两个字节时,所述字节插入指令的改写字节量为2。所述改写数据长度可以为所述改写数据包的长度,例如8个所述第一报文改写指令对应的一个改写数据包,所述改写数据包包含了各所述第一报文改写指令所需的改写数据,当所述改写数据包包含了16个字节,所述改写数据包的长度可以为16字节长度。
可选地,所述控制信息包括第一控制信息、第二控制信息、第三控制信息和第四控制,所述第一控制信息为所述原始报文改写的起始位置信息,所述第二控制信息为所述原始报文改写的终止位置信息,所述第三控制信息为所述原始报文改写的字节量,所述第四控制信息为所述原始报文新增的字节量。例如,当有两个第二报文改写指令分别为指令1和指令2,指令1为字节插入指令,指令2为字节替换指令,当指令1的第一位置信息为2、改写字节量为4,对原始报文B1、B2、B3、B4、B5、B6、B7、B8、B9、B10、B11、B12、B13、B14和B15进行改写时,指令1对应的第一控制信息为2、第二控制信息为6、第三控制信息为4、第四控制信息为4,当指令2的第一位置信息为4、改写字节量为2时,指令2对应的第一控制信息为8、第二控制信息为10、第三控制信息为6、第四控制信息为4。
当第二报文改写指令的命令信息为插入,所述第二报文改写指令的第一位置信息为2、所述第二报文改写指令的改写字节量为4,所述原始报文为B1、B2、B3、B4、B5、B6、B7、B8、B9、B10、B11、B12、B13、B14和B15时,该第二操作指令对应的第一控制信息为2,该第二操作指令对应的第二控制信息为6,该第二操作指令对应的第三控制信息为4,该第二操作指令对应的第四控制信息为4。
所述字节替换指令、所述字节删除指令、所述字节滑动删除指令和所述跳过指令此处为节省说明书篇幅,不再一一举例。另外,所述字节滑动删除指令与所述字节删除指令不同的是,所述字节滑动删除指令的第一控制信息和第二控制信息相同。
可选地,所述第一报文改写指令的指令格式为所述第一报文改写指令的命令信息、所述第一报文改写指令的第一位置信息、所述第一报文改写指令的第二位置信息、所述第一报文改写指令的改写字节量顺序排列,所述第二报文改写指令的指令格式为:所述第二报文指令的命令信息、所述第二报文改写指令的第一位置信息、所述第二报文改写指令的改写字节量顺序排列,所述第二报文改写指令的第一位置信息、所述第二报文改写指令的改写字节量、所述第二报文改写指令的命令信息与所述第一报文改写指令中的类似,此处不再赘述。
可选地,处理器中的流水线技术都具有一定的时序逻辑,为节省篇幅,所述流水线处理器对时钟信号等的内容进行了省略。所述输出数据包括第一输出数据和第二输出数据,所述计数信息包括第一计数信息和第二计数信息,所述第一计数信息为所述第一输出数据的计数值,所述第二计数信息为所述第二计数信息的计数值,所述第一输出数据可以为在不同的时钟周期内,从所述原始报文中输出的子数据,例如所述原始报文包含A、B、C、D、E、F五个字节,可以在时钟周期a内输出A、B、C,在时钟周期b内输出D、E、F,时钟周期a内的第一计数信息为3个字节,若所述原始报文寄存器中存储的原始报文的字节数小于3,则所述原始报文寄存器需要额外加载下一时钟周期的原始报文的字节。所述控制信息生成流水线可以根据一定的时序逻辑,在一个时钟周期内同时获取当前第一输出数据的最后一个字节的计数信息和下一个第一输出数据的第一个字节的计数信息,所述当前第一输出数据的第一计数信息可以根据当前第一输出数据的第一个字节的计数信息和当前第一输出数据的最后一个字节的计数信息获取,例如第一个字节的计数信息为3,最后一个字节的计数信息为7,则当前第一输出数据的第一计数信息为5个字节。所述第二输出数据、所述第二计数信息等与上述第一输出数据、第一计数信息的原理一致,本实施例不再赘述。
可选地,所述流水线处理器还包括相应的处理器接口,处理器接口的相关技术本实施例不再介绍。
可选地,请参阅图1,所述第一指令转换流水线110包括两个格式转换单元1110、一个第一触发器1120、设于所述第一触发器1120和所述格式转换单元1110之间的一个第二触发器1130,报文改写指令集合包含八个所述第一报文改写指令,所述第一指令转换流水线110转换单个所述第一报文改写指令的时长为两个时钟周期,所述第一指令转换流水线110从所述报文改写指令集合中取出全部的所述第一报文改写指令的时长为四个所述时钟周期。
可选地,所述第一触发器1120、第二触发器1130均用于实现时序逻辑,下述的第三触发器、第四触发器、第五触发器等均与所述第一触发器、所述第二触发器功能一致。
可选地,所述两个格式转换单元1110可以为两个并行的格式转换单元1110,所述格式转换单元1110转换所述第一报文改写指令的过程,本实施例在此不再赘述。
可选地,所述第一指令转换流水线110还可以包括第一有限状态机1140,所述第一报文改写指令从被取出到被所述格式转换单元1110处理再到所述第一触发器1120的过程会历经多个状态,所述第一有限状态机1140能够用于模拟所述第一报文改写指令历经的状态,有限状态机的内容本实施例不再过多赘述。
可选地,所述第一指令转换流水线110还可以包括第一正确性检测单元1150,所述第一正确性检测单元1150可以用于对所述报文改写指令集合在所述第一指令转换流水线110中出现的错误类型进行检测,例如所述第一指令转换流水线110处理了三个出现错误的报文改写指令集合,分别为A,B,C,A对应的错误类型可以为第一错误类型,B对应的错误类型可以为第二错误类型,C对应的错误类型可以为所述第一错误类型,其中所述第一错误类型、所述第二错误类型的具体内容,本实施例不再详细说明。
可选地,所述第一指令转换流水线110还可以包括对至少一个字节数值改写指令进行处理,以获取所述字节数值改写指令的第一位置信息和所述字节数值改写指令对应的改写数据。所述字节数值改写指令包括第一位置信息、第二位置信息、改写数据域,所述字节数值改写指令的第一位置信息可以为所述原始报文中字节的位置信息,例如所述字节数值改写指令对原始报文中第三个字节的数值进行改写时,所述字节数值改写指令的第一位置信息可以为2,所述字节数值改写指令的第二位置信息可以用于从所述改写数据域获取所述字节数值改写指令对应的改写数据,例如所述改写数据域包括A、B、C三个字节,所述第二位置信息可以为[0,1],表示从所述改写数据域中获取A、B两个改写数据。
可选地,所述第一指令转换流水线110还可以包括对各校验和指令进行处理,以获取所述各所述校验和指令的第一位置信息和第二位置信息,所述校验和指令的第一位置信息可以作为第一报文头的起始信息,所述校验和指令的第二位置信息可以作为第二报文头的起始信息,所述第一报文头可以为以太网三层报文头,所述第二报文头可以为以太网四层报文头。
可选地,请参阅图2,所述第二指令转换流水线120包括:四个相连的第三触发器1210、八个相连的第四触发器1220、设于所述第三触发器1210和所述第四触发器1220之间的转换处理单元1230,所述第三触发器1210的输出包括所述第二报文改写指令的命令信息、第一位置信息和改写字节量,所述第四触发器1220的输出包括所述控制信息,所述第二指令转换流水线对八个所述第二报文改写指令的转换处理时长为四个所述时钟周期。
可选地,所述第二指令转换流水线120还可以包括:第二正确性检测单元1240,所述第二正确性检测单元1240用于对所述报文改写指令集合在所述第二指令转换流水线120中出现的错误进行检测,若所述第二正确性检测单元检测出所述报文改写指令集合出现错误,则直接将具有错误的所述报文改写指令集合舍弃。
可选地,所述第二指令转换流水线120还可以包括:第二有限状态机1250,所述第二报文改写指令在所述第二指令转换流水线120中会历经多个状态,所述第二有限状态机1250能够用于模拟所述第二报文改写指令历经的状态。
可选地,所述第二指令转换流水线120还可以包括:对所述字节数值改写指令的第一位置信息进行更新,以获取所述字节数值改写指令更新后的第一位置信息。例如,当存在一个字节数值改写指令A,A的第一位置信息未更新前为3,表示对所述原始报文的第四个字节的数值进行改写,当所述原始报文的第二个字节和第三个字节插入了一个新字节时,未插入新字节前的原始报文的第四个字节变成了插入新字节后的第五个字节,所述第一位置信息更新为4。
可选地,所述第二指令转换流水线120还可以包括:对所述校验和指令的第一位置信息和第二位置信息进行更新,以获取所述校验和指令更新后的第一位置信息和更新后的第二位置信息。所述校验和指令更新的过程与上文字节数值改写指令类似,此处不再赘述。
可选地,所述第二指令转换流水线120还可以包括:第五触发器1260和第六触发器1270,所述第五触发器1260的输入可以包括:所述字节数值改写指令的编码、所述字节数值改写指令对应的改写数据等,所述第六触发器1270的输入可以包括:所述校验和指令、所述第一报文头的起始信息和所述第二报文头的起始信息等。
可选地,所述流水线处理器中可以设置多条并行的所述第二指令转换流水线120。
可选地,请参阅图3,所述控制信息生成流水线130包括第一运算单元1310和第二运算单元1310,所述第一运算单元1310用于对所述改写数据包长度进行处理,以获取所述改写数据包的计数信息,所述第二运算单元1320包括比较运算单元13210和重定位运算单元13220,所述比较运算单元13210和所述重定位运算单元13220用于对所述改写数据包的计数信息、所述控制信息进行处理,以获取所述来源信息。其中,所述比较运算单元13210和所述重定位运算单元13220具体处理细节,本实施例不再赘述。
可选地,所述原始报文寄存器包括第一原始报文寄存器、第二原始报文寄存器,所述改写数据寄存器包括第一改写数据寄存器、第二改写数据寄存器,所述有效指示信息生成流水线包括所述第一原始报文寄存器、所述第二原始报文寄存器、所述第一改写数据寄存器和所述第二改写数据寄存器,所述第一原始报文寄存器和所述第二原始报文寄存器从所述原始报文的缓存数据中加载所述原始报文,所述第一改写数据寄存器和所述第二改写数据寄存器从所述改写数据包的缓存数据中加载所述改写数据包。所述原始报文的缓存数据可以为存储在先入先出队列中的原始报文,所述改写数据包的缓存数据可以为存储在先入先出队列中的改写数据包。
可选地,请参阅图4,所述有效指示信息生成流水线还包括所述原始报文的缓存数据的包尾指示信息、所述改写数据包的缓存数据的包尾指示信息、有效字节数指示信息、指示信息的缓冲数据等、字节的有效指示信息。其中的Input Pkt Data Buffer表示所述原始报文的缓存数据,所述原始报文的缓存数据可以存储在先进先出队列中,eop可以表示为所述原始报文的缓存数据或所述改写数据包的缓存数据的包尾指示信息,所述eop为1时可以表示停止从所述原始报文的缓存数据或所述改写数据包的缓存数据中读取字节,mod可以为表示有效字节数指示信息,mod表示的有效字节数可以为从所述原始报文的缓存数据或所述改写数据包的缓存数据中读取的有效字节数,mod可以仅在断言eop时生效。DH0可以表示所述第一原始报文寄存器,DH1可以表示所述第二原始报文寄存器,vld可以表示字节的有效指示信息,例如当某个字节的vld为1时,表示该字节有效。Dtmp表示原始报文逻辑寄存器,用于暂存从所述原始报文的缓存数据中取出的字节。DH0_lc可以表示所述第一原始报文寄存器中数据的线性计数值,DH1_lc可以表示所述第二原始报文寄存器中数据的线性计数值,Dtmp_lc可以表示所述原始报文寄存器的暂存线性计数值。Input Pkt SidebandBuffer可以表示为指示信息的缓存数据,用于存储所述原始报文的缓存数据的包尾指示信息、所述原始报文的缓存数据的有效字节数指示信息等,所述指示信息缓存数据通常与所述原始缓冲数据一起使用。DH可以表示为原始报文预装载寄存器,所述预装载寄存器能够写入或读出数据,DH shadow可以表示为原始报文影子寄存器,影子寄存器的内容本实施例不再详细赘述。相对应的,rwd0_lc可以表示所述第一改写数据寄存器中数据的线性计数值,rwd1_lc可以表示所述第二改写数据寄存器中数据的线性计数值,rwd_tmp0_lc可以表示所述第一改写数据寄存器的暂存线性计数值,rwd_tmp1_lc可以表示所述第二改写数据寄存器的暂存线性计数值,rwd0表示所述第一改写数据寄存器,rwd1表示所述第二改写数据寄存器,rwd_temp0表示第一改写数据逻辑寄存器,用于暂存所述改写数据包的缓存数据中取出的字节,rwd_temp1表示第二改写数据逻辑寄存器,同样可用于暂存所述改写数据包的缓存数据中取出的字节,FF表示触发器,w0和w1表示所述原始报文的缓存数据中的字节,w2、w3、w4、w5表示从所述改写数据包的缓存数据中取出的字节。从所述原始报文的缓存数据中取出的字节存储在所述第一原始报文寄存器和所述第二原始报文寄存器,以及从所述改写数据包的缓存数据中取出的字节存储在所述第一改写数据寄存器和所述第二改写数据寄存器中的过程本实施例不再赘述。可选地,请参阅图5,图5展示了以加载原始报文寄存器中的数据为例的两种组合加载模式,其中的Input Pkt Data Buffer、DH0、DH1等在上文已经涉及,此处不做赘述。另外加载改写数据寄存器中的数据的多种组合加载模式的加载过程本实施例不做过多赘述。
可选地,所述第一目标报文生成流水线的输入还包括:所述原始报文寄存器的加载模式信息和所述改写数据寄存器的加载模式信息,例如所述原始报文寄存器的加载模式可以为M、N、Q三种,所述原始报文寄存器的加载模式信息可以为M、N、Q中的任意一种,同理所述改写数据寄存器本实施例不再赘述。
可选地,请参阅图6,所述流水线处理器还包括字节数值改写流水线140,所述字节数值改写流水线140接收所述第二指令转换流水线120的输出和所述第一目标报文生成流水线的输出,所述第二指令转换流水线120的输出包括所述字节数值改写指令的类型信息、位置信息、所述字节数值改写指令对应的改写数据,所述字节数值改写流水线140用于基于所述字节数值改写指令的类型信息、位置信息、所述字节数值改写指令对应的改写数据和所述第一目标报文,对所述第一目标报文中字节的数值进行处理,以获取第二目标报文,所述字节数值改写指令的位置信息为所述第一目标报文中被改写字节的位置信息。
可选地,所述字节数值改写流水线140可以具有两条并行的流水线,包括:五个第五触发器1410、三个第六触发器1420、三个第七触发器1430、第一数据选择器1440、第二数据选择器1450、第三运算单元1460和第四运算单元1470,所述第五触发器1410的输入包括第一字节数值改写指令的类型信息,所述第六触发器1420的输入包括第二字节数值改写指令的类型信息,所述第一字节数值改写指令和所述第二字节数值改写指令均可以从字节数值改写指令的缓存数据中获取,所述第七触发器1430的输入为所述字节数值改写指令更新后的第一位置信息和所述字节数值改写指令对应的改写数据,所述第三运算单元1460和所述第四运算单元1470均用于对所述目标报文中字节的数值进行加或减的操作,数据选择器的作用本实施例不再赘述,另外图6详细的字节数值改写过程为节省说明书篇幅,本实施例不再过多赘述。
可选地,所述流水线处理器还包括校验和数据更新流水线,所述校验和数据更新流水线接收所述字节数值改写流水线140的输出,所述字节数值改写流水线140的输出还包括:校验和指令的类型信息、第一报文头的起始信息、第二报文头的起始信息,所述校验和数据更新流水线用于基于所述校验和指令的类型信息、第一报文头的起始信息、第二报文头的起始信息和所述第二目标报文,获取第三目标报文,所述第三目标报文的校验和数据为更新后的校验和数据。
可选地,所述校验和数据更新流水线包括多个16位加法器,所述16位加法器用于基于第四目标报文,获取所述第三目标报文的校验和数据,所述第四目标报文为掩盖掉部分字节的所述第二目标报文。所述16位加法器只对所述第四目标报文中未被掩盖掉的字节进行校验和计算。
可选地,所述流水线处理器还包括报文分发流水线和网卡仲裁流水线,所述报文分发流水线用于分发所述第三目标报文,所述网卡仲裁流水线用于作所述第三目标报文输出的网络接口。所述报文分发流水线的具体设计和所述网卡仲裁流水线的具体设计可以根据实际需求灵活设计,本实施例不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置或方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,模块/单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或单元可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块/单元可以是或者也可以不是物理上分开的,作为模块/单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块/单元来实现本申请实施例的目的。例如,在本申请各个实施例中的各功能模块/单元可以集成在一个处理模块中,也可以是各个模块/单元单独物理存在,也可以两个或两个以上模块/单元集成在一个模块/单元中。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

Claims (9)

1.一种流水线处理器,其特征在于,所述流水线处理器包括:
第一指令转换流水线,用于对至少一个第一报文改写指令进行格式转换,以获取至少一个第二报文改写指令;
第二指令转换流水线,用于基于所述第二报文改写指令的第一位置信息、命令信息以及改写字节量获取对应的控制信息,所述控制信息包含原始报文改写的起止位置信息、改写的字节量和新增的字节量;
控制信息生成流水线,用于基于改写数据包长度和所述控制信息获取第一目标报文中的字节的来源信息以及计数信息,所述来源信息用于指示所述第一目标报文中的字节来源和位置,所述计数信息包括输出数据的计数值,所述输出数据包括所述原始报文的子数据和所述改写数据包的子数据;
有效指示信息生成流水线,用于基于所述计数信息获取有效指示信息,所述有效指示信息用于指示是否需要原始报文寄存器或改写数据寄存器额外加载所述有效指示信息对应的输出数据中的数据;
第一目标报文生成流水线,用于基于所述有效指示信息和所述来源信息获取所述第一目标报文;
所述第一指令转换流水线包括两个格式转换单元、一个第一触发器、设于所述第一触发器和所述格式转换单元之间的一个第二触发器,所述第一指令转换流水线转换单个所述第一报文改写指令的时长为两个时钟周期,所述第一指令转换流水线从报文改写指令集合中取出全部的所述第一报文改写指令的时长为四个所述时钟周期,所述报文改写指令集合包含八个所述第一报文改写指令。
2.根据权利要求1所述的流水线处理器,其特征在于,所述第二指令转换流水线包括:四个相连的第三触发器、八个相连的第四触发器、设于所述第三触发器和所述第四触发器之间的转换处理单元,所述第三触发器的输出包括所述第二报文改写指令的命令信息、第一位置信息和改写字节量,所述第四触发器的输出包括所述控制信息,所述第二指令转换流水线对八个所述第二报文改写指令的转换处理时长为四个所述时钟周期。
3.根据权利要求1所述的流水线处理器,其特征在于,所述字节来源和位置包括所述第一目标报文的字节来自所述原始报文和在所述原始报文中的位置,或所述第一目标报文的字节来自所述改写数据包和在所述改写数据包中的位置,所述原始报文寄存器包括第一原始报文寄存器、第二原始报文寄存器,所述改写数据寄存器包括第一改写数据寄存器、第二改写数据寄存器,所述有效指示信息生成流水线包括所述第一原始报文寄存器、所述第二原始报文寄存器、所述第一改写数据寄存器和所述第二改写数据寄存器,所述第一原始报文寄存器和所述第二原始报文寄存器从所述原始报文的缓存数据中加载所述原始报文,所述第一改写数据寄存器和所述第二改写数据寄存器从所述改写数据包的缓存数据中加载所述改写数据包。
4.根据权利要求3所述的流水线处理器,其特征在于,所述控制信息生成流水线包括第一运算单元和第二运算单元,所述第一运算单元用于对所述改写数据包长度进行处理,以获取所述改写数据包的计数信息,所述第二运算单元包括比较运算单元和重定位运算单元,所述第二运算单元用于对所述改写数据包的计数信息、所述控制信息进行处理,以获取所述来源信息。
5.根据权利要求1所述的流水线处理器,其特征在于,所述流水线处理器还包括字节数值改写流水线,所述字节数值改写流水线接收所述第二指令转换流水线的输出和所述第一目标报文生成流水线的输出,所述第二指令转换流水线的输出包括至少一个字节数值改写指令的类型信息、位置信息、所述字节数值改写指令对应的改写数据,所述字节数值改写流水线用于基于所述字节数值改写指令的类型信息、位置信息、所述字节数值改写指令对应的改写数据和所述第一目标报文,对所述第一目标报文中字节的数值进行处理,以获取第二目标报文,所述字节数值改写指令的位置信息为所述第一目标报文中被改写字节的位置信息。
6.根据权利要求5所述的流水线处理器,其特征在于,所述流水线处理器还包括校验和数据更新流水线,所述校验和数据更新流水线接收所述字节数值改写流水线的输出,所述字节数值改写流水线的输出还包括:至少一个校验和指令的类型信息、第一报文头的起始信息、第二报文头的起始信息,所述校验和数据更新流水线用于基于所述校验和指令的类型信息、第一报文头的起始信息、第二报文头的起始信息和所述第二目标报文,获取第三目标报文,所述第三目标报文的校验和数据为更新后的校验和数据。
7.根据权利要求6所述的流水线处理器,其特征在于,所述校验和数据更新流水线包括多个16位加法器,所述16位加法器用于基于第四目标报文,获取所述第三目标报文的校验和数据,第四目标报文为掩盖掉部分字节的所述第二目标报文。
8.根据权利要求7所述的流水线处理器,其特征在于,所述流水线处理器还包括报文分发流水线和网卡仲裁流水线,所述报文分发流水线用于分发所述第三目标报文,所述网卡仲裁流水线用于作所述第三目标报文输出的网络接口。
9.一种电子设备,其特征在于,所述电子设备包括权利要求1-8任一项所述流水线处理器。
CN202310126390.6A 2023-02-16 2023-02-16 流水线处理器及电子设备 Active CN116185502B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310126390.6A CN116185502B (zh) 2023-02-16 2023-02-16 流水线处理器及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310126390.6A CN116185502B (zh) 2023-02-16 2023-02-16 流水线处理器及电子设备

Publications (2)

Publication Number Publication Date
CN116185502A CN116185502A (zh) 2023-05-30
CN116185502B true CN116185502B (zh) 2023-11-07

Family

ID=86448257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310126390.6A Active CN116185502B (zh) 2023-02-16 2023-02-16 流水线处理器及电子设备

Country Status (1)

Country Link
CN (1) CN116185502B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257847A (zh) * 2007-12-26 2013-08-21 英特尔公司 用于转换向量数据的方法、装置和指令
CN104331267A (zh) * 2013-07-22 2015-02-04 国际商业机器公司 具有可扩展寄存器寻址的用于指令集架构
CN106559339A (zh) * 2015-09-30 2017-04-05 华为技术有限公司 一种报文处理方法及装置
CN108027770A (zh) * 2015-09-19 2018-05-11 微软技术许可有限责任公司 用于数据流isa的密集读取编码
CN111641622A (zh) * 2020-05-21 2020-09-08 中国人民解放军国防科技大学 一种融合网络接口卡、报文编码方法及其报文传输方法
CN112148369A (zh) * 2019-06-26 2020-12-29 英特尔公司 用于远程处理器的异构cpuid伪装
CN112463657A (zh) * 2019-09-09 2021-03-09 阿里巴巴集团控股有限公司 一种地址转换缓存清除指令的处理方法和处理装置
CN112463216A (zh) * 2019-09-06 2021-03-09 英特尔公司 可编程转换硬件
CN114489795A (zh) * 2021-12-30 2022-05-13 深圳市南科中瑞电气有限公司 报文传输方法、装置、设备及计算机可读存储介质
CN114721724A (zh) * 2022-03-07 2022-07-08 电子科技大学 一种基于risc-v指令集的六级流水线处理器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9052911B2 (en) * 2012-08-14 2015-06-09 Oracle International Corporation Mechanism for consistent core hang detection in a a processor core
US10733688B2 (en) * 2017-09-26 2020-08-04 Intel Corpoation Area-efficient implementations of graphics instructions
CN113368492B (zh) * 2020-02-25 2023-06-27 华为技术有限公司 渲染的方法、装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257847A (zh) * 2007-12-26 2013-08-21 英特尔公司 用于转换向量数据的方法、装置和指令
CN104331267A (zh) * 2013-07-22 2015-02-04 国际商业机器公司 具有可扩展寄存器寻址的用于指令集架构
CN108027770A (zh) * 2015-09-19 2018-05-11 微软技术许可有限责任公司 用于数据流isa的密集读取编码
CN106559339A (zh) * 2015-09-30 2017-04-05 华为技术有限公司 一种报文处理方法及装置
CN112148369A (zh) * 2019-06-26 2020-12-29 英特尔公司 用于远程处理器的异构cpuid伪装
CN112463216A (zh) * 2019-09-06 2021-03-09 英特尔公司 可编程转换硬件
CN112463657A (zh) * 2019-09-09 2021-03-09 阿里巴巴集团控股有限公司 一种地址转换缓存清除指令的处理方法和处理装置
CN111641622A (zh) * 2020-05-21 2020-09-08 中国人民解放军国防科技大学 一种融合网络接口卡、报文编码方法及其报文传输方法
CN114489795A (zh) * 2021-12-30 2022-05-13 深圳市南科中瑞电气有限公司 报文传输方法、装置、设备及计算机可读存储介质
CN114721724A (zh) * 2022-03-07 2022-07-08 电子科技大学 一种基于risc-v指令集的六级流水线处理器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种细粒度流水化控制的FPU集成方法;陈庆宇;吴龙胜;;西北工业大学学报(第06期);第1049-1054页 *

Also Published As

Publication number Publication date
CN116185502A (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
US11010681B2 (en) Distributed computing system, and data transmission method and apparatus in distributed computing system
CN110096338B (zh) 智能合约执行方法、装置、设备及介质
US8438578B2 (en) Network on chip with an I/O accelerator
KR100956970B1 (ko) 프로세서에서의 마스킹된 저장 동작들을 위한 시스템 및방법
US5721953A (en) Interface for logic simulation using parallel bus for concurrent transfers and having FIFO buffers for sending data to receiving units when ready
JP2010211816A (ja) プログラムコード変換方法
JP2007535241A5 (zh)
JP2004519041A (ja) 効率的なデータロード及びアンロードのために統合されるパケット基準のプロトコル論理を用いるハードウェア支援設計検証システム
CN110908707A (zh) 一种资源打包方法、装置、服务器及存储介质
US7990867B1 (en) Pipeline for processing network packets
CN116185502B (zh) 流水线处理器及电子设备
US20120011490A1 (en) Development system
US8392636B2 (en) Virtual multiple instance extended finite state machines with wait rooms and/or wait queues
US7784014B1 (en) Generation of a specification of a network packet processor
JP3909073B2 (ja) コンパイラ及び論理回路の設計方法
KR20150117522A (ko) 그래픽스 상태 관리 장치 및 방법
US7792117B1 (en) Method for simulating a processor of network packets
CN109979498A (zh) 磁盘视频数据写入、读取的方法及装置
US11036616B2 (en) Tracing the data processing activities of a data processing apparatus
US5619702A (en) Method and apparatus for programming registers using simplified commands
US7788402B1 (en) Circuit for modification of a network packet by insertion or removal of a data segment
KR20080022140A (ko) 데이터 파이프라인 관리 시스템, 데이터 파이프라인 관리시스템을 이용하기 위한 방법, 컴퓨터 프로그램, 컴퓨터장치 및 컴퓨터 판독가능 매체
CN116804915B (zh) 基于存储器的数据交互方法、处理器、设备以及介质
US10073795B1 (en) Data compression engine for I/O processing subsystem
EP1742159A2 (en) Software-to-Hardware compiler

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