JavaCard CPU的設(shè)計與FPGA實現(xiàn)
發(fā)布時間:2008/8/21 0:00:00 訪問次數(shù):662
智能卡是指集成了cpu、rom、ram、cos(芯片操作系統(tǒng))和eeprom,能儲存信息和圖像,具備讀/寫能力,信息能被加密保護(hù)的便攜卡。智能卡的最基本標(biāo)準(zhǔn)是 iso/iec7816。智能卡在銀行、電信等行業(yè)得到廣泛應(yīng)用,但在發(fā)展過程中也遇到很多問題,主要有:各廠商指令集不統(tǒng)一;編程接口apis太復(fù)雜;開發(fā)環(huán)境不通用,新卡開發(fā)都要熟悉開發(fā)環(huán)境;系統(tǒng)不兼容,專卡專用。由于開發(fā)門檻過高,影響了智能卡的發(fā)展。市場對智能卡的發(fā)展提出了新的要求,sun公司提出了java card開放標(biāo)準(zhǔn)。javacard技術(shù)將智能卡與java技術(shù)相結(jié)合,克服了智能卡開發(fā)技術(shù)太專業(yè)、開發(fā)周期長等阻礙智能卡普及的缺點,允許智能卡運行 java編寫的應(yīng)用程序。javacard技術(shù)繼承了java語言的優(yōu)點,制定了一個安全、便捷且多功能的智能卡平臺。
javacard基本的硬件配置(來自sun文檔)為:512b ram、24kb rom、8kb eeprom、8位處理器。典型的javacard設(shè)備有8位或16位的cpu,3.7mhz時鐘頻率,1kb的ram和大于16kb的非易失存儲(eeprom或flash)。高性能的智能卡帶有獨立的處理器、加密芯片及密碼信息。
javacard系統(tǒng)的實現(xiàn)有基于軟件虛擬機和基于硬件兩種方法。基于軟件虛擬機方法是在非java處理器上用軟件方法模擬實現(xiàn)javacard平臺,在此平臺上實現(xiàn)javacard應(yīng)用;谟布椒ㄊ怯布壿媽崿F(xiàn)javacard處理器,在此硬件基礎(chǔ)上實現(xiàn)javacard平臺,再在此平臺上實現(xiàn)javacard應(yīng)用。
2 java處理器的實現(xiàn)方式比較
java處理器有以下幾種實現(xiàn)方式:
(1)通用cpu+os+java軟件解釋器,軟件解釋執(zhí)行java指令。
(2)通用cpu+os+java jit(just-in-time)編譯器,按塊編譯執(zhí)行java指令。
(3)java加強cpu+os+特殊的java編譯器,充分使用java加強硬件的優(yōu)勢。
(4)java 硬件cpu,本地支持java指令,執(zhí)行效率最高。
目前的java系統(tǒng)是基于軟件虛擬機實現(xiàn)的,軟件解析執(zhí)行java指令,如(1)、(2)。用軟件實現(xiàn)javacard虛擬機,需要軟件 javacard指令解釋器,將java指令轉(zhuǎn)換到本地cpu的指令集。這樣,不但速度慢,而且虛擬機本身占用內(nèi)存資源,不適合在智能卡這種資源有限的硬件中應(yīng)用。方式(3)要求cpu硬件實現(xiàn)部分java指令,它需要特殊的編譯器來充分發(fā)揮java加強cpu的功能。方式(4)是最有效的解決方法, java指令的執(zhí)行不再需要先轉(zhuǎn)換到宿主cpu的本地指令集,同時,它也不占用ram等軟件資源,可以給應(yīng)用程序提供更多的資源。
本文介紹javacard cpu。系統(tǒng)采用verilog描述,設(shè)計成一個配置靈活、修改方便、資源占用少、兼容性好、可以在普通fpga中實現(xiàn)的軟核。
3 javacard cpu的設(shè)計
3.1 java cpu的硬件實現(xiàn)技術(shù)
在cpu的設(shè)計中,當(dāng)從內(nèi)存中取出下一條指令時,執(zhí)行這條指令有兩種方法,即硬件邏輯方法和微碼序列方法。硬件邏輯方法使用譯碼器、鎖存器、計數(shù)器和其他一些邏輯部件轉(zhuǎn)移和操作數(shù)據(jù),完成指令功能。微碼序列方法是在內(nèi)部實現(xiàn)一個非常簡潔、快速的微碼處理器。此微碼處理器的每條指令對應(yīng)很簡單的硬件動作(一般都是單周期指令),將要執(zhí)行的cup指令作為索引,索引到微碼rom中的某個地址,通過執(zhí)行此地址處的一組微碼完成指令功能。
硬件邏輯方法的優(yōu)點是能設(shè)計出更快的cpu,缺點是難以實現(xiàn)復(fù)雜的指令集,同時會導(dǎo)致芯片面積增大。微碼序列方法的優(yōu)點是可以減小芯片的面積,實現(xiàn)復(fù)雜指令集,缺點是速度有時較慢。兩種方法的速度快慢并非絕對,微碼指令是簡單指令,一般每個時鐘就能執(zhí)行一條指令。硬件邏輯方法在執(zhí)行cpu指令時,通常也是劃分為幾個階段執(zhí)行,同樣需要幾個時鐘。實際設(shè)計中采用哪種方法要權(quán)衡利弊,在速度不是關(guān)鍵時,微碼序列方法是個很好的選擇。
3.2 javacard cpu結(jié)構(gòu)
javacard cpu采用微碼實現(xiàn),核心部分是微碼處理器,用微碼指令序列實現(xiàn)javacard指令。微碼處理器主要組成為:主控邏輯core,運算單元alu,內(nèi)部堆棧單元stack,微碼rom,微碼指令指針調(diào)整模塊mcpc,外存讀寫接口memrw,通過wishbone總線連接外部ram、rom、i/o。各模塊之間連接關(guān)系、數(shù)據(jù)通路、控制通路以及應(yīng)答信號連接見圖1。
3.3 微碼處理器各模塊接口及功能
(1)運算單元alu
module alu(x,y,op,z,flag,calc,rst,a ck,clk);
x、y為輸入操作數(shù),op為操作碼,z為輸出結(jié)果,flag為輸出運算結(jié)果標(biāo)志,calc為運算使能控制信號,ack為運算結(jié)束應(yīng)答。本模塊完成op定義的運算,并給出標(biāo)志位和應(yīng)答。
(2)內(nèi)部堆棧stack
module stack(clk,rst,pop,push,data_i,data_o,sp,ack);
pop、push為堆棧的彈出及壓入操作信號,data_i、data_o為數(shù)據(jù)輸入輸出,sp為堆棧指針,ack為堆棧操作結(jié)束應(yīng)答。本模塊根據(jù)pop、push信
智能卡是指集成了cpu、rom、ram、cos(芯片操作系統(tǒng))和eeprom,能儲存信息和圖像,具備讀/寫能力,信息能被加密保護(hù)的便攜卡。智能卡的最基本標(biāo)準(zhǔn)是 iso/iec7816。智能卡在銀行、電信等行業(yè)得到廣泛應(yīng)用,但在發(fā)展過程中也遇到很多問題,主要有:各廠商指令集不統(tǒng)一;編程接口apis太復(fù)雜;開發(fā)環(huán)境不通用,新卡開發(fā)都要熟悉開發(fā)環(huán)境;系統(tǒng)不兼容,?▽S。由于開發(fā)門檻過高,影響了智能卡的發(fā)展。市場對智能卡的發(fā)展提出了新的要求,sun公司提出了java card開放標(biāo)準(zhǔn)。javacard技術(shù)將智能卡與java技術(shù)相結(jié)合,克服了智能卡開發(fā)技術(shù)太專業(yè)、開發(fā)周期長等阻礙智能卡普及的缺點,允許智能卡運行 java編寫的應(yīng)用程序。javacard技術(shù)繼承了java語言的優(yōu)點,制定了一個安全、便捷且多功能的智能卡平臺。
javacard基本的硬件配置(來自sun文檔)為:512b ram、24kb rom、8kb eeprom、8位處理器。典型的javacard設(shè)備有8位或16位的cpu,3.7mhz時鐘頻率,1kb的ram和大于16kb的非易失存儲(eeprom或flash)。高性能的智能卡帶有獨立的處理器、加密芯片及密碼信息。
javacard系統(tǒng)的實現(xiàn)有基于軟件虛擬機和基于硬件兩種方法。基于軟件虛擬機方法是在非java處理器上用軟件方法模擬實現(xiàn)javacard平臺,在此平臺上實現(xiàn)javacard應(yīng)用。基于硬件方法是硬件邏輯實現(xiàn)javacard處理器,在此硬件基礎(chǔ)上實現(xiàn)javacard平臺,再在此平臺上實現(xiàn)javacard應(yīng)用。
2 java處理器的實現(xiàn)方式比較
java處理器有以下幾種實現(xiàn)方式:
(1)通用cpu+os+java軟件解釋器,軟件解釋執(zhí)行java指令。
(2)通用cpu+os+java jit(just-in-time)編譯器,按塊編譯執(zhí)行java指令。
(3)java加強cpu+os+特殊的java編譯器,充分使用java加強硬件的優(yōu)勢。
(4)java 硬件cpu,本地支持java指令,執(zhí)行效率最高。
目前的java系統(tǒng)是基于軟件虛擬機實現(xiàn)的,軟件解析執(zhí)行java指令,如(1)、(2)。用軟件實現(xiàn)javacard虛擬機,需要軟件 javacard指令解釋器,將java指令轉(zhuǎn)換到本地cpu的指令集。這樣,不但速度慢,而且虛擬機本身占用內(nèi)存資源,不適合在智能卡這種資源有限的硬件中應(yīng)用。方式(3)要求cpu硬件實現(xiàn)部分java指令,它需要特殊的編譯器來充分發(fā)揮java加強cpu的功能。方式(4)是最有效的解決方法, java指令的執(zhí)行不再需要先轉(zhuǎn)換到宿主cpu的本地指令集,同時,它也不占用ram等軟件資源,可以給應(yīng)用程序提供更多的資源。
本文介紹javacard cpu。系統(tǒng)采用verilog描述,設(shè)計成一個配置靈活、修改方便、資源占用少、兼容性好、可以在普通fpga中實現(xiàn)的軟核。
3 javacard cpu的設(shè)計
3.1 java cpu的硬件實現(xiàn)技術(shù)
在cpu的設(shè)計中,當(dāng)從內(nèi)存中取出下一條指令時,執(zhí)行這條指令有兩種方法,即硬件邏輯方法和微碼序列方法。硬件邏輯方法使用譯碼器、鎖存器、計數(shù)器和其他一些邏輯部件轉(zhuǎn)移和操作數(shù)據(jù),完成指令功能。微碼序列方法是在內(nèi)部實現(xiàn)一個非常簡潔、快速的微碼處理器。此微碼處理器的每條指令對應(yīng)很簡單的硬件動作(一般都是單周期指令),將要執(zhí)行的cup指令作為索引,索引到微碼rom中的某個地址,通過執(zhí)行此地址處的一組微碼完成指令功能。
硬件邏輯方法的優(yōu)點是能設(shè)計出更快的cpu,缺點是難以實現(xiàn)復(fù)雜的指令集,同時會導(dǎo)致芯片面積增大。微碼序列方法的優(yōu)點是可以減小芯片的面積,實現(xiàn)復(fù)雜指令集,缺點是速度有時較慢。兩種方法的速度快慢并非絕對,微碼指令是簡單指令,一般每個時鐘就能執(zhí)行一條指令。硬件邏輯方法在執(zhí)行cpu指令時,通常也是劃分為幾個階段執(zhí)行,同樣需要幾個時鐘。實際設(shè)計中采用哪種方法要權(quán)衡利弊,在速度不是關(guān)鍵時,微碼序列方法是個很好的選擇。
3.2 javacard cpu結(jié)構(gòu)
javacard cpu采用微碼實現(xiàn),核心部分是微碼處理器,用微碼指令序列實現(xiàn)javacard指令。微碼處理器主要組成為:主控邏輯core,運算單元alu,內(nèi)部堆棧單元stack,微碼rom,微碼指令指針調(diào)整模塊mcpc,外存讀寫接口memrw,通過wishbone總線連接外部ram、rom、i/o。各模塊之間連接關(guān)系、數(shù)據(jù)通路、控制通路以及應(yīng)答信號連接見圖1。
3.3 微碼處理器各模塊接口及功能
(1)運算單元alu
module alu(x,y,op,z,flag,calc,rst,a ck,clk);
x、y為輸入操作數(shù),op為操作碼,z為輸出結(jié)果,flag為輸出運算結(jié)果標(biāo)志,calc為運算使能控制信號,ack為運算結(jié)束應(yīng)答。本模塊完成op定義的運算,并給出標(biāo)志位和應(yīng)答。
(2)內(nèi)部堆棧stack
module stack(clk,rst,pop,push,data_i,data_o,sp,ack);
pop、push為堆棧的彈出及壓入操作信號,data_i、data_o為數(shù)據(jù)輸入輸出,sp為堆棧指針,ack為堆棧操作結(jié)束應(yīng)答。本模塊根據(jù)pop、push信
熱門點擊
- 基于FPGA和AD1836的I2S接口設(shè)計
- 基于Verilog語言的可維護(hù)性設(shè)計技術(shù)
- JavaCard CPU的設(shè)計與FPGA實現(xiàn)
- PLC可編程序控制器基礎(chǔ)知識
- Xilinx針對Virtex-5 FXT F
- GE Fanuc發(fā)布支持Xilinx Vir
- Actel推出新的集成開發(fā)環(huán)境Libero
- Ittiam Systems選用Strati
- Linux下C語言編程概述
- PnpNetwork獲鉆石內(nèi)核設(shè)計手機電視芯
推薦技術(shù)資料
- 聲道前級設(shè)計特點
- 與通常的Hi-Fi前級不同,EP9307-CRZ這臺分... [詳細(xì)]
- MOSFET 電感單片降壓開關(guān)模式變換器優(yōu)勢
- SiC MOSFET 和 IG
- 新型 電隔離無芯線性霍爾效應(yīng)電
- 業(yè)界超小絕對位置編碼器技術(shù)參數(shù)設(shè)計
- 高帶寬、更高分辨率磁角度傳感技術(shù)應(yīng)用探究
- MagAlpha 角度位置傳感
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究