ระบบจัดเก็บข้อมูลและระบบ I/O
ระบบจัดเก็บข้อมูลและระบบ I/O เชื่อมต่อโปรเซสเซอร์และหน่วยความจำเข้ากับโลกภายนอกและข้อมูลถาวร ครอบคลุมถึงบัสและอินเตอร์คอนเนคต์, ดิสก์และแฟลชสตอเรจ, การสำรองข้อมูลเพื่อความน่าเชื่อถือ, และกลไกที่เคลื่อนย้ายข้อมูลระหว่างอุปกรณ์และหน่วยความจำได้อย่างมีประสิทธิภาพ
Definition
ระบบจัดเก็บข้อมูลและระบบ I/O คือกลไกฮาร์ดแวร์และสถาปัตยกรรมที่คอมพิวเตอร์ใช้ในการถ่ายโอนข้อมูลไปยังและจากอุปกรณ์ต่อพ่วง และจัดเก็บข้อมูลอย่างถาวร รวมถึงอินเตอร์คอนเนคต์, คอนโทรลเลอร์, สื่อจัดเก็บข้อมูล, และเทคนิคความน่าเชื่อถือและการจำลองเสมือนที่เกี่ยวข้อง
Scope
ขอบเขตนี้ครอบคลุมถึงวิธีการที่คอมพิวเตอร์สื่อสารกับอุปกรณ์ต่อพ่วงและจัดเก็บข้อมูลอย่างถาวร: สถาปัตยกรรม I/O และบัส, การถ่ายโอนข้อมูลที่ขับเคลื่อนด้วยอินเตอร์รัปต์และ DMA, อุปกรณ์จัดเก็บข้อมูลสำรอง (ฮาร์ดดิสก์แบบแม่เหล็กและโซลิดสเตทไดรฟ์), ความน่าเชื่อถือของการจัดเก็บข้อมูลผ่านการสำรองข้อมูล เช่น RAID, และการจำลองเสมือน I/O (I/O virtualization) โดยจะกล่าวถึงกลไกฮาร์ดแวร์และสถาปัตยกรรมของการรับเข้า/ส่งออกและการจัดเก็บข้อมูลอย่างถาวร ไม่รวมถึงนามธรรมซอฟต์แวร์ระบบไฟล์ (ระบบปฏิบัติการ) และแคชบนชิปและหน่วยความจำหลัก (ลำดับชั้นหน่วยความจำและแคช) แม้ว่าจะทำงานร่วมกันอย่างใกล้ชิดก็ตาม
Sub-topics
Core questions
- อุปกรณ์เชื่อมต่อกับโปรเซสเซอร์และหน่วยความจำผ่านบัสและอินเตอร์คอนเนคต์ได้อย่างไร?
- ข้อมูลถูกถ่ายโอนอย่างมีประสิทธิภาพโดยใช้อินเตอร์รัปต์และการเข้าถึงหน่วยความจำโดยตรง แทนที่จะเป็นการตรวจสอบสถานะอย่างต่อเนื่อง (busy polling) ได้อย่างไร?
- ลักษณะประสิทธิภาพและความน่าเชื่อถือของการจัดเก็บข้อมูลแบบแม่เหล็กและโซลิดสเตทเป็นอย่างไร?
- การสำรองข้อมูล เช่น RAID แลกเปลี่ยนความจุกับความน่าเชื่อถือและประสิทธิภาพได้อย่างไร?
- I/O ถูกจำลองเสมือนและแบ่งปันอย่างปลอดภัยระหว่างเครื่องเสมือนและกระบวนการต่างๆ ได้อย่างไร?
Key concepts
- บัส I/O และอินเตอร์คอนเนคต์
- I/O ที่ขับเคลื่อนด้วยอินเตอร์รัปต์
- การเข้าถึงหน่วยความจำโดยตรง (DMA)
- ดิสก์แม่เหล็กและ SSD
- คอนโทรลเลอร์อุปกรณ์
- RAID และการสำรองข้อมูล
- ความน่าเชื่อถือของการจัดเก็บข้อมูลและ MTTF
- การจำลองเสมือน I/O
- ปริมาณงานและความหน่วง
- I/O ที่แมปกับหน่วยความจำ
Key theories
- อาร์เรย์สำรองของดิสก์ราคาไม่แพง (RAID)
- การรวมดิสก์เชิงพาณิชย์จำนวนมากเข้ากับการแบ่งส่วนข้อมูล (data striping) และพาริตี (parity) หรือการทำมิเรอร์ (mirroring) ทำให้ได้พื้นที่จัดเก็บข้อมูลที่มีขนาดใหญ่ขึ้น เร็วขึ้น และน่าเชื่อถือกว่าดิสก์เดี่ยว; ระดับ RAID ได้กำหนดการแลกเปลี่ยนระหว่างความจุ ประสิทธิภาพ และความทนทานต่อความผิดพลาดอย่างเป็นทางการ
- การถ่ายโอน I/O แบบแยกส่วน
- การเข้าถึงหน่วยความจำโดยตรงและ I/O ที่ขับเคลื่อนด้วยอินเตอร์รัปต์ช่วยให้อุปกรณ์สามารถถ่ายโอนข้อมูลไปยังและจากหน่วยความจำได้โดยไม่ต้องให้โปรเซสเซอร์เข้ามาเกี่ยวข้องอย่างต่อเนื่อง ทำให้ I/O ซ้อนทับกับการประมวลผลและปรับปรุงปริมาณงานของระบบโดยรวม
Mechanisms
อุปกรณ์ต่อพ่วงเชื่อมต่อกับระบบผ่านบัสและคอนโทรลเลอร์ และส่งสัญญาณไปยังโปรเซสเซอร์ด้วยอินเตอร์รัปต์ ข้อมูลจำนวนมากจะถูกย้ายโดยการเข้าถึงหน่วยความจำโดยตรง (direct memory access) ซึ่งถ่ายโอนบล็อกระหว่างอุปกรณ์และหน่วยความจำโดยไม่ต้องให้โปรเซสเซอร์เข้ามาเกี่ยวข้องกับแต่ละคำ อุปกรณ์จัดเก็บข้อมูลสำรองจะจัดเก็บข้อมูลอย่างถาวรบนดิสก์แม่เหล็กหรือแฟลช และอาร์เรย์ของอุปกรณ์จะใช้การแบ่งส่วนข้อมูล (striping), การทำมิเรอร์ (mirroring), และพาริตี (parity) (RAID) เพื่อปรับปรุงประสิทธิภาพและทนทานต่อความล้มเหลว เลเยอร์การจำลองเสมือนจะแบ่งใช้อุปกรณ์เหล่านี้ระหว่างผู้ใช้งานเสมือน
Clinical relevance
ระบบจัดเก็บข้อมูลและระบบ I/O มักจะเป็นตัวกำหนดประสิทธิภาพและความทนทานของระบบโดยรวม: ฐานข้อมูล, ไฟล์เซิร์ฟเวอร์, และแอปพลิเคชันที่เน้นข้อมูล มักจะถูกจำกัดด้วยปริมาณงานและความหน่วงของการจัดเก็บข้อมูลมากกว่าการประมวลผล RAID และแผนการสำรองข้อมูลที่เกี่ยวข้องช่วยป้องกันความล้มเหลวของอุปกรณ์ในศูนย์ข้อมูล และการจำลองเสมือน I/O ที่มีประสิทธิภาพเป็นสิ่งสำคัญสำหรับการประมวลผลแบบคลาวด์ที่ผู้เช่าหลายรายใช้ฮาร์ดแวร์ทางกายภาพร่วมกัน
History
เครื่องจักรยุคแรกใช้ I/O ที่ตั้งโปรแกรมไว้และช่องทางเฉพาะ; I/O ที่ขับเคลื่อนด้วยอินเตอร์รัปต์และการเข้าถึงหน่วยความจำโดยตรงเกิดขึ้นเพื่อซ้อนทับ I/O กับการประมวลผล ดิสก์แม่เหล็กครองการจัดเก็บข้อมูลสำรองมานานหลายทศวรรษ และข้อเสนอ RAID ในปี 1988 โดย Patterson, Gibson, และ Katz ได้กำหนดให้การสำรองข้อมูลเป็นเทคนิคความน่าเชื่อถือมาตรฐาน โซลิดสเตทไดรฟ์ที่ใช้แฟลชได้ปรับเปลี่ยนลำดับชั้นการจัดเก็บข้อมูลในภายหลัง และการจำลองเสมือน I/O ก็มีความสำคัญมากขึ้นกับการเติบโตของการประมวลผลแบบคลาวด์
Debates
- การจัดเก็บข้อมูลแบบแยกส่วนเทียบกับการจัดเก็บข้อมูลภายในเครื่อง
- มีการถกเถียงกันอย่างต่อเนื่องว่าการจัดเก็บข้อมูลควรจะเชื่อมต่อกับคอมพิวเตอร์ภายในเครื่องหรือแยกส่วนผ่านเครือข่ายความเร็วสูง; การแยกส่วนช่วยปรับปรุงการใช้งานและความยืดหยุ่นในศูนย์ข้อมูล แต่เพิ่มความหน่วงและขึ้นอยู่กับอินเตอร์คอนเนคต์ประสิทธิภาพสูง
Key figures
- David A. Patterson
- Garth Gibson
- Randy H. Katz
- John L. Hennessy
Related topics
Seminal works
- hennessy2019
- patterson1988raid
- silberschatz2018
Frequently asked questions
- การเข้าถึงหน่วยความจำโดยตรงคืออะไร และมีประโยชน์อย่างไร?
- การเข้าถึงหน่วยความจำโดยตรง (DMA) ช่วยให้อุปกรณ์สามารถถ่ายโอนบล็อกข้อมูลไปยังหรือจากหน่วยความจำหลักได้โดยที่โปรเซสเซอร์ไม่ต้องคัดลอกแต่ละคำ สิ่งนี้ช่วยให้โปรเซสเซอร์สามารถทำงานอื่นได้ในระหว่างการถ่ายโอน ทำให้ I/O ซ้อนทับกับการประมวลผลและปรับปรุงปริมาณงานสำหรับการเคลื่อนย้ายข้อมูลจำนวนมากได้อย่างมาก
- RAID รับประกันว่าข้อมูลของฉันปลอดภัยหรือไม่?
- ไม่ RAID ช่วยปรับปรุงความพร้อมใช้งานและทนทานต่อความล้มเหลวของอุปกรณ์บางอย่างโดยการจัดเก็บข้อมูลสำรอง แต่ไม่ใช่การสำรองข้อมูล: ไม่ได้ป้องกันการลบโดยไม่ตั้งใจ, ความเสียหาย, ความล้มเหลวของอุปกรณ์หลายตัวเกินกว่าที่ยอมรับได้, หรือภัยพิบัติระดับไซต์ ดังนั้นการสำรองข้อมูลแยกต่างหากจึงยังคงจำเป็น