YOMEDIA
ADSENSE
Một phương pháp tăng tốc phép biến đổi Hadamard bằng kiến trúc Pipeline
40
lượt xem 3
download
lượt xem 3
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Bài viết đề 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.
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: 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ệ<br />
<br />
MỘT PHƯƠNG PHÁP TĂNG TỐC PHÉP BIẾN ĐỔI HADAMARD<br />
BẰNG KIẾN TRÚC PIPELINE<br />
Phạm Minh Tới1*, Đỗ Xuân Tiến1, Hoàng Thị Phương2<br />
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à<br />
độ 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<br />
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<br />
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<br />
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ó<br />
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<br />
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<br />
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ô<br />
phỏng trên ModelSim và thực thi trên Xilinx ISE Design Suite cho thấy hiệu năng của<br />
phương án đề xuất có nhiều ưu việt hơn so với các phương pháp khác.<br />
Từ khóa: Hệ xử lý chuyên dụng; FPGA; Hadamard; Pipeline.<br />
<br />
1. ĐẶT VẤN ĐỀ<br />
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<br />
(Fast Hadamard Transform) bằng công nghệ FPGA. Tuy nhiên, cấu trúc phần cứng khá<br />
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<br />
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.<br />
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ã<br />
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<br />
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.<br />
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ụ để<br />
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<br />
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ố<br />
đã 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<br />
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<br />
hình 1.<br />
<br />
<br />
<br />
<br />
Hình 1. Cấu trúc ma trận trọng số 1 hàng×4 cột.<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 56, 08 - 2018 95<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
2. NỘI DUNG CẦN GIẢI QUYẾT<br />
2.1. Cơ sở lý thuyết<br />
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<br />
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<br />
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<br />
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<br />
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ố,<br />
đó 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ể<br />
biểu diễn phép xử lý tín hiệu số thông qua mối quan hệ hàm:<br />
m 1 m 1 n 1<br />
Z Zi <br />
i 0<br />
(Yi Wij X j )<br />
i 0 j 0<br />
(1)<br />
<br />
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<br />
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<br />
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,<br />
ví dụ H8, Wij có cấu trúc W8,8 như thể hiện trên hình 2.<br />
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1<br />
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1<br />
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1<br />
H 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1<br />
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1<br />
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1<br />
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1<br />
<br />
<br />
Hình 2. Mã Hadamard 8×8 tách thành 2 nửa 8×4 và 8×4.<br />
Đ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<br />
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<br />
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.<br />
2.2. Ma trận trọng số Hadamard tối giản<br />
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ý<br />
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ư<br />
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<br />
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<br />
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<br />
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<br />
nhiều lần gây trễ hệ thống rất lớn.<br />
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<br />
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<br />
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à<br />
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<br />
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<br />
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 để<br />
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<br />
<br />
<br />
96 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.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
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<br />
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<br />
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ử<br />
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<br />
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ố<br />
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<br />
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<br />
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<br />
tác của ma trận sẽ kết thúc.<br />
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<br />
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<br />
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<br />
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<br />
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ể<br />
hiện trên hình 3:<br />
<br />
<br />
<br />
<br />
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).<br />
Kết xuất nửa ma trận chẵn được tính bằng (2):<br />
3 3 7<br />
Z Z i (Yi WijX j ) (2)<br />
i 0 i 0 j 0<br />
<br />
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<br />
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à<br />
kết xuất nửa ma trận lẻ được tính bằng (3):<br />
7 7 7<br />
Z Z i (Yi WijX j ) (3)<br />
i4 i4 j 0<br />
<br />
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<br />
byte dữ liệu X cần xử lý.<br />
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<br />
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<br />
word 64 bit dữ liệu của X.<br />
<br />
2.3. Thiết kế ma trận trọng số Hadamard tối giản sử dụng kiến trúc pipeline.<br />
Để 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<br />
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<br />
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ệ<br />
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<br />
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<br />
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<br />
đạt kết quả cuối cùng.<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 56, 08 - 2018 97<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
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ố<br />
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.<br />
<br />
<br />
<br />
<br />
a) b)<br />
Hình 4. a) Ma trận đầy đủ 8 hàng×4 cột;<br />
b) Ma trận tối giản 1 hàng×4 cột.<br />
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<br />
chu trình vòng lặp bao gồm 4 cấu trúc như thể hiện trên hình 5.<br />
<br />
<br />
<br />
<br />
Hình 5. a) Thanh ghi hồi tiếp BR; b) Kiến trúc pipeline có hồi tiếp.<br />
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<br />
tốc độ của bộ pipeline làm chức năng nhân và cộng tích lũy.<br />
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<br />
đượ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à<br />
”Load_sygn_bit_to_4_reg_1bit” cho phép nạp trong 1 clock các nội dung từ 2 bộ nhớ<br />
RAM 128X8bit (chứa dữ liệu) và SYGN 32 bit (chứa giá trị nửa ma trận Hadarmad ) vào<br />
2 thanh ghi “Thanh ghi 4x8bit =32 bit” và “Thanh ghi 4x1bit =4 bit”.<br />
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<br />
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<br />
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<br />
<br />
<br />
98 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.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
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,<br />
2 hay 3.<br />
<br />
<br />
<br />
<br />
Hình 6. Cấu trúc phần cứng trên FPGA.<br />
3. KẾT QUẢ MÔ PHỎNG, THỰC THI VÀ THẢO LUẬN<br />
3.1. Tổ chức hệ mô phỏng bán tự nhiên<br />
Để 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<br />
biến đổi Hadamard:<br />
+ Phần cứng sử dụng chip Spartan 3 để nhúng chức năng biến đổi Hadamard với<br />
ma trận tối giản.<br />
+ Phần mềm sử dụng ModelSim6.5c và ISE Design Suite 14.1 của Xilinx để mô<br />
phỏng và thực thi phần cứng.<br />
+ Số liệu sẽ lấy từ thiết bị X35V1 ở chế độ K78, CK6.3 và KY502 [3].<br />
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<br />
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<br />
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-<br />
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<br />
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<br />
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<br />
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.<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 56, 08 - 2018 99<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
<br />
<br />
<br />
a)<br />
<br />
<br />
<br />
<br />
b)<br />
Hình 7. a) Máy trạnh thái không có ma trận phụ;<br />
b) Máy trạnh thái có ma trận phụ.<br />
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ố<br />
Hadamard không có ma trận phụ và ma trận trọng số Hadamard có ma trận phụ như thể<br />
hiện trên hình 8.<br />
<br />
<br />
<br />
100 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.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
<br />
<br />
<br />
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ụ,<br />
b) ma trận trọng số Hadamard có ma trận phụ.<br />
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.<br />
Đố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<br />
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<br />
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<br />
1 vector dữ liệu kích thước 8 byte. Sự chênh lệch là rất rõ.<br />
3.2. Thực hiện mô phỏng và phân tích kết quả<br />
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ù<br />
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ử<br />
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<br />
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ứ<br />
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<br />
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<br />
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<br />
ModelSim6.5c và được thể hiện trên đồ thị thời gian hình 9a và 9b.<br />
Đố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<br />
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ứ<br />
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ứ<br />
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 để<br />
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à<br />
được thể hiện trên hình 10.<br />
Đ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<br />
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à<br />
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<br />
đươ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<br />
trúc ma trận trọng số phụ được đơn giản đi nhiều.<br />
Đ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<br />
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<br />
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<br />
mạch này cao gấp 8 lần clock hệ thống.<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 56, 08 - 2018 101<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
<br />
<br />
<br />
a)<br />
<br />
<br />
<br />
<br />
b)<br />
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ố;<br />
b) Quá trình nhân và cộng tích lũy với nửa sau ma trận trọng số.<br />
<br />
<br />
<br />
<br />
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ụ.<br />
<br />
<br />
102 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.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
Sử dụng ISE Design Suite 14.1 của Xilinx để thực thi phần cứng trên chip FPGA [2,7]<br />
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<br />
độ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<br />
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ử<br />
dụng ma trận trọng số phụ:<br />
Các cấu trúc logic Đã sử dụng tính<br />
Đã sử dụng (Dung lượng chip<br />
được sử dụng theo % tài nguyên<br />
Number of Slices 3154 4656 67%<br />
Number of Slice Flip Flops 3415 9312 36%<br />
Number of 4 input LUTs 2920 9312 31%<br />
Number of bonded IOBs 27 158 17%<br />
Number of GCLKs 1 24 4%<br />
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<br />
Xilinx ISE Design Suite) cho phương án có sử dụng ma trận trọng số phụ:<br />
Các cấu trúc logic Đã sử dụng tính<br />
Đã sử dụng Dung lượng chip<br />
được sử dụng theo % tài nguyên<br />
Number of Slices 3197 4656 68%<br />
Number of Slice Flip Flops 3446 9312 37%<br />
Number of 4 input LUTs 2971 9312 31%<br />
Number of bonded IOBs 25 158 15%<br />
Number of GCLKs 1 24 4%<br />
Đ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ó<br />
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<br />
3197; số lượng input LUTs là 2920 so với 2971… Điều này có được là do phương pháp<br />
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<br />
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<br />
cấu trúc FPGA cao hơn như FPGA Virtex-5 hay Virtex-6.<br />
4. KẾT LUẬN<br />
Đố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<br />
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<br />
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<br />
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ể:<br />
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<br />
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ụ<br />
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<br />
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<br />
để 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<br />
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<br />
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<br />
thường thay vì phải sử dụng các chip FPGA cao cấp như Virtex-5 hay Virtex-6.<br />
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<br />
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<br />
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<br />
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<br />
tách hàng và cột của ma trận trở nên khả thi hơn.<br />
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ử<br />
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ự.<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 56, 08 - 2018 103<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
TÀI LIỆU THAM KHẢO<br />
[1]. Hoàng Thị Phương. “Thiết kế biến đổi HADAMARD tốc độ cao sử dụng trong các hệ<br />
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ố<br />
Hồ Chí Minh, năm 2014, số 27, tr. 09-16.<br />
[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<br />
sự, 2011.<br />
[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<br />
Х35Э (3M-24E) trong tổ hợp tên lửa đối hạm URAN-E”. Đề tài NCKH cấp Bộ Quốc<br />
phòng 2011-2013.<br />
[4]. Sanat Kamal Bahi, Jim Plusquellic. “FPGA implementation of a fast Hadamard<br />
transformer for WCDMA”. Proceeding FPGA '03 Proceedings of the 2003<br />
ACM/SIGDA eleventh international symposium on Field programmable gate arrays.<br />
Pages 237 – 237.<br />
[5]. Ankit Agrawa, Amit Joshi. “FPGA Implementation of 4-Point and 8-Point Fast<br />
Hadamard Transform”. International Journal of Computer Applications (0975 –<br />
8887) Volume 124 – No.3, August 2015.<br />
[6]. Vijayalakshmi Saravanan. “An optimizing pipeline stall reduction algorithm for power<br />
and performance on multi-core CPUs”. Human-centric Computing and Information<br />
Sciences. 29 January 2015.<br />
[7]. Miodrag Bolic, Jonathan Parri. “Accessing an FPGA-based hardware accelerator in a<br />
paravirtualized environment”. Hardware/Software Codesign and System Synthesis<br />
(CODES+ISSS), 2013 International Conference. Sept. 29 2013-Oct. 4 2013. pp: 1-9.<br />
ABSTRACT<br />
A METHOD TO INCREASE THE HADAMARD TRANSFORM SPEED<br />
WITH PIPELINE ARCHITECTURE<br />
For specialized microprocessor systems, the problem of compromise<br />
between processing speed and its reliability always has been posed to the designers.<br />
Based on the idea of minimizing the structure of the Hadamard encoder in the CPU<br />
core [1], a hardening of a Hadamard algorithm by FPGA technology in<br />
combination with pipeline architecture to ensure both high speed and high<br />
reliability due to the simpler structure of the system is proposed in this paper. When<br />
comparing the 1 row × 4 column matrix structure with the 8 row × 4 column<br />
matrix, the complexity was reduced to approximately 8 times, but the speed of 64-bit<br />
data vector encoding on the minimal matrix remained unchanged. Simulation<br />
results on ModelSim and implementation on the Xilinx ISE Design Suite show that<br />
performance of the proposed approach is more superior than other approaches.<br />
Keywords: Specialized microprocessor systems; FPGA; Hadamard; pipeline.<br />
<br />
<br />
Nhận bài ngày 02 tháng 5 năm 2018<br />
Hoàn thiện ngày 11 tháng 6 năm 2018<br />
Chấp nhận đăng ngày 10 tháng 8 năm 2018<br />
1<br />
Địa chỉ: HVKTQS;<br />
2<br />
Đại học Sư phạm Kỹ thuật Nam Định.<br />
*<br />
Email: phamminhtoi@gmail.com.<br />
<br />
<br />
<br />
<br />
104 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.”<br />
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn