SlideShare a Scribd company logo
An introduction to
computer
Science
- 컴퓨터 구조
2017. 03. 17
황태욱
01 컴퓨터 하드웨어 구성
02 프로그램 명령어
03 프로그램 실행 동작
CONTENTS
04 Further Study
1.1 컴퓨터 하드웨어 구성
컴퓨터 하드웨어는 중앙처리장치(CPU:Central Processing Unit),
주기억장치, 입출력장치 그리고 이들을 연결해주는 시스템 버스로 구성
1.2 시스템 버스 종류
컨트롤 버스(Control bus): 제어 정보가 전달
주소버스(Control bus): 주기억장치 주소가 전달
데이터 버스(Data bus): 데이터가 전달
1.3 프로그램 실행 과정
CPU
명령어 1
명령어 2
:
명령어 1
명령어 2
:
프로그램이 실행되기
위해서는 주기억장치로
들어가야 한다
명령어를 하나씩 차례대로
읽어 실행한다.
보조기억장치주기억장치
1.4 중앙처리장치
시스템 버스
제어장치 Control Unit
프로그램 명령어를 해석하고, 해석된 명령의 의미에 따라 연산장치, 주기억장치, 입출력장치 등에 동작
을 지시
연산장치 ALU: Arithmetic and Logicl Unit 덧셈, 뺄셈 등 산술연산과 논리연산을 하는 장치로 제어장치의 지시에 따라 연산을 수행
레지스터 Register 주기억장치로부터 읽어온 명령어나 데이터를 저장하거나 연산된 결과를 저장하는 공간
1.4 레지스터의 종류
레지스터 개수와 크기는 CPU 종류에 따라 차이가 있음
범용 레지스터 명령어 실행 중에 연산과 관련된 데이터를 저장
특수 목
적 레지
스터
프로그램 카운터 다음에 실행될 명령어가 저장된 주기억장치의 주소를 저장
명령어 레지스터 현재 실행중인 명령어를 저장
스택 포인터
주기억장치 스택의 데이터 삽입과 삭제가 이루어지는 주소를
저장
CPU는 3단계로 명령어를 처리 – 인출(fetch),
해독(decode), 실행(execute)
execute
fetch
decode
1.5 Main Memory
0 1바이트
1 1바이트
2 1바이트
: :
254 1바이트
255 1바이트
프로그램과 이 프로그램이 필요한 데이터를 일시적으로 저장하는 장치
각 위치를 구분하기 위해 바이트(Byte) 또는 워드(word) 단위로 분할해
주소(address)를 할당
256 byte크기의 주기억장치 예
CPU
Byte 단위
256개의 주소를
가진 main
memory
Address bus: 8bit
Control bus: 1bit (Read/Write)
Data bus: 8bit
1.5 Bus
Address Bus
Data Bus
Control Bus
주기억장치의 어느 위치에 데이터를 읽을지 또는 쓸지를
정해주는 값 main memory 크기에 따라 address bus의
크기 역시 정해 짐
Main memory에 읽거나 써야 할 데이터가 전송되는 bus
CPU가 한번에 전송할 수 있는 데이터의 크기와 같음
이 데이터는 보낼 수도 받을 수도 있으므로 양방향
데이터를 주기억장치에 쓸지 읽을지를 결정. CPU에서
Main memory에만 신호를 전달하므로 단방향
2.1 프로그램 명령어
기본적으로 연산코드와 피연산자 부분으로 이루어 짐
연산코드 피연산자 명령어 기본 형식
연산코드: 덧셈, 뺄셈, AND, OR 등 CPU에서 실행해야 할 동작을 나타내는 부분
피연산자: 동작에 필요한 값 또는 저장공간을 타나냄
피연산자 개수는 CPU에 따라 차이가 있음
연산코드 피연산자1 피연산자2
이러한 경우 피연산자1과 피연산자2를 연산코드에 따라 처리한 결과를
피연산자 1에 저장한다는 의미
2.2 명령어의 분류 및 범용레지스터
데이터 전송 명령어
레지스터 또는 주기억장치의 데이터를 레지스터 또는 주기억장치로
이동하는 명령어와 입출력장치와 데이터를 주고 받는 입출력 명령어
연산명령어 산술연산 및 온리연산, 비트를 이동하는 시프트 등의 명령어
분기 명령어 다음에 실행될 명령어를 새롭게 지정하는 명령어
CU
프로그램 카운터
명령어 레지스터
스택 포인터
AX
BX
CX
DX
ALU
main memory
Address bus
Control bus
Data bus
2.3 데이터 전송 명령어
- register 또는 main memory에 지정된 값을 register 또는 main memory로 전송
- 상수 값을 register 또는 main memory로 전송
- 스택(stack)에 저장된 값을 register로 전송
- Register에 저장된 값을 스택으로 전송
Register, Main memory, 상수 값을 구별하기 위해 다음과 같이 가정한다.
- AX, BX, CX, DX는 Register를 의미
- 30, 100 같이 숫자로만 이루어진 값은 상수 값
- [10], [50] 처럼 대괄호는 main memory를 의미
[10]은 address 10의 main memory
B의 값을 A로 전송한다는 뜻 (사실상 A를 B의 값으로 바꾼다 라는 개념에 가까움)
A는 main memory와 register가 가능, B는 main memory와 register 및 상수 가능
예) MOV BX [150] main memory address150의 값을 register BX로 전송
MOV A B
2.3 스택 명령어
PUSH AX
스택: Stack - 큐 라는 개념도 있음 Queue
Last in, First out
AX register 값을 stack에 삽입 – 이 경우 stack pointer를 1증가
POP BX
Stack에서 맨 위 값을 삭제하며 register BX에 저정 : stack pointer -1
2.3 입출력 명령어
IN AX B
Port B에서 data를 읽어 register AX에 저장
OUT B AX
Register AX의 data를 port B로 출력하는 명령어
각 컨트롤러(controller)에는
포트(port)라는 유일한 번호가 부여
2.3 연산명령어
ADD A B A에 B를 더해서 A에 저장
SUB A B A에 B를 빼서 A에 저장
MUL A B A에 B를 곱해서 A에 저장
DIV A B A를 B로 나누어 A에 저장
AND A B A, B를 AND 연산해서 A에 저장
OR A B A,B를 OR 연산해서 A에 저장
NOT A A의 1의 보수를 A에 저장
XOR A B A,B를 XOR 연산해서 A에 저장
SHR R B R 값을 오른쪽으로 B비트 만큼 이동시키고 빈곳에 0을 저장
SHL R B R 값을 왼쪽으로 B 비트만큼 이동시키고 빈곳에 0을 저장
CIR R B R 값을 오른쪽으로 B비트 만큼 이동시키고 벗어나는 비트를 왼쪽에 비는 곳에 저장
CIL R B R 값을 왼쪽으로 B 비트만큼 이동시키고 벗어나는 비트들을 오른쪽에 비는 곳에 저장
산술 연산
논리 연산
시프트(Shift) 연산
2.3 분기 명령어
프로그램은 순차적으로 실행되나, JUMP나 CALL같은 분기명령어로 원하는
다른 위치의 명령어를 실행하게 할 수 있음
프로그램 카운터(Program Counter)라는 Register에 대해
지금 main memory [100]의 명령어를 실행한다면 program counter에는
다음 주소인 101이 저장됨
JUMP 100
Program Counter Register 값을 100으로 변경
CALL 100
Program Counter Register 값을 100으로 변경
다만 기존의 Program Counter Register 값을 Stack에 저장하고
향후에 RETURN을 실행할 경우 Stack에 저장된 기존 Program Counter
Register 값을 Stack에서 Pop시켜 Program Counter Register에 저장
5. Further Study
큐: Queue
선입선출(先入先出, First In First Out;
FIFO)의 자료구조. 대기열이라고도 한다
기계어: Machine Code / Machine Language
어셈블리어: Assembler / Assembler Language
Q&A
For further details, please contact us by e-mail
황태욱 : taewook.hwang@gmail.com
010.9576.5105
Kakao: Aldemaya

More Related Content

What's hot

[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)MinGeun Park
 
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발MinGeun Park
 
폰노이만 머신 이해
폰노이만 머신 이해폰노이만 머신 이해
폰노이만 머신 이해
중선 곽
 
[0602 박민근] Direct2D
[0602 박민근] Direct2D[0602 박민근] Direct2D
[0602 박민근] Direct2D
흥배 최
 
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
중선 곽
 
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
ssuserbe87d6
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기ChangKyu Song
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법
중선 곽
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝
Jinwon Lee
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
영욱 오
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현
Bongseok Cho
 
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)
Seung-June Lee
 
딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초
Hyungsoo Ryoo
 
03. top level view of computer function & interconnection
03. top level view of computer function & interconnection03. top level view of computer function & interconnection
03. top level view of computer function & interconnection
noman yasin
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree Algorithm
Merry Merry
 
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013영욱 오
 
GCGC- CGCII 서버 엔진에 적용된 기술 (1)
GCGC- CGCII 서버 엔진에 적용된 기술 (1)GCGC- CGCII 서버 엔진에 적용된 기술 (1)
GCGC- CGCII 서버 엔진에 적용된 기술 (1)
상현 조
 
Neural Network Intro [인공신경망 설명]
Neural Network Intro [인공신경망 설명]Neural Network Intro [인공신경망 설명]
Neural Network Intro [인공신경망 설명]
Hyunwoo Kim
 
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
DongMin Choi
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 

What's hot (20)

[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
 
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
 
폰노이만 머신 이해
폰노이만 머신 이해폰노이만 머신 이해
폰노이만 머신 이해
 
[0602 박민근] Direct2D
[0602 박민근] Direct2D[0602 박민근] Direct2D
[0602 박민근] Direct2D
 
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
 
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현
 
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)
 
딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초
 
03. top level view of computer function & interconnection
03. top level view of computer function & interconnection03. top level view of computer function & interconnection
03. top level view of computer function & interconnection
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree Algorithm
 
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
 
GCGC- CGCII 서버 엔진에 적용된 기술 (1)
GCGC- CGCII 서버 엔진에 적용된 기술 (1)GCGC- CGCII 서버 엔진에 적용된 기술 (1)
GCGC- CGCII 서버 엔진에 적용된 기술 (1)
 
Neural Network Intro [인공신경망 설명]
Neural Network Intro [인공신경망 설명]Neural Network Intro [인공신경망 설명]
Neural Network Intro [인공신경망 설명]
 
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 

Viewers also liked

앱을 위한 상상력 키우기
앱을 위한 상상력 키우기앱을 위한 상상력 키우기
앱을 위한 상상력 키우기Edward Hwang
 
Зрительный тренажер
Зрительный тренажерЗрительный тренажер
Зрительный тренажер
Anastasia Simonova
 
How We Get Agile Transformations Wrong By Trying To Do It All So Right
How We Get Agile Transformations Wrong By Trying To Do It All So RightHow We Get Agile Transformations Wrong By Trying To Do It All So Right
How We Get Agile Transformations Wrong By Trying To Do It All So Right
Howard Deiner
 
Que sont les examens de cambridge english ?
Que sont les examens de cambridge english ?Que sont les examens de cambridge english ?
Que sont les examens de cambridge english ?
You're Welcome Séjours Linguistiques
 
Mediafrokost
MediafrokostMediafrokost
02 특허와 실용신안 제도
02 특허와 실용신안 제도02 특허와 실용신안 제도
02 특허와 실용신안 제도
Edward Hwang
 
зрительная гимнастика по аветисову
зрительная гимнастика по аветисовузрительная гимнастика по аветисову
зрительная гимнастика по аветисову
Anastasia Simonova
 
Gestion de conflit
Gestion de conflitGestion de conflit
Gestion de conflit
Yann-Eric Devars
 
Manu the magician
Manu the magicianManu the magician
Manu the magician
evax14
 
Flipside Of Urban Structure And Behavior : A Case Of Gurgaon And Kapashera, D...
Flipside Of Urban Structure And Behavior : A Case Of Gurgaon And Kapashera, D...Flipside Of Urban Structure And Behavior : A Case Of Gurgaon And Kapashera, D...
Flipside Of Urban Structure And Behavior : A Case Of Gurgaon And Kapashera, D...
Mostafizur Rahman
 
Don’t forget to XING – das Businessnetzwerk im Social-Media–Mix #afbmc
Don’t forget to XING – das Businessnetzwerk im Social-Media–Mix #afbmcDon’t forget to XING – das Businessnetzwerk im Social-Media–Mix #afbmc
Don’t forget to XING – das Businessnetzwerk im Social-Media–Mix #afbmc
AllFacebook.de
 
Matrice leader
Matrice leaderMatrice leader
Matrice leader
Yann-Eric Devars
 
XCC & IBM Connections 6
XCC & IBM Connections 6 XCC & IBM Connections 6
XCC & IBM Connections 6
TIMETOACT GROUP
 
都市危險及老舊建築物重建條例--內政委員會審查通過版本
都市危險及老舊建築物重建條例--內政委員會審查通過版本都市危險及老舊建築物重建條例--內政委員會審查通過版本
都市危險及老舊建築物重建條例--內政委員會審查通過版本
OURs 專業者都市改革組織
 
Catalogo ideology 032017
Catalogo ideology 032017Catalogo ideology 032017
Catalogo ideology 032017
Felo Marticorena
 
Presentazione fantasy club
Presentazione fantasy clubPresentazione fantasy club
Presentazione fantasy club
Lorenzo Meacci
 
3Com 10010696
3Com 100106963Com 10010696
3Com 10010696
savomir
 
PLC
PLCPLC
Συμβολισμός
ΣυμβολισμόςΣυμβολισμός
Συμβολισμός
George Karanatsios
 

Viewers also liked (19)

앱을 위한 상상력 키우기
앱을 위한 상상력 키우기앱을 위한 상상력 키우기
앱을 위한 상상력 키우기
 
Зрительный тренажер
Зрительный тренажерЗрительный тренажер
Зрительный тренажер
 
How We Get Agile Transformations Wrong By Trying To Do It All So Right
How We Get Agile Transformations Wrong By Trying To Do It All So RightHow We Get Agile Transformations Wrong By Trying To Do It All So Right
How We Get Agile Transformations Wrong By Trying To Do It All So Right
 
Que sont les examens de cambridge english ?
Que sont les examens de cambridge english ?Que sont les examens de cambridge english ?
Que sont les examens de cambridge english ?
 
Mediafrokost
MediafrokostMediafrokost
Mediafrokost
 
02 특허와 실용신안 제도
02 특허와 실용신안 제도02 특허와 실용신안 제도
02 특허와 실용신안 제도
 
зрительная гимнастика по аветисову
зрительная гимнастика по аветисовузрительная гимнастика по аветисову
зрительная гимнастика по аветисову
 
Gestion de conflit
Gestion de conflitGestion de conflit
Gestion de conflit
 
Manu the magician
Manu the magicianManu the magician
Manu the magician
 
Flipside Of Urban Structure And Behavior : A Case Of Gurgaon And Kapashera, D...
Flipside Of Urban Structure And Behavior : A Case Of Gurgaon And Kapashera, D...Flipside Of Urban Structure And Behavior : A Case Of Gurgaon And Kapashera, D...
Flipside Of Urban Structure And Behavior : A Case Of Gurgaon And Kapashera, D...
 
Don’t forget to XING – das Businessnetzwerk im Social-Media–Mix #afbmc
Don’t forget to XING – das Businessnetzwerk im Social-Media–Mix #afbmcDon’t forget to XING – das Businessnetzwerk im Social-Media–Mix #afbmc
Don’t forget to XING – das Businessnetzwerk im Social-Media–Mix #afbmc
 
Matrice leader
Matrice leaderMatrice leader
Matrice leader
 
XCC & IBM Connections 6
XCC & IBM Connections 6 XCC & IBM Connections 6
XCC & IBM Connections 6
 
都市危險及老舊建築物重建條例--內政委員會審查通過版本
都市危險及老舊建築物重建條例--內政委員會審查通過版本都市危險及老舊建築物重建條例--內政委員會審查通過版本
都市危險及老舊建築物重建條例--內政委員會審查通過版本
 
Catalogo ideology 032017
Catalogo ideology 032017Catalogo ideology 032017
Catalogo ideology 032017
 
Presentazione fantasy club
Presentazione fantasy clubPresentazione fantasy club
Presentazione fantasy club
 
3Com 10010696
3Com 100106963Com 10010696
3Com 10010696
 
PLC
PLCPLC
PLC
 
Συμβολισμός
ΣυμβολισμόςΣυμβολισμός
Συμβολισμός
 

Similar to 컴퓨터개론04

Cpu basic
Cpu basicCpu basic
Cpu basic
Dongho Yu
 
TestBCD2017-1(answer)
TestBCD2017-1(answer)TestBCD2017-1(answer)
TestBCD2017-1(answer)
Yong Heui Cho
 
MIPS CPU의 이해 (입문)
MIPS CPU의 이해 (입문)MIPS CPU의 이해 (입문)
MIPS CPU의 이해 (입문)
Jin wook
 
Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)
one_two_12
 
Ch19
Ch19Ch19
Ch19
a1a123
 
System bus (시스템 버스)
 System bus (시스템 버스) System bus (시스템 버스)
System bus (시스템 버스)
ssuserd5354e
 
[엄마정치 메이커팀] 두번째 모임_2018_01_27
[엄마정치 메이커팀] 두번째 모임_2018_01_27[엄마정치 메이커팀] 두번째 모임_2018_01_27
[엄마정치 메이커팀] 두번째 모임_2018_01_27
yuna cho
 
10
10 10
10
usdrd90
 
6. code level reversing
6. code level reversing6. code level reversing
6. code level reversing
Youngjun Chang
 

Similar to 컴퓨터개론04 (10)

Cpu basic
Cpu basicCpu basic
Cpu basic
 
TestBCD2017-1(answer)
TestBCD2017-1(answer)TestBCD2017-1(answer)
TestBCD2017-1(answer)
 
MIPS CPU의 이해 (입문)
MIPS CPU의 이해 (입문)MIPS CPU의 이해 (입문)
MIPS CPU의 이해 (입문)
 
Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)
 
Ch19
Ch19Ch19
Ch19
 
System bus (시스템 버스)
 System bus (시스템 버스) System bus (시스템 버스)
System bus (시스템 버스)
 
[엄마정치 메이커팀] 두번째 모임_2018_01_27
[엄마정치 메이커팀] 두번째 모임_2018_01_27[엄마정치 메이커팀] 두번째 모임_2018_01_27
[엄마정치 메이커팀] 두번째 모임_2018_01_27
 
10
10 10
10
 
Avr lecture3
Avr lecture3Avr lecture3
Avr lecture3
 
6. code level reversing
6. code level reversing6. code level reversing
6. code level reversing
 

More from Edward Hwang

컴퓨터개론13
컴퓨터개론13컴퓨터개론13
컴퓨터개론13
Edward Hwang
 
컴퓨터개론12
컴퓨터개론12컴퓨터개론12
컴퓨터개론12
Edward Hwang
 
컴퓨터개론11
컴퓨터개론11컴퓨터개론11
컴퓨터개론11
Edward Hwang
 
컴퓨터개론10
컴퓨터개론10컴퓨터개론10
컴퓨터개론10
Edward Hwang
 
게임디자인 레벨 밸런싱
게임디자인   레벨 밸런싱게임디자인   레벨 밸런싱
게임디자인 레벨 밸런싱
Edward Hwang
 
Understanding of growth hacking 01
Understanding of growth hacking 01Understanding of growth hacking 01
Understanding of growth hacking 01
Edward Hwang
 
Understanding of gamification 03
Understanding of gamification 03Understanding of gamification 03
Understanding of gamification 03
Edward Hwang
 
게임디자인 게임시스템
게임디자인   게임시스템게임디자인   게임시스템
게임디자인 게임시스템
Edward Hwang
 
게임디자인 게임디자인
게임디자인   게임디자인게임디자인   게임디자인
게임디자인 게임디자인
Edward Hwang
 
게임디자인 게임제작 및 시나리오
게임디자인   게임제작 및 시나리오게임디자인   게임제작 및 시나리오
게임디자인 게임제작 및 시나리오
Edward Hwang
 
게임의 분류
게임의 분류게임의 분류
게임의 분류
Edward Hwang
 
게임디자인 게임역사
게임디자인   게임역사게임디자인   게임역사
게임디자인 게임역사
Edward Hwang
 
창업아이디어 2015 2학기
창업아이디어 2015 2학기창업아이디어 2015 2학기
창업아이디어 2015 2학기
Edward Hwang
 
Understanding of gamification 2015
Understanding of gamification 2015Understanding of gamification 2015
Understanding of gamification 2015
Edward Hwang
 
사업계획서 기본요소
사업계획서 기본요소사업계획서 기본요소
사업계획서 기본요소
Edward Hwang
 
May 2015 flow chart 익히기
May 2015 flow chart 익히기May 2015 flow chart 익히기
May 2015 flow chart 익히기
Edward Hwang
 
창업아이디어
창업아이디어창업아이디어
창업아이디어
Edward Hwang
 
앱을 위한 아이디어 2015
앱을 위한 아이디어 2015 앱을 위한 아이디어 2015
앱을 위한 아이디어 2015
Edward Hwang
 
기술 창업 Idea to business
기술 창업 Idea to business기술 창업 Idea to business
기술 창업 Idea to businessEdward Hwang
 
Lean startup 이해하기 황태욱
Lean startup 이해하기   황태욱Lean startup 이해하기   황태욱
Lean startup 이해하기 황태욱Edward Hwang
 

More from Edward Hwang (20)

컴퓨터개론13
컴퓨터개론13컴퓨터개론13
컴퓨터개론13
 
컴퓨터개론12
컴퓨터개론12컴퓨터개론12
컴퓨터개론12
 
컴퓨터개론11
컴퓨터개론11컴퓨터개론11
컴퓨터개론11
 
컴퓨터개론10
컴퓨터개론10컴퓨터개론10
컴퓨터개론10
 
게임디자인 레벨 밸런싱
게임디자인   레벨 밸런싱게임디자인   레벨 밸런싱
게임디자인 레벨 밸런싱
 
Understanding of growth hacking 01
Understanding of growth hacking 01Understanding of growth hacking 01
Understanding of growth hacking 01
 
Understanding of gamification 03
Understanding of gamification 03Understanding of gamification 03
Understanding of gamification 03
 
게임디자인 게임시스템
게임디자인   게임시스템게임디자인   게임시스템
게임디자인 게임시스템
 
게임디자인 게임디자인
게임디자인   게임디자인게임디자인   게임디자인
게임디자인 게임디자인
 
게임디자인 게임제작 및 시나리오
게임디자인   게임제작 및 시나리오게임디자인   게임제작 및 시나리오
게임디자인 게임제작 및 시나리오
 
게임의 분류
게임의 분류게임의 분류
게임의 분류
 
게임디자인 게임역사
게임디자인   게임역사게임디자인   게임역사
게임디자인 게임역사
 
창업아이디어 2015 2학기
창업아이디어 2015 2학기창업아이디어 2015 2학기
창업아이디어 2015 2학기
 
Understanding of gamification 2015
Understanding of gamification 2015Understanding of gamification 2015
Understanding of gamification 2015
 
사업계획서 기본요소
사업계획서 기본요소사업계획서 기본요소
사업계획서 기본요소
 
May 2015 flow chart 익히기
May 2015 flow chart 익히기May 2015 flow chart 익히기
May 2015 flow chart 익히기
 
창업아이디어
창업아이디어창업아이디어
창업아이디어
 
앱을 위한 아이디어 2015
앱을 위한 아이디어 2015 앱을 위한 아이디어 2015
앱을 위한 아이디어 2015
 
기술 창업 Idea to business
기술 창업 Idea to business기술 창업 Idea to business
기술 창업 Idea to business
 
Lean startup 이해하기 황태욱
Lean startup 이해하기   황태욱Lean startup 이해하기   황태욱
Lean startup 이해하기 황태욱
 

컴퓨터개론04

  • 1. An introduction to computer Science - 컴퓨터 구조 2017. 03. 17 황태욱
  • 2. 01 컴퓨터 하드웨어 구성 02 프로그램 명령어 03 프로그램 실행 동작 CONTENTS 04 Further Study
  • 3. 1.1 컴퓨터 하드웨어 구성 컴퓨터 하드웨어는 중앙처리장치(CPU:Central Processing Unit), 주기억장치, 입출력장치 그리고 이들을 연결해주는 시스템 버스로 구성
  • 4. 1.2 시스템 버스 종류 컨트롤 버스(Control bus): 제어 정보가 전달 주소버스(Control bus): 주기억장치 주소가 전달 데이터 버스(Data bus): 데이터가 전달
  • 5. 1.3 프로그램 실행 과정 CPU 명령어 1 명령어 2 : 명령어 1 명령어 2 : 프로그램이 실행되기 위해서는 주기억장치로 들어가야 한다 명령어를 하나씩 차례대로 읽어 실행한다. 보조기억장치주기억장치
  • 6. 1.4 중앙처리장치 시스템 버스 제어장치 Control Unit 프로그램 명령어를 해석하고, 해석된 명령의 의미에 따라 연산장치, 주기억장치, 입출력장치 등에 동작 을 지시 연산장치 ALU: Arithmetic and Logicl Unit 덧셈, 뺄셈 등 산술연산과 논리연산을 하는 장치로 제어장치의 지시에 따라 연산을 수행 레지스터 Register 주기억장치로부터 읽어온 명령어나 데이터를 저장하거나 연산된 결과를 저장하는 공간
  • 7. 1.4 레지스터의 종류 레지스터 개수와 크기는 CPU 종류에 따라 차이가 있음 범용 레지스터 명령어 실행 중에 연산과 관련된 데이터를 저장 특수 목 적 레지 스터 프로그램 카운터 다음에 실행될 명령어가 저장된 주기억장치의 주소를 저장 명령어 레지스터 현재 실행중인 명령어를 저장 스택 포인터 주기억장치 스택의 데이터 삽입과 삭제가 이루어지는 주소를 저장 CPU는 3단계로 명령어를 처리 – 인출(fetch), 해독(decode), 실행(execute) execute fetch decode
  • 8. 1.5 Main Memory 0 1바이트 1 1바이트 2 1바이트 : : 254 1바이트 255 1바이트 프로그램과 이 프로그램이 필요한 데이터를 일시적으로 저장하는 장치 각 위치를 구분하기 위해 바이트(Byte) 또는 워드(word) 단위로 분할해 주소(address)를 할당 256 byte크기의 주기억장치 예 CPU Byte 단위 256개의 주소를 가진 main memory Address bus: 8bit Control bus: 1bit (Read/Write) Data bus: 8bit
  • 9. 1.5 Bus Address Bus Data Bus Control Bus 주기억장치의 어느 위치에 데이터를 읽을지 또는 쓸지를 정해주는 값 main memory 크기에 따라 address bus의 크기 역시 정해 짐 Main memory에 읽거나 써야 할 데이터가 전송되는 bus CPU가 한번에 전송할 수 있는 데이터의 크기와 같음 이 데이터는 보낼 수도 받을 수도 있으므로 양방향 데이터를 주기억장치에 쓸지 읽을지를 결정. CPU에서 Main memory에만 신호를 전달하므로 단방향
  • 10. 2.1 프로그램 명령어 기본적으로 연산코드와 피연산자 부분으로 이루어 짐 연산코드 피연산자 명령어 기본 형식 연산코드: 덧셈, 뺄셈, AND, OR 등 CPU에서 실행해야 할 동작을 나타내는 부분 피연산자: 동작에 필요한 값 또는 저장공간을 타나냄 피연산자 개수는 CPU에 따라 차이가 있음 연산코드 피연산자1 피연산자2 이러한 경우 피연산자1과 피연산자2를 연산코드에 따라 처리한 결과를 피연산자 1에 저장한다는 의미
  • 11. 2.2 명령어의 분류 및 범용레지스터 데이터 전송 명령어 레지스터 또는 주기억장치의 데이터를 레지스터 또는 주기억장치로 이동하는 명령어와 입출력장치와 데이터를 주고 받는 입출력 명령어 연산명령어 산술연산 및 온리연산, 비트를 이동하는 시프트 등의 명령어 분기 명령어 다음에 실행될 명령어를 새롭게 지정하는 명령어 CU 프로그램 카운터 명령어 레지스터 스택 포인터 AX BX CX DX ALU main memory Address bus Control bus Data bus
  • 12. 2.3 데이터 전송 명령어 - register 또는 main memory에 지정된 값을 register 또는 main memory로 전송 - 상수 값을 register 또는 main memory로 전송 - 스택(stack)에 저장된 값을 register로 전송 - Register에 저장된 값을 스택으로 전송 Register, Main memory, 상수 값을 구별하기 위해 다음과 같이 가정한다. - AX, BX, CX, DX는 Register를 의미 - 30, 100 같이 숫자로만 이루어진 값은 상수 값 - [10], [50] 처럼 대괄호는 main memory를 의미 [10]은 address 10의 main memory B의 값을 A로 전송한다는 뜻 (사실상 A를 B의 값으로 바꾼다 라는 개념에 가까움) A는 main memory와 register가 가능, B는 main memory와 register 및 상수 가능 예) MOV BX [150] main memory address150의 값을 register BX로 전송 MOV A B
  • 13. 2.3 스택 명령어 PUSH AX 스택: Stack - 큐 라는 개념도 있음 Queue Last in, First out AX register 값을 stack에 삽입 – 이 경우 stack pointer를 1증가 POP BX Stack에서 맨 위 값을 삭제하며 register BX에 저정 : stack pointer -1
  • 14. 2.3 입출력 명령어 IN AX B Port B에서 data를 읽어 register AX에 저장 OUT B AX Register AX의 data를 port B로 출력하는 명령어 각 컨트롤러(controller)에는 포트(port)라는 유일한 번호가 부여
  • 15. 2.3 연산명령어 ADD A B A에 B를 더해서 A에 저장 SUB A B A에 B를 빼서 A에 저장 MUL A B A에 B를 곱해서 A에 저장 DIV A B A를 B로 나누어 A에 저장 AND A B A, B를 AND 연산해서 A에 저장 OR A B A,B를 OR 연산해서 A에 저장 NOT A A의 1의 보수를 A에 저장 XOR A B A,B를 XOR 연산해서 A에 저장 SHR R B R 값을 오른쪽으로 B비트 만큼 이동시키고 빈곳에 0을 저장 SHL R B R 값을 왼쪽으로 B 비트만큼 이동시키고 빈곳에 0을 저장 CIR R B R 값을 오른쪽으로 B비트 만큼 이동시키고 벗어나는 비트를 왼쪽에 비는 곳에 저장 CIL R B R 값을 왼쪽으로 B 비트만큼 이동시키고 벗어나는 비트들을 오른쪽에 비는 곳에 저장 산술 연산 논리 연산 시프트(Shift) 연산
  • 16. 2.3 분기 명령어 프로그램은 순차적으로 실행되나, JUMP나 CALL같은 분기명령어로 원하는 다른 위치의 명령어를 실행하게 할 수 있음 프로그램 카운터(Program Counter)라는 Register에 대해 지금 main memory [100]의 명령어를 실행한다면 program counter에는 다음 주소인 101이 저장됨 JUMP 100 Program Counter Register 값을 100으로 변경 CALL 100 Program Counter Register 값을 100으로 변경 다만 기존의 Program Counter Register 값을 Stack에 저장하고 향후에 RETURN을 실행할 경우 Stack에 저장된 기존 Program Counter Register 값을 Stack에서 Pop시켜 Program Counter Register에 저장
  • 17. 5. Further Study 큐: Queue 선입선출(先入先出, First In First Out; FIFO)의 자료구조. 대기열이라고도 한다 기계어: Machine Code / Machine Language 어셈블리어: Assembler / Assembler Language
  • 18. Q&A For further details, please contact us by e-mail 황태욱 : taewook.hwang@gmail.com 010.9576.5105 Kakao: Aldemaya