카테고리 없음

[전공 중간고사 정리] 컴퓨터구조 Ch.01 – 컴퓨터 시스템 개론 (CPU·기억장치·버스·폰노이만 구조)

gamjadori 2026. 7. 9. 19:02
728x90

하드웨어 vs 소프트웨어
하드웨어: 눈에 보이는 물리적 실체, 정보 입력·처리·저장을 실제 수행 (CPU, 메모리, 키보드 등), 한번 만들면 변경 어려움. 비유: 피아노(악기) 자체
소프트웨어: 눈에 보이지 않는 프로그램, 무엇을 처리할지 지시하는 명령 집합 (OS, 앱, 드라이버 등), 수정·업데이트 가능. 비유: 악보(지시사항)

컴퓨터 하드웨어 5대 구성요소
중앙처리장치(CPU): 프로그램 실행·데이터 처리(두뇌), 예) Intel i9, AMD Ryzen, ARM
주기억장치: 실행 중인 프로그램/데이터 임시 보관, 예) RAM, ROM, 캐시. 고속·고가·휘발성
보조기억장치: 대용량 데이터 영구 저장, 예) HDD, SSD, CD-ROM. 저속·저가·비휘발성
입력장치: 외부 데이터를 2진수로 변환해 입력, 예) 키보드, 마우스, 스캐너
출력장치: 처리 결과를 사람이 이해할 수 있게 출력, 예) 모니터, 프린터, 스피커

시험포인트: 주기억장치는 휘발성(전원 끄면 사라짐), 보조기억장치는 비휘발성. 주기억장치가 빠른 이유는 반도체 칩으로 구성되어 있기 때문

2. 중앙처리장치(CPU) 상세

CPU 내부 3요소(필수 암기)
ALU(산술논리연산장치): 덧셈·뺄셈·논리연산·보수연산·시프트 연산 수행
제어장치(CU): 명령어 해독, 제어신호 발생, 모든 장치 제어
레지스터: CPU 내부 임시 저장소, 가장 빠른 기억장치

속도 순서(빠름→느림): 레지스터 > 캐시 메모리 > 주기억장치(RAM) > 보조기억장치(SSD/HDD)

ALU가 수행하는 4가지 연산
산술 연산: +, -, ×, ÷
논리 연산: AND, OR, NOT, XOR
보수 연산: 1의 보수, 2의 보수(음수 표현 방식)
시프트 연산: 왼쪽 shift=×2, 오른쪽 shift=÷2

3. 기억장치와 시스템 버스

주기억장치(휘발성)
반도체 칩으로 구성 → 고속 접근 가능
실행 중에만 데이터 유지, 전원 끄면 소멸
비싸지만 빠름
종류: RAM, ROM, 캐시 메모리

보조기억장치(비휘발성)
전원 꺼도 데이터 유지
저장 밀도 높고 저렴, 속도 느림(CPU가 직접 접근 불가)
인터페이스 회로나 제어기를 통해 연결
종류: HDD, SSD, CD-ROM

시스템 버스 3종류(시험 자주 출제)
주소 버스(Address Bus): 기억장치·I/O 주소 전송, 단방향(CPU→메모리), 메모리 주소값 포함
데이터 버스(Data Bus): 실제 데이터 전송, 선 수=한번에 전송 가능한 비트 수, 양방향
제어 버스(Control Bus): 각 장치 동작 제어 신호 전송, 단방향, 메모리 읽기/쓰기·I/O 읽기/쓰기 신호

암기핵심: 데이터 버스만 양방향! 주소 버스와 제어 버스는 단방향

4. 소프트웨어의 종류

시스템 소프트웨어 구성요소 7가지
운영체제(OS): CPU·메모리·I/O 제어·관리, 예) Windows, Linux, macOS, Android
컴파일러: 고급언어 소스 전체를 한번에 기계어로 변환, 예) C, C++, Java
인터프리터: 소스를 한 줄씩 읽어 즉시 실행, 예) Python, JavaScript, Basic, SQL
장치 드라이버: 주변 장치를 제어하는 OS 모듈, 예) 프린터/그래픽 드라이버
링커(Linker): 여러 목적 프로그램을 결합해 하나의 실행 파일로 연결(=연결 편집기)
로더(Loader): 프로그램을 주기억장치에 적재. 할당·연결·재배치·적재 기능
유틸리티: 시스템 보조 도구, 예) 백신 프로그램, TCP/IP 프로그램

컴파일러 vs 인터프리터
컴파일러: 소스 전체를 한번에 번역, 실행파일(.exe) 생성 후 실행, 오류는 컴파일 시 발견, 실행 속도 빠름, 예) C, C++, Java, C#
인터프리터: 한 줄씩 읽어서 즉시 실행, 별도 실행파일 없음, 오류는 실행 중 발견, 실행 속도 느림, 예) Python, JavaScript, Basic, SQL

5. 프로그램 처리 과정

고급언어 → 어셈블리어 → 기계어 → CPU 실행(전자 신호)

변환 예제: Z=X+Y
고급언어: Z=X+Y (X와 Y를 더해서 Z에 저장)
어셈블리어:
LOAD A,X — 메모리 X번지 내용을 레지스터 A로
ADD A,Y — 레지스터 A값+메모리 Y번지값 → A에 저장
STOR Z,A — 레지스터 A 내용을 메모리 Z번지에 저장
기계어: 각 명령어가 opcode(연산코드)+operand(주소)의 비트 조합으로 변환

opcode/operand 계산 공식(문제 출제 포인트)
opcode n비트 → 최대 2^n가지 연산 (예: 3비트→2^3=8가지)
operand m비트 → 최대 2^m개 주소 (예: 5비트→2^5=32개 주소)

컴퓨터 시스템 계층 레벨 0~6
레벨6 사용자: 응용 프로그램(워드, 게임 등)
레벨5 고급언어: C, C++, Java, FORTRAN
레벨4 어셈블리어: 명령어 1개=기계어 1개
레벨3 시스템 소프트웨어: OS, 라이브러리
레벨2 기계어(ISA): CPU가 직접 실행하는 언어
레벨1 제어(마이크로프로그램): 명령어 해독·실행
레벨0 디지털 논리: 논리 게이트, 와이어(하드웨어 최하위)
※ 컴퓨터 구조 과목은 레벨 0~2를 주로 다룸

6. 컴퓨터의 역사와 세대별 발전

컴퓨터 역사 주요 사건
1642 파스칼 계산기: 톱니바퀴로 덧셈·뺄셈(최초의 기계식 계산기)
1671 라이프니츠 계산기: 곱셈·나눗셈 추가+2진법 창안
1823 차분기관(배비지): 삼각함수 계산, 종이 출력
1833 해석기관(배비지): 현대 컴퓨터 기본 요소 모두 포함(연산·기억·제어)
1889 천공카드시스템(홀러리스): 인구조사 자동화
1944 MARK-I(에이킨, 하버드): 전기기계식, 해석기관 실현
1946 ENIAC(에커트·모클리): 최초의 전자식 컴퓨터, 진공관 사용
1949 EDSAC(윌키스): 10진수+프로그램 내장 방식
1951 EDVAC(폰 노이만): 2진수+프로그램 내장 방식
1951 UNIVAC(모클리·에커트): 최초의 상용 컴퓨터

컴퓨터 세대별 분류(핵심 암기)
1세대: 진공관, ms(10⁻³), 기계어·어셈블리어, ENIAC/UNIVAC, 크기 큼
2세대: 트랜지스터, us(10⁻⁶), COBOL·FORTRAN·ALGOL, 소형화·OS 도입
3세대: SSI·MSI(IC), ns(10⁻⁹), LISP·PASCAL·BASIC, 캐시메모리 등장
4세대: LSI·VLSI, ps(10⁻¹²), 고급언어(ADA), 마이크로프로세서·PC 등장
5세대: VLSI·ULSI, fs(10⁻¹⁵), 객체지향(C++, Java), AI·신경망·병렬처리

집적회로(IC) 분류
SSI: 수십 개(기본 게이트, 플립플롭)
MSI: 수백 개(디코더, 멀티플렉서, 카운터)
LSI: 수천 개(8비트 마이크로프로세서)
VLSI: 수만~수십만 개(단일칩 마이크로프로세서)
ULSI: 수백만 개 이상(Intel 486, Pentium)

무어의 법칙 vs 황의 법칙
무어의 법칙: 트랜지스터 수 18개월마다 2배 증가 → 기술적·경제적 한계 도달
황의 법칙: 메모리 용량 1년마다 2배 증가 → 2010년(8년만에) 깨짐

7. 컴퓨터의 분류

데이터 형태에 따른 분류
아날로그 컴퓨터: 연속적 변량(전압·전류·온도), 산업 프로세스 제어
디지털 컴퓨터: 숫자·문자를 코드화(0과 1), 우리가 쓰는 일반 컴퓨터
하이브리드 컴퓨터: 아날로그+디지털, A/D·D/A 변환기 사용

사용 목적에 따른 분류
전용 컴퓨터: 특수 목적, 고정 프로그램/데이터 (예: 군사, 기상예보)
범용 컴퓨터: 다양한 업무 가능 (예: 과학계산, 사무관리)

성능·규모에 따른 분류
마이크로컴퓨터: 마이크로프로세서 CPU, 개인/가정용
워크스테이션: PC보다 고성능, 전문직용
미니컴퓨터: 현재는 서버로 대체
메인프레임: 초당 수십억 개 명령 처리(은행, 보험, 병원)
슈퍼컴퓨터: 수십만 개 프로세서 병렬처리(기상예측, 원자력)

8. 폰 노이만 vs 하버드 구조 (시험 1순위 파트)

폰 노이만 구조
프로그램 내장 방식: 명령어와 데이터를 같은 메모리에 저장
순차 처리: 한 번에 하나씩 순서대로 실행
장점: 구조 단순, 구현 비용 낮음
단점: 병목 현상 발생(메모리-CPU 사이 버스 하나라 느림)
명령어와 데이터가 같은 버스 공유 → CPU가 명령어 가져오는 동안 데이터 못 가져옴

폰 노이만 처리 4단계
① 명령어 인출(Fetch): PC로 메모리에서 명령어 가져옴
② 명령어 해독(Decode): 제어장치가 해독
③ 데이터 인출: 필요한 데이터를 메모리에서 인출해 레지스터에 저장
④ 실행 및 저장: ALU가 실행 후 결과를 레지스터/메모리에 저장

폰 노이만 병목 현상: 명령어와 데이터가 같은 메모리·버스를 공유해서 동시에 가져올 수 없어 속도 저하. 데이터 경로의 병목 현상이라고도 함
(참고: 개념은 사실 모클리와 에커트가 먼저 생각, 폰 노이만이 정리)

하버드 구조
명령어 메모리와 데이터 메모리를 물리적으로 분리, 각각 다른 버스로 연결
명령어와 데이터를 동시에 읽을 수 있음 → 빠름(병목 해결)
단점: 비싸고 공간 많이 차지, 설계 복잡
용도: 임베디드, 마이크로컨트롤러, DSP

비 폰 노이만 구조
폰 노이만이 아닌 모든 구조를 총칭
데이터 처리 고속화를 위해 프로그램 일부를 하드웨어화
병렬 처리, 추론 기구 채택
포함 분야: 신경망, 유전 알고리즘, 양자 컴퓨터, 병렬 컴퓨터

참고: 최신 CPU는 하이브리드 — 내부 캐시는 하버드 구조(명령 캐시·데이터 캐시 분리), 외부는 폰 노이만 구조를 유지하는 변형 하버드 구조 사용