Table of Contents
Il cloud computing ha cambiato radicalmente il modo in cui le organizzazioni distribuiscono, scalano e gestiscono le risorse di calcolo. Invece di investire nei data center fisici, le imprese affittano infrastrutture virtualizzate su richiesta, beneficiano di elasticità e portata globale. Tuttavia, un significativo punto di attrito si pone quando legacy o software specializzato, costruito per il complesso di istruzioni Impostare i costi (CISC) architetture come la famiglia Intel x86, ha bisogno di funzionare in ambienti cloud che non forniscono in nativo quell'architettura esatta.
Comprendere le architetture CISC
CISC, o complesso di istruzioni Complessivamente Set Computing, è una filosofia di progettazione della CPU in cui un'unica istruzione può eseguire più operazioni a basso livello, come il caricamento dalla memoria, l'esecuzione di un'operazione aritmetica, e memorizzare il risultato - tutto all'interno di un'istruzione della macchina.
Il Rise of Cloud Computing e l'Imperativo dell'Emulazione
Le piattaforme di calcolo x sono costruite su massicci cluster di server standardizzati. Mentre la maggior parte delle istanze cloud oggi funzionano su processori x86 da Intel e AMD, un numero crescente di fornitori stanno introducendo alternative. AWS offre processori Graviton basati sull'architettura ARM; Google Cloud ha annunciato i processori Axion basati su ARM; e Azure fornisce le istanze basate su Ampere Altra ARM.
Nuvola: le sfide principali nell'emulare CISC
Prestazioni Overhead
Emulare un'istruzione complessa come l'X86 (che sposta un blocco di dati dalla memoria alla memoria, automaticamente decrementando i contatori) su un host ARM richiede di decomporlo in decine o addirittura centinaia di istruzioni ARM più semplici.
Compatibilità hardware
I provider di cloud che si pongono a standardizzare su specifiche generazioni di hardware e configurazioni. Emulare un ambiente x86 su un host non-x86, come un'istanza basata su ARM, richiede che l'emulatore riproduca esattamente il comportamento dell'hardware x86, incluso il modello di memoria, il comportamento della cache e le interfacce periferiche.
Utilizzo delle risorse
L'emulazione non è solo una tassa di CPU; consuma quantità significative di memoria e larghezza di banda I/O. Il traduttore binario dinamico mantiene una cache di traduzione dove i blocchi di codice x86 recentemente tradotti sono memorizzati per il riutilizzo. Questa cache può crescere a decine o centinaia di megabyte, in competizione con l'applicazione per le risorse di cache e memoria preziose. Inoltre, la complessità di x86 decodifica istruzione significa che l'emulatore stesso è un grande, complesso artefattore risorse software che
Problemi di ritardo
Le applicazioni in tempo reale e in ritardo sono particolarmente vulnerabili ai ritardi introdotti dall'emulazione CISC. Il processo di traduzione dinamico introduce la la latenza variabile: quando l'emulatore incontra una nuova sequenza di istruzioni x86 non ancora nella cache di traduzione, deve prendere una deviazione costosa per decodificare e tradurre prima che l'esecuzione possa procedere.
Preoccupazioni di sicurezza
Gli hostdown che utilizzano l'hostdown presentano una superficie di attacco aggiuntiva e potenziali vulnerabilità. Un bug nel traduttore binario dinamico può essere sfruttato per eseguire il codice arbitrario sul sistema host, rompendo l'isolamento su cui gli ambienti cloud si affidano. L'emulatore deve gestire le istruzioni privilegiate, la protezione della memoria e interrompere la gestione correttamente; qualsiasi difetto potrebbe consentire a un sistema operativo guest di sfuggire all'ambiente emulato e compromettere l'hypervisor o altri inquivalidi.
Set di istruzioni Complessità e Fidelità
Il comportamento x86 delle generazioni x86 è evoluto in 40 anni, accumulando un vasto catalogo di istruzioni, molte delle quali sono vagamente documentate o si affidano a comportamenti legacy. Gli emulatori devono riprodurre fedelmente questi casi di divisione per eseguire sistemi operativi e applicazioni in modo corretto.
Strategie per superare queste sfide
Virtualizzazione assistita
L'integrazione di software di gestione di ARM è un'opzione di gestione di software di gestione di messaggistica, ma anche di gestione di file di memoria, che consente di eseguire le funzioni di backup di ARM, che possono essere utilizzate in modo efficiente.
Ottimizzato Emulation and Binary Translation
Le tecniche di traduzione binaria avanzate di ALT, possono ridurre significativamente la penalità delle prestazioni. Gli emulatori moderni come QEMU, Rosetta 2 di Apple e gli strati di traduzione di AWS utilizzano passaggi di ottimizzazione sofisticati. Profilano il codice in esecuzione, identificano i percorsi caldi e ottimizzano il codice tradotto in modo aggressivo, inlineando le sequenze comuni e eliminando i controlli ridondanti.
Contenitore e MicroVM Isola
Con l'esecuzione dell'ambiente x86 emulato all'interno di un contenitore su un host ARM, il tempo di funzionamento del contenitore può ridurre al minimo il numero di chiamate di sistema e interrompere la gestione che deve essere tradotto. Firecracker, la tecnologia microVM utilizzata da AWS Lambda e Fargate, offre uno strato di virtualizzazione minimo più basso che riduce il tempo di avvio e il consumo di overhead
Architetture ibride e cluster multi-architettura
I gruppi di lavoro che si occupano di sistemi di calcolo, di sistemi di calcolo, di sistemi di controllo e di controllo, di sistemi di controllo e di controllo, di sistemi di controllo, di controllo e di controllo, di controllo e di controllo, di controllo e di controllo, di controllo e di controllo delle prestazioni, di controllo e di controllo.
Strumenti e servizi del fornitore di cloud
I principali provider di cloud hanno sviluppato strumenti proprietari per facilitare l'emulazione CISC. AWS offre il programma AWS Graviton Challenge] e fornisce documentazione per il porting delle applicazioni a ARM, inclusa la guida sull'utilizzo dell'emulazione di file di file di file di dati per le prestazioni astratti.
Applicazioni e casi di utilizzo reali
Nonostante le sfide, l'emulazione CISC nel cloud è attivamente utilizzata in diversi scenari. Applicazioni aziendali legacy, come SAP, Oracle Database, o sistemi basati su COBOL personalizzati, spesso richiedono ambienti x86 perché dipendono da codice compilato o librerie di terze parti che non sono disponibili per ARM.
Le direzioni future
In primo luogo, come ARM e RISC-V architetture ottenere più quota di mercato, la domanda di emulazione efficiente aumenterà, guida l'innovazione nella traduzione assistita hardware.
Conclusioni
Per una maggiore flessibilità di utilizzo del cloud, l'integrazione di un'infrastruttura di cloud, con la sua pluriennale esperienza, rende l'emulazione di un'istanza di sviluppo di soluzioni di cloud-based, ma è necessario che l'architettura sia più complessa e più flessibile.