Buscar

Problemas do capitulo 3 para estudar

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Problemas 
3.1 A máquina hipotética da Figura 3.4 também tem duas instruções de E/S: 
0011 = Carregar AC de E/S 
0011 = Armazenar AC em E/S 
Nesses casos, o endereço de 12 bits identifica um dispositivo de E/S em particular. Mostre a execução do programa 
(usando o formato da Figura 3.5) para o programa a seguir: 
1. Carregar AC do dispositivo 5. 
2. Somar o conteúdo do local de memória 940. 
3. Armazenar AC no dispositivo 6. 
Suponha que o próximo valor apanhado do dispositivo 5 seja 3 e que o local 940 contenha o valor 2. 
Resposta 
3.1 Memória (conteúdos e endereços em hexa): 
300: 3005; 301: 5940; 302: 7006 
Passo 1: 3005 → IR; Passo 2: 3 → AC 
Passo 3: 5940 → IR; Passo 4: 3 + 2 = 5 → AC 
Passo 5: 7006 → IR; Passo 6: AC → Dispositivo 6 
 
3.2 A execução do programa da Figura 3.5 é descrita no texto usando seis etapas. Expanda essa descrição para mostrar o 
uso do MAR e do MBR. 
Resposta 
1A: O PC contém 300, o endereço da primeira instrução. Esse valor é carregado para o MAR. 
1B: O valor na posição 300 (que é a instrução com o valor 1940 em hexadecimal) é carregado no MBR e o PC é 
incrementado. Estas duas etapas podem ser feitas em paralelo. 
1C: O valor no MBR é carregado no IR. 
2A: A porção de endereço do IR (940) é carregada no MAR. 
2B: O valor na localização 940 é carregado no MBR. 
C: O valor no MBR é carregado no AC. 
3A: O valor no PC (301) é carregado para o MAR. 
3B: O valor na localização 301 (que é a instrução com o valor 5941) é carregado no MBR e o PC é incrementado. 
3C. O valor no MBR é carregado no IR. 
4A: A porção de endereço do IR (941) é carregada no MAR. 
4B: O valor na localização 941 é carregado no MBR. 
4C. O valor antigo do AC e o valor do MBR de localização são adicionados e o resultado é armazenado no AC. 
5A: O valor no PC (302) é carregado para o MAR. 
5B. O valor na posição 302 (que é a instrução com o valor 2941) é carregado no MBR e o PC é incrementado. 
5C: O valor no MBR é carregado no IR. 
6A: A porção de endereço do IR (941) é carregada no MAR. 
6B: O valor no AC é carregado no MBR. 
6C: O valor no MBR é armazenado no local 941. 
 
3.3 Considere um microprocessador de 32 bits hipotético com instruções de 32 bits, compostas de dois campos: o 
primeiro byte contém o opcode e o restante, o operando imediato ou o endereço de um operando. 
a. Qual é a capacidade de memória máxima endereçável diretamente (em bytes)? 
b. Discuta o impacto sobre a velocidade do sistema se o barramento do microprocessador tiver 
1. um barramento de endereço local de 32 bits e um barramento de dados local de 16 bits, ou 
2. um barramento de endereço local de 16 bits e um barramento de dados local de 16 bits. 
c. Quantos bits são necessários para o contador de programa e o registrador de instrução? 
Resposta 
a. O segundo campo, que pode ser um endereço, tem 24 bits, logo, 2
24
 = 16 MBytes. 
b1. Se o barramento de endereços local é de 32 bits, o endereço pode ser transferido todo de uma vez e decodificado na 
memória. No entanto, como o barramento de dados é de apenas 16 bits, serão necessários 2 ciclos para buscar uma 
instrução ou operando de 32 bits. 
b2. Os 16 bits do endereço colocado no barramento de endereços não podem acessar toda a memória. Assim, é 
necessário um controle de interface de memória mais complexo para filtrar a primeira parte do endereço e depois a 
segunda parte: o microprocessador terminará em dois passos. Para um endereço de 32 bits, pode-se supor que a 
primeira metade irá decodificar para acessar uma “linha” na memória, enquanto a segunda metade é enviada mais tarde 
para acessar uma “coluna” na memória. Além da operação de endereço em dois passos, o microprocessador precisará de 
2 ciclos para buscar a instrução ou operando de 32 bits. 
c. O contador do programa deve ter pelo menos 24 bits. Normalmente, um processador de 32 bits terá um barramento de 
endereço externo de 32 bits e um contador de programa de 32 bits, a menos que sejam usados registradores de segmento 
que possam funcionar com um contador de programa menor. 
Se o registrador de instrução é para conter toda a instrução, ele terá que ser de 32 bits de comprimento; Se contiver 
apenas o código da operação, então terá que ter 8 bits de comprimento. 
3.4 Considere um microprocessador hipotético gerando um endereço de 16 bits (por exemplo, suponha que o contador 
de programa e os registradores de endereço tenham 16 bits de largura) e tendo um barramento de dados de 16 bits. 
a. Qual e o espaço de endereço de memória máximo que o processador pode acessar diretamente se estiver conectado a 
uma “memória de 16 bits”? 
b. Qual e o espaço de endereço de memória máximo que o processador pode acessar diretamente se estiver conectado a 
uma “memória de 8 bits”? 
c. Que recursos arquiteturais permitirão que esse microprocessador acesse um “espaço de E/S” separado? 
d. Se uma instrução de entrada e saída pode especificar um número de porta de E/S de 8 bits, quantas portas de E/S de 8 
bits o microprocessador pode aceitar? Quantas portas de E/S de 16 bits? Explique. 
Resposta 
3.4 Nos casos (a) e (b), o microprocessador será capaz de acessar 2
16
 = 64K bytes; A única diferença é que com uma 
memória de 8 bits cada acesso irá transferir um byte, enquanto que com uma memória de 16 bits um acesso pode 
transferir um byte ou uma palavra de 16 bytes. Para o caso (c), são necessárias instruções de entrada e saída separadas, 
cuja execução irá gerar “sinais de E / S” separados (diferentes dos “sinais de memória” gerados com a execução de 
instruções de tipo memória); No mínimo, será necessário um pino de saída adicional para transportar este novo sinal. 
Para o caso (d), ele pode suportar 2
8
 = 256 entradas e 2
8
 = 256 portas byte de saída e o mesmo número de portas de 16 
bits de entrada e saída; Em qualquer dos casos, a distinção entre uma porta de entrada e de saída é definida pelo sinal 
diferente que a instrução de entrada ou saída executada gerou. 
 
3.5 Considere um microprocessador de 32 bits, com um barramento de dados de 16 bits, controlado por um clock de 
entrada de 8 MHz. Suponha que esse microprocessador tenha um ciclo de barramento cuja duração mínima seja igual a 
4 ciclos de clock. Qual e a taxa de transferência de dados máxima pelo barramento que esse microprocessador pode 
sustentar, em bytes/s? Para aumentar seu desempenho, seria melhor tornar seu barramento de dados externo de 32 bits 
ou dobrar a frequência de clock externa fornecida ao microprocessador? Informe quaisquer outras suposições que você 
faça e explique. Dica: determine o número de bytes que podem ser transferidos por ciclo de barramento. 
Resposta 
Ciclo de clock = 1/8 MHz = 125 ns 
Ciclo do barramento = 4 × 125 ns = 500 ns 
2 bytes são transferidos a cada ciclo de barramento (500 ns); então, a taxa de transferência de dados máxima do 
barramento é de 4 MBytes/sec. (Regra de três simples). 
Duplicar a frequência pode significar a adoção de uma nova tecnologia de fabricação de chips (assumindo que cada 
instrução terá o mesmo número de ciclos de clock); Duplicar o barramento de dados externo significa maiores (talvez 
mais recentes) dispositivos de barramento de dados on-chip e modificações na lógica de controle de barramento. No 
primeiro caso, a velocidade dos chips de memória também precisará dobrar (grosso modo) para não atrasar o 
microprocessador; no segundo caso, o “comprimento da palavra” da memória terá que duplicar para poder enviar ou 
receber quantidades de 32 bits. 
 
3.6 Considere um sistema de computação que contenha um módulo de E/S controlando um teletipo teclado/impressora 
simples. Os registradores a seguir estão contidos no processador e conectados diretamente ao barramento do sistema: 
INPR: Registrador de entrada, 8 bits 
OUTR: Registrador de saída, 8 bits 
FGI: Flag de entrada, 1 bit 
FGO: Flag de saída, 1 bit 
IEN: Ativação de interrupção, 1 bit 
A entrada de teclado do teletipo e a saídada impressora no teletipo são controladas pelo módulo de E/S. O teletipo é 
capaz de codificar um símbolo alfanumérico para uma palavra de 8 bits e decodificar uma palavra de 8 bits para um 
símbolo alfanumérico. 
a. Descreva como o processador, usando os quatro primeiros registradores listados neste problema, pode alcançar a E/S 
com o teletipo. 
b. Descreva como a função pode ser realizada de forma mais eficiente também empregando a IEN. 
Resposta 
a. A entrada do Teletipo é armazenada no INPR. O INPR só aceitará dados do Teletipo quando FGI = 0. Quando os 
dados chegam, são armazenados no INPR e FGI é setado para 1. A CPU verifica periodicamente FGI. Se FGI = 1, a 
CPU transfere o conteúdo do INPR para o AC e define FGI como 0. Quando a CPU possui dados para enviar para o 
Teletipo, verifica o FGO. Se FGO = 0, a CPU deve aguardar. Se FGO = 1, a CPU transfere o conteúdo do AC para 
OUTR e coloca FGO em 0. O Teletipo define FGI como 1 depois que a palavra é impressa. 
b. O processo descrito em (a) é muito desperdício. A CPU, que é muito mais rápida do que o Teletipo, deve verificar 
repetidamente FGI e FGO. Se as interrupções forem usadas, o Teletipo pode emitir uma interrupção na CPU sempre 
que estiver pronto para aceitar ou enviar dados. O registro IEN pode ser configurado pela CPU (sob o controle do 
programador).

Continue navegando