Lista de exercícios para N1


Exercício 1

A arquitetura RISC o tamanho das instruções tem tamanho fixo de 32 bits, assim como os barramentos que permite a transferência dos dados da memória para o processador em lotes de 32 bits. Além disso, a RISC possui menos instruções em relação a CISC. Pelo fato da arquitetura RISC ser mais simples, há um uso intensivo dos registradores de uso geral como os registradores t e s. Po fim, ao terem instruções e arquitetura simplificadas, a arquitetura RISC possui uma maior eficiência e rapidez.

Já a arquitetura RISC possui um maior número de registradores de uso específico uma vez que faz uso maior da memória principal (RAM). O tamanho das palavras podem variar entre 32 ou 64 bits. As instruções são mais complexas, permitindo que elas executem várias operações em um única instrução. No quesito performance, ela é inferior a RISC pelo fato de uma maior complexidade de hardware isso reduz a eficiência computacional.

Os microcontroladores MIPS utilizam a arquitetura RISC. Já a arquitetura CISC é utilizado no Intel x86.

Exercício 2

Arquitetura de Von NeumannArquitetura de Havard
Design da memóriaPossui apenas um memória principal (RAM) que armazena os dados e as instruções do programaMemória de instruções (armazenar as instruções do programa) e memória de dados (armazenar dados) o que permite a busca simultânea por dados e instruções, aumentando a eficiência do processador
Organização dos computadoresPossui uma UCP (Unidade de Controle e Processamento), memória principal e interface de entrada e saída (E/S)Possui uma Unidade de Controle, ULA, Memória de dados, Memória de instruções e interfaces de entrada e saída
Fluxo de dadosé serial, ou seja, as instruções são transferidos pelo mesmo barramento de dados de forma sequencialé paralelo, pois as instruções e dados são transferidos por barramentos distintos e podem ser buscados simultaneamente
DesempenhoEle possui uma limitação da questão da transferências dos dados, pois possui apenas um canal para comunicação da memória com o processador. Entretanto, atualmente a arquitetura Von Neumann possui mais canais (dual channel, por exemplo)Ele resolve o problema da arquitetura de Von Neumann, uma vez que possui 2 canais (uma para a memória de instruções, dados e status do barramento) aumentando a eficiência do processador
ExemplosComputadores domésticos e servidoresMicrocontroladores e sistemas embarcados de alto desempenho

Tendências futuras:

  • As tendências atuais na evolução dessas arquiteturas incluem a busca por soluções híbridas que combinam aspectos das arquiteturas de Von Neumann e Harvard para otimizar o desempenho e a eficiência energética
  • Além disso, com o avanço da tecnologia e o surgimento de novas aplicações, é possível que arquiteturas completamente novas e alternativas surjam, que podem desafiar as noções tradicionais de Von Neumann e Harvard.

Exercício 3

Unidade de controle (UC) é responsável por gerenciar a execução das instruções que chegam na CPU. Ela interpreta as instruções e aciona o componente (ULA e UPF) responsável pela execução da operação solicitada.

Unidade Lógica e Aritmética (ULA) realiza as operações lógicas e aritméticas de números internos.

Unidade de Ponto Flutuante (UPF) realiza as operações lógicas e aritméticas de números com ponto flutuantes (na representação IEE-754).

Registradores são as menores unidades de memória temporária e são extremamente rápidos. Eles estão na CPU e todos os dados que serão processados deveram ser armazenados no registrador.

Barramento de dados: Transmite dados entre os diferentes componentes do processador e a memória.

Barramento de endereços: Transmite endereços de memória para acessar dados armazenados na memória.

Barramento de controle: Transmite os sinais de controle gerados pela Unidade de Controle para os demais componentes do processador. Ele controla o fluxo de dados e instruções dentro do processador.

Memória cache: Armazena dados e instruções frequentemente acessados para reduzir o tempo de acesso à memória principal. Divide-se em cache de instruções e cache de dados para armazenar instruções e dados, respectivamente.

A interação desses componentes para executar instruções, processar dados e controlar o fluxo de informações dentro do processador acontece da seguinte forma:

  1. A Unidade de Controle busca a próxima instrução na memória principal e a decodifica.
  2. Com base na instrução decodificada, a Unidade de Controle gera sinais de controle para serem transmitidos para os demais componentes do processador por meio do barramento de controle.
  3. Os dados necessários para executar a instrução são transferidos entre os registradores e a memória através dos barramentos de dados e endereço.
  4. A ULA ou UPF realiza as operações especificadas pela instrução, utilizando os dados armazenados nos registradores.
  5. O resultado da operação pode ser armazenado de volta na memória ou em um registrador, dependendo da instrução.
  6. Esse processo se repete para cada instrução do programa até que o programa seja concluído.

Cada componente desempenha um papel crucial para o desempenho global do processador:

  • A Unidade de Controle garante que as instruções sejam executadas na ordem correta e controla o fluxo de dados dentro do processador.
  • A ULA e UPF executam as operações aritméticas e lógicas, enquanto os registradores armazenam temporariamente dados e instruções.
  • Os barramentos de dados e endereços facilitam a transferência de dados entre os componentes do processador e a memória.
  • A memória cache melhora o desempenho ao armazenar dados e instruções frequentemente acessados, reduzindo assim o tempo de acesso à memória principal.

Avanços recentes na arquitetura de processadores têm se concentrado em aumentar a eficiência energética, melhorar o desempenho e lidar com desafios como a escalabilidade do número de núcleos. Isso influenciou o design dos componentes do processador, levando a melhorias na organização e na integração desses componentes para maximizar a eficiência e a velocidade de processamento. Por exemplo, técnicas como pipelines superescalares, execução fora de ordem e predição de ramificação têm sido amplamente adotadas para melhorar o desempenho e a eficiência dos processadores modernos.

Exercício 4

Referências