Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário...

14
Arquitectura de Sistemas Digitais Uma introdução João Canas Ferreira 2008-03-03 Assuntos Tópicos 1 Conceitos gerais 2 Exemplo de síntese de alto nível 3 Síntese de alto nível João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 2 / 27

Transcript of Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário...

Page 1: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Tópicos dehfill Projecto de Circuitos VLSI

Arquitectura de Sistemas DigitaisUma introdução

João Canas Ferreira

2008-03-03

**Change**

Assuntos

Tópicos

1 Conceitos gerais

2 Exemplo de síntese de alto nível

3 Síntese de alto nível

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 2 / 27

Page 2: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Conceitos gerais

1 Conceitos gerais

2 Exemplo de síntese de alto nível

3 Síntese de alto nível

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 3 / 27

Conceitos gerais

Especificação de alto nível

+ Ponto de partida: descrição de alto nívelalgoritmo ou comportamento

+ Características:define as transformações de dadossem informação temporal (interna)pode incluir especificação de E/S (protocolo de comunicação)

+ Síntese: obter uma arquitectura que implemente o algoritmo.Resultado: descrição RTLProcesso: automático ou não

+ Linguagem:de programação tradicional: C/C++, SystemC, . . .de descrição hardware: VHDL, (System) Verilog

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 4 / 27

Page 3: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Conceitos gerais

Exploração do espaço de projecto

+ Trabalhar a partir de uma descrição comportamental permite explorar arquitecturasalternativas na fase inicial do projecto.

se automaticamente: por manipulação de restrições

atraso

área

atrasoár

ea

Soluções obtidaspor síntese RTL

Arquitecturasalternativas

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 5 / 27

Conceitos gerais

Vantagens e limitações da síntese de alto nível

+ Ganhos de produtividadedescrições mais compactas e simplesdescrições mais faceis de produzir, perceber e depurarsimulações mais rápidas

+ Flexibilidadedescrições independentes da arquitecturaalternativas desconhecidas inicialmentetime-to-marketre-utilização (mesmo para outros fins)

+ Limitações:limitado actualmente a sistemas síncronosdesnecessário se a arquitectura for bem conhecidanão permite atingir os limites de desempenho (ou área) de uma dada tecnologia (jáque é independente da tecnologia)

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 6 / 27

Page 4: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Conceitos gerais

Projecto de sistema

+ System design refere-se a tarefas fora do âmbito da síntese de circuitos, como porexemplo a partição de funcionalidade entre hardware e software.

+ O projecto a nível comportamental permite avaliar rapidamente as decisões tomadas anível de sistema.

+ O projecto de um sistema (system-on-chip) pode conter muitos elementos:memórias (20%–50%)núcleo programáveis (CPU, DSP) (< 20%)núcleos especializados (< 20%)conteúdo original (5%–20%)

+ Hardware/software de-design é um assunto extremamente actual.

+ As decisões a este nível têm grande influência sobre desempenho/área/consumo deenergia.

+ O projecto do sistema permite definir as (gamas de) restrições a impor à síntese (manualou automática) de alto nível.

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 7 / 27

Conceitos gerais

Fluxo de projecto RTL

Desenvolver/depurar algoritmo

Avaliar/seleccionar arquitectura

EscreverdescriçãoRTL

SimularcódigoRTL

EfectuarsínteseRTL

Verificarprojectogate-level

Iteração cara

Processos manuais

+ Explorar alternativas para: 4 multiplicações e 3 somas.

+ Possibilidades (exemplo):4 multiplicadores rápidos, 3 somadores rápidos: 5 ciclos2 multiplicadores, 1 somador: 10 ciclos1 multiplicador pequeno, 1 somador pequeno: 20 ciclos

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 8 / 27

Page 5: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Conceitos gerais

Fluxo de projecto de alto nível

Desenvolver/depurar algoritmo

Avaliar/seleccionar arquitectura

EscreverdescriçãoRTL

SimularcódigoRTL

EfectuarsínteseRTL

Verificarprojectogate-level

Processo manual

RTL tradicionalInclui simulação comportamentalou validação formal

+ A síntese comportamental produz descrições RTL.

+ A validação do projecto é feita a alto nível.Existe alguma incerteza relativa às características do resultado final (qualidade dasestimativas)A eventual iteração da última tarefa para a tarefa de avaliação de arquitectura podeser mais rápida (não assinalada na figura).

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 9 / 27

Exemplo de síntese de alto nível

1 Conceitos gerais

2 Exemplo de síntese de alto nível

3 Síntese de alto nível

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 10 / 27

Page 6: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Exemplo de síntese de alto nível

Algoritmo e dependênciasint op(int a, int b, int c, int d, int e, int f){int y;

y = a * b + c + (d - e) * f;return y;

}

à Diagrama de fluxo de dados (data-flow graph: DFG) é um grafo cujos nós representamoperadores (várias entradas, uma saída). Serve para ilustrar graficamente as dependênciasentre operações.

×

×–

+

+

a

b

d

e

t1

f

y

c

t4

t3

t2

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 11 / 27

Exemplo de síntese de alto nível

Implementação RTL directa

A

B

Z

mul32

A

B

Z

add32

A

B

Z

sub32

A

B

Z

mul32

A

B

Z

add32

a[31:0]

b[31:0]

d[31:0]

e[31:0]

c[31:0]

f [31:0]

y[31:0]

Área: 2 * area(mul32) + 2 * area(add32) + area(sub32)

Caminho crítico (atraso do subtractor maior que o do somador):atraso total = atraso(sub32)+ atraso(mul32) + atraso(add32)

É a melhor implementação?

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 12 / 27

Page 7: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Exemplo de síntese de alto nível

Alocação de recursos

à Alocação de recursos é o processo de decidir que tipo e quantos recursos podem ser usadosnuma dada implementação.

à Exemplo: como implementar a função anterior usando apenas um módulo de cada tipo?

à A partilha de hardware leva a organizações muito diferentes. Neste caso, usar um sómultiplicador implica:

as duas multiplicações devem ocorrer em períodos diferentescircuito síncrono

resultado de pelo menos uma multiplicação deve ser armazenado temporariamente (registos)

entradas do multiplicador devem ser multiplexadas (a/b; t2/f)

à Em geral, um sistema será composto por:

elementos de cálculo (datapath);

elementos de memória (registos, trincos) para valores temporários;

máquina de estados (controlador).

à Sistemas mais complexos, terão ainda módulos de memória (SRAM, DRAM).

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 13 / 27

Exemplo de síntese de alto nível

Sequenciamento

à Sequenciamento: decidir que operações são executadas em que ciclo. Cada operação deveser atribuída a um período de relógio.

à Qual a influência do sequenciamento sobre o período de relógio?à Operadores de 1 ciclo:

×

+

×

+

f

b

d

e

ac

y

1 2 3

à Setas que “cortam” limites de período de relógio implicam armazenamento temporário devalores.à Implementação que leia todos os valores de entrada no primeiro ciclo?

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 14 / 27

Page 8: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Exemplo de síntese de alto nível

Partilha de módulos

à A partilha de módulos obriga ao encaminhamento de sinais de entrada e ao registo devalores de saída.

à Exemplo do multiplicador:

A

B

Z

mul32

t1 ou t4

a

t2

b

f

estado

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 15 / 27

Exemplo de síntese de alto nível

Modelos temporais detalhados (I)à Modelo temporal mais realista:

Multiplicador: 12 ns

Somador/subtractor: 5 ns

Período pretendido: 25 ns

à Gráfico de Gantt (2 ciclos) com operações encadeadas:

×–

+

a

b

c

a

b

×

y

f

+

25 ns

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 16 / 27

Page 9: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Exemplo de síntese de alto nível

Modelos temporarais detalhados (II)à O mesmo modelo temporal, mas sem limitações de recursos.

à É possível obter um sequenciamento com 3 períodos de 10 ns (com operações multi-ciclo).

×–

+

a

b

c

a

b

×

y

f

+

10 ns

à Esta solução requer um modelo RTL diferente.João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 17 / 27

Síntese de alto nível

1 Conceitos gerais

2 Exemplo de síntese de alto nível

3 Síntese de alto nível

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 18 / 27

Page 10: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Síntese de alto nível

Processo de síntese de alto nível (exemplo)

Descrição algorítmica

GeraçãoCDFG

Alocação derecursos

Sequenciamento

Alocação deregistos

Binding

Extracção de MEFs e datapath

Extracção de MEFs e datapath

DescriçãoRTL

Podem existir interacções entre algumas etapas.

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 19 / 27

Síntese de alto nível

Representação interna (CDFG)à Control/Data Flow Graph (CDFG): extensão de DFG, que permite representar as estruturas decontrolo (ciclos e condicionais).

if (n > m)tmp = a + b;

elsetmp = (a*b) + c - d;

y = tmp + a;

à Outros nós especiais: LOOP BEGIN,LOOP END, NEXT, EXIT.

select

End

select

addtmp

e

ycmp

m

n

mul

a

b

tmp

mul

a

b

tmpadd

addc

d

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 20 / 27

Page 11: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Síntese de alto nível

Alocação de recursosà É o processo de decidir que tipo e número de recursos pode ser usado numa dadaimplementação.à Circuito que precisa de 3 somadores, 2 multiplicadores e um subtractor. Exemplo depossíveis atribuições:

add

sub

mul

add_rpl(ripple)

add_csa(carry save)

add16(tecnologia)

addsub_rpl(ripple)

sub_rpl(ripple)

sub_csa(carry save)

mul

à Uma alocação é suficiente se for possível implementar todas as operações de um CDFG comum ou mais dois recursos alocados.à Um operador pode “cobrir” outro. Por exemplo, um multiplicador de 32 bits pode ser usadopara multiplicar números de 24 bits.

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 21 / 27

Síntese de alto nível

Sequenciamento

à A qualidade do sequenciamento é o factor que mais influencia o resultado final da síntesede alto nível.

1 sequenciamento sem restriçõespermite obter circuitos restringidos apenas pelas restrições de dados (ASAP/ALAP)

frequentemente usado como componente de um algoritmo mais complexo

2 sequenciamento com restriçõesrecursos: implementação mais rápida com recursos definidos (sequenciamento por lista)

tempo: implementação mais pequena que respeite as restrições temporais

Exemplo a usar nas próximas páginas:

y = ((a× b) + c) + (d × e)− (f + g)

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 22 / 27

Page 12: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Síntese de alto nível

Sequenciamento ASAP

à ASAP = As Soon As Possible

à Cada operador é usado tão cedo quanto possível.

mul

mul

add

add

add

sub

a

b

d

e

f

g

c

y

1 2 3 4

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 23 / 27

Síntese de alto nível

Sequenciamento ALAP

à ALAP = As Late As Possibleà Cada operador é usado tão tarde quanto possível.

mul

mul

add

add

add

sub

a

b

d

e

f

g

c

y

1 2 3 4

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 24 / 27

Page 13: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Síntese de alto nível

Mobilidade

à Mobilidade de uma operação: intervalo no qual a operação pode ser colocada sem alterar aduração total do sequenciamento.

mul

mul

add

add

add

sub

a

b

d

e

f

g

c

y

1 2 3 4

mul

add

mobilidade

mobilidade

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 25 / 27

Síntese de alto nível

Sequenciamento por lista

à Aplicado a problemas de sequenciamento com restrições de recursos.à Para cada ciclo: operações a “colocar” nesse ciclo são retiradas de uma lusta de todas asoperações que podem ser colocadas nesse ciclo.à A lista está ordena por mobilidade: operações com mobilidade menor têm maior prioridade.(Porquê?)à Operações são escolhidas dessa lista do início (maior prioridade) para o fim, enquantoexistirem recursos disponíveis.à Resultado para 1 somador, 1 subtractor e 1 multiplicador.

mul

mul

add

add

add

sub

a

b

d

e

f

g

c

y

1 2 3 4

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 26 / 27

Page 14: Arquitectura de Sistemas Digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário se a arquitectura for bem conhecida não permite atingir os limites de desempenho

Síntese de alto nível

Etapas finais

à Registos podem ser partilhados se não forem usados simulataneamente.

à É necessário determinar os períodos de validade dos valores guardados nos registos(lifetime analysis.

à Valores com períodos de validade não-sobrepostos podem partilhar registos.

à A partilha de registos pode levar a reduções significativas de tamanho.

à Após a alocação de registos, os recursos específicos devem ser atribuídos às operaçõessequenciadas (binding).

à As escolhas feitas nesta etapa podem ter impacto significativo sobre as pistas deinterligação da implementação final, para além de definirem o valor “exacto” do período derelógio.

à O penúltimo passo consiste em extrair o precurso de dados e a máquina de estados quecontrolo o funcionamento do circuito.

à Finalmente, é gerada a descrição RTL da implementação.

João Canas Ferreira (FEUP/DEEC) Arquitectura SD 2008-03-03 27 / 27