컴퓨터구조
비트와 논리 회로에서 출발해 CPU가 명령어를 실행하는 과정, 메모리 계층과 캐시, 입출력과 인터럽트, 파이프라인과 제어 장치, 여러 처리 장치와 성능 계산까지, 값이 언제 어디에서 어디로 움직이는지를 작은 예와 실행한 Python 코드로 따라갑니다.
프로그램을 실행하면 값은 레지스터와 메모리, 장치 사이를 쉬지 않고 오갑니다. 컴퓨터구조는 그 값이 어떤 비트로 나타나고, 어떤 회로를 지나 계산되며, 언제 어디에 저장되는지를 설명하는 과목입니다. 이 교재는 부품의 이름을 외우기보다, 작은 예를 정해 두고 주기마다 무엇이 바뀌는지 손으로 따라간 뒤, 그 과정을 짧은 코드로 다시 확인하는 방식으로 진행합니다.
프로그래밍 경험이 없어도 1장의 첫 글부터 차례로 읽으면 됩니다. 글마다 있는 Python 코드는 손으로 한 계산을 확인하는 모의 실행기이며, 실제 하드웨어의 레지스터를 다루거나 성능을 재는 것은 아닙니다. 예제는 Python 3.14와 3.15에서 실행해 확인했고 표준 라이브러리만 쓰며, 각 코드 블록을 lesson.py 같은 파일에 저장해 python lesson.py로 실행하면 본문의 출력이 그대로 나옵니다. Python을 처음 설치한다면 자료구조·알고리즘 교재의 Python 설치부터 첫 실행과 오류 읽기를 먼저 보세요.
교재에서 쓰는 CPU, 캐시, 메모리는 설명을 위해 단순하게 만든 모델이며, 주소의 단위, 폭, 타이밍, 교체 규칙은 각 글에서 따로 정합니다. 실제 RISC-V 규격이나 부품의 데이터시트를 함께 소개하는 것은 모델과 실제가 어디서 달라지는지 확인하기 위한 것입니다. 각 글의 연습 문제는 해설을 열기 전에 중간 상태까지 먼저 적어 보고, 마지막 값만 맞았다면 값이 어디에 저장되었고 어떤 순서로 움직였는지를 다시 설명해 보세요.
학습 경로
1단계 · 정보의 표현(1–2장)에서는 프로그램이 하드웨어를 움직이는 큰 흐름을 본 뒤, 비트, 바이트, 주소와 엔디언을 정하고, 정수, 음수, 부동소수점, 문자를 비트로 나타내는 방법을 다룹니다.
2단계 · 논리 회로(3–4장)에서는 게이트와 부울 대수로 가산기, MUX, 디코더 같은 조합 회로를 만들고, 래치와 플립플롭으로 값을 기억하는 레지스터, 카운터, 상태 기계를 설계합니다.
3단계 · CPU와 메모리(5–7장)에서는 데이터 경로에서 명령어가 실행되는 과정과 명령어 집합, 주소 지정과 스택을 다룹니다. 이어서 메모리 계층, 캐시의 매핑과 교체, 쓰기 정책, 메모리 칩의 구성, RAID를 살펴보고, 입출력과 DMA, 버스를 다룹니다.
4단계 · 실행의 흐름과 제어(8–9장)에서는 인터럽트와 예외, 파이프라인과 위험, load-use 정지를 주기마다 추적하고, 마이크로연산과 제어 신호, 하드와이어드 제어와 마이크로프로그램 제어를 비교합니다.
5단계 · 여러 처리 장치와 성능(10장)에서는 Flynn 분류, 공유 메모리와 캐시 일관성, 메모리 순서를 다루고, 성능을 계산하는 식과 종합 문제로 교재를 정리합니다.
다른 교재로 이어가기
진법과 부울 대수의 수학적인 배경은 이산수학에서 더 자세히 다룹니다. 이 교재의 하드웨어 위에서 운영체제가 프로세스, 메모리, 장치를 어떻게 관리하는지는 운영체제에서, 캐시와 지역성을 고려한 알고리즘은 자료구조·알고리즘에서 이어집니다. 자격시험의 답안 형식이 필요하면 정보관리기술사 교재를 참고할 수 있습니다.
장별 목차
1장 컴퓨터가 프로그램을 실행하는 기반
2장 정보를 비트로 표현하기
3장 입력에서 출력을 만드는 회로
4장 상태를 기억하는 회로
5장 CPU에서 명령어 실행하기
6장 메모리와 저장장치
7장 외부 장치와 데이터 교환하기
8장 실행 중 끼어드는 사건과 겹치는 작업
9장 데이터 경로를 움직이는 제어
10장 여러 처리장치와 성능 판단
다 읽은 뒤에는 용어를 얼마나 외웠는지보다, 명령어 하나가 실행되는 동안 값이 어디에서 어디로 움직이는지 주기마다 설명할 수 있는지, 캐시와 파이프라인의 동작을 작은 예로 직접 추적할 수 있는지, 성능을 비교할 때 어떤 가정을 두었는지 말할 수 있는지를 점검해 보세요.