arquitectura de sistemas digitaisjcf/ensino/disciplinas/mieec/pcvlsi/2007-08b/... · desnecessário...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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