Бінарний переклад

У комп'ютерних науках, бінарний переклад — це форма бінарної перекомпіляції, при якій послідовності операторів перекладаються з вихідного набору інструкцій на цільовий набір інструкцій. У деяких випадках, наприклад, при симуляції набору команд, цільовий набір команд може бути таким самим, як вихідний, забезпечуючи функції тестування та налагодження, такі як трасування команд, умовні точки зупинки та виявлення гарячих точок.

Два основних типи цього процесу — це статичний та динамічний бінарний переклади. Переклад може бути виконаний в апаратному забезпеченні[1] (наприклад, за допомогою схем в ЦП) або в програмному забезпеченні[2] (наприклад, за допомогою двигунів виконання, статичних рекомпіляторів або емуляторів).

Використання

Бінарний переклад використовується у випадках, коли відсутня бінарна версія для цільової платформи, немає вихідного коду для компіляції для цільової платформи, або інші труднощі щодо компіляції[3] початкового коду для цільової платформи.

Статично перекомпільовані бінарні файли[4] потенційно працюють швидше, ніж відповідні емульовані бінарні файли, оскільки відсутні накладні витрати на емуляцію. Це схоже на відмінність у продуктивності між інтерпретованими та скомпільованими програмами загалом.

Статичний бінарний переклад

Перекладач, який використовує статичний бінарний переклад, має на меті конвертувати весь код виконуваного файлу у код, який працює на цільовій архітектурі, не запускаючи код спочатку, як це робиться в динамічному бінарному перекладі. Це дуже складно зробити правильно, оскільки не весь код може бути виявлений перекладачем. Наприклад, деякі частини виконуваного файлу можуть бути доступні лише через непрямі переходи, значення яких відомі тільки під час виконання.

Один з таких статичних бінарних перекладачів використовує універсальну технологію peephole-супероптимізатора (розроблену Соравом Бансалом та Алексом Ейкеном зі Стенфордського університету), щоб виконувати ефективний переклад між можливо багатьма початковими та цільовими парами зі значно низькими витратами на розробку та високою продуктивністю цільового бінарного файлу. У експериментах із перекладом з PowerPC на x86, деякі бінарні файли навіть перевершили відповідні нативні версії, але в середньому вони працювали зі швидкістю двох третин від нативної швидкості.

Приклади статичного бінарного перекладу

Honeywell створив програму під назвою Liberator для їх комп'ютерів серії Honeywell 200, яка могла перекладати програми для комп'ютерів серії IBM 1400 у програми для серії Honeywell 200.

У 2014 році була згенерована версія відеогри StarCraft 1998 року під архітектуру ARM за допомогою статичної перекомпіляції[5] та додаткової зворотного проєктування оригінальної версії x86. Спільнота портативної консолі Pandora була здатна самостійно розробити необхідні інструменти та успішно виконати такі переклади кілька разів.

Наприклад, у 2014 році було згенеровано успішну статичну перекомпіляцію x86 до x64 для процедурного генератора ландшафту відеогри Cube World.

Іншим прикладом є статично перекомпільована версія відеогри Super Mario Bros. з NES до x86, яка була згенерована з використанням LLVM у 2013 році.

У 2004 році Скотт Елліот та Філліп Р. Гатчінсон у Nintendo розробили інструмент для генерації коду "C" з бінарного коду Game Boy, який потім можна скомпілювати для нової платформи та зв'язати з бібліотекою апаратного забезпечення для використання в системах авіакомпаній.

У 1995 році Норман Ремзі в Bell Communications Research та Мері Ф. Фернандез з кафедри комп'ютерних наук у Принстонському університеті розробили The New Jersey Machine-Code Toolkit, який мав базові інструменти для статичного перекладу збірки.

Динамічний бінарний переклад

Динамічний бінарний переклад (ДБП) дивиться на коротку послідовність коду, зазвичай на порядок одного базового блоку, перекладає його та кешує отриману послідовність. Код перекладається лише під час його виявлення, коли це можливо, і команди переходу спрямовуються на вже перекладений та збережений код (мемоізація[6]).

Динамічний бінарний переклад відрізняється від простого емулювання (елімінуючи головний цикл зчитування-декодування-виконання емулятора, що є основною проблемою продуктивності), замінюючи його великими накладними витратами під час перекладу. Ці накладні витрати, сподіваються, будуть амортизовані в процесі багаторазового виконання перекладених послідовностей коду.

Більш розширені динамічні перекладачі використовують динамічну рекомпіляцію, де перекладений код інструментується для визначення того, які його частини виконуються багато разів, і ці частини оптимізуються агресивно. Ця техніка нагадує компілятор Just-in-time (JIT), і насправді такі компілятори[7] (наприклад, технологія Sun's HotSpot) можуть розглядатись як динамічні перекладачі віртуального набору інструкцій (байт-коду) до реального набору.

Приклади використання динамічного бінарного перекладу в програмному забезпеченні

  • Компанія Apple реалізувала динамічний емулятор перекладу для M68K-коду на своїх PowerPC-комп'ютерах Macintosh, який досяг дуже високого рівня надійності, продуктивності та сумісності. Це дозволило Apple випустити машини на ринок з частково нативною операційною системою, і кінцеві користувачі могли перейти на нову, швидшу умову, не ризикуючи своїми інвестиціями в програмне забезпечення. Частково через те, що емулятор був настільки успішним, багато частин операційної системи залишались емульованими. Повний перехід до нативної операційної системи PowerPC був здійснений лише з випуском Mac OS X (10.0) у 2001 році. (Середовище роботи "Classic" Mac OS X продовжувало надавати цю можливість емуляції на PowerPC Mac до Mac OS X 10.5.)
  • Mac OS X 10.4.4 для Mac-комп'ютерів на базі процесорів Intel впровадила динамічний перекладацький шар Rosetta[8], щоб спростити перехід Apple від обладнання на базі PPC до x86. Розроблена для Apple компанією Transitive Corporation, програмне забезпечення Rosetta є реалізацією рішення QuickTransit від Transitive.
  • QuickTransit протягом свого життєвого циклу також надавала підтримку перекладу SPARCx86, x86PowerPC та MIPSItanium 2.
  • DEC досягла подібного успіху зі своїми інструментами перекладу, щоб допомогти користувачам мігрувати з архітектури CISC VAX на архітектуру RISC Alpha.
  • HP ARIES (Automatic Re-translation and Integrated Environment Simulation) є системою динамічного бінарного перекладу програмного забезпечення, яка поєднує швидке інтерпретування коду з двофазовим динамічним перекладом для безшовного та точного виконання додатків HP-UX 9000 на серверах HP-UX 11i для HPE Integrity. Швидкий інтерпретатор ARIES емулює повний набір інструкцій PA-RISC без привілеїв без втручання користувача. Під час інтерпретації він моніторить патерн виконання додатка та перекладає на власний код Itanium тільки той код, який виконується часто. ARIES використовує двофазовий динамічний переклад, техніку, за допомогою якої перекладений код в першій фазі збирає інформацію про профіль виконання, яка використовується під час другої фази перекладу для додаткової оптимізації перекладеного коду. ARIES зберігає динамічно перекладений код у буфері пам'яті, названому кешем коду. Подальші посилання на перекладені блоки базового рівня виконуються безпосередньо у кеші коду та не потребують додаткової інтерпретації чи перекладу. Цілі перекладених блоків коду повертаються до кешу коду, щоб забезпечити виконання коду в кеші більшу частину часу. Після емуляції ARIES видаляє весь перекладений код без змінення оригінального додатка. Двигун емуляції ARIES також реалізує емуляцію середовища, яка емулює системні виклики, доставлення сигналів, управління винятками, управління потоками, емуляцію HP GDB для налагодження та створення файлів ядра для додатка.
  • DEC створила бінарний перекладач FX!32 для конвертування додатків x86 в додатки для Alpha.
  • Wabi від Sun Microsystems включала динамічний переклад від x86 до SPARC інструкцій.
  • У січні 2000 року компанія Transmeta Corporation оголосила про новий дизайн процесора під назвою Crusoe. З FAQ (Часто задавані питання) на їх вебсайті,

Розумний мікропроцесор складається з апаратного ядра VLIW в як двигуна та програмного рівня під назвою програмне забезпечення Code Morphing. Програмне забезпечення Code Morphing діє як оболонка [...], перетворюючи або перекладаючи x86 інструкції на власні інструкції Crusoe. Крім того, програмне забезпечення Code Morphing містить динамічний компілятор та оптимізатор коду [...]. Результатом є збільшення продуктивності при мінімальному споживанні енергії. [...] Це дозволяє Transmeta розвивати апаратне ядро VLIW та програмне забезпечення Code Morphing окремо, не впливаючи на велику кількість програмних застосунків.

  • Корпорація Intel розробила та впровадила Шару виконання IA-32 — динамічний бінарний транслятор, створений для підтримки додатків IA-32 на системах, що базуються на Itanium, включений у Microsoft Windows Server для архітектури Itanium, а також у деякі версії Linux, включаючи Red Hat та Suse. Він дозволяв додаткам IA-32 працювати швидше, ніж вони працювали б в нативному режимі IA-32 на процесорах Itanium.
  • Dolphin (емулятор для консолей GameCube/Wii) виконує JIT рекомпіляцію коду PowerPC до x86 та AArch64.

Приклади динамічної бінарної трансляції в апаратурі

  • Процесори x86 від Intel, починаючи з Pentium Pro[9], транслюють складні інструкції CISC x86 на більш RISC-подібні внутрішні мікрооперації.
  • Nvidia Tegra K1 Denver транслює інструкції ARM за допомогою повільного апаратного декодера на його власні мікрокодові інструкції та використовує програмний бінарний транслятор для гарячого коду.

Див. також

Примітки

  1. Wikiwand - Апаратне забезпечення. Wikiwand. Процитовано 15 квітня 2023.
  2. Step by step: Програмне забезпечення. step.org.ua. Процитовано 15 квітня 2023.
  3. Компіляція. ВУЕ (укр.). Процитовано 15 квітня 2023.
  4. Python. Бінарні файли. Приклади роботи з бінарними файлами | BestProg. www.bestprog.net. Процитовано 15 квітня 2023.
  5. Статичне та динамічне лінкування: У чому різниця?. www.ranktracker.com (укр.). 4 квітня 2023. Процитовано 15 квітня 2023.
  6. Mammedov, Dadaş (16 серпня 2021). Мемоізація. www.wiki-data.uk-ua.nina.az (укр.). Процитовано 15 квітня 2023.
  7. Компілятор – UA5.org (укр.). Процитовано 15 квітня 2023.
  8. Mammedov, Dadaş. Rosetta. www.wiki-data.uk-ua.nina.az (укр.). Процитовано 15 квітня 2023.
  9. Intel Pentium Pro. www.elektronik-kompendium.de (de-DE) . Процитовано 15 квітня 2023.

Read other articles:

Bohemians Praha 1905Berkas:Bohemians 1905 logo.pngNama lengkapBohemians Praha 1905, a.s.JulukanKlokani (Kanguru)[1][2]Berdiri1905; 119 tahun lalu (1905)StadionĎolíček(Kapasitas: 5,000)KetuaAntonín PanenkaManajerJaroslav VeselýLigaLiga Pertama Ceko2022–234 dari 16Situs webSitus web resmi klub Kostum kandang Kostum tandang Musim ini Bohemians Praha 1905 adalah klub sepak bola profesional yang berbasis di Vršovice, Praha, Republik Ceko. Klub ini berkompetisi di...

 

Danta Gading terpahat di Istana Sa'dabad, Iran     Koordinat warnaTriplet hex#FFFFF0sRGBB    (r, g, b)(255, 255, 240)CMYKH   (c, m, y, k)(0, 0, 6, 0)HSV       (h, s, v)(60°, 6%, 100%)SumberX11B: Dinormalkan ke [0–255] (bita)H: Dinormalkan ke [0–100] (ratusan) Danta, semerdanta atau putih gading adalah suatu warna putih kekuning-kuningan yang mirip dengan warna gading gajah. Dalam Bahasa Inggris, warna ini (ivory) pertama kali tercatat seba...

 

Imamat 18Kemah Suci, Biblical illustrations, Sweet Media, 1984KitabKitab ImamatKategoriTauratBagian Alkitab KristenPerjanjian LamaUrutan dalamKitab Kristen3← pasal 17 pasal 19 → Imamat 18 adalah bagian dari Kitab Imamat dalam Alkitab Ibrani dan Perjanjian Lama di Alkitab Kristen. Termasuk dalam kumpulan kitab Taurat yang ditulis oleh Musa. Teks Naskah sumber utama: Masoretik, Taurat Samaria, Septuaginta dan Naskah Laut Mati. Pasal ini dibagi atas 30 ayat. Berisi peraturan mengenai...

KrrishPoster rilis teatrikalSutradaraRakesh RoshanProduserRakesh RoshanDitulis olehSanjay Masoomi(dialog)SkenarioSachin BhowmickRakesh RoshanAkash KhuranaHoney IraniRobin BhattCeritaRakesh RoshanPemeranHrithik RoshanPriyanka ChopraRekhaNaseeruddin ShahPenata musikLagu:Rajesh RoshanSkor latar belakang:Salim-SulaimanSinematograferSantosh ThundiyilPenyuntingAmitabh ShuklaDistributorFilmkraft Productions (I) Pvt. LtdTanggal rilis 23 Juni 2006 (2006-06-23) Durasi175 menitNegaraIndiaBaha...

 

بوزونمعلومات عامةصنف فرعي من جسيم كم جزء من نظرية النموذج العياري الكتلة 0 gigaelectronvolt per speed of light squared (en) سُمِّي باسم ساتيندرا ناث بوز العدد الكمي اللفي 1 الجسيم المضاد بوزون لديه النظير الفائق bosino (en) التفاعل جاذبية ممثلة بـ إحصاء بوز وأينشتاين النقيض فرميون تعديل - تعديل مصدر�...

 

Kubok Ukraïny 2004-2005Кубок України Competizione Kubok Ukraïny Sport Calcio Edizione 14ª Date dal 4 agosto 2004al 29 maggio 2005 Luogo  Ucraina Partecipanti 64 Risultati Vincitore Dinamo Kiev(7º titolo) Secondo Šachtar Semi-finalisti DniproKryvbas Statistiche Miglior marcatore Diogo Rincón (6) Gol segnati 210 Cronologia della competizione 2003-2004 2005-2006 Manuale La Kubok Ukraïny 2004-2005 (in ucraino Кубок України?) fu la 14ª edizio...

Infantry regiment of the Confederate States Army 6th Arkansas Infantry RegimentRegimental color of the Sixth Arkansas at the Old State House Museum in Little Rock, ArkansasActive1861–1865DisbandedMay 1, 1865Country Confederate StatesAllegiance ArkansasBranch ArmyRoleInfantrySizeRegimentNickname(s)Sixth ArkansasFacingsLight blueBattles American Civil War Battle of Rowlett's Station Battle of Shiloh Siege of Corinth Battle of Perryville Battle of Murfreesboro Battle of Liberty Gap B...

 

Malaysian politician Yang Berhormat Senator Dato' SriTi Lian KerJMN SSAP DSAP DIMP郑联科Deputy Minister of Youth and SportsIn office30 August 2021 – 24 November 2022MonarchAbdullahPrime MinisterIsmail Sabri YaakobMinisterAhmad Faizal AzumuPreceded byWan Ahmad Fayhsal Wan Ahmad KamalSucceeded byAdam AdliConstituencySenatorDeputy Minister of National UnityIn office5 May 2020 – 16 August 2021MonarchAbdullahPrime MinisterMuhyiddin YassinMinisterHalimah Mohamed SadiquePrec...

 

English cricket club This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Hampshire County Cricket Club – news · newspapers · books · scholar · JSTOR (July 2021) (Learn how and when to remove this message) Hampshire County Cricket ClubOne Day nameHampshireTwenty20 nameHampshire Hawks[1]PersonnelCaptainJam...

Strike Fighter Squadron 103Active1 May 1952 - PresentCountry United StatesBranch United States NavyTypeFighter/AttackRoleClose air supportAir interdictionAerial reconnaissancePart ofCarrier Air Wing SevenGarrison/HQNAS OceanaNickname(s)Jolly RogersMascot(s)Ensign Jack Bones ErnieEngagementsOperation Desert ShieldOperation Desert StormOperation Southern WatchOperation Enduring FreedomOperation Iraqi FreedomOperation Inherent ResolveDecorationsSafety S Mutha Fighter Spirit Award...

 

English churchman Charles Talbot (26 October 1769 – 28 February 1823) was an English churchman, Dean of Exeter from 1802, and Dean of Salisbury from 1809.[1][2][3] Early life His parents were the Rev. George Talbot, son of Charles Talbot, 1st Baron Talbot of Hensol, and his wife Anne Bouverie, daughter of Jacob Bouverie, 1st Viscount Folkestone.[4] Career He became rector of Wimborne in 1794.[5] He served as Dean of Exeter from 1802, and Dean of Salis...

 

Sera sul viale Karl JohanAutoreEdvard Munch Data1892 TecnicaOlio su tela Dimensioni84,5×121 cm UbicazioneMuseo d'arte di Bergen Sera sul viale Karl Johan (Aften på Karl Johan) è un dipinto a olio su tela del pittore norvegese Edvard Munch, realizzato nel 1892 e conservato al museo d'arte di Bergen. Storia del dipinto I primi accenni al tema dell'alienazione, magistralmente espressi in Sera sul viale Karl Johan, li troviamo già nel 1889. Nel diario personale di Munch, infatti, leggiam...

2000 World Championship Wrestling pay-per-view event SuperBrawl 2000UK VHS cover featuring Sid Vicious, Scott Hall and Jeff JarrettPromotionWorld Championship WrestlingDateFebruary 20, 2000CityDaly City, California[1]VenueCow PalaceAttendance8,569Tagline(s)A Three-Way Dance for Heavyweight Gold!Pay-per-view chronology ← PreviousSouled Out Next →Uncensored SuperBrawl chronology ← PreviousIX Next →Revenge SuperBrawl 2000 was the tenth SuperBrawl professional ...

 

Bredbury and Romiley are towns in the Metropolitan Borough of Stockport, Greater Manchester, England. The towns, together with the area of Woodley and the village of Compstall and the surrounding countryside, contain 43 listed buildings that are recorded in the National Heritage List for England. Of these, two are listed at Grade II*, the middle grade, and the others are at Grade II, the lowest grade. Most of the oldest listed buildings that date from before the Industrial Revoluti...

 

UK laws on employment Children at work in a cotton mill (Mule spinning England 1835)[a] The Factory Acts were a series of acts passed by the Parliament of the United Kingdom beginning in 1802 to regulate and improve the conditions of industrial employment. The early Acts concentrated on regulating the hours of work and moral welfare of young children employed in cotton mills but were effectively unenforced until the Act of 1833 established a professional Factory Inspectorate. The regu...

Carolin Emcke, Frankfurter Buchmesse 2016 Carolin Emcke (* 18. August 1967 in Mülheim an der Ruhr) ist eine deutsche Autorin und Publizistin. Im Jahr 2016 wurde sie mit dem Friedenspreis des Deutschen Buchhandels ausgezeichnet. Inhaltsverzeichnis 1 Leben 2 Werk 3 Auszeichnungen 4 Schriften 5 Interviews 6 Weblinks 7 Einzelnachweise Leben Ihre Eltern sind Manfred Emcke, Industriemanager (unter anderem Vorwerk und Reemtsma) und Berater (unter anderem für das Bundesministerium der Verteidigung)...

 

Putri Pariwisata Jawa TimurLogo Putri Pariwisata IndonesiaPembuatJohnnie SugiartoNegara asal Jawa Timur, IndonesiaRilis asliRilis2008 –Sekarang Putri Pariwisata Jawa Timur merupakan kontes kecantikan berskala regional yang bertujuan memilih delegasi provinsi Jawa Timur pada Putri Pariwisata Indonesia. Terhitung sejak keikutsertaan edisi 2008, Jawa Timur belum pernah memenangkan Putri Pariwisata Indonesia. Prestasi tertinggi Putri Pariwisata Jawa Timur yakni Runner-up 1, yang dira...

 

Cet article est une ébauche concernant une unité ou formation militaire française. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. 4e Régiment d'Hélicoptères de Commandement et de Manœuvre Insigne du 4e Régiment d'Hélicoptères de Commandement et de Manœuvre Création 1er juillet 1985 Dissolution 30 juin 1999 Pays France Branche Armée de Terre Type Régiment d'hélicoptères Fait partie de 4e division...

摂津峡公園 分類 風致公園所在地 日本大阪府高槻市原・塚脇座標 北緯34度52分40.7秒 東経135度35分13.3秒 / 北緯34.877972度 東経135.587028度 / 34.877972; 135.587028座標: 北緯34度52分40.7秒 東経135度35分13.3秒 / 北緯34.877972度 東経135.587028度 / 34.877972; 135.587028面積 42.58ヘクタール開園 1956年駐車場 下の口駐車場・かじか荘駐車場 共1日1,000円公式サイト �...

 

朝香宮鳩彦王 朝香宮 続柄 久邇宮朝彦親王第8王子 崇光天皇男系16世孫 霊元天皇女系7世孫身位 王 → (皇籍離脱)敬称 殿下 → (皇籍離脱)出生 1887年10月2日死去 (1981-04-12) 1981年4月12日(93歳没)埋葬 豊島岡墓地配偶者 鳩彦王妃允子内親王(富美宮允子内親王)子女 鍋島紀久子(紀久子女王)孚彦王音羽正彦(正彦王)大給湛子(湛子女王)父親 久邇宮朝彦親王母親 �...