관리 메뉴

드럼치는 프로그래머

[H/W] [MCU] 마이크로 프로세서에서 워드란 무엇인가? 본문

★─Programing/☆─HardWare

[H/W] [MCU] 마이크로 프로세서에서 워드란 무엇인가?

드럼치는한동이 2008. 5. 1. 21:02
    우리가 8비트, 16비트 또는 32비트 마이크로프로세서라고 할 때의 비트수를 "워드(word)"라고 부른다. 그러면 컴퓨터나 마이크로프로세서에서 이 워드란 도대체 무엇인가? 이를 한마디로 정의하면 "컴퓨터에 사용된 CPU가 한번에 기본적으로 처리할 수 있는 데이터의 길이"라고 말할 수 있다. 그런데 여기서 데이터를 처리한다는 것은 2가지의 측면이 있다.

    첫째로, CPU의 내부적인 처리는 산술 및 논리연산으로 대표된다. 즉, CPU가 한번에 기본적으로 연산처리하는 데이터의 길이가 워드이다.

    둘째로, CPU의 외부적인 처리는 메모리 및 I/O에 대한 데이터 액세스이다. 즉, CPU가 한번의 버스 사이클을 통하여 메모리나 입출력장치에서 액세스하는 데이터의 길이가 워드이다.

    그러나 여기에는 적지 않은 예외가 있다. 예를 들어 8051은 내부의 가감산 연산을 8비트 단위로 처리하고 외부 데이터 액세스도 8비트로 처리하므로 당연히 8비트 마이크로프로세서이다. 그러나 마이크로프로세서에 따라서는 8비트 마이크로프로세서라도 명령의 일부에서 16비트 단위로 데이터를 처리하는 경우도 있다. 그러나 이러한 예외적인 명령을 가지더라도 기본적으로는 8비트 단위로 연산을 수행한다면 이것은 당연히 8비트 마이크로프로세서로 분류하는 것이 마땅하다.


    한편, 8088과 같이 내부의 데이터 처리는 16비트로 수행하는데 비하여 외부 액세스는 항상 8비트 단위로 처리하는 모델도 있으며, 80C196KC처럼 내부의 데이터 처리는 16비트로 수행하지만 외부 액세스는 사용자가 8비트 또는 16비트중에서 임의로 지정할 수 있는 모델들도 있다. 그렇다면 이 8088이나 80C196KC는 8비트 마이크로프로세서인가 16비트 마이크로프로세서인가? 이것은 사람에 따라 다르게 말할 수 있지만 일반적으로는 16비트 마이크로프로세서라고 본다. 이중에서 8088의 경우는 원래 16비트 모델(8086)이 먼저 개발되고 이를 외부 하드웨어 설계가 간단해지는 8비트 저가형(8088)으로 수정한 경우이며, 80C196KC의 경우는 기본적으로 16비트 구조로 설계하여 놓고 사용자가 필요할 경우에만 외부 액세스를 8비트로 간단히 처리할 수 있는 기능을 추가로 가지도록 한 것이기 때문이다.


    그러나, 이와는 반대의 경우도 있다. Intel의 Pentium 마이크로프로세서는 32비트 워드로 되어 있으나 외부 액세스는 64비트 단위로 수행한다. 이는 마이크로프로세서의 내부 처리속도가 빠른데 비하여 외부 액세스에는 많은 시간을 필요로 하므로 1회에 2개의 워드를 액세스하므로써 전체적인 처리 성능을 향상시키기 위한 방법의 일종이다.

    마이크로프로세서가 개발된 초창기에는 외부 인터페이스를 간단히 하기 위하여 워드보다 짧은 길이를 갖는 데이터 버스를 사용하는 경우가 종종 있었으나, 성능을 중시하는 요즈음의 모델에서는 마이크로프로세서의 성능을 높이기 위하여 워드 길이보다 긴 외부 데이터 버스를 갖는 경우가 생겨나는 것이다. 그러나, 이와 같이 내부처리 데이터 길이와 외부처리 데이터 길이가 다른 경우에는 내부 처리단위를 기준으로 워드를 정의하는 것이 바람직하다. 이것은 전반적인 마이크로프로세서의 동작을 지배하는 것은 내부에서의 명령처리이며, 프로그램에서 외부를 액세스하는 것은 상대적으로 빈도가 낮게 발생하는 동작이기 때문이다.

    일반적으로 CPU의 워드가 길어지면 컴퓨터의 성능이 높아진다. 성능이 낮은 기종에서는 여러번 나누어 처리해야 할 것을 여기서는 한번에 처리할 수 있기 때문이다. 또한 명령의 종류나 처리방식이 다양해진다. 예를 들어 1개의 워드로 명령이 구성된다고 가정할 때 8비트에서는 256개의 명령을 정의할 수 있으나 16비트에서는 65536개의 명령을 정의할 수 있게 된다. 또한, 표준적인 부동소숫점 표현방식을 사용하려면 워드 길이가 최소한 32비트를 필요로 한다.
 

   일반적으로 범용 마이크로프로세서들은 성능과 호환성이 시장에서의 우위를 지배하는 가장 중요한 요인이 되므로 4비트에서 8비트, 16비트, 32비트를 거쳐 64비트로 발전해 가고 있으며, 상위 모델이 출시되면 하위 모델은 시장에서 급속도로 퇴조하는 경향이 있다. 그러나, 마이크로콘트롤러는 성능 못지 않게 다양한 I/O 기능이나 제어 시스템에 적절한 낮은 가격이 중시되는 경우가 많기 때문에 응용 분야에 따라 4비트에서 32비트까지 다양한 모델들이 시장에서 공존하게 되며, 사용자의 입장에서는 현실성을 고려하여 적절한 모델을 선택하여 사용하는 것이 중요하다.


    워드에 관하여 한가지 유의할 점은 어떤 워드 길이를 가지는 CPU라도 반드시 워드 단위로만 데이터를 처리하지는 않으며, 대부분의 마이크로프로세서에서는 바이트 단위로 데이터를 처리할 수 있는 기능을 함께 가진다는 것인데, 이를 "byte machine"이라고 한다. 특히 입출력장치로 데이터를 전송하는 I/O 액세스에서는 반드시 8비트 단위의 처리기능을 함께 갖는다. 그렇지 않으면 디스크 드라이브나 프린터와 같이 병렬로 접속하는 주변장치를 8비트 컴퓨터용, 16비트 컴퓨터용, 32비트 컴퓨터용, 64비트 컴퓨터용으로 따로 만들어야 하는 끔찍한 결과를 초래할 것이다.

Comments