A simultaneous multithreading -capable device, comprising: a processor configured to: determine that the SMT-capable device is enabled to perform multithreading; in response to the determination that the SMT-capable device is enabled to perform multithreading: divide a plurality of comparators associated with the SMT-capable device into a plurality of groups of comparators corresponding to respective ones of a plurality of threads associated with the enabled SMT-capable device; assign a corresponding first group of comparators to a first thread included in the plurality of threads and assign a corresponding second group of comparators to a second thread included in the plurality of threads; distribute a first set of instructions associated with the first thread to the corresponding first group of comparators and distribute a second set of instructions associated with the second thread to the corresponding second group of comparators; and perform data dependency detection on the first set of instructions associated with the first thread using the corresponding first group of comparators and perform data dependency detection on the second set of instructions associated with the second thread using the corresponding second group of comparators. a processor configured to: determine that the SMT-capable device is enabled to perform multithreading; in response to the determination that the SMT-capable device is enabled to perform multithreading: divide a plurality of comparators associated with the SMT-capable device into a plurality of groups of comparators corresponding to respective ones of a plurality of threads associated with the enabled SMT-capable device; assign a corresponding first group of comparators to a first thread included in the plurality of threads and assign a corresponding second group of comparators to a second thread included in the plurality of threads; distribute a first set of instructions associated with the first thread to the corresponding first group of comparators and distribute a second set of instructions associated with the second thread to the corresponding second group of comparators; and perform data dependency detection on the first set of instructions associated with the first thread using the corresponding first group of comparators and perform data dependency detection on the second set of instructions associated with the second thread using the corresponding second group of comparators. determine that the SMT-capable device is enabled to perform multithreading; in response to the determination that the SMT-capable device is enabled to perform multithreading: divide a plurality of comparators associated with the SMT-capable device into a plurality of groups of comparators corresponding to respective ones of a plurality of threads associated with the enabled SMT-capable device; assign a corresponding first group of comparators to a first thread included in the plurality of threads and assign a corresponding second group of comparators to a second thread included in the plurality of threads; distribute a first set of instructions associated with the first thread to the corresponding first group of comparators and distribute a second set of instructions associated with the second thread to the corresponding second group of comparators; and perform data dependency detection on the first set of instructions associated with the first thread using the corresponding first group of comparators and perform data dependency detection on the second set of instructions associated with the second thread using the corresponding second group of comparators. divide a plurality of comparators associated with the SMT-capable device into a plurality of groups of comparators corresponding to respective ones of a plurality of threads associated with the enabled SMT-capable device; assign a corresponding first group of comparators to a first thread included in the plurality of threads and assign a corresponding second group of comparators to a second thread included in the plurality of threads; distribute a first set of instructions associated with the first thread to the corresponding first group of comparators and distribute a second set of instructions associated with the second thread to the corresponding second group of comparators; and perform data dependency detection on the first set of instructions associated with the first thread using the corresponding first group of comparators and perform data dependency detection on the second set of instructions associated with the second thread using the corresponding second group of comparators.