# Instruction Register Size in Processors

I am learning processor basics. I have this doubt.

If I have a processor with 9 one-byte instructions and one 2-bytes instruction in its instruction set architecture, should n't the instruction register of the processor be 16 bits instead of 8-bits ? Say for example:

2000  MOV A,B
2001  MVI C, 20h  --- 2 byte instruction


In my book it says PC points to address 2003 after 2001. So it means, when PC was pointing to 2001, both the 8-bit immediate data and the 8-bit opcode were fetched into the instruction register in one go right ? Or is it fetched in two cycles ? Also I would like to know what is the significance of data and instruction caches in a processor. Is it neccesary in a processor ?

• The second one is is also 8bit instruction with arguments. Arguments are loaded into other registers. – Gregory Kornblum Dec 9 '17 at 18:22
• Your code examples look like 8080, 8085, Z80 etc. instructions. All these are cache-less processors, with 8-bit data bus. So mov a,b requires one bus-transaction, while mvi c,20h requires two sequential bus transactions. In these simple processors, PC gets incremented by 1 for every bus transaction (except for jmp, call, return, reset type instructions, where PC's contents are over-written). – glen_geek Dec 9 '17 at 20:01