350 likes | 482 Views
Computação L1. Sérgio Cavalcante. Centro de Informática - UFPE. Computação L1. Conceitos Básicos História da computação Aritmética Binária Conceitos de Lógica. Computação L1. Módulo 1: Hardware Conceitos de Arquitetura de Computadores Como funciona uma CPU
E N D
Computação L1 Sérgio Cavalcante Centro de Informática - UFPE
Computação L1 • Conceitos Básicos • História da computação • Aritmética Binária • Conceitos de Lógica
Computação L1 • Módulo 1: Hardware • Conceitos de Arquitetura de Computadores • Como funciona uma CPU • Básico: Unidade de Controle + Unid. Processamento • Avançado: Pipeline e Arquiteturas Superescalares • Memória • Tipos de memória • Heierarquia de Memória: principal, secundária e cache • Memória virtual • Sistema de Entrada/Saída • Dispositivos de E/S • Barramentos • Periféricos
Computação L1 • Módulo 2: Software • Compiladores e Interpretadores • Sistemas operacionais • Gerenciamento de processos • Gerenciamento de memória • Gerenciamento de periféricos • Interface com o usuário
Computação L1 • Módulo 3: Linguagens de Programação • Tipos de dados • Operacões aritméticas • Comandos de controle
O que é o computador? Problema Programa Computador Solução
Como funciona um computador? Como trabalhamos ? • Como trabalhamos ? • Informações que não tem uso no momento ficam no fichário. • A pasta sobre a mesa contém cópias das informações que precisaremos naquele dia. • Na mesa mantemos os papéis que estamos usando naquele momento • Completada uma tarefa, pomos os papéis alterados de volta no fichário. • Após o expediente, a faxineira joga no lixo tudo que está na mesa. Fichário Pastas
Como funciona um computador? Disco Memória Unidade de Controle (CPU) 3 2 1 timing & size Information timing & size Information Pastas Comparando com um computador Fichário Mesa • O fichário representa o disco rígido, com alta capacidade de armazenamento. • A pasta sobre a mesa representa a memória, de acesso rápido e fácil • Mesa e usuário são a CPU • OBS: Memória é volátil e disco não (faxineira)
Comunicação Homem-Máquina • Níveis distintos de abstração Linguagem C swap(int v[], int k) {int temp: temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } Linguagem Assembly 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 Código executável 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 10101100011000100000000000000100 00000011111000000000000000001000 Qual a linguagem que o computador entende?
Comunicação Homem-Máquina • Como transformar descrições em código executável? • Diferença entre as linguagens utilizadas • Métodos: • Compilação • Interpretação • Compilação-Interpretação
Programa fonte Ln Compilação Programa objeto L0 Compilador
Interpretação Instrução Ln-1 Instrução Ln Interpretador
Programa fonte Ln Interpretação & Compilação Instrução de máq. L0 Programa objeto Lint Compilador Interpretador
Computador: Hardware e Software Periféricos Computador CPU Mem. Interconexão E/S (I/O)
Vídeo Teclado Componentes de um computador CPU Execução das instruções de um programa Memória Programas + Dados E/S Buffers
Memória Principal Memória Secundária Barramento de E/S Barramento de memória Sistema Básico de Memória CPU
C a c h e Memória Principal Memória Secundária CPU Barramento de E/S Barramento de memória Sistema Básico de Memória Alto desempenho da CPU
15 3 4 0 Opcode Endereço 0001 AC Mem. 0010 Mem. AC 0101 AC AC + Mem. Memória • Dado 0 15 sinal magnitude • Instrução
Memória Programas + Dados Vídeo Teclado Componentes de um computador CPU Execução das instruções de um programa E/S Buffers
Memória Programas + Dados Vídeo Teclado Componentes de um computador Unid. controle Reg. Instrução Endereço temp Operando ALU E/S Unid. processamento Buffers
Executando um programa Busca instrução Decodifica instrução Incrementa PC Busca operando Executa instrução Armazena resultado
Executando um programa Registradores da CPU Memória 1 9 4 0 3 0 0 PC (endereçoda instrução) 3 0 0 3 0 1 5 9 4 1 2 9 4 1 3 0 2 1 9 4 0 IR (código da instrução) ... 0 0 0 3 9 4 0 0 0 0 3 AC (operando) 0 0 0 2 9 4 1 0001 AC Mem. 0010 Mem. AC 0101 AC AC + Mem.
3 0 1 3 0 0 PC PC 0 0 0 5 0 0 0 3 AC AC 1 9 4 0 5 9 4 1 IR IR 0001 AC Mem. 0010 Mem. AC 0101 AC AC + Mem. Executando um programa Registradores da CPU Memória 1 9 4 0 3 0 0 3 0 1 5 9 4 1 2 9 4 1 3 0 2 ... 0 0 0 3 9 4 0 0 0 0 2 9 4 1 316 + 216 = 516
3 0 2 PC 0001 AC Mem. 0010 Mem. AC 0101 AC AC + Mem. Executando um programa Registradores da CPU Memória 1 9 4 0 3 0 1 PC 3 0 0 3 0 1 5 9 4 1 2 9 4 1 3 0 2 2 9 4 1 IR ... 0 0 0 3 9 4 0 0 0 0 5 AC 0 0 0 2 0 0 0 5 9 4 1
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 hardware (lógica digital) • Exemplos: • 1936 - Zuze - Z1 • Primeira máquina calculadora a relés • 1943 - Governo Britânico - Colossus • Primeiro computador eletromecânico Hardware
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 (binário) • nível de hardware • Exemplos: • 1946 - Eckert/Mauchkley - Eniac 1 • Começa a História do computador moderno 0001010...01 Convencional (binário) Hardware
Evolução dos Computadores Programa add sub lw • 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 (binário) • nível de hardware • Exemplo: • 1952 - Von Neumann - IAS • Modelo da maioria das máquinas atuais Ling. Assembly 0001010...01 Convencional (binário) Hardware
Evolução dos Computadores C, Java, etc. Ling. Programaçãode alto nível • 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 (binário) • nível de hardware • Exemplos: • 1960 - DEC - PDP 11 • Primeiro minicomputador (50 unidades vendidas) • 1964 - IBM - 360 • Primeira linha de produtos projetada como uma família Ling. Assembly Memória Virtual Sist. Operacional Convencional (binário) Entrada/Saída Hardware
Evolução dos Computadores Ling. Programaçãode alto nível • 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 (binário) • nível de hardware + microprogramação • Exemplos: • 1974 - Intel - 8080 • Primeira CPU de uso geral em um chip Ling. Assembly Sist. Operacional Convencional (binário) Hardware +Firmware
Programação em Assembler Evolução dos Computadores • QUINTA GERAÇÃO - Anos 80 • Crise do Software Complexidade dos sistemas • Linguagens estruturadas de nível mais alto • Avanço dos compiladores • Maior eficiência do hardware Máquinas RISC (Reduced Instruction Set Computer) • 4 níveis: • nível de montadores/compiladores • nível de sistema operacional • nível de máquina convencional (binário) • nível de hardware • Exemplos: RISC, MIPS, Sparc
Evolução dos Computadores • ... Anos 90+ • Arquiteturas Superescalares • Arquiteturas VLIW • Arquiteturas Superpipeline • 4 níveis • nível de montadores/compiladores • nível de sistema operacional • nível de máquina convencional (binário) • nível de hardware • Exemplos: • Pentium, Alpha, Power
Bibliografia • Computer Organization and Design: The Hardware/Software Interface: Hennessy and Patterson • Computer Organization and Architecture: Designing for Performance • William Stallings, 4. Edition - Prentice Hall 1996 • Organização estruturada de computadores: Tanenbaum