论文部分内容阅读
摘 要: 随着嵌入式网络数据处理系统的广泛应用,网络数据高速处理对嵌入式系统提出更高的要求,基于单处理器的网络数据处理方式已无法满足要求,为此,提出基于SOPC(System On Programmable Chip)的多处理机解决方案;针对目前嵌入式系统中网络安全协议实现上大多采用单处理器的不足,提出基于NiosII的多处理机、多计算机、混合多处理机模型。
关键词: SOPC;NiosII;多处理器系统
中图分类号:TP273 文献标识码:A 文章编号:1671-7597(2011)1120081-01
1 SOPC的嵌入式开发技术概述
近年来,计算机网络进入了飞速发展时期,这种快速发展给人们带来了极大便捷,但同时也带来了数据信息在处理、存储、传输和使用时,容易被窃取和篡改等问题。目前的网络数据安全管理,有多种方法可用于网络安全协议处理,常用的大致分成ASIC(Application Specific Integrate
d Circuit)和可编程方法两类。ASIC方法是系统完全由硬件来实现,其特点是速度快,成本高,纯软件方式性能低,存在一定的安全隐患,而且几乎没有灵活性和可扩展性,需要很高成本和较长的设计时间;可编程方法主要有两种类型:NP(Network Processor)和FPGA(Field Programmable Gate Array),NP提供的是以处理器为中心的可编程能力,而FPGA提供的是以硬件为中心的可编程能力。NP方法利用RISC处理器结构进行网络数据包处理。支持这一方法的器件称为网络处理器,并且是软件可编程的。NP包括多个优化的嵌入式RISC CPU,以提供可编程能力和用于通用数据包处理功能。其设计理念是利用硬件电路处理数据包的分类和修改,而利用RISC引擎进行上层管理。NP中的多处理器引擎配置成不同的架构以优化关键的路径延迟,在配置每个RISC引擎时,使得专用的RISC引擎不能再以高级语言编程,从而迫使用户使用微代码/汇编语言,并且削弱了提供灵活性和时间优势这一网络处理器存在的根本基础,使用起来非常麻烦。基于SOPC(System On Programmable Chip)嵌入式开发技术的FPGA方法,具有高度并行逻辑结构的可编程器件,可提供由用户自定义的性能和灵活性组合,对任何高速并行数据处理都非常理想。FPGA内部可以嵌入RISC软核,利用FPGA内部的硬件可编程特性,和很强的灵活性和可扩展能力,大幅度地提高系统性能。由于FPGA没有内置的网络处理功能,用户可通过在FPGA内增加网络系统所要求的特性,利用硬件描述语言(HDL)、知识产权核心(IP)和C语言对其进行硬件编程。SOPC为网络安全协议的实现提供了一个极灵活的解决方案。利用FPGA器件,可以在单片器件内集成范围广泛的硬和软IP核,其中的硬件和固件具有可升级能力。SOPC的嵌可编程能力,缩短了系统开发时间,使单个FPGA解决方案更适用于设计需求,可以在整个开发周期中对系统进行优化,同时还为硬件和软件设计提供了灵活、方便的方法,应该成为今后网络数据处理技术发展的一个方向。
2 多处理器系统解决方案
在嵌入式系统中实现网络协议、密码算法处理的方案主要有ASIC、NP、FPGA、纯软件方式等,其系统内部一般只有一个CPU,每一个时刻CPU只能执行一条指令。该系统内部虽然可以采用并行技术,如指令流水线、多个ALU单元以及专用的协处理器等,但这些并行技术只能提高顺序程序的指令执行速度,它无法提供进程级、作业级的并行性。采用多处理器、多指令多数据流(MIMD)系统,能够提供高级并行性,它通过并行处理实现最大的效能,高级并行不仅可以是多个处理器同时操作,而且还可以是多个程序(进程)在同一时间片内执行。在具体的实现上可以是多处理器,多计算机、也可以将多处理器系统作为多计算机系统中的结点,构成一种混合的多处理机。MIMD实现方式与传统的SISD(单指令流单数据流)实现方式相比,增加了单位时间内的数据流,它通过卸载单个处理器任务的策略来提高系统整体性能,通过根据任务的分类来组织任务执行,将不同类型的任务放在不同的CPU中执行,任务间的协调是通过共享存储器中的公共变量或Send/Receive操作原语来实现。该系统中给每个CPU分配了特定的任务,在这些任务中,可能会存在对特定I/O设备的访问,降低CPU对每个外部设备的访问要求。MIMD在硬件架构上更适于用多处理机实现,可以通过共享的存储器在不同的CPU上实现不同的专有任务,同时根据系统级任务进行分类,它提供了更高级别的并行性,将相关的任务放在同一CPU内执行,由各CPU之间并行地完成系统级任务,从一定程度上降低了进程间因互相迁移而造成的通信时间,系统级的任务可能要求CPU能够访问每个外部设备,要求相关任务在每个CPU执行的等效性,要求每个CPU有等同的硬件架构。实现任务的逻辑分组,更高效的发挥处理能力,能够以较低的时钟频率和功耗实现较高的性能。多处理机中共享的存储器通过ICN(互联网络)被所有的CPU共享,其ICN的实现方式将决定多处理器的个数及系统性能,当采用总线方式时,其处理器的个数一般不超过4个,当采用交叉开关的方式时可扩展到64个。MIMD系统中多计算机架构为系统级并行提供了方案,而多处理机为任务级并行提供了方案,通过并行处理实现最大的效能,并行不仅指多个处理器同时操作,而且指多个程序(进程)在同一时间片内执行。它灵活的方式可以克服SISD系统中CPU大量频繁的数据操作所消耗大量CPU等待时间,系统由多个SU(System Unit)单元构成,系统可以并行地处理N个系统级任务,SU提供系统级功能,主要完成网络协议、密码算法处理功能,由TU(Task Unit)任务单元提供比较单一的任务功能,如TU0完成网络协议,TU1完成密码算法。混合方式为系统并行性提供了更多的组合方案,整个系统可以集成更多的SU单元,SU单元又可以集成更多的TU单元,分层级连的方式扩容了系统的集成能力,极大地提高了系统的并行性。
3 基于NiosII的嵌入式网络数据处理系统
嵌入式系统中网络安全实现的技术主要涉及到主机安全技术、身份认证、访问控制、安全传输协议、数据加密、防火墙、安全审计等技术,其中网络数据传输是基础,数加密技术是核心。目前网络安全协议的实现上大多采用了单处理器系统(无法提供进程级、作业级的并行性)、同时嵌入式系统中系统的时钟提升空间在时间上日趋饱和,系统在软件上需求也越来越复杂,应用需求也越来越多,基于单CPU的设计方案很难适应这样日益复杂的需要。因此,引入多处理机成为一种必然。基于NiosII的可扩展多处理器方案,较好地解决了CPU之间信息高效交互、缓冲区一致性、任务划分、系统集成度等一系列问题。NiosII是Nios的第二代产品,其速度更快、资源占用更少,仅保留了32位模式。NiosII是32位RISC嵌入式处理器,其性能可以超过200MIP,由于是软核处理器,具有较高的灵活性,在嵌入式系统中,可以实现从硬件、软件、性能、编译环境等多个方面对处理器,网卡芯片的类型、实现方式等硬件整体架构进行设计。NiosII IDE(集成开发环境)是NiosII嵌入式系统的基本软件开发工具,所有的软件开发任务都可以在NiosII IDE下完成,包括编辑、编译和调试程序。嵌入式系统的软件开发可分为应用程序开发和驱动程序开发两部分。NiosII IDE为用户提供了设备的驱动程序,这就是硬件抽象层(HAL)系统库,用户只要利用HAL提供的各种函数就可以编写应用程序,HAL系统库在NiosII IDE中创建一个新的工程时,由IDE自动生成。NiosII IDE是和SOPC Builder紧密相关的,如果硬件配置有了变化,HAL设备驱动配置也会自动随之更改,从而避免了由于底层硬件的变化而产生的编程错误。NiosII IDE也为用户自动创建和管理HAL系统库文件提供了极大的方便,用户不用创建或拷贝HAL文件,也不用编辑HAL中的任何源代码。基于NiosII的嵌入式系统开发,需要使用Altera公司的SOPC开发环境,它主要由三个部分组成:IP库(NiosII处理器,Avlon总线,外围设备接口等),SOPC Builde开发工具,IDE软件编译器。其开发过程主要有:首先确定系统的需求,如应用系统需要的计算机性能、带宽和吞吐量、接口类型以及是否需要多线程的软件等。然后进行硬件设计,利用Altera提供的IP库,在SOPC Builde中添加需要的功能模块,生成一个NiosII系统模块,最后在Quartus中编译生成软件,完成软件设计。在NiosII IDE软件开发环境中,用户还可以根据需要编写自定义设备的操作流程、操作系统的移植、相应的应用代码等。
4 总结与展望
本文针对嵌入式系统对网络数据传输、网络安全协议实现方上,对SOPC技术进行了阐述,提出了多处理器系统解决方案和了基于NiosII的软、硬结合的双核的网络数据处理解决方案。这种基于SOPC技术、NIOS-II多处理机的网络数据处理方法将成为今后网络数据处理技术发展的方向。
参考文献:
[1]周博、邱卫东、陈燕等,挑战SOC——基于NIOS的SOPC设计与实践,北京:清华大学出版社,2004.
[2]周立功,SOPC嵌入式系统基础教程,北京:北京航空航天出版社,2006.11:20.
[3]Xinix Inc.Virtex-I1 Pro and Virtex-II Pro X Platform FPGAs: Complete Data xilinx.com/bvdocs/publications/ds083.pdf.
[4]Altera Corporation NiosII Processor Reference handbook[EB/OL].
Http://www.altera.com/literature/hb/nios2/ n2cpu_nii5vl.pdf,2005-10.
作者简介:
杨予斌(1955-),男,汉族,河南洛阳人,现任洛阳市价格监测中心副主任。
关键词: SOPC;NiosII;多处理器系统
中图分类号:TP273 文献标识码:A 文章编号:1671-7597(2011)1120081-01
1 SOPC的嵌入式开发技术概述
近年来,计算机网络进入了飞速发展时期,这种快速发展给人们带来了极大便捷,但同时也带来了数据信息在处理、存储、传输和使用时,容易被窃取和篡改等问题。目前的网络数据安全管理,有多种方法可用于网络安全协议处理,常用的大致分成ASIC(Application Specific Integrate
d Circuit)和可编程方法两类。ASIC方法是系统完全由硬件来实现,其特点是速度快,成本高,纯软件方式性能低,存在一定的安全隐患,而且几乎没有灵活性和可扩展性,需要很高成本和较长的设计时间;可编程方法主要有两种类型:NP(Network Processor)和FPGA(Field Programmable Gate Array),NP提供的是以处理器为中心的可编程能力,而FPGA提供的是以硬件为中心的可编程能力。NP方法利用RISC处理器结构进行网络数据包处理。支持这一方法的器件称为网络处理器,并且是软件可编程的。NP包括多个优化的嵌入式RISC CPU,以提供可编程能力和用于通用数据包处理功能。其设计理念是利用硬件电路处理数据包的分类和修改,而利用RISC引擎进行上层管理。NP中的多处理器引擎配置成不同的架构以优化关键的路径延迟,在配置每个RISC引擎时,使得专用的RISC引擎不能再以高级语言编程,从而迫使用户使用微代码/汇编语言,并且削弱了提供灵活性和时间优势这一网络处理器存在的根本基础,使用起来非常麻烦。基于SOPC(System On Programmable Chip)嵌入式开发技术的FPGA方法,具有高度并行逻辑结构的可编程器件,可提供由用户自定义的性能和灵活性组合,对任何高速并行数据处理都非常理想。FPGA内部可以嵌入RISC软核,利用FPGA内部的硬件可编程特性,和很强的灵活性和可扩展能力,大幅度地提高系统性能。由于FPGA没有内置的网络处理功能,用户可通过在FPGA内增加网络系统所要求的特性,利用硬件描述语言(HDL)、知识产权核心(IP)和C语言对其进行硬件编程。SOPC为网络安全协议的实现提供了一个极灵活的解决方案。利用FPGA器件,可以在单片器件内集成范围广泛的硬和软IP核,其中的硬件和固件具有可升级能力。SOPC的嵌可编程能力,缩短了系统开发时间,使单个FPGA解决方案更适用于设计需求,可以在整个开发周期中对系统进行优化,同时还为硬件和软件设计提供了灵活、方便的方法,应该成为今后网络数据处理技术发展的一个方向。
2 多处理器系统解决方案
在嵌入式系统中实现网络协议、密码算法处理的方案主要有ASIC、NP、FPGA、纯软件方式等,其系统内部一般只有一个CPU,每一个时刻CPU只能执行一条指令。该系统内部虽然可以采用并行技术,如指令流水线、多个ALU单元以及专用的协处理器等,但这些并行技术只能提高顺序程序的指令执行速度,它无法提供进程级、作业级的并行性。采用多处理器、多指令多数据流(MIMD)系统,能够提供高级并行性,它通过并行处理实现最大的效能,高级并行不仅可以是多个处理器同时操作,而且还可以是多个程序(进程)在同一时间片内执行。在具体的实现上可以是多处理器,多计算机、也可以将多处理器系统作为多计算机系统中的结点,构成一种混合的多处理机。MIMD实现方式与传统的SISD(单指令流单数据流)实现方式相比,增加了单位时间内的数据流,它通过卸载单个处理器任务的策略来提高系统整体性能,通过根据任务的分类来组织任务执行,将不同类型的任务放在不同的CPU中执行,任务间的协调是通过共享存储器中的公共变量或Send/Receive操作原语来实现。该系统中给每个CPU分配了特定的任务,在这些任务中,可能会存在对特定I/O设备的访问,降低CPU对每个外部设备的访问要求。MIMD在硬件架构上更适于用多处理机实现,可以通过共享的存储器在不同的CPU上实现不同的专有任务,同时根据系统级任务进行分类,它提供了更高级别的并行性,将相关的任务放在同一CPU内执行,由各CPU之间并行地完成系统级任务,从一定程度上降低了进程间因互相迁移而造成的通信时间,系统级的任务可能要求CPU能够访问每个外部设备,要求相关任务在每个CPU执行的等效性,要求每个CPU有等同的硬件架构。实现任务的逻辑分组,更高效的发挥处理能力,能够以较低的时钟频率和功耗实现较高的性能。多处理机中共享的存储器通过ICN(互联网络)被所有的CPU共享,其ICN的实现方式将决定多处理器的个数及系统性能,当采用总线方式时,其处理器的个数一般不超过4个,当采用交叉开关的方式时可扩展到64个。MIMD系统中多计算机架构为系统级并行提供了方案,而多处理机为任务级并行提供了方案,通过并行处理实现最大的效能,并行不仅指多个处理器同时操作,而且指多个程序(进程)在同一时间片内执行。它灵活的方式可以克服SISD系统中CPU大量频繁的数据操作所消耗大量CPU等待时间,系统由多个SU(System Unit)单元构成,系统可以并行地处理N个系统级任务,SU提供系统级功能,主要完成网络协议、密码算法处理功能,由TU(Task Unit)任务单元提供比较单一的任务功能,如TU0完成网络协议,TU1完成密码算法。混合方式为系统并行性提供了更多的组合方案,整个系统可以集成更多的SU单元,SU单元又可以集成更多的TU单元,分层级连的方式扩容了系统的集成能力,极大地提高了系统的并行性。
3 基于NiosII的嵌入式网络数据处理系统
嵌入式系统中网络安全实现的技术主要涉及到主机安全技术、身份认证、访问控制、安全传输协议、数据加密、防火墙、安全审计等技术,其中网络数据传输是基础,数加密技术是核心。目前网络安全协议的实现上大多采用了单处理器系统(无法提供进程级、作业级的并行性)、同时嵌入式系统中系统的时钟提升空间在时间上日趋饱和,系统在软件上需求也越来越复杂,应用需求也越来越多,基于单CPU的设计方案很难适应这样日益复杂的需要。因此,引入多处理机成为一种必然。基于NiosII的可扩展多处理器方案,较好地解决了CPU之间信息高效交互、缓冲区一致性、任务划分、系统集成度等一系列问题。NiosII是Nios的第二代产品,其速度更快、资源占用更少,仅保留了32位模式。NiosII是32位RISC嵌入式处理器,其性能可以超过200MIP,由于是软核处理器,具有较高的灵活性,在嵌入式系统中,可以实现从硬件、软件、性能、编译环境等多个方面对处理器,网卡芯片的类型、实现方式等硬件整体架构进行设计。NiosII IDE(集成开发环境)是NiosII嵌入式系统的基本软件开发工具,所有的软件开发任务都可以在NiosII IDE下完成,包括编辑、编译和调试程序。嵌入式系统的软件开发可分为应用程序开发和驱动程序开发两部分。NiosII IDE为用户提供了设备的驱动程序,这就是硬件抽象层(HAL)系统库,用户只要利用HAL提供的各种函数就可以编写应用程序,HAL系统库在NiosII IDE中创建一个新的工程时,由IDE自动生成。NiosII IDE是和SOPC Builder紧密相关的,如果硬件配置有了变化,HAL设备驱动配置也会自动随之更改,从而避免了由于底层硬件的变化而产生的编程错误。NiosII IDE也为用户自动创建和管理HAL系统库文件提供了极大的方便,用户不用创建或拷贝HAL文件,也不用编辑HAL中的任何源代码。基于NiosII的嵌入式系统开发,需要使用Altera公司的SOPC开发环境,它主要由三个部分组成:IP库(NiosII处理器,Avlon总线,外围设备接口等),SOPC Builde开发工具,IDE软件编译器。其开发过程主要有:首先确定系统的需求,如应用系统需要的计算机性能、带宽和吞吐量、接口类型以及是否需要多线程的软件等。然后进行硬件设计,利用Altera提供的IP库,在SOPC Builde中添加需要的功能模块,生成一个NiosII系统模块,最后在Quartus中编译生成软件,完成软件设计。在NiosII IDE软件开发环境中,用户还可以根据需要编写自定义设备的操作流程、操作系统的移植、相应的应用代码等。
4 总结与展望
本文针对嵌入式系统对网络数据传输、网络安全协议实现方上,对SOPC技术进行了阐述,提出了多处理器系统解决方案和了基于NiosII的软、硬结合的双核的网络数据处理解决方案。这种基于SOPC技术、NIOS-II多处理机的网络数据处理方法将成为今后网络数据处理技术发展的方向。
参考文献:
[1]周博、邱卫东、陈燕等,挑战SOC——基于NIOS的SOPC设计与实践,北京:清华大学出版社,2004.
[2]周立功,SOPC嵌入式系统基础教程,北京:北京航空航天出版社,2006.11:20.
[3]Xinix Inc.Virtex-I1 Pro and Virtex-II Pro X Platform FPGAs: Complete Data xilinx.com/bvdocs/publications/ds083.pdf.
[4]Altera Corporation NiosII Processor Reference handbook[EB/OL].
Http://www.altera.com/literature/hb/nios2/ n2cpu_nii5vl.pdf,2005-10.
作者简介:
杨予斌(1955-),男,汉族,河南洛阳人,现任洛阳市价格监测中心副主任。