- 4-1. ALU와 제어장치
- 플래그 : 연산결과에 대한 추가적인 상태 정보플래그 종류 의미 사용예시
부호 플래그 연산한 결과의 부호 1 : 음수 / 0: 양수 제로 플래그 연산결과의 0 여부 1: 0 캐리 플래그 연산 결과 올림수/빌림수 발생여부 1 : 발생 오버플로우 플래그 오버플로우 발생여부 1 : 오버플로우 인터럽트 플래그 인터럽트 가능여부 1: 인터럽트 가능 슈퍼바이저 플래그 커널모드/사용자모드 실행여부 1: 커널모드 / 0: 사용자 모드 - 클럭 : 컴퓨터의 부품이 일사불란하게 움직일 수 있게 하는 시간 단위
- 플래그 : 연산결과에 대한 추가적인 상태 정보플래그 종류 의미 사용예시
- 4-2. 레지스터
- 레지스터의 종류는 제품마다 매우 다양해서, 대표적인 레지스터 위주로 학습할 것.레지스터 종류 역할
프로그램 카운터 메모리에서 가져올 명령어의 주소를 저장. 명령어 레지스터 메모리에서 읽어 들인 명령어를 저장. 메모리 주소 레지스터 메모리의 주소를 저장. 메모리 버퍼 레지스터 메모리와 주고받을 값을 저장. 플래그 레지스터 플래그를 저장. 범용 레지스터 다양하고 일반적인 상황에서 자유롭게 사용할 수 있는 레지스터. 스택 포인터 스택의 꼭대기(peek)의 위치(주소)를 저장. 베이스 레지스터 기준 주소(offset)을 저장.
- 레지스터의 종류는 제품마다 매우 다양해서, 대표적인 레지스터 위주로 학습할 것.레지스터 종류 역할
- 4-3. 명령어 사이클과 인터럽트
- 명령어 사이클 : CPU가 명령어를 실행시키는 주기
- 인출 사이클 : 메모리에 있는 명령어를 CPU로 가져오는 사이클
- 실행 사이클 : CPU로 가져온 명령어를 실행하는 단계 제어장치가 명령어 레지스터에 담긴 값을 해석, 제어 신호를 발생시키는 단계
- 간접 사이클 : 간접주소 지정 방식 등 메모리에 추가적으로 접근이 필요한 경우, 실행 전 간접사이클이 발생할 수 있다.
- 인터럽트 : CPU의 작업을 방해하는 신호
- 동기 인터럽트 : CPU에 의해 발생하는 인터럽트 (exception)
- 비동기 인터럽트 : 주로 입출력장치에 의해 발생하는 인터럽트 (하드웨어 인터럽트)
- 하드웨어 인터럽트 처리순서
- 입출력장치가 CPU에 인터럽트 요청 신호를 보냄
- CPU가 실행 사이클이 끝나고 명령어를 인출하기 전 인터럽트 여부 확인
- CPU는 인터럽트 요청을 확인, 인터럽트 플래그를 통해 현재 인터럽트를 받아들일 수 있는지 여부를 확인.
- 인터럽트를 받아들일 수 있다면, CPU는 지금까지의 작업을 백업. (스택메모리)
- CPU는 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴을 실행.
- 인터럽트 서비스 루틴이 끝나면 백업한 이전 작업을 복구하여 작업을 재개.
- 무시할 수 없는 인터럽트 (NMI, Non Maskable Interrupt)
가장 우선순위가 높은 인터럽트 (ex: 정전이나 하드웨어 고장으로 인한 인터럽트) - 인터럽트 서비스 루틴
인터럽트를 처리하기 위한 프로그램으로, 인터럽트 발생 시 해당 인터럽트를 어떻게 처리하고 작동해야 할지에 대한 정보로 이루어진 프로그램. - 인터럽트 벡터
인터럽트 서비스 루틴을 식별하기 위한 정보로, 인터럽트 서비스 루틴의 시작정보를 알 수 있다.
- 하드웨어 인터럽트 처리순서
- 동기 인터럽트 : CPU에 의해 발생하는 인터럽트 (exception)
- 명령어 사이클 : CPU가 명령어를 실행시키는 주기
내용이 꽤나 많았는데, 너무 많이 압축한거같단 생각이 드네요.
좀 헷갈리는 내용이 많아서, 반복해서 읽어봐야할듯.
참고 : 혼자 공부하는 컴퓨터 구조 + 운영체제 (강민철 저)
'CS지식 > 컴퓨터구조' 카테고리의 다른 글
| 컴퓨터 구조 Ch.6 메모리와 캐시 메모리 (0) | 2023.01.14 |
|---|---|
| 컴퓨터 구조 Ch.5 CPU 성능 향상 기법 (0) | 2023.01.13 |
| 컴퓨터구조 Ch.3 명령어 (1) | 2023.01.09 |
| 컴퓨터구조 Ch.2 데이터 (0) | 2023.01.08 |
| 컴퓨터 구조 Ch.1 컴퓨터 구조 시작하기. (0) | 2023.01.07 |