메모리 구조

tycode·2021년 5월 21일
0

C.S (Computer Science)

목록 보기
26/40
post-custom-banner

메모리 계층

기억장치는 CPU에 의하여 시행될 프로그램이 저장되는 곳으로 이는 주기억장치(Main memory unit)와 보조기억장치(Auxiliary memory unit) 그리고 캐쉬메모리(Cache memory)로 분류된다.

  • 주기억장치

    • 마더 보드(motherboard)에 장착됨 - RAM(Random Access Memory)
      • 비교적 대용량, 고속의 속도를 지님, 휘발성 성질을 지님
    • ROM(Read Only Memory)도 주기억장치의 일종
  • 캐쉬 메모리(Cache memory, buffer)

    • 주기억장치 접근 시간 > 프로세스 논리회로 -> MMS & CPU 배치함
    • 현재 진행되고 있는 프로그램의 일부 또는 사용빈도가 높은 임시 데이터 저장
  • 보조기억장치

    • 비교적 저속, 대용량의 자료 보관이 가능하다.
    • 보조기억장치내 자료는 필요한 경우 주기억장치로 옮겨져야(loading)한다.
    • Magnetic Tape, USB, SD card - 필요한 파일의 생성 및 삭제가 가능
    • Magnetic drum, disk - back up 저장 장치
    • 코어(core) 메모리, magnetic bubble, CCD(Charge Coupled Device)등의 대용량 저장 장치
  • 왜 메모리를 계층별로 나누어서 사용할까? - 입출력의 경제성 때문

주기억장치

  • RAM(Random Access Memory)

    • SRAM(Static RAM)
      • 전원이 연결되어 있는 동안 정보 유지(Flip-Flop으로 구성)
      • 사용이 편리하고, 읽기와 쓰기 시간이 짧다(cache기억장치)
    • DRAM(Dynamic RAM)
      • 주기적으로 재충전 해주어야 정보가 유지
      • 전력 소비가 적고, 하나의 칩으로 대량의 정볼르 저장할 수 있따.
    • ROM(Read Only Memory)
      • 부트 스트랩 로더(bootstrap loader)
      • 전원의 on/off와 무관하게 작동되기 때문에 불변하는 상수의 표 등이 저장
  • RAM의 동작 원리

보고기억장치

  • 주요 특성
    • 접근 시간: 메모리내의 기억장소에 도달하여 그 내용을 얻는데 요구되는 평균 시간을 의미한다.
      • 시크 타임(Seek time): read/write head가 지정된 기억장소에 도달하는데 소요되는 시간
      • 트랜스퍼 파임(Transfer time): 추출된 데이터를 장치내 또는 장치밖 필요한 곳으로 전송하는데 요구되는 시간
      • 레코드(record): 일반적으로 데이터가 기록되는 단위, 시크 타임을 체크하게 되는 기분(일정한 길이의 수치 또는 문자 집합)
      • 전송률: 장치가 레코드의 시작점에 위치한 다음 단위 시간 당(보통 분, minute)전송할 수 있는 문자나 위드의 수

Associative 메모리

  • 내용에 의해 접근하는 메모리 장치를 이르는 용어
    • 메모리 장치(memoryh device)란 자료(data)의 저장(store)과 접근(access)을 용이하게 하기 위해 필요로 하는 장치.
    • 결국 이상의 필요에 따라 CPU는 필요한 자료를 얻기 위해 메모리 장치에 탐색(search)을 하게 될 수 밖에 없고
    • 좀 더 효율적 탐색이 가능할 수 있는 저장 공간의 필요에 의해 만들어진 저장 형태를 우리는 이렇게 명명(또는 내용 지정 메모리(content addressable memory, CAM))한다.
  • 이 방식은 데이터의 내용으로 병렬 탐색을 하기에 접학하도록 구성되어 있으며, 탐색은 전체 워드 도는 한 위드 내의 일부반을 가지고 실행될 수 있다.
  • 각 셀이 저장 능력뿐 아니라 외부의 인자와 내용을 비교하기 위한 논리회로를 갖고 있기 때문에 RAM보다 값이 비싸다. 따라서 탐색시간이 필히 짧아야 하고 그 것이 중요한 이슈일 경우 활용된다.

Cache 메모리

  • 참조의 국한성(locality of reference)

    • 캐시메모리
      • 이와 같이 참조의 국한성을 이용하여 속도는 빠르고(거의 CPU처리속도와 동일), 조그마한 메모리(고 비용이 기 때문에)를 이용하여 프로그램을 수행 시킬 경우 평균 메모리 접근시간의 단축과 그에 따른 전체 프로그램 수행 시간의 절약을 담보할 수 있을 것이다.
    • 프로그램이 수행되는 동안 메모리 참조는 국한된 영역에서만 이루어지는 경향이 있음을 확인할 수 있다.
      • 프로그램 루프와 서브루틴의 빈번한 활용
      • 순차적 프로그램의 실행
      • 데이터 메모리 참조에서도 동일한 경향이 있음을 확인할 수 있다.
        • 데이블-룩업(look-up) 절차
        • 공통 메모리와 배열 사용 예
  • 동작과 성능

    • cache의 기본(CPU가 메모리에 접근할 필요가 있을 경우)
      • cache를 체크
      • 워드가 cache에서 발견되면(hit) 읽어 들이고 아닐 경우(miss) 주기억장치에 접근한다.
      • 이 워드를 포함한 블록(1~16워드, 환경에 따라 다름)을 cache로 전송한다.
    • 힛트 율(hit ratio)
      • (100 x 0.9) + (1000 x 0.1) = 200
  • Cache메모리의 매핑 프로세스

    • 효율적 메모리 관리를 위해서는 효과적으로 cache를 구성하는 방법이 현존하는 메모리 관리 방법 중 최고의 방법임은 이론의 여지가 없다
    • 이에는 다음과 같은 방법들이 존재한다
      • associative mapping
      • direct mapping
      • set-associative mapping

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

post-custom-banner

0개의 댓글