컴퓨터 구조의 큰 그림

컴퓨터 구조

목록 보기
2/20

컴퓨터 구조의 큰 그림: 핵심 개념 정리


1. 컴퓨터 구조에서 배우는 주요 내용

컴퓨터 구조를 효과적으로 학습하기 위해서는 전체적인 큰 그림을 이해하는 것이 중요합니다. 컴퓨터 구조에서 배울 내용은 크게 두 가지로 나뉩니다.

  1. 컴퓨터가 이해하는 정보

    • 데이터(Data): 숫자, 문자, 이미지, 동영상 등의 정적인 정보.
    • 명령어(Instruction): 컴퓨터가 수행해야 하는 동작을 지시하는 정보.
  2. 컴퓨터의 네 가지 핵심 부품

    • CPU (Central Processing Unit, 중앙처리장치)
    • 메모리 (Memory, 주기억장치)
    • 보조기억장치 (Storage, 보조 기억장치)
    • 입출력장치 (I/O Devices, Input/Output 장치)


2. 컴퓨터가 이해하는 정보

컴퓨터는 데이터명령어라는 두 가지 정보를 처리합니다.

1) 데이터 (Data)

  • 컴퓨터에서 다루는 정적인 정보.
  • 예: 숫자, 문자, 이미지, 동영상 등.
  • 컴퓨터는 0과 1(이진수)만 이해할 수 있기 때문에, 모든 데이터는 0과 1의 조합으로 표현됨.

2) 명령어 (Instruction)

  • 컴퓨터가 수행해야 하는 작업을 지정하는 정보.
  • 예:
    • 1 + 2를 계산하라 → 여기서 1과 2는 데이터, 더하라는 명령어.
    • "안녕하세요"를 화면에 출력하라 → "안녕하세요"는 데이터, 출력하라는 명령어.

즉, 데이터는 컴퓨터가 다루는 정보이고, 명령어는 컴퓨터가 데이터를 처리하는 방식을 지정합니다.


3. 컴퓨터의 네 가지 핵심 부품

컴퓨터의 종류에 상관없이, 모든 컴퓨터는 기본적으로 동일한 네 가지 핵심 부품을 갖추고 있습니다.

1) CPU (중앙처리장치)

  • 컴퓨터의 두뇌 역할을 담당.
  • 메모리에 저장된 명령어를 읽고, 해석하고, 실행하는 장치.
  • CPU 내부의 주요 구성 요소:
    • ALU (산술 논리 연산 장치, Arithmetic Logic Unit): 계산 및 논리 연산 수행.
    • 제어장치 (Control Unit): 명령어를 해석하고 실행 순서를 제어.
    • 레지스터 (Register): CPU 내부의 작은 저장공간 (임시 데이터 저장).

2) 메모리 (주기억장치)

  • 현재 실행 중인 프로그램의 명령어와 데이터를 저장하는 장치.
  • RAM (램, 휘발성 메모리) → 전원이 꺼지면 데이터가 사라짐.
  • 메모리는 주소(Address) 개념을 사용하여 데이터의 위치를 저장.

3) 보조기억장치 (Storage)

  • 실행되지 않는 프로그램이나 데이터를 저장하는 장치.
  • 전원이 꺼져도 데이터가 보존됨.
  • 예: HDD(하드디스크), SSD(솔리드 스테이트 드라이브), USB, SD 카드 등.

4) 입출력장치 (I/O Devices)

  • 컴퓨터와 외부 환경 간의 데이터 입출력을 담당하는 장치.
  • 입력장치: 키보드, 마우스, 마이크 등.
  • 출력장치: 모니터, 스피커, 프린터 등.
  • 입출력장치와 보조기억장치는 개념적으로 구분되지만, 실제로는 유사한 역할을 수행.


4. 컴퓨터 부품 간의 연결: 메인보드와 시스템 버스

1) 메인보드 (Motherboard)

  • 컴퓨터의 중앙 회로 기판으로, 네 가지 핵심 부품을 연결하는 역할을 함.
  • 각 부품을 연결하는 슬롯(Slot)과 포트(Port)를 제공.

2) 시스템 버스 (System Bus)

  • CPU, 메모리, 입출력장치, 보조기억장치가 데이터를 주고받는 통로.
  • 시스템 버스는 크게 세 가지로 구성됨:
    1. 주소 버스 (Address Bus): 메모리에서 데이터를 가져올 주소를 지정.
    2. 데이터 버스 (Data Bus): 명령어 및 데이터를 주고받음.
    3. 제어 버스 (Control Bus): CPU가 다른 부품에 명령을 내릴 때 사용.

🔹 시스템 버스의 구성 요소

1️⃣ 주소 버스 (Address Bus)

📌 역할: CPU가 특정 메모리 주소(위치)를 지정할 때 사용
📌 CPU → 메모리 또는 입출력 장치로 데이터를 읽거나 쓸 주소를 전달
📌 단방향(🚀 CPU → 메모리/입출력 장치)

예제:

  • CPU가 "메모리 0x0001 주소의 데이터를 가져와!"라고 요청할 때 주소 버스를 사용하여 0x0001을 전송
  • CPU가 "메모리 0x0002 주소에 데이터를 저장해!"라고 요청할 때도 주소 버스를 통해 해당 위치를 지정

📌 비트 수가 중요한 이유:

  • 주소 버스의 크기가 클수록 CPU가 접근할 수 있는 메모리의 크기가 커짐!
  • 예:
    • 16비트 주소 버스 → 최대 2¹⁶(65,536)개 주소 가능 (64KB 메모리)
    • 32비트 주소 버스 → 최대 2³²(4GB) 메모리 지원
    • 64비트 주소 버스 → 최대 2⁶⁴(16EB, 엑사바이트) 메모리 지원

2️⃣ 데이터 버스 (Data Bus)

📌 역할: CPU와 메모리/입출력 장치 간의 데이터 전송
📌 양방향(🚀 CPU ↔ 메모리/입출력 장치)
📌 명령어, 데이터 등을 실어 나르는 통로

예제:

  • CPU가 "메모리 0x0001 주소에서 데이터를 읽어와!" 요청하면, 해당 데이터가 데이터 버스를 통해 CPU로 전송됨
  • CPU가 연산 결과를 메모리에 저장할 때도 데이터 버스를 통해 전송

📌 비트 수가 중요한 이유:

  • 데이터 버스의 크기가 크면 한 번에 전송할 수 있는 데이터량이 많아짐
  • 예:
    • 8비트 데이터 버스 → 한 번에 1바이트(8비트) 데이터 전송 가능
    • 16비트 데이터 버스 → 2바이트(16비트) 전송 가능
    • 64비트 데이터 버스 → 8바이트(64비트) 전송 가능 (현대 CPU 대부분 64비트)

3️⃣ 제어 버스 (Control Bus)

📌 역할: CPU가 다른 부품들에게 "무엇을 해야 하는지" 명령을 내리는 역할
📌 CPU → 메모리/입출력 장치로 신호 전송
📌 데이터 읽기(Read), 쓰기(Write), 인터럽트 처리, 메모리 접근 허가 등 제어 신호 담당

예제:

  • CPU가 "메모리 0x0001 주소의 데이터를 가져와!"라고 하면,
    • 제어 버스를 통해 "읽기(Read) 신호"를 보냄
    • 데이터 버스를 통해 해당 데이터를 CPU로 전송
  • CPU가 메모리에 값을 저장할 때
    • 제어 버스를 통해 "쓰기(Write) 신호"를 보냄
    • 데이터 버스를 통해 값을 메모리에 저장

📌 제어 버스에 포함되는 주요 신호:
1. 메모리 읽기(Read) 신호 → 메모리에서 데이터를 가져옴
2. 메모리 쓰기(Write) 신호 → 데이터를 메모리에 저장
3. 인터럽트 요청(Interrupt Request, IRQ) → 입출력 장치가 CPU의 주의를 끌 때 사용
4. 버스 요청(Bus Request) → 여러 장치가 버스를 사용할 때 우선순위 조정


🔹 시스템 버스를 통한 데이터 흐름 예제

CPU가 메모리에서 데이터를 가져오는 과정

1️⃣ CPU → 주소 버스 → 0x0001번지 데이터를 요청

  • CPU가 주소 버스를 통해 0x0001 주소를 메모리에 전달

2️⃣ CPU → 제어 버스 → "읽기(Read)" 신호 전송

  • CPU가 제어 버스를 통해 메모리에 "데이터 읽기" 요청

3️⃣ 메모리 → 데이터 버스 → CPU로 데이터 전달

  • 메모리가 0x0001 주소의 데이터를 데이터 버스를 통해 CPU로 전송

💡 즉, 주소를 지정하고(주소 버스) → 읽기 요청을 보내고(제어 버스) → 데이터를 받아온다(데이터 버스)!


🔹 현대 시스템에서는?

1️⃣ 예전에는 CPU, 메모리, 입출력 장치가 모두 공통 시스템 버스를 사용했지만, 병목현상(Bottleneck) 문제가 발생

2️⃣ 현대 컴퓨터에서는 CPU와 메모리 사이에 "전용 고속 버스" 사용

  • 예: Intel의 프론트 사이드 버스(FSB), AMD의 하이퍼트랜스포트(HT)

3️⃣ GPU, SSD 등 고속 장치는 PCIe(PCI Express) 버스를 사용


버스 종류역할데이터 흐름 방향예제
주소 버스 (Address Bus)CPU가 읽거나 쓸 메모리 주소 지정단방향 (CPU → 메모리)0x0001 주소의 데이터 요청
데이터 버스 (Data Bus)명령어 및 데이터 전송양방향 (CPU ↔ 메모리)메모리에서 CPU로 데이터 전달
제어 버스 (Control Bus)CPU가 장치를 제어하는 신호 전송단방향 (CPU → 메모리/장치)"읽기(Read)" 또는 "쓰기(Write)" 명령


5. 컴퓨터 구조의 큰 그림 정리

1) 컴퓨터가 이해하는 정보

✔ 데이터 (Data) → 숫자, 문자, 이미지 등
✔ 명령어 (Instruction) → 데이터를 처리하는 방법

2) 네 가지 핵심 부품

CPU → 명령어 실행
메모리 → 실행 중인 프로그램의 명령어와 데이터 저장
보조기억장치 → 실행되지 않는 프로그램과 데이터 저장
입출력장치 → 외부와 데이터 교환

3) 부품 간 연결

메인보드 → 모든 부품을 연결하는 회로 기판
시스템 버스 → CPU, 메모리, 입출력 장치 간 데이터 통신


결론

컴퓨터 구조를 학습하면 컴퓨터가 어떻게 동작하는지에 대한 전체적인 그림을 이해할 수 있습니다.

1️⃣ 컴퓨터가 이해하는 정보 (데이터 & 명령어)를 학습하면, 프로그래밍의 기본 원리를 이해할 수 있습니다.
2️⃣ CPU, 메모리, 보조기억장치, 입출력장치라는 핵심 부품을 이해하면, 컴퓨터 시스템이 어떻게 동작하는지 알 수 있습니다.
3️⃣ 메인보드와 시스템 버스를 학습하면, 각 부품들이 어떻게 연결되어 데이터를 주고받는지 알 수 있습니다.

👉 이러한 개념을 바탕으로, 앞으로의 컴퓨터 구조 및 운영체제 학습이 더욱 수월해질 것입니다!

0개의 댓글