Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Javascript
- 알고리즘
- 컴퓨터공학
- html/css/js
- 너비우선탐색
- KAKAO
- 자바스크립트
- 패스트캠퍼스
- BFS
- computerscience
- 부트캠프
- cpu
- git
- 컴퓨터과학
- 국비지원
- DFS
- 백준
- 코딩테스트
- 야놀자
- LinkSnap
- js
- 그리디
- github
- 코테
- CSS
- 프론트엔드개발자
- 호이스팅
- CS
- nodejs
- 국비지원취업
Archives
- Today
- Total
My Boundary As Much As I Experienced
CPU의 명령어 처리 사이클 본문
특수 목적 레지스터
- MAR(메모리 주소 레지스터) : 읽기와 쓰기 연산을 수행할 주기억장치 주소 저장
- PC(프로그램 카운터) : 다음에 수행할 명령어 주소 저장
- IR(명령어 레지스터) : 현재 실행 중인 명령어 저장
- MBR(메모리 버퍼 레지스터) : 주기억장치에서 읽어온 데이터 or 저장할 데이터 임시 저장
- AC(누산기) : 연산 결과 임시 저장
앞선 포스팅에서 다룬 레지스터는 이렇게 여러 종류의 특수 목적 레지스터가 있다.
명령어를 처리하는 사이클을 설명하는데에 필수적인 요소들
명령어 세트
CPU가 실행할 명령어의 집합을 말함. 프로그램을 돌릴 때 발생
연산 코드(Operation Code) + 피연산자(Operand)로 되어있음.
- 연산 코드(Operation Code)
- 실행할 연산
- 연산, 제어, 데이터 전달, 입출력 기능을 가짐
- 피연산자(Operand)
- 주소, 숫자/문자, 논리 데이터 등으로 이루어짐
명령어 사이클
명령어 세트 한 줄 한 줄 실행하기 위한 사이클이다. 이 사이클 내내 메모리와 CPU에서 일어나는 마이크로 연산의 사이클을 말하기도 한다.
크게 봤을 때:
인출 사이클 → 실행 사이클
자세히 봤을 때:
인출 사이클 → 간접 사이클 → 실행 사이클 → 인터럽트 사이클
이렇게 요약할 수 있다.
인출 사이클
- PC(다음에 수행할 명령어 주소 저장소)에 저장된 주소를 MAR(메모리 주소 레지스터)로 전달
- 저장된 내용을 토대로 주기억장치의 해당 주소에서 명령어 인출
- 인출한 명령어를 MBR에 저장(메모리 버퍼 레지스터, 주기억장치에서 읽어온 데이터 or 저장할 데이터 임시 저장)
- 다음 명령어를 인출하기 위해 PC 값(다음에 수행할 명령어 주소 저장소) 증가시킴
- MBR(메모리 버퍼 레지스터, 주기억장치에서 읽어온 데이터 or 저장할 데이터 임시 저장)에 저장된 내용을 IR(명령어 레지스터)에 전달
실행 사이클
- IR로 가져온 명령어가 지시하는 내용에 따라 수행되는 마이크로 연산이 달라진다.
- 명령어 해독(decode) : 인출된 명령어를 해독한다.
'Computer Basics' 카테고리의 다른 글
고정소수점과 부동소수점 (0) | 2023.08.01 |
---|---|
캐시메모리(Cache Memory) (0) | 2023.07.24 |
컴퓨터의 구성 (0) | 2023.07.17 |
가상 메모리(Virtual Memory), TLB(Translation Lookaside Buffer) (0) | 2023.07.17 |
CPU/MPU/MCU란? (0) | 2023.07.17 |