Pull to refresh

Comments 8

Справедливости ради, ошибку «Pentium FDIV» обнаружила не Intel, а профессор Линчбургского колледжа Томас Найсли. А они о ней знали и молчали.
  1. А почему в регистрах процессора не используется DRAM — там ведь данные и так постоянно перезаписываются соответственно нет необходимости восстанавливать заряд конденсаторов DRAM?
  2. Имеет ли смысл в регистрах / памяти ядер процессора использовать рефлективную память чтобы ядро одно ядро могло писать/читать прямо из определённого сегмента памяти другого ядра что позволяет сильно упростить межъядерные коммуникации.

Осмелюсь предположить, что эти вопросы следует задавать автору оригинальной статьи и на английском. Это перевод.

1. DRAM нужно постоянно перезаряжать (т.е. надо какой-то контроллер, лишняя логика, лишние трассировочные линии, лишняя сложность). Регистр же не обязательно будет перезаписан так скоро, как разрядится конденсатор. Исторически DRAM (сейчас, вроде это преодолели, но сильно не проверял) требовала другой технологии изготовления, т.е. поместить вместе с логикой процессора ячейки DRAM на кристалле было технологически сложно.
2. Думаю, не имеет. Т.к. надо будет обеспечивать когерентность этого всего и будут опять предприняты все те же меры, что и для организации кэшей — т.е. сделать просто не получится. А если в процессоре ещё спекулятивное выполнение, то иногда придется отменять записи в эту рефлективную память, откатываться (или терять в скорости), в общем, сложность навернется ещё та. А чем не подходят существующие решения с общим для нескольких ядер кэшем?

Кармы мало. Поэтому просто Спасибо!!!

1 — тупо медленно. Можно довольно просто показать, что с уменьшением техпроцесса уменьшается как емкость конденсатора, который хранит значение в ячейке DRAM, так и ровно настолько же — допустимый ток в дорожке (который равен произведению заряда на время). В итоге время переключения (=реальная тактовая частота DRAM) остается примерно тем же самым, что и 30 лет назад. Ну, да, за эти годы снизили напряжения раза в три (заряд есть емкость умножить на напряжение), снизили разные побочные эффекты (это еще раза 2) — вот и весь рост. Все остальное исключительно эффект массивно-параллельности. Условный intel 286 на 16-25 МГц читал-писал по 16 бит за каждые 3-4 такта. В современной DDR4 каждый чип читает параллельно сразу 8192 ячейки (бита), на планке 8 чипов, в системе 2 планки (двухканальность) — т.е. память сразу читает и пишет кусками по 131072 бита (!!!) в небольшой кэш из операционных усилителей и SRAM-защелок в каждом чипе, а потом уже отдает данные процессору из этой SRAM. Но базовая частота памяти болтается в районе 100-133 МГц, и для действительно «произвольного» доступа вам все еще нужно ждать 3 такта на этой базовой частоте 100 МГц (записать предыдущую открытую строку, открыть колонку, открыть и прочитать строку).
согласен с выше перечисленными плюс хочу добавить что использовать DRAM ячейки скорее всего просто бессмысленно т.к. для регистров нужна многопортовая память, а много портовая память имеет 90% обвеса именно на сами порты записи и считывания. И поэтому становиться без разницы как именно хранится эти несколько тысяч бит. Даже если сэкономить до 10 тысяч транзисторов, то всё равно на долю обвеса потребуется пара сотен тысяч или миллионов — поэтому ВОЗМОЖНО бессмысленно совмещать два разных техпроцесса, подхода и структуры на одном кристалле.
1. DRAM — очень медленная память, требующая время на регенерацию и отдельные шаги обращения к памяти. Помните настройку таймингов в БИОС или значения таймингов в SPD? А регистровая память хоть и сверхбыстрая (построена на триггерах — запоминание состояния ячейки и быстрое переключение), но требует в неск. раз больше транзисторов, а уменьшение размера конденсаторов (по технормам изготовления процессора) сказывается на их свойствах.
2. Рефлективную память для межядерного (межпроцессорного) взаимодействия сложнее реализовать, т.к. при этом сложно будет реализовать синхронизацию и валидацию передаваемых данных, и немаленький объем рефлексивной памяти должен функционировать на частоте процессора. Хотя кэш 3-го уровня обычно является общим для ядер процессора, но это самый медленный кэш. И пока нет возможности сделать рефлективную память достаточного объема, работающую на частоте процессора.
Sign up to leave a comment.

Articles