요약 : x86-64 모드에서 x86-32 모드에서와 같이 느린 속도로 점프하고 있습니까? +/- 32K와 x86-64 및 원거리 통화/점프
- 짧음 : 86 프로세서 는 세 종류로 분류 점프 멀리 점프 50을하면서 "주위 롤"현재 세그먼트 어디서나 이동 가능 (3 바이트 명령)까지
- (5 바이트 명령어)
짧은 근처 점프는 1-2 개의 클록 사이클을 취하는 것이 오프셋 ~ 80 클럭 사이클,에 따라 프로세서. 문서를 읽었을 때, 이것은 그들이 "현재 코드 세그먼트 인 CS 외부로 나가기 때문"입니다.
x86-64 모드에서 코드 세그먼트는 사용되지 않습니다. 세그먼트는 사실상 항상 0..∞입니다. Ergo, 세그먼트 외부로 나가면 벌칙이 있어서는 안됩니다.
따라서 질문 : 프로세서가 x86-64 모드 인 경우 원거리 점프에 대한 클록 사이클 수가 변경됩니까?
관련 보너스 : 32 비트 보호 모드에서 실행되는 대부분의 * nix 형 운영 체제는 세그먼트 크기를 0..infinity로 명시 적으로 설정하고 페이지 테이블을 통해 선형 -> 물리적 변환을 완전히 관리합니다. 그들은 멀리 호출 (적은 클럭 사이클)에 대한 시간 측면에서 이점을 얻는가, 아니면 8086 년 이후 레지스터가 실제로 사용 된 크기 세그먼트 레지스터의 페널티가 내부 CPU 레거시입니까?
\ * nix 시스템에 대한 귀하의 의견은 Windows, AFAIK에도 적용됩니다. 필자는 실제로 코드 세그먼트를 사용하는 * 모든 최신 운영 체제가 있다고 생각하지 않습니다. –