Dati Generale MV / 8000 virtù di "Nessun bit di modalità"


10

Sto leggendo "L'anima di una nuova macchina" di Tracy Kidder in cui un team di Data General progetta una nuova macchina (nome in codice "Eagle", in seguito chiamato MV / 8000). È un'estensione a 32 bit di un'architettura precedente (Eclipse a 16 bit). Uno dei temi ruotanti sembra essere quello di non voler creare una macchina con un bit di modalità e che ci sono riusciti.

Tuttavia, lascia fuori il modo in cui questo è tecnicamente realizzato, e non si capisce nemmeno perché sia ​​stato così attraente creare una macchina senza un po 'di modalità. Il libro non è un libro tecnico, quindi potrebbe essere che i dettagli fossero in qualche modo distorti. Tuttavia, hai la sensazione di leggere quel libro che una soluzione "mode bit" era comune (e quindi fattibile) al momento, ma era ritenuta poco attraente dagli ingegneri forse per ragioni estetiche. Il libro fa anche sembrare un compito immensamente difficile creare un design senza un po 'di modalità, che è stato in qualche modo superato da questo particolare team.

Ho trovato questa descrizione di come è stato realizzato:

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

Sembra fondamentalmente di usare una parte inutilizzata dello spazio del codice operativo per le nuove istruzioni. Devo ammettere di essere rimasto un po 'deluso dal fatto che fosse "solo quello". Inoltre penso che questo lasci ancora alcune domande senza risposta:

Innanzitutto, come vivevano i processi a 16 bit nello spazio degli indirizzi a 32 bit? Perché penso che questa sia la sfida chiave nel realizzare un'estensione a 32 bit "senza un bit di modalità". L'estensione del set di istruzioni, d'altra parte, è un'impresa relativamente comune. Dal momento che non esiste una descrizione di come sia successo, si potrebbe presumere che il codice a 16 bit acceda semplicemente alla memoria come sempre, forse vede qualche tipo di vista virtualizzata / bancata della memoria (con i nuovi registri della CPU che controllano dove si trova il primo indirizzo) o qualcosa del genere. Ma non so se c'è di più. In quel caso si potrebbe sostenere che una sorta di "modalità bit" fosse una soluzione. I processi in modalità 16 bit potrebbero essere eseguiti in parallelo con gli altri processi in virtù delle funzioni speciali aggiunte alla CPU.

In secondo luogo, perché è stato così attraente creare una macchina senza un po 'di modalità? Molti dei vantaggi propagandati nel libro sono che i clienti volevano eseguire il vecchio software. Ma questo non sembra parlare contro un bit di modalità, poiché l'intero scopo dell'uso di un bit di modalità è di avere una retrocompatibilità. Quando AMD ha esteso x86 a 64 bit, almeno secondo la mia comprensione della parola "bit modalità" ciò che hanno fatto è stato esattamente quello di aggiungere un bit modalità. Un bit speciale che renderebbe la CPU in modalità 64 bit. E un altro bit che farebbe eseguire un processo in una "modalità secondaria" della modalità a 64 bit (per consentire la compatibilità con le applicazioni a 32 bit). L'essenza della sottomodalità è che la CPU interpreta il flusso di istruzioni come le vecchie istruzioni a 32 bit ma che gli accessi alla memoria a 32 bit effettuati vengono risolti utilizzando il nuovo formato di tabelle di pagine (impostato dal sistema operativo a 64 bit) e infine mappato all'intero spazio degli indirizzi fisici. Inoltre, il codice a 32 bit può essere preceduto dal codice a 64 bit. Come la soluzione Data General, anche questo ha permesso a un programma a 32 bit di funzionare con programmi a 64 bit (16 bit contro 32 bit nel caso DG). Quindi dal punto di vista del cliente non sembra esserci alcuna differenza. Quindi l'unico vantaggio potrebbe essere stato nell'implementazione, semplificando il design, ma il libro non sembra che questo sia il problema, dal momento che il bit della modalità sembrava essere comune anche a quel tempo (e sembra che le architetture successive abbiano anche impiegato come mostra il caso x64).

Sono sicuro che ci sia qualcosa che mi è sfuggito, quindi sarebbe bello se qualcuno potesse discutere di più sui dettagli tecnici e sulle virtù di questo design "no mode-bit".


In quei giorni - i giorni in cui si spostava la dimensione della parola comune da 16 bit a 32 bit - la maggior parte delle nuove architetture a 32 bit aveva insiemi di istruzioni completamente diversi dalla stessa linea a 16 bit del mfr - anche se potevano anche eseguire l'istruzione a 16 bit impostata con un "bit di modalità". Ciò ha portato all'incertezza del marketing poiché le persone che hanno aggiornato i progetti alle nuove macchine a 32 bit non hanno visto alcun motivo per rimanere con lo stesso mfr - fintanto che era una nuova architettura perché non scegliere il meglio delle nuove macchine da qualunque mfr. La mancanza di "bit di modalità" ha suggerito una transizione "incrementale" più semplice: pertanto, rimanere con DG.
davidbak,

Risposte:


8

La risposta è che Ed deCastro, Presidente della Data General Management, aveva istituito un team di ingegneri nella Carolina del Nord appositamente per progettare la CPU di prossima generazione. Ha assegnato il compito di supporto e miglioramenti incrementali a noi, il team del Massachusetts. Tre volte abbiamo proposto una nuova grande architettura, ogni volta con un bit di modalità molto sensibile, e l'abbiamo descritta come un modesto miglioramento incrementale. Ogni volta, Ed ha visto il nostro travestimento e ha respinto la proposta, aspettandosi che il team della Carolina del Nord riuscisse. Ed credeva che indipendentemente da come avessimo tentato di mascherare le nostre proposte, avrebbe saputo che sarebbe stata un'architettura di nuova generazione se avesse avuto un po 'di modalità. Quindi abbiamo dovuto proporre un'architettura di nuova generazione senza bit di modalità, anche se ciò la rendesse meno efficiente. È così che abbiamo superato Ed deCastro. Vedi L'anima di una nuova macchina,


Ciao Carl, grazie per l'informazione, sì, è anche la mia impressione (dalla lettura del libro) che la discussione sulla modalità-bit riguardasse molto le implicazioni politiche. Buono con informazioni privilegiate - sembra che l'MV / 8000 sia stato un progetto molto eccitante di cui far parte.
Morty,

6

216

Con un bit di modalità, il vecchio sistema operativo a 16 bit avrebbe dovuto essere modificato per capire se il programma era a 16 o 32 bit e quindi impostare il bit di modalità in modo appropriato prima di avviare il programma.

In pratica, sembra che l'MV / 8000 avesse effettivamente un bit di modalità. Altrove sulla pagina Web di Mark Smotherman a Clemson ha pubblicato i dati generali, ECLIPSE MV / 8000 Principles of Operation , 1980 . Se guardate nell'Appendice E (a partire da pagina 369) vedrete che l'MV / 8000 aveva due meccanismi di tabella delle pagine completamente diversi. La macchina specifica con cui MV / 8000 era retrocompatibile era la C / 350 e la C / 350 aveva una specifica unità di allocazione e protezione della memoria a 16 bit, con modalità specifiche di controllo di tale unità. Per operazioni da logico a fisico a 32 bit, invece, accendere l'unità di traduzione degli indirizzi (descritta nel capitolo 3, a partire da pagina 31.

In pratica, ciò significa che quando si esegue un'istruzione a 16 bit in modalità 32 bit, viene specificato che i 16 bit alti dell'indirizzo logico vengono impostati su 0. È necessario inoltre specificare alcune specifiche su ciò che accade all'high 16 bit di un indirizzo quando si esegue un'istruzione a 32 bit in modalità 16 bit, ma non sono riuscito a trovarlo durante la mia breve lettura del manuale.

Quindi è meno una questione se un bit di modalità sia o meno una cosa buona o cattiva. È più che non esisteva un motivo particolarmente valido per utilizzare un bit di modalità per distinguere tra istruzioni a 16 e 32 bit. Le istruzioni a 16 bit utilizzano 16 bit di indirizzo logico (con i 16 bit alti impostati su 0) e i registri a 16 bit e le istruzioni a 32 bit utilizzano 32 bit di indirizzo logico e registri a 32 bit. Il vecchio sistema operativo "funziona" sul nuovo computer, ma puoi anche provare le nuove istruzioni eseguendo un nuovo programma con il vecchio sistema operativo.


Ciao OK, questo rende più chiaro l'obiettivo con "nessun bit di modalità", quindi l'obiettivo era quello di poter avviare l'originale a 16 bit o / s, ma comunque avviare un programma a 32 bit da lì. Tuttavia, come dici tu, sarebbe impossibile usare lo spazio degli indirizzi logici a 32 bit da programmi a 32 bit in esecuzione in quella modalità. In un certo senso è simile a quello che Intel ha fatto con la transizione da 16 bit a 32 bit. Qui è stato anche possibile eseguire istruzioni a 32 bit (accedendo alla parte superiore dei registri) da un programma a 16 bit (eseguito, ad esempio, con MS-DOS). Tuttavia, allo stesso tempo avevano ...
Morty il

... bit di modalità per accedere alla modalità "vera" a 32 bit protetta (che ha anche consentito il paging). Una differenza è che nella modalità a 32 bit la codifica delle istruzioni a 32 bit è diversa dalla codifica delle istruzioni a 32 bit nella modalità a 16 bit (poiché il "valore predefinito" è diverso), ma la funzionalità è la stessa. D'altra parte, con la transizione x86 a 64 bit la codifica delle istruzioni è stata completamente modificata, quindi un programma a 32 bit (o un programma a 16 bit) non può utilizzare i registri a 64 bit ecc. Richiede un aggiornamento o / s che avvia il processo in modalità 64 bit ("Modalità lunga").
Morty

Tuttavia, si potrebbe ancora mettere in discussione il merito di sottolineare questo progetto "no mode bit" poiché in primo luogo esiste un bit mode, e sembra essere molto un caso angolare ("Esecuzione di vecchio sistema operativo e nuova applicazione") in cui offre qualsiasi beneficio: la maggior parte dei clienti non vorrebbe eseguire il nuovo sistema operativo che può sfruttare appieno l'hardware? La caratteristica importante qui è che il nuovo sistema operativo può eseguire le vecchie app! Ma dato che il link che ho inviato menziona, questo non è nemmeno possibile, i programmi richiedono il ricollegamento e persino la ricompilazione (a causa di cambiamenti negli o / s) che rendono la CPU compatibile. aspetto discutibile!
Morty
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.