Introduzione: La continuità dell'architettura CISC

L'architettura Complessi Istruzione Set Computing (CISC) ha plasmato la fondazione del moderno computing per oltre cinque decenni. Dai mainframe delle dimensioni delle camere degli anni '70 ai dispositivi tascabili di oggi, i set di istruzioni CISC si sono evoluti continuamente per soddisfare le esigenze di software e ambienti hardware sempre più complessi. Capire la storia e l'evoluzione del CISC è essenziale per chiunque lavori in architettura informatica, programmazione dei sistemi o progettazione hardware.

La premise principale di CISC è elegante: progettare un processore che può eseguire operazioni complesse e multi-step con singole istruzioni, riducendo così il divario semantico tra linguaggi di programmazione di alto livello e codice macchina. Questo approccio ha promesso compilatori più semplici, dimensioni di programma più piccole, e l'uso più efficiente della memoria in un momento in cui sia la memoria e lo storage erano enormemente costosi.

Le origini del CISC negli anni '70: Mainframes e la nascita delle istruzioni complesse

I semi di architettura CISC sono stati piantati alla fine degli anni '60 e all'inizio degli anni '70, un periodo in cui il costo della memoria era astronomico dagli standard moderni. I progettisti di computer hanno cercato di massimizzare la quantità di lavoro compiuto per istruzione, perché ogni fetch di istruzione ha consumato cicli di memoria preziosi.

Il termine "CISC" non esisteva fino alla fine degli anni '70, quando i ricercatori dell'IBM e della Stanford University cominciarono a contrastarlo con la filosofia RISC emergente. Prima di questo, tutti i processori erano semplicemente "processori". L'approccio architettonico che in seguito sarebbe stato etichettato CISC era guidato da diversi vincoli pratici: banda di memoria limitata, l'alto costo di chip di memoria, e il desiderio di rendere la programmazione di linguaggio di montaggio più produttivo.

A metà degli anni '70, le aziende come Digital Equipment Corporation (DEC) con il suo VAX-11/780 e Intel con il suo processore 8086, stavano spingendo ulteriormente i principi CISC. L'architettura VAX, in particolare, divenne un esempio di testo di CISC, con oltre 300 istruzioni e 16 modalità di indirizzamento.

Caratteristiche chiave dei primi processori CISC

  • I set di istruzioni grandi:[ I chip CISC primi spesso contenevano centinaia di istruzioni distinte, molte delle quali hanno eseguito operazioni altamente specializzate.
  • Lunghezze di istruzioni variabili:[ Le istruzioni potrebbero spaziare da un byte a diverse dozzine di byte, permettendo una codifica flessibile ma complicando la decodifica.
  • Moltiple modalità di indirizzamento:[ I processori supportavano numerosi modi per specificare gli operandi, tra cui registrarsi direttamente, indiretto la memoria, indicizzato e modalità di spostamento base.
  • Codice compatto[[]: La logica di controllo è stata implementata utilizzando microcodice, uno strato di istruzioni a basso livello che ha tradotto ogni istruzione della macchina in segnali di controllo hardware.
  • Operazioni di memoria:[ Molte istruzioni CISC primitive potrebbero operare direttamente sui memoria senza richiedere registri per lo stoccaggio intermedio.

Queste caratteristiche hanno reso i primi processori CISC eccezionalmente flessibili per programmatori e compilatori. Tuttavia, la complessità di decodifica delle istruzioni di lunghezza variabile e l'esecuzione di operazioni microcodificate ha significato che questi processori tipicamente hanno funzionato a velocità di clock più lente e ha richiesto più area di silicio rispetto ai disegni più semplici.

Il Rise of CISC: Intel 8086 e la Legacy x86

L'evento più conseguente nella storia del CISC è stato l'introduzione del [Intel 8086[] nel 1978. L'8086 era un processore a 16 bit con un bus di indirizzi a 20 bit, permettendogli di affrontare fino a 1 MB di memoria.

La decisione di IBM nel 1981 di utilizzare l'Intel 8088 (una versione più economica e a 8 bit dell'8086) nel suo originale IBM Personal Computer ha effettivamente unto x86 come standard per l'architettura del PC. Ogni generazione successiva di processori Intel, da 80286 e 80386 alle famiglie Pentium, Core e Xeon forzato, ha mantenuto la compatibilità arretrata con l'originale set di istruzioni 8086.

L'80386, rilasciato nel 1985, è stato un chip di riferimento che ha introdotto l'elaborazione a 32 bit alla linea x86. Ha anche portato la memoria paging, modalità protetta e modalità virtuale 8086, capacità che ha posato le basi per i moderni sistemi operativi come Linux e Windows NT. Il set di istruzioni del processore di 80386 è stato sostanzialmente ampliato dal 8086, aggiungendo nuove istruzioni generali, operazioni di stringa e comandi a livello di sistema.

Il CISC vs. RISC Discussione: Il Grande Schismo Architettonico

A metà degli anni '80, uno scisma filosofico era emerso nella ricerca di architettura informatica. Da un lato si trovava l'istituzione CISC, guidata da Intel, Motorola e National Semiconductor. Dall'altro lato si trovava una nuova generazione di architetti che litigavano per i processori più semplici e veloci. Questo movimento, soprannominato RISC (Reduced Istruzione Set Computing), è stato sostenuto da ricercatori di UC Berkeley e Stanford University.

Le principali argomentazioni del campo RISC erano potenti:

  • Le istruzioni semplificanti decodificano più velocemente[, consentendo velocità di clock più elevate.
  • Istruzioni di lunghezza filettata[[] semplificare la tubatura, permettendo a più istruzioni di eseguire contemporaneamente.
  • Architetture di deposito[], dove solo caricare e memorizzare le istruzioni di accesso alla memoria, rendere più facile ottimizzare l'utilizzo del registro e ridurre le bancarelle di pipeline.
  • I grandi file di registro[[]] riducono il numero di accessi alla memoria, migliorando le prestazioni.
  • L'ottimizzazione del computer[] può spesso ottenere risultati migliori con istruzioni più semplici che con istruzioni complesse microcodificate.

Le stazioni di lavoro di Sun (SPARC), Silicon Graphics (MIPS), e IBM (POWER) hanno dimostrato i vantaggi di prestazioni di RISC. All'inizio degli anni '90, i chip RISC sono stati in esecuzione a velocità di clock più elevate e hanno fornito prestazioni di livello superiore e variabile rispetto ai processori CISC contemporanei. Molti osservatori del settore hanno previsto l'eventuale dismissione di CISC.

La risposta di CISC non era di abbandonare il suo set di istruzioni, ma di adottare le tecniche di RISC all'interno. Intel 80486, rilasciato nel 1989, ha incorporato un pipeline a cinque stadi, la cache di on-chip e un motore di microcodice più efficiente. Il Pentium, lanciato nel 1993, ha aggiunto un'architettura superscalare che potrebbe eseguire due istruzioni per ciclo di orologio.

Il CISC Renaissance: Micro-Ops, Pipelining e Esecuzione Out-of-Order

La tecnica di traduzione micro-op di Pentium Pro è stata un'innovazione trasformativa. I processori moderni x86 di Intel e AMD decodificano ogni istruzione x86 complessa in una o più semplici, micro-operazioni fisse. Queste micro-op vengono poi spedite attraverso un motore di esecuzione profondamente conduttivo e superscalare che supporta l'esecuzione fuori-ordinata, il rinominazione dei registri e l'esecuzione speculativa.

Questa filosofia progettuale raggiunse il suo zenith con i suoi successori ]Intel Core microarchitettura[ (2006) e i suoi successori.

  • Esecuzione fuori ordine:[] Il processore potrebbe prendere, decodificare ed eseguire fino a quattro istruzioni per ciclo, riordinandoli per massimizzare l'utilizzo delle tubazioni.
  • Macro-fusion e micro-fusione:[ Adjacent x86 istruzioni potrebbero essere combinate in un unico micro-op, migliorando la larghezza di banda di decodifica.
  • Previsione avanzata del ramo:[ Previsioni multilivello e buffer di stack di ritorno hanno ridotto la pena di imprevedizioni del ramo, un fattore critico nei processori condotti.
  • Stati di sonno efficienti dal punto di vista energetico:[ La tensione dinamica e la scalabilità della frequenza hanno permesso al processore di ridurre il consumo energetico quando la domanda era bassa.

Le architetture K8 e K10 concorrenti di AMD, e poi la serie [Ryzen/Zen[], perseguirono strategie simili. L'architettura Zen, introdotta nel 2017, presentava una microarchitettura completamente ridisegnata con un enorme cache di istruzioni RISKB L1, una cache micro-op, quattro ALU e supporto per il multithreading simultanea (SMT).

Tecniche chiave nell'attuazione moderna CISC

  • Traduzione di micro-operazione:[ Le istruzioni complesse x86 sono decomposte in micro-ops più semplici, fisse che possono essere programmate fuori ordine.
  • Micro-op cache:[ Le micro-ops usate frequentemente vengono memorizzate nella cache, saltando la fase di decodifica e riducendo il consumo di energia.
  • Esecuzione di ordine:[] Le istruzioni (micro-ops) vengono eseguite in ordine del flusso di dati piuttosto che nell'ordine del programma, migliorando l'utilizzo delle unità di esecuzione.
  • Rinominamento del registro:[ Il grande insieme di registro architetto di x86 è mappato su una piscina molto più grande di registri fisici, eliminando false dipendenze.
  • Esecuzione speculativa:[] Il processore predispone i risultati delle branche ed esegue le istruzioni in anticipo, ripiegando le imprevedizioni.
  • Multithreading simultaneo (SMT): I thread hardware multipli condividono le risorse di esecuzione, migliorando il throughput senza duplicare l'intero core.

Queste tecniche permettono ai moderni processori x86 di ottenere un parallelismo a livello di istruzione che rivali o superi quello dei progetti RISC, mantenendo la piena compatibilità all'indietro. Il risultato è un processore che può eseguire un software pluridecennale a velocità di blazing, supportando anche carichi di lavoro moderni come virtualizzazione, crittografia e inferenza di apprendimento automatico.

CISC moderno: x86-64, Virtualizzazione e estensioni di sicurezza

L'estensione a 64 bit all'architettura x86, nota come AMD64] (più tardi adottata da Intel 64 o x86-64), è stata introdotta da AMD con il processore Opteron nel 2003. Questa estensione ha aggiunto i registri generali a 64 bit, ha ampliato lo spazio di indirizzo virtuale a 48 bit (e alla fine 57 bit con la paging a 5 livelli), e ha introdotto un nuovo insieme di legacy

Il supporto di virtualizzazione era un altro importante passo avanti nell'evoluzione del CISC. Intel VT-x (Vanderpool) tecnologia, introdotto nel 2005, la virtualizzazione addizionale assistita dall'hardware all'architettura x86.

Le estensioni di sicurezza sono diventate anche una caratteristica di definizione dei moderni processori CISC. Intel SGX] (Software Guard Extensions) e TDX (Trusted Domain Extensions), insieme con AMD's SEV [Secuzione di configurazione]

Implementazione di sistemi di calcolo di tipo digitale (AMD) AVX-512[FLT:]] (Advanced Vector Extensions) e AMD's AVX2 Accelerazione e futuro AVX-512

Attuazioni CISC contemporanee: Intel Core e AMD Ryzen

A partire dalla metà degli anni 20, le due famiglie dominanti dei processori CISC sono Intel Core (ora nella sua 14a generazione) e AMD Ryzen[ (basata sulle microarchitetture Zen 4 e Zen 5). Entrambi rappresentano il culmine di decenni di evoluzione CISC, combinando le istruzioni massive con le microarchite.

L'ultimo processore di Intel ]Core Ultra] (Meteor Lake and Successer) utilizza un disegno basato su piastrelle che separa la computazione, la grafica e I/O in chip distinti.

AMD Ryzen 7000 e 8000 processori della cache, costruiti sulla microarchitettura Zen 4, dispongono fino a 16 core (32 threads) nella piattaforma desktop mainstream. L'architettura Zen 4 ha aumentato la cache L2 per core a 1 MB, ha migliorato il predittore di branch e ha aggiunto il supporto per le istruzioni AVX-512.

Entrambe le aziende continuano ad investire fortemente in architetture chiplet[], che permettono loro di combinare più piccoli stampi in un unico pacchetto. Questo approccio migliora i rendimenti di produzione, riduce i costi e consente configurazioni di prodotto flessibili. La tendenza del chiplet rappresenta un cambiamento fondamentale nel design del processore, allontanandosi dai dies monolitici verso sistemi modulari e basati su interconnessione.

Il futuro del CISC: architetture ibride e acceleratori specializzati

L'evoluzione del CISC è tutt'altro che completa, diverse tendenze stanno plasmando il futuro del set di istruzioni design:

  • Acceleratori specifici per il dominio:[ I processori CISC moderni integrano sempre più blocchi hardware specializzati per AI, crittografia, codifica dei media e networking. Questi acceleratori sono tipicamente controllati tramite nuove istruzioni aggiunte all'ISA, estendendo la tradizione CISC di incorporare complesse operazioni nel set di istruzioni.
  • Istruzioni mirate alla sicurezza:[] Nuove istruzioni per la registrazione della memoria, l'autenticazione dei puntatori e l'elaborazione riservata sono state aggiunte a x86-64, riflettendo la crescente importanza della sicurezza nei sistemi di calcolo.
  • Risma-V concorrenza:[] L'architettura open-source RISC-V set di istruzioni presenta una sfida a lungo termine al dominio di x86. Mentre RISC-V manca attualmente all'ecosistema e alle prestazioni di x86, la sua natura modulare e la governance-neutral stanno attirando gli investimenti da grandi aziende.
  • La compatibilità di backward come spada a doppio taglio:[ Il requisito di supportare decenni di istruzioni legacy impone una notevole complessità e costi di area di silicio. Tuttavia, l'eliminazione completa del supporto legacy rischia di rompere vaste quantità di software esistente. L'industria sta esplorando modi per semplificare il set di istruzioni mantenendo la compatibilità attraverso l'emulazione o la traduzione dinamica.
  • Hybrid computing:[ Continua l'integrazione degli elementi CISC e RISC. Alcuni progetti futuri possono adottare un approccio a due livelli: un nucleo simile a RISC per un'esecuzione ad alto rendimento, ad efficienza energetica, con un front end CISC che traduce le istruzioni legacy.

Una possibilità particolarmente intrigante è l'uso di traduzione binaria dinamica] per decouplare il set di istruzioni presentato al software dall'architettura interna nativa del processore.Questo è già comune nella virtualizzazione (ad esempio, QEMU) e in alcune implementazioni del processore (ad esempio, la modalità di compatibilità x86 di Itanium).

Conclusione: CISC, RISC e la Sfocatura dei Boundaries

Nato dai vincoli pratici del calcolo degli anni '70, le architetture CISC hanno dominato l'industria per decenni, hanno affrontato una sfida mortale da RISC negli anni '80 e '90, e poi si sono reinventati adottando tecniche simili a RISC internamente preservando la compatibilità all'indietro. Il risultato è un ecosistema maturo e altamente raffinato che continua a alimentare la maggior parte dei server, desktop e laptop in tutto il mondo.

I processori CISC di oggi, esemplificati dalle famiglie Ryzen di Intel Core e AMD, sono progetti ibridi che combinano la ricca semantica di un grande set di istruzioni con il modello di esecuzione a misura di pipeline di RISC. Lo strato di traduzione micro-op che collega questi due mondi è ora una caratteristica standard di tutti i processori x86 ad alte prestazioni.

Il confine tra CISC e RISC continuerà probabilmente a sfocare le architetture emergenti come RISC-V e ARM v9 incorporano istruzioni più complesse per compiti specializzati, mentre i progetti CISC stanno ottimizzando i loro core di esecuzione e aggiungendo più accelerazione hardware. Il dibattito a lungo termine tra CISC e RISC è stato risolto non dalla vittoria di un campo sull'altro, ma dalla convergenza del terreno sia verso un'architettura pragmatica.

Per ulteriori informazioni, il Intel Architecture Istruzioni Set Estensioni] documentazione fornisce dettagli autorevoli sulle moderne istruzioni x86, mentre AMD's Zen Microarchitecture[FLT: CI3] panoramica offre informazioni sull'implementazione CISC contemporanea.]] Impianto IIBM/360 archivio storico