LINUX.ORG.RU

Энтузиасты дизассемблировали микрокод i386 и создали открытый CPU z386

 , , , z386,

Энтузиасты дизассемблировали микрокод i386 и создали открытый CPU z386

6

5

Энтузиасты смогли успешно извлечь и дизассемблировать микрокод процессора Intel 80386, который из-за отсутствия документации считался «чёрным ящиком». Бинарный образ микрокода был воссоздан с привлечением AI по фотографиям кристалла в высоком разрешении, а логика работы разобрана через трассировку соединений на кристалле. Постепенно были определены структура микрокоманд (μ-ops), поля, порядок исполнения и маркеры конца инструкций. Наработки проекта опубликованы на GitHub как общественное достояние.

Выявлено, что в CPU 80386 каждая инструкция полностью исполняется через микрокод, в то время как в 8086 и современных процессорах часть инструкций обрабатывается напрямую. Кроме того, в отличие от процессоров 8086, в 80386 микрокод не реализует алгоритмы напрямую, а в основном настраивает аппаратные ускорители (умножитель, делитель, быстрый сдвиг, PTU (Protection Test Unit)).

В ходе исследования также была обнаружена возможная проблема с безопасностью при обработке битовой карты прав доступа к вводу/выводу (IO permission bitmap): при 4-байтовом обращении к портам проверялись биты прав доступа только для первых 3 байтов, а доступ к 4-му байту не проверялся, что теоретически допускало обращение к аппаратным регистрам, доступ к которым должен был быть запрещён.

На основе опубликованного микрокода разработан открытый CPU z386, реализованный на языке SystemVerilog и работающий с использованием FPGA. Вместо реализации каждой инструкции в форме отдельного RTL (wikipedia.org) (Register-transfer level) в z386 реализованы аппаратные структуры, которыми управляет оригинальный микрокод. Производительность подготовленной реализации соответствует быстрому 386 ПК (~70MHz). Под управлением z386 удалось успешно запустить DOS 6/7, DOS/4GW, DOS/32A и игры, такие как Doom и Cannon Fodder.

>>> Подробности на opennet



Проверено: dataman ()
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от lenin386

Никто не пейсал ни в какие п0рты

Угадай, откуда это?


.model tiny
.code
outb  macro v1,v2
       mov   al,v1
       out   dx,al
       mov   al,v2
       inc   dx
       out   dx,al
       dec   dx
endm

outv    macro   v
        mov     al,v
        out     dx,al
endm

      org       100h
b:    cli
      mov       dx,3C4h
      outb      0,1

      mov       dx,3D4h
      outv      23
      inc       dx
      in        al,dx
      and       al,127
      out       dx,al
      dec       dx

      outv      17
      inc       dx
      in        al,dx
      and       al,127
      out       dx,al

      mov       dx,3CCh
      in        al,dx
      or        al,192
      mov       dx,3C2h
      out       dx,al

      mov       dx,3D4h

      outb      6,11
      outb      7,62
      outb      9,79
      outb      16,234
      outb      17,140
      outb      18,223
      outb      21,231
      outb      22,4

      outv      17
      inc       dx
      in        al,dx
      or        al,128
      out       dx,al
      dec       dx

      outv      23
      inc       dx
      in        al,dx
      or        al,128
      out       dx,al
      mov       dx,3C4h
      outb      0,3

      sti
      mov ax,40h
      mov ds,ax
      mov byte ptr ds:[84h],29
      retn

end   b

drfaust ★★★★★
()
Ответ на: комментарий от Fatalist

в чем секрет такой эффективности эпловских M процессоров?

Фиксированная длина инструкций+сверхширокий декодер.

в теории на x86 ядрах что то подобное можно сделать?

Можно, но сложно и в целом не особо нужно.
Сложно из-за переменной длины инструкций, и их кодирования, как бык поссал.
Не особо нужно из-за того, что есть мюоп кэш.
Сейчас в Nova Lake Intel попытается сделать декодер такой же или почти такой же ширины.

GAMer ★★★★★
()
Ответ на: комментарий от VIT

чтобы всюду, где можно, был фиксированный адрес перехода.

Вот для этого и придуманы сегменты, и именно чтобы это было, я предпочитаю 16-битный оффсет от базового начала сегмента.

Сегменты-то при чём? Достаточно не выполнять код по вычисленному адресу. Когда-то вычислимый goto был страшным грехом, а теперь ООП заставляет делать аналогичный изврат чуть ли не в каждой строке кода. Если компилятор может вывести реальный адрес, тогда Эльбрус работает быстро:

Base *g();

Base *b = new Derived();
b->f(); // это будет в 1 такт, тип b известен

g()->f(); // здесь неизвестно, какая f будет вызвана, возможна оптимизация только если у Base не больше двух наследников
monk ★★★★★
()
Ответ на: комментарий от VIT

Что такое «операция» в ваших терминах?

Ассемблерная команда с конкретными аргументами. Опкоды и микрооперации для Эльбруса неизвестны, компилятор работает переводя в ассемблерные команды. Но для любой сгенерированной команды известно время выполнения в тактах.

http://elbrus.ivk.ru/pub/docs/elbrus_prog/1.0/html/chapter6.html

Для работы с памятью в расчёте используются такты доступа к L1. Если есть возможность что-то сделать во время ожидания данных из памяти, можно добавить ветку с rbranch.

monk ★★★★★
()
Ответ на: комментарий от VIT

для этого есть блок, который позволяет выполнять code versioning, фактически это реализуется совместно со speculative execution, но нельзя делать версии в спекулятивном коде (очевидно, конфликт аппаратуры).

Я знаю, как это в Интелах. Объясняю, почему это намного сложнее сделать на VLIW какой-нибудь явной ассемблерной командой. В Эльбрус-8В7 сделали предсказатель переходов, чуть тормоза от такой комбинации кода уменьшит.

monk ★★★★★
()
Ответ на: комментарий от Somebody

Утечки, плюс оно в этом смысле - наследие отменённого Royal Core.

GAMer ★★★★★
()
Ответ на: комментарий от VIT

Сколько версий можно выполнять одновременно и разделяют ли версии код или спекулятивный код разный для каждой версии?

Есть ширина команды:

В ШК «Эльбрус» доступны:
6 арифметико-логических устройств (АЛУ) для операций:
  целочисленных (Int)
  вещественных (FP)
  сравнений (Cmp)
  чтения из памяти (LD)
  записи в память (ST)
  над упакованными векторами (Vect)
  деления и квадратного корня (Div/Sqrt);
1 устройство для операции передачи управления (СТ);
3 устройства для операций над предикатами (PL);
6 квалифицирующих предикатов (QP);
4 устройства для команд асинхронного чтения данных по регулярным адресам в цикле (APB);
4 литерала размером 32 бита для хранения константных значений (LIT).

То есть теоретически компилятор может параллельно выполнять 6 версий кода (по одному АЛУ на версию). Спекулятивный код разный, так как для разных версий будут задействованы разные регистры.

Спекулятивный код имеет те же операции, что и обычный, но особую обработку ошибок, аналогичную понятию poison в LLVM. То есть, пока значение не попадёт в обычный код из спекулятивного, ошибки запоминаются, но не обрабатываются.

monk ★★★★★
()
Ответ на: комментарий от VIT

Правда здесь тоже не понятно. Он говорит, что ассемблер не занимается распределением порядка инструкций. То есть, как в ассемблере напишешь, так и будет. Это типичный in-order. Ну здорово, последний раз я такую экзотику видел в IBM Power 6 очень давно.

Это in-order, но с дополнительными вариантами команд для спекулятивного выполнения. То есть, если в Интел аппаратный планировщик раскидывает по исполнительным устройствам операции в пределах окна чтения, то в Эльбрусе это делает компилятор заранее. Соответственно, аппаратный планировщик не нужен, устройство процессора упрощается.

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от VIT

Грубо говоря, у Эльбрусов нет микрокода и все операции уровня микрокода выполняются на этапе компиляции, а не во время исполнения, как на семействе x86. (https://0x1.tv/%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BF%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%A1%D0%9F%D0%9E_%D0%BD%D0%B0_%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81_(%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%A1%D0%B0%D0%B2%D1%87%D0%B5%D0%BD%D0%BA%D0%BE,_OSSDEVCONF-2019))

monk ★★★★★
()
Ответ на: комментарий от drfaust

Да мне слюной плевать, что это и откуда. Программы, выполненные через BIOS, работают и сегодня, а этому испражнению кул хакера место в унитазе. А вообще, больше похоже на неудачный дизасм, или, бред.

lenin386 ★★★★★
()
Последнее исправление: lenin386 (всего исправлений: 2)
Ответ на: комментарий от cobold

Actually, one of the key decision points for the instruction set was the memory management. How are we going to do this thing? We got these segments. We need to carry those to be compatible, but we want a flat 32-bit address space. And that actually involved quite a bit of mental energy in the early stages, and trying to get that resolved right was an interesting challenge. And in the end we ended up with something unique, which is inventing a third address space, kind of an intermediate address space between the virtual space that the machine instructions would use and the physical space that went out to memory. We had this idea of a linear address space. So the segmentation would transpose the virtual address, two parts, into a linear address of four gigabytes, and then we would apply paging to that - we would then apply that into a paging algorithm and come up with a physical address. So that was really a second key aspect that made the product successful. First of all we had the full 32-bit flat address space. It was available to you. It was easy to set up the segments to ignore them, which I think was the approach adopted by most software. The segments were still there available for any kind of operating system that wanted to use the smaller compartments or to compartmentalize things differently

luke ★★★★★
()
Ответ на: комментарий от kirill_rrr

Ноутбуки и мобилки должны жить от батареи неделями не выключаясь.

Для того чтобы телефон работал неделю - надо не делать его корпус настолько тонким что его неудобно держать в человеческой руке. Тогда в этом корпусе можно будет разместить аккумулятор большей емкости. И такие телефоны даже выпускаются и продаются. Но видимо массовых пользователей устраивает заряжать айфон каждые день поэтому они покупают айфоны. А производителя устраивает экономия материалоемкости.

А например я в качестве носимого компа пользуюсь не телефоном, а большим 10-дюймовым планшетом Lenovo YT3-X50M и он вполне работает несколько дней на одной зарядке при моих типичных сценариях использования (не игры).

watchcat382 ★★
()
Ответ на: комментарий от saufesma

Можно сказать что и беру, если очень существенную экономию затрат можно считать «взятием денег». Уже давно убедился что «брендовые» изделия мне не нужны в абсолютном большинстве случаев. И я поддерживаю своими деньгами китайскую промышленность. Десктопные процессоры - это пока одно из немногих исключений. В носимых устройствах процессоры уже давно китайские.

watchcat382 ★★
()
Ответ на: комментарий от madcore

в два раза больше рон, кроме того, что они сами в два раза больше подчищенный и оптимизированный набор инструкций

Технически при желании никто не мешает совместить это с сегментным механизмом защиты памяти.

ты об этом ничего не знаешь

Я очень хорошо знаю о количестве эксплойтов, связанных с переполнением всяких буферов и передачей управления в непредусмотренные места. Это и говорит о том, что без использования сегментного механизма аппаратная защита памяти работает объективно плохо. Процессор не должен позволять такие ошибки сам, на уровне железа, не надеяться что программисты напишут безошибочный код.

watchcat382 ★★
()
Ответ на: комментарий от madcore

Да всё рабочее. Просто мешает другая концепция - «тяп-ляп и в продакшн». Именно так сейчас делается большинство софта.

watchcat382 ★★
()
Ответ на: комментарий от windprop2

без освоения западных наномикронов не получить ни производительности

Как я уже выше говорил, производительность процов сейчас (и уже довольно давно) уже избыточна для большинства пользователей и их типичных задач. Вы ведь наверно тоже не на топовом Xeon сейчас сидите, а на чем-нибудь значительно попроще.

Насчет энергопотребления - ну я бы не сказал что китайские SoC в смартфонах и планшетах так уж много жрут. А вот планшеты на интеле с его передовыми нанометрами как раз прожорливы, да и вообще как-то мало распространены.

watchcat382 ★★
()
Ответ на: комментарий от cobold

в 386 оно было сделано чертовски медленно

В самых первых 386 - всё было медленно потому что у них не было эффективного кэширования. У последних 386 (и всех последующих) оно уже было.

оно не задумывалось для большого количества сегментов

Не так уж много программ где не хватит 8К сегментов даже если в них буквально каждый буфер пихать который переполниться может. А там где не хватит - можно выделить один или несколько «общих» сегментов под буферы - всё равно это поможет от вредных последствий при попытке переполнения. Поврежденный соседний буфер - это намного меньшее зло чем поврежденный код или вероятность использования в качестве вредоносного кода тех данных которые за границу буфера записались.

watchcat382 ★★
()
Ответ на: комментарий от Andrew-R

Этим не гордится надо, а прекращать как можно скорее.

Согласен с вами. Никто, собственно, и не гордится. Я лишь констатировал общемировую тенденцию производства дешевых вещей и сделал предположение что с процами будет так же. Точнее - уже есть. Вы же мне это не с компа на топовом Xeon пишете. Кстати, сильно греющиеся процы на сильно тонком техпроцессе - менее долговечны и скорее превращаются в мусор.

watchcat382 ★★
()
Ответ на: комментарий от KivApple

если захотеть

Вот с этим и проблема - потому что в моде концепция «тяп-ляп и в продакшн».

можно софт и санитайзерами обмазать и он будет ловить переполнения буферов и без сегментов.

Да, но аппаратные проверки всё же работают быстрее программных. Вон, Ada (компилятор gnat) и так даже без санитайзеров делает проверки при доступе к массивам.

watchcat382 ★★
()
Ответ на: комментарий от lenin386

а этому испражнению кул хакера место в унитазе.

Этот «кул хакер» называется Ritlabs, а код взят из исходников ихнего Dos Navigator, которые они сами и выложили открытый доступ, когда сосредоточились на почтовике TheBat. Интересно, а кто тогда для тебя не «кул хакер»? Такое ощущение, что ты даже представления не имеешь что такое писать под DOS.

drfaust ★★★★★
()
Ответ на: комментарий от saufesma

А вот если бы ты взял детальки отсюда

Я готов допустить что микроконтроллер Амур лучше чем китайские клоны stm32, но посмотрите на цену - она отличается почти ровно в ДЕСЯТЬ раз: https://www.ozon.ru/product/mikrokontroller-mik32-amur-k1948vk015-018-3-sht-1956051578/ https://www.ozon.ru/product/otladochnaya-plata-blue-pill-stm32f103c8t6-na-baze-stm32-72-mgts-analog-arduino-arduino-1538752540/ Надеюсь понятно что я как частное лицо выберу. Даже если характеристики будет несколько хуже. Вот тоже самое и с китайскими процессорами будет. Да, они будут хуже топовых Xeon, но при этом в разы дешевле их.

для получения изделий превосходящих по качеству китайские

Так в том-то дело что мне ДОСТАТОЧНО качества китайских изделий.

«Вчера на улице ко мне подошла старуха и предложила купить вечную иглу для примуса. Вы знаете, Адам, я не купил. Мне не нужна вечная игла, я не собираюсь жить вечно.» (С) О.Бендер

А еще есть такой момент что большинству людей предпочтительнее купить «прямо сейчас» и дешево, чем ожидать доставки неделями, да еще и переплатить в разы, как это нередко бывает с брендовыми товарами и особенно с запчастями к ним. Какая-нибудь пластиковая фиговина будет ехать с другой стороны глобуса месяца два и стоить в пересчете на ее вес сильно дороже золота.

watchcat382 ★★
()
Ответ на: комментарий от drfaust

Под DOS пишут с использованием прерываний DOS и BIOS, а не эта вот мотня не читаемая. DOS Navigator - программа ещё более-менее полезная, но тхе бат - мусор, абсолютно бесполезный и безпотентный. Дельфи-подделка для имбецилов-вантузятников, тьфу. Ну, и что они выложили эти портянки? Как и где это можно использовать? Никак и нигде.

lenin386 ★★★★★
()
Последнее исправление: lenin386 (всего исправлений: 2)
Ответ на: комментарий от luke

CHERI, arm Morello по-твоему шутка?

А это где-нибудь реализовано в серийных изделиях, а не demonstartor board? Которые к тому же появились только в 2022 году (судя по второй ссылке). А в 386 сегментная защита памяти была аж почти четыре десятка лет назад. И существует софт которые ее использует. Хотя те же дос-экстендеры и были дико дорогими. Например которым пользовался я - стоил шесть с чем-то сотен баксов (понятно что у меня он был пиратский). Так что по факту сейчас имеем то что имеем с отсутствием нормальной защиты памяти на сколько-нибудь распространенных risc-v и arm, и неиспользование ее даже линуксом на интеле.

watchcat382 ★★
()
Ответ на: комментарий от sovety_ot_sonika

В архиве исходников z386 нет лицензии в корне. Её нет там нигде.

Что касается Вашего вопроса, то это спорный момент. Нужно мнение юриста. Если интересно, то почитайте обсуждение под моей вчерашней статьей. https://habr.com/ru/articles/1039276/

EvAn
()
Последнее исправление: EvAn (всего исправлений: 1)
Ответ на: комментарий от lenin386

Очевидно, писали, если был нужен функционал выходящий за пределы того что предоставлял int 0x21 и BIOS. Банально для работы со звуковой картой игры таскали с собой свои собственные драйвера. Очевидно, для какого-то нестандартного форматирования дискет тоже нужен был кастомный драйвер, который был встроен в файловый менеджер.

KivApple ★★★★★
()
Ответ на: комментарий от KivApple

Звук под DOS программировали через промежуточные драйверы, Miles Sound System. Так получиось, что погоду на рынке задавала некая Creative - известные рукожопы, у которых до сих пор одно только глюкло. Поэтому, вот так. Тем не менее, в порты никто ничего не писал, рыночек порешал и нашёл выход. Нестандартное форматирование дискет - блажь и стрельба по ногам. Ну, и как теперь читать эти ваши дискеты? 900.com, дети, блин.

lenin386 ★★★★★
()
Последнее исправление: lenin386 (всего исправлений: 3)
Ответ на: комментарий от Wapieth

Спецификация его системы команд есть, для qemu ничего больше и не нужно. Спецификация его электрического внешнего интерфейса тоже есть (она нужна производителям материнок). А вот спецификации его внутреннего устройства не было, так же как нет таких спецификаций и для современных процов - думаю это коммерческая тайна.

firkax ★★★★★
()
Ответ на: комментарий от drfaust

Я так трассировал переключатель VESA видеорежима в int 10h на nvidia riva tnt2, записывал все out которое оно делало, затем можно было эту запись повторить и видеорежим так же переключался, уже без обращений к биосу. Но там была сильно длиннее последовательность.

firkax ★★★★★
()
Ответ на: комментарий от lenin386

Очевидно, при отсутствии железа с дисководом, дискеты читать не нужно. Если это не долгосрочный бекап (который вообще не надо делать на дискетах даже если бы технологии стояли на месте - они слишком ненадёжны даже со стандартным форматированием и легко умирают), а горячие данные, то по мере развития технологий они мигрировали с дискет на CD, DVD, а потом и на флешки.

А если это какая-то раритетная дискета с раритетными данными, то ради такого дела можно и надыбать старый комп с DOS и дисководом и поставить туда нужный софт.

KivApple ★★★★★
()
Ответ на: комментарий от firkax

Кул хакерство, из палаты мер и весов. И зачем? Чтобы показать, как ты крут? Единственный _нормальный способ переключить режим видеокарты - Vesa и VGA BIOS. Твоё пейсание в порты отлетит на другой видеокарте, и может, и на такой же, с виду, кто знает?

lenin386 ★★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)
Ответ на: комментарий от KivApple

Драйdер 900.com достигал результатов благодаря тому, что _некоторые дисководы позволяли позиционировать голову на 86 дорожек, вместо 80 по стандарту, и позволяли туда писать. А на нормальных дисководах стоял ограничитель, физический. И вот когда нормальный дисковод пытался позиционировать на дорожку за ограничителем, раздавался такой громкий треск долбежа головы об ограничитель. Это есть натуральное вредительство. Детский сад, штаны на лямках.

lenin386 ★★★★★
()
Ответ на: комментарий от watchcat382

А это где-нибудь реализовано в серийных изделиях?

А тебе лично для чего это надо? На производство чипов деньги нужны, и много. А так бери хоть CHERI CVA6 RTL и синтезируй для genesys 2. По-моему есть даже варианты, которые на Arty A7-100 поместятся.

неиспользование ее даже линуксом на интеле

Ну а вот под RISC-V CHERI Linux вполне уже пускается. В CHERI BSD даже хромиум запускали.

luke ★★★★★
()
Ответ на: комментарий от EvAn

А, я перепутал репы. Сейчас увидел про какой архив речь, вопросов нет.

sovety_ot_sonika
()
Ответ на: комментарий от lenin386

Затем, чтобы посмотреть как можно переключить режим без биоса, который не всегда удобно вызывать. А другая видеокарта мне и не была нужна.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от lenin386

Не видел ограничителя на 80-й дорожке, видимо это была редкость. 86 может и не всегда, но 81-82 наверно все поддерживали.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от watchcat382

У «телефонов» на арм с этим нет серьёзных проблем кроме дизайнеров корпусов. Но вот у х86/винда/линь устройств - есть и очень серьёзные. Во первых процессоры/память/материнки имеют совершенно неадекватные потребления в idle. Во вторых операционки не умеют как следует экономить заряд даже если процессоры умеют околонулевой idle, на арм например. Андроид этот недостаток как то обошёл, но обычный линукс то нет! Мне видится замкнутый круг: ОС не пилят т.к. нет массового железа, железо не улучшают в эту сторону т.к. не будет работать в винде. В итоге планшет в idle с выключенным экраном и отключенной сетью тратит где то 1 Втч в сутки, а х86 ноутбук в суспенде 5-10 Втч. Он при этом даже не включен!

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 2)
Ответ на: комментарий от luke

Ага, речь про этот кусок. Тут неоднозначное высказывание. smaller по сравнению с чем? С полный 4Гб адресным пространством, о котором он говорит в предыдущем предложении или с 4 КБ страницей. На мой взгляд все же первое, так как чтобы это работало с приемлимой производительностью для второго случая, нужно было сделать кэш дескрипторов сегментов внутри процессора более объемным. С другой стороны они таки зачем-то увеличили количество сегментных регистров по сравнению с старой прямолинейной схемой - по одному сегменту для кода и стека и два сегмента для данных. То есть какая-то задумка насчёт сегментов у них была, но не похоже что именно такая что на каждый буфер/переменную отдельный сегмент

cobold ★★★★★
()
Ответ на: комментарий от praseodim

а вот фото советского 286-го нигде не видно. Он так и не пошел в серию

Я учился в Минске в начале нулевых в ВУЗе и специальности - основном поставщике кадров для Интеграла да и жил в двух остановках от него. С тех пор прошло чуть больше 10 лет и городские легенды про былое величие рассказывались чуть ли не на каждой лекции.

Так вот рабочих белорусских интеграловских 286 было выпущено всего несколько десятков штук, при браке под 90%. Причём были проблемы со стабильностью на заявленных частотах и напряжениях и приходилось и те рабочие образцы притормаживать.

Поэтому смысла уже в это вкладываться и допиливать было уже никакого, в то время как стало возможным покупать импортные клоны в любых количествах.

OSBuster ★★
()
Ответ на: комментарий от watchcat382

А почему ты хочешь защищать именно буферы, а не переменные в целом? От повреждения кода вроде как придумана защита давно - снимаешь со страницы бит записи и всё

cobold ★★★★★
()
Ответ на: комментарий от VIT

Начнём с начала - что вы называете «энергоэффективный процессор»

Энергоэффективность это способность делать работу тратя мало энергии. UVL версии core2, вообще не рассчитанные быть энергоэффективными, имеют лучший показатель инструкций на ватт. амд бульдозеры на том же техпроцессе 32нм, вышедшие через 2-3 года - аналогично. Причём не uvl и не из энергоэффективных линеек.

А в idle режиме ноутбучные атомы полностью и бесповоротно провалились из за чипсета и видеокарты. Ядра могли засыпать. Чипсет, причём внешний, не мог. ОС не знала что так нужно. В версиях для смартфонов где это устранили - там было почти прилично, но прям на глаз заметно что хуже чем arm.

чтобы процессор-under-test являлся по вашему определению «энергоэффективным».

Очевидно он должен дольше выполнять одну и ту же работу от батареи одиаковой ёмкости чем конкурент. И очевидно должен потребялть значителньо меньше энергии чем десктопные процессоры.

О чём эта софистика? Мы не +/- 5% с погрешносью в +/- 10% в зависимости от теста замеряем, речь идёт об изделиях, садивших 3-ячеечную батарейку за те же самые 2,5 часа что и целерон или амд-С/Е, но всё это время дававших в 2-3-4 раза меньшую производительность. Процессоры, не умевшие сбрасывать частоту и потребление с максимума дохоть куда нибудь. Вот реально, что 3 часа читая книгу, что 2,5ч непрерывной игры в Морровинд или Квейк (причём фпс достоен пеньтиум-М при том что его видеокарта на 3 поколения старше и имела 1 ядро вместо 2).

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от OSBuster

Так вот рабочих белорусских интеграловских 286 было выпущено всего несколько десятков штук, при браке под 90%. Причём были проблемы со стабильностью на заявленных частотах и напряжениях и приходилось и те рабочие образцы притормаживать.

Угу, ну примерно так я и представлял ситуацию, когда с drfaust спорил. А что там у вас слышно было про аналог 386-го? А то даже вон выше маркировку для него в каталоге нашли: Л1876ВМ1 - хоть один экземпляр был выпущен?

praseodim ★★★★★
()
Ответ на: комментарий от lenin386

Под DOS пишут с использованием прерываний DOS и BIOS

Ну я же говорю, что ты никогда не программировал под ДОС.

Знаменитая борландовская TurboVision - работает с портами и прямой записью в видео, иначе скорости даже текстовой отрисовки не добиться. Вся графика - исключительно порты и прямая запись в видео. Порты нужны что бы избежать артефактов при отрисовке(как графики) (отслеживается вертикальная и горизонтальная синхронизация - БИОС такой инфы не даёт).

Опять же - нужен доступ за пределы 1Мб (286й комп и выше и даже 8086 с платами расширения) - добро пожаловать в расширители ДОСа(DOS4GW (игрушка DOOM говорит спасибо), QEMM, майкрософтовый EMM386.exe), которые как раз и предоставляют DPMI-интерфейс в виде прерываний, потому что такой функционал просто не влазил в БИОС, и да, они работали как с контролёром прерываний, так и с DMA напрямую - никаких вызовов БИОС (потому как сами создавали эти обработчики). Хотя кому я объясняю... Ведь под ДОСом порты используют исключительно «кул хакеры».

drfaust ★★★★★
()
Ответ на: комментарий от firkax

там была сильно длиннее последовательность

DOS Navigator мог использовать разрешения, которых небыло у штатного BIOS, например 43 строки и т.п. в текстовом режиме. Этот код - как раз «врубалка» этих режимов.

drfaust ★★★★★
()
Ответ на: комментарий от EvAn

Если интересно, то почитайте обсуждение под моей вчерашней статьей. https://habr.com/ru/articles/1039276/

Вызывает вопросы утверждение, что если:

Даже если лицензия указана в README, LICENSE, COPYING в корне каталоге, вы всё-равно не можете заимствовать эти файлы в свои программные проекты.

Если указана лицензия на проект в целом, то она естественно принимается и для файлов проекта, если нет отдельной оговорки для отдельных файлов. Потому что иначе смысл указания лицензии пропадает. Да и нигде в законах нет требований писать лицензии в каждом файле. Тем более, что не всегда это возможно, например, если файлы бинарные (аудио, фото, видео в проекте).

Указание лицензии в каждом файле - это не требование закона и подозреваю даже не юридическая практика, а делается для удобства, чтобы не запутаться и не получить ситуацию, когда файл куда-то скопировали в другой проект с иной лицензией и тп. Наверное, ещё должно быть легче сортировать по лицензиям grep'ом

anonymous_incognito ★★★★★
()
Последнее исправление: anonymous_incognito (всего исправлений: 1)
Ответ на: комментарий от lenin386

Ну, и как теперь читать эти ваши дискеты? 900.com, дети, блин.

DOSBox не судьба? Хотя сейчас живую пятидюймовую дискетку ещё попробуй сыщи.

drfaust ★★★★★
()
Ответ на: комментарий от praseodim

хоть один экземпляр был выпущен?

Конечно нет, там в 6 раз больше транзисторов. Это недостижимо было вообще никак не то что на производственном, а на проектном уровне.

Всё что выпускал МПОВТ в Минске (бывший завод Орджоникидзе) на 386 и 486 (ЕС-1863, ЕС-1864) в первой половине 90-х это уже импортная элементная база и клоны.

OSBuster ★★
()
Ответ на: комментарий от lenin386

Единственный _нормальный способ переключить режим видеокарты - Vesa и VGA BIOS.

обычной практикой было устанавливать видеорежим из скудного набора биос, а потом модифицировать программированием видеоадаптера, делать всё с нуля довольно хлопотно
на том же vga штатно был только один 256-цветный режим, мало на что пригодный для известных нам задач
или вот режим разделения текстового экрана со скроллингом ты никак через биос не сделаешь, а это одна из важнейших фич, по мнению межделмаш, которую она закладывала в функционал видеоадаптера(они тогда мыслили категориями задач терминалов из 70-х)
или вот модная тогда тема с композитным выходом на цга...

Твоё пейсание в порты отлетит на другой видеокарте, и может, и на такой же, с виду, кто знает?

без пейсания в порты ты на cga/ega/vga вообще никакой графики не нарисуешь, а какие-то функции рисования биоса были только для галочки
и это не какое-то кулхацкерство, это документированное руководство по программированию графики, которое было в каждой мурзилке

madcore ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.