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?

  1. Adicione o minuendo M ao complemento de 2 do subtraendo N.
  2. Se M >= N, a soma vai produzir um transporte. O resultado da subtração corresponde ao resultado da soma, ignorando o transporte.
  3. 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.

  1. 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.

    Organização

    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:
  2. 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
    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.
    1. Primeiro Ciclo:

    2. Segundo Ciclo:

    3. Terceiro Ciclo:

    4. 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.
    1. Primeiro Ciclo:

    2. Segundo Ciclo:

    3. Terceiro Ciclo:

    4. Quarto Ciclo:


Solução do exercício 26 do livro-texto.

  1. Uma possível solução, considerando que a
    1. 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
    2. 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).
  2. Supondo que cada instrução seja codificada numa palavra e o tamanho da memória seja 64 palavras, então
    1. 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).
    2. 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