Производительность, цикл выборки-исполнения и прерывания
| English | Русский |
|---|---|
| interrupt/ˈɪntərʌpt/ | прерывание |
| clock speed/klɒk spiːd/ | тактовая частота |
| fetch-execute cycle/fetʃ ˈeksɪkjuːt ˈsaɪkl/ | цикл выборки-исполнения |
| cores/kɔːz/ | ядра |
| cache/kæʃ/ | кэш |
| word size/wɜːd saɪz/ | размер слова |
| port/pɔːt/ | порт |
| peripheral/pəˈrɪfərəl/ | периферийное устройство |
| register transfer notation/ˈredʒɪstə ˈtrænsfɜː nəʊˈteɪʃn/ | нотация передачи между регистрами |
| stack/stæk/ | stack |
| interrupt service routine/ˈɪntərʌpt ˈsɜːvɪs ruːˈtiːn/ | подпрограмма обработки прерываний |
| interrupt register/ˈɪntərʌpt ˈredʒɪstə/ | регистр прерываний |
Почему ноутбук реагирует мгновенно при нажатии клавиши
- Процессор выполняет миллиарды циклов в секунду. Если бы ему приходилось останавливаться и спрашивать клавиатуру «есть ещё?» между каждой инструкцией, он тратил бы большую часть времени на эти запросы.
- Вместо этого клавиатура отправляет прерывание. Процессор завершает свою текущую инструкцию, сохраняет место, обрабатывает нажатие клавиши и возвращается, как ни в чём не бывало.
- Этот один механизм позволяет одному процессору создавать впечатление одновременной работы музыки, браузера и набора текста.
- Этот урок объясняет, что делает процессор быстрым, как он подключается к устройствам, как именно выполняет одну инструкцию и как прерывание прерывает его работу.
Что влияет на производительность
- Тактовая частота: больше циклов выборки-исполнения в секунду, значит, больше инструкций в секунду, пока тепло не установит предел.
- Количество ядер: каждое ядро выбирает и выполняет свою инструкцию одновременно, поэтому несколько программ или потоков работают параллельно. Программа должна быть написана специально для использования нескольких ядер, поэтому удвоение количества ядер не удваивает скорость.
- Ширина шины данных: более широкая шина данных передает больше бит за одну передачу, поэтому требуется меньше передач; более широкая адресная шина позволяет охватить больший объем памяти.
- Кэш-память: небольшая быстрая память рядом с процессором, хранящая наиболее часто используемые инструкции и данные, что сокращает количество медленных обращений к ОЗУ. На производительность также влияют размер слова, объем ОЗУ и тип хранилища.
Выберите все факторы, влияющие на производительность процессора.
Тактовая частота, ядра и кэш (а также разрядность слова, ОЗУ, накопитель и ширина шины) влияют на производительность. Цвет корпуса — нет.
Многоядерный процессор особенно полезен для:
Дополнительные ядра выполняют задачи параллельно. Чисто однопоточная задача больше выигрывает от более высокой скорости на одно ядро.
____ память — это маленькое, быстрое хранилище рядом с процессором, которое хранит недавно использованные инструкции и данные, чтобы требовалось меньше медленных обращений к ОЗУ.
Большее количество кэша означает, что больше рабочего набора находится рядом с процессором, именно поэтому он упоминается в каждом сравнении производительности.
Разобранный пример: «объясните, почему новый компьютер работает быстрее»
- Сравните две спецификации построчно, указывая причину для каждой характеристики.
- 3.8 ГГц против 2.4 ГГц: больше циклов в секунду, следовательно, больше инструкций выполняется в секунду.
- 8 ядер против 4: в два раза больше инструкций могут быть получены и выполнены одновременно (для программного обеспечения, использующего многопоточность).
- 16 МБ кэш-памяти против 4 МБ: большая часть рабочего набора данных хранится рядом с процессором, поэтому меньше ожиданий при обращении к ОЗУ. За каждую строку дается два балла: фактор и его следствие.
Порты
- Порт — это физический разъем, соединяющий периферийное устройство.
- USB (Universal Serial Bus) — универсальный порт: используется для клавиатур, накопителей, телефонов. Технология Plug-and-Play: компьютер обнаруживает устройство, идентифицирует его, загружает драйвер и может его питать без перезагрузки.
- HDMI (High Definition Multimedia Interface) передает цифровое видео и звук по одному кабелю, поэтому преобразование в аналоговый сигнал не требуется, а качество изображения не снижается. VGA (Video Graphics Array) — устаревший аналоговый видеопорт.
Сопоставьте каждый порт с тем, что он передает.
Разные сигналы — разные разъёмы: кабель HDMI не подойдет к порту USB.
Этап выборки
- Один раз на каждую инструкцию процессор выполняет цикл выборки и выполнения. Выборка идет первой, и на экзамене этот этап нужно расписывать в нотации переноса регистров.
MAR ← [PC] the address of the next instruction goes to the MAR
PC ← [PC] + 1 the PC now points to the following instruction
MDR ← [[MAR]] the instruction at that address is read into the MDR
CIR ← [MDR] the instruction is copied into the CIR for decoding
- Сигнал чтения передается по управляющей шине, адрес — по адресной шине, а инструкция возвращается по шине данных. PC увеличивается сразу после копирования его адреса, чтобы последующий переход мог его перезаписать.

PC → MAR → память → MDR → CIR, при этом PC увеличивается по ходу процесса
Расставьте этапы выборки в правильном порядке.
PC → MAR, увеличение PC, сигнал чтения, затем инструкция проходит путь MDR → CIR, готовая к декодированию.
PC увеличивается во время этапа выборки, чтобы следующий цикл выбрал следующую инструкцию.
Раннее увеличение PC означает, что к моменту выполнения текущей инструкции PC уже указывает на следующую (если только переход не изменит его).
Декодирование, выполнение, повторение
- Декодирование: блок управления определяет по инструкции в CIR, какая операция выполнена и где находятся операнды.
- Выполнение: арифметика и логика передаются в АЛУ с результатом в ACC; команда LOAD или STORE перемещает данные между памятью и регистром; команда перехода записывает новый адрес в PC.
- Затем цикл повторяется начиная с
MAR ← [PC]. В конце каждого цикла процессор также проверяет наличие ожидающего прерывания.
Одна LOAD и одна ADD проходят через регистры: выборка, декодирование, выполнение, повторение
Цикл выборки-исполнения
Кликайте по кругу, который процессор повторяет миллиарды раз в секунду. Следите, как выборка использует регистры PC/MAR/MDR/CIR, затем декодирование и исполнение действуют с выбранным.
Разобранный пример: выполнение двух инструкций в нотации
- Выполните
LDD 200(загрузка содержимого адреса 200 в ACC): сначалаMAR ← 200, затемMDR ← [[MAR]], затемACC ← [MDR]. - Выполните
ADD 201:MAR ← 201,MDR ← [[MAR]],ACC ← [ACC] + [MDR]. - Выполните
STO 202:MAR ← 202,MDR ← [ACC],[[MAR]] ← [MDR]. - Каждая строка перемещает одно значение между двумя местами. Двойные скобки всегда означают «место памяти, адрес которого находится в MAR».
Расставьте регистровые передачи, выполняющие LDD 200, в правильном порядке.
Адрес в MAR, содержимое этого адреса в MDR, затем в аккумулятор.
Прерывания
- Прерывание — это сигнал, который приостанавливает нормальный цикл, чтобы процессор мог обработать срочное событие.
- Причины: аппаратное устройство (нажатие клавиши, пустой буфер принтера, поступление сетевого пакета), программный сбой (деление на ноль, недопустимая инструкция, переполнение арифметики), таймер операционной системы, сигнализирующий об окончании временного отрезка, предупреждение о потере питания.
- Прерывания позволяют системе реагировать оперативно без постоянного опроса устройств процессором, и именно благодаря им операционная система обеспечивает многозадачность.

Цикл с проверкой прерываний в конце каждого прохода
Прерывание — это:
Прерывание временно останавливает цикл выборки-исполнения, чтобы процессор мог обработать срочное событие, а затем возобновляет работу.
Что из перечисленного может вызвать прерывание? Выберите все подходящие варианты.
Аппаратные события, программные сбои и таймер ОС вызывают прерывания. Завершение цикла — это обычный поток программы, обрабатываемый командой перехода, а не прерыванием.
Обработка прерывания
- Завершить текущую инструкцию. Сохранить состояние: содержимое PC и других регистров помещается в стек.
- Загрузить адрес подпрограммы обработки прерывания (ISR) в PC и выполнить её. ISR обрабатывает событие.
- Восстановить сохраненное состояние из стека и продолжить выполнение прерванной программы ровно с того места, где она остановилась.

Сохранение, обслуживание, восстановление, возобновление
При возникновении прерывания процессор сначала завершает текущую инструкцию, а затем:
Он сохраняет PC и регистры, выполняет подпрограмму обслуживания прерываний, затем восстанавливает состояние и продолжает с того места, где остановился.
Разобранный пример: ответ на 4 балла о прерывании
- Объясните, как прерывание от входного устройства обнаруживается и обрабатывается в цикле выборки и выполнения.
- Устройство отправляет сигнал прерывания, который устанавливает флаг в регистра прерываний. Процессор проверяет этот регистр в конце каждого цикла, после завершения выполнения текущей инструкции.
- Если флаг установлен и приоритет прерывания выше текущего задания, PC и другие регистры сохраняются в стек. Адрес ISR загружается в PC, иdirname выполняется.
- Когда routine завершается, регистры восстанавливаются из стека, и прерванная программа возобновляется. Четыре пункта, в указанном порядке.
Процессор проверяет наличие прерываний в конце каждого цикла выборки-исполнения, после завершения текущей инструкции.
Именно этот момент позволяет сохранить состояние корректно: ни одна инструкция никогда не остается незавершенной пополам.
Потерянные баллы
- PC увеличивается во время выборки, а не после выполнения. Поставьте
PC ← [PC] + 1вторым, непосредственно послеMAR ← [PC]. - Прерывания проверяются в конце цикла, никогда в середине выполнения инструкции.
- Состояние попадает в стек и возвращается из него. Фразы «ЦП останавливается» или «программа теряется» неверны: она возобновляется ровно там, где была.
- Больше ядер не удваивают скорость; программное обеспечение должно их использовать. Об этом следует упоминать при сравнении характеристик.
Вы поняли
- производительность: частота тактирования, ядра, ширина шины, кэш (а также разрядность слова, ОЗУ, накопители), каждое со своими последствиями
- порты: USB — универсальный последовательный порт и «подключай-и-работай», HDMI — цифровой видео- и аудиовыход, VGA — аналоговый видеовыход
- выборка:
MAR ← [PC],PC ← [PC] + 1,MDR ← [[MAR]],CIR ← [MDR]; затем декодирование, выполнение, повторение - прерывание проверяется в конце каждого цикла: сохранение состояния в стек, выполнение ISR, восстановление, продолжение работы