Você está na página 1de 9

Introdu c ao

Organiza c ao de Computadores Digitais

Valdinei Freire da Silva


Escola de Artes, Ci encias e Humanidades - USP

2013

V. F. Silva (EACH-USP)

Introdu c ao

2013

1/9

Apresenta c ao

Organiza c ao de computadores digitais Computador: aquilo que computa, ou seja, que processa informa c ao. Computador Digital: Computador que processa informa c ao digital, ou seja, aquela que e quantizada ou discreta ao inv es de cont nua podendo ser representada por n umeros (que possuem d gitos). Organiza c ao de Computadores Digitais: estudo da forma como se organizam e se interrelacionam as partes que comp oem um computador digital. E para que eu quero saber disso?

V. F. Silva (EACH-USP)

Introdu c ao

2013

2/9

Um problema...

Considere o seguinte programa:


1 class prog1 { 2 public static void main ( String args []) 3 { 4 int i = 2147483647; 5 System . out . println ( i ) ; 6 i ++; 7 System . out . println ( i ) ; 8 } 9 }

O que ser a impresso na tela? 2147483647 -2147483648

V. F. Silva (EACH-USP)

Introdu c ao

2013

3/9

Outro problema...

1 2 3 4 5 6 7 8 9

int [][] m = new int [7000][7000]; long start = System . currentTimeMillis () ; for ( int i =0; i <7000; i ++) for ( int j =0; j <7000; j ++) m [ i ][ j ] = 1; long stop = System . currentTimeMillis () ; System . out . println ( " Tempo : " + ( stop - start ) + " ms " ) ;

Resultado (em um CORE i3 3.10GHz): Tempo: 36ms

V. F. Silva (EACH-USP)

Introdu c ao

2013

4/9

Outro problema...
Troca entre i e j.
1 2 3 4 5 6 7 8 9 int [][] m = new int [7000][7000]; long start = System . currentTimeMillis () ; for ( int i =0; i <7000; i ++) for ( int j =0; j <7000; j ++) m [ j ][ i ] = 1; /* TROQUEI j E i !!! */ long stop = System . currentTimeMillis () ; System . out . println ( " Tempo : " + ( stop - start ) + " ms " ) ;

Resultado (no mesmo computador): Tempo: 1050ms Quase 30 vezes maior!!!


V. F. Silva (EACH-USP) Introdu c ao 2013 5/9

Mais outro problema...


1 2 3 4 5 6 7 8 9 double x = 0.2+0.2; if ( x ==0.4) System . out . println ( " OK ! " ) ; else System . out . println ( " Ops ! " ) ; System . out . println ( x ) ; System . out . println (0.4) ;

O que ser a impresso na tela? OK! 0.4 0.4


V. F. Silva (EACH-USP) Introdu c ao 2013 6/9

Mais outro problema...


1 2 3 4 5 6 7 8 9 double x = 0.2+0.1; if ( x ==0.3) System . out . println ( " OK ! " ) ; else System . out . println ( " Ops ! " ) ; System . out . println ( x ) ; System . out . println (0.3) ;

O que ser a impresso na tela? Ops! 0.30000000000000004 0.3


V. F. Silva (EACH-USP) Introdu c ao 2013 7/9

Desvendando Mist erios

Os comportamentos que vimos nos slides anteriores n ao s ao muito desej aveis nos nossos programas. 1. Quais as suas causas? 2. Podemos prev e-los? 3. Podemos evit a-los? Conforme veremos mais ` a frente, se resolvermos a quest ao 1, teremos como resolver 2 e 3. Bonus: vamos aprender a projetar um computador digital!

V. F. Silva (EACH-USP)

Introdu c ao

2013

8/9

Organiza c ao Geral do Curso

1. Bases Te oricas
1.1 1.2 1.3 1.4 2.1 2.2 2.3 2.4 2.5 2.6 Representa c ao de dados Opera c oes aritm eticas L ogica e circuito de dados Unidade L ogica Aritm etica (ULA) Vis ao geral de um sistema de computa c ao Mem oria Barramentos Entrada e Sa da Suporte ao Sistema Operacional Unidade Central de Processamento (CPU)

2. Organiza c ao de Computadores

V. F. Silva (EACH-USP)

Introdu c ao

2013

9/9

Você também pode gostar