기본 구성
폰노이만 구조를 기준으로 설명한다.
여기에 있는 명령어 집합은 가상의 명령어이다.
각 요소를 설며여하면
1. PC (프로그램 계수기)
다음에 실행할 명령어의 주소를 보관.
명령어 인출 후, 명령어 길이만큼 증가해, 다음 명령어를 가리킨다.
분기 명령어의 겨여우, 목적지 주소를 가리킨다.
2. IR (명령 레지스터)
가장 최근에 인출한 데이터를 보관
3. ACC (누산기)
프로시적 메모리에 접근하기 위해
참조하려는 데이터의 주소를 명시
4. MAR (Memory Address register)
메모리 주소 레지스터.
프로세서가 메모리에 접근하기 위해 참조하려는
데이터의 주소를 명시
5. MBR (Memory Buffer register)
메모리 버퍼 레지스터.
프로세서가 메모리부터 읽거나, 메모리에 저장할 데이터 자체를 보관하는 버퍼.
메모리 데이터 레지스터 (MDR)이라고도 함.
명령어 사이클 (Instruction cycle)
명령어 실행 과정을 명령어 사이클(Instruction cycle)이라한다.
한 사이클엔, 여러 서브 사이클(Sub cycle) 이 있다.
적재, 저장 명령어 사이클을 예로 들어보자.
LOAD : CPU가 메모리에 있는 데이터를 읽어옴
STORE : 메모리에 데이터를 기록
이 작업을 할려면 MAR, MBR을 사용해야 한다.
적재 과정 (메모리 -> CPU)
1. CPU는 데이터가 있는 메모리 주소를 MAR에 보냄
2. MAR이 지정하는 메모리 주소에 있는 데이터를 읽어 MBR에 저장.
3. CPU는 MBR에 저장된 데이터를 읽음
저장 과정 (CPU -> 메모리)
1. CPU는 데이터를 저장할 메모리 주소를 MAR에 보냄
2. CPU는 데이터를 MBR에 저장.
3. 메모리는 MAR이 저장하는 위치에 MBR의 내용을 저장
인출 사이클
두 과정에서 1.번 처럼 실행할 명령어를 메모리에서 읽어 CPU로 가져오는 과정을
인출 사이클 (Instruction fetch cycle) 이라 한다.
순서를 설명하면,
1. PC가 가리키는 메모리 주소를 MAR에 보냄.
2. 메모리는 MAR이 지시하는 메모리의 명령어를 MBR에 보냄.
3. MBR에 있는 명령어를 IR에 저장 후, PC 갱신
야매로 표현하면
MAR = PC ( IR = 메모리[PC] 와 같음)
MBR = 메모리[MAR]
IR = MBR
이런 느낌이다.
실행 사이클
2.번처럼 명령어에 포함된 연산 부호가 의미하는 연산 수행
실행 사이클(execution cycle)이라 한다.
요즘 컴퓨터는 인출보단 실행 사이클의 작업량이 많아
실행 사이클을 몇 단계로 쪼갠다.
예시를 들자면, 덧셈 연산에서 쓸 데이터 형식은 다음과 같을 때,
ADD는 12~15비트 자리에 있고, 피연산자 주소는 0~11 주소에 있다.
1. 피연산자가 가리키는 메모리의 데이터를 MBR로 가져옴
2. MBR의 내용과 ACC의 내용을 더하고, ACC에 저장.
3. 만약 연산 부호가 적재/저장이면, 위의 과정을 수행.
고급지게 표현하면
decode IR[15:12] // IR의 12~15번째에 있는 명령어 해석
ACC = ACC + 메모리[ IR[11:0] ] // IR의 데이터가 있는 0~11번째 값(위치)을
// 메모리에서 가져오고, ACC에 더함
출처 : 컴퓨터 아키텍처 컴퓨터 구조 및 동작 원리 (한빛 아카데미)
'학교 > 컴퓨터 구조' 카테고리의 다른 글
3. 컴퓨터의 성능 (4/4) 트래픽 계산 (0) | 2020.11.30 |
---|---|
3. 컴퓨터의 성능 (3/4) 연산 (0) | 2020.11.30 |
3. 컴퓨터의 성능 (1/4) 명령어 집합 (0) | 2020.11.30 |
2. 컴퓨터의 성능 (3/3) CPU 성능에 영향을 주는 요소 (0) | 2020.11.28 |
2. 컴퓨터의 성능 (2/3) CPU 성능 분석 (0) | 2020.11.28 |