[컴퓨터 길잡이] PC대탐험 (20);메모리 (9)-SW메모리 개요

CPU, 버스와 함께 PC의 3대 구성요소의 하나인 메모리.

초보자가 PC를 이해하기 위해서는 메모리의 특성과 원리를 반드시 짚고 넘어가야 한다. 메모리를 이해하기 위해서는 두가지 접근방식을 택하는 것이 좋다. 우선 메모리를 이루는 장치, 즉 반도체 등 다양한 하드웨어적 특성과 종류를 파악하는 것이 급선무.

또 다른 하나는 PC내에서 메모리가 어떠한 방식으로 구성되는가를 다루는 소프트웨어적 접근 방식이 있다.

소프트웨어적인 메모리파악은 PC의 작동원리와 내부구조를 이해하고 PC의 사용환경을 평가할 수 있다는 점에서 하드웨어메모리 못지 않게 중요한 사항이 된다. 소프트웨어 메모리의 이해란 무엇인가 ? 간단하게 풀이해 PC를 사용하는 사람이면 흔히 듣는 "메모리 용량부족" "286 컴퓨터에서 작동이 안되는 프로그램", 프로그램 사양에 나오는 386컴퓨터이상에서 작동 용이", "도스의 한계" 등의 용어를 이해하는 것이라 할 수 있다. 달리 표현하면 하드웨어메모리, CPU, 운용프로그램 등이 연출해내는 PC의 총체적인 메모리 환경을 설명하는 것이다.

PC용어로는 메인메모리 도스메모리(전통메모리) 실제메모리 연장메모리 확장 메모리 가상메모리 캐시메모리 등의 개념을 이해하는 것으로 표현된다.

PC에서 용량과 종류가 똑같은 하드웨어메모리를 채택했다 하더라도 CPU나 운용프로그램이 서로 다르다면 소프트웨어적 메모리의 설명이 확연하게 달라지는 것도 이 때문이다.

소프트웨어 메모리를 이해하기에 앞서 우선 컴퓨터에서 작동하는 메모리에대한 기초지식을 점검해보자.

컴퓨터의 메모리는 기본적으로 8개의 비트로 이루어진 바이트로 구성되며 한 바이트는 8개의 비트를 가짐으로써 2백56가지의 서로다른 데이터 값을 가진다. 메모리에 저장되는 정보는 그것이 무엇이든간에 비트(0과1이라는 이진수)형 태로 표현되는 것이다. 물론 이진수는 프로세서 등에 의해 적절하게 해석되며 같은 값을 가진 이진수라 하더라도 숫자, 문자, 기계어 명령으로 취급될 수 있게 된다.

컴퓨터의 메모리는 바이트단위로 사용되지만 때에 따라서는 더 큰 용량의 정보를 처리하기 위해 여러개의 바이트를 함께 사용할 수 있다.

2바이트를 묶어 16비트크기의 수를 저장하는 형태가 워드라고 불리는 것. 이워드야말로 앞으로 가장 많이 등장하는 메모리 지정방법이 된다. 때로는 네 개의 바이트를 모아 32비트로 표현하는 경우도 있는데 이를 더블워드라 한다. 컴퓨터 메모리바이트는 메모리 칩에서도 유추할 수 있듯 양이 엄청나게 많기때문에 CPU나 그밖의 PC장치들이 이를 구분하기 위해서는 각 바이트단위로 식별번호가 붙여진다.

이를 메모리 어드레스(주소)라 한다.

PC의 작동원리는 0과 1이라는 이진화된 전기신호로 이루어진다. 이진수는 우리가 흔히 표현하는 십진수와는 상이하지만 결국 숫자를 표현하는 한 방법에불과하다. 애당초 전기신호의 강약으로밖에 구분못하는 멍청한(?) PC가 무궁무진한 데이터를 처리하게 된 것도 숫자를 이용하기 때문이다.

모든 이진수의 데이터는 2의 .승으로 표현되는데 이때 .값은 자릿수를 의미 한다. 8자리수의 이진수는 2의 8승, 즉 2×2×2×2×2×2×2×2=256개의 데이터 표현이 가능한 것.

단 초보자라면 왜 1바이트를 지정할 때 8비트를 사용하는가에 대한 의문점이 생길 것이다.

7비트를 사용해도 상관없으나 표준화된 영문자와 아라비아숫자 기호 특수문자를 사용하기엔 7비트로 역부족이다.

물론 9비트를 사용하면 수용성은 넓지만 비트수 증가에 따라 모든 PC시스템 의 부하가 증가하고 데이터량이 증가해야 하는 부담이 있다.

8비트로 구성된 1바이트로는 세계각국의 문자를 표준화할 수 없다. 표현가짓수가 2백56가지이므로 수많은 언어의 문자를 수용할 수없기 때문이다. 이같은 이유로 세계각국은 자신의 언어를 제각각 코드(이진수로 지정하는 것)화 해 사용하고 있다.

이제 메모리 기초지식에 이어 소프트웨어 메모리에 접근해본다. 앞에서 살펴보았듯 모든 데이터의 표현은 숫자에서 비롯된다.

결국 PC는 어떤형식으로도 숫자를 표현할 수 있지만 가장 많이 사용하는 방법은 2개의 바이트를 묶어 사용하는 워드라는 형식이다.

2개의 바이트는 16비트.여기서 발생하는 "16"은 소프트웨어 메모리에서는 중요한 숫자로 등장한다.

왜 16이라는 바이트 방식의 워드를 사용하는가? 그것은 PC의 메모리를 구별 하는 식별번호인 메모리 어드레스를 처리하는데 자주 사용되기 때문이다.

무엇보다도 프로세서가 한번에 처리할 수 있는 기계어 명령의 최대 수치가 16개라는 점이다.

PC에서는 프로세서가 갖는 특성때문에 프로그램이 컴퓨터의 메모리를 지정하는 방법은 상당히 복잡해진다. 그렇지만 단순원리로 살펴볼 때 앞에서 등장 한 16비트숫자의 영향을 받는다.

16비트가 표현할 수 있는 데이터의 가짓수는 2의16승인 6만5천5백36가지에 이른다. 6백5천5백36은 64KB에 해당하는 수치.

결국 컴퓨터는 메모리를 지정하기 위해 숫자를 사용해야 하기 때문에 메모리 도 64KB를 넘지 않는 것이 좋다.

그러나 64KB는 프로그램을 사용하기에는 너무나 작은 메모리이다. 현재 등장 하고 있는 PC는 메가바이트급의 메모리를 가지고 있다.

그렇다면 메모리 식별번호를 지정하기 위해 16비트를 사용하면서 64KB보다 더 큰 메모리를 사용할 방법이 없을까? 이는 확장메모리 연장메모리 가상메모리라는 소프트웨어 메모리의 활용이 확대되고 프로세서가 발전되면서 해결되고 있다. 자세한 내용은 다음호부터 별도로 설명하기로 한다.

단 소프트웨어적 메모리의 가장 근본적인 원리는 하드웨어 메모리가 아닌 CPU에서 찾아야 한다는 점을 인식해 두기 바란다.

이는 PC의 역사가 아이로니컬하게도 마이크로프로세서의 역사와 직결되고 있다는 것과 일맥 상통한다.

중앙처리장치로 불리는 CPU는 PC에서 일어나는 모든 데이터 처리과정을 명령 하고 수행하는 역할만큼이나 PC의 거의 모든 기능을 대변하고 있다.

메모리도 예외가 아니어서 CPU의 영향을 벗어 날 수 없기 때문이다.

신영복기자


브랜드 뉴스룸