IMO, Structural hazard is caused due to lack of resources like cache, tlb etc. It happens during Load or Store operations (memory operations) when operand(s) is/are unavailable. Increasing registers won't affect the resourcefulness of operands to be found on the cache but increasing cache, tlb etc will.