Bài báo này đã trình bày một phương pháp tính toán các hàm toán học được ứng dụng phổ biến trong xử lý tín hiệu số dựa trên xấp xỉ hai mức, mức xấp xỉ thứ nhất dựa t[r]
(1)THIẾT KẾ PHẦN CỨNG TÍNH TỐN CÁC HÀM TỐN HỌC DỰA TRÊN XẤP XỈ TUYẾN TÍNH HAI MỨC
Sái Văn Thuận*, Hoàng Văn Phúc, Trần Văn Khẩn
Tóm tắt: Bài báo trình bày phương pháp tính tốn hàm tốn học
phổ biến dựa hai mức xấp xỉ Trong mức xấp xỉ thứ nhất, hàm xấp xỉ phương pháp xấp xỉ phân đoạn tuyến tính Sau đó, mức xấp xỉ thứ hai hàm lỗi mức xấp xỉ thứ xấp xỉ phương pháp phân đoạn tuyến tính có nội suy đối xứng nhằm giảm thiểu độ phức tạp phần cứng Dựa phương pháp đề xuất, kiến trúc phần cứng để tính tốn hàm tốn học điển hình được thiết kế thực thi Các kết thực thi cho thấy kiến trúc phần cứng đề xuất đạt hiệu tốc độ
Từ khóa: Số học máy tính; Ước lượng hàm; Xấp xỉ phân đoạn tuyến tính; Xấp xỉ đa thức
I MỞ ĐẦU
Các hàm toán học hàm sin, logarithm, hàm mũ, hàm nghịch đảo … sử dụng rộng rãi nhiều lĩnh vực truyền thông, đồ họa máy tính, khoa học tính tốn xử lý tín hiệu số Thực thi hàm tốn học nói thực chương trình phần mềm Tuy nhiên, tính tốn hàm tốn học phần mềm có tốc độ tính tốn chậm Vì vậy, nhiều nghiên cứu tập trung thực tính tốn hàm toán học phần cứng chuyên dụng
Một số phương pháp khác nghiên cứu đề xuất để thực thi phần cứng tính tốn hàm tốn học Các phương pháp bao gồm: thuật toán CORDIC [1] , xấp xỉ đa thức [2],[3],[4], xấp xỉ hữu tỷ [5] phương pháp dựa bảng [6],[7],[8],[9] Thuật toán CORDIC dựa kiến trúc lặp, đó, có độ giữ chậm lớn nên không phù hợp với ứng dụng thời gian thực Phương pháp xấp xỉ hữu tỷ có độ xác cao, nhiên, đòi hỏi độ phức tạp phần cứng cao Ngày nay, với phát triển cơng nghệ mạch tích hợp cho phép dung lượng nhớ lớn phương pháp dựa bảng sử dụng phổ biến Tuy nhiên, phương pháp dựa bảng có nhược điểm độ rộng tốn hạng đầu vào lớn địi hỏi dung lượng lớn, điều địi hỏi nhiều tài ngun phần cứng khó khăn thực cơng cụ tổng hợp
Mặt khác, với nhu cầu ngày tăng nhanh thiết bị điện tử thông minh không dây, thiết bị cầm tay, điện thoại di động,với nhiều ứng dụng đòi hỏi hệ thống xử lý tín hiệu số tốc độ cao ngày đặt cấp thiết Trong đó, tính tốn hàm toán học thao tác quan trọng ứng dụng xử lý tín hiệu số, việc tính tốn hàm toán học chiếm phần lớn tài nguyên phần cứng định đến tốc độ xử lý xử lý tín hiệu số Vì vậy, địi hỏi có lõi tính tốn khơng hiệu tài nguyên mà yêu cầu tốc độ xử lý cao
Trong báo này, đề xuất phương pháp thực thi phần cứng cho tính tốn hàm tốn học sử dụng phổ biến ứng dụng xử lý tín hiệu số Phương pháp dựa xấp xỉ hàm toán học hai mức theo phương pháp xấp xỉ tuyến tính phân đoạn Các kết thực thi cho thấy phương pháp đề xuất đạt hiệu tốc độ thực thi
II ĐỀ XUẤT PHƯƠNG PHÁP XẤP XỈ
(2)
x1 x2
x =
n bit
n1bit n - n1bit
1
1 2 2
n n
x x
0…0 x2
x’ = x22n
Hình Phân chia biến đầu vào thành hai phần
Trong mức đầu vào x có n bit phần thập phân chia thành hai phần
1
x x2với độ dài bit tương ứng n1 n n 1 biểu diễn hình Trong bước xấp xỉ khoảng giá trị x chia thành 2n1 đoạn dựa
1
x thấy hình cho trường hợp n 1 2 khoảng ban đầu [1, 2) Với đoạn thứ i x x, [ ,i i1) hai giá trị f x( )i f x( i1) sử dụng để xấp xỉ mức thứ để xấp xỉ hàm hàm
( ')
f x , giá trị x' nhận giá trị khoảng [0, 2n1) Hàm xấp xỉ mức cho phân
đoạn thứ i có dạng cơng thức (1)
1
( ) ( )
( ') i i ' ( )
i i
i i
f x f x
f x x f x
x x
(1)
0
fi(x’)
f(xi+ x’)
xi xi+1
f(x)
1 2
x’ ei(x’)
1
2n
Hình Xấp xỉ mức thứ hàm f x( ) đoạn thứ i (n 1 2)
Như mơ tả hình 2, xấp xỉ mức tạo lỗi xấp xỉ độ chênh lệch hàm xấp xỉ ban đầu hàm thực Độ chênh lệch hàm lỗi ( ') , 0,1, , 2n1
i
e x i có
biểu diễn cơng thức (2)
1
( ') ( ') ( '), ' n
i i i
e x f x x f x x (2)
(3)là biểu diễn số hạng bậc cao cịn lại Vì vậy, hàm chênh lệch có dạng đối xứng qua trục x' 2 n11 Do đó, ta xấp xỉ nửa khoảng giá trị x'[0, 2n11)
bằng đoạn tuyến tính, nửa cịn lại đoạn nội suy đối xứng qua trục x'2n11
thì sai số xấp xỉ khơng thay đổi Điều hứa hẹn cho phép thực thi phần cứng đơn giản sử dụng bit có trọng số lớn nhất(MSB) liệu đầu vào để nội suy đoạn đối xứng nửa lại khoảng giá trị x' Hình mơ tả xấp xỉ mức thứ hai cho hàm e xi( ')với hai cặp đoạn đối xứng
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14
0 0.5 1.5 2.5
3x 10
-3
x'
ei
(x
')
doan doan doan doan doan doan doan doan
Hình Hàm lỗi xấp xỉ mức hàm log ( )2 x với n 1 3
Trong phương pháp đề xuất, nửa khoảng giá trị x', x'[0, 2n11), chia
thành s đoạn con, đoạn thứ j j, 0,1, ,s1, hàm lỗi e xi( ') xấp xỉ đoạn tuyến tính có hệ số aij bij, đó, lỗi xấp xỉ có dạng công thức (3)
ij( ')x e xi( ') (aij x' bij)
(3)
11
2n 2n1
12
2n 3.2n 12
( ')
i
e x
'
x
0( ')
i x
1( ')
i x
(4)Lỗi cực đại cho xấp xỉ đoạn j ký hiệu ijmax
max max{ ( ')}
ij ij x
(4) Hơn nữa, để đơn giản phần cứng thực thi hệ số aij bij ấn định có dạng cơng thức (5), đó, hệ số aij tổng số lũy thừa, đó, thực thi phép dịch cộng tránh việc sử dụng mạch nhân phức tạp
1
-( )
ij
2 ;
2 ;
N ij
n n
a N
b B B
(5)
Thuật tốn đề xuất tìm giá trị hệ số aij bij cho ijmax nhận giá trị cực tiểu đoạn thứ j Thuật tốn tìm hệ số tối ưu mô tả bảng Bài báo sử dụng chương trình Matlab thực thuật tốn để tính tốn hệ số aij bijtối
ưu cho hàm log ( ), sin( ), / ,2 x x x x, 1 x 2x với khoảng giá trị đầu vào chuẩn hóa thể bảng tương ứng với xấp xỉ mức gồm đoạn (n 1 3) xấp xỉ mức sử dụng xấp xỉ phân đoạn nội suy đối xứng hàm
( ')
i
e x xấp xỉ hai cặp đoạn đối xứng Bảng thể kết hệ số aij
ij
b tối ưu cho hàm log ( )2 x
Bảng Thuật tốn tìm hệ số tối ưu xấp xỉ mức
1:
BEGIN: Khởi tạo mảng giá trị aij
Khởi tạo mảng giá trị bij
Khởi tạo đoạn giá trị j
2:
for i = 1: length(aij)
for j = 1:length(bij) for k = 1:length(x')
tính ij( ')x theo cơng thức (3)
end end end
3:
for i = 1: length(aij)
for j = 1:length(bij)
tính ij max max(ij( '))x
end end
4: Tính min(ij max)
5: END: Xuất giá trị a, b tương ứng với
ij max min( )
Bảng Khoảng giá trị đầu vào chuẩn hóa hàm
Hàm log ( )2 x sin( )x 1 x x x 2x
(5)Bảng Các hệ số aij bijtối ưu mức xấp xỉ thứ hàm log ( )2 x
0( ')
e x a00 b00 a01 b01 e x4( ')
40
a b40 a41 b41
4
2 20
58.2 25 20
791.2
5
2 0 27210 20
672.2
1( ')
e x a10 b10 a11 b11 e x5( ')
50
a b50 a51 b51
5
2 2 2
72.220
6
2 2
20
1024.2
6
2 2
40.220
2 20
561.2
2( ')
e x a20 b20 a21 b21 e x6( ')
60
a b60 a61 b61
5
2 2
20
65.2
7
2 2
20
986.2
6
2 20
88.2
2 20
427.2
3( ')
e x a30 b30 a31 b31 e x7( ')
70
a b70 a71 b71
5
2 2
20
48.2
7 10
2 2 2
20
775.2
6
2 20
51.2
2 20
512.2
III KIẾN TRÚC PHẦN CỨNG VÀ KẾT QUẢ THỰC THI
Kiến trúc tổng quát thực thi hàm toán học phương pháp đề xuất có dạng hình Trong mức xấp xỉ thứ thực tính tốn hàm f xi( ') cơng thức (1) Trong đó, giá trị f x( )i f x( i1) f x( )i lưu vào bảng tra (LUT: Lookup Table) sử dụng để tính tốn hàm f xi( ') Phép chia cho xi1xi công thức (1) thay phép dịch số lũy thừa Ở mức xấp xỉ thứ 2, thực xấp xỉ hàm lỗi phương pháp xấp xỉ phân đoạn tuyến tính có đối xứng Khối xấp xỉ sửa lỗi bao gồm 2n1 khối xấp xỉ tương ứng với 2n1hàm ( ')
i
e x
Hình Kiến trúc phần cứng tổng quát
Chúng thực thi kiến trúc đề xuất để tính tốn hàm
2
(6)hàm lỗi e xi( ') xấp xỉ phân đoạn tuyến tính hai cặp đoạn đối xứng Các kiến trúc đề xuất mơ hình ngơn ngữ VHDL thực thi thiết bị FPGA Xilinx Virtex6 với công cụ tổng hợp Xilinx ISE 12.4 Suite Kết thực thi FPGA kiến trúc đề xuất thể bảng Bảng thể kết tổng hợp Synopsys Design Compiler cho hàm khác phương pháp đề xuất với mục đích tối thiểu tài nguyên công nghệ CMOS 90 nm Phương pháp đề xuất so sánh với kết [9] với định dạng 23 bit thập phân liệu đầu vào đầu Phương pháp đề xuất đạt tốc độ cao đáng kể so với phương pháp [9] Tuy nhiên, tài nguyên chiếm lớn so với kết [9]
Bảng Kết thực thi kiến trúc đề xuất FPGA Xilinx Virtex6
Hàm log ( )2 x sin( )x 1 x x x 2x
Slices 789 755 1005 897 894 885
Delay(ns) 6.79 6.76 7.28 6.78 7.33 7.73
ADP(×103) 5.42 5.10 7.32 6.08 6.55 6.84
Bảng Kết tổng hợp Synopsys Design Compiler
Hàm
Đề xuất Trong [9]
Diện tích (
µm2) Độ trễ (ns)
Diện tích (µm2) Độ trễ (ns)
2
log ( )x 26695 3.98 24023 12.69
sin( )x 24452 3.86 22890 13.08
1 x 32736 3.99 24137 12.63
x 27213 3.83 16043 12.03
1 x 28752 4.00 22317 12.83
2x 30887 3.86 18913 12.16
IV PHÂN TÍCH LỖI
Để đánh giá độ xác phương pháp đề xuất, chúng tơi phân tích lỗi gây thành phần phần cứng sơ đồ thực thi tác động chúng tới đầu Các lỗi bao gồm lỗi lượng tử độ rộng bit hạn chế từ nhớ ROM (ký hiệu
ROM
), lỗi gây nhân rút gọn (MUL), lỗi xấp xỉ xấp xỉ mức hai (apx2) lỗi làm tròn cộng cuối (ADD) Vì vậy, lỗi tổng cộng là:
2
total ROM MUl ADD apx
(6)
Bảng Lỗi modul phần cứng
Modul ROM Bộ nhân rút gọn Bộ cộng
Độ rộng bit BF BM BA
Modul
2BF 2BM1 2BA1
ROM
2BF MUL
2BF 2BM
ADD
(7)Ký hiệu BF, BM BA độ rộng bit tương ứng nhớ ROM, nhân rút gọn
và cộng, biểu diễn lỗi thành phần phần cứng gây bảng
Lỗi xấp xỉ mức 2, apx2, xác định lỗi tuyệt đối lớn xấp xỉ mức tất hàm e xi( ') Trong thực thi phần cứng thực xấp xỉ mức với phân đoạn (n 1 3) tương ứng tạo hàm lỗi e xi( ') hàm lỗi xấp xỉ
bởi phân đoạn tuyến tính hai cặp đoạn đối xứng Độ rộng bit ROM cộng 23 bit (BFBA23) độ rộng bit nhân rút gọn 20 bit (B M 20) Khi đó, thành phần lỗi lỗi tổng cộng tương ứng với hàm khác biểu diễn bảng
Bảng Các lỗi thành phần lỗi tổng cộng thực thi hàm
Hàm log ( )2 x sin( )x 1 x x x 2x
ROM
2-24
2-24 2-24 2-24 2-24 2-24
MUL
2-23
+ 2-19 2-23+ 2-19 2-23+ 2-19 2-23+ 2-19 2-23+ 2-19 2-23+ 2-19
ADD
2-24 2-24 2-24 2-24 2-24 2-24
2 apx
9.85×105 - 7.95×105 - 7.93×105 - 2.04×105 - 6.17×105 - 8.79×10-4
total
1.01×10
-4
8.16×10
-5
8.14×10
-5
2.25×10
-5
6.38×10
-5 9.01×10-5
V KẾT LUẬN
Bài báo trình bày phương pháp tính tốn hàm toán học ứng dụng phổ biến xử lý tín hiệu số dựa xấp xỉ hai mức, mức xấp xỉ thứ dựa phương pháp xấp xỉ phân đoạn tuyến tính mức xấp xỉ thứ hai bước xấp xỉ hàm lỗi gây mức theo phương pháp xấp xỉ phân đoạn tuyến tính có đối xứng Các thực thi số hàm tốn học điển hình theo phương pháp đề xuất cho thấy hiệu tốc độ xử lý Vì vậy, kiến trúc đề xuất phù hợp với ứng dụng đòi hỏi tốc độ xử lý cao
TÀI LIỆU THAM KHẢO
[1] J E Volder, "The CORDIC Trigonometric Computing Technique," IRE Transactions on Electronic Computers, vol EC-8, pp 330-334, 1959
[2] A S Noetzel, "An interpolating memory unit for function evaluation: analysis and design," IEEE Transactions on Computers, vol 38, pp 377-384, 1989
[3] G H Garcia and W J Kubitz, "Minimum Mean Running Time Function Generation Using Read-Only Memory," IEEE Transactions on Computers, vol C-32, pp 147-156, 1983
[4] P T P Tang, "Table-lookup algorithms for elementary functions and their error analysis," in Proceedings 10th IEEE Symposium on Computer Arithmetic, 1991, pp 232-236