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
1
1.1 – Introdução aos microprocessadores digitais.
● Visão funcional de um computador:
Barramentos
externos
Fontes e
destinos
dos
dados
Periféricos ou
linhas de
comunicação
Unidade Central de processamento
Mecanismos de
transferência
de dados
Unidades de memória
Recursos de
armazenamento
de dados
Mecanismos
de controle
Unidades de E/S
Barramentos
Internos
Recursos de
processamento
de dados
Computador
2
1.1 – Introdução aos microprocessadores digitais.
● Visão estrutural de um computador:
Barramentos
externos
Periféricos e
linhas de
comunicação
Unidades
de
memória
Computador Barramentos
Unidades
internos
de E/S
UCP
3
1.1 – Introdução aos microprocessadores digitais.
● Transferências de dados possíveis em um computador
Acesso Direto a Memória - DMA
Periféricos e
linhas de
comunicação
Unidades
de
memória
Unidades
de E/S
UCP
4
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.
5
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.
6
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.
7
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
8
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.
9
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.
10
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.
11
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.
12
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.
13
1.1 – Introdução aos microprocessadores digitais.
● Tipos de microprocessadores por principais áreas de atuação
Microprocessadores
Sistemas computacionais de propósito geral
Microcontroladores
Sistemas embarcados
DSPs
Sistemas p/ Processamento Digital de Sinais*
* 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.
14
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.
15
1.1 - Introdução aos microprocessadores digitais.
● Super Arquitetura de Harvard proposta pela Analog Devices
Bus de Endereços da MD
Bus de Endereços da MP
Bus de Dados da MP
CPU
Cache de
instruções
MEMÓRIA DE
PROGRAMA
MEMÓRIA
Bus de Dado da MD
Bus de Controle
UNIDADE
DE
CONTROLE
DE E/S
DE
DADOS
UNIDADES
DE E/S
16
1.1 - Introdução aos microprocessadores digitais.
● Arquitetura modificada de Harvard proposta pela Texas Instruments
17
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).
18
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
19
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.
20
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.
21
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.
22
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 ...
23
1.1 - Introdução aos microprocessadores digitais.
MIPS
● Gráficos evolutivos dos microprocessadores X86
● 1 - Performance dos Ps em quantidade de instruções executadas
por segundo
80386DX
5
4,5
4
3,5
3
2,5
2
1,5
1
0,5
0
80386SX
80286
8086
8080
8008
70
72
74
76
78
80
82
84
86
88
90
Anos
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
120
100
PENTIUM
M I PS
80
60
40
20
486
386
0
70
72
74
76
78
80
82
84
86
88
90
92
94
An o s
25
1.1 - Introdução aos microprocessadores digitais.
● Gráficos evolutivos dos microprocessadores X86
● 2 - Complexidade dos Ps em número de transistores por chip
Mil transistores/chip
300
80386
250
200
150
80286
100
50
4004
8008
8080
80186
8085
8086/88
0
70
72
74
76
78
81
82
85
Anos
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
3500
PENTIUM
Mil transistores/chip
3000
2500
2000
1500
486
1000
500
386
0
85
88
93
An o s
27
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.
28
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.
29
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.
30
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.
31
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.
32
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
33
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
34
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.
35
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.
36
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.
37
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
Hardware
Hardware/Software
Software
Custo
38
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.
39
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.
40
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 dos
requisitos de
hardware
Projeto e
testes do
hardware
Análise e
concepção
do sistema
Integração
do sistema
Análise dos
requisitos de
software
Projeto e
testes do
software
41
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 dos
requisitos de
hardware
Análise e
concepção
do sistema
Projeto e
testes do
hardware
Substrato de modelagem integrado
Análise dos
requisitos de
software
Integração
do sistema
Projeto e
testes do
software
42
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.
43
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).
Receita
Pico de receita no meio da vida útil
D – Atraso
2W – Janela de mercado
Receita de mercado = D(3W-D)/2W2
Perda de receita pelo atraso da entrada
do produto no mercado (área azul)
D
Início da janela de Mercado
W
W
Fim da vida útil
44
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
45
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.
46
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.
47
1.2 - Contextualizações sobre hardware e software no projeto de
sistemas digitais microprocessados.
● Exemplo 2: algoritmo de codesign
Descrição do sistema
Especificações
Desenvolvimento e Análise
Validação
Particionamento e mapeamento
Performance estimada
Especificações do particionamento
Evolução
Síntese de SW
Código C
Síntese de interfaces
VHDL
Síntese de HW
VHDL
Prototipação
48
1.2 - Contextualizações sobre hardware e software no projeto de
sistemas digitais microprocessados.
● Anexo 1: estrutura de um FPGA
Pinos de interface
IOB
IOB
Matriz de roteamento
CLB
CLB
CLB
CLB
49
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.
50
Download

Tópicos em Microprocessadores Digitais - DEE