วันพุธที่ 7 ธันวาคม พ.ศ. 2559

โครงสร้างของระบบคอมพิวเตอร์และโครงสร้างของระบบปฏิบัติการ (บทที่ 2)

อินเตอร์รัพท์เวคเตอร์และกลไกการอินเตอร์รัพท์
       อินเตอร์รัพท์เวคเตอร์ มีบทบาท ในการ กระโดด ไปยัง ตำแหน่งใหม่ เมื่อ ซีพียูได้รับ สัญญาณ อินเตอร์รัพท์ ดังนี้ คือ เมื่อซีพียู ได้รับ สัญญาณ อินเตอร์รัพท์ ซีพียู จะตอบรับ และกระโดด ไปทำ ยังตำแหน่งที่ บอก อินเตอร์รัพท์เวคเตอร์ มาจากไหน โดยหลักง่ายๆ สัญญาณ อินเตอร์รัพท์ เป็นสัญญาณเกิด จาก วงจรภายนอก ซีพียู ดังนั้น วงจรภายนอก ที่เป็นตัวกำเนิด สัญญาณ INT นี้ ต้องเป็นผู้ บอกให้ซีพียู รู้ว่า จะต้อง ไปทำคำสั่ง ที่ไหน นั่นคือ วงจรภายนอก จะต้องเป็นผู้ ให้อินเตอร์รัพท์ เวคเตอร์ ซึ่งเป็น ตัวเลข ไบนารี แก่ซีพียู ในเวลา ที่ซีพียู ตอบรับรู้ สัญญาณ นั่นเอง เราอาจ เรียกง่ายๆ ว่า ขบวนการ Interrupt acknowledge คือ การตอบรับรู้ วงจรภายนอก ที่กำเนิดสัญญาณ อินเตอร์รัพท์นั้น และ ขอรับ อินเตอร์รัพท์ เวคเตอร์ จากวงจร ภายนอก นั่นเอง
สรุปขบวนการอินเตอร์รัพท์
การเชื่อมต่อของอินเตอร์รัพท์
 ขั้นตอนการเกิดและตอบรับอินเตอร์รัพท์โดยทั่วไปจะเป็นดังนี้
    1. วงจรภายนอกส่งสัญญาณ INT มายังซีพียู
    2. ถ้าซีพียูทำคำสั่ง enable interrupt มาแล้ว ซีพียู จะตอบรับ ด้วย interrupt acknowledge cycle
    3. วงจรภายนอกส่ง อินเตอร์รัพท์เวคเตอร์ ให้ซีพียู
    4. ซีพียู เอา อินเตอร์รัพท์เวคเตอร์ นั้นมาเ ป็นตัวชี้ตำแหน่ง ของ คำสั่งใหม่ ที่จะต้องไปทำ (ก่อนกระโดดไป ซีพียู ตัองเก็บ สถานะของตัวเอง ขณะนั้นไว้)
    5. กระโดดไปทำยังตำแหน่งนั้น
    6. ตอนจบ ของ โปรแกรม interrupt service routine จะต้อง มีคำสั่ง ให้ซีพียู เรียก สถานะที่เก็บไว้ กลับมา แล้ว กระโดด กลับมายัง ตำแหน่งเดิม ก่อนหน้าจะถูก อินเตอร์รัพท์ (กลไก การเก็บสถานะเดิม ก่อน อินเตอร์รัพท์ และ กลไก การกลับมา สู่โปรแกรมเดิม จะขึ้นกับ รายละเอียด ของซีพียู แต่ละตัว)
DMA (Direct Memory Access) คืออะไร?
       ในระบบคอมพิวเตอร์นั้น เวลาในการทำงานของ CPU เป็นสิ่งที่มีค่ามาก ดังนั้นนอกจากต้องพยายามให้ CPU มีงานทำอย่างเต็มที่ตลอดเวลาแล้ว  ยังต้องจัดสรรงานที่มีความสำคัญและต้องการ การคำนวณที่ซับซ้อนให้ CPU ทำงาน มากกว่าที่จะนำงานง่าย ๆ ที่ไม่ซับซ้อนไปให้ CPU ทำ เช่นเมื่อต้องเลือกระหว่างงานคำนวณเงินเดือนของพนักงานบริษัทกับงาน write ข้อมูลของพนักงานไปเก็บไว้ใน แผ่น CD แล้ว งานคำนวณเงินเดือนย่อมมีความสำคัญและควรที่จะจัดสรรให้ CPU ทำงานมากกว่างาน write แผ่น CD เหมือนกับไม่ควรเอาผู้จัดการบริษัทไปขนสินค้าในโรงงาน
สำหรับอุปกรณ์เก็บข้อมูลขนาดใหญ่เช่น hard disk การเอาเวลาในการทำงานของ CPU เพื่อไปใช้ในการควบคุมการและทำหน้าที่รับส่งข้อมูลระหว่าง hard disk กับ memory ตลอดเวลานั้น จึงเป็นเรื่องที่ไม่คุ้มค่าและสิ้นเปลืองเวลาในการทำงานของ CPU เพื่อไม่ให้ CPU ซึ่งแสนจะฉลาดปราดเปรื่องต้องมารับภาระงานง่าย ๆ ที่ไม่คู่ควรกับความฉลาดของ CPU เช่นนี้  ในเครื่องคอมพิวเตอร์จึงมีการออกแบบ  processor ที่มีหน้าที่ทำงานที่ไม่ซับซ้อนเฉพาะเรื่อง (special-purpose processor) เรียกว่า DMA (direct-memory-access) controller โดยการทำงานของ DMA มีกระบวนการทำงานดังรูปข้างล่าง
 
การรับถ่ายโอนข้อมูลระหว่างอุปกรณ์จัดเก็บข้อมูลและหน่วนความจำ
       1. CPU จะนำชุดของคำสั่งที่เกี่ยวกับการอ่านและเขียนข้อมูลไป write ลงใน main memory ก่อน ซึ่งในคำสั่งดังกล่าวจะระบุตำแหน่งของ source หรือต้นทางของข้อมูลและ destination หรือปลายทางที่จะนำข้อมูลไปจัดเก็บ และจำนวน bytes ของข้อมูลทั้งหมดที่จะทำการโอนถ่ายระหว่างกัน  หลังจาก write คำสั่งเสร็จแล้ว (เหมือนผู้จัดการโยนงานให้ลูกน้องทำ) CPU ก็จะไปทำงานอื่นต่อ ปล่อยให้ DMA มารับช่วงทำงานแทน
       2. DMA จะเข้ามารับช่วงงานต่อจาก CPU โดยการเข้าไปอ่านคำสั่งใน memory แล้วทำการติดต่อกับ device controller ที่ต้องการรับส่งข้อมูลด้วย จากนั้นจึงทำการโอนถ่ายข้อมูลระหว่างอุปกรณ์และหน่วยความจำ (ดูรูป) ตามตำแหน่งและจำนวนที่ระบุไว้ในคำสั่งนั้น โดยที่ CPU ไม่ต้องมาช่วยเหลือในการทำงานส่วนนี้เลย (CPU เอาเวลาไปทำงานอื่นที่สำคัญกว่า)
       3. เมื่อ DMA ทำการโอนถ่ายข้อมูลระหว่างอุปกรณ์และหน่วยความจำเสร็จสิ้นแล้ว ก็จะทำการแจ้งให้ CPU ทราบ โดยการ interrupt ไปที่ CPU (ดูรูป) เพื่อรายงานว่าทำงานตามที่ได้รับมอบหมายเสร็จแล้ว เป็นอันสิ้นสุดกระบวนการทำงานของ DMA
ลำดับชั้นของหน่วยความจำ (Memory Hierarchy)
       หน่วยความจำมีอยู่หลายชนิดด้วยกัน  แต่ละชนิดต่างก็มีอัตราความเร็วที่แตกต่างกันรวมทั้งขนาดความจุและราคาที่แตกต่างกัน  สาเหตุที่เป็นเช่นนั้นก็เพราะว่า เพื่อให้เราเลือกหน่วยความจำใช้งานได้อย่างเหมาะสมนั้นเอง
       จากรูปที่ 1 หน่วยความจำลำดับบนสุดเป็นหน่วยความจำที่มีความเร็วสูง และลดหลั่นลงมาเรื่อย ๆ ก็จะมีความเร็วทที่มีขนาดใหญ่ขึ้น  ในทำนองเดียวกกัน หน่วยความจำที่มีขนาดใหญ่นั้นจะมีต้นทุนหรือราคาต่ำกว่าหน่วยความจำที่มีขนาดเล็ก
รูปที่ 1. ลำดับชั้นหน่วยความจำ (Memory Hierarchy) 
 
       จะเห็นว่าน่วยความจำยิ่งมีขนาดความจุสูงเท่าไร  จะมีการแอคเซสข้อมูลที่ช้า  และมีราคาถูก  เช่น  เทป ฮาร์ดดิสก์ ในขณะที่หน่วยความจำที่ยิ่งมีขนาดเล็กเท่าไรย่อมมีความเร็วสูง  เช่น  รีจิสเตอร์  หน่วยความจำแคช หน่วยความจำหลักแต่นั่นหมายถึงราคาหรือต้นทุนที่ต้องเพิ่มสูงด้วย
หน่วยความจำแบบลบเลือนได้ (volatile memory) 
       เป็นหน่วยความจำที่ต้องใช้กระแสไฟฟ้าหล่อเลี้ยงเพื่อเก็บข้อมูล หากเกิดไฟฟ้าดับ ข้อมูลและโปรแกรมคำสั่งจะสูญหายไป หน่วยความจำชนิดนี้ เช่น แรม
แรม (Random Access Memory : RAM) สามารถแบ่งออกเป็น 2 ประเภท คือ
         1. สแตติกแรม หรือเอสแรม (Static RAM : SRAM) มักพบในตัวซีพียูทำหน้าที่เป็นหน่วยความจำภายในซีพียูที่เรียกว่าหน่วยความ จำแคช ซึ่งจะมีความเร็วสูงกว่าไดนามิกแรม
         2. ไดนามิกแรม หรือ ดีแรม (Dynamic RAM : DRAM) เป็นหน่วยความจำที่ใช้ในการจดจำข้อมูลและโปรแกรมต่างๆ ที่อยู่ระหว่างการประมวลผลของคอมพิวเตอร์ เป็นหน่วยความจำที่มีอยู่ในเครื่องคอมพิวเตอร์ส่วนบุคคล หรือพีซีมากที่สุด เนื่องจากราคาไม่แพงและมีความจุสูง
หน่วยความจำเข้าถึงโดยสุ่มแบบจำข้อมูลถาวร (Non-volatile)
       คือ หน่วยความจำเข้าถึงข้อมูลโดยสุ่มที่ยังสามารถเก็บข้อมูลอยู่แม้จะไม่มีไฟฟ้าหล่อเลี้ยง (หรือ หน่วยความจำถาวร) โดยทั่วไปเรามักจะคุ้นกับคำว่า แรม หรือ ดีแรม (DRAM) ที่ใช้เป็นหน่วยความจำหลักในเครื่องคอมพิวเตอร์ แต่แรมเหล่านี้จะลืมข้อมูลเมื่อไฟฟ้าดับ










แห่ลงที่มา
1.https://www.cpe.ku.ac.th/~yuen/204323/int_dma/int-core.html สืบค้นเมื่อ 8/12/2559
2.https://msit5.wordpress.com/2013/09/07/dma-direct-memory-access-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/ สืบค้นเมื่อ 8/12/2559
3.https://sites.google.com/site/rabbpdibatikar2/ladab-chan-khxng-hnwy-khwam-ca-memory-hierarchy สืบค้นเมื่อ 8/12/2559
4.https://benjarat25b.wordpress.com/2013/02/14/3-2-2-%E0%B8%AB%E0%B8%99%E0%B9%88%E0%B8%A7%E0%B8%A2%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B8%88%E0%B8%B3-%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%88%E0%B8%B1%E0%B8%94%E0%B9%80/ สืบค้นเมื่อ 8/12/2559
5.https://th.wikipedia.org/wiki/%E0%B8%AB%E0%B8%99%E0%B9%88%E0%B8%A7%E0%B8%A2%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B8%88%E0%B8%B3%E0%B9%80%E0%B8%82%E0%B9%89%E0%B8%B2%E0%B8%96%E0%B8%B6%E0%B8%87%E0%B9%82%E0%B8%94%E0%B8%A2%E0%B8%AA%E0%B8%B8%E0%B9%88%E0%B8%A1%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B8%88%E0%B8%B3%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5%E0%B8%96%E0%B8%B2%E0%B8%A7%E0%B8%A3
สืบค้นเมื่อ 8/12/2559

ไม่มีความคิดเห็น:

แสดงความคิดเห็น