Texas Instruments TMS9900 - Texas Instruments TMS9900

Texas Instruments TMS9900
tasarımcı Texas Instruments
bitler 16 bit
tanıtıldı 1976
Tasarım CISC
endianness Büyük
Kayıtlar
PC, WP, ST
Genel amaç 2 dahili olarak işlemcide bulunur (WP, ST) Harici RAM'de bulunan 16 × 16 bit yığın

Haziran 1976'da tanıtılan TMS9900 , piyasada bulunan ilk tek çipli 16 bit mikroişlemcilerden biriydi . Bu uygulamaya Texas Instruments ' TI-990 minibilgisayar tek çipli formatında mimari ve başlangıçta o serisinin düşük-uç modelleri kullanıldı.

64-pin DIP formatı, daha yaygın olan 40-pin formatından daha küçük makinelerde uygulanmasını daha pahalı hale getirdi ve TI'nin kendi kullanımı dışında nispeten az sayıda tasarım kazancı gördü. Bu kullanımlar arasında , sonunda yaklaşık 2,8 milyon örnek satan TI'nin TI-99/4 ev bilgisayarı vardı.

1980'lerin ortalarında mikrobilgisayar alanı, Intel 8088 gibi 16-bit sistemlere ve 9900'den kolayca daha iyi performans gösteren ve genellikle daha ucuz olan Motorola 68000 gibi daha yeni 16/32-bit tasarımlara geçiyordu . Çip için belirgin bir geleceği olmayan TI, dikkatini 1983'te tanıtılan Texas Instruments TMS320 gibi özel amaçlı işlemcilere çevirdi .

Tarih

Altın kaplama pimli seramik pakette TMS9900JL

TMS9900 tek çipli versiyonu olarak tasarlanan TI 990 mini bilgisayar çok gibi, serinin Intersil 6100 tek çipli oldu PDP-8 (12 bit) ve Fairchild 9440 ve Veri Genel ait mN601 edildi hem tek çipli versiyonları Data General s' Nova . Bazıları TMS9900'dan önce gelen National Semiconductor IMP-16 veya DEC LSI-11 gibi çok çipli 16-bit mikroişlemcilerin aksine , ikincisi tek çipli, bağımsız 16-bit mikroişlemciydi. TMS9900'dan önce gelen bilinen tek çipli 16 bit tasarım, 1975'te piyasaya sürülen , neredeyse bilinmeyen Panafacom MN1610'dur .

TMS9900'ün mini bilgisayar kökleri, boş bir sayfadan başlayan tasarımlarda yaygın olarak bulunmayan bir dizi mimari özelliğin ortaya çıkmasına neden olur. Bunlar arasında dikkat çeken, TMS9900'un ana belleğe eşlenen kayıtları kullanmasıydı . Bu, tek bir işaretçiyi değiştirerek gerçekleştirilebilen hızlı bağlam değiştirmeye izin verirken, daha geleneksel tasarımlar, tüm dahili yazmaç setinin belleğe veya yığına depolanmasını gerektirir. Bu yaklaşımın dezavantajı, bu kayıtlara erişmenin daha fazla zaman almasıdır. Bir mini bilgisayar uygulamasında, etki nispeten küçüktür ve çoklu görev ortamındaki olumlu yön önemlidir. Tek kullanıcılı mikro bilgisayarlar veya gömülü sistemler gibi diğer rollerde, bu ödün vermeye değmeyebilir.

TI, kurumsal sinerji için farklı bölümlerde aynı mimariyi kullandı: "tek şirket, tek bilgisayar mimarisi". 1970'lerin sonlarında Walden C. Rhines , kişisel bilgisayar geliştiren bir IBM grubuna TMS9900'ün bir sunumunu yaptı. IBM , IBM PC için Intel 8088'i seçtiği için "Ne kaybettiğimizi 1981'e kadar bilmiyorduk" diye hatırlıyordu. TI-99/4A gibi ürünlerle kişisel bilgisayar pazarına girme girişimi başarısız olduktan sonra, şirketin mikroişlemci bölümü sonunda TMS320 özel amaçlı işlemci serisine odaklandı .

Mimari

TMS9900'de üç adet dahili 16 bitlik kayıt vardır - Program sayacı (PC), Durum kaydı (ST) ve Çalışma Alanı İşaretçi kaydı (WP). WP kaydı , işlemcinin 16 genel amaçlı kullanıcı kaydının (her biri 16 bit genişliğinde) tutulduğu harici RAM'deki bir temel adrese işaret eder . Bu mimari, hızlı bağlam değiştirmeye olanak tanır ; örneğin bir alt program girildiğinde, kayıtların ayrı ayrı kaydedilmesi yerine yalnızca tek çalışma alanı kaydının değiştirilmesi gerekir.

Adresler, büyük endian sıralama kuralına sahip baytları ifade eder . TMS9900, 2 16 bayt (65.536 bayt veya 32.768 kelime) adres alanına sahip klasik bir 16 bit makinedir .

Yığın kavramı ve yığın işaretçi kaydı yoktur. Bunun yerine, program sayacını bir kayıt defterine kaydeden ve kayıt bağlamını değiştiren dal talimatları mevcuttur. 16 donanım ve 16 yazılım kesme vektörünün her biri bir çift PC ve WP değerinden oluşur, bu nedenle kayıt bağlam anahtarı da bir kesme tarafından otomatik olarak gerçekleştirilir.

Komut seti ve adresleme

TMS9900, bir, iki veya üç kelime uzunluğunda ve her zaman bellekte kelime hizalı olan 69 talimata sahiptir. Komut seti oldukça ortogonaldir , yani birkaç istisna dışında, komutlar işlenenlere erişmenin tüm yöntemlerini kullanabilir (adresleme modları).

Adresleme modları, Anında (talimatta işlenen), Doğrudan veya "Sembolik" (talimatta işlenen adresi), Kayıt (çalışma alanı kaydında işlenen), Otomatik artışlı veya artışsız Kayıt Dolaylı (çalışma alanı kaydındaki işlenen adresi), Dizinli (işlenen adresi) içerir. çalışma alanı kayıt içeriğiyle indekslenen talimatta) ve Program Counter Relative.

En önemli çift işlenen komutları (toplama, çıkarma, karşılaştırma, taşıma vb.), hem kaynak hem de hedef işlenenler için 2 bitlik adresleme modu ve 4 bitlik kayıt seçici alanları içerir. İşlem kodunda, "Sembolik" mod, kayıt alanı 0'a ayarlanmış olarak Dizine alınmış mod olarak temsil edilir, bu nedenle çalışma alanı kaydı 0 (WR0) Dizinli modda kullanılamaz. XOR gibi daha az kullanılan çift işlenenli komutlarda, hedef işlenen bir çalışma alanı kaydı (veya çarpma ve bölme komutları durumunda çalışma alanı kayıt çifti) olmalıdır.

Akış kontrolü, bir koşulsuz ve on iki koşullu Atlama talimatından oluşan bir grup aracılığıyla kolaylaştırılır. Sıçrama hedefleri, -128 ila +127 kelime adresi ofsetiyle PC'ye göredir.

Alt program çağrıları için, Branch and Load Workspace Pointer (BLWP) komutu yeni WP ve PC değerlerini yükler, ardından WP, PC ve ST değerlerini sırasıyla (yeni) kayıtlar 13, 14 ve 15'e kaydeder. Alt yordamın sonunda, Dönüş Çalışma Alanı İşaretçisi (RTWP) bunları ters sırada geri yükler. BLWP/RTWP kullanarak, bir yığın olmamasına rağmen alt program çağrılarını yuvalamak mümkündür, ancak programcının uygun kayıt çalışma alanını açıkça ataması gerekir.

Komut seti ayrıca, WP'yi değiştirmeden yalnızca PC'yi kayıt 11'e kaydeden bir Şube ve Bağlantı (BL) işlem kodu içerir. Bu durumda, hedef adres olarak WR11'i kullanan bir dal talimatı (B) dönüş işlem kodu olarak hizmet edebilir, ancak BL tipi alt rutinler, dönüş adresini kaydetmek için programcı harekete geçmeden iç içe yerleştirilemez.

TMS9900, "X" (eXecute) yürütme talimatını destekler . Bu talimat , talimatı bir kayıt defterinde yürütür . Hata ayıklama ( kesme noktası talimatı olarak) ve bayt kodu yorumlayıcılarında kullanıldığı gibi dizine alınmış işlem kodu tabloları oluşturmak için kullanılabilir.

TMS9900 ayrıca eXtended İŞLETİM (XOP) talimatını da destekler. XOP'a 0-15 aralığında bir sayının yanı sıra bir kaynak adresi verilir. Çağrıldığında talimat, bellekte önceden tanımlanmış konumlarda on altı vektörden biri aracılığıyla bir bağlam geçişi gerçekleştirecektir. Bu bir kesmeye benzer, ancak XOP talimatı ayrıca kaynak adresini yeni çalışma alanının 11 numaralı kaydında saklar. XOP, aktarım vektörlerinin sabit konumlarda olması gerektiğinden BLWP'den daha az esnektir, ancak kaynak adresi vektörün konumunu tanımlamadığında bunun yerine yürütülen alt program tarafından kullanılabileceğinden bellekten tasarruf sağlar. XOP, 990 mini bilgisayar serisinin daha yüksek uç sürümlerinde bunları yürütmek için özel donanıma sahip olabileceği alt uç modellerde yazılımdaki talimatları uygulamak için kullanılır.

Intel 8086 ile tipik karşılaştırmalarda , TMS9900 daha küçük programlara sahipti. Tek dezavantajı, küçük adres alanı ve hızlı RAM'e duyulan ihtiyaçtı.

uygulama

TMS9900 pin konfigürasyonu (64-Pin DIP )

TMS9900, +5 V, -5 V ve +12 V güç kaynakları ve maksimum 3 MHz (333 ns) frekansa sahip dört fazlı (örtüşmeyen) bir saat gerektiren bir N-kanallı silikon kapı MOS işleminde uygulandı. çevrim), genellikle bir TIM9904 (diğer adıyla 74LS362) saat üreteci çipi kullanılarak 48 MHz kristalden üretilir.

En kısa komutların tamamlanması için sekiz saat döngüsü veya 2,7 μs gerekir (0 harici bekleme döngüsü varsayılır), diğerleri 10 ila 14 döngü (3,3...4,7 μs) arasında çalışır; en uzun süre çalışan komut (DIV) 124 döngüye (41,3 μsn) kadar sürebilir.

Çip (o sıradışı) 64-pin, 0.9" genişliğinde içinde ambalajlı, DIP . 15 bitlik (kelime) için izin verilen pimi nispeten çok sayıda adres yolu ve 16 bit veri yolu olmadan adanmış iğneler üzerinde terk etmesinden çoğullama kullanımı (örneğin Intel 8086 CPU'nun aksine ), harici bellek bağlantılarını basit tutar.Diğer birçok üretici tarafından kullanılan konvansiyonun aksine, TI en önemli adres ve veri hatlarını sırasıyla "A0" ve "D0" olarak etiketlemiştir.Tüm dahili veri yolları ve ALU 16 bit genişliğindedir.

İşlemci, harici doğrudan bellek erişimi (DMA) için üç olarak belirtilen adres yolu ile duraklatılabilir . Bellek erişimleri her zaman 16 bit genişliğindedir ve CPU, bayt çapında erişimler için yazmadan önce okuma işlemlerini otomatik olarak gerçekleştirir.

Donanım kesme sistemi, kesme isteğinin sunulması için durum kaydında saklanan öncelik seviyesinden (12-15 bit) daha yüksek olması gereken 4 bitlik bir kesme önceliği girişini destekler. Ek olarak, /LOAD girişi, özel bir vektörle maskelenemeyen bir kesme olanağı sağlar.

TMS9900 CPU ayrıca, toplam 4096 adreslenebilir bitten 1−16 bit genişliğindeki alanlara erişimi destekleyen özel talimatlarla birlikte, harici kaydırma yazmaçlarıyla arabirim oluşturmak için tasarlanmış bir 16 bit kaydırma yazmacı ("CRU") içerir.

Paralel çevre birimleri , normal adrese ve veri yoluna bellek eşlemeli bir şekilde eklenebilir .

Uygulamalar

Tomy Tutor , TMS9995 işlemci tabanlı bir 1983 ev bilgisayarı

TMS9900, TI-99/4 ve TI-99/4A ev bilgisayarlarında kullanıldı. Ne yazık ki, üretim maliyetlerini azaltmak için TI, bu sistemlerde TMS9900'ün doğrudan erişebileceği hızlı RAM türünden sadece 128 16 bitlik kelime kullanmayı seçti. Bellek geri kalanı arasında 16kb olarak , 8-bit DRAM TI-99/4 performansını sakat video görüntü kontrolörü yoluyla dolaylı olarak erişilebilir.

TI, bir kart çerçevesine takıldığında 16 bitlik bir mini bilgisayar oluşturabilen CPU, bellek, G/Ç dahil TM990 serisi bilgisayar modüllerini geliştirdi. Bunlar tipik olarak proses kontrolü için kullanılmıştır. TM990/189 biçiminde bir mikroişlemci eğiticisi piyasaya sürüldü.

TMS9900 Ailesi Ürün Geliştirme

TMS9900 mikroişlemci ailesinin ikinci nesli, büyük ölçüde talimat ön getirme teknolojisinin dahil edilmesi nedeniyle "önceki 9900 ailesi işlemcilerden 3 kat daha hızlı işlevsel performans" sağlayan TMS9995 idi. Ev bilgisayarı alanında, TMS9995 yalnızca Tomy Tutor'da, Geneve 9640 adlı ezoterik bir TI99-4/A yükseltmesinde ve Electronics Today'de basılan bir projede kullanım buldu : Powertran Cortex. TI-99/2 ve TI-99/8 bilgisayar sistemlerinde kullanılması planlandı, ancak hiçbiri prototip aşamasını geçmedi.

Plastik DIP paketinde TMS9900NL

TI daha sonra, maliyeti düşürmek için 990/10A mini bilgisayarda CPU olarak kullanılan daha güçlü TMS99000 mikroişlemci ailesini geliştirdi . Ne yazık ki, 990/10A piyasaya çıktığında mini bilgisayar çağının sonu çoktan görünmüştü.

TMS99000 ailesi iki mikroişlemci, TMS99105A ve TMS99110A içerir; bunlar, çip üzerinde makro depo ROM belleğinin dahil edilmesi dışında aynıdır (makro depo belleği, standart makine kodunda yazılmış öykünme rutinleri aracılığıyla ek işlevler veya talimatlar içerir). TMS99110A mikroişlemcisindeki çip üstü ROM Macrostore, makine dili komut setinin bir parçası olarak kullanılabilen kayan nokta talimatları içerirken TMS99105A, bir ROM makro deposu içermez. TMS99000 ailesinin üçüncü üyesi olan TMS99120 duyuruldu, ancak hiçbir zaman ticari olarak üretilmemiş olabilir. TMS99120'deki çip üzerindeki ROM Macrostore, PASCAL üst düzey dili için çalışma zamanı destek rutinlerini içerir.

TMS99000 ailesi için komut seti, nesne kodu uyumluluğu ile TMS9995 ve TMS9900'ün bir üst kümesidir. Ek talimatlar, işaretli çarpma ve bölme talimatlarını içerir; uzun kelime kaydırma, toplama ve çıkarma; yük durumu kaydı, çalışma yeri işaretçisi, yığın işlemleri, çok işlemcili destek, bit işleme. Ailenin üyeleri anında 256KiB belleğe erişebilir ve 16MiB'a kadar adreslemek için TIM99610 bellek eşleyicisini kullanabilir. Mimari, TMS9900 ve TMS9995'e göre birçok başka gelişme içerir.

Varyantlar

modeli Açıklama
TI990/9 Mini bilgisayar sistemleri için erken çoklu çipli CPU, 1974
TI990/10 Mini bilgisayar sistemleri için çoklu çip uygulaması, 1975
TI990/12 990/10'dan daha hızlı çoklu çip uygulaması
TMS9900 TI-99/4(A) bilgisayarında kullanılan tek çip uygulaması, 1976
TMS9940 2KB ROM, 128B RAM, azaltıcı, CRU veri yolu, 1979 ile mikrodenetleyici
TMS9980
TMS9981
TMS9900'ün 8 bit sürümleri
TMS9985 8KB ROM, 256B RAM ve 8-bit harici veri yolu ile TMS9940, c. 1978 (hiç yayınlanmadı)
TMS9989 Askeri donanımda kullanılan 9980 geliştirildi
TMS9995 Geliştirilmiş TMS9985 benzeri, ROM yok. TI-99/2 ve TI-99/8 prototiplerinde, Tomy Tutor ve Geneve bilgisayarında kullanılır
TMS99105 TMS99000 mikroişlemci ailesinin temel üyesi
TMS99110 Çip üzerindeki Macrostore ROM belleğine önceden programlanmış kayan nokta talimatlarına sahip TMS99000 ailesi mikroişlemci
TMS99120 Çip
üzerindeki Macrostore ROM belleğine önceden programlanmış PASCAL yüksek seviyeli dil için çalışma zamanı destek rutinlerine sahip TMS99000 ailesi mikroişlemci (mikroişlemci duyuruldu, ancak hiçbir zaman ticari olarak üretilmemiş olabilir)

Referanslar

Dış bağlantılar