목차
CPU 레지스터와 캐시, 종류 및 동작 방법
레지스터는 CPU 내부에 있는 빠른 기억장치로, 캐시 메모리와는 다른 개념입니다. 캐시 메모리는 주로 CPU와 주기억장치(RAM) 사이에서 데이터를 빠르게 전달하기 위한 임시 저장소입니다. 즉, 캐시 메모리는 주기억장치와 CPU 사이에 위치하여 데이터의 접근 속도를 향상시키는 역할을 합니다.
반면에 레지스터는 CPU 내부에 위치하여 가장 빠른 속도로 데이터를 처리합니다. 레지스터는 CPU 명령어의 실행, 데이터의 임시 저장 및 중간 계산 결과 등을 처리하는 데 사용됩니다. 레지스터는 CPU 내부에 직접 통합되어 있으며, CPU의 구조에 따라 개수와 크기가 다를 수 있습니다.
요약하면, 레지스터는 CPU 내부에 위치하고 매우 빠른 기억장치로 사용되며, 캐시 메모리는 CPU와 주기억장치 사이에 위치하여 데이터 접근 속도를 개선하기 위한 임시 저장소입니다. RAM은 주기억장치로서 대용량의 데이터 저장소입니다.
1. Program Counter (PC)
프로그램 실행 중 다음으로 실행할 명령어의 주소를 저장하는 역할을 합니다. 주로 증가하며, 다음 명령어로 이동합니다.
예제: PC가 1000번지일 때, 다음으로 실행할 명령어 주소는 1001번지입니다.
2. Current Instruction Register (CIR)
현재 실행 중인 명령어를 저장하는 역할을 합니다. 명령어의 오퍼레이션 코드 및 오퍼레이션 피연산자 등의 정보를 포함합니다.
예제: CIR에 "LOAD R1, 200"이라는 명령어가 저장되어 있습니다.
3. Memory Address Register (MAR)
메모리에서 데이터를 읽거나 쓸 주소를 저장하는 역할을 합니다. 메모리에 접근하기 위한 주소를 지정합니다.
예제: MAR에 200번지가 저장되어 있습니다.
4. Memory Data Register (MDR)
메모리로부터 읽은 데이터나 메모리에 쓸 데이터를 저장하는 역할을 합니다. CPU와 메모리 사이의 데이터 교환에 사용됩니다.
예제: MDR에 메모리에서 읽은 값 또는 CPU에서 전송한 데이터가 저장되어 있습니다.
5. Accumulator (ACC)
중간 계산 결과나 연산 결과를 저장하는 레지스터입니다. 주로 산술 및 논리 연산에 사용됩니다.
예제: ACC에 10이 저장되어 있고, 다음에 수행할 명령어는 "ADD R2, R3"이라면, R2와 R3의 값을 더한 결과가 ACC에 저장됩니다.
'C언어 C++ Programming' 카테고리의 다른 글
[C언어] 텍스트 파일 읽기, 예제 풀이로 이해하기(Text file, Read) (0) | 2023.07.13 |
---|---|
[C언어]지역변수와 스택메모리란? 예제로 이해하기(Local Variable, Stack) (0) | 2023.07.12 |
[C++언어]예외 처리 방법 (try, catch, throw) (0) | 2022.01.07 |
[C++언어] 원하는 경로에 파일 읽고 쓰기 (Path, File Write/Read) (0) | 2022.01.06 |
[C++언어]Class의 Protected 수정, 출력하여 사용하는 법 (예제 포함) (0) | 2022.01.04 |