Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
REFERNCIA BIBLIOGRFICA
NICODEMOS, Fernando Garcia. Anlise de Desempenho de Processadores Embarcados
para Controladores Lgicos Programveis. 2007. 108f. Tese de mestrado Instituto
Tecnolgico de Aeronutica, So Jos dos Campos.
CESSO DE DIREITOS
NOME DO AUTOR: Fernando Garcia Nicodemos
TTULO DO TRABALHO: Anlise de Desempenho de Processadores Embarcados para
___________________________
Fernando Garcia Nicodemos
Rua Coronel Agostinho da Fonseca, 270 Serra da Cantareira
02340-050 So Paulo SP
iii
Roberto dAmore
Osamu Saotome
Emlia Villani
Duarte Lopes de Oliveira
Paulo Eigi Miyagi
Renato C. Giacomini
Presidente - ITA
Orientador - ITA
Membro Interno - ITA
Membro Interno - ITA
Membro Externo - USP
Membro Externo - FEI (Suplente)
ITA
iv
Agradecimentos
Agradeo e dedico esta tese, acima de tudo, aos meus pais e irmo que sempre me
deram apoio e incentivo aos estudos, principalmente na escolha pela rea acadmica e de
pesquisa aplicada ao desenvolvimento de projetos. Sem eles nada teria sentido.
Agradeo o apoio prestado pelas empresas Atos, Alphatech, Daruma e Nishicom no
estudo e aplicao das tecnologias utilizadas nesta avaliao.
Reconheo o esforo do meu orientador Prof. Dr. Osamu Saotome, agradecendo a
ele meu desenvolvimento profissional alm da sua dedicao e apoio para que esta tese
pudesse ser realizada da melhor maneira possvel.
Agradeo com muito orgulho aos meus amigos Prof. Aguinaldo Prandini Ricieri e
Prof. Dr. Renato Giacomini pelo incentivo e apoio para o incio dos estudos no curso de
ps-graduao do ITA.
Agradeo a Fundao Casimiro Montenegro Filho e seus funcionrios pelo espao e
equipamentos cedidos para a realizao dos testes prticos desta tese.
Finalizando, este prazeroso trabalho dedicado aos demais professores e amigos que
trabalharam e estudaram comigo e que inmeras vezes contriburam para a soluo das
dificuldades encontradas.
vi
Resumo
vii
Abstract
Currently, embedded processors are available from different origins and technologies,
including in its architectures, cache memory and pipeline, beyond compiler optimizations.
The choices include from 8-bit micro-controllers to 16 and 32-bit processors that fit in a price
range of ten US dollars. In this context, the broad range of solutions at architecture level
makes important the identification of proper methods to measure the performance of a
processor, taking as a comparative base the CPU (Central Processing Unit) of a PLC
(Programmable Logic Controller). This work attempts to fill this gap and its main goal is the
evaluation of embedded processors that can be used in new system designs in the field of the
industry processes automation. In this thesis, it will be introduced the principles of the PLC
operation, followed by concepts and methods related to the performance evaluation in microprocessed systems. The metric presented by the PLC manufacturers to provide the
performance of its CPUs will be discussed. From the statistical study in ladder programs with
real aplications, it is defined a default workload consisting of a program described in the
ladder language used as the foundation to create a synthetic benchmark to evaluate the
performance of the processors under study. Finally, are reported the performance results for
three systems using processors with different architectures and the reasons that they reach a
performance improvement based on the processor used in the CPU taken as a comparative
reference.
viii
Lista de Ilustraes
ix
Lista de Tabelas
Sumrio
Introduo ............................................................................................................. 12
2.2
2.3
2.4
Princpio de funcionamento.................................................................................................................23
2.5
Elementos do hardware .......................................................................................................................25
2.5.1
A CPU.............................................................................................................................................26
2.5.1.1
Processador............................................................................................................................26
2.5.1.2
Sistema de memria ..............................................................................................................27
2.5.2
Interfaces de entrada e sada ...........................................................................................................28
2.5.2.1
Entradas e sadas analgicas..................................................................................................29
2.5.2.2
Entradas e sadas digitais.......................................................................................................29
2.6
3.2
Evoluo da informtica......................................................................................................................34
3.2.1
Desktops..........................................................................................................................................35
3.2.2
Servidores .......................................................................................................................................35
3.2.3
Sistemas embarcados ......................................................................................................................36
3.3
3.4
Mtodos de anlise de desempenho.....................................................................................................38
3.4.1
Pacote integrado de benchmarks.....................................................................................................38
3.4.2
Benchmarks para sistemas embarcados ..........................................................................................39
3.4.3
Programas benchmarks ...................................................................................................................40
3.5
3.6
4.3
Classificao dos programas ..............................................................................................................49
4.3.1
Programas ladder pequenos ............................................................................................................49
4.3.2
Programas ladder mdios ...............................................................................................................51
4.3.3
Programas ladder grandes...............................................................................................................53
4.4
5.2
xi
5.2.1
5.2.2
5.2.3
5.2.4
5.3
Concluso .............................................................................................................. 98
7.1
Trabalhos futuros...............................................................................................................................107
12
1 Introduo
13
escritrios. Pelo fato de usarem kernels e pelas opes restritas de fornecimento dos
resultados, os benchmarks EEMBC no possuem a reputao de serem bons medidores de
desempenho relativo entre diferentes sistemas. O programa sinttico Dhrystone, na qual o
EEMBC tenta substituir, ainda utilizado para fornecer resultados de desempenho em
algumas aplicaes embarcadas [2]. Neste contexto, a utilizao dos benchmarks EEMBC no
totalmente adequada a este trabalho principalmente pelo fato de no operar com nfase
funcional e estruturada na linguagem ladder, a mais usada para desenvolver programas
aplicativos em CLPs no mercado brasileiro, alm do fato de ser uma medida de desempenho
fechada e de alto custo.
Como alternativa, esto disponveis programas benchmarks conceituados em cinco
diferentes nveis listados em ordem de preciso e exatido de predio de desempenho. So
apresentados como: aplicaes reais, aplicaes modificadas (ou scripts), kernels, toy
benchmarks e benchmarks sintticos [1]. Estes so adequados para a avaliao de
desempenho deste trabalho, pois alm da possibilidade de serem estruturados e moldados com
base na linguagem ladder, so programas que podem ser utilizados de acordo com seu tipo e
sua definio ao objetivo desta proposta.
O presente trabalho procura preencher essa lacuna utilizando-se da disponibilidade
desses programas e tem como objetivo principal a avaliao criteriosa do desempenho de
processadores embarcados a serem utilizados em novos projetos de sistemas que atendam
crescente demanda no campo da automao de processos industriais. Essa avaliao
proposta como um meio de atender ao requisito de aumento de desempenho baseado em uma
soluo em nvel de arquitetura proposta para o projeto de uma nova CPU para um fabricante
de CLP.
So abordadas as definies e princpio de funcionamento do CLP, tendo como foco
principal, o controle de processos com variveis do tipo digital. As principais linguagens de
14
programao do CLP so apresentadas com nfase na linguagem ladder pelo fato de ter
surgido a partir de diagramas de controle a rels utilizados nos controles de processo
predecessores, alm de ser comumente utilizada e no ser dependente de um nico fabricante.
Para uma avaliao fundamentada, fornecida a relao de desempenho relativo entre
dois sistemas passveis de comparao. So comentados os pacotes integrados de benchmarks
e definido o nvel de programa utilizado como mtodo de medio do desempenho dos
processadores embarcados. O programa tem por base de escolha o conceito do benchmark
sinttico dentre cinco nveis disponveis. Um modelo de relatrio para a apresentao dos
resultados obtidos na avaliao tambm fornecido.
A escolha de um programa para avaliao do desempenho dos processadores em
anlise, torna relevante o estudo aprofundado de programas aplicativos utilizados em controle
de processo para a criao de uma carga de trabalho adequada anlise de um processador da
CPU de um CLP. Desta forma, so tomados para estudo 31 programas ladder com distintas
aplicaes reais. realizada uma classificao em trs grupos de programas de acordo com o
nmero de linhas de programa ladder presentes neste conjunto abordado. Como resultado
apresentada uma anlise estatstica das instrues ladder nos programas estudados, resultando
em uma contagem com nmeros parciais nos trs grupos de programas e em nmeros do
resultado total.
So apresentados os resultados de uma ampla pesquisa de medidas e unidades
fornecidas pelos fabricantes de CLP. Com base na anlise estatstica praticada e nas
referncias obtidas com a pesquisa mtrica criado um programa ladder definido como carga
de trabalho padro. Este utilizado para medir o tempo de execuo co-relacionado com o
processador embarcado em uma CPU de um CLP definido como uma referncia de
comparao para os demais processadores este trabalho. Baseado no princpio de operao do
programa ladder, aplicado o conceito do mtodo definido e criado um benchmark sinttico
15
com verses em linguagem C e Assembly para a avaliao de cada arquitetura escolhida como
possvel componente de um novo projeto.
Finalmente, feita a aquisio dos tempos de execuo do benchmark sinttico
implementado nos processadores em estudo e so apresentados os resultados do desempenho
relativo de trs processadores com arquiteturas diferenciadas, alm das razes que
propiciaram o aumento de desempenho em relao ao processador adotado como referencial
comparativo.
Alm do captulo 1 introdutrio, esta tese composta de 6 captulos: o texto,
apresentado nos captulos de 2 a 6 e o captulo 7 de concluso e proposta para a seqncia
deste trabalho.
No captulo 2 definido o processo com variveis contnuas e a aplicao do controle
contnuo e o processo com variveis digitais e a aplicao do controle digital. abordada uma
breve descrio da evoluo histrica do controle por lgica de rels at o Controlador Lgico
Programvel dos dias de hoje. A literatura citada trata estes assuntos com maior profundidade
e no h pretenso, neste texto, de substitu-la. So abordadas as principais definies para o
entendimento de um CLP bem como o seu princpio de funcionamento e os seus elementos de
hardware. Neste captulo, so abordadas tambm, as principais linguagens de programao
dos CLPs disponveis atualmente, com apresentao enftica na linguagem ladder.
No captulo 3 busca-se fornecer uma viso apenas sobre os aspectos relevantes dos
fundamentos da anlise de desempenho de sistemas embarcados microprocessados. Na
primeira seo feita uma breve descrio da evoluo histrica dos processadores. A partir
dessa evoluo, so apresentados os rumos da computao e comentada a diviso deste
mercado em trs nichos de atuao: servidores, desktops e sistemas embarcados. Na segunda
seo so fornecidos os conceitos para a avaliao atravs do desempenho relativo entre dois
sistemas. So comentados os pacotes de benchmarks existentes e os motivos pela no adoo
16
17
18
19
20
O controle digital de processos teve seu incio marcado pela utilizao de dispositivos
eletromecnicos conhecidos como rels. Durante a dcada de 50 e at o incio da dcada de
60, estes eram os recursos mais utilizados e praticamente a nica opo para efetuar controles
lgicos nas linhas de produo e em mquinas isoladas. Para efetuar o controle, os contatores,
temporizadores e dispositivos de proteo constituam a base de projetos de intertravamentos
elaborados em diagramas a rels (eram os chamados painis de controle a rels em ingls
relay panel). As chaves e os contatos estabeleciam os nveis lgicos baseados na lgica
binria. Tais sistemas de controle, apesar de funcionais, apresentavam problemas de ordem
prtica bastante relevantes. Como as instalaes possuam uma grande quantidade de
elementos, a ocorrncia de uma falha qualquer significava o comprometimento de vrias
horas ou mesmo dias de trabalho e pesquisa para a correo do elemento faltoso. Os rels
apresentavam dimenses fsicas elevadas, fazendo com que os painis ocupassem um grande
espao, alm de exigir um projeto com alto grau de proteo associado (umidade,
temperatura, gases inflamveis, oxidaes, poeira, etc.) [3].
Outro fator ainda mais comprometedor na utilizao dos painis a rels era o fato de
que, como a programao lgica do processo controlado era realizada por interconexes
eltricas fixas (hardwired), eventuais alteraes exigiam interrupes no processo produtivo.
21
Como conseqncia, tornava-se obrigatria a atualizao das listas de fiao para garantir a
documentao do sistema [3].
Com o intuito de substituir as vlvulas a vcuo, o avano da tecnologia permitiu o uso
de alguns dispositivos transistorizados no final da dcada de 50 e incio dos anos 60. Tais
dispositivos conseguiram uma grande reduo de muitos problemas existentes nos rels.
Porm foi com o surgimento de componentes eletrnicos integrados em larga escala (LSI
Large Scale Integration), que novas fronteiras se abririam ao mundo dos computadores
digitais e, em especial, s tecnologias para a automao indutrial [3].
A primeira conceituao dos Controladores Lgicos Programveis (CLP ou em ingls,
Programmable Logic Contoller PLC) e a primeira experincia de um controle de lgica que
permitisse a programao por recursos de software foi realizada em 1968 na diviso de
hidramticos da General Motors Corporation. Este deveria ter as seguintes caractersticas [4]:
Pelo exposto, iniciava-se um interesse especial por parte dos engenheiros em como os
CLPs poderiam ser usados no controle industrial para substituir os painis de controle a rels.
Deste ponto em diante, com o aparecimento das demandas, as capacidades e facilidades do
CLP foram facilmente implementadas com o avano da tecnologia [4].
22
A primeira gerao de CLPs recebeu uma grande melhoria com o advento dos
microprocessadores ocorrido durante os anos 70 (os primeiros microprocessadores foram
produzidos pela American Intel Corporation e a Texas Instruments em 1971 [3] e o CLP
microprocessado foi introduzido em 1977 pela Allen-Bradley Corporation. Era baseado no
microprocessador 8080 [4]). Assim, este importante marco consolidou o uso do CLP como
uma unidade isolada de processamento. Atualmente, alm dos CLPs contarem com diversas
tecnologias embarcadas, contam tambm com diversas linguagens de programao e padres
internacionais para o desenvolvimento de programas destinados ao controle do processo
produtivo.
O produto deve ser projetado para operao em ambiente industrial e deve ser
preparado para diversas condies ambientais.
23
24
Variveis de sada: so sinais controlados por cada dispositivo de sada do CLP. Tais
pontos servem para interveno direta no processo controlado por dispositivo de acionamento
prprio, ou tambm para sinalizao de estado. So exemplos de dispositivos de sada os
contatores, vlvulas, lmpadas, displays, dentre outros.
25
26
2.5.1 A CPU
2.5.1.1 Processador
27
28
O sistema de entradas e sadas (I/O) realiza a conexo fsica entre a CPU e o mundo
externo por meio de vrios tipos de circuito de interfaceamento. Este sistema subdividido
em: interface de natureza digital e interface de natureza analgica.
29
Com a criao dos CLPs para substituir os painis de controle a rels, surgiu tambm a
necessidade de uma linguagem de programao que fosse familiar experincia de pessoas
envolvidos com a lgica de rels [3]. Este fato implica na necessidade de uma linguagem de
alto nvel para fornecer comandos prximos s funes utilizadas por um profissional de
30
31
Dentre as linguagens apresentadas, o diagrama ladder tem sido o mtodo mais comum
e a forma mais clara de descrever a lgica dos circuitos a rels no mercado brasileiro. Sua
utilizao na programao dos CLPs tornou-se natural com a necessidade de substituir os
antigos painis, criando assim o ambiente familiar desejado para o usurio ou para o projetista
das lgicas de controle [4].
Um diagrama ladder consiste de linhas horizontais e verticais que representam as
conexes eltricas e de smbolos padres para representar os elementos dos circuitos e as
funes encontradas em um sistema de controle. No exemplo da figura 2.6 foram
apresentados smbolos comumente utilizados: instruo de entrada ou contato normalmente
aberto (I0 e I1), contato normalmente fechado (I2) e instruo de sada (O1). De acordo com
padres internacionais atuais, a simbologia da linguagem ladder pode ser utilizada para
realizar qualquer lgica de controle e os diagramas produzidos podem ser to complexos
quanto forem as necessidades das aplicaes de controle [4]. Por ser considerada uma
linguagem de mais alto nvel, um compilador tem o papel de traduzir estes smbolos nas
linguagens utilizadas pelos processadores mais recentes, usualmente em C ou Assembly.
Pelo fato de no depender de um nico fabricante, o diagrama ladder a forma de
programao do CLP utilizada neste trabalho para a definio de uma carga de trabalho
padro adequada anlise de um processador embarcado em uma CPU. O programa ladder
definido como carga de trabalho padro ser utilizado na criao de um benchmark sinttico
para avaliar o desempenho das diferentes arquiteturas dos processadores escolhidos face ao
referencial adotado para o estudo. O programa ladder ser apresentado no captulo 5.
32
A tecnologia dos computadores sofreu um grande progresso desde que foi criado o
primeiro computador eletrnico de propsito geral h 55 anos. Durante os seus primeiros 25
anos, tanto avanos na tecnologia quanto inovaes no projeto da arquitetura contriburam
para a alta taxa de evoluo. Neste perodo o desempenho apresentava uma taxa de
crescimento de 25% a 30% ao ano para os mainframes e os minicomputers que
predominavam na indstria da poca [1].
Entretanto, no comeo da dcada de 70, os projetistas se tornaram dependentes da
tecnologia dos circuitos integrados com o surgimento dos microprocessadores. A
possibilidade de melhoramentos na tecnologia dos semicondutores, em contrapartida com os
mainframes e minicomputers pouco integrados, conduziram os computadores a uma taxa de
crescimento maior, aproximadamente 35% ao ano. Essa taxa, combinada com as vantagens
do custo de uma produo em massa, resultou em um aumento na utilizao de equipamentos
comerciais baseados em sistemas microprocessados [1]. Em particular, foi no fim desta
dcada que as indstrias iniciaram a utilizao de CLPs baseados em microprocessadores para
o controle de processos, como mencionado no captulo anterior.
No incio da dcada de 80, foi possvel o desenvolvimento de um novo conjunto de
arquiteturas, chamadas arquiteturas RISC (Reduced Instruction Set Computer). As arquiteturas
baseadas em RISC concentraram a ateno dos projetistas em duas tcnicas para aumentar o
desempenho dos processadores, a explorao do paralelismo em nvel de instrues
(inicialmente atravs do pipeline e mais tarde atravs do multiple instruction issue) e o uso de
memria cache (inicialmente de forma simples e mais tarde usando formas de organizao e
33
34
35
3.2.1 Desktops
3.2.2 Servidores
medida que ocorreu o aumento da demanda para os desktops, cresceu o papel dos
servidores no fornecimento de servios mais confiveis e em maior escala. A World Wide
Web acelerou essa tendncia devido ao crescimento na demanda por servidores Web e o
aumento da sofisticao dos servios baseados nela. Os servidores tm um papel importante
na computao empresarial em grande escala e so usados para substituir o mainframe
tradicional [1].
No caso dos servidores, diferentes caractersticas so importantes. Primeiro, a
disponibilidade crtica, ou seja, o sistema tem que fornecer um servio de forma confivel e
eficiente ininterruptamente. Parte desses sistemas inevitavelmente pode falhar e assim, em
36
37
aplicao necessite apenas das memrias internas do componente, porm na grande maioria
das vezes necessria a utilizao de memrias externas. Assim sendo, memrias adicionais
podem representar uma poro substancial do custo do sistema e aumentar significativamente
o consumo de energia do conjunto [1].
Pode-se dizer que um sistema embarcado mais rpido do que um outro quando uma
carga de trabalho executada em menor tempo. Desta forma, existe interesse por parte do
usurio em reduzir o tempo de resposta (tempo entre o incio e o trmino do evento), tambm
conhecido como tempo de execuo.
Na comparao de dois casos alternativos, so apresentados o desempenho de dois
sistemas diferentes, ditos sistema X e sistema Y. A frase X mais rpido que Y usada
quando o tempo de execuo em X menor do que em Y para o processamento de uma
mesma carga de trabalho. De forma genrica, dizer que X n vezes mais rpido que Y
significa obter a seguinte relao de desempenho relativo [1]:
D rel. =
tempo de execuo y
tempo de execuo x
=n
1
tempo de execuo y Desempenho y Desempenho x
D rel. =
=
=
=n
1
tempo de execuo x
Desempenho y
Desempenho x
38
39
40
41
42
43
44
45
46
A anlise foi realizada a partir de uma contagem manual de cada instruo ladder para
cada programa tomando o conjunto de instrues disponibilizado em um manual por um
fabricante de CLP. Desta forma, foram coletados a quantidade de instrues ladder de cada
tipo e o nmero de linhas para cada programa seguindo a seqncia e a nomenclatura
definida.
47
DEFINIO
Soma/subtrai uma constante de contedo de registro (Hex)
Soma/subtrai uma constante de contedo de registro (Dec)
Calcula o fator de ajuste e aplica
Operao lgica "E" entre estados internos
Operao lgica "E" entre estados internos invertidos
Conversor ASCII p/ BCD
Converso de dados Decimais p/ ASCII com ponto decimal
Converso de dados Decimais p/ ASCII
Transfere 16 estados p/um registro de 16 bits
Movimentao de bloco de dados indexados na origem e no destino
Chamada de sub-rotina
Compara contedo de registros
Contador
Contador 2
Conversor Dec/Hex ou Hex/Dec
Conversor Dec/Hex ou Hex/Dec de 32 bits
Calcula CHECK SUM (XOR) dos Bytes
Contador Rpido
Desabilita interrupo 1
Diviso Decimal
Diviso Hexadecimal
Diviso binria longa (Hexadecimal)
Diviso binria de 32 bits (Hexadecimal)
Ajusta o zero e o fundo de escala de uma E.A.
Comparao em ponto flutuante
Converso em ponto flutuante
Diviso em ponto flutuante
Filtro
Multiplicao em ponto flutuante
Subtrao em ponto flutuante
Soma em ponto flutuante
Carregamento de um bloco de dados em ponto flutuante
Salto para endereo de desvio
Entrada (Comeo de operao em uma linha Normalmente Aberto)
Leitura de dia/ms/ano
Entrada imediata
Comea a operao em uma linha ou bloco com chave (Normalmente Fechado)
Comea linha com chave (Normalmente Aberto) indexada
Leitura de hora/min/seg
Executa a mdia aritmtica de 3 a 125 amostras
Monoestvel de uma varredura no acionamento
Monoestvel de uma varredura no desacionamento
Copia contedo de um registro para outro
Carregar valor (constante) em registro
MOV indexado no destino
Multiplicao Decimal
Multiplicao Hexadecimal
48
49
% TOTAL
2
8
0
0
0
0
0,02%
0,09%
0,00%
0,00%
0,00%
0,00%
BCDAP
0,00%
BCDAS
BITW
BMOVX
CALL
CMP
CNT
CNT2
0
3
14
88
163
4
97
0,00%
0,03%
0,16%
1,02%
1,89%
0,05%
1,12%
8
13
0
2
0
0,09%
0,15%
0,00%
0,02%
0,00%
CONV
CONVL
CCS
CTCPU
DINT1
2
8
2
1
8
8
11
1
2
9
21
1
14
2
3
7
14
46
1
2
4
5
7
11
6
10
34
1
7
2
12
30
35
3
6
2
4
1
7
18
16
50
2
1
1
4
1
3
14 496 585 686 625 148 282 405 696 257 147 329
LDATA
LDI
LDN
LDX
LTIME
MED
MONOA
MONOD
MOV
MOVK
MOVX
MULT
2
8
41
13
30
49
2
18
16
38
25
11
23
9
22
1
1
2
131 158 295 306
3
2
2
MULTB
MULBL
OR
ORN
OUT
OUTI
69
89
53
16
14
1
132 123
21
20
3
5
3
10
0,12%
77
1
0
0
0
679
92
0,00%
0,00%
0,00%
7,87%
1,07%
20
1
11
17
13
37
1
31
18
12
3
26
2
82
69
18
22
13
8
5
18
35
16
16
6
20
9
17
14
1
4
26
12
10
1
1
0,02%
17,37%
0,03%
0,10%
0,00%
3,36%
0,06%
1,53%
1,96%
0,01%
0,05%
23
1
12
0,13%
4
8
11
50
PRINT
SCL
SCL2G
SCRLL
SDATA
SETR
SFR
SHIFB
SHIFN
SHIFL
STIME
SUB
SUBB
SUBBL
0,02%
0,00%
0,01%
0,02%
0,00%
0,00%
0,00%
0,00%
0,00%
0,00%
0,00%
0,00%
0,00%
0,09%
54,11%
2
1499
3
9
0
290
5
132
169
1
4
OUTIN
OUTN
OUTR
OUTX
PID
PID_I
% TOTAL
2
0
1
2
0
0
0
0
0
0
0
0
0
8
4670
1
6
1
7
3
1
3
1
1
10
1
7
1
7
5
1
1
1
23
10
17
0,00%
20
5
7
8
3
0,23%
0,06%
0,08%
0,09%
0,03%
0,00%
23
3
0
5
118
2
0
62
8
5
7
1
1
0,27%
0,03%
0,00%
0,06%
1,37%
0,02%
0,00%
0,72%
0,09%
0,06%
0,08%
0,01%
0,01%
51
P8 P10 P11 P12 P14 P15 P20 P27 P28 P31 TOTAL
3
5
3
5
4
5
3
1
11
11
26
2
29
20
20
3
1
1
1
24
2
22
4
8
2
6
4
4
6
39
1
1
1
1
3
2
11
25
1
10
2
2
5
44 887 1095 1289 1291 232 490 796 1145 508 244 609
TOTAL
N LINHAS 39 260 297 308 336 68 156 203 329 115 68 202
35
19
2
121
114
0
1
9
1
40
9
3
0
2
5
0
0
0
0
0
0
% TOTAL
0,41%
0,22%
0,02%
1,40%
1,32%
0,00%
0,01%
0,10%
0,01%
0,46%
0,10%
0,03%
0,00%
0,02%
0,06%
0,00%
0,00%
0,00%
0,00%
0,00%
0,00%
8630
100,00%
2381
LD+LDN+OUT+MONOA
82,71%
LD+OUT
61,98%
Foram classificados como mdios, os programas que possuem de 350 a 649 linhas de
programa ladder. Foram obtidos 13 programas de mdio porte inseridos nesta classificao.
As tabelas 4.6 e 4.7 mostram a contagem do nmero de instrues ladder referentes a
este grupo de programas. As 4 instrues ladder em destaque compem 83,57% da freqncia
de uso neste grupo.
52
P2
ADSUB
ADSUD
AJUST
AND
ANDN
ASCB
BCDAP
BCDAS
BITW
BMOVX
CALL
CMP
CNT
CNT2
CONV
CONVL
CCS
CTCPU
DINT1
DIV
DIVB
DIVBL
DVBLL
FATOR
FCMP
FCONV
FDIV
FILT
FMUL
FSUB
FSUM
FTAB
JMP
LD
LDATA
LDI
LDN
LDX
LTIME
MED
MONOA
MONOD
MOV
MOVK
MOVX
MULT
MULTB
MULBL
OR
ORN
OUT
OUTI
OUTIN
OUTN
OUTR
OUTX
P4
7
5
P5
P6
Programas Mdios
P7 P13 P16 P18 P24 P25 P26 P29 P30 TOTAL
4
6
2
3
4
20
53
7
14
35
5
13
15
42
2
3
13
49
2
1
4
13
64
1
10
16
10
54
1
5
46
2
10
70
8
39
8
6
24
4
24
48
5
1
4
4
12
27
40
1
8
42
27
1
5
47
2
20
2
1
5
47
2
21
2
2
3
2
2
48
4
2
1
2
6
1
1
1230 906 1296 612 1062 1012 1056 912 1262 821 1367 1149 1151
2
2
4
1
1
1
2
2
2
1
1
337 163 434 110 202
1
3
2
2
4
177
285
211
399
158
455
371
371
108
31
28
68
33
1
28
39
54
1
9
16
45
50
40
82
4
3
13
2
5
58
2
66
57
101
4
4
20
56
1
9
18
56
1
9
18
70
7
208
1
232
40
234
40
35
32
32
45
1
50
29
5
11
4
29
27
17
49
4
27
46
2
2
1
2
54
202
39
135
35
202
1
14
11
6
0
0
0
0
0
11
28
138
615
23
116
76
73
0
6
0
3
0
9
48
0
0
0
0
4
0
0
0
0
17
13836
19
0
3673
4
21
5
751
100
332
373
5
16
6
0
0
0
2025
170
0
35
0
9
% TOTAL
0,06%
0,05%
0,02%
0,00%
0,00%
0,00%
0,00%
0,00%
0,05%
0,12%
0,57%
2,53%
0,09%
0,48%
0,31%
0,30%
0,00%
0,02%
0,00%
0,01%
0,00%
0,04%
0,20%
0,00%
0,00%
0,00%
0,00%
0,02%
0,00%
0,00%
0,00%
0,00%
0,07%
57,00%
0,08%
0,00%
15,13%
0,02%
0,09%
0,02%
3,09%
0,41%
1,37%
1,54%
0,02%
0,07%
0,02%
0,00%
0,00%
0,00%
8,34%
0,70%
0,00%
0,14%
0,00%
0,04%
53
P2
PID
PID_I
PRINT
SCL
SCL2G
SCRLL
SDATA
SETR
SFR
SHIFB
SHIFN
SHIFL
STIME
SUB
SUBB
SUBBL
SUM
SUMB
SUMBL
TAB
TMR
TXPR
UPDB
UPDBC
UPDD
UPDDC
WAND
WBIT
WBITX
WLDX
WNOT
WOR
WXOR
CAV
GAV
SYNC
TMRX
P4
P5
P6
Programas Mdios
P7 P13 P16 P18 P24 P25 P26 P29 P30 TOTAL
11
1
25
10
1
10
1
54
12
2
2
24
2
10
3
49
1
25
1
29
1
28
2
1
39
2
17
11
38
3
8
1
9
1
16
5
2
1
23
1
3
5
31
1
8
8
8
15
33
25
39
11
16
13
13
24
48
75
25
1
1
2
3
5
65
2
1
1
19
5
1
46
2
1
29
1
29
11
11
46
4
1
1
9
1
9
27
1
21
5
2
5
2
6
30
15
3
7
32
22
11
1
7
26
9
30
9
30
1
2
5
4
2
2
5
5
1
2
5
4
1
2
5
4
8
13
18
1
2
1
4
2
1
1
1
2
1
6
4
1
1
0
2
2
85
0
1
13
373
12
0
167
6
13
85
5
8
126
31
56
264
278
1
2
13
18
96
22
2
0
8
5
0
0
0
0
0
0
TOTAL 2148 1547 2311 1093 1791 1742 1835 1683 2126 1498 2343 2076 2079 24272
N LINHAS 581 471 578 370 527 553 455 525 464 511 520 515 517 6587
% TOTAL
0,00%
0,01%
0,01%
0,35%
0,00%
0,00%
0,05%
1,54%
0,05%
0,00%
0,69%
0,02%
0,05%
0,35%
0,02%
0,03%
0,52%
0,13%
0,23%
1,09%
1,15%
0,00%
0,01%
0,05%
0,07%
0,40%
0,09%
0,01%
0,00%
0,03%
0,02%
0,00%
0,00%
0,00%
0,00%
0,00%
0,00%
100,00%
LD+LDN+OUT+MONOA
83,57%
LD+OUT
65,35%
Foram classificados como grandes, os programas que possuem 650 linhas de programa
ladder ou mais. Foram obtidos 6 programas de grande porte inseridos nesta classificao.
54
34
2
16
21
56
52
190
3
256
12
3
4
2
5
3
1
21
97
2
20
92
2
3
10
18
58
2
8
13
8
13
9
3
7
9
12
7
6
25
127
5
24
65
51
6
21
4
2
2
2
5
FTAB
JMP
LD
LDATA
LDI
LDN
LDX
LTIME
MED
MONOA
MONOD
MOV
MOVK
MOVX
MULT
MULTB
24
3
3
2
2
4860 1368 1392 1235 2384 1078
2
1
1
5
5
1330 299
22
2
1
328
322
745
75
6
68
56
1
11
2
117
2
26
92
119
81
2
1
55
213
15
71
7
68
55
13
2
896
8
86
353
2
5
101
27
86
93
49
24
0
0
0
0
0
28
31
77
160
629
9
328
47
29
0
2
0
2
0
2
10
0
0
0
0
0
0
0
0
% TOTAL
0,21%
0,11%
0,00%
0,00%
0,00%
0,00%
0,00%
0,12%
0,14%
0,34%
0,70%
2,76%
0,04%
1,44%
0,21%
0,13%
0,00%
0,01%
0,00%
0,01%
0,00%
0,01%
0,04%
0,00%
0,00%
0,00%
0,00%
0,00%
0,00%
0,00%
0,00%
0,00%
34
12317
14
0
3528
24
12
8
1195
42
422
590
14
13
23
0,15%
54,01%
0,06%
0,00%
15,47%
0,11%
0,05%
0,04%
5,24%
0,18%
1,85%
2,59%
0,06%
0,06%
0,10%
55
TOTAL
N LINHAS
331
9
99
1
20
3
1
20
12
4
10
4
3
283
9
1
37
1
38
2
39
16
7
11
1
22
9
10
1
22
19
63
10
1
18
1
2
38
11
1
17
1
2
39
17
2
117
3
3
3
3
3
95
35
26
47
5
2
10
7
1
3
22
27
18
3
46
6
6
3
19
16
3
17
15
6
4
3
32
34
40
6
1
3
1
2
11
1
8
5
4
8
0
0
1463
78
0
38
0
17
0
1
0
68
11
6
10
462
9
0
67
21
10
166
0
2
96
38
7
234
105
0
3
123
2
25
59
9
0
4
0
0
0
0
0
0
0
% TOTAL
0,04%
0,00%
0,00%
6,42%
0,34%
0,00%
0,17%
0,00%
0,07%
0,00%
0,00%
0,00%
0,30%
0,05%
0,03%
0,04%
2,03%
0,04%
0,00%
0,29%
0,09%
0,04%
0,73%
0,00%
0,01%
0,42%
0,17%
0,03%
1,03%
0,46%
0,00%
0,01%
0,54%
0,01%
0,11%
0,26%
0,04%
0,00%
0,02%
0,00%
0,00%
0,00%
0,00%
0,00%
0,00%
0,00%
22805
100,00%
3065 695 693 666 1032 709
6860
LD+LDN+OUT+MONOA
9330 2367 2419 2225 4321 2143
81,14%
LD+OUT
60,43%
56
Como resultado total, foi obtida uma contagem estatstica de instrues ladder em 31
programas com aplicaes reais em controle de processos.
A tabela 4.10 em conjunto com as tabelas 4.11, 4.12 e 4.13 mostram o resumo da
contagem estatstica total realizada nos programas de P1 a P31. As 4 instrues ladder em
destaque compem 82,44% da freqncia de uso nos programas ladder estudados.
Resultado total
LD
55,33%
LDN
15,62%
OUT
7,48%
MONOA
4,01%
Total
(LD+LDN+OUT+MONOA)
82,44%
Outras
17,46%
TOTAL
100%
ADSUB
ADSUD
AJUST
AND
ANDN
ASCB
BCDAP
BCDAS
BITW
BMOVX
CALL
CMP
CNT
CNT2
CONV
CONVL
CCS
CTCPU
DINT1
TOTAL
% TOTAL
65
43
6
0
0
0
0
28
45
119
386
1407
36
541
131
115
0
10
0
0,12%
0,08%
0,01%
0,00%
0,00%
0,00%
0,00%
0,05%
0,08%
0,21%
0,69%
2,53%
0,06%
0,97%
0,24%
0,21%
0,00%
0,02%
0,00%
57
% TOTAL
7
0
12
60
0
0
0
0
4
0
0
0
0
59
30823
44
2
8700
31
42
13
2236
147
886
1132
20
33
39
8
0
0
4167
340
0
93
5
33
8
6
0,01%
0,00%
0,02%
0,11%
0,00%
0,00%
0,00%
0,00%
0,01%
0,00%
0,00%
0,00%
0,00%
0,11%
55,33%
0,08%
0,00%
15,62%
0,06%
0,08%
0,02%
4,01%
0,26%
1,59%
2,03%
0,04%
0,06%
0,07%
0,01%
0,00%
0,00%
7,48%
0,61%
0,00%
0,17%
0,01%
0,06%
0,01%
0,01%
0,00%
SCL
SCL2G
SCRLL
SDATA
SETR
176
14
7
28
953
0,32%
0,03%
0,01%
0,05%
1,71%
SFR
23
0,04%
SHIFB
SHIFN
SHIFL
STIME
SUB
SUBB
SUBBL
SUM
SUMB
SUMBL
TAB
0
296
35
28
258
6
11
257
88
65
619
0,00%
0,53%
0,06%
0,05%
0,46%
0,01%
0,02%
0,46%
0,16%
0,12%
1,11%
DIV
DIVB
DIVBL
DVBLL
FATOR
FCMP
FCONV
FDIV
FILT
FMUL
FSUB
FSUM
FTAB
JMP
LD
LDATA
LDI
LDN
LDX
LTIME
MED
MONOA
MONOD
MOV
MOVK
MOVX
MULT
MULTB
MULBL
OR
ORN
OUT
OUTI
OUTIN
OUTN
OUTR
OUTX
PID
PID_I
58
% TOTAL
TMR
TXPR
UPDB
UPDBC
UPDD
UPDDC
WAND
WBIT
WBITX
WLDX
WNOT
WOR
WXOR
CAV
GAV
SYNC
TMRX
497
1
6
145
21
161
90
14
0
14
10
0
0
0
0
0
0
0,89%
0,00%
0,01%
0,26%
0,04%
0,29%
0,16%
0,03%
0,00%
0,03%
0,02%
0,00%
0,00%
0,00%
0,00%
0,00%
0,00%
TOTAL
N LINHAS
55707
15828
100,00%
LD+LDN+OUT+MONOA
LD+OUT
82,44%
62,81%
59
Com base nos resultados obtidos foi realizada uma avaliao de alternativas com o
grupo das 4 instrues com carga mais significativa para o processador de acordo com a sua
freqncia de uso. Dentre as alternativas, optou-se por utilizar um programa bsico de
entradas e sadas para definir o programa ladder da carga de trabalho padro deste trabalho. O
programa utiliza 2 instrues ladder deste grupo: instruo de entrada (ou comeo de linha
contato normalmente aberto LD) e instruo de sada (ou fim de linha OUT). Juntas
formam 62,81% da freqncia de uso nos programas ladder reais estudados.
A opo pela utilizao das 2 instrues ladder tambm est associada melhor
escolha para reproduzir a anlise de desempenho das arquiteturas definidas para avaliao
atravs do benchmark sinttico. Foram atribudos pesos iguais para as 2 instrues ladder
utilizadas.
60
Inicialmente, foi realizada uma ampla pesquisa com a finalidade de obter as formas de
apresentao de desempenho adotada pelos fabricantes de CLP. Dentre os fabricantes
pesquisados, foi constatado que o desempenho medido atravs do tempo de execuo de um
programa e em sua grande maioria a unidade utilizada milissegundos por 1024 instrues
ladder executadas.
O tempo de execuo fornecido nos manuais equivalente ao tempo de um ciclo de
varredura (tempo de varredura ou scan time). Assim, de forma genrica, o tempo de execuo
de uma determinada carga realizada pela CPU de um CLP dado por:
Tempo de execuo =
X segundos
X segundos
X segundos
=
=
1024 instruesladder
K contatosladder
K instruesladder
61
62
Figura 5.2: Linha do programa ladder definido como carga de trabalho padro.
63
64
65
Uma vez que o benchmark foi realizado nas linguagens C e Assembly, necessrio
obter os respectivos tempos de execuo. Para isto, o tempo medido a partir de uma forma
66
67
Para o estudo dos processadores embarcados, foi adotada uma CPU de um CLP como
sistema embarcado de referncia comparativa. Nesta CPU utilizado o microcontrolador XAG30 da Philips. Trata-se de uma arquitetura estendida (XA eXtended Architecture) com
compatibilidade para os antigos usurios do 80C51. Suas principais caractersticas so [7]:
Trs counters/timers;
Um watchdog timer;
68
69
systems e a linguagens de alto nvel, como por exemplo C [7]. Em sua arquitetura no est
prevista a tecnologia de memria cache de dados e/ou de instrues.
A figura 6.2 mostra a arquitetura do ncleo do microcontrolador XA-G30.
70
71
ms
1024 instruesladder
Este tempo de execuo ser considerado como referncia comparativa para obter o
desempenho relativo dos processadores embarcados estudados.
72
Seis counters/timers;
Um watchdog timer;
Duas UZIs (Universal ZILOG Interface), cada uma composta por: I2C, SPI e
UART;
73
74
75
Configurao 2
(Linguagem
C/Assembly)
Configurao 3
(Linguagem
C/Assembly)
- Cdigo do benchmark
sinttico;
- Opcodes das instrues
ladder ;
- Dados das instrues.
SRAM externa, 0
Wait-States
SRAM externa, 2
Wait-States
- Cdigo do benchmark
sinttico;
- Opcodes das instrues
ladder ;
- Dados das instrues.
- Cdigo do benchmark
sinttico;
- Opcodes das instrues
ladder ;
- Dados das instrues.
76
77
ms
1024 instruesladder
12,638 ms/1024
instruesladder
13,519 ms/1024
instruesladder
26,199 ms/1024
instruesladder
7,8193 ms/1024
instruesladder
8,639 ms/1024
instruesladder
17,158 ms/1024
instruesladder
1,3997 ms/1024
instruesladder
1,3998 ms/1024
instruesladder
2,7299 ms/1024
instruesladder
1,3996 ms/1024
instruesladder
1,3998 ms/1024
instruesladder
2,7297 ms/1024
instruesladder
78
79
SRAM interna
de propsito
geral
Configurao 1
(Linguagem C/Assembly)
- Cdigo do benchmark
sinttico;
- Opcodes das instrues
ladder;
- Dados das instrues.
Configurao 2
(Linguagem C/Assembly)
Configurao 3
(Linguagem C/Assembly)
- Cdigo do benchmark
sinttico;
- Opcodes das instrues
ladder;
- Dados das instrues.
SRAM externa,
0 WS
- Cdigo do benchmark
sinttico;
- Opcodes das instrues
ladder;
- Dados das instrues.
SRAM externa,
2WS
D rel. =
80
Um timer;
Duas SPORTs;
81
82
83
SRAM interna de
programa
- Cdigo do benchmark
sinttico;
Os resultados da avaliao do desempenho do processador digital de sinais ADSP2181 foram obtidos nos modos de compilao debug e release para a configurao conforme
a metodologia de medio descrita na subseo 6.3.2. Estes incluem tcnicas bsicas de
otimizao utilizadas pelo ambiente de desenvolvimento Visual DSP++ 3.5.
A figura 6.9 exemplifica a aquisio da forma de onda com o auxlio do instrumento
citado no tpico 5.3. obtida para a configurao 1 com a execuo do benchmark sinttico
desenvolvido em linguagem C utilizando a opo de compilao no modo debug. Nota-se que
a informao do tempo de execuo pode ser encontrada no smbolo , na barra de leitura do
osciloscpio.
84
ms
1024 instruesladder
2,7495 ms/1024
instruesladder
1,8798 ms/1024
instruesladder
0,67992 ms/1024
instruesladder
0,67989 ms/1024
instruesladder
85
Configurao 1
(Linguagem C/Assembly)
- Cdigo do benchmark
sinttico;
- Opcodes das instrues
ladder;
- Dados das instrues.
86
D rel. =
87
Trs timers;
Um core timer;
Um watchdog timer;
Duas SPORTs;
88
89
Possui endereamento linear unificado de 4Gbytes para acesso a recursos on-chip, offchip e I/Os mapeados em memria. Sua interface fsica EBIU (External Bus Interface Unit)
possibilita acesso a memrias externas assncronas e sncronas sem a utilizao de
90
componentes adicionais, tais como SRAM, ROM, FLASH, FIFOs, dispositivos ASIC/FPGA e
SDRAM compatvel com os padres PC100 e PC133 [10].
Em sua arquitetura est prevista a tecnologia de memria cache para dados e para
instrues. A cache de instrues uma memria 4-Way set associative e a memria cache de
dados utiliza a configurao 2-Way set associative e pode ser configurada em 3 modos [10]:
Write-through com alocao da cache line tanto nas leituras como nas escritas;
Write-back com alocao da cache line tanto nas leituras como nas escritas;
91
Configurao 2
(Linguagem
C/Assembly)
Configurao 3
(Linguagem
C/Assembly)
SRAM interna de
dados
SRAM interna de
programa
- Cdigo do benchmark
sinttico;
SDRAM externa
Memria cache de
dados
Memria cache de
instrues
- Cdigo do benchmark
sinttico;
- Opcodes das instrues
ladder ;
- Dados das instrues.
- Cdigo do benchmark
sinttico;
- Opcodes das instrues
ladder ;
- Dados das instrues.
Desabilitada
Habilitada
Desabilitada
Desabilitada
Habilitada
Desabilitada
92
por estas instrues so armazenados/lidos em uma rea da mesma memria externa SDRAM.
As memrias cache de dados e de instrues esto desabilitadas.
Configurao 2: o cdigo gerado para o benchmark sinttico desenvolvido tanto na
linguagem C como em Assembly armazenado em uma rea da memria externa SDRAM. Os
opcodes das instrues ladder referentes s instrues de entrada e sada e os dados utilizados
por estas instrues so armazenados/lidos em uma rea da mesma memria externa SDRAM.
Nesta configurao a memria cache de dados e de instrues so habilitadas.
Configurao 3: o cdigo gerado para o benchmark sinttico desenvolvido tanto na
linguagem C como em Assembly armazenado na memria interna SRAM de programa. Os
opcodes das instrues ladder referentes s instrues de entrada e sada e os dados utilizados
por estas instrues so armazenados/lidos na memria interna SRAM de dados.
93
sistema. Nota-se que a informao dos tempos de execuo pode ser encontrada nos
respectivos smbolos , na barra de leitura do osciloscpio.
ms
1024 instruesladder
94
ms
1024 instruesladder
- Benchmark sinttico
(linguagem C);
- Modo debug.
- Benchmark sinttico
(linguagem C);
- Modo release.
- Benchmark sinttico
(linguagem Assembly);
- Modo debug.
- Benchmark sinttico
(linguagem Assembly);
- Modo release.
Configurao 1
Configurao 2
Configurao 3
95
96
Configurao 2
(Linguagem C/Assembly)
- Cdigo do benchmark
sinttico;
- Opcodes das instrues
ladder;
- Dados das instrues.
Desabilitada
- Cdigo do benchmark
sinttico;
- Opcodes das instrues
ladder;
- Dados das instrues.
Habilitada
Desabilitada
Desabilitada
Habilitada
Desabilitada
SDRAM externa
Configurao 3
(Linguagem C/Assembly)
- Opcodes das instrues
ladder;
- Dados das instrues.
- Cdigo do benchmark
sinttico;
D rel. =
97
D rel. =
98
7 Concluso
99
13
1,8
13
3,2
140
100
130
120
110
90
0
87
,6
0
87
,4
Desempenho relativo
100
80
70
60
,40
50
23
,7
24
,3
30
32
,08
36
40
7,3
5
7,8
6
10
,38
4
5,0
2,5
9
4
5,0
3,1
2,5
7
0,2
7
0,5
2
0,5
6
10
7
3,3
5
20
13
1,3
0
140
130
13
3,8
1
101
120
110
87
,61
87
,61
90
80
61
,92
,52
70
63
60
42
,30
50
41
,80
Desempenho relativo
100
40
30
7,8
6
7,3
5
10
,38
2,5
9
5,0
4
5,0
4
9
4 ,3
0,8
2
0,4
1
3,7
0,9
0
10
6
4,2
1
20
102
103
104
105
106
107
inserido. De uma forma geral nota-se que acessos a memrias externas de maior nvel so
gargalos para o sistema como um todo. Entretanto, de extrema eficincia a utilizao de uma
memria externa de grande capacidade de armazenamento e de alta velocidade em conjunto
com memrias de menor nvel, ou seja, tecnologias de memria cache de dados e de
instrues. Os resultados tambm confirmam a tendncia de se extrair o mximo de
paralelismo atravs do pipeline para otimizao na operao do processador, ocasionando na
diminuio do tempo de execuo.
108
Referncias
CLASSIFICAO/TIPO
2.
TM
5.
DATA
14 de junho de 2007
3.
DOCUMENTO N
4.
N DE PGINAS
CTA/ITA-IEE/TM-008/2007
108
TTULO E SUBTTULO:
AUTOR:
INSTITUIO(ES)/RGO(S) INTERNO(S)/DIVISO(ES):
X Nacional
APRESENTAO:
Internacional
RESUMO:
GRAU DE SIGILO:
(X ) OSTENSIVO
( ) RESERVADO
( ) CONFIDENCIAL
( ) SECRETO