25
Introdução a Sistemas Digitais Introdução a Sistemas Digitais
Circuitos Assincronos
Referencias:
www.ee.technion.ac.il/courses/048878
www.ee.technion.ac.il/courses/048878 de Ran Ginosarde
Motivação
25Motivação
133 MHz CPU
12 Mbps USB 384 Kbps
3G 75 MHz
DSP 20 MHz
Flash Memory 50 MHz Memory
66 MHz PCI
1 MHz CF
System-on-a-Chip (SOC) podem ter mais que 12 dominios de relógio
Desafio do projeto de sistemas com multiplos relogios (alta complexidade)
Circuitos
25Circuitos Síncronos Síncronos
Todos os eventos são sincronizados com o relógio (clk) global.
Circuitos
25Circuitos Síncronos Síncronos
Vantagens:
• Simples de implementar sequencia
• Amplamente conhecido e compreendido
• Componentes disponiveis para re-uso.
Desvantagens:
• A distribuição do clock é dificil devido ao clock skew.
• Sensivel a variações de processo, temperatura e tensão
• Não é modular
• Alto consumo de potencia.
Circuitos
25Circuitos Assincronos Assincronos
Sincronização é atingida sem o uso de relógio (clk) global.
Circuitos
25Circuitos Assincronos Assincronos
Vantagens:
• Não há problemas de distribuição de relógio
• Desempenho baseado na média e não no pior caso como nos circuitos sincronos.
• Adaptavel a variações de processo e do ambiente (tensão, temperatura, etc).
• Componente modularizáveis
• Baixa dissipação de potência Desafios:
• Falta de ferramentas de CAD para o desenvolvimento
• Aumento consideravel de área para reduzir hazards e glitches
• A media do atraso as vezes pode ser grande
Ilustração
25Ilustração
Historia
25Historia dos dos Circuitos Circuitos Assincronos Assincronos
• Qualquer metodo hoje em dia aplicado no
desenvolvimento de circuitos assincronos refere-se a duas raízes muito importantes:
• Huffman – circuitos de modo fundamental
• David E. Muller – circuitos independentes de
velocidade, atualmente professor na Universidade de Illinois.
UCSC computer scientist
Por
25Por que que pensar pensar em em circuitos circuitos assíncronos assíncronos
• Nós estamos acostumados com o projeto de circuitos sincronos.
– Lógica e aspectos temporais são simples.
Argumentos comuns de pensar em circuitos Assincronos:
– Tecnicas de baixa potencia funcionam – Conseguimos atingir alta frequencia
– Baixa sensibilidade a variações do processo, tensão e temperatura
– Alta modularidade (SoC)
– Não tem distribuição de relógio (clk) e problemas de temporização.
– Circuitos mais seguros
• Importante: mas não conseguimos todas as caracteristicas a cima ao mesmo tempo!!!
Aula 25
Por Por que que não não usamos usamos mais mais circuitos circuitos assincronos
assincronos ? ?
• Aumento em área
• Dificil de projetar
– Não é facilmente decomposto em blocos lógicos menores – Converter sincrono para assincrono é dificil
– Temos que aprender algo novo!
• Poucas ferramentas de CAD tratam circuitos assincronos
então
25então ? ?
• Porque temos que.
• Circuitos sincronos pode ser um bom modelo para complexidades pequenas mas pode ser um grande desafio para complexidades grandes (metaestabilidade, clock skew).
• A realidade é que circuitos assincronos podem nos trazer muitas vantagens. Exemplo de processadores, SOC com circuitos e protocolos de comunicação assincronos.
Definição
25Definição
• Circuitos Assíncronos possuem:
– elementos essenciais que compõem a sua estrutura (lógica de controle, armazenamento e processamento das informações).
• Célula M de N entradas
• Célula Muller (ou C-element)
• Registrador Assincrono
– Protocolos de comunicação entre os blocos que gera a
sincronização entre os blocos através de sinais de request e acknowledge.
• Handshake (2 ou 4 fases)
• Codificação de dados na comunicação
25
Protocolos
Protocolos de de Comunicação Comunicação
Substituindo
25Substituindo o clock o clock por por Handshaking Handshaking
R1 R2 CL3 R3 CL4 R4
CLK
CLK
CLK GATING SIGNAL
R1 R2 CL3 R3 CL4 R4
25
R1 R2 R3
CL3
R4
CTL CTL CTL CTL
CL4
REQ ACK
R1 R2 CL3 R3 CL4 R4
LINK / CHANNEL
TOKEN FLOW CL TRANSPARENT TO HANDSHAKING
REQ ACK
EXAMPLE: DATA
Substituindo
Substituindo o clock o clock por por Handshaking Handshaking
Fluxo
25Fluxo de dado de dado
• Tranferencia de um dado = um ciclo de handshake
• Registrador k está FULL quando tem dado
• Quando registrador k+1 recebe o dado de k, – Registrador k+1 torna-se FULL
– Registrador k agora tem BUBBLE (≡ dado já foi copiado)
• FULL registrador não pode receber dado.
• Apenas BUBBLE registrador pode receber dado.
Classificação
25Classificação dos dos Protocolos Protocolos
• Handshake /
Sinalização: 2-phase or 4-phase
• Direção: Push or pull
• Codificação: Bundled data (single rail), or dual rail (1-of-2), or
1-of-n (e.g. 1-of-4), or m-of-n, …
“
25“ Preservação Preservação ” do dado ” do dado
• Dados não disaparecem
• Dados não aparecem (de nenhum lugar)
• Um dado não substitui o outro
• Um bloco (registrador ou CL) com n entradas e m saídas:
– (quando está em BUBBLE) espera por n dados em suas entradas
– Gera m dados em suas saidas.
n m
Nos
25Nos canais canais , , há há portas portas
• As portas conectadas nos canais de comunicação podem ser passivas e ativas
– Um canal possui uma porta ativa e uma passiva.
– As portas ativas iniciam a comunicação
– As portas passivas pacientemente esperam.
Protocolos
25Protocolos de Handshake de Handshake
• Bundled data (conhecido como “single rail”)
REQ ACK
DATA PUSH CHANNEL
(DATA & REQ SAME DIRECTION)
REQ
ACK DATA
4 PHASE PROTOCOL:
ALWAYS LIKE THIS SOME VARIATIONS n
(pacote)
Codificação Single Rail
Protocolos
25Protocolos de Handshake de Handshake
• Bundled data (conhecido como “single rail”)
REQ ACK
DATA PUSH CHANNEL
(DATA & REQ SAME DIRECTION)
REQ
ACK DATA
2 PHASE PROTOCOL n
(pacote)
Codificação Single Rail
Pressuposição
25Pressuposição Bundling Bundling
• Cada linha de dado é um unico fio
– “Bundled data” é conhecido como “single rail”
• Um lado de emissor (sender), time(DATA) < time(REQ)
• A ordem dos dados e do request:
Valid(DATA) ° REQ [≡ data valid precedes REQ=1 ]
• Diferenças de atraso nas linhas devem ser analisadas:
– Posicionamento e roteamento – Margem de segurança
4
254 - - phase phase vs vs 2 2 - - phase phase
• “retorna para zero” (RZ), assim gasta tempo e potencia
• “sinaliza por nível”
• “não retorna para zero” (NRZ), assim apresenta menos
aumento de potencia
• “sinaliza por transição”
• Implementação é mais complexa
4-phase Protocol 2-phase Protocol
Protocolo
25Protocolo 4 4 - - phase dual rail phase dual rail
• Cada bit de dado é codificado por 2 fios
ACK
DATA PUSH CHANNEL
ACK DATA
2n
EMPTY 0 0 VALUE d.t d.f VALID “0” 0 1 VALID “1” 1 0 Not used 1 1
EMPTY VALID EMPTY VALID EMPTY VALID
E 1
0
Protocolo
25Protocolo 4 4 - - phase dual rail phase dual rail
• Insensivel ao atraso
– Cada bit pode ser propagado em diferente velocidade.
• 4 phase:
1. O emissor (sender) envia uma palavra valida (V) 2. O receptor (receiver) seta o ACK↑
3. Emissor envia palavra vazia (E) (retira do dado) 4. Receptor (receiver) seta ACK↓
• Cada mudança é indicada por um acknowledged
• Problemas: Glitches, hazards
Bundled Data
25Bundled Data ÅÆ ÅÆ Dual Rail Dual Rail
a a.t
a a.f
b b.t b
b.f
C
REQreq
Single Rail Dual Rail
Codificação
25Codificação : 1 : 1 - - de de - - 4 4 Sinalizações Sinalizações
• 2-bits usam 4 fios:
– 00 1000
– 01 0100
– 10 0010
– 11 0001
– Null 0000
• Ainda usa 2x fios
• Metade das transições necessárias (metade da potência)
• Menos sensibilidade a ruidos
Bundled Data
25Bundled Data ÅÆ ÅÆ 1 1 - - of of - - 4 4
a
a
b b
C
REQreq
Single Rail 1-of-4
1
251 - - of of - - 2 ( 2 ( 2 2 - - phase phase ) ) Sinalização Sinalização (dual (dual - - rail) rail)
• Cada bit em dois fios
• Um fio (xV) indica o valor (0, 1)
• O outro fio (xP) ajuda com a fase
• Para mudar de um valor para outro:
– Se valor diferente então inverter xV – Se de mesmo valor então, inverter xP
• Cada bit alterna de valido/valido/…
– Não tem valor nulo
• Potencialmente mais rápido que 4-phase dual-rail
00 01
10 11
x
Vx
PEven Odd
Acknowledgement /
25Acknowledgement / Indicação Indicação
• A porta / circuito indica acknowledge da sua entrada se para cada mudança de entrada, existe uma mudança na saída.
• Examplo: fio
• Examplo que não apresenta indicação: porta AND
– Indica Acknowledge para todos os 1s: {01,10}Æ11 – Porem não indica acknowledge para 00Æ{01,10}
25
Elementos
Elementos Básicos Básicos da da Lógica Lógica Assíncrona
Assíncrona
Celula
25Celula Threshold Threshold ou ou M de N M de N
• A célula Threshold gera zero na saida, somente se todas as entradas forem zero, do contrario, se a maioria dos dados de
entrada forem 1 entao a célula gera 1 na saida, em todos os outros casos, não há mudanças na saida.
• Porem haver células 2 out-of- 3, 3 out-of- 4, 4 out-of- 5, etc…
• Esta célula tende a gravar mais valore ‘1’s que ‘0’s.
n m
Exemplo
25Exemplo de dados de dados da da célula célula 2 2 - - out out - - of of - - 3 3
Exemplo de 2-out-of-3
Em VHDL…
Células
25Células Muller Muller ou ou C C - - element element
• Os circuitos funcionam garantidamente independente do atraso das portas assumindo que o atraso dos fios pode ser desconsiderado.
• Esta célula pode ser vista como um latch com set e reset assincrono.
• A célula Muller pode ser de n entradas.
Função Lógica:
Cout = [Cin . (a+b)] + (a.b) onde Cin = Cout.
Logo há uma realimentação, que caracteriza um elemento de armazenamento.
Muller C
25Muller C - - Element Element
• Especificação alternativa (VHDL):
– If a=b then z:=a – a=b Æz:=a – z:=ab+z(a+b) 0 0 0
a b z
0 1 no change 1 0 no change 1 1 1
Muller C
25Muller C - - Element Element
0 0 0 0
0 0 1 no change a b c z
0 1 0 no change 0 1 1 no change 1 0 0 no change 1 0 1 no change 1 1 0 no change 1 1 1 1
C
ARCHITECTURE AA OF CC IS SIGNAL ctemp: std_logic;
BEGIN
PROCESS(a,b,c) begin
if (a=b and a=c) then ctemp <= a;
else
ctemp <= ctemp;
end if;
a b c
z
Porta
25Porta Muller Muller ou ou C C - - element element
Implementação 2
Implementação 3
Implementação 4
Exemplo
25Exemplo
DIMS (Delay Insensitive Minterm Synthesis) Duas entradas
em dual-rail
Para portas de 3-entradas, usa-se 8 C-elementos de 3 entradas.
Exemplo de porta de 2-entradas:
af at
bf bt
zf zt
Exemplo
25Exemplo de Dual de Dual - - rail Latch rail Latch
25
Exemplos
Exemplos
Estilo
25Estilo de Pipeline de Pipeline
• Todos baseados em Muller Pipeline
• 4-phase bundled data:
– Similar ao pipeline sincrono
– Baseado em pressuposições temporais.
• 2-phase bundled data:
– Conhecido como micropipeline
• 4-phase dual rail:
– Conhecido como o Muller pipeline original
Muller Pipeline
25Muller Pipeline
• “The” delay-insensitive handshake machine
• C[i] accepts 1/0 from C[i-1] only if C[i+1]=0/1
• Think of 1010101.. as waves: 10 10 10 1..
• The C-elements propagate waves precisely
• Timing depends on local delays, may vary along the pipe
• If RIGHT is quiet, pipe will fill and stall
• Same for 4-phase, 2-phase
• Symmetric – same right-to-left (like electrons and holes)
C
C[i+2]
C
C[i+1]
C
C[i]
C
C[i-1]
ACK ACK ACK ACK
REQ REQ REQ REQ
ACK
REQ ACK
REQ LEFT
ACK
REQ
RIGHT
4-phase single rail (bundled data)
Micropipelines
25• Transições de sinalização
• Possui “capture-pass” latches que alternam entre capturar e passar
C C
ACK ACK
REQ REQ
ACK
REQ
LATCH LATCH
C P C P
C
LATCH
C P
ACK
REQ
2-phase single rail (bundled data)
4
254 - - phase bundled data circuits phase bundled data circuits
• Parecem como um pipeline sincrono com clock locais.
• Quando full, os C-elements são 1010101…,
Æ apenas metade dos latches guardam os valores
• Similar aos flip-flops mestre-escravos
• A velocidade é limitada pelo handshake
4
254 - - phase bundled data circuits phase bundled data circuits
C
ACK ACK
REQ REQ
LATCH
EN
FUNC.
BLOCK DELAY C
LATCH
EN
FUNC.
BLOCK DELAY
ACK
REQ
C
ACK
REQ
LATCH
EN
FUNC.
BLOCK DELAY
C C
C
ACK ACK ACK
REQ REQ REQ
ACK
REQ
LATCH LATCH LATCH
EN EN EN
Circuitos
25Circuitos 4 4 - - phase dual rail phase dual rail
• Muller pipeline
• Sem REQ – embutido no dado
C
C C
C C C
ACK
ACK
d.t
d.f
d.t
d.f
4
254 - - phase dual rail phase dual rail – – many bits many bits
C
C C
C C C
C
C C
C C C
C C C
ACK
d[0].t
d[0].f d[1].t
d[1].f
ACK
d[0].t
d[0].f d[1].t
d[1].f
Exemplo
25Exemplo
Especificação do problema da Loja de Vinho:
Canais
25Canais de de Comunicação Comunicação
25
25
25
Circuito
25Circuito que que implementa implementa protocolo protocolo
Muller Cell
Two
25Two - - phase Protocol with Bundled Data phase Protocol with Bundled Data
Two
25Two - - phase Protocol with Dual Rail phase Protocol with Dual Rail
Request está embutido no dado
Two
25Two - - phase Protocol with Bundled Data phase Protocol with Bundled Data
Com uma nova loja