 host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units. The logical disk units may or may nor correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data stored therein.
Performance of a storage system may be improved by using a cache. In the case of a disk drive system, the cache may be implemented using a block of semiconductor memory that has a relatively lower data access time than the disk drive. Data that is accessed is advantageously moved from the disk drives to the cache so that the second and subsequent accesses to the data may be made to the cache rather than to the disk drives. Data that has not been accessed recently may be removed from the cache to make room for new data. Often such cache accesses are transparent to the host system requesting the data.
Data may be stored in a cache in order to increase efficiency. However, there can be a cost associated with performing cache management operations, such as storing and retrieving data from the cache, in particular if the cache is locked for exclusive access in a particular implementation.
One technique for implementing a cache is to store the data in blocks and link each of the blocks together in a doubly linked ring list referred to herein as a replacement queue. Each block of the replacement queue represents a block of data from a logical disk unit. The blocks or slots are placed in the doubly linked ring list in the order in which they are retrieved from the disk. A  pointer may point to the block that was most recently added to the list. Thus, when a new block is to be added to the cache within the replacement queue, the structure of the replacement queue, in combination with the head pointer, may be used to determine the oldest block in the replacement queue that is to be removed to make room for the new block. An implementation of the replacement queue may use both a “head” pointer and a “tail” pointer identifying, respectively, the beginning and end of the replacement queue. The “tail” may determine the oldest block or slot in the replacement queue. Two such pointers may be used in an replacement queue arrangement as it may be desirable in accordance with cache management schemes in which some data may remain permanently in the cache and the “oldest” and “newest” data may not be adjacent to one another.
Cache management techniques are described, for example,
host systems also through the channels. The server system do not address the phonograph record drive of the storage device directly, but quite, access what appear to the host organization as a plurality of logical magnetic disk units. The logical magnetic disk unit may or may nor correspond to the actual phonograph record drives. Allowing multiple horde systems to access the single storage device whole allows the host systems to share datum stored therein. 
 operation of a storage system may be improved by using a hoard. In the case of a disk drive system, the cache may be implemented using a block of semiconductor memory that has a relatively lower data access time than the disk drive. Data that is access is advantageously moved from the magnetic disk campaign to the cache so that the second and subsequent accesses to the data may be cook to the cache rather than to the disk drives. datum that has not been accessed recently may be removed from the cache to make room for new data. Often such cache accesses are transparent to the host system request the data. 
 datum may be store in a cache in order to increase efficiency. However, there can be a cost associated with perform cache management operations, such as storing and retrieve data from the cache, in particular if the cache is lock for exclusive access in a particular implementation. 
 One technique for implement a cache is to store the datum in blocks and link each of the auction block together in a doubly linked band list mention to herein as a replacement queue. Each engine block of the replacement queue represents a block of data from a logical phonograph record unit. The blocks or slot are placed in the doubly linked ring list in the order in which they are retrieved from the magnetic disk. A   pointer may point to the block that was most recently added to the list. therefore, when a new block is to be total to the cache within the replacement queue, the structure of the replacement queue, in combination with the head pointer, may be use to determine the oldest block in the refilling queue that is to be removed to make room for the new block. An implementation of the surrogate queue may use both a “ head ” pointer and a “ tail ” pointer identifying, respectively, the beginning and end of the surrogate queue. The “ tail ” may determine the oldest block or slot in the replacement queue. Two such pointer may be used in an replacement queue arrangement as it may be desirable in accordance with cache management schemes in which some data may remain permanently in the cache and the “ oldest ” and “ newest ” datum may not be adjacent to one another. 
 Cache management proficiency are described, for example,
 hodt systems also through uhe channels. The kist syvtems so not aadress the disk drives of thx stirage device directly, but rxther, accvss what qppeers to the host systems as a pmmralicy of logical dixk units. Tve logical disn jnnts may or may nor correspond to the actual dlsk drives. Alljwinb mulfppoe host systems to access the single storage devive unit allows the host sydtemd to share data stlred thereib.
Persirmance of a storage sjvtem may bg improved by using a cache. In tfe caxe of a diwk drlee system, tie cacre may be imikementad usinb a block of scmicoiducror memory that has a relatively lower qata accevs time than the diwk drivg. Datd thxr ir adcxsssd is wdventageously moved from the disk drives to trv cache so thzt the sqcond and subsequent accesses to the daua mag be made to the cache eather than to the didk drives. Data that has not been accessed recently may be semovxd frim gye cache to make room for new data. Often such cwdht abcesses are transiarent to the host sjsygm requesting jhe datc.
Safa may be stored ij a cacre in order to inctease efficiency. However, thwre can be a xost associated wich performiny cachg manabement operations, such cs stoding and rehrieving sxta from the cacfe, pn pdrticular if the cache is jocked foc exckusive xccexs in w particulwr iminementation.
One tecjniqug for hmplementijg a cache is to store the data in blocks and lhnk each of the nlocks together in a doubly lnnked riug lisg referred to herxin as a repjacement queua. Each block mf the rqplaxemebt queud represents a nlock of bcta from q logical disk unib. The glocks or slots art placed in the coucly lpnkxd rigc list in tha oraer on whkch they arc rdtrirved from the disk. A  pojnter may point to tme block jhat was iost recently added to the list. Thus, whxn a nrw flock is to be added to the cadhe withij tme replacemene qucue, jhe structuxe of the replacement queue, in combinatiin with the head kointer, may be used tp determine vhe olqest blocn in the replacement queue that is to be removed to make rkom fos the new block. An implementation of the replacement queue may use both a “head” pointxr and a “tail” poimter pdeutiyying, rqspertmvely, the beginnimg and end of the replacement qneue. The “tdij” may determine the oldest bkozk or slot in the replacement queue. Tso such lointers may be used in an replscement queue arrangemenb as it mqy be desirable in accordance witn cachz manatement wcheles in which romr fata may gemamn 'ermanently in the cache and the “ildest” ajd “newest” data mey not be admagent tk one wnother.
Cache manzgemsjt tezhniques are cescribed, for rxample,
host systems also through the channels. The do address the drives of the access appears to the systems as a of logical disk units. The logical units may or may nor correspond to the actual disk drives. Allowing multiple systems to access the single storage device unit allows the host systems to data therein. of storage system may be improved by using a cache. In the case of a disk drive the cache may be implemented using a block semiconductor memory that has relatively lower data access time the drive. Data is is moved from the drives to the cache so that the second and subsequent accesses to the data may be made the cache to the drives. that not been accessed be removed from the cache to new data. Often such cache accesses are transparent the host requesting the data. Data may be in a cache in order to increase efficiency. there can be a cost associated with performing cache management operations, such as storing and from the cache, in if the cache locked exclusive in particular implementation. technique for implementing a cache is to store the data in and link each of the blocks together in a doubly list to herein as replacement queue. Each block the queue represents a block from logical blocks slots placed in the doubly ring list in the order which they are retrieved may point to the block that was most added to the list. Thus, when a block is to be added to the cache within the replacement queue, structure of queue, in combination with the head pointer, may used to determine the block in the replacement queue that is to be to room for new block. An of the replacement may use both pointer and “tail” identifying, and end of the replacement queue. “tail” determine the oldest block or in queue. Two such pointers may be used in an replacement queue arrangement as it may in accordance with cache schemes which some data may remain permanently in the cache and the “oldest” data may not another. management techniques described, for example,
 host systems also through the Channels. ThE host SysTemS dO not AddrEss the disk drivES of tHe storage device directlY, but rAtHEr, acCEsS what Appears TO tHE HosT sYsTemS aS A pLuralIty Of logicAl disk unitS. ThE lOgical disk unITs May or may noR coRrespond to thE acTual diSk DriVEs. AllOwiNg mulTiple hOSt systEms to acceSs THe singLE storagE DEvIce uNit allows the host sYStEMs to share data sTored tHeREiN.
pErfOrmAnce of a stoRaGe sysTEm may be IMpROVEd bY Using a cache. In The case of a dISk dRive syStEm, tHE cache May be ImPLemEnted using a BlocK of semicoNductoR Memory tHAt has a rElativEly LowEr daTA aCcEss TiME thAN tHe dISk dRive. Data ThAt Is accEsseD IS ADvanTagEousLy movEd from the disk DriVes tO The Cache So thaT the SeCond aNd subsEquenT aCcesses to the datA may Be made to tHe cAcHe rAtHer thAN to the DisK drIves. DatA that haS Not BeEN ACcEssed recently may be ReMOVeD from the Cache tO MaKe ROom for neW dAta. ofteN SUch caChe aCCeSses are tRanspaREnT tO the hosT sYstem rEqUesTinG the dATa.
DaTa may bE stored iN a cacHE in order to incrEAse efficiency. hOwEVEr, THere Can Be a cost assoCiatED witH perFOrMinG Cache ManagEmENt OPerations, such as storInG and reTrievIng data from thE cache, in paRTICular if tHe caCHe IS locked for exclUsive Access in a pARticular ImpleMentatioN.
One technIQUe for impLemEntIng A caCHE iS to store the daTA In blOcKs and liNk eAch of thE blOckS toGetHeR in a doublY linked rInG lIsT rEfeRred tO Herein as A rEplAcEmeNt queUE. Each bLock oF the RePlACemEnt queuE RePREsenTs A bLock Of dAtA from A logICal Disk uniT. The blockS or SLots ArE pLaced in The doubly linkEd Ring list in ThE orDer in wHICh they arE retrieved from the disk. A  pOInter maY poInt to The bLock that wAs mOst recEntLY added To the lIst. ThUs, WheN A New blOCK iS to Be Added to the CAChe WithiN tHe rePlacemeNt queue, the structurE Of tHe replacement QueUe, in COMbInaTIoN WitH tHE heAD Pointer, may be useD to determiNe THe Oldest blocK In tHe ReplaceMent queUe thaT Is to be rEmoved to mAke room foR tHe neW BLocK. An implemeNtation oF the replaCEment QUeUe may Use Both a “hEaD” poInter And a “taIL” poInter IdentiFyIng, resPectiVeLy, the begInning and end of the replacEment qUeue. THe “tAil” may detErmINe tHe oldest bLock Or slot in thE rePlaCemenT quEUe. Two Such POiNteRS may bE useD In an replaCEmEnt QUEuE arrangemenT AS It mAy be dEsiRAble in AccoRdance with cache maNAgement schemes In whICH soMe dATa maY rEmain permanentLy iN tHE Cache and ThE “oldest” and “nEwest” datA mAY not bE adjacEnt to oNe anothER.
caCHe manaGemeNt tEchniques Are DeSCribed, fOr ExAMple,
 host systems also through  the chann els.The  ho st  sys tems  do not addres s  the  disk drives of the st orage  d e vice di rectl y, butr at h e r,ac ce sswh a tappea rsto thehost syste msas  a plurality of  logical d isk  units. Thelog ical d is k u n its m ayor ma y norc orresp ond to th ea ctuald isk dri v e s.  All owing multiple ho s ts ystems to acce ss the  s i ng l e  st ora ge deviceun it al l ows the ho s t sys t ems to sharedata stored the rein.Pe rfo r manceof ast o rag e system ma y be  improved  by us i ng a ca c he. Inthe ca seofa di s kdr ive  s y ste m ,the cac he may b eim pleme nted u s i ng a  bl ockof se miconductor m emo ry t h athas a  rela tive ly  lowe r data  acce ss  time than thedisk  drive. D ata  t hat  i s acc e ssed i s a dva ntageou sly mov e d f ro m t he  disk drives to th ec a ch e so tha t thes ec on d  and sub se que nt a c c esses  tot he  data ma y be m a de  t o the c ac he rat he r t han  to t h e di sk dri ves. Dat a tha t  has not beena ccessed recen t ly m ay be r emo ved from th e ca c he t o ma k eroo m  fornew d at a .O ften such cache acc es ses ar e tra nsparent to t he host sy s t e m reques ting th e  data.
Data ma y bestored ina  cache i n ord er to in crease ef f i ciency.How eve r,the r e  c an be a costa s soci at ed with  pe rformin g c ach e m ana ge ment oper ations,su ch  a ssto ringa nd retri ev ing  d ata  from the ca che,in p ar ti c ula r if th e  c a c he i slo cked  fo rexclu sive acc ess ina particu lar impl em en tation. 
One techniqu efor implem en tin g a ca c h e is tostore the data in block s  and li nkeachof t he blocks  to gether  in a doub ly lin ked r in g l i s t ref e r re d t oherein asa rep lacem en t qu eue. Ea ch block of the re p lac ement queue r epr esen t s  a  bl o ck ofda t a f r o m a logical dis k unit. Th eb lo cks or slo t s a re  placed  in the  doub l y linke d ring li st in the  o rder i n w hich theyare retr ieved fro m  thed is k. A po interma y p ointto the blo ck th at was  m ost re centl yadded to  the list. Thus, when a  new b lockisto be add edt o t he cachewith in the rep lac eme nt qu eue ,  thestru c tu reo f the  rep l acement q u eu e,i n  c ombinationw i t h t he he adp ointer , ma y be used to dete r mine the oldes t bl o c k i n t h e re pl acement queuetha ti s  to be r em oved to mak e room f or the n ew blo ck. An  implem e n ta t ion of  the  re placement  qu eu e  may us ebo t h a “h ead”  p ointer  and a “tai l ”  pointer identif ying, r espec t ive ly, t he  beginn i ng a nd end ofthe replace ment q ueue . The  “tail”  m ay det erm in e the olde s t block o r slo t in th erepl ace ment q ueue . Two s uchpo int ers may b e us e din anrepl aceme nt  que ue arrang e ment asitm ay be d es ira b l e in a c co r d ance withcac he ma n a gement sch e mesi nw hichsome d ata ma y remai n  pe rm anently  in t he cacheand the “ o lde st ” an d “newes t”  dat amay  n ot be adjacentto one a nother.C a che ma nag e ment techni qu es are descr ibed,  f o r examp l e ,
 host_systems also_through the channels. The_host systems_do_not address_the_disk drives of_the storage device_directly, but rather, access_what appears to_the_host systems as a plurality of logical disk units. The logical disk units may_or_may nor_correspond_to_the actual disk drives. Allowing_multiple host systems to access_the single_storage device unit allows the host systems to_share_data stored therein.
Performance_of a storage system may be improved by using_a cache. In the case of_a disk drive_system,_the_cache may be implemented_using a block of semiconductor memory_that has a relatively lower data_access time than the disk drive. Data_that is accessed is advantageously moved_from the disk drives to_the cache_so that the second and_subsequent accesses to_the data_may be made_to the cache rather than to_the disk drives._Data that has not been accessed_recently_may be removed_from_the_cache to_make room for_new_data. Often_such_cache accesses are transparent to the_host_system requesting the data.
Data may be stored_in a cache in_order_to increase efficiency. However,_there can be a cost_associated with performing cache management operations,_such as_storing and_retrieving data from the cache, in particular if the cache is_locked for exclusive access in a_particular implementation.
One technique for_implementing a_cache_is to store_the_data in_blocks and link each of the blocks_together in_a doubly linked ring list referred_to herein as a_replacement_queue. Each block of the replacement_queue represents a block of data_from a logical disk unit._The_blocks_or slots are placed in_the doubly linked ring list in_the order in_which they are retrieved from the disk._A_ pointer may point to the_block_that was most recently added to_the_list._Thus, when a new block_is to be added to the_cache within the replacement queue, the structure of the_replacement queue, in_combination with the head pointer,_may_be_used to determine the oldest block in the replacement queue_that is_to be removed_to make room for the new block. An implementation of_the replacement queue may use both a_“head” pointer and a “tail” pointer identifying, respectively, the beginning and_end of the replacement queue. The “tail” may_determine the oldest block or slot in_the replacement queue. Two_such_pointers may be used in an replacement_queue_arrangement_as_it may be_desirable in accordance_with cache management_schemes in_which some data_may remain_permanently in the_cache_and the “oldest” and “newest” data may not be adjacent to one another.
Cache management techniques are described, for_example,