그래픽 원리, 1990년 자료, 천리안 언젠가 들어봤던

2021. 3. 1. 10:48카테고리 없음

728x90
반응형

아마 1990년대, 빠른 사람들은 "천리안"이란 낱말을 사용했던 것 같다

관악 근처에서, 

시대를 앞서서 열심히 노력하던 사람들

 

어쩜 돌아보면

한국의 "골드뱅크" 선풍이 있었던

또다른 작전세력이겠거니 했었는데

도아보면 내용이 있긴 있었다

꽤나 앞선, 어찌 보면 이것도 "분산형" - 내지는 민주주의형 구현의 한 아이디어였으리라

안쓰는 회선, 인터넷 연결을 통해서 통화하겠다는 아이디어였으니

 

당시 아무 부족함이 없이 지내던 내가, 하필 담당하던 영역이 은행이었으니

이 관련 문의가 오면, 그건 뱅크란 이름만 썻지 가짜입니다라고 퉁명스레 답하고 전화끊던 기억이 난다만

========================

늘상 궁금하던 중에 오늘은 자연스레 그래픽 원리를 들여다 본다

사실 통화는 소리의 전달이라면, 

음파의 전달인데

그림은 도데체 어떻게 전달되는 것일까?

한 점이 연결되어 선이되고, 다시 면이되고 하겠지만

하여간 근래 비트코인 때문에 그래픽카드가 가격이 더블되었다고도 하는데

엔비디어, AMD 등 이런 화면 전문회사들에 대해서도 이번에 일가견을 가져 본다

 

* 그래픽 카드의 구조와 원리 *

이제까지 그래픽 카드의 종류에 대해 알아보았다. 그럼 지금부터
는 그래픽 카드의 구조와 구현 원리에 대해 살펴 보도록 하겠다.
그래픽 카드는 화면에 표시할 내용(데이터)을 저장해 두는 비디
오램(Video RAM),비디오 램에 있는 아스키(ASCII)코드값을 문자로 만
들어 화면에 표시하는 문자발생기(Color and Character Display
Hardware), 수평/수직 동기신호를 발생시키고 커서의 모양과 위치를
결정하며 밑줄/번쩍임 등의 속성을 가진 문자의 위치를 정하는
CRTC(Cathode Ray Tube Controller) 등으로 구성되어 있다.

1) CRTC

비디오 칩이라고 불리는 CRTC는 컴퓨터의 CPU에 비유될 만큼 그래
픽카드에서 중요한 역할을 한다.
CRTC는 그래픽 카드가 비디오 램의 데이터를 읽어서 화면에 표시
해 주기까지의 모든 동작을 감독, 처리한다. 또한 CRTC는 수평/수직
동기신호를 발생시키면서 이 신호에 따라 비디오램의 내용을 읽어내며
, 읽어낸 데이터에 대해서는 그 내용을 해독하여 지정된 색상과 밝기
를 가지는 신호로 만들어 모니터로 출력시키는 역할을 한다.
MDA,HGC,CGA는 모토롤라사의 MC6845(46505)라는 LSI(대규모 집적
회로)를 CRTC로 사용하고 있으며, EGA는 MC6845에 비해 다양한 기능을
가지는 전용 LSI칩을 사용한다. 또한 VGA급에서는 CRTC가 대부분 그
래픽 보드를 구성하는 커스텀형 VLSI칩의 일부로서 내장되어 있다.

2) 비디오 램

비디오 램은 화면에 표시될 내용을 기억시켜 두는 메모리이다.
비디오 램은 컴퓨터의 CPU와 비디오 카드의 CRTC가 모두 사용할 수는
있으나, CRTC는 대부분 비디오 램에 있는 내용을 읽는 것만 가능하며
여기에 뭔가를 적어 넣는 일은 그래픽카드의 CRTC가 아닌 컴퓨터의 CPU
몫이다. 즉, 컴퓨터는 슬롯을 통해 그래픽 카드를 제어할 수 있어
화면에 출력시키고자 하는 내용을 비디오 램에 넣어둔다. 그리고 그래
픽 카드는, 항상 빠른 속도로 비디오램을 첵크하여 내용을 읽어내고
화면에 출력시킨다.
그래픽 보드가 표현할 수 있는 색상의 수와 해상도는 비디오 램
의 용량에 좌우된다. 카드의 사양을 보면 대부분 CGA는 16KB,허큘레스
는 64KB, VGA는 256KB이상의 램을 갖는다고 하는데 우선 해상도가 640
*200이면서 단색인 CGA를 예로 들어보자. 단색의 경우 각각의 점들은
1이나 0의 상태(꺼지거나 켜진 상태)만을 나타낸다. 그러므로 색을 표
현하는 데는 한 개의 비트만이 필요하다. 그럼 이제 이것들을 모두 계
산해 보자.
640*200*1=1280000bit=16000byte(128000/8:1byte=8bit)=약 16KB(1KB
약1000BYTE) 약 16KB의 비디오램이 필요하다는 계산이 나온다.(정
확히 말하면 16KB는 1638바이트인데 이것은 컴퓨터에서 말하는 1KB가
1000바이트가 아니라 2의 10승인 1024바이트를 나타내기 때문이다)
허큘레스의 경우 최대해상도는 720*348 혹은 640*400이다. 또한
허큘리스는 이러한 그래픽 모드를 2페이지 가지고 있으며 단색만을 나
타낸다. 그러므로 640*400의 경우를 예로 들면 640*400/8=32000byte가
되므로 약 32KB가 필요한데, 2페이지 이므로 모두 64KB의 비디오 램
이 필요하게 된다.
VGA의 경우는 컬러를 고려하여야 한다. VGA의 표준 고해상도 모드는
640*480에서 16색이다. 그럼 우선 색상을 표현하는데 필요한 비트
수에 대해 한 번 생각해 보자. 16가지의 색을 표현하기 위해서는 최소
한 4비트가 필요하다. 즉, 16색을 표현하기위해서는 2의 4승이 16이므
로 4개의 비트가 필요한 것이다. 이제 640*480의 해상도에서 16색을
표현하는데 필요한 램의 용량을 계산해 보면 다음과 같다.

640*480/8*4=153600byte

그렇다면 최근에 소개되고 있는 1024*768에서 256색을 사용할 수
있는 일명 슈퍼 VGA(SVGA)의 경우는 256색을 표현하기위해 한 개의 점
이 한 바이트 즉, 8비트를 가져야 하므로 모두 768KB(1024*768/8*8)가
필요하다. 그러므로 이러한 SVGA들은 적어도 1MB이상의 메모리를 내
장하고 있어야 한다. IBM PC의 메인 메모리가 640KB인 것에 비교한다
면 대단한 용량이라고 할 수 있다.

3) 비디오 롬 바이오스

EGA나 VGA와같은 고해상도 그래픽카드에는 롬 바이오스(ROM BIOS)
라는 것이 내장되어 있다. 허큘리스나 CGA등에서는 볼 수 없었던 롬
바이오스가 내장되어 있는 이유와 기능을 알아보자.
거의 모든 프로그램은 정도의 차이는있지만 모두 화면처리 기능
을 가지고 있는데 그것은 프로그램이 수행되는 과정을 사용자에게 보
여 주기 위한 때문이다. 그러나 모든 프로그램에서 화면처리 루틴을
각각 작성하는 것은 프로그램의 길이가 길어져 낭비가 될 뿐만 아니라
프로그래머에게도 많은 부담을 준다. 그래서 IBM PC에서는 내장된 메모리

롬에 간단한 화면처리 루틴을 포함한 서브 루틴들의 모임인 롬 바이오스

내장하고 있다.그러므로 프로그래머들은 내장된 롬 바이오스를 호출하는

것만으로 간단하게 화면처리 루틴을 사용할 수 있다.
이처럼 IBM PC의 롬 바이오스에는 시스템에 사용되는 여러 유용
한 루틴들이 마련되어 있다.그러나 실제로 IBM PC의 롬 바이오스의 화
면처리 루틴은 MDA,CGA수준의 서비스만 제공하고 있으며 확장된 기능
을 가진 EGA,VGA를 사용하고자 할 때는 내장된 바이오스를 EGA/VGA전
용의 바이오스로 대치시켜야 한다. 때문에 대부분의 EGA,VGA는 비디오
카드 내부에 자체적으로 롬 바이오스를 가지고 있으며 IBM PC부팅 시
에 이들 루틴을 롬에 들어 있는 루틴과 대치시키게 된다. 그러므로 사
용자는 새로 대치된 바이오스를 가지고 원래의 바이오스처럼 사용할
수 있다.

4) 클럭 발생기

비디오 카드에서는 타이밍과 클럭의 안정성이 매우 중요한데 그
것은 클럭에 의해 주파수가 얻어지기 때문이다. 그래픽카드에는 오실
레이터라고 하는 클럭 발생기가 있어 실제로 컴퓨터에서 이루어지는
모든 동작들은 이 곳에서 발생되는 신호에 의해 이루어진다. 따라서
오실레이터가 여러 개 있으면 다양한 주파수를 발생시킬 수 있어 여러
종류의 비디오 보드를 지원할 수 있다. 즉, 여러개의 오실레이터를
가지고 있는 비디오 보드들은 대부분 다양한 그래픽 모드를 지원할 수
있다.

5) 버스 커넥터(슬롯)

버스는 컴퓨터 내부에서 구성요소 간에 데이터를 전달하기 위해
사용하는 통로를 말한다. 그래픽 카드에는 슬롯(버스 커넥터)이라는
것이 있으며 이것이 컴퓨터의 마더보드에 있는 확장 슬롯에 꽂혀야 그
래픽 카드를 사용할 수 있다. 이유는 그래픽 카드와 컴퓨터간의 신호
와 데이터이동이 바로 이 슬롯에 의해 전달되기 때문이다.
VGA이상의 그래픽 카드에서는 슬롯이 확장되어 있는 것이 많다.
외형상으로 슬롯이 하나 있으면 8비트형이며 그 옆에 조그마한 슬롯이
한 개 더 있으면 16비트형 카드이다. 여기서 사용한 비트는 컴퓨터와
그래픽 카드가 데이터를 주고받는 기본 단위를 말하므로 16비트형이
8비트형에 비해 속도가 빠를 것은 당연한 것이다.

* 그래픽 카드의 동작원리 *

그래픽 카드가 주로하는 일은 바로 비디오 램에 들어 있는 내용을
베끼는 일이다. 그래픽 카드는 그래픽 카드의 모든 기능을 주관하는
CRTC라고 불리우는 집적회로에 의해 동작하며, CRTC가 함께 사용하는
영역으로 메인 메모리처럼 데이터를 읽거나 쓸 수 있는 비디오램이 존
재하고 있다.
컴퓨터는 언제나 비디오 램의 데이터를 쓰거나 읽어낼 수 있으나
CRTC는 컴퓨터가 비디오 램을 사용하지 않는 동안에만 데이터를 읽어
낼 수 있다. 그러므로 화면에 표시하고자 하는 내용은 CRTC가 아닌 컴
퓨터에의해 비디오 램에 써지게 된다. 그리고 CRTC는 수시로 비디오
램을 체크하고 있다가 내용을 읽어 적절한 변환과정을 거친후 모니터
에 내용을 표시해 주게 되는 것이다. 그럼 여기서 말하는 변환 과정이
란 우선, CRTC는 PC와 공유하도록 되어 있는 비디오램의 데이터를 차
례로 읽는다. 그리고 읽어들인 문자 코드를 문자 발생기를 이용하여
문자의 도트 패턴으로 변환된 문자는 다시 영상 신호로 만들어지며 화
면상의 불필요한 부분의 표시를 금지하는 소거신호, 수평/수직 동기
신호와 함께 모니터에 출력시켜 비로소 문자를 표시헤된다. 즉, 앞서
언급한 변환과정이란 이러한 모든 과정을 얘기하는 것이다.

* 마치며 *

지금까지 그래픽카드에 관해서 간단하게 나마 알아보았읍니다.
여러분들이 사용하시는 것은 하드웨어가 아니라 소프트웨어 이겠지
만 이러한 것들은 기본적인 지식에 해당된다고 생각합니다.
컴을 시작하는 사람이나 잘 모르셨던 분들에겐 컴을 이해하는데
조금이나마 도움이 되었으리라 생각합니다. 처음부터 하드웨어나
소프트웨어를 무작정 대하고나서 생기는 문제들이 종종 있읍니다.
이러한 것들은 체계적인 지식의 습득이 없었기 때문이며 저도 그런 사
람 중의 한 사람 이었읍니다. 저와 같으신 분들이 꽤 있다고 생각
하는데 많은 도움이 되었기를 바라며 글을 맺습니다.

옮기고 보니 별로 고친 곳이 없군요.
이 글을 쓰�Х던 분께는 아무상의도 없이 무단으로 글을 옮긴데 대해
죄송한 마음 금할 길이 없읍니다. 부디 너그러운 마음으로 용서해 주
시고 모두가 잘 되는 기회가 되기를 바랄 따름 입니다.

출처: https://degman.tistory.com/303 [하이텔2]

 

 

 

 

728x90
반응형