Arquitetura e Organização de Computadores



Documentos relacionados
Nível da Microarquitetura

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Capítulo 4 Nível da microarquitetura

1. Macroarquitetura 2. Emulador do MIC-1 3. O Nível ISA: IJVM. Bibliografia. Teresina Pilhas 3.2. Conjunto de Instruções IJVM

TE Arquitetura e Organização de Computadores

Microarquitetura IJVM. Datapath mic-1. Função dos Registradores. mic-1

O Nível da Microarquitetura. Um Exemplo de Microarquitetura. Um Exemplo de Microarquitetura. Um Exemplo de Microarquitetura

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

Um Exemplo de Nível ISA: o IJVM. Pilhas. Pilhas. O Modelo de Memória da IJVM. Pilhas de Operandos. Nível ISA

Máquina Multinível. Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa.

CISC - Complex Instruction Set Computer

Nível da Microarquitetura

Arquitetura de Computadores. Tipos de Instruções

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

Microprocessadores. Prof. Leonardo Barreto Campos 1

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

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

ARQUITETURA DE COMPUTADORES

Organização e Arquitetura de Computadores I

Instituto Superior de Engenharia do Porto Departamento de Engenharia Informática

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Estrutura de um Computador

BARRAMENTO DO SISTEMA

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

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

Arquitetura de Computadores - Revisão -

Introdução à Engenharia de Computação

Unidade Central de Processamento

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Sistemas Operacionais. Revisando alguns Conceitos de Hardware

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:

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

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

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

ARQUITETURA DE COMPUTADORES

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

Edeyson Andrade Gomes

Sistemas Computacionais II Professor Frederico Sauer

3. Arquitetura Básica do Computador

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

A Figura 1 mostra uma organização do NEANDER com uma UAL de 6 funções. Figura 1: Organização para o NEANDER.

Armazenar dados e programas que serão utilizados pelo processador (CPU Unidade Central de Processamento)

Organização e Arquitetura de Computadores I. de Computadores

Introdução à Arquitetura de Computadores

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Introdução à Arquitetura de Computadores

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

4-1. Parte2: A Arquitetura do Conjunto de Instruções

Arquitectura de Computadores II. Máquinas Virtuais

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

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

Sistema de Computação

Organização de Computadores Hardware

Arquiteturas RISC. (Reduced Instructions Set Computers)

ULA Sinais de Controle enviados pela UC

2 Formalidades referentes ao trabalho

ARQUITETURA DE COMPUTADORES

Computadores de Programação (MAB353)

Organização de Computadores 1

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Capítulo 3 Processadores de Propósito Geral: Software

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Introdução aos Computadores

Organização Básica do Computador

Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e Organização de Memória

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

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

Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal. Memória principal

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

Organização e Arquitetura de Computadores. Hugo Barros @hugobarros.com.br

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

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

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

CP C U P U - Un U i n da d d a e d e Ce C n e t n ral a de d e Pr P oc o es e sam a e m n e t n o o Pr P oc o es e sad a o d r o Aula 03

MODOS DE ENDEREÇAMENTO

3. O NIVEL DA LINGUAGEM DE MONTAGEM

Arquitetura de Computadores I

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

Arquitetura e Organização de Computadores

Evolução dos Processadores

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

O Processador: Caminho de Dados e Controle

2. A influência do tamanho da palavra

Organização e Arquitetura de Computadores I

ARQUITETURA DE COMPUTADORES

Arquitetura de Computadores

RISC - Reduced Instruction Set Computer

Figura 1 - O computador

ARQUITETURA DE COMPUTADORES

Arquitetura de Computadores. Arquitetura de Computadores 1

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

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

Organização e Arquitetura de Computadores I. de Computadores

3º Trabalho de Laboratório. Unidade de Controlo Microprogramada

ORGANIZACÃO DE COMPUTADORES PROCESSADORES CHIPS TRANSISTORES

Programando o computador IAS

Transcrição:

Arquitetura e Organização de Computadores Fernando Fonseca Ramos Faculdade de Ciência e Tecnologia de Montes Claros Fundação Educacional Montes Claros 1

Índice 1- Introdução 2- Exemplo de Microarquitetura 3- Exemplo de Nível ISA: O IJVM 4- Exemplo de Implementação 5- Melhora de Performance 6- Exemplos de Níveis de Microarquitetura 2

1 - Introdução: É o nível 1, que fica acima do nível da lógica digital. Sua principal função é implementar o nível ISA (Instruction Set Arquitecture). O projeto deste nível deve considerar os seguintes elementos: arquitetura do conjunto de instruções a ser implementada (ISA). objetivos de custos e desempenho do computador a ser projetado. 3

1 - Introdução: A maioria das ISA s modernas, em particular os projetos RISC, tem instruções simples que podem ser executadas em um único ciclo de clock. As ISA s mais complexas, como a do Pentium, precisam de mais ciclos para executar uma única instrução. E necessário ter metodologias de seqüenciamento de instruções mais otimizadas para melhorar o desempenho da maquina em termos de tempo. 4

2 Exemplo de Microarquitetura: Não existem princípios gerais para projeto de microarquitetura, para estudo utiliza-se exemplos de microarquitetura. Exemplo de microarquitetura: IJVM. IJVM e a arquitetura de uma maquina virtual Java JVM (Java Virtual Machine). Executa apenas um subconjunto de instruções com inteiros da JVM. Objetivos: Arq. e Org. de Computadores Descrição da microarquitetura sobre a qual será implementada a IJVM. Descrição do controle e do seqüenciamento de execução das instruções. 5

2 Exemplo de Microarquitetura: Requisitos: Arq. e Org. de Computadores Desenvolvimento de um microprograma (em ROM) cuja função e buscar, decodificar e executar as instruções IJVM. O microprograma deve ser pequeno e deve alimentar diretamente as portas do hardware da maquina. Considera-se que cada instrução do nível ISA e uma função a ser chamada pelo programa principal. 6

2 Exemplo de Microarquitetura: 7 Caminho de Dados É a parte do processador que contém a UAL e todas as suas entradas e saídas. Conteúdo do Caminho de Dados: Conjunto de registradores de 32bits UAL (PC, SP, MDR, etc.) Controle de Função: F0 e F1 Controle de Habilitação: ENA, ENB Complemento de A: INVA Incremento: INC 3 Barramentos: A, B e C Deslocadores

2 Exemplo de Microarquitetura: Caminho de Dados Funções da ULA: Todas as funções executadas pela ULA são determinadas por 6 linhas de controle: F0 e F1 para determinação da operação. ENA e ENB para habilitar individualmente suas entradas A e B. INVA para inverter a entrada A. INC que forca um vai - um para o bit menos significativo, efetivamente adicionando 1 ao resultado (incremento de 1). 8

2 Exemplo de Microarquitetura: Caminho de Dados Combinações úteis de sinais de controle da ULA com as funções executadas por cada uma delas. 9

2 Exemplo de Microarquitetura: 10 Caminho de Dados É possível escrever em um mesmo registrador no mesmo ciclo de clock: leitura e escrita são feitas em momentos diferentes em um mesmo ciclo. A saída da UAL pode ser armazenada em mais de um registrador. Contudo, no barramento B apenas o conteúdo de um dos registradores pode ser transferido por vez. O registrador H pode ser carregado com o valor presente no barramento B, realizando-se uma soma com o sinal ENA desabilitado (ENA=0). Deslocamentos a direita e a esquerda podem ser comandados pelos sinais de controle do deslocador. SLL8 (shift left logical) desloca a saída da UAL 1 byte a esquerda, deixando 0s no byte da direita. SRA (shift right arithmetic): desloca a saída da UAL 1 bit para a direita, sem modificar o bit mais significativo.

2 Exemplo de Microarquitetura: Temporização 11

2 Exemplo de Microarquitetura: 12 Temporização O primeiro ciclo (explicito, do caminho de dados, apresentado na figura), pode ser visto como um conjunto de subciclos implícitos. O inicio do primeiro subciclo e marcado pela transição negativa do clock. Cada subciclo corresponde a execução de uma atividade em um determinado intervalo de tempo (Δw, Δx, Δy e Δz). Atividades que ocorrem durante os subciclos 1. Os sinais de controle são ativados (Δw). 2. O barramento B e carregado a partir dos registradores (Δx). 3. A UAL e o deslocar operam (Δy). 4. O resultado da operação da UAL e do deslocador se propaga através do barramento C em direção aos registradores (Δz).

2 Exemplo de Microarquitetura: Temporização O resultado e armazenado nos registradores na transição positiva do próximo clock. E de responsabilidade dos engenheiros de projeto assegurar que essa transição positiva ocorra somente apos passado o tempo Δw+Δx+Δy+Δdz. Caso contrario a carga dos registradores não é realizada. Dessa forma, é possível ler e escrever num mesmo registrador, sem produzir lixo (ex.: incremento do registrador PC). 13

2 Exemplo de Microarquitetura: Operações de Memória A comunicação da máquina com a memória utiliza duas portas : Porta de 32 bits (palavra): MAR (memory address register) MDR (memory data register) Porta de 8 bits (byte): PC (program counter) MBR (memory buffer register) Essa porta só pode ler dados da memória. Par de registradores MAR/MDR: usado para ler/escrever endereço da palavra Par de registradores PC/MBR: usado para ler instruções do programa executável 14

2 Exemplo de Microarquitetura: Operações de Memória MAR armazena o endereço de uma palavra, de maneira que os valores 0, 1, 2, etc. referenciam palavras consecutivas. Ex.: MAR=2, na leitura da memória, serão lidos os bytes 8 a 11 (os bytes que compõem a palavra 2), sendo esses 32 bits guardados no MDR. PC guarda o endereço de um byte, de modo que os valores 0, 1, 2, etc. referenciam bytes consecutivos. Ex.: PC=2, na uma leitura da memória, o byte 2 será lido da memória e seus 8 bits serão guardados nos 8 bits menos significativos do MBR. 15

2 Exemplo de Microarquitetura: Microinstruções De acordo com a figura do caminho de dados, são necessários 29 sinais para controle: 9 sinais para controlar escrita no barramento B 9 sinais para controlar escrita nos registradores a partir do barramento C 8 sinais para controlar UAL e deslocador 2 sinais para leitura e escrita em memória (MAR /MDR) 1 sinal para busca em memória via PC /MBR Os valores dos 29 sinais definem as operações a serem executadas durante um ciclo do caminho de dados 16

2 Exemplo de Microarquitetura: Microinstruções De acordo com a figura do caminho de dados, são necessários 29 sinais para controle: 9 sinais para controlar escrita no barramento B 9 sinais para controlar escrita nos registradores a partir do barramento C 8 sinais para controlar UAL e deslocador 2 sinais para leitura e escrita em memória (MAR /MDR) 1 sinal para busca em memória via PC /MBR Os valores dos 29 sinais definem as operações a serem executadas durante um ciclo do caminho de dados 17

2 Exemplo de Microarquitetura: Microinstruções Observação quanto ao acesso à memória: Uma solicitação de acesso ao conteúdo da memória é feita no ciclo 1 a informação solicitada só estará disponível no ciclo 3 (pelo menos) Redução do número de sinais de controle: 9 sinais para controlar escrita em B 4 sinais, usando decodificador (não faz sentido o acesso a B por mais de um registrador simultaneamente) 18

2 Exemplo de Microarquitetura: Microinstruções Estrutura e ordenação de uma possível microinstrução 19

2 Exemplo de Microarquitetura: Microinstruções Endereço: contém o endereço da próxima microinstrução a ser potencialmente ativada Desvio: determina a próxima microinstrução a ser executada UAL: especifica as funções da UAL e do deslocador Barramento C: seleciona qual dos registradores serão carregados com o valor que estiver no barramento C Memória: especifica as funções da memória Barramento B: seleciona a entrada do barramento B 20

2 Exemplo de Microarquitetura: O MIC-1: Elementos 21

2 Exemplo de Microarquitetura: O MIC-1: Elementos Seqüenciador Realiza todos os passos necessários para execução de uma instrução ISA A cada ciclo: estado de cada sinal de controle; e o endereço da próxima microinstrução Memória de controle: armazena o microprograma completo MPC (MicroProgram Counter): endereço da próxima microinstrução MIR (Micro Instruction Register): armazena microinstrução corrente 22

2 Exemplo de Microarquitetura: O MIC-1: Elementos Campo JAM Arq. e Org. de Computadores 000: nada a fazer JAMN == 1: O valor de N deve ser submetido a um OR com bit de maior ordem do MPC JAMZ == 1: O valor de Z deve ser submetido a um OR com bit de maior ordem do MPC F=(JAMN AND N) OR (JAMZ AND Z) OR NEXT_ADDRESS[8] Só há duas possibilidades para conteúdo de MPC: NEXT_ADDRESS NEXT_ADDRESS com bit de mais alta ordem submetido à operação OR com 1 23

2 Exemplo de Microarquitetura: O MIC-1: Elementos Campo JAM JMPC: 1: MPC=(8 bits de MBR) OR (8 bits menos significativos do NEXT_ADDRESS) JMPC=1: NEXT_ADDRESS = 0x000 ou 0x100 Em geral, MBR contém um código de operação (opcode) ISA 24

3 Exemplo de Nível ISA: O IJVM Pilhas Armazenamento de variáveis locais Só há duas possibilidades para conteúdo de MPC: 25

3 Exemplo de Nível ISA: O IJVM O Modelo de memória da IJVM Duas opções de visualização: Vetor de 2 32 bytes = 4 GB Vetor de 2 30 palavras (cada palavra = 4 bytes) As instruções da IJVM só podem ter acesso à memória indexando-a com ponteiros Pool de Constantes Programas IJVM não podem escrever nessa área que armazena constantes, strings e ponteiros para outras áreas da memória CPP aponta para o endereço da primeira palavra 26

3 Exemplo de Nível ISA: O IJVM O Modelo de memória da IJVM 1. Quadro de Variáveis Locais Armazena variáveis locais (procedimentos) LV aponta para a base do quadro de variáveis locais corrente 2. Pilha de Operandos Localiza-se imediatamente acima do quadro de variáveis locais SP aponta para o endereço de mais alta ordem 3. Área de Procedimento Armazena o programa PC armazena o endereço da instrução a ser executada 27

3 Exemplo de Nível ISA: O IJVM O Modelo de memória da IJVM Área de Procedimento: vetor de bytes Pool de Constantes: vetor de palavras Pilha de Operandos: vetor de palavras Quadro de Variáveis Locais: vetor de palavras 28

3 Exemplo de Nível ISA: O IJVM Conjunto de instruções da IJVM Manipulação de pilha BIPUSH byte (0x10): coloca byte na pilha DUP (0x59): copia topo e coloca no topo ILOAD varnum (0x15): coloca uma variável local no topo da pilha ISTORE varnum (0x36): retira palavra do topo e armazena numa variável local LDC_W índice (0x13): coloca no topo uma constante vinda do Pool de Constantes POP (0x57): retira da pilha a palavra do topo SWAP (0x5F): troca de posição as duas palavras do topo da pilha 29

3 Exemplo de Nível ISA: O IJVM Conjunto de instruções da IJVM Operações aritméticas IADD (0x60): retira as duas palavras do topo, soma-as e armazena o resultado no topo ISUB (0x64): retira as duas palavras do topo, subtrai-as e armazena o resultado no topo Operações lógicas IAND (0x7E): retira as duas palavras do topo, realiza um AND e armazena o resultado no topo IOR (0x80): retira as duas palavras do topo, realiza um OR e armazena o resultado no topo 30

3 Exemplo de Nível ISA: O IJVM Conjunto de instruções da IJVM Desvios Arq. e Org. de Computadores GOTO desl (0xA7): desvio incondicional IFEQ desl (0x99): retira o topo e desvia se for igual a zero IFLT desl (0x9B): retira o topo e desvia se for menor que zero IF_ICMPEQ desl (0x9F): retira as duas palavras do topo e desvia se forem iguais Chamadas de procedimentos INVOKEVIRTUAL desl (0xB6): chama um procedimento IRETURN (0xAC): retorna de um procedimento trazendo um inteiro 31

3 Exemplo de Nível ISA: O IJVM Compilação de JAVA para IJVM 32

4 Exemplo de Implementação Main 1 ) PC=PC+1; fetch; goto(mbr) nop1 ) goto Main 1 iadd1) MAR=SP=SP-1; rd iadd2) H=TOS iadd3) MDR=TOS=MDR+H; wr; goto Main 1 isub1 ) MAR=SP=SP-1; rd isub2 ) H=TOS isub3 ) MDR=TOS=MDR-H; wr; goto Main 1 dup1 ) MAR=SP=SP+1 dup2 ) MDR=TOS; wr; goto Main 1 33

4 Exemplo de Implementação bipush1 ) SP=MAR=SP+1 bipush2 ) PC=PC+1; fetch bipush3 ) MDR=TOS=MBR; wr; goto Main 1 iload1 ) H=LV iload2 ) MAR=MBRU+H; rd iload3 ) MAR=SP=SP+1 iload4 ) PC=PC+1; fetch; wr iload5 ) TOS=MDR; goto Main 1 34

5 Melhora da Performace Velocidade x Custo Metodologias para aumentar a velocidade de execução Reduzir o número de ciclos necessários à execução das instruções Simplificar a organização da máquina, de modo a reduzir o período de clock Sobrepor a execução de instruções Redução do caminho de execução 35

5 Melhora da Performace Redução do caminho de execução Arquitetura com três barramentos: inclusão de um barramento A para a entrada esquerda da UAL Unidade de busca de instruções: busca de instruções a cargo de uma unidade independente; UAL restrita à execução de instruções propriamente dita 36

5 Melhora da Performace Redução do caminho de execução 37