본문 바로가기
관/핫한 컴퓨터구조 공부

컴퓨터 구조론 개정 5판 2장 기본문제 풀이.(기본문제 9번까지, 연습문제 4번까지).

by 4차원 박스 2020. 7. 27.

공부하다 뒤의 답 성의 없이 나와있어서 

간단한 해설 덧붙여서 올립니다. 참고가 되길 바랍니다.

<기본문제 2.9번까지 풀이>

 

2.1 산술 연산 및 논리 연산을 수행하는 CPU 구성요소?

 

: .ALU ALU는 산술 및 논리 연산들을 수행하는 회로들로 이루어진 H/W 모듈이다.

 

2.2 제어 유니트의 기능이 아닌것?

 

: . 정보의 일시저장. 정보의 일시저장은 레지스터 에서 담당하는 주된 기능이다.

 

2.3 명령어 사이클에 속하는 부사이클이 아닌것?

 

: . 제어사이클. 명령어사이클에 속하는 부사이클 에는 인출,실행,인터럽트,간접 사이클이 있다.

 

2.4 기억장치로 부터 인출된 명령어 코드를 제어 유니트에 의해 해독되기 전에 일시적으로 저장하고 있는 레지스터는?

 

: .IR IR레지스터에서 임시로 OP와 오퍼렌드 값을 가지고 이를 후에 제어유닛에 보내 해독하여 실행사이클을 시작하게 한다. 실행사이클의 흐름은 제일 처음으로 IR에서 시작함으로도 알 수 있다.

 

2.5 클럭 주파수가 2GHz CPU에서 인출 사이클에 소요되는 시간은?

 

: . 1.5ns .1초동안 2기가헤르츠 이므로 1/2기가헤르츠 = 0.5*10^9초는 0.5ns가 소요되고 인출사이클은 여기에 3을 곱한 1.5ns가 된다.

 

2.6 기억장치 주소가 바이트 단위로 지정되고 명령어길이는 32비트인 CPU에서 인출되는 사이클동안 PC가 얼마만큼 증가되는가?

 

: . 4 바이트단위 지정이고 32비트는 4바이트 이다.

 

2.7 인터럽트 사이클 동안 수행되는 동작이 아닌 것?

 

: . 인터럽트 플래그를 세트한다. 이건 다중 인터럽트 사이클 중에서 플래그를 세우는 것과 우선순위를 정하는 두 가지 방법 중 하나이다.

 

2.8 CPU가 어떤 장치에 대한 인터럽트를 처리하는 도중에 우선순위가 더 낮은 인터럽트 요구가 들어왔다면 어떻게 되는가?

 

: . 현재 인터럽트 서비스 루틴의 수행을 계속한다. 우선순위 방식의 다중 인터럽트는 현재 우선순위보다 더 크지 않는 이상 현재수행중인 인터럽트를 중지하지 않는다 하물며 더 낮은 우선순위가 들어오면 당연히 나중에 이루어 질 것이다.

 

2.9 간접 사이클 동안 어떤 동작이 수행되는가?

 

: . 기억장치로부터 데이터의 주소를 인출한다. 간접사이클은 직접사이클과 반대로 데이터의 주소를 한번 거쳐야 완전하게 접근 할 수 있다.

 

<연습문제 2.4번까지 풀이>

 

2.1 클록 주파수가 2GHz(주기=0.5ns)CPUADD addr 명령어를 인출하고 실행하는데 걸리는 시간은 몇 ns? (직접주소지정 방식사용, 파이프라이닝은 되지 않은 상태일 때)

 

: 3ns. 인출 사이클에서 3, 실행 사이클에서 3번의 마이크로 연산이 일어나므로 0.5*6을 하여 3이다.

 

2.2 아래와 같은 어셈블리 프로그램에 대한 기계어 코드들이 200번지부터 저장되어 있다.

(1) 프로그램이 순차적으로 실행될 때 기억장치와 CPU 레지스터들의 내용이 어떤값이 되는지 그림 2-67,8 단계의 그림을 고쳐 그려서 표시하라.(기억장치 300번지와 301번지에는 각각 9,5가 저장되어 있다고 가정함)

아래 사진이 답이다.

(2) SUB 301명령어가 실행되는 중에 인터럽트 요구가 들어왔다면 인터럽트 사이클이 종료된 직후 CPU 레지스터들(PC,AC,IR,SP)에는 각각 어떤 값이 저장되어 있는가? (ISR시작주소는 450번지, SP초기값 999 일 때)

 

: PC : 450, AC : 4, IR : 6301, SP : 998. 인터럽트 사이클이 종료직후 기존의 AC,IR은 이전의 값을 가지고 있고 달라지는 것은 PCSP이다 PCISR의 주소를 담고 있는 상태이고 SP999에 기존의 PC값인 202를 스택에 넣어놓고 1이 감소하고 위로 올라가 998이 된다.

 

2.3 인터럽트 사이클이 그림 2-9B 와 같이 종료된 다음에 처리되는 인터럽트 서비스 루틴에서 AC의 내용을 스택에 저장하였다. 그 값이 저장되는 기억장치의 주소는 몇 번지 이며, SP의 내용은 어떤 값으로 변경되는가?

 

: 999번지 스택에 저장이 되고 이후 SP998으로 변경된다. 2.2(2)번에서 살펴본 것과 같은 방식인데 이번엔 ACIR값이 손상이 되지 않게 스택에 저장이 된다는 사실을 알아내었다. 스택에 저장이 되는 것은 당연히 999번지에 주소와 함께 넣어 놓을 것이고 이후 SP는 감소한다(위치로는 올라간다)

 

2.4 ISR 수행도중에 더 높은 우선순위를 가진 인터럽트 요구가 들어와도 그 루틴의 수행이 중단 되지 않도록 하는 방법?

 

: 다중 인터럽트 사이클일 때 플래그를 설정하는 방식으로 진행하면 우선순위에 상관없이 현재 수행중인 명령을 다 수행 후에 진행할 수 있다. 플래그는 0으로 해야 한다.

 

 

댓글