<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于EPIC技術(shù)的密碼處理器體系結構研究與設計

基于EPIC技術(shù)的密碼處理器體系結構研究與設計

作者: 時(shí)間:2010-09-30 來(lái)源:網(wǎng)絡(luò ) 收藏

  2 可編程

  在典型的可編程結構(AFPC)中,結構開(kāi)發(fā)的是標量操作之間的隨機并發(fā)性,并且增加了功能部件的個(gè)數。不相關(guān)的指令由編譯顯式地編入到一個(gè)超長(cháng)的機器指令字中,并發(fā)射到流水線(xiàn),在各個(gè)功能部件中并發(fā)執行,指令級并行度為4~8。這種結構的硬件控制相對簡(jiǎn)單,在計算密集型應用時(shí)內在并行性很明顯。且不需要很多轉移預測。在這種結構上運行指令能夠達到較高的實(shí)際指令級并行度。正是由于以上特點(diǎn),結構在很大程度上符合了算法的需求,即計算密集且順序執行。

  可編程密碼的硬什結構如圖1所示,整個(gè)處理器包括三部分:數據通路、控制單元和輸入/輸出接口電路。

可編程密碼處理器體系結構的硬什結構

  數據通路是處理器的關(guān)鍵部件之一,包含FUO~FU5共6個(gè)可并行執行的功能單元、32個(gè)32bit通用寄存器、4×32個(gè)32bit密鑰寄存器和回寫(xiě)單元。

  功能單元是處理器執行指令運算的核心,由若干個(gè)密碼運算模塊組成。其中,FUO~FU3內部運算模塊的組成與結構完全相同,輸入為3個(gè)32bit運算數據,其中2個(gè)來(lái)自通用寄存器堆、1個(gè)來(lái)自密鑰寄存器堆,輸出的運算結果亦為32bit。FUO~FU3內部分別設置了7個(gè)運算模塊,分別為S盒運算模塊、模加,減運算模塊、模乘運算模塊、32bit移位運算模塊、有限域乘法運算模塊、二輸入邏輯運算模塊、三輸入邏輯運算模塊。FU4內部設置了1個(gè)128bit,置換運算模塊,輸入為12個(gè)32bit運算數據,其中8個(gè)來(lái)自通用寄存器堆,4個(gè)來(lái)自密鑰寄存器堆。FU5內部設置了1個(gè)128bit移位運算模塊,輸入也為12個(gè)32bit運算數據,其中8個(gè)來(lái)自通用寄存器堆,4個(gè)來(lái)自密鑰寄存器堆。


  上述這些運算模塊功能不是單一的,而是可重構的。表2中給出了4個(gè)可重構運算模塊所支持的模式。

4個(gè)可重構運算模塊所支持的模式

除了上述運算模式可重構外,各運算模塊根據具體情況還支持運算前增加‘異或 i操作、運算后增加‘異或 i操作或者運算前后都增加‘異或 i操作。由于‘異或 i操作延時(shí)很小,它的加入并不影響運算的關(guān)鍵路徑,這就使得密碼運算時(shí)減少了單一‘異或 i操作的時(shí)鐘,從而減少了整個(gè)運算的時(shí)鐘數,并且不影響整體性能。表3中給出了Rijndael算法輪運算流程,采用有限域乘法運算后加入‘異或 i操作,時(shí)鐘周期數由4減為3,10輪運算將減少10個(gè)時(shí)鐘周期。

Rijndael算法輪運算流程

  控制單元完成指令存取、指令譯碼、指令存儲器地址生成等工作,協(xié)調處理器內部指令與外部用戶(hù)命令正確執行。

  輸入/輸出接口電路包括16個(gè)32bit輸入寄存器、16個(gè)32bit輸出寄存器、4個(gè)數據 長(cháng)度計數器、1個(gè)32bit命令寄存器等,完成指令、運算數據從32bit數據總線(xiàn)裝載到指令存 儲器和輸人寄存器以及運算結果從內部通用寄存器寫(xiě)入輸出寄存器等操作。

  3 指令系統

  指令系統是算法要素和密碼處理器特性的集中體現,指令系統的必須支 持硬件的并行執行,即開(kāi)發(fā)指令級并行性(ILP),指令級并行性的開(kāi)發(fā)程度對發(fā)揮密碼微處理器的硬件特性,提高程序運行性能至為關(guān)鍵。ILP實(shí)際上是指一套完整的處理器設計和編譯,這些通過(guò)并行地執行獨立的機器操作(如存儲器讀寫(xiě)、邏輯運算、算術(shù)運算等)來(lái)加速程序的執行。ILP的大小可以采用每周期平均執行的指令數(IPC)朱衡量,或者采用整個(gè)程序的每條指令平均執行的周期數CPI(CPT=l/IPC)來(lái)衡量。在可編程密碼處理器體系結構中采用了顯式并行指令計算結構,指令級并行數達到5。

  3.1 指令分類(lèi)

  可編程密碼處理器體系結構中的指令分為以下幾類(lèi):

  (1)靜態(tài)配置指令。它是在密鑰生成及加/解密過(guò)程中保持不變或者改變次數很少的控制信息配置指令,算法確定后,其S盒查找表信息、有限域乘數矩陣和不可約多項式、若干個(gè)置換的控制信息等就確定了,它們不會(huì )因為操作模式不同而改變。在加/解密過(guò)程中采用將配置指令分離出來(lái)的方法,可以大大減少執行密碼運算時(shí)指令的冗余編碼,從而縮短了指令字的長(cháng)度,增加了運算指令字中包含有效操作的個(gè)數,有效地提高了加/解密速度并減少了密碼程序的代碼量。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>