ในบทที่ 2 และ 3 เราได้อรรถาธิบายถึงคำสั่งพื้นฐานที่จำเป็นต่อการทำงานของ MIPS ที่ประกอบด้วย คำสั่งประมวลผลทางคณิตศาสตร์และตรรกะของเลขจำนวนเต็ม คำสั่งถ่ายโอนข้อมูลระหว่างรีจีสเตอร์และหน่วยความจำ และคำสั่งที่ใช้ในการตัดสินใจได้แก่ คำสั่ง branch ต่างๆ โดยการออกแบบสร้างจะพิจารณาการเป็นชุดคำสั่ง โดยในเบื้องต้นทุกคำสั่งจะมีขั้นตอนที่เหมือนกันสองขั้นตอนได้แก่
หลังจากขั้นตอนทั้งสองขั้นต้น การทำงานของ MIPS จะขึ้นอยู่กับชุดคำสั่งที่ทำการประมวลผล โดยเราสามารถแบ่งคำสั่งออกเป็นสามชุดได้แก่ Memory Reference, Arithmetic-Logical, และ Branch ซึ่งการทำงานจะคล้ายกัน
ถึงแม้ว่าจะมีการแบ่งคำสั่งออกเป็นชุดๆ ทุกคำสั่งยกเว้น jump ใช้งาน ALU ด้วยกันทั้งหมดทั้งสิ้น หลังจากการอ่านรีจีสเตอร์ โดยที่คำสั่ง Memory Reference ใช้ในการคำนวณตำแหน่งของหน่วจความจำ, คำสั่ง Arithmetic-Logical ใช้ในการคำนวณค่า, และ คำสั่ง Branch ใช้ในการเปรียบเทียบ จะเห็นว่าการออกแบบให้แต่ละคำสั่งมีการทำงานคล้ายกันจะทำให้คอมพิวเตอร์มีความง่ายและเป็นพื้นฐาน
หลังจากใช้งาน ALU แต่ละคำสั่งจะมีการทำงานต่างกัน คำสั่ง
Memory Reference จะเข้าใช้งานหน่วยความจำโดยการอ่าน หรือเขียน, คำสั่ง Arithmetic-Logical จะทำการเขียนค่าที่ได้ลงในรีจีสเตอร์, และ คำสั่ง Branch จะทำการเปลี่ยนค่าตำแหน่งคำสั่งต่อไปที่จะทำการประมวลผลที่อยู่ใน PC ไปที่ตำแหน่งที่ต้องการ หรืออาจเป็นเพียงเพิ่มค่า
เพื่อไปที่คำสั่งต่อไป
รูป 5.1 แสดงภาพรวมของการออกแบบสร้างโปรเซสเซอร์ MIPS ที่ประกอบด้วยส่วนต่างๆ และการต่อเชื่อมให้มีการไหลของข้อมูลผ่านไปในโปรเซสเซอร์
ใน รูป 5.1 มีการแสดงการต่อเชื่อมข้อมูลเข้าจากหลายแหล่ง การเลือกข้อมูลต่างกันทำโดยใช้อุปกรณ์ที่เรียกว่า Multiplexer เช่น ค่าที่เข้ามายัง PC มาจาก ALU หรือจาก Data Memory
ซึ่ง Multiplexer ประกอบด้วยอุปกรณ์พื้นฐาน ในรูป 5.2 แสดงเกตพื้นฐานที่ประกอบด้วย and, or, และ not และ เกตพื้นฐานที่มีการ negate อินพุทหรือการรวมต่อ not ที่อินพุต
รูป 5.3 แสดงพื้นฐานการทำงานของ Multiplexer
นอกจาก Multiplexer แล้วจะต้องมีการควบคุมให้รีจีสเตอร์ ทำงานตามความต้องการเช่นการอ่านเขียน หรือ Data Memory ในการทำการอ่านหรือเขียน หรือ ALU ต้องทำการคำนวณต่างๆ กัน เช่น บวก ลบ คูณ หาร ซึ่งการทำงานต้องๆ กันนั้นในโปรเซสเซอร์ต้องมีสายสัญญาณควบคุม หรือเรียกว่า Control Line ซึ่งหลายสายสามารถต่อเชื่อมโดยตรงกับฟิลด์ต่างๆ ในคำสั่ง
รูป 5.4 แสดง Datapath ในรูป 5.4 ที่เพิ่ม Multiplexer สามชุด และสายควบตุมไปยังอุปกรณ์หลัก ชุดควบคุม (Control Unit) จะมีคำสั่งเป็นอินพุท เพื่อจะสามารถสร้างสัญาณควบคุมสำหรับ ALU และ Multiplexer สองตัว Mux ตัวที่สาม มีไว้สำหรับการเลือกว่าจะใชั
เป็นคำสั่งต่อไปหรือใช้ค่า Branch Destination Address เป็นตัวชี้ตำแหน่งของคำสั่งค่อไป ที่จะถูกเขียนลง PC โดย Branch จะทำการตัดสินใจจากเอาท์พุท zero ของ ALU ในการออกแบบที่แสดงนี้คำสั่งเริ่มทำงานจากจุดเริ่มของสัญญาณนาฬิกา (Clock Edge) ถึงสิ้นสุดสัญญาณนาฬิกา
|
ในการออกแบบสร้าง Single Cycle Datapath จำเป็นต้องแยก Instruction Memory และ Data Memory ออกจากกันเนื่องจาก