Capítulo 1 - Introdução - DCA | FEEC - Faculdade de ...attux/cap1.pdf · número de transistores...

54
Capítulo 1 - Introdução Prof. Romis Attux EA075 2015 Obs: Os slides se baseiam, em parte, nos dos autores do livro-texto.

Transcript of Capítulo 1 - Introdução - DCA | FEEC - Faculdade de ...attux/cap1.pdf · número de transistores...

Capítulo 1 - Introdução

Prof. Romis Attux

EA075 – 2015

Obs: Os slides se baseiam, em parte, nos dos autores do livro-texto.

Sistemas Embarcados

O acesso aos computadores pessoais vem

crescendo de maneira vertiginosa nos últimos

anos, e esse crescimento tem sido reforçado

pela maior acessibilidade à internet.

Os sistemas embarcados, que formam a base de

nosso curso, não são o que classicamente

chamamos de computadores pessoais

(desktops, laptops, notebooks etc.), mas sim,

computadores que estão embutidos em outros

dispositivos.

Sistemas Embarcados

Atualmente, o número de sistemas embarcados é muito

maior que o número de “computadores clássicos”.

Esses sistemas se encontram em aplicações como

celulares, modems, câmeras, veículos, televisões etc.

Em contraste com os computadores pessoais, que são

usados para realizar múltiplas funções, os sistemas

embarcados, em geral, realizam uma função única e

bem definida.

Sistemas Embarcados

O caráter acessório desses sistemas gera uma série de restrições peculiares de projeto, como: tamanho, consumo, desempenho etc.

Também é comum que sistemas embarcados possuam restrições rígidas de resposta em tempo real, como no contexto de controle e segurança.

Exemplo

Função única, baixo consumo, custo reduzido, resposta adequada etc.

Internet das Coisas

Atualmente está em voga o conceito de internet das coisas, ou seja, de que haja uma ampla conectividade entre os aparelhos eletrônicos de uso comum.

Isso certamente trará muitos desafios

do ponto de vista de projeto de sistemas embarcados eficientes.

Métricas de Projeto

Uma métrica de projeto é uma característica mensurável da implementação de um sistema embarcado. Discutiremos a seguir uma série de métricas importantes.

Métricas de Projeto

NRE Cost: Nonrecurring engineering cost – custo fixo

(em dinheiro) necessário para projetar um sistema, ou

seja, um custo invariante à quantidade de unidades

produzidas.

Custo por unidade: custo de manufatura de uma

unidade (descontado o NRE).

Tamanho: medido em bytes (software) ou portas /

transistores (hardware).

Desempenho: tempo de execução do sistema.

Potência: métrica que afeta o consumo da bateria e

também influi nas necessidades de resfriamento.

Métricas de Projeto

Flexibilidade: capacidade de alterar funcionalidades do

sistema sem incorrer em NRE expressivo.

Time-to-Prototype (TTP): Tempo necessário para se

projetar uma versão funcional do sistema, que pode ser

maior que o tempo de construção na linha final, mas

que serve para testar a adequação da idéia realizada.

Time-to-Market (TTM): Tempo necessário até que se

possa fazer o produto chegar aos consumidores.

Envolve o tempo de projeto, manufatura e teste.

Métricas de Projeto

Capacidade de manutenção: possibilidade de modificar o sistema após o lançamento, especialmente por quem não o projetou.

Correção: confiança de que o sistema realizará aquilo que é a sua meta.

Segurança: a probabilidade de que o sistema não causará danos.

Conflitos

Essas métricas são tipicamente conflitantes, o que quer dizer que o projeto de um sistema embarcado é uma tarefa multiobjetivo.

É preciso analisar cada situação e

buscar um projeto eficiente, que priorize o que é mais relevante e que não seja dominado por um design ainda mais apropriado.

Conflitos - Ilustração

Size Performance

Power

NRE cost

TTM

O tempo até o lançamento de um produto no mercado (TTM) é uma métrica que pode ser crucial para o êxito ou o fracasso do projeto como um todo.

Há janelas de oportunidade muito

bem definidas, e a perda da ocasião propícia pode levar a severos prejuízos.

Janela - TTM

Reve

nu

es (

$)

Time (months)

Exemplo Simples – Entrada

com Atraso no Mercado

On-time Delayed

entry entry

Peak revenue

Peak revenue from

delayed entry

Market rise Market fall

W 2W

Time

D

On-time

Delayed Reve

nu

es (

$)

Exemplo Simples – Entrada

com Atraso no Mercado Vamos supor que a subida se dê a 45 graus e que a

área dos triângulos forneça o ganho financeiro

associado.

Para o triângulo que representa uma entrada no

mercado no “tempo certo”, a área é W2.

O outro triângulo, que representa uma entrada com

atraso D, tem área igual a 0,5*(2W – D)*(W – D).

Fazendo uma diferença e normalizando pelo retorno do

primeiro caso, obtemos uma perda percentual igual a:

(D(3W – D)/2W2)*100%

Exemplo Simples – Entrada

com Atraso no Mercado Se o tempo de vida for de 52

semanas, teremos W = 26. Se houver um atraso de 4 semanas, a perda será de 22% e, se for de 10 semanas, a perda será de 50%.

Isso ilustra bem o quanto o “fator

tempo” pode ser determinante no projeto de um sistema embarcado.

NRE e Custo por Unidade

Vamos analisar um pouco o efeito do NRE e do custo por unidade (U).

Suponhamos três casos: NRE = 2000 e U = 100, NRE = 30000 e U = 30, NRE = 100000 e U = 2.

O custo total é NRE + U*(no. de unidades).

A opção mais vantajosa depende, portanto, do número de unidades vendidas. As curvas a seguir ilustram isso.

NRE e Custo por Unidade

$0

$40,000

$80,000

$120,000

$160,000

$200,000

0 800 1600 2400

A

B

C

$0

$40

$80

$120

$160

$200

0 800 1600 2400

Number of units (volume)

A

B

C

Number of units (volume)

tota

l c

ost

(x1

00

0)

pe

r p

rod

uc

t c

ost

Métricas de Desempenho

Construído o produto, é possível avaliá-lo de diferentes perspectivas de desempenho.

Um ponto essencial é saber quanto tempo o sistema leva para desempenhar a operação para a qual foi projetado.

Podemos imaginar que isso é dado diretamente por grandezas como a taxa de clock ou o número de instruções executadas por segundo, mas isso não é verdade, pois há aspectos de arquitetura que devem ser levados em conta (veremos isso no curso).

Métricas de Desempenho

Latência ou tempo de resposta: o tempo entre o

início da execução da tarefa e sua conclusão. Por

exemplo, processar uma imagem pode levar

0,1 s.

Vazão: Número de tarefas por unidade de tempo. É

afetada pelo grau de paralelismo do sistema.

Speedup: Para comparar dois sistemas, podemos

analisar o fator de speedup, que é a razão entre seus

desempenhos.

Tecnologias

Discutiremos aqui três aspectos tecnológicos principais: ◦ Tecnologia dos processadores

◦ Tecnologia dos circuitos integrados

◦ Tecnologia de projeto

Tecnologia de Processadores

Falaremos de processadores de propósito geral, processadores de propósito único e processadores específicos de uma aplicação.

total = 0

for i = 1 to N loop

total += M[i]

end loop

Processadores de Propósito

Geral Processadores de propósito geral

embutem a idéia de programa armazenado, e são capazes de realizar uma ampla gama de tarefas dependendo do software neles executado.

Para tanto, o caminho de dados (datapath) deve ser bastante geral, sendo capaz de executar diversas instruções.

Processadores de Propósito

Geral O projeto de um sistema embarcado num sistema desse tipo

muitas vezes se resume à confecção do software apropriado.

Isso leva a um baixo NRE, a uma alta flexibilidade, a um

custo por unidade relativamente baixo em pequenas

quantidades e a uma performance expressiva se

processadores adequados forem usados.

No entanto, o custo por unidade pode ser alto para

quantidades maiores e a performance pode não ser boa se

não houver um bom casamento com as funcionalidades do

processador. O tamanho e o consumo também podem ser

elevados.

Processadores de Propósito

Geral

IR PC

Register

file

General

ALU

Datapath Controller

Program

memory

Assembly

code for:

total = 0

for i =1 to …

Control

logic and

State

register

Data

memory

Processadores Específicos de

uma Aplicação (ASIPs) ASIPs são variações dos processadores

gerais que vimos que os tornam mais adequados à realização de determinadas tarefas.

Essas tarefas podem se ligar a contextos como processamento de sinais e controle, por exemplo.

No primeiro caso, podemos citar os DSPs, altamente otimizados para realizar operações ligadas a processos como filtragem ou cálculo de transformadas de Fourier.

ASIPs

Por outro lado, temos os chamados microcontroladores, que possuem diversas facilidades para gerar sinais de controle, temporizar e atuar.

Possíveis vantagens: flexibilidade com bom tamanho, consumo e desempenho. Porém, podem ter custo NRE alto e custo alto associado à geração de compiladores eficientes.

Na figura a seguir, temos um esquema que mostra as peculiaridades de um ASIP.

ASIPs

Processadores de Propósito

Único São basicamente circuitos lógicos

projetados para realizar uma única função.

As principais vantagens seriam alta performance, baixo consumo, baixo custo por unidade para altas quantidades. Por outro lado, pode haver alto custo NRE, a flexibilidade deve ser baixa, o custo pode ser alto para poucas unidades e o desempenho pode não ser equivalente ao de um processador de propósito geral em alguns casos.

Processadores de Propósito

Único

Processadores de Propósito

Único Note que não há uma memória

propriamente – a unidade de controle é fixa, como numa máquina de Turing específica.

A unidade de controle é, de certa forma, uma máquina de estados que vai pulsando e gerando os sinais de controle necessários.

Circuitos Integrados

Circuitos integrados (também chamados de chips) são dispositivos semicondutores que contêm uma enorme quantidade de transistores e outros elementos conectados.

Existem vários processos para construir CIs, mas, atualmente, a tecnologia CMOS é dominante.

Circuito e Transistor CMOS

Camadas

CIs são criados por camadas. A camada mais baixa é formada pelos transistores.

As camadas do meio formas os componentes lógicos.

As camadas superiores interligam os componentes lógicos.

A criação dessas camadas envolve processos de deposição química controlados por máscaras cuidadosamente projetadas (formando um layout).

Customização Plena (Full

Custom) Nesse caso, otimizam-se todas as camadas do circuito

integrado que vai realizar o papel de sistema

embarcado.

Otimizações: posição dos transistores para minimizar o

comprimento das conexões, direcionamento de fios etc.

Feitas as otimizações, fazem-se as máscaras e elas

são enviadas a um fabricante.

VLSI – alto custo NRE, alto tempo de construção,

possivelmente uma excelente performance e um

consumo pequeno. Usado só em casos em que

métricas de performance e alto volume são cruciais.

Customização Parcial (ASIC)

Quando se lida com um application-specific IC (ASIC), as camadas inferiores já estão total ou parcialmente construídas e se deve apenas concluir o projeto das conexões das portas.

ASICs são a tecnologia mais popular, pois permitem bom desempenho e tamanho sem um custo NRE tão alto.

Mas ainda exigem um tempo relativamente alto até o mercado.

PLD

Num programmable logic device (PLD), todas as camadas já

existem.

Elas formam um circuito programável, ou seja, as conexões

entre elementos podem ser criadas a posteriori pelo usuário.

Um exemplo disso são os FPGAs (Field Programmable Gate

Arrays), que podem ser programados eletronicamente via

software.

PLDs tem custo NRE baixo e disponibilidade temporal

excelente. Por outro lado, podem ser grandes, ter um alto

custo por unidade, consumir mais potência e ser mais lentos.

São muito usados para prototipagem.

Tendências

Uma tendência que vem se verificando (até certo ponto) é que o número de transistores nos chips vem dobrando, grosso modo, a cada 18 meses.

Essa é a chamada lei de Moore, batizada em homenagem a Gordon Moore, da Intel, que a cunhou.

Tendências

10,000

1,000

100

10

1

0.1

0.01

0.001

Logic transistors

per chip

(in millions)

Tendências

Tecnologia de Projeto

Tipicamente, pensa-se num esquema top-down de projeto, com várias camadas de abstração:

◦ Especificação do sistema

◦ Especificação comportamental

◦ Especificação no nível de transferência de registradores (assembly ou máquina de estados + registradores)

◦ Especificação lógica – nível booleano

Tecnologia de Projeto

Compilação / Síntese: permite ao projetista especificar

a funcionalidade em alto nível e gera os detalhes de

nível mais baixo automaticamente.

Bibliotecas: permitem o reuso de soluções pré-

existentes. Podem ser muito útil se o reuso se encaixar

bem no projeto.

Teste e verificação: envolve garantir que a

funcionalidade está correta – evita tarefas de debug em

níveis mais baixos e a necessidade de refazer níveis

mais altos. Um exemplo são simuladores que geram

formas de onda para determinado design.

Tecnologia de Projeto

Efeito - Produtividade

Compromissos (Trade-offs)

Projeto de sistemas embarcados: encontrar um compromisso entre métricas conflitantes.

O bom projetista deve ser erudito em sua área.

Atualmente, o projetista de hardware, por exemplo, pode ter de trabalhar com software em diferentes níveis (na programação de um sistema FPGA ou escrevendo código para um processador de propósito geral).

Co-Design Hardware / Software

Isso nos leva a perceber que, no fundo, encontrar o compromisso entre métricas relevantes leva a um balanço entre a escolha de hardware ou software numa etapa de projeto.

O “melhor dos mundos” é ter um design conjunto em ambos os campos, já que a otimização multiobjetivo a realizar é complexa.

Esse é o conceito de co-design hardware / software.

Escada do Co-Design

Implementation

Assembly instructions

Machine instructions

Register transfers

Compilers

(1960's,1970's)

Assemblers, linkers

(1950's, 1960's)

Behavioral synthesis

(1990's)

RT synthesis

(1980's, 1990's)

Logic synthesis

(1970's, 1980's)

Microprocessor plus program

bits: “software” VLSI, ASIC, or PLD

implementation: “hardware”

Logic gates

Logic equations / FSM's

Sequential program code (e.g., C, VHDL)

Escolhas...

General-

purpose

processor

ASIP Single-

purpose

processor

Semi-custom PLD Full-custom

General,

providing improved:

Customized,

providing improved:

Power efficiency

Performance

Size

Cost (high volume)

Flexibility

Maintainability

NRE cost

Time- to-prototype

Time-to-market

Cost (low volume)

Gap Design / Produtividade

Apesar de a produtividade dos projetistas ter

aumentado muito, ela não acompanha o

desenvolvimento dos chips.

Em 1981, um chip de primeira linha exigia 100

projetistas-mês para ser projetado, considerando-se

100 transistores / projetista – mês.

Em 2002, um chip de ponta exigiria 30000 projetistas-

mês, supondo 5000 transistores / projetista-mês.

Supondo que o custo por projetista-mês seja de US$

10000,00, isso significa que houve um salto da ordem

de um milhão para trezentos milhões de dólares!

Gap Design / Produtividade

10,000

1,000

100

10

1

0.1

0.01

0.001

Logic transistors

per chip

(in millions)

100,000

10,000

1000

100

10

1

0.1

0.01

Productivity

(K) Trans./Staff-Mo. IC capacity

productivity

Gap

Mito do Projetista-Mês

A situação é ainda mais complicada, pois estamos supondo que o aumento do tamanho da equipe não afete a produtividade, o que não é real.

Há dificuldades de organização, comunicação etc.

Mito do Projetista-Mês

Suponhamos um projeto de 1000000 de transistores. Um projetista o completaria em 1000000/5000 = 200 meses.

No entanto, 10 projetistas poderiam levar 1000000/41000 = 24,3 meses se supuséssemos que um projetista a mais reduz em 100 transistores a produtividade individual.

Com 25 projetistas, teríamos 15,3 meses, mas, com 26, teríamos 15,4 meses!

Mito do Projetista Mês