Arquitetura dos Microprocessadores 8086 e 8088 Sistemas Embarcados.

Slides:



Advertisements
Apresentações semelhantes
Microcontroladores Uma visão geral.
Advertisements

Mapeamento de Entrada / Saída em Sistemas Digitais
Sistemas Operacionais
Capitulo 6: Entrada e Saída
Arquitetura de Computadores
O Sistema de Computação
HARDWARE.
Arquitetura e organização de computadores
Execução de Programas Partes de um programa: ‣ Dados
Entrada e Saída Introdução.
Técnicas para operações E/S
Arquitetura de Computadores
SOFTWARE BÁSICO.
Software Básico Silvio Fernandes
ARQUITETURAS RISC E CISC
Unidade de Controle do 8086/8088
Chip-Select e Controle de Interrupção Sistemas Embarcados.
Arquitetura dos Microprocessadores 8086 e 8088
Unidades de Execução e de Controle Sistemas Digitais.
Arquitetura dos Microprocessadores 8086 e 8088
William Stallings Arquitetura e Organização de Computadores 8a Edição
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
Sistemas Operacionais
Problemas com Entrada e Saída
Conhecendo Hardware Parte 1
Introdução à Informática
O MICROPROCESSADOR INTEL 8080
Professor: Carlos Roberto da Silva Filho, M. Eng.
REPRESENTAÇÃO DE INSTRUÇÕES
Organização da Memória Principal
Arquitectura de Computadores II
2- Entendendo o que é Arquitetura e Organização
Sistemas Operacionais I
Introdução à Programação
Prof. Felipe Ferreira de Oliveira
EEL Microprocessadores
Linguagem de Montagem.
Barramentos de Expansão ISA, PCI, AGP e PCI Express
Unidade Central de Processamento UCP
ORGANIZAÇÃO DE COMPUTADORES
Sistemas Operacionais I
Prática de Programação Assembly 8086
Organização e Arquitetura de Computadores
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Processamento de dados na UCP e memória UCP
Prof. Remy Eskinazi - Microcontroladores
Sistemas Operacionais
Organização e Arquitetura de Computadores
Unidade Central De Processamento: Processador
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
Arquitetura de Computadores
IMM Instalação e Manutenção de Microcomputadores
8088 Assembly Software Básico Mitsuo Takaki.
8 - 1 Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM A pilha e subrotinas.
Parte 3 Seção de Dados e Unidade de Controle
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.
Introdução à Computação Componentes Básicos dos Computadores
O que devem fazer os Microprocessadores ?
Arquitetura de Computadores
Afonso Ferreira Miguel
Arquitetura de computadores
Arquitetura de Sistemas Operacionais
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
ARQUITETURA DE VON NEUMANN
Organização Estruturada de Computadores
Sistemas Operacionais Arquitetura de Computadores
Ney Laert Vilar Calazans Exemplo de Apresentação de TP1 Descrição Resumida de uma Arquitetura de Processador: o estudo de caso do Intel 8086 ORGANIZAÇÃO.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

Arquitetura dos Microprocessadores 8086 e 8088 Sistemas Embarcados

Introdução Microprocessadores Intel Linha X86 Linha Pentium Primeira Geração Segunda Geração Terceira Geração Quarta Geração Quinta Geração Pentium Ano Surgimento Nº bits barramento /64 Nº transistores Vel. MHz 4,77 a 10 8 a 168 a 12,516 a 4025, 33 e 5060, 66 e 90 Co- Processador Interno

Introdução Vamos concentrar nossos estudos no 8086/8088! Por que? Motivos históricos: o primeiro PC (o IBM PC) possuía um 8088 embarcado Todo software produzido para a família 80X86 mantém compatibilidade com os microprocessadores futuros

Arquitetura do 8086/8088 Arquitetura Von Neumann (CISC): dados e endereço no mesmo barramento 20 bits de endereço => 1Mbyte 16 bits de dados do barramento comum (8086) 8/16 bits de dados do barramento comum (8088) Barramento de controle: 16 bits independentes do barramento comum 8086 e 8088 possuem arquiteturas internas semelhantes, com interfaces com o barramento diferentes!

Pinagem do 8086/8088

Diagrama Funcional do 8086/8088 EU obtém instruções de uma fila gerenciada pela BIU Quando uma instrução requer acesso à memória ou a um dispositivo periférico, então a EU solicita à BIU uma leitura/escrita de dados.

Unidade de Execução do 8086/8088 Contém uma ALU para realização de operações aritméticas (+,-,* e /) e lógicas (AND, OR, NOT e XOR) Contém registradores endereçados por nome para armazenamento temporário durante operações A ALU pode realizar operações de 8 ou 16 bits

Unidade de Controle do 8086/8088 Controla a comunicação de dados entre a Unidade de Execução e os dispositivos periféricos (memória e E/S) Controla a transmissão de sinais de endereço, de dados e de controle Controla a sequência de busca e execução de instruções Mecanismo de pre-fetch: busca até 6 instruções futuras, deixando-as na fila de instruções => Aumento de velocidade

Conjunto de Registradores De Uso Geral Uso Preferencial Usados em operações aritméticas de 8 ou 16 bits Usados em operações aritméticas e para acessar variáveis de memória.

Conjunto de Registradores De Uso Específico Usados para particionamento de memória Permite que a CPU possa acessar até 4 seguimentos distintos ao mesmo tempo Cada segmento lógico possui 64kB

Onde são usados? Algumas instruções usam certos registros implicitamente. MUL CX => AX*CX ->resultado em DX:AX DIV CX => DX:AX/CX ->resultado: quociente em AL e resto em AX IN AX,0C8h IN AX,DX OUT 0C8h,AX OUT DX,AX

Conjunto de Registradores De Uso Específico CS aponta para o Segmento de Código, onde há instruções a serem buscadas SS aponta para o Segmento de Pilha, usado para operações de colocar e/ou retirar dados da pilha DS aponta para o Segmento de Dados, onde normalmente estão armazenadas as variáveis de programa ES aponta para o Segmento Extra, tipicamente usado para armazenamento de dados SITUAÇÃO DE RESET CS inicializa em FFFFh SS, DS e ES inicializam em 0000h Programas podem acessar e manipular qualquer registrador de segmento Exemplo: DEBUG do DOS ->Comandos d e e

Organização da Memória O 8086/8088 é um microprocessador little-endian!

Registro de Flags Processor Status Word (PSW) Os flags CF, PF, AF, ZF, SF e OF são alterados pela EU de acordo com resultados de operações lógicas ou aritméticas Os flags TF, IF e DF são usados para alterar operações do processador, podendo ser setados ou resetados O Reset inicializa o PSW como F000h

Segmentação da Memória As Famílias 8086/8088 e 80186/80188 possuem um espaço de memória de 1MB (de 00000h a FFFFFh) Um segmento (unidade lógica de memória) pode ter no máximo 64kB (de 0000h a FFFFh)

Segmentação da Memória Os segmentos podem ser adjacentes, disjuntos, parcialmente sobrepostos ou completamente sobrepostos Uma memória física pode ser mapeada em um ou mais segmentos lógicos

Segmentação da Memória Veremos em laboratório como podemos fazer o papel do sistema operacional e assim obter controle sobre os segmentos, alterando o valor dos registradores de segmento (DS, CS, SS e ES)

Segmentação da Memória

O Seletor e o Descritor de segmento são controlados pelo sistema operacional O Offset é controlado pelo programa de aplicação Normalmente o Descritor de segmento possui alguns bits associados para determinação de características de proteção do segmento, isto é, permissões para leitura, escrita e/ou execução Um Cache de Descritor de segmento evita dois acessos simultâneos à memória

Geração do Endereço Físico Operação Realizada pela BIU Um eventual carry gerado pela adição é ignorado! O endereço físico é um valor de 20 bits que identifica a localização de um byte na memória.

Endereço Físico versus Endereço Lógico

Endereço Lógico O endereço lógico de memória pode vir de diferentes fontes, dependendo do tipo de referência que está sendo feito. A BIU (Unidade de Interface de Barramento) é quem determina a fonte do endereço lógico com base no tipo de referência de memória. Entretanto, o programador é capaz de direcionar a BIU para usar um segmento endereçável qualquer. Exemplo: MOV ax,1000h MOV ds,ax

Endereço Lógico As instruções são sempre buscadas no segmento de código corrente O registrador CS possui a base do segmento, enquanto que o registrador IP possui o offset, formando, assim, o endereço lógico de uma instrução Instruções de pilha sempre operam no segmento de pilha corrente O registrador SS possui a base do segmento, enquanto que o registrador SP possui o offset que leva ao topo da pilha. Entretanto, o endereço lógico de uma instrução envolvendo a pilha usa o registrador BP para apontar a base da pilha.

Implementação de Pilha Um sistema pode possuir múltiplas pilhas, só uma é diretamente endereçável por vez através dos registradores SS e SP Uma pilha pode ter até 64kB, sendo que SS determina a base e SP o topo O ponto de origem da pilha é o topo (não a base) As pilhas armazenam palavras de 16 bits Portanto, para armazenar um elemento na pilha, deve-se decrementar SP de 2 (2 bytes), e então escrever a palavra em SP Ao ler um elemento da pilha, deve-se incrementar SP de 2 A pilha cresce em direção à sua base Operações de pilha nunca movem ou apagam os elementos armazenados

Implementação de Pilha

Memória Reservada RESET Instrução JUMP Até 256 Interrupções distintas 16 bits de endereçamento de segmento 16 bits de endereçamento de offset Totalizando um apontador de 4 bytes