Arquitetura de Computadores

Slides:



Advertisements
Apresentações semelhantes
Software Básico Silvio Fernandes
Advertisements

Software Básico Silvio Fernandes Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:
Capitulo 6: Entrada e Saída
1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
CPU: Controle e processamento
WebDesign Redes de Computadores Aula 05
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Arquitetura e organização de computadores
Arquitetura e organização de computadores.
Autor: Salvador P. Gimenez
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
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Arquitetura dos Microprocessadores 8086 e 8088
Exemplo de arquitetura registrador-registrador- MIPS
Arquitetura de Sistemas Operacionais
Introdução à Informática
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Sistemas Operacionais
Professor: Erivelto Tschoeke – UDESC/CEPLAN
Implementando um Montador com LEX e YACC - 3
Estruturas de Controle
Arquitetura de Computadores
Processadores – Aula 3 Professor: André Luis Meneses Silva
Sistemas Operacionais
Processadores – Aula 3 Professor: André Luis Meneses Silva
Sistemas Operacionais
Introdução à Programação
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
PROGRAMAÇÃO I UNIDADE 1.
Unidade Central de Processamento
Unidade Central de Processamento
Funcionamento básico de um computador
Representação de Instruções
Sistemas Operacionais
Arquitetura de computadores
Complex Instruction Set Computer
Sistemas Operacionais
Unidade Central de Processamento UCP
PCI- Introdução à Computação
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Sistemas Operacionais I
Organização de um computador
Arquitetura de computadores
História dos computadores e da programação
Organização e Arquitetura de Computadores
1 2 Observa ilustração. Cria um texto. Observa ilustração.
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
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Organização e Arquitetura de Computadores
Unidade Central De Processamento: Processador
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Arquitetura de Computadores
DCC 001 Programação de Computadores 2o Semestre de 2011
Microprocesadores x Microcontroladores
Registradores.
Tudo sobre o Processador
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
Arquitetura de computadores
Arquitetura de Sistemas Operacionais
ARQUITETURA DE VON NEUMANN
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Transcrição da apresentação:

Arquitetura de Computadores Arquitetura do conjunto de instruções

Arquitetura de Computadores Arquitetura de conjunto de instruções, permite dar uma visão um pouco acima do hardware, onde iremos conhecer a linguagem de máquina e a linguagem de montagem. Vamos estudar a arquitetura ARC, baseada numa arquitetura comercial da SUN Um compilador traduz de uma linguagem de alto nível para uma de baixo nível Um montador assembly é responsável por traduzir a linguagem de assembly para linguagem de código de máquina Linguagem com o C, pascal, fortran traduzem diretamente para código de máquina da arquitetura. A linguagem JAVA traduz para uma linguagem intermediária, chamada de byte code. A máquina virtual JAVA interpreta o byte code para a linguagem de máquina de cada arquitetura. Alto Nível C, Pascal, etc -> independente de arquitetura Baixo Nível Montagem -> dependente de arquitetura Hardware

Arquitetura de Computadores As instruções de linguagem de máquina apenas apresentam as operações de acesso lógicas aritméticas, a memória, aos I/Os e registradores. O objetivo do barramento é reduzir o numero de interconexões entre as unidades Toda comunicação é feita pelo barramento. Nem todas as arquiteturas são assim. Existem aquelas que possuem barramentos dedicados, por exemplo: uma exclusiva entre a CPU e a memória.

Arquitetura de Computadores Funcionamento típico Um programa de feito em uma linguagem de alto nível e armazenado no disco rígido. O usuário carrega o programa para memória, com a ajuda do sistema operacional. O programa é executado, operando instruções de baixo nível. Todas as instruções são executadas na ALU e gerenciados pela unidade de controle, o qual é responsável em direcionar quando uma instrução fará uma operação de acesso de memória, I/O ou se lógica e aritméticas devem ser realizadas.

Arquitetura de Computadores Um byte é composto de 8 bits ou dois nibbles Todas as outros tamanhos são compostos em termos de bytes.

Arquitetura de Computadores Memória É um conjunto de registradores que armazenam bytes e que podem ser acessados através de um endereçamento. Mesmo uma word ou palavras maiores podem ser acessados na memória, pois estes dados estão organizados sequencialmente na memória. Formatos Big-Endian e Little Endian A forma como os dados podem estar organizado podem variar de arquitetura para arquitetura. Os chamados Big-Endian, tem os bytes mais significativos nos endereços mais baixos. OLittle-endian tem os bytes menos significativos no endereço mais baixo.

Arquitetura de Computadores O acesso a memória é sequencial A forma de acesso é apresentado pela figura ao lado. Através do endereçamento ou “Address” podemos indicar a unidade de memória qual dado estamos interessados em acessar.

Arquitetura de Computadores Mapeamento de memória Alguns dispositivos podem ter mapeando como posição de memória as entradas e saídas de dados. Ao invés de usar I/O, um programa pode ler e escrever dados aos dispositivos simplesmente lendo ou escrevendo dados num dado endereçamento. Estas regiões são protegidas e são usados somente para este fim, não podem ser usados pelos programas para armazenar informações dos aplicativos.

Arquitetura de Computadores Considerações sobre memória Normalmente, as memórias podem ser considerados como um grande intervalo de endereços contínuos. Mas há outras formas de organização de memórias, como por exemplo: tipo segmentado.

Arquitetura de Computadores A CPU Consiste de uma seção contendo registradores, ALU e a Unidade de Controle. A seção de dados é também conhecida de DATAPATH

Arquitetura de Computadores A unidade de controle é responsável por executar uma por uma as instruções de código de máquina armazenadas na memória. Utiliza dois registradores especiais, que são a interface entre a unidade de controle e de dados. São o IR e PC, o primeiro contém a instrução lida da memória. A segunda possui o próximo endereço a ser lido pela unidade de controle para a proxima instrução.

Arquitetura de Computadores Algoritmo básico (ciclo de busca e execução) Ler a próxima instrução, apontada pelo PC Decodificar os operandos Ler o operando da memória, se houver Executar a instrução e armazenar os resultados Repetir

Arquitetura de Computadores Datapath é feito sobre uma coleção de registradores conhecidos como registradores de arquivo e a ALU.

Arquitetura de Computadores Conjunto de Instruções São uma coleção de instruções/comandos que são usados para executar tarefas de receber, processar e transmitir dados dentro do processador. Estes conjuntos são chamados de linguagem de máquina. Cada arquitetura pode ter diferentes conjuntos de instruções. Necessidades de compiladores: C, Pascal, Java, etc.

Arquitetura de Computadores Compiladores São software para gerar programas em linguagem de máquinas. Como entrada, são usados linguagens de alto nível, como alinguagem C, Fortran, Pascal, etc. Usando o código fonte, por exemplo da linguagem C, é possível compilar um mesmo programa em várias arquiteturas diferentes.

Arquitetura de Computadores Processo de compilagem Linguagem de alto nível Linguagem de montagem Tempo para “linkagem” Código de máquina

Arquitetura de Computadores Exemplo de computador RISC ARC ARC é uma máquina de 32 bits com memória endereçada por byte Podem manipular dados de 32 bits Tem áreas de memórias separadas por função

Arquitetura de Computadores Os menores 2048, são reservado para o S.O. Acima de 2048 e abaixo de da pilha, é reservada para os programas do usuário A pilha está localizada, 231- 4 e cresce em direção a endereços menores Acima disso, entre 231 e 232 – 1 é reservado para dispositivos de entradas e saídas.

Arquitetura de Computadores Conjuntos de instruções especiais Os Registradores, são memórias especiais e são diferentes da memória, por estarem internas a CPU. O ARC tem 32 registradores de 32 bits Possui um PC, IR e PSR PC Program Count IR Instrution Register PSR – registrador de status Load-Store – é uma arquitetura que carrega e armazena. Todos dados são necessariamente carregados em registradores para processamentos. O resultado é também sempre carregado em um registrador.

Arquitetura de Computadores Instruções de Movimentação de Dados Ld e St, são respectivamente de leitura e escrita de dados da memória para registrador e vice-versa. São as únicas instruções que podem acessar a memória no ARC.

Arquitetura de Computadores Instruções de Controle São responsáveis por chamar subrotinas, gerar saltos condicionais e incondicionais na execução de um algorítmos. Exemplo de incondicionais: Call e Jmpl Exemplo das instruções condicionais: be, bneg, bcs, bvs e ba

Arquitetura de Computadores sdf

Arquitetura de Computadores O Registrador PSR Ele especifica o status a uma dada operação aritmética. “z”, define se uma operação matemática deu “Zero” “n”, define se a operação deu negativo “c”, Carry out “v”, Overflow

Arquitetura de Computadores Formato de linguagem de montagem ARC

Arquitetura de Computadores Registradores

Arquitetura de Computadores Formato das instruções

Os Formatos de dados ARC Temos formatos de: Inteiros sem sinal Inteiros com sinal Ponto flutuantes

Arquitetura de Computadores Pseudo Ops São operandos especiais que são necessários que não fazem parte dos opscodes de uma arquitetura. Porém eles são necessários durante o processo de montagem de códigos de máquinas.

Arquitetura de Computadores Pseudo Ops

Arquitetura de Computadores Exemplo de código assembly

Um pouco mais complexo

Arquitetura de Computadores Variações na Arquitetura e endereçamento da máquina. Considere A = B * C + D Dependendo do tipo de instruções usado, esta expressão pode ocupar diferentes tamanhos. Premissa que todos os operandos ocupem dois bytes e opcodes apenas um byte.

Arquitetura de Computadores Tipo com três parâmetros mult B, C, A A <- B x C add D, A, A A <- A + D O tamanho do programa ocupado é: 7x2 = 14 bytes. Tráfico de Memória: 14 + 2x(2x3) = 26 bytes

Arquitetura de Computadores Tipo com dois parâmetros Um dos operandos é usando para acomodar o resultado load B, A A <- B mult C, A A <- A x C add D, A A <- A + D O tamanho do programa: 3x(1+2+2) = 15 bytes Tráfico de memória: 15 + 2x2 + 2x3 + 2x3 = 31 bytes

Arquitetura de Computadores Tipo com dois parâmetros Um dos operandos é usando para acomodar o resultado load B Acc <- B mult C Acc <- Acc x C add D Acc <- Acc + D store A A <- Acc Tamanho do programa: 4x3 = 12 bytes Tráfego de memória: 12 + 4 x 2 = 20 bytes

Arquitetura de Computadores Registradores de Uso Especial Algumas arquiteturas possuem registradores especiais de acordo com os fins específicos Registradores de indexação da memória, os registradores de índice de origem (SI) e de origem (DI) do Intel 80x86 são usados para marcar o início ou fim de um vetor de memória. Registradores de ponto flutuante: muitos processadores usam esses registradores para tratar com pontos flutuantes

Arquitetura de Computadores Registradores que implementa operações de tempo: o processador PowerPC 601 tem registradores de clock de tempo que oferecem medidas de tempo de alta resolução. Registradores de apoio ao S.O. : ex: apoio ao acesso a memória Registradores que podem ser acessados por instruções privilegiadas: são comandos que só S.O tem acesso e permissão usar.

Arquitetura de Computadores Modos de endereçamento Uma constante que é conhecido em tempo de montagem Conteúdo direto de um registrador Soma de dois registradores Soma de registradores e uma constante

Arquitetura de Computadores Ligação de Sub-rotinas

Arquitetura de Computadores Área de ligação de dados A sub-rotina é linkado com uma área de dados de memória através de r5.

Arquitetura de Computadores Passagem de parâmetros usando a pilha

Arquitetura de Computadores Exemplo de uso da pilha em linguagem de alto nível.

Comportamento da pilha no exemplo anterior

Cont.

Arquitetura de Computadores Mapeamento da memória ARC.

Arquitetura de Computadores Touchscreen I/O Device

Arquitetura de Computadores Flowchart for I/O Device

Arquitetura de Computadores Java Virtual Machine Architecture

Arquitetura de Computadores Programa Java e o arquivo com a classe compilada

Arquitetura de Computadores A Java Class File

Arquitetura de Computadores Cont

Arquitetura de Computadores Byte code java Byte code disassembled para um programa java Location Code Mnemonic Meaning 0x00e3 0x10 bipush Push next byte onto stack 0x00e4 0x0f 15 Argument to bipush 0x00e5 0x3c istore_1 Pop stack to local variable 1 0x00e6 0x10 bipush Push next byte onto stack 0x00e7 0x09 9 Argument to bipush 0x00e8 0x3d istore_2 Pop stack to local variable 2 0x00e9 0x03 iconst_0 Push 0 onto stack 0x00ea 0x3e istore_3 Pop stack to local variable 3 0x00eb 0x1b iload_1 Push local variable 1 onto stack 0x00ec 0x1c iload_2 Push local variable 2 onto stack 0x00ed 0x60 iadd Add top two stack elements 0x00ee 0x3e istore_3 Pop stack to local variable 3 0x00ef 0xb1 return Return