Nível da Microarquitetura

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

Nível da Microarquitetura

Capítulo 4 Nível da microarquitetura

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

18/10/2010. Unidade de Controle Controle. UC Microprogramada

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

Organização de Computadores

TE Arquitetura e Organização de Computadores

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

Introdução à Computação: Máquinas Multiníveis

Organização e Projeto de Computadores

Instruções de Máquina

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

William Stallings Organização de computadores digitais. Capítulo 14 Operação da Unidade de Controle

Processador: Conceitos Básicos e Componentes

Organização e Arquitetura de Computadores I

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Arquitetura e Organização de Computadores

Unidade Central de Processamento UCP (CPU)

Hardware e Software. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Unidade II. Organização de Computadores. Prof. Renato Lellis

2. A influência do tamanho da palavra

Arquitetura e Organização de Computadores

Aula 16: UCP: Conceitos Básicos e Componentes

Arquitetura de Computadores - Controle Microprogramado. por Helcio Wagner da Silva

Parte Operativa x Controle Aula 12. Prof. Jadir Eduardo Souza Lucas Universidade Federal do Espírito Santo Departamento de Informática

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

Organização de Computadores Aula 05

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE DE CONTROLE E A INTERPRETAÇÃO DE INSTRUÇÕES. Prof. Dr. Daniel Caetano

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

Unidade de Controle. Sinais e temporização da busca de instrução. Prof. Eduardo Appel

2. A influência do tamanho da palavra

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE DE CONTROLE E A INTERPRETAÇÃO DE INSTRUÇÕES. Prof. MSc. Tiago Alves de Oliveira

Circuitos Integrados. Nível da Lógica Digital (Aula 7) Circuitos Combinacionais. Circuitos Lógicos Digitais Básicos. Multiplexadores (1)

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Arquitetura de Computadores. Ciclo de Busca e Execução

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

SSC510 Arquitetura de Computadores 1ª AULA

Organização e Arquitetura de Computadores INTRODUÇÃO

FUNCIONAMENTO DO COMPUTADOR. Adão de Melo Neto

Nível da Arquitetura do Conjunto das Instruções

Organização de Sistemas de Computadores

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE DE CONTROLE E A INTERPRETAÇÃO DE INSTRUÇÕES. Prof. Dr. Daniel Caetano

COMPUTADOR 2. Professor Adão de Melo Neto

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

Processador. Processador

Latch SR (Set/Reset)

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Arquitetura e Organização de Computadores

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

Disciplina: Arquitetura de Computadores

Prof. Leonardo Augusto Casillo

COMPUTADOR. Adão de Melo Neto

Introdução (Aula 2) Introdução Arquitetura de Hardware. Organização Estruturada de Computadores. Introdução Conceitos (2) Introdução Conceitos (1)

ARQUITETURA DE COMPUTADORES

Barramento. Prof. Leonardo Barreto Campos 1

COMPUTADOR. Adão de Melo Neto

Instruções. Maicon A. Sartin

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples

Introdução à Computação: Arquitetura von Neumann

ORGANIZAÇÃO DE COMPUTADORES O PROCESSADOR E SEUS COMPONENTES

Estrutura Básica de um Computador

SSC0112 Organização de Computadores Digitais I

Organização de Sistemas Computacionais Processadores: Organização da CPU

Estrutura da CPU Organização de registradores Ciclo de instrução

Estrutura e Funcionamento da CPU. Adriano Maranhão

Infraestrutura de Hardware. Funcionamento de um Computador

25/8/2010. Praticamente todas as arquiteturas de computadores fornecem mais de um modo de

Arquitetura de Microprocessadores

Arquitetura de Computadores Aula 10 - Processadores

SSC0112 Organização de Computadores Digitais I

Organização e Arquitetura de Computadores I

Nível da Lógica Digital

Solução Lista de Exercícios Processadores

UCP: Caminho de Dados (Parte II)

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Organização de Computadores

Capítulo 3 Organização Interna de um Computador

Introdução. (Aula 2) Organização Estruturada de Computadores

Elementos Físicos do SC e a Classificação de Arquiteturas

Organização de Computadores

UNIDADE DE CONTROLE (IMPLEMENTAÇÃO POR HARDWARE) Adão de Melo Neto

ORGANIZAÇÃO DE COMPUTADORES

Organização e Arquitetura de Computadores. Leslier S. Corrêa

ORGANIZAÇÃO DE COMPUTADORES

Arquitetura e organização de computadores

Arquitectura de Computadores LEEC/MEEC (2006/07 2º Sem.)

INTRODUÇÃO A ARQUITETURA DE COMPUTADORES FELIPE G. TORRES

Conjunto de Instruções

Arquitetura de Computadores Unidade Central de Processamento CPU

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio

Sistemas Operacionais

Unidade Central de Processamento 2. Registradores

Arquitetura de Computadores. Prof. João Bosco Jr.

Arquiteturas de Computadores

Transcrição:

Nível da Microarquitetura (Aula 10) Máquina de Vários Níveis Modernas (ISA) Interpretação (microprograma) ou execução direta ou microarquitetura Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Agradecimentos: Camilo Calvi - LPRM/DI/UFES 2 Nível da Microarquitetura (1) Função: implementar a camada ISA O projeto do nível de microarquitetura depende do conjunto de instruções no nível ISA Inicia-se o conceito de programa como uma seqüência de instruções a serem executadas diretamente pelos circuitos eletrônicos. A maior parte destas instruções envolve a movimentação de dados através do caminho de dados, ou alguns testes simples. Em alguns computadores (ex. CISC), a operação do caminho de dados é controlada por um programa conhecido como microprograma. Nível da Microarquitetura (2) O microprograma é um interpretador cuja função geral é buscar, decodificar e executar instrução por instrução do nível ISA (i.e. instrução de máquina) Cada instrução de máquina é interpretada e pode dar origem à execução de muitas microinstruções. Instrução de Máquina Microprograma (Interpretação) Microinstrução 1 Microinstrução 2... Microinstrução N Hardware (Microarquitetura) 3 4

Nível da Microarquitetura (3) Microprograma Função: buscar, decodificar e executar as instruções (de máquina), uma a uma, usando o caminho de dados para a realização de uma tarefa. Exemplo: Execução de uma instrução de SOMA (ADD) A instrução deve ser buscada na memória, seus operandos devem ser localizados e trazidos para os registradores, a soma deve ser calculada na ULA, e o resultado deve ser encaminhado para o lugar apropriado O microprograma é um conjunto de microinstruções. Ele é armazenado numa memória ROM do processador, chamada control store, ou memória de controle. Cada microinstrução especifica os sinais de controle necessários para controlar a microarquitetura. Nível da Microarquitetura (4) Hardware (Microarquitetura) Em geral, enxerga-se: Um conjunto de 8 a 32 registradores O circuito da ULA (Unidade Lógica e Aritmética) Os registradores e a ULA são conectados para formar o Caminho de Dados (Data Path), estrutura sobre a qual os dados fluem. A operação básica do caminho de dados Seleção de um-dois registradores para que a ULA opere sobre eles 5 6 Esquematizando a Microarquitetura (1) Esquematizando a Microarquitetura (2) Uma Microarquitetura é dividida em uma Parte Operativa e uma Parte de Controle Parte Operativa (ou Caminho de Dados) Constituída de todos os componentes responsáveis pela execução das operações elementares sobre os dados (transformações nos dados) Parte de Controle Constituída de circuitos sequenciais e/ou memória de microprograma que gera o controle ciclo-a-ciclo da parte operativa (Caminho de Dados) - registradores - ULA... - registradores - (memória de controle) - circuitos seqüenciais... 7 8

Um Exemplo de Microarquitetura (1) Não existem os princípios gerais de projeto de microarquitetura. Depende do conjunto de instruções do nível ISA Exemplo de microarquitetura adotado: MIC1 Um subconjunto da Máquina Virtual Java, em que há apenas instruções inteiras -> IJVM. Nossa microarquitetura conterá um microprograma Considere que cada instrução no nível ISA corresponde a uma função a ser chamada pelo programa principal (microprograma) Cada função, formada por uma sequência de microinstruções, define os passos a serem executados na microarquitetura Um Exemplo de Microarquitetura (2) Programa Principal: Composto por um loop que determina a função a ser chamada. E assim sucessivamente. O microprograma tem um conjunto de variáveis que representam o estado do computador Cada função (que corresponde a uma instrução ISA) muda no mínimo uma das variáveis que formam o estado. Na prática, essas variáveis correspondem aos registradores do sistema 9 10 Um Exemplo de Microarquitetura (3) Caminho de Dados (Parte Operativa) Contém a ULA e todas as suas entradas e saídas 6 linhas de seleção (F 0,F 1, ENA, ENB, INVA, INC) 2 entradas de dados (complemento de dois) 1º : sempre do registrador H (Holding) 2º : Qualquer um dos outros registradores, excluindo o H e MAR Conjunto (array) de registradores Esses registradores só podem ser acessados no nível da microarquitetura (ou seja, pelo microprograma). Em geral, esses registradores correspondem a variáveis (mesmo nome) utilizadas no nível ISA. Um Exemplo de Microarquitetura (4) MAR: Memory Address Register MDR: Memory Data Register PC: Program Counter MBR: Memory Buffer Register SP: Stack pointer (aponta para o topo da pilha) LV: Local Variables (Quadro de variáveis Locais) CPP: Constants Pool Pointer (Ponteiro para o Pool de Constantes) TOS: Top Of Stack (Guarda o conteúdo de memória apontado por SP) OPC: OPeration Code (Registrador temporário em algumas instruções) H (holder) 11 12

Um Exemplo de Microarquitetura (5) Operação da Memória Na execução de um programa há, em geral, quatro regiões logicamente distintas na memória, que possuem funções específicas. Região de Código do Programa Região de DADOS (Variáveis Globais) Pilha (Stack): dentre os diversos usos se destacam o endereço de retorno das chamadas de função, argumentos para funções e variáveis locais, além de guardar o estado atual da CPU. Heap: geralmente uma região de memória livre que um programa pode usar para alocação dinâmica de memória (por exemplo) Um Exemplo de Microarquitetura (6) Operação da Memória (cont.) Uma microarquitetura executa instruções que são armazenadas na memória Instruções de um programa são executadas segundo uma ordem precisa Uma microarquitetura necessita saber, sempre, qual a próxima instrução a ser executada Necessidade de um registrador apontador de programa (PC) Necessidade de realização de operações sobre o conteúdo do PC, para atualização a cada instrução executada Existem duas portas de memória usadas pela máquina para se comunicar com a memória Uma porta de 32 bits, que endereça palavras: controlada pelos registradores MAR e MDR Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR Apenas de leitura 13 14 Um Exemplo de Microarquitetura (7) O PC lê um byte da memória e o coloca nos 8 bits menos significativos do registrador MBR MBR Memory Buffer Register Uma porta para leitura de dados usada quando se deseja ler da memória dados de apenas 8 bits. Diferença na funcionalidade de MAR e PC Eles são usados para referenciar duas partes diferentes da memória MAR/MDR é usada para ler/escrever palavras de dados pertencentes ao nível ISA PC/MBR é usada para ler o programa executável (programa constituído por um grupo de bytes). Um Exemplo de Microarquitetura (8) Operação da Memória (cont.) Transferência de Dados entre a MP e a CPU É realizada com o uso de dois registradores especiais (para dados de 32 bits). MAR Memory Address Register REM Registrador de Endereços de Memória Armazena o endereço da memória, onde será lida ou gravada uma palavra. Tamanho deve permitir acesso a todos os N endereços da memória MDR Memory Data Register RDM Registrador de Dados da Memória Armazena a representação da informação (palavra) a ser transferida. Tamanho é, em geral, igual ao da palavra. 15 16

RAM Barramento de Endereço Barramento de Dados Um Exemplo de Microarquitetura (10) Leitura de um dado A CPU coloca em MAR, o endereço da posição cujo conteúdo deve ser lido A CPU comanda uma leitura (sinal de controle para a memória - READ) MAR -> barramento de endereço O conteúdo (palavra) da posição do endereço contido em MAR, é então transferido para o MDR barramento de dados -> MDR Escrita de um dado A CPU coloca em MAR o endereço de memória onde a palavra será gravada, e em MDR a palavra a ser gravada. A CPU comanda uma gravação (sinal WRITE) MAR -> barramento de endereço MDR -> barramento de dados A palavra armazenada em MDR é então transferida para a posição de memória cujo endereço está em MAR. 17 18 Um Exemplo de Microarquitetura (11) O MAR guarda o endereço de uma palavra de 32 bits (devido às necessidades da JVM... nível ISA) MAR = 0 => palavra 0 => bytes 0-3 MAR = 1 => palavra 1 => bytes 4-7 MAR = 2 => palavra 2 => bytes 8-11 Temporização do Caminho de Dados (1) Na implementação física, a memória é orientada a byte (cada byte é uma célula, cada célula tem um endereço único) Quando o MAR é colocado no barramento de endereço, seus 32 bits NÃO são mapeados diretamente nas linhas 0 a 31 do barramento (através do barramento C) 19 20

Temporização do Caminho de Dados (2) O ciclo do caminho de dados pode ser dividido em subciclos O início do primeiro subciclo é marcado pela transição negativa do clock 1. Os sinais de controle são ativados ( w) 2. O barramento B é carregado a partir dos registradores ( x) 3. A ALU e o shifter (deslocador) operam ( y) 4. O resultado da operação da ALU e do deslocador se propaga através do barramento C em direção aos registradores ( z) O resultado é armazenado nos registradores na próxima transição positiva do clock Os subciclos são implícitos As fronteiras entre os subciclos são determinadas pelos tempos de propagação inerentes aos circuitos envolvidos Os engenheiros do projeto devem assegurar que a transição positiva do clock, que marca a carga dos registradores, ocorra depois de w+ x+ y+ z Microarquitetura: Parte de Controle (1) Microprogramação envolve: Memória para armazenar o microprograma Memória de controle Código do microprograma Microisntruções Seqüenciamento de microinstruções Corresponde à ordem de execução do microprograma Registrador de controle, contendo a microinstrução corrente, que deve ser executada MIR: MicroInstruction Register Seus bits alimentam os sinais de controle que operam o caminho de dados 21 22 Microarquitetura: Parte de Controle (2) Caminho de dados Exemplo de Microarquitetura: Microinstruções (1) Para controlar o caminho de dados anterior (slide 10), precisa-se de 29 sinais, que podem ser divididos em grupos funcionais. 9 sinais para controlar a escrita de dados do barramento C nos registradores 9 sinais para controlar a habilitação da saída dos registradores para o barramento B, para compor as entradas da ULA. 8 sinais para controlar as funções da ULA e do deslocador. 2 sinais para indicar leitura/escrita da memória por intermédio de MAR/MDR 1 sinal para indicar a busca na memória por intermédio de PC/MBR. Os valores desses 29 sinais de controle especificam as operações a serem executadas em um ciclo do caminho de dados. 23 24

Exemplo de Microarquitetura: Microinstruções (2) Como reduzir o número de sinais? Se por um lado, o valor do barramento C pode ser escrito em mais de um registrador, apenas um registrador poderá ter a saída habilitada para o barramento B! Usando um decodificador, é possível codificar em apenas 4 bits o registrador que vai colocar seus dados no barramento B Apenas 9 das 16 saídas do decodificador são usadas Agora só precisamos de 9 + 4 + 8 + 2 + 1 = 24 sinais Exemplo de Microarquitetura: Microinstruções (2) Formato possível de microinstrução no exemplo Mic-1. Campos adicionais para determinar o que precisará ser feito no próximo ciclo Cada microinstrução especifica explicitamente a sua sucessora 25 26 Exemplo de Microarquitetura: Microinstruções (3) Em suma, os sinais da microinstrução são divididos: Endereço (Addr): contém o endereço da próxima microinstrução a ser potencialmente ativada. Desvio (JAM): determina como a próxima microinstrução será selecionada (usando ou não Addr). ALU : especifica as funções da ULA e do deslocador. C: seleciona qual ou quais registradores serão carregados com o valor que estiver no barramento C. Memória (Mem): especifica as funções da memória. B: seleciona a entrada do barramento B. Controle Microprogramado Mic-1 (1) A decisão sobre quais sinais de controle devem ser habilitados em cada ciclo é determinada por um seqüenciador. Seqüenciador: responsável pela execução de todos os passos necessários à execução de uma única instrução no nível ISA Controla a sequência de microinstruções necessárias p/ executar cada instrução de máquina (ISA) 27 28

Controle Microprogramado Mic-1 (2) Controle Microprogramado Mic-1 (3) Produz dois tipos de informação a cada ciclo: 1 O estado de cada sinal de controle do sistema. Na prática o seqüenciador define a microinstrução que é colocada no MIR 2 O endereço da microinstrução que será executada em seguida O seqüenciador determina o endereço da próxima microinstrução em função da microinstrução corrente (que encontra-se no MIR) Esse endereço uma vez determindado, é armazendado em um registrador, o MPC (MicroProgram Counter) Desta forma, o MPC contém o endereço da próxima microinstrução a ser executada (localizada na memória de controle) 29 30 Controle Microprogramado Mic-1 (4) (JAMZ AND Z) OR (JAMN AND N) OR ADDR[8] [bit 8] [bit 7..0] se JMPC= 0 =>ADDR[7..0] se JMPC = 1 =>MBR Controle Microprogramado Mic-1 (5) As microinstruções são lidas em seqüência e esta sequência pode ser quebrada através de instruções de desvio. Para se fazer um desvio, seleciona-se a próxima instrução através de microinstruções do tipo jump. Desvios podem ser condicionais ou incondicionais. Nos desvios condicionais, flags são testados para verificar condição de desvio. DE CONTROLE JAMZ: salta se Z JAMN: salta se N JMPC: salta p/ end. armazenado em MBR ADDR J A M 8 3 bits bits MIR 31 32

Controle Microprogramado Mic-1 (6) Resumo O caminho de dados é o coração de um processador. Nele estão alguns registradores, dois barramentos e uma ou mais unidades funcionais (ULAs e deslocadores). O principal loop de execução é composto pela busca de alguns operandos dos registradores e pelo envio desses operandos para a ULA, com o intuito de executar uma operação sobre eles. Os resultados dessa operação são armazenados de volta nos registradores. O seqüenciador exerce o controle sobre o caminho de dados, buscando as microinstruções em uma memória de controle. Cada microinstrução tem um conjunto de bits que controla o caminho de dados durante um ciclo. Esses bits especificam os operandos a serem selecionados, as operações a serem executadas e o que fazer com os resultados dessas operações. Além disso, cada microinstrução especifica a sua sucessora potencial (em geral em um campo da própria microinstrução). 33 34 Microarquitetura MIC4 Implementação de um Pipeline subdividindo o estágio de execução das microinstruções. Observe a existência de 4 MIR, cada um controlando um estágio do pipeline Estágios do Pipeline do MIC4 Conclusão O que pode se concluir de microprogramação? Ela é bem chata :-) Mas falando sério... Microprogramação é uma técnica poderosa que permite implementar instruções complexas de um repertório grande de instruções, num hardware simples. 35 36

Referências Andrew S. Tanenbaum, Organização Estruturada de Computadores, 5ª edição, Prentice-Hall do Brasil, 2007. 37