摘要:本文论述了使用FPGA器件,利用SOPC嵌入式开发技术,复用多种软CPU IP核,使用片内总线代替机群内的计算机网络,移植现有的软件开发方法,在片上构建包含WEB 服务器、业务逻辑应用服务器、数据库服务器的B/S系统的可行性及实现方法,并给出一个具体实现方案。
引言
B/S系统一直是基于大中小型服务器、台式机等通用计算机而设计的。为具体单个的B/S系统从芯片开始量身订做一整套计算机软硬件系统,使其安全、可靠、高效地运行,长期以来被认为是一件不现实的事情。
近年来, FPGA器件和SOPC嵌入式开发技术的迅速发展为多处理器片上系统的实现提供了灵活的解决方案。利用可配置处理器软核复用的多处理器片上系统,借以实现B/S系统软硬件一体化,已经成为一个值得研究的课题。
本文探讨使用FPGA器件,利用SOPC技术,复用多种软CPU IP核,移植现有的编程模式,在片上构建一个多处理器B/S系统的可行性及实现方法。这种系统不仅效率、处理事务的吞吐率与现有的以通用机为主的B/S系统相当,且其安全性、可靠性更好,成本更为低廉。
- 可行性
当前的典型B/S系统一般分为三层:数据访问层、业务逻辑层、表示层,另外,其后台一般都需要DBMS为其提供数据库服务。系统所需的机器主要有:数据库服务器、业务逻辑应用服务器、Web服务器,三种服务器软件可以部署在一台机器上,也可部署在多台机器上,各机器之间用计算机网络互连,目前流行的部署方式属于后者。
在B/S系统中,一个用户从浏览器输入URL到一桩事务处理完毕基本上要经历如下几个过程:
- Web服务器解释页面脚本
- 在遇到业务逻辑运算时调用业务逻辑层API
- 业务逻辑应用程序进行业务逻辑运算
- 业务逻辑应用程序在遇到数据库操作时向DBMS传递SQL语句
- DBMS操作数据库,并返回结果给应用逻辑应用程序
- 应用逻辑应用程序运行完毕时返回结果给Web服务器
- Web服务器生成结果HTML页面返回给客户端
其中2-6的过程可能会在一个页面里处理多次,3-5的过程可能会在一次业务逻辑运算时处理多次。因此,通常情况下,负荷最重的是DBMS,其次是业务逻辑应用子系统,最后才是Web服务子系统。其中,DBMS还要受限于磁盘读写速度瓶颈。
当多个用户请求页面时,不同架构的B/S系统执行时间是不同的。为了简便测算系统的执行时间,先假设每次页面请求时,Web服务器、应用服务器、数据库服务器线性执行。
设单个页面在Web服务器上运行的时间为TW,在应用服务器上运行的时间为TA,在数据库服务器上运行的时间为TD,通信开销为TC。则,串行执行一个页面处理所需的时间为:
(1)
流水执行时,负荷最重的DBMS显然是瓶颈,当n个页面处理流水执行时,流水线的执行时间为:
(2)
由(2)式可以看出,当n非常大,且页面处理过程线性流水执行时,TW、TA、TC可以忽略不计,系统的吞吐率只与TD有关,即,数据库服务器吞吐率实际上决定了整个B/S系统的吞吐率。
数据库服务器上CPU的运行时间与磁盘读写时间相比,相差约为六个数量级,即使采用了磁盘阵列、缓存管理、数据预处理等先进技术加快磁盘访问速度,也至少相差三到四个数量级,因此,可以这样认为,在B/S系统中, CPU的运算速度并不是最重要的因素。
现在在FPGA上可运行的软CPU核中,Altera的Nios II 可以达到200DMIPS,Xilinx的MicroBlaze可以达到166DMIPS,OpenCores的OpenRisc 1200性能介于ARM7到ARM9之间,在主频300MHz时,性能可以达到300DMIPS,虽然与主流通用机CPU相比,它们的速度有很大差距,但在B/S系统中,这种差别已经为页面处理过程的磁盘读写瓶颈所淡化。
Nios II软核的耗费约600到3000个逻辑单元,MicroBlaze 与Nios II的耗费相当,OpenRisc 1200耗费约为4000个逻辑单元,而一片Altera的高端Stratix II FPGA器件EP2S180有179400个逻辑单元,一片Xilinx的高端Virtex-4型 LX系列 FPGA器件最大有89088个Slice。在其上复用多个CPU软核(至少三个以上)构成多处理器硬件系统已经不再是非常困难的事情。
OpenCores已经在OpenRisc 1200上移植了Linux内核版本2.6.15(当前最新版本为2.6.24),并提供GCC 4.0的交叉编译工具链;Altera 为其Nios II提供了uCos II 开发插件,同时,Microtronix也为其提供了uClinux内核移植及其开发插件;MicroBlaze 上也移植了uClinux.;由于这些工作的完成,片上多核B/S的软件系统构建的复杂度大大降低。
因此,利用可配置处理器软核复用的多处理器片上系统,借以实现B/S系统软硬件一体化,有可能达到与基于通用机B/S相似的性能,而且在技术上也是可行的。
- 硬件架构
在FPGA上将Web服务器、应用服务器、数据库服务器集成,至少需要三个处理器软核,其中,作为Web服务器和数据库服务器的CPU必须能够运行复杂的操作系统,例如Linux。一个可行的方案可以如图1所示架构。
没有回复内容