การทำงานของไมโครโปรเซสเซอร์

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ขั้นตอนการแปลงไฟล์.
Advertisements

เฉลยใบงานที่ 1 องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
การเขียนคำสั่งควบคุม การทำงานขั้นพื้นฐาน
 เครือข่ายคอมพิวเตอร์  การที่ระบบเครือข่ายมีบทบาทและ ความสำคัญเพิ่มขึ้น เพราะไมโครคอมพิวเตอร์ได้รับ การใช้งานอย่างแพร่หลาย จึงเกิดความต้องการที่จะ.
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
หน่วยที่ 3 ภาษาคำสั่งพื้นฐานที่ใช้เขียนโปรแกรม PLC
ซอฟต์แวร์ระบบที่รู้จักกันดี คือซอฟต์แวร์ควบคุมการปฏิบัติการ ของคอมพิวเตอร์ที่เรียกว่า ระบบปฏิบัติการ ระบบปฏิบัติการเป็นชุดคำสั่งที่ใช้ควบคุมระบบฮาร์ดแวร์และ.
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
Computer in Business เรื่อง การใช้งาน Access เบื้องต้น.
วิชา. การใช้โปรแกรมสำเร็จรูปในชีวิตประจำวัน บทที่ 2
ซอฟต์แวร์และการเลือกใช้
องค์ประกอบของคอมพิวเตอร์
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
อุปกรณ์ คอมพิวเตอร์ หน่วยรับเข้า และ หน่วยส่งออก ( In put, Out put )
เตชิษฐ์ เรือง ไพศาล.  คอมพิวเตอร์เป็นอุปกรณ์ไฟฟ้าที่ใช้ไฟฟ้า กระแสตรงทำงาน  ข้อมูลภายในเป็นข้อมูลดิจิตอล  …..  แทนข้อมูลเหล่านี้ด้วยแรงดันไฟฟ้า.
เรื่อง หลักการเขียนโปรแกรม เบื้องต้น จัดทำโดย นางสาวชาดา ศักดิ์บุญญารัตน์
บทที่ 2 โครงสร้างและหน้าที่ การทำงาน ของระบบคอมพิวเตอร์
การจัดเก็บข้อมูลในแฟ้มข้อมูลธรรมดา นั้น อาจจำเป็นที่ใช้แต่ละคน จะต้องมีแฟ้มข้อมูลของตนไว้เป็นส่วนตัว จึง อาจเป็นเหตุให้มีการเก็บข้อมูล ชนิดเดียวกันไว้หลาย.
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
ซอร์ฟแวร์ ( Software ). Microsoft excel Microsoft excel Microsoft power point.. Link Link.
Project Management by Gantt Chart & PERT Diagram
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
การจัดการโปรเซส T.Kunlaya Charoenmongkonvilai
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
IP-Addressing and Subneting
Number system (Review)
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
IP-Addressing and Subneting
การประยุกต์ Logic Gates ภาค 2
สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
การพัฒนาการใช้งานในระบบเว็บ
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
แล้วทำการเรียงลำดับข้อมูลใหม่โดยเรียงจากน้อยไปหามาก
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
BC320 Introduction to Computer Programming
เรียนรู้การใช้งานโปรแกรม เพื่อจำลองระบบไมโครคอนโทรลเลอร์
โครงสร้างภาษา C Arduino
บทที่ 1 ความรู้ทั่วไปเกี่ยวกับคอมพิวเตอร์
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
บทที่ 1 โครงสร้างคอมพิวเตอร์พื้นฐาน
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
Interrupt & Timer.
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Basic Input Output System
Introduction to Microprocessors
Android Programming Getting Start Prawit Pimpisan Computer Science
บทที่ 1 ระบบสารสนเทศ (Information System)
ชุดที่ 1 ไป เมนูรอง.
บทที่ 8 การควบคุมระบบสารสนเทศทางการบัญชี : การควบคุมเฉพาะระบบงาน
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
Data storage II Introduction to Computer Science ( )
ระบบตัวเลข, Machine code, และ Register
บทที่7 ทฤษฎีกราฟเบื้องต้น
ผู้ช่วยศาสตราจารย์จุฑาวุฒิ จันทรมาลี
Data storage II Introduction to Computer Science ( )
บทที่ 3 : รูปแบบการเชื่อมต่อเครือข่ายและส่วนประกอบของเครือข่ายท้องถิ่น (Topologies and LAN Components) Part1.
บทที่ 9 การเรียงลำดับข้อมูล (Sorting)
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
2 โครงสร้างข้อมูลแบบสแตก (STACK).
3 โครงสร้างข้อมูลแบบคิว (QUEUE).
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
การจัดบล๊อคและบัฟเฟอร์ (Blocking and Buffering)
ฟังก์ชันของโปรแกรม Computer Game Programming
Decision: Single and Double Selection (if and if-else statement)
I/O Interfacing :: x86, ISA Bus
เมนูหลัก ส่วนประกอบของคอมพิวเตอร์ ผลการเรียนรู้ที่คาดหวัง
กระดาษทำการ (หลักการและภาคปฏิบัติ)
ใบสำเนางานนำเสนอ:

การทำงานของไมโครโปรเซสเซอร์

ขั้นตอนการทำงานของ CPU ขั้นตอนการทำงานของหน่วยประมวลผลกลางมีลักษณะเป็นวงรอบ โดยขั้นแรกหน่วยประมวลผลกลางจะอ่านคำสั่งจากหน่วยความจำ (fetch) จากนั้นหน่วยประมวลผลกลางจะตีความคำสั่งนั้น (decode) ขั้นตอนสุดท้ายหน่วยประมวลผลกลางก็จะประมวลผล ตามคำสั่งที่อ่านเข้ามา (execute) เมื่อทำงานเสร็จหน่วยประมวลผล ก็จะเริ่มอ่านคำสั่งเข้ามาอีกครั้ง

The ALU เป็นส่วนที่ทำหน้าที่ในการคำนวณทางด้าน คณิตศาสตร์และ ตรรกศาสตร์ การกระทำอาจจะกระทำกับ Operator 2 หรือ 1 ตัว ขึ้นอยู่กับ operation Function การทำงานพื้นฐาน ของ ALU โดยทั่วไป Add , Subtract AND, OR, Exclusive OR, Complement Shift Right, Shift Left Increment, Decrement ALU ไม่สามารถทำการเก็บข้อมูลได้ ดังนั้นหลังจากกระทำการเสร็จเรียบร้อยแล้ว ต้องการนำผลที่ได้ไปสำรองไว้ในส่วนของ Programming Model

The Microprocessor’s Register Microprocessor ทั่วไป มี Register พื้นฐานดังนี้ Accumulator, Program Counter, Stack Pointer, Status Register, General-purpose Register, Memory Address Register, Instruction Register และ Temporary data Register Register บางตัวเท่านั้นที่อยู่ในส่วนของ Programming Model ซึ่งสามารถเรียกใช้งานได้จาก Programmer Register ทำหน้าที่ในการเก็บสำรองข้อมูล บางตัวทำหน้าที่พิเศษ จำนวนของ Register ขึ้นอยู่กับ Architecture ภายใน Microprocessor ที่มีจำนวน Register มาก การเขียนโปรแกรมทำได้สะดวกขึ้น

The Accumulator เป็น Register หลัก สำหรับเก็บข้อมูลก่อนที่จะกระทำใด ๆ การกระทำทาง ตรรกศาสตร์ และ ทางคณิตศาสตร์ กระทำในส่วนของ ALU และ Accumulator การกระทำที่กระทำระหว่าง Operator 2 ตัว เป็น Accumulator 1 ส่วนอีก 1 ตัว มาจาก Register อื่นหรือ หน่วยความจำ การกระทำบางอย่าง ใช้ Accumulator เป็นตัวส่งผ่านข้อมูล ระหว่าง Microprocessor กับหน่วยความจำในตำแหน่งต่าง ๆ หรือ อุปกรณ์ Input / Output เช่นในการย้ายข้อมูลจากที่หนึ่งไปยังอีกที่หนึ่ง ขั้นแรกจะย้ายข้อมูลจาก Source ไปยัง Accumulator ก่อน จากนั้น ย้ายข้อมูลจาก Accumulator ไปยัง Destination

The Accumulator Microprocessor สามารถกระทำการ กับข้อมูลโดยตรงภายใน Accumulator ได้ เช่นการ Set บาง bit หรือ ทุก bit ให้เป็น 0 หรือ 1 Register บางตัวตาม Architecture ไม่สามารถถูกกระทำได้โดยตรง ซึ่งต้องทำได้โดยย้ายข้อมูลนั้น มายัง Accumulator ก่อน แล้วกระทำการใน Accumulator เมื่อกระทำการเสร็จเรียบร้อยแล้ว ทำการย้ายข้อมูลกลับไป Register ตัวนั้น ๆ Microprocessor บางตัวมี Double-length Accumulator , Multiple Accumulator ทำให้สามารถกระทำการต่าง ๆ ได้สะดวก ยิ่งขึ้น

The Program Counter Program Counter ทำหน้าที่ในการเก็บตำแหน่งของคำสั่งในหน่วย ความจำ เพื่อให้ Microprocessor ทำงานตามคำสั่งนั้น ๆ คำสั่ง ได้รับการเก็บในหน่วยความจำ ในลักษณะเรียงต่อกันไปเป็นลำดับ ขนาดของ Program Counter โดยส่วนมากมีขนาดมากกว่าขนาดของ Data bus เช่นใน Microprocessor ขนาด 8-bit อาจจะมีขนาดของ Program Counter จำนวน 16-bit สามารถอ้างตำแหน่งได้ตั้งแต่ ตำแหน่งที่ 0 ถึง 65,535 Program Counter เชื่อมต่อกับ Internal Data Bus. Program Counter สามารถรับข้อมูลจากส่วนต่าง ๆ ภายใน Microprocessor และ จากหน่วยความจำ เพื่อใช้กำหนดค่าใน Program Counter

The Program Counter ก่อนที่ Microprocessor จะเริ่มทำงานตามโปรแกรม ต้องทำการกำหนดตำแหน่งแรกของโปรแกรมในหน่วยความจำ ให้กับ Program Counter โดยปกติ ขณะเริ่มต้นจะทำการ Reset ทุก bit ของ Program Counter ให้เป็น 0 หรือ Set ทุก bit ของ Program Counter ให้เป็น 1 ข้อมูลในแต่ละตำแหน่งของหน่วยความจำ ที่อ้างโดย Program Counter เป็นการเก็บคำสั่ง หรือ ข้อมูล เพื่อสั่งงาน Microprocessor หรือ เพื่อนำข้อมูลไปประมวลผล

Program Counter (Fetch instructions) ก่อนที่จะเริ่มทำคำสั่งแรก Microprocessor ทำการกำหนดข้อมูลใน Program Counter เพื่อให้ Address Bus ชี้ไปยังตำแหน่งหน่วยความจำที่มีคำสั่งอยู่ คำสั่งที่อ่านเข้ามา ถูกเก็บไว้ใน Instruction Register หลังจากทำการอ่านคำสั่งเข้ามาใน Microprocessor. Program Counter Register ทำเพิ่มค่าของตัวเอง ขึ้นไปอีก 1 ค่า โดย อัตโนมัติ Program Counter Register ทำการชี้ไปยังตำแหน่งของคำสั่งถัดไป เมื่อเริ่มทำการ execute คำสั่งปัจจุบัน การเรียกใช้งาน โปรแกรมย่อย Program counter จะทำการกระโดดจากโปรแกรมหลัก ข้ามไปทำงาน ณ. ตำแหน่งของ โปรแกรมย่อย เมื่อทำ โปรแกรมย่อยเสร็จแล้ว จะกลับไปทำงาน ณ.ตำแหน่งถัดไปของโปรแกรมหลัก

The Status Register เรียกอีกอย่างหนึ่งว่า Flag Register ทำหน้าที่เก็บผลที่ได้จากการประมวลของคำสั่งต่าง ๆ ระหว่างการทำงานของ Microprocessor Flag Register ใช้ในการตัดสินใจทำงาน ในกรณีที่เป็นการทำงานในลักษณะของการเลือกทำ หรือทำซ้ำ

Status Register bits Carry / Borrow เป็นตัวบอกว่ามีการทดหรือยืมเกิดขึ้นหรือไม่ ในการบวกและการลบ Zero ถูก Set เมื่อ ทุก Bit ของ Register ที่ต้องการ ตรวจสอบ เป็น 0 หมด Negative ถูก Set เมื่อ MSB ของ Register ที่ต้องการตรวจสอบนั้นเป็น 1 Intermediate carry ถูก Set เมื่อ มีตัวทดข้ามระหว่าง 4 bit กับ 4 bit หลังของการบวก Interrupt flag โปรแกรมสามารถทำการกำหนดว่าต้องการให้มีการ Interrupt จากอุปกรณ์ภายนอกเกิดขึ้นได้หรือไม่ / Microprocessor บางตัวมี Interrupt flag หลายตัว สำหรับทำการ Interrupt หลาย ๆ ประเภท Overflow ถูก Set เมื่อมีการ Set ของ Carry flag และ Sign flag ในการทำการคำนวณแบบ 2’S Parity ถูก Set เมื่อจำนวนของ Bit ที่เป็น 1 ของผลจากการกระทำใน Register เป็นเลขคู่

The Stack Pointer [Procedure calls] ทำหน้าที่เก็บ ตำแหน่งของคำสั่งในหน่วยความจำที่ต้องทำเป็นลำดับถัดไป เมื่อทำงานในโปรแกรมย่อยเสร็จแล้วให้แก่ Program Counter Register มีการจองพื้นที่บางส่วนเพื่อใช้ในหน่วยความจำ เพื่อทำหน้าที่นี้ หน่วยความจำส่วนนี้ เรียกว่า Stack โดยมี Stack Pointer เป็นตัวชี้ การนำค่าลงใน Stack เรียกว่า Pushes การนำค่าออก Stack เรียกว่า Pops การทำงานเป็นในลักษณะของ LIFO ( Last In First Out ) Stack Pointer ชี้ไปยังตำแหน่งถัดไปโดย อัตโนมัติ เมื่อเริ่มใช้งาน Microprocessor ต้องทำการกำหนดค่าเริ่มต้น ของ Stack Pointer ชี้ไปยังตำแหน่งหน่วยความจำ Stack ถ้าไม่กำหนด Stack Pointer อาจชี้ไปยังตำแหน่งเดียวกับ โปรแกรม ทำให้เกิดการผิดพลาดได้

General Purpose Register เตรียมไว้สำหรับเป็นที่เก็บข้อมูล บาง Microprocessor สามารถใช้ General Purpose Register ได้เสมือนกับเป็น Accumulator ถ้าในส่วนของ ALU สามารถเขียนข้อมูลลงใน Register นั้นได้โดยตรง สามารถใช้งานได้ทั้ง Register เพียงตัวเดียว (ข้อมูลขนาด 8 bit) หรือ ใช้งานในลักษณะของ คู่ Register (Register Pair, ข้อมูลขนาด 16 bit) เช่น BC, DE, HL

Instruction Register มีหน้าที่ในการเก็บรักษาคำสั่งที่ Microprocessor ทำงานอยู่ในปัจจุบัน Instruction Register ทำการ Load ข้อมูลเมื่อเริ่มขั้นตอนของการ fetch/execute cycle หรือ Instruction Cycle จาก Diagram : Instruction Register ต่อเข้ากับ Internal Data Bus ในลักษณะรับข้อมูลได้เพียงอย่างเดียว ไม่สามารถส่งข้อมูลไปยัง Internal Data Bus ได้ ข้อมูลใน Instruction Register ถูกป้อนเข้ากับ Input ของส่วน Control Logic เพื่อใช้ควบคุมการทำงานให้เป็นไปตามคำสั่งนั้น

Instruction Register (Fetch/Excute Cycle) ลำดับของ fetch/execute Cycle คำสั่งถูก fetch เข้ามา จากตำแหน่งของหน่วยความจำที่ Program Counter ชี้อยู่ Program Counter ชี้ไปยังตำแหน่งหน่วยความจำในลำดับถัดไป คำสั่งที่ fetch เข้ามาถูกส่งเข้ามายัง Internal Data Bus และนำเข้าไปเก็บใน Instruction Register จากนั้น คำสั่งถูก execute : ระหว่างการ execute ส่วนของ Instruction Decoder จะอ่านข้อมูลที่ บรรจุอยู่ใน Instruction Register และ ถอดรหัสเพื่อใช้ในการส่งงานส่วนต่าง ๆ ให้เป็นไปตามลำดับการทำงานของคำสั่งนั้น บาง Microprocessor : Instruction Register มีขนาดเท่ากับขนาดของ Data บาง Microprocessor มีขนาดเพียง 3 - 4 bits

Temporary Data Register เนื่องจาก ALU ไม่สามารถเก็บข้อมูลที่จะใช้ในการคำนวณได้, ALU ทำการคำนวณข้อมูลที่ปรากฏขึ้นในขณะนั้น ๆ ตามที่ได้รับคำสั่งให้ทำงานการกระทำใด, Temporary Register เข้ามาช่วย ALU ในส่วนนี้ จากตัวอย่าง มี Temporary Register 2 ตัว : บาง Microprocessor อาจมีมากกว่านี้ ขึ้นอยู่กับ Architecture ภายใน Temporary Register ไม่อยู่ใน Programmer’s model ดังนั้นจึงไม่สามารถเรียกใช้งานได้โดยตรงจาก Programmer

Microprocessor’s Logic Control รับคำสั่งที่ใช้ควบคุมลำดับการทำงานของส่วนต่าง ๆ จาก Instruction Register ลำดับขั้นตอนการทำงานที่ควบคุมส่วนต่าง ๆ ให้เป็นไปตามคำสั่งที่รับเข้ามา เรียกว่า Micro-programmed หรือ Micro-coded เสมือนกับมี Microprocessor ตัวเล็ก ๆ อีกตัวหนึ่งซ้อนอยู่ภายใน ส่วนที่ทำหน้าที่ในการควบคุมลำดับขั้นตอนการทำงาน คือ Instruction Decoder นอกจากการควบคุมส่วนต่าง ๆ ภายในแล้ว ยังควบคุมอุปกรณ์ต่าง ๆ ภายนอกด้วย เช่น สัญญาณติดต่อกับ Memory , I/O , สัญญาณใน อ่าน-เขียนข้อมูล จากอุปกรณ์ภายนอก รับสัญญาณต่าง ๆ จากอุปกรณ์ภายนอกด้วย เช่น สัญญาณนาฬิกา เพื่อใช้กำหนดความเร็วในการทำงาน, สัญญาณ Interrupt

Microprocessor’s Internal Data Bus ALU และ Register ทุกตัวมีการเชื่อมต่อกับ Internal Data Bus การรับส่งข้อมูลภายใน Microprocessor จะผ่านทาง Internal Data Bus ส่วนต่าง ๆ ภายใน Microprocessor ส่วนใหญ่ ติดต่อกับ Internal Data Bus ในลักษณะของ Bi-directional Microprocessor ทำการเชื่อมต่อระหว่าง Internal Data Bus และ External Data Bus เมื่อต้องการรับส่งข้อมูลกับ หน่วยความจำภายนอก หรือ อุปกรณ์ I/O ส่วนที่ทำหน้าที่จัดการการเชื่อมต่อระหว่าง Internal และ External Data Bus เรียกว่า Bi-directional Bus Transceiver ส่วนต่าง ๆ ภายใน Microprocessor ที่ต้องการติดต่อกับ Internal Data Bus ต้องรอสัญญาณจากส่วน Control Logic

สถาปัตยกรรมของไมโครโปรเซสเซอร์เบื้องต้น Introduction to Microprocessor Architecture

The Microprocessor Block Diagram and Programmer’s Model Block Diagram จะแสดงลักษณะของการเชื่อมต่อภายในของ Microprocessor เพื่อประโยชน์ในการออกแบบ Hardware Programmer’s Model จะใช้ช่วยในการพัฒนาโปรแกรม โดยจะแสดงส่วนของ Registers ที่ Programmer สามารถนำไปใช้ในการเขียนโปรแกรม

Programmer’s model / Programming model

68000 : Programmer’s model M68000PRM.pdf

IA32 : Programmer’s model GPR MMX SSE FPU 8 of 80 Data Reg. IA-32 Intel(R) Architecture Software Developers Manual Vol 1 - Basic Architecture.pdf

Microprocessor Block Diagram

Microprocessor Block Diagram : ZiLOG Z8018x Family

Microprocessor Block Diagram : Intel 8088 : 8 Bit Data Bus, 16 Bit Int.

8088 Memory Organization The processor provides a 20-bit address to memory which locates the byte being referenced. The memory is organized as a linear array of up to 1 million bytes, addressed as 00000(H) to FFFFF(H). The memory is logically divided into code, data, extra data, and stack segments of up to 64K bytes each, with each segment falling on 16-byte boundaries.

8088 Memory Organization The segment types were chosen based on the addressing needs of programs. The segment register to be selected is automatically chosen according to the rules of the following table.

8088 Memory Organization All information in one segment type share the same logical attributes. By structuring memory into relocatable areas of similar characteristics and by automatically selecting segment registers, programs are shorter, faster, and more structured. Word (16-bit) operands can be located on even or odd address boundaries. Little Endean: For address and data operands, the least significant byte (LSB) of the word is stored in the lower valued address location and the most significant byte (MSB) in the next higher address location. The BIU will automatically execute two fetch or write cycles for 16-bit operands.

Introduction to Computer System’s Structures

Intel386™ Processor System The Industry Standard Architecture The X-bus is a buffered version of an ISA bus in which the system peripherals such as keyboard, mouse, and DMA controllers are connected. Design Considerations for Migrating Intel386™ and Intel486™ Processor Embedded Systems to the Pentium® Processor Application Note

Intel486™ Processor System The local bus concept was introduced to speed up data fetches. This is particularly useful for devices that need a high data transfer rate, such as video graphics memory. This is also known as VESA local bus

Pentium® Processor System the branch prediction algorithm has been improved, and support for Intel MMX technology has been added which is an extension to the Intel architecture (IA) instruction set that adds 57 new opcodes and a new MMX register set.

Basic System Timing