home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
S2R10_C.ZIP
/
S2R10C06.SI
< prev
next >
Wrap
Text File
|
1990-03-09
|
66KB
|
1,426 lines
.RR--!--!--!--!--!--!--!--!--!--!--!--!--!--!--!--!--!--!--!--!--!--!--!--!--!--!
.PL 62
.LM 1
.RM 78
.MT3
.MB4
.HM1
.FM1
.PO10
.CW10
.SR2
.UJ0
.OJ0
.UL1
.heSCSI Commands and Status 3/9/90
.foSCSI-2 draft proposed American National Standard 6-# Revision 10c
.pn 1
.cp 30
.aw off
.pm 0
6. SCSI Commands and Status
.aw on
.pm 3
ááThi≤ sectioε define≤ thσ SCS╔ commanΣ anΣ statu≤ structure≤ anΣ give≤ ì
severa∞ examples.
ááB∙ keepinτ t∩ ß minimuφ thσ function≤ essentia∞ t∩ communicatσ viß thi≤ ì
protocol¼ ß widσ rangσ oµ periphera∞ device≤ oµ varyinτ capabilit∙ caε operatσ ì
iε thσ samσ environment« Becausσ subset≤ oµ thσ ful∞ architecturσ ma∙ bσ ì
implemented¼ optiona∞ function≤ arσ noted.
.cp 20
.aw off
.pm 0
6.1. CommanΣ Implementatioε Requirements
.aw on
.pm 3
ááThσ firs⌠ bytσ oµ al∞ SCS╔ command≤ shal∞ contaiε aε operatioε codσ a≤ ì
defineΣ iε thi≤ standard« Target≤ shal∞ implemen⌠ al∞ command≤ witΦ ß ì
mandator∙ operatioε codσ (seσ 6.1.2⌐ botΦ iε sectioε ╖ anΣ iε thσ appropriatσ ì
sectioε fo≥ thei≥ devicσ type.
.cp 10
.aw off
.pm 0
6.1.1. Reserved
.aw on
.pm 3
ááReserveΣ bits¼ fields¼ bytes¼ anΣ codσ value≤ arσ se⌠ asidσ fo≥ futurσ ì
standardization« Thei≥ usσ anΣ interpretatioε ma∙ bσ specifieΣ b∙ futurσ ì
extension≤ t∩ thi≤ standard« ┴ reserveΣ bit¼ field¼ o≥ bytσ shal∞ bσ se⌠ t∩ ì
zero¼ o≥ iε accordancσ witΦ ß futurσ extensioε t∩ thi≤ standard« ┴ targe⌠ ì
tha⌠ receive≤ ß reserveΣ bit¼ field¼ o≥ bytσ tha⌠ i≤ no⌠ zer∩ o≥ receive≤ ß ì
reserveΣ codσ valuσ shal∞ terminatσ thσ commanΣ witΦ CHEC╦ CONDITIO╬ statu≤ ì
anΣ thσ sensσ ke∙ shal∞ bσ se⌠ t∩ ILLEGA╠ REQUEST« I⌠ shal∞ als∩ bσ ì
acceptablσ fo≥ ß targe⌠ t∩ interpre⌠ ß bit¼ field¼ byte¼ o≥ codσ valuσ iε ì
accordancσ witΦ ß futurσ extensioε t∩ thi≤ standard.
.cp 20
.aw off
.pm 1
6.1.2. Operatioε Codσ Types
.aw on
.pm 3
.pm 1
Operatioε
Codσ Typσ Description
¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡-
.lm 12
M Mandator∙ ¡ Command≤ s∩ designateΣ shal∞ bσ implementeΣ iε orde≥ t∩ ì
ááááááááááámee⌠ thσ minimuφ requiremen⌠ oµ thi≤ standard.
O Optiona∞ ¡ Command≤ s∩ designated¼ iµ implemented¼ shal∞ bσ ì
áááááááááááimplementeΣ a≤ defineΣ iε thi≤ standard.
V Vendo≥ specifiπ ¡ Operatioε code≤ s∩ designateΣ arσ availablσ fo≥ ì
ááááááááááávendo≥ defineΣ commands« Seσ thσ vendo≥ specification≤ wherσ ì
ááááááááááácompatibilit∙ i≤ desired.
R ReserveΣ ¡ Operatioε code≤ s∩ designateΣ shal∞ no⌠ bσ used« The∙ ì
áááááááááááarσ reserveΣ fo≥ futurσ extension≤ t∩ thi≤ standard.
.lm 1
.cp 14è.aw off
.pm 0
6.2. CommanΣ Descripto≥ Block
.aw on
.pm 3
áá┴ commanΣ i≤ communicateΣ b∙ sendinτ ß commanΣ descripto≥ blocδ t∩ thσ ì
target« Fo≥ severa∞ commands¼ thσ commanΣ descripto≥ blocδ i≤ accompanieΣ b∙ ì
ß lis⌠ oµ parameter≤ sen⌠ durinτ thσ DAT┴ OU╘ phase« Seσ thσ specifiπ ì
command≤ fo≥ detaileΣ information.
ááThσ commanΣ descripto≥ blocδ alway≤ ha≤ aε operatioε codσ a≤ it≤ firs⌠ bytσ ì
anΣ ß contro∞ bytσ a≤ it≤ las⌠ byte.
ááFo≥ al∞ commands¼ iµ therσ i≤ aε invaliΣ paramete≥ iε thσ commanΣ descripto≥ ì
block¼ theε thσ targe⌠ shal∞ terminatσ thσ commanΣ withou⌠ alterinτ thσ ì
medium.
.cp 20
.aw off
.pm 1
Table 6-1: Typical Command Descriptor Block for Six-byte Commands
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number ⁿ (MSB⌐ |
-----|-----------------------------¡ ---|
2 | Logical Block Address (if required) |
-----|--¡ ---|
3 | (LSB⌐ |
-----|-----------------------------------------------------------------------|
| Transfer Length (if required) |
4 ⁿ Paramete≥ Lis⌠ LengtΦ (iµ required⌐ |
| Allocatioε LengtΦ (if required) |
-----|-----------------------------------------------------------------------|
5 | Control |
==============================================================================
.aw on
.pm 3
.cp 26è.aw off
.pm 1
Table 6-2: Typical Command Descriptor Block for Ten-byte Commands
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | ReservσΣ |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
-----|--¡ ---|
3 | |
-----|--¡ Logical Block Address (if required) ---|
4 | |
-----|--¡ ---|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | Reserved |
-----|-----------------------------------------------------------------------|
7 ⁿ (MSB) Transfer Length (if required) |
-----|--¡ Paramete≥ Lis⌠ LengtΦ (iµ required⌐ ---|
8 | Allocatioε LengtΦ (if required) (LSB) |
-----|-----------------------------------------------------------------------|
9 | Contro∞ |
==============================================================================
.aw on
.pm 3
.cp 30è.aw off
.pm 1
Table 6-3: Typical Command Descriptor Block for Twelve-byte Commands
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
==============================================================================
0 | Operation Code |
-----|-----------------------------------------------------------------------|
1 | Logical Unit Number | ReserveΣ |
-----|-----------------------------------------------------------------------|
2 | (MSB) |
-----|--¡ ---|
3 | |
-----|--¡ Logical Block Address (if required) ---|
4 | |
-----|--¡ ---|
5 | (LSB) |
-----|-----------------------------------------------------------------------|
6 | (MSB⌐ |
-----|--¡ ---|
7 ⁿ Transfer Length (if required) |
-----|--¡ Paramete≥ Lis⌠ LengtΦ (iµ required⌐ ---|
8 | Allocatioε LengtΦ (if required) |
-----|--¡ ---|
9 | (LSB) |
-----|-----------------------------------------------------------------------|
10 | ReserveΣ |
-----|-----------------------------------------------------------------------|
11 | Control |
==============================================================================
.aw on
.pm 3
.cp 10
.aw off
.pm 0
6.2.1. Operatioε Code
.aw on
.pm 3
ááThσ operatioε codσ (Tablσ ╢-4⌐ oµ thσ commanΣ descripto≥ blocδ ha≤ ß grou≡ ì
codσ fielΣ anΣ ß commanΣ codσ field« Thσ threσ-bi⌠ grou≡ codσ fielΣ provide≤ ì
fo≥ eigh⌠ group≤ oµ commanΣ codes« Thσ fivσ-bi⌠ commanΣ codσ fielΣ provide≤ ì
fo≥ thirt∙-tw∩ commanΣ code≤ iε eacΦ group« Thus¼ ß tota∞ oµ 25╢ possiblσ ì
operatioε code≤ exist« Operatioε code≤ arσ defineΣ iε thσ subsequen⌠ Section≤ ì
oµ thi≤ document.
.cp 12
ááThσ grou≡ codσ specifie≤ onσ oµ thσ followinτ groups:
ááGrou≡ ░ ¡ si°-bytσ command≤ (seσ Tablσ ╢-1)
ááGrou≡ ▒ ¡ teε-bytσ command≤ (seσ Tablσ ╢-2)
ááGrou≡ ▓ ¡ teε-bytσ command≤ (seσ Tablσ ╢-2)
ááGrou≡ │ ¡ reserved
ááGrou≡ ┤ ¡ reserved
ááGrou≡ ╡ ¡ twelvσ-bytσ command≤ (seσ Tablσ ╢-3)
ááGrou≡ ╢ ¡ vendo≥ specifiπ
ááGrou≡ ╖ ¡ vendo≥ specific
.cp 8è.aw off
.pm 1
Table 6-4: Operation Code
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
==============================================================================
| Group Code | Command Code |
==============================================================================
.aw on
.pm 3
.cp 10
.aw off
.lm 1
.pm 0
6.2.2. Logica∞ Uni⌠ Number
.aw on
.pm 3
ááThσ logica∞ uni⌠ numbe≥ i≤ defineΣ iε thσ IDENTIF┘ messagσ (5.6.7)« Thσ ì
targe⌠ shal∞ ignorσ thσ logica∞ uni⌠ numbe≥ specifieΣ withiε thσ commanΣ ì
descripto≥ blocδ iµ aε IDENTIF┘ messagσ wa≤ received« I⌠ i≤ recommendeΣ tha⌠ ì
thσ logica∞ uni⌠ numbe≥ iε thσ commanΣ descripto≥ blocδ bσ se⌠ t∩ zero«
.lm 3
ááNOTICE║ Thσ logica∞ uni⌠ numbe≥ fielΣ i≤ includeΣ iε thσ commanΣ descripto≥ ì
ááblocδ fo≥ compatibilit∙ witΦ somσ SCS╔-▒ devices« Thi≤ fielΣ ma∙ bσ ì
ááreclaimeΣ iε SCS╔-3« Ne≈ implementation≤ shoulΣ usσ thσ outbounΣ IDENTIF┘ ì
áámessage¼ whicΦ i≤ mandator∙ iε SCS╔-2¼ t∩ establisΦ thσ I_T_╠ nexus.
.lm 1
.cp 10
.aw off
.pm 0
6.2.3. Logica∞ Blocδ Address
.aw on
.pm 3
ááThσ logica∞ blocδ addres≤ oε logica∞ unit≤ o≥ withiε ß partitioε oε devicσ ì
volume≤ shal∞ begiε witΦ blocδ zer∩ anΣ bσ contiguou≤ u≡ t∩ thσ las⌠ logica∞ ì
blocδ oε tha⌠ logica∞ uni⌠ o≥ withiε tha⌠ partition.
áá┴ si°-bytσ commanΣ descripto≥ blocδ contain≤ ß 2▒-bi⌠ logica∞ blocδ address« ì
Thσ teε-bytσ anΣ thσ twelvσ-bytσ commanΣ descripto≥ block≤ contaiε 3▓-bi⌠ ì
logica∞ blocδ addresses« Logica∞ blocδ addresse≤ iε additiona∞ paramete≥ datß ì
havσ thei≥ lengtΦ specifieΣ fo≥ eacΦ occurrence« Seσ thσ specifiπ commanΣ ì
descriptions.
.cp 10
.aw off
.pm 0
6.2.4. Transfe≥ Length
.aw on
.pm 3
ááThσ transfe≥ lengtΦ fielΣ specifie≤ thσ amoun⌠ oµ datß t∩ bσ transferred¼ ì
usuall∙ thσ numbe≥ oµ blocks« Fo≥ severa∞ command≤ thσ transfe≥ lengtΦ ì
indicate≤ thσ requesteΣ numbe≥ oµ byte≤ t∩ bσ sen⌠ a≤ defineΣ iε thσ commanΣ ì
description« Fo≥ thesσ command≤ thσ transfe≥ lengtΦ fielΣ ma∙ bσ identifieΣ ì
b∙ ß differen⌠ name« Seσ thσ followinτ description≤ anΣ thσ individua∞ ì
commanΣ description≤ fo≥ furthe≥ information.
ááCommand≤ tha⌠ usσ onσ bytσ fo≥ thσ transfe≥ lengtΦ allo≈ u≡ t∩ 25╢ block≤ oµ ì
datß t∩ bσ transferreΣ b∙ onσ command« ┴ transfe≥ lengtΦ valuσ oµ ▒ t∩ 25╡ ì
indicate≤ thσ numbe≥ oµ block≤ tha⌠ shal∞ bσ transferred« ┴ valuσ oµ zer∩ ì
indicate≤ 25╢ blocks.
ááIε command≤ tha⌠ usσ multiplσ byte≤ fo≥ thσ transfe≥ length¼ ß transfe≥ ì
lengtΦ oµ zer∩ indicate≤ tha⌠ n∩ datß transfe≥ shal∞ takσ place« ┴ valuσ oµ ì
onσ o≥ greate≥ indicate≤ thσ numbe≥ oµ block≤ tha⌠ shal∞ bσ transferred.
ááRefe≥ t∩ thσ specifiπ commanΣ descriptioε fo≥ furthe≥ information.
.cp 10è.aw off
.pm 0
6.2.5. Paramete≥ Lis⌠ Length
.aw on
.pm 3
ááThσ paramete≥ lis⌠ lengtΦ i≤ useΣ t∩ specif∙ thσ numbe≥ oµ byte≤ sen⌠ durinτ ì
thσ DAT┴ OU╘ phase« Thi≤ fielΣ i≤ typicall∙ useΣ iε commanΣ descripto≥ block≤ ì
fo≥ parameter≤ tha⌠ arσ sen⌠ t∩ ß targe⌠ (e.g.¼ modσ parameters¼ diagnostiπ ì
parameters¼ loτ parameters¼ etc.)« ┴ paramete≥ lengtΦ oµ zer∩ indicate≤ tha⌠ ì
n∩ datß shal∞ bσ transferred« Thi≤ conditioε shal∞ no⌠ bσ considereΣ a≤ aε ì
error«
.cp 10
.aw off
.pm 0
6.2.6. Allocatioε Length
.aw on
.pm 3
ááThσ allocatioε lengtΦ fielΣ specifie≤ thσ maximuφ numbe≥ oµ byte≤ tha⌠ aε ì
initiato≥ ha≤ allocateΣ fo≥ returneΣ data« Aε allocatioε lengtΦ oµ zer∩ ì
indicate≤ tha⌠ n∩ datß shal∞ bσ transferred« Thi≤ conditioε shal∞ no⌠ bσ ì
considereΣ a≤ aε error« Thσ targe⌠ shal∞ terminatσ thσ DAT┴ I╬ phasσ wheε ì
allocatioε lengtΦ byte≤ havσ beeε transferreΣ o≥ wheε al∞ availablσ datß havσ ì
beeε transferreΣ t∩ thσ initiator¼ whicheve≥ i≤ less«
ááThσ allocatioε lengtΦ i≤ useΣ t∩ limi⌠ thσ maximuφ amoun⌠ oµ datß (e.g.¼ ì
sensσ data¼ modσ data¼ loτ data¼ diagnostiπ data¼ etc.⌐ returneΣ t∩ aε ì
initiator.
.cp 45è.cp 10
.aw off
.pm 0
6.2.7. Contro∞ Field
.aw on
.pm 3
ááThσ contro∞ fielΣ i≤ thσ las⌠ bytσ oµ ever∙ commanΣ descripto≥ block« Thσ ì
contro∞ fielΣ i≤ defineΣ iε Tablσ ╢-5.
.cp 35
.aw off
.pm 1
Table 6-5: Control Field
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
==============================================================================
| Vendor specific | ReserveΣ | Flag | Link |
==============================================================================
.aw on
.pm 3
ááThσ flaτ bi⌠ specifie≤ whicΦ messagσ thσ targe⌠ shal∞ returε t∩ thσ ì
initiato≥ iµ thσ linδ bi⌠ i≤ onσ anΣ thσ commanΣ complete≤ withou⌠ error« ì
Implementatioε oµ thσ flaτ bi⌠ i≤ optional«
ááThσ flaτ bi⌠ shoulΣ bσ se⌠ t∩ zer∩ iµ thσ linδ bi⌠ i≤ zero« Iµ linδ bi⌠ i≤ ì
zer∩ anΣ thσ flaτ bi⌠ i≤ one¼ thσ targe⌠ shal∞ returε CHEC╦ CONDITIO╬ status« ì
Thσ sensσ ke∙ shal∞ bσ se⌠ t∩ ILLEGA╠ REQUEST.
ááIµ thσ flaτ bi⌠ i≤ zer∩ anΣ thσ linδ bi⌠ i≤ one¼ anΣ iµ thσ commanΣ ì
complete≤ successfully¼ thσ targe⌠ shal∞ senΣ thσ LINKE─ COMMAN─ COMPLET┼ ì
message« Iµ thσ flaτ bi⌠ i≤ onσ anΣ thσ linδ bi⌠ i≤ one¼ anΣ iµ thσ commanΣ ì
complete≤ successfully¼ thσ targe⌠ shal∞ senΣ thσ LINKE─ COMMAN─ COMPLET┼ ì
(WIT╚ FLAG⌐ message«
.pm 0
.lm 3
ááIMPLEMENTOR╙ NOTE║ Thσ flaτ bi⌠ i≤ typicall∙ useΣ t∩ causσ aε interrup⌠ iε ì
ááthσ initiato≥ betweeε linkeΣ commands.
.pm 3
.lm 1
ááThσ linδ bi⌠ i≤ useΣ t∩ continuσ thσ I/╧ proces≤ acros≤ multiplσ commands« ì
Implementatioε oµ thσ linδ bi⌠ i≤ optional«
áá┴ linδ bi⌠ oµ onσ indicate≤ tha⌠ thσ initiato≥ request≤ ß continuatioε oµ ì
thσ I/╧ proces≤ anΣ tha⌠ thσ targe⌠ shoulΣ ente≥ thσ commanΣ phasσ upoε ì
successfu∞ completioε oµ thσ curren⌠ command«
ááIµ thσ linδ bi⌠ i≤ one¼ anΣ iµ thσ commanΣ complete≤ successfully¼ thσ ì
targe⌠ shal∞ returε INTERMEDIAT┼ o≥ INTERMEDIAT┼-CONDITIO╬ ME╘ statu≤ anΣ ì
shal∞ theε senΣ onσ oµ thσ tw∩ message≤ defineΣ b∙ thσ flaτ bit.
ááIµ eithe≥ oµ thσ linδ anΣ flaτ bit≤ arσ se⌠ t∩ one¼ anΣ thσ targe⌠ doe≤ no⌠ ì
implemen⌠ linkeΣ commands¼ i⌠ shal∞ returε CHEC╦ CONDITIO╬ status« Thσ sensσ ì
ke∙ shal∞ bσ se⌠ t∩ ILLEGA╠ REQUEST.
.cp 20è.aw off
.pm 0
6.3. Status
.aw on
.pm 3
ááThσ statu≤ bytσ anΣ statu≤ bytσ codσ arσ specifieΣ iε Table≤ ╢-╢ anΣ ╢-7« ┴ ì
statu≤ bytσ shal∞ bσ sen⌠ froφ thσ targe⌠ t∩ thσ initiato≥ durinτ thσ STATU╙ ì
phasσ a⌠ thσ completioε oµ eacΦ commanΣ unles≤ thσ commanΣ i≤ terminateΣ b∙ ì
onσ oµ thσ followinτ events║
áá(1⌐ aε ABOR╘ message
áá(2⌐ aε ABOR╘ TA╟ message
áá(3⌐ ß BU╙ DEVIC┼ RESE╘ message
áá(4⌐ ß CLEA╥ QUEU┼ message
áá(5⌐ ß harΣ rese⌠ condition
áá(6⌐ aε unexpecteΣ disconnec⌠ (seσ 5.1.1)
ááThσ STATU╙ phasσ normall∙ occur≤ a⌠ thσ enΣ oµ ß commanΣ bu⌠ iε somσ casσ ì
ma∙ occu≥ prio≥ t∩ transferrinτ thσ commanΣ descripto≥ block.
.cp 10
.aw off
.pm 1
Table 6-6: Status Byte
==============================================================================
Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
==============================================================================
| Reserved | Status Byte Code |Reserved|
==============================================================================
.aw on
.pm 3
.cp 30
.aw off
.pm 1
Table 6-7: Status Byte Code
==============================================================================
Bits of Status Byte
-----------------------------
7 6 5 4 3 2 1 0 Status
------------------------------------------------------------------------------
R R 0 0 0 0 0 R GOOD
R R 0 0 0 0 1 R CHECK CONDITION
R R 0 0 0 1 0 R CONDITION MET
R R 0 0 1 0 0 R BUSY
R R 0 1 0 0 0 R INTERMEDIATE
R R 0 1 0 1 0 R INTERMEDIATE-CONDITION MET
R R 0 1 1 0 0 R RESERVATION CONFLICT
R R 1 0 0 0 1 R COMMAN─ TERMINATED
R R 1 0 1 0 0 R QUEU┼ FULL
Al∞ Othe≥ Codes Reserved
==============================================================================
Key: R - Reserved bit
.aw on
.pm 3
.cp 5
áá┴ definitioε oµ thσ statu≤ bytσ code≤ i≤ giveε below.
ááGOOD.é Thi≤ statu≤ indicate≤ tha⌠ thσ targe⌠ ha≤ successfull∙ completeΣ thσ ì
command.
ááCHEC╦ CONDITION.é Thi≤ statu≤ indicate≤ tha⌠ ß contingen⌠ allegiancσ ì
conditioε ha≤ occurreΣ (seσ 6.6).
.c≡ 6èááCONDITIO╬ MET.é Thi≤ statu≤ o≥ INTERMEDIAT┼-CONDITIO╬ ME╘ i≤ returneΣ ì
wheneve≥ thσ requesteΣ operatioε i≤ satisfieΣ (seσ thσ SEARC╚ DAT┴ anΣ PR┼-ì
FETC╚ commands)«
ááBUSY.é Thi≤ statu≤ indicate≤ tha⌠ thσ targe⌠ i≤ busy« Thi≤ statu≤ shal∞ bσ ì
returneΣ wheneve≥ ß targe⌠ i≤ unablσ t∩ accep⌠ ß commanΣ froφ aε otherwisσ ì
acceptablσ initiato≥ (i.e.¼ n∩ reservatioε conflicts)« Thσ recommendeΣ ì
initiato≥ recover∙ actioε i≤ t∩ issuσ thσ commanΣ agaiε a⌠ ß late≥ time.
.cp 5
ááINTERMEDIATE.é Thi≤ statu≤ o≥ INTERMEDIAT┼-CONDITIO╬ ME╘ shal∞ bσ returneΣ ì
fo≥ ever∙ successfull∙ completeΣ commanΣ iε ß serie≤ oµ linkeΣ command≤ ì
(excep⌠ thσ las⌠ command)¼ unles≤ thσ commanΣ i≤ terminateΣ witΦ CHEC╦ ì
CONDITION¼ RESERVATIO╬ CONFLICT¼ o≥ COMMAN─ TERMINATE─ status« Iµ ì
INTERMEDIAT┼ o≥ INTERMEDIAT┼-CONDITIO╬ ME╘ statu≤ i≤ no⌠ returned¼ thσ serie≤ ì
oµ linkeΣ command≤ i≤ terminateΣ anΣ thσ I/╧ proces≤ i≤ ended.
ááINTERMEDIAT┼-CONDITIO╬ MET.é Thi≤ statu≤ i≤ thσ combinatioε oµ thσ CONDITIO╬ ì
ME╘ anΣ INTERMEDIAT┼ statuses.
ááRESERVATIO╬ CONFLICT.é Thi≤ statu≤ shal∞ bσ returneΣ wheneve≥ aε initiato≥ ì
attempt≤ t∩ acces≤ ß logica∞ uni⌠ o≥ aε exten⌠ withiε ß logica∞ uni⌠ tha⌠ i≤ ì
reserveΣ witΦ ß conflictinτ reservatioε typσ fo≥ anothe≥ SCS╔ devicσ (seσ thσ ì
RESERV┼ anΣ RESERV┼ UNI╘ commands)« Thσ recommendeΣ initiato≥ recover∙ actioε ì
i≤ t∩ issuσ thσ commanΣ agaiε a⌠ ß late≥ time.
ááCOMMAN─ TERMINATED.é Thi≤ statu≤ shal∞ bσ returneΣ wheneve≥ thσ targe⌠ ì
terminate≤ thσ curren⌠ I/╧ proces≤ afte≥ receivinτ ß TERMINAT┼ I/╧ PROCES╙ ì
messagσ (seσ 5.6.22)« Thi≤ statu≤ als∩ indicate≤ tha⌠ ß contingen⌠ allegiancσ ì
conditioε ha≤ occurreΣ (seσ 6.6).
ááQUEU┼ FULL.é Thi≤ statu≤ shal∞ bσ implementeΣ iµ taggeΣ queuinτ i≤ ì
implemented« Thi≤ statu≤ i≤ returneΣ wheε ß SIMPL┼ QUEU┼ TAG¼ ORDERE─ QUEU┼ ì
TAG¼ o≥ HEA─ O╞ QUEU┼ TA╟ messagσ i≤ receiveΣ anΣ thσ commanΣ queuσ i≤ full« ì
Thσ I/╧ proces≤ i≤ no⌠ placeΣ iε thσ commanΣ queue.
.lm 1
.pm 3
.cp 20
.aw off
.pm 0
6.4. CommanΣ Examples
.aw on
.pm 3
ááThσ followinτ section≤ givσ example≤ oµ typica∞ commanΣ processinτ iε thσ ì
SCS╔ environment«
.cp 10
.aw off
.pm 0
6.4.1. Singlσ CommanΣ Example
.aw on
.pm 3
ááAε I/╧ proces≤ containinτ onσ untaggeΣ REA─ commanΣ i≤ useΣ iε thi≤ sectioε ì
t∩ illustratσ ß simplσ I/╧ proces≤ oε thσ SCS╔ bus« Thi≤ examplσ doe≤ no⌠ ì
includσ erro≥ o≥ exceptioε conditions.
ááThσ initiato≥ ha≤ onσ se⌠ oµ activσ pointer≤ tha⌠ include≤ ß commanΣ ì
pointer¼ ß datß pointer¼ anΣ ß statu≤ pointer« Iε addition¼ thσ initiato≥ ha≤ ì
onσ se⌠ oµ saveΣ pointer≤ fo≥ eacΦ I/╧ proces≤ tha⌠ i⌠ i≤ ablσ t∩ concurrentl∙ ì
manage« Thσ initiato≥ set≤ u≡ thσ saveΣ pointer≤ t∩ poin⌠ t∩ thσ appropriatσ ì
byte≤ fo≥ thσ I/╧ proces≤ anΣ copie≤ thσ saveΣ pointer≤ t∩ thσ activσ ì
pointers« I⌠ theε arbitrate≤ fo≥ thσ SCS╔ bus¼ anΣ upoε winninτ arbitration¼ ì
select≤ thσ target« Oncσ thσ targe⌠ i≤ selected¼ thσ targe⌠ assume≤ contro∞ ì
oµ thσ I/╧ process.
è.cp 6
ááDurinτ thσ SELECTIO╬ phase¼ thσ initiato≥ assert≤ thσ AT╬ signa∞ t∩ inforφ ì
thσ targe⌠ tha⌠ thσ initiato≥ wishe≤ t∩ senΣ ß message« Thσ targe⌠ enter≤ thσ ì
MESSAG┼ OU╘ phasσ anΣ transfer≤ thσ IDENTIF┘ messagσ froφ thσ initiator« Thi≤ ì
messagσ inform≤ thσ targe⌠ oµ whicΦ logica∞ uni⌠ i≤ t∩ bσ used« A⌠ thi≤ ì
point¼ aε I_T_╠ nexu≤ ha≤ beeε establisheΣ fo≥ thσ I/╧ process« Thi≤ nexu≤ ì
associate≤ thσ initiator'≤ pointer≤ witΦ thσ I/╧ process.
ááThσ targe⌠ switche≤ t∩ thσ COMMAN─ phasσ anΣ transfer≤ thσ commanΣ ì
descripto≥ blocδ froφ thσ initiator« Iε thi≤ case¼ thσ commanΣ descripto≥ ì
blocδ contain≤ ß REA─ command« Thσ targe⌠ interpret≤ thσ commanΣ anΣ switche≤ ì
t∩ thσ DAT┴ I╬ phase¼ transfer≤ thσ data¼ switche≤ t∩ STATU╙ phase¼ send≤ GOO─ ì
status¼ switche≤ t∩ MESSAG┼ I╬ phase¼ anΣ transfer≤ ß COMMAN─ COMPLET┼ ì
message« Afte≥ successfull∙ sendinτ thσ COMMAN─ COMPLET┼ message¼ thσ targe⌠ ì
goe≤ t∩ thσ BU╙ FRE┼ phasσ b∙ releasinτ thσ BS┘ signa∞ anΣ thσ I/╧ proces≤ ì
ends.
.cp 10
.aw off
.pm 0
6.4.2. Disconnec⌠ Example
.aw on
.pm 3
ááIε thσ abovσ singlσ commanΣ example¼ thσ lengtΦ oµ timσ necessar∙ t∩ obtaiε ì
thσ datß ma∙ requirσ ß timσ-consuminτ physica∞ positioninτ operation« Iε ì
orde≥ t∩ improvσ systeφ throughput¼ thσ targe⌠ ma∙ disconnec⌠ froφ thσ ì
initiator¼ thereb∙ freeinτ thσ SCS╔ bu≤ t∩ allo≈ othe≥ I/╧ proces≤ t∩ occur«
ááAfte≥ thσ targe⌠ ha≤ receiveΣ thσ REA─ commanΣ (anΣ ha≤ determineΣ tha⌠ ì
therσ wil∞ bσ ß delay)¼ i⌠ disconnect≤ froφ thσ SCS╔ bu≤ b∙ sendinτ ß ì
DISCONNEC╘ messagσ anΣ b∙ goinτ t∩ thσ BU╙ FRE┼ phase.
ááAfte≥ thσ targe⌠ retrieve≤ thσ requesteΣ datß froφ thσ periphera∞ devicσ i⌠ ì
arbitrate≤ fo≥ thσ SCS╔ bus« Upoε winninτ arbitration¼ i⌠ reselect≤ thσ ì
initiato≥ anΣ send≤ aε IDENTIF┘ messagσ t∩ thσ initiato≥ viß thσ MESSAG┼ I╬ ì
phase« Thi≤ revive≤ thσ I_T_╠ nexu≤ s∩ tha⌠ thσ initiato≥ caε retrievσ thσ ì
correc⌠ se⌠ oµ pointer≤ fo≥ thσ I/╧ process« Thσ initiato≥ restore≤ thσ ì
activσ pointer≤ t∩ thei≥ mos⌠ recen⌠ saveΣ value≤ (which¼ iε thi≤ case¼ arσ ì
thσ initia∞ values⌐ anΣ thσ targe⌠ continue≤ (a≤ iε thσ singlσ commanΣ ì
example⌐ t∩ finisΦ thσ I/╧ process.
ááIµ targe⌠ wishe≤ t∩ disconnec⌠ afte≥ transferrinτ par⌠ oµ thσ datß (e.g.¼ ì
whilσ crossinτ ß cylinde≥ boundary)¼ i⌠ ma∙ d∩ s∩ b∙ sendinτ ß SAV┼ DAT┴ ì
POINTE╥ messagσ anΣ ß DISCONNEC╘ messagσ t∩ thσ initiato≥ anΣ theε ì
disconnecting« Wheε reconnectioε i≤ completed¼ thσ curren⌠ datß pointe≥ i≤ ì
restoreΣ t∩ it≤ valuσ immediatel∙ prio≥ t∩ thσ SAV┼ DAT┴ POINTE╥ message.
ááOε thosσ occasion≤ wheε aε erro≥ o≥ exceptioε conditioε occur≤ anΣ thσ ì
targe⌠ elect≤ t∩ repea⌠ thσ informatioε transfer¼ thσ targe⌠ ma∙ repea⌠ thσ ì
transfe≥ b∙ eithe≥ issuinτ ß RESTOR┼ POINTER╙ messagσ o≥ b∙ disconnectinτ ì
withou⌠ issuinτ ß SAV┼ DAT┴ POINTE╥ message« Wheε reconnectioε i≤ completed¼ ì
thσ mos⌠ recen⌠ saveΣ pointe≥ value≤ arσ restored.
.cp 10è.aw off
.pm 0
6.4.3. LinkeΣ CommanΣ Example
.aw on
.pm 3
ááAε I/╧ proces≤ ma∙ contaiε multiplσ command≤ "linkedó together« Upoε ì
completinτ ß linkeΣ commanΣ successfully¼ thσ targe⌠ automaticall∙ proceed≤ t∩ ì
thσ nex⌠ linkeΣ commanΣ fo≥ thσ I/╧ process« Al∞ command≤ iε ß serie≤ oµ ì
linkeΣ command≤ arσ addresseΣ t∩ thσ samσ nexu≤ anΣ arσ par⌠ oµ ß singlσ I/╧ ì
process.
ááThσ command≤ arσ no⌠ entirel∙ independent« Wheε usinτ thσ relativσ addres≤ ì
bi⌠ (seσ 8.1.10)¼ thσ addres≤ oµ thσ las⌠ logica∞ blocδ accesseΣ b∙ onσ oµ thσ ì
command≤ i≤ availablσ t∩ thσ nex⌠ command« Thu≤ onσ caε searcΦ fo≥ ß ì
particula≥ datß patterε usinτ ß SEARC╚ DAT┴ commanΣ anΣ theε reaΣ thσ logica∞ ì
blocδ containinτ thσ datß patterε witΦ ß REA─ commanΣ linkeΣ t∩ thσ SEARC╚ ì
DAT┴ command« Onσ caε als∩ reaΣ ß logica∞ blocδ a⌠ ß specifieΣ displacemen⌠ ì
froφ thσ blocδ containinτ thσ datß pattern.
áá┴ LINKE─ COMMAN─ COMPLET┼ o≥ LINKE─ COMMAN─ COMPLET┼ (WIT╚ FLAG⌐ messagσ i≤ ì
sen⌠ froφ thσ targe⌠ t∩ thσ initiato≥ t∩ indicatσ tha⌠ ß linkeΣ commanΣ ì
completed« Thσ initiato≥ theε update≤ thσ saveΣ pointer≤ fo≥ thσ nexu≤ s∩ ì
tha⌠ subsequen⌠ transfer≤ froφ thσ targe⌠ referencσ thσ nex⌠ commanΣ oµ thσ ì
series« CommanΣ processinτ oµ linkeΣ anΣ singlσ command≤ i≤ simila≥ excep⌠ ì
tha⌠ relativσ addressinτ i≤ permitteΣ iε linkeΣ commands.
.cp 5
ááFo≥ example¼ ß successfu∞ completioε oµ ß SEARC╚ DAT┴ EQUA╠ commanΣ cause≤ ì
thσ targe⌠ t∩ continuσ witΦ thσ linkeΣ REA─ commanΣ froφ thσ initiator« Iµ ì
thσ relativσ addres≤ bi⌠ iε thσ REA─ commanΣ ha≤ beeε se⌠ t∩ one¼ anΣ thσ ì
addres≤ fielΣ oµ thσ REA─ commanΣ i≤ se⌠ t∩ zero¼ thσ targe⌠ transfer≤ thσ ì
successfull∙ searcheΣ blocδ t∩ thσ initiator«
.cp 20
.aw off
.pm 0
6.5. CommanΣ Processinτ Consideration≤ anΣ Exceptioε Condition≤
.aw on
.pm 3
ááThσ followinτ section≤ describσ somσ exceptioε condition≤ anΣ error≤ ì
associateΣ witΦ commanΣ processinτ anΣ thσ sequencinτ oµ commands.
.cp 10
.aw off
.pm 0
6.5.1. Programmablσ Operatinτ Definition
.aw on
.pm 3
ááSomσ application≤ requirσ tha⌠ thσ operatinτ definitioε oµ ß logica∞ uni⌠ bσ ì
modifieΣ t∩ mee⌠ thσ specia∞ requirement≤ oµ ß particula≥ initiator« Thσ ì
prograφ-controlleΣ modificatioε oµ thσ operatinτ definitioε i≤ typicall∙ ì
provideΣ t∩ allo≈ operatinτ system≤ t∩ changσ thσ operatinτ definitioε oµ ß ì
morσ recentl∙ developeΣ target≤ t∩ onσ whicΦ i≤ morσ compatiblσ witΦ thσ ì
operatinτ system« Thi≤ abilit∙ require≤ tha⌠ thσ systeφ compl∙ witΦ thσ lo≈-ì
leve∞ hardwarσ definition≤ oµ SCS╔-2.
ááThσ parameter≤ tha⌠ caε bσ changeΣ b∙ modifyinτ thσ operatinτ definitioε oµ ì
ß logica∞ uni⌠ includσ thσ vendo≥ identification¼ thσ devicσ type¼ thσ devicσ ì
model¼ thσ SCS╔ compliancσ level¼ thσ SCS╔ specificatioε level¼ thσ commanΣ ì
set¼ anΣ othe≥ parameters« Thσ lo≈-leve∞ hardwarσ parameter≤ includinτ signa∞ ì
timinτ anΣ parit∙ definition≤ canno⌠ bσ changeΣ b∙ modifyinτ thσ operatinτ ì
definition« Thσ presen⌠ operatinτ definitioε oµ ß logica∞ uni⌠ witΦ respec⌠ ì
t∩ aε initiato≥ caε bσ determineΣ a⌠ an∙ timσ b∙ executioε oµ aε INQUIR┘ ì
command« Iε somσ vendo≥-specifiπ cases¼ i⌠ ma∙ als∩ bσ necessar∙ t∩ perforφ ì
othe≥ command≤ includinτ MOD┼ SENS┼ anΣ REA─ CAPACITY.
.cp 3èááEacΦ logica∞ uni⌠ begin≤ a⌠ ß particula≥ operatinτ definition« Iµ thσ ì
logica∞ uni⌠ support≤ thσ CHANG┼ DEFINITIO╬ command¼ thσ presen⌠ operatinτ ì
definitioε caε bσ changeΣ t∩ an∙ othe≥ operatinτ definitioε supporteΣ b∙ thσ ì
logica∞ unit« Thσ actua∞ detail≤ oµ thσ operatinτ definitioε oµ ß logica∞ ì
uni⌠ arσ vendo≥-specific« Iµ thσ operatinτ definitioε i≤ changeΣ t∩ onσ tha⌠ ì
doe≤ no⌠ includσ thσ CHANG┼ DEFINITIO╬ command¼ thσ targe⌠ shoulΣ continuσ t∩ ì
accep⌠ thσ CHANG┼ DEFINITIO╬ command.
ááIµ aε erro≥ occur≤ durinτ executioε oµ ß CHANG┼ DEFINITIO╬ command¼ thσ ì
origina∞ operatinτ definitioε remain≤ iε effec⌠ afte≥ thσ commanΣ i≤ executed« ì
Thσ ne≈ operatinτ definitioε become≤ activσ onl∙ afte≥ successfu∞ executioε oµ ì
thσ CHANG┼ DEFINITIO╬ command«
ááSincσ ne≈ operatinτ definition≤ ma∙ precludσ thσ executioε oµ I/╧ processe≤ ì
tha⌠ arσ alread∙ iε progress¼ thσ targe⌠ ma∙ disconnec⌠ t∩ allo≈ completioε oµ ì
an∙ I/╧ processe≤ tha⌠ arσ iε progress« Operatinτ definitioε change≤ tha⌠ ma∙ ì
causσ conflict≤ witΦ thσ norma∞ operatioε froφ othe≥ initiator≤ shal∞ bσ ì
indicateΣ t∩ thosσ initiator≤ b∙ generatinτ ß uni⌠ attentioε conditioε fo≥ ì
eacΦ othe≥ initiator« Thσ additiona∞ sensσ codσ shal∞ bσ se⌠ t∩ CHANGE─ ì
OPERATIN╟ DEFINITION.
.cp 10
ááAε initiato≥ ma∙ reques⌠ ß lis⌠ oµ thσ operatinτ definition≤ tha⌠ thσ targe⌠ ì
support≤ anΣ descriptivσ tex⌠ fo≥ eacΦ operatinτ definitioε usinτ thσ INQUIR┘ ì
command.
.cp 10
.aw off
.pm 0
6.5.2. Incorrec⌠ Initiato≥ Connection
.aw on
.pm 3
ááAε incorrec⌠ initiato≥ connectioε occur≤ oε ß reconnectioε if:
áá(1⌐ aε initiato≥ attempt≤ t∩ reconnec⌠ t∩ aε I/╧ process¼ and
áá(2⌐ ß sof⌠ rese⌠ conditioε ha≤ no⌠ occurred¼ anΣ
áá(3⌐ thσ initiato≥ doe≤ no⌠ senΣ aε ABORT¼ ABOR╘ TAG¼ BU╙ DEVIC┼ RESET¼ CLEA╥ ì
QUEUE¼ o≥ TERMINAT┼ I/╧ PROCES╙ messagσ durinτ thσ samσ MESSAG┼ OU╘ phasσ a≤ ì
thσ IDENTIF┘ message.
ááAε incorrec⌠ initiato≥ connectioε als∩ occur≤ oε aε initia∞ connectioε wheε ì
aε initiator:
áá(1⌐ attempt≤ t∩ establisΦ aε I_T_L_╤ nexu≤ wheε aε I_T_╠ nexu≤ alread∙ ì
exist≤ froφ ß previou≤ connection¼ or
áá(2⌐ attempt≤ t∩ establisΦ aε I_T_╠ nexu≤ wheε aε I_T_L_╤ nexu≤ alread∙ ì
exist≤ unles≤ therσ i≤ ß contingen⌠ allegiancσ o≥ extendeΣ contingen⌠ ì
allegiancσ conditioε presen⌠ fo≥ thσ logica∞ uni⌠ o≥ targe⌠ routine.
áá┴ targe⌠ tha⌠ detect≤ aε incorrec⌠ initiato≥ connectioε shal∞ abor⌠ al∞ I/╧ ì
processe≤ fo≥ thσ initiato≥ oε thσ logica∞ uni⌠ o≥ targe⌠ routinσ anΣ shal∞ ì
returε CHEC╦ CONDITIO╬ status« Thσ sensσ ke∙ shal∞ bσ se⌠ t∩ ABORTE─ COMMAN─ ì
anΣ thσ additiona∞ sensσ codσ shal∞ bσ se⌠ t∩ OVERLAPPE─ COMMAND╙ ATTEMPTED.
.pm 3
ááIµ aε initiato≥ reconnect≤ t∩ aε I/╧ proces≤ anΣ ß sof⌠ rese⌠ conditioε ha≤ ì
occurred¼ thσ targe⌠ shal∞ mee⌠ thσ requirement≤ oµ 5.2.2.2.
.lm 3
ááIMPLEMENTOR╙ NOTES║
áá(1⌐ Aε incorrec⌠ initiato≥ connectioε ma∙ bσ indicativσ oµ ß seriou≤ erro≥ ì
ááand¼ iµ no⌠ detected¼ coulΣ resul⌠ iε aε I/╧ proces≤ operatinτ witΦ ß wronτ ì
ááse⌠ oµ pointers« Thi≤ i≤ considereΣ ß catastrophiπ failurσ oε thσ par⌠ oµ ì
ááthσ initiator« Therefore¼ vendo≥-specifiπ erro≥ recover∙ procedure≤ ma∙ bσ ìèáárequireΣ t∩ guaranteσ thσ datß integrit∙ oε thσ medium« Thσ targe⌠ ma∙ ì
ááreturε additiona∞ sensσ datß t∩ aiΣ iε thi≤ erro≥ recover∙ procedurσ (e.g.¼ ì
áásequentia∞-acces≤ device≤ ma∙ returε thσ residuσ oµ block≤ remaininτ t∩ bσ ì
ááwritteε o≥ reaΣ a⌠ thσ timσ thσ seconΣ commanΣ wa≤ received).
áá(2⌐ Somσ target≤ ma∙ no⌠ detec⌠ aε incorrec⌠ initiato≥ connectioε unti∞ ì
ááafte≥ thσ commanΣ descripto≥ blocδ ha≤ beeε received.
.pm 3
.lm 1
.cp 10
.aw off
.pm 0
6.5.3. Selectioε oµ aε InvaliΣ Logica∞ Unit
.aw on
.pm 3
ááThσ target'≤ responsσ t∩ selectioε oµ ß logica∞ uni⌠ whicΦ i≤ no⌠ valiΣ i≤ ì
describeΣ iε thσ followinτ paragraphs.
ááThσ logica∞ uni⌠ ma∙ no⌠ bσ valiΣ because:
áá(1⌐ thσ targe⌠ doe≤ no⌠ suppor⌠ thσ logica∞ uni⌠ (e.g.¼ somσ target≤ suppor⌠ ì
onl∙ onσ periphera∞ device)« Iε responsσ t∩ aε INQUIR┘ commanΣ thσ targe⌠ ì
shal∞ returε thσ INQUIR┘ datß witΦ thσ periphera∞ qualifie≥ se⌠ t∩ thσ valuσ ì
requireΣ iε Tablσ ╖-16« Iε responsσ t∩ an∙ othe≥ commanΣ excep⌠ REQUES╘ SENS┼ ì
thσ targe⌠ shal∞ terminatσ thσ commanΣ witΦ CHEC╦ CONDITIO╬ status« Iε ì
responsσ t∩ ß REQUES╘ SENS┼ commanΣ thσ targe⌠ shal∞ returε sensσ data« Thσ ì
sensσ ke∙ shal∞ bσ se⌠ t∩ ILLEGA╠ REQUES╘ anΣ thσ additiona∞ sensσ codσ shal∞ ì
bσ se⌠ t∩ LOGICA╠ UNI╘ NO╘ SUPPORTED.
.cp 8
áá(2⌐ thσ targe⌠ support≤ thσ logica∞ unit¼ bu⌠ thσ periphera∞ devicσ i≤ no⌠ ì
currentl∙ attacheΣ t∩ thσ target« Iε responsσ t∩ aε INQUIR┘ commanΣ thσ ì
targe⌠ shal∞ returε thσ INQUIR┘ datß witΦ thσ periphera∞ qualifie≥ se⌠ t∩ thσ ì
valuσ requireΣ iε Tablσ ╖-16« Iε responsσ t∩ an∙ othe≥ commanΣ excep⌠ REQUES╘ ì
SENS┼ thσ targe⌠ shal∞ terminatσ thσ commanΣ witΦ CHEC╦ CONDITIO╬ status« Iε ì
responsσ t∩ ß REQUES╘ SENS┼ commanΣ thσ targe⌠ shal∞ returε sensσ data« Thσ ì
sensσ ke∙ shal∞ bσ se⌠ t∩ ILLEGA╠ REQUES╘ anΣ thσ additiona∞ sensσ codσ shal∞ ì
bσ se⌠ t∩ LOGICA╠ UNI╘ NO╘ SUPPORTED.
.cp 5
áá(3⌐ thσ targe⌠ support≤ thσ logica∞ uni⌠ anΣ thσ periphera∞ devicσ i≤ ì
attached¼ bu⌠ no⌠ operational« Iε responsσ t∩ aε INQUIR┘ commanΣ thσ targe⌠ ì
shal∞ returε thσ INQUIR┘ datß witΦ thσ periphera∞ qualifie≥ se⌠ t∩ thσ valuσ ì
requireΣ iε Tablσ ╖-16« Thσ target'≤ responsσ t∩ an∙ commanΣ othe≥ thaε ì
INQUIR┘ anΣ REQUES╘ SENS┼ i≤ vendo≥ specific.
áá(4⌐ thσ targe⌠ support≤ thσ logica∞ uni⌠ bu⌠ i≤ incapablσ oµ determininτ iµ ì
thσ periphera∞ devicσ i≤ attacheΣ o≥ i≤ no⌠ operationa∞ wheε i⌠ i≤ no⌠ ready« ì
Iε responsσ t∩ aε INQUIR┘ commanΣ thσ targe⌠ shal∞ returε thσ INQUIR┘ datß ì
witΦ thσ periphera∞ qualifie≥ se⌠ t∩ thσ valuσ requireΣ iε Tablσ ╖-16« Iε ì
responsσ t∩ ß REQUES╘ SENS┼ commanΣ thσ targe⌠ shal∞ returε thσ REQUES╘ SENS┼ ì
datß witΦ ß sensσ ke∙ oµ N╧ SENS┼ unles≤ ß prio≥ erro≥ conditioε exists« Thσ ì
target'≤ responsσ t∩ an∙ othe≥ commanΣ i≤ vendo≥ specific.
.cp 10
.aw off
.pm 0
6.5.4. Paramete≥ Rounding
.aw on
.pm 3
ááCertaiε parameter≤ sen⌠ t∩ ß targe⌠ witΦ variou≤ command≤ contaiε ß rangσ oµ ì
values« Target≤ ma∙ choosσ t∩ implemen⌠ onl∙ selecteΣ value≤ froφ thi≤ range« ì
Wheε thσ targe⌠ receive≤ ß valuσ tha⌠ i⌠ doe≤ no⌠ support¼ i⌠ eithe≥ reject≤ ì
thσ commanΣ (CHEC╦ CONDITIO╬ statu≤ witΦ ILLEGA╠ REQUES╘ sensσ key⌐ o≥ i⌠ ì
round≤ thσ valuσ receiveΣ t∩ ß supporteΣ value« Thσ targe⌠ shal∞ rejec⌠ ì
unsupporteΣ value≤ unles≤ roundinτ i≤ permitteΣ iε thσ descriptioε oµ thσ ì
parameter.
ááRoundinτ oµ paramete≥ values¼ wheε permitted¼ shal∞ bσ performeΣ a≤ follows║ ì
┴ targe⌠ tha⌠ receive≤ ß paramete≥ valuσ tha⌠ i≤ no⌠ aε exac⌠ supporteΣ valuσ ìèshal∞ adjus⌠ thσ valuσ t∩ onσ tha⌠ i⌠ support≤ anΣ shal∞ returε CHEC╦ ì
CONDITIO╬ statu≤ witΦ ß sensσ ke∙ oµ RECOVERE─ ERROR« Thσ additiona∞ sensσ ì
codσ shal∞ bσ se⌠ t∩ ROUNDE─ PARAMETER« Thσ initiato≥ i≤ responsiblσ t∩ issuσ ì
aε appropriatσ commanΣ t∩ learε wha⌠ valuσ thσ targe⌠ ha≤ selected.
.lm 3
ááIMPLEMENTOR╙ NOTE║ Generally¼ thσ targe⌠ shoulΣ adjus⌠ maximuφ-valuσ field≤ ì
áádowε t∩ thσ nex⌠ lowe≥ supporteΣ valuσ thaε thσ onσ specifieΣ b∙ thσ ì
ááinitiator« Minimuφ-valuσ field≤ shoulΣ bσ roundeΣ u≡ t∩ thσ nex⌠ highe≥ ì
áásupporteΣ valuσ thaε thσ onσ specifieΣ b∙ thσ initiator« Iε somσ cases¼ thσ ì
áátypσ oµ roundinτ (u≡ o≥ down⌐ i≤ explicitl∙ specifieΣ iε thσ descriptioε oµ ì
ááthσ parameter.
.lm 1
.cp 20
.aw off
.pm 0
6.5.5. Asynchronou≤ Even⌠ Notificatioε
.aw on
.pm 3
ááImplementatioε oµ asynchronou≤ even⌠ notificatioε i≤ optional« Thi≤ ì
protoco∞ caε bσ useΣ t∩ inforφ processo≥ device≤ tha⌠ aε asynchronou≤ even⌠ ì
ha≤ occurred« ┴ SEN─ commanΣ witΦ aε AE╬ bi⌠ oµ onσ i≤ issueΣ t∩ ß processo≥ ì
devicσ witΦ ß subsequen⌠ datß phasσ tha⌠ include≤ thσ REQUES╘ SENS┼ ì
information« SCS╔ device≤ tha⌠ responΣ t∩ aε INQUIR┘ commanΣ a≤ ß processo≥ ì
devicσ typσ witΦ asynchronou≤ even⌠ notificatioε capabilit∙ ma∙ bσ notifieΣ oµ ì
asynchronou≤ event≤ usinτ thi≤ protocol« Aε SCS╔ devicσ ha≤ t∩ bσ capablσ oµ ì
actinτ a≤ aε initiato≥ iε orde≥ t∩ perforφ asynchronou≤ even⌠ notification.
.lm 3
ááIMPLEMENTOR╙ NOTE║ Asynchronou≤ even⌠ notificatioε canno⌠ bσ useΣ witΦ ß ì
áádevicσ tha⌠ act≤ a≤ ß temporar∙ initiato≥ (e.g.¼ device≤ executinτ COP┘ ì
áácommands⌐ sincσ the∙ arσ no⌠ identifieΣ a≤ ß processo≥ device.
.lm 1
ááParameter≤ affectinτ thσ usσ oµ asynchronou≤ even⌠ notificatioε arσ ì
containeΣ iε thσ contro∞ modσ pagσ (seσ 7.3.3.1).
ááThσ fou≥ use≤ oµ asynchronou≤ even⌠ notificatioε are:
áá(1⌐ informinτ ß processo≥ oµ aε erro≥ conditioε encountereΣ afte≥ commanΣ ì
completion
áá(2⌐ informinτ al∞ processo≥ device≤ tha⌠ ß newl∙ initializeΣ devicσ i≤ ì
available
áá(3⌐ informinτ al∞ processo≥ device≤ oµ othe≥ uni⌠ attentioε conditions
áá(4⌐ informinτ al∞ processo≥ device≤ oµ othe≥ asynchronou≤ events.
.lm1
.pm 3
ááOthe≥ use≤ oµ asynchronou≤ even⌠ notificatioε arσ no⌠ prohibited¼ howeve≥ ì
thi≤ protoco∞ i≤ no⌠ intendeΣ t∩ bσ useΣ whilσ aε I_T_╠ o≥ I_T_L_╤ nexu≤ ì
exist≤ betweeε thσ processo≥ devicσ (i.e.¼ thσ initiato≥ oµ thσ nexus⌐ anΣ thσ ì
othe≥ SCS╔ devicσ (i.e.¼ thσ targe⌠ oµ thσ nexus)« Asynchronou≤ even⌠ ì
notificatioε i≤ no⌠ intendeΣ fo≥ usσ witΦ targe⌠ routine≤ (i.e.¼ aε I_T_╥ o≥ ì
I_T_R_╤ nexus).
ááAε examplσ oµ thσ firs⌠ casσ abovσ i≤ ß devicσ tha⌠ implement≤ ß writσ ì
cache« Iµ thσ targe⌠ i≤ unablσ t∩ writσ cacheΣ datß t∩ thσ medium¼ i⌠ ma∙ usσ ì
aε asynchronou≤ even⌠ notificatioε t∩ inforφ thσ initiato≥ oµ thσ failure« Aε ì
extendeΣ contingen⌠ allegiancσ conditioε ma∙ als∩ bσ establisheΣ durinτ thσ ì
samσ I_T_╠ nexu≤ useΣ fo≥ thσ asynchronou≤ even⌠ notificatioε (seσ 5.6.9).
.cp 5èááAε examplσ oµ thσ thirΣ casσ abovσ i≤ ß devicσ tha⌠ support≤ removablσ ì
media« Asynchronou≤ even⌠ notificatioε ma∙ bσ useΣ t∩ inforφ aε initiato≥ oµ ì
ß no⌠-read∙-t∩-read∙ transitioε (mediuφ changed⌐ o≥ oµ aε operato≥ initiateΣ ì
even⌠ (e.g.¼ activatinτ ß writσ protec⌠ switcΦ o≥ activatinτ ß star⌠ o≥ sto≡ ì
switch).
.cp 5
ááAε examplσ oµ thσ fourtΦ casσ abovσ i≤ ß sequentia∞-acces≤ devicσ performinτ ì
ß REWIN─ commanΣ witΦ thσ immediatσ bi⌠ se⌠ t∩ one« Asynchronou≤ even⌠ ì
notificatioε ma∙ bσ useΣ t∩ inforφ aε initiato≥ tha⌠ thσ beginninτ oµ mediuφ ì
ha≤ beeε reached« Completioε oµ ß C─-RO═ AUDI╧ PLA┘ commanΣ starteΣ iε thσ ì
immediatσ modσ i≤ anothe≥ examplσ oµ thi≤ case.
ááNotificatioε oµ aε asynchronou≤ even⌠ i≤ performeΣ usinτ thσ SEN─ commanΣ ì
witΦ thσ AE╬ bi⌠ se⌠ t∩ one« Thσ informatioε identifyinτ thσ conditioε beinτ ì
reporteΣ shal∞ bσ returneΣ durinτ thσ DAT┴ OU╘ phasσ oµ thσ SEN─ commanΣ (seσ ì
11.2.2.)« Thσ datß sen⌠ i≤ showε iε Tablσ 1▒-4.
.cp 5
ááAε erro≥ conditioε o≥ uni⌠ attentioε conditioε shal∞ bσ reporteΣ oncσ pe≥ ì
occurrencσ oµ thσ even⌠ causinτ it« Thσ targe⌠ ma∙ choosσ t∩ usσ aε ì
asynchronou≤ even⌠ notificatioε o≥ t∩ returε CHEC╦ CONDITIO╬ statu≤ oε ß ì
subsequen⌠ command¼ bu⌠ no⌠ both« Notificatioε oµ commanΣ-relateΣ erro≥ ì
condition≤ shal∞ bσ sen⌠ onl∙ t∩ thσ processo≥ tha⌠ initiateΣ thσ I/╧ process.
ááThσ asynchronou≤ even⌠ notificatioε protoco∞ caε bσ useΣ t∩ notif∙ processo≥ ì
device≤ tha⌠ ß systeφ resourcσ ha≤ becomσ available« Iµ ß targe⌠ choose≤ t∩ ì
usσ thi≤ method¼ thσ sensσ ke∙ iε thσ sensσ datß sen⌠ t∩ thσ processo≥ devicσ ì
shal∞ bσ se⌠ t∩ UNI╘ ATTENTION«
ááThσ asynchronou≤ even⌠ notificatioε protoco∞ shal∞ bσ useΣ onl∙ t∩ SCS╔ ì
device≤ tha⌠ returε processo≥ devicσ typσ witΦ aε AEN├ bi⌠ oµ onσ iε responsσ ì
t∩ aε INQUIR┘ command« Thσ INQUIR┘ commanΣ shoulΣ bσ issueΣ t∩ logica∞ uni⌠ ì
zer∩ oµ eacΦ SCS╔ devicσ respondinτ t∩ selection« Thi≤ procedurσ shal∞ bσ ì
conducteΣ prio≥ t∩ thσ firs⌠ asynchronou≤ even⌠ notificatioε anΣ shal∞ bσ ì
repeateΣ wheneve≥ thσ devicσ deem≤ i⌠ appropriatσ o≥ wheε aε even⌠ occur≤ tha⌠ ì
ma∙ invalidatσ thσ curren⌠ information« (Seσ 5.6.21¼ SYNCHRONOU╙ DAT┴ ì
TRANSFE╥ REQUES╘ message¼ fo≥ example≤ oµ thesσ events.)
ááEacΦ SCS╔ devicσ tha⌠ return≤ processo≥ devicσ typσ witΦ aε AEN├ bi⌠ oµ onσ ì
shal∞ bσ issueΣ ß TES╘ UNI╘ READ┘ commanΣ t∩ determinσ tha⌠ thσ SCS╔ devicσ i≤ ì
read∙ t∩ receivσ aε asynchronou≤ even⌠ notification« Aε SCS╔ devicσ returninτ ì
CHEC╦ CONDITIO╬ statu≤ i≤ issueΣ ß REQUES╘ SENS┼ command« Thi≤ clear≤ an∙ ì
pendinτ uni⌠ attentioε condition« Aε SCS╔ devicσ tha⌠ return≤ processo≥ ì
devicσ typσ witΦ aε AEN├ bi⌠ oµ onσ anΣ return≤ GOO─ statu≤ wheε issueΣ ß TES╘ ì
UNI╘ READ┘ commanΣ shal∞ accep⌠ ß SEN─ commanΣ witΦ aε AE╬ bi⌠ oµ one.
.lm 3
ááIMPLEMENTOR╙ NOTE║ Aε SCS╔ devicσ whicΦ caε usσ asynchronou≤ even⌠ ì
áánotificatioε a⌠ initializatioε timσ shoulΣ providσ mean≤ t∩ defea⌠ thesσ ì
áánotifications« Thi≤ caε bσ donσ witΦ ß switcΦ o≥ jumpe≥ wire« Device≤ ì
ááwhicΦ implemen⌠ saveΣ parameter≤ ma∙ alternativel∙ savσ thσ asynchronou≤ ì
ááeven⌠ notificatioε permission≤ eithe≥ oε ß pe≥ SCS╔ devicσ basi≤ o≥ a≤ ß ì
áásysteφ widσ option« Iε an∙ case¼ ß devicσ conduct≤ ß surve∙ witΦ INQUIR┘ ì
áácommand≤ t∩ bσ surσ tha⌠ thσ device≤ oε thσ SCS╔ bu≤ arσ appropriatσ ì
áádestination≤ fo≥ SEN─ command≤ witΦ aε AE╬ bi⌠ oµ one« (Thσ device≤ oε thσ ì
áábu≤ o≥ thσ SCS╔ I─ assignment≤ ma∙ havσ changed.⌐
.lm 1
è.pm 0
6.5.6. UnexpecteΣ Reselection
.aw on
.pm 3
ááAε unexpecteΣ reselectioε occur≤ iµ ßε SCSI device attempt≤ t∩ reconnec⌠ t∩ ì
aε I/╧ proces≤ fo≥ whicΦ ß nexu≤ doe≤ no⌠ exist« Aε SCS╔ devicσ shoulΣ ì
responΣ t∩ aε unexpecteΣ reselectioε b∙ sendinτ aε ABOR╘ message.
.cp 20
.aw off
.pm 0
6.6. Contingent Allegiancσ Condition
.aw on
.pm 3
.cp 7
ááThσ contingen⌠ allegiancσ conditioε shal∞ exis⌠ followinτ thσ returε oµ ì
CHEC╦ CONDITIO╬ o≥ COMMAN─ TERMINATE─ statu≤ anΣ ma∙ optionall∙ exis⌠ ì
followinτ aε unexpecteΣ disconnect« Thσ contingen⌠ allegiancσ conditioε shal∞ ì
bσ preserveΣ fo≥ thσ I_T_° nexu≤ unti∞ i⌠ i≤ cleared« Thσ contingen⌠ ì
allegiancσ conditioε shal∞ bσ cleareΣ upoε thσ generatioε oµ ß harΣ rese⌠ ì
condition¼ o≥ b∙ aε ABOR╘ message¼ ß BU╙ DEVIC┼ RESE╘ message¼ o≥ an∙ ì
subsequen⌠ commanΣ fo≥ thσ I_T_° nexus« Whilσ thσ contingen⌠ allegiancσ ì
conditioε exist≤ thσ targe⌠ shal∞ preservσ thσ sensσ datß fo≥ thσ initiator«
ááWhilσ thσ contingen⌠ allegiancσ conditioε exists¼ iµ thσ targe⌠ i≤ unablσ t∩ ì
maintaiε separatσ sensσ data¼ thσ targe⌠ shal∞ responΣ t∩ an∙ othe≥ request≤ ì
fo≥ acces≤ t∩ thσ logica∞ uni⌠ o≥ targe⌠ routinσ froφ anothe≥ initiato≥ witΦ ß ì
BUS┘ status« Executioε oµ queueΣ command≤ fo≥ thσ logica∞ uni⌠ o≥ targe⌠ ì
routinσ fo≥ whicΦ thσ contingen⌠ allegiancσ conditioε exist≤ shal∞ bσ ì
suspendeΣ unti∞ thσ contingen⌠ allegiancσ conditioε i≤ cleared.
.aw off
.pm 0
6.7. Extended Contingent Allegiance Condition
.aw on
.pm 3
ááImplementatioε oµ extendeΣ contingen⌠ allegiancσ i≤ optional« Thσ extendeΣ ì
contingen⌠ allegiancσ conditioε extend≤ thσ contingen⌠ allegiancσ conditioε ì
fo≥ aε I_T_° nexus« Thi≤ conditioε i≤ generateΣ b∙ thσ targe⌠ sendinτ aε ì
INITIAT┼ RECOVER┘ messagσ t∩ thσ initiato≥ followinτ CHEC╦ CONDITIO╬ o≥ ì
COMMAN─ TERMINATE─ statu≤ anΣ prio≥ t∩ thσ COMMAN─ COMPLET┼ message« Thi≤ ì
conditioε shal∞ bσ preserveΣ unti∞ i⌠ i≤ cleareΣ b∙ ß BU╙ DEVIC┼ RESE╘ ì
message¼ ß RELEAS┼ RECOVER┘ message¼ o≥ ß harΣ rese⌠ condition.
ááWhilσ thσ extendeΣ contingen⌠ allegiancσ conditioε exist≤ thσ targe⌠ shal∞ ì
responΣ t∩ an∙ othe≥ reques⌠ fo≥ acces≤ t∩ thσ logica∞ uni⌠ froφ anothe≥ ì
initiato≥ witΦ BUS┘ status« Executioε oµ queueΣ command≤ fo≥ thσ logica∞ uni⌠ ì
fo≥ whicΦ thσ extendeΣ contingen⌠ allegiancσ conditioε exist≤ shal∞ bσ ì
suspendeΣ unti∞ thσ RELEAS┼ RECOVER┘ messagσ i≤ receiveΣ b∙ thσ target.
.lm 3
ááIMPLEMENTOR╙ NOTES║
áá(1⌐ I⌠ i≤ no⌠ requireΣ t∩ generatσ aε extendeΣ contingen⌠ allegiancσ ì
ááconditioε fo≥ ever∙ CHEC╦ CONDITIO╬ o≥ COMMAN─ TERMINATE─ statu≤ tha⌠ ì
ááoccurs« Simplσ error≤ no⌠ requirinτ aε extendeΣ recover∙ ma∙ bσ deal⌠ witΦ ì
ááb∙ usinτ thσ contingen⌠ allegiancσ protocol.
áá(2⌐ Durinτ thσ existencσ oµ thσ extendeΣ contingen⌠ allegiancσ condition¼ ì
ááappropriatσ erro≥ recover∙ sequence≤ ma∙ bσ executed« SucΦ command≤ caε ì
áácorrec⌠ data¼ modif∙ o≥ deletσ queueΣ commands¼ perforφ LO╟ SENS┼ command≤ ì
ááanΣ obtaiε diagnostiπ information« ExtendeΣ contingen⌠ allegiancσ i≤ ì
áárecommendeΣ fo≥ erro≥ condition≤ tha⌠ ma∙ requirσ executioε oµ multiplσ-ste≡ ì
ááerro≥-recover∙ protocol≤ withou⌠ interferencσ froφ othe≥ initiators.
.lm 1
.cp 4èááAε extendeΣ contingen⌠ allegiancσ conditioε ma∙ als∩ bσ generateΣ usinτ aε ì
asynchronou≤ even⌠ notificatioε protocol« Wheε thσ even⌠ i≤ detected¼ thσ bu≤ ì
devicσ whicΦ detecteΣ thσ even⌠ assume≤ thσ initiato≥ rolσ anΣ transmit≤ ß ì
SEN─ commanΣ witΦ aε AE╬ bi⌠ oµ onσ t∩ thσ appropriatσ device(s⌐ (seσ 11.2.2).
.cp 3
ááIµ thσ devicσ wishe≤ t∩ generatσ aε extendeΣ contingen⌠ allegiancσ conditioε ì
durinτ aε asynchronou≤ even⌠ notification¼ i⌠ shal∞ senΣ aε INITIAT┼ RECOVER┘ ì
messagσ followinτ thσ IDENTIF┘ messagσ (anΣ followinτ an∙ queuσ taτ message⌐ ì
anΣ prio≥ t∩ thσ COMMAN─ phasσ oµ thσ SEN─ command« Aε extendeΣ contingen⌠ ì
allegiancσ conditioε caε bσ generateΣ fo≥ onl∙ onσ I_T_╠ nexu≤ a⌠ ß time« Thσ ì
extendeΣ contingen⌠ allegiancσ conditioε i≤ cleareΣ wheε ß RELEAS┼ RECOVER┘ ì
messagσ i≤ receiveΣ froφ thσ devicσ t∩ whicΦ thσ INITIAT┼ RECOVER┘ messagσ wa≤ ì
sent« Thσ generatioε oµ ß harΣ rese⌠ condition¼ o≥ receip⌠ oµ ß BU╙ DEVIC┼ ì
RESE╘ messagσ shal∞ als∩ clea≥ thσ extendeΣ contingen⌠ allegiancσ condition.
ááDurinτ aε extendeΣ contingen⌠ allegiancσ onl∙ untaggeΣ I/╧ processe≤ froφ ì
thσ SCS╔ devicσ t∩ whicΦ thσ INITIAT┼ RECOVER┘ messagσ wa≤ sen⌠ shal∞ bσ ì
executeΣ b∙ thσ target« Iµ thσ initiato≥ send≤ ß queuσ taτ messagσ thσ targe⌠ ì
shal∞ responΣ witΦ QUEU┼ FUL╠ status« Afte≥ thσ extendeΣ contingen⌠ ì
allegiancσ conditioε i≤ cleareΣ an∙ command≤ remaininτ iε thσ commanΣ queuσ ì
shal∞ bσ executed.
.cp 20
.aw off
.pm 0
6.8. QueueΣ I/O Processes
.aw on
.pm 3
ááThσ implementatioε oµ queuinτ fo≥ I/╧ processe≤ i≤ optional« Queuinτ oµ I/╧ ì
processe≤ allow≤ ß targe⌠ t∩ accep⌠ multiplσ I/╧ processe≤ fo≥ executioε a⌠ ß ì
late≥ time«
ááTherσ arσ tw∩ method≤ fo≥ implementatioε oµ queuing¼ taggeΣ anΣ untagged« ì
TaggeΣ queuinτ allow≤ ß targe⌠ t∩ accep⌠ multiplσ I/╧ processe≤ froφ eacΦ ì
initiato≥ fo≥ eacΦ logica∞ uni⌠ o≥ targe⌠ routine« UntaggeΣ queuinτ allow≤ ß ì
targe⌠ t∩ accep⌠ onσ I/╧ proces≤ froφ eacΦ initiato≥ fo≥ eacΦ logica∞ unit«
áá┴ targe⌠ ma∙ bσ capablσ oµ botΦ method≤ oµ queuing¼ bu⌠ onl∙ onσ methoΣ ma∙ ì
bσ useΣ b∙ aε initiato≥ a⌠ ß time« Othe≥ initiator≤ ma∙ choosσ thσ othe≥ ì
queuinτ method╗ iε tha⌠ case¼ thσ targe⌠ ma∙ managσ botΦ type≤ oµ queueΣ ì
commands.
ááUntaggeΣ queuinτ ma∙ bσ supporteΣ b∙ SCS╔-▒ o≥ SCS╔-▓ devices« TaggeΣ ì
queuinτ i≤ ne≈ iε SCS╔-2.
.cp 10
.aw off
.pm 0
6.8.1. UntaggeΣ Queuing
.aw on
.pm 3
.cp3
ááUntaggeΣ queuinτ allow≤ ß targe⌠ t∩ accep⌠ ß commanΣ froφ aε initiato≥ fo≥ ß ì
logica∞ uni⌠ o≥ targe⌠ routinσ whilσ ß commanΣ froφ anothe≥ initiato≥ i≤ beinτ ì
executed« Onl∙ onσ commanΣ fo≥ eacΦ I_T_° nexu≤ shal∞ bσ accepteΣ a⌠ ß time«
.cp 6
ááAε I/╧ proces≤ ma∙ bσ initiateΣ an∙ timσ thσ BU╙ FRE┼ phasσ exist≤ eveε iµ ì
aε I/╧ proces≤ froφ ß differen⌠ initiato≥ i≤ active« Iµ thσ disconnec⌠ ì
privilegσ i≤ no⌠ granteΣ iε thσ IDENTIF┘ messagσ oµ thσ ne≈ I/╧ process¼ thσ ì
targe⌠ ma∙ eithe≥ suspenΣ thσ activσ I/╧ proces≤ o≥ i⌠ ma∙ returε BUS┘ statu≤ ì
t∩ thσ ne≈ I/╧ process.
.cp 4èááThσ I_T_° nexu≤ sufficientl∙ specifie≤ thσ relationshi≡ s∩ tha⌠ thσ targe⌠ ì
caε reconnec⌠ t∩ thσ initiato≥ t∩ restorσ thσ pointer≤ fo≥ I/╧ proces≤ a≤ lonτ ì
a≤ onl∙ onσ I/╧ proces≤ pe≥ I_T_° nexu≤ i≤ issued« I⌠ i≤ thσ responsibilit∙ ì
oµ thσ initiato≥ t∩ assurσ tha⌠ onl∙ onσ sucΦ I/╧ proces≤ i≤ issueΣ a⌠ an∙ ì
timσ (seσ 6.5.2).
.cp 10
.aw off
.pm 0
6.8.2. TaggeΣ Queuing
.aw on
.pm 3
ááTaggeΣ queuinτ allow≤ ß targe⌠ t∩ accep⌠ multiplσ I/╧ processe≤ froφ thσ ì
samσ o≥ differen⌠ initiator≤ unti∞ thσ logica∞ unit'≤ commanΣ queuσ i≤ full« ì
Iµ aε I/╧ proces≤ i≤ receiveΣ anΣ thσ commanΣ queuσ i≤ full¼ thσ targe⌠ shal∞ ì
terminatσ thσ I/╧ proces≤ witΦ QUEU┼ FUL╠ status«
ááThσ commanΣ queuσ i≤ setu≡ b∙ thσ targe⌠ fo≥ eacΦ supporteΣ logica∞ uni⌠ anΣ ì
targe⌠ routine« Initiator≤ ma∙ adΣ o≥ deletσ I/╧ processe≤ t∩ thσ queue« ì
Wheε addinτ aε I/╧ process¼ thσ initiato≥ ma∙ specif∙ fixeΣ orde≥ oµ ì
execution¼ allo≈ thσ targe⌠ t∩ definσ thσ orde≥ oµ execution¼ o≥ specif∙ tha⌠ ì
thσ I/╧ proces≤ i≤ t∩ bσ executeΣ next.
ááIµ thσ disconnec⌠ privilegσ i≤ no⌠ granteΣ iε thσ IDENTIF┘ messagσ fo≥ ß ì
taggeΣ I/╧ proces≤ thσ targe⌠ shal∞ returε BUS┘ status.
ááThσ queuσ taτ message≤ (seσ 5.6.17⌐ allo≈ thσ initiato≥ t∩ establisΦ ß ì
uniquσ I_T_L_╤ nexu≤ t∩ identif∙ eacΦ I/╧ process« Thσ I_T_L_╤ nexu≤ allow≤ ì
thσ targe⌠ t∩ reconnec⌠ t∩ ß specifiπ I/╧ proces≤ anΣ allow≤ thσ initiato≥ t∩ ì
restorσ thσ se⌠ oµ pointer≤ fo≥ tha⌠ I/╧ process« Aε initiato≥ ma∙ havσ ì
severa∞ I/╧ processe≤ ongoinτ t∩ thσ samσ o≥ differen⌠ logica∞ unit≤ o≥ targe⌠ ì
routine≤ a≤ lonτ a≤ eacΦ ha≤ ß uniquσ nexus.
.cp 5
ááIµ onl∙ SIMPL┼ QUEU┼ TA╟ message≤ arσ used¼ thσ targe⌠ ma∙ executσ thσ ì
command≤ iε an∙ orde≥ tha⌠ i≤ deemeΣ desirablσ withiε thσ constraint≤ oµ thσ ì
queuσ managemen⌠ algorithφ specifieΣ iε thσ contro∞ modσ pagσ (seσ 7.3.3.1)«
ááIµ ORDERE─ QUEU┼ TA╟ message≤ arσ used¼ thσ targe⌠ shal∞ executσ thσ ì
command≤ iε thσ orde≥ receiveΣ witΦ respec⌠ t∩ othe≥ command≤ receiveΣ witΦ ì
ORDERE─ QUEU┼ TA╟ messages« Al∞ command≤ receiveΣ witΦ aε SIMPL┼ QUEU┼ TA╟ ì
messagσ prio≥ t∩ ß commanΣ receiveΣ witΦ aε ORDERE─ QUEU┼ TA╟ message¼ ì
regardles≤ oµ initiator¼ shal∞ bσ executeΣ beforσ tha⌠ commanΣ witΦ thσ ì
ORDERE─ QUEU┼ TA╟ message« Al∞ command≤ receiveΣ witΦ aε SIMPL┼ QUEU┼ TA╟ ì
messagσ afte≥ ß commanΣ receiveΣ witΦ aε ORDERE─ QUEU┼ TA╟ message¼ regardles≤ ì
oµ initiator¼ shal∞ bσ executeΣ afte≥ tha⌠ commanΣ witΦ thσ ORDERE─ QUEU┼ TA╟ ì
message«
áá┴ commanΣ receiveΣ witΦ ß HEA─ O╞ QUEU┼ TA╟ messagσ i≤ placeΣ firs⌠ iε thσ ì
queue¼ t∩ bσ executeΣ next« ┴ commanΣ receiveΣ witΦ ß HEA─ O╞ QUEU┼ TA╟ ì
messagσ shal∞ no⌠ suspenΣ aε I/╧ proces≤ fo≥ whicΦ thσ targe⌠ ha≤ beguε ì
execution« Consecutivσ command≤ receiveΣ witΦ HEA─ O╞ QUEU┼ TA╟ message≤ arσ ì
executeΣ iε ß las⌠-iε-firs⌠-ou⌠ order.
.cp 3
ááAε I/╧ proces≤ receiveΣ withou⌠ ß queuσ taτ messagσ whilσ therσ arσ an∙ ì
taggeΣ I/╧ command≤ iε thσ commanΣ queuσ froφ thσ samσ initiato≥ i≤ aε ì
incorrec⌠ initiato≥ connectioε (seσ 6.5.2⌐ unles≤ therσ i≤ ß contingen⌠ ì
allegiancσ o≥ extendeΣ contingen⌠ allegiancσ condition.
.cp 5èáá┴ serie≤ oµ linkeΣ command≤ arσ ß singlσ I/╧ process¼ anΣ arσ assigneΣ thσ ì
queuσ taτ establisheΣ iε thσ initia∞ connection« ┴ commanΣ receiveΣ witΦ ß ì
HEA─ O╞ QUEU┼ TA╟ messagσ shal∞ no⌠ suspenΣ ß serie≤ oµ linkeΣ command≤ fo≥ ì
whicΦ thσ targe⌠ ha≤ beguε execution.
.cp 4
ááThσ RESERV┼ anΣ RELEAS┼ command≤ shoulΣ bσ sen⌠ witΦ aε ORDERE─ QUEU┼ TA╟ ì
message« Usσ oµ thσ HEA─ O╞ QUEU┼ TA╟ messagσ witΦ thesσ command≤ coulΣ ì
resul⌠ iε reservatioε conflict≤ witΦ previousl∙ issueΣ commands«
ááThσ TES╘ UNI╘ READ┘ anΣ INQUIR┘ command≤ arσ ofteε sen⌠ witΦ ß HEA─ O╞ QUEU┼ ì
TA╟ message¼ sincσ thσ informatioε returneΣ ha≤ n∩ effec⌠ oε thσ conditioε oµ ì
thσ logica∞ unit«
ááTw∩ erro≥ recover∙ option≤ arσ allowed« Thσ erro≥ recover∙ optioε t∩ bσ ì
useΣ i≤ specifieΣ iε thσ contro∞ modσ pagσ (seσ 7.3.3.1)«
ááThσ firs⌠ pos⌠-recover∙ optioε i≤ t∩ continuσ executioε oµ command≤ iε thσ ì
queuσ afte≥ thσ contingen⌠ allegiancσ o≥ extendeΣ contingen⌠ allegiancσ ì
conditioε ha≤ cleared« Thσ targe⌠ return≤ BUS┘ statu≤ t∩ othe≥ initiator≤ ì
whilσ thσ contingen⌠ allegiancσ o≥ extendeΣ contingen⌠ allegiancσ conditioε ì
exists« Durinτ thi≤ timσ al∞ command≤ iε thσ queuσ arσ suspended« Al∞ ì
command≤ useΣ fo≥ recover∙ operation≤ shal∞ bσ untaggeΣ commands« Thσ queuσ ì
ma∙ bσ modifieΣ b∙ removinτ al∞ o≥ selecteΣ command≤ iε thσ queuσ a≤ par⌠ oµ ì
thσ recover∙ procedure«
ááIµ command≤ arσ combineΣ b∙ thσ queuinτ algorithφ sucΦ tha⌠ thσ erro≥ ì
affect≤ morσ thaε onσ command¼ theε ß contingen⌠ allegiancσ conditioε shal∞ bσ ì
generateΣ fo≥ al∞ affecteΣ commands.
ááThσ seconΣ recover∙ optioε clear≤ thσ queuσ afte≥ thσ contingen⌠ allegiancσ ì
o≥ extendeΣ contingen⌠ allegiancσ conditioε ha≤ beeε cleared« Wheε thσ queuσ ì
i≤ cleareΣ becausσ oµ thi≤ recover∙ option¼ ß uni⌠ attentioε conditioε shal∞ ì
bσ generateΣ fo≥ al∞ othe≥ initiator≤ anΣ thσ additiona∞ sensσ codσ shal∞ bσ ì
se⌠ t∩ COMMAND╙ CLEARE─ B┘ ANOTHE╥ INITIATOR.
.cp 3
ááDeferreΣ error≤ arσ normall∙ relateΣ t∩ ß commanΣ tha⌠ ha≤ alread∙ ì
completed« A≤ such¼ therσ i≤ n∩ attemp⌠ t∩ returε thσ queuσ taτ valuσ ì
assigneΣ t∩ thσ origina∞ command.
.cp 5
áá┴ devicσ tha⌠ doe≤ no⌠ suppor⌠ taggeΣ queuinτ fo≥ an∙ reasoε (e.g.¼ no⌠ ì
implemented¼ disableΣ b∙ thσ DQuσ bi⌠ iε thσ contro∞ modσ page¼ o≥ i⌠ ha≤ beeε ì
switcheΣ t∩ aε operatinτ definitioε tha⌠ doe≤ no⌠ includσ taggeΣ queuing⌐ ì
shal∞ responΣ t∩ an∙ queuσ taτ messagσ witΦ ß MESSAG┼ REJEC╘ message« Thσ ì
targe⌠ shal∞ continuσ thσ I/╧ proces≤ a≤ iµ i⌠ wa≤ aε untaggeΣ I/╧ process.
.cp 4
ááTaggeΣ queuinτ ma∙ als∩ bσ temporaril∙ disableΣ interna∞ t∩ thσ SCS╔ devicσ ì
durinτ certaiε initializatioε period≤ o≥ t∩ contro∞ interna∞ resourcσ ì
utilization« Durinτ thesσ period≤ thσ targe⌠ ma∙ elec⌠ t∩ returε QUEU┼ FUL╠ ì
statu≤ o≥ i⌠ ma∙ responΣ t∩ an∙ queuσ taτ messagσ witΦ ß MESSAG┼ REJEC╘ ì
message.
.cp 5èááSevera∞ message≤ ma∙ bσ useΣ t∩ clea≥ par⌠ o≥ al∞ oµ thσ commanΣ queue« ì
Pleasσ refe≥ t∩ thσ ABORT¼ ABOR╘ TAG¼ BU╙ DEVIC┼ RESET¼ anΣ CLEA╥ QUEU┼ ì
message≤ iε Sectioε ╡ fo≥ details.
.cp 10
.aw off
.pm 0
6.8.3. Examplσ oµ QueueΣ I/O Process
.aw on
.pm 3
ááAε examplσ oµ I/╧ proces≤ queuinτ benefit≤ froφ thσ consideratioε oµ thσ ì
executioε oµ ß numbe≥ oµ commands« Afte≥ eacΦ command¼ thσ statσ oµ thσ queuσ ì
kep⌠ iε thσ targe⌠ i≤ showε t∩ indicatσ thσ functioε actuall∙ performeΣ b∙ thσ ì
queuing.
.cp 5
.aw off
.pm 0
6.8.3.1. Typica∞ Sequence≤ fo≥ TaggeΣ Queuing
.aw on
.pm 3
ááAε I/╧ proces≤ usinτ taggeΣ queuinτ use≤ thσ followinτ sequence≤ fo≥ norma∞ ì
execution« Thσ initiato≥ firs⌠ arbitrate≤ fo≥ thσ SCS╔ bus¼ anΣ afte≥ ì
successfull∙ obtaininτ thσ SCS╔ bus¼ select≤ thσ appropriatσ SCS╔ device« Thσ ì
AT╬ signa∞ i≤ asserteΣ durinτ thσ SELECTIO╬ phasσ t∩ indicatσ tha⌠ ß MESSAG┼ ì
OU╘ phasσ i≤ requesteΣ b∙ thσ initiator« Thσ firs⌠ messagσ bytσ transferreΣ ì
i≤ aε IDENTIF┘ message« Thσ AT╬ signa∞ continue≤ t∩ bσ asserteΣ durinτ thσ ì
MESSAG┼ OU╘ phasσ t∩ indicatσ tha⌠ thσ initiato≥ ha≤ anothe≥ message« Thσ ì
seconΣ messagσ bytσ transferreΣ i≤ thσ firs⌠ bytσ oµ thσ appropriatσ queuσ taτ ì
message¼ iε thi≤ casσ ß SIMPL┼ QUEU┼ TA╟ message« Thσ thirΣ anΣ las⌠ messagσ ì
bytσ i≤ transmitteΣ containinτ thσ seconΣ bytσ oµ thσ queuσ taτ message¼ thσ ì
queuσ tag« A≤ i⌠ i≤ transferred¼ thσ AT╬ signa∞ i≤ negateΣ t∩ indicatσ tha⌠ ì
n∩ morσ messagσ byte≤ arσ available« Thσ targe⌠ theε transfer≤ thσ commanΣ ì
descripto≥ block« Assuminτ thσ commanΣ require≤ disconnection¼ thσ targe⌠ ì
transmit≤ ß DISCONNEC╘ messagσ t∩ thσ initiato≥ anΣ theε enter≤ thσ BU╙ FRE┼ ì
phase« Thσ targe⌠ place≤ thσ command¼ identifieΣ b∙ thσ I_T_L_╤ nexus¼ a⌠ thσ ì
appropriatσ placσ iε thσ commanΣ queue.
ááWheε thσ targe⌠ remove≤ I/╧ processe≤ froφ thσ queuσ fo≥ execution¼ ß ì
physica∞ latenc∙ perioΣ ma∙ occur« A⌠ thσ enΣ oµ thi≤ period¼ wheε thσ targe⌠ ì
i≤ prepareΣ t∩ transfe≥ thσ appropriatσ data¼ thσ targe⌠ begin≤ aε ARBITRATIO╬ ì
phasσ and¼ upoε winning¼ enter≤ ß RESELECTIO╬ phase« Afte≥ ß successfu∞ ì
reselection¼ thσ targe⌠ send≤ thσ IDENTIF┘ messagσ followeΣ b∙ ß SIMPL┼ QUEU┼ ì
TA╟ messagσ witΦ thσ queuσ taτ valuσ originall∙ sen⌠ b∙ thσ initiator« Thσ ì
initiato≥ use≤ thσ I_T_L_╤ nexu≤ t∩ identif∙ thσ correc⌠ se⌠ oµ pointer≤ anΣ ì
contro∞ block≤ associateΣ witΦ thσ I/╧ proces≤ anΣ t∩ establisΦ thσ necessar∙ ì
condition≤ fo≥ datß transfer« Thσ targe⌠ begin≤ datß transfer« Wheε thσ datß ì
transfe≥ i≤ successfull∙ completed¼ thσ targe⌠ return≤ GOO─ statu≤ anΣ ì
terminate≤ thσ I/╧ proces≤ witΦ ß COMMAN─ COMPLET┼ message.
.cp 5
.aw off
.pm 0
6.8.3.2. Examplσ oµ TaggeΣ Queuinτ
.aw on
.pm 3
ááAε examplσ oµ thσ executioε oµ fivσ queueΣ I/╧ processe≤ i≤ describeΣ t∩ ì
demonstratσ ho≈ taggeΣ queuinτ operates« Al∞ taggeΣ I/╧ processe≤ arσ froφ ì
onσ initiato≥ t∩ ß singlσ logica∞ uni⌠ oµ ß singlσ target« Thσ fivσ I/╧ ì
processe≤ arσ defineΣ iε Tablσ ╢-8« Thσ targe⌠ i≤ ß direc⌠-acces≤ device« A⌠ ì
thσ timσ thσ I/╧ processe≤ arσ firs⌠ beinτ executed¼ i⌠ i≤ assumeΣ tha⌠ thσ ì
actuato≥ i≤ iε positioε t∩ acces≤ logica∞ blocδ 10000.
.cp 15è.aw off
.pm 0
Table 6-8: Command≤ iε Orde≥ ReceiveΣ b∙ Target
Queue Logical
Tag Blocδ Transfer
CommanΣ Queuσ Taτ Message Value Addres≤ LengtΦ Status
------¡ ----------------- ----- ------¡ --------- ---------
REA─ SIMPL┼ 0▒h 1000░ 1000 QueueΣ
REA─ SIMPL┼ 0▓h 10░ 1 Queued
REA─ ORDERE─ 0│h 100░ 1000 Queued
REA─ SIMPL┼ 0┤h 1000░ ▒ Queued
REA─ SIMPL┼ 0╡h 200░ 1000 QueueΣ
.aw on
.pm 3
ááThσ optimuφ orde≥ woulΣ requirσ tha⌠ thosσ block≤ closσ t∩ thσ actuato≥ ì
positioε bσ thσ firs⌠ block≤ accessed¼ followeΣ b∙ thosσ increasingl∙ fa≥ froφ ì
thσ actuato≥ position« However¼ thσ commanΣ witΦ queuσ taτ 03Φ i≤ aε ordereΣ ì
I/╧ process¼ s∩ tha⌠ al∞ simplσ I/╧ processe≤ transferreΣ previousl∙ mus⌠ bσ ì
executeΣ before¼ whilσ al∞ simplσ I/╧ processe≤ transferreΣ afte≥ thσ ordereΣ ì
I/╧ proces≤ mus⌠ bσ executeΣ afte≥ thσ ordereΣ I/╧ process.
ááIµ ß targe⌠ support≤ aε optimizinτ algorithφ thσ actua∞ orde≥ iε whicΦ thσ ì
I/╧ processe≤ arσ executeΣ coulΣ bσ a≤ showε iε Tablσ ╢-9.
.cp 15
.aw off
.pm 1
Table 6-9: Command≤ iε Orde≥ oµ Execution
Queue Logical
Tag Blocδ Transfer
CommanΣ Queuσ Taτ Message Value Addres≤ LengtΦ Status
------¡ ----------------- ----- ------¡ --------- ---------
REA─ SIMPL┼ 0▒h 1000░ 1000 QueueΣ
REA─ SIMPL┼ 0▓h 10░ 1 Queued
REA─ ORDERE─ 0│h 100░ 1000 Queued
REA─ SIMPL┼ 0╡h 200░ 1000 QueueΣ
REA─ SIMPL┼ 0┤h 1000░ ▒ Queued
.aw on
.pm 3
.cp 9
ááI/╧ processe≤ witΦ queuσ taτ value≤ 01Φ anΣ 02Φ arσ executeΣ iε thσ orde≥ ì
receiveΣ sincσ thσ actuato≥ i≤ alread∙ iε positioε t∩ executσ I/╧ proces≤ 01h« ì
I/╧ proces≤ 02Φ mus⌠ bσ executeΣ beforσ I/╧ proces≤ 04Φ o≥ 05Φ becausσ thσ ì
ordereΣ I/╧ proces≤ 03Φ wa≤ transmitteΣ afte≥ I/╧ processe≤ 01Φ anΣ 02Φ bu⌠ ì
beforσ I/╧ processe≤ 04Φ anΣ 05h« I/╧ proces≤ 03Φ i≤ theε executeΣ afte≥ I/╧ ì
proces≤ 02h« Thσ I/╧ processe≤ 04Φ anΣ 05Φ arσ executeΣ afte≥ thσ ordereΣ I/╧ ì
proces≤ 03h« I/╧ proces≤ 05Φ i≤ executeΣ beforσ I/╧ proces≤ 04Φ becausσ thσ ì
actuato≥ i≤ iε positioε t∩ acces≤ blocδ 200░ afte≥ executinτ I/╧ proces≤ 03h« ì
I/╧ proces≤ 04Φ i≤ executeΣ last«
.cp 8
ááA≤ aε examplσ oµ thσ operatioε oµ thσ HEA─ O╞ QUEU┼ TA╟ I/╧ process¼ ì
conside≥ tha⌠ ß ne≈ I/╧ process¼ identifieΣ b∙ ß HEA─ O╞ QUEU┼ TA╟ messagσ ì
witΦ ß queuσ taτ oµ 08h¼ i≤ transmitteΣ t∩ thσ targe⌠ whilσ thσ ordereΣ I/╧ ì
proces≤ 03Φ i≤ beinτ executed« Thσ I/╧ proces≤ 03Φ continue≤ execution¼ bu⌠ ì
thσ ne≈ HEA─ O╞ QUEU┼ TA╟ I/╧ proces≤ i≤ placeΣ iε thσ queuσ fo≥ executioε ì
beforσ al∞ subsequen⌠ I/╧ processes« Iε thi≤ case¼ thσ queuσ fo≥ executioε ì
afte≥ thσ ordereΣ I/╧ proces≤ 03Φ wa≤ executeΣ woulΣ appea≥ a≤ showε iε Tablσ ì
╢-10.
è.cp 15
.aw off
.pm 1
Table 6-10: ModifieΣ b∙ HEA─ O╞ QUEU┼ TA╟ Message
Queue Logical
Tag Blocδ Transfer
CommanΣ Queuσ Taτ Message Value Addres≤ LengtΦ Status
------¡ ----------------- ----- ------¡ --------¡ ---------
REA─ ORDERE─ 0│h 100░ 100░ Executing
REA─ HEA─ O╞ QUEU┼ 08Φ ░ ╕ Queued
REA─ SIMPL┼ 0╡h 200░ 1000 Queued
REA─ SIMPL┼ 0┤h 1000░ 1 QueueΣ
.aw on
.pm 3
ááT∩ obtaiε maximuφ performancσ gain≤ usinτ taggeΣ queuinτ require≤ carefu∞ ì
implementatioε oµ thσ queuinτ algorithm≤ iε thσ target« Iε addition¼ ì
initiator≤ shoulΣ allo≈ ß maximuφ numbe≥ oµ simplσ I/╧ processe≤ t∩ bσ ì
executeΣ witΦ ß minimuφ numbe≥ oµ ordereΣ I/╧ processes« RESERV┼ anΣ RELEAS┼ ì
commands¼ SE╘ LIMIT╙ commands¼ anΣ appropriatσ softwarσ lockinτ convention≤ ì
shoulΣ bσ useΣ t∩ guaranteσ thσ prope≥ relationshi≡ betweeε thσ command≤ ì
executeΣ anΣ thσ datß storeΣ oε thσ periphera∞ devices« Thesσ convention≤ arσ ì
no⌠ defineΣ b∙ thi≤ standard.
.cp 10
.aw off
.pm 0
6.9. Uni⌠ Attentioε Condition
.aw on
.pm 3
ááThσ targe⌠ shal∞ generatσ ß uni⌠ attentioε conditioε fo≥ eacΦ initiato≥ oε ì
eacΦ valiΣ logica∞ uni⌠ wheneve≥ thσ targe⌠ ha≤ beeε rese⌠ b∙ ß BU╙ DEVIC┼ ì
RESE╘ message¼ ß harΣ rese⌠ condition¼ o≥ b∙ ß powe≥-oε reset« Thσ targe⌠ ì
shal∞ als∩ generatσ ß uni⌠ attentioε conditioε oε thσ affecteΣ logica∞ unit(s⌐ ì
fo≥ eacΦ initiato≥ wheneve≥ onσ oµ thσ followinτ event≤ occurs:
.lm 3
áá(1⌐ ┴ removablσ mediuφ ma∙ havσ beeε changed.
áá(2⌐ Thσ modσ parameter≤ iε effec⌠ fo≥ thi≤ initiato≥ havσ beeε changeΣ b∙ ì
ááanothe≥ initiator.
áá(3⌐ Thσ versioε o≥ leve∞ oµ microcodσ ha≤ beeε changed.
áá(4⌐ TaggeΣ command≤ queueΣ fo≥ thi≤ initiato≥ werσ cleareΣ b∙ anothe≥ ì
ááinitiator.
áá(5⌐ INQUIR┘ datß ha≤ beeε changed.
áá(6⌐ Thσ modσ parameter≤ iε effec⌠ fo≥ thi≤ initiato≥ havσ beeε restoreΣ froφ ì
áánoε-volatilσ memory.
áá(7⌐ ┴ changσ iε thσ conditioε oµ ß synchronizeΣ spindle.
áá(8⌐ An∙ othe≥ even⌠ occur≤ tha⌠ require≤ thσ attentioε oµ thσ initiator.
.lm 1
.pm 0
.lm 3
ááIMPLEMENTOR╙ NOTES:
áá(1⌐ Target≤ ma∙ queuσ uni⌠ attentioε condition≤ oε logica∞ units« Afte≥ ì
ááthσ firs⌠ uni⌠ attentioε conditioε i≤ cleared¼ anothe≥ uni⌠ attentioε ì
ááconditioε ma∙ exis⌠ (e.g.¼ ß powe≥ oε conditioε followeΣ b∙ ß microcodσ ì
ááchangσ condition)« Thσ initiato≥ caε clea≥ al∞ pendinτ uni⌠ attentioε ì
áácondition≤ b∙ repeatedl∙ sendinτ thσ REQUES╘ SENS┼ commanΣ unti∞ ß sensσ ke∙ ì
ááothe≥ thaε UNI╘ ATTENTIO╬ i≤ returneΣ b∙ thσ target.
áá(2⌐ Seσ 6.5.│ fo≥ requirement≤ concerninτ selectioε oµ aε invaliΣ logica∞ ì
ááunit.
.pm 3
.lm 1
.cp 3
ááThσ uni⌠ attentioε conditioε shal∞ persis⌠ oε thσ logica∞ uni⌠ fo≥ eacΦ ì
initiato≥ unti∞ tha⌠ initiato≥ clear≤ thσ conditioε a≤ describeΣ iε thσ ì
followinτ paragraphs.
.cp 7èááIµ aε INQUIR┘ commanΣ i≤ receiveΣ froφ aε initiato≥ t∩ ß logica∞ uni⌠ witΦ ß ì
pendinτ uni⌠ attentioε conditioε (beforσ thσ targe⌠ generate≤ thσ contingen⌠ ì
allegiancσ condition)¼ thσ targe⌠ shal∞ perforφ thσ INQUIR┘ commanΣ anΣ shal∞ ì
no⌠ clea≥ thσ uni⌠ attentioε condition« Iµ thσ INQUIR┘ commanΣ i≤ receiveΣ ì
afte≥ thσ targe⌠ ha≤ generateΣ thσ contingen⌠ allegiancσ conditioε fo≥ ß ì
pendinτ uni⌠ attentioε condition¼ theε thσ uni⌠ attentioε conditioε oε thσ ì
logica∞ uni⌠ shal∞ bσ cleared¼ anΣ thσ targe⌠ shal∞ perforφ thσ INQUIR┘ ì
command.
ááIµ an∙ othe≥ commanΣ i≤ receiveΣ afte≥ thσ targe⌠ ha≤ generateΣ thσ ì
contingen⌠ allegiancσ conditioε fo≥ ß pendinτ uni⌠ attentioε condition¼ thσ ì
uni⌠ attentioε conditioε oε thσ logica∞ uni⌠ shal∞ bσ cleared¼ anΣ iµ n∩ othe≥ ì
uni⌠ attentioε conditioε i≤ pendinτ thσ targe⌠ shal∞ perforφ thσ command« Iµ ì
anothe≥ uni⌠ attentioε conditioε i≤ pendinτ thσ targe⌠ shal∞ no⌠ perforφ thσ ì
commanΣ anΣ shal∞ generatσ anothe≥ contingen⌠ allegiancσ condition.
ááIµ ß REQUES╘ SENS┼ commanΣ i≤ receiveΣ froφ aε initiato≥ witΦ ß pendinτ uni⌠ ì
attentioε conditioε (beforσ thσ targe⌠ generate≤ thσ contingen⌠ allegiancσ ì
condition)¼ theε thσ targe⌠ ma∙ either:
.cp 2
áá(1⌐ repor⌠ an∙ pendinτ sensσ datß anΣ preservσ thσ uni⌠ attentioε conditioε ì
oε thσ logica∞ uni⌠ or
.cp 2
áá(2⌐ repor⌠ thσ uni⌠ attentioε condition¼ ma∙ discarΣ an∙ pendinτ sensσ data¼ ì
anΣ clea≥ thσ uni⌠ attentioε conditioε oε thσ logica∞ uni⌠ fo≥ tha⌠ initiator.
ááIµ thσ targe⌠ ha≤ alread∙ generateΣ thσ contingen⌠ allegiancσ conditioε fo≥ ì
thσ uni⌠ attentioε condition¼ thσ targe⌠ shal∞ perforφ thσ seconΣ actioε ì
listeΣ above.
ááIµ aε initiato≥ issue≤ ß commanΣ othe≥ thaε INQUIR┘ o≥ REQUES╘ SENS┼ whilσ ß ì
uni⌠ attentioε conditioε exist≤ fo≥ tha⌠ initiato≥ (prio≥ t∩ generatinτ thσ ì
contingen⌠ allegiancσ conditioε fo≥ thσ uni⌠ attentioε condition)¼ thσ targe⌠ ì
shal∞ no⌠ perforφ thσ commanΣ anΣ shal∞ repor⌠ CHEC╦ CONDITIO╬ statu≤ unles≤ ß ì
highe≥ priorit∙ statu≤ a≤ defineΣ b∙ thσ targe⌠ i≤ als∩ pendinτ (e.g.¼ BUS┘ o≥ ì
RESERVATIO╬ CONFLICT).
.cp 5
ááIµ afte≥ generatinτ thσ contingen⌠ allegiancσ conditioε fo≥ ß pendinτ uni⌠ ì
attentioε condition¼ thσ nex⌠ commanΣ receiveΣ froφ tha⌠ initiato≥ oε thσ ì
logica∞ uni⌠ i≤ no⌠ REQUES╘ SENSE¼ theε tha⌠ commanΣ shal∞ bσ performeΣ anΣ ì
thσ uni⌠ attentioε conditioε shal∞ bσ cleareΣ fo≥ tha⌠ initiato≥ oε thσ ì
logica∞ uni⌠ anΣ thσ sensσ datß i≤ los⌠ (seσ 6.6).
ááIµ ß targe⌠ become≤ ß temporar∙ initiato≥ t∩ issuσ ß SEN─ commanΣ witΦ aε ì
AE╬ bi⌠ oµ one¼ whicΦ inform≤ thσ initiato≥ (temporar∙ target⌐ oµ thσ uni⌠ ì
attentioε condition¼ anΣ thσ SEN─ commanΣ complete≤ witΦ GOO─ status¼ theε thσ ì
targe⌠ shal∞ clea≥ thσ uni⌠ attentioε conditioε fo≥ tha⌠ initiato≥ oε thσ ì
logica∞ uni⌠ (seσ 6.5.5).
..end of section
.paè
áá (Thi≤ pagσ i≤ intentionall∙ blank.)
.paè