과목명 : 컴퓨터 구조(Computer Organization & Architecture)
수업일자 : 2022년 10월 20일 (목)
< 내부 기억 장치(Internal memory) chapter list >
(A) 반도체 기억장치(Semiconductor main memory)
(B) 오류 정정
(C) 향상된 DRAM의 조직
- SDRAM
- DDR SDRAM
- DDR2
- DDR3
1. 오류 정정(Error Correction)
- 반도체 기억장치는 오류가 발생할 수 있습니다.
- 반도체 기억장치의 시스템 오류는 다음과 같이 두 가지로 구분됩니다.
1-1. 하드 장애(Hard failure)
- 영구적인 물리적 결함으로, 기억 소자가 안정되게 데이터를 저장할 수 없는 상태입니다.
- 0 또는 1로 고정되어 있거나 0과 1 사이의 값을 불규칙하게 가지고 있는 상태입니다.
- 하드 장애의 원인은 열악한 환경에서의 남용, 제조상 결함, 또는 마모(wear)로 인해 발생합니다.
1-2. 소프트 오류(Soft error)
- 기억장치의 내용이 일시적으로 변경되는 가벼운 오류입니다.
- 소프트 오류의 원인은 전원 공급장치의 결함 또는 알파 입자가 원인입니다.
1-3. 오류 검출 및 정정 시스템(Error detection and correction system)
- 이러한 하드 및 소프트 오류는 모두 바람직하지 못하므로 현 시점에서 제조되는 기억장치들은 오류를 검출하고 정정하기 위한 논리(회로)를 포함하고 있습니다.
- 오류 정정 코드 f를 이용하여 오류를 검출하고 정정합니다.
(1) 저장될 단어 : M Bit 단어
(2) 오류 정정 코드 : K Bit 단어
(3) 실제 저장되는 단어 : M + K Bit
- 우선 데이터가 기억장치에 저장될 때 함수 f로 표시되는 계산 과정이 데이터에 적용되어 하나의 코드를 생성하며 그 코드가 데이터와 함께 저장됩니다.
- 저장될 데이터가 M Bit 단어이고 생성되는 코드가 K Bit라면 실제 저장되는 단어의 크기는 M + K Bit입니다.
- 이전에 저장된 데이터가 읽혀질 때 해당 코드는 오류를 탐지하고 정정하는데 사용되며 M개의 데이터 비트들로부터 새로운 K개의 코드 비트들이 발생되어 인출된 코드 비트들과 비교됩니다.
- 따라서 비교 결과는 아래의 3가지 결과 중 하나입니다.
(1) 오류 미검출 → 인출된 데이터 비트들을 그대로 내보낸다.
(2) 오류 검출, 정정 가능 → 데이터 비트, 오류 정정 비트들이 정정기(Corrector)로 되돌아가며 정정된 M개의 Bit들이 생성되어 보내진다.
(3) 오류 검출, 정정 불가능 → 해당 조건이 보고된다.
1-4. 오류 정정 코드 - 해밍 코드(Hamming code)
(1) 해밍 코드(Hamming code)
- 오류 정정 코드들 중에서 가장 간단한 형태의 오류 정정 코드입니다.
- 아래 그림은 4비트 단어에 대해 해밍 오류 정정 코드가 사용된 벤 다이어그램입니다.
(a) 내부의 구획에 네 개의 데이터 비트를 배정
(b) 원 내부의 1의 개수가 짝수가 되도록 나머지 영역을 할당
(c) 오류 발생
(d) 오류 확인 후 정정
(2) 신드롬 단어(Syndrome word)
- 비교 논리(Comparison logic)의 입력으로 두 개의 K Bit 값을 Exclusive-OR 연산을 수행한 결과값을 말합니다.
(3) 코드의 길이
1-5. 8 Bit 데이터 단어에 대한 해밍 코드
- 검사 비트(Check Bit)의 위치 : 2의 제곱수가 되는 위치
- 각 Check Bit는 그 비트의 위치 번호와 같은 위치의 값이 1인 위치에 있는 데이터 비트에 대해 동작합니다.
Ex 1) 8 Bit 데이터 00111001가 메모리에서 00111101으로 변경되었을 때 신드롬 단어를 구하고 오류를 정정하라.
1-6. 단일 오류 정정, 이중 - 오류 검출(Single-error-correcting, Double-error-detection, SEC-DED)
- 일반적으로 반도체 기억 장치는 SEC-DED 코드를 갖추고 있으며 해당 코드는 두 개의 오류가 동시에 발생할 경우 검출 가능합니다.
- 아래 예시는 4비트 단어에 대한 SEC-DEC 코드입니다.
(c) 2개의 오류 발생
(d) 검사 과정은 잘못 진행
(e) 정정하는 과정에서 추가적인 3번째 오류 발생
(f) 전체 1의 개수가 짝수가 되도록 체크 → 오류 검출
2. 향상된 DRAM의 조직
2-1. SDRAM(동기식 DRAM, Synchronous DRAM)
- 외부 클록 신호와 동기화되어 대기 상태 없이 프로세서와 데이터를 교환하는 기억 장치입니다.
(1) 기존 DRAM의 문제점
- 프로세서는 주소와 제어 신호를 기억 장치로 보내어 R/W 데이터 지정
- 액세스 시간만큼 지연된 후 DRAM에 R/W을 수행
→ 해당 시간 동안 프로세서는 대기 상태에 빠지며 시스템 성능이 떨어집니다.
(2) 버스트 모드 채택
- 한 번의 액세스 동작 때, 여러 바이트들을 연속적으로 전송하는 방식입니다.
- 주소 준비 시간과 첫 번째 액세스 후의 행/열 선의 선충전(Precharge) 시간을 제거하기 위한 목적입니다.
- 버스트 모드에서는 일련의 데이터 비트들이 첫 번째 비트가 액세스된 후, 클록에 맞추어 신속히 출력됩니다.
(3) 모드 레지스터를 사용
- 버스트의 길이를 지정합니다.
- 읽기 요구와 데이터 전송 시작 사이의 지연을 조정합니다.
(4) 큰 데이터 블록을 연속적으로 전송할 때 성능이 가장 좋습니다.
- 워드 프로세싱, 스프레드 시트 및 멀티미디어 등
2-2. DDR SDRAM(Double-Data-Rate SDRAM)
- I/O 데이터율을 제한한다는 결점을 해결하기 위한 SDRAM의 새로운 버전입니다.
- 데이터 클록을 사이클 당, 2번씩 보낼 수 있습니다(상승/하강 에지)
- 전송속도 : 200 ~ 600 MHz
(1) DDR2
- RAM 칩의 동작 주파수를 높인 방식입니다. → 전송속도 : 400 ~ 1066 MHz
- 선인출 버퍼를 칩 당, 2비트 → 4비트로 확대하였습니다.
→ 선인출 버퍼 : RAM 칩에 들어있는 기억 장치 캐시이며 RAM 칩으로 하여금 비트들이 가능한 신속하게 데이터 베이스에 놓이도록 미리 위치시켜주는 역할을 합니다.
(2) DDR3
- 선인출 버퍼의 크기를 8비트로 증가시킨 방식입니다. → 전송속도 : 800 ~ 1600 MHz
3. 외부 기억 장치 - 자기 디스크(Magnetic disk)
3-1 자기 디스크(Magnetic disk)
- 자기 디스크는, 자성 물질로 코딩된 비자성 물질로 만들어진 원형 평판을 의미합니다.
3-2. 자기 디스크의 특징
- 원형 평판은 1장 또는 6~12장까지 겹쳐서 사용합니다.
- 원형 평판의 면에는 트랙(Track)이 있으며, 헤드가 트랙에서 데이터를 읽거나 기록합니다.
- 순차적 또는 직접 액세스가 가능합니다.
- 속도가 빠르고 용량이 큽니다.
3-3. 자기 디스크 기억장치의 구조
(1) 주요 구성 요소
- 원형 평판(Circular platter), 헤드(Head), 디스크 팔(Disk arm), 구동 장치(Actuator)가 있습니다.
3-4. 자기적 읽기 및 쓰기 매커니즘
(1) 데이터는 헤드(Head)라고 불리는 전도성 코일(Conducting coil)을 통하여 디스크에 기록되고 검색됩니다.
(2) 쓰기 매커니즘
- 코일에 전기가 흐르면 자기장 발생 (전기적 펄스) → 전류 발생 → 자성 패턴의 기록
(3) 읽기 매커니즘
- 자기장 내에서 코일이 이동하면 코일에 전류가 흐름 → 자화 방향 MR 센서 감지 → 저항 변화 → 전압 변화 발생
3-5. 데이터 조직과 형식화
(1) 트랙(Track)
- 트랙의 폭은 헤더의 폭과 같습니다.
- 표면 위에는 수천 개의 트랙이 존재합니다.
(2) 섹터(Sector)
- 디스크로 돌아오거나 나가는 데이터의 전송 단위입니다.
- 각 트랙에는 수백 개의 섹터들이 존재합니다.
- 가변 또는 고정적입니다.(대부분의 최근 시스템은 고정-길이 섹터를 사용합니다)
(3) 갭(Gap)
- 인접한 트랙을 분리하는 역할입니다.
- 헤드가 잘못 정렬되거나, 자기장의 간섭으로 인하여 발생하는 오류를 방지 또는 최소화합니다.
3-6. 디스크 배치 방식
(1) 등각 속도 방식(Constant angular velocity : CAV)
- 일정한 속도로 회전하는 상태에서 트랙의 위치에 관계없이, 데이터를 동일한 비율로 액세스하는 방식입니다.
- 디스크의 중심부 가까이 위치한 비트와 바깥쪽 비트들의 이동 속도 차이 보완을 위해서 바깥으로 갈수록 저장된 정보의 비트들 간격을 증가시킵니다.
- 장점 : 디스크를 읽고 쓰는 장치가 간단합니다.
- 단점 : 바깥쪽 트랙에 저장될 수 있는 데이터 양과, 안쪽 트랙에 저장될 수 있는 데이터 양이 같습니다.
→ 디스크 저장 용량 = Max [가장 안쪽 트랙에서 얻을 수 있는 기록 밀도]
(2) 다중 영역 기록
- 여러 개의 영역(전형적으로 16개)으로 나누어집니다.
- 각 영역 내에서는 트랙당, 비트 수가 일정합니다.
- 중심부로부터 멀리 떨어진 영역일수록 중심부에 더 가까운 영역들보다 더 많은 비트들을 저장합니다.
3-7. 디스크 형식화(Disk Formatting)
- 디스크 포맷(Format) 시, 디스크에 제어 정보(ID)를 기록합니다.
- ID 필드 : 특정 섹터를 지정하기 위해서 사용되는 식별자입니다.
- SYNCH 바이트 : 필드의 시작점을 구별하는 특수한 비트 패턴
- GAP 필드 : ID 필드와 데이터 필드를 구분
3-8. 디스크 시스템의 물리적인 특성들
1. Head Motion |
Fixed head(One per track) |
Movable head(one per surface) |
2. Disk Portability |
Nonremovable disk |
Removable disk |
3. Sides |
Single sided |
Double sided |
4, Platters |
Single platter |
Multiple platter |
5. Head Mechanism |
Contact(floppy) |
Fixed gap |
Aerodynamic gap(Winchester) |
(1) 고정 헤드, 이동 가능 헤드
- 고정 헤드 : 헤드가 고정되어 있습니다. (트랙 수 = 헤드 수, 헤드가 이동하지 않습니다.)
- 이동 헤드 : 원형 평판 위를 이동하면서 읽고 쓰기가 가능합니다. (하나의 헤드로 여러 개의 트랙에 읽기/쓰기를 할 수 있습니다.)
(2) 다중 평판 디스크
3-9. 디스크 성능 파라미터
(1) 탐색 시간(Seek time)
- 이동-헤드 시스템에서 헤드가 원하는 트랙까지 이동하는데 걸린 시간을 의미합니다.
(2) 회전 지연(Rotational latency)
- 섹터가 헤드에 도달할 때까지 걸리는 시간을 의미합니다.
- ex) 20, 000rpm인 경우 한 바퀴 회전 시 3ms가 소요됩니다.
(3) 접근 시간(Access time) = 탐색 시간 + 회전 지연
(4) 전송 시간(Transfer time) - 데이터 전송을 위해 걸리는 시간입니다.
- 디스크로, 혹은 디스크로의 전송 시간은 디스크의 회전 속도에 따라 달라집니다.
4. 평균 접근(액세스) 시간 비교
평균 탐색시간이 4ms, 회전 속도가 15,000rpm, 섹터 길이가 512 byte, 트랙 당 섹터 개수가 500개, 2500개의 섹터들로 구성된 전체 1.28 Mbyte 크기의 파일을 읽으려고 한다면 전송에 걸리는 전체 시간을 구하여라.
Solution)
Case 1 : 순차적 조직(인접한 트랙에 파일이 저장된다.)
- 2500 Sector / 500 Sector = 5 Tracks
- 첫 번째 트랙을 읽는데 걸리는 시간을 구한다.
- 탐색시간(4ms) + 회전지연(2ms) + 500 Sector read(4ms) = 10ms
- 다른 트랙에 저장된 섹터들의 읽기 시간을 구한다
- 탐색시간(0) + 회전지연(2ms) + 500 Sector read(4ms) = 6ms
- 전체 시간 = 10ms + 6ms * 4 트랙 = 34ms = 0.034s
Case 2 : 임의 접근(액세스할 섹터들이 전체 디스크에 분산됨.)
- 각 섹터 액세스 시간
- 평균 탐색(4ms) + 회전지연(2ms) + 한 섹터 읽기(0.008ms) = 6.008ms
- 전체 시간 = 6.008ms * 2500 = 15,020ms = 15.02s
- 학부에서 수강했던 전공 수업 내용을 정리하는 포스팅입니다.
- 내용 중에서 오타 또는 잘못된 내용이 있을 시 지적해 주시기 바랍니다.
'전공 수업 > 컴퓨터 구조(Computer Architecture)' 카테고리의 다른 글
[11주 차] - 프로그램 I/O, 인터럽트-구동 I/O, 직접 기억 장치 액세스(DMA) (0) | 2022.11.24 |
---|---|
[10주 차] - 외부 기억 장치 (2), I/O Module (0) | 2022.11.15 |
[7주 차] - 캐시(Cache) 메모리 (2), 내부 기억 장치 (1) (0) | 2022.10.31 |
[6주 차] - 메모리(데이터) 참조 지역성, 캐시(Cache) 메모리 (1) (0) | 2022.10.18 |
[5주 차] - 컴퓨터의 기능과 상호 연결 (2), 기억 장치 시스템의 특성 (0) | 2022.10.02 |
댓글