---
# System prepended metadata

title: 'Ćwiczenia 5, grupa cz. 14-16, 30 marca 2023'
tags: [pwit, ćwiczenia, SYK23]

---

# Ćwiczenia 5, grupa cz. 14-16, 30 marca 2023

###### tags: `SYK23` `ćwiczenia` `pwit`

## Deklaracje

Gotowość rozwiązania zadania należy wyrazić poprzez postawienie X w odpowiedniej kolumnie! Jeśli pożądasz zreferować dane zadanie (co najwyżej jedno!) w trakcie dyskusji oznacz je znakiem ==X== na żółtym tle.

**UWAGA: Tabelkę wolno edytować tylko wtedy, gdy jest na zielonym tle!**







:::danger
|                        | 1     | 2   | 3   | 4   | 5   | 6   | 7   | 8   | 9   | 10  | 11  |
| ----------------------:| ----- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
Mikołaj Balwicki         |       |     |     |     |     |     |     |     |     |     |     |
Wojciech Bogucki         |   X   |  X  |  X  |  X  |  X  |  X  |     |  X  |     |     |     |
Mateusz Cerulewicz       |   X   |  X |  ==X== |  X   |  X   |  X   |  X   |  X  |     |     |     |
Mateusz Garncarczyk      | ==X== |  X  |  X  |  X  |  X  |  X  |  X  |  X  |     |     |     |
Mateusz Golisz           |   X    |  X   |  X   |  X   |   X  |   X  |  X   |  X   |   X  |  X   |  X   |
Mateusz Kitzol           |   X    |  X   |  X   |  X   |  X   |  X   |  X   |  X   |  X   | ==X==   |     |
Piotr Mańkowski          |       |     |     |     |     |     |     |     |     |     |     |
Michał Mękarski          |   X    |  X   |  X   |  X   |  X  |==X==|  X   |  X  |     |   X  |
Aleksandra Nicpoń        |  x     |  x   |  x   |  x   | x    |  x   |  x   | ==x==    |     |  x   |     |
Ksawery Plis             |    X   |   X |  X   |  X   |  X   |   X  |  ==X==   |  X   |     |     |     |
Patryk Rybak             |   X    |   ==X==  | X    |   X  |  X   |  X   |  X   |  X   |     |     |     |
Rafał Spyra              |   X    |  X   |  X   |  X   |     |     |     |     |     |     |     |
Dominik Szczepaniak      |   X    |  X   |  X   |  X   |  X   |  X   |  X   |  X   |     |  X   |     |
Taras Tsehenko           |       |     |     |     |     |     |     |     |     |     |     |
Maksymilian Wiśniewski   |   X    |  X   |  X   |     |  X   |   X  |  X   |   X  |     |     |     |
Martyna Wybraniec        |   X   |  X  |  X  |  X  |  X  |  X  |  X  |  X  |     |  X  |     |
Natalia Zychowicz        |   X    | X    |    X |   X  |  ==X==   |   X  |     |  X   |     |     |     |
Patryk Maciąg            |   X    |  X   |  X   |  X   |  X   |  X   |  X   |     |     |     |     |
:::

Tutaj można zadeklarować zadanie 8 z listy 4:
-
-


:::info
**Uwaga:** Po rozwiązaniu zadania należy zmienić kolor nagłówka na zielony.
:::



## Zadanie 1
:::success
Autor:	Mateusz Garncarczyk	
:::

![](https://i.imgur.com/Z66YTxs.png)
![](https://i.imgur.com/Eq5qoQO.jpg)

## Zadanie 2
:::success
Autor:	Patryk Rybak	
:::
![](https://i.imgur.com/OJ46NMR.png)
![](https://i.imgur.com/fbPPCdO.png)


## Zadanie 3
:::success
Autor:	Mateusz Cerulewicz	
:::
![](https://i.imgur.com/ik7k4ae.png)
![](https://i.imgur.com/Y0uCrMg.png)

## Zadanie 4
:::success
Autor:	Dominik Szczepaniak	
:::
![](https://i.imgur.com/qKNoI7E.jpg)


## Zadanie 5
:::success
Autor:	Natalia Zychowicz	
:::
![](https://i.imgur.com/b22eJ01.png)
![](https://i.imgur.com/cakBoyS.png)

## Zadanie 6
:::success
Autor:	Michał Mękarski	
:::

![](https://i.imgur.com/TppI76X.png)
![](https://i.imgur.com/sP4KJMK.png)
![](https://i.imgur.com/oI0qMGe.png)
![](https://i.imgur.com/axb6Rz6.png)
![](https://i.imgur.com/dcOulu8.png)



## Zadanie 7
:::success
Autor:	Ksawery Plis	
:::
![](https://i.imgur.com/Nv7KVqR.png)

$T_{1}=$ |x=(y+ imm)| $= 1075ps$
$T_{2}=$ |(x +imm) = y| $= 900ps$
$T_{3}=$ |if x relop y goto L| $= 700ps$
$T_{4}=$ |x =y binop z| $= 850ps$

Długość cyklu w niezmodyfikowanym procesorze: $T_{old} = 1075ps$
Aby obliczyć przyspieszenie, najpierw należy policzyć długość cyklu w naszym zmodyfikowanym procesorze:

$T_{new} =$ 
$0.25 * T_1 + 0.11 * T_2 + 0.12 * T_3 + 0.52 * T_4 = 268.75 + 99 + 84 + 442 = 893.75ps$

Teraz możemy policzyć przyspieszenie:

$Przyspieszenie = 1 - \frac{T_{new}}{T_{old}} = 1 - \frac{893.75}{1075} ≈ 1-0.8313≈0.1687≈17\%$
Osiągnęlibyśmy więc około 17% przyspieszenia.
## Zadanie 8
:::success
Autor:	Aleksandra Nicpoń	
:::
![](https://i.imgur.com/jcUEFoV.png)


## Zadanie 9
:::success
Autor:	Mateusz Kitzol	
:::

![](https://i.imgur.com/oNGVSk3.png)
![](https://i.imgur.com/e8Yutou.png)

## Zadanie 10
:::success
Autor:	Martyna Wybraniec	
:::

![](https://i.imgur.com/rOQDKNW.png)


## Zadanie 11
:::success
Autor:	Mateusz Golisz	
:::
![](https://i.imgur.com/aTZf2qw.png)


![](https://i.imgur.com/S2sgRKG.png)
t = y + imm; pomijamy DATA_MEM
czas: PC + INSTR_MEM + REG_FILE + ALU + MUX + REG_FILE
= 50 + 250 + 150 + 200 + 25 + 150
= 825

![](https://i.imgur.com/gyEJGGk.png)
x = \*t; pomijamy ALU 
czas: PC + INSTR_MEM + REG_FILE + DATA_MEM + MUX + REG_FILE
= 50 + 250 + 150 + 250 + 25 + 150
= 875

![](https://i.imgur.com/PKwCgtP.png)
\*x = t; pomijamy ALU
czas: PC + INSTR_MEM + REG_FILE + DATA_MEM
= 50 + 250 + 150 + 250
= 700

Stąd, najdłuższa operacja trwa teraz 875ps, czyli długość cyklu wynosi też 875ps.

Ale:
x = \*(y+ imm) ===  t = y+ imm ; x = \*t
stąd czas = 875ps * 2 = 1750ps dla stałej długości cykli,
lub czas = 825ps + 875ps = 1700ps dla różnej długości cykli

\*(x +imm) = y === t = x+ imm ; \*x = t
stąd czas = 825 * 2 = 1750ps dla stałej długości cykli,
lub czas = 825ps + 700ps = 1525ps dla różnej długości cykli


Dla programu z zad7:


dla cykli równej długości: 875 * ilość_instrukcji ps, ale x = \*(y+ imm) oraz \*(x +imm) = y zajmują teraz po dwie instrukcje, czyli:
0,25 * 2 + 0,11 * 2 + 0,12 + 0,52 = 1,36 => 36% instrukcji więcej
stąd, 875 * 1,36 * ilośc_instrukcji = 1190 * ilośc_instrukcji ps
(w zad7 było 1075 * ilośc_instrukcji ps)


dla cykli różnej długości: 1700 * 0,25 * ilość_instrukcji + 1525 * 0,11 * ilość_instrukcji + 700 * 0,12 * ilość_instrukcji + 850 * 0,52 * ilość_instrukcji
= (425 + 167,75 + 84 + 442) * ilość_instrukcji = 1118,75 * ilość_instrukcji [ps]
(w zad7 było 893,75 * ilość_instrukcji ps)

1 - 1118,75/1190 = 1 - 0,94 = 6% szybciej


Czyli po modyfikacji procesor działa dla tego programu wolniej, a cykle różnej długości dają mniejszy efekt niż wcześniej
