Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

1. Comment on the major differences and similarities between the ARMv7 and MIPS

ID: 3785283 • Letter: 1

Question

1. Comment on the major differences and similarities between the ARMv7 and MIPS instruction set architectures. Specifically, look at similarities and differences in register counts, register naming, instruction types, addressing, etc. You do not have to be exhaustive; 2-3 paragraphs is appropriate.

2. While MIPS and ARM are very similar, x86 is significantly different. Discuss the high-level differences between MIPS/ARM and x86 – look toward design philosophy as well as ISAlevel comparisons (as in #1) where appropriate. Again, 2-3 paragraphs is appropriate.

Explanation / Answer

1) Major difference and similarities between ARMv7 and MIPS instruction set architectures are :

a) MIPS:The MIPS instruction set acknowledges 32 general-purpose registers in the register file. For most processors implementing the MIPS instruction set architecture, each register is 32 bits in size. Registers are designated using the “$” symbol. For all practical purposes, three of these registers have special functionality ($0,29,$31). Also, it should be noted that these registers can be accessed via standardized naming conventions in software.

ARMv7:The ARMv7 type processor, which is the main processor in the mbed development board, utilizes the ARMv7-M Thumb instruction set architecture. This instruction set acknowledges 15 general-purpose registers in the register file. Registers are denoted using the format, where n denotes the register number. Of these 15 registers, 3 registers have special functionality (R13, R14, R15). Also, registers R0-R4 (scratch registers) are used for parameter passing and are saved between subroutines. All registers are 32-bits in size.

b)MIPS:MIPS has only two operating modes: the kernel (supervisor) mode and the user mode. In the kernel mode, when the status bit is set to 0, the operating mode is switched to the kernel mode and can access and change all registers. This mode has the privilege over other modes and gets switched to in case of an error, interruption, exception or at power up

ARMv7:ARMv7 has seven basic operating modes, starting with the processor mode which has two operating modes under it, the user mode and the privileged mode. The user mode is where most applications’ contents or operating systems’ tasks run. The privileged mode has under it two operating modes, the system mode and the exception mode

c)The MIPS instruction set is characterized by 32-bit instructions which must begin on word boundaries. The normal ARM ISA also uses a 32-bit instruction encoding. However, the ARM-Thumb instruction set uses 16-bit instructions which allow half-word (16-bit) alignment.

d)MIPS:MIPS support five addressing modes: Register Addressing,Immediate Addressing,PC-Relative Addressing,Pseudo-direct Addressing and Base Addressing.

ARMv7:There are four main addressing modes to calculate the effective address: Pre-indexed Addressing,Pre-indexed Addressing with Write Back,Post-Indexed Addressing and Program Counter Relative Addressing.

2)The high-level differences between MIPS/ARM and x86 are :

a) X86:Emphasis on hardware

ARM/MIPS:Emphasis on software

b)X86:Includes multi-clock

ARM/MIPS:Single-clock

c)x86:complex instructions

ARM/MIPS:reduced instruction only

d)x86:Memory-to-memory: “LOAD” and “STORE” incorporated in instructions

ARM/MIPS:Register to register: “LOAD” and “STORE” are independent instructions

e)x86:high cycles per second, Small code sizes

ARM/MIPS:Low cycles per second, large code sizes

f)x86:Transistors used for storing complex instructions

ARM/MIPSSpends more transistors on memory registers