การคำนวณเวลาอ่านรูปแบบบล็อกของฮาร์ดดิสก์


8

อาจารย์ของฉันโพสต์สไลด์เกี่ยวกับวิธีคำนวณการดึงข้อมูลจากฮาร์ดดิสก์โดยใช้รูปแบบบล็อก รายละเอียดคือ:

  • 7200 รอบต่อนาที
  • แสวงหา 5ms
  • อัตราการถ่ายโอน 80MB / s
  • BLOCK MODEL: ขนาดบล็อก 4KB

ฉันไม่เข้าใจว่าเขาคำนวณต่อไปนี้อย่างไรหรือตัวเลขบางส่วนมาจากไหน:

5ms + 1,000/240 ms + 0.05ms = 9.216ms เพื่ออ่านบล็อก

ใครสามารถบอกฉันได้ว่า 1000/240 ms และ 0.05ms มาจากไหน

แก้ไข:หากตัวเลขที่เกิดขึ้นผิดอย่างสมบูรณ์คุณจะทำเช่นนี้ได้อย่างไร


มีสามองค์ประกอบ เวลาค้นหาเวลาสำหรับข้อมูลที่จะหมุนใต้ส่วนหัวอ่าน (เขาใช้เวลาครึ่งหนึ่งของการหมุนทั้งหมดเป็นค่าเฉลี่ย) และเวลาถ่ายโอน
เดวิดมาร์แชลล์

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

ระวังว่าทุกคนจะเข้าใจจุดที่ดีที่สุดในการค้นหาเวลา เวลาในการค้นหาไม่ใช่ฟังก์ชันเชิงเส้น แต่เป็นเส้นโค้งตามจำนวนกระบอกสูบ การค้นหา (การใช้แอคทูเอเตอร์คอยล์เสียง) ประกอบด้วยเฟสการเร่งความเร็วและเฟสการชะลอความเร็วและเมื่อการค้นหานั้นยาวพอก็คือเฟสที่ความเร็วสูงสุดอยู่ระหว่าง เฉลี่ยขอเวลาจะต้องมีการถ่วงน้ำหนักไปยังบัญชีเพียง 2 ไปได้แบบเต็มรูปแบบจังหวะพยายาม แต่ 2 * (NCYL-1) มีรางเดียวพยายามที่ 2 * (NCYL-2) 2 ติดตามพยายาม ... และ NCYL "พยายาม" ของเวลาศูนย์เมื่อไม่จำเป็นต้องเดินทางหัว
ขี้เลื่อย

คำตอบ:


11

ดิสก์ที่สงสัยมีอัตราการถ่ายโอน 80 MiB / s หรือ 81920 kiB / s หรือ 20480 บล็อก / s ที่นี่เราจะปัดเศษออกเป็น 20,000 บล็อก / วินาทีเนื่องจากนี่เป็นสิ่งที่อาจารย์ของคุณทำ นี่เท่ากับ 0.05 ms เพื่อถ่ายโอนบล็อกอธิบายคำสุดท้ายในสมการ

ในที่สุดนอกเหนือจากการหาเวลา (เวลาในการย้ายหัวไดรฟ์ไปยังแทร็ก) นอกจากนี้ยังมีเวลาแฝงในการหมุนของดิสก์เองเพื่อจัดการกับ ที่ 7200 รอบต่อนาทีในกรณีที่เลวร้ายที่สุดเราต้องรอการปฏิวัติเต็ม 1 ครั้ง แต่โดยเฉลี่ยแล้วเราต้องรอการปฏิวัติครึ่งหนึ่งหรือ 4.166ms (7200 รอบต่อนาที = 120 รอบ / วินาที = 8.333ms / รอบ)

ดังนั้นในการถ่ายโอนหนึ่งบล็อกไปยังคอมพิวเตอร์เราจะต้องรอเครื่องหมายSeek Time+ Rotational Latency+ Transfer Time:

5 ms + 4.166 ms + 0.05 ms = 9.216 ms

โปรดทราบว่าสำหรับไดรฟ์โซลิดสเตตในขณะที่ไม่มีเวลาแฝงในการหมุนที่ต้องคำนึงถึงยังคงมีเวลาค้นหาที่วัดได้ (เพื่อระบุเนื้อหาของภาคส่วนในหน่วยความจำแฟลช) และเวลาถ่ายโอน (ส่วนใหญ่ถูก จำกัด โดยรถบัส กำลังถูกใช้เพื่อถ่ายโอนข้อมูลเองเช่น SATA)

ดังนั้นโดยทั่วไปเวลาเข้าถึงทั้งหมดในการอ่านเซกเตอร์เดียวสำหรับไดรฟ์คือ (ซอฟต์แวร์ที่ไม่สนใจ):

Rotational/Hard Drive:  Seek Time + Rotational Latency + Transfer Time

Solid-State Drive:      Seek Time + Transfer Time

5

5 msขอเวลาเป็นเวลาสำหรับฮาร์ดดิสก์เพื่อย้ายหัวของมันในการติดตามขวา (และเพื่อเลือกหัวขวา, บางสิ่งบางอย่างที่ยังต้องใช้เวลา แต่ที่คุณศ. ละเว้น)


เมื่อหัวอยู่เหนือแทร็กที่ถูกต้องมันจะต้องรอให้เซกเตอร์ที่ถูกต้องผ่านใต้ R / W เราได้รับว่ามันเป็นไดรฟ์ 7200 รอบต่อนาที นั่นหมายความว่า:

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

ในการรับเวลาสำหรับการหมุนไดรฟ์แบบเต็มบนไดรฟ์ 7200 RPM:

  • หมุน 7200 ต่อนาที (หรือ 7200 รอบต่อนาที)
  • หรือ 7200/60 ครั้งต่อวินาที
  • หรือ 120 ครั้งต่อวินาที
  • หรือหมุนเดียวใช้เวลา1 / 120 วันที่สอง
  • ซึ่งคือ 8.3 ms

ดังนั้นครึ่งหมุนควรจะใช้เวลาครึ่งเวลาที่1 / 240 วันที่สอง

1 วินาทีคือ 1,000 ms

นี่คือ1,000 / 240 ms ของคุณ


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

การอ่านจากไดรฟ์มักจะเร็วกว่าการส่งผ่านดังนั้นฉันจะมุ่งเน้นที่ส่วนที่ช้ากว่า:

รับคือ:

1) อัตราการถ่ายโอน 80 MB / s
2) โหมดบล็อก: ขนาดบล็อก 4KB

  • 80 MiB ในหนึ่งวินาทีหรือ 80 * 1024 KiB หนึ่งหนึ่งวินาทีหรือ 4 * 20 * 1024 KiB / วินาที
  • หารด้วย 20480
  • 4 กิโลไบต์ต่อ1 / 20480 THวินาที
  • หรือ 0.488281 มิลลิวินาทีซึ่งเป็นรุ่นล่าสุด 0.05 มิลลิวินาทีของคุณ


โปรดทราบว่าคำตอบนี้ไม่สนใจว่า:

  1. ไดรฟ์จำเป็นต้องอ่านข้อมูลก่อนจึงจะสามารถส่งข้อมูลได้ซึ่งจะทำให้ช้าลงเล็กน้อย
  2. แต่ไม่มีข้อมูลเกี่ยวกับความเร็วในการอ่านข้อมูลจากแผ่นเสียง (ซึ่งเป็นเรื่องของความเร็วการหมุนความยาวของข้อมูลที่จะอ่านความยาวของข้อมูลการตรวจสอบและช่องว่างระหว่างภาค (4KiB สามารถ 8 อ่าน "ส่วนหัว | ข้อมูล | การตรวจสอบ | ช่องว่าง" หรืออ่านเดียว
  3. นอกจากนี้ยังละเว้นว่าข้อมูลอาจมีอยู่ในแคชไดรฟ์แล้ว
  4. และสันนิษฐานว่าการคำนวณผลรวมตรวจสอบนั้นใช้เวลาไม่นาน

นี่อาจเป็นครั้งแรกที่ฉันได้เห็นการกล่าวถึงเวลาในการถ่ายโอนดิสก์ที่ถูกต้องซึ่งทำให้ความแตกต่างระหว่างการอ่านและการถ่ายโอน (อินเตอร์เฟส) ของแผ่นเสียง "checksum" เป็นรหัสแก้ไขข้อผิดพลาด (ECC) ซึ่งสามารถตรวจจับและแก้ไขข้อผิดพลาดสั้น ๆ
ขี้เลื่อย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.