khiani17 Posted May 12, 2013 Posted May 12, 2013 i need help in this question im not being able to understand how to solve this... :S
EdEarl Posted May 13, 2013 Posted May 13, 2013 (edited) Forgive me. I doubt that I can help you. I might solve the problem for you, but do not know how to teach you how to solve word problems. The reason I am responding is that I read your post, but the forum did not increment the number of views. Thus, you may think no one is reading it. I am confused about what the number of views means, and hope a moderator will explain. NVM moderator, view finally updated. Edited May 13, 2013 by EdEarl
EdEarl Posted May 13, 2013 Posted May 13, 2013 Can you make any progress on this problem, and if you have, tell me about it. I'll try to help by telling you whether you are on the right path or not, and maybe give hints.
pwagen Posted May 13, 2013 Posted May 13, 2013 This is probably easiest done in a spreadsheet of some kind, so you can change the numbers to fit the questions. There are probably a few ways to go about this. What you need to do is map out how long every operation (fetch, decode etc.) takes, when it comes to hits and misses and all that. I think we can assume the 95% hit for instruction cache and 90% hit for the data cache can be used on all instructions? Then calculate each instruction. For example, instruction type 4 has fetch, decode, execute. Let's start with fetch. Calculate the total number of fetches in done by this operation in the course of the program's run time. If there have been 10 million instructions, where 20% were type 4, then I'd say this instruction's fetch has executed around 2 million times. We're working with averages. And since we access the instructions cache, the hit rate is 95%. So 95% of the time, the operation takes 200 ps, the rest of the time takes 8 ns. 95% of 2 million is 1,900,000. So multiply 1,900,000 by 200 ps = 380,000,000 ps = 380,000 ns. Now, we still have 100,000 fetch operations that missed. So 100,000 times 8 = 800,000 nanoseconds. Add them together for 1,180,000 ns. That's done with fetch in the type 4 instruction. Now you'll have to go through each and every one of the operations in each instruction and do about the same thing. Calculate the total number of executions, work out how many are hits and how many are misses, then add them together. I'm sure there's an easier way, but I think this is the most basic way of solving it. MIPS rating is simple to calculate once you have the number of instructions and the total time of the program. All you do is MIPS = n / (t x 1,000,000) where n is the number of instructions executed and t is the time it took to execute those instructions in seconds. From here: http://www.ehow.com/how_6507318_calculate-mips-rating.html And the third question is why you put everything in a neat spreadsheet to begin with, because then all you do is change each variable and see how the program's run time changes.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now