Projeto de Processadores Programáveis

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

SSC510 Arquitetura de Computadores 1ª AULA

Unidade Central de Processamento UCP (CPU)

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

SSC0112 Organização de Computadores Digitais I

Revisão: Projeto de Processadores em VHDL

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

Prof. Leonardo Augusto Casillo

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

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

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

Instruções de Máquina

2. A influência do tamanho da palavra

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

Microprocessadores. São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão;

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

Unidade Central de Processamento (CPU) Processador. Bernardo Gonçalves Introdução ao Computador 2008/01

Arquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani)

Sistemas Operacionais

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

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

Conceitos Básicos Processador

ORGANIZAÇÃO DE COMPUTADORES

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

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

Processador. Processador

Sistemas Digitais: Introdução

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

Organização de computadores. Aula 05

Organização de Computadores 1

Processador: Conceitos Básicos e Componentes

III.2 - Princípios de Arquitetura

Instruções. Maicon A. Sartin

COMPUTADOR 2. Professor Adão de Melo Neto

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

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade.

Computador Cleópatra

ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

AGT0001 Algoritmos Aula 01 O Computador

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

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Organização de Sistemas de Computadores

Arquitetura e Organização de Processadores. Aulas 06 e 07. Superescalaridade

Disciplina: Arquitetura de Computadores

14/3/2016. Prof. Evandro L. L. Rodrigues

Algoritmos Computacionais

Aula 06 - Máquina Multinível e Von Neumann

Arquitetura e organização de computadores Uma visão geral

AULA 01: APRESENTAÇÃO

Arquitetura de Computadores Unidade Central de Processamento CPU

FACULDADE LEÃO SAMPAIO

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

Microprocessadores MICROPROCESSADORES. Unidade de Processamento. Sumário

Organização e Arquitetura de Computadores I

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

ORGANIZAÇÃO DE COMPUTADORES

Componentes do Computador

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

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

Aula 16: UCP: Conceitos Básicos e Componentes

Relembrando desempenho...

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

Arquitetura e Organização de Computadores

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

Introdução à Computação MAC0110

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

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

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

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

Algoritmos e Lógica de Programação Componentes e Arquitetura

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

Prof. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo

Componentes de um Computador Típico

Organização e Arquitetura de Computadores I

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

Arquitetura e Organização de Computadores

Organização de Computadores (revisão) André Tavares da Silva

Arquitetura e Organização de Computadores

Organização e Arquitetura de Computadores I

SISTEMAS MICROCONTROLADOS

ULA (ALU) - UNIDADE DE ARITMÉTICA E LÓGICA

ENDEREÇAMENTO DE INSTRUÇÕES. Adão de Melo Neto

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

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

CONJUNTO DE INSTRUÇÕES

Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial

Transcrição:

Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Projeto de Processadores Programáveis DCA0119 Sistemas Digitais Heitor Medeiros Florencio

Sumário Processadores de propósitos gerais. Arquitetura básica do datapath: ULA e registradores. Operações básicas do datapath. Arquitetura básica do controlador: contador de programa (), registrador de instrução () e bloco de controle. Operações básicas do controlador. Exemplos de projetos de processadores de propósitos gerais. Processador AMR7. Projeto de um processador programável de três instruções. Projeto do processador programável BIP I.

Introdução Processadores de propósitos gerais: Circuito digital cuja tarefa de processamento em particular, ao invés de ser construída no próprio circuito, fica armazenada em uma memória. Processador de propósito único para luz de alerta de cinto de segurança e 3 2 1 0 2x4 x(t) x(t-1) x(t-2) c0 c1 c2 xt0 xt1 + xt2 + reg Processador de propósito único para filtro F de 3 taps Programa para luz de alerta de cinto de segurança Instruction memory I 0 Programa para filtro F Data memory D n-bit 2x1 Register file RF ALU Datapath Processador de propósitos gerais Outros a programas

Arquitetura Básica do Datapath Processamento consiste de: Carregar os dados. Transformar (processar) os dados. Armazenar os dados. Datapath: Uma memória de dados guarda todos os dados que um processador programável poderá acessar. Um processador programável precisa: carregar os dados da memória em um banco de registradores. alimentar unidade funcionais para executar as operações necessários. carregar os dados resultantes de volta nos registradores e na memória. Data memory D n-bit 2x1 Register file RF ALU Datapath Conectado de alguma forma ao mundo exterior

Operações básicas do Datapath Operação de carga: essa operação carrega (lê) dados da memória para colocar no banco de registradores. Operação da ULA: essa operação transforma dados de dois registradores Operação de armazenamento: essa operação armazena dados na memória. Data memory D Data memory D Data memory D n-bit 2x1 n-bit 2x1 n-bit 2x1 Register file RF Register file RF Register file RF ALU ALU ALU Operação de carga Op. de ULA Op. de armazenamento

Operações básicas do Datapath Exemplo: D[9] = D[0] + D[1]: é necessário descrever a sequencia de operações: 0: RF[0] = D[0] 1: RF[1] = D[1] 2: RF[2] = RF[0] + RF[1] 3: D[9] = RF[2] Essas instruções formam o programa. As instruções foram armazenadas na memória de instruções. O controlador lê cada instrução e então executa no datapath utilizando os registradores: : controlador de programa. : registrador de instrução. Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] Data memory D n-bit 2x1 Register file RF ALU Datapath

Controlador O controlador é responsável por: saber a posição da próxima instrução na memória. Através do registrador: contador de programa (). armazenar a atual instrução no registrador de instrução (). decodificar a instrução. requisitar a execução da instrução pelo datapath. Partes básicas de um controlador: Contador de programa () Registrador de instrução () Bloco de controle Instruction memory I

Exemplo: operações do controlador Exemplo: Ações do controlador: Buscar a instrução. Decodificar a instrução. Ativar a execução da instrução. Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] 0 1 RF[0]=D[0] Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] 1 RF[0]=D[0] Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] 1 RF[0]=D[0] Data memory D D[0]: 99 n-bit 2x1 Register file RF R[0]:?? 99 (a) Fetch (b) Decode "load" Execute (c) Datapath ALU

Exemplo: operações do controlador Exemplo: Ações do controlador: Buscar a instrução. Decodificar a instrução. Ativar a execução da instrução. Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] 1 2 RF[1]=D[1} Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] 2 RF[1]=D[1] Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] 2 RF[1]=D[1] Data memory D D[1]: 102 n-bit 2x1 Register file RF R[1]:?? 102 (a) Fetch (b) Decode "load" Execute (c) Datapath ALU

Exemplo: operações do controlador Exemplo: Ações do controlador: Buscar a instrução. Decodificar a instrução. Ativar a execução da instrução. Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] 2 3 (a) Fetch RF[2]=RF[0]+RF[1] Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] 3 (b) Decode RF[2]=RF[0]+RF[1] "ALU (add)" Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] 3 RF[2]=RF[0]+RF[1] Execute (c) Data memory D n-bit 2x1 Register file RF R[2]:?? 201 Datapath 99 102 ALU 201

Exemplo: operações do controlador Exemplo: Ações do controlador: Buscar a instrução. Decodificar a instrução. Ativar a execução da instrução. Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] 3 4 D[9]=RF[2] Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] 4 D[9]=RF[2] Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] 4 D[9]=RF[2] Data memory D D[9]=?? 201 n-bit 2x1 Register file RF R[2]: 201 (a) Fetch (b) Decode "store" Execute (c) Datapath ALU

Arquitetura Básica do Controlador De acordo com o exemplo anterior, observa-se que o controlador executa uma máquina de estados de três estágios básicos: Init =0 Fetch Decode =I[] =+1 busca, decodificação e execução. Execute Processadores de múltiplos ciclos.

Controlador - Operações Estágios de processamento: 1. Primeiro busca-se a instrução. Para isso, carrega-se a instruções corrente em e incrementa-se o para a próxima busca. = Memória () = + 1 Somador Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] Datapath Data memory D n-bit 2x1 Register file RF ALU

Controlador - Operações Estágios de processamento: 2. Segundo, decodifica-se a instrução para determinar qual é a operação. 3. Finalmente, executa-se a operação. Para isso, se for o caso, são ativadas as linhas de controle apropriadas para o datapath. Se a operação for do datapath, a operação poderá ser um dos três tipos: Carregar dado. Transformar dados. Armazenar dado. Instruction memory I 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] Data memory D n-bit 2x1 Register file RF ALU Datapath

Tópicos relevantes sobre o projeto A análise do projeto de um processador é dividido em duas partes: organização e arquitetura do processador. Arquitetura Organização Nível de abstração

Tópicos relevantes sobre o projeto A análise do projeto de um processador é dividido em duas partes: organização e arquitetura do processador. Modelo de arquitetura: Von Neumann e Harvard. Tamanho da palavra de dados: Número de bits do dado processado. Tamanho da palavra de instrução: Número de bits da instrução. Formato da instrução. Modos de endereçamento: Modos de acesso aos dados na(s) memória(s). Registradores. Conjunto de instruções. Arquitetura Organização Implementação da arquitetura.

Organização de Computadores Arquitetura Organização Implementação da arquitetura. Instruction memory Data memory D n-bit 2x1 Register file RF ALU Datapath

Tópicos relevantes sobre o projeto Modelo de arquitetura: Harvard. Bus de Endereços da MP Bus de Endereços da MD Bus de Dados da MP C P U Bus de Dados da MD Bus de Controle MEMÓRIA DE DADOS MEMÓRIA DE PROGRAMA UNIDADES DE E/S

Tópicos relevantes sobre o projeto Modelo de arquitetura: Von Neumann. CPU ALU Unidade de controle Bus de Endereços Bus de Dados Bus de Controle MEMÓRIA DE DADOS E DE PROGRAMA UNIDADES DE E/S

Tópicos relevantes sobre o projeto Modelo de arquitetura: Von Neumann. Memória de dados Memória de programa Data memory D Instruction memory n-bit 2x1 Register file RF ALU Datapath

Exemplos de projetos de processadores de propósitos gerais

Exemplo 1: Processador AMR7 Processador AMR7: arquitetura RISC; tamanho da palavra de dados de 32 bits; tamanho da palavra de instrução de 16 bits ou 32 bits;

Exemplo 2: Processador de três instruções Exemplo 2: Projeto de um processador programável de três instruções. Modelo de arquitetura: Von Neumann. Tamanho da palavra de dados: 16 bits. Tamanho da palavra de instrução: 16 bits. Formato da instrução (16 bits): operação operandos 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Modos de endereçamento: direto. Acesso direto à memória através do endereço de memória.

Exemplo 2: Processador de três instruções Conjunto de instruções: lista de instruções disponíveis. Instrução carregar: 0000 r 3 r 2 r 1 r 0 d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 Instrução armazenar: 0001 r 3 r 2 r 1 r 0 d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 Instrução somar: 0010 ra 3 ra 2 ra 1 ra 0 rb 3 rb 2 rb 1 rb 0 rc 3 rc 2 rc 1 rc 0 Desired program 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2} a Instruction memory 0: 0000 0000 00000000 1: 0000 0001 00000001 2: 0010 0010 0000 0001 3: 0001 0010 00001001 I opcode operands

Exemplo 2: Processador de três instruções Desired program 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2} Instruction memoryi 0: 0000 0000 00000000 1: 0000 0001 00000001 2: 0010 0010 0000 0001 3: 0001 0010 00001001 Computes D[9]=D[0]+D[1] Data memory D n-bit 2 1 Register file RF ALU Datapath

Exemplo 2: Processador de três instruções Outro programa exemplo na memória de instruções: Calcular: D[5] = D[5] + D[6] + D[7] 0: 0000 0000 00000101 // RF[0] = D[5] 1: 0000 0001 00000110 // RF[1] = D[6] 2: 0000 0010 00000111 // RF[2] = D[7] 3: 0010 0000 0000 0001 // RF[0] = RF[0] + RF[1] // which is D[5]+D[6] 4: 0010 0000 0000 0010 // RF[0] = RF[0] + RF[2] // now D[5]+D[6]+D[7] 5: 0001 0000 00000101 // D[5] = RF[0]

Exemplo 2: Código de máquina x código assembly Código de máquina é um programa representado apenas por 0s e 1s. Facilidade para o programador: código em assembly. Instrução carregar: MOV Ra, d RF[a] = D[d]; Instrução armazenar: MOV d, Ra D[d] = RF[a]; Instrução somar: ADD Ra, Rb, Rc RF[a] = RF[b] + RF[c]; Programa: 0: RF[0]=D[0] 1: RF[1]=D[1] 2: RF[2]=RF[0]+RF[1] 3: D[9]=RF[2] 0: 0000 0000 00000000 1: 0000 0001 00000001 2: 0010 0010 0000 0001 3: 0001 0010 00001001 Código de máquina 0: MOV R0, 0 1: MOV R1, 1 2: ADD R2, R0, R1 3: MOV 9, R2 Código em assembly

Exemplo 2: Descrição do processador de três instruções Máquina de estado de alto nível do processador [1º passo do projeto RTL]. Init :=0 Busca :=I[] :=+1 Decodificador op=="0000" op=="0001" op=="0010" Carregar RF[ra]:=D[d] Armazenar D[d]:=RF[ra] Somar RF[ra] := RF[rb]+ RF[rc]

Exemplo 2: Projeto do processador de três instruções addr 16 clr up _clr rd I_rd _inc data 16 Id 16 I _ld D_addr 8 D_rd D_wr RF_s addr rd 256x16 wr W_data R_data s 16 1 16-bit 2x1 16 0 D Controlador RF_W_addr RF_W_wr RF_Rp_addr RF_Rp_rd RF_Rq_addr RF_Rq_rd 4 4 4 W_data W_addr W_wr Rp_addr Rp_rd Rq_addr Rq_rd 16x16 RF 16 Rp_data Rq_data alu_s0 16 16 s0 A B ALU Datapath 16

Exemplo 2: Controlador Máquina de estado finito do bloco controlador [3º passo do projeto RTL].

Exemplo 3: Processador BIP A família de processadores BIP (Basic Instruction-set Processor) foi desenvolvida por pesquisadores do Laboratório de Sistemas Embarcados e Distribuídos da Universidade do Vale do Itajaí UNIVALI. Projeto do processador BIP I: Arquitetura RISC do microcontrolador PIC (Programmable Intelligent Computer). Tamanho da palavra de dados e de instrução: 16 bits. Máquina orientada a acumulador e não possui banco de registradores. Todas as operações envolvem o acumulador (registrador especifico).

Exemplo 3: Atributos de arquitetura do Processador BIP Atributos de arquitetura do projeto do processador BIP I:

Exemplo 3: Atributos de arquitetura do Processador BIP Processador BIP I: formato da instrução. Processador BIP I: conjunto de instruções.

Exemplo 3: Processador BIP Modelo simplificado do processador BIP I: O processador BIP I foi projetado para executar 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.

Ex. 3: Processador BIP I Organização detalhada

Ex. 3: BIP I - Datapath

Ex. 3: Executando instruções no BIP I

Exemplo 3: Processador BIP I O Bipide é uma Ambiente de Desenvolvimento Integrado educacional que permite relacionar os conceitos de lógica de programação com o hardware dos processadores BIP. Esse ambiente possibilita a criação de algoritmos e sua simulação na organização dos processadores BIP. http://bipide.com.br/ Utilize o Bipide para analisar as instruções.

Referências VAHID, Frank. Sistemas Digitais: projeto, otimização e HDLs. Bookman, 2008. Zeferino, Cesar Albenes. Projetando um Computador: Parte II Arquitetura do Processador BIP. Notas de aula. Disponível em: http://bipide.com.br/. Acesso em: 15/02/2016. Pereira, Rodrigo. PROCESSADORES PROGRAMÁVEIS - como projetar um processador em VERILOG - Organização - parte 2. Disponível em: http://www.embarcados.com.br/. Acesso em: 16/02/2016.

Dúvidas? Dúvidas por email: heitorm@dca.ufrn.br 40