CPU 동작 원리
cpu는 기억장치치에 저장되어 있는 명령들을 실행하여 프로그램을 수행하는 기능을 수행한다.
1.명령어 인출 : 기억장치로 부터 명령어를 읽어온다
2.명령어 해독 : 읽어온 명령어를 해독한다
3.데이터 인출 : 명령어 실행전 데이터가 필요한 경우 데이터를 읽어온다.
4.데이터 처리 : ALU를 이용한 데이터 산순,논리연산을 수행한다.
5.데이터 저장 : 수행한 결과를 저장한다.
레지스터
- PC(Program Counter) : 다음 실행될 주소를 가지고 있는 레지스터
- MAR(Memory Address Register) : 주소 버스로 이동하기 전에 PC에있는 주소를 임시 저장하는 레지스터
- MBR(Memory Buffer Register) : 저장될 데이터 혹은 읽혀진 데이터가 일시적으로 저장되는 버퍼 레지지터
- IR(Instruction Register) : 가장 최근에 인출된 명령어가 저장되어 있는 레지스터.
- SP(Stack Pointer) : 현재 스택 영역에서 가장 마지막 부분
- SR(Status Resister) : 올림수, 오버플로, 부호, 제로, 인터럽트를 나타내는 레지스터
명령어 수행
- 명령어 싸이클: 한 명령어를 실행한느데 필요한 싸이클로 인출,실행 싸이클로 나뉘어짐
인출 싸이클: CPU가 기억장치의 지정된 위치로 명령어를 읽어온다.
1) PC에 저장되어 있는 목적지 주소를 MAR로 이동한다.
2) MAR에 저장된 주소로 주소 버스를 통해 이동한다.
3) 기억장치에서 데이터를 데이터 버스를 통해가져온다
4) 가지고온 데이터를 MBR에 저장한다.
5) MBR에 있는 데이터를 IR에 저장한다.
실행 싸이클 : 인출된 명령어 코드를 해독하고 결과를 수행하는 단계(실행단계 > 인출단계)
- 데이터 이동 : CPU와 기억장치간에 데이터를 이동한다.
- 데이터 처리 : 데이터에 대하여 연산을 수행한다.
- 데이터 저장 : 연산결과 혹은 입력장치로 부터 읽어들인 데이터를 기억장치에 저장한다,
- 프로그램 제어 : 프로그램 실행 순서를 결정한다.
인터럽트 싸이클 : CPU의 순차적인 실행을 중단하고 프로그램을 처리하도록 요구하는 메커니즘(ex : 예외처리, 입출력 장치의 요청)
1) 인터럽트요청이 왔을경우 CPU가 인터럽트를 받을수 있는지 인터럽트 플러그를 이용해 확인한다.
2) 인터럽트 요청을 확인하고 실행중인 프로세스의 백업을 위해 stack영역에 주소를 저장한다.
3) 인터럽트 백터를 이용해 인터럽트 서비스 루틴의 주소를 얻고 인터럽스를 실행한다.
4) 스택에 저장되어있는 주소를 이용하여 다시 돌아온 후 순차적으로 진행한다.
간접 싸이클 : 간접 주소 지정방식에 사용되는 싸이클로 PC에있는 주소가 데이터가 저장된 주소를 가리키는 경우 사용한다.
'cs(컴퓨터구조)' 카테고리의 다른 글
주소 지정 방식 (0) | 2023.06.03 |
---|---|
CPU 성능 향상 기법 (0) | 2023.06.03 |
1.컴퓨터 시스템 개요 (0) | 2023.06.03 |