A maior rede de estudos do Brasil

Grátis
21 pág.
Introdução à Arquitetura de Computadores

Pré-visualização | Página 1 de 7

Introdução à Arquitetura de Computadores
Conteúdo
1 Capa 1
2 Introdução 2
2.1 O Que é Arquitetura de Computadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Computadores e as Várias Camadas de Abstração . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 Modelo de Von Neumann 4
4 O que é o MIPS? 5
4.1 O Processador MIPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2 A Filosofia do Projeto do MIPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5 Instruções do MIPS 6
5.1 Instruções Aritméticas Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2 Instruções de Operadores Lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.3 Instruções de Uso de memória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.4 Instruções de Controle de Fluxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.5 Instruções de Comparações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.6 Resumo dos Modos de Endereçamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6 Representação das Instruções 9
6.1 As Instruções Tipo R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.2 As Instruções Tipo I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.3 As Instruções Tipo J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7 As Pseudo-Instruções 10
7.1 A Pseudo-Instrução move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.2 A Pseudo-Instrução Load Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8 Suporte à Funções 11
8.1 As Etapas Necessárias para Invocar Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.2 Instruções de Uso de Funções: jal e jr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.3 Funções com Muitas Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.4 Funções Recursivas e Sub-Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
i
ii CONTEÚDO
9 Representação Numérica 13
9.1 Números Naturais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
9.2 Números Inteiros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
9.3 Números Reais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
9.4 Overflow e Underflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
10 As Operações da Unidade Lógica Aritmética 15
10.1 A Adição e Subtração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
10.2 A Multiplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
10.3 Fontes, contribuidores e licenças de texto e imagem . . . . . . . . . . . . . . . . . . . . . . . . . 18
10.3.1 Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
10.3.2 Imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
10.3.3 Licença . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Capítulo 1
Capa
Introdução à Arquitetura de Computadores
1
Capítulo 2
Introdução
2.1 O Que é Arquitetura de Com-
putadores
A Arquitetura de Computadores é o projeto concei-
tual e fundamental da estrutura operacional de um sis-
tema computacional. Ela é o estudo dos requisitos ne-
cessários para que um computador funcione e de como
organizar os diversos componentes para obter melhores
desempenhos.
Como computador entendemos qualquer tipo de dispo-
sitivo capaz de receber uma entrada e que retorna uma
saída após realizar uma série de operações com base nos
valores recebidos e armazenados. Existem vários tipos
de computadores. Uma das formas de classificá-los é por
meio das seguintes categorias:
• Desktop: Computadores de baixo-custo e com de-
sempenho razoável para um usuário “comum”.
• Servidor: Máquinas projetadas para ter um desem-
penho considerado bom para uma aplicação muito
grande e complexa ou então para um número muito
grande de operações mais simples. Alguns servido-
res são simples computadores de Desktop melhora-
dos. Entretanto, existem também aqueles que pos-
suem arquiteturas muito mais sofisticadas que con-
tam com dezenas ou até mesmo centenas de proces-
sadores.
• Sistemas Embarcados: Possuem um uso dedi-
cado à uma única tarefa e normalmente vem em-
butidos em outros aparelhos como celulares, micro-
ondas, elevadores ou veículos. Possuem uma En-
trada/Saída muito simples.
Os princípios estudados em Arquitetura de Computa-
dores são fundamentais para se projetar máquinas real-
mente eficientes.
2.2 Computadores e as Várias Ca-
madas de Abstração
Computadores são aparelhos extremamente complexos.
Para compreender o seu funcionamento, precisamos en-
tender várias camadas de abstração diferente.
A camada mais baixa de todas é aquela formada por tran-
sistores, tensão e corrente elétrica. Quem costuma li-
dar com esta camada são físicos e engenheiros elétricos.
Nesta camada estuda-se o funcionamento de transistores
e circuitos sempre levando em conta as propriedades fí-
sicas da corrente elétrica. Abaixo vemos um desenho re-
presentando um transistor.
Uma camada acima, estão as portas lógicas - todas elas
compostas por transistores. Neste nível estuda-se como
criar estruturas mais complexas combinando-se as diver-
sas portas como AND, OR e NOT para criar estruturas
como multiplexadores, flip-flops e somadores. Neste es-
tágio pode-se usar linguagens como o Verilog ou VHDL
para programar circuitos. Abaixo vemos desenhos que
representam várias portas lógicas:
2
2.2. COMPUTADORES E AS VÁRIAS CAMADAS DE ABSTRAÇÃO 3
Subindo mais um nível de abstração, começamos a lidar
com estruturas mais complexas como registradores e uni-
dades lógicas aritméticas - todas compostas por muitos
flip-flops, somadores e multiplexadores. Vemos como
todas essas estruturas realmente geram as instruções de
cada máquina e como cada instrução funciona. É neste
nível que costuma trabalhar um Arquiteto. Este será
o nível que será abordado ao longo deste Wiki-livro.
Abaixo mostramos a imagem de uma Unidade Lógica
Aritmética - estrutura usada por computadores para re-
alizar cálculos:
Um nível além, estuda-se como combinar as instruções da
camada anterior para realizar comandos mais sofisticados
como as operações da lingüagem C e como coordenar o
funcionamento de um sistema operacional por meio de
interrupções e outros recursos. A imagem abaixo é um
diagrama que representa o Kernel de um Sistema Opera-
cional sendo usado como um meio de comunicação entre
o Software e o Hardware:
CPU Memory Devices
Kernel
Applications
Acima desta camada, está o estudo do funcionamento de
funções de bibliotecas, APIs e a programação de aplica-
tivos e programas de computador simples.E finalmente,
na camada de abstração mais superior está o funciona-
mento de um programa de computador do ponto de vista
do usuário. Como utilizar um aplicativo já criado.
Capítulo 3
Modelo de Von Neumann
Modelo de Von Neumann
O modelo de arquitetura de computadores conhecido
comoModelo de Von Neumann é uma forma de organi-
zação genérica dos componentes de um sistema computa-
cional digital. Esse modelo de arquitetura de computador
digital proposto por Von Neumann está baseado em três
premissas ou características básicas:
a) os dados e as instruções ficam armazenadas no mesmo
espaço de memória;
b) cada espaço de memória possui um endereço, o