Computador Cleópatra



Documentos relacionados
Computador Cleópatra

Computador Cleópatra

Componentes do Computador e. aula 3. Profa. Débora Matos

Circuitos Combinacionais

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos

Estrutura de um Computador

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Introdução à Engenharia de Computação

Unidade: Unidade Lógica e Aritmética e Registradores. Unidade I:

Organização de Computadores 1

2. A influência do tamanho da palavra

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

Aula 14: Instruções e Seus Tipos

Neander - características

Sistemas de Numeração (Aula Extra)

Introdução à Engenharia de Computação

Informática I. Aula 5. Aula 5-13/05/2006 1

Sistemas Operacionais Aula 2

Arquitetura do conjunto de instruções (ISA); características de instruções de máquina; tipos de operandos

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

Sistemas Microcontrolados

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Arquitectura de Computadores RECUPERAÇÃO DO 1º TESTE

Arquitetura de Computadores - Revisão -

ARQUITETURA DE COMPUTADORES

Introdução. Hardware (Parte I) Universidade Federal de Campina Grande Departamento de Sistemas e Computação. joseana@computacao.ufcg.edu.

Arquitetura de Computadores I

Introdução. A Informação e sua Representação (Parte II) Universidade Federal de Campina Grande. Unidade Acadêmica de Sistemas e Computação

LISTA DE EXERCÍCIOS - Nro. 01

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES

Arquitetura de processadores: RISC e CISC

Introdução à Arquitetura de Computadores. Prof.ª Ms. Elaine Cecília Gatto

Objetivos Gerais. Arquitetura de Computadores. Arquiteturas estudadas. O Computador Neander

CAPÍTULO 6 ARITMÉTICA DIGITAL

BARRAMENTO DO SISTEMA

Capítulo 1 Introdução

Sistemas Computacionais II Professor Frederico Sauer

Programação Básica usando o Computador Visível. Jorge Fernandes Maio de 2004

Arquitetura de Computadores Moderna

MATA49 Programação de Software Básico

Paralelismo a Nível de Instrução

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias

EEC2104 Microprocessadores

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Marcos da Arquitetura de Computadores (1)

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

Representando Instruções no Computador

Introdução à Computação: Sistemas de Computação

Introdução à Arquitetura de Computadores

Capítulo 7 Nível da Linguagem Assembly

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Linguagem de Montagem 2. Operações e Operandos

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

SSC510 Arquitetura de Computadores. 2ª aula

Edeyson Andrade Gomes

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

MODOS DE ENDEREÇAMENTO

Arquitetura de Computadores. Ivan Saraiva Silva

A Arquitetura: conjunto de instruções

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Organização e Arquitetura de Computadores I

Software Básico. Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly. Prof. MSc. Hugo Vieira L. Souza

Programa de Unidade Curricular

Introdução à Arquitetura de Computadores

Organização de Computadores 1

Hardware Fundamental

Capítulo 3 Processadores de Propósito Geral: Software

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

ULA Sinais de Controle enviados pela UC

Modos de entrada/saída

Circuitos Seqüenciais

Capítulo 3 Aula 8. Representação Numérica. Aritmética Computacional Representação Numérica

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Arquitetura e Organização de Computadores

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

Sistemas Operacionais

Linguagem de Montagem

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes

Organização de Computadores Como a informação é processada?

Circuitos Digitais Cap. 5

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Microprocessadores. Arquitectura Geral de Microprocessador

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Organização e Arquitetura de Computadores I

Introdução aos Computadores Introdução à Ciência de Computadores Outubro / 16

Sistemas Operacionais. Revisando alguns Conceitos de Hardware

Organização e Arquitetura de Computadores II

Sistemas Operacionais. Prof. André Y. Kusumoto

Dispositivos de Entrada e Saída

Entradas/Saídas. Programação por espera activa Programação por interrupções

ARQUITETURA DE COMPUTADORES. EMENTA Prof. Benito Piropo Da-Rin

Transcrição:

ORGNIZÇÃO E RQUITETUR DE COMPUTDORES Computador Cleópatra Introdução a rquitetura e Programação lexandre mory Edson Moreno

2 / 9 Na ula nterior bstração em Software Programa em linguagem C Programa em linguagem ssembly * Computer Organization and Design: The Hardware and Software Interface Programa em linguagem de máquina em binário

3 / 9 Na ula de Hoje Introdução a um sistema microprocessado O processo de transformação de código alto nível (Java, C) em linguagem de máquina binária Linguagem ssembly Foco da aula de hoje controle datapath Mem IO IO IO interconexão

4 / 9 rquiteturas de Computadores

5 / 9 rquitetura Von Neumann Memória única de dados e instruções

6 / 9 rquitetura Harvard Memória de dados e instruções são distintas

7 / 9 rquitetura Cleópatra - Von Neumann Cleópatra é um processador de 8 bits introduzir os conceitos gerais de organização de computadores barramento de endereços de apenas 8 bits mapa de memória de apenas 256 (2 8 ) posições disponíveis para armazenar programas e dados Objetivo é facilitar a aprendizagem Os conceitos apresentados na Cleo podem ser encontrados em processadores comerciais 8051 (Intel) 68HC11 (Motorola) pesar de ter somente 14 instruções, a Cleo é uma arquitetura CISC CISC: complex instrustion set RISC: reduced instruction set

8 / 9 rquitetura Cleópatra: Principais Registradores Registrador Primário de Dados: 1 Registrador cumulador C Registradores de Controle: 1 Contador de Programa PC DTMEM escreve na memória CE RW DDRESS lê da memória 0 mux 1 sel MR MDR IR BUS_B BUS_ CE RW PC C RS w Codificação de escrita UL u lnz lcv r Codificação de leitura NZCV

9 / 9 Qualificadores Existem mais qualificadores possíveis Cleo usa apenas 4: Resultado da operação é zero (Z) Qualificador Z recebe 1 quando todos os bits do resultado de uma operação forem 0, senão recebe 0 Resultado da operação é um número negativo (N) Qualificador N recebe 1 quando o bit mais significativo do resultado de uma operação for 1, (representação de um número negativo em complemento de 2) senão recebe 0 Não foi possível representar o resultado da operação com números sem sinal (carry, ou apenas C) Qualificador C recebe 1 quando o último estágio do somador gerar um vai um Não foi possível representar o resultado da operação com números com sinal (overflow, ou apenas Ov, ou também V) Qualificador V recebe 1 quando a soma de dois positivos der negativa, a soma de dois negativos der positiva, um positivo subtraído de um negativo der negativo, um negativo subtraído de um positivo der positivo, senão recebe 0 Conforme os tipos de dados que estamos trabalhando em alto nível, a informação dos qualificadores pode ser utilizada pelos compiladores para gerar linguagem de montagem adequada Qualificadores Z e C são usados em operações aritméticas de números sem sinal Qualificadores Z e N são usados em operações lógicas Qualificadores Z, N e V são usados em operações aritméticas de números com sinal

10 / 9 Instruções Mnemônico NOT ST oper LD oper DD oper OR oper ND oper JMP oper JC oper JV oper JN oper JZ oper JSR oper RTS HLT Operação Complementa (inverte) todos os bits de C rmazena C na memória dada por oper Carrega C com conteúdos de memória da posição dada por oper diciona C ao conteúdo da memória dada por oper Realiza OU lógico do C com conteúdo da memória dada por oper Realiza E lógico do C com conteúdo da memória dada por oper PC recebe dado especificado por oper (desvio incondicional) Se C=1, então PC recebe valor dado por oper (desvio condicional) Se V=1, então PC recebe valor dado por oper (desvio condicional) Se N=1 então PC recebe valor dado por oper (desvio condicional) Se Z=1, então PC recebe valor dado por oper (desvio condicional) RS recebe conteúdo de PC e PC recebe dado de oper (subrotina) PC recebe conteúdos de RS (retorno de subrotina) Suspende processo de busca e execução de instruções

11 / 9 Modo de Endereçamento Imediato Operando é o próprio dado Usado para representar constantes Direto Ex: Número 45 do trecho de código C Operando é endereço do dado Usado para representar variáveis Ex Variável entrada do trecho de código C int valor; int *p = &valor; int entrada = 8; *p = entrada + 45; Indireto Operando é endereço do endereço do dado Usado para representar ponteiros Ex Ponteiro *p (que aponta para valor) do trecho de código C

12 / 9 Meu Primeiro Prog ssembly Linguagem alto nível (eg C, JV) C = +B ssembly da Cleo LD DD B ST C

13 / 9 Meu Primeiro Prog ssembly Linguagem alto nível (eg C, JV) C = +B ssembly da Cleo LD DD B ST C Carrega a variável no reg interno

14 / 9 Meu Primeiro Prog ssembly Linguagem alto nível (eg C, JV) C = +B ssembly da Cleo LD DD B ST C Soma o conteúdo do reg interno () com a variável B o resultado é salvo no reg interno Utiliza Modo Direto

15 / 9 Meu Primeiro Prog ssembly Linguagem alto nível (eg C, JV) C = +B ssembly da Cleo LD DD B ST C Carrega conteúdo do reg interno (+B) na variável C Veremos mais exemplos até o fim deste módulo

16 / 9 Formatos de Instrução da Cleópatra Intruções sem operando: NOT, RST HLT INS I I I I - - - - Instruções com 1 operando: INS ME I I I I M M - - D D D D D D D D INS: LD, DD, ST, etc ME: imediato, direto, indireto

17 / 9 Formatos de Instrução: Observações Na codificação de instruções, uma posição marcada com indica que o valor do bit em questão é irrelevante, podendo ser 0 ou 1; operando - operando que depende do modo de endereçamento para ter seu valor e semântica determinados; Instruções lógicas (NOT, ND e OR) e LD - afetam os códigos de condição N e Z; Instrução aritmética (DD) - feta N, Z, C e V; Instruções restantes (ST, JMP, JN, JZ, JC, JV, JSR, RTS HLT) - não alteram códigos de condição; Instruções sem operando (NOT, RTS e HLT) - estas instruções operam sobre dados implícitos ou não têm operandos explícitos; Instruções de desvio (JMP, JN, JZ, JC, JV, JSR) e ST - nestas, os modos de endereçamento direto e imediato são idênticos (possuem o mesmo efeito) Para uma definição do que é modo de endereçamento, ver Seção seguinte

18 / 9 Código do Modo de Endereçamento

19 / 9 Código das Instruções

20 / 9 Meu Primeiro Prog ssembly Linguagem alto nível (eg C, JV) C[0] = +3 ssembly da Cleo LD DD #3 ST C,I Linguagem de máquina LD DIR I I I I M M - - D D D D D D D D 0 19 20 21 30 C C O D E 5 30 0 D T

21 / 9 Meu Primeiro Prog ssembly Linguagem alto nível (eg C, JV) C[0] = +3 ssembly da Cleo LD DD #3 ST C,I Linguagem de máquina LD DIR 0 1 0 0 M M - - D D D D D D D D 0 19 20 21 30 C C O D E 5 30 0 D T

22 / 9 Meu Primeiro Prog ssembly Linguagem alto nível (eg C, JV) C[0] = +3 ssembly da Cleo LD DD #3 ST C,I Linguagem de máquina LD DIR 0 1 0 0 0 1 - - D D D D D D D D 0 19 20 21 30 C C O D E 5 30 0 D T

23 / 9 Meu Primeiro Prog ssembly Linguagem alto nível (eg C, JV) C[0] = +3 ssembly da Cleo LD DD #3 ST C,I Linguagem de máquina LD DIR 0 1 0 0 0 1 - - 0 0 0 1 0 1 0 0 0 19 20 21 30 C C O D E 5 30 0 D T

24 / 9 Meu Primeiro Prog ssembly Linguagem alto nível (eg C, JV) C[0] = +3 ssembly da Cleo LD DD #3 ST C,I Linguagem de máquina LD DIR 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 DD IM 0 1 0 1 0 0 0 0 0 19 20 21 30 C C O D E 5 30 0 D T 0 0 0 0 0 0 1 1 ST IN 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1

25 / 9 Da rquitetura Cleópatra para a Organização Da arquitetura Cleópatra a visão do programador em linguagem de montagem Para a Organização Cleópatra visão do projetista de hardware Somente uma forma de implementar a arquitetura

26 / 9 Resumo presentação dos principais macro blocos de um processador Parte de controle Parte operativa (de dados) Entrada e saída Memória O restante desta disciplina detalha cada uma destas partes!!!!