자기디스크 (magnetic disk) 자기디스크구조자기디스크액세스시간 RAID 출현배경 RAID 종류플래시메모리 SSD 구조와동작원리 이자료는김종현저 - 컴퓨터구조론 ( 생능출판사 ) 의내용을편집한것입니다. 1
6.1 자기디스크 (magnetic disk) 2 자화될수있는물질로코팅된플라스틱이나금속을이용한원형평판으로만들어진저장장치 : 하드디스크 (hard disk), 혹은디스크 (disk) 주요구성요소들 원형평판 (circular platter) : 실제정보가저장되는장소로서, 다수의트랙 (track) 들로구성 헤드 (head) : 전도성코일을통하여표면을자화 (magnetize) 시킴으로써데이터를저장하는장치 디스크팔 (disk arm) : 헤드를이동시키는장치 구동장치 (actuator) : 원형평판회전및디스크팔구동을위한모터 (motor) 2
자기디스크 ( 계속 ) 3 헤드의수에따른디스크의분류 단일 - 헤드디스크 (single-head disk) 다중 - 헤드디스크 (multiple-head disk) 3
자기디스크 ( 계속 ) 4 헤드의이동성에따른분류 이동 - 헤드디스크 (movable-head disk) 단일 - 헤드디스크 (single-head disk) : 헤드를이동시키면서디스크표면의데이터를액세스 다중 - 헤드디스크 (multiple-head disk) : 각헤드에게일정트랙그룹할당 헤드이동거리단축 고정 - 헤드디스크 (fixed-head disk) 각트랙당헤드를한개씩설치 탐색시간 (seek time: 헤드가해당트랙으로이동하는데걸리는시간 ) = 0 제작비용이높아짐 4
6.1.1 디스크의구조 5 섹터 (sector) : 디스크에한번에쓰거나읽는데이터크기의최소단위 섹터간갭 (inter-sector gap) : 섹터들을구분하기위한간격 (gap) 트랙간갭 (inter-track gap) : 헤드가잘못정렬되거나자장의간섭때문에발생하는오류를방지하기위한트랙들사이의간격 전형적인디스크의경우, 표면당트랙의수 = 500 2000 개, 트랙당섹터의수 = 32 개 5
디스크표면의세부구조 6 6
등각속도 (Constant Angular Velocity, CAV) 7 디스크가일정한속도로회전하는상태에서트랙의위치에상관없이데이터를동일한비율로액세스하는방식 [ 장점 ] 디스크읽기 / 쓰기장치가간단하다. [ 단점 ] 저장공간이낭비된다 ( 바깥쪽트랙이안쪽트랙보다더길지만, 저장하는데이터양은같아야하기때문 ) 7
디스크형식화작업 (disk formatting) 8 디스크의구성을검사하고, 그에관한정보와트랙의시작점, 섹터의시작과끝을구분하기위한제어정보등을디스크상의특정위치에저장하는과정 트랙형식의예 섹터크기 = 600 바이트 (512 바이트데이터 + 제어정보 ) 제어정보 (ID 필드 ) : 섹터를구분하는데필요한식별자또는주소 SYNCH 바이트, 트랙번호, 헤드번호, 섹터번호, 오류검출코드 (CRC) 8
트랙형식의예 9 9
10 CRC (Cyclic Redundancy Check) 디스크로부터데이터를읽거나데이터통신과정에서발생하는오류를검출하기위하여순환 2 진부호를사용하는방식 송신측에서데이터를블록단위로나누고, 각블록뒤에 2 진다항식의특수계산에의해얻어진순환부호를여분으로붙여서저장혹은전송 수신측에서도동일한계산을수행하여동일한순환부호가얻어지는지를확인함으로써전송오류의유무를검사 패리티비트를이용하는방법보다정교하여오류검출능력이뛰어남 저장장치 ( 하드디스크, CD-ROM, DVD) 및각종통신프로토콜에서사용 10
디스크드라이브 (disk drive) 11 디스크, 헤드가부착된디스크팔, 구동장치, 디스크를회전시키는축 (spindle), 데이터전송을위한전자회로등을포함한전체패키지 디스크이동성에따른분류 제거불가능디스크 (non-removable disk) : 디스크드라이브내에고정시킨디스크 ( 하드디스크 ) 제거가능디스크 (removable disk) : 디스크드라이브로부터꺼낼수있으며, 다른디스크드라이브에삽입시켜데이터를읽거나쓸수있는디스크 ( 플로피디스크 (floppy disk)) 디스크면수에따른분류 : 양면디스크 (double-sided disk) 단면디스크 (single-sided disk) 실린더 (cylinder) : 서로다른디스크표면에있지만같은반경에위치하고있어서, 디스크팔을움직이지않고도동시에액세스할수있는트랙들의집합 11
단일및다중 - 평판디스크드라이브의내부구조 12 12
6.1.2 디스크액세스시간 13 디스크액세스 ( 읽기 / 쓰기 ) 동작의순서 1 헤드를해당트랙으로이동 2 원하는섹터가헤드아래로회전되어올때까지대기 3 데이터를전송 디스크액세스시간 (disk access time) 디스크액세스시간 = 탐색시간 + 회전지연시간 + 데이터전송시간 탐색시간 (seek time) : 1 번에걸리는시간 회전지연시간 (rotational latency time) : 2 번에걸리는시간 데이터전송시간 (data transfer time) : 3 번에걸리는시간및디스크제어기 (disk controller) 에서소요되는시간 13
14 회전지연시간 : 디스크의회전속도에따라결정 [ 예 ] 회전축의속도 = 7200 rpm(rotations per minute) 인경우, 초당 120 바퀴회전 한바퀴회전에는 1/120sec(8.33ms) 소요헤드가해당트랙에도착한순간의헤드위치에따라, o 회전지연시간 = 0 ~ 8.33ms o 평균회전시간 = 4.17ms (1/2 바퀴회전에걸리는시간 ) 최근의디스크회전축속도 : 5400 rpm, 7200 rpm, 10000 rpm, 15000 rpm, 20000 rpm( 개발중 ) 14
최신디스크들의특성및성능파라미터들 15 15
6.2 RAID(Redundant Array of Inexpensive Disks) 6.2.1 RAID 출현의배경 16 한개의대형디스크를사용하는것보다, 크기가작은여러개의디스크들을서로연결하여하나의큰용량을가진디스크배열 (disk array) 을구성하면, 보다더저렴한가격으로더큰용량을가진디스크서브시스템의구성가능 [ 추가적인장점 ] 데이터분산저장에의한동시액세스 (concurrent access) 가능 병렬데이터채널에의한데이터전송속도향상 [ 문제점 ] 고장가능성증가 (MTTF 단축 ) 16
기본기술 : 디스크인터리빙 (disk interleaving) 17 데이터블록들을여러개의디스크들로이루어진디스크배열 (disk array) 에분산저장하는기술 균등분산저장을위하여라운드 - 로빈 (round-robin) 방식사용 17
디스크와디스크배열의특성비교 18 * 위의표는 RAID 를처음제안한 U.C. Berkeley 대학의연구팀이제시한것으로서, 그당시의디스크들에대한규격및가격등을기준으로작성되었음 18
디스크배열의단점 디스크배열의주요단점 : MTTF(Mean Time To Failure) 의단축 19 [ 예 ] MTTF = 30000 시간인디스크 100 개를이용한디스크배열의 MTTF = 30000/100 = 300 시간으로단축 19
RAID 제안 20 디스크배열의결함허용도 (fault-tolerance) 를높이기위하여 RAID 가제안됨 핵심기술 : 검사디스크 (check disk) 들을이용하여오류검출및복구 (error detection and recovery) 기능추가 디스크결함발생시의복구절차 1 2 3 4 해당디스크사용중단및시스템으로부터분리 검사디스크에저장된정보를이용하여원래의데이터복구 결함수리후디스크재설치 시스템재구성 20
6.2.2 RAID 의종류 21 1) RAID-1 디스크미러링 (disk mirroring; 디스크반사 ) 방식이용 : 데이터디스크에저장된모든데이터들은짝 (pair) 을이루고있는미러디스크의같은위치에복사 8 [ 장점 ] 거의완전한결함허용도 (fault tolerance) 제공 [ 단점 ] 가격이높다 [ 주요용도 ] 높은신뢰도를요구하는결함허용시스템에주로사용. 시스템소프트웨어혹은중요한데이터파일저장에사용. 21
2) RAID-2 22 비트 - 단위인터리빙방식사용 : 데이터를각디스크에비트단위로분산저장 해밍코드 (Hamming code) 를이용한오류검출및정정 [ 단점 ] 필요한검사디스크들의수가많아서가격이비싸다 [ 주요용도 ] 오류가많이발생하는환경에서사용 22
RAID-2 ( 계속 ) 필요한검사디스크수를구하는식 : 23 2 C - 1 G + C 단, G : 데이터디스크의수 C : 필요한검사디스크들의수 [ 예 ] G = 8 인경우 : 검사디스크수 ( C) = 4, 오버헤드 = 50 % G = 16 인경우 : 검사디스크수 ( C) = 5, 오버헤드 = 31 % 23
3) RAID-3 24 패리티방식을이용한오류검출및정정방식사용 패리티비트 : p = b1 b2 b3 b4 디스크에결함이발생한경우의데이터복구방법 : [ 예 ] b2 가저장된디스크결함발생시 : b2 = p b1 b3 b4 [ 장점 ] 병렬데이터읽기 / 쓰기가능 디스크액세스속도향상 [ 단점 ] 쓰기동작때마다패리티비트갱신필요 시간지연발생 24
4) RAID-4 25 블록 - 단위인터리빙방식사용 데이터디스크들의동일한위치에있는블록들에대한패리티블록을패리티디스크에저장 [ 문제점 ] 매쓰기동작을위해패리티디스크를두번씩액세스 병목현상발생 25
RAID-4 ( 계속 ) 데이터블록의쓰기 ( 갱신 ) 과정 26 두번째디스크에저장된블록 B2 를 B2' 로갱신하는경우 새로운패리티블록 P' = B1 B2' B3 B4 세번의디스크읽기 (B1, B3 및 B4 읽기 ) 와두번의디스크쓰기 ( 새로운데이터및패리티쓰기 ) 동작들이필요 Overhead ( 성능저하 ) 디스크액세스횟수의최소화방법 P' = B1 B2' B3 B4 (B2 B2) = (B1 B2 B3 B4) B2 B2' = P B2 B2' 즉, 디스크수에상관없이, 한블록갱신에네번의디스크액세스만필요 원래데이터읽기, 원래패리티읽기, 새로운데이터쓰기, 새로운패리티쓰기 26
5) RAID-5 27 RAID-4 의문제점을보완하기위하여패리티블록들을라운드 - 로빈 (round-robin) 방식으로분산저장 [ 장점 ] 패리티디스크에대한병목현상해소 쓰기동작들의병렬수행가능 데이터디스크들의수가 G 개일때, 최대 (G+1)/2 개의쓰기동작들의병렬수행가능 27
RAID-5 ( 계속 ) [ 문제점 ] 작은쓰기문제 (small write problem) 어느한블록만갱신하는 ' 작은쓰기 (small write)' 의경우에네번의디스크액세스가필요하기때문에성능이저하됨. 28 RAID-1 과 RAID-5 의비교 RAID-1 : 읽기와작은쓰기가많은환경에적합 RAID-5 : 용량과비용을중요시하는응용이나큰쓰기요구가많은환경에적합 가격대성능비측면에서 RAID-5 가더우수 28
6.3 플래시메모리와 SSD 29 주기억장치와보조저장장치간의빈번한정보전송발생 보조저장장치의성능향상필요 기계장치가포함된디스크드라이브의성능한계 SSD(Solid-State Drive) 의출현 반도체기억장치 ( 플래시메모리 ) 칩들을이용한대용량저장장치 영구저장능력보유 속도및신뢰도향상 29
플래시메모리 (Flash memory) 30 휴대용백업저장매체로널리사용 대용량저장장치인 SSD 의구성요소 SSD: 다수의플래시메모리들을배열로구성한패키지 액세스속도가디스크에비해높음 일반적인반도체기억장치와는다른읽기 / 쓰기특성으로인한별도관리방식필요 상대적높은가격및낮은내구성 ( 갱신횟수제한 ) 문제 30
6.3.1 플래시메모리 31 플래시메모리의출현 비휘발성반도체기억장치분야활성화계기 높은저장밀도 : 한비트저장에한개의트랜지스터사용 [ 비교 ] EEPROM: 비트당두개의트랜지스터사용 낮은전력소모량, 높은신뢰성, 속도향상 동작원리 메모리셀 ( 기억소자 ) 구현 : NMOS 트랜지스터사용 구조적특징 : 두개의게이트 제어게이트 (control gate) : 일반트랜지스터의게이트와동일 부동게이트 (float gate) : 정보저장의핵심적역할수행 31
동작원리 ( 계속 ) 메모리셀의기호및내부구조 32 부동게이트 : 절연체인산화막 (SiO2) 로둘러싸여전자들이들어오지못하며, 초기에는비어있는 (empty) 상태 - ( 1 저장상태 ) 32
33 프로그래밍 ( 쓰기 ) 동작 : 제어게이트로고전압 (+12V) 인가시, N- 채널의전자들이부동게이트로진입 ( 터널링효과로인한터널주입발생 ) 0 쓰기 0 저장 : Vg = +12V 인가 1 저장 : Vg = 0 삭제동작 : p 층 (p-well) 에고전압 (Vp) 인가시, 부동게이트에갇힌전자들이 N- 채널로빠져나옴 ( 터널릴리스현상 ) 셀에저장된값 원래값 ( 1 ) 으로변경 33
34 읽기동작 드레인전압 (Vd: 5V) 인가 N- 채널을통하여전자흐름발생 게이트전압 (Vg: 5V) 인가 전기장발생 저장된데이터 = 1 ( 부동게이트가빈상태 ) 경우 N- 채널확장 ( 그림 6-13(a)) 많은전류가흘러트랜지스터가 ON 상태 : 1 읽음 저장된데이터 = 0 ( 부동게이트가채워진상태 ) 경우 N- 채널축소 ( 그림 6-13(b)) 매우적은전류가흘러트랜지스터는 OFF 상태 : 0 읽음 34
셀읽기의동작원리 35 35
플래시메모리의셀배열조직 36 NOR 형플래시메모리 메모리셀배열 (memory cell array) 이 NMOS 트랜지스터들의병렬접속으로구성 ( 그림 6-14(a)) : 전원 (Vcc) 이비트라인 (BL) 을통하여모든트랜지스터들의드레인으로직접공급되며, 트랜지스터들의소스는접지 (GND) 로접속 각트랜지스터의독립적스위칭동작가능 ( 셀단위액세스가능 ) NAND 형플래시메모리 메모리셀배열이 NMOS 트랜지스터들의직렬접속으로구성 ( 그림 6-14(b)) : 전원 (Vcc) 이첫번째트랜지스터의드레인으로만접속되고, 소스가다음트랜지스터의드레인으로접속되며, 마지막트랜지스터의소스만접지 트랜지스터의독립적스위칭동작불가능 36
NOR 형플래시메모리의읽기동작원리 37 셀배열의트랜지스터 (TR) 에 0 이저장된상태에서해당단어선 (WL) 으로 Vg=+5V 인가 : (TR: OFF) BL = +5V 유지 셀배열의어느 TR( 들 ) 에든 1 이저장된상태에서 Vg = +5V 인가 : (TR: ON) BL = 0V NOR 연산 (BL=0V) 감지증폭기 (sensor amp) 의스위칭동작에의해, 최종출력 = 1, [(BL=+5V) 0 출력 ] 셀 ( 비트 ) 단위읽기가능 6-37
NAND 형플래시메모리의읽기동작원리 1 저장상태에서, (TR: ON) 을위한문턱전압 (Vth) = -3V 38 0 저장상태에서는 Vth = +1V 초기상태 : 모든 WL(Vg)=+5V (TR=ON) 어느한셀의읽기 : 해당 Vg = 0V 인가 1 이저장된상태라면, Vg > Vth : (TR=ON) BL=0V [ 1 ] 0 이저장된상태라면, Vg < Vth : (TR=OFF) BL=+5V [ 0 ] NAND 연산 [ 최종출력 ] 은센서증폭기에의해반전 6-38
NOR 형및 NAND 형플래시의비교 NOR 형 39 셀 ( 비트 ) 단위읽기 / 쓰기가능 : 프로그램코드저장, 작은데이터수시인출및변경응용에적합 셀당접속선의수 = 3 개 낮은저장밀도 ( 칩당저장용량감소 ) 주요용도 : PC-BIOS 저장장치, PDA / 스마트폰 OS 저장장치, 등 NAND 형 셀 ( 비트 ) 단위읽기 / 쓰기불가능 셀당접속선의수 = 1 개 높은저장밀도 : 대용량저장장치로적합 주요용도 : 백업저장장치, SSD, 등 39
내부조직및특성 (NAND 형플래시메모리 ) 40 블록 (block) 들로구성되며, 각블록은다수의페이지 (page) 들로구성 페이지크기 : 2Kbyte, 4Kbyte, 16Kbyte, 64Kbyte, 등 [ 비교 ] 디스크 : 읽기 / 쓰기 / 전송의기본단위인섹터 = 512Kbyte 읽기, 쓰기및전송 : 페이지단위 삭제 : 블록단위 40
내부조직 ( 계속 ) 41 [ 예 ] 1Gbit 플래시메모리의내부조직 페이지 : x 방향으로 2048 개의셀들로구성되고, z 방향으로 8 개씩의셀로이루어짐 16 Kbits (2 Kbyte) 블록 : 64 개의페이지들로구성 1 Mbit(128 Kbyte) 메모리모듈 : 1024 개의블록들이 y 방향으로쌓여이루어짐 전체용량 = 1 Gbit (128 Mbyte) 41
1Gbit NAND 플래시메모리의내부조직 42 42
43 읽기동작 페이지선택해독기 (page select decoder) 의한출력이 2048 개셀들의게이트들로인가 ( 페이지선택 ) z 방향의 8 개배열들에대하여동시에수행 (byte 단위 ) 해당페이지의모든데이터 (2048 x 8 비트 ) 가인출되어페이지레지스터 (page register) 로적재된후, 버스를통하여 CPU 로전송 페이지단위로수행 바이트단위동작이가능한 NOR 형에비해읽기시간이더길어짐 쓰기동작도동일한방법 ( 반대순서 ) 으로이루어짐 43
44 칩의용량 {(2048 x 8 비트 ) x 64 페이지 } x 1024 블록 = 1Gbit = 128Mbyte 오류검출및정정을위한 ECC(error correction code) 추가시, 칩당 64byte ECC 정보가데이터와함께저장됨 페이지당 (2K+64)byte, 블록당 (128K+4K)byte 저장 내부조직유형 블록당페이지수 : 32 개, 64 개, 128 개, 등 페이지크기 : 2Kbyte, 4Kbyte, 16Kbyte, 64Kbyte, 등 액세스및전송의기본단위인페이지의크기가일정하지않고, 하드디스크의섹터크기와도다르며, 삭제는블록단위로만가능 44
SLC, MLC 및 TLC 45 부동게이트로들어가는전자들의수를조정하여각셀에저장되는상태의수를증가 SLC(single-level cell): 두가지상태를가지는셀들로이루어진플래시메모리칩 ( 셀당한비트씩저장 ) MLC(multi-level cell): 셀의상태를 4 가지 (00,01,10,11) 로구분 ( 2 비트씩저장 ) 저장용량 : 4 배증가 45
TLC(triple-level cell): 셀의상태를 8 가지 (000, 001, 010, 011, 100, 101,110,111) 로구분 (3 비트씩저장 ) 저장용량 : 8 배증가 46 MLC 및 TLC 의문제점 전자수조정을위한세밀한작업필요 데이터구분의어려움으로인한액세스속도저하 오류발생빈도증가 수명단축 46
47 47
6.3.2 SSD(Solid-State Drive) 48 기계적장치가포함된하드디스크드라이브 (HDD) 를대체하기위해개발된대용량비휘발성반도체저장장치 구성요소 : 저장밀도가높은 NAND 형플래시메모리 다수의플래시메모리들을배열로구성하여패키징 장점 : 높은안정성및신뢰도 결점 : 저장용량대비가격이 HDD 에비해다소높음 48
사례 : Intel SSD DC S3700 계열제품의 PCB 전면 49 49
SSD 의내부조직 플래시메모리칩 50 PCB 앞면과뒷면에각각 8 개씩장착 인터리빙방식으로데이터분산저장, 병렬입출력채널구성 동시액세스및병렬데이터전송지원 SSD 제어기 (controller) 데이터저장과인출, 칩관리, 주소변환등과같은핵심적기능수행 펌웨어수준의프로그램을수행하는프로세서로구현 DRAM: 컴퓨터와플래시메모리사이의데이터버퍼 외부인터페이스 : SATA, PCIe 등을이용한직렬전송 50
FTL(Flash Translation Layer) 51 기존의파일시스템과 OS 가 HDD 와같은방법으로 SSD 를사용할수있도록지원해주는미들웨어 플래시메모리의블록과페이지를논리적으로 HDD 의섹터와같은구조로변환 SSD 제어기가수행 51
52 FTL 은페이지주소와섹터주소간의매핑 (mapping) 기능외에도, SSD 의성능향상을위하여아래의기능들을수행 마모평준화 (wear leveling) 쓰레기수집 (garbage collection) 초과대비공간 (over-provisioning; 오버 - 프로비저닝 ) 52
마모평준화 (wear leveling) 53 필요성 플래시메모리의셀수명 ( 재기록반복횟수 : program/erase cycle) 한계 MLC 및 TLC 에서그문제는더욱심각 삭제및쓰기동작들이일부블록이나페이지들에집중될경우, 전체 SSD 수명단축 해결책 : 마모평준화 모든페이지들을고르게사용하도록위치조정 각페이지의사용횟수를기록하여쓰기동작시참고 기록횟수가적은페이지우선사용 53
쓰레기수집 (garbage collection) 54 필요성 삭제동작은블록단위로만가능 페이지수정시, 마모평준화정책에따라다른위치의페이지에새로운내용을쓰고, 원래페이지는삭제불가 해결책 수정되었지만삭제되지않은페이지 : 쓰레기 (garbage) 로표시 쓰레기로표시된페이지가많이축적된블록을한꺼번에삭제 : 쓰레기수집 54
초과대비공간 (over-provisioning; 오버 - 프로비저닝 ) 55 필요성 마모평준화의효율을높이기위해서는 ( 수정된페이지와쓰레기페이지의일시적중복저장을위한 ) 추가적저장공간필요 해결책 SSD 내부에여분의저장공간제공 사례 Intel DC 3500 SSD : 120 GByte + 8 GByte( 초과대비공간 ) 삼성전자 840 계열의 MZ-7TD250B SSD : 250 GByte + 6 GByte( 초과대비공간 ) 55