Who's Online

เรามี 73 บุคคลทั่วไป ออนไลน์
Ulti Clocks content

ลิฟต์ DDSI แกลอรี่

Picture 139.jpg
ไมโครโปรเซสเซอร์ Microprocessor

สถาปัตยกรรมไมโครโปรเซสเซอร์คืออะไร อ้างอิงจากหนังสือ ไมโครโปรเซสเซอร์ รศ.ธีรวัฒน์  ประกอบผล

สถาปัตยกรรมของไมโครโปรเซสเซอร์ (architecture)  มีความหมายกว้างมาก แต่เราอาจมองง่ายๆได้ว่า สถาปัตยกรรมของไมโครโปรเซสเซอร์คือโครงสร้างภายในของมัน ไมโครโปรเซสเซอร์บางเบอร์อาจมีโครงสร้างคล้ายกับอีกเบอร์หนึ่ง หรือบางเบอร์อาจแตกต่างกันมากขึ้นกับการออกแบบให้ไมโครโปรเซสเซอร์นั้นๆ เราจะให้ไมโครโปรเซสเซอร์ประมวลผลอย่างไรก็ให้ออกแบบไปตามนั้น สิ่งที่เราออกแบบจะเรียกว่าเป็นสถาปัตยกรรมของมันก็ได้

 

ความแตกต่างของสถาปัตยกรรมของไมโครโปรเซสเซอร์จะมากหรือน้อย ขึ้นอยู่กับเบอร์ที่เรานำมาเปรียบเทียบกัน ยกตัวอย่างเช่น ถ้าเรานำไมโครโปรเซสเซอร์แบบ 8 bit Single-chip เบอร์ 8051 นำมาเปรียบเทียบกับไมโครโปรเซสเซอร์แบบ 32 บิต เบอร์ 80486 ถ้าเราสั่งให้ไมโครโปรเซสเซอร์ทั้งสองเบอร์บวกเลขสองจำนวน วิธีในการบวก และโครงสร้างภายในที่ใช้ในการบวกทั้งสองเบอร์อาจจะคล้ายๆ กัน แต่ถ้าเราสั่งให้ไมโครโปรเซสเซอร์ทั้งสองเบอร์คำนวณค่าโคไซน์ (cosine) ของมุมมุมหนึ่ง วิธีการคำนวณของไมโครโปรเซสเซอร์ทั้งสองเบอร์จะแตกต่างกันมาก เบอร์ 80486 อาจทำได้โดยง่าย แต่เบอร์ 8051 อาจทำได้ยาก ในกรณีนี้เรากล่าวได้ว่าไมครโปรเซสเซอร์ทั้งสองเบอร์มีสถาปัตยกรรมที่แตกต่างกัน

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

1. ความยาวของเวิร์ดข้อมูล ( data word )

2. ขนาดของหน่อยความจำที่ไมโครโปรเซสเซอร์สามารถอ้างถึงได้

3. ความเร็วในการประมวลคำสั่งของไมโครโปรเซสเซอร์

นอกจากนี้ ยังมีข้อแตกต่างอื่นๆ ที่ผู้ใช้ไมโครโปรเซสเซฮร์ควรจะทราบ ถ้าต้องการใช้งานอย่างมีประสิทธิภาพเต็มที่ ได้แก่

จำนวนรีจีสเตอร์ ( registers) ที่สามารถใช้งานได้

ประเภทของรีจีสเตอร์ที่สามารถใช้งานได้

ชุดคำสั่งต่างๆ ของไมโครโปรเซสเซฮร์นั้นๆ

วิธีอ้างตำแหน่งหน่วยความจำ (memory addressing)

ชิปสนับสนุนต่างๆ ที่ใช้กับไมโครโปรเซสเซฮร์

การออกแบบซอฟแวร์ที่ใช้กับไมโครโปรเซสเซอร์เบอร์นั้นๆ

การพัฒนาฮาร์ตแวร์ เพื่อสนับสนุนการทำงานของไมโครโปรเซสเซอร์

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

ความยาวของเวิร์ด

ไมโครโปรเซสเซอร์ที่มีใช้กันในยุคแรกๆ จะมีการประมวลแบบ 4 บิต ต่อมาได้มีการพัฒนาเป็นแบบ 8 บิต 16 บิต 32 บิต และ 64 บิต ตามลำดับ ไมโครโปรเซสเซอร์แบบ 16 บิต 32 บิต จะมีความสามารถสูงกว่าไมโครโปรเซสเซอร์แบบ 4 บิต และ 8 บิต แต่เหตุที่ไมโครโปรเซสเซอร์แบบบิตต่ำยังมีใช้อยู่เนื่องจาก งานที่ไม่ต้องการความเร็วมาก งานที่ไม่ต้องการคำนวณที่ซับซ้อนเช่น ของเล่น เครื่องใช้ไฟฟ้าต่างๆ ไมโครโปรเซสเซอร์แบบบิตต่ำยังใช้งานได้ดีอยู่และทำให้ราคาต้นทุนถูกลงด้วย งานประเภทนี้การนำไมโครโปรเซสเซอร์แบบบิตต่ำมาควบคุมก็เพียงพอแล้ว นอกจากนี้ อุปกรณ์ใช้กับไมโครโปรเซสเซอร์แบบมีความยาวเวิร์ดข้อมูลสูงขึ้นราคาก็สูงขึ้นไปด้วย

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

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

ของเล่นเด็ก เช่น หุ่นยนต์ รถบังคับ เกมกด

เครื่องคิดเลข แบบธรรมดา เครื่องคิดเลขแบบวิทยาศาสตร์

เครื่องมือทุ่นแรง เช่น เครื่องควบคุมความเร็ว เครื่องวัด

เครื่องมือที่ใช้ในบ้าน เช่น เตาอบไมโครเวฟ โทรศัพท์ รีโมท

อุปกรณ์สนับสนุนคอมพิวเตอร์ เช่อ คีบอร์ด สแกนเนอร์ พล็อตเตอร์

ตัวอย่างที่กล่าวมาทั้งหมด จะเลือกใช้ไมโครโปรเซสเซฮร์แบบ 4 บิต เนื่องจากเหตุผลสองประการ ประการแรกคือ ต้องการให้ต้นทุนการผลิตต่ำ ประการที่สองระบบเหล่านี้ไม่ต้องการขีดความสามารถสูงนัก ถ้าเป็นเครื่องคิดเลขแบบวิทบาศาสตร์จะเห็นได้ว่าใช้ไมโครโปรเซสเซฮร์แบบ 4 บิต ทั้งๆ ที่ต้องคำนวณค่า sine, cosine,และ logarithm ด้วย เหตุผลก็คือ ไมโครโปเซสเซอร์แบบ 4 บิตจะทำงานง่ายๆ ได้รํว แต่งานที่ซับซ้อนก็ทำได้เช่นกัน แต่ความเร็วจะลดลง

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

ของเล่น เช่น วีดีโอเกม หุ่นยนต์ที่สามารถโปรแกรมได้

ระบบที่ต้องการความซับซ้อน เช่น ระบบ VCR ระบบรักษาความปลอบภัยระบบควบคุมแสงสว่าง

อุปกรณ์ประกอบคอมพิวเตอร์ เช่น ระบบแสดงผล เครื่องพิมพ์ความเร็วสูง โมเด็ม พล็อตเตอร์ อุปกรณ์ควบคุมดิสก์ไดรฟ์ อุปกรณ์ควบคุมการสื่อสารเป็นต้น

ระบบควบคุมอุตสาหกรรม เช่น หุ่นยนต์ ระบบเก็บข้อมูล ระบบควบคุม ระบบควบคุมระบบการทำงาน

เครื่องมือวัดเช่น ลอจิกอนาไลเซอร์ เครื่องวิเคราะห์การสื่อสาร เครื่องทดลองดิสก์ไดรฟ์ โวลต์มิเตอร์อย่างดีเป็นต้น

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

ตัวอย่างเช่น ไมโครโปรเซอเซอร์ที่ใช้ในเกมกด การทำงานของมันจะต้องประมวลผลให้ทันกับความเร็วในการกดปุ่ม แต่ถ้าหากใช้ไมโครโปรเซสเซอร์ในการควบคุมการทำงานระหว่างคอมพิวเตอร์กันเครื่องพิมพ์ จะต้องตอบสนองให้ทันกับการรับส่งข้อมูลระหว่างเครื่องพิมพ์กับคอมพิวเตอร์ ในบางครั้งการรับส่งข้อมูลอาจมีความเร็วประมาณ 1000 ตัวอักษรต่อวินาที ถ้าหากเครื่องพิมพ์ทำงานได้ช้าหรือหน่องความจำภายในเครื่องพิมพ์เต็มจะทำให้รับข้อมูลได้ไม่หมด เครื่องพิมพ์จะต้องส่งสัญญาณมาบอกคอมพิวเตอร์ว่าพร้อมที่จะรับข้อมูลได้เมื่อใด ถ้าหากข้อมูลมีอัตรารับส่งข้อมูลเร็วถึง 1000 ตัว อักษรต่อวินาทีการทำงานของไมโครโปรเซสเซฮร์ในการควบคุมการทำงานจะต้องเร็วด้วย เวลาในการตอบสนองการทำงานในลัษณะนี้เป็นเวลาระหว่างเครื่องกับเครื่อง ( machine-to-machine response time)ในขณะที่ตัวอย่างของเกมกดเป็นการตอบสนองระหว่างมนุษย์กับเครื่อง (machine-to-human response time)

ในปัจจุบันไมโครโปรเซสเซอร์ที่ใช้กันในเครื่องคอมพิวเตอร์ส่วนบุคคล ( personal computer ) เป็นแบบ 16 บิต 32 บิต และ 64 บิต โดยเครื่องคอมพิวเตอร์ส่วนบุคคลหรือ PC ได้เปิดตัวครั้งแรกโดยบริษัท IBM ในปี ค.ศ 1981 ซึ่งใช้ไมโครโปรเซสเซอร์ของบริษัท Intel เบอร์ 8088 โดยประมวลผลภายใน 16 บิต แต่ใช้บัสในการติดต่อกับอุปกรณ์ภายในออกแบบ บิตซึ่งจะทำให้ลดต้นทุนในการผลิตลง ต่อมาได้มีการปรับปรุงเครื่อง PC ให้ทำงานแบบ 16 บิต อย่างสมบูรณ์โดยใช้ไมโครโปรเซสเซอร์ เบอร์ 80286 และทำงานแบบ 32 บิตโดยใช้ไมโครโปรเซสเซอร์รุ่น 80386,80486 ละเพ็นเที่ยม

หลังจากที่ IBM ได้เปิดตัวเครื่องคอมพิวเตอร์ IBM PC ต่อมาได้มีการพัฒนาระบบและโปรแกรมประยุกต์ต่างๆให้ใช้กับเครื่อง PC ได้ ผู้ผลิตเครื่องคอมพิวเตอร์รายต่างๆ จึงผลิตเครื่อง PC ออกมาให้ทำงานได้คล้ายกับของ IBM โดยชื่อว่า PC-compatible นอกจากนี้ก็ได้เกิดอุปกรณ์สนับสนุนต่างๆมากมายที่ใช้กับเครื่อง PC ได้การประยุต์ใช้งานส่วนใหญ่จะเป็นการให้เครื่องคอมพิวเตอร์ PC มากกว่าที่ใช้ตัวไมโครโปรเซสเซอร์แต่ก็มีการใช้ไมโครโปรเซสเซฮร์กับงานควบคุมเฉพาะทาง เช่น งานด้านอุตสาหกรรม วิทยาศาสตร์ และการแพทย์ ตัวอย่าง เช่น หุ่นยนต์ที่ควบคุมด้วยไมโครโปรเซสเซอร์เป็นต้น ถ้าหากระบบมีความซับซ้อนมากขึ้นก็จะทำให้ไมโครโปรเซสเซอร์แบบ 16 บิต และ 32 บิต มาประยุกต์ใช้ในเครื่องมือดังกล่าว

นอกจากไมโครโปรเซสเซอร์ของบริษัทอินเทลแล้ว ยังมีไมโตโลรา (Motorola)ซึ่งใช้ในเครื่อง Apple Macintosh นอกจากนี้ ยังใช้ในระบบควบคุมอุตสาหกรรมที่ใช้ไมโครโปรเซสเซอร์ในการควบคุมอีกด้วย ระบบเหล่านี้จะใช้โปรแกรมชื่อ Unix เป็นระบบปฎิบัติการ นอกจากนี้เครื่องคอมพิวเตอร์เหล่านี้จะนิยมใช้ในงานด้านการออกแบบ หรือ computer – aided design (CAD) และใช้งานด้านการผลิตหรือ computer-aided manufacturing (CAM) โดยเครื่องเหล่านี้จะอยู่ในรูปแบบเครื่องเวิร์กสเตชัน (workstation) ซึ่งจะต้องใช้ไมโครโปรเซสเซฮร์ที่มีประสิทธิภาพสูงเนื่องจากต้องการทำงานทางด้านกราฟิกและการคำนวณจำนวนมากไมโครโปรเซสเซอร์แบบ16บิตและ32บิตนอกจากจะมีในเครื่องไมโครคอมพิวเตอร์แล้วงานบางงานที่ไม่จำเป็นต้องใช้ไมโครคอมพิวเตอร์ทั้งเครื่อง เช่น งานควบคุมทางอุตสาหกรรม จะใช้ไมโครโปรเซสเซอร์ที่อยู่ในรูปการ์ด (card) CPU และการ์ดความจำ (RAM) หรือแผงวงจรต่างๆก็เป็นส่วนประกอบของคอมพิวเตอร์เช่นกันอย่างเช่นในไมโครคอมพอวเตอร์ อาจประกอบด้วยการ์ด CPU, การ์ด I/O, การ์ดหน่วยความจำเป็นต้น

ไมโครโปรเซสเซอร์แบบ 32 บิต ได้พัฒนาต่อมาจากแบบ 16 บิต ให้มีประสิทธิภาพดีขึ้นโดยของอินเทลจะเป็นเบอร์ 80368 โดยบริษิทโมโตโรล่าจะเป็นเบอร์ 68020 ไมโครโปรเซสเซอร์ทั้งสองเบอร์ จะอยู่ในไมโครคอมพิวเตอร์แบบ 32 บิต สาเหตุที่ต้องใช้ไมโครคอมพิวเตอร์แบบ 32 บิต มาจากเหตุผลหลักสองประการคือ ความเร็วในการคำนวณและความเร็วในการประเมินผลข้อมูลเวิร์ดข้อมูลแบบ 32 บิตจะมีความละเอียดในการอ้างข้อมูลได้ถึง  1 ใน 4000 ล้านส่วน แต่ถ้าเป็นเวิร์ดข้อมูลแบบ 16 บิต จะอ้างข้อมูลได้ 1 ใน 65,536 ตำแหน่งละเอียดที่สูงมากๆ จะมีประโยคต่อการคำนวณพานิชย์หรือทางด้านวิทยาศาสตร์ที่มีความซับซ้อนในรูปที่ 4.2 จะเปรียบเทียบเวิร์ดข้อมูลขนาด 8 บิต 16 บิต และ 32 บิต จะเห็นว่าแบบ 32 บิต จะมีความสามารถในการจัดการกับข้อมูลได้ดีกว่าแบบ 8 บิตและ 16 บิต มาก

การนำไมโครโปรเซสเซอร์แบบ 32 บิตมาใช้งานทำให้การคำนาณทางคณิตศาสตร์ได้เร็วขึ้น เพราะเป็นการคำนวณแบบซิงเกิลพรีชิชัน ( single-precision) ถ้าเป็นไมโครโปรเซสเซอร์แบบ 8 บิต หรือ 16 บิตจะเป็นคำนวณแบบมัลติเปิลชั่น (multiple precision)ซึ่งจะใช้เวลาในการคำนวณมาก นอกจากนี้ไมโครโปรเซสเซอร์แบบ 32 บิตสามารถดำเนินการกับข้อมูลได้เร็ว เพรราะว่าการอ่านข้อมูลจากหน่วยความจำแต่ละครั้งจะอ่านข้อมูลครั้งละ 32 บิตซึ่งจะเร็วกว่าไมโครโปรเซสเซอร์แบบ 8 บิต ถึง 4 เท่า เนื่องจากไมโครโปรเซสเซอร์แบบ 8 บิตจะอ่านข้อมูลได้เพียงทีละไบต์ แต่แบบ 32 บิต จะอ่านข้อมูลได้ทีละ 4 ไบต์ ในการพัฒนาไมโครโปรเซสเซอร์ให้มีความเร็วเพิ่มขึ้นโดยเพิ่มความถี่สัญญาณนาฬิกาเป็นเรื่องที่ยากจึงมีการเพิ่มความเร็วโดยการเพิ่มความยาวของเวิร์ดแทน เมื่อรู้ส฿กว่าไมโครโปรเซสเซอร์แบบ 32 บิตทำโปรแกรมประยุกต์ข้อมูลได้ช้ารับข้อมูลจากอุปกรณ์ภายนอกได้ช้าต่อมาได้มีการพัฒนาไมโครโปรเซสเซอร์แบบ 64 บิต เพื่อพัฒนาไมโครโปรเซสเซฮร์แบบ 32 บิตเดิมให้ทำงานได้เร็วขึ้น

ความสามารถในการอ้างหน่วยความจำ

คุณสมบัติข้อหนึ่งที่เป็นสถาปัตยกรรมของไมโครโปรเซสเซอร์คือ ความสามารถในการอ้างหน่วยความจำ ไมโครโปรเซสเซฮร์รุ่นก่อนๆอ้างหน่วยความจำได้น้อย เช่น ไมโครโปรเซสเซฮร์ แบบ 4 บิต เบอร์ 4004 ของอินเทลอ้างหน่วยความจำได้เพียง 16,384 ตำแหน่ง เพราะว่าตัวนี้มีขาอ้างสัญญาณแอดเดรสหน่วยความจำเพียง 14 เส้น ( 214 = 16,384 ) ถ้าหากเป็ฯไมโครโปรเซสเซอร์แบบ 8 บิต ส่วนใหญ่จะมีสัญญาณอ้างแอดเดรส 16 เส้น ทำให้สามารถอ้างถึงหน่วยความจำได้ 65,535 ตำแหน่ง (216)

ไมโครโปรเซสเซอร์แบบชิปเดี่ยว ( single-chip microcomputer ) หลายรุ่นสามารถอ้างหน่วยความจำที่อยู่ในชิปได้เท่านั้น โดยจะมีหน่วยความจำประเภท ROM (read-only memmory) ขนาด 2k ถึง 8k ตำแหน่งสำหรับเก็บข้อมูลที่เปลี่ยนแปลงได้ นอกจากนี้ยังมีไมโครโปรเซสเซอร์แบบชิปเดี่ยวบางรุ่น สามารถอ้างหน่วยความจำที่อยู่ภายนอกชิปได้ ทำให้สามารถอ้างหน่วยความจำได้ทั้งหมด 64 กิโลไบต์ (65,535)

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

เมื่อนาฬิกาเริ่มทำงานตามโปรแกรมที่อยู่ใน ROM เราสามารถตั้งเวลาเป็นชั่วโมง นาที และ วินาทีได้ นอกจากนี้ยังตั้งบิตแฟลกให้แสดงเวลาเป็น AM หรือ PM ได้อีกด้วย โดยข้อมูลจากการตั้งค่าต่างๆรวมทั้งเวลาการปลุกจะเป็ฯข้อมูลที่เปลี่ยนแปลงได้ ระบบจะเก็บข้อมูลเหล่านี้ไว้ในหน่วยความจำข้อมูล RAM เมื่อไมโครโปรเซสเซอร์ทำงานตามโปรแกรม ระบบจะตรวจสอบว่าเวลาปัจจุบันตรงกับเวลาที่ตั้งปลุกไว้หรือไม่ ถ้าตรงกันไมโครโปรเซสเซอร์ก็จะส่งเสียงปลุกออกมา

จากระบบดังกล่าวเราต้องรู้หน่วยความจำที่ใช้ก่อนออกแบบระบบ ว่าจะใช้หน่วยความจำสำหรับเก็บโปรแกรม (ROM) ขนาดเท่าไร และใช้หน่วยความจำสำหรับเก็บข้อมูล (RAM) ขนาดเท่าไร จากระบบดังกล่าวโปรแกรมการควบคุมการทำงานประกอบด้วยชุดคำสั่งไม่เกิน 1 กิโลไบต์ ดังนั้น ระบบของเราต้องการหน่วยความจำ ROM ที่เก็บข้อมูลไดไม่เกิน 1000 คำสั่ง สำหรับขนาดของ RAM อาจออกแบบเนื้อที่สำหรับเก็บส่วนต่างๆ ได้ดังรูปที่ 4.3 โดยข้อมูลที่เก็บในลักษณะเลข BCD โดยข้อมูลเกี่ยวกับเวลามี 3 ชุด คือชุดข้อมูลเวลาปัจจุบัน ชุดข้อมูลเวลาเริ่มต้น และชุดข้อมูลเวลาปลุก ข้อมูลแต่ละชุดมี 7 ตำแหน่ง ตือสองตำแหน่งสำหรับชั่วโมง สองตำแหน่งสำหรับนาที สองตำแหน่งต่อวินาที และหนึ่งตำแหน่งระหว่างแฟลกเลือก AM/PA ได้ 64 ตำแหน่งและ ROM ที่มีขนาด 1000 ตำแหน่งก็สามารถทำงามต้องการได้ แต่ถ้าเลือกใช้ไมโครโปรเซสเซอร์ที่มีโครงสร้างดีขึ้น เช่น ไมโครโปรเซสเซอร์ขนาด 8 บิต ที่อ้างหน่วยความจำได้ 69k อาจจะเกินความจำเป็น

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

โปรแกรมส่วนใหญ่ที่ใช้กันอยู่ทุกวันนี้ เช่น เวิร์ดโปรเซสเซอร์ (word processor) สเปรดชีส (spread sheets) และดาต้าเบส (data bases) จะใช้หน่วยความจำขนาด 128 กิโลไบต์เป็นอย่างน้อย ดังนั้น ถ้าหากต้องการสร้างการทำงานแบบหลายโปรแกรม (multiprogrammimng) ดังที่กล่าวมาแล้วให้สามารถมีผู้ใช้ได้ 4 คน ไมโครโปรเซสเซอร์จะต้องอ้างหน่วยความจำมากขึ้น ผู้ใช้ 1 คน จะใช้ 128 กิไบต์ เป็นอย่างต่ำ ดังนั้นจะต้องใช้หน่วยความจำถึง 512 กิโลไบต์ ถ้าหากเราจะเลือกไมโครโปรเซสเซอร์ว่าจะใช้เบอร์ Z-80 ดี หรือเบอร์ 8088 ก็อาจจะใช้ในงานของเราได้ เพราะหน่วยนี้สามารถอ้างหน่วยความจำได้ถึง 1 เมกะไบต์ (1,048,576 ไบต์) นอกจากนี้ ยังเป็นไมโครโปรเซสเซอร์แบบ 16 บิต สามารถทำงานต่างๆ ได้เร็วอีกด้วย ในรูปที่ 4.4 เป็นการจัดหน่วยความจำสำหรับผู้ใช้หลายคน

ไมโครโปรเซสเซอร์แบบ 8 บิต จะมีการนำไปประยุกต์ใช้งานควบคุมมากมาย โดยโปรแกรมควบคุมการทำงานจะมีขนาดระหว่าง 4 ถึง 32 กิโลไบต์ และงานด้านควบคุมส่วนใหญ่ไม่ต้องการความสามารถด้านการอ่านเขียนข้อมูลนัก ระบบเหล่านี้จะใช้ไมโครโปรเซสเซอร์แบบ 8 บิต มีหน่วยความจำ RAM ขนาด 2 ถึง 8 กิโลไบต์

ถ้าหากนำไมโครโปรเซสเซอร์แบบ 8 บิตมาใช้ในคอมพิวเตอร์เพื่อใช้งานทั่วไป ควรจะมีหน่วยความจำ RAM มากที่สุดเท่าที่จะเป็นได้เพราะตัวมันจะต้องมีโปรแกรมเริ่มต้นการทำงาน (initial progame) ที่เรียกว่า โปรแกรม บูต (boot program) โดยโปรแกรมนี้จะถูกเก็บในหน่วยความจำโปรแกรมหรือ ROM เมื่อไมโครโปรเซสเซอร์เริ่มทำงานจะทำโปรแกรมนี้ก่อนและจะโหลดคำสั่งต่างๆ จากหน่วยความจำสำรองเข้าสู่ RAM จากนั้นจะทำงานตามโปรแกรมที่อยู่ใน RAM จนกระทั่งไฟดับ จากสองตัวอย่างที่กล่าวมา จะเห็นว่าหน่วยความจำแบบ ROM และ RAM จะมีใช้หลายลักษณะ ในตัวอย่างแรกจะใช้ ROM ขนาดใหญ่ในการเก็บโปรแกรมควบคุมระบบการทำงานและใช้ RAM อีกเล็กน้อยในการเก็บข้อมูลที่เปลี่ยนแลงได้ ส่วนตัวอย่างที่สอง จะเป็นระบบคอมพิวเตอร์ที่ใช้งานทั่วไปจะใช้ RAM ขนาดใหญ่ เพราะว่าคอมพิวเตอร์แบบนี้จะถูกออกแบบให้โหลดโปรแกรมจากหน่วยความจำสำรองเข้าสู่RAMซึ่งผู้ใช้สามารถเปลี่ยนแปลงโปรแกรมที่จะใช้งานได้ แต่เมื่อไฟดับหรือปิดดเครื่องจะไม่มีโปรแกรมอยู่ใน RAM ดังนั้นจึงต้องมีโปรแกรมเริ่มต้นการทำงานที่เรียกว่าโปรแกรมบูต โดยจะเก็บเอาไว้ในหน่วยความจำ ROM

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

สถาปัตยกรรมของไมโครโปรเซสเซอร์เบอร์ 8088 สามารถอ้างถึงหน่วยความจำได้ถึง 1 เมกะไบต์  เมื่อนำ 8088 มาใช้ในเครื่อง PC หน่วยความจำจะถูกแบ่งออกเป็น RAM และ ROM โดยหน่วยความจำ ROM จะเก็บโปรแกรมบูต (boot progarm) และโปรแกรมถาวรอื่นๆ เรียกว่า BIOS ที่ไมโครโปรเซสเซอร์จะต้องใช้ ในรูปที่ 4.5 แสดงการจัดการหน่วยความจำเครื่อง PC ที่ใช้ไมโครโปรเซสเซอร์เบอร์ 8088 ไดอะแกรมดังกล่าวเรียกว่า ผังความจำหรือเมโมรีเมป (memory map) ซึ่งแสดงโครงสร้างหน่วยความจำของเครื่อง ถ้าหากนำไมโครโปรเซสเซอร์แบบ 16 บิต มาใช้งานควบคุม ขนาดหน่วยความจำที่ใช้จะน้อยลงกว่าการใช้เครื่อง PC เพราะโปรแกรมส่วนใหญ่จะเป็น ROM เนื่องจากการไม่ต้องการเปลี่ยนแปลงโปรแกรมระบบและโปรแกรมงาน แต่ถ้ามีการใช้โปรแกรมประยุกต์และมีการใช้โปรแกรมประยุกต์และมีการเปลี่ยนแปลงโปรแกรมบ่อยๆ หน่วยความจำที่ใช้ส่วนใหญ่จะเป็น RAM เพื่อให้สามารถเปลี่ยนแปลงโปรแกรมได้ง่าย เช่น ในคอมพิวเตอร์ที่ใช้ในงานควบคุมสามารถเปลี่ยนโปรแกรมได้หลายครั้งการใช้ไมโครโปรเซสเซอร์ แบบ 16 บิต จะทำให้ระบบของเราคำนวณได้เร็วและสามารถอ้างโปรแกรมขนาดใหญ่ได้

สำหรับไมโครโปรเซสเซอร์แบบ 32 บิต เบอร์ที่ยิยมใช้กัน ได้แก่ 80386 และ 68020 โดยสถาปัตยกรรมของมันสามารถอ้างหน่วยความจำได้ 4 กิกะไบต์ (1 G byte เท่ากับ 1000 ล้าน ไบต์)และตัวมันำด้ถูกออกแบบให้สร้างให้สามารถทำงานได้หลายโปรแกรม (multiprogramming) และงานประยุกต์ทางวิทยาศาสตร์ที่ต้องการประมวลผลข้อมูลจำนวนมาก

ความเร็วของไมโครโปรเซสเซอร์

ความเร็วที่ไมโครโปรเซสเซอร์สามารถปฎิบัติตามคำสั่ง จะเป็นตัวเปรียบเทียบความสามารถระหว่างไมโครโปรเซสเซอร์สองตัวได้ โดยการวัดความเร็วอาจจะทำได้ 2 วิธี คือ วิธีแรกวัดจากความเร็วของสัญญาณนาฬิกา(clock speed) โดยจะวัดจากความถี่ของออสซิลเลเตอร์ (oscillator ที่มีหน่วยเป็นเมกะเฮิรตซ์ 1 MHz เท่ากับ 1 ล้านรอบต่อวินาที) วิธีที่สองจะวัดจากจำนวนคำสั่งที่ไมโครโปรเซสเซอร์สามารถทำงานได้ใน 1 วินาที ซึ่งเป็นวิธีที่ดีในการวัดความเร็ว การประมวลผล สำหรับที่ใช้คือล้านคำสั่งในวินาที (millions of instructions per second : MIPS ) การทำงานคำสั่งของไมโครโปรเซสเซอร์แต่ละคำสั่งจะต้องใช้สัญญาณนาฬิกาในการทำงาน บางคำสั่งอาจใช้สัญญาณนาฬิกา 2 ลูก จึงทำงานคำสั่งนั้นสิ้นสุดลง บางคำสั่งก้ออาจใช้สํญญาณนาฬิกาหลายลูกในการทำงานหนึ่งคำสั่ง

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

จะเป็นตารางแสดงความถี่ของสัญญาณนาฬิกา และหน่วยของ MIPS จะเห็นว่า MIPS จะขึ้นกับความถี่สัญญาณนาฬิกา และขนาดของเวิร์ด ถ้าความถี่ของสัญญาณนาฬิกาเพิ่มขึ้นไมโครโปรเซสเซอร์จะทำคำสั่งได้มากขึ้นในหนึ่งวินาที ถ้าพิจารณาไมโครโปรเซสเซอร์เบอร์ Z-80 โดยเพิ่มความถี่สัญญาณนาฬิกาจาก 4.0 MHz (Z80A) เป็นความถี่ 6.0 (Z80B) จะเห็นได้ว่า MIPS จะเพิ่มขึ้น 50 เปอร์เซนต์ แต่ถ้าเพิ่มขนาดของเวิร์ดข้อมูลโดยใช้ความถี่สัญญาณนาฬิกาค่าเดิมจะพบ MIPS จะเพิ่มขึ้นเท่าขึ้น เพราะว่าขนาดของคำสั่งส่วนมากแล้วจะมีขนาดใหญ่กว่า 2 ไบต์ ถ้าหากไมโครโปรเซสเซอร์แบบ 8 บิต การทำคำสั่งจะต้องอ่านหน่วยความจำอย่างน้อยสองครั้ง (ครั้งละไบต์) แต่ถ้าหากใช้ไมโครโปรเซสเซอร์ แบบ 16 บิต จะอ่านคำสั่งเพียงครั้งเดียว ดังนั้นถ้าไมโครโปรเซสเซอร์ทั้งสองตัวใช้เวลาในการอ่านหน่วยความจำเท่ากัน ไมโครโปรเซสเซอร์แบบ 16 บิต จะทำงานได้เร็วกว่าไมโครโปรเซสเซอร์แบบ 8 บิต ถึงสองเท่า

ความถี่สัญญาณนาฬิกาที่ใช้กับไมโครโปรเซสเซอร์ จะขึ้นอยู่กับเทคโนโลยีที่ใช้ผลิตตัวไมโครโปรเซสเซอร์ด้วย โดยทั่วไปจะใช้เทคโนโลยีแบบ LSI (large scale integrated) ในการสร้าง ซึ่งภายในมีความซับซ้อนมาก และบรรจุทรานซิสเตอร์เอาไว้หลายตัว การออกแบบไมโครโปรเซสเซอร์ให้ทำงานที่ความถี่สูง วงจรต่างๆ จะต้องมีขนาดเล็ก ในปัจจุบันการสร้างไมโครโปรเซสเซอร์ที่มีความเร็วสูงๆ ชิ้นส่วนต่างๆ จะมีขนาดเพียงหนึ่งในล้านนิ้วเท่านั้น

เทคโลโลยีเซมิคอนดักเตอร์ที่ใช้สร้างไมโครโปรเซสเซอร์จะมีสองชนิดคือ NMOS และ CMOS โดย NMOS ย่อมาจาก (N-channal metal-oxide semiconductor ส่วน CMOS ย่อมาจาก complemenyary metal – oxide semiconductor)

ขบวนการผลิตแบบ NMOS สามารถใช้งานในช่วงความถี่ไม่เกิน 20 MHz อุปกรณ์ที่ใช้เทคโนโลยีแบบนี้ราคาจะถูกแต่จะกินพลังงานมาก (กระแสสูง) ทำให้ตัวอุปกรณ์ร้อนง่าย สำหรับอุปกรณ์ที่สร้างโดยใช้เทคโนโลยี CMOS จะกินพลังงานต่ำ ทนทานต่อการเปลี่ยนแปลงอุณหภูมิ และใช้จ่ายไฟได้ช่วงกว้าง แต่ราคาจะสูง ในวงจร VLSI (very large scale integration) บางชนิดไม่สามารถใช้เทคโนโลยีแบบ NMOS ได้ เพราะวงจรร้อนมากจนอาจทำให้ไหม้ได้ จึงต้องใช้เทคโนโลยีแบบ CMOS ได้ แต่ถ้าเพิ่มความถี่ในการทำงานมากขึ้นจะต้องลดขนาดต่างๆ ของวงจร VLSI ลงซึ่งเป็นเรื่องที่อยากในการสร้างวงจรเซมิคอนดักเตอร์ให้มีขนาดเล็ก จึงต้องหาวิธีอื่นในการเพิ่มความเร็วของมัน ความถี่สัญญาณนาฬิกาที่ใช้กันทั่วไปจะอยู่ช่วง 20 ถึง 200 MHz สำหรับไมโครโปรเซสเซอร์ที่ใช้กับคอมพิวเตอร์ PC จะมีความเร็วไปจนถึงกิกะเฮิร์ต นอกจากนี้ ในการออกแบบไมโครโปรเซสเซอร์รุ่นใหม่ๆ จะออกแบบให้การทำงานคำสั่งหนึ่งคำสั่งให้ใช้จำนวนสัญญาณนาฬิกาน้อยลงด้วย

สถาปัตยกรรมอื่นๆ ของไมโครโปรเซสเซอร์

ในหัวข้อนี้อธิบายเทคนิคต่างๆ ที่ใช้พัฒนาไมโครโปรเซสเซอร์ เทคนิคการเพิ่มความเร็วให้กับไมโครโปรเซสเซอร์ทำได้โดยการปรับปรุงสถาปัตยกรรมต่างๆ ดังนี้

-การประมวลผลแบบขนาน (prarllel processing)

-การประมวลผลร่วม (coprocessing)

-การใช้หน่วยความจำแคช (Cache memory )

-เทคนิคไพน์ไลน์นิ่ง (Pipelining)

-การขยายบัส

การประมวลผลแบบขนาน(prarllel processing) เป็นการทำงานสองส่วนพร้อมๆกันโดยจะเป็นการนำไมโครโปรเซสเซอร์สองตัวมาบรรจุในระบบเดียวกัน การที่จะเรียกว่าไมโครโปรเซสเซอร์ทำงานแบบขนานได้นั้นก็ต่อเมื่องานนั้นสามารถทำได้โดยไมโครโปรเซสเซอร์เพียงตัวเดียว แต่หารใช้ไมโครโปรเซสเซอร์แบบสองตัวจะทำให้ทำงานนั้นเสร็จเร็วขึ้น นอกจากนี้ การประมวลผลแบบขนานยังมีการนำมาใช้ภายในตัวไมโครโปรเซสเซอร์ด้วย โดยจะออกแบบให้การประมวลคำสั่งทำงานเป็นสองส่วนโดยหาขั้นตอนที่สามารถทำงานไปพร้อมๆกันได้ซึ่งจะใช้หน่วยควบคุมสองตัว และงานทั้งสองส่วนจะต้องเป็นงานที่ไม่รอผลลัพธ์จากอีกส่วนหนึ่งในรูปที่ 4.7 จะเป็นลักษณะของการประมวลผลแบบขนาน โดยใช้ไมโครโปรเซสเซอร์สองตัว ไมโครโปรเซสเซอร์รุ่นใหม่ๆ จะมีการประมวลผลแบบขนานอยู่ภายใน ทำให้การทำงานคำสั่งแต่ละคำสั่งมีความเร็วใกล้เคียงกับความเร็วของสัญญาณนาฬิกา สถาปัตยกรรมแบบนี้เรียกว่า ชุปเปอร์สกาลาร์ (superscalar architecture)

การประมวลผลร่วม (coprocessing) มีลักษณะคล้ายกับการประมวลผลแบบขนาน โดยจะมีหน่วยประมวลผลร่วม (coprocessing)แยกออกจากตัวประมวลผลหลัก ตัวประมวลผลร่วมนี้จะทำหน้าที่พิเศษบางอย่างที่มันสามารถทำงานได้เร็วกว่าให้หน่วยประมวลผลหลักทำ

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

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

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

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

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

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

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

รีจัสเตอร์ของไมโครโปรเซสเซอร์

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

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

ประเภทของรีจัสเตอร์ที่โปรแกรมเมอร์สามารถใช้งานได้นั้นจะแสดงถึงความสามารถของมัน อย่างเช่น รีจัสเตอร์บางตัวอาจใช้อ้างแอดเดรสจากตำแหน่งหน่วยความจำ โดยใช้เลือกตำแหน่งของหน่วยความจำได้ เช่น รีจัสเตอร์อินเด็กซ์(index register) โดยโปรแกรมเมอร์สามารถบวกข้อมูลขนาด 2 เวิร์ด กับค่าในอิเด็กซ์รีจัสเตอร์หาตำแหน่งข้อมูลที่ต้องการอ้างถึงได้ ถ้าหากไม่มีรีจัสเตอร์อินเด็กซ์เราจะต้องใช้รีจัสเตอร์ตัวอื่นๆ ในการอ้างตำแหน่งโดยต้องใช้ขั้นตอนที่ซับซ้อนกว่าและใช้คำสั่งหลายคำสั่ง

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

คำสั่งของไมโครโปรเซสเซอร์

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

ตัวอย่างเช่นถ้าเปรียบเทียบชุดคำสั่งของไมโครโปรเซสเซอร์ชิปเดี่ยวแบบ 8 บิต ของอินเทลเบอร์ 8051 กับไมโครโปรเซสเซอร์เบอร์ Z-80 ที่นิยมใช้กัน จะพบว่า 8051 มีคำสั่งทั้งหมด 111 คำสั่ง และของ Z-80 มีคำสั่ง 178 คำสั่ง จากตัวอย่างนี้เราบอกได้หรือไม่ว่า Z-80 ดีกว่า 8052

ถ้าศึกษารายละเอียดชุดคำสั่งของไมโครโปรเซสเซอร์ทั้งสองแล้ว จะพบว่า Z-80 มีชุดคำสั่งที่มีประสิทธิภาพมากกว่า ประการแรก Z-80 สามารถย้ายข้อมูลแบบ 16 บิต ได้ระหว่างรีจัสเตอร์คู่ หรือ รีจัสเตอร์คู่กับหน่วยความจำ ดังนั้น Z-80 จะต้องมีวงจรลอจิกเพื่อสนับสนุนการการทำงานดังกล่าว ประการที่สอง Z-80 มีชุดคำสั่งที่ใช้ย้ายข้อมูลเป็นบล็อก และคำสั่งค้นหาข้อมูลเป็นบล็อก ทำให้โปรแกรมเมอร์สามารถย้ายข้อมูลเป็นกลุ่มๆ ได้ไม่ต้องย้ายข้อมูลทีละไบต์ โดยโปรแกรมเมอร์กำหนดตำแหน่งเริ่มต้นและตำแหน่งสุดท้ายของบล็อกข้อมูลและแอดเดรสเริ่มต้นของตำแหน่งใหม่ที่ต้องการย้ายข้อมูลไป นอกจากนี้ โปรแกรมเมอร์สามารถค้นหาข้อมูลบล็อกได้อีกด้วย

คำสั่งการย้ายข้อมูลแบบ 16 บิต และคำสั่งการย้ายบล็อกข้อมูลทำให้ Z-80 ต้องมีวงจรลอจิกพิเศษเพิ่มขึ้น แต่ใน 8051 ไม่มีวงจรลอจิกเหล่านี้ ดังนั้น ถ้างานที่ต้องการใช้จะต้องย้ายข้อมูลแบบ 16 บิต หรือย้ายข้อมูลเป็นบล็อก ตัว Z-80 จะใช้งานได้ดีกว่า 8051

สำหรับใน Z-80 ก็ไม่มีคำสั่งบางคำสั่งที่ 8051 มี อย่างเช่น ใน 8051 มีคำสั่งที่ใช้รับข้อมูลทางพอร์ตอนุกรม โดยที่ใน 8051 ก็ต้องมีวงจรลอจิกพิเศษสนับสนุนการทำงานนี้ 8051 จึงเหนือกว่า Z-80 ในด้านนี้

สถาปัตยกรรมการอ้างแอดเดรสหน่วยความจำ

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

 
Joomla Templates by Joomlashack