해결된 질문
작성
·
1.3K
·
수정됨
0
안녕하세요. 섹션6의 <메모리의 주소 공간> 강의의 2분경 강의를 보면.. 메모리의 물리 주소와 논리 주소를 나눈 이유에 대해서 설명해주시고 계시는데요.
좀 더 보충 설명 해주실 수 있나요.
메모리에 저장된 값들이 시시각각 변하기 때문에, 물리주소를 알지 못하는 건 알겠고, 같은 프로그램이라도 실행할때마다 주소가 할당되는것도 다른건 알겠는데, 그 '시시각각' 변할떄마다의 물리주소를 그대로 cpu가 사용한다거나, 그냥 '논리주소'를 사용한다거나 뭔 차이인거죠? 즉, 강사님이 말해주신 물리주소와 논리주소를 나눈 이유에 대해서 설명하신 내용은 뭔지는 다 이해했습니다만, "그럼에도 불구하고 왜 굳이?? 논리주소를 사용하지? 그냥 물리주소 사용하면 안되나?" 라는 생각이 들어서요.. ㅋㅋ 그게 그거인거같아요ㅠ..
결국 논리주소도 물리주소로 변환되기 때문에 이런 변환 자체를 할 필요없이 그냥 시시각각 변하는 물리주소를 이용하면 되지않나? 싶은 생각이 들어서 질문드려요.. ㅠㅠ
이러한 내용은 설명하기 복잡하시면 그냥 간단하게 강의 중에 얘기 하신 "cpu는 메모리에 접근할때 논리주소를 이용하도록 설계되어 있다" 는 말을 받아들이는겠습니다.. ㅎㅎ
답변 1
2
'시시각각' 변할떄마다의 물리주소를 그대로 cpu가 사용
사실 이 말씀에 답이 있는 셈입니다 :)
말씀대로 물리 주소만을 이용하고 싶다면,
CPU는 시시각각 변하는 모든 물리 주소에 저장된 모든 내용을 전부 다 알고 있어야 합니다.
시시때때로 변하는 물리 주소 내에 몇 번지에 뭐가 저장되어 있는지
매번 CPU 입장에서 기억하고 있기란 어렵겠지요.
(CPU의 저장 공간이라고 해봤자 저장 공간이 작은 레지스터 뿐이고,
매번 메모리에 접근하여 확인한다고 해도 메모리 접근시간이 늘어갈 테니까요)
그렇기에 그냥 0번지부터 시작한다고 간주하자! 라는 논리 주소를 이용하는 것입니다.
CPU 입장에서는 0번지부터 시작하는 논리 주소만을 해석하고
그 사이에 논리 주소 - 물리 주소를 변환해주는 장치를 하나 더 두는 것이지요.