미가공 필기(운영 체제)

OS2

JoJobum 2022. 2. 17.

캐시 메모리(Cache Memory) : 속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리

CPU와 주 기억장치에서 저장된 데이터를 읽어올 때, 자주 사용하는 데이터를 캐시 메모리에 저장한 뒤, 다음에 이용할 때 주기억장치가 아닌 캐시 메모리에서 먼저 가져오면서 속도를 향상시킨다. 

장 : 속도 빨라짐  단 : 비용이 비쌈

cpu 에서 속도와 크기에 따라 캐시 메모리를 분류해서 사용함 (ex - L1, L2, L3)

보통 L1 부터 사용 (CPU에서 가장 빠르게 접근, 여기서 찾지 못하면 L2로 가는 식으로 동작)

 

 

 

캐시 메모리 작동 원리

  • 시간 지역성 (Time Locality)
    • 한번 참조된 데이터는 잠시후 또 참조될 가능성이 높음
    • 예) 순환, 서브루틴, 스택, 계산과 집계에 사용되는 변수 
  • 공간 지역성
    • 참조된 데이터 근처에 있는 데이터가 잠시후 또 사용될 가능성이 높음
    • 예) 배열 순회, 순차적 코드 실행, 관련된 변수를 함께 선언

 

캐시에 데이터를 저장할 때는, 이러한 참조 지역성(공간)을 최대한 활용하기 위해 해당 데이터뿐만 아니라, 옆 주소의 데이터도 같이 가져와 미래에 쓰일 것을 대비한다.

CPU가 요청한 데이터가 캐시에 있으면 'Cache Hit', 없어서 DRAM에서 가져오면 'Cache Miss'

 

캐시 미스 경우 3가지

  1. Cold miss : 해당 메모리 주소를 처음 불러서 나는 미스
  2. Conflict miss : 캐시 메모리에 A와 B 데이터를 저장해야 하는데, A와 B가 같은 캐시 메모리 주소에 할당되어 있어서 나는 미스 (direct mapped cache에서 많이 발생)
  3. Capacity miss : 캐시 메모리의 공간이 부족해서 나는 미스 (Conflict는 주소 할당 문제, Capacity는 공간 문제)

 

캐시 크기를 키워서 문제를 해결하려하면, 캐시 접근속도가 느려지고 파워를 많이 먹는 단점이 생김

 

 

기존에는 인터럽트 S/W 가 처리 했었는데 최근 H/W 가 처리 => 빠르다 why? 

H/W - 1클럭 때 interrupt 처리 

S/W - 이상적인 상황에도 1클럭 때 명령 1개 처리 

 

OS Service  - 일반 프로그램과 다르게 인터럽트에 의해 여러 프로그램 제어

  • 프로그램 개발
  • 프로그램 실행
  • I/O devices 접근
  • 파일 접근 
  • System access
  • 에러 감지

주요 interface

  • Instruction Set architecture (ISA)
  • Application binary interface (ABI)
  • Application Programming Interface (API)

 

 

 

반응형

'미가공 필기(운영 체제)' 카테고리의 다른 글

OS1  (0) 2021.07.20

댓글