Prof. Leonardo Augusto Casillo

Documentos relacionados
Organização e Arquitetura de Computadores INTRODUÇÃO

SSC0112 Organização de Computadores Digitais I

Evolução dos computadores

SSC510 Arquitetura de Computadores 1ª AULA

Organização de Computadores Aula 05

INTRODUÇÃO A ARQUITETURA DE COMPUTADORES FELIPE G. TORRES

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

III.2 - Princípios de Arquitetura

Prof. Gustavo Oliveira Cavalcanti

Arquitetura e Organização de Computadores

ção de Computadores I

Organização e Arquitetura de Computadores I

Unidade Central de Processamento UCP (CPU)

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

Solução Lista de Exercícios Processadores

Disciplina: Arquitetura de Computadores

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

Introdução à Computação: Arquitetura von Neumann

Instruções de Máquina

Unidade de Controle. UC - Introdução

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

14/3/2016. Prof. Evandro L. L. Rodrigues

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Arquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani)

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

Estrutura Básica de um Computador

Arquitetura de Computadores. Ciclo de Busca e Execução

Organização de Computadores (revisão) André Tavares da Silva

2. A influência do tamanho da palavra

Unidade Central de Processamento 2. Registradores

2. A influência do tamanho da palavra

Processador. Processador

CONJUNTO DE INSTRUÇÕES

Organização e Arquitetura de Computadores I

Computador Cleópatra

COMPUTADOR 2. Professor Adão de Melo Neto

Parte Operativa x Controle Aula 12. Prof. Jadir Eduardo Souza Lucas Universidade Federal do Espírito Santo Departamento de Informática

Arquitetura de Computadores Conceitos Fundamentais. Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016

Barramento. Prof. Leonardo Barreto Campos 1

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Instruções. Maicon A. Sartin

Arquitetura e Organização de Computadores

LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Conjunto de Instruções e Modelos de Arquiteturas

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Arquitetura e Organização de Computadores

Arquitetura de Computadores. Prof. João Bosco Jr.

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

Notas de Aula Guilherme Sipahi Arquitetura de Computadores. Arquitetura de von Neumann

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

SSC0114 Arquitetura de Computadores

Infraestrutura de Hardware. Funcionamento de um Computador

UCP 8051 (parte 02) Professor Adão de Melo Neto

Introdução à Organização de Computadores. Aula 8

Organização e Arquitetura de Computadores. Leslier S. Corrêa

Microcontroladores. Rafael Silva de Lima

Organização de Computadores 1

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Projeto de Processadores Programáveis

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Arquitetura e Organização de Computadores

ORGANIZAÇÃO DE COMPUTADORES

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade.

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

AGT0001 Algoritmos Aula 01 O Computador

Neander - características

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

Arquitetura e organização de computadores

COMPUTADOR. Adão de Melo Neto

Aula 4 Conjunto de Instruções do Microprocessador 8085 Grupo Aritmético

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

Unidade Central de Processamento (CPU) Processador. Bernardo Gonçalves Introdução ao Computador 2008/01

Organização de Sistemas Computacionais Processadores: Organização da CPU

Organização e Projeto de Computadores

Capítulo 3 Organização Interna de um Computador

SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA

Conjunto de Instruções e Modelos de Arquiteturas

18/10/2010. Unidade de Controle Controle. UC Microprogramada

Transcrição:

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 2 Estrutura de um processador Prof. Leonardo Augusto Casillo

Arquitetura de Von Neumann: Conceito de programa armazenado; Dados e instruções armazenados em uma única memória de leitura e escrita. Endereçamento da memória por posição e não pelo tipo; Execução seqüencial de instruções; Único caminho entre memória e CPU. Arquitetura de Harvard: Variação da arquitetura de Von Neumann. Memórias separadas para dados e instruções. Barramentos separados para instruções e dados. Termo originado dos computadores Mark I a Mark IV 2

3

CPU ULA Unidade de controle Bus de Endereços Bus de Dados Bus de Controle MEMÓRIA DE DADOS E DE PROGRAMA UNIDADES DE E/S 4

Bus de Endereços da MP Bus de Endereços da MD Bus de Dados da MP C P U Bus de Dados da MD MEMÓRIA DE Bus de Controle DADOS MEMÓRIA DE PROGRAMA UNIDADES DE E/S 5

Processadores: CPU, controladores e co-processadores Possuem conjunto de instruções operando sobre instruções e dados organizados em palavras Memórias 2 subsistemas: externa e interna Custo relacionado à capacidade de armazenamento e velocidade de operação Sistema de E/S Conversores de representação física de dados Lentos Sistema de interconexão Comunicação entre componentes através de barramentos e slots sob seu controle Disputa pelo uso de recursos compartilhados.

Registradores mais comuns dentro de um processador: Acumulador (AC) Contador de programa (PC) Apontador de pilha (SP) Registrador de instrução (IR) Buffer de endereço de memória (MAR) Buffer de dados da memória (MBR) Registradores de uso geral

CPU Unidade operativa (ULA) Unidade de Controle Memória E/S Principal Registradores

Processador tipo LOAD-STORE com 40 bits de palavra. Memória consiste em mil posições (palavras) constituídas de 40 bits. Dados e instruções ambos armazenados na memória. Cada instrução possui um código binário de operação (CodOp). Cada número é representado por um bit de sinal e um valor de 39 bits. Uma palavra pode conter duas instruções de 20 bits, sendo 8 bits para o CodOp e endereço de 12 bits, que designa uma palavra de memória (0 a 999).

Registradores presentes no IAS: MAR especifica o endereço na memória da palavra a ser lida ou escrita do MBR; MBR contém uma palavra a ser armazenada na memória ou uma palavra recebida da memória; IR contém o código da operação de 8 bits utilizado; IBR contém a instrução (completa) do lado direito de uma palavra da memória; PC contém o endereço do próximo par de instruções a ser buscado na memória; AC armazena temporariamente o operando da ULA e os 40 bits mais significativos de uma multiplicação; MQ quociente de multiplicação: armazena os 40 bits menos significativos de uma multiplicação.

Início Busca da próxima instrução Busca: Busca da instrução Atualiza PC Decodificação Execução: Busca operandos (se necessário) Executa Armazena resultado (se necessário) Execução da instrução Parada

PC = 12 bits MAR = 12 bits MBR = 40 bits IR = 8 bits IBR = 20 bits AC = 40 bits MQ = 40 bits 1ª busca: 1º teste - Não 2º teste - Sim

IAS contém 21 instruções, divididas entre os grupos: Transferência de dados: entre memória e registradores da ULA ou entre dois registradores da ULA; Desvio incondicional: altera a sequência de instruções da memória; Desvio condicional: permite dois pontos de decisão; Aritmética: operações executadas pela ULA; Alteração de endereço: calcula endereços utilizando a ULA para inseri-los em instruções armazenadas na memória.

Cada processador possui seu próprio conjunto de instruções, embora exista um subconjunto básico utilizado por todos os processadores de modo geral; Instruções com mesma função podem ter nomes variados para cada processador (ex: multiplicação pode ser MUL ou MPY); Os campos das instruções também variam de acordo com cada processador (ex: um campo pode representar um endereço ou um operando); Existem instruções que referenciam 0, 1, 2 ou 3 registradores; Variáveis são, na verdade, ponteiros de endereços de memória.

Para converter um programa de alto nível para baixo nível, deve-se adotar os seguintes passos: Escrever o programa de modo mais detalhado possível na forma de algoritmo (pseudo-código / portugol / português estruturado / descrição narrativa / etc) Opcionalmente, é válido escrever o algoritmo na forma de fluxograma, sendo cada etapa do fluxograma representando uma ação do processador ou uma transferência entre seus registradores (nível RTL) ou transferência processador - memória É necessário conhecer a arquitetura (parte operativa) do processador que executará o programa, em particular a quantidade de bits e palavras, os registradores do processador e as operações da ULA

C <= A + B; Uma simples instrução em alto nível pode ser convertida em várias instruções em baixo nível. Para realizar esta conversão, algumas perguntas devem ser respondidas: Quem são e de onde vêm A e B? Onde armazenar C? Quais as entrada da ULA? O processador é do tipo LOAD-STORE (memória processador) ou MÁQUINA COM REGISTRADORES (registrador-registrador ou registrador memória)?

Detalhamento da instrução, considerando um computador LOAD-STORE e uma das entradas da ULA fixa (acumulador): Ler valor de A da memória; Transferir o valor de A para o acumulador; Ler valor de B da memória; Transferir o valor de B para o segundo registrador de entrada da ULA; Realizar operação de SOMA (ADD) na ULA; Salvar o valor de C (enviar para a memória) ***Algumas destas instruções podem ser agrupadas em instruções únicas, dependendo do conjunto de instruções do processador. (EX: ler o valor de A da memória e transferir para o acumulador realizadas em uma única instrução)

Utilizando instruções do IAS e definindo posições de memória para as variáveis: A = endereço 500 na memória B = endereço 501 na memória C = endereço 502 na memória LOAD M(X) - Código 01H ADD M(X) - Código 05H STOR M(X) - Código 21H

LOAD M(500): 00000001000111110100 0000 0001 0001 1111 0100 (011F4) ADD M(501): 00000101000111110101 0000 0101 0001 1111 0101 (051F5) STOR M(502): 00100001000111110110 0010 0001 0001 1111 0110 (211F6)

Endereço 000H 001H 002H... 1F4H 1F5H 1F6H Conteúdo 011F4051F5H 211F600000H 0000000000H 0000000005H 0000000003H 0000000000H (0000000008H) Memória M(1F6) =M(1F4) + M(1F5) C = 5 + 3

Considerando um computador com 16 bits de palavra: 4 primeiros bits = CodOp 12 bits restantes = endereço Ex: 1940H 1H = 0001 CodOp 940H = 100101000000 endereço da memória Registradores utilizados no exemplo: PC IR AC

Instruções utilizadas no exemplo: 0001 = Carrega AC a partir do end. de memória Mnemônico LOAD; Execução AC <- M[X] 0010 = armazena o valor de AC no end. de memória Mnemônico STORE; Execução M[X] <- AC 0101 = soma AC com valor do end. de memória Mnemônico ADD; Execução AC <- AC + M[X]

End. Conteúdo 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1...... Registradores PC = 300 IR = 1940 AC = 940 0 0 0 3 941 0 0 0 2 Passo 1: Busca da instrução na memória: Simplificando passos: Ocultando MAR e MBR PC = 300 IR <- 1940 (M[300])

End. Conteúdo 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1...... Registradores PC = 301 IR = 1940 AC = 940 0 0 0 3 941 0 0 0 2 Passo 2: Decodificação da instrução Simplificando: supondo cada instrução com 4 bytes 1º byte = CodOp; 2º a 4º bytes = endereço IR =1940H: codop = 0001; endereço = 940 Instrução = LOAD (AC <- M[X]) *** PC = PC + 1

End. Conteúdo 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1...... Registradores PC = 301 IR = 1940 AC = 0003 940 0 0 0 3 941 0 0 0 2 Passo 3: Execução da instrução LOAD AC <- M[940] Volta ao ciclo de Busca

End. Conteúdo 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1...... Registradores PC = 301 IR = 5941 AC = 0003 940 0 0 0 3 941 0 0 0 2 Passo 4: Busca PC = 301 IR <- 5941 (M[301])

End. Conteúdo 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1...... Registradores PC = 302 IR = 5941 AC = 0003 940 0 0 0 3 941 0 0 0 2 Passo 5: Decodificação IR =5941H: CodOp = 0101; endereço = 941 Instrução = ADD (AC <- AC + M[X]) PC = PC + 1

End. Conteúdo 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1...... Registradores PC = 302 IR = 5941 AC = 0005 940 0 0 0 3 941 0 0 0 2 Passo 6: Execução AC <- AC + M[X] AC = 0003 + 0002 (M[941]) AC = 0005

End. Conteúdo 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1...... Registradores PC = 302 IR = 2941 AC = 0005 940 0 0 0 3 941 0 0 0 2 Passo 7: Busca PC = 302 IR = 2941 (M[302])

End. Conteúdo 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1...... Registradores PC = 303 IR = 2941 AC = 0005 940 0 0 0 3 941 0 0 0 2 Passo 8: Decodificação IR =2941: CodOp = 0010; endereço = 941 Instrução = STORE (M[X] <- AC) PC = PC + 1

End. Conteúdo 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1...... Registradores PC = 303 IR = 2941 AC = 0005 940 0 0 0 3 941 0 0 0 5 Passo 9: Execução M[941] <- AC (0005) Segue funcionamento...

Estudar as instruções do IAS e demonstrar a utilização de cada uma delas com exemplos (trechos de código) exceto SUB M(X), LOAD M(X), LOAD - M(X), JUMP+M(X,20;39) e STOR M(X, 28:39) Fazer a execução detalhada de um programa que realize A x A utilizando o IAS incluir os procedimentos envolvendo MAR e MBR; Elabore um programa em assembly utilizando as instruções do IAS que realize a contagem crescente de um valor de 0 a 10.

Considere um microprocessador hipotético de 32 bits, cujas instruções de 32 bits são compostas de dois campos: o primeiro byte contém o código da operação e os demais contêm um operando imediato ou um endereço de operando. A. Qual a capacidade máxima de memória endereçável diretamente (em bytes)? B. Quantos bits são necessários para o contador de programa (PC) e para o registrador de instrução (IR)? C. Qual o procedimento necessário para busca de dados e instruções caso a memória não contenha 32 bits de palavra? Como isto poderia ser realizado?