Ремонт: Ноутбуков, Компьютеров https://vlab.su/ |
|
как работает SPI BIOS? https://vlab.su/viewtopic.php?f=235&t=7284 |
Страница 1 из 1 |
pasha_zv [ 03 июн 2012, 09:33 ] | |
Заголовок сообщения: | как работает SPI BIOS? |
собственно разбираясь со схемами материнок уткнулся в небольшую непонятку: с биосом параллельного типа все ясно - после ресета проц падает на адрес 0х00000000h , где его нежно встречает микра BIOSa и ком стартует. а вот с биосами последовательного типа - непонятно. до старта проца нужно вычитать биос, разместить его в памяти, ткнуть носом проц. прихожу к выводу, что север, это не просто тупой шинный контроллер, а он имеет еще и свою микропрограмму. или там все по другому? |
vind11 [ 03 июн 2012, 10:17 ] | |
Заголовок сообщения: | Re: как работает SPI BIOS? |
мульт - это микрокомпьютер, он и распаковывает биос |
siberian [ 03 июн 2012, 10:35 ] | |
Заголовок сообщения: | Re: как работает SPI BIOS? |
pasha_zv писал(а): после ресета проц падает на адрес 0х00000000h , где его нежно встречает микра BIOSa Вы уверены в этом? Даже в системах, где биос находиться в м/с флэш паралельного типа, шина адреса проца не подключена к EEPROM BIOS. Или вы вспомнили системы на базе i8080, i8085, i8086, i8088? pasha_zv писал(а): до старта проца нужно вычитать биос, разместить его в памяти, ткнуть носом проц. Не правильно вы себе это представляете! Всё (или почти всё) в системе происходит под управлением проца и биос он сам в память распаковывает. Цитата: мульт - это микрокомпьютер, он и распаковывает биос С этим утверждением не соглашусь! Как по вашему мульт распакует биос, если тот подключен физически к PCH например?
|
pasha_zv [ 03 июн 2012, 11:39 ] | |
Заголовок сообщения: | Re: как работает SPI BIOS? |
siberian писал(а): Не правильно вы себе это представляете! Всё (или почти всё) в системе происходит под управлением проца и биос он сам в память распаковывает. цецеце а что - процы настолько поумнели, что уже и без программы работают? значит чтото в мире я изрядно пропустил Всё (или почти всё) в системе происходит под управлением проца , который выполняет программу, находящуюся в памяти вот и интересно, после старта системы откуда она там появляется? |
Vertyanov_SS [ 03 июн 2012, 13:10 ] | |
Заголовок сообщения: | Re: как работает SPI BIOS? |
Я думаю так. Если имеем мульт c внешней флешкой и не имеющий микропрограммы внутри себя, неважно паралельная или последовательная флеш, и эта флешка одна на материнке, то происходит следующее. Мульт лезет по адресу равному вектору сброса (векторов у контроллера множество, нас интересует вектор сброса) в эту флеш. Там есть часть кода которая позволяет "транспортировать" код для микропроцессора в память (RAM) по LPC (не вникал) шине в южник, после этого снимается ресет и прочие нужности для запуска процессора. Далее процессор распаковывает код в памяти и начинает работать. С какого адреса он начинает работать уже в памяти, на самом деле не так важно, все это зависит от кода и собственно желания разработчика, но думаю, в первых 640КБ. Если мульт имеет свою прошивку (например митсубиси микроконтроллер в самсунгах), то задача мульта правильно создать условия для запуска процессора (питание, клоки, ресет и прочее) и собственно далее перенос кода осуществляет южник. В случае с хабом (HM55 65 и прочие) этим занимается хаб. Но у мульта возможно есть некий загрузчик который может принимать код для своей работы по LPC шине от хаба, если у него нет своей выделенной флешки. Если есть отдельная флешка - мульт сам по себе, хаб сам по себе. У хабовой флешки есть грубо две области: первая чисто интел (страпы, регионы и прочее) и собственно BIOS каким мы его привыкли видеть в случае с одной микросхемой флеш на платформе. Отмечу, что я не претендую на точность изложенного механизма, я просто его себе так представляю. Если есть желание можно покурить даташиты интел на эту тему чтобы получить ответы КАК это конкретно делает южный мост. На большинство микроконтроллеров (мультов) так-же есть полные даташиты, где можно узнать механизмы реализации. Для чего Вам это нужно знать, ибо 100% на таких форумах не найти точного и верного ответа. Нужен форум разработчиков, отладчиков. |
siberian [ 03 июн 2012, 15:48 ] | |
Заголовок сообщения: | Re: как работает SPI BIOS? |
pasha_zv писал(а): цецеце а что - процы настолько поумнели, что уже и без программы работают? значит чтото в мире я изрядно пропустил Процы безусловно поумнели, но не настолько, чтобы работать без программы. Что вы пропустили или нет - вам видней. В класической схеме микропроцессорной системы (без кэшей, мостов) старт системы после сброса происходит следующим образом - на шину адреса выставляется начальный адрес (не обязательно нулевой) и сигнал чтения памяти, а память соответственно выставляет на шину данных содержимое адресуемой ячейки. Затем следующий адрес итд... В современной микропроцессорной системе между АЛУ и памятью находяться кэши, высокоскоростные и не очень (LPC) шины, мосты(хабы), мультиконтроллер. Всё это хозяйство безусловно способствует передаче запроса АЛУ микропроцессора на чтение памяти, но что читать из этой памяти определяет только сам CPU. Vertyanov_SS писал(а): Там есть часть кода которая позволяет "транспортировать" код для микропроцессора в память (RAM) по LPC (не вникал) шине в южник, после этого снимается ресет и прочие нужности для запуска процессора Следуя вашей логике, активнасть на шине LPC и памяти должна быть ещё до снятия ресета с процессора. На начальном этапе запуска (пока ещё не инициализированы мосты, не проверено наличие и исправность системной памяти) CPU переписывает Boot-блок из м/с биоса в свой кэш и выполняет его оттуда. После инициализации регистров мостов и проверки системной памяти в неё распаковывается системный биос...Вот как-то так я себе это представляю и в моём представлении нет места мульту в качестве контроллера прямого доступа к системной памяти. |
gecube [ 04 июн 2012, 02:08 ] | |
Заголовок сообщения: | Re: как работает SPI BIOS? |
Цитата: мульт - это микрокомпьютер, он и распаковывает биос нет. На десктопных мамах, SPI есть, мульта нет. Вообще мульт - это не совсем корректно. Все сложнее. Т.к. в ноутбуках это сложный микроконтроллер с функциями KBC и управления режимами электропитания. Поэтому это EC - "встроенный контроллер". Цитата: Если мульт имеет свою прошивку (например митсубиси микроконтроллер в самсунгах), то задача мульта правильно создать условия для запуска процессора (питание, клоки, ресет и прочее) и собственно далее перенос кода осуществляет южник. EC может не иметь своей внутренней прошивки. Точнее не так. Он может брать свою прошивку из внешней микросхемы. В одном из вариантов этой микросхемой может быть БИОС и прошивка EC там лежит по определенным адресам. В другом варианте для EC может быть отдельная микросхема. Далее EC просто отрабатывает кнопку включения, раздает сигналы включения и все. А вот уж чипсет (ЮМ и СМ) и заведуют тем, что и как будет с БИОСа считано. И куда. В принципе, необязательно, что БИОС будет сразу перекинут в ОЗУ. У связки процессора и СМ есть возможность работать в режиме cache-only, вообще без ОЗУ. При этом для обращения по адресам используются всякие хитрости. Цитата: с биосом параллельного типа все ясно - после ресета проц падает на адрес 0х00000000h , где его нежно встречает микра BIOSa и ком стартует. НЕВЕРНО!!!! Адрес старта для платформы x86 явно известен. И это не 0x0000000. А F000:0000. В северном мосту есть специальные регистры. Они отвечают за то какие адреса куда транслируются: в ОЗУ или на какое-либо оборудование. Ведь действительно у многих устройств есть своя память. И она может накладываться напрямую на адреса ОЗУ. Ну, например, видеопамять. Соответственно, таким же образом могут перехватываться обращения по адресам, где должен лежать БИОС. А умный чипсет просто подкладывает данные из того места, откуда надо. Либо сам считывает из БИОСа при старте, либо, если данные уже считаны и помещены в память, то из ОЗУ. Цитата: прихожу к выводу, что север, это не просто тупой шинный контроллер, а он имеет еще и свою микропрограмму. Ну, да. Уже давно так. И южный мост это тоже свой специализированный микропроцессор + своя микропрограмма. Но про внутреннее у-во их мы знаем очень мало: это закрытая информация производителя. |
Vertyanov_SS [ 04 июн 2012, 08:18 ] | |
Заголовок сообщения: | Re: как работает SPI BIOS? |
siberian писал(а): CPU переписывает Boot-блок из м/с биоса в свой кэш и выполняет его оттуда. Вы забыли несколько "посредников" между процом и биосом. CPU <> СЕВЕР <> ЮГ <> МУЛЬТ <> FLASH. |
siberian [ 04 июн 2012, 12:36 ] | |
Заголовок сообщения: | Re: как работает SPI BIOS? |
Vertyanov_SS писал(а): Вы забыли несколько "посредников" между процом и биосом Вовсе нет! Какую же вы им отводите роль в рассматриваемом процессе чтения данных из м/с биоса? |
remnote [ 20 ноя 2012, 21:54 ] | |
Заголовок сообщения: | Re: как работает SPI BIOS? |
процессор запускает программу БИОС без вставленного модуля памяти, а значит обращение идет через чипсет и мульт напрямую во flash |
Страница 1 из 1 | Часовой пояс: UTC + 4 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |