3 분 소요


  • 현재 포스팅 《 [Computer Structure] 기억장치 》 는 조금 더 세부적인 내용을 다룬다.


▶ 기억장치의 분류

  • 기억장치 엑세스
    • 기억 장치에 어떤 정보를 읽거나 쓰는 동작
  • 엑세스 분류
    • 액세스 방식, 기억장치 재료, 데이터 저장 성질에 따라 분류할 수 있다.


▷ 액세스 방식

① 순차 액세스

  • 방식
    • 원하는 데이터를 찾을 때까지 순차적으로 액세스하는 방식
  • 엑세스 시간
    • 원하는 데이터의 위치에 따라 액세스 시간 판이
  • 예시
    • 자기테이프


② 직접 액세스

  • 방식
    • CD를 읽는 헤드가 엑세스할 위치 근처로 직접 이동한 다음에 순차적으로 검색하여 엑세스하는 방식
  • 예시
    • CD-ROM, DISK


③ 임의 액세스

  • 방식
    • 직접 기억장소를 찾아 액세스하는 방식
  • 엑세스 시간
    • 모든 정보에 대한 액세스 시간이 전부 동일
    • 원하는 정보가 있는 기억장치에 바로 도달할 수 있기 때문
  • 예시
    • 반도체 기억장치


④ 연관 액세스

  • 방식
    • 이미 기억장치에 저장된 특정 비트와 내가 찾고자하는 비트를 비교해서 원하는 정보를 엑세스하는 방식
    • 찾고자 하는 정보에 대한 비교를 동시에 수행(캐시) → 비용↑, 특수한 경우에 사용
  • 예시
    • 캐시 기억장치



▷ 기억장치 재료

① 반도체 기억장치

  • 개념
    • 반도체 물질인 실리콘(Si) 칩을 이용한 기억장치
    • 작은 직접 회로에 많은 양의 데이터를 넣을 수 있어 오늘날 주로 사용한다.


② 자기-표면 기억장치

  • 개념
    • 자화 물질로 코팅된 표면에 정보를 저장하는 기억장치
  • 예시
    • 디스크, 자기 테이프



▷ 데이터 저장 성질

① 휘발성 기억장치

  • 개념
    • 전원 공급 중단 시 내용이 삭제되는 기억장치
  • 예시
    • RAM


② 비휘발성 기억장치

  • 개념
    • 전원 공급 중단에도 내용 기억 가능한 영구 기억장치
  • 예시
    • ROM, 디스크, CD-ROM


③ 삭제 불가능 기억장치

  • 개념
    • 내용 변경이 불가능한 기억장치 (읽기만 가능)
    • 최근엔 ROM의 변형으로 변경할 수 있는 ROM도 존재한다.
  • 예시
    • ROM




▶ 기억장치 성능 결정 요소

▷ 용량

  • 전송 단위
    • CPU가 한 번에 처리 가능한 비트 수
      • 주기억장치 : 단어(Word)단위 (보통 32bit, 64bit, …)
      • 보조저장장치 : 블록(512바이트 혹은 1K바이트)
        • 데이터 버스가 보통 16bit, 32bit이기 때문에 여러 번의 전송동작 필요
  • 주소지정 단위
    • 주소 비트의 수가 A일 때 저장장치 용량(주소지정 단위 수) N과의 관계
      • N = 2 ^ A
    • 예시
      • 주소 비트 수(A)가 32개라면?
      • 2 ^ 32 = N, 2^30은 1GB을 의미 → 총 4GB의 주소 지정 공간을 가짐


▷ 액세스 속도

  • 액세스 시간
    • 주소와 쓰기-읽기 신호가 도착한 순간부터 데이터 액세스가 완료되는 순간까지의 시간
  • 기억장치 사이클 시간
    • 기억장치 사이클 시간 = 액세스 시간 + 데이터 복원 시간
      • 데이터 복원 시간 : 읽기 동작 후에 정보가 파괴되는 저장장치(자기코어)인 경우에 그것을 복원시키는 데 걸리는 시간
      • 반도체, 디스크의 경우 데이터 복원 시간 : 0 (액세스 시간 = 기억장치 사이클 시간)
  • 엑세스 속도 구하기 (참고만 하기)
    • 특징
      • 데이터 전송률로 평가한다.
    • 공식
      • 데이터 전송률 = ( 1 / 액세스 시간 ) * 한 번에 읽혀지는 데이터 비트 수
    • 예시




▶ 계층적 기억장치 시스템

  • 용량과 속도가 빠른 기억장치를 사용할수록 좋지만… 🤑 좋은 기억장치를 사용할 수록 가격이 비쌀 것이다.
  • 따라서 우리는 “기억장치의 성능 대 가격비” 향상을 위해 다양한 종류의 기억장치를 계층적으로 구조화해서 사용한다.


▷ 계층구조

  • 접근 속도가 빠르고 가격이 높은 기억장치 → 접근 속도가 느리고 가격이 낮은 기억장치 순으로 계층 구성
  • 자세한 계층 구조는 《[OS] 기억장치》 를 참고하자!


▷ 지역성 (Locality)

  • 개념

    • 기억장치 액세스가 특정 지역에 집중되는 현상
    • 프로그램이 실행되는 동안에 일반적으로 지역성의 원리에 의하여 첫 번째 계층의 기억장치에 대한 액세스 횟수가 두 번째 계층의 기억장치에 대한 액세스보다 훨씬 더 많다.
    • 지역성 원리를 적용해 첫 계층에 액세스 횟수가 많은 정보를 집중시키면 성능 향상 가능하다.
  • 종류

    종류 설명
    시간적 지역성 최근에 액세스된 프로그램이나 데이터가 가까운 미래에 다시 액세스 될 가능성이 높음
    ( 최근에 불렀던 것 또 부를 확률이 높다. )
    공간적 지역성 기억장치 내에 인접하여 저장되어있는 데이터들이 연속적으로 액세스 될 가능성이 높음
    ( 내가 불렀던 주소번지를 부를 확률이 높다. (2번을 찾았으면 3,4번지 찾을 확률) )
    순차적 지역성 분기(Branch)가 발생하지 않는 한, 명령어들은 기억장치에 저장된 순서대로 인출될 확률이 높음


  • Working Set
    • 특정 시간에 실행되는 프로그램에 지역성이 포함되는 페이지(불러오는 정보)들의 집합
    • CPU가 자주 부르는 첫 번째 계층 안에 지역성이 포함되는 페이지(불러오는 정보)를 놓게 되면, 페이지 부재율(페이지를 찾고 불러오는 시간)을 감소시킬 수 있고, 연산수행에 많은 시간을 쏟을 수 있다! → 효율적 접근 가능




📎참조

  • 『 성결대학교 김자원 교수님 』 - 컴퓨터 구조 (2023)
  • 『 컴퓨터구조(제5판) 』 - 복두 출판사

댓글남기기