LINUX.ORG.RU

Архитектура CPU


1

4

Есть острая потребность пополнить знания в этой теме.
Занимаюсь разработками на базе OpenSparc (по причине открытости и VHDL-ности в случае реализации от gaisler).
Когда-то давно читал маны Intel и работал с разными семействами MCU, понимаю как что работает, но нет необходимых «теоретическо-академических» познаний.
Хотелось бы ссылок на каноничные и не каноничные талмуды данной области, блоги с обоснованием почему Bulldozer зафейлил и в чем смысл OpenRisc
(что даже в qemu 1.2 его воткнули) и т.п.
Сам занимаюсь поиском, но если кто-то уже в теме и знает интересные ресурсы (как теоретические, так и с аналитикой) - не хотелось бы ничего пропустить :)


Смысл openhardware в том, что intellectual property (например, реализация проца для FPGA) стоит денег.

Какие именно познания нужны?

mv ★★★★★
()
Ответ на: комментарий от mv

А OpenSparc уже не является openhardware? :)
Я не о смысле openhardware - конкретно насчет преимуществ OpenRisc по сравнению, к примеру, с OpenSparc или даже другими RISC ядрами с OpenCores (или его только за Wishbone пиарят?).
Познания - интересует вся теория после фон Неймана, т.к. пока не в теме конкретизировать сложно :)
На данный момент занимаюсь FPGA, начал с примитивного уровня, сейчас сложность все возрастает.
С организацией регистро-логико-данных, автоматов и проч. вопросов не возникает.
Но постепенно возростает вероятность скорого прыжка во встраиваемые специализированные процессоры... и тут такая интересная ситуация - разобаться-то с тем что и как работает могу, но какие есть альтернативы и в чем их профит нормально оценить не могу - нет достаточных базовых знаний.
Т.к. интересно не просто кастрировать MicroBlaze/NIOS на свой лад, а разобраться в том откуда ноги растут - собираю информацию.
Например - по теории ОС (построение, архитектуры и виды) есть куча инфы, много отзывов о том на что из книг смотреть в первую очередь.
Вот по теории архитектур CPU пока натыкаюсь на всякий порожняк. Интересные аналитические блоги/сообщества также не отыскал пока что...

elrprt
() автор топика
Ответ на: комментарий от anonymous

Код и окружение у LEON3 на порядки больше нравится. И простота не главный критерий.
Кроме того, сейчас интересует не построение отдельного представителя (с этим и так разбираюсь постепенно), а общая теория (охватывающая всю область).

elrprt
() автор топика
Ответ на: комментарий от anonymous

Milkymist - почему «еще лучше»?
И боюсь что буду бухать каждый раз открывая маны - openmoko на такое слить...

elrprt
() автор топика
Ответ на: комментарий от mv

Ага, скачал наверное в 5 раз больше книг чем на амазоне - успел пролистать штук пять - по причине дерьмовости подачи материала спрашиваю на что смотреть в первую очередь :)
Интересует не ссылка на google-book-cpu, а конкретные рекомендации от тех кто в теме.
Вдруг есть 10 зачетных статей, которые реально стоит прочитать вместо тонны книг.
Или несколько книг, которые хорошо все покрывают и материал подают здорово.
Чем меньше я в теме, тем сложнее мне оценить корректность отдельного материала.

elrprt
() автор топика
Ответ на: комментарий от elrprt

И простота не главный критерий.

Тебе учиться или как? В коде OpenSparc ты все ноги переломаешь. or1200 - тупой как дрова, понятный и достаточно прямой. LEON3 - огромный, сложный и косой.

Я вообще в свое время учился по Tiger Mips - он вообще проще некуда, но все основные концепции понять позволяет (pipeline, register file, hazards, load/store и тому подобное).

Так что не думай даже учить общую теорию на примере промышленного монстра. Бери что попроще. К тому же tiger mips много материала прилагается (конспекты лекций, слайды). К or1200 прилагается дружелюбное и разношерстное сообщество. К milkymist прилагается хорошая документация и дисер. Для обучения материала - вагон, короче.

Да, еще - не стоит цепляться за VHDL. На Verilog-е материала намного больше. Лучше всего хорошо знать и то и другое.

anonymous
()
Ответ на: комментарий от elrprt

Потому, что дисер прилагается весьма хороший и познавательный. Потому, что LM32 тупой как грабли и очень хорошо задокументирован.

А насчет специализированных процессоров - гугли про NISC, смотри на тот же or1200 и на то, как рам расширения подключаются (DSP инструкции и подобная радость).

anonymous
()
Ответ на: комментарий от anonymous

Насчет кода конкретно OpenSparc - согласен. Насчет LEON3 - а в чем он косой, если не секрет?
Большой - да, но и материала по нему (и OpenSparc) достаточно много.
Tiger Mips - гляну, спасибо.

Да, еще - не стоит цепляться за VHDL. На Verilog-е материала намного больше. Лучше всего хорошо знать и то и другое.

Verilog читаю нормально, но работать с ним не нравится.

Так что не думай даже учить общую теорию на примере промышленного монстра. Бери что попроще.

Теорию буду поднимать на книгах, статьях и по набору проектов с разным уклоном.
Останавливаться на одном примере для освоения смысла мало, т.к. сейчас задача не понять как работает конкретный экземпляр,
а освоить что есть вообще и почему оно есть в таком-то или ином виде.
С OpenSparc разбираюсь как раз потому, что он применяется в проекте (быстрое реагирование на определенные моменты в сетевом трафе).
И мне, возможно, придется участвовать в разработке.

elrprt
() автор топика
Ответ на: комментарий от elrprt

если честно, то ни капли не понял что именно ты хочешь, но в принципе понимаю все слова что ты пишешь, FPGA/VHDL/Verilog/SoftCPU и т.п. - это я понимаю

что ты хочешь-то? :)

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от elrprt

Verilog читаю нормально, но работать с ним не нравится.

Зря, Verilog куда популярней в Штатах, где основная часть R&D по процам делается.

mv ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Хочу одного - ссылок на стоящие материалы по теме, которую описал.
Сам нарыл огромную кучу материалов, но т.к. пока сложно быстро выделить действительно стоящие материалы - спрашиваю у тех кто уже это проходил - что смотреть в первую очередь.

elrprt
() автор топика
Ответ на: комментарий от mv

Пока заказов с VHDL хватает :)
У Verilog не нравится синтаксис и дальнейшее направление развития в форме SV.
Кстати, нравится подход novasparks ;)

elrprt
() автор топика
Ответ на: комментарий от tailgunner

Кстати, на чем был Nehalem?

По-крайней мере, Branch Prediction Unit на Верилоге (у нас чувак работает, имевший к BPU@Nehalem отношение).

mv ★★★★★
()
Ответ на: комментарий от mv

За линк спасибо. Пока до незнакомого еще не дошел, изложение материала хорошее.

elrprt
() автор топика
Ответ на: комментарий от elrprt

извини, но VHDL - объективно: говно

Verilog - красивый _лаконичный_ язык, я когда-то изучал VHDL, но как взглянул на Verilog и сразу перешел - в разы меньше писать текста - яснее код

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Verilog - красивый _лаконичный_ язык

IEEE Std 1800™-2009 (Revision of IEEE Std1800™-2005) IEEE Standard for SystemVerilog — Unified Hardware Design, Specification, and Verification Language

1247 страниц...

abacaba
()
Ответ на: комментарий от I-Love-Microsoft

Verilog - красивый _лаконичный_ язык

вот только не надо про красоту. Отлаживать модуль с сотней-другой независимых процессов — это, извините, ппц. На VHDL практически любой модуль пишется в два процесса.

Опять же, строгая типизация и наличие структур — это то, чего всегда не хватало верилогу.

demidrol ★★★★★
()

Ну основные ссылки вроде уже дали. Могу посоветовать еще вдумчиво прочитать опус http://lurkmore.to/X86 с тем, чтобы отметить на какие детали стоит обратить внимание при чтении академически трудов.

soomrack ★★★★★
()
Ответ на: комментарий от demidrol

Опять же, строгая типизация и наличие структур — это то, чего всегда не хватало верилогу.

Я сам не копенгаген, но

cpt_data_length_pres <= to_unsigned(to_integer(unsigned(reg_data_in(31 downto 2))) + empty_data_length - 1,32);

Нафиг бы такую строгую типизацию.

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

mv ★★★★★
()
Ответ на: комментарий от demidrol

вот только не надо про красоту. Отлаживать модуль с сотней-другой независимых процессов — это, извините, ппц. На VHDL практически любой модуль пишется в два процесса.

То есть захерачить весь код в две простыни это благо?

anonymous
()

Не читал, но рекомендую: Digital Integrated Circuit Design From VLSI Architectures to CMOS Fabrication

kike
()
Ответ на: комментарий от anonymous

То есть захерачить весь код в две простыни это благо?

ну вообще-то в VHDL есть и процедуры, и модульность. Но хрен бы с ними — главное, что мне кажется, — это строгая типизация. А проблемы со скоростью симуляции и синтеза на сегодняшних компах выглядят просто смешно. Главное — это отсутствие багов в конечном продукте. В софте-то вы его поправите, а в ASIC'е как?

demidrol ★★★★★
()

О, слышу знакомые слова!

Дружище, не подскажешь ли

1. Что там с поддержкой leon3 в qemu? все так же вылетает с трапами?

2. Как дела с модулями leon3cg и leon3s2x? Вроде как они есть в опенсорцной реализации, но примеров использования я так и не нашел, есть только отсылки к коммерческой версии.

demidrol ★★★★★
()
Ответ на: комментарий от demidrol

Главное — это отсутствие багов в конечном продукте. В софте-то вы его поправите, а в ASIC'е как?

Баги в ASIC правят драйверописатели :)

tailgunner ★★★★★
()
Ответ на: комментарий от demidrol

А проблемы со скоростью симуляции и синтеза на сегодняшних компах выглядят просто смешно.

Афигенно смешно. Из-за этого смеха каждый девелопер вынужден работать сразу над двумя-тремяи проектами, переключаясь между ними каждый раз, когда современный комп начал пыжиться очередные 4 часа.

mv ★★★★★
()
Ответ на: комментарий от demidrol

не самый удачный пример (с плавающей точкой, как я понимаю).

Нет.

На верилоге бы заняло пару-тройку процессов.

cpt_data_length_pres <= reg_data_in[31:2] + empty_data_length - 1;
mv ★★★★★
()
Ответ на: комментарий от mv

пардон, был пьян. Тот же пример ровно так же напишется и в VHDL, если юзать нормальные библиотеки (тот же grlib.stdlib).

demidrol ★★★★★
()
Ответ на: комментарий от mv

симуляция достаточно шустра, а вот да, я наблюдал за ПЛИСовиками - на ночь оставляют синтезиться )))

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

а в Verilog-е точно нет процессов, функций и всего того что ты пишешь? вот структуры например

Это вопрос?

По сабжу — пытался поковыряться как-то в Meiko FPU, ничего не понял и забил. С другой стороны, никакой особой монструозности VHDL на примере того же grlib не замечаю.

demidrol ★★★★★
()
Ответ на: комментарий от mv

Насколько я себе представляю проблему, реально сложная задача для симулятора — это когда в проекте до фига процессов (это ж нужно следить за списками чувствительности и прочее). А когда все написано в behavioral-стиле, то симуляция не такая уж и медленная.

Но синтезируется такое медлеено, согласен.

demidrol ★★★★★
()
23 октября 2012 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.