五、综合应用题(本大题共2小题,每小题10分,共20分) 28.现有长度为8的向量A和B,处理器有一个乘法部件和一个加法部件,不能同时工作,部件内也只能以顺序方式工作,完成一次加法或乘法均需5拍,请画出处理器上求点积A•B的时—空图,并求完成全部结果的最少时钟拍数。设处理器中每个部件的输出均可直接送到任一部件的输入或存入缓冲器中,其间的传送延时不计,指令和源操作数均能连续提供。
(1)计算向量点积A•B=(A1B1+ A2B2+ A3B3+ A4B4+ A5B5+ A6B6+ A7B7+ A8B8),需要做8次乘法,再把八个成绩累加起来,做7次加法。因此,按顺序方式完成,需要的时间为8*5 +7*5= 75(2)因为是不能同时工作,功能切换需要花时间,因此切换次数越少越好。故而先做乘法,再做加法效果较好,做累加时,尽量避免数据相关,这样后面的指令不必等待前面的结果。算法如下:(1) a1b1 = a1 * b1(2) a2b2 = a2 * b2(3) a3b3 = a3 * b3(4) a4b4 = a4 * b4(5) a5b5 = a5 * b5(6) a6b6 = a6 * b6(7) a7b7 = a7 * b7(8) a8b8 = a8 * b8(9) tmp1 = a1b1 + a2b2(10) tmp2 = a3b3 + a4b4(11) tmp3 = a5b5 + a6b6(12) tmp4 = a7b7 + a8b8(13) tmp5 = tmp1 + tmp2(14) tmp6 = tmp3 + tmp4(15) sum = tmp5 + tmp6续表最少需要的周期数是30