Architettura di un microprocessore CISC Ha istruzioni in grado di eseguire operazioni complesse come la lettura di un dato in memoria, la sua modifica e il suo salvataggio direttamente in memoria tramite una singola istruzione. A vantaggio delle architetture CISC c'è la riduzione del divario esistente fra il linguaggio macchina e il linguaggio ad alto livello. In alcuni casi si possono avere istruzioni addirittura più potenti di quelle esprimibili in linguaggio ad alto livello (C, C++, Pascal, ecc.) Spesso le CPU CISC sono microprogrammate, cioè la fase di decodifica dell'istruzione nella CPU avviene attraverso un programma che risiede nella CPU stessa. Es: VAX, la famiglia Motorola 68000, l'architettura x86 di Intel ed AMD. Esistono due tipi di architettura per un microprocessore rispetto il tipo delle sue istruzioni assembly: CISC (Complex Computer) RISC (Reduced Computer) Università degli studi di Trieste CdL Ingegneria Industriale Instruction Set Instruction Set Fondamenti di informatica A.A. 2012/13 Docente: Ing. Daniele Bassi Università degli studi di Trieste CdL Ingegneria Industriale Docente: Ing. Daniele Bassi Pipeline RISC Ha un set di istruzioni in grado di eseguire operazioni semplici che possono essere eseguite in tempi simili. Le istruzioni mancanti sono quelle statisticamente meno utilizzate (emulate via software). Ha il grande vantaggio della velocità ma il suo principale svantaggio è l'occupazione di memoria da parte del codice. Essendo presenti solo istruzioni relativamente semplici il codice scritto per macchine RISC tende ad essere più grande del codice scritto per macchine CISC. L'idea che migliorò maggiormente le prestazioni fu sicuramente quella che portò allo sviluppo delle pipeline. Università degli studi di Trieste CdL Ingegneria Industriale Fondamenti di informatica A.A. 2012/13 Fondamenti di informatica A.A. 2012/13 Docente: Ing. Daniele Bassi Un normale processore preleva un'istruzione, la decodifica, carica gli operandi, esegue l'operazione vera e propria e salva il risultato in modo sequenziale prima di eseguire la prossima. In una pipeline l'istruzione viene divisa in sotto-operazioni che vengono svolte in modo sequenziale dalle sue unità funzionali, ma in parallelo rispetto all’istruzioni successive. Fetch Decode Operand Fetch Execute Fasi per istruzione fasi E OF D F fasi Senza pipeline I2 I1 Università degli studi di Trieste CdL Ingegneria Industriale OF D F I1 I2 I1 I1 E I2 I1 Con pipeline I2 I1 I1 I1 I2 I2 I2 I2 t Fondamenti di informatica A.A. 2012/13 t Docente: Ing. Daniele Bassi Processori superscalari Un'altra strategia per incrementare le prestazioni prevedeva la creazione di più unità funzionali che lavorassero in parallelo. Per esempio un processore con due unità aritmetiche può lavorare in parallelo su sue istruzioni di somma raddoppiando le prestazioni. Questa replicazione delle unità funzionali combinate con le pipeline portarono alla realizzazione di processori superscalari in grado di eseguire più di un'operazione per ciclo di clock. I processori di nuova generazione adottano questa tecnologia (es: Intel Pentium) Università degli studi di Trieste CdL Ingegneria Industriale Fondamenti di informatica A.A. 2012/13 Docente: Ing. Daniele Bassi