Chapter 1 Welcome Aboard.

Slides:



Advertisements
Similar presentations
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 프로그래밍 언어론 2nd edition Tucker and Noonan 1 장 소 개 A good programming language is a.
Advertisements

운영 체제의 일반 발표자 : 백승재 황영종. 1. 운영체제의 의의 전자 계산기에서 사용자와 하드웨어와의 직접적으로 대화하는 대신 운영 체제라는 시스템 프로그램을 통하여 하드웨어를 다루는 것이다. 한정된 컴퓨터 자원을 효율적으로 관리, 운영함으로써 사용자에게 편의성을 제공하는.
전자회로 II 1 1st Lecture: Electronic Circuit Design Hoi-Jun Yoo Semiconductor System Laboratory Dept. of E.E. KAIST.
Dept. Computer Engineering DBLAB 정보처리개론 담당 교수 : 김정석 2009 년도 1 학기.
C 언어 Sun Moon University 1 of 25 C 언어 : 강의소개 강의실 : 산 211 담당교수 : 고경철 ( 정보통신공학과 ) 사무실 : 산학협력관 105B 면담시간 : 수업후 1 시간
1/37 Chapter 4: 프로세서 성능과 휴대성을 위한 하드웨어 © The McGraw-Hill Companies, Inc., 세기의 가장 중요한 발명품 : 마이크로 프로세서 일상생활에 널리 사용됨 프로그램에 의한 적응성.
마이크로 컨트롤러 Microcontroller.
8장 프로그래밍 언어 8.1 프로그램이란? 8.2 프로그램 언어의 역사 8.3 프로그램 설계 절차
Chapter 2 정보시스템 아키텍처 (IS Architecture)
AVR.
Vision System Lab, Sang-Hun Han
제8장. RISC 및 슈퍼스칼라 프로세서 8.1 RISC의 출현 동기 8.2 RISC의 발전 경위
제4장 명령어 처리.
컴퓨터 하드웨어 Computer Hardware
2장 마이크로프로세서 구성요소 Slide 1 (of 19).
(강의 홈페이지: 강좌 개요 서울대학교 통계학과 2010년 2학기 컴퓨터의 개념 및 실습 (강의 홈페이지:
Signal 자연계에 존재하는 모든 정보전달의 수단 신호의 공학적 표현 물소리, 바람소리, 새소리 짐승소리,불,연기,봉화…
CPU (central Processing Unit)
Digital Logic Structures
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
목 차 Chapter 1 컴퓨터와 프로그램 Chapter 2 프로그래밍과 운영체제
Multimedia Lab. Introduction
기본 컴퓨터 프로그래밍 Lecture #6.
『디지털 경제시대의 경영정보시스템』 김효석 · 홍일유 공저 ⓒ 2000, 법문사
강좌 개요 2009년 1학기 컴퓨터의 개념 및 실습.
과목 홈페이지  전산학개론 이메일 숙제를 제출할 경우, 메일 제목은 반드시 ‘[전산학개론]’으로 시작.
제 1 장. JAVA란 작성자 : NLIP.
프로그래밍 언어론 2004년 가을학기 창 병 모 숙명여대 컴퓨터과학과.
임베디드 하드웨어 Lecture #6.
컴퓨터 구조학 정보보호학과.
컴퓨터 구조론 2001년 10월 22일 발표자 황영선.
McGraw-Hill Technology Education
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
프로그램 개발과 언어 Chapter 05 컴퓨터의 이해
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
정보(information) 데이터(data) 어떤 사물에 대한 소식이나 자료 가공된 데이터
프로그래밍 서울대학교 통계학과 2009년 2학기 컴퓨터의 개념 및 실습 (
Chapter 06 명령어와 번지지정 방식.
Artificial Intelligence Chapter 9 Automatic Computing Engine
아날로그 VS 디지탈 -. Analog Vs Digital -. 디지털 논리에 대하여 -. 메모리에 대하여
제 1장 시스템 소프트웨어의 개요.
10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
( Overview of the Course Kwangman Man ( SangJi University.
- 나는 내 마음의 주인공 – 집단상담프로그램 인제대학교 교육대학원 상담심리전공 하 정 선
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
Chapter 4 The Von Neumann Model.
제1장 시스템 소프트웨어의 개요 컴퓨터시스템 및 하드웨어 구성 컴퓨터의 구성과 기능 시스템프로그램의 개요
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
Computer System Architecture
A Web-Based Little Man Computer Simulator
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
제 1 장. 자료구조와 알고리즘.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
Internet Computing KUT Youn-Hee Han
제1회 PNU 코딩경진대회 부산대학교 소프트웨어교육센터.
Name Title Company Name
언어 언어 사람 사람 사람들간의 의사 소통을 위한 수단
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
컴퓨터구조 강의소개 정보통신공학과 한성대학교.
엔화 대환/대출 자금용도 대상 이자 차액 효과 (A,B,C) 환율 리스크 헷징 (A,B) 엔화의 평균환율 (A,B,C)
강의교안 이용 안내 *이 책에 딸린 강의자료는 교수님의 효율적인 수업진행을 돕기 위해 만들어졌습니다.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
제02장 컴퓨터 개요.
Introduction to Computer System Spring, 2019
임베디드 하드웨어 Lecture #6.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Lecture 7 7-Segment LED controller using u-controller
Presentation transcript:

Chapter 1 Welcome Aboard

교과목 기본 정보

Introduction to the World of Computing There is No Magic to Computing !!! 컴퓨터는 원하는 것을 알아서 해주는 천재 전자장치일까? 천만에! 바보 전자 장치에 불과해! 오직 우리가 지시한 일만 하지. COMPUTER가 복잡한 생명체처럼 보일지 모르지만 사실 아주 간단한 것들을 SYSTEMatic 하게 결합 시킨 대규모 집합체(Huge Collection)일 뿐이야. 이 강좌의 목표? 컴퓨터 시스템에 대한 이해 Python 언어를 이용한 프로그래밍 입문 . 컴퓨터 시스템 이해와 관련한 접근법? 아래 기초 개념부터 하나 하나 쌓아가는 Bottom-Up Bits  Gates  Processor  Instructions  Programming

Two Recurring Themes (1) 추상화 (Abstraction) 컴퓨터 과학에서 추상화란? 개념과 그를 실현하는 방법론/실체를 분리하는 것, 구현의 구체적 내용을 숨기는 것 – (Wikipedia : http://en.wikipedia.org/wiki/Abstraction_(computer_science)) 예) 30년 전 VTR 이든, 곰Player든 재생을 하려면 ▶ 버튼을 누름. 생산성 향상에 기여 - 세부 지식 및 이해 없이도 활용 가능 예) 자동차 엔진의 작동 원리를 몰라도 자동차를 운전할 수 있는 것 … 단 뭔가 문제가 생기기 전까지! 예) 엔진오일 확인 막대가 어디 있지? 점화 플러그가 뭐야? 복잡하고 거대한 것을 몇 가지 계층으로 구분하고 추상화를 통해 이해하는 능력은 매우 중요함  이를 통해 특정 계층에 집중할 수 있음. 그러나 추상화가 그 특정 계층을 이해하는 것만으로 충분하다는 것을 의미하지는 않음. 연관된 다른 계층과 요소들을 파악하고 이들과 어떻게 연계하여 동작하는지 파악할 수 있는 역량 역시 필요함.

Two Recurring Themes (2) 하드웨어 vs. 소프트웨어 컴퓨터 시스템은 하드웨어 또는 소프트웨어 둘 중의 하나? 하드웨어와 소프트웨어 둘 다 컴퓨터 시스템의 필수 구성 요소 하드웨어 전문가는 소프트웨어를 몰라도 될까? 그 반대는? 하드웨어와 소프트웨어 두 가지 모두에 대해 그 역량과 한계를 이해할 수 있어야 함.

Two Pillars of Computing Universal Computing Device 충분한 시간과 메모리 공간만 있다면 모든 컴퓨터들은 동일한 컴퓨팅을 해낼 수 있다. 범용 튜링 기계 (Universal Turing Machine) 개념 Problem Transformation 컴퓨팅의 궁극적 목적은 자연어(Natural Language)로 표현되는 문제(Problem)를 컴퓨터 회로에서의 적절한 전자의 움직임으로 변화(Transformation)시켜 내는 것. 문제 해결을 위한 계층적 접근 (Transformation between Layers)

핵심 개념 #1 : Universal Computing Device 충분한 시간과 메모리 공간만 있다면 모든 컴퓨터들은 동일한 컴퓨팅을 해낼 수 있다.  컴퓨터 시스템의 본질은 동일함. 빠른 컴퓨터가 할 수 있는 일은 느린 컴퓨터도 할 수 있다. 시간만 더 걸릴 뿐이다. = = PDA Workstation Supercomputer

Turing Machine TADD TMUL Turing Machine a,b a+b a,b axb Turing은 모든 형태의 계산(Computation)을 튜링 기계라고 이름 지은 특정 기계로 수행할 수 있음을 주장. Turing은 1937년 Turing Machine의 개념 및 수학적 모형을 제시했지만 실제 장치로 구현하지는 않았음. 최초의 디지털 컴퓨터는 1946년에 현실화 Turing Machine의 예 덧셈을 수행하는 튜링 기계, 곱셈을 수행하는 튜링 기계 블랙박스 모형, 어떤 작업을 수행해야 하는지는 기술되어 있지만 실제 이 작업을 어떻게 실현할 지에 대해 기술하지는 않음. TADD TMUL a,b a+b a,b axb

Universal Turing Machine 범용 튜링 기계 앞서 소개한 덧셈, 곱셈 기계 뿐 아니라 모든 튜링 기계가 하는 일들을 해낼 수 있는 튜링 기계  이 역시 튜링 기계의 일종 입력으로 데이터 뿐 아니라 수행하여야 할 계산 작업을 포함 Universal Turing Machine is Programmable !!! 컴퓨터 또한 Programmable 즉 컴퓨터는 Universal Turing Machine을 에뮬레이트 할 수 있음. U a,b,c c(a+b) Universal Turing Machine Tadd, Tmul

Alan Turing (출처 Wikipedia) 생애 1912년 출생, 1931년 케임브리지 대학 수학사 학위 취득, 1936년 미국 프린스턴 대학에서 박사 학위 취득. 1937년 튜링 기계 개념을 도입한 논문 “계산 가능한 수와 결정할 문제에의 응용”을 발표, 1938년 영국 정부 암호학교 부임, 1939년 독일군의 에니그마 암호 해독기 개발 동성애자 혐의로 체포된 후 1954년 독이 든 사과를 먹고 죽음. 튜링은 수학, 암호학, 생물학 등 많은 분야에서 다양한 연구 활동을 했지만 특히 컴퓨터 과학 분야에 끼친 영향이 크기 때문에 컴퓨터 과학 및 전산학의 아버지라고 불린다. 그가 구상한 튜링 기계의 무한히 긴 띠는 컴퓨터의 메모리에, 기호를 읽는 기계는 컴퓨터의 CPU에 비유할 수 있다. 또한 튜링 기계의 한 종류인 범용 튜링 기계는 프로그램을 내장해서 작동하는 현대의 컴퓨터를 많이 닮아 있다. 계산기 학회(ACM)에서는 튜링의 공로를 기리기 위하여 1966년부터 매년 컴퓨터 과학에 중요한 업적을 남긴 사람들한테 주는 튜링상을 제정하였다. 현재 튜링상은 컴퓨터 과학 분야의 노벨상이라고도 불린다. 애플 컴퓨터의 로고인 '한 입 베어먹은 사과'는 튜링을 연상시키지만, 애플 컴퓨터가 로고를 만들 때 튜링을 염두에 두고 만들었는지는 확실하지 않다. 현재 애플 컴퓨터에서는 로고의 모델이 뉴턴의 사과라고 주장한다.

From Theory to Practice 이론적 관점에서는 컴퓨터는 계산할 수 있는 것이라면 그 어떤 작업도 수행 할 수 있음 충분한 시간과 메모리가 주어진다면 그러나 실제로 컴퓨터를 이용하여 문제를 푸는 것은 여러 가지 제약 조건들 아래서 이루어짐 시간 제약 예) 가까운 미래의 전국의 기상 상태를 예측하려는 문제 비용 제약 예) 가정 내의 모든 전등을 원격에서 끄고 켜려고 하려는 문제 전력 제약 예) 스마트 폰에서 고성능 비디오 게임 구동에 따른 배터리 소모

핵심 개념 #2: Layered Problem Transformation Problems Algorithms Language Instruction Set Architecture Microarchitecture Circuits Devices

How do we solve a problem using a computer? 일련의 연속된 추상화된 계층 간의 Systematic한 변환 과정을 거쳐 해결 Problem 소프트웨어 설계 (S/W Design) 알고리즘과 자료구조의 선택 Algorithm 프로그래밍 프로그래밍 언어로 설계한 내용을 표현 Program Compiling/Interpreting: 프로그래밍 언어를 기계 명령으로 변환 Instr Set Architecture

Deeper and Deeper… 프로세서 설계 ISA 구현을 위한 구조 설계 Microarch 논리/회로 설계 Instr Set Architecture 프로세서 설계 ISA 구현을 위한 구조 설계 Microarch 논리/회로 설계 프로세서 구성 요소 실현을 위한 게이트 및 하위계층(Low-Level) 회로 설계 Circuits 엔지니어링 수행 및 제작 최하위 계층 장치 요소의 개발 및 생산 Devices

Descriptions of Each Level (1) Problem Statement 자연어(Natural Language)를 이용한 문제 기술 모호하고 정확하지 않을 수 있음. Algorithm 문제 해결을 위한 일련의 절차, 종료를 보장하여야 함. 명확성 (Definiteness) : 알고리즘의 절차를 구성하는 각 단계가 정확하게 기술되어야 함. 컴퓨팅 유효성 (Effective Computability) 각 단계가 컴퓨터에서 실행 할 수 있는 내용이어야 함. 예) 가장 큰 소수(Prime Number)를 구하라. 유한성 (Finiteness) 알고리즘의 종료가 보장되어야 함.

Descriptions of Each Level (2) Program 알고리즘을 프로그래밍 언어로 표현하는 것. 고수준 언어와 저수준 언어로 프로그래밍 언어 분류 고수준 (High Level) 언어는 하부의 컴퓨터 장치에 독립적(Machine Independent), C/C++언어, Java, COBOL, Fortran, LISP … 저수준 (Low Level) 언어는 하부의 컴퓨터 장치에 종속적  Assembly 언어 Instruction Set Architecture (ISA) 컴퓨터가 수행할 수 있는 명령어 집합(Instruction Set)을 정하는 것. 수행할 수 있는 연산(Operation)과 각 연산 마다 필요한 데이터(Operand) 정의 데이터 형식(Data Type), 주소 모드(Addressing Mode) 연산에 쓰일 Operand의 데이터 형식과 위치를 기술하는 방법 대표적 실용 ISA의 예 : x86 100개 이상의 Operation, 10여개의 데이터 형식, 수십여개의 주소 모드 이 외에도 Power PC, PA-RISC, SPARC 등의 ISA

Descriptions of Each Level (3) Microarchitecture 프로세서 구현의 세부 구조 및 체계 동일한 ISA를 서로 다른 구조로 구현할 수도 있음. Logic Circuits Microarchitecture를 실현하기 위하여 간단한 논리 회로들을 조합 덧셈과 같은 하나의 기능을 실현하는 데에도 매우 다양한 방법이 존재 Devices 장치를 구성하는 부품이나 재료의 특성, 생산성

Many Choices at Each Level 연립 방정식의 풀이 Gaussian elimination Jacobi iteration Red-black SOR Multigrid FORTRAN C C++ Java Intel x86 PowerPC Atmel AVR Centrino Pentium 4 Xeon Ripple-carry adder Carry-lookahead adder CMOS Bipolar GaAs Tradeoffs: 비용, 성능, 전력 소모 … Sun and Java are trademarks of Sun Microsystems, Inc. Intel, Pentium, Centrino, and Xeon are trademarks of Intel Corporation. AMD and Athlon and trademarks of Advanced Micro Devices, Inc. Atmel and AVR are registered trademarks of Atmel Corporation. PowerPC is a trademark of International Business Machines Corporation.