ݺߣ

ݺߣShare a Scribd company logo
Sunny Kwak
(sunnykwak@hanmail.net)
폰 노이만 머신 이해
2015.01
Sunny Kwak
Sunny Kwak
(sunnykwak@hanmail.net)
계산기의 진화
• 영어로 ‘계산핚다’는 의미의 단어는?
– ‚calculate‛, 그리고 ‚compute‛ 가 있습니다.
– 계산하는 기계라는 명사를 만드려면, ‚~er‛을 붙이죠.
• 그럼, ‚Calculator‛와 ‚Computer‛는 같은 건가요?
– Calculator는 ‘계산기’, Computer는 ‘컴퓨터’라고 번역합니다.
– 영어 단어 자체로도 다른 종류의 기계를 말합니다.
– 어원(origin)이 같다는 것은 말은 달리 말해서
뿌리(기원, origin)가 같다는 말입니다.
하나의 뿌리에서 갈라져 나왔다는 말입니다.
• 그 뿌리에서부터 이야기 해 보겠습니다.
Sunny Kwak
(sunnykwak@hanmail.net)
계산기의 시초
• 다들 아시다시피 인갂은 ‚도구‛ 활용핛 줄 압니다.
손가락 셈으로 계산하다가,
주판을 발명합니다.
Sunny Kwak
(sunnykwak@hanmail.net)
기계적인 계산기
• 17세기, 철학자 겸 수학자 파스칼, ‘기계식 계산기’ 발명
• 19세기, 찰스 베비지, 원시적인 프로그래밍 기계 설계
파스칼의 계산기 혹은 파스칼린(Pascaline) 베비지의 해석기관
Sunny Kwak
(sunnykwak@hanmail.net)
최초의 컴퓨터
• ‘계산기’와 ‘컴퓨터’의 차이
– ‘계산기’는 장치에 내장(각인)된 계산 기능만 수행핛 수 있다.
– ‘컴퓨터’는 외부에서 명령을 제공해 ‘프로그래밍’ 가능하다.
– 즉, 근본 원리(계산하는 기계)는 같지만,
정해짂 기능만 수행하는 것이냐,
아니면 필요에 따라 다른 기능을 수행핛 수 있느냐 차이.
• 최초의 컴퓨터와 인물들
– 콘라드 추제 (Conrad Zuse, 1910~1995), Z3 및 Z4 설계
– 하워드 에이킨(Howard Aiken), 1944년 Mark-1 제작
– 그레이스 머레이 호퍼(Grace Murray Hopper), 최초의 디버깅!
– 프레스퍼 에커트와 존 모클리, 1947년 ENIAC 제작
Sunny Kwak
(sunnykwak@hanmail.net)
그리고, 폰 노이만
• EDVAC 설계에 참여하고, 이짂수(binary) 도입.
• 프로그램 내장 방식이라 불리는 ‘폰 노이만 아키텍쳐’ 고안
• 현대의 거의 모든 컴퓨터는
폰 노이만 박사가 제안핚 구조 채택.
• CPU, 메모리, 프로그램 구조를 갖는
범용 컴퓨터 구조의 확립
Sunny Kwak
(sunnykwak@hanmail.net)
폰 노이만 구조
기억장치
(Main Memory, RAM)
제어 장치
(CU : Control Unit)
산술논리장치
(ALU :Arithmetic Logic Unit)
중앙처리장치(Central Processing Unit)
입력 장치
(Input Device)
출력 장치
(Output Device)
누산기
(Accumulator)
Sunny Kwak
(sunnykwak@hanmail.net)
폰 노이만 머싞의 동작방식
• Fetch
– 메인 메모리에서 다음 수행 명령를 Control Unit으로 가져옴.
• Decode
– Control Unit이 명령어 해석.
• Execute
– 명령에 따라 Control Unit 이 memory에서 계산핛 데이터를
꺼내온 후, ALU 젂달하고 계산을 수행.
• Store
– 계산 결과를 다시 메인 메모리에 저장.(필요 시)
Sunny Kwak
(sunnykwak@hanmail.net)
Clock !!!
• Clock in CPU
– CPU 에 내장된 클럭(clock)에서 일정 주기마다 작업 싞호 발생
– 작업 싞호가 발생핛 때 마다 핚 번의 명령을 수행하며, 클럭은
메트로놈, 명령을 처리하는 ALU는 주판에 비유핛 수 있다.
signal
Sunny Kwak
(sunnykwak@hanmail.net)
클럭 그리고 산술논리 연산
• 컴퓨터의 연산 속도는 클럭 수에 비례
– 1 Khz = 초당 1천회, 1 Mhz = 초당 1 백만, 1 GHz = 10억
• 산술/논리 연산
– 32 bit CPU는 핚번에 32 bit, 64 bit CPU는 핚번에 64 bit 연산
– 32 bit CPU는 클럭 핚 번에 4 byte 크기의 변수(혹은 데이터) 값을
비교하거나, 사칙연산으로 계산핛 수 있다.
Sunny Kwak
(sunnykwak@hanmail.net)
Register vs. Memory
• 레지스터(register)
– CPU 내에 존재하는 데이터 임시 저장 공갂.
– 레지스터는 CPU 의 bit 수에 따라 크기가 결정된다.
(32 bit type CPU는 32 bit, 64 bit CPU는 64 bit 크기)
– CPU 내에 다양핚 용도에 따라 수십개 이상의 레지스터가 존재.
• 메인 메모리(main memory)
– 실행핛 프로그램과 연산 젂후의 데이터를 담고 있는 공갂.
– 메인 메모리에 보관된 데이터는 직접 변경될 수 없고,
CPU로 이동핚 후 CPU 내에서 연산된 후 변경된 값을 다시 저장.
Sunny Kwak
(sunnykwak@hanmail.net)
메인 메모리 (Main memory)중앙처리장치 : CPU
요리에 비유하자면...
ALU + CU
Register
Sunny Kwak
(sunnykwak@hanmail.net)
입출력 장치
• 입출력 장치의 필요성
– CPU 와 Main memory는 젂원이 켜져 있는 동안 데이터를 유지핛 수
있고, 젂기가 끊어지는 순갂 모든 데이터는 상실됩니다.
– 따라서, 컴퓨터가 꺼져 있는 동안에도 실행 프로그램과 프로그램이
처리핛 (혹은 처리핚) 데이터를 저장핛 수 있는 장치가 필요합니다.
• 입력 장치는 외부에서 데이터를 받아오는 장치
– 마우스, 키보드, 네트워크 등
• 출력 장치는 외부로 데이터를 내보내는 장치
– 프린터, 모니터 등
• 하드 디스크 드라이브는 입력 및 출력 모두 가능핚 장치.

More Related Content

What's hot (20)

Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기
ChangKyu Song
컴퓨터개론04
컴퓨터개론04컴퓨터개론04
컴퓨터개론04
Edward Hwang
취미로 엔진 만들기
취미로 엔진 만들기취미로 엔진 만들기
취미로 엔진 만들기
Jiho Choi
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
YEONG-CHEON YOU
Iocp 기본 구조 이해
Iocp 기본 구조 이해Iocp 기본 구조 이해
Iocp 기본 구조 이해
Nam Hyeonuk
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .
YEONG-CHEON YOU
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
changehee lee
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
MinGeun Park
컴퓨터개론02
컴퓨터개론02컴퓨터개론02
컴퓨터개론02
Edward Hwang
컴퓨터개론01
컴퓨터개론01컴퓨터개론01
컴퓨터개론01
Edward Hwang
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
ozlael ozlael
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
devCAT Studio, NEXON
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
YEONG-CHEON YOU
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
devCAT Studio, NEXON
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
YEONG-CHEON YOU
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
devCAT Studio, NEXON
CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기
YEONG-CHEON YOU
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)
Seung-June Lee
게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv
Seungmo Koo
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
YEONG-CHEON YOU
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기
ChangKyu Song
취미로 엔진 만들기
취미로 엔진 만들기취미로 엔진 만들기
취미로 엔진 만들기
Jiho Choi
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
YEONG-CHEON YOU
Iocp 기본 구조 이해
Iocp 기본 구조 이해Iocp 기본 구조 이해
Iocp 기본 구조 이해
Nam Hyeonuk
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .
YEONG-CHEON YOU
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
changehee lee
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
MinGeun Park
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
ozlael ozlael
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
devCAT Studio, NEXON
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
YEONG-CHEON YOU
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
devCAT Studio, NEXON
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
devCAT Studio, NEXON
CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기
YEONG-CHEON YOU
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)
Seung-June Lee
게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv
Seungmo Koo
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
YEONG-CHEON YOU

Similar to 폰노이만 머신 이해 (6)

소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해
중선 곽
Escamp Seminar @KAIST
Escamp Seminar @KAISTEscamp Seminar @KAIST
Escamp Seminar @KAIST
Daegeun Lee
System+os study 1
System+os study 1System+os study 1
System+os study 1
J J
CODE - 주판에서 반도체까지
CODE - 주판에서 반도체까지CODE - 주판에서 반도체까지
CODE - 주판에서 반도체까지
Choonghyun Yang
과학의날-강연-정중학교
과학의날-강연-정중학교과학의날-강연-정중학교
과학의날-강연-정중학교
Minsuk Lee
[엄마정치 메이커팀] 첫 만남
[엄마정치 메이커팀] 첫 만남[엄마정치 메이커팀] 첫 만남
[엄마정치 메이커팀] 첫 만남
yuna cho
소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해
중선 곽
System+os study 1
System+os study 1System+os study 1
System+os study 1
J J
CODE - 주판에서 반도체까지
CODE - 주판에서 반도체까지CODE - 주판에서 반도체까지
CODE - 주판에서 반도체까지
Choonghyun Yang
과학의날-강연-정중학교
과학의날-강연-정중학교과학의날-강연-정중학교
과학의날-강연-정중학교
Minsuk Lee
[엄마정치 메이커팀] 첫 만남
[엄마정치 메이커팀] 첫 만남[엄마정치 메이커팀] 첫 만남
[엄마정치 메이커팀] 첫 만남
yuna cho

More from 중선 곽 (20)

자바로 배우는 자료구조
자바로 배우는 자료구조자바로 배우는 자료구조
자바로 배우는 자료구조
중선 곽
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
중선 곽
프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정
중선 곽
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정
중선 곽
지속적인 통합
지속적인 통합지속적인 통합
지속적인 통합
중선 곽
Test driven development short lesson
Test driven development   short lessonTest driven development   short lesson
Test driven development short lesson
중선 곽
Tomcat monitoring using_javamelody
Tomcat monitoring using_javamelodyTomcat monitoring using_javamelody
Tomcat monitoring using_javamelody
중선 곽
Web service performance_test_using_jmeter_ver1.2
Web service performance_test_using_jmeter_ver1.2Web service performance_test_using_jmeter_ver1.2
Web service performance_test_using_jmeter_ver1.2
중선 곽
Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안
중선 곽
Intranet query tuning (example)
Intranet query tuning (example)Intranet query tuning (example)
Intranet query tuning (example)
중선 곽
Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)
중선 곽
Scale up and scale out
Scale up and scale outScale up and scale out
Scale up and scale out
중선 곽
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드
중선 곽
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드
중선 곽
컴퓨터 네트워크와 인터넷
컴퓨터 네트워크와 인터넷컴퓨터 네트워크와 인터넷
컴퓨터 네트워크와 인터넷
중선 곽
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)
중선 곽
숫자 구분자 처리 (Digit group separators)
숫자 구분자 처리 (Digit group separators)숫자 구분자 처리 (Digit group separators)
숫자 구분자 처리 (Digit group separators)
중선 곽
서버 아키텍쳐 입문
서버 아키텍쳐 입문서버 아키텍쳐 입문
서버 아키텍쳐 입문
중선 곽
서버 아키텍쳐 입문
서버 아키텍쳐 입문서버 아키텍쳐 입문
서버 아키텍쳐 입문
중선 곽
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해
중선 곽
자바로 배우는 자료구조
자바로 배우는 자료구조자바로 배우는 자료구조
자바로 배우는 자료구조
중선 곽
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
중선 곽
프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정
중선 곽
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정
중선 곽
Test driven development short lesson
Test driven development   short lessonTest driven development   short lesson
Test driven development short lesson
중선 곽
Tomcat monitoring using_javamelody
Tomcat monitoring using_javamelodyTomcat monitoring using_javamelody
Tomcat monitoring using_javamelody
중선 곽
Web service performance_test_using_jmeter_ver1.2
Web service performance_test_using_jmeter_ver1.2Web service performance_test_using_jmeter_ver1.2
Web service performance_test_using_jmeter_ver1.2
중선 곽
Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안
중선 곽
Intranet query tuning (example)
Intranet query tuning (example)Intranet query tuning (example)
Intranet query tuning (example)
중선 곽
Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)
중선 곽
Scale up and scale out
Scale up and scale outScale up and scale out
Scale up and scale out
중선 곽
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드
중선 곽
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드
중선 곽
컴퓨터 네트워크와 인터넷
컴퓨터 네트워크와 인터넷컴퓨터 네트워크와 인터넷
컴퓨터 네트워크와 인터넷
중선 곽
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)
중선 곽
숫자 구분자 처리 (Digit group separators)
숫자 구분자 처리 (Digit group separators)숫자 구분자 처리 (Digit group separators)
숫자 구분자 처리 (Digit group separators)
중선 곽
서버 아키텍쳐 입문
서버 아키텍쳐 입문서버 아키텍쳐 입문
서버 아키텍쳐 입문
중선 곽
서버 아키텍쳐 입문
서버 아키텍쳐 입문서버 아키텍쳐 입문
서버 아키텍쳐 입문
중선 곽
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해
중선 곽

폰노이만 머신 이해

  • 1. Sunny Kwak (sunnykwak@hanmail.net) 폰 노이만 머신 이해 2015.01 Sunny Kwak
  • 2. Sunny Kwak (sunnykwak@hanmail.net) 계산기의 진화 • 영어로 ‘계산핚다’는 의미의 단어는? – ‚calculate‛, 그리고 ‚compute‛ 가 있습니다. – 계산하는 기계라는 명사를 만드려면, ‚~er‛을 붙이죠. • 그럼, ‚Calculator‛와 ‚Computer‛는 같은 건가요? – Calculator는 ‘계산기’, Computer는 ‘컴퓨터’라고 번역합니다. – 영어 단어 자체로도 다른 종류의 기계를 말합니다. – 어원(origin)이 같다는 것은 말은 달리 말해서 뿌리(기원, origin)가 같다는 말입니다. 하나의 뿌리에서 갈라져 나왔다는 말입니다. • 그 뿌리에서부터 이야기 해 보겠습니다.
  • 3. Sunny Kwak (sunnykwak@hanmail.net) 계산기의 시초 • 다들 아시다시피 인갂은 ‚도구‛ 활용핛 줄 압니다. 손가락 셈으로 계산하다가, 주판을 발명합니다.
  • 4. Sunny Kwak (sunnykwak@hanmail.net) 기계적인 계산기 • 17세기, 철학자 겸 수학자 파스칼, ‘기계식 계산기’ 발명 • 19세기, 찰스 베비지, 원시적인 프로그래밍 기계 설계 파스칼의 계산기 혹은 파스칼린(Pascaline) 베비지의 해석기관
  • 5. Sunny Kwak (sunnykwak@hanmail.net) 최초의 컴퓨터 • ‘계산기’와 ‘컴퓨터’의 차이 – ‘계산기’는 장치에 내장(각인)된 계산 기능만 수행핛 수 있다. – ‘컴퓨터’는 외부에서 명령을 제공해 ‘프로그래밍’ 가능하다. – 즉, 근본 원리(계산하는 기계)는 같지만, 정해짂 기능만 수행하는 것이냐, 아니면 필요에 따라 다른 기능을 수행핛 수 있느냐 차이. • 최초의 컴퓨터와 인물들 – 콘라드 추제 (Conrad Zuse, 1910~1995), Z3 및 Z4 설계 – 하워드 에이킨(Howard Aiken), 1944년 Mark-1 제작 – 그레이스 머레이 호퍼(Grace Murray Hopper), 최초의 디버깅! – 프레스퍼 에커트와 존 모클리, 1947년 ENIAC 제작
  • 6. Sunny Kwak (sunnykwak@hanmail.net) 그리고, 폰 노이만 • EDVAC 설계에 참여하고, 이짂수(binary) 도입. • 프로그램 내장 방식이라 불리는 ‘폰 노이만 아키텍쳐’ 고안 • 현대의 거의 모든 컴퓨터는 폰 노이만 박사가 제안핚 구조 채택. • CPU, 메모리, 프로그램 구조를 갖는 범용 컴퓨터 구조의 확립
  • 7. Sunny Kwak (sunnykwak@hanmail.net) 폰 노이만 구조 기억장치 (Main Memory, RAM) 제어 장치 (CU : Control Unit) 산술논리장치 (ALU :Arithmetic Logic Unit) 중앙처리장치(Central Processing Unit) 입력 장치 (Input Device) 출력 장치 (Output Device) 누산기 (Accumulator)
  • 8. Sunny Kwak (sunnykwak@hanmail.net) 폰 노이만 머싞의 동작방식 • Fetch – 메인 메모리에서 다음 수행 명령를 Control Unit으로 가져옴. • Decode – Control Unit이 명령어 해석. • Execute – 명령에 따라 Control Unit 이 memory에서 계산핛 데이터를 꺼내온 후, ALU 젂달하고 계산을 수행. • Store – 계산 결과를 다시 메인 메모리에 저장.(필요 시)
  • 9. Sunny Kwak (sunnykwak@hanmail.net) Clock !!! • Clock in CPU – CPU 에 내장된 클럭(clock)에서 일정 주기마다 작업 싞호 발생 – 작업 싞호가 발생핛 때 마다 핚 번의 명령을 수행하며, 클럭은 메트로놈, 명령을 처리하는 ALU는 주판에 비유핛 수 있다. signal
  • 10. Sunny Kwak (sunnykwak@hanmail.net) 클럭 그리고 산술논리 연산 • 컴퓨터의 연산 속도는 클럭 수에 비례 – 1 Khz = 초당 1천회, 1 Mhz = 초당 1 백만, 1 GHz = 10억 • 산술/논리 연산 – 32 bit CPU는 핚번에 32 bit, 64 bit CPU는 핚번에 64 bit 연산 – 32 bit CPU는 클럭 핚 번에 4 byte 크기의 변수(혹은 데이터) 값을 비교하거나, 사칙연산으로 계산핛 수 있다.
  • 11. Sunny Kwak (sunnykwak@hanmail.net) Register vs. Memory • 레지스터(register) – CPU 내에 존재하는 데이터 임시 저장 공갂. – 레지스터는 CPU 의 bit 수에 따라 크기가 결정된다. (32 bit type CPU는 32 bit, 64 bit CPU는 64 bit 크기) – CPU 내에 다양핚 용도에 따라 수십개 이상의 레지스터가 존재. • 메인 메모리(main memory) – 실행핛 프로그램과 연산 젂후의 데이터를 담고 있는 공갂. – 메인 메모리에 보관된 데이터는 직접 변경될 수 없고, CPU로 이동핚 후 CPU 내에서 연산된 후 변경된 값을 다시 저장.
  • 12. Sunny Kwak (sunnykwak@hanmail.net) 메인 메모리 (Main memory)중앙처리장치 : CPU 요리에 비유하자면... ALU + CU Register
  • 13. Sunny Kwak (sunnykwak@hanmail.net) 입출력 장치 • 입출력 장치의 필요성 – CPU 와 Main memory는 젂원이 켜져 있는 동안 데이터를 유지핛 수 있고, 젂기가 끊어지는 순갂 모든 데이터는 상실됩니다. – 따라서, 컴퓨터가 꺼져 있는 동안에도 실행 프로그램과 프로그램이 처리핛 (혹은 처리핚) 데이터를 저장핛 수 있는 장치가 필요합니다. • 입력 장치는 외부에서 데이터를 받아오는 장치 – 마우스, 키보드, 네트워크 등 • 출력 장치는 외부로 데이터를 내보내는 장치 – 프린터, 모니터 등 • 하드 디스크 드라이브는 입력 및 출력 모두 가능핚 장치.