2011-04-14 4 views
1

나와 내 친구는 리얼 모드에서의 실제 메모리 어드레싱에 관한 질문에 대해 브레인 스토밍을하고 있었고 우리는 그 문제를 해결할 수 없었습니다. 여기에 간다.리얼 모드 실제 메모리 어드레싱과 관련하여

리얼 모드에서는 세그먼트 선택기 레지스터에 16을 곱하고 오프셋 레지스터에 20 비트의 물리적 주소를 얻으려고 추가합니다. 결과적으로 세그먼트가 겹칠 가능성이 있습니다.

E.G. '세그먼트 선택기 -> 0040 & 오프셋 - "0010"= "- 오프셋> 0030 & - 세그먼트 선택기> 0110"

그것은 세그먼트 선택기 오프셋에 첨가되기 전에 4 비트로 시프트 것을 이해한다. 그러므로 이러한 분할을 피하기 위해 세그먼트 선택기를 오프셋에 추가하기 전에 세그먼트 선택기를 6만큼 (64를 곱하여) 이동하십시오. 우리가보기에 이것은 메모리 중복의 가능성을 제거했을 것입니다.

그 시간 동안 직면 한 하드웨어 제한 사항과 관련이 있거나 단순히 디자인 결정 일뿐입니다.

답변

1

이는 설계상의 제약 때문입니다. 그들은 20 비트 어드레스 버스를 가지고 있습니다. 가장 간단한 방법은 세그먼트 레지스터에 단락을 선택하고 오프셋을 추가하는 것입니다 (20 비트 주소 버스를 초과하는 부분의 경우에는 메모리 하단).

+0

맞습니다. 그들은 16 비트 레지스터를 사용하여 1 MB의 메모리 주소 공간 (20 비트)에 도달하려고했습니다. 이를 달성하는 가장 효율적인 방법은 '세그먼트 화'를 사용하여 세그먼트 기본 부분을 왼쪽으로 4 비트 이동시키는 것입니다. 당신이 생각하는만큼 나쁘지는 않습니다. 그 구성표로 작은 세그먼트 (몇 바이트 길이)와 큰 세그먼트 (약 64kB 길이)를 정의 할 수 있다고 생각하십시오. – fante

1

4 시프트는 전체 메가 바이트의 주소 공간을 제공합니다. 와우!

8 비트 시스템이 64kB로 구성된 당시에는 많은 양의 메모리를 구입할 수있는 충분한 양의 설계가 이루어졌습니다. 그리고 모든 메모리 보드에 맞는 충분한 크기의 상자가 있습니다. http://www.s100computers.com/Hardware%20Folder/CCS/16K%20RAM/16K%20RAM.htm

당신이 4메가바이트를 설치한다면, 먼저 메모리 보드를 저장하기 위해 다른 방을 임대 할 것이다 :

여기에 16 킬로바이트 어떻게 생겼는지입니다!

+0

요즘 당신은 전체 컴퓨터를 구입할 수 있으며 돈으로 같은 금액의 돈을 내 첫 4MB RAM 구성으로 남겨 둘 수 있습니다! –

관련 문제