ПО, ЭВМ и АСУ из Таможенного Союза

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » Проект "Виртуальные машины" » Нужны ли виртуальной машине "шины"?


Нужны ли виртуальной машине "шины"?

Сообщений 1 страница 12 из 12

1

В машинах Фон Неймана и Гарвардской архитектуре шины есть. Вопрос, должна ли простая виртуальная машина моделировать наличие шин, или не должна? Начиная с поддержки какой функциональности обойтись без моделирования шин нельзя?

В виртуальной машине UEFI обошлись, кажется, без шин (но это неточно).

Является ли требование моделирования многосокетности и синхронизации между процессорами достаточным для того, чтобы реализовывать моделирование шин? Ведь такое моделирование будет тормозить работу виртуальной машины, и неясно что давать.

Можно сказать, что логику работы с шиной можно реализовать простыми операторами языка Си.
Чтение состояние входов - это получение какого-то значения (числа),
запись - это формирование значения (другого числа), выбор модуля памяти или другого элемента
описывается на Си условными операторами (if () {} else {}).

То есть, чтение процессором значения из памяти через шину, это просто строка кода типа
значение_на_шине_данных = память[адрес_на_шине_адреса];
нужно ли усложнять, и если да, то в каких случаях?

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

Отредактировано Лис (2022-07-30 14:24:10)

0

2

[html]<a href="https://stackoverflow.com/questions/42099924/is-multi-thread-memory-access-faster-than-single-threaded-memory-access">https://stackoverflow.com/questions/42099924/is-multi-thread-memory-access-faster-than-single-threaded-memory-access</a>[/html]

«Each core and device must share the same data bus to the memory.»
(четырёхканальный доступ - это про эти шины? или 4 канала это внутри одной шины?)

[html]<a href="https://en.wikipedia.org/wiki/Multi-channel_memory_architecture">https://en.wikipedia.org/wiki/Multi-channel_memory_architecture</a>[/html]

«On some systems (such as multi-socket servers or HEDTs with quad-channel DDR4),
it's no longer possible for a single thread to saturate all the memory bandwidth in the entire system.»

«with pthreads. 8GB of data took 0.83 seconds to copy unthreaded with memmove, 0.93 seconds with one pthread, and 0.35 seconds with four pthreads. (Thread creation and joining included.)»

«Raspberry Pi has multi-core CPU - will it copy RAM faster with multi core program?»

при помощи DMA  память в память не копируется (на Linux)
https://stackoverflow.com/questions/235 … 8#23582568
и вообще не копируется (на платформе "powerpc"):
https://stackoverflow.com/questions/429 … ram-to-ram
«DMA Engine may be used for generic memory copy (see DMA_PRIVATE flag),
and on x86 some controllers are capable for doing m2m transfers.»

SMP (Symmetric Multi Processing – Симметричная Многопроцессорная Обработка).
SMP – это архитектура, в которой процессоры соединены с общей системной памятью при помощи шины или подобного соединения)симметрично, и имеют к ней равный однородный доступ.
(когда контроллер памяти (MCH/MGCH), больше известный как «Северный Мост» (“NorthBridge”) находился в чипсете)
Именно поэтому SMP системы почти не масштабируются, два-три десятка процессоров для них – это уже теоретический предел.

MPP (Massive Parallel Processing).
MPP — архитектура, разделяющая систему на многочисленные узлы, процессоры в которых имеют доступ исключительно к локальным ресурсам.

«Another thing to think about is NUMA, if you have a multi socket system.»
https://habr.com/ru/company/intel/blog/165903/
NUMA (Non-Uniform Memory Access). Эта архитектура объединяет положительные черты SMP и MPP.

NUMA (Non-Uniform Memory Access или Non-Uniform Memory Architecture)
доступ к удаленной памяти оказывается гораздо медленнее, чем к локальной. Оттуда и название – «неоднородный доступ к памяти»
Intel NUMA дебютировала  на Intel Xeon с контроллерами памяти, интегрированными в CPU.

QPI — Intel QuickPath
Процессоры соединены соединением «точка-точка» с высокой пропускной способностью и низкой задержкой передачи.
NUMA, используемая в системах Intel, поддерживает когерентность кешей и разделяемой памяти
(то есть, соответствие данных между кешами разных CPU),
поэтому ее иногда называют ccNUMA — cache coherent NUMA.

Согласование содержимого кешей, а также и памяти, когда более чем один кеш хранит одну и ту же ее часть,
обеспечивается наличием специального аппаратного решения (это общение кешей ухудшает общую производительность системы).

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

следует избегать ситуаций, когда несколько процессоров сразу работают с одним блоком памяти

Отредактировано Лис (2022-07-30 15:11:55)

0

3

«Поддержка NUMA» означает следующее – продукт (например ядро Linux) знает о топологии NUMA машины, на которой исполняется, и пытается использовать ее максимально эффективно, то есть, организовать работу потоков так, чтобы они в полной мере использовали память своего узла (того, на котором исполняется данный поток) и минимально – чужих.

От запрета NUMA в Firmware при старте машины система не сообщит ОС и ПО о том, что она NUMA, а значит, распределение памяти и планировка потоков будут «обычными», такими как на симметричных многопроцессорных системах.

операционная система сможет узнать о конфигурации NUMA узлов из System Resource Affinity Table (SRAT) в
Advanced Configuration and Power Interface (ACPI).
Приложения могут получить такую информацию, используя библиотеку libnuma в Linux

Affinity — принудительная привязка потоков к конкретным процессорам,
предотвращающую возможную переброску операционной системой потоков между процессорами
и могущую вызвать потенциальный «отрыв» потоков от своей используемой локальной памяти.
Для установки Affinity имеются соответствующие API в Linux.

функциональность для установки привязки присутствуют во многих параллельных библиотеках
(например, в OpenMP за это отвечает переменная окружения KMP_AFFINITY ).

надо понимать, что во-первых, affinity срабатывает не всегда (для системы это, скорее, намек, чем приказ), а во-вторых, положительный эффект от установки Affinity будет только в том случае, когда вы полностью контролируете систему, то есть, на ней работает исключительно ваше приложение, а сама ОС не сильно нагружает систему.

Отредактировано Лис (2022-07-30 15:00:36)

0

4

http://db4.sbras.ru/elbib/data/show_page.phtml?13+1131

Архитектура неоднородного доступа к памяти с обеспечением когерентности кэшей ccNUMA (Cache Coherent Non-Uniform Memory) реализуется на базе шины.Аппаратные средства следят за процессами на шине, главным образом, относящимися к операциям записи в кэш-память. При попытке какого-то процессора модифицировать содержимое в одном из блоков своей кэш-памяти, эти аппаратные средства либо таким же образом обновляют содержимое аналогичных блоков в кэш-памяти других процессоров, либо помечают эти блоки как недостоверные.

https://wiki.cologne/Non-Uniform_Memory_Access#NUMA_с_когерентностью_кеш-памяти

Хотя системы с некогерентным доступом к NUMA проще проектировать и создавать, становится предельно сложно создавать программы в классической модели архитектуры фон Неймана. В результате, все продаваемые NUMA-компьютеры используют специальные аппаратные решения для достижения когерентности кеша и классифицируются как кеш-когерентные системы с распределенной разделяемой памятью, или ccNUMA.

https://studme.org/94075/informatika/mu … ry_cc-numa

широко распространенный способ построения больших мультипроцессоров CC-NUMA (Cache Coherent NUMA – NUMA с согласованной кэш-памятью) на основе каталога. Каталог представляет собой базу данных, которая содержит информацию о том, где именно находится каждая строка кэш-памяти и каково ее состояние. При каждом обращении к кэш-памяти все необходимые данные о затребованной строке выводятся из базы данных. Для взаимодействия с базой данных используются высокоскоростные аппаратные средства, способные выдавать ответ на запрос за долю цикла шины.

Рассмотрим, как работает мультипроцессор на основе каталога, предполагая, что:
    • процессорный блок обращается к памяти с помощью команды load;
    • затребованная строка может содержаться только в одной кэш-памяти, т.е. других ее копий не существует.

В этом случае выполняется следующая последовательность действий:
    • процессорный блок (исходный узел А1) передает команду load в контроллер;
    • контроллер переводит команду в физический адрес, разделяя его на три части – адресуемый узел А2 (8 бит), адресуемая строка S1 (18 бит) и смещение С (6 бит);
    • поскольку в исходном узле А1 строка отсутствует, то узлу А2 через сеть направляется запрос;
    • запрос поступает в каталог, аппаратные средства которого индексируют таблицу из 218 элементов;
    • если строка S1 отсутствует в кэш-памяти, то аппаратное обеспечение вызывает строку S1 из локального ОЗУ, отправляет в исходный узел А1 и обновляет элемент каталога S1, чтобы показать, что эта строка находится в кэш-памяти узла А1.

Если разрешается иметь только одну копию строки кэш-памяти, то отсутствует необходимость в отслеживании изменений в строках кэш-памяти.
Об изменении строки необходимо сообщить в исходный процессорный блок даже в том случае, когда в кэш-памяти существует только одна копия строки.

При наличии нескольких копий изменение одной из них требует объявления всех остальных копий недействительными.

Отредактировано Лис (2022-07-30 15:18:17)

0

5

https://en.wikipedia.org/wiki/CPU_cache

«Most CPUs have a hierarchy of multiple cache levels (L1, L2, often L3, and rarely even L4),
with different instruction-specific and data-specific caches at level 1.»

0

6

Фон Нейман это PDP-11 (4004, 8008, 8080, 68000, z80 - вообщем все творения гения японца Шимы, которые он содрал с Аппликон CAD project PDP 11)

Гарвардская это Сигнальные Процессоры ADSP 21XX

Смешанная это MOS 6502 (Там есть две внутренних шины и по сути кеш первого уровня на первой странице памяти в 256 байт адресуемых 8 битами непосредственно без задержки такта и синхронизации (так как память в то время 1975 работала быстрее частоты микропроцессора - 1 мегагерц))

Стековый  MIPS

ARM RISC (https://en.wikipedia.org/wiki/Exynos, https://en.wikipedia.org/wiki/ARM_Cortex-A78)

Выбирайте любой, но я советую RISC-V (https://riscv.org/)

Назад к теме проектирования а не регистровой симуляции без шин.
Советую автору темы почитать литературу или поступить в МИэТ и отучится там хотя бы года 3, а лучше 5

http://plana.mybb.ru/viewtopic.php?id=1797#p9621

Отредактировано ignat99 (2023-09-19 08:06:24)

0

7

ignat99 написал(а):

Советую автору темы почитать литературу или поступить в МИэТ и отучится там хотя бы года 3, а лучше 5

Зачем мне это надо? Если у меня никогда не было целей создавать процессор лично. Умеете создавать Вы - возглавляйте проект и финансируйте его.
Если будет ещё один российский процессор - это можно будет только приветствовать, но не более того. Т.е. моя мотивация в этом проекте - порадоваться, когда будет готово. Никакую другую Вы предложить пока не смогли.

0

8

Лис написал(а):

Зачем мне это надо? Если у меня никогда не было целей создавать процессор лично. Умеете создавать Вы - возглавляйте проект и финансируйте его.
Если будет ещё один российский процессор - это можно будет только приветствовать, но не более того. Т.е. моя мотивация в этом проекте - порадоваться, когда будет готово. Никакую другую Вы предложить пока не смогли.

Все правильно в этом и цель была Вас смотивировать ждать.
Через десят лет будет Вам и голографический экран и кристалл в качестве процессора и магнитные сенсоры накладные на череп.
Сидите ждите.

Пока буду програмки выкладывать готовые в контейнерах.
Чтоб когда рынок миллиардный образуется (без разницы через 5 лет или через 10), чтоб на 6 месяцев раньше конкурентов смог выпустить продукциию типа дешёвых аксесуаров и софта к ним и снять сливки.

Ну типа заводик тут один в Малаге или Агадире купить. И начать окошки стеклянные (или композитные) продавать.
Сейчас он безрамочные продает окна.
А будет безстекольные и безрамочные с таким же успехом продавать.

====

По поводу шин.
Данные это перегруженный протокол (или код) - так что шины нужны.

Хотите структурами их назовите, хотите битовыми полями или тензорами.

Но можно пользоваться, как животные коммуникацией звуковой. Выберите себе 3 октавы. То есть одну частоту и две побочные оберации. И передавайте на здоровье вообще без шин.
Тольк не забудьте книгу И-дзынь (Китайскую классическую книгу перемен) с гексограмами изучить, как двухбуквенными мемониками передавать информацию.

Ну или исходники первой элиты посмотрите 1984 года, там сжатые токены.

ABug 09: Explaining Elite (Mark Moxon) Annotated source code for Acornsoft Elite [BBC Micro version]

То есть можете шифратор-дешифратор поставить, или даже многоканальный.

ОБОБЩЕННЫЕ СВЕРТОЧНЫЕ КАСКАДНЫЕ КОДЫ
С ЕДИНИЧНОЙ ПАМЯТЬЮ
Зяблое В. В., Шавгулидзе С. А.

ppi954.pdf

https://ru.wikipedia.org/wiki/Алгоритм_свёрточного_декодирования_Витерби

Вот примерное описание взятое из Помех_кодир(книгу могу на почту скинуть).

Например, входной последовательности 11001 соответствует путь, показанный на рис. 1.13 жирной линией и задающий выходную последовательность 11 10101111,

Недостатком данного представления сверточных кодов является экспоненциальный рост числа ветвей с ростом длины входной последовательности. Поэтому часто кодовое дерево изображают в виде кодовой решетки, при построении которой учитывается конечное число возможных состояний кодера, что дает возможность отождествлять вершины дерева, характеризуемые одинаковыми состояниями. Изображение кодовой решетки для вышеприведенного примера путь, соответствующий входной последовательности 11001, показаны на рис. 1.14

https://electronix.ru/forum/index.php?/topic/75046-декодер-витерби/
https://www.dissercat.com/content/optim … mezhsimvol

А можно просто многомодовое или квантовое оптическое волокно или шину поставить. Зависит от задачи.

Отредактировано ignat99 (2023-09-19 10:38:06)

0

9

На 1 час 16 минут примерно в этом видео объясняется и показывается что такое битовый процессор на общей шине

ABug 10: Reverse Engineering the Intel 8271 (Chris Evans) Floppy Disc/Disk Controller FDC BBC Micro

Для тех кто не хочет смотреть видео. Кратко там фото микроконтроллера изнутри. Два процессора один нижний для общих команд медленный, второй верхний для битовых процессов.

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

Прием и отправку буффера и отложенные вызовы это уже нижний чип делает.

Вот это и есть работа типичной шины. Как видим организованная набором сшитого кода. Естественно с коррекцией ошибок.

Как видим основная функция шины - коррекция ошибок. Для этого даже приходися 2 уровня управления добавлять.

Отредактировано ignat99 (2023-09-20 00:40:10)

0

10

Лис написал(а):

Зачем мне это надо? Если у меня никогда не было целей создавать процессор лично. Умеете создавать Вы - возглавляйте проект и финансируйте его.
Если будет ещё один российский процессор - это можно будет только приветствовать, но не более того. Т.е. моя мотивация в этом проекте - порадоваться, когда будет готово. Никакую другую Вы предложить пока не смогли.

Как бы помягче сказать. Ну скажем так, вы не любите включать свой блестящий и гениальный мозг. В этом ваша проблема. Говорю вам как бывший преподаватель нескольких университетов в основном зарубежных. Но лучшие студенты конечно же были в Зеленограде в Москве. К счастью или к сожалению они все до одного сейчас крупнейшие ключевые специалисты в самых крупных компаниях из первой пятёрки в IT (Гугл, Микрософт, AWS, ВМВаре, Континенталь - все это их личная заслуга, а я просто выполнял свою роль преподавателя)

0

11

ignat99 написал(а):

все до одного сейчас крупнейшие ключевые специалисты в самых крупных компаниях из первой пятёрки в IT (Гугл, Микрософт, AWS, ВМВаре, Континенталь

То есть, воспитывать в человеке патриота Вы гарантированно не умеете. Точно ли Вы ознакомились с направленностью этого форума? Возможно Вам лучше подойдёт форум БудДена, который ориентируется на иностранные разработки и их переводы?

0

12

Лис написал(а):

То есть, воспитывать в человеке патриота Вы гарантированно не умеете. Точно ли Вы ознакомились с направленностью этого форума? Возможно Вам лучше подойдёт форум БудДена, который ориентируется на иностранные разработки и их переводы?

Перечитайте еще раз мое сообщение к Вам. Кстати, сколькими языками вы владеете свободно? Ну то есть разговариваете и понимаете не напрягаясь и без словаря.

И еще один вопрос к вам. С кем вы тут общаетесь на форуме? Тут тысячи сообщений без участников. Вы с пустотой разговариваете?

По теме шин и исправления данных при ошибках ничего сказать не хотите?

Я с вами вежливо сейчас говорю, потому что видел некоторые ваши сообщения, уже рад что названия вы выучили. Хотя практики, как видим, у вас нет. Кстати, человек который постоянно не использует свою голову называется дебил. Перечитайте еще раз мое сообщение к вам выше. Симптомы, примерно, как у вас. Названия знаем, а что это такое - не знаем. Тут помним - тут не помним.

Ещё один раз из вас жлобство вылезет и вы продолжите тут с пустотой общатся. То есть все ваши сообщения будут игнорироваться мной.

Это вам домашнее чтение с картинками. Перед прочтением надо обязательно мозг включить.

Отредактировано ignat99 (2023-09-20 05:17:57)

0


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » Проект "Виртуальные машины" » Нужны ли виртуальной машине "шины"?