Hoorcolleges Basics of Computer
Systems and Networks
Hoorcollege 1: Componenten en metriek
- Dit vak legt de basis voor meerdere gebieden: computerarchitectuur, bestuurssystemen en
computernetwerken.
-> doel van het vak: wat gebeurt er wanneer je google.com in je internetbrowser typt en op
Enter drukt?
- Wat is een computer?
-> elektronisch apparaat wat met data werkt; belangrijke is dat je het gedrag later nog kan
aanpassen (nadat het is gebouwd, dus software op downloaden)
-> te vinden in telefoons, laptops, datacenters, auto’s, smartwatches, etc. (overal)
- Belangrijkste componenten van een computer:
-> CPU: brein van de computer (generiek), werkt samen met de main memory (RAM)
-> main memory (RAM): werkgeheugen van de computer (gewist als je de computer uitdoet,
verbonden aan stroom)
-> netwerkkaart: computer laten praten met andere computers
-> moederbord: verbind alle andere componenten met elkaar
-> GPU: grafische dingen laten zien, net als CPU een processing unit (dataverwerking), maar
vooral gefocust op grafische dingen (ook belangrijk bij AI)
-> opslag: harde schijven (met magneetveld dingen opgeschreven; nadeel is dat er bewegende
delen in zitten, gaat kapot); overgang naar solid state storage (SSD), kan permanent dingen
opslaan en is sneller.
-> I/O devices (in- en output devices): bv. toetsenbord (input), of beeldscherm (output)
- SoC = System on Chip componenten koppelen
-> bv. chips van Apple: CPU, GPU en NPU in één.
Bits en bytes
- Computers werken met 1’en en 0’en 1 heeft positieve lading, 0 heeft een negatieve lading.
-> alleen op elektrische computers, niet bij quantumcomputers.
-> 1 gelijk aan ‘true’ of ‘aan’, 0 gelijk aan ‘false’ of ‘uit’.
- Bit = een componentje waar stroom op staat of niet (0 of 1)
-> met één kan je niet rekenen.
- Byte = 8 bits samengezet
-> 8 mooi getal voor computers, omdat 8 een tweemacht is
-> computer werkt met bits, met twee waardes (0 en 1), en daarom is het voor computers
makkelijk om te werken met twee getallen (binair)
-> het is als tellen met slechts 2 getallen, in plaats van 10.
- Hoofdletters versus kleine letters:
-> Kb = kilobit, 1Kb = 1000 bits
-> KB = kilobyte, 1KB = 1000 bytes
-> 8 Kb = 1 KB
- Data transfer speeds
-> KBps (Kilobyte per second) (of MBps, GBps, TBps, etc.)
- Internetverbinding met 100 MBps, kost het 1 seconde om een bestand van 1MB te downloaden.
- Internetproviders adverteren echter meestal graag met Mbps in plaats van MBps.
-> als je dus een internetverbinding van 100 Mbps heeft, is je downloadsnelheid: 100/8 = 12,5
MBps. En het downloaden van een bestand van 100 MB duurt 8 seconden!
Rol van componenten
- Elke component probeert de zwaktes van andere componenten op te lossen.
-> werkgeheugen (RAM) probeert de traagheid van de HDD en de beperkte opslagcapaciteit van
de CPU op te vangen.
-> HDD probeert de tijdelijke opslag van RAM op te vangen.
-> GPU probeert het beperkte parallelisme van de CPU op te vangen.
-> etc.
,Central Processing Unit (CPU)
- CPU (Central Processing Unit): brein van de computer extreem snel in verwerken van data.
-> accepteert bits, verwerkt deze en de output is ook snel.
-> voordeel: super snel
-> nadeel: kan weinig opslaan (beperkte opslag)
- De CPU is een component dat programma instructies en data kan uitvoeren.
-> computerprogramma’s zijn samenstellingen van instructies die zijn opgeslagen in het
werkgeheugen.
-> dus zijn de CPU en het werkgeheugen de twee essentiële componenten van een
computersysteem.
Random Access Memory (RAM)
- Werkgeheugen (RAM, Random Access Memory): zorgt ervoor dat de CPU toch met grotere
dingen kan werken, door dingen van het geheugen op te halen.
-> voordeel: snel
-> nadeel: als de stroom uitgaat, wordt het compleet gewist en heb je er niks aan; en het is vrij
duur
Bus
- Bus: zorgt dat de CPU kan communiceren met RAM, die vaak in het moederbord zit.
-> zo kan CPU toch werken met meer geheugen dan het zelf heeft.
-> het is een elektronisch apparaat voor het communiceren van data (vaak in binaire vorm)
tussen verschillende componenten van de computer.
Opslag
- Opslag: in hoofdgeheugen is niet permanent, daarom harde schrijven (HDD) of SSD
-> voordeel: data opgeslagen, ook als computer uit gaat; en is goedkoop (goedkoper dan op het
werkgeheugen)
-> nadeel: langzaam (in termen van computers) HDD in orde van microseconden, CPU in orde
van nanoseconden (daarom verplaatsen we RAM niet met opslag)
Graphical Processing Unit (GPU)
- GPU (Graphical Processing Unit): eigenlijk heb je alles al om een werkende computer te hebben;
GPU net als CPU een verwerkingseenheid, maar gespecialiseerd in grafische dingen.
-> heel veel kleine processors (CPU’s uit een aantal sterke processors, de GPU uit duizenden
zwakkere)
-> grafische data kan vaak individueel worden verwerkt, waardoor een GPU een betere
(snellere) tool is om dit te verwerken (alle kleine processoren één kleine taak)
-> voordeel: in GPU kan alles tegelijk, en dus heel snel bij kleine taken.
-> nadeel: heel traag voor één grote taak.
- In de video van NVIDIA wordt duidelijk dat de CPU een sterke en flexibele processor is (de
robotarm)
-> maar het werkt met één ding per keer, en stap voor stap (sequentieel)
- De GPU bestaat daarentegen uit een groot aantal kleinere en simpelere processoren.
-> deze simpele processoren zijn beperkt in wat ze kunnen doen (de slangetjes die een
verfballetje schieten in de video)
-> maar deze slangetjes doen hun simpele taak allemaal tegelijkertijd (parallel)
Netwerkkaart
- Netwerkkaart: ‘telefoon’ voor de computer, zodat de computer met andere computers kan
praten.
-> de brug tussen de computer en een computernetwerk.
Hoorcollege 2: Central Processing Unit
Hoe werkt de CPU?
- CPU (Central Processing Unit)wordt gezien als het brein van de computer.
-> de CPU is een soort hele snelle rekenmachine.
- Een CPU is aangestuurd door simpele instructies.
-> bv. tel twee cijfers bij elkaar op of trek ze van elkaar af, vergelijk twee cijfers, doe iets als
twee cijfers hetzelfde zijn, lees een waarde van de RAM, etc.
, - Computerprogramma’s zijn eigenlijk hele lange series van deze instructies, en een CPU werkt
door deze instructies uit te voeren.
- Veel rekenmachines hebben een geheugenunit die één cijfer kan onthouden helpt om iets
sneller uit te rekenen, omdat je dat niet telkens opnieuw moet invullen.
-> een CPU heeft iets soortgelijks, een register genoemd; als de CPU elke keer als het een cijfer
nodig heeft deze van de RAM moet halen, kost dat tijd.
-> daarom kan de CPU een cijfer opslaan in een lokaal ingebouwd geheugen, en vaak heeft een
CPU meer dan één register.
- Twee soorten registers worden onderscheiden:
1. General-purpose registers: gebruikt voor verschillende rekenkundige en logische
uitvoeringen.
2. Special-purpose registers: voor specifiekere functies, zoals programcounter en instruction
register.
-> programcounter (PC): houdt het geheugenadres van de volgende instructie bij.
-> instruction register (IR): houdt de momenteel opgehaalde instructie vast voor uitvoering.
Fetch-decode-execute cycle
- Om een programma uit te voeren, doet de CPU het volgende:
1. Haalt de instructies op uit het RAM (fetch)
-> het adres van de volgende instructie wordt opgeslagen in de program counter (PC)
-> na het ophalen wordt de instructie opgeslagen in het instruction register (IR)
2. Decodeert de huidige instructie (decode)
-> de operation die vereist is voor de instructie wordt bepaald.
3. Voert het instruction register (IR) uit (execute)
-> de daadwerkelijke operation van de instructie wordt uitgevoerd.
Verschillende type instructies
- Arithmetic (rekenkundig): zeer basale rekenkundige operations op data.
-> zoals optellen, aftrekken, vermenigvuldigen en delen
-> de Arithmetic Logic Unit (ALU), die deel uitmaakt van de CPU, handelt rekenkundige
operations af.
-> in de video zagen we de instructie “ADD 7”, die een rekenkundige operation uitvoert.
- Logical instructions: voert basisoperations uit op bits.
-> logical instructions worden gebruikt om operations uit te voeren op bytes
-> zoals een bit in een byte wissen, een bit in een byte instellen, kijken of twee bits equivalent
zijn (zelfde waarde hebben)
- Data movement instructions: kan gegevens verplaatsen tussen geheugen en registers, of tussen
geheugenlocaties.
-> deze bewegingen kunnen helpen bij het laden van gegevens voor verwerking, of het opslaan
van gegevens van CPU-registers naar geheugenlocaties, of het overbrengen van gegevens
tussen verschillende delen van het programma.
-> in de video zagen we de instructies “LOAD 6” en “STORE 6” die gegevensverplaatsingen
uitvoeren.
- Control flow instructions: hiermee kan het uitvoeringspad van een programma wijzigen (de
‘controlestroom’ wijzigen)
-> standaard voert een CPU de instructies die hij tegenkomt één voor één uit.
-> om een blok instructies te herhalen, hebben we een instructie nodig om de controlestroom te
wijzigen om terug te springen naar het begin van dit blok.
-> deze instructies werken door het geheugenadres van de instructie die we als volgende willen
uitvoeren in de programcounter register te schrijven.
, -> dit kan onvoorwaardelijk (altijd), of op basis van een bepaalde voorwaarde (zoals “is de
waarde van een bepaald register kleiner dan 10?”)
-> in de video zagen we de instructie “JUMP 1” om terug te springen naar de instructie op
geheugenadres 1 en een blok instructies te herhalen.
Snelheid van de CPU
- De werking van een CPU wordt bepaald door een klok.
-> elke tik van de klok zorgt ervoor dat de CPU de volgende actie uitvoert.
- De snelheid van de klok (clock rate of clock frequency) is uitgedrukt in Hertz (Hz)
-> 1 Hz = 1 klok-tik per seconde.
- In het jaar 2000 waren processoren met een clock rate van ongeveer 600 MHz (600.000.000 Hz)
-> tegenwoordig bestaan er CPU’s van ongeveer 5 GHz (5.000.000.000 Hz)
-> dat is dus het aantal klok-tiks per seconde.
- Er zijn meerdere factoren die de snelheid van de CPU bepalen dan alleen de klokfrequentie.
-> daarom kan je CPU’s niet vergelijken gebaseerd op alleen klokfrequentie.
- Het is onmogelijk om de klokfrequentie te blijven verhogen vast op 3,5-5GHz voor de
afgelopen tien jaar.
-> komt door hitteproductie en fysieke beperkingen.
Instruction Set Architecture (ISA)
- De ISA is de set aan instructies die een CPU kan begrijpen en uitvoeren.
-> ISA definieert de machinetaal die software moet gebruiken om de CPU te instrueren.
- De ISA functioneert als een interface tussen de software en de hardware.
-> verschillende CPU’s worden door verschillende bedrijven geproduceerd, met verschillende
architecturen en unieke ISA’s.
- Programma’s die voor één ISA zijn gecompileerd, worden mogelijk niet rechtsreeks op een
andere ISA uitgevoerd.
-> dit komt doordat machinetalen die door de CPU’s worden herkend verschillen.
-> het is wel mogelijk om ze uit te voeren met vertaling of emulatie.
- De meest voorkomende ISA’s: x86, ARM, RISC-V.
Trends in computerarchitectuur
Multicore processors
- Het hebben van meerdere processing units (cores) in dezelfde CPU zorgen voor hogere
prestaties en parallelle uitvoering.
- Vroeger hadden PC’s meestal een single core CPU, maar tegenwoordig meestal tussen de 4 en 8
cores voor een CPU in een normale laptop.
Solid State Drive (SSD)
- De traditionele Hard Disk Drive (HDD) werd geïntroduceerd door IBM in 1956 zo groot als een
auto.
-> het kostte $300.000 en had een capaciteit van 3,75 MB.
- Qua snelheid bieden CPU en RAM voldoende snelheid bij dagelijkse taken.
-> permanente opslagapparaten zoals een harde schijf (HDD) zorgen echter voor enorme
vertraging bij het lezen/schrijven van bestanden.
-> komt omdat een HDD in feite ene fysieke magnetische schijf laat draaien en gegevens op die
schijf opslaat laten draaien van fysiek object is langzamer.
- SSD is daarentegen volledig elektrisch, zonder bewegende onderdelen, waardoor het sneller,
betrouwbaarder en energiezuiniger is.
-> maar nog steeds niet zo snel als in de orde van de CPU en RAM.