把 CPU <-> memory給分離開了.
CPU跟 memory(controller)之間有條 Enable跟 Busy線, CPU以Enable線告知 memory該工作了,之後CPU在時脈正緣持續檢查 Busy線是否為0, 若是表memory動作結束,且CPU就將Enable歸0;若Busy為1表memory還在工作,則CPU無動作.
memory在時脈負緣檢查, 若發現Enable為1則開始工作,將Busy設為1, 在工作結束後將Busy設為0,並在下一個時脈負緣期待Enable被設為0.
這樣子的話 CPU可以不必預設 memory(controller)將要花幾個clock才能結束動作, 如此一來要套真正的 memory硬體的話我想應該就比較容易一點了 XD
在這我學到時脈設計的重要, CPU跟 memory用正負緣錯開來避免 race condition