Python hunter diary 1

топ 100 блогов gignomai14.10.2023

Ну вот. В ответ на запрос, вполне согласующийся с моим принципом все рефлектировать (да и в расчете, что из комментов почерпну полезное) начну выкладывать «Дневник охотника на питона». Форма будет уточняться по мере.

Начну с тех своих акцентуаций (психиатры поймут), которые проявились в самой затее и многажды проявятся в исполнении.

Навязчивая страсть к систематизации. Страсть не люблю, когда что-то не на своем месте (это, правда, только в ментальном пространстве, в физическом часто наплевать).

Не люблю пропускать, оставлять позади непонятное. Оно накапливается и рано или поздно оборачивается катастрофой полной растерянности. (Тогда выпить чего-то алкогольного, проспаться и начать с нуля). Формула: зачищать (неспроста лезет военная лексика). В текущей затее с ИИ это уже третий цикл.

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

Очень раздражает обилие слов непонятного происхождения и особенно аббревиатур. Помогают перевод буквальных значений терминов, выяснение этимологии и расшифровка аббревиатур (USB, ASCII, pixel) (срабатывает филологическая компетенция).

Пока селфи закругляю. Дорисую по мере надобности.

Как я уже писал нашел книгу как раз по моей мерке.

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

Пока понятно всё. Но есть вещи, про которые Тони (автор) пишет, что в них можно и не лезть.

Например:

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

Не до конца (не до физики) объяснены некоторые основные моменты. Для ловли питона без них можно наверняка обойтись:

Как именно осуществляет ассемблер перевод на машинный язык.

Как именно происходит исполнение программной инструкции.

Но мне хочется и это понимать.

По совету Python hunter diary 1 a_n_d_r_u_s_h_a обратился за помощью к чат-боту. Ниже мой с ним диалог.

Я: За счет каких физических процессов в аппаратном обеспечении происходит перевод программы на высокоуровневом языке в машинный язык?

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

1. Компиляция:

Компиляция – это процесс, при котором исходный код программы на высокоуровневом языке (например, C, C++, Java) переводится в машинный код однократно, с использованием специальной программы, называемой компилятором.

Компилятор анализирует весь исходный код программы и создает эквивалентный машинный код для всей программы в один раз.

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

Эти исполняемые файлы содержат набор инструкций, которые процессор целевой машины выполняет напрямую.

2. Интерпретация:

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

Интерпретатор считывает и анализирует исходный код программы во время выполнения и выполняет соответствующие действия на целевой машине.

В этом случае, программа остается в виде исходного кода и не переводится в машинный код заранее.

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

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

Я: Спасибо, но это я прочитал и понял. А как, с помощью каких физических процессов центральный процессор исполняет команды на машинном языке?

Он: Центральный процессор (ЦП) исполняет команды на машинном языке, используя следующие физические процессы:

Выполнение команд:

Центральный процессор считывает инструкции (команды) из оперативной памяти (RAM) или кэш-памяти.

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

1. Декодирование:

Процессор декодирует бинарный код инструкции, чтобы определить, какую операцию нужно выполнить и над какими данными.

Это включает в себя интерпретацию битов инструкции, чтобы определить, какой функциональный блок процессора должен выполнить данную операцию.

2. Исполнение:

После декодирования процессор выполняет фактическую операцию, описанную в инструкции.

Это может включать в себя арифметические операции (сложение, вычитание, умножение и деление), логические операции (И, ИЛИ, НЕ), операции с памятью (загрузка и сохранение данных) и другие операции.

3. Передача данных:

Во время выполнения операции процессор перемещает данные между регистрами процессора, кэш-памятью и оперативной памятью в соответствии с инструкциями.

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

4. Управление выполнением:

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

Этот процесс обеспечивает правильную последовательность операций и управляет потоком выполнения программы.

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

             Прервался на обед. После обеда решил «дожать».

Я: Напоминаю из предыдущего твоего объяснения.

«Процессор декодирует бинарный код инструкции, чтобы определить, какую операцию нужно выполнить и над какими данными. Это включает в себя интерпретацию битов инструкции, чтобы определить, какой функциональный блок процессора должен выполнить данную операцию.

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

Это понятно. Но не мог бы ты примере конкретной модели описать микроархитектуру и физические процессы?

Он: Конечно, давай рассмотрим пример микроархитектуры и физических процессов на примере микропроцессора Intel Core i7, который был актуален на момент моего последнего обновления в сентябре 2021 года. Учтите, что с течением времени микроархитектуры процессоров могут меняться, и новые модели могут включать улучшения и изменения.

Микроархитектура Intel Core i7 (например, Skylake):

Декодирование инструкций: Когда процессор получает инструкцию, он начинает процесс с её декодирования. Декодирование включает в себя определение типа операции, назначение регистров и адресов памяти, с которыми нужно работать. Микроархитектура Skylake использует сложный и оптимизированный процесс декодирования.

Выполнение операции: После декодирования процессор выполняет фактическую операцию. Микроархитектура Skylake включает в себя несколько функциональных блоков, таких как арифметические блоки, блоки управления памятью и другие, чтобы обработать различные виды операций. Суперскалярная микроархитектура позволяет выполнение нескольких инструкций одновременно, что увеличивает производительность.

Кэширование: Процессор Intel Core i7 имеет несколько уровней кэш-памяти, включая L1, L2 и L3 кэши. Кэши помогают ускорить доступ к данным и инструкциям, уменьшая задержки при обращении к оперативной памяти.

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

Out-of-Order Execution (OOO): Микроархитектура Intel Core i7 поддерживает OOO выполнение, что означает, что процессор может выполнить инструкции в порядке, отличном от того, в котором они были получены, для максимизации утилизации исполнительных блоков.

Векторные инструкции: Intel Core i7 также поддерживает векторные инструкции, такие как AVX (Advanced Vector Extensions), которые позволяют выполнять одну операцию над несколькими данными одновременно.

Это только общий обзор микроархитектуры Intel Core i7. Конкретные модели могут иметь различия в мелких деталях, и новые версии процессоров могут включать улучшения, такие как более высокую производительность, более низкое энергопотребление и т.д.

               Кое-что понял, далеко не всё. Но на этом пока от него отстал, продолжу чтение. Благо, для понимания дальнейшего это вроде бы не необходимо

Оставить комментарий

Архив записей в блогах:
Роман Вайнеров рассказывает нам о довольно немилосердных временах. И сама «Эра Милосердия», несмотря на достаточно миролюбивое название, довольно кровавый роман. В нём постоянно, от пролога до самого эпилога, кого-то убивают. Это в «Собаке Баскервилей» одного неочевидного убийства, ...
Довольно забавное видео из Березников, о чуваках, которые не вовремя пошли на обгон: http://fapnews.ru/55841-zhiteli-bereznikov-stali-svidetelyami-napadeniya-na-kolonnu-omona/ Там если чо, внизу есть ссылка на ролик без купюр. ...
Мне интересно.  Ладно, я сильная, блаблабла.  А как слабые люди эту жизнь проходят? Ленивые? Безвольные? Бесхарактерные? Они, что, постоянно мучаются? Или забили на все и плывут по течению? Или ...
                                                  Ученые уже давно поставили опыт: крысе вживили электроды в мозг, - в центр удовольствия, и поставили в клетке педальку: нажмешь – замкнешь контакт и поимеешь кайф. Крыса педальку обнаружила, и с тех пор от нее не отходила, - непре ...
Сегодня об этом мало кто уже помнит, но эксперименты АвтоВАЗа в конце девяностых-начале «нулевых» не ограничивались болотоходами и кемперами. Загоревшись идеей полного привода, тольяттинские инженеры стали ваять франкенштейнов. ВАЗ-210834 ...