>  기사  >  CPU에서 명령어를 실행하는 과정

CPU에서 명령어를 실행하는 과정

hzc
hzc원래의
2020-06-12 11:54:1912346검색

CPU에서 명령어를 실행하는 과정CPU에서 명령어 실행 프로세스:

거의 모든 von Neumann 유형 컴퓨터 CPU의 작업은 명령어 가져오기, 명령어 디코딩, 명령어 실행, 데이터 액세스, 결과 다시 쓰기 등 5단계로 나눌 수 있습니다.

1. 명령어 가져오기 단계

명령어 가져오기(IF) 단계는 주 메모리에서 명령어 레지스터로 명령어를 가져오는 프로세스입니다.

프로그램 카운터 PC의 값은 주 메모리에서 현재 명령어의 위치를 ​​나타내는 데 사용됩니다. 명령어를 가져오면 명령어 단어 길이에 따라 PC의 값이 자동으로 증가합니다. 단일 단어 길이 명령어인 경우 (PC)+1àPC, 두 단어 길이 명령어인 경우 그런 다음 (PC)+2àPC 등입니다.

2. 명령어 디코딩 단계

명령어를 가져온 후 컴퓨터는 즉시 명령어 디코딩(ID) 단계로 들어갑니다.

명령어 디코딩 단계에서 명령어 디코더는 검색된 명령어를 미리 결정된 명령어 형식에 따라 분할 및 해석하고 다양한 명령어 카테고리와 피연산자를 얻는 다양한 방법을 식별하고 구별합니다.

조합 논리로 제어되는 컴퓨터에서 명령 디코더는 서로 다른 명령 opcode에 대해 서로 다른 제어 가능성을 생성하여 마이크로 프로그램으로 제어되는 컴퓨터에서 서로 다른 마이크로 연산 시퀀스를 형성합니다. 명령 디코더는 명령 opcode를 사용하여 실행되는 마이크로 프로그램의 진입점을 찾습니다. 명령을 실행하고 이 진입점에서 실행을 시작합니다.

3. 명령어 실행 단계

명령어 가져오기 및 명령어 디코딩 단계를 거쳐 실행 명령어(Execute, EX) 단계로 들어갑니다.

이 단계의 작업은 명령어에 지정된 다양한 작업을 완료하고 명령어의 기능을 구체적으로 구현하는 것입니다. 이를 위해 CPU의 여러 부분이 연결되어 필요한 작업을 수행합니다.

4. 액세스 및 액세스 단계

명령어 요구 사항에 따라 주 메모리에 액세스하고 피연산자를 읽어 액세스 및 액세스(메모리, MEM) 단계로 들어가야 할 수도 있습니다.

이 단계의 작업은 명령어 주소 코드에 따라 주 메모리에 있는 피연산자의 주소를 얻고, 주 메모리에서 피연산자를 읽어 연산하는 것입니다.

5. 결과 쓰기 단계

마지막 단계인 결과 쓰기(Write Back, WB) 단계는 실행 명령 단계의 실행 결과 데이터를 일부 저장 형식에 "다시 쓰기"합니다.

결과 데이터는 종종 다음 위치에 기록됩니다. 후속 명령어에서 빠르게 액세스할 수 있도록 CPU 내부 레지스터

어떤 경우에는 결과 데이터를 상대적으로 느리지만 저렴하고 대용량의 메인 메모리에 쓸 수도 있습니다. 또한 많은 명령어는 프로그램 상태 워드 레지스터에 있는 플래그 비트의 상태를 변경합니다. 이러한 플래그 비트는 다양한 작업의 결과를 식별하고 프로그램 동작에 영향을 미치는 데 사용될 수 있습니다.

명령이 실행되고 결과 데이터가 다시 작성된 후 예상치 못한 이벤트(예: 결과 오버플로 등)가 발생하지 않으면 컴퓨터는 프로그램 카운터 PC에서 다음 명령 주소를 가져와 새 사이클을 시작합니다. 다음 명령어 사이클은 다음 명령어를 순차적으로 가져옵니다.

위 내용은 CPU에서 명령어를 실행하는 과정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.