next up previous contents index
Next: หลักการออกแบบวงจรลอจิก Up: กล่าวนำ Previous: การสร้างคอมพิวเตอร์ MIPS พื้นฐาน   Contents   Index

ภาพรวมของการออกแบบสร้าง

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

  1. ส่งค่าใน Program Counter หรือ PC ไปยังหน่วยความจำเพื่อทำการเรียกคำสั่งปัจจุบันมาทำการประมวลผล
  2. อ่านค่ารีจีสเตอร์โดยใช้ค่าฟิลด์ในชุดคำสั่ง ซึ่งขึ้นอยู่กับประเภทของคำสั่งที่ คำสั่ง R-Type จะอ่านค่ารีจีสเตอร์สองตัว ในขณะที่คำสั่ง lw อ่านรีจีสเตอร์เพียงตัวเดียว

หลังจากขั้นตอนทั้งสองขั้นต้น การทำงานของ MIPS จะขึ้นอยู่กับชุดคำสั่งที่ทำการประมวลผล โดยเราสามารถแบ่งคำสั่งออกเป็นสามชุดได้แก่ Memory Reference, Arithmetic-Logical, และ Branch ซึ่งการทำงานจะคล้ายกัน

ถึงแม้ว่าจะมีการแบ่งคำสั่งออกเป็นชุดๆ ทุกคำสั่งยกเว้น jump ใช้งาน ALU ด้วยกันทั้งหมดทั้งสิ้น หลังจากการอ่านรีจีสเตอร์ โดยที่คำสั่ง Memory Reference ใช้ในการคำนวณตำแหน่งของหน่วจความจำ, คำสั่ง Arithmetic-Logical ใช้ในการคำนวณค่า, และ คำสั่ง Branch ใช้ในการเปรียบเทียบ จะเห็นว่าการออกแบบให้แต่ละคำสั่งมีการทำงานคล้ายกันจะทำให้คอมพิวเตอร์มีความง่ายและเป็นพื้นฐาน

หลังจากใช้งาน ALU แต่ละคำสั่งจะมีการทำงานต่างกัน คำสั่ง Memory Reference จะเข้าใช้งานหน่วยความจำโดยการอ่าน หรือเขียน, คำสั่ง Arithmetic-Logical จะทำการเขียนค่าที่ได้ลงในรีจีสเตอร์, และ คำสั่ง Branch จะทำการเปลี่ยนค่าตำแหน่งคำสั่งต่อไปที่จะทำการประมวลผลที่อยู่ใน PC ไปที่ตำแหน่งที่ต้องการ หรืออาจเป็นเพียงเพิ่มค่า $PC+4$ เพื่อไปที่คำสั่งต่อไป

รูป 5.1 แสดงภาพรวมของการออกแบบสร้างโปรเซสเซอร์ MIPS ที่ประกอบด้วยส่วนต่างๆ และการต่อเชื่อมให้มีการไหลของข้อมูลผ่านไปในโปรเซสเซอร์

ใน รูป 5.1 มีการแสดงการต่อเชื่อมข้อมูลเข้าจากหลายแหล่ง การเลือกข้อมูลต่างกันทำโดยใช้อุปกรณ์ที่เรียกว่า Multiplexer เช่น ค่าที่เข้ามายัง PC มาจาก ALU หรือจาก Data Memory

Figure 5.1: ภาพรวมของการออกแบบสร้างโปรเซสเซอร์ MIPS
\includegraphics[width=5in]{fig/Chapter_5/Figure_5.1.eps}

ซึ่ง Multiplexer ประกอบด้วยอุปกรณ์พื้นฐาน ในรูป 5.2 แสดงเกตพื้นฐานที่ประกอบด้วย and, or, และ not และ เกตพื้นฐานที่มีการ negate อินพุทหรือการรวมต่อ not ที่อินพุต

Figure 5.2: เกตพื้นฐาน
\includegraphics[width=2.5in]{fig/Appendix_B/Figure_B.2.1.eps} \includegraphics[width=2.5in]{fig/Appendix_B/Figure_B.2.2.eps}

รูป 5.3 แสดงพื้นฐานการทำงานของ Multiplexer

Figure 5.3: พื้นฐานการทำงานของ Multiplexer
\includegraphics[width=3.2in]{fig/Appendix_B/Figure_B.3.2.eps}

นอกจาก Multiplexer แล้วจะต้องมีการควบคุมให้รีจีสเตอร์ ทำงานตามความต้องการเช่นการอ่านเขียน หรือ Data Memory ในการทำการอ่านหรือเขียน หรือ ALU ต้องทำการคำนวณต่างๆ กัน เช่น บวก ลบ คูณ หาร ซึ่งการทำงานต้องๆ กันนั้นในโปรเซสเซอร์ต้องมีสายสัญญาณควบคุม หรือเรียกว่า Control Line ซึ่งหลายสายสามารถต่อเชื่อมโดยตรงกับฟิลด์ต่างๆ ในคำสั่ง

รูป 5.4 แสดง Datapath ในรูป 5.4 ที่เพิ่ม Multiplexer สามชุด และสายควบตุมไปยังอุปกรณ์หลัก ชุดควบคุม (Control Unit) จะมีคำสั่งเป็นอินพุท เพื่อจะสามารถสร้างสัญาณควบคุมสำหรับ ALU และ Multiplexer สองตัว Mux ตัวที่สาม มีไว้สำหรับการเลือกว่าจะใชั $PC+4$ เป็นคำสั่งต่อไปหรือใช้ค่า Branch Destination Address เป็นตัวชี้ตำแหน่งของคำสั่งค่อไป ที่จะถูกเขียนลง PC โดย Branch จะทำการตัดสินใจจากเอาท์พุท zero ของ ALU ในการออกแบบที่แสดงนี้คำสั่งเริ่มทำงานจากจุดเริ่มของสัญญาณนาฬิกา (Clock Edge) ถึงสิ้นสุดสัญญาณนาฬิกา

Figure 5.4: Datapath ของโปรเซสเซอร์แบบ Single Cycle ที่มีรายละเอียดเพิ่มขึ้นในส่วนของ Multiplexer และ ส่วนสายสัญญาณควบคุม
\includegraphics[width=5.5in]{fig/Chapter_5/Figure_5.2.eps}

ในการออกแบบสร้าง Single Cycle Datapath จำเป็นต้องแยก Instruction Memory และ Data Memory ออกจากกันเนื่องจาก

  1. รูปแบบของคำสั่งกับข้อมูลแตกต่างกัน
  2. ในการผลิต หน่วยความจำแยกออกจากกันมีราคาถูกกว่า
  3. โปรเซสเซอร์ที่ทำงานในวงรอบนาฬิกาเดียว ไม่่สามารถใช้งาน Port ของหน่วยความจำในการเข้าใช้งานหน่วยความจำสองครั้งในวงรอบนาฬิกาเดียวได้


next up previous contents index
Next: หลักการออกแบบวงจรลอจิก Up: กล่าวนำ Previous: การสร้างคอมพิวเตอร์ MIPS พื้นฐาน   Contents   Index
Vara Varavithya 2006-11-06