Baixe o app para aproveitar ainda mais
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).
Compartilhar