메모리 계층
기억장치는 CPU에 의하여 시행될 프로그램이 저장되는 곳으로 이는 주기억장치(Main memory unit)와 보조기억장치(Auxiliary memory unit) 그리고 캐쉬메모리(Cache memory)로 분류된다.
주기억장치
보고기억장치
- 주요 특성
- 접근 시간: 메모리내의 기억장소에 도달하여 그 내용을 얻는데 요구되는 평균 시간을 의미한다.
- 시크 타임(Seek time): read/write head가 지정된 기억장소에 도달하는데 소요되는 시간
- 트랜스퍼 파임(Transfer time): 추출된 데이터를 장치내 또는 장치밖 필요한 곳으로 전송하는데 요구되는 시간
- 레코드(record): 일반적으로 데이터가 기록되는 단위, 시크 타임을 체크하게 되는 기분(일정한 길이의 수치 또는 문자 집합)
- 전송률: 장치가 레코드의 시작점에 위치한 다음 단위 시간 당(보통 분, minute)전송할 수 있는 문자나 위드의 수
Associative 메모리
- 내용에 의해 접근하는 메모리 장치를 이르는 용어
- 메모리 장치(memoryh device)란 자료(data)의 저장(store)과 접근(access)을 용이하게 하기 위해 필요로 하는 장치.
- 결국 이상의 필요에 따라 CPU는 필요한 자료를 얻기 위해 메모리 장치에 탐색(search)을 하게 될 수 밖에 없고
- 좀 더 효율적 탐색이 가능할 수 있는 저장 공간의 필요에 의해 만들어진 저장 형태를 우리는 이렇게 명명(또는 내용 지정 메모리(content addressable memory, CAM))한다.
- 이 방식은 데이터의 내용으로 병렬 탐색을 하기에 접학하도록 구성되어 있으며, 탐색은 전체 워드 도는 한 위드 내의 일부반을 가지고 실행될 수 있다.
- 각 셀이 저장 능력뿐 아니라 외부의 인자와 내용을 비교하기 위한 논리회로를 갖고 있기 때문에 RAM보다 값이 비싸다. 따라서 탐색시간이 필히 짧아야 하고 그 것이 중요한 이슈일 경우 활용된다.
Cache 메모리
Cache메모리의 매핑 프로세스
설정 가정:
- 주기억장치: 12bit 32K워드를 저장
- 캐시메모리: 512 words/주어진 시간 내 저장
- CPU는 main/cache memory모두 통신 가능
Associative mapping
- 가장 빠르고 융통성 있는 cache구조
- CPU의 15bit 주소는 인자 레지스터에 놓여지며, associative memory내 주소와 같은 12bit의 데이터를 읽어 CPU로 보낸다.
- Miss인 경우 CPU는 주기억장치에서 해당 잘를 찾아 cache로 옮긴다.
- 만약 cache에 여유 공간이 있다면 그 공간에 주소와 데이터를 저장한다.
- 하지만 cache가 꽉차 있을 경우 기존 cache의 주소와 데이터 쌍이 새로운 쌍으로 대체된다.
Direct mapping
- RAM에 구현한 cache memory
- 15bit(CPU address) = 6bit(Tag field) + 9bit(index field)
- Index field - cache의 색인 주소로 활용
- Tag field - cache에서 동일한 index로 충돌이 발생 시 활용
- 동일한 인덱스의 다른 태그를 보유한 두 개 이상의 워드가 반복하여 접근할 경우 히트율이 ㅎ녀저히 떨어질 가능성이 높다. - locality reference
Set - associative mapping
- Cache의 각 워드는 같은 인덱스 주소 아래 두개 이상의 메모리 워드를 저장할 수 있게 함으로써 직접 매핑의 단점을 보완한 논리.
- 위의 그림은 한 인덱스 안에 두개의 태그를 가지는 경우의 cache를 구현한 예.
- cache메모리의 크기
- 512 x 36 (= 2 x (6 + 12 ))
- 큰 규모의 cache는 히트율을 높일 수 있으나 좀 더 복잡한 비교 논리회로를 필요로 함.
- 기존 데이터의 대체 알고리즘이 복잡해 진다.
가상 메모리
Virtual memory vs Cache memory
메모리 관리
메모리 관리 시스템
- 메모리의 광역화(가상 메모리 + 캐쉬 메모리)와 멀티 프로그램의 발달로 인한 시스템내 상호 간섭도 시스템 기능 저하요인의 중요한 부분이다
- 프로그램과 프로그램사이의 데이터 흐름, 선후 데이터의 활용, 사용 메모리의 양 조절, 다른 프로그램의 흐름에 영향을 끼치지 못하게 하는 제어 등의 역할을 담당
- 메모리 내의 여러 프로그램을 관리하 H/W와 S/W절차의 집합체로 메모리 관리 소프트웨어는 운영체제의 일부이다.
메모리 관리 하드웨어
- 논리 메모리 참조를 물리 메모리 주소로 변환하는 동적 저장장소 재배치를 위한 기능
- 메모리내에서 서로 다른 사용자가 하나의 프로그램을 같이 사용하기 위한 편의
- 사용자 간의 허락되지 않은 접근을 방지하고 사용자가 OS의 기능을 변경하지 못하도록 하는 정보의 보호
주기억장치
DDR
- SDRM(Synchronous Dynamic Random Access Memory) -> DRAM의 발전된 형태, 동기식 DRAM(제어장치 입력 = 클럭 펄스(clock pulse) 주기(frequency))이라고 할 수 있다
- SDR(Single Data Rate) SDRAM -> 클럭 펄스의 변이(0↔1)시 단 한 차례의 정보 전송만을 허용하는 구조
- DDR SDRAM(Double Date Rate SDRAM)
- 클럭 신호의 상승 및 하강(0 -> 1 -> 0)에서 데이터를 전송(double pumping)함으로서 더 큰 대역폭을 달성하는 DDR이다.
- 이는 클럭 주파수를 증가시키지 않고도 전송 속도를 두 배로 향상시킬 수 있다.
- DDR의 전송 속도는 266~400 MT/s, 제품 DDR266, DDR400
- DDR2 SDRAM(Double Data Rate Two SDRAM)
- 향상된 버스 신호에 의해 DDR2의 free batch buffer는 4bit임.
- 내부 클럭 속도(133~200MHz)는 DDR과 같지만 DDR2의 전송 속도는 향상된 I/O 벗느 신호로 인해 533~800 MT/s에 도달 할 수 있음
- DDR2 533 및 DDR2 800 메모리 타입이 출시됨
- DDR3 SDRAM(Double Data Rate Three SDRAM)
- DDR2 모듈에 비해 40%의 전력 소비로 낮은 작동 전류&전압 제공
- 1.5V < 1.8V(DDR2) < 2.5V(DDR)
- ASR(Automatic Self-Refreh)및 SRT(Self-Refresh Temperature) 등 기능의 추가
- DDR4 SDRAM(Double Data Rate Fourth SDRAM)
- 낮은 작동 전압(1.2V)과 높은 전송 속도(2133~3200 MT/s)를 제공
- DBI(Data Bus Inversion), CRC(Cyclic Redundancy Check)및 CA parity등의 기능 추가로 신호 무결성을 향상시킴, 데이터 전송/액세스의 안정성을 향상
보조기억장치
SSD(Solid State Drive)
- 고형 상태 보조기억장치, 고체상태(Solid-State)와 소체(트랜지스터)를 뜻한다.
- 출력장치인 액정디스플레이 vs AMOLED디스플레이와 비슷한 사례, 기능면에서 보자면 SSD와 HDD가 같은 저장매체임이다. HDD는 자기 디스크, SSD는 플래시 메모리로 구성된다. 구동 부(모터)가 없으므로 소음도 대폭으로 감소 그리고 소모 전력이랑 발열 수준도 낮다.
- 회전판이 제거된 컴퓨터를 제로 스핀 시스템이라 한다.
- SSD의 가장 큰 장점은 데이터 입/출력 속도
ㄴ
RAID(Redundant Array of Inexpensive(or Independent) Disks)
- 성능의 향상을 위하여 가격이 저렴하고 크기가 작은 여러개의 하드 디스크들을 묶어 하나의 기억 장치처럼 사용할 수 있게 하는 방식
- 다수의 하드 디스크들은 오류 복구에 대한 정책에 따라 여러가지 방식(0~6레벨)으로 구분된다 다만 상호 계층적은 아니다
- RAID level 0