Etiketli Komut Kuyruklama - Tagged Command Queuing
Etiketli Komut Kuyruklama ( TCQ ), belirli ATA ve SCSI sabit sürücülerinde yerleşik bir teknolojidir . İşletim sisteminin bir sabit diske birden çok okuma ve yazma isteği göndermesine izin verir . ATA TCQ, işlev olarak SATA sürücüleri tarafından kullanılan daha verimli Yerel Komut Kuyruklama (NCQ) ile aynı değildir . SCSI TCQ, ATA TCQ ile aynı sınırlamalara sahip değildir.
TCQ olmadan, bir işletim sistemi bir seferde bir istek göndermekle sınırlıydı. Performansı artırmak için, işletim sistemi isteklerin sırasını, sabit sürücü etkinliğinin kendi - muhtemelen yanlış - perspektifine göre (aksi takdirde G / Ç planlaması olarak bilinir ) belirlemesi gerekiyordu. TCQ ile sürücü, istekleri nasıl sipariş edeceği konusunda kendi kararlarını verebilir (ve bunun karşılığında işletim sistemini bunu yapmak zorunda kalmadan kurtarabilir). Dolayısıyla, TCQ, doğru şekilde uygulanırsa bir sabit diskin genel performansını artırabilir.
Genel Bakış
Verimliliğin artması için sektörlere, alınan siparişe değil, mevcut baş konumuna yakınlık sırasına göre hizmet verilmelidir. Kuyruk sürekli olarak yeni istekler alıyor, mevcut istekleri yerine getiriyor ve kaldırıyor ve mevcut bekleyen okuma / yazma isteklerine ve başın değişen pozisyonuna göre kuyruğu yeniden sıralıyor. Kesin yeniden sıralama algoritması denetleyiciye ve sürücünün kendisine bağlı olabilir, ancak ana bilgisayar yalnızca gerektiğinde isteklerde bulunur ve denetleyicinin ayrıntıları işlemesini sağlar.
Bu kuyruk mekanizmasına bazen " asansör arama " olarak atıfta bulunulur , çünkü bir binada birden fazla çağrıya hizmet veren ve bunları seyahatleri en aza indirgemek için işleyen modern bir asansörün görüntüsü fikri iyi gösterir.
1. kattan başlayan asansör ile 5., 2. ve 4. katların düğmelerine bu sırayla basılırsa eski bir asansör istenilen sırayla katlara gider. Modern bir asansör, 2, 4 ve 5 numaralı katlarda durma isteklerini gereksiz yere seyahat etmeden işler. Kuyrukta olmayan disk sürücüleri, eski bir asansör gibi isteklere alınan sırayla hizmet verir; kuyruğa alma, hizmet isteklerini en verimli sırayla yönlendirir. Bu, tek bir kullanıcı tarafından kullanılan bir sistemde performansı biraz artırabilir, ancak birçok kullanıcının disk yüzeyinde çok çeşitli isteklerde bulunduğu bir sistemde performansı önemli ölçüde artırabilir.
SCSI TCQ, ATA TCQ ve SATA NCQ karşılaştırması
SCSI TCQ
SCSI TCQ, TCQ'nun ilk popüler versiyonuydu ve bugün hala popüler. Görevlerin üç farklı moddan birini kullanarak bir kuyruğa girmesine izin verir:
- sıranın başı
- sipariş
- basit
Gelen kuyruk modunun kafasına SCSI TCQ özgü, bir görev sırası görevleri bekleyen diğer kafasına dahil tüm diğer görevler öncesinde, bir kuyruğun önüne itilir. Bu mod, kötüye kullanıldığında kaynak açlığına neden olabileceğinden pek kullanılmaz.
Gelen sipariş modda tüm eski görevleri tamamlanmış ve tüm yeni görevler yürütmek başlamadan önce (daha yeni hariç sonra, bir görev yürütmek zorundadır kuyruk başkanı görevleri).
Basit mod , görevlerin diğer iki moddaki görevler üzerindeki kısıtlamaları ihlal etmeyen herhangi bir sırada yürütülmesine izin verir. Bir görevdeki bir komut tamamlandıktan sonra, komutu tamamlayan cihaz tarafından ana bilgisayar veriyolu adaptörüne bir bildirim gönderilir.
SCSI TCQ'nun büyük kesintiye neden olup olmadığı, SCSI ana bilgisayar veriyolu bağdaştırıcısını bağlamak için kullanılan veri yoluna bağlıdır. On Konvansiyonel PCI , PCI-X , PCI Express ve buna izin diğer otobüsler, birinci parti DMA düşük kesme yükü için izin verir. Eski ISA veriyolu, CPU'nun üçüncü taraf DMA motorunu bir aktarım gerçekleştirmesi için programlamasına neden olacak bir kesme oluşturmak için bir SCSI ana bilgisayar bağdaştırıcısı gerektirdi ve ardından CPU'ya kuyruktaki bir görevin tamamlandığını bildirmek için başka bir kesintiye ihtiyaç duyarak yüksek CPU ek yükü.
SCSI TCQ Etiket Uzunluğu
SCSI-3 protokolü, etiket alanında 64 bitin kullanılmasına izin vererek, daha fazla komut verilmeden önce bazılarının tamamlanması gerekmeden önce bir görev setinde en fazla 2 64 görevin yayınlanmasına izin verir . Ancak, SCSI protokolünü uygulayan farklı protokoller 64 bitin tamamının kullanımına izin vermeyebilir. Örneğin, eski paralel SCSI 8 bit etiket bitine izin verir , iSCSI 32 adede kadar etiket bitine izin verir ve Fiber Kanal , ayrılmış 0xFFFF etiketi ile 16 bit etikete kadar izin verir . Bu esneklik, bir protokolün tasarımcısının kuyruğa alma yeteneğini maliyete karşı değiştirmesine olanak tanır. İSCSI ağları gibi büyük olabilen ağlar, ağdaki daha fazla sayıda diskle başa çıkmak için daha fazla etiket bitinden faydalanır ve büyük ağlar gibi daha büyük gecikmeler üretirken, paralel SCSI zincirleri gibi daha küçük ölçekli ağlar bunu yapmaz. çok sayıda etiket bitine ihtiyaç duyacak kadar disk veya gecikme süresine sahip olun ve daha az biti destekleyen bir sistem kullanarak paradan tasarruf edin.
ATA TCQ
ATA TCQ, SCSI ile aynı faydaları ATA sürücülerine sağlamak amacıyla geliştirilmiştir. Hem Paralel hem de Seri ATA'da mevcuttur.
Bu çaba çok başarılı olmadı çünkü ATA veriyolu azaltılmış pin sayısı ISA veriyolu olarak başladı. Yazılım uyumluluğu gereksinimi, ATA ana bilgisayar veri yolu adaptörlerinin birinci taraf DMA'sız ISA veri yolu aygıtları gibi davranmasını sağladı . Bir sürücü aktarım için hazır olduğunda, CPU'yu kesintiye uğratması, CPU'nun diske hangi komutun yürütülmeye hazır olduğunu sormasını beklemesi, yürütmeye hazır olduğu komutla yanıt vermesi, CPU'nun ana bilgisayarı programlamasını beklemesi gerekiyordu. veriyolu bağdaştırıcısının üçüncü taraf DMA motoru, bu komutun sonucuna göre, üçüncü taraf DMA motorunun komutu yürütmesini bekleyin ve ardından CPU'nun görevi bitirebilmesi için DMA motoru görevi bitirdiğinde bunu bildirmek için CPU'yu tekrar kesmek zorunda kaldı. Görevi isteyen iş parçacığına istenen görevin tamamlandığını bildirin. Kesintilere yanıt vermek CPU süresini kullandığından, ATA TCQ etkinleştirildiğinde CPU kullanımı hızla arttı. Ayrıca, kesinti hizmet süresi tahmin edilemez olabileceğinden, diskin veri aktarmaya hazır olduğu ancak bunu yapamadığı zamanlar vardır, çünkü CPU'nun kesmeye yanıt vermesini beklemesi gerekir, böylece CPU, üçüncü taraf DMA motoru.
Bu nedenle, bu standart nadiren uygulandı çünkü performansı buna değecek kadar iyileştirmeden yüksek CPU kullanımına neden oldu. Bu standart, cihaz başına 32 adede kadar olağanüstü komuta izin verir.
SATA NCQ
SATA NCQ , ATA TCQ'ya kıyasla gerekli CPU kesintilerinin sayısını büyük ölçüde azaltan modern bir standarttır. ATA TCQ gibi, aygıt başına 32 adede kadar olağanüstü komuta izin verir, ancak birinci taraf DMA'yı desteklemek için paralel ATA davranışını taklit etmeyen SATA ana bilgisayar veri yolu adaptörlerinin yeteneğinden yararlanmak üzere tasarlanmıştır. Ana bilgisayar veriyolu adaptörünün DMA motorunu programlamaya zorlamadan önce CPU'yu kesintiye uğratmak yerine, sabit sürücü ana bilgisayar veriyolu adaptörüne hangi komutu yürütmek istediğini söyleyerek ana bilgisayar veriyolu adaptörünün entegre birinci taraf DMA motorunu programlamasına neden olur. ilk verildiğinde sabit sürücü tarafından seçilen komuta dahil edilen parametreler ve ardından DMA motoru, komutu yürütmek için gereken verileri hareket ettirir. Kesinti ek yükünü daha da azaltmak için, sürücü, birçoğunu aynı anda göndermek üzere toplayana kadar, görev tamamlanan mesajlarla kesmeyi durdurabilir ve bu da işletim sisteminin görevlerinin tamamlandığını eşzamanlı olarak birçok iş parçacığına bildirmesine olanak tanır. Bu tür bir kesme gönderildikten sonra başka bir görev tamamlanırsa, ilk tamamlama mesajı kümesi CPU'ya gönderilmemişse, ana bilgisayar veriyolu bağdaştırıcısı tamamlama mesajlarını birbirine bağlayabilir. Bu, sabit disk sabit yazılım tasarımının, ne zaman durdurulacağını ve ne zaman tamamlanma mesajlarının gönderileceğini belirleyerek disk performansını CPU kullanımına karşı değiştirmesine olanak tanır.
Referanslar
Dış bağlantılar
- Command Queuing Turbo Şarjı SATA'yı Verebilir mi? Patrick Schmid ve Achim Roos, Tom's Hardware Guide