АРХИТЕКТУРА вс лекции.pptx
- Количество слайдов: 41
АРХИТЕКТУРА ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА
ПОНЯТИЕ ОБ АРХИТЕКТУРЕ ЭВМ Архитектура – это компоненты компьютера, их устройство, выполняемые ими функции, а также взаимосвязи между этими компонентами.
УРОВНИ РАССМОТРЕНИЯ АРХИТЕКТУРЫ Внешний уровень. На этом уровне видит архитектуру автомобиля обычный пассажир. Он знает, что машина имеет колёса, кузов, сиденья, мотор и другие части. Он понимает, что для работы автомобиля в него надо заливать бензин, знает назначение дворников на ветровом стекле, ремней безопасности и т. д. И этого эму вполне достаточно, чтобы успешно пользоваться машиной, главное – правильно назвать водителю нужный адрес
УРОВНИ РАССМОТРЕНИЯ АРХИТЕКТУРЫ Концептуальный уровень. Примерно на этом уровне видит архитектуру машины её водитель. В отличие от пассажира он знает, что в его автомобиль нужно заливать вовсе не бензин, а дизельное топливо, кроме того, необходимо ещё заливать масло и воду. Водитель знает назначение всех органов управления машиной, марку топлива, температуру окружающего воздуха, ниже которой необходимо заливать в машину не обычную воду, а так называемый антифриз и т. д. Ясно, что водитель видит архитектуру автомобиля совсем иначе, нежели обычный пассажир.
УРОВНИ РАССМОТРЕНИЯ АРХИТЕКТУРЫ Внутренний уровень. На этом уровне автомобиль видит автомобиль инженер конструктор, ответственный за его разработку. Он знает марку металла, из которого изготавливаются цилиндры двигателя, зависимость отдаваемой мотором мощности от вида топлива, допустимую нагрузку на отдельные узлы автомобиля, антикоррозийные свойства внешнего корпуса и многое другое.
ПОЛЬЗОВАТЕЛИ Конечные пользователи (непрограммисты). В своей работе все они используют компьютер, снабжённый соответствующим, как говорят, прикладным программным обеспечением. Это различные базы данных, текстовые редакторы, пакеты прикладных программ, системы автоматического перевода, обучающие, игровые и музыкальные программы. Этим пользователям достаточно видеть архитектуру компьютеров на внешнем уровне, их абсолютное большинство, примерно 90% от общего числа. Вообще говоря, компьютеры разрабатываются и выпускаются для нужд этих пользователей.
ПОЛЬЗОВАТЕЛИ Прикладные программисты Эти пользователи разрабатывают для конечных пользователей прикладное программное обеспечение. В своей работе они используют различные языки программирования высокого уровня (Паскаль, Фортран, Си, языки баз данных и т. д. ) и соответствующие системы программирования. Прикладным программистам достаточно видеть архитектуру компьютеров на концептуальном уровне. Можно примерно считать, что прикладных программистов примерно 8– 9% от числа всех пользователей.
ПОЛЬЗОВАТЕЛИ Системные программисты. Это самая небольшая (порядка 1%) группа пользователей, которая видит архитектуру ЭВМ на внутреннем уровне. Основная деятельность системных программистов заключается в разработке системного программного обеспечения.
МАШИНА ФОН НЕЙМАНА В 1946 Джон фон Нейман (с соавторами) описал архитектуру некоторого абстрактного вычисли теля, который сейчас принято называть машиной фон Неймана. Эта машина является абстрактной моделью ЭВМ, однако, эта абстракция отличается от абстрактных исполнителей алгоритмов (например, машины Тьюринга). Машина фон Неймана не поддаётся реализации, так как многие детали в архитектуре этой машины не конкретизированы.
СХЕМА МАШИНЫ ФОННЕЙМАНА
СХЕМА МАШИНЫ ФОННЕЙМАНА Толстыми стрелками показаны потоки команд и данных, а тонкими – передача между устройствами управляющих сигналов. Машина фон Неймана состоит из памяти, устройств ввода/вывода и центрального процессора (ЦП). Центральный процессор, в свою очередь, состоит из устройства управления (УУ) и арифметико-логического устройства (АЛУ).
ПАМЯТЬ Принцип линейности и однородности памяти. Память – линейная (упорядоченная) однородная последовательность некоторых элементов, называемых ячейками. В любую ячейку памяти другие устройства машины (по толстым стрелкам) могут записать и считать информацию, причём время чтения из любой ячейки одинаково для всех ячеек. Время записи в любую ячейку тоже одинаково (это и есть принцип однородности памяти)
Такая память в современных компьютерах называется памятью с произвольным доступом (Random Access Memory, RAM). На практике многие ЭВМ могут иметь участки памяти разных видов, одни из которых поддерживают только чтение информации (Read Only Memory, ROM), другие могут допускать запись, но за большее время, чем в остальную память (это так называемая полупостоянная память) и др.
Ячейки памяти в машине фон Неймана нумеруются от нуля до некоторого положительного числа N, которое обычно является степенью двойки. Адресом ячейки называется её номер. Каждая ячейка состоит из более мелких частей, именуемых разрядами и нумеруемых также от нуля и до определённого числа. Количество разрядов в ячейке обозначает разрядность памяти. Каждый разряд может хранить цифру в некоторой системе счисления.
Содержимое ячейки называется машинным словом. С точки зрения архитектуры, машинное слово – это минимальный объём данных, которым могут обмениваться различные узлы машины (не надо, однако, забывать о передаче управляющих сигналов по тонким стрелкам). Из каждой ячейки памяти можно считать копию машинного слова и передать её в другую часть памяти, при этом оригинал не меняется. При записи в память старое содержимое ячейки пропадает и заменяется новым машинным словом.
ХАРАКТЕРИСТИКИ ПАМЯТИ СОВРЕМЕННЫХ ЭВМ Объём памяти – сотни миллионов ячеек (обычно восьмиразрядных). Скорость работы памяти: время доступа (минимальная задержка на чтение слова) и время цикла (минимальная задержка на чтение из одной и той же ячейки двух слов) – порядка единиц и десятков наносекунд (1 секунда=109 наносекунд). Стоимость. Для основной памяти ЭВМ пока достаточно знать, что чем быстрее такая память, тем она, естественно, дороже. Конкретные значения стоимости памяти не представляют интереса в рамках наших лекций.
ПРИНЦИП НЕРАЗЛИЧИМОСТИ КОМАНД И ДАННЫХ Машинное слово представляет собой либо команду, либо подлежащее обработке данное (число, символьная информация, элемент изображения и т. д. ). Для краткости в дальнейшем будем называть такую информацию числами. Данный принцип фон Неймана заключается в том, что числа и команды неотличимы друг от друга – в памяти и те и другое представляются некоторым набором разрядов, причём по внешнему виду машинного слова нельзя определить, что оно представляет – команду или число.
ПРИНЦИП ХРАНИМОЙ ПРОГРАММЫ Этот принцип является очень важным, его суть состоит в том, что программа хранится в памяти вместе с числами, а значит, может изменяться во время счёта этой программы. Говорят также, что программа может самомодифицироваться во время счёта. Заметим, что, когда фон Нейман писал свою работу, большинство тогдашних ЭВМ хранили программу в памяти одного вида, а числа – в памяти другого вида. В современных ЭВМ и программы, и данные хранятся в одной и той же памяти.
УСТРОЙСТВО УПРАВЛЕНИЯ Устройство управления управляет всеми остальными устройствами ЭВМ. Оно осуществляет это путём посылки управляющих сигналов, подчиняясь которым остальные устройства производят определённые действия, предписанные этими сигналами. Это устройство является единственным, от которого на рисунке отходят тонкие стрелки ко всем другим устройствам. Остальные устройства могут командовать только памятью, делая ей запросы на чтение и запись машинных слов.
ПРИНЦИП АВТОМАТИЧЕСКОЙ РАБОТЫ Машина, выполняя записанную в её памяти программу, функционирует автоматически, без участия человека. Программа – набор записанных в памяти (не обязательно последовательно) машинных команд, описывающих шаги работы алгоритма. Таким образом, программа – это запись алгоритма на языке машины. Язык машины – набор всех возможных команд.
ПРИНЦИП ПОСЛЕДОВАТЕЛЬНОГО ВЫПОЛНЕНИЯ КОМАНД Устройство управления выполняет некоторую команду от начала до конца, а затем по определённому правилу выбирает следующую команду для выполнения, затем следующую и т. д. Этот процесс продолжается, пока не будет выполнена специальная команда останова, либо при выполнении очередной команды не возникнет аварийная ситуация (например, деление на ноль). Аварийная ситуация – это аналог безрезультативного останова алгоритма.
АРИФМЕТИКО ЛОГИЧЕСКОЕ УСТРОЙСТВО Арифметико логическое устройство (АЛУ) может выполнить следующие действия 1. Считать содержимое некоторой ячейки памяти – поместить копию машинного слова из этой ячейки в ячейку, расположенную в самом АЛУ. Такие ячейки, расположенные не в памяти, а в других устройствах ЭВМ, называются регистровой памятью или просто регистрами
АРИФМЕТИКО ЛОГИЧЕСКОЕ УСТРОЙСТВО Арифметико логическое устройство (АЛУ) может выполнить следующие действия 2. Записать в некоторую ячейку памяти – поместить копию содержимого регистра АЛУ в ячейку памяти. Когда не имеет значения, какая операция (чтение или запись) производится, говорят, что происходит обмен машинным словом между регистром и памятью.
АРИФМЕТИКО ЛОГИЧЕСКОЕ УСТРОЙСТВО Арифметико логическое устройство (АЛУ) может выполнить следующие действия 3. АЛУ может также выполнять различные операции над данными в своих регистрах, например, сложить содержимое двух регистров (обычно называемых регистрами первого R 1 и второго R 2 операндов), и поместить результат на третий регистр (называемый, как правило, сумматором S)
ВЗАИМОДЕЙСТВИЕ УУ И АЛУ Революционность идей фон Неймана заключалась в специализации: каждое устройство отвечает за выполнение только своих функций. Если раньше, например, память часто не только хранила данные, но и могла производить операции над ними, то теперь было предложено, чтобы память только хранила данные, АЛУ производило арифметико логические операции над ними, устройство ввода только вводило данные из внешнего мира в память и т. д. Фон Нейман распределил функции между различными устройствами, что существенно упростило схему машины.
ВЗАИМОДЕЙСТВИЕ УУ И АЛУ Устройство управления тоже имеет свои регистры, оно может считывать команды из памяти на специальный регистр команд (RK), на котором всегда хранится текущая выполняемая команда. Регистр УУ с именем RA называется счётчиком адреса, при выполнении текущей команды в него записывается адрес следующей команды (первую букву в сокращении слова регистр будем записывать латинской буквой R).
ВЗАИМОДЕЙСТВИЕ УУ И АЛУ Рассмотрим, например, операцию сложения двух чисел z: =x+y (здесь x, y и z – адреса ячеек памяти, в которых хранятся, соответственно, операнды и результат сложения). При получении такой команды УУ последовательно посылает управляющие сигналы в АЛУ, предписывая ему сначала считать операнды x и y из памяти и поместить их на регистры R 1 и R 2. Затем по следующему управляющему сигналу АЛУ производит операцию сложения чисел на регистрах R 1 и R 2 и записывает результат на регистр S. По следующему управляющему сигналу АЛУ пересылает копию регистра S в ячейку памяти с адресом z.
ВЗАИМОДЕЙСТВИЕ УУ И АЛУ R 1, R 2 и S – регистры АЛУ, ПАМ – массив, условно обозначающий память ЭВМ, а – операция (в нашем случае это сложение, т. е. = +). R 1: =ПАМ[x]; R 2: =ПАМ[y]; S: =R 1 R 2; ПАМ[z]: =S; R 1: =<x>; R 2: =<y>; S: =R 1 R 2; <z>: =S; RK: =<RA>; считать из памяти очередную команду на регистр команд; RA: =RA+1; увеличить счётчик адреса на единицу; Выполнить очередную команду.
ВЗАИМОДЕЙСТВИЕ УУ И АЛУ Затем выполняется следующая команда и т. д. Итак, если машинное слово попадает на регистр команд, то оно интерпретируется УУ как команда, а если слово попадает в АЛУ, то оно по определению считается числом. Это позволяет, например, складывать команды программы как числа, либо выполнить некоторое число как команду. Разумеется, обычно такая ситуация является семантической ошибкой, если только специально не предусмотрена программистом для каких то целей.
Современные ЭВМ в той или иной степени нарушают все принципы фон Неймана. Например, существуют компьютеры, которые различают команды и данные. В них каждая ячейка памяти кроме собственно машинного слова содержит ещё специальный признак, называемый тэгом, который и определяет, чем является машинное слово. В этой архитектуре при попытке выполнить число как команду, либо складывать команды как числа, будет зафиксирована ошибка. Так нарушается принцип неразличимости команд и чисел.
Практически все современные ЭВМ нарушают принцип однородности и линейности памяти. Память может быть, например, двумерной, когда адрес ячейки задаётся не одним, а двумя числами, либо ячейки памяти могут вообще не иметь адресов (такая память называется ассоциативной) и т. д.
Достаточно мощные компьютеры нарушают и принцип последовательного выполнения команд: они одновременно могут выполнять несколько команд как из одной программы, так, иногда, и из разных программ (такие компьютеры могут иметь несколько центральных процессоров, а также быть так называемыми конвейерными ЭВМ
В архитектуре машины фон Неймана реализованы и другие принципы, которые самим фон Нейманом явно не формулировались, так как считались самоочевидными. Так, например, предполагается, что во время выполнения программы не меняется число узлов компьютера и взаимосвязи между ними. В то же время
Сейчас существуют ЭВМ, которые нарушают и этот принцип. Во время работы одни устройства могут, как говорят, отбраковываться (например, отключаться для ремонта), другие – автоматически подключаться, появляются новые связи между элементами ЭВМ (например, в так называемых транспьютерах) и т. д.
АДРЕСНОСТЬ ЭВМ Число адресов в команде называется адресностью ЭВМ. Для хранения кода операции (КОП) в команде отводится один байт (8 разрядов), а для хранения каждого из адресов – 3 байта (это обеспечивает объём памяти 224 ячеек).
ТРЁХАДРЕСНАЯ МАШИНА 10 байт КОП A 1 A 2 A 3 8 разрядов 24 разряда Схема выполнения команд такой: R 1 : = <A 2>; R 2 : = <A 3>; S : = R 1 R 2; <A 1> : = S; { – операция}
ДВУХАДРЕСНАЯ МАШИНА КОП A 1 A 2 8 разрядов 24 разряда = 7 байт Схема выполнения команд: R 1 : = <A 1>; R 2 : = <A 2>; S : = R 1 R 2; <A 1> : = S; теперь для выполнения бинарной операции первый и второй операнды задаются явно в качестве адресов в команде, а местоположение результата операции задаётся неявно или, как говорят, по умолчанию. В рассмотренном выше случае результат операции по умолчанию помещается на место первого операнда, уничтожая его.
ОДНОАДРЕСНАЯ МАШИНА КОП A 1 = 4 байта 8 разрядов 24 разряда Схема выполнения команд: R 1 : = <A 1>; S : = S R 1;
ОДНОАДРЕСНАЯ МАШИНА Для работы в одноадресной машине необходимы ещё две команды, которые имеют один операнд и один результат и выполняются по другим схемам. Это команда чтения числа из памяти на регистр сумматора: СЧ A 1 Она выполняется по схеме S : = <A 1> и команда записи значения из сумматора в память: ЗП A 1 Она выполняется по схеме <A 1> : = S При выполнении бинарных операций в одноадресной ЭВМ только один второй операнд задаётся в команде явно, а первый операнд и результат задаются неявно – это регистр сумматора.
БЕЗАДРЕСНАЯ МАШИНА КОП = 1 байт 8 разрядов В отличие от других рассмотренных выше машин, безадресная машина использует при работе аппаратно реализованный в компьютере стек, для чего вводятся две дополнительные одноадресные команды: записи из памяти в стек ВСТЕК A 1 которая выполняется по схеме R 1 : = <A 1>; ВСТЕК(R 1) и команда чтения из стека ИЗСТЕКА A 1 которая выполняется по схеме ИЗСТЕКА(R 1); <A 1> : = R 1
БЕЗАДРЕСНАЯ МАШИНА Таким образом, за исключением двух указанных выше одноадресных команд, которые имеют длину 4 байта, все остальные команды являются безадресными, имеют длину 1 байт и выполняются по схеме: R 1 : = ИЗСТЕКА; R 2 : = ИЗСТЕКА; S : = R 1 R 2; ВСТЕК(S) Как видно, для безадресных команд при выполнении бинарных операций уже все аргументы (два операнда и результат) задаются неявно и располагаются в стеке. Отсюда понятно, почему часто машины этой архитектуры называются стековыми ЭВМ.
АРХИТЕКТУРА вс лекции.pptx