Multithreading (computer architecture)
ಕಂಪ್ಯೂಟರ್ ವಾಸ್ತುಶಿಲ್ಪದಲ್ಲಿ, ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಎನ್ನುವುದು ಸೆಂಟ್ರಲ್ ಪ್ರೊಸೆಸಿಂಗ್ ಯುನಿಟ್ನ (ಸಿಪಿಯು) (ಅಥವಾ ಮಲ್ಟಿ-ಕೋರ್ ಪ್ರೊಸೆಸರ್ನಲ್ಲಿ ಒಂದೇ ಕೋರ್) ಸಾಮರ್ಥ್ಯವಾಗಿದ್ದು, ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ನಿಂದ ಬೆಂಬಲಿತವಾಗಿ ಏಕಕಾಲದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಅನೇಕ ಎಳೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಈ ವಿಧಾನವು ಬಹು ಸಂಸ್ಕರಣೆಗಿಂತ ಭಿನ್ನವಾಗಿದೆ. ಮಲ್ಟಿಥ್ರೆಡ್ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ, ಥ್ರೆಡ್ಗಳು ಒಂದೇ ಅಥವಾ ಬಹು ಕೋರ್ಗಳ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ, ಇದರಲ್ಲಿ ಕಂಪ್ಯೂಟಿಂಗ್ ಘಟಕಗಳು, ಸಿಪಿಯು ಕ್ಯಾಶ್ಗಳು ಮತ್ತು ಟ್ರಾನ್ಸ್ಲೇಷನ್ ಲುಕ್ಸೈಡ್ ಬಫರ್ (ಟಿಎಲ್ಬಿ) ಸೇರಿವೆ. ಬಹು ಸಂಸ್ಕರಣಾ ವ್ಯವಸ್ಥೆಗಳು ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಕೋರ್ಗಳಲ್ಲಿ ಅನೇಕ ಸಂಪೂರ್ಣ ಸಂಸ್ಕರಣಾ ಘಟಕಗಳನ್ನು ಒಳಗೊಂಡಿರುವಲ್ಲಿ, ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಥ್ರೆಡ್-ಮಟ್ಟದ ಸಮಾನಾಂತರತೆ ಮತ್ತು ಸೂಚನಾ-ಮಟ್ಟದ ಸಮಾನಾಂತರತೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಒಂದೇ ಕೋರ್ ಬಳಕೆಯನ್ನು ಹೆಚ್ಚಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಈ ಎರಡು ತಂತ್ರಗಳು ಪೂರಕವಾಗಿರುವುದರಿಂದ, ಅವುಗಳನ್ನು ಬಹುತೇಕ ಎಲ್ಲಾ ಆಧುನಿಕ ವ್ಯವಸ್ಥೆಗಳ ವಿನ್ಯಾಸಗಳಲ್ಲಿ ಬಹು ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಸಿಪಿಯುಗಳೊಂದಿಗೆ ಮತ್ತು ಬಹು ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಕೋರ್ಗಳನ್ನು ಹೊಂದಿರುವ ಸಿಪಿಯುಗಳೊಂದಿಗೆ ಸಂಯೋಜಿಸಲಾಗಿದೆ. 1990 ರ ದಶಕದ ಅಂತ್ಯದಿಂದ ಸೂಚನಾ-ಮಟ್ಟದ ಸಮಾನಾಂತರತೆಯನ್ನು ಮತ್ತಷ್ಟು ಬಳಸಿಕೊಳ್ಳುವ ಪ್ರಯತ್ನಗಳು ಸ್ಥಗಿತಗೊಂಡಿರುವುದರಿಂದ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಮಾದರಿ ಹೆಚ್ಚು ಜನಪ್ರಿಯವಾಗಿದೆ. ಇದು ವಹಿವಾಟು ಪ್ರಕ್ರಿಯೆಯ ಹೆಚ್ಚು ವಿಶೇಷ ಕ್ಷೇತ್ರದಿಂದ ಥ್ರೋಪುಟ್ ಕಂಪ್ಯೂಟಿಂಗ್ನ ಪರಿಕಲ್ಪನೆಯು ಮತ್ತೆ ಹೊರಹೊಮ್ಮಲು ಅವಕಾಶ ಮಾಡಿಕೊಟ್ಟಿತು. ಒಂದೇ ಥ್ರೆಡ್ ಅಥವಾ ಒಂದೇ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಮತ್ತಷ್ಟು ವೇಗಗೊಳಿಸುವುದು ತುಂಬಾ ಕಷ್ಟವಾದರೂ, ಹೆಚ್ಚಿನ ಕಂಪ್ಯೂಟರ್ ವ್ಯವಸ್ಥೆಗಳು ವಾಸ್ತವವಾಗಿ ಅನೇಕ ಥ್ರೆಡ್ಗಳು ಅಥವಾ ಪ್ರೋಗ್ರಾಂಗಳ ನಡುವೆ ಬಹುಕಾರ್ಯಕಗಳಾಗಿವೆ. ಹೀಗಾಗಿ, ಎಲ್ಲಾ ಕಾರ್ಯಗಳ ಥ್ರೋಪುಟ್ ಅನ್ನು ಸುಧಾರಿಸುವ ತಂತ್ರಗಳು ಒಟ್ಟಾರೆ ಕಾರ್ಯಕ್ಷಮತೆಯ ಲಾಭಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತವೆ. ಥ್ರೋಪುಟ್ ಕಂಪ್ಯೂಟಿಂಗ್ನ ಎರಡು ಪ್ರಮುಖ ತಂತ್ರಗಳೆಂದರೆ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಮತ್ತು ಮಲ್ಟಿಪ್ರೋಸೆಸಿಂಗ್. ಪ್ರಯೋಜನಗಳು ಒಂದು ಥ್ರೆಡ್ ಬಹಳಷ್ಟು ಕ್ಯಾಶ್ ಮಿಸ್ಗಳನ್ನು ಪಡೆದರೆ, ಇತರ ಥ್ರೆಡ್ಗಳು ಬಳಕೆಯಾಗದ ಕಂಪ್ಯೂಟಿಂಗ್ ಸಂಪನ್ಮೂಲಗಳ ಲಾಭವನ್ನು ಪಡೆಯುವುದನ್ನು ಮುಂದುವರಿಸಬಹುದು, ಇದು ವೇಗವಾಗಿ ಒಟ್ಟಾರೆ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಕಾರಣವಾಗಬಹುದು, ಏಕೆಂದರೆ ಒಂದೇ ಥ್ರೆಡ್ ಅನ್ನು ಮಾತ್ರ ಕಾರ್ಯಗತಗೊಳಿಸಿದ್ದರೆ ಈ ಸಂಪನ್ಮೂಲಗಳು ನಿಷ್ಕ್ರಿಯವಾಗಿರುತ್ತಿತ್ತು. ಅಲ್ಲದೆ, ಒಂದು ಥ್ರೆಡ್ಗೆ ಸಿಪಿಯುನ ಎಲ್ಲಾ ಕಂಪ್ಯೂಟಿಂಗ್ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ (ಸೂಚನೆಗಳು ಪರಸ್ಪರರ ಫಲಿತಾಂಶವನ್ನು ಅವಲಂಬಿಸಿರುವುದರಿಂದ), ಮತ್ತೊಂದು ಥ್ರೆಡ್ ಅನ್ನು ಚಲಾಯಿಸುವುದರಿಂದ ಆ ಸಂಪನ್ಮೂಲಗಳು ನಿಷ್ಕ್ರಿಯವಾಗುವುದನ್ನು ತಡೆಯಬಹುದು. ಅನಾನುಕೂಲಗಳು ಕ್ಯಾಶ್ಗಳು ಅಥವಾ ಟ್ರಾನ್ಸ್ಲೇಷನ್ ಲುಕ್ಸೈಡ್ ಬಫರ್ಗಳು (ಟಿಎಲ್ಬಿಗಳು) ನಂತಹ ಯಂತ್ರಾಂಶ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುವಾಗ ಅನೇಕ ಎಳೆಗಳು ಪರಸ್ಪರ ಹಸ್ತಕ್ಷೇಪ ಮಾಡಬಹುದು. ಇದರ ಪರಿಣಾಮವಾಗಿ, ಥ್ರೆಡ್-ಸ್ವಿಚಿಂಗ್ ಯಂತ್ರಾಂಶವನ್ನು ಸರಿಹೊಂದಿಸಲು ಅಗತ್ಯವಾದ ಕಡಿಮೆ ಆವರ್ತನಗಳು ಅಥವಾ ಹೆಚ್ಚುವರಿ ಪೈಪ್ಲೈನ್ ಹಂತಗಳ ಕಾರಣದಿಂದಾಗಿ, ಒಂದೇ ಥ್ರೆಡ್ನ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯವು ಸುಧಾರಿಸುವುದಿಲ್ಲ ಮತ್ತು ಕೇವಲ ಒಂದು ಥ್ರೆಡ್ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತಿದ್ದಾಗಲೂ ಅದನ್ನು ಕೆಳಮಟ್ಟಕ್ಕಿಳಿಸಬಹುದು. ಒಟ್ಟಾರೆ ದಕ್ಷತೆಯು ಬದಲಾಗುತ್ತದೆ; ಇಂಟೆಲ್ ತನ್ನ ಹೈಪರ್-ಥ್ರೆಡಿಂಗ್ ತಂತ್ರಜ್ಞಾನದೊಂದಿಗೆ ಶೇಕಡಾ 30ರಷ್ಟು ಸುಧಾರಣೆಯನ್ನು ಸಾಧಿಸಿದೆ ಎಂದು ಹೇಳುತ್ತದೆ, ಆದರೆ ಸಿಂಥೆಟಿಕ್ ಪ್ರೋಗ್ರಾಂ ಕೇವಲ ಆಪ್ಟಿಮೈಸ್ಡ್ ಅಲ್ಲದ ಅವಲಂಬಿತ ಫ್ಲೋಟಿಂಗ್-ಪಾಯಿಂಟ್ ಕಾರ್ಯಾಚರಣೆಗಳ ಲೂಪ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, ಸಮಾನಾಂತರವಾಗಿ ಚಲಾಯಿಸಿದಾಗ ವಾಸ್ತವವಾಗಿ 100% ವೇಗದ ಸುಧಾರಣೆಯನ್ನು ಪಡೆಯುತ್ತದೆ. ಮತ್ತೊಂದೆಡೆ, ಎಂಎಂಎಕ್ಸ್ ಅಥವಾ ಆಲ್ಟಿವೆಕ್ ವಿಸ್ತರಣೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಕೈಯಿಂದ ಸಂಯೋಜಿಸಲಾದ ಅಸೆಂಬ್ಲಿ ಭಾಷೆಯ ಪ್ರೋಗ್ರಾಂಗಳು ಮತ್ತು ಡೇಟಾ ಪ್ರಿಫೆಚ್ಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು (ಉತ್ತಮ ವೀಡಿಯೊ ಎನ್ಕೋಡರ್ ಆಗಿರಬಹುದು) ಕ್ಯಾಶ್ ಮಿಸ್ ಅಥವಾ ನಿಷ್ಕ್ರಿಯ ಕಂಪ್ಯೂಟಿಂಗ್ ಸಂಪನ್ಮೂಲಗಳಿಂದ ಬಳಲುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ ಅಂತಹ ಕಾರ್ಯಕ್ರಮಗಳು ಹಾರ್ಡ್ವೇರ್ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ನಿಂದ ಪ್ರಯೋಜನ ಪಡೆಯುವುದಿಲ್ಲ ಮತ್ತು ಹಂಚಿಕೆಯ ಸಂಪನ್ಮೂಲಗಳ ವಿವಾದದಿಂದಾಗಿ ಕೆಳಮಟ್ಟದ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ನೋಡಬಹುದು. ಸಾಫ್ಟ್ವೇರ್ ದೃಷ್ಟಿಕೋನದಿಂದ, ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ಗಾಗಿ ಹಾರ್ಡ್ವೇರ್ ಬೆಂಬಲವು ಸಾಫ್ಟ್ವೇರ್ಗೆ ಹೆಚ್ಚು ಗೋಚರಿಸುತ್ತದೆ, ಮಲ್ಟಿಪ್ರೋಸೆಸಿಂಗ್ಗಿಂತ ಅಪ್ಲಿಕೇಶನ್ ಪ್ರೋಗ್ರಾಂಗಳು ಮತ್ತು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ಗಳೆರಡರಲ್ಲೂ ಹೆಚ್ಚಿನ ಬದಲಾವಣೆಗಳ ಅಗತ್ಯವಿರುತ್ತದೆ. ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಅನ್ನು ಬೆಂಬಲಿಸಲು ಬಳಸುವ ಹಾರ್ಡ್ವೇರ್ ತಂತ್ರಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಕಂಪ್ಯೂಟರ್ ಮಲ್ಟಿ ಟಾಸ್ಕಿಂಗ್ಗೆ ಬಳಸುವ ಸಾಫ್ಟ್ವೇರ್ ತಂತ್ರಗಳಿಗೆ ಸಮಾನಾಂತರವಾಗಿರುತ್ತವೆ. ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ನಲ್ಲಿ ಥ್ರೆಡ್ ವೇಳಾಪಟ್ಟಿಯೂ ಸಹ ಒಂದು ಪ್ರಮುಖ ಸಮಸ್ಯೆಯಾಗಿದೆ. ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ನ ವಿಧಗಳು ಇಂಟರ್ಲೀವ್ಡ್/ಟೆಂಪೋರಲ್ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಒರಟಾದ-ಧಾನ್ಯದ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಒಂದು ಥ್ರೆಡ್ ಸಾಮಾನ್ಯವಾಗಿ ದೀರ್ಘ-ಲೇಟೆನ್ಸಿ ಸ್ಟಾಲ್ ಅನ್ನು ರಚಿಸುವ ಘಟನೆಯಿಂದ ನಿರ್ಬಂಧಿಸುವವರೆಗೆ ಓಡಿದಾಗ ಸರಳವಾದ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಸಂಭವಿಸುತ್ತದೆ. ಅಂತಹ ಸ್ಟಾಲ್ ಕ್ಯಾಶ್ ಮಿಸ್ ಆಗಿರಬಹುದು, ಅದು ಆಫ್-ಚಿಪ್ ಮೆಮೊರಿಯನ್ನು ಪ್ರವೇಶಿಸಬೇಕಾಗುತ್ತದೆ, ಇದು ಡೇಟಾವನ್ನು ಹಿಂತಿರುಗಿಸಲು ನೂರಾರು ಸಿಪಿಯು ಸೈಕಲ್ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ಸ್ಟಾಲ್ ಪರಿಹರಿಸಲು ಕಾಯುವ ಬದಲು, ಥ್ರೆಡ್ ಮಾಡಲಾದ ಪ್ರೊಸೆಸರ್ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಚಲಾಯಿಸಲು ಸಿದ್ಧವಾದ ಮತ್ತೊಂದು ಥ್ರೆಡ್ಗೆ ಬದಲಾಯಿಸುತ್ತದೆ. ಹಿಂದಿನ ಥ್ರೆಡ್ನ ದತ್ತಾಂಶವು ಬಂದಾಗ ಮಾತ್ರ, ಹಿಂದಿನ ಥ್ರೆಡ್ ಅನ್ನು ಓಡಲು ಸಿದ್ಧವಾದ ಥ್ರೆಡ್ಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆಃ ಸೈಕಲ್ಃ ಥ್ರೆಡ್ನಿಂದ ಸೂಚನೆಯನ್ನು ನೀಡಲಾಗುತ್ತದೆ. ಚಕ್ರಃ ದಾರದಿಂದ ಸೂಚನೆಗಳನ್ನು ನೀಡಲಾಗುತ್ತದೆ. ಸೈಕಲ್ಃ ಥ್ರೆಡ್ನಿಂದ ಸೂಚನೆಯನ್ನು ನೀಡಲಾಗುತ್ತದೆ, ಇದು ಎಲ್ಲಾ ಕ್ಯಾಶ್ಗಳಲ್ಲಿ ತಪ್ಪಿಹೋಗುವ ಲೋಡ್ ಸೂಚನೆಯಾಗಿದೆ. ಸೈಕಲ್ಃ ಥ್ರೆಡ್ ಶೆಡ್ಯೂಲರ್ ಅನ್ನು ಆಹ್ವಾನಿಸಲಾಗುತ್ತದೆ, ಥ್ರೆಡ್ಗೆ ಬದಲಾಗುತ್ತದೆ. ಚಕ್ರಃ ದಾರದಿಂದ ಸೂಚನೆಗಳನ್ನು ನೀಡಲಾಗುತ್ತದೆ. ಚಕ್ರಃ ದಾರದಿಂದ ಸೂಚನೆಗಳನ್ನು ನೀಡಲಾಗುತ್ತದೆ. ಪರಿಕಲ್ಪನಾತ್ಮಕವಾಗಿ, ಇದು ನೈಜ-ಸಮಯದ ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಬಳಸುವ ಸಹಕಾರಿ ಬಹು-ಕಾರ್ಯವನ್ನು ಹೋಲುತ್ತದೆ, ಇದರಲ್ಲಿ ಕಾರ್ಯಗಳು ಸ್ವಯಂಪ್ರೇರಣೆಯಿಂದ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯವನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತವೆ. ಈ ರೀತಿಯ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಅನ್ನು ಬ್ಲಾಕ್, ಕೋಆಪರೇಟಿವ್ ಅಥವಾ ಒರಟಾದ-ಧಾನ್ಯದ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಹಾರ್ಡ್ವೇರ್ ಬೆಂಬಲದ ಗುರಿಯು ನಿರ್ಬಂಧಿತ ಥ್ರೆಡ್ ಮತ್ತು ಚಲಾಯಿಸಲು ಸಿದ್ಧವಾಗಿರುವ ಮತ್ತೊಂದು ಥ್ರೆಡ್ನ ನಡುವೆ ತ್ವರಿತವಾಗಿ ಬದಲಾಯಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಒಂದು ಥ್ರೆಡ್ನಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಬದಲಾಯಿಸುವುದು ಎಂದರೆ ಹಾರ್ಡ್ವೇರ್ ಒಂದು ರಿಜಿಸ್ಟರ್ ಸೆಟ್ನಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಬದಲಾಗುತ್ತದೆ ಎಂದರ್ಥ. ಈ ಗುರಿಯನ್ನು ಸಾಧಿಸಲು, ಪ್ರೋಗ್ರಾಂನ ಗೋಚರ ರೆಜಿಸ್ಟರ್ಗಳ ಯಂತ್ರಾಂಶ ಮತ್ತು ಕೆಲವು ಪ್ರೊಸೆಸರ್ ನಿಯಂತ್ರಣ ರೆಜಿಸ್ಟರ್ಗಳನ್ನು (ಪ್ರೋಗ್ರಾಂ ಕೌಂಟರ್ನಂತಹ) ಪುನರಾವರ್ತಿಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಎರಡು ಎಳೆಗಳ ನಡುವೆ ತ್ವರಿತವಾಗಿ ಬದಲಾಯಿಸಲು, ಪ್ರೊಸೆಸರ್ ಅನ್ನು ಎರಡು ಸೆಟ್ ರೆಜಿಸ್ಟರ್ಗಳೊಂದಿಗೆ ನಿರ್ಮಿಸಲಾಗಿದೆ. ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ಗೆ ಹೆಚ್ಚುವರಿ ಹಾರ್ಡ್ವೇರ್ ಬೆಂಬಲವು ಥ್ರೆಡ್ ಸ್ವಿಚಿಂಗ್ ಅನ್ನು ಒಂದು ಸಿಪಿಯು ಚಕ್ರದಲ್ಲಿ ಮಾಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಇದು ಕಾರ್ಯಕ್ಷಮತೆಯ ಸುಧಾರಣೆಗಳನ್ನು ತರುತ್ತದೆ. ಅಲ್ಲದೆ, ಹೆಚ್ಚುವರಿ ಹಾರ್ಡ್ವೇರ್ ಪ್ರತಿ ಥ್ರೆಡ್ ಅನ್ನು ಏಕಾಂಗಿಯಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತಿದೆ ಮತ್ತು ಯಾವುದೇ ಹಾರ್ಡ್ವೇರ್ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಇತರ ಥ್ರೆಡ್ಗಳೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳದೆ ವರ್ತಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಅನ್ನು ಬೆಂಬಲಿಸಲು ಅಪ್ಲಿಕೇಶನ್ ಮತ್ತು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ನಲ್ಲಿ ಅಗತ್ಯವಿರುವ ಸಾಫ್ಟ್ವೇರ್ ಬದಲಾವಣೆಗಳ ಪ್ರಮಾಣವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಮೈಕ್ರೊಕಂಟ್ರೋಲರ್ಗಳು ಮತ್ತು ಎಂಬೆಡೆಡ್ ಪ್ರೊಸೆಸರ್ಗಳ ಅನೇಕ ಕುಟುಂಬಗಳು ಅಡಚಣೆಗಳಿಗೆ ತ್ವರಿತ ಸಂದರ್ಭ ಬದಲಾವಣೆಯನ್ನು ಅನುಮತಿಸಲು ಅನೇಕ ರಿಜಿಸ್ಟರ್ ಬ್ಯಾಂಕುಗಳನ್ನು ಹೊಂದಿವೆ. ಅಂತಹ ಯೋಜನೆಗಳನ್ನು ಬಳಕೆದಾರ ಪ್ರೋಗ್ರಾಂ ಥ್ರೆಡ್ ಮತ್ತು ಇಂಟರಪ್ಟ್ ಥ್ರೆಡ್ಗಳ ನಡುವೆ ಒಂದು ರೀತಿಯ ಬ್ಲಾಕ್ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಎಂದು ಪರಿಗಣಿಸಬಹುದು. ಫೈನ್ ಗ್ರೈನ್ಡ್ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಫೈನ್ ಗ್ರೈನ್ಡ್ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ನ ಉದ್ದೇಶವು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಪೈಪ್ಲೈನ್ನಿಂದ ಎಲ್ಲಾ ದತ್ತಾಂಶ ಅವಲಂಬನೆ ಮಳಿಗೆಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದು. ಒಂದು ದಾರವು ಇತರ ಎಳೆಗಳಿಂದ ತುಲನಾತ್ಮಕವಾಗಿ ಸ್ವತಂತ್ರವಾಗಿರುವುದರಿಂದ, ಒಂದು ಪೈಪ್ಲೈನಿಂಗ್ ಹಂತದಲ್ಲಿ ಒಂದು ಸೂಚನೆಗೆ ಪೈಪ್ಲೈನ್ನಲ್ಲಿರುವ ಹಳೆಯ ಸೂಚನೆಯಿಂದ ಔಟ್ಪುಟ್ ಅಗತ್ಯವಿರುವ ಸಾಧ್ಯತೆ ಕಡಿಮೆ. ಪರಿಕಲ್ಪನಾತ್ಮಕವಾಗಿ, ಇದು ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಬಳಸುವ ಪೂರ್ವಭಾವಿ ಬಹುಕಾರ್ಯಕವನ್ನು ಹೋಲುತ್ತದೆ; ಒಂದು ಸಾದೃಶ್ಯವೆಂದರೆ ಪ್ರತಿ ಸಕ್ರಿಯ ಥ್ರೆಡ್ಗೆ ನೀಡಲಾದ ಸಮಯದ ಸ್ಲೈಸ್ ಒಂದು ಸಿಪಿಯು ಸೈಕಲ್ ಆಗಿದೆ. ಉದಾಹರಣೆಗೆಃ ಸೈಕಲ್ಃ ಥ್ರೆಡ್ನಿಂದ ಸೂಚನೆಯನ್ನು ನೀಡಲಾಗುತ್ತದೆ. ಚಕ್ರಃ ಥ್ರೆಡ್ನಿಂದ ಸೂಚನೆಯನ್ನು ನೀಡಲಾಗುತ್ತದೆ. ಈ ರೀತಿಯ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಅನ್ನು ಮೊದಲು ಬ್ಯಾರೆಲ್ ಪ್ರೊಸೆಸಿಂಗ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತಿತ್ತು, ಇದರಲ್ಲಿ ಬ್ಯಾರೆಲ್ನ ಕೋಲುಗಳು ಪೈಪ್ಲೈನ್ ಹಂತಗಳನ್ನು ಮತ್ತು ಅವುಗಳ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಎಳೆಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತವೆ. ಇಂಟರ್ಲೀವ್ಡ್, ಪ್ರಿಎಂಪ್ಟಿವ್, ಫೈನ್-ಗ್ರೇನ್ಡ್ ಅಥವಾ ಟೈಮ್-ಸ್ಲೈಸ್ಡ್ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಹೆಚ್ಚು ಆಧುನಿಕ ಪರಿಭಾಷೆಯಾಗಿದೆ. ಬ್ಲಾಕ್ ಪ್ರಕಾರದ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ನಲ್ಲಿ ಚರ್ಚಿಸಲಾದ ಹಾರ್ಡ್ವೇರ್ ವೆಚ್ಚಗಳ ಜೊತೆಗೆ, ಇಂಟರ್ಲೀವ್ಡ್ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಅದು ಸಂಸ್ಕರಿಸುತ್ತಿರುವ ಸೂಚನೆಯ ಥ್ರೆಡ್ ಐಡಿಯನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವ ಪ್ರತಿ ಪೈಪ್ಲೈನ್ ಹಂತದ ಹೆಚ್ಚುವರಿ ವೆಚ್ಚವನ್ನು ಹೊಂದಿದೆ. ಅಲ್ಲದೆ, ಪೈಪ್ಲೈನ್ನಲ್ಲಿ ಏಕಕಾಲದಲ್ಲಿ ಹೆಚ್ಚಿನ ಎಳೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತಿರುವುದರಿಂದ, ವಿವಿಧ ಎಳೆಗಳ ನಡುವೆ ಹೊಡೆತವನ್ನು ತಪ್ಪಿಸಲು ಕ್ಯಾಶ್ಗಳು ಮತ್ತು ಟಿಎಲ್ಬಿಗಳಂತಹ ಹಂಚಿಕೆಯ ಸಂಪನ್ಮೂಲಗಳು ದೊಡ್ಡದಾಗಿರಬೇಕು. ಏಕಕಾಲಿಕ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಅತ್ಯಂತ ಮುಂದುವರಿದ ರೀತಿಯ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಸೂಪರ್ಸ್ಕೇಲಾರ್ ಪ್ರೊಸೆಸರ್ಗಳಿಗೆ ಅನ್ವಯಿಸುತ್ತದೆ. ಸಾಮಾನ್ಯ ಸೂಪರ್ಸ್ಕೇಲಾರ್ ಪ್ರೊಸೆಸರ್ ಪ್ರತಿ ಸಿಪಿಯು ಚಕ್ರದಲ್ಲಿ ಒಂದೇ ಥ್ರೆಡ್ನಿಂದ ಅನೇಕ ಸೂಚನೆಗಳನ್ನು ನೀಡುತ್ತದೆಯಾದರೂ, ಏಕಕಾಲಿಕ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ (ಎಸ್ಎಂಟಿ) ಯಲ್ಲಿ ಸೂಪರ್ಸ್ಕೇಲಾರ್ ಪ್ರೊಸೆಸರ್ ಪ್ರತಿ ಸಿಪಿಯು ಚಕ್ರದಲ್ಲಿ ಅನೇಕ ಥ್ರೆಡ್ಗಳಿಂದ ಸೂಚನೆಗಳನ್ನು ನೀಡಬಹುದು. ಯಾವುದೇ ಒಂದು ಥ್ರೆಡ್ ಸೀಮಿತ ಪ್ರಮಾಣದ ಸೂಚನಾ-ಮಟ್ಟದ ಸಮಾನಾಂತರತೆಯನ್ನು ಹೊಂದಿದೆ ಎಂಬುದನ್ನು ಗುರುತಿಸಿ, ಈ ರೀತಿಯ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಬಳಕೆಯಾಗದ ಸಂಚಿಕೆಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ತ್ಯಾಜ್ಯವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಅನೇಕ ಥ್ರೆಡ್ಗಳಲ್ಲಿ ಲಭ್ಯವಿರುವ ಸಮಾನಾಂತರತೆಯನ್ನು ಬಳಸಿಕೊಳ್ಳಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆಃ ಸೈಕಲ್ಃ ಸೂಚನೆಗಳು ಮತ್ತು ಥ್ರೆಡ್ನಿಂದ ಮತ್ತು ಥ್ರೆಡ್ನಿಂದ ಸೂಚನೆಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ನೀಡಲಾಗುತ್ತದೆ. ಚಕ್ರಃ ದಾರದಿಂದ ಸೂಚನೆಗಳನ್ನು, ದಾರದಿಂದ ಸೂಚನೆಗಳನ್ನು ಮತ್ತು ದಾರದಿಂದ ಸೂಚನೆಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ನೀಡಲಾಗುತ್ತದೆ. ಚಕ್ರಃ ದಾರ ಮತ್ತು ಸೂಚನೆಗಳು ಮತ್ತು ದಾರದಿಂದ ಸೂಚನೆಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ನೀಡಲಾಗುತ್ತದೆ. ಇತರ ರೀತಿಯ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಅನ್ನು ಎಸ್. ಎಂ. ಟಿ. ಯಿಂದ ಪ್ರತ್ಯೇಕಿಸಲು, "ಟೆಂಪೋರಲ್ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್" ಎಂಬ ಪದವನ್ನು ಒಂದು ಸಮಯದಲ್ಲಿ ಕೇವಲ ಒಂದು ಥ್ರೆಡ್ನ ಸೂಚನೆಗಳನ್ನು ಯಾವಾಗ ನೀಡಬಹುದು ಎಂಬುದನ್ನು ಸೂಚಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಇಂಟರ್ಲೀವ್ಡ್ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ಗಾಗಿ ಚರ್ಚಿಸಲಾದ ಹಾರ್ಡ್ವೇರ್ ವೆಚ್ಚಗಳ ಜೊತೆಗೆ, ಎಸ್ಎಂಟಿ ಪ್ರತಿ ಪೈಪ್ಲೈನ್ ಹಂತದ ಹೆಚ್ಚುವರಿ ವೆಚ್ಚವನ್ನು ಹೊಂದಿದೆ, ಪ್ರತಿ ಸೂಚನೆಯ ಥ್ರೆಡ್ ಐಡಿಯನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುತ್ತದೆ. ಮತ್ತೊಮ್ಮೆ, ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಸಕ್ರಿಯ ಎಳೆಗಳನ್ನು ಸಂಸ್ಕರಿಸಲು ಕ್ಯಾಶ್ಗಳು ಮತ್ತು ಟಿಎಲ್ಬಿಗಳಂತಹ ಹಂಚಿಕೆಯ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಗಾತ್ರಗೊಳಿಸಬೇಕಾಗುತ್ತದೆ. ಅನುಷ್ಠಾನಗಳಲ್ಲಿ ಡಿಇಸಿ (ನಂತರ ಕಾಂಪ್ಯಾಕ್) ಇವಿ8 (ಪೂರ್ಣಗೊಂಡಿಲ್ಲ), ಇಂಟೆಲ್ ಹೈಪರ್-ಥ್ರೆಡಿಂಗ್ ಟೆಕ್ನಾಲಜಿ, ಐಬಿಎಂ ಪವರ್5/ಪವರ್6/ಪವರ್7/ಪವರ್8/ಪವರ್9, ಐಬಿಎಂ ಝಡ್13/ಝಡ್14/ಝಡ್15, ಸನ್ ಮೈಕ್ರೋಸಿಸ್ಟಮ್ಸ್ ಅಲ್ಟ್ರಾಸ್ಪಾರ್ಕ್ ಟಿ2, ಕ್ರೇ ಎಕ್ಸ್ಎಂಟಿ, ಮತ್ತು ಎಎಮ್ಡಿ ಬುಲ್ಡೋಜರ್ ಮತ್ತು ಝೆನ್ ಮೈಕ್ರೋಆರ್ಕಿಟೆಕ್ಚರ್ಗಳು ಸೇರಿವೆ. ಅನುಷ್ಠಾನದ ನಿರ್ದಿಷ್ಟತೆಗಳು ಥ್ರೆಡ್ ಶೆಡ್ಯೂಲರ್ ಸಂಶೋಧನೆಯ ಒಂದು ಪ್ರಮುಖ ಕ್ಷೇತ್ರವಾಗಿದ್ದು, ಅದು ಮುಂದಿನದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸಿದ್ಧವಾದ ಥ್ರೆಡ್ಗಳ ಪಟ್ಟಿಯಿಂದ ತ್ವರಿತವಾಗಿ ಆಯ್ಕೆ ಮಾಡಬೇಕು, ಜೊತೆಗೆ ಸಿದ್ಧವಾದ ಮತ್ತು ಸ್ಥಗಿತಗೊಂಡ ಥ್ರೆಡ್ ಪಟ್ಟಿಗಳನ್ನು ನಿರ್ವಹಿಸಬೇಕು. ಶೆಡ್ಯೂಲರ್ ಬಳಸಬಹುದಾದ ವಿಭಿನ್ನ ಥ್ರೆಡ್ ಆದ್ಯತೆಯ ಯೋಜನೆಗಳು ಒಂದು ಪ್ರಮುಖ ಉಪವಿಷಯವಾಗಿದೆ. ಥ್ರೆಡ್ ಶೆಡ್ಯೂಲರ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಸಾಫ್ಟ್ವೇರ್ನಲ್ಲಿ, ಸಂಪೂರ್ಣವಾಗಿ ಹಾರ್ಡ್ವೇರ್ನಲ್ಲಿ ಅಥವಾ ಹಾರ್ಡ್ವೇರ್/ಸಾಫ್ಟ್ವೇರ್ ಸಂಯೋಜನೆಯಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು. ಯಾವ ರೀತಿಯ ಘಟನೆಗಳು ಥ್ರೆಡ್ ಸ್ವಿಚ್ಗೆ ಕಾರಣವಾಗಬೇಕು ಎಂಬುದು ಸಂಶೋಧನೆಯ ಮತ್ತೊಂದು ಕ್ಷೇತ್ರವಾಗಿದೆಃ ಕ್ಯಾಶ್ ಮಿಸ್ಗಳು, ಇಂಟರ್-ಥ್ರೆಡ್ ಸಂವಹನ, ಡಿಎಂಎ ಪೂರ್ಣಗೊಳಿಸುವಿಕೆ, ಇತ್ಯಾದಿ. ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಯೋಜನೆಯು ವಿಶೇಷ ನಿಯಂತ್ರಣ ರೆಜಿಸ್ಟರ್ಗಳು ಮತ್ತು ಟಿಎಲ್ಬಿಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಎಲ್ಲಾ ಸಾಫ್ಟ್ವೇರ್-ಗೋಚರ ಸ್ಥಿತಿಯನ್ನು ಪುನರಾವರ್ತಿಸಿದರೆ, ಅದು ಪ್ರತಿ ಥ್ರೆಡ್ಗೆ ವರ್ಚುವಲ್ ಯಂತ್ರಗಳನ್ನು ರಚಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದು ಪ್ರತಿ ಥ್ರೆಡ್ಗೆ ಒಂದೇ ಪ್ರೊಸೆಸರ್ನಲ್ಲಿ ತನ್ನದೇ ಆದ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಚಲಾಯಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಮತ್ತೊಂದೆಡೆ, ಬಳಕೆದಾರ-ಮೋಡ್ ಸ್ಥಿತಿಯನ್ನು ಮಾತ್ರ ಉಳಿಸಿದರೆ, ಕಡಿಮೆ ಯಂತ್ರಾಂಶದ ಅಗತ್ಯವಿರುತ್ತದೆ, ಇದು ಒಂದೇ ಡೈ ಪ್ರದೇಶ ಅಥವಾ ವೆಚ್ಚಕ್ಕೆ ಒಂದೇ ಸಮಯದಲ್ಲಿ ಹೆಚ್ಚಿನ ಎಳೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಸೂಪರ್-ಥ್ರೆಡಿಂಗ್ ಸ್ಪೆಕ್ಯುಲೇಟಿವ್ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಉಲ್ಲೇಖಗಳು ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಎ ಸರ್ವೆ ಆಫ್ ಪ್ರೊಸೆಸರ್ಸ್ ವಿತ್ ಎಕ್ಸ್ಪ್ಲಿಸಿಟ್ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್, ಎಸಿಎಂ, ಮಾರ್ಚ್ 2003, ಥಿಯೋ ಉಂಗೆರರ್, ಬೋರುಟ್ ರಾಬಿ ಮತ್ತು ಜುರಿಜ್ ಸಿಲ್ಕ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ | ಮಲ್ಟಿ ಟಾಸ್ಕಿಂಗ್, ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಮತ್ತು ಮಲ್ಟಿಪ್ರೋಸೆಸಿಂಗ್ ನಡುವಿನ ವ್ಯತ್ಯಾಸ ಗೀಕ್ಸ್ ಫಾರ್ ಗೀಕ್ಸ್, 6 ಸೆಪ್ಟೆಂಬರ್ 2018 ಅನ್ನು ಸಹ ನೋಡಿ. ಸೆಂಟ್ರಲ್ ಪ್ರೊಸೆಸಿಂಗ್ ಯುನಿಟ್ ಇನ್ಸ್ಟ್ರಕ್ಷನ್ ಪ್ರೊಸೆಸಿಂಗ್ ಮೈಕ್ರೊಪ್ರೊಸೆಸರ್ಗಳು ಪ್ಯಾರಲಲ್ ಕಂಪ್ಯೂಟಿಂಗ್ ಥ್ರೆಡ್ಸ್ (ಕಂಪ್ಯೂಟಿಂಗ್)