หน่วยความจำคอมพิวเตอร์

จากวิกิพีเดีย สารานุกรมเสรี
ข้ามไปที่การนำทาง ข้ามไปที่การค้นหา
โมดูลDDR4 SDRAMสมัยใหม่มักพบในคอมพิวเตอร์เดสก์ท็อป

ในการประมวลผล , หน่วยความจำเป็นอุปกรณ์หรือระบบที่ใช้ในการจัดเก็บข้อมูลสำหรับการใช้งานได้ทันทีในคอมพิวเตอร์หรือสาขาที่เกี่ยวข้องฮาร์ดแวร์คอมพิวเตอร์และดิจิตอล อิเล็กทรอนิกส์อุปกรณ์[1]คำว่าหน่วยความจำมักจะตรงกันกับระยะการเก็บรักษาหลักหรือหน่วยความจำหลักไวพจน์โบราณสำหรับหน่วยความจำเป็นร้านค้า [2]

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

หน่วยความจำที่ทันสมัยจะดำเนินการเป็นหน่วยความจำเซมิคอนดักเตอร์ , [3] [4]ที่ข้อมูลจะถูกเก็บไว้ภายในเซลล์หน่วยความจำที่สร้างขึ้นจากมอสทรานซิสเตอร์และส่วนประกอบอื่น ๆ ในวงจรรวม [5]มีสองชนิดหลักของหน่วยความจำสารกึ่งตัวนำที่มีความผันผวนและไม่ระเหยตัวอย่างของหน่วยความจำแบบไม่ลบเลือนมีหน่วยความจำแฟลชและรอม , พรหม , EPROMและEEPROMหน่วยความจำ ตัวอย่างของหน่วยความจำที่ระเหยได้คือหน่วยความจำเข้าถึงโดยสุ่มแบบไดนามิก(DRAM) ใช้สำหรับการจัดเก็บข้อมูลหลักและหน่วยความจำหลักแบบคงที่ (SRAM) ใช้สำหรับการแคช CPU

หน่วยความจำเซมิคอนดักเตอร์ส่วนใหญ่จัดอยู่ในเซลล์หน่วยความจำแต่ละเซลล์จัดเก็บหนึ่งบิต (0 หรือ 1) การจัดระเบียบหน่วยความจำแฟลชมีทั้งหนึ่งบิตต่อเซลล์หน่วยความจำและเซลล์หลายระดับที่สามารถจัดเก็บได้หลายบิตต่อเซลล์ เซลล์หน่วยความจำถูกจัดกลุ่มเป็นคำที่มีความยาวคำคงที่เช่น 1, 2, 4, 8, 16, 32, 64 หรือ 128 บิต แต่ละคำสามารถเข้าถึงได้โดยที่อยู่ไบนารีของNบิต ทำให้สามารถเก็บ 2 Nคำในหน่วยความจำได้

ประวัติ

รายละเอียดของด้านหลังของส่วนของENIACแสดงหลอดสูญญากาศ
8 GB microSDHCบัตรด้านบนของ 8 ไบต์ของหน่วยความจำแม่เหล็ก-core (1 หลักคือ 1 บิต )     

ในช่วงต้นทศวรรษ 1940 เทคโนโลยีหน่วยความจำมักอนุญาตให้มีความจุไม่กี่ไบต์ ครั้งแรกที่ตั้งโปรแกรมอิเล็กทรอนิกส์ดิจิตอลคอมพิวเตอร์ที่ENIACใช้พันของหลอดสุญญากาศสามารถดำเนินการคำนวณง่าย ๆ ที่เกี่ยวข้องกับ 20 ตัวเลขของตัวเลขทศนิยมสิบเก็บไว้ในหลอดสูญญากาศ

ความก้าวหน้าครั้งสำคัญครั้งต่อไปในหน่วยความจำคอมพิวเตอร์มาพร้อมกับหน่วยความจำแบบอะคูสติกดีเลย์ไลน์ซึ่งพัฒนาโดยJ. Presper Eckertในต้นทศวรรษ 1940 ผ่านการสร้างหลอดแก้วที่เต็มไปด้วยสารปรอทและต่อด้วยคริสตัลควอทซ์ที่ปลายแต่ละด้าน เส้นหน่วงเวลาสามารถเก็บข้อมูลเล็กๆ น้อยๆ ในรูปของคลื่นเสียงที่แพร่กระจายผ่านปรอท โดยผลึกควอทซ์ทำหน้าที่เป็นทรานสดิวเซอร์ในการอ่านและเขียนบิต . หน่วยความจำ Delay line ถูก จำกัด ไว้ที่ความจุไม่กี่พันบิต

ทางเลือกสองทางสำหรับสายการหน่วงเวลา คือหลอดวิลเลียมส์และหลอดซีเล็คตรอน กำเนิดในปี 2489 ทั้งคู่ใช้ลำแสงอิเล็กตรอนในหลอดแก้วเป็นวิธีการจัดเก็บ การใช้หลอดรังสีแคโทดเฟร็ดวิลเลียมส์คิดค้นหลอดวิลเลียมส์ซึ่งเป็นครั้งแรกที่หน่วยความจำคอมพิวเตอร์ random-accessหลอด Williams สามารถเก็บข้อมูลได้มากกว่าหลอด Selectron (Selectron ถูกจำกัดที่ 256 บิต ในขณะที่หลอด Williams สามารถเก็บข้อมูลได้หลายพัน) และราคาไม่แพง หลอดวิลเลียมส์ยังคงไวต่อสิ่งรบกวนสิ่งแวดล้อมอย่างน่าผิดหวัง

ความพยายามที่เริ่มขึ้นในปลายปี 1940 เพื่อค้นหาหน่วยความจำแบบไม่ลบเลือน หน่วยความจำแกนแม่เหล็กได้รับอนุญาตให้เรียกคืนหน่วยความจำหลังจากการสูญเสียพลังงาน ได้รับการพัฒนาโดย Frederick W. Viehe และAn Wangในช่วงปลายทศวรรษที่ 1940 และปรับปรุงโดยJay ForresterและJan A. Rajchmanในช่วงต้นทศวรรษ 1950 ก่อนที่จะทำการค้ากับคอมพิวเตอร์Whirlwindในปี 1953 [6]หน่วยความจำแกนแม่เหล็กคือ รูปแบบหน่วยความจำที่โดดเด่นจนกระทั่งมีการพัฒนาหน่วยความจำMOS เซมิคอนดักเตอร์ในทศวรรษที่ 1960 [7]

หน่วยความจำเซมิคอนดักเตอร์เริ่มขึ้นในช่วงต้นทศวรรษ 1960 ด้วยหน่วยความจำแบบไบโพลาร์ ซึ่งใช้ทรานซิสเตอร์แบบไบโพลาร์[7]หน่วยความจำเซมิคอนดักเตอร์แบบไบโพลาร์ที่ทำจากอุปกรณ์แยกส่วนถูกส่งครั้งแรกโดยTexas Instrumentsไปยังกองทัพอากาศสหรัฐในปี 1961 ในปีเดียวกันนั้น แนวคิดของหน่วยความจำโซลิดสเตตบนชิปวงจรรวม (IC) ถูกเสนอโดยวิศวกรแอพพลิเคชั่น Bob นอร์แมนที่Fairchild Semiconductor [8]ชิป IC หน่วยความจำสองขั้วเซมิคอนดักเตอร์ตัวแรกคือ SP95 ที่ไอบีเอ็มเปิดตัวในปี 2508 [7]แม้ว่าหน่วยความจำแบบไบโพลาร์จะมอบประสิทธิภาพที่ดีขึ้นเหนือหน่วยความจำแบบแกนแม่เหล็ก แต่ก็ไม่สามารถแข่งขันกับราคาที่ต่ำกว่าของแกนแม่เหล็กซึ่งยังคงโดดเด่นอยู่จนถึงช่วงปลายทศวรรษที่ 1960 [7]หน่วยความจำแบบไบโพลาร์ไม่สามารถแทนที่หน่วยความจำแกนแม่เหล็กได้ เนื่องจากวงจรสองขั้วแบบฟลิปฟลอปมีขนาดใหญ่เกินไปและมีราคาแพง [9]

หน่วยความจำ MOS

การประดิษฐ์MOSFET ( ทรานซิสเตอร์แบบ field-effect ของโลหะออกไซด์–เซมิคอนดักเตอร์ หรือทรานซิสเตอร์ MOS) โดยMohamed M. AtallaและDawon Kahngที่Bell Labsในปี 1959 [5] ได้เปิดใช้งานการใช้งานจริงของโลหะ–ออกไซด์–เซมิคอนดักเตอร์ (MOS) ) ทรานซิสเตอร์เป็นองค์ประกอบในการจัดเก็บเซลล์หน่วยความจำหน่วยความจำ MOS ได้รับการพัฒนาโดย John Schmidt ที่Fairchild Semiconductorในปี 1964 [10] [11]นอกจากประสิทธิภาพที่สูงขึ้นแล้วหน่วยความจำ MOS เซมิคอนดักเตอร์ยังมีราคาถูกกว่าและกินไฟน้อยกว่าหน่วยความจำแกนแม่เหล็ก[10]ในปี 1965 J. Wood และ R. Ball of theรอยัลเรดาร์จัดตั้งเสนอระบบจัดเก็บข้อมูลดิจิตอลที่ใช้CMOSเซลล์ (เสริม MOS) หน่วยความจำที่นอกเหนือไปจาก MOSFET อุปกรณ์พลังงานสำหรับแหล่งจ่ายไฟเปลี่ยนข้ามเพศสัมพันธ์, สวิทช์และการจัดเก็บสายล่าช้า [12]การพัฒนาเทคโนโลยีวงจรรวม MOS ประตูซิลิกอน (MOS IC) โดยFederico Fagginที่ Fairchild ในปี 1968 ทำให้สามารถผลิตชิปหน่วยความจำ MOS ได้[13]หน่วยความจำNMOSถูกจำหน่ายโดยIBMในช่วงต้นทศวรรษ 1970 [14] หน่วยความจำ MOS แซงหน้าหน่วยความจำแกนแม่เหล็กในฐานะเทคโนโลยีหน่วยความจำที่โดดเด่นในช่วงต้นทศวรรษ 1970 [10]

หน่วยความจำเข้าถึงโดยสุ่ม (RAM) แบบระเหยได้สองประเภทหลักคือหน่วยความจำเข้าถึงโดยสุ่มแบบคงที่ (SRAM) และหน่วยความจำเข้าถึงโดยสุ่มแบบไดนามิก (DRAM) Bipolar SRAM ถูกคิดค้นโดย Robert Norman ที่ Fairchild Semiconductor ในปี 1963 [7]ตามด้วยการพัฒนา MOS SRAM โดย John Schmidt ที่ Fairchild ในปี 1964 [10] SRAM กลายเป็นทางเลือกแทนหน่วยความจำ Magnetic-core แต่ต้องใช้ทรานซิสเตอร์ MOS หกตัวสำหรับ แต่ละบิตของข้อมูล [15]ใช้ในเชิงพาณิชย์ของ SRAM เริ่มต้นขึ้นในปี 1965 เมื่อไอบีเอ็มเปิด SP95 ชิป SRAM ของพวกเขาสำหรับระบบ / 360 รุ่น 95 [7]

โตชิบาเปิดตัวเซลล์หน่วยความจำ DRAM แบบไบโพลาร์สำหรับเครื่องคิดเลขอิเล็กทรอนิกส์ Toscal BC-1411 ในปี 1965 [16] [17]ในขณะที่ให้ประสิทธิภาพที่ดีขึ้นเหนือหน่วยความจำแบบแกนแม่เหล็ก แต่ DRAM แบบไบโพลาร์ไม่สามารถแข่งขันกับราคาที่ต่ำกว่าของแกนแม่เหล็กที่โดดเด่นในขณะนั้น หน่วยความจำ. [18]เทคโนโลยี MOS เป็นพื้นฐานสำหรับ DRAM สมัยใหม่ ในปี 1966 Dr. Robert H. Dennardที่IBM Thomas J. Watson Research Centerกำลังทำงานเกี่ยวกับหน่วยความจำ MOS ขณะตรวจสอบคุณสมบัติของเทคโนโลยี MOS เขาพบว่าสามารถสร้างตัวเก็บประจุได้และการเก็บประจุหรือไม่มีประจุบนตัวเก็บประจุ MOS สามารถแทนค่า 1 และ 0 ของบิตได้ ในขณะที่ทรานซิสเตอร์ MOS สามารถควบคุมการเขียนประจุไปยังตัวเก็บประจุได้ สิ่งนี้นำไปสู่การพัฒนาเซลล์หน่วยความจำ DRAM แบบทรานซิสเตอร์เดี่ยว[15]ในปี 1967 เดนนาร์ดได้ยื่นจดสิทธิบัตรภายใต้ไอบีเอ็มสำหรับเซลล์หน่วยความจำ DRAM ทรานซิสเตอร์ตัวเดียว โดยใช้เทคโนโลยี MOS [19]สิ่งนี้นำไปสู่ชิป DRAM IC เชิงพาณิชย์ตัวแรก ซึ่งก็คือIntel 1103ในเดือนตุลาคม 1970 [20] [21] [22] Synchronous dynamic random-access memory (SDRAM) ภายหลังเปิดตัวพร้อมกับชิปSamsung KM48SL2000 ในปี 1992 [ 23] [24]

คำว่าหน่วยความจำก็มักจะใช้ในการอ้างถึงหน่วยความจำแบบไม่ลบเลือนเฉพาะหน่วยความจำแฟลชมีต้นกำเนิดในหน่วยความจำแบบอ่านอย่างเดียว (ROM) หน่วยความจำแบบอ่านอย่างเดียวที่ตั้งโปรแกรมได้ (Programmable read-only memory - PROM) ถูกคิดค้นโดยWen Tsing Chowในปี 1956 ขณะทำงานให้กับแผนก Arma ของ American Bosch Arma Corporation [25] [26]ในปี 1967 Dawon Kahng และSimon Szeจาก Bell Labs เสนอว่าประตูลอยของอุปกรณ์เซมิคอนดักเตอร์ MOS สามารถใช้กับเซลล์ของหน่วยความจำแบบอ่านอย่างเดียว (ROM) ที่สามารถตั้งโปรแกรมได้ใหม่ซึ่งนำไปสู่Dov Frohmanแห่งIntel เป็นผู้ประดิษฐ์EPROM (PROM ที่ลบได้) ในปี 1971 [27] EEPROM (PROM ที่ลบด้วยไฟฟ้า) ได้รับการพัฒนาโดย Yasuo Tarui, Yutaka Hayashi และ Kiyoko Naga ที่ห้องปฏิบัติการไฟฟ้าในปี 1972 [28]หน่วยความจำแฟลชถูกคิดค้นโดยFujio Masuokaที่โตชิบาใน ในช่วงต้นทศวรรษ 1980 [29] [30] Masuoka และเพื่อนร่วมงานนำเสนอการประดิษฐ์NOR flashในปี 1984 [31]และNAND flashในปี 1987 [32]โตชิบาจำหน่ายหน่วยความจำแฟลช NAND ในปี 2530 [33] [34] [35]

การพัฒนาเทคโนโลยีและการประหยัดจากขนาดทำให้คอมพิวเตอร์ที่เรียกว่า Very Large Memory (VLM) เป็นไปได้ [35]

หน่วยความจำระเหย

โมดูลหน่วยความจำต่างๆ ที่มี DRAM ประเภทต่างๆ (จากบนลงล่าง): DDR SDRAM, SDRAM, EDO DRAM และ FPM DRAM

หน่วยความจำระเหยคือหน่วยความจำคอมพิวเตอร์ที่ต้องการพลังงานเพื่อรักษาข้อมูลที่เก็บไว้หน่วยความจำระเหยง่ายของเซมิคอนดักเตอร์ที่ทันสมัยส่วนใหญ่เป็น RAM แบบคงที่ ( SRAM ) หรือ RAM แบบไดนามิก ( DRAM ) SRAM จะคงเนื้อหาไว้ตราบเท่าที่มีการเชื่อมต่อพลังงานและง่ายต่อการเชื่อมต่อ แต่ใช้ทรานซิสเตอร์หกตัวต่อบิต Dynamic RAM นั้นซับซ้อนกว่าสำหรับการเชื่อมต่อและการควบคุม ซึ่งจำเป็นต้องมีวงจรการรีเฟรชปกติเพื่อป้องกันการสูญเสียเนื้อหา แต่ใช้ทรานซิสเตอร์เพียงตัวเดียวและตัวเก็บประจุหนึ่งตัวต่อบิต ทำให้สามารถเข้าถึงความหนาแน่นที่สูงขึ้นมาก และต้นทุนต่อบิตที่ถูกกว่ามาก[1] [21] [35]

SRAM ไม่คุ้มสำหรับหน่วยความจำระบบเดสก์ท็อป ซึ่ง DRAM มีอำนาจเหนือกว่า แต่ใช้สำหรับหน่วยความจำแคช SRAM เป็นเรื่องปกติในระบบฝังตัวขนาดเล็ก ซึ่งอาจต้องการเพียงสิบกิโลไบต์หรือน้อยกว่า เทคโนโลยีหน่วยความจำระเหยที่มีความพยายามที่จะแข่งขันหรือแทนที่ SRAM และ DRAM ได้แก่Z-RAMและA-RAM

หน่วยความจำแบบไม่ลบเลือน

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

เทคโนโลยีหน่วยความจำแบบไม่ลบเลือนเตรียมพร้อม ได้แก่ FERAM, CBRAM , รถเข็น , STT-RAM , SONOS , RRAM , หน่วยความจำสนามแข่ง , NRAM , 3D XPointและหน่วยความจำกิ้งกือ

หน่วยความจำกึ่งลบเลือน

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

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

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

คำว่ากึ่งระเหยยังใช้เพื่ออธิบายพฤติกรรมกึ่งลบเลือนที่สร้างขึ้นจากหน่วยความจำประเภทอื่น ตัวอย่างเช่น หน่วยความจำแบบลบเลือนได้และหน่วยความจำแบบไม่ลบเลือนอาจถูกรวมเข้าด้วยกัน โดยที่สัญญาณภายนอกจะคัดลอกข้อมูลจากหน่วยความจำแบบระเหยไปยังหน่วยความจำแบบไม่ลบเลือน แต่ถ้าพลังงานถูกถอดออกโดยไม่คัดลอก ข้อมูลจะสูญหาย หรือหน่วยความจำแบบระเหยที่มีแบตเตอรี่สำรอง และหากไฟจากภายนอกหายไป มีช่วงเวลาที่ทราบว่าแบตเตอรี่สามารถจ่ายไฟให้กับหน่วยความจำที่ระเหยได้ต่อไป แต่ถ้าปิดเครื่องเป็นเวลานาน แบตเตอรี่จะหมดและข้อมูลจะสูญหาย [35]

การจัดการ

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

บัก

การจัดการหน่วยความจำอย่างไม่เหมาะสมเป็นสาเหตุของบั๊ก รวมถึงประเภทต่อไปนี้:

  • ในการโอเวอร์โฟลว์เลขคณิตการคำนวณส่งผลให้มีจำนวนมากกว่าหน่วยความจำที่จัดสรรไว้ ตัวอย่างเช่น จำนวนเต็ม 8 บิตที่มีเครื่องหมายอนุญาตตัวเลข −128 ถึง +127 หากค่าของมันคือ 127 และได้รับคำสั่งให้เพิ่มหนึ่ง คอมพิวเตอร์จะไม่สามารถเก็บหมายเลข 128 ไว้ในพื้นที่นั้นได้ กรณีดังกล่าวจะส่งผลให้เกิดการดำเนินการที่ไม่ต้องการ เช่น เปลี่ยนค่าของตัวเลขเป็น −128 แทนที่จะเป็น +128
  • หน่วยความจำรั่วเกิดขึ้นเมื่อโปรแกรมขอหน่วยความจำจากระบบปฏิบัติการและไม่เคยส่งกลับหน่วยความจำเมื่อมันทำกับมัน โปรแกรมที่มีจุดบกพร่องนี้จะค่อยๆ ต้องใช้หน่วยความจำมากขึ้นเรื่อยๆ จนกว่าโปรแกรมจะล้มเหลวเมื่อหมด
  • ผิดส่วนผลเมื่อโปรแกรมพยายามที่จะเข้าถึงหน่วยความจำว่ามันไม่ได้มีสิทธิ์ในการเข้าถึง โดยทั่วไป โปรแกรมที่ทำเช่นนั้นจะถูกยกเลิกโดยระบบปฏิบัติการ
  • หน่วยความจำล้นหมายความว่าโปรแกรมที่เขียนข้อมูลลงในตอนท้ายของการจัดสรรพื้นที่ของตนแล้วยังคงเขียนข้อมูลไปยังหน่วยความจำที่ได้รับการจัดสรรเพื่อวัตถุประสงค์อื่น ๆ ซึ่งอาจส่งผลให้โปรแกรมทำงานผิดปกติ ซึ่งรวมถึงข้อผิดพลาดในการเข้าถึงหน่วยความจำ ผลลัพธ์ที่ไม่ถูกต้อง การขัดข้อง หรือการละเมิดความปลอดภัยของระบบ จึงเป็นพื้นฐานของช่องโหว่ของซอฟต์แวร์จำนวนมาก และสามารถนำไปใช้ในทางประสงค์ร้ายได้

ระบบคอมพิวเตอร์ยุคแรก

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

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

หน่วยความจำเสมือน

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

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

หน่วยความจำป้องกัน

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

Without protected memory, it is possible that a bug in one program will alter the memory used by another program. This will cause that other program to run off of corrupted memory with unpredictable results. If the operating system's memory is corrupted, the entire computer system may crash and need to be rebooted. At times programs intentionally alter the memory used by other programs. This is done by viruses and malware to take over computers. It may also be used benignly by desirable programs which are intended to modify other programs; in the modern age, this is generally considered bad programming practice for application programs, but it may be used by system development tools such as debuggers, for example to insert breakpoints or hooks.

หน่วยความจำที่ได้รับการป้องกันจะกำหนดพื้นที่หน่วยความจำของโปรแกรมเอง หากระบบปฏิบัติการตรวจพบว่าโปรแกรมพยายามแก้ไขหน่วยความจำที่ไม่ได้เป็นของโปรแกรม โปรแกรมจะถูกยกเลิก (หรือถูกจำกัดหรือเปลี่ยนเส้นทาง) ด้วยวิธีนี้ เฉพาะโปรแกรมที่ละเมิดเท่านั้นที่ขัดข้อง และโปรแกรมอื่นๆ จะไม่ได้รับผลกระทบจากพฤติกรรมที่ไม่เหมาะสม (ไม่ว่าจะโดยบังเอิญหรือโดยเจตนา)

ระบบหน่วยความจำที่ได้รับการป้องกันมักจะมีหน่วยความจำเสมือนด้วยเช่นกัน

ดูเพิ่มเติม

หมายเหตุ

อ้างอิง

  1. ^ a b Hemmendinger, David (15 กุมภาพันธ์ 2559). "หน่วยความจำคอมพิวเตอร์" . สารานุกรมบริแทนนิกา . สืบค้นเมื่อ16 ตุลาคม 2019 .
  2. ^ AM ทัวริงและ RA Brooker (1952) Programmer ของคู่มือสำหรับแมนเชสเตอร์คอมพิวเตอร์อิเล็กทรอนิกส์ Mark II ที่จัดเก็บ 2014/01/02 ที่เครื่อง Wayback มหาวิทยาลัยแมนเชสเตอร์.
  3. ^ "การตลาดหน่วยความจำ MOS" (PDF) บรรษัทวิศวกรรมวงจรรวม . สถาบันสมิธโซเนียน . 1997 . สืบค้นเมื่อ16 ตุลาคม 2019 .
  4. ^ "MOS หน่วยความจำแนวโน้มตลาด" (PDF) บรรษัทวิศวกรรมวงจรรวม . สถาบันสมิธโซเนียน . 1998 . สืบค้นเมื่อ16 ตุลาคม 2019 .
  5. a b " 1960 - Metal Oxide Semiconductor (MOS) Transistor Demonstrated" . ซิลิคอนเครื่องยนต์ พิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์ .
  6. ^ "1953: คอมพิวเตอร์ Whirlwind เปิดตัวหน่วยความจำหลัก" . พิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์ . สืบค้นเมื่อ2 สิงหาคม 2019 .
  7. a b c d e f "1966: Semiconductor RAMs Serve High-speed Storage Needs" . พิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์ . สืบค้นเมื่อ19 มิถุนายน 2019 .
  8. ^ "1953: ทรานซิสเตอร์สร้างความทรงจำอย่างรวดเร็ว | The Storage Engine | พิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์" . www .คอมพิวเตอร์ประวัติศาสตร์. org สืบค้นเมื่อ2019-11-14 .
  9. ^ ออร์ตัน, จอห์น ดับเบิลยู. (2009). อุปกรณ์กึ่งตัวนำและการปฏิวัติข้อมูล: ผลึกเวทมนตร์ที่ทำให้มันเกิดขึ้น สื่อวิชาการ . NS. 104. ISBN 978-0-08-096390-7.
  10. ^ "1970: MOS แบบไดนามิกแรมแข่งขันกับแม่เหล็กหลักหน่วยความจำในราคา" พิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์ . สืบค้นเมื่อ29 กรกฎาคม 2019 .
  11. ^ การออกแบบโซลิดสเตต - ฉบับที่ 6 . บ้านฮอไรซอน. พ.ศ. 2508
  12. ^ วู้ด เจ.; Ball, R. (กุมภาพันธ์ 2508) "การใช้ทรานซิสเตอร์สนามผลแบบฉนวนหุ้มฉนวนในระบบจัดเก็บข้อมูลดิจิทัล" ค.ศ. 1965 การประชุมวงจรโซลิดสเตตนานาชาติของ IEEE ไดเจสท์เทคนิคเอกสาร VIII : 82–83. ดอย : 10.1109/ISSCC.1965.1157606 .
  13. ^ "1968: Silicon ประตูเทคโนโลยีที่พัฒนาขึ้นสำหรับของวงจรรวม" พิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์ . สืบค้นเมื่อ10 สิงหาคม 2019 .
  14. ^ Critchlow, DL (2007) "ความทรงจำเกี่ยวกับ MOSFET Scaling" . IEEE Solid-State Circuits ข่าวสังคม 12 (1): 19–22. ดอย : 10.1109/N-SSC.2007.4785536 .
  15. ^ a b "DRAM" . ไอบีเอ็ม100 . ไอบีเอ็ม . 9 สิงหาคม 2560 . สืบค้นเมื่อ20 กันยายน 2019 .
  16. ^ "แผ่นข้อมูลจำเพาะสำหรับโตชิบา "TOSCAL" BC-1411" . พิพิธภัณฑ์ Old คำนวณเว็บ เก็บถาวรจากต้นฉบับเมื่อ 3 กรกฎาคม 2017 . สืบค้นเมื่อ8 พฤษภาคม 2018 .
  17. ^ Toshiba "Toscal" BC-1411 Desktop Calculator Archived 2007-05-20 ที่ Wayback Machine
  18. ^ "1966: เซมิคอนดักเตอร์ RAMs ตอบสนองความต้องการความเร็วสูง Storage" พิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์ .
  19. ^ "โรเบิร์ต เดนนาร์ด" . สารานุกรมบริแทนนิกา . สืบค้นเมื่อ8 กรกฎาคม 2019 .
  20. ^ "Intel: 35 ปีแห่งนวัตกรรม (1968-2003)" (PDF) อินเทล 2546 . สืบค้นเมื่อ26 มิถุนายน 2019 .
  21. a b หน่วยความจำ DRAM ของ Robert Dennard history-computer.com
  22. ^ โลเจ็ก, โบ (2007). ประวัติวิศวกรรมเซมิคอนดักเตอร์ . สปริงเกอร์วิทยาศาสตร์และธุรกิจสื่อ น. 362–363. ISBN 9783540342588. i1103 ผลิตขึ้นโดยใช้กระบวนการ P-MOS ประตูซิลิกอนแบบ 6 หน้ากาก โดยมีคุณสมบัติขั้นต่ำ 8 ไมโครเมตร ผลิตภัณฑ์ที่ได้มีขนาด 2,400 µm, 2 ขนาดเซลล์หน่วยความจำ, ขนาดไดย์ที่ต่ำกว่า 10 มม.² และขายได้ในราคาประมาณ 21 ดอลลาร์
  23. ^ "เอกสารข้อมูล KM48SL2000-7" . ซัมซุง . สิงหาคม 1992 . สืบค้นเมื่อ19 มิถุนายน 2019 .
  24. ^ "การออกแบบอิเล็กทรอนิกส์" . การออกแบบอิเล็กทรอนิกส์ บริษัท สำนักพิมพ์เฮย์เดน 41 (15–21) พ.ศ. 2536 DRAM แบบซิงโครนัสเชิงพาณิชย์เครื่องแรก Samsung 16-Mbit KM48SL2000 ใช้สถาปัตยกรรมแบบ single-bank ที่ช่วยให้นักออกแบบระบบเปลี่ยนจากระบบอะซิงโครนัสเป็นระบบซิงโครนัสได้อย่างง่ายดาย
  25. ^ Han-Way Huang (5 ธันวาคม 2551) การออกแบบระบบฝังตัวอยู่กับ C805 Cengage การเรียนรู้ NS. 22. ISBN 978-1-111-81079-5. เก็บข้อมูลจากต้นฉบับเมื่อ 27 เมษายน 2018.
  26. ^ Marie-Aude Aufaure; เอสเตบัน ซิมานยี (17 มกราคม 2556) ข่าวกรองธุรกิจ: สองยุโรปเรียนภาคฤดูร้อน, eBISS 2012, บรัสเซลส์, เบลเยียม, 15-21 กรกฎาคม, 2012, กวดวิชาบรรยาย สปริงเกอร์. NS. 136. ISBN 978-3-642-36318-4. เก็บข้อมูลจากต้นฉบับเมื่อ 27 เมษายน 2018.
  27. ^ "1971: รอมเซมิคอนดักเตอร์นำกลับมานำเสนอ" พิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์ . สืบค้นเมื่อ19 มิถุนายน 2019 .
  28. ^ Tarui, Y.; ฮายาชิ, วาย.; Nagai, K. (1972). "หน่วยความจำเซมิคอนดักเตอร์แบบไม่ลบเลือนที่สามารถตั้งโปรแกรมซ้ำได้ด้วยไฟฟ้า" วารสาร IEEE ของวงจรโซลิดสเต7 (5): 369–375. Bibcode : 1972IJSSC...7..369T . ดอย : 10.1109/JSSC.1972.1052895 . ISSN 0018-9200 . 
  29. ^ Fulford เบนจามิน (24 มิถุนายน 2002) "ฮีโร่ไร้เสียง" . ฟอร์บส์ . เก็บถาวรจากต้นฉบับเมื่อ 3 มีนาคม 2551 . สืบค้นเมื่อ18 มีนาคม 2551 .
  30. ^ เรา 4531203  Fujio Masuoka
  31. ^ "Toshiba: Inventor of Flash Memory". Toshiba. Retrieved 20 June 2019.
  32. ^ Masuoka, F.; Momodomi, M.; Iwata, Y.; Shirota, R. (1987). "New ultra high density EPROM and flash EEPROM with NAND structure cell". Electron Devices Meeting, 1987 International. IEDM 1987. IEEE. doi:10.1109/IEDM.1987.191485.
  33. ^ "1987: Toshiba Launches NAND Flash". eWeek. April 11, 2012. Retrieved 20 June 2019.
  34. ^ "1971: Reusable semiconductor ROM introduced". Computer History Museum. Retrieved 19 June 2019.
  35. ^ a b c d e Stanek, William R. (2009). Windows Server 2008 Inside Out. O'Reilly Media, Inc. p. 1520. ISBN 978-0-7356-3806-8. Archived from the original on 2013-01-27. Retrieved 2012-08-20. [...] Windows Server Enterprise supports clustering with up to eight-node clusters and very large memory (VLM) configurations of up to 32 GB on 32-bit systems and 2 TB on 64-bit systems.
  36. ^ Montierth บริกส์, Keithley "หน่วยความจำแฟลช NAND กึ่งลบเลือน" . สืบค้นเมื่อ20 พฤษภาคม 2018 .CS1 maint: multiple names: authors list (link)
  37. ^ เคปเปล Naeimi, Nasrullah "วิธีการและอุปกรณ์สำหรับจัดการหน่วยความจำทอร์กสปินโอน" . Google ค้นสิทธิบัตร สืบค้นเมื่อ20 พฤษภาคม 2018 .CS1 maint: multiple names: authors list (link)

อ่านเพิ่มเติม

  • Miller, Stephen W. (1977), Memory and Storage Technology , Montvale.: AFIPS Press
  • เทคโนโลยีหน่วยความจำและการจัดเก็บ , Alexandria, Virginia.: Time Life Books, 1988