1 主板基础
主板又叫主机板(mainboard)、系统板(systemboard)或母板(motherboard);它安装在机箱内,是计算机最基本的也是最重要的部件之一,一般为矩形电路板,上面安装了组成计算机的主要电路系统,所有的配件和外设都直接或通过线路与其相连,可以说主板是计算机系统的中枢神经。
主板上的功能原件:
①芯片组
芯片组由北桥和南桥组成,它是主板的中枢,不同芯片组厂商生产的南/北桥芯片不同。
北桥芯片是主板上离CPU最近的一块芯片,负责与CPU的联系,并控制内存、AGP、PCI数据在北桥内部传输。由于该芯片一直安放在主板的上部而被命名为北桥芯片。Intel公司从815芯片组开始就已经放弃了南/北桥这种说法,Intel的MCH相当于北桥芯片,它是内存控制器中心,负责连接CPU、显卡总线和内存。北桥芯片组工作时发热量很大,通常配有散热器,一些高端主板产品还配有风扇或散热管。
相对于北桥,南桥芯片位于主板的下部。Intel的ICH芯片相当于南桥芯片,它是输入/输出控制器中心,负责连接PCI总线、IDE/SATA设备和I/O设备等。
②BIOS芯片
BIOS是计算机开机所执行的第一个程序,负责自检(POST)、载入操作系统和设置CMOS等工作。为了适应不断出现的新硬件的需求,BIOS也必须适时更新,所以主板普遍使用Flash ROM存储BIOS,让用户可以直接使用厂商提供的升级程序来修改内容。
计算机自身有许多信息需要保存和更新,如日期、时间、磁盘数量与型号、内存数量等,系统将这些信息存储在某个可读/写RAM芯片上,而这个芯片是以CMOS半导体生产的,因此便称为“CMOS”。
③SATA控制芯片
现在虽然很多南桥芯片都直接提供了对SATA硬盘的支持,但是还有一些主板的南桥并不支持SATA。因此,这些主板往往会通过集成第三方芯片来提供SATA接口。SATA控制芯片能提供多个SATA接口,具有RAID功能的SATA控制器可把几个硬盘组成磁盘阵列以提高系统性能和稳定性。
④网络控制芯片
网卡已经成为主板的“标配”组件,目前新型主板集成的网卡芯片几乎都是千兆位网卡或100/1000 Mb/s自适应网卡。Intel芯片组的主板多采用Intel公司自己的网卡芯片,其他主板则多采用Realtek公司或Marvell公司的芯片。
⑤音频控制芯片
大部分主板都集成了声卡,而集成声卡少不了音频控制芯片,因此主板上一般都集成了一块音频控制芯片,较新的芯片支持HD Audio规范。
2 工业主板的特点
工控防火墙的硬件架构选择首先需要满足工业环境对硬件的要求。一般都是无风扇嵌入式工控机或专门定制的计算机。对于嵌入式的系统,其是计算机技术、半导体技术、电子技术和工业行业具体应用相结合的产物,和我们通常使用的通用计算机相比,他们体积小、低功耗、集成度和可靠性高,电磁兼容性好,抗干扰能力比较强,能在恶劣的环境下使用,即使死机也能在很短的时间重新启动。因此根据工业环境的硬件需求,工业防火墙的硬件一般采用无风扇嵌入式工控机来作为承载平台,然后再设计的时候通过调研提出相应的硬件组合需求,一般地,这种无风扇嵌入式工控机都是采用一个工业主板外加一个壳体组装起来的。
工业主板从规格尺寸、设计,用料,生产,制造,市场规模都是针对工业市场而生,保证工业系统的正常,高可靠性。目前工业主板为了适应多种应用环境,采用了多种尺寸规格的主板。包括ATX、Micro-ATX、LPX、POS、PICMG、ETX、CPCI、PC104等各种规格。在设计工业防火墙的时候,根据产品设计的需要合理选择不同规格的工业主板,并且搭配具有工业以太网口以及各种工业总线接口转换模块进行合理布局。工业主板选料会选用经过长时间,高要求验证元器件,用以保证产品在恶劣条件下高可靠性要求。比如一些如在服务器,以及高端商业主板才出现的固态电容,封闭电感等。因此工业主板可以达到一个长达5年甚至10年的生命周期。
整个工业主板由核心板和底板组成,核心板主要包括:CPU、内存、Flash、标准的SODIMM接口、电源监控及复位电路、时钟驱动电路以及与底板相连的连接器。底板主要包括:100M./1000M网络接口电路、数据串口电路、BDM调试接口电路、系统供电电路、实现控制和监控功能的RS232接口电路和与核心板相连的连接器。还可以选择添加组合一些譬如远程连接管理模块、远程无人值守的自动开关机功能以及通过内嵌的IPMB,SMNP模块,实现系统实时运行信息的管理、记录、发送功能等等。最后做一些安全性设计,比如所有电阻选择晶圆电阻,电源入口用本安的安全栅进行隔离,PCB表面图三防漆,硬件电路板放尘、防潮、防静电等。目前这些主板可以选择自己开发,也可以选择第三方定制,比如台湾的研华科技,深圳的研祥智能等。
3 工业防火墙主板优化
任何防火墙的基本技术功能都是过滤报文。
防火墙检查其接收的每个数据包,以确定数据包是否对应于流量模式的所需模板。防火墙然后过滤(丢弃)或转发与这些模板匹配的数据包。这些模板以规则的形式进行建模。在工控防火墙中,有针对已知协议提前建模好的规则模板,也有后期自动学习进行建模的规则模板。由于工控防火墙处理数据包是一个一个处理,包括数据包的校验,数据包每一层包头的处理,所以数据包越小,到达时间就越短,服务器处理数据包要求就越高。比如64B的小包,如果处理数据包要达到线速,那么就要求防火墙67.20纳秒就要处理完一个包,随着物理线路速率越大,处理时间就要求越短,这也就要求服务器硬件和软件都要相应的发展和升级来应对越来越多的数据包处理需求。并且工业环境中各家设备的不同以及使用的工业协议不同,工控防火墙需要同时在工业网络流量中同时并行处理多种工业协议报文。同时,规则库随着时间的增加规则条数也在持续增加,这些都是需要防火墙处理性能的支撑,保障网络数据的传输速度与模式匹配的检测速度满足工业网络的实时性需求。因此,为了考虑工控防火墙对数据包的处理性能以及实时性要求,除了在操作系统层面进行优化设计外,重点考虑在硬件架构设计层面利用硬件加速工控防火墙的处理性能。
一般认为服务器处理能力很强,不是数据包处理的瓶颈,而通过物理线路能够传送数据包的最大速率,即线速(从100Mpbs、1Gbpbs、10Gbpbs、25Gbpbs、40Gbpbs,甚至到100Gpbs)才是网络性能的瓶颈点。当数据包到达防火墙之后,防火墙需要对数据包进行拆包-解析-匹配-过滤-封包-转发的动作。这种动作无疑是整个工业网络线路上的最低速的一环。
工控防火墙的处理架构如何能够更快的处理数据包?处理架构是什么?这里倾向于理解为“数据从网卡接受数据并通过防火墙内部运作之后再通过网卡传输出去”的这个路径称之为处理架构。
从工控防火墙本身架构来看,这个处理架构包含了:CPU、RAM、主板总线(南北桥或IO桥、PICE)、网卡、网卡控制器。
先来说下网卡,网卡作为这个架构的第一道门户,负责数据包的发送和接收。
发送流程如下:
①CPU通知网卡控制器发送内存中的数据;
②网卡控制器使用DMA将内存中的数据拷贝到网卡本地内存的发送队列;
③网卡的MAC单元等待数据拷贝完成,准备发送;
④网卡MAC单元通过PHY(Port Physical Layer)单元将数据的数字信号转换为对应的电信号或光信号从线缆发送出去;
⑤网卡控制器通知CPU数据发送完成。
其接收流程如下:
①网卡的PHY单元接收到数据包信号,将其转换为数字信号;
②网卡的MAC单元将数据包存储在本地内存的接收队列上;
③网卡控制器使用DMA将数据拷贝到系统内存上;
④网卡控制器以中断方式告诉CPU数据包已放在了指定的内存空间。
那么网卡位于体系中的位置就显得十分重要,决定着数据包传输路径的长短。网卡最开始集成在主板通过南桥连接,后来网卡插在PCI插槽上,插在PCI-E插槽上,数据包进入网卡后,需要经过南桥(主要管理IO设备),PCI/PCI-E,北桥(主要管理内存),内存和CPU的处理。网卡需要频繁访问内存存取数据包,CPU处理数据包需要频繁访问内存,此时北桥是瓶颈,当CPU个数增加时,单个内存控制器也是瓶颈。为了解决这些瓶颈,就出现了NUMA(Non-UniformMemory Architecture)架构,每个CPU都有自己的内存(将北桥功能集成到了CPU),每个CPU也有直接管理的PCI-E插槽,低速设备比如SATA/SAS,USB等被PCH,Platform Controller Hub(替换了南桥)管理。多核CPU以及NUMA架构使得数据包处理可以以几乎相同处理性能横向扩展,加上网卡的多队列机制,可以实现网络数据包的并发处理。
同时,在这个环节中,随着网卡的网卡控制器(网卡里面的控制器)的更新发展,也对处理架构的性能提升有着重要的影响。目前的网卡控制器都是ASIC(专用集成电路)芯片,该芯片固化了网络的功能,速度快,设计完成后,成本低。但不可编程。现在针对FPGA的网卡控制器越来越流行,FPGA的网卡控制器的好处就是可编程性,具有软件定义网卡的特质,因此是未来发展的方向。ASIC芯片控制器的发展使得网卡的功能越来越强大,之前很多数据包处理的功能都是CPU来完成,占用大量CPU时间,很多重复简单的工作被网卡控制器来处理大大减轻了CPU的负担,这就是网卡Offload功能。网卡的Offload功能会接管原先CPU的部分网络处理功能,比如将TCP,UDP数据包的checksum计算和校验交由网卡处理;将数据包中发送的时候将大数据包的切分为小数据的封装交由网卡处理;同时将接收到的小包合成为一个大包再给到应用程序,这样既减少了CPU的中断,也减少了CPU处理大量包头的负担;除此之外,DMA将内存中的数据包拷贝到网卡内存时,由于内存中的数据包内容在物理内存上是分散存储的,如果没有Offload功能,DMA没法直接拷贝,需要系统kernel拷贝一次数据让地址连续,有了Offload功能,就可以少一次内存拷贝。
因此可以得出性能提升的第一个解决方案:NUMA架构+PCIE网卡直连!这种方案也就是多核并行处理。基于这种方案还可以优化的地方在于,网卡的每个队列会对应一个CPU来处理数据包到达的软中断,合理的将网卡队列绑定到指定的CPU能更好的并发处理数据包,比如将网卡队列绑定到离网卡近的CPU上。
这种方案对于处理架构的性能提升是巨大的,但是成本也是最高的。如果考虑到工业环境的硬件需求,这么多的X86 CPU设计出来的产品似乎也很难去适应工业环境的严苛条件。而基于嵌入式的工业主板来说,集成那么多的X86 CPU无风扇显然又是个悖论。并且网卡的处理机制是数据从网卡到CPU之间的传输依靠“中断”实现,当高速网络流量经过时,频繁的“中断”控制导致CPU 占用率迅速上升,防火墙吞吐速率受到严重影响。这也是现今基于X86架构的工控防火墙性能提升存在困难的原因。