BELLEK (Memory) Ardışıl devreler bellek elemanının varlığı üzerine kuruludur Bir flip-flop sadece bir bitlik bir bilgi tutabilir Bir saklayıcı (register) bir sözcük (word) tutabilir (genellikle 32-64 bit) Bellek ise daha büyük miktarda veri tutabilme imkanı sağlar RAM - Random Access Memory Statik RAM (SRAM) Dinamik RAM (DRAM) ROM - Read Only Memory PLA - Programmable Logic Arrays 1
RAM (Random-Access Memory) RAM (Random-access memory) bilgisayarda geçici olarak büyük miktarda veri tutmaya yarar Bir RAM birden fazla değer tutabilir Bir adres hangi bellek değeri ile ilgilendiğimizi gösterir Her bir değer çok bitli sözcük (örneğin, 32 bit) olabilir Bellek özellikleri şu şekilde özetlenebilir: Bir RAM: -Farklı adreslerde olmak üzere birden fazla sözcük tutabilmelidir - Belirli bir adrese kaydedilmiş olan sözcük'ü okuyabilmelidir - Belirli bir adrese kaydedilmiş olan sözcük'ü değiştirebilmelidir 2
RAM Bilgisayardaki belleği bir veri dizisi gibi düşünebiliriz Adresler de dizi indeksi görevini görür Her bir adres bir sözcüklük veriye karşılık gelir Adres 00000000 00000001 00000002 FFFFFFFD FFFFFFFE FFFFFFFF Veri sözcük 3
RAM in Blok yapısı k n 2 k x n bellek ADRS DATA CS WR OUT n CS WR Bellek işlemi 0 x Hiç birşey 1 0 Seçilen sözcüğü oku 1 1 Seçilen sözcüğü yaz Bu blok diagram RAM in ana giriş-çıkışlarını göstermektedir: Chip Select CS RAM i enable veya disable yapar ADRS okuma veya yazma yapılacak adresi belirler WR okuma veya yazma yapılacağını belirler Bellekten okuma yapılacaksa WR=0olmalı Bu durumda ADRS adresinde bulunan n-bitlik veri OUT çıkışlarında görünür Belleğe yazma yapılacaksa, WR = 1 olmalı Bu durumda ADRS adresine yazılacak olan n-bitlik veri DATA girişlerine verilir Bu arabirim RAM leri birbirine bağlamak için de işe yarar 4
Bellek boyutu Bu 2 k x n lik bellek olarak tanımlanır Burada k adres hattı (girişi) vardır Bu da 2 k tane adres tanımlar Her bir adres bir n-bitlik sözcük içerir 2 k x n memory k n ADRS DATA CS WR OUT n Örneğin, bir 2 24 x 16 RAM her biri 16 bit uzunlukta 2 24 = 16M sözcük içerir RAM de 24 adres hattına (girişine) ihtiyaç vardır Toplam depolama kapasitesi (storage capacity) : 2 24 x 16 = 2 28 bittir 5
Büyüklük Bellek büyüklüğü genellikle byte cinsinden ifade edilir (1 byte = 8 bit) Bir önceki nottaki 2 28 -bitlik bellek şuna karşılık gelir: 2 28 bit / 8 bit per byte = 2 25 byte Aşağıdaki kısaltmalar uyarınca bu 32 megabyte a eşittir Önek 2 Tabanında 10 Tabanında K Kilo 2 10 = 1,024 10 3 = 1,000 M Mega 2 20 = 1,048,576 10 6 = 1,000,000 G Giga 2 30 = 1,073,741,824 10 9 = 1,000,000,000 6
Tipik belek boyutları Tipik bellek kapasiteleri: PC ler genellikle 512MB-2GB RAM taşır PDA lar 16-64MB lık belleğe sahiptir Dijital fotoğraf makinaları ve MP3 çalarlar 32MB-8GB veya biraz daha fazla belleğe sahiptir Pek çok işletim sistemi virtual memory ye sahiptir Bu da belleği olduğundan daha fazla görünür kılar Pek çok sistem 32-bit adreslemeye sahiptir Bu 2 32 yani yaklaşık olarak dört milyar farklı adres anlamına gelmektedir Bir byte lık tanım uyarınca, 4GB lık bellek demektir! İşletim sistemi hard disk i gerçek bellek olarak kullanır Adres 00000000 00000001 00000002 FFFFFFFD FFFFFFFE FFFFFFFF Veri 7
RAM den okuma işlemi RAM den okuma işlemi için: CS = 1 yaparak işlemciyi enable yap WR = 0 yaparak okuma işlemini seç ADRS girişine istenilen adresi gönder Bu adresin içindeki veri bir süre sonra OUT da görünür Not: DATA girişleri okuma işlemi için kullanılmaz 2 k x n memory k n ADRS DATA CS WR OUT n 8
RAM e yazma işlemi RAM e yazma işlemi için: CS = 1 yaparak işlemciyi enable yap WR = 1 yaparak yazma işlemini seç ADRS girişine istenilen adresi gönder Bu adrese kaydedilecek olan veriyi DATA girişlerine gönder Not: OUT çıkışları yazma işlemi için kullanılmaz 2 k x n memory k n ADRS DATA CS WR OUT n 9
ROM (Read-Only Memory) 2 k x n ROM k ADRS CS OUT n Bir ROM (read-only memory) içeriği silinemeyen özel bir bellektir RAM lerde bulunan WR ve DATA girişlerine ROM da ihtiyaç yoktur Veri ROM a özel donanım yöntemleri ile yüklenir ROM lar tekrar değişmeyecek olan veriler için oldukça kullanışlıdır Aritmetik devreler logaritmik ve bölme işlemlerini hızlandırmak için tabloları kullanır Pekçok bilgisayar üzerinde değişiklik yapılmayacak olan programları ROM a yükler Örneğin, sistem BIOS u PDA ler, oyun makineleri, cep telefonları, bisküvi ve kahve makineleri vb ve bazı elektronik aletler değiştirilemeyen programlara sahiptirler 10
Bellekler ve Fonksiyonlar ROM lar aslında ardışıl değil kombinezonsal devrelerdir! Bir ROM içine yeni bir veri yazılamaz, dolayısıyla bir adrese ne yüklendiyse hep o veriyi taşır Bir ROM u girişten adresi alan ve çıkışa bazı veriler üreten bir kombinezonsal devre olarak düşünebiliriz Bir ROM tablosu temel olarak bir doğruluk tablosudur Tablo her bir ROM adresine yüklenen verileri gösterir Adres A 2 A 1 A 0 Veri V 2 V 1 V 0 000 000 001 100 010 110 011 100 100 101 101 000 110 011 111 011 11
Kod çözücüler Kod çözücüler yardımıyla doğruluk tablosunu kolayca devreye dönüştürebiliriz X Y Z C S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Örneğin, toplam ve elde çıkışlarına ait sağ taraftaki doğruluk tablosundan sol taraftaki devreyi tasarlayabiliriz 12
ROM ların oluşturulması ROM lar fonksiyonların kod çözücü ile gerçekleştirilmesi temeline dayalıdır Boş bir ROM sadece bir kod çözücü ve birkaç tane VEYA (OR) kapısından oluşur Kod çözücü ile VEYA kapıları arasındaki bağlantılar programlanabilir dir Böylece farklı fonksiyonlar gerçekleştirilebilir Bir ROM u programlamak için kod çözücü ile VEYA kapıları arasındaki gerekli bağlantıları yapmalıyız 13
ROM örneği V 2 V 1 V 0 olmak üzere üç farklı fonksiyonun bir 8 x 3ROMile gerçekleştirilmesi: Mavi renkli çarpı işaretleri (X) kod çözücü ile VEYA kapıları arasındaki bağlantıları gösterir Onların görülmediği yerlerde bağlantı yoktur A 2 A 1 A 0 V 2 = Σm(1,2,3,4) V 1 = Σm(2,6,7) V 0 = Σm(4,6,7) 14
Aynı 8 x 3 ROM un alternatif gösterim şekli: (Diyagramı daha derli toplu yapmak için kısaltılmış VEYA kapıları ile gösterilmiştir) A 2 A 1 A 0 V 2 = Σm(1,2,3,4) V 1 = Σm(2,6,7) V 0 = Σm(4,6,7) V 2 V 1 V 0 15
Neden bu bir bellek? Bu kombinezonsal devre bir ROM olarak düşünülebilir: Her biri üç bitten oluşan sekiz sözcüklük veriyi tutabilir Kod çözücü girişleri her biri sekiz sözcükten birine karşılık gelen adres leri oluşturur Böylece her bir giriş kombinasyonu bir adrese karşılık gelir Adres Veri A 2 A 1 A 0 A 2 A 1 A 0 V 2 V 1 V 0 000 000 001 100 010 110 011 100 100 101 101 000 110 011 111 011 V 2 V 1 V 0 16
ROM vs RAM ROM ile RAM arasında önemli farklar vardır: ROM lar uçucu-değildir elektrik enerjisi kesilse bile kaybolmazlar Öte yandan, RAM lerin içeriği güç kaynağı kesilince kaybolur ROM ların yazma işlemi için özel (ve yavaş) bir tekniğe ihtiyaç vardır Bu sebepten sadece-okuma elemanlarıdır Bazı yeni tipli ROM lar kolayca yazmaya izin vermektedir (Ancak yine de yazma işlemi RAM inkilerle karşılaştırılamaz) MP3 çalarlar, dijital fotoğraf makineleri ve bazı oyunlar uçucu olmayan kayıt için CompactFlash, Secure Digital, veya MemoryStick kartlarını kullanmaktadır Bazı aletler flash ROM içine yüklenmiş olan programı upgrade etmeye izin vermektedir 17
PLA (Programmable Logic Arrays) - Programlanabilir Lojik Diziler - Bir ROM da kod çözücü kullanıldığından ve bu kod çözücüde olası tüm minterimler yer aldığından fazla verimli değildir Devre basitleştirmesi söz konusu değildir N-girişli bir fonksiyonu gerçekleştirmek için bir ROM kullanıldığında şunlar gereklidir: Bir nx2 n kod çözücü ile n tane tümleme kapısı ve 2 n tane n-girişli VE (AND) kapısı Bir VEYA (OR) kapısı (2 n girişe kadar çıkabilen giriş sayısına sahip) Bir PLA (programmable logic array) ROM un kod çözücü parçasını programlanabilir kılar Böylece tüm minterimler yerine basitleştirilmiş çarpımları gerçekleştirebiliriz 18
Boş bir 3 x 4 x 3 PLA Bu bir 3 x 4 x 3 PLA (3 giriş, en fazla 4 çarpma terimi ve 3 çıkış) programlanmaya hazırdır Diyagramın sol kısmı ROM da kullanılan kod çözücünün yerini almaktadır Bağlantılar VE dizi sinde gerçekleşir ROM daki sekiz tane minterim yerine dört tane çarpım ifadesi üretilir Bu çarpımlara ait ifadeler VEYA dizi sinde toplanır Girişler VE dizisi VEYA dizisi Çıkışlar 19
Sıradan Karnaugh-diyagramı basitleştirmesi Normal Karnaugh diyagramı yaklaşımında her bir fonksiyona ait çarpımlar terimi basitleştirilir Eğer o yaklaşım örneğimize uygulanırsa üç fonksiyon için, altı farklı çarpım terimi bulunur V 2 V 1 V 0 Y 0 1 1 1 X 1 0 0 0 Z Y 0 0 0 1 X 0 0 1 1 Z Y 0 0 0 0 X 1 0 1 1 Z V 2 = Σm(1,2,3,4) V 1 = Σm(2,6,7) V 0 = Σm(4,6,7) 20
PLA basitleştirmesi PLA için ise, çarpımlara ait terimler için basitleştirme yaparken tüm fonksiyonları bir arada düşünmeliyiz V 2, V 1 ve V 0 sadece dört çarpım ifadesinden elde edilir: V 2 = xy z + x z + x yz V 1 = x yz + xy V 0 = xy z + xy Y 0 1 1 1 X 1 0 0 0 Z Y 0 0 0 1 X 0 0 1 1 Z Y 0 0 0 0 X 1 0 1 1 Z V 2 = Σm(1,2,3,4) V 1 = Σm(2,6,7) V 0 = Σm(4,6,7) 21
PLA örneği Böylece bu üç fonksiyonu 3 x 4 x 3 PLA kullanarak gerçekleştirebiliriz: xy z xy x z x yz V 2 = Σm(1,2,3,4) = xy z + x z + x yz V 1 = Σm(2,6,7) = x yz + xy V 0 = Σm(4,6,7) = xy z + xy V 2 V 1 V 0 22
PLA değerlendirmesi Bir k x m x n PLA k girişli n taneye kadar fonksiyonu gerçekleştirebilir Her biri m çarpım teriminden fazla değildir ROM ların tersine, PLA lar hangi çarpım terimlerinin gerçekleştirileceğini seçme şansı verir Bu da kapıların sayısının ve kapıların giriş sayılarının önemli oranda azalmasını sağlar Ancak, bir PLA bir ROM dan daha az yaygındır Bunun da sebebi bir PLA daki sınırlı sayıdaki VE kapıları ile tüm fonksiyonlar gerçekleştirilemeyebilir Bellek terimleri açısından, bir k x m x n PLA k tane adres girişine sahiptir Ayrıca, 2 k adresin her biri bir n-bitlik veriye karşılık gelmektedir Ancak tekrarlamak gerekirse, tüm olası veriler yüklenemez 23
Fonksiyonlar ve ROM/PLA ROM lar ve PLA lar fonksiyonları gerçekleştirebilmek için iki farklı yöntem sağlıyorlar Fonksiyonlara ait ifadeler/devreler ile doğruluk tablosu arasındaki fark: Bir devre çıkışı bulabilmek için girişler üzerinden bazı hesaplamalar yapmayı gerektirir Eğer aynı girişler tekrar gelirse aynı hesaplamaları tekrarlamak gerekir Bir doğruluk tablosu girişlere ait olası tüm kombinasyonları ve onlara karşılık gelen çıkışları listeler Hesaplama yapmak yerine fonksiyona ait bir look up table sunar Bir fonksiyonu ROM veya PLA ile gerçekleştirmenin arkasındaki mantık: fonksiyonun doğruluk tablosunu yüklüyor olmamız Yani hiçbir hesaplama yapmak durumunda değiliz 24
Bellekler - Özet İki tip random access memory bulunmaktadır Statik RAM pahalıdır; Ancak daha hızlı bir bellektir Statik RAM genellikle cache bellekler için kullanılır Dinamik RAM daha ucuzdur ve daha az yer gerektirir Bu özellikler büyük kapasiteli bellek yapımı için idealdir Ancak, ulaşım zamanı (access times) oldukça yavaştır ROM lar ve PLA lar programlanabilir devrelerdir ve fonksiyonların gerçekleştirilmesinde kullanılır ROM ların programlanması kolaydır; Ancak daha çok kapı içerir PLA lar daha az donanıma sahiptir; Ancak bir fonksiyonun setini basitleştirmek için uğraşmak gerekir Ayrıca, VE kapısının sayısı ifade edilebilen fonksiyon sayısını sınırlar 25