Files
exam/Дополнительно/Глава 1. Базовая организация компьютера.md

113 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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/]
>
> *Источник не проверенный*