sync/feat[1](summary): Составил половину конспекта первой главы
This commit is contained in:
112
Дополнительно/Глава 1. Базовая организация компьютера.md
Normal file
112
Дополнительно/Глава 1. Базовая организация компьютера.md
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
---
|
||||||
|
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/]
|
||||||
|
>
|
||||||
|
> *Источник не проверенный*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BIN
Приложения/Pasted image 20241102215903.png
Normal file
BIN
Приложения/Pasted image 20241102215903.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 103 KiB |
BIN
Приложения/Pasted image 20241103005048.png
Normal file
BIN
Приложения/Pasted image 20241103005048.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
BIN
Приложения/Pasted image 20241103145010.png
Normal file
BIN
Приложения/Pasted image 20241103145010.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
Reference in New Issue
Block a user