编码流水传输实验
团子研究日志
2020年06月07日 17:42
收录于文集
共24篇

实验资源来自于MOOC-华中科技大学-计算机硬件系统设计

https://www.icourse163.org/course/HUST-1205809816

一、流水模拟

流水线技术在CPU的设计中已经屡见不鲜。现在我们就来看一个简单的数据传输流水。

流水接口和流水模拟电路在实验文件中都已经设计好了,这里就简单陈述一下。

16位流水接口

流水接口主要就是里面的寄存器,通过多路选择器对数据流的选择,实现清零,寄存,忽略传输的功能。

流水模拟

通过探测器显示,可以观察到数据依次向右传输,与工厂中的流水线相似。

二、编码流水传输

无论选择什么样的编码做法都是相同的,这里只做海明编码流水传输实验。

需求:出现两位错的时候要求数据重传,必须保证接收顺序相同。

实现:

1.让发送端地址回滚。(类似指令流水线分支处理的分支跳转)

2.清空除最后一个外流水接口中的所有数据。(类似指令流水线分支处理的清空误取指令)

3.最后一个流水接口停止接受数据。(类似指令流水线数据处理的流水线暂停)

(一)地址回滚器

实现:

1.明显可以发现,当数据传到解码阶段时,发送端的地址和解码位置的地址相差四个位置。

2.使用数据选择器,实现如果回滚,传输回滚地址,否则传入正常地址。

3.回滚地址要分情况,当正常地址小于4,减去4个位置会变为地址末端,所以直接取零。

4.大于4的时候直接让正常地址减4即可,但是为了防止出现某位数据出错,在没有传到解码位置时,又出现两位错,进行倒退的情况。我们将每次处理后得到的回滚地址存入寄存器中,再和做减法后的回滚地址进行比较,如果小于就重传就回滚地址。

eg: 正常数据:华中科技大学是一所国家……    已接收数据:华中科技大 第一次出错:国->所->一->是->学 重传过程1:学->国->所->一->是 重传过程2:是->学->国->所->一 第二次出错:是->学->国->所->一 重传过程1:技->是->学->国->所 重传过程2:大->技->是->学->国 …… 最后接受数据:华  中  科  技  大  技  大  学  是  一  所  国  家……

地址回滚器

(二)Stall信号控制

实现:Stall信号高电平有效

1.当出现两位错信号时,需要停止接受数据。

2.出现两位错信号后,还需要继续停止3个时钟周期,新的数据才能传输过来。所以当出现两位错信号后,将计数器加载为3,逆向计数,计数到最大值后停止计数。再将计数器存储的值转为2进制信号。通过或门输出信号,即可实现在除0的时钟周期外,都输出停止信号。

Stall信号控制

(三)海明编码流水传输

将对应信号连接即可。

海明编码流水传输电路

三、测试电路

流水模拟

流水传输