Commodore sayı 20, sayfa 22

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 22

A500 Block Diagram

3. SİSTEMİN YAPISI

AMIGA mimari açıdan kendine özgü bir yapıya sahip. Bunu fonksiyonel blok diyagramda da görebilirsiniz. Üç adet özel işlem ünitesi, merkezi işlem birimi 68000'i birçok bilgisayarın verimini düşüren işlemleri yapmaktan kurtarıyorlar. Fakat bu diyagram, adres ve veri kanallarının tüm sistem arasında paylaşılmasının yarattığı karmaşık görüntüyü yansıtmıyor, genel bir blok diyagram sadece. AMIGA'nın 25 DMA (direct memory access) kanallarında gerçekleşen, veri taşıma ağırlıklı ve 68000'i meşgul etmeyen işlemler, ayrıca işletim sisteminde yer alan multiprocessing işlemlerini düzenleyen alt programların hepsini daha detaylı olarak ileriki bölümlerde inceleyeceğiz.

4. ÖZEL İŞLEM BİRİMLERİ

AMIGA'da DMA, grafik, ses ve (input/output- giriş/çıkış) kontrolünü yapan üç adet özel işlem birimi, JAY MINER tarafından dizayn edilmiş. Her ne kadar biz bu çip'leri tek tek tüm detaylarıyla inceleyeceksek de kısaca özetlemenin faydası olacağını umuyorum:

• İlk çip “animation custom chip” adında. Görevi ise oldukça çok. Mesela DMA kanallarının kullanılmasında trafik polisliği yapıyor. İçinde COPPER adlı bir co-processor barındırıyor, bu cihazın görevi sistemin içindeki tüm birimleri, ekranı çizen elektron ışınıyla senkronize etmek. Bu çip'i kendine barınak seçmiş biri daha var. Adı BLITTER, görevi grafik ekranında hızlı olarak düz çizgiler çizmek, belli bir renkle bir alanı doldurmak ve dörtgen şekilli bilgi bloklarını işlemek ve taşımak. • İkincisi çipin adı “graphic custom chip”. Görevi görünen ekranı yaratmak. Becerisi ise aynı anda iki bağımsız ekranı ve sekiz sprite'ı göstermek. (Sprite deyimini COMMODORE 64'ten hatırlayacaksınız.) • En son özel işlem biriminin adı “peripheral sound chip”. Dört kanal sesi çıkaran, disk controller'ı içeren, interrupt'ları kontrol eden, seri port'a ve mouse/joystick port'una arabirimlik eden ünite bu; ve bütün bu işlemleri DMA kanallarını kullanarak yapıyor, bu yüzden ana işlem ünitesinin hızı bu işlemler yüzünden düşmüyor.

5. INTERRUPT'LAR VE DMA

AMIGA sisteminde bütün çevresel birimleri interrupt'larla sürülüyor. Yani, merkezi işlem birimi 68000, çipleri “bilgi hazır mı?” diye beklemiyor; tam aksine, diğer çipler bilgi hazır olduğunda interrupt yaratıp 68000'in bilgiyi almasını istiyorlar. Böylece ana işlem ünitesi, çevresel birimlerle sadece gerektiği zaman ilgileniyor. Sonuçta 68000 maksimum kapasitede kullanılıyor. Tüm çiplerin yarattığı 15 değişik kaynaklı interrupt sinyalleri, çevresel birim/ses çipinde toplanıyor ve 68000'in altı interrupt seviyesine çevriliyor ve bu sinyaller 68000'e gönderiliyor. 68000'in bir de yedinci interrupt seviyesi var ki buna NMI'de (non-maskable interrupt — önlenemez interrupt) deniyor. Bu seviye gelecekteki kullanımlar için rezerve edilmiş durumda. Şu anki sistemde kullanılmıyor. 68000 ana işlem ünitesi adres ve veri kanalını, kendinden başka 25 DMA kanalıyla da paylaşıyor. AMIGA'nın DMA sistemi iki nedenden dolayı çok hızlı çalışıyor. Birincisi Her aletin kendi DMA kanalı var, böylece DMA kanallarını ortak kullanmadan doğabilecek gecikmeler önleniyor. İkincisi: DMA işlemleri 68000'in işlemleri arasına öyle düzgün serpiştirilmiş durumda ki; 68000 neredeyse DMA olayını hissetmiyor. (Çok yoğun grafik ve ses işlemleri dışında.)

DMA özel işlem birimleri ve RAM hafızası arasında gerçekleşirse, 19 bitlik register-address bus sayesinde (blok şemaya bakın) bilgi transferi iki kat hızlı oluyor. Hafızanın adresini adres kanalına ve register'in adresini register adres kanalına koyduğumuz anda DMA sistemi hafıza adresinin doğrudan register'e geçmesini sağlıyor. Bu işlem, DMA yerine 68000'le yapılsaydı; yarı hızda yürürdü. Çünkü 68000 önce veriyi kendine okuyup, sonra register'e yazacaktı.

6. LIBRARY'LER VE DEVICE'LAR Sistem yazılımı, kullanıcının Kickstart ROM'undaki fonksiyonlara ulaşabilmesi için library'ler içeriyor. Bunlar belli bir düzenle, işletim sistemindeki altprogramların maksimum esneklikle kullanılabilmesini sağlayan bir metod. Library'ler kalıcı veya geçici olabilirler ve belleğin herhangi bir adresinde kullanılabilirler (RAM bellekteyseler tabii ki). Gerek altprogramı, gerekse verilerini 68000'le indirect reference with offset (belli bir ofsete, başlangıca göre dolaylı referans) yöntemiyle çağırabiliriz. (Bu yöntemin ne olduğunu öğrenmek için 68000'in Assembler'ını öğrenmek zahmetine katlanamayacaklar için; bunun maksimum esnekliği sağladığını belirtelim.) Böylece herhangi bir compiler'da (veya assembler'da) bir library'yi asıl adresini bilmeden kullanmak mümkün. (Aslında sistemde bulunan tüm kod'a, alette yalnızca tek sabit adresi bilip referans etmek olası, ve bu da isteyen her programa sağlanabilecek bir bilgi.) Device, library'den türemiş bir kavram. Görevi ise I/O (giriş/çıkış) aletlerine üniform ve esnek bir şekilde erişmeyi sağlıyor. Dikkat ettiyseniz, tüm sistemin tasarımında, esnek kullanım olayı ön planda tutulmuş. Gerçek bir “multitasking” işletim sistemindeki tüm işlerin birbirine karışmadan yürümesi için vazgeçilmez bir ölçü bu.

Klavyeyle gezinmek için ← ve → tuşları.