Принцип черного ящика

Содержание

Слайд 2

Принцип черного ящика

Чтобы пользоваться черным ящиком, не обязательно знать его внутреннее устройство

Принцип черного ящика Чтобы пользоваться черным ящиком, не обязательно знать его внутреннее устройство

Слайд 3

Инкапсуляция

Чтобы пользоваться классом или библиотекой через интерфейс, необязательно понимать, как они реализованы

Инкапсуляция Чтобы пользоваться классом или библиотекой через интерфейс, необязательно понимать, как они реализованы

Слайд 4

Магия

Как работает заклинание или ритуал? Просто работает! Причины не важны!

Магия Как работает заклинание или ритуал? Просто работает! Причины не важны!

Слайд 5

А что у черного ящика внутри?

Много черных ящиков!

А что у черного ящика внутри? Много черных ящиков!

Слайд 6

«Закон дырявых абстракций»

Все нетривиальные абстракции дырявы
(Дж. Спольски)

Следствие 1: единственный компетентный способ

«Закон дырявых абстракций» Все нетривиальные абстракции дырявы (Дж. Спольски) Следствие 1: единственный
залатать эти дыры - выучить, как работают абстракции, и какие подробности они скрывают.
Следствие 2: абстракции экономят наше рабочее время, но не экономят учебное время.

Слайд 7

Абстракции имеют ограниченную область применимости

Сложение скоростей
в классической механике:

Сложение скоростей
в релятивистской

Абстракции имеют ограниченную область применимости Сложение скоростей в классической механике: Сложение скоростей в релятивистской механике:
механике:

Слайд 8

Как устроена память?

D-триггер

Позволяет хранить 1 бит информации:
D – вход данных;
Е – включение:

Как устроена память? D-триггер Позволяет хранить 1 бит информации: D – вход
триггер запоминает состояние входа D при логической единице на входе Е
Q – прямой выход (совпадает с хранимым состоянием)
Q̅ – инверсный выход (инверсия хранимого состояния)

Слайд 9

Как устроен D-триггер?

Элемент НЕ-И (NAND GATE):
на выходе 0 только когда на обеих

Как устроен D-триггер? Элемент НЕ-И (NAND GATE): на выходе 0 только когда на обеих входах 1
входах 1

Слайд 10

А как устроен элемент НЕ-И?

А как устроен элемент НЕ-И?

Слайд 11

А как устроен транзистор?

А как устроен транзистор?

Слайд 12

Как хранить несколько бит?

Как хранить несколько бит?

Слайд 13

Как хранить много-много бит?

Последовательно: - N бит – 3 провода (но N

Как хранить много-много бит? Последовательно: - N бит – 3 провода (но
тактов)

Обычно все же байтами или группами байт. Такой подход используется
в стримерах, винчестерах, дискетах, CD/DVD/BD и так далее

Слайд 14

Как хранить много-много бит?

В виде матрицы: N бит – 3 + √N

Как хранить много-много бит? В виде матрицы: N бит – 3 + √N проводов
проводов

Слайд 15

Запись

Запись

Слайд 16

Чтение

Чтение

Слайд 17

Как хранить много-много бит?

Использовать АДРЕСА: - N бит – ~log2N проводов

В реальности

Как хранить много-много бит? Использовать АДРЕСА: - N бит – ~log2N проводов
минимальная адресуемая единица (МАЕ) – не бит, а байт или более.

Слайд 18

Как хранить много байт?

8*N бит данных (N байт) – log2N проводов для

Как хранить много байт? 8*N бит данных (N байт) – log2N проводов
шины адреса + N для шины данных

Слайд 19

Память с адресной структурой

Начальный адрес – необязательно 0
«Памятей» может быть несколько, причем

Память с адресной структурой Начальный адрес – необязательно 0 «Памятей» может быть
адреса могут численно совпадать
Может хранить разные по смыслу данные

Слайд 20

А как хранятся многобайтные объекты?

Объекты в смысле «штуковины», а не экземпляр класса

А как хранятся многобайтные объекты? Объекты в смысле «штуковины», а не экземпляр
С++

Как хранится массив char a[5]?

Подряд!

А ближе к началу адресов
элемент a[0] или элемент a[4]?

a[0]

Допустим, int занимает 4 байта.
Как они хранятся?

Подряд!

А в каком порядке?

Возможны варианты

Слайд 21

Endianness (порядок байт)

Little-endian
В меньшем адресе младший байт

Big-endian
В меньшем адресе старший байт

Int x

Endianness (порядок байт) Little-endian В меньшем адресе младший байт Big-endian В меньшем
= 0x11223344;

Еще бывает смешанный, но давайте лучше не будем про него вспоминать

Слайд 22

А как хранится код?

Код на языке высокого уровня компилируется в ассемблерные инструкции

А как хранится код? Код на языке высокого уровня компилируется в ассемблерные
– машинные команды
Эти команды и выполняет процессор
Каждая инструкция – это число
Числа хранятся в памяти!
Код – это данные!

Слайд 23

Архитектуры ЭВМ

ARM официально считает ARMv7 “модифицированной гарвардской архитектурой»

Архитектуры ЭВМ ARM официально считает ARMv7 “модифицированной гарвардской архитектурой»

Слайд 24

Какие бывают инструкции ассемблера?

Арифметика (сложить два числа, вычесть, умножить, разделить и т.д.).
Битовые

Какие бывают инструкции ассемблера? Арифметика (сложить два числа, вычесть, умножить, разделить и
операции (сдвиг, ИЛИ, И, НЕ и т.д.).
Перемещения между ячейками памяти (из переменной в переменную и т.д.).
Условные и безусловные переходы (if-else и goto).
Прочие

Слайд 25

Что такое процессорные регистры?

«Сверхоперативная память»
В них сохраняются результаты промежуточных вычислений
В RISC процессор

Что такое процессорные регистры? «Сверхоперативная память» В них сохраняются результаты промежуточных вычислений
не имеет прямого доступа к оперативной памяти
Есть спец-команды «загрузить значение из памяти в регистр» и
«выгрузить значение из регистра в память»
Имя файла: Принцип-черного-ящика.pptx
Количество просмотров: 50
Количество скачиваний: 0