본문 바로가기
전공 수업/컴퓨터 구조(Computer Architecture)

[8주 차] - 내부 기억 장치 (2), 외부 기억 장치 (1)

by TwoJun 2022. 11. 11.

  과목명 : 컴퓨터 구조(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비트 단어에 대해 해밍 오류 정정 코드가 사용된 벤 다이어그램입니다.

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 코드입니다.

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) 큰 데이터 블록을 연속적으로 전송할 때 성능이 가장 좋습니다.

- 워드 프로세싱, 스프레드 시트 및 멀티미디어 등

SDRAM의 읽기 타이밍(버스트 길이 = 4, CAS 지연 = 2)

 

 

 

 

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

DDR SDRAM의 동작 타이밍

 

 

 

 

 

3. 외부 기억 장치 - 자기 디스크(Magnetic disk)

3-1 자기 디스크(Magnetic disk)

-  자기 디스크는, 자성 물질로 코딩된 비자성 물질로 만들어진 원형 평판을 의미합니다.

 

 

 

3-2. 자기 디스크의 특징

- 원형 평판은 1장 또는 6~12장까지 겹쳐서 사용합니다.

 

- 원형 평판의 면에는 트랙(Track)이 있으며, 헤드가 트랙에서 데이터를 읽거나 기록합니다.

 

- 순차적 또는 직접 액세스가 가능합니다.

 

- 속도가 빠르고 용량이 큽니다.

 

 

 

 

3-3. 자기 디스크 기억장치의 구조

자기 디스크(Magnetic disk)의 구조

(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. 디스크 성능 파라미터

Timing of a Disk I/O Transfer

(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

 

 

 

 

 

 

 

- 학부에서 수강했던 전공 수업 내용을 정리하는 포스팅입니다.

- 내용 중에서 오타 또는 잘못된 내용이 있을 시 지적해 주시기 바랍니다.

댓글