Tính toán thời gian đọc mô hình khối đĩa cứng


8

Giáo sư của tôi đã đăng một slide về cách tính toán truy xuất dữ liệu từ đĩa cứng bằng mô hình khối. Thông số kỹ thuật là:

  • 7200 vòng / phút
  • XEM 5ms
  • LÃI SUẤT CHUYỂN GIAO 80MB / s
  • MÔ HÌNH BLOCK: Kích thước khối 4KB

Tôi không hiểu cách anh ta thực hiện phép tính sau hoặc một số con số đến từ đâu:

5ms + 1000/240 ms + 0,05ms = 9.216ms để đọc khối.

Ai đó có thể cho tôi biết 1000/240 ms và 0,05ms đến từ đâu không?

EDIT: NẾU các con số xảy ra là hoàn toàn sai, làm thế nào bạn sẽ làm điều này sau đó?


Có ba thành phần. Thời gian tìm kiếm, thời gian để dữ liệu xoay dưới đầu đọc (anh ấy lấy một nửa thời gian xoay hoàn toàn là trung bình) và thời gian truyền.
David Marshall

Trên thực tế có một thành phần thứ tư, "thời gian chuyển giao" nằm trong hai hoạt động riêng biệt, không chồng chéo. Đầu tiên là phần đọc từ đĩa tới bộ đệm của ngành. Sau đó, có một chuyển khác từ bộ đệm ngành đến máy chủ lưu trữ trên giao diện ổ đĩa (ví dụ: SATA). Có một quan niệm sai lầm phổ biến rằng hai chuyển khoản này có thể xảy ra đồng thời; họ không thể. Dữ liệu ngành phải được xác nhận sau khi nó được đọc và trước khi nó được gửi đến máy chủ. @Hennes đề cập đến điều này như là một phần của các mục bị bỏ qua.
mùn cưa

Coi chừng rằng những điểm tốt hơn của thời gian tìm kiếm được hầu hết mọi người hiểu kém. Tìm kiếm thời gian không phải là một hàm tuyến tính mà là một đường cong dựa trên số lượng hình trụ. Tìm kiếm (sử dụng bộ truyền động cuộn dây giọng nói) bao gồm pha tăng tốc và pha giảm tốc và khi tìm kiếm đủ dài, một pha có vận tốc tối đa ở giữa. Một trung bình thời gian tìm kiếm phải được trọng vào tài khoản cho chỉ có 2 khả năng toàn đột quỵ tìm nhưng 2 * (NCYL-1) đơn theo dõi tìm kiếm, 2 * (NCYL-2) 2-theo dõi tìm kiếm ... và NCYL "tìm kiếm" không thời gian khi không đi du lịch đầu là cần thiết.
mùn cưa

Câu trả lời:


11

Đĩa trong câu hỏi có tốc độ truyền là 80 MiB / s, hoặc 81920 kiB / s, hoặc 20480 khối / s. Ở đây, chúng tôi sẽ làm tròn đến 20.000 khối / giây, vì đây dường như là những gì giáo sư của bạn đã làm. Điều này tương đương với 0,05 ms để chuyển một khối, giải thích thuật ngữ cuối cùng trong phương trình.

Cuối cùng, ngoài việc tìm kiếm thời gian (thời gian để di chuyển đầu ổ đĩa đến đường đua), còn có độ trễ quay của chính đĩa để xử lý. Với tốc độ 7200 vòng / phút, trong trường hợp xấu nhất, chúng ta phải chờ 1 cuộc cách mạng đầy đủ, nhưng trung bình chúng ta phải đợi một nửa vòng quay - hoặc 4.166ms (7200 RPM = 120 vòng / giây = 8.333ms / vòng).

Do đó, để chuyển một khối vào máy tính, chúng ta phải chờ tương đương Seek Time+ Rotational Latency+ Transfer Time:

5 ms + 4.166 ms + 0.05 ms = 9.216 ms

Lưu ý rằng đối với các ổ đĩa trạng thái rắn, trong khi không có độ trễ quay vòng để tính đến, chắc chắn vẫn còn thời gian tìm kiếm có thể đo lường được (để thực sự giải quyết nội dung của các lĩnh vực trong bộ nhớ flash) và thời gian chuyển (bị giới hạn bởi xe buýt đang được sử dụng để truyền dữ liệu, ví dụ: SATA).

Do đó, nói chung, tổng thời gian truy cập để đọc một khu vực duy nhất cho một ổ đĩa là (bỏ qua phần mềm):

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

Solid-State Drive:      Seek Time + Transfer Time

5

Thời gian tìm kiếm 5 ms là thời gian để ổ cứng di chuyển đầu của nó sang đúng rãnh (và để chọn đúng đầu, một cái gì đó cũng mất thời gian nhưng điều mà prof của bạn bỏ qua).


Khi phần đầu đã đi đúng hướng, nó cần đợi phần bên phải đi qua bên dưới phần đầu R / W. Chúng tôi được cho rằng đó là ổ 7200 RPM. Điều đó có nghĩa là:

  • Trong trường hợp xấu nhất, dữ liệu vừa được truyền, nó phải chờ một vòng quay đầy đủ.
  • Trong trường hợp tốt nhất, ngành dữ liệu vừa đến. Tất cả đều hạnh phúc.
  • Trong trường hợp trung bình , ổ đĩa cần phải chờ một nửa vòng quay.

Để có thời gian quay toàn bộ ổ đĩa trên ổ 7200 RPM:

  • 7200 vòng quay mỗi phút (còn gọi là 7200 vòng / phút)
  • Hoặc 7200/60 lần mỗi giây.
  • Hoặc 120 lần mỗi giây.
  • Hoặc vòng xoay đơn mất 1 / 120 ngày của một giây.
  • Đó là 8,3 ms

Vì vậy, một nửa xoay nên sẽ mất một nửa thời gian đó, 1 / 240 ngày của một giây.

1 giây là 1000 ms

Đây là của bạn 1000 / 240 ms.


Tất cả điều này là thời gian cho đến khi ổ đĩa có thể bắt đầu đọc dữ liệu. Nó vẫn sẽ cần phải đọc nó và chuyển cho chủ nhà.

Đọc từ ổ đĩa thường nhanh hơn nhiều so với việc vượt qua nó, vì vậy tôi sẽ tập trung vào phần chậm hơn:

Đưa ra là:

1) 80 MB / s CHUYỂN TẢI GIÁ
2) MÔ HÌNH BLOCK: Kích thước khối 4KB

  • 80 MiB trong một giây, hoặc 80 * 1024 KiB một giây, hoặc 4 * 20 * 1024 KiB / giây.
  • Chia cho 20480.
  • 4 KB mỗi 1 / 20480 ngày của một giây.
  • Hoặc 0.488281 ms, là 0,05 ms mới nhất của bạn .


Lưu ý rằng câu trả lời này bỏ qua rằng:

  1. ổ đĩa cần đọc dữ liệu trước khi có thể truyền dữ liệu, điều này sẽ làm cho nó chậm hơn một chút.
  2. Nhưng không có thông tin về tốc độ đọc dữ liệu từ đĩa. (đó là vấn đề về tốc độ quay, độ dài của dữ liệu cần đọc, độ dài của dữ liệu tổng kiểm tra và khoảng cách giữa các ngành. (4KiB có thể là 8 lần đọc "Tiêu đề | dữ liệu | kiểm tra | khoảng cách" hoặc một lần đọc.
  3. Nó cũng bỏ qua rằng dữ liệu có thể đã có trong bộ đệm của ổ đĩa.
  4. Và nó giả định rằng việc tính toán tổng kiểm tra không mất nhiều thời gian.

Đây có lẽ là lần đầu tiên tôi thấy một đề cập chính xác về thời gian chuyển đĩa tạo ra sự khác biệt giữa đọc đĩa và giao diện (giao diện). "Tổng kiểm tra" thực sự là Mã sửa lỗi (ECC) có thể phát hiện và sửa lỗi nổ ngắn.
mùn cưa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.