Qual è l'effettiva differenza tra le architetture x86, ARM e MIPS?
Le differenze effettive tra le tre sono troppe per una risposta qui. La maggior parte di queste sottili differenze risiedono nel modo in cui la memoria è indirizzata, le eccezioni sono gestite, i rami sono eseguiti ecc. Ci sono anche molte sottili differenze che vanno oltre lo scopo di una breve risposta qui. Da un alto livello, però, posso pensare a queste:
- RISC vs CISC: Questa è la classica differenza tra ARM/MIPS e x86. RISC sta per Reduced Instruction Set Computer e CISC è Complete ISC. x86 è un processore CISC ed entrambi ARM/MIPS sono RISC. La filosofia dietro i processori CISC è che una singola istruzione può fare più cose; come aggiungere un numero immediato con un registro, memorizzare questo valore ad un indirizzo calcolato usando qualche altro registro e anche impostare flag aritmetici. I processori RISC d'altra parte avrebbero due istruzioni separate per questo; una per aggiungere due numeri e l'altra per memorizzare il risultato. Questo aumenta il numero di istruzioni ma rende le istruzioni più semplici. Il che mi porta al secondo punto.
- Power vs Performance: Le istruzioni più semplici tendono a consumare meno energia. I processori x86 sono tipicamente progettati per applicazioni ad alte prestazioni come i server, mentre i processori RISC sono usati in applicazioni mobili dove le prestazioni sono talvolta compromesse per una migliore efficienza energetica. Va notato comunque che queste linee si assottigliano ogni giorno. ARM ha aggiunto più complessità alle sue istruzioni per ottenere migliori prestazioni e Intel suddivide i suoi opcodes in micro-ops che sono simili a quelli di ARM per ottenere una migliore potenza. MIPS forse rimane l'ISA più semplice in circolazione ed è usata più pesantemente nelle applicazioni embedded dove è necessario un consumo energetico ultra basso.
- Sicurezza e virtualizzazione: Non sono sicuro di MIPS qui, ma ARM ha qualcosa chiamato TrustZone e Intel ha vPro. Entrambe queste caratteristiche mirano alla sicurezza dell'hardware. Sia ARM che Intel hanno il supporto per la virtualizzazione e la gestione della memoria, e differiscono solo nella loro implementazione. Queste sono caratteristiche piuttosto nuove che sono necessarie nelle applicazioni più recenti e quindi, entrambe le ISA hanno l'uno o l'altro sapore. Quindi vedete, le differenze si stanno riducendo.
Tutto sommato, le ISA contano solo dal punto di vista della programmazione in questo momento. L'ecosistema software mobile è molto meglio sviluppato e mantenuto per ARM che per x86. Il quadro si inverte quando si tratta di applicazioni desktop. Questa è la ragione principale per cui Intel sta lottando per entrare nel mercato mobile e ARM sta avendo difficoltà ad entrare nei server. In tutto questo, MIPS è lì da qualche parte insieme a Sparc, PowerPC ecc. usato in applicazioni piuttosto di nicchia.
Articoli simili
- Qual è la differenza tra processori ARM e x86?
- Qual è la differenza tra Intel x86 vs ARM Memory Management?
- C'è qualche differenza tra il sistema operativo Android che gira su un processore basato su ARM e uno basato su x86?
- La differenza tra i linguaggi assembly ARM e x86-64 è così grande? Quanto sarebbe facile imparare uno se si conosce già l'altro?