명령 주기: 두 판 사이의 차이

위키백과, 우리 모두의 백과사전.
내용 삭제됨 내용 추가됨
Cwt96bot (토론 | 기여)
잔글 Bot: Fixing redirects
WikitanvirBot (토론 | 기여)
잔글 r2.7.1) (로봇이 지움: he:מחזור פקודה
44번째 줄: 44번째 줄:
[[es:Ciclo de instrucción]]
[[es:Ciclo de instrucción]]
[[it:Ciclo di fetch-execute]]
[[it:Ciclo di fetch-execute]]
[[he:מחזור פקודה]]
[[lv:Cikls]]
[[lv:Cikls]]
[[pt:Ciclo de instrução]]
[[pt:Ciclo de instrução]]

2011년 4월 11일 (월) 18:39 판

명령 실행 주기 도표

명령 주기는 컴퓨터의 기본적인 동작 순환이다. 컴퓨터가 메모리로부터 프로그램 명령어 집합을 가져오는 과정이며 어떠한 동작을 명령어들이 요구하는지를 결정하고 이러한 동작들을 수행한다. 중앙 처리 장치(CPU)는 시동에서부터 컴퓨터가 꺼질 때까지 이러한 순환을 계속 되풀이한다. 따라서 이를 CPU 사이클이라고도 부른다.

사용되는 회로

명령이 순환하는 동안 CPU에 사용되는 회로는 다음과 같다:

  • 프로그램 계수기 (PC) - 다음에 실행할 명령어에 대한 메모리 주소를 추적하는 증분 계수기이다.
  • 기억 장치 주소 레지스터 (MAR) - 다음에 실행할 명령어의 메모리에 있는 주소를 보관한다.
  • 기억 장치 데이터 레지스터 (MDR) - 메모리로부터 페치(fetch)되어 cpu가 처리할 준비가 된 데이터나 메모리에 저장되어 대기 중인 데이터를 보관하는 양방향 레지스터이다.
  • 현재 명령어 레지스터 (CIR) - 메모리로부터 페치(fetch)되는 명령어를 일시적으로 보관하는 영역이다.
  • 제어 장치 (CU) - 데이터 소스 레지스터와 특별한 산술 명령과 같은 기계 자원을 선택하여 CIR의 프로그램 명령을 디코딩하고 이러한 자원의 활성화를 도와 준다.
  • 산술 논리 장치 (ALU) - 수치 및 논리 연산을 수행한다.

명령 주기

각 컴퓨터의 CPU는 서로 다른 명령어 집합에 기반하여 각기 다른 사이클을 지니고 있으나 다음과 비슷한 순환을 가진다 (이 주기는 계속 반복된다):

명령어 페치

첫 번째 단계인 명령어 페치 단계를 페치 사이클(fetch cycle)로 부른다. 이 단계는 각 명령에 동일한 작업을 수행한다. 페치 사이클은 opcode를 포함하는 명령어(instruction word)로부터 명령(instruction)을 처리한다. (클럭 펄스: T0-T1)

명령어 디코딩

두 번째 단계는 디코딩으로 부른다. 메모리로부터 페치된 opcode는 다음 단계를 위해 디코딩되며 적절한 레지스터로 이동된다. (클럭 펄스: T2)

유효한 주소 읽기

세 번째 단계인 유효한 주소 읽기는 어떠한 명령인지를 결정하는 단계이다. 이것이 메모리 명령이라면 이 컴퓨터 단계에서 직접 메모리 명령인지 간접 메모리 명령인지를 확인한다:

  • 직접 메모리 명령 - 아무 것도 처리하지 않는다.
  • 간접 메모리 명령 - 유효 주소를 메모리로부터 읽어들인다.

이것이 입출력 명령이나 레지스터 명령이라면 컴퓨터는 이에 대한 종류를 확인하고 명령을 실행한다. (클럭 펄스: T3)

명령 실행

네 번째 단계는 실행 사이클로 부른다. 이 단계는 각 명령에 따라 변동된다.

실행 사이클의 첫 번째 단계는 프로세스-메모리(Process-Memory)이다. 데이터는 CPU와 입출력 모듈 사이를 오고간다. 그 다음 단계는 데이터-프로세싱(Data-Processing)이며 데이터 참조에서 논리 명령뿐 아니라 수치 명령도 이용한다. 그 다음 단계는 중심 변경(Central alteration)으로, 점프(jump) 명령과 같은 명령의 연속이다. 마지막 단계는 다른 모든 단계에서 나온 모든 명령을 아우른다. (클럭 펄스: T3-T6 (최대 T6)

참조