View Full Version : Processori e classificazione flynn
guylmaster
07-10-2009, 15:14
Studiavo le classificazioni di flynn riguardo alle architetture degli elaboratori
Quindi esse le possiamo descrivere in tre macrocategorie:
Sisd: Con un unico flusso di istruzioni ed un unico flusso dati:
SIMD: Flusso di istruzioni unico e flusso di dati multiplo, quindi possiamo dire che abbiamo un unica unità di controllo, che memorizza le istruzioni e più alu che ovviamente generano piu dati. Da cui flusso dati multiplo.
MIMD: doppio flusso di istruzioni e flusso dati multiplo, tant'è che possiam odire che sono composte da più cpu che lavorano in concomitanza;
Ora, se introduciamo il concetto di pipeline, che detto in maniera stringata e la risoluzione di più processi in contemporanea in modo da diminuire il numero di cicli necessari per svolgere un determinato compito non elementare, questa organizzzione è attribuibile a tutte le architetture sopra indicate? solo ad alcune?
Tra l'altro, i moderni pc quadricore, in che categoria rientrerebbero? cosa è inteso per core? e a questo punto gli i7 che sono multi core multithreading?
Grazie mille a tutti per la delucidazione :fagiano:
Speedy L\'originale
07-10-2009, 17:52
Scusa magari la franchezza, ma secondo me la fai troppo difficile, meglio vedere le cpu come si comportano realmente nel loro ambito d'utilizzo, lasciando un pò perdere tutte queste cose tecnico teoriche utili senz'altro, ma che potrebbero creare una grossa confusione.
Resto dell'idea che è meglio vedere le cpu x quanto rendono nel campo reale con i software con cui si intende usare quella cpu:
http://www.hwupgrade.it/articoli/cpu/2268/analisi-multithreaded-51-cpu-intel-e-amd-a-confronto_index.html
Si vede come vanno nell'ambito interessato, si vede quanto si può spendere e si sceglie, poi si chiede sul forum e si vede d'ascoltare gente altrettanto esperte cosa dici e fare le valutazioni del caso.
Secondo me la sua curiosità è puramente accademica, intendeva intavolare un discorso sulle architetture e non gli importa nulla dei bench dei processori attuali (che sono presumibilmente tutti dello stesso tipo).
Non sono espertissimo sulla questione, comunque posso accennare che MIMD indica istruzioni multiple (non "doppie") su dati multipli, difatti MIMD sta per Multiple Instruction Multiple Data. Le architetture superscalari sono quelle a pipeline multiple se non sbaglio e quindi di tipo MIMD. All'opposto quelle vliw, di tipo SIMD con un vettore di dati aggregati su cui è eseguita una singola istruzione.
Non dubito che le cose siano decisamente più complesse di come le ho illustrate. Anzi, sicuramente sono stato molto impreciso e troppo legato ai discorsi fatti finora riguardo alle gpu.
Qui sul forum trovi sicuramente utenti molto più istruiti di me riguardo l'architettura degli elaboratori, non sarebbe male vedere il loro intervento in questo topic.
guylmaster
07-10-2009, 21:37
Secondo me la sua curiosità è puramente accademica, intendeva intavolare un discorso sulle architetture e non gli importa nulla dei bench dei processori attuali (che sono presumibilmente tutti dello stesso tipo).
Non sono espertissimo sulla questione, comunque posso accennare che MIMD indica istruzioni multiple (non "doppie") su dati multipli, difatti MIMD sta per Multiple Instruction Multiple Data. Le architetture superscalari sono quelle a pipeline multiple se non sbaglio e quindi di tipo MIMD. All'opposto quelle vliw, di tipo SIMD con un vettore di dati aggregati su cui è eseguita una singola istruzione.
Non dubito che le cose siano decisamente più complesse di come le ho illustrate. Anzi, sicuramente sono stato molto impreciso e troppo legato ai discorsi fatti finora riguardo alle gpu.
Qui sul forum trovi sicuramente utenti molto più istruiti di me riguardo l'architettura degli elaboratori, non sarebbe male vedere il loro intervento in questo topic.
Si, quello che stavo leggendo è che comunque qualsiasi sia l'architettura adottata si parla di pipeline. Riguardo a multiple e non doppie chiedo venia, è stato solo un errore di battitura.
Il discorso comunque è un discorso accademico, e non potrebbe essere altrimenti proprio per quello che è stato già detto: Presumibilmente tutti gli attuali computer sono basati sulla stessa architettura.
Però stavo studiando di mio la cosa da un lato accademico e mi chiedevo, per curiosità nonchè completezza in quali di queste architetture si possono collocare gli attuali multicore, per di più i multicore con il multithreading.
Ad esempio un MIMD sottointende la presenza di più CPU mentre qui parliamo di più CORE non di più cpu. ALtrimenti si chiamerebbero 2 processori non 2 core.
Magari i core potrebbero essere intesi come più ALU?
Dumah Brazorf
07-10-2009, 22:53
I multicore sono MIMD multi cpu. Il fatto che condividano il package ed un livello di memoria in più (la cache) non li distingue dal punto della Tassonomia di Flynn da dei multiprocessore in quanto ogni core funziona per conto suo.
La pipeline penso rientri in tutti i tipi di sistemi tranne il SiSd che in pratica è la macchina di Von Neumann.
guylmaster
07-10-2009, 23:01
I multicore sono MIMD multi cpu. Il fatto che condividano il package ed un livello di memoria in più (la cache) non li distingue dal punto della Tassonomia di Flynn da dei multiprocessore in quanto ogni core funziona per conto suo.
La pipeline penso rientri in tutti i tipi di sistemi tranne il SiSd che in pratica è la macchina di Von Neumann.
Aspetta, per pakage che cosa intendi? cos'è? mi sa che mi sfugge la sua definizione.
Dumah Brazorf
08-10-2009, 08:58
Il package è il contenitore, il supporto che accoppia il core alla scheda madre, quello coi pin o le piazzole di contatto.
E' solo una questione di integrazione. Una volta la cache era esterna al processore, ora abbiamo più core con la cache, il memory controller e prossimamente anche la sezione video integrata.
Ciò che fa un sistema multiprocessore tale è lo spazio di indirizzamento della memoria unico per tutti i processori. Che sia UMA, NUMA, COMA, NUMA-Q lo spazio di indirizzamento è unico e condiviso mentre nei multicomputer ognuno ha la sua memoria e dialoga con gli altri tramite scambio di messaggi.
Un sistema multicore odierno perciò può essere visto nella Tassonomia di Flynn come multiprocessore UMA.
guylmaster
08-10-2009, 14:23
Il package è il contenitore, il supporto che accoppia il core alla scheda madre, quello coi pin o le piazzole di contatto.
E' solo una questione di integrazione. Una volta la cache era esterna al processore, ora abbiamo più core con la cache, il memory controller e prossimamente anche la sezione video integrata.
Ciò che fa un sistema multiprocessore tale è lo spazio di indirizzamento della memoria unico per tutti i processori. Che sia UMA, NUMA, COMA, NUMA-Q lo spazio di indirizzamento è unico e condiviso mentre nei multicomputer ognuno ha la sua memoria e dialoga con gli altri tramite scambio di messaggi.
Un sistema multicore odierno perciò può essere visto nella Tassonomia di Flynn come multiprocessore UMA.
Difatti studiando la Tassonomia di Flynn leggevo che i primi multiprocessore, appartenente quindi all'ultima categoria, quindi alla MIMD, erano tante CPU con 1 sola memoria (non dava una nomenclatura a questa memoria) tutto collegato tra un bus.
Quindi il multicore, ogni core è una CPU e sono tutte collegate tra loro e con una memoria in comune, detto in poche parole?
Leggevo che successivamente, per migliorare ancora di più la loro velocità avevano integrato, oltre ad una memoria comune, della memoria aggiuntiva propria per ogni cpu.
Quindi tutto questo discorso si può tradurre in cache condivisa e non condivisa tra le varie CPU che li distingue, grossomodo, tra avere un multicore ed avere, nella terminologia quotidiana, un pc a più processori?
Ma nello studio di queste architetture si diceva che questa cache comune era un bel rallentamento per le cpu, allora perchè gli attuali pc la hanno in comune ? è ancora "elevata la spesa" per poter fornire cache dedicata?
E quando si parla, nell'overclocking, dei vari processori "scoperchiati" per raffreddarli di più non fanno altro che rompere la parte superiore del package?
Infine, se si parla di multithreading degli I7 si potrebbe parlare di 4 processori, con una cache in comune, ma con ogni processore contenente "più ALU" in modo tale appunto di svolgere più processi per volta? Oppure questa implicazione è sbagliata?
Dumah Brazorf
08-10-2009, 15:19
Meglio se dai un'occhiata su wikipedia alla voce cache.
I processori hanno cache di livello 1, livello 2 e a volte anche livello 3.
Nei processori a più core ogni core ha una sua L1 e la L2 condivisa con gli altri core, o anche L1 e L2 personali e L3 condivisa. Più sotto della cache si esce dal package del processore e si va alla ram.
Un sistema multiprocessore ha più processori che possono benissimo essere multicore ma ancora non esistevano quando Flynn ha esplicato la sua tassonomia.
I processori scoperchiati sono defraudati del coperchio metallico posto a protezione del die della cpu. Se guardi una foto di un PIII o un Athlon XP capisci che montando maldestramente dissipatori da mezzo kilo o più c'è la possibilità di scheggiare il rettangolino di silicio centrale segando così qualche milione di transistor e ammazzando la cpu.
guylmaster
08-10-2009, 16:06
Meglio se dai un'occhiata su wikipedia alla voce cache.
I processori hanno cache di livello 1, livello 2 e a volte anche livello 3.
Nei processori a più core ogni core ha una sua L1 e la L2 condivisa con gli altri core, o anche L1 e L2 personali e L3 condivisa. Più sotto della cache si esce dal package del processore e si va alla ram.
Un sistema multiprocessore ha più processori che possono benissimo essere multicore ma ancora non esistevano quando Flynn ha esplicato la sua tassonomia.
I processori scoperchiati sono defraudati del coperchio metallico posto a protezione del die della cpu. Se guardi una foto di un PIII o un Athlon XP capisci che montando maldestramente dissipatori da mezzo kilo o più c'è la possibilità di scheggiare il rettangolino di silicio centrale segando così qualche milione di transistor e ammazzando la cpu.
Sinceramente non riesco a seguirti. Mi dici che un multicore sono più processori messi assieme (e a seconda del processore c'è una gestione diversa dei vari livelli della cache) e poi mi dici che un multiprocessore può inglobare più multicore. E' una definizione rindodante, così mi stai dicendo che un multicore è un processore di processore ed un multi processore sono più processori che possono essere a loro volta più processori di processori? Almeno questo se ne evince.
Vorrei fare chiarezza.
Ho un due core a 2ghz con x cache L1 e y cache L2 totali;
Poi ho due processori, 2ghz l'1, con x/2 cache L1 e Y/2 cache L2 per ognuno, pari alla fine al valore totale di cache del procesosre due core;
La differenza, ora, quale diventa? che il primo ha entrambi i processori in un solo package mentre l'altro no?
E poi avranno un bus di connessione tra loro che sarà più lungo nel primo caso (in quanto è esterno) e probabilmente non potranno avere cache in comune essendo due entità separate? (su quest'ultima affermazione probabilmente sbaglio)
(comunque sulla cache effettivamente mi ero confuso, infatti rivedendo le specifiche del mio processore q9550 quando dicono che ha 12 mb di cache L2 si riferiscono al valore totale, e cioè 3 mb di dache L2 per ogni core).
F1R3BL4D3
08-10-2009, 16:16
In un processore ci sono più core (multi core) e fin qui ci siamo. Pensa ad un sistema che oltre ad avere un processore con più core ha anche più processori che lavorano in parallelo.
Dumah Brazorf
08-10-2009, 16:27
Avere un biprocessore, o 4,8... nello spazio di uno solo non è più conveniente? :)
Pensa che i primi dual core di intel non erano altro che due die single core installati nello stesso package.
http://techreport.com/r.x/fx60-vs-955xe/presler-cedarmill-nocap.jpg
La cache può anche non essere condivisa eh, dipende dalle scelte dei progettisti (anzi mi sa che commercialmente sia la soluzione più usata). E' più complessa perchè deve saper switchare da un core all'altro, poi ci sono tutti i vari problemi di coerenza, mutua esclusione...
guylmaster
08-10-2009, 16:42
Avere un biprocessore, o 4,8... nello spazio di uno solo non è più conveniente? :)
Pensa che i primi dual core di intel non erano altro che due die single core installati nello stesso package.
http://techreport.com/r.x/fx60-vs-955xe/presler-cedarmill-nocap.jpg
La cache può anche non essere condivisa eh, dipende dalle scelte dei progettisti (anzi mi sa che commercialmente sia la soluzione più usata). E' più complessa perchè deve saper switchare da un core all'altro, poi ci sono tutti i vari problemi di coerenza, mutua esclusione...
Quindi quello che ho detto io è giusto e cioè un "processore" multicore è un processore con dentro 2 cpu. Un multi processore sono due cpu. Quindi un multicore ed un multi processore sono "potenzialmente" la stessa cosa, solo che un multi core è tutto integrato in uno solo pakage con le ovvie conseguenze in termine di guadagno di velocità sul trasferimento di dati (data la vicinanza).
No?
Ora, perchè si tendeva all'epoca a dire "Noo multi core non è un multi processore, il processore è unico.." ? In realtà per "processore" si intendeva "l'unità" cioè "il package" e nel multicore conteneva più CPU mentre nel biprocessore abbiamo due package, due processori, contenenti ognuno una cpu?
(Lo so quest'ultima non è una definizione vera e propria, è per rendere l'idea).
F1R3BL4D3
08-10-2009, 16:46
Si ma manca (nel tuo esempio) un sistema composto da più processori multicore.
Dumah Brazorf
08-10-2009, 16:56
Dire processore e cpu è la stessa cosa.
Un processore/Una cpu può essere single core o multi-core.
Un sistema biprocessore quad-core ha 8 core totali.
guylmaster
08-10-2009, 17:07
Dire processore e cpu è la stessa cosa.
Un processore/Una cpu può essere single core o multi-core.
Un sistema biprocessore quad-core ha 8 core totali.
Si si so che "processore" e "cpu" sono la stessa cosa. Era per far quadrare l'esempio che ho assunto che uno si riferisse ad "Un processore" come al "Package" che poi può contenere un solo processore-cpu o più di uno.
Dumah Brazorf
08-10-2009, 17:26
E' che non usi la terminologia corretta! :D
Vabbè mo' te studi la differenza tra UMA NUMA (e COMA).
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.