【Computer Organization笔记17】大实验讨论:各组数据通路展示

本次笔记内容:
P33 计算机组成原理(33)
P34 计算机组成原理(34)

我的计组笔记汇总:计算机组原理成笔记

视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完

幻灯片见我的 GitHub 仓库:计算机组成原理 src/slides

今天这节课是小组讨论的时间。

首先解答同学问题:RAM1和UART冲突的问题。

首先解答同学问题

【Computer Organization笔记17】大实验讨论:各组数据通路展示
如上,FPGA可以理解为 CPU ,IS6… 可以理解为 RAM1 ,UART 是串口。存储器 RAM1 与 UART 都连接在总线上。

从地址上可以区分,到底是访问哪个部件。但是发现问题:访问 RAM1 高八位是对的,第八位往往是错的。

原因是:只有八位的UART也时刻在往总线上发数据。

要求访问存储和串口是要有区分:

  • 7FFF 以后,都要送到图片中属于上部的地址线上;
  • 地址线不会发生冲突,因为地址线只接收 CPU / FPGA 的内容。
  • 只有 BF00 和 BF01 是访问这个 UART 的地址。

我们要做的事情就是,在访问 RAM1 时,比如让 RAM1 往外送数据时,要让 UART 输出高阻态。

因此,解决办法:访问非 BF00 与 BF01 时,让UART输出高阻态。访问 UART 同理,让 RAM1 输出高阻态。

101组展示

决定做多周期。

多周期数据通路

【Computer Organization笔记17】大实验讨论:各组数据通路展示
【Computer Organization笔记17】大实验讨论:各组数据通路展示
取址如上。其他如译码、执行、访存、写回不再展示。

问答

中断会做的,怎么加没想好。

专用寄存器也放在寄存器堆里。

102组展示

流水数据通路

【Computer Organization笔记17】大实验讨论:各组数据通路展示

问答

专门设有冲突检测的单元。

在第4个阶段才检测冲突,使用暂停的话,会不会影响之后的指令?如果需要刷的话,刷三条指令?

计11 hfl组

指令分析

【Computer Organization笔记17】大实验讨论:各组数据通路展示
【Computer Organization笔记17】大实验讨论:各组数据通路展示
【Computer Organization笔记17】大实验讨论:各组数据通路展示
【Computer Organization笔记17】大实验讨论:各组数据通路展示
想把专用寄存器放在译码阶段。

流水数据通路

【Computer Organization笔记17】大实验讨论:各组数据通路展示

问答

Q1:通用寄存器之前,有两个多路选择器,控制信号来自于哪里?控制器。

指令还没到呢,你怎么控制多路选择器选择?建议把 16 位都放到寄存器堆里面去,具体选谁之后决定,在街段寄存器再选。

流水执行,要有时空观。

Q2:冲突怎么解决?

bs组

多周期数据通路

【Computer Organization笔记17】大实验讨论:各组数据通路展示
指令模拟:ADDIU。

老师提出问题:第一个步骤就能把指令送到控制器里面去吗?

换句话说:取址时/第一个时钟周期结束,能不能把指令送到控制器上?

不能,因此上图蓝线实现不了。应该先练到蓝线上。

【Computer Organization笔记17】大实验讨论:各组数据通路展示
如上,也不能把 Z 直接送到寄存器,应该先保存起来。

问答

扩展如何考虑?

105组

流水数据通路

【Computer Organization笔记17】大实验讨论:各组数据通路展示
【Computer Organization笔记17】大实验讨论:各组数据通路展示

冲突的解决:数据旁路

【Computer Organization笔记17】大实验讨论:各组数据通路展示
【Computer Organization笔记17】大实验讨论:各组数据通路展示
【Computer Organization笔记17】大实验讨论:各组数据通路展示
【Computer Organization笔记17】大实验讨论:各组数据通路展示

问答

课程到这里就没有,有些可惜。