Подскажите, в чем особенность регистров?
И почему они стоят только на самом быстром кэше процессора?
Разве они должны стоять не в каждой ветке данных в ОЗУ перед выходом данных?
И к чему всё это, если к каждому элементу входа-выхода приходит контакт от частоты работы процессора?
Просто в книге было написано, что они для безопасности, в плане, чтобы данные точно и без ошибочно были переданы от входа на выход.
И уточнили, что их мало, пытался поискать в интернете, там на эти вопросы тоже не смогу ничего точного найти.
Подскажи, пожалуйста, так почему регистры нужны только в начале процессора, а после он может работать и без них?
Это те же регистры о которых речь идёт в ассемблере(когда-то читал и там в двух словах говорили, что есть такая вещь, как регистры, их мало, это всё, что вам стоить знать, идём дальше...), когда задаются значения?
Ingernirated: что значит в начале? Не может он без них работать. Возможно вы имеете ввиду DMA - когда процессор настраивает передачу данных, говорит "устройство A, забери из памяти 20 мегабайт по этому адресу". И тогда DMA-контроллер может передавать эти данные из/в память на/из устройства минуя процессор.
Ingernirated: D-триггер используется для синхронизации. Это более низкий уровень. Регистры это архитектура (логический элемент), а триггеры это уже схемотехника (физический элемент).
Да... и еще, горькая правда в том, что регистры таки построены, схемотехнически, на триггерах... и бывают весьма разные... бывают в виде микросхем, бывают внутри процессора (это - те, о которых в ассемблере). Короче, либо сам вопрос - ненавязчивый троллинг, либо нужно, как минимум, уточнить, в какой книге, в каком контексте и о каких регистрах идет речь. Иначе, ну просто совсен непонятно, что именно интересует ))
Ingernirated: Ну, так уже немного понятнее... глава - об устройстве счетчиков, используемых, в данном случае, в качестве делителя (частоты, например, тактовой). В данном примере - делителя на 3. Это значит, что на вход (CLK) должны поступить три импульса, чтоб на выходе (Y) появился один.
Но в чем конкретно заключается вопрос по этой главе и причем тут дороговизна регистров, кеш процессора, ОЗУ и все остальное? )))
pi314: ну, регистр это же два триггера, которые подключены последовательно?
так в чём проблема их производства?
и чем тогда регистр от кэша L1 уровня отличается?
Ingernirated: Если в первом приближении, то ячейка регистра отличается от ячейки L1 тем, что для храниения 1 бита регистра в железе применяется порядка 30 транзисторов, а L1 --- это SRAM, там ячейка в 1 бит это 6 транзисторов. Собственно, в этом и проблема производства: 6 транзисторов займут меньшую площадь на кристалле, чем 30.
marsianin: спасибо,
но разве, чем меньше транзисторов(путь электрона) тем не быстрее работает память?
А дальше с кэшем L2 и L3 ещё меньше транзисторов на байт памяти?
Или в регистрах так много транзисторов, потому что они хранят информацию о командах, а не просто 1 или 0, как кэш? Но всё ровно странно, что они быстрее тогда.
Ingernirated: это не так работает. Регистры так же как кэш хранят данные, но время прохождения сигнала через ячейку памяти влияет на быстродействие не так сильно. Вопрос в другом: регистров общего назначения в процессоре мало, и они адресуются непосредственно в командах. Поэтому доступ к ним быстрый. А для кэша такой подход не работает, кэш большой и доступ в нём ассоциативный, а не адресный, соответственно, нужен контроллер кэша, который будет искать в нём данные. Поэтому получение данных из L1 кэша длится в разы дольше, чем получение их из регистрового файла. Ячейки L2 и L3 могут быть построены и на том же принципе, что L1, но в силу большего размера этих кэшей в них тяжелее что-то найти.
marsianin:я извиняюсь, подскажи ещё, пожалуйста
Это схема МК SPI
NSS это переключатель, который срабатывает каждый такт, чтобы перевести MOSI в MISO для проверки правильности переданного бита?
И эти действия проверяют только 1 бит или весь байт?
1 такт это же передача 1 бита, а не байта данных?