Introdução aos Computadores Introdução à Ciência de Computadores Nelma Moreira Departamento de Ciência de Computadores da FCUP Outubro 2011 Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 1 / 16
Estrutura de um Computador Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 2 / 16
BUS permite a comunicação de dados e instruções entre as várias componentes. o CPU (Unidade de processamento central) gere a actividade do computador. Responsável pelo ciclo da máquina fetch-decode-execute: vai buscar instruções à memória, descodifica-as e executa-as. A memória principal armazena os programas em execução e os seus dados As memórias auxiliares (p.e discos rígidos) armazenam informação que permanece mesmo que o computador seja desligado. Permitem, em geral, guardar mais informação que a memória principal, mas de acesso mais lento. Periféricos de entrada/saída, como teclados, monitores, impressoras, equipamento de rede, etc... Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 3 / 16
Unidade de Processamento Central (CPU) Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 4 / 16
Unidade de Processamento Central (CPU) A Unidade Lógica Aritmética (ALU): executa operações aritméticas, lógicas e comparações com dados em memória ou em registos. Existem registos de uso específico. O registo de sequ^encia de programa (PC) contém o endereço da próxima instrução a executar; o registo de instruç~ao contém informação sobre a instrução a executar;... Outros são programáveis. A Unidade Lógica de Controlo executa instruções no ciclo fetch-decode-execute: 1 A instrução cujo endereço está no (PC) é copiada da memória para o registo de instrução 2 O tipo de instrução é descodificado 3 Os dados necessários são colocados em registos 4 A instrução é executada e o endereço da próxima instrução é colocado no (PC). Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 5 / 16
Linguagem máquina Um programa a executar é guardado em memória, como os dados. Um programa é constituído por uma sequência de instruções codificadas. Cada instrução: pode ocupar uma ou várias posições de memória é constituida pelo código da instrução e informação sobre os possíveis operandos Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 6 / 16
Arquitecturas RISC Reduced instruction set computer eficiente e rápida Exemplos: PowerPC, SPARC CISC Complex instruction set computer mais fácil de programar Exemplos: Pentium, Motorola 68k Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 7 / 16
Linguagem máquina Conjunto de instruções típico: 1 Transferencia de dados, entre registos e memória LOAD STORE I/O 2 Aritméticas e Lógicas, que correspondem a cálculos efectuados pela ALU ADD AND, OR SHIFT, ROTATE 3 Transferências de controlo (condicionais), que permitem alterar a sequência normal de execução de instruções JUMP: condicional ou incondicional Cada CPU tem uma linguagem máquina própria que depende da sua arquitectura... p.e registos, tamanhos de posições de memória, etc. Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 8 / 16
Uma linguagem máquina simples 16 registos de um byte (0 a F) 256 posições de memória (00 a FF) Cada instrução tem 16 bits com dois campos: Código da operação (opcode): 0 a C (4 bits) Operandos (restantes 12 bits). Por exemplo: 4 bits: número do registo (R,S,T) 8 bits: endereço de memória (XY) Mas pode ser de outra maneira... 0011 0101 1010 0111 3 5 A 7 Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 9 / 16
Instruções Op-code Operandos Descrição 1 RXY Carregar R com o conteúdo da memória XY.Ex: 14A3 2 RXY Carregar R com o conteúdo XY. Ex: 20A3 3 RXY Guardar o conteúdo de R na memória XY. Ex:35B1 4 0RS Copiar o conteúdo de R para o de S. Ex: 40A4 5 RST Adicionar (complemento para 2) o conteúdo de S com o de T e deixar em R. Ex: 5726 6 RST Adicionar (Virg. Flutuante) o conteúdo de S com o de T e deixar em R. Ex: 634E 7 RST Ou lógico dos bits de S e T e colocar em R. Ex: 7CB4 8 RST E lógico dos bits de S e T e colocar em R. Ex: 8045 9 RST XOR dos bits de S e T e colocar em R. Ex 95F3 A R0X Rodar um bit X vezes do conteúdo de R. Ex: A403 B RXY saltar para a instrução em XY se o conteúdo de R igual ao de 0. Ex B43C C 000 Pára a execução Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 10 / 16
Um programa A0 156C A2 166D A4 5056 A6 306E A8 C000 Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 11 / 16
Outro programa A4 2000 A6 2103 A8 2201 AA B1B0 AC 5002 AE B0AA B0 C000 Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 12 / 16
Outro ainda O que faz quando chega a F8? F0 20C0 F2 30F8 F4 2000 F6 30F9 F8 FFFF Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 13 / 16
Operações Lógicas AND OR XOR 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 14 / 16
Deslocamentos e rotações SHIFT (direita) SHIFT (esquerda) ROTATE (direita) 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 0 Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 15 / 16
Exercícios Fazer as operações AND, OR and XOR: 0 1 0 0 1 0 1 1 1 0 1 0 1 0 1 1 Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 16 / 16