CIS 501 final assignment : Simulated an out-of-order processor