QoS hardware queues scheduling
A software queue is a queue on which you can configure queueing mechanisms. Anything you configure for QoS in a Cisco device uses software queues. These dynamically use areas of RAM to create constructs that will function as configured. All of these functions use the main CPU and RAM to operate.
The hardware queues use dedicated hardware to perform queuing, scheduling, and packet memory management. These queues are generally "hard-wired" and are not configurable. Their arrangement is also platform-specific. Lower-end devices will have a single hardware queue per port. More advanced devices will have multiple hardware queues in different arrangements such as 2q3t or 8Q3T or 1P1Q3T or 2P6Q3T. These are different models of queuing. Some more advanced platforms will let you choose and configure which of the available arrangements you want to apply. These QoS arrangements are called QoS Scheduling.