Pull to refresh
70
0
Alexander Komarov @izard

software optimization

Send message
Нет, не описано. Но можно нагуглить несколько релевантных академических статей, в том числе опубликованых архитекторами Intel по запросу «L1 L2 LLC inclusive».

Обычно архитекторы просто прогоняют на модели нового дизайна огромный синтетический бенчмарк и пытаются выбрать вариант политики с лучшей производительности и наименьшим расходом энергии.
Да, описано в SW Optimization guide (#248966, 2.3.4). L2 не обязательно включает весь L1, но L3 включает L1 I&D и L2.
Тем, что L3 (LLC) в текущих реализациях Core i7 — fully inclusive of L1 and L2. То есть если линия вытеснена из LLC, LLC автоматически посылает сигнал об изменении статуса этих данных на Invalid в нижележащие кэши.

Для сравнения, если по какой-то причине линия пропадает из L2, в L1 она все еще может оставаться.
>>То есть выпытать код от карты с магнитной полосой труднее? :)
>Да, т.к. владелец карты может его не знать.
А Вы очень смелый человек… Если уже дело дошло до пыток, пин код лучше бы знать.
Спасибо, очень порадовало. Писал софтмодем в 2002 году, 11 и 10 лет назад долго разглядывал подобные спектры на работе.
1. Medfield — первый мобильный SoC от Intel, но не первый SoC. Уже несколько лет продаются SoC для рынков CE, IVI, industrial: Sodavile, Groveland, Berryville, Tunnel Creek в 3 вариантах.
3. Возможно, потому, что APU — зарегистрированая торговая марка? Если не шинами, то как связывать GPU и CPU ядра? И в SNB, и IVB GPU одинаково общается с остальными компонентами на кольцевой шине — с ядрами, частями LLC и системным агентом.
4. Это сопроцессор, который умеет исполнять тот же x86 код, что и хост, а не специальный data parallel набор инструкций с ограниченными возможностями программирования сложных управляющих структур.
В пентиуме выпилен, а потом снова добавлен? В современных x86 SMM/SMI есть.
Не так далеко. Основные потоки были из Крыма и Харбина. Австралийские русские, которых я встречал — из Харбина.
Ну в 2013 много полезного кроме поддержки более свежего железа и java. Надеюсь коллеги напишут топик, а то только про инспектор 2013 писали недавно.
Увидел ссылку на перестановку полей в памяти, и сразу же подумал на PGO. PGO — единственная оптимизация, которая может переставлять поля в памяти?
Joel Spolsky:
I first heard about this from one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that happened to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.
Нашел Simple Cutter — станок плазменной резки. Ваш продукт?

Какое время реакции необходимов вашем приложении?

Я как сотрудник Интел очень даже люблю PC. Но в европе может быть сложно с сертификацией. Хотя если приспособить сбоку отдельную safety железку, может быть прокатит.

Удачи вам, Beckhoff тоже начинал с обычных PC.
мой ответ:
1. Конечно! Я специально и написял, что в IL так наворотить сложно, а в structured text — запросто.
Однако приведенный код, как ни странно, «боевой». Я видел приложение, гда надо было перемножать 4x4 матрицы почти каждый цикл.

2. Сращивание HMI и контроллера конечно удобный пример для Интел, но действительно часто не полезно для крупного объекта. Хотя бывает и наоборот: на конвейейре фабрики бмв видел HMI у каждого робота отдельно, в нем видно пошаговое исполнение structure text, и еще в операторском помещении все дублируется.
izard> Получил личный коммент от muzzy0.livejournal.com. Это инженер, который занимается пром
izard> автоматизацией. У него нет аккаунта на хабре.

muzzy0>
1. Пример с тремя вложенными циклами — просто отличный. Его должны показывать на первом уроке курса по structured text — как пример «как нельзя программировать ПЛК» :)

Подобных дел можно и в instruction list наворотить, но несколько сложнее.

Это было одной из первых любопытных вещей, с которой я столкнулся, когда столкнулся с программированием контроллеров. Не надо тащить на ПЛК десктопные привычки :))

У тебя и так программа в цикле крутится, так зачем запихивать такой здоровый цикл в один проход главного цикла? Напиши свою программу так, чтоб за один проход главного цикла у тебя выполнялся один (ну или не один, а в пределах разумного) проход твоего цикла — и порядок :)

А насчёт сращивания контроллера и HMI — чем крупнее объект, тем физически дальше они друг от друга и тем большая вычислительная мощность им требуется. Кроме того, контроллеры могут быть дублированными (как S7-400H) и их может быть несколько. А HMI сервера достаточно одного, хоть и дублированного. Вот только стоит этот сервер в шкафу, в серверном помещении, даже без монитора, а люди сидят за клиентскими станциями, тонкими (веб) и толстыми (рантайм скады).

DSP и FPGA серьезно проигрывают и x86 PLC, и обычным PLC в гибкости — стоимости изменения программы.
5 лет назад и 10 лет назад я мог бы написать похожий пост, и сейчас все еще согласен с автором по всем пунктам. Хотя конечно сильно отстаю по пунктам 15-16.
видел в работе vxworks, различные linux'ы с RT patch'ами и без (если без, то RT код дописывают в ISR от LAPIC или от PCIe устройства), win ce, tenasys intime, патчи к винде от Beckhoff или codesys, bare metal.
hard real time на x86 (core, atom).
Так тоже можно, конечно, если бы goto would not be considered harmful :)
Просто в голове по дефолту представляю рекурсивный вид, т.к. последние несколько недель писал на clojure.

Information

Rating
Does not participate
Location
Portland, Oregon, США
Date of birth
Registered
Activity