CS/컴퓨터구조

[컴퓨터구조] 주기억장치에 대해 알아보자

s_omi 2024. 11. 22. 09:46
728x90
반응형
SMALL

주기억장치

프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 한다.

메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다.

컴퓨터가 빠르게 작동하기 위해서는 메모리 속 명령어와 데이터의 위치는 정돈되어 있어야 하며 메모리에 저장된 값의 위치는 주소로 알 수 있다.

실행 중인 프로그램들은 메모리에 저장되는데 메모리는 전원이 꺼지면 저장된 내용이 날아간다.

 

 

1. 종류

1.1 RAM

전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날아가기 때문에 RAM에는 실행할 프로그램의 명령어와 데이터가 저장된다.

CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 복사하여 저장한 후 실행한다.

RAM 용량이 크면 보조기억장치에서 많은 프로그램들을 동시에 빠르게 실행하는 데 유리할 뿐 비례하여 빨라지진 않는다.

  • 종류
    • DRAM: 시간이 지나면 저장된 데이터가 점차 사라지는 RAM
      • 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장)해야 한다.
      • 속도는 느리지만 소비 전력이 비교적 낮고, 저렴하고, 집적도가 높기 때문에 대용량으로 설계하기 용이하다.
    • SRAM: 시간이 지나도 저장된 데이터가 사라지지 않는 RAM
      • 대용량으로 만들어질 필요는 없지만 속도가 빨라야하는 저장 장치인 캐시 메모리에서 사용된다.
      • 속도가 빠르나 소비 전력이 크고, 비싸고, 집적도가 낮다.
    • SDRAM: 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM
    • SDR SDRAM: 한 클럭당 하나씩 데이터를 주고받을 수 있는 SDRAM
    • DDR SDRAM: 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
      • 대역폭: 데이터를 주고받는 길의 너비
      • SDR SDRAM에 비해 DDR SDRAM은 두 배의 대역폭으로 한 클럭당 두 번씩 CPU와 데이터를 주고받을 수 있다. → DDR SDRAM의 전송 속도가 두 배 가량 빠르다.

1.2 ROM

전원을 꺼도 저장된 명령어와 데이터가 날아가지 않는 비휘발성 메모리이다.

읽기만 가능하고 프로그램이 작동하는데 필요한 명령어와 데이터가 저장된다.

  • 종류
    • PROM: 사용자가 한 번 데이터를 기록이 가능한 ROM
    • EPROM: 자외선으로 데이터를 지우고 다시 기록이 가능한 ROM
    • EEPROM: 전기적으로 데이터를 지우고 다시 기록이 가능한 ROM

 

2. 메모리의 주소 공간

2.1 물리 주소

메모리가 사용하며 정보가 실제로 저장된 하드웨어상의 주소를 말한다.

베이스 레지스터 값 ≤ 프로그램의 물리 주소 범위 < 베이스 레지스터 값 + 한계 레지스터 값

 

2.2 논리 주소

CPU와 실행 중인 프로그램이 사용하며 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소를 말한다.

(물리 주소의 입장에서) 프로그램의 시작점으로부터 떨어진 거리를 말한다.

 

논리 주소 -> 물리 주소

 

2.3 메모리 관리 장치 (MMU)

CPU가 메모리와 상호작용하려면 논리 주소와 물리 주소 간의 변환이 필요한데 이 일을 메모리 관리 장치가 한다.

CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다.

CPU와 주소 버스 사이에 위치한다.

 

  • 베이스 레지스터: 프로그램의 첫 물리 주소를 저장
  • 한계 레지스터: 논리 주소의 최대 크기를 저장
  •  예시
    • 현재 베이스 레지스터에 15000이 저장
    • CPU가 발생시킨 논리 주소가 100번지
    • 논리 주소는 15100번지(100+15000)인 물리 주소로 변환
    • 물리 주소 15000번지부터 적재된 프로그램 A의 논리주소 100번지에 접근

CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은 지를 항상 검사한다.

만약 CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트(트랩)를 발생시켜 실행을 중단한다.

MMU

 

728x90
반응형
LIST