Computer Architecture related questions

I have a set of questions that wont be graded, but that my prof. wants us to look into/review. I've figured most of them out but the following have given me some issues. Any help would be appreciated. I dont mind getting the answers but a brief explanation would be best. Thanks!

1) The AVR RISC architecture is an 8bit architec. but has a 16bit fixed length instruction word. If the latter is transferred to the Instruction Register via a CPU internal bus, how many program memory accesses are necessary to retrieve a full instruction word?
(3, 4, 1, or 2)

2) If I/O peripheral devices are memory mapped, this means that:
a) I/O is performed using the same instruction as for reading or writing to the data memory
b) The instruction set implements two special instructions: IN and OUT.
c) I/O peripherals cannot be memory mapped because the architecture is Harvard
d) Peripherals have addresses in the program memory space

3) The architecture has a build in stack pointer. If one needs Two stacks, the second one could be implemented:
a) using one of the registers in the Data-Bank to point to the TOS of the second stack.
b) using the same stack pointer for both stacks
c)the second stack cannot be implemented
d) Using the program counter to point to the TOS of the second stack

4) If an architecture lacks an integer-multiply instruction, this could be implemented using a sequence of:
a) Shift and subtract
b) Shift and add
c) shift and rotate
d) increment and accumulate instructions
give us the answers you think are correct and why and we will critique them....
thats the thing, im comfortable with the rest of the questions but these have me completely lost. Im not sure which are correct, thats why im looking for some direction.

The only one i think i might know is #4.. i would say b) shift and add because that seems like a typical way to multiply in architecture if you dont have a multiply function.
still need help with these


Science Advisor
You should review your course notes and/or read the textbook. In lieu of that, some guiding pointers (hardy har har):

1) HINT: How wide is your data bus? If you did have to do multiple transfers, would you need to transfer anything on the data bus in between transfers? What's the influence on the address bus?

2) Memory-mapped I/O:

3) Stack structure:

4) What happens to a binary number when you multiply by 2? 2^2=4? 2^3=8? How would you break down a number into powers of 2? Is this easier in binary?

The Physics Forums Way

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving