11. Número Coisa banal que usamos no nosso dia-a-dia. O que é número? Bem, pode ser dito que é um símbolo que representa uma coleção de objetos iguais.
12. Seja, por exemplo, o objeto representado por ☺ . Assim a coleção ☺ ☺ ☺ seria representada por 3 ☺ , a coleção ☺ ☺ ☺ ☺ ☺ por 5 ☺ , etc. Simples não?
13.
14.
15. Janeiro de 2005 A - COLEÇÃO B - DECIMAL C - OCTAL D - HEXADECIMAL E - BINÁRIO 0 0 0 0 * 1 1 1 1 ** 2 2 2 10 *** 3 3 3 11 **** 4 4 4 100 ***** 5 5 5 101 ****** 6 6 6 110 ******* 7 7 7 111 ******** 8 10 8 1000 ********* 9 11 9 1001 ********** 10 12 A 1010 *********** 11 13 B 1011 ************ 12 14 C 1100 ************* 13 15 D 1101 ************** 14 16 E 1110 *************** 15 17 F 1111 **************** 16 20 10 10000 ***************** 17 21 11 10001 ****************** 18 22 12 10010
16.
17.
18.
19. 10011011 1 x 2 0 = 1 1 x 2 1 = 2 0 x 2 2 = 0 1 x 2 3 = 8 1 x 2 4 = 16 0 x 2 5 = 0 0 x 2 6 = 0 1 x 2 7 = 128 Resultado = 155 10111 = 1 x 2 4 + 0 x 2 3 + 1 x 2 2 + 1 x 2 1 + 1 x 2 0 = 23
20.
21. Janeiro de 2005 O sufixo K (kilo), que, em decimal, representa 1.000 vezes como em Km e Kg), em binário representa 2 10 vezes (1.024). Logo, 1 Kbyte representa 1.024 bytes, 2 Kbytes = 2.048 bytes. Sufixo Quantidade Kilo ( K ) 2 10 = 1.024 Mega ( M ) 2 20 = 1.048.576 Giga ( G ) 2 30 = 1.073.741.824 Tera ( T ) 2 40 = 1.099.511.627.776 Peta ( P ) 2 50 = 1.125.899.906.843.624 Exa ( E ) 2 60 = 1.152.921.504.607.870.976 Zeta ( Z ) 2 70 = 1.180.591.620.718.458.879.424 Yotta ( Y ) 2 80 = 1.208.925.819.615.701.892.530.176
22.
23. Geralmente, os números hexadecimais são escritos com um prefixo “ $ ” ou “ 0x ”, ou com o sufixo “ h ”, para realçar o sistema numérico que estamos a utilizar. Assim, o número hexadecimal A37E , pode ainda ser mais corretamente escrito como $ A37E, 0x A37E ou A37E h . 0000 = 0 0001 = 1 0010 = 2 0011 = 3 0100 = 4 0101 = 5 0110 = 6 0111 = 7 1000 = 8 1001 = 9 1010 = A 1011 = B 1100 = C 1101 = D 1110 = E 1111 = F
24. $ A 3 7 E = 1010 0011 0111 1110 A 3 7 E ▼ ▼ ▼ ▼ 14 x 16 0 = 14 10 x 16 3 = 40960 3 x 16 2 = 768 7 x 16 1 = 112 Resultado = 41854
33. Herman Hollerith (1860-1929) também inspirou-se nos cartões de Jacquard para criar uma máquina para acumular e classificar informações - a Tabuladora de Censo. Aplicação: processamento dos dados do censo. 1941- Konrad Zuse (Alemanha) Primeiro computador digital, automático, programável, de propósito geral, completamente funcional (eletromecânico).
34. John V. Atanasoff / Clifford Berry (EUA) Primeiro protótipo de calculador eletrônico que funcionou nos EUA. Construído entre 1937 e 1942 na Univ. do Estado de at Iowa. John V. Atanasoff Clifford Berry ABC Computer (Atanasoff-Berry Computer)
35. Colossus , desenvolvido na Inglaterra no período de 1939 a 1943 com a intenção de quebrar o código da máquina de criptografia alemã denominada Enigma, que gerava seqüências aleatórias com período de 1019 caracteres. Deste projeto, tomou parte Alan Turing . Após a guerra, esse projeto foi descontinuado, mas permaneceu secreto até 1973.
36. 1944 - Howard Aiken (Universidade de Harvard - EUA) Primeiro computador eletromecânico automático de grande porte. Howard Hathaway Aiken
37.
38.
39. Para 2 KB de memória seriam necessárias 16.384 válvulas e para três circuitos 16.384 x 3 = 49.152 válvulas. Como não se tinha muita confiança nos resultados, devido à constante queima de válvulas, cada cálculo era efetuado por três circuitos diferentes e os resultados comparados.
40. Comemora-se na Universidade da Pensylvania os cinqüenta anos do ENIAC, e para tal foi montado o ENIAC num chip, com as mesmas funções do original. CHIP ENIAC desenvolvido para as comemorações dos 50 anos do ENIAC
41. Surgem os grandes computadores e, por detrás deles, as grandes empresas: IBM, Bourroughs, NCR, etc.. É a era de máquinas grandes, acessadas por uma multidão de terminais burros. Chegou-se a prever que no mundo haveria cinco grandes computadores, um para cada continente. Era a visão de homens simples perante máquinas maravilhosas e as vezes fatais, como conta Arthur Clark em "2001“. A seguir veremos quatro marcos interessantes sobre esse passado.
42. O termo “bug”, que sempre foi usado pelos engenheiros para indicar pequenas falhas em suas máquinas. Em 1947, os engenheiros que trabalhavam com o Harvard Mark I encontraram uma traça entre seus circuitos, prenderam-na no livro de registro e rotularam-na como o “primeiro bug” encontrado. O primeiro "bug", 1947
43. O computador IAS, de 1952, que foi construído segundo orientação de von Newmann e muito influenciou o projeto do IBM 701, o primeiro computador eletrônico comercializado pela IBM. Computador IAS, 1952.
44. Janeiro de 2005 O UNIVAC, projetado pelos idealizadores do ENIAC. Modelo do UNIVAC, 1954
45. PDP-8, primeiro computador com preço acessível, tendo sido uma máquina da série PDP onde Ken Thompson e Dennis Ritchie desenvolveram o UNIX. Início do domínio da IBM Minicomputador PDP-8, 1965 Barramento único Surgimento dos minicomputadores
46.
47.
48.
49.
50.
51. Já na área dos microcomputadores, perguntamo-nos: qual foi o primeiro ? Em 1975 a Revista “ Popular Electronics ” apresentou o projeto e anunciou a venda do “kit” do primeiro microcomputador. Era o Altair 8800, baseado no microprocessador 8008 da Intel. Foi para esse microcomputador que a dupla Paul Allen e Bill Gates vendeu um de seus primeiros produtos: um interpretador Basic .
54. Janeiro de 2005 Quadro Comparativo de Características de microprocessadores Microprocessador Data de Lançamento Palavra de Dados Endereçamento Máximo de MP Intel 4004 1971 4 1 K Bytes Intel 8080 1973 8 64 K Bytes Intel 8088 1980 16 1 K Bytes Intel 80286 1982 16 16 M Bytes Intel 80386 1985 32 4 G Bytes Intel 80486 1989 32 4 G Bytes Intel Pentium 1993 32 4 G Bytes Motorola MC 6800 1974 8 64K Bytes MC 68000 1979 32 16 M bytes MC 68010 1983 32 16 M Bytes MC 68020 1984 32 4 G Bytes MC 60030 1987 32 4G bytes MC 68040 1989 32 4 G bytes Zilog Z80 1974 8 64 K bytes Zilog Z80 1979 16 1M Bytes
59. Para que este modelo funcione, deve existir em cada cartão uma INSTRUÇÃO . O operador segue de escaninho em escaninho, fazendo exatamente o que está escrito em cada cartão, até encontrar um cartão contendo uma instrução que manda que ele PARE . Conjunto de escaninhos Caixa de entrada Máquina de calcular Máquina de escrever
60. EXERCÍCIO 1: Obs.: Utilizaremos a notação ( E10 ) significando "o conteúdo do escaninho E10 ", isto é, o valor que está agora armazenado no escaninho E10 (ou, mais formalmente, o valor corrente daquela posição de memória). E1 : armazene o valor 1 no E10 E2 : leia o conteúdo de E11 (externo - a caixa de entrada) E3 : multiplique E10 com E11 (usando a máquina de calcular) e armazene o resultado em E10 E4 : subtraia o valor 1 de E11 E5 : se o valor de E11 > 0 , volte para E3 , senão continue E6 : imprima o conteúdo de E10 (usando a máquina de escrever) E7 : PARE E8 : E9 : A partir de um sinal externo do tipo COMECE , este modelo inicia do E1 daí por diante prossegue até E8 (o final). Resolva o exercício; o que faz este algorítmo?
61. Este programa calcula o FATORIAL de um número. ALGORITMO E10 E11 AÇÃO E1- armazene o valor 1 no E10 1 - - E2 - leia (E11) (caixa de entrada - p.ex: 4) - 4 - E3 - (E10) x (E11); armazene resultado em E10 4 - - E4 : subtraia o valor 1 de (E11) - 3 - E5 : se (E11) > 0, volte para E3, senão continue - - Volta p/E3 E3 12 - - E4 - 2 - E5 - - Volta p/E3 E3 24 - - E4 - 1 - E5 - - Volta p/E3 E3 24 - - E4 - 0 - E5 - - Segue p/E6 E6 : imprima o conteúdo de E10 - - Imprime 24 E7 : PARE - - PARA
62. EXERCÍCIO 2: No mesmo algoritmo acima, avalie as conseqüências das seguintes alterações: a) E5 : se o valor de E11 > 0 , volte para E3 , b) E5 : se o valor de E11 >= 0 , volte para E3 ; senão continue, c) E7 : XXX ----------------------------------------------------------------------------------- Num modelo real - o COMPUTADOR- só faz aquilo que ele recebe instrução para realizar. Um computador funciona a partir de um programa que o instrui sobre o que deve fazer. "O problema dos computadores é que eles fazem exatamente aquilo que você os instruiu a fazer e não aquilo que você realmente queria que eles fizessem." Um programador frustrado.
63. Resposta - Exercício 2: a) E5 : se o valor de E11 > 0 , volte para E3 , ( eliminar "senão continue" ), o modelo não saberia o que fazer quando o valor de E11 chegasse a zero. b) E5 : se o valor de E11 >= 0 , volte para E3 , Haveria mais um passo no loop, multiplicando o conteúdo de E10 por 0 (zero) e o resultado do processamento do algorítmo seria SEMPRE ZERO . c) E7 : XXX Quando o modelo chegasse até E7 , poderia encontrar qualquer coisa. No caso de encontrar código válido (por exemplo, o "lixo" deixado por um programa anterior) com algum significado, ele executaria a instrução (fosse esta o que quer que fosse), chegando a um resultado imprevisível (poderia dar um resultado errado, poderia travar, poderia entrar em um loop, etc.). Caso o conteúdo de E8 fosse um valor sem significado (por exemplo, um dado), o modelo não saberia o que fazer e pararia. Portanto, num modelo real - o COMPUTADOR- só faz aquilo que ele recebe instrução para realizar. Um computador funciona a partir de um programa que o instrui sobre o que deve fazer.
64. PROGRAMA é uma seqüência de instruções (no modelo hipotético, os cartões); O programa deve ser escrito numa LINGUAGEM DE PROGRAMAÇÃO - as linguagens naturais têm ambigüidades e podem dar margem a diferentes interpretações; HARDWARE (significa originalmente "ferragens“, em inglês - hardware store significa originalmente "loja de ferragens") é o conjunto de dispositivos físicos do computador, o equipamento; SOFTWARE ( em analogia a hardware, a parte "soft", macia, são os programas que permitem que o equipamento saiba o que realizar, que ele funcione; Depois surgiram outros termos, aproveitando as mesmas analogias, tais como firmware (indicando programação gravada em dispositivos físicos e não modificável pelo usuário); PROCESSAMENTO AUTOMÁTICO DE DADOS: Um computador é capaz de executar um programa sozinho, desde que o programa seja previamente armazenado nele, de forma que ele tenha as indicações de onde procurar as instruções.
65. MEMÓRIA – (os escaninhos) - Dispositivo físico para armazenar programas e dados; PROCESSADOR – (operador e máquina de calcular) - Dispositivo que realiza o processamento; DISPOSITIVOS DE ENTRADA E SAÍDA – (caixa de entrada, caixa de saída, máquina de escrever) - Formas de comunicação entre o usuário e o computador; SISTEMA - Um conjunto interligado de programas (e, eventualmente, também de equipamentos); LINGUAGEM DE MÁQUINA - é a linguagem que o computador entende, cujo "alfabeto" é composto apenas de " 1 's" e " 0 's" (linguagem binária); LINGUAGEM DE PROGRAMAÇÃO - é uma linguagem formal, utilizando termos que se aproximam da linguagem humana, que pode ser traduzida por programas especiais em linguagem de máquina.
69. DMA – deixa a UCP disponível para outro processamento em paralelo. UCP Troca de informações ( dados ou instruções ) – fluxo bidirecional. Sinais de controle – fluxo unidirecional. Diagrama em bloco de um computador MEMORIA PRINCIPAL DISPOSITIVOS DE ENTRADA E SAIDA UC ULA
70.
71.
72. Representação gráfica da UCP com seus quatro componentes principais destacados. A unidade de entrada e saída é formada, nesta representação, pelos registradores REM e RDM e por suas ligações com os demais elementos (logo veremos as funções de cada um deles).
73. MEMÓRIA PRINCIPAL (MP): A Memória Principal tem por finalidade armazenar toda a informação que é manipulada pelo computador - programas e dados . Para que um programa possa ser manipulado pela máquina, ele primeiro precisa estar armazenado na memória principal . OBS.: os circuitos da Memória Principal não são combinatoriais, eles tem capacidade de armazenar bits. Os circuitos usados são do tipo "flip-flop", conforme veremos em Circuitos Lógicos.
74. DISPOSITIVOS DE ENTRADA E SAÍDA (E/S): Tem por finalidade permitir a comunicação entre o usuário e o computador. OBS.: Para executar um programa, bastaria UCP e MP; no entanto, sem os dispositivos de E/S não haveria a comunicação entre o usuário e o computador.
75.
76. Sistema Operacional dá suporte aos aplicativos. (Sustenta o ambiente no qual os aplicativos são executados). Aplicativo A Aplicativo B Aplicativo C Drivers de Dispositivos HARDWARE Gerenciamento de Processos E/S Arquivos Gerenciamento de Memoria E/S Dispositivos
79. No sistema de computador existe uma variedade grande de tipos de memória, cada uma com sua finalidade e característica especificas, mas que interligam e se integram para o funcionamento do sistema. Registradores Cache Principal Secundária Custo alto Velocidade alta Baixa capacidade Custo baixo Velocidade baixa Alta capacidade Pirâmide Hierárquica de tipos de memória Discos Fitas
90. Área de Memória Endereços Conteúdo 0 a 640 KB 00000h a 9FFFFh Banco 0 ao banco 9 Memória convencional 640 a 704 KB A0000h a AFFFFh Banco 10: Mem. De vídeo 704 a 768 KB B0000h a BFFFFh Banco 11: Mem. De vídeo 768 a 832 KB C0000h a CFFFFh Banco 12: ROM da interface de vídeo 832 a 896 KB D0000h a DFFFFh Banco 13: Firmware de interfaces 896 a 960 KB E0000h a EFFFFh Banco 14: Firmware de interfaces 960 a 1.024 KB F0000h a FFFFFh Banco 15: BIOS (e Basic residente, caso haja)
104. Estrutura da Memória Principal - CÉLULAS E ENDEREÇOS A memória precisa ter uma organização que permita ao computador guardar e recuperar informações quando necessário. Portanto, não basta transferir informações para a memória. É preciso ter como encontrar essa informação mais tarde, quando ela for necessária, e para isso é preciso haver um mecanismo que registre exatamente onde a informação foi. Célula é a unidade de armazenamento do computador. A memória principal é organizada em células. Célula é a menor unidade da memória que pode ser endereçada e tem um tamanho fixo (para cada máquina). As memórias são compostas de um determinado número de células ou posições. Cada célula é composta de um determinado número de bits. Todas as células de um dado computador tem o mesmo tamanho, isto é, todas as células daquele computador terão o mesmo número de bits.
105. Cada célula é identificada por um endereço único. As células são numeradas seqüencialmente, uma a uma, de 0 a (N-1) , chamado o endereço da célula. Endereço é o localizador da célula, que permite identificar univocamente uma célula. Assim, cada célula pode ser identificada pelo seu endereço. Unidade de transferência é a quantidade de bits que é transferida da memória em uma única operação de leitura ou transferida para a memória em uma única operação de escrita. O tamanho da célula poderia ser igual ao da palavra, e também à unidade de transferência, porém por razões técnicas e de custo, são freqüentemente diferentes. Palavra é a unidade de processamento da UCP. Uma palavra deve representar um dado ou uma instrução, que poderia ser processada, armazenada ou transferida em uma única operação.
106. Janeiro de 2005 Acesso - ação de armazenar ou recuperar uma informação em uma memória; No end. 5h temos o armazenamento de um dado de 8 bits Numa memória de 1 MB, tem 1 M endereços que armazenam 1 byte cada. Como 1 M = 1.048.576 teremos essa quantidade de endereços Para armazenarmos um dado De 8 bits em cada um.
107. Número de bits para representar um endereço: Expressão geral MP com endereços de 0 a (N-1): N = 2 x logo: x = log 2 N sendo x = nº de bits para representar um endereço e N o número de endereços. CAPACIDADE DA MEMÓRIA PRINCIPAL A capacidade da MP em bits é igual ao produto do nº de células pelo total de bits por célula. T = N x M T = capacidade da memória em bits N = nº de endereços (N=2x sendo x = nº de bits do endereço) M = nº de bits de cada célula 10111101 10110101 10110001 10110111 0 1 2 3 N-1 Nº de endereços Estrutura da MP
111. A Unidade Central de Processamento - UCP (em inglês, Central Processing Unity - CPU) é a responsável pelo processamento e execução dos programas armazenados na MP. As funções da UCP são: executar as instruções e controlar as operações no computador. A UCP é composta de duas partes: UAL - Unidade Aritmética e Lógica - tem por função a efetiva execução das instruções ACC REGs Unidade de Controle ULA Barramento Interno Diagrama Esquemático da ULA Barramento de Controle
112. UC - Unidade de Controle - tem por funções a busca, interpretação e controle de execução das instruções, e o controle dos demais componentes do computador ACC REGs UC ULA CLOCK RDM REM CI RI DECODER INST. Memória Principal Unidade Lógica e Aritmética Diagrama Funcional da UCP Unidade de Controle Barramento de Dados Barramento de Endereços Barramento Interno
113.
114.
115. Formato geral de uma Instrução OPCODE - identifica a operação a ser realizada pelo processador. É o campo da instrução cuja valor binário identifica a operação a ser realizada. Este código é a entrada no decodificador de instruções na unidade de controle. OP - é ou são o(s) campo(s) da instrução cujo valor binário sinaliza a localização do dado (ou é o próprio dado) que será manipulado (processado) pela instrução durante a operação. Em geral, um operando identifica o endereço de memória onde está contido o dado que será manipulado, ou pode conter o endereço onde o resultado da operação será armazenado. Finalmente, um operando pode também indicar um Registrador (que conterá o dado propriamente dito ou um endereço de memória onde está armazenado o dado). Os operandos fornecem os dados da instrução. Obs: Existem instruções que não tem operando. Ex.: Instrução HALT ( PARE ). Código de operação (OPCODE) Operando (s) (OP)
116.
117.
118.
119.
120.
121.
122.
123. PALAVRA (UNIDADE DE INFORMAÇÃO) Palavra é a unidade de informação do sistema UCP / MP. A conceituação mais usada (IBM, Digital) define palavra como sendo a capacidade de manipulação de bits do núcleo do computador (UCP e MP). Pressupõe-se aqui que todos os elementos do núcleo do computador (o que inclui o tamanho da UAL, do acumulador e registradores gerais da UCP e o barramento de dados) tenham a mesma largura (processem simultaneamente o mesmo número de bits), o que nem sempre acontece. Muitas vezes encontram-se computadores em que o tamanho da UAL e do acumulador (e registradores gerais) não é o mesmo tamanho dos barramentos. Desta forma, encontram-se especificações de "computadores de 64 bits" mesmo quando seu barramento de dados é de 32 bits, nesse caso referindo-se exclusivamente à capacidade de manipulação da UCP de 64 bits (isto é, sua UAL e acumulador tem 64 bits).
124. TEMPO DE ACESSO Tempo de acesso - tempo decorrido entre uma requisição de leitura de uma posição de memória e o instante em que a informação requerida está disponível para utilização pela UCP. As memórias DRAM (Dynamic RAM ) - tempo de acesso - 60 ns. Tempo de ciclo - tempo decorrido entre dois ciclos sucessivos de acesso à memória. As memórias dinâmicas perdem seu conteúdo em alguns instantes e dependem de ser periodicamente atualizadas ( refresh ) . No caso das SRAM (Static RAM ou memórias estáticas), que não dependem de "refresh", o tempo de ciclo é igual ao tempo de acesso . As memórias dinâmicas, no entanto, requerem ciclos periódicos de " refresh ", o que faz com que a memória fique indisponível para novas transferências, a intervalos regulares necessários para os ciclos de "refresh". Assim, as memórias DRAM tem ciclo de memória maior que o tempo de acesso.
125. ACESSO À MEMÓRIA PRINCIPAL O acesso à MP é ALEATÓRIO, portanto qualquer que seja o endereço (a posição) de memória que se queira acessar, o tempo de acesso é o mesmo (constante). A MP pode ser acessada através de duas operações: 1 - LEITURA: LER da MEMÓRIA Significa requisitar à MP o conteúdo de uma determinada célula (recuperar uma informação). Esta operação de recuperação da informação armazenada na MP consiste na transferência de um conjunto de bits (cópia) da MP para a UCP e é não destrutiva, isto é, o conteúdo da célula não é alterado. SENTIDO: da MP para a UCP
126.
127.
128.
129.
130. Clock O clock é um pulso alternado de sinais de tensão alta ("high") e baixa ("low"), gerado pelos circuitos de relógio (composto de um cristal oscilador e circuitos auxiliares). O clock é o sinal de controle no barramento, mais importante, pois é um sinal de sincronismo. É o clock que determina o momento exato para troca de informações entre os circuitos. Todos os processadores a partir do 486DX2 possuem multiplicação de clock . Período 1 0
131. Conforme vimos ao analisar a comunicação entre UCP e memória, as instruções, os dados e os endereços " trafegam " no computador através dos barramentos (de dados, de endereços e de controle), sob a forma de bits representados por sinais elétricos. Periodicamente, uma nova configuração de bits é colocada nos circuitos, e tudo isso só faz sentido se pudermos de alguma forma organizar e sincronizar essas variações, de forma a que, num dado instante, os diversos circuitos do computador possam "congelar" uma configuração de bits e processá-las.
132. Para isso, é preciso que exista um outro elemento, que fornece uma base de tempo para que os circuitos e os sinais se sincronizem. Este circuito é chamado clock - o relógio interno do computador. Cada um dos estados diferentes que os circuitos assumem, limitados pelo sinal do clock, é chamado um ciclo de operação . O clock é um pulso alternado de sinais de tensão, gerado pelos circuitos de relógio (composto de um cristal oscilador e circuitos auxiliares).
133. Ciclo de Operação Cada um do intervalos regulares de tempo é delimitado pelo início da descida do sinal, equivalendo um ciclo à excursão do sinal por um " low" e um "high" do pulso. O tempo do ciclo equivale ao período da oscilação. Período é o inverso da freqüência. Ou seja, P = 1 / f. A freqüência f do clock é medida em hertz . Inversamente, a duração de cada ciclo é chamada de período, definido por P=1/f (o período é o inverso da freqüência). Por exemplo: se f = 10 hz logo P = 1/10 = 0,1 s.
134. 1 Mhz (1 megahertz) equivale a um milhão de ciclos por segundo. Sendo a freqüência de um processador medida em megahertz , o período será então medido em nanosegundos , como vemos no exemplo abaixo: f = 10 Mhz = 10 x 10 6 hz P = 1 / 10 6 = 0,000001s = 100 nanosegundos. Quando se diz que um processador é de 200 Mhz, está-se definindo a freqüência de operação de seu processador (seu clock), significando que o processador pode alternar seus estados internos 166 milhões de vezes por segundo. Isto acarreta que cada ciclo de operação dura: 1 / 200.000.000 s = 0,000000005s = 5 x 10-9 s ou seja, 5 nanosegundos.
135. Como podemos ver pelo exemplo a seguir, o processador com o clock ilustrado em (B) teria um tempo de ciclo cinco vezes menor que o (A) e portanto teria (teoricamente) condições de fazer cinco vezes mais operações no mesmo tempo.