ในสาขาอิเล็กทรอนิกส์ดิจิทัล รีจิสเตอร์เลื่อน (Shift Register) มีบทบาทสำคัญในแอปพลิเคชันต่าง ๆ มากมาย ตั้งแต่การจัดเก็บข้อมูลไปจนถึงการประมวลผลสัญญาณ รีจิสเตอร์เลื่อนชนิดหนึ่งที่นิยมใช้งานคือ รีจิสเตอร์เลื่อนแบบอนุกรมเข้า–อนุกรมออก (Serial-In Serial-Out: SISO) รีจิสเตอร์เลื่อนแบบอนุกรมเข้า–อนุกรมออกเป็นวงจรลอจิกแบบซีเควนเชียล (Sequential Logic Circuit) ที่ช่วยให้สามารถเลื่อนข้อมูลเข้าและออกทีละบิตในรูปแบบอนุกรมได้ ข้อมูลอินพุตจะถูกป้อนเข้าสู่ฟลิปฟลอปตัวแรกในชุดวงจร และเมื่อมีสัญญาณนาฬิกา ข้อมูลจะถูกส่งต่อผ่านฟลิปฟลอปแต่ละตัว จนปรากฏที่เอาต์พุตในที่สุด
ประกอบด้วยชุดฟลิปฟลอป (Flip-Flop) ที่เชื่อมต่อเรียงต่อกันแบบอนุกรม วงจรลอจิกที่แสดงด้านล่างเป็นตัวอย่างของรีจิสเตอร์เลื่อนแบบอนุกรมเข้า–อนุกรมออก (SISO) วงจรนี้ประกอบด้วยฟลิปฟลอปชนิด D จำนวน 4 ตัวที่เชื่อมต่อกันตามลำดับ ฟลิปฟลอปเหล่านี้ทำงานแบบซิงโครนัสร่วมกัน เนื่องจากทั้งหมดได้รับสัญญาณนาฬิกาเดียวกัน รีจิสเตอร์ SISO ขนาด 4 บิต คุณสมบัติการทำงานแบบซิงโครนัสของฟลิปฟลอปช่วยให้การเลื่อนข้อมูลเกิดขึ้นอย่างสอดคล้องกัน เมื่อสัญญาณนาฬิกาเปลี่ยนจากระดับต่ำเป็นระดับสูง ข้อมูลอินพุตจะถูกสุ่มตัวอย่างและจัดเก็บไว้ในฟลิปฟลอปตัวแรก ในรอบสัญญาณนาฬิกาถัดไป ข้อมูลที่จัดเก็บไว้จะถูกส่งต่อผ่านฟลิปฟลอปแต่ละตัว โดยเคลื่อนที่จากฟลิปฟลอปหนึ่งไปยังอีกตัวหนึ่ง
ฟลิปฟลอป D แต่ละตัวในวงจรมีอินพุตข้อมูล (D) อินพุตสัญญาณนาฬิกา (CLK) และเอาต์พุต (Q) อินพุต D ใช้สำหรับรับข้อมูลที่ต้องการโหลดเข้าสู่ฟลิปฟลอป ขณะที่อินพุต CLK เชื่อมต่อกับสัญญาณนาฬิการ่วม เอาต์พุต (Q) ของฟลิปฟลอปแต่ละตัวจะเชื่อมต่อกับอินพุต D ของฟลิปฟลอปตัวถัดไป ทำให้เกิดเป็นวงจรแบบคาสเคด (Cascaded Circuit)
หลักการทำงานของ SISO รีจิสเตอร์เลื่อน SISO (Single Input Single Output) เป็นวงจรซีเควนเชียลที่รับข้อมูลเข้าทีละบิตและเลื่อนข้อมูลผ่านฟลิปฟลอปในแต่ละรอบสัญญาณนาฬิกา โดยสร้างสัญญาณเอาต์พุตในรูปแบบอนุกรม
ข้อมูลจะถูกป้อนเข้าสู่อินพุต ในแต่ละรอบสัญญาณนาฬิกา ข้อมูลจะถูกส่งต่อจากฟลิปฟลอปตัวหนึ่งไปยังอีกตัวหนึ่ง หลังจากผ่านไป n รอบสัญญาณนาฬิกา บิตอินพุตจะปรากฏที่เอาต์พุต สัญญาณเอาต์พุตจะถูกอ่านจากฟลิปฟลอปตัวสุดท้าย โดยทั่วไป ระบบ SISO หมายถึงระบบที่มีสัญญาณอินพุตหนึ่งสัญญาณ ซึ่งถูกประมวลผลเพื่อให้ได้สัญญาณเอาต์พุตที่สอดคล้องกัน ดังนั้นจึงเป็นองค์ประกอบพื้นฐานของแนวคิดเกี่ยวกับระบบและสัญญาณ
ตารางความจริงของ SISO รูปคลื่นสัญญาณ
ฟังก์ชันและการทำงาน การทำงานของรีจิสเตอร์เลื่อน SISO อาศัยองค์ประกอบหลักสองส่วน ได้แก่ ฟลิปฟลอปและสัญญาณนาฬิกา
ฟลิปฟลอป (Flip-Flop): ฟลิปฟลอปเป็นองค์ประกอบพื้นฐานของวงจรซีเควนเชียล สำหรับรีจิสเตอร์เลื่อน SISO ฟลิปฟลอปแต่ละตัวจะจัดเก็บข้อมูลจำนวน 1 บิต จำนวนฟลิปฟลอปที่ใช้จะเป็นตัวกำหนดความยาวหรือขนาดของรีจิสเตอร์เลื่อนสัญญาณนาฬิกา (Clock Signal): สัญญาณนาฬิกาทำหน้าที่ซิงโครไนซ์การเคลื่อนที่ของข้อมูลผ่านรีจิสเตอร์เลื่อน ในแต่ละรอบสัญญาณนาฬิกา ข้อมูลจะเลื่อนจากฟลิปฟลอปตัวหนึ่งไปยังอีกตัวหนึ่ง สัญญาณนาฬิกาช่วยให้มั่นใจได้ว่าการส่งผ่านข้อมูลเกิดขึ้นอย่างเป็นระบบและสอดคล้องกันเมื่อสัญญาณนาฬิกาเปลี่ยนจากระดับต่ำเป็นระดับสูง (หรือจากระดับสูงเป็นระดับต่ำ ขึ้นอยู่กับการออกแบบวงจร) ข้อมูลอินพุตจะถูกสุ่มตัวอย่างและจัดเก็บไว้ในฟลิปฟลอปตัวแรก ในรอบสัญญาณนาฬิกาถัดไป ข้อมูลที่จัดเก็บไว้จะเคลื่อนที่ผ่านชุดฟลิปฟลอปที่เชื่อมต่อกัน โดยสัญญาณเอาต์พุตของรีจิสเตอร์เลื่อนจะถูกอ่านจากฟลิปฟลอปตัวสุดท้ายในชุดวงจร
การประยุกต์ใช้งาน การจัดเก็บและเรียกคืนข้อมูล: รีจิสเตอร์เลื่อน SISO มักใช้สำหรับจัดเก็บและเรียกคืนข้อมูลในแอปพลิเคชันที่การส่งข้อมูลแบบอนุกรมมีประสิทธิภาพมากกว่าหรือสามารถทำได้สะดวกกว่า ตัวอย่างเช่น ในระบบสื่อสาร ข้อมูลมักถูกส่งในรูปแบบอนุกรม และรีจิสเตอร์เลื่อนช่วยจัดเก็บข้อมูลชั่วคราวก่อนนำไปประมวลผลในขั้นตอนถัดไป การแปลงข้อมูลอนุกรมเป็นขนาน: การใช้รีจิสเตอร์เลื่อน SISO ร่วมกับวงจรเพิ่มเติมช่วยให้สามารถแปลงข้อมูลอนุกรมให้อยู่ในรูปแบบขนานได้ การแปลงรูปแบบนี้มีประโยชน์เมื่อต้องสื่อสารระหว่างอุปกรณ์ที่ทำงานแบบอนุกรมและแบบขนาน เช่น ไมโครโปรเซสเซอร์และอุปกรณ์ต่อพ่วง การสร้างความหน่วงและลำดับเวลา: โครงสร้างแบบคาสเคดของรีจิสเตอร์เลื่อนช่วยให้สามารถสร้างสัญญาณเวอร์ชันที่มีความหน่วง หรือสร้างลำดับเวลาที่ซับซ้อนได้ โดยใช้ประโยชน์จากแต่ละขั้นของรีจิสเตอร์เลื่อน ทำให้สามารถสร้างสัญญาณอินพุตหลายเวอร์ชันที่มีค่าความหน่วงแตกต่างกันได้ การเข้ารหัสและถอดรหัสข้อมูล: รีจิสเตอร์เลื่อนสามารถนำมาใช้ในแอปพลิเคชันด้านการเข้ารหัสข้อมูลได้ โดยอาศัยการเชื่อมต่อแบบป้อนกลับ (Feedback) และการดำเนินการทางลอจิกที่เหมาะสม รีจิสเตอร์เลื่อนสามารถทำงานเป็นตัวสร้างคีย์หรือหน่วยเข้ารหัสได้ การหารความถี่และการนับ: รีจิสเตอร์เลื่อนแบบอนุกรมเข้าและอนุกรมออกถูกนำมาใช้ในแอปพลิเคชันสำหรับการหารความถี่และการนับ โดยการเชื่อมต่อเอาต์พุตของฟลิปฟลอปกลับไปยังอินพุต รีจิสเตอร์เลื่อนสามารถทำงานเป็นตัวนับไบนารี ซึ่งหารความถี่อินพุตลงครึ่งหนึ่งในแต่ละรอบสัญญาณนาฬิกา ตัวอย่างการคำนวณ สมมติว่าสถานะเริ่มต้นของฟลิปฟลอปทุกตัวถูกรีเซ็ตเป็น 0 เราจะป้อนชุดข้อมูลบิตอินพุตและสังเกตสัญญาณเอาต์พุตขณะที่ข้อมูลเลื่อนผ่านรีจิสเตอร์เลื่อน เพื่อให้ง่ายต่อการทำความเข้าใจ เราจะใช้สัญญาณนาฬิกาที่ทำงานเมื่อเกิดขอบขาขึ้น (Rising Edge) เพื่อกระตุ้นกระบวนการเลื่อนข้อมูล
ข้อมูลอินพุต: 1011
สัญญาณนาฬิกา: 1 1 1 1
วิธีการแก้ปัญหา ในตอนเริ่มต้น ฟลิปฟลอปทุกตัวอยู่ในสถานะรีเซ็ต (0) และข้อมูลอินพุตคือ 1011 เมื่อสัญญาณนาฬิกาเปลี่ยนจากระดับต่ำเป็นระดับสูง บิตแรกของข้อมูลอินพุต (1) จะถูกสุ่มตัวอย่างและจัดเก็บไว้ในฟลิปฟลอปตัวแรก ส่วนบิตที่เหลือจะเลื่อนไปทางขวา และเอาต์พุตจะแสดงสถานะของฟลิปฟลอปตัวสุดท้าย
Clock 1: Input: 1 0 1 1; Output: 0 0 0 0
Clock 2: Input: 1 0 1 1; Output: 1 0 0 0
Clock 3: Input: 1 0 1 1; Output: 1 1 0 0
Clock 4: Input: 1 0 1 1; Output: 1 1 1 0
หลังจากผ่านไป 4 รอบสัญญาณนาฬิกา ข้อมูลอินพุตจะถูกเลื่อนผ่านรีจิสเตอร์เลื่อน และได้ข้อมูลเอาต์พุตสุดท้ายเป็น 1110
สิ่งสำคัญที่ควรทราบคือ สัญญาณนาฬิกาทำหน้าที่ซิงโครไนซ์กระบวนการเลื่อนข้อมูล เพื่อให้มั่นใจว่าแต่ละบิตจะถูกส่งต่อไปยังฟลิปฟลอปตัวถัดไปที่ขอบขาขึ้นของสัญญาณนาฬิกา เอาต์พุตของรีจิสเตอร์เลื่อนจะแสดงค่าบิตสุดท้ายที่ถูกเลื่อนออกจากรีจิสเตอร์
ตัวอย่างข้างต้นแสดงให้เห็นถึงการทำงานของรีจิสเตอร์เลื่อน SISO ขนาด 4 บิต ซึ่งข้อมูลอินพุตจะถูกเลื่อนผ่านฟลิปฟลอปแต่ละตัวตามลำดับ และเอาต์พุตจะแสดงสถานะของฟลิปฟลอปตัวสุดท้าย
รีจิสเตอร์เลื่อนแบบอนุกรมเข้า–อนุกรมออก (SISO) เป็นอุปกรณ์อเนกประสงค์ในวงการอิเล็กทรอนิกส์ดิจิทัล โดยนำเสนอวิธีการที่เรียบง่ายแต่มีประสิทธิภาพสำหรับการเลื่อนและจัดเก็บข้อมูลในรูปแบบอนุกรม การประยุกต์ใช้งานครอบคลุมหลายด้าน ได้แก่ การจัดเก็บข้อมูล การประมวลผลสัญญาณ การเข้ารหัส และการหารความถี่ การทำความเข้าใจฟังก์ชันและหลักการทำงานของรีจิสเตอร์เลื่อน SISO จึงเป็นพื้นฐานสำคัญสำหรับการออกแบบและพัฒนาระบบดิจิทัลที่ต้องอาศัยการจัดการและควบคุมข้อมูลแบบอนุกรม
ข้อดี ความเรียบง่าย: รีจิสเตอร์เลื่อน SISO สามารถนำไปใช้งานและทำความเข้าใจได้ง่าย เนื่องจากมีอินพุตเพียงหนึ่งช่องและเอาต์พุตเพียงหนึ่งช่อง ทำให้การออกแบบและสร้างวงจรไม่ซับซ้อน จึงมีการใช้งานอย่างแพร่หลายในแอปพลิเคชันต่าง ๆ ประหยัดพื้นที่: SISO สามารถจัดเก็บข้อมูลที่จำเป็นได้โดยใช้หน่วยเก็บข้อมูลเพียงไม่กี่ส่วนประกอบ เมื่อเทียบกับรีจิสเตอร์เลื่อนแบบขนานที่อาจต้องใช้อุปกรณ์จัดเก็บข้อมูลจำนวนมากกว่า ดังนั้น SISO จึงเป็นตัวเลือกที่เหมาะสมสำหรับแอปพลิเคชันที่มีข้อจำกัดด้านพื้นที่ ประหยัดต้นทุน: เนื่องจากโครงสร้างของวงจรไม่ซับซ้อนและใช้ส่วนประกอบในการจัดเก็บข้อมูลไม่มาก รีจิสเตอร์เลื่อน SISO จึงอาจช่วยลดต้นทุนได้เมื่อเทียบกับการใช้รีจิสเตอร์เลื่อนแบบขนานหรือระบบที่มีความซับซ้อนมากกว่า ทำให้เป็นตัวเลือกที่เหมาะสมสำหรับการจัดเก็บข้อมูลในบางแอปพลิเคชัน การประมวลผลแบบซีเควนเชียล: รีจิสเตอร์ SISO ประมวลผลข้อมูลตามลำดับในรูปแบบอนุกรม ซึ่งมีประโยชน์เมื่อข้อมูลจำเป็นต้องได้รับการประมวลผลตามลำดับหรือขั้นตอนที่กำหนดไว้ ความเข้ากันได้: ระบบสื่อสารแบบอนุกรมส่วนใหญ่นิยมใช้รีจิสเตอร์เลื่อน SISO และสามารถนำเทคโนโลยีนี้ไปปรับใช้กับโปรโตคอลและมาตรฐานการสื่อสารที่หลากหลายได้อย่างง่ายดาย ข้อเสีย อัตราการส่งข้อมูลต่ำกว่า: เนื่องจากประมวลผลข้อมูลในรูปแบบอนุกรม รีจิสเตอร์เลื่อน SISO จึงอาจมีอัตราการส่งข้อมูลต่ำกว่ารีจิสเตอร์แบบขนานที่สามารถส่งข้อมูลหลายบิตได้พร้อมกัน ซึ่งถือเป็นข้อเสียโดยเฉพาะในกรณีที่ต้องการประมวลผลข้อมูลด้วยความเร็วสูง ความสามารถในการประมวลผลแบบขนานมีจำกัด: รีจิสเตอร์เลื่อน SISO ประมวลผลข้อมูลทีละบิต จึงมีข้อจำกัดด้านความสามารถในการประมวลผลแบบขนาน และไม่เหมาะสำหรับแอปพลิเคชันที่ต้องอาศัยการประมวลผลแบบขนานเป็นหลัก ความซับซ้อนเมื่อต้องดำเนินการหลายรูปแบบ: ในกรณีที่แอปพลิเคชันต้องการดำเนินการทั้งทางลอจิกแบบซีเควนเชียลและแบบขนานพร้อมกันกับอินพุตหลายบิต การใช้ SISO อาจไม่เหมาะสม เนื่องจากจำเป็นต้องใช้รีจิสเตอร์ SISO หลายตัวแทนการใช้เพียงตัวเดียว ส่งผลให้วงจรมีความซับซ้อนเพิ่มขึ้นและมีประสิทธิภาพต่ำกว่าการใช้รีจิสเตอร์ PISO ความยากในการซิงโครไนซ์ข้อมูล: การซิงโครไนซ์ระหว่างอินพุตและเอาต์พุตอาจทำได้ยาก เนื่องจากรีจิสเตอร์เลื่อน SISO มีลักษณะการทำงานแบบอนุกรม โดยเฉพาะในระบบที่การซิงโครไนซ์ข้อมูลมีความสำคัญ ความหน่วงในการแพร่กระจายสูง: เมื่อใช้รีจิสเตอร์ SISO อาจพบความล่าช้าในการประมวลผลที่สูงขึ้นหากพยายามส่งข้อมูลผ่านวงจรเร็วเกินไป เนื่องจากวงจรไม่สามารถดำเนินการบางอย่างได้เช่นเดียวกับวงจรแอนะล็อก