컴퓨터구조 연습문제 발표 Chapter 3 - 컴퓨터의 기능 및 상호연결의 최상위 관점 인터넷미디어공학부 2008135064 송인희
3-1. 그림 3.4의 가상 컴퓨터는 다음과 같은 두 개의 I/O 명령어들도 가지고 있다. 그림3.4
0011 = Load AC from I/O 0111 = Store AC to I/O 이 경우에 12-비트 주소가 특정 I/O장치를 지정해준다. 다음 프로그램 실행 과정을 (그림 3.5의 형식을 이용하여) 설명하라. 장치 5로부터 데이터를 읽어서 AC에 적재하라(Load AC from I/O). >> Step1 , Step2 기억장치 940번지의 내용과 더하라(Add contents of memory location 940). >> Step3 , Step4 AC의 내용을 장치 6에 저장하라(Store AC to device 6). >> Step5 , Step6
3-3. 두 개의 필드들로 구성된 32비트 명령어들을 가진 가상적인 32비트 마이크로프로세서가 있다고 하자 3-3. 두 개의 필드들로 구성된 32비트 명령어들을 가진 가상적인 32비트 마이크로프로세서가 있다고 하자. 한 바이트로 이루어진 첫 번째 필드는 연산 코드(opcode)를 가지고 있으며, 나머지는 즉시 오퍼랜드(immediate operand) 혹은 오퍼랜드의 주소를 포함하고 있다. 직접 주소지정 할 수 있는 기억장치 용량은 몇 바이트인가? 연산 코드를 가진 첫 번째 필드가 1byte=8bits이므로 오퍼랜드의 주소를 가지는 두 번째 필드는 24bits를 가지게 된다. 따라서 직접 주소지정 할 수 있는 용량은 2^24Bytes로 16MBytes를 차지한다. Opcode(8bits) Operand(24bits)
마이크로프로세서 버스가 다음과 같다면, 시스템 속도에 어떠한 영향을 미치겠는지 설명하라. 1. 32비트 지역 주소 버스와 16비트 지역데이터 버스 32비트의 주소버스는 한 번에 모든 메모리 영역의 주소를 전송할 수 있으나, 데이터버스가 16비트이므로 32비트인 명령어나 오퍼랜드를 읽어오기 위해서는 두 번의 메모리 접근이 필요하다. 2. 16비트 지역 주소 버스와 16비트 지역 데이터버스. 16비트의 주소버스는 한 번에 모든 메모리 영역의 주소에 접근할 수 없으므로, 더 복잡한 주소 인터페이스를 위한 제어가 필요하다. 예를 들면, 24비트의 주소를 만들어 내기 위해 16비트 주소버스를 통해 보내진 주소의 일부분을 그 다음 주소의 나머지 부분이 보내질 때까지 유지(latch)를 하고 있다가 두 부분 주소를 합쳐서 온전한 24비트의 주소를 만들어 내야 할 것이다. 따라서, 두 단계의 주소 연산과 더불어 32비트의 명령어나 오퍼랜드를 fetch하기 위해서 두 번의 메모리 접근이 더 필요하다.
c. 프로그램 카운터와 명령어 레지스터는 각각 몇 비트씩으로 구성되는가 c. 프로그램 카운터와 명령어 레지스터는 각각 몇 비트씩으로 구성되는가? PC는 다음에 인출할 명령어의 주소를 가지고 있어야 하므로 최소 24bits 이상이 되어야 한다. IR은 32bits가 필요하다.
3-4. 16비트 주소(예를 들어 프로그램 카운터와 주소 레지스터들의 폭이 16비트라고 가정)를 발생시키고, 16비트 데이터 버스를 가진 가상적인 마이크로프로세서가 있다고 하자. 만약 프로세서가 ’16비트 기억장치’와 접속되어 있다면, 프로세서가 직접 액세스할 수 있는 최대 기억장치 주소 공간은 얼마인가? 16비트 주소를 발생하므로 2^16만큼 주소 공간이 있고 16비트짜리 기억장치에 연결되어 있으므로 2^16*16bits만큼 주소 공간이 있다. 2^16*16bits=2^16*2Bytes=2^17Bytes=2^7KBytes=128KBytes
b. 만약 프로세서가 ’8비트 기억장치’와 접속되어 있다면, 프로세서가 직접 액세스할 수 있는 최대 기억장치 주소 공간은 얼마인가? 16비트 주소를 발생하므로 2^16만큼 주소 공간이 있고 8비트짜리 기억장치에 연결되어 있으므로 2^16*8bits만큼 주소 공간이 있다. 2^16*8bits=2^16*1Bytes=2^16Bytes=2^6KBytes=64KBytes
이 프로세서가 분리된 ‘I/O 공간’을 액세스할 수 있게 되려면, 어떤 구조적 특성들을 가져야 하는가 이 프로세서가 분리된 ‘I/O 공간’을 액세스할 수 있게 되려면, 어떤 구조적 특성들을 가져야 하는가? Memory mapped I/O : 메모리와 I/O가 하나의 연속된 어드레스 영역에 할당되어 CPU의 입장에서는 메모리와 I/O가 동일한 외부기기로 간주되므로 이들을 액세스하기 위한 제어신호는 (read)와(write) 신호뿐이다. isolated I/O : 메모리와 I/O가 별개의 어드레스 영역에 할당되어 CPU의 입장에서는 메모리와 I/O 구분하여 취급해야 하므로, 이들을 액세스하기 위한 제어신호는 (read)와(write) 신호 이외에(memory request)나(I/O request) 등과 같이 메모리와 I/O장치가 서로 다른 독립된 명령어를 가져야 한다.
만약 입력 및 출력 명령어가 8비트 I/O 포트 번호를 지정할 수 있다면, 이 마이크로프로세서가 몇 개의 8비트 I/O 포트들을 지원할 수 있는가? 16비트 I/O 포트는 몇 개를 지원할 수 있는가? 그 이유를 설명하라. 8비트 I/O포트번호는 2^8개를 지원할 수 있고, 16비트 I/O포트번호는 2^16개를 지원할 수 있다. - 포트번호 : 설치할 수 있는 I/O장치의 수
3-5. 16비트 외부 데이터 버스를 가지고 있고, 8MHz 입력 클록에 의해 구동되는 32비트 마이크로프로세서가 있다고 하자
외부 데이터버스를 두 배로 하거나 외부 클록 주파수를 두 배로 하거나 결과적으로 그 전송률은 8Mbytes/sec로 같다 외부 데이터버스를 두 배로 하거나 외부 클록 주파수를 두 배로 하거나 결과적으로 그 전송률은 8Mbytes/sec로 같다. 외부 데이터버스를 두 배로 하게 된다면 버스 제어기와 latch, 버스 제어 논리 등을 고쳐야 한다. 또한 메모리에 저장되는 워드 길이도 32비트의 전송을 위해 두 배가 되어야 할 것이다. 외부 클록 주파수를 두 배로 하게 되면 관련 칩들이 두 배의 주파수에 동작 가능하도록 제조돼야 할 것이다. 더불어 메모리 칩의 속도도 두 배가 되어야 할 것이다.