Baixe o app para aproveitar ainda mais
Prévia do material em texto
20/03/2014 1 Arquitetura e Organização de Computadores Prof. Nelson Miguel Betzek 2 Componentes de um Sistema de Computação Software Visão Geral Hardware Peopleware Componentes do Computador 4 Barramentos Visão Geral Unidade Central de Processamento Registra- dores ULA Unidade de Controle Dispositivos de Entrada Dispositivos de Entrada Dispositivos de Saída Dispositivos de Saída Dispositivos de Armazenamento Dispositivos de Armazenamento 5 Entrada Processamento Armazenamento Saída Visão Geral O usuário enxerga • Software; • Velocidade; • Capacidade de armazenamento; • Funcionalidades de periféricos. Prof. Jussara Almeida, UFMG 20/03/2014 2 Hardware • Circuitos eletrônicos – Transistores interconectados; – Chaves ligadas ou desligadas. • Linguagem de máquina – Conjunto de instruções fundamentais que a máquina executa; – Expressa como um padrão de 0s e 1s. Exemplo • Exemplo • A evolução da informática foi caracterizada pelo desenvolvimento de computadores: – CPU adotada – a capacidade de memória – a capacidade do disco rígido (memória externa) – a existência de memória cache – ... Arquitetura / Organização Ex.: Edifício • Arquitetura – Quantidade de cômodos – Tipo de cobertura das paredes da cozinha – Tem sacada? ... • Organização: – Estrutura – Cálculos (vigas, ...) – encanamentos, ... Arquitetura de Computadores • Compreende a definição dos parâmetros e componentes de um computador. • determina aspectos relacionados à qualidade, ao desempenho e à aplicação para a qual o computador será utilizado. Arquitetura • Refere-se a atributos de um sistema visíveis ao programador. • Atributos que possuem impacto direto sobre a execução lógica de um programa. • Exemplos: – Conjunto de instruções do processador – Número de bits usados para representar diversos tipos de dados (números, caracteres) (tamanho da palavra) – Mecanismos de E/S – Técnicas de endereçamento de memórias. 20/03/2014 3 Arquiteturas • Foram classificadas por Michael Flynn (1972), conforme a maneira como as instruções e dos dados por elas manipulados estão organizados nos processados: – SISD (Single Instruction stream, Single Data stream) – MISD (Multiple Instruction stream, Single Data stream) – SIMD (Single Instruction stream, Multiple Data stream) – MIMD (Multiple Instruction stream, Multiple Data stream) SISD • Um único conjunto de instruções e de dados • Padrão Von Neumann • Processadores que executam uma instrução completa de cada vez, sequencialmente. • Processador com um único registrador (CI – Controlador de Instruções ou PC – Program Counter), que armazena o endereço da próxima instrução a ser executada e que vai automaticamente sendo incrementado para o próximo endereço de instrução. SISD MISD • Múltiplos processadores; • Várias instruções podem ser executadas simultaneamente, manipulando um único conjunto de dados; • Alguns autores consideram arquiteturas pipeline com exemplo deste tipo de organização. SIMD • Múltiplos processadores (escravos) sob o controle de uma única UC; • Executa simultaneamente a mesma instrução em diversos conjuntos de dados; • A UC aciona diversas unidades de processamento • Ex.: 1000 vezes A(i) * B(i) • Monteiro (pg 3) 20/03/2014 4 SIMD • Manipulação de matrizes e processamento de imagens; • Uma UC busca a instrução e comanda várias ULAs, que executam em paralelo, cada uma com seus próprios dados. • Ex.: Array de processadores, supercomputadores. SIMD • Processamento de vários dados sob o comando de apenas uma instrução. • Organização sequencial. • Para possibilitar o acesso a múltiplos dados é preciso uma organização de memória em diversos módulos. SIMD MIMD • Mais avançada • Produz melhor desempenho de processamento; • Multiplos processadores executando diferentes instruções em diferentes conjuntos de dados, de maneira independente; • Computadores paralelos. MIMD • Arquiteturas caracterizadas pela execução simultânea de múltiplos fluxos de instruções. • Vários processadores operando de forma cooperativa ou concorrente, na execução de um ou vários aplicativos. MIMD 20/03/2014 5 Pesquisa • Informações e exemplos de processadores: – SISD – MISD – SIMD – MIMD SISD • Um único fluxo de instruções opera sobre um único fluxo de dados. • Apesar dos programas estarem organizados através de instruções sequenciais, elas podem ser executadas de forma sobreposta em diferentes estágios (pipelining). Arquiteturas SISD caracterizam-se por possuírem uma única unidade de controle podendo possuir mais de uma unidade funcional. SIMD • Possuírem uma unidade de controle que executa uma instrução de cada vez, mas cada instrução opera sobre vários dados. Balthazar (2012) Organização • Refere-se às unidades operacionais e suas interconexões que realizam as especificações arquiteturais. • como os recursos são implementados. • Detalhes do hardware transparentes ao programador: • Sinais de controle • frequência de clock • Interfaces entre o computador e periféricos • Tecnologia de memória utilizada. 20/03/2014 6 • Se o computador terá uma instrução de multiplicação, é questão de projeto arquitetural ou organizacional? • E, se essa instrução será implementada por uma unidade de multiplicação especial ou por um mecanismo que faça uso repetido da unidade de adição do sistema? • Se o computador terá uma instrução de multiplicação, é questão de projeto arquitetural ou organizacional? – Arquitetural • E, se essa instrução será implementada por uma unidade de multiplicação especial ou por um mecanismo que faça uso repetido da unidade de adição do sistema? – Organizacional • A decisão organizacional pode ser baseada: – na frequência de uso da instrução de multiplicação; – na velocidade relativa das duas técnicas; – no custo e tamanho físico de uma unidade de multiplicação especial. • A decisão organizacional pode ser baseada: – na frequência de uso da instrução de multiplicação; – na velocidade relativa das duas técnicas; – no custo e tamanho físico de uma unidade de multiplicação especial. • Circuitos Visão Geral • Muitos fabricantes oferecem uma família de modelos de computador, todos com a mesma arquitetura, mas com diferenças na organização. • Consequentemente, os diferentes modelos na família, têm diferentes características de preço e desempenho. 20/03/2014 7 Visão Geral • Em microcomputadores, o relacionamento entre arquitetura e organização é muito próximo. • As mudanças da tecnologia, influenciam a organização e também resultam na introdução de arquiteturas mais poderosas e mais flexíveis. Visão Geral • UMA ARQUITETURA PODE SOBREVIVER POR MUITOS ANOS, ENQUANTO SUA ORGANIZAÇÃO MUDA COM A EVOLUÇÃO DA TECNOLOGIA. Exemplo • Toda a família Intel x86 compartilha a mesma arquitetura básica. • Isso gera compatibilidade de código: – Pelo menos, com a geração anterior. • A organização é diferente entre diferentes versões. • Arquitetura – Repertório de instruções – Tipos de dados – Acesso à memória – Conjunto de registradores • Organização – Tecnologia de memórias – Interfaces – Entrada e saída • Se o computador terá uma instrução de multiplicação, é questão de projeto arquitetural ou organizacional? – Arquitetural • E, se essa instrução será implementada por uma unidade de multiplicação especial ou por um mecanismo que faça uso repetido da unidade de adição do sistema? – Organizacional20/03/2014 8 • A decisão organizacional pode ser baseada: – na frequência de uso da instrução de multiplicação – na velocidade relativa das duas técnicas – no custo e tamanho físico de uma unidade de multiplicação especial. • Circuitos Conceitos Básicos • bit • Byte • Palavra bit (b) • É menor informação que um computador pode processar. • Corresponde a um pulso elétrico. Se existe, tem valor 1 e, se não existe, tem valor 0. Isto forma o código binário (0- 1). Byte Um grupo de 8 bits é igual a 1 Byte, e representa um único caracter de dados, como no código ASCII. Palavra • Unidade básica de transferência de/para a memória. • Contém dados e instruções. • Memória: – formada por elementos armazenadores de informação; – dividida em palavras (largura em bits) – identificada por um endereço. Sistema Binário • BIT - Menor unidade de medida. (0 e 1) • BYTE - Conjunto de 8 bits (caractere) • KILOBYTE (KB) - Conjunto de 1024 bytes. Equivale a 210. • MEGABYTE (MB) - Conjunto de 1024 Kbytes. Equivale a 220. • GIGABYTE (GB) - Conjunto de 1024 Mbytes. Equivale a 230. • TERABYTE (TB) - Conjunto de 1024 Gbytes. Equivale a 240. 20/03/2014 9 Sistema Binário • PETABYTE (PB) - Conjunto de 1024 TB Equivale a 250. • EXABYTE (EB) - Conjunto de 1024 PB Equivale a 260. • ZETTABYTE (ZB) - Conjunto de 1024 EB Equivale a 270. • YOTTABYTE (YB) - Conjunto de 1024 ZB Equivale a 280. Sufixo Quantidade Kilo (K) 210 =1.024 B Mega (M) 220 = 1.048.576 B Giga (G) 230 = 1.073.741.824 B Tera (T) 240 = 1.099.511.627.776 B Peta (P) 250 = 1.125.899.906.843.624 B • bit (b minúsculo), Byte (B maiúsculo) • 1KB – 1 kilobyte (1.024 bytes = 8.192 bits) • 1Kb – 1 kilobit (1.024 bits) Piada • O sujeito chegou na banca de revistas e pediu ao jornaleiro: - Por favor, eu quero comprar uma revista “BYTE”. O jornaleiro não tinha mais nenhum exemplar da revista “BYTE”, e falou: - A revista “BYTE” acabou. Agora só tem a revista “BIT”. - Então vou levar oito revistas “BIT”. • Memória: conjunto de posições endereçáveis • Palavras: contém posição da memória e dados ou instruções. • Palavra: unidade básica de transferência de/para memória. • Dados, instruções e endereços são codificados em binário. • Palavra: Conjunto de bits que representa uma informação útil para os computadores. • Unidade de armazenamento – Byte • Unidade de transferência e processamento – Palavra • Em geral, a CPU processa valores representados por uma quantidade de bits igual à da palavra, indicando assim a capacidade de processamento do sistema. • Monteiro (2001) • O tamanho da palavra indica a quantidade de bits interpretados a cada ciclo pelo microprocessador. 20/03/2014 10 Computador • O que é um computador? • Exemplo de computadores. Computador • é uma máquina de solução de problemas • executa programas - Conjunto de instruções que descrevem como realizar uma tarefa Os circuitos de um computador (Hardware) • reconhecem e executam um conjunto limitado e simples de instruções (linguagem de máquina-binária) • exemplo: soma, comparação, transferência de dados de uma parte da memória para outra. Computador • Desde microprocessadores de um único chip, até supercomputadores. • Variedade: – Custo – Tamanho – Desempenho – Formas de aplicação Stallings (2010). Computador • Impressionante ritmo das mudanças da tecnologia. • Importância projetar sistemas de computação com alto desempenho. Stallings (2010). Computador • Tem um conjunto de instruções e convenções único para determinar as posições dos dados com os quais a operação será realizada. • Diferem nas operações específicas que fornecem e nos métodos que usam para referenciar os dados que serão manipulados por uma operação. • Weber 20/03/2014 11 Computador • Alto desempenho: – Velocidade do processador – Capacidade de memória – Taxa de transferência de dados • Aumentam, porém em diferentes velocidades. Stallings (2010). Computador • Constituido com circuítos eletrônicos, capazes de reconhecer e executar diretamente apenas um conjunto limitado e simples de instruções de máquina, nas quais os programas devem ser convertidos para serem executados. • Monteiro (2001) Instrução • É uma operação que tem a forma: operação e operandos. • OPERAÇÃO: especifica a função que será desempenhada. • OPERANDOS: em geral, identifica o endereço de memória onde está contido o dado que será manipulado Tipos de instruções • Executar operações aritméticas sobre dois números; • Executar operações lógicas sobre dois números; • Mover um conjunto de bits de um local para outro do computador; • Desviar a sequência do programa; • Fazer a comunicação com dispositivos de entrada e saída de dados. • Monteiro (2001). Instruções da linguagem de máquina • 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 20/03/2014 12 Processamento de dados • Manipulação dos dados, realizada segundo instruções de um programa (MONTEIRO, 2001). PROGRAMA • é constituído de uma sequência pré-determinada de instruções, que deve ser seguida para que seja atingido o objetivo computacional. • o programa e os dados correspondentes estão armazenados na memória da máquina; • o conjunto de instruções (ou programa) deve ser interpretado para realização do processamento, isto é, a informação codificada correspondente às ações e aos operandos, deve ser entendida e então processada. • Weber Exemplo programa • Somar 100 números e imprimir o resultado 1. escrever e guardar N=0 e SOMA=0 2. Ler número 3. Somar valor do número ao de SOMA e guardar o resultado em SOMA 4. Somar 1 ao valor de N e guardar o resultado em N 5. Se valor de N for menor que 100, então passar para item 2 6. Imprimir valor de SOMA 7. Parar. Linguagens de programação • Regras fixas e rígidas de sintaxe. • A máquina entende e executa instruções simples (instruções de máquina). • Linguagens de alto nível possuem estrutura de comandos que são identificados por palavras da nossa linguagem, o que facilita o entendimento do programador (usa SE/ENTÃO/SENÃO é mais intuitivo do que 01011011011) Máquina Multinível • Para aproximar os seres humanos da máquina é usada uma divisão em camadas das arquiteturas de computadores. • Assim, quanto mais camadas tiver uma arquitetura, mais próxima da linguagem humana será a linguagem de alto nível deste computador. 20/03/2014 13 Máquina Multinível Arquitetura em níveis Linguagens de alto nível Linguagem assembly Sistema operacional Linguagem de máquina Microarquitetura Lógica digital Tradução (compilador)Interpretação Tradução (assembler) Interpretação parcial (chamadas do sistema) Interpretação (microprograma)Execução direta Hardware Prof. Jussara Almeida, UFMG Prof. Jussara Almeida, UFMG Arquitetura em níveis Linguagens de alto nível Linguagem assembly Sistema operacional Linguagem de máquina Microarquitetura Lógica digital Tradução (compilador)Interpretação Tradução (assembler) Interpretação parcial (chamadas do sistema) Interpretação (microprograma)Execução direta Hardware Suporte aos Níveis superiores Programadores de sistemas Programas consistem em séries de números Programadores de aplicações Programas contêm Palavras e abreviações Nível Zero (Lógica Digital) • Engenheiros eletrônicos e de computação (componentes dos circuitos que vão compor as portas lógicas e demais circuitos digitais)• capacitores, resistores, reguladores de potência, fusíveis, dentre outros elementos da eletrônica básica. 20/03/2014 14 Nível Um (Microarquitetura) • Os circuitos vão ser organizados na forma de “pacotes” para compor computadores, os chamados circuitos digitais. • Estes circuitos são usados para compor as implementações práticas de todas as funções e mapeamentos usados na teoria dos circuitos digitais • O projeto da microarquitetura depende diretamente da ISA, além dos objetivos de custo e performance. • engenheiros e projetistas de hardware. Nível Dois (Conjunto de instruções) • Projetistas de hardware, profissionais ligados à engenharia e também a área de software, pois aqui se define o conjunto de instruções que determinada CPU é capaz de reconhecer, que tipo de trabalho determinado computador é capaz de realizar, ... Nível Três (sistema operacional) • O trabalho das equipes de software (bacharéis em ciência da computação, sistemas de informação, dentre outros) • É criado o Sistema Operacional (controlar todo o funcionamento do sistema) Nível Quatro (linguagem de montagem) • Linguagem de montagem (assembly). • Essa linguagem existe para fazer o programador ter acesso a funcionalidades do computador que não seriam permitidas pelas chamadas linguagens de programação de alto nível. • São programações necessárias de se executar diretamente no hardware ou mais intimamente com o sistema operacional. Nível Quatro • Linguagem de montagem (assembly) = código de máquina • Sequência de bits Assembly • É tão próxima do processador quanto o código de máquina, mas é humanamente mais fácil de se compreender. • Por exemplo ´mov´ de mover, ´rep´ de repetição e assim por diante. 20/03/2014 15 Nível Cinco (linguagem orientada a problemas) • Tem-se a linguagem de alto nível • Pascal, C, Delphi, Java e outras. Histórico • Ábaco – Babilônios – século V a.c. • 1642 - Frances Blaise Pascal – (soma e substração) – engrenagens dentadas • Alemão Gottfried Leibniz – calculadora • 1800 – dispositivo mecânico – Joseph Jacquard – Tecelagem – cartões pefurados • 1823 – Inglês Charles Babbage – calculadora programável (tinha os componentes de um computador atual) Histórico • 1889 – Herman Hollerith - Tabulador de Hollerith (Tabulava estatísticas com Cartões Perfurados) • TMC - Tabulation Machine Company) • CTRC - Computing Tabulation Recording Company • IBM - Internacional Business Machine Mark I (1944), totalmente eletromecânico, com 17 m de comprimento, 2,5 m de altura e 5 toneladas. 20/03/2014 16 Histórico • A primeira geração: Válvulas – ENIAC (Electronic Numerical Integrator and Computer) • Projetado e construído na Universidade da Pensilvânia • Primeiro computador digital eletrônico • Fins militares (2ª guerra mundial) • Início 1943 • Pesava 30 toneladas • Continha 18000 válvulas • 800 km de cabos • Consumia 140 kW de potência • Máquina decimal • Memória com 20 “acumuladores”, cada um capaz de manter um número decimal de 10 dígitos • Um anel de 10 válvulas representava um dos 10 dígitos • Programação manual, por meio da ligação de chaves e conexão e desconexão de cabos. • Concluído em 1946 (depois do término da guerra) • Foi desmontado em 1955. Máquina de Von Neumann • O matemático John Von Neumann foi o construtor do ENIAC • Concebeu a ideia do Conceito de Programa Armazenado: – A tarefa de inserir e alterar programas para o ENIAC era extremamente difícil. – O processo de programação poderia ser facilitado se o programa pudesse ser representado em uma forma adequada para armazenamento na memória junto com os dados. – Então um computador poderia obter suas instruções lendo-as da memória, e um programa poderia ser criado ou alterado definindo-se os valores de uma parte da memória. Modelo de Von Neumann • Memória: Conjunto de posições/locações endereçáveis – Palavras: Posição/locação da memória. Contém dados e instruções. – Palavra: Unidade básica de transferência de/para memória. – Palavras são localizadas através de um endereço – Dados, instruções e endereços são codificados em Binário. Modelo de Von Neumann • Programa é uma sequência de instruções, colocadas numa sequência de endereços. – A execução de um programa corresponde à execução sequencial de suas instruções. – A sequência das instruções é definida de forma dinâmica em tempo de execução. • Existência de instruções de controle de fluxo • Alan Turing, desenvolveu a ideia praticamente ao mesmo tempo. • Em 1945, Von Neumann publicou a proposta de um novo computador, o EDVAC (Electronic Discrete Variable Computer). • Em 1946, Von Neumann e colegas, começaram o projeto de um novo computador de programas armazenados, conhecido como computador IAS, que foi concluído em 1952, e é o protótipo de todos os computadores de uso geral. Estrutura Geral do IAS • Uma memória principal, que armazena dados e instruções • Uma unidade lógica e aritmética (ULA) capaz de operar sobre dados binários • Uma unidade de controle, que interpreta as instruções na memória e faz com que sejam executadas • Equipamento de entrada e saída (E/S) operado pela unidade de controle. 20/03/2014 17 Estrutura da máquina de von Neumann Arquitetura Von Neumann Gerações Milhares de componentes no chip Milhões de componentes no chip ENIAC • teve seu desenvolvimento iniciado em 1943 • tinham inicialmente o plano de armazenamento de softwares em seu interior. Mas, para agilizar o lançamento da máquina, essa idéia acabou ficando para trás. • Assim, tinha que ser modificado fisicamente cada vez que uma tarefa diferente fosse executada. • Cabos eram reposicionados, chaves ligadas ou desligadas para um novo programa ser carregado. 1946 - ENIAC 20/03/2014 18 EDSAC • Podia codificar informações em forma binária, fato que reduziu consideravelmente os números de válvulas utilizadas. 1ª Geração • para 2 KB de memória seriam necessárias 16.384 (1024*8*2) válvulas e para três circuitos 16.384 x 3 = 49.152 válvulas. • 1ª Geração • para 2 KB de memória seriam necessárias 16.384 (1024*8*2) válvulas e para três circuitos 16.384 x 3 = 49.152 válvulas. • Quantas válvulas para 2 MB? Computadores comerciais • UNIVAC I (Universal Automatic Computer). • Censo dos EUA. • Final da década de 1950 – UNIVAC II. – Mais rápido. – Mais memória. 1ª geração • 1940 a 1955 • ENIAC, EDVAC, IAS, UNIVAC, ... • Linguagem de Máquina • Não existia conceito de Sistema Operacional • Falta de Confiabilidade: executar várias vezes! Década de 50 • a organização interna dos computadores começou a ser repensada. 20/03/2014 19 Exemplo • Para computadores, o sistema Decimal não é tão interessante, tendo em vista que o trabalha com pulsos elétricos para representação dos dados. • Para trabalhar com o sistema decimal, seriam necessários 10 níveis distintos de voltagem, sendo que se a voltagem mínima fosse 0 volt e a máxima 5v, a representação de um dado (um bit) deveria estar limitada a uma precisão de 0,5v �Consequência: O sistema de numeração mais seguro deveria ser aquele com o menor número de símbolos (dígitos). �Conclusão: o melhor sistema de numeração para uma máquina seria o binário com apenas dois dígitos, o zero (0) e o um (1). � O número binário precisa de mais dígitos para ser escrito do que o decimal. �Consequência: o computador binário é mais preciso, porém, muito lento porque a leitura da informação requerer mais tempo. Solução • O uso de dispositivos eletrônicos baseados na tecnologia dos semicondutores, como os transistores. Transistor• Dispositivo usado para controlar o fluxo de corrente. • Características importantes: 1- é capaz de amplificar um sinal elétrico. 2- é capaz de chavear (comutar) entre ligado e desligado (ou fechado e aberto), deixando corrente passar através dele ou bloqueando-a. Essas condições são também denominadas “saturação” e “corte”, respectivamente. Transistores • Substituíram as válvulas (fios, placas de metal, cápsula de vidro e vácuo). • Menores. • Mais baratos. • Menos dissipação de calor. 20/03/2014 20 1954 IBM 650 As mulheres participavam das mudanças, trabalhando... Disco rígido em 1956 – 5 MB
Compartilhar