Architektura Komputerów/Wykład 2: Dane: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 245: | Linia 245: | ||
|valign="top" width="500px"|[[Grafika:ASK_M2_S29.png]] | |valign="top" width="500px"|[[Grafika:ASK_M2_S29.png]] | ||
|valign="top"| | |valign="top"| | ||
. | Dane powinny być umieszczone w pamięci w taki sposób, aby dostęp do danej, której rozmiar nie przekracza długości słowa pamięci następował w pojedynczym cyklu dostępu do pamięci. | ||
W nowszych architekturach komputerów rozmieszczenie danych gwarantujące dostęp w jednym cyklu transmisji jest obligatoryjne – próba dostępu do danej położonej inaczej generuje błąd. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
Linia 251: | Linia 253: | ||
|valign="top" width="500px"|[[Grafika:ASK_M2_S30.png]] | |valign="top" width="500px"|[[Grafika:ASK_M2_S30.png]] | ||
|valign="top"| | |valign="top"| | ||
... | Dostęp w jednym cyklu przesłania można zagwarantować, umieszczając każdą daną skalarną pod adresem podzielnym przez jej długość. Dane 32-bitowe powinny być położone pod adresami podzielnymi przez 4, a 16-bitowe – pod adresami parzystymi. Takie umieszczenie danych w pamięci nazywa się wyrównaniem naturalnym. | ||
Nawet jeśli model programowy procesora nie narzuca takiego wymagania, wyrównanie naturalne jest zwykle wymuszane przez kompilatory (np. w x86). | |||
Dane strukturalne muszą być wyrównane w taki sposób, aby każde pole struktury było wyrównane naturalnie. Oznacza to, że początek struktury powinien być wyrównany zgodnie z wymaganiami najdłuższego typu danych obsługiwanego przez proceesor. Należy zauważyć, że wyrównanie wpływa na rozmiar struktury, zwracany przez operator sizeof – rozmiar jest „zaokrąglany w górę” do granicy wyrównania struktur. | |||
|} | |} |
Wersja z 13:57, 5 paź 2006
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |
![]() |
... |