采用EPIC技術(shù)的可編程密碼處理器設計

數據通路是處理器的關(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è)可重構運算模塊所支持的模式。

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

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