○Cache Memory

 ▷메인 메모리보다 빠르지만, 작고 매우 비싼 메모리 (SRAM)

 ▷사용자가 직접 읽거나 쓸 수 없고, 메모리 관리 시스템이 내부적으로 제어한다.

 ▷CPU가 데이터를 찾을 때 가장 먼저 찾는 곳이다.

 ▷메모리 계층 구조의 핵심이 된다.

 

 ▶구성

  ▶여러 개(S = 2^s)의 set이 모여 Cache를 구성한다. (주로 2의 멱수개)

   ▷set: 여러 개(E = 2^e)의 line이 모인것. (주로 2의 멱수개)

   ▷line: Cache Block. 여러 개(B = 2^B)의 bytes를 저장한다. 확인을 위한 tag와 valid bit이 존재한다.

  ▷Cache 크기: S × E × B Bytes.

 

 ▶Cache Read

  ▷1. set index로 찾는 line이 있는 set을 선택한다.

  ▷2. tag를 비교하여 해당 set에 우리가 찾는 line이 있는지 확인하고, 있다면 그 line이 valid한지 확인한다. -> hit

   ▷hit: tag가 같고, valid하다. 그냥 읽어들일 수 있다.

   ▷miss: tag가 같지 않지 않거나 valid하지 않다. 하위 계층에서 데이터를 가져와야한다.

  ▷3. block offset의 위치부터 찾는 데이터가 시작한다.

 

   ▶Directed Mapped Cache

    ▷Set에 line이 단 하나 있다.

    ▷tag비교를 한 번만 하면 된다. (불일치 -> 오래된 데이터?)

 

   ▶E-way Set Associative Cache

    ▷Set에 line이 E개있다.

    ▷tag비트

    ▷tag 비교를 E번 해야 한다.

 

 

 ▶Cache Write

  ▷여러 개의 데에터 복사본들이 각기 다른 계층에 존재한다. (Cache, Memory, Disk...)

  ▷write-through + No-write-allocate

  ▷write-back + no-write-allocate

 

  ▶write-hit 일 때

   ▷write-through: Cache에 갱신함과 동시에 Memory도 동시에 갱신한다.

   ▷write-back: Cache에 우선 갱신하고, Memory는 나중에 갱신한다.

 

  ▶write-miss 일 때

   ▷write-allocate: Cache로 Memory를 불러들이고, Cache에서 갱신한다.;

   ▷no-write-allocate: Memory에 직접 쓴다

 

 ▶Cache Performance

  ▶Miss Rate: Miss가 일어날 확률

   ▷보통 L1에서 3~10%, L2에서 1% 이하이다.

   ▷Miss시에 Main Memory까지 가서 메모리를 읽어야 하기 때문에, 작을수록 성능이 뛰어나다.

 

  ▶Hit Time: Hit시에 읽어오는데 걸리는 cycle

   ▷보통 L1에서 4, L2에서 10정도 된다.

   ▷작을수록 빠르게 읽어온다.

'컴퓨터 지식 > 시스템' 카테고리의 다른 글

Linking  (0) 2020.12.01
Memory Performance  (0) 2020.11.24
Memory Hierarchy  (0) 2020.11.17
Locality  (0) 2020.11.17
Flash Memory  (0) 2020.11.13

○Memory Hierarchy

 ▶메모리를 계층 구조로 설계함

  ▷빠른 메모리일수록, 단위당 가격이 비싸고, 전력을 많이 소모함 -> 용량이 작음.

  ▷Memory와 CPU의 속도 차이가 커지고있음.

  ▷잘 쓰여진 program은 좋은 locality를 가짐.

 

 ▷용량이 크고, 속도가 느린 메모리를 하위 계층에 위치 (CPU에 멀리 있음)

 ▷용량이 적고, 속도가 빠른 메로리를 상위 계층에 위치 (CPU에 가까이 있음)

 ▷자주 쓰이는 데이터를 상위 계층에 옮김으로써, 큰 용량을 빠른 속도로 관리 가능.

 ※Cache: 크지만 느린 device의 일부를 가져온다.

 

 ▶Memory -> Cache

  ▷Place policy: 가져온 데이터를 어디에 저장할지.

  ▷Replacement policy: 데이터가 가득 차있다면, 어떤 데이터와 바꿀지

 

 ▶Cache Miss

  ▷Cold (compulsory) Miss: 빈 공간을 참조함.

  ▷Capacity Miss: 불러들여오는 Block이 cache보다 큼.

  ▷Conflict miss: Block을 특정 level에만 저장 가능하지만, 들여온 데이터가 같은 level에 집중되는 경우

 

 ▶Caching Hierarchy

'컴퓨터 지식 > 시스템' 카테고리의 다른 글

Memory Performance  (0) 2020.11.24
Cache Memory  (0) 2020.11.19
Locality  (0) 2020.11.17
Flash Memory  (0) 2020.11.13
Disk Drive  (0) 2020.11.12

○Locality

 ▷동일하거나 연결된 주소를 사용하는 경향.

 ▷프로그램은 같은 주소를 여러번 사용하거나(변수, 함수..), 연결된 주소를 쭉 읽음(배열, ).

 

 ▶Temporal Locality

  ▷최근 사용한 주소를 다시 사용할 가능성이 높음.

 

 ▶Spatial Locality

  ▷근처의 주소를 사용할 가능성이 높음.

 

 

 ▶Locality가 좋도록 프로그래밍해야함.

'컴퓨터 지식 > 시스템' 카테고리의 다른 글

Cache Memory  (0) 2020.11.19
Memory Hierarchy  (0) 2020.11.17
Flash Memory  (0) 2020.11.13
Disk Drive  (0) 2020.11.12
Memory R/W  (0) 2020.11.12

○Solid State Disks (SSD)

 ▷HDD를 대체하기 위해 개발된 고속 보조기억장치

 

 ▶구성

  ▷Flash Translation Layer (FTL): HDD와 동일한 interface로 구동 가능하도록 함.

  ▷Page: 512KB ~ 4KB까지의 정보를 저장 가능, SSD의 기본 단위

  ▷Block: 32~128 페이지들을 저장 가능

  ▷100,000만번의 반복적인 쓰기 작업 이후에 Block사용이 불가능함.

 

 ▶Flash Memory R/W

  ▷전자의 유무로 1/0을 판정: 전자가 있으면 0, 없으면 1

  

 ▶NAND Flash Memory

  ▶장점

   ▷높은 집적도 (고용량, 가격의 낮음)

   ▷낮은 전력 소모

   ▷낮은 지연시간

   ▷높은 쇼크, 진동에 대한 저항

   ▷작은 form factor

 

  ▶단점

   ▷덮어쓰기 불가

   ▷제한된 수명

   ▷Bad blocks (횟수 이상 지우면 해당 Block에 access할 수 없다.)

   ▷신뢰성 약화

 

 

 ▶Flash Translation Layer (FTL)

  ▷기능적으로 HDD를 모방하는 소프트웨어

  ▷HDD와 동일한 File system으로 동작 가능하게 함.

  ▷Flash Memory의 특성을 숨김 (덮어쓰기 불가, Bad block...)

 

  ▶Re-mapping

   ▷Flash memory는 덮어쓰기가 불가능함.

   ▷데이터를 덮어쓰려면, 다른 위치에 데이터를 쓰고, 해당 위치를 가리키도록 함.

 

  ▶Wear-leveling

   ▷Flash memory는 지우는 횟수에 제한이 있음.

   ▷SLC (Single-Level-Cell): 100,000 / MLC(Multi..): 10,000

   ▷Block들의 지우기 횟수를 비슷하게 하여 수명을 늘림.

 

  ▶Bad Block Management

   ▷Bad Block: Block에 더이상 access할 수 없음.

   ▷Initial bad blocks: 다른 임시 Block을 가리키도록 함.

   ▷Run-time bad blocks: 중간에 생기는 Bad block들

 

 ▶Mapping

  ▶Block-Mapping

   ▷Block 단위로 Mapping함.

   ▷작은 SRAM으로도 충분

   ▷작은 크기를 쓸때 비효율적

 

  ▶Page-Mapping

   ▷Page 단위로 Mapping함.

   ▷충분히 큰 크기의 SRAM이 필요함.

   ▷작은 크기도 효율적으로 처리 가능

'컴퓨터 지식 > 시스템' 카테고리의 다른 글

Memory Hierarchy  (0) 2020.11.17
Locality  (0) 2020.11.17
Disk Drive  (0) 2020.11.12
Memory R/W  (0) 2020.11.12
Nonvolatile Memory  (0) 2020.11.12

○Disk

 ▷마그네틱 코팅이 된 원판를 이용하여 정보를 기록하는 장치

 

 ▶구성

  ▶Platter: 마그네틱 코팅된 원판, 표면에 정보를 기록함

   ▷surface: platter의 표면, Platter 하나당 2개의 surface (앞,뒤)

   ▷track: surface를 구성하는 ring

   ▷sector: track을 gap단위로 나눈 것.

 

  ▷Spindle: 원판을 회전시킴

  ▷Arm: 판에서 정보를 읽어들임.

 

 ▶용량: 최대로 저장 가능한 비트 수

  ▷Capacity = (bytes/sector) × (avg. sectors/track) × (tracks/surface) × (surface/platter) × (platter/disk)

  ▷Recording density (bits/in) : track의 1인치 segment에 저장 가능한 비트 수

  ▷Track density (tracks/in) : 1인치 radial segment에 있는 track 수

  ▷Areal density (bits/in^2) : 위 2개의 density의 곱

 

 ▶Disk Access

  ▶T_access = T_avg seek + T_avg rotation + T_avg transfer

   ▷Seek Time: head를 해당 sector가 있는 track으로 옮기는데 걸리는 시간 (3~9 ms)

   ▷Rotational latency: head가 해당 sector의 first bit를 찾을 때 까지 회전하는데 걸리는 시간 (4ms)

   ▷Transfer Time: 해당 sector에서 정보를 읽는데 걸리는 시간 (0.02ms)

  ▷Seek Time이 가장 큼 -> Seek 횟수를 줄이는 것이 목표

  ▷처음 비트를 찾은 이후 다음 비트들은 비용이 거의 들지않음.

  ▷Disk 는 SRAM에 비해 약 4만배, DRAM에 비해 약 2천5백배 느림.

 

 ▶Logical Block

  ▷sector를 b-size Block으로 추상화 한 것.

  ▷Logical Block - Sector간의 Mapping 필요

 

 ▶Disk Read

  ▶Logical Block

   ▷sector를 b-size Block으로 추상화 한 것.

   ▷Logical Block - Sector간의 Mapping 필요

 

  ▷command, logical block number, destination memory address(DMA)를 port에 입력

  ▷DMA 전달이 끝나면, 컨트롤러가 CPU에 전송이 끝났음을 알림. (interrupt)

'컴퓨터 지식 > 시스템' 카테고리의 다른 글

Locality  (0) 2020.11.17
Flash Memory  (0) 2020.11.13
Memory R/W  (0) 2020.11.12
Nonvolatile Memory  (0) 2020.11.12
RAM  (0) 2020.11.12

+ Recent posts