2011-10-30 6 views
0

64 비트 x86 프로세서 (Intel)에서 32 비트 우분투를 실행 중입니다. 이 경우 단어의 크기는 64 비트이지만 32 비트 OS에 대해서는 약간 혼란 스럽습니다. 그래서 메모리 대역폭을 계산할 때 64 라인의 데이터 버스 너비가 사용되고 64 비트 OS와 동일한 성능을 나타낼 것이라고 가정해야합니까? IOW, 아키텍처 너비의 OS 너비 간의 관계를 더 잘 이해하고 싶습니다.64 비트 아키텍처의 32 비트 OS

예를 들어, 64 비트 피연산자는 64 비트 와이드 메모리 버스로 단일 샷으로 읽을 수 있습니다. 이것은 64 비트 OS의 지원이 필요합니까? 32 비트 OS에서 64 비트 피연산자를 읽는 데 두 번 (32 비트 씩) 읽습니까?

감사합니다.

답변

0

걱정하지 않아도됩니다. OS 32 비트 대 64 비트는 메모리 어드레싱에서만 정의됩니다. 64 비트에서 더 많은 것을 할 수 있습니다.

메모리에서 데이터로드는 OS와는 독립적입니다. 프로세서 아키텍처에 따라 다릅니다. 더 나은 프로세서는 하나의 메모리로드에서 128, 256 비트를로드 할 수 있습니다.

가장 짧은 설명이며이 OS에서 실행되는 프로그램의 99.9 %에서 true 여야합니다. 0,1 %는 프로그램 용으로 예약되었으므로 데이터에 액세스 할 때 메모리 정렬에 신경 쓰지 않습니다. 그러나이 문제는 프로세서 캐시에 의해 99.9 %에서 해결 될 수 있습니다.

요약 - OS에 모든 프로그램을 실행할 충분한 메모리가 있는지 걱정하지 않아도됩니다.

0

32 비트 OS 용으로 컴파일 된 응용 프로그램은 버스가 64 비트 크기라는 것을 알지조차 모르고, 항상 처음 32 비트 만 사용합니다.

프로세서가 64 비트 모드로 실행되지 않기 때문에 64 비트 데이터는 버스의 첫 번째 32 비트를 사용하여 동일한 번호의 두 부분을 읽는 두 개의 개별 레지스터 (예 : EAX : EDX)에 저장됩니다.

관련 문제