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

อ่าน 3 นาที

บริเวณหน่วยความจำส่วนบน

ใน การจัดการหน่วยความจำ DOS พื้นที่ หน่วยความจำส่วนบน ( UMA ) คือ หน่วยความจำ ระหว่าง แอดเดรส 640 KB และ 1024 KB ( 0x A0000–0xFFFFF) ใน IBM PC หรือ เครื่องที่เข้ากันได้ IBM สงวน...

บริเวณหน่วยความจำส่วนบน

พื้นที่หน่วยความจำส่วนบนตั้งอยู่ระหว่าง 640 KB และ 1024 KB

ในการจัดการหน่วยความจำ DOSพื้นที่หน่วยความจำส่วนบน ( UMA ) คือหน่วยความจำระหว่างแอดเดรส 640  KBและ 1024 KB ( 0x A0000–0xFFFFF) ในIBM PCหรือเครื่องที่เข้ากันได้ IBM สงวน พื้นที่แอดเดรส384 KB บนสุดของCPU 8088 ขนาด 1024 KB สำหรับ BIOS ROM , Video BIOS , Option ROMs , video RAM, RAMบนอุปกรณ์ต่อพ่วง , I/O ที่แมปหน่วยความจำและROM BASICที่ ล้าสมัย [ 1 ]

อย่างไรก็ตาม แม้จะมีหน่วยความจำวิดีโอ RAM, ROM BIOS , BIOS วิดีโอ , ROM ตัวเลือกและพอร์ต I/O สำหรับอุปกรณ์ต่อพ่วงแล้ว พื้นที่แอดเดรสส่วนใหญ่ 384 KB ก็ยังไม่ได้ถูกใช้งาน เนื่องจากข้อจำกัดของหน่วยความจำ 640 KB กลายเป็นอุปสรรคมากขึ้นเรื่อยๆ จึงมีการคิดค้นเทคนิคเพื่อเติมหน่วยความจำ RAM ลงในพื้นที่ว่างเหล่านั้น พื้นที่เหล่านี้ถูกเรียกว่าบล็อกหน่วยความจำส่วนบน ( UMBs )

การใช้งาน

ขั้นตอนต่อไปในการวิวัฒนาการของ DOS คือการที่ระบบปฏิบัติการใช้บล็อกหน่วยความจำส่วนบน (UMB) และพื้นที่หน่วยความจำสูง (HMA) ซึ่งเกิดขึ้นพร้อมกับการเปิดตัวDR DOS 5.0ในปี 1990 [ 2 ]ตัวจัดการหน่วยความจำในตัวของ DR DOS คือEMM386.EXEซึ่งสามารถดำเนินการฟังก์ชันพื้นฐานส่วนใหญ่ของQEMMและโปรแกรมที่เทียบเคียงได้

ข้อดีของ DR DOS 5.0 เมื่อเทียบกับการใช้งาน DOS รุ่นเก่าร่วมกับ QEMM คือ เคอร์เนลของ DR DOS และโครงสร้างข้อมูลเกือบทั้งหมดสามารถโหลดลงในหน่วยความจำระดับสูงได้ ทำให้หน่วยความจำพื้นฐานเหลือว่างเกือบทั้งหมดส่งผลให้สามารถกำหนดค่าระบบโดยมีพื้นที่ว่างมากถึง 620 KB จากทั้งหมด 640 KB

การกำหนดค่าไม่ได้เป็นไปโดยอัตโนมัติ - ต้องระบุ UMB ที่ว่างอยู่ด้วยตนเอง เพิ่มเข้าไปในบรรทัดที่โหลด EMM386 จากCONFIG.SYS ด้วยตนเอง จากนั้นต้องโหลดไดรเวอร์และอื่นๆ เข้าไปใน UMB จาก CONFIG.SYS และAUTOEXEC.BAT ด้วยตนเอง การกำหนดค่านี้ไม่ใช่กระบวนการที่ง่ายเลย เนื่องจากโปรแกรมติดตั้ง QEMM ทำงานโดยอัตโนมัติเป็นส่วนใหญ่ โปรแกรมนี้จึงยังคงวางจำหน่ายในตลาด และที่จริงแล้วมันทำงานได้ดีกับ HMA และ UMB ของ DR DOS เอง และกลายเป็นหนึ่งในยูทิลิตี้ที่ขายดีที่สุดสำหรับพีซี

ฟังก์ชันการทำงานนี้ถูกคัดลอกโดยMicrosoftในการเปิดตัวMS-DOS 5.0ในเดือนมิถุนายน พ.ศ. 2534 [ 2 ]ในที่สุด โครงสร้างข้อมูล DOS จำนวนมากก็ถูกย้ายออกจากหน่วยความจำแบบดั้งเดิม ทำให้เหลือพื้นที่ว่างได้ถึง 631 KB จาก 640 KB เริ่มตั้งแต่เวอร์ชัน 6.0 ของ MS-DOS Microsoft ยังได้รวมโปรแกรมที่เรียกว่าMEMMAKERซึ่งใช้ในการเพิ่มประสิทธิภาพหน่วยความจำแบบดั้งเดิมโดยอัตโนมัติโดยการย้าย โปรแกรม terminate-and-stay-resident (TSR) ไปยังหน่วยความจำส่วนบน

ในช่วงต้นทศวรรษ 1990 การปรับแต่งแผนที่หน่วยความจำของ DOS ด้วยตนเองกลายเป็นทักษะที่มีค่าสูงมาก ทำให้สามารถเรียกใช้แอปพลิเคชันขนาดใหญ่ที่สุดได้แม้บนพีซีที่มีการกำหนดค่าที่ซับซ้อนที่สุด เทคนิคนี้คือการสร้าง UMB ให้ได้มากที่สุดเท่าที่จะเป็นไปได้ รวมถึงการแมปบล็อกหน่วยความจำที่จัดสรรไว้แต่ไม่ได้ใช้งาน เช่น พื้นที่แสดงผลขาวดำบนเครื่องสี จากนั้น ส่วนประกอบย่อยต่างๆ ของ DOS จะต้องถูกโหลดลงใน UMB เหล่านี้ตามลำดับที่ถูกต้อง เพื่อใช้บล็อกหน่วยความจำอย่างมีประสิทธิภาพที่สุด โปรแกรม TSR บางโปรแกรมต้องการหน่วยความจำเพิ่มเติมในระหว่างการโหลด ซึ่งจะถูกปล่อยให้ว่างอีกครั้งเมื่อการโหลดเสร็จสมบูรณ์ โชคดีที่โมดูลเหล่านี้มีความสัมพันธ์กันน้อย ดังนั้นจึงสามารถโหลดได้ในลำดับใดก็ได้ ยกเว้นในกรณีที่ต้องการแคช CD-ROM ได้สำเร็จ แคชดิสก์ส่วนใหญ่จะต้องถูกโหลดหลังจากไดรเวอร์ CD-ROM และโมดูลของสแต็กเครือข่ายส่วนใหญ่จะต้องถูกโหลดตามลำดับที่แน่นอน โดยพื้นฐานแล้วคือการทำงานแบบค่อยเป็นค่อยไปผ่านเลเยอร์ต่างๆ ของโมเดล OSI

วิธีการพื้นฐานแต่มีประสิทธิภาพในการเพิ่มประสิทธิภาพหน่วยความจำแบบดั้งเดิมคือการโหลด HIMEM.SYS เป็นอุปกรณ์ จากนั้นโหลด EMM386.EXE เป็นอุปกรณ์ด้วยตัวเลือก "RAM AUTO" ซึ่งอนุญาตให้เข้าถึง UMA โดยการโหลดไดรเวอร์อุปกรณ์เป็น devicehigh วิธีนี้จะโหลดตัวจัดการหน่วยความจำพื้นฐานลงในหน่วยความจำแบบดั้งเดิม จากนั้นจึงโหลดส่วนที่เหลือทั้งหมดลงใน UMA โปรแกรมที่ใช้หน่วยความจำแบบดั้งเดิมมาก เช่นMSCDEXก็สามารถโหลดลงใน UMA ได้ในลักษณะเดียวกัน จึงช่วยเพิ่มพื้นที่ว่างในหน่วยความจำแบบดั้งเดิมได้เป็นจำนวนมาก

วินโดวส์

ความนิยมที่เพิ่มขึ้นของWindows 3.0ทำให้ความจำเป็นของพื้นที่หน่วยความจำส่วนบนลดลง เนื่องจากแอปพลิเคชัน Windows ไม่ได้รับผลกระทบโดยตรงจากข้อจำกัดของหน่วยความจำพื้นฐานของ DOS แต่โปรแกรม DOS ที่ทำงานภายใต้ Windows (โดยที่ Windows ทำหน้าที่เป็นตัวจัดการมัลติทาสก์) ยังคงถูกจำกัดอยู่ เมื่อมีการเปิดตัวWindows 95ความจำเป็นของพื้นที่หน่วยความจำส่วนบนก็ยิ่งลดลงไปอีก เนื่องจาก Windows เวอร์ชันนี้มีฟังก์ชันการทำงานส่วนใหญ่ของไดรเวอร์อุปกรณ์ DOS ให้กับแอปพลิเคชัน DOS ที่ทำงานภายใต้ Windows เช่น การสนับสนุน CD เครือข่าย และเสียง แผนที่หน่วยความจำของกล่อง DOS ใน Windows 95 ได้รับการปรับให้เหมาะสมโดยอัตโนมัติ อย่างไรก็ตาม ไม่ใช่ทุกโปรแกรม DOS ที่สามารถทำงานในสภาพแวดล้อมนี้ได้ โดยเฉพาะอย่างยิ่ง โปรแกรมที่พยายามสลับจากโหมดจริง (real mode) ไปยังโหมดป้องกัน (protected mode) โดยตรงจะไม่ทำงาน เนื่องจากไม่ได้รับอนุญาตในโหมดเสมือน 8086ที่โปรแกรมกำลังทำงานอยู่ นอกจากนี้ โปรแกรมที่พยายามสลับโดยใช้ API ของVirtual Control Program Interface (VCPI) (ซึ่งถูกนำมาใช้เพื่อให้โปรแกรม DOS ที่ต้องการโหมดป้องกันสามารถเข้าสู่โหมดนั้นจากโหมดเสมือน 8086 ที่ตั้งค่าโดยตัวจัดการหน่วยความจำ ดังที่กล่าวไว้ข้างต้น) ก็ไม่ทำงานใน Windows 95 มีเพียง API ของDOS Protected Mode Interface (DPMI) สำหรับการสลับไปยังโหมดป้องกันเท่านั้นที่ได้รับการสนับสนุน

การดำเนินการ

โหมดเสมือน 8086

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

แรมเงา

ในระบบหลายระบบ รวมถึงระบบสมัยใหม่ สามารถใช้หน่วยความจำที่สงวนไว้สำหรับการจำลอง ROM การ์ดขยายเป็นหน่วยความจำส่วนบนได้ ชิปเซ็ตหลายตัวสงวน RAM ไว้สูงสุด 384 KB สำหรับวัตถุประสงค์นี้ และเนื่องจาก RAM นี้โดยทั่วไปไม่ได้ใช้งาน จึงสามารถใช้เป็นหน่วยความจำส่วนบนในโหมดจริงได้ โดยใช้ ไดรเวอร์อุปกรณ์ แบบกำหนดเอง เช่น UMBPCI [ 3 ]

ไอบีเอ็มเอ็กซ์

ใน คอมพิวเตอร์ IBM XTสามารถเพิ่มหน่วยความจำลงในเมนบอร์ดและใช้PROM ตัวถอดรหัสที่ อยู่แบบกำหนดเอง เพื่อให้ปรากฏในพื้นที่หน่วยความจำส่วนบนได้[ 4 ]เช่นเดียวกับหน่วยความจำส่วนบนที่ใช้ 386 ที่อธิบายไว้ข้างต้น RAM เพิ่มเติมสามารถใช้เพื่อโหลดไฟล์ TSR หรือใช้เป็นดิสก์ RAMได้

AllCard ซึ่ง เป็น หน่วยจัดการหน่วยความจำเสริมสำหรับคอมพิวเตอร์ตระกูล XT อนุญาตให้แมปหน่วยความจำปกติเข้าสู่ช่วงแอดเดรส 0xA0000-EFFFF ทำให้โปรแกรม DOS สามารถใช้หน่วยความจำได้มากถึง 952 KB โปรแกรมเช่นLotus 1-2-3ซึ่งเข้าถึงหน่วยความจำวิดีโอโดยตรง จำเป็นต้องได้รับการแก้ไขเพื่อรองรับโครงสร้างหน่วยความจำนี้ ดังนั้นจึง มีการลบ ข้อจำกัด 640 KBออกไป แต่ต้องแลกมาด้วยความเข้ากันได้ของซอฟต์แวร์ การใช้งานพื้นที่หน่วยความจำส่วนบนนี้แตกต่างจากการใช้บล็อกหน่วยความจำส่วนบน ซึ่งใช้เพื่อปลดปล่อยหน่วยความจำแบบเดิมโดยการย้ายไดรเวอร์อุปกรณ์และ TSR ไปยังพื้นที่แอดเดรส 384 KB ส่วนบนของพื้นที่แอดเดรส 1  MBแต่ยังคงปริมาณหน่วยความจำที่สามารถเข้าถึงได้ (640 KB) ไว้เท่าเดิม

ดูเพิ่มเติม

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

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ บริเวณหน่วยความจำส่วนบน

ใน การจัดการหน่วยความจำ DOS พื้นที่ หน่วยความจำส่วนบน ( UMA ) คือ หน่วยความจำ ระหว่าง แอดเดรส 640 KB และ 1024 KB ( 0x A0000–0xFFFFF) ใน IBM PC หรือ เครื่องที่เข้ากันได้ IBM สงวน...

การใช้งาน

ขั้นตอนต่อไปในการวิวัฒนาการของ DOS คือการที่ ระบบปฏิบัติการ ใช้บล็อกหน่วยความจำส่วนบน (UMB) และ พื้นที่หน่วยความจำสูง (HMA) ซึ่งเกิดขึ้นพร้อมกับการเปิดตัว DR DOS 5.0 ในปี 1990 [ 2 ] ตัวจัดการหน่วยความจำในตัวของ DR DOS คือ EMM386.

วินโดวส์

ความนิยมที่เพิ่มขึ้นของ Windows 3.0 ทำให้ความจำเป็นของพื้นที่หน่วยความจำส่วนบนลดลง เนื่องจากแอปพลิเคชัน Windows ไม่ได้รับผลกระทบโดยตรงจากข้อจำกัดของหน่วยความจำพื้นฐานของ DOS แต่โปรแกรม DOS ที่ทำงานภายใต้ Windows (โดยที่ Windows...

โหมดเสมือน 8086

สามารถสร้างบล็อกหน่วยความจำส่วนบนได้โดยการแมป หน่วยความจำเสริม เข้าไปในพื้นที่หน่วยความจำส่วนบนเมื่อทำงานใน โหมดเสมือน 8086 วิธีนี้คล้ายกับการจำลอง หน่วยความจำขยาย โดยใช้ หน่วยความจำเสริม...