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

대학생과 컴퓨터 구조 공부하기 04 (컴퓨터 구조론 개정 5판 1장 연습문제 일부 풀이).

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

아차 싶은게 저번 기본문제 포스팅에 슈퍼컴퓨터 문제가 포함되어 놓고 내용이 없었다.

그래서 지금 간단하게 정리하고 연습문제 일부 풀이를 이번 포스팅에 하도록 한다.

 

<초간단 슈퍼컴퓨터 관련 학습요약>

구조적 크기에 따른 슈퍼컴퓨터의 분류

1. 파이프라인 슈퍼컴퓨터(pipeline supercomputer)
하나의 CPU 내에 다수의 연산 장치들이 포함되어 있고 각 연산장치는 매우 높은 계산능력을
가지고 있다. 따라서 매우 빠르며 많은 양을 처리 가능하다.
고도로 파이프라이닝 된 구조를 가진 소수의 CPU들을 이용하여 구성되는 슈퍼컴퓨터 이다.

2. 대규모 병렬처리시스템(massively parallel processing system:MPP)

한 시스템 내에 상호연결된 수십 수만 개 이상의 프로세서들을 포함, 하나의 큰 작업을 분할하여
동시에 수항하는 병렬처리 기술을 사용함. 핵심은 프로세서들 간의 통신 시간을 최소화할 수 있는
상호연결망을 설계하는것 임.
매우 많은 수의 프로세서들을 이용하여 병렬처리를 수행하도록 설계되는 슈퍼컴퓨터의 구성방식 
이다.

3. 클러스터 컴퓨터(cluster computer)

고속 LAN이나 네트워크 스위치에 의해 서로 연결된 독립적인 컴퓨터들의 집합체로서
단일 시스템 이미지를 형성하여 하나의 큰 시스템으로서 동작하며 최근 슈퍼컴퓨터
분야에서 가장 널리 사용되는 시스템 구성방식 이다.
서로 연결된 PC나 워크스테이션의 집합체 단위를 노드라 하며 노드들에 포함된 
모든 자원들을 단일 시스템 이미지로 통합하여 사용한다. 모든 노드들이 클러스터 미들웨어
라는 소프트웨어에 의해 통합되어 하나의 큰 시스템으로서 동작한다.
개인적으로 떠오른 생각은 뇌 이다. 뉴런이 하나의 PC혹은 워크스테이션 이라면 이것들이 모여 
신경망 이라는 노드를 구성하고 이것들이 명령(클러스터 미들웨어)를 받아 작동하는것 이다.


<1장 연습문제 5번까지 풀이>

1. 용어의 의미 설명하기

1-1. 시스템버스 : CPU와 시스템내의 요소들 사이에 정보를 교환하는 통로로 주소+데이터+제어버스로 구성되어있다.
1-2. VLSI : (very large scale IC) 수만개의 트랜지스터가 집적된 IC칩으로 제4세대 컴퓨터의 핵심 부품이다. 즉 현재 PC의 기본 구성으로 우리와 가장 가깝다.
1-3. 폰노이만 아키텍처 : 폰노이만이 설계한 컴퓨터구조 이다. 기억장치에 저장된 프로그램을 프로그램 카운터 가 지정하는 순서대로 실행시킨다.
1-4. 기억장치 액세스 : 액세스란 데이터를 저장하거나 읽는 동작을 말하며 기억장치의 액세스는 데이터를 저장할때 주소+읽기신호 ,데이터를 읽을때 주소+쓰기신호가 필요하다.

2. 16비트 명령어에서 7비트는 연산코드, 나머지는 오퍼랜드로 사용됨.

2-1. CPU가 수행할 수 있는 연산의 종류는 최대 몇가지? 

답: 2의7승 128가지. 연산의 종류는 앞의 연산코드 에서 결정하며 7비트 이므로 2의7승이다.

2-2. 오퍼랜드가 기억장치 주소를 가리키고 각 기억 장소는 한 바이트씩
저장된다면, 이 명령어에 의해 직접 주소지정 될 수 있는 기억장치의 최대 용량은
몇 바이트? 

답 : 512바이트.  오퍼랜드의 9비트인 2의9승 만큼의 기억장소 최대수가 저장되고 각 기억장소가 1바이트씩 저장된다고 하니 2의9승 * 1바이트 인 512바이트 이다.

3. 그림 1-6같은 구성에서 CPU와 기억장치간 접속된 데이터버스는 16비트, 주소버스가 12비트일때.

3-1. CPU가 기억장치로부터 한 번에 읽어올 수 있는 데이터는 몇 바이트?

답 : 2바이트. 기억장치로부터 한 번에 읽어올 수 있는 데이터는 데이터 버스의 폭에 결정된다. 데이터 버스가 16비트의 폭으로 연결되어 있으므로  16비트이고 이는 2바이트 이다, (바이트는 2의3승 이므로 2의1승 바이트 이다. 단위를 계산한다.)

3-2. 기억장치의 각 주소에 16비트씩 저장된다면, 이 컴퓨터에 접속될 수 있는
기억장치의 최대 용량은 몇 바이트? 

답 : 8192바이트. CPU와 접속 될 수 있는 최대 용량은 주소버스와 비례하므로 2의12승개 4096개이다. 여기에 각 주소에 16비트, 즉 2바이트 씩 저장되므로, 2의12승개 * 2바이트 = 2의13승 바이트, 즉 8192바이트 이다. (접속 될 수 있는 최대용량 개수 * 주소 당 저장되는 용량)

4. 그림 1-6같은 구성에서  데이터버스는 32비트, 기억장치의 용량은 64KByte 라면,
CPU와 기억장치간 접속되는 시스템버스는 몇 비트로 이루어져야 하는가?
( 단, 기억장치의 주소는 바이트 단위로 지정된다.)

처음 생각한 풀이 
(1KByte = 1000Byte 이다.)
시스템버스 = (주소+제어)버스+데이터버스 
주소버스 = X로 둔다.
여기서 기억장치 용량과 데이터버스의 비트가 주어졌으므로 주소버스의 비트를 구할 수 있다.
그림 1-6에서 제어버스는 무시한다 치고 구하면
64KByte = 64000Byte =2의6승 * 10의4승 Byte = 2의X승 * 2의2승 Byte
2^4*10^4=2^X
양변에 로그를 취하여 X값 계산
X= 48(16로그밑2,진수10)
따라서 시스템 버스bit = 48+32 = 80bit.

뭔가 이상해서 검색해보니 2가지가 나옴
1. 내가 한방식과 비슷함 : 기억장치의 용량은 2의MAR승 * MBR여기서 주의할건 MAR=PC=Address Bus,  MBR=Data Bus=워드길이기억장치의 총 용량이 4096비트이고 워드 길이가 16비트이다. => 총 용량은 2의 12승이고, 그 12승중 4승이 워드의 길이입니다. (2의 4승은 16). 이방식으로 풀이 접근시도.


2. 간단하고 정답인거 같지만 이해가 난해함 : 주소버스 2^19=524288=64KByte 따라서 주소버스폭+데이터버스폭 = 19+32=51. 시스템 버스는 51비트.

 

3. 다 족구하라 하고 1K = 2의10승을 나타낸다. 이걸 사용하여 풀이에 적용하자.



5. CPU가 프린터를 이용하여 데이터를 프린트 하는 과정에 대한 흐름도를 그림 1-9와 같은
형태로 표현하여라.

답 : 
ㅡㅡㅡㅡ>상태레지스터 읽기 
ㅣ                     ㅣ
ㅣ                     ㅣ
ㅣ                     ㅣ
ㅣ                     ㅣ
ㅣ                     ㅣ
ㅡㅡ(아니오)ㅡㅡIn_RDY비트 = 1?
                        ㅣ
                        ㅣ
                        예
                        ㅣ
      데이터 레지스터 읽기
                       ㅣ
                       ㅣ
       CPU에서 data처리
                      ㅣ
                      ㅣ
             프린트 출력

댓글