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 Neumann | Arquitetura de Havard | |
---|---|---|
Design da memória | Possui apenas um memória principal (RAM) que armazena os dados e as instruções do programa | Memó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 computadores | Possui 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 |
Desempenho | Ele 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 |
Exemplos | Computadores domésticos e servidores | Microcontroladores 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:
- A Unidade de Controle busca a próxima instrução na memória principal e a decodifica.
- 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.
- 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.
- A ULA ou UPF realiza as operações especificadas pela instrução, utilizando os dados armazenados nos registradores.
- O resultado da operação pode ser armazenado de volta na memória ou em um registrador, dependendo da instrução.
- 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.