MAR(Memory Adress Register)이 무엇일까?

박승우·2024년 7월 1일

자 예순 일곱번째 키워드인 'MAR'을 알아 보았다.

메모리 관련 시리즈가 끝난 줄 알았지만 예전에 나온 MBR과 연관되는 키워드를 알아보았다.

MAR이 뭐에요?


MAR은 'Memory Adress Register'의 약자로 주된 역할은 CPU가 접근하려는 메모리 주소를 저장하는 것이다. 이 레지스터에 저장된 주소를 통해 CPU는 메모리에서 데이터를 읽거나 쓸 수 있다.

  • 주소 저장: MAR는 현재 접근할 메모리 주소를 저장한다.
  • 주소 전송: 이 저장된 주소는 메모리 주소 버스를 통해 메모리로 전송된다.
  • 메모리 접근: 메모리는 MAR가 제공한 주소에 따라 데이터를 읽거나 쓴다.

MAR의 작동 원리

명령어 인출 사이클

  1. 명령어 인출 단계

    • 프로그램 카운터(PC): CPU의 Program Counter (PC)는 다음 실행할 명령어의 주소를 보유한다.
    • 주소 복사: PC에 저장된 명령어 주소가 MAR로 복사된다.
  2. 주소 전송

    • 주소 버스 사용: MAR는 주소 버스를 통해 메모리에 주소를 전송한다.
    • 주소 해석: 메모리 시스템은 MAR가 전송한 주소를 해석한다.
  3. 명령어 읽기

    • 데이터 버스 사용: 메모리는 지정된 주소의 데이터를 데이터 버스를 통해 CPU로 보낸다.
    • 명령어 디코딩: CPU는 받은 명령어를 디코딩하여 실행한다.

데이터 접근 사이클

  1. 데이터 읽기

    • 주소 설정: CPU가 특정 데이터를 읽으려 할 때, 그 데이터의 주소를 MAR에 저장한다.
    • 주소 전송: MAR는 주소 버스를 통해 이 주소를 메모리에 전송한다.
    • 데이터 읽기: 메모리는 해당 주소의 데이터를 찾아 CPU로 반환한다.
  2. 데이터 쓰기

    • 주소 설정: CPU가 데이터를 쓰려 할 때, 목적지 주소를 MAR에 저장한다.
    • 주소 전송: MAR는 주소 버스를 통해 이 주소를 메모리에 전송한다.
    • 데이터 쓰기: CPU는 데이터를 데이터 버스를 통해 메모리에 전송하고, 메모리는 이를 지정된 주소에 저장한다.

MAR의 내부 구조

MAR는 일반적으로 단순한 레지스터로 구성되며, 저장할 수 있는 비트 수는 시스템의 주소 공간에 따라 다르게 된다. 예를 들어, 32비트 주소 공간을 사용하는 시스템의 경우 MAR는 32비트 주소를 저장할 수 있어야 한다.

MAR의 중요성

MAR는 메모리 접근의 정확성을 보장한다. 잘못된 주소가 전송될 경우, 잘못된 데이터가 읽히거나 저장될 수 있으므로 MAR의 정확한 작동은 시스템의 안정성과 성능에 매우 중요하다.

추가적인 고려사항

  1. 주소 버스와 데이터 버스: MAR는 주소 버스를 통해 메모리 주소를 전송하며, 데이터 버스는 실제 데이터의 전송을 담당한다.

  2. 캐시 메모리와의 상호작용: 현대 컴퓨터 시스템에서는 캐시 메모리도 사용되는데, MAR는 주 메모리뿐만 아니라 캐시 메모리의 주소 지정에도 사용된다.

  3. 주소 변환: 가상 메모리 시스템에서는 논리적 주소를 물리적 주소로 변환하는 과정에서도 MAR가 사용된다.

결론 - 느낀 점

이번 키워드도 기사공부를 하면서 배웠던 내용이다. 항상 주기억 장치부분에서 나오는 내용이므로
MBR과 같이 알아보며 수월했지만 더욱 심도있게 알아보아야하는 것은 사실인것같다.

profile
게임을 좋아하는 사람 입니다!

0개의 댓글