Архитектуры SRAM

Автор работы: Пользователь скрыл имя, 29 Апреля 2012 в 08:06, курсовая работа

Краткое описание

Цель данной курсовой работы: анализ архитектуры SRAM. Начиная с первых 16-разрядных микросхем памяти; чипов памяти, применяемых в сегодняшних РС и перспективные направления развития статической памяти. Будут рассмотрены логическая организация памяти, быстродействие, синхронизация работы (по отношению к процессору), контроль чётности, режимы страничного доступа, расслоение ОЗУ на банки и пакетно - конвейерный режим.

Содержание

Введение 3
Глава 1 Архитектура SRAM 4
1.1 Устройство 4
1.1.1 В ядре 5
1.1.2 Устройство триггера 6
1.1.3 Устройство элемента "НЕ" (инвертора) 7
1.1.4 Устройство матрицы статической памяти 8
1.1.5 Устройство интерфейсной обвязки 10
1.1.6 Временные диаграммы чтения/записи 11
1.1.7 Цикл чтения 11
1.1.8 Цикл записи 12
1.2 Применение 13
Глава 2 SRAM в кэше 16
2.1 Виды кэша 16
2.1.1 Полностью ассоциативный кэш 16
2.1.2 Кэш с прямым отображением адресов 19
2.1.3 N-ассоциативный кэш 23
Заключение 28
Список используемой литературы 29

Вложенные файлы: 1 файл

Курсовая.docx

— 370.64 Кб (Скачать файл)

     Оглавление

Введение 3

Глава 1 Архитектура SRAM 4

    1.1 Устройство 4

    1.1.1 В ядре 5

    1.1.2 Устройство триггера 6

    1.1.3 Устройство элемента "НЕ" (инвертора) 7

    1.1.4 Устройство матрицы статической памяти 8

    1.1.5 Устройство интерфейсной обвязки 10

    1.1.6 Временные диаграммы чтения/записи 11

    1.1.7 Цикл чтения 11

    1.1.8 Цикл записи 12

    1.2 Применение 13

Глава 2 SRAM в кэше 16

    2.1 Виды кэша 16

    2.1.1 Полностью ассоциативный кэш 16

    2.1.2 Кэш с прямым отображением адресов 19

    2.1.3 N-ассоциативный кэш 23

Заключение 28

Список используемой литературы 29 
 

     Введение

     Цель  данной курсовой работы: анализ архитектуры  SRAM. Начиная с первых 16-разрядных микросхем памяти; чипов памяти, применяемых в сегодняшних РС и перспективные направления развития статической памяти. Будут рассмотрены логическая организация памяти, быстродействие, синхронизация работы (по отношению к процессору), контроль чётности, режимы страничного доступа, расслоение ОЗУ на банки и пакетно - конвейерный режим.

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

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

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

     Глава 1 Архитектура SRAM

     1.1 Устройство

     Статическая память — SRAM (Static Random Access Memory), как и следует из ее названия, способна хранить информацию в статическом режиме — то есть сколь угодно долго при отсутствии обращений (но при наличии питающего напряжения). Ячейки статической памяти реализуются на триггерах — элементах с двумя устойчивыми состояниями. По сравнению с динамической памятью эти ячейки более сложные и занимают больше места на кристалле, однако они проще в управлении и не требуют регенерации. Быстродействие и энергопотребление статической памяти определяется технологией изготовления и схемотехникой запоминающих ячеек[1].

     Асинхронная статическая память (Asynchronous SRAM, Async SRAM), она же обычная, или стандартная, подразумевается под термином SRAM по умолчанию, когда тип памяти не указан.

     Микросхемы  этого типа имеют простейший асинхронный  интерфейс, включающий шину адреса, шину данных и сигналы управления CS#, ОЕ# и WE#. Микросхема выбирается низким уровнем сигнала CS# (Chip select), низкий уровень сигнала ОЕ# (Output Enable) открывает выходные буферы для считывания данных, WE# (Write Enable) низким уровнем разрешает запись.

     При операции записи управление выходными буферами может производиться как сигналом ОЕ# (цикл 1), так и сигналом WE# (цикл 2). Для удобства объединения микросхем внутренний сигнал CS# может собираться по схеме «И» из нескольких внешних, например CSO#, CSt и CS2# — в таком случае микросхема будет выбрана при сочетании логических сигналов 0,1,0 на соответствующих входах.

     Время доступа — задержка появления действительных данных на выходе относительно момента установления адреса — у стандартных микросхем SRAM составляет 12,15 или 20 наносекунд, что позволяет процессору выполнять пакетный цикл чтения 2-1-1-1 (то есть без тактов ожидания) на частоте системной шины до 33 МГц. На более высоких частотах цикл будет не лучше 3-2-2-2.

     Синхронная  пакетная статическая память, Sync Burst SRAM, оптимизирована под выполнение пакетных (burst) операций обмена, свойственных кэш-памяти. В ее структуру введен внутренний двухбитный счетчик адреса (не позволяющий перейти границу четырехэлементного пакетного цикла). В дополнение к сигналам, характерным для асинхронной памяти (адрес, данные, CS#, OE# и WE#), синхронная память использует сигнал CLC (Clock) для синхронизации с системной шиной и сигналы управления пакетным циклом ADSP#, CADS* и ADV#. Сигналы CADS* (Cache ADdress Strobe) и ADSP# (ADdress Status of Processor), которыми процессор или кэш-контроллер отмечает фазу адреса очередного цикла, являются стробами записи начального адреса цикла во внутренний регистр адреса. Любой из этих сигналов инициирует цикл обращения, одиночный (single) или пакетный (burst), а сигнал ADV# (ADVance) используется для перехода к следующему адресу пакетного цикла. Все сигналы, кроме сигнала управления выходными буферами ОЕ#, синхронизируются по положительному перепаду сигнала CLK. Это означает, что значение входных сигналов должно установиться до перепада и удерживаться после него еще некоторое время. Выходные данные при считывании будут также действительны во время этого перепада. Микросхемы синхронной статической памяти, как и SDRAM, обычно имеют сигнал, выбирающий режим счета адреса: чередование {для процессоров Intel) или последовательный счет (для Power PC).

     1.1.1 В ядре

     Ядро  микросхемы статической оперативной  памяти (SRAM - Static Random Access Memory) представляет собой совокупность триггеров - логических устройств, имеющих два устойчивых состояния, одно из которых условно соответствует логическому нулю, а другое - логической единице. Другими словами, каждый триггер хранит один бит информации, - ровно столько же, сколько и ячейка динамической памяти[2].

     Между тем, триггер как минимум по двум позициям обыгрывает конденсатор: а) состояния  триггера устойчивы и при наличии  питания могут сохраняться бесконечно долго, в то время как конденсатор  требует периодической регенерации; б) триггер, обладая мизерной инертностью, без проблем работает на частотах вплоть до нескольких ГГц, тогда как  конденсаторы "сваливаются" уже  на 75-100 МГц.

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

     1.1.2 Устройство триггера

     В основе всех триггеров лежит кольцо из двух логических элементов "НЕ" (инверторов), соединенных по типу "защелки" (рисунок. 1). Рассмотрим, как он работает. Если подать на линию Q сигнал, соответствующий единице, то, пройдя сквозь элемент D.D1 он обратится в ноль. Но, поступив на вход следующего элемента, - D.D2 - этот ноль вновь превратится в единицу. Поскольку, выход элемента D.D2 подключен ко входу элемента D.D1, то даже после исчезновения сигнала с линии Q, он будет поддерживать себя самостоятельно, т.е. триггер перейдет в устойчивое состояние. Образно это можно уподобить дракону, кусающему себя за хвост[2].

     Естественно, если на линию Q подать сигнал, соответствующий логическому нулю, - все будет происходить точно так же, но наоборот!

     

     Рисунок 1. Устройство простейшего триггера.

     1.1.3 Устройство элемента "НЕ" (инвертора)

     Как устроен элемент "НЕ"? На этот вопрос нельзя ответить однозначно. В зависимости  от имеющейся у нас элементарной базы, конечная реализация варьируется  в очень широких пределах. Ниже в качестве примера приведена  принципиальная схема простейшего  инвертора, сконструированного из двух последовательно соединенных комплементарых /* взаимно дополняемых */ CMOS-транзисторов - p- и n- канального (рисунок. 2). Если на затворы подается нулевой уровень, то открывается только p-канал, а n-канал остается разомкнутым. В результате, на выходе мы имеем питающее напряжение (т. е. высокий уровень). Напротив, если на затворы подается высокий уровень, размыкается n-канал, а p-канал - замыкается. Выход оказывается закорочен на массу и на нем устанавливается нулевое напряжение (т. е. низкий уровень).

     

     Рисунок 2. Устройство элемента НЕ (инвертора).

     1.1.4 Устройство матрицы статической памяти

     Подобно ячейкам динамической памяти, триггеры объединяются в единую матрицу, состоящую  из строк (row) и столбцов (column), последние из которых так же называются битами (bit).

     В отличии от ячейки динамической памяти, для управления которой достаточно всего одного ключевого транзистора, ячейка статической памяти управляется  как минимум двумя. Это не покажется  удивительным, если вспомнить, что триггер, в отличии от конденсатора, имеет  раздельные входы для записи логического  нуля и единицы соответственно. Таким  образом, на ячейку статической памяти расходуется целых восемь транзисторов (рисунок 3) - четыре идут, собственно, на сам триггер и еще два - на управляющие "защелки"[1]. 

     

 

     Рисунок 3. Устройство 6-транзистроной одно-портовой ячейки SRAM-памяти.

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

     Этого ограничения лишена многопортовая  память. Каждая ячейка многопортовой  памяти содержит один-единственный триггер, но имеет несколько комплектов управляющих транзисторов, каждый из которых подключен к "своим" линиям ROW и BIT, благодаря чему различные ячейки матрицы могут обрабатываться независимо. Такой подход намного более прогрессивен, чем деление памяти на банки. Ведь, в последнем случае параллелизм достигается лишь при обращении к ячейкам различных банков, что не всегда выполнимо, а много портовая память допускает одновременную обработку любых ячеек, избавляя программиста от необходимости вникать в особенности ее архитектуры. (Замечание: печально, но кэш-память x86-процессор не истинно многопортовая, а состоит из восьми одно-портовых матриц, подключенных к двух портовой интерфейсной обвязке)

     Наиболее  часто встречается двух - портовая память, устройство ячейки (рисунок 4). (внимание! это совсем не та память которая, в частности, применяется в кэше первого уровня микропроцессоров Intel Pentium). Нетрудно подсчитать, что для создания одной ячейки двух - портовой памяти расходуется аж восемь транзисторов. Пусть емкость кэш-памяти составляет 32 Кб, тогда только на одно ядро уйдет свыше двух миллионов транзисторов!

     

     Рисунок 4. Устройство 8-транзистроной двух портовой ячейки SRAM-памяти.

Информация о работе Архитектуры SRAM