컴퓨터 구조 : 기억장치
Computer Architecture

컴퓨터 구조 : 기억장치

기억장치의 종류
  • 주기억장치(내부기억장치)
    • 레지스터, 캐시, 메인메모리(RAM, ROM)
  • 보조기억장치(외부기억장치)
    • HDD, SSD, CD, DVD, 자기테이프(M/T- magnetic tape)

 

기억장치의 액세스 유형
  • 순차적 액세스 (비디오테이프)
    • 처음부터 순서대로, 자기테이프(M/T)
  • 직접 액세스
    • 각 레코드 근처로 직 이동후 순차적 검색, HDD, CD, DVD
  • 임의 액세스
    • 직접 해당주소로 액세스, RAM, ROM
  • 연관 액세스
    • 기억장소별 키값 부여, 검색으로 찾음, 특수한 용도로 사용

 

기억장치 액세스 속도 관련 항목
  • 액세스 시간
    • 읽기/쓰기 신호가 도착하는 순간부터 데이터 읽기/쓰기가 완료까지의 시간
  • 기억장치 사이클 시간
    • 액세스 시간 + 다음 액세스가 가능할 때 까지의 시간
  • 데이터 전송률(Data Transfer Rate)
    • 초당 읽거나/ 쓴 bit 수, bps(bit / sec)

 

기억장치 유형
  • 반도체 기억장치
    • RAM, ROM, SSD, 플래시메모리
  • 자기-표면 기억장치(전자석 성분)
    • HDD(*하드디스크), M/T
  • 광 저장장치
    • CD, DVD

 

기억장치 데이터 저장 성질
  • 휘발성 기억장치
    • RAM (전원 OFF 시 메모리가 다 날아감)
  • 비휘발성 기억장치
    • ROM, HDD, SSD, CD, DVD, M/T

 

계층적 기억장치
  •  CPU레지스터 - 캐시 - 주기억장치(RAM) - HDD, SSD - CD, DVD, M/T

(속도빠름, 용량 적음, 가격 비쌈)       >>      (속도느림, 용량 큼, 가격쌈)

 

반도체 기억장치
  • RAM(Random Access Memory)
    • 휘발성 메모리 (전원 OFF시 내용 지워짐)
      • DRAM(Dynamic-) : 캐패시터와 같이 주기적 재충전(리프레시)로 기억이 유지됨. 대용량, 저렴, 주기억장치에 사용
      • SRAM(Static-) : 플립플롭회로 이용(한번 전원이 들어오면 계속), 재충전(리프레시) 없이 유지, 소용량, 비쌈, 캐시메모리에 사용

 

  • ROM(Read Only Memory)
    • 비휘발성 (전원 중단되어도 내용 유지), 읽기만 가능 (쓰기 일부 가능)
      • ROM(Mask ROM) : 공장제조시 내용 미리 쓰여짐, 가전제품의 펌웨어
      • PROM(Programmable - ) : 비워있는 ROM에 1회만 저장가능
      • EPROM(Erasable Programmable - ) : 여러 번 저장 가능, 지울 때는 자외선 롬이레이저(rom erasor) 필요
      • EEPROM(Electrically Erasable Programmable - ) : 자외선이 아닌 전기신호로 지움. 펌웨어 업그레이드
      • 플래시 메모리(Flash Memory) : 매우 빠른 속도로 지우기(쓰기) 가능 / (섬광처럼 지워진다 = Flash)

 

캐시 메모리
  • CPU와 주기억장치 간의 속도 차이로 인한 CPU 성능저하를 방지하기 위한 메모리
  • 캐시 적중률 H = 캐시의 적중되는 횟수 / 전체 기억장치 액세스 횟수
  • CPU에 내장, 또는 CPU바깥에 위치 (L1, L2, L3 캐시 등으로 운영)
  • 자주 사용되는 데이터를 캐시에 임시저장하여 읽기 속도를 개선

(메모리에서 처음 읽어온 정보를 캐시에 저장하여 다음에 또 같은 정보를 불러오는 경우 캐시를 통해 빠르게 출력)

 

 

 

데이터의 지역성
  • 시간적 지역성 : 최근 액세스된 데이터는 다시 액세스될 확률이 높음(서브루틴, 공통변수)
  • 공간적 지역성 : 서로 인접한 데이터는 연속적으로 액세스될 확률이 높음 (표, 배열)
  • 순차적 지역성 : 액세스된 데이터 이후의 데이터는 연속적으로 액세스될 확률이 높음 (순차적 프로그램)

시간적(반복문) / 공간적(메모리) / 순차적(배열 공간)

 

캐시의 인출방식
  • 요구 인출
    • CPU에서 필요한 데이터만 인출
  • 선 인출
    • 앞으로 필요할 것으로 예측되는 데이터까지 미리 인출

미리 CPU가 원하는 데이터보다 더 많은 데이터를 저장해놓음

(캐시가 자동으로 하는 것이 아닌 CPU 명령에 의해 수동적으로 이러한 행동을 하는 것)

캐시가 용량이 작지만 적중률을 높이기 위해 이러한 방식 사용

 

캐시 적중(cashe hit) ?

 CPU가 액세스하려는 데이터가 이미 캐시에 적재되어 있는 상태

 

캐시 미스(cashe miss) ?

 CPU가 액세스하려는 데이터가 캐시에 없어서 주기억장치로부터 인출해 와야 하는 상태

 

캐시 적중률 (cashe hit ratio) ?

 전체 기억장치 액세스들 중에서 캐시에 적중되는 비율

 

 

사상방식(매핑방식, mapping)
  • 주 기억장치 블록들이 어느 캐시라인에 적재될 지를 정하는 방식
    • 직접사상
      • 주기억장치 블록들이 지정된 캐시라인에만 적재되는 방식
      • 구현간단. 적중률 낮음.
    • 완전연관사상
      • 캐시의 어떤 라인이든 적재가능한 방식
      • 구현 복잡. 비용 높음.
    • 세트연관사상
      • 직접과 완전연관을 합친 방식
      • 주기억장치 블록들이 캐시라인 2곳, 4곳 중 한 곳에 적재되는 방식 (2-way세트연관, 4-way세트연관)

 

직접 / 완전연관 / 세트연관

 

캐시 교체 알고리즘 (캐시 교체정책)
  • 캐시 내용중 많이 사용되지 않는 부분은 삭제하고 다른 내용으로 교체하는 방식
    • 최소 최근 사용(LRU, Leasts Recently Used)
      • 가장 최근에 사용되지 않은 ( 사용한지 가장 오래된 자료 교체 )
    • FIFO(First-in, First-out)
      • 들어온 시간 순으로 ( 가장 먼저 들어온 자료를 교체 )
    • 최소 사용 빈도(LFU, Least Frequently Used)
      • 최근에 사용된 사용빈도가 적은 자료 교체

 

최소 최근 사용

1초전 2초전 3초전 4초전

 

FIFO

11:01 11:05 11:10 11:15

 

최소사용빈도

4회 3회 2회 1회

 

캐시 쓰기 정책
  • 캐시에 적재된 데이터를 새로운 값으로 변경할 때, 주기억장치에 갱신하는 시기와 방법
    • 연속 기록(write-through) : 캐시에 쓰기동작을 수행할 때, 주기억장치도 동시에 기록
      • 사실상 이러면 캐시를 쓰는 효과가 없게 됨
    • 후 기록(write-back) : 쓰기동작이 캐시에만 이루어지고, 교체되는 시기에 주기억장치(RAM)에 나중에 한꺼번에 기록
      • 일일이 수정하면 시간이 많이 걸리는 것을 보완
  • RAM
    • SRAM(Static-) 캐시, 빠르고 비쌈
    • DRAM(Dynamic-) 주기억장치, 조금 느리고 쌈
      • 일반DRAM
      • SDRAM (Synchronous-) : 데이터전송을 시스템 클락에 동기화 시키는 방식
        • SDR-SDRAM(Single Data Rate-) : 클락 당 1회 전송 (Rising Edge에만 데이터 전송)
        • DDR-SDRAM(Double Data Rate-) : 클락 당 2회 전송 (Rising,Falling Edge에 데이터 전송)
        • DDR2-SDRAM : 클락을 2배 더 빠르게
        • DDR3-SDRAM : 4배 더 빠르게
        • DDR4-SDRAM : 8배 더 빠르게