capítulo 2 processadores de propósito Único: hardwareattux/cap2.pdf · os slides são, em parte,...

Post on 09-Nov-2018

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Capítulo 2 – Processadores de

Propósito Único: Hardware

Prof. Romis Attux

EA075 – 2015

Os slides são, em parte, baseados nos dos autores do livro texto.

Processadores

Processador: dispositivo capaz de computar.

Consiste de um caminho de dados capaz de processar e armazenar informação e de uma unidade de controle que o rege.

Um processador de propósito geral é capaz de realizar diversas operações (lembra uma máquina de Turing universal).

Um processador de propósito único é capaz, em geral de realizar uma tarefa em particular (lembra uma máquina de Turing específica).

Processadores de Propósito

Único Há vantagens em se projetar um sistema embarcado tendo

por base um processador de propósito único (PPU).

Primeiramente, o desempenho pode ser muito bom, já que

um caminho de dados customizado tende a ser capaz de

realizar a tarefa demandada com menos ciclos de relógio

(uma questão de simplicidade e especificidade).

O tamanho do sistema pode ser relativamente pequeno, já

que utiliza-se o “estritamente essencial”.

O consumo de potência também pode ser relativamente

pequeno pelo motivo acima.

Desvantagens

NRE potencialmente alto. Se este não for o caso, as vantagens anteriores podem não ser plenamente exploradas.

O time-to-market pode ser elevado, e a flexibilidade tende a ser reduzida em relação a processadores de propósito geral.

Motivação

Discutir técnicas para projeto de sistemas de propósito específico.

Para tanto, partiremos de uma revisão de conceitos de circuitos lógicos.

Transistores e Portas

Circuitos lógicos podem ser vistos como abstrações matemáticas, mas sua corporificação requer tecnologias específicas.

O avanço da eletrônica nas últimas décadas fez com que esse paradigma se tornasse dominante.

Atualmente, a base de circuitos lógicos é, geralmente, um transistor baseado na tecnologia CMOS (complementary metal oxide semicondutor).

Transistor CMOS

source drain

oxide

gate

IC package IC channel

Silicon substrate

Transistores e Portas Lógicas

Algumas Portas

Projeto Básico com Mapas de

Karnaugh

Componentes no Nível de RT

Flip-Flops

Flip-flops (FFs) executam o “milagre” da memória digital por meio da recursão.

Vejamos uma estrutura básica.

Componentes Sequenciais no

Nível de RT

Projeto Lógico Sequencial (I)

Projeto Lógico Sequencial (II)

Projeto de um Processador de

Propósito Único Voltamos à divisão fundamental entre

caminho de dados (datapath) e unidade de controle.

Nas figuras a seguir discutiremos como essa divisão toma forma no caso de um projeto de propósito único baseado em teoria de circuitos lógicos.

Projeto de um Processador de

Propósito Único

Cálculo do Mínimo Divisor

Comum

Comentários sobre o Diagrama

de Estados O diagrama mostrado (FSMD, finite state machine with

data) é criado seguindo uma filosofia:

◦ Cada declaração (statement) se torna uma atribuição

simples, loop ou branch.

◦ Para cada loop, cria-se um estado de condição (C) e um

estado de junção (J).

◦ Cria-se então uma conexão entre o estado de condição e

os estados do loop.

◦ Um segundo arco é criado para “pular o loop” caso a

condição desejada não seja cumprida.

◦ Por fim, coloca-se um arco de (J) para (C).

Comentários sobre o Diagrama

de Estado – Atribuição Simples

Comentários sobre o Diagrama

de Estados - Loop

Comentários sobre o Diagrama

de Estados - Branch Para cada branch, criam-se C e J. Para a primeira condição, liga-se C a

um estado associado à primeira condição do branch. O mesmo é feito para os demais casos (lembrando que o caso seguinte envolve o não cumprimento dos casos anteriores). Após isso, faz-se a ligação com J.

Por fim, liga-se o último estado a J.

Comentário sobre o Diagrama

de Estados - Branch

Preparando o Projeto

Primeiro, cada variável declarada deve ter seu

registrador. A porta de saída será tratada como um

registrador d. Desenham-se também entradas e saídas.

Cria-se uma unidade funcional para cada operação

necessária. No caso, haverá duas subtrações, uma

comparação (menor que) e uma comparação de

diferente.

Fazem-se as conexões entre pinos, registradores e

unidades funcionais. Quando mais de uma unidade se

conecta ao mesmo registrador, deve-se utilizar um

esquema de multiplexagem.

Preparando o Projeto

Por fim, cria-se um identificador único para cada entrada de controle e saída dos componentes do caminho de dados.

Usa-se então a máquina construída antes como unidade de controle, com as devidas traduções booleanas.

Deve-se então projetar a máquina usando as técnicas sequenciais discutidas.

Visão Geral – Caminho de

Dados

Visão Geral – Unidade de

Controle

Visão Geral

Visão Geral – Projeto da

Unidade de Controle

Note que, a rigor, haveria 128 linhas na tabela!

Projeto em Nível RT de

Processadores de Propósito Único Podemos também partir de uma

FMSD para realizar o projeto. Uma vantagem é que, nesse caso, tem-se uma visão clara do timing de cada ciclo.

Analisemos um exemplo de um dispositivo que faz o envio de um número de oito bits a partir de uma entrada que só suporta quatro bits de cada vez.

Projeto em Nível RT de

Processadores de Propósito Único

Projeto em Nível RT de Processadores

de Propósito Único

WaitFirst4 espera pelos primeiros quatro bits, cuja

presença é indicada por rdy_in. Quando esse pulso é

detectado, passa-se a um estado RecFirst4Start, que

grava o conteúdo de data_in em data_lo. Após o final

do pulso rdy_in, espera-se pelos 4 próximos bits,

indicados por um segundo pulso rdy_in. Grava-se o

conteúdo agora em data_hi.

Ao final do segundo pulso rdy_in, os 8 bits são

gravados em data_out e emite-se rdy_out.

Supõe-se que o circuito seja síncrono, ou seja, os

sinais todos são “ANDed” com um clock.

Projeto em Nível RT de

Processadores de Propósito Único Chega-se então à conjunção unidade

de controle e datapath dada a seguir.

Projeto em Nível RT de

Processadores de Propósito Único Note que o caminho de dados é

composto apenas pelos registradores, já que não há operações de processamento a fazer.

A unidade de controle é, basicamente, uma consequência direta da FMSD (uma FSM é feita com as mudanças em negrito).

Otimização

Um projeto otimizado pode levar a melhorias em diferentes métricas de projeto.

Portanto, o projetista deve sempre buscar soluções otimizadas quando isso for possível.

Veremos algumas possibilidades a seguir.

Otimização do Programa

Original Buscar otimização no tempo e/ou no espaço. Vejamos um exemplo:

Otimização da FMSD

Possibilidades Imediatas:

◦ Estados com constantes especificando as transições condicionais podem ser eliminados.

◦ Estados adjacentes que realizam operações independentes podem ser eliminados.

◦ Estados associados a operações complexas podem ser quebrados para reduzir o tamanho do hardware.

◦ Escalonamento: em qual estado uma operação será executada?

Exemplo

Exemplo – Versão Otimizada

Otimização do Caminho de

Dados

Economia de unidades funcionais (e.g. compartilhamento de uma ALU sem “colisões” entre estados).

Diferentes componentes no nível RT

que podem ser escolhidos.

Otimização de FSMs

Codificação dos estados Minimização dos estados, buscando

“estados equivalentes”.

top related