Projetando um Computador

Documentos relacionados
Projetando um Computador Parte II Arquitetura do Processador BIP

Conteúdos: Debora, Edcarllos, livros! slides disponíveis!

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

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

TECNOLOGIA EM MECATRÔNICA INDUSTRIAL CONTROLADORES LÓGICOS PROGRAMÁVEIS

Organização e Arquitetura de Computadores I

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Fundamentos de Arquitetura e Organização de Computadores

Oganização e Arquitetura de Computadores

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

O Conjunto de Instruções do Processador

Um Enfoque Interdisciplinar no Ensino de Arquitetura de Computadores

Arquitetura de Computadores II MIPS64. Prof. Gabriel P. Silva

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski

Sistemas Processadores e Periféricos Aula 2 - Revisão

Caminho de Dados e Controle. Prof. Leonardo Barreto Campos 1

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

Arquitetura de Computadores - Operação da Unidade de Controle. por Helcio Wagner da Silva

Arquitetura e Organização de Processadores. Aula 2. Processadores RISC Apresentação do processador MIPS

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

O Sistema de Computação

Introdução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.

UCP: Construindo um Caminho de Dados (Parte I)

Data Path / Control Path Controle do MIPS

NEANDERWIN. Algumas características do processador Neander são:

Organização de Computadores

Construção de uma via de dados, abordagem monociclo, multiciclo e pipeline

Linguagem de Montagem do NeanderX

UCP: Caminho de Dados (Parte II)

Infraestrutura de Hardware. Instruindo um Computador

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

Sistemas Numéricos. Tiago Alves de Oliveira

Arquitetura de Computadores Moderna

Arquitetura e Organização de Computadores

ção de Computadores I

Sistemas de Computação. Instruções de Linguagem de Máquina

Organização de Computadores 1

Microcontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante

Aula 17: UCP: Construindo um Caminho de Dados (Parte I)

Infra-estrutura de Hardware

Neander - características

Relembrando desempenho...

Primeiro Trabalho de POO Emulador para o Processador Winter

Projeto de Processadores Programáveis

Informática Aplicada

Relembrando desempenho...

O Funcionamento do Processador

Arquitetura FPU: Implementação MIPS32. Guilherme Fernandes Raphanelli Diogo D. Fonseca dos Santos

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

Computador Cleópatra

Linux e Computação Científica

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)

A Arquitetura: conjunto de instruções

MICROPROCESSADORES II (EMA911915) NIOS II - ASSEMBLY 2 O SEMESTRE / 2018

Organização e Projetos de Computadores. Capítulo 2. Organização e Projetos de Computadores. Instruções

Do alto-nível ao assembly

Instruções de Máquina

SSC0114 Arquitetura de Computadores

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 03

Processadores para Ensino de Conceitos Básicos de Arquitetura de Computadores

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 2. Cibele Lemos Freire Viginoski

SSC510 Arquitetura de Computadores 1ª AULA

PSI3441 Arquitetura de Sistemas Embarcados

SSC0611 Arquitetura de Computadores

Funcionamento básico de um computador

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

Figura 1. Datapath do MIPS Superescalar Especulativo CES SE

NEANDERWIN - Resumo operacional

O Processador: Via de Dados e Controle

Orientação a Objetos

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture

Arquitetura de Computadores

ção de Computadores I

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

ORGANIZAÇÃO DE COMPUTADORES

Organização de Computadores

Infra-estrutura de Hardware

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Prof. Gustavo Oliveira Cavalcanti

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

MATA49 Programação de Software Básico

ção de Computadores II

Prova Modelo. Nome: Número:

Aula 14 Funcionamento de Processadores (Visão específica)

Estruturas de Repetição

Organização e Arquitetura de Computadores I

INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA

Organização e Arquitetura de Computadores I

Arquitectura interna de um computador

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

UCP: Construindo um Caminho de Dados (Parte III)

PSI3441 Arquitetura de Sistemas Embarcados

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

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski

2. Descrição do Trabalho. Figura 1. Datapath do MIPS Superescalar CES SE

Organização e Arquitetura de Computadores I

Universidade Federal da Paraíba Centro de Informática Departamento de Informática

O Funcionamento do Processador

Conjunto de Instruções MIPS Parte IV

Transcrição:

Objetivo Projetando um Computador Parte II (2) Projetando um Computador Parte II Arquitetura do Processador BIP Apresentar as noções do funcionamento de um computador através da descrição da arquitetura de um processador básico Prof. Dr. Cesar Albenes Zeferino (zeferino@univali.br) Projetando um Computador Parte II (3) O processador pode ser escrito em diferentes níveis de abstração (com menos ou mais de talhes) Projetando um Computador Parte II (4) O primeiro nível, mais abstrato e com menos detalhes, é o nível arquitetural, que nada mais é do que a interface do programador O segundo nível, menos abstrato e com mais detalhes, é o nível organizacional, que constituise na implementação da arquitetura Mais abstrato ARQUITETURA (Interface do programador) ORGANIZAÇÃO (Implementação) Mais detalhado Projetando um Computador Parte II (5) A arquitetura refere-se a atributos que são visíveis ao programador do processador (programação em linguagem de montagem) Projetando um Computador Parte II (6) A organização refere-se a atributos que não são visíveis ao programador, sendo foco da atenção do engenheiro de computação (projetista de hardware) Processador Arquitetura Organização Memória Principal

Atributos arquiteturais de um processador Projetando um Computador Parte II (7) Tamanho da palavra de dados Número de bits do dado manipulado pelo processador Tipos de dados Tipos de dados manipulados pelo processador: inteiro (com ou sem sinal), real,... Tamanho da palavra de instrução Número de bits usados para representar uma instrução de programa Atributos arquiteturais de um processador Modos de endereçamento Projetando um Computador Parte II (8) Métodos de acesso aos dados processados pelas instruções Registradores Unidades de armazenamento internas da CPU Registradores de uso específico Registradores de uso geral Formato das instruções Estrutura utilizada para organização das instruções Largura (em bits) do campo do código da operação (OpCode) Número de operandos Largura dos operandos (em bits) Vocabulário de instruções Códigos das operações das instruções O Processador BIP BIP (Basic Instruction-set Processor) Arquitetura de 6 bits Duas versões: BIP I Projetando um Computador Parte II (9) Instruções básicas para a implementação de equações baseadas em operações aritméticas de soma e subtração com número inteiros BIP II Acrescenta instruções de desvio Tamanho da palavra de dados 6 bits Tipo de dado Inteiro com sinal Variando de 32768 a 32767 Projetando um Computador Parte II (0) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Números negativos representados em complemento 2 Tamanho da palavra de instrução 6 bits Projetando um Computador Parte II () Um formato de instrução com dois campos Código da operação de 5 bits explícto de bits que pode representar O endereço de uma variável na memória (addr) Uma constante imediata (imed) 5 4 3 2 0 9 8 7 6 5 4 3 2 0 Cód. Modos de endereçamento Projetando um Computador Parte II (2) Todas as instruções envolvem uma operação entre o operando explícito da instrução e um operando implícito O operando implícito é um registrador de uso geral do processador denominado acumulador () Tipos de modos de endereçamento Direto O dado a ser processado é uma variável na memória apontada pelo operando da instrução (endereço) Imediato o dado a ser manipulado é o próprio operando (imediato) da instrução

Registradores (Program Counter) Registrador de propósito específico Projetando um Computador Parte II (3) Indica o endereço na memória da instrução a ser executada É incrementado a cada instrução executada () para que o programa avance para a instrução seguinte (Accumulator) Registrador de propósito geral Serve para armazenamento temporário de dados no processador É um operando implícito nas instruções Modelo simplificado do processador Memória de instruções Memória de dados Projetando um Computador Parte II (4) Processador BIP / Três classes de instrução da execução do processador Aritmética Soma e subtração Transferência Projetando um Computador Parte II (5) Transferência de dados entre processador e memória e carga do acumulador Cada instrução possui um mnemônico (apelido) para facilitar a sua referência ex. ADD ao invés de 0000 Instruções de controle Projetando um Computador Parte II (6) HLT Halt paralisa a execução do programa Instruções de aritmética ADD Add Soma uma variável ao ADDI Add Immediate Soma uma constante ao SUB Subtract Subtrai uma variável do SUBI Sub. Immediate Subtrai uma constante do Instruções de transferência STO Store Copia o conteúdo do para uma variável LD Load Copia o conteúdo de uma variável para o LDI Load Immediate Carrega uma constante no Legenda: atribuição ( Cesar ) conteúdo Zeferino Projetando um Computador Parte II (7) 5 4 3 2 0 9 8 7 6 5 4 3 2 0 Cód. Cód. operação 00000 HLT Paralisa a execução 0000 STO endereço (endereço) 0000 LD endereço (endereço) 000 LDI constante constante 0000 ADD endereço (endereço) 000 ADDI constante constante 000 SUB endereço (endereço) 00 SUBI constante constante 0000 - Reservados para as futuras gerações Programação do BIP Projetando um Computador Parte II (8) Estrutura de código na linguagem de montagem Não identado Apenas uma instrução por linha Não possui marcador de fim de linha Código organizado em quatro colunas (tabuladas) Rótulos Mnemônicos (s) Comentários opcionais (precedidos do caracter ; ) Uso intensivo de comentários Um rótulo (label) é uma abstração que permite referenciar de forma facilitada um endereço do programa, tipicamente usada em instruções de desvio.

Programação do BIP Exemplo Projetando um Computador Parte II (9) Mnemônicos Comentários Rótulos s INICIO: LD A ; (A) ADD B ; (B) SUB C ; (C) STO D ; (D) ADDI 2 ; 2 STO F ; (F) FIM: Programação do BIP Projetando um Computador Parte II (20) Atribuição de A = 0; LDI 0 ; 0 uma constante STO A ; (A) Atribuição de uma variável Comando com uma operação aritmética Comando com múltiplas operações aritméticas A = B; LD B ; (B) STO A ; (A) A = A ; LD A ; (A) ADDI ; STO A ; (A) A = A B 3; LD A ; (A) ADD B ; (B) SUBI 3 ; 3 STO A ; (A) Notas () A e B são nomes de variáveis armazenadas em memória (2) Para atualizar uma variável não é necessário copiar seu conteúdo para o acumulador, salvo se a instrução utilizar esse conteúdo como fonte da operação Exercícios Ver listas de exercícios Projetando um Computador Parte II (2) Projetando um Computador Parte II (22) A organização é a implementação da arquitetura Representada por um diagrama de blocos constituído por unidades funcionais interligadas para linhas e barras que representam fios usados para transportas sinais elétricos Blocos Registrador UA Memória Principal MUX Projetando um Computador Parte II (23) Projetando um Computador Parte II (24) Busca de uma instrução / /

Projetando um Computador Parte II (25) Projetando um Computador Parte II (26) Execução da instrução LDI Execução da instrução LD / / Projetando um Computador Parte II (27) Projetando um Computador Parte II (28) Execução da instrução STO Execução da instrução ADD / / Execução da instrução ADDI Projetando um Computador Parte II (29) Organização detalhada Projetando um Computador Parte II (30) 6 ena Opcode Wr SelA SelB WrAcc Op WrRam RdRam 2 2 SelA WrAcc ena 6 0 0 SelB / 5 Op / 6 6 6 Addr Data Rd Wr Addr In_Data Out_Data

Arquitetura estendida do BIP BIP II Projetando um Computador Parte II (3) Inclui um registrador com dois bits de estado STATUS.Z (Zero) Resultado da última operação aritmética = 0 STATUS.N (Negative) Resultado da última operação aritmética < 0 Arquitetura estendida do BIP BIP II estendido de desvio incondicional Projetando um Computador Parte II (32) JMP Jump Desvia incondicionalmente Instruções de desvio condicional Devem ser precedidas por uma operação SUB ou SUBI sobre os operandos a serem comparados Inclui duas classes adicionais de instrução Desvio incondicional Muda o fluxo de execução do programa, atualizando o com o endereço de instrução especificado BEQ Branch on Equal Desvia se igual BNE Branch on Not Equal Desvia se não igual BGT Branch on Greater Than Desvia se maior que BGE Branch on Greater or Equal Desvia se maior ou igual que BLT Branch on Less Than Desvia se menor que BLE Branch on Less or Equal Desvia se menor ou igual que Desvio condicional Se a condição especificada for verdadeira, desvia para o endereço de instrução especificado Exemplo LD A SUBI 2 BLE addr ; = addr se (A) <= 2 Arquitetura estendida do BIP BIP II Projetando um Computador Parte II (33) Programação do BIP II Projetando um Computador Parte II (34) Cód. operação 0000 BEQ endereço Se (STATUS.Z=) então endereço 000 BNE endereço Se (STATUS.Z=0) então endereço 000 BGT endereço Se (STATUS.Z=0) e (STATUS.N=0) então endereço 00 BGE endereço Se (STATUS.N=0) então endereço 000 BLT endereço Se (STATUS.N=) então endereço 00 BLE endereço Se (STATUS.Z=) ou (STATUS.N=) então endereço 00 JMP endereço endereço 0 - Reservados para as futuras gerações Teste de if (A==B) { LD A ; A // Bloco SUB B ; B condição tipo BNE L if-then... ; Bloco L:... ; Bloco 2 Teste de condição tipo if-then-else if (A==B) { // Bloco else { // Bloco 3 LD A ; A SUB B ; B BNE L... ; Bloco JMP L2 L:... ; Bloco 2 L2:... ; Bloco 3 Programação do BIP II Programação do BIP II Projetando um Computador Parte II (35) Projetando um Computador Parte II (36) Laço de repetição do tipo while Laço de repetição do tipo for i = 0; while (i<0) { // Bloco i; for(i=0;i<0;i){ // Bloco LDI 0 ; 0 STO I ; I L: SUBI 0 ; - 0 BGE L2... ; Bloco LD I ; I ADDI ; STO I ; I JMP L L2:... ; Bloco 2 Igual ao laço while Laço de repetição do tipo do-while i = 0; do { // Bloco i; while (i<0) LDI 0 ; 0 STO I ; I L:... ; Bloco LD I ; I ADDI ; STO I ; I SUBI 0 ; - 0 BLT L... ; Bloco 2