Последовательность работы пк при выполнении программы: 9. Последовательность работы блоков персонального компьютера.

Как работает процессор?

Инструмент проще, чем машина. Зачастую инструментом работают руками, а машину приводит в действие паровая сила или животное.

Чарльз Бэббидж

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

Процессор — это сердце/мозг любого компьютера. Его основное назначение — арифметические и логические операции, и прежде чем погрузиться в дебри процессора, нужно разобраться в его основных компонентах и принципах их работы.

Два основных компонента процессора

Устройство управления

Устройство управления (УУ) помогает процессору контролировать и выполнять инструкции. УУ сообщает компонентам, что именно нужно делать. В соответствии с инструкциями он координирует работу с другими частями компьютера, включая второй основной компонент — арифметико-логическое устройство (АЛУ). Все инструкции вначале поступают именно на устройство управления.

Существует два типа реализации УУ:

  • УУ на жёсткой логике (англ. hardwired control units). Характер работы определяется внутренним электрическим строением — устройством печатной платы или кристалла. Соответственно, модификация такого УУ без физического вмешательства невозможна.
  • УУ с микропрограммным управлением (англ. microprogrammable control units). Может быть запрограммирован для тех или иных целей. Программная часть сохраняется в памяти УУ.

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

Арифметико-логическое устройство

Это устройство, как ни странно, выполняет все арифметические и логические операции, например сложение, вычитание, логическое ИЛИ и т. п. АЛУ состоит из логических элементов, которые и выполняют эти операции.

Большинство логических элементов имеют два входа и один выход.

Ниже приведена схема полусумматора, у которой два входа и два выхода. A и B здесь являются входами, S — выходом, C — переносом (в старший разряд).

Схема арифметического полусумматора

Хранение информации — регистры и память

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

Регистры

Регистр — минимальная ячейка памяти данных. Регистры состоят из триггеров (англ. latches/flip-flops). Триггеры, в свою очередь, состоят из логических элементов и могут хранить в себе 1 бит информации.

Прим. перев. Триггеры могут быть синхронные и асинхронные. Асинхронные могут менять своё состояние в любой момент, а синхронные только во время положительного/отрицательного перепада на входе синхронизации.

По функциональному назначению триггеры делятся на несколько групп:

  • RS-триггер: сохраняет своё состояние при нулевых уровнях на обоих входах и изменяет его при установке единице на одном из входов (Reset/Set — Сброс/Установка).
  • JK-триггер: идентичен RS-триггеру за исключением того, что при подаче единиц сразу на два входа триггер меняет своё состояние на противоположное (счётный режим).
  • T-триггер: меняет своё состояние на противоположное при каждом такте на его единственном входе.
  • D-триггер: запоминает состояние на входе в момент синхронизации. Асинхронные D-триггеры смысла не имеют.

Для хранения промежуточных данных ОЗУ не подходит, т. к. это замедлит работу процессора. Промежуточные данные отсылаются в регистры по шине. В них могут храниться команды, выходные данные и даже адреса ячеек памяти.

Принцип действия RS-триггера

Память (ОЗУ)

ОЗУ (оперативное запоминающее устройство, англ. RAM) — это большая группа этих самых регистров, соединённых вместе. Память у такого хранилища непостоянная и данные оттуда пропадают при отключении питания. ОЗУ принимает адрес ячейки памяти, в которую нужно поместить данные, сами данные и флаг записи/чтения, который приводит в действие триггеры.

Прим. перев. Оперативная память бывает статической и динамической — SRAM и DRAM соответственно. В статической памяти ячейками являются триггеры, а в динамической — конденсаторы. SRAM быстрее, а DRAM дешевле.

Команды (инструкции)

Команды — это фактические действия, которые компьютер должен выполнять. Они бывают нескольких типов:

  • Арифметические: сложение, вычитание, умножение и т. д.
  • Логические: И (логическое умножение/конъюнкция), ИЛИ (логическое суммирование/дизъюнкция), отрицание и т. д.
  • Информационные: move, input, outptut, load и store.
  • Команды перехода: goto, if ... goto, call и return.
  • Команда останова: halt.

Прим. перев. На самом деле все арифметические операции в АЛУ могут быть созданы на основе всего двух: сложение и сдвиг. Однако чем больше базовых операций поддерживает АЛУ, тем оно быстрее.

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

В процессоре инструкции реализуются на аппаратном уровне. За один такт одноядерный процессор может выполнить одну элементарную (базовую) инструкцию.

Группу инструкций принято называть набором команд (англ. instruction set).

Тактирование процессора

Быстродействие компьютера определяется тактовой частотой его процессора. Тактовая частота — количество тактов (соответственно и исполняемых команд) за секунду.

Частота нынешних процессоров измеряется в ГГц (Гигагерцы). 1 ГГц = 10⁹ Гц — миллиард операций в секунду.

Чтобы уменьшить время выполнения программы, нужно либо оптимизировать (уменьшить) её, либо увеличить тактовую частоту. У части процессоров есть возможность увеличить частоту (разогнать процессор), однако такие действия физически влияют на процессор и нередко вызывают перегрев и выход из строя.

Выполнение инструкций

Инструкции хранятся в ОЗУ в последовательном порядке. Для гипотетического процессора инструкция состоит из кода операции и адреса памяти/регистра. Внутри управляющего устройства есть два регистра инструкций, в которые загружается код команды и адрес текущей исполняемой команды. Ещё в процессоре есть дополнительные регистры, которые хранят в себе последние 4 бита выполненных инструкций.

Ниже рассмотрен пример набора команд, который суммирует два числа:

  1. LOAD_A 8. Это команда сохраняет в ОЗУ данные, скажем, <1100 1000>. Первые 4 бита — код операции. Именно он определяет инструкцию. Эти данные помещаются в регистры инструкций УУ. Команда декодируется в инструкцию load_A — поместить данные 1000 (последние 4 бита команды) в регистр A.
  2. LOAD_B 2. Ситуация, аналогичная прошлой. Здесь помещается число 2 (0010) в регистр B.
  3. ADD B A. Команда суммирует два числа (точнее прибавляет значение регистра B в регистр A). УУ сообщает АЛУ, что нужно выполнить операцию суммирования и поместить результат обратно в регистр A.
  4. STORE_A 23. Сохраняем значение регистра A в ячейку памяти с адресом 23.

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

Шина

Все данные между процессором, регистрами, памятью и I/O-устройствами (устройствами ввода-вывода) передаются по шинам. Чтобы загрузить в память только что обработанные данные, процессор помещает адрес в шину адреса и данные в шину данных. Потом нужно дать разрешение на запись на шине управления.

Кэш

У процессора есть механизм сохранения инструкций в кэш. Как мы выяснили ранее, за секунду процессор может выполнить миллиарды инструкций. Поэтому если бы каждая инструкция хранилась в ОЗУ, то её изъятие оттуда занимало бы больше времени, чем её обработка. Поэтому для ускорения работы процессор хранит часть инструкций и данных в кэше.

Если данные в кэше и памяти не совпадают, то они помечаются грязными битами (англ. dirty bit).

Поток инструкций

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

Однако такое решение подходит только для тех инструкций, которые не зависят друг от друга.

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

Если хотите узнать о процессорах больше, посмотрите, какие бывают популярные архитектуры: CISC, RISC, MISC и другие и виды.

Перевод статьи «How does a CPU work?»

Защита компьютера от вирусов — Служба поддержки Майкрософт

Windows 10 Windows 8.1 Еще…Меньше

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



  • Использование приложения для защиты от вредоносных программ. Установка приложения для защиты от вредоносных программ и его обновление могут помочь защитить компьютер от вирусов и других вредоносных программ (вредоносных программ). 

    Microsoft Defender — это бесплатное антивредоносное программное обеспечение, включенное в Windows, и оно обновляется автоматически через клиентский компонент Центра обновления Windows. Существуют также антивредоносные продукты, созданные другими компаниями, которые можно выбрать.


    Больше не всегда лучше

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


  • Не открывайте сообщения электронной почты от незнакомых отправителей или незнакомые вложения. Многие вирусы передаются в виде вложений в электронные письма, и для их распространения достаточно открыть вложение. Настоятельно рекомендуем открывать только ожидаемые или известные вам вложения. Дополнительные сведения см. в следующем разделе: Защита от фишинга.


  • Используйте блокирование всплывающих окон в браузере. Всплывающие окна — это небольшие окна браузера, которые отображаются поверх просматриваемого веб-сайта. Несмотря на то, что большинство таких окон используется для рекламных целей, в них может содержаться вредоносный или небезопасный код. Блокирование всплывающих окон позволяет избавиться от некоторых или даже всех всплывающих окон. Блокирование всплывающих окон в Microsoft Edge включено по умолчанию.


  • При использовании Microsoft Edge, убедитесь, что SmartScreen включен. SmartScreen в Microsoft Edge помогает защитить от фишинга и атак вредоносных программ, предупреждая о возможной небезопасности веб-сайта или расположения загрузки. Дополнительные сведения см. в разделе «Как SmartScreen может помочь защитить меня в Microsoft Edge?


  • Обратите внимание на уведомления Windows SmartScreen. С осторожностью запускайте неизвестные приложения, скачанные из Интернета. Такие приложения с большой вероятностью могут оказаться небезопасными. При скачии и запуске приложения из Интернета Фильтр SmartScreen использует сведения о репутации приложения, чтобы предупреждать вас, если приложение не известно и может быть вредоносным.


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

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


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

    Дополнительные сведения о настройке параметров конфиденциальности в Microsoft Edge см. в разделе Настройка параметров конфиденциальности согласно вашим потребностям.


  • Убедитесь, что функция контроля учетных записей включена. При внесении на компьютере изменений, требующих прав администратора, функция контроля учетных записей уведомит вас об этом и предложит утвердить эти изменения. Контроль учетных записей не позволяет вирусам вносить нежелательные изменения. Чтобы открыть контроль учетных записей, проведите пальцем от правой границы экрана, а затем коснитесь элемента Поиск. (Если вы используете мышь, наведите указатель на правый верхний угол экрана, переместите указатель вниз, а затем щелкните Поиск.) Введите в поле поиска контроль учетных записей, а затем выберите элемент Изменение параметров контроля учетных записей.


  • Убедитесь, что включена защита от незаконного изменения. В Windows 10 и 11 у нас есть функция под названием «Защита от незаконного изменения», которая предотвращает изменение параметров безопасности неавторизованными приложениями. Многие вирусы и вредоносные программы пытаются отключить программное обеспечение для защиты от вредоносных программ или другие параметры безопасности при их установке, чтобы избежать обнаружения. Сведения о том , как убедиться, что параметры безопасности включены, см. в разделе «Предотвращение изменений параметров безопасности с помощью защиты от незаконного изменения».


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

Внимание:  После удаления установленных программ для обеспечения безопасности в Интернете ваш компьютер станет незащищенным. Если вы не установили другую программу защиты от вредоносных программ, убедитесь, что антивирусная программа в Microsoft Defender и брандмауэр Windows включены.

Чтобы удалить нежелательные антивредоносные программы:

  1. Перейдите в меню Пуск > Параметры > Приложения

  2. org/ListItem»>

    Найдите нежелательное приложение или приложения и выберите их

  3. Нажмите Удалить

Скорее всего, потребуется перезагрузить компьютер после удаления каждого приложения.

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



Как компьютер выполняет код?

Общеизвестно, что код пишется разработчиком и как люди взаимодействуют с компьютерами. Однако задумывались ли вы когда-нибудь о том, как программное обеспечение, такое как код, взаимодействует с компьютерным оборудованием, таким как ЦП (центральный процессор)? Если ответ да, то вы пришли в нужное место.

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

Что такое двоичный код?

Двоичный код — это система счисления с основанием 2, которую процессоры и память используют для выполнения кода. Двоичные числа могут быть только 1 или 0, отсюда и их название. Если вы сгруппируете восемь двоичных чисел (00000000), вы получите то, что известно как байт, а одно двоичное число (0) называется битом.

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

Изображение предоставлено: 991joseph/Wikimedia Commons

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

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

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

Транзисторы, используемые в качестве переключателя Транзистор

Изображение предоставлено: Evan-Amos/Wikimedia and Square Wave Изображение предоставлено: Sponk/Wikimedia

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

Что такое архитектура процессора?

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

Архитектура ЦП также определяет ISA процессора (Архитектура набора инструкций). ISA содержит встроенный список инструкций, которые ЦП может выполнять изначально. Эти инструкции затем последовательно смешиваются вместе с помощью языка программирования, чтобы создать то, что известно как программа. Обычно в процессоре легко доступны сотни инструкций, включая сложение, вычитание, перемещение, сохранение и загрузку.

Вот пример набора инструкций:

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

Синтаксис инструкций по сборке

За кодом операции следует операнд. Операнд содержит значения и адреса, где будет использоваться код операции.

На схеме показана 8-битная инструкция. Если ЦП имеет 64-битную архитектуру, то инструкции могут иметь ширину до 64 бит, что делает его более производительным процессором.

Связано: Чем отличаются процессоры RISC и CISC?

Ассемблер

Теперь, когда вы понимаете двоичные сигналы, вы можете узнать, как ваш компьютер интерпретирует такие сигналы. То, как следует интерпретировать машинный код, зависит от типа логики, используемой в ассемблере (программа низкого уровня, используемая для декодирования и сборки кода в правильный двоичный код).

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

9007

0050

0

031

2 Q

00101001

A

00101111

G

00110101

M

00111011

S

01000001

Y

00101010

B

00110000

00110110

N

00111100

T

01000010

Z

00101011

C

00110001

I

00110111

00111101

У

7

0087

00101100

D

00110010

J

00111000

P

00111110

V

00101101

Е

00110011

К

00111111

W

00101110

F

00110100

L

00111010

R

0100000

X

Поскольку наш ассемблер использует ASCII (8-битную версию), каждые восемь двоичных чисел интерпретируются как один символ в двоичном коде. Ассемблер берет этот байт и интерпретирует его в соответствии с заданными стандартами. Например, 01000001 01101001 01010100 переводится как «бит».

Понимание языка ассемблера

Язык ассемблера — это удобочитаемый язык программирования низкого уровня, который непосредственно управляет кодами операций и операндами архитектуры ЦП.

Вот пример простого ассемблерного кода с использованием показанного ранее набора инструкций:

 1. LODA #5 
2. LODB #7
3. ADD R3
4. STRE M12

Этот блок кода хранится в ОЗУ, пока ЦП не выберет каждую строку кода одну за другой.

Цикл выборки, декодирования и выполнения ЦП

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

Выборка: Счетчик инструкций в ЦП берет одну строку инструкции из ОЗУ, чтобы сообщить ЦП, какую инструкцию выполнять следующей.

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

 1. 00010101 
2. 00100111
3. 00110011
4. 01011100

Выполнить: Затем ЦП выполняет двоичные файлы, применяя инструкции, указанные кодом операции, к предоставленным операндам.

Компьютер выполнит это следующим образом:

  1. Загрузить в первый регистр число 5
  2. Загрузить во второй регистр число 7
  3. 5 + 7 = 12, сохранить 12 в третий регистр
  4. Сохранить значение третий регистр по адресу RAM M12

Компьютер успешно сложил два числа и сохранил значение по указанному адресу ОЗУ.

Отлично! Теперь вы знаете, как компьютер выполняет код. Однако это не останавливается на достигнутом.

Идем дальше

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

Что такое компилятор и интерпретатор?

Компилятор и интерпретатор — это трансляционные программы, которые берут исходный код (программы, созданные на языках программирования высокого уровня) и переводят их на язык ассемблера, который затем ассемблер декодирует в двоичный код.

Интерпретатор возьмет одну строку кода и немедленно выполнит ее. Обычно это используется на терминалах, таких как терминал Linux Bash Shell и терминал Windows PowerShell. Отлично подходит для выполнения простых разовых задач.

Изображение предоставлено: Rlistmedia/Wikimedia Common

Напротив, компилятор возьмет несколько строк кода и скомпилирует их для создания программы. Примерами таких программ могут быть Microsoft Word, Photoshop, Google Chrome, Safari и Steam.

С созданием компиляторов и интерпретаторов были созданы языки программирования высокого уровня.

Языки программирования высокого уровня

Языки программирования высокого уровня — это любой язык после кода ассемблера. Некоторые из этих языков, с которыми вы, возможно, знакомы, — это C, Python, Java и Swift. Эти языки программирования сделали программирование более удобочитаемым и простым, чем язык ассемблера.

Вот сравнение, иллюстрирующее, насколько сложнее программировать на ассемблере, чем на языке программирования высокого уровня, таком как Python:

Оба кода будут печатать «Hello World».

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

Связано: Python против Java: лучший язык на 2022 год

Компьютеры могут выполнять любой код

Компьютер — это устройство, которое может читать только двоичные файлы. Эти двоичные файлы создаются более чем миллиардом транзисторов микроскопических размеров, упакованных внутри процессора. Расположение транзисторов диктует ISA ЦП (архитектуру набора инструкций), которая предоставляет сотни инструкций, которые ЦП может легко выполнить, как только его код операции вызывается через код. Разработчики последовательно смешивают и сопоставляют эти инструкции, что создает целую программу, такую ​​как игровые движки, веб-браузеры, приложения и драйверы.

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

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

Языки программирования высокого уровня, такие как Python, C и Java, были созданы, чтобы сделать программирование проще, быстрее и удобнее. Подавляющему большинству программистов больше не нужно кодировать на языке ассемблера, поскольку их простые в использовании языки программирования высокого уровня могут быть преобразованы в ассемблере с помощью компилятора.

Надеюсь, теперь вы лучше понимаете основы работы компьютеров и то, как они выполняют код.

Javanotes 9, Раздел 1.1 — Цикл выборки и выполнения: машинный язык

Раздел 1.1


Компьютер представляет собой сложную систему, состоящую из множества
разные компоненты. Но в сердце — или, если хотите, в мозгу —
компьютер — это единственный компонент, который выполняет фактические вычисления. Это
Центральный процессор или ЦП. В современном
настольный компьютер, центральный процессор представляет собой один «чип» размером порядка одного квадратного дюйма в
размер. Работа процессора заключается в выполнении программ.

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

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

На уровне машинного языка работа ЦП довольно
простой (хотя и очень сложный в деталях). ЦП выполняет
программа, хранящаяся в виде последовательности инструкций машинного языка в главном
Память. Он делает это, многократно читая или извлекая,
инструкцию по памяти, а затем выполнение, или
выполнение, это указание. Этот процесс — получение
инструкцию, выполнить ее, получить другую инструкцию, выполнить ее и т. д.
навсегда — называется циклом выборки и выполнения.
За одним исключением, которое будет рассмотрено в следующем разделе,
это все, что когда-либо делает ЦП. (Это все действительно несколько сложнее в современных
компьютеры. Типичный процессорный чип в наши дни содержит несколько «ядер» ЦП, что позволяет
одновременное выполнение нескольких инструкций. И доступ к основной памяти ускорен
«кэшами» памяти, к которым можно получить более быстрый доступ, чем к основной памяти, и которые предназначены для хранения
данные и инструкции, которые ЦП, вероятно, скоро потребуются. Однако эти осложнения
не изменяйте основную операцию.)

ЦП содержит арифметико-логическое устройство или АЛУ, которое является частью
процессор, выполняющий такие операции, как сложение и вычитание. Он также держит
небольшое количество регистров, представляющих собой небольшие блоки памяти, способные
держит один номер. Типичный ЦП может иметь 16 или 32 регистра «общего назначения».
которые содержат значения данных, которые сразу доступны для обработки, и многие машинные
языковые инструкции относятся к этим регистрам. Например, может быть инструкция
который берет два числа из двух указанных регистров, складывает эти числа (используя АЛУ) и сохраняет
результат обратно в регистр. И могут быть инструкции по копированию значения данных из
основную память в регистр или из регистра в основную память.

ЦП также включает регистры специального назначения. Наиболее важным из них является
программный счетчик или ПК. ЦП использует ПК для
отслеживать, где он находится в программе, которую он выполняет. ПК просто сохраняет
адрес памяти следующей команды, которую ЦП должен выполнить. В начале
каждого цикла выборки и выполнения ЦП проверяет ПК, чтобы узнать, какая инструкция
должно получиться. В ходе цикла выборки и выполнения число
в ПК обновляется, чтобы указать инструкцию, которая должна быть выполнена в
следующий цикл. Обычно, но не всегда, это просто инструкция, которую
последовательно следует за текущей инструкцией в программе. Какой-то машинный язык
инструкции изменяют значение, сохраненное в ПК. Это делает возможным
чтобы компьютер «прыгал» с одной точки программы на другую, что
необходим для реализации функций программы, известных как циклы и переходы
которые обсуждаются в Разделе 1. 4.


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

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

Компьютер может работать напрямую
с двоичными числами, потому что переключатели могут легко представлять такие числа: Turn
переключатель, чтобы представить один; выключите его, чтобы представить ноль. Машина
языковые инструкции хранятся в памяти в виде последовательности включения или выключения переключателей.
выключенный. Когда инструкция на машинном языке загружается в ЦП, все это
случается, что определенные переключатели включаются или выключаются по шаблону, который
кодирует эту инструкцию. ЦП построен, чтобы реагировать на это
шаблон, выполняя закодированную им инструкцию; он делает это просто из-за
способ, которым все другие переключатели в ЦП соединены вместе.

Читайте также: