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

อ่าน 3 นาที

ดำเนินการในสถานที่เดิม

ใน วิทยาการคอมพิวเตอร์ การ ประมวลผลแบบ Execute in Place ( XIP ) คือวิธีการเรียกใช้โปรแกรมโดยตรงจากหน่วยเก็บข้อมูลระยะยาว แทนที่จะคัดลอกไปยัง RAM ซึ่งเป็นการต่อยอดจากการใช้...

ดำเนินการในสถานที่เดิม

ในวิทยาการคอมพิวเตอร์การประมวลผลแบบ Execute in Place ( XIP ) คือวิธีการเรียกใช้โปรแกรมโดยตรงจากหน่วยเก็บข้อมูลระยะยาว แทนที่จะคัดลอกไปยังRAMซึ่งเป็นการต่อยอดจากการใช้หน่วยความจำร่วม (shared memory)เพื่อลดปริมาณหน่วยความจำทั้งหมดที่จำเป็น

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

เพื่อให้สิ่งนี้ได้ผล ต้องเป็นไปตามเกณฑ์หลายประการ:

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

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

ระหว่างการบูต

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

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

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

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

ในระบบ x86 โดยทั่วไปBIOS / UEFI ROM จะถูกแมปไปยังพื้นที่หน่วยความจำคงที่เมื่อเปิดเครื่อง[ 3 ]และ BIOS/UEFI ในระบบ x86 จะใช้ XIP เพื่อเริ่มต้นหน่วยความจำหลัก ในระบบฝังตัว ARM และ RISC-V โดยทั่วไป Boot ROMในตัวของ SoC จะถูกแมปไปยังพื้นที่หน่วยความจำคงที่เมื่อเปิดเครื่อง และ Boot ROM สามารถค้นหาและโหลดบูตโหลดเดอร์แบบฝังตัว เช่นDas U-Bootจากหน่วยความจำแฟลช NANDและกระบวนการบูตนั้นไม่ได้ใช้ชิป EEPROM เฉพาะ

XIP เป็นระบบไฟล์

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

ความซับซ้อนทั้งหมดเหล่านี้และการแลกเปลี่ยนความเร็วหมายความว่า XIP โดยทั่วไปจะใช้เฉพาะกับบูตโหลดเดอร์ขั้นแรกหรือเมื่อ RAM มีจำกัดอย่างมาก โดยเฉพาะอย่างยิ่ง คอนโซลวิดีโอเกมรุ่นที่สองถึงสี่จะเชื่อมต่อ แอดเดรสและบัสข้อมูลของ ตลับ ROMเข้ากับคอนโซล[ 4 ]ซึ่งทำให้ (ตัวอย่างเช่น) Atari 2600สามารถทำงานได้โดยใช้ RAM เพียง 128 ไบต์ในIC อินเทอร์เฟซจอยสติ๊ก

ระบบไฟล์ใหม่สำหรับลินุกซ์ที่เรียกว่าAXFS ( Advanced XIP File System ) มีเป้าหมายที่จะเอาชนะข้อบกพร่องบางประการที่เกี่ยวข้องกับ XIP โดยเฉพาะอย่างยิ่งในเรื่องของการเรียกใช้งานแอปพลิเคชันในพื้นที่ผู้ใช้ แบบ in-place ตัวอย่างเช่น มันทำให้สามารถแบ่งไฟล์ไบนารีที่เรียกใช้งานได้ออกเป็น "ส่วน XIP" ซึ่งช่วยหลีกเลี่ยงข้อจำกัดของการแตกกระจายที่กล่าวถึงข้างต้น

การ ใช้งาน NetBSDก็อยู่ระหว่างการพัฒนาเช่นกัน[ 5 ]

ดูเพิ่มเติม

  • Bird, Tim R. (2004). "วิธีการปรับปรุงเวลาในการบูตเครื่องใน Linux" (PDF) . การประชุมวิชาการ Linux ที่ออตตาวา .
  • Hulbert, Jared (2008). "การแนะนำระบบไฟล์ XIP ขั้นสูง" (PDF) . การประชุมวิชาการลินุกซ์ออตตาวา .
  • Wilshire, Phil (2002-08-28). "ภาพรวมของ eXecute In Place (XIP)" . uCdot . เก็บถาวรจากต้นฉบับเมื่อ 2007-10-20 . เรียกดูเมื่อ2007-09-25 .
  • Wellhöfer, Sören (17 กันยายน 2552). "การเรียกใช้แอปพลิเคชันแบบ In-Place (XIP) ด้วย Linux และ AXFS" . สืบค้นเมื่อ17 กันยายน 2552 .
  • "การกำหนดค่า Linux สำหรับ XIP (Execution In Place) บน PowerPC" DENX Software Engineering
  • "เคอร์เนล XIP" . วิกิพีเดียลินุกซ์ แบบฝัง
  • "ไฟล์ XIP สำหรับแอปพลิเคชัน Linux" . Embedded Linux Wiki .
  • "ไดรเวอร์ระบบไฟล์แบบเรียกใช้งานในตำแหน่งเดิม - xip2fs" Linux สำหรับ S/ 390
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Execute_in_place&oldid=1336575391 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ ดำเนินการในสถานที่เดิม

ใน วิทยาการคอมพิวเตอร์ การ ประมวลผลแบบ Execute in Place ( XIP ) คือวิธีการเรียกใช้โปรแกรมโดยตรงจากหน่วยเก็บข้อมูลระยะยาว แทนที่จะคัดลอกไปยัง RAM ซึ่งเป็นการต่อยอดจากการใช้...

ระหว่างการบูต

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

XIP เป็นระบบไฟล์

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

ดูเพิ่มเติม

การเปรียบเทียบระบบไฟล์ ตลับ ROM เฟิร์มแวร์ เอเอ็กซ์เอฟเอส