2013-05-28 10 views
2

저는 최근에 JIT 컴파일러를 프로그래밍하는 데 필요한 연구를 시작했습니다. 나는 기계어에 대해 공부해 왔지만, 대부분의 표준 PC가 작동하는 기계 언어의 유형을 찾을 수 없었습니다. 나는 this PDF이 ML의 유형을 설명하는 것으로 보이지만, looking it up 이후 MIPS라고 말하면서, 어떤 종류의 비디오 게임 콘솔/라우터 기계 언어처럼 보인다. 그래서, 제 질문은PC는 일반적으로 어떤 종류의 기계어를 실행합니까?

현대의 개인용 컴퓨터 (예 : 랩탑, 데스크탑)는 어떤 기계 언어로 실행됩니까?

아니면 불확정할까요? 많은 기계어가 있습니까? 아니면 내가 틀렸어. MIPS가 표준이야?

답변

3

주어진 프로세서에서 사용되는 기계어는 instruction-set architecture ("ISA")의 기능입니다.

오늘날 Microsoft Windows를 실행하는 대부분의 데스크톱 및 랩톱 컴퓨터는 Intel의 "Core i5"및 "Core i7"프로세서 제품군의 "x86-64"ISA를 구현하는 "64 비트"프로세서를 사용합니다. 일반적으로 "x64"라고 불리는이 원본은 Intel에서 만든 "IA-32"ISA의 64 비트 확장입니다 (AMD에서 만든 것입니다).

"IA-32"및 "x64"는 모두 Complex Instruction Set Computing ("CISC") 아키텍처의 예입니다. 반면에 MIPS은 훨씬 간단한 Reduced Instruction Set Computing ("RISC") 스타일 아키텍처의 예입니다.

JIT compilers에 대해 이야기 할 때 바이트 코드를 실행하는 가상 컴퓨터의 ISA와 기본 물리적 프로세서의 ISA를 구별하는 것이 중요합니다. 대부분의 가상 컴퓨터는 상대적으로 단순하기 때문에 RISC 아키텍처를 기반으로합니다. 그러나이 VM-plus-JIT 컴파일러는 x64 호환 CISC 프로세서에서 실제로 실행될 가능성이 큽니다.

+1

알겠습니다. 이해합니다. 그러면 32 비트 프로그램이 64 비트 프로세서에서 어떻게 실행됩니까? 아니면 현대의 컴퓨터에는 두 개의 64 비트 및 32 비트 프로세서가 있습니까? – Codesmith

+0

x64는 원래 IA-32 아키텍처의 확장이며, 현재 모든 x64 프로세서는 IA-32도 지원합니다. 실제로 사용되는 실제 ISA 모드는 실행중인 OS의 기능입니다. Windows 또는 Linux의 "64 비트"버전과 같이 실행중인 경우 x64 프로세서의 64 비트 기능을 사용합니다. "32 비트"OS를 실행중인 경우 프로세서의 IA-32 부분 만 사용됩니다. –

+0

좋아, 이제 http://en.wikipedia.org/wiki/X86_instruction_listings을보고 있습니다. 컴퓨터가 지원하는 지침을 어떻게 알 수 있습니까? – Codesmith