• Nenhum resultado encontrado

6.4 Descri¸ c˜ ao dos componentes hardware

6.4.1 Componente de mais alto n´ıvel da aplica¸c˜ ao

FIGURA 6.6: Componente de hardware de mais alto n´ıvel

Esse componente ´e o de mais alto-n´ıvel pois engloba todos os demais (exceto o componente de adapta¸c˜ao `a placa (ou de interface) que divide a sa´ıda em partes, se esse for necess´ario). Na figura 6.6 temos uma representa¸c˜ao do tipo “caixa- preta” do circuito de mais alto n´ıvel da aplica¸c˜ao proposto. As sa´ıdas deste componente, como veremos com mais detalhes abaixo, s˜ao os m´aximos locais (pontua¸c˜ao e coordenadas) apresentados pelos processadores. Esses m´aximos s˜ao exibidos em ordem decrescente de pontua¸c˜ao, partindo-se do m´aximo global. O pr´oximo m´aximo ´e pedido acionando-se o sinal max_prox_i.

Entradas:

• reset_i: sinal de inicializa¸c˜ao (reset ) do circuito. Ao ser ativado ´e atri- bu´ıdo um valor inicial para as mem´orias, levando o circuito a um estado inicial;

• max_proximo_i: cada vez que ´e acionado, o circuito exibe informa¸c˜oes sobre o pr´oximo m´aximo local (em ordem decrescente e iniciando por um m´aximo global). Na prototipa¸c˜ao realizada, um novo m´aximo local ´e pedido quando as quatro partes (valor, coluna e a antidiagonal em 2 bytes) do m´aximo anterior j´a foram exibidas. A cada quatro vezes que o usu´ario aperta o bot˜ao na placa, ´e conclu´ıda a exibi¸c˜ao de um m´aximo local e o circuito de interface ativa o sinal max_proximo_i, pedindo as informa¸c˜oes do pr´oximo m´aximo local.

Sa´ıdas:

• max_pronto_o: este sinal quando ativado indica o in´ıcio das sa´ıdas. As sa´ıdas s˜ao os m´aximos locais de cada coluna (pontua¸c˜ao e coordenadas) e s˜ao exibidas nos demais sinais de sa´ıda (max_o, max_col_o e max_clk_- ticks_o, conforme abaixo). A primeira sa´ıda s˜ao os dados do m´aximo global. Depois, a cada ativa¸c˜ao de max_proximo_i, ´e exibido o pr´oximo m´aximo local, em ordem decrescente de pontua¸c˜ao. As informa¸c˜oes dos m´aximos s˜ao disponibilizadas pelos sinais que seguem;

• max_o: valor da c´elula do m´aximo local. Pode ser visto como a pontua¸c˜ao do alinhamento representado pela c´elula;

• max_col_o: coluna onde ocorreu a c´elula. Usada para podermos localiz´a-la na matriz;

• max_clk_ticks_o: tempo de rel´ogio quando da produ¸c˜ao da c´elula. O tempo de rel´ogio equivale ao n´umero da antidiagonal onde a c´elula est´a

CAP´ITULO 6. AN ´ALISE E DESCRI ¸C ˜AO DA PROPOSTA 73 presente. A coluna e o n´umero da antidiagonal s˜ao as informa¸c˜oes utilizadas

para localizar a c´elula e reconstruir o alinhamento que ela representa. L´ogica interna: A seq¨uˆencia de consulta ´e fixa e a do banco-de-dados ´e uma entrada, pr´e-carregada numa mem´oria do circuito. Quando o sinal de reset ´e ativado e desativado, inicia-se o processamento. A primeira base do banco-de- dados vai para o primeiro processador, no pr´oximo ciclo a segunda vai para este elemento e assim por diante. Quando a seq¨uˆencia do banco-de-dados termina (e todas as c´elulas da matriz foram calculadas), uma l´ogica interna ativa o in´ıcio da apresenta¸c˜ao dos m´aximos locais.

Os m´aximos s˜ao armazenados em uma mem´oria RAM. Ao final, uma l´ogica apresenta-os em ordem decrescente de pontua¸c˜ao. A apresenta¸c˜ao inicia-se por um um m´aximo global (maior pontua¸c˜ao entre os m´aximos locais). O sinal max_- pronto_o indica que uma sa´ıda do circuito est´a dispon´ıvel. Essa sa´ıda ´e composta pelos sinais max_o, max_col_o e max_clk_ticks_o. Esses trˆes componentes s˜ao mantidos nas linhas de sa´ıda at´e que a entrada max_proximo_i seja ativada, indicando que o usu´ario j´a leu essa informa¸c˜ao e deseja uma nova. Cada vez que o sinal max_proximo_i ´e ativado, o circuito apresenta o pr´oximo m´aximo local (pontua¸c˜ao e coordenadas), em ordem decrescente de pontua¸c˜ao, at´e que todos os m´aximos locais sejam exibidos.

Estrutura interna:

Na figura 6.7 temos uma representa¸c˜ao da estrutura interna do elemento de mais alto n´ıvel.

Podemos ver a existˆencia de cinco sub-componentes, os quais dividimos em trˆes partes:

• l´ogica de entrada: composta pelo primeiro elemento `a esquerda. Nesta prototipa¸c˜ao, a seq¨uˆencia do banco-de-dados fica pr´e-carregada numa me- m´oria interna desse componente. Os sinais bbd_i (base do banco-de-dados) e fim_bbd_i (fim da bases) s˜ao gerados por esse componente e s˜ao as en- tradas do conjunto de processadores (se¸c˜ao 6.4.2abaixo);

• conjunto de processadores: um arranjo sist´olico unidirecional composto de processadores, conforme descrito em 6.4.2 e na literatura revisada. Esses processadores implementam em paralelo o algoritmo de Smith-Waterman de alinhamento local. A maior parte da ´area do chip corresponde a imple- menta¸c˜ao desses elementos de processamento;

• l´ogica de sa´ıda, composta pelos trˆes elementos mais `a direita na figura 6.7. – o subcomponente mais pr´oximo do conjunto de processadores ´e respon- s´avel por ler a sa´ıda deste, ou seja o m´aximo local de cada processador. Faz duas atividades: determina o m´aximo global por compara¸c˜ao dos m´aximos locais e armazena os m´aximos locais em uma mem´oria RAM. – ao centro temos a mem´oria RAM. ´E escrita com os m´aximos locais dos processadores pelo componente acima e ´e lida, para formar a sa´ıda do circuito, pelo componente abaixo;

– o elemento mais `a direita da figura 6.7 ´e o respons´avel pela sa´ıda de dados do circuito como um todo. Suas entradas s˜ao os dados na mem´oria RAM (os m´aximos locais), e o m´aximo global (maior m´aximo local, informado pelo primeiro componente desta sublista). Sua sa´ıda ´

e a sa´ıda do circuito como um todo, ou seja, um m´aximo local por vez, a partir do m´aximo global, em ordem decrescente de pontua¸c˜ao.

CAP´ITULO 6. AN ´ALISE E DESCRI ¸C ˜AO DA PROPOSTA 75 A descri¸c˜ao completa desse componente, em linguagem de descri¸c˜ao de hard-

ware (Verilog), encontra-se no anexo A.1.

Documentos relacionados