In a subframe in physical layer the first OFDM symbol of each subframe consists of CFI information. CFI information basically tells you the number of OFDM symbols used by PDCCH. The PDCCH has DCI information that lets you decode the data from the PDSCH. In case you forgot, PDSCH has all the user data pertaining to the UE's. Now when a UE is downloading a set of files, say from the internet, each and every subframe has the PCFICH and PDCCH data in the first 3-4 OFDM symbols. This is essential when the data is robust or adaptive in nature, especially when it is web data. So it is essential that you send the control information for each subframe along with it. This kind of Scheduling is known as Dynamic Scheduling.
The advantage of Dynamic Scheduling is basically the flexibility to alter the size of data in each subframe. You can push more data in one SF, less on another.
Now consider a case where the amount of data expected is less and occurs in a fixed time interval. Yes, I'm talking about something like VoLTE (Voice over LTE). Voice data is in the form of small packets and it comes in a regular interval, which is network dependent. In such cases, sending control information in each and every subframe plays a vital role in the effective utilization of bandwidth. Thus, we use something called as Persistent Scheduling, where the control information sent across a SF is retained for every nth SF coming after it, until notified. This scheme drastically reduces the overhead.
Semi Persistent Scheduling
Now note the point that when you have a NACK for any of the DL data, the retransmission has to contain some extra information. ( Probably to indicate retransmission, SF number so on). So your retransmissions cant be pushed along with the Persistent Scheduled Time interval. In other words, you have to explicitly put the header info for retransmission SF's. Thus, Persistent Scheduling is rarely used, instead this new scheduling scheme known as Semi Persistent Scheduling is used.
Semi Persistent Scheduling Example
The time interval for SPS is informed by the RRC. The termination of SPS/alteration of time interval is also RRC triggered.
In the diagram above, also note one thing. Once SPS is triggered, every nth SF is first checked for PDCCH data. This is because, PDCCH signals always have a higher priority. So just because you initiated SPS, it doesnt mean that it will continue till you tell it to stop. It will always give a higher priority for PDCCH data in that particular SF. An example for this would be downloading a webpage along with a voice call. Here, you might need PDCCH data to decode the user data.