Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores

(Parte 1 de 13)

Apostila sobre

Organização e

Arquitetura de

Computadores Autor: Eder Santana Freire

Versão 1.3

Apresentação

A idéia de preparar uma apostila que abordasse o tema de Organização e Arquitetura de Computadores surgiu ainda durante a graduação, mas foi durante a realização de uma pós-graduação nesta área que pude compilar os tópicos de maior interesse dentro desta área, com o objetivo e de ajudar outras pessoas em busca de conhecimento, além de me ajudar a fixar e aprofundar os conhecimentos na área.

Esta apostila está estruturada em tópicos e sub-tópicos, retirados de livros, notas de aula e outras fontes na Internet, e fornecem o conhecimento básico necessário ao entendimento da operação do hardware dos computadores digitais. A sua leitura é bem objetiva e simples, e procurou-se abordar os temas de forma bastante direta, de modo a facilitar uma rápida consulta por parte do leitor.

Deve-se salientar que o objetivo desta apostila é transmitir a idéia geral por trás do tema, e não um conhecimento aprofundado a respeito dos tópicos cobertos. Portanto, o texto aqui apresentado serve como ponto de partida para quem se interessar pelo assunto, cujo conhecimento adquirido não só pode, como deve ser aprofundado por meio de livros e de outras fontes.

Este arquivo PDF é de livre distribuição, impressão, cópia e reprodução, desde que respeitados os créditos para o autor. O mesma pode ser baixado originalmente em: w.ederfreire.tk, onde também pode ser encontrado o meu currículo, além de trabalhos futuros. A sua comercialização, em todo ou em parte, é proibida de todas as formas devendo neste caso o autor ser contactado imediatamente através do e-mail ederfreire@gmail.com. Críticas, sugestões e avisos de erros também podem ser enviados para este endereço.

Sobre o autor: Eder Freire é bacharel em Engenharia de Computação pela Universidade Estadual de Feira de Santana (Bahia), onde adquiriu interesse pela área de Arquitetura de Computadores e Sistemas Digitais. Desenvolveu o seu trabalho de conclusão de curso baseado na arquitetura do sistema computacional Atari 2600, vídeo-game de grande sucesso nos anos 1980. Foi selecionado como bolsista no Programa CI Brasil, do CNPq / Governo Federal, tendo concluído com sucesso a pós-graduação em Projeto de Circuitos Integrados, com ênfase em Sistemas Digitais, no Centro de Treinamento 2, localizado no Centro de Tecnologia da Informação Renato Archer (Campinas-SP). Atualmente é bolsista do CI BRASIL / CNPq em uma Design House em Salvador, e mestrando em Mecatrônica / Sistemas Computacionais pela Universidade Federal da Bahia – UFBA.

Introdução5
1. Circuitos Lógicos Digitais6
1.2 Organização, Projeto e Arquitetura de Computadores7
1.3 Portas Lógicas7
1.4 Álgebra Booleana10
1.4.1 Identidades básicas da Álgebra Booleana1
1.4.2 Teorema de De-Morgan1
1.4.3 Complemento de uma função12
1.5 Simplificação por Mapas de Karnaugh13
1.5.1 Mapas de Variáveis13
1.5.2 Simplificação por Soma-de-Produtos14
1.5.3 Simplificação por Produto-das-Somas15
1.5.4 Condições Irrelevantes (don't care)17
1.6 Circuitos Combinacionais18
1.6.1 Meio-Somador18
1.6.2 Somador Completo19
1.6.3 Flip-Flops19
1.7 Circuitos Seqüenciais23
1.7.1 Procedimento para o Projeto de Circuitos Seqüenciais24
2. Circuitos Integrados25
2.1 Circuitos Integrados25
2.2 Decodificadores26
2.3 Codificadores29
2.4 Multiplexadores29
2.5 Registradores30
2.6 Registradores de Deslocamento31
2.7 Contadores Binários32
2.8 Unidade de Memória32
2.8.1 Memória de Acesso Aleatório (Random Access Memory – RAM)3
2.8.2 Memória Somente-Leitura (Read-Only Memory – ROM)3
3. Unidade Central de Processamento35
3.1 A CPU35
3.2 Organização Geral dos Registradores35
3.2.1 Organização da Pilha39
3.2.2 Pilha da Memória40
3.2.3 Formatos de Instrução41
3.2.4 Modos de Endereçamento43
3.3 Manipulação e Transferência de Dados4
3.3.1 Instruções de Transferência de Dados45
3.3.2 Instruções de Manipulação de Dados46
3.3.3 Instruções Lógicas e de Manipulação de Bits47
3.3.4 Instruções de Deslocamento48
3.4 Controle de Programa49
3.4.1 Condições de Bits de Estado50
3.4.2 Instruções de Desvio Condicional50
3.4.3 Tipos de Interrupção51
3.5 RISC (Reduced Instruction Set Computer)52
4. Organização de Entrada e Saída53
4.1 Dispositivos Periféricos53
4.2 Caracteres Alfanuméricos ASCII56
4.3.2 E/S versus Barramento de Memória61
4.3.3 E/S Isolada versus Mapeada na Memória61
4.3.4 Exemplo de Uma Interface de E/S62
4.4 Transferência de Dados63
4.4.1 Transferência Síncrona63
4.4.3 Controle por Strobe64
4.4.4 Handshaking6
4.4.5 Transmissão Serial e Paralela69
4.4.6 Interface de Comunicação Assíncrona71
4.4.7 Buffer First In First Out – FIFO72
4.5 Modos de Transferência74
4.5.1 Exemplo de E/S Programada75
4.5.2 E/S Iniciada por Interrupção76
4.6 Interrupção por Prioridade76
4.6.1 Prioridade por Daisy Chaining7
4.6.2 Interrupção por Prioridade Paralela78
4.6.3 Codificador de Prioridade81
4.6.4 Ciclo de Interrupção81
4.6.5 Rotinas de Software82
4.6.6 Operação Inicial e Final84
4.7 Acesso Direto à Memória84
4.7.1 Controlador DMA85
4.7.2 Transferência por DMA87
4.8 Processador de Entrada e Saída89
4.8.1 Comunicação CPU – IOP90
4.9 Comunicação Serial92
4.9.1 Protocolo Orientado a Caracteres93
4.9.2 Exemplo de Transmissão94
5. Organização da Memória96
5.1 Memória principal96
5.1.1 Chips ROM e RAM97
5.1.2 Mapa de Endereços de Memória9
5.1.3 Conexão da Memória com a CPU9
5.2 Memória Associativa101
5.2.1 Organização do Hardware102
5.3 Memória Cache102
5.3.1 Mapeamento Associativo103
5.3.2 Mapeamento Direto103
5.4 Memória Virtual105
5.4.1 Espaço de Endereço e Espaço de Memória105
5.4.2 Tabela de Páginas da Memória Associativa106
5.4.3 Substituição de Páginas107
Exercícios1
Seção I1
Seção I113
Seção I114
Eder Santana Freire5

Organização e Arquitetura de Computadores

Introdução

Todos sabemos que os computadores se tornaram parte da vida rotineira. O trabalho inteligente que eles executam com uma dada instrução vale à pena a sua exploração. À primeira vista, uma questão comum que surge quando começamos a estudar o funcionamento dos computadores é: “que tipo de processo está acontecendo dentro de um computador quando lhe damos uma instrução ou comando? o que acontece dentro dele?” É isto que vai ser explorado nesta apostila.

Como o tema abordado é Organização e Arquitetura de Computadores, deve-se primeiramente diferenciar os termos organização e arquitetura.

A Organização de Computadores está focada na forma com que os componentes de hardware estão interconectados para formar um sistema computacional.

A Arquitetura de Computadores preocupa-se com a estrutura e comportamento dos vários módulos funcionais de um computador, e como eles interagem para atender às necessidades de processamento do usuário.

Primeiramente, serão abordados os circuitos lógicos digitais, com a idéia de um computador básico, introdução às portas lógicas e suas características, álgebra booleana, simplificação por mapas, e circuitos combinacionais e seqüenciais. Em seguida, a apostila trata dos circuitos integrados, como codificadores, decodificadores, registradores, registradores de deslocamento e unidades de memória.

Posteriormente, é abordada a unidade central de processamento, com a organização interna dos seus registradores, instruções, transferência e manipulação de dados, controle de programa e arquiteturas RISC. A organização do sistema de entrada e saída é também discutida, citando dispositivos periféricos, interfaces, modos de transferência de dados, interrupções, acesso direto à memória, processador de E/S, comunicação serial e paralela, entre outros.

Por fim, o texto trata da organização de memória, que abrange a memória principal, memórias auxiliares, cache e seus tipos, e a memória virtual, com algoritmos de substituição de páginas. A apostila ainda conta com alguns exercícios, que servem como recurso para fixação do aprendizado.

Eder Santana Freire6

Organização e Arquitetura de Computadores

1. Circuitos Lógicos Digitais

Este capítulo introduz o conceito fundamental para o projeto de sistemas digitais construídos a partir de portas lógicas individuais e flip-flops. O mesmo cobre álgebra booleana, e circuitos combinacionais e seqüenciais. Assim, é fornecida a base necessária para compreensão dos circuitos digitais a serem apresentados.

1.1 Computadores Digitais

• Computadores digitais usam o sistema numérico binário, o qual possui dois dígitos, 0 e 1. • Um dígito binário é chamado de bit (BInary digiT).

• Bits podem ser agrupados em bytes (8 bits) ou palavras (vários bytes), para formar determinado tipo de representação compreendido pelo computador.

• Uma seqüência de instruções para o computador é conhecida como um programa.

O diagrama de blocos de um computador digital básico é demonstrado na figura 1, e é baseado na arquitetura proposta por John Von Neumann:

Figura 1: Diagrama de um computador básico

O hardware do computador normalmente é dividido em três partes principais:

• A Unidade Central de Processamento (do inglês Central Processing Unit – CPU), que contém uma unidade lógico-aritmética para manipulação de dados, um número de registradores para manipulação de dados, e circuitos de controle para a coleta e execução de instruções.

• A memória de um computador contém armazenamento para instruções e dados, e é chamada de

Memória de Acesso Aleatório (Random Access Memory – RAM). A CPU pode acessar qualquer local de forma aleatória na memória, e recuperar a informação binária em um intervalo fixo de tempo.

• O processador de entrada e saída contém circuitos eletrônicos para comunicação e controle da transferência de informações entre o computador e o mundo externo.

Eder Santana Freire7

Organização e Arquitetura de Computadores

• Os dispositivos de entrada e saída conectados ao computador incluem teclado, mouse, impressoras, terminais, discos magnéticos e outros dispositivos de comunicação.

1.2 Organização, Projeto e Arquitetura de Computadores

• A organização de computadores está envolvida com a forma com o que o hardware do computador opera e a forma com o que os seus dispositivos são interconectados para formar o sistema computacional. Supõe-se que os vários componentes estão nos seus devidos lugares, e a tarefa é investigar a estrutura organizacional a fim de se verificar que as partes do computador operam conforme deveriam.

• O projeto de computadores está envolvido com o projeto do hardware de um computador propriamente dito. Uma vez que a especificação do computador é formulada, é tarefa do projetista desenvolver o hardware para o sistema. O projeto de computadores está preocupado com a determinação de qual componente de hardware deve ser utilizado, e como as suas partes devem ser conectadas. Este aspecto do hardware de computadores é algumas vezes chamado de implementação de computadores.

• A arquitetura de computadores está direcionada à estrutura e comportamento do computador conforme a visão do seu usuário. Ela inclui os formatos da informação, o conjunto de instruções e técnicas para endereçamento da memória.

1.3 Portas Lógicas

• As informações binárias são representadas em computadores digitais por meio de sinais elétricos.

• Estes sinais podem ser representados pela tensão, que vai especificar um estado, de dois possíveis. Por exemplo, se um fio contém um sinal de 3 volts, considera-se que o mesmo representa o valor digital 1.

• Da mesma forma, se o fio contém 1.5 volts, então este representa o valor digital 0.

• A manipulação de informação binária em um computador é feita por meio de circuitos lógicos, chamados portas.

As portas são: E (AND)

• A porta AND combina dois ou mais sinais de entrada de forma equivalente a um circuito em série, para produzir um único sinal de saída, ou seja, ela produz uma saída 1, se todos os sinais de entrada forem 1; caso qualquer um dos sinais de entrada for 0, a porta AND produzirá um sinal de saída igual a zero.

Eder Santana Freire8

Organização e Arquitetura de Computadores

Figura 2: Porta AND OU (OR)

• A porta OR combina dois ou mais sinais de entrada de forma equivalente a um circuito em paralelo, para produzir um único sinal de saída, ou seja, ela produz uma saída 1, se qualquer um dos sinais de entrada for igual a 1; a porta OR produzirá um sinal de saída igual a zero apenas se todos os sinais de entrada forem 0.

(Parte 1 de 13)

Comentários