Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à Arquitetura de Computadores Representação de Dados Arquitetura e Organização Noções de Software Básico Notas de aula Raul Fernando Weber Quarta versão - Março de 1998 Material para uso exclusivo em INF01 107 Departamento de Informática Aplicada Instituto de Informática UFRGS ii iii PREFÁCIO Essas notas de aula são uma compilação dos tópicos desenvolvidos na disciplina de Introdução à Arquitetura de Computadores. Este material foi desenvolvido para suprir a falta de um livro-texto que contivesse todos os itens que são abordados na disciplina. As principais áreas da disciplina são cobertas. Os capítulos 1 e 2 tratam da representação de dados, cobrindo sistemas de numeração e representação de dados numéricos em um computador. Os capítulos 3 e 4 enfocam as noções básicas sobre arquiteturas de computadores, apresentando o modelo de von Neumann e exercitando os principais conceitos através de um computador hipotético, denominado de NEANDER. O capítulo 5 introduz um segundo computador hipotético, o AHMES, dotado de uma maior número de instruções a fim de exercitar os algoritmos de multiplicação e divisão vistos no capítulo 6. Os capítulos 7 e 8 cobrem as notações aritméticas de ponto fixo e ponto flutuante, assim como sistemas de codificação. O capítulo 9 apresenta os blocos básicos da organização de um computador, e o capítulo 10 ilustra a organização do NEANDER. Os capítulos 11 e 12 fornecem as principais noções e a nomenclatura básica da área de entrada e saída e software básico (compiladores, montadores e sistemas operacionais). Enquanto a parte concernente à aritmética binária (capítulos 1, 2, 6, 7 e 8) é completa em si mesmo, as outras visam somente introduzir o aluno nas áreas de arquitetura e sistemas operacionais, e estão longe de estarem completas. Estas demais áreas são posteriormente desenvolvidas em outras disciplinas do Instituto de Informática. iv SOBRE O AUTOR Raul Fernando Weber Doutor em Informática pela Universidade de Karlsruhe (1986), Mestre em Ciência da Computação, UFRGS (1980). Engenheiro Eletrônica, UFRGS (1976). Atualmente professor do Instituto de Informática e do Curso de Pós-Graduação em Ciência da Computação, UFRGS. Áreas de atuação: tolerância a falhas, segurança em sistemas de computação e projeto automatizado de sistemas digitais. Colaboradores Taisy Silva Weber Carlos Arthur Lang Lisboa Ingrid E.S. Jansch-Porto v SUMÁRIO 1 Bases Numéricas 1.1 Introdução........................................................................................1-1 1.2 Representação de números.....................................................................1-2 1.3 Transformação entre bases.....................................................................1-2 1.3.1 Método polinomial............................................................................1-3 1.3.2 Método de subtrações........................................................................1-3 1.3.3 Método das divisões..........................................................................1-4 1.3.4 Método da substituição direta................................................................1-5 1.4 Exercícios propostos............................................................................1-5 2 Sistemas de numeração em computação 2.1 Introdução........................................................................................2-1 2.2 Soma de números binários.....................................................................2-2 2.3 Representação de números.....................................................................2-2 2.3.1 Números inteiros positivos..................................................................2-3 2.3.2 Números com sinal: representação em sinal-magnitude..................................2-3 2.3.3 Números com sinal: representação em complemento de (B–1)..........................2-4 2.3.4 Números com sinal: representação em complemento de B...............................2-9 2.4 Comparação entre os métodos...............................................................2-12 2.5 Subtração.......................................................................................2-13 2.6 Estouro de representação.....................................................................2-13 2.7 Exercícios propostos..........................................................................2-14 3 Componentes do computador e modelo de von Neumann 3.1 Breve histórico...................................................................................3-1 3.2 Princípios básicos...............................................................................3-3 3.3 Elementos funcionais básicos..................................................................3-4 3.3.1 Memória........................................................................................3-5 3.3.2 Unidade operacional..........................................................................3-6 3.3.3 Unidade de controle..........................................................................3-7 3.3.4 Registradores especiais.......................................................................3-8 3.3.5 Conjunto de instruções e modos de endereçamento......................................3-9 3.3.6 Ciclo de busca-decodificação-execução de instruções....................................3-9 3.3.7 Programação de um processador..........................................................3-10 3.4 Um computador de primeira geração: o EDVAC..........................................3-10 3.5 Modelo de von Neumann: o computador IAS.............................................3-15 3.5.1 Organização da UCP.......................................................................3-15 3.5.2 Conjunto de instruções.....................................................................3-15 3.6 Arquiteturas de 4, 3, 2, 1 e 0 endereços....................................................3-17 3.6.1 Arquitetura de 4 endereços.................................................................3-17 3.6.2 Arquitetura de 3 endereços.................................................................3-18 3.6.3 Arquitetura de 2 endereços.................................................................3-18 3.6.4 Arquitetura de um endereço................................................................3-19 3.6.5 Arquitetura de zero endereços.............................................................3-20 4 Computador hipotético NEANDER 4.1 Características....................................................................................4-1 4.2 Modos de endereçamento.......................................................................4-1 4.3 Conjunto de instruções.........................................................................4-2 4.4 Códigos de condição............................................................................4-2 vi 4.5 Formato das instruções.........................................................................4-3 4.6 Exemplo de programação.......................................................................4-3 4.7 Conclusão........................................................................................4-4 4.8 Exercícios de programação usando o NEANDER...........................................4-4 5 Computador hipotético AHMES 5.1 Características....................................................................................5-1 5.2 Modos de endereçamento.......................................................................5-1 5.3 Conjunto de instruções.........................................................................5-2 5.4 Códigos de condição............................................................................5-3 5.5 Manipulação aritmética..........................................................................5-4 5.5.1 Aritméticaem complemento de dois........................................................5-4 5.5.2 Aritmética de inteiros positivos..............................................................5-6 5.5.3 Aritmética em complemento de um.........................................................5-6 5.5.4 Aritmética em sinal/magnitude...............................................................5-7 6 Multiplicação e divisão 6.1 Multiplicação binária (números inteiros positivos)..........................................6-1 6.2 Multiplicação binária (números em complemento de dois).................................6-7 6.3 Divisão binária (números inteiros positivos).................................................6-8 6.4 Divisão binária (números em complemento de dois, positivos).........................6-14 6.5 Divisão binária (números em complemento de dois, positivos ou negativos)..........6-18 6.6 Exercícios resolvidos.........................................................................6-19 7 Números em ponto fixo e ponto flutuante 7.1 Números em ponto fixo........................................................................7-1 7.2 Soma e subtração em ponto fixo...............................................................7-2 7.3 Multiplicação em ponto fixo....................................................................7-3 7.4 Divisão em ponto fixo..........................................................................7-4 7.5 Números em ponto flutuante...................................................................7-4 7.6 Formatos de números em ponto flutuante....................................................7-6 7.7 Soma e subtração de números em ponto flutuante...........................................7-7 7.8 Multiplicação de números em ponto flutuante................................................7-7 7.9 Divisão de números em ponto flutuante......................................................7-8 8 Codificações BCD, Numérica e Alfanumérica 8.1 Números e Aritmética BCD....................................................................8-1 8.2 Codificação.......................................................................................8-3 8.3 Códigos BCD (ou códigos de 4 bits ponderados)...........................................8-3 8.4 Códigos de cinco bits ponderados.............................................................8-5 8.5 Códigos de sete bits ponderados..............................................................8-5 8.6 Códigos Gray (ou códigos cíclicos)...........................................................8-6 8.7 Códigos de detecção e correção de erros.....................................................8-8 8.8 Códigos m-de-n.................................................................................8-9 8.9 Códigos de paridade............................................................................8-9 8.10 Códigos de Hamming.........................................................................8-9 8.11 Códigos alfabéticos (ou códigos alfanuméricos).........................................8-11 9 Elementos básicos de organização 9.1 Introdução........................................................................................9-1 9.2 Portas lógicas e equações booleanas..........................................................9-1 9.3 Equivalência de portas lógicas.................................................................9-5 9.4 Circuitos combinacionais.......................................................................9-7 9.5 Circuitos sequenciais..........................................................................9-10 9.6 Unidade Aritmética e Lógica.................................................................9-15 9.7 Memória........................................................................................9-18 10 Organização do Neander 10.1 Elementos necessários.......................................................................10-1 vii 10.2 Fluxo de dados...............................................................................10-1 10.3 Sinais de controle............................................................................10-7 11 Entrada e saída 11.1 Introdução....................................................................................11-1 11.2 Dispositivos periféricos.....................................................................11-2 11.3 Memória secundária.........................................................................11-2 11.4 Comunicação com outras máquinas.......................................................11-2 11.5 Sistemas de E/S..............................................................................11-3 11.5.1 Entrada e saída programada..............................................................11-3 11.5.2 Acesso direto à memória..................................................................11-5 11.5.3 Interrupção.................................................................................11-5 11.5.4 Informações complementares............................................................11-5 12 Software básico 12.1 Introdução....................................................................................12-1 12.2 Linguagens de programação................................................................12-1 12.3 Exemplo com NEANDER..................................................................12-2 12.4 Programas a nível de sistema...............................................................12-5 12.5 Interfaces entre hardware e software......................................................12-7 12.6 Sistemas operacionais.......................................................................12-8 12.7 Funções básicas dos sistemas operacionais..............................................12-11 12.8 Processos e escalonamento................................................................12-12 12.9 Carga do sistema (inicialização da máquina).............................................12-13 12.10 Multiprogramação.........................................................................12-13 12.11 Multiprocessamento.......................................................................12-15 12.12 Exemplos de sistemas operacionais.....................................................12-15 12.13 Redes de computadores...................................................................12-16 Bibliografia Apêndice: Utilização dos simuladores e depuradores A.1 Simulador.......................................................................................A-1 A.2 Formato da tela.................................................................................A-1 A.3 Entrada numérica...............................................................................A-2 A.4 Comandos de operação........................................................................A-2 A.4.1 Hexadecimal x decimal.....................................................................A-3 A.4.2 Visualização Simbólica.....................................................................A-3 A.4.3 Editando um programa na memória.......................................................A-3 A.4.4 Inspecionando a memória..................................................................A-4 A.4.5 Imprimindo porções da memória..........................................................A-4 A.4.6 Zerando uma área de memória.............................................................A-4 A.4.7 Movendo blocos.............................................................................A-4 A.4.8 Executando um programa..................................................................A-4 A.4.9 Salvando e carregando arquivos...........................................................A-5
Compartilhar