Você está na página 1de 45

Arquitetura de

Computadores
Prof. Rodrigo Monteiro de Aquino
Arquitetura de Computadores
Critérios de avaliação

● Provas
Arquitetura de Computadores
Introdução

● Importância dos computadores no dia a dia


○ Uso domiciliar, recreativo
Arquitetura de Computadores
Introdução

● Importância dos computadores no dia a dia


○ Uso domiciliar, recreativo
○ Utilização em automóveis
Arquitetura de Computadores
Introdução

● Importância dos computadores no dia a dia


○ Uso domiciliar, recreativo
○ Utilização em automóveis
○ Em pesquisas científicas
Arquitetura de Computadores
Introdução

● Importância dos computadores no dia a dia


○ Uso domiciliar, recreativo
○ Utilização em automóveis
○ Em pesquisas científicas
○ Internet
Arquitetura de Computadores
Definições

● Tipos de computadores
○ Desktops e laptops PC
Arquitetura de Computadores
Definições

● Tipos de computadores
○ Desktops e laptops PC
○ Servidores
Arquitetura de Computadores
Definições

● Tipos de computadores
○ Desktops e laptops PC
○ Servidores
○ Supercomputadores

Fugaku - Fujitsu
Arquitetura de Computadores
Definições

● Tipos de computadores
○ Desktops e laptops PC
○ Servidores
○ Supercomputadores
Arquitetura de Computadores
Definições

● Tipos de computadores
○ Desktops e laptops PC
○ Servidores
○ Supercomputadores
○ Computadores embarcados (embedded)
Arquitetura de Computadores
Definições
Arquitetura de Computadores
Definições

● Evolução dos dispositivos utilizados


Arquitetura de Computadores
Definições

● Computação em nuvem
Arquitetura de Computadores
Definições

● SaaS
Arquitetura de Computadores
Palavras-chave do curso

● Programas
Arquitetura de Computadores
Palavras-chave do curso

● Programas
● Linguagem de alto nível e de máquina
Arquitetura de Computadores
Palavras-chave do curso

● Programas
● Linguagem de alto nível e de máquina
● Desempenho de um programa
Arquitetura de Computadores
Palavras-chave do curso

● Programas
● Linguagem de alto nível e de máquina
● Desempenho de um programa
● Consumo energético
Arquitetura de Computadores
Palavras-chave do curso

● Programas
● Linguagem de alto nível e de máquina
● Desempenho de um programa
● Consumo energético
● Processamento paralelo (micro processador multicore)
Arquitetura de Computadores
Elementos na execução de um programa

● Algoritmo
○ Determina o número de instruções do código-fonte e o número de operações de
E/S realizadas
Arquitetura de Computadores
Elementos na execução de um programa

● Algoritmo
○ Determina o número de instruções do código-fonte e o número de operações de
E/S realizadas
● Linguagem de programação, compilador e arquitetura
○ Determina a forma das instruções de máquina para cada instrução determinada
no algoritmo
Arquitetura de Computadores
Elementos na execução de um programa

● Algoritmo
○ Determina o número de instruções do código-fonte e o número de operações de
E/S realizadas
● Linguagem de programação, compilador e arquitetura
○ Determina a forma das instruções de máquina para cada instrução determinada
no algoritmo
● Processador e sistema de memória
○ Determina a velocidade em que as instruções podem ser executadas e o volume
de dados que se pode manipular
Arquitetura de Computadores
Elementos na execução de um programa

● Algoritmo
○ Determina o número de instruções do código-fonte e o número de operações de
E/S realizadas
● Linguagem de programação, compilador e arquitetura
○ Determina a forma das instruções de máquina para cada instrução determinada
no algoritmo
● Processador e sistema de memória
○ Determina a velocidade em que as instruções podem ser executadas e o volume
de dados que se pode manipular
● Sistema de E/S (hardware e sistema operacional)
○ Determina a velocidade em que as operações de E/S podem ser executadas
Arquitetura de Computadores
Elementos na execução de um programa

● Algoritmo
○ Determina o número de instruções do código-fonte e o número de operações de
E/S realizadas
● Linguagem de programação, compilador e arquitetura
○ Determina a forma das instruções de máquina para cada instrução determinada
no algoritmo
(O sistema operacional)
● Processador e sistema de memória
○ Determina a velocidade em que as instruções podem ser executadas e o volume
de dados que se pode manipular
● Sistema de E/S (hardware e sistema operacional)
○ Determina a velocidade em que as operações de E/S podem ser executadas
Arquitetura de Computadores
Lei de Moore

● Projete pensando na Lei de Moore


○ Os recursos do circuito integrado dobram a cada 18 a 24 meses.
○ “Previu” o crescimento na capacidade do CI a partir de 1965, por um dos
fundadores da Intel: Gordon Moore.
○ Os arquitetos podem antecipar onde estará a tecnologia quando o projeto
terminar, e não quando ele começar.
Arquitetura de Computadores
Lei de Moore
Arquitetura de Computadores
Abstrações

Objetivo: simplificação do projeto

Desenvolvimento de técnicas para melhorar produtividade, caso contrário, o tempo de projeto


aumentaria de modo a inviabilizar o acompanhamento da Lei de Moore.

Detalhes de nível mais baixo são ocultados, para oferecer um modelo mais simples para ser
desenvolvido nos níveis mais altos.
Arquitetura de Computadores
Velocidade

Objetivo: Caso comum veloz

Resolver o desempenho do caso comum, tornando-o mais veloz, costuma valer mais a pena que
otimizar o caso raro.

Além disso, normalmente acaba sendo mais simples resolver esses casos do que o caso raro, e
assim, vale muito a pena seguir este caminho.
Arquitetura de Computadores
Paralelismo

Objetivo: Melhorar desempenho por meio do paralelismo

Desde o nascimento da computação, os arquitetos de computador têm oferecido projetos que


geram mais desempenho realizando operações em paralelo.
Arquitetura de Computadores
Pipelining

Objetivo: Melhorar desempenho por meio de pipelining

Um padrão de paralelismo particular, que é muito comum em arquiteturas de computação.

Exemplo, técnica da “brigada de baldes” para apagar incêndios.


Arquitetura de Computadores
Pipelining
Arquitetura de Computadores
Predição

Objetivo: Melhorar desempenho por meio de predição

Pode acabar sendo mais rápido prever e começar a trabalhar antecipadamente do que esperar até
que a carga de trabalho chegue efetivamente.

Se a predição for relativamente precisa, pode-se evitar perda de tempo por conta de “overhead”
de alguns processos.
Arquitetura de Computadores
Memória

Objetivo: Melhorar desempenho por meio de hierarquia de memórias

Deseja-se que a memória disponível para processamento seja rápida, grande e barata, pois a
velocidade da memória geralmente implica em melhoria no desempenho, a capacidade limita o
volume de dados que podem ser carregados e o custo da memória pode implicar diretamente no
custo de uma solução.

Resolve-se esse conflito utilizando a hierarquia de memórias, com a memória mais rápida, menor
e mais cara por bit no topo da hierarquia e a mais lenta, maior e mais barata por bit no fundo.
Arquitetura de Computadores
Redundância

Objetivo: Estabilidade

Os computadores além de precisarem ser rápidos, eles também precisam ser estáveis.

Como qualquer dispositivo pode falhar, montamos sistemas estáveis incluindo componentes
redundantes, que podem assumir o controle quando uma falha ocorre e ajudar a detectá-la.
Arquitetura de Computadores
Funcionamento de um programa

Milhões de linhas de código

Bibliotecas de software implementam funções de apoio à aplicação

O hardware em um computador só pode executar instruções de extremamente simples

Ir de uma aplicação complexa até as instruções simples envolve diversas camadas de software que
interpretam ou traduzem operações de alto nível nas instruções simples (abstração)
Arquitetura de Computadores
Funcionamento de um programa

● Hardware
○ Componentes físicos, que são capazes de realizar
operações simples
Arquitetura de Computadores
Funcionamento de um programa

● Hardware
○ Componentes físicos, que são capazes de realizar
operações simples
● Softwares de sistemas
○ Camada de software que faz a interface entre o
hardware e as aplicações de camadas superiores
Arquitetura de Computadores
Funcionamento de um programa

● Hardware
○ Componentes físicos, que são capazes de realizar
operações simples
● Softwares de sistemas
○ Camada de software que faz a interface entre o
hardware e as aplicações de camadas superiores
● Softwares de aplicações
○ Camada que permite a execução de aplicações e
sistemas de software
Arquitetura de Computadores
Funcionamento de um programa

Compilador

- ou assembly
Transformação de uma linguagem de alto nível para nível de máquina

Montador
Arquitetura de Computadores
Fluxo de dados

● Programador escreve código


● Compilador converte o código escrito em
linguagem de alto nível em código de
máquina
Arquitetura de Computadores
Fluxo de dados

● Programador escreve código


● Compilador converte o código escrito em
linguagem de alto nível em código de
máquina
● O código compilado é carregado na memória
Arquitetura de Computadores
Fluxo de dados

● Programador escreve código


● Compilador converte o código escrito em
linguagem de alto nível em código de
máquina
● O código compilado é carregado na memória
● Os dados necessários para o processamento
são carregados na memória e são
manipulados de acordo com as instruções do
programa
Arquitetura de Computadores
Fluxo de dados

● Programador escreve código


● Compilador converte o código escrito em
linguagem de alto nível em código de
máquina
● O código compilado é carregado na memória
● Os dados necessários para o processamento
são carregados na memória e são
manipulados de acordo com as instruções do
programa
● No processador, instruções de controle e
operações aritméticas são executadas
seguindo um fluxo de dados
Fim!

Prof. Rodrigo Monteiro de Aquino


rodrigo.aquino@eseg.edu.br

Você também pode gostar