《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > Javacard CPU的設計與FPGA實現
Javacard CPU的設計與FPGA實現
摘要: 支持Javacard技術標準是智能卡的發展方向,目前的Javacard系統大多是采用軟件虛擬機的方式來解釋執行或者通過just-in-time方式執行Java指令,系統軟件平臺本身占用了大量的資源,且執行效率不高.解決這些問題的方法就是實現硬件Javacard指令處理器.該文給出了一種基于微碼的Javacard指令處理器的FPGA設計和實現,以JavacardCPU為核心搭建JavacardCPU測試平臺,并將其集成在一塊FPGA上實現.
關鍵詞: FPGA Javacard CPU
Abstract:
Key words :

1 JavaCard簡介

    智能卡是指集成了CPU、ROM、RAM、COS(芯片操作系統)和EEPROM,能儲存信息和圖像,具備讀/寫能力,信息能被加密保護的便攜卡。智能卡的最基本標準是ISO/IEC7816。智能卡在銀行、電信等行業得到廣泛應用,但在發展過程中也遇到很多問題,主要有:各廠商指令集不統一;編程接口APIs太復雜;開發環境不通用,新卡開發都要熟悉開發環境;系統不兼容,??▽S?。由于開發門檻過高,影響了智能卡的發展。市場對智能卡的發展提出了新的要求,Sun公司提出了Java Card開放標準。JavaCard技術將智能卡與Java技術相結合,克服了智能卡開發技術太專業、開發周期長等阻礙智能卡普及的缺點,允許智能卡運行Java編寫的應用程序。JavaCard技術繼承了Java語言的優點,制定了一個安全、便捷且多功能的智能卡平臺。

   JavaCard基本的硬件配置(來自Sun文檔)為:512B RAM、24KB ROM、8KB EEPROM、8位處理器。典型的JavaCard設備有8位或16位的CPU,3.7MHz時鐘頻率,1KB的RAM和大于16KB的非易失存儲(EEPROM或Flash)。高性能的智能卡帶有獨立的處理器、加密芯片及密碼信息。

    JavaCard系統的實現有基于軟件虛擬機和基于硬件兩種方法?;谲浖摂M機方法是在非Java處理器上用軟件方法模擬實現JavaCard平臺,在此平臺上實現JavaCard應用?;谟布椒ㄊ怯布壿媽崿FJavaCard處理器,在此硬件基礎上實現JavaCard平臺,再在此平臺上實現JavaCard應用。

2 Java處理器的實現方式比較

Java處理器有以下幾種實現方式:

(1)通用CPU+OS+Java軟件解釋器,軟件解釋執行Java指令。

(2)通用CPU+OS+Java JIT(Just-In-Time)編譯器,按塊編譯執行Java指令。

(3)Java加強CPU+OS+特殊的Java編譯器,充分使用Java加強硬件的優勢。

(4)Java 硬件CPU,本地支持Java指令,執行效率最高。

    目前的Java系統是基于軟件虛擬機實現的,軟件解析執行Java指令,如(1)、(2)。用軟件實現JavaCard虛擬機,需要軟件JavaCard指令解釋器,將Java指令轉換到本地CPU的指令集。這樣,不但速度慢,而且虛擬機本身占用內存資源,不適合在智能卡這種資源有限的硬件中應用。方式(3)要求CPU硬件實現部分Java指令,它需要特殊的編譯器來充分發揮Java加強CPU的功能。方式(4)是最有效的解決方法,Java指令的執行不再需要先轉換到宿主CPU的本地指令集,同時,它也不占用RAM等軟件資源,可以給應用程序提供更多的資源。

    本文介紹JavaCard CPU。系統采用Verilog描述,設計成一個配置靈活、修改方便、資源占用少、兼容性好、可以在普通FPGA中實現的軟核。

3 JavaCard CPU的設計

3.1 Java CPU的硬件實現技術

    在CPU的設計中,當從內存中取出下一條指令時,執行這條指令有兩種方法,即硬件邏輯方法和微碼序列方法。硬件邏輯方法使用譯碼器、鎖存器、計數器和其他一些邏輯部件轉移和操作數據,完成指令功能。微碼序列方法是在內部實現一個非常簡潔、快速的微碼處理器。此微碼處理器的每條指令對應很簡單的硬件動作(一般都是單周期指令),將要執行的CUP指令作為索引,索引到微碼ROM中的某個地址,通過執行此地址處的一組微碼完成指令功能。

    硬件邏輯方法的優點是能設計出更快的CPU,缺點是難以實現復雜的指令集,同時會導致芯片面積增大。微碼序列方法的優點是可以減小芯片的面積,實現復雜指令集,缺點是速度有時較慢。兩種方法的速度快慢并非絕對,微碼指令是簡單指令,一般每個時鐘就能執行一條指令。硬件邏輯方法在執行CPU指令時,通常也是劃分為幾個階段執行,同樣需要幾個時鐘。實際設計中采用哪種方法要權衡利弊,在速度不是關鍵時,微碼序列方法是個很好的選擇。

3.2 JavaCard CPU結構

    JavaCard CPU采用微碼實現,核心部分是微碼處理器,用微碼指令序列實現JavaCard指令。微碼處理器主要組成為:主控邏輯CORE,運算單元ALU,內部堆棧單元STACK,微碼ROM,微碼指令指針調整模塊MCPC,外存讀寫接口MEMRW,通過wishbone總線連接外部RAM、ROM、I/O。各模塊之間連接關系、數據通路、控制通路以及應答信號連接見圖1。

3.3 微碼處理器各模塊接口及功能

(1)運算單元ALU

    module alu(x,y,op,z,flag,calc,rst,ack,clk);

    x、y為輸入操作數,op為操作碼,z為輸出結果,flag為輸出運算結果標志,calc為運算使能控制信號,ack為運算結束應答。本模塊完成op定義的運算,并給出標志位和應答。

各模塊之間連接關系、數據通路、控制通路以及應答信號連接

 

(2)內部堆棧STACK

module stack(clk,rst,pop,push,data_i,data_o,sp,ack);

pop、push為堆棧的彈出及壓入操作信號,data_i、data_o為數據輸入輸出,sp為堆棧指針,ack為堆棧操作結束應答。本模塊根據pop、push信號對堆棧進行操作。

(3)微碼ROM

module microcoderom(mcp,mcr);

MCP為微碼ROM的指針,MCR為微碼寄存器。根據微碼指針MCP,在MCR上輸出MCP處的微碼數據。

(4)微碼指令指針調整模塊MCPC

module mcpc(clk,rst,load,new_mcp,hold,remap,instr,mcp);

微碼指針有保持、重加載、重映射三種操作。重加載是用new_mcp的值作為新的MCP值。重映射是將CPU指令Instr對應的微碼序列首地址作為新的MCP值。

load信號有效,用new_mcp的值給MCP賦值;

hold信號有效,保持MCP值不變;

remap信號有效,則將CPU指令Instr做為索引,得到Instr指令對應的微碼序列首地址,將首地址賦給MCP。

以上三個信號均無效時,每時鐘MCP自動加1。

(5)外存讀寫接口MEMRW

module memrw(clk,addr,data_read_in,data_write_out,ack,rst,rd,wr,wb_stb_out,wb_cyc_out,wb_ack_in,wb_addr_out, wb_data_in,wb_data_out,wb_we_out);

對外接口采用開源的wishbone總線標準,wb*信號是wishbone相關信號。根據rd、wr讀寫信號,操作wishbone信號,等待wishbone的應答,然后將數據和應答信號反饋給主控模塊。

3.4 本JavaCard CPU設計的特點

(1)主控模塊與其他從模塊之間用使能信號和應答信號保持同步,從模塊在完成操作后只需給出應答信號,即可匹配不同速度的從模塊。

(2)微碼指令的設計。所有的微碼指令為單指令,即不帶任何操作數。微碼指令本身包含所需操作的信息,如在哪兩個寄存器之間轉移數據等。對于跳轉操作等必須帶后續操作數的指令采取變通方法,先將所需操作數存入內部寄存器,再執行跳轉等指令。詳細示例為:

     微碼定義為16位。位15指示本微碼是指令還是數據。位15==1表示是數據,此時微碼的低8位是一個數據,處理此微碼時,要將此8位數據提取出來,存入內部寄存器;位15==0表示是指令。當需要執行一個跳轉Jmp 0x0809時,微碼序列方法使用三條微碼表示:

0x8008 //位15==1,是數據型微碼

0x8009

JMP //指令型微碼助記符

執行時,遇到前面兩個數據型微碼,會將08和09存入內部16位數據寄存器的高低8位;執行JMP指令時,隱含使用此內部數據寄存器。

(3)所有的微碼指令是單周期指令。由于采用了(2)中所述的單指令微碼,在執行當前微碼指令的同時讀取下一條微碼指令,可以做到每個時鐘執行一條微碼。

(4)簡潔的主控邏輯。所有JavaCard指令均由微碼執行,不采用硬件陷入、軟件模擬方式,簡化了主控邏輯設計。主控模塊狀態機僅有EXEC_MC和HLT兩個狀態。CPU復位后,一直處于執行微碼EXEC_MC狀態,直到執行HLT微碼指令。

(5)適應性好。采用了應答機制,可以匹配不同速度的部件;對外采用wishbone總線,簡化了各部件接口的設計,方便了外部設備的擴充。

(6)I/O采用內存映射方式統一編址,避免了非Java指令的引入,保證了兼容性。

3.5 Verilog表述的微碼處理器核心邏輯

    下面是主控邏輯框架代碼的一部分。本段代碼體現了如何處理數據型微碼和指令型微碼,可以在YOUR_MICRO_CODE_INSTR處添加需要的微碼指令以及對應的操作。

always@(posedge clk or posedge reset)

begin

if(reset)

begin

new_mcp[15:0]<=init_ADDR;//初始化微碼

//序列首地址

{pop,push,alu_calc,memrd,memwr,load_mcp,hold_mcp,remap_mcp}<=8′b00000000;

H_READED<=1′b0;//表示是否讀過了一次

//數據型微碼

state[1:0]<=EXEC_MC;

end

else

begin

case(state[1:0])

EXEC_MC:

begin//首先根據mcr的位15判斷是數據型

//微碼還是指令型微碼

if(mcr[15])//mcr中存放微碼,位15==1表示

//此微碼是數據型,先保存高8位,再低8位

begin

if(H_READED==1′b0)//首個數據型

//微碼,數據保存到高8位

begin

{mcdata[15:8]}<=mcr[7:0];

//mcdata是內部數據寄存器

H_READED<=1′b1;

end

else

begin

{mcdata[7:0]}<=mcr[7:0];

H_READED<=1′b0;

end

end

else//表示此微碼是指令,根據后面的15位

//分支操作

begin

case(mcr[15:0])

YOUR_MICRO_CODE_INSTR://

begin

……//定義的微碼操作

end

……//其他微碼指令處理

endcase

end//end for mcr為指令處理

end

HLT://state[1:0]=HLT,宕機狀態處理

endcase//end for state[1:0]

end//end for reset

end//end for always@(posedge clk or posedge reset)

    系統采用微碼實現,用微碼序列控制讀取Java指令、存儲數據,實現Java指令。JavaCard指令被解釋執行的過程如下:

   讀取JavaCard PC處的JavaCard指令至指令寄存器Instr,發出remap信號給微碼指針調整模塊MCPC,微碼指針寄存器MCP得到新的JavaCard指令對應的微碼序列首地址,MCP的變化使微碼指令寄存器MCR變為該微碼序列的首個微碼指令,再由微碼處理器執行此MCR中的微碼。

4 JavaCard CPU測試平臺的FPGA實現

4.1 外圍接口和模塊

    測試平臺是以一塊xc2s200芯片為核心的簡單開發板,全部設計都在此芯片內實現,包括CPU邏輯、存儲單元等,板上的8位led指示燈用作I/O輸出端口。

4.2 測試平臺框架

 

測試平臺框架結構如圖2所示。

測試平臺框架結構

 

4.3 結果說明

    設計是用Verilog語言實現的,內部使用16位數據總線,對外是8位的wishbone總線,微碼ROM為4KB,外接512B的ROM和512B的RAM。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲高清视频在线| 麻豆成人综合网| 欧美色图一区二区三区| 国产欧美日韩一区二区三区在线| 久久久久国产精品一区二区| 亚洲午夜未删减在线观看| 欧美在线视频在线播放完整版免费观看| 久久精品国产免费看久久精品| 亚洲国产精品t66y| 亚洲性视频h| 韩国av一区二区三区四区| 日韩一区二区高清| 久久福利电影| 一道本一区二区| 亚洲视频自拍偷拍| 国产精品免费aⅴ片在线观看| 最新日韩在线视频| 欧美性大战久久久久久久蜜臀| 亚洲激情中文1区| 亚洲免费小视频| 亚洲国产天堂久久国产91| 99精品黄色片免费大全| 国产精品一区免费在线观看| 久久精品91久久香蕉加勒比| 国产精品美女久久久久aⅴ国产馆| 欧美激情视频在线播放| 国产综合久久久久久| 国产在线观看精品一区二区三区| 国产精品区一区二区三| 午夜精品电影| 亚洲一区中文字幕在线观看| 黄色精品一区| 欧美福利视频网站| 国产最新精品精品你懂的| 99视频超级精品| 国产一区二区三区在线观看视频| 亚洲精品视频在线观看免费| 国内精品免费午夜毛片| 欧美日韩精品一二三区| 亚洲综合欧美日韩| 国产精品美女久久久久aⅴ国产馆| 91久久综合亚洲鲁鲁五月天| 久热精品在线| 欧美视频中文字幕在线| 久久国产色av| 国产精品日韩久久久| 欧美激情 亚洲a∨综合| 欧美激情黄色片| 欧美日韩在线另类| 免费的成人av| 乱码第一页成人| 亚洲欧美国产77777| 国产精品日韩欧美一区| 欧美日韩国产专区| 国产精品久久久久久久久久久久久久| 欧美一区二区日韩| 欧美视频一二三区| 国产精品一区二区男女羞羞无遮挡| 亚洲伦理中文字幕| 国产伦精品一区二区三区四区免费| 日韩网站在线看片你懂的| 91久久香蕉国产日韩欧美9色| 国产一区二区三区高清在线观看| 欧美日本免费| 亚洲日本激情| 一区二区av在线| 亚洲精品精选| 免费久久99精品国产自| 亚洲国产精品一区二区尤物区| 久久尤物电影视频在线观看| 亚洲一区二区三区久久| 136国产福利精品导航| 欧美一区二区免费观在线| 欧美日本国产在线| 国产亚洲精品aa| 一区二区三区福利| 亚洲黑丝一区二区| 欧美久久久久久蜜桃| 欧美日韩综合在线免费观看| 午夜亚洲性色视频| 黄色工厂这里只有精品| 国产一区二区在线观看免费| 牛夜精品久久久久久久99黑人| 国产精品日本一区二区| 日韩小视频在线观看| 这里是久久伊人| 久久久久久久网站| 久久久一区二区三区| 国产精品麻豆va在线播放| 欧美不卡高清| 亚洲欧美日韩中文视频| 国产亚洲欧洲一区高清在线观看| 麻豆成人在线观看| 一本久久综合| 在线观看日韩av电影| 欧美伊人久久久久久久久影院| 国产精品入口麻豆原神| 亚洲一区二区在线视频| 亚洲综合日韩中文字幕v在线| 国产精品一国产精品k频道56| 在线观看国产精品网站| 欧美一激情一区二区三区| 亚洲精品在线观| 亚洲高清精品中出| 亚洲一区一卡| 日韩网站在线观看| 亚洲图片欧洲图片日韩av| 亚洲精品在线电影| 国精产品99永久一区一区| 91久久精品www人人做人人爽| 美日韩丰满少妇在线观看| 日韩一二三在线视频播| 欧美网站在线观看| 欧美日韩综合另类| 欧美剧在线观看| 免费成人激情视频| 欧美在线日韩精品| 欧美一区二区三区视频在线观看| 久久精品国产亚洲高清剧情介绍| 欧美性理论片在线观看片免费| 欧美理论电影在线观看| 久久精品亚洲精品| 一区二区三区在线观看视频| 欧美日韩精品在线视频| 在线观看精品视频| 亚洲精品永久免费| 欧美激情免费在线| 亚洲人成精品久久久久| 久久九九国产精品| 99热免费精品在线观看| 国产精品日韩二区| 午夜精品美女自拍福到在线| 亚洲激情电影中文字幕| 国产亚洲福利一区| 欧美美女bb生活片| 国产一区二区三区四区在线观看| 欧美伊人久久久久久久久影院| 韩日欧美一区| 亚洲高清在线| 欧美成人精品在线视频| 欧美伦理91| 欧美mv日韩mv亚洲| 国产精品久久777777毛茸茸| 伊人色综合久久天天五月婷| 欧美国内亚洲| 亚洲精品永久免费| 欧美精品一区二区三区在线看午夜| 国产精品一区免费观看| 在线精品一区| 国产精品一区一区三区| 国产日韩欧美高清免费| 亚洲一区欧美一区| 在线视频你懂得一区二区三区| 91久久精品日日躁夜夜躁欧美| 免费成人高清视频| 99精品福利视频| 国产一区 二区 三区一级| 亚洲国产精品成人精品| 久久成人精品无人区| 国产日韩精品在线观看| 亚洲精品影视在线观看| 久久精品一级爱片| 亚洲无线观看| 久久丁香综合五月国产三级网站| 国产精品永久免费| 免费成人美女女| 亚洲第一精品在线| 亚洲国产精品成人综合| 亚洲精品乱码久久久久久蜜桃麻豆| 国产综合色产在线精品| 美女爽到呻吟久久久久| 欧美大秀在线观看| 欧美自拍丝袜亚洲| 一本色道久久综合亚洲91| 亚洲欧洲中文日韩久久av乱码| 国产精品久久久久久久一区探花| 欧美日韩一区在线观看视频| 亚洲国产美女久久久久| 欧美一区二视频| 欧美激情四色| 亚洲国产天堂网精品网站| 亚洲男女自偷自拍| 午夜久久电影网| 99精品欧美一区二区三区| 日韩亚洲国产欧美| 国产精品成人观看视频国产奇米| 国产精品国产自产拍高清av王其| 国产精品麻豆欧美日韩ww| 欧美成年人网| 国产精品免费久久久久久| 在线观看av不卡| 国内外成人免费激情在线视频| 国产精品久久国产精品99gif| 欧美性大战久久久久久久| 亚洲国产精品第一区二区三区| 另类春色校园亚洲| 一区二区毛片| 欧美国产日韩视频| 亚洲男人av电影| 欧美日韩国产123区| 欧美在线日韩| 欧美在线观看网站| 国产精品亚洲不卡a| 欧美日韩成人一区二区三区| 欧美激情1区2区3区| 欧美一区二区三区喷汁尤物| 亚洲综合色自拍一区| 一区二区三区在线免费视频| 久久久久久久久岛国免费| 中文国产成人精品| 久久久国产亚洲精品| 可以看av的网站久久看| 国产日韩欧美麻豆| 亚洲香蕉在线观看| 欧美日韩系列| 久久亚洲春色中文字幕| 亚洲午夜国产成人av电影男同| 亚洲精品美女| 久久成人一区二区| 欧美一区成人| 亚洲人成网站999久久久综合| 在线精品视频一区二区三四| 麻豆精品视频在线观看视频| 国产一二三精品| 欧美在线亚洲综合一区| 亚洲男女自偷自拍图片另类| 久久国产精品第一页| 国产伦精品一区二区三区高清| 久久国产精品久久久久久电车| 在线视频你懂得一区| 久久精品理论片| 国产亚洲第一区| 久热精品视频| 日韩亚洲欧美高清| 欧美人与禽猛交乱配视频| 国产欧美在线观看| 亚洲精品一区二区三区四区高清| 一区二区三区国产在线观看| 亚洲欧洲日夜超级视频| 亚洲国产欧美在线人成| 永久免费精品影视网站| 欧美日韩国产a| 欧美激情精品久久久久久黑人| 亚洲国产91精品在线观看| 免费欧美在线| 国产日本欧美一区二区三区在线| 制服丝袜激情欧洲亚洲| 国产精品露脸自拍| 国产在线播精品第三| 欧美日韩精品一本二本三本| 国产精品麻豆成人av电影艾秋| 亚洲美女精品成人在线视频| 欧美一级欧美一级在线播放| 亚洲国产精品嫩草影院| 免费h精品视频在线播放| 欧美一区二区三区视频免费| 国产精品久久久久久超碰| 久久久不卡网国产精品一区| 国产精品狼人久久影院观看方式| 中文精品99久久国产香蕉| 国内精品久久久久久久97牛牛| 欧美1级日本1级| 欧美视频在线观看视频极品| 在线观看亚洲一区| 国产精品免费看| 六月婷婷一区| 亚洲图片自拍偷拍| 国产精品av一区二区| 久久成人综合视频| 久久久精品日韩欧美| 亚洲国产精品久久| 欧美日韩美女| 亚洲精品日日夜夜| 亚洲精品美女在线观看播放| 亚洲欧洲99久久| 狠狠色综合一区二区| 国产精品嫩草99av在线| 99成人免费视频| 欧美精品日韩三级| 欧美日韩国产综合一区二区| 欧美精品一区二区高清在线观看| 欧美亚一区二区| 欧美一区二区三区婷婷月色| 欧美一区二区三区四区夜夜大片| 激情六月婷婷久久| 欧美一区二区三区在线观看| 亚洲一区免费视频| 久久国产99| 国产一区二区电影在线观看| 亚洲精品你懂的| 欧美 日韩 国产精品免费观看| 欧美三区美女| 麻豆国产精品777777在线| 午夜国产欧美理论在线播放| 欧美日韩高清在线| 欧美日韩高清一区| 在线 亚洲欧美在线综合一区| 久久综合九色综合网站| 亚洲精品免费观看| 亚洲午夜av| 亚洲精品乱码久久久久久蜜桃91| 亚洲美洲欧洲综合国产一区| 午夜精品久久99蜜桃的功能介绍| 亚洲欧美视频在线观看视频| 亚洲在线成人| 欧美日本韩国在线| 午夜一级久久| 欧美视频一区二区三区…| 欧美一级播放| 国产日韩欧美麻豆| 欧美精品123区| 欧美激情在线免费观看| 欧美aa在线视频| 日韩午夜高潮| 久久青青草原一区二区| 欧美日韩色综合| 亚洲女同精品视频| 久久久久久9| 亚洲桃色在线一区| 99视频一区| 亚洲一区二区三区四区视频| 欧美不卡视频一区发布| 日韩一区二区精品在线观看| 亚洲欧洲精品成人久久奇米网| 国产欧美在线视频| 欧美亚洲系列| 亚洲全部视频| 亚洲欧美日韩精品在线|