Data General MV / 8000 kebajikan dari "No mode bit"

10

Saya membaca Tracy Kidder "The Soul of a New Machine" di mana tim di Data General merancang mesin baru (diberi kode "Eagle", yang kemudian dinamai MV / 8000). Ini adalah ekstensi 32-bit dari arsitektur sebelumnya (Eclipse 16-bit). Salah satu tema yang berputar tampaknya adalah, bahwa mereka tidak ingin membuat mesin dengan mode bit dan bahwa mereka berhasil dalam hal ini.

Namun, itu meninggalkan bagaimana ini dicapai secara teknis, dan itu juga tidak masuk ke mengapa itu sangat menarik untuk membuat mesin tanpa mode bit. Buku itu bukan buku teknis sehingga bisa jadi detailnya entah bagaimana terdistorsi. Namun, Anda merasa membaca buku itu bahwa solusi "mode bit" adalah umum (dan karenanya layak) pada saat itu, tetapi dianggap tidak menarik oleh para insinyur mungkin karena alasan estetika. Buku ini juga membuatnya tampak seperti tugas yang sangat sulit untuk membuat desain tanpa sedikit mode, yang entah bagaimana diatasi oleh tim khusus ini.

Saya menemukan deskripsi ini tentang bagaimana itu dicapai:

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

Tampaknya pada dasarnya tentang menggunakan bagian ruang opcode yang sebelumnya tidak digunakan untuk instruksi baru. Saya harus mengakui bahwa saya agak kecewa bahwa itu "hanya itu". Juga saya pikir ini masih menyisakan beberapa pertanyaan:

Pertama, bagaimana proses 16-bit hidup dalam ruang alamat 32-bit? Karena saya pikir itu adalah tantangan utama dalam membuat ekstensi 32-bit "tanpa mode bit". Memperluas set instruksi, di sisi lain, adalah tugas yang relatif umum. Karena tidak ada deskripsi tentang bagaimana hal itu terjadi, seseorang dapat berasumsi bahwa kode 16-bit hanya mengakses memori seperti biasanya, mungkin ia melihat beberapa jenis tampilan memori yang divirtualisasi / dibelokkan (dengan register CPU baru mengendalikan di mana alamat pertama berada) atau sesuatu seperti itu. Tetapi saya tidak tahu apakah ada yang lebih dari itu. Dalam hal ini orang dapat membantahnya semacam solusi "mode bit". Proses mode 16-bit dapat berjalan bersamaan dengan proses lain berdasarkan fitur khusus yang ditambahkan ke CPU.

Kedua, mengapa begitu menarik untuk membuat mesin tanpa mode bit? Banyak manfaat yang disebut-sebut dalam buku ini adalah bahwa pelanggan ingin menjalankan perangkat lunak lama. Tetapi ini tampaknya tidak menentang bit mode, karena seluruh tujuan penggunaan bit mode adalah untuk memiliki kompatibilitas ke belakang. Ketika AMD diperpanjang x86 ke 64-bit, setidaknya menurut pemahaman saya tentang kata "mode bit" apa yang mereka lakukan adalah menambahkan bit mode. Bit khusus yang akan membuat CPU dalam mode 64-bit. Dan bit lain yang akan membuat proses dieksekusi dalam "sub-mode" dari mode 64-bit (untuk mengaktifkan kompatibilitas dengan aplikasi 32-bit). Inti dari submode adalah bahwa CPU menginterpretasikan aliran instruksi sebagai instruksi 32-bit yang lama tetapi bahwa akses memori 32-bit yang dibuat diselesaikan dengan menggunakan format tabel halaman baru (pengaturan oleh sistem operasi 64-bit sadar) dan akhirnya dipetakan ke ruang alamat fisik penuh. Juga, kode 32-bit dapat diawali dengan kode 64-bit. Seperti solusi Data General, ini juga memungkinkan program 32-bit berjalan di bawah program 64-bit (16-bit vs 32-bit dalam kasus DG). Jadi dari sudut pandang pelanggan, tampaknya tidak ada perbedaan sama sekali. Karenanya satu-satunya keuntungan bisa saja dalam implementasi, menyederhanakan desain, tetapi buku tidak membuatnya terdengar seperti itu yang menjadi perhatian, karena mode bit dianggap umum bahkan pada waktu itu (dan tampaknya kemudian arsitektur juga memiliki menggunakannya seperti yang ditunjukkan pada case x64).

Saya yakin ada sesuatu yang saya lewatkan, jadi akan lebih baik jika seseorang dapat membahas lebih lanjut tentang detail teknis dan kelebihan dari desain "tanpa mode-bit" ini.

Morty
sumber
Pada masa itu - hari-hari memindahkan ukuran kata umum dari 16-bit ke 32-bit - sebagian besar arsitektur 32-bit baru memiliki set instruksi yang berbeda sepenuhnya dari garis mfr's16-bit yang sama - bahkan jika mereka juga dapat mengeksekusi instruksi 16-bit diatur dengan "mode bit". Hal ini menyebabkan ketidakpastian pemasaran ketika orang meningkatkan proyek ke mesin 32-bit baru tidak melihat alasan untuk tetap menggunakan mfr yang sama - selama itu adalah arsitektur baru mengapa tidak memilih yang terbaik dari mesin baru dari mfr apa pun. Kurangnya "mode bit" menyarankan transisi "tambahan" yang lebih mudah: Oleh karena itu, tetap dengan DG.
davidbak

Jawaban:

8

Jawabannya adalah Ed deCastro, Presiden Data General Management, telah membentuk tim insinyur di North Carolina khusus untuk merancang CPU generasi berikutnya. Dia memberikan tugas dukungan dan peningkatan tambahan kepada kami, tim Massachusetts. Tiga kali kami mengusulkan arsitektur baru utama, setiap kali dengan mode bit yang sangat masuk akal, dan menggambarkannya sebagai peningkatan bertahap sederhana. Setiap kali, Ed melihat melalui penyamaran kami dan menolak proposal, berharap tim Carolina Utara berhasil. Ed percaya bahwa terlepas dari bagaimana kami berusaha menyamarkan proposal kami, ia akan tahu itu adalah arsitektur generasi baru jika memiliki mode bit. Jadi kami harus mengusulkan arsitektur generasi baru tanpa mode bit, walaupun itu membuatnya kurang efisien. Begitulah cara kami melewati Ed deCastro. Lihat Jiwa Mesin Baru,

Carl Alsing
sumber
Halo Carl, terima kasih atas informasinya, ya juga kesan saya (dari membaca buku) bahwa diskusi mode-bit sangat banyak tentang implikasi politik. Bagus dengan info orang dalam - sepertinya MV / 8000 adalah proyek yang sangat menarik untuk diikuti.
Morty
6

216

Dengan bit mode, OS 16-bit yang lama harus dimodifikasi untuk mengetahui apakah program itu 16-bit atau 32-bit dan kemudian mengatur bit mode dengan tepat sebelum meluncurkan program.

Dalam prakteknya, sepertinya MV / 8000 sebenarnya memiliki sedikit mode. Di tempat lain di halaman web Mark Smotherman di Clemson ia telah memposting Data General, ECLIPSE MV / 8000 Principles of Operation , 1980 . Jika Anda melihat di Lampiran E (mulai halaman 369) Anda akan melihat bahwa MV / 8000 memiliki dua mekanisme tabel halaman yang sama sekali berbeda. Mesin khusus MV / 8000 kompatibel dengan C / 350, dan C / 350 memiliki Unit Alokasi Memori dan Perlindungan 16-bit yang spesifik, dengan cara spesifik mengendalikan unit tersebut. Untuk operasi logis 32-bit ke operasi fisik, Anda akan mengaktifkan Unit Terjemahan Alamat (dijelaskan dalam Bab 3, mulai dari halaman 31.

Dalam prakteknya apa artinya adalah bahwa ketika Anda menjalankan instruksi 16-bit dalam mode 32-bit, ditentukan bahwa 16-bit tinggi dari alamat logis diatur ke 0. Juga harus ada beberapa spesifikasi tentang apa yang terjadi pada tinggi 16-bit alamat ketika Anda menjalankan instruksi 32-bit dalam mode 16-bit, tetapi saya tidak dapat menemukannya selama saya membaca buku panduan tersebut secara singkat.

Jadi itu bukan pertanyaan apakah mode bit itu baik atau buruk. Lebih dari itu tidak ada alasan khusus yang baik untuk menggunakan mode-bit untuk membedakan antara instruksi 16-bit dan 32-bit. Instruksi 16-bit menggunakan 16-bit alamat logis (dengan tinggi 16 bit diatur ke 0) dan register 16-bit, dan instruksi 32-bit menggunakan 32-bit dari alamat logis dan register 32-bit. OS lama "hanya berfungsi" pada mesin baru, tetapi Anda juga dapat mencoba instruksi baru dengan menjalankan program baru di bawah OS lama.

Logika Pengembaraan
sumber
Hai OK ini membuat tujuan dengan "no mode bit" lebih jelas - jadi tujuannya adalah untuk dapat mem-boot o-s 16-bit asli, tetapi masih meluncurkan program 32-bit dari sana. Namun, seperti yang Anda katakan, tidak mungkin untuk menggunakan ruang alamat logis 32-bit dari dalam program 32-bit yang berjalan dalam mode itu. Dalam cara itu mirip dengan apa yang Intel lakukan dengan transisi 16-bit ke 32-bit. Di sini juga dimungkinkan untuk menjalankan instruksi 32-bit (mengakses bagian register yang lebih tinggi) dari dalam program 16-bit (menjalankan, misalnya, di bawah MS-DOS). Namun, pada saat yang sama mereka punya ...
Morty
... mode bit untuk memasuki mode 32-bit protected "true" (yang juga memungkinkan paging). Perbedaannya adalah bahwa dalam mode 32-bit pengkodean instruksi 32-bit berbeda dari pengkodean instruksi 32-bit dalam mode 16-bit (karena "default" berbeda), tetapi kemampuannya sama. Di sisi lain, dengan transisi x86 ke 64-bit pengkodean instruksi benar-benar diubah, sehingga program 32-bit (atau program 16-bit) tidak dapat menggunakan register 64-bit dll. / s meluncurkan proses dalam mode 64-bit ("Long mode").
Morty
Namun, orang masih bisa mempertanyakan manfaat menekankan desain "tidak ada bit mode" ini karena pertama-tama ada bit mode, dan sepertinya ada banyak sudut ("Menjalankan os lama, dan aplikasi baru") di mana ia menawarkan manfaat - tidakkah sebagian besar pelanggan ingin menjalankan os baru yang dapat memanfaatkan perangkat keras sepenuhnya? Fitur penting di sini adalah os baru dapat menjalankan aplikasi lama! Tetapi ketika tautan yang saya kirim menyebutkan, ini bahkan tidak mungkin, program-program tersebut memerlukan penghubungan ulang dan bahkan kompilasi ulang (karena perubahan pada o / s) yang membuat CPU compat. aspek diperdebatkan!
Morty