컴퓨터구조 CPU·캐시·메모리 정리
명령어 실행, 캐시 지역성, 가상메모리 주소 변환을 중심으로 정리합니다.
CPU와 명령어
명령어 사이클은 인출·간접·실행·인터럽트 등의 단계로 설명할 수 있습니다. 프로그램 카운터는 다음 명령어 주소, 명령어 레지스터는 현재 명령어를 보관합니다.
- 파이프라이닝은 명령어 단계를 겹쳐 처리량을 높인다.
- 분기와 데이터 의존성은 파이프라인 해저드를 만든다.
- 인터럽트는 현재 상태를 보존하고 서비스 루틴으로 이동한다.
캐시와 지역성
시간 지역성은 최근 사용한 데이터의 재사용 가능성, 공간 지역성은 인접 데이터 사용 가능성을 뜻합니다. 캐시 적중률과 평균 접근시간 계산에서는 적중·실패 경로의 비용을 구분합니다.
- 직접 사상은 위치가 단순하지만 충돌이 많을 수 있다.
- 완전 연관 사상은 배치 자유도가 높지만 비교 비용이 크다.
- 쓰기 정책은 write-through와 write-back을 구분한다.
가상메모리
페이지는 가상 주소 공간, 프레임은 물리 메모리의 고정 크기 블록입니다. 페이지 테이블이 변환을 담당하고 TLB는 최근 변환 결과를 캐시합니다.
- 페이지 부재가 나면 보조기억장치에서 페이지를 적재한다.
- 스래싱은 과도한 페이지 교체로 실제 작업이 줄어드는 현상이다.
- 내부 단편화와 외부 단편화의 발생 조건을 구분한다.
주소 변환과 캐시 수치를 단계별로 계산하기
메모리 계산은 CPU가 만든 가상주소를 페이지 번호와 변위로 나누고, 페이지 테이블 또는 TLB로 프레임 번호를 찾은 뒤 물리주소를 구성하는 순서로 풉니다. 캐시는 주소를 태그·인덱스·블록 오프셋으로 나눠 매핑 방식과 적중 여부를 판단합니다.
- 페이지 크기가 2^k 바이트라면 변위는 k비트다.
- 유효 접근시간은 적중·실패 확률과 각 경로의 시간을 가중 평균한다.
- 쓰기 정책은 write-through/write-back과 write-allocate/no-write-allocate를 별도로 구분한다.
입출력·RAID·데이터 표현
입출력 방식은 CPU가 장치를 계속 확인하는지, 인터럽트로 완료를 알리는지, DMA가 메모리 전송을 맡는지로 구분합니다. 저장장치 문제에서는 RAID별 데이터 분산과 중복 정보의 위치를 확인하고 장애 허용 개수를 판단합니다.
- DMA는 블록 전송을 담당해 CPU의 반복적인 입출력 개입을 줄인다.
- RAID 0은 스트라이핑만 제공해 성능은 높지만 장애 복구용 중복 정보가 없다.
- RAID 1은 미러링, RAID 5는 분산 패리티를 사용한다.
- 빅엔디언은 상위 바이트를 낮은 주소에, 리틀엔디언은 하위 바이트를 낮은 주소에 저장한다.
데이터 표현·논리회로·명령어 형식
컴퓨터구조 계산은 진법과 보수, 부호 표현, 논리식 간소화에서 시작해 명령어의 연산코드·주소 필드와 주소지정 방식으로 이어집니다. 같은 비트열도 부호 있는 정수·부호 없는 정수·부동소수점 중 해석 방식에 따라 값이 달라집니다.
- 2의 보수 n비트 정수 범위는 -2^(n-1)부터 2^(n-1)-1까지이며 최상위 비트의 가중치를 음수로 해석할 수 있다.
- 부동소수점은 부호·지수·가수로 구성되고 정규화·반올림·오버플로·언더플로를 구분한다.
- 드모르간 법칙은 논리곱의 부정을 각 항의 부정의 논리합으로, 논리합의 부정을 각 항의 부정의 논리곱으로 바꾼다.
- 즉시 주소는 명령어 안의 값, 직접 주소는 유효주소, 간접 주소는 유효주소를 얻기 위한 주소, 인덱스 주소는 기준 주소와 인덱스를 결합한다.
- RISC는 단순·규칙적 명령과 레지스터 중심 실행, CISC는 복잡하고 다양한 명령 형식을 대표 특성으로 비교한다.
파이프라인·캐시·성능 계산
파이프라인은 여러 명령의 단계를 겹쳐 처리량을 높이지만 구조·데이터·제어 해저드로 지연될 수 있습니다. 성능 문제는 클럭 주기, 명령 수, CPI의 단위를 맞추고 캐시·메모리의 각 접근 경로를 확률 가중 평균합니다.
- CPU 실행시간은 명령 수×CPI×클럭 주기이며 클럭률을 쓸 때는 명령 수×CPI/클럭률로 계산한다.
- 데이터 해저드는 포워딩·스톨, 제어 해저드는 분기 예측·지연 분기 등으로 영향을 줄인다.
- 직접 사상은 한 블록의 위치가 하나이고 집합 연관은 정해진 세트 안 여러 라인, 완전 연관은 어느 라인에도 배치 가능하다.
- AMAT는 적중시간과 실패율×실패 페널티를 구분하며 문제에서 실패 페널티에 적중시간이 이미 포함됐는지 확인한다.
- Amdahl 법칙은 개선되지 않는 부분이 전체 성능 향상의 상한을 만든다는 점을 계산한다.
자주 틀리는 판단
- 처리량과 단일 명령 지연시간을 동일시
- 시간 지역성과 공간 지역성을 반대로 암기
- 페이지와 프레임을 같은 주소 공간의 용어로 해석
개념을 확인했다면 실제 문제에서 판단 기준을 적용해보세요.
분야별 문제 풀기