Académique Documents
Professionnel Documents
Culture Documents
Arquitetura e
Organização de
Computadores
2º Período
Unidade 1 a 3
SABE – Sistema Aberto de Educação
Mantida pela
Fundação de Ensino e Pesquisa do Sul de Minas - FEPESMIG
Varginha/MG
GESTOR
Prof. Ms. Tomás Dias Sant’ Ana
Supervisor Técnico
Prof. Ms. Wanderson Gomes de Souza
Design/diagramação
Prof. César dos Santos Pereira
Autor
JOSÉ EDUARDO SILVA GOMES
Técnico em Eletrônica (1984) pela ETEFMC, Santa Rita do Sapucaí – MG, Bacharel em
Administração de Empresas (1992) pela FACECA, Varginha – MG, Bacharel em Ciência da
Computação (2002) pelo UNIS, Varginha – MG, Pós-Graduação em Redes de
Computadores (2003) pelo UNIS e mestrando em Engenharia Elétrica pela UNIFEI
(Universidade Federal de Itajubá). Atua também como Supervisor Técnico do Departamento
de Engenharia da EPTV Sul de Minas, emissora de televisão afiliada a Rede Globo e é
professor das instituições UNIS e FACECA nos cursos de Sistemas de Informação, Ciência
da Computação, Engenharia de Produção.
Apresentação .......................................................................................................... 11
1. INTRODUÇÃO ..................................................................................................... 12
1.1. Conceitos Básicos ...................................................................................... 12
1.2. Arquitetura X Organização ......................................................................... 12
1.3. Evolução Histórica das Arquiteturas de Computadores ............................. 13
1.3.1. Geração Zero (1642 - 1945) – Mecânicos e eletromecânicos............. 14
1.3.2. As Máquinas de Primeira Geração (1945 - 1955) – Válvulas .................. 16
1.3.3. As Máquinas de Segunda Geração (1955 - 1965) – Transistores .......... 17
1.3.4. As Máquinas de Terceira Geração (1965 - 1980) – Circuitos Integrados 18
1.3.5. As Máquinas de Quarta Geração (1980 - 1990) – Circuitos LSI.............. 19
1.3.6. As Máquinas de Quinta Geração (1990 - dias atuais) – Circuitos ULSI .. 20
1.3.7. O modelo de von Neumann ..................................................................... 22
1.4. Principais Componentes de um Computador................................................ 23
1.4.1. A Unidade Central de Processamento (CPU) ..................................... 23
1.4.2. Barramentos........................................................................................ 25
1.4.3. Clock ................................................................................................... 25
1.4.4. Memória Principal................................................................................ 26
1.4.5. Memória Cache ................................................................................... 26
1.4.6. Memória Secundária ........................................................................... 27
1.4.7. Dispositivos de Entrada e Saída (E/S ou I/O)...................................... 27
2. SISTEMAS DIGITAIS ........................................................................................... 29
2.1. O Bit, a Palavra, o Caractere, o Nibble e o Byte......................................... 29
2.2. Sistemas Numéricos................................................................................... 30
2.2.1. Sistema Decimal ................................................................................. 30
2.2.2. Sistema Binário ................................................................................... 31
2.2.2.1. Conversão de Binário em Decimal.................................................... 31
2.2.2.2. Conversão de Decimal em Binário.................................................... 32
Exercícios: Converta os valores para as bases indicadas. ............................ 33
2.2.3. Sistema Octal ...................................................................................... 33
10
Prezado(a) aluno(a):
11
12
13
14
15
16
17
18
Ainda mais avançados que os circuitos integrados, eram os circuitos LSI (Large
Scale of Integration) com mil transistores por "chip" e VLSI (Very Large Scale of
Integration) com cem mil transistores por "chip". O uso desses circuitos na
construção de processadores representou outro salto na história dos computadores.
As linguagens mais utilizadas eram a PROLOG, FP, UNIX e o início da utilização da
linguagem C. Logo em 1981, nasce o microprocessador 286 utilizando slots ISA de
16 bits e memórias de 30 pinos. Quatro anos mais tarde, era a vez do 386, com
maior velocidade de processamento. Ao contrário do 286, era possível rodar o
Windows 3.11 no 386. Introduziram-se, no mercado, as placas VGA e suporte a 256
cores. Em 1989, eram lançados os primeiros 486 DX, eles vinham com memórias de
72 pinos (muito mais rápidas que as antigas de 30 pinos) e possuíam slots PCI de
32 bits - o que representava o dobro da velocidade dos slots ISA.
Desde o início da década de 80, os preços haviam caído de tal maneira que
começava ser possível a uma pessoa ter o seu próprio computador. Foi cunhado o
conceito de "PC", ou "Personal Computer", e os computadores pessoais passaram a
ser utilizados de uma maneira relativamente distinta dos grandes computadores de
então.
O primeiro microcomputador da história foi o Altair 8800, que usava o chip Intel
8088, tornou-se o padrão mundial da época para os microcomputadores de uso
pessoal, abrindo uma nova era na história da informática.
Sthephen Wozniak e Steve Jobs criaram, em 1976, uma pequena empresa, a Apple,
quando construíram, numa garagem de fundo de quintal, o Apple I. Um ano depois,
com um novo e melhor projeto, surge o Apple II, primeiro microcomputador com
19
20
21
Esse modelo inicial evoluiu para uma estrutura em barramento (Figura 22), que é a
base dos computadores modernos. Nessa estrutura, as memórias de dados e de
programa são fundidas em uma memória única, e as comunicações entre elementos
são efetuadas através de uma via comum de alta velocidade.
22
23
24
1.4.3. Clock
25
Imagine a memória RAM como uma mesa do outro lado da sala. Quando
você vai pegar uma informação lá, por exemplo, um número de telefone,
você vai anotá-lo para trazê-lo para sua mesa. Por quê? Se você precisar
do mesmo número de telefone outra vez, não vai precisar se levantar e
buscá-lo na outra mesa, só precisa ler no papel perto de você.
26
27
28
Sufixo Quantidade
Kilo (K) 1 Kilobytes ou 1 KB = 1024 = 210
Mega (M) 1 Megabytes ou 1 MB = 1.048.576 = 220
Giga (G) 1 Gigabytes ou 1 GB = 1.073.741.824 = 230
Tera (T) 1 Terabytes ou 1 TB = 1.099.511.627.776 = 240
Peta (P) 1 Petabytes ou 1 PB = 1.125.899.906.843.624 = 250
Exa (E) 1 Exabytes ou 1 EB = 1.152.921.504.607.870.976 = 260
Tabela 1 – Tabela de Medidas.
29
30
Como o próprio nome já indica tem base 2, pois utiliza apenas dois símbolos ou
algarismos: 0 e 1. Também vale ressaltar que, em processamentos digitais, o dígito
1 também é conhecido por nível lógico 1, nível lógico alto, ligado, verdadeiro e
energizado. Já o dígito 0 pode ser nível lógico 0, nível lógico baixo, desligado, falso
e desenergizado.
Assim, a cada posição de cada algarismo corresponde uma potência de 2, como foi
exposto para número decimal, ao qual correspondia uma potência de 10.
31
54 = ?(2)
54 = 1 1 0 1 1 0 (2)
32
33
17(8) = ?
17(8) → 001 111(2) → 1x23 + 1x22 + 1x21 + 1x20 → 8 + 4 + 2 + 1 = 15.
22 = ?(8)
22 → 10110(2) → 10 110(2) → 26(8),ou seja, 22 = 26(8).
O sistema hexadecimal (hexa) foi criado com o mesmo propósito do sistema octal,
para minimizar a representação de um número binário que é o utilizado em
processamento. Tanto os números em hexa como em octal são os meios de
manipulação do homem, porém existirão sempre conversores internos à máquina
que os converta em binário, com o qual a máquina trabalha.
Analogamente, se considerarmos quatro dígitos ou bits binários, o maior número que
pode ser expresso por esses quatro dígitos é 1111 ou em decimal 15, da mesma
forma que 15 é o algarismo mais significativo do sistema hexadecimal, portanto com
34
35
TABELA DE CONVERSÃ0
Decimal Binário Octal Hexadecimal
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
Tabela 2 – Conversão de Base Numérica.
36
Uma inversora é uma porta com apenas um sinal de entrada e um sinal de saída, o
estado da saída é sempre o oposto da entrada.
Simbologia:
Tabela Verdade
A Ā
0 1
1 0
Tabela 3 – Porta NOT.
A porta OR tem dois ou mais sinais de entrada (padrão 2 ou 3), mas somente um
sinal de saída. Se qualquer sinal de entrada for alto (nível 1 - fechado), o sinal de
saída será alto.
Simbologia:
37
A porta AND tem dois ou mais sinais de entrada (padrão 2 ou 3), mas somente um
sinal de saída. Se qualquer sinal de entrada for baixo (nível 0 - aberto), o sinal de
saída será baixo.
Simbologia:
Tabela Verdade
A B S
0 0 0
0 1 0
1 0 0
1 1 1
Tabela 5 – Porta AND.
38
As portas NOR apresentam as mesmas características das portas OR, com relação
à entrada e saída. Sua diferença está no fato de ter associado a sua saída uma
porta NOT, o que inverte o resultado de S, ou seja, só teremos nível lógico 1 na
saída quando todas as entradas forem de nível 0.
Simbologia:
Tabela Verdade
A B S
0 0 1
0 1 0
1 0 0
1 1 0
Tabela 6 – Porta NOR.
De maneira análoga às portas NOR, as portas NAND nada mais são que portas
AND onde foram acrescentadas portas NOT em sua saída. Portanto, só obteremos
nível 0 quando todas as suas entradas forem de nível 1.
39
Tabela Verdade
A B S
0 0 1
0 1 1
1 0 1
1 1 0
Tabela 7 – Porta NAND.
Porta AND
Porta OR
Uma porta XOR reconhece apenas quando houver um número ímpar de entradas
em nível alto.
40
Simbologia:
Tabela Verdade
A B S
0 0 0
0 1 1
1 0 1
1 1 0
Tabela 8 – Porta XOR.
Como nas demais portas, para obtermos uma porta XNOR, basta adicionarmos ao
final de uma porta XOR uma porta inversora, o que provocará a inversão dos
resultados na saída.
Simbologia:
41
Exercícios:
Consultar o livro Microcomputadores e Microprocessadores, do autor
Albert Paul Alvino. Fazer os problemas 2-1 a 2-25 e os problemas 3-1 a
3-34 do livro.
O que se segue é uma discussão das relações básicas em álgebra booleana. Muitas
destas relações são as mesmas da álgebra comum, o que facilita lembrá-las.
42
A .0 = 0 A.A =A A.A =0
A +B= A.B A .B = A + B A + A .B = A
A . ( A + B) = A A + A .B = A + B A . ( A + B) = A . B
A +B=B + A A .B = A B AB=B A
A + (B + C) = ( A + B) + C A (B C) = ( A B) C A (B + C) = A B + A C
A + B C = ( A + B) + ( A + C) ⇒ Vale lembrar que não se trata de álgebra comum.
Tabela 10 – Regras da Álgebra Booleana.
X = A + B . C ⊕ ( A + B)
Para A = 1 , B = 0 e C = 1:
1º - A + B = 1 + 0 = 1 = 0 ⇒ Resolvemos primeiro o parêntese
2º - B . C = 0 . 1 = 0
3º - A + B . C = 1 + 0 = 1
4º - ( A + B . C) ⊕ ( A + B) = 1 ⊕ 0 = 1
43
c) W = ( A + B) . ( C + D) + ( A . C)
F = A .B.C + A .B. C + A .C
A . B . C + A . B . C + A . C ⇒ = A . B . (C + C ) + A . C ⇒
⇒ = A .B .1+ A . C ⇒ F = A .B + A . C
Exercícios:
a) Desenhar o circuito digital simplificado para:
a.1) S = A B C D + A B C D + A B C D
a.2) S = A B C D + A B C D + A B C D + A B C D
44
45
S = A .B + A .C + A . B ou S = A .B + B.C + A . B
Um mapa de Karnaugh para 4 variáveis (A, B, C e D) seria da seguinte forma:
AB
CD 00 01 11 10
00
01
11
10
46
47
Dec. A B C D a b c d e f g LED
0 0 0 0 0 1 1 1 1 1 1 0
1 0 0 0 1 0 1 1 0 0 0 0
2 0 0 1 0 1 1 0 1 1 0 1
3 0 0 1 1 1 1 1 1 0 0 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
Obs:
1) Os números que não estão sendo utilizados na codificação ABCD,
não interferem no resultado, ou seja, são condições irrelevantes
(representados no mapa de Karnaugh por um “X”). Tais condições
de irrelevância devem ser utilizadas como sendo nível lógico 0 ou 1,
o que irá facilitar nas simplificações.
2) Cada segmento deve ser considerado como uma saída individual do
nosso circuito.
48
Exercícios:
No Ambiente Virtual de Aprendizagem, na Midiateca, você vai
encontrar o arquivo ExercSisDig.doc com uma lista de exercícios para
aplicação de Álgebra Booleana e Mapa de Karnaugh.
2.5. Memórias
Existem 2 tipos de memórias:
1. Memória de Massa.
2. Memória Semicondutora.
Os microprocessadores usam dispositivos semicondutores para armazenar
programas e dados. Os mais utilizados são:
• RAM (Random Access Memory): memória de acesso aleatório.
• ROM (Read Only Memory): memória somente de leitura.
Para expandir o espaço de armazenamento de dados, os sistemas
microprocessados usam alguns dispositivos de armazenamento de massa, tais
como:
• discos flexíveis (disquetes);
• discos rígidos (HDs);
• fitas magnéticas;
• disco Óptico (CD, DVD).
49
50
SRAM (Static RAM): Existe um outro tipo de memória muito mais rápida que a
memória dinâmica. Esse tipo de memória – chamada memória estática e
geralmente abreviada para SRAM – utiliza, em vez de capacitores, circuitos
52
A principal desvantagem das DRAMs é o fato de que elas não são tão rápidas
quando as SRAMs. A principal vantagem está no baixo custo por bit, tornando-as
economicamente atrativas.
Com base na situação descrita (custo x velocidade), a solução para esse problema
foi a introdução de um pequeno arranjo de memória local, chamado de memória
cache, que utiliza a memória rápida SRAM. Para manter o custo do sistema
razoável, o tamanho do cache é mantido relativamente baixo em relação à memória
principal (DRAM). Memórias cache são utilizadas como um local de armazenamento
temporário que pode ser utilizado pela CPU como se fosse a memória do sistema.
53
54
55
56
57
58
Mnemônicos
LDA, ADD, SUB, OUT e HLT são o conjunto de instruções do SAP-1. Instruções
abreviadas como estas são chamadas mnemônicos (auxílios à memória).
Mnemônicos são conhecidos no trabalho dos computadores, porque eles nos
lembram da operação que ocorrerá quando a instrução for executada. A Tabela 11
resume o conjunto de instruções do SAP-1.
Mnemônicos Operação
LDA Carregue os dados da RAM no acumulador.
ADD Some os dados da RAM com o acumulador.
SUB Subtraia os dados da RAM do acumulador.
OUT Carregue os dados do acumulador no registrador de saída.
HLT Pare o processamento.
Tabela 11 – Conjunto de Instruções do SAP-1.
Endereço Mnemônicos
0H LDA 9H
1H ADD AH
2H ADD BH
3H SUB CH
4H OUT
5H HLT
59
60
Para carregar palavras de dados e instruções da memória do SAP-1, temos que usar
alguma espécie de código que o computador possa interpretar. A Tabela 12 mostra
o código usado no SAP-1. O número 0000 significa LDA, 0001 significa ADD, 0010
significa SUB, 1110 significa OUT e 1111 significa HLT. Em virtude de este código
dizer ao computador que operação executar, ele é chamado código de operação (op
code).
Mnemônicos Código op
LDA 0000
ADD 0001
SUB 0010
OUT 1110
HLT 1111
Tabela 12 – Códigos de Operação do SAP-1.
61
62
Solução:
O primeiro passo é converter os números para hexadecimal:
17 - 12 + 5 + 9 ⇒ 11H - CH + 5H + 9H
Análise temporal:
Instrução LDA EH
T1 → Ep = 1 ; Lm = 0 ⇒ REM = 0H
T2 → Cp = 1 ⇒ PC = 1H
T3 → CE = 0 ; Li = 0 ⇒ RI = LDA EH
T4 → Ei = 0 ; Lm = 0 ⇒ REM = EH
T5 → CE = 0 ; La = 0 ⇒ A = 11H
T6 → NOP
Instrução SUB DH
T1 → Ep = 1 ; Lm = 0 ⇒ REM = 1H
T2 → Cp = 1 ⇒ PC = 2H
T3 → CE = 0 ; Li = 0 ⇒ RI = SUB DH
T4 → Ei = 0 ; Lm = 0 ⇒ REM = DH
T5 → CE = 0 ; Lb = 0 ⇒ B = 0CH
T6 → SU = 1 ; Eu = 1 ; La = 0 ⇒ A = 05H
Instrução ADD CH
T1 → Ep = 1 ; Lm = 0 ⇒ REM = 2H
T2 → Cp = 1 ⇒ PC = 3H
64
Instrução ADD BH
T1 → Ep = 1 ; Lm = 0 ⇒ REM = 3H
T2 → Cp = 1 ⇒ PC = 4H
T3 → CE = 0 ; Li = 0 ⇒ RI = ADD BH
T4 → Ei = 0 ; Lm = 0 ⇒ REM = BH
T5 → CE = 0 ; Lb = 0 ⇒ B = 09H
T6 → SU = 0 ; Eu = 1 ; La = 0 ⇒ A = 13H
Instrução OUT
T1 → Ep = 1 ; Lm = 0 ⇒ REM = 4H
T2 → Cp = 1 ⇒ PC = 5H
T3 → CE = 0 ; Li = 0 ⇒ RI = OUT
T4 → EA = 1 ; LO = 0 ⇒ RS = 13H
T5 → NOP
T6 → NOP
Instrução HLT
T1 → Ep = 1 ; Lm = 0 ⇒ REM = 5H
T2 → Cp = 1 ⇒ PC = 6H
T3 → CE = 0 ; Li = 0 ⇒ RI = HLT
T4 → NOP
T5 → NOP
T6 → NOP
65
66
Exercícios:
No Ambiente Virtual de Aprendizagem, na Midiateca, você vai
encontrar o arquivo ExercSAP1.doc com uma lista de exercícios sobre
o microprocessador SAP-1.
67
68
69
LDA e STA - LDA tem o mesmo significado de antes, carregar o acumulador com
o dado endereçado na memória. A única diferença está no fato de termos de
especificar um endereço maior de memória. Para se distinguir as diferentes
partes de uma instrução, o mnemônico é chamado de código de operação e o
restante da instrução é conhecido como operando.
STA (Store Accumulator) é um mnemônico para armazenar o acumulador. Todas
as instruções STA necessitam de um endereço.
MVI – (Move Immediate) é o mnemônico para mova imediato. Esta instrução diz
para o computador carregar um registrador indicado com o byte que sucede
imediatamente o código de operação.
Você pode usar a instrução MVI com os registradores A, B e C. Os formatos
destas instruções são:
MVl A,byte MVI B,byte
MVI C,byte
70
71
Se:
B = 56H e C = 8AH,
então a execução das instruções INR B e DCR C resultam em:
B = 57H e C = 89H.
72
73
Os flags de Zero (Z) e de Sinal (S) são alterados todas as vezes que se
utiliza uma instrução que os afete, vide Tabela 13 (Conjunto de Instruções
do SAP-2).
JNZ (condicional) – significa saltar se não zero (Jump if Not Zero). Ela manda o
microprocessador saltar para o endereço designado apenas quando o flag de
zero estiver zerado (Z=0), quando o flag zero estiver setado (Z=1), não haverá o
salto.
74
ANA – (AND Acumulador) significa fazer uma operação AND com o Acumulador
juntamente com o conteúdo de um registrador, o qual deverá ser designado.
Você pode usar a instrução ANA com os registradores B e C. Os formatos destas
instruções são:
ANA B ANA C
75
NOP – significa não operar. Durante a execução de uma NOP, todos os estados
T não fazem nada. Portanto, não ocorre nenhuma alteração nos registradores, ou
76
77
78
79
Mnemônicos Comentários
MVI A, 17H - move imediatamente o número hexadecimal
17H para o registrador A.
MVI B, 2DH - move imediatamente o número hexadecimal
2DH para o registrador B.
ADD B - adiciona B em A.
STA 5600H - move o conteúdo do acumulador A para a
posição de memória 5600H.
INR A - incrementa em uma unidade o conteúdo do
acumulador A.
MOV C, A - move o conteúdo do acumulador A para o
registrador C.
HLT - indica o fim do programa.
80
Mnemônicos
MVI C, 03H
DCR C
JZ 2009H
JMP 2002H
HLT
Solução:
81
82
83
Exercícios:
No Ambiente Virtual de Aprendizagem, na Midiateca, você vai
encontrar o arquivo ExercSAP2.doc com uma lista de exercícios sobre
o microprocessador SAP-2.
84
85
As linguagens de alto nível são assim denominadas por apresentarem uma sintaxe
mais próxima da linguagem natural, utilizada no dia-a-dia, fazendo uso de palavras
reservadas, extraídas do vocabulário corrente (com READ, WRITE, TYPE, etc.) e
permitem a manipulação dos dados nas mais diversas formas (números inteiros,
reais, vetores, etc.), enquanto a linguagem Assembly trabalha com bits, bytes,
palavras armazenadas em memória.
A passagem de um programa escrito em linguagem de alto nível para o programa
em linguagem de máquina é bem mais complexa, comparada com a linguagem
Assembly. Essa passagem é feita utilizando compiladores e linkadores.
Um programa escrito em linguagem de alto nível pode, teoricamente, ser usado em
qualquer máquina, bastando escolher o compilador correspondente. O que não
acontece com um programa escrito em Assembly.
Desvantagens:
a linguagem apresenta um número muito reduzido de instruções;
o programador deve conhecer muito bem a máquina;
o programa Assembly não é muito legível, precisa ser bem documentado;
o programa Assembly não é portável (pode ser usado apenas em um tipo de
computador). É portável apenas dentro de uma família de processadores;
a programação Assembly tem um custo de desenvolvimento maior.
Vantagens:
permite acesso direto ao programa de máquina. Um programa escrito em
linguagem Assembly pode ser de 0 a 300% menor e mais rápido que um
programa compilado;
essa linguagem permite o controle total do hardware.
86
87
É o pior caso de tempo necessário para acessar todas as unidades, obtido pela
soma dos tempos individuais. Usando essa configuração, um novo dado é admitido
a cada ciclo de clock. Portanto o período mínimo T de clock é dado por:
T1 ≥ Tinst ,
88
A Figura 34 (a) mostra como o caminho do fluxo de dados pode ser modificado para
permitir a inclusão da pipeline. As unidades lógicas também são divididas em seções
identificadas por BI, Dl, EXE, MEM e EV, mas agora, cada unidade tem o seu próprio
conjunto de registradores que controlam a entrada dos dados na unidade. Como os
registradores são todos controlados pelo mesmo sinal de clock cada unidade recebe
novos dados ao mesmo tempo. As características para o fluxo de dados são
ilustradas pelos diagramas de tempo da Figura 34 (b). Para esse sistema,
escolhemos um novo período de clock, tal que:
Esta equação garante que a unidade mais lenta tenha tempo suficiente para
responder, caracterizando o clock mais rápido que pode ser utilizado. Para
completar uma única instrução, será necessário um tempo de 5T, o qual pode ser,
de fato, maior do que t1, utilizado no esquema de clock mais simples.
89
A instrução utiliza apenas um dos cinco blocos do circuito por vez. A técnica de
pipeline utiliza essa característica, permitindo que uma nova instrução entre no fluxo
lógico no começo de cada ciclo. O fluxo é mostrado na figura 36 para o caso no qual
queremos executar uma operação de adição, como identificado por ADD. Esta figura
mostra, claramente, a progressão da instrução dentro do processador.
91
Se N = 1000, então:
t1 = 5000T
tpipe = 1004T
Exercícios:
1) Um computador é construído usando a arquitetura de 5 estágios. Os
atrasos de tempo das unidades individuais são dados por
tBI = 2,6ns tDI = 1,4ns tEXE = 2,5ns tMEM = 3,0ns tEV = 1,5ns
a) Qual a freqüência do clock f1 necessária pelo método de uma
única instrução por período de clock (sem pipeline)?
b) Suponha que o clock seja utilizado em cada estágio
simultaneamente (com pipeline). Qual seria a freqüência de clock
f2 neste caso?
Solução:
a) T = 2,6 + 1,4 + 2,5 + 3 + 1,5 = 11ηs ⇒ f = 1 / T
f = 1 / (11 * 10-9) = 0,0909 * 109 = 90,9 * 106 = 90,9 MHz
b) T = 3ηs ⇒ f = 1 / T
f = 1 / (3 * 10-9) = 0,333 * 109 = 333 * 106 = 333 MHz
92
Exercícios:
1) Um computador é construído usando a arquitetura de cinco estágios
mostrada na figura 33. Os atrasos de tempo das unidades
individuais são dados por
tBI = 1,6ns tDI = 1,4ns tEXE = 3,2ns tMEM = 3,7ns tEV = 1,8ns
a) Qual a freqüência do clock f1 necessária pelo método de uma
única instrução por período de clock?
b) Suponha que o clock seja utilizado em cada estágio
simultaneamente, como na figura 34. Qual seria a freqüência de
clock f2 neste caso?
93
94
Obviamente, essa regra não apresenta uma resposta exata em termos de números,
mas ela mostra um ponto importante: a maioria dos programas pode ser executada
usando apenas um pequeno número de instruções, resultando no conceito de
computador com conjunto de instrução reduzido (RISC).
Um processador com arquitetura RISC se caracteriza por possuir poucas instruções
de máquina, em geral bastante simples, que são executadas diretamente pelo
hardware. Na sua maioria, estas instruções não acessam a memória principal,
trabalhando principalmente com registradores que, neste tipo de processador, se
apresentam em grande número. Estas características, além de ajudarem as
instruções serem executadas em alta velocidade, facilitam a implementação do
pipeline.
A arquitetura RISC reduz o conjunto de instrução ao mínimo, e as instruções não
implementadas diretamente são realizadas por uma combinação de instruções
existentes. Mas em compensação, um programa é implementado por um número
maior de instruções.
95
Tem sido muito falado que as arquiteturas RISC resultam em máquinas mais
rápidas, mais baratas e fáceis de projetar, mas tudo isso é muito discutível. A
simplicidade e o conjunto reduzido de instruções de filosofia RISC inicial se revelam
insuficientes. As máquinas ditas RISC atuais têm um conjunto de instruções
bastante grande. Um projeto RISC, na prática, também não significa um processador
simplificado. A sofisticação da lógica de pipeline e paralelismo aumentam
significativamente a complexidade do projeto. Sendo assim, a linha divisória entre
RISC e CISC está perdendo a nitidez; as CPUs INTEL, do 486 em diante, já usam
parte das técnicas RISC, diminuindo o conjunto de instruções e aumentando o
número de registradores.
A simplificação das instruções é um grande mérito e provavelmente continuará a
influenciar futuras arquiteturas. Isso significa que os princípios RISC e CISC poderão
viver harmoniosamente em um único projeto. As memórias cache maiores (que
diminuem a dependência dos acessos à memória) e uma melhoria na tecnologia dos
compiladores diminuem ainda mais as diferenças apregoadas entre as máquinas
RISC e CISC.
O projeto de processadores modernos evoluiu de tal maneira que eles normalmente
utilizam o máximo possível das idéias da filosofia RISC, o que especialmente é
verdadeiro para microprocessadores VLSI. Alguns processadores, tais como chips
MIPS e PowerPC, são verdadeiramente máquinas RISC, enquanto outros, como
processadores Pentium (Intel) e AMD, têm um núcleo RISC envolvido por uma
estrutura de controle maior, que fornece operações do tipo CISC. Esse tipo de
projeto é particularmente importante, pois uma nova geração de família de
microprocessadores deve manter a compatibilidade com um produto CISC anterior.
Exercícios:
1) Faça uma pesquisa na internet para identificar onde são aplicados
os computadores RISC.
2) Faça uma pesquisa na internet, jornais e revistas para identificar a
evolução dos microprocessadores da família Intel e AMD.
96
Arquiteturas paralelas mais complexas podem ser descritas pela inclusão de mais
três grupos:
98
3.6.1.1. SIMD
A arquitetura SIMD é mostrada na figura 41 para o caso de quatro processadores
individuais, identificados por EP0, EP1, EP2 e EP3. Nesta arquitetura, cada
processador executa a mesma operação, mas cada um trabalha com um segmento
de dados diferentes. Com as entradas D0, D1, D2 e D3, os resultados dos
processadores EP0, EP1, EP2 e EP3 são dados por, respectivamente:
RX(D0), RX(D1), RX(D2), RX(D3)
99
3.6.1.3. MIMD
Este é o tipo de máquina paralela mais genérica. A arquitetura MIMD permite que
várias operações sejam executadas usando diferentes segmentos de dados. Na
figura 43 as entradas do circuito paralelo são D0, D1, D2 e D3. Cada processador
executa uma instrução diferente; portanto os resultados são:
RA(D0), RB(D1), RC(D2), RD(D3).
Esse tipo de sistema fornece ao programador o maior nível de flexibilidade, mas é o
mais complicado de ser projetado, construído e utilizado.
100
101
ARAÚJO, Celso de; CHUI, William Soler. Praticando Eletrônica Digital. 2º Ed. São
Paulo: Érica, 1997.
TORRES, Gabriel. Hardware Curso Completo. 3ª Ed. Rio de Janeiro: Axcel Books,
1999. 1147P. ISBN: 8573231157.
102