Archief - INFO: Advanced hardware tutorials [21/07/2009]

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

apa

Legacy Member
Deze sticky maak ik aan na meerdere vragen naar een sticky over ge-avanceerde topics doorheen de threads op dit forum.

In deze sticky zullen verschillende hardware-componenten besproken worden. Deze eerste post doet dienst als inhoudstafel naar de afzonderlijke onderwerpen die behandeld worden.
  1. Central Processing Unit (CPU) (by apa):
    * 21/07/2009: reactie-mogelijkheid toegevoegd
    * 27/04/2008: gedeelte "32-bit vs. 64-bit" toegevoegd
    * 29/08/2005: gedeelte over instructiesets uitgebreid met RISC/CISC
    * 16/08/2005: eerste versie
  2. Random Access Memory (RAM) (by apa):
    * 21/07/2009: reactie-mogelijkheid toegevoegd
    * 01/09/2005: eerste versie
  3. Storage (HDD) (by apa):
    * 21/07/2009: reactie-mogelijkheid toegevoegd
    * 30/11/2005: eerste versie
    * 08/06/2006: typo gecorrigeerd (thnx aan dreet'n)
  4. Monitors (part I) (by apa):
    * 21/07/2009: reactie-mogelijkheid toegevoegd
    * 09/02/2006: eerste versie (een 2de deel volgt nog ;))
  5. Monitors (part II) (by apa):
    * 21/07/2009: reactie-mogelijkheid toegevoegd
    * 21/06/2009: sterk vereenvoudigd
    * 05/06/2006: eerste versie
P.S.: Heb je zelf een artikel die je hier wil laten opnemen: aarzel dan niet deze te posten in het forum en de hardware-crew een seintje te geven!

apa

Legacy Member
[size=+1]CENTRAL PROCESSING UNIT (CPU)[/size]

Productie:
De productie begint met silicium-dioxide (ofte: ordinair zee-zand; hierna aangeduid als "silicium"). Silicium is een halfgeleider van elektriciteit.

Het silicium wordt in een eerste fase gezuiverd, gesmolten en laat men vervolgens terug stollen. Het resultaat zijn grote silicium-kristallen die men "boules" noemt. Iedere "boule" heeft een diameter van ongeveer 20cm, is meer dan 1m25 lang en weegt meerdere honderden kilo's.

In de volgende stap wordt de boule verwerkt tot een perfecte cilinder met een doorsnede van 200mm. Van de cilinder worden vervolgens dwarssneden genomen (die we wafers noemen). De wafers worden vervolgens gepolijst tot ze een spiegelachtig oppervlak krijgen.

Op de wafer wordt nu een laag lichtgevoelig materiaal aangebracht (die foto-resist heet). Deze foto-resist wordt oplosbaar wanneer het wordt blootgesteld aan ultraviolet licht.

De wafer wordt nu in een toestel geplaatst waarin de circuits op de wafer worden getraceerd (we noemen dit foto-litografie). Hiervoor wordt een zgn. masker gebruikt. Op dat masker staat de volledige blue-print voor de wafer vergroot uitgetekend. Het masker wordt beschenen met ultraviolet licht. Het licht gaat nu doorheen een systeem van lenzen en spiegels waardoor het beeld verkleind wordt om uiteindelijk de wafer te beschijnen.

Het foto-resist wordt nu oplosbaar op alle beschenen plaatsen, maar blijft hard op de donkere plaatsen. De oplosbare foto-resist wordt nu opgelost d.m.v. bepaalde chemicaliën. Wat overblijft is een wafer met dezelfde (doch verkleinde) circuits uitgetekend als op het masker. Deze wordt nu weggeëtst (we noemen dit etching). Het resultaat is een reeks richels over de wafer waar de circuits moeten plaatsnemen.

Een oplossing met ionen wordt nu over de wafer gestuurd (dit heet ion transplantation of doping). Uiteindelijk nemen die ionen plaats in de richels. Deze ionen zijn elektrische geleiders. In moderne processoren wordt hiervoor koper gebruikt (in oudere productie-procédés was dit aluminium).

Moderne CPU's bestaan uit circuits aangebracht op meerdere lagen binnen de chip (dit zijn de layers). Voor iedere laag wordt een apart masker aangemaakt en de wafer gaat dus meermaals het foto-litografie proces door vooraleer het afgewerkt is. Na iedere laag wordt terug een laagje silicium over de vorige laag aangebracht en worden de vorige stappen opnieuw uitgevoerd. Dit gaat door tot alle lagen aangebracht zijn.

Met één wafer worden zo veel chips geproduceerd als mogelijk. Omdat de wafer cirkelvormig is en de chips rechthoekig zijn, gaat er (aan de randen) steeds een stuk wafer verloren. De chips worden uit de wafer gesneden d.m.v. een diamanten zaag.

Door imperfecties in het productieproces zijn niet alle geproduceerde chips zijn identiek. Sommige chips zullen te veel van het standaard-ontwerp afwijken en zullen daarom niet bruikbaar zijn. De verhouding van het aantal werkende chips op het totaal aantal geproduceerde chips op 1 wafer noemen we de yield. Bij nieuw ontwikkelde chips die voor het eerst geproduceerd worden, is de yield vaak lager dan 50%. Na verbeteringen in het design van de chip (de maskers) en in het productieproces, stijgen de yields dan weer.

De zo geproduceerde chips worden nu op een verpakking aangebracht (die we het substraat noemen). Deze verpakking zorgt ervoor dat de chip kan communiceren met andere onderdelen. Het gekozen type verpakking hangt o.m. af van de snelheid waaraan de chip moet kunnen werken.

Het productieproces is natuurlijk niet iets statisch. De grote spelers op deze markt (Intel, TSMC, UMC, AMD, ...) ontwikkelen continu nieuwe technieken om kosten te besparen en beter presterende chips te produceren.
Een belangrijke (en bekende) kenmerk van een productieproces is de graad van miniaturisatie. Deze wordt aangeduid d.m.v. de lengte van de gebruikte transistoren. Bekende maten daarin zijn 180nm, 130nm, 90nm en 65nm. Deze techniek verlaagt de vereiste werkstroom van een chip en verhoogt ook het aantal geproduceerde eenheden per wafer. Aangezien de prijs van de wafer dezelfde blijft ongeacht het productieproces, zal de prijs per geproduceerde chip dalen. Miniaturisatie is dus ook een kostenbesparende techniek.
Andere toegepaste technieken dienen dan weer om de efficiëntie van de chip te verhogen. Recente ontwikkelingen hierin zijn o.m. Silicon On Insulator van AMD/IBM of Strained Silicon bij Intel.

Deze uitleg is gebaseerd op een eigen vertaling en interpretatie op basis van deze bron.

Meer over chip-verpakkingen kan je hier nalezen.



Instructiesets:
Een processor voert instructies uit. Een processor ondersteunt slechts een beperkt aantal instructies. De verzameling van instructies die door een CPU uitgevoerd kunnen worden noemen we de instructieset van die CPU.

De meerderheid der desktop CPU's ondersteunt de IA32 instructieset. Dit is een instructieset die ontwikkeld werd door Intel. AMD (e.a.) hebben deze instructieset in licentie genomen en produceren zelf CPU's die diezelfde instructieset ondersteunen.

Wanneer een processor data nodig heeft om een bepaalde instructie op uit te voeren, dan haalt de processor die data uit het RAM. Het RAM geheugen wordt daartoe ingedeeld in vakjes van elk 1 Byte groot. Al deze vakjes krijgen een nummer. Het maximaal aantal vakjes dat kan bestaan wordt eveneens bepaald door de instructieset (we noemen dat de Word-lengte). Voor gemaksredenen zijn dit steeds machten van 2. Voor de IA32 instructieset is de Word-lengte 32-bit wat betekent dat er 2^32 vakjes gedefinieerd kunnen worden in het geheugen. Op basis hiervan kan je bepalen hoeveel geheugen een IA32 computer maximaal kan aanspreken:
Code:
2^32 = 4294967296 Byte = 4 GB

AMD heeft IA32 verder uitgebreid en onder de naam AMD64 op de markt gebracht. AMD64 heeft o.m. de Word-lengte verhoogd tot 64-bit. Voor het geheugen worden momenteel echter "slechts" 40-bit adressen gebruikt. De maximale hoeveelheid RAM voor een AMD64 computer wordt dan:
Code:
2^40 = 1099511627776 Byte = 1 TB

Instructiesets kunnen geïmplementeerd worden op 2 verschillende manieren:
  • Reduced Instruction Set Computer (RISC): voor iedere uitvoerbare instructie bevat de processor afzonderlijke circuits. Dit betekent dat een RISC-processor verschillende instructies tegelijkertijd kan uitvoeren. Het betekent echter ook dat de instructieset gewoonlijk beperkt gehouden wordt. Een groot aantal instructies betekent namelijk dat de processor erg veel circuits/transistoren zal vereisen wat de kosten de pan doet uitschieten.
  • Complex Instruction Set Computer (CISC): een instructie bestaat uit meerdere logische bewerkingen. Veel van die opeenvolgingen van logische bewerkingen komen voor in meer dan 1 instructie. In een CISC-architectuur wordt maximaal hergebruik nagestreefd: een bepaalde combinatie van bewerkingen komt slechts 1 keer voor in de processor. Dat betekent meteen dat het erg moeilijk is om meerdere instructies tegelijk uit te voeren op een CISC processor. Het performance-verlies door het beperkte parallellisme wordt gecompenseerd doordat de uitvoerbare instructies erg complex kunnen zijn en dat een RISC-processor daarvoor vaak meerdere instructies moet combineren.
Tegenwoordig komen deze 2 implementatiewijzen nagenoeg nooit meer in zuivere vorm voor. Vroegere CISC architecturen vertalen de complexe instructies vaak naar eenvoudigere varianten om die dan door een RISC-architectuur te sturen (d.i. ondermeer zo in alle moderne x86-processoren sinds de Intel Pentium). RISC processoren ondersteunen dan weer een aantal complexere instructies die op hun beurt vertaald worden naar eenvoudige RISC instructies om in één keer uitgevoerd te kunnen worden.



Performance:
De CPU is het brein van een computer. Het voert instructies uit op gegevens (=input) en geeft nieuwe of bijgewerkte gegevens als resultaat (=output).

Alle moderne CPU's zijn synchrone chips: ze voeren nuttig werk uit aan een vast en continu ritme. Het ritme wordt aangeduid door de frequentie (="het aantal keer per seconde dat werk verricht kan worden"). De frequentie wordt in een computer aangegeven door een klok; daarom spreken we hier van de klokfrequentie (uitgedrukt in Hertz of een veelvoud daarvan (MegaHertz of GigaHertz). Hoe hoger de klokfrequentie van een bepaalde chip, hoe meer werk die per seconde kan verrichten en hoe performanter die is.

De kloksnelheid is een goede maatstaf om verschillende geklokte chips te vergelijken voor zover die chips verder identiek zijn. De kloksnelheid is echter een slechte maatstaf wanneer verschillende chip-architecturen met elkaar vergeleken worden.

De performance van een processor wordt ruwweg in 2 componenten onderverdeeld:
  • Het aantal keer per seconde dat de processor nuttig werk kan verrichten. Dit noemen we de kloksnelheid en wordt gemeten in Hz (of een factor daarvan zoals MHz of GHz).
  • De hoeveelheid werk dat de processor in 1 keer (dus in 1 kloktik) kan verrichten. Dit noemen we de IPC-graad (staat voor Instructions Per Cycle) en wordt aangeduid d.m.v. een reëel getal. Dit getal is trouwens nooit absoluut meetbaar; je kan enkel het maximum aangeven. Eventueel zou je het gemiddelde kunnen berekenen voor een bepaalde reeks bewerkingen.
Beiden worden bepaald door de architectuur van de processor. Eenvoudig gesteld verwerkt een processor instructies op data om verwerkte data als uitvoer te geven. In moderne processoren wordt een instructie opgedeeld in deel-instructies. Iedere deel-instructie wordt dan na elkaar uitgevoerd door een onderdeel van de processor (die we de pipeline stage noemen). Alle pipeline stages worden door alle instructies in een vaste volgorde doorlopen. De volledige opeenvolging van doorlopen stages noemen we de execution-pipeline. Eens alle stages van de execution-pipeline doorlopen zijn, is de instructie afgehandeld. De regel is dat iedere deel-instructie binnen 1 kloktik van de processor uitgevoerd moet kunnen worden. Op deze manier werkt een processor aan meerdere instructies tegelijkertijd (iedere pipeline stage kan werken aan een deel-instructie van een verschillende instructie).

Uit deze uitleg moet het duidelijk zijn dat de kloksnelheid van de processor bepaald wordt door de deel-instructie die de meeste tijd inneemt (d.i. de bottleneck).

Stel dat een ontwerper de maximaal haalbare kloksnelheid wil verhogen, dan kan die op zoek gaan naar de langzaamste deel-instructie en die optimaliseren. Stel dat die deel-instructie na optimalisatie nog steeds de langzaamste instructie is, dan kan de ontwerper kiezen om die deel-instructie op te splitsen in 2 deel-instructies. We zeggen dan dat de execution-pipeline verlengd wordt. De bedoeling is dat de 2 deel-instructies nu elk apart minder tijd innemen dan de oorspronkelijk deel-instructie (ideaal nemen beide deel-instructies 50% in van de oorspronkelijke deel-instructie).

Dit is de techniek die Intel gebruikt heeft bij het ontwerpen van de Pentium4 architectuur. Bij iedere nieuwe generatie Pentium4 heeft Intel deze techniek verder gebruikt en is de execution-pipeline sinds de eerste Pentium4 (de zgn. Wilamette core) verlengd van (dacht ik) een 20-tal stappen tot nu meer dan 30 in de Prescott-core.

Het nadeel van deze techniek is dat deze een zwaar negatieve invloed heeft op de tweede component van de performance (de IPC). Een programma bestaat uit een hele reeks instructies die achtereenvolgens (in een welbepaalde volgorde) uitgevoerd moeten worden. Sommige instructies in dat programma worden meermaals uitgevoerd (we noemen dit een iteratie/herhaling) en andere mogen pas uitgevoerd worden wanneer aan een conditie voldaan is (we noemen dit een selectie).

Wanneer de processor een selectie tegenkomt (we noemen dit een branch), dan moet in principe gewacht worden op de uitkomst van de selectie vóór de volgende instructies uitgevoerd worden. De selectie wordt opgesplitst in deel-instructies die elk 1 kloktik in beslag nemen. Op een processor met 30 deel-instructies, zal het "evalueren" van de conditie dus zeker 30 kloktikken in beslag nemen. De volgende instructie wordt pas nadien uitgevoerd waardoor de uitkomst ervan weer pas na 30 kloktikken verkregen wordt.

Om dit performance-verlies te beperken passen ontwerpers een truukje toe. Deze bestaat erin de uitkomst van de conditie te voorspellen (we noemen dit "branch prediction"). Op basis van die voorspelling voert de processor meteen ook de instructie (of opeenvolging van instructies) uit die hoort bij die uitkomst van de voorspelling. De selectie wordt m.a.w. door de execution-pipeline gestuurd en de eerstvolgende instructie die uit de execution-pipeline komt is de instructie die volgt op de voorspelde selectie-uitkomst.

Werd het resultaat van de conditie correct voorspeld, dan zijn de volgende instructies vrijwel meteen uitgevoerd na de evaluatie van de conditie.
Is het resultaat van de conditie verkeerd voorspeld, dan moet de correcte instructie (of opeenvolging van instructies) uitgevoerd worden. De correcte instructie moet dan nog alle pipeline stages doorlopen eer die uitgevoerd is. De kost van een verkeerde voorspelling is gelijk aan het aantal pipeline stages (in de Prescott is dat 30; je verliest dus 30 kloktikken bij iedere verkeerde voorspelling).

Natuurlijk kan het aantal voorspellingsfouten ingeperkt kunnen worden door een beter voorspellingsalgoritme te gebruiken. Maar geen enkel voorspellingsalgoritme is feilloos en er gebeuren dus zowieso voorspellingsfouten. Bij een processor met veel pipeline stages zal zo'n fout meer kosten dan bij een processor met weinig stages.

Zoals je nu kan inzien zal iedere foute voorspelling de hoeveelheid nuttig uitgevoerd werk per kloktik (IPC) sterk verlagen bij iedere foute voorspelling. De huidige Pentium4 heeft ongeveer 30 pipeline stages. De Pentium-M heeft er zo'n 12 à 13. De AthlonXP had er 10 en de Athlon64 heeft er 12. Op het IPC-vlak heeft de AthlonXP dus de beste troeven in handen. Dat de Athlon64 en de Pentium-M op gelijke kloksnelheid beter presteren ligt aan diverse andere optimalisaties (een beter voorspellingsalgoritme, ...) die de IPC opvoeren.



32-bit vs. 64-bit:
Je kan zoveel RAM stoppen in je systeem als je moederbord ondersteunt; of je nu een 32-bit operating system gebruikt of een 64-bit versie. Een 32-bit OS kan in principe niet meer dan 4 GB geheugen adresseren, maar er bestaan een aantal truukjes (ik heb het over Physical Address Extension (PAE)), maar die worden niet gebruikt/ondersteund op de meeste desktop-systemen (ik zou het ook niet aanraden).

De beperking van hoeveelheid geheugen komt van het feit dat iedere stukje geheugen een eigen "adres" moet krijgen. Een 32-bit systeem heeft 2^32 adressen (ofte 4294967296 verschillende adressen). Ieder stukje geheugen is 1 byte groot en je kan met een 32-bit systeem dus 4294967296 bytes aanspreken (of 4 GB).

In werkelijkheid zal je echter altijd minder dan 4 GB effectief kunnen gebruiken op een 32-bit systeem. Dat komt doordat een aantal andere onderdelen ook adressen nodig hebben (die uit dezelfde "adressenbak" wordt gehaald). Het gaat hier niet om de hoeveelheid geheugen op je videokaart, maar eerder over alle devices die via Direct Memory Access communiceren met je systeem (PATA/SATA controller, netwerkkaart, geluidskaart, ...). Uiteindelijk kan je ongeveer 3 à 3,5 GB maximaal effectief benutten...

Een 64-bit systeem kent in totaal 2^64 adressen (= 18446744073709551616) waarmee je 17179869184 GB kan adresseren (opnieuw verlies je ongeveer zo'n 0,5 à 1 GB door de DMA devices; maar dat zal je vermoedelijk niet merken tenzij je zoveel RAM in je systeem zou stoppen).

Een verdere beperking van de hoeveelheid RAM die effectief gebruikt kan worden komt van Windows. De 32-bit versie van Windows kan immers niet meer dan 2 GB voor programma's gebruiken. De rest van het RAM wordt dan gebruikt voor cache en andere systeem-processen. Ieder programma kan ook niet meer dan 2 GB geheugen gebruiken (als je geen 2 GB RAM over hebt, dan kan een programma toch 2 GB aanspreken -> pagefile).

Naast het feit dat een 64-bit operating system met veel meer RAM om kan, verdwijnt de beperking van 2 GB RAM voor programma's en de beperking van 2 GB per programma. Verder kan de CPU met grotere getallen werken dan voorheen waardoor die, voor zwaar wiskundige berekeningen, sneller kan werken (32-bit processoren moeten de berekeningen dan in meerdere stappen uitvoeren). AMD heeft er bij de overgang naar 64-bit ook voor gezorgd dat de processor met 2x zo veel data tegelijk kan werken. Voor bepaalde toepassingen kan dat dus een performance-verbetering verbeteren.

Op zich lijkt 64-bit tot hier de enige goede keuze. Echter:
  • Om van alle voordelen te genieten moet je ook 64-bit programma's draaien. 32-bit programma's/games zullen op een 64-bit operating system in "emulatie-mode" draaien. Daardoor verlies je een beetje performance. Bovendien verval je terug in de beperking van 2 GB per programma... In werkelijkheid is het performance-verlies klein en nagenoeg niet merkbaar.
  • In 64-bit mode verbruikt ieder programma ook iets meer geheugen dan voorheen. Je moet rekenen op zo'n 20% à 30% extra geheugenverbruik (omdat ieder "adres" die je in je RAM zet 2x zo veel plaats neemt als voorheen). Door dit verschil zal je nagenoeg geen verschil merken tussen 4 GB op een 32-bit operating system (waarvan je zo'n 3 à 3,5 GB kan gebruiken) en 4 GB op een 64-bit operating system.
  • Een 64-bit operating system vereist 64-bit drivers. Voor nieuwe hardware is dat minder een probleem, maar oudere hardware is heel wat minder zeker.

*** Hier kan je reageren op dit artikel ***

apa

Legacy Member
[size=+1]RANDOM ACCESS MEMORY (RAM)[/size]
Een CPU voert instructies uit op data. Zowel instructies als data worden gecodeerd in bytes. Al deze bytes worden gestockeerd in het RAM. De CPU haalt deze bytes op door aan een memory-controller een bepaald geheugen-adres te vragen. De CPU gebruikt m.a.w. adreslocaties die verwijzen naar specifieke stukken RAM. Een CPU kent enkel adreslocaties die verwijzen naar RAM geheugen. Dat betekent dat geen enkel ander geheugen-medium rechtstreeks aanspreekbaar is door de CPU; data van andere media moet eerst naar het RAM worden overgepompt vooraleer het door de CPU gebruikt kan worden.



Dynamic RAM (DRAM):
DRAM is een type geheugen dat iedere bit opslaat in een condensator. Een condensator is een elektronische component die opgeladen kan worden met elektronen en deze elektronen enige tijd vasthoudt (dit noemt men ook wel het batterij-effect).

In DRAM komt een bitwaarde 0 of 1 overeen met een bepaald aantal elektronen in de condensator. Een bitwaarde 1 wordt opgeslagen door de condensator onder stroom te zetten zodat deze kan opladen. Een waarde 0 wordt dan weer gezet door de condensator volledig te laten ontladen.

Mettertijd ontlaadt een condensator zich. Om te voorkomen dat een opgeslagen waarde verdwijnt, moet de condensator iedere zoveel tijd terug opgeladen worden (we noemen dit de refresh). Dat is de reden waarom dit type RAM als dynamic wordt aangeduid. Om heropgeladen te worden heeft DRAM natuurlijk ook stroom nodig: zonder stroom gaat de opgeslagen data verloren. We noemen DRAM daarom ook wel volatiel geheugen.

De circuits nodig om 1 bit vast te houden noemen we een geheugencel. In DRAM zijn geheugencellen meestal georganiseerd in tabellen van 1024 op 1024 cellen (vergelijkbaar met een Excel-sheet).

Data kan enkel per rij in de tabel gelezen of geschreven worden.
Wanneer 1 bepaalde cel uit het DRAM gelezen moet worden, dan wordt de hele rij uitgelezen naar een buffer en de gevraagde cel als resultaat doorgestuurd. Diezelfde (volledige) rij wordt vervolgens meteen terug weggeschreven om te voorkomen dat de uitgelezen capacitoren te veel elektronen zouden verliezen.
Wanneer data naar 1 bepaalde cel in het DRAM weggeschreven moet worden, dan wordt de hele rij uitgelezen naar een buffer. De te wijzigen cel wordt in de buffer gewijzigd en de hele rij (uit de buffer) wordt terug weggeschreven.

DRAM fabrikanten specifiëren dat iedere cel op vaste intervallen ververst moet worden. Vaak gebeurt dit om de 64ms of vaker. Iedere rij in een tabel wordt beurtelings ververst. Een teller houdt bij welke rij als volgende ververst moet worden. In het geval van een tabel van 1024x1024 cellen wordt een rij dan ververst iedere 0,0625ms (= 64ms / 1024).

Zoals alle elektronische circuits heeft ook DRAM last van elektromagnetische interferentie (EMI). EMI is een straling die, wanneer die in aanraking komt met een geleider, invloed uitoefent op de elektronen binnen die geleider. Wanneer EMI in aanraking komt met DRAM cellen dan kan die de waarde opgeslagen in de condensator wijzigen waardoor data-corruptie optreedt. Dit soort problemen doet zich in normale omstandigheden zelden voor en daarom worden geen speciale maatregelen getroffen om het te voorkomen.

In gevallen waarbij de data-validiteit erg belangrijk is wordt een fout-controle mechanisme toegepast.
Vroeger gebruikte men daarvoor de parity bit. Per groep van cellen werd onthouden of het aantal 1-cellen even was dan wel oneven. Bij het uitlezen werd gecontrolleerd of dat aantal nog steeds overeenkwam met die parity bit. Deze techniek is natuurlijk zeer beperkt: als er een fout is, dan kan je niet weten welke cel precies fout is en je kan de fout dan ook niet corrigeren; als er 2 fouten zijn in de groep dan zal de parity bit bovendien geen fout detecteren.
Tegenwoordig wordt een techniek gebruikt die Error Correcting Code (ECC) heet. Hierbij wordt een controlegetal gegenereerd op basis van de data aanwezig in de cellen. Met dit controlegetal is het mogelijk fouten te detecteren en (weliswaar beperkt) te corrigeren.

Om data te lezen uit het geheugen splitst een memory controller het adres in 2 delen: het rij-adres en het kolom-adres.
Het rij-adres wordt naar de adres-pinnen van de DRAM gestuurd. De memory controller signaleert dat er een nieuwe opvraging klaarstaat door een row address select (RAS) signaal op te zetten. Intern zal de DRAM nu de specifieke rij ophalen door een verbinding te leggen tussen die rij een reeks versterkers. Door deze verbinding ontladen de condensatoren zich. De ontlading wordt gecapteerd door de versterkers.
De memory controller geeft ondertussen het kolom-adres door aan de adres-pinnen van de DRAM en signaleert dat de kolomopvraging kan gebeuren middels een column address select (CAS) signaal. De DRAM gebruikt dit adres nu om de waarde bij de juiste versterker op te halen. Het resultaat wordt na een bepaalde tijd (die we de CAS access time noemen) terug bij de memory controller afgeleverd.

Het schrijven naar DRAM gebeurt op dezelfde wijze, maar in plaats van data nà de operatie te ontvangen wordt de weg te schrijven data vóór de hele operatie meegegeven.

Na een lees of schrijfoperatie zal het DRAM de RAS en CAS signalen resetten zodat de memory-controller weet dat een volgende operatie mag gebeuren. Dat resetten neemt een bepaalde tijd in die we de precharge interval noemen.

De memory controller kan binnen 1 operatie meerdere kolommen opvragen van eenzelfde rij. Daartoe laat de memory-controller een bepaalde rij selecteren om vervolgens de verschillende kolommen door te sturen vóór het CAS signaal wordt gezet. Eens het CAS signaal gezet zal de DRAM alle gevraagde rijen ophalen. Dit is veel efficiënter wanneer meerdere kolommen van eenzelfde rij opgevraagd worden omdat de rij nu slechts 1 keer opgehaald hoeft te worden. Deze methode wordt veelvuldig gebruikt omdat het vaak voorvalt dat naburige geheugenadressen na elkaar opgevraagd worden.

De bespreking hierboven gaat over een 1-bit systeem. De meest gebruikte DRAM's werken in 4 of 8 bit mode. Daartoe worden de verschillende tabellen van cellen onderverdeeld in arrays. Er is dan 1 array per bit aanwezig.

Deze uitleg is gebaseerd op een eigen vertaling en interpretatie op basis van deze bron.

Wil je meer te weten komen over foutdetectie en -correctie, dan kan je hier terecht.



Static RAM (SRAM):
SRAM verschilt van DRAM doordat de opgeslagen data niet ververst hoeft te worden. SRAM is echter wel volatiel geheugen wat betekent dat het onder stroom moet blijven om de data te bewaren.

Een klassieke SRAM cel bestaat uit 4 transistoren. 2 extra transistoren dienen voor het lezen van en het schrijven naar de SRAM cel. Per opgeslagen bit zijn er in een klassieke SRAM cel 6 transistoren aanwezig om de toegang tot de cel te regelen.

SRAM moet niet ververst worden zoals DRAM. Dat betekent dat er tussen 2 operaties geen delay meer is. Hierdoor is de performance van SRAM veel hoger dan van DRAM.

Bij SRAM wordt iedere cel in 1 keer ge-adresseerd en zijn er dus geen 2 signalen nodig zoals bij DRAM (1 voor kolom-adres en 1 voor rij-adres). Ook dit verhoogt de performance t.o.v. DRAM.

SRAM is relatief duur geheugen (het bestaat uit veel meer componenten dan DRAM). Daarom wordt er vrij spaarzaam mee omgegaan en kom je het enkel tegen wanneer de snelheid ervan echt belangrijk is (zoals in CPU caches, RAMDAC's van videokaarten en netwerk-apparaten).

Deze uitleg is gebaseerd op een eigen vertaling en interpretatie op basis van deze bron.

*** Hier kan je reageren op dit artikel ***

apa

Legacy Member
[size=+1]STORAGE (HDD)[/size]

Harddisk:
Een harde schijf is een magnetisch opslagmedium. Dat betekent dat data opgeslagen wordt in elektrisch geladen deeltjes (elektronen). Deze deeltjes kan je vergelijken met magneten: ze hebben een noord- en zuidpool. Het verschil tussen een 0 en een 1 wordt gemaakt door de oriëntatie van een magnetisch deeltje om te keren.

Als je een harde schijf ontleedt, dan merk je dat die bestaat uit 2 belangrijke delen:
  1. 1 of meer ronde schijven (die we platters noemen) die boven elkaar geplaatst en in het midden vastgemaakt zijn. Het is op deze platters dat de magnetische deeltjes zich bevinden.
  2. 1 lees- & schrijfkop per beschreven platter-oppervlak die over het platter-oppervlak zweeft en voorbij de rand van de platter vastgehecht is aan een bewegingsmotor.
Van zodra de schijf onder stroom komt, beginnen de platters rond hun middelpunt te draaien (we zeggen dat de schijf opspint). Het centrale bevestigingspunt van de platters is onderaan immers aangesloten op een roterende elektromotor. De rotatiesnelheid van de schijven wordt gemeten in aantal rotaties per minuut (rpm). De rotatiesnelheid wordt verhoogd tot deze een bepaald punt bereikt. Die uiteindelijke rotatiesnelheid is afhankelijk van de technologie van de schijf. In desktop-schijven is dit vaak 7200rpm. In notebooks vindt je nog veel 5400rpm schijven en soms 7200rpm schijven. De befaamde Raptor-schijven van Western Digital halen een snelheid van 10000rpm. Professionele schijven halen snelheden van 15000rpm (en soms zelfs meer).

Zoals je wel zult weten, stoten gelijke magneetpolen elkaar af terwijl tegengestelde polen elkaar aantrekken. Het is op datzelfde principe dat gesteund wordt om data weg te schrijven naar en te lezen van een platter. De lees- en schrijfkop bestaat uit een elektrische geleider.
Als de kop zich in leesmodus bevindt en boven een magneetje van de platter bevindt, dan ontstaat een kleine elektrische puls in de kop (dankzij een effect dat elektromagnetische inductie heet). Afhankelijk van de pool van het plattermagneetje die het dichtst bij de leeskop staat zullen de elektronen in de leeskop aangetrokken worden naar het uiteinde van de leeskop dan wel afgestoten worden van dat uiteinde. Op basis hiervan wordt bepaald of de uitgelezen data een 0 dan wel een 1 voorstelt.

Een schijf wordt ingedeeld in concentrische cirkels (een enkele doorlopende lijn die begint in het midden van de schijf en in steeds groter wordende cirkels doorloopt tot de buitenkant van de platter (vergelijk het met de vorm van een slakkenhuis)). Het aantal concentrische cirkels wordt aangeduid door het aantal cylinders of tracks van de schijf.
Een platter wordt in stukken verdeeld door een aantal rechte lijnen die diametraal over de platter getrokken werden. De taartdelen die zo ontstaan noemen we sectoren.
Data wordt op een bepaalde locatie op een schijf weggeschreven. Om deze data later te kunnen ophalen, werd iedere locatie op de schijf voorgesteld door een "adres".

Oude PC's gebruikten adressen die bestonden uit het nummer van de lees- en schrijfkop, het nummer van de cilinder en het nummer van de sector waar de data werd opgeslagen. Deze adresseringstechniek wordt aangeduid als Cylinder-Head-Sector (CHS). Om technische redenen moest ieder tracksegment tussen 2 sector-grenzen een vaste hoeveelheid data bevatten (er werd gekozen voor 512 bytes). Door deze beperking waren CHS schijven beperkt in capaciteit tot 512 MB. Een ander nadeel was dat veel capaciteit verloren ging: de track-segmenten aan de buitenrand van de platter zijn immers langer dan deze dichter bij het middelpunt van de platter... Maar omdat ieder adres een vaste hoeveelheid data bevatte, mocht deze extra capaciteit niet benut worden.

De problemen met CHS werden opgelost met de komst van een techniek die Zone Bit Recording (ZBR) genoemd werd. Deze techniek bestond erin dat er een vaste data-dichtheid gebruikt werd over de hele platter. Omdat de omtrek van de buitenste tracks groter is dan de omtrek van de tracks dichter bij het middelpunt, wordt er meer data opgeslagen op de buitenste tracks dan op de binnenste tracks. Om de data te kunnen lezen zijn er 2 technieken ontwikkeld:
  1. Een lees- en schrijfkop die de lees- en schrijf-snelheid kan variëren over de platter waardoor de lees- en schrijfsnelheid voor de buitenste tracks hoger is dan voor de binnenste tracks.
  2. Een lees- en schrijfkop die enkel een vaste lees- en schrijf-snelheid ondersteunt en waarbij de rotatiesnelheid van de schijf zodanig varieert dat de hoeveelheid data dat voorbij de lees- en schrijfkop per seconde passeert constant blijft.
Hoewel Apple indertijd de tweede methode even getest heeft voor floppy-disks, komen we nu enkel nog de eerste techniek tegen. Deze eerste techniek geeft je meteen ook de verklaring waarom de doorvoersnelheid van een harde schijf niet constant is: data van de binnste tracks wordt langzamer benaderd dan data van de buitenste tracks.

Logical Block Addressing (LBA) is een techniek die oorspronkelijk door SCSI schijven gebruikt werd voor de adressering. Met deze techniek worden de concentrische cirkels ingedeeld in blokken met een vaste capaciteit. Opeenvolgende blokken krijgen met LBA opeenvolgende nummers toegewezen die de adressen voorstellen. LBA wordt tegenwoordig ook gebruikt voor ATA drives.

Redundant Array of Independent Disks (RAID):
Magnetische schijven hebben een aantal belangrijke beperkingen:
  • Betrouwbaarheid: magnetische schijven bevatten een hele reeks bewegende onderdelen. Bewegende onderdelen zijn onderhevig aan mechanische slijtage en daarom alleen al kunnen magnetische schijven na verloop van (een relatief korte) tijd problemen vertonen.
  • Doorvoersnelheid: het aantal MB dat per seconde kan uitgelezen worden is afhankelijk van de rotatiesnelheid van de schijf en de data-dichtheid op de schijf: hoe hoger beiden, hoe hoger de doorvoersnelheid. De data-dichtheid wordt beperkt door de productietechnologie enerzijds en door de gevoeligheid van de lees-/schrijf-kop anderzijds. Ter vergelijking: de betere harde schijven halen tegenwoordig gemiddelde doorvoersnelheden van zo'n 60 MB/s terwijl RAM geheugen probleemloos 3,2 GB/s haalt. Naast het feit dat de gemiddelde doorvoersnelheid laag is, speelt ook het feit dat de doorvoersnelheid niet constant is over de harde schijf: de doorvoersnelheid aan de buitenrand van de schijf is namelijk hoger dan de doorvoersnelheid in het midden van de schijf. Dit zorgt voor extra variabiliteit en onvoorspelbaarheid van de performance van magnetische schijven.
  • Toegangstijden: magnetische schijven draaien aan een vaste snelheid rond en de gegevens die erop opgeslagen zijn kunnen pas benaderd worden wanneer de plek waar de data staat zich precies onder de lees-/schrijf-kop bevindt. In het slechtste geval moet de hele schijf een volledige omwenteling doen vooralleer kan begonnen worden met de data uit te lezen. Deze vertraging noemt men ook de mechanische vertraging omdat die in hoofdzaak te wijten is aan de fysische bewegingen binnen de schijf. Bij een harde schijf spreekt men van toegangstijden van gemiddeld een 10-tal milliseconden. Ter vergelijking: RAM geheugen werkt met toegangstijden van een 10-tal nanoseconden; RAM heeft m.a.w. een toegangstijd dat 1 miljoen maal korter is dan een magnetische schijf.
RAID is een technologie die oorspronkelijk voor de bedrijfswereld ontwikkeld werd om deze problemen aan te pakken.

De basis van RAID-technologie is het combineren van meerdere onafhankelijke schijven voor het verwerken van storage-opdrachten. Eenvoudig gesteld verdeelt men de opgeslagen data over verschillende harde schijven. De logica is nu dat lees/schrijfopdrachten door meerdere harde schijven tegelijk afgehandeld worden. Omdat iedere schijf nu minder werk moet verrichten, is de opdracht sneller afgehandeld.

Om deze techniek onafhankelijk te maken van software-ondersteuning, wordt een fake harde schijf gesimuleerd door de RAID controller. Om dit te bereiken presenteert de RAID controller een reeks opeenvolgende adressen aan de software (alsof het dus 1 enkele harde schijf betreft). Wanneer de software een bepaalde opdracht stuurt voor een bepaald adres, dan bepaalt de RAID controller op welke harde schijf dat adres zich bevindt en welk fysiek adres op die schijf daarmee overeenkomt. De opdracht wordt vervolgens naar die schijf gestuurd.

Op performance-vlak is RAID interessant omdat software gewoonlijk niet 1 enkel adres opvraagt. In software werken we met vrij grote hoeveelheden data (files). Wanneer een file gelezen wordt, stuurt de software leesopdrachten door naar de RAID controller vragend naar adressen waar die file opgeslagen staat. Als het goed is, komen deze adressen overeen met locaties op verschillende schijven en kunnen deze schijven tegelijk aan de opdracht werken.

Zoals je wellicht wel weet, bestaan er verschillende types RAID. Deze verschillen allemaal in de manier waarop de data verdeeld wordt over de onafhankelijke schijven:
  • RAID 0: hier worden de even adressen opgeslagen op de ene schijf terwijl de oneven adressen op de andere schijven opgeslagen worden. RAID 0 is de performantste en is bovendien eenvoudig te implementeren. Het nadeel ervan is dat het ook de minst betrouwbare is: de kans op een crash is immers verdubbeld t.o.v. single-disk systemen (als 1 schijf crasht, dan ben je de data van beide schijven kwijt: je bent immers niets met enkel de data van de (on)even adressen).
  • RAID 1: hier worden alle adressen op iedere schijf neergeschreven. Dit betekent dat alle schijven alle data bevatten. RAID 1 is de meest betrouwbare (als 1 schijf crasht kan je gewoon verderwerken met de overige schijf) en is de eenvoudigste te implementeren. Het nadeel is dat het wegschrijven van data even traag gaat als bij single-disk systemen (het lezen gaat echter sneller).
  • RAID 5: hier worden de adressen verdeeld over minstens 3 schijven. Op iedere schijf wordt, naast de eigen data, een deel van de capaciteit ingenomen door data van de overige schijven (we noemen dit redundante data). De bedoeling is dat een RAID 5 systeem een crash van 1 schijf kan overleven. De verloren gegane data kan in zo'n systeem gereconstrueerd worden door de redundante data op de andere schijven. RAID 5 is zowel performanter als betrouwbaarder dan een single-disk systeem.
(informatie over de overige RAID types kan je o.m. hier vinden)

Het is erg belangrijk te beseffen dat RAID niet alle problemen van harde schijven oplost. Van de 3 probleemgebieden (betrouwbaarheid, doorvoersnelheid en toegangstijden) worden enkel de 2 eerste verholpen.

Waarom worden de toegangstijden niet verlaagd? Wanneer de RAID controller opdrachten verdeelt over verschillende harde schijven, zullen al die harde schijven hun opdrachten tegelijkertijd beginnen uitvoeren. De toegangstijd is de tijd die nodig is opdat de lees- en schrijfkop zich boven het eerste gevraagde adres begeeft. Als de gemiddelde toegangstijd van iedere schijf gelijk is (neem 10ms als voorbeeld), dan zal het gemiddeld diezelfde tijd duren eer het hele RAID systeem aan de opdracht kan beginnen (het duurt immers gemiddeld 10ms eer de lees- en schrijfkop van de eerste schijf zich op de gewenste positie begeeft).

De doorvoersnelheid wordt wel verhoogd omdat, eens de lees- en schrijfkoppen van de individuele schijven zich op de juiste plaatsen hebben bewogen, de schijven allen tegelijk data beginnen uit te spuwen. Het aantal MB/s van de ene schijf kan je dan optellen bij het aantal MB/s van de andere schijven...

Het betrouwbaarheidsaspect wordt verbeterd zoals vermeld in het overzicht van de RAID types.

Dit artikel werd deels gebaseerd op deze bron.

*** Hier kan je reageren op dit artikel ***

apa

Legacy Member
[size=+1]MONITORS (part I)[/size]

Algemeen:
De monitor is gewoonlijk het belangrijkste output-apparaat van een computer. De bedoeling van een monitor is beelden weer te geven. Daartoe beschikt een monitor over een groot aantal oplichtende punten die we pixels noemen. Door opeenvolgende pixels te laten oplichten, krijgen we een (min of meer) vloeiende vorm te zien. Door de lichtintensiteit van de afzonderlijke pixels te variëren, krijgen we de illusie van diepte in het beeld.

Hoewel dat moeilijk te geloven lijkt, registreren onze ogen geen continu kleurenspectrum. Het netvlies in onze ogen bevat staafjes en buisjes die gevoelig zijn voor een van drie kleuren: Rood, Groen en Blauw (RGB). Deze drie kleuren noemen we basiskleuren. We noemen ze zo omdat je alle mogelijke kleuren kan reproduceren door de basiskleuren in de juiste verhoudingen met elkaar te mengen. Onze hersenen interpreteren de proporties rood, groen en blauw en vertalen dat naar een bepaalde kleur.

Monitors werken evenmin met een continu kleurenspectrum: ook daar wordt met variërende proporties aan basiskleuren gewerkt. Hoewel er nog andere basiskleuren bestaan dan rood, groen en blauw (o.a. cyaan, geel en magenta) wordt bij monitoren doorgaans ook met diezelfde basiskleuren gewerkt. De reden is dat deze het beste overeenstemmen met het doel van de monitor: beelden voor het menselijk oog genereren. Monitors zenden enkel rode, groene en blauwe lichtstralen uit. De reden waarom we andere kleuren waarnemen van het scherm ligt aan de beperkte resolutie van onze ogen. Ons netvlies bevat een hoge doch beperkte dichtheid aan receptoren om kleuren waar te nemen. Wanneer de dichtheid van de lichtstralen die de monitor uitstraalt hoger is dan de dichtheid van de receptoren op ons netvlies, kunnen onze hersenen de rode, groene en blauwe lichtstralen niet meer onderscheiden en worden deze gezien in proporties die een andere kleur vormen.

Computers verwerken digitale informatie. Het beeld dat getoond moet worden, wordt daarom in digitale vorm gegenereerd. Afhankelijk van het type monitor dat gebruikt wordt, kan het digitale beeld rechtstreeks getoond worden of moet het eerst omgezet worden in analoge signalen. Om de voor- en nadelen van beide te begrijpen, is het belangrijk het verschil tussen beide vormen te begrijpen.

Analoog vs. digitaal:
Men zegt wel eens dat een digitaal signaal uit opeenvolgende nullen en enen bestaat terwijl analoge signalen continue waarden kunnen aannemen... Dit klopt striktgenomen niet: het gaat in beide gevallen namelijk om (vaak) elektrische signalen. Als je de signalen zelf zou analyseren, dan zou je geen fysisch verschil zien tussen een analoog signaal en een digitaal signaal.

Het onderscheid tussen beide wordt gemaakt door de interpretatie van het signaal.
Een analoog signaal stelt een waarde voor op een continue schaal. Zo zou je de lichtintensiteit van een pixel kunnen coderen als de amplitude van een elektrisch signaal: hoe hoger de amplitude, hoe hoger de lichtintensiteit. De amplitude kan in de tijd variëren waardoor ook de voorgestelde lichtintensiteit varieert.
Een digitaal signaal stelt een binaire waarde voor: een 0 of een 1. De waarde van het signaal wordt op vaste tijden (= de frequentie van het digitale signaal) uitgelezen en vergeleken met een drempelwaarde: is de uitgelezen waarde groter dan de drempelwaarde dan stelt het signaal een 1 voor, anders is het een 0.

Een digitaal signaal kan omgezet worden in een analoog signaal. Indien een digitaal signaal de lichtintensiteit weergeeft van een pixel door 8 opeenvolgende binaire waarden, dan kan een overeenkomend analoog signaal gegenereerd worden die eenzelfde lichtsterkte weergeeft (bv. een signaal met een amplitude die dezelfde lichtsterkte vertegenwoordigd) voor die pixel. De omzetting van digitaal naar analoog gebeurt door devices die we digital-to-analog converters (DAC) noemen.

Omgekeerd kan een analoog signaal ook in een digitaal signaal omgezet worden. Daartoe worden op vaste tijdstippen metingen van het analoge signaal uitgevoerd. Deze metingen noemen we ook samples en de frequentie waarmee samples genomen worden noemen we de sample-rate. Op basis van de gemeten waarde wordt nu een overeenkomende digitale waarde bepaald (= een reeks opeenvolgende nullen en enen) die een waarde voorstellen die de meting zo dicht mogelijk benaderen. De omzetting van analoog naar digitaal gebeurt door devices die we analog-to-digital converters (ADC) noemen.

Zoals je wel zult doorhebben nu, is een digitaal signaal een serieel signaal: informatie is er pas nadat meerdere opeenvolgende binaire waarden gedecodeerd zijn. Een analoog signaal geeft alle informatie vrij bij 1 enkele uitlezing.

Tot nu toe zou je kunnen denken dat een analoog signaal voordeliger is dan een digitaal signaal: per uitlezing is er namelijk meer informatie aanwezig dan bij een digitaal signaal. In ideale omstandigheden zou dat ook zo zijn. Het ziet er echter anders uit wanneer je storing en ruis in rekening brengt. Deze ongewenste effecten zorgen ervoor dat het signaal niet meer dezelfde is als deze die door de verstuurder gegenereerd werd. Iedere verandering in een analoog signaal zorgt voor een verschillend uiteindelijk resultaat (bv. een iets verzwakte amplitude zorgt voor een iets zwakkere lichtsterkte dan bedoeld was). Bij een digitaal signaal heb je meestal geen probleem: opdat de uitgelezen binaire waarde dezelfde blijft, is het voldoende dat de uitlezing van het signaal aan dezelfde kant van de drempelwaarde blijft... Om een verkeerde waarde uit te lezen moet het signaal wel erg sterk verstoord zijn.

Cathode Ray Tube (CRT):
Dit soort monitoren bestaat reeds ruime tijd. Vreemd genoeg zijn CRT's ook de meer complexe schermen.

Ze bestaan uit een laag fosfor. Fosfor is een stof die kort oplicht wanneer een elektron erop inslaat. Om dit te kunnen gebruiken als scherm, wordt de fosforlaag daarom intensief bestoken met elektronen. De elektronen zijn afkomstig van een cathode binnen het scherm. Een cathode is een bron van elektrische lading (zoals de negatieve pool van een batterij). In een CRT is de cathode in werkelijkheid een fijn draad dat opgewarmd wordt. Wanneer zo'n draad binnen een vacuüm wordt geplaatst komen er elektronen vrij uit de draad. Om de elektronen in de juiste richting te sturen wordt een anode geplaatst tussen de kathode en de fosforlaag. Om de elektronenstraal op de juiste pixel te richten wordt gebruik gemaakt van spoelen. Spoelen zijn gewonden geleiders. Als er stroom door die geleiders wordt gejaagd, reageert de spoel als een magneet. Elektronen zijn negatief geladen deeltjes en reageren als de negatieve pool van een magneet. Door de stroom doorheen de spoelen te variëren kan de richting van de elektronen precies bepaald worden.

Een kleuren-CRT bevat drie kathodes: een voor iedere basiskleur. De elektronen slaan uiteindelijk in op een fluorescerende laag. Deze laag bestaat uit drie types fosfor (een die rood oplicht, een die groen oplicht en een die blauw oplicht).

Een cathode vuurt elelktronen af terwijl de elektronenstraal afgebogen wordt van links naar rechts en van boven naar onder. Wanneer een pixel helder is terwijl de volgende donker is, dan zal de elektronenstroom gelijdelijk aan zwakker worden (de elektronenstroom kan immers niet plots ophouden). Omdat de elektronenstroom zich continu verplaatst zullen een aantal elektronen op de fosforlaag inslaan voorbij de rand van de heldere pixels. De kijker zal dat ervaren als bleeding (het uitlopen van de heldere pixels). Om dat te voorkomen wordt een van 3 technieken gebruikt:
  • Shadow mask: een masker vol ronde gaatjes wordt vlak vóór de fluorescerende laag geplaatst. Elk gaatje geeft uit op een bepaalde kleur. Terwijl de elektronenstroom beweegt naar een volgend pixels, slaan er elektronen in op het masker (maar die zie je niet). Het schermoppervlak van monitoren met een shadowmask is bolvormig. Met een vlak scherm zouden de pixels aan de buitenrand van het scherm ovaalvormig zijn. Vergelijk het schijnen van een zaklamp op een muur: als je loodrecht op de muur schijnt zie je een ronde lichtvlek, als je schuin schijnt zie je een ovaalvormige lichtvlek. Door het scherm bolvormig te maken kan ervoor gezorgd worden dat de elektronenstraal steeds loodrecht inslaat op het fosfor.
  • Aperture grill: dunne verticale kabels worden vóór de fosforlaag gehangen. Tussen iedere 2 kabels staan allemaal pixels van eenzelfde kleur. Schermen op basis van deze technologie zijn veel vlakker dan shadow-mask schermen: de oudere modellen waren enkel horizontaal afgerond, de nieuwste modellen zijn zelfs helemaal vlak. Aperture grill schermen geven gewoonlijk een helderder beeld dan shadow mask schermen: er slaan immers minder elektronen in op de verticale kabels van de aperture grill dan op het masker in een shadow mask scherm. Aperture grill is een technologie die oorspronkelijk ontwikkeld werd door Sony (onder de naam Trinitron). Ondertussen worden aperture grill schermen ook door andere fabrikanten geproduceerd (waaronder Mitsubishi (onder de naam DiamondTron) en ViewSonic (onder de naam SonicTron).
  • Slot mask (aka invar mask): deze technologie is de minst verspreide van de drie. Het bestaat uit zowel vertikale als horizontale kabels (gemaakt uit invar: een materiaal dat heel weinig uitzet wanneer het opwarmt). Slot mask schermen bestaan uit allemaal afgescheiden pixels zoals bij shadow mask schermen. Ze produceren echter een helderder beeld als shadow mask schermen (omdat er meer elektronen op het fosfor inslaan i.p.v. op het masker; een voordeel dat ook bij aperture grill schermen bestaat). Slot mask is een technologie die oorspronkelijk ontwikkeld werd door NEC. NEC is ook zowat de enige leverancier van slot mask schermen.

Zoals hoger aangegeven licht het fosfor maar heel even op. Om een beeld blijvend op het scherm te laten, moet het beeld ververst worden vóór het fosfor uitgedoofd is. Dit kan een nadeel lijken, maar dit fenomeen zorgt er ook voor dat er bij iedere verversing een ander beeld op het scherm gebrand kan worden. Op die manier kan op een CRT de illusie van beweging gecreëerd worden. Het feit dat het beeld ververst moet worden, betekent tevens dat er flikkeringen waargenomen kunnen worden in het beeld. Om dat te vermijden, wordt het beeld snel genoeg ververst opdat het menselijk oog en de hersenen die flikkeringen niet meer kunnen waarnemen. Algemeen wordt aangenomen dat het menselijk oog de overgangen niet meer kan waarnemen vanaf ongeveer 25 verversingen per seconde. Van dichtbij is een beeld dat aan die verversingsnelheid (of refresh-rate) opgebouwd wordt erg onrustig. Naarmate de refresh-rate verhoogd wordt, stabiliseert het beeld. 72 Hz wordt algemeen aanzien als een refresh-rate waarbij het beeld voor iedere persoon als stabiel wordt aanzien. Deze refresh-rate staat ook gekend als de VESA standaard refresh-rate (VESA is een standaarden-organisatie; net als o.m. ISO en ANSI).

Alle componenten binnen een CRT worden analoog aangestuurd (de cathode en de spoelen). In de loop der jaren werden verschillende signalisaties ontwikkeld voor CRT's. Tegenwoordig wordt enkel nog Video Graphics Array (VGA) gebruikt. In een VGA-signaal worden alle pixels van het beeld na elkaar beschreven, beginnend links-bovenaan en dan lijn-per-lijn (van links naar rechts en van boven naar onder). De cathode vuurt voor iedere pixel een hoeveelheid elektronen af die recht-evenredig is aan de amplitude van het signaal.

Een analoog signaal heeft het voordeel dat het niet geïnterpreteerd hoeft te worden: het signaal wordt rechtstreeks gebruikt om de analoge componenten aan te sturen. Dankzij deze eigenschap kan het VGA signaal makkelijk verschillende resoluties en refresh-rates accomoderen (het signaal zorgt ervoor dat de elektronenstroom dan grotere stappen maakt bij lagere resoluties, ...). Een analoog signaal kan ook veel meer variaties aangeven. Zo kan de helderheid van de pixels (in theorie tenminste) oneindig precies worden aangegeven door het signaal.
Het feit dat het signaal makkelijk aangepast kan worden betekent echter nog niet dat ieder CRT scherm er probleemloos mee zal kunnen omgaan. Zo hebben de spoelen in het scherm steeds een maximale werksnelheid (t.t.z. de snelheid waarmee de stroom door de spoel kan worden gewijzigd is niet onbeperkt): als het signaal aangeeft dat de spoelen sneller moeten werken dan dat maximum, dan zal het scherm schade oplopen (tegenwoordig wordt het signaal wel gevalideerd vooraleer het naar de componenten gestuurd wordt)...

De modernste CRT's kunnen probleemloos omgaan met verschillende resoluties dankzij een techniek die multisynch heet. Het VGA signaal pulseert aan een frequentie die overeenkomt met het aantal pixels dat per seconde belicht wordt. Die frequentie noemen we de pixelfrequentie. De kathode en de spoelen van het scherm synchroniseren zich op die frequentie. Per puls wordt een pixel van het scherm belicht. Door de pixelfrequentie te delen door het totale aantal pixels in de resolutie bekomt men de (eerder besproken) refresh-rate. Multi-synch duidt op het feit dat de componenten van het scherm zich op verschillende pixelfrequenties kunnen synchroniseren.

De maximaal haalbare pixelfrequentie is afhankelijk van de snelheid van de componenten binnen het scherm (cathode, spoelen en de uitdooftijd van het gebruikte fosfor). De maximaal haalbare resolutie voor een CRT scherm wordt bepaald door het aantal rode, groene en blauwe fosforpunten op het scherm. De maximale pixelfrequentie bepaalt vervolgens de maximale refresh-rate van het scherm.
Neem als voorbeeld een scherm met een maximale pixelfrequentie van 132 MHz. De maximale refresh-rate voor een resolutie van 1280x1024 wordt als volgt berekend:
Code:
132,000,000 Hz / (1280 x 1024) = 100 Hz

*** Hier kan je reageren op dit artikel ***

apa

Legacy Member
[size=+1]MONITORS (part II)[/size]

Liquid Crystal Displays (LCD):
LCD's zijn in werkelijkheid niet veel meer dan regelbare lichtfilters. In een CRT wordt licht uitgezonden door die pixels die moeten oplichten; in een LCD wordt het licht weggefilterd voor die pixels die donker moeten zijn (de andere pixels laten het licht door). Om dit te verwezenlijken, bestaat een LCD uit twee componenten: een lichtbron en een lichtfilter.

Naargelang de gebruikte lichtbron onderscheiden we reflectieve LCD's (die binnenvallend (omgevings)licht weerkaatsen) en transmissieve LCD's (die een eigen lichtbron bevatten). LCD's voor gebruik als computermonitor zijn steeds van het transmissieve type. De lichtbron wordt steeds achter de lichtfilter geplaatst; we noemen het daarom een backlight.

Teneinde een mooi effen beeld te verkrijgen moet de backlight niet alleen helder zijn maar vooral zeer diffuus (= gelijkmatig; zodat er niet veel meer licht zichtbaar is dichtbij de lamp als er iets verder van) licht produceren.

De backlight produceert wit licht. Wit licht kan je zien als een mengeling van rood licht, groen licht en blauw licht (= 3 hoofdkleuren). Door dat licht door filters (zoals bij discotheeklichten) te jagen, kan je die hoofkleuren er weer uithalen. Dat is hoe men het licht voor de sub-pixels bekomt (1 pixel bestaat namelijk uit 3 sub-pixels: 1 voor iedere hoofdkleur).

Jammer genoeg bestaat er geen enkele lichtbron die perfect wit licht uitzendt: naargelang het type lichtbron zal één of andere hoofkleur sterker in het licht aanwezig zijn dan de andere. De afwijking die op die manier ontstaat t.o.v. wit licht wordt gemeten a.h.v. de kleurtemperatuur. Op monitors kan de kleurtemperatuur aangepast worden om de afwijkingen te corrigeren (we noemen dit calibreren). Eenvoudig gezegd stuurt de computer dan beelden door waarbij de helderheid van de verschillende hoofkleuren zo gewijzigd wordt dat het de afwijkingen van het scherm compenseert.

De calibratie is trouwens ook afhankelijk van de omgeving (hoeveel en welk type licht er is, ...): het omgevingslicht vermengt zich immers met het monitor-licht en kan op die manier de kleurtemperatuur, zoals door onze ogen opgevangen, veranderen.

Als backlight wordt klassiek een Cold Cathode Fluorescent Lamp (CCFL) gebruikt. Dit soort lampen lijkt op een klassiek TL-licht en produceert helder wit licht. Een nadeel van CCFL is dat de kleurtemperatuur niet beïnvloedbaar is aan de lichtbron zelf (de mate waarin rood, groen en blauw in het licht aanwezig is, kan niet gekozen worden). CCFL's hebben een opwarmtijd wat betekent dat de kleurtemperatuur verandert naarmate het scherm langer opstaat. Gewoonlijk duurt het ongeveer 30 minuten eer zo'n backlight zijn "normale" kleurtemperatuur bereikt.

Recentelijk is men begonnen met het gebruiken van Light Emitting Diodes (LED) als backlight voor LCD's. LED's hebben grote voordelen boven CCFL's: ze zijn veel duurzamer, verbruiken erg weinig stroom en hebben een korte opwarmtijd. Ze bestaan uit een reeks losse LED's voor iedere hoofkleur (er zijn dus rode, groene en blauwe LED's aanwezig): daardoor kan je de kleurtemperatuur in dit geval wel aan de lichtbron veranderen (de helderheid van een bepaalde hoofdkleur kan onafhankelijk veranderd worden t.o.v. de andere). LED's zijn echter heel wat minder helder dan CCFL's waardoor er veel in een LCD geplaatst moeten worden.

Om beelden te kunnen vormen, moet het licht nu correct gefilterd worden zodat het licht tegengehouden wordt voor alle pixels die donker moeten zijn: dit gebeurt met de tweede belangrijke component van LCD's: de lichtfilter.

De lichtfilter bestaat uit 3 platen die tegen elkaar geplaatst worden. De 2 buitenste platen zijn polariserende filters. Licht kan je een beetje vergelijken met spirelli pasta: het kronkelt een beetje in alle richtingen. Polariserende filters zijn een soort traliesen die het licht doorlaten in 1 richting: ze vormen de spirelli's om tot tagliatelli's.
Door 2 zo'n polariserende filters na elkaar te plaatsen, wordt het licht 2 maal gefilterd. Stel dat de 2 filters 90° t.o.v. elkaar geroteerd staan, dan zal er geen licht doorheen de tweede filter komen.
Hier kan je meer te weten komen over polarisatie.

De truuk van een LCD bestaat er nu in om de tagliatelli's tussen beide platen te draaien. Dat gebeurt in het derde onderdeel van de lichtfilter. Deze laag bestaat uit zgn. vloeibare kristallen. Dit soort kristallen kan de lichtgolven/tagliatelli's meer of minder draaien naarmate er meer of minder stroom door gestuurd wordt.
De stroom wordt naar de kristallen gestuurd door elektrische geleiders die voor en achter de kristallen bevinden op hele dunne films. Om de afzonderlijke pixels aan te sturen kan men twee technieken onderscheiden:
  • Passieve matrix: op de ene film worden de geleiders aangebracht voor de kolommen. Op de andere film worden de geleiders aangebracht voor de rijen. Om de spanning naar een bepaalde pixel te wijzigen, wordt diens kolom onder stroom gezet terwijl diens rij verbonden wordt met de massa. Enkel ter hoogte van de kruising van rij en kolom ontstaat nu een elektrisch veld. De kristallen zullen op die plek draaien waardoor de lichtgolven geroteerd worden.

    LCD's met een passieve matrix zijn eenvoudig, maar hebben toch grote nadelen:
    • Ze reageren langzaam. Dit is vooral merkbaar bij snelle bewegingen: er lijkt dan een staart te hangen achter het bewegende beeld (zoals achter een snel bewegende mousepointer; we noemen dit ghosting). Passieve matrix-schermen hebben responstijden die kunnen variëren tussen de 60ms en de 400ms.
    • Het is erg moeilijk om precies één enkele pixel te bewerken: hoewel minder groot, ontstaat er in een passieve matrix ook spanning tussen de elektroden van nabijgelegen pixels. Ook daar ontstaat dus een (zij het kleiner) elektrisch veld en ook daar zullen de lichtgolven geroteerd worden.
  • Actieve matrix: aan iedere pixel is er een transistor aangebracht die ervoor zorgt dat de elektrode pas onder stroom komt te staan wanneer die specifieke pixel veranderd wordt. Transistoren zijn een soort schakelaars waarmee de stroomtoevoer afgesloten of doorgelaten kan worden op basis van een signaal. Die transistoren zorgen ervoor dat de stroomtoevoer naar de pixels volledig afgesloten kan worden zodat er geen elektisch veld gezet wordt over die pixels tenzij dat werkelijk de bedoeling is. Om een pixel te veranderen wordt diens transistor eerst geschakeld zodat een elektrisch veld opgewekt kan worden voor die pixel. Terwijl die pixel onder stroom staat, staan de overige transistoren in de uit-stand en vloeit er geen stroom door.

    De transistoren staan aangebracht op een doorzichtige film die we Thin Film Transistor (TFT) noemen.

    Tegenwoordig komen er drie soorten TFT systemen voor:
    • Twisted Nematic (TN): in deze panelen staan de kristallen opgesteld in een soort helix-structuur waarvan ieder uiteinde vasthangt aan een polarisatiefilter. Iedere sub-pixel heeft op die manier zijn eigen helix. De polarisatiefilters staan evenwijdig met elkaar en in rust laten de kristallen het licht ongemoeid door (wat verklaart waarom dode pixels hier licht doorlaten en dus helder zijn). Door de elektroden onder stroom te zetten zullen de kristallen zich ontkrullen en zal er steeds minder licht doorgelaten worden.

      Omdat de helixen vasthangen aan beide uiteinden, kunnen ze niet volledig vrij roteren. Dit heeft tot gevolg dat er altijd wat kristallen zijn die het licht doorlaten wanneer de elektroden onder stroom staan. Daardoor hebben TN-panelen een beperkt contrast. Een helix-structuur ziet er ook zeer verschillend uit naargelang de hoek waaronder men er naar kijkt. Dat verklaart de beperkte kijkhoek die TN panelen kenmerkt.

      TN-panelen bestaan het langst en de technologie erachter is dan ook het verst doorontwikkeld. De matrices van TN-panelen halen daarom de laagste responstijden van alle bestaande technologieën (16ms en lager). Spijtig genoeg wordt de responstijd niet bij alle fabrikanten/paneelypes op dezelfde manier gemeten. TN-panelen blijken vooral bij grijs-grijs overgangen hele lage responstijden te halen; maar bij zwart-wit overgangen komen de responstijden niet veel lager uit dan bij de andere technologieën.

      Omdat TN-panelen het langst bestaan is de kostprijs van deze panelen ook het laagst (de kosten voor R&D zijn ondertussen namelijk ruimschoots terugverdiend). In mijn ogen is dit dan ook het enige echte voordeel van TN-panelen.
    • In-Plane Switching (IPS): deze technologie werd in 1996 geïntroduceerd door Hitachi. De geleiders staan hier allen op 1 film en de kristallen staan hier niet in helix-structuur opgesteld, maar staan allen steeds parallel opgesteld. In rust staan de kristallen horizontaal opgesteld en wordt er geen licht doorgelaten (dode pixels zijn daarom ook donker). Wanneer de elektrodes onder stroom staan, roteren de kristallen tot ze vertikaal komen te staan en een maximum aan licht doorlaten.

      De geleiders in IPS-panelen nemen plaats in op 1 enkele film waardoor er minder plaats overblijft om licht door te laten. Dit verklaart waarom IPS-panelen minder helder zijn. Om dat te compenseren wordt gewoonlijk een sterkere backlight gebruikt (die dan weer een kortere levensduur heeft en een hoger verbruik kent).

      IPS-panelen kennen dan weer een grote kijkhoek, geven de beste kleurenreproductie en hebben een responstijd dat nagenoeg gelijk is aan dat van TN-panelen. De eerste 2 kenmerken hebben IPS-panelen dan ook populair gemaakt voor grafisch werk.
    • Vertical Alignment (VA): hier worden de geleiders terug aan weerszijden van de kristallen aangebracht waardoor het nadeel van helderheid hier verdwijnt. De kristallen staan hier allen parallel opgesteld t.o.v. elkaar (net als bij IPS), maar hier laten ze in rust het licht door (bij IPS niet).

      De eerste versie van deze technologie staat bekend als Single-domain Vertical Alignment (SVA) en werd in 1996 voorgesteld door Fujitsu. In deze basisversie was er een grote invloed van de hoek waaronder men naar de kristallen keek waardoor de kijkhoek erg beperkt was.

      Ondertussen bestaan er 2 dominante technologieën gebaseerd op hetzelfde principe die de nadelen van SVA's wegwerken: Multi-domain Vertical Alignment (MVA: voorgesteld door Fujitsu in 1998) en Patterned Vertical Alignment (PVA: ontwikkeld door Samsung). Daarbij zie je verschillende kristallen naargelang de hoek waarnaar je naar het scherm kijkt. Dit verklaart waarom MVA/PVA-panelen wel een grote kijkhoek kennen.

      Bij VA-panelen kan het licht goed tegengehouden worden om een donker beeld te produceren. Dat verklaart waarom deze panelen diep zwart kunnen weergeven.

      Hoewel deze panelen vrij snel zijn voor de meeste helderheidsovergangen, zijn ze (zeer) langzaam voor overgangen met weinig kleurverschil. Fabrikanten adverteren hier echter gewoonlijk met de responstijd voor grote kleurveranderingen (zwart-wit), en daar doen deze schermen het gewoonlijk wel goed. Door deze zwakke responstijden zijn deze panelen ongeschikt voor snel bewegende scènes (zoals in films of games).
      Omdat deze schermen gebruik maken van meerdere reeksen kristallen voor 1 pixel, is het beeld verschillend wanneer je loodrecht op het scherm kijkt (tussen de 2 kristalreeksen in) dan wanneer je vanuit een hoek kijkt (op 1 enkele kristalreeks). Spijtig genoeg is het beeld voor de loodrechte kijker minder goed van voor de schuine kijker: deze panelen kunnen minder helderheidvariaties tonen aan de loodrechte kijker dan aan de schuine kijker. Dat betekent concreet dat deze panelen minder goed zijn in kleurreproductie.

Delen van dit artikel (en het vorige) zijn gebaseerd op volgende bronnen:

*** Hier kan je reageren op dit artikel ***
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan