Nível ISA.

Slides:



Advertisements
Apresentações semelhantes
Parte 1: Organização de Computadores
Advertisements

CPU: Controle e processamento
Arquitetura de Computadores
WebDesign Redes de Computadores Aula 05
Nível de arquitetura do conjunto de instrução
Arquitetura e organização de computadores
Arquitetura e organização de computadores.
Organização de computadores Professora Marcela Santos Aula 8 – 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
ARQUITETURAS RISC E CISC
Arquitetura dos Microprocessadores 8086 e 8088
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
Sistemas Operacionais
CISC e RISC.
Professor: Erivelto Tschoeke – UDESC/CEPLAN
O MICROPROCESSADOR INTEL 8080
Sistemas Digitais Microprocessados
REPRESENTAÇÃO DE INSTRUÇÕES
Processadores – Aula 3 Professor: André Luis Meneses Silva
Processadores – Aula 3 Professor: André Luis Meneses Silva
Sistemas Operacionais I
Prof. João Paulo de Toledo Gomes
Linguagem de Montagem.
Representação de Instruções
Sistemas Operacionais
Unidade Central de Processamento UCP
ORGANIZAÇÃO DE COMPUTADORES
Sistemas Operacionais I
Arquitetura de computadores
Arquitetura de computadores
Organização e Arquitetura de Computadores
Agenda Modos de Endereçamento.
Processamento de dados na UCP e memória UCP
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
Sistemas Operacionais
Capítulo VIII Ambientes de Execução
Unidade Central De Processamento: Processador
Definição O processador é o C.I. mais importante do computador. Ele é considerado como o cérebro do computador e funciona como uma UCP – Unidade Central.
Arquitetura de Computadores
Unidade de Controle.
Sistemas Operacionais
Microprocesadores x Microcontroladores
8088 Assembly Software Básico Mitsuo Takaki.
DSC/CEEI/UFCG Introdução à Computação. DSC/CEEI/UFCG 2 Hardware – Memória  Componente de um sistema de computação cuja função é armazenar informações.
Registradores.
Nível ISA.
Fundamentos de linguagens de programação
Parte 3 Seção de Dados e Unidade de Controle
CES-10 INTRODUÇÃO À COMPUTAÇÃO
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
Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem.
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Arquitetura de Microcomputadores
Funcionamento interno do computador
Arquitetura de computadores
Arquitetura de Sistemas Operacionais
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
A linguagem de Máquina – Instruções Básicas
Arquitetura do ARM RISC (Reduced Instruction Set Computer) – Conjunto relativamente grande de registradores – Modelo “load/store “de processamento Operações.
Organização de Computadores Implementação da UCP Construção do caminho de dados Controle Implementação monociclo.
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Transcrição da apresentação:

Nível ISA

Introdução Os computadores foram divididos em diversas camadas para simplificar o desenvolvimento de aplicações e reduzir custos de produção. O entendimento dessas diferentes camadas permite entender o funcionamento interno do computador.

Arquitetura em Camadas

Arquitetura em Camadas

Nível ISA Chamado de nível de arquitetura do conjunto de instruções. Está localizado entre o nível da microarquitetura e o nível de SO. Foi desenvolvido antes de qualquer nível. Nos primeiros computadores só existiam nível de lógica digital e ISA.

Nível ISA Os programas em diversas linguagens são traduzidos para uma linguagem intermediária comum. Da mesma forma que Java converte para Bytecode. O hardware deve ser capaz de executar programas de nível ISA diretamente.

Nível ISA Define a interface entre os compiladores e o hardware. É uma linguagem que ambos devem entender. Os compiladores devem saber transformar de uma linguagem alto nível para uma linguagem do nível ISA.

Nível ISA

Nível ISA O Nível ISA depende de uma negociação entre os projetistas de compiladores e os engenheiros de Hardware Engenheiros de Hardware felizes e Desenvolvedores de Software contentes As novas máquinas devem ser compatíveis com: Antigos Sistemas Operacionais Aplicações já desenvolvidas O desafio é construir máquinas melhores e compatíveis com as anteriores

Nível ISA Quais as características que uma boa ISA deve ter? Ser implementada com eficiência, tanto nas tecnologias atuais como nas futuras  hardware mais simples  hardware com melhor tecnologia disponível Facilidade de se gerar código para a ISA

Propriedades O nível ISA define como a máquina se apresenta a um programador de linguagem de máquina. Quais as instruções disponíveis; Qual modelo de memória utilizado; Quais e quantos registrados existem; Quais os tipos de dados suportados...

Propriedades Outras questões não fazem parte deste nível: Se a microarquitetura é microprogramada ou não. Se possui paralelismo ou não... Outras questões são visíveis neste nível: Uso de processadores específicos para números inteiros e ponto flutuante...

Propriedades Algumas arquiteturas definem documentos de requisitos da camada ISA. Diferentes implementadores podem construir a máquina e obter o mesmo desempenho. Ex: V9 SPARC Para algumas arquiteturas não existe uma documentação formal de especificação fabricante não quer clones de sua máquina (ex: Pentium-Intel)

Propriedades Para outras arquiteturas o nível ISA é especificado por um documento formal  permitindo que diferentes implementadores construam máquinas  distintas, rodando o mesmo software (chips funcionalmente identicos com diferenças em preço e performance) O documento  formal contém seções normativas: que impoem requisitos que devem ser atendidos na implementação seções informativas: que ajuda o leitor a entender os requisitos sem entrar na definição formal conjuntos de testes: conjunto de testes específicos para se verificar a implementação em relação a especificação formal

Modos de Utilização Este nível provê, no mínimo, dois modos de utilização: Modo núcleo ou modo kernel. Modo usuário.

Modo Núcleo O SO é executado neste modo. Permite executar qualquer instrução, sem restrições.

Modo Usuário Executa programas do usuário. Possui acesso restrito à algumas instruções importantes. Não é possível usar as instruções que manipulam a cache, por exemplo.

Modelos de Memória

Modelos de Memória Todos os computadores dividem a memória em células endereçáveis. O tamanho mais utilizado é de 8 bits, chamado de 1 byte. Este tamanho facilita o armazenamento de caracteres ASCII. 7 bits do caractere; 1 bit de paridade.

Modelos de Memória Estes bytes são agrupados em palavras. Podem ser de 4 ou 8 bytes. As instruções podem manipular palavras inteiras. Algumas arquiteturas exigem que as palavras sejam alinhadas.

Alinhamento das Palavras

Alinhamento das Palavras No Pentium 4, é possível referenciar qualquer byte. Sem alinhamento, uma palavra pode ficar “espalhada”. Necessita de duas instruções para carregar a palavra.

Registradores

Registradores Memórias rápidas usadas em execução de instruções dentro do processador (objetivo é minimizar os acessos às memórias externas ao processador) Todos os computadores possuem registradores visíveis no nível ISA. São visíveis para controlar a execução do programa, reter resultados temporários e outros fins.

Registradores Em geral, os registradores do nível de microarquitetura não são visíveis no nível ISA. Alguns são visíveis em ambos os níveis. PC (contador de programa), ponteiro de pilha... Todos os registradores do nível ISA são visíveis no nível abaixo.

Categorias de Registradores Os registradores do nível ISA podem ser separados em duas categorias: Registradores de uso especial. Registradores de uso geral.

Registradores de Uso Especial Incluem o PC e o ponteiro de pilha. Possuem papéis especiais no funcionamento do computador. Alguns só são usados pelo processador

Registradores de Uso Geral Contém variáveis locais e resultados intermediários de cálculos. Sua função é prover acesso rápido a dados muito usados. São, em geral, simétricos e intercambiáveis (usados indistintamente)

Registradores de Uso Geral No Pentium 4, há um registrador chamado EDX. É usado como registrador de uso geral, mas também armazena metade do produto em uma multiplicação e retém metade do dividendo em uma divisão.

Uso dos Registradores É comum que SOs e compiladores adotem convenções sobre o uso dos registradores. Alguns podem ser utilizados para armazenar parâmetros de procedimentos e outros como registradores transitórios.

Uso dos Registradores Sem uma convenção: Registradores que armazenam uma variável local pode perder seu conteúdo após um procedimento. O endereço de retorno pode ser perdido.

Uso dos Registradores Os registradores de uso especial são usados apenas pelo SO. São acessados em modo núcleo. Compiladores e usuários não necessitam saber que eles existem.

Registrador de Controle Possui um comportamento híbrido de núcleo/usuário. O registrador de flags ou PSW (Program Status Word) é um registrador de controle. Possui vários bits importantes para CPU.

Registrador de Controle Estes bits são atualizados em todo ciclo da ULA. Refletem o estado da última operação.

Bits da PSW N – Setado quando o resultado é negativo. Z – Quando o resultado é zero. V – Quando resultado excede a capacidade da ULA. C – Quando o resultado causou um vai-um do bit da esquerda. A – Quando houve um vai-um do bit 3 (vai-um auxiliar) P – Quando o resultado teve paridade par.

Bits da PSW As instruções de comparação e desvio condicional utilizam estes bits para realizar uma determinada ação. Por exemplo, a instrução CMP (comparação) na verdade subtrai os operandos e, se forem iguais, seta Z como 1.

Bits da PSW A PSW pode ser lida em modo usuário. Alguns campos só podem ser escritos em modo núcleo.

Instruções

Instruções É a principal característica do nível ISA. O conjunto de instruções controlam tudo o que a máquina pode fazer Tipos de instruções típicas: LOAD, STORE - realizam o movimento de dados e instruções entre memória e registradores MOVE - realizam cópia de valores entre registros ADD, SUB, MULT,... - realizam operações aritméticas  AND, OR, XOR, ... - realizam operações lógicas EQ, NEQ, LEQ,... - realizam operações de comparação GOTO - operação de desvio

Visão Geral Serão abordados os níveis ISA das arquiteturas: Pentium 4; SPARC v9; 8051

Tipos de Dados Se existe suporte de hardware para um determinado tipo de dado usuário  não pode manipular dado em formato particular diferente do especificado (implementado) Se não existe esse suporte usuário tem maior flexibilidade para trabalhar com tipos diferentes ou próprios

Tipos Dados Se existe suporte de hardware para um determinado tipo de dado usuário  não pode manipular dado em formato particular diferente do especificado (implementado) Se não existe esse suporte usuário tem maior flexibilidade para trabalhar com tipos diferentes ou próprios

Dados Numéricos Tipos de Dados Numéricos Inteiros Comumente de 8, 16, 32 e 64 bits, com sinal e sem sinal Muitas vezes representados em complemento de 2 Exemplo: Para o caso de 32 bits sem sinal temos 232 valores inteiros Exemplo: Para caso de 32 bits com sinal temos 231 valores inteiros mais o sinal  Ponto Flutuante Comumente de  32, 64 e 128 bits, com sinal e sem sinal Considera-se o sinal, a parte inteira e a parte decimal Podem existir registradores específicos para esses tipos de dados

Dados Não Numéricos Tipos de Dados não numéricos Textos ou alfanuméricos Tipicamente usados em processadores de texto, planilhas e banco de dados Códigos mais usados atualmente: ASCII (8 bits) e UNICODE (16bits)

Formato de Instruções Uma instrução é formada por: um código de operação (obrigatório) informações a respeito da fonte e do destino de seus operandos (facultativo) um, dois ou três endereços

Formato de Instruções Formatos de instruções muito comuns: (a) Instrução sem endereço. (b) Instrução com um endereço. (c) Instrução com dois endereços. (d) instrução com três endereços.

Formato de Instruções O código de operação informa ao hardware o que deve ser feito quando de sua execução. As instruções podem ter tamanhos diversos (complica o projeto mas tem-se economia de memória)  ou serem todas de tamanhos iguais (simplifica o projeto, mas desperdiça espaço. Porque?)

Formato de Instruções Algumas das relações possíveis entre o tamanho das instruções e o tamanho das palavras de memória

Critérios para Determinação do Formato de Instruções Para uma arquitetura ter sucesso comercial Pode-se querer que ela dure 20 anos ou mais, mantendo compatibilidades O ISA deve ter a capacidade de suportar o acréscimo de novas instruções O ISA deve ser capaz de explorar novidades ao longo do tempo de vida Algumas decisões tomadas quando do projeto ISA podem revelar-se inadequadas ao longo do tempo, principalmente se a tecnologia for incompatível com a implementação do ISA

Critérios para Determinação do Formato de Instruções Em geral as instruções pequenas são mais atraentes do que as grandes. Porque? A banda passante (número de bits por segundo que a memória é capaz de liberar) da memória tem crescido menos que a velocidade dos processadores. As memórias atuais não tem a capacidade de suprir instruções e operandos na velocidade que o processador pode consumi-las. Um programa feito com instruções de 16 bits gasta metade do espaço de memória de um programa com instruções de 32 bits. Deve-se considerar, também, a taxa de crescimento do preço de memória e a taxa de crescimento do tamanho dos programas.

Critérios para Determinação do Formato de Instruções Por outro lado, a minimização do tamanho das intruções pode dificultar muito a sua decodificação. O projetista é obrigado a usar um conjunto restrito de códigos para as instruções e o projeto pode não ser flexível para aumento da quantidade de instruções

Endereçamento Como os bits de endereçamento são interpretados no processo de localização do operando? Normalmente esses bits contêm o endereço do operando na memória Mas isso não é regra geral

Modos de endereçamento Endereçamento Imediato Endereçamento Direto Endereçamento Via Registrador Endereçamento Indireto Via Registrador Endereçamento Indexado Endereçamento Base_Indexado Endereçamento Via Estrutura de Pilha

Org. e Arq. de Computadores I Endereçamento Imediato O campo de instrução de endereçamento contém o valor do operando Esse operando é conhecido como operando imediato, pois ele é trazido automaticamente da memória, na própria operação de busca da instrução. Mais usado para especificar constantes de valor pequeno. Porque? Instrução com operando imediato, para carregar o valor 4 no registrador 1. Org. e Arq. de Computadores I

Endereçamento Imediato Vantagem: Não exigi uma referência extra à memmória para buscar o operando Desvantagem: Somente uma constante pode ser fornecida desse modo. O número de valores é limitado pelo tamanho do campo

Org. e Arq. de Computadores I Endereçamento Direto O operando armazenado na memória é informado pelo seu endereço completo Esse modo de endereçamento é conhecido como modo de endereçamento direto. O endereçamento direto só pode ser usado para acessar variáveis globais cujo endereço seja conhecido em tempo de compilação.Porque? A instrução sempre acessará a mesma localização de memória O valor pode mudar, mas a localização não pode. Org. e Arq. de Computadores I

Endereçamento Direto

Org. e Arq. de Computadores I Endereçamento Via Registrador é, conceitualmente,  idêntico ao endereçamento direto,  mas  especifica um registrador  em vez  de um endereço de memória. é o modo de endereçamento mais usado na maioria dos processadores (mantém-se as variáveis mais usadas no processamento e aproveita-se o baixo tempo de acesso e o número de bits reduzido dos registradores) Não é usado quando um operando é transferido da memória para um registrador. (operações de carga - LOAD) ou de um registrador para memória (instruções e armazenamento (STORE) envolvendo memória principal. Endereço contido na instrução Org. e Arq. de Computadores I

Endereçamento via Registrador

Org. e Arq. de Computadores I Endereçamento Indireto Via Registrador o operando especificado vem da memória ou vai para a memória, mas seu endereço não está gravado na instrução,  (como no endereçamento direto). O endereço é obtido indiretamente a partir do endereço de um registrador de referência. Endereço é denominado de ponteiro por exemplo, quando se tem um loop de manipulação de um array usa-se o endereço do início do array como referência e os demais são obtidos indiretamente com base nessa referência. Org. e Arq. de Computadores I

Endereçamento Indireto via Registrador

Org. e Arq. de Computadores I Endereçamento Indexado Poder referenciar palavras de memória cujo deslocamento a um registrador é conhecido. Endereçamento de memória que fornece um a partir do conteúdo de um registrador (implícito ou explícito) somado a um deslocamento constante. Org. e Arq. de Computadores I

deslocamento chama-se habitualmente um índice e o seu valor fica contido num registador do CPU. Assim, ao aceder a uma tabela, o índice dá o deslocamento de cada elemento, relativo à base, cujo endereço vem indicado na própria instrução. O endereço efectivo é obtido pela soma EndereçoBase + (RegistadorÍndice).

Endereçamento Base-Indexado Modo de endereçamento segundo o qual o endereço de memória é calculado somando-se o conteúdo de dois registradores com um deslocamento (opcional). Um dos registradores é o registrador base e o outro é o registrador índice.

durante a execução, definirmos o valor do endereço de base, isto é, o apontador para a base da estrutura e, depois, o valor do índice de cada elemento, à medida que vamos iterando ao longo da estrutura.

Org. e Arq. de Computadores I Endereçamento Via Estrutura de Pilha Instruções sem endereços explícitos (Exemplo: IADD) são possíveis de serem definidas desde que sua execução esteja associada a uma estrutura de pilha Consistem em itens de dados armazenados em ordem consecutiva na memória, onde o primeiro item é denominado fundo da pilha. O apontador da pilha é um registrador que contém o endereço do topo da pilha. As instruções sem operadores utilizam a pilha para efetuar as operações, onde os operandos utilizados são sempre retirados do topo da pilha e o resultado dessa operação é deixado no topo. Sua vantagem é oferecer a possibilidade de especificar instruções sem os operandos e a implementação de procedimentos, já sua desvantagem é o acesso a memória principal Org. e Arq. de Computadores I

Comparação de modos de endereçamento. Modo de endereçamento Imediato Direto Via registrador Indireto via Registrador Indexado Base-Indexado Via estrutura de pilha Comparação de modos de endereçamento. Org. e Arq. de Computadores I

Exercícios O que é o nível ISA e qual a sua importância no projeto de um computador de uso geral. A especificação definida no nível ISA depende de negociações entre os interessados no computador. Quem são esses interessados e quais são as características dessas negociações? Explique as 3 seções que geralmente são colocadas num documento formal de específicação do nível ISA. Qual a importância da especificação dos registradores do computador no nível ISA. Explique a diferença entre registradores de propósito geral e registradores de propósito específico