Mano makinesi

Mano makinesi teorik olarak M. Morris Mano tarafından tanımlanan bir bilgisayardır. Bir merkezi işlem birimi, rasgele erişimli bellek ve bir giriş- çıkış veri yolu içerir. Sınırlı buyruk kümesi ve küçük adres alanı, mikrodenetleyici olarak kullanılmasını sınırlar. Ancak Verilog veya VHDL gibi bir HDL dili kullanılarak 32 bitlik bir akümülatör yazmacına ve 28 bitlik adreslemeye sahip olacak ve yeni talimatlar için yer açacak şekilde kolayca genişletilebilir. == Özellikler == Mano makinesi, aynı adres alanı, yalnızca bir akümülatör kaydı ve benzer buyruklar gibi birçok açıdan PDP-8'e benzer. Mano makinesi, 12 bitlik bir adres yolu gerektiren 4096x16 paylaşılan bir veri/program belleği bölümüne sahiptir. Veri yolu 16 bittir. Harici iletişim için 8 bitlik giriş/çıkış veri yolları ve ilgili kesme bayrakları vardır. Bir adet 16 bitlik akümülatör yazmacı ve ek taşıma ve sistem durdurma için tek bitlik yazmaçlar (mandallar) vardır. == Buyruk kümesi == 3 kategoriye ayrılan 25 buyruk vardır: doğrudan/dolaylı bellek referans işlemleri, yazmaç referans işlemleri ve giriş/çıkış/kesme işlemleri. Her buyruk 16 bit uzunluğundadır [4 nybble veya 1 word]. Bu, bellek referanslama talimatlarının 4 bit işlem kodu verisi ve adrese ayrılmış 12 bit içerdiği anlamına gelir. 15\. bit 14-12. bitler 11-0. bitler Hatırlatıcı isim Açıklama 0 0 (Doğrudan adres) AND Doğrudan belleği akümülatör ile VE operasyonuna tabi tut 0 1 (Doğrudan adres) ADD Doğrudan belleği akümülatör ile topla (Elde bitini etkiler) 0 2 (Doğrudan adres) LDA Doğrudan belleği akümülatöre yükle 0 3 (Doğrudan adres) STA Akümülatörü doğrudan bellekte depola 0 4 (Doğrudan adres) BUN Doğrudan belleğe koşulsuz dallandır 0 5 (Doğrudan adres) BSA Mevcut program sayacını doğrudan bellekte depola ve bir sonraki adrese dallandır 0 6 (Doğrudan adres) ISZ Doğrudan belleteki değeri bir artır ve toplam sıfır ise sonraki buyruğu atla 1 0-6 (Dolaylı adres) Yukarıdaki buyrukların dolaylı adreslenmiş hâlleri 0 7 800 CLA Akümülatörü temizle 0 7 400 CLE Elde bitini temizle 0 7 200 CMA Akümülatörü tümle 0 7 100 CME Elde bitini tümle 0 7 080 CIR Akümülatörü sağa çevrimsel kaydır (elde biti üzerinden) 0 7 040 CIL Akümülatörü sola çevrimsel kaydır (elde biti üzerinden) 0 7 020 INC Akümülatörü bir artır (elde bitini etkilemez) 0 7 010 SPA Akümülatör pozitif ise sonraki buyruğu atla 0 7 008 SNA Akümülatör negatif ise sonraki buyruğu atla 0 7 004 SZA Akümülatör sıfı ise sonraki buyruğu atla 0 7 002 SZE Elde biti sıfır ise sonraki buyruğu atla 0 7 001 HLT Durdurma biti mandalını temizleyerek bilgisayarı durdur 1 7 800 INP Karakter veri yolundan akümülatöre girdi 1 7 400 OUT Akümülatörden karakter veri yoluna çıktı 1 7 200 SKI Girdi bayrağı kaldırılmış ise sonraki buyruğu atla 1 7 100 SKO Çıktı bayrağı kaldırılmış ise sonraki buyruğu atla 1 7 080 ION Kesintileri etkinleştir 1 7 040 IOF Kesintileri devre dışı bırak == Bilgisayar optimizasyon teorisine uygulamalar == Makine spesifikasyonları, işlemcinin mikro işlemlerini belirleyen bir sonlu durum makinesi içerir. Durum makinesinin kanonik uygulaması, indirgeme için mükemmel bir adaydır ve aynı zamanda boru hattı işlemci olarak yeniden uygulanabilir. == Dış bağlantılar == * Mark Roth'un Mano makine assembler'ı/simülatörü * MANOSIM ve MANOASM ikili dosyaları ve kılavuz sayfası * N. Narasimhamurthi tarafından Mano Machine'in bir VHDL uygulaması * Mano Machine'in Greg Toombs tarafından bir Verilog uygulaması * Tarayıcıda çalışan bir Mano Machine simülatörü (Java Applet) == Kaynakça ==