Prévia do material em texto
Organização de Computadores 1 Aula 02 1 Introdução • Um bit é a unidade de informação mais básica nos computadores. – Representa um estado de “on” or “off” em um circuito digital. – Também podem ser considerados estados de “alta” ou “baixa” voltagem. 2 “baixa” voltagem. • Um byte é um grupo de 8 bits. – Um byte é a menor unidade endereçável possível que se pode armazenar em um computador. – O termo “endereçável” significa que este byte pode ser retornado a partir de sua posição de memória. Introdução • O termo word siginifica um grupo de bytes adjacentes. – Pode ser composto por qualquer quantidade de bytes (ou bits). Os tamanhos mais comuns são 16, 32, ou 64 bits. 3 – Os tamanhos mais comuns são 16, 32, ou 64 bits. – Em um sistema em que os endereços são baseados no tamanho word, então esta é a menor unidade endereçável que pode ser armazenada. Tipos de Dados Básicos • Booleano [Boolean] (1 bit) • Caractere [Characters] (1 byte) • Inteiro [Integers] (4 bytes) – Unsigned (sem sinal) 4 – Unsigned (sem sinal) – Signed (com sinal) • Ponto flutuante [Floating point] (4 to 8 bytes) – Double – Float Booleanos • Booleano valores: 0 and 1; V and F • Booleano operações: AND, OR, NOT • Também são armazenadas dentro do byte. 5 byte. Tipos de Dados Básicos • Booleano [Boolean] (1 bit) • Caractere [Characters] (1 byte) • Inteiro [Integers] (4 bytes) – Unsigned (sem sinal) Bit: 7 6 5 4 3 2 1 0 Binary value 6 – Unsigned (sem sinal) – Signed (com sinal) • Ponto flutuante [Floating point] (4 to 8 bytes) – Double – Float • Código ASCII: 8 bits (Codificam 28 caracteres) Códigos de Caracteres 7 • Exemplo: A (letra) é representada pelo número 65. Códigos de Caracteres 8 Caractere A código 65 • Como armazenar o número decimal 65 em binário com 8 bits ? Caracteres representados com 8 bits Bit: 7 6 5 4 3 2 1 0 Binary value 9 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 Binary value Caractere A código 65 • Como armazenar o número decimal 65 em binário com 8 bits ? Resposta: 65 = 64 + 1 Caracteres representados com 8 bits Bit: 7 6 5 4 3 2 1 0 Binary value 0 1 0 0 0 0 0 1 10 65 = 64 + 1 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 Binary value 0 1 0 0 0 0 0 1 • Atualmente o padrão Unicode é o mais utilizado. Com 16 bits é capaz de codificar os caracteres de todas os idiomas do mundo. – Na linguagem de programação Java e em alguns sistemas operacionais o Unicode é a representação de Códigos de Caracteres 11 sistemas operacionais o Unicode é a representação de caracteres padrão. • Os códigos são divididos em seis partes. A primeira parte, por exemplo, é para os alfabetos ocidentais (inglês, grego, russo, etc.). • A organização do padrão Unicode é representado na figura ao lado. • Os caracteres Unicode de Códigos de caracteres 12 Unicode de numeração mais baixa (0000 – 1FFF) compreendem o código ASCII. • A numeração mais alta (F000 - FFFE) é reservada para definição do usuário. Códigos de caracteres • Booleano [Boolean] (1 bit) • Caractere [Characters] (1 byte) • Inteiro [Integers] (4 bytes) – Unsigned (sem sinal) Byte 3 Byte 2 Byte 1 Byte 0 13 – Unsigned (sem sinal) – Signed (com sinal) • Ponto flutuante [Floating point] (4 to 8 bytes) – Double – Float Sistema de Numeração Posicional • Os números armazenados nos Bytes utilizam a posição em cada bit para representar uma potência de 2. – O sistema binário é também chamado de sistema de base 2. 14 base 2. – Nosso sistema decimal é um sistema de base 10. Cada posição no número representa potências de 10. – Um número inteiro ou decimal pode ser representado em binário (ou em qualquer outra base). Sistema de Numeração Posicional • O número decimal 947 em potências de 10 é: • O número decimal 5836.47 em potências de 10 é: 9 × 10 2 + 4 × 10 1 + 7 × 10 0 15 • O número decimal 5836.47 em potências de 10 é: 5 × 10 3 + 8 × 10 2 + 3 × 10 1 + 6 × 10 0 + 4 × 10 -1 + 7 × 10 -2 Sistema de Numeração Posicional • O número binário 11001 em potências de 2 é: • Quando a base for diferente de 10, esta será 1 × 2 4 + 1 × 2 3 + 0 × 2 2 + 0 × 2 1 + 1 × 2 0 = 16 + 8 + 0 + 0 + 1 = 25 16 • Quando a base for diferente de 10, esta será indicada. – Base 10 será indicada somente para enfase: 110012 = 2510 Tipos de Dados Básicos • Booleano [Boolean] (1 bit) • Caractere [Characters] (1 byte) • Inteiro [Integers] (4 bytes) – Unsigned (sem sinal) 17 – Unsigned (sem sinal) – Signed (com sinal) • Ponto flutuante [Floating point] (4 to 8 bytes) – Double – Float Representação de Ponto Flutuante • Cálculos de ponto flutuante são realizados utilizando o formato inteiro. • Em alguns computadores ocorre a chamada de emulação de ponto flutuante. Neste caso programas fazem parecer como se valores de 18 programas fazem parecer como se valores de ponto flutuante estivessem sendo usados. • A maioria dos computadores de hoje são equipados com hardware especializado que executa aritmética de ponto flutuante sem necessidade de programa especial. Representação de Ponto Flutuante • Números de ponto flutuante podem utilizar muitas casas decimais. • Por exemplo a massa da Terra (número muito grande) ou a massa de uma átomo (número muito pequeno). E ainda podem ocorrer diversos dígitos repetidos (iguais a zero, por exemplo.) 19 dígitos repetidos (iguais a zero, por exemplo.) – Por exemplo: 5.980.000.000.000.000.000.000.000 • O exemplo acima pode ser expresso por meio da notação científica: – 5,98 × 1024 Representação de Ponto Flutuante • Ainda sobre o exemplo anterior, seriam necessários 25 algarismos decimais. Em binário seriam muito mais. • Computadores usam a notação científica para representar números de ponto flutuante. • Notação Científica:• Notação Científica: – 3 componentes • Número de ponto flutuante: – 3 campos de tamanho fixo Sinal Expoente Parte significativa 20 Representação de Ponto Flutuante • Mais exemplos de notação científica em decimal 21 Representação de Ponto Flutuante • Convertendo os componentes da notação científica para binário, o número de ponto flutuante poder ser representado no computador como a seguir:computador como a seguir: 22 Modelo von Neumann • Como as coisas foram feitas antes da invenção do modelo von Neumann: – No ENIAC (primeira geração de computador), toda a programação era feita no nível da lógica digital. – Programação do computador envolvia diversas – Programação do computador envolvia diversas mudanças de plugs e fios. – Para cada problema era necessário uma configuração de hardware diferente. • OBS.: Configurar o ENIAC para resolver um problema "simples" custava muitos dias de trabalho de técnicos qualificados. 23 Modelo von Neumann • Os inventores do ENIAC, John Mauchley e J. Presper Eckert, desenvolveram um computador capaz de armazenar instruções na memória. • A invenção dessa ideia é atribuída ao matemático, John von Neumann, que divulgou amplamente este modelo. Contudo, os contemporâneos de vonmodelo. Contudo, os contemporâneos de von Neumann (Mauchley e Eckert) já haviam documentado este modelo. Ou seja, tudo indica que eles são os verdadeiros criadores do modelo. • Computadores com esta característica (stored- program) tornaram-se conhecidos como arquitetura do modelo de von Neumann. 24 Modelo von Neumann • O modelo de von-Neumann possui as seguintes características: – Três sistemas de hardwares: • Unidade Central de Processamento (UCP ou CPU) • Sistema de Memória Principal • Sistema de E/S• Sistema de E/S – A capacidade de realizar o processamento sequencial de instruções (Program Counter). – Um único caminho de dados entre a CPU e a memória principal. Força a alternância entre ciclos de busca e execução de instruções. • Este único caminho é conhecido como o von Neumann bottleneck (gargalo). 25 Modelo von Neumann• Segue uma descrição geral de um sistema de von Neumann: • Computadores • Computadores utilizam um ciclo de busca, decodificação e execução para executar programas. 26 Modelo von Neumann • A unidade de controle busca a próxima instrução na memória usando o contador de programa (Program Counter) que indica onde a instrução está localizada. 27 Modelo von Neumann • A instrução é decodificada de modo qua a ULA possa entender. 28 Modelo von Neumann • Os dados dos operandos necessários para execução da instrução são obtidos na memória e colocados em registradores na CPU. 29 Modelo von Neumann • A ULA executa a instrução e coloca os resultados em registradores ou na memória. 30 • Ao longo dos anos melhorias foram aplicadas no projeto de computadores para aumento do desempenho. • Estas melhorias incluem barramentos separados, memórias cache e etc. Modelos não von Neumann 31 separados, memórias cache e etc. • Melhorias mais significativas tendem a se afastar da arquitetura do modelo von Neumann clássico. • Um exemplo é a inclusão de vários processadores, memória virtual, registradores para endereçamento, entre outros. • Esta abordagem já havia sido aplicada em 1960 nos primeiros computadores equipados com dois processadores. • Em 1970 foram lançados supercomputadores com 32 processadores. • Em seguida supercomputadores com 1000 Modelos não von Neumann 32 • Em seguida supercomputadores com 1000 processadores em 1980. • Mais recentemente, em 2011, foi lançado o IBM Watson composto por um cluster de 90 servidores Power750, cada um com 32 processadores POWER7 (8 cores) 3.55GHz. 16 Terabytes de RAM. Software Power Linux ☺. • Processamento paralelo é um método para aumentar o poder computacional. Alguns sistemas precisam de processadores extra para gerenciar os demais processadores. • Projetos que não precisam manter Modelos não von Neumann 33 • Projetos que não precisam manter compatibilidade com o modelo clássico usam modelos diferentes. • Estes sistemas avançados incluem algortimos genéticos, computação quântica, computação paralela (computação distribuída é comum a todos estes). • Tais modelos diferem em o quanto os componentes estão conectados durante sua atuação atuação. • Estes sistemas são úteis se houver programação adequada, ou seja, paralela. Modelos não von Neumann 34 programação adequada, ou seja, paralela. • Linguagens para plataformas paralelas incluem: – FP, J, NGL, Mercury, FL, ZPL, CUDA C/C++ Medidas de Desempenho • Os princípios básicos estabelecidos pelo modelo de von Neumann permanecem essencialmente os mesmos. • Porém, inovações no processo operacional buscam o aumento no desempenho dos buscam o aumento no desempenho dos computadores. • Este desempenho é dependente da velocidade de comunicação entre os diferentes componentes do sistema de computação (CPU, Memória, etc.). 35 Medidas de Desempenho • Processador – Desempenho medido em relação a velocidade de executar instruções. – MIPS (Milhões de instruções por segundo)– MIPS (Milhões de instruções por segundo) – MFLOPS (Milhões de operações de ponto flutuante por segundo) 36 Medidas de Desempenho • Memória – Desempenho medido em relação a velocidade de leitura e gravação de informações. – Também relacionada com a interligação entre – Também relacionada com a interligação entre processador e memória (canal de interligação). – Medida chamada de tempo de acesso. 37 Medidas de Desempenho • Transferência de dados E/S – Velocidade com que um dispositivo de E/S recebe ou envia dados (para a CPU, por exemplo). – É a taxa de transferência que os dados trafegam – É a taxa de transferência que os dados trafegam pelo canal de ligação. – Em geral é medida em bits por segundo (bps). 38 Medidas de Desempenho • Solicitação do usuário – Mede desempenho mais global do sistema. – Período de tempo entre o início de uma solicitação do usuário e a efetiva resposta solicitação do usuário e a efetiva resposta apresentada pelo sistema. – Medida conhecida como tempo de resposta. 39 Medidas de Desempenho • Número de transações – Quantidade de ações que o sistema pode realizar em determinada unidade de tempo. • Exemplo: Quantidade de atualizações possíveis em um • Exemplo: Quantidade de atualizações possíveis em um sistema de controle de estoque em um segundo. – Medida conhecida como vazão (throughput) 40 Sistema de Computação • Sistema em geral – Conjunto de partes coordenadas que concorrem para a realização de um determinado objetivo. – Sistema de circulatório, sistema econômico, sistema de transporte, etc.sistema de transporte, etc. • Sistema de Computação – Composto por hardware e software. – Software é um Sistema de Aplicação cuja a implementação (por meio de linguagem de programação) resulta em um programa de computador. 41 Sistema de Computação - Software • Software – Conjunto de instruções executadas passo a passo (algoritmo). • Exemplo • Exemplo – Algoritmo para somar 100 números 42 Sistema de Computação - Software • Execução do programa (Processamento) 43 Sistema de Computação - Software • Implementação de um programa – É a formalização do algoritmo por meio de linguagem de programação. – Exemplo de implementação na linguagem C (alto nível)nível) 44 Sistema de Computação - Software • O mesmo algoritmo poderia ser implementado em linguagem assembly (baixo nível).(baixo nível). – Quanto mais baixo o nível da linguagem, os programas se tornam maiores e mais difíceis de entender. 45 Sistema de Computação - Software • A linguagem de máquina (em binário) – É a linguagem que o computador utiliza para executar o programa.executar o programa. – Esta é a que o computador é capaz de entender diretamente (código binário interpretado como tensão em volts pela parte eletrônica). 46