• Теплый ламповый звук
    +1
    Тут стоит добавить, что посадка «не до упора» приведет к увеличению паразитной индуктивности, что может плохо сказаться на вашем блоке питания. Для аудиоаппаратуры это не имеет значения — частоты не те, а высокочастотная электроника, потребляющая десятки ампер (например, типичный современный десктопный процессор) вам спасибо не скажет.
  • MMU в картинках (часть 1)
    +2
    Грубо говоря, таблица страниц — это структура данных, в которой содержатся сведения о том, по каким физическим адресам в памяти расположены виртуальные страницы (и расположены ли они вообще — они могут быть не в оперативке, а на диске), права доступа к ним и т.д.

    Только операционная система может добавлять или удалять записи из этой таблицы. Каждая запись соответствует одной странице, поэтому записей очень много и таблица занимает много места. Кроме как в оперативную память поместить ее некуда, т.к. ее размер может быть несколько мегабайт. TLB — это как кэш-память для этой огромной таблицы, TLB хранит несколько наиболее часто используемых записей.
  • MMU в картинках (часть 1)
    0
    Промахнулся :)
  • MMU в картинках (часть 1)
    0
  • MMU в картинках (часть 1)
    0
    Кэши в ARC 700 можно сконфигурировать как VIVT. Но вообще VIVT-кэши сейчас не очень-то популярны. А про более популярные варианты (PIPT и VIPT) будет в следующей части
  • MMU в картинках (часть 1)
    0
    ARMv4 и ARMv5 используют VIVT для кэшей команд и данных. ARMv8 (64-битные АРМы) допускает использование VIVT-кэша команд.
  • Железо на службе у алгоритма
    0
    Есть много суперскаляров, работающих на частоте порядка 1 ГГц и потребляющих гораздо меньше пяти ватт. ARM Cortex-A9, например.
  • Программная симуляция микропроцессора. Коробка передач
    +1
    Тема необходимости функциональных симуляторов не раскрыта. Я вот не очень представляю, кому они могут быть полезны. Вот к cycle-accurate симуляторам вопросов у меня нет — там тебе и сайд-эффекты от промахов кэша, и от неправильно предсказанных переходов, и от латентности памяти. Вот это симуляторы так симуляторы. Если они еще и работают хотя бы порядка на три быстрее, чем RTL-симуляторы, то цены им нет! А функциональные симуляторы — так, баловство (имхо, разумеется).
  • Железо на службе у алгоритма
    +1
    Пятиядерный тестовый чип 40нм на TSMC-шном шаттле ~ $40k. Делали в этом году, правда у нас корпоративная скидка.
  • Процессоры Intel для планшетов и смартфонов — планы на ближайшее будущее
    0
    Кто будет производить чип для «Value and Entry»? Global Foundries? :D И какой техпроцесс? Про это стыдливо умолчали
  • Правильно ли работает ваш дизассемблер?
    +1
    Это не ассемблер пострашнел, это система команд подурнела
  • Может ли быть слишком много автоматизации в самолете?
    0
    Еще B-767 разбился в Тайланде из-за самопроизвольного включения реверса в полете. Lauda Air, емнип.
  • Почему не растет частота?
    +1
    Ну и напоследок, увеличение частоты при переходе с 65 нм на 40/45нм:

    У Интела (Conroe/Wolfsdale: http://en.wikipedia.org/wiki/Core_(microarchitecture) ): 3 ГГц -> 3,33 ГГц (+11%)

    У ARC EM6: 350 МГц -> 540 МГц (+54%)
  • Почему не растет частота?
    +1
    Наверное, не совсем корректно сравнивать Low Power процессы c 28HP, поэтому вот данные по «быстрым» процессам из того же документа:
    — 90GP: 420 МГц (90нм — это как раз времена позднего Pentium 4)
    — 40GP: 770 МГц

    То есть только за счет перехода с 40 нм на 28 нм увеличение частоты составляет 16%.

    А вот данные по интеловским процам с одинаковой архитектурой (Nehalem/Westmere) и сопоставимыми техпроцессами (брал самую высокую частоту отсюда: en.wikipedia.org/wiki/List_of_Intel_Core_i7_microprocessors):
    45 нм: 3,33 ГГц
    32 нм: 3,47 ГГц (+4%)
  • Почему не растет частота?
    +1
    Рост частоты ограничен способностью корпуса микросхемы рассеивать тепло. До тех пор, пока это не проблема, как в случае с относительно маленькими кристаллами, частота действительно значительно растет при переходе на техпроцесс с меньшими нормами (при прочих равных условиях)!

    Вот циферки для процессора Synopsys ARC EM6 из официального даташита (http://www.synopsys.com/dw/doc.php/ds/cc/arc_em6.pdf), конфигурация процессора идентичная:

    65LP (Low Power): 350 МГц
    40LP: 540 МГц
    28HP: 900 МГц

    Этот процессор на 65-нм процессе занимает 0,04 мм2 и рассеивает 5 мВт. Очевидно, что такое мизерное тепловыделение никак не ограничивает рост частоты.

    В случае, когда кристалл значительно большего размера, именно тепловыделение играет решающую роль. Микросхема, изготовленная по техпроцессу 40LP с кристаллом площадью примерно 10 мм2, засунутым в пластиковый корпус размером 15х15мм, может работать без радиатора на 400 МГц. На 700 МГц ей нужен радиатор, и он уже весьма теплый.

    Что происходит, когда у вас кристалл в районе 100 мм2, работающий на частоте за 2 ГГц, можете догадаться сами. Поэтому частоту повышают на столько, сколько может выдержать корпус.

    Так что стадии конвейера тут не при чем. Мало того, имхо, именно проблемы с тепловыделением позволили вернуть длину конвейера к приличным значениям наперекор маркетологам.
  • ARM-ы для самых маленьких: который час?
    +4
    На самом деле у UART и SPI два входа тактовой частоты — один для системной частоты, второй для передачи данных. Дело в том, что и UART, и SPI висят на системной шине, соответственно каждый из них содержит контроллер этой шины, который просто обязан работать на той же частоте (и не просто на той же частоте, а точно от того же тактового сигнала). Передача же осуществляется на совсем другой частоте (которая, в общем случае, вовсе не кратна системной, и может вдобавок иметь произвольный сдвиг фазы). Поэтому внутри UART и SPI есть специальные синхронизаторы, которые обеспечивают надежную передачу данных из одной области синхронизации (clock domain) в другой.
  • Интерфейс JTAG? — Это очень просто
    +1
    JTAG — это действительно просто. То ли дело cJTAG (1149.7) — самый поганый стандарт, который я когда-либо читал.
  • ARM-ы для самых маленьких
    0
    Ок, спасибо за разъяснения. Стараюсь узнать наших конкурентов получше :)
  • ARM-ы для самых маленьких
    0
    Подождите. Вы говорите, что процессор «читает значение по адресу 0x00000004 и записывает его в PC (PC – регистр, который указывает на текущую инструкцию + 4 байта)». По адресу 0х4 у нас 0х69. Это не адрес текущей команды + 4, это адрес следующей команды!
  • ARM-ы для самых маленьких
    0
    В любом случае, фраза про то, что РС указывает на текущую инструкцию + 4 байта, не очень корректна. Скорее уж РС указывает на следующую команду.
  • ARM-ы для самых маленьких
    +1
    Пришлось гуглить. Итак, Cortex-M3 поддерживает только Thumb-2. Просто Thumb-2 — это надмножество Thumb.

    infocenter.arm.com/help/topic/com.arm.doc.faqs/ka13089.html
  • ARM-ы для самых маленьких
    0
    Мне казалось, что Thumb2 — это 32-битные и 16-битные команды вперемешку, и Cortex-M поддерживает только этот режим.
  • ARM-ы для самых маленьких
    +2
    Почему по адресу 0х4 лежит 0х69, а main начинается с 0х68?
  • Физика радиационных эффектов, влияющих на электронику в космосе
    0
    Доступ к IEEE Transactions on Nuclear Science у меня есть (к моему удивлению, оно включено в нашу корпоративную подписку). Спасибо за наводку, сам бы ни в жизнь туда не полез!
  • Физика радиационных эффектов, влияющих на электронику в космосе
    0
    Я могу вкратце перечислить, что было бы интересно мне:

    1. Резервирование on-chip: есть ли в нем вообще смысл, возможные варианты (троирование, lock-step, и т.д.), логические выкрутасы типа самодвойственной логики и т.д. Плюсы и минусы резервирования отдельных регистров/вентилей против резервирования блоков, и соответсвенно против резервирования микросхем или модулей.

    2. Помехоустойчивое кодирование: в случае кодов Хэмминга используется ли гражданское «обнаружение двух ошибок, исправление одной», или нечто большее? Опять же, добавляют ли защиту во все регистры, например между стадиями конвейера, или только в архитектурно видимые? Например, согласно Википедии, в «космическом» процессорном ядре LEON3-FT обеспечивается коррекция до четырех ошибок на 32-битное слово, но только в кэше и регистровом файле.

    Если у вас есть на примете какие-нибудь действительно хорошие статьи, был бы рад ссылкам (чтоб в ручную не перелопачивать выдачу гугла).
  • Физика радиационных эффектов, влияющих на электронику в космосе
    +1
    А статью про схемотехнические методы ждать? Или хотя бы сотню диссертаций?
  • Путешествие через вычислительный конвейер процессора
  • Прерывания в конвейеризированных процессорах
    +2
    АРМы бывают разные. Например, когда случается исключение в Cortex-M4, в регистр адреса возврата сохраняется адрес, который в конце обработчика нужно вручную уменьшить на 8 и записать в PC, если требуется повторить команду, и на 4, если команду повторять не нужно. То есть вполне возможно, что в явном виде АСК там нет. При этом точные прерывания этот процессор поддерживает (да даже ARM7TDMI поддерживает — например, к нему можно прикрутить внешний MMU).

    Интереснее было бы посмотреть на реализацию прерываний в Cortex-R или Cortex-A. Минимальная длина конвейера в этих процессорах — восемь стадий, в отличие от трехстадийных Cortex-M, и я не очень представляю, как они могли бы работать без АСК.
  • Прерывания в конвейеризированных процессорах
    +2
    На эту книжку у меня в статье ссылка, между прочим. А курс на Coursera был достойный, подтверждаю. Лично я сохранил его себе на память :)
  • Прерывания в конвейеризированных процессорах
    +2
    В этом вся проблема — она не готова, и я не уверен, что соберусь ее закончить. По крайней мере, не в формате статьи для Хабра точно.
  • Путешествие через вычислительный конвейер процессора
    0
    Конвейер в 486-ом вовсе не суперскалярный. Первый суперскаляр от Интел (не считая i960, который был несовместим с х86) — Pentium.
  • 1986ВЕ91Т: Что же внутри российского Арма?
    0
    Ну все же упомянуть синтез стоило. Это же краегольный камень, так сказать. А вдруг студент какой прочтет, да потом на экзамене ляпнет? Конфуз выйдет-с :)
  • 1986ВЕ91Т: Что же внутри российского Арма?
    0
    А в случае топографического синтеза (который дает гораздо лучшее совпадение результатов post-synthesis и post-layout, начиная то ли с 90нм, то ли с 65нм), Design Compiler и размеры ячеек использует.
  • 1986ВЕ91Т: Что же внутри российского Арма?
    0
    IC Compiler читает не верилог, а нетлист. Верилог в нетлист преобразует логический синтезатор, например Design Compiler. Соотвественно, именно он ходит в библиотеку за логическими функциями standard cell'ов. IC Compiler ходит в ту же библиотеку за физическими размерами ячеек.
  • Секреты кэш-памяти, или как потратить 1000 тактов на 10 команд
    0
    Это всего лишь мое мнение, я его никому не навязываю. В комментах привел несколько ссылок на интересные статьи. Читайте, думайте.
  • Секреты кэш-памяти, или как потратить 1000 тактов на 10 команд
    +1
    С тех пор, как прикрыли Гигапедию, с книгами тяжко :) Я бы рекомендовал начать вот с этого: AMBA 2 Specification. Это не книга, а спецификация, но написана очень понятно, много картинок, к тому же бесплатная (надо только зарегистрироваться). Если есть какой-никакой бэкграунд, хотя бы на уровне институтского курса по цифровой схемотехнике — разобраться не составит труда. Читать можно только про AHB и APB — они до сих пор актуальны, в отличие от ASB.

    Если есть возможность, можно полистать вот эти книжки: On-Chip Communication Architectures: System on Chip Interconnect или Networks on Chips: Technology and Tools
  • Секреты кэш-памяти, или как потратить 1000 тактов на 10 команд
    +1
    Разумеется, речь не идет про SRAM, висящий на внешней шине вместе с периферийными устройствами. С точки зрения процессора это такая же внешняя память, как какой-нибудь DDR, даже если физически она находится на том же кристалле. Даже если память сама по себе обеспечивает доступ за один такт, все равно будет дополнительная задержка в бридже между процессором и шиной, а также накладные расходы на арбитраж.

    CCM/TCM — совсем другое дело. Этот тип памяти фактически встроен в конвейер. Если в процессоре есть кэши, то CCM/TCM расположены бок о бок с ними, а не за ними, как SRAM на внешней шине. В процессоре с гарвардской архитектурой CCM/TCM для команд и данных раздельные, как и кэши. Кроме того, такая память может быть двухпортовой, и тогда процессор может читать из нее, скажем, команды, а DMA-контроллер одновременно может копировать в нее блок из внешней памяти.

    Вот несколько ссылок, которые были под рукой:
    Predictable Programming on a Precision Timed Architecture
    Software-based Instruction Caching for Embedded Processors
    An Optimal Memory Allocation Scheme for Scratch-Pad-Based Embedded Systems
  • Секреты кэш-памяти, или как потратить 1000 тактов на 10 команд
    +1
    «Write burst» — это не просто запись в ОЗУ, это пакетная запись в ОЗУ строки кэша для минимизации задержек на внешней шине процессора. Это настолько критично с точки зрения производительности, что все современные протоколы системных шин (те же AHB, AXI и т.д.) поддерживают специальные команды для записи/чтения строк кэша (так называемые «wrap bursts»), специально заточенные под режим «critical word first».

    Совершенно точно можно заставить кэш данных записать свое содержимое в ОЗУ при «write-back» стратегии, причем в некоторых случаях это можно сделать как для всего кэша целиком, так и для конкретной строки. Для этого в процессоре предусмотрены команды или управляющие регистры. Запись измененных данных из кэша в ОЗУ называется «cache flushing». Для х86 это делается так: stackoverflow.com/questions/1756825/cpu-cache-flush
  • Секреты кэш-памяти, или как потратить 1000 тактов на 10 команд
    +1
    Статья про конкретный кусок кода и его испонение процессором с кэшами. Про то, как реально происходят запросы в память и чего можно от них ожидать. Цели объяснять азы работы кэша я не ставил (благо ссылка на неплохую статью имеется в начале).

    «Write burst» показан на последнем рисунке слева — он происходит, пока сигнал «Писать» выставлен в единицу. «Write-back» — это как раз то, как работает мой абстрактный процессор (который работает так же, как один широко известный в узких кругах реальный процессор). Очевидно, что он может потребовать некоторых усилий от программиста, особенно если тот пишет драйвер или программу для многоядерной системы.
  • Секреты кэш-памяти, или как потратить 1000 тактов на 10 команд
    0
    С тем же успехом можно под полным программным контролем заливать нужные области памяти по DMA в on-chip SRAM, у которой латентность как раз один такт (такая память называется Scratchpad Memory, Closely Coupled Memory или Tightly Coupled Memory, как кличет ее ARM). На этот счет есть любопытные исследования, могу дать ссылок. В общем, варианты есть, и кэш не должен рассматриваться как панацея.