请教:FIFO与BUFFER的区别?!

shedmaze1 2011-05-10 02:03:04
大家好!
菜鸟求助:今天看了许多资料,有人说一个是软件,一个是硬件,但是又有人说这两个都是硬件,现在是一头雾水,我在看一个通信问题的时候遇到这个概念,现在搞不懂,因为在开发硬件的时候经常看到这两个东西,可是现在是迷迷糊糊,不知道到底该用哪个!!!请哪位接触过的大侠指点下
...全文
2570 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shedmaze1 2011-05-12
  • 打赏
  • 举报
回复
呵呵,果然是高手,谢谢~~现在我对这个东西也理解了,也会选择着使用了!
[Quote=引用 12 楼 ejack79 的回复:]
既然LZ专门留言,那我就逐条说说:

引用FIFO是存在于内存中的
不一定。FIFO广泛存在于各种软硬件系统之中,例如微控制器/微处理器的接口模块就大量地应用了硬件FIFO。FIFO是一种确保不同类型数据保持同步的信息缓冲形式。

引用BUFFER是存在于CPU中的
不一定。buffer是一个比较宽泛的定义,各类缓冲都可以叫做buffer。硬件buffer不仅存在于CPU中,在很多其它……
[/Quote]
Ejack79 2011-05-12
  • 打赏
  • 举报
回复 1
既然LZ专门留言,那我就逐条说说:
引用
FIFO是存在于内存中的

不一定。FIFO广泛存在于各种软硬件系统之中,例如微控制器/微处理器的接口模块就大量地应用了硬件FIFO。FIFO是一种确保不同类型数据保持同步的信息缓冲形式。
引用
BUFFER是存在于CPU中的

不一定。buffer是一个比较宽泛的定义,各类缓冲都可以叫做buffer。硬件buffer不仅存在于CPU中,在很多其它IC如存储器件、接口器件、音视频编解码器等广泛存在。
引用
BUFFER是用来缓解内存速度和CPU速度的快慢冲突的

你这描述的应该是cache,高速缓存。
shedmaze1 2011-05-11
  • 打赏
  • 举报
回复
嗯,呵呵,那在实际问题中到底选择用哪个呢?!
[Quote=引用 7 楼 koala_kd 的回复:]
fifo和buffer都只是一种模型,上帝不会管你用硬件还是软件来实现
[/Quote]
难得18 2011-05-11
  • 打赏
  • 举报
回复
FIFO 是先入先出存储,而BUFFER是可以随机读取的.
shedmaze1 2011-05-11
  • 打赏
  • 举报
回复
请教:那到底区别在哪里呢:?!


[Quote=引用 6 楼 ejack79 的回复:]
乱弹琴……
[/Quote]
koala_kd 2011-05-11
  • 打赏
  • 举报
回复
fifo和buffer都只是一种模型,上帝不会管你用硬件还是软件来实现
Ejack79 2011-05-11
  • 打赏
  • 举报
回复
乱弹琴……
bjtea 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 shedmaze1 的回复:]
这个啊。。。各位我花了下午时间弄明白了,哈,其实最简单的说句就是:FIFO是存在于内存中的,而BUFFER是存在于CPU中的,FIFO是内存中一块用来管理不同时钟域的数据或者不同数据宽度的数据同步的,儿BUFFER是用来缓解内存速度和CPU速度的快慢冲突的。。。。。就是这样。。。谢谢楼上各位回复。。结贴去喽~
[/Quote]

楼主的理解有进步,但没有规定BUFFER一定在CPU当中,举例来说,用户可以随意在内存中开辟数据BUFEER,用来暂存接收的批量数据;同样CPU当中也可以由FIFO,例如,ARM芯片2410CPU中每个UART中就有收/发各16字节的FIFO;此外2410的USB,SDI,I2S部件中都有FIFO。
shedmaze1 2011-05-10
  • 打赏
  • 举报
回复
这个啊。。。各位我花了下午时间弄明白了,哈,其实最简单的说句就是:FIFO是存在于内存中的,而BUFFER是存在于CPU中的,FIFO是内存中一块用来管理不同时钟域的数据或者不同数据宽度的数据同步的,儿BUFFER是用来缓解内存速度和CPU速度的快慢冲突的。。。。。就是这样。。。谢谢楼上各位回复。。结贴去喽~
durant 2011-05-10
  • 打赏
  • 举报
回复
软件FIFO也是基于硬件的
Great_Bug 2011-05-10
  • 打赏
  • 举报
回复
FIFO....可能只有最先进的数据才能访问,BUFFER一般是全部数据都能访问。
bjtea 2011-05-10
  • 打赏
  • 举报
回复
FIFO是先进先出的数据缓冲区,可以是硬件做好的固有区域,也可以是软件在内存中开辟的区域;BUFFER就是数据缓冲区,没有强调一定是先进先出,还是先进后出。

6,163

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧