50
1 1.1 Introdução aos microprocessadores digitais. O que é um computador? Reportando-se ao Stalling: “Um computador pode ser visto como um sistema formado por um conjunto estruturado de componentes, e sua função pode ser compreendida em termos das funções desses componentes”. Quais então as funções básicas de um computador? Processamento de dados Armazenamento de dados Transferência de dados Controle das operações internas e de acesso a informação

O que é um computador? - Departamento de Engenharia ... · Mecanismos de transferência de dados ... 3 1.1 –Introdução aos microprocessadores digitais. ... unidade de soma constituí

  • Upload
    phambao

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

1

1.1 – Introdução aos microprocessadores digitais.

● O que é um computador?Reportando-se ao Stalling:

“Um computador pode ser visto como um sistema formado

por um conjunto estruturado de componentes, e sua

função pode ser compreendida em termos das funções

desses componentes”.

● Quais então as funções básicas de um computador?

● Processamento de dados

● Armazenamento de dados

● Transferência de dados

● Controle das operações internas e de acesso a informação

2

1.1 – Introdução aos microprocessadores digitais.

● Visão funcional de um computador:

Mecanismos de

transferência

de dados

Mecanismos

de controle

Recursos de

armazenamento

de dados

Recursos de

processamento

de dados

Fontes e

destinos

dos

dados

Periféricos ou

linhas de

comunicação

Unidades de E/S

Unidades de memória

Unidade Central de processamentoBarramentos

externos

Barramentos

InternosComputador

3

1.1 – Introdução aos microprocessadores digitais.

● Visão estrutural de um computador:

Periféricos e

linhas de

comunicação

Barramentos

externos

ComputadorUnidades

de E/S

UCP

Unidades

de

memória

Barramentos

internos

4

1.1 – Introdução aos microprocessadores digitais.

● Transferências de dados possíveis em um computador

Periféricos e

linhas de

comunicaçãoUnidades

de E/S

UCP

Unidades

de

memóriaAcesso Direto a Memória - DMA

5

1.1 – Introdução aos microprocessadores digitais.

● O que estamos mostrando afinal: a arquitetura ou a

organização de um computador?

● Reportando-se novamente ao Stalling:

● O termo “arquitetura de um computador” refere-se aos atributos de

um sistema que são visíveis para o programador ou, em outras

palavras, aos atributos que têm impacto direto sobre a execução

lógica de um programa.

● Exemplos de atributos de arquitetura incluem o conjunto de

instruções, o número de bits usados para representar os vários

tipos de dados, os mecanismos de E/S e as técnicas de

endereçamento de memória.

● Definir se um computador deve ou não ter uma instrução de

multiplicação, por exemplo, constitui uma decisão do projeto da sua

arquitetura.

6

1.1 – Introdução aos microprocessadores digitais.

● O que estamos mostrando a final: a arquitetura ou a

organização de um computador?

● O termo “ organização de um computador” refere-se às unidades

operacionais e suas interconexões que implementam as

especificações da sua arquitetura.

● Atributos de organização incluem detalhes de hardware

transparentes ao programador, tais como os sinais de controle, as

interfaces entre o computador e os periféricos e a tecnologia de

memória utilizada.

● Voltando ao exemplo anterior, definir se uma instrução de

multiplicação será implementada por uma unidade de multiplicação

especial ou por um mecanismo que utiliza repetidamente sua

unidade de soma constituí uma decisão do projeto da sua

organização.

7

1.1 – Introdução aos microprocessadores digitais.

● O que estamos mostrando a final: a arquitetura ou a

organização de um computador?

● Estes termos no entanto tendem a se confundir e a sua relação a

se estreitar a medida que miniaturam-se os computadores.

● Mudanças na tecnologia, por exemplo, não apenas influenciam a

organização, mas também resultam na introdução de arquiteturas

mais ricas e poderosas.

● Para estruturas de elevado grau de miniaturização, normalmente

não existe um forte requisito de compatibilidade de uma geração

para outra o que flexibiliza e aumenta a relação das tomadas de

decisão relativas à sua arquitetura e à sua organização.

8

1.1 - Introdução aos microprocessadores digitais.

● Como são definidas as arquiteturas dos computadores?

● Primeiro, pela escolha do conjunto de instruções que lhes serão

atribuídas e;

● Segundo, pela escolha do modelo que será usado para acesso a dados e

programas.

● Pela escolha do seu conjunto de instruções podemos ter:

● Arquiteturas CISC

● quando apresentam um conjunto muito grande e complexo de

instruções

● Arquiteturas RISC

● quando apresentam um conjunto reduzido de instruções

● Arquiteturas SISC

● quando apresentam um conjunto específico de instruções

9

1.1 - Introdução aos microprocessadores digitais.

● Como são definidas as arquiteturas dos computadores?

● As máquinas CISC apresentam um conjunto muito grande de

instruções (acima de 100 por exemplo) e algumas delas, dado sua

complexidade, apresentam formatos diferenciados e são executadas em

múltiplos ciclos de relógio.

● Já as instruções constantes de uma máquina RISC apresentam-se de

mesmo tamanho e são normalmente processadas em um único ciclo.

● Uma máquina SISC difere das anteriores por apresentar um conjunto

de instruções especialmente prototipado para a aplicação pré-

estabelecida.

● A medida que se aumenta a miniaturização dos processadores digitais

acrescenta-se também uma nítida tendência em se mesclar

características CISC e RISC numa mesma unidade.

10

1.1 - Introdução aos microprocessadores digitais.

● Como são definidas as arquiteturas dos computadores?

● Pela escolha do modelo que será usado para acesso a dados e programas podemos ter:

● Computadores com arquitetura segundo o modelo proposto pelo Instituto de Estudos Avançados de Princeton (atribuído a Von Neumann) – máquina de Von Neumann

● Computadores com arquitetura segundo o modelo proposto pela universidade de Harvard – máquina de harvard.

● Beneficiados pelos avanços da tecnologia de fabricação e pelo elevado grau de miniaturização dos chips, muitas inclusões foram feitas aos modelos de Von Neumann e de Harvard no entanto, a essência de suas proposições estão mantidas até os dias de hoje.

11

1.1 – Introdução aos microprocessadores digitais.

● Alguns conceitos gerais:

● Microcomputador?

● É qualquer sistema computacional que possua como CPU um

microprocessador.

● Microprocessador?

● É qualquer componente que implemente “on chip” as funções de

uma unidade central de processamento.

● Microcontrolador?

● É qualquer componente que incorpore “on chip” a maioria das

unidades de um microcomputador ou seja: CPU, memória, portas e

periféricos de E/S.

● DSP?

● É qualquer microcontrolador que adicione funções avançadas para

condicionamento e processamento digital de sinais. O têrmo DSP é

usado também para designar o Processamento Digital de Sinais.

12

1.1 – Introdução aos microprocessadores digitais.

● Alguns conceitos gerais:

● Hardware e software?

● "hardware" é o conjunto de dispositivos elétricos/eletrônicos que

englobam a CPU, a memória e os dispositivos de E/S ou seja, é

composto de objetos tangíveis - circuitos integrados, placas de

circuito impresso, cabos, fontes de alimentação, memórias,

impressoras, terminais de vídeo, teclados, etc.

● O "software", ao contrário, consiste em algoritmos (instruções

detalhadas que dizem como fazer algo) e suas representações

para o computador ou seja, os programas.

● Firmware?

● programa ou conjunto de programas (constituintes do "software"

básico de um computador) que orientam: a sua partida, a sua

inicialização ("bootstraps programs") e a sua operação. Por esta

razão são softwares permanentemente residentes em ROM.

13

1.1 – Introdução aos microprocessadores digitais.

● Alguns conceitos gerais:

● Memória principal?

● bloco de memória interno do microcomputador responsável pelo armazenamento de programas e de dados que podem ser imediatamente acessados pela CPU.

● Fisicamente é implementada através do uso de pastilhas semicondutoras de memória ROM ("read only memory"), não voláteis e RAM ("random access memory"), voláteis.

● Memória secundária ou de massa?

● memória auxiliar, externa, onde possam ser armazenados maior quantidade de dados e programas os quais, não sejam imediatamente necessários a CPU.

● Embora de acesso mais lento, este tipo de memória é relativamente mais econômico para o sistema do que a memória principal. Exemplos deste tipo de memória são os discos magnéticos e os ópticos.

14

1.1 – Introdução aos microprocessadores digitais.

● Tipos de microprocessadores por principais áreas de atuação

* Os sistemas de Processamento Digital de Sinais são na verdade uma grande sub-área dos sistemas embarcados.

Na realidade os limites de aplicabilidade destes três componentes não são tão bem definidas como mostra o quadro acima. Por exemplo:

● O projeto de um sistema embarcado que exija um complexo tratamento matemático, mesmo que não envolva o processamento digital de sinais, pode ser melhor resolvido com um DSP do que com um microcontrolador.

● Em contrapartida, o projeto de um sistema de controle digital, mesmo envolvendo o processamento digital de sinais, sem grandes exigências de cálculo, pode ser melhor resolvido, com custos bem mais reduzidos, com um microcontrolador do que com um DSP.

Microprocessadores Sistemas computacionais de propósito geral

Microcontroladores Sistemas embarcados

DSPs Sistemas p/ Processamento Digital de Sinais*

15

1.1 - Introdução aos microprocessadores digitais.

● Arquitetura dos microcontroladores e DSPs

● Quanto a arquitetura interna uma unidade microprocessadora pode se apresentar segundo o modelo de Von Neumann (usado pela maioria dos microprocessadores tradicionais) ou, segundo o modelo de Harvard (usado pela grande maioria dos microcontroladores e DSPs).

● Com os avanços da tecnologia de fabricação e com o alto grau de miniaturização dos chips, muitas inclusões foram feitas aos modelos de Von Neumann e de Harvard entretanto a essência de suas proposições estão mantidas até hoje.

● A Analog Devices por exemplo, denominou de Super Arquitetura de Harvard (SHARC®) ao projeto de um DSP no qual incorporou uma unidade de controle de E/S e uma unidade caché de instruções à CPU.

● Já a Texas Instruments, na sua família TMS320C270x, usa uma arquitetura de Harvard modificada. As modificações consistem em incluir no seu modelo, fatores típicos da arquitetura de Von Neumann, tais como a capacidade de tratar dados na memória de programa.

16

1.1 - Introdução aos microprocessadores digitais.

● Super Arquitetura de Harvard proposta pela Analog Devices

MEMÓRIA

DE

DADOS

C P U

UNIDADES

DE E/S

Bus de Endereços da MD

MEMÓRIA DE

PROGRAMA

Bus de Dado da MD

Bus de Controle

Bus de Endereços da MP

Bus de Dados da MP

Cache de

instruções

UNIDADE

DE

CONTROLE

DE E/S

17

1.1 - Introdução aos microprocessadores digitais.

Arquitetura modificada de Harvard proposta pela Texas Instruments

18

1.1 - Introdução aos microprocessadores digitais.

● Contexto histórico:

● O desenvolvimento do microprocessador na década de 1970 representou o maior marco na história dos sistemas eletrônicos e de computação. Ele permitiu o desenvolvimento de computadores pessoais de baixo custo e gerou o campo dos sistemas embarcados, nos quais o microprocessador é usado para controlar um sistema ou um subsistema eletrônico em especial.

● A paternidade do microprocessador é ainda debatida até hoje. Em 1971 a Intel introduziu o 4004, que incluía todos os elementos de uma CPU de 4 bits. Neste mesmo ano a Texas lançou o TMS1802NC.

● Estes dois microprocessadores foram originalmente orientados para suportar as funções de uma calculadora eletrônica. O TMS1802NC da Texas mostrou-se no entanto pouco flexível já que sua programação era armazenada em uma memória interna, só de leitura (o que significava que a mudança no programa exigia um novo processo de mascaramento do chip).

19

1.1 - Introdução aos microprocessadores digitais.

● Contexto histórico:

● A Intel continuou seus esforços no desenvolvimento de µprocessadores produzindo em 1972 o 8008 e em 1972 o 8080 (reconhecidamente o primeiro µprocessador desenvolvido para aplicações de uso geral).

● Várias companhias seguiram os passos da Intel. Como por exemplo: a Motorola com o 6800, a Rockwell com o 6502 e a Zilog com o Z80. Para competir com estes novos processadores a Intel lançou, em 1975, uma versão melhorada do 8080, o 8085.

● Como características marcantes destes µprocessadores destacam-se:

● Bus de dados de 8 bits;

● Bus de endereços de 16 bits – capacidade de endereçamento de 216;

● Um numeroso e diversificado conjunto de instruções;

● Estrutura seqüencial de busca, decodificação e execução das instruções

20

1.1 - Introdução aos microprocessadores digitais.

● Contexto histórico:

● Nessa mesma época começaram a ser desenvolvidos os µprocessadores de 16 bits. No entanto, apenas em 1978 surgiu o primeiro deles, o 8086 da Intel. A ele sucederam o 8088 e o 286 da Intel (usados nas linhas de µcomputadores PC, XT e AT da IBM), o 68000 e o 68010 da Motorola (usados na linha de µcomputadores da Apple) e o Z8000 da Zilog.

● Estes microprocessadores se caracterizam por apresentar:

● barramento de dados de 16 bits (com exceção do 8088 de 8 bits);

● barramento de endereços de 20 e de 24 bits – capacidade de endereçamento de 220 e 224;

● Maior e mais complexo conjunto de instruções;

● capacidade de endereçamento de 1Mbyte e de 16 Mbytes de memória;

● capacidade de executar um ciclo de barramento em menos de 200ns;

● estrutura "pipelined" (canalizada) para as tarefas de busca, decodificação e execução de uma instrução.

21

1.1 - Introdução aos microprocessadores digitais.

● Contexto histórico:● A geração de µprocessadores de 32 bits é iniciada em 1984, pela Motorola,

com o lançamento do 68020, num ambiente já notadamente multi-usuário.

● Pós o 68020 vieram o 68030 da Motorola e o 80386DX da Intel (usado como unidade central da linha de computadores 386DX)

● Como principais características destes microprocessadores destacam-se:

● "bus" de dados de 32 bits;

● "bus" de endereços de 32 bits;

● Aumento no número de instruções;

● capacidade de executar um ciclo de barramento em menos de 100ns;

● capacidade de endereçamento de 4 Gigabytes (232) de memória física;

● estrutura "pipelined" melhorada.

● possibilidade de inclusão de memória cache externa;

● capacidade com a inclusão do cache de executar instruções de acesso a memória com 0 (zero) estados de espera.

22

1.1 - Introdução aos microprocessadores digitais.

● Contexto histórico:

● Aos microprocessadores 68030 e 80386DX sucederam os, também de 32

bits, 68040 e o 80486DX.

● O 80486DX incorporou:

● uma arquitetura escalar (canalização única) otimizada;

● uma unidade "caché" e;

● uma unidade em ponto flutuante (FPU).

● A inclusão da unidade cache interna veio permitir menos acessos as

memórias externas (cache ou principal) e a FPU veio permitir a execução

de operações com números reais (antes só possíveis com o auxílio de um

co-processador aritmético) tais como o cálculo de funções trigonométricas

(seno, coseno, tangente, etc), funções trigonométricas inversas (arco-seno,

arco-coseno, arco-tangente, etc), funções logarítmicas (log 2, log 10, ln),

funções exponenciais e funções hiperbólicas.

23

1.1 - Introdução aos microprocessadores digitais.

● Contexto histórico:● Como forma de competir no mercado, a INTEL desenvolveu as versões

econômicas 386SX (com barramento de 16 bits) e 486SX (com barramento de 32 bits mas sem o co-processador interno).

● O 80486DX evoluiu de 25MHz (velocidade de clock dos primeiros lançamentos) para 33MHz e 50MHz.

● As versões de 50MHz embora extremamente rápidas, trouxeram um grave problema, o superaquecimento da pastilha já que, trabalhava em 5V e com velocidade de barramento equivalente.

● Para contornar este problema, a Intel lançou os 486DX2 (de 50MHz e 66MHz em 3,3V) e 486DX4 (de 75MHz, 83MHz e 100MHz em 3,3V) os quais, multiplicavam segundo um fator 2 ou 3 o clock de processamento enquanto mantinham o clock do barramento no limite de 33MHz (velocidade máxima dos barramentos ISA, MCA, EISA, VL-BUS ou PCI).

● Posteriormente é lançada a linha PENTIUM, também de 32 bits ...

24

1.1 - Introdução aos microprocessadores digitais.

● Gráficos evolutivos dos microprocessadores X86

● 1 - Performance dos Ps em quantidade de instruções executadas

por segundo

A n o s

M I

P S

0

0 ,5

1

1,5

2

2,5

3

3,5

4

4,5

5

70 72 74 76 78 80 82 84 86 88 90

8008

8080

8086

80286

80386DX

80386SX

25

1.1 - Introdução aos microprocessadores digitais.

● Gráficos evolutivos dos microprocessadores X86

● 1 - Performance dos Ps em quantidade de instruções executadas

por segundo

A n o s

M I

P S

0

20

40

60

80

100

120

70 72 74 76 78 80 82 84 86 88 90 92 94

386

486

PENTIUM

26

1.1 - Introdução aos microprocessadores digitais.

● Gráficos evolutivos dos microprocessadores X86

● 2 - Complexidade dos Ps em número de transistores por chip

A n o s

Mil

tra

ns

isto

re

s/c

hip

0

50

100

150

200

250

300

70 72 74 76 78 81 82 85

40048008 8080 8085

8086/88

80186

80286

80386

27

1.1 - Introdução aos microprocessadores digitais.

● Gráficos evolutivos dos microprocessadores X86

● 2 - Complexidade dos Ps em número de transistores por chip

A n o s

Mil

tran

sis

tore

s/ch

ip

0

500

1000

1500

2000

2500

3000

3500

85 88 93

386

486

PENTIUM

28

1.1 - Introdução aos microprocessadores digitais.

● Contexto histórico:● Paralelamente, na busca de melhores performances tão bem quanto de

novos mercados, os produtores de microprocessadores procuraram especializar os seus projetos. Como resultado deste esforço, em 1974 a Texas Instruments produziu o primeiro microcontrolador: o TMS1000.

● Estes microcontroladores, em essência, se constituíam em um completo microcomputador em um chip. A inclusão de memória e de unidades periféricas no chip o fez particularmente eficiente em aplicações de sistemas embarcados onde custo, tamanho e consumo de energia deviam ser mantidos extremamente baixos.

● Em 1980 a Intel lançou a família de microcontroladores 8748. Esta família integrou muitos periféricos, inclusive uma memória de programa que podia ser apagada e reprogramada pelo projetista. Tais características abaixou os custos de desenvolvimento dos sistemas à microcontrolador e permitiu o uso do microcontrolador em aplicações de sistemas embarcados de baixos volumes.

29

1.1 - Introdução aos microprocessadores digitais.

● Contexto histórico:● Em 1983 surgiu o primeiro processador digital de sinais. Lançado pela

Texas Instruments, o TMS320C10 foi especificamente projetado para resolver problemas de processamento digital de sinais, até esta época, feito totalmente no domínio da eletrônica analógica.

● O Processamento digital de sinais além de muito pouco utilizado, requeria máquinas muito complexas, restritivas às áreas militares, aeroespaciais e de exploração do petróleo.

● A introdução do DSP induziu o estabelecimento da matéria Processamento Digital de Sinais nos currículos dos cursos de Engenharia Elétrica e é, notadamente a área do conhecimento da engenharia elétrica que mais evoluiu nestas últimas décadas.

● Além do que é a que guarda o maior leque de interdisciplinaridade do curso exigindo conhecimentos específicos em: Teoria da informação; Análise Numérica; Eletrônica Analógica; Eletrônica Digital; Programação; Estatística e Probabilidade.

30

1.1 - Introdução aos microprocessadores digitais.

● Contexto histórico:

● O Processamento digital de sinais progressivamente substituiu o

processamento analógico em aplicações que variam do controle para as

telecomunicações. Esta migração digital é percebida até hoje e afeta

aplicações de custos acentuadamente decrescentes.

● Hoje, com a presença de baratos e eficientes DSPs, o processamento

digital de sinais se incorporou a um conjunto muito grande de áreas da

produção industrial onde, principalmente são exigidos algoritmos

eficientes e rápidos para a compressão de dados, análise e controle de

processos, aquisição de dados, análise e simulação espectral.

● A diferenciação introduzida pela absorção de periféricos específicos nos

microprocessadores gera componentes extremamente especializados.

Alguns por exemplo são especificamente projetados para aplicações em

protocolos de comunicação (Ethenet, USB, etc.) enquanto outros são

especificamente projetados para uso em motores elétricos.

31

1.1 - Introdução aos microprocessadores digitais.

● Contexto histórico:

● O beneficio de tais especificações é a produção de projetos eficientes, em

termos de custos, tamanho e consumo de energia. Por outro lado, ele força

o surgimento de uma grande variedade de CPUs.

● A dificuldade trazida por esta grande diversidade não deve ser

subestimada. O tempo necessário a ser investido no estudo das novas

características e na nova ferramenta de desenvolvimento é freqüentemente

um grande obstáculo para sua adoção pelo projetista.

● Para o produtor, a introdução de uma nova família de microprocessadores

é muito mais complexa e sua adoção deve vir com a garantia de mercado.

● Para evitar este problema alguns fabricantes estão introduzindo novos

tipos de microcontroladores que incorporam lógica programável e

subsistemas analógicos programáveis. Este é o caso das famílias PsoC –

“Programmable system on a Chip” (Sistema programável em um chip) da

Cypress e da Altera.

32

1.1 - Introdução aos microprocessadores digitais.

● Principais características dos Microprocessadores

● Largura de bus de endereços elevada (permite o gerenciamento de

grande quantidade de memória)

● Unidade de gerenciamento de memória integrada

● Co-processador matemático e unidade lógica e aritmética com

suporte à operações numéricas complexas tais como multiplicação

em ponto flutuante.

● Sofisticados modos de endereçamento para eficiente suporte as

funções de linguagens de alto nível.

● Alto custo

● Alto consumo de energia.

● Ocupação de grande área de silício.

33

1.1 - Introdução aos microprocessadores digitais.

● Principais características dos Microcontroladores

● Memória e periféricos integrados no chip

● Bus de endereços estreito só permitindo o gerenciamento de

pequena quantidade de memória

● Tratamento de poucos formatos de dados (tipicamente 8 ou 16 bits)

● Ausência de co-processador e com unidade aritmética e lógica

limitada

● Limitados modos de endereçamento (tratamento ineficiente de

funções de linguagens de alto nível)

● Baixo custo

● Baixo consumo

● Pequena área de silício

34

1.1 - Introdução aos microprocessadores digitais.

● Principais características dos DSPs

● Processadores para tratamento de dados em ponto fixo ou flutuante

● Arquitetura otimizada para computação intensiva. O TMS320C67 pode,

por exemplo, executar 1 Giga Flops.

● Bus de endereços estreito, permitindo apenas o gerenciamento de uma

pequena quantidade de memória

● Modos de endereçamento especiais para suporte eficiente a operações de

processamento de sinais (endereçamento circular para tratamento de

filtros, endereçamento “bit-reverse” para transformada rápida de Fourier...)

● limitados formato de dados (16 ou 32 bits típicos)

● Muitos periféricos especializados “on chip” (portas seriais, memória,

timers, conversores A/D e D/A, geradores de PWM, etc)

● Baixo custo

● Baixo consumo

35

1.1 - Introdução aos microprocessadores digitais.

● Critérios para escolha de um microprocessador

● A escolha de um microprocessador para uma dada aplicação é

provavelmente a mais difícil tarefa enfrentada pelos engenheiros.

● Para fazer isto corretamente, ele deve conhecer a gama de

microprocessadores que poderá usar para a aplicação, para assim

poder precisar e medir os pros e contras de cada opção.

● A maioria deles tenta fazer a escolha dentro do jogo de dispositivos

com o qual eles já estão familiarizados.

● Para ajudar na escolha, a maioria dos fabricantes oferecem

ferramentas de desenvolvimento e de avaliação. Estas ferramentas

permitem ao engenheiro desenvolver e testar o seu software sem

ter que implementar o hardware requerido pela aplicação.

36

1.1 - Introdução aos microprocessadores digitais.

● Critérios para escolha de um microprocessador

● Com as tolerâncias inerentes a qualquer projeto, os primeiros

critérios que devem ser levados em conta na escolha de um

microprocessador dizem respeito a:

● Funcionalidade do conjunto de instruções

● Arquitetura e modos de endereçamento

● Velocidade de execução (não exatamente a freqüência do clock)

● Capacidade aritmética e lógica

● Capacidade de endereçamento

● Consumo de energia

● Tamanho

● Presença de periféricos necessários a aplicação.

37

1.1 - Introdução aos microprocessadores digitais.

● Critérios para escolha de um microprocessador

● Outros critérios de suma importância na escolha são:

● Ferramentas de software e suporte técnico.

Neste item devem ser observados o ambiente de

desenvolvimento (editor, assemblador, compilador, simulador,

emulador), a biblioteca de funções e as soluções de software

disponibilizadas pelo fabricante ou empresas credenciadas.

● Custo

● Disponibilidade de mercado

● Maturidade do processador.

38

1.2 - Contextualizações sobre hardware e software no projeto de

sistemas digitais microprocessados.

● Tradicionalmente o hardware foi considerado uma tecnologia

imutável, de alto desempenho e alto custo de desenvolvimento e

produção, enquanto o software sempre foi considerado uma

tecnologia com alto grau de adaptabilidade, de baixo desempenho e

baixo custo de desenvolvimento e produção.

● Curva típica de desempenho x custo de sistemas de hardware e

software nesta abordagem

Desempenho

Custo

Hardware

Software

Hardware/Software

39

1.2 - Contextualizações sobre hardware e software no projeto de

sistemas digitais microprocessados.

● Assim, ao se utilizar componentes de hardware e software, um sistema pode se beneficiar do aumento de desempenho trazido pelo hardware e ao mesmo tempo a redução de custos trazida pela introdução de componentes de software.

● Tradicionalmente os subsistemas de software eram projetados para serem executados em um microprocessador.

● Seu desempenho era naturalmente baixo, visto que um microprocessador, para garantir a generalidade, necessitava de instruções aritméticas e lógicas, de controle de fluxo, de manipulação de memória e de entrada e saída genéricas, baseadas no paradigma de busca, decodificação e execução.

● Qualquer função mais complexa poderia ser decomposta nas instruções de máquina do microprocessador e para se promover uma modificação era bastante se trocar o código, o que facilitava bastante a atualização deste componente.

40

1.2 - Contextualizações sobre hardware e software no projeto de

sistemas digitais microprocessados.

● Já os subsistemas de hardware eram implementados em placas de circuitos impressos com circuitos LSI e VLSI, ou com ASICs (Application Specific Integrated Circuits), dependendo da escala de produção.

● Devido a isto, os subsistemas de hardware possuíam baixa tolerância a mudanças, apesar de que, por serem confeccionados para executarem uma só tarefa, possuíam alto desempenho.

● Genericamente, projeto de sistemas contendo subsistemas de hardware e software têm sido feitos na indústria e nas universidades desde os primórdios da computação.

● Entretanto, esses projetos eram feitos de maneira ad hoc e a escolha dos componentes era feita na definição do projeto, o que nem sempre levava a um sistema de custo/benefício e desempenho ótimos.

● Se o protótipo não possuísse desempenho ou custo adequado ao esperado, o projeto voltava à prancheta para o reparticionamento do sistema nos seus subsistemas primitivos de hardware e software.

41

1.2 - Contextualizações sobre hardware e software no projeto de

sistemas digitais microprocessados.

● Neste modelo de projeto continuado, após o “racha” inicial, as duas

sínteses, embora conduzam a integração final do produto não

mantêm nenhum compartilhamento e nenhuma realimentação.

Análise e concepção do sistema

Análise dos requisitos de

software

Análise dos requisitos de

hardware

Projeto e testes do hardware

Projeto e testes do software

Integração do sistema

42

1.2 - Contextualizações sobre hardware e software no projeto de

sistemas digitais microprocessados.

● Outra alternativa de projeto baseou-se no conceito de ambiente

unificado onde o projeto de hardware e de software usam a mesma

infra-estrutura integrada, tendo por resultado uma melhoria do

desempenho global do sistema embora requisite poderoso soft de

simulação.

Análise e concepção do sistema

Análise dos requisitos de

software

Análise dos requisitos de

hardware

Projeto e testes do hardware

Projeto e testes do software

Integração do sistemaSubstrato de modelagem integrado

43

1.2 - Contextualizações sobre hardware e software no projeto de

sistemas digitais microprocessados.

● Os avanços em engenharia e computação, assim como o aumento na

complexidade dos sistemas projetados direcionaram para a evolução

de um novo paradigma: O codesign.

● Ou mais especificamente à análise e ao projeto integrados de sistemas

de hardware e software onde o item chave é a “reconfiguração” e onde

passam a ser exploradas as “synergys” entre hardware e software.

● Os fatos geradores do codesign como novo paradigma de análise e

projeto foram:

● Primeiro, o aumento do nível de integração que permitiu que

sistemas de computação inteiros fosse encapsulados em um

único chip.

Enquadram-se neste contexto, notadamente os DSPs e os

microcontroladores embora que orientados por software mas

não reprogramáveis.

44

1.2 - Contextualizações sobre hardware e software no projeto de

sistemas digitais microprocessados.

● Segundo, foi o surgimento dos “embedded systems” (sistemas

embarcados) e a crescente necessidade de se produzir estes

sistemas com complexidade e autonomia cada vez maiores e em

um tempo cada vez mais curto.

Estas características os diferenciam de outros sistemas integrados

e impõem a necessidade de uma metodologia que não somente as

atendam como também demandas de caráter mercadológico como

tempo de projeto e custos financeiros (modelo de receita triangular).

DW W

Receita

Início da janela de Mercado Fim da vida útil

D – Atraso2W – Janela de mercadoReceita de mercado = D(3W-D)/2W2

Pico de receita no meio da vida útil

Perda de receita pelo atraso da entrada do produto no mercado (área azul)

45

1.2 - Contextualizações sobre hardware e software no projeto de

sistemas digitais microprocessados.

● E como terceiro fato gerador do codesign como novo paradigma de

análise e projeto, surge no mercado os FPGAs (Field Programmable

Gate Arrays), dispositivos de hardware que integram elementos lógicos

e de memória estruturalmente configuráveis por software.

● Funcionalmente, a configuração do hardware desejado é carregado,

por definições de software, durante a inicialização do FPGA, a partir de

uma unidade de memória externa ou de um microcomputador

adequadamente conectado.

● Esta flexibilidade estrutural permite que os projetistas implementem,

por software, qualquer sistema de hardware a partir de uma adequada

linguagem de descrição de hardware como o VHDL ou a Verilog HDL.

● Com a introdução de FPGAs de alta densidade, como os da família

Stratix® da Altera, que incorporam milhões de elementos lógicos e

muitos blocos funcionais embarcados, alguns típicos dos DSPs, os

projetistas podem agora implementar o SoPC (System on a

Programmable Chip) ideal para sua aplicação*.

* A PI (Propriedade Intelectual) tem na tecnologia SoC sua grande aliada

46

1.2 - Contextualizações sobre hardware e software no projeto de

sistemas digitais microprocessados.

● Pelo exposto, um ambiente elementar de desenvolvimento para

codesign, pode se constituir de um microcontrolador ou de um

DSP, para a prototipação rápida de software, de um FPGA, como

circuito reconfigurável, para a prototipação rápida do hardware e,

opcionalmente, de uma unidade de memória para armazenamento

da descrição do hardware desejado.

● O microcontrolador ou o DSP pode ser programado em código C

ou assembly e a descrição do hardware do FPGA pode ser feita

por meio de ferramentas de mapeamento de hardware e síntese

lógica, VHDL ou Verilog HDL em ambientes gráficos de

programação, simulação e síntese, fornecidos pelos seus

respectivos fabricantes.

● Normalmente o algoritmo desenvolvido em uma plataforma de

codesign permite a modelagem, o particionamento entre o hardware e

o software, a cosíntese e a cosimulação.

47

1.2 - Contextualizações sobre hardware e software no projeto de

sistemas digitais microprocessados.

● Exemplo1: ambiente de codesign.

● Placa LIRMM - Logic Inside Reconfigurable Micro Machine - desenvolvida

no Laboratório de Informática, Robótica e Microeletrônica de Montpellier.

48

1.2 - Contextualizações sobre hardware e software no projeto de

sistemas digitais microprocessados.

● Exemplo 2: algoritmo de codesignDescrição do sistema

Especificações

Desenvolvimento e Análise

Particionamento e mapeamento

Especificações do particionamento

Síntese de SW Síntese de HWSíntese de interfaces

Código C VHDL VHDL

Prototipação

Validação

Evolução

Performance estimada

49

1.2 - Contextualizações sobre hardware e software no projeto de

sistemas digitais microprocessados.

● Anexo 1: estrutura de um FPGA

Pinos de interface

Matriz de roteamento

IOB

CLB CLB

CLB CLB

IOB

50

1.2 - Contextualizações sobre hardware e software no projeto de

sistemas digitais microprocessados.

● Anexo 1: estrutura de um FPGA

● Como pôde ser visto na figura anterior, arquitetura do FPGA apresenta

três blocos funcionais: o CLB, o IOB e a matriz de roteamento ou

chaveamento (“Switch Matrix”).

● Os CLBs (“Configurable Logic Blocks”) constituem-se normalmente de

blocos com funções lógicas programáveis e alguns flip-flops ou

registradores.

● Os IOBs (“Input/Output Blocks”) são buffers bidirecionais com saída em

alta impedância podendo ser programado como entrada, como saída,

como bidirecional ou como saída em coletor aberto.

● O terceiro bloco, são as matrizes de roteamento, responsáveis pelas

definições de interligação entre os blocos lógicos e/ou destes com os

blocos de entrada/saída.