Software Básico Nível ISA Capítulo 5 Mitsuo Takaki

Slides:



Advertisements
Apresentações semelhantes
Organização de Computadores I
Advertisements

Arquitetura de Computadores
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
Arquitetura de Sistemas Operacionais
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
Sistemas Operacionais
CISC e RISC.
Professor: Erivelto Tschoeke – UDESC/CEPLAN
Sistemas Digitais Microprocessados
REPRESENTAÇÃO DE INSTRUÇÕES
Arquitetura de Sistemas Operacionais
Processadores – Aula 3 Professor: André Luis Meneses Silva
Processadores – Aula 3 Professor: André Luis Meneses Silva
2- Entendendo o que é Arquitetura e Organização
Sistemas Operacionais I
Representação de Instruções
Sistemas Operacionais
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Qualificadores.
Sistemas Operacionais
Sistemas Operacionais I
Arquitetura de computadores
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Pet computação UFPE Aula de apoio aos feras: Arquitetura de Computadores.
Processamento de dados na UCP e memória UCP
Prof. Remy Eskinazi - Microcontroladores
Arquitetura de Computadores
Unidade Central De Processamento: Processador
Geração de Código aula-12-geração-de-código.pdf.
Computação L1: Infra-Estrutura Básica
Sistemas Operacionais
Capítulo VIII Ambientes de Execução
Sistemas Operacionais
Arquitetura de Computadores
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
Introdução a Banco de Dados Aula 04
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
Software Básico Introdução à Organização de Computadores Capítulo 1 Mitsuo Takaki
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
SISTEMAS DE INFORMAÇÃO
Funcionamento interno do computador
Arquitetura de computadores
Introdução à Computação
Arquitetura de Sistemas Operacionais
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
A linguagem de Máquina – Instruções Básicas
ARQUITETURA DE VON NEUMANN
Arquitetura do ARM RISC (Reduced Instruction Set Computer) – Conjunto relativamente grande de registradores – Modelo “load/store “de processamento Operações.
Sistemas Operacionais Arquitetura de Computadores
Nível ISA.
 Processamento de dados: requer a execução de uma série de passos, o programa (software)  Cada passo é uma instrução, ou ordem de comando, dada ao.
 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.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Transcrição da apresentação:

Software Básico Nível ISA Capítulo 5 Mitsuo Takaki http://www.cin.ufpe.br/~mt2/ mt2@cin.ufpe.br

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

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.

Compilador O desenvolvedor de um compilador necessita obter informações do nível ISA. Se não for utilizado de forma correta, pode produzir resultados errados.

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.

Espaço de Endereço A maioria das máquinas possuem apenas um único espaço linear de endereço. Algumas possuem espaços de endereços separados para instruções e dados. A busca de uma instrução no endereço 8 vai para um espaço de endereço diferente da busca por um dado no endereço 8.

Espaço de Endereço Separado A principal vantagem deste esquema é que fica impossível sobrescrever acidentalmente o programa. Overflow. Atenção!! Este esquema é diferente do uso de uma cache dividida.

Semântica da Memória A semântica da memória é mais um aspecto do modelo de memória do nível ISA. Espera-se que após uma instrução STORE, a execução de um LOAD, no mesmo endereço, retornará o valor que acabou de ser escrito.

Semântica da Memória Em muitos projetos, as microinstruções são reordenadas. Há uma chance da memória não ter o comportamento esperado. Este problema é agravado como uso de multiprocessadores. Há uma sequência de instruções de leitura/escrita a uma memória compartilhada.

Semântica da Memória Existem diversas soluções para este problema, como: Serializar requisições de memória; Não prover garantias; Usar modelos de memória intermediários.

Serializar Requisições de Memória Cada instrução é concluída antes da próxima ser emitida. Forma simples de implementar. Degrada o desempenho do sistema.

Não Prover Garantias O programa deve executar uma instrução SYNC sempre que necessitar uma ordenação. Bloqueia todas as requisições de memória até que as anteriores tenham concluído. Passa toda responsabilidade para os compiladores. Necessitam entender detalhes do funcionamento da microarquitetura.

Modelos de Memória Intermediária O hardware fica responsável por bloquear automaticamente a emissão de certas referências à memória. Algumas referências não são bloqueadas.

Registradores

Registradores 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, 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.

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.

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. Sempre existem instruções aritméticos, booleanas, LOAD, STORE, MOVE...

Instruções Serão abordados os níveis ISA das arquiteturas: Pentium 4; SPARC v9; 8051