SCSI er en familie av standarder for kopling til og styring av periferienheter til datamaskiner. SCSI er en forkortelse for Small Computer Systems Interface. Den ble tatt i bruk fra midten av 1980-tallet, og som navnet indikerer – først for mindre datasystemer, men er etterhvert for alle typer datasystemer.

Standarden dekker tre hovedområder: 

  1. Utforming av kontakter og kabel for sammenkopling
  2. Signalering – det vil si hvordan signalene skal spille sammen for å utveksle data mellom enheter
  3. Innhold av datapakker for å kommunisere med og styre forskjellige typer enheter (SCSI kommandosett).

Over tid har områdene 1 og 2 endret seg mest i takt med teknologisk utvikling. Område 3 er en form for programmering av perifere enheter som magnetbånd, disker, skannere, eller skrivere, og denne delen av standarden har endret seg lite.

SCSI er en buss hvor en kopler til et antall enheter. Hvor mange bestemmes av den aktuelle kabelforbindelsen. Bare to enheter kan kommunisere samtidig. 

De første kablene var brede flatkabler med 50 eller 68 ledere for parallell overføring av kommandoer og data. Mellom hver «signalleder» var det en jordet leder for å redusere støy og signalkopling mellom ledere. Flatkablene hadde altså bare halvparten – 25 og 34 –signalbærende ledere. Flatkabel med 50 ledere kunne overføre 8 databit i parallell, den bredeste kabelen: 8, 16 eller 32 bit i parallell. 

Den opprinnelige SCSI-standarden gav en overføringskapasitet på inntil 5 megabyte per sekund over kabel på maksimalt seks meter, og man kunne kople opptil åtte enheter på én buss (SCSI-1, 1986). Etter hvert kom en serie med forbedringer som gav større båndbredde (overføringskapasitet). På bred flatkabel oppnådde en til slutt en overføringsrate på 320 MB/s (Ultra 320 SCSI, 2003). Men skjevhet i signalene på flatkabel begrenset kabellengde og frekvens (hvor «tett» en kan sende byte eller ord på kabelen). Størrelsen på kontakten ble etterhvert et problem da enhetene ble mindre, særlig disker som tidlig krympet til en bredde på 3,5 tommer. 

Derfor er det definert nye varianter av standarden basert på seriell kommunikasjon som Fiber Channel, USB og Internet (TCP/IP) – iSCSI. 

Hver kommando startes ved at en part – verten – får bussen, og oppretter kontakt med en tjener, for eksempel en disk. Kommandoen fullføres ved at datapakker overføres gjennom en sekvens av faser – en kommunikasjonsprotokoll. Kommandoer som innebærer at tjeneren trenger lang tid på utførelsen før den har noe å melde tilbake, kan avbrytes slik at bussen i mellomtiden kan utnyttes av andre. For å avslutte kommandoen er det nå tjeneren som i sin tur tar kontakt med verten for å overføre resultatdata. Resultatdata kan være en diskblokk eller så lite som en byte med statusdata. 

Kommandosettet er definert ved kommandokoder og datapakker. Det er definert et felles sett av kommandoer, og et sett for hver type periferienhet: disk, magnetbånd, skrivere, datamaskiner, WORM-enheter (Write Once Read Many), CD-ROM, skannere, medieautomater og generelle kommunikasjonsenheter. Medieautomater er for eksempel en båndrobot der kasetter med bånd er lagret og automaten henter bånd og setter i båndstasjonen før bruk, etter bruk settes kasetten tilbake på ledig plass og plassoversikten oppdateres. 

Kommandopakken for lesing av en disk ser slik ut:

\( \begin{array}{|c|l||cccc @{\;\;\;\;\;} cccc||r|} \hline \texttt{byte nr}&\texttt{bit nr}&7&6&5&4&3&2&1&0& \\ \hline 1&\texttt{les} &0&0&0&0& 1&0&0&0& 8 \\ \hline 2&\texttt{høy} & & & &0& 0&0&0&1&65\;536 \\ 3& &0&0&0&0& 1&1&1&0&+2\;048+1\;024+512 \\ 4&\texttt{lav} &0&0&0&0& 0&0&1&0&+2=69\;122 \\ \hline 5&\texttt{ant} &0&0&0&1& 0&0&0&0&16 \\ \hline 6&\texttt{ktrl} &0&0&0&0& 0&0&0&0& \\\hline \end{array} \)

I første byte står kommandokoden for lesing av disk som er 8. I andre til fjerde byte står diskadressen hvor lesing starter, eksempeladressen som er satt inn er 69 122 desimalt. Adressen er en sektoradresse. I byte fem står antall sektorer som skal overføres, i eksemplet er det 16. Siste byte er en kontrollbyte som ikke brukes i denne kommandoen.

Denne kommandopakken var grei når SCSI-standarden ble tatt i bruk, men etter hvert ble diskene så store at adressefeltet ikke kunne holde de store adressene. Det ble derfor laget en lesekommando med 10 byte i pakken. Kommandokoden er 40. Adressefeltet er utvidet til fire fulle byte og feltet for antall sektorer som kan overføres er gitt to byte. Tilvarende er det gjort for alle kommandoer der plassen til adresser er blitt for liten.

SCSI utviklet seg fra SASI («Shugart Associates System Interface») som ble tatt i bruk i 1978, spesielt for å kople disker til mindre maskiner. Spesifikasjonene ble offentlige i 1981, og ANSI startet arbeidet med å standardisere kommunikasjonsløsningen. Første utgave av standarden var ferdig i 1986. Et firmanavn kunne ikke knyttes til en standard, og SCSI ble det nye navnet. 

På vanlige PC-er har grensesnitt som USB og IEEE 1394 (kjent som Firewire eller i.Link) overtatt det meste av det SCSI ble brukt til. SCSI overlever som diskgrensesnitt i servere og i lagringsnett. Et eksempel er «USB attached SCSI» forkortet UAS som brukes som grensesnitt mot disker, flashminnebaserte disker (SSD) og minnepinner. Kontakt og kommunikasjon følger USB-standarden og SCSIs kommandosett styrer operasjonene av masselageret. 

Foreslå endringer i tekst

Foreslå bilder til artikkelen

Kommentarer

Har du spørsmål om eller kommentarer til artikkelen?

Kommentaren din vil bli publisert under artikkelen, og fagansvarlig eller redaktør vil svare når de har mulighet.

Du må være logget inn for å kommentere.