본문 바로가기

프로그램이 하드웨어를 움직이는 과정

프로그램·CPU·메모리·입출력의 역할을 구분하고 저장 프로그램이 실행되는 흐름을 따라갑니다.

사진 편집기에서 밝기를 올리면 화면의 픽셀이 바뀝니다. 화면은 결과를 보여 주고, CPU는 계산을 수행하며, 메모리는 계산할 값과 프로그램을 보관합니다. 컴퓨터구조는 이 역할들을 연결해 어떤 데이터가 언제 이동하는가를 설명하는 과목입니다.

코딩 경험은 필요하지 않습니다. 여기서 M[20]은 메모리 주소 20의 내용, R은 CPU 안의 임시 저장 자리인 레지스터를 뜻합니다. 대괄호를 먼저 읽고 계산을 시작하세요.

하드웨어와 소프트웨어

하드웨어는 CPU·메모리·장치처럼 물리적인 구성 요소이고, 소프트웨어는 그 위에서 실행하는 명령과 데이터를 포함한 프로그램입니다. 운영체제는 프로그램들이 CPU·메모리·파일·장치를 사용할 수 있도록 관리하는 시스템 소프트웨어입니다. 편집기는 사용자의 작업을 해결하는 응용 소프트웨어입니다.

CPU는 산술논리장치(ALU), 레지스터, 제어장치로 기능을 나눠 이해할 수 있습니다. ALU는 계산, 레지스터는 가까운 임시 저장, 제어장치는 이동과 계산의 순서를 맡습니다. 이 기능 구분이 실제 칩 내부의 모든 배치를 그대로 뜻하지는 않습니다.

구성 요소편집기에서 맡는 일혼동하지 않을 역할
CPU밝기 값을 더하고 비교모든 사진을 영구 보관하는 장치가 아님
주기억장치실행 중 명령·사진 데이터 보관전원을 꺼도 보존된다고 가정하면 안 됨
저장장치프로그램·사진 파일 보관CPU 레지스터처럼 곧바로 계산하지 않음
입출력 장치·컨트롤러입력·전송·화면 출력CPU와 통신하는 규약이 필요함

저장 프로그램의 의미

저장 프로그램(stored program)은 명령어도 메모리에 데이터로 보관해 CPU가 가져와 실행하는 방식입니다. 프로그램을 바꿀 때마다 물리적 배선을 다시 만드는 대신 명령어를 바꿉니다. 폰 노이만 모델은 명령과 데이터가 같은 기억공간을 사용하는 구조로 학습할 수 있습니다. 하버드 모델은 명령·데이터 기억공간과 경로를 구분합니다.

현대 컴퓨터를 무조건 하나의 공유 버스로 그리거나 모든 계층이 하나의 기억공간이라고 단정하지 마세요. 명령·데이터 캐시를 분리한 설계도 있습니다. 이 교재의 그림은 먼저 기능을 설명한 뒤, 상세 구조의 차이를 덧붙입니다.

명령 세 개가 값을 바꾸는 과정

처음 M[20] = 7이고 R = 0이라고 합시다. 아래 명령은 교육용 표기이며 특정 CPU의 실제 기계어는 아닙니다. 화살표 ←는 오른쪽 값을 왼쪽 저장 자리에 쓴다는 뜻입니다.

순서명령의 뜻실행 뒤 상태
1R ← M[20]R = 7, M[20] = 7
2R ← R + 3R = 10, M[20] = 7
3M[20] ← RR = 10, M[20] = 10

두 번째 단계의 계산만으로 메모리 내용이 바뀌지는 않습니다. 읽기·계산·쓰기가 서로 다른 동작입니다. CPU가 다음에 실행할 명령 위치는 프로그램 카운터 PC가 가리킵니다. PC는 사진의 밝기 값이 아니라 실행 흐름의 상태입니다.

컴퓨터의 종류를 기능으로 비교하기

범용 컴퓨터는 여러 프로그램을 실행하도록 설계하고, 특수 목적 장치는 정해진 작업에 맞춰 설계합니다. 디지털 컴퓨터는 이산적인 비트 표현으로 계산하며 아날로그 시스템은 연속적인 물리량을 이용합니다. 센서의 연속 신호를 디지털 값으로 바꾸는 장치는 두 영역을 연결합니다.

PC·서버·메인프레임·슈퍼컴퓨터는 용도와 운영 요구를 함께 봐야 합니다. 과거의 세대 구분이나 크기만으로 현재의 처리 성능을 정렬하지 않습니다. 진공관→트랜지스터→집적회로라는 역사적 흐름은 회로를 더 작고 안정적으로 집적하는 변화로 이해하면 충분합니다.

독립 문제: 계산과 보관

처음 M[12] = 4, M[13] = 9, R = 0입니다. R ← M[12], R ← R + M[13], M[14] ← R을 차례로 실행합니다. 마지막 R·M[12]·M[13]·M[14] 값을 구하세요. 그리고 편집한 사진을 저장하지 않고 종료했을 때 파일과 메모리의 차이를 설명하세요.

힌트

어떤 명령의 왼쪽에 주소가 등장했는지 확인하세요. 읽은 주소는 자동으로 지워지지 않습니다.

풀이

R은 4에서 13으로 바뀌고 마지막에도 13입니다. M[12]는 4, M[13]은 9, M[14]는 13입니다. 마지막 명령만 메모리에 씁니다. 실행 중 메모리를 수정하는 것과 파일을 저장장치에 기록하는 것은 별도 작업이므로, 저장하지 않은 변경은 파일에 반영됐다고 보장할 수 없습니다.

“CPU가 실행하면 모든 데이터가 동시에 바뀐다”는 생각을 버리고, 이동마다 출발지·도착지를 표시하세요. 다음 절의 비트·바이트·주소에서는 저장 자리의 크기와 이름을 구분합니다.