Устройством, которое обрабатывает информацию в компьютере, является процессор, следовательно, алгоритм должен использовать систему команд процессора, или другими словами записан на машинном языке, представляющем собой последовательности нулей и единиц
Сначала программисты, работавшие на компьютерах первого поколения (50-е – 60-е г.г.), составляли программы на ЯМК (в двоичных кодах), но это довольно сложная работа, поэтому для облегчения программирования были созданы языки программирования высокого уровня (ЯПВУ) — это искусственно созданные языки с несколькими десятками слов (операторов) и строгими правилами синтаксиса. Составление программ на ЯПВУ намного проще. Примеры ЯПВУ: Фортран, Паскаль, Бейсик, Си и др.
Для того чтобы процессор мог выполнить программу, написанную на языке программирования, она и данные с которыми она работает должны быть загружены в оперативную память. Программа написана и загружена в оперативную память и для того чтобы процессор ее выполнил в оперативной памяти, должна быть еще и программа переводчик (транслятор), который переводит программу с языка высокого уровня на язык машинных команд
Таким образом, цепочка событий от составления программы на ЯПВУ до получения результатов решения задачи выглядит так
Человек всегда должен понимать ограниченность возможность компьютера как исполнителя, необходимость предусмотреть все тонкости команд, поручаемых компьютеру. Человек разрабатывает алгоритм, записывает его на ЯПВУ и анализирует результаты выполнения программы.
Компьютер является формальным исполнителем программ.
Итак, компьютер не может обойтись без программы и исходных данных, подготовить их может только человек.
Поэтому можно говорить, что решение задач компьютером — это формальное исполнение алгоритма (программы), а компьютер является формальным исполнителем.
Компьютер может быть использован для решения самых разнообразных задач, поэтому, исходя из условия задачи, человек решает, каким программным средством пользоваться. Если в состав ПО входят программы, подходящие для решения задач человека, то удобнее ими воспользоваться (текстовый редактор, электронные таблицы, базы данных, презентации).
В случае, если нельзя воспользоваться готовым программным обеспечением, приходится прибегать к программированию (операционные системы, доработка ОС, трансляторы, драйверы, архиваторы, антивирусы).
Источник: mydocx.ru
Функции компьютера
От компьютера требуется немногое — выполнять заданную программу, которая представляет собой последовательность команд, записанных в памяти. Выполнение каждой очередной команды, т.е. преобразование данных, возлагается на центральный процессор. Рассмотрим основные фазы выполнения команды процессором.
Процесс обработки отдельной команды принято называть циклом обработки команды. В первом приближении можно считать, что обработка отдельной команды включает две фазы — фазу извлечения и фазу выполнения (рисунок 5). В свою очередь, фаза выполнения может включать в себя несколько операций, назначение которых индивидуально для каждой команды. Завершив выполнение одной команды, компьютер начинает выполнять следующую, и так продолжается до тех пор, пока кто-либо не выключит питание, не будет обнаружена неисправимая (фатальная) ошибка или в программе не встретится команда останова.
Команды активирующие скрытые функции компьютера или ноутбука
Извлечение и выполнение команды
В начале каждого цикла из памяти извлекается очередная команда, адрес которой заранее готовится в счетчике команд PC (program counter). При обращении к PC адрес в нем автоматически увеличивается и, таким образом, сразу подготавливается к следующему циклу, поскольку команды в памяти хранятся в естественном порядке, т.е. в последовательных ячейках.
Пусть, например, в компьютере команда занимает одно 16-разрядное слово памяти. Предположим, что в PC находится число 300. Процессор извлекает команду, находящуюся в ячейке памяти по адресу 300, а в PC при этом автоматически устанавливается код 301. В последующих циклах будут извлечены команды по адресам 301, 302, 303 и т.д. Но учтите, что существуют специальные команды переходов, которые могут изменить эту естественную последовательность.
Считанная команда помещается в регистр команд IR (instruction register). Часть битов кода команды представляет собой код операции, определяющий, какая именно операция должна быть выполнена процессором. Выполняя заданную операцию, процессор будет производить элементарные действия, которые можно разделить на четыре категории:
1. передача «процессор — память»: данные передаются из процессора в память или из памяти в процессор;
2. передача «процессор — модуль ввода-вывода»: данные передаются из процессора в один из модулей ввода-вывода или наоборот;
3. обработка данных: процессор выполняет заданную арифметическую или логическую операцию над данными;
4. управление: команда изменяет естественный порядок выполнения команд программы. Например, процессор извлекает команду из очередной ячейки памяти, скажем ячейки 149, которая указывает, что следующую команду следует извлечь не из ячейки 150, а из ячейки 182. В этом случае процессор передает число 182 в счетчик команд PC, и в фазе извлечения следующего цикла команда будет считана из ячейки 182.
Рассмотрим, как выполняются команды в гипотетическом компьютере, формат команд и данных которого показан на рисунке 6. Процессор этого компьютера имеет три регистра:
- счетчик команд РС, в котором формируется адрес очередной команды;
- регистр команды IR, в который считывается и в котором хранится в процессе выполнения очередная команда;
- аккумулятор АС — временный рабочий регистр.Будем рассматривать выполнение лишь трех команд из всего набора:
- 0001 — загрузка АС из памяти;
- 0010 — сохранение содержимого АС в памяти;
- 0101 — добавление к содержимому АС числа, считанного из памяти.
Разрядность ячейки (слова) памяти —16, причем и команды, и данные имеют длину в одно слово. Под хранение кода операции в команде выделяется 4 разряда, и, следовательно, в системе команд компьютера может быть не более 2 4 =16 различных операций, а количество непосредственно адресуемых ячеек памяти не превышает 2 12 =4096 слов (4 К). На рисунке 7 представлена диаграмма, на которой видно, что происходит с регистрами процессора и содержимым памяти в процессе выполнения небольшого фрагмента программы. Для представления двоичных чисел на этой диаграмме используется шестнадцатеричный код1. Рассматриваемый фрагмент программы состоит из трех команд и выполняет сложение содержимого ячеек памяти по адресу 940 и 941 и сохранение результата по адресу второго слагаемого. На диаграмме представлено состояние регистров ЦП и ячеек памяти после фаз извлечения и выполнения каждой из трех команд программы. 1. В счетчике команд PC содержится число 300 — адрес первой команды фрагмента. Эта команда на фазе извлечения считывается в регистр команд IR. Учтите, что при этом адрес команды сначала передается в регистр адреса в памяти MAR, а считанное слово загружается в регистр данных памяти MBR, а уже из него передается в IR (на диаграмме эти регистры не показаны). При считывании команды одновременно выполняется приращение адреса в PC. 2. Первые 4 разряда в IR — код операции — указывают ЦП, что нужно выполнить чтение ячейки памяти по адресу, заданному в остальной части команды (940), и результат записать в аккумулятор АС. 3. Следующая команда извлекается из ячейки памяти, заданной содержимым PC, а само содержимое PC увеличивается.
- Первые 4 разряда новой команды задают сложение содержимого АС с числом, считанным из ячейки памяти, адрес которой указан в адресной части команды. Вычисленная сумма остается в АС.
5. Извлекается следующая команда. 6. Содержимое АС записывается в память по адресу, указанному в адресной части команды — в ячейку 941. Итак, выполнение трех команд, задающих сложение содержимого двух ячеек памяти и сохранение результата в памяти, заняло шесть фаз работы процессора. Для получения того же результата в компьютере с более развитой системой команд их бы потребовалось меньше. Системы команд современных компьютеров содержат команды, адресная часть которых имеет два или даже более полей адреса. В таком случае один цикл обработки команды может включать несколько фаз обращения к памяти. Кроме того, некоторые команды могут задавать обращение к регистрам модулей ввода-вывода. Например, команда компьютера PDP-11, имеющая символическое представление ADD В, А, задает суммирование содержимого ячеек памяти В и А и сохранение результата в ячейке А. В этом компьютере основной цикл обработки команды включает следующие фазы: • считывание команды ADD; • считывание содержимого ячейки А в регистр процессора; • считывание содержимого ячейки В в регистр процессора (таким образом, процессор должен иметь, как минимум, два регистра, а не один аккумулятор, как в нашем гипотетическом компьютере); • суммирование содержимого двух регистров; • запись результата в ячейку памяти по адресу А. Рисунок 7 . Диаграмма выполнения фрагмента программы гипотетического компьютера. Помимо обращения к ячейкам памяти в команде может быть задана и операция ввода-вывода. На рисунке 8 представлена более подробная диаграмма состояний при выполнении команды, чем та, которая была показана на рисунке 5. Следует учитывать, что при выполнении определенных команд некоторые состояния могут «обходиться», а в другие — система может попадать несколько раз в течение одного и того же цикла обработки команды. Смысл представленных на диаграмме состояний следующий. • Вычисления адреса команды (IAC — Instruction Address Calculation). При естественном порядке выполнения команд программы адрес следующей команды образуется в результате прибавления константы к адресу текущей команды. Если, например, длина команды 16 разрядов, и такую же разрядность имеют слова в памяти, то адрес каждой очередной команды отличается от адреса предыдущей на 1. Если же оперативная память организована таким образом, что адресуемой единицей данных является 8-разрядный байт, то следует адрес в PC увеличивать на 2. • Извлечение команды (IF — Instruction Fetch). Считывание команды из ячейки памяти по адресу, заданному в PC, в регистр процессора. • Расшифровка кода операции (IOD —Instruction Operation Decoding). Анализ кода операции и выяснение типа затребованной операции, количества и типов участвующих в ней операндов (или операнда). • Вычисления адреса операнда (ОАС — Operand Address Calculation). Если в операции используются операнды, хранящиеся в памяти или передаваемые через подсистему ввода-вывода, то на этой фазе определяются их «физические» адреса. • Извлечение операнда (OF — Operand Fetch). Считывание операнда из заданной ячейки памяти или из модуля ввода-вывода. • Обработка данных (DO — Data Operation). Выполнение операции, предусмотренной кодом операции. • Сохранение результата (OS — Operand Store). Запись результата операции в заданную ячейку памяти или передача в модуль ввода-вывода.
Ограничение
Для продолжения скачивания необходимо пройти капчу:
Источник: studfile.net
Команды процессора. Принцип работы процессора. Система команд процессора.
Предположим, что вы — рабочая группа, которой необходимо как можно быстрее решить некоторую задачу. Вы должны работать в помещении 1, а условие задачи, исходные данные и этапы решения находятся в помещении 2, причем выдача необходимой информации происходит достаточно медленно. В помещение 2 может ходить только 1 человек.
Ваша работа должна выполняться по следующему плану:
- Человек идет в помещение 2 за порцией данных, необходимых для решения задачи.
- Приносит их в помещение 1.
- Рабочая группа быстро обрабатывает данные и посылает за следующей порцией информации. При этом она бездействует в ее ожидании.
- Человек идете в помещение 2 за следующей порцией информации.
- Приносит их в помещение 1.
- Рабочая группа быстро обрабатывает данные и посылает за следующей порцией информации. При этом она бездействует в ее ожидании.
- И т.д., до тех пор, пока задача не будет решена.
Подумайте и скажите, каким образом можно ускорить этот процесс, если Вы обрабатываете информацию быстрее, чем вам ее вам дают в помещении 2, в результате чего вы теряете много времени.
Возникают следующие вопросы:
- Можно ли поручить решение задачи более «умной» рабочей группе, которая решит ее быстрее?
- Можно ли информацию из помещения 2 частично сразу перенести в Помещение 1?
- Можно ли посылать за информацией в помещение 2 не одного человека, а нескольких?
Только что, вы смоделировали процесс ускорения работы процессора. Помещение 1 — это процессор, а помещение 2 — это оперативная память. Главная задача ученых и инженеров — сделать процессоры более производительными.
Достигается это за счет:
- Повышения тактовой частоты (более «умная» рабочая группа). Это самый очевидный путь повышения производительности.
- Повышения разрядности процессора (поручить приносить информацию из помещения 2 более чем одному человеку). Чем выше разрядность процессора ( количество человек), тем больше байтов (больше информации) он может обработать за один такт.
- Кэширования памяти. Процессор по отношению, например, к оперативной памяти является более быстрым устройством, поэтому он вынужден постоянно простаивать, ожидая медленно работающую память. Поэтому, чтобы процессор реже обращался к оперативной памяти, внутри него создают небольшой участок памяти размерим 256 или 512 Кбайт. Эта «сверхоперативная» память получила название кэш. В кэш-память процессор записывает те данные, которые получил из оперативной памяти, и если это данные понадобятся еще раз, он возьмет их из кэш. Таким образом, работа процессора происходит быстрее.
Принцип работы процессора.
Процессор является одним из тех устройств, которые все время должен работать. Процессор ПК не может быть выключен. Даже если на наш взгляд процессор ничего не делает, все равно выполняется какая-то программа.
Процессор работает, по сравнению с другими устройствами компьютера, с наибольшей скоростью. И самыми медленными по сравнению с ним являются внешние устройства, в том числе и человек. Так, например, работая с клавиатурой, человек отправляет в компьютер в среднем один байт в секунду (нажимает на одну клавишу в секунду).
Процессор обрабатывает такую и формацию за 0,000001 секунды. А что же делает процессор в остальное время, если он не может выключаться? А в остальное время он может получать сигналы от мыши, от других компьютеров, от гибких и жестких дисков. Он успевает несколько раз в течение секунды подзарядить оперативную память, обслужить внутренние часы компьютера, отдать распоряжение, как правильно отображать информацию на экране, и выполнить множество прочих дел.
Система прерываний процессора.
Каким образом, в таком ритме работы, процессор узнает, откуда приходят данные — от клавиатуры или от мыши, от монитора или от принтера? А может быть от микроволновой печи? И как с такими данными работать?
Для этого используются прерывания, которых существует 256 видов. Прерывания прерывают работу процессора над текущим заданием и направляют его на выполнение другой программы.
Предположим, мы решили подключить к компьютеру микроволновую печь. Выберем для нее какое-нибудь прерывание, не используемое другим устройством, например «103». Когда микроволновая печь захочет обратить на себя внимание процессора, она пошлет к нему сигнал и число 103. Процессор получит число и заглянет в специальную область памяти- вектор прерываний, где найдет адрес руководства по работе с микроволновой печью и начнет работать с этим устройством.
Новые сигналы прерываний могут временно приостановить работу текущей программы, и вернуться к ней по окончании работы с пришедшим прерыванием. Что было бы, если бы процессор работал не со скоростью сотни миллионов байтов в секунду, а в привычном для человека ритме. Как часто получал бы он сигналы?
- Сигналы от клавиатуры он получал бы один раз в десять лет. Обработка слова «компьютер» занимала бы почти 100 лет.
- Данные от мыши — один раз в год. Перемещение указателя мыши из одного угла экрана в другой заняло бы тысячелетие.
- Данные, поступившие по телефонным проводам через модем, — один раз в сутки. Прием и обработка одной страницы текста занимали бы 5-7 лет.
- Данные от гибкого диска — один символ в несколько часов.
- Данные от жесткого или лазерного диска — один байт в час.
Система команд процессора.
Процессор обрабатывает информацию, выполняя определенные команды. Таких команд может быть более тысячи. У каждой команды есть свой код (номер). Например, есть команда 000, 001, 002 и т.д. Коды всех команд процессора записаны в двоичной форме в специальном документе, который называется системой команд процессора.
У каждого процессора своя система команд, поэтому один и тот же код для, разных процессоров может обозначать разные команды. Если же процессоры имеют ограниченную совместимость, то их рассматривают как семейство. Примером семейства процессоров являются все процессоры Intel. Их родоначальником был процессор Intel 8086, на базе которого был сделан первый IBM PC. Процессоры семейства совместимы «сверху вниз», т.е. новый процессор понимает» все команды своих предшественников, но не наоборот.
Таблица прерываний AMD Atlon 64 X2:
DMA 02 | Исключительный | Стандартный контроллер гибких дисков |
DMA 04 | Исключительный | Контроллер прямого доступа к памяти |
IRQ 00 | Исключительный | Высокоточный таймер событий |
IRQ 01 | Исключительный | Стандартная (101/102 клавиши) или клавиатура PS/2 Microsoft Natural |
IRQ 03 | Общий | Ethernet-контроллер |
IRQ 04 | Общий | Прочее устройство моста PCI |
IRQ 06 | Исключительный | Последовательный порт (COM1) |
IRQ 08 | Исключительный | Стандартный контроллер гибких дисков |
IRQ 09 | Исключительный | Высокоточный таймер событий |
IRQ 11 | Общий | Microsoft ACPI-совместимая система |
IRQ 13 | Общий | SM контроллер шины |
IRQ 11 | Исключительный | Процессор числовых данных |
IRQ 17 | Общий | Realtek RTL8139 Family PCI Fast Ethernet NIC |
IRQ 17 | Общий | NVIDIA GeForce 7600 GT |
IRQ 18 | Общий | Стандартный OpenHCD USB хост-контроллер |
IRQ 22 | Общий | Стандартный двухканальный контроллер PCI IDE |
IRQ 22 | Общий | Стандартный расширенный PCI — USB хост-контроллер |
IRQ 23 | Общий | Стандартный двухканальный контроллер PCI IDE |
IRQ 23 | Общий | Стандартный контроллер гибких дисков |
Всю таблицу выписывать нет смысла, так, как она очень обьемная. Посмотреть свою таблицу прерываний вы можите через программу EVEREST, заходим во вкладку Устройства, и выбираем Ресурсы устройств.
Все процессоры можно разделить на:
- Процессоры с расширенной системой команд (CISC — процессоры).
- Процессоры с сокращенной системой команд (RISC — процессоры).
Первый тип процессоров характеризуется небольшим числом регистров, но большим количеством команд, более длинным форматом их записи в байтах и, соответственно, более медленной работой. Такие процессоры используются в универсальных вычислительных системах и являются стандартом для микрокомпьютеров.
Второй тип процессоров характеризуется меньшим количеством команд и, соответственно, более высоким быстродействием. Но сложные операции в этом случае приходится разбивать на последовательность простейших команд, что не всегда эффективно. Поэтому такие процессоры используются в специализированных вычислительных системах, ориентированных на выполнение однообразных операций.
Источник: more-it.ru