Fundamentos de Arquitetura de Computadores

Autor(es): Raul Fernando Weber
Visualizações: 308
Classificação: (0)

Já adotada em várias universidades do país, a obra aborda os aspectos fundamentais da computação, como sistema de numeração, aritmética binária, fundamentos de arquitetura e programação tanto em linguagem binária como em linguagem assembler.São apresentadas quatro arquiteturas básicas e suas diversas variações para que sejam exploradas as capacidades de cada uma. Os conceitos são apresentados de forma prática, com inúmeros exemplos, evitando uma visão exclusivamente teórica.

FORMATOS DISPONíVEIS

eBook

Disponível no modelo assinatura da Minha Biblioteca

17 capítulos

Formato Comprar item avulso Adicionar à Pasta

Capítulo 1 - Bases numéricas

PDF Criptografado

capítulo

1

bases numéricas

Os números são representados no sistema decimal, mas os computadores utilizam o sistema binário. Embora empreguem símbolos distintos, os dois sistemas formam números a partir das mesmas regras e podem ser facilmente convertidos entre si. De fato, os números podem ser representados em qualquer base maior ou igual a dois, e essas representações podem ser facilmente convertidas de uma frase para outra. Os principais métodos de conversão, baseados em aritmética decimal, são apresentados neste capítulo.

■ ■

2

Fundamentos de Arquitetura de Computadores

introdução

1.1

Quando o homem aprendeu a contar, ele foi obrigado a desenvolver símbolos que representassem as quantidades e grandezas que ele queria utilizar. Esses símbolos, os algarismos, constituem a base dos sistemas de numeração.

Nos tempos pré-históricos o homem utilizou uma correspondência um para um entre os objetos a serem contados e os seus dedos, ou então para pedrinhas ou mesmo para “riscos”. Um sistema deste tipo seria um “sistema unário” (com um único símbolo):

 

Capítulo 2 - Sistemas de numeração em computação

PDF Criptografado

capítulo

2

sistemas de numeração em computação

Utilizando a base binária para representar números, e limitadas ainda pelo uso de somente dois símbolos distintos, as operações aritméticas básicas sofreram algumas adaptações nos computadores. A soma permanece a mesma, utilizando a mesma metodologia decimal, mas para a subtração e a consequente representação de quantidades negativas utiliza-se a representação em complemento de dois. Uma representação em sinal e magnitude, tal como usada no sistema decimal, é possível e é utilizada, mas a representação interna dos números nos computadores atuais é baseada na representação em complemento.

■ ■

12

2.1

Fundamentos de Arquitetura de Computadores

introdução

Em todas as fórmulas usadas a seguir, ‘B’ representa a base do sistema de numeração, ‘n’, a quantidade de dígitos disponíveis para representar os números, e ‘a’, ‘b’ e ‘c’ indicam números quaisquer. A fórmula utilizada para representar um número inteiro

 

Capítulo 3 Componentes do computador e modelo de Von Neumann

PDF Criptografado

capítulo

3

componentes do computador e modelo de Von Neumann

■ ■

Os primeiros computadores eletromecânicos e eletrônicos não seguiam um modelo comum. Na primeira geração, cada computador seguia uma concepção e um projeto distintos dos demais. Esta diversidade, entretanto, convergiu para um modelo comum: o modelo de

Von Neumann, que define a organização e os elementos básicos dos computadores.

Embora outros modelos sejam possíveis, o modelo de Von Neumann foi maciçamente adotado e está presente na maioria dos computadores atuais.

34

Fundamentos de Arquitetura de Computadores

3.1

breve histórico

Máquinas de calcular e computadores vêm sendo inventados e desenvolvidos ao longo da história da humanidade. Na Tabela 3.1 estão reunidas algumas das principais tentativas de valor histórico no âmbito computacional. Uma das mais importantes investidas na área computacional, e que merece registro histórico, foi a do inglês Charles Babbage. Ele projetou dois computadores: Difference Engine (“Dispositivo Diferencial”), iniciado em 1823, e o Analytical Engine (“Dispositivo Analítico”), concebido em 1834, tendo ambos representado grandes avanços científicos em sua época, embora nenhum deles tenha sido concluído. O objetivo do

 

Capítulo 4 - Computador Neander

PDF Criptografado

capítulo

4

computador Neander

■ ■

O computador hipotético Neander foi criado com intenções didáticas para permitir exercitar os conceitos básicos da arquitetura de Von

Neumann. Ele foi inspirado no computador

IAS, projetado por John Von Neumann, e visa facilitar ao aprendizado da programação em linguagem binária. Embora com dimensões reduzidas e muito primitivo para uso prático, ele é tão simples que você, sem muito esforço, pode programá-lo e projetá-lo.

Experimente!

60

4.1

Fundamentos de Arquitetura de Computadores

características

O computador Neander1 tem as seguintes características:

■ largura de dados e endereços de 8 bits

■ dados representados em complemento de dois

■ um acumulador de 8 bits (AC)

■ um apontador de programa de 8 bits (PC)

■ um registrador de estado com 2 códigos de condição: negativo (N) e zero (Z)

4.2

modos de endereçamento

O Neander só possui um modo de endereçamento: o modo direto (muitas vezes também chamado de absoluto). Neste modo de endereçamento (Figura 4.1), a palavra que segue o código da instrução contém, nas instruções de manipulação de dados, o endereço de memória do operando.

 

Capítulo 5 - Computador Ahmes

PDF Criptografado

capítulo

5

computador Ahmes

O computador hipotético Ahmes, assim como os demais deste livro, foi criado com intenções didáticas para possibilitar a implementação de rotinas aritméticas simples (como adição e subtração) e a programação de rotinas relativamente complexas (como multiplicação e divisão). É compatível com o Neander, pois executa corretamente todos os programas escritos para ele, mas apresenta instruções extras, especialmente concebidas para facilitar a execução das quatro operações aritméticas básicas. O Ahmes também será utilizado no

Capítulo 6 para exemplificar alguns algoritmos de multiplicação e divisão.

■ ■

68

5.1

Fundamentos de Arquitetura de Computadores

características

O computador Ahmes1 tem as seguintes características:

■ largura de dados e endereços de 8 bits.

■ dados representados em complemento de dois.

■ um acumulador de 8 bits (AC), onde é armazenado o resultado das operações.

 

Capítulo 6 - Multiplicação e divisão

PDF Criptografado

capítulo

6

multiplicação e divisão

Soma e subtração são operações simples de serem implementadas em qualquer computador, mas o mesmo não ocorre com a multiplicação e a divisão. Embora utilizem os mesmos algoritmos de multiplicação e divisão decimais, os equivalentes binários devem ser adaptados para a arquitetura dos computadores. Na verdade, o computador Ahmes foi projetado justamente para facilitar esta adaptação, inclusive com instruções adicionais para permitir uma programação direta destes algoritmos. Se você duvida disso, experimente codificar estes mesmos algoritmos para o Neander!

■ ■

78

6.1

Fundamentos de Arquitetura de Computadores

multiplicação binária (números inteiros positivos)

Em qualquer sistema de numeração, a multiplicação é uma forma resumida da soma repetitiva de uma parcela consigo mesma (o multiplicando) um determinado número de vezes

(dado pelo multiplicador). Assim, a multiplicação ‘a × b’ significa ‘a + a + a + ... + a’, onde a parcela ‘a’ se repete ‘b’ vezes. A soma repetitiva levaria muito tempo para ser realizada, especialmente para números grandes. Assim, desenvolveu-se (para o sistema decimal) um método que permitisse realizar a multiplicação de forma mais rápida. Cada dígito do multiplicador multiplica individualmente o multiplicando e depois as parcelas intermediárias são somadas.

 

Capítulo 7 - Números em ponto fixo e ponto flutuante

PDF Criptografado

capítulo

7

números em ponto fixo e ponto flutuante

É trivial para um computador atual tratar e operar com números inteiros. Entretanto, em muitas aplicações do dia a dia é necessário realizar operações com quantidades fracionárias, ou representar valores muito grandes ou muito pequenos. Para estas situações deve-se representar números em ponto fixo ou em ponto flutuante. De fato, a maioria dos computadores atuais já possui internamente uma (ou mais) unidade de ponto flutuante, para operar com números em notação científica.

■ ■

104

Fundamentos de Arquitetura de Computadores

números em ponto fixo

7.1

Observação inicial: “ponto fixo” e “ponto flutuante” são traduções diretas dos termos ingleses

“fixed point” e “floating point”, que se referem ao símbolo utilizado nos países de língua inglesa para representar a vírgula decimal. As traduções corretas seriam, respectivamente, “vírgula fixa” e

“vírgula flutuante”. Entretanto, devido ao fato de os termos “ponto fixo” e “ponto flutuante” já serem de uso corrente na literatura especializada nacional, eles serão empregados aqui também.

 

Capítulo 8 - Codificações BCD, numérica e alfanumérica

PDF Criptografado

capítulo

8

codificações BCD, numérica e alfanumérica

Além de representar e manipular números, os computadores também processam informação não numérica. Com esse propósito diversos códigos e codificações foram desenvolvidos ao longo da história da computação. Códigos foram concebidos com os mais variados objetivos, desde a manipulação direta de dígitos decimais (como os códigos BCD) até a possibilidade de detectar erros (por exemplo, códigos de paridade), inclusive corrigindo automaticamente estes erros (exemplificados por meio de códigos de

Hamming). Alguns deles são analisados com ênfase na detecção e na correção de erros.

■ ■

116

Fundamentos de Arquitetura de Computadores

8.1

números e aritmética BCD

Os computadores digitais atuais trabalham com números binários, uma vez que isso facilita enormemente a sua construção. No dia a dia, porém, o sistema decimal é muito utilizado

(ainda!), o que obriga a existência de rotinas de conversão de números decimais para binário e vice-versa (estas rotinas existem em todos os computadores atuais). Nos computadores mais antigos, entretanto, procurou-se desenvolver uma aritmética binária que operasse com dígitos decimais, de forma a facilitar estas rotinas de conversão. Neste sistema, em desuso nos dias de hoje, um grupo codificado de 4 bits é empregado para representar cada um dos dez dígitos decimais, constituindo a base do sistema BCD (Binary Coded Decimal – Decimal

 

Capítulo 9 - Elementos básicos de organização

PDF Criptografado

capítulo

9

elementos básicos de organização

Um computador pode ser projetado ou construído a partir de uma série de elementos básicos. Este capítulo apresenta alguns destes elementos: portas lógicas que implementam equações booleanas, multiplexadores e decodificadores que selecionam bits, flip-flops que armazenam bits individuais, registradores que armazenam grupos de vários bits, unidades lógicas e aritméticas que realizam operações binárias simples e memórias que armazenam programas e dados.

■ ■

134

9.1

Fundamentos de Arquitetura de Computadores

introdução

Um computador pode ser projetado e/ou descrito em diversos níveis de abstração. Assim, é possível descrever inteiramente um computador por meio de equações booleanas ou de seu equivalente em portas lógicas AND, OR e NOT. Devido à complexidade dos computadores atuais, tal nível de abstração não é prático, por envolver milhares de equações. Uma das soluções empregadas para diminuir o número de elementos a serem manipulados envolve o uso de níveis de abstração mais elevados, como o nível de transferência entre registradores (em inglês Register Transfer, ou RT). Este capítulo aborda os principais elementos utilizados nos níveis de portas lógicas e de transferência entre registradores.

 

Capítulo 10 - Organização do Neander

PDF Criptografado

capítulo

10

organização do Neander

A arquitetura simples do Neander permite um projeto rápido e direto, sem precisar recorrer a técnicas ou metodologias sofisticadas de projeto. Usando os blocos básicos discutidos no capítulo 9, é apresentado um projeto top-down de uma organização para o Neander.

Este projeto é discutido passo a passo, tanto para a parte operativa (fluxo de dados) como para a unidade de controle (fluxo de controle).

■ ■

160

Fundamentos de Arquitetura de Computadores

10.1

elementos necessários

Para definir uma organização para o computador Neander, é preciso inicialmente definir os elementos necessários. Esses dados podem ser retirados das próprias características do Neander:

■ largura de dados e endereços de 8 bits

■ dados representados em complemento de dois

■ um acumulador de 8 bits (AC)

■ um apontador de programa de 8 bits (PC)

■ um registrador de estado com 2 códigos de condição: negativo (N) e zero (Z)

 

Capítulo 11 - Computador Ramses

PDF Criptografado

capítulo

11

computador Ramses

■ ■

Mais complexo do que o Neander, o computador

Ramses apresenta recursos adicionais, tais como vários registradores no lugar de um único acumulador e diversos modos de endereçamento em vez de uma única maneira de endereçar uma posição de memória. Estes recursos adicionais permitem manipular eficientemente estruturas de dados mais complexas, como vetores, matrizes, l istas e ponteiros. Como resultado, programas escritos para o Ramses executam mais rapidamente do que programas escritos para o

Neander, apesar da compatibilidade entre estas duas arquiteturas. A arquitetura do Ramses também permite o uso de sub-rotinas.

190

Fundamentos de Arquitetura de Computadores

O computador hipotético Ramses possui todas as características do computador Neander, além de incorporar recursos que visam a facilitar sua programação, como:

■ quatro modos de endereçamento

■ dois registradores de uso geral

■ um registrador de índice

 

Capítulo 12 - Computador Cesar

PDF Criptografado

capítulo

12

computador Cesar

Fortemente inspirado na família de minicomputadores PDP-11 da Digital Equipment

Corporation (DEC) da década de 1970, a arquitetura hipotética Cesar, de 16 bits, apresenta todas as características das arquiteturas atuais: oito registradores de uso geral, oito modos de endereçamento e um conjunto de instruções complexo, além de gerenciar uma pilha em memória para sub-rotinas e passagem de parâmetros. Além disso, o

Cesar possui entrada e saída rudimentares, para que os primeiros conceitos de tratamento de periféricos possam ser exercitados.

■ ■

 

Capítulo 13 - Microprocessadores Intel

PDF Criptografado

capítulo

12

computador Cesar

Fortemente inspirado na família de minicomputadores PDP-11 da Digital Equipment

Corporation (DEC) da década de 1970, a arquitetura hipotética Cesar, de 16 bits, apresenta todas as características das arquiteturas atuais: oito registradores de uso geral, oito modos de endereçamento e um conjunto de instruções complexo, além de gerenciar uma pilha em memória para sub-rotinas e passagem de parâmetros. Além disso, o

Cesar possui entrada e saída rudimentares, para que os primeiros conceitos de tratamento de periféricos possam ser exercitados.

■ ■

220

Fundamentos de Arquitetura de Computadores

O computador hipotético Cesar é uma simplificação de uma das arquiteturas mais populares para processadores de pequeno porte, o PDP-11, que serviu de inspiração para o projeto de microprocessadores de 4, 8 e 16 bits. O Cesar possui todas as características básicas do

PDP-11, de forma a ilustrar sua potencialidade de processamento compreendendo:

 

Capítulo 14 - Linguagem Assembler

PDF Criptografado

capítulo

14

linguagem Assembler

■ ■

Um montador (ou assembler) é uma ferramenta indispensável para o desenvolvimento de programas que devam acessar os recursos de arquitetura de um processador. Um montador apresenta mais facilidades de uso do que uma linguagem simbólica simples, como as utilizadas para os computadores Ramses e

Cesar. Algumas dessas facilidades serão exemplificadas por meio do montador

Microsoft Macro Assembler (Masm), mas existem também em praticamente todos os outros montadores.

298

Fundamentos de Arquitetura de Computadores

linguagem de montagem

14.1

As principais diferenças entre as linguagens simbólicas, como as usadas para os processadores hipotéticos Ramses e Cesar, e um montador comercial, como o Masm, são:

■ possibilidade de declaração e uso de labels. Labels são usados para designar tanto variáveis como instruções. Um label corresponde a uma posição de memória e substitui um endereço, seja este um endereço de operando ou um endereço de desvio.

 

Capítulo 15 - Noções de entrada e saída

PDF Criptografado

capítulo

15

noções de entrada e saída

Dos três componentes básicos do modelo de

Von Neumann (UCP, memória e entrada e saída), são os periféricos de um computador que apresentam a maior diversidade e a maior diferenciação operacional. Este capítulo apresenta os conceitos básicos para a compreensão de como o sistema de entrada e saída (E/S) é tratado pela unidade central de processamento (UCP). São discutidos três métodos de comunicação com periféricos: entrada e saída programada através de teste de estado, interrupção e acesso direto à memória.

■ ■

310

15.1

Fundamentos de Arquitetura de Computadores

introdução

Englobam-se sob a denominação de entrada e saída (E/S) todas as atividades de troca de informações entre o computador e o meio externo. Basicamente, o computador utiliza atividades de entrada/saída com as seguintes finalidades:

■ troca de informações com os usuários humanos do sistema, utilizando, para a entrada de informações ou para a exibição, os chamados dispositivos periféricos, que podem ser teclados, vídeos, mouses, impressoras, leitoras de cartões, etc.

 

Capítulo 16 - Software básico

PDF Criptografado

capítulo

16

software básico

Denomina-se software básico os programas essenciais ao funcionamento de um computador, que se comunicam diretamente com a arquitetura da máquina. O melhor exemplo de um software básico é o sistema operacional, que permite a utilização da máquina sem que programador ou usuário precisem conhecer detalhes da arquitetura. Este capítulo apresenta noções elementares sobre sistemas operacionais, escalonamento de processos e redes de computadores.

■ ■

318

16.1

Fundamentos de Arquitetura de Computadores

introdução

Emprega-se comumente a palavra software para designar o conjunto de programas utilizados com um sistema de hardware para facilitar seu uso por programadores e operadores do sistema. Entretanto, esta acepção do termo exclui programas de aplicações, incluindo apenas programas que fornecem funções gerais independentes dos detalhes de uma aplicação (software do sistema ou software básico). Na prática, o que o usuário enxerga facilmente deste grupo (embora ele seja mais extenso) são as linguagens disponíveis para programação, como

 

Capítulo 17 - Outras arquiteturas

PDF Criptografado

capítulo

17

outras arquiteturas

Teoricamente, não há limites sobre como a arquitetura de um computador deve ser definida.

Idealmente, infinitas arquiteturas distintas são possíveis e válidas. Para despertar a imaginação do leitor, são apresentados aqui vários exemplos simples de arquiteturas hipotéticas, todos derivados das arquiteturas apresentadas ao longo do livro. Use estes exemplos como base para definir a sua própria arquitetura!

■ ■

342

Fundamentos de Arquitetura de Computadores

17.1

introdução

Durante o desenvolvimento das arquiteturas utilizadas neste livro foram criadas várias arquiteturas hipotéticas, todas com o objetivo didático de analisar a efetividade de um certo conjunto de instruções e modos de endereçamento. Essas arquiteturas são descritas brevemente neste capítulo, para o leitor interessado.

17.2

Cromag

Arquitetura de 8 bits, como o Neander, mas com modos de endereçamento direto e indireto.

 

Detalhes do Produto

Livro Impresso
Book
Capítulos

Formato
PDF
Criptografado
Sim
SKU
BPP0000266719
ISBN
9788540701434
Tamanho do arquivo
15 MB
Impressão
Desabilitada
Cópia
Desabilitada
Vocalização de texto
Não
Formato
PDF
Criptografado
Sim
Impressão
Desabilitada
Cópia
Desabilitada
Vocalização de texto
Não
SKU
Em metadados
ISBN
Em metadados
Tamanho do arquivo
Em metadados