EA-869 - Dúvidas Frequentes
Capítulo II
Qual é a diferença entre a arquitetura e
a organização de um computador?
Qual é o algoritmo para a subtração
M-N, sendo M e N dois números sem sinal em complemento de 2?
O tamanho do barramento de dados é sempre igual
ao tamanho do barramento de endereços?
Qual é a diferença entre as notações
(X) e ((X)), sendo X o endereço de uma célula da memória?
Quais são os tipos de memória mais
utilizados nos computadores?
O que a organização de um computador tem a ver
com o número de campos de endereço nas suas instruções?
Como se pode detectar a condição de overflow numa soma?
O que denota #X?
Como um computador pode distinguir um dado de uma instrução,
ambos armazenados na memória, uma vez que ambos utilizam a mesma representação
binária?
A quantidade de palavras de uma instrução determina a quantidade
de ciclos de memória num ciclo de instrução (fase de busca+fase de execução)?
Solução do exercício 17 do livro-texto.
Solução do exercício 18 do livro-texto.
Solução do exercício 20 do livro-texto.
Solução do exercício 22 do livro-texto.
Solução do exercício 26 do livro-texto.
Qual é a diferença entre a arquitetura e
a organização de um computador?
A arquitetura de um computador corresponde aos aspectos visíveis
a um programador em linguagem de máquina, tais como repertório de
instruções, número de bits utilizado para representar vários
tipos de dados, mecanismo de E/S e modos de endereçamento.
A organização, por seu lado, diz respeito às unidades operacionais
(UCP, unidade de memória, barramentos, sinais de controle, etc)
necessárias para implementar as especificações de
uma arquitetura. A organização é em geral transparente ao programador.
Considere por exemplo a operação de multiplicação.
O aspecto arquitetônico do computador em relação a essa operação
é saber se o computador
provê uma instrução para esta operação; enquanto o
aspecto organizacional tem a ver como essa operação é
implementada.
Qual é o algoritmo para a subtração
M-N, sendo M e N dois números sem sinal em complemento de 2?
- Adicione o minuendo M ao complemento de 2 do subtraendo
N.
- Se M >= N, a soma vai produzir um transporte.
O resultado da subtração corresponde ao resultado da soma,
ignorando o transporte.
- Se M < N, a soma não produz transporte. O resultado
é o complemento de 2 de (N-M).
O tamanho do barramento de dados é sempre igual
ao tamanho do barramento de endereços?
Não. O tamanho do barramento de dados está relacionado com a quantidade
de bits contidos em cada palavra (ou seja, a quantidade de informação
que pode ser representada); enquanto
o tamanho do barramento de endereços tem a ver com a quantidade
de palavras que podem ser acessadas.
Considere por exemplo um computador com uma unidade de memória de
2048 bytes. O seu barramento de endereços deve ter no mínimo 11 linhas (ou 11 bits)
e o seu barramento de dados, 8 linhas (ou 8 bits).
Qual é a diferença entre as notações
(X) e ((X)), sendo X o endereço de uma célula da memória?
(X) refere ao conteúdo do endereço X; enquanto ((X))
refere ao conteúdo do (conteúdo do endereço X).
Considere
por exemplo o conteúdo do trecho da unidade de memória:
Endereço |
Conteúdo |
00000 |
00110011 |
00001 |
10011111 |
: |
: |
00101 |
00001101 |
00101 |
00001101 |
00110 |
11111111 |
00111 |
00000000 |
: |
: |
01100 |
10101010 |
01101 |
00000110 |
: |
: |
Seja X = 00101, então (X) = 00001101 e
((X)) = (00001101) = (01101) = 00000110.
Analogamente, podemos inferir que
(((X))) = ((00001101)) = (00000110) = (00110) = 11111111.
Quais são os tipos de memória mais
utilizados nos computadores?
Tipo de Memória |
Tecnologia |
Tamanho |
Tempo de Acesso |
Memória Cache |
Semicondutor RAM |
128-512 KB |
10 ns |
Memória Principal |
Semicondutor RAM |
4-128 MB |
50 ns |
Disco Magnético |
Hard Disk |
Gigabyte |
10 ms, 10 MB/s |
Disco Óptico |
CD-ROM |
Gigabyte |
300 ms, 600KB/s |
Fita Magnética |
Fitas |
centenas de Megabytes |
segundos-minuto, 10MB/min |
O que a organização de um computador tem a ver
com o número de campos de endereço nas suas instruções?
Em geral a UAL é ligada às outras componentes da UCP através de três conjuntos de linhas:
dois para operandos e um para o resultado das operações aritméticas
e lógicas. A especificação explícita dos endereços
dos operandos e do resultado depende da organização do processador.
Distinguem-se basicamente 3 tipos de organização:
- Máquina de 1 endereço;
- Máquina de 0 endereço; e
- Máquina de 2 ou 3 endereços.
Na máquina de 1 endereço, um operando e o resultado
é sempre armazenado no (registrador) acumulador Acc. Portanto, só
é preciso especificar explicitamente o endereço de um operando.
Na máquina de 0 endereço, o processador é provido do
(registrador) apontador de pilha SP para guardar o endereço
do topo da pilha. O processador carrega a UAL desempilhando a pilha e empilha
o resultado das operações na mesma pilha. Portanto, não é necessário
especificar nenhum endereço nas instruções já que o endereço
dos operandos e do resultado é sempre o mesmo - o topo da pilha.
Na máquina de 2 ou 3 endereços, nenhum dos endereços
dos operandos são pré-definidos. Quando o endereço do resultado é o
endereço de um dos operandos, só se precisa de dois campos de endereço
nas instruções; senão, são necessários 3 campos.
A organização da maioria dos computadores presume que as instruções
de um programa sejam, sob o ponto de vista lógico, sequencialmente armazenadas
na unidade de memória. Se conhecermos o endereço inicial
de um programa (primeira instrução do programa), só precisaremos
de um (registrador) contador de programa PC, carregado com este endereço inicial e
incrementado a cada instrução, para guardar sempre
o endereço da próxima
instrução a ser executada.
Se, entretanto, quisermos flexibilizar a localidade das instruções
de um programa (não precisando ser necessariamente sequenciais), poderemos então
especificar na própria instrução o endereço da próxima
instrução. Neste caso, a máquina
não precisa mais do (registrador) PC e dizemos que ela tem um endereço a
mais (na instrução), podendo ser por exemplo até uma máquina de 4 endereços.
Como se pode detectar a condição de overflow numa soma?
A condição de overflow (bit de overflow = 1) só ocorre
quando o resultado de uma operação é maior do que a capacidade
de representação do processador. Essa condição
pode ser detectada numa soma, verificando simplesmente se o transporte para o bit
mais significativo é diferente do transporte
além do bit mais significativo.
O que denota #X?
Os dados requeridos por uma instrução podem estar nos
registradores de uso geral (p.ex, MOV R1,R2),
num endereço aleatório da memória (p.ex, MOV end,R1)
ou então na palavra seguinte. Neste último caso, utilizamos
a notação #X para especificar que o dado X está
armazenado na palavra seguinte da instrução. No Capítulo IV
veremos que este modo de endereçamento é conhecido
como modo imediato.
Como um computador pode distinguir um dado de uma instrução,
ambos armazenados na memória, uma vez que ambos utilizam a mesma representação
binária?
Sob o ponto de vista da unidade de memória não existe nenhuma
diferença entre os códigos de dados e os de instruções. Mas, sob
o ponto de vista do processador, somente a palavra buscada
na fase de busca é transferida para
o registrador de instrução, RI. Nesta fase os bits contidos
no campo de código de operação, C.O., são decodificados em uma sequência
de microcomandos para executar efetivamente a instrução. Essa execução
pode requerer ou não acessos adicionais à memória. As palavras
adicionalmente buscadas são utilizadas como dados da instrução.
É fácil perceber que a fase de busca deve ser idêntica para qualquer
instrução, já que a partir dela obtêm-se microcomandos correspondentes
a uma instrução.
Lembre-se de que um programa estabelece uma sequência de
instruções e a unidade de controle, a sequência de sinais
para cada instrução. A solução correta do problema depende das duas
partes.
A quantidade de palavras de uma instrução determina a quantidade
de ciclos de memória num ciclo de instrução (fase de busca+fase de execução)?
Não. Veremos no Capítulo III que existem diferentes formas de especificar o
endereço de um operando. Dependendo da forma de especificação, o endereço definido
numa palavra da instrução pode implicar em um ou mais ciclos
de acesso à memória (p.ex, as instruções
ADD.I, STA.I e JMP.I nos exercícios 22, 23 e 24 do Capítulo II do
livro-texto).
O que se pode afirmar sempre é
que a quantidade de palavras numa instrução
indica o número mínimo de acessos à memória.
Solução do exercício 17 do livro-texto.
A instrução
JMP end ; PC <- end
carrega no contador de programa, PC, um endereço end explicitamente
especificado pelo usuário.
Como a arquitetura da maioria dos processadores
acessa a próxima instrução a ser executada através
do conteúdo do PC, então o efeito dessa instrução
será um desvio incondicional para a célula
de endereço end
da unidade de memória.
As linhas mais grossas na figura abaixo
indicam o que que devemos acrescentar à figura 2.24
do livro-texto para implementarmos esta instrução.
Note que precisamos ligar o campo do registrador
de instrução, RI, com PC
para permitir a transferência de end para PC.
Note ainda a direção da seta. Além disso, o controlador
deve gerar um microcomando (sinal de controle)
adicional TRPC para controlar esta transferência.
Para projetar um circuito de controle para esta
instrução, precisamos definir
antes a sequência de microoperações necessárias.
Esta sequência está listada na seguinte tabela:
Ciclos |
Tempo (Pulso) |
Microoperação |
Microcomando |
Ciclo de Busca |
T0 |
REM <- (PC) |
TPC |
T1 |
RDM <- ((REM)) |
E, R/W |
PC <- (PC) + 1 |
IPC |
T2 |
RI <- (RDM) |
TRB, TB |
Ciclo de Execução |
T3 |
PC <- (RI.end) |
TRPC |
A partir desta sequência de microcomandos podemos,
com o uso de registradores de
deslocamento, implementar o seguinte
controlador. Note que neste caso o ciclo de máquina
corresponde a 4 pulsos de relógio (o contador é
resetado após 4 pulsos de relógio).
Solução do exercício 18 do livro-texto.
-
Como a máquina é provida de 8 registradores de uso geral,
são necessários dois microcomandos
(sinais de controle) para controlar a transferência de dados (8 bits)
do barramento para registradores (TBRg) e a transferência
de dados (8 bits) dos registradores para barramento (TRgB).
(microcomandos). Para que a transferência seja seletiva
dentre os 8 registradores, foram incluídos dois decodificadores
e 16 portas AND na figura 2.24 do livro-texto. Um decodificador
é para definir o registrador-fonte (os sinais R1, R2, etc)
e o outro, para definir o registrador-destino (os sinais W1, W2, etc).
Através das portas AND estes sinais em conjunto com os sinais
TBRg e TRgB selecionam o registrador e o tipo de
transferência.
O esquema alterado é mostrado na figura seguinte.
A execução da instrução
MOV R1,R2
nesta máquina pode corresponder à seguinte sequência de
microoperações:
Ciclos |
Tempo (Pulso) |
Microoperação |
Microcomando |
Ciclo de Busca |
T0 |
REM <- (PC) |
TPC |
T1 |
RDM <- ((REM)) |
E, R/W |
PC <- (PC) + 1 |
IPC |
T2 |
RI <- (RDM) |
TRB, TB |
Ciclo de Execução |
T0 |
R2 <- (R1) |
TRgB, R1, TBRg, W2 |
E a execução da instrução
MOV R1,data
pode corresponder à seguinte sequência de
microoperações:
Ciclos |
Tempo (Pulso) |
Microoperação |
Microcomando |
Ciclo de Busca |
T0 |
REM <- (PC) |
TPC |
T1 |
RDM <- ((REM)) |
E, R/W |
PC <- (PC) + 1 |
IPC |
T2 |
RI <- (RDM) |
TRB, TB |
Ciclo de Leitura |
T0 |
REM <- (PC) |
TPC |
T1 |
RDM <- ((REM)) |
E, R/W |
PC <- (PC) + 1 |
IPC |
T2 |
TMP <- (RDM) |
TRB, W |
Ciclo de Execução |
T0 |
R1 <- (TMP) |
TBR, R, TBRg, W1 |
Note que:
- foi considerado que o ciclo de máquina desta
máquina hipotética compreende 3 pulsos de relógio;
- na implementação da segunda instrução transferimos
primeiro data no registrador TMP
para depois fazer a transferência de TMP
para R1.
-
O esquema mostra o hardware adicional necessário: dois
decodificadores e 16 portas lógicas AND. Note
que os dois decodificadores podem fazer parte
do circuito de controlador.
Solução do exercício 20 do livro-texto.
Observe que tanto PC como WZ
têm comprimento correspondente a duas palavras; enquanto
outros registradores têm comprimento de uma palavra.
A quantidade de células que o processador consegue
endereçar é 2^2p, onde p
é o número de bits de cada palavra. Por exemplo,
se a palavra da máquina é formada por p=8(16) bits,
então o processador consegue endereçar 64K(256K)
células (palavras de 8 bits) da unidade de memória.
Essa observação nos leva a concluir que a máquina
pode comportar
- um barramento de endereços de 2p
linhas;
- um barramento de dados de p linhas; e
- registradores de p bits, exceto
PC, WZ e REM que tem 2p
bits.
WZ é um registrador de trabalho com finalidade de
concatenar duas palavras lidas da unidade de memória para
formar o endereço de um operando, como é o caso
da instrução em questão.
Como um endereço requer duas palavras, a instrução SUB
utilizou três palavras: uma para o código de operação e duas
para definir o endereço end do operando. Dois acessos
são, portanto, necessários, para carregar WZ e
obter o endereço integral do operando, como mostra a
seguinte sequência de microoperações.
Ciclos |
Tempo (Pulso) |
Microoperação |
Ciclo de Busca |
T0 |
REM <- (PC) |
T1 |
RDM <- ((REM)) |
PC <- (PC) + 1 |
T2 |
RI <- (RDM) |
Ciclo de Leitura |
T0 |
REM <- (PC) |
T1 |
RDM <- ((REM)) |
PC <- (PC) + 1 |
T2 |
WZ.Z <- (RDM) |
Ciclo de Leitura |
T0 |
REM <- (PC) |
T1 |
RDM <- ((REM)) |
PC <- (PC) + 1 |
T2 |
WZ.W <- (RDM) |
Ciclo de Execução |
T0 |
REM <- (WZ) |
T1 |
RDM <- ((REM)) |
T2 |
Tmp <- (RDM) |
T3 |
Acc <- (Acc) + (Tmp) |
Note que foi considerada a existência de dois
tamanhos de ciclos nesta máquina hipotética:
um de 3 pulsos e outro de
4 pulsos. A seguir são mostrados os diagramas de
execução em cada ciclo.
- Primeiro Ciclo:
- Segundo Ciclo:
- Terceiro Ciclo:
- Quarto Ciclo:
Solução do exercício 22 do livro-texto.
Diferentemente da máquina hipotética
apresentada na seção II.4 do livro-texto (Fig. 2.24),
o endereço do operando e o código de
operação não estão
codificados numa mesma palavra nesta máquina
de 1 endereço. Dois acessos são
necessários para obter o código e
o endereço. Além disso, o campo
de endereço especifica o endereço
do endereço do operando - ((end)) -
ao invés do endereço do operando - (end).
Portanto, é
necessário fazer um acesso adicional para obter
efetivamente o operando conforme mostra a
seguinte sequência de microoperações.
Ciclos |
Tempo (Pulso) |
Microoperação |
Ciclo de Busca |
T0 |
REM <- (PC) |
T1 |
RDM <- ((REM)) |
PC <- (PC) + 1 |
T2 |
RI <- (RDM) |
Ciclo de Leitura do Endereço do Endereço |
T0 |
REM <- (PC) |
T1 |
RDM <- ((REM)) |
PC <- (PC) + 1 |
T2 |
Rg <- (RDM) |
Ciclo de Leitura do Endereço |
T0 |
REM <- (Rg) |
T1 |
RDM <- ((REM)) |
T2 |
Rg <- (RDM) |
Ciclo de Leitura do Operando e Adição |
T0 |
REM <- (Rg) |
T1 |
RDM <- ((REM)) |
T2 |
Tmp <- (RDM) |
T3 |
Acc <- (Acc) + (Tmp) |
Note que o operando foi indiretamente referenciado
nesta instrução. Veremos no Capílo
IV que este modo de endereçamento é
conhecido como modo de endereçamento indireto.
A seguir são mostrados os diagramas de
execução em cada ciclo.
- Primeiro Ciclo:
- Segundo Ciclo:
- Terceiro Ciclo:
- Quarto Ciclo:
Solução do exercício 26 do livro-texto.
- Uma possível solução, considerando que a
- máquina de 3 endereços provê 4
instruções - ADD (adição),
MUL (multiplicação), DIV
(divisão) e SUB (subtração) - então um
possível programa para solucionar a
expressão é:
ADD B,C,A |
MUL A,D,A |
DIV C,D,T |
SUB A,T,A |
- máquina de 1 endereço provê 6
instruções - ADD (adição),
MUL (multiplicação), DIV
(divisão), SUB (subtração), STA
(armazenar o conteúdo do acumulador) e LDA
(carregar o acumulador) - então um
possível programa para solucionar a
expressão é:
LDA C |
DIV D |
STA A |
LDA B |
ADD C |
MUL D |
SUB A |
STA A |
Note que a quantidade de instruções
na primeira máquina é bem menor que a
quantidade de instruções na segunda.
Portanto, em geral ela requer menos ciclos de acesso
à memória para executar um programa (é
mais rápida).
- Supondo que cada instrução seja codificada numa
palavra e o tamanho da memória seja 64 palavras,
então
- na máquina de 3 endereços o tamanho
mínimo de uma palavra é 22 bits, 2 para
código de operação, 6 para cada
campo de endereço (no caso, 3).
- na máquina de 1 endereço o tamanho
mínimo de uma palavra é 9 bits, 3 para
código de operação, 6 para cada
campo de endereço (no caso, 1).
Embora os programas para máquinas de 3 endereços
sejam mais curtos e o repertório de instruções
menor, elas requerem palavras mais compridas.
Um exemplo de
computadores comerciais que utilizam instruções
de 3 endereços é Cyber 170. Para contornar o
problema de tamanho excessivo da palavra, esses computadores
se restringem a trabalhar com 3 campos de endereços
de registradores ou 2 campos de endereços de registradores
e 1 para endereçar a memória.
Vale ressaltar aqui que se o tamanho da palavra for constante
(p.ex, 8 bits),
então uma instrução de máquinas de
3 endereços pode requerer muito mais palavras para
representá-la do que
uma instrução de máquinas de 1 endereço.
Last modified: Wed Sep 3 10:16:35 BRA 1997
Sugestões para ting@dca.fee.unicamp.br
Voltar para a página do curso.
Ting