Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* PUCC Organização e Arquitetura de Computadores * PUCC Agenda - Aula 01 Computador Programas Elementos básicos da máquina Máquina multinível Evolução dos computadores * PUCC 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. * PUCC Computador Digital * PUCC Computador Digital * PUCC 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. * PUCC Programa Qual a linguagem que o computador entende? * PUCC Programa 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. 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. * PUCC Programa 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. Tradução e Execução * PUCC Programa * PUCC Programa 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. * PUCC Programa 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. * PUCC Elementos Básicos da Máquina Memória Unidade aritmética e lógica Unidade de controle Barramento Dispositivos de entrada e saída * PUCC 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). * PUCC Elementos Básicos da Máquina Memória Aritmética e Lógica Dispositivos Controle Canais de Comunicação 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). * PUCC Máquina Multinível Swap (int v[], int k) {int temp: temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } 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 Linguagem Assembly 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 Código Executável * PUCC 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. * PUCC Máquina Multinível Executados Diretos pelo Hardware Interpretação (Microprograma) Tradução (Compilador) Tradução (Montador) Interpretação Parcial (SO) * PUCC Máquina Multinível Formado pelos transistores individuais Tensão, corrente, circuitos, etc. * PUCC Máquina Multinível 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. * PUCC Máquina Multinível 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. * PUCC Máquina Multinível 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; * PUCC Máquina Multinível Comandos para executar funções específicas da máquina: Gerenciamento de tarefas, Sistema de arquivos, Memória virtual e paginação. * PUCC Máquina Multinível Assembler MOV 0 ACC; MOV 0 R1; ... GTO A R1 Cada comando corresponde exatamente a uma instrução a ser executada. Utiliza-se mnemônicos e endereços simbólicos. * PUCC Máquina Multinível C, C++, Pascal, Cobol Aux:= 0; do print(Aux); Aux:= Aux + 1; while Aux <= 10; * PUCC 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 * PUCC 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! * PUCC 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. * PUCC 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. * PUCC 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. * PUCC 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. * PUCC 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 * PUCC 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. * PUCC
Compartilhar