메모리는 PC에서 어떻게 활용되는가를 점검해보자.
PC는 디지털 신호인 숫자로 작동한다. 그런데 PC의 숫자표현은 어떤형식으로 도 가능하지만 가장 많이 사용하는 것은 바이트(16비트)를 쓰는 워드형식이 다. 또한 도스운용체계에서 PC의 메모리 어드레스를 처리하는데 자주 사용되는비트가 16비트이고 프로세서가 작동할 때에도, 동시에 PC의 기계어 명령을 처리할 수 있는 최대 수치 또한 16이다.
16비트는 2의 16승으로 6만5천5백36가지의 데이터표현이 가능하다. 흔히 바이트로 64KB에 해당되는 것이다.
컴퓨터는 메모리를 지정하기 위해 숫자를 표현해야 하기 때문에 메모리 또한64KB를 넘을 수 없는 것.
그러나 지난호에서 살펴보았듯 프로그램이 작동하기에 64KB는 너무나 작은 메모리 용량이다.
컴퓨터가 메모리 어드레스를 위해 16비트 숫자를 사용하면서 더 큰 용량의 메모리를 사용해야 한다면 어떤 방법을 이용해야 하는가?메모리는 CPU의 직접적인 영향을 받는법. 마이크로프로세서 업체인 인텔사가1차적인 해결책을 제시한다. 지난 1978년 인텔사가 처음으로 16비트 PC용 마이크로 프로세서인 8086을 설계할 때 "세그먼트 어드레스 변화"라는 방식을 도입하게 된다.
이로써 CPU내의 기억장치인 레지스터를 변경시키지 않고 주소를 기록할 수있는 공간인 64KB의 용량이 1M로 높아지게 된다.
정확하게는 1백4만8천5백76바이트의 메모리를 지정할 수 있게 된 것이다.
여기서 등장하는 1M는 앞으로 설명하게될 모든 소프트웨어 메모리를 파악하는데 가장 중요한 관건이 된다.
기본메모리로 불리는 1M내에서 도스의 한계인 640KB메모리와 예약된 3백84KB 의 시스템메모리라는 용어가 등장한다.
앞으로 나오게 될 하위메모리 상위메모리 연장메모리 확장메모리 가상메모리 도 1M의 기본메모리를 기초로 지정된다.
현재 1M는 PC에서 프로그램을 운용할시 너무나 작은 용량이지만 PC가 최초로 등장할 때에는 충분한 메모리공간이 될 수 있었다.
당시에는 그만한 프로그램이 등장하지 못했으며 실제 시중에 나와 있는 PC의메모리 용량은 고작 64KB나 1백28KB 였다.
물론 최근의 PC에서는 메모리의 한계라는 용어가 사라지고 있지만 메모리의 작동 원리에는 1M라는 기본메모리가 자리잡고 있다.
도스라는 운용체계를 바탕으로 설계된 PC환경은 1M의 메모리를 환경으로 점차 발전하게 된다.
PC의 64KB한계를 극복하게 된 "세그먼트 어드레스"방식이란 무엇인가? 우리말로 분할방식에 의한 주소지정 정도로 풀이되는 "세그먼트 어드레스 는크게디지털신호 연산방법과 프로세서내부의 메모리 주소지정방법의 진보된변화를의미한다. 우선 프로세서 내부메모리의 주소지정 변화의 경우를 살펴보자.
CPU내에는 별도의 기억장치인 레지스터(일종의 집적된 기억회로로 보면 타당 가 존재한다. CPU는 프로그램을 수행할 때 프로그램자체와 데이터 두가지를관리해야 하는데 이때 레지스터가 이분화되어 기억장치를 제공한다.
프로그램의 위치를 관리할 때는 코드 세그먼트 레지스터를, 데이터를 관리할 때는 데이터 세그먼트 레지스터를 각각 활용하게 된다.
그런데 프로그램이 작동하는 도중에 이들 두가지의 기억회로(레지스터)가 담고 있는 내용을 변경할 수만 있다면 레지스터를 보다 효율적으로 사용할 수있다. 결국 시간적 여유공간으로 메모리 지정의 한계를 극복하게 된다.
프로그램 작동중에 두가지 기억회로부분이 고정되는 경우에는 프로그램과 데이터의 크기가 64KB이내로 제한 받는다.
이를 "작은 메모리 모델"이라 하는데 기존의 8086이전의 마이크로프로세서에 서 채택한 방식이다.
8086에서는 프로그램 작동중에 데이터레지스터와 프로그램레지스터 값이 변화됨으로써 최대 1M의 메모리 용량을 지정할 수 있게 된 것이다. 그런데 문제는 메모리한계를 극복할 수 있는 이익이 발생하지만 프로그램레지스터를관리해야 하는 부가적 작업이 필요하게 된다.
이는 CPU든 메모리에든 새로운 명령어가 전달되면 그만큼 데이터양이 많아지며 데이터 처리과정이 복잡해지는 것과 마찬가지이다.
결국 세그먼트레지스터를 변화시키는 것은 작업의 부가에 따라 프로그램의 수행속도가 떨어지게 되는 결과를 가져온다.
또 메모리 관리 작업이 더 많이 필요하게 되는데 이것은 프로그램을 더욱 복잡하게 만드는 요인이 되고 있다.
참고로 두가지 레지스터 가운데에서도 프로그램 관리용이 데이터 관리용보다 상대적으로 복잡하게 되어 있다는 사실도 염두해 두자.
때문에 프로그램 자체의 크기가 64KB를 넘어도 처리할 수 있으나 데이터는 64KB를 넘지 못하는 경우가 있다.
1M까지의 메모리 용량확대가 가능하게 된 두번째 요인은 산술연산방식의 변화. 일반적으로 16비트의 워드방식의 작동에서 나온 64라는 메모리 한계는 내부 작동시 16비트 두개를 합쳐 20비트이진수로 만들어 사용함으로써 극복된다.
실례로 ABCD와 1234라는 16비트가 있다고 하자. 단 16진수는 한 자리가 4비 트로 구성된다는 점을 기억해 두자.
두개의 수 중에서 하나를 선택해 끝자리에 별도의 문자를 추가한 1234F의 경우 16진수 한자리만큼 또는 2진수 네자리만큼 더해진 것이다. 이 숫자는 1MB 를 나타낼 수 있는 5자릿수 16진수가 되는 셈이다.
64KB의 메모리 한계와 관련해 우리가 가장 쉽게 배울 수 있는 베이식이라는 프로그래밍 언어를 살펴보자.
베이식 언어를 사용해 프로그램을 작성할 때에 프로그램과 데이터를 합친 메 모리 용량은 64KB를 넘지 못한다.
단 도스 5.0 이상에 따라오는 프로그램인 QBasic에서는 데이터만도 64KB까지 사용 가능하도록 설계했다.
다행스럽게도 PC의 프로그래밍 기법과 프로그래밍 언어의 비약적인 발전으로 64KB의 한계는 거의 사라지고 있다. 신영복 기자
많이 본 뉴스
-
1
“저녁 대신 먹으면 살 쭉쭉 빠진다”···장 건강·면역력까지 잡는 '이것' 정체는?
-
2
“라면 먹을떄 '이것' 같이 먹지 마세요”…혈관·뼈 동시에 망가뜨려
-
3
의사가 극찬한 '천연 위고비'…“계란 먹고 살찌는 건 불가능”
-
4
삼성전자, SiC 파운드리 다시 불 지폈다… “2028년 양산 목표”
-
5
국내 최초 휴머노이드 로봇 쇼룸 문 연다…로봇이 춤추고 커피도 내려
-
6
현대차, '더 뉴 그랜저' 디자인 공개…“新기술 집약”
-
7
배달 3사, 이번엔 '시간제한 할인' 경쟁…신규 주문 전환율 높인다
-
8
트럼프, '전쟁리셋'에 유가 재점등…韓 4차 최고가 사실상 무력화
-
9
자동차 '칩렛' 생태계 커진다…1년반 새 2배로
-
10
中 BYD, 국내에 첫 하이브리드차 출시…전기차 이어 포트폴리오 다각화
브랜드 뉴스룸
×



















