전산직 컴퓨터일반 - Part 01 전자계산기구조론 요약

⭐⭐⭐ 반드시 / ⭐⭐ 중요 / ⭐ 참고 ⚠️ = 기출 함정 포인트



Chapter 01. 컴퓨터 시스템


하드웨어 / 소프트웨어

  • 하드웨어 = 물리적 부품 (CPU, 기억장치, 입출력장치)
  • 소프트웨어 = 외형 없는 명령과 데이터의 집합

CPU 내부

  • 제어장치: 주기억장치에서 명령어 인출·해독 → 제어신호 발생 (지휘자)
    • 구성: MAR, MBR, 명령레지스터(IR), 프로그램카운터(PC), 명령해독기
  • 연산장치(ALU): 제어신호에 따라 실제 연산 수행 (일꾼)
    • 구성: 산술·논리연산기, 상태레지스터, 쉬프터, 보수기
  • 레지스터: CPU 내 임시기억장치 (고속)
  • CPU 내부버스: 데이터/주소/제어 신호 전송

⭐⭐⭐ 기억장치 계층구조

1
2
3
레지스터 → 캐시 → 주기억장치 → 보조기억장치
(위로 갈수록) 고속·고가·소용량
(아래로 갈수록) 저속·저가·대용량
  • ⚠️ 보조기억장치(HDD/SSD)는 CPU와 직접 정보교환 불가 → 반드시 주기억장치 경유
  • 주기억: RAM(휘발성) / ROM(비휘발성)

소프트웨어

  • 시스템 S/W = 제어 프로그램(감시·작업제어·데이터관리) + 처리 프로그램(언어번역·서비스)
  • 응용 S/W = 사용자 목적용

⭐⭐ 컴파일러 vs 인터프리터

  컴파일러 인터프리터
번역 단위 파일 문장
목적 프로그램 생성 O 생성 X
메모리 할당 받음 안 받음
번역 속도 느림 빠름
실행 속도 빠름 느림
  • 펌웨어: S/W를 H/W화. ROM에 저장, 미들웨어라고도 함. 대표 예 = BIOS
  • 부팅: 전원 → ROM의 부트로더 실행 → HDD의 OS 커널을 RAM에 적재 → 제어권 OS로

⭐⭐ 컴퓨터 구조의 발전

  • ENIAC: 프로그램 외장식 → 작업 바꿀 때마다 배선 재배치
  • EDSAC / EDVAC: 프로그램 내장식 → 프로그램과 데이터를 동일 형태로 메모리에 저장 = 폰노이만 구조
  • ⚠️ 폰노이만 구조 최초 컴퓨터는 ENIAC이 아님 (ENIAC은 외장식)
  • UNIVAC-1: 세계 최초 상업용 (국세조사)
  • 하버드 아키텍처: 명령어/데이터 메모리를 분리 → 병렬 인출

⭐⭐⭐ 정보처리 시스템의 분류

방식 구성 현실 예시
일괄처리 CPU1-메모리1-프로그램1-사용자1 모아서 한번에
다중프로그래밍 CPU1-메모리1-프로그램n-사용자1 일반 PC
시분할 CPU1-메모리1-프로그램n-사용자n 다중프로그래밍의 논리적 확장
다중처리(강결합) CPUn-메모리1-프로그램n-사용자n 멀티코어 프로세서
분산처리(약결합) CPUn-메모리n-프로그램n-사용자n 클라우드
  • ⚠️ 다중처리 = 메모리 공유(강결합) / 분산처리 = 메모리 각자(약결합)
  • 실시간 시스템: 자료 발생 즉시 처리

⭐ 세대별 발전 / 성능 단위

세대 소자 키워드
1 진공관 전력소모↑
2 트랜지스터 신뢰성↑
3 집적회로 MIS, 시분할
4 고밀도 IC PC 대중화
5 초고밀도 IC 인공지능
  • 주파수 = 1/주기
  • CPU 실행시간 = 명령어 개수 × 평균 CPI × 클록주기



Chapter 02. 데이터의 표현과 컴퓨터 연산


⭐⭐ 정보 표현 단위

1
비트(1) → 니블(4) → 바이트(8) → 워드
  • 비트: 최소 단위. n비트 = 2ⁿ개 표현
  • 니블: 4비트 = 16진수 1자리. 독립 처리 안 됨
  • 바이트: 8비트. 문자 표현의 최소 단위
  • 워드: ⚠️ CPU가 한 번에 처리하는 데이터 크기
    • Half Word=2B / Full Word=4B / Double Word=8B

⭐⭐ 진법 변환

  • 정수부: x로 나눠 나머지 → 아래에서 위로 읽기
  • 소수부: x를 곱해 올라간 정수 → 위에서 아래로 읽기
  • 2진수 ↔ 8진수: 3자리씩 묶기 (2³)
  • 2진수 ↔ 16진수: 4자리씩 묶기 (2⁴)

⭐⭐ 보수

  • 컴퓨터는 뺄셈 회로가 없음 → 보수로 덧셈 처리
  • 1의 보수: 모든 비트 반전
  • 2의 보수: 1의 보수 + 1
  • 밑수 R → R의 보수, R-1의 보수 (10진수는 10/9의 보수)

⭐⭐ 코드

코드 비트 표현 수 특징
표준 BCD 6 (zone2+digit4) 64 대소문자 구별 X
아스키 7 (zone3+digit4) 128 PC·통신용
확장BCD(EBCDIC) 8 (zone4+digit4) 256 범용 컴퓨터
유니코드 16 65536 언어 무관
  • 3초과(Excess-3): 8421코드 + 3(0011). 자기보수 코드, 비가중치
  • Gray 코드: 인접 값이 1비트만 차이. A/D 변환기, 에러율↓
  • 패리티 비트: 1개 에러만 검출
  • 해밍코드: 에러 검출 + 수정

⭐⭐ 수치형 데이터 표현

언팩 vs 팩

  • 언팩: 숫자 1자리 = 1바이트 → 입출력용
  • : 숫자 1자리 = 4비트(1바이트에 2자리 압축) → 연산용
  • 부호: C(1100) = 양수, D(1101) = 음수

⭐⭐⭐ 고정소수점 - 음수 표현 3가지

  부호와 절대치 1의 보수 2의 보수
방법 최상위 비트만 변환 전체 반전 1의보수+1
0 표현 +0, -0 +0, -0 +0만
표현범위 -(2ⁿ⁻¹-1)~+(2ⁿ⁻¹-1) 동일 -(2ⁿ⁻¹)~+(2ⁿ⁻¹-1)
속도 느림 가장 느림 가장 빠름
  • 양수는 3가지 모두 동일하게 표현
  • 캐리 발생 시 버림 / 미발생 시 결과는 음수

⭐⭐⭐ 부동소수점 (IEEE 754)

형식 부호 지수 가수
단정도(32bit) 1 8 (Bias 127) 23
배정도(64bit) 1 11 (Bias 1023) 52
  • 정규화: ±1.bbb × 2^E 형태로
  • 잠복비트: 소수점 앞의 1은 항상 1이라 저장 안 함
  • 바이어스: 음수 지수를 양수로 만들려고 더하는 값
  • ⚠️ 연산 순서: ① 0인지 검사 → ② 지수를 큰 쪽에 맞춤 → ③ 가수 연산 → ④ 정규화

⭐ 논리연산

  • AND(둘 다 1) / OR(하나라도 1) / XOR(다르면 1)
  • 선택적-세트 = OR / 선택적-보수 = XOR / 마스크(삭제) = AND
  • Shift: 밀려난 비트 제거, 빈자리 0
  • Rotate: 밀려난 비트가 반대편으로 순환
  • 산술적 shift: 부호비트 유지. 좌측 = ×2ⁿ, 우측 = ÷2ⁿ



Chapter 04. 중앙처리장치(CPU)


⭐⭐⭐ RISC vs CISC

구분 CISC RISC
명령어 개수 많다 적다
명령어 길이 가변 고정(1워드)
주소지정 방식 많다 적다
레지스터 수 적다 많다 ⚠️
처리속도 저속 고속
전력소모 많다 적다
제어방식 마이크로프로그래밍 Hard-Wired
파이프라이닝 어려움 효율적
  • ⚠️ “RISC는 레지스터를 적게 쓴다” → 틀림! 많이 씁니다
  • RISC는 연산을 레지스터끼리만, 메모리 접근은 Load/Store만

⭐⭐⭐ CPU 내부 레지스터 5종

레지스터 역할
PC 다음에 인출할 명령어의 주소
IR 가장 최근에 인출된 명령어
AC 연산 결과 일시 저장
MAR 주기억장치 주소 임시 저장
MBR 주기억장치에 쓸/읽은 데이터 임시 저장
  • ⚠️ “MAR = 가장 최근 인출한 명령어 보관” → 틀림! 그건 IR
  • MAR = Address(주소), MBR = Buffer(데이터)

⭐⭐ 주소지정 방식 — 메모리 접근 횟수

방식 접근 횟수
즉시(Immediate) 0회 (가장 빠름)
레지스터 0회
직접(Direct) 1회
간접(Indirect) 2회 (가장 많음) ⚠️
  • 상대 주소지정 = PC + 변위
  • 인덱스 주소지정 = 인덱스 레지스터(IX) + 변위

⭐⭐ 인터럽트

  • 외부 인터럽트 = 정전, 기계결함, 입출력 → 하드웨어 원인
  • 내부 인터럽트 = 0으로 나누기, 오버플로, 보호영역 침범 → 프로그램 오류
  • SVC(슈퍼바이저 호출) = 사용자가 의도적으로 OS 서비스 요청

우선순위 판별 3가지

방식 장점 단점
소프트웨어 폴링 우선순위 변경 쉬움, 저렴 시간 많이 소요
데이지 체인 하드웨어 간단 낮은 우선순위 처리 어려움
벡터 인터럽트 빠른 식별 하드웨어 복잡, 장치 수 제한
  • 동작 순서: 요청 → 현재 상태 저장 → 원인 분석·ISR 수행 → 상태 복구 → 재개

⭐ 시스템 버스

  • 데이터 버스: 양방향. 폭 = 한 번에 전송되는 비트 수
  • 주소 버스: 단방향. 비트 수 = 접근 가능한 주소 개수 결정
  • 제어 버스: 제어신호 전송



Chapter 05. 기억장치


⭐⭐⭐ DRAM vs SRAM

  DRAM SRAM
소자 캐패시터 플립플롭
재충전(refresh) 필요 불필요
속도 느림 빠름
가격 저렴 비쌈
집적도(밀도) 높음 낮음
전력소모 적음 많음
용도 주기억장치 캐시 메모리
  • ⚠️ “DRAM은 주기적 충전 없어도 영구 저장” → 틀림! (2010 국가직)
  • 암기: Static=가만히 둬도 유지 / Dynamic=계속 새로고침

⭐⭐ ROM 종류

  • Mask ROM: 제작 시 고정, 변경 불가
  • PROM: 1회에 한해 기록 가능
  • EPROM: 여러 번 지우고 재기록 (UVEPROM=자외선 / EEPROM=전기)
  • EEPROM: 비휘발성 + 읽기·쓰기 가능, 갱신 횟수 제한
  • 플래시 메모리: ROM의 비휘발성 + RAM의 자유로운 입출력
    • NAND: 데이터 저장용, 셀 직렬, 대용량, USB
    • NOR: 코드 저장용, 셀 병렬, 읽기 빠름

⭐⭐⭐ 캐시 메모리

  • 목적: CPU와 주기억장치의 속도 차이 보완
  • 적중률(Hit Ratio) = 적중 수 ÷ 전체 참조 횟수

⭐⭐⭐ 평균 접근시간 공식

1
T = (적중률 × 캐시시간) + (1-적중률) × 주기억시간

예) 캐시 20ns, 주기억 150ns, 적중률 80% = 0.8×20 + 0.2×150 = 16 + 30 = 46ns (2020 지방직)

지역성(Locality) — 캐시가 효과를 내는 이유

  • 시간 지역성: 한 번 쓴 걸 또 씀 (반복문, 서브루틴)
  • 공간 지역성: 근처 주소를 이어서 씀 (배열, 순차 실행)

⭐⭐ 사상(Mapping) 기법

기법 특징
직접 사상 캐시블록 = 메모리블록 mod 캐시블록수. 간단·저렴, 충돌 잦음
완전연관 사상 어느 라인에도 적재 가능. 적중률 최고, 회로 복잡·비쌈
집합연관 사상 둘의 절충. 실제 가장 많이 사용
  • 속도 순: 연관 > 집합연관 > 직접

⭐⭐ 쓰기 정책

  • 즉시 쓰기(Write-Through): 캐시 + 주기억 동시 기록 → 일관성 O, 느림
  • 나중 쓰기(Write-Back): 캐시에만 기록, 교체 시 반영 → 빠름, 일관성 X
  • ⚠️ “write-back은 적중 시 메인메모리도 갱신” → 틀림!

교체 알고리즘: LRU(적중률 높음, 비쌈) / Random / FIFO

⭐⭐ RAID

레벨 방식 핵심
RAID 0 스트라이핑 패리티·미러링 없음 → 장애 시 전부 손실
RAID 1 미러링 복사. 신뢰성↑, 저장비용↑, 쓰기 느림
RAID 2 비트 + 해밍코드 거의 사용 X
RAID 3 비트 단위 + 패리티 1개  
RAID 4 블록 단위 + 패리티 1개 패리티 디스크 병목
RAID 5 블록 + 분산 패리티 병목 해결, 현재 최다 사용
RAID 6 블록 + 이중 분산 패리티 두 가지 패리티
  • ⚠️ “RAID 5는 이중 분산 패리티” → 틀림! 이중은 RAID 6
  • 암기: 2=해밍, 3=비트, 4=블록+고정, 5=블록+분산, 6=이중

⭐ 기타

  • 주기억장치 용량 = 주소 개수 × 주소 1개 크기
    • 주소 개수 ← MAR 크기 / 워드 길이 ← MBR 크기
  • 엔디언: 빅=큰 단위가 앞(적은 주소) / 리틀=작은 단위가 앞
    • (1234)₁₆ → 빅: 12 34, 리틀: 34 12
  • 메모리 인터리빙: 모듈 여러 개 독립 접근 → 연속 바이트 한 번에
  • 디스크 접근시간 = Seek Time + Search Time + Transmission Time
  • 연관 기억장치(CAM): 주소가 아닌 내용으로 검색



Chapter 06. 입출력장치


⭐⭐⭐ 입출력 제어 기법 (CPU 부담 순)

방식 CPU 개입 설명
프로그램 I/O(폴링) 가장 많음 CPU가 끝날 때까지 계속 대기
인터럽트 구동 I/O 중간 CPU는 다른 일. 단 메모리 접근은 CPU 담당
DMA 가장 적음 DMA 제어기가 전송 처리
  • ⚠️ CPU 부담 작은 순서: DMA < 인터럽트 구동 < 프로그램 I/O (2012 국회)

DMA

  • 대용량 데이터 이동에 효과적
  • CPU는 시작과 마지막에만 관여
  • 사이클 스틸링: DMA가 버스 사용권을 CPU로부터 일시적으로 빼앗음

채널: DMA보다 발전. 자기 자신의 프로그램을 가져 CPU와 독립 동작

  • 셀렉터 = 고속 1개 / 바이트 멀티플렉서 = 저속 여러 개 / 블록 멀티플렉서 = 고속 여러 개

주소 지정 방식

  • 메모리 맵 I/O: 기억장치 주소공간과 함께 사용
  • 분리형 I/O: 주소공간 분리, 별도 명령어 필요, 프로그래밍 복잡



Chapter 07. 병렬처리


⭐⭐⭐ 플린의 분류

분류 명령어 데이터 특징
SISD 단일 단일 단일 프로세서. 파이프라인·슈퍼스칼라
SIMD 단일 다중 벡터/배열 프로세서
MISD 다중 단일 이론상만 존재
MIMD 다중 다중 공유 기억장치 / 분산 기억장치
  • ⚠️ SISD를 “여러 프로세서로 구성”이라 하면 틀림

⭐⭐⭐ 파이프라인

공식: S = (K + N − 1) × T (K=단계 수, N=명령어 수, T=클록 주기)

예) 4단계, 10개 명령어 → (4+10-1)×T = 13T

⭐⭐⭐ 해저드 3종

해저드 원인 별칭 해결
구조적 동일 하드웨어 자원 동시 요구 자원 해저드 자원 추가, NOP
명령어 분기(branch) 명령어 분기/제어 해저드 분기 예측, 재배치
데이터 앞 결과를 뒤가 사용(종속) 데이터 전방전달(forwarding)

이상적 효과가 안 나는 이유

  • 클록 주기는 가장 긴 단계 기준
  • 오퍼랜드 불필요 명령어도 모든 단계 통과
  • IF·OF 단계 기억장치 충돌
  • 조건 분기 시 미리 인출한 명령어 무효화

⭐⭐ 슈퍼스칼라 / 슈퍼파이프라인

  • 슈퍼스칼라: 파이프라인을 여러 개 (폭을 늘림) → (k + ⌈N/m⌉ − 1) × T
  • 슈퍼파이프라인: 클록 주기를 절반 이하로 (주기를 쪼갬) → (k + ⌈(N−1)/m⌉) × T

⭐⭐ 암달의 법칙

1
2
최대 성능 향상 = 1 / [(1−p) + p/s]
p = 개선 부분 비율, s = 향상 배수

예) 부동소수점 50%, 하드웨어 2배 개선 → 1/[(1−0.5)+0.5/2] = 1/0.75 ≈ 1.33배 → s를 ∞로 해도 최대 2배를 못 넘음 (1/(1−0.5))

  • 의미: 개선 안 된 부분이 전체 성능을 제한한다
  • 구스타프슨 법칙: 암달의 반대 개념



🎯 시험 직전 최종 체크 10

  1. 다중처리=멀티코어(메모리 공유) / 분산처리=클라우드(메모리 각자)
  2. RISC는 레지스터가 많다 (적다 아님)
  3. MAR=주소, MBR=데이터, IR=최근 명령어
  4. 간접 주소지정 = 메모리 접근 2회 (가장 많음)
  5. DRAM은 재충전 필요, SRAM은 불필요
  6. write-back은 캐시에만 기록 (메인메모리 동시 갱신 X)
  7. RAID 5=분산 패리티(1개 복구), RAID 6=이중(2개 복구)
  8. CPU 부담: DMA < 인터럽트 < 프로그램 I/O
  9. IEEE754 단정도 = 부호1+지수8(Bias 127)+가수23
  10. 파이프라인 = (K+N−1)×T