360 likes | 558 Views
Архитектура системы. Архитектура набора команд Распределение функций, реализуемых системой, между ее уровнями.
E N D
Архитектура системы Архитектура набора команд Распределение функций, реализуемых системой, между ее уровнями
Более строгое определение понятие АРХИТЕКТУРЫ СИСТЕМ, по-видимому, приведено у Э.А.Якубайтиса [Якубайтис Э.А. Архитектура вычислительных сетей. М.: Статистика, 1980. 279 с., ил.]: - "АРХИТЕКТУРА СИСТЕМЫ является емким понятием, включающем три важнейших вида взаимосвязанных структур: ФИЗИЧЕСКУЮ, ЛОГИЧЕСКУЮ и ПРОГРАММНУЮ. Кроме того, анализируя другие аспекты архитектуры, часто рассматривают структуры административного управления, обслуживания и ремонта. Каждая из этих структур определяется набором элементов и характером их взаимосвязи. Связь структур друг с другом образует АРХИТЕКТУРУ рассматриваемой СИСТЕМЫ. Элементами ФИЗИЧЕСКОЙ СТРУКТУРЫ являются технические объекты. В зависимости от того, какие задачи решаются, этими объектами могут быть полупроводниковые кристаллы, части вычислительных машин, а также комплексы, составленные из последних. Элементами ЛОГИЧЕСКОЙ СТРУКТУРЫ являются функции, определяющие основные операции. Очень важной характеристикой архитектуры системы является также ее ПРОГРАММНАЯ СТРУКТУРА. Эту структуру образуют взаимосвязанные программы: программы обработки информации, и др. Таким образом, АРХИТЕКТУРА СИСТЕМЫ (вычислительной сети, терминального комплекса, вычислительной машины, полупроводникового кристалла) является концепция взаимосвязи большого числа различного типа элементов. Она в основном характеризуется переплетением ФИЗИЧЕСКОЙ, ЛОГИЧЕСКОЙ И ПРОГРАММНОЙ СТРУКТУР этой системы".
Определяем интерфейсы вычислительной системы пользователь системный программист системный разработчик разработчик интегральных схем
k cекунд nкоманд для интерпретации
Устройство компьютера В современных ПК для связи основных устройств компьютера между собой используется специальная информационная магистраль, называемая шиной. Шина состоит из трех частей: - шина адреса, на которой устанавливается адрес требуемой ячейки памяти или устройства, с которым будет происходить обмен информацией; - шина данных, по которой собственно и будет передана необходимая информация; - шина управления, регулирующая этот процесс (например, один из сигналов на этой шине позволяет компьютеру различать между собой адреса памяти и устройств ввода/вывода).
Процессор– микросхема, которая обрабатывает информацию и управляет всеми устройствами компьютера. Регистр – ячейка быстродействующей оперативной памяти, расположенная внутри процессора.
данные управление Архитектура компьютера Архитектура – принципы действия и взаимосвязи основных устройств компьютера (процессора, ОЗУ, внешних устройств). Принстонская архитектура (фон Неймана): ОЗУ(программа и данные) прямой доступ к памяти прямой доступ к памяти устройства ввода процессор устройства вывода Гарвардская архитектура – программы и данные хранятся в разных областях памяти. скорость (одновременно читаем команду и данные) нужно больше контактов у процессора
УУ УУ УУ УУ УУ УУ УУ АЛУ АЛУ АЛУ АЛУ АЛУ АЛУ АЛУ ОЗУ ОЗУ ОЗУ ОЗУ УУ АЛУ АЛУ АЛУ ОЗУ ОЗУ Архитектуры компьютеров многомашинная(независимые задачи) фон Неймана параллельные процессоры(части одной задачи, по одной программе) многопроцессорная(части одной задачи, по разным программам)
adding the contents of memory locations A and B The CPU Consists of: • ALU (Arithmetic and Logic Unit), • The Registers (or Index Registers) - Local storage used as a ‘scratchpad’ for temporary storage during calculations • The Control Unit
Регистры – сверхбыстрая память внутри процессора, предназначенная прежде всего для хранения промежуточных результатов вычисления. • Регистры подразделяют на: • Регистры общего назначения (для арифметических и логических операций): • Арифметические регистры • Индексные регистры • Сегментные регистры • Регистры управления (для управления порядком исполнения программы) • Регистры состояния (отображение состояния процессора) • Регистры специального назначения (векторные регистры, регистры MMX/SSE) • Например: • EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP – название 32-битныx регистров общего назначения на платформе x86 • AX, BX, CX, DX — 16-битные • AH, AL, BH, BL, CH, CL, DH, DL — 8-битные (половинки 16-ти битных регистров) • например, AH - high AX - старшая половинка 8 бит • AL - low AX - младшая половинка 8 бит • IP, SP – (instruction pointer, stack pointer) – регистры счетчика команд и указатель стека • Регистр флагов EFLAGS — содержит текущее состояние процессора • Flags (ZF, CF) – флаг нуля, флаг переноса и т.п. • MM0, MM1 – регистры MMX
The Arithmetic and Logic Unit (ALU) The ALU implements a variety of operations For example • ADD • SUB • NOT • OR The list of operations the ALU can perform is referred to as the Instruction Set Different CPU’s implement different Instruction Sets Программа – это последовательность команд, которые должен выполнить компьютер. Команда – это описание операции: • код операции • операнды – исходные данные (числа) или их адреса • результат (куда записать).
Recall Computers use the Fetch Execute Cycle to execute instructions The Fetch-Execute Cycle At a generic level, computers use a Fetch-Execute Cycle • Use the Program Counter, (PC) to Fetch the Next Instruction to be Executed, from Memory • Decode the Opcode • Are operands required? If so, copy Operands from Main Memory • Execute the Instruction • 5 Return result to its memory location, if required • Update PC • Go to Step 1
Выполнение программы • Счетчик команд (IP = Instruction Pointer) – регистр, в котором хранится адрес следующей команды. • IP • Команда, расположенная по этому адресу, передается в УУ. Если это не команда перехода, регистр IPувеличивается на длину команды. • УУ расшифровывает адреса операндов. • Операнды загружаются в АЛУ. • УУ дает команду АЛУ на выполнение операции. • Результат записывается по нужному адресу. • Шаги 1-5 повторяются до получения команды «стоп». по адресу AB3D16 AB3D16
Шаги выполнения команды • Считывание следующей команды из памяти в регистр команд • Изменение указателя на следующую команду • Дешифровка команды • Если команда использует данные из памяти, загрузка этих данных, иначе обращаемся в регистр • Запуск команды • Запуск следующей команды
PC = Program Counter (stores the address of the next instruction to be executed) IR = Instruction Register (stores the instruction to be executed) AC = Accumulator (General Purpose Register) Memory is 16 bits long. Instructions are Operation, Operand 1 = Local memory address to Accumulator 5 = Add value in memory address to Accumulator, 2 = Store value in accumulator to memory address
The list of instructions that a CPU can execute are called the Instruction Set Obviously, CPUs implement different types of Instructions • Move (Load and store) • Memory to memory; memory to CPU • register to register • Arithmetic and Logic • Add; shift; Compare • Branch • change in direction of program flow • I/O • Miscellaneous • Flag; Wait; Start; Stop
Команда – минимальное действие, которое может совершить процессор над данными в адресуемой памяти. Команда состоит из кода операции и набора операндов. Различают одноадресные команды (один операнд), двух адресные команды и трехадресные команды. Различают: Команды передачи данных (например, MOV) Арифметические операции (ADD, SUB) Логические операции (OR, AND) Операции сдвига (SHL, SHR) Операции ввода-вывода (IN, OUT) Команды управления (JMP, CALL) Команды ветвления и цикла (JC, JZ, REP) Специальные команды (EMMS, MOVQ, управление кэшем и т.п.)
In general, a computer instruction consists of a function (Opcode) and one or more operands. For example, • ADD x, y • Add is the function or opcode; x and y are both operand addresses. • Operand addresses may refer to memory or registers. • We will look at how earlier machines with much smaller memories and CPUs implemented Move and Arithmetic operations.
Different Instruction Sets are classified by size of their instruction • 3 address instructions (ADD A,B,C) • 2 address instructions (ADD A,B) • 1 address instructions (ADD A) Consider the difference in coding the Expression A=(B x C) + D
When using three Address instruction, A = (B X C) + D Mult B,C,A //A = B x C ADD D,A,A //A = A + D
Two Address Instruction Load B,A \\ A = B Mult C,A \\ A = A x C Add D,A \\A = A + D
When using one address instruction, a special register on the CPU called the Accumulator is used. The Accumulator implicitly stores the results of operations Load B \\ Acc = B Mult C \\ Acc = Acc X C Add D \\ Acc = Acc + D Store A \\ A = Acc
A further distinction between processors – and therefore instruction sets - is to do with the principle of the number of instructions in the instruction set. • We can classify processors as being whether they are CISC or RISC. • Complex Instruction Set Computer • Reduced Instruction Set Computer • The RISC machine has fewer instructions and a restricted access to the Memory – allows only Load and Store operations – and does nearly everything via Register operations. • The CISC machine allows a wide range of memory operations. For example, Mult codes which could operate on both memory and register operands
Системы команд Существует два подхода к конструированию процессоров. Первый состоит в том, чтобы придумать как можно больше разных команд и предусмотреть как можно больше разных режимов адресации. Процессоры такого типа называются CISC-процессорами, от слов СomplexInstructionSetComputers. Это, в частности, Intel 80x86 и Motorola 68000. Противоположный подход состоит в том, чтобы реализовать лишь минимальное множество команд и режимов адресации, процессоры такого типа называются RISC-процессорами, от слов ReducedInstructionSetComputers. Примеры RISC-процессоров: DEC Alpha, Power PC, IntelItanium. Казалось бы, CISC-процессоры должны иметь преимущество перед RISC-процессорами, но на самом деле все обстоит строго наоборот. Дело в том, что простота набора команд процессора облегчает его конструирование, в результате чего удается достичь следующих целей:
все команды выполняются исключительно быстро, причем за одинаковое время, т.е. за фиксированное число тактов работы процессора; • значительно поднимается тактовая частота процессора; • намного увеличивается количество регистров процессора и объем кэш-памяти; • удается добиться ортогональности режимов адресации, набора команд и набора регистров. Это означает, что нет каких-либо выделенных регистров или режимов адресации: в любых (или почти любых) командах можно использовать произвольные регистры и режимы адресации независимо друг от друга. Следует отметить, что к памяти могут обращаться лишь команды загрузки слова из памяти в регистр и записи из регистра в память, а все арифметические команды работают только с регистрами; • простота команд позволяет эффективно организовать их выпол-нение в конвейере (pipeline), что значительно ускоряет работу программы.