Veri Genel MV / 8000 “Mod biti yok” erdemleri


11

Tracy Kidder'ın Data General'daki bir ekibin yeni bir makine (daha sonra MV / 8000 olarak adlandırılan "Eagle" kodlu) tasarladığı "Yeni Bir Makinenin Ruhu" nu okuyorum. Önceki bir mimarinin (16 bit Eclipse) 32 bit uzantısıdır. Döner temalardan biri, mod bitli bir makine oluşturmak istemedikleri ve bunu başardıkları gibi görünüyor.

Bununla birlikte, bunun teknik olarak nasıl elde edildiğini ortaya çıkarır ve ayrıca mod biti olmayan bir makine oluşturmanın neden bu kadar çekici olduğuna da bakmaz. Kitap teknik bir kitap değil, bu yüzden detaylar bir şekilde çarpıtılmış olabilir. Bununla birlikte, o zaman bir "mod bit" çözümünün yaygın (ve dolayısıyla uygulanabilir) olduğu, ancak mühendisler tarafından estetik nedenlerden dolayı çekici olmadığı düşünülen bir kitap okudunuz. Kitap ayrıca mod biti olmayan bir tasarımın bu belirli takım tarafından bir şekilde üstesinden gelinmesi son derece zor bir görev gibi görünüyor.

Nasıl elde edildiğinin bu açıklamasını buldum:

http://people.cs.clemson.edu/~mark/330/kidder/no_mode_bit.txt

Temel olarak yeni talimatlar için opcode alanının daha önce kullanılmayan bir bölümünü kullanmakla ilgili gibi görünüyor. İtiraf etmeliyim ki "sadece" olduğunu biraz hayal kırıklığına uğradım. Ayrıca bu hala bazı soruları cevapsız bırakır düşünüyorum:

Birincisi, 16 bit işlemler 32 bit adres alanında nasıl yaşadı? Çünkü bunun 32-bit uzantısını "mod biti olmadan" yapmanın temel zorluğu olduğunu düşünüyorum. Öte yandan, talimat setini genişletmek nispeten yaygın bir girişimdir. Nasıl olduğuna dair bir açıklama olmadığından, 16 bit kodun belleğe her zamanki gibi erişebileceğini varsayabiliriz, belki de bir tür sanallaştırılmış / bankalı bellek görünümü görür (ilk adresin nerede olduğunu kontrol eden yeni CPU kayıtları ile) veya bunun gibi bir şey. Ama bundan daha fazlası olup olmadığını bilmiyorum. Bu durumda, bunun bir tür "mod bit" çözümü olduğu iddia edilebilir. 16-bit mod işlemleri, CPU'ya eklenen özel özellikler sayesinde diğer süreçlerle birlikte çalışabilir.

İkincisi, mod biti olmayan bir makine oluşturmak neden bu kadar çekici? Kitapta yer alan avantajların çoğu, müşterilerin eski yazılımları çalıştırmak istemeleri. Ancak bu, bir mod bitine karşı konuşmak gibi görünmemektedir, çünkü bir mod bitini kullanmanın tüm amacı geriye dönük uyumluluğa sahip olmaktır. AMD, x86'yı 64-bit'e genişlettiğinde, en azından yaptıkları şey "mod biti" anlayışına göre tam olarak bir mod biti eklemekti. CPU'yu 64 bit modunda yapacak özel bir bit. Ve bir işlemin 64 bitlik modun "alt modunda" yürütülmesini sağlayan başka bir bit (32 bit uygulamalarla uyumluluğu etkinleştirmek için). Alt modun özü, CPU'nun talimat akışını eski 32 bit talimatlar olarak yorumlaması, ancak yapılan 32 bit bellek erişimlerinin yeni sayfa tabloları formatı (64 bit farkında işletim sistemi tarafından kurulum) kullanılarak çözülmesi ve sonunda tam fiziksel adres alanına eşlendi. Ayrıca, 32 bit kod 64 bit kodla önlenebilir. Data General çözümü gibi bu da 32 bit bir programın 64 bit programlar (DG durumunda 16 bit vs 32 bit) altında çalışmasına izin verdi. Yani müşteri açısından hiçbir fark yok gibi görünüyor. Bu nedenle, tasarımda basitleştirilen tek fayda uygulamada olabilirdi, ancak kitap endişe verici gibi görünmüyor, çünkü mod biti o sırada bile yaygın olarak görüldü (ve daha sonra mimarilerin de x64 davasında gösterildiği gibi kullanmıştır).

Eminim kaçırdığım bir şey var, bu yüzden birisi bu "mod-bit" tasarımının teknik detayları ve erdemleri hakkında daha fazla tartışabilirse harika olurdu.


O günlerde - ortak kelime boyutunu 16 bit'ten 32 bit'e taşıma günleri - yeni 32 bit mimarilerin çoğu, aynı mfr'nin 16 bit çizgisinden tamamen farklı komut setlerine sahipti - aynı zamanda "bit" ile ayarlanan 16 bitlik komut. Projeleri yeni 32 bit makinelere yükselten insanlar aynı mfr ile kalmak için hiçbir neden görmediklerinden, pazarlama belirsizliğine yol açtı - yeni bir mimari olduğu sürece neden yeni makinelerin en iyisini mfr'den seçmediğinizi. "Mod biti" eksikliği daha kolay "artımlı" geçişi önerdi: Bu nedenle DG ile kalın.
davidbak

Yanıtlar:


9

Cevap, Veri Genel Yönetimi Başkanı Ed deCastro'nun özellikle yeni nesil CPU'yu tasarlamak için Kuzey Carolina'da bir mühendis ekibi kurmuş olması. Massachusetts ekibine bize destek ve artımlı iyileştirmeler yaptı. Üç kez, her seferinde çok mantıklı bir mod biti ile yeni bir mimari önerdik ve bunu mütevazı bir artış olarak tanımladık. Ed, her seferinde kılık değiştirmemizi gördü ve teklifi Kuzey Carolina ekibinin başarılı olmasını bekleyerek reddetti. Ed, tekliflerimizi nasıl gizlemeye çalıştığımızdan bağımsız olarak, mod biti varsa yeni nesil bir mimari olduğunu bileceğini düşünüyordu. Bu yüzden, daha az verimli hale getirmiş olsa bile, mod biti olmayan yeni nesil bir mimari önermek zorundaydık. Ed deCastro'yu bu şekilde geçirdik. Yeni Bir Makinenin Ruhu,


1
Merhaba Carl, bilgi için teşekkürler, evet aynı zamanda (kitap okumaktan) mod bit tartışmanın politik çıkarımlar hakkında çok fazla olduğu izlenimim. İçeriden bilgi ile iyi - MV / 8000 gibi geliyor parçası olmak çok heyecan verici bir projeydi.
Morty

7

216

Bir mod biti ile eski 16 bit işletim sisteminin, programın 16 bit mi yoksa 32 bit mi olduğunu anlamak ve daha sonra programı başlatmadan önce mod bitini uygun şekilde ayarlamak için değiştirilmesi gerekirdi.

Pratikte, MV / 8000'in aslında bir mod biti var gibi görünüyor. Başka bir yerde Mark Smotherman web sayfasında o gönderdi Clemson Veri Genel, ECLIPSE MV / Operasyon 8000 İlkeleri 1980 . Ek E'ye (sayfa 369'dan başlayarak) bakarsanız, MV / 8000'in tamamen farklı iki sayfa tablosu mekanizması olduğunu göreceksiniz. MV / 8000'in geriye doğru uyumlu olduğu spesifik makine C / 350 idi ve C / 350, belirli bir 16-Bit Bellek Ayırma ve Koruma Ünitesine sahipti ve bu üniteyi kontrol etmenin belirli yolları vardı. Fiziksel çalışmaya 32-bit mantıksal olarak, Adres Çeviri Birimi'ni açarsınız (sayfa 31'den başlayarak Bölüm 3'te açıklanmıştır.

Pratikte bunun anlamı, 32 bit modunda 16 bitlik bir komut yürüttüğünüzde, mantıksal adresin yüksek 16 bitinin 0'a ayarlandığı belirtilir. 16 bit modunda 32 bitlik bir komut yürüttüğünüzde bir adresin 16 biti, ancak el kitabını kısa bir süre incelediğimde bulamadım.

Bu yüzden bir mod bitinin iyi mi yoksa kötü bir şey mi olduğu sorusu daha azdır. Dahası, 16 bit ve 32 bit talimatları ayırt etmek için bir mod bit kullanmak için özellikle iyi bir neden yoktu. 16 bitlik talimatlar 16 bit mantıksal adres (yüksek 16 bit 0 olarak ayarlanmış) ve 16 bit kayıtlar kullanır ve 32 bit talimatlar 32 bit mantıksal adres ve 32 bit kayıt kullanır. Eski işletim sistemi yeni makinede "çalışır", ancak eski işletim sistemi altında yeni bir program çalıştırarak yeni talimatları da deneyebilirsiniz.


Merhaba Tamam, bu "mod biti yok" ile hedefi daha açık hale getirir - böylece amaç orijinal 16 bit o / s önyükleme yapabilmekti, ama yine de oradan 32 bit bir program başlatmak oldu. Ancak, dediğiniz gibi, bu modda çalışan 32 bit programların içinden 32 bit mantıksal adres alanını kullanmak imkansız olacaktır. Bir bakıma Intel'in 16-bit-32-bit geçişiyle yaptıklarına benzer. Burada ayrıca, 16 bitlik bir programdan (örneğin, MS-DOS altında çalışarak) 32 bitlik talimatları (kayıtların üst kısmına erişerek) yürütmek de mümkündür. Ancak, aynı zamanda vardı ...
Morty

... "gerçek" 32-bit korumalı moda (sayfalamaya da izin verir) girmek için mod bitleri. Bir fark, 32-bit modunda 32-bit komutların kodlamasının, 16-bit modda 32-bit komutların kodlanmasından farklı olmasıdır ("varsayılan" farklı olduğu için), ancak kapasite aynıdır. Öte yandan, x86'nın 64 bit'e geçişi ile komut kodlaması tamamen değiştirildi, bu nedenle 32 bitlik bir program (veya 16 bitlik bir program) 64 bitlik kayıt defterlerini vb. Kullanamaz. / s işlemi 64 bit modunda başlatır ("Uzun mod").
Morty

Bununla birlikte, birincisi bir mod biti olduğu için bu "mod biti" tasarımını vurgulamanın avantajlarını hala sorgulayabilir ve herhangi bir teklif sunduğu bir köşe durumu ("Eski işletim sistemi ve yeni uygulama") gibi görünüyor yarar - çoğu müşteri donanımdan tam olarak yararlanabilecek yeni işletim sistemini çalıştırmak istemez mi? Buradaki önemli özellik, yeni işletim sisteminin eski uygulamaları çalıştırabilmesidir! Ancak gönderdiğim bağlantıdan bahsettiğim gibi, bu bile mümkün değil, programlar CPU'yu uyumlu hale getiren yeniden bağlantı ve hatta yeniden derleme gerektiriyor (o / s'deki değişiklikler nedeniyle). görüş açısı!
Morty
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.