首页 理论教育 计算机网络接口设计-计算机网络原理

计算机网络接口设计-计算机网络原理

时间:2023-11-17 理论教育 版权反馈
【摘要】:图8.3.14给出了网络接口的示意框图。图8.3.14网络接口的示意框图1、影响接口控制器结构的主要因素背对背包处理能力与阻塞时间Ethernet规范仅规定了共享总线的传输速率,而没有规定每个工作站利用共享总线带宽的能力——吞吐率。网络接口不能接收到达包的时间长度称为阻塞时间。不同性质的工作站要求不同的吞吐率与阻塞时间,而且它们对网络接口控制复杂性又有决定性影响,因而是一个关键设计参数。

计算机网络接口设计-计算机网络原理

现有的网络接口利用大规模集成电路完成了Ethernet链路层物理层(除收发器部分外)的全部功能,与微处理器、缓冲存储器一起构成非常简单但功能相当齐备的Ethernet网络接口控制器。

Ethernet网络接口控制器在硬件上大至可分为三个部分:

(1)主控制器

其主要作用为提供收发数据打包、拆包、网络访问控制、地址识别、接口内部数据传输控制、与高层软件接口等较复杂的控制功能,一般主要由固件实现。

(2)通道逻辑

其功用是实现串行变并行、并行变串行的转换,信道编译码、CRC码生成与校验等较简单但要求较高速度的操作,一般由硬件实现。

(3)线路接口

其包括收发器电缆接口及同轴电缆接口(即收发器),要求满足特定的电气参数,一般由模拟电路实现。

本节仅讨论前两部分的实现问题,关于第三部分请参见有关文献。图8.3.14给出了网络接口的示意框图。

图8.3.14 网络接口的示意框图

1、影响接口控制器结构的主要因素

(1)背对背包处理能力与阻塞时间

Ethernet规范仅规定了共享总线的传输速率,而没有规定每个工作站利用共享总线带宽的能力——吞吐率。不同结构的网络接口尽管都可实现Ethernet规范,但在吞吐率上大不相同。吞吐率构成了网络接口的主要特色,可由背对背包处理能力与阻塞时间来衡量。

共享总线上连续传输的两个包(在满足9.6μs最小包间隔条件下)称为背对背包。背对背包问题包括如下四种处理功能:连续发送、连续接收、发送后立即接收、接收后立即发送。接口控制器发送或接收完一个包后隔多长时间才能处理下一包的发送或接收,称为恢复时间,它包括前一个包的善后处理与后一个包的初始准备。显然,处理背对背包要求主控制器的恢复时间小于9.6μs,且有必要的缓冲区保证。

背对背包处理能力中最重要的是接收背对背包及发送后立即接收的能力,这是网络接口性能的一个重要指标。一个网络接口若不能保证接收背对背包,或发送后立即接收,则当网络上连续出现两个皆以该工作站为目的站的背对背包,或发送完成后网络上立即出现以该工作站为目的站的包时,后一个包将因前一个包阻塞而损失。丢失的包虽然可由高层协议差错控制机构恢复,但会造成送达时间的极大延长及网络总线带宽的浪费。网络接口不能接收到达包的时间长度称为阻塞时间。若阻塞时间很长,则可能要求高层协议在流量控制方面采取必要的措施,以尽量避免在一个站阻塞期间向该站发送信息(但不能完全避免,因为一个站很难判定其目的站是否已为其它站所阻塞)。发送背对背包与接收完立即发送的能力相对说不那么重要,因它们只关系到接口控制器自身的吞吐率,而对网络总线可用带宽没有影响。

不同性质的工作站要求不同的吞吐率与阻塞时间,而且它们对网络接口控制复杂性又有决定性影响,因而是一个关键设计参数。

(2)与工作站接口方式

与工作站接口方式主要有耦合方式、缓冲方式及功能分配。

耦合方式主要分总线耦合与I/O接口耦合。总线耦合实际上是一种多处理机系统,将控制接口板直接插入工作站系统总线,即可通过其共享存贮器与工作站交换数据和命令。在设计完好的总线系统中(如Intel的MultiBus),这种方式很容易实现,所需硬件较少,数据交换速率也较高。但总线耦合要求接口控制处理器与工作站处理器同属一个系列,否则可能需要较多硬件,且适用面不够宽广。I/O接口耦合是传统外围设备的耦合方式。其可以将控制接口制成独立系统,由电缆与工作站相连,主要优点是便于与不同系列的机器对接,缺点是需要较多硬件。

缓冲方式主要分部分包缓冲与完整包缓冲。部分包缓冲方式中,一个包在控制器与工作站间的传输与该包在控制器与网络间的传输同时进行,中间仅以一定长度(一般远小于最大包长度)的FIFO进行缓冲,以缓和对工作站DMA传输响应时间的要求。当工作站提供的接口平均带宽达不到10Mbps(1.25兆字节)的传输要求时,不能用这种方式。此外,一般FIFO不宜做得很长,因而冲突碎段及地址识别期间漏过的数据(其多少取决于地址识别速度)会白白占用工作站总线带宽。完整包缓冲是在接口控制器内设置可装下完整最大包的缓冲存储器(在总线耦合方式中一般称为局部存储),它可以适应各种工作站总线或I/O接口带宽与响应时间,并可避免无效信息对工作站总线带宽的浪费。特别当地址识别速度较慢时,这种节省是相当可观的。但若希望有较强的背对背包处理能力,则必须具备较大缓冲区。一般说,这不会过多影响价格。

功能分配指接口控制器与工作站间网络协议与网络管理功能的划分。一方面,其可以将链路层某些较复杂的操作(如多向组地址的识别及延迟槽位数或延迟定时的计算)移到工作站进行,以简化接口控制器的复杂性;另一方面,又可以将部分高层网络协议、缓冲管理、事件统计等Ethernet规范之外的较高层功能放入接口控制器,以减轻工作站负担。控制器工作负荷的不同会影响到整体设计,例如,以全硬连控制或微程序控制为主的网络控制器,就难以担当较复杂的高层功能,而以微处理器为主的网络控制器,虽然可能需要辅以较多硬连控制,却可担负较多高层功能。在某些网络中,OSI传送层以下的全部功能皆在网络控制器中实现,从而极大地减轻了工作站的负担。

(3)其它因素

①接口延迟

接口延迟指包在接口控制器中的驻留时间,主要是缓冲延迟。部分包缓冲的接口延迟要比完整包缓冲短得多。由于Ethernet本身传输延迟就是不确定的,加之接口延迟通常远小于网络繁忙造成的延迟,故除某些要求较高的接口控制器外,一般不必过多考虑。

②诊断功能

接口控制器最好能具备一定的诊断能力,以简化维护的复杂性。最常用的诊断方法称为循环返回(Loop-back)测试。它是将接口控制器的串行数据输出接到其串行数据输入,通过收发数据的比较来判定收发操作的正确性。循环返回测试又可分为外部循环返回与内部循环返回,前者的环路闭合点在同轴电缆分接头处,后者在编/译码器处,如图8.3.15所示。

循环返回测试要求接口控制器具备同时收发数据的能力,这是一个较高的要求。在不影响诊断的条件下,通常对循环返回能力做一定限制。例如:收、发通路共用一套CRC电路,通过两次测试(一次测CRC生成,一次测CRC校验)完成诊断;输出移位寄存器内容每次加载后使用两次(将移位输出接到移位输入即可),这样输出输入两条路径与缓冲器间传输速率各降低一半,加起来不超过单独接收或发送所需的带宽。

还有其它一些诊断方法,例如ROM内容的测试、状态寄存器的测试等,不仅需要诊断接口控制器自身,有时还要求诊断同轴电缆有无损坏,这可通过所谓时域反射(time domain reflection)测试来实现。当同轴电缆开路或短路时,在故障处会形成反射点,信息在反射点处反射后必然发生入射、反射信号间的冲突。测试站通过检测这一冲突并计算冲突发生的时间,就可确定是否出现故障以及故障点与发送站间的大约距离。

图8.3.15 循环返回测试

需提供什么样的诊断功能应在设计一开始就做出大致选择,因为它们也将在一定程度上影响接口控制器的结构。

2、主控制器

主控制器是网络接口控制器的核心。较之通道逻辑与线路接口,其设计余地要宽广得多。不同主控制器的性能及价格相差甚远。与其它实时控制问题相似,主控制器可采用微处理器、微程序控制器、PAL、硬连控制等。一般情况下,选用何种主控器主要应考虑性能及硬件价格的高低,而软件的复杂性往往极为有限,不必过多考虑。

对主控制器最起码的要求是实现Ethernet规范的能力,随之而来的是严格的操作速度要求。例如,对载波与冲突指示的响应、串并/并串转换移位寄存器与缓冲存储器间的数据传输、CRC电路等通过逻辑的准确启动与关闭等,都要求快速准确的操作控制。这超出了一般微处理器与低档DMA控制器的能力,因此,以微处理器作为主控器时,必须用较高档微处理器及其DMA控制器(系统时钟应在5MHz以上),并辅以一定数量的硬连控制线路,以微程序控制器作为主控器时,少量硬连控制线路也是难以避免的。

图8.3.16 主控制器的模块划分

(1)操作控制

图8.3.16给出了主控制器的一种模块划分方法。这只是一种概念上的划分,目的是便于看清其控制流程。各模块可用不同技术来实现,既可以是程序、微程序,也可以是硬件。出于操作速度考虑,模块间没有采用层次结构。

①调度模块

这是接口控制器的静止状态,包括等待载波到达、等待网络空闲以便发送及冲突引起的延迟等待。其功能是监视载波信号、定时器完成信号以及工作站发出的中断信号,并在信号变化时控制转入相应处理模块。

②命令处理模块

其功能是实现与工作站接口有关的一切处理,包括高层命令的解释、按命令要求为调度模块设置标志(如“发送包准备好”、“接收缓冲区空”等)以及接收、发送完成后对工作站的响应。若采用完整包缓冲方式则还有缓冲区管理及打包、拆包(包括控制器与工作站间的数据传输)。因这些操作在时间上要求不严,故该模块可完全由固件实现。其优先级别在各模块中应是最低的,为缩短阻塞时间,最好能允许接收模块将其中断。

③发送模块

其由调度模块控制,在发送包准备好且总线安静时转入,任务是控制信息的发送。除对缓冲器与发送移位寄存器间的信息传输进行控制外,另有四项重要任务:

a、8个字节前文发完后,准时起动CRC产生电路;

b、包正文数据域发送完后,准时发出切换信号,将编码器输入源由输出移位寄存器改为CRC码;

c、CRC码发完后,准时封锁编码器输出(令其输出电平为恒高);

d、冲突指示信号出现后,经过适当延迟(发送“干扰”),封锁编码器输出并转入启动延迟模块。

前三项任务虽然极简单,但要求控制精度在100ns以内。这在以微处理器作为主控制器时,必须用受字节时钟控制的触发器来同步,如图8.3.17所示。第四项任务在以微处理器作为主控制器时,也需用硬件实现(可用移位寄存器或单稳触发器提供延迟)。

图8.3.17 发送控制信号的同步

①启动延迟模块

发送过程出现冲突时转入此模块,其任务为:

a、恢复发送过程中改变的全部变量

b、计算后退延迟槽位数并起动延迟计时器,即:求出一个均匀的线性随机数,截去其高位,使剩下位数与当前延迟区间相符,再将该随机数置入定时器并启动计时。

处理完毕后,转入调度模块。当发现冲突次数超过16次时,设置必要的标志。

⑤接收模块

接收模块在载波出现时转入,其任务为:

a、识别前文同步标志,实现字节时钟与接收包字节的同步,以及CRC校验电路的准确启动,一般全部由硬件实现;(www.xing528.com)

b、识别接收包目的地址,并设置相应标志;

c、控制接收移位寄存器与缓冲器间的数据传输,并计数输出包字节数(Ethernet包格式中没有包长度域)。

⑥发送恢复模块

其作用为恢复与发送有关的变量,设置发送完成标志。

⑦接收恢复模块

接收完成后转入,其任务为:

a、接收到满足最小长度且地址匹配的包时,设置接收完成标志;

b、将包长度计数值送入指定单元

c、检查接收错误标志;

d、恢复与接收有关的变量。

(2)两个问题的讨论

①随机延迟

随机延迟的关键是获得一个均匀性较好的随机数。采用数值计算时可用如下公式

Ri=(Ri-1+A)× B

式中,A、B是较大素数。每迭代一次得到一个线性随机数,迭代初值可用本站物理地址。计算本身并不复杂,但控制器恢复时间不超过9μs的要求使这一问题复杂化。这个要求是较高的。它不仅影响冲突后立即接收的能力,更重要的是关系到延迟时间恰好为零(第一次冲突将有一半的概率)时能否立即重发。倘若不能立即重发而是推迟发送,则将违反访问控制规则,增加冲突机会。根据主控制器整体结构的不同,可用硬件或微处理器来实现。

a、硬件实现

硬件实现方法的原理框图如图8.3.18所示。其中高速时钟越快越好,最好来自独立于系统时钟的振荡源,以保证计数器A的内容相对于延迟启动信号是随机的。移位器用于记录冲突次数,控制延迟范围。每个包第一次发送时将移位器清零,每冲突一次移入一个“1”.

b、微处理器实现

因以微处理器为主的控制器难以在9.6μs内完成延迟计算,故以微处理器来实现随机延迟可采用如下策略:启动发送一个包前预算好16个随机数存于内存,一但发生冲突,便顺序取出使用。

②地址识别

在没有关联存储器可用的情况下,地址识别是个艰巨的任务:因48位地址长度限制了较常用的ROM查表法,故必须用硬件或软件比较法;地址个数多(每个站可属于多个多向地址)则限制了实时识别,必须将到达包目的地址暂存,并在接收其后继信息的同时与本站物理地址多向地址逐个比较,均不匹配时,才能放弃该包。为避免有用到达包被无用到达包所阻塞,地址比较时间最好不超过最短包接收时间。可识别的多向地址个数应由这一时间确定。一个16位微处理器在占有全部总线带宽(即接收数据流使用另外总线)条件下,在最短包接收期限内所能比较的地址个数一般为10个左右;用硬件或微程序时则与具体方案有关,一般也以10来个为宜。

图8.3.18 随机延时线路

为最大程度地简化接口控制器,也可只识别物理地址而不识别多向地址,即将多向地址一概接收,送交工作站处理。但这相当于把多向寻址功能移到高层协议,加重了工作站的负担,应当尽量避免。

另一个办法是设置多个完整包缓冲区。在接收完一个包时,尽管地址识别可能未完,但只要还有缓冲区,就不至影响下一个包的接收,但这将增加接口延迟。

3、通道逻辑

(1)整体结构

通道逻辑包括收、发数据路径中,串并/并串转换移位寄存器至收发器电缆驱动及接收线路之间的部分。其较之主控制器要简单得多,但也死板得多,设计自由度要小得多。同时因操作速度要求较高,许多器件必须采用肖特基TTL工艺。需作出的选择包括:半双工全双工、译码器形式和CRC产生与校验。

①半双工与全双工

Ethernet正常操作仅需半双工收发路径,全双工是循环返回测试所要求的。完全的全双工要求收、发路径有各自独立的串并转换移位寄存器与CRC电路,如图8.3.14所示,但如讨论循环返回测试时所述,采用两次测试可省掉一套CRC电路,如图8.3.19所示。

②译码器形式

常用译码器有三种:锁相环(PLL)译码器、数字延迟译码器、模拟延迟译码器。译码器的好坏对传输系统性能影响较大。其评价标准主要是可容忍的相位偏移量,如图8.3.20所示,它来自传输系统不可避免的非对称性。在理论上,锁相环译码器可容忍50ns的瞬变宽度,性能最好,但较复杂且需调整。运行于8倍时钟频率(80MHz)的数字延迟译码器可容忍12.5ns的瞬变宽度,且制造中不需要调整,但对器件速度要求太高,超出肖特基TTL器件能力。单稳延迟译码器理论上可容忍25ns瞬变宽度,且很简单,但需调整,稳定性较差。

图8.3.19 通道逻辑框图

图8.3.20 相位偏移示意图

③CRC产生与校验

CRC产生与校验不仅可用多种硬件线路实现,且在追求硬件量最少的设计中还可用软件在发送前及接收后低速实现(与打包、拆包一起)。当没有专用的32位CRC码生成与校验芯片时,用软件实现虽可节省十几片集成电路,但将极大地增加传输延迟并降低吞吐率。

在用微处理器作为主控制器时,用软件实现CRC对辅助硬联控制线路的节省是相当可观的。

图8.3.19示出一种通道逻辑框图,除编/译码器部分外,都是常见线路。

(2)部分线路举例

①编译码器

编码器很简单,只需将数据与发送时钟异或即可。其主要问题是波形的完整性与对称性,一般需用一个两倍于发送时钟的编码时钟来控制,如图8.3.21所示。

图8.3.22示出了一个数字延迟译码器的电路及其各点波形。通过波形图不难看出其工作原理。需要指出的是,电路对器件操作速度要求极高,必须用ECL器件才能实现。它对相位畸变的忍耐能力为12.5ns(±6.25ns),要想进一步提高,需加快译码时钟,这将更难实现。

图8.3.21 Manchester编码器电路及各点波形

图8.3.22 数字延迟译码器电路及各点波形

图8.3.23示出了一个单稳延迟译码器的电路及其各点波形。其单稳为不可重触发式,延迟宽度为75ns.其基本原理与数字延迟式完全相同,但在实现上有两点差别:

a、用单稳代替移位寄存器产生屏蔽波;

b、用反相器传输延迟代替触发器检测跳变。反相器延迟时间必须保证:产生的脉冲宽度最窄时也能触发单稳,最宽时被屏蔽的脉冲不会延续到单稳延迟宽度之外。

为提高相位畸变耐受能力,单稳所需触发脉冲宽度越窄越好。

图8.3.23 单稳延迟译码器及其各点波形

②冲突检测与载波侦听

冲突检测在收发器中完成,通道逻辑的任务仅仅是检测收发器电缆冲突指示对中是否有冲突指示信号(10MHz方波信号)。载波侦听是检测收发器电缆接收对中有无信号变化。两者事实上都是检测电平跳变,很容易用可重触发单稳触发器实现(参见图8.3.24).

图8.3.24 载波与冲突检测线路及各点波形

在Ethernet的产品中,已有许多大规模集成电路器件,比较常见的有Intel的82586、82501,SEEQ的8001、8002,American Micro Devices的AM7990、7991等,此处不再详述,可查找有关芯片手册。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈