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 Pode sobreviver por muitos anos. Transparente ao programador 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 Pode sobreviver por muitos anos. Transparente ao programador 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 ULA UCP Registradores de Uso Geral Cache L1 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 Decodificador de Instruções CP Memória Cache L2 Memória Principal... Unidade de Controle REM RDM Dispositivos de E/S BC BE BD
Como funciona um computador simples IR Instruction Register PC Program Counter MAR Memory Address Register MBR Memory Bus Register Unid. controle Memória IR PC MAR Programas + Dados Vídeo Gerai s MBR Teclado 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 Base 2 Base 8 Base 10 Base 16 Zero 0 0 0 0 Um 1 1 1 1 Dois 10 2 2 2 Três 11 3 3 3 Quatro 100 4 4 4 Cinco 101 5 5 5 Seis 110 6 6 6 Sete 111 7 7 7 Oito 1000 8 8 Nove 1001 9 9 Dez 1010 10 A Onze 1011 11 B Doze 1100 12 C Treze 1101 13 D Quatorze 1110 14 E Quinze 1111 15 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 (2 10 = 1024): 1 KiloByte KB = 1024 Bytes (2 10 Bytes) 1 MegaByte MB = 1024 KB (2 20 Bytes) 1024*1024 1 GigaByte GB = 1024 MB (2 30 Bytes) 1024*1024*1024 1 TeraByte TB = 1024 GB (2 40 Bytes) 1 PetaByte PB = 1024 TB (2 50 Bytes) 1 ExaByte EB = 1024 PB (2 60 Bytes) 1 ZettaByte ZB = 1024 EB (2 70 Bytes) 1 YottaByte YB = 1024 ZB (2 80 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 101101 2-101101 na base 2 (binária) 752 8-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: 651 10 423 16-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 10 3 + 4 X 10 2 + 8 X 10 1 + 4 X 10 0 Representação em polinômio genérico Número = d n 10 n + d n-1 10 n-1 +... d 1 10 1 + d 0 10 0
Sistemas de Numeração Representação de binário na base 10 1101001 2 1101001 2 = 1 x 2 6 + 1 x 2 5 + 0 x 2 4 + 1 x 2 3 + 0 x 2 2 + 0 x 2 1 + 1 x 2 0 1101001 2 = 64 + 32 + 0 + 8 + 0 + 0 + 1 1101001 2 = 105 10 Representação em polinômio genérico Número = b n 2 n + b n-1 2 n-1 +... b 1 2 1 + b 0 2 0
Sistemas de Numeração Representação de octal na base 10 54621 8 54621 8 = 5 x 8 4 + 4 x 8 3 + 6 x 8 2 + 2 x 8 1 + 1 x 8 0 54621 8 = 20480 + 2048 + 384 + 16 + 1 54621 8 = 22929 10 Representação em polinômio genérico Número = o n 8 n + o n-1 8 n-1 +... o 1 8 1 + o 0 8 0
Sistemas de Numeração Representação de hexadecimal na base 10 39741 16 39741 16 = 3 x 16 4 + 9 x 16 3 + 7 x 16 2 + 4 x 16 1 + 1 x 16 0 39741 16 = 196608 + 36864 + 1792 + 64 + 1 39741 16 = 235329 10 Representação em polinômio genérico Número = h n 16 n + h n-1 16 n-1 +... h 1 16 1 + h 0 16 0
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 = 1011001010 714 _2_ 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 = 1312 8
Sistemas de Numeração Mudança da base 10 para hexadecimal 714 714 _16_ 10 44 _16_ 12 2 714 = 2CA 16 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) 1011001010 2 = 0+2+0+8+0+0+64+128+0+512 = 714 0 x 2 0 = 0 1 x 2 1 = 2 0 x 2 2 = 0 1 x 2 3 = 8 0 x 2 4 = 0 0 x 2 5 = 0 1 x 2 6 = 64 1 x 2 7 = 128 0 x 2 8 = 0 1 x 2 9 = 512
1 0 1 1 0 0 1 0 1 0 2 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 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 0 2 0 512+128+64+8+2 = 714
Sistemas de Numeração Mudança da base octal para decimal (10) 1 3 1 2 8 = 2+8+192+512 = 714 2 x 8 0 = 2 1 x 8 1 = 8 3 x 8 2 = 192 1 x 8 3 = 512
Sistemas de Numeração Mudança da base hexadecimal para decimal 2 C A 16 = 10+192+512 = 714 A x 16 0 = 10 x 16 0 = 10 C x 16 1 = 12 x 16 1 = 192 2 x 16 2 = 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 = Converta 1110 e 10110 para a base decimal = 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 = b) (FADAB0A)16 = c) (BADCA0)16 = d) (CADEAD0)16 = 10110011 e 1000001 14 e 22 10000000000001011000011001010 1111101011011010101100001010 101110101101110010100000 1100101011011110101011010000