Baixe o app para aproveitar ainda mais
Prévia do material em texto
Organização e Arquitetura de Computadores Histórico da Arquitetura de Computadores Prof. Wanderson Senra Michel wanderson.senra@udf.edu.br Como Surgiu o Computador? História e Evolução dos Computadores • Geração Zero (? - 1945) – Mecânicos • Primeira Geração (1945 - 1955) – Válvulas • Segunda Geração (1955 - 1965) – Transistor • Terceira Geração (1964 - 1980) – Circuito Integrada • Quarta Geração (1980 – 2000) – CI VLSI • Quinta Geração (Atualmente) – Uso de Inteligência Artificial. Atribuir ao computador características humanas. História e Evolução dos Computadores Geração Zero (? - 1945) – Mecânicos • Necessidade de contar (?) Dizem que os pastores contavam nos dedos as suas ovelhas... Daí os termos dígito, digital, decimal, ... Mas, com o número de ovelhas crescendo... usar somente os dedos passa a ficar complicado. Começaram, então, a usar pedrinhas, que foram ficando difíceis de carregar... Transformaram-nas em contas... Daí os termos cálculo, calcular, contar, ... Calculus (latim) = Pedrinha Digitus (latim) = Dedo • Ábaco (2000AC) Inventado pelos Chineses, sendo utilizado ainda hoje. Uma pessoa treinada pode efetuar operações de soma, subtração, multiplicação, divisão e radiciação com velocidade comparável a de uma maquina de calcular. Geração Zero (? - 1945) – Mecânicos • Bastões de Napier (1614) John Napier, matemático escocês, inventor dos logaritmos naturais ou neperianos, criou os Bastões de Napier, que consistiam num conjunto de 9 bastões, um para cada dígito, que transformavam a multiplicação de dois número numa soma das tabuadas de cada dígito. Geração Zero (? - 1945) – Mecânicos • Bastões de Napier (1614) Geração Zero (? - 1945) – Mecânicos Operação: 6 x 739 • Bastões de Napier (1614) Geração Zero (? - 1945) – Mecânicos Operação: 6 x 739 • Bastões de Napier (1614) Geração Zero (? - 1945) – Mecânicos Operação: 6 x 739 • Régua de Cálculos (1633) • 1633 ⇒⇒⇒⇒ ano em que o cientista Galileu Galilei era julgado pela Santa Inquisição, William Oughtred representou os logaritmos de Napier em escalas, que recebeu o nome de Círculos de Proporção. Este dispositivo de Oughtred originou a Régua de Cálculos, que conhecemos até hoje. Esta Régua é considerada como o primeiro computador analógico da História. Régua de Cálculos Geração Zero (? - 1945) – Mecânicos Círculo de Proporção Em 1889, Herman Hollerith, inventor americano, e fundador da empresa que deu origem a IBM estava às voltas com um problema norte-americano: estava sendo realizado um censo demográfico no país, mas se temia pela quantidade de tempo necessário para apurar todos os resultados desejados. Para piorar o caso, no censo realizado 10 anos antes, foram necessários sete anos para se chegar aos resultados buscados. Por conta disso, acreditava-se que, para este novo censo, seriam necessários 10 anos de análise. Geração Zero (? - 1945) – Mecânicos No entanto, com a máquina inventada por Hollerith, o resultado do censo foi apurado em apenas seis semanas. Além da agilidade que conferiu ao processo, a máquina desse americano trazia consigo a idéia de cartões perfurados para armazenar dados. Ou seja, os cartões perfurados tinham na época uma função parecida com a dos nossos disquetes, que é armazenar informações (guardadas as devidas proporções). Geração Zero (? - 1945) – Mecânicos Mas foi a partir da II Guerra Mundial que o desenvolvimento dos computadores eletrônicos ganhou mais força, quando os governos perceberam o potencial estratégico que estas máquinas ofereciam. O primeiro computador eletromecânico, o chamado Versuchmodell 1 ou Z-1, usava relés e foi construído pelo alemão Konrad Zuse (1910-1995) em 1936. Zuse tentou vende-lo ao governo para uso militar, mas a princípio, foi subestimado pelos nazistas, que não se interessaram pela máquina. Geração Zero (? - 1945) – Mecânicos O computador nasceu então com a II Guerra Mundial, nos EUA, entre 1943 e 1944. A Marinha em conjunto com a Universidade de Harvard e a IBM desenvolveram o ASCC – Americam Automatic Sequence Controlled Calculator (Chamado de Mark I). Howard Aiken, um professor da Universidade de Haward, elabora o primeiro computador eletrônico, através do apoio do então presidente da IBM Thomas Watson. Mark I era um gigante eletromagnético que ocupava 120 m2, com milhares de relés e conseguia multiplicar números de 10 dígitos em 3 segundos. Geração Zero (? - 1945) – Mecânicos • Pouca confiabilidade; • Possuíam dispositivos de entrada/saída primitivos (cartões perfurados); • Baixa velocidade; • Custo elevado; • Grande quantidade de energia consumida; • Necessitavam de grandes instalações de ar condicionado para dissipar o calor; 1ª Geração (1945 - 1955) – Válvulas Construído com o objetivo de auxiliar o exército americano no processo de mira de sua artilharia pesada. • ENIAC (1946) Características: 18.000 válvulas, 1.500 relés, Pesava 30.000 Kg, Consumia 140.000W, Para programar o ENIAC era necessário ajustar 6.000 chaves e conectar um número imenso de cabos. 1ª Geração (1945 - 1955) – Válvulas Começo da história de zeros e uns (0 e 1), mais conhecida como código binário! O Eniac foi criado para ajudar a decifrar códigos secretos usados na Segunda Guerra e ele só fazia isso graças às suas 18 mil válvulas. Cada válvula funcionava como um interruptor de luz, que ligava e desligava, soltando pequenas cargas elétricas. Se a válvula ligasse o computador entendia um 1 (um), se desligasse era um 0 (zero). O computador lia esses zeros e uns e ia formando combinações de números binários. Ex: (00111010111001) • ENIAC (1946) 1ª Geração (1945 - 1955) – Válvulas Inventada pelo gênio John Von Neumann. Ele imaginou que os programas poderiam ser representados em forma digital na memória do computador juntos com os dados. Poderia utilizar a aritmética binária em detrimento a ultrapassada aritmética decimal. Esse projeto foi a base do EDSAC, considerado o primeiro computador com programa armazenado e ainda é a base de praticamente todas as máquinas atuais. • Máquina de Von Neumann (1946) Memória Entrada SaídaUnidade de Controle Unidade aritimética lógica acumulador 1ª Geração (1945 - 1955) – Válvulas Eletronic Discrete Variable Computer ou "Computador Eletrônico de Variáveis Discretas” • EDVAC (1948-1949) Planejado para acelerar o trabalho armazenando tanto programas quanto dados em sua expansão de memória interna. Os dados eram armazenados eletronicamente num meio material composto de um tubo cheio de mercúrio, conhecido como “linha de retardo” , onde os cristais dentro do tubo geravam pulsos eletrônicos que se refletiam para frente e para trás, tão lentamente quanto podiam, de fato a reter a informação. Outra grande característica do EDVAC era poder codificar as informações em forma binária em vez da forma decimal, reduzindo bastante o número de válvulas. 1ª Geração (1945 - 1955) – Válvulas Foi inventada em 1948 no Bell Labs por John Bardeen, Walter Brattain e William Shockle os quais receberam o prêmio Nobel de física em 1956. Com o uso dos transistores os computadores ficaram menores, reduzindo drasticamente o número de falhas e a dissipação de calor. 2ª Geração (1955 - 1965) – Transistor Dimensões do Transistor Fio de cabelo 100µµµµ Transistor Um fio de cabelo é 500 vezes mais largo que um transistor 0,2µµµµ 2ª Geração (1955 - 1965) – Transistor Em 1951 surge o Univac I, o primeiro computador produzido em escala comercial. As máquinas ainda eram muito grandes e pareciam os tradicionais eletrodomésticos. • UNIVAC 1 (1951) 2ª Geração (1955- 1965) – Transistor O primeiro computador transistorizado de propósito geral e programável era uma máquina de 16 bits, construída no MIT, chamava-se TX-0 (Transistorized eXperimental computer 0). • TX-0 (1955) IBM lança em 1955 o primeiro disco magnético o IBM 305 RAMAC com capacidade de 5MB. 2ª Geração (1955 - 1965) – Transistor Nas décadas de 60 e 70 os computadores ainda apresentavam aparência bastante grande. Elementos semelhantes a armários caracterizavam os computadores. • TÍPICA CENTRAL DE COMPUTADORES 2ª Geração (1955 - 1965) – Transistor Os engenheiros da Texas Instruments desenvolveram o CI (Circuito Integrado), também conhecido como pastilhas ou chips. Esses chips incorporavam, numa única peça de dimensões reduzidas, várias dezenas de transistores já interligados, formando circuitos eletrônicos complexos. 3ª Geração (1965 - 1980) – Circuito Integrado Primeiro CI desenvolvido por Jack Kilby no Laboratório da Texas Instruments, Inc Construído com CIs, projetado para computação científica e para rodar aplicações comerciais. Não era um único computador, mas sim uma família com custos e performance diferentes. Com clock que variava de 1 a 4 Mhz e a possibilidade de multiprogramação. • IBM System/360 (1964) 3ª Geração (1965 - 1980) – Circuito Integrado O mouse é inventado por Douglas Engelbart (EUA), se tornando um dos dispositivos mais importantes para interface homem-máquina. • Mouse (1964) 3ª Geração (1965 - 1980) – Circuito Integrado O primeiro microprocessador fabricado no mundo foi o Intel 4004. Desenvolvido para Busicom, um fabricante de calculadora japonês, os 4004 possuíam 2.250 transistores e podiam executar até 90.000 operações por segundo (4 bits) • Intel 4004 (1971) A revista Popular Electronics anuncia o Altair 8800, baseado no Intel 8080. Sendo um sucesso de vendas. A linguagem do Altair é o BASIC (criada por Bill Gates e Paul Allen). Sendo utilizado pela 1°vez o termo “computador pessoal”. • Altair 8800 (1975) 3ª Geração (1965 - 1980) – Circuito Integrado 1975 ⇒⇒⇒⇒ Em fevereiro, Bill Gates e Paul Allen desenvolvem a primeira linguagem para microcomputadores, o Basic. As linguagens anteriores eram adequadas aos grandes e médios computadores. Em abril, a dupla funda a Microsoft, que se torna a maior e mais importante companhia de software do mundo. 3ª Geração (1965 - 1980) – Circuito Integrado Steve Wozniac projetou o Apple I e utilizou o processador 6800 da Motorola ao invés do popular 8080 da Intel (devido ao custo). • Apple I (1976) 3ª Geração (1965 - 1980) – Circuito Integrado O microprocessador Motorola 68000 apresentou uma velocidade de processamento muito superior a seus concorrentes. • Motorola 68000 (1976) 3ª Geração (1965 - 1980) – Circuito Integrado A IBM introduziu seu PC (Personal Computer), seguindo a tendência do crescente mercado de computador pessoal. O primeiro PC tinha clock de 4.77 MHz, microprocessador Intel 8088 e usava o sistema operacional MS-DOS da Microsoft. Tornando-se o computador mais vendido de toda história. • IBM PC (1980) Very Large Scale of Integration 4ª Geração (1980 - 2000) – CI VLSI Ampliação de CI contendo aproximadamente 2400 CI da geração anterior. 4ª Geração (1980 - 2000) – CI VLSI Adam Osborne completou o primeiro computador portátil, o Osborne I que pesava 11 Kg e custava $1.795,00. Com display de 5 polegadas, 64 KB de memória, um modem, e dois drives de disquete de 5 1/4''. • Osborne I ou PC-5150 (1981) 4ª Geração (1980 - 2000) – CI VLSI •Propaganda do Osborne 4ª Geração (1980 - 2000) – CI VLSI A Compaq Computer Corp. introduziu o 1°clone de PC que usava os mesmos softwares do IBM PC. Com o sucesso do clone, Compaq registrou vendas da ordem de 111 milhões de dólares no primeiro ano de vendas. • Compac Clone PC (1981) 4ª Geração (1980 - 2000) – CI VLSI A Apple Computer lançou o Macintosh, o primeiro computador com drive de mouse e interface gráfica. Baseado no microprocessador Motorola 68000 o Macintosh incluiu muitas das características do Lisa a um preço muito mais acessível U$2.500,00. • Macintosh (1984) 4ª Geração (1980 - 2000) – CI VLSI A IBM e MIPS lançam as primeiras estações de trabalho baseadas em processadores RISC, o PC/RT e sistemas R2000. • RISC (1986) A IBM lançou o PS/2, com drive de 3 1/2'', utilizando o processador Intel 80386, com o novo sistema operacional, o OS/2 e pela primeira vez um computador da IBM vinha com mouse. • IBM PS/2 (1987) 4ª Geração (1980 - 2000) – CI VLSI Executa 12.3 teraflops. Isto significa que ele é capaz de calcular 12.3 trilhões de operações por segundo. Os processadores usados são o IBM RS6000 com clock de 375 MHz. O total de memória RAM é de 6Tb. É composto por duzentos gabinetes e ocupa uma área de 2 quadras de basquete. • IBM ASCI White (2000) 4ª Geração (1980 - 2000) – CI VLSI Nos países de língua inglesa usa-se a palavra computação (do latim computare) e nos demais países, normalmente, usa-se a palavra informática, de origem francesa (informatique). Atualmente, tem-se usado também a expressão Tecnologia da Informação. Desde então, o computador sempre foi um aperfeiçoamento constante de ideias anteriores. Computação ou Informática? 5ª Geração (Atualmente) Organização e Arquitetura de Computadores Estrutura Básica de Computadores Prof. Wanderson Senra Michel wanderson.senra@udf.edu.br Unidade Central de Processamento Unidade de Controle ULA Unidade Primária de Armazenamento Dispositivos de Entrada Dispositivos de Entrada Dispositivos de Saída Dispositivos de Saída Dispositivos de Armazenamento Secundário Dispositivos de Armazenamento Secundário Conceito de Sistema Computacional �Dados � Memória do computador e mídia de armazenamento �Códigos convencionados e expressos em um sistema de numeração adequado. � Exemplos: � Códigos: ASCII, EBCDIC, Unicode � Sistemas de Numeração: Decimal, Binário, Octal, Hexadecimal. �Dados � Memória do computador e mídia de armazenamento �Códigos convencionados e expressos em um sistema de numeração adequado. � Exemplos: � Códigos: ASCII, EBCDIC, Unicode � Sistemas de Numeração: Decimal, Binário, Octal, Hexadecimal. Representação dos Dados no Computador �Decimal (base 10) � Algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9 � Sistema usual no cotidiano humano (fora do computador). � Binário (base 2) � Algarismos: 0 e 1 � Sistema de numeração empregado em sistemas computacionais. �Hexadecimal (base 16) � Algarismos: números 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9, letras A, B, C, D, E e F. � Empregado na representação de números grandes, Ex.: Endereços de memória. �Decimal (base 10) � Algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9 � Sistema usual no cotidiano humano (fora do computador). � Binário (base 2) � Algarismos: 0 e 1 � Sistema de numeração empregado em sistemas computacionais. �Hexadecimal (base 16) � Algarismos: números 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9, letras A, B, C, D, E e F. � Empregado na representação de números grandes, Ex.: Endereços de memória. Sistemas de Numeração � Exemplo de conversão: Base 2 para base 10 1011011102 = ( ? )10 1011011102 = (1.28 + 0.27 + 1.26 + 1.25 + 0.24 + 1.23 + 1.22 + 1.21 + 0.20 )10 = (1.256 + 0.128 + 1.64 + 1.32 + 0.16 + 1.8 + 1.4 + 1.2 + 0.1)10 = (256 + 0 + 64 + 32 + 0 + 8 + 4 + 2)10 = 36610 1011011102 = 36610 � Exemplo de conversão: Base 2 para base 10 1011011102 = ( ? )10 1011011102 = (1.28 + 0.27 + 1.26 + 1.25 + 0.24 + 1.23 + 1.22 + 1.21 + 0.20 )10 = (1.256 + 0.128 + 1.64 + 1.32 + 0.16 + 1.8 + 1.4 + 1.2 + 0.1)10= (256 + 0 + 64 + 32 + 0 + 8 + 4 + 2)10 = 36610 1011011102 = 36610 Conversão Sistemas de Numeração � Exemplo de conversão: Base 10 para base 2 36610 = ( ? )2 � Exemplo de conversão: Base 10 para base 2 36610 = ( ? )2 366 2 2 2 2 2 2 2 2 183 91 45 22 11 5 2 10 2 01 1 1 0 1 1 1 0 Conversão Sistemas de Numeração � Exemplo de conversão: Base 2 para base 16 1011011102 = ( ? )16 101101110 2 = 16E16 � Exemplo de conversão: Base 2 para base 16 1011011102 = ( ? )16 101101110 2 = 16E16 Decimal Hexadecimal Binário 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 F 1111 Conversão Sistemas de Numeração � Exercícios: Converta da base 10 para base 2: 429 – 276 – 385 Converta da base 2 para base 10: 11100101 – 11011000 – 10111110 Converta da base 2 para base 16: 11100101 – 11011000 – 10111110 Converta da base 16 para base 2: FA1 – 2BA – 168 – DEA � Exercícios: Converta da base 10 para base 2: 429 – 276 – 385 Converta da base 2 para base 10: 11100101 – 11011000 – 10111110 Converta da base 2 para base 16: 11100101 – 11011000 – 10111110 Converta da base 16 para base 2: FA1 – 2BA – 168 – DEA Conversão Sistemas de Numeração n16 1 16 256 4.096 65.536 1.048.576 16.777.216 268.435.456 4.294.967.296 68.719.476.736 1.099.511.627.776 17.592.186.044.416 281.474.976.710.656 4.503.599.627.370.496 72.057.594.037.927.936 1.152.921.504.606.846.976 n2 1 2 4 8 16 32 64 128 256 512 1.024 2.048 4.096 8.192 16.384 32.768 n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Sistemas de Numeração – Potência de 2 e 16 � 1 byte = 8 bits � 1 KB (quilobyte) = 210 bytes = 1024 bytes � 1 MB (megabyte) = 210KB = 1024 quilobytes � 1 GB (gigabyte) = 210MB = 1024 megabytes � 1 TB (terabyte) = 210 GB = 1024 gigabytes = 1024 * 1024 * 1024 * 1024 bytes = 240 ≈ 1.099.510.000.000 bytes � 1 byte = 8 bits � 1 KB (quilobyte) = 210 bytes = 1024 bytes � 1 MB (megabyte) = 210KB = 1024 quilobytes � 1 GB (gigabyte) = 210MB = 1024 megabytes � 1 TB (terabyte) = 210 GB = 1024 gigabytes = 1024 * 1024 * 1024 * 1024 bytes = 240 ≈ 1.099.510.000.000 bytes Bits e Bytes Armazenamento � ASCII (American Standard Code for Interchange Information – 8 bits) � Mais usado em microcomputadores � Representação de 256 caracteres diferentes (Ex.: em um teclado alfanumérico) ���� codificação em 8 bits � 128 símbolos universais � 128 símbolos adicionais, passíveis de variações de país para país � Exemplo: Letra A � Representação: 4116 = 0100 00012 Códigos de representação de Dados � Tabela ASCII 0 1 2 3 4 5 6 7 0 NUL DLE SPACE 0 @ P ` p 1 SOH DC1 ! 1 Q a q 2 STX DC2 " 2 B R b r 3 ETX DC3 # 3 C S c s 4 EOT DC4 $ 4 D T d t 5 ENQ NAK % 5 E U e u 6 ACK SYN & 6 F V f v 7 BEL ETB ' 7 G W g w 8 BS CAN ( 8 H X h x 9 HT EM ) 9 I Y i y A LF SUB * : J Z j z B VT ESC + ; K [ k { C FF FS , < L \ l | D CR GS - = M ] m } E SO RS . > N ^ n ~ F SI US / ? O _ o DEL O caractere ‘A' corresponde ao código 41 (coluna 4 linha 1) O caractere ‘A' corresponde ao código 41 (coluna 4 linha 1) A Códigos de representação de Dados � Exercício: utilizando a tabela ASCII escreva o código binário, o código hexadecimal, e o valor decimal correspondente dos seguintes símbolos: � & � ? � M � a � @ � ~ � 6 Códigos de representação de Dados � EBCDIC (Extended Binary Code Decimal Interchange Code – 8 bits) � Mais usado em mainframes � Exemplo: Algarismo 1 � Representação: F116 = 1111 00012 Códigos de representação de Dados � Unicode � Representação de 65536 caracteres diferentes � codificação em 16 bits � Modelado sobre o conjunto de caracteres ASCII � Possibilita a codificação da maioria dos caracteres correntemente em uso � Usa scripts para a definição de caracteres em um idioma específico DingbatsTibetano KatakanaGrego Códigos de representação de Dados Organização da Memória Arquitetura Placa Mãe Componentes Instalados na Placa Mãe www.rtell.com.br roger4info.blogspot.com Componentes Instalados na Placa Mãe • Memória de um computador⇒ subsistema - construída de vários componentes (vários tipos diferentes de memória) interligados e integrados, com o objetivo de armazenar e recuperar informações. • Conceitos Importantes – Tempo de acesso – Capacidade – Volatilidade – Tecnologia de fabricação – Temporariedade – Custo Organização Básica de Computadores Tempo de acesso • Indica quanto tempo a memória gasta para colocar uma informação no barramento de dados após uma determinada posição ter sido endereçada. • É um dos parâmetros que pode medir o desempenho da memória. • Denominação: tempo de acesso para leitura (ou tempo de leitura). • Dependente do modo como o sistema de memória é construído e da velocidade dos seus circuitos. • Memórias eletrônicas - igual, independentemente da distância física entre o local de um acesso e o local do próximo acesso - acesso aleatório (direto). • Dispositivos eletromecânicos (discos, fitas, ..) - tempo de acesso varia conforme a distância física entre dois acessos consecutivos - acesso sequencial. Organização Básica de Computadores Segundo o Terry’s Computer Tips, para efeito de comparação, acessar um dado a partir do disco rígido leva cerca de 0,013 segundos, enquanto o mesmo dado a partir da RAM chega em 0,000.000.01 segundos. Organização Básica de Computadores Qual a comparação do Tempo de Acesso entre memória RAM e disco rígido (HD)? Capacidade • Quantidade de informação que pode ser armazenada em uma memória; • Unidade de medida mais comum - byte, podem ser usadas outras unidades como células (no caso de memória principal ou cache), setores (no caso de discos) e bits (no caso de registradores). • Dependendo do tamanho da memória, isto é, de sua capacidade, indica-se o valor numérico total de elementos de forma simplificada, através da inclusão de K (kilo), M (mega), G (giga) ou T (tera). Organização Básica de Computadores Volatilidade • Memórias podem ser do tipo volátil ou não volátil. • Memória não volátil - retém a informação armazenada quando a energia elétrica é desligada. Ex.: Discos, Fitas. • Memória volátil - perde a informação armazenada na ausência de energia elétrica. Ex.: Registradores, Memória Principal. • É possível manter a energia em uma memória originalmente volátil - uso de baterias. Organização Básica de Computadores Tecnologias de fabricação: ♦ Memórias de semicondutores ♦ Memórias de meio magnético ♦ Memórias de meio óptico Organização Básica de Computadores Memórias de semicondutores ♦Dispositivos fabricados com circuitos eletrônicos e baseados em semicondutores. ♦Rápidas e relativamente caras, se comparadas com outros tipos. ♦Há várias tecnologias específicas, cada uma com suas vantagens, desvantagens, velocidade, custo, etc.. Organização Básica de Computadores Classificação de Memórias Semicondutoras Organização Básica de Computadores Memória R/W - Read and Write • Memória de leitura e escrita, de acesso aleatório e volátil. • Pode ser estática (SRAM) ou dinâmica (DRAM). – SRAM - uso de circuitos transistorizados (flip-flops) mantém a informação enquanto estiver energizada, muito rápida (~ns), usada tipicamente como memória cache. – DRAM - uso de capacitores (1 transistor e 1 capacitor por bit, não usa flip-flops), necessita de refresh, alta capacidade de armazenamento (> densidade), mais lentas, usadastipicamente como memória principal. Evolução: FPM DRAM (Fast Page Mode) assíncrona e mais antiga, EDO DRAM (Extended Data Output), também assíncrona, SDRAM (memórias Síncronas), etc. Organização Básica de Computadores Organização Básica de Computadores Memória SRAM - exemplos Organização Básica de Computadores Módulo de memória EDO. Módulo de memória SDR SDRAM. Observe que neste tipo há duas divisões entre os terminais de contato. Memória DDR2 acima e DDR abaixo . Note que a posição da divisão entre os terminais de contato é diferente. Fonte: www.infowester.com Memória R/W - Read and Write DDR ou SDRAM-II (Double Data Rate SDRAM) • É uma memória SDRAM muito mais avançada e que consegue trabalhar com o dobro do desempenho. Pode-se encontrá-la, por exemplo, em placas-mãe equipadas com o processador AMD K7. RDRAM (Rambus DRAM) • Baseada em protocolo, isto é, usa padrão de barramento proprietário. A arquitetura interna dos circuitos, é muito diferente das demais, pois permite a leitura e escrita de até 16 dados simultaneamente por circuito. Utilizadas principalmente em algumas máquinas de jogos e em aplicações gráficas muito intensivas. Organização Básica de Computadores ROM - Read Only Memory • Memória apenas de leitura. Uma vez gravada não pode mais ser alterada. De acesso aleatório, não é volátil. • Mais lenta que a R/W e mais barata. • Pode ser programada por máscara ("mask programmed“- MROM) em fábrica. Devido ao alto custo da máscara somente se torna econômica em grandes quantidades. MROM- O firmware era gravado durante a fabricação do circuito, com o auxílio de um filme fotográfico - máscara. As máscaras apresentam o inconveniente de serem caras e não permitem regravação. Organização Básica de Computadores ROM - Read Only Memory • Utilizada geralmente para gravar programas que não se deseja permitir que o usuário possa alterar ou apagar (Ex.: o BIOS - Basic Input Output System e Microprogramas de Memórias de Controle). • Outros tipos: PROM, EPROM, EEPROM e Flash. Organização Básica de Computadores PROM - Programmable Read Only Memory • Memória apenas de leitura, programável. • ROM programável com máquinas adequadas (chamadas queimadores de PROM). • Geralmente é comprada "virgem" (sem nada gravado), sendo muito utilizada no processo de testar programas no lugar da ROM, ou sempre que se queira produzir ROM em quantidades pequenas. • Uma vez programada (em fábrica ou não), não pode mais ser alterada. Organização Básica de Computadores Memória PROM Organização Básica de Computadores EPROM - Erasable Programmable Read Only Memory • Memória apenas de leitura, programável (com queimadores de PROM) e apagável (com máquinas adequadas, à base de raios ultra-violeta). • Tem utilização semelhante à da PROM, para testar programas no lugar da ROM, ou sempre que se queira produzir ROM em quantidades pequenas, com a vantagem de poder ser apagada e reutilizada. Organização Básica de Computadores EEPROM (ou E2PROM) - Electrically Erasable Programmable Read Only Memory • Memória apenas de leitura, programável e eletronicamente alterável. Também chamada EAROM (Electrically Alterable ROM). • EPROM apagável - processo eletrônico, sob controle da UCP (equipamento e programas adequados), menor e mais rápida que a EPROM. • Mais cara, geralmente utilizada em dispositivos aos quais se deseja permitir a alteração, via modem (carga de novas versões de programas à distância ou possibilitar a reprogramação dinâmica de funções específicas de um programa, geralmente relativas ao hardware, p.ex., reconfiguração de teclado, programação de terminal, etc). Organização Básica de Computadores ROM Flash • Funcionamento similar ao da EEPROM – conteúdo total ou parcial da memória pode ser apagado normalmente por um processo de escrita. • Apagadas e regravadas por blocos (o apagamento não pode ser efetuado ao nível de byte como na EEPROM), alta capacidade de armazenamento. • O termo flash foi imaginado devido à elevada velocidade de apagamento dessas memórias em comparação com as antigas EPROM e EEPROM. • Ideal para várias aplicações portáteis (câmeras digitais, palmtop, assistentes digitais portáteis, aparelhos de música digital ou telefones celulares). Organização Básica de Computadores Memória CMOS - (Complementary Metal Oxide Semiconductor) • Tipo especial de memória para armazenamento das opções essenciais de configuração de inicialização� quantidade de memória instalada, data, hora. • Alimentação via bateria. • Máquinas Macintosh � RAM de parâmetros. Organização Básica de Computadores Memórias de meio magnético ♦Fabricadas de modo a armazenar informações sob a forma de campos magnéticos. ♦Devido à natureza eletromecânica de seus componentes e à tecnologia de construção em comparação com memórias de semicondutores, esse tipo é mais barato, permitindo armazenamento de grande quantidade de informação. ♦Método de acesso às informações - sequencial. ♦Exemplos: disquetes, discos rígidos e fitas magnéticas (de carretel ou de cartucho). Organização Básica de Computadores Memórias de meio óptico ♦Dispositivos que utilizam um feixe de luz para “marcar” o valor (0 ou 1) de cada dado em sua superfície. ♦Exemplos: ♦CD-ROM (leitura) ♦CD-RW (leitura e escrita) Organização Básica de Computadores Temporariedade ♦ Indica o conceito de tempo de permanência da informação em um dado tipo de memória. ♦Classificação: − Armazenamento “permanente”. Ex.: Discos, disquetes. − Armazenamento transitório (temporário). Ex.: registradores, memória cache, memória principal. Organização Básica de Computadores Custo ♦Bastante variado em função de diversos fatores: − Tecnologia de fabricação − Ciclo de memória − Quantidade de bits em um certo espaço físico, etc. ♦Uma boa unidade de medida de custo é o preço por byte armazenado, em vez do custo total da memória em si. Organização Básica de Computadores Dispositivo de Memória Sólida ♦SSD é a sigla para Solid-State Drive, algo como "Unidade de Estado Sólido", em português. Trata-se de um tipo de dispositivo para armazenamento de dados que, de certa forma, concorre com os discos rígidos. Aceita-se a ideia de que seu nome faz alusão à inexistência de peças móveis na constituição do dispositivo, o que já não acontece nos HDs, que precisam de motores, discos e cabeçotes de leitura e gravação para funcionar. Organização Básica de Computadores Dispositivo SSD Métodos de acesso ♦Seqüencial ♦Direto ♦Aleatório ♦Associativo Organização Básica de Computadores Método de Acesso Seqüencial Método de Acesso Direto Método de Acesso Aleatório Método de Acesso Associativo Organização e Arquitetura de Computadores Níveis e Máquinas Multiníveis Contemporâneas Prof. Wanderson Senra Michel wanderson.senra@udf.edu.br •Conhecer computadores e máquinas multiníveis. •Nível lógico digital: UAL, Organização da memória, Clock e registradores. •Nível de microarquitetura: Fluxos de dados, Temporização do fluxo de dados, operação de memória, microinstruções. •Exemplo de macro arquitetura e projeto do nível de macroarquitetura (forma introdutória). Objetivo Computador Digital: “É uma máquina capaz de solucionar problemas através da execução de instruções que lhe são fornecidas”. Programa: “É uma sequência de instruções que descrevem como executar uma determinada tarefa”. Instruções de Máquina: “Instruções que o computador é capaz de reconhecer e executar, para o qual todos os programas devem ser convertidos antes que eles possam ser executados”. ConceitosLinguagem de Máquina: “Linguagem que torna possível as pessoas se comunicarem com o computador, composta pelas instruções primitivas de máquina”. • Quanto mais complexa a linguagem, e portanto as instruções, mais complicados são os circuitos eletrônicos para implementá-las. • Quanto mais simples a linguagem, mais difícil é a sua utilização. Conceitos Máquina Virtual: “É um computador hipotético de linguagem de máquina de um nível mais elevado do que a linguagem inerente do computador”. • Pode-se ter também máquinas virtuais baseadas em outras máquinas virtuais. Máquina Multinível: “É um computador que possui máquinas virtuais dispostas em camadas ou níveis, umas sobre as outras. Cada linguagem utiliza a sua predecessora como base”. Conceitos Máquinas multiníveis contemporâneas? Organização estruturada de computador � Máquinas multiníveis contemporâneas � Nível de lógica digital; � Nível de microarquitetura; � Nível de arquitetura de conjunto de instruções; � Nível de máquina de sistema operacional; � Nível de linguagem assembly; e � Nível de linguagem orientada ao problema. � Reconhecem e executam um conjunto limitado e simples de instruções (Linguagem de máquina – Binária); � Exemplo: soma, subtração, transferência de dados de uma parte da memória para outra parte. Os circuitos de um computador � Instruções da linguagem de máquina (decidida pelos projetistas de computadores) devem: � Ser simples; � Ser compatível com o uso da máquina; � Ser compatível com a performance requerida; � Ter custo e complexidade da eletrônica reduzidos (aplicação). Organização estruturada de computador � A linguagem de máquina (binária – baixo nível) está muito distante de uma linguagem natural (humana – alto nível) � O que as pessoas precisam fazer é complexo e o conjunto de instruções do computador é simples. Organização estruturada de computador Exemplos de linguagens � EXEMPLO: − O usuário quer calcular a correção da trajetória de um foguete até a lua. � Como ele pode fazer isso em linguagem de máquina? Trabalho difícil e tedioso para seres humanos. � SOLUÇÃO: � Criar uma hierarquia de abstrações de níveis mais alto baseados nos níveis mais baixos. � Criar uma organização estruturada de computadores para facilitar a comunicação homem- máquina. Organização estruturada de computador Linguagens, níveis e máquinas virtuais � Supondo a existência das Linguagens: � L1: Linguagem natural, do usuário (Alto nível e complexa). � L0: Linguagem de máquina (Baixo Nível e simples). � COMO COMPATIBILIZAR L1 com L0? � USAR UM TRADUTOR; � USAR UM INTERPRETADOR. Linguagens, níveis e máquinas virtuais � TRADUTOR: − Cada instrução de L1 é substituída por um conjunto de instruções equivalentes de L0; − Processador executa o programa em L0; − Todo o programa em L0 é carregado em memória e executado; − O programa pode ser traduzido uma única vez e executado várias vezes. Linguagens, níveis e máquinas virtuais � INTERPRETADOR: − Cada instrução de L1 é substituída por um conjunto de instruções equivalentes de L0; − Processador executa instrução de L1 (transformada para L0) antes de executar a próxima instrução; − Cada instrução de L1, transformada em L0, é carregada na memória e executada; − Não é criado um programa em L0; − O programa deve ser novamente interpretado para ser executado. Linguagens, níveis e máquinas virtuais � Ao invés de pensar em tradução ou interpretação, pode-se imaginar a existência de um computador hipotético, ou de uma máquina virtual M1, cuja linguagem de máquina seja L1 (e uma máquina real M0 com linguagem L0). Linguagens, níveis e máquinas virtuais � Os programas poderiam ser escritos em L1, para a máquina M1 e: − (1) Serem executados diretamente em M1 se esta máquina fosse de custo de construção baixo, ou − (2) Serem traduzidos ou interpretados para L0 e executados em M0. � Na prática, implementa-se a solução 2 acima. As pessoas escrevem programas para máquinas virtuais como se elas realmente existissem. Linguagens, níveis e máquinas virtuais � Muitos níveis de máquinas virtuais podem ser implementados; � Cada linguagem usa a sua linguagem antecessora como base; � Um computador que use essa técnica pode ser visto como um conjunto de camadas ou níveis um em cima do outro como mostra a figura do próximo slide. Linguagens, níveis e máquinas virtuais Linguagens, níveis e máquinas virtuais Máquinas multiníveis contemporâneas Em geral os computadores modernos são máquinas de 6 níveis Ilustração comparativa entre as linguagens de programação � Nível 0: Nível da lógica digital. � Nível mais baixo da estrutura. � Objetos de interesse são conhecidos como portas lógicas. � Cada porta lógica tem uma ou mais entradas digitais (aceitam 0 ou 1 e calculam funções lógicas simples sobre essas entradas. Exemplo: AND, OR e XOR). � Portas lógicas são combinadas para formar o processador – principal dispositivo do computador. Máquinas multiníveis contemporâneas � Nível 1: Nível da microarquitetura. � Enxergamos uma memória local (8 a 32 registradores) e a UAL (Unidade Aritmética e Lógica) que realiza operações aritméticas muito simples. � Os registradores são conectados a UAL formando o caminho dos dados. � Operações são controladas por um microprograma ou diretamente por hardware. � Microprograma é um interpretador para as instruções do nível 2. Máquinas multiníveis contemporâneas � Nível 2: Nível da arquitetura do conjunto de instruções (nível ISA - Instruction Set Architecture). � Definida pelo fabricante e dependente da arquitetura da máquina. � Fabricantes disponibilizam “Manual de Referência da Linguagem de Máquina“ ou “Princípios de Operação do Computador Modelo XPTO“, ou algo similar. � Os manuais descrevem como as instruções são executadas interpretativamente pelo microprograma ou como elas são executadas diretamente pelo hardware. � Essas informações são necessárias para os desenvolvedores de sistemas operacionais. Máquinas multiníveis contemporâneas � Nível 3: Nível do Sistema Operacional. � Instruções da linguagem deste nível também podem conter instruções do nível ISA. � Suporta uma organização diferente da memória. � Suporta a capacidade de rodar 2 ou mais programas simultaneamente. � Suporta sistemas de comandos ou de janelas (Windows). � Programadores deste nível e também dos níveis mais baixos, são conhecidos como programadores de sistema. Os programadores dos níveis mais altos são chamados programadores de aplicação. Máquinas multiníveis contemporâneas � Nível 4: Nível da linguagem do montador ou montagem (Assembly language). � Linguagem de montagem: Forma simbólica de representação das linguagens de nível mais baixo. � Programas nessa linguagem são primeiro traduzidos para as linguagens dos níveis 1, 2, 3 e depois são interpretados pela máquina virtual apropriada ou pela própria máquina real. � O programa que realiza essa tradução é chamado de montador. Máquinas multiníveis contemporâneas � Nível 5: Nível das linguagens orientadas para a solução de problemas. � Conhecidas como linguagens de alto nível. Ex: C, Pascal, Java, etc. � Programas são geralmente traduzidos para os níveis 3 e 4 por compiladores. � Alguns são interpretados. Exemplo: Java, Shell Script, etc. Máquinas multiníveis contemporâneas � Nível 6: ? � Depende da aplicação � Pode ser criado para atender necessidades específicas Máquinas multiníveis contemporâneas Programas e linguagem de máquina � OBSERVAÇÕES IMPORTANTES� Computadores são projetados com uma série de níveis, cada um deles construído em cima de seus precursores. � Cada nível representa uma abstração distinta, com diferentes objetos e operações. � A abstração permiter ignorar, “abstrair“ temporariamente, detalhes irrelevantes de níveis mais baixos, reduzindo uma questão complexa para algo muito mais fácil de ser compreendido. � O conjunto de tipos de dados, operações e características de cada um dos níveis é chamado de arquitetura do nível. � São partes da arquitetura, as características que um programador do nível deve enxergar, por exemplo, a disponibilidade de memória. Máquinas multiníveis contemporâneas Evolução das máquinas multiníveis contemporâneas � A invenção da microprogramação; � A invenção do Sistema Operacional; � Migração das funcionalidades para o Microcódigo; � A eliminação da Microprogramação; Evolução das máquinas de vários níveis •Evolução das máquinas de vários níveis � Hardware (Nível 0): Composto de circuitos integrados, placas de circuitos impressos, cabos, fontes de alimentação, memórias, impressoras, etc; � Softwares: Algoritmos e programas; •Atualmente é difícil separar o hardware do software � Hardware e Software são equivalentes logicamente; � Qualquer operação realizada por software pode ser diretamente realizada por hardware; � Qualquer instrução executada por hardware pode ser simulada em software; Evolução das máquinas de vários níveis •A decisão de se colocar funções em hardware ou software depende: � Custo; � Velocidade; � Confiabilidade; � Frequência esperada de mudanças. Evolução das máquinas de vários níveis � Primeiros computadores – década de 1940 – tinham 2 níveis (Nível ISA + Nível da lógica digital); � Em 1951, Maurice Wilkes sugere a idéia de acoplar um interpretador (microprograma) para executar os programas do nível ISA (por interpretação). Como consequencia: � Diminui o número de circuitos (hardware + simples) � Aumenta a confiabilidade da máquina (circuitos à válvula). A invenção da microprogramação � Década de 1950, surgimento montadores e compiladores; � Década de 1960 surgimento do nível de sistema operacional; Sistemas Batch (lotes); Sistemas Time Sharing (tempo compartilhado); � Em 1970, o uso do nível de ISA interpretado por microprograma, ao invés de executado diretamente por circuitos eletrônicos, tornou-se uma prática comum. A invenção da microprogramação •No início, os computadores: • Eram operados e gerenciados pelo próprio programador; • Executavam apenas um programa por vez (disponível apenas para um único usuário). A invenção do Sistema Operacional Exemplo de execução de um programa FORTRAN: 1.Colocar cartões do compilador FORTRAN na leitora + mandar executar (enter) 2. Colocar cartões do programa na leitora (1ª vez) + executar 3. Colocar cartões do programa na leitora (2ª vez) + executar (compilador de 2 passos) 4. Se programa não tem erro, o compilador perfurava cartões com código de máquina. Senão, corrige programa e volta ao passo 1 5. Colocar programa em linguagem de máquina + cartões da biblioteca Fortran e executar 6. Programa é executado. Se há erro de lógica, corrige e volta ao passo 1. A invenção do Sistema Operacional Por volta de 1960, foi criado o Sistema Operacional: • Objetivo: Facilitar a operação do computador. • O S.O..era mantido o tempo todo no computador. • Cartões de controle comandavam instruções do sistema operacional. • Exemplo: A invenção do Sistema Operacional Cartões de Controle: * JOB identifica o usuário, * FORTRAN carrega o compilador e *DATA executa o programa com os dados que seguem. Programa é executado em sistema BATCH. A invenção do Sistema Operacional • Com o tempo o S.O. evoluiu incorporando, além de algumas instruções do ISA, tratamento de Entrada/Saída. As instruções do S.O. eram conhecidas por macros do S.O. ou chamadas ao supervisor. • Em 1960, no MIT, criou-se o S.O. com compartilhamento de vários usuários (por terminais ligados ao computador por linhas telefônicas) conhecidos como Sistemas de Tempo Compartilhado. A invenção do Sistema Operacional Em 1970 houve uma explosão nos conjuntos de instruções das máquinas, expandindo-se o microprograma. Exemplos de novas funcionalidades, instruções para: - Multiplicação e divisão de inteiros. - Aritmética em ponto flutuante. - Chamada e retorno de procedimentos. - Acelerar a execução de loops. - Manipulação de cadeias de caracteres. Migração das funcionalidades para o microcódigo Devido a facilidade da microprogramação, foram, ainda, incorporadas novas funcionalidades do tipo: – Acelerar o processamento de programas envolvendo cálculo matricial (indexação e endereçamento indireto). – Permitir que os programas pudessem ser deslocados de posição de memória, após o início da execução (realocação). – Tratar interrupções que enviam um sinal para o processador logo que uma operação de E/S termine. – Suspender a execução de um programa e iniciar a execução de outro (troca de contexto entre processos). Migração das funcionalidades para o microcódigo A eliminação da Microprogramação • Assim os microprogramas cresceram muito e em conseqüência, tornaram-se lentos. Voltou a idéia de ter instruções e funcionalidades executadas por hardware. Migração das funcionalidades para o microcódigo • Fronteira entre hardware e software pode ser arbitrária. • O software de hoje pode ser o hardware de amanha, e vice-versa. • Fronteiras entre demais níveis não estão bem definidas e podem também serem mudadas. • Programador de um nível, em geral, não deve se preocupar com implementações de níveis inferiores para suspender a execução de um programa e iniciar a execução de outro (troca de contexto entre processos). Conclusões sobre máquinas multiníveis Microprocessadores da família INTEL • 1971 - 4004 Primeiro microprocessador (CPU em uma única pastilha). O objetivo era servir de base para a construção de calculadores. 4 bits, 45 instruções, 4Kbytes de endereçamento. • 1972 - 8008 Processador de 8 bits construído para controlar terminais. 8 bits, 48 instruções, 16Kbytes de endereçamento. A Família INTEL • 1973 - 8080 Características: 64Kbytes de endereçamento, clock 10 vezes mais rápido que o do 8008, compatível com a família TTL. • 1976 - 8085 Nova versão do 8080, mais rápido. Incorpora gerador de clock e sinais de controle de sistema internamente a pastilha. A Família INTEL • 1978 - 8086 Características: 16 bits, 1Mbyte de endereçamento. Utilizado para a construção de microcomputadores. Deu origem a família 80x86. • 1979 - 8088 Versão simplificada do 8086, com via de dados de 8 bits. Permitiu a construção de microcomputadores mais baratos Escolhido pela IBM como o microprocessador do IBM PC original. A Família INTEL • 1982 - 80186 Versão do 8086 que incorpora o gerador de clock, controlador de interrupção, temporizador e unidade de acesso direto a memória. Foi pouco usado. • 1982 - 80188 Versão simplificada do 80186, com via de dados de 8 bits. • 1983 - 80286 Versão do 8086 com 16Mbytes de endereçamento. 1Gbyte de espaço de endereçamento de memória virtual. Unidade de gerenciamento de memória. CPU do microcomputador PC-AT e de algumas versões do PS/2. A Família INTEL • 1985 - 80386 Versão do 8086 de 32 bits. Suporte a multi-tarefa. 4Gbytes de endereçamento. 64Tbytes de espaço de endereçamento de memória virtual. 80386DX: via de dados externa de 32 bits. 80386SX: via de dados externa de 16 bits. Permitiu a migração do hardware do 80286 deforma mais direta. • 1989 - 80486 Versão melhorada do 80386. 8Kbytes de memória cache interna. Características de máquinas RISC. 80486DX: versão com o co-processador numérico 80387. 80486SX: versão sem o co-processador numérico. A Família INTEL • 1992 - Pentium Versão melhorada do 80486, com via de dados externa de 64 bits, trabalhando internamente com 2 processadores. Cache interno de 16Kbytes (8 para dados e 8 para instruções). • 1995 - Pentium Pro Versão do Pentium com cache de nível 2 embutido na pastilha do microprocessador. A Família INTEL A Evolução dos Processadores INTEL Microprocessadores da família MOTOROLA • 1974 - 6800 Primeiro microprocessador da Motorola de 8 bits. • 1978 - 6809 Evolução do 6800 com registradores adicionais, novas instruções de manipulação de dados de 16 bits e mais modos de endereçamento. • 1975 - 6502 Microprocessador popular da Motorola, utilizado nas máquinas Apple, compatível com o 6800. A Família MOTOROLA • 1979 - 68000 Microprocessador de 16/32 bits possuindo vias de dados internas de 32 bits e externas de 16 bits, registradores de 32 bits. Nem todas as instruções trabalham com 32 bits. Não é compatível com os anteriores (projeto novo). Utilizado nos microcomputadores Macintosh. Deu origem a família 680x0. • 1980 - 68008 Versão do 68000 com via de dados externa de 8 bits e vias de endereços de 20 bits (1Mbyte de endereçamento), que não foi muito utilizado. A Família MOTOROLA • 1983 - 60010 Evolução do 68000 com controle de memória virtual. 16Mbytes de endereçamento. • 1983 - 60012 Versão do 60010 com 2 Gbytes de endereçamento. • 1984 - 68020 Microprocessador de 32 bits, com memória cache interna de 256 bytes. Todas as instruções trabalham com 32 bits. Utilizado pelas estações de trabalho Sun, Apollo e HP. A Família MOTOROLA • 1987 - 68030 Versão melhorada do 68020 e com uma unidade de gerenciamento de memória dentro da pastilha. Equivalente ao 80386. • 1990 - 68040 Versão com co-processador numérico 68881. Memória cache interna de 4Kbytes para dados e instruções independentes. Equivalente ao 80486. • 1994 - 68060 Apresenta um projeto super-escalar, com múltiplas unidades de execução. A Família MOTOROLA Microprocessadores da família ZILOG • A Zilog foi fundada em 1974, como uma dissidência da Intel, e projetou o famoso microprocessador Z80. • 1974 - Z80 Processador de 40 pinos, sendo uma versão melhorada do 8080, de 8 bits. • 1979 - Z8000 Microprocessador de 16 bits capaz de endereçar até 8Mbytes de memória. Possui memória cache para dados e instruções de 256 bytes e unidade de gerenciamento de memória. A Família ZILOG
Compartilhar