introdução – conceitos básicos

Transcrição

introdução – conceitos básicos
ArquiteturaComputadores.doc - 28/02/yy – página 1
APOSTILA DE ARQUITETURA DE
COMPUTADORES
Sérgio Miranda Paz
2005
ArquiteturaComputadores.doc - 28/02/yy – página 2
INTRODUÇÃO – CONCEITOS BÁSICOS
 “Arquitetura de Sistemas”, “Sistemas Operacionais”






no “Aurélio”:
 sistema: conjunto de elementos, materiais ou ideais, entre os quais se possa encontrar ou definir alguma
relação
 arquitetura: disposição das partes ou elementos de um edifício ou espaço urbano; (figuradamente) plano,
projeto
 operação: complexo de meios que se combinam para a obtenção de certo resultado
 termos de sentido amplo, aplicáveis a muitos setores de atividades
(e não especificamente à Computação!)
neste curso, serão estudados os sistemas “computacionais”
computador: aquele que faz cômputos (cômputo: conta, cálculo)
(em processamento de dados): aparelho eletrônico capaz de receber informações, submetê-las a um conjunto
especificado e predeterminado de operações lógicas ou matemáticas, e fornecer o resultado dessas
operações; cérebro eletrônico (Aurélio, 1975)
serão estudados os componentes dos sistemas computacionais, e suas relações, numa abordagem “top-down”
(“de cima para baixo”)
os sistemas computacionais englobam não só os computadores de uso geral, mas também os equipamentos
computadorizados, de uso específico, ou dedicado (exemplos: eletrodomésticos diversos, controladores de
processos, dispositivos para automação, etc.)
ArquiteturaComputadores.doc - 28/02/yy – página 3
EVOLUÇÃO HISTÓRICA DOS COMPUTADORES
 dispositivos mecânicos (500a.C. a 1880)




ábaco, em 500a.C., na Babilônia
 usado por comerciantes e agricultores
 estendeu-se a todo o Império Romano
máquina de Blaise Pascal (matemático e filósofo francês), em 1642
 aprimoramento do ábaco
 dotado de engrenagens dentadas, e de uma manivela
 precursora das calculadoras mecânicas
máquina de Gottfried Leibniz (matemático e filósofo alemão), em 1673
 aprimoramento da máquina de Pascal
 capaz de executar multiplicação e divisão
máquinas de Charles Babbage (matemático inglês, considerado o “Pai da Computação Moderna”)
 máquina de diferenças, em 1823




máquina analítica




baseada no processo das diferenças finitas
usada para cálculos para navegação, pela Marinha Inglesa
capaz de calcular polinômios e funções trigonométricas com 15 algarismos e de armazenar resultados (memória)
estrutura semelhante à atual (entrada/saída, memória, processador)
uso de cartões perfurados
ficou apenas no projeto (a tecnologia para sua construção era insuficiente na época)
problemas dos dispositivos mecânicos: dificuldade de construção, lentidão (devido à inércia das engrenagens),
grandes dimensões, alto custo, pouca confiabilidade, reduzida capacidade de armazenamento
 dispositivos eletromecânicos (1880 – 1945)




principal componente: relê (usado, na época, em telefonia)
máquina tabuladora de Herman Hollerith, em 1889
 acionada por motor elétrico
 classificava e ordenava informações em cartões perfurados
 usada no censo de 1890, nos Estados Unidos
 criou a “Computer Tabulating Recording Corporation”, que, em 1924, deu origem à “IBM – International
Business Machines”
máquinas de Konrad Zuse (estudante de engenharia alemão), em 1935-1941
 primeira calculadora eletrônica
 uso de relês eletromecânicos, e do sistema binário
 máquinas Z1, Z2, Z3 e Z4, utilizadas no projeto de aviões e mísseis alemães
 destruídas durante a Segunda Guerra
“Mark I”, de Howard Aiken (físico e matemático norte-americano), em 1944
 uso das idéias de Charles Babbage
 uso de relês eletromecânicos, e do sistema decimal
 projeto financiado pela IBM
 executava uma soma em 6s, uma divisão em 12s
ArquiteturaComputadores.doc - 28/02/yy – página 4
 computadores eletrônicos (a partir de 1945)


divisão (subjetiva) em gerações, baseada na tecnologia empregada
1a. geração: computadores à válvula
 válvula: dispositivo eletrônico, constituído por uma cápsula de vidro, com vácuo e placas metálicas em seu
interior, com elevados consumo de energia e dissipação de calor
 “Colossus”, de Alan Turing (matemático inglês), de 1943




ENIAC (“Electronic Numerical Integrator And Computer”), de John Mauchly e John Eckert
(professores norte-americanos, da Universidade da Pensilvânia)










em 1958, a IBM já era, destacadamente, o maior fabricante de computadores do mundo
2a. geração: computadores a transistor
 transistor: dispositivo de silício, produzido pela primeira vez pelos laboratórios Bell, nos Estados
Unidos, em 1947; mais barato, menor, de menor consumo e dissipação de calor do que a válvula
 computadores da série 7000, da IBM


baseados nos computadores da série 700, mas agora transistorizados
computadores da série PDP, da DEC (“Digital Equipment Corporation”), a partir de 1957



primeiro computador para fins comerciais
utilizado no censo de 1950, nos Estados Unidos
computadores da série 700, da IBM, ao longo dos anos 50


primeiro computador com programa armazenado (arquitetura de von Neumann, ainda hoje utilizada pela maioria dos
computadores)
dados e programa armazenados na mesma memória
execução seqüencial de instruções: o ciclo de instrução formado pelos ciclos de busca e de execução
UNIVAC 1 (“Universal Automatic Computer”), de Mauchly e Eckert, nos Estados Unidos, em 1949



projeto baseado no ENIAC
abandonado por Mauchly e Eckert, que fundaram sua empresa UNIVAC (atual UNYSIS)
IAS (do “Institute for Advanced Studies”), da Universidade de Princeton, Estados Unidos


considerado o primeiro computador do mundo
projeto financiado pelo exército norte-americano, para cálculos balísticos (não foi, porém, utilizado na guerra, pois ficou
pronto depois do seu final)
usado posteriormente para o desenvolvimento da bomba de hidrogênio
18.000 válvulas, 30 toneladas, 1.600m2, 140kW, 6.000 chaves
cerca de 10.000 operações por segundo
problema: manutenção (freqüente queima de válvulas)
desmontado em 1955
EDVAC (“Electronic Discret Variable Automatic Computer”), em 1946



dedicado à quebra de códigos militares secretos alemães
manteve-se em sigilo até recentemente
não é reconhecido como o primeiro computador
de menor porte do que as máquinas IBM, porém de ótimo desempenho, e custo bem menor
grande sucesso comercial, o que fez da DEC a principal rival da IBM
3a. geração: computadores com circuitos integrados
 circuito integrado: circuito de reduzidíssimas dimensões, com milhares de transistores, construído pela
primeira vez pela Texas Instruments, em 1958, numa peça de germânio, e aprimorado pela Fairchild
Semiconductor, usando pastilhas de silício (“chips”)
 série IBM /360, da IBM, a partir de 1964




PDP11, da DEC, em 1970


introdução do conceito de “família” de computadores (sucessivos aprimoramentos, com manutenção da compatibilidade com os
modelos anteriores)
introdução da multiprogramação (vários programas compartilhando memória e processador, dando a impressão de execução
simultânea)
introdução do sistema operacional (conjunto de programas para gerenciar os recursos de “hardware”)
“minicomputador” de maior sucesso comercial
“Patinho Feio”, do Laboratório de Sistemas Digitais da Escola Politécnica da Universidade de São Paulo,
em 1971/1972





primeiro computador projetado e construído no Brasil
desenvolvido por professores e alunos da Escola Politécnica
processador de 8 bits
memória principal: 4Kbytes (de núcleo de ferrite)
ciclo de instrução: 2s

periféricos: leitora de fita de papel perfurada, terminal de vídeo, impressora, chaves e lâmpadas
ArquiteturaComputadores.doc - 28/02/yy – página 5

4 . geração: computadores com circuitos integrados em escala muito grande (VLSI)
 VLSI (“very large scale integration”): milhões de transistores num único “chip”, produzido a partir do
início dos anos 70, graças aos avanços da microeletrônica
 computadores de grande porte (“main frames”)
a



CRAY




diversos fabricantes e modelos
Intel (e outros): 8051
Motorola: 68HC05, 68HC11
National: Cop8
Microchip: PIC
microcomputador, ou computador pessoal






primeiro: INTEL-4004, da Intel Corporation, em 1971
outros da Intel: 8008, 8080 (em 1973), 8086 (em 1978), 80286 (em 1982), 80386 (em 1985), 80486 (em 1989), Pentium (em
1993), Pentium Pro (em 1993), Pentium II (em 1997)
da Motorola: MC 6800 (em 1974), MC 68000 (em 1979), MC 68040 (em 1989)
da Zilog: Z80 (em 1974), Z8000 (em 1979)
microcontrolador: processador + memória + módulos de entrada/saída numa única pastilha






primeiro “supercomputador”, assim chamado pela sua grande capacidade de processamento
microprocessador: processador numa única pastilha



aprimoramento da família /360, da IBM
VAX, da DEC
baseado em microprocessador
baixo custo, pequena dimensão
tipo “PC” (originalmente produzido pela IBM), com microprocessadores da linha Intel
tipo “Macintosh” (originariamente produzido pela Apple), com microprocessadores produzidos pela Motorola
tipo “PowerPC” (associação entre a Apple, a Motorola e a IBM)
5a. geração: ???
 Lei de Moore (enunciada nos anos 70): “a velocidade e a capacidade de memória dos computadores
dobram a cada 18 meses”
 há algum limite para isso? quando será atingido?
porém. desde os anos 40, não houve significativas mudanças na arquitetura...
ArquiteturaComputadores.doc - 28/02/yy – página 6
ARQUITETURA DE VON NEUMANN
 também chamada de arquitetura de “programa armazenado”, pois dados e instruções do
programa compartilham a mesma memória para seu armazenamento
 componentes do sistema computacional, segundo a arquitetura de von Neumann




unidade central de processamento (UCP, ou CPU, de “central process unit”)
memória
módulos de entrada
módulos de saída
M ó d u lo s
de
E ntrad a
U n id a d e
C en tral d e
Processam en to
M ó d u lo s
d e S a íd a
M e m ó r ia
P r in c ip a l
M e m ó r ia
S e c u n d á r ia
 exemplos de sistemas computacionais


de uso geral: supercomputadores, computadores de grande porte (“main frames”), minicomputadores,
estações de trabalho (“workstations”), microcomputadores (computadores pessoais)
de uso específico: aparelhos de vídeo-cassete; controladores de máquinas industriais; computadores de bordo
de veículos; aparelhos eletrodomésticos
 MÓDULOS DE ENTRADA: responsáveis pela recepção de dados do mundo exterior (inclusive
do operador)



correspondem aos órgãos dos sentidos do ser humano
interface com diversos dispositivos de entrada
exemplos de dispositivos: teclado, “mouse”, botões, chaves, “scanner”, leitora óptica (de disco, de código de
barras, de fita ou cartões perfurados), leitora magnética (de disco, de fita), microfone, sensores, modem de
linha de comunicação
 UNIDADE CENTRAL DE PROCESSAMENTO: responsável pelo processamento dos dados
recebidos do mundo exterior e pelo controle dos demais componentes


corresponde ao cérebro do ser humano
constituída pela unidade aritmética e lógica, pelos registradores e pela unidade de controle
 MÓDULOS DE SAÍDA: responsáveis pela transmissão de dados do mundo exterior (inclusive
ao operador)



correspondem aos músculos do ser humano
interface com diversos dispositivos de saída
exemplos de dispositivos: vídeo, mostrador (“display”), lâmpadas, painel, impressora, gravador magnético (de
disco, de fita), alto-falante, atuadores e motores diversos, modem de linha de comunicação
 MEMÓRIA: responsável pelo armazenamento de dados e de programas


corresponde à memória do ser humano
pode ser classificada como Principal (acessada diretamente pela UCP) ou Secundária (acessada via módulos de
entrada/saída)
ArquiteturaComputadores.doc - 28/02/yy – página 7
COMPUTADOR “SERGIUM”
(computador fictício, de poucos recursos, criado para fins pedagógicos, a fim de ilustrar a Arquitetura de von Neumann e o ciclo de instrução)
registradores (1 byte=8 bits)
instrução de máquina (2 bytes)
EPI: endereço da próxima instrução
código da operação | operando
COD: código da instrução
OPE: operando da instrução
AC: acumulador
AUX0-3: registradores auxiliares
EAUX: endereço do registrador auxiliar
A, B: operandos da Unidade Aritmética e Lógica
C: resultado da Unidade Aritmética e Lógica
EM: endereço da memória
DM: dado da memória
EE/S: endereço da porta de Entrada/Saída
DE/S: dado da porta de Entrada/Saída
conjunto de instruções
código mnemônico
operação
Instruções de entrada e saída de dados
0
1
ENT PORTA=>AC
SAI AC=> PORTA
copiar porta <operando> no acumulador
copiar acumulador na porta <operando>
Instruções de movimentação de dados
2
3
4
5
6
COP AUX=>AC
COP AC=>AUX
COP MEM=>AC
COP AC=>MEM
COP VAL=>AC
copiar auxiliar <operando> no acumulador
copiar acumulador no auxiliar <operando>
copiar posição <operando> da memória no acumulador
copiar acumulador na posição <operando> da memória
copiar o valor <operando> no acumulador
10
SOM ACAUX=>AC
somar ao acumulador o auxiliar <operando> e guardar o resultado no acumulador
Z: resultado zero (C=0)
11
SUB ACAUX=>AC
subtrair do acumulador o auxiliar <operando> e guardar o resultado no acumulador
P: resultado positivo (C>0)
12
SOM ACVAL=>AC
somar ao acumulador o valor <operando> e guardar o resultado no acumulador
13
SUB ACVAL=>AC
subtrair do acumulador o valor <operando> e guardar o resultado no acumulador
20
21
22
23
VAI
VAI SE Z=1
VAI SE P=1
PÁRA
Instruções de operações aritméticas
indicadores (1 bit)
Instruções de controle de execução
desviar para a instrução na posição <operando>
desviar para a instrução na posição <operando> se o indicador Z = 1
desviar para a instrução na posição <operando> se o indicador P = 1
parar (<operando> não considerado)
ArquiteturaComputadores.doc - 28/02/yy – página 8
COMPUTADOR “SERGIUM”
Funcionamento da Unidade de Controle
no “reset”:
0) zera EPI
ciclo de máquina:
1) ciclo de busca na memória
1.1) busca do código da operação na memória
1.1.1) copia EPI em EM
1.1.2) lê na memória (posição apontada por EM) e copia em DM
1.1.3) copia DM em COD
1.1.4) soma 1 a EPI
1.2) busca do operando
1.2.1) copia EPI em EM
1.2.2) lê na memória (posição apontada por EM) e copia em DM
1.2.3) copia DM em OPE
1.2.4) soma 1 a EPI
2) ciclo de execução
se COD = 0: instrução ENT PORTA=>AC
se COD = 1: instrução SAI AC>=PORTA
2.1) copia OPE em EE/S
2.1) copia OPE em EE/S
2.2) lê porta (apontada por EE/S) e copia em DE/S
2.2) copia AC em DE/S
2.3) copia DE/S em AC
2.3) copia DE/S e escreve em porta (apontada por EE/S)
se COD = 2: instrução COP AUX=>AC
se COD = 3: instrução COP AC=>AUX
2.1) copia OPE em EAUX
2.1) copia OPE em EAUX
2.2) copia AUX (apontado por EAUX) em AC
2.2) copia AC em AUX (apontado por EAUX)
se COD = 4: instrução COP MEM=>AC
se COD = 5: instrução COP AC=>MEM
2.1) copia OPE em EM
2.1) copia OPE em EM
2.2) lê na memória (posição apontada por EM) e copia em DM
2.2) copia AC em DM
2.3) copia DM em AC
2.3) copia DM e escreve na memória (posição apontada por EM)
se COD = 6: instrução COP VAL=>AC
2.1) copia OPE em AC
se COD = 10: instrução SOM AC+AUX=>AC
se COD = 11: instrução SUB ACAUX=>AC
2.1) copia AC em A
2.1) copia AC em A
2.2) copia OPE em EAUX
2.2) copia OPE em EAUX
2.3) copia AUX (apontado por EAUX) em B
2.3) copia AUX (apontado por EAUX) em B
2.4) calcula C = A + B
2.4) calcula C = A – B
2.5) se C=0, então Z = 1, senão, Z = 0
2.5) se C=0, então Z = 1, senão, Z = 0
2.6) se C>0, então P = 1, senão, P = 0
2.6) se C>0, então P = 1, senão, P = 0
2.7) copia C em AC
2.7) copia C em AC
se COD = 12: instrução SOM AC+VAL=>AC
se COD = 13: instrução SUB ACVAL=>AC
2.1) copia AC em A
2.1) copia AC em A
2.2) copia OPE em B
2.2) copia OPE em B
2.3) calcula C = A + B
2.3) calcula C = A – B
2.4) se C=0, então Z = 1, senão, Z = 0
2.4) se C=0, então Z = 1, senão, Z = 0
2.5) se C>0, então P = 1, senão, P = 0
2.5) se C>0, então P = 1, senão, P = 0
2.6) copia C em AC
2.6) copia C em AC
se COD = 20: instrução VAI
se COD = 21: instrução VAI SE Z=1
2.1) copia OPE em EPI
2.1) se Z=1, copia OPE em EPI
se COD = 22: instrução VAI SE P=1
se COD = 23: instrução PÁRA
2.1) se P=1, copia OPE em EPI
2.1) subtrai 1 de EPI
2.2) subtrai 1 de EPI
3) volta ao passo 1
Obs.: as operações em negrito fazem acesso à memória
ArquiteturaComputadores.doc - 28/02/yy – página 9
Exemplos de programas do Computador “SERGIUM”
1) Ler dois números no teclado, armazená-los na memória (nas posições A e B, respectivamente 100 e 101), e
imprimir a soma deles.
endereç
conteúdo
o
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...
...
100
101
instrução
rótulo
0
0
5
100
3
0
0
0
5
101
10
0
1
2
23
0
...
...
???
???
comentário
mnemônico
operando
ENT PORTA=>AC
0
lê o primeiro número (A)
COP AC=>MEM
A
guarda o primeiro número (A) na memória (endereço 100)
COP AC=>AUX
0
salva o primeiro número (A) num registrador auxiliar (pois
o acumulador vai ser perdido)
ENT PORTA=>AC
0
lê o segundo número (B)
COP AC=>MEM
B
guarda o segundo número (B) na memória (endereço 101)
SOM AC+AUX
0
soma o segundo número (B) com o primeiro número (A,
armazenado num registrador auxiliar)
SAI AC=>PORTA
2
imprime a soma
PÁRA
0
pára o programa (A + B)
...
...
...
???
???
números lidos (A e B)
2) Carregar dois números previamente armazenados na memória (nas posições A e B, respectivamente 100 e
101), e mostrar no vídeo o maior deles.
endereç
conteúdo
o
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
...
...
100
101
4
100
3
1
4
101
3
2
11
1
22
18
2
1
1
1
23
0
2
2
1
1
23
0
...
...
???
???
instrução
rótulo
AMAIOR:
BMAIOR:
comentário
mnemônico
operando
COP MEM=>AC
A
pega o primeiro número (A) na memória (endereço 100)
COP AC=>AUX
1
salva o primeiro número (A) no auxiliar 1
COP MEM=>AC
B
pega o segundo número (B) na memória (endereço 101)
COP AC=>AUX
2
salva o segundo número (B) no auxiliar 2
SUB ACAUX=>AC
1
subtrai o primeiro número (A) do segundo (B)
(isto é, o segundo menos o primeiro (B-A))
VAI SE P=1
BMAIOR
desvia se o segundo número (B) é maior
COP AUX=>AC
1
recupera o primeiro número (A)
SAI AC=>PORTA
1
apresenta o primeiro número (A) no vídeo
PÁRA
0
pára o programa
COP AUX=>AC
2
recupera o segundo número (B)
SAI AC=>PORTA
1
apresenta o segundo número (B) no vídeo
PÁRA
0
pára o programa
...
...
...
???
???
números a serem comparados (A e B)
ArquiteturaComputadores.doc - 28/02/yy – página 10
CICLO DE INSTRUÇÃO
 como visto no exemplo (Sergium), as instruções de um programa são executadas ciclicamente,
seqüencialmente
c ic l o d e in s t r u ç ã o
i n í c io
f im
 o ciclo de instrução pode, simplificadamente, ser dividido em 2 etapas, impropriamente
também chamadas de “ciclos”


o ciclo de busca, na memória, da instrução a ser executada
o ciclo de execução da instrução
in íc io
c ic l o d e
busca
c ic l o d e
execução
f im
 “ciclo” de busca: obtenção da instrução a ser executada
2
1


3
etapas
 1: cálculo do endereço do código da instrução
 2: leitura do código da instrução, na memória
 3: decodificação da instrução
etapas realizadas obrigatoriamente, para todas as instruções
 “ciclo” de execução: execução da instrução propriamente dita
8
5
4


6
7
etapas
 4: cálculo dos endereços dos operandos
 5: leitura dos valores dos operandos, na memória (ou em registradores)
 6: execução da operação, com os valores dos operandos
 7: cálculo dos endereços dos resultados da operação
 8: escrita dos valores dos resultados, na memória (ou em registradores)
etapas que, para algumas instruções, podem não ser realizadas, e, para outras, podem ser realizadas diversas
vezes
ArquiteturaComputadores.doc - 28/02/yy – página 11
 interrupção




certas operações executadas pelo computador (como, por exemplo, entradas e saídas) consomem um tempo
relativamente grande, quando comparado ao tempo do ciclo de instrução
ao disparar uma operação de entrada/saída, o processador pode permanecer executando instruções que
verificam se a operação já foi concluída
quando isto ocorre, o processador executa um tratamento de fim de operação de entrada/saída, e retoma a
execução normal do programa
essa estratégia é conhecida como “espera por sinalização” (ou “wait for flag”)
A
1
2
3
B
1
2
3
C
te m p o
trechos do programa sendo executado
1: disparo da operação de entrada/saída
2: espera pelo fim da operação de entrada/saída
3: tratamento do fim da operação de entrada/saída



em outra possível estratégia, após disparar uma operação de entrada/saída, o operador prossegue com a
execução normal do programa
quando a operação de entrada/saída é concluída, o dispositivo por ela responsável avisa o processador, que
interrompe a execução do programa, para executar o tratamento de fim de operação de entrada/saída
em seguida, o processador retoma a execução do programa, a partir do ponto em que se deu a interrupção
A
1
B1
2



A, B, C:
3
B2
1
C1
3
C2
te m p o
2
B1, B2: trechos do programa que compõem o trecho B
C1, C2: trechos do programa que compõem o trecho C
com a estratégia da interrupção, o processador não perde tempo esperando o fim de uma operação de
entrada/saída
interrupções podem ser geradas, também, por outros motivos
 situações anormais detectadas durante a execução do programa, como tentativa de divisão por zero, de
execução de instrução inválida, ou de acesso a área de memória proibida
 falhas de “hardware” detectadas, como falha na memória ou na alimentação
 fim de uma temporização disparada pelo programa
para permitir a ocorrência de uma interrupção, o ciclo de instrução ganha um 3o. passo
 “ciclo” de interrupção: atendimento a um pedido de interrupção, caso este tenha ocorrido e
esteja habilitado
9


10
etapas
 9: verificação da existência de pedido de interrupção
 10: atendimento do pedido de interrupção (desvio para a rotina de seu tratamento)
etapas que podem ser inibidas ou habilitadas pelo programa
ArquiteturaComputadores.doc - 28/02/yy – página 12
 esquema geral do ciclo de instrução
2
1
5
6
c ic l o d e
execução
4
c ic l o d e
busca
f im
3
i n í c io
8
7
9
c ic l o d e
in t e r r u p ç ã o
10
ArquiteturaComputadores.doc - 28/02/yy – página 13
CONEXÃO ENTRE OS COMPONENTES
 os componentes do sistema computacional se comunicam entre si, trocando informações que
podem ser classificadas em



dados
endereços
sinais de controle
MEMÓRIA
ESCRITA
LEITURA
DADOS
ENDEREÇO
INSTRUÇÕES
DADOS
MÓDULO E/S
ESCRITA
DADOS
LEITURA
ENDEREÇO
DADOS
Sinais de Controle
UCP
ENDEREÇOS
INSTRUÇÕES
DADOS
Sinais de Controle
Sinais de Controle
informações destinadas a
DADOS
informações provenientes de
MEMÓRIA
sinais de controle de leitura e de escrita
dados lidos
dados a serem escritos
instruções lidas
endereço dos dados a serem lidos ou escritos
MÓDULO DE ENTRADA
sinais de controle de leitura
dados obtidos no mundo exterior
dados fornecidos pelo mundo exterior
sinais de controle de “status”
endereço do dispositivo de entrada
MÓDULO DE SAÍDA
sinais de controle de escrita
dados fornecidos ao mundo exterior
dados a serem enviados ao mundo exterior
sinais de controle de “status”
endereço do dispositivo de saída
UNIDADE CENTRAL DE PROCESSAMENTO
endereço (de memória ou de módulo de
sinais de controle de “status”
entrada/saída)
dados lidos na memória ou no módulo de entrada
dados a escrever na memória ou no módulo de saída
instruções lidas na memória
sinais de controle diversos
ArquiteturaComputadores.doc - 28/02/yy – página 14
 a troca de informações se faz através de conexões, chamadas de vias, ou barramentos
 barramento: conjunto de sinais (tipicamente, entre 50 e 100) com informações trocadas
entre os componentes de um sistema computacional
 de acordo com a função dos sinais, o barramento pode ser:




de
de
de
de
endereços
dados
controle
alimentação
 de acordo com a utilização ao longo do tempo, o barramento pode ser:


dedicado: cada linha é exclusiva a um único sinal
multiplexado: uma mesma linha pode ser utilizada por sinais diferentes, em instantes diferentes
 é comum o compartilhamento de linhas por sinais de endereços e de dados
 vantagem: redução do número de linhas (“largura” do barramento)
 em relação à UCP, o barramento pode ser:


externo: conecta UCP, Memória e Entradas e Saídas
interno: conecta componentes da UCP (registradores, unidade aritmética e lógica, unidade de controle)
 de acordo com a relação temporal entre os sinais, o barramento pode ser:


síncrono: os eventos (colocação, retirada, alteração de sinais) são todos coordenados por um sinal de
sincronismo (o sinal “clock”)
assíncrono: um evento em um sinal depende da ocorrência de outro evento, em outro sinal
 vantagens: maior flexibilidade e, em geral, maior velocidade
 desvantagem: maior complexidade
 “largura” do barramento: número de linhas que o compõem

no caso do barramento de endereços, define o número de posições que podem ser referenciadas:
N = 2n
 exemplo: se o barramento de endereços da memória é de 20 linhas, podem ser referenciadas 220 = 1M
posições de memória
 em geral, diversos componentes (UCP, placas de memória, módulos de entrada/saída) se
conectam ao barramento, provocando:


a necessidade de um esquema de arbitragem, quando mais de um componente deseja transmitir informações
pela mesma via
 arbitragem centralizada: um controlador central gerencia todos os pedidos de acesso ao barramento, e
resolve as “colisões”
 arbitragem descentralizada: todos os dispositivos conectados ao barramento são capazes de acessá-lo,
sem que haja “colisões”
a separação hierárquica dos barramentos, através de interfaces de expansão e de pontes (“bridges”)
 dispositivos podem ser agrupados em barramentos, de acordo com sua posição hierárquica, ou com sua
velocidade de operação
ArquiteturaComputadores.doc - 28/02/yy – página 15
UCP
b a r r a m e n t o lo c a l
ponte
b a r r a m e n t o d e s is t e m a
m e m ó r ia
"cache "
m e m ó r ia
p r in c ip a l
b a r r a m e n t o d e a lt a v e lo c id a d e
t e r m in a l
g r á f ic o
v íd e o
r e d e lo c a l
d is p o s it iv o s d e E / S
d e a lt a v e lo c id a d e
in t e r f a c e d e
e xpansão
b a r r a m e n t o d e m é d ia v e lo c id a d e
fax
m odem
c o m u n ic a ç ã o
s e r ia l
d is p o s it iv o s d e E / S
d e m é d ia v e lo c id a d e
 exemplo de barramento: PCI (“peripheral component interconnect”, ou interconexão entre
componentes periféricos)






lançado no início dos anos 90, pela Intel, para os sistemas da linha Pentium
alta velocidade (> 4Gbits/s)
síncrono
arbitragem centralizada
multiplexação entre endereços e dados
32 linhas de dados, com possível expansão para 64 linhas
ArquiteturaComputadores.doc - 28/02/yy – página 16
ORGANIZAÇÃO E HIERARQUIA DA MEMÓRIA
 memória: componente do sistema computacional responsável pelo armazenamento de
informações (dados e programas)
 operações:


analogia com o ser humano: memória
escrita, ou gravação, ou armazenamento de informação (“write”)
leitura, ou recuperação de informação previamente armazenada (“read”)
 conceitos:



endereço: indica “onde”, isto é, a posição na qual a informação deve ser escrita ou lida
conteúdo: indica “o quê”, isto é, a informação que deve ser escrita ou que foi lida
unidade endereçável (em geral, chamada de “palavra”): conjunto de bits que ocupam uma posição na memória
 um sistema computacional pode dispor de diferentes dispositivos para a função de
armazenamento de informações
 diferentes tipos de memória
 características principais desses tipos







localização
capacidade
unidade de transferência
método de acesso
desempenho
propriedades físicas
custo
 localização: onde o dispositivo de memória se encontra, em relação ao sistema computacional

no processador
 registradores: posições de memória privilegiadas, dentro da UCP




exemplos: acumulador, endereço da próxima instrução (contador de programa), “status” (“flags”), etc.
 memória “cache” (microprocessadores mais modernos)
interna
 memória “cache” (“escondida”, “transparente”) (nem sempre existente): armazena os dados (da memória
principal) de uso mais freqüente
 memória principal (ou real): onde o programa em execução e os dados sendo manipulados estão
armazenados
exemplos: RAM, ROM, EPROM, etc.
externa
 memória secundária (ou virtual, ou de massa): para armazenamento de grandes quantidades de
informação (programas e dados), que poderão ser utilizados no futuro

exemplos: disco rígido (magnético ou óptico), disco flexível, fita (magnética ou de papel), etc.
 capacidade: medida da quantidade de informação que pode ser armazenada num dispositivo
de memória


produto do número de posições (endereços) pelo tamanho de cada posição (conteúdo)
pode ser expressa em bits, em bytes (grupos de 8 bits) ou em palavras (grupos de bits, em geral 8, 16, 32 ou
64 bits, que definem a organização interna da memória)
 exemplo: memória de 8Kbits = 213 bits = 1Kbyte = 128 palavras de 64 bits
 unidade de transferência: número de bits a cada operação de leitura ou escrita na memória


para a memória interna, corresponde, em geral, à palavra
para a memória externa, é chamada de bloco (em geral, composto por diversas palavras)
ArquiteturaComputadores.doc - 28/02/yy – página 17
 método de acesso: forma pela qual o endereço de leitura ou escrita é acessado




seqüencial: o acesso é feito a partir da posição inicial, passando pelas posições intermediárias, até a posição
desejada
 exemplo: fita
direto: o acesso é feito diretamente a uma posição próxima à desejada, e, a partir daí, de forma seqüencial
até a posição desejada
 exemplo: disco
randômico (ou aleatório): o acesso é feito diretamente à posição desejada
 exemplo: memória principal
associativo: o acesso é feito por comparação de parte do conteúdo de cada palavra com um valor desejado, e
não pelo endereço da posição (eventualmente, o valor procurado pode não ser encontrado)
 exemplo: memória “cache”
 desempenho: medidas da velocidade de execução das operações de memória



tempo de acesso: tempo decorrido entre o fornecimento do endereço (ou do valor desejado, no caso do
acesso associativo) à memória e a conclusão da operação de leitura ou escrita
 no caso do acesso seqüencial ou direto, varia em função da posição
 no caso do acesso randômico ou associativo, igual para todas as posições
tempo de ciclo de memória: tempo de acesso, somado ao tempo necessário para um novo acesso
taxa de transferência: quantidade de bits (ou palavras) que podem ser acessados, por unidade de tempo (isto
é, o inverso do tempo de ciclo de memória)
 propriedades físicas

material: tecnologia empregada na fabricação do dispositivo
 semicondutor: RAM, ROM, EPROM, “flash”
 magnético: disco (rígido ou flexível), fita
 óptico: disco (CD-ROM, DVD)
 volatilidade: capacidade de reter informação ou não, quando o dispositivo é desligado
(“desenergizado”)


não volátil: retém a informação, mesmo “desenergizado”
 exemplos: disco, fita, ROM, “flash”, CD-ROM, DVD
volátil: perde a informação, se “desenergizado”
 exemplo: RAM
 alterabilidade: possibilidade de sucessivas operações de escrita


alterável: disco magnético, fita magnética, RAM, EPROM, “flash”
não alterável: ROM, CD-ROM
 custo: gastos com a produção do dispositivo, por bit



alto: registradores, memória “cache”
médio: memória principal
baixo: memória secundária
 essas características acabam definindo uma organização hierárquica de memórias com o
objetivo de obter, para o sistema, uma capacidade adequada, com alto desempenho e baixo
custo

em ordem decrescente de hierarquia:
tipo
capacidade
desempenho
custo
freqüência de acesso
registradores
memória “cache”
memória principal
memória secundária (disco)
memória secundária (fita)
pequena
pequena
média
alta
muito alta
alto
alto
médio
baixo
muito baixo
alto
alto
médio
baixo
muito baixo
alta
alta
média
baixa
baixa
ArquiteturaComputadores.doc - 28/02/yy – página 18
re gs
"cache "
p r in c ip a l
s e c u n d á r ia (d is c o )
s e c u n d á r ia (f it a )
ArquiteturaComputadores.doc - 28/02/yy – página 19
MEMÓRIA PRINCIPAL
 armazena as instruções do programa sendo executado pela UCP, e os dados por ele sendo
manipulados (característica da arquitetura de von Neumann)
 nos primeiros computadores, empregou a tecnologia de matrizes de anéis com núcleos de
ferrite (ferromagnético), hoje abandonada
 os computadores atuais utilizam pastilhas de semicondutor (silício)
 produzida com diferentes tecnologias, e, por isso, apresenta diferentes características, para
diferentes aplicações
 célula representativa de 1 bit
c o n t r o le
s e le ç ã o
c é lu la
e s c r it a
c o n t r o le
d a d o a s e r e s c r it o
s e le ç ã o
c é lu la
d a d o lid o
l e it u r a
sinal de seleção: ativa ou desativa a célula
sinal de controle: se a célula está ativa, indica se a operação é de leitura ou de escrita
ArquiteturaComputadores.doc - 28/02/yy – página 20
 memória de “acesso aleatório” (“RAM – random access memory”)





denominação infeliz (todas as tecnologias de memória principal apresentam acesso aleatório)
permite operações de leitura e escrita
utilizada em computadores de uso geral, para armazenar programas e dados, e em computadores de uso
específico, para armazenar dados
volátil; perde seu conteúdo quando desenergizada
apresenta 2 tipos
 dinâmica (“DRAM – dynamic RAM”)





célula básica: capacitor
perde seu conteúdo com o tempo (mesmo energizada)
necessita ser constantemente “refrescada”, exigindo um circuito especial de regeneração
possibilita alta densidade de empacotamento (alta capacidade numa única pastilha)
estática (“SRAM – static RAM”)




célula básica: “flip-flop”
não perde seu conteúdo com o tempo (desde que se mantenha energizada)
vantagens sobre a DRAM: mais rápida, exige circuito mais simples
desvantagens: menos densa, maior custo por bit (especialmente em memórias de alta capacidade, pois o custo do circuito de
regeneração da DRAM fica diluído)
 memória apenas de leitura “ROM – read-only memory”)




permite apenas operações de leitura
utilizada em computadores de uso geral, para armazenar tabelas de constantes ou pequenas partes do sistema
operacional (“BIOS – basic input/output system”), e em computadores de uso específico, para armazenar os
programas de controle
não volátil; não perde seu conteúdo quando desenergizada
apresenta diversos tipos
 convencional



programável (“PROM – programmable ROM”)



pode ser apagada, todos os bytes simultaneamente, por raios ultra-violeta (em geral, precisa ser removida do circuito)
depois de apagada, dados podem ser gravados eletricamente, pelo usuário (diversas vezes)
programável, eletricamente apagável (“EEPROM – electrically EPROM”)





não pode ser apagada
dados podem ser gravados eletricamente, pelo usuário (apenas uma vez)
programável, apagável (“EPROM – erasable PROM”)



não pode ser apagada
dados gravados pelo fabricante (apenas uma vez)
pode ser apagada eletricamente, um byte de cada vez (sem precisar ser removida do circuito)
dados podem ser gravados eletricamente, no próprio circuito (diversas vezes)
tempo de escrita bem superior ao tempo de leitura
apresenta menor densidade e maior custo por bit do que a EPROM
“flash” (“rápida”)




pode ser apagada eletricamente, um bloco de cada vez (sem precisar ser removida do circuito)
depois de apagados, dados podem ser gravados eletricamente, no próprio circuito (diversas vezes)
geralmente utilizada para armazenar dados de configuração, definidos pelo usuário durante a operação normal do
equipamento, mas não com muita freqüência
intermediária (em custo e em desempenho) entre a EPROM e a EEPROM
ArquiteturaComputadores.doc - 28/02/yy – página 21
DETECÇÃO E CORREÇÃO DE ERROS NA MEMÓRIA PRINCIPAL
 a memória a semicondutor pode apresentar erro por diversos motivos






defeito de fabricação
descarga eletrostática
falha de alimentação
presença de partículas alfa (radiativas)
excesso de uso
condições ambientais inadequadas
 o erro apresentado pode ser


temporário, ou moderado
permanente, ou grave
 existem técnicas que permitem


apenas detectar um erro
detectar um erro, e corrigi-lo
 genericamente, nessas técnicas




na operação de escrita, a cada M bits de informação a serem escritos, além dos M bits são escritos mais K
bits adicionais, obtidos em função dos M bits de informação
na operação de leitura, são lidos os M+K bits; em função dos M bits de informação lidos, são calculados os K
bits adicionais, e comparados com os K bits adicionais lidos
essa comparação permite detectar erros e, eventualmente, corrigir um erro detectado
os K bits adicionais são chamados, geralmente, de bits de redundância, ou bits de paridade, ou de verificação
 estratégias

bit de paridade
 na escrita, a cada byte de informação (M=8), grava-se um bit adicional (K=1), de paridade, de tal forma
que os 9 bits apresentem um número par de bits em “1”
 na leitura dos 9 bits, se for obtido um número ímpar de bits em “1”, a ocorrência de um erro é indicada
 permite a detecção da ocorrência de um número ímpar de bits errados (1, 3, 5, ...); não permite a
detecção de um número par de bits errados (2, 4, 6, ...)
 um erro apenas no bit de paridade provoca a falsa indicação de erro na informação
 eventualmente, pode-se empregar a estratégia oposta na geração do bit de paridade (forçar um número
ímpar de bits em “1”)
 exemplo






informação a ser escrita na memória: 01000011
bit de paridade acrescentado: 1
se lidos: 01000011 1 (não houve erro)
 não há indicação de erro  OK
se lidos: 01000001 1 (erro no penúltimo bit de informação)
 indicação de erro (sem correção)  OK
se lidos: 01000011 0 (erro no bit de paridade)
 indicação de erro (indevida)  OK
se lidos: 01010001 1 (2 erros: no 4o. e no penúltimo bits)
 não há indicação de erro!  não OK
ArquiteturaComputadores.doc - 28/02/yy – página 22

redundância triplicada
 na escrita, a cada bit de informação (M=1), gravam-se 2 bits adicionais (K=2), iguais ao bit de
informação
 na leitura, os 3 bits lidos são comparados; havendo divergência (o que indica erro), faz-se uma “votação”,
optando-se pelo valor que apresentar maioria de 2 a 1
 permite a detecção e a correção de 1 único bit errado, a cada 3 bits armazenados
 inconveniente: alto consumo de memória (3*M)
 exemplo






informação a ser escrita na memória: 0
bits de redundância acrescentados: 00
se lidos: 000 (não houve erro)
 não há indicação de erro  OK
se lidos: 010 (erro no 2o. bit)
 indicação de erro, adotado bit = 0  OK
se lidos: 110 (2 erros, nos 2 primeiros bits)
 indicação de erro, adotado bit = 1  não OK
código de Hamming (criado por Richard Hamming, dos Laboratórios Bell, nos Estados Unidos)
 a cada M bits de informação, são acrescentados K bits de verificação, de tal forma que
M  2K-K-1

exemplo de cálculo, para M=4






K
M máximo
3
4
5
6
7
8
4
11
26
57
120
247
 K=3
sendo d0, d1, d2, e d3 os bits de informação, os bits de verificação v0, v1, e v2 são calculados por:
v0 = d0  d1  d3
v1 = d0  d2  d3
v2 = d1  d2  d3
na escrita, os bits são armazenados na ordem: v0v1d0v2d1d2d3
na leitura, o vetor (P2,P1,P0) é calculado por:
P 2 = v 2  d1  d2  d3
P 1 = v 1  d0  d2  d3
P 0 = v 0  d0  d1  d3
se o vetor (P2,P1,P0) = (0,0,0)
 não houve erro
senão
 (P2,P1,P0) indica a posição do bit com erro
exemplo:



informação a ser escrita na memória: d0d1d2d3 = 1101
bits de verificação acrescentados:
v0 = 1  1  1 = 1
v1 = 1  0  1 = 0
v2 = 1  0  1 = 0
 dados escritos: v0v1d0v2d1d2d3 = 1010101
se lidos: v0v1d0v2d1d2d3 = 1010001 – erro no bit d1
P2 = 0  0  0  1 = 1
P1 = 0  1  0  1 = 0
P0 = 1  1  0  1 = 1
 erro no 5o. bit = d1  OK!
ArquiteturaComputadores.doc - 28/02/yy – página 23
MEMÓRIA “CACHE”
 a cada instrução executada, a UCP faz, pelo menos, um acesso à memória, para a leitura do
código da instrução, durante o ciclo de busca (outros acessos, de leitura e/ou de escrita,
podem, também, ser feitos durante o ciclo de execução)
 ao longo dos anos, com os avanços da tecnologia, o desempenho da UCP aumentou num ritmo
acelerado, que não foi acompanhado pelo aumento do desempenho dos dispositivos de
memória principal
 como conseqüência, a memória principal (antes do advento da memória “cache”) passou a ser
uma espécie de “gargalo” dos sistemas computacionais, obrigando a UCP a diminuir um pouco
seu ritmo (através da inclusão de estados de espera, ou “wait states”), para que as operações
de leitura e de escrita na memória pudessem ser completadas
 para contornar esse problema, foi criado um novo nível hierárquico de memória, entre a
memória da UCP (registradores) e a memória principal convencional
 o nome “cache” vem do Francês “caché”, que significa “escondido”, no sentido de que a
introdução dessa memória seja “transparente” ao usuário do sistema computacional (isto é,
que ele não precisa alterar seus procedimentos habituais)
 comparada com a memória principal, a memória “cache”



é mais rápida (construída com tecnologia mais moderna)
é mais cara (maior custo por bit)
é menor (tem menor capacidade de armazenamento)
 procedimento de acesso à memória, pela UCP




verifica, inicialmente, se a informação desejada já está na memória “cache”
se estiver, faz o acesso
se não estiver, faz o acesso à memória principal
se o acesso for uma leitura, copia o dado lido na memória “cache”
 essa estratégia se baseia nos princípios da localidade


princípio da localidade temporal: se uma palavra da memória é acessada por um programa, é bastante provável
que essa mesma palavra volte a ser acessada pelo programa num curto intervalo de tempo
princípio da localidade espacial: se uma palavra da memória é acessada por um programa, é bastante provável
que outras palavras na vizinhança dessa palavra sejam acessadas pelo programa
 no projeto da memória “cache”, devem ser definidos






o tamanho da memória “cache”
a função de mapeamento
o algoritmo de substituição
a política de escrita na memória
tamanho do bloco transferido para a memória “cache”
o número de níveis de “cache”
 essas definições devem procurar maximizar a probabilidade de se encontrar uma informação
na memória “cache”, minimizando a necessidade de acessos à memória principal
 com isso, consegue-se um tempo de acesso ao sistema de memória (“cache” + principal)
próximo ao tempo de acesso da memória “cache”
 tamanho da memória “cache”




deve ser grande o suficiente para que a necessidade de acessos à memória principal não seja freqüente
deve ser pequena o suficiente para que não apresente custo elevado, e para que se mantenha com baixo tempo
de resposta
entre outros fatores, o tamanho ideal depende do tipo de programas sendo executados
estudos mostram que a memória “cache” deve ter entre 1Kbyte e 512Kbytes
ArquiteturaComputadores.doc - 28/02/yy – página 24
 função de mapeamento


como a área da memória “cache” é menor do que a da memória principal, é preciso que se defina a posição em
que um bloco de dados deve ser armazenado na memória “cache”, em função do seu endereço na memória
principal
 mapeamento direto: cada bloco da memória principal tem uma única posição na memória “cache” para ser
armazenado
 mapeamento associativo: cada bloco da memória principal pode ser armazenado em qualquer posição da
memória “cache”
 mapeamento associativo por conjuntos: cada bloco da memória principal tem um conjunto de posições na
memória “cache” para ser armazenado
para o bloco de dados poder ser localizado na memória “cache”, além das informações obtidas na memória
principal, é armazenada, na memória “cache”, a informação que permite a identificação do endereço original
do bloco na memória principal
 algoritmo de substituição


como a memória “cache” é menor do que a memória principal, o armazenamento de um bloco no “cache”
certamente implica na remoção de outro bloco previamente armazenado
a escolha do bloco a ser substituído, no caso do mapeamento associativo (em que há mais de uma opção) pode
obedecer ao critério
 do bloco que não é usado há mais tempo (em geral, o mais eficiente, devido ao princípio da localidade
temporal)
 do bloco que foi armazenado há mais tempo
 do bloco que foi menos referenciado
 aleatório (mais simples, e de desempenho levemente inferior ao dos demais)
 política de escrita (ou de atualização) na memória



quando um dado armazenado na memória “cache” é alterado por um programa, deve-se adotar uma política que
defina como essa alteração deve ser realizada na memória principal
a escolha dessa política deve considerar se a memória principal, além do “cache”, pode também ser acessada
diretamente por módulo de entrada/saída, ou por outra UCP
cada possível política apresenta vantagens e desvantagens
 escrita em ambas (“write through”): toda a escrita na memória “cache” causa a respectiva atualização da
memória principal



escrita somente no retorno (“write back”): a memória principal só é atualizada quando o respectivo bloco
na memória “cache” é substituído



vantagem: a memória principal está sempre válida
desvantagem: há um número excessivo de acessos à memória principal (muitos deles, desnecessários), o que diminui o
desempenho do “cache”
vantagem: minimiza os acessos à memória principal
desvantagem: a memória principal fica temporariamente desatualizada; um eventual acesso de outro dispositivo pode
acarretar um erro
sistemas com uma única memória principal compartilhada por diversos processadores, cada um deles possuindo
sua própria memória “cache”, exigem estratégias ainda mais complexas
 tamanho do bloco transferido para a memória “cache”



bloco muito pequeno não traz todos os “vizinhos da posição desejada
bloco muito grande traz “vizinhos muito distantes da posição desejada
estudos mostram que o bloco deve ter entre 2 e 8 palavras
 número de níveis de “cache”




o conceito de “cache” pode ser estendido para diversos níveis hierárquicos de memória
atualmente, alguns sistemas empregam 2 níveis de “cache” (chamados de L1 e L2), dos quais o superior é
implementado na própria pastilha do processador (“cache” interno)
estudos mostram que a melhoria do desempenho é pequena para mais de 2 níveis de “cache”
pode-se, também, implementar uma área de “cache” para dados separada da área de “cache” para instruções
de programa
ArquiteturaComputadores.doc - 28/02/yy – página 25
MEMÓRIA SECUNDÁRIA
 outras denominações


memória de massa, pois armazena grandes quantidades de informações
memória externa, pois se localiza fora da UCP
 acesso feito através de módulos de entrada e saída
 pode, também, ser considerada entrada/saída
 armazena programas e dados que não necessariamente estejam sendo utilizados
correntemente pela UCP
 comparação com a memória principal



maior capacidade
menor velocidade
menor custo por byte
 principais dispositivos




disco magnético (rígido ou flexível)
disco óptico
fita magnética
fita e cartões de papel, perfurados (não mais utilizados)
 disco magnético











prato de metal ou plástico, recoberto por material magnetizável
mantido em rotação em torno de seu eixo central por um acionador de disco (“disk driver”)
leitura e escrita de dados feita por uma bobina condutora chamada “cabeçote”
os dados são gravados em anéis concêntricos, denominados trilhas (tipicamente, de 500 a 2.000 trilhas por
disco)
cada trilha tem a mesma largura da cabeça
trilhas adjacentes são separadas por espaços vazios (“gaps”)
a unidade de transferência é o bloco (tipicamente, composto por algumas centenas de bytes)
cada bloco ocupa um setor de uma trilha (tipicamente, há entre 10 e 100 setores por trilha)
setores adjacentes de uma mesma trilha também são separados por espaços vazios (“gaps”) intersetoriais
trilhas mais internas apresentam maiores densidades de gravação, para possibilitar a manutenção da
velocidade de rotação constante (independentemente da trilha sendo acessada)
características dos discos
 mobilidade do cabeçote



portabilidade



prato único
pratos múltiplos superpostos verticalmente

neste caso, o conjunto das trilhas na mesma vertical (uma em cada face de cada prato) forma um cilindro
distanciamento do cabeçote




face simples
face dupla
número de pratos



disco não removível
disco removível
número de faces de gravação



cabeçotes fixos (um para cada trilha)
cabeçote móvel (um cabeçote para cada face, que se move na direção radial)
em contato com o disco (discos flexíveis)
distância fixa
distância aerodinâmica, variável (tecnologia Winchester, para discos rígidos)
flexibilidade


rígido (“hard”)
flexível (“floppy”)
ArquiteturaComputadores.doc - 28/02/yy – página 26

parâmetros de medida de desempenho
 três componentes que, somados, definem o tempo de acesso, isto é, o tempo decorrido entre a emissão
de um comando de leitura ou escrita e a efetiva execução do comando
 tempo de busca (“seek time”)



tempo gasto para a movimentação radial do cabeçote, até a trilha desejada
varia (não linearmente) com o número de trilhas a serem atravessadas
geralmente, maior componente do tempo de acesso, nos discos de cabeçote móvel (tipicamente, de 5ms a 300ms)
 tempo de busca = tempo de partida do cabeçote +
número de trilhas “atravessadas” * tempo para “atravessar” uma trilha




= 0, para os discos de cabeçotes fixos
tempo de latência, ou atraso rotacional (“rotational delay”)

tempo decorrido entre a chegada do cabeçote à trilha desejada e a passagem, sob o cabeçote, do primeiro setor (bloco)

tempo médio de latência

em média, é dado pela metade do tempo de 1 revolução do disco (isto é, 8,3ms, para uma velocidade típica de 3.600rpm)
tempo de uma revoluçãodo disco
2
tempo de transferência (“transfer time”)


tempo decorrido para o cabeçote percorrer o(s) setor(es) (bloco(s)) desejado(s)
depende do número de bytes a serem acessados, do número de bytes por trilha e da velocidade rotacional do disco

tempo de transferência 

tipicamente, inferior a 1ms, para o acesso a 1 bloco
número de bytes a serem acessados
número de bytes por trilha * velocidaderotacional
tecnologia Winchester, para discos rígidos
 desenvolvida pela IBM, no início dos anos 80
 tomou o nome de um modelo popular de fuzil
 um único dispositivo, selado, composto por disco, cabeçote e acionador
 distância aerodinâmica, variável, entre cabeçote e disco
 viabilizou discos com maior capacidade (superior a 1Gbyte), graças à maior densidade de gravação, e ao
menor tempo de acesso
 tornou-se, popularmente, um sinônimo para disco rígido
 disco óptico (“CD-ROM – compact disk – read only memory”)






prato com pequenas imperfeições, que provocam alterações detectáveis na reflexão de raios laser emitidos
pelo acionador
originário do disco compacto utilizado para armazenar informações digitalizadas de áudio
apenas para operações de leitura (vem gravado de fábrica)
dados gravados em blocos (setores) de uma trilha única, espiralada
ao contrário dos discos magnéticos, nos discos ópticos a densidade de gravação é, em geral, igual em todas as
trilhas (logo, as trilhas mais internas têm menos blocos), o que obriga a manutenção da velocidade constante
(em conseqüência, a velocidade rotacional é maior para o acesso às trilhas mais internas)
comparação com o disco magnético rígido
 vantagens




desvantagens




maior robustez
maior portabilidade (removível)
facilidade de produção em massa
baixa velocidade
impossibilidade da operação de escrita
disco óptico gravável (“escrita única, leitura múltipla”) (“WORM – write-once, read many”)
 compatível com o acionador de CD-ROM convencional
 adequado para o armazenamento de documentos e arquivos
disco óptico apagável
 pode ser gravado diversas vezes
 em geral, exige equipamentos de maior qualidade
 vantagens sobre os discos magnéticos



maior capacidade
maior portabilidade
maior confiabilidade
ArquiteturaComputadores.doc - 28/02/yy – página 27
 disco de vídeo digital (“DVD - digital video disk”)


adaptação do DVD utilizado para gravação de imagens
capacidade extremente alta
 disco magneto-óptico



gravação magnética, com o auxílio de raios laser
leitura óptica
vantagens sobre o disco magnético convencional
 maior densidade de gravação
 maior durabilidade
 menor custo por byte
 fita magnética









mais antigo dispositivo de memória secundária
mesma mídia do disco magnético
leitura e escrita feitas por uma cabeça, fixa
os dados são gravados ao longo de trilhas paralelas, longitudinais
a unidade de transferência é o bloco, ou registro
blocos adjacentes de uma mesma trilha são separados por espaços vazios inter-registros
acesso seqüencial, isto é, necessário o acesso a todos os registros existentes entre o registro correntemente
posicionado sob a cabeça, e o registro desejado
baixo custo, baixa velocidade
ocupa a posição inferior, na organização hierárquica de memórias
ArquiteturaComputadores.doc - 28/02/yy – página 28
REDUNDÂNCIA NA MEMÓRIA SECUNDÁRIA (“RAID”)
 comparado com o desenvolvimento de processadores e de dispositivos de memória principal, o
aprimoramento dos dispositivos de memória secundária tem se processado num ritmo bem
mais lento, devido às dificuldades mecânicas na produção desses dispositivos
 diversas técnicas têm sido sugeridas, para aumentar o desempenho e a confiabilidade dos
discos magnéticos rígidos
 na maioria dos casos, essas técnicas se utilizam de vários discos, eventualmente mais
baratos, operando simultaneamente, armazenando dados de forma redundante
 uma dessas técnicas é a do arranjo redundante de discos independentes, conhecida como
RAID (“redundant array of independent disks”)







proposta por um grupo de pesquisadores da Universidade da Califórnia, em Berkeley, Estados Unidos, em
1988
originalmente, “redundant array of inexpensive disks”, ou “arranjo redundante de discos de baixo custo”
define um conjunto de discos fisicamente separados, mas vistos como um único dispositivo
os dados podem ser distribuídos pelos discos do conjunto
os dados podem ser armazenados de maneira redundante, para possibilitar a sua recuperação, em caso de uma
falha em disco, apesar do aumento da necessidade de espaço
os discos podem ser acessados simultaneamente, buscando aumentar a velocidade de operação
são definidos 7 níveis diferentes, com pequenas diferenças de implementação, em função da aplicação a que
cada nível se destina
 nível 0: para aplicações que exigem alto desempenho (sem exigir confiabilidade)
 nível 1: para arquivos que exigem segurança
 nível 3: para aplicações com grande volume de dados, como processamento de imagens
 nível 5: para aplicações que exigem alta taxa de acessos para leitura
 nível 6: para aplicações que exigem grande disponibilidade
 níveis 2 e 4: atualmente, não comercializados (seu custo não é compensado pelo seu benefício)
ArquiteturaComputadores.doc - 28/02/yy – página 29
DISPOSITIVOS DE ENTRADA E SAÍDA
 os sistemas computacionais se utilizam de uma grande variedade de dispositivos periféricos
para comunicação com o mundo exterior, que empregam diferentes métodos de operação
 em geral, a taxa de transferência de dados desses dispositivos é bem inferior à taxa entre
UCP e memória
 esses dispositivos se utilizam de padrões de dados e de comprimentos de palavras em geral
diferentes dos utilizados pelo sistema computacional ao qual se conectam
 há, portanto, a necessidade de módulos de entrada e saída, servindo como


interface com a UCP e a memória, através do barramento
interface com os dispositivos periféricos, através de conexões específicas
 cada módulo pode servir de interface


para um único dispositivo periférico
para vários dispositivos periféricos
 dispositivos periféricos



comunicação com o usuário: teclado, vídeo, "mouse", impressora, mostrador ("display"), "scanner", microfone,
alto-falante, mesa digitalizadora, chaves, botões
comunicação com equipamentos: acionador de disco, sensores, atuadores
comunicação com dispositivos remotos: fax, modem, outro computador
 tipos de comunicação entre o módulo de entrada e saída e o dispositivo periférico

serial (bit a bit) - uma única linha de conexão
 mais lenta que a paralela, mas mais econômica (menos fios)
 utilizada para comunicação a longa distância, ou em que não há exigência de velocidade
exemplos: modem, teclado, mouse
 pode ser



síncrona - controlada por um sinal que dá o ritmo da comunicação ("clock")

o sinal “clock” pode ser enviado em outra linha, ou codificado, junto com a informação
assíncrona - controlada por dados (caracteres ou bits) de sincronismo

exemplos de caracteres e bits de sincronismo: "start of text", "end of text", "start bit", "stop bit"
paralela (vários bits de uma só vez) - várias linhas de conexão
 utilizada para comunicação a curta distância
exemplo: impressora, acionador de disco
 teclado


categorias
 apenas (ou predominantemente) numéricos
exemplos: calculadoras, caixas registradoras
 para sistemas dedicados, com teclas funcionais específicas
exemplo: aparelho de vídeo-cassete, controlador de equipamento industrial
 comum, de uso geral, com teclas alfabéticas, numéricas, de símbolos e de controle
exemplo: teclado de computador pessoal
tecnologia de fabricação
 teclas mecânicas (de contato direto)




vantagem: baixo custo, pequeno tamanho, longa vida útil (+/- 20 milhões de pressionamentos)
 teclas de efeito "hall"
problema comum: “bouncing” (vibração, trepidação)
 solução: filtragem (“debouncing”)


problema: oxidação dos contatos
teclas capacitivas (de acoplamento de placas, com variação de capacitância)
pode ser feita por filtro de “hardware” ou de “software”
padrão ASCII (utilizado por outros dispositivos, como o vídeo)
ArquiteturaComputadores.doc - 28/02/yy – página 30
 vídeo


outras denominações: monitor, tela, terminal
tecnologia de fabricação
 tubo de raios catódicos (CRT - "cathode-ray tube")






feixe de elétrons, defletidos por placas
semelhante ao aparelho de TV comum
 diodos emissores de luz (LED - "light emitting diodes")
 vídeo de cristal líquido (LCD - "liquid-crystal display")
 vídeo de tela plana (FPD - "flat panel display")
 vídeo de plasma (4o. estado da matéria: gás ionizado)
modalidade de representação
 textual - caracter a caracter
 semi-gráfico
 gráfico - ponto a ponto
resolução - número de pontos ("pixels")
exemplos: 320 x 200, 800 x 600, 1.024 x 768, 1.280 x 1.024, 1.920 x 1.080
cores
 monocromático
 colorido
padrões mais comuns
 VGA, SVGA, CGA, EGA etc.
 impressora

tecnologia de impressão
 de impacto




de esfera
de "margarida"
matricial (de agulhas)
sem impacto



de jato de tinta
de jato de cera
a laser

velocidade de impressão
 medida em caracteres por segundo, ou linhas por minuto, ou páginas por minuto (ppm)

resolução de impressão
 medida em pontos por polegada (dpi - “dots per inch”)





valores típicos: de 300dpi a 1.200dpi
cores
 monocromática
 colorida
comunicação com a Unidade Central de Processamento
 serial (mais lenta, mais barata, menos comum)
 paralela (mais rápida, mais comum - padrão CENTRONICS)
 padrão USB
 comunicação sem fio (“wireless”)
 "mouse"

valores típicos: de 4ppm a 100ppm
tecnologia de fabricação
 mecânico - esfera e roletes
 óptico-mecânico - esfera vazada, leds e foto-sensores
 óptico
resolução típica: 400 pontos por polegada
ArquiteturaComputadores.doc - 28/02/yy – página 31
 funções básicas dos módulos de entrada e saída





controle e "timing"
 coordenação do fluxo de informações entre o computador e o mundo exterior
comunicação com o processador
 decodificação dos comandos recebidos do processador
 envio e recepção de dados ao processador
 envio do estado operacional corrente ("status") ao processador
 reconhecimento do endereço enviado pelo processador, referente a um dispositivo de entrada e saída
sob seu comando
comunicação com dispositivos periféricos
 envio, conforme o caso, de comandos, dados e solicitações de estados correntes ("status") a dispositivos
periféricos, para o seu controle
armazenamento de dados
 armazenamento temporário de dados trocados entre os dispositivos periféricos e o processador, para
compatibilizar suas velocidades (pois cada dispositivo opera numa velocidade própria, diferente da do
processador)
detecção e sinalização de erros
 detecção de eventuais erros ocorridos durante a operação dos dispositivos, provocados por falhas
elétricas, mecânicas ou operacionais, ou ainda por más condições ambientais, e sua sinalização ao
processador
 um módulo de entrada e saída pode ser chamado de


processador de entrada e saída, ou canal de entrada e saída
 executa a maior parte do tratamento de operações de entrada e saída
 existente, em geral, nos computadores de grande porte ("main frames")
controlador de entrada e saída ou controlador de dispositivo
 mais primitivo, com recursos mais específicos e limitados
 existente nos microcomputadores pessoais
ArquiteturaComputadores.doc - 28/02/yy – página 32
TIPOS DE OPERAÇÕES DE ENTRADA E SAÍDA
 modos de endereçamento do dispositivo onde a operação será efetuada


mapeamento de entrada e saída em memória
 acesso ao dispositivo feito da mesma forma que a uma posição de memória
 distinção feita pelo endereço fornecido pelo processador, que corresponde a um dispositivo de entrada
e saída (e não a uma posição de memória)
 dispositivos de entrada e saída e memória têm endereços distintos
mapeamento de entrada e saída isolada
 instruções específicas para operações de entrada e saída permitem o acesso ao dispositivo (do tipo
"input" e "output")
 dispositivos de entrada e saída e memória podem ter endereços coincidentes (o que os distingue é a
instrução utilizada)
 estratégias para a realização das operações

espera de sinalização ("wait for flag") (ou entrada/saída programada)
 controle, pelo processador, da operação de entrada e saída




detecção, pelo processador, do término da operação de entrada e saída


através do "status" periodicamente solicitado ao módulo de entrada e saída
acionamento por interrupção
 o processador inicia a operação de entrada e saída
 enquanto a operação de entrada e saída se realiza, o processador prossegue sua atividade, realizando
outras tarefas
 quando a operação de entrada e saída se completa, o módulo de entrada e saída envia um pedido de
interrupção ao processador
 ao fim do ciclo de execução de uma instrução, o processador verifica se há um pedido de interrupção
pendente, à espera de atendimento
 caso haja mais de um pedido de interrupção pendente, um esquema de prioridades define qual o pedido a
ser tratado
 o processador trata a interrupção




interrompe seu processamento
salva o "contexto" (valores correntes dos registradores e endereço da próxima instrução)
identifica quem fez a solicitação de interrupção
passa ao tratamento da interrupção (efetivando a operação de entrada ou de saída)
ao fim do tratamento da interrupção, o processador retorna ao ponto em que o programa foi
interrompido
 em comparação com a entrada e saída por espera por sinalização, a entrada e saída por interrupção
costuma apresentar melhor desempenho, pois o processador não precisa ficar sem fazer nada, até que a
operação de entrada e saída seja concluída
acesso direto à memória (DMA - "direct memory access")
 tanto na entrada e saída por programa quanto por interrupção, cabe ao processador a tarefa de
controlar o tráfego de dados entre o módulo de entrada e saída e a memória
 alguns sistemas computacionais, porém, possuem uma conexão entre a memória principal e o módulo de
entrada e saída
 nesses casos, cabe ao módulo de entrada e saída, por acesso direto à memória, o controle total da
operação de entrada e saída, inclusive a transferência de dados da, ou para a memória principal (através
do barramento)
 o processador, então, fica liberado para executar suas tarefas


solicitação de "status" ao módulo de entrada e saída
envio de comandos ao módulo de entrada e saída
troca de dados com o módulo de entrada e saída
ArquiteturaComputadores.doc - 28/02/yy – página 33
UNIDADE CENTRAL DE PROCESSAMENTO
 UCP: componente do sistema computacional responsável pelo processamento das informações
e pelo controle dos demais componentes



também chamada CPU - "central process unit"
analogia com o ser humano: cérebro
(no passado, o computador era chamado de "cérebro eletrônico")
funções de processamento e de controle
 responsável pela execução de uma seqüência de "ciclos de instrução"



cada ciclo de instrução
 busca uma instrução na memória, uma de cada vez
 decodifica (interpreta) a instrução
 busca os operandos
 executa efetivamente a operação
 guarda o resultado (se houver)
 reinicia o processo, buscando outra instrução
no passado, esses passos eram executados seqüencialmente, um de cada vez
hoje, emprega-se a técnica da linha de montagem ("pipeline"), que permite a execução simultânea de alguns
desses passos
 principais elementos da UCP





registradores
unidade aritmética e lógica
unidade de controle (incluindo o decodificador de instruções)
memória “cache” (nas mais modernas)
relógio
 implementação física dos elementos constituintes da UCP


por componentes eletrônicos distintos (computadores mais antigos)
numa única pastilha ("chip"): o microprocessador
 registradores



servem para armazenar informações, utilizadas no interior da UCP
 memória de nível hierárquico mais alto
número e tamanho dos registradores variam de acordo com o projeto da UCP
quanto à função, podem ser classificados como
 acessíveis ao usuário - podem ser acessados através de instruções em linguagem de máquina (ou de
montagem)




dados - armazenam valores de operandos
endereços - armazenam endereços de operandos
uso geral - podem ter diversas funções
sinalização ("flags") - indicam ocorrência de eventos e de situações especiais ("status")
de controle - controlam a execução das instruções, sem que possam ser diretamente referenciados por
elas
uma instrução pode fazer referência a 0, 1, 2, 3 ou mais registradores (1 ou 2 são os mais comuns)


de
de
de
de
ArquiteturaComputadores.doc - 28/02/yy – página 34

exemplos de registradores mais comumente utilizados pelas UCPs
 acumulador (ACC - "accumulator")






endereço da próxima instrução (ou contador de instrução, ou contador de programa) (PC - "program
counter")









registrador de controle
armazena o dado a ser escrito na memória, ou o dado (ou o código de instrução) recentemente lido na memória
seu número de bits é, geralmente, igual à largura do barramento de dados
sinalizadores, ou indicadores ("flags")






registrador de controle
armazena o endereço da posição da memória em que está sendo feita uma operação de leitura (de instrução ou de dado) ou de
escrita (de dado)
seu número de bits (n), geralmente igual à largura do barramento de endereços, determina a capacidade (N) da memória
principal  N=2n
dado da memória (MBR - "memory buffer register")




registrador de controle
armazena o código da última instrução obtida na memória durante um ciclo de busca
utilizado na decodificação (interpretação) da instrução sendo executada
endereço da memória (MAR - "memory address register")



presente em praticamente todos os processadores
registrador de controle
armazena o endereço que contém o código da próxima instrução a ser obtida na memória de programa (durante o ciclo de
busca), para ser executada
incrementado automaticamente, após a obtenção da instrução
alterado pelas instruções de desvio (os "saltos")
na ocorrência de interrupções ou de instruções de chamada de rotina, precisa ser guardado em um local em que possa ser
posteriormente recuperado (em geral, na "pilha")
seu número de bits (n) determina o comprimento máximo (N) dos programas  N=2n (a menos que se utilize “memória virtual”)
instrução sendo executada (IR - "instruction register")




presente em diversos processadores
registrador de acesso ao usuário mais freqüentemente utilizado, pela maioria dos programas
tem esse nome porque, nas operações aritméticas e lógicas, além de armazenar um dos operandos, armazena também o
resultado obtido ao final da operação
empregado, também, para armazenar dados que são copiados de, e para, memória e módulos de entrada e saída
tem, em geral, o mesmo tamanho que o da palavra de memória
registradores de controle (alguns são, também, de acesso ao usuário)
possuem 1 único bit cada
podem formar, em conjunto, a "palavra de estado do programa" (PSW - "program status word")
armazenam indicações de "status" (ocorrência de eventos e situações especiais)
os mais comuns são

zero (Z - "zero") - indica se o resultado da última operação é 0 (ou se o valor corrente do acumulador é 0)

sinal (S - "sign") - indica o sinal (positivo ou negativo) do resultado da última operação (ou do valor corrente do
acumulador)

"vai-um", ou "vem-um" (C - "carry", ou B - "borrow") - indica se a última operação provocou um "vai-um" (no caso
da adição) ou um "vem-um" (no caso da subtração)

estouro (O - "overflow") - indica se a última operação provocou um "estouro" aritmético

habilitação de interrupção (I - "interrupt enable") - indica se o estado corrente da habilitação de interrupções
(habilitadas ou desabilitadas)
registradores de uso geral




registradores de acesso ao usuário
possuem diversos nomes

D0, D1, ..., D7, no microprocessador MC68000, da Motorola

AX, BX, CX, DX, no microprocessador 8086, da Intel

EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI, no microprocessador Pentium II, da Intel

B, C, D, E, H, L, no microprocessador 8080, da Intel

R0, R1, ..., R31, FPR0, FPR1, ..., FPR31, no microprocessador PowerPC, da IBM/Motorola
armazenam dados utilizados com freqüência nas operações da UCP, por causa do seu pequeno tempo de acesso
bastante utilizados pelos programas escritos em linguagem de montagem e pelo código gerado pelos compiladores
ArquiteturaComputadores.doc - 28/02/yy – página 35
 unidade aritmética e lógica (ALU - "arithmetic and logic unit")





também chamada de ULA - "unidade lógico-aritmética"
unidade que executa efetivamente, as operações algébricas (aritméticas e lógicas)
circuito lógico combinatório, com portas de alta velocidade
as operações envolvem 1 ou 2 operandos
operações aritméticas usuais
 2 operandos


1 operando


incremento de 1 / decremento de 1
operações lógicas
 2 operandos


"e" ("AND") / "ou" ("OR") / "ou exclusivo" (XOR")
1 operando




soma / subtração / multiplicação / divisão
complemento ("NOT") / deslocamento ("shift") e/ou rotação ("rotate") à esquerda ou à direita
algumas operações (em especial, multiplicação e divisão) não são executadas por processadores mais simples
em geral, o acumulador armazena sempre um dos operandos, e, também, o resultado da operação
alguns processadores permitem que sejam executadas operações entre os registradores de uso geral, sem o
uso do acumulador
 unidade de controle




parte da UCP de mais alta complexidade
responsável pela decodificação da instrução sendo executada, e pela geração dos sinais de controle nos
momentos adequados
esses sinais de controle atuam em praticamente todos os componentes da UCP, e ainda na memória principal e
nos módulos de entrada e saída
métodos utilizados na implementação da unidade de controle
 por circuito ("hardware")




os sinais de controle são gerados por um complexo circuito combinatório, que tem, como entradas, o código da instrução a ser
executada, sinais de sinalização ("flags") e o sinal do relógio
vantagem: alta velocidade para a geração dos sinais
desvantagem: pouca flexibilidade para alterações no projeto
por microprogramação ("software")



cada instrução corresponde a uma seqüência de micro-operações, indicadas por micro-instruções, que compõem um
microprograma
uma micro-operação é a menor ação que pode ser realizada pelo processador, a cada pulso do relógio (exemplos: incrementa
registrador de endereço da próxima instrução; copia acumulador em outro registrador de uso geral; copia registrador de uso
geral no registrador de endereço da memória; etc.)
a execução do microprograma é semelhante à de um programa (também seqüencial; também tem ciclo de micro-instrução),
mas bem mais simples
 relógio ("clock")






gera pulsos, que definem o ritmo de trabalho da UCP
o intervalo de tempo entre 2 pulsos consecutivos é o chamado "ciclo de máquina"
o inverso do ciclo de máquina (isto é, número de ciclos de máquina por unidade de tempo) é a freqüência do
relógio
durante cada ciclo de máquina, realiza-se, em geral, uma micro-operação
assim, em geral, quanto maior a freqüência do relógio, maior a velocidade de operação do processador
isso pode não ser verdade: uma máquina com freqüência de relógio menor do que a de outra máquina, pode ser
mais rápida, se suas instruções exigem menos micro-operações
analogia: um remador pode ter menor freqüência de remadas do que outro, mas ser mais rápido,
se suas remadas forem mais fortes
ArquiteturaComputadores.doc - 28/02/yy – página 36
UNIDADE ARITMÉTICA E LÓGICA
 manipula dados, realizando, com eles, operações aritméticas e lógicas
 tipos de dados manipulados

caracter
 usado para representar símbolos gráficos (para textos) e de caracteres de controle (para comunicação)
 codificação EBCDIC ("Extended Binary Coded Decimal Interchange Code")




definido pela IBM
codificação ASCII ("American Standard Code for Information Interchange")
uso universal
lógico
 usado para variáveis que podem ter apenas 2 valores (0 ou 1; ou "falso" ou "verdadeiro")
 lógica binária
 operações lógicas usualmente executadas pela unidade aritmética e lógica

"e" ("AND") - resultado é verdadeiro se e somente se todos os operandos são verdadeiros
A
0
0
1
1

B
0
1
0
1
"ou" ("OR") - resultado é verdadeiro se e somente se pelo menos um dos operandos é verdadeiro
A
0
0
1
1

B
0
1
0
1
X = NOT A = A = /A
1
0
"ou exclusivo" ("XOR") - resultado é verdadeiro se e somente se um número ímpar de operandos é verdadeiro
A
0
0
1
1

B
0
1
0
1
soma
subtração
incremento de 1
decremento de 1
multiplicação (menos usual)
divisão (menos usual)
 representação de dados numéricos



X = A XOR B = A  B
0
1
1
0
numérico
 usado para variáveis que exprimem quantidades
 operações numéricas usualmente executadas pela unidade aritmética e lógica







X = A OR B = A  B = A  B
0
1
1
1
"não" ("NOT") - resultado é verdadeiro se e somente se o operando é falso
A
0
1

X = A AND B = A  B = A  B
0
0
0
1
seqüência de dígitos binários, ou bits (0 ou 1)
 uso da base 2
representação em ponto fixo, para números inteiros
 sinal e magnitude
 complemento a 2
representação em ponto flutuante, para números fracionários
 notação científica (mantissa e exponente)
 notação científica normalizada
representação em código binário decimal (BCD - "binary coded decimal"), para aplicações comerciais
ArquiteturaComputadores.doc - 28/02/yy – página 37
 representação em sinal e magnitude, com n bits





1 bit de sinal
 0, para número positivo
 1, para número negativo
n-1 bits de magnitude
 representa números inteiros, de 0 a 2 n-1-1
faixa de representação: de -(2n-1-1) a +(2 n-1-1)
n = 8  de -127 a +127
desvantagem: duas representações diferentes para o número 0
1000...0 e 0000...0
aritmética
 soma



subtração



sinais iguais

soma as magnitudes

mantém o sinal
sinais diferentes

subtrai a magnitude menor da magnitude maior

mantém o sinal da magnitude maior
inverte o sinal do subtraendo
executa o algoritmo da soma
detecção de "estouro" ("overflow")

ocorrência de "vai-um" no bit de magnitude mais à esquerda
 representação em complemento a 2, com n bits






número positivo
 representação igual a sinal e magnitude
número negativo
 invertem-se todos os bits na representação positiva do número, e soma-se 1 ao resultado
o bit mais à esquerda é o chamado bit de sinal, pois indica o sinal do número
 0, para número positivo
 1, para número negativo
vantagens:
 uma única representação para o número 0
 exige um único circuito apenas, para operações de soma e subtração
faixa de representação: de -2 n-1 a +(2 n-1-1)
n = 8  de -128 a +127
aritmética
 soma


subtração



soma, normalmente (se uma parcela for negativa, ela já deve estar representada em complemento a 2)
complementa a 2 o subtraendo
executa o algoritmo da soma
detecção de "estouro" (ou “transbordo”) ("overflow")


ocorrência de apenas um "vai-um" nos 2 bits mais à esquerda (ou para o bit de sinal, ou para fora, mas não ambos); ou
sinal do resultado diferente dos sinais das parcelas, quando estes são iguais (parcelas com sinais diferentes nunca geram
transbordo)
 representação em notação científica


N = F x BE, onde
 N - número a ser representado
  - sinal do número
 F - mantissa, ou parte fracionária do número
 B - base de exponenciação
 E - expoente
há diversos pares de valores para a mantissa F e o expoente E que representam um mesmo número, mantida
uma base B
ArquiteturaComputadores.doc - 28/02/yy – página 38
 representação em notação científica normalizada






mantissa fracionária (menor que 1)
primeiro algarismo da mantissa, após a vírgula, diferente de zero
há um único par de valores para a mantissa F e o expoente E, mantida a base B (=2)
formato típico: 32 bits
 1 bit para o sinal do número
 1 bit para o sinal do expoente
 6 bits para a magnitude do expoente
 24 bits para a mantissa
conversão de um valor decimal para a representação em notação científica normalizada
 converte o número, de decimal (base 10) para binário (base 2)
 desloca a vírgula, até que ela fique à esquerda do dígito mais significativo (o primeiro "1"), obtendo-se a
mantissa
 o número de casas deslocadas indica a magnitude do expoente
 a direção do deslocamento indica o sinal do expoente (à esquerda indica expoente positivo; à direita
indica expoente negativo)
aritmética
 soma e subtração



iguala os dois expoentes, em geral, pelo maior (isto é, a vírgula da mantissa de menor expoente é deslocada, à direita, tantas
quantas forma as casas necessárias para os expoentes ficarem iguais)
soma ou subtrai as mantissas (pelas regras da notação em ponto fixo), e mantém o expoente (agora, único)
multiplicação e divisão



o sinal do resultado é positivo (bit de sinal = 0), se os operandos têm sinais iguais; ou negativo (bit de sinal = 1), se os
operandos têm sinais diferentes
a mantissa do resultado é o produto ou a divisão entre as mantissas dos operandos
o expoente do resultado é a soma (para a multiplicação) ou a diferença (para a divisão) entre os expoentes dos operandos
 representação em BCD


codifica cada algarismo decimal em 4 dígitos binários (bits)
permite obter resultados exatos (necessários, por exemplo, em aplicações financeiras), às custas de maior
complexidade dos cálculos aritméticos
ArquiteturaComputadores.doc - 28/02/yy – página 39
CONJUNTO DE INSTRUÇÕES
 instrução de máquina




indicação de uma operação básica ("primitiva"), muito simples e objetiva, capaz de ser executada por um
sistema computacional
um comando (de linguagem de alto nível) é traduzido numa seqüência de instruções de máquina
depende da estrutura do processador
(na verdade, o projeto do processador parte da definição do conjunto de instruções e, a partir
daí, são implementados os seus componentes)
para a definição do conjunto de instruções, devem ser definidos
 a função de cada instrução
 o formato de cada instrução
Exemplos:
1) some o conteúdo do acumulador com o conteúdo do registrador de uso geral R1, e guarde o
resultado no acumulador
2) copie o conteúdo do acumulador na posição P da memória
Contra-Exemplos:
calcule X = A + B * C
calcule X = raiz quadrada de A
(não existe processador capaz de executar estes cálculos numa única operação básica)
 implementação física de uma instrução de máquina

conjunto de bits agrupados em palavras e armazenados na memória principal
 tipos de instrução de máquina




operações algébricas
exemplos: operações aritméticas, operações lógicas
operações de movimentação de dados
exemplos: movimentação entre registradores, entre registradores e a memória (e vice-versa)
operações de entrada e saída
exemplos: leitura em dispositivo de entrada, escrita em dispositivo de saída
operações de controle
exemplos: desvio da seqüência de execução, suspensão da execução
ArquiteturaComputadores.doc - 28/02/yy – página 40
 o formato de cada instrução de máquina, em geral, apresenta 2 campos de bits

campo do código da operação
 define a operação a ser executada
 o comprimento do campo do código da operação pode ser fixo (igual para todas as instruções) ou variável
 esse comprimento (n bits) determina o número máximo (N) de códigos diferentes: N = 2n
se n = 8  N = 256 (suficiente, em geral, para um conjunto completo de instruções)
se N = 500  usar 1 ou 2 bytes:
- se 1o byte  FFh  código = 1o byte (255 possibilidades)
- se 1o byte = FFh  código = 2o byte (+256 possibilidades)

campo dos operandos
 define o(s) valor(es) do(s) dado(s) com os quais a operação deve ser executada
 o comprimento do campo dos operandos também pode ser fixo ou variável
 o próprio número de operandos pode ser sempre o mesmo, ou variar de acordo com a instrução

instruções com 4 operandos
ADD A, B, X, ENDE
MPY A, B, X, ENDE


exemplos:
A+B  X, vai para o endereço ENDE
A*B  X, vai para o endereço ENDE
(hoje, nenhum processador se utiliza do operando do endereço da próxima instrução, a não ser nas instruções de desvio)

instruções com 3 operandos
exemplos:
ADD A, B, X 
A+B  X
MPY A, B, X

A*B  X
(em ambos os casos, vai, implicitamente, para a instrução seguinte)

instruções com 2 operandos
exemplos:
ADD A, B

A+B  A
(o resultado é implicitamente armazenado no primeiro operando)
MOV A, B

BA

instruções com 1 operando
exemplos:
MOV A 
A  acumulador
ADD A 
acumulador + A  acumulador
(o acumulador é um operando implícito, e também onde é armazenado o resultado)
JMP ENDE

vai para o endereço ENDE


exemplos:
STP

encerra a execução
NOP

não faz nada
(apenas consome um certo tempo)
vantagens da instrução com muitos operandos



instruções sem operandos
completeza (possui todos os operandos explícitos)
possibilita programas com menor número de instruções
desvantagens da instrução com muitos operandos



desperdício de bits, na maioria dos casos
grande consumo de memória
grande consumo de tempo (especialmente, no ciclo de busca)
ArquiteturaComputadores.doc - 28/02/yy – página 41
MODOS DE ENDEREÇAMENTO
 os valores dos dados manipulados por uma instrução são obtidos de acordo com o modo de
endereçamento da instrução
 endereçamento imediato




o campo dos operandos da instrução fornece o próprio valor do dado
modo mais rápido para a obtenção do valor do dado (lido junto com o código da instrução)
utilizado, em programas, para iniciar variáveis; nas operações com constantes matemáticas; nas instruções de
desvio
desvantagem: limitação do valor máximo do dado (2n), pelo número de bits (n) do campo dos operandos
 endereçamento direto




o campo dos operandos da instrução fornece o endereço, na memória, onde está (ou será) armazenado o valor
do dado
pode indicar o endereço inicial, na memória, a partir do qual podem estar armazenados diversos valores
(vetor)
utilizado, em programas, para manipulação de variáveis
desvantagem: execução da instrução mais demorada do que no modo imediato (pois requer um acesso extra à
memória)
 endereçamento indireto




o campo dos operandos da instrução fornece o endereço, na memória, onde está armazenado o endereço,
também na memória, onde está (ou será) armazenado o dado
duplo endereçamento
utilizado, por programas, para manipulação de variáveis apontadas por ponteiros
desvantagem: execução da instrução mais demorada do que no modo direto (pois requer dois acessos extras à
memória)
 endereçamento de registrador




o campo dos operandos indica o registrador onde está (ou será) armazenado o valor do dado
possibilita um menor comprimento do campo dos operandos (pois requer poucos bits para indicar o
registrador, devido ao reduzido número de registradores da UCP)
execução da instrução mais rápida do que nos modos direto e indireto (pois o acesso a um registrador é muito
mais rápido do que um acesso à memória)
utilizado, por programas, para variáveis muito utilizadas, isto é, com acessos freqüentes (como contadores,
indexadores, indicadores, etc.), ou para resultados intermediários
 endereçamento indexado




o campo dos operandos fornece um endereço de base, que, somado ao valor armazenado num registrador
(índice), resulta no endereço, na memória, onde está (ou será) armazenado o dado
execução da instrução um pouco mais demorada do que no modo direto (pois requer um acesso extra, ao
registrador de índice, e uma soma)
utilizado, em programas, para variáveis indexadas, do tipo vetor ou matriz ("array")
desvantagem: exige maior complexidade no projeto da UCP (que deve ter um somador para o cálculo do
endereço do dado)
 métodos para indicação do modo de endereçamento utilizado pela instrução


implícito, pelo próprio código da instrução (cada código já indica um único modo de endereçamento)
explícito, através de um campo específico de bits (um código pode apresentar modos de endereçamento
diferentes)
ArquiteturaComputadores.doc - 28/02/yy – página 42
Exemplo: Supondo a seguinte configuração da memória e dos registradores:
memória
endereço
...
15
...
23
...
26
...
valor
...
8
...
15
...
12
...
registradores
R0
...
3
...
então, supondo que as instruções MOVxxx carregam um valor no acumulador:
tipo do endereçamento
instrução
efeito
imediato
direto
indireto
de registrador
indexado
MOVIME 23
MOVDIR 23
MOVIND 23
MOVREG R0
MOVINX 23, R0
23  acumulador
15  acumulador
8  acumulador
3  acumulador
12  acumulador

Documentos relacionados