กลับไปหน้าบทความ

อ่าน 3 นาที

การจัดคิวคำสั่งที่ติดแท็ก

Tagged Command Queuing ( TCQ ) เป็น เทคโนโลยี ที่สร้างขึ้นในฮาร์ดไดรฟ์ ATA และ SCSI บางรุ่น [ 1 ] เทคโนโลยีนี้ช่วยให้ ระบบปฏิบัติการ สามารถส่งคำขออ่านและเขียนหลายรายการไปยัง...

การจัดคิวคำสั่งที่ติดแท็ก

Tagged Command Queuing ( TCQ ) เป็นเทคโนโลยีที่สร้างขึ้นในฮาร์ดไดรฟ์ATAและSCSI บางรุ่น [ 1 ] เทคโนโลยีนี้ช่วยให้ ระบบปฏิบัติการสามารถส่งคำขออ่านและเขียนหลายรายการไปยังฮาร์ดไดรฟ์ได้ ATA TCQ ไม่ได้มีฟังก์ชันการทำงานเหมือนกับNative Command Queuing (NCQ) ที่มีประสิทธิภาพมากกว่าซึ่งใช้โดยไดรฟ์SATA [ 2 ] SCSI TCQ ไม่มีข้อจำกัดเช่นเดียวกับ ATA TCQ

หากไม่มี TCQ ระบบปฏิบัติการจะส่งคำขอได้ครั้งละหนึ่งคำขอเท่านั้น เพื่อเพิ่มประสิทธิภาพ ระบบปฏิบัติการต้องกำหนดลำดับของคำขอโดยอาศัยมุมมองของตนเอง ซึ่งอาจไม่ถูกต้อง เกี่ยวกับกิจกรรมของฮาร์ดไดรฟ์ (หรือที่เรียกว่าการจัดตาราง I/O ) แต่ด้วย TCQ ไดรฟ์สามารถตัดสินใจเองได้ว่าจะจัดลำดับคำขออย่างไร (และในทางกลับกันก็ช่วยลดภาระของระบบปฏิบัติการในการตัดสินใจ) ดังนั้น TCQ จึงสามารถปรับปรุงประสิทธิภาพโดยรวมของฮาร์ดไดรฟ์ได้หากนำไปใช้งานอย่างถูกต้อง

ภาพรวม

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

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

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

การเปรียบเทียบ SCSI TCQ, ATA TCQ และ SATA NCQ

SCSI TCQ

SCSI TCQ เป็นเวอร์ชันแรกของ TCQ ที่ได้รับความนิยมและยังคงได้รับความนิยมในปัจจุบัน โดยอนุญาตให้ป้อนงานลงในคิวโดยใช้โหมดที่แตกต่างกันสามโหมด: [ 3 ]

  • หัวหน้าคิว
  • สั่งซื้อ
  • เรียบง่าย

ในโหมดหัวคิวซึ่งเป็นเอกลักษณ์เฉพาะของ SCSI TCQ งานจะถูกผลักเข้าไปอยู่ด้านหน้าของคิว นำหน้างานอื่นๆ ทั้งหมด รวมถึงงานหัวคิวที่รออยู่อื่นๆ ด้วย[ 2 ] [ 3 ] [ 4 ]โหมดนี้ไม่ค่อยได้ใช้มากนัก เพราะอาจทำให้เกิดปัญหาการขาดแคลนทรัพยากรหากนำไปใช้ในทางที่ผิด

ในโหมดเรียงลำดับงานจะต้องดำเนินการหลังจากงานเก่าทั้งหมดเสร็จสิ้นและก่อนที่งานใหม่ทั้งหมดจะเริ่มดำเนินการ (ไม่รวมงานใหม่ที่อยู่หัวคิว ) [ 3 ]

โหมดง่ายอนุญาตให้ดำเนินการงานตามลำดับใดก็ได้ที่ไม่ละเมิดข้อจำกัดของงานในอีกสองโหมด[ 3 ]หลังจากคำสั่งในงานเสร็จสมบูรณ์ อุปกรณ์ที่ดำเนินการคำสั่งเสร็จสมบูรณ์จะส่งการแจ้งเตือนไปยังอะแดปเตอร์บัสโฮสต์[ 3 ]

ไม่ว่า SCSI TCQ จะทำให้เกิดโอเวอร์เฮดการขัดจังหวะจำนวนมากหรือไม่นั้นขึ้นอยู่กับบัสที่ใช้เชื่อมต่ออะแดปเตอร์บัสโฮสต์ SCSI บนPCI แบบดั้งเดิม , PCI-X , PCI Expressและบัสอื่นๆ ที่อนุญาตDMA ของฝ่ายแรก จะช่วยลดโอเวอร์เฮดการขัดจังหวะได้ บัส ISA รุ่นเก่าต้องการอะแดปเตอร์โฮสต์ SCSI เพื่อสร้างการขัดจังหวะเพื่อให้ CPU ตั้งโปรแกรมเอ็นจิ้น DMA ของบุคคลที่สามเพื่อทำการถ่ายโอน จากนั้นต้องการการขัดจังหวะอีกครั้งเพื่อแจ้งให้ CPU ทราบว่างานในคิวเสร็จสิ้นแล้ว[ 2 ]ทำให้เกิดโอเวอร์เฮด CPU สูง

ความยาวแท็ก SCSI TCQ

โปรโตคอล SCSI-3 อนุญาตให้ใช้ 64 บิตในฟิลด์แท็ก ทำให้สามารถออกคำสั่งได้สูงสุด 2 64งานในชุดงานเดียว ก่อนที่จะต้องรอให้งานบางส่วนเสร็จสมบูรณ์ก่อนจึงจะสามารถออกคำสั่งเพิ่มเติมได้[ 3 ]อย่างไรก็ตาม โปรโตคอลต่างๆ ที่ใช้โปรโตคอล SCSI อาจไม่อนุญาตให้ใช้ 64 บิตทั้งหมด ตัวอย่างเช่น SCSI แบบขนานรุ่นเก่าอนุญาตให้ใช้แท็ก 8 บิต, SASอนุญาตให้ใช้แท็ก 9 บิต, iSCSIอนุญาตให้ใช้แท็กได้สูงสุด 32 บิต และFibre Channelอนุญาตให้ใช้แท็กได้สูงสุด 16 บิต โดยสงวนแท็ก0xFFFFไว้ ความยืดหยุ่นนี้ทำให้นักออกแบบโปรโตคอลสามารถแลกเปลี่ยนความสามารถในการจัดคิวกับต้นทุนได้ เครือข่ายขนาดใหญ่ เช่น เครือข่าย iSCSI จะได้รับประโยชน์จากการใช้บิตแท็กจำนวนมากขึ้น เพื่อรองรับจำนวนดิสก์ที่มากขึ้นในเครือข่าย และความหน่วงแฝงที่มากขึ้นซึ่งเกิดจากเครือข่ายขนาดใหญ่ดังกล่าว ในขณะที่เครือข่ายขนาดเล็ก เช่น เครือข่าย SCSI แบบขนาน ไม่มีดิสก์หรือความหน่วงแฝงมากพอที่จะต้องการบิตแท็กจำนวนมาก และสามารถประหยัดค่าใช้จ่ายได้โดยใช้ระบบที่รองรับบิตน้อยกว่า

ATA TCQ

ATA TCQ ถูกพัฒนาขึ้นโดยมีจุดประสงค์เพื่อนำข้อดีเช่นเดียวกับ SCSI มาใช้กับไดรฟ์ ATA โดยมีให้เลือกทั้งแบบ Parallel ATA และ Serial ATA

ความพยายามนี้ไม่ประสบความสำเร็จมากนัก เนื่องจากบัส ATA เริ่มต้นจากการเป็นบัส ISA ที่มีจำนวนพินลดลง ข้อกำหนดด้านความเข้ากันได้ของซอฟต์แวร์ทำให้อะแดปเตอร์บัสโฮสต์ ATA ทำงานเหมือนอุปกรณ์บัส ISA ที่ไม่มีDMA ของฝ่ายแรกเมื่อไดรฟ์พร้อมสำหรับการถ่ายโอน จะต้องขัดจังหวะ CPU รอให้ CPU ถามดิสก์ว่าคำสั่งใดพร้อมที่จะดำเนินการ ตอบกลับด้วยคำสั่งที่พร้อมดำเนินการ รอให้ CPU ตั้งโปรแกรมเอ็น จิ้น DMA ของบุคคลที่สาม ของอะแดปเตอร์บัสโฮสต์ ตามผลลัพธ์ของคำสั่งนั้น รอให้เอ็นจิ้น DMA ของบุคคลที่สามดำเนินการคำสั่ง จากนั้นต้องขัดจังหวะ CPU อีกครั้งเพื่อแจ้งให้ทราบเมื่อเอ็นจิ้น DMA ทำงานเสร็จสิ้น เพื่อให้ CPU สามารถแจ้งเธรดที่ร้องของานว่างานที่ร้องขอเสร็จสิ้นแล้ว[ 2 ]เนื่องจากการตอบสนองต่อการขัดจังหวะใช้เวลา CPUการใช้งาน CPU จึงเพิ่มขึ้นอย่างรวดเร็วเมื่อเปิดใช้งาน ATA TCQ [ 2 ]นอกจากนี้ เนื่องจากเวลาในการให้บริการการขัดจังหวะอาจคาดเดาไม่ได้ บางครั้งดิสก์พร้อมที่จะถ่ายโอนข้อมูลแต่ไม่สามารถทำได้เพราะต้องรอให้ CPU ตอบสนองต่อการขัดจังหวะเพื่อให้ CPU รู้ว่าจำเป็นต้องตั้งโปรแกรมเอ็นจิ้น DMA ของบุคคลที่สาม[ 2 ]

ดังนั้น มาตรฐานนี้จึงไม่ค่อยถูกนำไปใช้ เนื่องจากทำให้ CPU มีการใช้งานสูงโดยไม่ปรับปรุงประสิทธิภาพให้คุ้มค่า[ 2 ] มาตรฐานนี้อนุญาตให้มีคำสั่งค้างอยู่ได้สูงสุด 32 คำสั่งต่ออุปกรณ์[ 4 ]

สาต้า เอ็นซีคิว

SATA NCQเป็นมาตรฐานสมัยใหม่ที่ช่วยลดจำนวนการขัดจังหวะ CPU ที่จำเป็นลงอย่างมากเมื่อเทียบกับ ATA TCQ เช่นเดียวกับ ATA TCQ โดยอนุญาตให้มีคำสั่งค้างอยู่ได้สูงสุด 32 คำสั่งต่ออุปกรณ์[ 2 ]แต่ได้รับการออกแบบมาเพื่อใช้ประโยชน์จากความสามารถของอะแดปเตอร์บัสโฮสต์ SATA ที่ไม่ได้จำลองพฤติกรรม ATA แบบขนานเพื่อรองรับ DMA ของผู้ผลิตรายแรก[ 2 ]แทนที่จะขัดจังหวะ CPU ก่อนงานเพื่อบังคับให้โปรแกรมเอ็นจิ้น DMA ของอะแดปเตอร์บัสโฮสต์ ฮาร์ดไดรฟ์จะบอกอะแดปเตอร์บัสโฮสต์ว่าต้องการเรียกใช้คำสั่งใด ทำให้อะแดปเตอร์บัสโฮสต์โปรแกรมเอ็นจิ้น DMA ของผู้ผลิตรายแรกในตัวด้วยพารามิเตอร์ที่รวมอยู่ในคำสั่งที่เลือกโดยฮาร์ดไดรฟ์เมื่อมีการออกคำสั่งครั้งแรก จากนั้นเอ็นจิ้น DMA จะย้ายข้อมูลที่จำเป็นในการเรียกใช้คำสั่ง[ 2 ]

เพื่อลดภาระการขัดจังหวะเพิ่มเติม ไดรฟ์สามารถระงับการขัดจังหวะด้วยข้อความงานเสร็จสมบูรณ์จนกว่าจะรวบรวมข้อความเหล่านั้นจำนวนมากเพื่อส่งในคราวเดียว ทำให้ระบบปฏิบัติการสามารถแจ้งให้เธรดจำนวนมากทราบพร้อมกันว่างานของพวกเขาเสร็จสมบูรณ์แล้ว[ 2 ]หากมีงานอื่นเสร็จสมบูรณ์หลังจากส่งการขัดจังหวะดังกล่าว อะแดปเตอร์บัสโฮสต์สามารถรวมข้อความเสร็จสมบูรณ์เข้าด้วยกันได้ หากชุดข้อความเสร็จสมบูรณ์ชุดแรกยังไม่ได้ส่งไปยัง CPU [ 2 ] วิธีนี้ช่วยให้การออกแบบ เฟิร์มแวร์ฮาร์ดดิสก์สามารถแลกเปลี่ยนประสิทธิภาพของดิสก์กับการใช้ CPU โดยการพิจารณาว่าจะระงับและส่งข้อความเสร็จสมบูรณ์เมื่อใด[ 2 ]

  • การจัดคิวคำสั่ง (Command Queuing) สามารถเพิ่มประสิทธิภาพ SATA ได้หรือไม่?โดย แพทริค ชมิด และ อาคิม รูส จาก Tom's Hardware Guide
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Tagged_Command_Queuing&oldid=1335957214 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การจัดคิวคำสั่งที่ติดแท็ก

Tagged Command Queuing ( TCQ ) เป็น เทคโนโลยี ที่สร้างขึ้นในฮาร์ดไดรฟ์ ATA และ SCSI บางรุ่น [ 1 ] เทคโนโลยีนี้ช่วยให้ ระบบปฏิบัติการ สามารถส่งคำขออ่านและเขียนหลายรายการไปยัง...

ภาพรวม

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

SCSI TCQ

SCSI TCQ เป็นเวอร์ชันแรกของ TCQ ที่ได้รับความนิยมและยังคงได้รับความนิยมในปัจจุบัน โดยอนุญาตให้ป้อนงานลงในคิวโดยใช้โหมดที่แตกต่างกันสามโหมด: [ 3 ]

ความยาวแท็ก SCSI TCQ

โปรโตคอล SCSI-3 อนุญาตให้ใช้ 64 บิตในฟิลด์แท็ก ทำให้สามารถออกคำสั่งได้สูงสุด 2 64 งานในชุดงานเดียว ก่อนที่จะต้องรอให้งานบางส่วนเสร็จสมบูรณ์ก่อนจึงจะสามารถออกคำสั่งเพิ่มเติมได้ [ 3 ] อย่างไรก็ตาม โปรโตคอลต่างๆ ที่ใช้โปรโตคอล SCSI อาจไม่อนุญาตให้ใช้ 64...