Кіріспе

Белгілі бір ATA және SCSI қатты дискілеріне енгізілген технология – Таңбаланған Бұйрық Кезектемесі (TCQ). Ол операциялық жүйеге қатты дискіге бірнеше оқу және жазу сұраныстарын жіберуге мүмкіндік береді. ATA TCQ SATA дискілерінде қолданылатын, тиімдірек Native Command Queuing (NCQ) функциясымен толықтай сәйкес келмейді. SCSI TCQ ATA TCQ-дағы сияқты шектеулерге ұшырамайды. TCQ болмағанда, операциялық жүйе бір уақытта тек бір сұрауды ғана жібере алатын. Өнімділікті арттыру үшін операциялық жүйе сұраулардың ретін қатты дискінің қызметі туралы өзінің қате болуы мүмкін көзқарасына сүйеніп (әйтпесе I/O жоспарлау деп аталады) анықтауға мәжбүр болатын. TCQ арқылы дискі өз сұраныстарын қалай орындау керектігін өзі шеше алады (және операциялық жүйені осыдан босатады). Осылайша, TCQ дұрыс жүзеге асырылған жағдайда қатты дискінің жалпы өнімділігін жақсарта алады.

Шолу

Тиімділікті арттыру үшін секторларға тапсырыс бойынша емес, бас позициясының қазіргі орнына жақындық бойынша қызмет көрсету керек. Кезек үнемі жаңа сұраныстарды қабылдайды, қолданыстағы сұраныстарды орындайды және жояды, сондай-ақ ағымдағы күтіліп тұрған оқу/жазу сұраныстары мен бас позициясының өзгеруіне сәйкес қайта реттейді. Нақты қайта реттеу алгоритмі контроллер мен дискке байланысты болуы мүмкін, бірақ хост-компьютер қажет болған жағдайда ғана сұрау жібереді, ал контроллер бұл мәселенің бәрін шешеді. Бұл кезекке қою механизмі кейде "лифт іздеу" деп аталады, себебі ғимараттағы көптеген шақыруларға қызмет көрсететін және оларды жол жүруді азайту үшін өңдейтін заманауи лифттің бейнесі бұл идеяны жақсы көрсетеді. Егер 5, 2 және 4 қабаттарға баратын түймелерді осы ретпен басқанда лифт 1 қабаттан бастаса, ескі лифт сұралған ретпен қабаттарға барар еді. Ал қазіргі заманғы лифт сұраныстарды 2, 4 және 5 қабаттарға тоқтау үшін логикалық тәртіппен, қажетсіз сапарсыз өңдейді. Кезексіз дисктер сұраныстарды ескі лифт сияқты түскен тәртіппен қызмет көрсетеді; кезектегі дисктер сұраныстарды ең тиімді тәртіппен қызмет көрсетеді. Бұл бір пайдаланушы қолданатын жүйеде өнімділікті сәл жақсарта алады, бірақ көптеген пайдаланушылар диск бетінде әртүрлі сұраныстар жіберетін жүйеде өнімділікті күрт арттыра алады.

SCSI TCQ

SCSI TCQ – TCQ-ның алғашқы танымал нұсқасы болды және бүгінгі күнге дейін танымал. Ол тапсырмаларды үш түрлі режимнің бірін пайдаланып кезекке қоюға мүмкіндік береді: Бұл режим жиі қолданылмайды, себебі дұрыс пайдаланбаған жағдайда ресурстардың жетіспеуіне алып келуі мүмкін. Реттелген режимде тапсырма, барлық бұрынғы тапсырмалар аяқталғаннан кейін және барлық жаңа тапсырмалар орындала бастағанға дейін орындалуы керек (кезектің жаңа тапсырмаларын ескермегенде). Дегенмен, SCSI протоколын іске асыратын басқа протоколдардың барлығы 64 биттің толық көлемін пайдалануына рұқсат етілмеуі мүмкін. Мысалы, ескі параллель SCSI 8 биттік таңбалау биттерін, iSCSI 32 биттік таңбалау биттерін, ал Fibre Channel 16 биттік таңбалау биттерін, резервтегі таңбалау бітімен бірге қолдануға рұқсат береді. Бұл икемділік протокол жасаушыға кезекке қою мүмкіндігін құнмен салыстыруға мүмкіндік береді. iSCSI желілері сияқты кеңейтілген желілер, желідегі дискілердің көп санымен және мұндай үлкен желілер тудыратын үлкен кешігумен күресу үшін көбірек таңбалау биттерінен пайда көреді, ал параллель SCSI тізбектері сияқты кішкентай желілерде көптеген таңбалау биттерін қажет ететін жеткілікті дискілер немесе кешігу болмайды және аз биттерді қолдайтын жүйеге көшу арқылы ақша үнемдеуге болады.

ATA TCQ

ATA TCQ, ATA дискілеріне SCSI сияқты пайдалы мүмкіндіктерді әкелу мақсатымен әзірленді. Ол параллель және Serial ATA нұсқаларында қолжетімді. Бұл күш-жігер аса сәтті болмады, себебі ATA шинасы бастапқыда азайтылған контактілі ISA шинасы ретінде құрылды. Бағдарламалық үйлесімділік талаптары ATA хост-буферлік адаптерлерін бірінші тараптық DMA қолданусыз ISA шинасының құрылғылары сияқты жұмыс істеуге мәжбүр етті. Диск деректерді жіберуге дайын болғанда, процессорды үзіліске жіберуі, процессордың дискіге қандай команданы орындауға дайын екенін сұрауын күтуі, орындауға дайын командамен жауап беруі, процессордың хост-буферлік адаптердің үшінші тараптық DMA қозғалтқышын осы команданың нәтижесіне сәйкес бағдарламалауын күтуі, үшінші тараптық DMA қозғалтқышының команданы орындауын күтуі және содан кейін DMA қозғалтқышы тапсырманы аяқтағанда процессорды қайтадан үзіліске жіберіп, оны хабардар етуі керек еді, осылайша процессор сұралған тапсырманы тапсырыс берген тікелей бағдарламаға тапсырма аяқталғаны туралы хабарлай алатын болды. Үзілістерге жауап беру процессор уақытын қолданғандықтан, ATA TCQ қосылғанда процессордың жүктемесі тез өсті. Сонымен қатар, үзіліс қызметінің уақыты болжаусыз болғандықтан, диск деректерді жіберуге дайын болған, бірақ процессор үзіліске жауап беретінге дейін күтуге мәжбүр болғандықтан деректерді жібере алмаған жағдайлар туындады, осылайша процессор үшінші тараптық DMA қозғалтқышын бағдарламалау қажеттігін білуі керек еді. Сондықтан бұл стандарт көбінесе қолданылмады, өйткені ол процессордың жүктемесін арттырды, бірақ өнімділікті жеткілікті деңгейде жақсартпады. Бұл стандарт бір құрылғыға 32 күтіліп тұрған командаға рұқсат береді.

SATA NCQ

SATA NCQ – ATA TCQ-мен салыстырғанда қажетті CPU үзілістерінің санын күрт азайтатын заманауи стандарт. ATA TCQ сияқты, ол құрылғыға 32 командаға дейін орындауға мүмкіндік береді, бірақ параллель ATA мінез-құлқын имитацияламаған SATA хост-бус адаптерлерінің бірінші тарап DMA-ны қолдау мүмкіндігін пайдалану үшін жасалған. Қатты диск CPU-ны тапсырмадан бұрын тоқтатып, хост-адаптердің DMA қозғалтқышын бағдарламалауға мәжбүрлеудің орнына, хост-адаптерге қандай команданы орындау керектігін айтады, бұл хост-адаптердің енгізілген бірінші тарап DMA қозғалтқышын командада көрсетілген параметрлермен бағдарламалауға мүмкіндік береді. Содан кейін DMA қозғалтқышы команданы орындау үшін қажетті деректерді жылжытады. Үзіліс жүктемесін одан әрі азайту үшін, диск тапсырма аяқталған хабарламаларды бірнешеуін жинап, бірден жіберуге дейін сақтап тұра алады, бұл операциялық жүйеге көптеген процестерге тапсырмалардың аяқталғанын бірден хабарлауға мүмкіндік береді. Егер мұндай үзіліс жіберілгеннен кейін басқа тапсырма аяқталса, хост-адаптері аяқталу хабарламаларын біріктіре алады, егер аяқталу хабарламаларының алғашқы жиынтығы CPU-ға жіберілмесе. Бұл қатты дискінің микропрограммасына дискінің өнімділігі мен CPU-дың жүктелуі арасындағы қарым-қатынасты реттеуге мүмкіндік береді, яғни қашан хабарламаларды сақтау керектігін және қашан жіберу керектігін анықтау арқылы.