สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
คุณลักษณะของคำสั่งภาษาเครื่อง ชนิดของตัวถูกดำเนินการ
Advertisements

Array ธนวัฒน์ แซ่ เอียบ. The concept of array อาเรย์ : กลุ่มของข้อมูลที่มีชนิดเดียวกันและถูก จัดเก็บเรียงลำดับต่อเนื่องกัน ตัวแปร x สามารถจัดเก็บค่ามากกว่า.
ชื่อผู้สอน : นางฐิติมา พิริยะ
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
การใช้งานโปรแกรม SPSS
หน่วยที่ 3 ภาษาคำสั่งพื้นฐานที่ใช้เขียนโปรแกรม PLC
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
วิชา. การใช้โปรแกรมสำเร็จรูปในชีวิตประจำวัน บทที่ 2
ชนิดของข้อมูล และการคำนวณทางคณิตศาสตร์
Pushdown Automata : PDA
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
ซอฟต์แวร์และการเลือกใช้
ตัวแปร และชนิด ข้อมูล. ตัวแปร การกำหนดตัวแปรเป็นการใช้ ชื่อตัวแปรแทน ตำแหน่งบนหน่วยความจำ สำหรับเก็บ ข้อมูลระหว่างการ ประมวลผล ซึ่งอาจเป็นข้อมูลนำเข้า.
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
บทที่ 2 โครงสร้างและหน้าที่ การทำงาน ของระบบคอมพิวเตอร์
การจัดเก็บข้อมูลในแฟ้มข้อมูลธรรมดา นั้น อาจจำเป็นที่ใช้แต่ละคน จะต้องมีแฟ้มข้อมูลของตนไว้เป็นส่วนตัว จึง อาจเป็นเหตุให้มีการเก็บข้อมูล ชนิดเดียวกันไว้หลาย.
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
คำสั่งควบคุมการทำงาน
วิชาเทคโนโลยีสารสนเทศเพื่อชีวิต
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
เกม คณิตคิดเร็ว.
การจัดการโปรเซส T.Kunlaya Charoenmongkonvilai
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
บทที่ 5 อินพุตและเอาต์พุต
Number system (Review)
บทสรุป ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
อาจารย์อภิพงศ์ ปิงยศ บทที่ 2 : แบบจำลองเครือข่าย (Network Models) part1 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
การประยุกต์ Logic Gates ภาค 2
บทที่ 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 โครงสร้างคอมพิวเตอร์พื้นฐาน
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
บทที่ 13 การจัดการไฟล์ (File Management)
ชุดที่ 1 ไป เมนูรอง.
ขอแนะนำ PowerPoint 2007 การแนะนำคุณลักษณะใหม่ๆ.
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
Object-Oriented Programming Paradigm
บทที่ 3 ซอฟต์แวร์ประยุกต์
การสร้างโมเดลจำลองความสัมพันธ์ ระหว่างข้อมูล E-R Model
Data storage II Introduction to Computer Science ( )
บริษัท พัฒนาวิชาการ (2535) จำกัด
Week 5 C Programming.
ภัยคุกคาม ที่เกิดขึ้นในระบบสารสนเทศ
โดย นายอนุชา ศรีเริงหล้า นักอุตุนิยมวิทยาปฏิบัติการ
SMS News Distribute Service
โครงสร้างข้อมูลแบบสแตก (stack)
ผู้ช่วยศาสตราจารย์จุฑาวุฒิ จันทรมาลี
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
Data storage II Introduction to Computer Science ( )
สาขาวิชาคอมพิวเตอร์ธุรกิจ โดย อาจารย์กิตติพงษ์ ภู่พัฒน์วิบูลย์
หน่วยที่ 6 อะเรย์ของอักขระ
บทที่ 7 การประมวลผลอาร์เรย์
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
สถาปัตยกรรมของฐานข้อมูล
OPERATOR ภาษาปาสคาล (Pascal)
ค่ารูรับแสง - F/Stop ค่ารูรับแสงที่มีค่าตัวเลขต่ำใกล้เคียง 1 มากเท่าไหร่ ค่าของรูรับแสงนั้นก็ยิ่งมีความกว้างมาก เพราะเราเปรียบเทียบค่าความสว่างที่ 1:1.
2 โครงสร้างข้อมูลแบบสแตก (STACK).
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
Chapter 3 : Array.
Array: One Dimension Programming I 9.
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
Computer Game Programming
ใบสำเนางานนำเสนอ:

สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)

บทที่ 4 ชุดคำสั่ง (Instruction Sets)

ชุดคำสั่ง (Instruction Sets) โปรเซสเซอร์ใช้คำสั่งได้ตามคำสั่งที่ถูกบรรจุลงใน ALU คำสั่งหลาย ๆ คำสั่งที่บรรจุลงใน ALU นี้เรียกว่าชุดคำสั่งของเครื่อง (Machine Instructions Sets) ชุดคำสั่งนี้ทำให้ผู้ออกแบบระบบคอมพิวเตอร์และโปรแกรมเมอร์อยู่ในขอบเขต เดียวกัน ผู้ออกแบบระบบมองว่าชุดคำสั่งประกอบด้วยฟังก์ชันพื้นฐานสำหรับการทำงานของคอมพิวเตอร์ อาจกล่าวได้ว่าการสร้างโปรเซสเซอร์ก็คือการสร้างชุดคำสั่งนั่นเอง โปรแกรมเมอร์จะต้องพิจารณาถึงโครงสร้างของรีจิสเตอร์และหน่วยความจำ ประเภทข้อมูลในเครื่อง และฟังก์ชันของ ALU เพื่อเขียนโปรแกรมสั่งให้ซีพียูทำงาน

คุณสมบัติพื้นฐานของคำสั่ง ชุดคำสั่ง (Instruction Sets) หมายถึงชุดของคำสั่งที่โปรเซสเซอร์เอ็กซิคิวต์เพื่อดำเนินการตามที่โปรแกรมเมอร์ต้องการ อาจเรียกชุดคำสั่งว่า “คำสั่งเครื่อง” (machine instructions) หรือ “คำสั่งคอมพิวเตอร์” (computer instructions) ก็ได้ ในแต่ละชุดคำสั่งอาจจะมีคำสั่งที่หลากหลายประกอบอยู่ เช่น คำสั่งสำหรับการบวก ซีพียูจะต้องมีคำสั่งในการโหลดข้อมูลจากรีจิสเตอร์ลงหน่วยความจำ แล้วเรียกใช้คำสั่งสำหรับการบวก หลังจากนั้นจะมีคำสั่งเพื่อเก็บค่าผลลัพธ์กลับรีจิสเตอร์อีกครั้ง

คุณสมบัติพื้นฐานของคำสั่ง ชุดคำสั่งของแต่ละโปรเซสเซอร์จะมีความแตกต่างกัน สิ่งที่แตกต่างกันอาจจะเป็นขนาดของคำสั่ง ประเภทของโอเปอเรชัน ประเภทของโอเปอแรนด์ หรือประเภทของผลลัพธ์ก็ได้ ชุดคำสั่งที่แตกต่างกันนี้อาจจะเกิดจากโครงสร้างภาษาชั้นสูงที่โปรแกรมเมอร์ใช้งาน เช่น ภาษา C Pascal หรือ Ada เป็นต้น โปรแกรมภาษาชั้นสูงเหล่านี้จะถูกคอมไพล์ (compile) ด้วยคอมไพเลอร์หรือตัวแปรภาษานั้นให้เป็นภาษาเครื่องเพื่อทำงานต่อไป ต้องมีการคอมไพล์ใหม่ให้ตรงกับโปรเซสเซอร์ที่ใช้งาน การคอมไพล์ใหม่เป็นการเปลี่ยนภาษาชั้นสูงให้เป็นภาษาเครื่องตามชุดคำสั่งของซีพียูนั่นเอง

วงรอบคำสั่ง การทำงานของคอมพิวเตอร์คือการที่โปรเซสเซอร์เอ็กซิคิวต์คำสั่งในโปรแกรมตามลำดับเรื่อยไปตั้งแต่ต้นจนจบ รูปแบบคำสั่งที่ง่ายที่สุดจะมี 2 ขั้นตอนคือการที่โปรเซสเซอร์อ่านหรือเฟ็ตช์คำสั่ง (fetches) จากหน่วยความจำครั้งละ 1 คำสั่ง หลังจากนั้นจะเอ็กซิคิวต์ (execute) ตามคำสั่งนั้น

วงรอบคำสั่ง ไดอะแกรมของวงรอบคำสั่ง

วงรอบคำสั่ง Instruction Address Calculation (IAC) หาตำแหน่งที่เก็บคำสั่งต่อไปที่โปรเซสเซอร์จะอ่านเข้ามา Instruction Fetch (IF) อ่านคำสั่งจากตำแหน่งบนหน่วยความจำลงในโปรเซสเซอร์ Instruction Operation Decoding (IOD) วิเคราะห์คำสั่งเพื่อพิจารณาประเภทของโอเปอเรชั่นที่กระทำและที่จะใช้ Operand Address Calculation (OAC) หาตำแหน่งของโอเปอเรชัน Operation Fetch (OF) อ่านโอเปอร์แรนด์จากหน่วยความจำหรืออุปกรณ์อินพุตเอาต์พุต Data Operation (DO) นำข้อมูลกระทำตามโอเปอเรชั่น Operand Store (OS) เขียนผลลัพธ์ลงในหน่วยความจำ

ส่วนประกอบคำสั่งเครื่อง Operation code : กำหนดโอเปอเรชันที่จะกระทำ เช่น ADD(การบวก), I/O โอเปอเรชันถูกกำหนดด้วยเลขฐานสองที่เรียกว่า operation code หรือ opcode Source operand reference : กำหนดส่วนอ้างอิงของโอเปอแรนด์ที่ใส่เข้ามาสำหรับโอเปอเรชัน Result operand reference : อ้างอิงถึงผลลัพธ์จากโอเปอเรชัน Next instruction reference : บอกซีพียูว่าจะไปอ่านคำสั่งต่อไปได้จากไหนหลังจากเอ็กซิคิวต์คำสั่งนี้เสร็จสมบูรณ์แล้ว

Simple Instruction Format(รูปแบบคำสั่งแบบง่าย)

ประเภทคำสั่ง คอมพิวเตอร์จะต้องมีชุดคำสั่งที่ยอมให้ผู้ใช้งานทำงานกับข้อมูลได้ตามต้องการ Data processing : คำสั่งทางคณิตศาสตร์และตรรกะ Data storage : คำสั่งจัดการหน่วยความจำ Data movement : คำสั่งจัดการอินพุต/เอาต์พุต Control : คำสั่งตรวจสอบเงื่อนไขและกระโดดไปทำงาน

จำนวนแอ็ดเดรส โดยทั่วไปการกล่าวถึงสถาปัตยกรรมคอมพิวเตอร์จะกล่าวถึงจำนวนแอ็ดเดรส ปัจจุบันมีความสำคัญน้อยกว่าการออกแบบซีพียู จำนวนแอ็ดเดรสของระบบมีผลต่อวงรอบการทำงานของคำสั่งเครื่อง ยิ่งมีจำนวนแอ็ดเดรสมากก็จะยิ่งทำให้วงรอบการทำงานน้อยลง ทำให้ทำงานได้เร็วขึ้น

จำนวนแอ็ดเดรส One-address Two-address

จำนวนแอ็ดเดรส Three-address Zero-address

การออกแบบชุดคำสั่ง พื้นฐานการออกแบบชุดคำสั่ง Operation repertoire : จำนวนโอเปอเรชันที่มีให้เลือกใช้ รวมทั้งความซับซ้อนของโอเปอเรชันที่ควรเป็น Data type : ความหลากหลายของประเภทของข้อมูลที่ทำโอเปอเรชัน Instruction format : ความยาวของคำสั่ง (เป็นบิต) จำนวนแอ็ดเดรส ขนาดของฟิลด์ และอื่น ๆ Register : จำนวนรีจิสเตอร์ที่คำสั่งสามารถอ้างอิงและใช้ประโยชน์ได้ Addressing : การกำหนดโหมดของแอ็ดเดรสสำหรับโอเปอแรนด์

ประเภทโอเปอเรชัน พื้นฐานของโอเปอเรชันสามารถแบ่งเป็นกลุ่ม ๆ ได้คือ โอเปอเรชันทางด้านการถ่ายโอนข้อมูล (Data transfer) โอเปอเรชันทางด้านคณิตศาสตร์ (Arithmetic) โอเปอเรชันทางด้านตรรกะ (Logical) โอเปอเรชันทางด้านการแปลงค่า (Conversion) เปอเรชันทางด้านอุปกรณ์อินพุต/เอาต์พุต (I/O) โอเปอเรชันทางด้านการควบคุมระบบ (System control)

ประเภทโอเปอแรนด์ แอ็ดเดรส ตัวเลข คาแรกเตอร์ ข้อมูลตรรกะ ประเภทของโอเปอแรนด์มีดังนี้ แอ็ดเดรส ตัวเลข คาแรกเตอร์ ข้อมูลตรรกะ

ประเภทข้อมูลของ Pentium General ประเภทข้อมูลที่เป็น Byte, word, doubleword, quadword Integer ค่าเลขฐานสองที่มีเครื่องหมาย Ordinal ค่าจำนวนเต็มไม่มีเครื่องหมาย Unpacked binary coded decimal (BCD)การแสดงค่าของตัวเลข BCD ในช่วง 0-9 Packed BCD ไบต์ที่แสดงตัวเลข BCD 2 ค่า อยู่ระหว่าง 0-99 Near pointer แอ็ดเดรสขนาด 32 บิต ใช้สำหรับ พอยเตอร์เพื่ออ้างอิงในหน่วยความจำ Bit field ชุดของบิตที่เรียงต่อเนื่อง แต่ละบิตมีความเป็นอิสระ Byte string byte , word , doubleword ที่เรียงต่อเนื่องกัน Floating point ตัวเลขที่เป็นทศนิยม

โครงสร้างข้อมูลตัวเลขของ Pentium

ประเภทข้อมูลของ PowerPC Unsigned byte ใช้ทางตรรกะและคณิตศาสตร์ของจำนวนเต็ม Unsigned Halfword เหมือนกับ Unsigned byte แต่ใช้ 16 บิต Signed Halfword ใช้สำหรับคำสั่งทางคณิตศาสตร์ Unsigned Word ใช้ทางตรรกะและเป็นแอ็ดเดรสพอยเตอร์ Signed Word ใช้สำหรับคำสั่งทางคณิตศาสตร์ Unsigned Doubleword ใช้เป็นแอ็ดเดรสพอยเตอร์ Byte String ขนาด 0-128 ไบต์

รูปแบบคำสั่ง ความยาวคำสั่ง การจัดวางบิต จำนวนในการกำหนดโหมดของแอ็ดเดรส จำนวนโอเปอแรนด์ รีจิสเตอร์กับหน่วยความจำ จำนวนชุดของรีจิสเตอร์ ขอบเขตของแอ็ดเดรส ความละเอียดในการกำหนดแอ็ดเดรส

การกำหนดแอ็ดเดรสหน่วยความจำ Little Endian Big Endian ข้อมูล คือ 89ABCDEF (ก) การวางไบต์แบบ Little Endian (ข) การวางไบต์แบบ Big Endian

การกำหนดโหมดของแอ็ดเดรส(Addressing Mode) การกำหนดแอ็ดเดรสแบบให้ค่าโดยตรง (Immediate Addressing) การกำหนดแอ็ดเดรสโดยตรง (Direct Addressing) การกำหนดแอ็ดเดรสทางอ้อม (Indirect Addressing) การกำหนดแอ็ดเดรสผ่านรีจิสเตอร์โดยตรง (Register Direct Addressing) การกำหนดแอ็ดเดรสผ่านรีจิสเตอร์ทางอ้อม (Register Indirect Addressing) การกำหนดแอ็ดเดรสแบบแทนที่ (Displacement หรือ Indexed Addressing) การกำหนดแอ็ดเดรสแบบสัมพันธ์ (Relative Addressing) การใช้สแต็ก (Stack)

Immediate Addressing LOAD X, #1000 เป็นการโหลดข้อมูล 1000 ไว้ที่ตัวแปร X

Direct Addressing LOAD X, 1000 เป็นการโหลดข้อมูลที่แอ็ดเดรส 1000 ไว้ที่ตัวแปร X (ถ้าที่แอ็ดเดรส 1000 มีค่า 10 ดังนั้น X จะมีค่าเท่ากับ 10)

Indirect Addressing LOAD X, (1000) เป็นการโหลดข้อมูลที่อยู่บนแอ็ดเดรสที่เก็บอยู่ในแอ็ดเดรส 1000 (ถ้าที่แอ็ดเดรส 1000 มีค่า 1002 ดังนั้นข้อมูลที่แท้จริงอยู่ที่แอ็ดเดรส 1002 ในที่นี้คือ 20 ดังนั้น X จะมีค่าเท่ากับ 20)

Register Direct Addressing LOAD X, R1 เป็นการโหลดข้อมูลจากรีจิสเตอร์ R1 ไว้ที่ตัวแปร X (ถ้าที่รีจิสเตอร์ R1 มีค่า 30 ดังนั้น X จะมีค่าเท่ากับ 30)

Register Indirect Addressing LOAD X, (R1) เป็นการโหลดข้อมูลที่อยู่ในแอ็ดเดรสที่เก็บอยู่ในรีจิสเตอร์ R1 ไว้ที่ตัวแปร X (ถ้าที่รีจิสเตอร์ R1 เก็บค่า 1001 และที่แอ็ดเดรส 1001 ของหน่วยความจำมีค่า 40 ดังนั้น X จะมีค่าเท่ากับ 40)

Displacement หรือ Indexed Addressing LOAD X, (R1)+Constant เป็นการโหลดข้อมูลจากแอ็ดเดรสบนหน่วยความจำที่เกิดจากค่าในรีจิสเตอร์บวกกับค่าคงที่ ไว้ที่ตัวแปร X (ถ้าในรีจิสเตอร์มีค่า 1000, ค่าคงที่เท่ากับ 2 และค่าที่แอ็ดเดรส 1002 มีค่าเท่ากับ 20 ดังนั้นค่า X จะเท่ากับ 20)

Relative Addressing LOAD X, PC+Constant เป็นการโหลดข้อมูลจากแอ็ดเดรสบนหน่วยความจำที่เกิดจากค่าในโปรแกรมเคาเตอร์บวกกับค่าคงที่ ไว้ที่ตัวแปร X (ถ้าในโปรแกรมเคาเตอร์มีค่า 1000, ค่าคงที่เท่ากับ 1 และค่าที่แอ็ดเดรส 1001 มีค่าเท่ากับ 40 ดังนั้นค่า X จะเท่ากับ 40)

Stack LOAD X, Stack เป็นการโหลดข้อมูลที่อยู่บนสุดของสแต็กไว้ที่ตัวแปร X (ถ้าข้อมูลที่อยู่บนสุดของสแต็กมีค่า 1000 ค่า X จะมีค่าเท่ากับ 1000 นั่นเอง) เก็บข้อมูลลง Push การหยิบข้อมูลออก POP