# ATA


## Geçmiş.
Birincil özelliği, daha sonra 'AT bus' olarak adlandırılan ISA bus'a 16-bitlik direkt bağlantı oluşturmasından dolayı orijinal adı "PC/AT Attachment" olarak tasarlandı. Daha sonra "AT Attachment" olarak kısaltıldı.
Bu aygıtın isminin daha önceki versiyonu, anakarta bağlı olup kendi ayrı denetmenine (controller) sahip olmasından ötürü (bu özelliği ona anakartta ayrı bir "host adapter" arayüzü olma özelliğini sağlar ), 1980lerin sonunda Western Digital tarafından tasarlanmış, Entegre Edilmiş Sürücü Elektroniği (Integrated Drive Elektronics – IDE) dir. Yine Western Digital tarafından standart ATA'ya ek olarak üretilen Enhanced IDE (EIDE) (Geliştirilmiş IDE ) 528 megabayt (504 mebibayt) tan, 8.4 gigabayta kadar depolama kapasitesine sahiptir. Bu yeni isimler resmi olmamasına rağmen, IDE ve EIDE terimleri genellikle PATA yerine kullanılabilir olarak görülürler. Bunun sebebi aynı tüketim aygıtının iki farklı teknoloji olarak tanıtılmasına dayandırılabilir. 2003 yılında Serial ATA isimlendirmesi ile, geleneksel ATA ismi Parallel ATA (P-ATA) olarak değişmiştir.
Arayüz ilk başta sadece hard diskle çalışıyordu, ama daha sonra başka aygıtların da arayüzle çalışması gereği ortaya çıktı. Bu aygıtlar, başlıca CD-ROM ve DVD-ROM sürücüleri, tape drive (sürücüleri) ve Zip drive ve SuperDisk drive gibi geniş kapasiteli floppy sürücüleridir. Western Digital ve Oak Technologies şirketlerinin geliştirdiği non-ANSI SFF-8020 ile üretilmeye başlayan eklentiler, AT Attachment Packet Interface (ATAPI) ismini ortaya çıkarmıştır. Ama 4. versiyondan beri standart olarak bütün isim ATA/ATAPI olarak bilinmektedir. Kaldırılabilir medya aygıtları ARMD (ATAPI Removable Media Device) olarak sınıflandırılmıştır ve bir floppy diskte ya da yönetici sistem sürücüsünde görülebilir.
programmed input/output (PIO) dan direct memory access (DMA) ya hareket, ATA tarihinde başka önemli bir değişimi sağlamıştır. Bütün bilgisayar kelimeleri CPU tarafından okunmalıdır, ama PIO yavaş hareket eder ve CPU kaynaklarını kullanır. Bu durum önbelleksel ana belleğin dışındaki bir bilgiye ulaşmaya çalışan CPU için büyük bir problem oluşturur. Bu, ATA aygıtı çevresinde bulunan sistemlerin diske bağlı işlemlerde SCSI ya da başka bir arayüz kullanan bilgisayarlara göre daha yavaş olduğu anlamına gelir. Oysa DMA (daha sonra Ultra DMA ya da UDMA ismini alır) CPU'nun diskte yazma ve okuma işlemlerinin hızlarını büyük ölçüde düşürür. Bu doğrudur çünkü DMA ve UDMA disk denetimcisinin belleğe veri yazmasına direkt izin verir, böylece CPU by-pass'lanır.
Orijinal ATA'da 28 – bitlik adresleme modu kullanılırdı. Bu durum 512 baytlık 228 (268,435,456) sektörün adreslenmesi anlamına gelirdi. Sonuç olarak maksimum 137 gigabytes (128 GiB) yer elde edilirdi. Maksimum 1024 silindire, 256 başlığa ve 63 sektöre sahip olan standart PC BIOS sistemi 7.88 GiB (8.46 GB)'a kadar desteklenebilmekteydi. Standart PC BIOS sistemlerindeki CHS limitasyonlarının en düşük ortak denominatörleri ile IDE birleştiklerinde, sistem 504 mebibytes kadar limitli hale gelmiştir.
ATA-6 limiti 128 PiB (veya 144 petabytes)'a kadar çıkarma ile, 48 bit adresleme yapabilir. Windows 200 gibi bazı OS çevreleri 48-bit LBA yı etkin hale getirmezler, böylece kullanıcı 160 GB sürücüde tam kapasite için ekstra adımlara ihtiyaç duyar.
Bu ölçü limitasyonları olmalıdır. Çünkü sistemin bazı parçaları, bazı limitlerin ötesindeki blok adreslerini işleyemezler. Sistem bir sürücünün boyutunu düşündüğü zaman ya da ön yüklemeyi reddedip sürücüleri başlangıç yapma noktasında BIOS ekranında kalmaya devam ediyorsa bu problem kendini gösterir. Bazı durumlarda anakart için BIOS güncellemesi sorunu çözer. Bu problem, kullanılabilir diski 128 GB'a limitleyen eski dış FireWire disk koruncağında da görülür. 2005'in başlarında koruncaklar pratiksel olarak limitsiz olmaya elverişliydi.


## Paralel ATA arayüzü.
 
Serial ATA çıkana kadar, 40-pin bağlayıcıları (connector) sürücülere şerit kablosu ile bağlanırlardı. Her kablo iki ya da 3 tane bağlayıcıya sahiptir. Bağlayıcılardan bir tanesi adaptörden bilgisayarın geri kalan kısmına arayüzlülük yapar. Paralel ATA kabloları tek seferde 16 bit veriyoluayabilir.
ATA'nın geçmişinde çoğunluk olarak 40 telli şerit kablolar vardı. Ama "Ultra DMA/66" ("UDMA4") nın çıkması ile 80 telli versiyonlar ortaya çıkmaya başladı. Yeni kablolardaki eklenen teller toprak telleridir ve önceki tanımlanan tellerle veri dönüşümü yapar. Veri dönüşümü yapan teller komşu sinyal teller ile arasındaki kapasitif eşleşme etkisini azaltır. Yüksek transfer değerlerinde kapasitif eşleşme bir sorundur ve bu değişiklik, "UDMA4" ün güvenilir biçimde çalışması için transfer değerinin 66 megabytes per second (MB/s) değerinde etkin olması için, çok önemlidir. Hızlı "UDMA5" ve "UDMA6" modları tabii ki 80 iletken kabloya ihtiyaç duyarlar.
Tellerin sayısı iki katına çıkmasına rağmen, pin bağlayıcılarının sayısı ve pin çıkışı 40 iletken kablo olarak aynı kalır ve bağlayıcıların dış görünüşü aynıdır. İç yapısal olarak, tabii ki, bağlayıcılar birbirinden farklıdır: 40 telli kabloların bağlayıcıları toprak tellerini toprak pinlere birebir eş olarak bağlarken, 80 telli kablolar daha fazla toprak telini daha az sayıda toprak pinine bağlarlar. 80 telli kablolar genellikle 3 farklı renkte bağlayıcılara bölünürler (mavi, gri & siyah ) ama 40 tellilerde bütün bağlayıcılar siyah renktedir. Gri bağlayıcı 28 CSEL pinine bağlanmaz; çünkü eğer bağlanırsa bu durum onu düzenlenmiş sürücü kablo seçimi için köle pozisyonuna sokar.
ATA'nın her zaman belirlenmiş bir kablo uzunluğu vardır, bu uzunluk 46 cm (18 inç) dir. Bu uzunluk büyük bilgisayar kasalarında sürücülerin birbirine bağlanması konusunda sorun yaratabilir ya da birkaç fiziksel sürücüyü tek bilgisayara monte ederken aynı sorunla karşılaşabiliriz. Bu kablo durumu, aynı zamanda dış sürücüler için Paralel ATA kullanımı ihtimalini tamamen yok eder. Daha uzun kablolar pazarda satılabilir durumdayken, anlaşılmıştır ki onlar belirtimlerin düzenledikleri parametrelerin dışındadır. Aynı durum "çevrilmiş" kablolar için de geçerlidir; Standart ATA'lar özel empedans lı ve sığalık karakterli yassı kablolar içerirler. Buradan diğer normal kabloların kullanılmayacağı anlamı çıkmamalıdır, sadece onların daha dikkatli kullanılması gerektiği anlamına gelir.


### Tek kabloda birden fazla aygıt.
Eğer bir kabloya iki tane aygıt bağlanırsa bir tanesi "ana aygıt" (master) diğeri "yan aygıt" (slave) olarak davranır. Bilgisayarın BIOS'ı ve/veya işleyici sistem i uygun aygıtları taradığı zaman ana aygıt ilk görünendir. Eski BIOS'larda (486 era ve daha öncekiler) aygıt bios tarafından ana aygıt için "C", yan aygıt için de "D" olarak isimlendirilirdi.
Eğer kabloda sadece bir aygıt varsa, çoğu durumda o aygıt "ana aygıt" olarak düzenlenir. Ama bazı sürücüler bu düzenleme için "tek aygıt" isimli özel ayara sahiptirler (Western Digital).
Tabii ki, uygun yazılım ve donanımlara bakılırsa, kablodaki tek bir sürücü "yan sürücü" olmasına rağmen, güvenilir biçimde çalışabilmektedir (bu düzenleme genellikle CDROM kanala sahip olduğu zaman görülmektedir).


### Kablo seçimi.
"Kablo seçimi" adlı sürücü ayarı ATA-1 de istemli olarak bulunmaktaydı ve daha sonra ATA-5 ve sonrasında yaygın biçimde kullanılmaya başladı. Bir sürücü "kablo seçimi"’ni otomatik olarak kendini kablodaki duruma göre ana aygıt ya da yan aygıt pozisyonuna ayarlar. Kablo seçimi pin28 tarafından kontrol edilir. Ana adaptör bu pini topraklar; böylece aygıt eğer o pin topraklanmışsa ana aygıt, topraklanmamışsa yan aygıt konumuna ayarlanır.
40 telli kablolarda kablo seçimi ,basitçe iki aygıtın bağlayıcıları arasındaki teli keserek yerine getirilirdi. Bu uygulama yan aygıtı kablonun sonuna ana aygıtı "orta" bağlayıcıya getirirdi. Bu uygulama neticede daha sonraki versiyonlarda standart hale getirilirdi. Eğer kabloda tek aygıt bağlıysa, bu kablonun kullanılmayan "kök" durumunu ortaya çıkarırdı. Fiziksel uygunluk ve elektriksel koşullar açısından bu istenmeyen bir durumdu: yüksek transfer değerlerinde kök sinyal yansıması’na neden olur.
80 telli kablolar UDMA4 ile kullanılmak için çıktıklarında bu detaylar değişti. Ana aygıt kablonun sonuna gider ve böylece eğer kabloda tek aygıt varsa, "stub" durumu ortadan kalkacaktır. Yan aygıt içinse, bağlantı gövdesinden aygıtın ilişkisini ihmal ederek, görevini sağlar. 80 telli kablolar özel bağlayıcılara ihtiyaç duysa bile bu ekstradan küçük bir işlemdi.
Renk kodlu bağlayıcılar, yükleyicinin ve kablo üreticisinin daha kolay tanımlayabilmesi için, standart hale gelmiştir.


### Ana aygıt ve yan aygıt.
Genellikle kullanılmasına rağmen, "ana aygıt" ve "yan aygıt" terimleri ATA'nın eski versiyonlarında görülmemektedir. İki aygıt "aygıt 0"(ana aygıt) ve "aygıt 1" (yan aygıt) olarak adlandırılır. "ana sürücü hangi aygıtın kanalı kullanmasına hakemlik eder" düşüncesi eski ve yaygındır. Aslında Ana işleyici sistem de aynı işi yapar. Bu yüzden ATA protokolünde bir aygıt diğerine kanalı kullanması için talepte bulunmaz. İkisi de Ana İşleyici sistemi için "yan aygıt"tırlar.


### Serilendirilmiş, sınırı aşmış (overlapped) ve kuyruk (queued) operasyonlar.
ATA-3'e kadar olan Paralel ATA'lar, bir komut kanala verildiği zaman diğer bir komut gelene kadar işlemin bitirilmesine ihtiyaç duyarlar. Yani başka bir deyişle, ATA ana arayüzü dikkate alınarak, tek bir komut işleme alınacak biçimde serileştirilmesi işlemine ihtiyaç duyar. Bu işlem genellikle Ana işleyici sistemde bir sürücü tarafından yapılırdı.
Örneğin; bir okuma komutunun bir sürücü tarafından kabloya verildiğini düşünelim. Sürücü okuma işlemini bitirene kadar, başka bir sürücünün talep ettiği komutu işleme almak ya da aynı sürücünün diğer ek komutlarını ilk yolladığı işlem bittikten sonra kabloya almak mümkün değildir (bu işlem "sınırı aşmış" (overlapped) ve "kuyruk" (queued) fonksiyonlar olarak da bilinir).
En mantıklı model, Ana ATA arayüzünün aldığı ilk komutu işlerken işlem bitene kadar diğer komut talebini almayandır.
ATA-4 ve alt versiyonlar "sınırı aşma ayarı" (overlapped feature set) ve "kuyruk ayarı" (queued feature set) denen iki istemli özellik içerirler. Ama bu özellikler Paralel ATA'larda pek desteklenmezler.
Fakat, bazı durumlarda sınırı aşma ve kuyruk işlemleri diğer kaydetme veriyollarında görülür. etiketlendirilmiş komut kuyruklama (tagged command queueing) SCSI nın karakterinde görülür ve bu işlem ATA ya göre SCSI nın büyük bir önemli avantajı olarak görülür. Seri ATA nın ilk çıkan sürümünde doğal komut kuyruklama görülür ama bu özellik sadece birkaç (genellikle pahalı olan) Seri ATA sürücülerinde vardır.


### Karma (mixed) aygıt hızları.
Şöyle bir yanlış kanı vardır: eğer iki aygıt tek kabloya bağlıysa veri transferi yavaş olanın hızına göre yapılır. Bu kanı sadece çok eski çiplerde ya da içe ekle adaptörlerinde (add-in) geçerlidir.
Bütün modern ATA arayüzleri, veri transferini en iyi hızda yapan, "bağımsız zamanlama" yöntemini destekler.
Fakat, Paralel ATA'lardaki sınırı aşma ve Kuyruklama ayarlarının ihmali nedeniyle, önceki paragrafta söylenenler düzeltilmelidir. İşlem veri transferi fazına uygulanır ama bu genellikle yazma ya da okuma işleminin küçük bir bölümüdür. Her aygıt giriş çıkış işlemi için farklı sürelere ihtiyaç duyar ve kabloda tek aygıtın komutları çalıştırılır ve diğer aygıtların performanslarını etkiler.
Örneğin DVD-ROM gibi bir optik aygıt düşünelim ve ana sürücüyle aynı Paralel ATA kablosuna bağlı olsun. Hızlı tipik bir Paralel ATA ana sürücüsü bir okuma ya da yazma işlemini 10 milisaniyeden daha az sürede yaparken, DVD-ROM için bir okuma işlemi ortalama 100 milisaniye sürer.
Bu, eğer ana sürücü serbestse (yani kabloda tekse) saniyede 100 den fazla işlemi yapabileceği anlamına gelir. Ama, kabloda başka aygıtlarda olduğundan dolayı, eğer DVD-ROM'a bir kez okuma komutu geldiği zaman DVD-ROM işlemi bitirene kadar ana sürücü kabloyu kullanamaz. Eğer DVD-ROM ortalama süreç istemleriyle meşgulse ve ana işleyici sistem sürücüsü iki aygıta da komut gönderiyorsa. Bu yüzden ana sürücü DVD-ROM kullanılırken saniyede 10 işlem yapabilirliğiyle limitlendirilirdi (veriler ana sürücüden ya da ana sürücüye transfer olurlarken bile).
Bu durumun etkisi uygulamanın türüne bağlıdır. Örneğin; optik bir sürücüden ana sürücüye veri alırken bu durum görülmez. Ama ana sürücüden aynı zamanda diğer görevler için iyi çıktı vermesi beklenir, bu yüzden optik sürücü ile aynı kabloda olmamalıdır.
Başka bir şey ise, bu vurgulanan durum, sadece yavaş sürücü kabul edildiği zaman etkili olur. Eğer gereksiz ise, bu durumun varlığı diğer aygıtların çalışma hızını etkilemeyecektir.


## ATA standart versiyonları, transfer değerleri ve özellikleri.
Alttaki tablo, ATA versiyonlarının isimlerini, hepsinin desteklediği transfer modlarını ve oranlarını göstermektedir. Her modun transfer oranının kablodaki maksimum teorik transfer oranını verdiğine dikkat edilmelidir (örneğin: UDMA4 için 66.7 MB/s, genelde "Ultra-DMA 66" olarak adlandırılır.).
İlave olarak, ATA hard disk 80 MB/s üzerindeki ölçülen transfer oranına muktedirdir. Ayrıca, teste uğrayan transfer oranı, birçok iş yükü için, realistik olarak üretilen iş varsayımını vermez: Onlar spesifik olarak karşılaşma için dizayn edilen hemen hemen arama süresinden ya da devirsel gecikme süresinden, etkilenmeyen I/O girdileri kullanırlar. Çoğu iş yükü altındaki hard disk performansı 1. ve 2. olarak bu iki faktörden etkilenir; yoldaki transfer oranı ise 3. derecede önem taşır. Bundan dolayı, 66 MB/s üzerindeki transfer oranı; gerçekten sadece hard diskin dahili önbelleğinden bütün I/O okuma taleplerini giderebildiği kadarki performanstan etkilenir; Özellikle göz önünde bulundurulan böyle bilgilerin, genellikle operatör sistemi tarafından önbelleklenmiş olması çok sıradan olmayan bir durumdur.