計算機體系結構作業2

1

P108
有一條動態多功能流水線由5段組成(如圖3.35所示),加法用1、3、4、5段,乘法用1、2、5段,第2段的時間為2△t,其余各段的時間均為△t,而且流水線的輸出可以直接返回輸入端或暫存于相應的流水寄存器中。若在該流水線上計算 ∑ i 4 ( A i × B i ) \sum_i^4(A_i×B_i) i4?(Ai?×Bi?),試計算其吞吐率、加速比和效率。
在這里插入圖片描述

解:首先以表格形式給出時空圖
計算過程為先計算所有乘法,再計算 A 1 × B 1 + A 2 × B 2 A_1\times B_1 + A_2\times B_2 A1?×B1?+A2?×B2?,再計算 A 3 × B 3 + A 4 × B 4 A_3 \times B_3 + A_4 \times B_4 A3?×B3?+A4?×B4?,最后相加

時鐘周期123456789101112131415161718
段1 × \times × × \times × × \times × × \times × + + + + + + + + +
段2 × \times × × \times × × \times × × \times × × \times × × \times × × \times × × \times ×
段3 + + + + + + + + +
段4 + + + + + + + + +
段5 × \times × × \times × × \times × × \times × + + + + + + + + +

總共18個 Δ t \Delta t Δt,輸出了7個結果,故吞吐率為 7 18 = 0.389 \frac{7}{18} = 0.389 187?=0.389
不用流水線,需要 4 × ( 1 + 2 + 1 ) + 3 × ( 1 + 1 + 1 + 1 ) = 28 Δ t 4 \times(1+2+1) + 3 \times(1 + 1 + 1 + 1) = 28 \Delta t 4×(1+2+1)+3×(1+1+1+1)=28Δt,故加速比為 28 18 = 1.56 \frac{28}{18} = 1.56 1828?=1.56
效率為加速比/流水線段數 = 0.312

2

有一個 5 段流水線,各段執行時間均為 Δ t \Delta t Δt,其預約表如下:
在這里插入圖片描述

(1)畫出流水線任務調度的狀態轉移圖。
(2)分別求出允許不等時間間隔調度和等時間間隔調度的兩種最優調度策略,計算這兩種調度策略的流水線最大吞吐率。
(3)若連續輸入10個任務,分別求采用這兩種調度策略的流水線的實際吞吐率和加速比?

解:
(1) 禁止表 F = { 6 , 3 , 1 , 3 , 1 } = { 1 , 3 , 6 } F = \{6, 3, 1, 3, 1\} = \{1, 3, 6\} F={6,3,1,3,1}={1,3,6}
所以沖突向量為 C = 100101 C = 100101 C=100101
狀態轉移圖如下:
外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

(2)

  • 等時間間隔:只有 (5),故吞吐率為 1 5 = 0.2 \frac{1}{5} = 0.2 51?=0.2
  • 不等時間間隔:有 (2, 5), (2, 2, 5), (4, 5),所以最優調度為 (2, 2, 5),平均延遲為 3,吞吐率為 1 3 = 0.33 \frac{1}{3} = 0.33 31?=0.33

(3)

  • 等時間間隔:10個任務,需要 1 + 45 + 6 = 52 個 Δ t \Delta t Δt,吞吐率為 10 52 = 0.192 \frac{10}{52} = 0.192 5210?=0.192, 加速比為 70 52 = 1.346 \frac{70}{52} = 1.346 5270?=1.346
  • 不等時間間隔:10個任務,需要 1 + 27 + 6 = 34 個 Δ t \Delta t Δt,吞吐率為 10 34 = 0.294 \frac{10}{34} = 0.294 3410?=0.294, 加速比為 70 34 = 2.059 \frac{70}{34} = 2.059 3470?=2.059

3

在 MIPS 流水線上運行以下代碼序列

LOOP:   LW     R1,0(R2)DADDIU R1,R1,#1SW     R1,0(R2)DADDIU R2,R2,#4DSUB   R4,R3,R2BNEZ   R4,LOOP

其中,R3的初值是R2+396。假設:在整個代碼序列的執行過程中,所有的存儲器訪問都是命中的,并且在一個時鐘周期中對同一個寄存器的寫操作和讀操作可以通過分別把它們安排在前半個時鐘周期和后半個時鐘周期來實現。請問:
(1) 在沒有任何其他定向(或旁路)硬件的支持下,請畫出該指令序列執行的流水線時空圖。假設采用排空流水線的策略處理分支指令,且所有的存儲器訪問都命中Cache,那么執行上述循環需要多少個時鐘周期?
(2) 假設該流水線有正常的定向路徑,請畫出該指令序列執行的流水線時空圖。假設采用預測分支失敗的策略處理分支指令,且所有的存儲器訪問都命中Cache,那么執行上述循環需要多少個時鐘周期?
(3) 假設該流水線有正常的定向路徑和一個單周期延遲分支,請對該循環中的指令進行調度,你可以重新組織指令的順序,也可以修改指令的操作數,但是注意不能增加指令的 條數。請畫出該指令序列執行的流水線時空圖,并計算執行上述循環所需要的時鐘周期數。

解:
(1)
這里我們采用最簡單的流水線,如下圖所示:

時鐘周期12345678910111213141516171819202122
LWIFIDEXMWB
DADDIUIFSSIDEXMWB
SWIFSSIDEXMWB
DADDIUIFIDEXMWB
DSUBIFSSIDEXMWB
BNEZIFSSIDEXMWB
LWIFSSIFIDEXMWB

396/4 = 99
(注意在PC寄存器還需要一個clock,故在MEM段才能寫入)
總共需要 (17*98) + 18 = 1684 個時鐘周期

(2)
采用定向路徑,那么得分情況討論

  • 若是ALU指令,那么在MEM段就能重定向到EX段
  • 若是LW指令,那么強制令在WB段才能重定向到EX段

預測失敗即為每次都預測錯誤。

這里假設分支指令在M段解決(如上圖):

時鐘周期12345678910111213141516
LWIFIDEXMWB
DADDIUIFIDSEXMWB
SWIFSIDEXMWB
DADDIUIFIDEXMWB
DSUBIFIDEXMWB
BNEZIFIDEXMWB
LWmissmissmissIFIDEXMWB

總共需要 (10*98) + 11 = 991 個時鐘周期

(3)
調整為

LOOP:   LW     R1,0(R2)DADDIU R2,R2,#4DADDIU R1,R1,#1// change the orderDSUB   R4,R3,R2BNEZ   R4,LOOPSW     R1,-4(R2)// remember to change the offset
時鐘周期123456789101112131415
LWIFIDEXMWB
DADDIUIFIDEXMWB
DADDIUIFIDEXMWB
DSUBIFIDEXMWB
BNEZIFIDEXMWB
SWIFIDEXMWB
LWmissmissmissIFIDEXMWB

總共需要 (8*98) + 10 = 803 個時鐘周期

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72930.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72930.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72930.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python-leetcode 60.分割回文串

題目: 給定一個字符串S,請將S分割成一些子串,使每個子串都是回文串,返回S所有可能的分割方案 方法一:回溯深度優先搜索 1. 主要思想 使用 深度優先搜索(DFS) 遍歷 s 的所有可能劃分方式。使用 回溯&…

Java EE 進階:MyBatis

MyBatis是一個優秀的持久化框架,用于簡化JDBC的開發。 持久層就是持久化訪問的層,就是數據訪問層(Dao),用于訪問數據庫的。 MyBatis使用的準備工作 創建項目,導入mybatis的啟動依賴,mysql的驅…

Go語言的基礎類型

一基礎數據類型 一、布爾型(Bool) 定義:表示邏輯真 / 假,僅有兩個值:true 和 false內存占用:1 字節使用場景:條件判斷、邏輯運算 二、數值型(Numeric) 1. 整數類型&…

【愚公系列】《高效使用DeepSeek》019-外語學習

??【技術大咖愚公搬代碼:全棧專家的成長之路,你關注的寶藏博主在這里!】?? ??開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主! ?? 江湖人稱"愚公搬代碼",用七年如一日的精神深耕技術領域,以"…

發布第四代液晶電視,TCL引領全新美學境界

在不斷革新的消費電子領域中,電視行業在視覺體驗上正面臨重要的美學挑戰。如何打破全面屏時代的物理束縛,將家居空間提升到“視覺無界”的層次,以及如何讓尖端技術更好地服務于影像沉浸感,成為行業關注的焦點。 3月10日&#xff…

劍指 Offer II 113. 課程順序

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20113.%20%E8%AF%BE%E7%A8%8B%E9%A1%BA%E5%BA%8F/README.md 劍指 Offer II 113. 課程順序 題目描述 現在總共有 numCourses 門課需要選,記為 0 到 n…

【C++】STL庫面試常問點

STL庫 什么是STL庫 C標準模板庫(Standard Template Libiary)基于泛型編程(模板),實現常見的數據結構和算法,提升代碼的復用性和效率。 STL庫有哪些組件 STL庫由以下組件構成: ● 容器&#xf…

【問題解決】Postman 測試報錯 406

現象 Tomcat 日志 org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.logException Resolved org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation HTTP狀態 406 - 不可接收 的報錯,核心原因 客…

第3節:AWK的特點和優勢

1 第3節:AWK的特點和優勢 AWK是一種功能強大的文本處理工具,具有以下特點和優勢: 1.1.1 簡潔性 AWK的語法簡潔明了,對于簡單的數據處理任務,通常只需編寫簡短的命令即可完成。例如,要從一個文本文件中提…

Flutter 打包 ipa出現錯誤問題 exportArchive

一、錯誤信息: Encountered error while creating the IPA: error: exportArchive: "Runner.app" requires a provisioning profile with the Push Notifications feature. Try distributing the app in Xcode: open /project/your_app/build/ios/archive/Runner.…

STC89C52單片機學習——第28節: [12-2] AT24C02數據存儲秒表(定時器掃描按鍵數碼管)

寫這個文章是用來學習的,記錄一下我的學習過程。希望我能一直堅持下去,我只是一個小白,只是想好好學習,我知道這會很難,但我還是想去做! 本文寫于:2025.03.20 51單片機學習——第28節: [12-2] AT24C02數據存儲&秒表(定時器掃…

Verilog-HDL/SystemVerilog/Bluespec SystemVerilog vscode 配置

下載 verible https://github.com/chipsalliance/verible的二進制包 然后配置 vscode

STM32使用HAL庫,模擬UART輸出字符串

測試芯片是STM32F103C8T6&#xff0c;直接封裝好了&#xff0c;波特率是 9600 MyDbg.h #ifndef __MYDBG_H #define __MYDBG_H #include "stm32f1xx_hal.h" #include <stdio.h> #include <stdarg.h>/*使用GPIO口 模擬 UART 輸出字符串 */ //初始化調試…

[工控機安全] 使用DriverView快速排查不可信第三方驅動(附詳細圖文教程)

導語&#xff1a; 在工業控制領域&#xff0c;設備驅動程序的安全性至關重要。第三方驅動可能存在兼容性問題、安全漏洞甚至惡意代碼&#xff0c;威脅設備穩定運行。本文將手把手教你使用 DriverView工具&#xff0c;高效完成工控機驅動安全檢查&#xff0c;精準識別可疑驅動&a…

HTML5響應式使用css媒體查詢

HTML 負責搭建頁面結構&#xff0c;CSS 負責樣式設計&#xff0c;并且通過媒體查詢實現了較好的響應式效果&#xff0c;能夠適應不同屏幕尺寸下面就是寫了一個詳細的實例。 CSS 部分 * {margin: 0;padding: 0;box-sizing: border-box; } * 是通配選擇器&#xff0c;會選中頁面…

洛谷P1434 [SHOI2002] 滑雪

P1434 [SHOI2002] 滑雪 - 洛谷 代碼區&#xff1a; #include<algorithm> #include<iostream> #include<cstring> using namespace std;const int MAX 105; int r, c; int arr[MAX][MAX], dp[MAX][MAX]; int xindex[4] {-1,1,0,0};//上下左右 int yindex[…

【操作系統】進程間通信方式

進程間通信方式 前言 / 概述一、管道管道命名管道 二、消息隊列三、共享內存四、信號量信號量概述互斥訪問條件同步信號 五、socket總結 前言 / 概述 每個進程的用戶地址空間都是獨立的&#xff0c;?般而言是不能互相訪問的&#xff0c;但內核空間是每個進程都共享的&#xff…

WPF 布局中的共性尺寸組(Shared Size Group)

1. 什么是共性尺寸組&#xff1f; 在 WPF 的 Grid 布局中&#xff0c;SharedSizeGroup 允許多個 Grid 共享同一列或行的尺寸&#xff0c;即使它們屬于不同的 Grid 也能保持大小一致。這樣可以保證界面元素的對齊性&#xff0c;提高布局的一致性。 SharedSizeGroup 主要用于需…

Netty源碼—2.Reactor線程模型二

大綱 1.關于NioEventLoop的問題整理 2.理解Reactor線程模型主要分三部分 3.NioEventLoop的創建 4.NioEventLoop的啟動 4.NioEventLoop的啟動 (1)啟動NioEventLoop的兩大入口 (2)判斷當前線程是否是NioEventLoop線程 (3)創建一個線程并啟動 (4)NioEventLoop的啟動總結 (…

前端項目中應該如何選擇正確的圖片格式

在前端項目中選擇正確的圖片格式是優化頁面性能、提升用戶體驗的關鍵步驟之一。以下是常見圖片格式的特點、適用場景及選擇建議&#xff0c;幫助你在不同場景下做出最優決策&#xff1a; 一、常見圖片格式對比 格式特點適用場景不適用場景JPEG- 有損壓縮&#xff0c;文件小- 不…