欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

PCI总线控制器中FIFO的研究与设计

时间:2011-04-23  作者:秩名

论文导读:由于PCI总线是目前比较成熟的总线互联技术。型目标接口由地址解码器、读写控制单元和读/写异步FIFO四部分组成。主设备接口的数据通路具体就是指两个异步FIFO。数据通路,PCI总线控制器中FIFO的研究与设计。
关键词:PCI总线,FIFO型目标接口,数据通路,仿真验证
 

1.PCI总线

PCI(PeripheralComponent Interconnect)总线是微型计算机中处理器/存储器与外围控制部件、扩展卡之间的互联接口。PCI总线规范是互联机构的协议,以及电气和机械配置的规范,是当今高性能微型计算机事实上的总线标准[1]。

由于PCI总线是目前比较成熟的总线互联技术,而且其性能十分稳定,所以PCI总线相关功能设备的市场需求很大。现在市场上PCI总线的相关产品很多,但大多都来自国外的PLX、AMCC等外国公司,而国内的公司鲜有相关产品问世。

2.FIFO型目标接口

FIFO型的目标通道主要用于大量的数据传输,在设计中本地存储器挂接在该接口上,这样PCI总线主设备可以通过FIFO型目标通道访问到本地的存储器。由于是对存储器的访问,数据访问量大,需要考虑到访问的效率。针对PCI主设备对本地存储器的读和写操作,设置了两个异步FIFO,读FIFO和写FIFO[2]。

PCI主设备发起的写操作,数据会先以PCI时钟写入接口内的写FIFO,同时PCI控制器会通知本地存储器控制器有数据写入。本地存储器控制器待FIFO中达到一定数据量时以自己的时钟读取FIFO中的数据存入本地存储器,如果FIFO读空,存储器控制器会暂停等待直到FIFO中有新的数据写入。对于PCI主设备发起的读本地存储器的操作,为了提高读数据的效率,设计中根据不同数据传输的特点,把读操作划分为两个类型,即立即读和延迟读。

(1)立即读 立即读就是在PCI总线主设备发起读操作后,一直占用PCI总线等待,PCI总线控制器向本地存储器请求对应的数据,直到本地存储器将数据写入读FIFO中,PCI控制器读取FIFO中数据开始PCI总线上的数据传输。这样PCI总线上的主设备在数据未到达总线之前一直是空闲的,但它也一直占用总线,降低了总线的利用率。所以这种类型的读操作一般适用于进行数据量小的传输且本地存储器可以在较短的时间内将要求的数据送到PCI总线,因为PCI规范规定目标设备不能无限制的插入等待周期。

(2)延迟读 针对立即读总线利用率低的缺点,设计中引入了延迟读。PCI总线主设备的读请求到达PCI总线控制器时,控制器锁存地址和命令信息,并回应主设备让它重试。同时PCI总线控制器向本地存储器请求数据,本地存储器将数据写入总线控制器中的FIFO中。此时如果PCI总线上的主设备重试先前的数据传输请求,PCI控制器就可以响应请求将数据发送到PCI总线上。这个过程中,PCI总线主设备在收到重试回应后就会释放PCI总线,允许其它的主设备占用总线进行数据传输,这样从而提高了总线的利用率。需要注意的是,重试读的过程中,PCI总线控制器一定要对重试的地址和命令信息进行核对,保证FIFO中的数据是主设备要求的数据。

通过对FIFO型目标通道的详细分析,最后确定该类型的目标接口的结构设计如图1所示。

数据通路

图1 FIFO型目标接口结构

FIFO型目标接口由地址解码器、读写控制单元和读/写异步FIFO四部分组成,在控制部件的协调控制下,共同完成PCI总线上的其它主设备对本地存储器的数据存储或读取。

地址解码器:解码PCI总线上的地址信息,识别对FIFO型目标接口的访问[3]。

读写控制单元:主要用于目标延迟读的控制,存储并比照前后数据传输请求的地址和命令信息,声明本次传输请求是否为有效的延迟读请求。发表论文,数据通路。

读/写FIFO:异步FIFO,用于缓存PCI主设备到本地存储器的读写数据。发表论文,数据通路。

对于地址解码器的实现,本设计中引入了地址翻译转换机制,增加了系统地址分配映射的灵活性。在最初PCI系统分配地址时,FIFO型的目标接口被分配到某一段地址区内。所有来自PCI总线其它主设备的访问,地址如果落入该地址区内,PCI主设备就可以通过该目标接口访问到挂接其上的本地资源如本地的存储器。由于存储器也可以工作在本地的系统中,具有本地系统分配给自己的地址范围,如果在整个PCI系统中,PCI主设备和本地的处理器对存储器的地址分配不一致,那本地的存储器必须对两个地址空间做出正确响应。

设计中引入地址翻译,将PCI上总线地址转换为本地的地址。FIFO型目标接口的基地址由配置空间的基地址寄存器(fifo_target_bar)给出,增加一个地址翻译寄存器(local_bar)来指出地址翻译窗口的大小和翻译后地址的所在(即本地地址)。图2给出了地址翻译的过程。

数据通路

图2 地址翻译

由fifo_target_bar和local_bar两个寄存器建立PCI地址和本地地址一一对应的映射关系,本地地址对PCI总线上的主设备是透明的。图中虚线框所圈定的地址区,如果有PCI主设备访问地址落入该区域内,PCI总线控制器不会对这种访问做出响应。

这样,通过引入地址翻译机制,使得PCI总线系统不用关心本地资源的地址分配,只需要设定好FIFO型目标通道的地址空间就可以了,而本地的处理器就需要对这种地址映射关系负责。当然设计中预留了地址翻译使能的编程信号,可以通过它启动或关闭地址翻译功能。

3.主设备接口的数据通路

主设备接口的数据通路具体就是指两个异步FIFO,FIFO作为发送和接收PCI数据的缓存,而它们的溢出或读空并非由主设备接口内的状态机处理。PCI总线控制器会将读写FIFO的空满状态通告给本地的主设备,有本地主设备保证FIFO不会出现异常情况。

本地主设备对PCI总线上的目标设备进行读操作时,读FIFO提供三个状态标志表明当前FIFO的数据量,即为空、几乎空(还有一个数据)和数据量常数标记。发表论文,数据通路。发表论文,数据通路。本地主设备在完成指定数量的数据传输或者出现错误时停下来,如果想一次读取超过FIFO深度的数据量,那么本地主设备必须保证FIFO处在非满的状态,否则就会出现错。发表论文,数据通路。因为主设备的状态机不允许在PCI 总线上插入等待周期,这样再次取来的数据会覆盖掉原数据。发表论文,数据通路。所以本地主设备在进行读传输时要提供恰当的传输字节数信息。

对应的,本地主设备写PCI总线上的目标设备时,写FIFO同样提供三个状态标志:满、几乎满(还有一个空间)和数据量常数标记。本地主设备必须保证写FIFO处在非满的情况下才可以向FIFO中写入数据。

PCI总线控制器提供给本地主设备FIFO的空满状态信息的同时,也为本地主设备提供了相应的控制信号force_term,本地主设备可以根据FIFO的状态使用该信号来控制数据传输的进程。当FIFO即将写满或者读空时,本地主设备可以有效该信号暂停数据传输,等主设备处理完FIFO中的数据后再进行PCI数据传输。

4.FIFO的仿真及验证

在前面的设计中,已经使用verilog硬件描述语言完成了FIFO的RTL(Register Transfer Level,寄存器传输级)设计。下面需要对设计进行RTL级的功能验证,确保前面的设计达到预期的功能要求。

最终使用Modelsim SE5.7a仿真工具[4]验证完成后,FIFO完全实现了要求的功能,在总线监测器产生的两个日志文件中也没有规范和时序违反的情况出现。下面附上验证过程中的时序图。

数据通路

图3 PCI总线主设备对本地存储器的写


参考文献
[1]TomShanley,DonAnderson著.林辉等译.PCI系统结构[J].电子工业出版社,2000:1~5
[2]尹勇,李宇.PCI总线设备开发宝典[M].北京航空航天大学出版社,2005:10~14
[3]杜胜,冯丹.PCI总线设备的开发过程及应用实例[J].通信技术.2003,(7):118~120
[4]CliffordE.CummingsPeterAlfke.SimulationandSynthesisTechniquesforAsynchronousFIFODesignwithAsynchronousPointersComparisons[J].SUNG2002Userpapers.2002.3The
 

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:Oracle动态SQL之本地动态SQL的使用
下一篇论文:PC与多TMS320F2812 DSP串行通信协议的设计(图文)
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
    无相关信息
最新计算机论文
读者推荐的计算机论文