Войти
ПрограммированиеФорумОбщее

Исключения в C++ (8 стр)

Страницы: 13 4 5 6 7 8
#105
11:35, 18 мая 2018

Rikk
Флаг в руки и барабан на шею! Пробуй перепрошивать! Не трогай только тот комп, с которого на форум пишешь, иначе о результатах мы никогда не узнаем ;)

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


#106
12:23, 18 мая 2018

Zab

> Не было ни одного процессора с перепрошиваемыми микрокомандами
Вообще-то, сейчас все Intel/AMD процессоры все с перепрошиваемым микрокодом. В мануалах даже написано, как это делается.
Другое дело, что прошивки закриптованы, поэтому делать с ними абсолютно нечего.

#107
12:54, 18 мая 2018

Ghost2
Микрокод != микрокоманды.
Записанный в памяти микрокод используется, по сути, для программной эмуляции сложных инструкций.
Микрокоманды - это те управляющие сигналы, которые идут на конвеер.
В процессе выполнения кода, поток инструкций x86 переводится в поток микрокоманд, который впоследствии и исполняется конвеером.
Для некоторых команд, этот перевод заключается в чтении соответствующего микрокода из памяти.
Для большинства же команд, этот перевод производится напрямую транзисторной логикой. Разумеется, дорожки на кремнии ты никакими руками не прошьёшь.
Ну и в любом случае, прямого доступа к шинам тебе никто не даст, так что палить процессоры кодом - бессмыссленная затея. Если прямо так хочется чего-нибудь поджечь - проще крутить напряжение через уязвимости в BIOS и нагружать аккумулятор видеокартами через уязвимости в чипсете, в этом случае существует хотя бы теоретическая возможность прийти хоть к какому-то результату.

#108
14:04, 18 мая 2018
Изображение

adress-указать адрес след команды
jam — выбор вилки. типа goto.прыгать или не прыгать . типа jamn= jump iff non-zero = если не ноль тогда переход а иначе делать просто следующую команду по адресу adress+1
alu - приказать арифметико-логическому устройству сделать что-то. сдвинуть влево на байт , сдвинуть право на 1бит, позволить сигналы А или Б , inc включить схема инкремент+1 и тд
C- приказать шинеС читать-записывать регистры или из регистров
mem — приказать схеме памяти читать.записать. fetch-зажать?стек?
B- приказать шинеБ и привязанным на неё регистрам делать то или это .

то есть это если писать программу 111000 111 каждое место отдает некий приказ приборам делать чего-то. то же самое в ассемблере типа move x,y

наверное вы все правы и всё-таки следует смотреть видео-уроки . потому как вроде понятно что и не все из вас знают эти тонкости специфики моментов хотя каждый третий из вас запиливает ММО.

#109
14:09, 18 мая 2018

Delfigamer

> Микрокод != микрокоманды
Коробка с лимонами - это не лимоны, а коробка с лимонами.

> Записанный в памяти микрокод используется, по сути, для программной эмуляции сложных инструкций.
И какие инструкции, по твоему, являются простыми?

> этот перевод производится напрямую транзисторной логикой
Там все делается транзисторной логикой. Вот есть стадия fetch, есть decode.
Fetch - понятно. В decode что делается?

#110
14:27, 18 мая 2018

Ghost2
> В decode что делается?
так про это нету видео-уроков , где смотреть то ? видео-уроков таких не найти , а вы такие видео-уроки и не делали.может авторы уроков и сами это не знают.
по смыслу decode—декодирование.расшифровка.
опознавание команды и некие ходы (шевеления-копошения в схемах) расшифровывания , после чего буквально последним шагом выполнить действие. типа сохранить этот байт на жесткий диск.
процессор сам знает какое число это цифра а какое число это приказ.
то есть он знает например что 1111 это цифра а 1101 это записать в регистр .
на стадии decode он там шевелится и копошится расшифровкой(включает схемы внутри) чтобы  принять решение 1)это цифра я прочитал или 2)это приказ мне записать регистр . —- на этапе decode я это опознал.
после стадии decode я пишу в регистр.-—делаю инструкцию.

#111
14:44, 18 мая 2018

Ghost2
> И какие инструкции, по твоему, являются простыми?
Все 6 инструкций в
Delfigamer

int* operator+=(int* rdi, int* rsi)
{
  int edx = rsi[0]; // movl (%rsi), %edx
  int* rax = rdi;   // movq %rdi, %rax
  rdi[0] += edx;    // addl %edx, (%rdi)
  edx = rsi[1];     // movl 4(%rsi), %edx
  rdi[1] += edx;    // addl %edx, 4(%rdi)
  return rax;       // ret
}
, например.
Сложные - div, fsin, rep movs.

Ghost2
> Там все делается транзисторной логикой.
Но не всё - напрямую.

Ghost2
> В decode что делается?
Я не знаю, я в Интел не работаю, схем их процессоров не видел.
Наверно, стоит пачка блоков параллельно, слушают опкод всей сворой. Кто узнал свой опкод - тот включается и выдаёт на выходе соответствующие микрокоманды, а остальные тем временем сидят в High-Z и молчат.
Большинство блоков переводят транзисторами. Как ещё описать? Разве что схему гейтов конкретного блока нарисовать.
А один такой блок стоит в сторонке. Он - особенный, он включается только в ответ на особенные инструкции. В отличие от остальных, он не преобразует набор битов в набор битов. Вместо этого, он поднимает специальную линию - "остановить декодер" - которая останавливает декодер на текущей инструкции, а затем переводит опкод в адрес микрокода и переходит в режим "чтение". В этом режиме, он по очереди подаёт на выход по числу из флеш-памяти каждый такт, пока не достигнет окончания. После этого - блок возвращается в неактивный режим и отпускает линию "остановить декодер", после чего декодер наконец переходит на следующую инструкцию и цикл fetch-decode возобновляется.

#112
14:51, 18 мая 2018

Rikk
> шевеления-копошения в схемах
Ага, нанометровые гремлины передают вёдра с инструкциями по процессору, а ALU только и делают, что жрут водку и трещат на счётах. Как пойдёт какой-нибудь SIMD-код - так вообще жить становится невозможно, треск на километры раздаётся. Вот в эпоху x87 времена-то были, тогда эти алкаши вообще в другом городе сидели, а операнды им отправляли на лошадях. А теперь и их в том же подвале держат, и даже графических цыган всё норовят в соседнем доме поселить. Жуть!

#113
14:55, 18 мая 2018

Delfigamer
> а ALU только и делает, что жрёт водку и трещит на счётах.
потому он и указал там стр7 —- ведь и верно может треснуть от перепоя.
забей болт дружище, лучше запилить ММО. выступлю как logic-specialist.

#114
18:21, 18 мая 2018

Delfigamer

> Кто узнал свой опкод - тот включается и выдаёт на выходе соответствующие микрокоманды
Простые декодеры одинаковые.

Страницы: 13 4 5 6 7 8
ПрограммированиеФорумОбщее

Тема в архиве.