Página 1 de 2

EMC, video e programa.

MensagemEnviado: 27 Out 2010 06:41
por fabim
Pessoal, como eu comecei a mexer ainda a pouco com programas em memoria externa, e video por hw dedicado em memoria externa.

Estava eu aqui agora, imaginando o seguinte.

Imagine o seguinte.
Um uC com 256MB externa de RAM, com um SO, e um campo dedicado desta mesma ram onde um HW dedicado fica escaneando 800*600*4 bytes, e jogando para o LCD controler, isto todo o tempo sem parar, com velocidade tal.
Quão é impactante é esta velocidade no programa que a CPU esta executando nesta mesma memoria externa ?

Tipo, imagine que a CPU esta lendo o dito byte, e executando. E neste exato momento, é hora da DMA do LCD pegar os n bytes para transferir com o AHB e ai ?

Alguém conhece o utero do processo ? Eu gostaria muito de aprender como funciona isso!!!
Abraços

MensagemEnviado: 27 Out 2010 09:37
por Djalma Toledo Rodrigues
E ai ?
Ai conflito

O DMA deve ter prioridade.
Nesse seu caso o Controlador do DMA deve ceder um tempo para o µC

A Menos que a Memória possua duas portas (existe)
vc poderia

DJ

MensagemEnviado: 27 Out 2010 10:04
por fabim
DJ, você ultimamente esta se superando.
Tipo nada contra a não ajudar em nada, mais tipo. Faça mais isso no boteco, aqui não né ?

MensagemEnviado: 27 Out 2010 10:10
por Djalma Toledo Rodrigues
Concordo
Já foi editado e corrigido

Obrigado
DJ

MensagemEnviado: 27 Out 2010 10:42
por Djalma Toledo Rodrigues
Lembre=se Fabim que o Display é uma interface para Humanos
logo é lenta.
O µC é muitíssimo mais rápido.

De modo que se o Display fosse TRC o µC poderia atualizar a Ram do Video durante o tempo de retraço, mesmo de cada linha, quanto mais do retraço Vertical.

DJ

MensagemEnviado: 27 Out 2010 14:25
por msamsoniuk
nao tem segredo nao fabim... eh soh vc calcular o bandwidth da memoria e subtrair o bandwidth de video. por exemplo, no caso do macintosh de 1984 (vou usar exemplos simples, praticos e antigos para nao te assustar):

- memoria DRAM de 16 bits com clock de 7.83MHz e 4 clocks por acesso fornece 3.9 MB/s de bandwidth. o video de 512x348 pixels de 1bpp em 60Hz consome 1.336 MB/s de bandwidth, ou seja, consome 34% do bandwidth.

ah, tem um furo nessas contas: eu nao sei quantos clocks por acesso sao necessarios realmente pq eu nao conheco os tempos de acesso das DRAMs de 1984. chutei 4 clocks e isso totaliza 500ns por acesso de 16 bits. mas chutando que seja isso, o 68000 requer 4 clocks para puxar uma instrucao e com 7.83MHz chegaria a 1.9 MIPS, mas como tem 34% preso no video, o que sobra eh 66%, ou seja 1.3 MIPS.

em um processador moderno vc tem que considerar varias coisas extras, como burst e cache. no caso de um macintosh 2ci de 1989:

- memoria DRAM de 32 bits com clock de 25MHz, acesso em burst, provavelmente em sequencias 3-1-1-1-1-1-1-1, ou seja, 3 clocks para setup da primeira palavra de 32 bits e 1 clock para outras 7 na mesma pagina. portanto vc consegue ler 32 bytes a cada 10 clocks, ou seja, tem um bandwidth de 80MB/s. o video de 640x480 em 8bpp a 70Hz consome 21MB/s, portanto consome 26% do bandwidth.

o 68030 pode atingir o pico de 1 clock por instrucao, mas o mais tipico sao 2 clocks por instrucao. com instrucoes de 16 bits, entao apenas 25MB/s deveriam manter o 68030 satisfeito. na verdade eh muito menos que isso pq ele possui cache on-chip, ou seja, se vc tiver uma estimativa de que boa parte do codigo eh formada por loop e que estes loops rodam pelo menos 10x, vc tem entao uma taxa de acerto de 9 em 10, o que significa algo da ordem de 90%. com isso o bandwidth realmente necessario seria de meros 2.5MB/s.

dos 80MB/s que a memoria fornece, tiramos 21MB/s para o video e 2.5MB/s para instrucoes. disso nos sobram ainda mais de 50MB/s, que o 68030 na verdade utiliza movimentando dados de um lado para outro.

ohh sim, para vc ver como o djalma esta desatualizado: nenhuma destas maquinas da decada de 80 precisa espera pelo retraco vertical para escrever no video! :)

isto pq o processador cede o bus para o controlador de DMA do video. no caso do 68000, q nao tem cache, impacta bastante, mas no caso do 68030, q tem cache, o impacto eh muito menor.

MensagemEnviado: 27 Out 2010 14:28
por msamsoniuk
...

MensagemEnviado: 27 Out 2010 14:31
por msamsoniuk
...

MensagemEnviado: 27 Out 2010 14:35
por msamsoniuk
...

MensagemEnviado: 28 Out 2010 09:11
por fabim
Palma Palma, não priemos Cânico.

Obrigado tchelo, Consegui entender traquilosamente bem.

Nussa, por isso o call of duty não rodava na onboard de 256MB, e rodava na ofboard vagabunda de 128MB. Eu desconfiava, mais não tinha muita noção.

MensagemEnviado: 28 Out 2010 11:10
por Djalma Toledo Rodrigues
Marcelo Samsoniuk escreveu: .... isto pq o processador cede o bus para o controlador de
DMA do video. no caso do 68000, q nao tem cache, impacta bastante, mas no caso do
68030, q tem cache, o impacto eh muito menor.

Não difere muito do que eu disse.

E me parece que as Placas de Video usam Memórias de Portas Duplas

TECNOLOGIAS DE MEMÓRIA PARA PROCESSAMENTO DE VÍDEOS E GRÁFICOS
Além das tecnologias de chips projetadas para seu uso na memória principal,
também há tecnologias de memória especiais, que foram desenvolvidas para aplicações
de vídeo.

VIDEO RAM (VRAM)
VRAM é uma versão de vídeo da tecnologia FPM. VRAM normalmente tem duas portas
em vez de uma
, o que permite que a memória atribua um canal para a atualização
da tela, enquanto o outro se encarrega de alterar as imagens na tela. Esta tecnologia funciona
de forma mais eficiente que o DRAM normal quando vem acompanhado de aplicações de
vídeo. Entretanto, como os chips de memória de vídeo são usados em quantidades muito
menores que os chips de memória principal, estes tendem a ser mais caros. Portanto,
um desenvolvedor de sistemas pode escolher usar um DRAM normal num subsistema de
vídeo, dependendo de qual seja o objetivo do projeto, o custo ou o desempenho.

RAM DE JANELA (WRAM)
WRAM é outro tipo de memória com porta dupla que também é usado em sistemas
de intensivo de gráficos. Difere ligeiramente da VRAM, já que a porta é menor e suporta
características EDO.

Fonte:http://www.kingston.com/brasil/tools/umg/umg6.asp

---------------------------------------------------

DJ desatualisado como se vê é intriga da oposição rs
-------------------
Abraço Marcelo
Abraço Fabim

----
DJ

P. S. Pendriver Kingston de 127 GB R$ 60,00 muito bom, muito veloz.

MensagemEnviado: 28 Out 2010 12:07
por rcakto
rapa... resolvi ver na farnell do brasil quanto seria uma vram qualquer de 28p so para ter uma ideia do valor... a mais barata foi de R$ 38,20, e nem olhei seus dados.... carinha.. tb achei uma de 500 bytes 8P por R$ 4,65...
coisa de loco..

MensagemEnviado: 28 Out 2010 15:41
por msamsoniuk
Djalma Toledo Rodrigues escreveu:
Marcelo Samsoniuk escreveu: .... isto pq o processador cede o bus para o controlador de
DMA do video. no caso do 68000, q nao tem cache, impacta bastante, mas no caso do
68030, q tem cache, o impacto eh muito menor.

Não difere muito do que eu disse.


eu nao disse que difereria... soh esta mais detalhado :)

E me parece que as Placas de Video usam Memórias de Portas Duplas

TECNOLOGIAS DE MEMÓRIA PARA PROCESSAMENTO DE VÍDEOS E GRÁFICOS
Além das tecnologias de chips projetadas para seu uso na memória principal,
também há tecnologias de memória especiais, que foram desenvolvidas para aplicações
de vídeo.

VIDEO RAM (VRAM)
VRAM é uma versão de vídeo da tecnologia FPM. VRAM normalmente tem duas portas
em vez de uma
, o que permite que a memória atribua um canal para a atualização
da tela, enquanto o outro se encarrega de alterar as imagens na tela. Esta tecnologia funciona
de forma mais eficiente que o DRAM normal quando vem acompanhado de aplicações de
vídeo. Entretanto, como os chips de memória de vídeo são usados em quantidades muito
menores que os chips de memória principal, estes tendem a ser mais caros. Portanto,
um desenvolvedor de sistemas pode escolher usar um DRAM normal num subsistema de
vídeo, dependendo de qual seja o objetivo do projeto, o custo ou o desempenho.

RAM DE JANELA (WRAM)
WRAM é outro tipo de memória com porta dupla que também é usado em sistemas
de intensivo de gráficos. Difere ligeiramente da VRAM, já que a porta é menor e suporta
características EDO.

Fonte:http://www.kingston.com/brasil/tools/umg/umg6.asp


mas VRAM eh do tempo do epa hein! :)

a moda eh isso aqui: http://en.wikipedia.org/wiki/GDDR5

mas isso eh para coisa canhao... para coisa miuda eh SDRAM e DDR mesmo. de qq forma, anotem a dica: a tendencia eh todas as interfaces canhao migrarem para SERDES e todos os sistemas tornarem-se network centric, com barramentos paralelos apenas dentro dos chips e totalmente seriais para o lado de fora:

http://www.national.com/appinfo/lvds/fi ... serdes.pdf


---------------------------------------------------

DJ desatualisado como se vê é intriga da oposição rs
-------------------
Abraço Marcelo
Abraço Fabim

----
DJ

P. S. Pendriver Kingston de 127 GB R$ 60,00 muito bom, muito veloz.

MensagemEnviado: 28 Out 2010 17:54
por rcakto
sam, uma comunicação serie, mas em uma rede paralela seria perfeita... menos pinos para ocupar, mas com varios componentes em paralelo para se comunicarem... assim se houver falha fisica na rede, é possivel encontrar o problema mais rapido... ideologia da rede eletrica em anel XD

MensagemEnviado: 28 Out 2010 18:35
por msamsoniuk
entao, no pci-express vc pode usar de 1 a 32 linhas seriais em paralelo, cada uma rodando com clock de 2.5 ou 5GHz.

rcakto escreveu:sam, uma comunicação serie, mas em uma rede paralela seria perfeita... menos pinos para ocupar, mas com varios componentes em paralelo para se comunicarem... assim se houver falha fisica na rede, é possivel encontrar o problema mais rapido... ideologia da rede eletrica em anel XD