• Nenhum resultado encontrado

6.4 Descri¸ c˜ ao dos componentes hardware

6.4.3 Processador

FIGURA 6.10: Componente de hardware - processador

Na figura6.10vemos a representa¸c˜ao do tipo “caixa-preta” de cada processador que comp˜oe o arranjo sist´olico descrito acima.

Entradas: Todas as entradas dos processadores (exceto o clock ) est˜ao ligadas `

esquerda) s˜ao as entradas do arranjo sist´olico como um todo.

• clk_i e reset_i: sinais de rel´ogio e de reset. O sinal de reset passa por um registrador interno a cada processador, fazendo com que chegue com um ciclo de diferen¸ca entre cada processador. Isto ´e necess´ario para a inicializa¸c˜ao das mem´orias dos processadores no tempo certo, representando as bordas da matriz (valor 0);

• bbd_i: as bases do banco-de-dados, uma por ciclo de rel´ogio, iniciando ap´os o reset. Sinal com 2 bits (4 possibilidades: C,G,A ou T);

• fim_bbd_i: quando ativo, sinaliza o final das bases do banco-de-dados (final da entrada);

• col_i: valor da c´elula calculada pelo vizinho `a esquerda. Ser´a memorizado para o c´alculo da pr´oxima c´elula nesse processador (ser´a o valor de Sij−1

durante o c´alculo de Sij);

• am_i: sinal para o processador apresentar sua c´elula com o valor m´aximo calculado. Essa sa´ıda ser´a apresentada nos sinais max_o e max_clk_ticks_- o;

• max_i: pontua¸c˜ao recebida do processador vizinho da esquerda como sendo o m´aximo local de um vizinho `a esquerda (do mais pr´oximo ou de outros); • max_clk_ticks_i: antidiagonal onde ocorreu o m´aximo local referido no

item acima;

• clk_ticks_i: rel´ogio global, informa o n´umero de ciclos decorrido ap´os o reset.

Sa´ıdas: Todas as sa´ıdas dos processadores est˜ao ligadas `as entradas de seus vizinhos da direita. As sa´ıdas do ´ultimo processador `a direita s˜ao as sa´ıdas do arranjo sist´olico como um todo.

CAP´ITULO 6. AN ´ALISE E DESCRI ¸C ˜AO DA PROPOSTA 79 • reset_o: por este sinal, cada processador passa o reset para o vizinho `a

direita. Como visto, o sinal chega com um ciclo de diferen¸ca entre cada processador, garantindo a inicializa¸c˜ao das mem´orias com valor zero no momento adequado;

• bbd_o: base do banco-de-dados sendo informada ao processador da direita. O valor presente em bbd_o ´e o mesmo lido em bbd_i, com um ciclo de diferen¸ca. Assim as bases do banco-de-dados s˜ao passadas entre os proces- sadores;

• fim_bbd_o: sinaliza o fim do dado acima, as bases do banco-de-dados; • valor_o: valor da c´elula calculada neste ciclo. Memorizado pelo processa-

dor `a direita, para este poder calcular uma c´elula no pr´oximo ciclo (ser´a o valor de Sij−1 durante o c´alculo de Sij pelo vizinho). As pontua¸c˜oes das

c´elulas n˜ao constituem uma sa´ıda do arranjo sist´olico, exceto as c´elulas selecionadas como m´aximo local, comunicadas ao final do processamento; • am_o: sinaliza para o processador `a direita apresentar seu m´aximo local. O

sinal chega com dois ciclos de diferen¸ca entre cada processador (na descri¸c˜ao em Verilog no anexo A.3, vemos o uso de dois registradores entre os sinais am_i e am_o. Isto permite o sincronismo que faz com que o m´aximo de cada processador seja apresentado como sa´ıda do sist´olico. Enquanto esse sinal ´e mantido inativo, cada processador somente “copia“ os m´aximos dos vizinhos `

a esquerda nas sa´ıdas. Quando esse sinal ´e ativado, cada processador passa a apresentar na sa´ıda o seu m´aximo local calculado;

• max_o: esta sa´ıda cont´em significados diferentes em dois momentos:

– quando o sinal am_i est´a desativado, o processador deve somente pas- sar para direita o m´aximo local lido do processador da esquerda;

– quando o sinal am_i est´a ativado, o processador deve aprentar seu m´aximo. Neste momento, max_o cont´em a pontua¸c˜ao do m´aximo local do processador. Isto faz com que todos m´aximos cheguem ao final do arranjo e da´ı sejam uma sa´ıda do sist´olico.

• max_clk_ticks_o: antidiagonal da c´elula com pontua¸c˜ao apresentada em max_o (acima).

L´ogica interna: Cada processador calcula as c´elulas de uma coluna da matriz de similaridade. Tem fixa a base de consulta e recebe como entrada as bases do banco-de-dados. A cada ciclo, recebe tamb´em o valor da c´elula vizinha `a esquerda, calculado pelo processador adjacente `a esquerda. Durante o c´alculo, mant´em informa¸c˜oes sobre a c´elula com valor m´aximo calculado por si at´e ent˜ao. Ao final das bases do banco-de-dados, sinalizado por fim_bbd_i, termina o c´alculo. Est´a determinado ent˜ao o m´aximo local (desta coluna). Quando solicitado (pelo sinal am_i), cada processador deve apresentar sua c´elula com pontua¸c˜ao m´axima (sa´ıdas max_o e max_clk_ticks_o). At´e que seja solicitado que apresente seu m´aximo, enquanto o sinal max_i estiver inativo, cada processador deve somente ”copiar“ o m´aximo lido na entrada (max_i e max_clk_ticks_i) para a sa´ıda (max_o e max_clk_ticks_o). Isto permite a passagem dos m´aximos locais entre os processadores e da´ı para consitu´ırem uma sa´ıda do conjunto como um todo.

Estrutura interna:

Na figura 6.11 vemos uma representa¸c˜ao da estrutura interna de cada pro- cessador. ´E formado por dois subcomponentes. O da esquerda na figura ´e o respons´avel pelo c´alculo do valor das c´elulas, e ´e descrito com detalhes na se¸c˜ao

6.4.4. O subcomponente da direita mant´em e apresenta o m´aximo local calculado por este processador. ´E descrito com detalhes na se¸c˜ao6.4.5.

A descri¸c˜ao do processador, em linguagem de descri¸c˜ao de hardware Verilog, encontra-se no anexoA.3.

CAP´ITULO 6. AN ´ALISE E DESCRI ¸C ˜AO DA PROPOSTA 81

FIGURA 6.11: Componente de hardware - processador (vis˜ao interna)

Documentos relacionados