intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Nén Bitstream sử dụng Run-Length Encoding trên nền hệ nhúng FPGA

Chia sẻ: Thi Thi | Ngày: | Loại File: PDF | Số trang:7

20
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong bài báo này, thực hiện một kỹ thuật nén bitstream sử dụng mã run-length trên nền tảng phần cứng mới. Phần nén bitstream được thực hiện trên máy tính còn phần giải nén thực hiện trên hệ nhúng của FPGA. Kết quả đạt được khả dụng trong thực tế với tỉ số nén tốt, chi phí phần cứng giải nén là chấp nhận được.

Chủ đề:
Lưu

Nội dung Text: Nén Bitstream sử dụng Run-Length Encoding trên nền hệ nhúng FPGA

Kü thuËt ®iÖn tö & Khoa häc m¸y tÝnh<br /> <br /> <br /> NÐN BITSTREAM Sö DôNG RUN-LENGTH ENCODING<br /> TR£N NÒN HÖ NHóNG FPGA<br /> Vò HUY THÕ*, TRÇN THANH**, PH¹M NGäC NAM***, PH¹M NGäC TH¾NG*<br /> Tãm t¾t: C«ng nghÖ FPGA hiÖn nay ®­îc sö dông réng r·i trong c¸c hÖ thèng cã thÓ cÊu<br /> h×nh l¹i. Th«ng tin cÊu h×nh (bitstream) cho FPGA th­êng n»m trªn mét bé nhí trong hoÆc<br /> ngoµi. ViÖc nÐn bitstream lµ rÊt quan träng trong thiÕt kÕ hÖ thèng cÊu h×nh l¹i sö dông<br /> FPGA v× nã lµm gi¶m kÝch th­íc bitstream, dung l­îng cña bé nhí yªu cÇu. H¬n n÷a, viÖc<br /> nÐn bitstream cßn c¶i thiÖn b¨ng th«ng vµ lµm gi¶m thêi gian cÊu h×nh hÖ thèng. Trong bµi<br /> b¸o nµy, c¸c t¸c gi¶ thùc hiÖn mét kü thuËt nÐn bitstream sö dông m· run-length trªn nÒn<br /> t¶ng phÇn cøng míi. PhÇn nÐn bitstream ®­îc thùc hiÖn trªn m¸y tÝnh cßn phÇn gi¶i nÐn thùc<br /> hiÖn trªn hÖ nhóng cña FPGA. KÕt qu¶ ®¹t ®­îc kh¶ dông trong thùc tÕ víi tØ sè nÐn tèt, chi<br /> phÝ phÇn cøng gi¶i nÐn lµ chÊp nhËn ®­îc.<br /> Tõ khãa: FPGA, NÐn Bitstream, M· Run-Length, TØ sè nÐn.<br /> <br /> 1. Më §ÇU<br /> Trong nh÷ng n¨m gÇn ®©y, FPGA (Field-Programmable Gate Array) ®ang ®­îc sö<br /> dông réng r·i trong c¸c hÖ thèng nhóng vµ cÊu h×nh l¹i. FGPA ®­îc cÊu h×nh nhê c¸c<br /> bitstream ®­îc t¶i lªn tõ bé nhí. ViÖc nÐn bitstream ®em l¹i nh÷ng lîi Ých thiÕt thùc nh­:<br /> sö dông Ýt dung l­îng, vµ c¶i thiÖn b¨ng th«ng cña bé nhí l­u tr÷ th«ng tin cÊu h×nh vµ<br /> gi¶m thêi gian cÊu h×nh. Do ®ã, vÊn ®Ò nµy ®ang nhËn ®­îc sù quan t©m nghiªn cøu cña<br /> nhiÒu nhµ khoa häc. Andreas Dandalis vµ K. Prasanna ®Ò xuÊt mét thuËt to¸n nÐn<br /> bitstream nh»m gi¶m thiÓu bé nhí chøa th«ng tin cÊu h×nh cña FPGA [4]. Kü thuËt nµy<br /> ®­îc øng dông víi c¸c FPGA dùa trªn SRAM kiÓu nÐn tõ ®iÓn vµ ®­îc b¾t nguån tõ thuËt<br /> to¸n LZW (Lempel Ziv Welch). ThuËt to¸n nµy cã hiÖu n¨ng gi¶i nÐn cao nh­ng chi phÝ<br /> phÇn cøng gi¶i nÐn ®¾t ®á. Sau ®ã, Stefan vµ céng sù ®Ò xuÊt mét ph­¬ng ph¸p nÐn sö<br /> dông m· to¸n häc vµ kiÓu nÐn tõ ®iÓn [5], tuy nhiªn h¹n chÕ cña c¸c kü thuËt nµy lµ chi<br /> phÝ phÇn cøng gi¶i nÐn cßn kh¸ cao vµ ch­a cã m« h×nh m¹ch ®Öm cña phÇn cøng gi¶i nÐn.<br /> Kü thuËt nÐn tõ ®iÓn sau ®ã ®­îc c¶i tiÕn bëi Seong vµ céng sù, khi sö dông c¸c mÆt n¹ bit<br /> (bitmask) [8]. Kü thuËt nÐn bitmask ®­îc thiÕt kÕ ®Ó lµm gi¶m kÝch th­íc cña tõ ®iÓn tõ<br /> ®ã lµm t¨ng hiÖu qu¶ nÐn. Wolfe vµ Chanin lÇn ®Çu tiªn ®Ò xuÊt m· Huffman ®Ó nÐn trªn<br /> kiÕn tróc nhóng RISC (Reduced Instructions Set Computer) [6]. Hai ph­¬ng ph¸p nÐn m·<br /> míi sö dông m· V2F (Variable to Fixed) cho hÖ thèng nhóng ®· ®­îc ®Ò xuÊt bëi Y. Xie,<br /> W.Wolf vµ H.Lekatsas [7]. Ph­¬ng ph¸p thø nhÊt dùa trªn m· Tunstall vµ ph­¬ng ph¸p<br /> thø hai dùa trªn viÖc chØnh söa m· to¸n häc. V× ®é dµi m· ®­îc cè ®Þnh nªn ho¹t ®éng cã<br /> thÓ ®­îc thùc hiÖn dÔ dµng cïng víi chi phÝ phÇn cøng O(n) hîp lý cho bé ®Öm n-bit, bëi<br /> v× tÊt c¶ c¸c m· cã ®é dµi gièng nhau vµ chØ cÇn mét bé ghi dÞch. Kü thuËt nÐn bitstream<br /> hç trî gi¶i nÐn song song mµ kh«ng cÇn hy sinh hiÖu n¨ng nÐn do Qin vµ céng sù ®Ò xuÊt<br /> [9] cho phÐp t¨ng b¨ng th«ng gi¶i m· b»ng viÖc sö dông nhiÒu bé gi¶i m· ®ång thêi vµ cã<br /> thÓ sö dông bÊt kú mét thuËt to¸n nÐn nµo hiÖn cã. Tuy vËy, m¹ch ®Öm sÏ phøc t¹p h¬n<br /> nhiÒu khi ®é dµi tõ m· thay ®æi. Nh­ vËy, c¸c thuËt to¸n nÐn bitstream ®· ®Ò xuÊt cã thÓ<br /> chia thµnh hai nhãm: nhãm ®Çu tiªn cã tØ sè nÐn tèt, nh­ng khã chÊp nhËn trong gi¶i nÐn<br /> v× chi phÝ vµ ®é phøc t¹p cao. Nhãm cßn l¹i hiÖu qu¶ trong gi¶i nÐn nh­ng l¹i cã tØ sè nÐn<br /> kh«ng tèt.V× vËy, th¸ch thøc lín trong kü thuËt nÐn bitstream lµ tØ sè nÐn tèt vµ hiÖu qu¶<br /> gi¶i nÐn cao. Do ®ã, bµi b¸o sÏ ®Ò xuÊt mét ph­¬ng ¸n nÐn vµ gi¶i nÐn bitstream trªn c¬ së<br /> sö dông m· RLE (Run-length compression) [3]. PhÇn nÐn ®­îc thùc hiÖn trªn m¸y tÝnh,<br /> phÇn gi¶i nÐn thùc hiÖn trªn nÒn t¶ng phÇn cøng míi, ®ã lµ hÖ nhóng cña FPGA.KÕt qu¶<br /> ®¹t ®­îc cho thÊy, tØ sè nÐn tèt vµ chi phÝ gi¶i nÐn chÊp nhËn ®­îc trong øng dông thùc tÕ.<br /> <br /> <br /> <br /> <br /> 126 V.H.ThÕ, T.Thanh, P.N.Nam, P.N.Th¾ng, "NÐn Bitstream sö dông… hÖ nhóng FPGA."<br /> Nghiªn cøu khoa häc c«ng nghÖ<br /> <br /> 2. NÐN BITSTREAM Sö DôNG THUËT TO¸N §é DµI LO¹T RLE<br /> 2.1. Nªu vÊn ®Ò<br /> Th«ng tin cÊu h×nh cho FPGA chøa trong c¸c bé nhí th­êng bÞ giíi h¹n vÒ dung l­îng<br /> vµ b¨ng th«ng. KÝch th­íc vµ b¨ng th«ng cña bé nhí l­u tr÷ th«ng tin cÊu h×nh trë thµnh<br /> mét tham sè trong viÖc x¸c ®Þnh sè lâi IP (Intellectual Property Core) mµ hÖ thèng cã thÓ<br /> ®­îc cÊu h×nh vµ ®é trÔ trong viÖc cÊu h×nh l¹i. C¸c thuËt to¸n nÐn bitstream sÏ gi¶i quyÕt<br /> vÊn ®Ò bé nhí b»ng c¸ch gi¶m kÝch th­íc bitstream vµ t¨ng tèc ®é cÊu h×nh. C¸c phÇn<br /> cøng gi¶i nÐn sÏ gi¶i m· vµ truyÒn c¸c bit (®· gi¶i nÐn) tíi c¸c CLB (Configurable Logic<br /> Block) trªn FPGA. TØ sè nÐn th­êng ®­îc sö dông ®Ó xem xÐt hiÖu qu¶ cña c¸c kü thuËt<br /> nÐn vµ ®­îc ®Þnh nghÜa nh­ sau [1]:<br /> CP<br /> CR  (1)<br /> OP<br /> trong ®ã, CR (Compression Ratio) lµ tØ sè nÐn, CP (Compressed Program) lµ kÝch th­íc<br /> ch­¬ng tr×nh ®· nÐn, OP (Original Program) lµ kÝch th­íc d÷ liÖu gèc ban ®Çu.<br /> 2.2. CÊu tróc bitstream cña h·ng Xilinx<br /> Bitstream cã thÓ ®­îc chia thµnh c¸c ®¬n vÞ riªng biÖt ®­îc gäi lµ c¸c gãi tin. Mçi gãi<br /> bao gåm mét tiªu ®Ò (header) 32-bit, tiªu ®Ò nµy sÏ ®Þnh nghÜa c¸c thanh ghi sÏ ®­îc ghi<br /> vµo hoÆc ®äc ra, sè l­îng c¸c tõ d÷ liÖu 32-bit trong gãi tin, c¸c th«ng tin kh¸c liªn quan<br /> ®Õn gãi tin. Ngay sau tiªu ®Ò lµ ®Õn c¸c tõ d÷ liÖu víi c¸c th«ng tin liªn quan nh­ trong tiªu<br /> ®Ò ®· ®Þnh nghÜa. Bitstream ®­îc t¹o thµnh c¸c gãi ®Ó ghi vµ cÊu h×nh cho FPGA [10]. Cã<br /> hai c¸ch ®­îc sö dông ®Ó ghi d÷ liÖu lªn FPGA lµ ghi tuÇn tù vµ ghi ®a khung MFW<br /> (Multipe Frame Write) [11]. Mçi c¸ch ghi ®ã bao gåm nhiÒu gãi tin vµ ®­îc thùc hiÖn tõ<br /> viÖc thiÕt lËp cho c¸c thanh ghi cÊu h×nh ®Õn viÖc göi ®i c¸c d÷ liÖu cÊu h×nh cho thiÕt bÞ.<br /> Cã hai lo¹i bitstream chÝnh sö dông cho cÊu h×nh FPGA: Bitstream ®Çy ®ñ (Full bitstream)<br /> vµ bitstream tõng phÇn (Partial bitstream). Bitstream ®Çy ®ñ cã chøa tÊt c¶ c¸c lÖnh cÇn<br /> thiÕt ®Ó khëi t¹o FPGA. Th«ng th­êng mét bitstream cÊu h×nh khëi t¹o ban ®Çu lµ mét<br /> bitstream ®Çy ®ñ. Bitstream tõng phÇn kh«ng chøa c¸c lÖnh khëi t¹o bëi v× nã ®­îc sö<br /> dông ®Ó cÊu h×nh FPGA trong qu¸ tr×nh thùc thi vµ sau khi viÖc khëi t¹o cÊu h×nh ®· hoµn<br /> thµnh. Mét bitstream tõng phÇn sÏ ghi ®Ì lªn mét vïng cÊu h×nh tõng phÇn.<br /> CÊu h×nh tõng phÇn PR (Partial Reconfiguration) linh ho¹t, cho phÐp söa ®æi, bæ sung<br /> mét thiÕt kÕ trªn FPGA b»ng c¸ch t¶i mét file cÊu h×nh tõng phÇn ngay khi hÖ thèng vÉn<br /> ®ang ho¹t ®éng. Sau khi mét tËp tin bit ®Çy ®ñ cÊu h×nh cho FPGA, c¸c tËp tin bit tõng<br /> phÇn cã thÓ ®­îc n¹p xuèng ®Ó söa ®æi c¸c khu vùc cÊu h×nh l¹i trong FPGA mµ kh«ng<br /> lµm ¶nh h­ëng ®Õn tÝnh toµn vÑn cña c¸c øng dông ch¹y trªn c¸c bé phËn kh¸c cña thiÕt bÞ.<br /> <br /> FPGA A4.bit<br /> A3.bit<br /> A2.bit<br /> A1.bit<br /> Khèi cÊu<br /> h×nh l¹i “A”<br /> <br /> <br /> <br /> H×nh 1. TiÒn ®Ò c¬ b¶n cña cÊu h×nh tõng phÇn.<br /> Nh­ m« t¶ trªn H×nh 1, chøc n¨ng ®­îc thùc hiÖn t¹i khèi cÊu h×nh l¹i A ®­îc söa ®æi b»ng<br /> c¸ch n¹p xuèng mét trong sè c¸c tËp tin bit tõng phÇn, A1.bit, A2.bit, A3.bit hoÆc A4.bit.<br /> ThiÕt kÕ FPGA ®­îc chia thµnh hai d¹ng kh¸c nhau, phÇn logic cÊu h×nh l¹i vµ phÇn logic tÜnh.<br /> Vïng mµu x¸m cña khèi FPGA ®¹i diÖn cho phÇn logic tÜnh vµ phÇn khèi cã nh·n cÊu h×nh l¹i<br /> "A" ®¹i diÖn cho phÇn logic cÊu h×nh l¹i. PhÇn logic tÜnh vÉn ho¹t ®éng b×nh th­êng vµ hoµn<br /> <br /> <br /> <br /> T¹p chÝ Nghiªn cøu KH&CN qu©n sù, Sè 31, 06 - 2014 127<br /> Kü thuËt ®iÖn tö & Khoa häc m¸y tÝnh<br /> <br /> toµn kh«ng bÞ ¶nh h­ëng bëi viÖc n¹p xuèng mét tËp tin bit tõng phÇn. PhÇn logic cÊu h×nh l¹i<br /> ®­îc tõng phÇn cã thÓ thay thÕ b»ng néi dung cña c¸c tËp tin bit tõng phÇn.<br /> 2.3. X©y dùng cÊu tróc hÖ thèng<br /> CÊu tróc bitstream cã nhiÒu c¸c tõ nhÞ ph©n gi¸ trÞ gièng nhau ®­îc lÆp l¹i liªn tiÕp. §©y lµ<br /> nh÷ng vïng tµi nguyªn cña FPGA mµ ch­a ®­îc sö dông ®Õn. §Æc ®iÓm cña bitstream nh­ vËy<br /> cã thÓ ph¸t huy ®­îc ­u ®iÓm cña m· RLE. Th«ng th­êng, sau khi gi¶i nÐn xong, bitstream sÏ<br /> ®­îc chøa trong khu vùc cÊu h×nh cña hÖ thèng, råi sau ®ã FPGA sÏ ®­îc cÊu h×nh. Tuy nhiªn,<br /> c¸c t¸c gi¶ ®­a ra gi¶i ph¸p lµ sÏ kÕt hîp víi kh¶ n¨ng cÊu h×nh tõng phÇn cña c¸c chip FPGA:<br /> sau khi gi¶i nÐn xong, mçi phÇn bitstream sÏ ®­îc ®­a ngay sang khèi cÊu h×nh tõng phÇn ®Ó<br /> thùc hiÖn cÊu h×nh ngay thay v× viÖc ph¶i chê gi¶i nÐn xong toµn bé bitstream. Nh­ vËy, gi¶i<br /> ph¸p ®­a ra cã thÓ lµm gi¶m ®­îc thêi gian cÊu h×nh cña FPGA.<br /> S¬ ®å khèi cña hÖ thèng ®­îc x©y dùng nh­ h×nh 2.<br /> <br /> Trªn m¸y tÝnh<br /> File cÊu h×nh hÖ<br /> thèng NÐn RLE<br /> (bitstream file)<br /> <br /> <br /> <br /> <br /> Gi¶i nÐn RLE Code ®· nÐn<br /> Bé nhí<br /> CÊu h×nh<br /> <br /> <br /> Trªn KIT FPGA<br /> Trªn FPGA<br /> <br /> <br /> H×nh 2. S¬ ®å khèi hÖ thèng.<br /> Theo cÊu tróc h×nh 2, c¸c t¸c gi¶ ®Ò xuÊt ph­¬ng ¸n thùc hiÖn nh­ sau:<br /> Trªn m¸y tÝnh: SÏ thùc hiÖn nÐn file cÊu h×nh (file *.bit) cña FPGA. M¸y tÝnh sÏ ®­îc cµi ®Æt<br /> ch­¬ng tr×nh nÐn theo thuËt to¸n RLE. KÕt thóc qu¸ tr×nh trªn m¸y tÝnh lµ mét file ®· ®­îc nÐn.<br /> TiÕp theo ®ã file nµy sÏ ®­îc truyÒn tõ m¸y tÝnh xuèng bé nhí ®­îc ®Æt trªn Kit FPGA.<br /> Trªn Kit FPGA:<br /> - Khèi bé nhí: Cã nhiÖm vô l­u tr÷ th«ng tin cÊu h×nh ®· ®­îc nÐn. C¸c th«ng tin nµy<br /> sÏ ®­îc ®äc ra trong qu¸ tr×nh gi¶i nÐn.<br /> - Gi¶i nÐn RLE: Thùc hiÖn gi¶i nÐn theo thuËt to¸n RLE. Sau khi gi¶i nÐn xong th×<br /> th«ng tin cÊu h×nh gèc ban ®Çu sÏ ®­îc chuyÓn sang khèi thùc hiÖn cÊu h×nh ®Ó cÊu h×nh<br /> cho chip FPGA.<br /> - CÊu h×nh: Khèi nµy thùc hiÖn cÊu h×nh cho FGPA. Th«ng tin cÊu h×nh tõ khèi gi¶i nÐn<br /> sÏ ®­îc ®­a vµo khèi nµy ®Ó thùc hiÖn cÊu h×nh. ViÖc cÊu h×nh cã thÓ sÏ ®­îc cÊu h×nh<br /> toµn phÇn hoÆc lµ cÊu h×nh tõng phÇn.<br /> 2.4. KÕt qu¶ thiÕt kÕ hÖ thèng<br /> C¸c t¸c gi¶ ®· x©y dùng hÖ thèng nÐn vµ gi¶i nÐn bitstream gåm hai phÇn chÝnh:<br /> ch­¬ng tr×nh nÐn trªn m¸y tÝnh vµ ch­¬ng tr×nh gi¶i nÐn trªn Kit FPGA.<br /> 2.4.1. X©y dùng phÇn mÒm nÐn bitstream trªn m¸y tÝnh<br /> Ch­¬ng tr×nh nÐn trªn m¸y tÝnh ®­îc viÕt b»ng Visual C++ cã giao diÖn nh­ h×nh 3.<br /> <br /> <br /> <br /> <br /> 128 V.H.ThÕ, T.Thanh, P.N.Nam, P.N.Th¾ng, "NÐn Bitstream sö dông… hÖ nhóng FPGA."<br /> Nghiªn cøu khoa häc c«ng nghÖ<br /> <br /> <br /> <br /> <br /> H×nh 3. Giao diÖn ch­¬ng tr×nh nÐn trªn m¸y tÝnh.<br /> Sè bÝt trªn mÉu sÏ qui ®Þnh sè l­îng c¸c byte tèi ®a lÆp l¹i liªn tiÕp (length value) cña<br /> mét ký tù. Theo (1), kÕt qu¶ kh¶o s¸t vÒ sù phô thuéc cña tØ sè nÐn CR vµo dung l­îng file<br /> bitstream ®Çu vµo víi sè bÝt trªn mÉu ®Ó cè ®Þnh lµ 8 bÝt t­¬ng ®­¬ng víi 256 mÉu vµ thu<br /> ®­îc kÕt qu¶ nh­ h×nh 4.<br /> <br /> <br /> <br /> <br /> H×nh 4. Mèi quan hÖ tØ sè nÐn víi c¸c file bitstream kÝch th­íc kh¸c nhau.<br /> Theo nh­ ®å thÞ h×nh 4 ta cã thÓ thÊy r»ng, tØ sè nÐn cã xu h­íng gi¶m khi mµ kÝch th­íc<br /> cña file bitstream ®Çu vµo t¨ng. §iÒu nµy lµ hoµn toµn cã lîi bëi lÏ khi ®ã dung l­îng cña bé<br /> nhí l­u tr÷ sÏ gi¶m ®i rÊt ®¸ng kÓ. TØ sè nÐn gi¶m cã thÓ ®­îc gi¶i thÝch nh­ sau: khi kÝch<br /> th­íc file bitstream t¨ng th× sè l­îng c¸c ký tù lÆp l¹i liªn tiÕp lín h¬n. ChÝnh v× lý do ®ã mµ tØ<br /> sè nÐn sÏ gi¶m. KÕt qu¶ kh¶o s¸t vÒ sù phô thuéc cña tØ sè nÐn vµo sè l­îng bÝt trªn mÉu ®­îc<br /> m« t¶ trªn biÓu ®å ë h×nh 5. Ta cã thÓ thÊy r»ng, víi cïng mét file bitstream ®Çu vµo th× tØ sè<br /> nÐn cã xu h­íng t¨ng lªn khi mµ sè bÝt trªn mÉu t¨ng. §iÒu nµy lµ do khi sè l­îng bÝt trªn mÉu<br /> t¨ng th× sè l­îng c¸c ký tù lÆp liªn tiÕp cã thÓ l­u tr÷ ®­îc t¨ng vµ kÝch th­íc bé nhí cÇn l­u<br /> tr÷ gi¸ trÞ trªn còng t¨ng. Tuy nhiªn, thùc tÕ, sè l­îng c¸c ký tù lÆp l¹i liªn tiÕp kh«ng ph¶i chç<br /> nµo còng nhiÒu ®Õn nh­ vËy nªn tØ sè nÐn cã xu h­íng t¨ng lªn khi mµ sè l­îng bÝt trªn mÉu<br /> t¨ng. Do vËy, chóng ta cã thÓ thÊy r»ng, sö dông RLE ®Ó nÐn bitstream lµ rÊt phï hîp v× nã<br /> cho phÐp tØ sè nÐn kh¸ nhá: víi bitstream cã dung l­îng lín gÇn 9 MB mµ tØ sè nÐn ®¹t ®­îc<br /> lµ h¬n 5%, mét kÕt qu¶ rÊt tèt. §iÒu nµy sÏ lµm gi¶m chi phÝ khi bé nhí cÇn l­u tr÷ kh¸ lín.<br /> <br /> <br /> <br /> <br /> H×nh 5. Mèi quan hÖ gi÷a tØ sè nÐn vµ sè l­îng bÝt trªn mÉu<br /> <br /> <br /> T¹p chÝ Nghiªn cøu KH&CN qu©n sù, Sè 31, 06 - 2014 129<br /> Kü thuËt ®iÖn tö & Khoa häc m¸y tÝnh<br /> <br /> 2.4.2.X©y dùng phÇn cøng vµ ch­¬ng tr×nh gi¶i nÐn bitstream trªn Kit FPGA<br /> S¬ ®å khèi chi tiÕt cña phÇn cøng gi¶i nÐn bitstream mµ c¸c t¸c gi¶ thùc hiÖn ®­îc m« t¶ trªn<br /> h×nh 6.<br /> <br /> <br /> <br /> <br /> H×nh 6. S¬ ®å khèi phÇn cøng gi¶i nÐn.<br /> Gi¶i ph¸p thùc hiÖn:<br /> - Khèi NÒn t¶ng phÇn cøng: c¸c t¸c gi¶ sö dông Virtex 6- FPGA ML605 Evaluation Kit.<br /> - Khèi FPGA: Lµ chip Virtex 6-xc6vlx240t cña h·ng Xilinx. Trong chip FPGA nµy, c¸c t¸c<br /> gi¶ x©y dùng mét vi xö lý lâi mÒm MicroBlaze ®¬n nh©n víi tÇn sè xung nhÞp lµ 100 Mhz.<br /> Chip lâi mÒm sÏ giao tiÕp víi m¸y tÝnh th«ng qua khèi UART, ®©y lµ bé ®iÒu khiÓn truyÒn<br /> th«ng nèi tiÕp kh«ng ®ång bé theo giao thøc RS232. C¸c t¸c gi¶ sÏ cµi ®Æt thuËt to¸n gi¶i nÐn<br /> trªn chip lâi mÒm nµy. Sau khi gi¶i nÐn xong, bitstream ban ®Çu ®­îc kh«i phôc sÏ ®­îc ®­a<br /> qua khèi cÊu h×nh ®Ó thùc hiÖn cÊu h×nh.<br /> - Khèi Bé nhí DRAM: §©y lµ khèi sÏ chøa ch­¬ng tr×nh gi¶i nÐn, d÷ liÖu ®· nÐn tõ m¸y<br /> tÝnh göi xuèng vµ d÷ liÖu ®· gi¶i nÐn. Trªn thùc tÕ, khèi DRAM nµy sÏ ®­îc thay bëi mét chip<br /> nhí ®Ó chøa bitstream ®· ®­îc nÐn. Cßn d÷ liÖu sau gi¶i nÐn sÏ ®­îc ®­a th¼ng sang khèi cÊu<br /> h×nh. Ch­¬ng tr×nh gi¶i nÐn trªn FPGA ®­îc viÕt b»ng ng«n ng÷ C ch¹y trªn vi xö lý lâi mÒm<br /> MicroBlaze. H×nh 7 lµ vÝ dô vÒ kÕt qu¶ ch¹y ch­¬ng tr×nh trªn phÇn cøng thùc tÕ.<br /> <br /> <br /> <br /> <br /> H×nh 7. KÕt qu¶ ch¹y ch­¬ng tr×nh gi¶i nÐn trªn phÇn cøng.<br /> KÕt qu¶ gi¶i nÐn m« t¶ trªn h×nh 8.<br /> <br /> <br /> <br /> <br /> H×nh 8. Thêi gian gi¶i nÐn trªn phÇn cøng.<br /> <br /> <br /> <br /> 130 V.H.ThÕ, T.Thanh, P.N.Nam, P.N.Th¾ng, "NÐn Bitstream sö dông… hÖ nhóng FPGA."<br /> Nghiªn cøu khoa häc c«ng nghÖ<br /> <br /> Trªn h×nh 8 thÓ hiÖn mèi quan hÖ gi÷a thêi gian gi¶i nÐn cña c¸c bitstream cã kÝch<br /> th­íc kh¸c nhau. Chóng ta cã thÓ thÊy r»ng víi nh÷ng bitstream cã kÝch th­íc t¨ng th×<br /> thêi gian gi¶i nÐn còng t¨ng. Thêi gian thùc hiÖn gi¶i nÐn vÉn cßn kh¸ lín. ViÖc nµy cã thÓ<br /> sÏ ®­îc kh¾c phôc b»ng c¸ch t¨ng tèc ®é xung nhÞp, sè lâi cña MicroBlaze, hoÆc thiÕt kÕ<br /> phÇn cøng gi¶i nÐn theo thuËt to¸n RLE.<br /> 3. KÕT LUËN<br /> Ph­¬ng ph¸p nÐn bitstream ®· tr×nh bµy trong bµi b¸o trªn c¬ së thuËt to¸n RLE ®· cho<br /> tØ sè nÐn tèt h¬n so víi c¸c kü thuËt nÐn bitstream kh¸c. Kü thuËt nÐn nµy kÕt hîp víi kh¶<br /> n¨ng cÊu h×nh tõng phÇn cña c¸c FPGA sÏ ®em ®Õn mét gi¶i ph¸p hiÖu qu¶ trong viÖc<br /> gi¶m dung l­îng vµ b¨ng th«ng bé nhí yªu cÇu. PhÇn thùc hiÖn gi¶i nÐn, c¸c t¸c gi¶ ®·<br /> thùc hiÖn trªn phÇn mÒm nhóng sö dông vi xö lý lâi mÒm MicroBlaze nªn thêi gian thùc<br /> hiÖn gi¶i nÐn vÉn cßn cao. Nh­ vËy, viÖc thùc hiÖn gi¶i nÐn RLE trªn hÖ nhóng cña FPGA<br /> sÏ phï hîp víi nh÷ng bµi to¸n mµ giíi h¹n vÒ dung l­îng vµ b¨ng th«ng cña bé nhí l­u<br /> tr÷ th«ng tin cÊu h×nh. Trong t­¬ng lai, c¸c t¸c gi¶ sÏ thiÕt kÕ phÇn cøng thùc hiÖn gi¶i nÐn<br /> ®Ó gi¶m thêi gian gi¶i nÐn tõ ®ã gãp phÇn gi¶m thêi gian cÊu h×nh cho hÖ thèng.<br /> TµI LIÖU THAM KH¶O<br /> [1]. Xiaoke Qin, Chetan Muthry, and Prabhat Mishra, “Decode-Aware Compression of<br /> FPGA Bitstreams”, IEEE Trans. Very Large Scale Integr. (VLSI) Syst, vol. 19, no. 3,<br /> March 2011<br /> [2]. M.K.Drisya, S.Josepth, “Compression of FPGA Bitstreams-A Comparison”, Bonfring<br /> International Journal of Power Systems and Integrated Circuits, Vol. 2, Special Issue<br /> 1, Part 3, February 2012.<br /> [3]. S. Hauck, W.D.Wilson, “Runlength Compression Techniques for FPGA<br /> Configurations”, IEEE Symposium on FPGA for Custom Computing Machines, 1999<br /> [4]. A. Dandalis, V. K. Prasanna, “Configuration compression for FPGA-based embedded<br /> systems,” IEEE Trans. Very Large Scale Integr. (VLSI) Syst., vol. 13, no. 12, Dec.<br /> 2005, pp . 1394–1398<br /> [5]. R. Stefan and S. Cotofana, “Bitstream compression techniques for Virtex 4<br /> FPGAs”, in Proc. Int. Conf. Field Program. Logic Appl.,2008, pp. 323–328.<br /> [6]. A. Wolfe, A. Chanin, “Executing Compressed Programs on an Embedded RISC<br /> Architecture”, Proceedings of the International Symposium on Microarchitecture,<br /> December 1992,pages 81–91.<br /> [7]. Y. Xie, W. Wolf, H. Lekatsas, “Code compression for VLIW processors using<br /> variable-to-fixed coding,” in Proc. Int. Symp. Syst. Synth.,2002, vol. 2, no. 04, pp.<br /> 138 –143<br /> [8]. S. Seong and P. Mishra, “Bitmask-based code compression for embedded<br /> systems,” IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst., vol. 27, no. 4, Apr.<br /> 2008, pp. 673–685.<br /> [9]. Xiaoke Qin, Prabhat Mishra, “Efficient placement of compressedcode for parallal<br /> decompression”, VLSI Design, 22nd International Conference, Jan. 2009, pp. 335-340.<br /> [10]. “Virtex-4 FPGA Configuration User Guide v1.10 (UG071)”, Xilinx, Inc., San Jose,<br /> CA, April 2008.<br /> [11]. “Virtex FPGA Series Configuration and Readback v2.8 (XAPP138)”, Xilinx, Inc.,<br /> San Jose, CA, March 2005.<br /> <br /> <br /> <br /> <br /> T¹p chÝ Nghiªn cøu KH&CN qu©n sù, Sè 31, 06 - 2014 131<br /> Kü thuËt ®iÖn tö & Khoa häc m¸y tÝnh<br /> <br /> ABSTRACT<br /> BITSTREAM COMPRESSION USING RUN-LENGTH ENCODING BASE ON FPGA<br /> EMBEDDED SYSTEM<br /> Field-Programmable Gate Array (FPGAs) are widely used in reconfigurable<br /> systems. The configuration information for FPGA has to be stored in internal or<br /> external memory as bitstreams.Bitstream compression is very important in<br /> reconfigurable system design since it reduces the bitstream size and ban the<br /> memory requirement. It also improves the communication bandwidth and there by<br /> decreases the reconfiguration time. In this paper, we implemented technique<br /> bitstream compression using run-length encoding base on new flatform.<br /> Compression was done on the computer and decompression on FPGA embedded<br /> system. The result is available, good compression ratio and decompression may be<br /> acceptable for hardware implementation.<br /> Keywords: FPGA, Bitstream compression, Run-length encoding, Compression ratio.<br /> <br /> <br /> <br /> <br /> Nhận bài ngày 25 tháng 12 năm 2013<br /> Hoàn thiện ngày 08 tháng 01 năm 2014<br /> Chấp nhận đăng ngày 10 tháng 04 năm 2014<br /> <br /> <br /> <br /> <br /> §Þa chØ:<br /> * §¹i häc S­ ph¹m Kü thuËt H­ng Yªn.<br /> ** ViÖn §iÖn tö Tin häc vµ Tù ®éng hãa.<br /> *** §¹i häc B¸ch khoa Hµ Néi.<br /> <br /> <br /> <br /> <br /> 132 V.H.ThÕ, T.Thanh, P.N.Nam, P.N.Th¾ng, "NÐn Bitstream sö dông… hÖ nhóng FPGA."<br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2