Площадка рядом с башней. Бак № 1 • Психология и соционика

Площадка рядом с башней. Бак № 1

Re: Площадка рядом с башней. Бак № 1

Сообщение TailWind » Вт окт 23, 2018 2:07 am

Без ОЗУ у тебя конечно ничего не выйдет )

Стэк куда-то нужно девать

Я как-то делал небольшой микроконтроллер на базе FPGA
Но даже там был аппаратный FIFO для хранения указателя на возврат из процедуры
И память программ на 128 байт

На основе EP1C3, там 2,910 логических элементов
И то почти под завязку была заполнена микросхема
Аватара пользователя
TailWind
Старожил
Старожил
 
Сообщения: 5370
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

Re: Площадка рядом с башней. Бак № 1

Сообщение TailWind » Вт окт 23, 2018 2:09 am

sng писал(а):А что до конвейера -- это теоретически не необходимая сущность.

Это только у программистов )
Или у микроконтроллеров на 16 Мгц типа Atmel или PIC :)
Аватара пользователя
TailWind
Старожил
Старожил
 
Сообщения: 5370
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

Re: Площадка рядом с башней. Бак № 1

Сообщение sng » Вт окт 23, 2018 2:29 am

Я там выше набросал примерную организацию и функционирование простейшей CISC-архитектуры, можете почитать у Таненбаума или Патерсона (у второго больше акцент именно на микроархитектуру, чем на что-либо еще, он прежде всего создатель процессоров) больше.

Еще важно понимать, что "цикл" выполнения команды и цикл выполнения микрокоманды это в общем случае CISC понятия несовпадающие.
Цикл выполнения микрокоманды на ЦП, внутри его -- это и есть так называемый цикл процессора, величина которого обратна его частоте. "Цикл" выполнения команды -- это время выполнения верхней команды (в одном случае это может быть 1 микрокоманда, а в другом -- множество).
В случае RISC они всегда совпадают, так как микропрограмма в ЦП попросту отсутствует.

Как видите, в такой микроархитектуре нет никакого конвейера.

Но если говорить теперь о том, как улучшить производительность -- то тут есть множество вариантов:
- конвейеризация
- суперскалярность (иными словами -- параллельные конвейеры, когда каждый цикл завершается несколько микрокоманд)
- предвыборка команд
- кэш-память
- исполнение с изменением последовательности
- спекулятивное исполнение (когда не ясно, нужно ли исполнять, или нет)
- прогнозирование переходов
- скрытые регистры
- дополнительные схемы при регистрах (например, инкрементатор R1, собственно, я его неявно подразумевал в своей архитектуре, так что она не самая простая, обычно же явная микрооперация, увеличивающая R1, вставлена в конец интерпретирующей последовательности для каждой машинной команды)
- дополнительные схемы при АЛУ
- дополнительные шины

И так далее.

Собственно, АРХИТЕКТУРА КОМАНД x86 в большинстве своя (не считая добавляемых мультимедийных команд) тупая и старая, из соображений совместимости со старым кодом.
А вот МИКРОАРХИТЕКТУРА каждой серии процессоров (это разные Sandy Bridge, Nehalem и так далее) постоянно меняется, постоянно совершенствуется, чтобы выжать из процессора все.
Последний раз редактировалось sng Вт окт 23, 2018 2:35 am, всего редактировалось 1 раз.
sng
Местный
Местный
 
Сообщения: 1333
Зарегистрирован: Чт июн 29, 2017 5:27 pm
Откуда: Кривой Рог, Украина
Пол: Мужской
Профессия: Абитуриент

Re: Площадка рядом с башней. Бак № 1

Сообщение TailWind » Вт окт 23, 2018 2:33 am

Я делал блоки микропроцессора и системного контроллера )

Реального
Который военную приёмку проходил )
Аватара пользователя
TailWind
Старожил
Старожил
 
Сообщения: 5370
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

Re: Площадка рядом с башней. Бак № 1

Сообщение sng » Вт окт 23, 2018 2:36 am

Стэк куда-то нужно девать


Стек теоретически можно хранить в процессоре, хотя это ограничит максимальное число вложений процедур.
У Intel до 8080, по-моему, так и было, 3 регистра возвратных адресов внутри ЦП или около того.
А данные промежуточные -- все в основных регистрах.
sng
Местный
Местный
 
Сообщения: 1333
Зарегистрирован: Чт июн 29, 2017 5:27 pm
Откуда: Кривой Рог, Украина
Пол: Мужской
Профессия: Абитуриент

Re: Площадка рядом с башней. Бак № 1

Сообщение sng » Вт окт 23, 2018 2:38 am

А микроконтроллеры я почти не программировал, только AT90S1200 (AVR 8-битный), программу часов для него.
Вообще, это не для меня, я не как инженер мыслю. :)
Мне было интересно понять архитектуру x86 и архитектуру ОС UNIX.
Последний раз редактировалось sng Вт окт 23, 2018 2:40 am, всего редактировалось 2 раз(а).
sng
Местный
Местный
 
Сообщения: 1333
Зарегистрирован: Чт июн 29, 2017 5:27 pm
Откуда: Кривой Рог, Украина
Пол: Мужской
Профессия: Абитуриент

Re: Площадка рядом с башней. Бак № 1

Сообщение TailWind » Вт окт 23, 2018 2:38 am

sng писал(а):Но если говорить теперь о том, как улучшить производительность -- то тут есть множество вариантов:
- конвейеризация

Не улучшает производительность
А ухудшает

Всё измеряется в MIPS (mega instractions per second)
Если ты используешь конвеер, то твоя команда исполняется не 1 такт, а несколько
То есть производительность падает
Аватара пользователя
TailWind
Старожил
Старожил
 
Сообщения: 5370
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

Re: Площадка рядом с башней. Бак № 1

Сообщение TailWind » Вт окт 23, 2018 2:40 am

sng писал(а):А микроконтроллеры я почти не программировал, только AT90S1200 (AVR 8-битный), программу часов для него.

Молодец, зачёт )
Я тоже с них начинал )
Аватара пользователя
TailWind
Старожил
Старожил
 
Сообщения: 5370
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

Re: Площадка рядом с башней. Бак № 1

Сообщение sng » Вт окт 23, 2018 2:48 am

Конвейер ПОВЫШАЕТ производительность. :)
Если команда до конвейеризации требовала 1 такта, значит, этот такт был намного больше по величине.
Представьте себе 3 функциональных блока (условно -- ВЫБОРКА команды, ВЫПОЛНЕНИЕ команды и ЗАПИСЬ результата), A, B и С.
Не важно, на каком уровне мы рассуждаем -- на уровне микрокоманд или на уровне команд, будем называть его командами.
До конвейеризации команда К1 проходила все три блока, только после этого их начинала проходить К2, и так далее.
Тактом я буду называть 1 элементарную операцию на блоке. Выполнение каждой команды занимает 3 такта.
Каждый такт занимает одну строчку, и его время -- обратная частоте процессора величина.
Имеем:
К1 A
K1 B
K1 C
K2 A
K2 B
K2 C
...
После конвейеризации команда K2 может попасть на ступень A сразу же, как команда K1 попадает на ступень B.
K1 A
K1 B K2 A
K1 C K2 B K3 A
K2 C K3 B K4 A
...
Таким образом, ДО конвейеризации мы имели 1 команду на 3 такта, или 1/3 команды за такт, а ПОСЛЕ конвейеризации (С появляется в каждой строчке после самой первой команды) мы имеем 1 команду каждый такт.
Производительность выросла в 3 раза.

-----------------------------------------------------

Если же вы считаете "тактом" время между выполнениями двух команд -- то есть это вопрос терминологии -- то и тут имеем его упавшее в 3 раза.
Если же говорить о нем как о просто времени выполнения команды (т.е. как о разнице во времени между ее запуском и завершением) -- то на него конвейер никоим образом не влияет, 3 ступени как проходили, так и проходят.
:)
sng
Местный
Местный
 
Сообщения: 1333
Зарегистрирован: Чт июн 29, 2017 5:27 pm
Откуда: Кривой Рог, Украина
Пол: Мужской
Профессия: Абитуриент

Re: Площадка рядом с башней. Бак № 1

Сообщение sng » Вт окт 23, 2018 2:49 am

В этом, собственно, и смысл конвейера.
sng
Местный
Местный
 
Сообщения: 1333
Зарегистрирован: Чт июн 29, 2017 5:27 pm
Откуда: Кривой Рог, Украина
Пол: Мужской
Профессия: Абитуриент

Re: Площадка рядом с башней. Бак № 1

Сообщение sng » Вт окт 23, 2018 2:53 am

Перевод в секунду осуществляется через константу, зная величину такта.
sng
Местный
Местный
 
Сообщения: 1333
Зарегистрирован: Чт июн 29, 2017 5:27 pm
Откуда: Кривой Рог, Украина
Пол: Мужской
Профессия: Абитуриент

Re: Площадка рядом с башней. Бак № 1

Сообщение TailWind » Вт окт 23, 2018 3:00 am

sng писал(а):Конвейер ПОВЫШАЕТ производительность. :)
Если команда до конвейеризации требовала 1 такта, значит, этот такт был намного больше по величине.

Ну прямо )

Например 1 такт = 10 ns = 100 МГц

Без конвеера ты выполнял операцию деления за 1 такт, то есть на 10 нс
Но так получилось что на новом производстве у тебя другие библиотечные логические элементы и с ними ты выполняешь операцию деления за 12 нс
То есть ты не укладываешся в 1 такт. И твои триггеры перейдут в бистабильное состояние если ты используешь ту же цепь логических элементов.
Значит тебе придётся разбить свою операцию на две. Это не всегда возможно.
Ну предположим ты разбил цепь на две по 7 нс и 6 нс
Но всё равно такт = 10 нс. Твой клок (clk) тикает с периодом 10 нс
Значит операция будет выполнена не за 1, а за два такта = 20 нс = 50 Мгц

Вот так и обманывают наc маркетологи Intel
Когда говорят что тактовая частота процессора повысилась
А на самом деле производительность повысилась на 10% или осталась той же
Последний раз редактировалось TailWind Вт окт 23, 2018 3:09 am, всего редактировалось 1 раз.
Аватара пользователя
TailWind
Старожил
Старожил
 
Сообщения: 5370
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

Re: Площадка рядом с башней. Бак № 1

Сообщение sng » Вт окт 23, 2018 3:09 am

Сударь, Вы мухлюете, не кажется? :)
Хотя именно ЧЛ-позицию Вашу понимаю в какой-то степени.
Я утром отпишусь, сейчас с заявками на поступление разбираться.
Последний раз редактировалось sng Вт окт 23, 2018 3:14 am, всего редактировалось 1 раз.
sng
Местный
Местный
 
Сообщения: 1333
Зарегистрирован: Чт июн 29, 2017 5:27 pm
Откуда: Кривой Рог, Украина
Пол: Мужской
Профессия: Абитуриент

Re: Площадка рядом с башней. Бак № 1

Сообщение TailWind » Вт окт 23, 2018 3:13 am

sng писал(а):Сударь, Вы мухлюете, не кажется? :)

Чего мне мухлевать

Я делал модуль вычисления квадратного корня для 64 битного процессора (с разбиением на такты (конвеер))
А так же блоки системного контроллера (RS-232, ZBT SRAM, NAND FLASH, USB 1.0.. )
И тестовый энвайремнт для них (test harneess)
И тесты

Чего мне мухлевать-то ?
Последний раз редактировалось TailWind Вт окт 23, 2018 3:16 am, всего редактировалось 1 раз.
Аватара пользователя
TailWind
Старожил
Старожил
 
Сообщения: 5370
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

Re: Площадка рядом с башней. Бак № 1

Сообщение Fouras » Вт окт 23, 2018 3:15 am

как считал корень?
digit-by-digit?
кусочно линейно с итерацией?
кусочно-квадратичной? +(итерация)
Аватара пользователя
Fouras
Бывалый
Бывалый
 
Сообщения: 3676
Зарегистрирован: Пн июн 12, 2017 1:23 am
Медали: 10
Пол: Мужской

Пред.След.

Вернуться в Башня старца Фура

Кто сейчас на конференции

Зарегистрированные пользователи: blackout, Exabot [Bot], Fruzen, Google [Bot], Google Adsense [Bot], Joker, Kuvaldos, marina3, Nayt, Rambler [Bot], Sarah Connor, sute_girl, tort000, Yandex 3.0 [Bot], Yandex [Bot], Наталья Ромодина