Proveďte na místě - Execute in place
![]() | tento článek potřebuje další citace pro ověření.Srpna 2009) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
v počítačová věda, provést na místě (XIP) je metoda spouštění programů přímo z dlouhodobého úložiště, nikoli do jejich kopírování RAM. Jedná se o rozšíření použití sdílená paměť ke snížení celkového požadovaného množství paměti.
Jeho obecný účinek spočívá v tom, že text programu nespotřebovává žádnou zapisovatelnou paměť, což ji ukládá pro dynamická data, a že všechny instance programu jsou spouštěny z jedné kopie.
Aby to fungovalo, musí být splněno několik kritérií:
- Úložiště musí poskytovat podobné rozhraní jako procesor jako běžná paměť (nebo musí být přítomna adaptivní vrstva).
- Toto rozhraní musí poskytovat dostatečně rychlé operace čtení s a náhodný přístup vzor.
- The souborový systém, pokud je použit, musí vystavit příslušné mapovací funkce.
- Program musí být buď propojeno být si vědom adresy, na které se úložiště v systému objeví, nebo být nezávislý na poloze.
- Program nesmí upravovat data v načteném obrázku.
Požadavky na úložiště jsou obvykle splněny pomocí NOR flash paměť nebo EEPROM, které lze pro operace čtení adresovat jako jednotlivá slova, i když je ve většině instalací o něco pomalejší než normální systémová RAM.
XIP během bootování
Typicky je zavaděčem první fáze program XIP, který je propojen s spuštěním na adrese, na které jsou čipy flash mapovány při zapnutí, a obsahuje minimální program pro nastavení systémové paměti RAM (což závisí na komponentách použité na jednotlivých deskách a nelze je dostatečně zobecnit, aby mohla být správná sekvence vložena do hardwaru procesoru) a poté načte bootloader druhého stupně nebo OS jádro do RAM.
Během této inicializace nemusí být k dispozici zapisovatelná paměť, takže všechny výpočty musí být prováděny v registrech procesoru. Z tohoto důvodu mají zavaděče první fáze tendenci být psány v jazyce assembleru a dělají jen minimum, aby poskytly normální prostředí pro spuštění dalšího programu. Některé procesory buď vloží malé množství SRAM do samotného čipu,[1] nebo povolit použití vestavěné mezipaměti jako RAM,[2] usnadnit psaní tohoto zavaděče první fáze pomocí jazyka vysoké úrovně.
U jádra nebo bootloaderu adresní prostor obecně je přiřazeno interně, takže pro použití XIP pro ně stačí instruovat linkera, aby umístil nemodifikovatelná a upravitelná data do různých rozsahů adres a poskytl mechanismus pro kopírování upravitelných dat do zapisovatelné paměti před spuštěním jakéhokoli kódu který předpokládá, že k datům lze přistupovat normálně. To lze provést jako součást předchozí fáze nebo v malém segmentu kódu na začátku programu.
Pokud je adresní prostor přiřazen externě, například v aplikačním programu spuštěném v systému, který neposkytuje virtuální paměť, kompilátor potřebuje přístup ke všem upravitelným datům přidáním posunutí ukazatele na soukromou kopii datové oblasti. V tomto případě je externí zavaděč zodpovědný za nastavení oblastí paměti specifické pro instanci.
BIOS a UEFI použijte XIP k inicializaci hlavní paměť.
XIP jako souborový systém
XIP klade na souborové systémy požadavky, které je často obtížné splnit. V systémech bez a tabulka stránek, celý soubor musí být uložen v po sobě jdoucích bajtech a nesmí být fragmentován, zatímco souborové systémy založené na flash často usilují o distribuci dat do sektorů flash chipu, které mají nejméně cyklů mazání a vyrovnat opotřebení na čipu, což prodlužuje jeho životnost.
Všechny tyto komplikace a kompromis rychlosti znamenají, že XIP se obecně používá pouze pro bootloadery první fáze nebo když je RAM extrémně málo. Zejména druhá až čtvrtá generace herních konzolí spojuje Kazeta ROM adresa a datová sběrnice na adresu konzoly,[3] který umožňuje (například) Atari 2600 pracovat pouze s 128 bajty RAM v jeho rozhraní joysticku IC.
Relativně nový souborový systém pro Linux, tzv AXFS (Pokročilý systém souborů XIP), si klade za cíl překonat některé nedostatky spojené s XIP, zejména pokud jde o provádění na místě uživatelský prostor aplikace. Umožňuje například rozdělit spustitelný binární soubor do „oblastí XIP“, čímž se zabrání omezení fragmentace, které bylo uvedeno výše.
A NetBSD implementace je také ve vývoji.[4]
Viz také
Reference
- ^ Samsung S3C2416X má na systémové sběrnici k dispozici 64 kB integrované paměti SRAM
- ^ Broadcom BCM2835 používá mezipaměť úrovně 2 jako RAM zavaděče před inicializací SDRAM
- ^ US patent 4485457A „Richard K. Balaska, Robert L. Hunter a Scott S. Robinson,„ Paměťový systém včetně paměti RAM a ROM s možností přepínání stránek “, vydaná 27. 11. 1984, přidělená společnosti CBS Inc.
- ^ Uebayashi, Masao (04.04.2010). „podpora eXecute-in-place (XIP) pro NetBSD“ (PDF). BSDCan.
externí odkazy
- Bird, Tim R. (2004). „Metody ke zlepšení doby spouštění v systému Linux“ (PDF). Ottawa Linux Symposium.
- Hulbert, Jared (2008). „Představujeme pokročilý systém souborů XIP“ (PDF). Ottawa Linux Symposium.
- Wilshire, Phil (2002-08-28). „přehled eXecute In Place (XIP)“. uCdot. Archivovány od originál dne 2007-10-20. Citováno 2007-09-25.
- Wellhöfer, Sören (2009-09-17). „Application eXecute-In-Place (XIP) with Linux and AXFS“. Citováno 2009-09-17.
- „Konfigurovat Linux pro XIP (provádění na místě) na PowerPC“. Softwarové inženýrství DENX.
- „Jádro XIP“. Integrovaná Linux Wiki.
- „Linux Application XIP“. Integrovaná Linux Wiki.
- "Spustit na místě ovladač systému souborů - xip2fs". Linux pro S / 390.