TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

A Arquitetura de Computadores

Por:   •  29/11/2023  •  Trabalho acadêmico  •  1.546 Palavras (7 Páginas)  •  39 Visualizações

Página 1 de 7

- Desempenho arquitetural

Tempo de Execução (T) = Instruções por Programa (I) x Ciclos por Instrução (C) x Tempo por Ciclo (t)

Nesta fórmula:

Tempo de Execução (T) é o tempo total necessário para executar o programa.

Instruções por Programa (I) é o número total de instruções no programa.

Ciclos por Instrução (C) é o número médio de ciclos de clock por instrução.

Tempo por Ciclo (t) é o tempo médio gasto em um único ciclo de clock.

O ciclo de Von Neumann, também conhecido como ciclo de busca e execução, consiste em quatro etapas principais:

Busca (Fetch):

A CPU busca a próxima instrução a ser executada na memória principal.

O endereço de memória da próxima instrução é mantido no Contador de programa (PC).

O PC é usado para acessar a memória e recuperar a instrução a partir do endereço apontado por ele.

A instrução é então lida da memória e carregada no registrador de instrução (IR), onde será decodificada e executada.

Decodificação (Decode):

A CPU decodifica a instrução carregada para entender qual operação deve ser executada e quais operandos (dados) são necessários.

Execução (Execute):

A CPU executa a instrução de acordo com a operação especificada e os operandos fornecidos.

Escrita (Write):

Após a execução, os resultados são armazenados nos registradores ou na memória conforme necessário.

Perguntas feitas em sala

1 - Considere um sistema de computacional com interpretadores idênticos nos níveis de microarquitetura (nível 1), macroarquitetura (nível 2) e sistema operacional (nível 3), onde cada interpretador gasta “n” instruções e uma instrução de nível 1 leva “k” segundos para ser executada.

Qual seria o tempo de execução estimado para uma instrução nos níveis 1, 2 e 3 desse sistema?

Nível 1 (microarquitetura): 1 instrução leva (n × k) segundos.

Nível 2 (macroarquitetura): 1 instrução leva n instruções de nível 1, então levará

(n × n × k) segundos.

Nível 3 (sistema operacional): 1 instrução leva n instruções de nível 2, então levará

(n × n × n × k) segundos.

2 - Examine as vantagens e desvantagens de um compilador gerar código de saída diretamente no nível de microarquitetura (nível 1) em vez de gerar código no nível de macroarquitetura (nível 2) em um sistema de máquinas multiníveis.

Complexidade do compilador: Gerar código diretamente no nível 1 é muito mais complexo do que gerar código no nível 2. Isso ocorre porque o nível 1 geralmente é específico da arquitetura do processador. O compilador precisaria ser altamente especializado para cada arquitetura de hardware.

Portabilidade: O código compilado para uma arquitetura específica não seria executado em outro tipo de processador.

Manutenção e atualização: Qualquer mudança na arquitetura de hardware exigiria uma revisão significativa do compilador, pois ele estaria profundamente vinculado à arquitetura da máquina. Isso tornaria a manutenção e a atualização do compilador muito mais desafiadoras.

Eficiência de Memória: Compilar diretamente no nível 1 pode resultar em ineficiência de memória devido ao aumento significativo no tamanho do código gerado. O código para microarquitetura, geralmente específico da arquitetura do processador, é mais extenso em comparação com o código para macroarquitetura. Isso ocorre porque cada macroinstrução ocupa uma palavra de 16 bits, enquanto o microcódigo correspondente, excluindo a lógica de decodificação, requer aproximadamente quatro microinstruções de 32 bits, em média. Assim, o armazenamento total necessário seria octuplicado.

3 - Diferencie Microprogramação Horizontal de Microprogramação Vertical.

É verdade que existe a possibilidade de receber um conjunto de “n” sinais de controle sem decodificação nenhuma tal que, aplicado nos lugares apropriados, pode fazer a máquina funcionar. Isso nos leva a um formato de microinstruções horizontais, onde se tem n bits de largura, com um bit para cada sinal de controle. Esse tipo é chamado de horizontal porque é composto por poucas instruções muito largas. (Aspecto horizontal se for desenhado). Mas se preferirmos receber um número reduzido de sinais de controle, agora altamente decodificados, teríamos um formato de microinstruções verticais. O nome é dado pelo amplo conjunto de microinstruções com largura reduzida. (Aspecto Vertical se for desenhado). O tipo vertical, por ter uma palavra com menos bits (No exemplo do livro, de 32 bits no modelo padrão são tornados apenas 12 bits no modelo Vertical) é gasto menos memória de controle (A quantidade de palavras aumenta porque são mais instruções necessárias para fazer o mesmo código, mas o número de bits reduzido faz com que ainda assim gaste menos memória). A desvantagem de uma memória de controle menor é a necessidade de executar mais microinstruções para cada macroinstrução, o que torna a máquina mais lenta. Consequentemente, máquinas caras e rápidas tendem a ser horizontais, enquanto máquinas lentas e baratas tendem a ser verticais.

Exercícios sobre macroprogramação

for i = 1 to k do {

m := m + n[ i } x 2;

}

LOCO 1 - guarda 1 no acumulador (AC)

for: -STOD i - armazena o valor que está no acumulador(AC) no endereço i

LODD k - pega o conteúdo do endereço de k e coloca no acumulador(AC)

SUBD i - o conteúdo do endereço i irá subtrair o que está no acumulador

JNEG sair - se

...

Baixar como (para membros premium)  txt (9.8 Kb)   pdf (61.4 Kb)   docx (556 Kb)  
Continuar por mais 6 páginas »
Disponível apenas no TrabalhosGratuitos.com