Hoofdstuk 1 Flashcards

(62 cards)

1
Q

Personal Computers (PC’s)

A
  • Laptops
  • Meest gekende vorm
  • Aandachtspunten: goede performantie, lage kost, software van derden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Servers

A
  • Moderne vorm van ooit gigantische computers
  • Kunnen grote workloads draaien: enkelvoudige complexe applicaties (wetenschappelijk of ingenieur) of veel kleine dingen tegelijk doen (bv. webserver)
  • Gebasseerd op software van een andere bron, maar aangepast naar 1 functie
  • Zelfde basis technologie als PC’s, maar meer computergebruik, opslagruimte en input/output capaciteit
  • Aandachtspunten: betrouwbaardheid, veel workloads kunnen draaien
  • Grootste variatie in kost en vermogen: niet veel meer dan PC → supercomputers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Embedded Computers

A
  • Computer gevonden in een ander apparaat
  • Grootste klasse van computers
  • Grootste variatie in applicaties en performantie
  • Internet of Things (IoT): vele kleine toestellen die met elkaar communiceren
  • 1 applicatie uitvoeren, 1 set gerelateerde applicaties, geïntegreerd in hardware
  • Aandachtspunten: minimale performantie, minimale kost en vermogen, betrouwbaarheid
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Personal mobile device (PMD)

A
  • Vervangt een deel van PC’s (=Post-PC era)
  • Werken op batterijen, draadloze connectie met internet, gebruiker kan erop software downloaden
  • software geïnstalleerd door apps te downloaden
  • Vandaag: smart phone, tablet
  • Toekomst: elektronische bril
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cloud Computing

A
  • Neemt het over van traditionele servers
  • Gebruikt gigantische datacenters: Warehouse Scale Computers (WSC’s)
  • Gebouwd door bedrijven zoals Amazon, Google, …
  • WSC’s bevatten 50.000 servers
  • Bedrijven kunnen delen van WSC’s huren om diensten naar PMD’s te brengen
  • Software as a Service (Saas): levert diensten over het internet, revolutioneert software industrie (bv. web search, social media)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Use abstraction to simlify design

A

Productiviteit verbeteren

Karakteriseer het ontwerp op verschillende levels van representatie

  • Ideëen van een lager level zijn verborgen om het model van een hoger level duidelijker te maken
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Make the common case fast

A

Verbeterd de performantie meer dan het weinig voorkomende te verbeteren

  • Vaak simpeler dan het minder voorkomende geval

Vraagt dat je weet wat de Common Case is

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Performance via parallelism

A

Computers die meer performantie hebben door operaties parallel uit te voeren

Voorbeeld:
- een multiplicatiegebruikt door meerdere dingen tegelijk op te tellen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Performance via pipelining

A

Vorm van parallellisme

Operaties aan een lopende band uitvoeren

Voorbeeld:

  • functies na elkaar callen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Performance via prediction

A

Raden in de plaats van wachten tot je het zeker weet

  • Werkt alleen in sommige gevallen
  • Moet makkelijk zijn om foute berekening te verwijderen
  • Voorspelling moet relatief accuraat zijn

Voorbeeld:

  • een programma moet wachten op een lange berekening, maar berekent alvast de som voor de waarschijnlijke uitkomst met een constante
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Hierarchy of memories

A

Geheugen moet snel, groote en goedkoop zijn

Tegenstrijdige voorwaarden: hiërarchie

  • Bovenaan: snelste, kleinste en duurste per bit
  • Onderdaan: traagste, grootste en goedkoopste per bit

Voorbeeld:

  • registers versus harde schijf
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Dependability via redundancy

A

Redunante componenten toevoegen

  • kunnen overnemen als iets faalt
  • kunnen fouten ontdekken
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Operating system

A

Interfaces tussen programma van gebruiker en hardware

Variëteit van diensten en toezichthoudende functies

  • Basisch input en output operaties
  • Toewijzen van opslag en geheugen
  • Voorzien van beschermt delen van computer over verschillende applicaties tegelijk

Voorbeeld: Windows

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Systeem software

A

Software die diensten aanbied die veelgebruikt zijn, zoals operating systems, compilers, loaders en assamblers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Compilers

A

Een programma dat high-level programming languages vertaalt naar assambly language

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Instructies

A
  • de commando’s die we aan een computer geven
  • collecties van bits
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Machine language → Assembly language

A
  • vertaalt door een assambler
  • beter, maar nog steeds niet bruikbaar
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Assambly language → high level programming language

A
  • vertaalt door compiler
  • Java, Python, C, …
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Voordelen van high-level programming language

A
  • programmeur kan denken in meer natuurlijke taal
  • talen ontwerpen voor hun bedoelde gebruik
  • productiviteit hoger
  • programma’s onafhankelijk van hardware
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Onderliggende hardware

A

Voert dezelfde basis instructies uit in elke computer

Input devices

  • bv. toetsenbord

Output devices

  • bv. microfoon
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

5 klassieke componenten van een computer

A

1) input

  • schrijft data naar het geheugen

(2) output

  • leest data van het geheugen

(3) memory/geheugen

  • slaat data op

(4) control

  • stuurt signalen die alle andere componenten controleren

(5) datapath

  • haalt/stuurt instructies en data van het geheugen
    Datapath + control = processor
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

DRAM

A

Dynamic random-access memory
- geheugen gebouwd als een integrated circuit
- voorziet random access aan eender welke locatie
- niet sequentieel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Graphics Display

A

I/O apparaat

Liquid crystal displays (LCD)

  • meest gebruikte display
  • dun en laag verbruik
  • niet de bron van licht, maar controlleert het
  • gebruiken meestal actieve matrix (pixels, bit map)
  • computer hardware support: rooster ververs buffer en kader buffer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Touchscreen

A

Voornameling gebruikt voor PMD’s

Vervangt de muis en het toetsenbord

  • voordelen: direct verwijzen naar ineteresses, i.d.p.v. indirect

Capacative sensing

  • mensen zijn geleiders
  • electrostatische energie verandert in de buurt van mensen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Integrated circuits
Ook wel gekend als chips Actieve deel van de computer - bevat de datapath en de control - voert instructies uit
26
CPU
central processing unit
27
Memory
Waar programma’s worden gehouden als ze lopen
28
Cache memory
- klein, snel geheugen - buffer voor DRAM - gebouw met SRAM: static random-access memory
29
SRAM
Static random-access memory - geheugen gebouwd als een integrated circuit - sneller, maar minder dicht dan DRAM
30
Application binary interface
ABI - gebruikers portie ISA + OS interface gebruikt door programmeurs - definieert de standaard voor binaire draagbaarheid over verschillende computers
31
Instruction set architecture
ISA - Bevat alles dat programmeurs moeten weten om binary laguage programma correct te laten werken (instructies, registers, geheugen access, I/0, ...) - Functies kunnen onafhankelijk gemaakt worden van de hardware
32
Operation system
bevat de lage-level functies, zodat programmeur daar niet aan moet denken
33
Verschil tussen architectuur en implementatie van architectuur
een implementatie is hardware die luistert naar de architectuur
34
Volatile memory
- opslag zoals DRAM dat de data behoudt - Als het stroom verliest, vergeet het alles
35
Non-volatile memory
- houdt data bij zelfs als het power verliest - gebruikt om programma’s op te slaan tussen runs
36
main memory / primary memory
- volatile memory - houdt porgramma' en data bij tijdens runnen - gewoonlijk DRAM op hedendaagse computers
37
secondary memory
- non-volatile memory - houdt programma's en data bij tussen runs - gewoonlijk flash memory in PMD’s - gewoonlijk magnetic disks in servers
38
Magnetic disks/harde schijf
- vorm van niet-volatiel geheugen - samengesteld uit roterende plattaren bedekt met een magnetisch registratiemateriaal
39
Netwerken (+ voordelen)
Connecteren computers met elkaar Verschillende voordelen - Communicatie: informatie wordt gedeeld tussen computers aan hoog tempo - Rescource sharing: computers kunnen I/O apparaten delen - Nonlocal access: gebruiker moet niet in de buurt zijn van te gebruiken computer Varriatie in lengte en performantie - kost communicatie stijgt met snelheid en afstand
40
Local area network
- bv. ethernet (populairste type netwerk) - netwerk ontworpen om data te verspreiden binnen een geographisch beperkt domein (meestal een enkel gebouw) - kunnen routing diensten en veiligheid voorzien
41
Wide area network
- een netwerk dat zich verspreid over honderden kilometers (kan een heel continent zijn) - backbone van het internet
42
Transistoren
- on/off switch, gecontrolleerd door elektriciteit - vele honderden op een chip
43
Very large-scale integrated (VLSI) circuit
een apparaat dat honderen of duizenden tot miljoenen transistoren bevat
44
Integrated chips manifactureren
1. Silicone 2. Silicone crystal ingot 3. Blanco wafers 4. Wafers met patroon 5. Geteste wafer 6. Died 7. Verpakte dies
45
Integrated chips - defects
- komen bijna altijd voor in wafers (met patronen) - microscopische fout in wafer, dat een hele die kan verpesten
46
Integrated chips - yield
percentage goeie dies van het totale aantal dies op een wafer
47
performantie
Noden verschillen van gebruiker tot gebruiker - Individuele gebruikers: gereduceerde response time (ook wel executie tijd genoemd), de tijd tussen de start en het volbrengen van een taak - Datacenter managers: thoroughput of bandwidth, het totale werk dat gedaan wordt binnen een bepaalde tijd
48
Formule performantie computer X
- performantie X = 1/executietijd X - improve performantie: performantie verhogen - improve executietijd: executietijd verlagen
49
Performantie meten
Tijd - de maat van computer performantie - programma executie tijd gemeten in seconden per programma Definiëren van tijd - muur klok tijd, response tijd, elapsed time (verstreken tijd): totale tijd om een taak te volbrengen - verschil tussen elapsed time en CPU time
50
CPU time
- tijd die de CPU spendeert op 1 specifieke taak, telt tijd wachten I/O en andere programma’s neit mee - User CPU time: tijd gespendeerd in een programma - System CPU time: tijd gespendeerd in het operating system voor het programma - System performantie: elapsed time op een ongeladen systeem - CPU performantie: user CPU time (focus van dit hoofdstuk)
51
Clock cycles
- de tijd tussen twee instructies op de transistor - andere namen: clock ticks, ticks clock periods, clocks, cycles - Lengte van een clock period: tijd voor een complete clock cyclus - Clock rate; inverse van de clock periode - **Seconds/programma = cyclus/programma x seconds/cyclus**
52
CPI
Clock cycles per instructie - gemiddeld aantal clock cycles per instructie - voorziet een manier om twee verschillende implicaties van dezelfde ISA’s te vergelijken
53
CPI executie tijd voor een programma is een component van performantie, welke maateenheid gebruikt het?
Seconden voor het programma
54
Instruction count is een component van performantie, welke maateenheid gebruikt het?
Instructies uitgevoerd voor het programma
55
Clock cycles per instructie (CPI) is een component van performantie, welke maateenheid gebruikt het?
Gemiddeld aantal clock cycles per instructie
56
Clock cycle time
Seconden per clock cycle
57
Het algoritme is een software component, op welke aspecten van performantie heeft het invloed en hoe?
Heeft invloed op: instruction count, CPI Determineert aantal bron programma instructies geëxecuteerd ⇒ processor instrucite geëxecuteerd. Kan ook de CPI beïnvloeden door snellere of tragere instructies te gebruiken.
58
De programmeertaal is een software component, op welke aspecten van performantie heeft het invloed en hoe?
Heeft invloed op: Instruction count, CPI Beïnvloedt instructie count doordat verklaringen in de taal vertaald worden naar processor instructies ⇒ determineren instructie count. Kunnen ook de CPI beïnvloeden door zijn kenmerken.
59
De compiler is een software/hardware component, op welke aspecten van performantie heeft het invloed en hoe?
Heeft invloed op: Instruction count, CPI De efficiëntie van de computer beïnvloedt zowel de instruction count als CPI omdat de compiler determineert hoe de bron taal instructies te vertalen naar computer instrucites.
60
De Instruction set architecture is een software/hardware component, op welke aspecten van performantie heeft het invloed en hoe?
Heeft invloed op: Instruction count, clock rate, CPI Beïnvloed de drie aspecten van performantie, omdat het de instructies die nodig zijn voor een functie, de duur van cycles voor elke instructie en de algemene clock rate van de processor beïnvloedt.
61
De Power Wall
Clock rate en power groeiden snel, maar recent afgevlakt - Praktische power limiet voor het afkoelen van microprocessoren Energie - Meest waardevolle bron in post-PC era - Vermogen velagen: probleem → voltage kan niet meer lager (vanwege lekken) - Energy & 1/2 x Captive load x voltage Oplossing - 1 processor → multiple core processor (bv. 4 core)
62
Quadcore micoprocessors
Werken apart niet even snel als 1 grote Verbettering programma’s door parallellisme - gebruik maken van elke processor apart in code - moeilijk: moet correct zijn, belangrijke problemen oplossen, nuttige interface aan mensen of andere programma’s die het oproepen en ook nog eens snel zijn - Communicatie en overheadsyncronisatie verbeteren