====== Адресация ====== ===== Основные понятия ===== > **Процессор** - программисту фактически недоступен и делится на: >> Регистры - предназначены для временного хранения данных и инструкций во время выполнения программ. Они обеспечивают быстрый доступ к информации, что сокращает время обработки по сравнению с обращением к оперативной памяти. >> Память - (кэш-память) предназначена для временного хранения данных, к которым процессор обращается чаще всего. Это позволяет ускорить работу процессора за счёт минимизации времени доступа к этим данным. >> Периферия - Периферийные устройства процессора предназначены для обеспечения поступления в компьютер из окружающей среды программ и данных для обработки, а также выдачи результатов работы компьютера в виде, пригодном для восприятия человека или для передачи на другую ЭВМ, или в иной, необходимой форме. > **Процессор** - некое устройство, которое умеет выполнять инструкции > **Регистры** - самая быстрая часть процессора > ВАЖНАЯ РЕМАРКА ОТ АВТОРА: Доступ к памяти в 10 раз медленней чем скорость выполнения операций с регистрами, но при этом массив и объем операций весьма большой. ===== Принципиальное устройство процессора ===== {{:reverseenengineering:изображение_2025-07-01_182016310.png?1000|}} ===== Принципиальное устройство ядра===== {{:reverseenengineering:изображение_2025-07-01_182050921.png?1000|}} ===== Типы регистров ===== > Аккумуляторные — хранят промежуточные результаты арифметических и логических операций. > Регистры общего назначения — содержат данные и адреса, используются для временного сохранения чисел и других значений во время вычислений. > Регистры адреса — содержат адреса ячеек памяти, что требуется для считывания данных или инструкций из памяти процессора. > Регистры команд — хранят адрес текущей команды, которую выполняет процессор. > Флаговые — хранят состояние процессора и информацию о результате последней операции (например, флаг нуля, флаг переноса). > Регистры базового указателя стека (BP) и указателя стека (SP) — используются для управления стеком программы: SP указывает на вершину стека, а BP служит точкой отсчёта для доступа к переменным и аргументам функции. ===== Как работают регистры ===== > Регистры работают по принципу: данные, которые в них хранятся, доступны для обработки с помощью арифметико-логического устройства (АЛУ) или других вычислительных блоков процессора. После выполнения операций преобразованные данные могут быть временно сохранены в регистрах, а затем перемещены в кэш или оперативную память. ===== Процесс обработки данных процессором ===== > Центральный процессор (CPU, Central Processing Unit) — это основной компонент устройств, который выполняет все вычисления и логические операции, необходимые для работы программ. > Когда процессору требуются данные, он сначала проверяет их в регистрах, и кэшах L1-L3. > Если он не находит данные там, то он генерирует сигнал на шине адреса, указывающий физический адрес памяти ОЗУ, по которому нужно прочитать данные. Этот сигнал на шине адреса генерируется процессором и передается контроллеру памяти. > Когда контроллер памяти получает сигнал на шине адреса от процессора, он инициирует процесс чтения данных из соответствующей ячейки памяти по указанному физическому адресу. > То есть отправляем в ОЗУ адрес по шине адреса, а получаем данные по шине данных. > По шине данных информация помещается в кэш L3. ===== Устройство управления (Control Unit) ===== > Управляет выполнением инструкций, координируя работу других компонентов. > Устройство управления включает в себя несколько ключевых компонентов, которые координируют функционирование процессора. Вот некоторые из них: > Декодер инструкций: Отвечает за декодирование машинных инструкций, переводя их из машинного кода в управляющие сигналы, которые указывают, какие операции должны быть выполнены. > Генератор сигналов управления: Создает сигналы, которые управляют различными функциями процессора, такими как чтение/запись в регистры, выбор источников данных для выполнения операций, управление памятью и так далее. > Счётчик инструкций: Отслеживает текущую выполняемую инструкцию и управляет последовательностью исполнения инструкций внутри процессора. > Управляющие регистры: Хранят состояние процессора, включая информацию о текущей инструкции, режиме работы процессора и т. д. > Предсказатель переходов: В некоторых процессорах устройство управления включает предсказатель переходов, который анализирует последовательность инструкций для предсказания условных переходов, что улучшает предсказуемость ветвлений и оптимизирует выполнение программ. ===== Планировщик (Scheduler) ===== > Планировщик отвечает за распределение микроопераций (micro-ops) между различными исполнительными блоками процессора, такими как ALU и FPU. > Он определяет порядок исполнения микроопераций, стараясь максимально эффективно использовать ресурсы процессора и минимизировать время простоя. ===== ALU (Arithmetic Logic Unit) ===== > Выполняет арифметические операции (сложение, вычитание и т.д.). > Выполняет логические операции (AND, OR, XOR и т.д.). ===== FPU (Floating Point Unit) ===== > Выполняет операции с плавающей запятой. ===== VPU (Vector Processing Unit) ===== > Выполняет операций с векторными данными. ===== MMU (Memory Management Unit) ===== > Устройство управления памятью, которое обеспечивает виртуальную память, кэширование, защиту памяти и другие функции, связанные с адресацией и доступом к оперативной памяти. ===== NPU (Neural Processing Unit) ===== > Устройство, специализированное на выполнении операций, связанных с нейронными сетями и искусственным интеллектом.