Глава 7 М И К

Скачать презентацию Глава 7  М И К Скачать презентацию Глава 7 М И К

ddca_ch7.pptx

  • Размер: 6.8 Мб
  • Автор: Владимир Алексеев
  • Количество слайдов: 134

Описание презентации Глава 7 М И К по слайдам

Глава 7  1  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АЦифровая схемотехника и архитектура компьютера, второе издание Глава 7 Дэвид М. Харрис и Сара Л. Харрис

Глава 7  2  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АЦифровая схемотехника и архитектура компьютера Эти слайды предназначены для преподавателей, которые читают лекции на основе учебника «Цифровая схемотехника и архитектура компьютера» авторов Дэвида Харриса и Сары Харрис. Бесплатный русский перевод второго издания этого учебника можно загрузить с сайта компании Imagination Technologies: https: //community. imgtec. com/downloads/digital-design-and-computer-a rchitecture-russian-edition-second-edition Процедура регистрации на сайте компании Imagination Technologies описана на станице: http: //www. silicon-russia. com/2016/08/04/harris-and-harris-2/

Глава 7  3  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АБлагодарности Перевод данных слайдов на русский язык был выполнен командой сотрудников университетов и компаний из России, Украины, США в составе: • Александр Барабанов — доцент кафедры компьютерной инженерии факультета радиофизики, электроники и компьютерных систем Киевского национального университета имени Тараса Шевченко, кандидат физ. -мат. наук, Киев, Украина; • Антон Брюзгин — начальник отдела АО «Вибро-прибор» , Санкт-Петербург, Россия. • Евгений Короткий — доцент кафедры конструирования электронно-вычислительной аппаратуры факультета электроники Национального технического университета Украины «Киевский Политехнический Институт» , руководитель открытой лаборатории электроники Lampa, кандидат технических наук, Киев, Украина; • Евгения Литвинова – заместитель декана факультета компьютерной инженерии и управления, доктор технических наук, профессор кафедры автоматизации проектирования вычислительной техники Харьковского национального университета радиоэлектроники, Харьков, Украина; • Юрий Панчул — старший инженер по разработке и верификации блоков микропроцессорного ядра в команде MIPS I 6400, Imagination Technologies, отделение в Санта-Кларе, Калифорния, США; • Дмитрий Рожко — инженер-программист АО «Вибро-прибор» , магистр Санкт-Петербургского государственного автономного университета аэрокосмического приборостроения (ГУАП), Санкт-Петербург, Россия; • Владимир Хаханов – декан факультета компьютерной инженерии и управления, проректор по научной работе, доктор технических наук, профессор кафедры автоматизации проектирования вычислительной техники Харьковского национального университета радиоэлектроники, Харьков, Украина; • Светлана Чумаченко – заведующая кафедрой автоматизации проектирования вычислительной техники Харьковского национального университета радиоэлектроники, доктор технических наук, профессор, Харьков, Украина.

Глава 7  4  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АГлава 7 : : Темы • Введение • Анализ производительности • Однотактный процессор • Многотактный процессор • Конвейерный процессор • Исключения • Улучшение микроархитектуры

Глава 7  5  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Микроархитектура: аппаратная реализация архитектуры в виде схемы • Процессор: – Тракт данных: функциональные блоки обработки и передачи данных (арифметико-логическое устройство, регистровый файл, мультиплексоры и т. д. ) – Устройство управления: формирует управляющие сигналы для функциональных блоков. Введение Physics. Devices Analog Circuits Digital Circuits Logic. Micro- architecture. Architecture Operating Systems. Application Software electronstransistors diodesamplifiers filters. AND gates NOT gates adders memories datapaths controllersinstructions registersdevice drivers programs

Глава 7  6  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Несколько аппаратных реализаций одной и той же архитектуры: – Однотактная реализация: каждая инструкция выполняется за один такт – Многотактная реализация: каждая инструкция разбивается на несколько шагов и выполняется за несколько тактов – Конвейерная реализация: каждая инструкция разбивается на несколько шагов и несколько инструкций выполняются одновременно. Микроархитектура

Глава 7  7  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Время выполнения программы Execution Time = (#instructions)(cycles/instruction)(seconds/cycle) Время выполнения = (#инструкции)(такты/инструкция)(секунды/такт) • Определения: – CPI: Количество тактов на выполнение инструкции (Cycles/instruction) – Период тактовой частоты: секунды/такт – IPC: Количество инструкций выполняемых за такт (instructions/cycle = IPC = 1 / CPI) • Необходимо удовлетворять следующие ограничения: – Стоимость – Площадь на кристалле – Энергопотребление – Производительность процессора

Глава 7  8  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Будем рассматривать подмножество инструкций MIPS: – Инструкции R-типа: and , or , add , sub , slt – Инструкции работы с памятью: lw , sw – Инструкции переходов: beq, j. MIPS процессор

Глава 7  9  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Определяется: – Содержимым счетчика команд (PC) – Содержимым 32 -х регистров общего назначения – Содержимым памяти. Архитектурное состояние

Глава 7  10  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АЭлементы, хранящие состояние MIPS CLK A RD Instruction Memory A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Register File A RD Data Memory WD WEPCPC’ CLK

Глава 7  11  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Тракт данных • Устройство управления. Однотактный MIPS процессор

Глава 7  12  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АШаг 1: Выборка (считывание) инструкции lw из памяти. Однотактный тракт данных: выборка lw CLK A RD Instruction Memory A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Register File A RD Data Memory WD WE PC PC’ Instr CLK

Глава 7  13  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АШаг 2: считывание операндов-источников из регистрового файла. Однотактный тракт данных: чтение регистров lw rt, imm(rs) Instr CLK ARD Instruction Memory A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Register File ARD Data Memory WD W E PCPC’ 25: 21 CLK oprsrtimm 6 bits 5 bits 16 bits I-Type

Глава 7  14  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АШаг 3: расширение 16 -битной константы до 32 -х разрядов битом знака. Однотактный тракт данных: расширение константы Sign. Imm CLK ARD Instruction Memory A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File ARD Data Memory WD W E PCPC’Instr 25: 21 15: 0 CLK

Глава 7  15  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АШаг 4: Вычисление адреса ячейки в памяти. Однотактный тракт данных: вычисление адреса Sign. Imm. CLK A RD Instruction Memory A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File A RD Data Memory WD WE PCPC’ Instr 25: 21 15: 0 Src. B ALUResult. Src. A Zero CLKALUControl 2: 0 ALU

Глава 7  16  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Шаг 5: считываем данные из памяти и записываем их в регистр, номер которого хранится в коде инструкции. Однотактный тракт данных: считывание из памяти lw rt, imm(rs) A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 Sign. Imm CLK ARD Instruction Memory CLK Sign Extend Register File ARD Data Memory WD W EPCPC’Instr 25: 21 15: 0 Src. B 20: 16 ALUResult. Read. Data Src. A Reg. W rite Zero CLK ALUControl 2: 0 ALU 0101 oprsrtimm 6 bits 5 bits 16 bits I-Type

Глава 7  17  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АШаг 6: Вычисляем адрес следующей инструкции. Однотактный тракт данных: увеличение PC Sign. Imm CLK ARD Instruction Memory + 4 A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File ARD Data Memory WD WEPCPC’Instr 25: 21 15: 0 Src. B 20: 16 ALUResult. Read. Data Src. A PCPlus 4 Result Reg. W rite Zero CLK ALUControl 2: 0 ALU

Глава 7  18  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АЗапись содержимого регистра rt в память. Однотактный тракт данных : sw sw rt, imm(rs) Sign. Imm CLK ARD Instruction Memory + 4 A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File ARD Data Memory WD W EPCPC’Instr 25: 21 20: 16 15: 0 Src. B 20: 16 ALUResult. Read. Data Write. Data Src. A PCPlus 4 Result Mem. Write. Reg. W rite Zero CLK ALUControl 2: 0 ALU 10100 oprsrtimm 6 bits 5 bits 16 bits I-Type

Глава 7  19  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Считываем операнды из регистров rs и rt • Записываем ALUResult в регистр с номером из поля rd инструкции (для инструкций I-типа результат записывается в регистр с номером rt )Однотактный тракт данных: R-Тип Sign. Imm CLK ARD Instruction Memory + 4 A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 ARD Data Memory W D W E 0 1 PCPC’Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 ALUResult. Read. Data W rite. Data Src. A PCPlus 4 W rite. Reg 4: 0 Result Reg. Dst. Mem. W rite. Memto. Reg. ALUSrc. Reg. W rite Zero CLK ALUControl 2: 0 ALU 0 varies 1001 oprsrtrdshamtfunct 6 bits 5 bits 6 bits R-Type

Глава 7  20  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Проверяем на равенство регистры rs и rt • Рассчитываем адрес для условного перехода: BTA = (sign-extended immediate << 2) + (PC+4)Однотактный тракт данных: beq Sign. Imm. CLK A RD Instruction Memory + 4 A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory W D W E 0 1 PC 0 1 PC' Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 + ALUResult Read. Data Write. Data. Src. A PCPlus 4 PCBranch. W rite. Reg 4: 0 Result. Reg. Dst Branch Mem. Write Memto. Reg. ALUSrc. Reg. W rite Zero PCSrc CLKALUControl 2: 0 ALU 01100 x 0 x 1 beq $t 0, $0, else Assembly Code. Field Values 4 8 0 3 oprsrtimm 6 bits 5 bits 6 bits(beq $t 0, $0, 3)

Глава 7  21  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОднотактный процессор Sign. Imm. CLK A RD Instruction Memory + 4 A 1 A 3 WD 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory WD W E 0 1 PC 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 + ALUResult Read. Data Write. Data. Src. A PCPlus 4 PCBranch. Write. Reg 4: 0 Result 31: 26 Reg. Dst. Branch. Mem. W rite. Memto. Reg ALUSrc Reg. W rite. Op Funct. Control Unit Zero PCSrc CLKALUControl 2: 0 ALU

Глава 7  22  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АУправление однотактным процессором Reg. Dst. Branch. Mem. Write. Memto. Reg ALUSrc. Opcode 5 : 0 Control Unit ALUControl 2 : 0 Funct 5 : 0 Main Decoder ALUOp 1 : 0 ALU Decoder Reg. Write

Глава 7  23  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АF 2: 0 Функция 000 A & B 001 A | B 010 A + B 011 Не исп. 100 A & ~B 101 A | ~B 110 A — B 111 SLTВспомним принцип работы АЛУ ALU NN N 3 AB Y

Глава 7  24  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АВспомним принцип работы АЛУ + 201 AB Cout Y 3 01 F 2 F 1: 0 [N-1]S NN N N NNNN N 2 Zero Extend

Глава 7  25  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АALUOp 1: 0 Действие 00 Сложение 01 Вычитание 10 Определяется полем Funct 11 Не используется ALUOp 1: 0 Funct ALUControl 2: 0 00 X 010 (Сложение) X 110 (Вычитание) 1 X 100000 ( add ) 010 (Сложение) 1 X 100010 ( sub ) 110 (Вычитание) 1 X 100100 ( and ) 000 (И) 1 X 100101 ( or ) 001 (ИЛИ) 1 X 101010 ( slt ) 111 (SLT)Управляющее устройство: Дешифратор АЛУ

Глава 7  26  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АInstruction Op 5: 0 Reg. Write Reg. Dst Alu. Src Branch Mem. Write Memto. Reg ALUOp 1: 0 R-type 000000 lw 100011 sw 101011 beq 000100 Управляющее устройство: основной дешифратор Sign. Imm. CLK A RD Instruction Memory + 4 A 1 A 3 W D 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory W D W E 0 1 PC 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 + ALUResult Read. Data W rite. Data. Src. A PCPlus 4 PCBranch. W rite. Reg 4: 0 Result 31: 26 Reg. Dst. Branch. Mem. W rite. Memto. Reg ALUSrc Reg. W rite. Op Funct. Control Unit Zero PCSrc CLKALUControl 2: 0 ALU

Глава 7  27  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АInstructio n Op 5: 0 Reg. Write Reg. Dst Alu. Src Branch Mem. Write Memto. Reg ALUOp 1: 0 R-type 000000 1 1 0 0 10 lw 100011 1 0 0 0 00 sw 101011 0 X 1 0 1 X 00 beq 000100 0 X 0 1 0 X 01 Управляющее устройство: основной дешифратор Sign. Imm. CLK A RD Instruction Memory + 4 A 1 A 3 W D 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory W D W E 0 1 PC 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 + ALUResult Read. Data W rite. Data. Src. A PCPlus 4 PCBranch. W rite. Reg 4: 0 Result 31: 26 Reg. Dst. Branch. Mem. W rite. Memto. Reg ALUSrc Reg. W rite. Op Funct. Control Unit Zero PCSrc CLKALUControl 2: 0 ALU

Глава 7  28  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОднотактный тракт данных: or Sign. Imm. CLK A RD Instruction Memory + 4 A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory WD WE 0 1 PC 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 + ALUResult Read. Data Write. Data. Src. A PCPlus 4 PCBranch. W rite. Reg 4: 0 Result 31: 26 Reg. Dst. Branch. Mem. Write. Memto. Reg ALUSrc Reg. Write. Op Funct. Control Unit Zero PCSrc CLKALUControl 2: 0 ALU 001 0 0 1 0 oprsrtrdshamtfunct 6 bits 5 bits 6 bits R-Type

Глава 7  29  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АНеобходимо сформировать управляющие сигналы, а тракт данных менять не нужно Добавим инструкцию addi Sign. Imm. CLK A RD Instruction Memory + 4 A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory W D WE 0 1 PC 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 + ALUResult Read. Data Write. Data. Src. A PCPlus 4 PCBranch. Write. Reg 4: 0 Result 31: 26 Reg. Dst. Branch. Mem. Write. Memto. Reg ALUSrc Reg. W rite. Op Funct. Control Unit Zero PCSrc CLKALUControl 2: 0 ALU

Глава 7  30  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АInstruction Op 5: 0 Reg. Write Reg. Dst Alu. Src Branch Mem. Write Memto. Re g ALUOp 1: 0 R-type 000000 1 1 0 0 10 lw 100011 1 0 0 1 00 sw 101011 0 X 1 0 1 X 00 beq 000100 0 X 0 1 0 X 01 addi 001000 Управляющее устройство: addi

Глава 7  31  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АInstruction Op 5: 0 Reg. Write Reg. Dst Alu. Src Branch Mem. Write Memto. Re g ALUOp 1: 0 R-type 000000 1 1 0 0 10 lw 100011 1 0 0 1 00 sw 101011 0 X 1 0 1 X 00 beq 000100 0 X 0 1 0 X 01 addi 001000 1 0 0 0 00 Управляющее устройство: addi

Глава 7  32  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АДобавим функционала: j Sign. Imm. CLK A RD Instruction Memory + 4 A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory W D W E 0 1 PC 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 + ALUResult Read. Data W rite. Data. Src. A PCPlus 4 PCBranch. W rite. Reg 4: 0 Result 31: 26 Reg. Dst. Branch. Mem. W rite. Memto. Reg ALUSrc Reg. W rite. Op Funct. Control Unit Zero PCSrc CLKALUControl 2: 0 ALU 0 1 25: 0 <<227: 0 31: 28 PCJump

Глава 7  33  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АInstruction Op 5: 0 Reg. Write Reg. Dst Alu. Src Branch Mem. Write Memto. Re g ALUOp 1: 0 Jump R-type 000000 1 1 0 0 10 0 lw 100011 1 0 0 1 00 0 sw 101011 0 X 1 0 1 X 00 0 beq 000100 0 X 0 1 0 X 01 0 j 000100 Управляющее устройство: j

Глава 7  34  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АInstruction Op 5: 0 Reg. Write Reg. Dst Alu. Src Branch Mem. Write Memto. Re g ALUOp 1: 0 Jump R-type 000000 1 1 0 0 10 0 lw 100011 1 0 0 1 00 0 sw 101011 0 X 1 0 1 X 00 0 beq 000100 0 X 0 1 0 X 01 0 j 000100 0 X X X 0 X XX 1 Управляющее устройство: j

Глава 7  35  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АВремя выполнения программы = (#инструкции)(такты/инструкция)(секунды/такт) = # инструкции x CPI x T CВернемся к вопросу производительности

Глава 7  36  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АT C определяется цепью с наибольшей задержкой ( lw ) Производительность однотактного процессора CPI = 1 Sign. Imm. CLK A RD Instruction Memory + 4 A 1 A 3 WD 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory WD W E 0 1 PC 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 + ALUResult Read. Data Write. Data. Src. A PCPlus 4 PCBranch. Write. Reg 4: 0 Result 31: 26 Reg. Dst. Branch. Mem. Write. Memto. Reg ALUSrc Reg. W rite. Op Funct. Control Unit Zero PCSrc CLKALUControl 2: 0 ALU

Глава 7  37  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Задержка самой длинной цепи комбинационной логики : T c = t pcq_PC + t mem + max( t RF read , t sext + t mux ) + t ALU + t mem + t mux + t RF setup • Обычно на длительность периода больше всего влияют : – память, АЛУ, регистровый файл – T c = t pcq_PC + 2 t mem + t RF read + t mux + t ALU + t RF setup. Производительность однотактного процессора

Глава 7  38  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АПараметр Обозначение Задержка (пс) Время записи в регистр t pcq _PC 30 Время предустановки регистра t setup 20 Задержка мультиплексора t mux 25 Задержка АЛУ t ALU 200 Задержка считывания из памяти t mem 250 Задержка считывания из регистрового файла t RF read 150 Время предустановки регистрового файла t RF setup 20 T c = ? Посчитаем производительность однотактного процессора

Глава 7  39  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АT c = t pcq_PC + 2 t mem + t RF read + t mux + t ALU + t RF setup = [30 + 2(250) + 150 + 25 + 200 + 20] пс = 925 пс. Посчитаем производительность однотактного процессора Параметр Обозначение Задержка (пс) Время записи в регистр t pcq _PC 30 Время предустановки регистра t setup 20 Задержка мультиплексора t mux 25 Задержка АЛУ t ALU 200 Задержка считывания из памяти t mem 250 Задержка считывания из регистрового файла t RF read 150 Время предустановки регистрового файла t RF setup

Глава 7  40  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АПредположим, в программе 100 миллиардов инструкций: Время выполнения = # инструкции x CPI x T C = (100 × 10 9 )(1)(925 × 10 -12 с) = 92. 5 секунд. Посчитаем производительность однотактного процессора

Глава 7  41  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Однотактный: + Простой — Период тактовой частоты ограничен инструкцией с самой длинной цепью комбинационной логики ( lw ) — Несколько сумматоров & 2 отдельных памяти • Многотактный: + Выше тактовая частота + Простые инструкции выполняются быстрее (за меньше тактов) + Повторное использование аппаратурных ресурсов в разных тактах — Значительно усложняется устройство управления • Этапы разработки: тракт данных и устройство управления. Многотактный MIPS процессор

Глава 7  42  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Вместо отдельной памяти для инструкций и данных будем использовать одну общую память. Элементы хранящие состояние многотактного процессора CLK A RD Instr / Data Memory A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Register File PCPC’ W D WE CLK EN

Глава 7  43  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АШаг 1: Выборка инструкции. Многотактный тракт данных: Выборка инструкции b CLK ARD Instr / Data Memory A 1 A 3 WD 3 RD 2 RD 1 W E 3 A 2 CLK Register File PCPC’Instr CLK W D WE CLK EN IRW rite

Глава 7  44  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АМноготактный тракт данных: чтение регистров Шаг 2 a: считывание операндов-источников из регистрового файла (на примере инструкции lw ) lw rt, imm(rs) b CLK ARD Instr / Data Memory A 1 A 3 WD 3 RD 2 RD 1 W E 3 A 2 CLK Register File PCPC’Instr 25: 21 CLK W D WE CLKCLK A EN IRW rite oprsrtimm 6 bits 5 bits 16 bits I-Type

Глава 7  45  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АМноготактный тракт данных: расширение константы Шаг 2 b: расширение 16 -битной константы до 32 -х разрядов битом знака Sign. Imm b CLK ARD Instr / Data Memory A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File PCPC’Instr 25: 21 15: 0 CLK W D WE CLKCLK A EN IRW rite

Глава 7  46  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АМноготактный тракт данных: вычисление адреса Шаг 3: Вычисление адреса ячейки в памяти Sign. Imm b CLK ARD Instr / Data. Memory A 1 A 3 W D 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register. File PCPC’Instr 25: 21 15: 0 Src. B ALUResult Src. A ALUOut CLK ALUControl 2: 0 ALU WD W E CLKCLK ACLK EN IRW rite

Глава 7  47  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АМноготактный тракт данных: считывание из памяти Шаг 4: считываем данные из памяти Sign. Imm b CLK ARD Instr / Data. Memory A 1 A 3 W D 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register. File PCPC’Instr 25: 21 15: 0 Src. B ALUResult Src. A ALUOut CLK ALUControl 2: 0 ALU WD W E CLK Adr Data CLK ACLK EN IRW rite. Ior.

Глава 7  48  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АМноготактный тракт данных: запись в регистр Шаг 5: записываем считанное из памяти 32 -битное число в регистр общего назначения, номер которого хранится в поле rt инструкции lw rt, imm(rs) Sign. Imm b CLK ARD Instr / Data Memory A 1 A 3 W D 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File PCPC’Instr 25: 21 15: 0 Src. B 20: 16 ALUResult Src. A ALUOut Reg. W rite CLK ALUControl 2: 0 ALU W D WE CLK Adr Data CLK ACLK EN IRW rite. Ior. D 0 1 oprsrtimm 6 bits 5 bits 16 bits I-Type

Глава 7  49  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АМноготактный тракт данных: увеличиваем PC Шаг 6: вычисляем адрес следующей инструкции и записываем в PC PCWrite Sign. Imm b CLK ARD Instr / Data. Memory A 1 A 3 WD 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register. File 0 1 PCPC’Instr 25: 21 15: 0 Src. B 20: 16 ALUResult Src. A ALUOut ALUSrc. AReg. W rite CLK ALUControl 2: 0 ALU W D WE CLK Adr Data CLK A 00 01 10 11 4 CLK ENEN ALUSrc. B 1: 0 IRW rite. Ior.

Глава 7  50  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АМноготактный тракт данных: sw Запись содержимого регистра rt в память sw rt, imm(rs) Sign. Imm b CLK ARD Instr / Data. Memory A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register. File 0 1 PC 0 1 PC’Instr 25: 21 20: 16 15: 0 Src. B 20: 16 ALUResult Src. A ALUOut Mem. W rite. ALUSrc. AReg. Write CLK ALUControl 2: 0 ALU W D W E CLK Adr Data CLK A 00 01 10 11 4 CLK ENEN ALUSrc. B 1: 0 IRW rite. Ior. DPCW rite B oprsrtimm 6 bits 5 bits 16 bits I-Type

Глава 7  51  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АМноготактный тракт данных: R-Тип • Считываем операнды из регистров rs и rt • Записываем ALUResult в регистр с номером из поля rd инструкции (для инструкций I-типа результат записывается в регистр с номером rt ) 0 1 Sign. Imm b CLK ARD Instr / Data. Memory A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register. File 0 1 PC 0 1 PC’Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 ALUResult Src. A ALUOut Reg. Dst. Mem. W rite. Memto. Reg. ALUSrc. AReg. W rite CLK ALUControl 2: 0 ALU WD WE CLK Adr Data CLK A B 00 01 10 11 4 CLK ENEN ALUSrc. B 1: 0 IRW rite. Ior. DPCWrite oprsrtrdshamtfunct 6 bits 5 bits 6 bits R-Type

Глава 7  52  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • rs == rt ? • BTA = (sign-extended immediate << 2) + (PC+4)Многотактный тракт данных: beq Sign. Imm b CLK ARD Instr / Data. Memory A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register. File 0 10 1 PC'Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 ALUResult Src. A ALUOut Reg. Dst. Branch. Mem. Write. Memto. Reg. ALUSrc. AReg. W rite Zero PCSrc CLK ALUControl 2: 0 ALU W D W E CLK Adr 0 1 Data CLK A B 00 01 10 11 4 CLK ENEN ALUSrc. B 1: 0 IRW rite. Ior. DPCW rite PCEn beq $t 0, $0, else Assembly Code. Field Values 4 8 0 3 oprsrtimm 6 bits 5 bits 6 bits(beq $t 0, $0, 3)

Глава 7  53  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АМноготактный процессор Sign. Imm. CLK A RD Instr / Data Memory A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 ALUResult. Src. A ALUOut 31: 26 Reg. Dst. Branch Mem. W rite Memto. Reg ALUSrc. A Reg. W rite. Op Funct Control Unit Zero. PCSrc. CLK ALUControl 2: 0 ALU W D W ECLK Adr 0 1 Data. CLK A B 00 01 10 114 CLKENENALUSrc. B 1: 0 IRW rite Ior. D PCW rite PCEn

Глава 7  54  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АМноготактное устройство управления ALUSrc. APCSrc Branch. ALUSrc. B 1: 0 Opcode 5: 0 Control Unit ALUControl 2: 0 Funct 5: 0 Main Controller (FSM) ALUOp 1: 0 ALU Decoder Reg. W rite. PCW rite Ior. D Mem. W rite. IRW rite Reg. Dst. Memto. Register Enables. Multiplexer Selects

Глава 7  55  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОсновной управляющий автомат: Выборка Sign. Imm. CLK A RD Instr / Data Memory A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 ALUResult. Src. A ALUOut 31: 26 Reg. Dst Branch Mem. W rite Memto. Reg ALUSrc. A Reg. W rite. Op Funct Control Unit Zero. PCSrc. CLK ALUControl 2: 0 ALU W D W ECLK Adr 0 1 Data. CLK A B 00 01 10 114 CLK ENEN ALUSrc. B 1: 0 IRW rite Ior. D PCWrite PCEn 0 1 10 X X 0 0 01 010 01 0 Reset S 0: Fetch

Глава 7  56  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОсновной управляющий автомат: Выборка • Сигналы разрешения записи будем показывать только если они не равны нулю • Одновременно со считыванием инструкции при помощи АЛУ увеличиваем на 4 содержимое PC Sign. Imm. CLK A RD Instr / Data Memory A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 ALUResult. Src. A ALUOut 31: 26 Reg. Dst Branch Mem. W rite Memto. Reg ALUSrc. A Reg. W rite. Op Funct Control Unit Zero. PCSrc. CLK ALUControl 2: 0 ALU WD W ECLK Adr 0 1 Data. CLK A B 00 01 10 114 CLK ENEN ALUSrc. B 1: 0 IRW rite Ior. D PCWrite PCEn 0 1 10 X X 0 0 01 010 01 0 Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 0 IRWrite PCW rite Reset S 0: Fetch

Глава 7  57  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОсновной управляющий автомат: Декодирование • Будем указывать только те управляющие сигналы, которые имеют смысл на конкретном этапе выполнения команды • На этом этапе выполняется считывание из регистрового файла, расширение константы и декодирование операции Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 0 IRW rite PCWrite Reset S 0: Fetch. S 1: Decode Sign. Imm. CLK A RD Instr / Data Memory A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 ALUResult. Src. A ALUOut 31: 26 Reg. Dst Branch Mem. W rite Memto. Reg ALUSrc. A Reg. W rite. Op Funct Control Unit Zero. PCSrc. CLK ALUControl 2: 0 ALU W D W ECLK Adr 0 1 Data. CLK A B 00 01 10 114 CLK ENEN ALUSrc. B 1: 0 IRW rite Ior. D PCWrite PCEn X 0 00 X XX X

Глава 7  58  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОсновной управляющий автомат: Адрес Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 0 IRW rite PCW rite Reset S 0: Fetch S 2: Mem. Adr S 1: Decode Op = LW or Op = SW Sign. Imm. CLK A RD Instr / Data Memory A 1 A 3 W D 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File 0 1 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 ALUResult. Src. A ALUOut 31: 26 Reg. Dst Branch Mem. W rite Memto. Reg ALUSrc. A Reg. Write. Op Funct Control Unit Zero. PCSrc. CLK ALUControl 2: 0 ALU W D WECLK Adr 0 1 Data. CLK A B 00 01 10 114 CLKENENALUSrc. B 1: 0 IRW rite Ior. D PCWrite PCEn X 0 00 X X 0 1 10 010 X

Глава 7  59  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОсновной управляющий автомат: Адрес Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 0 IRW rite PCW rite ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Reset S 0: Fetch S 2: Mem. Adr S 1: Decode Op = LW or Op = SW Sign. Imm. CLK A RD Instr / Data Memory A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File 0 1 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 ALUResult. Src. A ALUOut 31: 26 Reg. Dst Branch Mem. W rite Memto. Reg ALUSrc. A Reg. W rite. Op Funct Control Unit Zero. PCSrc. CLK ALUControl 2: 0 ALU WD WECLK Adr 0 1 Data. CLK A B 00 01 10 114 CLKENENALUSrc. B 1: 0 IRW rite Ior. D PCWrite PCEn X 0 00 X X 0 1 10 010 X

Глава 7  60  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОсновной управляющий автомат: lw Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 0 IRW rite PCW rite ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Ior. D = 1 Reset S 0: Fetch S 2: Mem. Adr S 1: Decode S 3: Mem. Read Op = LW or Op = SW Op = LW Reg. Dst = 0 Memto. Reg = 1 Reg. W rite. S 4: Mem W riteback

Глава 7  61  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОсновной управляющий автомат: sw Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 0 IRW rite PCW rite ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Ior. D = 1 Mem. Write. Reset S 0: Fetch S 2: Mem. Adr S 1: Decode S 3: Mem. Read S 5: Mem. W rite. Op = LW or Op = SW Op = LW Op = SW Reg. Dst = 0 Memto. Reg = 1 Reg. W rite. S 4: Mem W riteback

Глава 7  62  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОсновной управляющий автомат: R-Тип Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 0 IRW rite PCW rite ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Ior. D = 1 Reg. Dst = 1 Memto. Reg = 0 Reg. W rite. Ior. D = 1 Mem. Write ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 10 Reset S 0: Fetch S 2: Mem. Adr S 1: Decode S 3: Mem. Read S 5: Mem. W rite S 6: Execute S 7: ALU W riteback. Op = LW or Op = SW Op = R-type Op = LW Op = SW Reg. Dst = 0 Memto. Reg = 1 Reg. W rite. S 4: Mem W riteback

Глава 7  63  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОсновной управляющий автомат : beq Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 0 IRW rite PCW rite ALUSrc. A = 0 ALUSrc. B = 11 ALUOp = 00 ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Ior. D = 1 Reg. Dst = 1 Memto. Reg = 0 Reg. W rite. Ior. D = 1 Mem. Write ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 10 ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 01 PCSrc = 1 Branch. Reset S 0: Fetch S 2: Mem. Adr S 1: Decode S 3: Mem. Read S 5: Mem. W rite S 6: Execute S 7: ALU W riteback S 8: Branch. Op = LW or Op = SW Op = R-type Op = BEQ Op = LW Op = SW Reg. Dst = 0 Memto. Reg = 1 Reg. W rite. S 4: Mem W riteback

Глава 7  64  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОсновной управляющий автомат Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 0 IRW rite PCW rite ALUSrc. A = 0 ALUSrc. B = 11 ALUOp = 00 ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Ior. D = 1 Reg. Dst = 1 Memto. Reg = 0 Reg. W rite. Ior. D = 1 Mem. W rite ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 10 ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 01 PCSrc = 1 Branch. Reset S 0: Fetch S 2: Mem. Adr S 1: Decode S 3: Mem. Read S 5: Mem. W rite S 6: Execute S 7: ALU W riteback S 8: Branch. Op = LW or Op = SW Op = R-type Op = BEQ Op = LW Op = SW Reg. Dst = 0 Memto. Reg = 1 Reg. W rite. S 4: Mem W riteback

Глава 7  65  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АДобавим функционала: addi Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 0 IRW rite PCW rite ALUSrc. A = 0 ALUSrc. B = 11 ALUOp = 00 ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Ior. D = 1 Reg. Dst = 1 Memto. Reg = 0 Reg. W rite. Ior. D = 1 Mem. W rite ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 10 ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 01 PCSrc = 1 Branch. Reset S 0: Fetch S 2: Mem. Adr S 1: Decode S 3: Mem. Read S 5: Mem. W rite S 6: Execute S 7: ALU W riteback S 8: Branch. Op = LW or Op = SW Op = R-type Op = BEQ Op = LW Op = SW Reg. Dst = 0 Memto. Reg = 1 Reg. W rite. S 4: Mem W riteback Op = ADDI S 9: ADDI Execute S 10: ADDI W riteback

Глава 7  66  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОсновной управляющий автомат: addi Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 0 IRW rite PCW rite ALUSrc. A = 0 ALUSrc. B = 11 ALUOp = 00 ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Ior. D = 1 Reg. Dst = 1 Memto. Reg = 0 Reg. W rite. Ior. D = 1 Mem. W rite ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 10 ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 01 PCSrc = 1 Branch. Reset S 0: Fetch S 2: Mem. Adr S 1: Decode S 3: Mem. Read S 5: Mem. W rite S 6: Execute S 7: ALU W riteback S 8: Branch. Op = LW or Op = SW Op = R-type Op = BEQ Op = LW Op = SW Reg. Dst = 0 Memto. Reg = 1 Reg. W rite. S 4: Mem W riteback ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Reg. Dst = 0 Memto. Reg = 0 Reg. W rite. Op = ADDI S 9: ADDI Execute S 10: ADDI W riteback

Глава 7  67  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АДобавим функционала: j Sign. Imm CLK ARD Instr / Data Memory A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File 0 1 PC 0 1 PC’Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 ALUResult Src. A ALUOut Reg. Dst. Branch. Mem. Write. Memto. Reg. ALUSrc. AReg. Write Zero PCSrc 1: 0 CLK ALUControl 2: 0 ALU WD W E CLK Adr 0 1 Data CLK A B 00 01 10 11 4 CLK ENEN ALUSrc. B 1: 0 IRW rite. Ior. DPCW rite PCEn 00 01 10 <<2 25: 0 (jump) 31: 28 27: 0 PCJump

Глава 7  68  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОсновной управляющий автомат : j Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 00 IRW rite. PCW rite ALUSrc. A = 0 ALUSrc. B = 11 ALUOp = 00 ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Ior. D = 1 Reg. Dst = 1 Memto. Reg = 0 Reg. W rite Ior. D = 1 Mem. Write ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 10 ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 01 PCSrc = 01 Branch Reset S 0: Fetch S 2: Mem. Adr S 1: Decode S 3: Mem. Read. S 5: Mem. W rite S 6: Execute S 7: ALUWriteback S 8: Branch Op = LWor. Op = SW Op = R-type Op = BEQ Op = LW Op = SW Reg. Dst = 0 Memto. Reg = 1 Reg. W rite S 4: Mem. Writeback ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Reg. Dst = 0 Memto. Reg = 0 Reg. W rite Op = ADDI S 9: ADDIExecute S 10: ADDIW riteback Op = J S 11: Jump

Глава 7  69  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОсновной управляющий автомат : j Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 00 IRW rite PCWrite ALUSrc. A = 0 ALUSrc. B = 11 ALUOp = 00 ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Ior. D = 1 Reg. Dst = 1 Memto. Reg = 0 Reg. W rite. Ior. D = 1 Mem. Write ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 10 ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 01 PCSrc = 01 Branch. Reset S 0: Fetch S 2: Mem. Adr S 1: Decode S 3: Mem. Read S 5: Mem. W rite S 6: Execute S 7: ALU Writeback S 8: Branch. Op = LW or Op = SW Op = R-type Op = BEQ Op = LW Op = SW Reg. Dst = 0 Memto. Reg = 1 Reg. W rite. S 4: Mem Writeback ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Reg. Dst = 0 Memto. Reg = 0 Reg. W rite. Op = ADDI S 9: ADDI Execute S 10: ADDI Writeback PCSrc = 10 PCWrite. Op = J S 11: Jump

Глава 7  70  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Инструкции выполняются за разное количество тактов: – 3 такта : beq , j – 4 такта: R-тип, sw , addi – 5 тактов: lw • CPI будет средним значением • Тестовый набор SPECINT 2000 содержит: – 25% инструкций lw – 10% инструкций sw – 11% условных переходов – 2% безусловных переходов – 52% инструкций R-типа Средний CPI = (0. 11 + 0. 2)(3) + (0. 52 + 0. 10)(4) + (0. 25)(5) = 4. 12 Производительность многотактного процессора

Глава 7  71  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АЗадержка самой длинной цепи комбинационной логики многотактного процессора: T c = t pcq + t mux + max( t ALU + t mux , t mem ) + t setup. Производительность многотактного процессора Sign. Imm CLK ARD Instr / Data. Memory A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register. File 0 10 1 PC’Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 ALUResult Src. A ALUOut 31: 26 Reg. Dst Branch Mem. W rite Memto. Reg ALUSrc. A Reg. W rite. Op Funct Control. Unit Zero PCSrc CLK ALUControl 2: 0 ALU WD W E CLK Adr 0 1 Data CLK A B 00 01 10 11 4 CLK ENEN ALUSrc. B 1: 0 IRWrite Ior. D PCWrite PCEn

Глава 7  72  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АT c = ? Посчитаем производительность многотактного процессора Параметр Обозначение Задержка (пс) Время записи в регистр t pcq _PC 30 Время предустановки регистра t setup 20 Задержка мультиплексора t mux 25 Задержка АЛУ t ALU 200 Задержка считывания из памяти t mem 250 Задержка считывания из регистрового файла t RF read 150 Время предустановки регистрового файла t RF setup

Глава 7  73  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АT c = t pcq_PC + t mux + max( t ALU + t mux , t mem ) + t setup = t pcq_PC + t mux + t mem + t setup = [30 + 250 + 20] пс = 325 пс. Посчитаем производительность многотактного процессора

Глава 7  74  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АПредположим, в программе 100 миллиардов инструкций: – CPI = 4. 12 – T c = 325 пс Время выполнения = (# инструкции) × CPI × T c = (100 × 10 9 )(4. 12)(325 × 10 -12 ) = 133. 9 секунд Это больше , чем для однотактного процессора (92. 5 секунд). Почему? – У разных команд разная длительность выполнения – Дополнительные задержки на каждом шаге ( t pcq + t setup = 50 пс)Посчитаем производительность многотактного процессора

Глава 7  75  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АПовторение: однотактный процессор Sign. Imm. CLK A RD Instruction Memory + 4 A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory W D W E 0 1 PC 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 + ALUResult Read. Data Write. Data. Src. A PCPlus 4 PCBranch. Write. Reg 4: 0 Result 31: 26 Reg. Dst. Branch. Mem. Write. Memto. Reg ALUSrc Reg. W rite. Op Funct. Control Unit Zero PCSrc CLKALUControl 2: 0 ALU 0 1 25: 0 <<227: 0 31: 28 PCJump

Глава 7  76  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АПовторение: многотактный процессор Imm. Ext. CLK A RD Instr / Data Memory A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 PC 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 ALUResult. Src. A ALUOut. Zero. CLK ALU W D W ECLK Adr 0 1 Data. CLK A B 00 01 10 114 CLKENEN 00 01 10 <<2 25: 0 (Addr) 31: 28 27: 0 PCJump 5: 0 31: 26 Branch Mem. W rite ALUSrc. A Reg. W rite. Op Funct Control Unit PCSrc. CLK ALUControl 2: 0 ALUSrc. B 1: 0 IRW rite Ior. D PCW rite PCEn Reg. Dst Memto. Reg

Глава 7  77  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Временной параллелизм • Разделим однотактный процессор на 5 стадий: – Выборка – Декодирование – Выполнение – Доступ к памяти – Запись результатов • Добавим регистры между стадиями конвейера. Конвейерный MIPS процессор

Глава 7  78  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОднотактный / Конвейерный Time (ps)Instr Fetch Instruction Decode Read Reg Execute ALU Memory Read / W rite Write Reg 1 2 0 100 200 300 400 500 600 700 800 900 1100 1200 1300 1400 1500 1600 1700 1800 19001000 Instr 1 2 3 Fetch Instruction Decode Read Reg Execute ALU Memory Read / W rite Reg Fetch Instruction Decode Read Reg Execute ALU Memory Read/Write Write Reg Single-Cycle Pipelined

Глава 7  79  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р ААбстрактное представление конвейера Time (cycles) lw $s 2, 40($0) RF 40$0 RF$s 2 + DM RF $t 2$t 1 RF$s 3 + DM RF $s 5$s 1 RF$s 4 — DM RF $t 6$t 5 RF$s 5 & DM RF 20$s 1 RF$s 6 + DM RF $t 4$t 3 RF$s 7 | DMadd $s 3, $t 1, $t 2 sub $s 4, $s 1, $s 5 and $s 5, $t 6 sw $s 6, 20($s 1) or $s 7, $t 3, $t 4 1 2 3 4 5 6 7 8 9 10 add IMIMIM lw sub and sw or

Глава 7  80  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОднотактный и конвейерный тракт данных Sign. Imm. ECLK A RD Instruction Memory + 4 A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory W D W E 0 1 PCF 0 1 PC’ Instr. D 25: 21 20: 16 15: 0 Src. BE 20: 16 15: 11 Rt. E Rd. E <<2 + ALUOut. M ALUOut. W Read. Data. W W rite. Data. E Write. Data. MSrc. AE PCPlus 4 D PCBranch. M Result. WPCPlus 4 EPCPlus 4 F Zero. MCLK ALU W rite. Reg. E 4: 0 CLK CLKSign. Imm. CLK A RD Instruction Memory + 4 A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory W D W E 0 1 PC 0 1 PC' Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 + ALUResult Read. Data W rite. Data. Src. A PCPlus 4 PCBranch. W rite. Reg 4: 0 Result. Zero CLK ALU Fetch Decode Execute Memory Writeback

Глава 7  81  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АТеперь Write. Reg. W и Result. W подаются на входы регистрового файла в стадии Writeback одновременно. Исправленный конвейерный тракт данных Sign. Imm. E CLK ARD Instruction Memory + 4 A 1 A 3 W D 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File 0 1 ARD Data Memory W D W E 0 1 PCF 0 1 PC’ Instr. D 25: 21 20: 16 15: 0 Src. BE 20: 16 15: 11 Rt. E Rd. E <<2 + ALUOut. M ALUOut. W Read. Data. W W rite. Data. E W rite. Data. MSrc. AE PCPlus 4 D PCBranch. MW rite. Reg. M 4: 0 Result. WPCPlus 4 EPCPlus 4 F Zero. M CLKCLK W rite. Reg. W 4: 0 ALUW rite. Reg. E 4: 0 CLK CLK Fetch. Decode. Execute. Memory. Writeback

Глава 7  82  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • То же устройство управления, что и в однотактном процессоре • Сигналы управления доходят до соответствующей стадии с задержкой (сигналы управления тоже конвейеризируются)Управление конвейерным процессором Sign. Imm. ECLK A RD Instruction Memory + 4 A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory WD W E 0 1 PCF 0 1 PC’ Instr. D 25: 21 20: 16 15: 0 Src. BE 20: 16 15: 11 Rt. E Rd. E <<2 + ALUOut. M ALUOut. W Read. Data. W W rite. Data. E W rite. Data. MSrc. AE PCPlus 4 D PCBranch. MWrite. Reg. M 4: 0 Result. WPCPlus 4 EPCPlus 4 F 31: 26 Reg. Dst. DBranch. DMem. Write. DMemto. Reg. D ALUControl. D ALUSrc. DReg. W rite. D Op Funct. Control Unit Zero. M PCSrc. MCLK CLK CLK W rite. Reg. W 4: 0 ALUControl. E 2: 0 ALUReg. W rite. E Reg. Write. M Reg. Write. W Memto. Reg. E Memto. Reg. M Memto. Reg. W Mem. Write. E Mem. W rite. M Branch. E Branch. M Reg. Dst. EALUSrc. E Write. Reg. E 4:

Глава 7  83  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • В конвейере выполняется несколько инструкций одновременно • Конфликты случаются когда одна инструкция зависит от результата другой, еще не завершенной инструкции • Типы конфликтов: – Конфликты данных: результат инструкции еще не записан в регистр, а следующая инструкция уже пытается считать этот регистр – Конфликты управления: процессор выбирает из памяти следующую инструкцию до того, как стало ясно, какую именно инструкцию надо выбрать(возникают из-за условных переходов)Конфликты конвейера

Глава 7  84  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АКонфликты данных Time (cycles) add $s 0, $s 2, $s 3 RF$s 3 $s 2 RF$s 0+DM RF$s 1 $s 0 RF$t 0&DM RF$s 0 $s 4 RF$t 1|DM RF$s 5 $s 0 RF$t 2 -DM and $t 0, $s 1 or $t 1, $s 4, $s 0 sub $t 2, $s 0, $s 5 12345678 and IM IMadd or sub

Глава 7  85  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Можно вставлять пустые инструкции ( nop ) в код программы перед компиляцией или во время компиляции • Во время выполнения программы реализовать аппаратную передачу данных с одного этапа конвейера на другой не дожидаясь завершения инструкции • Во время выполнения программы останавливать (stall) некоторые этапы конвейера до тех пор, пока проблемная инструкция не запишет в регистровый файл результат, от которого зависят инструкции на остановленных этапах. Разрешение конфликтов данных

Глава 7  86  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Вставить в код достаточно пустых инструкций ( nop ), которые будут заполнять стадии конвейера, пока необходимый результат не будет записан в регистр. Устранение конфликтов на уровне компилятора Time (cycles) add $s 0, $s 2, $s 3 RF$s 3 $s 2 RF$s 0 +DM RF$s 1 $s 0 RF$t 0 &DM RF$s 0 $s 4 RF$t 1 |DM RF$s 5 $s 0 RF$t 2 -DMand $t 0, $s 1 or $t 1, $s 4, $s 0 sub $t 2, $s 0, $s 5 1 2 3 4 5 6 7 8 and IM IMadd or sub nop RFRFDMnop. IM

Глава 7  87  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АПередача данных между стадиями (Forwarding, Bypass) Time (cycles) add $s 0, $s 2, $s 3 RF $s 3$s 2 RF$s 0 + DM RF $s 1$s 0 RF$t 0 & DM RF $s 0$s 4 RF$t 1 | DM RF $s 5$s 0 RF$t 2 — DMand $t 0, $s 1 or $t 1, $s 4, $s 0 sub $t 2, $s 0, $s 5 1 2 3 4 5 6 7 8 and IMIM add or sub

Глава 7  88  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АПередача данных между стадиями (Forwarding, Bypass) Sign. Imm. E CLK ARD Instruction. Memory + 4 A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign. Extend Register. File 0 1 ARD Data. Memory W D W E 1 0 PCF 0 1 PC’ Instr. D 25: 21 20: 16 15: 0 Src. BE 25: 21 15: 11 Rs. E Rd. E <<2 + ALUOut. M ALUOut. W Read. Data. W W rite. Data. E W rite. Data. MSrc. AE PCPlus 4 D PCBranch. M W rite. Reg. M 4: 0 Result. WPCPlus 4 F 31: 26 Reg. Dst. D Branch. DMem. W rite. DMemto. Reg. D ALUControl. D 2: 0 ALUSrc. DReg. W rite. D Op Funct Control. Unit PCSrc. M CLKCLKCLK W rite. Reg. W 4: 0 ALUControl. E 2: 0 ALUReg. W rite. E Reg. W rite. M Reg. W rite. W Memto. Reg. E Memto. Reg. M Memto. Reg. W Mem. W rite. E Mem. W rite. M Reg. Dst. EALUSrc. E W rite. Reg. E 4: 000 01 10 Sign. Imm. D Forward. AE Forward. BE 20: 16 Rt. ERs. D Rd. DRt. D Reg. Write. M Reg. Write. W Hazard Unit PCPlus 4 EBranch. E Branch. M Zero. M

Глава 7  89  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Можно передавать необходимые данные на этап Выполнения с этапов: – Доступа к памяти или – Записи результатов в регистровый файл • Управляющая логика для Forward. AE : if (( rs. E != 0) AND ( rs. E == Write. Reg. M ) AND Reg. Write. M ) then Forward. AE = 10 else if (( rs. E != 0) AND ( rs. E == Write. Reg. W ) AND Reg. Write. W ) then Forward. AE = 01 else Forward. AE = 00 Управляющая логика для Forward. BE похожа, но нужно заменить rs. E на rt. EПередача данных между стадиями (Forwarding, Bypass)

Глава 7  90  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОстанов конвейера Time (cycles) lw $s 0, 40($0) RF 40$0 RF$s 0 + DM RF $s 1$s 0 RF$t 0 & DM RF $s 0$s 4 RF$t 1 | DM RF $s 5$s 0 RF$t 2 — DMand $t 0, $s 1 or $t 1, $s 4, $s 0 sub $t 2, $s 0, $s 5 1 2 3 4 5 6 7 8 and IMIM lw or sub. Trouble!

Глава 7  91  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОстанов конвейера Time (cycles) lw $s 0, 40($0)RF 40 $0 RF$s 0+DM RF$s 1 $s 0 RF$t 0&DM RF$s 0 $s 4 RF$t 1|DM RF$s 5 $s 0 RF$t 2 -DM and $t 0, $s 1 or $t 1, $s 4, $s 0 sub $t 2, $s 0, $s 5 12345678 and IM IMlw or sub 9 RF$s 1 $s 0 IMor Stall

Глава 7  92  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АОстанов конвейера Sign. Imm. ECLK A RD Instruction Memory + 4 A 1 A 3 WD 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory WD W E 1 0 PCF 0 1 PC’ Instr. D 25: 21 20: 16 15: 0 Src. BE 25: 21 15: 11 Rs. E Rd. E <<2 + ALUOut. M ALUOut. W Read. Data. W W rite. Data. E W rite. Data. MSrc. AE PCPlus 4 D PCBranch. M W rite. Reg. M 4: 0 Result. WPCPlus 4 F 31: 26 Reg. Dst. D Branch. DMem. Write. DMemto. Reg. D ALUControl. D 2: 0 ALUSrc. DReg. W rite. D Op Funct. Control Unit PCSrc. MCLK CLK CLK W rite. Reg. W 4: 0 ALUControl. E 2: 0 ALUReg. W rite. E Reg. W rite. M Reg. W rite. W Memto. Reg. E Memto. Reg. M Memto. Reg. W Mem. Write. E Mem. W rite. M Reg. Dst. EALUSrc. E W rite. Reg. E 4: 000 01 10 Sign. Imm. D Stall. F Stall. D Forward. AE Forward. BE 20: 16 Rt. ERs. D Rd. DRt. D Reg. Write. M Reg. Write. W Memto. Reg. E Hazard Unit Flush. E PCPlus 4 EBranch. E Branch. M Zero. M EN ENCLR

Глава 7  93  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р Аlwstall = (( rs. D == rt. E ) OR ( rt. D == rt. E )) AND Memto. Reg. E Stall. F = Stall. D = Flush. E = lwstall. Логика управления остановом (для инструкции lw )

Глава 7  94  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • beq : – Будет выполнен условный переход или нет становится известно только на 4 -й стадии конвейера – Пока это не станет известно, инструкции следующие за инструкцией условного перехода продолжают попадать в конвейер – В случае необходимости условного перехода эти инструкции (идущие после beq ) не должны быть выполнены и их необходимо удалить из конвейера • Цена неправильного предсказания результата условного перехода – Количество инструкций, которые необходимо удалить из конвейера, если переход все таки произойдет – Это количество можно уменьшить, проверяя условие перехода на более ранних стадиях конвейера. Конфликты управления

Глава 7  95  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АКонвейер до разрешения конфликтов управления Sign. Imm. ECLK A RD Instruction Memory + 4 A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory W D W E 1 0 PCF 0 1 PC’ Instr. D 25: 21 20: 16 15: 0 Src. BE 25: 21 15: 11 Rs. E Rd. E <<2 + ALUOut. M ALUOut. W Read. Data. W W rite. Data. E W rite. Data. MSrc. AE PCPlus 4 D PCBranch. M W rite. Reg. M 4: 0 Result. WPCPlus 4 F 31: 26 Reg. Dst. D Branch. DMem. W rite. DMemto. Reg. D ALUControl. D 2: 0 ALUSrc. DReg. W rite. D Op Funct. Control Unit PCSrc. MCLK CLK CLK W rite. Reg. W 4: 0 ALUControl. E 2: 0 ALUReg. W rite. E Reg. W rite. M Reg. W rite. W Memto. Reg. E Memto. Reg. M Memto. Reg. W Mem. W rite. E Mem. W rite. M Reg. Dst. EALUSrc. E W rite. Reg. E 4: 000 01 10 Sign. Imm. D Stall. F Stall. D Forward. AE Forward. BE 20: 16 Rt. ERs. D Rd. DRt. D Reg. Write. M Reg. Write. W Memto. Reg. E Hazard Unit Flush. E PCPlus 4 EBranch. E Branch. M Zero. M EN ENCLR

Глава 7  96  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АКонфликты управления Time (cycles) beq $t 1, $t 2, 40 RF $t 2$t 1 RF- DM RF $s 1$s 0 RF& DM RF $s 0$s 4 RF| DM RF $s 5$s 0 RF- DMand $t 0, $s 1 or $t 1, $s 4, $s 0 sub $t 2, $s 0, $s 5 1 2 3 4 5 6 7 8 and IMIM lw or sub 20 24 28 2 C 30. . . 9 Flush these instructions 64 slt $t 3, $s 2, $s 3 RF $s 3$s 2 RF$t 3 slt DM IM slt

Глава 7  97  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АПриводит к новому конфликту данных на стадии Декодирования. Ранняя проверка условия перехода Equal. D Sign. Imm. ECLK A RD Instruction Memory + 4 A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory W D W E 1 0 PCF 0 1 PC’ Instr. D 25: 21 20: 16 15: 0 Src. BE 25: 21 15: 11 Rs. E Rd. E <<2 + ALUOut. M ALUOut. W Read. Data. W W rite. Data. E W rite. Data. MSrc. AE PCPlus 4 D PCBranch. D W rite. Reg. M 4: 0 Result. WPCPlus 4 F 31: 26 Reg. Dst. D Branch. DMem. Write. DMemto. Reg. D ALUControl. D 2: 0 ALUSrc. DReg. W rite. D Op Funct. Control Unit PCSrc. D CLK CLK CLK W rite. Reg. W 4: 0 ALUControl. E 2: 0 ALUReg. W rite. E Reg. W rite. M Reg. Write. W Memto. Reg. E Memto. Reg. M Memto. Reg. W Mem. W rite. E Mem. Write. M Reg. Dst. EALUSrc. E W rite. Reg. E 4: 000 01 10= Sign. Imm. D Stall. F Stall. D Forward. AE Forward. BE 20: 16 Rt. ERs. D Rd. ERt. D Reg. Write. M Reg. Write. W Memto. Reg. E Hazard Unit Flush. E EN ENCLRCLR

Глава 7  98  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АРанняя проверка условия перехода Инструкцию загруженную в конвейер после beq не обязательно удалять в случае выполнения перехода. Можно ввести условие, что инструкция следующая за переходом (условным или безусловным) выполняется всегда. Такое допущение называется branch delay slot. Time (cycles) beq $t 1, $t 2, 40 RF $t 2$t 1 RF-DM RF $s 1$s 0 RF &DMand $t 0, $s 1 or $t 1, $s 4, $s 0 sub $t 2, $s 0, $s 5 12345678 and IMIM lw 20 24 28 2 C 30. . . 9 Flush this instruction 64 slt $t 3, $s 2, $s 3 RF $s 3$s 2 RF$t 3 slt DM IM slt

Глава 7  99  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АУстранение конфликтов управления и данных Equal. D Sign. Imm. ECLK A RD Instruction Memory + 4 A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File 0 1 A RD Data Memory W D W E 1 0 PCF 0 1 PC’ Instr. D 25: 21 20: 16 15: 0 Src. BE 25: 21 15: 11 Rs. E Rd. E <<2 + ALUOut. M ALUOut. W Read. Data. W W rite. Data. E W rite. Data. MSrc. AE PCPlus 4 D PCBranch. D Write. Reg. M 4: 0 Result. WPCPlus 4 F 31: 26 Reg. Dst. D Branch. DMem. Write. DMemto. Reg. D ALUControl. D 2: 0 ALUSrc. DReg. W rite. D Op Funct. Control Unit PCSrc. D CLK CLK CLK Write. Reg. W 4: 0 ALUControl. E 2: 0 ALUReg. W rite. E Reg. W rite. M Reg. W rite. W Memto. Reg. E Memto. Reg. M Memto. Reg. W Mem. Write. E Mem. Write. M Reg. Dst. EALUSrc. E Write. Reg. E 4: 000 01 100 1 = Sign. Imm. D Stall. F Stall. D Forward. AE Forward. BE Forward. AD Forward. BD 20: 16 Rt. ERs. D Rd. DRt. D Reg. Write. E Reg. Write. M Reg. Write. W Memto. Reg. E Branch. D Hazard Unit Flush. E EN ENCLRCLR

Глава 7  100  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Логика управления передачей данных между стадиями конвейера (Forwarding logic): Forward. AD = ( rs. D !=0) AND ( rs. D == Write. Reg. M ) AND Reg. Write. M Forward. BD = ( rt. D !=0) AND ( rt. D == Write. Reg. M) AND Reg. Write. M • Логика останова конвейера (Stalling logic): branchstall = Branch. D AND Reg. Write. E AND ( Write. Reg. E == rs. D OR Write. Reg. E == rt. D ) OR Branch. D AND Memto. Reg. M AND ( Write. Reg. M == rs. D OR Write. Reg. M == rt. D ) Stall. F = Stall. D = Flush. E = lwstall OR branchstall. Логика устранения конфликтов

Глава 7  101  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Мы можем попробовать оценить на сколько вероятно выполнение условного перехода и использовать наиболее вероятный результат – Например, в циклах наиболее вероятно выполнение условных переходов назад (переходы на начало итерации цикла скорее выполняются, чем нет) – Для улучшения предсказания переходов можно использовать результаты предыдущих предсказаний (например, если три прошлых раза мы переходили назад, то скорее всего это цикл и в следующий раз условный переход назад тоже состоится) • Хорошее предсказание уменьшает количество сбросов стадий конвейера. Предсказание переходов

Глава 7  102  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Тестовый набор SPECINT 2000 содержит : – 25% инструкций lw – 10% инструкций sw – 11% условных переходов – 2% безусловных переходов – 52% инструкций R-типа • Предположим: – 40% считываний из памяти используются следующей инструкцией – 25% переходов предсказываются неверно – Все переходы удаляют следующую инструкцию из конвейера • Каков средний CPI? Оценим производительность конвейерного процессора

Глава 7  103  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Тестовый набор SPECINT 2000 содержит : – 25% инструкций lw – 10% инструкций sw – 11% условных переходов – 2% безусловных переходов – 52% инструкций R-типа • Предположим: – 40% считываний из памяти используются следующей инструкцией – 25% переходов предсказываются неверно – Все переходы удаляют следующую инструкцию из конвейера • Каков средний CPI? – Для lw / beq CPI = 1 если нет останова, 2 в случае останова – CPI lw = 1(0. 6) + 2(0. 4) = 1. 4 – CPI beq = 1(0. 75) + 2(0. 25) = 1. 25 Средний CPI = (0. 25)(1. 4) + (0. 1)(1) + (0. 11)(1. 25) + (0. 02)(2) + (0. 52)(1) = 1. 15 Оценим производительность конвейерного процессора

Глава 7  104  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Задержка самой длинной цепи комбинационной логики конвейерного процессора : T c = max { t pcq + t mem + t setup 2( t RFread + t mux + t eq + t AND + t mux + t setup ) t pcq + t mux + t ALU + t setup t pcq + t memwrite + t setup 2( t pcq + t mux + t RFwrite ) }Оценим производительность конвейерного процессора

Глава 7  105  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АПараметр Обозначение Задержка (пс) Время записи в регистр t pcq _PC 30 Время предустановки регистра t setup 20 Задержка мультиплексора t mux 25 Задержка АЛУ t ALU 200 Задержка считывания из памяти t mem 250 Задержка считывания из рег. файла t RF read 150 Время предустановки рег. файла t RF setup 20 Задержка компаратора t eq 40 Задержка элемента И t AND 15 Задержка записи в память T memwrite 220 Задержка записи в рег. файл t RF write 100 ps T c = 2( t RFread + t mux + t eq + t AND + t mux + t setup ) = 2[150 + 25 + 40 + 15 + 20] ps = 550 пс. Оценим производительность конвейерного процессора

Глава 7  106  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АПредположим, в программе 100 миллиардов инструкций Время выполнения = (# инструкции) × CPI × T c = (100 × 10 9 )(1. 15)(550 × 10 -12 ) = 63 секунды. Оценим производительность конвейерного процессора

Глава 7  107  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АМикроархитектура Время выполнения (секунды) Прирост производительности Однотактная 92. 5 1 Многотактная 133 0. 70 Конвейерная 63 1. 47 Сравнение производительности

Глава 7  108  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АПовторение: Исключения • Исключение (англ. : exception) – незапланированный вызов функции-обработчика исключения ( exception handler ) • Исключения бывают: – Аппаратные (например, нажатие клавиши на клавиатуре). Такие исключения называют прерываниями ( англ. : interrupt). – Программные (например, неизвестная инструкция, деление на ноль). Такие исключения называют ловушками ( англ. : trap). • При возникновении исключения процессор: – Записывает в специальный регистр код причины исключения – Сохраняет значение счетчика команд (PC) на момент возникновения исключения (адрес инструкции вызвавшей искл. ) – Делает переход в функцию-обработчик исключения по адресу 0 x 80000180 – После выполнения обработчика исключения возвращает управление прерванной программе, делая переход по ранее сохраненному адресу

Глава 7  109  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АПример исключения

Глава 7  110  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Отдельные регистры. Не входят в регистровый файл – Cause • Содержит код причины исключения • Регистр 13 Сопроцессора 0 – EPC (Exception PC) • Содержит значение счетчика команд (PC) на момент возникновения исключения • Регистр 14 Сопроцессора 0 • Инструкция считывания регистра Сопроцессора 0 в регистр общего назначения – mfc 0 $t 0, Cause – Копирует содержимое Cause в регистр $t 0 Регистры обработки исключений 00000 $t 0 (8) Cause (13) 000000 mfc 0 31: 26 25: 21 20: 16 15: 11 10:

Глава 7  111  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АДобавим в многотактный MIPS процессор возможность обработки последних двух типов исключений. Коды причин исключений Исключение Код причины Аппаратное прерывание 0 x 0000 Системный вызов 0 x 00000020 Точка останова / Деление на 0 0 x 00000024 Неизвестная инструкция 0 x 00000028 Арифметическое переполнение 0 x

Глава 7  112  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р ААппаратура исключений: EPC & Cause Sign. Imm. CLK A RD Instr / Data Memory A 1 A 3 WD 3 RD 2 RD 1 WE 3 A 2 CLK Sign Extend Register File 0 1 PC 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 ALUResult. Src. A ALUOut. Reg. Dst Branch. Mem. Write Memto. Reg ALUSrc. AReg. Write Zero PCSrc 1: 0 CLK ALUControl 2: 0 ALU WD WECLK Adr 0 1 Data. CLK A B 00 01 10 114 CLK ENEN ALUSrc. B 1: 0 IRW rite. Ior. D PCWrite PCEn <<2 25: 0 (jump) 31: 28 27: 0 PCJump 00 01 10 11 0 x 8000 0180 Overflow. CLK ENEPCW rite CLK ENCause. W rite 0 1 Int. Cause 0 x 30 0 x 28 EPCCause

Глава 7  113  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АИсключения в управляющем автомате Ior. D = 0 Alu. Src. A = 0 ALUSrc. B = 01 ALUOp = 00 PCSrc = 00 IRWrite PCWrite ALUSrc. A = 0 ALUSrc. B = 11 ALUOp = 00 ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Ior. D = 1 Reg. Dst = 1 Memto. Reg = 00 Reg. W rite. Ior. D = 1 Mem. Write ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 10 ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 01 PCSrc = 01 Branch. Reset S 0: Fetch S 2: Mem. Adr S 1: Decode S 3: Mem. Read S 5: Mem. Write S 6: Execute S 7: ALU Writeback S 8: Branch. Op = LW or Op = SW Op = R-type Op = BEQ Op = LW Op = SW Reg. Dst = 0 Memto. Reg = 01 Reg. W rite. S 4: Mem Writeback ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 Reg. Dst = 0 Memto. Reg = 00 Reg. Write. Op = ADDI S 9: ADDI Execute S 10: ADDI Writeback PCSrc = 10 PCWrite. Op = J S 11: Jump Overflow S 13: Overflow PCSrc = 11 PCWrite Int. Cause = 0 Cause. Write EPCWrite. Op = others. PCSrc = 11 PCWrite Int. Cause = 1 Cause. W rite EPCWrite. S 12: Undefined Reg. Dst = 0 Memtoreg = 10 Reg. W rite Op = mfc 0 S 14: M

Глава 7  114  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р ААппаратура исключений: mfc 0 Sign. Imm. CLK A RD Instr / Data Memory A 1 A 3 W D 3 RD 2 RD 1 W E 3 A 2 CLK Sign Extend Register File 0 1 PC 0 1 PC’ Instr 25: 21 20: 16 15: 0 Src. B 20: 16 15: 11 <<2 ALUResult. Src. A ALUOut. Reg. Dst Branch. Mem. W rite Memto. Reg 1: 0 ALUSrc. AReg. W rite Zero PCSrc 1: 0 CLK ALUControl 2: 0 ALU W D W ECLK Adr 00 01 Data. CLK A B 00 01 10 114 CLK ENEN ALUSrc. B 1: 0 IRW rite. Ior. D PCW rite PCEn <<2 25: 0 (jump) 31: 28 27: 0 PCJump 00 01 10 11 0 x 8000 0180 CLK ENEPCW rite CLK ENCause. W rite 0 1 Int. Cause 0 x 30 0 x 28 EPCCause Overflow. . . 01101 01110. . . 15:

Глава 7  115  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Длинные конвейеры • Динамическое предсказание переходов • Суперскалярные процессоры • Процессоры с внеочередным выполнением инструкций • Переименование регистров • SIMD • Многопоточность • Многопроцессорность. Улучшения микроархитектуры

Глава 7  116  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Содержат 10 -20 стадий • Количество стадий ограничивается: – Конфликтами конвейера – Энергопотреблением – Стоимостью – Увеличением задержки тактового сигнала. Длинные конвейеры

Глава 7  117  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • У идеального конвейерного процессора: CPI = 1 • Неверное предсказание переходов увеличивает CPI • Статическое предсказание переходов: – Проверяем направление перехода (вперед или назад) – Если переход назад, считаем, что он будет выполнен – Иначе, считаем, что переход не будет выполнен • Динамическое предсказание переходов: – Процессор содержит таблицу с последними несколькими сотнями (или тысячами) инструкций условного перехода. Эту таблица иногда называют буфером целевых адресов ветвлений (branch target buffer). Она содержит адреса переходов и информацию о том, был ли переход выполнен. Предсказание переходов

Глава 7  118  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А add $s 1, $0 # sum = 0 add $s 0, $0 # i = 0 addi $t 0, $0, 10 # $t 0 = 10 for: beq $s 0, $t 0, done # if i == 10, branch add $s 1, $s 0 # sum = sum + i addi $s 0, 1 # increment i j for done: Пример предсказания переходов

Глава 7  119  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Запоминает, был ли переход выполнен в прошлый раз, и предсказывает, что в следующий раз произойдет то же самое • Ошибается дважды: для первого и последнего условных переходов цикла (на первой и последней итерации)Однобитный динамический предсказатель переходов

Глава 7  120  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р АДает неверное предсказание только для последнего условного перехода цикла (на последней итерации)Двухбитный динамический предсказатель переходов strongly taken predict taken weakly not taken predict not taken strongly not taken predict not takentakentaken taken

Глава 7  121  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Позволяет одновременно считывать и выполнять несколько инструкций за счет дублирования функциональных блоков • Как будто в процессоре одновременно функционирует несколько конвейеров • Зависимости между инструкциями значительно усложняют их одновременное выполнение. Суперскалярный процессор CLKCLK ARDA 1 A 2 RD 1 A 3 W D 3 W D 6 A 4 A 5 A 6 RD 4 RD 2 RD 5 Instruction Memory Register File. Data Memory ALUs PC CLK A 1 A 2 WD 1 WD 2 RD 1 R

Глава 7  122  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р Аlw $t 0, 40($s 0) add $t 1, $t 0, $s 1 sub $t 0, $s 2, $s 3 Идеальный IPC: 2 and $t 2, $s 4, $t 0 Реальный IPC: 2 or $t 3, $s 5, $s 6 sw $s 7, 80($t 3) Пример суперскалярности Time (cycles) 12345678 RF 40 $s 0 RF $t 0+DMIM lw add lw $t 0, 40($s 0) add $t 1, $s 2 sub $t 2, $s 1, $s 3 and $t 3, $s 4 or $t 4, $s 1, $s 5 sw $s 5, 80($s 0) $t 1$s 2 $s 1 + RF$s 3 $s 1 RF $t 2 -DMIM sub and$t 3$s 4 $s 3 & RF$s 5 $s 1 RF $t 4|DMIM or sw 80 $s 0+$s

Глава 7  123  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р Аlw $t 0, 40($s 0) add $t 1, $t 0, $s 1 sub $t 0, $s 2, $s 3 Идеальный IPC: 2 and $t 2, $s 4, $t 0 Реальный IPC: 6/5 = 1. 17 or $t 3, $s 5, $s 6 sw $s 7, 80($t 3) Суперскалярность с зависимостями Stall Time (cycles)1 2 3 4 5 6 7 8 RF 40$s 0 RF$t 0 + DM IM lw lw $t 0, 40($s 0) add $t 1, $t 0, $s 1 sub $t 0, $s 2, $s 3 and $t 2, $s 4, $t 0 sw $s 7, 80($t 3) RF $s 1$t 0 add RF $s 1$t 0 RF$t 1 + DM RF $t 0$s 4 RF$t 2 & DM IM and IM orandsub | $s 6$s 5 $t 3 RF 80$t 3 RF +DMsw. IM $s 7 9 $s 3$s 2 — $t 0 or or $t 3, $s 5, $s 6 IM

Глава 7  124  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Процессор заранее просматривает наперед большое количество инструкций, находит независимые друг от друга инструкции и запускает их на одновременное выполнение • Инструкции могут выполняться не в том порядке, в котором они расположены в программе • Процессор следит за тем, чтобы внеочередное выполнение не нарушало алгоритм работы программы • Зависимости: – RAW (read after write, чтение после записи): предыдущая инструкция записывает, следующая считывает регистр – WAR (write after read, запись после чтения): предыдущая инструкция считывает регистр, следующая инструкция записывает этот регистр – WAW (write after write, запись после записи): инструкция пытается писать в регистр после того, как в него уже записала следующая по ходу программы инструкция. Внеочередное выполнение инструкций

Глава 7  125  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Параллелизм на уровне инструкций (Instruction level parallelism, ILP): число инструкций, которые могут выполнятся одновременно (обычно < 3) • Таблица готовности (Scoreboard): таблица, хранящая информацию про: – Инструкции ожидающие выполнения – Доступные функциональные блоки (АЛУ, порты памяти и т. д. ) – Зависимости между инструкциями. Внеочередное выполнение инструкций

Глава 7  126  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р Аlw $t 0, 40($s 0) add $t 1, $t 0, $s 1 sub $t 0, $s 2, $s 3 Идеальный IPC: 2 and $t 2, $s 4, $t 0 Реальный IPC: 6/4 = 1. 5 or $t 3, $s 5, $s 6 sw $s 7, 80($t 3) Пример внеочередного выполнения Time (cycles) 12345678 RF 40$s 0 RF$t 0 + DM IM lw lw $t 0, 40($s 0) add $t 1, $t 0, $s 1 sub $t 0, $s 2, $s 3 and $t 2, $s 4, $t 0 sw $s 7, 80($t 3) or | $s 6$s 5 $t 3 RF 80$t 3 RF+ DMsw $s 7 or $t 3, $s 5, $s 6 IM RF $s 1$t 0 RF$t 1 + DM IM add sub — $s 3$s 2 $t 0 two cycle latency between load and use of $t 0 RAW WAR RAW RF $t 0$s 4 RF& DMand IM $t 2 RAW

Глава 7  127  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р Аlw $t 0, 40($s 0) add $t 1, $t 0, $s 1 sub $t 0, $s 2, $s 3 Идеальный IPC: 2 and $t 2, $s 4, $t 0 Реальный IPC: 6/3 = 2 or $t 3, $s 5, $s 6 sw $s 7, 80($t 3) Переименование регистров Time (cycles) 1234567 RF 40$s 0 RF$t 0 + DM IM lwlw $t 0, 40($s 0) add $t 1, $t 0, $s 1 sub $r 0, $s 2, $s 3 and $t 2, $s 4, $r 0 sw $s 7, 80($t 3) sub — $s 3$s 2 $r 0 RF $r 0$s 4 RF &DMand $s 7 or $t 3, $s 5, $s 6 IM RF $s 1$t 0 RF$t 1 + DM IM add sw + 80$t 3 RAW$s 6$s 5 | or 2 -cycle RAW $t 2 $t

Глава 7  128  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Одиночный поток команд, множественный поток данных (Single Instruction Multiple Data, SIMD) – Одна инструкция обрабатывает множество блоков данных одновременно (например, параллельно суммирует несколько пар чисел) – Часто используется в компьютерной графике – Выполняется арифметическая операция над несколькими небольшими независимыми блоками данных (пакованная арифметика) • Например, в 32 -разрядном сумматоре можно одновременно суммировать 4 -ре пары 8 -битных операндов. SIMD padd 8 $s 2, $s 0, $s 1 a 0 0781516232432 Bit position $s 0 a 1 a 2 a 3 b 0$s 1 b 1 b 2 b 3 a 0 + b 0$s 2 a 1 + b 1 a 2 + b 2 a 3 + b 3 +

Глава 7  129  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Многопоточность – Например, в текстовом редакторе один поток может отвечать за обработку вводимых с клавиатуры символов и набор текста, другой поток “одновременно” выполнять проверку правописания, третий поток может при этом выводить текст на печать • Мультипроцессорность – Несколько отдельных процессоров внутри одного чипа. Многопоточность и мультипроцессорность

Глава 7  130  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Процесс: программа, которая выполняется на компьютере – Несколько процессов могут выполняться одновременно, например: веб серфинг, прослушивание музыки, написание статьи в текстовом редакторе • Поток: часть процесса (программы) – Процесс может содержать несколько потоков, например текстовый редактор может содержать потоки для набора текста, проверки орфографии, печати. Потоки: Определения

Глава 7  131  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • В каждый момент времени выполняется один поток • Когда выполнение потока блокируется (например, поток ожидает данные из медленной внешней памяти): – Архитектурное состояние потока сохраняется – Архитектурное состояние следующего потока загружается в процессор и поток запускается на выполнение – Такая процедура называется переключением контекста • До тех пор, пока процессор переключается между потоками достаточно быстро, пользователю кажется, что все потоки выполняются одновременно. Потоки в обычном процессоре

Глава 7  132  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • У многопоточного процессора есть несколько копий архитектурного состояния • Несколько потоков могут быть активны одновременно: – Когда выполнение одного потока блокируется, сразу же запускается выполнение другого потока на имеющихся функциональных блоках – Если один поток не использует все функциональные блоки процессора, их использует другой поток • Многопоточность не влияет на параллелизм на уровне инструкций (ILP) отдельного потока, но увеличивает общую производительность вычислений Intel называет такую технологию “hyperthreading”Многопоточность

Глава 7  133  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Многопроцессорная система (multiprocessor system), или просто мультипроцессор, состоит из нескольких процессоров и аппаратуры для соединения их между собой • Типы: – Гомогенная (симметричная) многопроцессорность : несколько одинаковых процессоров подключены к общей памяти – Гетерогенная (асимметричная) многопроцессорность: разные типы процессорных ядер используются для задач разных типов (например, в мобильном телефоне для вычислений используется обычный процессор, а для обработки аудио/видео – специализированное DSP ядро) – Кластеры: каждое ядро имеет свою собственную память. Многопроцессорность

Глава 7  134  М И К Р О А Р Х ИГлава 7 М И К Р О А Р Х И Т Е К Т У Р А • Patterson & Hennessy’s: Computer Architecture: A Quantitative Approach • Conferences: – www. cs. wisc. edu/~arch/www/ – ISCA (International Symposium on Computer Architecture) – HPCA (International Symposium on High Performance Computer Architecture)Дополнительные ресурсы