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

컴퓨터 구조론 개정 5판 2장 기본문제 풀이.(기본문제 14번~ 17번 , 연습문제 14, 16번 풀이).

by 4차원 박스 2020. 10. 11.

한동안 공부로 바빠 포스팅을 하지 않다가, 잠깐 틈이 생겨서 이렇게 포스팅을 하게 되었습니다. 많은 분들이 과제에 시달려 오아시스를 찾아 구글링을 하는 듯 보이더군요

잘오셨습니다!

오신김에 답만 베껴가지 마시고 풀이도 있으니 이해도 해보시길 바랍니다!

공부에 도움이 되길 바랍니다!

 

<기본문제>

 

2.14 서브루틴을 호출하는 CALL명령어가 실행되는 동안 수행되는 동작이 아닌 것?

 

: . 호출할 주소를 스택으로부터 인출한다. 이것은 리턴명령어에서 수행되어야할 동작이므로 아니다.

 

2.15 기억장치 주소를 나타내는 오퍼랜드 필드가 14비트라면, 이 명령어에 의해 직접 주소지정 될 수 있는 기억장치 용량은 얼마? (단어의 길이는 8비트 이다).

 

: .16KByte. 솔직히 뒤에붙은 조건은 중의적으로 의아하나 기억장치 용량에 집중하면 주어진 비트가 총 14비트 이므로 2^14개의 주소지정이 므로 2^10=K 인 것을 생각하면 결국 24승인 16KByte 이다.(단어길이가 8비트 = 1바이트 이므로)

 

2.16 어떤 CPU의 내부에 32개의 레지스터들이 있다면 명령어 형식에서 레지스터 번호를 가리키는 필드는 몇 비트로 구성되어야 함?

 

: .5비트. 3225승이므로 5비트 이다.

 

2.17 다음중 3-주소 명령어의 장점인 것은?

 

: .프로그램의 길이가 짧아진다. 3주소 명령어는 오퍼랜드, 레지스터 로 활용할 수 있는 개수가 늘어나므로 프로그램 연산의 길이를 줄일 수 있다.

 

<연습문제>

 

2.14 듀얼-코어 프로세서에서 하나의 독립적인 태스크로 이루어진 프로그램을 처리하는 경우에는 일반적인 프로세서에 비하여 처리시간을 별로 단축시키지 못하는 이유? 그리고 두얼코어 및 멀티코어 프로세서가 내부 CPU코어 수만큼 성능 향상을 얻을 수 있는 경우는 어떤 프로그램 처리 환경인지 설명하라.

 

: 프로그램이 하나의 독립적인 태스크로 이루어 졌기에 시간단축이 별로 없게 된 것이다. 결국 하나의 CPU성능을 내는 것과 같은 것이다. 프로그램이 멀티 태스킹이 가능한 것 이라면 2배의 속도를 낼 수 있게 된다. 프로그램 처리환경이 멀티 태스킹을 허용한다면 당연히 CPU코어 수 만큼 성능 향상을 얻을 수 있게 된다.

 

2.16 다음수식을 계산하기 위한 프로그램을 아래 명령어들을 사용하여 작성하고 프로그램 길이를 비교하기(2.4.2절 명령어를 참조한다)

p.99,100을 참고하면 됩니다.

 

(1) 1-주소명령어

LOAD A

ADD B

STOR T

LOAD E

MUL F

STOR U

LOAD G

NUL H

STOR V

LOAD D

SUB U

ADD V

STOR W

LOAD T

DIV W

STOR X

 

이렇게 16줄의 프로그램 길이가 나옴

LOAD로 불러내고 T,U,V 에다가 STOR로 저장하는 방식을 사용하였다.

 

(2) 2-주소명령어

MOV R1 A

ADD R1 B

MOV R2 E

MUL R2 F

MOV R3 G

MUL R3 H

MOB R4 D

SUB R4 R2

ADD R4 R3

DIV R1 R4

MOV X R1

 

이렇게 11줄의 프로그램길이가 나옴

이번엔 MOV로 어느장소에 값을 옮겨놓고 옮기는 장소는 R1,R2,R3,R4 이다(앞의 2개는 주어진 것)

 

(3) 3-주소명령어

ADD R1 A B

MUL R2 E F

MUL R3 G H

SUB R4 D R2

ADD R5 R4 R3

DIV X R1 R5

 

이렇게 6줄의 프로그램 길이가 나온다.

명령어중 이동시키거나 저장시킬 필요가 없어진 것이 가장 큰 특징이다.

저장시킬 위치는 단순하게 R1,R2,R3,R4,R4으로 지정해주기만 하면 된다.

 

이렇게 3개를 살펴본결과 앞서부터 16,11,6의 순서서로 프로그램 길이가 짧아진다.

즉 주소명령어가 커질수록 짧아진다는 것 이다.

 

 

댓글