본문 바로가기
IT

Instruction Pipeline

by Redking

명령 주기

명령 주기의 단계는 총 4단계로 이루어져 있습니다.

명령어 인출: 메모리에서 명령 가져오기, 

명령어 해독: 명령어 디코딩, 

데이터 인출: 메모리에서 유효 주소 읽기, 실행 사이클: 명령을 실행합니다.

 

각 명령어 사이클에 관련된 레지스터

다음은 각 명령어 사이클에 관련된 다양한 유형의 레지스터입니다.

  1. 메모리 주소 레지스터(MAR): 시스템 버스의 주소 라인에 연결됩니다. 읽기 또는 쓰기 작업을 위한 메모리의 주소를 지정합니다.
  2. 메모리 버퍼 레지스터(MBR): 시스템 버스의 데이터 라인에 연결됩니다. 메모리에 저장할 값 또는 메모리에서 읽은 마지막 값을 포함합니다.
  3. 프로그램 카운터(PC): 가져올 다음 명령어의 주소를 저장합니다.
  4. 명령어 레지스터(IR): 가져온 마지막 명령어를 유지합니다.

명령어 주기에 관련된 레지스터의 역할

프로그램 카운터(PC)는 다음에 실행할 명령어의 메모리 주소를 보유하는 특수 레지스터입니다. 가져오기 단계에서 PC에 저장된 주소가 메모리 주소 레지스터(MAR)에 복사된 다음 실행할 다음 명령어의 메모리 주소를 "가리키기" 위해 PC가 증가합니다. 

그런 다음 CPU는 MAR에 의해 설명된 메모리 주소에서 명령을 가져와 메모리 데이터 레지스터(MDR)에 복사합니다. MDR은 또한 메모리에서 가져온 데이터 또는 메모리에 저장되기를 기다리는 데이터를 보유하는 양방향 레지스터 역할도 합니다(이 때문에 메모리 버퍼 레지스터(MBR)라고도 함). 결국 MDR의 명령어는 메모리에서 방금 가져온 명령어에 대한 임시 홀딩 그라운드 역할을 하는 현재 명령어 레지스터(CIR)에 복사됩니다.

디코딩 단계에서 제어 장치(CU)는 CIR의 명령어를 디코딩합니다. 그런 다음 CU는 산술 논리 장치(ALU) 및 부동 소수점 장치(FPU)와 같은 CPU 내의 다른 구성 요소에 신호를 보냅니다. ALU 는 덧셈과 뺄셈과 같은 산술 연산수행 하고, 덧셈과 나눗셈을 반복하여 곱셈을 수행합니다. 또한 AND, OR, NOT 및 이진 시프트와 같은 논리 연산을 수행합니다.FPU는 부동 소수점 연산을 수행하기 위해 예약되어 있습니다.

명령 주기의 구성 요소

다음은 모든 명령 주기의 주요 구성 요소입니다.

 

1. 명령어 인출

명령을 가져오는 것이 첫 번째 단계입니다. 페치 명령은 중앙 처리 장치에서 실행되는 각 명령에 대해 공통입니다. 이 단계에서 중앙 처리 장치는 PC를 MAR로 보낸 다음 READ 명령을 제어 버스로 보냅니다.

데이터 버스에서 읽기 명령을 보낸 후 메모리는 명령을 반환하고 메모리의 특정 주소에 저장됩니다. 그런 다음 CPU는 데이터 버스에서 MBR로 데이터를 복사한 다음 MBR에서 레지스터로 데이터를 복사합니다.

이 모든 후에 포인터는 메모리에서 다음 명령어를 가져올 수 있도록 다음 메모리 위치로 증가합니다.

2. 명령어 해독

명령어 해독은 두 번째 단계입니다. 이 단계에서 CPU는 명령에서 가져온 명령과 해당 명령에 대해 수행해야 하는 작업을 결정합니다. 명령어의 opcode도 메모리에서 가져와 관련 명령어에 대해 수행해야 하는 관련 연산을 디코딩합니다.

3. 데이터 인출

데이터 인출은 세 번째 단계입니다. 이 단계는 작업의 결정을 다룹니다. 작업은 모든 유형의 메모리 유형 비메모리 유형 작업일 수 있습니다. 메모리 명령어는 직접 메모리 명령어와 간접 메모리 명령어의 두 가지 범주로 분류할 수 있습니다.

4. 실행 사이클

실행 사이클은 마지막 단계입니다. 이 단계에서 명령이 최종적으로 실행됩니다. 명령어가 실행되고 명령어의 결과가 레지스터에 저장됩니다. 명령 실행 후 CPU는 다음 명령을 실행할 준비를 합니다. 모든 명령어에 대해 실행 시간이 계산되어 프로세서의 처리 속도를 알려주는 데 사용됩니다.

 

명령어 실행 과정이 필요한 몇 가지 중요한 사항은 다음과 같습니다.

  • 컴퓨터 프로세서에서 명령어의 흐름과 명령어의 실행을 이해하기 위해서는 적절한 이해가 이루어질 수 있도록 컴퓨터 시스템에 대한 명령어 사이클이 필요하다.
  • 컴퓨터 시스템이 종료될 때까지 컴퓨터 시스템이 부팅될 때 명령의 전체 흐름을 다룹니다. 

명령어 실행 과정의 중요성 강조하는 요점입니다.

  • 명령은 중앙 처리 장치의 주 메모리에서 수행되는 기본 작업이므로 중앙 처리 장치의 프로세서 시스템에 중요합니다.
  • 수업의 흐름을 이해하는 데 도움이 되는 일련의 단계입니다. 명령어 실행 주기에 의해 명령어의 종단 간 흐름은 컴퓨터 프로세서에서 시각화될 수 있습니다.
  • 모든 명령 세트를 올바르게 이해해야 모든 작업을 쉽게 수행할 수 있다는 것은 일반적입니다.

명령어의 유형

일반적으로 컴퓨터에서 사용되는 명령어 집합에는 두 가지 유형이 있습니다.

  1. RISC(Reduced Instruction Set Computer)
  2. 복잡한 명령 집합 컴퓨터(CISC)

1. 명령어 집합 컴퓨터 축소

많은 컴퓨터 설계자들은 컴퓨터가 메모리를 자주 사용하지 않고도 CPU 내에서 훨씬 더 빠르게 실행할 수 있도록 단순한 구조로 더 적은 명령어를 사용하도록 권장했습니다. 이러한 유형의 컴퓨터를 축소 명령 집합 컴퓨터라고 합니다.

RISC의 개념은 컴퓨터의 명령 집합을 단순화하여 실행 시간을 줄이려는 시도를 포함합니다.

RISC의 특징은 다음과 같습니다.

  • 상대적으로 지침이 적습니다.
  • 주소 지정 모드가 상대적으로 적습니다.
  • 메모리 액세스는 로드 및 저장 명령어로 제한됩니다.
  • 모든 작업은 CPU 레지스터 내에서 수행됩니다.
  • 단일 사이클 명령 실행.

RISC 프로세서 능력의 특징은 클록 사이클당 하나의 명령을 실행하는 것입니다. 이것은 파이프라이닝이라고 하는 절차를 사용하여 2개 또는 3개의 명령어의 인출, 디코딩 및 실행 단계를 중첩하여 수행됩니다.

2. 복잡한 명령어 집합 컴퓨터

CISC는 단일 명령어가 메모리에서 로드 및 메모리에서 저장 등과 같은 수많은 저수준 연산을 수행할 수 있는 컴퓨터입니다. CISC는 프로그램당 명령어 수를 최소화하려고 시도하지만 명령당 주기.

컴퓨터용 명령어 세트의 설계는 기계어 구조뿐만 아니라 고급 프로그래밍 언어 사용에 부과되는 요구 사항도 고려해야 합니다.

CISC의 목표는 고급 언어로 작성된 각 명령문에 대해 단일 기계 명령을 제공하는 것입니다.

CISC의 특징은 다음과 같습니다.

  • 일반적으로 100개에서 250개까지의 많은 명령어.
  • 일부 지침은 특수 작업을 수행하며 드물게 사용됩니다.
  • 매우 다양한 주소 지정 모드 - 일반적으로 5~20개의 서로 다른 모드.

논리주소

논리 주소는 CPU에 의해 프로그램이 실행되고 있을 때 만들어지고 물리적으로 존재하는 주소가 아니라 논리적으로 존재하는 주소이므로 가상 주소라고도 부릅니다. 논리 주소는 CPU에 위치한 메모리의 물리적 주소를 가르키며 Logical Address Space라는 용어는 프로그램에 의해서 만들어진 모든 논리 주소의 집합입니다.

물리주소

사용자들은 직접적으로 물리 주소로 접근하지 못하고 대신 대응되는 논리 주소로 접근한 이후에 논리주소를 통해 물리주소에 접근하게 됩니다. 그렇기 때문에 물리 주소는 바뀌지 않으며 물리주소에 접근하는 논리주소를 정할때 어떤 물리주소를 향하게 할지 설정해 주는게 중요합니다.

논리주소가 물리 주소와 맵핑되는 경우는 아래와 같습니다.

Compile Time

컴파일 이후에 프로세스가 메모리 상에서 존재하고, 절대 주소 생성되고 메모리에 프로그램을 로딩 하여 프로세스로써 사용하면 매우 빠르게 동작한다. 그러나 만약 생성된 주소 공간이 다른 프로세스에 의해 점유된 상태라면, 프로그램은 충돌하게 되고 주소 공간를 바꾸기 위해서 프로그램을 다시 컴파일 해야한다.

Load Time

컴파일 시에 프로세스의 위치를 알 수 없는 경우, 재배치 가능한 주소가 생성된다. 로더는 주소를 절대 주소로 변환한다. 절대 주소를 생성할 때, 로더는 주 메모리에 있는 프로세스의 기준 주소는 모든 논리 주소에 더한다. 만약 프로세스의 기준 주소가 바뀌면 프로세스를 다시 로드해야 한다.

Execution Time

메모리 상의 명령어들은 CPU에 의해서 처리된다.에 추가적으로 메모리가 할당된다. 프로세스가 실행 중에 을 한다면 프로세스의 메모리 상 위치가 바뀐다

 

'IT' 카테고리의 다른 글

디지털 IC  (0) 2022.08.13
운영체제의 종류  (0) 2022.08.13
컴파일러  (0) 2022.08.13
OSI 7계층 모델  (0) 2022.08.13
프로젝트 시작시 해야할것들  (0) 2021.10.05

댓글