กลับไปหน้าบทความ

อ่าน 3 นาที

เครื่องบันทึกการเปลี่ยนแปลง

ชิฟต์รีจิสเตอร์ (Shift Register) เป็น วงจรดิจิทัลชนิดหนึ่งที่ใช้ฟลิปฟลอป แบบเรียงต่อกัน โดย เอาต์พุตของฟลิปฟลอปตัวหนึ่งจะเชื่อมต่อกับอินพุตของฟลิปฟลอปตัวถัดไป...

เครื่องบันทึกการเปลี่ยนแปลง

ชิฟต์รีจิสเตอร์ (Shift Register) เป็น วงจรดิจิทัลชนิดหนึ่งที่ใช้ฟลิปฟลอป แบบเรียงต่อกัน โดย เอาต์พุตของฟลิปฟลอปตัวหนึ่งจะเชื่อมต่อกับอินพุตของฟลิปฟลอปตัวถัดไป วงจรเหล่านี้ใช้สัญญาณนาฬิกา เดียวกัน ซึ่งทำให้ข้อมูลที่จัดเก็บในระบบเลื่อนจากตำแหน่งหนึ่งไปยังอีกตำแหน่งหนึ่ง โดยการเชื่อมต่อฟลิปฟลอปตัวสุดท้ายกลับไปยังตัวแรก ข้อมูลสามารถวนซ้ำภายในชิฟต์รีจิสเตอร์ได้เป็นเวลานาน และในการกำหนดค่านี้ ชิฟต์รีจิสเตอร์ถูกนำมาใช้เป็นหน่วยความจำคอมพิวเตอร์แทนที่ ระบบ หน่วยความจำแบบดีเลย์ไลน์ในช่วงปลายทศวรรษ 1960 และต้นทศวรรษ 1970

ในกรณีส่วนใหญ่ จะใช้รีจิสเตอร์เลื่อนแบบขนานหลายตัวเพื่อสร้างหน่วยความจำขนาดใหญ่ที่เรียกว่า " อาร์เรย์บิต " ข้อมูลจะถูกจัดเก็บลงในอาร์เรย์และอ่านกลับออกมาแบบขนาน ซึ่งมักจะเป็นคำของคอมพิวเตอร์ในขณะที่แต่ละบิตจะถูกจัดเก็บแบบอนุกรมในรีจิสเตอร์เลื่อน การออกแบบอาร์เรย์บิตนั้นมีข้อแลกเปลี่ยนโดยธรรมชาติ การใส่ฟลิปฟลอปหลายตัวในแถวเดียวกันทำให้รีจิสเตอร์เลื่อนตัวเดียวสามารถจัดเก็บบิตได้มากขึ้น แต่ต้องใช้รอบสัญญาณนาฬิกามากขึ้นในการส่งข้อมูลผ่านรีจิสเตอร์เลื่อนทั้งหมดก่อนที่จะสามารถอ่านข้อมูลกลับออกมาได้อีกครั้ง

รีจิสเตอร์เลื่อน (Shift register) สามารถมีได้ทั้ง อินพุต และ เอาต์พุต แบบขนาน และแบบ อนุกรมโดยทั่วไปจะกำหนดค่าเป็น"อนุกรมเข้า ขนานออก" (SIPO)หรือ"ขนานเข้า อนุกรมออก" (PISO)นอกจากนี้ยังมีประเภทที่มีทั้งอินพุตแบบอนุกรมและแบบขนาน และประเภทที่มีทั้งเอาต์พุตแบบอนุกรมและแบบขนาน ยังมีรีจิสเตอร์เลื่อนแบบ "สองทิศทาง" ซึ่งอนุญาตให้เลื่อนได้ทั้งสองทิศทาง: ซ้าย  ขวา หรือ ขวา  ซ้าย อินพุตแบบอนุกรมและเอาต์พุตแบบอนุกรมของรีจิสเตอร์เลื่อนจะเชื่อมต่อกันเพื่อสร้างรีจิสเตอร์เลื่อนแบบวงกลม รี จิส เตอร์ PIPO (ขนานเข้า ขนานออก) เป็นเพียงรีจิสเตอร์ชนิด D และไม่ใช่รีจิสเตอร์เลื่อน แต่มีความเร็วสูงมาก – ให้เอาต์พุตภายในพัลส์นาฬิกาเดียว รีจิสเตอร์เลื่อนแบบ "อเนกประสงค์" ให้ทั้งอินพุตและเอาต์พุตแบบอนุกรมสองทิศทาง รวมถึงอินพุตและเอาต์พุตแบบขนานด้วย

อินพุตแบบอนุกรม เอาต์พุตแบบอนุกรม (SISO)

การอ่านค่าที่ทำลายล้าง

ตัวอย่างการใช้งานชิฟต์รีจิสเตอร์ 4 บิต ข้อมูลป้อนเข้าคือ 10110000
เวลา
เอาต์พุต 1
เอาต์พุต 2
เอาต์พุต 3
เอาต์พุต 4
00000
11000
20100
31010
41101
50110
60011
70001
80000

นี่คือรีจิสเตอร์เลื่อนแบบง่ายที่สุด ข้อมูลจะถูกป้อนเข้ามาที่ "ข้อมูลเข้า" และจะถูกเลื่อนไปทางขวาหนึ่งขั้นทุกครั้งที่ "ข้อมูลเลื่อนขึ้น" ถูกยกขึ้นสูงในแต่ละครั้งที่ข้อมูลเลื่อนขึ้น บิตทางซ้ายสุด (เช่น "ข้อมูลเข้า") จะถูกเลื่อนเข้าไปใน เอาต์พุตของ ฟลิปฟลอป ตัวแรก บิตทางขวาสุด (เช่น "ข้อมูลออก") จะถูกเลื่อนออกไปและหายไป

ข้อมูลจะถูกจัดเก็บหลังจากแต่ละครั้งบนเอาต์พุต "Q" ดังนั้นจึงมี "ช่อง" จัดเก็บข้อมูลสี่ช่องในโครงสร้างนี้ จึงเป็นรีจิสเตอร์ 4 บิต เพื่อให้เห็นภาพรูปแบบการเลื่อน ลองนึกภาพว่ารีจิสเตอร์เก็บค่า 0000 (ดังนั้นช่องจัดเก็บข้อมูลทั้งหมดจึงว่างเปล่า) เมื่อ "ข้อมูลขาเข้า" แสดงค่า 1,0,1,1,0,0,0,0 (ตามลำดับนี้ โดยมีพัลส์ที่ "การเลื่อนข้อมูล" แต่ละครั้ง ซึ่งเรียกว่าการกำหนดเวลาหรือการกระพริบ) ไปยังรีจิสเตอร์ นี่คือผลลัพธ์ คอลัมน์ด้านขวาจะสอดคล้องกับขาเอาต์พุตของฟลิปฟลอปตัวขวาสุด และอื่นๆ

ดังนั้นเอาต์พุตแบบอนุกรมของค่าทั้งหมดคือ 00010110 จะเห็นได้ว่าหากมีการป้อนข้อมูลต่อไป ค่าที่ได้จะเป็นค่าเดียวกับที่ป้อนเข้าไป (10110000) แต่จะมีการเลื่อนไปสี่รอบ "การเลื่อนข้อมูล" การจัดเรียงนี้เทียบเท่ากับคิวในระดับฮาร์ดแวร์นอกจากนี้ ในเวลาใดก็ตาม สามารถตั้งค่ารีจิสเตอร์ทั้งหมดเป็นศูนย์ได้โดยการยกขา Reset (R) ขึ้นสูง

การจัดเรียงแบบนี้จะทำการอ่านค่าแบบทำลายล้างกล่าวคือข้อมูลแต่ละค่าจะหายไปเมื่อถูกเลื่อนออกจากบิตขวาสุด 

อินพุตแบบอนุกรม เอาต์พุตแบบขนาน (SIPO)

การกำหนดค่านี้ช่วยให้สามารถแปลงจากรูปแบบอนุกรมเป็นรูปแบบขนานได้ การป้อนข้อมูลเป็นแบบอนุกรม ดังที่อธิบายไว้ในส่วน SISO ด้านบน เมื่อข้อมูลถูกป้อนเข้ามาแล้ว ข้อมูลนั้นสามารถอ่านออกที่เอาต์พุตแต่ละตัวพร้อมกัน หรือสามารถส่งออกไปทีละส่วนได้

ในการกำหนดค่านี้ ฟลิปฟลอปแต่ละตัวจะ ทำงาน เมื่อได้รับสัญญาณขอบ (edge ​​triggered ) ฟลิปฟลอปทั้งหมดทำงานที่ความถี่สัญญาณนาฬิกาที่กำหนด บิตอินพุตแต่ละบิตจะส่งข้อมูลไปยังเอาต์พุตที่ N หลังจาก N รอบสัญญาณนาฬิกา ทำให้เกิดเอาต์พุตแบบขนาน

ในกรณีที่เอาต์พุตแบบขนานไม่ควรเปลี่ยนแปลงระหว่างกระบวนการโหลดแบบอนุกรม ควรใช้เอาต์พุตแบบล็อคหรือแบบบัฟเฟอร์ในรีจิสเตอร์เลื่อนแบบล็อค (เช่น74595 ) ข้อมูลอนุกรมจะถูกโหลดเข้าไปในรีจิสเตอร์บัฟเฟอร์ภายในก่อน จากนั้นเมื่อได้รับสัญญาณโหลด สถานะของรีจิสเตอร์บัฟเฟอร์จะถูกคัดลอกไปยังชุดของรีจิสเตอร์เอาต์พุต โดยทั่วไป การใช้งานจริงของรีจิสเตอร์เลื่อนแบบอนุกรมเข้า/ขนานออก คือการแปลงข้อมูลจากรูปแบบอนุกรมบนสายไฟเส้นเดียวไปเป็นรูปแบบขนานบนสายไฟหลายเส้น

ระบบขนานเข้า ระบบอนุกรมออก (PISO)

การกำหนดค่านี้มีการรับข้อมูลเข้าทางสาย D1 ถึง D4 ในรูปแบบขนาน โดย D1 เป็นบิตที่มีนัยสำคัญที่สุด ในการเขียนข้อมูลลงในรีจิสเตอร์ ต้องดึงสายควบคุมการเขียน/เลื่อน (Write/Shift control line) ให้เป็น LOW ในการเลื่อนข้อมูล ต้องดึงสายควบคุม W/S ให้เป็น HIGH และรีจิสเตอร์จะได้รับสัญญาณนาฬิกา การจัดเรียงในขณะนี้ทำงานเป็นรีจิสเตอร์เลื่อนแบบ PISO โดยมี D1 เป็นข้อมูลเข้า อย่างไรก็ตาม ตราบใดที่จำนวนรอบสัญญาณนาฬิกาไม่เกินความยาวของสตริงข้อมูล ข้อมูลออก Q จะเป็นข้อมูลที่อ่านออกมาแบบขนานตามลำดับ

รีจิสเตอร์เลื่อน PISO 4 บิต

ภาพเคลื่อนไหวด้านล่างแสดงลำดับการเขียน/เลื่อน รวมถึงสถานะภายในของรีจิสเตอร์เลื่อน

การใช้งาน

ชิฟต์รีจิสเตอร์ Toshiba TC4015BP แบบ dual SIPO

การแปลงแบบอนุกรมและแบบขนาน

หนึ่งในประโยชน์ที่พบบ่อยที่สุดของรีจิสเตอร์เลื่อนคือการแปลงระหว่างอินเทอร์เฟซแบบอนุกรมและแบบขนาน

ล่าช้า

รีจิสเตอร์เลื่อนแบบอนุกรมเข้าอนุกรมออกสามารถใช้เป็นวงจรหน่วงเวลาแบบง่ายได้[ 1 ]

ซ้อนกัน

นอกจากนี้ ยังสามารถเชื่อมต่อรีจิสเตอร์เลื่อนแบบสองทิศทางหลายตัวแบบขนานกัน เพื่อสร้างการใช้งานสแต็ก ในฮาร์ดแวร์ ได้ อีกด้วย

พิน I/O เพิ่มเติม

รีจิสเตอร์เลื่อน (Shift register) มักถูกต่อเข้ากับไมโครคอนโทรลเลอร์เมื่อต้องการพินอินพุต/เอาต์พุตอเนกประสงค์ มากกว่าที่มีอยู่ บางครั้งอาจใช้ผ่านอินเทอร์เฟซอุปกรณ์ต่อพ่วง แบบอนุกรม (Serial Peripheral Interface) ในการต่อแบบเดซี่เชนซึ่งช่วยให้สามารถเข้าถึงอุปกรณ์ไบนารีจำนวนมากได้โดยใช้เพียงสองถึงสี่พิน แม้ว่าจะช้ากว่าการรับส่งข้อมูลแบบขนานก็ตาม

เพื่อให้ได้เอาต์พุตที่มากขึ้น จึงใช้ชิฟต์รีจิสเตอร์ SIPO เอาต์พุตแบบขนานของชิฟต์รีจิสเตอร์และสถานะที่ต้องการสำหรับอุปกรณ์เหล่านั้นทั้งหมดสามารถส่งออกจากไมโครคอนโทรลเลอร์ได้โดยใช้การเชื่อมต่อแบบอนุกรมเพียงเส้นเดียว

สำหรับการรับอินพุตเพิ่มเติม จะใช้รีจิสเตอร์เลื่อน PISO โดยอินพุตไบนารีแต่ละตัว (เช่นปุ่มกดหรือวงจรที่ซับซ้อนกว่า) จะเชื่อมต่อกับอินพุตแบบขนานของรีจิสเตอร์เลื่อน จากนั้นข้อมูลจะถูกส่งกลับไปยังไมโครคอนโทรลเลอร์แบบอนุกรม

ตัวขยายพัลส์

รีจิสเตอร์เลื่อน (Shift register) ยังสามารถใช้เป็นตัวขยายพัลส์ได้อีกด้วย เมื่อเปรียบเทียบกับ มัลติไว เบรเตอร์แบบโมโนสเตเบิล (Monostable multivibrator)จังหวะเวลาจะไม่ขึ้นอยู่กับค่าของส่วนประกอบ แต่ต้องใช้สัญญาณนาฬิกาภายนอก และความแม่นยำของจังหวะเวลาจะถูกจำกัดด้วยความละเอียดของสัญญาณนาฬิกานั้น ตัวอย่างของตัวขยายพัลส์ดังกล่าวคือRonja Twisterซึ่งใช้รีจิสเตอร์เลื่อน 74164 จำนวน 5 ตัว สร้างแกนหลักของตรรกะจังหวะเวลา (ดูแผนผังวงจร )

การประมวลผลข้อมูล

ในคอมพิวเตอร์ยุคแรกๆ มีการใช้รีจิสเตอร์เลื่อน (shift register) ในการประมวลผลข้อมูล โดยตัวเลขสองตัวที่จะบวกกันจะถูกเก็บไว้ในรีจิสเตอร์เลื่อนสองตัว แล้วส่งสัญญาณนาฬิกาออกไปยังหน่วยคำนวณและตรรกะ (ALU)จากนั้นผลลัพธ์จะถูกส่งกลับไปยังอินพุตของรีจิสเตอร์เลื่อนตัวใดตัวหนึ่ง (ตัวสะสม) ซึ่งมีขนาดมากกว่าหนึ่งบิต เนื่องจากผลการบวกเลขฐานสองจะมีขนาดเท่ากันหรือยาวกว่าหนึ่งบิตเท่านั้น

การดำเนินการเลื่อนบิต

ภาษาคอมพิวเตอร์หลายภาษามีการดำเนินการแบบบิตไวส์เพื่อ "เลื่อนไปทางขวา" และ "เลื่อนไปทางซ้าย" ข้อมูลในรีจิสเตอร์ ซึ่งมีผลเท่ากับการหารด้วยสองหรือการคูณด้วยสองสำหรับแต่ละตำแหน่งที่เลื่อนไป

หน่วยความจำรีจิสเตอร์แบบเลื่อน

รีจิสเตอร์เลื่อนแบบอนุกรมเข้าอนุกรมออกขนาดใหญ่มาก(ขนาดหลายพันบิต) ถูกนำมาใช้ในลักษณะที่คล้ายกับหน่วยความจำแบบดีเลย์ไลน์ รุ่นก่อนหน้า ในอุปกรณ์บางชนิดที่สร้างขึ้นในช่วงต้นทศวรรษ 1970 รีจิสเตอร์เลื่อนไม่จำเป็นต้องใช้พินจำนวนมากหรือตรรกะการถอดรหัสที่อยู่ ดังนั้นจึงมีราคาถูกกว่าหน่วยความจำแบบเข้าถึงแบบสุ่ม มาก ในสมัยนั้น[ 2 ]หน่วยความจำรีจิสเตอร์เลื่อนดังกล่าวบางครั้งเรียกว่า หน่วยความ จำหมุนเวียน

ตัวอย่างเช่นDatapoint 3300 เก็บข้อมูลการแสดงผลเทอร์ มินัลที่มี 25  แถว72  คอลัมน์ของอักขระตัวพิมพ์ใหญ่ 6 บิต โดยใช้รีจิสเตอร์เลื่อน 200 บิต จำนวน 54 ตัว (จัดเรียงเป็น 6 แทร็ก 9 แพ็ค) ซึ่งให้พื้นที่จัดเก็บอักขระได้ 1800 ตัว การออกแบบรีจิสเตอร์เลื่อนหมายความว่าการเลื่อนหน้าจอเทอร์มินัลสามารถทำได้โดยการหยุดเอาต์พุตการแสดงผลชั่วคราวเพื่อข้ามอักขระไปหนึ่งบรรทัด[ 3 ]มีการใช้การออกแบบที่คล้ายกันนี้สำหรับเทอร์มินัลของApple I [ 4 ]

ประวัติศาสตร์

หนึ่งในตัวอย่างแรกๆ ของรีจิสเตอร์เลื่อนที่เป็นที่รู้จักคือในเครื่องถอดรหัส Mark 2 Colossus ที่สร้างขึ้นในปี 1944 เป็นอุปกรณ์หกขั้นตอนที่สร้างจาก หลอดสุญญากาศและไทราตรอน [ 5 ] รีจิสเตอร์เลื่อนยังถูกใช้ในเครื่อง IASซึ่งสร้างโดยJohn von Neumannและคนอื่นๆ ที่สถาบันเพื่อการศึกษาขั้นสูงในช่วงปลายทศวรรษ 1940 รีจิสเตอร์เลื่อนได้เข้ามาอยู่ในวงจรรวมในช่วงทศวรรษ 1960 ดังที่เห็นได้จากสิทธิบัตรยุคแรกๆ ของFrank Wanlass [ 6 ]และ Kent Smith [ 7 ]ที่ทำงานอยู่ที่General Instrument

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Shift_register&oldid=1362417249 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เครื่องบันทึกการเปลี่ยนแปลง

ชิฟต์รีจิสเตอร์ (Shift Register) เป็น วงจรดิจิทัลชนิดหนึ่งที่ใช้ฟลิปฟลอป แบบเรียงต่อกัน โดย เอาต์พุตของฟลิปฟลอปตัวหนึ่งจะเชื่อมต่อกับอินพุตของฟลิปฟลอปตัวถัดไป...

การอ่านค่าที่ทำลายล้าง

นี่คือรีจิสเตอร์เลื่อนแบบง่ายที่สุด ข้อมูลจะถูกป้อนเข้ามาที่ "ข้อมูลเข้า" และจะถูกเลื่อนไปทางขวาหนึ่งขั้นทุกครั้งที่ "ข้อมูลเลื่อนขึ้น" ถูกยกขึ้น สูง ในแต่ละครั้งที่ข้อมูลเลื่อนขึ้น บิตทางซ้ายสุด (เช่น "ข้อมูลเข้า") จะถูกเลื่อนเข้าไปใน เอาต์พุตของ ฟลิปฟลอป...

อินพุตแบบอนุกรม เอาต์พุตแบบขนาน (SIPO)

การกำหนดค่านี้ช่วยให้สามารถแปลงจากรูปแบบอนุกรมเป็นรูปแบบขนานได้ การป้อนข้อมูลเป็นแบบอนุกรม ดังที่อธิบายไว้ในส่วน SISO ด้านบน เมื่อข้อมูลถูกป้อนเข้ามาแล้ว ข้อมูลนั้นสามารถอ่านออกที่เอาต์พุตแต่ละตัวพร้อมกัน หรือสามารถส่งออกไปทีละส่วนได้

ระบบขนานเข้า ระบบอนุกรมออก (PISO)

การกำหนดค่านี้มีการรับข้อมูลเข้าทางสาย D1 ถึง D4 ในรูปแบบขนาน โดย D1 เป็นบิตที่มีนัยสำคัญที่สุด ในการเขียนข้อมูลลงในรีจิสเตอร์ ต้องดึงสายควบคุมการเขียน/เลื่อน (Write/Shift control line) ให้เป็น LOW ในการเลื่อนข้อมูล ต้องดึงสายควบคุม W/S ให้เป็น HIGH...