명령 레지스터 란 무엇입니까?
컴퓨터 하드웨어와 관련하여, 명령어 레지스터는 컴퓨터 또는 다른 장치의 중앙 처리 장치 (CPU)에있는 요소로, 다음 클럭 사이클의 시작 부분에서 실행되는 프로그래밍 명령어를 보유하는 다른 장치의 다른 부분에 의해 지시됩니다. CPU. 명령 디코더와 같은 CPU의 다른 요소는이 정보를 보유하기 위해 명령 레지스터에 의존하여 디코딩, 분석 및 궁극적으로 실행될 수 있습니다. 일부 유형의 마이크로 프로세서 아키텍처에는 둘 이상의 명령어 레지스터가있을 수 있으므로 여러 명령어를 동시에 처리 할 수 있으므로 파이프 라인이라고하는 어셈블리 라인 스타일의 논리를 형성합니다. 일반적으로, 새로운 명령은 프로그램 카운터라고하는 CPU의 다른 부분을 통해 명령 레지스터에 제공되는데, 이는 매우 유사한 목적을 제공하지만 명령 레지스터가 보유한 정보가 실행되는 동안 다음 명령으로 진행할 수 있습니다.
레지스터는 켜거나 끌 수있는 마이크로 프로세서 또는 회로 보드의 일련의 물리적 스위치로, 각 스위치를 비트와 동일하게 만듭니다. 래치라고도하는 여러 스위치가 연결되면 숫자와 같은 이진 데이터를 저장할 수 있으며 메모리 주소 나 명령어 코드로 변환 할 수 있습니다. CPU 내에서, 명령 레지스터는 실행중인 명령의 컴퓨터 메모리에 주소를 보유 할 수 있거나, 효율성을 위해 명령 자체를 보유 할 수 있습니다. 이 정보는 프로그램 카운터라고하는 다른 레지스터를 통해 레지스터로 전달됩니다. 대부분의 경우 현재 명령을 전달한 후 실행될 다음 명령으로 건너 뜁니다.
레지스터가 처리하는 명령어 유형은 일반적으로 기계 코드 또는 바이트 코드로 변환되는 하위 수준의 어셈블리 언어 명령입니다. 어셈블리 명령어는 매우 작고 직접적인 스케일로 작동하기 때문에 고급 프로그래밍 언어의 명령어와는 분명히 다릅니다. 한 가지 예는 두 개의 숫자를 더한 다음 결과를 변수에 저장하는 고급 코드 줄입니다.이 코드는 한 줄의 고급 코드 만 표시합니다. 코드가 컴파일 될 때 작업을 완료하기 위해 12 개 이상의 명령어가 생성 될 수 있으며, 각 명령어는 컴퓨터 랜덤 액세스 메모리 (RAM)와 유틸리티 레지스터 사이의 값을 섞는 것과 같이 간단한 것입니다.
명령 레지스터가 명령을 참조하면 명령 디코더로 전달되어 명령을 기계 코드로 변환 할 수 있습니다. 변수 또는 기타 정보를 보유 할 수있는 메모리 위치에 대한 참조가 해결되고 해당 정보가 때때로 다른 레지스터에 배치됩니다. 마지막으로 실제 명령이 실행됩니다. 이 시간 동안 프로그램 카운터는 CPU에 의해 증가되어 명령 레지스터가 보유 할 다음 명령을 가리 키므로 전체 프로그램이 실행될 때까지 프로세스가 반복 될 수 있습니다.