Pro 01 intro com arch

Page 1

2014-2 생활속의 IT 디자인

1.컴퓨터 이야기 시작


제1장

컴퓨터 구조 입문::컴퓨터를 분해해 보자 1.1

컴퓨터의 기본 구성

Figure 1.1: 컴퓨터 구성

• 계산하는 도구 computer1.1)

1.1) 컴퓨터의 가장 기본적인 기능인 셈을 하는(reckon) 것, 계산(calculation) 하는 것이다. 초기의 컴퓨터로 하던 것은, 예를 들면 1942년에 등록한 에니악(ENIAC)은 막대한 계산을 지정한 정밀도(precision)를 사용하여 고속으로 실시하 여 작성했다. 당시 컴퓨터의 최대 관심은 수학상 문제(mathematical problems)를 고속으로 푼다는 것이었다. 그러나 오늘날에는 컴퓨터의 일은 수학적인 것만이 아닌 수치적인 성질(numerical nature)을 가지고 있다. 따라서 컴퓨터라

2


컴퓨터의 기본 구성

1.1.1

기본용어 정리

• 하드웨어(hardware) - 정보들의 전송 통로를 제공하고, 그 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체를 의미함 - 하드와이어 프로그램(hardwired program)1.2) • 소프트웨어(software) - 하드웨어가 특정 작업을 수행하도록 제어 신호들을 제공하는 일련의 코드들(codes) 혹은 명령어들 (instructions)의 집합 • 운영체제(Operationg System) - 하드웨어와 응용 프로그램 사이에 존재하는 시스템 프로그램을 의미한다 • 펌웨어(Firmware) - 하드웨어와 소프트웨어의 중간단계에 해당되며, 소프트웨어를 하드웨어화 시킨 것 - 시스템 효율을 높이기 위한 ROM에 들어 있는 기본 프로그램 - ROM에 프로그램이 고정되어 하드웨어의 특성도 가지고 있지만 실제로는 소프트웨어에 더 가깝다. - 소프트웨어를 하드웨어화 시킨 것으로 소프트웨어와 하드웨어의 중간에 해당 - 전형적인 처리루틴, 비휘발성, 변경불가 등의 특징으로 특수한 영역에서 많이 사용

는 말은 본래의 「계산한다」라는 의미를 넘어서 「컴퓨터 처리한다」라는 의미로 확대되어 왔다. 이 의미에는 계산한 다(calculate) 등의 의미도 있다. 또 compute의 구체적인 내용으로는 산술 연산(arithmetic operation)과 논리 연산 (logical operation)이 있다. 1.2) 부품을 연결하여 필요 기능을 수행하는 프로그래밍의 한 형식을 말하며, 특정 목적에만 사용, 다른 목적을 위해서 부품의 재연결이 필요함. 컴퓨터 시스템은 융통성이 없다.

3


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

1.2

중앙처리장치 CPU : Central Processing Unit

• 컴퓨터 시스템 전체1.3) 를 제어 하며 ’프로그램 실행’과 ’데이터 처리’라는 중추적인 기능 수행 • 산술 · 논리 연산장치와 제어장치, 레지스터로 구성

Figure 1.2: 컴퓨터 부품 구매사이트 에누리닷컴

Figure 1.3: CPU 구매 예

1.3) 필자의 경험으로 컴퓨터를 가장 잘 이해하는 방법중에 하나는 가능하면 컴퓨터 구성품을 직접 구매하고 조립해보는 경 험을 해보는것이 매우 중요하다고 본다. 가격을 비교하면서 다른 제품과의 차이점을 실제로 느끼고 경험해보는 과정은 후에 복잡한 컴퓨터를 이해하는 가장 빠른 지름길이 된다.

4


중앙처리장치 CPU : Central Processing Unit

1.2.1

CPU 주요기능 및 개요

Figure 1.4: CPU 주요기능

5


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

Figure 1.5: CPU 개요

6


중앙처리장치 CPU : Central Processing Unit

Figure 1.6: 중앙처리장치

Figure 1.7: 메인보드의 CPU

Figure 1.8: CPU 소켓 분리

7


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

Figure 1.9: 반도체 웨이퍼(wafer)

브랜드명 : 코어i5(750) 코어종류 : 쿼드코어 코드명 : 린필드 (Lynnfield) 클럭속도 : 2.66GHz 연산체계: 64bit 캐쉬 : L2 (1M) L3 (8M) 소켓 : 1156 소켓 제조공정 :45nm 터보부스트 : 전력소모방지, One Core 3.2Ghz 소비전력 : 95W 칩셋 : P55,H55,H57

8


기억장치(Memory Device)

1.3

기억장치(Memory Device)

• 기억장치는 그림과 같이 4개로 요약이 가능하며 각각의 장치는 전원이 들어와도 데이터가 저장되는지의 여부에 따라 보조기억장치를 구분한다. • 그렇다면 왜 이렇게 저장장치를 나누어서 사용을 하게 된 걸까? - 모든 메모리가 속도가 빠르다면 좋겠지만 빠른 메모리 일수록 가격이 비싸다는 이야기이고, 자연스럽게 자료의 중요도에 따라 메모리의 사용이 계측적으로 바뀌었다. 여기서 중요한것은 이러한 계층을 유지시 켜주는 것이 바로 OS(Operating System, 운영체제)1.4) 라고 말할 수 있다. - 운영체제는 시스템의 유지를 위해 중요한 일을 하지만 그중에서 가장 큰 역할을 하는 부분중에 하나가 스케줄 관리기능이다. - 집에 책장이 아무리 크다고 해도 학교에 가지고 갈 수 있는 가방의 크기는 정해져 있고, 작업을 할 Desk 의 크기도 정해져 있기 때문이다. 가장 중요한 것은 아마 가장 많이 사용하는 데이터가 아닐까?

Figure 1.10: 기억장치 용량과 속도관계

1.4) OS 중 윈도우와 맥은 애증의 관계이다. 시간이 흐르면서 서로 닮아간다는 부분에서 애증의 관계라고 말할 수 있다.

9


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자 주기억장치 • 수행 프로그램과 수행에 필요한 데이터를 기억하고 있는 장치 • 비교적 CPU에 접근 속도가 빠르며 많은 용량을 기억 • RAM(Random Access Memory)이 주로 사용

Figure 1.11: 주기억장치 예

• 기억장치를 의미, 좁은 의미로 Main Memory, RAM (Random Access Memory) 를 가리킴 • 전자소자로 만들어져 기억할 내용이 전기적인 신호로 저장됨 • RAM(Random Access Memory) - Static RAM : 6TR - Dynamic RAM : 1TR + 1Capacitor (Refresh 충방전),고밀도 집적가능 • ROM(Read Only Memory) • Flash Memory - NAND : 저속 대용량 - NOR : 고속

10


기억장치(Memory Device)

1.3.1

메모리의 종류

SRAM-Static Random Access Memory • DRAM에 상대되는 RAM을 SRAM이라고 부름 • Static Random Access Memory의 줄임말 • DRAM과 달리 플립플롭이라는 회로 구성요소로 구성되어 있어서 일단 한 번 기억된 정보는 전기가 흐르고 있는 동안에는 아무런 추가적인 조치가 없더라도 계속 기억 • 대신 플립플롭이 필요로 하는 기본 회로 구성요소가 많기 때문에 DRAM에 비해 좀 많이 비쌈 • 일반적인 주기억장치로는 사용되지 않고, CPU의 캐쉬나 레지스터 메모리에 사용

DRAM-Dynamic Random Access Memory • 동적으로 임의 접근이 가능한 기억장치라는 뜻 • 동적이라는 의미는 DRAM은 근본적인 구조가 컨덴서와 여기에 축적된 전하를 읽어 들여 증폭시키는 증폭기로 구성되어 있기 때문에(물론 아주 작습니다) 정기적으로 계속 전하를 충전시켜 주어서 원래의 데이터를 유지하도록 해야 한다는 의미

SDRAM - Synchronous Dynamic Random Access Memory • CPU의 FSB에 동기화되어 동작되도록 설계된 DRAM

DDR-SDRAM - Double Data Rate - Synchronous Dynamic Random Access Memory • SDRAM하고 비교해 보면 Double Data Rate가 앞에 붙은 것 말고는 같음 • CPU의 FSB와 동기화된 DRAM이기는 하지만, SDRAM은 한 번에 하나의 데이터만 보낼 수 있는 데 반해, 한 번에 두 개의 데이터를 보냄

RDRAM - Rambus Dynamic Random Access Memory • 앞서 언급된 2개 종류의 DRAM과는 설계부터가 상당히 많이 다른 DRAM • 앞의 2개는 병렬로 데이터를 처리하는 데 반해 직렬로 처리하고, Differential Signal이라는 기술을 사 용해서 클럭당 데이터 전송 효율이 높이는 등등, 전반적인 관점으로 보자면 매우 우수한 DRAM

플래쉬메모리 • 플래쉬메모리란 전원이 없는 상태에서도 메모리에 데이타가 계속 저장돼어질 수 있는 메모리를 말함. • 데이타의 저장/삭제가 자유롭다 • 플래쉬메모리는 내부방식에 따라 노어(NOR)형과 낸드(NAND)형 • 노어(NOR)형이란 셀이 병렬로 연결된 방식이고, 낸드(NAND)형이란 셀이 직렬로 연결된 구조를 가지 고 있음 • 낸드(NAND)플래쉬메모리는 주로 요즘 나오는 메모리카드중 SD카드나 Memory stick 에서 쓰이는 메 모리이고, 노어(NOR)플래쉬메모리는 MMC카드나 Compact flash 메모리에 쓰이는 타입 • 노어(NOR)형은 주로 핸드폰이나 셋톱박스 등에 주로 쓰이고 낸드(NAND)형 은 디지털카메라나 MP3 등에 주로 쓰이고 있음

11


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자 • 낸드(NAND)형은 NOR형에 비해 제조단가가 싸고, 대용량이 가능하다는 장점이 있는 반면에, 노어 (NOR)형은 낸드(NAND)형에 비해 데이타의 access 타임이 짧고(so fast)데이타의 안정성이 우수한 장 점 • 일반적으로 노어형은 인텔이, 낸드형은 우리나라의 삼성이 부동의 1위를 고수하고 있는 분야 • 플래시메모리와 HDD를 결합해서 ’하이브리드 HDD’ 라는 제품이 출시됨

12


기억장치(Memory Device) 보조기억장치 (외부 기억장치) • 반영구적으로 데이터를 저장하고 보존 • 중앙 처리장치와 직접 정보를 교환할 수 없기 때문에 주 기억장치로 옮겨진 후 처리 • 주억장치에 비해 가격은 저렴하고 저장 용량 또한 크지만 속도가 느린 단점 • 자기 테이프, 자기 디스크, 자기 드럼, 플로피 디스크, CD-ROM, DVD, Flash Memory, 광 디스크

Figure 1.12: 보조기억장치

Figure 1.13: 하드디스크

13


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자 하드디스크(hard disk) • 원형 평판(circular platter) 실제 정보가 저장되는 장소 다수의 트랙들로 구성 • 헤드(head) 전도성 코일을 통해 표면을 자화 시킴으로써 데이터를 저장하거나 검색하는 장치 • 디스크 팔(disk arm) 헤드를 이동시키는 장치 • 구동장치(actuator) 디스크 팔을 움직이는 모터

Figure 1.14: 하드디스크 검사화면

14


기억장치(Memory Device) Solid State Drive • 1956년 IBM이 최초로 ‘305RAMAC’라는 하드디스크드라이브(HDD)제작 • 현재 HDD는 헤드가 디스크와 직접 접촉하지 않고 디스크 위를 날아다니면서 디스크에 자성을 띠게 만들어 기록하는 구조로, 1973년 윈체스터 방식이 등장한 이후 35년간 모두 이 방식을 사용 • 물리적, 기계적으로 구동하는 HDD 구조는 중앙처리장치(CPU)나 램(RAM) 등 주변장치들의 발전 속 도에 비해 크게 뒤쳐지는 결과를 가져왔고, 이러한 물리적 한계로 인해 HDD는 전체 PC의 성능을 저 하시키는, 디지털시대의 마지막 ‘아날로그 기기’라는 오명을 쓰게 됨. • 디지로그(디지털+아날로그)의 유물인 HDD가 완전 디지털화한 저장장치 SSD(Solid State Drive)의 등 장으로 이제 서서히 기억장치의 왕좌를 내주기 시작 • SSD는 쉽게 설명하면 마치 낸드플래시 메모리로 만들어진 USB메모리를 꽂아 저장장치로 사용하듯이 커다란 USB메모리를 HDD 대신 사용하는 것이라고 이해하면 됨 • SSD의 데이터를 주기억장치와 주고받는 전송규격은 HDD처럼 병렬ATA(PATA), 직렬ATA(SATA) 등 • HDD는 보통 초당 수십 MB를 처리하는데 반해 SSD는 초당 100MB 이상을 처리 • 컴퓨터 부팅 속도에서부터 각종 응용 소프트웨어 구동면에서 현격한 차이를 만들어 냄 • HDD는 기계식이라 외부 충격에 약한데 반해 SSD는 충격에 강함 • HDD는 소음이 다소 큰 반면 SSD는 소음이 거의 없음 • SSD는 1와트(W) 미만의 소비전력을 보이는 데 반해 HDD는 3와트 이상의 전력을 소모 • SW 개발에 도움이 됨1.5)

Figure 1.15: SSD

1.5) SD 256G를 선택한 이유를 우선 말씀드리자면 DISK IO를 줄이고 싶었고 SSD 특징상 read 퍼포먼스가 매우 좋기 때문에 IDE (Xcode, IntelliJ, Eclipse 등)의 indexing 속도 ( code assistances 를 위해서 라이브러리와 코드 인덱싱) 와 컴파일 속도와 라이브러리 링크 속도 등 개발에서 상주프로그램에서 사용하다 하드디스크에서 프로그램이나 코드를 읽어서 메모리에 올리거나 메모리 패이징을 위해서 디스크를 사용할때 일반 7200 RPM 하드 디스크보다 SSD의 속도가 월등히 좋기 때문이며 또한 어플리케이션 런칭 속도와 구동속도는 일반 HDD보다 쾌적하게 사용할 수 있다. CPU를 업그레이드해서 몇퍼센트 연산속도를 빠르게하는 것보다. 운영체제와 전반적인 IO 속도를 높이는 것이 더 효과적이라고 판단됨

15


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

1.4 1.4.1

기타장치 Chipset

• 프로세서와 주 메모리 IDE 디스크 장치의 각종 신호 조절을 수행

Figure 1.16: Chipset

16


기타장치

1.4.2

BIOS & POST

• 전원을 켜면 맨 먼저 컴퓨터의 제어를 맡는 가장 기본적인 기능을 처리해주는 프로그램 집합수행 • Basic Input/Output System

Figure 1.17: BIOS 초기화면

Figure 1.18: BIOS Chip

역할 • 스타트업(Start-Up) 루틴 - 컴퓨터 켜는 동시에 자동으로 실행되어 컴퓨터의 상태를 검사하고 (POST; Power-On Self Test) 시스 템을 초기화 하는 작업을 말하며, 초기화 작업중에 어떤 주변 장치가 연결되어 있는지 확인함 • 서비스루틴 - 디스크 첫번째 섹터(부팅섹터)에서 운영체제의 실행 파일을 복사해 운영체제를 사용할 수 있도록 함 - 하드웨어 인터럽트 처리 • 종류 - AWARD (조립형)와 Phoenix(대기업) 제조사의 칩

17


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

1.4.3

캐시 메모리 (Cache)

• 처리속도가 빠른 CPU 와 처리속도가 상대적으로 느린 HDD 또는 주 메모리 사이에서 처리되는 데이터 액세스 속도를 향상시키기 위해 사용되는 SRAM 으로 구성된 메모리를 말함 • 내부케시 (L1) - CPU 내부에 내장되어 있는 메모리로 CPU 내부 클럭 주파수에 의해 빠르게 동작 • 디스크캐시(L2) - CPU 외부에 장착되어 외부 시스템 클럭 주파수에 의해 동작되므로 L1 보다 느리게 동작함

18


기타장치

1.4.4

입력장치(Input Device),출력장치(Output Device)

• 사용자와 컴퓨터간의 대화를 위한 도구 • 입력 장치는 입력데이터를 컴퓨터가 이해하는 신호로 변환 • 출력 장치는 중앙처리장치가 처리한 결과를 출력하는 장치

Figure 1.19: 입력장치

키보드 특수키 이해하기 가장 많이 받는 질문 중에 하나가 ”똑같이 쳤는데 안돼요” QWERTY 자판1.6)

Figure 1.20: keyboard 자판 익히기

1.6) QWERTY 자판 - 수동 타자기 시절 빠른 속도에 활자막대가 엉키는 일을 줄이기 위해서 자주 쓰는 활자를 멀리 놓아 두도록 했었으나 이것은 우리가 오늘날 사용하는 컴퓨터 자판에서는 오히려 속도의 저하를 가져오는 현상을 초래함

19


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

1.4.0 프로그램에서 만나는 키보드 배열 1

void Ckeyboard2Dlg::OnBnClickedButton1()

2

{

3

// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.

4

int _arr[100] = {0};

5

int *parr=&*_arr+1;

6

for(int i=0; i<30; i++)

7

{ _arr[i]=i;

8

_arr[i] = (_arr[i] != 0 && ~_arr[i] == 0)? i : (-i<<2)>>2;

9 10

}

11

#ifdef _DEBUG TRACE(traceAppMsg, 1, "CWinThread::PumpMessage - Received WM_QUIT.\n");

12 13

#endif

14

CString ttt = _T("Hello \’A\’ ");

15

CString *str= &ttt;

16

str->Format(_T("Hello World %2.3f \n Hello World %d \n"),2^2%2, 2<<2/2); ::AfxMessageBox(*str);

17 18

20

}


기타장치 Bottle Neck 문제

Figure 1.21: 출력장치

• 컴퓨터에서 프린터로 데이터를 전송할 경우 (Bottle Neck) 현상이 발생한다. 이것은 속도 문제로 이어 지게 되는데 OS 차원에서 속도 문제를 해결할 수 있는 완충 기술 두가지를 소개한다. - Buffering : 메모리 장치를 이용한 속도 문제 해결 - Spooling : HDD(보조기억장치) 를 이용한 속도 문제 해결

21


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자 HCI 감성 기술 • UX/UI 로의 발전에 주목

1.7)

• UX/UI 는 HCI 기술중 하나입니다. • HCI 는 컴퓨터와 인간이 상호 유기적으로 연결한다는 큰 틀이고 그중 UX/UI 는 어떻게 하면 좀더 사람의 편의성을 강조할까의 고민입니다. • IoT,Internet of Thing.M2M1.8) • 융합기술1.9) • 증강현실,Augmented Reality1.10) - ColarApp : - Demo :

1.11)

1.12)

Figure 1.22: 영화 아이언맨 화면

1.7) User Experience,User Interface 1.8) IoT기술은 Internet of Thing의 약자로서 국내에서는 사물 인터넷 기술로 불리우고 있다. IoT 기술은 실 세계에 존재 하는 사물 (Physical Things) 및 사이버 환경에 존재하는 사물(Virtual Things) 들이 인터넷을 통하여 서로 연결되고 이러한 물리공간과 가상공간의 사물들의 연동을 통하여 다양한 서비스를 제공할 수 있는 미래 인터넷 인프라 기술이다. 1.9) 공학관에서는 물건을 만드는 사람들이 모여있습니다. 사회관에는 상품을 포장하고 판매하는 사람들이 모여있습니다. 인문관에는 사람을 조금 더 가까이 이해하고 싶은 사람들이 모여있습니다. 전통적으로 인간이 조금 더 편하게 삶을 유지하도록 도와주는 일을 하고 싶어 하는 일을 엔지니어 기술자 들의 몫이었습니다. 최근의 공학은 기능중심의 제품 이 사람중심으로 가치가 이동했음을 실감하고 있습니다. 따라서 인간의 감성을 만지고 싶어하는 인문학적 소양이 매우 중요하게 대두되고 있습니다. 물론 이것을 공학적으로 접목시키기 위해서는 뇌과학, 인지과학, UX/UI 등의 기술들이 필요합니다. 1.10) 현실 세계의 영상에 컴퓨터가 생성한 그래픽스를 첨가하여 보여주는 가상 현실(virtual reality) 기술의 하나,객체 인식 (object recognition)과 추적(tracking) 기법 등을 필요 1.11) http://colarapp.com/ 1.12) http://vimeo.com/2734815

22


기타장치

Figure 1.23: picasa 동영상 요약

Figure 1.24: 증강현실 예

Figure 1.25: colarapp 예

23


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

Figure 1.26: HUD(Head Up Display)에 나타난 증강현실 예

24


소프트웨어

소프트웨어

1.5 1.5.1

정의

• 정보의 이동 방향과 정보처리의 종류를 지정하고 그러한 동작들이 일어나는 시간을 지정하는 명령들의 집합

1.5.2

종류

• 시스템 소프트웨어(System Software) - 운영체제1.13) - 컴퓨터를 효율적으로 사용하기 위해 만들어진 소프트웨어 - 컴퓨터 시스템을 제어하고 운영하는 프로그램 • 응용 소프트웨어(Application Software) - 특정한 응용 분야에 사용하기 위해 개발된 소프트웨어

1.14)

Figure 1.27: 2012년 연설

1.13) Operating System, 컴퓨터의 하드웨어나 사용자 사이에서, 사용자가 작성한 프로그램을 번역하고 화일을 편성하며 컴 퓨터 전체를 감시함으로써 효율성을 최대로 높여 주는 프로그램 집단. 공용 프로그램을 사용자가 쓰기 쉽도록 도와주며 모든 하드웨어나 주변 장치들의 기계적 전자적 특성을 고려하여 상호간에 자료를 원활하게 주고 받을 수 있도록 기본적인 운용을 담당하는 것. 컴퓨터에 관련된 모든 자원을 제어하는 소프트웨어. 1.14) 40년대에 전기식컴퓨터장치가 등장하면서 70년대 장치의 효율을 극대화하기 위한 운영체제 기술이 나오기 이전까지 기계어,Fortran,Pascal,Cobol 시대를 유지하다가 C언어를 통한 운영체제의 등장이후 SW 분야는 매우 빠른 발전을 이루게된다. 20세기말 90년에 들어오면서 인터넷과 윈도우의 등장과 함께 2차원 2D 세대를 이루었으며 다시 21세기 모바일혁명이 2차원 분산네트웍 시대를 통해 2D 세대의 꽃을 피운다. 또한 최근에는 AR,VR로 대표되는 다양한 3D 기술들이 주목받고 있다.

25


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

1.5.3

기사내용

• 프로그램 ’코딩’이 전 세계적으로 제 2국어가 되어가고 있다. • ’IT강국 코리아’, ’인터넷 세계 1등’ 이란 구호에 도취돼 세상이 SW 중심으로 변화하고 있음을 눈치 채지 못한 사이 우리 국민들은 코딩 능력을 거의 모르고 살고 있다 • 컴퓨터를 코드화하는 기본적인 능력을 미국에서는 ’코딩’, 영국에서는 ’디지털 스킬’, 우리나라는 SW 개발이라 부른다. • KAIST의 한 교수는 ”우리나라는 DJ 정부 때 컴퓨터 교육의 중요성을 강조하며 초등학교에 전산실을 만들었지만 입시위주 교육제도 아래서 수능시험에 나오지 않는 컴퓨터 교육은 사라진지 오래다” 고 지 적 • ”미래부와 교육부가 2018년 교육현장에 코딩교육을 정례화 하기 위해서 TFT를 추진하고 노력하고 있 지만 예산과 강사 확보 등 지금부터 준비해도 시행하기 상당히 빠듯하다”고 걱정했다. • 우리나라 최고의 이공계 대학으로 꼽히는 KAIST의 경우 전산학과 등 일부 전공을 제외하면 학생들을 대상으로 코딩교육은 진행되지 않고 있다. • ”대학에서 미적분 배우는 것만이 능사가 아니다. 세상이 바뀌고 있는데 옛 것만 고수하면 KAIST의 혁 신은 갈 길이 멀다”고 아쉬움을 토로했다. • 전문가들은 이 같은 현상이 마이크로소프트만 사용하고 SW 오픈소스를 등한시하는 우리나라의 기형적 문화라고 설명한다.

http://www.youtube.com/watch?v=6XvmhE1J9PY

26


소프트웨어

1.5.4

과제

본인의 컴퓨터를 분리해서 CPU 와 메모리를 각 부품과 함께 기념사진을 찍고, 부품에 대한 설명과 분해 조립 순서를 제출하시오. • 종류: 그래픽카드 • 이름: nVidia 6600 • 구입당시가격: 10000원 • 사양: 메모리크기 속도 등등... • 구입시기:2012년 10월 • 비고:

27


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자 참고자료

Figure 1.28: 컴퓨터메인보드

Figure 1.29: 컴퓨터메인보드 아수스 H87-PRO STCOM

• (a) 22nm CPU 지원 1150소켓 • (b) DDR3 슬롯 MAX32GB 1600Hz

28


소프트웨어 • (c) PCI Express 3.0 • (d) intel H87 칩셋 • (e) USB 3.0 • (f) SATA • (g) USB 2.0

Figure 1.30: 컴퓨터메인보드 IO

29


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자 컴퓨터 주립 노하우 • 되도록 노트북보다 데스크톱을 구매하도록 하자. • 친구 컴퓨터가 고장 났다고 하면 달려가서 들여다본다. • 친구 컴퓨터를 가지고 테스트해보자 • 친구 컴퓨터를 업그레이드 시켜주자 • 조립은 잘 된 모델에서부터 따라 하면서 배우자 • 반드시 기록하고 백업을 해두자 • 방해받지 않는 시간에 작업하자

30


Physical Computing

1.6

Physical Computing

1.6.1

컴퓨터에 대한 오해

• 대학 면접을 해보면 많은 학생들이 어렸을 때 삼촌이 사다 주신 자동차 장난감에서 깊은 흥미를 느끼고 공학에 도전했다는 이야기를 많이 들을 수 있다. 하지만 어렵게 입학한 대학에서는 이것을 가능하게 하 는 많은 과목들이 존재하지만 학생들의 태도는 처음과 많이 달라져 있다. 심지어 만들고 싶어하는 부품 을 지원해준다고 해도 손을 대려 하지 않는다. 필자는 처음 몇 년간 배신감을 느꼈지만 최근에는 다른 문제가 숨어 있을 수 있다는 생각을 하게 된다.

Figure 1.31: 면접장면

31


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

1.6.2

디지털 네이티브의 탄생

• 우리주변에는 이미 많은 수의 컴퓨터(반복 계산,논리 장치)기계가 숨어 있음을 알 수 있다. 조금 극단적 으로 이야기한다면 우리는 자동차를 타고 다니느것이 아니라 컴퓨터를 차고 다니는 것일 수도 있다는 생각을 하게 된다.

Figure 1.32: 디지털 네이티브

• 우리가 아주 자연스럽게 사용하는 컴퓨터라는 기계장치는 사실 초기에는 전기를 사용하지 않는 완전한 기계식 장치였다. 이것이 1940년대 반도체 소자를 통해서 전기적 장치로 발전할 수 있었다는 사실을 기억할 필요가 있다. • 최근 대학의 신입생들을 디지털네이티브라고 부른다. 이들에게 컴퓨터는 거의 전기적 장치라는 생각이 강하다. 따라서 연산이나 정보의 교환 이외의 기계식 임베디드시스템(특수목적 컴퓨터)에 대한 이해가 매우 어려운게 현실이다. • 이들에게는 상대적으로 컴퓨터의 활용능력에 초점을 맞추어 많은 교육이 이루어지고 있다. 여기서 활용 능력이라고 함은 정보를 만들고 가공할 수 있는 능력을 이야기 하며 최종 사용자 중심의 컴퓨팅 교육을 이야기 한다. • 최종 사용자 중심의 컴퓨터는 디지털세상이 만들어낸 새로운 수요공급 구조이며 정보의 생산적인 측면 보다는 정보의 소비적인 측면으로 발전하고 있다. 이것은 디지털 세상의 긍정적인 부분이자 매우 위험한 측면이라고 보도되고 있다. 특히 스마트폰의 등장으로 정보의 소비는 사회적 문제로 발전하기에 이른다. • 컴퓨터는 삼촌이 사다 주신 어린 호기심을 자극했던 기계장치와는 많이 다른 장치이다. 정보를 생산하 고 소비하는 도구로서의 컴퓨터에 익숙한 디지털네이티브에게 기계장치는 먼나라 이야기가 되어버렸다. TV 리모콘을 만지는 아이들에게 뭐라고 하지 않지만 컴퓨터를 만지는 아이에게는 뭐라고 한다. 혹시 라도 잘못 될까하는 두려운 어른들은 컴퓨터를 모시고 살 정도이다. • 필자는 한동안 신입생들에게 컴퓨터를 조립하고 분해해보는 과제를 내주곤 했다. 학생들 반응도 좋았다. 하지만 이것도 얼마가지 못 했다. 노트북을 넘어서 울트라노트북까지 반도체기술이 발전함에 컴퓨터는 자꾸만 작아져 갔다. 1kg 도 안되는 고성능 컴퓨터가 나오는 상황에 이젠 더이상 분해라는 걸 해볼 수가 없는 상황이 되었다. 점점 더 디지털 네이티브들에게 기계식 장치는 멀어져간든 모습이 안타까웠다. • 상황이 이렇다 보니 컴퓨터를 가지고 무언가 기계장치를 만들어 본다는 것은 비용 측면에서 굉장히 많은 장애물을 넘어야 했다. • 하지만 최근 반가운 소식은 최근에 피지컬 컴퓨팅이라는 분야가 주목받고 있다. 이것은 컴퓨터의 논리연 산 측면보다는 입출력 부분에 초점을 맞춘 컴퓨터가 등장하기 시작한 것이다. 마우스와 키보드 이외에

32


Physical Computing 입력장치를 찾아보기 힘든 장치를 넘어서 개성넘치는 다른 방법으로 DIY 세상을 만들어 갈 수 있는 길이 열렸고 보다 창의적인 생각을 할 수 있는 원동력이 되고 있다.

33


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

1.6.3

프로그래밍의 필요성

• 그렇다면 피지컬 컴퓨팅은 선풍기 같은 단순한 기계장치와는 무엇이 다른까? 그것은 오토마타1.15) 기 계식 컴퓨터의 문제점을 극복할 수 있다는 것이다. • 오토마타를 사용한 기계장치는 복잡한 작업에 대해서 경우의 수가 너무 많은 경우 이것을 모두 그려낼 수 없다는 문제점을 가지고 있다. 이것을 조금더 편하게 하기 위해서 우리는 프로그램이라는 기계의 언 어를 만들어 냈다. 물론 이것은 인간의 사고 처리 방식을 많이 참조했으며 이것을 이해하는것은 나중에 다시 언급하기로 하겠다. • 앞서 프로그램이라는 도구를 통해 절차의 다양화와 자동화를 이루어 내었다. • 우리는 좀더 나아가 의미있는 정보를 만들어 내기 위한 많은 조건들을 건내주고 이것을 자동화 함으로써 컴퓨터를 이용해서 정보를 만들어 낼 수 있는 시점에 와 있다. 예를 들어 현관문 앞에 침입자를 감지할 수 있는 정보생산의 자동화도 가능하게 되었다.

Figure 1.33: Vending Machine

1.15) 기계 내부의 구성이나 동작에 대한 세부 사항이 무시되고 입력과 출력에 대한 사항만이 명시되는 추상적인 기계

34


Physical Computing

1.6.4

다양한 컴퓨터 장치

Figure 1.34: Desktop Computer

Figure 1.35: 가전 Embedded System Computer

Figure 1.36: 신호등 시스템

35


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

Figure 1.37: 운영체제를 포함한 스마트폰

36


Physical Computing

1.6.5

기계적 논리장치 도전과제

• 기계적 논리장치에 대한 도전으로 필자는 몇 가지 프로젝트를 시도했고 이를 통해 논리에 대한 기계적 접근을 훌륭하게 수행했다.

Figure 1.38: 기계적 다수결 장치 (4조)

Figure 1.39: 기계적 다수결 장치 (3조)

37


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

Figure 1.40: 기계적 다수결 장치 (7조)

Figure 1.41: 기계적 다수결 장치 (1조)

Figure 1.42: 기계적 다수결 장치 (손스케치)

38


Physical Computing

Figure 1.43: 기계적 다수결 장치 (CAD)

Figure 1.44: 기계적 다수결 장치 (CAD)

Figure 1.45: 기계적 다수결 장치 (CAD)

39


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

1.6.6

라즈베리파이(Raspberry Pi)

• Home1.16) • Mobile Pi-to-Go: Portable Raspberry Pi Computer1.17)

Figure 1.46: Raspberry Pi 구조

Figure 1.47: Raspberry Pi

1.16) http://www.raspberrypi.org/ 1.17) http://www.youtube.com/watch?feature=player_detailpage&v=E89s2h9swIc

40


Physical Computing

1.6.7

아두이노

• Home http://www.arduino.cc/ • 미디어아티스트 http://www.youtube.com/watch?v=JUcEZLKr7Ag • 쿼드콥터 http://www.youtube.com/watch?v=Dk_ni3oX-KE • 쿼드콥터 TED http://www.youtube.com/watch?v=w2itwFJCgFQ • 쿼드콥터 cooperate http://www.youtube.com/watch?v=4ErEBkj_3PY

Figure 1.48: 아두이노 구조

41


제 1 장 컴퓨터 구조 입문::컴퓨터를 분해해 보자

연습문제

1.7

Question

1

IoT기술에 대해 설명하시오. 정답

2

AR과 VR 의 차이점에 대해 설명하시오. 정답

3

운영체제와 펌웨어와의 차이점을 설명하시오. 정답

4

CPU 의 중요한 기능 3가지에 대해 각각 설명하시오. 정답

5

컴퓨터를 구성하는 메모리의 4가지 종류와 특징을 그림을 포함해서 설명하시오 정답

6

CPU 와 기억장치들 사이에 데이터를 전달 받는 경로(Bus) 3가지를 각각 설명하시오 정답

7

SRAM 과 DRAM 의 차이점을 설명하시오. 정답

8

DDR-SDRAM 에 대해 설명하시오. 정답

9

플래쉬메모리 의 NAND 와 NOR Type의 차이를 설명하시오. 정답

10 42

SSD 의 약자와 전송 규격에 대해 설명하시오.


연습문제 정답

11

Chipset 의 역할을 설명하시오. 정답

12

BIOS 와 POST 의 개념을 각각 설명하시오. 정답

13

캐시 메모리 (Cache)의 종류와 역할을 설명하시오. 정답

14

Buffering 와 Spooling 에 대해 설명하시오. 정답

15

UX/UI 와 HCI 에 대해 각각 설명하시오. 정답

43


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.