Dessincronização: Método de Conversão de
Sistemas Síncronos para Assíncronos
Engo
. Dênis Araújo da Silva
Departamento de ...
• Falta de conhecimento dos profissionais que desenvolvem
circuitos em fundamentos de assíncronos.
• Dificuldade de realizaç...
e por fim a construção da malha de Acknowledge, que serão
detalhados nas seções à seguir, como base tomaremos o
exemplo de ...
Fig. 10. Fork introduzido de atrasos com uma simples otimização. [1]
Um processo complementar agora deve ser aplicado aos
...
Fig. 15. ASPIDA structure [6]
custo de fabricação, além de ser mais seguro e fácil de
integrar com circuitos analógicos. A...
Próximos SlideShares
Carregando em…5
×

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

133 visualizações

Publicada em

Publicada em: Engenharia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

  1. 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. 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. 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. 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. 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.

×