Е разбира се, че "няма какво да доказвам". Само има малка корекция "нямам доказателства, защото лъжа" :)
0 1 2 3 4 ...7 8 9 10 11 ...15 16 17 18 19
Е разбира се, че "няма какво да доказвам". Само има малка корекция "нямам доказателства, защото лъжа" :)
Тоз боклук ся и иска доказателства де живея. Нали знам майка ти де живее, всичко е точно.
Допреди малко халюцинираше, че майка ми живеела на село като неговата, сега пак лъже, че знаел къде живее след като му казах, че не живее на село. :)
И в град и в гето макя ти е селска пръчкотия!
Козоеба пак започна да ни разказва тъжната история на майка си, която е уморил млада с идиотщините си.
Доста прогрес със симулатора тази седмица. Оправих интерконекта и L3 cache-а да са по-реалистични, добавих векторни операции. Линукс буутва на едно ядро (до unable to mount root, още няма симулирани дискове), и стига доста далеч с 8 ядра, но последния бъг промени вътрешното състояние и сега не мога да преизпозвам checkpoints, kоито имам и трябва да симулирам около милиард цикъла отначало.
Та по рабиняшки реших да правя нещо друго и сега добавяме специализиран дебъгър, който позволява постъпково симулиране на всеки цикъл напред и назад ("истински" reversible debugger), отиване до произволен цикъл, break/watchpoints, инспекция на вътрешното състояние на ядрото, в каква фаза са активните инструкции, мапинг между архитектурни и физически регистри, съобщенията между кешовете които поддържат кохерентността на паметта и т.н.
Едно от условията за дебъгъра беше да е удобен на Клод, а не на човек и той си избра json формат на командите.
Сигурно ще отнеме целия уикенд, но да се надяваме че ще е по-лесно да се открива къде са бъговете.
Иначе основната ми хипотеза изглежда че ще е вярна и експертите ще се окаже, че грешат. :)
CLI. Debugger-а е на практика част от симулатора.
Брава. В облаците ли се симулира или локално?
Локално. Аз дори не държа сорса в гитхъб, защото подозирам, че работодателя ми няма да ми разреши да го направя опън сорс.
А каква е целта на този симулатор и дебъгер? От спортна злоба или имаш конкретен казус за чепкане?
Не искам да пиша много подробности, защото сигурно ще има достатъчно материал за 1-2 публикации, а от тях някои доносници ще могат да видят името ми.
Основния повод беше, че понякога ми се налага да използвам симулатори като gem5, а те всичките са еднонишкови и ако трябва да симулираш 100 ядра, са 100 пъти по-бавни (а те не са бързи така или иначе). Моето твърдение беше, че може да се напише многонишков симулатор, чиято производителност да расте с броя на процесорите на които работи. Експертите твърдят, че синхронизацията между нишките (+някои други подробности) ще убият растежа и скоростта няма да расте достатъчно за да си струва.
Ако нямаше AI щях да се съглася с експертите, защото е много работа да проверя дали е вярно. Та, използвам този експеримент да видя дали AI може да се справи с толкова сложен проект без аз да напиша и един ред код. :)
А дебъгъра го добавих, за да може Клод да намира бъгове в симулатора. Иначе за всеки бъг добавя printfs в кода, компилира, събира трейс, парсва, пак printfs и т.н. Сега просто се връзва към сокета на дебъгъра, ходи напред/назад в симулираните цикли и проверява какво е вътрешното състояние на ядрата и интерконекта.
Това само с публичната документация на ARM за архитектурите им?
Процесора и инструкциите се емулират ама цялата периферия която съпътства ядрата не усложнява ли прекалено много симулатора?
Да, публична, каква друга? :) Затова се оплаквах, че УикиЧип е умрял. Но Клод е доста добър да изнамира всякакви детайли. Сега за прифечърите намери някакви слайдове на Арм от някаква конференция, на която има списък на прифечърите които използват. И по имената се опитва да познае кой какво прави и да използва алгоритмите, които са публикувани.
На мен не ми трябва много периферия, само диск и мрежа засега. Virtio в Линукс позволява да се добавят лесно, въпреки че все още не съм го направил. Засега имам само серийна конзола, колкото ядрото да се оплаква че няма root filesystem.
Ето това са документите от които извличам микроархитектурата:
0 1 2 3 4 ...7 8 9 10 11 ...15 16 17 18 19