728x90

1 32bit CPU와 64bit CPU의 차이

CPU의 비트는 한 번에 다룰 수 있는 데이터의 최대 크기를 의미한다. 

32bit CPU 내의 레지스터 크기는 전부 32bit이고 ALU가 처리 가능한 범위, 버스의 크기, 대역폭 모두 32bit이다.

메모리 주소 공간도 32bit이므로 최대 2^32 약 4GB를 사용할 수 있다.

64bit CPU는 2^64이므로 약 16777216TB를 사용할 수있다. 거의 무한대에 가깝다.

 

메모리의 주소 공간을 물리 주소 공간이라고 하고, 사용자 입장에서 바라본 주소 공간은 논리 주소 공간이라고 한다.

 

2 절대 주소와 상대 주소

메모리를 단순하게 생각하면 운영체제 영역과 사용자 영역으로 나뉜다.

이때 사용자 영역이 운영체제 영역으로 침범하지 않도록 경계 레지스터가 경계 지점의 주소를 저장하여, 값을 벗어나는지 검사하고, 만약 벗어난다면 해당 프로세스를 종료한다.

만약 사용자 프로세스가 400번지부터 시작한다면 이 400번지는 절대 주소이다. 즉 실제 물리 주소를 가리키는 절대 주소는 메모리 관리자 입장에서 본 주소이다.

그러나 사용자 입장에서 절대 주소를 알 필요는 없다. 따라서 상대주소는 사용자 영역이 시작되는 400번지를 0번지로 변경하여 사용하는 주소 지정 방식이다. 상대 주소는 항상 0번지부터 시작하여 사용자가 사용하기 편리하다.

 

이런 상대 주소를 실제 물리 주소, 절대 주소로 변환해야 하는데 이 변환 작업은 메모리 관리자가 매우 빠르게 처리한다.

메모리 관리자 내에 재배치 레지스터가 있는데 상대 주소값에 재배치 레지스터 값을 더하여 절대 주소를 구한다.

예를 들어 사용자가 60번지의 메모리에 접근하려하면 재배치 레지스터 400의 값을 더해 460번지의 메모리에 접근하는 것이다.

 

 

 

 

728x90

+ Recent posts