Che parallelismo accade in un processore vettoriale?

1

Da Tanebaum's Structured Computer Organization

A vector processor is very efficient at executing a sequence of operations on pairs of data elements. All of the operations are performed in a single, heavily pipelined functional unit. Vector processors work on arrays of data, and execute single instructions that, for example, add the elements together pairwise for two vectors.

The vector processor has the concept of a vector register, which consists of a set of conventional registers that can be loaded from memory in a single instruction, which actually loads them from memory serially.

Then a vector addition instruction performs the pairwise addition of the elements of two such vectors by feeding them to a pipelined adder from the two vector registers. The result from the adder is another vector, which can either be stored into a vector register or used directly as an operand for another vector operation.

The SSE (Streaming SIMD Extension) instructions available on the Intel Core architecture use this execution model to speed up highly regular computation, such as multimedia and scientific software.

Come si dice, un processore vettoriale ha una singola unità funzionale (ad esempio un singolo sommatore, che sembra possa aggiungere un paio di scalari contemporaneamente, non una coppia di vettori?), e gli scalari in una matrice vengono caricati in serie in un registro vettoriale dalla memoria. Esiste il parallelismo all'interno di un processore vettoriale?

Ad esempio, aggiungi due vettori memorizzati come due matrici di scalari, A e B. Funziona in parallelo in questo modo:

  • il sommatore aggiunge una coppia di scalari, A [i] e B [i], che sono stati memorizzati in due registri vettoriali,
  • e allo stesso tempo, una successiva (j > i) coppia di scalari A [j] e B [j] vengono caricati dalla memoria nei registri vettoriali?

O l'aggiunta ha luogo dopo che i due array A e B sono stati completamente caricati nei registri vettoriali twp? Quindi questo non rende inattivo l'addetto mentre vengono caricati gli scalari in ogni array?

Grazie.

    
posta Tim 22.02.2015 - 02:34
fonte

0 risposte

Leggi altre domande sui tag