Использование микрокода в процессорах

Тема в разделе "WASM.ZEN", создана пользователем Clerk, 24 апр 2008.

  1. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.742
    http://www.computerra.ru/magazine/355647/
     
  2. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    asmlamo
    да, да именно об этом я и говорю.
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Но ведь использование аппаратных отладчиков ничего не даст, так ведь ?
    Да и аппаратные отладчики - удовольствие не из доступных, а самому замутить слишком дорого.
     
  4. SWR

    SWR New Member

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    226
    Адрес:
    Russia
    Да и толку от микрокода если неизвестен его формат.
    Что зашифрован, что нет толку 0.
    Да и кто будет гробить свой проц.
    Скорее всего у каждой модели он свой.
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Так ведь и хочу расшифровать формат. Если не зашифрован, то проще. Таблицы строить методом тыка - залил, упало - инструкция криво выполнилась, почему.
     
  6. SWR

    SWR New Member

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    226
    Адрес:
    Russia
    там скорее матрица настроек ключей как в FPGA, так, что это будет оооочень долго (зато изучиш структуру проца до винтиков)
     
  7. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    asmlamo
    2048 байт - это не весь микрокод. Это просто заплатка(и). Т.е. есть возможность заменить, пропатчить десяток команд. Что конечно не умаляет опасности. Кстати эти заплатки БИОС-то как-то делает, значит ключ имеется. Кстати и Винды, начиная с 2000-го тоже умеют заливать микрокод. Т.ч. не все потеряно.
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Так ведь вопроса как залить нет, это легко. Вопрос как считать его и как расшифровать.
     
  9. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Вопрос - зачем? Чтоб вирем проц грохнуть? Достаточно залить в него всякую белиберду. Если именно расшифровать интересно, то как это сделать не зная внутренней архитектуры (уже говорилось)? А если там в середке фпга (тоже говорилось) с доворотами (отдельными блоками фпу, скажем)? После расшифровки у вас будет куча бессмысленых чисел. И даже если вы расшифруете микрокод, улучшите его местами и зальете обратно, скорей всего вы потеряете совместимость в неописаных интелом в доке, но юзаемых местах.
    Если так охота ковырять проц, почему-бы не поковырять какой-либо опенсорцный? Заодно сложность задачи оценить.
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Грохоть мне никогда ничего не надо было и не будет. Цель этого - изменить какую-льбо инструкцию или создать свою чтобы получить доступ в Ring0 безо всяких привилегий, аппаратными средствами. Расшифровать - понять как работает микрокод, узнать формат микрокоманд и как их кодить.
     
  11. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Вопрос зачем вам тогда Ring0 будет? А вообще соотношение целей и средствов для их достижения напоминает решение примера 2+2=? методом дифференцирования. Учитывая сложность сорцов простых самопальных процев и описаную архитектуру х86 я думаю мой пример слегка бледноват.
    То бишь стоит определиться, что вы хотите - получить доступ к Ring0 (опять-же в каких целях? Если это антиотладка, то есть вероятность грохнуть все процы на которых прога работать будет, если дебугер..) или разобраться как проц пашет..
     
  12. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Скорее всего код нельзя считать тупо потому что эта вся фигня связана с обновлением микрокода. Тоесть для обновление не требуется считывать старый код, значит этого способа просто нет.
     
  13. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Странный вопрос, это ведь не имеет значения. Ну задался я уже очень давно целью найти путь туда, но не в деструктивных целях.
     
  14. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    В Ring0 или в микрокод (название микрокод - условность. Что этим словом называют - загадка за семью печатями. И я более чем уверен, что минимум треть проца пашет на секретность микрокода, тк есть и более серьезные исследователи-конкуренты, amd там..)? Кстати у amd по процам проскакивало что-то..

    Не знаю имеет-ли это какое-то отношение к теме. Уж больно тяжелые пдф-ы, но ссылки были на процессоро-девелоперском сайте:
    http://buzbee.net/bitslice/AMD_CH1.pdf
    http://buzbee.net/bitslice/AMD_CH2.pdf
    http://buzbee.net/bitslice/AMD_CH3.pdf
    http://buzbee.net/bitslice/AMD_CH4.pdf
    http://buzbee.net/bitslice/AMD_CH5.pdf
    http://buzbee.net/bitslice/AMD_CH6.pdf
    http://buzbee.net/bitslice/AMD_CH7.pdf
     
  15. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    _basmp_
    Большое спасибо тебе, интересно, будет возможность скачать, посмотрю.
     
  16. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
    Чтото мне крайне сомнительно, что весь проц помещается в 2K =) По поводу шифрования : скорей всего самое интересное всётаки содержиться в пресловутом микрокоде (ну только не в этих 2К, хотя они не менее интересны) и если железную часть можно умудриться запихнуть под микроскоп и посмотреть как же она тама сделана то соответсвенно логично софтовую, обновляемую часть - шифровать. Хотя если расшифровка аппаратно происходт то китайцы рано или поздно ключ получат (чтото не веристься что за расшифровку отвечает просто набор из пары тысяч или сотен тысяч транзисторов, хотя кто этих буржуинов знает до чего ещё могут додуматься для удешеления производства: ведь главное не наука, а прибыль ) =) По поводу пожечь - маловероятно, да и код (который через апдейты заливатся) остаётся в проце до ближайшего выключения питания или ресета, а дальше его перезаливать нада, а ниже думаю полный анрыл попасть =) В проце, канэчна, скорей всего, храниться в расшифрованном виде то, что в него залилось, вот это былобы интересно прочитать (если оно шифрованное, а не просто подписанное). =)

    http://en.wikipedia.org/wiki/Microcode

    P.S.
    тут наткнулся на http://kerneltrap.org/node/2678 а что значит
    +++
    http://www.nix.ru/news/news_viewer.html?id=150390 - всё новое = хорошо забытое старое =)

    ++++
    А вдруг внутрях есть чтото на подобе shadow rom и в апдейте просто указываем куда что прописать ?
     
  17. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.742
    Для того что бы залить УЖЕ нужен Ring0.

    Там наверняка юзают IN OUT
     
  18. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    asmlamo
    Заливается через CPUID/WRMSR, последняя привилегированная.

    Врядле, может сикнатуры считывает тока его. Еслибы ещё знать что за модуль..
     
  19. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.742
    Ну все равно ring0 !
     
  20. 6arrep

    6arrep New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2006
    Сообщения:
    92
    Адрес:
    London
    добавление своих команд вещь хорошая, но только на своих компах и реализуема, тоесть только свои программы и смогут их юзать. Хотя думаю декодировщик (транслятор) зашит наглухо, а прошивки лишь меняют сами МОПы. А попытка улучшить родные команды лишь приведет к нестабильности либо тормозам выполнения, не думаю что не зная тонкостей и условностей архитектуры получится укоротить конвеер, зато тормоза гарантированы