DMI – Corso di laurea magistrale in Informatica
Copyleft
2016-2017 Giuseppe Scollo
di che si tratta:
Schaumont, Figure 9.1 - The hardware/software interface
la figura mostra uno schema dei costituenti di un'interfaccia hardware/software
la funzione dell'interfaccia hardware/software è connettere l'applicazione software al modulo hardware custom; questo obiettivo coinvolge cinque elementi:
Schaumont, Figure 9.2 - Synchronization point
sincronizzazione: l'interazione strutturata di due entità parallele, altrimenti indipendenti
la sincronizzazione è necessaria per la comunicazione fra sottosistemi paralleli: ogni parlante deve avere un ascoltatore per essere sentito
Schaumont, Figure 9.3 - Dimensions of the synchronization problem
tre dimensioni ortogonali del problema della sincronizzazione:
semaforo: una primitiva di sincronizzazione S per il controllo di accesso a una risorsa astratta condivisa, mediante le operazioni:
Schaumont, Figure 9.4 - Synchronization with a single semaphore
int shared_data;
semaphore S1;
entity one {
P(S1);
while (1) {
short_delay();
shared_data = ...;
V(S1);
// synchronization point
}
}
entity two {
short_delay();
while (1) {
P(S1);
// synchronization point
received_data = shared_data;
}
}
Schaumont, Listing 9.1 - One-way synchronization with a semaphore
punti di sincronizzazione: quando la prima entità esegue la V(S1), così sbloccando l'altra entità
si assuma invece il contrario, e.g. spostando la chiamata di funzione short_delay() dal ciclo while nella prima entità a quello nella seconda ...
la situazione di ritardi variabili può essere gestita in uno schema con due semafori
Schaumont, Figure 9.5 - Synchronization with two semaphores
int shared_data;
semaphore S1, S2;
entity one {
P(S1);
while (1) {
variable_delay();
shared_data = ...;
V(S1); // synchronization point 1
P(S2); // synchronization point 2
}
}
entity two {
P(S2);
while (1) {
variable_delay();
P(S1); // synchronization point 1
received_data = shared_data;
V(S2); // synchronization point 2
}
}
Schaumont, Listing 9.2 - Two-way synchronization with two semaphores
la figura 9.5 illustra il caso in cui:
nei sistemi paralleli un semaforo centralizzato non è sempre fattibile; una comune alternativa è
se un'entità giunge troppo presto a un punto di sincronizzazione, dovrebbe restare in attesa fino a quando non si verifichi la condizione appropriata, o dovrebbe procedere con altro?
sia gli schemi con semafori che con handshake discussi prima realizzano un trasferimento di dati bloccante
l'accelerazione del calcolo è spesso la motivazione per il progetto di hardware custom
occorre valutare anche i vincoli di comunicazione!
Schaumont, Figure 9.8 - Communication constraints of a coprocessor
Schaumont, Figure 9.9 - Communication-constrained system vs. computation-constrained system
il numero di cicli di clock per esecuzione del modulo hardware custom sono correlati al suo hardware sharing factor (HSF) =def numero di cicli di clock tra eventi di I/O consecutivi
Architecture | HSF |
Systolic array processor | 1 |
Bit-parallel processor | 1–10 |
Bit-serial processor | 10–100 |
Micro-coded processor | >100 |
Schaumont, Table 9.1 - Hardware sharing factor
l'accoppiamento indica il livello di interazione tra flussi di esecuzione nel software e in hardware custom
l'accoppiamento correla sincronizzazione e prestazione
Coprocessor | Memory-mapped | |
Factor | interface | interface |
Addressing | Processor-specific | On-chip bus address |
Connection | Point-to-point | Shared |
Latency | Fixed | Variable |
Throughput | Higher | Lower |
Schaumont, Table 9.2 - Comparing a coprocessor interface with a memory-mapped interface
Schaumont, Figure 9.10 - Tight coupling versus loose coupling
esempio: differenza tra
N.B.: un alto grado di parallelismo nell'insieme del progetto può essere più facile da ottenere con uno schema di accoppiamento lasco piuttosto che stretto