Книги Китова А.И. публиковалось на десятках языках и пользовались широкой популярностью за рубежом. Некоторые из них были обязательны к изучению на профильных специальностях в престижных ВУЗах США и Западной Европы
Хорошая статья. Но вопросы не к XML - парсеру, а к файловой системе unix, а особенно к ее виртуальной части. Когда-то это было единственно хорошее решение для 60-х годов, когда не была хороших механизмов передачи информации между процессами, но держать за эту идею в течение 60 лет, как будто ничего не меняется - это уже маразм.
«Империализм, как высшая стадия капитализма. Популярный очерк» — экономическая работа В. И. Ленина, явившаяся продолжением и развитием «Капитала» КарлаМаркса в условиях новой исторической эпохи.
Так вот, если бы автор прочитал работу В.И. Ленина, то он бы понял, что нет развития капитализма после стадии имперализма, только разрушение самого капитализма. А то что он написал - это иллюзия, которую мировой капитализм пытается воссоздать - создать новую форму существования капитализма, его исторического продолжения.
неэффективный труд - это недополученная прибыль капиталиста
Базис капитализма - это перераспределение ручного (!!!) труда: один создает, а другой присваивает результат этого труда. Любой капитал - это накопленный неоплаченный труд наёмных рабочих.
Вот работу машины или робота нельзя присвоить. Допустим работает роботизированный погрузчик на складе и потребляет 10кВт в час, ему нельзя сказать, теперь ты будешь туже самую работу делать и потреблять за 5 кВт, ну только если заменить на нового - более совершенного (но это уже другая история). А человеку можно - сегодня у тебя одна зарплата, а завтра в два раза меньше. Но в современных реалях человеку не обязательно понижать зарплату (это прошлый век) - просто включают "инфляцию"
Например, Ampere Altra – 80-ядерный ARM-процессор для серверов – работает на частоте до 3.3 ГГц на все ядра
80-ядерный Ampere Altra - базовая частота 1 ГГц и максимальная - 3 ГГц, и надо полагать, что низкая частота это для работы с SIMD-данными (опс). А простые инструкции они и на Intel также быстро декодируются и выполняются, как и на любом RISC-процессоре.
К тому же RISC-процессоры имеют больше регистров, в которые можно заранее загрузить нужные операнды и повторно их использовать без обращения к ОЗУ.
1. данные в регистрах процессора не беруться из воздуха, они либо загружаться как константы (передаются вместе с инструкицей) либо из памяти.
2. Intel уже объявила что в следующих поколениях процессоров будет 32 регистра общего назначения.
3. Про то что вы пишите, да большое количество регистров процессоров позволяет избавиться от локальных переменных в стеке, но не надо забывать, что современные компиляторы языков высокого уровня помимо ваших объявленных локальных переменных, могут добавить еще свои локальные для своих собственных нужд и как правило они стековые.
про кеш-память - еще раз это не решение, а "костыль"; этот костыль не работает, если данные или кусок кода не читались процессором, то есть если этих событий не происходили, то его вклада в быстродействия никакой - ноль!
В общем это тоже всё отголоски старых мифов и холиваров из CISC vs. RISC
Эти старые мифы из 80-х, и они никого отношения не имют к сегоднешнему дню. Но именно последователи RISC-архитектуры достают эти старые доводы, как "из бабушкиного сундука старые фотографии" и вот пытаются притянуть к тому чего уже нет
Просто пример,
х86-64: add rax, rbx
risc-v: add x1, x1, x2
можно объяснить почему x86_64 при кодировании этой функции появляются какие-то сложности, которые влияют на быстродействие, а вот в risc-v - нет?
Чтобы инструкции оказались в кеш-памяти их необходимо хотя бы один раз прочитать из оперативной памяти, иначе они там они не появяться.
Но и тут есть жирное НО. На линейном участке кода кеш-память никаких "плюшек" не даст, единственное где кеш-память может облегчить - это выполнение циклов, то здесь да, есть вероятность срабатывания кеш-памяти
все хвалебные статьи про RISC-V безосновательно утверждают, что они лучше CISC, хотя обоснование какое-то однобокое
В других статьях про RISC-V я уже комментировал проблему, что достоинства простоты формата инструкции (который является чуть ли не главным достоинством среди преимуществ RISC перед CISC) в реале требует большой пропускной способности оперативной памяти.
Повторяюсь с примером, прежде чем выполнить какую-то инструкцию "регистр-регистр" на операндами, эти данные необходимо загрузить из памяти. Берем к примеру инструкцию сложения "регистр-память" для x86_64
ADD [RBX + RAX *8], 0xFFFFFF
ее аналог на RISC-V
# Предположим, что x1 = RBX, x2 = RAX
# Шаг 1: Вычисляем адрес
SLLI x5, x2, 3 # Умножаем RAX (x2) на 8 (сдвиг влево на 3 бита), результат в x5
ADD x5, x5, x1 # Добавляем RBX (x1) к результату, получаем полный адрес в x5
# Шаг 2: Загружаем значение из вычисленного адреса
LW x3, 0(x5) # Загружаем значение по адресу (RBX + RAX 8) в x3
# Шаг 3: Добавляем константу
ADDI x3, x3, 0x0FFFFFFF # Добавляем 0x0FFFFFFF к загруженному значению в x3
# Шаг 4: Сохраняем результат обратно по тому же адресу
SW x3, 0(x5) # Сохраняем обновленное значение обратно по адресу (RBX + RAX 8)
5 инстуркции RISC-V против 1 инструкции CISC
Для CISC - процессора инструкция сложения это 7 байт памяти, то есть 1-2 обращения к оперативной памяти (взависимости от выравнивания по границе адреса ячейки памяти)
Тоже самое для RISC- процессора: 5 инструкции - это 6 х 4 = 24 байт, то есть 3-4 обращения к памяти (в зависимости от выравнивания по 4-байтной границе)
Так вот для многоядерных RISC-системах, чтобы они на равне тягались с CISC-системами требуется оперативная память с более высокой пропускной способностью. Для многоядерных ARM- процессоров - это проблему они уже "хапанули", и по факту разработчики ARM уже достигли предела частоты ядра. К примеру частота многих серверных 64-ядерных ARM-процессоров уже в течении более 10 лет не превышает 2,4 ГГц, а вот новизна процессоров заключается в том что они могут работать с более быстрыми частотами оператиной памяти DDR...
У вот у меня вопрос к разработчикам как они будут решать проблему, которая дает простота формата инструкции?
данные во внутренних регистрах процессора сами по себе не окажуться, поэтому любые данные вначале загружаются в оперативную память, а потом загружаются во внутренние регистры; инструкция ADD - это пример, вместо нее может быть любая другая подобная инструкция
Ну можно сказать, что последние корпоративные новости Intel - это прям история "удачника"
Книги Китова А.И. публиковалось на десятках языках и пользовались широкой популярностью за рубежом. Некоторые из них были обязательны к изучению на профильных специальностях в престижных ВУЗах США и Западной Европы
Хорошая статья. Но вопросы не к XML - парсеру, а к файловой системе unix, а особенно к ее виртуальной части. Когда-то это было единственно хорошее решение для 60-х годов, когда не была хороших механизмов передачи информации между процессами, но держать за эту идею в течение 60 лет, как будто ничего не меняется - это уже маразм.
о чем это объявление? что есть 3572 человека которые еще не получают 150К?
«Империализм, как высшая стадия капитализма. Популярный очерк» — экономическая работа В. И. Ленина, явившаяся продолжением и развитием «Капитала» Карла Маркса в условиях новой исторической эпохи.
Так вот, если бы автор прочитал работу В.И. Ленина, то он бы понял, что нет развития капитализма после стадии имперализма, только разрушение самого капитализма. А то что он написал - это иллюзия, которую мировой капитализм пытается воссоздать - создать новую форму существования капитализма, его исторического продолжения.
очередное исследование ради исследования
Ну будь добр расскажи, какая была инфляция в XII или XIII веке?
неэффективный труд - это недополученная прибыль капиталиста
Базис капитализма - это перераспределение ручного (!!!) труда: один создает, а другой присваивает результат этого труда. Любой капитал - это накопленный неоплаченный труд наёмных рабочих.
Вот работу машины или робота нельзя присвоить. Допустим работает роботизированный погрузчик на складе и потребляет 10кВт в час, ему нельзя сказать, теперь ты будешь туже самую работу делать и потреблять за 5 кВт, ну только если заменить на нового - более совершенного (но это уже другая история). А человеку можно - сегодня у тебя одна зарплата, а завтра в два раза меньше. Но в современных реалях человеку не обязательно понижать зарплату (это прошлый век) - просто включают "инфляцию"
в железе хоть что-нибудь есть?
да там и красть нечего, тут все наоборот, развал СССР очень хорошо обогатил Запад, все есть в России для разработки и промышленного производства
80-ядерный Ampere Altra - базовая частота 1 ГГц и максимальная - 3 ГГц, и надо полагать, что низкая частота это для работы с SIMD-данными (опс). А простые инструкции они и на Intel также быстро декодируются и выполняются, как и на любом RISC-процессоре.
1. данные в регистрах процессора не беруться из воздуха, они либо загружаться как константы (передаются вместе с инструкицей) либо из памяти.
2. Intel уже объявила что в следующих поколениях процессоров будет 32 регистра общего назначения.
3. Про то что вы пишите, да большое количество регистров процессоров позволяет избавиться от локальных переменных в стеке, но не надо забывать, что современные компиляторы языков высокого уровня помимо ваших объявленных локальных переменных, могут добавить еще свои локальные для своих собственных нужд и как правило они стековые.
про кеш-память - еще раз это не решение, а "костыль"; этот костыль не работает, если данные или кусок кода не читались процессором, то есть если этих событий не происходили, то его вклада в быстродействия никакой - ноль!
Эти старые мифы из 80-х, и они никого отношения не имют к сегоднешнему дню. Но именно последователи RISC-архитектуры достают эти старые доводы, как "из бабушкиного сундука старые фотографии" и вот пытаются притянуть к тому чего уже нет
Просто пример,
х86-64: add rax, rbx
risc-v: add x1, x1, x2
можно объяснить почему x86_64 при кодировании этой функции появляются какие-то сложности, которые влияют на быстродействие, а вот в risc-v - нет?
64 ядра?
Чтобы инструкции оказались в кеш-памяти их необходимо хотя бы один раз прочитать из оперативной памяти, иначе они там они не появяться.
Но и тут есть жирное НО. На линейном участке кода кеш-память никаких "плюшек" не даст, единственное где кеш-память может облегчить - это выполнение циклов, то здесь да, есть вероятность срабатывания кеш-памяти
Именно для этого и создается "открытость" RISC-V, чтобы лучшее стекалось в нужные и правильные руки
А сколько вообще производителей высокочистых помещений (ISO 1 или 2) в мире?
все хвалебные статьи про RISC-V безосновательно утверждают, что они лучше CISC, хотя обоснование какое-то однобокое
В других статьях про RISC-V я уже комментировал проблему, что достоинства простоты формата инструкции (который является чуть ли не главным достоинством среди преимуществ RISC перед CISC) в реале требует большой пропускной способности оперативной памяти.
Повторяюсь с примером, прежде чем выполнить какую-то инструкцию "регистр-регистр" на операндами, эти данные необходимо загрузить из памяти. Берем к примеру инструкцию сложения "регистр-память" для x86_64
ADD [RBX + RAX *8], 0xFFFFFF
ее аналог на RISC-V
# Предположим, что x1 = RBX, x2 = RAX
# Шаг 1: Вычисляем адрес
SLLI x5, x2, 3 # Умножаем RAX (x2) на 8 (сдвиг влево на 3 бита), результат в x5
ADD x5, x5, x1 # Добавляем RBX (x1) к результату, получаем полный адрес в x5
# Шаг 2: Загружаем значение из вычисленного адреса
LW x3, 0(x5) # Загружаем значение по адресу (RBX + RAX 8) в x3
# Шаг 3: Добавляем константу
ADDI x3, x3, 0x0FFFFFFF # Добавляем 0x0FFFFFFF к загруженному значению в x3
# Шаг 4: Сохраняем результат обратно по тому же адресу
SW x3, 0(x5) # Сохраняем обновленное значение обратно по адресу (RBX + RAX 8)
5 инстуркции RISC-V против 1 инструкции CISC
Для CISC - процессора инструкция сложения это 7 байт памяти, то есть 1-2 обращения к оперативной памяти (взависимости от выравнивания по границе адреса ячейки памяти)
Тоже самое для RISC- процессора: 5 инструкции - это 6 х 4 = 24 байт, то есть 3-4 обращения к памяти (в зависимости от выравнивания по 4-байтной границе)
Так вот для многоядерных RISC-системах, чтобы они на равне тягались с CISC-системами требуется оперативная память с более высокой пропускной способностью. Для многоядерных ARM- процессоров - это проблему они уже "хапанули", и по факту разработчики ARM уже достигли предела частоты ядра. К примеру частота многих серверных 64-ядерных ARM-процессоров уже в течении более 10 лет не превышает 2,4 ГГц, а вот новизна процессоров заключается в том что они могут работать с более быстрыми частотами оператиной памяти DDR...
У вот у меня вопрос к разработчикам как они будут решать проблему, которая дает простота формата инструкции?
Я в прошлом году покупал навоз для сада за 3000 рублей, а в этом году дешевле 5000 рублей нет - вот где рост!
"Вы все живёте в мире грёз"
данные во внутренних регистрах процессора сами по себе не окажуться, поэтому любые данные вначале загружаются в оперативную память, а потом загружаются во внутренние регистры; инструкция ADD - это пример, вместо нее может быть любая другая подобная инструкция
ну теоретически можете, но выравнивать данные по модулю 9 - не знаю, не стоит выделке