[CS]

컴퓨터 구조 ch.4 CPU의 작동 원리

지기음 2023. 1. 2. 18:41

ALU

  • 레지스터로부터 피연산자를 받아들이고, 제어장칠고부터 제어신호를 받아드림 
  • 연산을 수행한 결과를 일시적으로 레지스터에 저장(메모리보다 레지스터 접근 속도가 더 빨라서)
  • 플래그도 내보냄 

 

플래그(flag)

  • 부호플래그
  • 제로플래그
  • 캐리플래그(올림수나 빌림수가 발생했는지)
  • 오버플로우 플래그
  • 인터럽트플래그
  • 슈퍼바이저 플래그(커널모드로 실행중인지, 사용자 모드로 실행중인지)

 

제어장치

  • 클럭 신호를 받아드림
  • 해석해야 할 명령어를 받아드림
  • 플래그 값 받아드림
  • 제어버스로 전달된 제어 신호를 받아드림

 

레지스터

1. 프로그램 카운터(PC)

명령어의 주소를 저장 

 

2. 명령어 레지스터 

메모리에서 읽어 들인 명령어를 저장 

 

3. 메모리 주소 레지스터

메모리의 주소를 저장, 주소 버스로 보낼 대 메모리 주소 레지스터를 거침 

 

4. 메모리 버퍼 레지스터

메모리와 주고받을 값을 저장하는 레지스터 

 

5. 범용 레지스터 

데이터와 주소를 모두 저장할 수 있음 

 

6. 플래그 레지스터 

플래그 저장 

 

 

특정 레지스터를 이용한 주소 지정 방식 

1. 스택 주소 지정 방식 

- 스택과 스택 포인터를 이용한 주소 지정 방식 

 

2. 변위 주소 지정 방식 

  • 상대주소 지정 방식 (오퍼랜드+프로그램카운터)
  • 베이스레지스토 주소 지정 방식(오퍼랜드+베이스 레지스터)

- 오퍼랜드로 부터 떨어진 거리를 표현한 것으로 이해

 

 

 

명령어 싸이클 : 프로그램의 일정한 주기 

인출 싸이클 : 메모리에 있는 명령어를 CPU로 가지고 오는 단계 

실행 싸이클 : CPU로 가져온 명령어를 실행하는 단계 

간접 싸이클 : 메모리에서 메모리로 두 번 접근해야 하는 경우 

 

인터럽트: CPU 중단 (동기 인터럽트, 비동기 인터럽트)

동기 인터럽트 : CPU에 의해 발생하는 인터럽트 , 예외라고 불림

비동기 인터럽트 : 입출력장치에 의해 발행하는 인터럽트  , 하드웨어 인터럽트라고 불림

 

하드웨어 인터럽트 처리순서

1. 인터럽트 요청 신호 

2. CPU가 인터럽트 여부 확인

3. 인터럽트 플래그 확인 (불가능/ 가능/ 무시할 수 없는 인터럽트도 있음 )

4. 인터럽트를 받아들일 때는 CPU작업 백업 

5. 인터럽트 백터를 참조하여 인터럽트 서비스 루틴 실행 

6. CPU실행