Различие между кэш-памятью и регистром?

Каково различие между кэш-памятью и регистрами? Я знаю их по определению, но почему нам нужен другой, когда у нас есть кто-либо из них?

5
задан 05.12.2011, 01:15

4 ответа

Регистры:

  • Немногие в числе (обычно меньше чем 32)
  • Ограниченный в размере (32, 64, 80, 128 битов)
  • Единственные вещи, на которые может воздействовать большинство процессоров непосредственно (хотя x86/x86-64 размывает это немного),

Кэш:

  • Существующий (32 КБ +)
  • Больше в квантах (512 байтов или больше)
  • Не непосредственно доступный для операций (просто пул между ЦП и основным хранилищем)
11
ответ дан 07.12.2019, 16:51

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

2
ответ дан 07.12.2019, 16:51

Регистры управляемы, можно сохранить и получить информацию от них. Существуют очень немногие из них (на x86, по крайней мере), но очень быстро. Многие из них имеют очень конкретное использование (Указатель команд, Указатель базы, и т.д.) и не должны использоваться пользователем.

Кэш почти абсолютно неконтролируем. Можно делать недействительным его (INVD и привилегированные команды WBINVD), но Вы не можете явно сохранить или получить информацию от него. Это также помещается между памятью и ЦП, таким образом, Вы даже не знаете, работает ли это или нет, если Вы не делаете сравнения синхронизации. Это предназначается, чтобы быть абсолютно прозрачным в операциях. Кроме того, они могут быть иерархическими и довольно большими (сравнительно к регистрам, по крайней мере).

2
ответ дан 07.12.2019, 16:51

Таким образом, я предполагаю то, что Вы задаетесь вопросом, так как это все только что сохранило байты, почему выбирают некоторых из них как регистры и называют остальных кэшем?

Ну, это было некоторое время, так как я запрограммировал на PIC, но если я помню правильно, что PIC не различает "память" и "регистры", и называет всю свою память "регистрами"; они все совместно используют адресное пространство. Некоторые из них являются особым назначением для вещей как порты IO, но большинство - общая цель.

Действительно ли это - хорошая идея? Хорошо это - очевидно, не ужасное, потому что PIC является довольно успешным микроконтроллером. Но Вы видите, что это имело бы ограничения, когда Вы начинаете увеличиваться для добавления большей памяти и более быстрых часов. (Я не EE, так возьмите это с мелкой частицей соли). Преимущество для выбора нескольких конкретных регистров состоит в том, что они могут быть подключены к меньшему количеству вещей: все подключение проводов к схеме добавляет емкостную загрузку, которая замедляет его. На современной машине с килобайтами кэша, который был бы большой загрузкой для чего-то, Вы хотите получить доступ в основном к каждой инструкции. Я воображаю, там мог бы также стоить преимуществ, потому что Вы могли сделать регистры из широких, быстрых транзисторов и затем уменьшиться для кэша, который не должен быть столь же быстрым.

1
ответ дан 07.12.2019, 16:51

Теги

Похожие вопросы