FIFO和双口RAM有什么区别?

2025-06-23 23:51:20
推荐回答(1个)
回答1:

在测控、仪器仪表、语音信号处理和图像通信领域中往往需要多处理器分工完成数字信号处理(DSP)算法和与外部系统的通信、控制、数据采集和人机接口功能。在多机系统中,CPU之间的通信常采用以下几种方式:(1)串行通信。这种方式相对简单,由于受到波特率的限制,在不同档次单片机之间需要通信业务大的场合得不到很好的通信效果。(2)并行通信。利用CPU的I/O功能在CPU之间增加缓冲器或锁存器实现双机通信。通信性能较串行通信有所提高,但仍然得不到理想的效果。(3)利用共享式存储器实现。DMA方式就是其中的一种,能够达到数据的高速传输,但不能同时访问存储器,CPU必须等待总线,而且有些CPU不支持DMA功能。另一种是利用多端口存储器,双口RAM和FIFO是常用的两种多端口的存储器,允许多CPU同时访问存储器,大大提高了通信效率,而且对CPU没有过多的要求,特别适合异种CPU之间异步高速系统中。因此,受到硬件设计者的青睐。
双口RAM是常见的共享式多端口存储器,以图1所示通用双口静态RAM为例来说明双口RAM的工作原理和仲裁逻辑控制。双口RAM最大的特点是存储数据共享。图1中,一个存储器配备两套独立的地址、数据和控制线,允许两个独立的CPU或控制器同时异步地访问存储单元。既然数据共享,就必须存在访问仲裁控制。内部仲裁逻辑控制提供以下功能:对同一地址单元访问的时序控制;存储单元数据块的访问权限分配;信令交换逻辑(例如中断信号)等。
FIFO(First In First Out)全称是先进先出的存储器。先进先出也是FIFO的主要特点。
FIFO只允许两端一个写,一个读,因此FIFO是一种半共享式存储器。在双机系统中,只允许一个CPU往FIFO写数据,另一个CPU从FIFO读数据。而且,只要注意标志输出,空指示不写,满指示不读,就不会发生写入数据丢失和读出数据无效。

本文介绍了以双口RAM和FIFO为例,利用多端口存储器设计多机系统。现对双口RA几FIFO比较如下:(1)FIFO的仲裁控制简单,但其容量不如双口RAM。由于先进先出的特点,特别适合数据缓冲和突发传送数据。某些芯片的内部就集成小容量FIFO,例如,DSP的同步串口就集成两个FIFO,用于接收和发送数据缓冲。双口RAM的仲裁逻辑比FIFO复杂,但其容量较
大。由于存储数据完全共享,适用于双机系统的全局存储器和大容量数据存储共享,例如大容量磁盘的数据缓存可采用双口RAM。(2)FIFO只给外部提供一个读和一个写信号,因此CPU用一个I/O地址便可读或写FIFO,使硬件趋于简单,给编程也带来一些方便,但CPU不能对FIFO内部的存储器进行寻址。双口RAM由于有两套地址线,使硬件较FIFO复杂,但允许CPU访问内部存储单元,因此CPU之间可以自己定主和分配数据块以及数据单元,使软件设计更加灵活。
在异种机系统设计中,利用双口RAM和FIFO能够实时、快速、灵活和方便地进行相互通信,得到满意的效果。