缓冲区总是由硬件制造商分配的固定块吗?

时间:2013-11-13 17:01:51

标签: c++ buffer hardware

我一直试图了解缓冲区是如何构建的?据我所知,缓冲区是一个硬件结构,如逻辑门(如果我错了,请纠正我)。所以,我想知道缓冲区是否始终由硬件制造商修复的位置/块,或者它可以是软件/ OS保留的任何位置。我的意思是任何缓冲区,即数据缓冲区,缓存缓冲区等。

如果我的问题有点模糊,请道歉。我只想了解缓冲区的实现方式和级别。

1 个答案:

答案 0 :(得分:2)

缓冲区只是一个临时存储工具,用于在子系统之间传递数据。缓冲区的性质(以及子系统的定义)取决于它的使用方式和位置。

硬件(例如CPU)可以实现作为一种缓冲器的存储器高速缓存。在硬件中,尺寸几乎是固定的,但实际尺寸取决于硬件设计。

(通用)在软件中,缓冲区通常是应用程序保留的一块内存,用于临时存储生产者生成的数据并传递给消费者进行处理。它可以是静态(固定)大小或动态扩展/收缩。它实际上取决于应用程序的需求,由开发人员/设计人员定义。

缓冲区通常用于在软件和硬件之间传递数据。最熟悉的是I / O.由于I / O通常较慢,因此通常以某种方式缓冲数据,以允许软件继续运行,而无需等待I / O子系统完成。