ALU
- 레지스터로부터 피연산자를 받아들이고, 제어장칠고부터 제어신호를 받아드림
- 연산을 수행한 결과를 일시적으로 레지스터에 저장(메모리보다 레지스터 접근 속도가 더 빨라서)
- 플래그도 내보냄
플래그(flag)
- 부호플래그
- 제로플래그
- 캐리플래그(올림수나 빌림수가 발생했는지)
- 오버플로우 플래그
- 인터럽트플래그
- 슈퍼바이저 플래그(커널모드로 실행중인지, 사용자 모드로 실행중인지)
제어장치
- 클럭 신호를 받아드림
- 해석해야 할 명령어를 받아드림
- 플래그 값 받아드림
- 제어버스로 전달된 제어 신호를 받아드림
레지스터
1. 프로그램 카운터(PC)
명령어의 주소를 저장
2. 명령어 레지스터
메모리에서 읽어 들인 명령어를 저장
3. 메모리 주소 레지스터
메모리의 주소를 저장, 주소 버스로 보낼 대 메모리 주소 레지스터를 거침
4. 메모리 버퍼 레지스터
메모리와 주고받을 값을 저장하는 레지스터
5. 범용 레지스터
데이터와 주소를 모두 저장할 수 있음
6. 플래그 레지스터
플래그 저장
특정 레지스터를 이용한 주소 지정 방식
1. 스택 주소 지정 방식
- 스택과 스택 포인터를 이용한 주소 지정 방식
2. 변위 주소 지정 방식
- 상대주소 지정 방식 (오퍼랜드+프로그램카운터)
- 베이스레지스토 주소 지정 방식(오퍼랜드+베이스 레지스터)
- 오퍼랜드로 부터 떨어진 거리를 표현한 것으로 이해
명령어 싸이클 : 프로그램의 일정한 주기
인출 싸이클 : 메모리에 있는 명령어를 CPU로 가지고 오는 단계
실행 싸이클 : CPU로 가져온 명령어를 실행하는 단계
간접 싸이클 : 메모리에서 메모리로 두 번 접근해야 하는 경우
인터럽트: CPU 중단 (동기 인터럽트, 비동기 인터럽트)
동기 인터럽트 : CPU에 의해 발생하는 인터럽트 , 예외라고 불림
비동기 인터럽트 : 입출력장치에 의해 발행하는 인터럽트 , 하드웨어 인터럽트라고 불림
하드웨어 인터럽트 처리순서
1. 인터럽트 요청 신호
2. CPU가 인터럽트 여부 확인
3. 인터럽트 플래그 확인 (불가능/ 가능/ 무시할 수 없는 인터럽트도 있음 )
4. 인터럽트를 받아들일 때는 CPU작업 백업
5. 인터럽트 백터를 참조하여 인터럽트 서비스 루틴 실행
6. CPU실행
'[CS]' 카테고리의 다른 글
[네트워크] OSI 7계층 (0) | 2023.04.09 |
---|---|
컴퓨터 구조 ch. 3 명령어 (0) | 2022.12.29 |
컴퓨터 구조 ch.2 데이터 (2) | 2022.12.28 |
컴퓨터 구조 공부 시작 [혼자 공부하는 컴퓨터구조+운영체제] (2) | 2022.12.27 |
컴퓨터 과학 기초 중 기초 중 기초 (0) | 2022.12.16 |