Отговори на тема  [ 85 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5, 6  Следваща
Windows Leak 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Съб Юни 03, 2017 1:21 pm
Мнения: 163
Мнение Re: Windows Leak
Zdrav написа:
Спокойно може да се използва този въпрос и на интервюта за работа за да отсеете надъханите пишлемета и зубрачите от тия на които ембедед софтуера им е в кръвта.


Въпрос е много полозен: директно разбираш, че е по-добре да продължиш с търсенето на друго работно място. Изобщо тази мода да се задават подобни въпроси е силно токсична. За мен по-доброто е: покажи какво си правил.

При проверка за || се започва от ляво надясно и се приключва при първото true:
Код:
/*volatile*/ uint8_t a = 0;
while (1)
{
  if( (a == 0xaa) || (a == 0xAA) )
  {
     osDelay(1);
  }
}

На променливата а се прави инкремент в друг task.

С volatile:
Код:
80014f6:   e75f         b.n   80013b8 <main+0x88>
        osDelay(1);
80014f8:   2001         movs   r0, #1
80014fa:   f006 f9f1    bl   80078e0 <osDelay>
     if( (a == 0xaa) || (a == 0xAA) )
80014fe:   4b2f         ldr   r3, [pc, #188]   ; (80015bc <main+0x28c>)
8001500:   781b         ldrb   r3, [r3, #0]
8001502:   b2db         uxtb   r3, r3
8001504:   2baa         cmp   r3, #170   ; 0xaa
8001506:   d0f7         beq.n   80014f8 <main+0x1c8>
8001508:   4b2c         ldr   r3, [pc, #176]   ; (80015bc <main+0x28c>)
800150a:   781b         ldrb   r3, [r3, #0]
800150c:   b2db         uxtb   r3, r3
800150e:   2baa         cmp   r3, #170   ; 0xaa
8001510:   d1f5         bne.n   80014fe <main+0x1ce>
8001512:   e7f1         b.n   80014f8 <main+0x1c8>

Без volatile:
Код:
80014ec:   f006 f960    bl   80077b0 <osKernelStart>
     if( (a == 0xaa) || (a == 0xAA) )
80014f0:   4b2d         ldr   r3, [pc, #180]   ; (80015a8 <main+0x278>)
80014f2:   781b         ldrb   r3, [r3, #0]
80014f4:   2baa         cmp   r3, #170   ; 0xaa
80014f6:   d1fb         bne.n   80014f0 <main+0x1c0>
        osDelay(1);
80014f8:   2001         movs   r0, #1
80014fa:   f006 f9e7    bl   80078cc <osDelay>
80014fe:   e7f7         b.n   80014f0 <main+0x1c0>


С две думи - не виждам никаква реална полза от подобна "врътка" - напротив дори да има то прави кода "чуплив". А за четимост и поддръжка изобщо не става дума.


Пет Фев 19, 2021 7:31 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 11:53 pm
Мнения: 4582
Местоположение: Brussels / Пловдив
Мнение Re: Windows Leak
Случи ми се нещо подобно тук с една фирма. Пресявката им беше да ти дадат задание по което да напишеш код който после да коментирате на живо.

Заданието половинчато и позволяващо всякакви интерпретации - останах с впечатлението, че всъщност е много хитър начин да видиш програмиста дали и доколко мисли и вниква в това което прави. Как да е, седнах и го направих както трябва добавяйки коментари там където заданието не е прецизно, какво съм предположил и какво може да се направи и т.н.
На техническото интервю въобще не стана на въпрос за кода и за ужас на рекруитъра, който тамън виждаше една тлъста комисионна ги отсвирих.

_________________
Мразя да мразя ...


Пет Фев 19, 2021 7:39 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Re: Windows Leak
s.ivanov написа:
...
С две думи - не виждам никаква реална полза от подобна "врътка" - напротив дори да има то прави кода "чуплив". А за четимост и поддръжка изобщо не става дума.

Ако обърнеш внимание, ще забележиш че и аз съм на това мнение.
А това за въпроса за интервюто си беше чиста ирония.
Но помисли още малко върху 4-те случая.

_________________
Най-опасният враг на истината и свободата е мнозинството.


Пет Фев 19, 2021 10:53 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: Windows Leak
Zdrav написа:
4-ти случай.
Това е за наистина ама наистина разбирачи. Които правят тънки сметки и подравняват кода в кеша с добавяне на една-две, привидно излишни, инструкции тук-таме из кода.

Може да звучи странно, но добавянето на стратегически nop може да удвои скоростта.
Веднага давам пример. Микроконтролерите на TI с Ferroelectric RAM (FRAM) имат кеш и при компилиране понякога се случва цикъла който извършва някаква критична операция да не е подравнен и това вкарва допълнтелно изчакване при четене от паметта(което при FRAM, подобно на Magnetic-core memory автоматично означава и писане). Та ако се добавят на подходящо място инструкции nop (които в msp430 архитектурата всъщност са инструкцията MOV #0h,#0h
или MOV #0,R3 или MOV R3,R3 - R3 регистъра е генератор на константи) кеша на FRAM се подравнява и автоматично скоростта на цикъла се удвоява. Сигурен съм че колегите са срещали много такива подобни "странности".

За по-подробно обяснение препоръчвам Side-Channel Security Analysis of
Ultra-Low-Power FRAM-based MCUs : https://www.cosade.org/cosade19/cosade1 ... _S10_1.pdf
Цитат:
As a disadvantage we should refer to the fact that FRAM reads are destructive.
That is, every read must be followed by a write operation (with the same
data). However, this is automatically handled by the FRAM controller, and the
end user does not need to pay any attention to this. Therefore, the frequency of
FRAM read operations are limited to the write speed. Due to this limit, TI has
integrated a read cache in front of the FRAM to accelerate the operations in case
the MCU operates at a higher frequency than the FRAM. In the MSP430FR
family, the FRAM can be operated at up to 8 MHz without use of this cache.
When the MCU operates at a frequency of 16 MHz (the maximum operation
frequency of the MSP430FR family), the cache is utilized.
The integrated cache is a two-way associative cache containing two cache
sets [17]. Each of these sets consists of two lines of four words (64 bits). The cache
controller selects one of the cache lines to preload FRAM data and preserves
recently-accessed data in the other cache line. If one of the four words stored in
one of the cache lines is requested (a cache hit), no FRAM access occurs, and
the requested data is read from the cache with full system speed. However, if
none of the words that are available in the cache is requested (a cache miss),
a wait state (one clock cycle at 16 MHz) controls the CPU to ensure proper FRAM access. Therefore, memory read accesses on consecutive addresses can be
executed without wait states when they are within the same cache line.
Each 64-bit location in FRAM can be cached in only one of the two sets in
the cache. As shown in Figure 1, the most common scheme is to use the least
significant bit of the FRAM location’s address as the indicator to the corresponding
cache set. We should emphasize that FRAM contains both program
code and data, e.g., look-up tables, which are to be stored in the non-volatile
memory. Hence, frequent jumps and frequent accesses to the pre-stored tables
in FRAM can negatively affect the cache performance.

Ето и пример защо понякога е ОК да вкючваш и да изключваш "радара за връщане от Луната" ... за да не ти се рестартира процесора ... докато се опитваш да кацнеш.
Цитат:
During the mission, the cause was diagnosed as the rendezvous radar switch being in the wrong position, causing the computer to process data from both the rendezvous and landing radars at the same time.[118][119] Software engineer Don Eyles concluded in a 2005 Guidance and Control Conference paper that the problem was due to a hardware design bug previously seen during testing of the first uncrewed LM in Apollo 5. Having the rendezvous radar on (so it was warmed up in case of an emergency landing abort) should have been irrelevant to the computer, but an electrical phasing mismatch between two parts of the rendezvous radar system could cause the stationary antenna to appear to the computer as dithering back and forth between two positions, depending upon how the hardware randomly powered up. The extra spurious cycle stealing, as the rendezvous radar updated an involuntary counter, caused the computer alarms.

Източник: https://en.wikipedia.org/wiki/Apollo_11#Lunar_descent

_________________
Warriors of the Night, ASSEMBLER!!!


Съб Фев 20, 2021 12:36 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Re: Windows Leak
ike написа:
...
Може да звучи странно, ...

Това въобще не е странно.
Факт е, че обикновено използваме супер-дупер хардуер, който е по принцип на светлинни години напред от софтуера. Та за това се налага да ползваме всякакви заклинания, когато пишем софтуер за него.
<добавете си ирония на ум>

_________________
Най-опасният враг на истината и свободата е мнозинството.


Съб Фев 20, 2021 1:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Windows Leak
Ахъм. Особено като има мотики в тоя супер дупер хардуер. И отговора на въпроса ко търсят тия 4 ноп-а в прекъсването, става малко по ясен.


Съб Фев 20, 2021 8:42 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: Windows Leak
Аз почвам да се замислям дали пък ... точно мотиките не правят хардуера. На практика всяка архитектура си има мотики ... та архитектура без мотики би било голяма мотика. Най-важното обаче е мотиките да са боядисани в червено и да имат малко дунапрен - за да се подготвиш малко преди да ги настъпиш.
Процесорите с архитектура MIPS, PA-RISC, ETRAX CRIS, SuperH, and SPARC не бих ги определил като "супер дупер хардуер", обаче и те си имат особеност, която може да те изненада когато дебъгваш асемблера Delay slot: https://en.wikipedia.org/wiki/Delay_slot
Та това обяснява първия nop останалите 3 nop-a за какво са по-запознатите ще кажат.

_________________
Warriors of the Night, ASSEMBLER!!!


Нед Фев 21, 2021 12:18 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Яну 20, 2009 11:54 pm
Мнения: 11338
Местоположение: "Занзибар"
Мнение Re: Windows Leak
[quote="Zdrav"..... Факт е, че обикновено използваме супер-дупер хардуер, който е по принцип на светлинни години напред от софтуера.....[/quote]
Аз нещо подобно се опитвам да обясня, но никой не ми вярва.
ПРИМЕР: съвременните "говорящи програми" звучат леко по-добре от на Правчо-8. Да, ама там "звоковъзпроизвеждането" беше чрез скапано говорителче включено в колектора на импулсивен транзистор, за възможностите на компа не говоря.
Но дори тогава по принцип само най-отговорните части на програмата се пишеха на ASM (с е*ах ти триковете!), другото на нещо компилирано или директно на BASIC (пак с трикове). Това позволяваше в 256 БАЙТА да набуташ функционалност, която сега ще е доста килобайти.


Нед Фев 21, 2021 2:42 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение Re: Windows Leak
PDP-11, VT102 и BSD 2.11 с работещ етернет и ТСР срек
качено на ESP32 (~$1) с 512КВ PSRAM и 4/8МВ флаш... (още $2), сторидж на SD (8GB за 5лв)

първото PDP, до което ме пуснаха, имаше 64КВ феритна памет, 2х10+10МВ 30" дискове (или бяха 5+5?), 2х38МВ 1/2" ленти и оригинален телетайп...
няма и 40 години от тогава :|


Нед Фев 21, 2021 6:03 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Re: Windows Leak
ДедоБоре написа:
PDP-11, VT102 и BSD 2.11 с работещ етернет и ТСР срек
качено на ESP32 (~$1) с 512КВ PSRAM и 4/8МВ флаш... (още $2), сторидж на SD (8GB за 5лв)

първото PDP, до което ме пуснаха, имаше 64КВ феритна памет, 2х10+10МВ 30" дискове (или бяха 5+5?), 2х38МВ 1/2" ленти и оригинален телетайп...
няма и 40 години от тогава :|


Повече MHz и MB за по-малко $. Това звучи като цел определена от някой мениджър, а не инженер или учЕн.
За това ли отидоха тези 40 години, Дедо?
И защо PDP върху този хардуер? Щото е достатъчно ниска топка нали?
Как пък никой не натисна малко повече да се проектира MCU, което да е правено с малко повече мисъл за многозадачност и паралелизъм. Вместо това няколко ядра забучени на някакви безумни кросбар-и и бъс-матрикс или фабрикс... Ядра набримчени на 200-300 MHz и фетчващи код от FLASH, който върви на 20-30 MHz.
Пайплайн-и, кешове, ускорители, бриджове, арбитри...
Без оптимизирани atomic операции, без синхронизационни примитиви... за priority ceiling protocol да не говорим. И айде пиши софтуер и на всяка крачка Enable/Disable IRQs, MSYNC, ISYNC... EIEIO :?

Не е въпроса за мотики или други проблеми с имплементацията, а в това хардуера да се проектира с мисъл че върху него ще върви софтуер. Щото без софтуер си е просто едно голо желязо. На което думата "архитектура" му стои като на свинче звънче.

_________________
Най-опасният враг на истината и свободата е мнозинството.


Пон Фев 22, 2021 1:53 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 11:53 pm
Мнения: 4582
Местоположение: Brussels / Пловдив
Мнение Re: Windows Leak
Всъщност от време на време има проблясъци - новият ARM MacBook е проектиран доста дорбе и с мисъл, работи като пушка, не грее, батерията му държи на цял ден работа, че и на два ако не си даваш много зор да работиш (има и такива дни, уикенди). Та:

Широки шини до паметта за да не се скопява производителността на ядрото в чакане на данни.
Отделно паметта е на същия die като процесора което допълнително обързява и опростява дизайна.
Надявам се и SSD да е закачен направо към процесора.
Сумати хардуерни ускорители и модули в процесора за да не се налага тежки алгоритми да се изпълняват от самия процесор.

Както се казва - като искаш да се занимаваш сероизно със софтуер си прави сам хардуера.

Нищо ново под слънцето, просто са седнали и са го направили. Нещо което винтел за 40 години правеше точно наобратно - добавяха се слой след слой абстракции, шини, протоколи, емулации и т.н.

Да се надяваме, че един по един и останалите ще започнат да влагат повече мисъл за да има рядко 300 МХц процесори въртящ празни цикли докато зареди данни от 30МХц флаш.

_________________
Мразя да мразя ...


Пон Фев 22, 2021 8:04 pm
Профил
Ранг: Напреднал
Ранг: Напреднал

Регистриран на: Вто Май 07, 2019 9:16 pm
Мнения: 434
Местоположение: I bin thinkin’ this bin Gurindji country. We bin here longa time before them Vestey mob.
Мнение Re: Windows Leak
А каква е тая набираща популярност напоследък мания, GUI за Уиндоус Софтуер да почва да се пише на.... HTML и Java Script. :cry:


Вто Фев 23, 2021 2:56 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 25, 2012 9:14 am
Мнения: 5298
Мнение Re: Windows Leak
s.ivanov написа:
Въпрос е много полозен: директно разбираш, че е по-добре да продължиш с търсенето на друго работно място. Изобщо тази мода да се задават подобни въпроси е силно токсична. За мен по-доброто е: покажи какво си правил.


+1 по тоя точка.

Всякаква форма на "real-time" тестове (т.е. даваш лист и молив на апликанта докато ти е на интервю, и го оставяш да се поти на някаква теория), е напълно безсмислена. Най-вероятно ще изпъкне някой с перфектна теория и нула практика. За съжаление много фирми все още наемат на тоя принцип, но забелязвам че фокуса вече е започнал да се измества.

Аз съм установил че значително по-добри резултати се получават когато видиш портфолиото от направени неща и дадеш някаква малка задача близка до реалния свят, оставиш човека да си я разчовърка на спокойствие вкъщи за ден-два, и после да прати резултата. Всички хора които аз съм интервюирал досега са минали така и са се доказали като добър избор.

_________________
'просто' е технически синоним на 'красиво'


Вто Фев 23, 2021 3:54 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение Re: Windows Leak
palavrov написа:
Всъщност от време на време има проблясъци - новият ARM MacBook е проектиран доста дорбе и с мисъл, работи като пушка, не грее, батерията му държи на цял ден работа, че и на два ако не си даваш много зор да работиш (има и такива дни, уикенди). ....

До тоя извод сам ли стигна или от ревюта в нета? Наистина ли е по-добър от х86 в ежедневна работа и в частност - програмиране (докери, джави, змии)?

Jack написа:
А каква е тая набираща популярност напоследък мания, GUI за Уиндоус Софтуер да почва да се пише на.... HTML и Java Script. :cry:

Е как каква - модерна джендария :D . Даже не е таргетирано това само към уиндоус - повсеместно е (хромиум е отдолу). Гълта памет и е бавно. Разбира се има и изключения, но като цяло е много кофти тенденция.


Вто Фев 23, 2021 5:30 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 11:53 pm
Мнения: 4582
Местоположение: Brussels / Пловдив
Мнение Re: Windows Leak
michev написа:
palavrov написа:
Всъщност от време на време има проблясъци - новият ARM MacBook е проектиран доста дорбе и с мисъл, работи като пушка, не грее, батерията му държи на цял ден работа, че и на два ако не си даваш много зор да работиш (има и такива дни, уикенди). ....

До тоя извод сам ли стигна или от ревюта в нета? Наистина ли е по-добър от х86 в ежедневна работа и в частност - програмиране (докери, джави, змии)?

Сам, сам ... изчаках да излезе iFixit разпарчосването да видя какво са насътворили вътре и на момента си поръчах Air - да е без вентилатор защото не ме бърка от време на време да забавя ако го напъна. И така вече трети месец - не е загрял нито веднъж, не съм усетил да забави нито ведъж. Просто работи и с х86 емулация си наинсталирах всичко каквото ми трябва за програмиране докато едно по едно всичко се прекомпилира за ARM. Даже разни айфонски апп и игри се инсталираха и си работят все едно е телефон.

Инсталирал съм и работя активно с arm-none-eabi-gcc, разните Nordic dev tools, VSCode, Android Studio ... разбира се vim & XCode си работят нейтив.
Добавих и една USB-C докинг станцийка с етернет, хдми, четец на карти и т.н. че на компа има само 2 усб порта и изход за слушалки.

Изключая Докер за всичко останало няма забележка. А доколкото знам Докер работят и скоро ще пуснат читав докер (ако все още не са). Отделно разни ентусиасти вече буутват линукс и БСД.

По мое наблюдения това е най бързият, тих и дълго работещ на батерия лаптоп който съм имал. И то 3 от 3, а не избери 2 от 3.

_________________
Мразя да мразя ...


Вто Фев 23, 2021 8:40 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 85 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5, 6  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 7 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни