Javacard CPU的設計與實(shí)現 Javacard CPU的設計與實(shí)現

Javacard CPU的設計與實(shí)現

  • 期刊名字:計算機工程
  • 文件大?。?10kb
  • 論文作者:張德學(xué),郭立,傅忠謙,何力
  • 作者單位:中國科技大學(xué)電子科學(xué)與技術(shù)系
  • 更新時(shí)間:2020-10-30
  • 下載次數:次
論文簡(jiǎn)介

第33卷第10期計算機工程2007年5月VoL.33No.I0Computer EngineringMay 2007●開(kāi)發(fā)研究與設計技術(shù)●文章編號: 1000- -3428(2007)10- 0280- -03文獻標識碼: A中圖分類(lèi)號: TH166Javacard CPU的設計與實(shí)現張德學(xué),郭立,傅忠謙,何力(中國科技大學(xué)電子科學(xué)與技術(shù)系,合肥230026)摘要: 支持Javacard技術(shù)標準是智能卡的發(fā)展方向,目前的Javacard系統大多是采用軟件虛擬機的方式來(lái)解釋執行或者通過(guò)just-intime方式執行Java指令,系統軟件平臺本身占用了大量的資源,且執行效率不高。解決這些問(wèn)題的方法就是實(shí)現硬件Javacard 指令處理器。該文給出了- -種基于微碼的Javacard指令處理器的FPGA設計和實(shí)現,以Javacard CPU為核心搭建Javacard CPU測試平臺,并將其集成在一塊FPGA 上實(shí)現。關(guān)鍵詞: Javacard; 處理器;智能卡Design and Implementation of Javacard CPUZHANG Dexue, GUO Li, FU Zhongqian, HE Li(Department of Electronic Science and Technology, University of Sciences and Technology of China, Hefei 230026)[Abstract] Javacard is the development direction of smart card. Most of the Javacard systems use the software virtual machine to execute Javacardinstruction. The system takes up a great deal of hardware resources, and it is unefficient. The resolution is to implement the hardware Javacardinstruction processor. This paper describes a design of Javacard hardware processor based on microcode.[Key words] Javacard; CPU; Smartcard1概述礎上實(shí)現Javacard平臺,再在此平臺上實(shí)現Javacard應用。1.1 Javacard簡(jiǎn)介1.2 Java處理器的實(shí)現方式比較智能卡是指集成了CPU、ROM、RAM、COS(芯片操作Java處理器的實(shí)現方式如下:系統)和EEPROM,能儲存信息和圖像,具備讀/寫(xiě)能力,信(1)通用CPU+OS+Java軟件解釋器,軟件解釋執行Java息能受到加密保護的便攜卡。智能卡最基本的標準是指令;ISO/IEC7816。智能卡在銀行、電信等行業(yè)中得到了廣泛的應(2)通用CPU+OS+Java JITjutin-time)編譯器,按塊編譯用,但在發(fā)展過(guò)程中也有很多的障礙,主要有:各個(gè)廠(chǎng)商指執行Java指令;令集不統- -;編程接口A(yíng)PIs 太復雜;開(kāi)發(fā)環(huán)境不通用,為新(3)Java加強CPU+OS+特殊的Java編譯器,充分使用Java卡開(kāi)發(fā)需要熟悉新卡開(kāi)發(fā)環(huán)境;各個(gè)廠(chǎng)商的系統不兼容,專(zhuān)加強硬件的優(yōu)勢;卡專(zhuān)用。開(kāi)發(fā)門(mén)檻過(guò)高影響了智能卡的發(fā)展。市場(chǎng)對智能卡()Java硬件CPU,本地支持執行Java指令,效率最高。的發(fā)展提出了新的要求,Sun 公司提出了Java Card開(kāi)放標目前的Java系統是基于軟件虛擬機實(shí)現的,軟件解析執準"。Javacard技 術(shù)是將智能卡與Java技術(shù)相結合的產(chǎn)物,它行Java指令,如方式(1)和方式(2);但智能卡的硬件能力遠將Java平臺應用到像智能卡這樣高度特殊化、內存和處理能遠不如PC,ROM、RAM資源非常有限,用軟件實(shí)現Javacard力比J2ME設備還受限的設備上。它克服了智能卡硬件和軟件虛擬機,需要軟件Javacard指令解釋器,將Java指令轉換到開(kāi)發(fā)技術(shù)太專(zhuān)業(yè)、開(kāi)發(fā)周期長(cháng)等阻礙智能卡普及的缺點(diǎn),允本地CPU的指令集,由于其速度慢、實(shí)現虛擬機本身占用內許智能卡運行Java編寫(xiě)的應用程序。Javacard技 術(shù)繼承了許多存資源,因此不適合在資源有限的硬件中應用。Java語(yǔ)言的優(yōu)點(diǎn),制定了一個(gè)安全、便捷且多功能的智能卡方式(3)要求CPU硬件實(shí)現部分Java 指令,它需要特殊平臺。的編譯器來(lái)充分發(fā)揮Java加強CPU的功能。Javacard規范主要包括: Javacard 虛擬機規范,Javacard方式(4)是最終的解決方法,Java指令的執行不再需要先編程接口(API)和Javacard 運行環(huán)境規范。轉換到宿主CPU的本地指令集上去,是最有效率的方法,同Javacard最小的硬件配置要求為: 512B RAM,24KB時(shí),它不占用RAM等軟件資源,可以給應用程序提供更多ROM, 8KB EEPROM, 8位處理器。典型的Javacard 設備有的資源。8或16位的CPU,3.7MHz時(shí)鐘頻率,1KB大小的RAM和鑒于支持Javacard標準的智能卡將被大量使用,為提高大于16KB的非易失存儲器EEPROM或FLASH)。高性能的應用程序執行速度,節省資源,充分利用資源,硬件實(shí)現智能卡還帶有獨立的處理器和加密芯片以及密碼信息存儲。Javacard指令處理器是有重要意義的。Javacard系統的實(shí)現有基于軟件虛擬機和基于硬件兩種方法?;谲浖摂M機方法是在非Java處理器硬件上用軟件作者簡(jiǎn)介:張德學(xué)中國煤化工:集成電路設計方法模擬實(shí)現Javacard平臺,在此平臺上實(shí)現Javacard應用。研究;郭立,教CNMHG力,助教基于硬件方法是硬件邏輯實(shí)現Javacard處理器,在此硬件基收稿日期: 2006-05-22 e-ma: axznang@ustc .edu一28.1.3 Java CPU的研究現狀Stack,微碼ROM,微碼指令指針調整模塊Mcpc,外存讀寫(xiě)根據應用的不同,Java虛擬機所要支持的指令集和特性接口memrw,通過(guò)wishbone總線(xiàn)連接外部RAM、ROM、I/O。也有差異,Java指令處理器大體分為通用型、嵌入式應用和各模塊之間連接關(guān)系、數據通路、控制通路以及應答信號連.Javacard應用。通用型Java處理器實(shí)現完整的Java虛擬機標接見(jiàn)圖1。準。嵌入式應用中的Java處理器可以根據應用系統的實(shí)際需微碼指針調整單元---- Instr alu ack要取舍一-些Java特性。Javacard標準中的Java處理器是JavaMCPCaluALU虛擬機標準的一一個(gè)子集,只需要能完成智能卡應用中的必要↑↑↑hodd操作,同時(shí)它要求盡量少地占用資源和低功耗。flags通用型的Java處理器實(shí)現有Sun公司的PicoJava I和stack ackPicoJava II。 PicoJava 系列實(shí)現了完整的Java 指令集,旨在提供高性能,加強的硬件浮點(diǎn)支持,6級指令流水線(xiàn)和多重主控模塊:STACK指令調度。要達到這種性能,付出的代價(jià)是邏輯門(mén)數很高。op用現有水平的FPGA來(lái)完全實(shí)現PicoJava是不實(shí)際的。ARM的Jazelle 技術(shù),延伸RISC的基礎框架,讓ARMMcroCodcROMmemrw. ack晶片直接執行Java字節碼,目前支持95%的byecode指令,MEMRW其余的指令通過(guò)轉換為ARM指令串實(shí)現。這種芯片實(shí)際是mdrmem. rd同時(shí)支持了兩套指令集,屬于Java加強CPU。nem_wr最近非?;钴S的一個(gè)Java嵌入式CPU設計的項目JOP(Java Optimized Processr)23),致力于實(shí)現- - 個(gè)用于嵌入式設控制僭號.應答信號數據通路備的Java處理器。該項目是一一個(gè)開(kāi)源項目,目前已經(jīng)取得了2.4微碼處理器各模塊接口及功能簡(jiǎn)介圖1數據通路和控制通路很好的成果。該項目的設計中為IO操作和一些系統任務(wù)引入了一些非Java指令,在此系統上完成的Java應用可能會(huì )有兼容按照功能將設計劃分為幾個(gè)功能模塊,每個(gè)模塊易于描性問(wèn)題。述和實(shí)現。對于專(zhuān)用于Javacard 上的Java 處理器芯片尚無(wú)實(shí)現報(1)運算單元alu: module alux,y,op.z,flag.calc,rst,ack,clk)。道,本文描述了Javacard CPU設計。系統采用Verilog 描述,其中,x,y是輸入操作數,op是操作碼,z是輸出結果,flag設計成-一個(gè)可以靈活配置、方便修改、資源占用少、兼容性是輸出運算結果標志, calc 是運算使能控制信號,ack是運算好、可以在普通FPGA中實(shí)現的軟核。結束應答。本模塊完成op定義的運算,并給出標志位和應答。(2)內部堆棧stack: module stack(clk,rst.popush,.ata_ i,2 Javacard CPU的設計data_ o.sp, ack)。 其中,pop.push 是堆棧的彈出、壓入操作信2.1 Java CPU的硬件實(shí)現技術(shù)在CPU的設計中,當從內存中取出下-條指令時(shí),執行號,data_ i,data_ 0是數據輸入輸出,sp 是堆棧指針,ack 是堆這條指令有2種處理方法:硬件邏輯和微碼序列4。硬件邏棧操作結束應答。本模塊根據pop.push信號對堆棧進(jìn)行操作。輯方法就是使用譯碼器、鎖存器、計數器和其他-些邏輯部(3)微碼ROM: module microcodeROM(mcp,mcr)。其中,件轉移和操作數據,完成指令功能。微碼方式是內部實(shí)現-mep是微碼ROM的指針,mer是微碼寄存器。根據微碼指針個(gè)非常簡(jiǎn)潔、快速的微碼處理器,此微碼處理器的每條指令mcp,在mcr.上輸出mcp處的微碼數據。對應很簡(jiǎn)單的硬件動(dòng)作(- -般是單周期指令),將要執行的(4)微碼指令指針調整模塊mcpc: module mepc(lk,rst,CPU指令作為索引,索引到微碼ROM中的某個(gè)地址,通過(guò)執load,new_ mcp,hold,remap,inst,mcp)。 微碼指針的操作有3種:行此地址處的一組微碼完成指令的功能。硬件邏輯方法的優(yōu)保持,重加載,重映射。重加載是用new.mcp的值作為新的點(diǎn)是能設計出更快的CPU,缺點(diǎn)是難以實(shí)現復雜的指令集,mcp值。重映射是將CPU指令instr對應的微碼序列首地址同時(shí)會(huì )導致芯片面積增大。微碼方法的優(yōu)點(diǎn)是能減少芯片的作為新的mcp值。面積,能實(shí)現復雜指令集,缺點(diǎn)是速度可能會(huì )慢一一些。實(shí)際1)load 信號有效,用new. .mcp的值給mcp賦值; .的CPU設計中采用哪種方法是個(gè)權衡利弊的問(wèn)題,在速度不2)hold信號有效,保持mcp值不變;3)remap信號有效,則將CPU指令instr作為索引,得到是關(guān)鍵的時(shí)候,微碼方法是個(gè)很好的選擇。Java語(yǔ)言是完全的面向對象語(yǔ)言,它的指令集也是為面instr指令對應的微碼序列首地址,將首地址賦給mcp。向對象思想而設計的,在指令集層次上支持面向對象操作,以上3個(gè)信號均無(wú)效時(shí),每時(shí)鐘mcp則自動(dòng)加1。(5)外存讀寫(xiě)接口memrw。這樣的指令要完成的操作是很復雜的,很難用硬件直接實(shí)現,module本文采用了微碼設計。memrw(clk ,addr,data_ _read_ in,data_ _write_ _out,ack,rst,rd,2.2 wishbone接口wr,wb_ stb_ _out,wb_ cyc_ _out,wb_ _ack_ in,wb_ _addr_ out,wb_ dwishbone接口是opencores發(fā)布的片內總線(xiàn)接口標準,ata_ jin,wb_ data. _out,wb_ we_ out); .簡(jiǎn)潔高效。在此次的Javacard CPU設計中,接口采用了對外接口采用了開(kāi)源的wishbone總線(xiàn)標準, wb*信號是wishbone接口。wishbone相關(guān)信號。根據rd, wr讀寫(xiě)信號,操作wishbone2.3 Javacard CPU結構信號,等待wishbone的應答,然后將數據和應答信號反饋給本文設計的Javacard CPU核心部分是微碼處理器,用微主控模塊。中國煤化工碼指令序列實(shí)現Javacard指令。微碼處理器主要由以下幾個(gè)2.5 Javacard CPMHCNMH G部分組成:主控邏輯core, 運算單元ALU,內部堆棧單元Javacard CPL征以n.共日州1付同-281-.(1)主控模塊與其他從模塊之間用使能信號和應答信號保持同步,從而可以不假設從模塊在規定的時(shí)間內完成操作,K↓從模塊在完成操作后給出應答信號即可,從而可以匹配不同res,"CPU速度的從模塊。cure 謹店ROM|RAMIt LED(2)微碼指令的設計:所有的微碼指令為單指令,即不帶任何操作數。微碼指令本身包含所需操作的信息,如在哪2個(gè)寄存器之間轉移數據。對于跳轉操作等必須帶后續操作數圖2測試平臺結構的指令,本文采取了變通的方法,先將所需操作數存入內部3.2結果說(shuō)明寄存器,再執行跳轉等指令。本設計是用verilog語(yǔ)言實(shí)現的,內部使用16位數據總詳細例解:微碼定義為16bits。 bit15 指示本微碼是指令線(xiàn),對外是8位的wishbone 總線(xiàn),內部堆棧大小200H,微還是數據,bit15==1 表示是數據,此時(shí)微碼的低8位是一一個(gè)碼ROM為4KB ,外接512B的ROM和512B的RAMoJavacard數據,處理此微碼時(shí),要將此8位數據提取出來(lái),存入內部定義了187條指令,其中47條指令是涉及32位整型數的,寄存器。bit15==0 表示是指令。當需要執行一個(gè)跳轉Jmp對32位整型數的支持是可選的,本次沒(méi)有實(shí)現對32位整型0x0809時(shí),用微碼方法表示為:數操作的指令,遇到未定義的指令的操作為宕機。共定義了0x8008 /bit15==1,是數據型微碼109條微碼指令。用微碼指令序列來(lái)完成系統初始化操作和0x8009解釋Javacard指令,用了3 273 條微碼指令序列,約合每條JMP/指令型微碼助記符Javacard指令用17條微碼指令來(lái)執行(主要是有些面向對象執行時(shí),遇到前面的兩個(gè)數據型微碼,會(huì )將08和09存.的復雜指令需要更多的微碼來(lái)解釋)。整個(gè)系統占用資源很入內部16位數據寄存器的高低8位,執行JMP指令時(shí),隱少: 4個(gè)block RAM, 2052 個(gè)SLICE,可以在普通FPGA上含使用此內部數據寄存器。實(shí)現。將測試程序下載到板上的ROM中,以24MHz時(shí)鐘運(3)所有的微碼指令是單周期指令。由于采用了特點(diǎn)(2)行通過(guò),驗證了Javacard指令處理的正確性,性能上也完全中所述的單指令微碼,微碼指令執行時(shí)不需要讀取后續操作滿(mǎn)足Javacard虛擬機標準要求。數的周期,在執行當前微碼指令的同時(shí)讀取下一條微碼指令,4總結可以做到每時(shí)鐘執行- - 條微碼。實(shí)現Javacard硬件CPU是Javacard的發(fā)展方向,它不需(4)簡(jiǎn)潔的主控模塊狀態(tài)機。所有Javacard指令均由微碼要很高的性能,而是需要低成本、資源占用少、低功耗等特執行,而不采用硬件陷入、軟件模擬方式,簡(jiǎn)化了主控邏輯:性。Javacard指令集是面向對象的復雜指令集,很難直接用的設計,僅有2個(gè)狀態(tài): EXEC_ MC和HLT, CPU 復位后,硬件實(shí)現。采用微碼方式實(shí)現是很好的選擇,每- - 條微碼都一直處于執行微碼EXEC.MC狀態(tài),直至遇到HLT微碼指令。對應一個(gè)很簡(jiǎn)單的硬件動(dòng)作,硬件很容易實(shí)現,并且使用的(5)I0采用內存映射方式統-一編址,避免了引入非Java資源也較少。用微碼序列來(lái)完成Javacard指令,使硬件設計指令,保證了兼容性。保持簡(jiǎn)潔、靈活、易于修改,有些改動(dòng)只需要重寫(xiě)微碼序列2.6系統微碼實(shí)現系統采用微碼實(shí)現,用微碼序列控制讀取Java指令、存而不需要更改硬件設計;添加新的功能支持也只需要修改微儲數據,實(shí)現Java 指令。Javacard 指令被解釋執行的過(guò)程碼,如硬件實(shí)現加密方法調用接口。Javacard硬件CPU的實(shí)如下:讀取Javacardpc處的Javacard指令至指令寄存器Instr,現必將促進(jìn)Javacard的應用。參考文獻發(fā)出remap信號給微碼指針調整模塊MCPC,微碼指針寄存1 Microsystems Sun Inc.. Java Card Platorm Seificaion[EB/OL.器mcp得到新的Javacard指令對應的微碼序列首地址,mcp2006. ht:va.u.coproducts/javacard/specs.htmo.的變化使微碼指令寄存器mcr變化為該微碼序列的首個(gè)微碼2 Schoeberl M. JOP: A Java Optimized Processor[C]//Proc. of指令,再由微碼處理器執行此mcr中的微碼。Java Technologies for Realtime and Embedded Systems Confe-3 Javacard CPU測試平臺的FPGA實(shí)現ence. 2003.3.1外圍接口和模塊、測試平臺框架3 Schoeberl M. Java Technology in an FPGA[C//Proceedings of測試平臺是以一塊xc2s200芯片為核心的簡(jiǎn)單開(kāi)發(fā)板,the International Conference on Field-progRAMmable Logic and全部設計都在此芯片內實(shí)現,包括CPU邏輯、存儲單元等,Is Applications. 2004.板上的8位LED指示燈用作I/0輸出端口。測試平臺的框架4 Hyde R. The Art of Assembly Language[EB/OL]. 2004-02. http:結構見(jiàn)圖2。//webster.cs.ucr. edu/AoA/Linux/HTML/AoATOC.html.(上接第264頁(yè))機應用研究, 2000, 17(10): 4-8.1 Lee T.Modern Computer aided Maintenance of Manufacturing4韓立燕,尹仕任,青學(xué)江故障診斷專(zhuān)家系統應用研究[J]. 西南交通大學(xué)學(xué)報,1997, 32(5): 534-540.Equipment and System, Review and Prospective[J]. Computer &5李旭,劉輝林,徐心如.故障診斷專(zhuān)家系統的歸納學(xué)習方法[D].Industrial Engineering, 1995, 28(4): 793-811.小型微型計算機系統, 1997, 18(6): 70-74.2李林功,李繼凱,谷金宏嵌入式系統集成開(kāi)發(fā)環(huán)境的構成[].計6馮建農,趙中國煤化工印華南理工大算機工程, 2001, 27(5): 146-148.學(xué)學(xué)報,1997,13李.東,曹忠升,馮玉才,等移動(dòng)數據庫技術(shù)研究綜述[].計算fYHCNM HG-282-.

論文截圖
版權:如無(wú)特殊注明,文章轉載自網(wǎng)絡(luò ),侵權請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習使用,務(wù)必24小時(shí)內刪除。
欧美AAAAAA级午夜福利_国产福利写真片视频在线_91香蕉国产观看免费人人_莉莉精品国产免费手机影院