热门关键字:  概率论论文  儿童  计量  城市规划 建筑  民事诉讼

龙芯2E北桥的设计和性能优化

论文来源: 论文作者: 时间:2008-08-05 字体:[ ]
  摘要:介绍了龙芯2号增强型处理器(以下简称龙芯2E)配套北桥的总体架构、模块互连以及各个模块的设计和优化工作。测试结果表明,优化使龙芯2E系统的FTP上传带宽提升了36.6%,系统的整体性能达到了Intel Pentium4 1.4 GHz的水平并足以胜任各种格式流媒体的解码和播放。
  关键词:北桥; 芯片组; 龙芯; Wishbone; 互连外围设备
  中图分类号:TP302文献标志码:A
  文章编号:1001-3695(2007)12-0249-04
  
  提高计算机的整体性能一直是人们追求的目标。在计算机系统中,CPU是计算核心,芯片组则是数据通路的核心。芯片组控制着CPU和大部分设备和数据的交互,它的性能对计算机整体性能起着至关重要的影响。
  PC芯片组一般是南北桥架构。北桥靠近CPU,主要连接高速设备,如内存、显示芯片、千兆网络等,要求提供高带宽低延时的数据通路。南桥远离CPU,主要连接低速设备,如硬盘、键盘、鼠标、软盘等,要求提供高度集成的功能。也有芯片组在单芯片中集成了南北桥功能,如nVIDIA公司的nForce3和nForce4芯片组。但单芯片组验证复杂,应用上缺乏灵活性,所以在市场占有率上不如南北桥架构的芯片组。
  对于龙芯2E处理器[1]而言,设计自己的高性能北桥有迫切的需要。龙芯2E处理器一直使用MARVELL公司的GT 64240北桥芯片。此款芯片价格较高,使龙芯系统成本居高不下,严重阻碍了龙芯的推广。最新的龙芯2E片内集成了内存控制器,使用了自己定义的系统接口,所以必须设计自己的高性能北桥。
  
  1实验平台
  
  本文在无特殊说明时,使用的实验平台为:龙芯2E北桥的设计和验证采用Altera公司的Cyclone Ⅱ EP2C35C7 FPGA,综合布局布线等工具均使用Altera公司的QuartusⅡ 6.0软件;处理器为龙芯2号增强型,片内集成64 KB指令cache、64 KB数据cache和512 KB二级cache,处理器内部集成内存控制器,其他设备的访存操作通过处理器完成;南桥为VIA公司的VT82C686B;外部时钟频率66 MHz,CPU工作于10倍外频。
  
  2龙芯2E北桥的结构设计
  
  2.1总体架构与模块互连
  笔者采用自顶向下的分模块设计的方法设计龙芯2E北桥。龙芯2E北桥主要由四个模块组成,即CPU接口模块、PCI桥模块、寄存器模块和local I/O模块。
  北桥内部各模块使用Wishbone总线[3]交叉开关方式互连。Wishbone总线由Silicore公司提出,优点是硬件结构简单、互连吞吐高效,而且公开、免费,所以广泛用于片内系统设计中。笔者使用32 bit地址总线和64 bit数据总线互连,具有很高的传输带宽,而且交叉开关的互连方式使得吞吐率和并行性提高,整个系统也具有良好的扩展性。整个龙芯2E北桥的结构和连接如图1所示。
  北桥的主要模块中,CPU接口模块既是Wishbone主设备也是Wishbone从设备;PCI桥模块分为PCI target和PCI master两个部分,PCI target是Wishbone主设备,PCI master是Wishbone从设备;寄存器模块、local I/O模块是Wishbone从设备。Wishbone主、从设备分别遵守Wishbone协议中master interface和slave interface规范[3]。
  因为处理器内部集成了内存控制器,所以CPU接口模块除了负责处理CPU发出的对外设的读写请求,还要处理PCI模块发出的DMA请求;PCI桥模块实现了北桥和PCI设备的连接;寄存器模块实现了中断和北桥配置功能;local I/O模块实现了对ROM和串口的访问。
  每个从设备都有一个仲裁逻辑决定从设备响应哪个主设备的请求。笔者定义了一个三位的仲裁寄存器。其中两位为1,一位为0,此寄存器在每个时钟周期循环移位。如果没有竞争,那么发起操作的主设备立即获得访问权;如果存在竞争,三位仲裁寄存器的最低位为1时CPU获得访问权,否则PCI target模块获得访问权。这种实现下CPU有2/3的概率获得访问权,PCI target有1/3的概率获得访问权,笔者用很简单的实现方式保证了在优先响应CPU的情况下PCI target不会饿死。
  2.2龙芯2E系统接口和北桥CPU接口模块
  龙芯2E处理器片内集成了内存控制器。其系统总线的定义是在MIPS R10000[4]处理器接口上变化而来的。龙芯2E系统接口支持1~8 Byte读写和32 Byte的块读写请求,与R10000接口主要的不同在请求号和流控的处理上。龙芯2E接口可以支持八个outstanding的请求,每个请求均有一个惟一的请求号,由接收请求的一方显示释放。北桥和CPU维护各自的请求号队列,通过请求号来区别不同请求的数据,并通过是否有空闲的请求号来进行流控。
  龙芯2E处理器以前的龙芯2系列处理器接口均使用SysAD总线协议[5]。SysAD不能同时发出多个读写操作,即当一个操作正在被执行时,后续的操作均不会被执行,直到该操作执行结束,这是一个完全串行化的过程。而龙芯2E系统接口支持多个outstanding的请求,有更好的并行性和更高的效率。多个outstanding请求也使北桥可以更灵活地做一些优化工作。
  龙芯2E系统接口还支持uncached block write操作。一般而言,对于uncached的地址,CPU可以进行字节、半字、字的写操作;只有对于cached的地址,才可以进行一个cache行的块写操作。而龙芯2E支持uncached block write,可以将连续的uncached地址的多个写操作合并成一个块操作完成,大大提高了uncached写操作的效率。
  龙芯2E北桥CPU接口模块结构如图2所示。它主要完成三个功能,即总线使用权的仲裁、处理CPU发出的读写请求和处理PCI设备发起的DMA读写请求。对于CPU接口发出的命令和数据,首先写入模块内部的命令数据队列中,并通过Wishbone master接口按队列中的顺序发起Wishbone总线上的操作,将数据与命令送到目标模块;读返回数据先存入读数据返回队列中,并通过CPU接口顺序返回。对PCI桥模块通过Wishbone slave接口发起的DMA读写请求,直接向CPU接口发出命令,并写出数据或将CPU接口返回的数据直接返回给PCI桥。北桥CPU接口模块的仲裁逻辑决定系统接口的总线使用权和负责请求号的管理,竞争总线使用权的是CPU、北桥的DMA命令和北桥返回CPU读数据。
  2.3PCI桥模块
  龙芯2E北桥中PCI桥模块由PCI master和PCI target两个模块组成。它实现了PCI接口协议,负责连接系统中的PCI设备。PCI master模块处理CPU对北桥PCI配置空间的访问和CPU对PCI设备的访问。PCI target接收PCI设备发起的请求,包括DMA操作和对PCI配置空间的访问,转换为Wishbone总线的操作。图3为PCI桥模块的结构图。
龙芯2E北桥的设计和性能优化由800论文网收集整理,转载请注明出处!
baidu
互联网 www.800lw.com
Tag:
[收藏] [推荐] [评论] [打印] [关闭]
800免费论文网-中国最大最全的免费论文下载网站
推荐论文