Introdução a Arquitetura e Organização de Computadores

Slides:



Advertisements
Apresentações semelhantes
ICC - 1. Histórico e Conceitos básicos
Advertisements

Arquitetura de Computadores
Histórico dos Sistemas Operacionais
Organização de computadores Professora Marcela Santos Aula 7 – A arquitetura de von Neumann.
Arquitetura de Computadores
Arquitetura de Computadores
William Stallings Arquitetura e Organização de Computadores 8a Edição
Introdução à informática
Professor: Erivelto Tschoeke – UDESC/CEPLAN
Professor: Carlos Roberto da Silva Filho, M. Eng.
GERAÇÕES 1951/ Computadores de primeira geração:
Laboratório de Utilização de Microcomputadores (DCA0302)
Linguagens de Programação
Avaliando e Compreendendo o Desempenho - Respostas
Processadores – Aula 3 Professor: André Luis Meneses Silva
Fundamentos do Projeto Lógico
Arquitetura de Computadores
História da Informática Necessidade de realizar cálculos matemáticos Ábaco – criado por volta de 2000 A.C., foi a primeira.
Lógica de Programação UNIDADE 1 – Introdução a) Computador
Processadores – Aula 3 Professor: André Luis Meneses Silva
2- Entendendo o que é Arquitetura e Organização
História da informação
Introdução à Informática
Histórico e Evolução da Informática
Introdução a Computação e Cálculo Numérico
Evolução dos Computadores
Montagem e Manutenção de Computador I
Do supercomputador de neurônios ao Ruindows? ...Ábaco?
ABACO.
História dos computadores e da programação
ORGANIZAÇÃO DE COMPUTADORES
Informática nas Organizações
Régua de cálculo de da Vinci; Calculador de Pascal;
Introdução ao Software Científico
Organização e Arquitetura de Computadores
O que são, para que servem e onde podem ser utilizadas?
Marcos da Arquitetura de Computadores
Evolução e Desempenho de Computadores
Organização e Arquitetura de Computadores
Fundamentos de Arquitetura da Computação
Organização e Arquitetura de Computadores 2ºSemestre Aula 6 Prof
Aula 01 HISTÓRICO DA INFORMÁTICA.
Conteúdo do Capítulo 1.1 Visão Geral 1.2 Uma Breve História
Zeque - Grad. CC1 Sistemas Operacionais Curso de Ciência da Computação da UFPE Prof. José Queiroz - ZEQUE.
Organização e Arquitetura de Computadores
Microprocesadores x Microcontroladores
INTRODUÇÃO À COMPUTAÇÃO
Componentes de um Sistema de Computação
Fundamentos de Sistemas Operacionais
INTRODUÇÃO AOS SISTEMAS OPERACIONAIS
Registradores.
Centro de Informática - UFPE
COMPUTADOR - EVOLUÇÃO HISTÓRICA
Arquitetura de Computadores
Capítulo 1 Introdução.
Software Básico Introdução à Organização de Computadores Capítulo 1 Mitsuo Takaki
Slides before 1st Section Divider
Introdução à Computação Componentes Básicos dos Computadores
Arquitectura de computadores
TECNOLOGIA EM REDES DE COMPUTADORES INTRODUÇÃO A COMPUTAÇÃO Aula /02/2013 Professor Leomir J. Borba- –
Sistemas Operacionais
Introdução à Programação
Introdução à Ciência da Computação I
Histórico da evolução dos computadores
1 Arquitetura de Computadores Introdução. 2 Arquitetura de Computadores Conceitos – Arquitetura de Computador Trata do comportamento funcional de um computador.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
 Processamento de dados: requer a execução de uma série de passos, o programa (software)  Cada passo é uma instrução, ou ordem de comando, dada ao.
História do Computador Projeto Amigos do Planeta.
Transcrição da apresentação:

Introdução a Arquitetura e Organização de Computadores Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: www.dcomp.ufs.br/index.php/docentes:Andre

Agenda Introdução Sistemas Computacionais Arquitetura X Organização Linguagens, níveis e máquinas virtuais Níveis de Abstração em uma máquina convencional Estágios de Evolução da Arquitetura de Computadores.

Introdução 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 laptop. Projeto do Genoma Humano World Wide Web.

Sistemas Computacionais Classificação. Desktop Servidores Computadores embutidos.

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 Podem ser: Mini-servidores Supercomputadores 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 Supercomputadores Exemplo 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.

Computadores Embarcados ou Embutidos 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.

Sistemas Computacionais

Arquitetura X Organização Refere-se aos 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 Refere-se à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 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 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.

Linguagens, níveis e máquinas virtuais Aplicações convencionais podem consistir em centenas de milhares a milhões de linhas de código e se basear em bibliotecas de software que implementam funções complexas. No entanto, o hardware em um computador só pode executar instruções de baixo nível extremamente simples. A linguagem compreensível pelo hardware é denominada de linguagem de máquina.

Linguagens, níveis e máquinas virtuais Um sistema computacional opera através de sinais elétricos (ligado e desligado), representados, respectivamente, por 1 e 0. Este alfabeto é denominado sistema binário. Embora só possuam dois símbolos, estes não limitam o poder de expressividade da linguagem. Fazendo associação com o alfabeto. Com 1 dígito*, podemos formar 21 elementos diferentes. Com 4 dígitos, podemos formar 24 elementos diferentes. Com 32 dígitos, podemos formar 232 elementos diferentes. Com 64 dígitos, podemos formar 264 elementos diferentes. * dígito também é conhecido como bit.

Linguagens, níveis e máquinas virtuais Linguagem de máquina não é muito conveniente para nós humanos. Para resolver este problema, criamos um novo conjunto de instruções mais conveniente para os usuários do que as instruções de linguagem de máquina. Este novo conjunto de instruções pode ser visto como uma nova camada ou abstração do conjunto de instruções da camada anterior. A partir de agora chamaremos de L0, o conjunto de instruções relativos a linguagem de máquina e L1, L2, ... Ln o conjunto de instruções subseqüentes.

Linguagens, níveis e máquinas virtuais Existem duas soluções diferentes para este problema: Compiladores Consiste em substituir cada uma das instruções da camada de nível mais alto por uma seqüência equivalente de instruções da camada de nível mais baixo. Gera um novo arquivo. Possui boa performance. Interpretadores Examina cada uma das instruções do programa durante a execução. Transforma cada instrução de alto nível em instruções de baixo nível. Em seguida, esta instrução é executada antes do exame da próxima instrução de alto nível. Não gera um novo arquivo Não possui uma boa performance.

Linguagens, níveis e máquinas virtuais Podemos imaginar, para cada nova abstração, a existência de um computador hipotético, ou de uma máquina virtual, cuja linguagem de máquina seja do nível mais alto que acabamos de criar. Então para uma linguagem L1, temos uma máquina virtual M1. Se esta máquina M1 pudesse ser construída, precisaríamos da máquina M0? Não precisaríamos. No entanto a complexidade para construção, o custo e a perda de flexibilidade não favorecem esta idéia.

Níveis de abstração em uma máquina convencional Grande parte dos computadores modernos é formado por dois ou mais níveis. Os níveis mais comuns, que podem ser encontrado nos computadores são os seguintes.: Nível da lógica digital Nível mais baixo, cujos objetos de interesse são as portas lógicas. Nível da Microarquitetura Nível cujo objetos de interesse são os registradores, unidade lógica aritmética e o caminho de dados.

Níveis de abstração em uma máquina convencional Nível da Arquitetura do Conjunto de Instruções (Nível ISA). Formado pelo conjunto de instruções aceitas por um determinado hardware. Nível do Sistema Operacional Nível mais abstrato, formado por um interpretador e possui instruções em comum com o nível anterior. Nível da Linguagem do Montador Corresponde à linguagem de montagem (assembly). Nível das linguagens de alto nível. Corresponde ao nível utilizado pelos programadores de aplicação.

Conseqüências desta evolução Microprogramação Sistemas Operacionais Maior produtividade e aumento da qualidade dos programas gerados. Crescimento da importância do software. Perda dos limites entre “até onde vai o hardware e até onde vai o software” Tudo que fazemos em hardware, pode ser feito em software e vice-versa? Essa é uma boa discussão. Basicamente tudo que fazemos em software podemos fazer em hardware, no entanto temos algumas vantagens e desvantagens no emprego de uma ou outra solução.

Conseqüências desta evolução Soluções por Hardware, em geral possuem: Melhor performance. Menor consumo de energia. Alto custo. Baixo grau de flexibilidade. Soluções por software, em geral possuem: Pior performance. Maior consumo de energia. Baixo custo. Alto grau de flexibilidade. Decidir o que será implementado em hardware ou em software é um dos grandes problemas da computação atual.

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. Mark-I

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. Eniac

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. IBM System/360

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 - Machintosh IBM PC Início da computação pessoal

Será? “Acho que existe, no mundo, um mercado para talvez uns cinco computadores” Thomas J. Watson Chairman of IBM, 1943

Leitura Recomendada Tanembaum – Capítulo 1 Stallings – Capítulo 1 e 2 Henessy e Patterson – Capítulo 1