그래픽 카드 메모리 작동방식은 ?

ljh0431의 이미지

예전에 DOS시절에 그래픽카드 메모리에 직접 코드를 넣어주면 화면에 그래픽작업을 뿌려주는 형태였는데,
요즘 나오는 그래픽카드들의 그래픽카드메모리접근은 어떤식으로 이루어지나요 ?
DOS시절 64K단위나 32K단위로 메모리에 직접 접근하고 뱅킹을 변경시키면서 Super VGA코딩을 했던 기억이 납니다.
그런데 요즘은 메모리가 크잖아요. 어떻게 그래픽카드메모리에 접근하나요 ?
시스템메모리에 128M,256M,768M등 다양한 그래픽카드메모리가 어떻게 물리적으로 연결되서 연동되는지 궁금합니다.
데브피아에 질문해보니 아시는 분이 안 계시더라구요. 대부분 답변이 접근할 필요가 요즘은 없어졌다고만 하지
설명을 하는 분이 안계시더군요. 리눅스라면 device를 분석할 수 있고 커널구조도 공개돼어 있어서 아마도
이 부분을 아시는 분이 계실지 몰라 질문해봅니다.

ifree의 이미지

A0000h 주소의 64K 블록이 여전히 비디오 메모리와 매핑되는 것으로 알고 있습니다.
하지만 지금은 비디오 드라이버가 직접 비디오 메모리에 액세스하는 방식이기 때문에 매핑 메모리를 페이지 플립핑하는 액세스 방법은 잘 쓰이지 않습니다.
즉, 메인 메모리의 특정 주소에 저장된 이미지를 비디오 메모리에 바로 매핑하거나, 포트 명령으로 비디오 메모리를 직접 액세스하기도 하죠.
또 벡터 그래픽이나 하드웨어 3D 엔진의 경우에는 메인 메모리를 거치지 않고 그래픽 프로세서가 직접 그래픽 메모리에 쓰기도 합니다.

neogeo의 이미지

그냥 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.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.