2016-08-18 11 views
0
  1. В чем преимущество деления памяти на банки?Почему память 8086 делится на нечетные и даже банки?

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

  3. Разделение памяти на банки физический или логический?

  4. Каким образом линии передачи данных связаны с памятью в случае четных и нечетных банков и в случае одной микросхемы?

ответ

1
  1. 8086 имеет 20-битовую адресацию модель для доступа к памяти. Каждый адрес представляет собой один байт, однако размер естественного слова 8086 равен 2 байтам, поэтому вам нужно прочитать два байта одновременно - следовательно, два банка. Основное преимущество здесь - упрощение - вам не нужен контроллер памяти, процессор напрямую обращается к данным из 8-битных модулей.

  2. Современные процессоры доступа к памяти в кусках, да. Это было не так, когда был разработан 8086 - процессор был достаточно медленным, чтобы латентность памяти не имела значения. Если у вас 8-битный модуль памяти, он дал вам 8 бит, и все. Более поздний 32-разрядный 486 может использовать либо четыре 8-битных банка, либо «небанковую» конфигурацию 32-битного модуля, и использовать как встроенный кеш памяти, так и конвейерную обработку команд - 8086 не имеет ни того, ни другого.

  3. Как физические, так и логические.

  4. В одном банке есть все нечетные байты, а другие - все четные байты в слове.

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

+0

Хорошо, что очищает немного, но как же на самом деле 8086 доступ к слову в одном обращении, говорят, что хочет байтов на 20000h и 20001H, то шина адреса будет 20000h, но как же тогда 20001H получить доступ в одном цикле? Также вы можете немного рассказать о 3-й точке? И, наконец, немного несвязанный, но как современный процессор получает доступ к памяти в кусках? Извините, если вопросы слишком глупы. – nino

+0

@nino Шина данных имеет ширину 16 бит. Один банк сопоставляется с битами 0-7, другой - с 8-15. Для обоих банков одинаковый адрес в 16-разрядном сценарии (для адресации используются только A1-19 бит, BHE и BLE - банк), поэтому при чтении памяти с 20000 часов вы получаете оба байта одновременно. Что бы вы хотели знать о 3? Современная система имеет гораздо более широкую шину данных, а модули памяти имеют свою собственную логику, которая позволяет им быстро отправлять несколько строк в последовательности, но полное описание очень легко найти и слишком долго, чтобы вписаться в поля здесь :) – Luaan

+0

, так что оба банка получат A1AA, то есть (0010 0000 0000 0000 000) в двоичном формате, если мы рассмотрим 20000H снова, и специальные контакты определит, какие банки включены для доступа, но я действительно не понял «адрес такой же для оба банка в 16-битном сценарии ", мы используем 19 бит нет? , о точке 3 я не понял, как разделение физическое и логическое – nino