İçeriğe geç

Paylaşabildiklerim Yazılar

PIO Mode, DMA, UDMA, LBA, SMART

PIO(Programmed I/O) MODE

İşlemci ve disk sürücüsünün arasındaki veri transfer metodudur. DMA yönetimi gelişitirilmeden önce, kullanılan tek yöntemdi. PIO arabirimi farklı transfer oranlarını karşılayan değişik modlara gruplandırılmıştır. Bunlara PIO Mode denir.

PIO’nun 3 düşük hızlı modu ATA standart dökümanında tanımlanmıştır. ATA-2 standardı ile 2 mod daha eklenmiştir.

Mode Maximum transfer rate (MB/s) Minimum cycle time Standard where spec is defined
Mode 0 3.3 600 ns ATA-1
Mode 1 5.2 383 ns ATA-1
Mode 2 8.3 240 ns ATA-1
Mode 3 11.1 180 ns ATA-2
Mode 4 16.7 120 ns ATA-2
Mode 5 20 100 ns CompactFlash 2.0
Mode 6 25 80 ns CompactFlash 2.0

PIO’da veri CPU üzerinden işlendiği için sabit diskin okuma yazma işlemlerinde CPU’nun da işlem yapması performas düşüşüne neden olmaktadır. Bu yüzden yeni sistemlerde DMA veya Ultra DMA kullanılmaktadır. PIO modları ayrı sürücüler gerektirmez. BIOS tarafından desteklenir. PIO tüm sistemler tarafından geriye uyumluluk için desteklenmektedir.

DMA (Direct Memory Access)

Doğrudan belleğe erişim (Direct memory access; DMA), modern bilgisayarlarda bulunan, merkezi işlem biriminden bağımsız olarak okuma ve/veya yazmak için, belirli donanım alt sistemleri içinde sistem belleğine erişim sağlayan bir özelliktir.

DMA, disk sürücü kontrol birimleri, grafik kartları, ağ kartları ve ses kartları dahil bir çok donanım sistemi tarafından kullanılmaktadır. DMA kanalı olan bilgisayarlar, DMA kanalı olmayan bilgisayarlara nazaran, cihazlardan ya da cihazlara çok daha hızlı bir şekilde veri transferi yapabilmektedir. Bu, gerçek zamanlı uygulamalar için çok yararlıdır.

DMA, bütün modern bilgisayarların önemli bir özelliğidir, zira cihazların, CPU’yu ağır ek yüklere maruz bırakmadan veri transferi yapmalarına olanak sağlamaktadır. Aksi takdirde, CPU, her veri parçasını kaynaktan hedefe kopyalamak zorunda kalırdı. Bu tipik olarak, normal bellek bloklarının kopyalanmasından çok daha yavaştır, çünkü bir çevre veri yolu aracılığıyla I/O cihazlarına erişim,genel olarak normal sistem RAM’ından daha yavaştır. Bu zaman içinde CPU, CPU veri yolunu ilgilendiren diğer görevleri gerçekleştiremez, ama veri yolu erişimini gerektirmeyen diğer işleri yapmaya devam edebilir.

Yorum Bırak

ATA (Advanced Technology Attachment)

80’lerin ortalarında Imprimis, Wren serisi 5.25″ sabit disklerde Seagate firmasının ST506 sürücüsünden esinlenerek bir arabirim standardı kullandı. 3.5″ sabit diskler çıktığında da bu standarttan esinlenildi. Aynı zamanda IBM PC/AT model bilgisayarlarında Western Digital’in geliştirdiği sabit disk kontol chiplerini kullandı. İki yönde gelişen bu standart ilerde sorunlar çıkartmaya başladı. (Bir üreticinin sabit diski bir başka üreticinin diski ile birlikte çalışmadı. İkinci diskin slave olarak tanıtılmasında sorunlar yaşandı.)

Bu sorunları çözmek amacıyla bir grup üretici CAM (Common Access Method – Yaygın Erişim Metodu) Komitesini oluşturmak için bir araya geldi; bunlar da esas olarak SCSI tarifini standart hale getirmek üzerine odaklanmışlardı. Bu organizasyon en sonunda ilk ATA standardının Imprimis arabirimini temel alması üzerinde karara vardı. Ancak ANSI’nin (American National Standards Institute – Amerikan Ulusal Standartlar Enstitüsü) bunu bir standart olarak kabul etmesi (X3.221) ne yazık ki yaşanan bin bir türlü değişiklik ve uyarlamadan sonra ancak 1994’te gerçekleşti.

IDE/ATA teknolojisinin devrimi / gelişiminin gerekliliği her bir PC’de sabit disk kullanımının yaygınlaşmaya başlayamasından sonra ortaya çıkmıştır, ayrıca disk için kullanılan kontrol kartının anakart üzerindeki bir slotu boşa harcadığı değerlendirildiğinde chipset üreticileri bunun çözümünü aramaya başladılar. Üreticiler sabit disk kontrol kartını kendi chipsetleri ile bütünleşik hale getirip, sabit disklerin kontrol kartları yerine direk anakarta bağladılar.

1. ATA–1

ANSI tarafından (American National Standards Institute – Amerikan Ulusal Standartlar Enstitüsü) AT Attachment Interface for Disk Drives(X3.221) başlığıyla 1994 yılında yayınlanan standarttır

Bu standart aşağıdaki özelliklere sahiptir

  1. 2 adet sabit sürücü: Bir kanal üzerinden 2 sabit sürücünün master ve slave olarak ayarlanarak 2 adet sabit sürücü desteklenir. En yüksek 528MB disk destekler
  2. PIO Mode: 0, 1, 2 PIO Mode larını desteklenir
  3. DMA Mode: 0, 1, 2 DMA ve 0 Multiword DMA destekler

2. ATA–2

Orijinal ATA standardı kendine ayrılan IDE/ATA sabit sürücülerden çok daha erken tanımlanmıştı. Bununla birlikte, yeni sabit sürücülerin performansını, büyüyen boyutlarını desteklemiyordu. Bu diskler daha hızlı aktarma oranı ve gelişmiş özellikler istiyordu.

Yorumlar kapalı

IDE (INTEGRATED / INTELLIGENT DRIVE ELECTRONICS)

IDE’den önce sabit diskin işlemci ile haberleşmesini sağlayan kontrol kart(controller) üzerine fiziksel olarak birleştirilmesi sonucu ortaya çıkan HardCard kullanılmaktaydı. HardCard’lar Quantum firmasının bir bölümü olan Plus Development tarafından tasarlandı ve satıldı.

HardCard

HardCard mevcut veriyollarını(ISA, PCI, vb.) kullanarak bilgisayara bağlantı kurmaktaydı. Bu kullanım, mevcut kartın tek bir vida ile kasaya monte edilmesi ve okuma-yazma esnasında diskin hareketinden dolayı sarsıntıya yol açmaktaydı, kullanılan diskin kalınlığından dolayı diğer veriyolu slotlarını kapatarak kullanılmasını enegellemekteydi, soğutma problemi yaşanıyordu.

Disk üreticileri mevcut kullanımın çıkarttığı sorunları çözmek için sabit diski kontrol kartından ayırıp kasa içerisinde bir bölüme koyup sistem veriyolu ile iletişimi kablo ile ya direk anakart üzerinde bir slota ya da bir veriyolu slotunu kullanacak bir kart ile sağlanacaktı. Çoğu kullanımda ISA veriyoluna takılan bir kontrol kartı kullanılmıştı. 16-bitlik ISA veriyolunun IBM PC/AT modellerinde kullanılmasından dolayı AT bus olarak adlandırıldı. Bu yüzden mevcut yapı PC/AT Attachment olarak adlandırıldı. Daha sonra ticari marka olarak sorun çıkartmaması için ATA olarak isimlendirildi.

Yorum Bırak

The Singleton Pattern

Neredeyse her nesneye dayalı(OOP) programda genellikle bir veya birden fazla kaynak bir kere oluşturulur ve tüm uygulamanın sürekliliği için paylaştırılır. Bu tasarımda amaç, hiçbir kopyası olmayan bir kaynağı oluşturmak ve bu kaynağa uygulamanın herhangi bir parçasında erişebilmektir.

Bu tasarıma en iyi örnek veritabanı bağlantısıdır. Her veritabanı işlemi için bir kaynağı oluşturmak çok verimsiz bir işlemdir. Bunu yerine kaynak uygulamanın başlangıcında oluşturulur, tüm işlemler bu kaynak kullanılarak gerçekleştirilir ve uygulamanın sonunda yok edilir. Veritabanı bağlantısı gibi açılan dosya, kuyruk(queue) veya yığın(stack) işlemleri bu tasarıma örnek olarak verilebilir.

Peki biz belirli bir sınıfın örneğinin(instance) tek ve kolayca erişilebilir olduğundan nasıl emin olacağız? Bu problem evrensel(global) bir değişken kullanılarak çözülebilir fakat bu sefer bu değişken uygulamanın herhangi bir bölümünde değiştirilebilir ve bu istenmeyen bir durumdur.(http://c2.com/cgi/wiki?GlobalVariablesAreBad) Belirli bir sınıfın her seferinde tek bir örneğine erişmek istiyorsak Singleton tasarım kullanmamız gerekir. Bu tasarımda sınıfımızın tek bir örneğine erişmek için sabit bir getInstance yöntemi(method) kullanırız.

Yorum Bırak