Section 2.3.5: when multiplying Q15*Q15
numbers to get a Q30 result, you need to shift LEFT and not RIGHT before
truncation to get a Q15 answer.
Section 3.3: when calculating the page
and line for virtual memory, the page=floor(address/page_size) and line=address-page*page_size.
floor() rounds the result
down to an integer. So if page_size=100
and address=234, page=floor(234/100)=2 and line=234-2*100=34.
Section 2.3.6: when talking about denormalized
numbers, I said that the biggest denormalized number is slightly bigger
than the smallest normalized number. This is
true, but I incorrectly quoted the smallest
normalized number as having an exponent of 0 (which is not allowed since
it is a "special case".
Section 4.1: when calculating speedup
due to pipelining, the language is confusing. Consider the word "task"
to mean "an instruction", and the "process" is "a
program". On the next page, the efficiency
formula uses the value for speedup. This is also confusing: it is not found
logically, it is only found by working out the
efficiency and then noticing that the
answer is very similar to the answer fo