---
tags:
  - "#конспект"
  - служебное/в_процессе
source:
  - https://moodle-iknt-moodledata.storage.yandexcloud.net/58/6e/586ef09274d71463d14d73e125044a778810f3fd?response-content-disposition=inline%3B%20filename%3DАрхитектура%20компьютера%20ч1-Молодяков_2024.pdf&response-content-type=application%2Fpdf&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=t8GGQUqM8K3HzP3tB2nQ%2F20241102%2Fru-central1%2Fs3%2Faws4_request&X-Amz-Date=20241102T183838Z&X-Amz-SignedHeaders=host&X-Amz-Expires=21562&X-Amz-Signature=1c685e6562a02af88d2a43c1da913abeeaccc0bd1d7ad7c57fe132ca4d666ff8
---
*Глава пипецки длинная, а так как конспект я составляю для себя, конспектить полностью я его не намерен, уж увольте*
## 1.1. Многоуровневая организация и эволюция компьютеров

### Затрагиваемые уровни

*Препод пишет, что будем сидеть только на первых пяти, а считаются они снизу вверх очевидно. Страдаем, господамы*

![[Pasted image 20241102215903.png]]

Однако в рамках курса говорим только о первых пяти. При этом препод отмечает, что в целях оптимизации нужно иметь представление на 1 уровень ниже, чем используемый

### Эволюция

*Приводить длинные описания не буду, ограничуюсь перечислением и кое-где резюме*

- Механическая эра
	- Счеты
	- Вычисления на зубчатых кольцах
	- Вычислители для сложения и вычитания
	- Вычислители для всех арифметических операций
- Электронные лампы
- Транзисторы
- Интегральные схемы
- Свербольшие интегральные схемы (появление intel, IBM PC и apple)
- Мультипроцессорные системы (5-е и 6-е поколение. Мы тут)
### Веселые законы

- **Закон Мура** - количество транзисторов на кристалле удваивается каждые 18 месяцев. (по разным посчетам перестанет выполняться в 2025 году. Уже скоро)
- **Закон рока** - стоимость основных фондов, используемых в производстве полупроводников, удваивается каждые четыре года (*для инвесторов походу)*)
- **Закон Макрона** - машина, которая бы вас полностью устроила, никак не может стоить меньше $5000
- **Первый натановский закон** - Программное обеспечение – это газ. Оно распространяется и полностью заполняет резервуар, в котором находится
- **Ограничение Ландауэра** - Затраты на обработку одного бита не могут быть меньше величины $kT\cdot \ln2$

## 1.2. Архитектурные принципы фон Неймана

![[Pasted image 20241103005048.png]]

После создания первого электронного компьютера ЭНИАК, вышла статья "Предварительное обсуждение логического конструирования электронного вычислительного устройства" за авторством Джона фон Неймана, Г. Голдстайна и А. Берксома. Высказанные там мысли легли в основу архитектурных принципов фон Неймана (тем не менее в реальности мы отошли от них): <!--Хотелось бы мне мнемонику тут придумать-->

1. Компьютер включает связанные между собой Процессор (арифметическое устройство и устройство управления), Память и Устройства ввода-вывода (рис. 1.2).
2. Компьютер обязан работать в двоичке
3. Все в компе должно быть числом (будь то команды, числа, строки и т.д.)
4. Программа лежит на каком-то запоминающем устройстве
5. Программа выполянется в основной памяти, а лежит на энергонезависимой вторичной памяти (*бинари лежать должны на диске, а при исполнении подкачиваться в оперативу*)
6. АЛУ обязано уметь в операции: 
	1. Сложения
	2. Сдвига
	3. Логические
7. В компьютере используется параллельный принцип организации вычислительного процесса (операции над двоичными кодами осуществляются одновременно над всеми разрядами)
8. Централизованное последовательное управление при выполнении команд. **Нет конвейера, параллельности, внеочередного выполнения и прочего, что свойственно современным процессорам.**
9. Линейная структура адресации памяти
10. Низкий уровень машинного языка, нет микропрограммируемости

*Из отличий с современным железом вижу только пункты 8 и 10. Мы очень любим конвейер, прерывания, параллельность и хотим обмазываться микропрограммированием (ну вернее хотят производители процессора). Также в 6 пункте можно сказать, что наше АЛУ умеет немножко больше чем это*

Вообще если вы стремитесь к дотошности, то рекомендую еще ознакомиться с [гарвардской архитектурой ЭВМ](https://ru.wikipedia.org/wiki/Гарвардская_архитектура). В современных компьютерах используется помесь этих двух архитектур в угоду достижения наибольшей производительности. Также различия затрагиваются в главе 4, в разделе 8 при разговоре про многоуровневую кэш-память

#### Выполнение команд по программе, хранимой в ЭВМ

*Программа, очевидно, хранится в памяти компа. Обычно оперативе*

Компьютер читает ячейки подряд. Он читает очередную команду, дешифрует ее, обращается к памяти за операндами если это необходимо, совершает выборку операнда<!--что бы это ни значило-->, запись результата в память (если необходимо), переход к следующей команде

Адрес следующей команды хранится в специальном регистра. У нас это *ip/eip/rip*

Есть и альтернативные пути построения компьютера

- Нейронные сети
- [Потоковая машина](https://habr.com/ru/articles/122479/) (действиями управляют сами данные)

## 1.3. Магистральная вычислительная структура

> [!note]- Шина
>Шина - это совокупность линий (проводников на материнской плате), по которым обмениваются информацией компоненты и устройства ПК. *По простяге - несколько линий/дорожек на печатной плате, по которым ходит информация (или проще об этом думать, как о дорожках, которые приходят в компонент)*

> [!info]+ Глоссарий
> **Магистраль/Канал** - Магистраль/канал – унифицированная подсистема связи структурных частей компьютера, т. е. все устройства подключаются к магистрали одинаково, используют один и тот же набор сигналов, один и тот же алгоритм обмена
> 
> **Линия связи** - провод, по которому передается логический сигнал
> 
> **Шина** - группа линий однотипных сигналов
> 
> **Шина адреса** - шина для передачи адреса параллельным кодом (знакомы из схемотехники). Ширина всегда определяет размер адреса в устройства
> 
> **Шина данных** - передает команды и данные между ОЗУ, процессором и периферийными устройствами. Размеры варьируются от 1 байта и до скольки удобно (обычно до 8 байт). *Обычно именно она становится узким горлышком в архитектуре (controlflow-архитектурах, к которой относится процессора вашего компьютера или ноута)*
> 
> **Шина управления** - Передает управляющие сигналы на периферии. На все устройства налагает требования. Они должны
> 1. Распознать свой "адрес" на шине (*обычно его формирует процессор*)
> 2. Понимать по сигналам на шине, что от них хочет процессор
> 3. Выполнить запрос от процессора и передать через **шину данных** информацию
>
> В целом эти 3 этапа (или даже на мой взгляд последние 2) формируют "**канальный цикл**", которыми управляют процессор или другое устройство вроде микроконтроллера

![[Pasted image 20241103145010.png]]
*Типовая структура канального цикла обмена данными*

> [!note]- Строб
> **Строб** - управляющий сигнал, который своим уровнем определяет момент выполнения элементом или узлом его функции.; в более общем смысле строб — это любой синхронизирующий сигнал, тактовый сигнал ^[https://spravochnick.ru/definitions/strob-strobiruyuschiy-signal/]
> 
> *Источник не проверенный*





