- Struktura i organizacja typowego systemu komputerowego.
- Budowa i działanie typowego procesora ogólnego przeznaczenia.
- Wykonywanie rozkazów przez procesor(y), przerwania, wyjątki.
- Dane i ich przetwarzanie w systemie komputerowym.
- Koncepcja „konwencjonalnej maszyny”, język maszynowy, asembler.
- Połączenia wewnątrz- i zewnątrz-systemowe, urządzenia wejścia/wyjścia.
- Realizacja przetwarzania równoległego w systemach komputerowych.
- Optymalizacja wydajności procesora(ów) i systemu komputerowego.
- układ sterowania i synchronizacji, który kontroluje pracę procesora i wytwarza sygnały potrzebne do sterowania niektórymi elementami komputera.
- arytmometr, czyli układ, który wykonuje operacje arytmetyczne i logiczne (niektóre procesory mają kilka arytmometrów).
- rejestry, służące do przechowywania tymczasowych wyników obliczeń, adresów lokacji w pamięci operacyjnej
- wbudowana pamięć podręczna cache, która działa podobnie do zewnętrznej pamięci RAM. Zapewnia ona, że procesor nie jest zmuszony czekać na dane potrzebne mu do pracy.
- spółczesne technologie
- Architektura 64 bitowa
- Wielordzeniowość
- Wielowątkowość (Dwa wątki na jeden rdzeń fizyczny)
Rozkaz - w informatyce i programowaniu to pojedyncza operacja centralnej jednostki obliczeniowej określona przez zestaw rozkazów jej modelu programowego. Jest ona przekazywana do procesora, który ją dekoduje, a następnie wykonuje, po czym zapisuje wartość wynikową w określonym miejscu lub ustawia flagę błędu, jeżeli wystąpił on podczas przetwarzania.
Wyjątek - jest to dowolne zdarzenie, które przerywa normalny tok obliczeń procesora i wymusza wykonanie określonego zbioru instrukcji w trybie uprzywilejowanym. Najogólniej można je podzielić na dwie grupy: synchroniczne i asynchroniczne. Synchroniczne są generowane przez tzw. zdarzenia wewnętrzne jak np. efekt wykonania jakiejś instrukcji procesora. Przykładami mogą być dzielenie przez zero lub niepoprawny odczyt z pamięci.
Przerwanie - to tzw. wyjątki asynchroniczne i nie są powiązane z instrukcjami wykonywanymi przez procesor. Ich źródłem są wszelkie zdarzenia zewnętrzne, czyli odnoszą się do różnych sygnałów generowanych przez sprzęt. Przykładami mogą być wciśnięcie przycisku reset na płycie głównej lub urządzenie komunikacyjne, które właśnie otrzymało pakiet z danymi.
Pamięć masowa - pamięć trwała, która umożliwia przechowywanie dużych ilości danych przez długi czas. W odróżnieniu od pamięci operacyjnej, nie pozwala na adresowanie pojedynczych bajtów, a jej czas dostępu jest wielokrotnie dłuższy
Bit - najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie prawdopodobnych stanów przyjął układ. Jednostka logiczna. Jest to również najmniejsza jednostka informacji używana w odniesieniu do sprzętu komputerowego a oznaczana jest za pomocą b.
Bajt - najmniejsza adresowalna jednostka informacji pamięci komputerowej, składająca się z bitów. W praktyce przyjmuje się, że jeden bajt to 8 bitów.
Język maszynowy, kod maszynowy - zestaw rozkazów procesora, w którym zapis programu wyrażony jest w postaci liczb binarnych stanowiących rozkazy oraz ich argumenty. Kod maszynowy może być generowany w procesie kompilacji (w przypadku języków wysokiego poziomu) lub asemblacji (w przypadku języków niskiego poziomu)
Asembler - program tworzący kod maszynowy na podstawie kodu źródłowego (tzw. asemblacja) wykonanego w niskopoziomowym języku programowania bazującym na podstawowych operacjach procesora zwanym językiem asemblera, popularnie nazywanym również asemblerem.
Języki asemblera - rodzina języków programowania niskiego poziomu, których jedno polecenie odpowiada zasadniczo jednemu rozkazowi procesora.
Urządzenie wejścia-wyjścia - urządzenie do komunikacji systemu komputerowego z jego użytkownikiem lub innym systemem przetwarzania danych.
- urządzenia wejścia to:
- klawiatura,
- mysz,
- mikrofon,
- czytnik linii papilarnych
- urządzenia wyjścia to:
- monitor,
- drukarka,
- głośniki,
- słuchawki
- urządzenia wejścia i wyjścia to:
- karta sieciowa,
- modem,
- ekran dotykowy
Obliczenia równoległe - forma wykonywania obliczeń, w której wiele instrukcji jest wykonywanych jednocześnie. Taka forma przetwarzania danych była wykorzystywana przez wiele lat, głównie przy wykorzystaniu superkomputerów, a szczególne zainteresowanie zyskała w ostatnich latach, z uwagi na fizyczne ograniczenia uniemożliwiające dalsze zwiększanie częstotliwości taktowania procesorów. Obliczenia równoległe stały się dominującym wzorcem w architekturze komputerowej, głównie za sprawą upowszechnienia procesorów wielordzeniowych.
Ze względu na skalę można wyróżnić obliczenia równoległe na poziomie: bitów, instrukcji, danych i zadań
Ze względu na poziom, na którym sprzęt wspomaga operacje równoległe, można wyróżnić komputery: jednoprocesorowe wielordzeniowe (zawierające jeden procesor wielordzeniowy) symetryczne wieloprocesorowe (zawierające kilka identycznych, równorzędnych procesorów) systemy składające się z wielu maszyn: klastry, systemy MPP, gridy.
Do prowadzenia obliczeń równoległych, oprócz sprzętu, konieczne są również odpowiednie algorytmy nazywane równoległymi. Są one trudniejsze w implementacji niż sekwencyjne, ponieważ współbieżność wprowadza dodatkowe możliwości popełnienia błędu. Powstają również dodatkowe problemy w uzyskaniu wysokiej wydajności z powodu dodatkowych nakładów na komunikację i konieczność synchronizacji obliczeń.
- Dynamiczna częstotliwość taktowania rdzeni
- Wielowątkowość (hiper-threading, simultaneous-multithreading)
- Pamięć podręczna cache (znacznie szybsza niż RAM)
- Spekulatywne wykonywanie instrukcji