微程序实现TCP/IP协议处理器的控制

时间:2007-04-29
(湖南大学应用物理系,湖南 长沙 410082)


摘 要
:随着Internet的迅速发展,TCP/IP协议在嵌入式系统中的实现,成为嵌入式Internet发展的瓶颈。用ASIC设计TCP/IP协议器时,根据嵌入式应用的特点,将TCP/IP协议进行简化。从协议处理器简化宏状态转移图出发,根据TCP/IP协议的特点,设计微程序控制单元,该控制单元根据应用层、数据链路层、定时部分和数据通道中的状态信号和控制标志,完成对数据通道、定时部分的控制及与数据链路层、应用层通信的接口,来实现连接的建立、断开和异常情况的处理。
关键词:Internet;TCP/IP协议;微程序控制

中图分类号:TN492 文献标识码:A

1 引言

因特网从出现到如今的巨大规模,其发展速度令人惊叹。因特网发展的原动力在于微电子技术的发展和标准化的TCP/IP协议,TCP/IP协议规定了网上传送数据的格式以及数据传送的方式和过程。目前,TCP/IP协议是在计算机操作系统的支持下,由软件来实现的。但是对于家用电器、移动电子设备等简单用户数据终端,即目前大量使用的8bit和一些16bit嵌入式系统来说,没有TCP/IP协议可以依附的硬件基础。因此,它们无法接入Internet,限制了其更快的发展与更广泛的应用。为了使简单数据用户终端与Internet相连,我们需要用ASIC设计TCP/IP协议器或设计成IP核嵌入到系统芯片内部[1],来实现简单用户终端与Internet共享数据资源。而TCP/IP协议处理器的控制部分是处理器的,它控制TCPdP协议处理器状态的转移及其对数据的处理、发送与接收,对TCP/IP协议处理器的性能优劣起决定作用。本文提出用微代码控制单元实现对协议处理器的数据路径和定时部分的控制,为实现简单用户数据终端的Internet连接提供技术基础。

2 TCP/IP协议处理器控制部分的原理

TCP/IP协议处理器独立于传输媒质(如光纤、以太网和无线传输等)和用户应用,该处理器实现了TCP/IP协议簇中网络层和传输层的两种主要协议TCP和IP协议,而且根据嵌入式应用的特点,可以分别将TCP/IP协议简化,使它们用ASIC设计时所占的芯片面积减少,以降低成本。

IP提供一种不可靠的、五连接的数据传输服务,它只是尽力传送数据报,希望能到达主机,在网络中主要实现寻址和分段功能[2]。在大部分嵌入式Internet中,由于只需传送一些简单的数据和命令,一般数据报的长度很小,足以适合在任何网络中传送,因此对于分段的功能可以裁减不要。在IP数据包头中,服务类型是指一些服务质量的参数,这些参数用于在特定网络指示所需要的服务,还有包括时间戳、安全和特殊路由等选项,在数据报中都可以没有。

TCP即传输控制协议,通过使用序列号和确认信息,为不同主机的进程之间提供可靠的数据传输。根据嵌入式系统应用的特点,只需要实现一个端口,并且还可以根据具体应用的情况将TCP状态机进行简化,简化后状态转移实现连接的被动建立与主动断开。

在上述简化条件下,经过简化后的TCP/IP协议处理器的宏状态转移图[3]如所示。

一开始协议处理器处于侦听状态,收到远程主机发送syn报文时,发送ack+syn报文,进入接收连接请求状态,接收数据包。收到ack报文时,进人数据传送状态,在这个状态中协议处理器可以与远程主机进行双向的数据传输,当接收到上层用户发出的close,就开始关闭,并发送fin报文,进入关闭等待1状态,接收到ack报文,到关闭等待2状态,接收到fin报文,发送ack报文,回到侦听状态等待被动打开。

控制部分的主要功能是:从应用层、数据链路层、数据通信的控制标志位和定时器接收状态转移信号,来实现处理器宏状态和微状态的转移,并实现对数据通道、定时部分的控制,完成应用层和数据链路层的通信接口;使定时部分正确对TCP/IP头长度、数据长度和重发进行定时,使数据通道对接收到的数据进行处理并取其TCP/IP头控制信息;使协议处理器能顺利地建立和撤销连接、接收、发送数据和对异常进行处理。

3 TCP/IP协议处理器的微程序控制

处理器控制部分可用微程序控制和硬布线控制来实现。硬布线控制方法是,寻找微操作控制信号的布尔代数表达式,化简表达式之后直接利用门电路、触发器等器件实现组成的有限状态机来实现控制逻辑。由于TCP/IP协议处理器的复杂性,采用硬布线来实现控制时,设计过程很复杂而且容易出错[4]。微程序控制方法的基本思想是:控制单元的每个状态周期应发出的控制信号由微程序控制单元发出一条微指令来完成,使整个过程变得简单可行。

3.1 微程序控制器的硬件结构

微程序控制部分主要由三部分组成:微程序ROM、地址产生逻辑和微指令寄存器。微程序ROM大小为256个单元,用于存放微指令,每条指令的字长为64bit,微指令的格式如所示。

Controlsignal字段,包含了执行该微指令时输出的控制信号,以实现对数据通道、定时部分的控制,并给出协议处理器,与应用层和数据链路层通信的接口信号;Sensitivity item select字段,采用“单热”编码来选择在执行该指令的状态时所敏感的条件信号;Next address给出了当转移条件满足时,接下来应执行的微指令的地址,否则顺序执行。由于TCP/IP协议应用在不同具体系统时的要求不同,各个字段留出了一定余地,以适应不同系统的要求。

微程序计数器(MPC)用于存放ROM的地址。地址选择逻辑根据定时器、应用层和数据链路层给出的状态信号、数据通道给出的控制标志和当前指令的Sensitivity item select来决定下一条微指令的地址。实现/顷序执行或转移到Next address。当应用层检测到有发生,就发出复位信号(reset),把程序计数器复位,即可使协议处理器回到初始状态,完成对异常的处理。

微指令寄存器MIR,用于缓存微指令,以改善控制信号的驱动能力,消除由于ROM的延时引起的控制单元速度变慢[5],并基本上可以消除ROM的延时对时钟周期的影响,而且还加快了控制信号的输出,保证数据路径有足够的时间来完成时钟周期内的操作。

3.2 微程序控制单位的时序分析

从ROM中读出一种控制信号分两步进行:步,在主时钟的下降沿,将ROM的地址载人微程序计数器;第二步,在主时钟的上升沿,把微指令载人MIR,由MIR给数据路径和定时部分提供控制信号。以上分析可知,控制部分对主时钟周期(T)的要求是:

T>2(MPC_delay+ROM_delay+MIR_setup_time)且,T>2(MIR_delay+地址产生_delay+MPC_Setup_time)。

为了提高频率,从可看出,微程序计数器在时钟的下降沿载人,这就要求ROM的地址要尽早产生,可以采取两种策略:一是在数据通道、定时部分减小控制标志和状态标志产生的延时;二是在设计过程中,微指令中的Sensitivity item select字段采用“单热编码”,以牺牲ROM的指令空间为代价,减小控制器的地址产生逻辑的延时,以便提高速度。

3.3 微程序的设计

根据简化的TCPAP协议处理器的宏状态转移图和控制器硬件结构,微程序设计流程图如所示。由于微指令字段中采用“单热”编码方式,所以对于某个特定的控制状态,控制器只能检测单个信号。微程序转移时只有顺序执行和转移两种选择,所以设计微程序时要避免多分支。为了解决在控制过程中需要检测多个控制标志导致的多分支状态,可以将其状态分解,如在发送syn+ack的后续状态时,要检测两个信号“超时”和“是否有数据要接收”,来判断是保持原状态还是接收数据或重发数据。用一个状态一条微指令无法实现上述三分支状态,必须将该状态分解成两个状态。如所示,通过“检测是否接收数据”和“检测是否超时”,来实现双重检测和多分支状态。

4 结论

综上所述,微程序控制单元能根据应用层、数据链路层、定时部分和数据通道中的状态信号和控制标志,产生协议处理器数据通道和定时部分所需的控制信号,发出与应用层、数据链路层的接口信号,从而实现建立端到端的连接、数据的双向传送、连接的断开和异常情况的处理等任务。


  
上一篇:电子束蒸发沉积ZAO薄膜正交试验
下一篇:SIP和SOC

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料