What's the difference between a hardware register and a shift register?
A SR (Shift Register) comes in the form of:


SISO = Serial In, Serial Out
SIPO = Serial In, Parallel Out
PISO = Parallel In, Serial Out
PIPO = Parallel In, Parallel Out


If a SR is used as SIPO or PISO then they are converting bits to form words or words to form bits. A word is a collection of bits of some length. Typically 16 but it's not really a standard, you decide it. I believe it has to be more than 1. 

SIPO and PISO takes two clocks, one for the bits (the serial data) and one for the words (the parallel data which comes from or to registers). 

If a SR is used as a SISO or PIPO then they are only holding information as a buffer for later use. 

PIPO is your typical hardware register. But in essence a hardware register is just a memory of a word which can be connected to anything else in any arbitrary way. It doesn't matter how many clocks you use, or in what manner you use the clocks. A hardware register is still a memory, even if it has 0 clocks, 1 clock or 2 clocks or 300 clocks. 



The SR type describes how the data is flowing into and out of a hardware register. They are both describing a word-sized memory.