Tài liệu Một phương pháp tăng tốc phép biến đổi hadamard bằng kiến trúc Pipeline: Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số 56, 08 - 2018 95
MỘT PHƯƠNG PHÁP TĂNG TỐC PHÉP BIẾN ĐỔI HADAMARD
BẰNG KIẾN TRÚC PIPELINE
Phạm Minh Tới1*, Đỗ Xuân Tiến1, Hoàng Thị Phương2
Tóm tắt: Đối với các hệ xử lý chuyên dụng, vấn đề dung hòa giữa tốc độ xử lý và
độ tin cậy của hệ luôn luôn được đặt ra cho các nhà thiết kế [5, 7]. Dựa trên ý tưởng
tối giản cấu trúc của bộ mã hóa Hadamard trong lõi CPU của [1], bài báo đề xuất
giải pháp cứng hóa thuật toán Hadamard bằng công nghệ FPGA kết hợp với kiến
trúc pipeline nhằm vừa bảo đảm được tốc độ vừa nâng cao độ tin cậy hệ thống do có
cấu trúc đơn giản hơn. Khi so sánh cấu trúc ma trận 1 hàng×4 cột với cấu trúc ma
trận 8 hàng×4 cột cho thấy độ phức tạp đã giảm được gần 8 lần nhưng tốc độ thực
hiện mã hóa luồng vector 64bit trên ma trận tối giản vẫn không thay đổi. Kết quả mô
phỏng trên ModelSim và thực thi trên Xilinx ISE Design Suite cho thấy hiệu năng của
phương án đề xuất có nhiều ưu việt...
10 trang |
Chia sẻ: quangot475 | Lượt xem: 562 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Một phương pháp tăng tốc phép biến đổi hadamard bằng kiến trúc Pipeline, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số 56, 08 - 2018 95
MỘT PHƯƠNG PHÁP TĂNG TỐC PHÉP BIẾN ĐỔI HADAMARD
BẰNG KIẾN TRÚC PIPELINE
Phạm Minh Tới1*, Đỗ Xuân Tiến1, Hoàng Thị Phương2
Tóm tắt: Đối với các hệ xử lý chuyên dụng, vấn đề dung hòa giữa tốc độ xử lý và
độ tin cậy của hệ luôn luôn được đặt ra cho các nhà thiết kế [5, 7]. Dựa trên ý tưởng
tối giản cấu trúc của bộ mã hóa Hadamard trong lõi CPU của [1], bài báo đề xuất
giải pháp cứng hóa thuật toán Hadamard bằng công nghệ FPGA kết hợp với kiến
trúc pipeline nhằm vừa bảo đảm được tốc độ vừa nâng cao độ tin cậy hệ thống do có
cấu trúc đơn giản hơn. Khi so sánh cấu trúc ma trận 1 hàng×4 cột với cấu trúc ma
trận 8 hàng×4 cột cho thấy độ phức tạp đã giảm được gần 8 lần nhưng tốc độ thực
hiện mã hóa luồng vector 64bit trên ma trận tối giản vẫn không thay đổi. Kết quả mô
phỏng trên ModelSim và thực thi trên Xilinx ISE Design Suite cho thấy hiệu năng của
phương án đề xuất có nhiều ưu việt hơn so với các phương pháp khác.
Từ khóa: Hệ xử lý chuyên dụng; FPGA; Hadamard; Pipeline.
1. ĐẶT VẤN ĐỀ
Trong công trình [4, 5], các tác giả đã thực hiện thuật toán biến đổi Hadamard nhanh
(Fast Hadamard Transform) bằng công nghệ FPGA. Tuy nhiên, cấu trúc phần cứng khá
phức tạp nên khi ma trận trọng số kích thước lớn để xử lý những luồng dữ liệu vector kích
thước 64, 128 bit thì cấu trúc trở nên cồng kềnh nên khó đưa vào các hệ xử lý chuyên dụng.
Hơn nữa, các công trình [4, 5] đã cứng hóa thuật toán biến đổi nhanh FHT đối với mã
Hadamard [1], song về cơ bản vẫn là cứng hóa thuật toán phần mềm mà chưa cải thiện cấu
trúc, đặc biệt là đưa các công nghệ mới như pipeline vào để tăng tốc độ xử lý luồng dữ liệu.
Trong công trình [1], tác giả đã có ý tưởng khá tốt là sử dụng ma trận trọng số phụ để
hỗ trợ cho ma trận chính thông qua hệ thống pipeline nên có thể thực hiện mã hóa
Hadamard mọi kích thước. Điều này cho phép đơn giản hơn nữa cấu trúc ma trận trọng số
đã dẫn tới cấu trúc 1 hàng×4 cột so với cấu trúc 8 row×4 col. Vấn đề tốc độ sẽ được giải
quyết bằng cách sử dụng kỹ thuật pipeline trong sơ đồ chức năng như được thể hiện trên
hình 1.
Hình 1. Cấu trúc ma trận trọng số 1 hàng×4 cột.
Kỹ thuật điều khiển & Điện tử
P. M. Tới, Đ. X. Tiến, H. T. Phương, “Một phương pháp tăng tốc kiến trúc pipeline.” 96
2. NỘI DUNG CẦN GIẢI QUYẾT
2.1. Cơ sở lý thuyết
Trong cấu trúc hệ xử lý tín hiệu số, hệ xử lý song song đặc biệt là ALU của các lõi
CPU thường được trang bị ma trận trọng số vì một loạt lớp bài toán xử lý tín hiệu liên
quan tới tập hợp số lớn,hệ thống thích nghi, trí tuệ nhân tạo v.v Các đối tượng trong
không gian số được biểu diễn bằng những cấu trúc dữ liệu khá lớn, thường là tập hợp của
các dữ liệu kiểu vector nên thay vì một giá trị trọng số thì cần tới cả một ma trận trọng số,
đó là những phép xử lý ngưỡng, phép chuyển tọa độ. Trong trường hợp tổng quát có thể
biểu diễn phép xử lý tín hiệu số thông qua mối quan hệ hàm:
)XWY( j
1
0
iji
1
0
1
0
n
j
m
i
m
i
iZZ (1)
Mã Hadamard có những ưu điểm vượt trội: đơn giản (chỉ có giá trị 1 hoặc -1); trực
giao... nên dễ áp dụng trong hệ thống số. Luồng dữ liệu đầu ra Z trong là tổng giá trị đầu
vào tương ứng Yi với tích giá trị dữ liệu đầu vào Xj và trọng số Wij. Đối với mã Hadamard,
ví dụ H8, Wij có cấu trúc W8,8 như thể hiện trên hình 2.
Hình 2. Mã Hadamard 8×8 tách thành 2 nửa 8×4 và 8×4.
Điều quan trọng là H8×8 có thể tách thành 2 nửa ma H8×4 trận khi tách theo cột và nếu
như vậy độ phức tạp của ma trận trọng số đã giảm đi một nửa. Cũng như vậy, ma trận
trọng số gốc H8×8 cũng có thể tách thành 2 ma trận theo hàng là 2 nửa ma trận H4×8.
2.2. Ma trận trọng số Hadamard tối giản
Trong các hệ thống thực tế, đối với cấu trúc ma trận trọng số cần lưu ý là về mặt lý
thuyết luôn luôn có thể tạo ra một ma trận trọng số đầy đủ Wi,j, song thực tế không hẳn như
vậy do tài nguyên phần cứng là hữu hạn trong khi dữ liệu xử lý không có giới hạn về kích
thước. Do vậy, các ma trận trọng số được chế tạo trong các chip thường có kích thước
không lớn, vì thế khi xử lý một vector dữ liệu có thể cần phải chia thành 2, 4, 8 ... thì mới
thực hiện được nhiệm vụ. Những trường hợp như vậy trọng số của ma trận phải tái nạp
nhiều lần gây trễ hệ thống rất lớn.
Trong [1] đưa ra một cấu trúc xử lý luồng dữ liệu vector trên ma trận Hadamard với
cấu trúc tối giản như thể hiện trên hình 1. Ở đây, ma trận trọng số gốc H8×8 được tách
thành 16 ma trận (chia đôi theo cột và chia 8 theo hàng) là 2 nửa ma trận H1×4. Vấn đề là
một ma trận khuyết như vậy khi thực hiện với cấu trúc dữ liệu 8×8 thì phải qua nhiều vòng
lặp. Hãy xem cách thức làm việc của ma trận khuyết này. Luồng dữ liệu X qua XFIFO đưa
1 word 64 bit vào thanh ghi đặc biệt XSR có nhiệm vụ dịch từng byte tới ma trận chính để
nhân với các trọng số đã được nạp trước đó trong 4 cột, mỗi cột kích thước 16 bit, rồi cộng
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
8H
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số 56, 08 - 2018 97
với dữ liệu Y của các cột tương ứng. Kết quả trung gian được thanh ghi hồi tiếp BR ở lối
ra đưa trở lại đầu vào để cộng tích lũy với tích giữ byte X mới do XSC dịch vào và các
trọng số được cập nhật nhờ bộ dịch vòng WSR. Quá trình này được lặp cho đủ 8 lần để xử
lý hết cả 8 byte của word 64 bit X có trong XSR để kết xuất 4 word Z kết quả thuộc nhóm
chẵn. Để kết xuất 4 word Z kết quả thuộc nhóm lẻ, ma trận phụ sẽ nạp nửa bảng trọng số
còn lại và cập nhật cho ma trận chính để thực hiện như các bước ở trên đối với chính word
dữ liệu 64 bit X đó. Bước tiếp theo là XFIFO dịch 1 bước để đưa word 64 bit mới vào
thanh ghi XSR. Cứ như vậy cho tới khi cả 8 word 64 bit được xử lý xong thì chu trình thao
tác của ma trận sẽ kết thúc.
Quá trình mã hóa sẽ thực hiện nhân từng byte dữ liệu với byte trọng số rồi cộng tích
lũy với tích của byte dữ liệu và byte trọng số tiếp theo, được lấy từ thanh ghi dịch đặc biệt
của 2 phía X và W. Chú ý là mỗi lần dịch 1 byte dữ liệu X thì 4 byte trọng số được cập
nhật vào ma trận chính từ ma trận phụ. Cứ như vậy cả 8 byte dữ liệu X được xử lý trong
vòng lặp 8 này. Kết quả là 4 word 16 bit đầu được kết xuất phù hợp với nguyên tắc thể
hiện trên hình 3:
Hình 3. Kết xuất chẵn ma trận nửa (trái) và nửa ma trận lẻ (phải).
Kết xuất nửa ma trận chẵn được tính bằng (2):
3 3 7
i ij j
0 0 0
(Y W X )i
i i j
Z Z
(2)
Trong thời gian 4 word 16 bit kết xuất, 4 byte thuộc nửa ma trận trọng số còn lại được
ma trận phụ đưa vào ma trận chính và qúa trình trên tiếp tục để tạo ra 4 word 16 bit. Và
kết xuất nửa ma trận lẻ được tính bằng (3):
7 7 7
i ij j
4 4 0
(Y W X )i
i i j
Z Z
(3)
Kết quả của chu trình này là 8 word kết quả Z 16 bit được kết xuất tương ứng với 8
byte dữ liệu X cần xử lý.
Giai đoạn 3 là giai đoạn cấu trúc XFIFO thực hiện dịch 1 bước để đưa word 64 bit tiếp
theo vào thanh ghi dịch đặc biệt XSR và lặp lại giai đoạn 2 cho tới khi xử lý xong cả 8
word 64 bit dữ liệu của X.
2.3. Thiết kế ma trận trọng số Hadamard tối giản sử dụng kiến trúc pipeline.
Để hệ thống có tốc độ thực hiện mã hóa của ma trận tối giản so với tốc độ thực hiện
trên ma trận 8 hàng, 4 cột không bị giảm nhiều phải sử dụng cấu trúc pipeline để nâng cao
tốc độ làm việc [6]. Vì vậy, ma trận trọng số Hadamard tối giản được thiết kế gồm 2 hệ
thống pipeline cơ bản, đó là hệ thống pipeline thực hiện chức năng copy giá trị ma trận
trọng số từ ma trận trọng số phụ vào ma trận trọng số chính và hệ thống pipeline thực hiện
chức năng hồi tiếp giá trị kết quả trung gian để xử lý trong chu trình vóng lặp cho tới khi
đạt kết quả cuối cùng.
Kỹ thuật điều khiển & Điện tử
P. M. Tới, Đ. X. Tiến, H. T. Phương, “Một phương pháp tăng tốc kiến trúc pipeline.” 98
Hệ thống pipeline thực hiện chức năng copy giá trị ma trận trọng số từ ma trận trong số
phụ vào ma trận số chính là tập hợp 4 thanh ghi 8 bit, 1 tầng được thể hiện trên hình 4.
a) b)
Hình 4. a) Ma trận đầy đủ 8 hàng×4 cột;
b) Ma trận tối giản 1 hàng×4 cột.
Hệ thống pipeline thực hiện chức năng hồi tiếp giá trị kết quả trung gian để xử lý trong
chu trình vòng lặp bao gồm 4 cấu trúc như thể hiện trên hình 5.
Hình 5. a) Thanh ghi hồi tiếp BR; b) Kiến trúc pipeline có hồi tiếp.
Luồng dữ liệu XSR có tốc độ bằng 8 lần tốc độ của luồng dữ liệu vào X nhằm tận dụng
tốc độ của bộ pipeline làm chức năng nhân và cộng tích lũy.
Nguyên lý làm việc của các hệ thống pipeline hình 4 và 5 sử dụng công nghệ FPGA
được thực hiện theo sơ đồ hình 6. Các tín hiệu điều khiển “Load_byte_to_4_reg_8bit” và
”Load_sygn_bit_to_4_reg_1bit” cho phép nạp trong 1 clock các nội dung từ 2 bộ nhớ
RAM 128X8bit (chứa dữ liệu) và SYGN 32 bit (chứa giá trị nửa ma trận Hadarmad ) vào
2 thanh ghi “Thanh ghi 4x8bit =32 bit” và “Thanh ghi 4x1bit =4 bit”.
Vì ma trận chỉ có 1 hàng nên khi thực hiện cộng tích lũy, để xử lý 7 byte còn lại của
word 64 bit cần có thanh ghi hồi tiếp kết quả trung gian tới đầu vào của phần tử cộng tích
lũy. Thanh ghi hồi tiếp BR sẽ thực hiện nhiệm vụ này như thể hiện trên hình 5. Đầu ra là 4
Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số 56, 08 - 2018 99
khóa chuyền mạch được điều khiển bằng bộ đếm số lần lặp 8,16 hay 32 tùy theo chế độ 1,
2 hay 3.
Hình 6. Cấu trúc phần cứng trên FPGA.
3. KẾT QUẢ MÔ PHỎNG, THỰC THI VÀ THẢO LUẬN
3.1. Tổ chức hệ mô phỏng bán tự nhiên
Để thực hiện mô phỏng, bài báo sử dụng hệ thống bán tự nhiên để thực hiện chức năng
biến đổi Hadamard:
+ Phần cứng sử dụng chip Spartan 3 để nhúng chức năng biến đổi Hadamard với
ma trận tối giản.
+ Phần mềm sử dụng ModelSim6.5c và ISE Design Suite 14.1 của Xilinx để mô
phỏng và thực thi phần cứng.
+ Số liệu sẽ lấy từ thiết bị X35V1 ở chế độ K78, CK6.3 và KY502 [3].
Sơ đồ thiết kế phần cứng ma trận Hardamad bằng FPGA được thể hiện trên hình 3. Căn
cứ vào sơ đồ hình 6, cấu trúc phần cứng bao gồm khối tạo tín hiệu điều khiển DRIVER
FSM, khối ma trận chính-phụ (SYGN 64 bit), khối thao tác song song với phép tính nhân-
cộng tích lũy và khối dẫn dữ liệu ra FIFO, khối đầu ra FIFO. Hai phương án được lựa
chọn thực thi biến đổi Hadamard để tiện so sánh. Phương án thứ nhất là phương án không
sử dụng ma trận trọng số phụ, còn phương án thứ hai là phương án có sử dụng ma trận
trọng số phụ. Máy trạng thái [2, 7] của 2 phương án được thể hiện trên hình 7a và 7b.
Kỹ thuật điều khiển & Điện tử
P. M. Tới, Đ. X. Tiến, H. T. Phương, “Một phương pháp tăng tốc kiến trúc pipeline.” 100
a)
b)
Hình 7. a) Máy trạnh thái không có ma trận phụ;
b) Máy trạnh thái có ma trận phụ.
Tương ứng với máy trạng thái là lưu đồ vòng lặp thao tác của ma trận trọng số
Hadamard không có ma trận phụ và ma trận trọng số Hadamard có ma trận phụ như thể
hiện trên hình 8.
Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số 56, 08 - 2018 101
Hình 8. Vòng lặp thao tác cho a)ma trận trọng số Hadamard không có ma trận phụ,
b) ma trận trọng số Hadamard có ma trận phụ.
Như trên hình 8 cho thấy vòng lặp thao tác chính có sự khác biệt về thời gian thao tác.
Đối với vòng lặp thao tác cho ma trận trọng số Hadamard không có ma trận phụ, hệ phải
mất 80 clock mới xử lý xong 1 vector dữ liệu kích thước 8 byte, trong khi đó, với vòng lặp
thao tác cho ma trận trọng số Hadamard có ma trận phụ, hệ chỉ mất 16 clock để xử lý xong
1 vector dữ liệu kích thước 8 byte. Sự chênh lệch là rất rõ.
3.2. Thực hiện mô phỏng và phân tích kết quả
Khi chạy chương trình viết theo thuật toán hình 7 trên ModelSim6.5c cho thấy sự phù
hợp với lưu đồ thuật toán thể hiện trên hình 7a và hình 8a. Đối với phương án không sử
dụng ma trận trọng số phụ [4, 5] cho thấy sự phù hợp với lưu đồ thuật toán thể hiện trên
hình 7a và hình 8a. Trong giai đoạn khởi đầu, hệ thống tiêu tốn 130 clock. Từ clock thứ
131 đến clock thứ 138 là giai đoạn kết xuất dữ liệu của nửa đầu ma trận trọng số và sau 32
clock, tới clock thứ 169 hệ thống mới kết xuất nửa sau ma trận trọng số. Khoảng thời gian
tiêu tốn để nạp nửa ma trận trọng số là 32 clock. Quá trình này được mô phỏng trên
ModelSim6.5c và được thể hiện trên đồ thị thời gian hình 9a và 9b.
Đối với phương án có sử dụng ma trận trọng số phụ cho thấy sự phù hợp với máy trạng
thái và lưu đồ thuật toán thể hiện trên hình 7b và hình 8b. Từ clock thứ 131 đến clock thứ
138 là thời gian kết xuất dữ liệu của nửa đầu ma trận trọng số và ngay sau đó là clock thứ
139 hệ thống thực hiện kết xuất nửa sau ma trận trọng số. Khoảng thời gian tiêu tốn để
nạp nửa ma trận trọng số là 1 clock. Quá trình này được mô phỏng trên ModelSim6.5c và
được thể hiện trên hình 10.
Điều lưu ý là ma trận trọng số Hadarmad chỉ bao gồm giá trị +1 và -1 nên trong phần
thiết kế chỉ cần sử dụng 1 bit để phân biệt. Bit đó là bit sign được ký hiệu trên sơ đồ và
trong chương trình. Bit sign=0 tương đương với giá trị trọng số +1, còn bit sign=1 tương
đương với giá trị trọng số -1. Cách làm này đã tiết kiệm tài nguyên rất nhiều và làm cấu
trúc ma trận trọng số phụ được đơn giản đi nhiều.
Điều quan trọng nhất là cấu trúc phần cứng trong sơ đồ tối giản đã giảm đi gần 8 lần
trong khi tốc độ không thay đổi do mạch hồi tiếp có sử dụng kỹ thuật pipeline nên chỉ cần
một clock là đã thực hiện xong phép nhân trọng số và tích lũy giá trị mới. Clock trong
mạch này cao gấp 8 lần clock hệ thống.
Kỹ thuật điều khiển & Điện tử
P. M. Tới, Đ. X. Tiến, H. T. Phương, “Một phương pháp tăng tốc kiến trúc pipeline.” 102
a)
b)
Hình 9. a) Quá trình nhân và cộng tích lũy với nửa đầu ma trận trọng số;
b) Quá trình nhân và cộng tích lũy với nửa sau ma trận trọng số.
Hình 10. Quá trình nhân và cộng tích lũy của hệ thống có ma trận trọng số phụ.
Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số 56, 08 - 2018 103
Sử dụng ISE Design Suite 14.1 của Xilinx để thực thi phần cứng trên chip FPGA [2,7]
XC3S500E-PQ208 đã cho ra kiến trúc có chức năng tương ứng với sơ đồ hình 6 và hoạt
động theo thuật toán của máy trạng thái hình 7. Dưới đây là bảng thông tin về tài nguyên
sử dụng (trích xuất từ cửa sổ phần mềm Xilinx ISE Design Suite) cho phương án không sử
dụng ma trận trọng số phụ:
Các cấu trúc logic
được sử dụng
Đã sử dụng (Dung lượng chip
Đã sử dụng tính
theo % tài nguyên
Number of Slices 3154 4656 67%
Number of Slice Flip Flops 3415 9312 36%
Number of 4 input LUTs 2920 9312 31%
Number of bonded IOBs 27 158 17%
Number of GCLKs 1 24 4%
Và dưới đây là bảng thông tin về tài nguyên sử dụng (trích xuất từ cửa sổ phần mềm
Xilinx ISE Design Suite) cho phương án có sử dụng ma trận trọng số phụ:
Các cấu trúc logic
được sử dụng
Đã sử dụng Dung lượng chip
Đã sử dụng tính
theo % tài nguyên
Number of Slices 3197 4656 68%
Number of Slice Flip Flops 3446 9312 37%
Number of 4 input LUTs 2971 9312 31%
Number of bonded IOBs 25 158 15%
Number of GCLKs 1 24 4%
Điều đặc biệt là tài nguyên của phương án không sử dụng ma trận trọng số phụ và có
sử dụng ma trận trọng số phụ không chênh lệch nhiều, ví dụ số lượng Slices là 3154 so với
3197; số lượng input LUTs là 2920 so với 2971 Điều này có được là do phương pháp
biểu diễn giá trị trọng số Hadarmad bằng 1 bit thay vì 1 byte. Hơn nữa với chip Xilinx gói
XC3S500E-PQ208 chỉ tiêu tốn hết 68% dung lượng mà không cần phải sử dụng tới các
cấu trúc FPGA cao hơn như FPGA Virtex-5 hay Virtex-6.
4. KẾT LUẬN
Đối với các hệ xử lý chuyên dụng, vấn đề dung hòa giữa tốc độ xử lý và độ tin cậy của
hệ luôn luôn được đặt ra cho các nhà thiết kế. Kiến trúc hệ xử lý Hadamard trong bài báo
sử dụng phương pháp tối giản cấu trúc phần cứng để nâng cao độ tin cậy nhưng tốc độ vẫn
không thay đổi nhờ sử dụng kiến trúc pipeline trong mạch hồi tiếp thông minh. Cụ thể:
Ma trận trọng số được tối giản (1 hàng×4 cột) đã nâng cao được độ tin cậy so với cấu
trúc ma trận trọng số đầy đủ (8 hàng×4 cột). Hơn nữa, khi sử dụng ma trận trọng số phụ
thực hiện chức năng copy giá trị ma trận trọng số từ ma trận trọng số phụ vào ma trận
trọng số chính và kiến trúc pipeline thực hiện chức năng hồi tiếp giá trị kết quả trung gian
để xử lý trong chu trình vòng lặp đã nâng cao tốc độ làm việc lên so với các phương pháp
khác do quá trình tái nạp nửa ma trận trọng số chỉ cần trong một chu kỳ clock thay vì 32
chu kỳ clock. Điều này cho phép trong thực tế chỉ cần sử dụng các chip FPGA thông
thường thay vì phải sử dụng các chip FPGA cao cấp như Virtex-5 hay Virtex-6.
Chương trình được viết trên ngôn ngữ mô tả phần cứng VHDL nên bám sát được cấu
trúc phần cứng. Các khối chức năng đều được viết tách riêng thành các modul chương
trình nên khi chỉnh sửa hay bổ sung tính năng hệ thống trở nên dễ dàng. Điều này cho
phép mở rộng quy mô ma trận trọng số Hadamard khi cần thiết và điều khiển việc chia
tách hàng và cột của ma trận trở nên khả thi hơn.
Lời cảm ơn: Nhóm tác giả cảm ơn sự hỗ trợ của Phòng thí nghiệm Điện tử số và vi xử
lý của Bộ môn Kỹ thuật Vi xử lý Khoa Vô tuyến điện tử, Học viện Kỹ thuật quân sự.
Kỹ thuật điều khiển & Điện tử
P. M. Tới, Đ. X. Tiến, H. T. Phương, “Một phương pháp tăng tốc kiến trúc pipeline.” 104
TÀI LIỆU THAM KHẢO
[1]. Hoàng Thị Phương. “Thiết kế biến đổi HADAMARD tốc độ cao sử dụng trong các hệ
vi xử tín hiệu số”. Tạp chí Khoa học Giáo Dục Kỹ Thuật, Đại học SPKT thành phố
Hồ Chí Minh, năm 2014, số 27, tr. 09-16.
[2]. Trịnh Quang Kiên, Lê Xuân Bằng. “Thiết kế logic số”. Nxb Học viện kỹ thuật quân
sự, 2011.
[3]. Trịnh Quang Kiên, Đào Văn Lân. “Nghiên cứu cải tiến hệ thống kiểm tra tên lửa
Х35Э (3M-24E) trong tổ hợp tên lửa đối hạm URAN-E”. Đề tài NCKH cấp Bộ Quốc
phòng 2011-2013.
[4]. Sanat Kamal Bahi, Jim Plusquellic. “FPGA implementation of a fast Hadamard
transformer for WCDMA”. Proceeding FPGA '03 Proceedings of the 2003
ACM/SIGDA eleventh international symposium on Field programmable gate arrays.
Pages 237 – 237.
[5]. Ankit Agrawa, Amit Joshi. “FPGA Implementation of 4-Point and 8-Point Fast
Hadamard Transform”. International Journal of Computer Applications (0975 –
8887) Volume 124 – No.3, August 2015.
[6]. Vijayalakshmi Saravanan. “An optimizing pipeline stall reduction algorithm for power
and performance on multi-core CPUs”. Human-centric Computing and Information
Sciences. 29 January 2015.
[7]. Miodrag Bolic, Jonathan Parri. “Accessing an FPGA-based hardware accelerator in a
paravirtualized environment”. Hardware/Software Codesign and System Synthesis
(CODES+ISSS), 2013 International Conference. Sept. 29 2013-Oct. 4 2013. pp: 1-9.
ABSTRACT
A METHOD TO INCREASE THE HADAMARD TRANSFORM SPEED
WITH PIPELINE ARCHITECTURE
For specialized microprocessor systems, the problem of compromise
between processing speed and its reliability always has been posed to the designers.
Based on the idea of minimizing the structure of the Hadamard encoder in the CPU
core [1], a hardening of a Hadamard algorithm by FPGA technology in
combination with pipeline architecture to ensure both high speed and high
reliability due to the simpler structure of the system is proposed in this paper. When
comparing the 1 row × 4 column matrix structure with the 8 row × 4 column
matrix, the complexity was reduced to approximately 8 times, but the speed of 64-bit
data vector encoding on the minimal matrix remained unchanged. Simulation
results on ModelSim and implementation on the Xilinx ISE Design Suite show that
performance of the proposed approach is more superior than other approaches.
Keywords: Specialized microprocessor systems; FPGA; Hadamard; pipeline.
Nhận bài ngày 02 tháng 5 năm 2018
Hoàn thiện ngày 11 tháng 6 năm 2018
Chấp nhận đăng ngày 10 tháng 8 năm 2018
Địa chỉ: 1 HVKTQS;
2 Đại học Sư phạm Kỹ thuật Nam Định.
* Email: phamminhtoi@gmail.com.
Các file đính kèm theo tài liệu này:
- 11_toi1_4756_2150443.pdf