En teknisk beskrivning av SCSI-2 MC, mc vid domänen hack.org. 1996-07-23 SCSI (Small Computer Systems Interface) är en amerikansk standard som beskriver de mekaniska, elektriska och logiska delarna av en generell databuss som kan användas för att koppla ihop yttre enheter till en värddator i stället för en enskild koppling för varje enhet. SCSI är dock inte begränsad till detta, utan är mer generell än så och skapades från början lika mycket för att koppla ihop dator med dator som yttre enhet med en värddator. Detta kan man också se i en nutida kusin till SCSI, FibreChannel, som är en mycket spännande datornätsteknik. Den främsta poängen med SCSI-standarden är emellertid att göra värddatorer oberoende av drivrutiner inom en klass av enheter. På detta sätt kan olika hårddiskar, bandstationer, skrivare, optiska mediastationer och andra enheter anslutas till en värddator utan att kräva förändring av hård- eller mjukvara. SCSI-2 är en utökning av SCSI som på en gång presenterar en rad nya drag och ordnar en del tvetydigheter i den gamla standarden, där standardiseringen skärps på vissa punkter. SCSI-2 är skapad för att vara bakåtkompatibel med SCSI, så att gamla enheter, som stöder bussparitet och når upp till SCSI nivå 2 enligt den gamla standarden, skall kunna kopplas till en adapter som följer SCSI-2. Dessutom syftar SCSI-2 till att underlätta förflyttningen av enhetsspecifik intelligens ut till enheterna, vilket innebär att standarden har en kommandouppsättning som tillåter ett operativsystem att få all information om initiering från själva enheterna. Gränssnittet använder numera också logisk snarare än fysisk adressering av enheterna. För en del enheter kan själva enheten frågas om hur många block den innehåller. En logisk enhet kan täcka hela den fysiska enheten eller delar av den, vilket torde innebära att flera logiska enheter kan dela på en fysisk. Det nya protokollet tillåter multipla initierare (enheter som begär en operation) och dessutom multipla mål (enheter som tar emot en förfrågan eller skall utföra en operation). Ett prioritetssystem bestämmer vilken enhet som skall få arbeta först om flera begär det samtidigt. Detta betyder att inte bara SCSI-adaptern kan initiera en operation på någon av enheterna, utan att enskilda enheter själv kan begära en operation på en annan enhet. En initierare kan också, enligt ovan, adressera sina operationer till flera enheter samtidigt, något som till exempel underlättar byggandet av redundanta hårddiskar och liknande konstruktioner. Elektriskt sett finns det två alternativ enligt SCSI: single-ended och differentiell. Dessa skall inte blandas på samma buss, då de är elektriskt inkompatibla med varandra. Maxlängd på busskabeln med differentiella enheter är 25 meter. För single-ended är motsvarigheten 6 meter och denna bussvariant är främst tänkt att användas inom datorkabinett. På logisk nivå finns ett asynkront protokoll som är det vanliga, men som alternativ finns också ett synkront. Förutom dessa två dataprotokoll finns också ett meddelandeprotokoll för att kontrollera gränssnittet. I de allra flesta fall är dock inte sådana meddelanden direkt tillgängliga för värddatorns mjukvara. En del kommandon i det logiska protokollet har samma mening för alla enheter. Dessa specifieras för sig i standarden. Andra är uppdelade på direktåtkomst (till exempel hårddiskar) och sekventiell åtkomst (exempelvis bandstationer), och sedan uppdelade efter unika klasser av enheter, som co-processorer, scanners med flera. Dessa klasser delar kommandon, men enskilda kommandon, som WRITE, kan skilja sig i formatet och antal parametrar mellan olika klasser. Dessa kommandon är därför definierade en gång för varje klass i standarden. Slutligen kan jag nämna att SCSI-2 numera är en gammal standard och datorvärlden följer i stället med intresse utvecklingen av SCSI-3, som är intimt förknippat med tekniken baserad på FibreChannel, som jag nämnde i inledningen. SCSI-3 och FibreChannel lovar gigabit per sekund inte bara i åtkomst av skivminnen, utan som generellt nätverk till nästan alla arbetsstationer i framtiden.