SlideShare ist ein Scribd-Unternehmen logo
1 von 5
Downloaden Sie, um offline zu lesen
Dessincronização: Método de Conversão de
Sistemas Síncronos para Assíncronos
Engo
. Dênis Araújo da Silva
Departamento de Engenharia de Computação e Eletrônica
Instituto Tecnológico de Aeronáutica
CTA - São José dos Campos, São Paulo
Email: silvadenisaraujo@gmail.com
Abstract— Nowadays implementation techniques of Asynchro-
nous Systems are being developed to minimize the gap compared
to Synchronous Systems development inspired on all asynchro-
nous advantages, like low power comsuption, low electromagnetic
emisson, easy system-on-a-chip integration and so on. The Desyn-
chronization method is a good starting point for any engineer
that develops synchronous systems to start comprehending more
about the asynchronous paradigm.
I. INTRODUÇÃO
Inovações em computação em nuvem, criptografia, e-
commerce, medicina, entre outros, possuem raízes nos avan-
ços na tecnologia de semicondutores, aos quais continuam
reduzindo o tamanho do transistor e barramentos, o bloco
básico dos chips, [10]. Maioria dos circuitos desenvolvidos
hoje em dia são síncronos. Em essência, eles são baseados
em dois princípios que simplificam o design: (1) todos sinais
são binários, e (2) todos os componentes compartilham uma
noção de tempo discreto em comum, definido por um sinal de
clock distribuído em todo o circuito. Os circuitos assíncronos
são fundamentalmente diferentes, eles também assumem como
pressuposto que todos os sinais são binários, mas não há uma
noção de tempo discreto em comum [5]. Em vez da utilização
de clock, o circuito faz uso de circuitos de handshake para
necessárias comunicações, serialização de operação e sincroni-
zação. Expressado em "termos síncronos"esse comportamento
resulta em clock local de baixa granularidade, ao qual não
estão em fase e o período é definido por atrasos correntes no
circuito. A metodologia de dessincronização de circuitos sín-
cronos, aparece como proposta de minimizar as desvantagens.
A. Proposta do Artigo
A proposta de artigos é consolidar informações sobre o
método de dessincronização e disseminar o conhecimento
sobre circuitos assíncronos e principalmente a metodologia
de Dessincronização, sendo que esse tem como inspiração
vários outras contribuições passadas, onde cada um provê
um elemento chave para a metodologia. Muitos conceitos
desse artigos já são conhecidos há um certo tempo, como
protocolos de handshake, pipelines assíncronos, controladores
locais, latches, etc.
II. VANTAGENS E DESVANTAGENS DE SISTEMAS
ASSÍNCRONOS
Essa diferença provê algumas vantagens inerentes que ainda
estão sendo exploradas, comparada ao sistemas síncronos,
porém mesmo se beneficiando de diversas vantagens, algumas
desvantagens os tornam menos presentes em projetos de
circuitos atuais.
A. Vantagens
Iremos ilustrar algumas vantagens, de acordo com [5]:
• Baixo consumo de energia, devido a baixa granularidade
do sinal de sincronia e consumo zero de potência em
standby.
• Alta velocidade de operação, a velocidade de operação
é determinada pelas latências locais, em vez de ser
determinada pelo pior caso global.
• Menor emissão de ruído eletromagnético, os clocks locais
tendem a variar em pontos randômicos no tempo.
• Robustez em frente a variações de tensão de alimentação,
temperatura e parâmetros de processos de fabricação:
temporização é baseada em delays casados, sendo que em
alguns casos pode ser até insensível a atrasos do circuito
e das linhas.
• Melhor modularização, por causa das interfaces simples
de handshake e temporização local.
• Não há clock skew. Clock skew é um problema presente
em circuitos com clock global, que agrava-se cada vez
mais devido a miniaturização dos transistores, onde o si-
nal de clock chega em diferentes componentes do circuito
em diferentes tempos, causando assim uma defasagem
entre as entradas de clock, tal problema pode ser derivado
de diversas razões, como: rede de clock muito extensa,
variações de temperatura, acoplamento capacitivo, im-
perfeições no material, e diferença de capacitâncias de
entrada.
B. Desvantagens
Por outro lado, há algumas desvantagens a serem citadas,
de acordo há [5]:
• A lógica que controla o handshake geralmente representa
um overhead em termos de área de silício.
• Falta de ferramentas CAD e estratégias para geração de
circuitos.
• Falta de conhecimento dos profissionais que desenvolvem
circuitos em fundamentos de assíncronos.
• Dificuldade de realização de testes, devido a elementos
de atraso.
• Dificuldade de determinação de elementos de atraso.
III. DESINCRONIZAÇÃO
Como visto, infelizmente a utilização de sistemas assíncro-
nos possui alguns desvantagens que se tornam mais preponen-
tes dependendo do tamanho e finalidade do projeto, algumas
ferramentas já foram desenvolvidas para o desenvolvimento
de circuitos assíncronos, como o TANGRAM [2], o CHP
[9] e o TAST [4], mas eles fazem uso de uma linguagem
própria, e não necessariamente geram o circuito mais otimi-
zado. Portanto, a proposta do processo de dessincronização é
empregar os softwares de síntese de circuitos síncronos que
são amplamente utilizados, e converter o resultado no seu
correspondente assíncrono [7], como por exemplo na figura
1.
Fig. 1. Exemplo de um circuito síncrono, a) e seu correspondente assíncrono
b).
O processo de conversão não afeta quaisquer componentes
lógicos do sistema, ele somente substitui registradores de
clock por uma versão assíncrona e insere sinais de handshake
nesses componentes. A versão assíncrona resultante é um latch
mestre-escravo, conhecido como Doubly Latched Asynchro-
nous Pipeline (DLAP) [8]. Podemos verificar na figura 2 um
exemplo de DLAP, sendo que na figura 3 temos o devido grafo
de transição de sinal gerado pelo Petrify [3] e na figura 4 o
circuito gerado do latch mestre-escravo proposto.
IV. PROCESSO DE DESSINCRONIZAÇÃO
Como já descrito em seções anteriores, cada registrador
é substituído por um correspondente controlador assíncrono,
DLAP descrito na seção anterior, os controladores são inter-
conectados por sinais de handshake, request e acknowledge,
atrasos são introduzidos na linhas de request, para o devido
funcionamento do circuito e por fim, os blocos lógicos ficam
Fig. 2. Doubly Latched Asynchronous Pipeline (DLAP)
Fig. 3. Grafo de Transição de Sinal do DLAP
Fig. 4. Circuito de Controle do Latch mestre-escravo DLAP
inalterados. Esse método é baseado em single rail / bundled
data, onde bundled data consiste de uma única linha de request
empacotada em um barramento unidirecional único, que é
acoplado com uma linha de reconhecimento (acknowledge-
ment), em um típico canal bundled data ilustrado na figura 5,
o remetente inicia a comunicação e diz ao destinatário informa
que há um dado válido disponível no barramento, é apropriado
para circuitos onde todos os atrasos são conhecidos e podem
ser determinados. A principal vantagem deste método é sua
simplicidade e sua localidade, não é necessário redesenhar
todo o sistema novamente.
O processo de dessincronização pode ser separado em 5
etapas,identificação das entradas e saídas, identificação dos
Forks, identificação dos Joins, construção da malha de Request
e por fim a construção da malha de Acknowledge, que serão
detalhados nas seções à seguir, como base tomaremos o
exemplo de circuito síncrono da figura 6.
Fig. 5. Exemplo de um canal bundled data ??
Fig. 6. Exemplo de um circuito síncrono [1]
A. Conceito de Entrada/Saída
Primeiramente o método analisa todos os registradores e
indentifica todos as entradas e saídas dos blocos lógicos
combinacionais, por exemplo, na figura 6, possui três flip-flops
e três blocos combinacionais, podemos separar essas entradas
e saídas, como internas e externas, neste caso temos Entrada
Externa = I1 e Entradas Internas = I1, I2, I3, I4, Saída Externa
= O4 e Saídas Internas = O1,O2,O3.
B. Substituição dos Registradores por Latches
Nesta etapa, os registradores FF são substituídos por latches
DLAP, que possuem além da entrada e saída de dados, duas
entradas uma de request do latch mestre (Lm) e outra do latch
escravo (Ls), que os conecta cada um com um controlador que
será responsável pelo handshake, tal controlador possui duas
entradas e duas saídas, sendo uma entrada de request e de
acknowledge e uma saída de request e de acknowledge, após
a substituição obtemos o circuito descrito na figura 7.
Fig. 7. Circuito resultante após o passo de substituição dos regitradores. [1]
C. Forks e Joins
De acordo a [6] Um conjunto de Forks contém elementos
de saída, que são associados a cada elemento da estrutura de
entrada. Uma saída Oi pertencente ao conjunto de saídas, é um
membro de um Fork de entradas Ik que pertence ao conjunto
de entradas, se existe um caminho combinacional direto entre
Oi e Ik. Por exemplo, na figura 7 temos os seguintes con-
juntos de Forks: Fork(I1)=O1,O2, Fork(I2)=O3, Fork(I3)=O3,
Fork(I4)=O4. Similarmente um conjunto de Joins é criado
para cada elemento de saída, porém somente com elementos
de entrada na estrutura que são incluídos no conjunto, na
figura 7 temos os seguintes conjuntos de Joins, Join(O1)=I1,
Join(O2)=I2, Join(O3)=I2,I3 e Join(O4)=I4.
D. Rede de Request
Apos determinado os conjuntos de Forks e Joins, tem-se
condição de se desenvolver a rede de request. Nessa etapa
os sinais de requests de todos os controladores são gerados,
e são inseridos atrasos e elementos C para a devida união
de dois sinais. Vamos considerar o primeiro fork definido
neste artigo, Fork(i1) = O1, O2. I1 é o ponto de início
de dois caminhos combinacionais, levando a O1 e O2. As
respectivas linhas de request serão descritas como req_I1,
req_01 e req_O2, como descritas na figura 8 e depois temos
de considerar os atrasos que necessitam de ser colocados nas
linhas para o devido funcionamento do sistema, portanto os
atrasos d11 = atraso(I1,O1) e d12 = atraso(I1, O2) devem ser
determinados, sendo que a função de atraso sempre produz um
atraso considerando o atraso combinacional mais uma margem
de segurança, quando inserido, resulta na figura 9, para evitar
a duplicação dos atrasos uma estratégia de otimização pode ser
tomada, como no caso da figura 10 onde d11 < d12, inserimos
um atraso em comum e se caso necessário complementamos
o atraso em somente uma das linhas de request.
Formalmente, de acordo a [1]:
• Para cada par (entrada,saída) com nós (Ik, Oi), se Oi
pertence ao conjunto do Fork(Ik), então uma linha de
request é introduzida de Ik para Oi.
• Um atraso combinacional mais uma margem de segurança
é introduzido na linha de request entre (Ik,Oi).
Fig. 8. Exemplo de um fork. [1]
Fig. 9. Fork introduzido de atrasos. [1]
Fig. 10. Fork introduzido de atrasos com uma simples otimização. [1]
Um processo complementar agora deve ser aplicado aos
conjuntos de Join. Para exemplificar utilizaremos um conjunto
anteriormente definido Join(O3)=I2, I3. Uma linha da request
é gerada para cada par, (I2,O3) e (I3,O3), como na figura 11.
As duas linhas de request são combinados com um elemento-
C, ao qual serve como uma porta AND que responde a eventos
e por fim temos a devida malha de request resultante na figura
12
Fig. 11. Junção de duas linhas de request na geração da malha de request
[1]
Fig. 12. Circuito resultante após o passo de geração da malha de request
[1]
E. Rede de Acknowledge
Oposto ao processo de geração da rede de Request, a rede de
Acknowledge se baseia nos conjuntos de Forks anteriormente
definidos, De acordo a [1], a rede é definida pelo seguintes
princípios.
• Para cada par (entrada, saída) com nós (Ik, Oi), se
Oi pertencer ao conjunto Fork(Ik) então uma linha de
acknowledge é introduzida de Oi para Ik.
• Se n=||Fork(Oi)|| > 1 então um elemento-C de n-entradas
é empregado para combinar todas as n linhas de ackno-
wledge convergindo para Ik. A saída do elemento-C é o
acknowledge de Ik.
Após seguido todas as etapas anteriores, temos o circuito
resultante demonstrado na figura 14.
Fig. 13. Princípios para criação da rede de acknowledge [1]
Fig. 14. Circuito final [1]
V. ASYNCHRONOUS OPEN-SOURCE PROCESSOR IP OF THE
DLX ARCHITECTURE (ASPIDA)
Cortadella et al. demonstrou em [6] uma versão do pro-
cessador DLX dessincronizado, denomidado de ASynchronous
open-source Processor Ip of the Dlx Architecture(ASPIDA),
como podemos ver na figura 15, que é um processador de 4
etapas, IF, Instruction Fetch, ID, Instruction Decodification,
EX, Execution e MEM, Memorization. Tal processador ASIP,
foi sintetizado e até mesmo fabricado, podemos verificar que
o desempenho do processador de acordo com os estudos do
autor, foram satisfatórios em termos de energia por ciclo, e
variação da tensão de alimentação, como vemos no gráfico
16.
Fig. 16. Circuito final [1]
VI. CONCLUSÃO
A metodologia sugerida pela Dessincronização pode resul-
tar em uma integração SOC, silicon-on-a-chip, mais simples,
além de representar uma redução nos passos de design de
um circuito assíncrono. Como a arquitetura assíncrona oferece
baixo consumo de energia e possivelmente baixa emissão
eletromagnética, aos quais são importantes, pois reduzem o
Fig. 15. ASPIDA structure [6]
custo de fabricação, além de ser mais seguro e fácil de
integrar com circuitos analógicos. Assim como o processo
de dessincronização pode ser muito vantajoso, é relevante
ressaltar que mesmo com todas as vantagens é necessário
ter um conhecimento profundo sobre os possíveis atrasos
do sistema, assim se a determinação dos atrasos nas linhas
de request e acknowledge não for ideal, grande parte das
vantagens de se ter um projeto assíncrono podem não ser
alcançadas, devido ao excesso ou falta de atraso nas linhas.
REFERENCES
[1] Ran Ginosar Alex Branover, Rakefet Kol. Asynchronous design by
conversion: Converting synchronous circuits into asynchronous ones.
2004.
[2] Berkel et al. Vlsi programming and silicon compilation. page 150—166,
1988.
[3] Cortadella et al. Petrify. page 315—325, 1997.
[4] Renaudin et al. A design framework for asynchronous/synchronous
circuits based on chp to hdl translation. page 135—144, 1999.
[5] Steve Furber Jens Sparso. Principles of Asynchronous Circuit Design -
A Systems Perspective. Springer US, 2001.
[6] Luciano Lavagno Jordi Cortadella. Desynchronization: Synthesis of
asynchronous circuits from synchronous specifications. 2006.
[7] Ginosar Kol and Samuel. Statechart methodology for asynchronous
systems. 1996.
[8] Ginosar Kol and Samuel. A doubly-latched asynchronous pipeline. page
706—711, 1997.
[9] Martin. “programming in vlsi,” concurrency and communication. pages
1–64, 1990.
[10] Marcos Ferreti Peter A. Beerel, Recep O. Ozdag. A Designer’s Guide
to Asynchronous VLSI. Cambridge, 2010.

Weitere ähnliche Inhalte

Was ist angesagt?

Curso básico de eletrônica digital parte 11
Curso básico de eletrônica digital parte 11Curso básico de eletrônica digital parte 11
Curso básico de eletrônica digital parte 11Renan Boccia
 
Curso básico de eletrônica digital parte 3
Curso básico de eletrônica digital parte 3Curso básico de eletrônica digital parte 3
Curso básico de eletrônica digital parte 3Renan Boccia
 
Curso básico de eletrônica digital parte 4
Curso básico de eletrônica digital parte 4Curso básico de eletrônica digital parte 4
Curso básico de eletrônica digital parte 4Renan Boccia
 
Curso básico de eletrônica digital parte 7
Curso básico de eletrônica digital parte 7Curso básico de eletrônica digital parte 7
Curso básico de eletrônica digital parte 7Renan Boccia
 
Redes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de TransporteRedes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de TransporteWellington Oliveira
 
Cascateamento de switch
Cascateamento de switchCascateamento de switch
Cascateamento de switchCarlos Veiga
 
Modelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAModelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAwolkartt_18
 
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IP
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IPRedes de Computadores 2 - Aula 2 - Protocolo TCP/IP
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IPCleber Fonseca
 
Aula 2 - Assembly - 8051
Aula 2 - Assembly - 8051Aula 2 - Assembly - 8051
Aula 2 - Assembly - 8051Thiago Oliveira
 

Was ist angesagt? (13)

Curso básico de eletrônica digital parte 11
Curso básico de eletrônica digital parte 11Curso básico de eletrônica digital parte 11
Curso básico de eletrônica digital parte 11
 
Curso básico de eletrônica digital parte 3
Curso básico de eletrônica digital parte 3Curso básico de eletrônica digital parte 3
Curso básico de eletrônica digital parte 3
 
Curso básico de eletrônica digital parte 4
Curso básico de eletrônica digital parte 4Curso básico de eletrônica digital parte 4
Curso básico de eletrônica digital parte 4
 
Curso básico de eletrônica digital parte 7
Curso básico de eletrônica digital parte 7Curso básico de eletrônica digital parte 7
Curso básico de eletrônica digital parte 7
 
Lan token fddi_switching
Lan token fddi_switchingLan token fddi_switching
Lan token fddi_switching
 
Redes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de TransporteRedes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de Transporte
 
Unidade Aritmética
Unidade AritméticaUnidade Aritmética
Unidade Aritmética
 
Cascateamento de switch
Cascateamento de switchCascateamento de switch
Cascateamento de switch
 
Cap4
Cap4Cap4
Cap4
 
Protocolos de Redes
Protocolos de RedesProtocolos de Redes
Protocolos de Redes
 
Modelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAModelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNA
 
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IP
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IPRedes de Computadores 2 - Aula 2 - Protocolo TCP/IP
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IP
 
Aula 2 - Assembly - 8051
Aula 2 - Assembly - 8051Aula 2 - Assembly - 8051
Aula 2 - Assembly - 8051
 

Ähnlich wie Artigo - Dessincronização: Método de Conversão de Circuitos Síncronos para Assícnronos.

Redes de Computadores Capítulo 3 - Camada de Enlace
Redes de Computadores Capítulo 3 - Camada de EnlaceRedes de Computadores Capítulo 3 - Camada de Enlace
Redes de Computadores Capítulo 3 - Camada de EnlaceWellington Oliveira
 
Relatório Prático - Sistemas Eletrónicos
Relatório Prático - Sistemas EletrónicosRelatório Prático - Sistemas Eletrónicos
Relatório Prático - Sistemas EletrónicosRui Oliveira
 
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Capítulo 15   conexões de lans, redes backbone e lans virtuaisCapítulo 15   conexões de lans, redes backbone e lans virtuais
Capítulo 15 conexões de lans, redes backbone e lans virtuaisFaculdade Mater Christi
 
Redes redes locais
Redes   redes locaisRedes   redes locais
Redes redes locaisrobinhoct
 
Camada de Transporte Redes Tanenbaum
Camada de Transporte Redes TanenbaumCamada de Transporte Redes Tanenbaum
Camada de Transporte Redes TanenbaumWellington Oliveira
 
Redes - Camada Enlace
Redes - Camada EnlaceRedes - Camada Enlace
Redes - Camada EnlaceLuiz Arthur
 
Downloads telecom com_dados_exercicios_exercicio_parte 1 geral
Downloads telecom com_dados_exercicios_exercicio_parte 1 geralDownloads telecom com_dados_exercicios_exercicio_parte 1 geral
Downloads telecom com_dados_exercicios_exercicio_parte 1 geralRonaldo Souza
 
Fundamentos modelo osi_iso
Fundamentos modelo osi_isoFundamentos modelo osi_iso
Fundamentos modelo osi_isoMario Alex
 
Apresentação - projeto medição energia ESP32 e ThingSpeak - sem video (1) atu...
Apresentação - projeto medição energia ESP32 e ThingSpeak - sem video (1) atu...Apresentação - projeto medição energia ESP32 e ThingSpeak - sem video (1) atu...
Apresentação - projeto medição energia ESP32 e ThingSpeak - sem video (1) atu...FranciscoZaninFernan1
 
REDES DE COMPUTADORES - SEMANA 3.pdf
REDES DE COMPUTADORES - SEMANA 3.pdfREDES DE COMPUTADORES - SEMANA 3.pdf
REDES DE COMPUTADORES - SEMANA 3.pdfVagnerSimoesSantos
 
Artigo Ilha Digital - Controlador de Motor de Passo
Artigo Ilha Digital - Controlador de Motor de PassoArtigo Ilha Digital - Controlador de Motor de Passo
Artigo Ilha Digital - Controlador de Motor de PassoGS-Silva
 

Ähnlich wie Artigo - Dessincronização: Método de Conversão de Circuitos Síncronos para Assícnronos. (20)

Simulacao analise e_controle_de_motor_de_corrente_
Simulacao analise e_controle_de_motor_de_corrente_Simulacao analise e_controle_de_motor_de_corrente_
Simulacao analise e_controle_de_motor_de_corrente_
 
Redes de Computadores Capítulo 3 - Camada de Enlace
Redes de Computadores Capítulo 3 - Camada de EnlaceRedes de Computadores Capítulo 3 - Camada de Enlace
Redes de Computadores Capítulo 3 - Camada de Enlace
 
Relatório Prático - Sistemas Eletrónicos
Relatório Prático - Sistemas EletrónicosRelatório Prático - Sistemas Eletrónicos
Relatório Prático - Sistemas Eletrónicos
 
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Capítulo 15   conexões de lans, redes backbone e lans virtuaisCapítulo 15   conexões de lans, redes backbone e lans virtuais
Capítulo 15 conexões de lans, redes backbone e lans virtuais
 
Lista01
Lista01Lista01
Lista01
 
Redes redes locais
Redes   redes locaisRedes   redes locais
Redes redes locais
 
Questoes
QuestoesQuestoes
Questoes
 
Camada de Transporte Redes Tanenbaum
Camada de Transporte Redes TanenbaumCamada de Transporte Redes Tanenbaum
Camada de Transporte Redes Tanenbaum
 
Redes - Camada Enlace
Redes - Camada EnlaceRedes - Camada Enlace
Redes - Camada Enlace
 
44 sockets[1]
44 sockets[1]44 sockets[1]
44 sockets[1]
 
Downloads telecom com_dados_exercicios_exercicio_parte 1 geral
Downloads telecom com_dados_exercicios_exercicio_parte 1 geralDownloads telecom com_dados_exercicios_exercicio_parte 1 geral
Downloads telecom com_dados_exercicios_exercicio_parte 1 geral
 
Lista04
Lista04Lista04
Lista04
 
Exercicio parte1
Exercicio parte1Exercicio parte1
Exercicio parte1
 
Fundamentos modelo osi_iso
Fundamentos modelo osi_isoFundamentos modelo osi_iso
Fundamentos modelo osi_iso
 
Cof03 0553
Cof03 0553Cof03 0553
Cof03 0553
 
Apresentação - projeto medição energia ESP32 e ThingSpeak - sem video (1) atu...
Apresentação - projeto medição energia ESP32 e ThingSpeak - sem video (1) atu...Apresentação - projeto medição energia ESP32 e ThingSpeak - sem video (1) atu...
Apresentação - projeto medição energia ESP32 e ThingSpeak - sem video (1) atu...
 
cap4.ppt
cap4.pptcap4.ppt
cap4.ppt
 
Exercicios 06
Exercicios 06Exercicios 06
Exercicios 06
 
REDES DE COMPUTADORES - SEMANA 3.pdf
REDES DE COMPUTADORES - SEMANA 3.pdfREDES DE COMPUTADORES - SEMANA 3.pdf
REDES DE COMPUTADORES - SEMANA 3.pdf
 
Artigo Ilha Digital - Controlador de Motor de Passo
Artigo Ilha Digital - Controlador de Motor de PassoArtigo Ilha Digital - Controlador de Motor de Passo
Artigo Ilha Digital - Controlador de Motor de Passo
 

Artigo - Dessincronização: Método de Conversão de Circuitos Síncronos para Assícnronos.

  • 1. Dessincronização: Método de Conversão de Sistemas Síncronos para Assíncronos Engo . Dênis Araújo da Silva Departamento de Engenharia de Computação e Eletrônica Instituto Tecnológico de Aeronáutica CTA - São José dos Campos, São Paulo Email: silvadenisaraujo@gmail.com Abstract— Nowadays implementation techniques of Asynchro- nous Systems are being developed to minimize the gap compared to Synchronous Systems development inspired on all asynchro- nous advantages, like low power comsuption, low electromagnetic emisson, easy system-on-a-chip integration and so on. The Desyn- chronization method is a good starting point for any engineer that develops synchronous systems to start comprehending more about the asynchronous paradigm. I. INTRODUÇÃO Inovações em computação em nuvem, criptografia, e- commerce, medicina, entre outros, possuem raízes nos avan- ços na tecnologia de semicondutores, aos quais continuam reduzindo o tamanho do transistor e barramentos, o bloco básico dos chips, [10]. Maioria dos circuitos desenvolvidos hoje em dia são síncronos. Em essência, eles são baseados em dois princípios que simplificam o design: (1) todos sinais são binários, e (2) todos os componentes compartilham uma noção de tempo discreto em comum, definido por um sinal de clock distribuído em todo o circuito. Os circuitos assíncronos são fundamentalmente diferentes, eles também assumem como pressuposto que todos os sinais são binários, mas não há uma noção de tempo discreto em comum [5]. Em vez da utilização de clock, o circuito faz uso de circuitos de handshake para necessárias comunicações, serialização de operação e sincroni- zação. Expressado em "termos síncronos"esse comportamento resulta em clock local de baixa granularidade, ao qual não estão em fase e o período é definido por atrasos correntes no circuito. A metodologia de dessincronização de circuitos sín- cronos, aparece como proposta de minimizar as desvantagens. A. Proposta do Artigo A proposta de artigos é consolidar informações sobre o método de dessincronização e disseminar o conhecimento sobre circuitos assíncronos e principalmente a metodologia de Dessincronização, sendo que esse tem como inspiração vários outras contribuições passadas, onde cada um provê um elemento chave para a metodologia. Muitos conceitos desse artigos já são conhecidos há um certo tempo, como protocolos de handshake, pipelines assíncronos, controladores locais, latches, etc. II. VANTAGENS E DESVANTAGENS DE SISTEMAS ASSÍNCRONOS Essa diferença provê algumas vantagens inerentes que ainda estão sendo exploradas, comparada ao sistemas síncronos, porém mesmo se beneficiando de diversas vantagens, algumas desvantagens os tornam menos presentes em projetos de circuitos atuais. A. Vantagens Iremos ilustrar algumas vantagens, de acordo com [5]: • Baixo consumo de energia, devido a baixa granularidade do sinal de sincronia e consumo zero de potência em standby. • Alta velocidade de operação, a velocidade de operação é determinada pelas latências locais, em vez de ser determinada pelo pior caso global. • Menor emissão de ruído eletromagnético, os clocks locais tendem a variar em pontos randômicos no tempo. • Robustez em frente a variações de tensão de alimentação, temperatura e parâmetros de processos de fabricação: temporização é baseada em delays casados, sendo que em alguns casos pode ser até insensível a atrasos do circuito e das linhas. • Melhor modularização, por causa das interfaces simples de handshake e temporização local. • Não há clock skew. Clock skew é um problema presente em circuitos com clock global, que agrava-se cada vez mais devido a miniaturização dos transistores, onde o si- nal de clock chega em diferentes componentes do circuito em diferentes tempos, causando assim uma defasagem entre as entradas de clock, tal problema pode ser derivado de diversas razões, como: rede de clock muito extensa, variações de temperatura, acoplamento capacitivo, im- perfeições no material, e diferença de capacitâncias de entrada. B. Desvantagens Por outro lado, há algumas desvantagens a serem citadas, de acordo há [5]: • A lógica que controla o handshake geralmente representa um overhead em termos de área de silício. • Falta de ferramentas CAD e estratégias para geração de circuitos.
  • 2. • Falta de conhecimento dos profissionais que desenvolvem circuitos em fundamentos de assíncronos. • Dificuldade de realização de testes, devido a elementos de atraso. • Dificuldade de determinação de elementos de atraso. III. DESINCRONIZAÇÃO Como visto, infelizmente a utilização de sistemas assíncro- nos possui alguns desvantagens que se tornam mais preponen- tes dependendo do tamanho e finalidade do projeto, algumas ferramentas já foram desenvolvidas para o desenvolvimento de circuitos assíncronos, como o TANGRAM [2], o CHP [9] e o TAST [4], mas eles fazem uso de uma linguagem própria, e não necessariamente geram o circuito mais otimi- zado. Portanto, a proposta do processo de dessincronização é empregar os softwares de síntese de circuitos síncronos que são amplamente utilizados, e converter o resultado no seu correspondente assíncrono [7], como por exemplo na figura 1. Fig. 1. Exemplo de um circuito síncrono, a) e seu correspondente assíncrono b). O processo de conversão não afeta quaisquer componentes lógicos do sistema, ele somente substitui registradores de clock por uma versão assíncrona e insere sinais de handshake nesses componentes. A versão assíncrona resultante é um latch mestre-escravo, conhecido como Doubly Latched Asynchro- nous Pipeline (DLAP) [8]. Podemos verificar na figura 2 um exemplo de DLAP, sendo que na figura 3 temos o devido grafo de transição de sinal gerado pelo Petrify [3] e na figura 4 o circuito gerado do latch mestre-escravo proposto. IV. PROCESSO DE DESSINCRONIZAÇÃO Como já descrito em seções anteriores, cada registrador é substituído por um correspondente controlador assíncrono, DLAP descrito na seção anterior, os controladores são inter- conectados por sinais de handshake, request e acknowledge, atrasos são introduzidos na linhas de request, para o devido funcionamento do circuito e por fim, os blocos lógicos ficam Fig. 2. Doubly Latched Asynchronous Pipeline (DLAP) Fig. 3. Grafo de Transição de Sinal do DLAP Fig. 4. Circuito de Controle do Latch mestre-escravo DLAP inalterados. Esse método é baseado em single rail / bundled data, onde bundled data consiste de uma única linha de request empacotada em um barramento unidirecional único, que é acoplado com uma linha de reconhecimento (acknowledge- ment), em um típico canal bundled data ilustrado na figura 5, o remetente inicia a comunicação e diz ao destinatário informa que há um dado válido disponível no barramento, é apropriado para circuitos onde todos os atrasos são conhecidos e podem ser determinados. A principal vantagem deste método é sua simplicidade e sua localidade, não é necessário redesenhar todo o sistema novamente. O processo de dessincronização pode ser separado em 5 etapas,identificação das entradas e saídas, identificação dos Forks, identificação dos Joins, construção da malha de Request
  • 3. e por fim a construção da malha de Acknowledge, que serão detalhados nas seções à seguir, como base tomaremos o exemplo de circuito síncrono da figura 6. Fig. 5. Exemplo de um canal bundled data ?? Fig. 6. Exemplo de um circuito síncrono [1] A. Conceito de Entrada/Saída Primeiramente o método analisa todos os registradores e indentifica todos as entradas e saídas dos blocos lógicos combinacionais, por exemplo, na figura 6, possui três flip-flops e três blocos combinacionais, podemos separar essas entradas e saídas, como internas e externas, neste caso temos Entrada Externa = I1 e Entradas Internas = I1, I2, I3, I4, Saída Externa = O4 e Saídas Internas = O1,O2,O3. B. Substituição dos Registradores por Latches Nesta etapa, os registradores FF são substituídos por latches DLAP, que possuem além da entrada e saída de dados, duas entradas uma de request do latch mestre (Lm) e outra do latch escravo (Ls), que os conecta cada um com um controlador que será responsável pelo handshake, tal controlador possui duas entradas e duas saídas, sendo uma entrada de request e de acknowledge e uma saída de request e de acknowledge, após a substituição obtemos o circuito descrito na figura 7. Fig. 7. Circuito resultante após o passo de substituição dos regitradores. [1] C. Forks e Joins De acordo a [6] Um conjunto de Forks contém elementos de saída, que são associados a cada elemento da estrutura de entrada. Uma saída Oi pertencente ao conjunto de saídas, é um membro de um Fork de entradas Ik que pertence ao conjunto de entradas, se existe um caminho combinacional direto entre Oi e Ik. Por exemplo, na figura 7 temos os seguintes con- juntos de Forks: Fork(I1)=O1,O2, Fork(I2)=O3, Fork(I3)=O3, Fork(I4)=O4. Similarmente um conjunto de Joins é criado para cada elemento de saída, porém somente com elementos de entrada na estrutura que são incluídos no conjunto, na figura 7 temos os seguintes conjuntos de Joins, Join(O1)=I1, Join(O2)=I2, Join(O3)=I2,I3 e Join(O4)=I4. D. Rede de Request Apos determinado os conjuntos de Forks e Joins, tem-se condição de se desenvolver a rede de request. Nessa etapa os sinais de requests de todos os controladores são gerados, e são inseridos atrasos e elementos C para a devida união de dois sinais. Vamos considerar o primeiro fork definido neste artigo, Fork(i1) = O1, O2. I1 é o ponto de início de dois caminhos combinacionais, levando a O1 e O2. As respectivas linhas de request serão descritas como req_I1, req_01 e req_O2, como descritas na figura 8 e depois temos de considerar os atrasos que necessitam de ser colocados nas linhas para o devido funcionamento do sistema, portanto os atrasos d11 = atraso(I1,O1) e d12 = atraso(I1, O2) devem ser determinados, sendo que a função de atraso sempre produz um atraso considerando o atraso combinacional mais uma margem de segurança, quando inserido, resulta na figura 9, para evitar a duplicação dos atrasos uma estratégia de otimização pode ser tomada, como no caso da figura 10 onde d11 < d12, inserimos um atraso em comum e se caso necessário complementamos o atraso em somente uma das linhas de request. Formalmente, de acordo a [1]: • Para cada par (entrada,saída) com nós (Ik, Oi), se Oi pertence ao conjunto do Fork(Ik), então uma linha de request é introduzida de Ik para Oi. • Um atraso combinacional mais uma margem de segurança é introduzido na linha de request entre (Ik,Oi). Fig. 8. Exemplo de um fork. [1] Fig. 9. Fork introduzido de atrasos. [1]
  • 4. Fig. 10. Fork introduzido de atrasos com uma simples otimização. [1] Um processo complementar agora deve ser aplicado aos conjuntos de Join. Para exemplificar utilizaremos um conjunto anteriormente definido Join(O3)=I2, I3. Uma linha da request é gerada para cada par, (I2,O3) e (I3,O3), como na figura 11. As duas linhas de request são combinados com um elemento- C, ao qual serve como uma porta AND que responde a eventos e por fim temos a devida malha de request resultante na figura 12 Fig. 11. Junção de duas linhas de request na geração da malha de request [1] Fig. 12. Circuito resultante após o passo de geração da malha de request [1] E. Rede de Acknowledge Oposto ao processo de geração da rede de Request, a rede de Acknowledge se baseia nos conjuntos de Forks anteriormente definidos, De acordo a [1], a rede é definida pelo seguintes princípios. • Para cada par (entrada, saída) com nós (Ik, Oi), se Oi pertencer ao conjunto Fork(Ik) então uma linha de acknowledge é introduzida de Oi para Ik. • Se n=||Fork(Oi)|| > 1 então um elemento-C de n-entradas é empregado para combinar todas as n linhas de ackno- wledge convergindo para Ik. A saída do elemento-C é o acknowledge de Ik. Após seguido todas as etapas anteriores, temos o circuito resultante demonstrado na figura 14. Fig. 13. Princípios para criação da rede de acknowledge [1] Fig. 14. Circuito final [1] V. ASYNCHRONOUS OPEN-SOURCE PROCESSOR IP OF THE DLX ARCHITECTURE (ASPIDA) Cortadella et al. demonstrou em [6] uma versão do pro- cessador DLX dessincronizado, denomidado de ASynchronous open-source Processor Ip of the Dlx Architecture(ASPIDA), como podemos ver na figura 15, que é um processador de 4 etapas, IF, Instruction Fetch, ID, Instruction Decodification, EX, Execution e MEM, Memorization. Tal processador ASIP, foi sintetizado e até mesmo fabricado, podemos verificar que o desempenho do processador de acordo com os estudos do autor, foram satisfatórios em termos de energia por ciclo, e variação da tensão de alimentação, como vemos no gráfico 16. Fig. 16. Circuito final [1] VI. CONCLUSÃO A metodologia sugerida pela Dessincronização pode resul- tar em uma integração SOC, silicon-on-a-chip, mais simples, além de representar uma redução nos passos de design de um circuito assíncrono. Como a arquitetura assíncrona oferece baixo consumo de energia e possivelmente baixa emissão eletromagnética, aos quais são importantes, pois reduzem o
  • 5. Fig. 15. ASPIDA structure [6] custo de fabricação, além de ser mais seguro e fácil de integrar com circuitos analógicos. Assim como o processo de dessincronização pode ser muito vantajoso, é relevante ressaltar que mesmo com todas as vantagens é necessário ter um conhecimento profundo sobre os possíveis atrasos do sistema, assim se a determinação dos atrasos nas linhas de request e acknowledge não for ideal, grande parte das vantagens de se ter um projeto assíncrono podem não ser alcançadas, devido ao excesso ou falta de atraso nas linhas. REFERENCES [1] Ran Ginosar Alex Branover, Rakefet Kol. Asynchronous design by conversion: Converting synchronous circuits into asynchronous ones. 2004. [2] Berkel et al. Vlsi programming and silicon compilation. page 150—166, 1988. [3] Cortadella et al. Petrify. page 315—325, 1997. [4] Renaudin et al. A design framework for asynchronous/synchronous circuits based on chp to hdl translation. page 135—144, 1999. [5] Steve Furber Jens Sparso. Principles of Asynchronous Circuit Design - A Systems Perspective. Springer US, 2001. [6] Luciano Lavagno Jordi Cortadella. Desynchronization: Synthesis of asynchronous circuits from synchronous specifications. 2006. [7] Ginosar Kol and Samuel. Statechart methodology for asynchronous systems. 1996. [8] Ginosar Kol and Samuel. A doubly-latched asynchronous pipeline. page 706—711, 1997. [9] Martin. “programming in vlsi,” concurrency and communication. pages 1–64, 1990. [10] Marcos Ferreti Peter A. Beerel, Recep O. Ozdag. A Designer’s Guide to Asynchronous VLSI. Cambridge, 2010.