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ış veriyolu 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 birikeç (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 birikeç yazmacı 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. Veriyolu 16 bittir. Harici iletişim için 8 bitlik giriş/çıkış veriyolları ve ilgili kesme bayrakları vardır.

Bir adet 16 bitlik birikeç 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. bit14-12. bitler11-0. bitlerHatırlatıcı isimAçıklama00(Doğrudan adres)ANDDoğrudan belleği birikeç ile VE operasyonuna tabi tut01(Doğrudan adres)ADDDoğrudan belleği birikeç ile topla (Elde bitini etkiler)02(Doğrudan adres)LDADoğrudan belleği birikece yükle03(Doğrudan adres)STABirikeci doğrudan bellekte depola04(Doğrudan adres)BUNDoğrudan belleğe koşulsuz dallandır05(Doğrudan adres)BSAMevcut program sayacını doğrudan bellekte depola ve bir sonraki adrese dallandır06(Doğrudan adres)ISZDoğrudan belleteki değeri bir artır ve toplam sıfır ise sonraki buyruğu atla10-6(Dolaylı adres)Yukarıdaki buyrukların dolaylı adreslenmiş hâlleri07800CLABirikeci temizle07400CLEElde bitini temizle07200CMABirikeci tümle07100CMEElde bitini tümle07080CIRBirikeci sağa çevrimsel kaydır (elde biti üzerinden)07040CILBirikeci sola çevrimsel kaydır (elde biti üzerinden)07020INCBirikeci bir artır (elde bitini etkilemez)07010SPABirikeç pozitif ise sonraki buyruğu atla07008SNABirikeç negatif ise sonraki buyruğu atla07004SZABirikeç sıfı ise sonraki buyruğu atla07002SZEElde biti sıfır ise sonraki buyruğu atla07001HLTDurdurma biti mandalını temizleyerek bilgisayarı durdur17800INPKarakter veriyoluundan birikece girdi17400OUTBirikeçten karakter veriyoluuna çıktı17200SKIGirdi bayrağı kaldırılmış ise sonraki buyruğu atla17100SKOÇıktı bayrağı kaldırılmış ise sonraki buyruğu atla17080IONKesintileri etkinleştir17040IOFKesintileri 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