Le prime istruzioni non sono necessariamente "eseguite in sequenza" anche su un ISA non VLIW, l'esecuzione deve solo apparire sequenziale. Un'implementazione superscalare in ordine può eseguire più di un'istruzione in parallelo con un'altra. Per fare ciò in modo efficace, l'hardware per le istruzioni di decodifica deve essere aumentato (ampliato), l'hardware deve essere aggiunto per garantire l'indipendenza dei dati delle istruzioni da eseguire in parallelo, le risorse di esecuzione devono essere aumentate e il numero di porte del file di registro è generalmente aumentato. Tutti questi aggiungono transistor.
Un'implementazione non ordinata, che consente l'esecuzione di istruzioni successive prima di quelle precedenti purché non vi siano dipendenze di dati, utilizza hardware aggiuntivo per gestire la pianificazione delle istruzioni non appena i dati diventano disponibili e aggiunge i registri di rinominazione e l'hardware per la mappatura, allocandoli e liberandoli (più transistor) per evitare rischi di scrittura dopo lettura e scrittura dopo scrittura. L'esecuzione fuori servizio consente al processore di evitare lo stallo.
Il riordino di carichi e archivi in un processore fuori servizio richiede che i depositi precedenti nell'ordine del programma inoltrino i risultati a carichi successivi dello stesso indirizzo. Ciò implica la logica di confronto degli indirizzi, nonché l'archiviazione per gli indirizzi (e le dimensioni) degli archivi (e l'archiviazione per i dati) fino a quando l'archivio non è stato assegnato alla memoria (la cache). (Per un ISA con un modello di consistenza della memoria meno debole, è anche necessario verificare che i carichi siano ordinati correttamente rispetto ai negozi di altri processori: più transistor.)
Il pipelining aggiunge un ulteriore controllo e sovraccarico del buffer e impedisce il riutilizzo della logica per le diverse parti della gestione delle istruzioni, ma consente alle diverse parti della gestione di un'istruzione di sovrapporsi in tempo per diverse istruzioni.
Pipelining ed esecuzione superscalare aumentano l'impatto dei rischi di controllo (es. Rami e salti condizionati). Il pipelining (e anche l'esecuzione fuori servizio) può ritardare la disponibilità del target anche di salti incondizionati, quindi l'aggiunta di hardware per prevedere i target (e la direzione per i rami condizionali) consente di recuperare le istruzioni per continuare senza attendere la parte di esecuzione del responsabile del trattamento per rendere disponibili i dati necessari. Predittori più precisi tendono a richiedere più transistor.
Per un processore fuori servizio, può essere desiderabile consentire l'esecuzione di un carico dalla memoria prima che gli indirizzi di tutti i negozi precedenti siano stati calcolati, quindi è necessario dell'hardware per gestire tale speculazione, incluso potenzialmente un predittore.
Le cache possono ridurre la latenza e aumentare la larghezza di banda degli accessi alla memoria, ma aggiungere transistor per archiviare i dati e archiviare i tag (e confrontare i tag con l'indirizzo richiesto). È inoltre necessario hardware aggiuntivo per implementare la politica di sostituzione. Il prefetching hardware aggiungerà più transistor.
L'implementazione della funzionalità nell'hardware piuttosto che nel software può aumentare le prestazioni (pur richiedendo più transistor). Ad esempio, gestione TLB, operazioni complesse come operazioni di moltiplicazione o in virgola mobile, operazioni specializzate come contare gli zeri iniziali. (L'aggiunta di istruzioni aumenta anche la complessità della decodifica delle istruzioni e in genere anche la complessità dell'esecuzione, ad esempio per controllare quali parti dell'hardware di esecuzione verranno utilizzate.)
Le operazioni SIMD / vettoriali aumentano la quantità di lavoro eseguito per istruzione, ma richiedono una maggiore memorizzazione dei dati (registri più ampi) e in genere utilizzano più risorse di esecuzione.
(Il multithreading speculativo potrebbe anche consentire a più processori di eseguire più rapidamente un singolo programma con thread. Ovviamente l'aggiunta di processori a un chip aumenterà il conteggio dei transistor.)
La disponibilità di più transistor può anche consentire agli architetti informatici di fornire un ISA con più registri visibili al software, riducendo potenzialmente la frequenza degli accessi alla memoria che tendono ad essere più lenti degli accessi ai registri e comportano un certo grado di riferimento indiretto (ad esempio, l'aggiunta di un offset allo stack puntatore) che aumenta la latenza.
L'integrazione - che aumenta il numero di transistor su un chip ma non nel sistema - riduce la latenza di comunicazione e aumenta la larghezza di banda, ovviamente consentendo un aumento delle prestazioni. (C'è anche una riduzione del consumo di energia che può essere tradotto in maggiori prestazioni.)
Anche a livello di esecuzione delle istruzioni, l'aggiunta di transistor può aumentare le prestazioni. Ad esempio, un sommatore di selezione carry aggiunge due bit superiori due volte in parallelo con diverse assunzioni del carry-in dai bit inferiori, selezionando la somma corretta dei bit superiori quando è disponibile la realizzazione dai bit inferiori, richiedendo ovviamente più transistor rispetto a un semplice ripple trasporta sommatore ma riduce il ritardo nella produzione della somma totale. Allo stesso modo un moltiplicatore con una singola riga di additivi carry-save utilizza meno transistor (ma è più lento) di un moltiplicatore di alberi Dadda (o Wallace) e non può essere pipeline (quindi dovrebbe essere replicato per consentire a un altro moltiplicatore di iniziare l'esecuzione mentre un precedente moltiplicare era in corso).
Quanto sopra può essere estenuante ma non esaustivo!