0% found this document useful (0 votes)
88 views

Lec 06

SCS-I is a standard interface and communication protocol for computer peripherals such as storage devices. It uses a client-server architecture where initiators issue requests to targets. The SCS-I protocol takes into account the slowness of storage devices and the need for parallelism when possible. It also models different types of errors and maintains longevity despite being originally designed for bus architectures. Each layer above SCS-I may need to handle similar issues to abstract the complexities of the layers below.

Uploaded by

Souptik Sen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
88 views

Lec 06

SCS-I is a standard interface and communication protocol for computer peripherals such as storage devices. It uses a client-server architecture where initiators issue requests to targets. The SCS-I protocol takes into account the slowness of storage devices and the need for parallelism when possible. It also models different types of errors and maintains longevity despite being originally designed for bus architectures. Each layer above SCS-I may need to handle similar issues to abstract the complexities of the layers below.

Uploaded by

Souptik Sen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Storage Systems

NPTEL Course
Jan 2012
(Lecture 06)
K. Gopnat!
"n#an "nsttute o$ Scence

SCS" (Sma%% Computer System "nter$ace)

Stan#ar# nter$ace an# communcaton protoco% $or


computer perp!era%s

&%%o's #e(ce mgmt s' to )e n#ep o$ storage #e(ce

*ase# on t!e C%ent Ser(er &rc!tecture

C%ents ca%%e# "ntators ssue re+uests an# Se(ers


ca%%e# Targets respon# to ntator re+uests

&rc! may not )e )est '!en ,-party .$ers nee#e#

eg. )ac/up )et' tape an# #s/ )ut contro% 't! s'

SCS" comman#s sent n unts ca%%e# Comman#


0escrptor *%oc/s (C0*)

SCS" Transport Layer protoco%s suc! as


SCS"1TCP1"P2 3CP go(ern t!e $%o' o$ SCS"
comman# an# #ata )%oc/s

SCS"

Ear%y SCS" assumes a )us )ase# arc!tecture

not e$$cent n reco(erng $rom pac/et %oss

not an ssue n )us arc!tecture

#r(ers st%% )ase# on o%# SCS" stan#ar#s an# !a(e )een


retro$tte# $or a net'or/

app%catons #esgne# to cope 't! t!e a)o(e

ppe%nng !ar#%y use#

&pp%catons nee# to commt to sta)%e storage

4!en status 5K sent2 cannot %ose #ata

Storage response tme

3e' m%%secon#s $or #s/s6 su)-m%%secon# $or cac!es

Latency )u#get $or nterconnect s!ou%# )e %ess t!an


storage response tme
SCS" Terms

7target78 a co%%ecton o$ %ogca% unts2 #rect%y a##ressa)%e on


t!e net'or/

7ntator78 creates an# sen#s SCS" comman#s to t!e target

7tas/78 a %n/e# set o$ SCS" comman#s

tas/ attr8 9ntagge#2 Smp%e2 5r#ere#2 :ea# o$ ;2


&C&

ma. one comman# n a tas/ can )e outstan#ng at


any g(en tme

7tas/ tag78 use# )y target to #stngus! )et'een tas/s

<L*&=8 Logca% *%oc/ &##ress

<L9N=8 Logca% 9nt Num)er



SCS" *us P!ases

*us 3ree

&r)traton

Se%ecton 1 >ese%ecton8 a$ter t!s2 target n contro%

target #ec#es '!en to rec( msg2 cm#2 #ata $rom ntator

or sen# status to ntator

?essage8 use# )y target to sen#1rec( protoco% n$o

eg8 #ent$y2 cm# comp%ete2 msg party error2 a)ort2 tagge#


; cm#s2 #sconnect1reconnect2 #ata .$er re+2 /%% "5P

0ata2 Comman#2 ?essage2 Status


Bus
Free
Arbitr
ation
Select
ion
Messa
ge
Data

Command
Message
Status

SCS" Protoco%
T
i
m
e
So%cte#
4rte
4rteCm#("ntator Tas/ Tag2 L*&2 %engt!)
>ea#
>ea#y2Trans$er("ntator Tas/ Tag2 Target Tas/ Tag2 %engt!)
"N"T"&T5> T&>GET
4rte0ata(Target Tas/ Tag2 %engt!)
Status("ntator Tas/ Tag)
>ea#Cm#("ntator Tas/ Tag2 L*&2
%engt!)
>ea#0ata("ntator Tas/ Tag2 %engt!)
Status("ntator Tas/ Tag)

4rte 't! Contro%%er @ S&>
T
i
m
e
"N"T"&T5
>
C5NT>5LLE>
T&>GET
4rteCm#("ntator Tas/ Tag2 L*&2 %en)
>ea#y2Trans$er("ntator Tas/ Tag2
Target Tas/ TagACt%r2 %en)
4rte0ata(Target Tas/ TagACt%r2 %en)
4rteCm#("ntator Tas/ TagACtlr2
L*&ACt%r2 %enACtlr)
>ea#y2Trans$er("ntator Tas/
TagACt%r2
Target Tas/ Tag2 %enACt%r)
Status("ntator Tas/ TagACt%r)
4rte0ata(Target Tas/ Tag2 %enACt%r)
Status("ntator Tas/ Tag)
>EPE&T &*5BE , STEPS &S NEC.

4rte 't! ,-'ay trans$ers @ S&>
T
i
m
e
4rteCm#("ntator Tas/ Tag2 L*&2
%en)
4rteCm#("ntator Tas/ TagACtlr2 L*&ACt%r2
%enACtlr, cnxn-id, Initiator Task Tag)
>ea#y2Trans$er("ntator Tas/ Tag2 Target Tas/ Tag2 %enACt%r)
4rte0ata(Target Tas/ Tag2
%enACt%r)
>EPE&T &*5BE , STEPS &S
NEC.
Status("ntator Tas/
TagACt%r)
Status("ntator Tas/
Tag)
"N"T"&T5> C5NT>5LLE> T&>GET

>ea# 't! ,-'ay trans$ers @ S&>
T
i
m
e
May arrive
out-of order
>ea#Cm#("ntator Tas/ Tag2 L*&2 %en)
>ea#Cm#("ntator Tas/ TagACtlr2 L*&ACt%r2
%enACtlr, cnxn-id, Initiator Task Tag)
>ea#0ata("ntator Tas/ Tag2 %enACt%r)
Status("ntator Tas/
TagACt%r)
Status("ntator Tas/
Tag)
>EPE&T &*5BE 2 STEPS &S NEC

SCS" &pp%
SCS" Protoco%
Ser(ces
"nterconnect
Ser(ces
"nterconnect
Ser(ces
SCS" Protoco%
Ser(ces
SCS" &pp%
SCSI-3 Arch
&pp% Layer
SCS" Transport Layer
"nterconnect %ayer
"nterconnect
Protoco% Ser(ce "nter$ace
Ser(ce 0e%(ery Su)system
"nterconnect Ser(ce "nter$ace
SCS"
3CP
S>P
TCP1"P
3C-P:
"*
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
SCS" %ayers n Lnu.
ST
Tapes
C!ar 0e(ce
SG
Generc
C!ar 0e(ce
SCS" 9n$yng %ayer
Co(erts cm# re+uests to SCS" re+s
?anages current cm# an# nteract 't! :*&
:*& $or %oca%
SCS" #s/s
SCS"
TCP1"P
User sace
!ernel sace
9pper Layer
?# Le(e%
Lo' Le(e%
S0
0s/s
*%oc/ 0e(
S>
c#rom1#(#
*%oc/ 0e(
?ore SCS" Terms

SCS"-18 Ln/e# comman#s8 Eg8 see/@rea#

?any cm#s e.ecute# n se+ n 1 "15 process ("5P)

5ne entry n "5P ;

SCS"-28 "5P ;ng8

9ntagge#8 a%%o's a target to accept one "5P $rom


eac! ntator $or eac! %ogca% unt or target routne

target can accept cm#s $rom an ntator '!%e


e.ecutng "5Ps $rom anot!er

Tagge#8 target can accept a seres o$ "5Ps $rom


t!e same or #$$ ntators. E.ecute# accor#ng to a
; mgmt a%g or n spec$e# or#er

Tagge# +ueung a%%o's #r(e to accept mu%tp%e


comman#s $rom eac! ntator
SCS" Comman# Processng1Concurrency ?o#e%s

Taggng

5r#erng 'rt #$$ tags

?.ng tagge# an# untagge#

Error ?o#e%s
SCS"-2 ?o#e%s

Smp%e ; tag

"5P a##e# to cm# ;6 target #ec#es '!en to


e.ecute (#s/s can use e%e(ator a%g)

Comman#s $rom ot!er ntators a%so e.ecute# n


an or#er se%ecte# n t!e same manner

:ea# o$ ; tag

&## to )egnnng o$ ;

?u%tp%e :ea# o$ ; tags n L"35 or#er

5r#ere# ; tag

"n or#er o$ entry e.cept :ea# o$ ; tag processes


5r#erng 'rt #$$ tags

&%% cm#s rece(e# 't! a S"?PLE ;9E9E T&G msg pror to a cm#
rece(e# 't! an 5>0E>E0 ;9E9E T&G msg2 regar#%ess o$ ntator2
e.ecute# )e$ore t!at comman# 't! t!e 5>0E>E0 ;9E9E T&G msg

&%% cm#s rece(e# 't! a S"?PLE ;9E9E T&G msg a$ter a cm#
rece(e# 't! an 5>0E>E0 ;9E9E T&G msg2 regar#%ess o$ ntator2
e.ecute# a$ter t!at cm# 't! 5>0E>E0 ;9E9E T&G msg
?.ng tagge# an# untagge#

&n "15 process rece(e# $rom an ntator 't!out a +ueue tag


message '!%e t!ere are any tagge# "15 comman#s n t!e
comman# +ueue $rom t!at ntator s an ncorrect ntator
connecton2 un%ess t!ere s a contngent a%%egance con#ton.

&n "15 process rece(e# $rom an ntator 't! a +ueue tag


message '!%e t!ere s an untagge# comman# n t!e
comman# +ueue $rom t!at ntator s a%so an ncorrect
ntator connecton.

"n et!er o$ t!ese cases t!e #r(e remo(es a%% comman#s n


t!e +ueue $rom t!at ntator2 a)orts t!e comman# n process
$ t s $rom t!at ntator2 an# sets t!e Sense Key to &)orte#
Comman# an# t!e Sense Co#e to 5(er%appe# Comman#s
&ttempte#.
SCS" Error ?o#e%s

*us reset8

:ar#8 /%% a%% act(e an# outstan#ng "5P an# reset


state o$ target

So$t8 try to comp%ete outstan#ng "5P an# preser(e


current state o$ target

C%ear ;8 (nee#s taggng) /%%s on%y act(e "5P an# a%% t!ose
'atng $or t!s target routne

&)ort Tag8 /%%s on%y act(e "5P 't!n or#ere# tagge# ;s

&)ort8 K%%s a%% runnng "5P processes an# t!ose n ;

&sync! E(ent Not$caton8 $rom target to ntator

&C&8 sense n$o t!at !as to )e rea# )e$ore ne.t re+uest


Summary

SCS" C%ent Ser(er &rc!

Longe(ty o$ protoco%

SCS" protoco% ta/es nto acct s%o'ness o$ #e(ces

&%so !as to cons#er para%%e%sm '!en


poss)%e

&%so mo#e% errors

No securty mo#e%

Just as t!e SCS" %ayer !an#%es t!e a)o(e ssues2


e(ery ot!er %ayer may !a(e to !an#%e t!e same
ssues

You might also like