View on GitHub

ITMO-PE

My study notes about Program Engineering at University ITMO

Архитектура компьютера

Лекция 8

Информационный процессор. 信息处理器
Ключевые термины. 关键术语
Архитектуры процессоров. 处理器架构
Процессор фон Неймана 冯诺依曼处理器

Пенской А.В., 2022


План лекции



Информационный процессор 信息处理器

Информационный процессор 信息处理器
система (электрическая, механическая или биологическая), которая принимает информацию (последовательность символов или состояний) в одной форме и обрабатывает (преобразует) ее в другую форму.
一种系统(电气、机械或生物),以一种形式获取信息(一系列符号或状态)并将其处理(转换)为另一种形式。

Например: исходный сигнал в статистику, посредством алгоритмического процесса.
例如:通过算法过程将原始信号转化为统计数据。

_Information processor by Wikipedia_

Система обработки информации состоит из четырех основных частей или подсистем:
信息处理系统由四个主要部分或子系统组成:

  1. ввод
  2. процессор
  3. хранилище
  4. вывод

  5. 输入
  6. 处理器
  7. 储存
  8. 结论

Универсальный процессор (CPU)

HW позволяет решать широкий круг задач, настройка которых производится после производства “по месту” или в run-time.
硬件允许您解决各种问题,其配置是在生产后“现场”或在运行时进行的。

Примечания: 笔记:


Свойства универсального (программируемого) процессора

通用(可编程)处理器的属性

  1. отделение “программирования” от этапа “производства”
  2. полнота по Тьюрингу
  3. отсутствие “серьезных” ограничений на “объём” программы
  4. возможность изменения ПО

  5. “编程”与“制作”阶段分离
  6. 图灵完备性
  7. 节目“量”缺乏“严格”限制
  8. 更改软件的可能性

Виды процессоров

_Architecture comparison in terms of flexibility, performance, and energy efficiency_


Field-Programmable Gate Array (FPGA) 现场可编程门阵列 (FPGA)


Coarse-Grained Reconfigurable Arrays (CGRA) 粗粒度可重构阵列 (CGRA)


Digital Signal Processor (DSP) 数字信号处理器 (DSP)


Central Processing Unit (CPU) 中央处理器 (CPU)
Graphics Processing Unit (GPU) 图形处理器 (GPU)


Ключевые термины 关键术语


[Микро]процессор 微处理器
цифровая схема, которая выполняет операции с некоторым внешним источником данных, обычно памятью или другим потоком данных.
对某些外部数据源(通常是内存或其他数据流)执行操作的数字电路。
[Микро]контроллер 微控制器
микросхема, предназначенная для управления электронными устройствами.
设计用于控制电子设备的芯片。
Типичный микроконтроллер сочетает функции процессора и периферийных устройств, содержит ОЗУ и (или) ПЗУ.
典型的微控制器结合了处理器和外围设备的功能,并包含 RAM 和/或 ROM。

Оперативная память (память) 内存(RAM)
обычно часть компьютерной памяти, в которой хранится выполняемый машинный код, а также входные, выходные и промежуточные данные.
通常是计算机内存的一部分,用于存储可执行机器代码以及输入、输出和中间数据。

Встраиваемая/встроенная система (embedded system) 嵌入式系统
специализированная микропроцессорная система управления, контроля и мониторинга, концепция разработки которой заключается в том, что такая система будет работать, будучи встроенной непосредственно в устройство, которым она управляет.
:一种专门的微处理器控制、控制和监测系统,其设计理念是这样的系统将在直接内置于其控制的设备中的同时运行。

Система на Кристалле (СнК, System-on-a-Chip, SoC)
片上系统(SoC、片上系统、SoC)
электронная схема, выполняющая функции целого устройства (например, компьютера) и размещённая на одной интегральной схеме.
执行整个设备(例如计算机)功能并放置在单个集成电路上的电子电路。

Архитектура процессора (architecture) 处理器架构(架构)
это то, как видит компьютер программист. Она определена набором команд (языком) и местом нахождения операндов (регистры и память).
这就是程序员看待计算机的方式。 它由指令集(语言)和操作数的位置(寄存器和内存)定义。
Машинное слово 机器字
фрагмент данных фиксированного размера, обрабатываемый как единое целое с помощью набора команд или аппаратного обеспечения процессора
由指令集或处理器硬件作为单个单元处理的固定大小的数据块

Микроархитектура процессора (microarchitecture) 处理器微架构
соединение простейших цифровых элементов в логические блоки, предназначенные для выполнения команд, определенных архитектурой.
将最简单的数字元素连接到旨在执行架构定义的命令的逻辑块中。

Система команд процессора 处理器指令系统
(Instruction Set Architecture – ISA) абстрактная модель процессора, формирующая интерфейс взаимодействия между программным обеспечением и процессором, затрагивающая:
(指令集架构 - ISA)一种抽象处理器模型,形成软件和处理器之间的接口,影响:
  1. типы данных; 数据类型;
  2. систему регистров; 注册系统;
  3. методы адресации; 寻址方法;
  4. модели памяти; 内存模型;
  5. инструкции; 使用说明;
  6. обработку прерываний и исключений; 处理中断和异常;
  7. методы ввода и вывода. 输入输出方式。

Производительность, энергопотребление и задержки обычно не рассматриваются. 通常不考虑性能、功耗和延迟。

Notes: ECE C61 Computer Architecture Lecture 3 – Instruction Set
笔记:ECE C61 计算机体系结构讲座 3 – 指令集


Форматы команд разных архитектур

  1. MIPS32
  2. Very Long Instruction Word (VLIW) 超长指令字
  3. Stack Processor 堆栈处理器
  4. Transport Triggered Architecture (TTA) Processor 传输触发架构(TTA)处理器
  5. URISC

MIPS32 процессор

_Команда addi архитектуры MIPS32_


Very Long Instruction Word (VLIW)


Stack Processor 堆栈处理器


Transport Triggered Architecture (TTA) Processor 传输触发架构 (TTA) 处理器


Ultimate Reduced Instruction Set Computer (URISC) 终极精简指令集计算机 (URISC)

Варианты единственной инструкции:
单指令选项:


URISC. Пример

; 0 - pc
; 1 - acc
; 2 - zero
; 3 - in
; 4 - out
; at start pc = 5

rssb acc      ; 5: acc = acc - acc = 0
rssb C        ; 6: C = acc = C - acc = 67 - 0 = 67
rssb out      ; 7: out = acc

rssb acc      ; 8: acc = acc - acc = 0
rssb S        ; 9: S = acc = S - acc = 83 - 0 = 83
rssb out      ; 10: out = acc

rssb acc      ; 11: acc = acc - acc = 0
rssb A        ; 12: A = acc = A - acc = 65 - 0 = 65
rssb out      ; 13: out = acc

rssb acc      ; 14: acc = acc - acc = 0
rssb one      ; 15: one = acc = one - acc = 1
rssb ip       ; 16: ip = acc = ip - 1 = 17 - 1 = 16, infinite loop

C rssb 67
S rssb 83
A rssb 65
one rssb 1

Программа Hello World: src/helloworld.rssb


Архитектуры универсальных процессоров 通用处理器架构

  1. Машина Тьюринга 图灵机
  2. Редукционные компьютеры (Reduction Machines) 减速机
  3. Потоковые машины (Dataflow Machines) 数据流机器
  4. Машина фон Неймана 冯诺依曼机
  5. High-Level Language Computer Architecture. Stack computers 高级语言计算机体系结构。 堆栈计算机
  6. В стиле фон Неймана $\Longrightarrow$ 冯·诺依曼的风格 $\Longrightarrow$
  7. и так далее…

В стиле фон Неймана 冯·诺依曼风格

  1. Гарвардская архитектура 哈佛建筑
  2. CISC и микрокод CISC 和微码
  3. RISC и конвейер RISC和流水线
  4. Суперскалярные и VLIW 超标量和 VLIW
  5. Иерархия памяти. Кеширование 内存的层次结构。 缓存
  6. Вводы-вывод. Прерывания 输入-输出。 中断
  7. Параллелизм уровня команд. [S/M]I[S/M]D. SIMT. Изоляция 命令级并行性。 [S/M]I[S/M]D。 SIMT。 绝缘

Can Programming be Liberated from the von Neumann Style?
Backus, John. 1977 Turing Award Lecture
编程能否从冯诺依曼风格中解放出来?
巴克斯,约翰。 1977年图灵奖演讲


Машина Тьюринга 图灵机

Машина Тьюринга включает:
图灵机包括:

Управляющее устройство может:
控制装置可以:


  1. не может быть реализована на практике
    实际中无法实施
  2. обладает полнотой по Тьюрингу
    图灵完备
  3. проблема остановки
    停止问题
  4. данные и управление отделены
    数据与控制分离

Редукционные компьютеры 还原计算机

Graph Reduction machine 图形缩减机

An Architecture for Combinator Graph Reduction (TIGRE)

Notes: В аппаратуре встречается редко. Часто встречается в мире функционального программирования.
注: 在硬件中很少见。 经常出现在函数式编程的世界中。


Потоковые машины (Dataflow Machines)

Dataflow architectures 数据流架构
the executability and execution of instructions is solely determined based on the availability of input arguments to the instructions. The order of instruction execution is unpredictable.
指令的可执行性和执行完全取决于指令输入参数的可用性。 指令执行的顺序是不可预测的。

Приходите в NITTA – Dataflow со стат. планированием.
来到 NITTA – 带统计数据的数据流。 规划。


Машина фон Неймана


Особенности машины фон Неймана 冯诺依曼机的特点

  1. Использование двоичного кодирования. 采用二进制编码。
    • Встречается троичное и двоично-десятичное кодирование.
      有三进制和二进制十进制编码。
  2. Программное управление. Команды выполняются последовательно, одна за другой.
    软件控制。 命令按顺序执行,一个接一个。
    • Последовательность сегодня условна.
      今天的顺序是有条件的。
  3. Память компьютера используется для однородного хранения данных и программ.
    计算机存储器用于统一存储数据和程序。
    • Однородность сегодня спорна.
      如今,一致性是有争议的。
  4. Ячейки памяти компьютера имеют адреса. Random-Access Memory.
    计算机存储单元有地址。 随机存取存储器。
    • Адрес не сводится к целому числу сегодня.
      今天地址没有减少为整数。
    • Память не является пассивным элементом сегодня.
      如今,记忆不再是被动的元素。
  5. Возможность условного перехода.
    有条件过渡的可能性。
    • И сегодня им не ограничивается.
      今天它不仅限于他们。

Виды инструкций процессора фон Неймана 冯诺依曼处理器指令的类型

  1. Работа с памятью
    • Запись констант в регистры.
    • Копирование данных между памятью и регистрами.
  2. Арифметические и логические операции
    • Арифметика.
    • Битовые операции.
    • Сравнения.
    • Операции с плавающей точкой.
  3. Управляющие операции
    • Безусловный и условный переходы.
    • Косвенный переход.
    • Вызов и возврат из подпрограмм.
  4. Инструкции для сопроцессоров
    • Загрузка данных и получение результатов.
    • Управление операциями сопроцессора.

  5. 运用记忆
    • 将常量写入寄存器。
    • 在内存和寄存器之间复制数据。
  6. 算术和逻辑运算
    • 算术。
    • 位运算。
    • 比较。
    • 浮点运算。
  7. 控制操作
    • 无条件和条件跳转。
    • 间接转让。
    • 调用子程序并从子程序返回。
  8. 协处理器指令
    • 加载数据并获取结果。
    • 协处理器操作的控制。

Пример программы

Программа – последовательность инструкций в памяти.
程序是内存中的一系列指令。

| Address | Mnemonic       | Comment                                   |
| ------- | -------------- | ----------------------------------------- |
| 0400    | MOV CX, [0500] | CX <- [0500]                              |
| 0404    | MOV AX, 0001   | AX <- 0001                                |
| 0407    | MOV DX, 0000   | DX <- 0000                                |
| 040A    | MUL CX         | DX:AX <- AX * CX                          |
| 040C    | LOOP 040A      | Go To [040A]                              |
|         |                |   till CX->00 (CX <- CX - 1 on each step) |
| 0410    | MOV [0600], AX | [0600]<-AX                                |
| 0414    | MOV [0601], DX | [0601]<-DX                                |
| 0418    | HLT            | Stop Execution                            |

Факториал.


Пример процесса

Процесс – очерёдность смены состояний процессора по мере выполнения команд.
进程是命令执行时处理器状态发生变化的顺序。

Входные данные по адресу 0500 равны 3, выходные данные будут сохранены по адресам [0600, 0601]):
地址0500处的输入数据为3,输出数据将存储在地址[0600, 0601]处):

1. {AX: -, CX: -, DX: -} Выполняется 0400 | MOV CX, [0500]
2. {AX: -, CX: 3, DX: -} Выполняется 0404 | MOV AX, 0001
3. {AX: 1, CX: 3, DX: -} Выполняется 0407 | MOV DX, 0000
    3.1. {AX: 1, CX: 3, DX: 0} Выполняется 040A | MUL CX
    3.2. {AX: 3, CX: 3, DX: 0} Выполняется 040C | LOOP 040A
                               CX не равно 0, переходим 040A.
    3.3. {AX: 3, CX: 2, DX: 0} Выполняется 040A | MUL CX
    3.4. {AX: 6, CX: 2, DX: 0} Выполняется 040C | LOOP 040A,
                               CX не равно 0, переходим 040A
    3.5. {AX: 6, CX: 1, DX: 0} Выполняется 040A | MUL CX
    3.6. {AX: 6, CX: 1, DX: 0} Выполняется 040C | LOOP 040A,
                               после декремента CX равно 0,
                               выполняем следующую инструкцию.
4. {AX: 6, CX: 0, DX: 0} Выполняется 0410 | MOV [0600], AX
5. {AX: 6, CX: 0, DX: 0} Выполняется 0414 | MOV [0601], DX
6. Выполняется 0418 | HTL, Остановить выполнение

Процессор фон Неймана на практике 冯诺依曼处理器的实践


Проблемы проектирования ISA для процессора фон Неймана 冯诺依曼处理器的 ISA 设计问题

  1. Типы данных и их размеры (бит, кодирование, тегирование).
  2. Набор команд и их взаимозаменяемость.
  3. Количество операндов (1, 2 и более).
  4. Расположение операндов и результата. Адресация.

  5. 数据类型及其大小(位、编码、标记)。
  6. 一组命令及其互换性。
  7. 操作数的数量(1、2 或更多)。
  8. 操作数和结果的排列。 寻址。
  1. Кодирование инструкций. Простота декодирования и компактность.
  2. 编码说明。 易于解码且紧凑。

Устройство. Control Unit и DataPath 设备。 控制单元和数据路径

Control Unit 控制单元
is a component of a computer’s central processing unit (CPU) that directs the operation of the processor. A CU typically uses a binary decoder to convert coded instructions into timing and control signals that direct the operation of the other units.
是计算机中央处理单元(CPU)的一个组件,指导处理器的操作。 CU 通常使用二进制解码器将编码指令转换为指导其他单元操作的定时和控制信号。
Datapath 数据路径
is the ALU, the set of registers, and the CPU’s internal bus(es) that allow data to flow between them.
是 ALU、一组寄存器以及允许数据在它们之间流动的 CPU 内部总线。