- Architetture del processore
- Architettura del set di istruzioni RISC e CISC
- Computing set di istruzioni complesse (CISC)
- Set di istruzioni ridotto (RISC)
Il sistema integrato è il cuore e il cuore della maggior parte dei prodotti elettronici disponibili sul mercato. È l'implementazione dell'ingegneria in cui l'hardware incontra il software. Siamo circondati da un mondo di sistemi embedded, con mini-computer in serrature biometriche, aeroplani, automobili, pacemaker, ecc. Queste risorse limitate, sistemi piccoli, intelligenti e potenti ci aiutano nelle nostre attività quotidiane.
Hai mai pensato a come funziona il nostro corpo, il sistema nervoso, il cervello e la capacità di svolgere più compiti. Se combini tutte queste funzioni, otterrai un'immagine approssimativa di un sistema biologico incorporato. Il nostro cervello nasconde il complesso dettaglio del suo funzionamento che si svolge al suo interno ma ci permette tuttavia di controllarlo al massimo potenziale. La stessa complessità vale per il processore o il controller utilizzato nei sistemi embedded. Nascondono dettagli complessi e ci forniscono un'interfaccia di alto livello su cui lavorare. Per il livello di astrazione, si può mettere in relazione il modo in cui il codice per l'aggiunta di due numeri in un linguaggio di programmazione di alto livello fa sì che i registri nei chip gestiscano i bit e restituiscano un output all'utente.
Architetture del processore
L'unità di elaborazione centrale, riferita sia al microprocessore che al microcontrollore, svolge compiti specifici con l'ausilio di un'unità di controllo (CU) e di un'unità logica aritmetica (ALU). Poiché le istruzioni vengono fornite dalla RAM, la CPU agisce con l'aiuto delle sue due unità di aiuto creando variabili e assegnando loro valori e memoria. È molto importante sapere come la CPU esegue tutta questa azione con l'aiuto della sua architettura. Se vuoi saperne di più su come funziona un microcontrollore, puoi leggere questo articolo di base del microcontrollore.
Ad ogni CPU è associata una memoria per memorizzare il programma e i dati. Programma e dati lavorano con la CPU per ottenere l'output. Il programma fornisce le istruzioni mentre i dati forniscono le informazioni su cui lavorare. Per accedere al programma e ai dati la CPU utilizza dei bus, questi bus sono dei fili, più precisamente queste sono le tracce dei fili come potresti aver visto sui circuiti stampati. In questi anni microcontrollori e microprocessori si sono evoluti adattando varie architetture, in base alle esigenze applicative o progettuali la scelta del microcontrollore è influenzata dal tipo di architettura in esso utilizzata. Diamo uno sguardo alle architetture popolari.
Architettura Von-Neumann / Princeton
Il modo in cui la CPU ha accesso al programma e ai dati, racconta l'architettura della CPU. In precedenza veniva utilizzato un singolo bus per ottenere l'accesso al programma e ai dati. Questo tipo di architettura è noto come Von Neumann Architecture o più semplicemente Princeton Architecture. Un unico bus per ottenere il codice e i dati significa che vengono a intralciarsi a vicenda e rallentare la velocità di elaborazione della CPU perché ognuno ha dovuto aspettare che l'altro finisse il recupero. Questa limitazione è anche nota come condizione del collo di bottiglia di Von-Neumann.
Architettura di Harvard
Per accelerare il processo è stata proposta Harvard Architecture. In questa architettura sono presenti bus dati separati per dati e programma. Quindi significa che questa architettura proponeva l'uso di quattro autobus
- Un insieme di bus dati che trasporta i dati dentro e fuori la CPU.
- Un set di bus indirizzi per l'accesso ai dati.
- Un set di bus dati per trasportare il codice nella CPU.
- Un bus indirizzi per l'accesso al codice.
L'uso di bus di indirizzi e bus dati separati ha comportato un tempo di esecuzione ridotto per la CPU, ma ciò ha un costo della complessità nella progettazione dell'architettura. L'architettura di Von Neumann può sembrare un po 'pigra ma ha il vantaggio del suo design semplice.
L'architettura di Harvard è molto facile da implementare quando la CPU e le unità di memoria condividono lo stesso spazio o la RAM e la ROM sono integrate (su chip) con l'unità di elaborazione, come nel microcontrollore dove le distanze sono in micron e millimetri. Tuttavia, la stessa architettura è difficile da implementare quando la memoria che contiene il codice è esterna all'unità di elaborazione come quella dei PC IBM x86. Una serie di tracce di cavi separate sia per i dati che per l'indirizzo sulla scheda madre renderebbe la scheda complessa e costosa. Comprendiamolo con un esempio di processore.
Un processore con bus dati a 64 bit e bus indirizzi a 32 bit richiederebbe circa 100 bus (96 per i dati e il bus indirizzi e pochi altri per i segnali di controllo) per l'implementazione dell'architettura Von-Neumann. La stessa struttura se implementata con l'architettura di Harvard costerebbe circa 200 tracce a doppio filo con un gran numero di pin in uscita dal processore. È per lo stesso motivo per cui non vediamo la pura architettura Harvard implementata per PC e workstation. Viene invece utilizzata un'architettura di Harvard modificata in cui la gerarchia della memoria con memoria cache della CPU viene utilizzata per separare il programma ei dati. La gerarchia della memoria separa la memoria in base alla gerarchia del tempo di risposta dei processi.
Architettura del set di istruzioni
Poiché il programma (codice) viene caricato nella memoria del sistema (RAM) viene recuperato dalla CPU (riferendosi sia al microprocessore che al microcontrollore) per agire sui dati, è molto simile alle istruzioni che diamo quando addestriamo il cane per determinate azioni e comandi. Quando queste istruzioni vengono eseguite su alcuni transistor, per far sì che ciò accada, passa da un livello logico all'altro. Quindi fondamentalmente con l'aiuto delle istruzioni il programmatore umano comunica con il processore. Ogni CPU ha il proprio set di istruzioni, una raccolta di istruzioni basate sulla sua architettura e capacità.
La CPU comprende queste istruzioni nella combinazione di 0 e 1, noti anche come codice operativo. Per un programmatore umano, è davvero difficile ricordare la combinazione di 0 e 1 per ogni istruzione associata alla CPU. Per mantenere facile il lavoro di un programmatore umano, ci vengono fornite interfacce di alto livello di queste istruzioni e il compilatore le converte sotto forma di 0 e 1 per la sua elaborazione. Anche nel set di istruzioni di ogni CPU, ha un numero limitato di istruzioni che può comprendere.
Prestazioni della CPU
Potresti aver sentito il termine frequenza di clock della CPU in relazione alle prestazioni della CPU. Le CPU generalmente hanno una frequenza di clock in MHz (Mega-Hertz) o GHz (Giga-Hertz) come una frequenza di 25 GHz. Il numero associato alla frequenza di clock indica quante volte l'orologio all'interno della CPU scatta in cicli al secondo. La praticità della frequenza di clock può essere compresa dal fatto che le istruzioni vengono eseguite sulla base di cicli di clock della CPU che è proporzionale al numero di programmi che la CPU può eseguire alla volta.
Le prestazioni della CPU dipendono dal numero di istruzioni scritte nel programma, più le istruzioni, più il tempo impiegato dalla CPU per eseguirle. Dipende anche dal numero di cicli di clock in cui viene eseguita ciascuna istruzione, alcune istruzioni richiedono più cicli di clock per essere eseguite rispetto ad altre, quindi ritardano le prestazioni della CPU. Le istruzioni in un programma e i cicli richiesti per eseguire ciascuna istruzione sono inversamente proporzionali tra loro. Cambiarne uno influirà sull'altro. Questo è il punto in cui è diviso il settore della CPU.
Architettura del set di istruzioni RISC e CISC
Come detto sopra, l'esecuzione di un programma e le prestazioni della CPU dipendono dal numero di istruzioni in un programma in cui le istruzioni sono proposte a quella particolare CPU come parte del set di istruzioni e il secondo fattore è il numero di cicli di clock in quale ogni istruzione viene eseguita. Sulla base di questi due fattori sono attualmente disponibili due set di istruzioni. Il primo dei quali è Complex Instruction Set Computing (CISC) mentre l'altro è Reduced Instruction Set Computing (RISC). Discutiamo in dettaglio ciascuna di queste architetture per comprendere la differenza tra RIC e CISC Architecture.
Computing set di istruzioni complesse (CISC)
CISC è l'acronimo di Complex Instruction Set Computing. Il motivo principale di CISC è ridurre il numero di istruzioni che un programma esegue, questo viene fatto combinando molte semplici istruzioni come modalità indirizzo, caricamento, ecc. E per formare un'unica istruzione complessa. L' istruzione CISC include una serie di istruzioni semplici e alcune istruzioni speciali che richiedono più di un ciclo di clock per essere eseguite. Le istruzioni CISC possono lavorare direttamente sulla memoria senza l'intervento di registri, il che significa che elimina la necessità di alcune istruzioni di base come il caricamento dei valori e il requisito di memoria (RAM). Le istruzioni CISC enfatizzano più sull'hardware che sul software, il che significa che invece di caricare i compilatori,CISC utilizza i transistor come hardware per decodificare e implementare le istruzioni. Tuttavia, poiché l'istruzione è complessa e si compone di più passaggi, vengono eseguite in più cicli di clock.
Una semplice analogia da riferire è quando ti viene detto di aprire il libro e leggere la seconda pagina del 3 ° capitolo. In questa serie di attività, esegui più passaggi come trovare il libro dalla borsa piuttosto che mescolare la pagina al capitolo 3 e poi andare alla seconda pagina del capitolo e poi iniziare a leggere. La serie di un passo se combinata in un'unica istruzione di lettura a pagina 44 (che è il 2 ° numero di pagina del 3 ° capitolo), otteniamo un'istruzione CISC.
Set di istruzioni ridotto (RISC)
Il primo chip integrato è stato progettato da Jack Kilby nel 1958 che era un oscillatore e nel 1970 il primo microprocessore commerciale è uscito da Intel. Sebbene all'inizio dei processori non ci fosse CISC. Ma con le pesanti richieste di elaborazione, l'architettura CISC stava diventando più complessa e difficile da gestire. Una riprogettazione totale dell'architettura CISC nota come RISC è uscita da IBM da John Coke. Quindi per differenziare tra le due architetture sono stati introdotti i termini RISC e CISC.
RISC è sinonimo di elaborazione del set di istruzioni ridotto. Il motivo principale del RISC era introdurre l'uniformità nella dimensione e nell'esecuzione delle istruzioni. Ciò è stato fatto introducendo un semplice set di istruzioni che potrebbe essere eseguito come un'istruzione per ciclo, questo viene fatto spezzando istruzioni complesse come il caricamento e la memorizzazione in istruzioni diverse, dove ogni istruzione richiede approssimativamente un ciclo di clock per essere eseguita. L' architettura RISC include semplici istruzioni della stessa dimensione che potrebbero essere eseguite in un singolo ciclo di clock. Le macchine basate su RISC hanno bisogno di più RAM di CISC per contenere i valori mentre carica ogni istruzione nei registri. L'esecuzione di una singola istruzione per ciclo offre alle macchine basate su RISC il vantaggio del pipelining(il pipelining è il processo in cui viene caricata l'istruzione successiva prima che venga eseguita la prima istruzione, questo aumenta l'efficienza dell'esecuzione). L'architettura RISC sottolinea