Системы компьютерной памяти
-
Массивы данных: структура и организация в памяти
Массивы в программировании: структура данных, организация элементов в памяти, вычисление адресов по индексу. Основы линейных массивов и их применение.
-
Аккумулятор процессора: регистр для промежуточных вычислений
Аккумулятор ЦП: регистр для хранения промежуточных результатов вычислений. Ускоряет работу, избегая частых обращений к памяти. История и принцип работы.
-
Алгоритм FIFO: Первый пришел - первый обслужен
FIFO: принцип "первым пришел - первым ушел" в программировании. Алгоритм обработки данных, очереди, планирование задач и сравнение с LIFO.
-
Виртуальная память в компьютерных системах
Виртуальная память: техника управления памятью компьютера, создающая иллюзию большого объема оперативной памяти. MMU, виртуальные и физические адреса.
-
Неоднородный доступ к памяти (NUMA) в многопроцессорных системах.
NUMA: архитектура памяти для многопроцессорных систем. Различия во времени доступа к локальной и удаленной памяти, преимущества для серверов и масштабируемость.
-
Симметричная многопроцессорность с общей памятью
Симметричная мультипроцессорность (SMP): архитектура с общим доступом к памяти и устройствам для нескольких идентичных процессоров. Оптимизация производительности.
-
Архитектура Гарварда: история и современные реализации
Архитектура Гарварда: раздельные шины данных и кода для высокой производительности и энергоэффективности. Отличия от архитектуры фон Неймана и применение.
-
Алгоритм обмена значений с использованием XOR (исключающего ИЛИ)
Алгоритм XOR-обмена: как поменять значения двух переменных без временной переменной. Разбор, преимущества и недостатки, оптимизация в программировании.
-
BogoMips: Ненаучное измерение скорости процессора в Linux
BogoMips: что это такое? Грубая оценка скорости CPU в Linux, используемая для калибровки. Не подходит для сравнения процессоров! История возникновения.
-
Когерентность кэша в компьютерной архитектуре
Когерентность кэша: обеспечение согласованности данных в локальных кэшах многопроцессорных систем. Решает проблемы устаревших данных и конфликтов при чтении/записи.
-
Привязка процессов к ядрам процессора
Привязка процессов к ядрам CPU (processor affinity) повышает производительность за счет использования кэша. Узнайте, как назначить задачи конкретным процессорам.
-
Метод повышения параллелизма на уровне команд
Улучшение параллелизма команд: конвейеризация процессора. Разделение инструкций на этапы (IF, ID, EX, MEM, WB) для повышения производительности CPU.
-
Побитовые операции в программировании
Битовые операции в программировании: быстродействие, простота, работа на уровне битов. Оптимизация скорости и энергопотребления в вычислениях.
-
Протокол MESI: Оптимизация когерентности кэша и повышение производительности.
Протокол когерентности кэша MESI: расширение MSI, поддержка write-back кэшей, экономия пропускной способности. Подробно о состояниях и преимуществах.
-
Ошибка шины: причины и механизмы возникновения
Ошибка шины: что это такое? Причины возникновения (неправильный доступ к памяти, ошибки ПО) и сигнал SIGBUS в POSIX системах. Объяснение простыми словами.
-
Управление памятью компьютера: страничная организация
Управление памятью в ОС: пейджинг (подкачка) – схема хранения и извлечения данных с диска в RAM. Виртуальная память, расширение доступной памяти.
-
Программируемый ввод-вывод: методы и режимы связи ЦП с периферийными устройствами
Программируемый ввод-вывод (PIO): метод передачи данных между CPU и периферийными устройствами. Отличия от DMA, MMIO и PMIO. Подробное описание.
-
Ассоциативная память с произвольным доступом к содержимому (CAM)
CAM (Content Addressable Memory) – ассоциативная память для быстрого поиска данных. Применение: сетевое оборудование, кэш-память, маршрутизация.
-
Методы коммуникации ЦП с периферийными устройствами
Обзор методов связи CPU с периферией: MMIO, PMIO, DMA и аппаратные прерывания. Узнайте о принципах работы и различиях этих технологий ввода/вывода.
-
Состояния ожидания процессора: причины и методы снижения
Состояние ожидания в процессоре: задержка при доступе к медленной памяти или устройствам. Разница в скорости CPU и подсистем компьютера. Оптимизация работы.
-
Слоты задержки в компьютерной архитектуре
Задержка слота в архитектуре компьютера: исполнение инструкции без эффекта предыдущей. RISC, DSP, предсказание переходов. Устаревающая технология.
-
Шпион за шиной: Механизмы обеспечения когерентности кэша.
Шпионский шинный протокол (bus snooping): поддержание когерентности кэша в распределенных системах. Метод Равишанкара и Гудмана, 1983.
-
Алгоритм выделения памяти "Buddy System"
Алгоритм выделения памяти "Buddy System": принцип работы, разделение памяти на блоки, эффективное выделение и объединение. Простота реализации.
-
Регистры индексов в процессоре: назначение и применение
Регистр процессора для работы с адресами операндов: назначение, использование в массивах и строках, счетчики циклов. Архитектура CPU и память.
-
Алгоритм Томасуло: Аппаратная реализация динамического планирования инструкций
Алгоритм Томасуло: аппаратный алгоритм для динамического планирования инструкций, обеспечивающий внеочередное выполнение и эффективное использование ресурсов.
-
Проблемы конвейерной обработки в микроархитектурах ЦП
Проблемы в конвейере CPU: типы опасностей (data, structural, control), методы решения (stall, forwarding, scoreboarding, Tomasulo). Оптимизация микроархитектуры.
-
Когерентность памяти в многопроцессорных системах
Когерентность памяти в многопроцессорных системах: проблемы и решения при одновременном доступе к общей памяти. Кэширование, чтение/запись данных.
-
Распределенная разделяемая память: архитектура и модели согласованности
Распределенная общая память (DSM): архитектура, объединяющая физически раздельные памяти в единое адресное пространство. Когерентность памяти – ключевой аспект.
-
Декодер суммы адресов для снижения задержки доступа к кэшу CPU.
Суммирующий декодер (SAD/SAM) в CPU: снижение задержки доступа к кэшу и вычисления адреса. Оптимизация L1 кэша для повышения IPC и производительности.
-
Предсказатель переходов в цифровых схемах
Предиктор ветвлений: цифровая схема для повышения производительности процессоров. Улучшает работу конвейера инструкций, предсказывая переходы в коде.
-
Переименование регистров в компьютерной архитектуре
Переименование регистров в архитектуре компьютера: устранение ложных зависимостей данных путём сопоставления логических регистров с физическими. Оптимизация производительности.
-
Оптимизация работы ЦП: Предвыборка инструкций и конвейерная обработка
Оптимизация CPU: предварительная выборка инструкций (prefetch) повышает скорость процессора за счет хранения кодов операций в очереди PIQ. Intel 8086.
-
Плоская модель памяти: принципы и применение.
Плоская модель памяти: простое линейное адресное пространство для прямого доступа к памяти. Оптимальна для встраиваемых систем и требует управления в ОС.
-
Архитектура фон Неймана: общая шина данных и команд
Архитектура фон Неймана: принцип работы, общая шина данных и команд, "узкое место фон Неймана", сравнение с архитектурой Гарварда. Основы компьютерной архитектуры.
-
Оконные регистры: повышение производительности процессора
Окна регистров: архитектура CPU для повышения производительности. Уменьшение операций со стеком при вызовах функций. AMD, Intel, SPARC, Itanium.
-
Регистры процессора: быстродействующая память для обработки данных
Регистры процессора: быстрое хранилище данных для операций. Узнайте о назначении, архитектуре и роли регистров в работе компьютера и обработке информации.
-
Защита памяти на компьютере
Защита памяти: контроль прав доступа к памяти в компьютерах. Предотвращает ошибки и вредоносное ПО, защищая процессы и ОС от несанкционированного доступа.
-
Кэш трансляции адресов (TLB): принцип работы и применение.
TLB: кэш-память для ускорения доступа к памяти компьютера. Хранит переводы виртуальной памяти в физическую, часть MMU. Оптимизация работы CPU.
-
Адреса памяти в вычислительной технике
Адрес памяти в компьютерах: что это такое? Объяснение принципов работы, уровней использования в ПО и оборудовании, и структуры памяти.
-
Цикл выполнения инструкций в компьютере
Цикл работы компьютера: извлечение, декодирование, выполнение инструкций CPU. Узнайте о последовательном и параллельном выполнении команд и регистре PC.
-
Зависимость производительности от операций ввода-вывода и "узкое место фон Неймана"
I/O-ограниченные программы: что это такое? Узнайте, как время ожидания ввода/вывода влияет на производительность и архитектуру Von Neumann. Оптимизация и решения.
-
Бит NX: Защита от выполнения кода в процессорах.
Защита от вредоносного ПО: NX bit в CPU предотвращает выполнение кода из областей данных, блокируя атаки типа buffer overflow. Безопасность системы!
-
Таблица страниц: отображение виртуальных адресов в физические
Таблицы страниц: отображение виртуальных адресов в физические. Ключевой компонент виртуальной памяти, используемый ОС для управления доступом к RAM.
-
Алгоритмы замены страниц в виртуальной памяти
Алгоритмы виртуальной памяти и подкачки страниц: выбор страниц для выгрузки, минимизация промахов и оптимизация производительности системы.
-
Барьеры памяти в вычислительных системах
Барьеры памяти в программировании: что это, зачем нужны и как работают. Обеспечение порядка операций в многопоточных приложениях и драйверах.
-
Кэш-память центрального процессора
Кэш ЦП: ускорение работы компьютера за счет хранения часто используемых данных. Узнайте о уровнях кэша (L1, L2, L3), SRAM и TLB. Оптимизация производительности!
-
Архитектура COMA: Кэш-память как основная память в многопроцессорных системах.
COMA: архитектура памяти для мультипроцессоров, где локальная память используется как кэш. Отличие от NUMA – отсутствие фиксированного "дома" для данных.
-
Протокол когерентности кэша MOSI: расширение MSI с состоянием Owned
Протокол MOSI: расширение MSI для обеспечения когерентности кэша. Добавлен статус Owned для обслуживания запросов. Оптимизация работы процессора и памяти.
-
Двухуровневое планирование процессов: оптимизация работы с виртуальной памятью
Двухуровневое планирование процессов: оптимизация работы системы с ограниченной памятью. Уменьшение времени ожидания и повышения эффективности CPU.
-
Ошибка доступа к невыделенной памяти: разбор Page Fault
Ошибка доступа к памяти: что такое page fault? Объяснение исключения MMU, виртуальной памяти и работы ядра ОС Windows, macOS и Linux.
-
Управление виртуальной памятью: метод подкачки по требованию
Управление виртуальной памятью: Demand Paging – метод подкачки страниц по запросу. Загрузка страниц в память только при необходимости, при возникновении ошибок страниц.
-
Сегментная организация памяти компьютера
Сегментированная память компьютера: разделение основной памяти на сегменты для эффективного управления и организации данных. Оптимизация программ и адресного пространства.
-
Окраска страниц кэша для повышения эффективности распределения памяти
Оптимизация выделения памяти: Cache Coloring – техника повышения производительности CPU за счет контигуозного размещения страниц в кэше. Улучшение работы ОС!
-
Сегменты памяти в программировании
Сегмент данных в программировании: глобальные и статические переменные, их инициализация и изменение во время выполнения. Различия с BSS и rodata сегментами.
-
Представление многомерных массивов в памяти компьютера
Порядок хранения массивов в памяти: row-major и column-major. Узнайте, как элементы располагаются линейно в RAM, и чем отличаются эти методы для многомерных массивов.
-
Перестановка циклов: оптимизация доступа к памяти
Перестановка циклов в компиляторах: оптимизация доступа к памяти, повышение производительности за счет кэша CPU и векторизации. Улучшение локальности данных.
-
Алгоритмы внешней памяти и I/O модель вычислений
Алгоритмы внешней памяти: обработка больших данных, не помещающихся в оперативную память. Оптимизация доступа к медленным носителям (HDD, сети). I/O модель.
-
Выравнивание структур данных в памяти компьютера
Выравнивание данных в памяти: оптимизация доступа CPU, padding, packing. Узнайте, как правильное выравнивание повышает производительность и эффективность кода.
-
Буферы данных: временное хранение при передаче информации
Буфер данных в компьютерных науках: временное хранилище для передачи информации между устройствами и процессами. Аппаратные и программные реализации.
-
Высокопроизводительная архитектура ввода-вывода на основе каналов
Высокопроизводительная архитектура ввода/вывода: каналы I/O для мейнфреймов и других систем. Узнайте о каналах, контроллерах DMA и решении проблемы "I/O bound".
-
Режимы работы процессоров x86 и переход в 64-битный режим
64-разрядные процессоры x86: режимы работы (long mode, compatibility mode, real mode). Как определить поддержку x86-64 и запуск 32/16-битных программ.
-
Рабочий набор процесса: концепция и применение.
Рабочий набор в информатике: объем памяти, необходимый процессу. Определение, влияние на производительность и выбор страниц для основной памяти.
-
Аномалия Беляди в управлении памятью компьютера
Аномалия Белади: увеличение числа фреймов памяти может *увеличить* число ошибок страниц. Объяснение парадоксальной ситуации в управлении памятью компьютера.
-
Система повторного выполнения в процессорах Pentium 4: принцип работы и влияние на производительность.
Система повторного выполнения Intel Pentium 4: отлов и перезапуск некорректных операций для стабильной работы при высоких тактовых частотах и длинных конвейерах.
-
Centaur Technology: История и особенности разработки x86-процессоров.
Centaur Technology: история американской компании, разрабатывавшей x86 процессоры для встраиваемых систем. Экономичные и компактные чипы VIA. Документальный фильм 2015 года.
-
Модели памяти x86: Обзор и особенности
Модели памяти x86: сегментные регистры, размеры указателей в реальном режиме. Защита кода/данных, особенности 80286/80386 и страничная организация памяти.
-
Тегированные указатели в информатике
Узнайте о tagged pointers: указателях с доп. данными для оптимизации памяти! Как работают теги, преимущества и применение в компьютерных науках.
-
Программный конвейер: оптимизация циклов в компьютерных науках
Программный конвейер: оптимизация циклов в программировании, повышающая производительность. Методы, компиляция, IA-64, модульное планирование.
-
Кража циклов процессора: методы доступа к памяти
Кража циклов: метод доступа к памяти без участия CPU. Использовалась в старых системах для ускорения работы периферии и дисплеев. Особенности и применение.
-
Буфер полок для повышения производительности суперскалярных процессоров.
Буфер регистров: повышение эффективности суперскалярных процессоров за счет внеочередного выполнения инструкций. Увеличение производительности микропроцессора.
-
Глобальная таблица дескрипторов (GDT) в архитектуре x86
Глобальная таблица дескрипторов (GDT) в процессорах x86: сегменты памяти, адреса, привилегии доступа. Структура данных для управления памятью и задачами.
-
Загрязнение кэша и снижение производительности памяти
Загрязнение кэша: причины снижения производительности CPU. Оптимизация доступа к памяти, контроль кэша и аппаратная поддержка для повышения скорости работы.
-
Аппаратная реализация динамического планирования инструкций: метод Scoreboarding.
Метод Scoreboarding: динамическое планирование инструкций для внеочередного выполнения. Отслеживание зависимостей, предотвращение конфликтов, повышение производительности.
-
Станции резервирования в микроархитектуре CPU: принцип работы и применение.
Единая станция резервирования (Unified Reservation Station) в CPU: переименование регистров, динамическое планирование инструкций (алгоритм Томасуло). Оптимизация производительности.
-
Буфер записи: архитектура, оптимизация и применение в современных процессорах.
Буфер записи: ускорение работы CPU, снижение задержек при записи данных из кэша в память. Влияние на согласованность в многоядерных системах и C11.
-
Micro-operation
-
Prelink
-
Scratchpad memory
-
Physical address
-
Memory disambiguation
-
X86 debug register