1. 메모리 계층의 신뢰성 (Dependability)
신뢰성이 높은 메모리 계층 구조는 데이터 유실 없이 지속적으로 작동해야 한다.
• 빠르고 신뢰할 수 있는 메모리 계층을 설계하려면 **중복성(Redundancy)**을 활용하는 것이 핵심이다.
2. Defining Failure (실패 정의)
시스템은 두 가지 상태를 가진다:
1. Service Accomplishment:
서비스가 정상적으로 제공됨.
2. Service Interruption:
서비스가 사양(specification)과 다르게 작동하거나 중단됨.
Failure and Restoration (실패와 복구):
• Failure: 시스템이 정상에서 비정상으로 전환되는 상태.
• 영구적(permanent): 쉽게 진단 가능.
• 간헐적(intermittent): 진단이 어려움.
• Restoration: 비정상 상태에서 정상 상태로 전환되는 상태.
3. Reliability and Availability (신뢰성 및 가용성)
• Reliability (신뢰성):
특정 시간 동안 지속적으로 서비스를 제공하는 능력.
• 측정 단위: Mean Time To Failure (MTTF).
• Availability (가용성):
시스템이 정상 상태와 비정상 상태를 번갈아 가며 서비스하는 능력.
• 계산식:
Availability = (MTTF) / (MTTF + MTTR)
• MTTR (Mean Time to Repair): 복구 시간.
MTTF vs. AFR (Annual Failure Rate):
• MTTF는 시스템 작동 시간에 초점을 맞추는 반면, AFR은 연간 고장률을 나타냄.
• AFR 계산식:
AFR = 9760hours(1year) / MTTF
예제: 디스크의 MTTF와 AFR 비교
• 디스크의 MTTF = 1,000,000 시간.
• 연간 AFR 계산:
AFR = 8760 / 1,000,000 = 0.876%
• 서버 100,000개, 각 서버에 디스크 2개가 있다면, 연간 고장 디스크 수:
100,000 * 2 * 0.876% = 876 개
4. Fault Tolerance와 신뢰성 향상 기법
가용성을 높이는 세 가지 방법:
1. Fault Avoidance:
• 고장을 예방하기 위한 설계 및 제작 품질 개선.
2. Fault Tolerance:
• 고장 발생 시에도 시스템이 정상적으로 작동하도록 중복성 추가.
• 예: RAID, ECC 메모리.
3. Fault Forecasting:
• 고장을 미리 예측해 사전에 대처.
5. Error Detection and Correction Codes
Parity Bit를 이용한 오류 검출:
• Parity Bit: 데이터의 1 비트 수가 홀수인지 짝수인지를 저장.
• 읽기 시 Parity를 다시 계산하여 저장된 Parity와 비교.
• 제한 사항:
• 한 비트 오류는 감지 가능.
• 두 비트 오류는 감지 불가.
예제: Parity Bit를 이용한 오류 검출
• 데이터 값: 31_{10} = 00011111_2 (1 비트가 5개).
• 짝수 Parity 추가: 31_{10} = 000111111_2.
• MSB(Most Significant Bit)가 반전되면 오류 감지.
• 두 비트 반전 시 오류 감지 불가.
Hamming Code를 이용한 오류 검출 및 수정
• Richard Hamming은 단일 비트 오류를 검출하고 수정하는 코드를 설계.
• Hamming Distance: 두 데이터 비트 패턴 간 다른 비트 수.
• Hamming Distance가 d라면:
• d = 2: 단일 비트 오류 검출 가능.
• d = 3: 단일 비트 오류 검출 및 수정 가능.
Hamming Code 구현 단계:
1. 비트 포지션 지정:
• 데이터와 Parity 비트를 섞어 배치.
• Parity 비트는 2^n 위치(1, 2, 4, 8, …)에 배치.
2. Parity 그룹 생성:
• 각 Parity 비트는 자신이 커버하는 데이터 비트의 Parity를 계산.
예제: Hamming Code
6. SEC/DED (Single Error Correcting, Double Error Detecting)
Hamming Code를 확장하여:
• 단일 비트 오류를 수정하고,
• 두 비트 오류를 검출 가능.
계산: 필요한 Parity Bit 수
2^p >= p + d + 1
• p: Parity 비트 수.
• d: 데이터 비트 수.
예제: d = 8일 때:
• 2^p >= 8 + p + 1 -> p = 4.
7. Advanced Error Correction: Chipkill 및 CRC
1. Chipkill:
• IBM이 개발. 전체 메모리 칩 장애를 복구 가능.
• RAID와 유사한 방식으로 데이터 재구성.
2. Cyclic Redundancy Check (CRC):
• 네트워크 전송에서 다중 비트 오류를 검출.
• 다항식을 사용해 효율적으로 오류를 계산.
'Book > COMPUTER ORGANIZATION AND DESIGN RISC-V' 카테고리의 다른 글
5.7 Virtual Memory (2) | 2024.12.02 |
---|---|
5.6 Virtual Machines (0) | 2024.12.02 |
5.4 Measuring and Improving Cache Performance (1) | 2024.12.02 |
5.3 The Basics of Caches (0) | 2024.11.21 |
5.2 Memory Technologies (0) | 2024.11.20 |