그래픽 카드 메모리 작동방식은 ?
글쓴이: ljh0431 / 작성시간: 금, 2010/08/06 - 3:27오후
예전에 DOS시절에 그래픽카드 메모리에 직접 코드를 넣어주면 화면에 그래픽작업을 뿌려주는 형태였는데,
요즘 나오는 그래픽카드들의 그래픽카드메모리접근은 어떤식으로 이루어지나요 ?
DOS시절 64K단위나 32K단위로 메모리에 직접 접근하고 뱅킹을 변경시키면서 Super VGA코딩을 했던 기억이 납니다.
그런데 요즘은 메모리가 크잖아요. 어떻게 그래픽카드메모리에 접근하나요 ?
시스템메모리에 128M,256M,768M등 다양한 그래픽카드메모리가 어떻게 물리적으로 연결되서 연동되는지 궁금합니다.
데브피아에 질문해보니 아시는 분이 안 계시더라구요. 대부분 답변이 접근할 필요가 요즘은 없어졌다고만 하지
설명을 하는 분이 안계시더군요. 리눅스라면 device를 분석할 수 있고 커널구조도 공개돼어 있어서 아마도
이 부분을 아시는 분이 계실지 몰라 질문해봅니다.
Forums:
A0000h 주소의 64K
A0000h 주소의 64K 블록이 여전히 비디오 메모리와 매핑되는 것으로 알고 있습니다.
하지만 지금은 비디오 드라이버가 직접 비디오 메모리에 액세스하는 방식이기 때문에 매핑 메모리를 페이지 플립핑하는 액세스 방법은 잘 쓰이지 않습니다.
즉, 메인 메모리의 특정 주소에 저장된 이미지를 비디오 메모리에 바로 매핑하거나, 포트 명령으로 비디오 메모리를 직접 액세스하기도 하죠.
또 벡터 그래픽이나 하드웨어 3D 엔진의 경우에는 메인 메모리를 거치지 않고 그래픽 프로세서가 직접 그래픽 메모리에 쓰기도 합니다.
그냥 pciex 를 통해서
그냥 pciex 를 통해서 주소 할당받고 cpu 쪽에선 그걸 이용해 mapping 해서 사용이 가능합니다.
( 너무크면 page 해서 레지스터에 주소에 적당히 몇번째 page 쓸지 세팅해서 사용합니다. 32M 단위라던가 )
pci 쪽이나 pciex 의 bar0 , bar1 .. 등등에 한방에 어느 사이즈를 받아오는지 pci 계열 장비면 ( ex 포함 ) pci 버스에 요청하고 그걸 bios 나 os 등에서 처리하게 되어있습니다. ( mapping 포함 )
가끔 공간을 충분히 못 줘서 문제가 되기도 하지만, 대부분의 경우는 문제 없습니다. ( 특히 64bit 시스템이면 더더욱. )
Neogeo - Future is Now.
Neogeo - Future is Now.
댓글 달기