ARM CTX A8.

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

Mensagempor ivan » 09 Out 2010 18:51

Visão Geral sobre os processadores SITARA ARM Cortex A8 e ARM9

https://www2.gotomeeting.com/register/452305890[/img]
"A mente que se abre a uma nova idéia jamais volta ao seu tamanho original." (Albert Einstein).
Avatar do usuário
ivan
Word
 
Mensagens: 618
Registrado em: 12 Out 2006 21:27

Mensagempor hakko » 16 Out 2010 21:19

Esse micro é utilizado na maioria dos smartphones atualmente rodando em torno de 550~1GHz então não é coisa fraca não! Como por exemplo o motorola milestone :twisted: Será que você precisa de tudo isso?
hakko
Bit
 
Mensagens: 25
Registrado em: 05 Nov 2009 15:40

Mensagempor Viktor » 17 Out 2010 10:08

fabim escreveu:
rcakto escreveu:alguem poderia me arrumar um link onde vejo as diferencas entre cortex M* e cortex A*


uma analogia basica ?

CM3 é 1.25Dmis mhz.
Ou seja, se falassemos em ganho por assim dizer, para cada 1mhz, o clock equivale 1.25mhz. O que é uma mentira cabulosa e sinica, e sem nexo, e não tenho idéia o porque os caras falam isso.

C A8 A9, Super Escalar. Para cada 1mhz equivale a 2Dmips, isso é verdade, ele executa até duas instruções por ciclo, quase que todo o tempo. Ele tem um coprocessador DSP de 500 e la vai lasca mhz, para video, com saida dedicada de aceleração 3D, e o caramba a quatro. Imcomparavel, existe apenas diferenças.

Digamos que, é um gol G4 1.8 o CM3.
E uma Ferrari 2011, com motor de 435CV de 0 a 100 em 2.3 segundos, etc etc.;

BLZ ?


Cara, acho que você não tem a mínima idéia do que seja Dhrystone Mips.
Viktor
Byte
 
Mensagens: 281
Registrado em: 12 Out 2006 11:33

Mensagempor Djalma Toledo Rodrigues » 17 Out 2010 11:22

Dhrystone vs. CoreMark

E não são Ninjas. rs
(Ver 11 anos depois - Boteco)

http://en.wikipedia.org/wiki/Dhrystone

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor rcakto » 17 Out 2010 12:00

nao, vejo muito em revistas comparando MCU mas não faco ideia do que exatamente seja...
(parado por culpa da faculdade...)Osciloscopio opensource... entre e participe:
http://asm51.eng.br/phpBB/viewtopic.php?t=10710
rcakto
Word
 
Mensagens: 787
Registrado em: 09 Jun 2010 00:57
Localização: vitoria ES

Mensagempor fabim » 17 Out 2010 14:10

Viktor escreveu:
fabim escreveu:
rcakto escreveu:alguem poderia me arrumar um link onde vejo as diferencas entre cortex M* e cortex A*


uma analogia basica ?

CM3 é 1.25Dmis mhz.
Ou seja, se falassemos em ganho por assim dizer, para cada 1mhz, o clock equivale 1.25mhz. O que é uma mentira cabulosa e sinica, e sem nexo, e não tenho idéia o porque os caras falam isso.

C A8 A9, Super Escalar. Para cada 1mhz equivale a 2Dmips, isso é verdade, ele executa até duas instruções por ciclo, quase que todo o tempo. Ele tem um coprocessador DSP de 500 e la vai lasca mhz, para video, com saida dedicada de aceleração 3D, e o caramba a quatro. Imcomparavel, existe apenas diferenças.

Digamos que, é um gol G4 1.8 o CM3.
E uma Ferrari 2011, com motor de 435CV de 0 a 100 em 2.3 segundos, etc etc.;

BLZ ?


Cara, acho que você não tem a mínima idéia do que seja Dhrystone Mips.


seria numero de calculos matematicos em média por segundo. Mais tudo bem, vou dar um desconto na sua ignorancia.
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor msamsoniuk » 17 Out 2010 16:22

um benchmark soh tem sentido se vc usar o mesmo benchmark para diferentes processadores. o que ocorre na pratica, porem, eh que os fabricante querem comparar diferentes benchmarks para diferentes processadores e daih a coisa nao funciona... na falta de coisa melhor, costuma-se usar isso aqui no linux:

http://tldp.org/HOWTO/BogoMips/bogo-faq.html

isso eh calculado em funcao de um loop de calibragem e eh ajustado manualmente de processador para processador, para tentar ficar proximo com os calculos do dhrystone, specmark, peakmips, etc.

vc consegue tanto ver no boot (usando dmesg) ou fazendo cat no /proc/cpuinfo. dois exemplos do valor de bogomips no boot:

http://framework.sourceforge.net/pics/c ... linux.html
http://bbs.21ic.com/icview-185235-1-1.html

a primeira roda com 150MHz e portanto dah quase 1.5MHz/bogomips. a segunda roda a possivelmente a 60MHz e portanto dah quase 3MHz/bogomips. bem pior do que os fabricantes prometem, nao eh mesmo? depende! o numero que o fabricante dah geralmente eh um numero sem nexo, baseado em dhrystone mips ou vax mips, mas que normalmente nao significa absolutamente nada. o fato que vemos eh apenas que o primeiro sistema eh 2x mais eficiente que o segundo sistema rodando loops de calibracao. mas e rodando outras funcoes? nada sabemos sobre isso infelizmente.

essa aqui usando o cpuinfo:

http://framework.sourceforge.net/pics/u ... de-35.html

e calculando em funcao destes valores, temos algo da ordem de 8MHz/MIPS e portanto muito menos eficiente que os dois sistemas acima. o bom do cpuinfo eh que eh facil achar o clock tambem, mas claro, o valor de bogomips tambem depende da memoria cache e da memoria principal. novamente, nada sabemos sobre a performance aritmetica neste caso, apenas sabemos a diferenca relativa dos sistemas rodando loops, embora isso de uma ideia: se o sistema eh ruim para rodar um loop, pq ele seria bom rodando operacoes matematicas? nao indica performance absoluta, mas dah uma dica muito boa! :)

o melhor mesmo seria usar o que se chama de benchmark sintetico, sendo o dhrystone um exemplo, que consiste em desempenhar certas tarefas computacionais longas e variadas, medindo o numero de interacoes completas ou o tempo total. mas o dhrystone eh muito desatualizado e praticamente cabe na cache do processador! neste aspecto o specmark eh o melhor, porem eh complexo demais e nao roda em cpus pequenas. e mesmo o specmark tem seu lado ruim: se eu quero um mcu apenas para rodar loops simples, pq perder tempo com um teste tao complexo? eh um dilema.

e finalmente: nao existe "dhrystone MIPS"... dividir o numero de loops do dhrystone por 1757 resulta em VAX MIPS, pq esse eh o indice dhrystone de um VAX 11/780. bela comparacao, mas encaremos os fatos: compara nada com coisa nenhuma! :)
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor rcakto » 17 Out 2010 16:58

no final das contas como faz para saber a real performace e beneficio de um MCU??
(parado por culpa da faculdade...)Osciloscopio opensource... entre e participe:
http://asm51.eng.br/phpBB/viewtopic.php?t=10710
rcakto
Word
 
Mensagens: 787
Registrado em: 09 Jun 2010 00:57
Localização: vitoria ES

Mensagempor Viktor » 17 Out 2010 17:24

" seria numero de calculos matematicos em média por segundo. Mais tudo bem, vou dar um desconto na sua ignorancia. "


Não são cálculos matemáticos por segundo !!!!!!


É basicamente o tempo que um processador leva para executar um determinado benchnark em relação ao tempo que um VAX 11/780 leva para executar o mesmo benchmark. Esse benchmark não contém nenhum ponto flutuante, e é um teste puramente comparativo, portanto não tem nada de mentira cabulosa ou cínica nem sem nexo como você diz.
1,25DMIPS indica que é 25% superior ao VAX11/780 executando o mesmo benchmark. Agora responda o que sua explicação se assemelha a esta que estou postando aqui e que reflete a verdadeira definição do termo ?
Ver isto : http://forums.arm.com/index.php?showtopic=14270


Antes de chamar os outro de ignorante seria melhor você ter um pouco de humildade e estudar antes de tentar explicar com falsas informações.
Editado pela última vez por Viktor em 17 Out 2010 17:33, em um total de 1 vez.
Viktor
Byte
 
Mensagens: 281
Registrado em: 12 Out 2006 11:33

Mensagempor Viktor » 17 Out 2010 17:30

Marcelo Samsoniuk escreveu:e finalmente: nao existe "dhrystone MIPS"... dividir o numero de loops do dhrystone por 1757 resulta em VAX MIPS, pq esse eh o indice dhrystone de um VAX 11/780. bela comparacao, mas encaremos os fatos: compara nada com coisa nenhuma! :)


Existe sim, é o DMIPS que é a medida em relação ao VAX 11/780 que é basicamente uma máquina de 1MIPS
Viktor
Byte
 
Mensagens: 281
Registrado em: 12 Out 2006 11:33

Mensagempor msamsoniuk » 17 Out 2010 18:20

o que um benchmark sintetico vai te dar eh uma performance sintetica, ou seja, um indice medio. se o processador vai ser melhor ou pior em determinadas areas, vc nao sabe. pior ainda, no caso do dhrystone, eh praxe dividir pelo indice do vax, que eh um minicomputador CISC de 32 bits da decada de 70, e assim vc tem um valor em vax mips que eh uma media boa, mas que tem menos senso de realidade ainda.

o correto seria vc pensar do ponto de vista computacional e determinar o tempo de execucao das instrucoes em numero de clocks para resolver problemas basicos da computacao. na maioria dos casos, estes problemas basicos consistem em fazer entrada, processamento e saida continuamente. isso se traduz em instrucoes load/store, instrucoes de processamento logico e aritmetico e instrucoes de loop.

eh facil ver esse padrao em qq lugar. por exemplo, puxar uma amostra de audio e passa num filtro de 2 termos.

Código: Selecionar todos
  move coef1@,d1
  move coef2@,d2
loop:
  move adc_port@,d0
  muls d1,d0
  add d0,d3
  muls d2,d4
  add d4,d3
  move d1,d4
  move d3,dac_port@
  bra loop


as instrucoes move envolvendo memoria sao mais demoradas e ficam fora do loop, mas nao tem como deixar a leitura do adc fora. entao eh uma instrucao que penaliza a execucao com certeza. no caso de um processador de 100 mips e um adc que rode a 10 Msample/s, a execucao pode consumir quase 10 clocks. e o dac possivelmente segue a mesma tendencia.

os bons processadores conseguem entao fazer operacoes em registros com um ciclo de clock e sao bem rapidos fazendo saltos, assim o resto do codigo consumiria 6 clocks. e portanto temos um total de 26 clocks, sendo que 20 clocks sao consumidos para load/store.

mas o que poderia melhorar isso? escolher um processador com canal de DMA poderia ser interessante, pois o canal de DMA iria transferir dados sem intervencao do processador, fechando um buffer de processamento. refazendo a mesma logica para processar um buffer, temos algo como:

Código: Selecionar todos
  move coef1@,d1
  move coef2@,d2
  move adc_buffer@,a0
  move dac_buffer@,a1
  move adc_size@,d5
loop:
  move a0@+,d0
  muls d1,d0
  add d0,d3
  muls d2,d4
  add d4,d3
  move d1,d4
  move d3,a1@+
  dbt d5,loop


neste caso, vamos supor que o tamanho do buffer eh grande o suficiente, o que por outro lado significa que temos um delay ateh o buffer se formar. como o buffer eh lido da memoria, existe o favorecimento da memoria poder ser mais veloz que o periferico e, adicionalmente, o beneficio de poder cachear a memoria. obviamente vc precisa estudar o processador de forma detalhada para saber como estes aspectos se comportam, sem falar que precisa estudar os perifericos, para saber se existe canal de DMA e se eh possivel usar ele para transferir dados de/para um adc/dac.

mas vamos chutar que temos memoria sram on-chip suficiente para tal, o que eh tipico na maioria dos mcus. com isso a instrucao move do buffer talvez consiga ser executada em 2 clocks. assim temos 4 clocks no tempo de load/store, 5 clocks para o processamento e mais 2 clocks para o loop, isso pq agora envolve decrementar um contador. com isso temos 11 clocks, menos da metade que nosso outro loop precisava.

entao partindo dos nossos 100 mips brutos, este processador hipotetico vai rodar na verdade a 30 mips se nao usar DMA, visto que precisa de 26 clocks para executar um loop composto de 8 instrucoes. jah no caso do mesmo processador, mas com canal de DMA, a performance real vai para 72 mips, pq daih ele consegue executar o mesmo loop de 8 instrucoes em apenas 11 clocks.

bom, daih vem a imensa questao: que valor um benchmark sintetico daria para este mesmo processador? o dhrystone nao tem penalidade de IO, portanto, se ele couber inteiramente na cache, provavelmente vc vai atingir um indice relativo que vai indicar 100 vax mips ou mais, dependendo do meu set de instrucoes: eu posso ter um processador com instrucoes mais complexas que o vax, entao uma unica instrucao pode valer mais de uma do vax e com isso eu consigo mais de uma instrucao por clock de forma virtual, ou seja, sem na verdade ter que executar mais de uma instrucao por clock.

veja o filtro de audio que eu mostrei nao deixa de ser outro benchmark sintetico, com a diferenca que tem penalidade de IO e que pode ser feito de formas variadas. nesse caso hipotetico eu tenho varios indicadores diferentes para o mesmo core (mas podem ser processadores diferentes, de acordo com a disponibilidade ou nao de DMA):

- 100 peak mips
- 100 vax mips ou mais
- 72 mips rodando com DMA
- 30 mips rodando sem DMA
- 50 mmac/s

mas com resultados tao diferentes, vc acreditaria entao que um unico benchmark sintetico pode expressar toda a capacidade de um processador? pelos numeros me parece claramente que nao! vc precisa no fundo estudar e conhecer ele mais a fundo. e para poder comparar, vai ter que estudar e conhecer varios processadores a fundo! :)

rcakto escreveu:no final das contas como faz para saber a real performace e beneficio de um MCU??
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor msamsoniuk » 17 Out 2010 18:46

usar DMIPS significa cometer dois erros seguidos! :)

primeiro que DMIPS sendo abreviacao de "dhrystone mips" por si nao indica nada. na decada de 80 era comum usar tanto o vax quanto a sun2 como comparacao, na medida que a sun2 era baseada no conceito 3M de stanford, que definia justamente uma workstation padrao como tendo performance de 1MIPS, memoria de 1MB e capacidade grafica de 1Mpixel.

segundo que a definicao de que um vax 11/780 tem realmente 1MIPS eh algo realmente a ser discutido e eu francamente nao encaro como valido.

de qq forma, a conta eh feita dividindo o indice dhrystone que vc obteve pelo indice dhrystone de um vax 11/780 e disso vc tem um coeficiente relativo que diz quantas vezes seu processador eh mais rapido ou lento em relacao a um vax 11/780. se para o set de instrucoes do vax existe a comprovacao numerica de que ele sustenta uma performance deterministica de 1 milhao de instrucoes, vc pode no maximo pegar esse coeficiente e chamar de VAX MIPS. as pessoas chamam de DMIPS por puro desleixo ou vontade de esconder alguns fatos.

existe ainda a discussao de como vc compara bananas com laranjas, ou seja, como vc compara um minicomputador CISC da decada de 70 com modernos processadores RISC? fica dificil, nem vou entrar no merito no momento pq quero distancia do vax.

quanto furado em relacao a realidade o tal DMIPS esta? olha que interessante essa explicacao.

http://infocenter.arm.com/help/index.js ... index.html

soh lendo ali o comeco, temos um ARM7 e um ARM9, respectivamente com indices 0.9 e 1.1, jah normalizados para 1MHz. entao para processadores de 100MHz, vc teria respectivamente 90 e 110 vax mips. mas logo abaixo temos os fatos reais, onde eh indicado que um ARM7 faz a media de 1.9 e 1.5 ciclos de clock por instrucao, daih os indicadores de performance mudam para, respectivamente, 52 mips e 66 mips. e agora? acho que a coisa nao eh tao simples e direta como andam pintando por ae nao! :)

Viktor escreveu:
Marcelo Samsoniuk escreveu:e finalmente: nao existe "dhrystone MIPS"... dividir o numero de loops do dhrystone por 1757 resulta em VAX MIPS, pq esse eh o indice dhrystone de um VAX 11/780. bela comparacao, mas encaremos os fatos: compara nada com coisa nenhuma! :)


Existe sim, é o DMIPS que é a medida em relação ao VAX 11/780 que é basicamente uma máquina de 1MIPS
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor rcakto » 17 Out 2010 19:10

Marcelo, então estaria correto em dizer que:
somente comprando e testando todas as capacidades possiveis e analisando o tempo de execução e resultado final em teste da aplicação em que o MCU foi posto que saberei exatamente até aonde o mcu em questão pode chegar e aonde seria recomendado usa-lo?
(parado por culpa da faculdade...)Osciloscopio opensource... entre e participe:
http://asm51.eng.br/phpBB/viewtopic.php?t=10710
rcakto
Word
 
Mensagens: 787
Registrado em: 09 Jun 2010 00:57
Localização: vitoria ES

Mensagempor Viktor » 17 Out 2010 19:43

Marcelo

Não vou entrar no mérito se está certo ou errado o conceito de DMIPS. O que estou afirmando é que a definição é essa goste-se ou não. Toda esta confusão que está sendo este asunto refere-se à definição do termo e não ao mérito do mesmo.

Viktor
Viktor
Byte
 
Mensagens: 281
Registrado em: 12 Out 2006 11:33

Mensagempor mastk » 17 Out 2010 19:56

Mas "ignorancia" foi usado pelo o fabim, nao foi?
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

AnteriorPróximo

Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x