레지스터
레지스터는 CPU에 내장된 임시 저장 공간입니다. 일부 레지스터는 내부적으로 사용되므로 프로세서 외부에서 액세스할 수 없지만, 다른 레지스터는 사용자가 액세스할 수 있습니다. 대부분의 최신 CPU 아키텍처에는 두 종류의 레지스터가 모두 포함되어 있습니다.
내부 레지스터에는 명령 레지스터(IR), 메모리 버퍼 레지스터(MBR), 메모리 데이터 레지스터(MDR), 메모리 주소 레지스터(MAR)가 있습니다. 명령 레지스터는 프로그램 카운터(PC)에서 명령을 가져와 프로세서가 각 명령을 실행하는 동안 보관합니다. 메모리 레지스터는 메모리에서 프로세서로 데이터를 전달하는 데 사용됩니다. 내부 레지스터의 데이터 보관 시간은 매우 짧으며, 데이터를 1밀리초도 안 되는 시간 동안 보관하는 경우가 많습니다.
사용자가 액세스할 수 있는 레지스터는 내부 레지스터보다 크며 일반적으로 데이터를 더 오래 보관합니다. 예를 들어 데이터 레지스터는 현재 실행 중인 프로그램에서 참조하는 개별 값을 저장할 수 있습니다. 주소 레지스터에는 메모리 주소가 들어 있으며, 이 주소는 시스템의 RAM 안에 있는 서로 다른 메모리 블록을 가리킵니다. 오늘날 많은 CPU에는 데이터와 메모리 주소를 모두 저장할 수 있는 범용 레지스터(GPR)가 있습니다.
레지스터의 개수와 크기는 CPU 아키텍처에 따라 다릅니다. 어떤 프로세서에는 레지스터가 8개 있고, 다른 프로세서에는 16개, 32개 또는 그 이상이 있습니다. 수년 동안 레지스터는 32비트였지만, 이제는 많은 레지스터가 64비트 크기입니다. 64비트 프로세서에는 64비트 레지스터가 필요합니다. 64비트 레지스터가 있어야 CPU가 64비트 메모리 주소에 액세스할 수 있기 때문입니다. 또한 64비트 레지스터는 32비트 레지스터에 로드할 수 없는 64비트 명령을 저장할 수 있습니다. 따라서 32비트 프로세서용으로 작성된 대부분의 프로그램은 64비트 컴퓨터에서 실행할 수 있지만, 64비트 프로그램은 32비트 컴퓨터와 이전 버전 호환되지 않습니다.
지식 테스트하기