DEEC processadores - paginas.fe.up.pt

• possibilita a reutilização de compiladores existentes ... – tipos de dados bem adaptados à aplicação ... – CPUs/computadores de uso geral...

15 downloads 226 Views 3MB Size
processadores especializados

FEUP/DEEC

processadores

programáveis (por software)

não programáveis

µprocessador

usos gerais

µcontrolador

aplicações industriais, controlo, RT

DSP

aplicações numéricas, RT

ASIP

hw e conjunto de instruções optimizado para a aplicação

ASIC

algoritmo implementado completamente em hw

especialização crescente ASPD 2003/2004 - [email protected]

1

processadores especializados

FEUP/DEEC

ASIP Application Specific Instruction-set Processor • processador programável (por software) – alternativa a projectar um ASIC, risco mais baixo

• conjunto de instruções optimizado para uma aplicação • instruções de uso geral + instruções especiais – que grau de flexibilidade é desejável?

• DSP é um ASIP para processamento de sinal • objectivo – manter flexibilidade, melhorar desempenho e custo ASPD 2003/2004 - [email protected]

2

1

processadores especializados

FEUP/DEEC

desempenho vs. flexibilidade desempenho

hardware ASIC

ASIP

software processadores convencionais

flexibilidade

ASPD 2003/2004 - [email protected]

3

processadores especializados

FEUP/DEEC

ASIP - organização • um ASIP integra: – núcleo de um processador convencional • sub-conjunto do conjunto de instruções • arquitecturas VLIW, superescalar • possibilita a reutilização de compiladores existentes

– circuitos dedicados (à aplicação) • • • • •

memórias, barramentos, registos, hardware dedicado co-processadores, unidades funcionais (datapath) processadores periféricos (comunicações) gestão de consumo de energia suporte para execução de instruções específicas

ASPD 2003/2004 - [email protected]

4

2

processadores especializados

FEUP/DEEC

porquê ASIPs? • quando um processador convencional não chega – optimizar desempenho • • • •

explorar paralelismo instruções (execução paralela, pipelining) operações dedicadas, típicas da aplicação alvo gerir o consumo de energia

– tipos de dados bem adaptados à aplicação • inteiros, vírgula fixa ou flutuante, nº arbitrário de bits • largura das memórias, barramentos,datapath...

– minimizar o custo e o risco de re-design • é mais barato do que projectar um ASIC • parte da funcionalidade é software ASPD 2003/2004 - [email protected]

5

processadores especializados

FEUP/DEEC

como projectar? • partição entre hardware e software – que partes têm que ser feitas em hardware? • requisitos de desempenho e de consumo de energia • operações típicas do domínio de aplicação, re-utilizáveis • como implementar? – datapath, co-processadores, processadores periféricos

– que partes podem ser feitas em software? • • • •

qual o grau de flexibilidade (“programabilidade”)? que instruções convencionais? como se desenvolve o software? quanto “custa” a comunicação entre hw e sw?

ASPD 2003/2004 - [email protected]

6

3

processadores especializados

FEUP/DEEC

processadores para DSP • processamento em tempo real – sequência de dados de entrada e de saída com taxas fixas (p.ex. 2x44100Hz para áudio digital de CD)

• aritmética intensiva – com inteiros, vírgula fixa ou vírgula flutuante – operações padrão muito frequentes

• reprogramabilidade (field upgrades) – programação por software, baixo risco

• baixo consumo (aplicações portáteis, embedded) – baixa frequência de relógio, baixa tensão

• baixo custo ASPD 2003/2004 - [email protected]

7

processadores especializados

FEUP/DEEC

porquê DSPs? • alternativas – CPUs/computadores de uso geral • operam com frequência de relógio mais elevadas • desempenho pode ser pior do que DSPs • podem satisfazer aplicações “pouco” exigentes – um descodificador MP3 num PC executa em RT

• custo e consumo elevados (sistemas embedded)

– hardware dedicado • ASICs, circuitos discretos, FPGAs • desempenho máximo, não programável • mas quando Fs>Fclk/100 pode ser a única solução viável

ASPD 2003/2004 - [email protected]

8

4

processadores especializados

FEUP/DEEC

DSPs - características • programáveis por software • optimizados para processamento digital de sinal • características específicas de DSPs – – – –

operações padrão, tipos de dados organização do datapath arquitectura de memória e modos de endereçamento conjunto de instruções, controlo de fluxo

• optimizar código requer programar em assembly – arquitectura dos DSPs dificulta o trabalho dos compiladores

ASPD 2003/2004 - [email protected]

9

processadores especializados

FEUP/DEEC

exemplo: filtro FIR operação elementar: vk(n-1)=vk+1(n-1)+xn*hk

Qual o tempo disponível para calcular y(n) ? ASPD 2003/2004 - [email protected]

10

5

processadores especializados

FEUP/DEEC

DSP - operações e dados • multiplicar e acumular: X=X+a*b (MAC) – filtros, correlações, transformadas – primeiro DSP com um MAC por clock • Texas Inst. TMS320C10 (1982, 16 bits, 8.8 MIPs)

– MAC requer ler 3 operandos e escrever um resultado

• operações aritméticas com saturação ou overflow • arredondamento • várias unidades de execução – MAC, ALUs, shifters

• bits extra nos acumuladores – prevenir a ocorrência de overflow na acumulação ASPD 2003/2004 - [email protected]

11

processadores especializados

FEUP/DEEC

tipos de dados e operações • vírgula fixa (complemento para 2) [-2N-1, +2N-1-1] [-2N-1 / 2M, +(2N-1-1) / 2M]

– inteiros – fraccionários

• usando M bits para a parte fraccionária (M
inteira

sinal

fraccionária

• vírgula flutuante – maior gama dinâmica, operadores mais complexos mantissa s 1

expoente s

valor = mantissa x 2expoente ASPD 2003/2004 - [email protected]

12

6

processadores especializados

FEUP/DEEC

tipos de dados e operações • multiplicações em vírgula fixa inteiros 6 bits

s

com parte fraccionária

s

6 bits

s

s

X 12 bits

X

s

12 bits

6 bits

s

6 bits

• shifter permite escolher os bits do resultado

ASPD 2003/2004 - [email protected]

13

processadores especializados

FEUP/DEEC

tipos de dados e operações • adição/subtracção com saturação – se A+B> 2N-1-1 então resultado é 2N-1-1 – se A+B< -2N-1 então resultado é -2N-1 – sem saturação ocorre overflow!

• arredondamento (convergente, média=0) – necessário após multiplicação 12 bits

6 bits

ASPD 2003/2004 - [email protected]

s

b-4

s

se > 1000 adiciona 0.0001 se < 1000 não faz nada (trunca) se = 1000 adiciona 0.000b-4

14

7

processadores especializados

FEUP/DEEC

exemplo de datapath

(DSP560xx) ASPD 2003/2004 - [email protected]

15

processadores especializados

FEUP/DEEC

organização de memória • vários acessos a memória em cada instrução – – – –

memórias separadas para programa e dados (Harvard) dimensão dos dados ”nativos” diferente das instruções vários barramentos internos memórias locais de duplo porto para usos especializados

• modos de endereçamento – endereçamento em DSP segue padrões repetitivos – unidades especializadas para gerar endereços por hardware • indirecto por registo com pós-incremento ou decremento • módulo-K (acesso a buffers circulares) • endereçamento bit-reversed (cálculo de FFTs)

ASPD 2003/2004 - [email protected]

16

8

processadores especializados

FEUP/DEEC

conjunto de instruções • especialização – compromisso entre custo e desempenho

• instruções especiais – – – – –

MAC acesso a memórias internas instruções com execução condicional manipulação de bit fields ciclos realizados por hardware (zero-overhead looping) • uma ou mais instruções repetidas N vezes, sem saltos

ASPD 2003/2004 - [email protected]

17

processadores especializados

FEUP/DEEC

paralelismo • VLIW - Very Long Instruction Word – executado um grupo de instruções de cada vez – instruções agrupadas na geração do código – TI TMS320C62XX • 8 unidades de execução • executadas até 8 instruções em paralelo (256 bits)

ASPD 2003/2004 - [email protected]

18

9

processadores especializados

FEUP/DEEC

TMS32010

ASPD 2003/2004 - [email protected]

FEUP/DEEC

19

processadores especializados

TMS320C30

ASPD 2003/2004 - [email protected]

20

10

processadores especializados

FEUP/DEEC

DSP56002

ASPD 2003/2004 - [email protected]

21

processadores especializados

FEUP/DEEC

processadores vectoriais • contêm instruções que operam em vectores – uma só instrução para somar 2 vectores com N números • registos são vectores de dimensão fixa (ou variável) ADDV.D V1,V2,V3:

V1 <- V2+V3

– executa um ciclo N vezes inteiramente em hardware • não são executadas as instruções para controlo do ciclo

– não há dependências de dados entre as iterações • utilização óptima das pipelines, não ocorrem conflitos

– uma única operação de fetch para toda a operação • número de acessos à memória reduzido drásticamente

– acessos à memória ocorrem com padrões conhecidos • a memória pode ser optimizada para esse tipo de acessos

– podem ocorrer dependências de dados entre vectores • mas duas instruções vectoriais podem decorrer em pipeline Baseado em J.L. Hennessy, D.A. Patterson, "Computer Architecture: A Quantitative Approach" 3ª ed., Morgan Kaufmann Publishers, 2003, Apêndice G

ASPD 2003/2004 - [email protected]

22

11

processadores especializados

FEUP/DEEC

arquitectura vectorial básica VMIPS

64 elementos

• • • •

operações vectoriais só entre registos load/store de vectores unidades funcionais pipelined registos escalares (1 dado)

ASPD 2003/2004 - [email protected]

FEUP/DEEC

23

processadores especializados

exemplos de proc. vectoriais

ASPD 2003/2004 - [email protected]

24

12

processadores especializados

FEUP/DEEC

instruções vectoriais do VMIPS

ASPD 2003/2004 - [email protected]

25

processadores especializados

FEUP/DEEC

exemplo • • • • •

resolver Y = a x X + Y (benchmark Linpack DAXPY) X e Y são vectores residentes em memória a é um escalar todos os dados são reais de precisão dupla os vectores têm dimensão 64 – igual à dimensão dos registos do VMIPS

ASPD 2003/2004 - [email protected]

26

13

processadores especializados

FEUP/DEEC

programa escalar v.s vectorial MIPS

VMIPS

quantas instruções são executadas em cada caso? ASPD 2003/2004 - [email protected]

27

processadores especializados

FEUP/DEEC

desempenho tempo de execução

• factores que determinam o tempo de execução – dimensão dos vectores – conflitos estruturais – dependências de dados

• VMIPS – uma lane (uma só operação pipelined de cada vez) – 1 dado consumido por ciclo de relógio – tempo de execução de 1 inst. ≈ dimensão do vector

ASPD 2003/2004 - [email protected]

28

14

processadores especializados

FEUP/DEEC

desempenho conceitos • grupo

1

– conjunto de instruções vectoriais que podem iniciar no mesmo ciclo de relógio (ou em ciclos consecutivos) – não podem ter conflitos estruturais ou de dados – a execução de um grupo tem de terminar para ser iniciada outra instrução (vectorial ou escalar)

• tempo

2

– 1 tempo é a unidade de tempo necessária para executar um grupo – é independente da dimensão do vector

• o tempo de execução de um conjunto de instruções – é igual ao nº de grupos, em unidades tempo 1 2

na literatura original convoy na literatura original chime

ASPD 2003/2004 - [email protected]

29

processadores especializados

FEUP/DEEC

desempenho exemplo um programa:

organizado em grupos:

ASPD 2003/2004 - [email protected]

• 4 grupos 4 tempos • tempo de execução: 4 x nº elementos • 2 operações por resultado • 2 ciclos por cada operação 30

15

processadores especializados

FEUP/DEEC

desempenho overhead do tempo de execução

• O número de tempos é medida aproximada – geralmente as instruções de um grupo não iniciam em ciclos de relógio consecutivos • exemplo: para vectores com 64 elementos – o tempo de execução é 4x64 + 1 = 257 ciclos de relógio

– latência da pipeline • atraso introduzido pela pipeline • o grupo seguinte só pode iniciar quando o anterior terminar – implica “esvaziar” a pipeline para produzir o último resultado

• menos importante quanto maiores forem os vectores

ASPD 2003/2004 - [email protected]

31

processadores especializados

FEUP/DEEC

desempenho exemplo de overhead da pipeline para 64 elementos o tempo total é: 41+1+4x64=298 ciclos (face a 256=64x4 tempos) ou 4.65 ciclos/resultado em vez de 4.0

(n é a dimensão do vector) ASPD 2003/2004 - [email protected]

32

16

processadores especializados

FEUP/DEEC

desempenho acesso a memória

• as operações LV e SV usam memória – tipicamente o tempo de startup é maior para instruções que usam memória – para garantir um dado por ciclo de relógio a memória tem de responder à mesma cadência – solução • usar vários bancos de memória acedidos em sequência • nº mínimo de bancos = latência da memória • por razões de eficiência este número deve ser igual a 2N

ASPD 2003/2004 - [email protected]

33

processadores especializados

FEUP/DEEC

desempenho exemplo de latência no acesso a memória • problema: – ler vector com 64 elementos a partir do endereço (byte) 136 • cada elemento é um double (8 bytes)

– cada acesso a um banco de memória demora 6 ciclos • incluindo o tempo de acesso e tempo de ocupação do banco

– quantos bancos são precisos para garantir 1 dado/ciclo?

seriam suficientes 6 bancos de memória como este número deve ser 2N usam-se 8 bancos

ASPD 2003/2004 - [email protected]

34

17

processadores especializados

FEUP/DEEC

desempenho sequência de acessos a memória

ASPD 2003/2004 - [email protected]

35

processadores especializados

FEUP/DEEC

desempenho passo (stride) dos acessos a memória

• os elementos de um vector podem não ser acedidos em endereços consecutivos – no caso de matrizes bi- ou tri-dimensionais – o vector de uma linha ou coluna têm passo diferente

• exemplo – uma matriz bi-dimensional de 64x64 elementos – no caso anterior, quantos ciclos são precisos para: • carregar para um vector todos os elementos de uma linha • carregar para um vector todos os elementos de uma coluna

ASPD 2003/2004 - [email protected]

36

18

processadores especializados

FEUP/DEEC

aumento do desempenho • encaminhamento de dados (data forwarding) – MULV.D V1,V2,V3 – ADDV.D V4,V1,V5

• execução condicional de instruções não permite vectorizar

– máscara do vector • vector booleano que determina que dados operar

• várias pistas (lanes) – várias unidades de execução paralelas

ASPD 2003/2004 - [email protected]

37

19