Revisão - Arquitetura de Comp. II

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 14

Revisão N1 | Arquitetura de Comp.

II
AULA I
- Arquitetura de Von Neumann:

- Dados e instruções são armazenados em uma única memória de


leitura e escrita.

- O conteúdo da memória é endereçável por local, sem considerar os


dados internos. Tudo ocorre de forma sequencial.

- Programação de Hardware:

- Em vez de modificarmos diretamente o hardware para realização de


uma operação (com configurações de portas lógicas e etc) utilizamos
um chip programável. Cada linha de código é uma instrução e cada
uma é realizada de forma que o processamento correspondente seja
realizado.

- Microcontroladores:

- São circuitos integrados com memória, núcleo de processamento e


periféricos de entrada/saída que podem ser programados em
linguagem de alto nível.

- Requerem uma reprogramação a cada vez que há alterações no


projeto.

- Linguagem Assembly:

- Instruções em nível de máquina acontecem em nível de bits, porém


para ficar mais fácil de programar, se criou a linguagem assembly,
completamente presa à arquitetura do processador.

- São escritas em um editor de texto e logo após converte-se o


programa para binário com os opcodes e operandos corretos para o
processador que irá executá-los com o assembler.

- Registradores:

- São áreas de
armazenamento do
processador, como o
exemplo de um
processador
32-bits:
- Pilha de Memória:

- A memória RAM é dividida em áreas com diferentes propósitos. Uma


delas é o stack.

- LIFO (Last In First Out) é o método onde o último dado colocado é o


primeiro a ser retirado.

AULA II ( FAZER EXCS. DO SLIDE )


- Processador e Computador:

- Processador é apenas a parte da máquina, a UCP. Já o computador é


o sistema de processamento completo, incluindo inclusive os
periféricos.

- Lei de Moore:

- Gordon Moore observou que o poder de processamento dos


processadores, junto com os transistores presentes, dobrava a cada
18 meses. Não seguiu dessa maneira devido às limitações atuais de
temperatura para chips tão pequenos.

- Componentes Básicos de um Computador:

- Processador:

- Responsável pelo tratamento de informações armazenadas na


memória (código de máquina e dados).

- As portas lógicas são implementadas por meio de transistores.

- Dividido em ULA (Unidade Lógica e Aritmética), UC (Unidade


de controle) e registradores.
- Memória:

- Responsável pela armazenagem de dados e programas.

- Periféricos:

- Dispositivos responsáveis pelas E/S de dados do PC,


basicamente interações do computador com o mundo externo.

- Barramentos:

- Ligam todos esses componentes e serve de via de


comunicação de desempenho por onde os dados são tratados
no PC.
- CLOCK:

- É um circuito oscilador que sincroniza e dita a medida de velocidade


de transferência de dados no computador.

- Tipos de clock:

- Frequência do próprio processador:

- Comandando operações internas do processador.

- Frequência de acesso à memória:

- Ciclos de CPU-Memória Principal.

- RISC x CISC:

- CISC:

- Usada em processadores INTEL e AMD, suportando mais


instruções porém com mais complexidade e menor velocidade.

- Reduz o tamanho do código executável por possuírem código


comum em muitos programas.

- Pode executar muito mais operações criadas por programas de


alto nível.

- Pode exigir diversos ciclos de clock para a realização de uma


instrução

- RISC:

- Suporta menos instruções que o CISC, porém executa com


muito mais rapidez.

- Não tem microprogramação, ou seja, as instruções são


diretamente realizadas pelo hardware.

- Possuem implementação de um número limitado de instruções


para realização de forma mais rápida.

- Geralmente implementado em videogames devido à execução


ter que ser realizada de forma mais rápida.

- Usa o pipeline, que permite a CPU procurar a próxima instrução


ou mais antes da próxima ser executada.
- Barramento:

- Considerados como condutores que realizam o tráfego de informações


entre partes do PC:
- Instruções:

- Representação elementar que gera uma ação em um computador.

- Determina o que o computador deve fazer naquele instante, no caso


onde são executadas de forma ordenada pelo processador.

AULA III
- Multiprocessamento:

- Existem dois principais tipos de dividir as tarefas para suportar certa


carga de trabalho no processador:

- SMP (Symmetric MultiProcessor).

- Clusters.

- Taxonomia de Flynn:

- Ele propôs duas categorias de sistemas com multiprocessamento:

- SISD (Single Instruction, Single Data):

- Um processador único realiza uma única sequência de


instruções para operar os dados armazenados na
memória.

- SIMD (Single Instruction, Multiple Data):

- Uma única instrução de máquina controla a execução


simultânea de uma série de elementos de
processamento em operações básicas.

- Cada elemento possui uma memória de dados


associada, ou seja, cada instrução é executada em um
conjunto diferente de dados por diversos processadores.

- MISD (Multiple Instruction, Single Data):

- Uma única sequência de dados é transmitida para uma


série de processadores, onde cada um executa uma
sequência de instruções diferentes. Geralmente não vai
para computadores comerciais.
- MIMD (Multiple Instruction, Multiple Data):

- Um conjunto de processadores que executam


sequências de instruções diferentes simultaneamente em
diferentes conjuntos de dados. SMPs (symmetric
multiprocessor), clusters e sistemas NUMA (non uniform
memory access) enquadram-se nesta categoria.

- Características de Multi Processamentos Simétricos:

- Há dois ou mais processadores semelhantes de capacidade


comparável.

- Esses processadores compartilham a mesma memória principal e os


recursos de E/S, e sempre são conectados por um barramento ou
algum outro esquema de conexão interna para possibilitar um acesso
à memória o mais próximo possível para cada processador.

- Todos os processadores compartilham acesso aos dispositivos de E/S,


ou pelos mesmos canais ou por canais diferentes.

- Todos os processadores desempenham as mesmas funções (por isso


simétricos).

- O sistema é controlado por um sistema operacional integrado que


fornece interação entre processadores e seus programas em níveis de
trabalho, arquivos, dados, etc.
- Vantagens:

- Desempenho: Com vários processadores o desempenho


sempre vai ser melhor que com um único.

- Disponibilidade: A falha de um processador não trava a


máquina, o sistema continua rodando, apenas continua com
desempenho reduzido.

- Crescimento: O usuário sempre pode incrementar mais


processadores e aumentar o potencial do sistema.

- Escalabilidade: Existem muitos produtos de fornecedores com


diferentes preços, características, etc. para um determinado tipo
de necessidade/sistema.

- Organização de um Sistema Multiprocessado:

- Existem sempre dois ou mais processadores, cada um sendo auto


suficiente e possuindo acesso aos dispositivos de E/S e memória
principal compartilhada.

- Os processadores podem comunicar-se entre si pela memória


(mensagens e informações).

- Sempre deve ser possível determinar de onde a origem e destino dos


dados estão sendo enviados, por meio endereçamento.

- O tempo de ciclo do barramento limita a velocidade do sistema.

- Interconexão Chaveada:

- A memória principal é dividida em cartões e cada um com seu


controlador de armazenamento que consegue lidar com os
acessos em alta velocidade.

- Em multiprocessadores atuais é comum o compartilhamento de vários


níveis de cache, porém várias cópias dos mesmos arquivos podem
existir em diversos caches, possibilitando imagens de memória
inconsistentes.

- Write-back: As operações de escrita são feitas normalmente no


cache. A memória só é atualizada quando essa linha é
removida do cache. (Pode resultar em inconsistência)

- Write-through: Todas as operações são realizadas diretamente


na memória principal, sempre garantindo que a memória
principal esteja válida.
- Protocolo MESI:

- Consiste em um protocolo para verificar a consistência de um cache.

- Cada linha do cache tem seus próprios bits e a sua própria instância
do diagrama de estado.

- As caches compartilhadas são sempre as L2 (caches L1 não se


conectam a barramentos), porém com protocolos MESI estendidos é
possível utilizá-lo em L1, com bits inclusos para verificação do estado.

- Multithreading e Chips Multiprocessadores:

- Taxa MIPS: f (frequência) * IPC (Média de Instruções por Ciclo).

- Para aumento do desempenho, se aumenta o ciclo de clock,


consequentemente, aumentando o número de instruções por ciclo.

- No multithreading o fluxo de instruções é dividido em vários fluxos


menores, os threads. Cada thread pode ser executada em paralelo.

- Uma troca de thread consome muito menos tempo que uma


troca de processo.

- Existem threads em nível de USER e em KERNEL. Ambas são


threads explícitas, pois a USER é visível para o programa e a KERNEL
para o S.O.

- O multithreading implícito é quando ocorre a execução de várias


threads retiradas de um único programa, sendo definidas pelo
compilador ou pelo hardware.
- Thread: é basicamente a unidade básica onde o S.O. aloca o tempo
do processador. Um ou vários threads são executados no contexto do
processo.

- Multithreading Intercalado: O processador lida com dois ou mais


contextos de thread, trocando de um thread para outro em cada ciclo
de clock. Se uma thread falha, ela é pulada para uma thread pronta e
executada.

- Multithreading Bloqueado: As instruções são realizadas


sucessivamente até que ocorra um evento que possa causar atraso
como falta de cache, somente assim trocaria para outra thread.

- Multithreading Simultâneo (smT): Instruções são enviadas de


múltiplas threads para várias unidades de execução do processador.
- Chip com Multithreading ( MULTICORE ): O processador inteiro é
replicado em um único chip que lida com threads separadas, tendo
como vantagem que a área lógica é usada de forma eficiente sem
depender da complexidade do pipeline.

- Clusters:

- Conjunto de computadores conectados que trabalham juntos como


uma CPU unificada tipo uma única máquina.

- Cada computador incluso em um cluster é chamado de nó.

- Vantagens:

- Escalabilidade Absoluta: não existe limite para o tamanho do


cluster, incluindo com máquinas com multithreading.

- Escalabilidade Incremental: sempre é possível adicionar novos


componentes e aumentar o potencial de desempenho do
cluster.

- Alta Disponibilidade: independentemente da falha de um nó, o


sistema rodará, apenas com desempenho reduzido.

- Podemos ter clusters de alta disponibilidade, que provêm uma


probabilidade mais alta de tudo estar 100% OK ou um cluster com
tolerância a falhas, onde sempre haverá um mecanismo para garantir
o funcionamento independente de erros, problemas, etc.

- Quando um novo computador é adicionado no cluster, o load balancer


deve incluir esse computador no agendamento de aplicações.

- Sua arquitetura gira em torno de uma rede LAN de alta velocidade,


com a possibilidade de cada nó funcionar sozinho.

- O middleware é uma camada de software que possibilita a operação


do cluster.
- Ponto de entrada único: o usuário efetua logon no cluster em vez de
fazê-lo em um computador individual.

- Hierarquia única de arquivos: o usuário vê uma hierarquia única de


diretórios de arquivos abaixo do mesmo diretório raiz.

- Rede virtual única: qualquer nó pode acessar qualquer outro ponto no


cluster, mesmo que a configuração atual do cluster consista em
múltiplas redes.

- Espaço único de memória: Memória compartilhada distribuída


possibilita que os programas compartilhem variáveis.

- Sistema único de gerenciamento de trabalhos: com um agendador de


trabalhos do cluster, um usuário submete um trabalho sem especificar
qual nó o executará.

- Interface de usuário única: uma interface gráfica comum suporta todos


os usuários, independentemente da estação de trabalho a qual
acessaram o cluster.

- Espaço de E/S único: qualquer nó pode acessar remotamente


qualquer periférico de E/S ou dispositivo de disco sem conhecer a sua
localização física.

- Espaço único de processos: um esquema uniforme de identificação de


processos. Um processo em qualquer nó pode criar ou se comunicar
com qualquer outro.

- Pontos de verificação: esta função periodicamente salva o estado dos


processos e resultados computacionais intermediários para permitir
recuperação em caso de falhas.

- Migração de processos: esta função habilita o balanceamento de


carga.
- Servidores Blade:

- São servidores que abrigam módulos “lâminas” em um único chassi.

- Utilizado em datacenters devido ao espaço e melhorias na gestão do


sistema.

- Cada blade fornece sua alimentação de energia, memória e


processador único.

- Clusters x SMP (Symmetric Processors):

- Ambos oferecem opções de configuração com diversos processadores


para aplicações de alta demanda.

- Vantagens do SMP:

- É mais fácil de gerenciar.

- Está bem mais próximo de como um modelo original de um


único processador.

- Ocupa menos espaço físico.

- São estáveis e mais estabelecidos.

- Vantagens dos Clusters:

- Escalabilidade incremental e absoluta é infinitamente melhor


que os SMPs.

- São mais superiores em termos de disponibilidade.

- UMA (Uniform Memory Access):

- Todos os processadores têm acesso à memória da mesma forma. O


tempo de acesso é o mesmo para todas as regiões.

- NUMA (Non-Uniform Memory Access):

- A diferença do UMA é que dependendo da região da memória a


velocidade de acesso é menor para certos processadores.

- Usado para alcançar o processamento paralelo em alta escala em


SMPs.

- Vantagens:

- Pode permitir o desempenho eficiente em níveis mais altos de


paralelismo do que SMP, sem mudar o software.
- O tráfego do barramento de qualquer nó está limitado à
demanda que o barramento pode lidar.

- Desvantagens:

- Se muitos acessos forem para nós remotos, o desempenho cai.

- Disponibilidade menor que clusters.

- Cloud Computing:

- Requer acesso amplo à rede, é altamente escalável e possui opções


para serviço medido e mudança de atendimento sob demanda.

- Modelos de Serviço:

- SaaS (Software as a Service):

- Fornece o serviço para o cliente, como aplicativos/sites.

- PaaS (Plataform as a Service):

- Fornece um serviço de plataforma, onde as aplicações


do cliente só são executadas, sem acesso ao hardware.

- Iaas (Infrastructure as a Service):

- O cliente tem acesso à infra da nuvem que acessa,


fornecendo máquinas virtuais e outros elementos de
hardware e sistemas operacionais.

Você também pode gostar