Small Computer System Interface är en höghastighetsstandard för att ansluta kringutrustning och datorer. Även känd under akronymen SCSI, definierar den både hårdvaruanslutningar och metoder för att utbyta data. För varje typ av kringutrustning som stöds definierar SCSI enhetsspecifika kommandon och protokoll. SCSI används ofta på servrar och högpresterande datorer som de för ljud- och videoproduktion. Det används ofta med Redundant Array of Independent Disks (RAID) och nätverkslagringsteknik också.
SCSI skapades i slutet av 1970-talet och hette ursprungligen Shugart Associates System Interface efter företagets uppfinnare. Små datorsystemgränssnitt har flera fördelar jämfört med konkurrerande teknologier. Dess datakablar kan vara ganska långa, vilket gör det enkelt att ansluta många externa enheter till en dator. Mer än en högpresterande enhet på kabeln kan vara aktiv samtidigt, vilket effektiviserar lagringsintensiva applikationer. Till exempel kan redigeringsprogram läsa data från två hårddiskar samtidigt och bränna en digital videoskiva (DVD).
Från 1980-talet till början av 2000-talet utvecklades specifikationer för små datorsystemgränssnitt avsevärt. Den parallella SCSI-bussen växte från åtta bitar till 16 bitar, och enhetens bandbredd fördubblades ofta från en utgåva till nästa. Många moderkort inkluderade SCSI-kontroller eller stödda SCSI-värdbussadapterkort (HBA). Disktillverkare introducerade vanligtvis sina högst presterande enheter med SCSI-stöd före andra tekniker. Billigare Integrated Drive Electronics (IDE) diskar förblev dock ett vanligt val för persondatorer.
Small Computer System Interface organiserar anslutna enheter i logiska enheter, mål och initiativtagare. En enhet är en initiator om den kan initiera SCSI-kommandon, till exempel en SCSI-styrenhet. Mål, som diskenheter, DVD-enheter och liknande enheter, svarar på förfrågningar från initiativtagare. Varje målenhet kan ha mer än en logisk enhet och många logiska datablock. I synnerhet nås lagringsenheter med hög kapacitet vanligtvis som flera virtuella enheter.
Kommandoprotokollet Small Computer System Interface definierar flera dussin operationer. Kommandon för att hantera enheter, samla in status och överföra data ingår. Det finns fyra varianter för att läsa data från en enhet utöver fyra olika skrivkommandon. 32-bitars Cyclic Redundancy Check (CRC32)-metoden har använts för dataöverföringar sedan 1996, då SCSI-3-specifikationen släpptes.
I början av 2000-talet hade SCSI-bussens klockfrekvens ökat till 160 megahertz (MHz) med Ultra 640-specifikationen. Den parallella naturen hos SCSI började orsaka terminerings- och kabelproblem vid mycket höga hastigheter. Dessa problem löstes genom att omdesigna SCSI för att transportera data seriellt, snarare än parallellt. Ändringarna implementerades i slutet av 2000-talet som Serial Attached SCSI (SAS). En viktig variant, Fibre Channel Arbitrated Loop (FC-AL) använder en mycket snabb klocka—4 Gigahertz (GHz)— med optiska fiberkablar.
SAS ger flera fördelar jämfört med parallell SCSI förutom högre enhetsgenomströmning. Enhetsanslutningar är hot-swappable, vilket innebär att de kan kopplas ur och kopplas in efter behov utan att stänga av servrar. SAS är kompatibelt med Serial Advanced Technology Attachment (SATA) lagringsenheter. Detta gör att de billigare och mer populära SATA-enheterna – efterföljaren till IDE – kan användas med avancerad SCSI-baserad teknologi. SAS förbättrar också felisoleringen jämfört med det ursprungliga Small Computer System Interface.