Buscar

Introdução à Arquitetura de Computadores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Outros materiais