학습목표 2/33 마이크로프로세서와마이크로컨트롤러의차이를알수있다. 마이크로프로세서에서프로그램이수행되기위한명령어형식과명령어실행절차를알수있다. 프로그램을수행하려면어떤종류의명령어가필요한지알수있다. 현대컴퓨터의기본모델인저장형프로그램컴퓨터의한계점과그한계를완화하려는방법을알수있다.

Similar documents
정보보안 개론과 실습:네트워크

마이크로프로세서 개요

Microsoft PowerPoint - hy2-12.pptx

3차시.ppt

[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr

학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능

학습목차 r컴퓨터분해를통한본체살펴보기 r컴퓨터구성요소 r컴퓨터의기능 r버스와상호연결 컴퓨터구조 2 4. 컴퓨터시스템의구성과기능

PowerPoint 프레젠테이션

온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1

Computer Architecture

학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 제어장치

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint - chap01-C언어개요.pptx

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M

4. 다음주소지정방식중속도가가장빠른주소방식은? 가. immediate addressing mode 나. direct addressing mode 다. indirect addressing mode 라. index register. 5. 간접주소 (indirect addr

Microsoft PowerPoint - hy2-12.pptx

슬라이드 1

[ 마이크로프로세서 1] 1 주차 2 차시. 마이크로프로세서와마이크로컨트롤러발달과정 1 주차 2 차시마이크로프로세서와마이크로컨트롤러발달과정 학습목표 1. 마이크로프로세서발달과정과종류를설명할수있다. 2. 인텔 8051 계열과아트멜 (Atmel) 의특성을설명할수있다. 학습

AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 소속 : 원광대학교전기 정보통신공학부

(1) 주소지정방식 Address Mode 메모리접근 분기주소 명령어 직접번지 Reg. 지정 Reg. 간접 Base Index 간접 Immediate 상대번지 절대번지 Long 주소 Reg. 간접 Byte Access Bit Access 내부 Data M

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Computer Architecture

AVR ATmega128 소개 AVR ATmega128 IT Eng 학습목표 ü 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ü ATmega128 내부구조에서메모리공간, I/O 공간의프로그램과데이터를처리하기

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F FB1E2BBE7C6D0BDBABFEB2E687770>

Microsoft Word - PLC제어응용-2차시.doc

Microsoft PowerPoint - 30.ppt [호환 모드]

Chapter ...

Computer Architecture

OCW_C언어 기초

Microsoft PowerPoint - M07_RTL.ppt [호환 모드]

PowerPoint 프레젠테이션

hwp

PowerPoint 프레젠테이션

Microsoft PowerPoint - DSD06c_ISA.pptx

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

슬라이드 1

<C0FCC0DAB0E8BBEAB1E2B1B8C1B6397E3131B0AD20B9AEC1A62BC1A4B4E42E687770>

PowerPoint 프레젠테이션

Microsoft PowerPoint - ARM System-on-chip architecture_Chap 4_23p.ppt

Microsoft PowerPoint - [2009] 02.pptx

Microsoft Word - ExecutionStack

슬라이드 1

Microsoft Word - 1. ARM Assembly 실습_xp2.doc

Microsoft PowerPoint - es-arduino-lecture-03

1부. 임베디드시스템

Introduction to LMC

한국기술교육대학교장영조 한국기술교육대학교전기전자통신공학부 1

untitled

Microsoft PowerPoint - 15-MARS

Microsoft PowerPoint - 00_(C_Programming)_(Korean)_Computer_Systems

Microsoft PowerPoint - DSD03_verilog3b.pptx

ADP-2480

강의개요

슬라이드 1

PowerPoint 프레젠테이션

Microsoft PowerPoint - M08_CPUcontrol.ppt [호환 모드]

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

1 처리능력 (Throughput) : 일정시간내에시스템이처리하는일의양 2 반환시간 (Turnaround time) : 시스템에작업을의뢰한시간부터처리가완료될때까지걸리는시간 3 사용가능도 (Availability) : 시스템을사용할필요가있을때즉시사용가능한정도 4 신뢰도

Microsoft PowerPoint - C프로그래밍-chap00.ppt [호환 모드]

Computer Architecture

Microsoft PowerPoint - hw8.ppt [호환 모드]


ISP and CodeVisionAVR C Compiler.hwp

Microsoft PowerPoint - DSD06b_Cont.pptx

Frama-C/JESSIS 사용법 소개

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

Microsoft PowerPoint - a6.ppt [호환 모드]

Microsoft PowerPoint - M09_CPUarchi.ppt [호환 모드]

Microsoft PowerPoint - chap04-연산자.pptx

ARM01

Microsoft PowerPoint - 3Àϰ_º¯¼ö¿Í »ó¼ö.ppt

Introduction to Computer Science

MAX+plus II Getting Started - 무작정따라하기

<BBEABEF7B5BFC7E22DA5B12E687770>

Microsoft PowerPoint - chap10-함수의활용.pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint - additional01.ppt [호환 모드]

마프

Microsoft Word - Reverse Engineering Code with IDA Pro-2-1.doc

Microsoft Word - FunctionCall

PowerPoint Presentation

Microsoft PowerPoint - 2주차.ppt [호환 모드]

<C0FCC0DAB0E8BBEAB1E220B1B8C1B620377E39B0AD20B1B3BEC82836BFF C0CF20B0ADC0C7292E687770>

歯TR PDF

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft Power Point 2002

Transcription:

마이크로프로세서의원리 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 (slee@wku.ac.kr) 소속 : 원광대학교전기 정보통신공학부

학습목표 2/33 마이크로프로세서와마이크로컨트롤러의차이를알수있다. 마이크로프로세서에서프로그램이수행되기위한명령어형식과명령어실행절차를알수있다. 프로그램을수행하려면어떤종류의명령어가필요한지알수있다. 현대컴퓨터의기본모델인저장형프로그램컴퓨터의한계점과그한계를완화하려는방법을알수있다. CISC 와상대되는 RISC 의발전계기와 RISC 형마이크로프로세서의특징을알수있다.

목차 3/33 1. 마이크로프로세서, 마이크로컨트롤러, 마이크로컴퓨터 2. 고급언어와저급언어 3. 프로그램실행원리 4. 명령어셋 5. 저장형프로그램컴퓨터 6. RISC와 CISC

컴퓨터시스템이란? 4/33 어떠한문제를계산적으로해결하기위한하드웨어컴포넌트들의집합 CPU + Memory + Bus + 주변장치 (HDD, mouse, 키보드, 네트워크, 프린터등등 ) CPU I-memory D-memory HDD mouse keybd network

CPU (Centural Processing Unit) 5/33 CPU == microprocessor opa opb Program Counter ALU +,-,*,/ AND, OR, XOR Result (ACC) Instruction Decode Unit Control Unit 마이크로프로세서 : one-chip CPU

Very Simple (micro-)processor Example 6/33 x=15 y=27 의최대공약수 (GCD; greatest common divisor)? Euclid s algorithm for GCD of x and y while (y!=0) begin if ( x <= y ) y = y x; else swap (x, y) end return x; What kind of h/w and instructions do we need to implement this algorithm?

GCD Assembly Program 7/33 tagged MovI { rd: R0, v: 0 }, // 0: The constant 0 tagged MovI { rd: R1, v: 15 }, // 1: x = 15 tagged MovI { rd: R2, v: 27 }, // 2: y = 27 // label_loop tagged Brz { rs: R2, dest:label_done }, // 3: if (y == 0) goto done tagged Gt { rd: R3, rs1: R1, rs2: R2 }, // 4: tmp = (x > y) tagged Brz { rs: R3, dest: label_subtract }, // 5: if (x <= y) goto subtract // swap tagged Minus { rd: R3, rs1: R1, rs2: R0 }, // 6: tmp = x; tagged Minus { rd: R1, rs1: R2, rs2: R0 }, // 7: x = y; tagged Minus { rd: R2, rs1: R3, rs2: R0 }, // 8: y = tmp; tagged Br label_loop, // 9: goto loop // label_subtract tagged Minus { rd: R2, rs1: R2, rs2: R1 }, // 10: y = y - x tagged Br label_loop, // 11: goto loop // label_done tagged Output R1, // 12: output x // label_last tagged Halt // 13: halt

Instruction format (1/2) 8/33 MovI : move immediate value (v) to rd 36 33 3231 1 0 op rd v 36 Br : branch to dest(ination) (memory) 33 3231 4 3 2 1 0 36 op unused dest Brz : if rs==0, then branch to dest (memory) 33 3231 6 5 4 3 2 1 0 op unused rs dest

Instruction format (2/2) 9/33 Gt : rd <= (rs1 > rs2) 36 33 3231 5 4 3 2 1 0 op unused rd rs1 rs2 36 Minus : 33 3231 rd <= (rs1 rs2) 5 4 3 2 1 0 op Output : unused display rs rd rs1 rs2 36 33 3231 5 4 3 2 1 0 36 op Halt 33 3231 unused 5 4 3 2 rs 1 0

rule fetchandexecute (running); let instr = imem [pc]; case (instr) matches tagged MovI { rd:.rd, v:.v } : begin regs[pack(rd)] <= v; pc <= pc + 1; end tagged Br.d : pc <= d; tagged Brz { rs:.rs, dest:.d } : if (regs[pack(rs)] == 0) pc <= d; else pc <= pc + 1; tagged Gt { rd:.rd, rs1:.rs1, rs2:.rs2 } : begin Bool b = (regs[pack(rs1)] > regs[pack(rs2)]); Value bv = extend (pack (b)); regs[pack(rd)] <= bv; pc <= pc + 1; end tagged Minus { rd:.rd, rs1:.rs1, rs2:.rs2 } : begin regs[pack(rd)] <= regs[pack(rs1)] - regs[pack(rs2)]; pc <= pc + 1; end tagged Output.rs tagged Halt : begin $display ("%0d: output regs[%d] = %0d", cycle, rs, regs[pack(rs)]); pc <= pc + 1; end : begin $display ("%0d: Halt at pc", cycle, pc); running <= False; end

11/33

Section 01 마이크로프로세서, 마이크로컨트롤러 12/33 마이크로프로세서 마이크로 (micro) 와프로세서 (processor) 가결합된용어 매우작은 (micro) 이라는의미와 처리기 (processor) 크기가매우작고, 뛰어난계산능력을가진장치 IC 집적기술, 컴퓨터구조기술, 시스템프로그래밍기술을함께묶어단일칩으로집적화한반도체소자 재료, 수학적개념, 전자집약기술, 사회적요구를수렴한다양한마이크로프로세서가사용되고있으며, 앞으로도꾸준한연구를통해더욱향상된마이크로프로세서가등장 프로그램을신속하게실행하기위한목적으로, 내부구조를최적화

Section 01 마이크로프로세서, 마이크로컨트롤러 13/33 마이크로컨트롤러 마이크로프로세서 (microprocessor) 와컨트롤러 (controller) 가결합된용어 매우작은 (micro) 이라는의미와 제어기 (controller) 라는의미 마이크로프로세서의연산처리기능에제어기능추가 프로그램을실행하면서장치를효과적으로제어하기위한목적으로, 내부구조를최적화 값싼장난감에서부터산업용장치에이르기까지넓은범주를대상 포함기능사례 외부디지털전압에대한입출력기능 메모리기능 ( 플래시메모리, SRAM, EEPROM 등 ) 타이머기능, PWM(Pulse Width Modulation) 펄스생성기능 입력신호캡처기능, A/D(Analog Digital) 변환기능 통신기능등

Section 02 고급언어와저급언어 14/33 번역기의필요성 컴퓨터에내장된마이크로프로세서는 2 진 (0 또는 1) 값을갖는명령어가차례대로실행되면서작업을처리 프로그램 작업을처리하기위해명령어를차례로배열한것 원시프로그램 : 사람이작성한프로그램 ( 고급언어로보통작성 ) 번역기 (Translator) 원시프로그램을저급언어 (Low level language) 인 2진명령어로변환 컴퓨터가인식할수있는기계어 (Machine language) 의실행프로그램 (Executable Program) 으로변환 기계어 : 마이크로프로세서내부의실행동작을명령어단위로표현 명령어를이해하면마이크로프로세서내부구조를쉽게이해

Section 02 고급언어와저급언어 15/33 기계어와어셈블리어 기계어 (Machine Language) 특정비트에, 특정의미가있는 2 진값을설정하는명령어를나열 어셈블리어 (Assembly Language) 기계어를사람이연상하기쉬운니모닉 (Mnemonic) 과연산대상이라는영문단어로바꿔표현 어셈블러 (Assembler) 어셈블리어로작성된원시프로그램을기계어로변환시키는번역기

Section 02 고급언어와저급언어 원시프로그램에서실행파일생성 컴파일 (Compile), 컴파일러 고급언어로작성된원시프로그램을기계어목적파일로번역하는과정 컴파일러 : 컴파일을수행하는번역기 어셈블 (Assemble), 어셈블러 어셈블리어로작성된원시프로그램을기계어목적파일로번역하는과정 어셈블러 : 어셈블을수행하는번역기 링크 (Link), 링커 여러개의목적파일을연결하여통합된실행파일로만드는과정 링커 : 링크를전담하는프로그램 라이브러리 공통으로자주사용하는기능은표준화된이름과매개변수가있는함수로작성한후, 컴파일하여목적파일을생성 컴파일된목적파일을모아놓은파일을 라이브러리파일 이라함 ( 예시 ) sin, cos, tan, printf 등과같이자주사용하는함수 16/33

Section 02 고급언어와저급언어 17/33 실행파일이생성되는과정 원시프로그램 목적파일 asm 로딩 실행파일이중앙처리장치 (CPU, Central Processing Unit) 에서실행되려면, 주메모리에탑재되는과정필요 로더 : 로딩을전담하는프로그램

Section 03 프로그램실행원리 18/33 특수레지스터, 범용레지스터, CPU 외부의메모리사이에 ALU(Arithmetic Logic Unit) 를통한연산을통해명령어실행

Section 03 프로그램실행원리 19/33 특수레지스터와범용레지스터 범용레지스터 CPU 연산에필요한오퍼랜드혹은연산결과의임시저장을위해 ALU와직접연결 연산대상이되는오퍼랜드값을가짐 특수레지스터 명령어를실행할때필요한범용데이터가아닌특수한데이터를처리하기위한레지스터 프로그램카운터, 명령어레지스터, 상태레지스터, 메모리주소레지스터, 메모리버퍼레지스터등 프로그램카운터 (PC, Program Counter) 인출할명령어가있는메모리의주소를갖는특수레지스터 프로그램메모리에서한개의명령어인출이끝나면, 그명령어의크기가더해진값으로자동변경되어다음명령어인출을위한주소를가짐

Section 03 프로그램실행원리 20/33 명령어레지스터 (IR, Instruction Counter) 프로그램메모리에서인출된명령어를기억하고있는특수레지스터 인출된명령어에는특정비트에연산동작 (opcode), 연산대상 (operand), 연산결과 (result) 어드레싱모드등의정보를설정 상태레지스터 (Status Register) 명령어를실행한후의연산결과정보를기록 기록된상태레지스터의각비트는연속되는다음명령어실행에영향을미침.+4 ( 예시 ) brcs.+4 명령은 cpi 명령실행후, 상태레지스터의캐리비트값이 1 이면, 현재의프로그램카운터보다 4 바이트후의분기된곳을실행

Section 03 프로그램실행원리 21/33

Section 03 프로그램실행원리 22/33

Section 03 프로그램실행원리 23/33

Section 03 프로그램실행원리 24/33 메모리주소레지스터 (MAR) 와메모리버퍼레지스터 (MBR) 데이터인출 / 기록과정에서데이터또는주소를임시로저장하기위한특수레지스터 명령어실행 ❶ 명령어인출단계 프로그램메모리에있는명령어를인출 (Fetch) 하여, 명령어레지스터 (IR) 에넣는단계 명령어는연산동작 (opcode), 연산대상 (operand), 연산결과 (result) 를지칭하는비트정보로구성 ❷ 명령어분석단계 명령어레지스터 (IR) 정보를디코딩하여레지스터파일, 버스라인등에필요한신호를생성

Section 03 프로그램실행원리 25/33 ❸ 오퍼랜드인출단계 디코딩결과에따라연산에사용될오퍼랜드 (operand) 위치가결정 오퍼랜드가메모리에있는경우, 메모리로부터인출하여 CPU 내부의레지스터로옮기는단계 메모리로부터 CPU 내부로옮기기위해서는부가의클록이요구되고명령어실행시간이길어짐 오퍼랜드가명령어에포함되어있거나레지스터에있는경우, 이단계는생략 ❹ 연산실행및결과생성단계 명령어레지스터의연산동작 (opcode) 에따라오퍼랜드값등을사용하여산술또는논리연산 조합논리회로로구성된 ALU 에서오퍼랜드를사용하여연산결과는어큐뮬레이터 (Accumulator) 또는범용레지스터로기록 ❺ 결과기록단계 명령어를디코딩한결과연산된결과를저장하는위치가메모리이면, 이단계가수행

Section 03 프로그램실행원리 26/33 명령어인출 - 실행사이클 프로그램은명령어가메모리에서인출 (Fetch) 되어실행 (Execution) 되는사이클이반복되면서수행 RISC 구조로실행단계를단순화할수있음 오퍼랜드인출단계를, 별도의명령어 load 결과기록단계를, 별도의명령어 store 단순해지는인출-실행사이클