使用硬件相似的数据处理.一般都是数据进来,处理后立即发出去的形式.所以一般有一个数据进,一个数据出,2个接口.
硬件处理基本都要求实时.数据进来,处理之后马上发处理,这个时间要求非常短,一般要求控制在好多毫秒以内,才能达到实时的要求.一般硬件每秒钟能够处理的数据大小,在设计的时候就固定了.不能像软件那样,可以通过增加CPU来提升处理能力.而且硬件的缓存的容量也是在设计的时候就固定了,不能像软件那样,随意申请内存来用.
所以硬件的缓存都不会太大.缓存的数据太大,会造成等待数据处理延时太高.达不到实时的要求.
硬件每秒能够处理的数据也是固定的.
硬件在处理数据的时候,一般是要等待缓冲区有足够的数据可以处理,然后开始处理.
如果数据输入的速度,固定保持在理想状态,那么缓冲区就会一直有数据供给硬件平稳的进行处理.
输入一直输入数据,硬件一直有数据在处理,输出一直在输出处理好的数据.缓冲区的数据容量,一直保持在某个范围.
如果指数据发送太快,硬件处理不过来,缓存已经装不下那么多数据,开始丢弃这些数据,放弃处理.这就是指上溢.
如果数据发送太慢,缓冲区的数据都处理空了,输入数据还没过来,硬件还在等待缓冲区有足够数据可以处理,输出接口就在要求发送处理好的数据出去,就是指下溢.