Ch9.1 Physical and Virtual Addressing

suseodd·2021년 6월 7일
1

CSAPP 9. Virtual Memory

목록 보기
2/6

9.1 Physical and Virtual Addressing

컴퓨터 시스템에서 메인 메모리는 바이트 크기의 연속된 배열로 구성됩니다. 각 바이트는 유일한 physical address (PA) 를 가지고 있습니다. 첫번째 바이트는 주소 0을 가지고 그 다음은 1, 그 다음은 2, 이렇게 계속됩니다. 이러한 간단한 구성에 기반해, CPU에 가장 자연스러운 메모리 접근 방식은 PA를 사용하는 것입니다. 이를 physical addressing이라 합니다. 아래 그림은 PA 4부터 시작해 4 바이트 워드를 읽는 load 인스트럭션의 physical addressing 예시를 보여주고 있습니다.

CPU가 load 인스트럭션을 실행하면, effective PA를 만들고 이를 메모리 버스를 통해 메인 메모리에 전달합니다. 메인 메모리는 PA4부터 시작하여 4바이트 워드만큼 가지고와 이를 CPU에 둘려주고, CPU는 이를 레지스터에 저장합니다.

초기 PC(Personal Computer)들은 physical addressing을 사용했습니다. 그리고 디지털 신호 처리기, 임베디드 마이크로 컨트롤러, Cray 슈퍼 컴퓨터 같은 시스템들은 여전히 physical addressing을 사용합니다. 하지만, 현대 프로세서들은 virtual addressing이라 알려진 형태의 addressing을 사용합니다.

Virtual addressing으로 CPU는 virtual adress (VA) 를 생성하고 이를 통해 메인 메모리에 접근합니다. VA는 메인 메모리에 보내지기 전, 적당한 PA로 변환됩니다. VA를 PA로 변환하는 작업을 address translation이라 합니다. Exception handling처럼, address translation은 CPU 하드웨어와 운영체제 간의 긴밀한 협력을 필요로 합니다. CPU chip에 있는 memory management unit (MMU) 덕에 즉시 VA를 PA로 변환할 수 있습니다. MMU는 메인 메모리에 저장되어 있는 lookup 테이블을 사용해 VA를 변환합니다. Lookup 테이블은 운영체제에 의해 관리됩니다.

profile
백엔드 개발자 디디라고합니다.

0개의 댓글