**Основная память** - это единственный вид памяти, к которой ЦП может обращаться напрямую. Основную память образуют ЗУ с произвольным доступом. Основная память может включать в себя 2 типа ЗУ: ОЗУ и ПЗУ. **ОЗУ** допускает обе операции (и считывание, и запись), которые выполняются однотипно, практически с одной и той же скоростью и производятся с помощью электрических сигналов. ОЗУ - это энергозависимое устройство. **ПЗУ** обеспечивает считывание информации, но не ее изменение. Это энергонезависимое устройство. Ёмкость основной памяти современных вычислительных машин велика, поэтому ее организовывают на базе нескольких ИМС. Увеличение разрядности ЗУ реализуется за счет объединения адресных входов МС. Полученную совокупность МС называют **модулем памяти**. Один или несколько модулей памяти образуют **банк памяти**. Для получения требуемой ёмкости определенным образом объединяют несколько банков памяти меньшей ёмкости. При использовании блочной памяти, состоящей из $B$ банков, адрес ячейки $A$ преобразуется в пару $\{b,w\}$, где $b$ - номер банка, $w$ - адрес ячейки внутри банка. Известны 3 схемы распределения разрядов адреса $b$ и $w$: - **Блочная** - номер банка $b$ определяет старшие разряды адреса - **Циклическая** - $b=A\ mod\ B,\ w = A\ div\ B$ - **Блочно-циклическая** Рассмотрим основные схемы на примере памяти в 512 слов, построенной из 4 банков по 128 слов в каждом. ## Структура основной памяти на основе блочной схемы Адресное пространство памяти разбито на группы адресов, каждая группа обеспечивается своим банком. Для обращения к памяти используется 9-разрядный адрес $A_8...A_0$, причем 7 младших разрядов $A_0...A_6$ поступают параллельно во все банки памяти, и выбирают в каждом из банков 1 ячейку. 2 старших разряда $A_7, A_8$ содержат номер банка. Выбор банка обеспечивается либо с помощью дешифратора номера банка, либо путем мультиплексирования информации. Таким образом, память может рассматриваться как единое ЗУ, емкость которого равна суммарной емкости составляющих, а быстродействие равно быстродействию отдельного банка. ![Структура основной памяти на основе блочной схемы](../Pictures/04_01.%20Структура%20основной%20памяти%20на%20основе%20блочной%20схемы.png) ## Расслоение памяти (циклическая схема) Для увеличения скорости доступа придумали методику расслоения памяти, в основе которой лежит чередование адресов, заключающееся в изменении системы распределения адресов между банками памяти. Прием чередования адресов базируется на свойстве локальности по обращению. Чередование адресов обеспечивается за счет циклического разбиения адреса. Для выбора банка используется 2 младших разряда $A_0, A_1$, для выбора ячейки 7 старших разрядов $A_2...A_8$. Т. к. в каждом такте на шине адреса может присутствовать только адрес одной ячейки, то параллельное обращение к нескольким банкам невозможно. Однако, оно может быть организовано со сдвигом на 1 такт. Адрес ячейки запоминается в индивидуальном регистре адреса и дальнейшие операции по доступу к ячейке в каждом банке протекают независимо. При большом количестве банков среднее время доступа к памяти сокращается в $B$ раз, но при условии, что ячейки, к которым производится последовательное обращение, относятся к разным банкам. Если же запросы к одному и тому же банку следуют друг за другом, то каждый следующий запрос должен ожидать завершение предыдущей операции. Такая ситуация называется **конфликтом по доступу**. При частом возникновении конфликтов метод становится неэффективным. ![Расслоение памяти (циклическая схема)](../Pictures/04_02.%20Расслоение%20памяти,%20циклическая%20схема.png) ## Блочно-циклическая схема В блочно-циклической схеме каждый банк состоит из нескольких модулей, адресуемых по циклической схеме. Адреса между банками распределены по блочной схеме. Таким образом, адрес разбивается на 3 части: старшие биты определяют номер банка, следующая группа указывает на ячейку памяти в модуле, младшие биты выбирают модуль в банке. ![Блочно-циклическая схема](../Pictures/04_03.%20Блочно-циклическая%20схема.png) В многопроцессорных системах с общей памятью, где запросы на доступ достаточно независимы друг от друга, используется другой подход. В систему включают несколько контроллеров памяти, что позволяет отдельным банкам работать автономно.