포스트

컴퓨터의 구성

컴퓨터의 구성

컴퓨터의 구성 요소

컴퓨터는 기능적으로 크게 중앙 처리 장치(CPU), 기억 장치(Memory), 입출력 장치(I/O Devices), 그리고 이들을 연결하는 시스템 버스(System Bus) 로 나눌 수 있습니다.

중앙 처리 장치(Central Processing Unit, CPU)

컴퓨터의 두뇌로 모든 계산과 명령을 처리하고 시스템 전체를 통제합니다. 주기억 장치에서 프로그램 명령어와 데이터를 가져와(Fetch) 해석하고(Decode) 실행(Execute)한 후, 그 결과를 저장(Store)하는 역할을 반복합니다.

CPU는 내부에 연산을 담당하는 산술/논리 연산 장치(ALU), 명령을 해독하고 지시하는 제어 장치(CU), 그리고 임시 데이터 저장소인 레지스터(Register) 로 구성됩니다.

기억 장치(Memory)

데이터와 프로그램을 저장하는 공간입니다. CPU가 작업에 필요한 데이터와 명령어를 보관하며 속도와 용도에 따라 계층 구조를 가집니다.

  • 주기억 장치(Main Memory, RAM)
    • CPU가 현재 처리 중인 프로그램과 데이터를 저장하는 공간입니다.
    • 속도가 보조기억장치보다 훨씬 빠르지만, 전원이 꺼지면 내용이 사라지는 휘발성(Volatile) 메모리입니다. (DRAM, SRAM 등)
  • 보조 기억 장치(Secondary Storage)
    • 전원이 꺼져도 내용이 유지되는 비휘발성(Non-volatile) 저장장치입니다.
    • 운영체제, 응용 프로그램, 사용자 데이터 등 모든 정보를 영구적으로 보관합니다. (SSD, HDD 등)
  • 캐시 기억 장치(Cache Memory)
    • CPU와 주기억장치(RAM) 사이의 속도 차이를 완화하기 위한 고속 메모리입니다.
    • CPU가 자주 사용할 것으로 예상되는 데이터를 미리 가져다 놓아, CPU가 RAM까지 가는 시간을 절약해 주며 이는 참조 지역성의 원리(Locality of Reference) 에 기반하여 동작합니다.

입출력 장치(I/O - Input/Output Devices)

컴퓨터가 외부와 소통하는 통로입니다.

  • 입력 장치
    • 외부의 데이터를 컴퓨터로 들여오는 장치입니다. (키보드, 마우스, 마이크, 스캐너 등)
  • 출력 장치
    • 컴퓨터가 처리한 결과를 외부로 내보내는 장치입니다. (모니터, 스피커, 프린터 등)

시스템 버스(System Bus)

CPU, 메모리, 입출력 장치 등 컴퓨터의 핵심 구성 요소들을 서로 연결하여 데이터와 신호를 주고받을 수 있게 하는 공용 통신 경로입니다.

용도에 따라 주소 버스, 데이터 버스, 제어 버스로 나뉩니다.

주소 버스(Address Bus)

CPU가 메모리(주소)나 입출력 장치(포트)의 특정 위치(주소)를 지정할 때 사용하는 통로입니다. 주소는 CPU가 일방적으로 지정하므로 단방향(Unidirectional) 버스입니다.

주소 버스의 폭(비트 수)이 CPU가 접근할 수 있는 최대 메모리 공간을 결정합니다.

32비트 주소 버스는 $2^{32}$개의 주소(약 4GB)를, 64비트 주소 버스는 $2^{64}$개의 주소(어마어마하게 큰 공간)를 식별할 수 있습니다.

데이터 버스(Data Bus)

CPU와 메모리, CPU와 입출력 장치 사이에서 지정된 위치의 실제 데이터를 주고받는 통로입니다. 데이터는 CPU에서 메모리로 쓰일 수도(Write) 있고, 메모리에서 CPU로 읽힐 수도(Read) 있으므로 양방향(Bidirectional) 버스입니다.

데이터 버스의 폭(비트 수)은 한 번에 전송할 수 있는 데이터의 양, 즉 워드(Word) 크기를 결정하며 컴퓨터의 성능에 직접적인 영향을 줍니다. (64비트 CPU는 데이터 버스 폭이 64비트)

제어 버스(Control Bus)

CPU가 시스템의 다른 장치들을 제어하고 상태를 파악하기 위한 각종 제어 신호들이 오고 가는 통로입니다. CPU의 명령(Memory Read/Write 등 동작 지시 신호)과 다른 장치의 상태 보고(인터럽트 요청, Ready/Wait 등 상태 응답 신호)가 모두 오가므로 양방향(Bidirectional) 버스입니다.

데이터 읽기/쓰기 과정

데이터 읽기(Memory Read)

  1. CPU는 메모리에서 특정 데이터를 읽기 위해 주소 버스를 통해 읽고자 하는 데이터의 메모리 주소를 전달합니다.
  2. CPU는 동시에 제어 버스를 통해 메모리 읽기(Memory READ) 신호를 메모리에 보냅니다.
  3. 메모리는 주소 버스를 통해 전달받은 주소의 데이터를 확인하고 준비하며 준비된 데이터는 데이터 버스에 추가합니다.
  4. 메모리는 데이터 준비가 완료되면 준비 완료(READY) 신호를 CPU로 보내고 CPU는 데이터 버스에서 데이터를 가져옵니다.

데이터 쓰기(Memory Write)

  1. CPU가 주소 버스에 데이터를 쓸 메모리 주소를 보냅니다.
  2. CPU는 데이터 버스에 쓸 데이터를 보냅니다.
  3. CPU는 제어 버스를 통해 ‘메모리 쓰기(Memory WRITE)’ 신호를 보내고, 메모리는 해당 주소에 데이터를 저장합니다.
이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.