Operating System 2
Download
Report
Transcript Operating System 2
Computer Architecture
and Assembly Language
By Juthawut Chantharamalee
Suan Dusit Rajabhat University (Computer Science)
1
บทที่ 4 สถาปัตยกรรมคอมพิวเตอร์เบื้องต้น
(Introduction to computer architecture)
บทที่ 2
Suan Dusit Rajabhat University (Computer Science)
2
บทนา
ระบบคอมพิวเตอร์ประกอบด้วยหน่วยประมวลผลกลาง (CPU) หน่วยความจา
(Memory) อุ ปกรณ์รบั ข้อมูล (Input Units) และอุ ปกรณ์แสดงผล
(Output Unit) ในบทนีเ้ ราจะเริม่ พิจารณาการเชือ่ มโยงของอุ ปกรณ์ต่าง ๆ
และโครงสร้างภายในขององค์ประกอบเหล่านัน้
Suan Dusit Rajabhat University (Computer Science)
3
4.1 หน่วยประมวลผลกลาง
หน่วยประมวลผลกลางมีหน้าทีป่ ระมวลผลข้อมูลต่าง ๆ ในระบบคอมพิวเตอร์ โดย
หน่วยประมวลผลกลางจะทางานตามโปรแกรมทีร่ ะบุโดยผู ใ้ ช้ ขัน้ ตอนการทางานของ
หน่วยประมวลผลกลางมีลกั ษณะเป็ นวงรอบ โดยขัน้ แรกหน่วยประมวลผลกลางจะอ่าน
คาสัง่ จากหน่วยความจา (fetch) จากนัน้ หน่วยประมวลผลกลางจะตีความคาสัง่
นัน้ (decode) และในขัน้ ตอนสุดท้ายหน่วยประมวลผลกลางก็จะประมวลผลตาม
คาสัง่ ทีอ่ ่านเข้ามา (excute) เมือ่ ทางานเสร็จหน่วยประมวลผลก็จะเริม่ อ่านคาสัง่ เข้า
มาอีกครัง้ ขัน้ ตอนดังกล่าวมีลกั ษณะดังรูปที่ 4.1
Suan Dusit Rajabhat University (Computer Science)
4
รูป 4.1 ขัน้ ตอนการทางานของหน่วยประมวลผล
Suan Dusit Rajabhat University (Computer Science)
5
4.1 หน่วยประมวลผลกลาง
หน่วยประมวลผลกลางจะทางานตามชุดคาสัง่ (instructions) ทีอ่ ่านขึน้ มาจาก
หน่วยความจาหลักเท่านัน้ เราจะเรียกสถาปัตยกรรมของระบบคอมพิวเตอร์ ทมี่ กี าร
เก็บโปรแกรมและข้อมูลไว้ในหน่วยความจาหลัก โดยทีห่ น่วยประมวลผลจะทางานกับ
หน่วยความจาเท่านัน้ ว่า Stored Program Architecture หรือคอมพิวเตอร์
แบบวอนนอยแมน (von Neumann Computer) โดยตัง้ เป็ นเกียรติให้กบั
John von Neumann
Suan Dusit Rajabhat University (Computer Science)
6
4.1 หน่วยประมวลผลกลาง
ชุดคาสัง่ ของคอมพิวเตอร์ โดยทัว่ ไปจะประกอบด้วยส่วนย่อย ๆ 2 ส่วนคือ ส่วน
Opcode ซึง่ เป็ นส่วนทีร่ ะบุประเภทของการประมวลผล และส่วน Operand ซึง่
เป็ นส่วนทีร่ ะบุขอ้ มูลสาหรับการประมวลผลตามทีร่ ะบุใน opcode
ผู บ้ ุกเบิกเทคโนโลยีคอมพิวเตอร์เชือ่ ว่าชือ่ ของคอมพิวเตอร์แบบวอนนอยแมน ให้เกียรติ
กับ von Neumann ผู เ้ ขียนแนวคิดเกีย่ วกับคอมพิวเตอร์รูปแบบนีม้ ากไป โดยให้
ความสาคัญกับ J.Presper Eckert และ John Mauchly วิศวกรผู ส้ ร้าง
เครือ่ งคอมพิวเตอร์ลกั ษณะนีข้ น้ ึ มาน้อยเกินไป โดยปกติแล้ว เรานิยมใช้ไมโครโปรเซสเซอร์
ทาหน้าทีเ่ ป็ นหน่วยประมวลผลกลางในระบบคอมพิวเตอร์ ดังนัน้ การทีเ่ ราอ้างถึง
ไมโครโปรเซสเซอร์เราจะอ้างถึงในหน้าทีท่ เี่ ป็ นหน่วยประมวลผลกลาง โดยคาสองคานีอ้ าจ
ใช้แทนกันได้
Suan Dusit Rajabhat University (Computer Science)
7
4.2 หน่วยความจา
การเก็บข้อมูลในหน่วยความจามีหน่วยทีเ่ ล็กทีส่ ุดในการเก็บข้อมูลคือบิต แต่ในการ
เรียกข้อมูลจากหน่วยความจานัน้ จะกระทาในรูปของข้อมูลทีม่ ขี นาดใหญ่กว่า คือจะมีขนาด
8 บิต หรือ 1ไบท์ ภายในหน่วยความจาของระบบคอมพิวเตอร์หนึง่ ๆ จะ
ประกอบด้วยหน่วยย่อย ๆ ขนาด 8 บิตเหล่านีอ้ ยู่มากมาย หน่วยย่อย ๆ เหล่านีจ้ ะมี
หมายเลขเฉพาะตัว เพือ่ ให้หน่วยประมวลผลสามารถใช้อ้างถึงเมือ่ จะอ่าน หรือเขียนข้อมูล
ลงไปในหน่วยย่อยหน่วยนัน้ หมายเลขนีเ้ ราเรียกว่า แอดเดรส (Address)
ดังนัน้ การทีห่ น่วยประมวลผลจะ อ้างถึง ข้อมูลข้อมูลหนึง่ ทีเ่ ก็บอยู่ในหน่วยความจาได้นนั้
หน่วยประมวลผลจะต้องระบุ แอดเดรส ของข้อมูลชิน้ นัน้ ให้ได้ด้วย
Suan Dusit Rajabhat University (Computer Science)
8
4.3 การเชื่อมต่อระหว่างอุปกรณ์ต่าง ๆ
บัส (Bus) : ช่องทางสื่อสาร
อุ ปกรณ์ต่าง ๆ จะเชือ่ มต่อกับโดยผ่านทางกลุม่ ของสายสัญญาณ ทีเ่ ราเรียกว่า “บัส”
อุ ปกรณ์ต่าง ๆ จะส่งและรับสัญญาณผ่านทางกลุม่ สายสัญญาณชุดเดียวกัน ดังรูป
รูป 4.2 การเชือ่ มต่อของอุ ปกรณ์ต่าง ๆ ผ่านระบบบัส
Suan Dusit Rajabhat University (Computer Science)
9
4.3 การเชื่อมต่อระหว่างอุปกรณ์ต่าง ๆ
แอดเดรสบัส (Address bus)
ในระบบคอมพิวเตอร์ทหี่ น่วยประมวลผลเชือ่ มต่อกับอุ ปกรณ์อนื่ ๆ ผ่านทางบัส ข้อมูล
ต่าง ๆ ทีส่ ่ง/รับกันระหว่างอุ ปกรณ์ต่าง ๆ นัน้ จะส่งผ่านทางบัสข้อมูล ดังนัน้ การทีห่ น่วย
ประมวลผลจะติดต่อกับหน่วยความจาหรืออุ ปกรณ์รบั และแสดงผลข้อมูลทีต่ ้องการได้นนั้
จะต้องมีหมายเลขเฉพาะ หมายเลขนีส้ าหรับหน่วยความจาก็คอื แอดเดรส ส่วนอุ ปกรณ์
อินพุ ตและอุ ปกรณ์เอาท์พุตก็มหี มายเลขเฉพาะสาหรับอุ ปกรณ์หนึง่ ๆ เช่นเดียวกัน โดย
เรียกว่า หมายเลข I/O address เมือ่ หน่วยประมวลผลต้องการติดต่อกับ
หน่วยความจาทีต่ าแหน่งใดหรือติดต่อกับอุ ปกรณ์ใดก็จะส่งแอดเดรสของหน่วยความจานัน้
หรือของอุ ปกรณ์นนั้ มา ในการเลือกว่าหมายเลข I/O ทีส่ ่งมาเป็ นของหน่วยความจาหรือ
ของอุ ปกรณ์อนิ พุ ตเอาท์พุต หน่วยประมวลผลจะส่งสัญญาณระบุมาในบัสควบคุม
Suan Dusit Rajabhat University (Computer Science)
10
4.4 สถาปัตยกรรมของระบบไมโครโปรเซสเซอร์ตระกูล 80x86
4.4.1 ความเป็ นมา
ไมโครโปรเซสเซอร์ตระกูล 80x86 เป็ นไมโครโปรเซสเซอร์ทพี่ ฒั นาขึน้ โดยบริษทั
Intel โดยมีการพัฒนามาตัง้ แต่รุ่น 4040 ซึง่ เป็ นไมโครโปรเซสเซอร์ขนาด 4 บิต
จนกระทัง่ ในปัจจุบนั ได้พฒั นาเป็ นไมโครโปรเซสเซอร์รุ่น Pentium รายละเอียดคร่าว
ๆ ของไมโครโปรเซสเซอร์รุ่นต่าง ๆ เป็ นดังต่อไปนี้
8086 เป็ นไมโครโปรเซสเซอร์ขนาด 16 บิต รุ่นแรกที่ Intel ผลิตขึน้ สามารถ
อ้างหน่วยความจาได้ 1 MB มีรจิ สิ เตอร์ภายในขนาด 16 บิต
8088 เนือ่ งจากในขณะนัน้ อุ ปกรณ์ต่าง ๆ โดยมากเป็ นอุ ปกรณ์ขนาด 8 บิต บริษทั
Intel จึงได้ผลิตไมโครโปรเซสเซอร์ 8088 ซึง่ มีสถาปัตยกรรมภายในเหมือน
8086 แต่มกี ารติดต่อกับระบบภายนอกเป็ นแบบ 8 บิต
Suan Dusit Rajabhat University (Computer Science)
11
4.4 สถาปัตยกรรมของระบบไมโครโปรเซสเซอร์ตระกูล 80x86
80186 เป็ นหน่วยประมวลผลซึง่ เพิม่ การจัดการเกีย่ วกับอุ ปกรณ์รอบข้างเข้าไป
เพือ่ ให้เป็ นหน่วยประมวลผลสาหรับงานควบคุมต่าง ๆ
80286 เป็ นหน่วยประมวลผลขนาด 16 บิตทีม่ คี วามเร็วในการทางานสูงขึน้ ขยาย
ขอบเขตการอ้างหน่วยความจาเป็ น 24 เมกะไบต์ และมีการเพิม่ ความสามารถในการ
จัดการหน่วยความจา
80386 เป็ นหน่วยประมวลผลขนาด 32 บิต อ้างหน่วยความจาได้ถงึ 4 กิกะไบต์
มีความสามารถในการจัดการหน่วยความจาทีซ่ บั ซ้อน และสามารถใช้หน่วยความจาแบบ
เสมือนได้ มาตรฐานของชุดคาสัง่ และกรรมวิธใี นการจัดการหน่วยความจาของหน่วย
ประมวลผลรุ่นนีย้ งั คงใช้เป็ นมาตรฐานอยู่จนถึงปัจจุบนั นี้ เช่น Windows 95 ยัง
สามารถนามาทางานได้บนหน่วยประมวลผลรุ่นนี้ แต่จะทางานได้ชา้ มากเท่านัน้ เอง
Suan Dusit Rajabhat University (Computer Science)
12
4.4 สถาปัตยกรรมของระบบไมโครโปรเซสเซอร์ตระกูล 80x86
80386SX เป็ นหน่วยประมวลผลซึง่ มีสถาปัตยกรรมภายในเหมือน 80386
แต่มรี ะบบบัสภายนอกเป็ น 16 บิต หน่วยประมวลผลรุ่นนีไ้ ด้รบั การออกแบบขึน้ ด้วย
สาเหตุคล้ายกับ 8088
80486
ได้รบั การพัฒนาจาก 80386 โดยการทีท่ างบริษทั Intel เพิม่
หน่วยประมวลผลเลขทศนิยมเข้าไป
80486SX เป็ นหน่วยประมวลผลรุ่น 80486 ซึง่ ตัดความสามารถในส่วนของ
การประมวลผลเลขทศนิยมออก
Pentium, Pentium Pro, Pentium II เป็ นหน่วยประมวลผลรุ่นล่าสุด
ของบริษทั Intel มีการเพิม่ ความสามารถในการประมวลผลให้สูงขึน้ โดยใช้เทคโนโลยี
ต่าง ๆ เช่นการประมวลผลแบบไปป์ไลน์ การประมวลผลแบบซูเปอร์สเกลาร์ เป็ นต้น
Suan Dusit Rajabhat University (Computer Science)
13
4.4 สถาปัตยกรรมของระบบไมโครโปรเซสเซอร์ตระกูล 80x86
นอกจากไมโครโปรเซสเซอร์ตระกูล 80x86 แล้ว ยังมีหน่วยประมวลผลกลางทีผ
่ ลิต
และพัฒนาโดยบริษทั ต่าง ๆ อีกหลายตระกูลเช่น ตระกูล 68000 และ
PowerPC ของบริษทั โมโตโรล่า ตระกูล Alpha ของบริษทั DEC และ
ตระกูล Sparc ของบริษทั Sun Microsystem เป็ นต้น
ในการศึกษาบทนี้ เราจะศึกษาสถาปัตยกรรมของระบบไมโครโปรเซสเซอร์ 8086 เท่านัน้
Suan Dusit Rajabhat University (Computer Science)
14
4.4.2 ลักษณะทั่วไปของไมโครโปรเซสเซอร์ 8086
ระบบบัส
ไมโครโปรเซสเซอร์ 8086 มีแอดเดรสบัสขนาด 20 บิต ทาให้สามารอ้างแอรดเดรส
ได้ 1 เมกะไบต์ และมีบสั ข้อมูลขนาด 16 บิต ซึง่ ทาให้การอ่านและเขียนข้อมูลทาได้ครัง้
ละ 2 ไบต์ หน่วยประมวลผลทางคณิตศาสตร์และตรรกศาสตร์ภายใน 8086 สามารถ
ประมวลผลได้กบั ข้อมูลขนาด 16 บิต รีจสิ เตอร์ภายในไมโครโปรเซสเซอร์ 8086 มี
ขนาด 16 บิต
Suan Dusit Rajabhat University (Computer Science)
15
4.4.2 ลักษณะทั่วไปของไมโครโปรเซสเซอร์ 8086
การจัดการหน่วยความจา
ภายในหน่วยประมวลผล 8086 มีรจี สิ เตอร์ขนาด 16 บิต แต่มแี อดเดรสบัส
ขนาด 20 บิต ด้วยสาเหตุดงั กล่าวหน่วยประมวลผลจะไม่สามารถเก็บตาแหน่งข้อมูล
ภายในหน่วยความจาได้ภายในรีจสิ เตอร์เพียงตัวเดียว ดังนัน้ การจัดเก็บตาแหน่งของ
ข้อมูลภายในหน่วยความจาใน 8086 จึงต้องเก็บด้วยรีจสิ เตอร์ 2 ตัว โดยมีวธิ กี าร
จัดเก็บแบบ เซกเมนต์ : ออฟเซ็ต (segment : offset) แอดเดรสที่
แท้จริง (physical address) ขนาด 20 บิต จะถูกจัดเก็บด้วยรีจสิ เตอร์ ขนาด
16 บิต 2 ตัว ค่าทีเ่ ก็บในรีจสิ เตอร์ตวั แรกเรียกว่าเซกเมนต์ (segment) ส่วนค่าที่
เก็บในรีจสิ เตอร์อกี ตัวเรียกว่าออฟเซ็ต (offset)
Suan Dusit Rajabhat University (Computer Science)
16
4.4.2 ลักษณะทั่วไปของไมโครโปรเซสเซอร์ 8086
การอ้างถึงตาแหน่งภายในหน่วยความจาแบบเซกเมนต์ : ออฟเซ็ตนัน้ อาจเปรียบได้
เสมือนกับการทีเ่ ราแบ่งหน่วยความจาเป็ นส่วนย่อย ๆ โดยส่วนย่อยนี้เราจะเรียกว่า
เซกเมนต์ การทีเ่ ราจะอ้างถึงตาแหน่งใด ๆ เราจะอ้างถึงเซกเมนต์ทตี่ าแหน่งข้อมูลนัน้
อยู่ และระบุระยะห่างของหน่วยความจาทีค่ ดิ เทียบกับจุดเริม่ ต้นของเซกเมนต์ทเี่ ราระบุไป
Suan Dusit Rajabhat University (Computer Science)
17
4.4.2 ลักษณะทั่วไปของไมโครโปรเซสเซอร์ 8086
การแปลงแอดเดรสทีเ่ ก็บอยู่ในรูปของ เซกเมนต์ : ออฟเซ็ต เป็ นแอดเดรสขนาด 20 บิต
มีขนั้ ตอนดังนี้
1. เลือ่ นบิตของค่าเซกเมนต์ไปทางซ้าย 4 บิต ดังนัน้ จากข้อมูล 16 บิต เราจะได้ขอ้ มูล
20 บิต ทีม่ ี 4 บิตทางขวาเป็ น 0 ในทุกหลัก
2. นาค่าออฟเซ็ตมาบวกเข้ากับค่าเซกเมนต์ทเี่ ลือ่ นบิตแล้ว จะได้แอดเดรสขนาด 20 บิต
ทีจ่ ะนาไปอ้างตาแหน่งทีแ่ ท้จริงของข้อมูล ขัน้ ตอนทัง้ สองแสดงได้ดงั รูปที่ 4.3
Suan Dusit Rajabhat University (Computer Science)
18
รูป 4.3 การแปลงแอดเดรสจากแบบเซกเมนต์ : ออฟเซ็ต เป็ น Address 20 Bits
Suan Dusit Rajabhat University (Computer Science)
19
4.4.2 ลักษณะทั่วไปของไมโครโปรเซสเซอร์ 8086
ผลจากการใช้การอ้างแอดเดรสแบบ เซกเมนต์ : ออฟเซ็ต ทาให้ลกั ษณะของ
หน่วยความจาที่ 8086 มองเห็นจะมีลกั ษณะเป็ นส่วน ๆ ทีอ่ ้างอิงตามค่าของเซกเมนต์
โดยแต่ละส่วนนีจ้ ะมีขนาดส่วนละ 64 กิโลไบท์ ส่วนของหน่วยความจาขนาด 64
กิโลไบต์นเ้ ี รียกว่า เซกเมนต์ การจัดเรียงตัวของเซกเมนต์ต่าง ๆ ในหน่วยความจาจะ
จัดเรียงเป็ นส่วน ๆ ทีม่ กี ารเหลือ่ มกันแสดงดังรูปที่ 4.4
Suan Dusit Rajabhat University (Computer Science)
20
รูป 4.4 ลักษณะการเหลือ่ มกันของเซกเมนต์
Suan Dusit Rajabhat University (Computer Science)
21
4.4.2 ลักษณะทั่วไปของไมโครโปรเซสเซอร์ 8086
เนือ่ งจากการอ้างถึงข้อมูลใด ๆ ในหน่วยความจาของไมโครโปรเซสเซอร์ 8086
จะต้องอ้างตาแหน่งเป็ นคู่เซกเมนต์ : ออฟเซต์ การอ้างถึงข้อมูลในตาแหน่งต่าง ๆ
อาจทาได้ยุ่งยากเพราะต้องมีการระบุทงั้ เซกเมนต์และออฟเซ็ต ในไมโครโปรเซสเซอร์
8086 จึงได้ออกแบบรีจสิ เตอร์พเิ ศษขึน้ 4 ตัวเพือ่ ใช้เก็บค่าของเซกเมนต์ต่าง ๆ ที่
กาลังใช้งานอยู่ในขณะนัน้ กลุม่ ของรีจสิ เตอร์นนั้ เรียกว่า เซกเมนต์รจี ิ สเตอร์ ซึง่
ได้แก่ CS (Code segment) DS (Data segment) ES (Extra
segment) และ SS (Stack segment) เซกเมนต์รจี สิ เตอร์ทงั้ 4 ตัวนีจ้ ะใช้
ประกอบกับค่าออฟเซ็ตต่าง ๆ เพือ่ ระบุตาแหน่งของ โปรแกรม (code) ข้อมูล
(data) และแสต็ก (stack) ส่วนรีจสิ เตอร์ ES มีหน้าทีเ่ ก็บเซกเมนต์ของข้อมูลทีใ่ ช้
ในการสัง่ งานคาสัง่ พิเศษบางประเภท เช่น คาสัง่ เกีย่ วกับข้อความ
Suan Dusit Rajabhat University (Computer Science)
22
4.4.2 ลักษณะทั่วไปของไมโครโปรเซสเซอร์ 8086
ดังนัน้ เราจะเห็นได้ว่า ถึงแม้ไมโครโปรเซสเซอร์ 8086 จะสามารถมองหน่วยความจาได้
รวมถึง 1 เมกะไบต์ แต่โปรแกรมทีท่ างานอยู่จะมองเห็นหน่วยความจาได้พร้อม ๆ กัน
แค่เพียง 4 เซกเมนต์เท่านัน้ นัน่ คือ เซกเมนต์ของโปรแกรม เซกเมนต์ของข้อมูล
2 เซกเมนต์ และ เซกเมนต์ของแสต็ก
Suan Dusit Rajabhat University (Computer Science)
23
4.4.2 ลักษณะทั่วไปของไมโครโปรเซสเซอร์ 8086
แสต็ก (Stack)
ภายในหน่วยความจาของระบบไมโครโปรเซสเซอร์ 8086 จะมีหน่วยความจาส่วน
หนึง่ ทีถ่ ูกกันเนือ้ ทีไ่ ว้สาหรับเป็ น แสต็กโดยเซกเมนต์ของแสต็กจะถูกชีโ้ ดยรีจสิ เตอร์ SS
ลักษณะเฉพาะของหน่วยความจาแบบแสต็กคือการทีร่ ะบบจะเก็บข้อมูลและอ่านข้อมูลออกไป
แบบเข้าก่อน-ออกทีหลัง (First In Last Out : FILO) โดยอาจมองลักษณะ
เหมือนการวางซ้อนข้อมูลเหมือนซ้อนจาน ข้อมูลทีถ่ ูกนามาเก็บก่อนจะอยู่ทางด้านล่าง
ข้อมูลถัดไปจะวางซ้อนอยู่ด้านบน ข้อมูลทีอ่ ยู่ทางด้านล่างจะไม่สามารถอ่านออกไปได้ถา้ มี
ข้อมูลอืน่ ทีเ่ ก็บทีหลังและยังไม่ได้อ่านออกไป ระบบจะใช้แสต็กในการเรียกโปรแกรมย่อย และ
เราจะศึกษาเกีย่ วกับแสต็กโดยละเอียดอีกครัง้ ในส่วนของโปรแกรมย่อย
Suan Dusit Rajabhat University (Computer Science)
24
4.4.3 รายละเอี ยดของส่วนประกอบภายในไมโครโปรเซสเซอร์
หน่วยประมวลผลทางคณิตศาสตร์และตรรกศาสตร์ (ALU)
ไมโครโปรเซสเซอร์ 8086 มี ALU ทีส่ ามารถประมวลผลได้ครัง้ ละ 16 บิต ด้วย
ความสามารถในการประมวลผลทีล่ ะ 16 บิตนี้ ทาให้เราเรียกไมโครโปรเซสเซอร์ 8086
ว่าเป็ นไมโครโปรเซสเซอร์ขนาด 16 บิต
หน่วยความจาชั่วคราว (รีจิสเตอร์ - Register)
รีจสิ เตอร์ใน 8086 มีทงั้ ขนาด 16 บิต และ 8 บิต โดยจะแบ่งเป็ นกลุม่ ๆ ได้ดงั นี้
Suan Dusit Rajabhat University (Computer Science)
25
4.4.3 รายละเอี ยดของส่วนประกอบภายในไมโครโปรเซสเซอร์
1.รีจสิ เตอร์สาหรับใช้งานทัว่ ไป (General-Purpose Registers)
Suan Dusit Rajabhat University (Computer Science)
26
4.4.3 รายละเอี ยดของส่วนประกอบภายในไมโครโปรเซสเซอร์
สาหรับรีจสิ เตอร์ทงั้ 4 ตัวนี้ นอกจากจะมีไว้สาหรับใช้งานทัว่ ไปได้แล้ว ยังมีหน้าทีเ่ ฉพาะ
อืน่ ๆ อีก ซึง่ จะกล่าวถึงไนบทต่อ ๆ ไป
2. รีจิสเตอร์สาหรับอ้ างอิ ง (Index Register)
ไมโครโปรเซสเซอร์ 8086 มีรจี สิ เตอร์สาหรับอ้างอิง 2 ตัว คือ SI (Source
Index) และ DI (Destination Index) รีจสิ เตอร์ในกลุม่ นีใ้ ช้สาหรับการ
อ้างตาแหน่งแบบอ้างอิง และใช้ในคาสัง่ ทีเ่ กีย่ วกับข้อความ แต่ผูใ้ ช้สามารถนาไปใช้งาน
ทัว่ ไปได้ด้วยเช่นกัน
Suan Dusit Rajabhat University (Computer Science)
27
4.4.3 รายละเอี ยดของส่วนประกอบภายในไมโครโปรเซสเซอร์
รีจิสเตอร์สาหรับการชี้ (Pointer Register) รีจสิ เตอร์กลุม่ นีค้ อื SP
และ BP รีจสิ เตอร์ SP ใช้ประกอบกับรีจสิ เตอร์ SS มีหน้าทีช่ ต้ ี าแน่งปัจจุบนั ของ
แสต็ก รีจสิ เตอร์ BP ส่วนใหญ่จะใช้ เพือ่ ชีต้ าแห่นงของแสต็กเช่นเดียวกัน แต่นยิ มใช้ใน
ส่วนของการส่งพารามิเตอร์ในโปรแกรมย่อย
3. เซกเมนต์รีจิสเตอร์ (segment register)
เซกเมนต์รจี สิ เตอร์ทงั้ 4 ตัวคือ CS DS ES และ SS ใช้ประกอบกับค่าของออฟ
เซ็ต เพือ่ ชีต้ าแหน่งของ โปรแกรม ข้อมูลปรกติ ข้อมูลพิเศษ และ แสต็ก ตามลาดับ
Suan Dusit Rajabhat University (Computer Science)
28
4.4.3 รายละเอี ยดของส่วนประกอบภายในไมโครโปรเซสเซอร์
4. แฟล็ก (flag)
ไมโครโปรเซสเซอร์ 8086 จะเก็บลักษณะของผลลัพธ์ของการคานวณทางคณิตศาสตร์
ไว้ใน แฟล็ก
5. รีจิสเตอร์อ่ื น ๆ ของระบบ
นอกเหนือจากรีจสิ เตอร์ต่าง ๆ ทีผ่ ู ใ้ ช้สามารถกาหนดและใช้งานได้แล้ว ยังมีรจี สิ เตอร์อกี
กลุม่ หนึง่ ซึง่ ผู เ้ ขียนโปรแกรมไม่สามารถเรียกใช้ได้ รีจสิ เตอร์ในกลุม่ นี้ เช่น IP ซึง่ เป็ น
รีจสิ เตอร์ทใี่ ช้ประกอบกับ CS เพือ่ ชีต้ าแหน่งของคาสัง่ ทีจ่ ะทางานต่อไป หรือ IR ซึง่
รีจสิ เตอร์ทเี่ ก็บคาสัง่ ปัจจุบนั ทีไ่ มโครโปรเซสเซอร์อ่าน (fetch) ขึน้ มาจากหน่วยความจา
Suan Dusit Rajabhat University (Computer Science)
29
4.4.4 โหมดการอ้ างแอดเดรส
ไมโครโปรเซสเซอร์ 8086 สามารถอ้างถึงข้อมูลได้หลายแบบ โดยวิธกี ารต่าง ๆ ที่
8086 อ้างถึงข้อมูลนัน้ เรารวมเรียกว่า โหมดการอ้ างแอดเดรส
(Addressing mode) ซึง่ รูปแบบที่ 8086 อ้างถึงข้อมูลนัน้ แบ่งเป็ นกลุม่ ๆ
ได้ 3 กลุม่ ใหญ่ ๆ คือ กลุม่ ทีอ่ ้างถึงข้อมูลในรีจสิ เตอร์ กลุม่ ทีอ่ ้างถึงข้อมูลทีร่ ะบุในคาสัง่
และกลุม่ ทีอ่ ้างถึงข้อมูลในหน่วยความจา เราจะศึกษาเรือ่ งของโหมดการอ้างแอดเดรสอย่าง
ละเอียดอีกครัง้ ในบทถัด ๆ ไป
Suan Dusit Rajabhat University (Computer Science)
30
4.4.5 การอิ นเตอร์รัพท์ (Interrupt)
การอินเตอร์รพั ท์ หรือการขัดจังหวะ คือการสัง่ ให้หน่วยประมวลผลหยุดการทางาน
ชัว่ คราว แล้วกระโดดไปทางานบางอย่างเพือ่ ตอบสนองการขัดจังหวะนัน้ ตัวอย่าง
ของการขัดจังหวะ เช่น อุ ปกรณ์บางชิน้ ได้รบั ข้อมูล หรือ ข้อมูลได้รบั เขียนเก็บลงใน
ฮาร์ดดิสก์เรียบร้อยแล้ว เป็ นต้น เมือ่ หน่วยประมวลผลตอบสนองการขัดจะหวะ
เรียบร้อยแล้ว ก็จะคืนสู่สถานะเดิมและกลับไปประมวลผลงานเก่าทีป่ ระมวลผลค้างไว้
เสมือนไม่มอี ะไรเกิดขึน้ การขัดจังหวะนีม้ สี องประเภทคือ ซอฟต์แวร์ อนิ เตอร์รพั ท์ และ
ฮาร์ดแวร์อนิ เตอร์รพั ท์ เรานิยมใช้ซอฟต์แวร์อนิ เตอร์รพั ท์ในการเรียกใช้การบริการ
ต่าง ๆ ของระบบ ส่วนฮาร์ดแวร์อนิ เตอร์รพั ท์จะนิยมใช้ในการแจ้งการเปลีย่ นสถานะของ
อุ ปกรณ์อนิ พุ ตเอาท์พุต ต่าง ๆ
Suan Dusit Rajabhat University (Computer Science)
31
4.4.6 สถาปัตยกรรมของระบบคอมพิวเตอร์สมัยใหม่
การอินเตอร์รพั ท์ หรือการขัดจังหวะ คือการสัง่ ให้หน่วยประมวลผลหยุดการทางาน
ชัว่ คราว แล้วกระโดดไปทางานบางอย่างเพือ่ ตอบสนองการขัดจังหวะนัน้ ตัวอย่าง
ของการขัดจังหวะ เช่น อุ ปกรณ์บางชิน้ ได้รบั ข้อมูล หรือ ข้อมูลได้รบั เขียนเก็บลงใน
ฮาร์ดดิสก์เรียบร้อยแล้ว เป็ นต้น เมือ่ หน่วยประมวลผลตอบสนองการขัดจะหวะ
เรียบร้อยแล้ว ก็จะคืนสู่สถานะเดิมและกลับไปประมวลผลงานเก่าทีป่ ระมวลผลค้างไว้
เสมือนไม่มอี ะไรเกิดขึน้ การขัดจังหวะนีม้ สี องประเภทคือ ซอฟต์แวร์ อนิ เตอร์รพั ท์ และ
ฮาร์ดแวร์อนิ เตอร์รพั ท์ เรานิยมใช้ซอฟต์แวร์อนิ เตอร์รพั ท์ในการเรียกใช้การบริการ
ต่าง ๆ ของระบบ ส่วนฮาร์ดแวร์อนิ เตอร์รพั ท์จะนิยมใช้ในการแจ้งการเปลีย่ นสถานะของ
อุ ปกรณ์อนิ พุ ตเอาท์พุต ต่าง ๆ
Suan Dusit Rajabhat University (Computer Science)
32
4.4.6 สถาปัตยกรรมของระบบคอมพิวเตอร์สมัยใหม่
เทคโนโลยีของสถาปัตยกรรมคอมพิวเตอร์สมัยใหม่ได้พฒ
ั นาไปอย่างรวดเร็วมาก
เครือ่ งคอมพิวเตอร์ทเี่ ราใช้ในปัจจุบนั มีประสิทธิภาพมากกว่าเครือ่ งคอมพิวเตอร์ทวั่ ไป
เมือ่ 2-3 ปี ก่อนหลายเท่า ทัง้ นีเ้ นือ่ งจากมีการวิจยั และสร้างหน่วยประมวลผลกลาง
และระบบคอมพิวเตอร์ทมี่ ปี ระสิทธิภาพสูงขึน้ มาก
Suan Dusit Rajabhat University (Computer Science)
33
4.4.6 สถาปัตยกรรมของระบบคอมพิวเตอร์สมัยใหม่
เทคโนโลยีของหน่วยประมวลผลกลาง
หน่วยประมวลผลแบบ RISC
ชุดคาสัง่ ของหน่วยประมวลผลยุคเก่ามีลกั ษณะเป็ นแบบ CISC : Complex
Instruction Set Computer นัน่ คือชุดคาสัง่ จะหนึง่ ๆ จะมีความซับซ้อนมาก
การทีช่ ุดคาสัง่ ซับซ้อนทาให้การออกแบบส่วนควบคุมภายในหน่วยประมวลผลทาได้ยาก
ในปัจจุบนั หน่วยประมวลผลได้พฒั นาไปเป็ นแบบ RISC : Reduced Instruction
Set Computer โดยเน้นชุดคาสัง่ ทีม่ คี วามซับซ้อนน้อยลงแต่มคี วามเร็วในการทางาน
สูงขึน้ การทาให้ชุดคาสัง่ มีรูปแบบทีง่ ่ายขึน้ ทาให้การออกแบบส่วนควบคุมทาได้ง่ายขึน้ และยัง
ทาให้สามารถใช้วธิ กี ารแบบไปป์ไลน์ (Pipeline) และซูปเปอร์สเกลาร์ (Superscalar)
ในการเพิม่ ประสิทธิภาพของหน่วยประมวลผลได้ง่ายขึน้ ด้วย
Suan Dusit Rajabhat University (Computer Science)
34
4.4.6 สถาปัตยกรรมของระบบคอมพิวเตอร์สมัยใหม่
เทคโนโลยีของหน่วยประมวลผลกลาง
ไปป์ไลน์ (Pipeline)
หน่วยประมวลผลรุ่นใหม่จะมีการประมวลผลแบบไปป์ไลน์ กล่าวคือจะมีการ fetch
decode และ exeute คาสัง่ เหลือ่ มกันดังรูปที่ 4.5การประมวลผลเหลือ่ มกันนีท้ าให้
ประสิทธิภาพของการประมวลผลสูงขึน้ มาก
Suan Dusit Rajabhat University (Computer Science)
35
input
input
F
F
D
D
X
X
F
F
D
F
D
X
F
D
X
D
X
time
ลาดับการทางานเมือ่ ทางานแบบปกติ
X
time
ลาดับการทางานเมือ่ ทางานแบบไปป์ไลน์
รูป 4.5 แสดงการทางานแบบไปป์ไลน์เทียบกับการทางานแบบปกติ
Suan Dusit Rajabhat University (Computer Science)
36
4.4.6 สถาปัตยกรรมของระบบคอมพิวเตอร์สมัยใหม่
เทคโนโลยีของหน่วยประมวลผลกลาง
ซูเปอร์สเกลาร์ (Superscalar)
ในหน่วยประมวลผลทีม่ ปี ระสิทธิภาพสูงบางรุ่น จะประมวลผลชุดคาสัง่ หลายชุดคาสัง่ ได้
พร้อมกัน การทีห่ น่วยประมวลผลประมวลผลคาสัง่ ได้หลายชุดพร้อมกันนี้เรียกว่า
ซูเปอร์สเกลาร์
Suan Dusit Rajabhat University (Computer Science)
37
4.4.6 สถาปัตยกรรมของระบบคอมพิวเตอร์สมัยใหม่
ระบบบัสสมัยใหม่
ระบบคอมพิวเตอร์สมัยก่อน หน่วยประมวลผลมีความเร็วในการประมวลผลไม่มากนักทาให้
การโอนย้ายข้อมูลระหว่างหน่วยประมวลผลกับหน่วยความจากระทาได้โดยไม่ก่อให้เกิดการ
เสียเวลา แต่การพัฒนาของหน่วยประมวลผลเป็ นไปอย่างรวดเร็วกว่าการพัฒนาของ
หน่วยความจามากทาให้ปจั จุบนั อัตราการประมวลผลของหน่วยประมวลผลสูงกว่าอัตรา
การโอนย้ายข้อมูลระหว่าหน่วยประมวลผลกับหน่วยความจามาก สถานการณ์เช่นนี้
ก่อให้เกิดปัญหาในรูปแบบคอขวด (Bottleneck problem) ขึน้ นัน่ คือ
จุดเชือ่ มต่อระหว่างหน่วยความจากับหน่วยประมวลผลทาให้ประสิทธิภาพของระบบลดลง
เราเรียกคอขวดระหว่างหน่วยประมวลผลกับหน่วยความจาว่า คอขวดของวอนนอยแมน
(von Neumann Bottleneck)
Suan Dusit Rajabhat University (Computer Science)
38
4.4.6 สถาปัตยกรรมของระบบคอมพิวเตอร์สมัยใหม่
วิธกี ารแก้ปญั หานีค้ อื การใช้หน่วยความจาทีม่ คี วามเร็วสูงมากขนาดเล็กมาเป็ นบัฟเฟอร์
(ทีพ่ กั ข้อมูลชัว่ คราว) ระหว่างหน่วยความจาและหน่วยประมวลผล หน่วยความจาทีม่ ี
ความเร็วสูงนีเ้ รียกว่า หน่วยความจาแคช (cache memory) ในหน่วย
ประมวลผลปัจจุบนั หลายรุ่น ได้มกี ารบรรจุหน่วยความจาแคชลงไปภายใน
ไมโครโปรเซสเซอร์ด้วย ลักษณะของบัสทีม่ กี ารใช้หน่วยความจาแคชเป็ นดังรูปที่ 4.6
Suan Dusit Rajabhat University (Computer Science)
39
รูป 4.5 ลักษณะของบัสทีม่ กี ารใช้หน่วยความจาแคช
Suan Dusit Rajabhat University (Computer Science)
40
สรุป
สถาปัตยกรรมไมโคร (Micro Architecture) เป็ นลักษณะของ เครือ่ ง
คอมพิวเตอร์ส่วนใหญ่ทมี่ กี ารใช้งานมาตัง้ แต่ยุคเริม่ ต้น จนถึงยุ คปัจจุบนั ได้รบั การ
ออกแบบโครงสร้างและการทางานโดยจอนวอนนิวแมน (John Von Neumann )
ซึง่ เป็ นผู น้ าในการออกแบบเครือ่ งคอมพิวเตอร์ โดยเครือ่ งคอมพิวเตอร์ ทีเ่ ขาได้
ออกแบบ มีส่วนประกอบทีส่ าคัญ 3 อย่างด้วยกันคือ หน่วยประมวลผลกลาง
(Central Processing Unit), หน่วยความจา (Main Memory)
และ หน่วยเชือ่ มต่ออุ ปกรณ์ภายนอก (Input/Output)
Suan Dusit Rajabhat University (Computer Science)
41
สรุป
กล่าวคือ การประมวลผลทัง้ หมด ทีห่ น่วยประมวลผลกลาง สาหรับข้อมูล ไม่ว่าจะเป็ น
ข้อมูลทีใ่ ช้สาหรับประมวลผล หรือข้อมูลทีเ่ ป็ นคาสัง่ ก็ตาม จะถู กเก็บไว้ในหน่วยความจา
จนกว่าจะมีการเรียกใช้งานจากหน่วยประมวลผลกลาง สาหรับส่วนต่อเชือ่ มกับอุ ปกรณ์
ภายนอกนัน้ การทางานของหน่วยประมวลผลกลางก็จะคล้ายกับการทางานกับ
หน่วยความจา ทัง้ นีเ้ พราะทัง้ หน่วยความจาและอุ ปกรณ์ภายนอก เมือ่ มีการทางานกับ
หน่วยประมวลผลกลางก็มลี กั ษณะของการเรียกใช้ขอ้ มูลและนา ข้อมูลไปเก็บ ต่างกัน
เพียงสถานที่ และ วิธกี ารเข้าถึงเท่านัน้ บัสของระบบ หน่วยงานต่าง ๆ ภายในเครือ่ ง
คอมพิวเตอร์นนั้ ต่อเชือ่ เข้าด้วยกันดัวยระบบบัส สาหรับโปรเซสเซอร์ ในตระกูล
80x86 มีด้วยกัน 3 กลุม่ อันได้แก่ ดาตาบัส (Data Bus) แอดเดรสบัส
(Address Bus) และคอมโทรลบัส (Control Bus) เป็ นต้น
Suan Dusit Rajabhat University (Computer Science)
42
The End
Lesson 4
Suan Dusit Rajabhat University (Computer Science)
43