Genel Cihaz CP1600 - General Instrument CP1600

CP1600 ailesinin ezici bir çoğunlukla en önde gelen uygulaması olan Intellivision video oyun konsolu

CP1600 bir olan 16 bit mikroişlemci arasındaki bir ortaklık içinde oluşturulan Genel Enstrüman ve Honeywell 1975 yılında Honeywell bir dizi CP1600 kullanılan işlem bilgisayarlarında ve ilgili sistemlerin, ancak en yaygın kullanımı olan CP1610 sürüm Intellivision video oyun konsolu . General Instrument'ın yalnızca çok büyük siparişleri olan müşterileri arama ve daha küçük müşterileri görmezden gelme pazarlama felsefesi nedeniyle sistem, başka pek az kullanım gördü. Ayrıca , mikroişlemci tasarımlarının ilk günlerinde çoğu potansiyel müşteri için bir gereklilik olan ikinci bir kaynak düzenlemesi izlemediler.

Açıklama

Fiziksel uygulama

CP1600 Pin-çıkışı

CP1600, nMOS'ta uygulandı ve +12, +5, -3 V güç kaynakları gerektiriyordu; çoğu dahili mantık TTL'de (5 V) uygulandı . Her mikro durum veya işlemci döngüsü, birbiriyle örtüşmeyen iki saat tarafından oluşturulan dört dahili zaman dilimi kullanır. 3.3 MHz'lik iki fazlı bir saat, 600 nanosaniyelik bir mikro döngü üretir. 5 MHz'lik iki fazlı bir saat, 400 nanosaniyelik bir mikro döngü üretir. Saat sinyallerinin güç gereksinimleri nedeniyle, bu mikroişlemci tasarımı çağında yaygın olduğu gibi, bunların harici devrelerle üretilmesi gerekiyordu.

16-bit işlemciyi 40-pin ikili hat içi paket (DIP) çip tasarımına sığdırmak için CP1600, veri ve adres pinlerini çokladı. Bu, hem adres seçimi hem de veri okuma ve yazma için 16 pinlik bir setin kullanılmasına izin verdi, ancak bunu yapmak için iki veri yolu döngüsü gerekliydi. İşlemci pinleri veri moduna geçirirken adresi kilitlemek için bellek veriyolunda arabellekler gerektiğinden, genel makine düzenini de karmaşıklaştırdı. Sistem arabirimi de aynı şekilde karmaşıktı ve bellek veriyolunun hangi durumda olduğunu anlamak için kodunun çözülmesi gereken üç pin BDIR, BC1ve , gerektiriyordu BC2.

CP1600'ün nispeten nadir bir özelliği, "dış dal" konseptiydi. Bu, talimat işlem kodunun alt dört bitini tutan EBCA0aracılığıyla çip üzerinde dört pim olarak uygulandı . Bu talimat gerçekleştirildiğinde, pimler etkinleştirilir ve on altıya kadar harici sistemden hangisinin örneklenip pime geri döndürüleceğini belirtmek için kullanılır . Bu pinin mantık değeri, yüksek mi yoksa düşük mü, daha sonra dalın alınması gerekip gerekmediğini belirtir. Bu, örneğin harici bir cihazın işlenmesi gereken girdi verilerine sahip olup olmadığını test etmek için kullanılabilir. EBCA3BEXTEBCI

Toplamda, CP1600 kullanan bir sistemin uygulanması genellikle ek destek yongaları ve mantığı gerektiriyordu. Bu, harici dallanma kullanılıyorsa on altı sinyali tek bir pime çoğullamak için bir sistem ve harici parçalardaki veri yolu durum sinyallerinin kodunu çözmek zorunda kalmamak için üç-bit-sekiz-hat dönüştürücü içeriyordu.

Komut seti ve kayıtlar

Bir talimat işlem kodunda bulunan 16 bitten CP1600 sadece 10'unu kullandı. Kalan 6 bit "Gelecekteki genişleme için ayrılmış" olarak işaretlendi. Görünüşe göre fazladan 6 bit , CPU'yu serbest bırakılana kadar durduran PCIT hattını öne sürerek yardımcı işlemcilerle kullanılmak üzere tasarlandı . İlk belgeler, seride planlanan iki yongayı gösterir, "Genişletilmiş Komut Seti"ni ekleyen 1616 ve 1618 "Öncelik Genişletici".

Sistem 87 temel talimat içeriyordu. Talimatlar, kullanılan adresleme formatına bağlı olarak bir ila üç 16 bitlik kelime uzunluğunda olabilir. CP1600, bellek-bellek dolaylı adreslemeyi (ofsetler) desteklemedi ve döngü, bellekteki adreslerde tek döngü değişiklikleri gerçekleştiren özel bir toplayıcı kullanılarak uygulandı. Aritmetik mantık birimi (ALU) 16 bit genişliğinde ve 2.4 mikrosaniye iki 16 bit dahili kayıtlarını ekleyebilir ve bellek 3.2 mikrosaniye iki 16 bit numaraları eklemek kayıt.

PDP-11 gibi, CP1600 de modern tasarımlarda olduğu gibi gerçekten genel amaçlı olmasalar da sekiz adet 16-bit "genel amaçlı" işlemci kaydı kullandı . Yalnızca R0 gerçekten genel amaçlıydı ve "birincil akümülatör" olarak tanımlandı. R1'den R3'e kadar olan veri sayaçları, genellikle kayıt tabanlı adresleme ("zımni adresleme") için kullanılır. R4 ve R5, erişildikten sonra otomatik olarak artırıldı, bu da onları veri koleksiyonları üzerinde döngü yapmak için kullanışlı hale getirdi.

R6 yığın işaretçisi , R7 ise program sayacıydı. Bu kayıtların her ikisi de programcı tarafından görülebildiğinden, diğer şeylerin yanı sıra çoklu yığınları uygulamak veya daha karmaşık dalları desteklemek için kullanılabilirler. Hiçbir örtülü yığın talimatı yoktu; R6 bir "okuma" işleminde kullanıldığında adresi azalttı ve ardından işaret edilen verileri döndürdü, bir simüle etti POPve bir "yazma" işleminde kullanıldığında artış sonrası (R4/R5 gibi) ve yazardı, gibi PUSH.

G/Ç

Çağ için yaygın olduğu gibi, CP1600 , Intel sistemlerinde görüldüğü gibi ayrı G/Ç pinlerinin aksine, bellek eşlemeli G/Ç kullanıyordu . Çoğullanmış veri yolu ve çok durumlu veri yolu durumunun kullanılması, G/Ç'nin uygulanmasını, bellek eşlemeli sistemlerde normalde olduğundan daha zor hale getirdi. Bu, veri yolunu bir adres belirtmekten veriye değiştirirken, uygulamaların CPU ile arayüz oluşturabilmek için mandalları veya arabellekleri kullanması gerektiği anlamına geliyordu. Bu hem G/Ç performansını olumsuz etkiledi hem de G/Ç cihazlarının karmaşıklığını artırdı.

Bu sorunu çözmek için GI, gerekli veri yolu mantığını uygulayan bir dizi 164x özel I/O yongası sağladı. Bunlara örneğin 1641 klavye denetleyicisi, 1643 kaset teyp denetleyicisi ve 1647 ekran denetimi dahildir. Bunlar arasında en ünlüsü, kanal kontrolörü olarak CP1600 ile uyum içinde çalışmak üzere tasarlanmış olan 1640 "Programlanabilir Arayüz Denetleyicisi" veya PIC'dir . Diğer 1640 serisi yongalarda olduğu gibi, PIC dahili olarak veri yolu mantığını deşifre etti, ancak aynı zamanda G/Ç ve doğrudan bellek erişimi gerçekleştirmek için kendi programlarını çalıştırabilen çok basit bir işlemci ekledi . Örneğin, diskteki belirli bir sektörden verileri okumak için bir disket kartındaki bir PIC'ye bir talimat gönderilebilir . PIC daha sonra verileri kendi dahili ara belleğine okuyacak, durum pinlerinin tamamı sıfır olduğunda veri yolunu kullanılmayan süre boyunca izleyecek ve ardından verileri ana belleğe gönderecektir.

Genel Enstrüman, 16 bit veya daha büyük mini bilgisayarlarla uyumlu çapraz montajcılar ve simülatörler/hata ayıklayıcılar sağladı . GI ayrıca GIC1600'de bağımsız bir CP1600 tabanlı mikrobilgisayar sistemi sağladı.

kullanır

Intellivision'da kullanılan CP1610, 1600 mikroişlemci ailesinin uyumlu bir üyesidir. 1 mikrosaniyelik bir işlemci döngüsü üreten 2 MHz iki fazlı bir saat kullanır. NTSC Intellivisions'daki CP1610, 1.7897725 MHz iki fazlı saat kullanır. CP1600'ün geleneksel bilgisayar rolündeki kullanıcıları nispeten nadir olsa da, 1980'den 1983'teki video oyunu çöküşüne kadar 3 milyondan fazla Intellivision üretildi, 1984'te Intellivision üretim hatlarının kapanmasına yol açtı.

CP1600'ün üretimi 1985'te General Instrument'ın Mikroçip Teknolojisi yaratmak için mikroelektronik bölümünü devre dışı bırakmasıyla sona erdi . Bu noktada, MC68000 gibi bir dizi 32-bit tasarım mevcuttu ve CP1600 gibi 16-bit bir tasarıma sınırlı ilgi vardı ve onların mevcut ana müşterisi Intellivision artık üretimde değildi. Diğer birçok ürün de aynı zamanda ömrünü tamamlamıştı ve bunların birincil ürünü PIC idi.

Referanslar

bibliyografya

Dış bağlantılar