
컴퓨터 메모리
- 메모리: 데이터와 프로그램을 저장하는 중요한 컴퓨터 구성 요소
메모리 설계 제약
- 용량: 메모리 용량이 충분해야, 이에 맞는 애플리케이션 개발이 가능.
- 비용 (비트당): 메모리 비용은 다른 구성 요소들과 합리적으로 균형을 맞춰야 함.
- 액세스 시간: 빠른 액세스 시간으로 최상의 성능을 얻어야 함.
현대 메모리 기술
- 더 작은, 더 비싼 (비트당 비용이 높은), 더 빠른 메모리와
- 더 크고, 더 저렴한 (비트당 비용이 낮은), 더 느린 메모리
- 메모리 계층: 여러 메모리 기술을 계층적으로 사용하는 것이 중요!
메모리 계층구조 (Memory Hierarchy)

- 계층화: 작은, 빠른, 비싼 메모리는 크고 느린, 저렴한 메모리로 보충됨.
- 프로세서와의 동기화: 효율적인 메모리 계층구조는 프로세서 속도에 맞춰야 한다.
- ⭐⭐⭐⭐상위 계층 메모리는 자주 참조되는 데이터를 저장하여 하위 계층 메모리 접근을 최소화.
참조의 지역성 (Locality of Reference)
- 프로그램은 메모리의 상대적으로 작은 부분만을 자주 참조.
- 시간적 지역성 (Temporal locality): 같은 데이터를 곧 다시 참조할 가능성.
- 공간적 지역성 (Spatial locality): 인접한 데이터를 곧 참조할 가능성.

평균 액세스 시간 (Average Access Time)
- 히트(Hit): 데이터가 상위 레벨에서 검색된 경우.
- 적중률 (H): 상위 레벨에서 찾은 모든 메모리 액세스의 비율.
- 상위 레벨 액세스 시간 (T1).
- 하위 레벨 액세스 시간 (T2).
- 미스(Miss): 데이터가 하위 레벨에서만 검색된 경우.
- 미스률 (M) = 1 - 적중률.
- 공식:
- T = H*T1 + (1- H)(T1 + T2)
- T = - T2 H + (T1 + T2)
예제 1 - 평균 시간 계산
- 레벨 1 액세스 시간 = 0.1 μs, 레벨 2 액세스 시간 = 1 μs, 95%의 액세스가 레벨 1에서 발생한다고 가정. 바이트에 액세스하는 평균 시간?
- T = (0.95)(0.1 us) + (0.05)(0.1 us + 1 us) = 0.095 + 0.055 = 0.15 us
예제 2 - 99%의 적중률이 97%의 적중률의 두 배라고 믿을 수 있는가?
- 고려: 캐시 적중 시간은 1 사이클 미스 페널티는 100 사이클
- 평균 액세스 시간: 97% 적중: 약 4 사이클 99% 적중: 약 2 사이클

캐시 메모리 (Cache Memory)
동기 및 해결책
- 프로세서와 메모리 속도의 차이로 인해 프로세서가 메모리 액세스 시간을 기다리야 하는 문제 발생.
- 캐시 메모리: 빠르고 작은 메모리로, 자주 참조되는 데이터를 저장하여 성능 향상.
캐시 메모리 구성 (Cache Organization)
- 공간적 지역성: 더 큰 캐시 블록을 사용하고, 미리 데이터를 가져오는 방식.
- 시간적 지역성: 최근에 사용된 데이터를 캐시에서 유지.
캐시 설계 (Cache Design)
- 연관성(Associativity): 캐시의 유연성이 커지면 회로가 더 복잡해짐.
- 캐시 크기(Cache Size): 캐시 크기가 클수록 적중률이 증가하지만, 구현의 어려움이 따름.
- 블록 크기(Block Size): 블록 크기를 크게 하면 처음에는 적중률이 증가하지만, 너무 크면 성능 저하가 발생할 수 있음.
Direct Mapped vs. Set-Associative
- Direct Mapped: 세트 당 한 줄로 구성된 캐시.
- 2-way Set-Associative: 세트 당 두 줄로 구성된 캐시.

캐시 읽기 연산 (Cache Read Operation)
- 프로세서는 읽을 주소(RA)를 생성.
- 만약 주소가 캐시에 있으면, 바로 데이터를 반환.
- 캐시에 없다면, 해당 블록을 먼저 로드하고, 그 후 데이터를 반환.

캐시 쓰기 연산 (Cache Write Operation)
- 쓰기 히트 (Write Hit) 시:
- Write-through: 데이터가 캐시에 쓰여질 때마다 메모리에도 즉시 반영.
- Write-back: 데이터가 변경되면, 캐시에서만 변경하고, 후에 메모리에 반영.
- 쓰기 미스 (Write Miss) 시:
- Write-allocate: 데이터가 캐시에 로드되고, 그 후 쓰기가 이루어짐.
- No Write-allocate: 메모리로만 쓰고, 캐시에는 저장되지 않음.
다중 프로세서 환경에서의 문제
- 메모리 일관성 문제 (Memory Coherence):
- 여러 프로세서가 동일한 메모리 위치를 캐시할 때, 서로 다른 값을 가질 수 있음.
- 예시:
- 프로세서 1이 메모리 값을 변경하고, 프로세서 2는 구버전 값을 갖고 있을 수 있음.

'CS > OS' 카테고리의 다른 글
[운영체제] 프로세스 (0) | 2025.01.28 |
---|---|
[운영체제] 오퍼레이팅 시스템 개요 (0) | 2025.01.28 |
[운영체제] virtual box에서 ubuntu 설치 및 터미널 명령어 실행하기 (0) | 2023.07.09 |
운영체제 - 생산자 소비자 문제 semaphore을 활용하여 해결하기 (0) | 2023.05.31 |
가상머신에서 우분투 설치하는 법 (0) | 2023.05.26 |