일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 친절한 SQL 튜닝
- oracle
- 컴퓨터 구조
- INSERT
- 2025-02-13
- 첫 프로그래밍
- 명령 프롬프트
- mysql 설치 방법과 정상 작동 확인하기
- 컴퓨터 활용 능력
- 데이터모델링
- 혼자 공부하는 컴퓨터 구조 + 운영체제
- 운영체제
- gitkraken을 통한 프로젝트 올리기
- 컴퓨터 활용 능력 1급
- 혼자 공부하는 SQL
- 혼자 공부하는 네트워크
- 데이터 모델링
- 뷰
- 인덱스의 개념과 장단점
- youtube review
- 혼자 공부하는 컴퓨터 구조 및 운영체제
- 클러스터형 인덱스와 보조 인덱스
- 리눅스 마스터 2급
- 열거형
- github에 새 리포지토리 추가하기
- delete
- 웹 디자인 기능사
- sqld
- Update
- 이것이 오라클이다
- Today
- Total
코딩 브이로그
CPU의 내부 구성 - 레지스터 본문
들어가며
레지스터는 CPU 내부의 작은 임시저장장치
프로그램 속 명령어 & 데이터는 실행 전후로 레지스터에 저장
CPU 내부에는 다양한 레지스터들이 있고, 각기 다른 역할을 가진다
반드시 알아야 할 레지스터
1. 프로그램 카운터 : 메모리에서 가져올 명령어의 주소(메모리에서 읽어 들일 명령어의 주소) - Instruction Pointer (명령어 포인터) 라고 부르는 CPU도 있다.
2. 명령어 레지스터 : 해석할 명령어 (방금 메모리에서 읽어 들일 명령어) - 제어장치가 해석
3. 메모리 주소 레지스터 : 메모리의 주소를 저장 - CPU가 읽어 들이고자 하는 주소를 주소 버스로 보낼 때 거치는 레지스터
4. 메모리 버퍼 레지스터 : 메모리와 주고받을 값 (데이터와 명령어) - CPU가 정보를 데이터 버스로 주고받을 때 거치는 레지스터
5. 플래그 레지스터 : 연산 결과 또는 CPU 상태에 대한 부가적인 정보
6. 범용 레지스터 : 다양하고 일반적인 상황에서 자유롭게 사용
7. 스택 포인터 : 스택의 꼭대기를 가리키는 레지스터로서 스택이 어디까지 차 있는지에 대한 표시
8. 베이스 레지스터 : 기준 주소 저장
* 스택 주소 지정 방식 : 스택과 스택 포인터를 이용한 주소 지정 방식
* 변위 주소 지정 방식 : 오퍼랜드 필드의 값(변위)과 특정 레지스터의 값을 더하여 유효 주소 얻기
* 상대 주소 지정 방식 : 오퍼랜드 필드의 값(변위)과 프로그램 카운터의 값을 더하여 유효 주소 얻기
* 베이스 레지스터 지정 방식 : 오퍼랜드 필드의 값(변위)과 베이스 레지스터의 값을 더하여 유효 주소 얻기
1~4번 순서
* 프로그램 카운터가 1 증가하는 것은 프로그램을 순차적으로 실행할 수 있는 원리가 됩니다.
순차적으로 실행 흐름이 끊기는 경우 발생시 다음과 같이 해결합니다.
1) 특정 메모리 주소로 실행 흐름을 이동하는 명령어 실행 시
(e.g. JUMP, CONDITIONAL JUMP, CALL, RET)
2) 인터럽트 발생 시
3) ETC...
'혼자 공부하는 컴퓨터 구조 및 운영체제 (복습)' 카테고리의 다른 글
빠른 CPU를 위한 설계 기법 (7) | 2024.10.12 |
---|---|
명령어 사이클과 인터럽트 (7) | 2024.10.12 |
CPU의 내부 구성 - ALU와 제어장치 (6) | 2024.10.10 |
C 언어의 컴파일 과정 (7) | 2024.10.10 |
명령어의 구조 (6) | 2024.10.10 |