Organização e Arquitetura de Computadores

Slides:



Advertisements
Apresentações semelhantes
Organização e Arquitetura de Computadores I Introdução
Advertisements

Capitulo 6: Entrada e Saída
Organização de Computadores I
CPU: Controle e processamento
Arquitetura de Computadores
Arquitetura e organização de computadores
Arquitetura e organização de computadores
Arquitetura e organização de computadores.
Barramentos Introdução.
Organização de computadores Professora Marcela Santos Aula 7 – A arquitetura de von Neumann.
Arquitetura de Computadores
A Arquitetura: conjunto de instruções
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 03: Computador.
Software Básico Silvio Fernandes
Unidade Lógica e Aritmética Introdução à Ciência da Computação
Unidades de Execução e de Controle Sistemas Digitais.
Sistemas Operacionais
Professor: Erivelto Tschoeke – UDESC/CEPLAN
O MICROPROCESSADOR INTEL 8080
Sistemas Digitais Microprocessados
REPRESENTAÇÃO DE INSTRUÇÕES
Linguagens de Programação
Arquitetura de Sistemas Operacionais
Lógica de Programação UNIDADE 1 – Introdução a) Computador
Arquitetura de Computadores
PROGRAMAÇÃO I UNIDADE 1.
Representação de Instruções
Unidade Central de Processamento UCP
PCI- Introdução à Computação
Organização de Computadores
Sistemas Operacionais
Sistemas Operacionais I
Organização de um computador
Organização e Arquitetura de Computadores
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Agenda Modos de Endereçamento.
Pet computação UFPE Aula de apoio aos feras: Arquitetura de Computadores.
Processamento de dados na UCP e memória UCP
Arquitetura de Computadores
Unidade Central De Processamento: Processador
Geração de Código aula-12-geração-de-código.pdf.
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Unidade Central De Processamento: Processador
Fundamentos de Arquitetura da Computação
Projeto de Linguagens de Programação
UNIDADE LÓGICA ARITMÉTICA (ULA)
DCC 001 Programação de Computadores 2o Semestre de 2011
Organização e Arquitetura de Computadores
Componentes de um Sistema de Computação
8088 Assembly Software Básico Mitsuo Takaki.
Tudo sobre o Processador
Parte 3 Seção de Dados e Unidade de Controle
UNIDADE LÓGICA ARITMÉTICA (ULA)
1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos.
Algoritmos e Programação MC102
Introdução à Computação Componentes Básicos dos Computadores
Arquitetura de Computadores
Arquitetura de Microcomputadores
Sistemas Operacionais
Introdução à Programação
Arquitetura de computadores
Introdução à Computação
Arquitetura de Sistemas Operacionais
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
ARQUITETURA DE VON NEUMANN
Sistemas Operacionais Arquitetura de Computadores
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Transcrição da apresentação:

Organização e Arquitetura de Computadores II – Introdução Introdução Histórico e Evolução Princípios Básicos Arquitetura de Von Neuman e Componentes Arquitetura de 4,3,2,1 e 0 endereços Tabela Ascii

Resultado: informações Introdução Computador Máquina destinada a realizar cálculos complexos. Série de atividades ordenadas. Objetivo: obter informações a partir de outras informações Matéria Prima D a d o s Processamento Resultado: informações Varia tecnologicamente (evolui) Velocidade Telecomunicação

Introdução Estrutura do sistema Hardware

Organização de computadores: Introdução Organização de computadores: Parte do estudo da Ciência da Computação que trata dos aspectos mais conhecidos dos especialistas que o construíram. Tecnologia de construção da memória Frequência do relógio Sinais de controle para inicio Microoperações nas diversas unidades Arquitetura: Nível do Programador Impacta diretamente na construção de um programa. Conjunto de instruções de um processador Tamanho da palavra Modos de endereçamento das instruções Tipo e tamanho dos dados manipulados pelo processador

Introdução

Histórico e Evolução Gerações dos computadores 1ª Geração (1940 a 1952) Linguagem de máquina válvula Cartão perfurado Eniac Memória de atraso de mercúrio

Gerações dos computadores 2ª Geração (1952 a 1964) Histórico e Evolução Gerações dos computadores 2ª Geração (1952 a 1964) Linguagem assembler, cobol, Algol, Fortran. Memória de núcleo de ferrite Válvula e transistores Tradic - 1955 Unidade de fita magnética

Gerações dos computadores 3ª Geração (1964 a 1971) Histórico e Evolução Gerações dos computadores 3ª Geração (1964 a 1971) Comparativo: válvula transistores e chips PDP-11 Circuitos integrados VAX

Gerações dos computadores 4ª Geração (1971 a 1981) Histórico e Evolução Gerações dos computadores 4ª Geração (1971 a 1981) Diversidade de Linguagens de programação; Rede de transmissão de dados. Microcomputador APPLE Microcomputador TRS-80 Microcomputador PC 8088 Disco flexível de 5.1/4” Disco flexível de 3.1/2”

Gerações dos computadores 5ª Geração (1981........) Histórico e Evolução Gerações dos computadores 5ª Geração (1981........) Inteligência Artificial; Linguagem Natural Altíssima velocidade de processamento. CPU - Circuito integrado da Larga escala Notebook com a mesma capacidade dos desktop Microcomputador integrado com processamento paralelo Comparativo atual

Software 1ª Geração Linguagem de máquina Histórico e Evolução Software 1ª Geração Linguagem de máquina 2ª Geração Assembler, linguagem montadora 3ª Geração Linguagem de alto nível orientada para os procedimentos, linguagem simbólica de composição do raciocínio 4ª Geração diversificação das linguagens de programação. Linguagens de altíssimo nível, orientadas para problemas. O software pode ser: Básico: sistemas operacionais e linguagens de programação. Aplicativo: processadores de textos, planilhas de cálculo, processadores de imagens, etc.

Linguagens de Programação Histórico e Evolução Linguagens de Programação Definição: é um conjunto de termos (vocábulos) e regras (sintaxe) que permitem a formulação de instruções (programas para serem executadas pelo computador) Tipos de linguagens: Linguagem de Máquina: é única entendida pelo computador, sendo formada por instruções em código binário.

Linguagens de Programação Histórico e Evolução Linguagens de Programação Linguagem de baixo nível: são aquelas cujo os códigos são muito próximos aos usados pela máquina. São utilizadas no desenvolvimento de aplicações que interagem diretamente com o hardware necessitando alta velocidade de execução. A estas linguagens dá-se o nome de Linguagem Montadora (Assembler – Assembly Language).

Linguagens de Programação Histórico e Evolução Linguagens de Programação Linguagem de alto nível: são aquelas cujo os códigos são muito próximos aos utilizados pela linguagem humana.

Proximidade entre a linguagem e a máquina. Histórico e Evolução Linguagens de Programação Proximidade entre a linguagem e a máquina.

Relação entre o usuário e o computador através da linguagem. Histórico e Evolução Linguagens de Programação Relação entre o usuário e o computador através da linguagem.

Princípios Básicos Instrução: OPERAÇÃO OPERANDOS Programa: Conjunto de Instruções São armazenados na memória juntamente com os dados correspondentes. Deve ser interpretado para realização do processamento. Memória: Armazena dados e instruções. Organizada matricialmente em endereços.

Unidade Central de Processamento (UCP ou CPU) ou processador Princípios Básicos Unidade Central de Processamento (UCP ou CPU) ou processador Formado pelas unidades de: Controle: controla todo o tráfego de informação Unidade Lógica e Aritmética Busca – decodificação – execução de instruções Contador de instruções ou apontador de instruções: elemento que contém a próxima instrução a ser executada. Registrador de instruções: armazena, a partir da memória, a próxima instrução a ser executada Operações Lógicas Operações aritméticas

Elementos Funcionais Básicos Blocos Convencionais: Princípios Básicos Registrador de instruções: armazena, a partir da memória, a próxima instrução a ser executada Decodificação: processo de interpretação das instruções a partir de circuitos de decodificação gerando sinais correspondentes à operação a ser realizada Execução de instruções: aplicação da função nos operandos Elementos Funcionais Básicos Blocos Convencionais: Registradores Contadores Multiplexadores Seletores Decodificadores Somadores Portas lógicas Memória Unidades Operacionais Unidades de controle Dispositivos de E/S CPU

Princípios Básicos Elementos Funcionais Básicos Registradores: elementos digitais com capacidade de armazenar dados Contadores Multiplexadores Seletores Decodificadores Somadores Portas lógicas Elementos com capacidade de operar sobre dados, alterando-os ou fornecendo um novo dado como resultado da operação que realizam. Sinais de controle: são sinais que habilitam operações nos elementos digitais. Barramento: são caminhos que permitem o transporte de dados entre vários elementos da parte operacional. Memória e sistemas de E/S

CPU Memória Unidade Operacional Controle Entrada e Saída Memória Princípios Básicos Elementos Funcionais Básicos Memória CPU Controle Unidade Operacional Entrada e Saída Memória Formada por elementos de armazenamento

Formada por elementos de armazenamento Palavra: divisão da memória Princípios Básicos Elementos Funcionais Básicos Memória Formada por elementos de armazenamento Palavra: divisão da memória Endereço: Identificação unívoca da palavra: São dados ou instruções Parâmetros que caracterizam a memória: tamanho: palavra em bits (RDM) memória em palavra (REM) velocidade Tecnologia

RDM(in) READ REM WRITE RDM(out) Sinais de Controle Princípios Básicos Elementos Funcionais Básicos Memória Registrador de Dados da Memória (Write) RDM(in) READ REM Registrador de Endereço da Memória Sinais de Controle WRITE RDM(out) Registrador de Dados da Memória (Read)

Princípios Básicos Elementos Funcionais Básicos Unidade Operacional Bloco Operacional: executa as transformações sobre os dados especificados pelas instruções de um computador. composição: unidade lógica e aritmética, registradores de uso geral e específico, barramento de interligação. porte: número, tamanho, uso dos registadores, quantidade de operações, tipo de operações e unidade lógica e aritmética.

U L A Unidade Lógica e Aritmética Operandos Overflow Sinal Princípios Básicos Elementos Funcionais Básicos Unidade Operacional Unidade Lógica e Aritmética Realiza operações Lógica e Aritmética sobre um ou mais operandos. Ex: Soma, Negação, Deslocamento... Fornece resultados e indicações sobre as operações realizadas. U L A Operandos Controle Código de Condição Resultados Overflow Sinal Carry Zero

Comprimento em bits dos operandos Número e tipo de operações Princípios Básicos Elementos Funcionais Básicos Unidade Operacional Unidade Lógica e Aritmética Característica: Comprimento em bits dos operandos Número e tipo de operações Códigos e condições geradas Acumulador: Armazena um operando e/ou resultado fornecido pela ULA. Característica: comprimento em bits

Unidade de Controle Gerenciador do fluxo de dados; Princípios Básicos Elementos Funcionais Básicos Unidade de Controle Gerenciador do fluxo de dados; Gera sinais de controle Determinam e garantem o instante preciso Cada sinal comanda: Microprogramação Carga do registrador Seleção do modo de entrada de um dado componente Seleção de uma operação na ULA Habilitação de um circuito lógico

Princípios Básicos Elementos Funcionais Básicos .......Unidade de Controle A unidade de controle é uma máquina de estados finitos (FSM) que realizam operações por lógica: Sequencial: sinais de saída dependem dos sinais de entrada e do estado anterior; Combinacional: sinais de saída dependem exclusivamente dos sinais de entrada.

Implementação da Lógica Sequencial Princípios Básicos Elementos Funcionais Básicos .......Unidade de Controle Implementação da Lógica Sequencial Organização convencional: unidade de controle composta por: flip-flops, contadores e decodificadores que geram sequencialmente todos os sinais de controle de ativação dos elementos funcionais;

Princípios Básicos Elementos Funcionais Básicos .......Unidade de Controle Organização microprogramada: sinais de controle são armazenados em memória especial (memória de controle) Vários sinais são buscados a cada acesso à memória de controle, que estão agrupados em microinstruções. Seu conjunto formam o microprograma Longas palavras

Sinais de controle para a unidade operacional Princípios Básicos Elementos Funcionais Básicos .......Unidade de Controle RI RST Unidade de Controle Registrador de instruções: Elemento do bloco de controle Registrador de estado: Elemento da interface Sinais de controle para a unidade operacional

Dependem da arquitetura e da organização da máquina: Princípios Básicos Elementos Funcionais Básicos Registradores Especiais Dependem da arquitetura e da organização da máquina: Apontador de instruções ou Contador do programa (PC- Program Counter) : mantém atualizado o endereço da próxima instrução a ser executada. característica: comprimento em bits Registrador de instruções: armazena a instrução que está sendo executada.

característica: comprimento em bits Princípios Básicos Elementos Funcionais Básicos ...........Registradores Especiais Registrador de estado (RST): armazena códigos de condição gerados pela unidade lógica e aritmética, e, eventualmente por outros elementos, como sinais de interrupção gerados por dispositivos de entrada e saída. característica: comprimento em bits

Conjunto de Instruções e Modo de Endereçamento Princípios Básicos Elementos Funcionais Básicos Conjunto de Instruções e Modo de Endereçamento instrução: Conjunto de bits devidamente codificados que indica ao computador que sequência de microoperações ele deve realizar. Classificação: Semelhança de propósito e formato. As mais comuns são: Transferência de dados Aritméticas e lógicas Teste de desvio

Princípios Básicos Elementos Funcionais Básicos ......Conjunto de Instruções e Modo de Endereçamento Conjunto de instruções: é o conjunto de todas as instruções que um computador reconhece e pode realizar (equivalente ao conjunto de palavras reservadas e uma linguagem de alto nível). Programa: qualquer sequencia finita de instruções de um determinado conjunto de instruções. Modos de endereçamento: são as diversas forma de endereço de um operando somadas as diversas formas de desvio.

Ciclo de busca – decodificação – execução de instruções Princípios Básicos Elementos Funcionais Básicos Ciclo de busca – decodificação – execução de instruções Busca: Leitura de uma instrução da memória. Envolve: Copiar o apontador de programa (PC) para o registrador de endereço de memória(REM); Leitura de uma instrução da memória (RDM); Copiar o registrador de dados da memória (RDM) para o registrador de instruções (RI); Atualizar o apontador (PC).

Execução: Depende de qual instrução a ser executada. Princípios Básicos Elementos Funcionais Básicos ...Ciclo de busca – decodificação – execução de instruções Decodificação: Determinar qual a instrução a ser executada. A decodificação é feita geralmente por lógica combinacional. Execução: Depende de qual instrução a ser executada. Cálculo do endereço de operandos Busca de operandos na memória Seleção de operação da ULA Carga de registradores Escrita de operandos na memória Atualização do PC para desvios

Programação de um processador Princípios Básicos Elementos Funcionais Básicos Programação de um processador Linguagem de máquina: É uma imagem numérica (binária) que representa a codificação do conjunto de instruções de um computador. Programa objeto: São representados e armazenados em linguagem de máquina. Devido à dificuldade do trabalho com esta linguagem foram criados:

Devido à dificuldade do trabalho com esta linguagem foram criados: Princípios Básicos Elementos Funcionais Básicos ....Programação de um processador Devido à dificuldade do trabalho com esta linguagem foram criados: Mneumônicos associados às instruções: Nomes dos operandos Rótulos às posições ocupadas pelo programa Necessita de Tradução  Montagem Montador: programa que realiza a montagem (Tradutor); Compilador: gera rotinas em linguagem de máquina para cada instrução.

Arquitetura de Von Neumann e Componentes Um Computado de Primeira Geração: O EDVAC (Eletronic Discrete Variable Computer)   No ENIAC os programas e dados eram armazenados separadamente. O conceito de programa armazenado é atribuído ao matemático húngaro John von Neumann (1903-1957). Isto caracteriza a possibilidade de mudança das próprias instruções. 

Representação interna em binário. Arquitetura de Von Neumann e Componentes Arquitetura do EDVAC. Programa armazenado Memória: 1024 palavras de 44 bits cada, implementada através de linha de atraso de mercúrio. 20 K palavras de memória secundaria magnética. Representação interna em binário. Circuitos aritméticos binários seriais, devido a entrada de dados serial.

Arquitetura de Von Neumann e Componentes ...Arquitetura do EDVAC.

Antes da execução do programa Arquitetura de Von Neumann e Componentes ...Arquitetura do EDVAC. Antes da execução do programa · Colocação de todas as instruções e dados na memória principal. · Palavras de 44 bits permitem 4 campos de 10 bits, um campo de 4 bits de código de instrução. · Capacidade de 16 instruções sendo 12 implementadas

Exemplo de Instrução Aritmética. A1 A2 A3 A4 OP Arquitetura de Von Neumann e Componentes ...Arquitetura do EDVAC. Exemplo de Instrução Aritmética. A1 A2 A3 A4 OP Executa OP conteúdos em posições cujos endereços são A1, A2 e coloque o resultado em A3. A4 especifica o endereço da próxima instrução a ser executada.

Exemplo de Instrução Condicional A1 A2 A3 A4 C Arquitetura de Von Neumann e Componentes ...Arquitetura do EDVAC. Exemplo de Instrução Condicional A1 A2 A3 A4 C Se o conteúdo de A1 for maior que o conteúdo de A2 então execute a instrução da posição A3 se não, da posição A4. 

Instrução de transferência de memória principal par secundaria. Arquitetura de Von Neumann e Componentes ...Arquitetura do EDVAC. Instrução de transferência de memória principal par secundaria. A1 m,n A3 A4 OP Significado: Se m=1 Transfira para o condutor n a sequência de palavras na memória principal nas posições A1, A1+1, A1+2 .......,A3. Se m=2 Transfira do condutor n a sequência de palavras para as posições A1, A1+1, A1+2 .......,A3. na memória principal. A4 endereço da próxima instrução. Este computador ficou operacional em 1951. m – modificador de operação n – endereço do condutor

Principais Inconvenientes Arquitetura de Von Neumann e Componentes ...Arquitetura do EDVAC. Principais Inconvenientes Tempo de acesso muito grande comparado ao tempo de processamento da UCP. O que levou a o chamado “gargalo de von Neumann”.  Possíveis soluções Armazenar resultados na posição inicial de um dos operandos. Destinar um endereço de memória para armazenar o resultado de determinada operação. Convencionar previamente o endereço da próxima instrução.

Modelo de von Neumann: O computador IAS. Arquitetura de Von Neumann e Componentes Modelo de von Neumann: O computador IAS. 1946 (Princeton Institute for Advanced Studies)  Memória principal: Tubo de raios catódicos de acesso randômico.  Instrução: OP A  Blocos básicos UCP Unidade de controle de programa Memória principal de 4096 palavras de 40 bits: grava duas instruções de 20 bits ou dados de 40 bits Unidade de E/S Arquitetura de um endereço

MQ–Registrador Multiplica-dor quociente Arquitetura de Von Neumann e Componentes ....O computador IAS AC–Acumulador na UCP – atua como memória rápida guardando os resultados da ULA MQ–Registrador Multiplica-dor quociente DR-Registrador de dados de 40 bits AR–Registrador de endereço de 12 bits IBR–Registra a instrução não executada imediatamente PC – Registrador de endereço IR–registra a instrução exe-cutada imediatamente. Estrutura do IAS

Binário, ponto fixo e complemento 2 Arquitetura de Von Neumann e Componentes ....O computador IAS Formato dos Dados Binário, ponto fixo e complemento 2 1 39 primeiro bit é o de sinal o ponto está implícito entre 0 e 1  Formato das instruções operação endereço 7 8 19 20 27 28 39 há alterações em relação ao EDVAC Registradores pré-definidos na UCP Armazenamento sequencial do programa.

A=((B+C)*D+E-F)/(G*H) Arquiteturas 4, 3, 2, 1 e 0 A=((B+C)*D+E-F)/(G*H) 4 endereços OP E1 E2 E3 E4 E1 – fonte E2 – fonte E3 – destino E4 – próxima inst.   e1 ADD B C A e2 e2 MUL A D A e3 e3 ADD A E A e4 e4 SUB A F A e5 e5 DIV A G A e6 e6 DIV A H A e7 e7 HALT   O quatro endereço é desnecessário pois os programas eram escritos sequencialmente  

A=((B+C)*D+E-F)/(G*H) Arquiteturas 4, 3, 2, 1 e 0 A=((B+C)*D+E-F)/(G*H) 3 endereços OP E1 E2 E3 E1 – fonte E2 – fonte E3 – destino PC – criado para localizar a próxima instrução Jump – indica salto e1 ADD B C A e1+1 MUL A D A e1+2 ADD A E A e1+3 SUB A F A e1+4 DIV A G A e1+5 DIV A H A e1+6 HALT Reduz o tamanho da instrução mas per-de-se um grau de liberdade

A=((B+C)*D+E-F)/(G*H) Arquiteturas 4, 3, 2, 1 e 0 A=((B+C)*D+E-F)/(G*H) 2 endereços OP E1 E2 E1 – fonte/destino E2 – fonte MOV – movimento de memória e1 MOV A B e1+1 ADD A C e1+2 MUL A D e1+3 ADD A E e1+4 SUB A F e1+5 DIV A G e1+6 DIV A H e1+7 HALT Evita-se a repetição do destino.

A=((B+C)*D+E-F)/(G*H) Arquiteturas 4, 3, 2, 1 e 0 A=((B+C)*D+E-F)/(G*H) 1 endereços OP E1 E1 – memória AC – Acumulador substitui o fonte e o destino LDA–move da memória para o acumulador - LoaD STA–move do acumulador para a memória- STore e1 LDA B e1+1 ADD C e1+2 MUL D e1+3 ADD E e1+4 SUB F e1+5 DIV G e1+6 DIV H e1+7 STA A e1+8 HALT Economia de acesso à memória

A=((B+C)*D+E-F)/(G*H) Arquiteturas 4, 3, 2, 1 e 0 A=((B+C)*D+E-F)/(G*H) 0 endereços OP e1+7 ADD e1+8 MUL e1+9 ADD e1+10 SUB e1+11 DIV e1+12 DIV e1+13 POP A e1+14 HALT E1 – memória e1 PUSH H e1+1 PUSH G e1+2 PUSH F e1+3 PUSH E e1+4 PUSH D e1+5 PUSH C e1+6 PUSH B Pilha Equação escrita em notação polonesa reversa. Equação fica: HGFEDCB+*+-// PUSH – colocar no topo da pilha POP – enviar do topo da pilha para a memória Não há grande vantagem em relação a anterior

Tabela Ascii

O fim....O fim