• Ei tuloksia

Aluksi työssä käydään läpi teoriaa mitkä osat tietokoneen arkkitehtuurissa liittyvät kellosynkronisointiin ja pakettikaappaukseen. Luvussa käydään läpi emolevyjen eri väylätekniikat ja ajan määrittämiseen käytettävät laskurit. Keskeytykset liittyvät olennaisena osana pakettikaappaukseen, koska verkkokortti ilmoittaa uuden paketin saapumisesta keskeytyksien avulla.

Reaaliaikainen tiedonkäsittely-luvussa käsitellään käyttöjärjestelmien toimintaa kel-losynkronisoinnin ja pakettikaappauksen kannalta. Tämän lisäksi selvitetään, kuinka

LUKU 1. JOHDANTO 3 aikaa ylläpidetään käyttöjärjestelmissä ja kuinka verkkoliikenne käsitellään.

SynPCI-X kortista on oma lukunsa, jossa käydään ensiksi läpi miksi kortti päädyt-tiin alunperin kehittämään. Luvussa käydään läpi kortin uuden version suunnittelu ja sen ongelmat. Lisäksi kerrotaan, kuinka uusi kortti toimii ja mitä ongelmia siinä havaittiin.

Tämän jälkeen luvussa 5 käydään läpi mitä mitattiin ja minkälaisia tuloksia saa-tiin. Mittausten perusteella on tehty johtopäätökset mittauslaitteistojen synkronoin-ti tarkkuudesta.

Tietokoneen arkkitehtuuri

Yleiskäyttöisen tietokoneen arkkitehtuuri koostuu suorittimen ympärillä olevista o-heislaitteista. Luvussa käydään läpi kuinka eri komponentit ovat liitettyinä toisiin-sa ja mitkä komponentit liittyvät ajan ylläpitoon ja verkkoliikenteen käsittelyyn.

Yleisimpinä komponentteina tietokoneessa ovat etelä- ja pohjoissilta, jotka tarjoavat liitäntöjä oheislaitteille ja sisältävät tietokoneen toimintaan tarvittavaa logiikkaa.

Suoritinta, etelä- ja pohjoissiltoja ja oheislaitteita yhdistävät eri väylät.

2.1 Väylät

Tietokoneessa väyliä käytetään oheislaitteiden liittämiseksi tietokoneeseen. Nyky-päivän kotitietokoneissa yleisimpiä väyliä ovat Peripheral Component Interconnect (PCI), PCI Express (PCIe) ja Universal Serial Bus (USB). PCI- ja PCIe-väylä ovat tietokoneen sisäisiä väyliä ja USB-väylä on tarkoitettu ulkoisten oheislaittei-den liittämiseksi tietokoneeseen. USB-väylään onkin nykypäivänä mahdollista liittää melkein mikä tahansa oheislaite.

2.1.1 PCI

PCI-väylän spesikaation ensimmäinen versio julkaistiin kesäkuussa 1992. Versiot 1.0 ja 2.0 sisälsivät tuen sekä 5 voltin että 3,3 voltin signaloinnille. Version 3.0 [ref02] myötä tuki 5 voltin signaloinnille poistettiin kokonaan. PCI-väylässä data siirretään rinnakkain joko 32 bitin tai 64 bitin väylässä. Väylänopeuksia on määritel-ty kaksi 33 MHz ja 66 MHz. Väylän siirtonopeus on maksimissaan 66MT/s8bit/B×64bit/T = 533MB/s. Yleisimmän 32-bittisen ja 33 MHz PCI-väylän nopeus on teoriassakin vain

4

LUKU 2. TIETOKONEEN ARKKITEHTUURI 5 133 MB/s. Koska dataväylä on jaettu kaikkien väylässä olevien laitteiden kesken, niin käytännössä nopeudet jäävät huomattavasti pienemmiksi kuin teoreettinen maksimi.

PCI-väylässä jokaisen laitteen, joka toimii siirron aloittajana, tulee pyytää vuoro liikennöintiin väylässä. Tämä tapahtuu käyttäen kysely (request) ja lupa (grant) signaaleja. Koska jokaisen siirron alussa pitää kertoa muistiosoite, mihin dataa siirretään, väylässä siirrettävän hyötykuorman osuus pienenee mitä useammin vuoro-ja vaihdetaan. PCI-väylässä jokaiselle isäntälaitteelle annetaan maksimiaika, jonka yksi siirto voi kestää. Tällöin tiedetään kuinka kauan huonoimmassa tapauksessa jokin oheislaite joutuu odottamaan vuoroaan. Oheislaitteen sanotaan toimivan isän-tätilassa, kun se toimii datasiirron aloittajana. Suorittimen toimiessa siirron aloitta-jana kortin sanotaan toimivan orjatilassa.

Normaalisti PCI-väylässä keskeytykset ilmaistaan käyttäen erillisiä keskeytysnasto-ja. Yhdessä väylässä erillisten keskeytysten määrä rajoittuu tällöin näiden nastojen takia neljään keskeytykseen. Myöhemmin versiossa 2.2 esiteltiin Message Signaled Interrupts (MSI) -viestit. Näiden avulla oheislaite voi käyttää useampaa kuin yhtä keskeytystä kirjoittamalla tavuja sille varattuun MSI-muistiavaruuteen.

2.1.2 PCI-X

PCI Extended (PCI-X) määrittelyssä [ref00] tehtiin parannuksia väylän merkinan-toprotokollaan väylänopeuden kasvattamisen lisäksi. Viiveen kannalta PCI-X väyläs-sä jokainen tapahtuma kestää yhden kellojakson enemmän, koska merkinantopro-tokollaan on lisätty attribuuttivaihe. Määrittelyssä tehdyt parannukset keskittyvät lähinnä siirtonopeuden parantamiseen ja välimuistin parempaan yhteistoimintaan.

Versio 1.0 [ref00] määritteli mahdollisiksi väylänopeuksiksi 66 MT/s, 100 MT/s ja 133 MT/s. Määrittelyn versiossa 2.0 signalointinopeuksia lisättiin kaksi 266 MT/s ja 533 MT/s. PCI-X määrittelyssä virheenkorjausta parannettiin pelkästä pariteet-tibitistä Error Correction Code (ECC) virheenkorjauskoodiin. Väylän laskennallinen maksiminopeus on 533MT/s8bit/B×64bit/T = 4264MB/s.

2.1.3 PCI Express

PCIe-väylä on Intelin kehittämä tekniikka. Suurimpana erona PCI- ja PCI-X väyliin on sarjamuotoinen datasiirto ja jaetun väylän korvaaminen kaksipistelinkeillä ja kytkimellä. Jokaisella oheislaitteella on oma linkkinsä PCIe-kytkimeen, joka hoitaa pakettien välittämisen laitteiden välillä.

PCI Express linkki koostuu kahdesta 2,5 Gbit/s Low Voltage Dierential Signaling (LVDS) parista. Laittamalla pareja rinnakkain 4, 8 tai 16 saadaan vastaavasti 4x, 8x tai 16x väylät. Jokaisen parin siirtonopeus on 250 MB/s. PCIe-väylässä on oma parinsa kumpaankin suuntaan ja näin siinä on mahdollista siirtää dataa molem-piin suuntiin samanaikaisesti. PCIe-väylän maksiminopeus yhteen suuntaan on16× 250MB/s= 4000MB/s.

Nopean sarjamuotoisen datasiirron etuna rinnakkaismuotoiseen verrattuna on, että tarvitaan vähemmän nastoja signalointiin. Rinnakkaisessa datasiirrossa ongelmaksi muodostuu bittien välinen synkronointi ja ylikuuluminen, kun nopeutta kasvatetaan.

PCIe-väylässä nastojen määrää vähentää myös se, ettei jaetulle väylälle tarpeellisia vuoroja tarvitse signaloida erillisiä nastoja pitkin. Kaikki kontrolliliikenne mukaan lukien keskeytykset kulkevat PCIe-väylässä paketeissa muun dataliikenteen seassa.

Tähän tarkoitukseen on laajennettu jo PCI-versiossa 2.2 esiteltyjä MSI-viestejä.

PCIe-silta muuttaa kaikki luku- ja kirjoituskäskyt MSI-viesteiksi, jotka kulkevat paketteina oikealle laitteelle.

2.1.4 Hyper Transport

Hyper Transport väylä on Hyper Transport yhteenliittymän kehittämä väyläarkki-tehtuuri. Yhteenliittymän perustajajäseniin kuuluvat Advanced Micro Devices, Al-liance Semiconductor, Apple, Broadcom, Cisco Systems, NVIDIA, PMC-Sierra, Sun Microsystems ja Transmeta [ref06d].

Hyper Transportin alkuperäisessä 1.03 [ref01] määrittelyssä on tuki 2, 4, 8, 16 tai 32 bittiä leveille väylille. Mahdollisia kellotaajuuksia ovat 200, 300, 400, 500, 600, 800 tai 1000 MHz. Hyper Transport on pakettipohjainen väylä aivan kuten PCIe.

Jokainen datasiirto aloitetaan kahdella 32-bitin sanalla, jotka sisältävät komennon ja kohdeosoitteen. Signaloinnissa käytetään 2,5 V LVDS-pareja PCIe-väylän tapaan ja jokaisella kellojaksolla siirretään dataa sekä nousevalla että laskevalla kellojaksol-la. Kyseessä on siis Double Data Rate (DDR) väylä. Myöhemmin 1.03 versioon lisät-tiin tuki 64-bittisille osoitteille ja parannetlisät-tiin yhteensopivuutta PCI-X 2.0 -siltojen kanssa.

Hyper Transport 2.0 -määrittely [ref04c] lisäsi kolme mahdollista väylätaajuutta 1,2 , 1,4 ja 1,6 GHz. PCI- ja PCI-X siltojen tuen lisäksi uutena ominaisuutena on tuki PCIe-silloille. Versio 2.0 on kuitenkin täysin alaspäin yhteensopiva vanhan 1.03 ver-sion kanssa.

Määrittelyn 3.0 version [ref06b] myötä mahdollisia väylänopeuksia tuli lisää.

Uusi-LUKU 2. TIETOKONEEN ARKKITEHTUURI 7 na kellotaajuuksina esiteltiin 1,8 , 2,0 , 2,2 , 2,4 ja 2,6 GHz. Uutena ominaisuutena tuli väylän toiminta vaihtovirralla, joka mahdollistaa pidemmän fyysisen väylän kuin toiminta tasavirralla. Tämän ansiosta Hyper Transport väylä on mahdollista kul-jettaa kaapelissa esimerkiksi tietokoneiden välillä. Muita uusia ominaisuuksia olivat korttien kytkeminen ajonaikana, linkkien jakaminen ja virransäästöominaisuudet.

Hyper Transport 3.0 väylän teoreettiseksi maksiminopeudeksi yhteen suuntaan saa-daan 5200MT/s8bit/B×32bit/T = 20800MB/s. Vaikka teoreettista väylänopeutta ei voi-da saavuttaa kuin hetkellisesti, väylä on selvästi nopein kaikista edellä mainituista väylätekniikoista.