일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Front
- Meta Learning
- REACT
- computervision
- 알고리즘
- SSL
- 3d
- dl
- CV
- pytorch
- clean code
- Vision
- 딥러닝
- Torch
- ML
- GAN
- algorithm
- FineGrained
- math
- 자료구조
- web
- classification
- PRML
- nerf
- cs
- nlp
- FGVC
- Python
- 머신러닝
- Depth estimation
- Today
- Total
KalelPark's LAB
[ Computer Architecture ] 레지스터, 인터럽트란? 본문
레지스터(Register) 종류
- 프로그램 카운터
- 명령어 레지스터
- 메모리 주소 레지스터
- 메모리 버퍼 레지스터
- 플레그 레지스터
- 범용 레지스터
- 스택 레지스터
- 베이즈 레지스터
프로그램 카운터
메모리에서 가져올 명령어의 주소, 즉 메모리에서 읽어 들일 명령어의 주소를 저장합니다. 프로그램 카운터 명령어 포인터라고 부르는 CPU도 있습니다.
명령어 레지스터
해석할 명령어, 즉 방금 메모리에서 읽어 들인 명령어를 저장하는 레지스터를 의미합니다. 제어장치는 명령어 레지스터 속 명령어를 받아들이고, 해석한 뒤 제어 신호를 보냅니다.
메모리 주소 레지스터
메모리의 주소를 저장하는 레지스터입니다. 읽어 들이고자 하는 주소 값을 주소 버스로 보낼 때 주소 레지스터를 거치게 됩니다.
메모리 버퍼 레지스터
메모리와 주고받을 값을 저장하는 레지스터입니다. 즉 메모리에 쓰고 싶은 값이나 메모리부터 전달받은 값은 메모리 버퍼 레지스터를 거칩니다.
인터럽트
- 동기 인터럽트, 비동기 인터럽트
동기 인터럽트
CPU에 의해 발생하는 인터럽트입니다. CPU가 명령어들을 수행하다가 예상치 못한 상황에 마주쳤을 때, 가령 CPU가 실행하는 프로그래밍상의 오류와 같은 예외적인 상황에 마주쳤을 때 발생하는 인터럽트가 동기 인터럽트이다. 이런 점에서 동기 인터럽트는 예외라고도 부릅니다.
비동기 인터럽트 (하드웨어 인터럽트)
주로 입출력장치에 의해 발생하는 인터럽트이다. 입출력장치에 의한 비동기 인터럽트는 세탁기 완료 알림과 같은 알림역할을 한다.
- 구체적으로 CPU가 프린터와 같은 입출력장치에 입출력 작업을 부탁하면 작업을 끝낸 입출력장치가 CPU에 완료 알림을 보냅니다.
순서
- 입출력장치는 CPU에 인터럽트 요청 신호를 보냅니다.
- CPU는 실행 사이클이 끝나고 명령어를 인출하기 전 항상 인터럽트 여부를 확인합니다.
- CPU는 인터럽트 요청을 확인하고 인터럽트 플래그를 통해 현재 인터럽트를 받아들일 수 있는지 확인합니다.
- 인터럽트를 받아들일 수 있다면 CPU는 지금까지의 작업을 백업합니다.
- CPU는 인터럽트 벡터에 참조하여 인터럽트 서비스 루틴을 실행합니다.
- 인터럽트 서비스 루틴 실행이 끝나면 백업 작업을 실행합니다.
'Study > Computer Architecture' 카테고리의 다른 글
[ Computer Architecture ] Instruction Format이란? (0) | 2023.03.29 |
---|---|
[ Computer Architecture ] 클럭, 코어, 스레드란? (0) | 2023.01.28 |
[ Computer Architecture ] ALU, 제어장치란? (0) | 2023.01.28 |
[ Computer Architecture ] 컴파일, 인터프리티 언어 그리고 주소 지정 방식? (0) | 2023.01.26 |
[ Computer Architecture ] 컴퓨터 구조란? (0) | 2023.01.25 |