CS/마이크로프로세서

[마이크로프로세서] 개요

nowkoes 2023. 9. 28. 00:00

Micro Processor

개요

 지난 컴퓨터 구조 시간에서 배웠듯이, 컴퓨터는 하드웨어와 소프트웨어로 구성되는 명령어를 처리하는 기계다. 우리가 일반적으로 사용하는 범용 컴퓨터(PC)는 그 구조 내에 다양한 부품과 기능들을 내장하고 있어, 복잡한 작업들도 손쉽게 처리할 수 있다. 

 

 그렇다면 컴퓨터의 핵심이 되는 기본 구성 요소는 무엇일까? 바로 CPU, 메모리(주 메모리, 보조 메모리), 입출력 장치다. 이러한 핵심 부품들이 통합된 장치를 컴퓨터로 정의할 수 있다. 

 

 이때, 마이크로컴퓨터라는 용어는 이러한 핵심 부품들을 포함하면서도, 마이크로프로세서를 중심으로 간소화된 구조를 가진 컴퓨터를 의미한다. 초기의 마이크로컴퓨터는 대형 컴퓨터나 미니 컴퓨터에 비해 작고, 특정한 목적에 맞춰진 작업을 수행하도록 설계되었다. 현대의 다양한 기능을 갖춘 PC와는 대조적으로, 마이크로컴퓨터는 특정한 작업에 맞게 설계되어, 그 크기와 복잡성에서 간결함을 추구한다. 앞으로 이러한 마이크로컴퓨터를 배워보는 시간을 가지도록 해보자.


본문

컴퓨터의 구성 요소

 

 개요 부분에서 설명했듯이 컴퓨터는 하드웨어와 소프트웨어로 구성된다. 이때 하드웨어는 CPU, 메모리, 입/출력 장치를 의미하고, 소프트웨어는 하드웨어를 제어하는 시스템 소프트웨어, 특정 목적을 수행하기 위한 응용(Application) 소프트웨어로 구분된다. 이에 관한 내용은 컴퓨터구조 게시글들을 참조하자.


마이크로프로세서와 컨트롤러, 컴퓨터

 해당 과목을 공부하다 보면 마이크로컴퓨터, 마이크로프로세서, 마이크로컨트롤러라는 용어가 혼합되어 나와 헷갈리기 쉽다. 먼저 간단하게 용어부터 정리하자.

 

 

 해당 그림을 보면 프로세서와 컨트롤러를 좀 더 쉽게 구분할 수 있다. 마이크로컨트롤러(Micro Controller Unit)마이크로프로세서, 즉 CPU를 포함하여 메모리, 입출력장치 등을 단일 IC에 집적한 반도체 소자로서, 하나의 IC만으로 완전한 컴퓨터로써의 기능을 갖추고 있다. 이로 인해, 특정한 목적에 맞춰진 임베디드 시스템에서 주로 사용된다.

 

 반면 마이크로프로세서(Micro Processor Unit)컴퓨터의 중앙 처리 장치의 기능을 간략하게 구현한 반도체 소자로, 단일 집적회로에 포함된다. 주로 연산과 제어 기능을 수행하며, 컴퓨터의 두뇌 역할을 한다.

 

 마지막으로 마이크로컴퓨터(Micro Computer)는 특정한 목적을 위해 설계되는 MCU와 달리, 보다 일반적인 컴퓨팅 작업을 수행하도록 설계된다. 보통 사용자와 직접적으로 상호작용하며 다양한 소프트웨어를 실행할 수 있다. 


동작 방식

마이크로컨트롤러 구성

 

 해당 그림은 마이크로컨트롤러의 구성과 기본적인 동작 방식이다. 여기서 주목해야 할 것은 버스다. 버스(Bus)컴퓨터 내부에서 정보 전송의 핵심적인 역할을 담당하는 전송로다. CPU와 다양한 장치들 간에 데이터, 주소, 제어 신호 등의 정보를 교환하는 버스를 통해 전송되는 모든 정보는 이진수 형태로 표현되며, 버스가 없다면 각 이진수가 어떤 정보나 명령을 의미하는지 구별하는 것이 거의 불가능하다. 버스는 이렇게 다양한 컴퓨터 구성 요소 사이의 연결고리 역할을 하면서, 효율적이고 정확한 정보 교환을 가능하게 한다.

 

1. 주소 버스

  메모리 내의 특정 장소나 입출력 장치의 특정 포트를 지정하는 주소가 실리는 곳이다. 여기서 주소 버스의 너비는 마이크로컨트롤러가 접근할 수 있는 메모리 주소의 범위를 결정한다. 따라서 이를 통해 시스템이 지원할 수 있는 최대 메모리 용량을 유추할 수 있다. 해당 그림에서는 16비트 주소 버스를 사용하고 있으므로, 2^16 = 65,536개의 고유한 메모리 위치에 접근할 수 있으므로, 64KB의 메모리 용량을 가질 수 있다.

  • 주소 버스의 너비는 주소를 지정할 수 있는 선의 수를 나타낸다. 각 위치는 메모리의 기본 단위인 바이트를 의미하므로, 2^16 비트가 아닌 2^16 바이트가 된다.

 

2. 데이터 버스

 각 장치 간 주고받는 정보가 실리는 데이터 버스는 그 너비에 따라 한 번에 전송할 수 있는 데이터의 양을 결정한다. 여기서 데이터 버스의 너비는 마이크로컨트롤러가 한 번에 전송할 수 있는 데이터의 양을 의미한다. 해당 그림에서는 8비트 데이터 버스를 사용하고 있으므로, 한 번에 8bit까지만 데이터를 전송할 수 있다.

 

3. 제어 버스

 제어 버스는 마이크로컨트롤러와 연결된 장치들에게 제어 신호를 전송하는 데 사용된다. 예를 들면, 데이터 읽기, 데이터 쓰기, 장치 선택 등의 연산을 지시하는 신호가 실린다.


CPU와 메모리의 데이터 교환

 

 CPU와 메모리 간 데이터 교환의 기본적인 원리는 간단하다. 크게 주소 지정, 읽기/쓰기, 데이터 전송, 데이터 처리 과정을 거쳐서 정보를 교환한다. 이때 버스 시스템을 통해 이루어진다는 것을 반드시 기억하자.

 

1. 주소 지정(Addressing)

 CPU는 특정 메모리 위치의 데이터에 접근하려면, 그 위치의 주소를 알아야 한다. 따라서 CPU는 주소 버스를 통해 원하는 메모리 주소를 전송한다.

 

2. 읽기/쓰기(Read/Write)

 CPU는 데이터를 읽거나 쓰려고 할 때, 해당 명령을 제어 버스를 통해 메모리에 전달한다. 예를 들어, CPU가 특정 메모리 주소의 데이터를 읽고 싶다면, 제어 버스에 읽기 신호를 보낸다.

 

3. 데이터 전송(Data transfer)

 CPU 데이터를 읽거나 쓸 때, 데이터 버스를 통해 해당 데이터/주소를 CPU/메모리로 전송한다.

 

4. 데이터 처리(Data processing)

 CPU는 메모리에서 읽은 데이터를 처리하거나, 처리한 결과를 메모리에 다시 저장한다.

 

 

 주소를 인출하는 과정에서 디코더(Decoder)는 주소를 식별하고 해당 장치나 메모리 위치를 활성화하는 역할을 한다. 즉, 주소 지정과 읽기/쓰기 사이에 주소를 디코딩하여 전송된 주소를 정확한 메모리 칩 또는 해당 메모리 영역을 활성화한다. 예를 들어, 메모리가 여러 개의 블록 또는 모듈로 구성된 경우, 주소의 특정 비트는 어떤 블록 또는 모듈에 접근할지 결정하고, 나머지 하위 비트는 해당 블록 내의 특정 위치를 지정하게 된다. 

 

 위의 그림처럼 A0부터 A12까지 13비트 주소가 전송된다고 가정해 보자. 이 주소는 3 to 8 Decoder를 통해 8개의 메모리 블록 중 하나를 결정한다. 예를 들어 111이면 Mem 8, 010이면 Mem 2에 접근하여, 나머지 10비트에 해당하는 내용이 선택된 메모리 블록 내의 특정 바이트 위치를 지정하는 데 사용된다. 


CPU의 기능과 명령어 사이클

 CPU의 기능명령어 사이클은 각각 하이퍼링크를 확인하자.


요약

마이크로컨트롤러
1. 정의: CPU를 포함하여 메모리, 입출력장치 등을 단일 IC에 집적한 반도체 소자 
 - 마이크로프로세서: CPU 기능을 간략하게 구현한 반도체 소자
2. 동작 방식
 - CPU와 RAM/ROM/기타 장치가 버스를 통해 정보를 주고 받으며 동작
3. 버스
 a. 정의: 정보 전송의 통로
 b. 종류
  - 데이터 버스: 데이터를 전송하는 버스. 한 번에 처리할 수 있는 데이터의 양이 너비로 결정됨.
  - 주소 버스: 주소를 전송하는 버스. 주소 버스의 너비가 메모리 최대 용량을 의미함.
  - 제어 버스: 제어 신호를 전송하는 버스
4. CPU와 메모리의 통신: 디코더를 통해 특정 메모리를 지정하고, 메모리 내의 영역에 데이터를 쓰거나 읽음.
반응형