Cache 模块¶
指令 Cache¶
graph TD
subgraph sInit
init((Init)) -->|Begin| clear((Write Zero))
clear --> init_done{{Init Done?}}
init_done -->|No| advance_address[Advance Address]
advance_address --> clear
end
subgraph sIdle
init_done -->|Yes| idle((Wait for Req))
idle -->|Read Req Fire| hit{{Hit?}}
idle -->|Not Fired| idle
hit -->|Yes| in_buffer{{In Buffer?}}
in_buffer -->|Yes| return_buffer(Return Buffer)
in_buffer -->|No| return_mem(Return Mem)
return_buffer --> idle
return_mem --> idle
hit -->|No| send((Mem Read Req))
send --> |Not Fired| send
end
subgraph sFetch
send -->|Fire| wait_read((Wait Mem Resp))
wait_read -->|Not Fired| wait_read
wait_read -->|Fire| shift_data[Shift Data]
shift_data --> write_done{{Last Data?}}
write_done -->|No| wait_read
write_done -->|Yes| write_data[Write Mem & Buffer]
write_data --> return_buffer
end
数据 Cache¶
最后更新: May 6, 2020
作者: