EMC, video e programa.

Para "abobrinhas" use o " Boteco"

Moderadores: andre_luis, 51, guest2003, Renie

EMC, video e programa.

Mensagempor fabim » 27 Out 2010 06:41

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
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 Djalma Toledo Rodrigues » 27 Out 2010 09:37

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
Editado pela última vez por Djalma Toledo Rodrigues em 27 Out 2010 10:13, em um total de 4 vezes.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor fabim » 27 Out 2010 10:04

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é ?
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 Djalma Toledo Rodrigues » 27 Out 2010 10:10

Concordo
Já foi editado e corrigido

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

Mensagempor Djalma Toledo Rodrigues » 27 Out 2010 10:42

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
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor msamsoniuk » 27 Out 2010 14:25

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.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor msamsoniuk » 27 Out 2010 14:28

...
Editado pela última vez por msamsoniuk em 28 Out 2010 15:10, em um total de 1 vez.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor msamsoniuk » 27 Out 2010 14:31

...
Editado pela última vez por msamsoniuk em 28 Out 2010 15:12, em um total de 1 vez.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor msamsoniuk » 27 Out 2010 14:35

...
Editado pela última vez por msamsoniuk em 28 Out 2010 15:12, em um total de 1 vez.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor fabim » 28 Out 2010 09:11

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.
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 Djalma Toledo Rodrigues » 28 Out 2010 11:10

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.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor rcakto » 28 Out 2010 12:07

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..
(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 msamsoniuk » 28 Out 2010 15:41

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.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor rcakto » 28 Out 2010 17:54

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
(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 msamsoniuk » 28 Out 2010 18:35

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
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Próximo

Voltar para Assuntos Gerais

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

x