Introdução à Computação e suas Aplicações Eduardo Reck Aula 03 - Introdução à Arquitetura e Organização de Computadores & Sistemas de Numeração Introdução à Arquitetura e Organização de Computadores Sistemas Computacionais: Crescimento acelerado. Empregados em vários setores. Alguns mitos que se tornaram realidade: Caixas Eletrônicos Computação embarcada em automóveis. Computadores Portateis. Projeto do Genoma Humano World Wide Web. Sistemas Computacionais Classificação Desktop Servidores Computadores Embarcados. Desktop Enfatizam o bom desempenho a um único usuário, por um baixo custo e normalmente são usados para executar software independente. Representa um dos maiores mercados para os computadores e a evolução de muitas tecnologias de computação é motivada por essa classe. Servidores Forma moderna do que antes eram os mainframes, minicomputadores e supercomputadores. Projetados para suportar grandes cargas de trabalho, em aplicações científicas ou em aplicações empresariais. São construídos a partir da mesma tecnologia básica dos computadores desktop, mas fornecem uma maior capacidade de expansão tanto no processamento quanto na e/s de dados. Servidores(2) Podem ser: Mini-servidores Menores que desktop e voltado para o armazenamento de dados Supercomputadores Constituído por centenas ou milhares de processadores, gigaBytes ou teraBytes de memória e de teraBytes ou pentaBytes de armazenamento. Voltados para resolução de cálculos científicas e de engenharia de alta capacidade, tais como previsão do tempo, exploração de petróleo, determinação da estrutura da proteína. Servidores(2) Supercomputadores Blue Gene Primo do Deep Blue Possui 131.000 processadores 360 trilhões de operações por segundo 31.634 vezes mais rápido que o Deep Blue (256 co-processadores, capazes de analisar aproximadamente 200 milhões de posições por segundo. Computadores Embarcados Maior classe de computadores e abrangem a faixa mais ampla de aplicações e desempenho. São projetados para executar uma aplicação ou um conjunto de aplicações relacionadas como um único sistema. Normalmente possuem necessidades específicas que combinam um desempenho mínimo com limitações rígidas em relação a custo ou potência. Computadores embutidos, em geral, possuem menor tolerância a falhas, pois é comum seu emprego em sistemas de tempo real. Tipos de computadores Supercomputadores (grande capacidade de processamento, paralelismo, pesquisas científicas): CRAY Mainframes (grande porte, centenas de usuários): IBM, DEC, UNISYS Minicomputadores (versão menor dos mainframes, vários usuários) Microcomputadores (potência limitada, 1 usuário): PC (downsizing!) Cluster: Agrupamento de computadores agregando uma grande capacidade de processamento. • O Cray CX1 tem 8 nós e 16 processadores Intel Xeon, dual ou quad core. Cada nó pode ter 64 gigabytes de RAM e há um RAID com 4 terabytes de disco. • O preço vai de US$25.000,00 a US$ 60.000,00. • Quem quiser se candidatar pode encontrar informações técnicas completas aqui. Tipos de computadores Quanto ao número de processadores Monoprocessamento: apenas 1 processador, 1 memória principal, vários programas podem compartilhar o mesmo processador (ex: “time-sharing” cada programa tem um tempo para usar o processador); Multiprocessamento: mais de um processador, podem compartilhar memória ou não, podem executar vários programas ao mesmo tempo ou dividir a execução de um. Arquitetura X Organização Arquitetura São os atributos de um sistema que são visíveis para o programador, ou seja, que possuem impacto direto sobre a execução lógica de um programa. Exemplos: conjunto de instruções, número de bits usado para representar os tipos de dados, mecanismos de E/S, técnicas de endereçamento de memória. Organização São às unidades operacionais e suas interconexões que implementam as especificações da sua arquitetura. Exemplos: sinais de controle, interfaces entre o computador e os periféricos, tecnologia de memória utilizada. Arquitetura X Organização Mais exemplos: Definir se um computador deve ou não ter uma instrução de multiplicação. Decisão de Arquitetura Definir se uma instrução de multiplicação será implementada por uma unidade especial de multiplicação ou por um mecanismo que utiliza repetidamente sua unidade de soma. Decisão de Organização Arquitetura X Organização Arquitetura Organização Transparente ao programador Pode sobreviver por muitos anos. Tempo de vida relativamente curto. Isso garante compatibilidade de software. Pode mudar sem afetar a arquitetura Muda com a evolução da tecnologia. Arquitetura X Organização Arquitetura Organização Transparente ao programador Pode sobreviver por muitos anos. Tempo de vida relativamente curto. Isso garante compatibilidade de software. Pode mudar sem afetar a arquitetura Muda com a evolução da tecnologia. Arquitetura X Organização Outras características: Organização Tempo de vida relativamente curto. Muda com a evolução da tecnologia. Pode mudar sem afetar a arquitetura Transparente ao programador Arquitetura Pode sobreviver por muitos anos. A família Intel X86 possui a mesma arquitetura básica A família IBM System/370 também. Isso garante compatibilidade de software. Pelo menos retro-compatibilidade Em microcomputadores a relação entre arquitetura e organização é mais estreita. Mudanças tecnológicas, em geral, também influenciam a arquitetura. Aplicações & Utilitários Sistema Operacional Basic Input Output System (BIOS) Hardware Estágios de Evolução da Arquitetura de Computadores. Geração Mecânica (1642-1945) Blaise Pascal Calculadora mecânica Só efetuava somas e subtrações. Wilhelm Von Leibniz Calculadora mecânica que efetuava as quatro operações aritméticas Estágios de Evolução da Arquitetura de Computadores Charles Babbage Máquina Diferencial - Só somava e subtraia Realizava um único algoritmo. Método das diferenças finitas usando polinômios Saída era dada através da perfuração de pratos de cobre. Máquina Analítica (1834) Possuía memória, unidade de processamento, unidade de entrada e saída. Estágios de Evolução da Arquitetura de Computadores Ada Augusta Lovelace Primeira desenvolvedora de software da história Produziu software para a máquina analítica de Babbage Infelizmente a máquina não funcionou corretamente devido a limitações da época. Estágios de Evolução da Arquitetura de Computadores Konrad Zuse máquina de calcular usando relés – 1930 John Atanasoff Aritmética binária e memória com capacitores Howard Aiken descobriu os trabalhos de Babbage Mark I - 1944 6 segundos para executar uma instrução Marcou o fim da geração de computadores mecânicos Estágios de Evolução da Arquitetura de Computadores Geração das Válvulas (1945-1955) COLOSSUS - 1943 1º computador eletrônico digital do mundo Mauchley e Eckert ENIAC - 1946 18mil válvulas, 1500 relés e 6mil chaves Marco da história do computador moderno Fundaram uma empresa (hoje, Unisys) Estágios de Evolução da Arquitetura de Computadores John von Neumann Máquina de von Neumann - 1952 programas representados em forma binária na memória do computador (programa armazenado) uso da aritmética binária para representar números memória, unidade aritmética, unidade de controle, dispositivo de entrada e dispositivo de saída Registrador especial: Acumulador Maioria dos computadores atuais ainda é projetada segundo essas premissas Estágios de Evolução da Arquitetura de Computadores Estágios de Evolução da Arquitetura de Computadores Geração dos transistores (1955-1965) Invenção do transistor - 1948 PDP-1 - 1961 - Digital Equipament Corp. Vídeo de 512x512 pixels IBM 7090 Computador mais rápido da época Início do domínio da IBM PDP-8 Barramento único Surgimento dos minicomputadores Estágios de Evolução da Arquitetura de Computadores Seymour Cray CDC 6600 - 1964 processamento paralelo outros processadores ajudando a CPU principal surgimento dos supercomputadores Estágios de Evolução da Arquitetura de Computadores Circuitos Integrados (1965-1980) Surgimento do Circuito Integrado - 1958 Robert Noyce Co-fundador da Intel Gordon Moore Lei de Moore: O número de transistores em um chip dobra a cada 18 meses Estágios de Evolução da Arquitetura de Computadores IBM System/360 Mesma arquitetura em máquinas com diferentes poder de processamento. Surgimento do conceito de multiprogramação Utilizava a microprogramação para emular outros computadores da IBM. DEC lança o PDP-11. Estágios de Evolução da Arquitetura de Computadores Integração de Circuitos em Escala muito Alta (1980 - ?) Circuitos integrados VLSI Milhões de transistores em um único chip Surgimento dos microcomputadores Apple e Apple II - Macintosh IBM PC Início da computação pessoal Definições de Siglas PC - Program counter – indica a próxima instrução a ser executada. IR - Instruction register – recebe a instrução a ser decodificada pela CPU. AC – Acumulador (registrador auxiliar) - Guarda temporariamente valores que estão sendo calculados. MAR – Memory Address Register - Registrador que indica a próxima posição de memória a ser referenciada. Conectado ao barramento de endereços. MDR – Registrador usado para receber ou transmitir dados. Conectado ao barramento de dados. ALU (ULA) – Unidade Lógica Aritmética Organização de um SC UCP Registradores Cache de L1 Uso Geral ULA ULA: ACC: RI: CP: REM: RDM: Unidade Lógica e Aritmética Acumulador Registrador de Instrução Contador de Programa Registrador de End. de Memória Registrador de Dados de Memória ACC RI CP Memória Cache L2 Decodificador de Instruções Unidade de Controle ... Dispositivos de E/S REM RDM BD BE BC Memória Principal Como funciona um computador simples IR – Instruction Register PC – Program Counter MAR – Memory Address Register MBR – Memory Bus Register Unid. controle IR PC MAR Memória Programas + Dados Teclado MBR Gerai s Vídeo ALU E/S Unid. processamento Buffers Como funciona um computador? Início Busca a próxima instrução Executa a instrução Término Evolução das Linguagens http://www.scriptol.com/program ming/chronology.php Computador – Sistema Binário Desenvolvido em 1679 por Leibniz (co-criador do Cálculo) Possui apenas dois algarismos Componentes eletrônicos possuem dois estados elétricos: “ligado” ou “desligado” Armazenamento e manipulação mais simples Representação dos números mais longa Um circuito contendo um sinal elétrico é chamado de “bit” (binary digit) Sistemas de Numeração • bit – menor partícula de informação no computador, pode representar 0 ou 1. Esses dois símbolos são opostos e mutuamente exclusivos. • Byte – conjunto de 8 bits. Sistemas de Numeração Existiram e existem diversos sistemas de numeração. No computador, serve para questões de endereçamento, armazenamento, conteúdo de tabelas e representações gráficas. Bases diferentes usadas nos mais diversos computadores. Sistemas de Numeração Bases Binária 0, 1 Octal 0, 1, 2, 3, 4, 5, 6, 7 Decimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Hexadecimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Número Zero Um Dois Três Quatro Cinco Seis Sete Oito Nove Dez Onze Doze Treze Quatorze Quinze Base 2 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 Base 8 0 1 2 3 4 5 6 7 Base 10 Base 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 A B C D E F • Existem 10 tipos de pessoas, as que conhecem sistemas binários e as que não conhecem sistemas binários! Sistemas de Numeração 8 bits = 1 Byte Múltiplos em potências de 2 (210 = 1024): 1 KiloByte KB = 1024 Bytes 1 MegaByte MB = 1024 KB 1 GigaByte GB = 1024 MB 1 TeraByte TB = 1024 GB 1 PetaByte PB = 1024 TB 1 ExaByte EB = 1024 PB 1 ZettaByte ZB = 1024 EB 1 YottaByte YB = 1024 ZB (210 Bytes) (220 Bytes) 1024*1024 (230 Bytes) 1024*1024*1024 (240 Bytes) (250 Bytes) (260 Bytes) (270 Bytes) (280 Bytes) Sistemas de Numeração Padrões de caracteres – EBCDIC Extended Binary-Coded Decimal Interchange Code Criada pela IBM em 1964 Utiliza 8 bits para representar um caractere, permite 256 caracteres Ainda utilizada em computadores de grande porte (mainframes) Sistemas de Numeração Padrões de caracteres – ASCII American Standard Code for Information Interchange Começou a tornar-se padrão em 1967 Utilizava 7 bits para representar um caractere, permitia 128 caracteres Gerou diversas extensões e variações: ASCII Extended – 256 caracteres; ISO 8859 – 256 caracteres; UTF-8 – mais de 1 milhão de caracteres; Sistemas de Numeração Usos comuns Páginas de código das páginas Web: Pode dificultar a exibição de caracteres acentuados e símbolos especiais. A codificação pode ser configurada nos navegadores (browsers). Anexos de e-mail, às vezes, são convertidos em seqüências de caracteres ASCII para permitir a transmissão sem perda: UUencode, Base64, BinHex ou MIME. Sistemas de Numeração Representação nas bases 1011012 - 101101 na base 2 (binária) 7528 - 752 na base 8 (octal) 651 - 651 na base 10 (decimal) Quando não é indicada a base, a base é decimal. Mas poderia ser representado assim: 65110 42316 - 423 na base 16 (hexadecimal) Sistemas de Numeração Representação nas bases – Base decimal 7484 7484 = 7 x 1000 + 4 x 100 + 8 x 10 + 4 7484 = 7 X 103 + 4 X 102 + 8 X 101 + 4 X 100 Representação em polinômio genérico Número = dn10n + dn-110n-1 + ... d1101 + d0100 Sistemas de Numeração Representação de binário na base 10 11010012 11010012 = 1 x 26 + 1 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 11010012 = 64 + 32 + 0 + 8 + 0 + 0 + 1 11010012 = 10510 Representação em polinômio genérico Número = bn2n + bn-12n-1 + ... b121 + b020 Sistemas de Numeração Representação de octal na base 10 546218 546218 = 5 x 84 + 4 x 83 + 6 x 82 + 2 x 81 + 1 x 80 546218 = 20480 + 2048 + 384 + 16 + 1 546218 = 2292910 Representação em polinômio genérico Número = on8n + on-18n-1 + ... o181 + o080 Sistemas de Numeração Representação de hexadecimal na base 10 3974116 3974116 = 3 x 164 + 9 x 163 + 7 x 162 + 4 x 161 + 1 x 160 3974116 = 196608 + 36864 + 1792 + 64 + 1 3974116 = 23532910 Representação em polinômio genérico Número = hn16n + hn-116n-1 + ... h1161 + h0160 Sistemas de Numeração Mudança da base 10 para binário 714 = 1011001010 714 |_2_ 0 357 |_2_ 1 178 |_2_ 0 89 |_2_ 1 44 |_2_ 0 22 |_2_ 0 11 |_2_ 1 5 |_2_ 1 2 |_2_ 0 1 Sistemas de Numeração Mudança da base 10 para binário 714 714 = 10110010102 714 |_2_ 0 357 |_2_ 1 178 |_2_ 0 89 |_2_ 1 44 |_2_ 0 22 |_2_ 0 11 |_2_ 1 5 |_2_ 1 2 |_2_ 0 1 Sistemas de Numeração Mudança da base 10 para octal 714 714 |_8_ 2 89 |_8_ 1 11 |_8_ 3 1 714 = 13128 Sistemas de Numeração Mudança da base 10 para hexadecimal 714 714 |_16_ 10 44 |_16_ 12 2 714 = 2CA16 Hexadecimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F A=10 , B=11 , C=12 , D=13 , E=14 , F=15 Sistemas de Numeração Mudança da base binária para decimal (10) 10110010102 = 0+2+0+8+0+0+64+128+0+512 = 714 0 x 20 = 0 1 x 21 = 2 0 x 22 = 0 1 x 23 = 8 0 x 24 = 0 0 x 25 = 0 1 x 26 = 64 1 x 27 = 128 0 x 28 = 0 1 x 29 = 512 1 0 1 1 0 0 1 0 1 02 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 512 0 128 64 0 0 8 512+128+64+8+2 = 714 4 0 2 2 1 0 Sistemas de Numeração • Mudança da base octal para decimal (10) 1 3 1 28 = 2+8+192+512 = 714 2 x 80 = 2 1 x 81 = 8 3 x 82 = 192 1 x 83 = 512 Sistemas de Numeração • Mudança da base hexadecimal para decimal 2 C A16 = 10+192+512 = 714 A x 160 = 10 x 160 = 10 C x 161 = 12 x 161 = 192 2 x 162 = 512 Exercícios Converta 179 e 65 para a base binária Converta 1110 e 10110 para a base decimal Qual é o maior número decimal que podemos representar com a) 9 bits b) 10 bits c) 15 bits d) 16 bits Converter os seguintes dígitos binários para hexadecimal a) (1010101010)2 b) (10000001)2 c) (11111111111)2 d) (100110011001)2 Qual o equivalente binário dos seguintes números hexadecimais a) (1000B0CA)16 b) (FADAB0A)16 c) (BADCA0)16 d) (CADEAD0)16 Respostas Converta 179 e 65 para a base binária = 10110011 e 1000001 Converta 1110 e 10110 para a base decimal = 14 e 22 Qual é o maior número decimal que podemos representar com a) 9 bits = 511 b) 10 bits = 1023 c) 15 bits = 32767 d) 16 bits = 65535 Converter os seguintes dígitos binários para hexadecimal a) (1010101010)2 = 2AA b) (10000001)2 = 81 c) (11111111111)2 = 7FF d) (100110011001)2 = 999 Qual o equivalente binário dos seguintes números hexadecimais a) (1000B0CA)16 = 10000000000001011000011001010 b) (FADAB0A)16 = 1111101011011010101100001010 c) (BADCA0)16 = 101110101101110010100000 d) (CADEAD0)16 = 1100101011011110101011010000