1. 2015 Final-term Examination (110)
Basic Computer Design
Date: December 14, 2015
1. CISC CPU와 비교하여 RISC CPU가 가진 장점을 구체적으로 제시하시오.
(20)
- RISC CPU는 CPU 명령어수가 CISC CPU보다 적기 때문에 HW 내부 설계가
단순해짐
- CPU가 지원해야 할 내부 연산수가 적기 때문에 내부 연산 설계에 집중해
서 최적화하기 용이함
- CPU 내부 회로가 단순해졌기 때문에 CPU의 전력 소모도 개선하기 용이함
- RISC CPU를 위한 Compiler 성능을 SW 최적화를 통해 개선하면 CISC CPU
에 비해 연산 속도가 떨어지지도 않음
2. Arduino로 구현한 Star Network과 Daisy Chain Network의 장단점을 구체
적으로 논하시오. (20)
Star Network Daisy Chain
장점 - Server와 Client간에만 Serial
연결하면 됨
- Client는 단순히 Server와만 통
신 연결되면 됨
- Client가 끊어져도 전체
Network에 영향주지 않음
- Network를 구성한 모든 Node
는 동등한 부담을 가짐
- 1개의 통신 선로면 충분해
Node의 Programming이 단순함
- 많은 수의 Node를 연결하기
용이함
단점 - Client 부담을 줄인 만큼
Server에는 과부하가 걸림
- Server 문제로 인해 많은 수의
Node를 연결하기 어려움
- Network를 구성하는 Node가
끊어지면 전체 Network이 망가
짐
- 무한 Loop가 생기지 않도록
Code상에 대책 필요
2. 3. ATmega328 Datasheet에서 아래 항목이 어떤 뜻인지 설명하라. (10)
Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
- Board 내부에 구성된 내부 Memory의 쓰기/지우기 최대 회수를 정의함
- Flash Memory는 10,000번까지 품질 보장하며, EEPROM은 100,000번까지
보장함
4. Arduino에 사용하는 setup(), loop() 함수가 C 언어의 main() 관점에서 어
떻게 구현되어 사용되는지 C 언어 Code를 작성하고 설명하라. (20)
void main() {
init();
setup();
while (1) loop();
}
- setup(), loop() 함수를 구동하기 위한 초기화 Routine인 init() 필요
- setup() 함수는 1번만 구동되면 되므로 한 번만 호출함
- loop() 함수는 계속 실행되어야 하므로 무한 Loop를 강제로 생성
5. Arduino Sketch 언어를 이용해 다음 작업을 Programming하시오. Code는
짧을수록 가산점 반영. (40)
1) Arduino Mega ADK AD1, AD2가 서로 Software Serial로 연결될 수 있는
배선을 제시하고, 이에 해당하는 Arduino Sketch Code를 작성(20)
3. #include <SoftwareSerial.h>
SoftwareSerial myPart(11, 10);
void setup() {
myPart.begin(9600);
}
2) Digital Port D2, D3, D5에 연결된 LED를 D2, D3, D5 순서대로 1초 단위로
계속 반복적으로 켜는 Code 작성(20)
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
}
void loop() {
digitalWrite(5, LOW); digitalWrite(2, HIGH); delay(1000);
digitalWrite(2, LOW); digitalWrite(3, HIGH); delay(1000);
digitalWrite(3, LOW); digitalWrite(5, HIGH); delay(1000);
}