Organização e Arquitetura de Computadores

Slides:



Advertisements
Apresentações semelhantes
Organização e Arquitetura de Computadores I Introdução
Advertisements

Organização de Computadores I
1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
Arquitetura de Computadores
WebDesign Redes de Computadores Aula 05
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Algoritmo Exemplo: faça um algoritmo para tocar todas as músicas de um cd. Após o usuário apertar o play Algoritmo Para as músicas de 1 até última música.
Arquitetura e organização de computadores
Arquitetura e organização de computadores.
Linguagem de Montagem Visão geral.
ELEMENTOS DA INFORMÁTICA
Software Básico Silvio Fernandes
Pontifícia Universidade Católica do Rio Grande do Sul
Software Básico Silvio Fernandes
William Stallings Arquitetura e Organização de Computadores 8a Edição
Algoritmos e Programação Linguagens de Programação Teoria Aula 5 (05/05) Universidade Federal do Vale do São.
Arquitetura de Sistemas Operacionais
Organização e Arquitetura de Computadores I Parte de Controle
INTRODUÇÃO À PROGRAMAÇÃO
Introdução à Informática
Sistemas Operacionais
Professor: Erivelto Tschoeke – UDESC/CEPLAN
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Esquema básico do hardware
Implementando um Montador com LEX e YACC - 3
Arquitetura de Computadores
Linguagens de Programação
Laboratório de Programação de Computadores I
Prof. Msc. Raul Paradeda Aula 2 Introdução
09/03/10 20:13 Claudio de Oliveira – 1/21.
Sistemas Operacionais
Introdução à Programação
História do Computador Desde os idos tempos da humanidade os seres humanos procuram relacionar quantidades. Supõe-se que as primeiras tentativas de contagens.
PROGRAMAÇÃO I UNIDADE 1.
Unidade Central de Processamento
Unidade Central de Processamento
Unidade Central de Processamento
Fundamentos da Arquitetura de Computadores
Funcionamento básico de um computador
Representação de Instruções
Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)
Sistemas Operacionais
Unidade Central de Processamento UCP
PCI- Introdução à Computação
Conceitos de Lógica Digital
Arquitetura de computadores
História dos computadores e da programação
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Agenda Modos de Endereçamento.
Organização de Computadores Bacharel em Sistema de Informação.
Organização e Arquitetura de Computadores
Fundamentos de Arquitetura da Computação
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Arquitetura Cleópatra Bloco de Controle.
Componentes de um Sistema de Computação
Algoritmos e Programação I
Registradores.
Centro de Informática - UFPE
Curso: Sistemas de Informação Tópico 5
Software Básico Introdução à Organização de Computadores Capítulo 1 Mitsuo Takaki
Algoritmos e Programação MC102
Programação Computacional Aula 2: Introdução -Algoritmos
Arquitetura de Microcomputadores
Introdução à Programação
Arquitetura de computadores
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
A linguagem de Máquina – Instruções Básicas
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.
Níveis de Abstrações TANENBAUM:
Transcrição da apresentação:

Organização e Arquitetura de Computadores

Agenda - Aula 01 Computador Programas Elementos básicos da máquina Máquina multinível Evolução dos computadores

Computador Digital Máquina capaz de resolver problemas através da execução de instruções que lhe são passadas. Os circuitos eletrônicos do computador executam um conjunto limitado de instruções simples: adição, subtração, deslocamento, OR, AND.

Computador Digital Memória CPU Programas + Dados Execução das Vídeo Memória Programas + Dados E/S Buffers Teclado CPU Execução das instruções de um programa

Computador Digital Memória Programas + Dados Teclado ALU E/S Vídeo Buffers Reg. ALU PC IR AC MAR MBR Unid. processamento Unid. controle Teclado

Programa Seqüência de instruções que mostra como executar uma determinada tarefa. Pode ser escrita em uma linguagem específica. Por exemplo: - Some dois números. - Imprima “positivo” se o resultado for > 0. - Imprima “negativo” se o resultado for < 0.

Programa Qual a linguagem que o computador entende? Problema Programa Solução Computador Programa Problema Qual a linguagem que o computador entende?

Programa Computador executa um conjunto limitado de instruções simples: adição, subtração, deslocamento, OR, AND. Os programas são convertidos nestas instruções antes de serem executados. Cada instrução deve ser executada pela máquina na qual o programa está instalado. Apenas algumas linguagens contém instruções que podem ser diretamente executadas.

Programa Tradução e Execução Os programas cujas instruções não podem ser diretamente executadas devem ser compilados ou interpretados para a linguagem que permita a execução direta de suas instruções.

Programa Máquina Faça isto e aquilo 01001110101101 Compilação Execução linguagem não executável programa fonte linguagem executável programa objeto Compilação Execução dados entrada saída

Programa Máquina Compilação Interpretação Faça isto e aquilo O processo de compilação traduz todo o programa fonte para um programa objeto. A interpretação traduz comando a comando do programa fonte, que são executados à medida que são traduzidos. Faça isto e aquilo Máquina Compilação Interpretação 01001110101101

Programa Máquina O processo de execução de um programa envolve: Executar cada instrução do programa objeto. Obter os dados necessários para a computação. Produzir as saídas resultantes da computação. 01001110101101 Máquina dados entrada saída

Elementos Básicos da Máquina Memória Unidade aritmética e lógica Unidade de controle Barramento Dispositivos de entrada e saída

Elementos Básicos da Máquina O sistema no qual o programa será executado deve ser capaz de: Armazenar o programa e os dados utilizados na computação. Localizar cada instrução e identificar a ação que deve ser realizada. Executar a ação, possivelmente obtendo, transformando e armazenando dados. Comunicar-se com outros dispositivos (entrada e saída).

Elementos Básicos da Máquina O sistema no qual o programa será executado deve ser capaz de: Armazenar o programa e os dados utilizados na computação. Localizar cada instrução e identificar a ação que deve ser realizada. Executar a ação, possivelmente obtendo, transformando e armazenando dados. Comunicar-se com outros dispositivos (entrada e saída). Memória Aritmética e Lógica Controle Canais de Comunicação Dispositivos

Máquina Multinível Linguagem Assembly Linguagem C swap: muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31 Swap (int v[], int k) {int temp: temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } Código Executável 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000

Máquina Multinível Uma máquina pode ser vista como tendo vários níveis, cada um capaz de executar um conjunto de instruções específicas. Isto é, cada nível possui linguagens apropriadas para descrever as instruções que nele podem ser executadas. MÁQUINA VIRTUAL A maioria dos computadores possui dois ou mais níveis. Descreveremos a organização de uma máquina de seis níveis.

Máquina Multinível lógica digital microprogramação máquina convencional sistema operacional linguagem de montagem linguagem orientada a problemas Nível 5: Nível 0: Nível 1: Nível 2: Nível 3: Nível 4: dispositivos Tradução (Compilador) Tradução (Montador) Interpretação Parcial (SO) Interpretação (Microprograma) Executados Diretos pelo Hardware

Máquina Multinível linguagem orientada a problemas lógica digital microprogramação máquina convencional sistema operacional linguagem de montagem linguagem orientada a problemas dispositivos Formado pelos transistores individuais Tensão, corrente, circuitos, etc.

Máquina Multinível linguagem orientada a problemas lógica digital microprogramação máquina convencional sistema operacional linguagem de montagem linguagem orientada a problemas dispositivos Portas lógicas e CI. Implementam a manipulação de sinais executando funções lógicas básicas: AND, OR, NOT, deslocamento de bits, etc. soma vai um

Máquina Multinível linguagem orientada a problemas lógica digital microprogramação máquina convencional sistema operacional linguagem de montagem linguagem orientada a problemas dispositivos Microinstruções constituem de microprogramas que controlam a entrada e saída de sinais para os vários dispositivos e controlam as várias portas lógicas. Instruções binárias.

Máquina Multinível linguagem orientada a problemas lógica digital microprogramação máquina convencional sistema operacional linguagem de montagem linguagem orientada a problemas dispositivos Comandos para executar funções específicas da máquina: formato de instruções endereçamento, interrupções, dependente da arquitetura utilizada. MOV 0 ACC; ADD 03FC;

Máquina Multinível linguagem orientada a problemas lógica digital microprogramação máquina convencional sistema operacional linguagem de montagem linguagem orientada a problemas dispositivos Comandos para executar funções específicas da máquina: Gerenciamento de tarefas, Sistema de arquivos, Memória virtual e paginação.

Máquina Multinível linguagem orientada a problemas Assembler lógica digital microprogramação máquina convencional sistema operacional linguagem de montagem linguagem orientada a problemas dispositivos Assembler Cada comando corresponde exatamente a uma instrução a ser executada. Utiliza-se mnemônicos e endereços simbólicos. MOV 0 ACC; MOV 0 R1; ... GTO A R1

Máquina Multinível linguagem orientada a problemas lógica digital microprogramação máquina convencional sistema operacional linguagem de montagem linguagem orientada a problemas dispositivos C, C++, Pascal, Cobol Aux:= 0; do print(Aux); Aux:= Aux + 1; while Aux <= 10;

Evolução dos Computadores GERAÇÃO ZERO - 1836 - Anos 30 Máquinas mecânicas ou baseadas em relés dificuldade de construção pouca exatidão 1 nível: nível de lógica digital Exemplos: 1936 - Zuze - Z1 Primeira máquina calculadora a relés 1943 - Governo Britânico - Colossus Primeiro computador eletromecânico

Evolução dos Computadores PRIMEIRA GERAÇÃO - Anos 40 Válvulas com processadores Caras, lentas, queimavam com facilidade ENIAC, UNIVAC 2 níveis: nível convencional nível de lógica digital Exemplos: 1946 - Eckert/Mauchkley - Eniac 1 A História do computador moderno começa aqui!

Evolução dos Computadores SEGUNDA GERAÇÃO - Anos 50 Transistores menores, mais baratos, rápidos, duráveis 3 níveis: nível de montadores (assembly) nível de máquina convencional nível de lógica digital Exemplo: 1952 - Von Neumann - IAS Modelo da maioria das máquinas atuais.

Evolução dos Computadores TERCEIRA GERAÇÃO - Anos 60 Circuitos Integrados (CI`s) 4 níveis: nível de montadores/compiladores nível de sistema operacional nível de máquina convencional nível de lógica digital Exemplos: 1960 - DEC - PDP 11 Primeiro minicomputador (50 unidades vendidas) 1964 - IBM - 360 Primeira linha de produtos projetada como uma família.

Evolução dos Computadores QUARTA GERAÇÃO - Anos 70 Microprocessadores/ Mem. semicondutora VLSI Very Large Scale Integration 5 níveis: nível de montadores/compiladores nível de sistema operacional nível de máquina convencional nível de microprogramação nível de lógica digital Exemplos: 1974 - Intel - 8080 Primeira CPU de uso geral em um chip.

Evolução dos Computadores QUINTA GERAÇÃO - Anos 80 Máquinas RISCs Crise do Software Linguagem C 4 níveis: nível de montadores/compiladores nível de sistema operacional nível de máquina convencional nível de lógica digital Exemplos: RISC, MIPS, Sparc.

Evolução dos Computadores Crise do Software Diminuição do preço de hardware Aumento do preço relativo do software Dificuldades em achar programadores Aumento do preço absoluto do software Aumento da complexidade dos sistemas Impulsionou linguagens de alto nível Gap semântico Melhoria da tecnologia dos compiladores

Evolução dos Computadores ... Anos 90 Arquiteturas Superescalares Arquiteturas VLIW ou EPIC (Explicit Parallel Instruction Coding, ex: Merced IA64 da Intel) Arquiteturas Superpipeline 3 níveis nível de sistema operacional nível de máquina convencional nível de lógica digital Exemplos: Pentium, Alpha, Power.