OpenSPARC T1のインタフェースは、どうやらSPARC固有のパケットを使って通信しているらしい。 このパケットを分解して、S1Coreに搭載されているWishBoneに載せ変えているのがSPC2WBMユニットだ。
インタフェースは以下のようになっており、SPARCのパケットを受信してWishBoneへの変換ステートマシンが搭載されている。
インタフェース名 | 接続信号 | |
---|---|---|
Top-level system inputs | sys_clock_i | sys_clock_i |
sys_reset_i | sys_reset_final | |
sys_interrupt_source_i | sys_interrupt_source | |
Bridge inputs connected to SPARC Core outputs | spc_req_i | spc_pcx_req_pq |
spc_atom_i | spc_pcx_atom_pq | |
spc_packetout_i | spc_pcx_data_pa | |
Bridge outputs connected to SPARC Core inputs | spc_grant_o | pcx_spc_grant_px |
spc_ready_o | cpx_spc_data_rdy_cx2 | |
spc_packetin_o | cpx_spc_data_cx2 | |
spc_stall_o | wbm_spc_stall | |
spc_resume_o | wbm_spc_resume | |
Top-level Wishbone Interconnect inputs | wbm_ack_i | wbm_ack_i |
wbm_data_i | wbm_data_i | |
Top-level Wishbone Interconnect outputs | wbm_cycle_o | wbm_cycle_o |
wbm_strobe_o | wbm_strobe_o | |
wbm_we_o | wbm_we_o | |
wbm_addr_o | wbm_addr_o | |
wbm_data_o | wbm_data_o | |
wbm_sel_o | wbm_sel_o |
SPARCの命令フェッチパケットの構成
- spc_pcx_req_pq[4:0] : processor to pcx request
- spc_pcx_atom_pq : processor to pcx atomic request
- spc_pcx_data_pa[123:0] : processor to pcx packet
ちなみに、T1のパケットは以下のような124ビットの構成であり、図に起こすとさらに以下のような図になる。
#define PCX_VLD 123 //PCX packet valid #define PCX_RQ_HI 122 //PCX request type field #define PCX_RQ_LO 118 #define PCX_NC 117 //PCX non-cacheable bit #define PCX_R 117 //PCX read/!write bit #define PCX_CP_HI 116 //PCX cpu_id field #define PCX_CP_LO 114 #define PCX_TH_HI 113 //PCX Thread field #define PCX_TH_LO 112 #define PCX_BF_HI 111 //PCX buffer id field #define PCX_INVALL 111 #define PCX_BF_LO 109 #define PCX_WY_HI 108 //PCX replaced L1 way field #define PCX_WY_LO 107 #define PCX_P_HI 108 //PCX packet ID, 1st STQ - 10, 2nd - 01 #define PCX_P_LO 107 #define PCX_SZ_HI 106 //PCX load/store size field #define PCX_SZ_LO 104 #define PCX_ERR_HI 106 //PCX error field #define PCX_ERR_LO 104 #define PCX_AD_HI 103 //PCX address field #define PCX_AD_LO 64 #define PCX_DA_HI 63 //PCX Store data #define PCX_DA_LO 0
詳細は省略するが、内部にステートマシンが組まれており、SPARCのパケットをWishBoneに変換している。