使用Mux/DMux单线传输数据时的数据丢失疑问
关于异步多路复用器(Mux)不丢失数据的关键细节
你疑惑的核心点没错——如果Mux只是单纯二选一且不存储未选中的信号,确实会丢数据,但这张示意图过于简化,省略了实际多路复用的几个核心机制:
时分复用的时间片轮询逻辑:实际的Mux不是随机选a或b路信号,而是按固定的时间片轮流切换,把a、b两路的比特交织后送入传输线。比如先传输a的1个比特,再传输b的1个比特,循环往复。接收端的DMux会按照同样的时间片规则,把交织的信号拆分回a、b两路。只要传输线的带宽能覆盖a+b两路的总带宽,就不会丢失任何数据。
异步场景的同步机制:虽然示意图标注Mux和DMux用独立振荡器,但实际系统中会有同步信号(示意图未画出),或是通过帧同步、比特同步的方式,让DMux准确知道什么时候该切换到哪一路信号。比如在每一组交织的比特前添加同步标记,告诉接收端“接下来是a路的比特”“接下来是b路的比特”,确保拆分正确。
缓冲存储的作用:很多实际的Mux会内置缓冲寄存器,暂时存储当前未轮到传输的那一路的比特,等对应的时间片到来时再发送。示意图省略了这个存储环节,才会让你产生“未选中的信号直接丢失”的误解。
简单说,你忽略的是多路复用的核心是“分时共享传输线”,而非“二选一丢弃”,示意图简化了实现细节,才造成了误解。
内容的提问来源于stack exchange,提问作者nady
相关产品推荐
相关产品推荐

