一种TCP/IP卸载引擎架构的应用
TCP/IP是一组全世界广泛应用的协议,不仅仅用于Internet,许多私有网络也使用TCP/IP作为其协议组,许多硬件设计都是基于TCP/IP或者相关的协议来开发的。传统的TCP/IP处理网络数据传输过程中,要占用大量的主机CPU资源,为了减轻CPU的压力,一种叫TOE(TCP/IP offload engine,TCP/IP卸载引擎)的技术应运而生。TOE技术对TCP/IP协议栈进行扩展,使部分TCP/IP协议从CPU转移到TOE硬件,减轻CPU的负担。
TOE技术
所谓卸载是指将CPU上的计算或处理转移到专门的硬件单元上进行。在目前的以太网环境中,TCP/IP的处理都是通过软件在中心处理器上实现的,导致系统在协议处理、中断处理、数据拷贝方面面临困难。利用TOE技术对TCP/IP卸载则简化了数据包的处理,如图1所示,TOE将TCP/IP协议从CPU中移到硬件中处理。在主机中安装和TOE通信的驱动后,内核和用户的应用都可以直接和TOE通信,这样就可以使主机CPU来处理别的工作。TOE在接收到网络上的数据后,进行一系列的协议处理,将数据放在指定地址,交给上层应用。发送方向则相反,将需要处理的数据包装后通过硬件缓冲发送出去。TOE的处理简化了流程,主机只需要直接处理数据而不用对数据拆包重组,因而对协议处理,中断和数据拷贝都大大减少,降低了主机CPU的负担。
TOE硬件结构
● 硬件设计方案
从器件的实现上,TOE实现方案可以采用两种结构:一种是分离元件结构,另外一种是ASIC芯片。分离元件采用电路板构建,具有修改灵活性,方便升级改进。采用ASIC芯片实现的方案是将协议处理集成到定制的芯片中,在性能上比分离元件的方式有所提高,但它在可编程性、扩展性和灵活性方面比较差。为了提高灵活性又保证处理速度,可以采用FPGA来实现TOE。
在设计中采用了Altera公司的FPGA来实现TOE,并配合NIOS II实现嵌入式处理器的功能。图2为TOE的框架结构,它由一个嵌入式CPU、接收部分、发送部分和物理硬件接口构成。在这个结构中,所有的发送模块在一边,接收模块在另一边,是为了能直接访问一个共享的存储器,从而减少数据拷贝。为了支持众多的协议模块访问,通过一条内部总线来连接协议模块和共享存储器。由嵌入式CPU协调模块间的通信,状态管理以及和上层CPU的通信。
当网络上送来一个数据包时,物理接口开始启动,进行简单的包头处理后,发送中断给嵌入式CPU,CPU移动数据到接收缓冲器(BUFFER),将消息队列置为有效。协议接收模块检测到有数据需要处理,启动协议分析处理。当所有的处理完成后,嵌入式CPU发送一个中断给主CPU,并将数据放入指定的地址。发送过程和接收过程相反,CPU把需要处理的数据放入发送缓冲器,协议模块检测到有消息后开始启动处理。完成后将数据移到物理层的发送缓冲中发送出去。在这个设计中,共享存储器的访问控制和协议模块的设计是难点,下边将详细介绍。
相关文章
- 2022-05-26底吹氩钢包内钢液流动和混合数值模拟的应用
- 2023-08-18KXP84型加速度计在空中风测量中的应用
- 2023-01-05冷态汽轮机及余热锅炉快速启动方案的优化
- 2024-07-24变焦距镜头的凸轮优化设计
- 2022-12-15轻轨精整PLC智能控制系统



请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。