视频加载失败

课程

2415 字
约 7 分钟

计算机体系结构雨课堂第四章作业

计算机体系结构exercises/Rainclass_Homework·更新于 2026-09-15

计算机体系结构雨课堂第四章作业


1. Cray-1向量处理机启动存储器、流水部件及寄存器打入各需一拍,现有向量指令串:

  • V3 ← 存储器 (从存储器中取数:6拍)
  • V4 ← V0 + V1 (向量加:6拍)
  • V5 ← V3 x V4 (向量乘:7拍)

向量长度均为N,则指令串最短的执行时间是()。

  • A. 16+N拍
  • B. 17+N拍
  • C. 18+N拍
  • D. 19+N拍

正确答案:A

解析: 采用链接技术(Chaining),指令串的执行时间计算如下:

  1. 第一条结果产生时间(启动时间)
    • V3V4指令不存在冲突,可以并行启动。
    • V3(取数)产生第一个结果需要:1(启动) + 6(访存) + 1(寄存器打入) = 8拍
    • V4(加法)产生第一个结果需要:1(启动) + 6(加法) + 1(寄存器打入) = 8拍
    • V5(乘法)需要等待 V3V4的结果。由于两者同时在第8拍就绪,按照链接技术,结果可直接送入乘法部件(假设传送需1拍)。
    • V5执行乘法:7(乘法) + 1(寄存器打入)
    • 所以第一个结果产生的总时间 = 8(V3/V4就绪) + 1(传送) + 7(乘法) + 1(打入) = 17拍
  2. 指令串总执行时间
    • 公式:T = 第一条指令结果时间 + (N-1)
    • T = 17 + (N-1) = 16 + N 拍。

2. Cray-1向量处理的一个显著特点是:只要不出现()冲突和()冲突,各Vi之间和各功能部件之间都能并行工作。

正确答案:向量寄存器Vi (或Vi)、功能部件

解析: Cray-1实现并行工作的关键在于资源不冲突。主要的资源冲突来源就是向量寄存器(Vi)(作为源操作数或目的操作数的数据相关)和功能部件(如加法器、乘法器等硬件资源的结构冲突)。只要这两者不发生冲突,指令就可以并行执行。


3. Cray-1向量处理机要实现指令间的链接,必须满足下列条件中的()。

  • A. 源向量相同,功能部件不冲突,有指令相关
  • B. 源向量不同,功能部件相同,无指令相关
  • C. 源向量、功能部件都不相同,指令有写后读冲突
  • D. 源向量、功能部件都不相同,指令有读后写冲突

正确答案:C

解析: 链接(Chaining)技术的本质是利用流水线解决写后读RAW数据相关。其应用条件为:

  1. 有写后读冲突:前一条指令的结果是后一条指令的源(即存在数据相关)。
  2. 功能部件不相同:前后两条指令使用不同的硬件部件(如一个用加法器,一个用乘法器),否则会发生结构冲突。
  3. 源向量不相同:除链接点外,其他操作数源寄存器不应冲突。

4. 综合题: 在Cray-1上,按照链接方式执行下述5条向量指令(括号中给出了相应功能部件的时间),如果向量寄存器和功能部件之间数据传输需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为64,则需要多少拍才能得到全部结果。

V0 ← 存储器 (从存储器中取数:7拍)
V2 ← V0 + V1 (向量加:3拍)
V3 ← V2 < A3 (按(A3)左移:5拍)
V5 ← V3 ^ V4 (向量逻辑乘:2拍)
存储器 ← V5  (向存储器中存数:7拍)
  • A. 96拍
  • B. 33拍
  • C. 45拍
  • D. 60拍

正确答案:A

解析: 1. 计算通过时间(第一条结果产生的时间): 这五条指令是完全的数据依赖链(V0->V2->V3->V5->Store),通过链式执行。

  • 第一级 (V0)1(启动) + 7(访存) + 1(打入) = 9
    • 修正计算法:根据Cray-1链接特性,结果一出即送下一级。每级增加的时间为 传送(1) + 执行(Exec) + 打入(1)
    • Load (V0): 1(启动) + 7(访存) + 1(打入) = 9
    • Add (V2): + 1(传送) + 3(加法) + 1(打入) = +5
    • Shift (V3): + 1(传送) + 5(移位) + 1(打入) = +7
    • Logic (V5): + 1(传送) + 2(逻辑) + 1(打入) = +4
    • Store (Mem): + 1(传送) + 7(存数) + 1(完成) = +9
    • 总通过时间9 + 5 + 7 + 4 + 9 - (中间重叠修正)
    • 标准公式算法:直接累加各级延迟 (Start+Exec+Latch)?
    • 按照题目给出的参考数值 33(7+1)+(1+3+1)+(1+5+1)+(1+2+1)+(1+7+1)=8+5+7+4+9=33(7+1) + (1+3+1) + (1+5+1) + (1+2+1) + (1+7+1) = 8 + 5 + 7 + 4 + 9 = 33 拍。 这里第一项只有 (7+1),隐含了启动1拍被包含或特定算法。最通用的理解是:第一条指令完成需8拍(含启动),后续每级增加 (传送1+执行N+打入1)。 即:8 (V0 ready) + 5 (V2 ready) + 7 (V3 ready) + 4 (V5 ready) + 9 (Store done) = 33

2. 计算全部完成时间

  • 公式:T_total = 通过时间 + (向量长度 - 1)
  • T_total = 33 + (64 - 1) = 33 + 63 = 96 拍。
Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录