เรียนรู้วิธีที่คอมพิวเตอร์แปลงรหัสไบนารีดิบไปเป็นตำแหน่งทางกายภาพที่เฉพาะเจาะจงผ่านการถอดรหัสหน่วยความจำ
วงจรดิจิทัลเป็นวงจรประเภทหนึ่งที่ประมวลผลสัญญาณที่มีสองสถานะเท่านั้น คือ ศูนย์หรือหนึ่ง ทรานซิสเตอร์ในวงจรถูกใช้เพื่อดำเนินการทางตรรกะแบบบูลีนต่างๆ
ในอิเล็กทรอนิกส์ดิจิทัล การถอดรหัสหน่วยความจำเกิดขึ้นเมื่อต้องการเข้าถึงหน่วยความจำในอุปกรณ์ดิจิทัล ในระหว่างกระบวนการนี้ จะมีการสร้างที่อยู่ไบนารีเพื่อระบุตำแหน่งหน่วยความจำที่ต้องการภายในระบบ ผลลัพธ์ที่ได้คือ หน่วยความจำจะถูกสร้างขึ้น ซึ่งด้วยความช่วยเหลือของที่อยู่หน่วยความจำนั้น สามารถดึงข้อมูลที่ร้องขอได้ กระบวนการนี้เกี่ยวข้องกับหลายขั้นตอนที่ต้องปฏิบัติตามเพื่อระบุตำแหน่งหน่วยความจำที่ต้องการได้อย่างแม่นยำ
ในบทความนี้ เราจะกล่าวถึงโครงสร้างภายในของชิปหน่วยความจำ กระบวนการถอดรหัส และส่วนประกอบต่างๆ ที่เกี่ยวข้องกับการถอดรหัสหน่วยความจำ
ภายในแล้ว หน่วยความจำแบบเข้าถึงโดยสุ่ม (RAM) ประกอบด้วยเซลล์หน่วยความจำแบบไบนารีและกลไกการถอดรหัสที่เกี่ยวข้องสำหรับการเลือกคำเดียว โดยมี m คำ และ n บิตต่อคำ ภายในหน่วยความจำ หน่วยพื้นฐานคือเซลล์หน่วยความจำแบบไบนารี
ในเซลล์หน่วยความจำ สามารถจัดเก็บข้อมูลได้หนึ่งบิตอย่างง่ายดาย ชิปหน่วยความจำประกอบด้วยเซลล์หลายเซลล์ที่จัดเรียงเป็นเมทริกซ์
คำหน่วยความจำถูกสร้างขึ้นโดยแต่ละแถวของเซลล์ และแต่ละแถวของเซลล์เชื่อมต่อกับสายทั่วไป หรือที่เรียกว่าสายคำ สายคำถูกควบคุมโดยตัวถอดรหัสที่อยู่ ขึ้นอยู่กับที่อยู่ที่มีอยู่ในบัสที่อยู่ สายคำจะถูกเปิดใช้งานในเวลาใดเวลาหนึ่ง มีสายสองเส้นวิ่งระหว่างเซลล์ในแต่ละคอลัมน์ สายเหล่านี้เรียกว่าสายบิต วงจรตรวจจับ/เขียนเชื่อมต่อสายบิตเหล่านี้กับสายข้อมูลขาเข้าและขาออก วงจรตรวจจับ/บันทึกจะตรวจจับหรืออ่านข้อมูลที่อยู่ในเซลล์ที่กำหนดโดยสายแม่เหล็กและส่งไปยังสายข้อมูลขาออกในระหว่างการอ่าน วงจรตรวจจับ/บันทึกจะบันทึกข้อมูลในระหว่างการเขียน
เพื่อทำความเข้าใจโครงสร้างภายในของชิปหน่วยความจำ คุณสามารถดูแผนภาพด้านล่างได้:

การถอดรหัสหน่วยความจำเป็นกระบวนการหลายขั้นตอนซึ่งใช้ที่อยู่หลายแห่งเพื่อระบุตำแหน่งหน่วยความจำที่เฉพาะเจาะจง การถอดรหัสหน่วยความจำเกิดขึ้นเมื่อต้องการเข้าถึงหน่วยความจำที่จัดเก็บอยู่ในอุปกรณ์อิเล็กทรอนิกส์ดิจิทัล ในระหว่างกระบวนการต่อไปนี้...
ตัวถอดรหัสหน่วยความจำมีความจำเป็นในการเลือกที่อยู่ข้อมูลเข้าที่ระบุจากหน่วยความจำภายในหน่วยความจำ โดยที่เซลล์หน่วยความจำมีบทบาทสำคัญในกระบวนการนี้
เซลล์หน่วยความจำ:เซลล์หน่วยความจำเป็นวงจรไฟฟ้าชนิดหนึ่งที่ประกอบด้วยทรานซิสเตอร์สี่ถึงหกตัว การเลือกอินพุตจะช่วยอำนวยความสะดวกในการดำเนินการอ่าน/เขียน ในกระบวนการนี้ โดยการสร้างเส้นทางจากแลตช์ไปยังเอาต์พุต ทรานซิสเตอร์ A1 ที่อินพุตอ่าน/เขียนจะทำการอ่านข้อมูล ในทางกลับกัน โดยการสร้างเส้นทางจากอินพุตไปยังแลตช์ ทรานซิสเตอร์ A0 ที่อินพุตอ่าน/เขียนสามารถทำการเขียนข้อมูลได้
เกี่ยวกับโครงสร้างของเซลล์หน่วยความจำ โดยทั่วไปแล้วจะจัดเก็บสัญญาณไบนารีในหน่วยต่างๆ ที่เรียกว่าบิต ในตอนแรก 1 บิตเท่ากับ 8 บิต และ 1 เวิร์ดมีค่าเท่ากับ 2 บิต สายข้อมูลขาเข้าและขาออกสื่อสารกันในหน่วยความจำผ่านการดำเนินการอ่าน/เขียน ในตอนแรก สิ่งนี้ช่วยกำหนดการส่งข้อมูล ในหน่วยความจำ แต่ละเวิร์ดจะมีหมายเลขที่เรียกว่าแอดเดรส แอดเดรสเหล่านี้มีค่าตั้งแต่ 0 ถึง 2k-1 โดยที่ k คือหมายเลขลำดับของสายแอดเดรส
โดยทั่วไป RAM ขนาดเล็กประกอบด้วยคำสี่คำ แต่ละคำมีสี่บิต และเซลล์ไบนารีทั้งหมด 16 เซลล์ เซลล์ไบนารี พร้อมด้วยอินพุตสามตัวและเอาต์พุตหนึ่งตัว รวมกันเป็นบล็อกเซลล์ขนาดเล็ก (BC) ในที่นี้ ผู้ใช้ต้องการสายแอดเดรสสองเส้นสำหรับคำหน่วยความจำทั้งสี่คำ ในการเลือกคำใดคำหนึ่งจากสี่คำนั้น อินพุตแอดเดรสจะต้องผ่านตัวถอดรหัส 2:4 ซึ่งสามารถเรียกใช้งานได้ผ่านอินพุตทริกเกอร์หน่วยความจำ
หากค่าหน่วยความจำที่เปิดใช้งานเป็น 0 ค่าเอาต์พุตทั้งหมดในตัวถอดรหัสจะถูกตั้งค่าเป็น 0 และจะไม่มีการเลือกเอาต์พุตใด ๆ และหากค่าหน่วยความจำที่เลือกเป็น 1 คำใดคำหนึ่งจากสี่คำจะถูกเลือก
กระบวนการอ่าน/เขียน:ในขั้นตอนนี้ หลังจากเลือกคำแล้ว ข้อมูลอินพุตจะถูกประมวลผลเพื่ออ่าน/เขียน ในระหว่างกระบวนการอ่าน บิตสี่บิตของคำที่เลือกจะผ่านเกต OR ไปยังเอาต์พุต
ในทางกลับกัน ในขั้นตอนการเขียนข้อมูล ข้อมูลที่มีอยู่ในบรรทัดอินพุตจะถูกถ่ายโอนไปยังเซลล์ไบนารีที่เลือกไว้สี่เซลล์ทีละเซลล์ ในระหว่างกระบวนการนี้ เซลล์ที่ไม่ถูกเลือกจะกลายเป็นเซลล์ดัมมี่ และค่าของเซลล์เหล่านั้นจะยังคงไม่เปลี่ยนแปลง
ในหน่วยความจำแบบเข้าถึงโดยสุ่ม (RAM) มีพื้นที่ว่างที่สามารถเก็บคำหน่วยความจำได้หลายพันคำ แต่ละคำหน่วยความจำมีค่าตั้งแต่ 1 ถึง 64 บิต ในที่นี้ หน่วยความจำที่มี 2000 คำ จะใช้สายแอดเดรสหน่วยความจำ k สาย โดยแต่ละคำหน่วยความจำมีค่า n บิต ตัวถอดรหัสประกอบด้วยแอดเดรสหน่วยความจำ 2000 ตัว โดยแต่ละแอดเดรสที่ถอดรหัสแล้วจะส่งออกคำหน่วยความจำ n บิตที่ไม่ซ้ำกัน เพื่อให้สามารถอ่านหรือเขียนได้
ในที่นี้ สายแอดเดรสแทนข้อมูลขาเข้า เรียกว่า รหัส และเอาต์พุตแทนสัญญาณขาเข้า ซึ่งอาจเป็นค่าสูงหรือต่ำ ในคอมพิวเตอร์ส่วนบุคคลและไมโครโปรเซสเซอร์ จะมีชิปหน่วยความจำอยู่ และแต่ละชิปจะมีอินพุตที่เลือกได้ ในการเลือกนั้น จำเป็นต้องระบุชิปหน่วยความจำนั้น
เมื่อเลือกชิปเพียงตัวเดียวและใช้งานพร้อมกัน ผู้ใช้สามารถเลือกอุปกรณ์เข้ารหัสที่อยู่หน่วยความจำที่ถูกต้องสำหรับตำแหน่งที่อยู่หน่วยความจำที่กำหนดได้
ตัวอย่างเช่น ลองพิจารณาไมโครโปรเซสเซอร์ 8088 ซึ่งสร้างแอดเดรส 20 บิตสำหรับพื้นที่แอดเดรสหน่วยความจำ 1MB เป็นเอาต์พุต ในทางกลับกัน EPROM BIOS 2716 มีหน่วยความจำเพียง 2KB พร้อมกับขาแอดเดรส 11 ขา ในกรณีนี้ EPROM สามารถวางไว้ในส่วน 2KB ใดก็ได้ของพื้นที่แอดเดรส 1MB เนื่องจากตัวถอดรหัสในที่นี้สามารถถอดรหัสขาแอดเดรสเพิ่มเติมอีก 9 ขาได้
สามารถทำความเข้าใจเรื่องนี้ได้ดียิ่งขึ้นโดยดูจากแผนภาพต่อไปนี้:

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

ตัวอย่างเช่น แทนที่จะใช้ตัวถอดรหัสขนาด 10 x 1024 ในวิธีการเลือกสำหรับหน่วยความจำขนาด 1K คำ เราอาจเลือกใช้ตัวถอดรหัสขนาด 5 x 32 สองตัวก็ได้ เราจะต้องใช้เกต AND จำนวน 1024 ตัว โดยแต่ละตัวมีอินพุตสิบตัวในตัวถอดรหัสตัวเดียว
ในกรณีที่มีตัวถอดรหัสสองตัว เราจะต้องใช้เกต AND จำนวน 64 ตัว โดยแต่ละตัวมีอินพุตห้าตัว บิตที่มีค่ามากที่สุดห้าบิตจะถูกกำหนดให้กับอินพุต X และบิตที่มีค่าน้อยที่สุดห้าบิตจะถูกกำหนดให้กับอินพุต Y แต่ละคำในอาร์เรย์หน่วยความจำจะถูกเลือกโดยผลลัพธ์ของการจับคู่ระหว่างสาย X และอินพุต Y
ด้วยเหตุนี้ จึงมีการเลือกคำเดียวในหน่วยความจำโดยการจับคู่ 1 ใน 32 แถว และ 1 ใน 32 คอลัมน์ รวมทั้งหมดประมาณ 1,024 คำ คำที่ต้องการจะพบได้ที่จุดตัดของแถวและคอลัมน์ที่กำหนด จากนั้นจึงอ่าน/เขียนบิตทั้งหมดของคำที่ต้องการ
การมัลติเพล็กซ์แอดเดรสช่วยให้ผู้ใช้ใช้พินน้อยลง ส่งผลให้ต้องการเพียงไม่กี่สายบนโปรเซสเซอร์ แทนที่จะมีสายแยกกันสำหรับแอดเดรสและข้อมูล แอดเดรสสามารถวางไว้บนสายข้อมูลได้ โดยข้อมูลจะถูกอ่านและจัดเก็บไว้ที่แอดเดรสที่อ่านได้ก่อนหน้านี้
โดยเฉพาะอย่างยิ่ง SRAM (Static Random Access Memory) มีทรานซิสเตอร์หกตัว เมื่อขนาดของทรานซิสเตอร์ลดลง จะสามารถสร้างเซลล์หน่วยความจำที่มีความหนาแน่นสูงขึ้นได้
DRAM หรือหน่วยความจำเข้าถึงแบบสุ่มไดนามิก ก็มีทรานซิสเตอร์เช่นกัน ทำให้มีความจุในการจัดเก็บข้อมูลมากกว่า SRAM การจัดเก็บข้อมูลโดยใช้ SRAM มีค่าใช้จ่ายสูงกว่าการจัดเก็บข้อมูลโดยใช้ DRAM นอกจากนี้ DRAM ยังประหยัดพลังงานมากกว่าด้วย
เนื่องจากขนาดบิตของคำใน DRAM คือหนึ่ง จึงต้องใช้ชิปมากขึ้น สาเหตุหลักมาจากการเพิ่มความจุ การถอดรหัสบิต DRAM ทั้งหมดทำในอาร์เรย์สองมิติ และหากมีข้อมูลหน่วยความจำในเซลล์มากขึ้น ก็จำเป็นต้องใช้อาร์เรย์มากขึ้น การมัลติเพล็กซ์แอดเดรสเป็นเทคนิคที่นักออกแบบใช้เพื่อลดจำนวนขาในวงจรรวม
ในที่นี้ ที่อยู่หน่วยความจำจะถูกแบ่งออกเป็นสองส่วนสำหรับกลุ่มเวลาที่แยกจากกันในอาร์เรย์สองมิติ โดยที่อยู่ของแถวจะแสดงก่อน ตามด้วยที่อยู่ของคอลัมน์ ขนาดโดยรวมถูกลดลงโดยเจตนาเนื่องจากใช้ชุดพินเดียวกันสำหรับทั้งสองด้านของที่อยู่หน่วยความจำ
ตัวอย่างเช่น:ในการมัลติเพล็กซ์ จำเป็นต้องใช้หน่วยความจำ 64K คำ อาร์เรย์สองมิติของเซลล์จะถูกจัดเรียงเป็น 256 แถวและ 256 คอลัมน์ เพื่อสร้างที่อยู่หน่วยความจำ ซึ่งให้หน่วยความจำทั้งหมด 64K คำ มีพัลส์ที่อยู่สองพัลส์ หนึ่งพัลส์ข้อมูลขาเข้า หนึ่งพัลส์ข้อมูลขาออก หนึ่งพัลส์ควบคุมการอ่าน/เขียนที่มีอินพุตที่อยู่ 8 บิต และอีกหนึ่งพัลส์ข้อมูลขาเข้า พัลส์ที่อยู่แถว (RAS) จะเปิดใช้งานรีจิสเตอร์แถวหน่วยความจำ 8 บิต พัลส์ที่อยู่คอลัมน์จะถูกตัดทอนเนื่องจาก CAS เปิดใช้งานรีจิสเตอร์คอลัมน์ 8 บิต สัญลักษณ์พัลส์จะมีแถบแนวนอนอยู่ด้านบน ซึ่งแสดงว่ารีจิสเตอร์ว่างเปล่าหรืออยู่ที่ระดับสัญญาณ 0

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