From e7dd61797a001e80bb04971491a664d50a9cc2cf Mon Sep 17 00:00:00 2001 From: Andrei Solodovnikov Date: Tue, 9 Jan 2024 14:10:08 +0300 Subject: [PATCH] =?UTF-8?q?Create=20=D0=91=D0=B0=D0=B7=D0=BE=D0=B2=D1=8B?= =?UTF-8?q?=D0=B5=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Базовые определения.md | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 Other/Вопросы к экзамену (зачету)/Базовые определения.md diff --git a/Other/Вопросы к экзамену (зачету)/Базовые определения.md b/Other/Вопросы к экзамену (зачету)/Базовые определения.md new file mode 100644 index 0000000..be09e7a --- /dev/null +++ b/Other/Вопросы к экзамену (зачету)/Базовые определения.md @@ -0,0 +1,83 @@ +# Список основных терминов (must know!) + +Ниже приводится перечень основных терминов, понимание которых является обязательным! В противном случае, из непонимания какого-то термина следует непонимание тех разделов дисциплины, в которых на него опираются. Некоторые из них имеют критически высокий уровень значимости. К таковым, например, относятся *процессор*, *архитектура*, *система команд.* Непонимание выпускником технической специальности смысла этих слов сравнимо со врачом непонимающим, что такое иммунитет. Это неприемлемо! + +Главное не заучить определения, а именно понимать смысл. Если не ошибаюсь, это сказал Эйнштейн: «если ты не можешь что-то объяснить школьнику, значит ты сам это не понимаешь». На экзамене, в беседе, мы будем проверять понимание нижеизложенного. + +Отдельно подчеркну: нижеизложенное является необходимым, но недостаточным для успешной сдачи экзамена. + +**Процессор** – это программно-управляемое устройство, как правило, выполненное на одной интегральной схеме, осуществляющее цифровую обработку информации и управление этим процессом. + +**Микроконтроллер** – это устройство, конструктивно выполненное на базе одной интегральной схемы и содержащее в себе процессор, оперативное и постоянное запоминающие устройства, а также различные периферийные устройства (например: АЦП, ЦАП, контроллеры интерфейсов, таймеры, модули ШИМ и т.д.). + +**Интегрированный процессор** – это специализированный процессор, функциональные возможности которого отражают специфику решаемых с его помощью задач. + +**Процессор цифровой обработки сигналов** (ПЦОС, Digital Signal Processor, DSP) – это специализированный процессор, ориентированный на реализацию процедур, обеспечивающих преобразование аналоговых сигналов, представленных в цифровой форме. + +**Инструкция** (Команда) – это отдельная операция процессора, определенная системой команд и, которая, содержит в себе закодированную информацию о том, какое действие необходимо совершить и, если это требуется, над какими данными. + +**Программа** – это комбинация инструкций и данных, позволяющая аппаратному обеспечению вычислительной системы выполнять вычисления или функции управления. + +**Слово** – это определяемая архитектурой величина, измеряемая в битах или байтах и равная разрядности регистров процессора и\или шины данных. + +**Арифметико-логическое устройство** (АЛУ) – это устройство, предназначенное для выполнения арифметических и поразрядно-логических операций над многоразрядными словами. + +**Критический путь** – это самый длинный путь прохождения сигнала в комбинационной схеме (характеризует максимальное время распространения сигнала в этой комбинационной схеме: от начала изменений значений на входах, до момента, когда все выходы достигнут установившихся значений). + +**Архитектура** – абстрактная модель совокупности функциональных возможностей процессора. + +**Микроархитектура** – это структурная организация процессора, описывающая, как именно расположены и соединены друг с другом его функциональные узлы (регистры, АЛУ, конечные автоматы, блоки памяти и другие блоки, необходимые для реализации архитектуры). + +**Архитектура системы команд** (Instruction Set Architecture, ISA) – часть архитектуры, определяющая программируемую часть процессора, то есть средства вычислительной машины, которые видны и доступны программисту (система команд, поддерживаемые форматы данных, системы регистров, способы адресации, модели памяти и т.д.). + +**Система команд** – это совокупность команд (инструкций), выполнение которых на аппаратном уровне поддерживает процессор. + +**Устройство управления** – блок процессора, организующий последовательную выборку команд из памяти, их дешифрацию и формирование соответствующих управляющих сигналов для всех блоков процессора. + +**Конвейер команд** (Вычислительный конвейер) – это способ временного распараллеливания исполняемых команд, при котором выполнение команд разделяется на несколько более простых операций (называемых ступенями), под каждую из которых выделен свой блок аппаратуры и организована передача данных между ними, благодаря чему можно одновременно выполнять несколько команд на разных стадиях конвейера. + +**Конфликты конвейера** – это ситуации, которые препятствуют выполнению очередной команды из потока команд в предназначенном для нее такте, по причине нехватки ресурсов (структурный конфликт), зависимости от данных, получаемых в еще незавершенной команде (конфликт по данным) или из-за неопределенности – какую команду загружать после команды условного перехода, до того, как истинность условия стала известной (конфликт по управлению). + +**Прерывание** – это автоматическое изменение хода выполнения программы (запуск подпрограммы обработчика прерывания), вызванное событием (программным или аппаратным) или совокупностью событий, возникших в некоторой части вычислительной системы. + +**Вектор прерывания** – адрес начала подпрограммы обработчика прерывания, который загружается в счетчик команд (Program counter) при возникновении соответствующего прерывания. + +**Исключения** – это нештатные ситуации, возникающие при ошибках в работе процессора, либо ошибках при работе с памятью. + +**Стек** – способ организации памяти, при котором слово данных, записанное последним, при считывании будет доступно первым (Last In, First Out, LIFO). + +**Ассоциативная память** – это способ организации памяти, при котором поиск требуемых данных происходит не по адресу местоположения в памяти, а по уникальным признакам (тегам), хранящимся вместе с соответствующими данными. + +**Локальность по обращению** – это понятие, отражающее закономерность обращений программ к памяти и, с высокой вероятностью, проявляющееся в повторном использовании данных, к которым недавно уже обращались (временная локальность данных), и в использовании в ближайшем будущем данных, находящихся по соседним адресам (пространственная локальность программ и данных). + +**Кэш-память** – память малого объема, работающая значительно быстрее основной памяти – на частоте ядра процессора, и, храня в себе одновременно лишь малую часть основной памяти, призвана повысить скорость доступа к данным за счет их временной и пространственной локальности. + +**Виртуальная память** – это способ автоматического управления иерархической памятью, при котором для нескольких ее уровней организуется единое адресное пространство, благодаря чему можно создать для программиста видимость памяти большого объема, а перемещая данные между уровнями (согласно локальности по обращению) для большинства обращений к памяти обеспечивать скорость доступа, равную скорости более быстрых типов памяти. + +**Транзакция** – операция на шине. + +**Шина** – это группа сигнальных линий, предназначенных для выполнения определенной функции в программно-управляемом процессе передачи данных. + +**Интерфейс** – совокупность механических, электрических и программных средств, с помощью которых компоненты системы объединяются для решения задачи обмена информации. + +**Арбитр магистрали** – это устройство, контролирующее соблюдение правил предоставления общей шины одному из запросивших ее устройств, другими словами, арбитр выбирает какому устройству и на сколько время предоставить управление шиной для передачи информации, вместе с тем контролирует присутствие на общей шине строго не более одного ведущего устройства в любой момент времени. + +**Совмещенное адресное пространство** – это способ построения систем ввода\вывода, при котором определенная область адресов памяти отводится для адресации регистров устройств ввода\вывода. + +**Выделенное адресное пространство** – это способ построения систем ввода\вывода, при котором система памяти и система ввода\вывода имеют собственные, отдельные системы адресов, с изолированными, раздельными линиями адреса, в связи с чем, для управления вводом\выводом используются специальные инструкции. + +**Принстонская архитектура** – это способ организации памяти, при котором для хранения программ и данных используется единая (общая) память с разделенным по времени доступом (по очереди) к командам, либо данным, по общей шине процессор-память. + +**Гарвардская архитектура** – это способ организации памяти, при котором используют отдельную память для хранения программ, и отдельную память для данных, каждая из которых соединена с процессором собственной шиной. + +**CISC** (Complex Instruction Set Computer) – это архитектура с полным набором команд, изначально ориентированная на уменьшении рутины при программировании, она характеризуется наличием большого (около тысяча и более) количества разнообразных простых и сложных команд и множеством различных способов адресации операндов, благодаря чему коды инструкций имеют переменную длину, а в качестве операндов могут использоваться ячейки основной памяти. + +**RISC** (Reduced Instruction Set Computer) – это архитектура с сокращенным набором команд, которая ориентирована на простоту реализации, из-за чего поддерживает, в основном, не более сотни команд, кодируемых словами фиксированной длины, и использующей всего несколько способов адресации операндов, но выполнять операции можно только с данными из регистрового файла, в связи с чем необходимо применять специальные команды пересылки данных между основной памятью и процессором. + +**VLIW** (Very Long Instruction Word) – это архитектура со сверхдлинным командным словом, характеризующаяся увеличенным количеством исполнительных устройств, а сверхдлинная команда, является, по сути, склейкой нескольких выполняющихся одновременно RISC-инструкций, каждая из которых управляет определенным исполнительным устройством, что предоставляет программисту все возможности параллельной обработки. + +**Скалярный процессор** – это процессор, в каждый момент времени осуществляющий работу только над одной порцией данных. + +**Суперскалярный процессор** – это процессор, который одновременно выполняет более чем одну скалярную команду. + +**Суперскалярная архитектура** – это архитектура с увеличенным количеством исполнительных устройств, в которой параллельная обработка достигается за счет выборки сразу нескольких инструкций за раз, динамически распределяя между исполнительными устройствами с целью их максимальной загрузки.