Нет, не описано. Но можно нагуглить несколько релевантных академических статей, в том числе опубликованых архитекторами Intel по запросу «L1 L2 LLC inclusive».
Обычно архитекторы просто прогоняют на модели нового дизайна огромный синтетический бенчмарк и пытаются выбрать вариант политики с лучшей производительности и наименьшим расходом энергии.
Тем, что L3 (LLC) в текущих реализациях Core i7 — fully inclusive of L1 and L2. То есть если линия вытеснена из LLC, LLC автоматически посылает сигнал об изменении статуса этих данных на Invalid в нижележащие кэши.
Для сравнения, если по какой-то причине линия пропадает из L2, в L1 она все еще может оставаться.
>>То есть выпытать код от карты с магнитной полосой труднее? :)
>Да, т.к. владелец карты может его не знать.
А Вы очень смелый человек… Если уже дело дошло до пыток, пин код лучше бы знать.
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 набор инструкций с ограниченными возможностями программирования сложных управляющих структур.
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.
Я как сотрудник Интел очень даже люблю PC. Но в европе может быть сложно с сертификацией. Хотя если приспособить сбоку отдельную safety железку, может быть прокатит.
мой ответ:
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 сервера достаточно одного, хоть и дублированного. Вот только стоит этот сервер в шкафу, в серверном помещении, даже без монитора, а люди сидят за клиентскими станциями, тонкими (веб) и толстыми (рантайм скады).
5 лет назад и 10 лет назад я мог бы написать похожий пост, и сейчас все еще согласен с автором по всем пунктам. Хотя конечно сильно отстаю по пунктам 15-16.
видел в работе vxworks, различные linux'ы с RT patch'ами и без (если без, то RT код дописывают в ISR от LAPIC или от PCIe устройства), win ce, tenasys intime, патчи к винде от Beckhoff или codesys, bare metal.
Так тоже можно, конечно, если бы goto would not be considered harmful :)
Просто в голове по дефолту представляю рекурсивный вид, т.к. последние несколько недель писал на clojure.
Обычно архитекторы просто прогоняют на модели нового дизайна огромный синтетический бенчмарк и пытаются выбрать вариант политики с лучшей производительности и наименьшим расходом энергии.
Для сравнения, если по какой-то причине линия пропадает из L2, в L1 она все еще может оставаться.
>Да, т.к. владелец карты может его не знать.
А Вы очень смелый человек… Если уже дело дошло до пыток, пин код лучше бы знать.
3. Возможно, потому, что APU — зарегистрированая торговая марка? Если не шинами, то как связывать GPU и CPU ядра? И в SNB, и IVB GPU одинаково общается с остальными компонентами на кольцевой шине — с ядрами, частями LLC и системным агентом.
4. Это сопроцессор, который умеет исполнять тот же x86 код, что и хост, а не специальный data parallel набор инструкций с ограниченными возможностями программирования сложных управляющих структур.
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.
Какое время реакции необходимов вашем приложении?
Я как сотрудник Интел очень даже люблю PC. Но в европе может быть сложно с сертификацией. Хотя если приспособить сбоку отдельную safety железку, может быть прокатит.
Удачи вам, Beckhoff тоже начинал с обычных PC.
1. Конечно! Я специально и написял, что в IL так наворотить сложно, а в structured text — запросто.
Однако приведенный код, как ни странно, «боевой». Я видел приложение, гда надо было перемножать 4x4 матрицы почти каждый цикл.
2. Сращивание HMI и контроллера конечно удобный пример для Интел, но действительно часто не полезно для крупного объекта. Хотя бывает и наоборот: на конвейейре фабрики бмв видел HMI у каждого робота отдельно, в нем видно пошаговое исполнение structure text, и еще в операторском помещении все дублируется.
izard> автоматизацией. У него нет аккаунта на хабре.
muzzy0>
1. Пример с тремя вложенными циклами — просто отличный. Его должны показывать на первом уроке курса по structured text — как пример «как нельзя программировать ПЛК» :)
Подобных дел можно и в instruction list наворотить, но несколько сложнее.
Это было одной из первых любопытных вещей, с которой я столкнулся, когда столкнулся с программированием контроллеров. Не надо тащить на ПЛК десктопные привычки :))
У тебя и так программа в цикле крутится, так зачем запихивать такой здоровый цикл в один проход главного цикла? Напиши свою программу так, чтоб за один проход главного цикла у тебя выполнялся один (ну или не один, а в пределах разумного) проход твоего цикла — и порядок :)
А насчёт сращивания контроллера и HMI — чем крупнее объект, тем физически дальше они друг от друга и тем большая вычислительная мощность им требуется. Кроме того, контроллеры могут быть дублированными (как S7-400H) и их может быть несколько. А HMI сервера достаточно одного, хоть и дублированного. Вот только стоит этот сервер в шкафу, в серверном помещении, даже без монитора, а люди сидят за клиентскими станциями, тонкими (веб) и толстыми (рантайм скады).
Просто в голове по дефолту представляю рекурсивный вид, т.к. последние несколько недель писал на clojure.