반응형
RAM의 특징과 종류
01. RAM의 특징
- 실행할 프로그램의 명령어와 데이터가 저장
- 전원을 끄면 저장된 내용이 사라지는 저장 장치 = 휘발성 저장 장치 -> '실행할 대상'
- <-> 비휘발성 저장장치(하드디스크, CD-ROM, USB..) -> '보관할 대상'
- CPU가 프로그램을 실행하기 위해 보조기억장치 자료를 RAM으로 복사해 저장한 뒤 실행
02. RAM의 용량과 성능
- RAM의 용량이 크다면 보조기억장치에서 실행할 프로그램을 가져오는 작업이 줄어 빠르게 실행
- 반대로 RAM의 용량이 작으면 보조기억장치에서 실행할 프로그램을 가져오는 작업이 늘어 느리게 실행
- 하지만, 일정 수준 이상의 용량은 프로그램 실행 속도가 그에 비례해 증가하지 않음
03. RAM의 종류
(1) DRAM
- Dynamic RAM -> 일반적 메모리 RAM(주기억장치)
- 시간이 지나면 저장된 데이터가 점차 소멸
- 데이터 소멸을 막기 위해 일정 주기로 데이터를 재활성화
- 낮은 소비 전력, 저렴, 높은 집적도
(2) SRAM
- Static RAM -> 캐시 메모리
- 시간이 지나도 저장된 데이터가 사라지지 않음
- 데이터 재활성화 불필요
- 높은 소비 전력, 비쌈, 낮은 집적도, 빠른 속도
(3) SDRAM
- Synchronous Dynamic RAM
- 클럭 신호에 맞춰 동작하며 클럭마다 CPU와 저보를 주고받을 수 있는 DRAM -> 휘발성
(4) DDR SDRAM
- Double Data Rate SDRAM
- 대역폭(data rate)을 넓혀 속도를 빠르게 만든 SDRAM
- SDR SDRAM(Single Data Rate SDRAM) : 한 클럭 당 하나씩 데이터를 주고 받을 수 있는 SDRAM
- DDR2 SDRAM : DDR보다 대역폭이 두 배 넓은 RAM -> SDR SDRAM 보다 4배 빠름
- DDR3 SDRAM(=8xSDR SDRAM), DDR4 SDRAM(=16xSDR SDRAM)
메모리의 주소 공간
01. 물리 주소와 논리 주소
- 메모리에 저장된 정보는 시시때때로 변하기 때문에 CPU와 실행 중인 프로그램이 이를 전부 알고 있을 필요가 없음
- 물리 주소 : 정보가 실제 저장된 하드웨어상의 주소
- 논리 주소 : CPU와 실행 중인 프로그램이 사용하는 주소 -> 0번지 부터 시작
- CPU가 메모리와 상호작용하기 위해 논리 주소와 물리 주소 간의 변환 필요 -> MMU(Memory Management Unit) 이용
- MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더해 논리 주소를 물리 주소로 변환
02. 메모리 보호 기법
- 다른 프로그램의 영역을 침범할 수 있는 명령어로 인해 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호 -> 한계 레지스터 이용
- 한계 레지스터 : 논리 주소의 최대 크기 저장 -> 논리 주소가 한계 레지스터에 저장된 값보다 크면 안됨
- CPU는 메모리에 접근하기 논리 주소가 한계 레지스터보다 작은지를 항상 검사
- 조건 만족하지 못할 시 인터럽트(트랩) 발생시켜 실행 중단
캐시 메모리
01. 저장 장치 계층 구조
- CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느림
- 속다가 빠른 저장 장치는 저장 용량이 작고, 비쌈
- CPU에 얼마나 가까운지가 기준(레지스터, 메모리, 보조기억장치 순으로 가까움)
02. 캐시 메모리
- CPU가 메모리에 접근 빈번
- CPU와 메모리 사이에 위치
- 레지스터보다 용량이 크고, 메모리보다 빠른 SRAM 기반
- 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와 활용
- 캐시 메모리는 CPU(코어)와 가까운 순서대로 계층 구성
- 가까운 순으로 L1, L2, L3 캐시 -> 일반적으로 L1, L2 캐시는 코어 내부, L3 캐시는 코어 외부에 위치
- 메모리 용량 : L1 < L2 < L3
- 속도 : L1 > L2 > L3
- 가격 : L1 < L2 < L3
- 데이터 검색 : L1 -> L2 -> L3
* 분리형 캐시 : 접근 속도를 높이기 위해 명령어만을 저장하는 L1I 캐시와 데이터만을 저장하는 L1D 캐시를 분리하는 경우
03. 참조 지역성 원리
- 캐시 메모리 용량 < 메모리 용량
- 캐시 메모리는 메모리의 일부를 복사하여 저장
- CPU가 사용할 법한 대상을 예측하여 저장
- 실제로 들어맞아 데이터가 활용될 경우를 캐시 히트(Cache hit)라고 함
- 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우를 캐시 미스(Cache miss)라고 함
- 캐시 적중률 = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
- 캐시 메모리는 참조 지역성의 원리에 기반해 메모리로부터 가져올 데이터를 결정
- 참조 지역성의 원리
- CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있음
-> ex) 최근에 접근했던 변수에 다시 접근해 사용할 수 있음
-> 시간 지역성
- CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있음
-> 일반적으로 관련 있는 데이터들은 모여서 저장됨
-> 특정 기능을 수행하기 위해 그에 관련된 데이터가 있는 공간 근처를 접근
-> 공간 지역성
다양한 보조기억장치
01. 하드 디스크
- 자기적인(magnetic) 방식으로 데이터를 저장하는 보조기억장치
- 하드 디스크 구성
- 플래터(platter) : 실질적으로 데이터가 저장되는 곳으로 동그란 원판 -> 수많은 N극과 S극을 저장
- 스핀들(spindle) : 플래터를 회전시키는 구성 요소 -> 분당 회전수 RPM을 이용해 속도 표현
- 헤드(head) : 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소
- 디스크 암(disk arm) : 헤드를 원하는 위치로 이동시키는 장치 - 여러 겹의 플래터를 양면을 사용해 많은 데이터를 저장 -> 플래터 당 2개의 헤드 사용
- 트랙(track) : 플래터를 여러 동심원으로 나누었을 때 그 중 하나의 원
- 섹터(sector) : 트랙을 여러 조각으로 나누었을 때 한 조각 -> 하드 디스크의 가장 작은 전송 단위
- 실린더(cylinder) : 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위
- 연속된 정보는 보통 한 실린더에 기록 -> 디스크 암을 움직이지 않고 데이터에 바로 접근하기 위해
- 탐색 시간(seek time) : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
- 회전 지연(rotational latency) : 헤드가 있는 곳으로 플래터를 히전시키는 시간
- 전송 시간(transfer time) : 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
02. 플래시 메모리
- USB 메모리, SD 카드, SSD 카드
- 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장장치
- 셀(cell) : 플래시 메모리에서 데이터를 저장하는 가장 작은 단위 -> 한 셀에 몇 비트를 저장할 수 있는지가 플래시 메모리 종류 결정
- SLC(Single Level Cell) : 한 셀에 1비트를 저장해 한 셀로 2개의 정보를 표현 -> 빠른 입출력, 긴 수명, 비싼 가격
- MLC(Multiple Level Cell) : 한 셀에 2비트를 저장해 한 셀로 4개의 정보를 표현 -> 다소 느린 속도, 짧은 수명, 저렴한 가격
- TLC(Triple-Level Cell) : 한 셀에 3비트를 저장해 한 셀로 8개의 정보를 표현 -> 매우 느린 속도, 매우 짧은 수명, 매우 저렴한 가격
- 단위 : 셀 < 페이지(page, 보통 읽기와 쓰기의 단위) < 블록(block, 보통 삭제의 단위) < 플레인(plane) < 다이(die)
- 페이지 상태
- Free : 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
- Valid : 이미 유효한 데이터가 저장되어 있는 상태 -> 덮어쓰기 불가
- Invalid : 유효하지 않은 데이터가 저장되어 있는 상태 - 가비지 컬렉션(garbage collection) : 유효한 페이지들만 새로운 블록으로 복사한 후 기존 불록을 삭제해 공간을 정리하는 기능
RAID의 정의와 종류
01. RAID의 정의
- Redundant Array of Independent Disks
- 하드 디스크와 SSD를 사용하는 기술
- 데이터의 안전성 or 높은 성능을 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술
02. RAID의 종류
(1) RAID 0
- 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식
- 저장되는 데이터가 하드 디스크 개수만큼 나뉘어 저장
- 스트라입 : 줄무늬처럼 분산되어 저장된 데이터 -> 저장된 데이터를 동시에 읽고 쓸 수 있기에 속도가 빠름
- 해당 RAID를 구성하는 하드디스크 중 하나라도 문제가 발생한다면 다른 모든 하드 디스크의 정보를 읽을 수 없기에 저장된 정보가 안전하지 않음
(2) RAID 1
- 완전한 복사본을 만드는 방식 = 미러링
- 데이터 스트라이핑이 사용되지만 해당 데이터를 원본과 복사본 두 군데에 씀
- 쓰기 속도가 RAID 0 보다 느림
- 간단한 복구
- 하드 디스크 개수가 한정되었을 때 사용 가능한 용량이 적어지는 단점
(3) RAID 4
- 오류를 검출하고 복구하기 위한 정보(=패리티 비트)를 저장한 장치를 두는 구성 방식
- 패리티를 저장한 장치를 이용해 다른 장치들의 오류를 검출하고 오류가 있다면 복구
- RAID1 보다 적은 하드 디스크 이용
- 새로운 데이터가 저장될 때마다 패리티를 저장하는 디스크를 업데이트하므로 패리티 저장 장치에 병목 현상 발생
(4) RAID 5
- 패리티 정보를 분산하여 저장하는 방식
- 병목 현상 해소
(5) RAID 6
- 서로 다른 두 개의 패리티를 두는 방식
- 매우 안전한 구성
- 새로운 정보 저장 시 패리티를 두 개씩 저장하기에 쓰기 속도가 느림
참고자료
https://en.wikipedia.org/wiki/Standard_RAID_levels
반응형
'STUDY > 컴퓨터구조&운영체제' 카테고리의 다른 글
Week03(CPU의 작동원리&CPU의 성능향상기법) (0) | 2023.04.13 |
---|---|
Week02(데이터&명령어) (0) | 2023.03.29 |
Week01(컴퓨터의 핵심부품) (0) | 2023.03.22 |