diff --git a/Attachments/Control Unit and DataPath.png b/Attachments/Control Unit and DataPath.png new file mode 100644 index 0000000..6a7bf30 Binary files /dev/null and b/Attachments/Control Unit and DataPath.png differ diff --git a/Attachments/Машина фон Неймана.png b/Attachments/Машина фон Неймана.png new file mode 100644 index 0000000..77de86a Binary files /dev/null and b/Attachments/Машина фон Неймана.png differ diff --git a/Attachments/Процессоры и системы команд.png b/Attachments/Процессоры и системы команд.png new file mode 100644 index 0000000..53c975f Binary files /dev/null and b/Attachments/Процессоры и системы команд.png differ diff --git a/Computer Science/Computer Science.md b/Computer Science/Computer Science.md index 438787c..a6f4e54 100644 --- a/Computer Science/Computer Science.md +++ b/Computer Science/Computer Science.md @@ -8,13 +8,15 @@ - Устранить элементы "магического мышления" и "карго культа". ## Системная инженерия - [Понятие системы](Системная%20инженерия/Понятие%20системы.md) -- [Компьютерные системы](Вычислительные%20системы/Компьютерные%20системы.md) +- [Компьютерные системы](Системная%20инженерия/Компьютерные%20системы.md) - [Особенности производства аппаратуры](Системная%20инженерия/Особенности%20производства%20аппаратуры.md) - [Hardware and Software](Системная%20инженерия/Hardware%20and%20Software.md) ## Схемотехника - [Цифровая схемотехника](Цифровая%20схемотехника/Цифровая%20схемотехника.md) ## Теория вычислений - [Модель вычислений](Вычислительные%20системы/Модель%20вычислений.md) +- [Процессоры и системы команд](Вычислительные%20системы/Процессоры%20и%20системы%20команд.md) +- [Машина фон Неймана](Вычислительные%20системы/Машина%20фон%20Неймана.md) ## Вычислительные архитектуры - [Вычислительные архитектуры](Архитектуры/Вычислительные%20архитектуры.md) ## Инструменты low-level diff --git a/Computer Science/Вычислительные системы/Докомпьютерные вычисления.md b/Computer Science/Вычислительные системы/Докомпьютерные вычисления.md index 7e6a6b2..d4620ed 100644 --- a/Computer Science/Вычислительные системы/Докомпьютерные вычисления.md +++ b/Computer Science/Вычислительные системы/Докомпьютерные вычисления.md @@ -77,7 +77,7 @@ Цвета - 3 партии входных данных. Цифры - на каком такте будут на данном этапе вычисления ### Практика -На практике все перечисленные механизмы встречаются в современных [компьютерных системах](Компьютерные%20системы.md), в том числе: +На практике все перечисленные механизмы встречаются в современных [компьютерных системах](../Системная%20инженерия/Компьютерные%20системы.md), в том числе: - В процессорах общего назначения - В специализированных процессорах - В распределенных системах diff --git a/Computer Science/Вычислительные системы/Машина фон Неймана.md b/Computer Science/Вычислительные системы/Машина фон Неймана.md new file mode 100644 index 0000000..30b83ec --- /dev/null +++ b/Computer Science/Вычислительные системы/Машина фон Неймана.md @@ -0,0 +1,61 @@ +1. Развитие [Машины Тьюринга](Модель%20вычислений.md#Машина%20Тьюринга). Отличия: + - Лента заменена на Random-Access Memory (RAM) + - Инструкции и данные объединены +2. Призвана быть максимально простой в реализации и производстве +3. Процедурное программирование и ООП - тот же принцип + +![](../../Attachments/Машина%20фон%20Неймана.png) +## Особенности +1. Использование двоичного кодирования + - Встречается и троичное, и двоично-десятичное кодирование +2. Программное управление. Команды выполняются последовательно + - Последовательность и порядок сегодня условны +3. Память компьютера однородно хранит данные и программы + - Однородность спорна +4. Ячейки памяти компьютера имеют адреса. Random-Access Memory + - Адрес не сводится к целому числу сегодня + - Память не является пассивным элементом компьютера +5. Возможность условного перехода + - И перехода по иным причинам +## Окружение +### (Микро)процессор +Цифровая схема, которая выполняет операции с внешним источником данных (обычно с памятью или потоком данных) +### (Микро)контроллер +Микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает функции процессора и периферийных устройств, содержит ОЗУ и/или ПЗУ +### Оперативная память (память) +Обычно часть компьютерной памяти, в которой хранится выполняемый машинный код, а также входные, выходные и промежуточные данные +## Control Unit и DataPath +### Control Unit +Компонент центрального процессора (CPU), управляющей работой процессора. CU часто использует двоичный декодер для преобразования закодированных инструкций в управляющие сигналы, координирующие работу остальных блоков +### DataPath +АЛУ, набор регистров и внутренние шины CPU, по которым данные перемещаются между ними + +![](../../Attachments/Control%20Unit%20and%20DataPath.png) +## Виды инструкций +1. Работа с памятью: запись констант, копирование данных (память, регистры, порты I/O) +2. Арифметческие, логические и битовые операции +3. Управляющие операции: переходы, вызов и возврат из подпрограмм +4. Инструкции сопроцессоров: загрузка и выгрузка данных, управление сопроцессором +## Роль машинного слова +Единица данных, которая выбрана естественной для данной архитектуры процессора +1. Может быть адресована в памяти +2. Передается по шине между памятью и процессором за один раз +3. Является стандартной единицей обрабатываемой информации +4. Связанные вопросы: формат инструкции, форматы данных, форматы адресов +## На практике +1. В чистом виде практически не встречаются +2. Влияние на индустрию - трудно переоценить +3. Элементы архитектуры присутствуют в подавляющем большинстве процессоров и средств разработки +4. Структурное программирование, ООП - наследие фон Неймана +5. Ловушка обратной совместимости +## Вариации +1. Память команд и данных: Принстонская и Гарвардская архитектуры + - Типы данных, адресные пространства, машинные слова, теги +2. Принцип работы с данными в DataPath + - Accumulator, Register-to-Register, Register-to-Memory, Memory-to-Memory, Stack Architectures +3. "Мощность" системы команд: CISC, RISC + - Количество операндов (0, 1, 2, ...) + - Кодирование инструкций + - Принципы построения Control Unit +4. Адресация операндов +Кроме того: ввод-вывод, параллелизм, иерархия памяти и тп \ No newline at end of file diff --git a/Computer Science/Вычислительные системы/ПЛК.md b/Computer Science/Вычислительные системы/ПЛК.md index 519e0d7..3770056 100644 --- a/Computer Science/Вычислительные системы/ПЛК.md +++ b/Computer Science/Вычислительные системы/ПЛК.md @@ -7,7 +7,7 @@ ### ПЛК - Специальная разновидность электронной вычислительной машины - Особенности - 1. [Управляющие системы](Управляющие%20системы.md) + 1. [Управляющие системы](../Системная%20инженерия/Управляющие%20системы.md) 2. Законченные устройства для встроенного использования 3. Специализация ввода-вывода, модульность 4. Выделение инструментальной составляющей diff --git a/Computer Science/Вычислительные системы/Процессоры и системы команд.md b/Computer Science/Вычислительные системы/Процессоры и системы команд.md new file mode 100644 index 0000000..b925d6e --- /dev/null +++ b/Computer Science/Вычислительные системы/Процессоры и системы команд.md @@ -0,0 +1,64 @@ +## Инорфмационный процессор +- Система (электрическая, механическая или биологическая), которая принимает информацию (последовательность символов или состояний) в одной форме и обрабатывает (преобразует) ее в другую форму +- Например: исходный сигнал в статистику, посредством алгоритмического процесса +- Включает: + 1. Ввод + 2. Процессор + 3. Хранилище + 4. Вывод +## Универсальный процессор +Позволяет решать широкий круг задач, настройка которых производится после производства "по месту" или в run-time +### Примечания +1. Универсальность != полнота по Тьюрингу +2. Теоретическая универсальность != практическая универсальность +3. Универсальность противоречит эффективности +4. Современный процессор - совокупность программного и аппаратного обеспечения +### Свойства +1. [Hardware and Software](../Системная%20инженерия/Hardware%20and%20Software.md) (двухэтапное производство) +2. Полнота по Тьюрингу +3. Отсутствие "серьезных" ограничений на "объем" программы +4. Изменяемость ПО +## Виды процессоров +1. Application-Specific Integrated Circuit +2. Coarse-Grained Reconfigurable Arrays +3. Field-Programmable Gate Array +4. Digital Signal Processor +5. Graphics Processing Unit +6. Central Processing Unit + +![](../../Attachments/Процессоры%20и%20системы%20команд.png) +## Архитектура процессора +То, как видит компьютер программист. Определена набором команд (язык), местом нахождения операндов (регистры и память) и вычислительными механизмами (кеш, прерывания и тд) +1. Множество разных [архитектур](../Архитектуры/Вычислительные%20архитектуры.md) +2. Чтобы понять архитектуру, нужно знать ее язык +3. Слова в языке компьютера - "инструкции" или "команды" +4. Словарный запас - "система команд" +## Микроархитектура процессора +Соединение простейших цифровых элементов в логические блоки, предназначенные для выполнения команд определенной архитектуры +### Примечания +1. Описывает, как в процессоре расположены и соединены друг с другом регистры, АЛУ, конечные автоматы, блоки памяти, интерфейсы ввода-вывода и тп +2. У каждой архитектуры может быть много микроархитектур, обеспечивающих разное соотношение производительности, цены, сложности, технической эстетики. Они смогут выполнять одни и те же программы +3. Если ISA и микроархитектура отличаются на уровне MoC - обычно требуется уровень виртуализации (ПО, аппаратура, транслятор и тд) +## Система команд (ISA) +- Instruction Set Architecture +- Абстрактная модель процессора, формирующая интерфейс взаимодействия между программным обеспечением и процессором +- Производительность, энергопотребление и задержки часто не рассматриваются +### Что входит +1. Типы данных +2. Модель памяти, система и методы адресации +3. Набор инструкций +4. Механизмы обработки прерываний и исключений +5. Методы ввода и вывода +### Машинное слово +Фрагмент данных фиксированного размера, обрабатываемый как единое целое процессором +### Разнообразие систем команд +1. Действие над памятью/регистрами + - Произвольной сложности и длины (CISC) + - Фиксированного формата (RISC) +2. Действие без указания обрабатываемых данных (стековый) +3. Управляющие сигналы процессора под видом команды (NISC) +4. Группа команд под видом одной команды (VLIW) +5. Действие над шиной данных (TTA) +6. Команды без последовательного исполнения (редукционные) +7. Система команд из одной команды (URISC) +8. Управляющие сигналы процессоров под видом команды (NITTA) \ No newline at end of file diff --git a/Computer Science/Вычислительные системы/Информационные системы.md b/Computer Science/Системная инженерия/Информационные системы.md similarity index 100% rename from Computer Science/Вычислительные системы/Информационные системы.md rename to Computer Science/Системная инженерия/Информационные системы.md diff --git a/Computer Science/Вычислительные системы/Компьютерные системы.md b/Computer Science/Системная инженерия/Компьютерные системы.md similarity index 100% rename from Computer Science/Вычислительные системы/Компьютерные системы.md rename to Computer Science/Системная инженерия/Компьютерные системы.md diff --git a/Computer Science/Системная инженерия/Понятие системы.md b/Computer Science/Системная инженерия/Понятие системы.md index 1884f42..c1b536f 100644 --- a/Computer Science/Системная инженерия/Понятие системы.md +++ b/Computer Science/Системная инженерия/Понятие системы.md @@ -57,4 +57,4 @@ Множественность точек зрения на систему. Систему может разрушить проблема коммуникации при разработке Формальный способ зафиксировать эти точки зрения и передать их другим - [архитектура](Понятие%20архитектуры.md) ## Применение в Computer Science -- [Компьютерные системы](../Вычислительные%20системы/Компьютерные%20системы.md) \ No newline at end of file +- [Компьютерные системы](Компьютерные%20системы.md) \ No newline at end of file diff --git a/Computer Science/Вычислительные системы/Управляющие системы.md b/Computer Science/Системная инженерия/Управляющие системы.md similarity index 100% rename from Computer Science/Вычислительные системы/Управляющие системы.md rename to Computer Science/Системная инженерия/Управляющие системы.md diff --git a/Программирование на Java/Синтаксис и типы/Базовый синтаксис/Типы данных.md b/Программирование на Java/Синтаксис и типы/Базовый синтаксис/Типы данных.md index 73cea8f..413a0bc 100644 --- a/Программирование на Java/Синтаксис и типы/Базовый синтаксис/Типы данных.md +++ b/Программирование на Java/Синтаксис и типы/Базовый синтаксис/Типы данных.md @@ -1,7 +1,5 @@ В Java: статическая типизация, сильная, явная -Типы делятся на: [примитивные](Типы%20данных.md#Примитивные%20типы%20данных) и [ссылочные](Типы%20данных.md#Ссылочные%20типы%20данных) -Типы делятся на: [](.md#Примитивные%20типы%20данных|примитивные) и [](.md#Ссылочные%20типы%20данных|ссылочные) - +Типы делятся на: примитивные и ссылочные # Примитивные типы данных 1. Целые - `byte`, `short`, `int`, `long` 2. Символьный - `char`