컴퓨터구조

컴퓨터구조_09.기억장치

강용민 2021. 12. 15. 06:37

기억장치는 중앙처리장치와 입출력장치와 더불어 컴퓨터의 3대 구성 요소이다.

컴퓨터의 주기억장치는 주로 전원이 커져 있을 때 실행하는 프로그램과 데이터를 저장하고, 보조기억장치는 영구적으로 프로그램과 데이터를 저장한다.

 

기억장치 특성

기억장치 종류

기억장치는 데이터를 저장한다. 데이터를 저장한다는 의미에서 컴퓨터의 기억장치는 중앙처리장치 내부의 레지스터, 중앙처리장치와 직접 버스로 연결되는 주기억장치, 그리고 입출력 장치로 연결되는 보조기억장치로 구성되어있다.

컴퓨터 내부에는 주기억장치가 있으며, 주기억장치는 반도체 소자인 ROM(Read Only Memory)과 RAM(Random Access Memory)로 만들어져있다.

  • ROM
    • 저장된 데이터를 읽기만 가능하고, 지우거나 다른 값으로 갱신할 수 없는 기억 소자이다.
    • 전원이 제거되더라도 ROM에 저장된 데이터는 그대로 유지된다.
    • 부트로더(bootloader)를 저장하는 용도로 사용
  • RAM
    • 저장된 데이터를 읽고 수정이 가능하다.
    • 전원이 제거되면 RAM의 내용이 모두 지워진다.
    • 보조기억장치에 있는 프로그램을 RAM으로 복사한 후 RAM에서 실행

물리적 특성

기억장치를 만드는 소자에 의하여 기억장치의 물리적 특성이 결정된다.

  • 휘발성 : 기억장치에서 전원을 제거하면 저장된 내용이 없어지는 특성
  • 비휘발성 : 전원을 제거하더라도 내용이 그대로 유지
  • 삭제 가능 : 한 번 기록된 내용을 지우고 다른 값으로 갱신 가능
  • 삭제 불가능 : 한 번 기록된 내용을 지우거나 갱신할 수 없음

용량 및 전송 단위

기억장치 용량은 기억장치가 저장할 수 있는 데이터의 비트 수를 표현한다.

주기억장치는 바이트 단위로 구성되어있으며 중앙처리장치는 주기억장치와 단어 단위로 데이터를 액세스한다.

단어의 크기는 레지스터의 비트 수, 데이터 버스의 폭과 일치한다.

보조기억장치의 용량도 바이트 단위로 표시하며 컴퓨터와 오프라인으로 연결되어 있으므로 중앙처리장치가 필요할 때 즉시 보조기억장치의 데이터를 액세스 할 수 없고, 주기억장치에 많은 양의 데이터를 모아 두었다가 한 번에 보조기억장치로 전송하고, 보조기억장치에서 많은 양의 데이터를 읽어 주기억장치로 저장해두고 필요한 데이터를 가져온다.

 

액세스 방법

기억장치에 값을 쓰거나 기억장치에서 데이터를 읽는 동작을 액세스한다고 말한다.

기억장치를 구성하는 소자의 구조적 특징에 따라 액세스 방법이 달라진다.

  • 순차 액세스
    • 데이터가 일렬로 저장되어 있어서, 데이터를 처음부터 차례대로 액세스한다. 따라서 필요한 데이터를 액세스하기 위해서는 처음부터 시작하여 해당 위치에 도달할 때까지 넘겨야한다.
  • 직접 액세스
    • 기억장치의 임의 위치를 직접 액세스할 수 있다.
  • 임의 액세스
    • 기억장치의 임의 위치를 직접액세스할 수 있다는 점이 직접 액세스와 같으나, 임의 위치를 액세스하는 시간이 같다는 점이 직접 액세스와 다르다.
    • 각 기억장치마다 고유의 주소가 할당외어 있으며, 주소에 의하여 데이터를 액세스한다.
  • 연관 액세스
    • 특수한 기억장치인 연관 기억장치를 액세스하는 방법이다.
    • 연관 기억장치는 키 필드와 데이터필드로 구성된 테이블 구조를 갖고있다.
    • 키필드의 내용에 의하여 데이터 액세스가 가능하므로 CAM(Content Addressable Memoery)라고도 부른다.

성능

기억장치의 성능은 액세스 속도로 표현된다.

  • 액세스 시간
    • 기억장치에게 주소와 읽기 또는 쓰기 제어신호가 제공된 후, 데이터가 읽혀지거나 쓰여지기 시작할 때까지의 시간이다.
  • 사이클 시간
    • 기억장치의 데이터를 연속적으로 액세스할 때 한 번 데이터를 액세스하는데 소요되는 시간이다.
    • 액세스 시간에 데이터를 처리하는 데 필요한 약간의 여유를 더한 시간이며, 결과적으로 액세스시간보다 약간 길다.
  • 전송률
    • 1초에 액세스할 수 있는 데이터의 양을 의미한다.
  • 대역 폭
    • 대역 폭이 넓으면 통신 속도가 빠르고, 대역 폭이 좁ㄷ으면 통신 속도가 느리다.

기억장치 계층

컴퓨터는 기억장치를 빠르게 액세스하면서도 많은 용량을 사용하기 위하여, 기억장치를 다음과 같이 계층적으로 구성하여 운영한다.

위로 올라갈수록 중앙처리장치의 사용 빈도가 증가하고, 액세스 시간이 짧고, 용량이 적고, 비트당 가격이 비싸다.

  • 레지스터
  • 캐시 기억장치
  • 주기억장치
  • 보조기억장치

당장 처리해야 할 데이터를 레지스터로 옮겨놓고 처리하며, 주기억장치를 액세스하려고 기억장치 주소를 생성하면, 개키 제어기는 해당 주소를 포함하는 여러 개 또는 수십 개의 데이터를 한 번에 캐시 기억장치로 옮겨 놓고, 그곳에서 데이터를 액세스하도록 만든다.

보조기억장치를 사용하는 주된 목적은 프로그램과 데이터를 영구적으로 보관하는 것이다. 그 외에도 컴퓨터는 보조기억장치의 일부를 가상 기억장치로 활용하기도 한다.


반도체 기억장치

반도체 기억장치는 RAM과 ROM이 있으며, 각각의 기능에 따라 용도가 다르다.

종류와 특성

분류 종류 사용 방법 휘발성 비고 프로그램 기타
RAM SRAM 읽기/쓰기 휘발성 이진 셀은 플립플럽으로 만들어져 있어 전기가 공급되는 한 안정적으로 동작
DRAM 이신 셀은 크기가 작은 캐패시터로 만들어져 있기 때문에, 한 번 충전해 놓은 전하가 시간이 지나면 방전됨
ROM Mask ROM 읽기 비휘발성 ROM에 적재될 0과 1로 구성된 특정한 값의 조합 형태를 마스크 패턴이라한다.
PROM 읽기 생산될 때 그 안의 데이터가 모두 1로 채워져 있다.
장치를 사용하여 데이터 일부를 0으로 바꿀 수 있다.
EPROM 읽기 자외선을 이용해 초기화가 가능하다
EEPROM 읽기/쓰기 전기신호로 그 내용을 단어 또는 블록 단위를 지울 수 있다.
Flash Memory 읽기/쓰기 전기신호로 블록 단위로 지울 수 있으며, 여러 개의 블록으로, 또 한 개의 블록은 다시 여러 개의 페이지로 구성되어있다.

반도체 기억장치의 구조

반도체 기억장치 소자들은 이진 셀의 소재 및 동작 원리에 따라 내부 구조와 외부 인터페이스가 서로 다르다.

반도체 기억장치 소자의 외부 인터페이스와 내부 구조에 대해 설명한다.

구분 용도 반도체 기억장치 소자 인터페이스
주기억장치 읽기 전용 ROM, PROM, EPROM, NOR Flash 주소, 데이터, 읽기,프로그램
읽기/ 쓰기 SRAM, DRAM 주소, 데이터, 읽기, 쓰기
보조기억장치 읽기/ 쓰기 EEPROM, NAND Flash 입출력

기억장치 모듈 설계

한 개의 기억장치 모듈은 용량이 한정되어 있고 비트 폭도 8비트 또는 16비트이다.

이에 반하여 중앙처리장치는 기억장치 모듈이 제공하는 비트 폭보다 더 큰 단어와 더 큰 용량으로 만들어진 기억장치를 사용하는 경우가 많다.

 

기억장치 비트 폭 확장

기억장치 용량 확장


캐시 기억장치

캐시는 용량은 적지만 액세스 속도가 빠른 기억장치로써, 중앙처리장치와 주기억장치 사이에 존재한다.

중앙처리장치는 현재 수행하고 있는 프로그램고 데이터 일부를 주기억장치에서 캐시로 옮겨놓고, 캐시에서 빠르게 처리한다.

 

참조의 지역성

프로세서가 프로그램을 수행할 때 기억장치의 특정 부분을 집중적으로 참조하는 경향이 있는 특성을 말한다.

  • 공간적 참조의 지역성 : 인접한 영역의 명령어 또는 데이터가 다음 번에도 계속 참조 될 가능성이 큰 것을 의미한다.
  • 시간적 참조의 지역성 : 한 번 사용된 프로그램이 일정한 시간 내에 다시 참조될 가능성이 크다는 의미이다.

평균 액세스 시간

t(a) = t(c) + (1-h)*t(m)   //t(a) : 평균 액세스 시간, t(c) : 캐시 액세스 속도, t(m) : 기억장치 평균 액세스 속도

 

캐시 기억장치 구조

주기억장치와 캐시 간에는 여러 개의 단어로 구성된 블록 단위로 데이터를 전송한다.

주기억장치의 데이터 전송 단위를 블록이라고 부르고, 캐시의 전송 단위를 라인 또는 슬롯이라고 부른다.

 

 

 

가상 기억장치

'컴퓨터구조' 카테고리의 다른 글

컴퓨터구조_08.제어장치  (0) 2021.12.15
컴퓨터구조_07.중앙처리장치 설계  (0) 2021.12.14
컴퓨터구조_05.연산기  (0) 2021.10.06
컴퓨터구조_04.중앙처리장치  (1) 2021.10.05