Você está na página 1de 30

PROCESSAMENTO DE INTEIROS PROCESSAMENTO DE INTEIROS

CARRY

C C

O O

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

SS

SIGN

ZERO ZZ

7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

OVERFLOW C C O O

Abril 2010

SEM SINAL COM SINAL SEM SINAL COM SINAL Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

COMPARAO DE INTEIROS COMPARAO DE INTEIROS


A COMPARAO DE INTEIROS UMA SUBTRAO EM QUE O RESULTADO DESCARTADO A COMPARAO DE INTEIROS UMA SUBTRAO EM QUE O RESULTADO DESCARTADO INSTRUES SUBSEQENTES EXAMINAM O RESULTADO ANALISANDO OS VALORE DOS FLAGS INSTRUES SUBSEQENTES EXAMINAM O RESULTADO ANALISANDO OS VALORE DOS FLAGS C, , O, S E Z C O, S E Z

O VALOR DE BL SUBTRADO DE AL - RESULTADO VAI PARA AL SUB AL, BL - - O VALOR DE BL SUBTRADO DE AL - RESULTADO VAI PARA AL SUB AL, BL O VALOR DE BL SUBTRADO DE AL - RESULTADO DESCARTADO CMP AL,BL - - O VALOR DE BL SUBTRADO DE AL - RESULTADO DESCARTADO CMP AL,BL AS DUAS INSTRUES ACIMA AFETAM C, , O, S E Z DE FORMA IDNTICA AS DUAS INSTRUES ACIMA AFETAM C O, S E Z DE FORMA IDNTICA

A INSTRUO CMP A MESMA UTILIZADA TANTO PARA INTEIROS COM OU SEM SINAL A INSTRUO CMP A MESMA UTILIZADA TANTO PARA INTEIROS COM OU SEM SINAL O RESULTADO DA COMPARAO ENTRETANTO DEVE SER ANALISADO DE FORMA ESPECFICA E O RESULTADO DA COMPARAO ENTRETANTO DEVE SER ANALISADO DE FORMA ESPECFICA E DIFERENTE EM CADA CASO. DIFERENTE EM CADA CASO. POR ESSE MOTIVO EXISTEM INSTRUES DE SALTO CONDICIONAL (JX..) ESPECFICAS PARA POR ESSE MOTIVO EXISTEM INSTRUES DE SALTO CONDICIONAL (JX..) ESPECFICAS PARA COMPARAES COM EE SEM SINAL COMPARAES COM SEM SINAL

SEM SINAL: JA, JB, JE, JAE, JBE SEM SINAL: JA, JB, JE, JAE, JBE

COM SINAL: JG, JL, JZ, JGE, JLE COM SINAL: JG, JL, JZ, JGE, JLE

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

INSTRUES DE SALTO --FLAGS ENVOLVIDOS INSTRUES DE SALTO FLAGS ENVOLVIDOS

SEM SINAL SEM SINAL JUMP IF .. ABOVE BELOW EQUAL ABOVE OR EQ BELOW OR EQ MNEM. MNEM JA JB JE JAE JBE FLAGS Z=0 E C=0 C=1 Z=1 C=0 C=1 OU Z=1 JUMP IF .. GREATER LESS ZERO

COM SINAL COM SINAL MNEM. JG JL JZ JGE JLE FLAGS Z=0 E S=0 S !=O Z=1 S=0 S!=O OU Z=1

GREATER OR EQ LESS OR EQ

PERGUNTA: PERGUNTA: COMO ESTENDER UM NMERO SEM SINAL PARA UMA LARGURA MAIOR DE BITS? COMO ESTENDER UM NMERO SEM SINAL PARA UMA LARGURA MAIOR DE BITS? SINAL? EE UM NMERO COM SINAL? UM NMERO COM SINAL? SINAL?

4 BITS SEM SINAL: 4 BITS SEM SINAL: 4 BITS COM SINAL: 4 BITS COM SINAL:

0000 1010 BINRIO 1010 = 10 DECIMAL - EM 8 BITS BINRIO =___________________ BINRIO 1010 = 10 DECIMAL - EM 8 BITS BINRIO =___________________ 1010 = - 6 DECIMAL - EM 8 BITS BINRIO=___________________ BINRIO=___________________ 1111 1010 BINRIO=___________________ 1010 = - 6 DECIMAL - EM 8 BITS BINRIO=___________________

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

MULTIPLICAO DE INTEIROS NA IA-32 MULTIPLICAO DE INTEIROS NA IA-32


A MULTIPLICAO ENVOLVE 33 OPERANDOS:MULTIPLICANDO, MULTIPLICADOR EE RESULTADO A MULTIPLICAO ENVOLVE OPERANDOS: MULTIPLICANDO, MULTIPLICADOR RESULTADO RESULTADO == MULTIPLIANDO X MULTIPLICADOR RESULTADO MULTIPLIANDO X MULTIPLICADOR LARGURA EM BITS DO RESULTADO == LARGURA EM BITS DO RESULTADO SOMA DAS LARGURAS EM BITS DO MULTIPLICANDO EE MULTIPLICADOR SOMA DAS LARGURAS EM BITS DO MULTIPLICANDO MULTIPLICADOR

MULTIPLICAES DE OPERANDOS DE 88 BITS PRODUZEM RESULTADOS DE 16 BITS MULTIPLICAES DE OPERANDOS DE BITS PRODUZEM RESULTADOS DE 16 BITS MULTIPLICAES DE OPERANDOS DE 16 BITS PRODUZEM RESULTADOS DE 32 BITS MULTIPLICAES DE OPERANDOS DE 16 BITS PRODUZEM RESULTADOS DE 32 BITS MULTIPLICAES DE OPERANDOS DE 32 BITS PRODUZEM RESULTADOS DE 64 BITS MULTIPLICAES DE OPERANDOS DE 32 BITS PRODUZEM RESULTADOS DE 64 BITS

LARGURA DO MULTIPLICANDO E MULTIPLICADOR: 8 BITS 16 BITS 32 BITS

LARGURA DO RESULTADO: 16 BITS 32 BITS 64 BITS

MULTIPLICANDO FICA EM: AL AX EAX

MULTIPLICADOR FICA EM: REG8 / MEM8 REG16 / MEM16 REG32 / MEM32

RESULTADO FICA EM: AX (AH + AL) DX + AX EDX + EAX

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

MULTIPLICAO DE INTEIROS COM E SEM SINAL MULTIPLICAO DE INTEIROS COM E SEM SINAL
MULTIPLICAES COM SINAL PRODUZEM RESULTADOS DIFERENTES DE MULTIPLICAES SEM SINAL MULTIPLICAES COM SINAL PRODUZEM RESULTADOS DIFERENTES DE MULTIPLICAES SEM SINAL

EXEMPLO COM LARGURA DOS OPERANDOS == 4 BITS: EXEMPLO COM LARGURA DOS OPERANDOS 4 BITS:

22 X -3 = -2 X 3 = -6 X -3 = -2 X 3 = -6

- - 2 = 1110 = 14 2 = 1110 = 14

- - 3 = 1101 = 13 3 = 1101 = 13

- - 6 = 1010 = 10 6 = 1010 = 10

14 XX 3 = 42 = 2A h = 0010 1010 14 3 = 42 = 2A h = 0010 1010

NO IGUAL A

22 X 13 = 26 = 1A h = 0001 1010 X 13 = 26 = 1A h = 0001 1010

O RESULTADO CORRETO EM 8 BITS -6 = FA h = 1111 1010 O RESULTADO CORRETO EM 8 BITS -6 = FA h = 1111 1010

CONCLUSO: SO NECESSRIAS INSTRUES DIFERENTES PARA MULTIPLICAES COM E SEM SINAL CONCLUSO: SO NECESSRIAS INSTRUES DIFERENTES PARA MULTIPLICAES COM E SEM SINAL

SEM SINAL MUL SEM SINAL MUL

COM SINAL IMUL COM SINAL IMUL

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

DIVISO DE INTEIROS NA IA-32 DIVISO DE INTEIROS NA IA-32


A DIVISO ENVOLVE 44 OPERANDOS:DIVIDENDO, DIVISOR, QUOCIENTE EE RESTO A DIVISO ENVOLVE OPERANDOS: DIVIDENDO, DIVISOR, QUOCIENTE RESTO QUOCIENTE XX DIVISOR + RESTO = DIVIDENDO QUOCIENTE DIVISOR + RESTO = DIVIDENDO LARGURA EM BITS DO DIVIDENDO == LARGURA EM BITS DO DIVIDENDO SOMA DAS LARGURAS EM BITS DO DIVISOR EE DO QUOCIENTE SOMA DAS LARGURAS EM BITS DO DIVISOR DO QUOCIENTE

DIVISORES EE QUOCIENTES DE DIVISORES QUOCIENTES DE DIVISORES E QUOCIENTES DE DIVISORES E QUOCIENTES DE DIVISORES EE QUOCIENTES DE DIVISORES QUOCIENTES DE

88 BITS PRECISAM DE DIVIDENDOS DE 16 BITS BITS PRECISAM DE DIVIDENDOS DE 16 BITS 16 BITS PRECISAM DE DIVIDENDOS DE 32 BITS 16 BITS PRECISAM DE DIVIDENDOS DE 32 BITS 32 BITS PRECISAM DE DIVIDENDOS DE 64 BITS 32 BITS PRECISAM DE DIVIDENDOS DE 64 BITS

LARGURA DO DIVIDENDO 16 BITS 32 BITS 64 BITS

LARGURA DO DIVISOR, QUOCIENTE E RESTO 8 BITS 16 BITS 32 BITS

DIVIDENDO FICA EM: AX (AH + AL) DX + AX EDX + EAX

DIVISOR FICA EM: REG8 / MEM8 REG16 / MEM16 REG32 / MEM32

QUOCIENTE FICA EM: AL AX EAX

RESTO FICA EM: AH DX EDX

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

DIVISO DE INTEIROS COM E SEM SINAL DIVISO DE INTEIROS COM E SEM SINAL
DE FORMA ANLOGA MULTIPLICAO, PARA DIVIDIR INTEIROS SEM EE COM SINAL DE FORMA ANLOGA MULTIPLICAO, PARA DIVIDIR INTEIROS SEM COM SINAL PRECISAMOS DE INSTRUES DIFERENTES: DIV EE IDIV PRECISAMOS DE INSTRUES DIFERENTES: DIV IDIV

SE ISSO NO FOR RESPEITADO, O QUOCIENTE PODE NO CABER NA LARGURA ESPECIFICADA SE ISSO NO FOR RESPEITADO, O QUOCIENTE PODE NO CABER NA LARGURA ESPECIFICADA SER ENTO GERADA UMA EXCEAO #DIV (DIVIDE BY ZERO OR DIVIDE OVERFLOW). SER ENTO GERADA UMA EXCEAO #DIV (DIVIDE BY ZERO OR DIVIDE OVERFLOW).

EXEMPLO: DIVIDIR -13 POR 55 OBTENDO QUOCIENTE = -2 E RESTO = -3 USANDO 8 BITS EXEMPLO: DIVIDIR -13 POR OBTENDO QUOCIENTE = -2 E RESTO = -3 USANDO 8 BITS

mov al, -13 ;; dividendo 0xF3 em AL (= 243 sem sinal)) mov al, -13 dividendo 0xF3 em AL (= 243 sem sinal cbw ;; estende com sinal para AX -> 0xFFF3 cbw estende com sinal para AX -> 0xFFF3 ;; (= 65523 sem sinal) (= 65523 sem sinal) mov bl, 55 ;; divisor em BL mov bl, divisor em BL div bl ;; diviso sem sinal -> gera exceo div bl diviso sem sinal -> gera exceo ;; (65.523/5 == 13.104 -- no cabe em al) (65.523/5 13.104 no cabe em al)

13.104 NO CABE EM AL (MXIMO 255) E UMA EXCEO DE DIVIDE OVERFLOW GERADA; 13.104 NO CABE EM AL (MXIMO 255) E UMA EXCEO DE DIVIDE OVERFLOW GERADA; O CORRETO PORTANTO UTILIZAR IDIV O CORRETO PORTANTO UTILIZAR IDIV

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

COMO ESTENDER INTEIROS PARA LARGURAS MAIORES COMO ESTENDER INTEIROS PARA LARGURAS MAIORES
INSTRUES UTILIZADAS PARA INTEIROS COM SINAL: INSTRUES UTILIZADAS PARA INTEIROS COM SINAL:

CBW CBW ;; ESTENDE DE ESTENDE DE AL AL CWD ;; ESTENDE DE AX CWD ESTENDE DE AX CDQ ;; ESTENDE DE EAX CDQ ESTENDE DE EAX CWDE ;; ESTENDE DE CWDE ESTENDE DE AX AX MOVSX ;; CARREGA DE 88 MOVSX CARREGA DE DE DE 16 16

PARA PARA PARA PARA PARA PARA PARA PARA PARA PARA PARA PARA

AX (AH ++ AL) AX (AH AL) DX ++ AX DX AX EDX ++ EAX EDX EAX EAX EAX 16 OU 32 BITS OU 16 OU 32 BITS OU 32 BITS 32 BITS

INSTRUES UTILIZADAS PARA INTEIROS SEM SINAL: INSTRUES UTILIZADAS PARA INTEIROS SEM SINAL:

MOVZX ;; CARREGA DE MOVZX CARREGA DE DE DE

88 16 16

PARA PARA PARA PARA

16 OU 32 BITS OU 16 OU 32 BITS OU 32 BITS 32 BITS

AS INSTRUES PARA ESTENDER INTEIROS SO TEIS AO SE EXECUTAR DIVISES COM AS INSTRUES PARA ESTENDER INTEIROS SO TEIS AO SE EXECUTAR DIVISES COM INTEIROS, PARA SE PREPARAR O DIVIDENDO COM A LARGURA ADEQUADA OPERAO. INTEIROS, PARA SE PREPARAR O DIVIDENDO COM A LARGURA ADEQUADA OPERAO.

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

MULTIPLICAES E DIVISES USANDO SHIFTS MULTIPLICAES E DIVISES USANDO SHIFTS


MULTIPLICAES DE INTEIROS POR POTNCIAS DE 22 PODEM SER REALIZADAS MAIS MULTIPLICAES DE INTEIROS POR POTNCIAS DE PODEM SER REALIZADAS MAIS RAPIDAMENTE UTILIZANDO-SE A INSTRUO DE DESLOCAMENTO ESQUERDA (SHL) RAPIDAMENTE UTILIZANDO-SE A INSTRUO DE DESLOCAMENTO ESQUERDA (SHL) APLICA-SE IGUALMENTE TANTO PARA INTEIROS SEM SINAL COMO PARA INTEIROS COM SINAL APLICA-SE IGUALMENTE TANTO PARA INTEIROS SEM SINAL COMO PARA INTEIROS COM SINAL MESMO QUANDO O MULTIPLICADOR NO UMA POTNCIA DE 2, PODE-SE DECOMP-LO EM MESMO QUANDO O MULTIPLICADOR NO UMA POTNCIA DE 2, PODE-SE DECOMP-LO EM UMA SOMA DE POTNCIAS DE 22 E APLICAR A PROPRIEDADE DISTRIBUTIVA DA MULTIPLICAO. UMA SOMA DE POTNCIAS DE E APLICAR A PROPRIEDADE DISTRIBUTIVA DA MULTIPLICAO.
3 1 EXEMPLO: XX x 10 = X x (8 + 2) = X x ( 23 + 21 ) EXEMPLO: x 10 = X x (8 + 2) = X x ( 2 + 2 )

DESLOCAMOS X DE 1 POSIO PARA A ESQUERDA E DESLOCAMOS X DE 1 POSIO PARA A ESQUERDA E ACUMULAMOS COM X DESLOCADO DE 3 POSIES PARA A ESQUERDA ACUMULAMOS COM X DESLOCADO DE 3 POSIES PARA A ESQUERDA DIVISES DE INTEIROS POR POTNCIAS DE 2 PODEM SER REALIZADAS MAIS RAPIDAMENTE DIVISES DE INTEIROS POR POTNCIAS DE 2 PODEM SER REALIZADAS MAIS RAPIDAMENTE UTILIZANDO-SE A INSTRUO DE DESLOCAMENTO DIREITA. UTILIZANDO-SE A INSTRUO DE DESLOCAMENTO DIREITA. DESLOCAR UM INTEIRO DE UMA POSIO PARA A DIREITA SIGNIFICA: DESLOCAR UM INTEIRO DE UMA POSIO PARA A DIREITA SIGNIFICA: DESLOCAR SEUS TODOS SEUS BITS PARA A DIREITA E DESLOCAR SEUS TODOS SEUS BITS PARA A DIREITA E PREENCHER SUA POSIO MAIS SIGNIFICATIVA COM: PREENCHER SUA POSIO MAIS SIGNIFICATIVA COM: A) INTEIROS SEM SINAL: ZERO A) INTEIROS SEM SINAL: ZERO B) INTEIROS COM SINAL: SINAL B) INTEIROS COM SINAL: SINAL LOGO SO NECESSRIAS DUAS INSTRUES DIFERENTES PARA DESLOCAMENTOS DIREITA: LOGO SO NECESSRIAS DUAS INSTRUES DIFERENTES PARA DESLOCAMENTOS DIREITA: A) SHR SHIFT LOGIC RIGHT - PARA INTEIROS SEM SINAL A) SHR SHIFT LOGIC RIGHT - PARA INTEIROS SEM SINAL B) SAR SHIFT ARITHMETIC RIGHT - - PARA INTEIROS COM SINAL PARA INTEIROS COM SINAL B) SAR SHIFT ARITHMETIC RIGHT

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

ALGORTMO DE CONVERSO DECIMAL BINRIO ALGORTMO DE CONVERSO DECIMAL BINRIO


NMEROS INTEIROS - - DESLOCAR SUCESSIVAMENTE PARA A DIREITA E ARMAZENAR NMEROS INTEIROS DESLOCAR SUCESSIVAMENTE PARA A DIREITA E ARMAZENAR O BIT DESLOCADO - - EQUIVALE A DIVIDIR SUCESSIVAMENTE POR DOIS E ANOTAR O O BIT DESLOCADO EQUIVALE A DIVIDIR SUCESSIVAMENTE POR DOIS E ANOTAR O RESTO DA DIVISO RESTO DA DIVISO EXEMPLO: CONVERTER 178 PARA BINRIO EXEMPLO: CONVERTER 178 PARA BINRIO 178 89 44 22 11 5 2 1 0 1 0 1 1 0 0 1 0 2 2 2 2 2 2 2 2 0 1 0 0 1 1 0 1

== B2 H B2 H

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

10

CONVERSO DECIMAL BINRIO --FRACIONRIOS CONVERSO DECIMAL BINRIO FRACIONRIOS


NMEROS FRACIONRIOS - DESLOCAR SUCESSIVAMENTE PARA A ESQUERDA E NMEROS FRACIONRIOS - DESLOCAR SUCESSIVAMENTE PARA A ESQUERDA E ARMAZENAR O BIT DESLOCADO - - EQUIVALE A MULTIPLICAR SUCESSIVAMENTE POR ARMAZENAR O BIT DESLOCADO EQUIVALE A MULTIPLICAR SUCESSIVAMENTE POR DOIS EE ANOTAR E ELIMINAR O O VALOR DA UNIDADE DOIS ANOTAR E ELIMINAR O O VALOR DA UNIDADE EXEMPLO: CONVERTER 0,178 PARA BINRIO COM PRECISO DE 16 BITS EXEMPLO: CONVERTER 0,178 PARA BINRIO COM PRECISO DE 16 BITS 0, 0,178 0,356 0,712 0,424 0,848 0,696 0,392 0,784 0,568 0,136 0,272 0,544 0,088 0,176 0,352 0,704 0,408 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 1 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 0 0 0 1

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

11

CONVERSO DECIMAL BINRIO --FRACIONRIOS CONVERSO DECIMAL BINRIO FRACIONRIOS


NO EXEMPLO ANTERIOR REALIZAMOS 16 MULTIPLICAES POR 22 NO EXEMPLO ANTERIOR REALIZAMOS 16 MULTIPLICAES POR

ALTERNATIVA: ALTERNATIVA:

0,178 =

0,178 x 216 216 2

= 65.536 x 0,178 x 2-16

= 11.665,408 x 2-16 11.665 x 2-16


-16 MULTIPLICAR POR 22-16 EQUIVALE A DESLOCAR A VRGULA BINRIA 16 CASAS ESQUERDA. EQUIVALE A DESLOCAR A VRGULA BINRIA 16 CASAS ESQUERDA. MULTIPLICAR POR

CONVERTENDO 11.665 EM BINRIO EE DESLOCANDO A VRGULA 16 CASAS ESQUERDA CONVERTENDO 11.665 EM BINRIO DESLOCANDO A VRGULA 16 CASAS ESQUERDA OBTEMOS O MESMO RESULTADO ANTERIOR: OBTEMOS O MESMO RESULTADO ANTERIOR: 0, 0 0 1 0 1 1 0 1 1 0 0 1 0 0 0 1

O MTODO ACIMA SUGERE UMA FORMA PRTICA DE DESCOBRIR SE UMA O MTODO ACIMA SUGERE UMA FORMA PRTICA DE DESCOBRIR SE UMA DETERMINADA FRAO TER UMA REPRESENTAO EXATA EM nn BITS: DETERMINADA FRAO TER UMA REPRESENTAO EXATA EM BITS:
n MULTIPLICAMOS A FRAO POR 22n E VERIFICAMOS SE AINDA CONTINUAMOS COM MULTIPLICAMOS A FRAO POR E VERIFICAMOS SE AINDA CONTINUAMOS COM UMA PARTE FRACIONRIA. UMA PARTE FRACIONRIA.

ESSE MTODO TIL QUANDO SE DISPE DE UMA CALCULADORA QUE CONVERTE ESSE MTODO TIL QUANDO SE DISPE DE UMA CALCULADORA QUE CONVERTE INTEIROS EM BINRIO MAS NO CONVERTE FRAES. INTEIROS EM BINRIO MAS NO CONVERTE FRAES.

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

12

PROCESSAMENTO COMPUTACIONAL DE NMEROS REAIS PROCESSAMENTO COMPUTACIONAL DE NMEROS REAIS


H 20 ANOS A ANARQUIA AMEAAVA A ARITMTICA DE PONTO FLUTUANTE. H 20 ANOS A ANARQUIA AMEAAVA A ARITMTICA DE PONTO FLUTUANTE. MAIS DE UMA DZIA DE ARITMTICAS DE MANTISSA ALARDEAVAM COMPRIMENTOS MAIS DE UMA DZIA DE ARITMTICAS DE MANTISSA ALARDEAVAM COMPRIMENTOS DIVERSOS DE PALAVRAS, DE PRECISO, DE PROCESSOS DE ARRENDONDAMENTO EE DIVERSOS DE PALAVRAS, DE PRECISO, DE PROCESSOS DE ARRENDONDAMENTO COMPORTAMENTOS DE OVER / / UNDERFLOW, E MAIS OUTRAS HAVIA EM DESENVOLVIMENTO. COMPORTAMENTOS DE OVER UNDERFLOW, E MAIS OUTRAS HAVIA EM DESENVOLVIMENTO. SOFTWARE PORTVEL PARA CONCILIAR TAL DIVERSIDADE NUMRICA HAVIA SE SOFTWARE PORTVEL PARA CONCILIAR TAL DIVERSIDADE NUMRICA HAVIA SE TORNADO INSUPORTAVELMENTE CUSTOSO DE SE DESENVOLVER . TORNADO INSUPORTAVELMENTE CUSTOSO DE SE DESENVOLVER .

PROF. WILLIAM KAHN - EM 1997 PROF. WILLIAM KAHN - EM 1997 (PARTICIPANTE DO DESENVOLVIMENTO DO COPROCESSADOR NUMRICO INTEL 8087 (PARTICIPANTE DO DESENVOLVIMENTO DO COPROCESSADOR NUMRICO INTEL 8087 E DO GRUPO DE TRABALHO DE CRIAO DA NORMA E DO GRUPO DE TRABALHO DE CRIAO DA NORMA IEEE 457 SOBRE PROCESSAMENTO NUMRICO). IEEE 457 SOBRE PROCESSAMENTO NUMRICO).

O COPROCESSADOR NUMRICO 8087 TEVE SEU DESENVOLVIMENTO INICIADO EM 1974. O COPROCESSADOR NUMRICO 8087 TEVE SEU DESENVOLVIMENTO INICIADO EM 1974. FOI LANADO NO MERCADO EM 1977 FOI LANADO NO MERCADO EM 1977 INTRODUZIA INOVAES: UNDERFLOW GRADUAL - - FUNES TRANSCENDENTAIS INTRODUZIA INOVAES: UNDERFLOW GRADUAL FUNES TRANSCENDENTAIS A NORMA IEEE 754 COMEOU A SER DISCUTIDA EM 1974 A NORMA IEEE 754 COMEOU A SER DISCUTIDA EM 1974 FOI OFICIALIZADA EM 1985 FOI OFICIALIZADA EM 1985

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

13

REPRESENTAO DE NMEROS EM PONTO FLUTUANTE REPRESENTAO DE NMEROS EM PONTO FLUTUANTE


NMEROS REAIS BINRIOS NMEROS REAIS BINRIOS -1000 -100 -10 -1 0 1 10 100 INFINITOS PONTOS 1000

NMEROS REAIS BINRIOS CODIFICADOS DIGITALMENTE NMEROS REAIS BINRIOS CODIFICADOS DIGITALMENTE -1000 -100 -10 -1 0 1 10 100

QUANTIDADE FINITA DE PONTOS 1000

REPRESENTAO: REPRESENTAO:

BIT J - (UNIDADE) IMPLCITO, SEMPRE = 1

EXPOENTE DE 2

FRAO OU MANTISSA

1 BIT PARA SINAL

X BITS PARA EXPOENTE

Y BITS PARA FRAO

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

14

EXERCCIO DE CODIFICAO EM PONTO FLUTUANTE EXERCCIO DE CODIFICAO EM PONTO FLUTUANTE


EXERCCIO: CODIFICAR 178,125 EM PONTO FLUTUANTE PRECISO SIMPLES (32 BITS) EXERCCIO: CODIFICAR 178,125 EM PONTO FLUTUANTE PRECISO SIMPLES (32 BITS)

SOLUO: SOLUO: A) PARTE INTEIRA: A) PARTE INTEIRA: B) PARTE FRACIONRIA: B) PARTE FRACIONRIA: C) NORMALIZAO: C) NORMALIZAO: BINRIO 178 DECIMAL == 1011 0010 BINRIO BINRIO 178 DECIMAL 1011 0010 BINRIO 0,125 DECIMAL = 1/8 = 2-3-3 0,001 BINRIO = 0,125 DECIMAL = 1/8 = 2 = 0,001 BINRIO 10110010,001 = 1,0110010001 x 27 7 10110010,001 = 1,0110010001 x 2

C) POLARIZAO DO EXPOENTE: C) POLARIZAO DO EXPOENTE: SINAL (1 BIT)

7 + 127 = 134 = 1000 0110 BINRIO 7 + 127 = 134 = 1000 0110 BINRIO

EXPOENTE (8 BITS)

FRAO FRAO (23 BITS)

0 0

1000 0110 1000 0110

011 0010 0010 0000 0000 0000 011 0010 0010 0000 0000 0000

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

15

CODIFICAO --PONTO FLUTUANTE PRECISO SIMPLES CODIFICAO PONTO FLUTUANTE PRECISO SIMPLES
NEGATIVOS NEGATIVOS SS 1 1 11 EXP EXP 0 0 00 FRAO FRAO 0 0 0.XXX 0.XXX QQUER QQUER 00 0.0XX 0.0XX 0.XXX 0.XXX -0 +0 SS 0 0 00 POSITIVOS POSITIVOS EXP EXP 0 0 00 FRAO FRAO 0 0 0.XXX 0.XXX QQUER QQUER 00 0.0XX 0.0XX 0.XXX 0.XXX NaNs - - NORMALS - DENORMALS 0 + NORMALS +

DENORMALS NORMALS - SNaNs QNaNs +

1 1..254 1 1..254 11 11 1 1 NaNs 255 255 255 255 255 255

0 1..254 0 1..254 00 00 0 0 255 255 255 255 255 255

+ DENORMALS

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

16

TIPOS DE DADOS SUPORTADOS PELA FPU TIPOS DE DADOS SUPORTADOS PELA FPU
A) PONTO FLUTUANTE A) PONTO FLUTUANTE SINGLE PRECISION (32 BITS) SS EXP EXP FRAO FRAO 0

31 30 DOUBLE PRECISION (64 BITS) EXTENDED PRECISION (80 BITS) S S 63 62 S S 79 78 B) INTEIROS COM SINAL B) INTEIROS COM SINAL EXP EXP J J 64 63 62 EXP EXP 52 51 FRAO FRAO

23 22

FRAO FRAO 0

0 WORD INTEGER S S DGITO DGITO 0

15 14 SHORT INTEGER SS 31 30 LONG INTEGER SS 63 62 C) BCD (BINARY CODED DECIMAL) 18 DGITOS C) BCD (BINARY CODED DECIMAL) 18 DGITOS S S DGITO DGITO 0 DGITO DGITO 0

XXX D17 D16 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 XXX D17 D16 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 72 71 0

79 78

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

17

POTNCIAS DE 2 --PREFIXOS POTNCIAS DE 2 PREFIXOS


210 210 220 220 230 230 240 240 250 250 260 260 1024 = 1 KILO 1024 = 1 KILO 1024 xx1 KILO = 1 MEGA 1024 1 KILO = 1 MEGA 1024 xx1 MEG = 1 GIGA 1024 1 MEG = 1 GIGA 1024 xx1 GIGA = 1 TERA 1024 1 GIGA = 1 TERA 1024 xx1 TERA = 1 PETA 1024 1 TERA = 1 PETA 1024 xx1 PETA = 1 HEXA 1024 1 PETA = 1 HEXA 1.024 1.024 1.048.576 1.048.576 1.073.741.824 1.073.741.824 1.099.511.627.776 1.099.511.627.776 1.125.899.906.842.624 1.125.899.906.842.624 1.152.921.504.606.846.976 1.152.921.504.606.846.976

270 270

1024 xx1 HEXA = 1 HEPTA 1024 1 HEXA = 1 HEPTA

1.180.591.620.717.411.303.424 1.180.591.620.717.411.303.424

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

18

REGISTRADORES DA UNIDADE DE PONTO FLUTUANTE REGISTRADORES DA UNIDADE DE PONTO FLUTUANTE


79 78 R7 R6 R5 R4 R3 R2 R1 R0 S S S S SS SS S S SS S S SS 15 EXP EXP EXP EXP EXP EXP EXP EXP EXP EXP EXP EXP EXP EXP EXP EXP 0 64 63 62 J J J J JJ JJ J J JJ J J JJ 47 FRAO FRAO FRAO FRAO FRAO FRAO FRAO FRAO FRAO FRAO FRAO FRAO FRAO FRAO FRAO FRAO 3231 OFFSET OFFSET 0 0 0

CONTROL CONTROL REGISTER REGISTER STATUS STATUS REGISTER REGISTER TAG TAG REGISTER REGISTER

SELETOR SELETOR 47

FPU INSTRUCTION POINTER 3231 OFFSET OFFSET

SELETOR SELETOR

FPU OPERAND (DATA) POINTER 10 0

OPCODE OPCODE

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

19

REGISTRADOR DE CONTROLE DA FPU REGISTRADOR DE CONTROLE DA FPU


15 12 11 10 9 8 X INFINITY CONTROL ROUNDING CONTROL PRECISION CONTROL EXCEPTION MASKS: PRECISION UNDERFLOW OVERFLOW ZERO DIVIDE DENORMALIZED OPERAND INVALID OPERAND PRECISION CONTROL 00 01 10 11 SINGLE (24 BITS) RESERVADO DOUBLE (53 BITS) EXTENDED (64 BITS) RC PC 5 4 3 2 1 0 P U O Z D I M M M M M M

ROUNDING CONTROL 00 01 10 11 TO NEAREST (EVEN) ( - ROUND DOWN ( -) ( + ROUND UP ( +) ROUND TOWARD 0

AS EXCEES, QUANDO MASCARADAS, SO TRATADAS AUTOMATICAMENTE PELO HARDWARE AS EXCEES, QUANDO MASCARADAS, SO TRATADAS AUTOMATICAMENTE PELO HARDWARE

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

20

REGISTRADOR DE STATUS DA FPU REGISTRADOR DE STATUS DA FPU


15 14 13 11 10 9 8 7 6 5 4 3 2 1 0 C C C C E S P U O Z D I B TOP 2 1 0 S F E E E E E E 3

FPU BUSY FLAG TOP OF STACK CONDITION CODES ERROR SUMARY STACK FAULT

EXCEPTION FLAGS: PRECISION UNDERFLOW OVERFLOW ZERO DIVIDE DENORMALIZED OPERAND INVALID OPERAND

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

21

REGISTRADOR DE TAGS DA FPU REGISTRADOR DE TAGS DA FPU


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 TAG7 TAG6 TAG5 TAG4 TAG3 TAG2 TAG1 TAG0

TAGn INDICA O CONTEDO DO REGISTRADOR Rn DA FPU CONFORME A TABELA ABAIXO: TAGn INDICA O CONTEDO DO REGISTRADOR Rn DA FPU CONFORME A TABELA ABAIXO:

VALORES DO TAG: 00 01 10 11 VLIDO ZERO ESPECIAL VAZIO

(NaN ,NO TAG == 10 (ESPECIAL) SIGNIFICA INVLIDO NaN,NO SUPORTADO), INFINITO OU DENORMAL TAG 10 (ESPECIAL) SIGNIFICA INVLIDO (NaN,NO SUPORTADO), INFINITO OU DENORMAL (NaN (NaN,NO NaN

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

22

EXEMPLO DE CLCULO COM A FPU EXEMPLO DE CLCULO COM A FPU


DETERMINAR: (5,6 x 2,4) + (3,8 x 10,3) SUPOR TOP = 100b = 4 DECIMAL DETERMINAR: (5,6 x 2,4) + (3,8 x 10,3) SUPOR TOP = 100b = 4 DECIMAL

FLD FMUL FLD FMUL FADD

val1 val2 val3 val4 ST(1)

; ; ; ; ;

(a) val1 = 5,6 (b) val2 = 2,4 val3 = 3,8 (c) val4 = 10,3 (d)

(a) R7 R6 R5 R4 R3 R2 R1 R0 5,6 R7 R6 R5 ST(0) R4 R3 R2 R1 R0

(b) R7 R6 13,44 3,8 R5 ST(1) ST(1) R4 ST(0) ST(0) R3 R2 R1 R0

(c) R7 R6 13,44 39,14 R5 ST(1) ST(1) R4 ST(0) ST(0) R3 R2 R1 R0

(d)

13,44 52,58

ST(1) ST(1) ST(0) ST(0)

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

23

COMPATIBILIDADE COM VERSES ANTIGAS COMPATIBILIDADE COM VERSES ANTIGAS


NA ARQUITETURA IA-32, AT O 386, A FPU ERA IMPLEMENTADA NA ARQUITETURA IA-32, AT O 386, A FPU ERA IMPLEMENTADA COPROCESSADOR). COMO UM PROCESSADOR PARTE (UM COPROCESSADOR COPROCESSADOR). COMO UM PROCESSADOR PARTE (UM COPROCESSADOR

UNIDADE DE UNIDADE DE INTEIROS INTEIROS

UNIDADE DE UNIDADE DE PONTO PONTO FLUTUANTE FLUTUANTE

A PARTIR DO 486 INTEGRADAS EM UMA MESMA PASTILHA

BARRAMENTO

A UNIDADE DE INTEIROS BUSCA SEQENCIALMENTE AS INSTRUES A EXECUTAR EE A FPU A UNIDADE DE INTEIROS BUSCA SEQENCIALMENTE AS INSTRUES A EXECUTAR A FPU SUPERVISIONA A BUSCA LENDO O BARRAMENTO EM PARALELO SUPERVISIONA A BUSCA LENDO O BARRAMENTO EM PARALELO

INSTRUES PREFIXADAS COM ESC (0D8h AT 0DFh) SO ESPECFICAS DA FPU E SO INSTRUES PREFIXADAS COM ESC (0D8h AT 0DFh) SO ESPECFICAS DA FPU E SO EXECUTADAS POR ELA. AS DEMAIS INSTRUES SO EXECUTADAS PELA UNIDADE DE INTEIROS EXECUTADAS POR ELA. AS DEMAIS INSTRUES SO EXECUTADAS PELA UNIDADE DE INTEIROS

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

24

COMPARAES EXECUTADAS PELA FPU COMPARAES EXECUTADAS PELA FPU


DEVIDO S CARACTERSTICAS DA ARQUITETURA DA FPU, MANTENDO A COMPATIBILIDADE COM DEVIDO S CARACTERSTICAS DA ARQUITETURA DA FPU, MANTENDO A COMPATIBILIDADE COM VERSES ANTERIORES, A NICA COMUNICAO POSSVEL ENTRE AS DUAS UNIDADES DE VERSES ANTERIORES, A NICA COMUNICAO POSSVEL ENTRE AS DUAS UNIDADES DE PROCESSAMENTO OCORRE ATRAVS DO BARRAMENTO / / MEMRIA EXTERNA. PROCESSAMENTO OCORRE ATRAVS DO BARRAMENTO MEMRIA EXTERNA. POR ISSO, RESULTADOS DE COMPARAES REALIZADAS POR INSTRUES DA FPU, QUE FICAM POR ISSO, RESULTADOS DE COMPARAES REALIZADAS POR INSTRUES DA FPU, QUE FICAM NOS FLAGS C0 A C3(CONDITION CODES) DO REGISTRADOR DE STATUS DA FPU, NO ESTO NOS FLAGS C0 A C3(CONDITION CODES) DO REGISTRADOR DE STATUS DA FPU, NO ESTO DIRETAMENTE ACESSVEIS UNIDADE DE PROCESSAMENTO DE INTEIROS. DIRETAMENTE ACESSVEIS UNIDADE DE PROCESSAMENTO DE INTEIROS.

SOLUO: SOLUO:

O REGISTRADOR DE STATUS COPIADO PARA AX COM A INSTRUO FSTSTW AX O REGISTRADOR DE STATUS COPIADO PARA AX COM A INSTRUO FSTSTW AX O CONTEDO DE AH MOVIDO PARA EFLAGS COM A INSTRUO SHAF O CONTEDO DE AH MOVIDO PARA EFLAGS COM A INSTRUO SHAF

CORRESPONDNCIA ENTRE OS FLAGS DA FPU E DA UNIDADE DE INTEIROS: CORRESPONDNCIA ENTRE OS FLAGS DA FPU E DA UNIDADE DE INTEIROS: COND. CODE C0 C1 C2 C3 EFLAGS CARRY NENHUMA PARITY ZERO

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

25

SINCRONISMO DE EXCEES DA FPU SINCRONISMO DE EXCEES DA FPU


UMA EXCEO, TANTO NA FPU QUANTO NA UNIDADE DE INTEIROS, TRATADA ANTES DA UMA EXCEO, TANTO NA FPU QUANTO NA UNIDADE DE INTEIROS, TRATADA ANTES DA EXECUO DA INSTRUO SUBSEQENTE INSTRUO CAUSADORA DA EXCEO. EXECUO DA INSTRUO SUBSEQENTE INSTRUO CAUSADORA DA EXCEO.

CASO A UMA INSTRUO DA FPU CAUSE UMA EXCEO (NO MASCARADA) EE TODAS AS CASO A UMA INSTRUO DA FPU CAUSE UMA EXCEO (NO MASCARADA) TODAS AS INSTRUES SUBSEQENTES FOREM INSTRUES DA UNIDADE DE INTEIROS, ESSA EXCEO INSTRUES SUBSEQENTES FOREM INSTRUES DA UNIDADE DE INTEIROS, ESSA EXCEO FICAR PENDENTE. FICAR PENDENTE.

QUANDO FINALMENTE, APS A EXECUO DE VRIAS INSTRUES DA UNIDADE DE INTEIROS, A QUANDO FINALMENTE, APS A EXECUO DE VRIAS INSTRUES DA UNIDADE DE INTEIROS, A FPU VOLTAR A EXECUTAR UMA NOVA INSTRUO, A EXCEO SER TRATADA. FPU VOLTAR A EXECUTAR UMA NOVA INSTRUO, A EXCEO SER TRATADA.

A ROTINA DE TRATAMENTO DA EXCEO DA FPU PORM PODER NO CONSEGUIR TRATAR A ROTINA DE TRATAMENTO DA EXCEO DA FPU PORM PODER NO CONSEGUIR TRATAR ADEQUADAMENTE A EXCEO, CASO AS INSTRUES EXECUTADAS INTERMEDIARIAMENTE ADEQUADAMENTE A EXCEO, CASO AS INSTRUES EXECUTADAS INTERMEDIARIAMENTE PELA UNIDADE DE INTEIROS TENHAM ALTERADO VALORES NA MEMRIA UTILIZADOS PELA FPU. PELA UNIDADE DE INTEIROS TENHAM ALTERADO VALORES NA MEMRIA UTILIZADOS PELA FPU.

PARA EVITAR ESSE TIPO DE PROBLEMA PODE-SE: PARA EVITAR ESSE TIPO DE PROBLEMA PODE-SE: A) COLOCAR SEMPRE UMA INSTRUO FPU APS INSTRUES QUE PODEM CAUSAR A) COLOCAR SEMPRE UMA INSTRUO FPU APS INSTRUES QUE PODEM CAUSAR EXCEES EXCEES FWAIT APS A INSTRUO FPU QUE PODERIA B) UTILIZAR UMA INSTRUO WAIT / / FWAIT APS A INSTRUO FPU QUE PODERIA B) UTILIZAR UMA INSTRUO WAIT CAUSAR UMA EXCEO. CAUSAR UMA EXCEO.

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

26

EXEMPLO DE PROLBLEMA DE SINCRONISMO EXEMPLO DE PROLBLEMA DE SINCRONISMO

FILD

count

INC count FSQRT

; ; ; ; ;

Instruo FPU - carrega count para ST(0) supomos acesso proibido - causa exceo. Instruo da unidade inteiros Instruo FPU - excees pendentes sero tratadas aqui

NO EXEMPLO ACIMA, CASO FILD TENHA CAUSADO UMA EXCEO, O TRATAMENTO OCORRER NO EXEMPLO ACIMA, CASO FILD TENHA CAUSADO UMA EXCEO, O TRATAMENTO OCORRER SOMENTE APS A VARIVEL ACESSADA TER SIDO ALTERADA PELA UNIDADE DE INTEIROS, O SOMENTE APS A VARIVEL ACESSADA TER SIDO ALTERADA PELA UNIDADE DE INTEIROS, O QUE PODE IMPOSSIBILITAR A OPERAO CORRETA DA ROTINA DE EXCEO. QUE PODE IMPOSSIBILITAR A OPERAO CORRETA DA ROTINA DE EXCEO.

SEQNCIA CORRETA NESSE CASO: SEQNCIA CORRETA NESSE CASO:

FILD FSQRT INC

count

count

; ; ; ; ;

Instruo FPU - carrega count para ST(0) supomos acesso proibido - causa exceo. Instruo FPU - excees pendentes sero tratadas aqui Instruo da unidade inteiros

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

27

SALVAMENTO E RESTAURAO DO ESTADO DA FPU SALVAMENTO E RESTAURAO DO ESTADO DA FPU


EM SISTEMAS MULTITAREFA NECESSRIO SALVAR E RESTAURAR O ESTADO DA CPU AO SE EM SISTEMAS MULTITAREFA NECESSRIO SALVAR E RESTAURAR O ESTADO DA CPU AO SE COMUTAR DE UMA TAREFA PARA OUTRA. COMUTAR DE UMA TAREFA PARA OUTRA.

COMO A FPU EE A UNIDADE DE INTEIROS EVOLUIRAM SEPARADAMENTE COMO UNIDADES COMO A FPU A UNIDADE DE INTEIROS EVOLUIRAM SEPARADAMENTE COMO UNIDADES ISOLADAS, NO H NENHUMA PREVISO DE SALVAMENTO DE DADOS DA FPU NO TSS DA ISOLADAS, NO H NENHUMA PREVISO DE SALVAMENTO DE DADOS DA FPU NO TSS DA TAREFA, QUE GERENCIADO PELA UNIDADE DE INTEIROS. TAREFA, QUE GERENCIADO PELA UNIDADE DE INTEIROS.

A ARQUITETURA IA-32 PORTANTO PREV INSTRUES ESPECFICAS PARA SALVAR E A ARQUITETURA IA-32 PORTANTO PREV INSTRUES ESPECFICAS PARA SALVAR E RESTAURAR O ESTADO DOS REGISTRADORES DA FPU RESTAURAR O ESTADO DOS REGISTRADORES DA FPU

FSTENV ee FLDENV - SALVA / / RESTAURAOS REGISTRADORES DE CONTROLE, STATUS, PONTEIRO FSTENV FLDENV - SALVA RESTAURAOS REGISTRADORES DE CONTROLE, STATUS, PONTEIRO DE DADOS EE INTRUES E OPCODE DE DADOS INTRUES E OPCODE FSAVE ee FRSTOR - - SALVA TODOS OS REGISTRADORES COMO FSTENV ee FLDENV E FSAVE FRSTOR SALVA TODOS OS REGISTRADORES COMO FSTENV FLDENV E ADICIONALMENTE OS 88 REGISTRADORES DE DADOS DA FPU ADICIONALMENTE OS REGISTRADORES DE DADOS DA FPU

ESSAS INSTRUES RECEBEM COMO ARGUMENTO UM PONTEIRO PARA A REA NA MEMRIA ESSAS INSTRUES RECEBEM COMO ARGUMENTO UM PONTEIRO PARA A REA NA MEMRIA ONDE OS DADOS SERO SALVOS. O LAYOUT DESSA REA DEPENDE DO MODO DE OPERAO ONDE OS DADOS SERO SALVOS. O LAYOUT DESSA REA DEPENDE DO MODO DE OPERAO DA CPU EE DO TAMANHO DEFAULT DOS OPERANDOS (16 OU 32 BITS) DA CPU DO TAMANHO DEFAULT DOS OPERANDOS (16 OU 32 BITS)

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

28

EXEMPLO DE LAYOUT DA REA DE DADOS DA FPU EXEMPLO DE LAYOUT DA REA DE DADOS DA FPU
EXEMPLO SUPONDO MODO PROTEGIDO EE 32 BITS EXEMPLO SUPONDO MODO PROTEGIDO 32 BITS 31 CONTROL WORD STATUS WORD TAG REGISTER FPU INSTRUCTION POINTER OFFSET 0000 OPCODE INSTR. POINTER SELECTOR 0 0 4 8 12 16 20 24 28

FPU OPERAND (DATA) POINTER OFFSET OPER. POINTER SELECTOR

80 BYTES COM OS REGISTRADORES R0 AT R7 (SOMENTE FSAVE / FRSTOR) 104

COMO ONEROSO (E MUITAS VEZES DESNECESSRIO) SALVAR E RESTAURAR TODO O COMO ONEROSO (E MUITAS VEZES DESNECESSRIO) SALVAR E RESTAURAR TODO O CONTEXTO DA FPU, OS SISTEMAS OPERACIONAIS MULTITAREFA GERALMENTE UTILIZAM CONTEXTO DA FPU, OS SISTEMAS OPERACIONAIS MULTITAREFA GERALMENTE UTILIZAM ALGUM ARTIFCIO (P. EX FLAG EM EM CR0) PARA DESCOBRIR SE A TAREFA UTILIZA OU NO ALGUM ARTIFCIO (P. EX FLAG EM EM CR0) PARA DESCOBRIR SE A TAREFA UTILIZA OU NO INSTRUES DA FPU, EVITANDO ASSIM SALVAMENTOS DESNECESSRIOS. INSTRUES DA FPU, EVITANDO ASSIM SALVAMENTOS DESNECESSRIOS.

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

29

PARA PESQUISAR EM CASA: PARA PESQUISAR EM CASA:

REFERENTE S CODIFICAES DE NMEROS EM PONTO FLUTUANTE, QUAL O REFERENTE S CODIFICAES DE NMEROS EM PONTO FLUTUANTE, QUAL O SIGNFICADO DE: SIGNFICADO DE:

UNNORMALS UNNORMALS

PSEUDO DENORMALS PSEUDO DENORMALS

PSEUDO INFINITY PSEUDO INFINITY

PSEUDO NaNS PSEUDO NaNS

Abril 2010

Arq. e Org. Computadores - Prof. Gortan - 8. Aula - FPU

30