과목명 : 컴퓨터 구조(Computer Organization & Architecture)
수업일자 : 2022년 11월 03일 (목)
< 외부 기억 장치(External memory) chapter list>
(A) 자기 디스크
- 자기적 읽기 쓰기 매커니즘
- 데이터 조직과 형식화
- 물리적 특성들
- 디스크 성능 파리미터
(B) RAID
- RAID Level 0
- RAID Level 1
- RAID Level 2
- RAID Level 3
- RAID Level 4
- RAID Level 5
- RAID Level 6
(C) 광 기억장치
(D) 자기 테이프
1. RAID(Redundant Array of Independent Disks)
1-1. RAID의 개발 배경
(1) RAID(Redundant Array of Independent Disks)는 프로세서(CPU)의 속도와 상대적으로 느린 디스크 드라이브 사이의 속도 차이를 개선하기 위해 제안되었습니다.
- 대용량의 디스크 드라이브를 여러 개의 소용량 드라이브들로 교체합니다.
- 데이터를 여러 개의 디스크들로부터 동시에 액세스할 수 있도록 분산시켰습니다.
1-2. RAID의 특징
(1) 독립적으로 병렬 동작하는 디스크의 배열 형태입니다.
- 여러 개의 디스크가 존재하면 I/O가 요구가 원하는 데이터가 서로 다른 디스크 상에 존재하는 경우에는 병렬로 처리 가능합니다.
(2) 여러 개의 디스크들을 사용하여 데이터를 조직화, 신뢰도 향상을 위해 여분(Redundancy)의 디스크를 활용합니다.
(3) 신뢰도 저하를 방지하기 위해, 저장된 패리티 정보(Parity information)를 이용하여 손실된 정보를 복구할 수 있습니다.
1-3. RAID의 특성
(1) RAID는 운영체제에 의해 하나의 논리적 드라이브로 보여지는 물리적 디스크 드라이브들의 집합입니다.
(2) 데이터는 스트라이핑(Striping)이라는 방법으로 배열을 이루고 있는 물리적인 디스크 드라이브들에 분산됩니다.
(3) 여분의 디스크 용량은 디스크 오류 발생 시, 데이터 복구를 보장하기 위한(신뢰도 향상 목적) 패리티 정보를 저장하는데 사용됩니다.
1-4. RAID 0 (Block-level striping)
(1) 여분의 디스크가 존재하지 않습니다.
(2) 데이터가 사용 가능한 모든 디스크들에 나누어 저장됩니다.
- 하나의 논리적 디스크에 저장되어 있는 것처럼 보여집니다.
- 논리적으로 연속적인 스트립(Strip)의 집합을 스트라이프(Stripe)라고 부르며 스트립은 물리적인 블록 또는 섹터가 될 수 있습니다.
- 스트립은 배열 내 연속적으로 배치된 디스크들에 의해 라운드 로빈 방식으로 저장됩니다.
(3) RAID 0의 장점
- 하나의 I/O 요구가 여러 개의 연속적인 논리 스트립으로 구성될 경우 n개의 스트립이 병렬로 처리될 수 있어 속도 향상을 기대할 수 있습니다.
1-5. RAID Level 1 (Mirrored disks)
(1) 모든 데이터들을 여분(Redundancy)의 디스크에 복사하여 저장합니다. (Mirrored disks 방식)
(2) 데이터 스트라이핑을 사용하며 논리적 스트립이 두 개의 물리 디스크로 사상됩니다.
(3) 읽기(Read) 방법 : 두 개의 물리 디스크에서 접근 시간이 짧은 것
(4) 쓰기(Write) 방법 : 두 개의 물리 디스크에 동시에 기록
(5) 오류 복구가 간단하나 가격이 비싸다는 단점이 존재합니다.
1-6. RAID 2 (Bit-level striping)
(1) 병렬 액세스 기법을 사용(RAID 3과 동일)하는 RAID 방식입니다.
- 각각 I/O 요구 처리에 모든 디스크들이 참여
- 동기화(Synchronization) : 디스크 헤드는 언제나 디스크 상의 동일한 위치에 있습니다.
(2) 비트 단위 인터리빙(Interleaving) 방식
(3) 오류 정정 코드(Error correction code) : 각 데이터 디스크의 대응되는 비트들에 대하여 계산
(4) 코드 비트(해밍 코드 규칙) :
(5) 디스크 오류가 빈번한 환경에서 자주 사용됩니다.
- 각 디스크 간의 높은 신뢰성이 보장된다면 RAID 2는 비교적 지나친 구성에 해당될 수 있습니다.
1-7. RAID 3 (Byte-level striping)
(1) RAID 2와 유사한 방식입니다.
(2) 디스크 배열이 아무리 크더라도, 한 개의 여분 디스크만 사용합니다.
(3) 동일한 위치에 있는 비트들에 대하여 패리티 비트를 사용합니다.
(4) 오류 발생 시 데이터의 재구성 방식
- 한 드라이브에 결함 발생 → 패리티 드라이브 액세스 진행
- 남아있는 다른 장치들을 이용하여 데이터 재구성 진행
(5) 높은 데이터 전송률에 적합하고, 빈번한 I/O 요구에 불리한 RAID 방식입니다.
(6) 오류가 발생한 경우
- 오류 발생 시, 추가 볼륨에서 패리티 비트와 각 볼륨의 스트립 디스크에 남아있는 다른 데이터 정보를 사용하여 결함이 발생한 데이터를 복구하게 됩니다.
- i번째 비트에 대한 패리티 비트 계산
- 데이터 볼륨 4의 D4(i)에서 오류가 발생하면 다음과 같이 D4(i)를 재구성합니다.
- 이러한 오류 복구 방식은 RAID Level 3 ~ Level 6까지 사용되고 있습니다.
1-8. RAID 4 (Block-level striping)
(1) 독립적인 액세스 기법을 사용(RAID 5~6도 동일한 방식)하는 RAID 방식입니다.
- 각 디스크가 독립적으로 작동하며, 독립적인 I/O 요구들이 병렬로 처리됩니다.
(2) 높은 I/O 요구율을 필요로 할 때 적합하고, 높은 데이터 전송률을 요구할 땐 불리합니다.
(3) 패리티 비트
- 비트 단위 패리티 스트립은 각 데이터 디스크 상의 대응되는 스트립에 대하여 계산됩니다.
- 패리티 비트들은 패리티 디스크의 대응되는 스트립에 저장됩니다.
(4) RAID Level 4의 검사 디스크 수정
- 이를 통해 모든 쓰기 동작은 패리티 디스크를 포함하게 되며 병목 현상이 발생하게 됩니다.
1-9. RAID 5 (Block-level striping)
(1) RAID 4와 유사한 RAID 방식입니다.
(2) 패리티 스트립이 모든 디스크에 분산되어 저장됩니다.
(3) 패리티 배치 방법은 라운드-로빈 방식입니다.
(4) RAID 4에서 나타나는 잠재적인 I/O 병목 현상(Bottleneck)을 피할 수 있게 됩니다.
(5) 주로 네트워크 서버에서 사용합니다.
1-10. RAID 6 (Block-level striping)
(1) 두 가지 서로 다른 패리티 계산이 수행되어, 서로 다른 디스크들의 별도 블록에 저장되는 RAID 방식입니다.
- N + 2개의 디스크들로 구성됩니다.
- P, Q : 데이터 검사 알고리즘
(2) 극히 높은 데이터 가용성을 제공합니다.
- 2개의 디스크가 고장나더라도 복구가 가능합니다.
(3) 매 쓰기 동작마다 두 개의 패리티 블록을 갱신해야 합니다.
- 이러한 이유로 RAID 5보다 전체 쓰기 성능이 30% 저하됩니다.
2. 광 기억장치(Optical memory disk)
2-1. 광 기억장치의 정의
- 광 매체에 데이터를 저장하고 검색하기 위해 레이저를 사용하는 기억 장치를 의미합니다.
2-2. CD-ROM
(1) 오디오 CD에서 유래했으며 680 MByte의 용량을 가지고 있습니다.
(2) 알루미늄과 같은 고반사 물질로 코팅된 폴리카보네이트(Polycarbonate)입니다.
(3) 매우 작은 피트(Microscopic pits)로 저장되며 레이저 반사로 읽습니다.
(4) 등선 속도(Constant linear velocity, CLV) 방식을 이용합니다.
- 안쪽, 바깥쪽의 섹터 길이가 동일합니다.
- 저장된 데이터의 읽기 속도는 동일하고, 중심부의 회전 속도가 바깥쪽의 회전 속도보다 더 빠릅니다.
- 바깥쪽의 트랙 용량이 중심부 트랙 용량보다 더 큽니다.
(5) CD-ROM의 블록 형식
- SYNC : 블록의 시작 부분
- Header
Mode 0 = Blank data field
Mode 1 = 2048 Byte data + Error detection
Mode 2 = 2336 Byte data
- DATA : 사용자의 데이터
(6) CD-ROM의 장점, 단점
- 장점 : 대용량, 대량 복제에 유리, 제거가 가능한 기억 장치
- 단점 : 느린 편에 속하며 읽기만 가능
2-3. CD-R
(1) CD-R의 경우 최초 제작 시, 비어있는 디스크 판으로 제작되고 사용자는 해당 CD-R에 한 번만 데이터를 기록하고 더 이상의 기록이나 수정은 불가합니다.
(2) 읽기에 제한이 없습니다.
(3) WORM(Write-Once Read-Many) CD라고도 부릅니다.
(4) CD-R의 디스크 표면의 트랙에 해당하는 부분에 열을 가하면 태워져 없어지는 염료 성질을 가진 물질로 구성됩니다.
- 한 번 태워진 부분은 복구가 불가하므로 한 번만 기록할 수 있습니다.
(5) CD-R에서 데이터를 쓰는 과정
- 저장될 데이터가 0인 경우, 레이저로 열을 발생시켜 염료층을 태운 후 해당 피트 부분들을 융해합니다. (1인 경우 피트를 생성하지 않습니다.)
- 읽기 동작은 강도가 낮은 레이저 빛을 이용하여 반사 명암에 따라 데이터를 검출합니다.
2-4. CD-RW (CD-Rewritable)
(1) 여러 번 데이터를 지우고 쓸 수 있는 기억 장치입니다.
(2) 대부분의 CD-ROM 드라이브와 호환됩니다.
(3) 위상 변경(Phase change)
- 혼합물을 가열하여 액체 상태를 만들고 냉각하는 방식에 따라 0과 1을 기록합니다.
- 비결정 상태(0) : 가열 후 급속히 냉각되며, 분자들이 임의로 배치되어 빛을 반사하기 어렵습니다.
- 결정 상태(1) : 가열 후 서서히 냉각, 빛을 반사하는 매끄러운 표면이 생기며 분자 배열이 규칙적입니다.
(4) 물질의 성질이 비영구적이므로 500,000~1,000,000번의 쓰기 제한이 있습니다.
2-5. DVD (Digital Versatile Disk)
(1) 다매체로 활용할 수 있는 "디지털 다기능 디스크(Digital Versatile Disk)"를 의미합니다.
(2) CD와 같이 레이저 광선을 이용하여 데이터를 기록합니다.
(3) CD용보다 파장이 짧은 레이저를 사용하여 피트 간격이 높아졌고, 기존 CD 용량의 7배에 해당하는 저장 용량을 보유하고 있습니다.
(4) 다중 계층 구조
- 단면 구조 : 4.7 GB
- 단면 2층 구조 : 8.5 GB
- 양면 2층 구조 : 17 GB
(5) 종류
- DVD-R : 한 번만 쓸 수 있으며 무한히 읽기 동작이 가능
- DVD-RW (DVD-RAM) : 여러 번 쓰고 지우기가 가능
2-6. 고화질 광 디스크(High definition optical disks)
(1) HD 비디오용으로 설계되었습니다.
(2) DVD보다 훨씬 큰 용량을 가지고 있습니다.
- DVD보다 더 짧은 파장의 레이저를 사용합니다. (Blue-violet range)
- 이를 통해 피트가 매우 작습니다.
(3) HD-DVD : 단층 기준 15 GB
(4) Blue-ray
- 데이터 층을 레이저와 근접시켰으며 이를 통해 초점이 가까워지고 찌그러짐이 줄어들어 피트와 트랙이 매우 작아지게 되었습니다.
- 단층 기준 25 GB을 저장할 수 있습니다.
- 종류 : Read only(BD-ROM), Recordable once(BR-R), Re-recordable(BR-RE)
- 아래 그림은 광 기억장치의 특성을 나타내는 그림입니다.
3. 자기 테이프(Magnetic tape)
3-1. 자기 테이프
- 자기 테이프는 플라스틱 테이프의 겉에 산화철 등의 자성 재료를 바른 테이프입니다.
3-2. 테이프 드라이브
- 순차적 액세스 장치입니다.
- 테이프는 읽기 또는 쓰기 동작 중에만 움직입니다.
- 기억 장치 중에서 가장 가격이 저렴하고 속도도 가장 느립니다.
- 주로 백업용으로 사용합니다.
3-3. LTO(Linear tape-open)
- 가장 널리 사용되는 테이프 기술로, 카트리지 시스템입니다.
< 입력/출력(Input/Output) chapter list>
(A) 외부 장치들
(B) I/O 모듈(Module)
(C) I/O 동작 기법
- 프로그램 I/O
- 인터럽트 구동 I/O
- 직접 기억장치 액세스(DMA)
(D) I/O 채널과 프로세서
4. 외부 장치와 입출력 모듈(I/O Module)
4-1. 주변 장치들이 시스템 버스에 직접적으로 연결될 수 없는 이유
(1) 주변 장치들의 종류가 매우 다양하며, 운용 방식이 모두 다르기 때문입니다.
(2) 전송 속도의 불일치
- 주 기억장치 또는 프로세서의 데이터 전송률이 기타 주변 장치의 데이터 전송률보다 압도적으로 높습니다.
(3) 각기 다른 데이터 형식 및 단어의 길이를 보유하고 있기 때문입니다.
4-2. 입출력 모듈(I/O Module)
(1) 입출력 모듈은 프로세서, 주 기억장치와 더불어 컴퓨터 시스템의 주요 구성요소입니다.
(2) 주변 장치를 시스템 버스에 연결하고, 주변 장치와 버스 사이의 통신이 가능합니다.
(3) 주요 기능
- 시스템 버스를 통한 CPU와 주 기억장치 간의 인터페이스
- 데이터 링크를 통한 하나 이상의 주변 장치들과의 인터페이스
4-3. 외부 장치들
(1) 주변 장치(Peripheral)의 종류
- 인간이 읽을 수 있는 장치 : 스크린, 프린터, 키보드
- 기계가 읽을 수 있는 장치 : 센서, 구동장치(Actuator)
- 통신 장치 : Modem, NIC(Network Interface Card)
(2) I/O 모듈과 인터페이스
(a) 제어 신호(Control signal)
- INPUT / READ
- OUTPUT / WRITE
- 상태 보고
- 제어 기능 수행
(b) 상태 신호(Status signal)
- READY / NOT-READY
(c) 데이터
입력 : I/O 모듈 ←
출력 : I/O 모듈 →
4-4. I/O Module
(1) I/O 모듈의 기능 - 타이밍과 제어
- 내부 자원과 외부 장치들 사이에 통신 흐름을 조정합니다.
- 메모리, 시스템 버스 등의 내부 자원은 데이터 I/O 등을 포함한 수많은 동작에 의해 공유됩니다.
(2) 외부 장치에서 CPU로 데이터를 전송할 때의 제어 예시
(a) CPU가 I/O 모듈에게 그 모듈에 부착된 장치의 상태를 검사하도록 요청
(b) I/O 모듈이 해당 장치의 상태를 보고
(c) 그 장치가 작동 가능하고, 전송 가능한 상태라면 CPU는 I/O 모듈에게 데이터 전송을 요청
(d) I/O 모듈은 외부 장치로부터 데이터를 송신받는다.
(e) 데이터가 I/O 모듈로부터 CPU로 전송된다.
(3) I/O 모듈의 기능 - 프로세서와 통신
- 명령 해독 : 프로세서로부터 수신한 명령어를 해독합니다.
- 데이터 교환 : 프로세서 ↔ I/O 모듈
- 상태 보고 : BUSY 또는 READY
- 주소 인식 : I/O 모듈이 제어하는 주변 장치의 주소를 인식합니다.
(4) I/O 모듈의 기능 - 장치들과의 통신
- 명령, 상태 정보 및 데이터를 전송하는 역할을 합니다.
(5) I/O 모듈의 기능 - 데이터 버퍼링
- 주 기억장치 / CPU와 주변 장치 간의 데이터 전송률의 불일치를 해소시킵니다.
- 데이터는 I/O 모듈 내에 일시적으로 저장되었다가 적절한 속도로 주변 장치로 전송됩니다.
(6) I/O 모듈의 기능 - 오류 검출
- 오류 검출 코드는 패리티 비트를 주로 사용합니다.
(7) I/O 모듈의 조직 체계
- 시스템 버스를 통해 다른 부분들과 연결됩니다.
- 상태 / 제어 레지스터 - 현재 상태를 제공 / CPU로부터 제어 정보를 수신합니다.
- 제어 선(Control lines) : 명령 하달합니다.(CPU → I/O 모듈)
- 주소 선(Address lines) : 자신에 제어하는 외부 장치의 주소를 인식하며 주소를 발생시킵니다.
(8) I/O 모듈의 기능 - 프로세서(CPU)의 대리인 역할 수행
(a) 외부 장치의 속성을 프로세서에 감춥니다.
- I/O 모듈이 외부 장치의 타이밍, 데이터 형식 및 전기적인 세부 장치를 모두 처리합니다.
- 이를 통해 프로세서는 단순히 읽기, 쓰기, 파일 열기, 닫기 등의 명령만으로 외부 장치를 제어하게 됩니다.
(b) 하나 또는 다수의 외부 장치를 지원합니다.
(c) 운영체제 지원 : Unix는 모든 외부 장치를 파일로 인식하여 처리합니다.
(9) I/O 모듈의 기능 - 향상된 I/O 모듈
(a) I/O Channel = (I/O Processor)
- 프로세서를 위해 대부분의 처리 부담을 담당해주는 I/O 모듈이며 주로 메인 프레임입니다.
(b) I/O 모듈이 I/O 제어기, 장치 제어기의 역할을 수행합니다. (주로 마이크로 컴퓨터에서 사용)
- 학부에서 수강했던 전공 수업 내용을 정리하는 포스팅입니다.
- 내용 중에서 오타 또는 잘못된 내용이 있을 시 지적해 주시기 바랍니다.
'전공 수업 > 컴퓨터 구조(Computer Architecture)' 카테고리의 다른 글
[12주 차] - 컴퓨터 산술(Computer arithmetic) (2) | 2022.12.20 |
---|---|
[11주 차] - 프로그램 I/O, 인터럽트-구동 I/O, 직접 기억 장치 액세스(DMA) (0) | 2022.11.24 |
[8주 차] - 내부 기억 장치 (2), 외부 기억 장치 (1) (0) | 2022.11.11 |
[7주 차] - 캐시(Cache) 메모리 (2), 내부 기억 장치 (1) (0) | 2022.10.31 |
[6주 차] - 메모리(데이터) 참조 지역성, 캐시(Cache) 메모리 (1) (0) | 2022.10.18 |
댓글