Debskij
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    #### 1. Jakie działania należy podjąć aby ewentualne dzielenie przez zero w obliczeniach przez koprocesor nie powodowało wyjątku? Pierwotnie (w ustawieniach VS koprocesor) bit ZM (zero mask) jest ustawiony aby po dzieleniu przez zero ustawiał na +/-inf w zależności jaką liczbe dzielimy. Jeśli chcemy to zmeinić to należy zmodyfikować rejestr sterujący koprocesora, tak aby przed wykonaniem obliczeń do bitu ZM była wpisana jedynka (rozkaz FLDCW). #### 2. Architektura harwardzka - wyjaśnij i podaj przykład zastosowania Dane i rozkazy są przechowywane w osobnych pamięciach. Przykładem jest procesor Intel Core, gdzie pamięć podręczna L1 jest rozbita na dwie pamięci: pamięć danych i pamięć rozkazów. #### 3. Kiedy procesor generuje wyjątek nr 6 Jest to wyjątek "niedozwolony kod", w którym procesor napotkał instrukcję, której kodu nie jest w stanie rozpoznać #### 4. Na czym polegają główne różnice między systemami MIMD z pamięcią wspólną i z pamięcią rozproszoną The shared-memory MIMD architecture is easier to program but is less tolerant to failures and harder to extend with respect to the distributed memory MIMD model. This is a situation that does not happen in the case of distributed memory, in which each PE has its own memory. #### 5. Wyjaśnij znaczenie interfejsu ABI Interfejs ABI to zbiór reguł i ustaleń związany ze współpracą między bibliotekami, programami i systemem operacyjnym na poziomie kodu binarnego. ABI definiuje standard wywołania funkcji, czyli sposób jej wywołania i zasady przekazywania argumentów, wyników. #### 6. Podaj zawartość rejestru EIP po wykonaniu instrukcji ``` mov eax, 789 xchg eax, [esp] ret ``` 789 #### 7. Podać sekwencję rozkazów (zawierającą rozkaz RET), której wykonanie spowoduje załadowanie do wskaźnika instrukcji EIP liczby 456 ``` mov eax, 456 xchg eax, [esp] ret ``` #### 8. Rozkaz JMP dword PTR [esp] kopiuje zawartość wierzchołka stosu do rejestru EIP. Wyjaśnić czym różni się podany rozkaz od rozkazu RET. RET kopiuje zawartość wierzchołka stosu do EIP a potem go usuwa. JMP tylko kopiuje i wierzchołek zostaje na stosie. #### 9. Wyjaśnij znaczenie terminu ramka stosu. Ramka stosu to argumenty funkcji, zmienne lokalne, ślad po rozkazie CALL oraz rejestr EBP. Rejestr EBP nazywany jest wskaźnikiem ramki stosu. #### 10. W komórkach pamięci operacyjnej o adresach 0x00430F74 i 0x00430F75 została zapisana liczba 1025 w postaci 16-bitowej liczby binarnej. Podać zawartość tych komórek w postaci binarnej przy założeniu, że w komputerze stosowana jest konwencja mniejsze wyżej (big endian). W komputerze stosowana jest pamięć o organizacji bajtowej. ``` 1025 = 0000 0100 + 0000 0001 0x00430F74 = 0000 0100 = 0x04 0x00430F75 = 0000 0001 = 0x01 ``` #### 11. W jaki sposób w kodzie asemblerowym rezerwuje się obszar danych statycznych i dynamicznych Dynamicznie poprzez _malloc lub zmniejszanie wartości rejestru ESP. Statycznie poprzed definiowanie zmiennych w segmencie data z odpowiednimi przedrostkami np. db, dw, dd etc. #### 12. Jak sygnalizowany jest nadmiar w trakcie wykonywania rozkazu DIV lub IDIV? Generowany jest wyjątek procesora nr 0 - błąd dzielenia. Sterowanie przejmuje system operacyjny i wykonywanie programu zostaje zakończone. #### 13. W jaki sposób procesor wyznacza wartości wpisywane do znaczników CF i OF w trakcie wykonywania dodawania Flaga OF dotyczy liczb ze znakiem i jest ustawiana, gdy wynik jest zbyt ujemna lub zbyt dodatnia. Flaga CF dotyczy liczb bez znaku i jest ustawiana, gdy wynik jest zbyt duży i nie mieści się w rejestrze. Flaga CF sygnalizuje przeniesienie z najstarszego bitu Flaga OF - suma modulo przeniesień dwóch najstarszych bitów #### 14. Czas wykonywania operacji dzielenia liczb całkowitych przez 2^k można znacznie skrócić, jeśli do tego celu zostanie wykorzystany rozkaz SAR - bity wychodzące lecą do CF, a skrajnie lewy bit jest powielany, więc działa zarówno dla dodatnich i ujemnych. #### 15. Na czym polega różnica między rozkazami FLD i FILD? FDL ładuje na stos FPU liczbę w formacie zmiennoprzecinkowym, a FILD wrzuca na stos liczbę całkowitą. #### 16. Wyjaśnić czym różni się zaokrąglanie w kierunku zera od zaokrąglania do liczby najbliższej stosowane w koprocesorze arytmetycznym Zaokrąglanie do najbliższej polega na wybraniu najbliższej liczby całkowitej. Zaokrąglanie w kierunku zera zawsze idzie w stronę zera, czyli ``` 2.8 to będzie 2 -2.8 to będzie -2 ``` #### 17. W jakich okolicznościach koprocesor arytmetyczny generuje wyjątek niedozwolona operacja? Niedozwolona operacja, to wyjątek, który jest generowany, gdzie nie możliwe jest wykonanie działania np. pierwiastek z liczby ujemnej #### 18. Omówić sposób odwzorowywania zawartości pamięci ekranu w trybie graficznym 13H na postać obrazu wyświetlanego na ekranie. Jest to obraz o wymiarach 320x200 pikseli. Kazdy piksel jest opisany przez 8 bitów i może przyjmować 256 kolorów. Numeracja pikseli zaczyna się od górnego lewego rogu i leci kolejnymi wierszami od lewej do prawej. Adres całego obszaru zaczyna się od komórki A0000h. #### 19. Omówić sposób odwzorowania zawartości pamięci ekranu (w trybie tekstowym) na postać tekstu wyświetlanego na ekranie. Jest to obszar położony w pamięci od adresu B8000h. Składa się z 25 wierszy po 80 znaków każdy. Każdy znak jest opisany przez 2 bajty - jeden to znak ASCII, drugi to bajt atrybutu (bit migotania, bit jasności, 3 bity tła, 3 bity koloru). #### 20. Spośród niżej wymienionych cech, wybrać po dwie główne cechy, które są istotne przy wyborze odpowiedniego komputera typu system wbudowany i serwer cena **dostępność** **przepustowość** **skalowalność** stosunek cena/wydajność wydajność dla konkretnych aplikacji wydajność grafiki **zużycie energii** #### 21. N-etapowy potok rozkazów może potencjalnie zwiększyć przepustowość n-krotnie. Dlaczego rzadko tak jest w praktyce? Im dłuższy jest potok, tym więcej ładowanych jest rozkazów, przez co w przypadku nietrafienia branch predictor'a, opóźnienie rośnie wraz z długością potoku. #### 22. Do jakiej grupy z klasyfikacji Flynna zalicza się komputery wektorowe? Odpowiedź uzasadnij podając odpowiedni przykład SIMD (ang. single instruction, multiple data) – przetwarzanych jest wiele strumieni danych przez jeden wykonywany program - operandami instrukcji są wieloelementowe zbiory liczb. Dzięki temu można przyspieszyć niektóre obliczenia. Na przykład NEC SX-9 stosowany w Earth Symulator II oraz NEC SX-ACE. #### 23. Załóżmy, że dysponujemy dwoma implementacjami tego samego zbioru ISA.Maszyna A ma cykl zegarowy równy 50ns i dla pewnego programu CPI=4.0, zaś maszyna B ma cykl zegarowy równy 70ns i dla tego samego programu CPI=2.5. Która maszyna jest szybsza i dlaczego? ``` czas na instrukcje = cykl zegarowy * CPI maszyna A - 50 * 4.0 = 200 ns na instrukcje (wolniej) maszyna B - 70 * 2.5 = 175 ns na instrukcje (szybciej) ``` #### 24. W tradycyjnym modelu hierarchii układów pamięci pamięć podręczna L2 jest pamięcią off-chip. Ten stan rzeczy w nowoczesnych architekturach uległ zmianie i obecnie L2 jest pamięcią on-chip. Wyjaśnij przyczynę tego zjawiska. Na czym polega zatem różnica między pamięcią L1 i L2? W Intel Core i7 każdy rdzeń ma po dwa bloki pamięci L1 (dane i instrukcje) i jeden blok L2. L2 jest większa, wolniejsza i korzysta z architektury von Neumana, a L1 to mała i szybka architektura harwardzka. #### 25. Podaj dwa sposoby implementacji sieci połączeń w systemach wieloprocesorowych z pamięcią współdzieloną. Przedstaw jedną zaletę i jedną wadę każdej z organizacji. Gridy i klastry, gridy zalety dystans dowolny wady mogą rozłączyć się bez informowania pozostałych o tym, klastry: zaleta bliski dystans między urządzeniami przez co wysoka przepustowość na kablu, wada topologia gwiazdy spowalnia decyzyjność przy wielu urządzeniach. https://www.geeksforgeeks.org/difference-between-grid-computing-and-cluster-computing/ #### 26. Podaj definicję czasu dostępu do pamięci. Czas dostępu do pamięci do czas od wysłania żądania do momentu gdy dane są już gotowe. #### 27.Porównaj procesory RISC i CISC pod kątem minimalizacji odwołań do pamięci operacyjnej. Imo risc ma szybsze rozkazy a cisc ma bardziej kompleksowe, więc jeżeli chcemy zoptymalizować ilość odwołań #### 28. Czy czas trwania cyklu zegarowego wpływa na przepustowość pamięci SDRAM? Odpowiedź uzasadnij. Długość cyklu zegarowego wpływa na przepustowość pamięci SDRAM ponieważ jest to pamięć synchroniczna, która jest odświeżana zgodnie z cyklem zegara podczas gdy pamięć ta nie jest aktualnie używana. #### 29. Podaj i objaśnij podstawową różnicę w działaniu pamięci SDRAM a DRAM. SDRAM działa synchronicznie, czyli do odśwoieżania pamięci wykorzystuje te cykle zegara, w których zegar nie korzysta z pamięci. DRAM to pamięć asynchroniczna, czyli żeby odświeżyć pamięć zamraża na chwilę pracę procesora. #### 30. W jakim celu wprowadza się w mikroarchitekturach zmianę nazw rejestru/ów (register renaming)? W celu uniknięcia niepotrzebnego szeregowego wykonania instrukcji narzuconego przez wykorzystanie tych samych rejestrów procesora przez następujące po sobie instrukcje. #### 31. Omówić główne zadania jednostki sterującej w procesorze biorąc pod uwagę informacje dostarczane na jej wejście i informacje generowane na wyjściu. https://itigic.com/pl/how-does-and-what-is-the-control-unit-of-a-processor/ - Koordynuje ruch i kolejność danych, które przemieszczają się wewnątrz i na zewnątrz procesora, a także między różnymi podjednostkami, które są jego częścią. - Kontroluje różne jednostki ALU i jednostki wykonawcze procesora - Przechwytuje i dekoduje instrukcje procesora - Zapisuje wyniki w rejestrach, pamięci podręcznej lub odpowiednim adresie RAM #### 32. Jaką rolę w trakcie obsługi przerwania sprzętowego pełni tablica deskryptorów przerwań? Tablica deskryptorów zawiera 256 adresów 32bit, które są adresami funkcji systemowych. Takie funkcje systemowe są wywoływane w przypadku nadejścia przerwania i je obsługują. #### 33. Czy przetwarzanie potokowe może zmniejszyć czas wykonywania rozkazu. Uzasadnij swoją odpowiedź. Tak może wpłynąć, przykładem jest stosowane przez intel Micro-fusion polegające na upakowywaniu rozkazów w cykl rozkazowy w optymalny sposób. #### 34. Na czym polega różnica między procesorami wielowątkowymi i wielordzeniowymi? https://stackoverflow.com/questions/11835046/multithreading-and-multicore-differences Procesor wielordzeniowy to procesor który może wykonywać kilka instrukcji w tym samym czasie. Procesor wielowątkowy to procesor który potrafi uruchomić program na kilku rdzeniach, aby wykorzystać fakt ze części programu mogą byc wykonane równolegle. #### 35. Dlaczego rozkaz and [2*edi], -1 jest traktowany jako błędny? Brakuje określenia rozmiaru, powinno być `and ROZMIAR ptr [2*edi], -1` #### 36. Jaka będzie wartość ECX po wykonaniu fragmentu kodu ``` mov ecx, 3003 h egz: dec cl jnc egz ``` Dla CF równego jeden pętla wykona się raz i `ECX = 3002h`. Dla CF równego zero jest to nieskończona pętla, bo `dec` nie zmienia flag i warunki do wykonania skoku zawsze są spełnione #### 37. Mamy zdefiniowane 2 liczby typu float. Ile wynosi ich iloczyn? ``` x = |1|01000000|00000000000000000000000| y = |1|11000000|00000000000000000000000| ``` 2 minusy czyli liczba będzie dodatnia, a mantysa równa 1.0, więc działanie to tylko na wykładniku. ``` 2^(64 - 127) * 2 ^(192 - 127) = 2^(64 - 127 + 192 - 127)= 2^(65-63) = 4 ``` #### 38. Wśród dynamicznego przydziału pamięci dla procesu wykorzystuje się alokacje zmiennych dynamicznych na stosie. W jaki sposób w programie asemblerowym decydujemy o przydzielonej wielkości stosu? Pamięć na stosie alokujemy poprzez zmniejszanie wartości rejestru ESP o taką liczbę ile bajtów będziemy potrzebowali, przy czym zalecane jest utrzymanie tego wartości rejestru jako liczby podzielnej przez 4. #### 39. Przyjmując, że opcode operacji skoku warunkowego jest równy 72h podaj jako liczbę szesnastkową kod rozkazu `jc $-6` `$-6` wskazuje na lokację przed wykonaniem rozkazu. Czyli aby wyliczyć opcode należy od od zera odjąć długość rozkazu oraz 6, co daje -8. Ostatecznie `72 F8` #### 40. W programie są dwa 4096 bajtowe obszary wskazywane przez ESI i EDI. Napisz program, który porówna zgodność tych obszarów i ustaw CF jak będą równe. ``` mov ecx, 4096 ; rozmiar bufora repe cmpsb ; porownuj dopóki równe jz ustaw_cf ; robi w pętli cmp [esi], [edi] clc jmp koniec ustaw_cf: stc koniec: ``` #### 41. Wyjaśnij zasady działania układów DMA w komputerze Sterowniki DMA umożliwiają bezpośrednie przesyłanie danych z urządzenia do pamięci głównej lub odwrotnie. Przesyłanie odbywa się bez udziału procesora i wystarczy tylko inicjacja DMA. Po zakończeniu przesyłania DMA generuje przerwanie sygnalizujące koniec przesyłania. #### 42. W jaki sposób długość cyklu zegarowego wpływa na przepustowość pamięci SDRAM? Odpowiedź uzasadnij Długość cyklu zegarowego wpływa na przepustowość pamięci SDRAM ponieważ jest to pamięć synchroniczna, która jest odświeżana zgodnie z cyklem zegara podczas gdy pamięć ta nie jest aktualnie używana. #### 43. Przedstaw budowę jednostki sterującej mikroprogramowalnej i opisz zasadę jej działania ![](https://i.imgur.com/HNapyOi.png) #### 44. Opisz rolę kontrolera klawiatury np. 8042 Kontroler klawiatury 8042 odbiera sygnał od klawiatury za pośrednictwem portów i bezpośrednio komunikuje się z procesorem. Odbiera on make code od klawiatury, odtwarza go i wpisuje go do bufora wyjściowego i uaktualnia rejestr stanu kontrolera. #### 45. W programie jest 8192 bajtowy obszar wskazywany przez EDI. Wypełnij ten obszar znakami o wartości w punkcie kodowym U+01C2 w UTF 16\ ``` mov ecx, 4096 mov AX, 01C2h rep stosw ; stosw wysyła word do EDI ``` #### 46. Przedstaw budowę jednostki sterującej układowej i opisz zasadę jej działania Rel pytanie 31. #### 47. W jaki sposób długość cyklu zegarowego wpływa na przepustowość pamięci DRAM? Odpowiedź uzasadnij Ze względu na to że CAS wyznacza się dla ilości ticków, więc dla różnych długości cyklu zegarowego będą różne długości dostępu, co w oczywisty sposób wpływa na przepustowość ``` Because modern DRAM modules' CAS latencies are specified in clock ticks instead of time, when comparing latencies at different clock speeds, latencies must be translated into absolute times to make a fair comparison; a higher numerical CAS latency may still be less time if the clock is faster. ``` #### 48. Jaka wartość będzie w EDX po wykonaniu programu. Odpowiedź uzasadnij ``` mov edx, 1234FFFFh ako: inc dx jc ako ``` Jak CF będzie ustawione, to warunek do skoku zawsze będzie spełniony, bo `dec` nie zmienia flag. Jak CF=0 to skok się nie wykona, a w EDX będzie 12340000h #### 49. Podaj sekwencję rozkazów, która umieści na stosie koprocesora 14.3125 ``` push 143125 fild dword ptr [ESP] push 10000 fild dword ptr [ESP] fdivp st(1), st(0) add ESP, 8 ``` #### 50. Jakie wady ma program, w którym dane nie są wyrównane naturalnie? Przy odczycie jednego bajta w trybie 64 bitowym tak naprawdę pobieramy 64 bity. Odczytuje on zawsze 8 bajtów rozpoczynając od adresu podzielnego przez 8. Jeśli odczytujemy słowo podzielone nienaturalnie to marnujemy pamięć, no i muszą wystąpić dwa cykle zegarowe, aby odczytać daną. Czasami może też zostać rzucony wyjątek np. przy rozkazie `movaps`. #### 51. Podaj metodę wyznaczania przez procesor wartości znacznika OF w odejmowaniu OF jest ustawiana na podstawie XOR między przeniesieniami dwóch najstarszych bitów. Jest ustawiana, gdy wynik nie mieści się w rejestrze. #### 52. Podaj równoważny kod w języku C dla poniższego kodu ``` mov edi, offset buff mov ecx, 10 mov al, ‘0’ cld repne scasb ``` ``` mov edi, offset buff mov ecx, 10 mov bl, ‘0’ push ebx cld dalej: lodsb cmp al, bl je koniec loop dalej koniec: pop ebx ``` Równoważny kod: ``` char * ptr = buff; while (*ptr != '0' && (ptr++ != buff + 10)) {} ``` #### 53. Podać przyczynę stosowania oddzielnej pamięci podręcznej L1 dla rozkazów i danych w procesorach Intel Core i7. Jak nazywa się taki rodzaj architektury? Jest to architektura harwardzka. Podział na mniejsze bloki pozwala na szybsze wykonywanie operacji kosztem właśnie rozmiaru pamięci. #### 54. Podaj rozmiar pamięci podręcznej o adresowaniu bezpośrednim, czterokanałowej, jeśli adresowanie jest 24-bitowe (etykieta ma 16 bitów, a offset 4 bity). ``` liczba linii = 2^(24 - 16 - 4) = 2^4 rozmiar linii = 2^4 rozmiar cache = 4 * 2^4 * 2^4 = 2^10 = 1kB ``` #### 55. Jaki jest wpływ obsługi przerwań na zużycie energii w nowoczesnych procesorach? Przy szybkiej transmisji danych i dużej liczie zgłaszanych przerwań może wystąpić znaczne obciążenie procesora spowodowane koniecznością przełączania kontekstu między użytkownikiem i system operacyjnym. Wówczas lepszym rozwiązaniem może okazać się metoda aktywnego oczekiwania. #### 56. Wyjaśnij różnice między ściśle i luźno powiązanymi systemami MIMD. W ściśle związanych pamięć jest złączona, luźno połączona nie zawiera wspólnych obszarów pamięci. https://pl.qaz.wiki/wiki/Multiprocessing #### 57. Podaj różnice między interfejsem ABI oraz API. Oba interfejsy określający sposób porozumiewania się programu z bibliotekami, programami czy systemem operacyjnym. ABI dotyczy wersji binarnej lub skompilowanej, podczas gdy API dotyczy kodu źródłowego. #### 58. Na czym polega różnica między przesunięciem logicznym i arytmetycznym? Przesunięcia logiczne (SHL, SHR) uciekający bit wpisują do CF, a do pustych bitów wpisują zera. Przesunięcie arytmetyczne to SAL i SAR. Rozkaz SAL działa tak samo jak SHL, a rozkaz SAR bity uciekające wpisuje do CF, a do pustych wpisuje powieloną wartość pierwszego bitu. #### 59. Jak rozkazy skoku wpływają na zawartość wskaźnika EIP? Rozkazy skoku zazwyczaj zajmują dwa bajty, z czego pierwszy opisuje czynność wykonywaną przezrozkaz, a drugi zakres skoku, czyli liczbę o jaką należy zmodyfikować rejestr EIP (może być ujemna) - warunek spełniony EIP = EIP + rozkaz + zawartość pola adresowego - warunek niespełniony EIP = EIP + rozkaz #### 60. Czym różni się rozkaz CALL od INT? CALL wywołuje funkcję i zostawia on na stosie ślad, czyli adres następnej intrukcji do wykonania po zakończeniu jej działania. INT wywołuje funkcje z tablicy wektorów przerwań oraz na stosie zapisuje ślad, rejestr znaczników oraz rejestr CS. INT dodatkowo wymaga przed użyciem umieszczenia w AH numeru katalogowego funkcji, a indeks funkcji jako argument. ![](https://i.imgur.com/H5wVMJB.png) ![](https://i.imgur.com/3FGYYJU.png) #### 61. Podaj zawartość czterech bajtów pamięci po wykonaniu poniższych rozkazów, wiedząc, że na wierzchołku stosu koprocesora była liczba +4.5 ``` mov eax, 7e45b8h fstp dword ptr [eax] ``` ``` 1 < 4.5/4 < 2 mantysa = 4.5/4 = 1.125 = _0010 0000 ... wykladnik = 2 + 127 = 129 = 1000 0001 ostatecznie = 0_10000001_00100000... = 40 90 00 00 ``` ``` 7E45B8 0000 0000 00 7E45B9 0000 0000 00 7E45BA 1001 0000 90 7E45BB 0100 0000 40 ``` #### 62. Jak zapisać na stosie daną 8 bitową znajdującą się w rejestrze CL? ``` sub ESP, 1 mov [ESP], CL ``` #### 63. Jaką rolę w trakcie asemblacji pełni licznik lokacji? Licznik lokacji określa adres komórki pamięci operacyjnej, gdzie zostanie przesłany aktualnie tłumaczony adres lub dana. Po załadowaniu rozkazu zwiększa się o długość tego rozkazu w bajtach, a na początku programu wynosi on zero. Dyrektywa ORG pozwala wpisać do niego konkretną wartość. #### 64. Podać numer linii i wartość etykiety, które należy sprawdzić w pamięci podręcznej o adresowaniu bezpośrednim przy wykonaniu sekwencji rozkazów, wiedząc że jest tutaj adresowanie 32 bitowe, rozmiar pamięci podręcznej 256 kB, rozmiar linii 32 bajty. ``` mov esi, 10195fc0h mov al, [esi] ``` ``` liczba linii = 256kB / 32b = 2^18 / 2^5 = 2^13 offset = log(32) = 5 numer linii = log(2^13) = 13 etykieta = 32 - 13 - 5 = 14 ``` ``` 1 0 1 9 5 F C etykieta|numer linii = 0001 0000 0001 10|01 0101 1111 110 ``` #### 65. Wyjaśnij różnice między w budowie bloku wykonawczego procesora, a procesora wektorowego. Do której klasy Flynna zalicza się procesory wektorowe (VPU)? SIMD, procesor operuje na wartościach skalarnych np pojedynczych wartościach w rejestrach, a proc. wektorowy operuje na rejestrach przechowujących wektor wartości. #### 66. Wyjaśnij różnicę między statycznym i dynamicznym sposobem przewidywania wykonania rozgałęzień w procesorach Przewidywanie statyczne może opierać się na analizie kodu, a dynamiczne (np. bufor BTB) jest wykonywane w trakcie wykonania. #### 67. Wyjaśnij wpływ występowania przerwań sprzętowych na wydajność IPC procesora z przetwarzaniem potokowym i dużej głębokości potoku. Przerwanie systemowe przy dużej głębokości negatywnie wpływa na wydajność ponieważ dużo instrukcji jest wyrzucane z predykcji i wymaga ponownego załadowania i przeliczenia. #### 68. Wyjaśnij koncepcję wyrównywania adresów danych w pamięci operacyjnej i wpływ na wydajność nowoczesnych procesorów Przy odczycie jednego bajta w trybie 64 bitowym tak naprawdę pobieramy 64 bity. Odczytuje on zawsze 8 bajtów rozpoczynając od adresu podzielnego przez 8. Jeśli odczytujemy słowo podzielone nienaturalnie to marnujemy pamięć, no i muszą wystąpić dwa cykle zegarowe, aby odczytać daną. Czasami może też zostać rzucony wyjątek np. przy rozkazie movaps. #### 69. Wyjaśnij przyczyny generowania wyjątku nr 14 (błąd stronicowania) w przypadku stosowania pamięci wirtualnej Jest on generowany jeśli odwołanie dotyczy strony, która nie istnieje w pamięci operacyjnej, czyli nie ma takiego adresu. #### 70. Czy podany fragment jest poprawny? Uzasadnij odpowiedź. nie ma fragmentu #### 71. W programie wystąpił wyjątek nadmiaru przy dzieleniu. Czy istnieje możliwość kontynuacji tego programu? W przypadku nadmiaru przy operacjach dzielenie zostaje wygenerowany wyjątek procesora, który przekazuje sterowanie do systemu operacyjnego i następuje zakończenie wykonywania programu. #### 72. Określić możliwość realizacji 4 kanałowej pamięci podręcznej o odwzorowaniu tylko asocjacyjnym. ??? wiem tyle, że pamięć wielokanałowa wykorzystuje zarówno adresowanie bezpośrednie, jak i asocjacyjne, więc chyba nie można #### 73. Podaj sekwencję rozkazów, która wpisze na stos koprocesora liczbę -1 ``` finit fld1 fchs ``` #### 74. Napisz równoważny ciąg instrukcji bez korzystania z rozkazów z grupy SET. ``` cmp bx, si sete al ``` #### 75. Napisz równoważny ciąg instrukcji bez korzystania z rozkazów z grupy SET. ``` cmp bx, si sete al ``` ``` cmp bx, si je al_jeden mov al, 0 jmp koniec al_jeden mov al, 1 koniec: ``` #### 76. Podaj równoważny ciąg rozkazów bez korzystania z rozkazów blokowych nie ma instrukcji #### 77. Jakie rodzaje adresowania są niedostępne w architekturze x86? W architekturze x86 nie ma trybów adresowania auto inkrementacyjnego i dekrementacyjnego, a pośrednie jest tylko dostępne dla skoków. #### 78. Chcemy osiągnąć liniowe przyspieszenie używając 12 procesorów. Jaki procent oryginalnych obliczeń może być przeprowadzany sekwencyjnie? 1/(1-p+(p/12)) = 12 p = 1 0% #### 79. W czterech kolejnych bajtach zapisano kod znaku UTF 16 w formacie Little Endian. Wyznacz 21 bitową wartość punktu kodowego tego znaku ``` k+3 DC k+2 05 k+1 D8 k+0 3D ``` ``` ??? UTF16 - D83Dh, DC05h 8b - 3D D8 05 DC 16b - D83D DC05 32b - DC05D83D D83D - 1 polowa - 1101 10|00 0011 1101 = 0000 1111 01 DC05 - 2 polowa - 1101 11|00 0000 0101 = 00 0000 0101 suma - 0000 1111 0100 0000 0101 = 0F405 wynik = 0F405 + 10000h = 1F405 ``` ![](https://i.imgur.com/Xoc4veu.png) #### 80. Opisz dostęp do poszczególnych części rejestru R10. Podaj ciąg instrukcji, które wpiszą do EAX 32 najstarsze bity rejestru R10. R10 to rejestr 64 bitowy. Poszczególne składowe rejestru to: - R10D najmłodsze 32 bity - R10W najmłodsze 16 bitów - R10B najmłodsze 8 bitów ``` ror R10, 32 mov EAX, R10D ror R10, 32 ``` #### 81. Ile bitów jest potrzebnych do wyrażenia wartości wszystkich punktów kodowych z planu podstawowego BMP w Unicode. Ile bajtów potrzeba na zapisanie takich maksymalnego punktu z BMP za pomocą kodowania UTF-8? Wszystkie punkty kodowe z grupy BMP można zapisać na 16 bitach jako punkt kodowy. Jeśli chodzi o UTF8 to mogą być zapisywane w zależności o wartości punktu kodowego na jednym, dwóch lub trzech bajtach. #### 82. Na czym polega zjawisko hazardu zasobów w procesorze. Opisz wybraną metodę, która pozwala na jego zminimalizowanie w procesorach Intel Core. Polega na niedeterministycznej realizacji rozkazów przez procesor. - read after write (RAW) - write after read (WAR) - write after write (WAW) #### 83. Omówić rolę bufora rozgałęzień w mikroarchitekturach procesorów. Szybsze wyznaczanie adresu kolejnej instrukcji do wykonania po wykonaniu skoku warunkowego. #### 84. Na stos koprocesora załadowano dwie liczby. Podaj zawartość czterech kolejnych komórek pamięci po wykonaniu rozkazów (offset a = 00 AB CD EF) ``` st(0) = |0|10010111|10101010101010101010101| st(1) = |0|10010111|10101010101010101010110| fsub fst dword ptr a ``` ``` st(0) = 0 + 1001 0111 + 0000 0000 0000 0000 0000 010 00ABCE01 0000 0010 02 00ABCE00 0000 0000 00 00ABCDFF 1000 0000 80 00ABCDEF 0100 1011 4B ``` #### 85. Podaj definicję czasu cyklu w dostępie do pamięci. Czas cyklu obejmuje czas dostępu i pewien dodatkowy czas jaki musi upłynąć, aby pamięć wróciła do stanu gotowości do następnego dostępu po zaniku stanów przejściowych i poprzednich danych #### 86. W jakich okolicznościach wykorzystuje się przedrostek REPNE Przedrostek REP powoduje wykonanie danego rozkazu tyle razy ile wynosi zawartość reestru ECX. Dodatkowe literały określają warunek, który może przerwać pętlę. Dla NE powtarzaj dopóki argumenty są różne. #### 87. Porównaj skutki dzielenia przez zero w procesorze i koprocesorze Dzielenie przez zero w procesorze powoduje wygenerowanie wyjątku, przekazanie sterowania systemowi operacyjnemu i zakończenie wykonywania programu. W koprocesorze skutki mogą być różne, w zależności od ustawienia rejestru sterujacego. #### 88. Jakie informacje przesyłane są między mikrokontrolerem klawiatury a kontrolerem (sterownikiem) klawiatury (8041) znajdującym się na płycie głównej, a jakie informacje są lokowane przez sterownik klawiatury w izolowanej przestrzeni wejścia-wyjścia? Mikrokontroler formuje kod naciśnięcia lub zwolnienia i wysyła je do kontrolera 8041. On na podstawie tych kodów odtwarza oryginalny kod pozycji i udostępnia go w porcie 60h. ``` mikrokontroler -> (make, break code) -> kontroler 8041 -> (scan code) -> port 60h ``` #### 89. W wyniku poniższych instrukcji do eax wpisana została liczba CA FE BA BE. Podaj liczbę, która została wpisana do rejestru EDX (mov zajmują po 5 bajtów). ``` alfa: mov eax, offset alfa mov edx, offset $-5 ``` Do EDX trafi to samo `offset alfa`, więc `EDX = CAFEBABEh` #### 90. W trybie 16 bitowym pod adresem fizycznym 12345 h znajduje się nowa procedura obsługi przerwania klawiatury (nr 9, IRQ1). Podaj sekwencję rozkazów, która nadpisze w tablicy wektorów przerwań właściwe wartości. ``` mov ax, 1234H mov bx, 5h cli mov ds:[4*9], bx mov ds:[4*9+2],ax sti ``` offset zawsze leży na niższym adresie 1234h adres 5h offset #### 91. Podaj co zostanie wpisane do rejestru DI po wykonaniu instrukcji. ``` tablica dw 242, 424, 37, -3, 1023, 5, 0 mov esi, offset tablica+6 mov ebx, 0 mov di, [esi][ebx] ``` ESI wskazuje na tablicę od -3. Więc do DI zostanie wpisane -3 czyli `FFFF FFFD` #### 92. Jaki wpływ na wykonanie instrukcji ma przedrostek REP (dodatkowy bajt F3h)? Powoduje on wykonanie danej instrukcji blokowej tyle razy, ile wynosi liczba wpisana do ECX. #### 93. Wyjaśnij na przykładzie zastosowanie rozkazu ADC w operacjach dodawania liczb w podwójnej precyzji. Rozkaz ten pozwala na dodawanie liczb 64 bitowych z wykorzystaniem rejestrów 32 bitowych, dzięki temu że uwzględnia przy tym flagę CF, na przykład dodawanie `EDI:ESI` do liczby zapisanej w `EDX:EAX` ``` add EAX, ESI adc EDX, EDI ``` #### 94. W jaki sposób procesor odróżnia rozkazy wykonujące działania na operandach 16 i 32 bitowych? Rozkazy wykonywane na operandach 16 bitowych są poprzedzone dodatkowym bajtem 66h. #### 95. Dla poniższego ciągu rozkazów narysuj wykres jak zmienia się wartość wskaźnika EIP w czasie (nie musi być dokładnie) ``` mov ecx, 1 ;+ 1x ptl: ad bh, [esi] ;+ 1x dec esi ;+ 1x loop ptl ;- 2x i powrót do ptl nop ;+ 1x ; jakaś taka łamana sinusoida ``` #### 96. Wyjaśnij dlaczego rozkaz add [esi+edi], 1 jest błędny. Nie ma określonego rozmiaru pamięci brakuje `byte/word/dword ptr` #### 97. Czym różnią się rozkazy FST oraz FIST? Oba rozkazy wysyłają liczbę ze stosu koprocesora do pamięci. FST wysyła ją w formacie zmiennoprzecinkowym, a FIST w postaci liczby całkowitej. #### 98. Zakładając, że pamięci DDR2 i DDR3 są taktowane z taką samą częstotliwością i mają identyczne czasy opóźnień CL, wskazać która z nich oferuje większą przepustowość pamięci (bandwidth). Uzasadnij odpowiedź. Pamięć DDR3 umożliwia zastosowanie niższego napięcia, co skutkuje mniejszym poborem mocy. Dzięki temu DDR3 oferuje większą przepustowość pamięci. #### 99. Wymień obszary zastosowań architektury harwardzkiej w procesorach Intel Core. W procesorach Intel Core każdy rdzeń ma 2 bloki pamięci podręcznej L1, gdzie jeden przechowuje rozkazy, a drugi dane, więc jest to architektura harwardzka. #### 100. Dlaczego w rzeczywistych systemach komputerowych może wystąpić spadek wydajności przy rozbudowie systemu o nowe jednostki przetwarzające? Ze względu na utrudnione rozdysponowywaniu zadań dla kolejnych jednostek. #### 101. Przedstawić budowę komórki SRAM Przerzutnik dwustanowy złożony z 6 kondensatorów. Pamięta stan, ale wymaga ciągłego zasilania. + szybkość i brak konieczności odświeżania - mały stopień scalenia, wysoka cena i pobór mocy #### 102. Czy podana sekwencja rozkazów jest poprawna? Uzasadnij. ``` mov rbx, offset dana mov dil, [rbx] ``` jest poprawna, do `DIL` trafi po prostu najmłodszy bajt spod podanego adresu. #### 103. Co będzie w rejestrze MM0 po wykonaniu rozkazu PADDUSB MM0, MM1 (sumowanie rejestrów z nasyceniem). W rejestrach były wartości: ``` MM0 = F7 F8 FA FC FB FC FD FE MM1 = 06 06 06 06 03 03 03 03 ``` ``` ??? FD FE FF FF FF FF FF FF ``` sumowanie z nasyceniem sprawia ze kazdy poszczegolny obszar nie przekracza zakresu (nie bedzie of) #### 104. Do rejestru BX wpisano wartość -5. Podaj wartość rejestru EBX po wykonaniu instrukcji `movzx ebx, bx` `movzx` dopełnia zerami z przodu więc `00 00 FF FB` #### 105. Wyjaśnij dlaczego we współczesnych komputerach blokowana jest możliwość bezpośredniego sterowania pracą urządzeń zewnętrznych przez programy użytkownika np. poprzez porty. Ze względu na to że aktualne urządzenia działają w trybie chronionym #### 106. Dlaczego w pamięciach podręcznych o dużych rozmiarach nie jest stosowane adresowanie asocjacyjne? Adresowanie asocjacyjne wymaga zastosowania bardzo złożonego komparatora, którego koszt szybko rośnie wraz z ilością etykiet koniecznych do sprawdzania w jednym cyklu zegara. W przypadku jego braku wymagane byloby szukanie pomiedzy tymi wszystkimi etykietami #### 107. Wyjaśnij pojęcie równoległości na poziomie instrukcji (ILP) Instruction Level Parallelism (ILP) jest parametrem dotyczącym oprogramowania, który mówi o tym jaka część z operacji zawartych w kodzie może być wykonana równolegle. #### 108. Podać maksymalną wielkość pamięci fizycznej RAM, jeśli zastosowano 40 bitową szynę adresową. 2^40 = 2^30 kB = 2^20 MB = 2^10 GB = 1 TB #### 109. W jakim celu używany jest rozkaz INT 80h w aplikacjach na systemie Linux? Służy on do wywoływania funkcji systemowych na Linux. Na dos INT 21h #### 110. Przyjmując, że część sekwencyjne programu zajmuje 1% czasu jego wykonania określić a) maksymalne przyspieszenie przy nieskończonej liczbie procesorów i pomijalnym czasie komunikacji między procesorami b) liczbę procesorów, które należy zastosować w systemie, aby uzyskać dziesięciokrotne przyspieszenie a) 1/(1-0.99) = 100 b) 1/((1-0.99)+ 0.99/s) = 11 https://en.wikipedia.org/wiki/Amdahl%27s_law #### 111. Jaką rolę w komputerach pełnią układy wejścia - wyjścia? Układy wejścia - wyjścia są układami pośredniczącymi między procesorem a uządzeniami zewnętrznymi. Umożliwiają testowanie gotowości, wysyłanie poleceń oraz wymianę danych między nimi. #### 112. Na czym polega mechanizm Macro-Ops Fusion w procesorach Intel Core? Łączenie rozkazów tak aby mieściły się w mniejszej ilości cykli zegarowych. #### 113. Opisz technikę out-of-order wykonywania rozkazów przez procesor. Procesor może wybierać rozkazy które wykona poza kolejnością, jeśli dane na których operuje dany rozkaz są już gotowe. #### 114. Opisać układ i hierarchię pamięci podręcznej w procesorze Core i7. Każdy rdzeń procesora jest wyposażony w dwa bloki pamięci L1 (jeden dla danych i jeden dla rozkazów) oraz jeden pamięci L2 na każdy rdzeń, który jest wspólny dla obu bloków L1 na rdzeniu. Dla wszystkich rdzeni również jest jeden wspólny blok L3. Wszystkie te bloki są umieszoczne na płycie procesora. ![](https://i.imgur.com/L5kh6hK.png) ![](https://i.imgur.com/kSJQBbT.png) #### 115. Jaką zasadniczą wadę w technice obsługi urządzeń zewnętrznych komputera ma metoda aktywnego oczekiwania? Metoda aktywnego oczekiwania jest nieefektywna i pochłania czas pracy procesora, bo program spędza czas w pętli oczekiwania. #### 116. Omówić grupy konfliktów zmniejszające wydajność przetwarzania potokowego. - błędna predykcja wykonania rozgałęzień warunkowych - wykonywanie procedur przez adresowanie pośrednie (np. call przez wskaźnik lub metody wirtualne), gdzie nie zawsze można stwierdzić przed wykonaniem programu która procedura zostanie wykonana #### 117. Opisz na czym polega przewidywanie statyczne wykonywania rozkazów rozgałęzień w procesorach. Procesor domyślnie ładuje rozkazy ze ścieżki o większym prawdopodobieństwie wykonania. Pozwala to na wykonanie sprawdzenia warunku, gdzie w większości przypadków warunek będzie spełniony i procesor może natychmiastowo wykonywać kolejne rozkazy. Jeśli nie będzie spełniony, musi załadować pipeline od nowa. #### 118. Na czym polega różnica w przetwarzaniu gridowym i klastrowym? Przetwarzanie gridowe może być rozproszone i zdecentralizowane, przetwarzanie klastrowe skupia się wokół topologii gwiazdy. #### 119. Podać zasady przesyłania danych z klawiatury do komputera na poziomie przesłań sygnałów elektrycznych #### 120. Dlaczego rozkaz DIV EDX powoduje zawsze wywołanie wyjątku procesora? Jest to rozkaz, który dzieli liczbę 64 bitową `EDX:EAX` przez 32 bitową, więc wynik też będzie 32 bitowy. W tej sytuacji zawsze wystąpi nadmiar przy dzieleniu lub dzielenie przez zero, a te wywołują wyjątek procesora. #### 121. Na wybranym przykładzie wyjaśnij pojęcie heterogeniczności architektury systemu komputerowego Dla przetwarzania na wielu jednostkach pozwala to na komunikacje między jednostkami w celu rozdysponowania pracy równoległej. https://en.wikipedia.org/wiki/Heterogeneous_System_Architecture #### 122. Wyjaśnij znaczenie bufora BTB. Jaki rodzaj pamięci jest w nim wykorzystywany? Bufor BTB (branch target buffer) przechowuje wartości "następne" eip. Indeksem w tym buforze jest obecna wartość eip. Ten mechanizm pozwala na optymalizowanie wyznaczania adresu kolejnej instrukcji przy skoku warunkowym. #### 123. Podaj równoważny kod w języku C ``` dane dq 3 mov ecx, 32 mov eax, offset dq etk: add qword ptr [eax], 3 loop etk ``` ``` uint_64t dana = 3; for (int i=32; i>0; --i) { dana += 3; } ``` #### 124. Przedstaw budowę komórki pamięci Flash Każda komórka zbudowana jest z dwóch bramek: pływającej i sterującej. Bramka pływająca gromadzi ładunek, sterująca odczytuje jego logiczną wartość (0 lub 1), a także kasuje i zapisuje ładunek bramki pływającej. #### 125. Podaj definicję atrybutu CL przy dostępie do pamięci RAM CL to CAS Latency. Jest to liczba cykli zegara, ile trzeba czekać aż dana pojawi się na wyjściu po wykonaniu pracy przez procesor. #### 126. Podaj różnice między adresem fizycznym, wirtualnym i efektywnym Adres fizyczny to rzeczywisty numer komórki pamięci, a wirtualny to taki na jakim operuje programista (taki widzimy w VS). Adres efektywny to adres w pamięci, zawierający argument na którym będzie wykonana operacja. #### 127. Omów technikę statycznego szeregowania rozkazów #### 128. Wyjaśnij znaczenie bufora TLB. Jaki rodzaj pamięci jest w nim wykorzystywany? TLB znajduje się w cachu i służy do zapamiętywania przetłumaczonych adresów wirtualnych na fizyczne w celu optymalizacji czasu potrzebnego na translacje. #### 129. Podaj równoważny kod w języku C dla poniższego programu ``` dana dd -3.0 fld1 fcomi dana jne etyk mov dana, C0 00 00 00 h etyk: ``` ``` float dana = -3.0f; if (dana == 1.0f) { dana = -2.0f; } ``` #### 130. Dlaczego stosowanie układów DMA podnosi wydajność przetwarzania? Układ DMA odpowiada za transmisję danych bez użycia czasu procesora, dzięki czemu procesor może wykonywac w tym czasie inne rozkazy. #### 131. Opisz sposób komunikacji procesora z kartą graficzną w architekturze CUDA #### 132. Wyjaśnij pojęcie zbioru podstawowego BMP w Unicode Jest to 65 tysięcy najpopularniejszych znaków według standardu Unicode. Są to znaki, które w UTF8 można zapisać na 1,2 lub 3 bajtach. ### Egzamin stacjonarny 09.02.2021 #### 01. W jaki sposób w programie asemblerowym można oddziaływać na licznik lokacji? Przez użycie rozkazu ORG który wpisuje do licznika, wartość podaną w argumencie. #### 02. Omówić sposób transmisji danych z urządzeń zewnętrznych z wykorzystaniem bezpośredniego dostępu do pamięci. Procesor wykorzystuje układ DMA, do którego podaje adresy skąd i dokąd układ ma przesłać dane. W tym czasie procesor może wykonywać inne operacje, a kiedy układ zakończy transmisję wysyła sygnał do procesora. #### 03. Rozkazy ja i jg są rozkazami skoku warunkowego, które wykonują skok, gdy w trakcie porównywania liczb pierwszy argument jest większy od drugiego. Czym różnią się te rozkazy jg ze znakiem ja bez znaku #### 04. Wyjaśnić w jakich okolicznościach podczas obliczeń wykonywanych przez koprocesor arytmetyczny powstają _nieliczby_ NaN? Przy operacjach niedozwolonych przez matematyke, typu pierwiastkowanie ujemnej czy logarytm z ujemnej #### 05. Wskaż i omów na czym polega błąd przy wykonaniu natępującego fragmentu kodu: ``` mov cx, 8 mov esi, offset dane etyk: inc esi cmp dword ptr [esi+4*esi-1234h],0 loop etyk ``` Ponieważ nie wpisujemy wartości do ecx, tylko do cx, może się zdarzyć że pętla przejedzie za daleko i odczyt z adresu w esi będzie memory violation. #### 06. Omów różnicę pomiędzy pułapką (trap) a niepowodzeniem (fault) w wyjątkach procesora? trap jest ustawionym przez użytkownikiem przerwaniem które wymusza na programie przejście do trybu krokowego, fault jest niepowodzeniem które w przeciwieństwie do aborta jest możliwe do odtworzenia. #### 07. Podac zawartość czterech bajtów pamięci (w układzie adres: wartość), które zostały zapisane w wyniku wykonania poniższych rozkazów, jeśli wiadomo, że na wierzchołku stosu rejestrów koprocesora arytmetycznego znajdowała się liczba o waretośći dziesiętnej -16.125 ``` mov eax, 7E45B8h fstp dword ptr [eax] ``` ``` - 16.125 10000.001 c 1 8 1 0 0 0 0 1100 0001 1000 0001 0000 0000 0000 0000 ``` ``` 1100 0001 1000 0001 0000 0000 0000 0000 c1 81 00 00 ``` ``` 7E45BBh c1 7E45BAh 81 7E45B9h 00 7E45B8h 00 ``` #### 08. W jaki sposób sygnalizowany jest nadmiar w operacjach dzielenia Poprzez przerwanie procesorowe związane z nadmiarem #### 09. Podaj i objaśnij podstawową różnicę w działaniu pamięci SDRAM a DRAM SDRAM jest synchroniczny i podlega odświeżaniu przy użyciu zegara, DRAM asynchroniczny i jedyna zależnośc z zegarem to przy wyliczaniu czasu dostępu do pamięci wykorzystujemy CAS * częstotliwość procesora #### 10. Wyjaśnij koncepcję wyrównywania adresów danych w pamięci operacyjnej i wpływ na wydajność nowoczesnych procesorów Wynika to z wykorzystania pamięci podręcznej. Alignment pozwala na minimalizacje ilości missów oraz odczytów pamięci #### 11. Opisać technikę asocjacyjnego dostępu do pamięci podręcznej Pamięć podręczna jest przeszukiwana po etykietach do momentu zgodności poszukiwanej etykiety, jest jednak wolniejsza od bezpośredniej bo etykiety mogą być w losowej kolejności #### 12. Czy możliwe byłoby wykonanie działań na kolejnych elementach tablic bez użycia modyfiacji adresowych. Odpowiedź uzasadnij W instrukcjach z rodziny SSE istnieją rozkazy które potrafią np przyjąć dwa wektory danych i wykonują działania w kolejności column-wise #### Zasady lokalności pamięci 1. Lokalność czasowa (temporary locality) - wielokrotne odwołania do tych samych komórek pamięci, nie koniecznie o zbliżonych adresach (np. wykonywanie pętli złożonej z kilku rozproszonych fragmentów kodu). 2. Lokalność przestrzenna (spatial locality) - odwołania do komórek pamięci znajdujących się w sąsiedztwie

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully