• Nenhum resultado encontrado

Controlador

No documento Dissertação (páginas 66-71)

4.2 Unidade para o C´ alculo Exponencial

4.2.3 Controlador

Os sinais de entrada e sa´ıda do controlador do componente exp s˜ao mostrados na Figura 25. Este controlador tem como fun¸c˜ao fornecer os sinais necess´arios para realizar os passos definidos na Se¸c˜ao 4.1 para a computa¸c˜ao da Equa¸c˜ao 14.

A fun¸c˜ao desses sinais de controle est´a descrita a seguir. Todos estes s˜ao sinais de 1 bit. 1. IniciaExp: Sinal recebido do controlador principal. Inicia, quando igual a 1, a execu¸c˜ao do c´alculo do valor exponencial no componente exp, retirando a m´aquina de estados deste controle do estado inicial. Deste modo a computa¸c˜ao do valor exponencial e−v, onde v

´e dado pela Equa¸c˜ao 10, ´e iniciada com os valores de xj, xi e xmax disponibilizados ao componente exp.

2. NR1 a NR4 e NRS: Estes sinais s˜ao usados pelo controle para verificar a necessidade de deslocamentos `a direita no processo de enquadramento. Por exemplo, se o controle est´a verificando a necessidade de enquadramento nos registradores 1 e 3 (numerador e denominador nessa ocasi˜ao), somente quando os dois sinais NR1 e NR3 estiverem em 1 os sinais para desloc´a-los `a direita ´e retirado.

3. Sig: Fornecido pelo somador/subtrator. Sinaliza, quando em 1, que o sinal da opera¸c˜ao de subtra¸c˜ao foi negativo. Se zero, sinaliza que foi positivo.

4. SigC: Fornecido pelo subtrator da unidade de hardware coeficientes. Da mesma forma, sinaliza, quando em 1, que o sinal da opera¸c˜ao de subtra¸c˜ao foi negativo. Se zero, sinaliza que foi positivo.

4.2 Unidade para o C´alculo Exponencial 67 5. LR1 a LR4 e LRS: Estes sinais s˜ao fornecidos pelo controle para carregar, na transi¸c˜ao de um para zero, valores nos registradores correspondentes de cada multiplicador (1 a 4) ou no registrador do somador/subtrator.

6. SR1 a SR4 e SRS: Estes sinais, junto com o sinal de carregamento correspondente, rea- liza o deslocamento `a direita nos registradores Reg1 a Reg4 e no registrador do soma- dor/subtrator (RegSoma). Portanto, o controlador usa estes sinais nos diversos processos de enquadramento.

7. Sel: O controlador atua, com estes sinais, nos multiplexadores da arquitetura, permi- tindo que o valor necess´ario em cada est´agio do controle chegue aos multiplicadores e ao somador/subtrator para o c´alculo do polinˆomio.

8. LRAux: Sinal do controle para carregar o registrador auxiliar, necess´ario em um dos est´agios do c´alculo do polinˆomio aproximador.

9. LRNp e LRDp: S˜ao os sinais do controlador para o registro dos valores do resultado final, numerador no registrador RegNp e denominador no registrador RegDp.

10. Soma/Sub: Sinal do controlador para selecionar a opera¸c˜ao de subtra¸c˜ao, quando em 1, no somador/subtrator. Quando em zero, seleciona a fun¸c˜ao de soma.

A m´aquina de estados deste controlador ´e mostrada na Figura 27. A descri¸c˜ao de cada estado ´e mostrada a seguir e est´a baseada nos passos apresentados na Se¸c˜ao 4.1.

S0: Inicia o sistema; prepara a primeira opera¸c˜ao, a subtra¸c˜ao (xj − xi). Para isso, seleciona as entradas correspondentes dos multiplexadores 5 e 6, al´em da opera¸c˜ao de subtra¸c˜ao (Soma/Sub = 1).

Se sinal IniciaExp ´e apresentado, vai para o estado S1;

S1: Prepara o carregamento do registro RegSoma com o valor absoluto da subtra¸c˜ao no pr´oximo estado (S2);

S2: Prepara a multiplica¸c˜ao RegSoma × RegSoma e xmax × xmax; Seleciona a entrada RegSoma dos multiplexadores 1 e 2 e a entrada xmax do multiplexador 7. Assim Reg1 ter´a o resultado do numerador (xj − xi)2 e Reg3 o resultado do denominador (xmax)2;

4.2 Unidade para o C´alculo Exponencial 68 S0 S1 Início = 0 S2 S3 S4 S5 NR1 e NR3 = 1 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 S17 S18 S19 S20 S27 S26 S25 S24 S23 S22 S21 S28 S29 S30 S31 S32 S33 S34 NR1 e NR3 = 1 SigC = 1 NR2 e NR4 = 1 NR1 e NR3 = 1 NR1, NR2, NR3 e NR4 = 1 NR2 e NR4 = 1 NRS, NR2, NR3 e NR4 = 1 NRS e NR3 = 1 NRS e NR4 = 1

Figura 27: M´aquina de estados do controlador do componente exp

S4: Enquadramento dos registros da fra¸c˜ao Reg1/Reg3. Se os sinais NR1 e NR3 s˜ao iguais a 1, n˜ao realiza deslocamentos e vai para o S6. Se n˜ao, vai para o estado S5;

S5: Desloca Reg1 e Reg3 um bit `a direita e retorna a S4;

S6: Prepara a multiplica¸c˜ao do numerador (Reg1) por α; Seleciona a entrada Reg1 do multiplexador 1 e α do multiplexador 2;

S7: Carrega o registro Reg1 com o valor da multiplica¸c˜ao;

S8: Enquadramento dos registros da fra¸c˜ao Reg1/Reg3. Se os sinais NR1 e NR3 s˜ao iguais a 1, n˜ao realiza deslocamentos e vai para o S10. Se n˜ao, vai para o estado S9;

S9: Desloca Reg1 e Reg3 um bit `a direita e retorna a S8;;

S10: O valor da fra¸c˜ao Nv/Dv foi calculado. Inicia a busca dos coeficientes Na, Da, Nb, Db, Nc e Dc;

4.2 Unidade para o C´alculo Exponencial 69 S12: Se o sinal no resultado do subtrator da unidade coeficientes ´e 1, Nv ´e menor que Dv e a fra¸c˜ao ´e menor 1. Vai para S15 e sai do enquadramento;

do contr´ario vai para S13;

S13: Deslocamento `a direita no valor Nv do registro da unidade coeficientes para dividi-lo por 2;

S14: Muda para pr´oximo estado do controle em coeficientes para selecionar fatores correspondentes e retorna a S12.

S15: Com fatores do polinˆomio descobertos, realiza quatro multiplica¸c˜oes simultˆaneas. Reg1 tem o valor Nv e Reg3 o valor Dv. As entradas dos multiplexadores s˜ao selecionadas para que as seguintes multiplica¸c˜oes ocorram: Reg2 = Reg1×Reg1, Reg1 = Reg1×Nb, Reg3 = Reg3×Db e Reg4 = Reg3×Reg3;

S16: Carrega os registros Reg1, Reg2, Reg3 e Reg4;

S17: Enquadramento dos registros das fra¸c˜oes Reg1/Reg3 e Reg2/Reg4. Se o sinal NR1 ou NR3 ´e igual a zero e NR2 ou NR4 ´e igual a zero, vai para S18;

Do contr´ario se o sinal NR1 ou NR3 ´e igual a zero, e NR2 e NR4 s˜ao iguais a um, vai para S19;

Do contr´ario se o sinal NR1 e NR3 s˜ao iguais a um, e NR2 ou NR4 ´e igual a zero, vai para S20;

Do contr´ario se o sinal NR1 e NR3 s˜ao iguais a um, e NR2 e NR4 tamb´em s˜ao iguais a um, vai para S21;

S18: Desloca Reg1, Reg2, Reg3 e Reg4 um bit `a direita e retorna a S17; S19: Desloca Reg1 e Reg3 um bit `a direita e retorna a S17;

S20: Desloca Reg2 e Reg4 um bit `a direita e retorna a S17;

S21: Fim do enquadramento. Carrega RegAux com o valor de Reg3 (Dv×Db) para ser usado posteriormente. Realiza mais quatro multiplica¸c˜oes simultˆaneas. Reg1 tem o valor Nv×Nb, Reg2 tem o valor Nv×Nv, Reg3 tem o valor Dv×Db e Reg4 tem o valor Dv×Dv. As entradas dos multiplexadores s˜ao selecionadas para que as seguintes multiplica¸c˜oes ocorram: Reg2 = Reg2×Na, Reg1 = Reg1×Dc, Reg3 = Reg3×Nc e Reg4 = Reg4×Da;

4.2 Unidade para o C´alculo Exponencial 70 S22: Carrega os registros Reg1, Reg2, Reg3 e Reg4;

S23: O coeficiente Nb da Equa¸c˜ao 13 de aproxima¸c˜ao dada no Cap´ıtulo 3, ´e negativo em todos os intervalos. Logo neste estado ´e feita a opera¸c˜ao de subtra¸c˜ao Reg3 − Reg1, onde Reg3 possui o valor Dv×Db×Nc e Reg1 possui o valor Nv×Nb×Dc. Para isso seleciona-se as entradas correspondentes dos multiplexadores para a opera¸c˜ao de subtra¸c˜ao. O resultado desta opera¸c˜ao estar´a em RegSoma.

S24: Carrega o registro RegSoma com o resultado da opera¸c˜ao de subtra¸c˜ao. Guarda o sinal da opera¸c˜ao para saber se o resultado foi negativo ou positivo.

Realiza a multiplica¸c˜ao do registro RegAux, que possui o valor Dv×Db, por Dc. Seleci- ona os multiplexadores para que multiplicador 3 realize essa opera¸c˜ao.

S25: Carrega o registro Reg3 com o valor da opera¸c˜ao. Logo Reg3 = Dv×Db×Dc; S26: Enquadramento dos registros das fra¸c˜oes RegSoma/Reg3 e Reg2/Reg4. Se o sinal NRSou NR3 ´e igual a zero e NR2 ou NR4 ´e igual a zero, vai para S27;

Do contr´ario se o sinal NRS ou NR3 ´e igual a zero, e NR2 e NR4 s˜ao iguais a um, vai para S28;

Do contr´ario se o sinal NRS e NR3 s˜ao iguais a um, e NR2 ou NR4 ´e igual a zero, vai para S29;

Do contr´ario se o sinal NRS e NR3 s˜ao iguais a um, e NR2 e NR4 tamb´em s˜ao iguais a um, vai para S30;

S27: Desloca RegSoma, Reg2, Reg3 e Reg4 um bit `a direita e retorna a S26; S28: Desloca RegSoma e Reg3 um bit `a direita e retorna a S26;

S29: Desloca Reg2 e Reg4 um bit `a direita e retorna a S26;

S30: Fim do enquadramento. A opera¸c˜ao final ser´a somar essas duas fra¸c˜oes que guar- dam os resultados parciais: RegSoma/Reg3 + Reg2/Reg4. Para isso, trˆes multiplica- ¸c˜oes simultˆaneas s˜ao feitas: Reg3 = Reg3×Reg3, Reg1 = Reg4×RegSoma e Reg4 = Reg3×Reg4.

S31: Carrega os registros Reg1, Reg3 e Reg4 com os resultados das opera¸c˜oes. Seleciona o sinal para a pr´oxima opera¸c˜ao entre Reg3 e Reg1.

Se o sinal guardado no estado S24 foi negativo, seleciona a subtra¸c˜ao (Soma/Sub = 1). Do contr´ario, seleciona a soma (Soma/Sub = 0).

4.2 Unidade para o C´alculo Exponencial 71 S32: Carrega o resultado da soma ou subtra¸c˜ao em RegSoma. A opera¸c˜ao foi selecionada em S31.

Enquadramento dos registradores das fra¸c˜oes RegSoma/Reg4, que guardam o resultado final do c´alculo do polinˆomio de aproxima¸c˜ao da fun¸c˜ao exponencial. Se os sinais NRS e NR4s˜ao iguais a 1, n˜ao realiza deslocamentos e vai para o S34. Se n˜ao, vai para o estado S33;

S33: Desloca RegSoma e Reg4 um bit `a direita e retorna a S32;

S34: Fim. Gera o sinal FimExp para indicar o fim do processo. Carrega os registros RegNp e RegDp e retorna a S0.

No documento Dissertação (páginas 66-71)