⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 disk.modspec

📁 目前最精确的磁盘模拟器的第3版
💻 MODSPEC
📖 第 1 页 / 共 2 页
字号:
INIT result->readaheadifidle = i;This specifies whether or not prefetching should be initiated by thedisk when a read request is completely satisfied by cached data(i.e.,~a ``full read hit'').PARAM Read any free blocks		I	1 TEST RANGE(i,0,1)INIT result->readanyfreeblocks = i;This specifies whether or not disk sectors logically prior to therequested sectors should be read into the cache if they pass under theread/write head prior to reaching the requested data (e.g.,~duringrotational latency).PARAM Fast write level			I	1 TEST RANGE(i,0,2) INIT result->fastwrites = i;This specifies the type of write-back caching implemented.  0~indicates that write-back caching is disabled (i.e.,~all dirty datamust be written to the disk media prior to sending a completionmessage).1~indicates that write-back caching is enabled for contiguoussequential write request streams.  That is, as long as each requestarriving at the disk is a write request that ``appends'' to thecurrent segment of dirty data, a completion message will be returnedfor each new request as soon as all of its data have been transferredover the bus to the disk buffer/cache.2~indicates that write-back caching is enabled for contiguoussequential write request streams even if they are intermixed with reador non-appending write requests, although before any such request isserviced by the disk, all of the dirty write data must be flushed tothe media.  A scheduling algorithm that gives precedence to sequentialwrites would maximize the effectiveness of this option.PARAM Combine seq writes		I	1 TEST RANGE(i,0,1)INIT result->writecomb = i;This specifies whether or not sequential data from separate write requestscan share a common cache segment.  If true~(1), data are typicallyappended at the end of a previous request's dirty data.  However, ifall of the data in a cache segment are dirty, and no mechanicalactivity has begun on behalf of the request(s) using that segment,``prepending'' of additional dirty data are allowed provided that theresulting cache segment contains a single contiguous set of dirtysectors.PARAM Stop prefetch in sector		I	1 TEST RANGE(i,0,1)INIT result->stopinsector = i;This specifies whether or not a prefetch may be aborted in the ``middle''of reading a sector off the media.  If false~(0), prefetch activity isonly aborted at sector boundaries.PARAM Disconnect write if seek		I	1 TEST RANGE(i,0,1) INIT result->disconnectinseek = i;This specifies whether or not the disk should disconnect from the bus ifthe actuator is still in motion (seeking) when the last of a writerequest's data has been transferred to the disk buffer/cache.PARAM Write hit stop prefetch		I	1 TEST RANGE(i,0,1)INIT result->write_hit_stop_readahead = i;This specifies whether or notthe disk should discontinue the read-ahead of a previous request when awrite hit in the cache occurs.  Doing so allows the new write request'sdata to begin travelling to the disk more quickly, at the expense ofsome prefetching activity.PARAM Read directly to buffer		I	1 TEST RANGE(i,0,1)INIT result->read_direct_to_buffer = i;This specifies whether or notspace for a sector must be available in the buffer/cache prior to thestart of the sector read.  If false~(0), a separate sector buffer is assumedto be available for use by the media-reading electronics, implying that thedata for a sector is transferred to the main buffer/cache only after it hasbeen completely read (and any error-correction algorithms completed).PARAM Immed transfer partial hit	I	1 TEST RANGE(i,0,1)INIT result->immedtrans_any_readhit = i;This specifies whether or not a read request whose initial (but not all)data are present in the disk buffer/cache has that data immediatelytransferred over the bus.  If false~(0), the data are immediatelytransferred only if the amount of requested data that are present inthe buffer/cache exceed the {\it high water mark} (see above).PARAM Read hit over. after read		D	1 TEST d >= 0.0INIT result->overhead_command_readhit_afterread = d;This specifies the processing time for a read request that hits in theon-board cache when the immediately previous request was also a read.This delay is applied before any data are transferred from the diskbuffer/cache.PARAM Read hit over. after write	D	1 TEST d >= 0.0INIT result->overhead_command_readhit_afterwrite = d;This specifies the processing time for a read request that hits in theon-board cache when the immediately previous request was a write.This delay is applied before any data are transferred from the diskbuffer/cache.PARAM Read miss over. after read	D	1 TEST d >= 0.0INIT result->overhead_command_readmiss_afterread = d;This specifies the processing time for a read request that misses in theon-board cache when the immediately previous request was also a read.This delay is applied before any mechanical positioning delays or datatransfer from the media.PARAM Read miss over. after write	D	1 TEST d >= 0.0INIT result->overhead_command_readmiss_afterwrite = d;This specifies the processing time for a read request that misses in theon-board cache when the immediately previous request was a write.This delay is applied before any mechanical positioning delays or datatransfer from the media.PARAM Write hit over. after read	D	1 TEST d >= 0.0INIT result->overhead_command_writehit_afterread = d;This specifies the processing time for a write request that ``hits'' inthe on-board cache (i.e., completion will be reported before datareaches media) when the immediately previous request was a read.  Thisdelay is applied before any mechanical positioning delays and beforeany data are transferred to the disk buffer/cache.PARAM Write hit over. after write	D	1 TEST d >= 0.0INIT result->overhead_command_writehit_afterwrite = d;This specifies the processing time for a write request that ``hits'' inthe on-board cache (i.e., completion will be reported before datareaches media) when the immediately previous request was also a write.This delay is applied before any mechanical positioning delays andbefore any data are transferred to the disk buffer/cache.PARAM Write miss over. after read	D	1 TEST d >= 0.0INIT result->overhead_command_writemiss_afterread = d;This specifies that ``misses'' in the on-board cache (i.e., completion willbe reported only after data reaches media) when the immediatelyprevious request was a read.  This delay is applied before anymechanical positioning delays and before any data are transferred tothe disk buffer/cache.PARAM Write miss over. after write	D	1 TEST d >= 0.0INIT result->overhead_command_writemiss_afterwrite = d;This specifies the processing time for a write request that ``misses'' inthe on-board cache (i.e., completion will be reported only after datareaches media) when the immediately previous request was also a write.This delay is applied before any mechanical positioning delays andbefore any data are transferred to the disk buffer/cache.PARAM Read completion overhead		D	1 TEST d >= 0.0INIT result->overhead_complete_read = d;This specifies the processing time for completing a read request.This overhead is applied just before the completion message is sentover the (previously acquired) bus and occurs in parallel with anybackground disk activity (e.g.,~prefetching or preseeking).PARAM Write completion overhead		D	1 TEST d >= 0.0INIT result->overhead_complete_write = d;This specifies the processing time for completing a write request.This overhead is applied just before the completion message is sentover the (previously acquired) bus and occurs in parallel with anybackground disk activity (e.g.,~preseeking).PARAM Data preparation overhead		D	1 TEST d >= 0.0INIT result->overhead_data_prep = d;This specifies the additional processing time necessary when preparing totransfer data over the bus (for either reads or writes).  This commandprocessing overhead is applied after obtaining access to the bus(prior to transferring any data) and occurs in parallel with anyongoing media access.PARAM First reselect overhead		D	1 TEST d >= 0.0INIT result->overhead_reselect_first = d; This specifies the processing time for reconnecting to (or``reselecting'') the controller for the first time during the currentrequest.\footnote{Reselection implies that the disk has explicitlydisconnected from the bus at some previous point while servicing thecurrent request and is now attempting to reestablish communicationwith the controller.  Disconnection and subsequent reselection resultin some additional command processing and protocol overhead, but theymay also improve the overall utilization of bus resources shared bymultiple disks (or other peripherals).}  This command processingoverhead is applied after the disk determines that reselection isappropriate (prior to attempting to acquire the bus) and occurs inparallel with any ongoing media access.PARAM Other reselect overhead		D	1 TEST d >= 0.0INIT result->overhead_reselect_other = d;This specifies the processing time for reconnecting to the controllerafter the first time during the current request (i.e.,~the secondreselection, the third reselection, etc.).  This command processingoverhead is applied after the disk determines that reselection isappropriate (prior to attempting to acquire the bus) and occurs inparallel with any ongoing media access.PARAM Read disconnect afterread		D	1 TEST d >= 0.0INIT result->overhead_disconnect_read_afterread = d;This specifies the processing time for a read request that disconnectsfrom the bus when the previous request was also a read.  This commandprocessing overhead is applied after the disk determines thatdisconnection is appropriate (prior to requesting disconnection fromthe bus) and occurs in parallel with any ongoing media access.PARAM Read disconnect afterwrite	D	1 TEST d >= 0.0INIT result->overhead_disconnect_read_afterwrite = d;This specifies the processing time for a read request that disconnectsfrom the bus when the previous request was a write request.  Thiscommand processing overhead is applied after the disk determines thatdisconnection is appropriate (prior to requesting disconnection fromthe bus) and occurs in parallel with any ongoing media access.PARAM Write disconnect overhead		D	1 TEST d >= 0.0INIT result->overhead_disconnect_write = d;This specifies the processing time for a write request that disconnectsfrom the bus (which generally occurs after the data are transferredfrom the host to the on-board buffer/cache).  This command processingoverhead is applied after the disk determines that disconnection isappropriate (prior to requesting disconnection from the bus) andoccurs in parallel with any ongoing media access.PARAM Extra write disconnect		I	1 TEST RANGE(i,0,1)INIT result->extra_write_disconnect = i;This specifies whether or not the disk disconnects from the bus afterprocessing the write command but before any data have been transferredover the bus into the disk buffer/cache.  Although there are noperformance or reliability advantages to this behavior, it has beenobserved in at least one production SCSI disk and has therefore beenincluded in DiskSim.  If true~(1), the next five parameters configureadditional overhead values specifically related to this behavior.PARAM Extradisc command overhead	D	1 TEST d >= 0.0INIT result->extradisc_command = d;This specifies the processing time for a write request that disconnectsfrom the bus before transferring any data to the disk buffer/cache.This overhead is applied before requesting disconnection from the busand before any mechanical positioning delays.  This parameter (whenenabled) functions in place of the above ``Write over.'' parameters.PARAM Extradisc disconnect overhead	D	1 TEST d >= 0.0INIT result->extradisc_disconnect1 = d;This specifies the additional processing time for a write request thatdisconnects from the bus before transferring any data to the diskbuffer/cache.  This overhead is also applied before requestingdisconnection from the bus, but it occurs in parallel with anymechanical positioning delays.  This parameter (when enabled)functions in place of the above ``Write disconnect'' parameter forinitial write disconnections.PARAM Extradisc inter-disconnect delay	D	1 TEST d >= 0.0INIT result->extradisc_inter_disconnect = d;This specifies the time between the initial disconnect from the bus andthe subsequent reconnection attempt for a write request thatdisconnects from the bus before transferring any data to the diskbuffer/cache.  It occurs in parallel with any mechanical positioningdelays.PARAM Extradisc 2nd disconnect overhead	D	1 TEST d >= 0.0INIT result->extradisc_disconnect2 = d; This specifies the processing time for a write request that disconnectsfrom the bus after data has been transferred but previously haddisconnected without transferring any data to the disk buffer/cache.This command processing overhead is applied after the disk determinesthat disconnection is appropriate (prior to requesting disconnectionfrom the bus) and occurs in parallel with any ongoing media access.This parameter (when enabled) functions in place of the above ``Writedisconnect'' parameter for non-initial write disconnections.# not used by mech modelPARAM Extradisc seek delta		D	1 TEST d >= 0.0INIT result->extradisc_seekdelta = d;This specifies the additional delay between the completion of the initialcommand processing overhead and the initiation of any mechanicalpositioning for a write request that disconnects from the bus beforetransferring any data to the disk buffer/cache.  This delay occurs inparallel with ongoing bus activity and related processing overheads.# not used by mech modelPARAM Minimum seek delay		D	1 TEST d >= 0.0INIT result->minimum_seek_delay = d;This specifies the minimum media access delay for a nonsequential writerequest.  That is, a nonsequential write request (after any commandprocessing overheads) must wait at least this amount of time beforeaccessing the disk media.PARAM Immediate buffer read		I	1 TEST RANGE(i,0,2)INIT result->immedread = i;This specifies whether or not disk sectors should be transferred into theon-board buffer in the order that they pass under the read/write headrather than in strictly ascending logical block order.  This is knownas {\it zero-latency reads} or {\it read-on-arrival}.  It is intendedto improve response times by reducing rotational latency (by notrotating all the way around to the first requested sector beforebeginning to fill the buffer/cache).PARAM Immediate buffer write		I	1 TEST RANGE(i,0,2)INIT result->immedwrite = i;This specifies whether or not disk sectors should be transferred from theon-board buffer in the order that they pass under the read/write headrather than in strictly ascending logical block order.  These are knownas {\it zero-latency writes} or {\it write-on-arrival}.  It isintended to improve response times by reducing rotational latency (bynot rotating all the way around to the first ``dirty'' sector beforebeginning to flush the buffer/cache).

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -