Slide 21 of 97
Notes:
The unit is a .S unit, or a shifter. It does shifts as well as branches. The notation .B, which seems like a likely name, is being used for something for in this system as we will see later.
This multiple functionality of the architectural units is quite useful, and in fact there are several functional units which can perform a variety of tasks. The .S unit not only does branches and shifts, but can also do addition and subtraction, and can be used to load constants. The .M unit is just a multiplier. The .L unit is an ALU, and does addition, subtraction, and logicals such as AND, OR and Exclusive Or. And, although the .D unit’s primary function is to loads and stores in memory, it also has the capability to do adds and subtracts.
This functional unit flexibility allows the compiler to do a much better job since it has choices regarding which units to use to execute a particular task.