3 - Fundamentos de Arquitetura e Organização de Computadores

Fundamentos de Arquitetura de computadores e Organização de Computadores

Get Started. It's Free
or sign up with your email address
3 - Fundamentos de Arquitetura e Organização de Computadores by Mind Map: 3 - Fundamentos de Arquitetura e Organização de Computadores

1. O Computador

1.1. Sistema de computador típico

1.1.1. gabinete

1.1.2. fonte de alimentação

1.1.3. placa mãe

1.1.4. processador

1.1.5. memória

1.1.6. controlador de vídeo

1.1.7. Controlador de áudio

1.1.8. Placa de rede

1.1.9. unidade de disco rígido

1.1.10. unidade de disco ótico

1.1.11. monitor

1.1.12. teclado

1.1.13. mouse

1.1.14. caixa de som

1.2. Tipos de Computadores

1.2.1. Computador descartável

1.2.1.1. único chip

1.2.1.2. usados em chips de RFID (Radio-Frequency IDentification)

1.2.1.3. etiquetas de produtos

1.2.1.4. cartões de felicitações

1.2.1.5. custam menos de US$ 1,00

1.2.2. Microcontrolador

1.2.2.1. computadores embutidos em dispositivos como eletrodomésticos

1.2.2.1.1. carros

1.2.2.1.2. relógios

1.2.2.1.3. telefones

1.2.2.1.4. equipamentos médicos

1.2.2.1.5. militares

1.2.2.2. São computadores pequenos desenvolvidos para atender uma necessidade específica.

1.2.3. Computador de jogos

1.2.3.1. São os vídeos games

1.2.3.2. São computadores normais

1.2.3.2.1. com capacidade de som e recursos gráficos especiais

1.2.3.2.2. com software limitado

1.2.3.2.3. pouca capacidade de expansão

1.2.4. Computador portátil

1.2.4.1. São computadores completos mas com dimensões reduzidas

1.2.4.1.1. limitações

1.2.4.1.2. Tipos

1.2.5. Computador pessoal

1.2.5.1. Usados em

1.2.5.1.1. Residências

1.2.5.1.2. Empresas

1.2.5.2. Para diversas atividades

1.2.5.2.1. jogos

1.2.5.2.2. acesso à internet

1.2.5.2.3. aplicativos

1.2.5.3. estações de trabalho

1.2.5.3.1. computador pessoal com grande poder de processamento

1.2.6. Servidores

1.2.6.1. desenvolvidos para suportar um número maior de processadores

1.2.6.2. mais conexões de rede

1.2.6.3. mais espaço de armazenamento em disco

1.2.6.4. ligado de forma ininterrupta

1.2.7. Conjunto de estações de trabalho ou cluster

1.2.7.1. vários computadores pessoais ou estações de trabalho ou servidores

1.2.7.2. conectados por uma rede de alto desempenho

1.2.7.3. executando um software especial

1.2.7.4. todas as máquinas trabalham juntas em uma única tarefa

1.2.7.5. como se fosse um único supercomputador

1.2.8. Mainframes

1.2.8.1. grandes computadores

1.2.8.2. descendentes diretos dos computadores da década de 1960

1.2.8.3. podem manipular e processar um grande volume de dados e ter milhares de conexões simultâneas

1.2.8.4. Seu uso é adequado para empresas

1.2.9. Supercomputador

1.2.9.1. computador com altíssimo desempenho de processamento e grande capacidade de memória

1.2.9.2. para aplicações que exigem cálculos complexos e tarefas intensivas

1.2.9.3. São construídos com milhares de processadores interconectados por um barramento específico

2. A Arquitetura de Computadores

2.1. Arquitetura ou organização de Computadores?

2.1.1. Dois conceitos fundamentais no estudo dos sistemas de computação

2.1.2. arquitetura refere-se aos atributos do ponto de vista do programador

2.1.3. organização, refere-se às unidades operacionais e suas interconexões

2.1.4. Tabela

2.2. Arquitetura X Organização

2.2.1. Arquitetura

2.2.1.1. Arquitetura da computação é um projeto para criar e implementar de um sistema de computador

2.2.1.2. fornece os detalhes funcionais e o comportamento de um sistema de computador

2.2.1.3. vem antes da organização do computador

2.2.1.4. A arquitetura do computador lida com o termo: o que fazer.

2.2.2. Organização

2.2.2.1. como as partes operacionais de um sistema de computador são interligadas.

2.2.2.2. Ele implementa a arquitetura de computador fornecida

2.2.2.3. A organização de computadores lida com o termo: como fazer.

2.2.3. Tabela

3. Hardware e software

3.1. O que é hardware?

3.1.1. Os hardwares são as peças físicas que compõem um computador, como as placas, o monitor, o teclado, a placa mãe e o disco rígido.

3.1.1.1. Dispositivos de entrada

3.1.1.1.1. São os componentes que o usuário conecta, como teclado e mouse.

3.1.1.2. Dispositivos de saída

3.1.1.2.1. São os componentes que traduzem os dados recebidos para uma linguagem acessível ao usuário, como o monitor e as caixas de som.

3.1.1.3. Componentes internos

3.1.1.3.1. São as peças que se conectam entre si para que o computador funcione.

3.1.1.4. Dispositivos de armazenamento secundário

3.1.1.4.1. São os componentes responsáveis por armazenar os dados de forma permanente no computador.

3.1.2. Exemplos de hardware

3.2. O que é software?

3.2.1. Os softwares representam todas as instruções que o computador recebe pelo usuário para que uma determinada tarefa seja executada.

3.2.2. Software de sistema

3.2.2.1. São programas que permitem a interação do usuário com a máquina. Como exemplo podemos citar o Windows, que é um software pago; e o Linux, que é um software livre.

3.2.3. Software de aplicativo

3.2.3.1. São programas de uso cotidiano do usuário, permitindo a realização de tarefas, como os editores de texto, planilhas, navegador de internet etc.

3.2.4. Exemplos de software

3.3. Hardware X Software

3.3.1. Diferença entre hardware e software?

3.3.2. Princípio da equivalência Hardware Software

3.3.2.1. Qualquer operação realizada por software pode ser diretamente realizada por hardware

3.3.2.2. Qualquer instrução executada por hardware pode ser simulada em software

4. Níveis de Máquinas

4.1. Conceitos

4.1.1. paradigma de organização que facilita o estudo destes equipamentos

4.1.2. cada um destes níveis pode ser estudado independentemente

4.1.3. Mas são interdependentes

4.2. Nível 0: Lógica Digital

4.2.1. Hardware propriamente dito

4.2.2. eletrônica digital

4.2.3. portas lógicas

4.2.4. memórias

4.2.5. Processador

4.3. Nível 1: Controle

4.3.1. responsável por gerenciar e garantir que as instruções sejam decodificadas e executadas

4.3.2. verificar de onde, para onde e quando os dados devem ser movidos

4.4. Nível 2: Arquitetura do Conjunto de Instruções

4.4.1. ISA (Instruct Set Architecture)

4.4.2. ela está acima do código de máquina (Linguagem Binária – 0 e 1)

4.4.3. e abaixo de uma linguagem de médio nível (Linguagem C, por exemplo)

4.5. Nível 3: Software de Sistema

4.5.1. Sistema Operacional

4.5.2. gerenciar processos do sistema

4.5.3. Gerenciar usuários

4.5.4. executar aplicações de alto nível

4.5.5. gerenciar recursos e dispositivos

4.6. Nível 4: Linguagem de Baixo Nível

4.6.1. linguagem de máquina

4.6.2. linguagem de baixo nível

4.6.3. Assembler

4.7. Nível 5: Linguagem de Alto e Médio Nível

4.7.1. Java, C, C++, C#, entre outras

4.7.2. Neste nível só precisa saber algo sobre o hardware, ou linguagem de baixo nível, a pessoa que desejar

4.7.3. Exceto se o programa for para microcontroladores

4.8. Nível 6: Usuário e Aplicações

4.8.1. executa programas dos mais diversos tipos

4.8.2. oferece inúmeras possibilidades para o usuário

5. Bases Numéricas

5.1. Binário

5.1.1. no nível mais baixo tudo ocorre através de portas lógicas, isto é, com informações lógicas do tipo "falso" ou "verdadeiro".

5.1.2. para o programador, representar tudo através de números 0 e 1 pode ser bastante dificil

5.2. Octal

5.2.1. Nos primeiros computadores microprocessados, as instruções e informações eram organizadas em grupos de 4 bits

5.2.1.1. nibble

5.2.1.2. entretanto, apenas os 3 bits inferiores (os mais à direita) eram "úteis";

5.2.1.3. como os computadores não eram exatamente confiáveis, o bit mais alto (o mais à esquerda) era usado como um dígito verificador

5.2.1.4. o programador tinha acesso a apenas 8 combinações numéricas

5.2.2. Tabela

5.2.3. Pode parecer pouca economia, mas observe o ganho no tempo de digitação e leitura. Cada tríade de bits era substituída por um único dígito.

5.2.4. 0 2 7 4 1 0 4 5 2

5.2.4.1. 000 010 111 100 001 000 100 101 010

5.3. Hexadecimal

5.3.1. Quando os computadores se tornaram mais confiáveis, as informações passaram a ser organizadas em grupos de 4 bits

5.3.1.1. Os "octais", de 0 a 7, não era mais suficientes

5.3.2. o uso de decimais não era o mais adequado

5.3.2.1. devido à necessidade de dois dígitos para representar cada nibble.

5.3.2.2. Tabela

5.3.3. Por essa razão, alguém teve a ideia de usar uma representação "hexadecimal"

5.3.3.1. os dígitos considerados são 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F

5.3.3.2. A representa o 10

5.3.3.2.1. Sequencialmente, com o F representando o 16

5.3.3.3. Tabela

5.3.3.4. 0 1 8 4 C 9 E

5.3.3.4.1. 0000 0001 1000 0100 1100 1001 1110

5.3.3.5. Quando os dados passaram a ser considerado em 8 bits

5.3.3.5.1. não seria viável o uso de novas letras

5.3.3.5.2. uma vez que há 256 combinações possíveis (de 0 a 255) com 8 bits

5.3.3.5.3. passou-se então, a especificar os números em hexadecimal, com um dígito por nibble

5.3.3.5.4. 2D

5.3.3.6. Os números de 16 bits passaram a ser representados como 4 dígitos hexadecimais

5.3.3.6.1. 2DF0

5.3.3.7. os números de 32 bits passaram a ser representados por 8 dígitos hexadecimais

5.3.3.7.1. separados por quatro a quatro:

5.3.3.7.2. 2DF0:CE16

6. Arquiteturas

6.1. Arquitetura de von Neumann

6.1.1. Conceitos

6.1.1.1. Nos primórdios da Computação não exista o conceito de programa armazenado

6.1.1.2. John Von Neumann

6.1.1.2.1. EDVAC

6.1.1.3. única área de memória

6.1.1.3.1. Dados

6.1.1.3.2. Programa

6.1.1.3.3. o processador deve executar uma única ação por vez: ou acessa os dados ou executa uma instrução

6.1.1.3.4. Imagem

6.1.2. O Gargalo de Von Neumann

6.1.2.1. A velocidade da troca de informações e maior do que a velocidade do processados

6.1.2.2. A CPU é constantemente forçada a esperar por dados que precisam ser transferidos para, ou a partir da, memória

6.1.2.3. Isso limita seriamente a velocidade eficaz de processamento

6.1.2.4. O problema de desempenho pode ser aliviado por diversos mecanismos.

6.1.2.4.1. memória cache entre o processador e a memória principal

6.1.2.4.2. algoritmo preditor de salto

6.1.2.4.3. computação paralela

6.2. Arquitetura de Harvard

6.2.1. A Arquitetura de Harvard baseia-se em um conceito mais recente que a de Von Neumann

6.2.2. da necessidade de se pôr o processador para trabalhar mais rápido

6.2.3. duas memórias diferentes e independentes em termos de barramento e ligação ao processador

6.2.4. o acesso à memória de dados de modo separado em relação à memória de programa.

6.2.5. o processador pode buscar e executar uma instrução ao mesmo tempo em que acessa a memória de dados para ler ou para gravar algum valor

6.2.6. Pipeline

6.3. Resumindo

6.3.1. a característica mais marcante da arquitetura de von Neumann é a forma como a CPU acessa os dados e as instruções

6.3.1.1. as instruções e os dados são buscados em tempos distintos

6.3.2. Harvard possibilitam que a CPU busque as instruções e os dados ao mesmo tempo.

6.3.2.1. Isto provoca um ganho substancial de performance

6.3.2.2. aumento significativo nos custos de produção

7. Conjunto de Instruções

7.1. Definição

7.1.1. Cada instrução é dada por uma sequência de bits

7.1.2. Cada processador possui seu próprio conjunto de instruções

7.2. CISC

7.2.1. Conjunto de instruções complexas

7.2.2. Compiladores mais complexos

7.2.3. Vantagens

7.2.3.1. Apesar do conjunto de instruções ser muito grande, oferece um número maior de instruções(“ferramentas”) ao programador

7.2.3.2. Menor quantidade de instruções são necessárias para desenvolver um programa (programas ocupam menos memória)

7.3. RISC

7.3.1. Conjunto menor de instruções

7.3.2. Grande número de registradores de propósito geral.

7.3.3. Instruções mais complexas são construídas a partir das mais simples

7.3.4. Utiliza Arquitetura Harvard e Pipeline

7.3.5. Vantagens

7.3.5.1. Etapa de decodificação tão simples que pode, em alguns casos, ser eliminada

7.3.5.2. Simplificação dos circuitos eletrônicos.

7.4. Considerações

7.4.1. Uma única instrução CISC pode equivaler a várias instruções RISC

7.4.2. Uma instrução CISC precisa realizar passos semelhantes aos realizados pelas RISC

7.4.3. CISC minimiza o número de acessos a memória de programa

7.4.4. RISC simplifica a decodificação de instruções, deixando esta etapa mais rápida

7.5. Comparativo

7.5.1. Risc X Cisc