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



Documentos relacionados
Arquitetura de Computadores. Tipos de Instruções

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

CAPÍTULO 3 NÍVEL ISA. 3.1 Introdução ao Nível de Arquitetura do Conjunto de Instruções

Primeiro nível desenvolvido, historicamente Atualmente existente entre o nível da microarquitetura e do sistema operacional

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly

Evolução dos Processadores

Introdução à Arquitetura e Linguagem Assembly de Processadores IA-32

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Estrutura de um Computador

Sistemas Operacionais

Operadores lógicos (bit a bit)

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

Arquitetura de Computadores

Arquitetura de Computadores - Revisão -

Linguagem de Montagem

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:

Dispositivos de Entrada e Saída

Organização de Computadores 1

Organização de Computadores 1

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

O Nível ISA. Modelo de programação Arquitecturas CISC e RISC Introdução ao IA-32 da Intel

Sistemas Operacionais

Entradas/Saídas. Programação por interrupções Conceitos gerais Programação da porta série Transmissão

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

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

ENTRADA E SAÍDA DE DADOS

Programação ao nível da máquina. Operações lógicas e aritméticas

SIS17 - Arquitetura de Computadores

Nível da Arquitetura do Conjunto das Instruções

2 Formalidades referentes ao trabalho

Nível da Arquitetura do Conjunto das Instruções

ARQUITETURA DE COMPUTADORES

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Aula 14: Instruções e Seus Tipos

Arquitetura de Von Neumann. Computador ISA

Antes de deixarmos o hardware (1) Nível da Arquitetura do Conjunto das Instruções

A linguagem ASSEMBLY

Visão Geral de Sistemas Operacionais

28/9/2010. Unidade de Controle Funcionamento e Implementação

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco

Edeyson Andrade Gomes

Sistemas Operacionais. Prof. André Y. Kusumoto

Nível do Conjunto de Instruções Prof. Edson Pedro Ferlin

Sistemas de Computação

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Introdução. ULA: Faz os Cálculos UC: Como isso tudo ocorre?

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

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

Organização de Computadores Hardware

LABORATÓRIO DE LINGUAGEM DE MONTAGEM INTERRUPÇÕES DO DOS E DA BIOS

Conjunto de Instruções e Arquitectura p.1

28/3/2011. Família Intel 80x86. Arquitetura dos Processadores Intel 80x86

Sistemas de Computação para Controle e Automação CIC132. Assembly. Assembly. Notas. Décima quarta aula: Introdução a programação Assembly

Guilherme Pina Cardim. Relatório de Sistemas Operacionais I

CPU. CPU Unidade Central de Processamento. Função: leitura, escrita e processamento de dados

Organização de Computadores 2005/2006 Processadores Intel

BARRAMENTO DO SISTEMA

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

3. O NIVEL DA LINGUAGEM DE MONTAGEM

SIS17-Arquitetura de Computadores

ArchC. Wesley Nunes Gonçalves

Nível da Arquitetura do Conjunto de Instruções. Ronaldo de Freitas Zampolo

Sistema Operacional Ex: Complexo Computador multiusuário com vários terminais Tem que administrar todos os pedidos de usuários e assegurar que eles

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

Arquitetura e Organização de Computadores

Estruturas do Sistema de Computação

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

Organização e Arquitetura de Computadores

Introdução a Engenharia Reversa

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

A arquitectura IA32. A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador.

MODELO DE S.O. DEFINIÇÕES

Introdução à Arquitetura de Computadores

Arquitetura de Computadores - Princípio de Funcionamento da CPU. Por Helcio Wagner da Silva

ARQUITETURA DE COMPUTADORES

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

PCS-2302 / PCS-2024 Lab. de Fundamentos de Eng. de Computação

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

ENTRADA E SAÍDA (I/O)

1. SINTAXE DA LINGUAGEM ASSEMBLY

ARQUITETURA DE COMPUTADORES

ULA Sinais de Controle enviados pela UC

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Sistemas Operacionais

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

Organização de Computadores 2005/2006 Processadores Intel

Universidade Federal de Santa Maria Departamento de Eletrônica e Computação Disciplina de Fundamentos de Comuputadores Professor Raul Ceretta Nunes

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

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

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

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

Software Básico (INF1018)

E/S PROGRAMADA E/S PROGRAMADA E/S USANDO INTERRUPÇÃO

Linguagem de Montagem 2. Operações e Operandos

x86 Assembly Mini-Course

Transcrição:

Arquitetura de Computadores Prof. João Bosco Jr.

Unidade II Aula 1 Nível ISA

Posicionado entre a microarquitetura e o SO Define a arquitetura (Conjunto de Instruções) É a interface entre o Software e o HW É a linguagem intermediária comum

Compatibilidade Regra geral Novos projetos devem ser compatíveis com os antigos. Significa Implementar o mesmo conjunto de instruções do sistema antigo A novidade se dará através de novas instruções e registradores. Caso Intel Itanium (2001) Consequências Família de processadores Ex.: x86 386,486,Pentium,Pentium II, Pentium III, Pentium IV, etc

Familia x86 386 486 (Pipeline RISC, cache L1 integrada) Pentium (Super Escalar, MMX, PAE) Pentium II/III ( Cache L3, SSE) Pentium IV (Hyper-Threading, SSE2) SSE (Streaming SIMD Extensions)

Características de um bom nível ISA Deve ser fácil de implementar com eficiência Diz respeito ao Hardware Custo X Tecnologia (atuais e futuras) Fácil de Gerar bom código Diz respeito ao software

Visão Geral O que é? Como a máquina se apresenta ao programador Código gerado pelo compilador Em alguns casos o compilador tem que se preocupar em como as instruções são executadas, para poder tirar proveito dos recursos do hardware. A documentação é fornecida pelo fabricante EX.: Intel 64 and IA-32 Architetures Software Developer Manual Modos de Execução Kernel (todas as instruções), usuário (restrito)

Registradores Visíveis no nível ISA Registradores de controle Alguns são visíveis ou R/W somente no modo núcleo Registradores de uso Geral Armazenamento Temporário Registradores Especiais Controle da Pilha Registradores de Status Invisíveis no nível ISA Endereçamento

Registradores (cont...) Program status word (PSW) Cada bit representa um status N A operação deu resultado negativo Z A operação deu resultado zero V Overflow C Carry Out (Vai um) P Resultado teve paridade par Quando o numero de bit 1 for par P=1

Registradores (cont...) Intel PSW=EFLAGS OF Overflow Flag ZF A operação deu resultado zero SF Signal Flag CF Carry Out Flag (Vai um) PF Parity Flag ax = 0x200; ax = cx * 0x200; If (ax == 0x1000) ax = 0x3000; else ax = 0x2000; mov ax, 0x200 mul cx cmp ax, 0x1000 je _AX_3000 jmp _AX_2000 _AX_3000: mov ax, 0x3000 jmp _Sai REF: Developer Manual pg 3-22 _AX_2000: mov ax, 0x2000 _Sai:

Registradores (cont...) Ciclo de Busca da Instrução

Registradores

Instruções Estudo de Caso Pentium 4 Compatibilidade 80XX (8086, 8088, 80386) Modos Real (8088) Modo 8086 Virtual Modo protegido Modo 0 Modo núcleo (usado pelo SO) Modo 3 Usados pelos programas Modos 1 e 2 raramente são usados Registradores Uso Geral (EAX (AX (AH,AL), EBX, ECX, EDX) Especiais: ESI, EDI Tratamento de cadeias por hardware EBP, ESP Apontam para base e topo da pilha Flags (EFLAGS), Contador de Programa (EIP) Fosseis : CS, SS, DS, FS,ES,GS

Instruções

Nível ISA Tipos de dados Representação de dados usando bits Tipos numéricos Inteiros Com Sinal Sem Sinal Ponto Flutuante IEEE 754 Tipos Não Numéricos Booleanos (Teoricamente precisa de bit) 0 = Falso, X = verdadeiro Caracteres ASC II, Unicode Cadeias de Caractere

Tipos de dados

Nível ISA Formatos de Instrução OPCODE (código da operação) Informações adicionais Operando, endereço do operando, etc

Nível ISA Formatos de Instrução Expansão de OPCODES n+k : k bits p/ opcodes e n bits p/ endereço Consequencia: 2^k opcodes x 2^n endereços A ideia é variar a quantidade de bits p/ opcode Ex (16 bits) Instruções começando: 0x0(0000) a 0xE(1110): opcode de 4 bits 0xF0(11110000) a 0xFD(11111101): opcode de 8 bits 0xFE0 a 0xFFE: opcode de 12 bits 0xFFF a 0xFFFF: opcode de 16 bits

Formatos de Instrução Expansão de OPCODES

Nível ISA Modos de Endereçamento Especifica onde estão os operandos Imediato O operando já é parte da instrução Ex: mov EAX,#32 Direto Na instrução é informado o endereço do operando na memória Ex: mov EAX, $0x93 Registrador Na instrução é informado o registrador que contém o operando

Nível ISA Modos de Endereçamento Indireto de Registrador O registrador informado na instrução contém o endereço do operando, ou seja o registrador tem um ponteiro. Indexado Neste modo a instrução, para ter acesso a um operando, deve conter um endereço base da memória e um deslocamento em relação ao endereço base.

Nível ISA Tipos de Instrução Movimentação (Cópia) de dados Diádicas Dois operandos produz um resultado Monoádicas Apenas um operando produz o resultado Comparações e desvios condicionais Alteram a sequencias de instruções a ser executada Chamadas de procedimento Controle de laço Entrada e Saída

Nível ISA - Tipos de Instrução Movimentação de Dados Movimentações Possíveis Registrador Registrador Memória Registrador Registrador Memória Memória Memória Arquitetura RISC LOAD, STORE Algumas instruções pode indicar a quantidade de dados a ser movido (bits até palavras)

Nível ISA - Tipos de Instrução Comparações e Desvios (x86) CMP Comparação CMP EAX,EBX JE Pula se igual (PSW (EFLAGS), ZF=0) JE Label JNE Pula se diferente (PSW(EFLAGS),ZF=1) JNE Label JL Pula se menor (PSW(EFLAGS),SF=0) JL Label JG Pula se maior (PSW(EFLAGS),SF=0) JG Label

- Tipos de Instrução Comparações e Desvios (x86) Desvia para um label específico Não salva o PC maior: mov ecx,f_maior jmp imprime section.data f_maior db 'maior' f_menor db 'menor' f_igual db 'igual' f_buf_len: equ 5 sys_write: equ 4 sys_close: equ 6 section.text global _start _start: mov eax,100 mov ebx,100 cmp eax,ebx jg maior jl menor je igual menor: mov ecx,f_menor jmp imprime igual: mov ecx,f_igual jmp imprime imprime: mov eax, sys_write mov ebx, 1 mov edx, f_buf_len int 80h mov eax, 1 xor ebx, ebx int 80h

Nível ISA - Tipos de Instrução Procedimento/Função (CALL) Desvia para um label específico salva o PC Instrução de retorno RET section.data f_maior db 'maior' f_menor db 'menor' f_igual db 'igual' f_buf_len: equ 5 sys_write: equ 4 sys_close: equ 6 section.text global _start _start: mov eax,100 mov ebx,100 cmp eax,ebx jg maior jl menor je igual maior: mov ecx,f_maior call imprime jmp fim menor: mov ecx,f_menor call imprime jmp fim igual: mov ecx,f_igual call imprime jmp fim fim: mov eax, 1 xor ebx, ebx int 80h imprime: mov eax, sys_write mov ebx, 1 mov edx, f_buf_len int 80h ret

- Tipos de Instrução Entrada e Saída Controlador de Dispositivo Faz a interface entre o dispositivo e o barramento E/S programada com espera ocupada 1: Monitora o estado (registrador interno: Bit READY) 2: Envia o dado (uma palavra ou byte) 3: Espera o resultado (registrador interno: Bit READY) Usa CPU mesmo quando não está transferindo E/S por interrupção Para cada byte ou palavra 1: Verifica o estado (registrador interno: Bit READY) 2: Liga a interrupção (registrador interno: Bit INT) Se não estiver pronto 3: Aguarda interrupção (Barramento de controle) 4: Le ou envia o dado

- Tipos de Instrução Entrada e Saída E/S por DMA Informações são passadas para o controlador DMA o dispositivo, endereço de memória destino/origem Quantidade de dados (contagem) Tipo de operação (leitura ou escrita) Decrementa a contagem a cada transferência Interrompe a CPU quando chagar a zero

Fluxo de Controle Desvios(JMP,GOTO) Procedimentos(CALL) Co-rotinas Exceção Interrupções Já vimos! PC = f(t) Fluxo normal de execução PC = f(t) Fluxo desvio de Fluxo

Fluxo controle Co-rotinas Procedimento Que chama Chamado Rotinas Executam alternadamente

Fluxo de Controle Exceções e Interrupção O Fluxo é desviado automaticamente para uma posição de memória onde estará o tratador. Exceções São causadas pelo programa (Software) Divisão por zero Falha de proteção Instrução ilegal Interrupções São causadas pelo hardware

Projeto (5 + 5 pontos) Projetar uma arquitetura (5,0): A arquitetura deve ter no máximo 15 instruções Instruções (Mnemônico, OPCODE, OPERANDOS) Registradores e Memória Traduzir um programa de alto nível Extra: Montador (Gerador do código HEX) 1,0 Emulador da arquitetura usando o HEX de preferência 4,0

Projeto (5 + 5 pontos) Exemplo Op-code Mnemon ico Função Exemplo 001 LOAD Carrega o valor do operando no acumulador 010 STORE Armazena o valor do acumulador no endereço especificado LOAD 10 STORE 8 011 ADD Adiciona o valor especificado ao acumulador 100 SUB subtrai o valor do operando do acumulador 101 EQUAL se o valor do operando é igual a valor do acumulador pula a próxima instrução 110 JUMP Pula para uma instrução especificada setando o PC para o valor especificado pelo operando. ADD #5 SUB #1 EQUAL #20 JUMP 6 111 HALT Para a Execução HALT