CHƯƠNG 3 Thuật toán yêu cầu-cấp phát băng thông động dựa trên phản tiếp kép
3.3 Thuật toán yêu cầu băng thông động [3]
3.3.1 Cơ sở thiết kế
Mục tiêu thiết kế của thuật toán yêu cầu-cấp phát băng thông động cho ertPS là:
Ước lượng được băng thông yêu cầu đúng lúc và chính xác.
Không lãng phí băng thông và cũng không phải thiếu băng thông.
Phải tối thiểu hóa vi phạm đòi hỏi về độ trễ
Để đạt được những mục đích đó, khái niệm mục tiêu trễ và phản phản tiếp đã được đề nghị trong [3]
3.3.1.1. Giới thiệu về mục tiêu trễ (target delay)
Mục tiêu trễ đóng vai trò chính trong việc xác định số lượng băng thông phải điều chỉnh. Hầu hết các dịch vụ thời gian thực có độ trễ điểm tới điểm đến một mức mà QoS không bị suy giảm, vd 100 ~ 200ms cho dịch vụ VoIP và vài trăm miligiây cho dịch vụ phát luồng (streaming). Bằng cách dùng mục tiêu trễ cho phép này chúng ta có thể đặt một mục tiêu trễ từ MAC tới MAC, Tref (sec) và chuyển nó thành mục tiêu chiều dài Qref(byte), của hàng đợi truyền, theo các giả thiết hợp lý sau đây.
Một kiểm soát cho truy nhập vào được áp dụng cho các dịch vụ thời gian thực để tổng số lượng băng thông yêu cầu của chúng không được qua dung lượng kênh có sẵn trên bình quân.
Bộ lập lịch dùng thuật toán lập lịch ưu tiên nghiêm ngặt để cấp phát băng thông cho các dịch vụ thời gian thực với độ ưu tiên cao.
Một kết nối ertPS được thiết lập thế nào để khoảng thời gian cấp phát băng thông cho nó Ta (sec) bằng khoảng thời gian gói hóa của dịch vụ thời gian thực, luôn ổn định.
Dung lượng backhaul của đường kênh kết nối mạng truy cập không dây tới mạng có dây là đủ lớn để không gây nên bất cứ trễ hàng đợi nào trong BS cho kết nối UL.
Với những giả thiết đó, Qref có thể được biểu diễn theo Tref và Ta như sau:
Qref=l
Trong đó
l (byte) nghĩa là cỡ gói trung bình và T0 (sec) thể hiện những độ trễ khác ngoại trừ độ trễ hàng đợi, vd độ trễ xử lý tại lớp MAC và trễ truyền qua kênh không dây. Đáng chú ý là Tref không bao gồm độ trễ mã hóa, trễ gói hóa, và trễ bộ đệm tại lớp ứng dụng. Ta cho cỡ của hàng đợi truyền là q(t) (byte) và băng thông bổ sung yêu cầu cho q(t) là ∆ bq(t) (byte/sec). Khi q(t) tăng qua Qref, ∆ bq(t) cần phải tăng theo để thoả mãn độ trễ yêu cầu.
Bây giờ, ta xem xét một vài phương pháp để tính toán ∆ bq(t), Ta định nghĩa δb là số lượng băng thông cần thiết để truyền một gói mà cỡ của nó là l .
a. Hàm nhảy bậc b. Hàm tuyến tính c. hàm không tuyến tính
Hình 3.1: Một vài hàm để tính toán băng thông bổ sung yêu cầu phụ thuộc vào chiều dài hàng đợi[3].
Như chỉ ra trong hình 3.1a cách thô sơ để điều khiển băng thông yêu cầu là:
Băng thông yêu cầu tăng thêm δb nếu q(t) lớn hơn một giá trị ngưỡng tối đa qthmax
(>Qref) và giảm đi δb nếu q(t) xuống thấp hơn một giá trị ngưỡng tối thiểu qthmin (<Qref).
Một cách khác, chúng ta có thể tính ∆bq(t) theo tỷ lệ với sự khác nhau giữa q(t) và Qref như chỉ ra trong hình 3.1b. Trong phương pháp này, chúng ta có thể đặt giới hạn dưới và giới hạn trên cho ∆bq(t), được định nghĩa lần lượt là δmax (>0) và δmin
(<0) để tránh thay đổi đột ngột cho ∆bq(t).
Ta cũng có thể xét một hàm không tuyến tính để tính ∆bq(t) như chỉ ra trong hình 3.1c. Trong phương pháp này, ∆bq(t) thay đổi rất nhanh khi có sự sai lệch giữa q(t) và Qref tăng.
3.3.1.2 Phương pháp phản tiếp kép (dual feedback)
Điều khiển yêu cầu băng thông dựa trên chiều dài hàng đợi, ∆bq(t), đáp ứng chậm với sự thay đổi của tốc độ gói đến bởi vì ∆bq(t) thay đổi sau khi phát hiện độ lệch của chiều dài hàng đợi từ mức mong muốn. Để có đáp ứng nhanh chúng ta giới thiệu phương pháp phản hồi kép bao gồm hai vòng lặp phản hồi cho chiều dài hàng đợi và cho tốc độ gói. Ta định nghĩa tốc độ gói đến và tốc độ được kênh cung ứng (tức tốc độ gói kênh cho đi) lần lượt là a(t) và s(t) (byte/giây), và một yêu cầu băng thông bổ sung khi không khớp tốc độ là ∆br(t) (byte/giây). Cũng như thông tin của chiều dài hàng đợi không khớp, eq(t)=q(t)-Qref, được sử dụng để tính toán ∆bq(t), thông tin về tốc độ không khớp, er(t)=a(t)-s(t), được tận dụng để tính ∆br(t). Khi tốc độ đến của gói đến vượt qua tốc độ gói đi, tức là a(t) > s(t), thì những gói này bắt đầu được tích tụ. Trong trường hợp này, ∆br(t) phải dương để phục vụ tức thời các gói này mà không vi phạm đòi hỏi về độ trễ. Mặt khác, nếu a(t) <s(t), chiều dài hàng đợi có xu hướng giảm. Trong trường hợp này, sẽ yêu cầu băng thông ít hơn và ∆br(t) trở thành âm để không lãng phi băng thông. Phản tiếp tốc độ cung cấp thông tin dự đoán về chiều dài hàng đợi. Do đó, điều khiển yêu cầu băng thông dựa trên phản tiếp tốc độ cho ta đáp ứng dự đoán cho sự thay đổi chiều dài hàng đợi, và cung cấp đáp ứng nhanh cho sự thay đổi tốc độ gói đến. Toàn bộ yêu cầu băng thông bổ sung của kiến trúc phản hồi kép, ∆B(t), bao gồm thành phần dựa trên hàng đợi ∆bq(t) và thành phần dựa trên tốc độ ∆br(t) và có thể biểu diễn dưới dạng chung như sau:
∆ B(t)= ∆ bq(t) + ∆ br(t) (2) = f(eq(t)) + g(er(t))
Trong đó f(.) và g(.) là các hàm không âm như cho thấy trong hình 3.1.
3.3.2. Thuật toán và các vấn đề thực thi
Trong phần này, ta sẽ cung cấp một thuật toán chi tiết cho thuật toán yêu cầu băng thông và thảo luận vài vấn đề về phần tiêu đề và thực thi nó. Từ (2), chúng ta xem xét những hàm tuyến tính f(.) và g(.) đơn giản sau:
∆ B(t)= Kqeq(t) + Krer(t) (3)
Trong đó thông số Kq và Kr là các hằng số điều khiển mà có giá trị không âm.
Trong (3), tốc độ không khớp er(t) có thể được biểu diễn bằng không khớp về chiều dài hàng đợi, tức là:
er(t) = a(t)-s(t)
= q(t)= eq(t), với 0 < q(t) <Qmax (4)
với Qmax là cỡ chiều dài hàng đợi tối đa. Để thực thi thuật toán này, chúng ta cần chuyển đổi hàm thời gian liên tục ∆B(t) thành hàm thời gian rời rạc bằng cách lấy mẫu mọi chu kỳ cấp phát băng thông, tức là ∆B[n]=∆B(nTa), trong đó n là số nguyên không âm. Ta lấy xấp xỉ đạo hàm bằng cách sử dụng xấp xỉ Euler bậc một,
tức là:
dt
d eq(t) ≈ (5)
Từ (3)-(5), chúng ta có thể tính toán yêu cầu băng thông ∆B[n] chỉ sử dụng giá trị hiện tại và trước đó của lỗi chiều dài hàng đợi. Nhớ rằng ∆B[n] chỉ là tăng hay giảm của yêu cầu băng thông trong suốt khoảng thời gian cấp phát thứ n và toàn bộ yêu cầu băng thông tương ứng trong suốt khoảng thời gian này, B[n] trở thành:
B[n] =max (B[n-1] + ∆ B[n] , Bmin) (6)
Trong đó Bmin là số lượng cấp phát băng thông tối thiếu được yêu cầu cho vấn đề
yêu cầu băng thông.
Sau khi tính toán băng thông bổ sung ∆B[n], SS truyền tới BS băng thông ∆B[n], bằng cách truyền nó trên trường EPBR trong tiêu đề con của gói quản lý cấp phát (grant management subheader) của gói. Cỡ của trường EPBR là 11 bít và nó có 2 mode hoạt động, mode tăng dần và mode gộp lại. Nếu bit đầu tiên của EPBR được đặt là zero, thì 10 bit còn lại sẽ thể hiện yêu cầu băng thông tăng dần, ngược lại chúng thể hiện yêu cầu băng thông gộp. Do đó, nếu ∆B[n] > 0, nó có thể mang hai mode tăng dần và gộp lại.
Ngược lại nếu ∆B[n] <0, SS sẽ tính B[n] như trong (6) và mang giá trị này đi với mode gộp lại.
Để áp dụng thuật toán này cho trường hợp lưu lượng on-off, vd lưu lượng VoIP với khoảng im lặng bị khống chế, ta cần chi tiết thuật toán này. Nếu chiều dài hàng đợi giữ ở mức 0 dài hơn một thời gian ngưỡng cho trước, ta sẽ xác định rằng kết nối này trở thành không hoạt động và dừng ngay quá trình điều hợp cho yêu cầu băng thông. Trong suốt chu kỳ này, yêu cầu tổng băng thông trở thành giá trị tối thiểu của nó. Nếu kết nối này trở thành hoạt động trở lại, điều này có thể biết được một khi chiều dài hàng đợi dài hơn mức zero, ta khởi động lại quá trình điều hợp với giá trị khởi đầu của B[n], được thông báo bởi các thông số QoS của kết nối.
Phần thông tin chi phí tối thiểu (overhead) liên quan đến cỏng lưng (piggybacking) yêu cầu băng thông là 2 byte, là cỡ của tiêu đề con của gói quản lý cấp phát, nghĩa là Bmin=2 trong phương trình (6). Chú ý rằng thông tin chi phí tối thiểu này là không thể tránh khỏi trong các dịch vụ lập lịch thời gian thực của IEEE 802.16 ( vd UGS và rtPS, cũng như ertPS). Mặt khác, thời gian tính toán của thuật toán này là không đáng kể. Số bước tớnh toỏn là khỏ nhỏ và SS chỉ p h ả i t h e o d ừ i g i ỏ t r ị hiện tại và giỏ trị trước đó của chiều dài hàng đợi của nó mà không phải ước lượng tốc độ gói đến và tốc độ gói được truyền đi . Hơn nữa, việc tính yêu cầu băng thông được thực hiện bởi mỗi SS theo cách thức phân bố. Do vậy, thuật toán này không làm giảm tính khả năng co giãn (scalability) của BS. Mặc dù kiến trúc phản hồi kép được phát triển cho loại lập lịch ertPS, nhưng nó có thể áp dụng cho loại rtPS mà không cần sự thay đổi đáng kể nào và nó có thể nới rộng hơn cho các cơ cấu lập lịch khác dựa trên yêu cầu.