Встроенная системная шина AMBA - OXFORDST.RU

Встроенная системная шина AMBA

Встроенная системная шина AMBA

  • Авиация и космонавтика
  • Административное право
  • Английский язык
  • Арбитражный процесс
  • Архитектура
  • Астрология
  • Астрономия
  • Банковское дело
  • Безопасность жизнедеятельности
  • Биографии
  • Биология
  • Биология и химия
  • Биржевое дело
  • Ботаника и сельское хозяйство
  • Бухгалтерский учет и аудит
  • Валютные отношения
  • Ветеринария
  • Военная кафедра
  • География
  • Геодезия
  • Геология
  • Геополитика
  • Государство и право
  • Государство и право
  • Гражданское право и процесс
  • Делопроизводство
  • Естествознание
  • Журналистика
  • Зарубежная литература
  • Зоология
  • Издательское дело и полиграфия
  • Инвестиции
  • Информатика
  • Информатика, программирование
  • Исторические личности
  • История
  • История техники
  • Кибернетика
  • Коммуникации и связи
  • Компьютерные науки
  • Косметология
  • Краткое содержание произведений
  • Кредитование
  • Криминалистика
  • Криминология
  • Криптология
  • Кулинария
  • Культура и искусство
  • Культурология
  • Логика
  • Логистика
  • Маркетинг
  • Математика
  • Медицина
  • Медицинские науки
  • Международное публичное право
  • Международное частное право
  • Международные отношения
  • Менеджмент
  • Металлургия
  • Москвоведение
  • Музыка
  • Муниципальное право
  • Налогообложение
  • Наука и техника
  • Начертательная геометрия
  • Новейшая история, политология
  • Оккультизм и уфология
  • Остальные рефераты
  • Педагогика
  • Полиграфия
  • Политология
  • Право
  • Предпринимательство
  • Промышленность, производство
  • Психология
  • Психология, педагогика
  • Радиоэлектроника
  • Реклама
  • Религия и мифология
  • Риторика
  • Сексология
  • Социология
  • Сочинения по литературе и русскому языку
  • Статистика
  • Страхование
  • Строительные науки
  • Строительство
  • Схемотехника
  • Таможенная система
  • Теория организации
  • Теплотехника
  • Технология
  • Товароведение
  • Транспорт
  • Трудовое право
  • Туризм
  • Уголовное право и процесс
  • Управление
  • Управленческие науки
  • Уфология
  • Физика
  • Физкультура и спорт
  • Философия
  • Финансовые науки
  • Финансы
  • Фотография
  • Химия
  • Хозяйственное право
  • Цифровые устройства
  • Экологическое право
  • Экология
  • Экономика
  • Экономико-математическое моделирование
  • Экономическая география
  • Экономическая теория
  • Эргономика
  • Этика
  • Юридические науки
  • Юриспруденция
  • Языковедение
  • Языкознание, филология

Под приборами класса «система-на-кристалле», в общем случае, подразумеваются приборы на едином кристалле которых интегрированы процессор (процессоры, в том числе специализированные), некоторый объем памяти, ряд периферийных устройств и интерфейсов — т.е. максимум того, что необходимо для решения задач, поставленных перед системой. Фирмой ARM, кроме уже упоминавшихся ядер семейств ARM7 и ARM7TDMI и ряда семейств, которые будут рассматриваться ниже, разработан набор макроячеек периферийных компонентов, которые фирма на основе лицензионных соглашений предоставляет заказчикам. Периферийные компоненты фирмы ARM, библиотека которых получила наименование PrimeCell, представляют собой готовые к применению отработанные программные макроячейки, при разработке которых обращалось внимание на возможность многократного их использования, и применяя PrimeCell периферию разработчик существенно экономит время и стоимость разработки за счет концентрации усилий на создании именно системы на кристалле, а не на разработке сначала необходимой периферии и лишь затем системы. В настоящее время в библиотеку входят: UART, контроллеры SDRAM, синхронные последовательные интерфейсы, часы реального времени, аудио кодеки, средства I/O общего назначения, интерфейсы смарт карт, контроллеры цветных LCD. Ведутся работы по дальнейшему расширению библиотеки.

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

При рассмотрении макроядер ARM710T, ARM720T и ARM740T была упомянута шина AMBA (Advanced Microcontroller Bus Architecture) — шина разработанная фирмой ARM для организации эффективного взаимодействия компонентов приборов, построенных на базе ядер фирмы. Шина AMBA — стандартная встроенная ASIC шина обеспечивающая быстрое модульное проектирование систем при упрощении многократного использования схемотехники и тестов. ARM также обеспечивает возможность использования библиотеки PrimeCell периферии, которая соответствует AMBA стандарту и обеспечивают простую разработку ASIC и ASSP. При использовании AMBA с синтезируемыми версиями периферийных устройств, аппаратные средства системы и программное обеспечение могут быть разработаны на начальном этапе проектирования и, следовательно, может быть снижен риск ошибок проектирования конечной системы.

Блок-схема шины AMBA в прибора типа персонального информационного устройства (PDA), реализованного на основе ядра ARM, макроячеек библиотеки PrimeCell и шины AMBA, представлен на Рис. 1.

Рис. 1. Пример прибора класса «система-на-кристалле», использующего шину AMBA

Типовая шина AMBA содержит системную шину (в данном случае AHB) и шину периферии (APB).

Системная шина соединяет встраиваемые процессоры, такие как ARM ядра, с высокопроизводительной периферией, контроллерами DMA, встроенными памятью и интерфейсами. Это высокоскоростная, с широкой полосой пропускания шина, поддерживающая, для обеспечения максимальной производительности, управление c большим количеством ведущих устройств (Multi-master bus management).

Шина периферии — работает с упрощенным протоколом и разработана для организации интерфейса с периферийными устройствами общего назначения или дополнительными периферийными устройствами. С cистемной шиной она соединяется через мост (bridge), способствующий снижению потребления системы.

В спецификации шины AMBA определена методология тестирования, обеспечивающая быстрое тестирование модулей и кэш.

ARM Cortex-M4: внешняя шина, smc #5

Параллельный интерфейс микроконтроллеров, известный как EBI , используется почти во всех проектах с TFT дисплеями, внешней памятью и т.п. Он обладает высокой скоростью передачи и большим адресуемым объемом.

Теория

Про параллельный интерфейс я писал ранее и затронул конкретное семейство контроллеров SAM3X . Он ничуть не изменился: шина данных, шина адреса и пара управляющих сигналов.

Все задержки, как правило, настраиваются под конкретное устройство. Максимальная ширина шины данных: 16бит, а ширина адреса: 24бит — это позволяет адресовать 32МБайта. Кстати, многие считают этот интерфейс асинхронным, однако нам ничего не мешает использовать PCK для генерации тактовой частоты в порт.

Устройство

Внешняя шина управляется контроллером SMC, который фактически выводит наружу внутренние линии связи между ЦП и периферией.

Контроллер разбит на четыре канала, каждый из которых настраивается отдельно. Он предоставляет нам полноценных шины адреса и данных, а также ряд управляющих:

  • NRD — сигнал чтения. [выход]
  • NWE — сигнал записи. [выход]
  • NCS[3:0] — четыре линии выборки устройства, привязанных к каналам. [выход]
  • NWAIT — сигнал ожидания от устройства. [вход]

Первое, с чего нужно начать: включить систему тактирования:

Одним из основных регистров SMC является SMC_MODE , задающий следующие параметры.

Параметр Описание
SMC_MODE_DBW_8_BIT Инициализация шины данных 8бит
SMC_MODE_DBW_16_BIT Инициализация шины данных 16бит
SMC_MODE_WRITE_MODE Использовать сигнал NWE
SMC_MODE_READ_MODE Использовать сигнал NRD
SMC_MODE_EXNW_MODE_FROZEN Сигнал WAIT будет останавливать передачу
SMC_MODE_EXNW_MODE_READY Сигнал WAIT будет завершать передачу

Для стандартной инициализации интерфейса с шириной шины данных 8бит на канале CS0 код будет следующий:

SMC0->SMC_WPMR = 0x534D43; //Очень черная магия SMC0->SMC_CS_NUMBER[0].SMC_MODE = SMC_MODE_DBW_8_BIT | SMC_MODE_WRITE_MODE | SMC_MODE_READ_MODE;

Вы можете использовать всю шину 16бит, но это не увеличит скорость передачи точно в два раза. Возникает проблема выравнивая данных.

Сигнал WAIT , в частности его режим FROZEN , может очень помочь, если ваше устройство не может постоянно работать на шине. Достаточно установить 0 на линии, и передача приостановится.

Следующим регистром настройки будет SMC_CYCLE , который устанавливает количество тактов MCLK для записи или чтения 1-ед. данных.

Параметр (Atmel Studio) Описание
SMC_CYCLE_NRD_CYCLE(x) x — циклы чтения
SMC_CYCLE_NWE_CYCLE(x) x — циклы записи

Если ваше устройство — SRAM, то необходимо смотреть параметр taa на чтение и запись, а затем разделить его на период тактовой частоты. Почти для всех 10ns SRAM и частоте контролера > 100MHz подойдет следующая конфигурация:

SMC0->SMC_CS_NUMBER[0].SMC_CYCLE = SMC_CYCLE_NRD_CYCLE(4) | SMC_CYCLE_NWE_CYCLE(2);

Вы можете заметить, что циклы чтения в два раза больше циклов записи — это связано с тем, что данные от SRAM приходят не сразу, а через определенное время: при единичном чтении — это проблема.

Читайте также  Дорожно-строительные машины: экскаваторы

Регистры SMC_SETUP и SMC_PULSE задают длительности и задержки управляющих сигналов.

SMC_SETUP (Atmel Studio) Значение
SMC_SETUP_NRD_SETUP(x) x — циклы до установки NRD
SMC_SETUP_NCS_RD_SETUP(x) x — циклы до установки CS и NRD
SMC_SETUP_NWE_SETUP(x) x — циклы до установки NWE
SMC_SETUP_NCS_WE_SETUP(x) x — циклы до установки CS и NWE
SMC_PULSE (Atmel Studio) Значение
SMC_PULSE_NRD_PULSE(x) x — длина импульса NRD
SMC_PULSE_NCS_RD_PULSE(x) x — длина импульса NCS и NRD
SMC_PULSE_NWE_PULSE(x) x — длина импульса NWE
SMC_PULSE_NCS_WE_PULSE(x) x — длина импульса NCS и NWE

Здесь вам необходимо внимательно просмотреть документацию на SRAM или что-то другое. Диаграмма сигналов для чтения выглядит точно так же.

Заметьте, что всегда должно выполнятся условие: xcycle = 1 + xpulse + xsetup И в основном, 10-12ns SRAM не требуют ожидания перед установкой сигналов:

SMC0->SMC_CS_NUMBER[0].SMC_SETUP = SMC_SETUP_NCS_RD_SETUP(0) | SMC_SETUP_NCS_WR_SETUP(0) | SMC_SETUP_NRD_SETUP(0) | SMC_SETUP_NWE_SETUP(0); SMC0->SMC_CS_NUMBER[0].SMC_PULSE = SMC_PULSE_NCS_RD_PULSE(3) | SMC_PULSE_NCS_WR_PULSE(1) | SMC_PULSE_NRD_PULSE(3) | SMC_PULSE_NWE_PULSE(1);

Кстати, если вам необходимо только передавать данные во внешнее устройство или только принимать, можете не устанавливать биты WRITE_MODE или READ_MODE , тогда всеми операциями будет руководить CS сигнал.

Подключение

Внешним устройством может быть как и SRAM, так вообще все, что угодно. (ПЛИС, например) От выбранной ширины шины данных зависит способ подключения:

Заметьте, что при использовании 16бит интерфейса добавляется еще один сигнал: NBS1 . Благодаря ему и A0 у нас будет возможность по-байтово работать с данными и не выравнивать их. Сигналы: WE , RD , CS , WAIT — инверсные.

Настройка портов

Как и для всей периферии, в ARM нужно настроить PIO для каждого канала, а линий там куча. Я вывел все необходимое на отладочной плате:

Инициализация портов довольно трудоемкое дело. Я приложил файл здесь.

Использование

Нам остается просто объявить указатель на тот или иной канал:

uint8_t* ptr = (uint8_t*)EBI_CS0_ADDR;

За константой скрывается адрес 0x60000000 — это наше внешнее устройство. Пользуемся как хотим .

Проверка

Хочу заметить, что параллельный интерфейс находится в адресном пространстве МК также на правах памяти, поэтому с ним можно работать как с массивом/переменной, использовать функции memcpy и даже исполнять оттуда код.

Но я возьму довольно простой пример: подключить к нему Delta-Sigma ЦАП, созданный на ПЛИС. Задача проста: нам нужно отправлять сэмплы PCM файла ЦАП-у с заданной частотой дискретизации.
Здесь нам даже не понадобиться тактовый сигнал и вся шина адреса. Со стороны МК требуется отправлять сэмплы по прерыванию таймера.

#include #include «snd.h» #include uint8_t *au = (uint8_t*)EBI_CS1_ADDR; //ЦАП висит на CS1 uint32_t i = 0; //. //. initPIO(); PMC->PMC_PCER0 = PMC_PCER0_PID10 | PMC_PCER0_PID23; //Включаем SMC и TC0 SMC0->SMC_WPMR = 0x534D43; //Настраиваем SMC SMC0->SMC_CS_NUMBER[1].SMC_CYCLE = SMC_CYCLE_NRD_CYCLE(4) | SMC_CYCLE_NWE_CYCLE(2); SMC0->SMC_CS_NUMBER[1].SMC_PULSE = SMC_PULSE_NCS_RD_PULSE(3) | SMC_PULSE_NCS_WR_PULSE(1) | SMC_PULSE_NRD_PULSE(3) | SMC_PULSE_NWE_PULSE(1); SMC0->SMC_CS_NUMBER[1].SMC_SETUP = SMC_SETUP_NCS_RD_SETUP(0) | SMC_SETUP_NCS_WR_SETUP(0) | SMC_SETUP_NRD_SETUP(0) | SMC_SETUP_NWE_SETUP(0); SMC0->SMC_CS_NUMBER[1].SMC_MODE = SMC_MODE_DBW_8_BIT | SMC_MODE_WRITE_MODE | SMC_MODE_READ_MODE; TC0->TC_WPMR = 0x54494D; //Настраиваем таймер на частоту 22.5кГц TC0->TC_CHANNEL[0].TC_CCR = TC_CCR_CLKDIS; TC0->TC_CHANNEL[0].TC_CMR = TC_CMR_TCCLKS_TIMER_CLOCK1 | TC_CMR_WAVE | TC_CMR_WAVSEL_UP_RC | TC_CMR_CPCTRG; TC0->TC_CHANNEL[0].TC_RC = 2500; //? TC0->TC_CHANNEL[0].TC_RA = 0; TC0->TC_CHANNEL[0].TC_RB = 0; TC0->TC_CHANNEL[0].TC_IER = TC_IER_CPCS; TC0->TC_CHANNEL[0].TC_CCR = TC_CCR_CLKEN; TC0->TC_CHANNEL[0].TC_CCR = TC_CCR_SWTRG; NVIC_EnableIRQ(TC0_IRQn);

На 120MHz вы должны услышать музыку. Обработчик:

void TC0_Handler(void) < au[0] = sound[i]; ++i; if (i>sizeof(sound)) i=0; register uint32_t dummy; dummy = TC0->TC_CHANNEL[0].TC_SR; (void) dummy ; >

Файл с PCM можно взять здесь. Работа системы продемонстрирована на видео ниже:

Это, пожалуй, не лучшее использование EBI интерфейса. Его ниша — внешняя SRAM, процессоры-обработчики, TFT дисплеи. Я же пробовал подключать к нему одновременно видеопроцессор и FPGA, результатом я оказался доволен. Развитие системы может несомненно продолжаться!

ATSAM4 пересылает в видеопроцессор спрайты и т.п по кадровому синхроимпульсу. А в FPGA почти постоянно, в ней находится FIFO. Вся система работает без DMA, потому как у SAM4C его нет Вместо него я использую модифицированную функцию memcpy.

Усовершенствованная архитектура шины микроконтроллера

Усовершенствованная архитектура шины микроконтроллера ARM ( AMBA ) — это внутренняя спецификация межсоединений с открытым стандартом для подключения и управления функциональными блоками в проектах системы на кристалле (SoC). Это облегчает разработку многопроцессорных конструкций с большим количеством контроллеров и компонентов с шинной архитектурой . С момента своего создания AMBA, несмотря на название, вышла далеко за рамки микроконтроллерных устройств. Сегодня AMBA широко используется в ряде частей ASIC и SoC, включая процессоры приложений, используемых в современных портативных мобильных устройствах, таких как смартфоны . AMBA является зарегистрированным товарным знаком компании ARM Ltd . [1]

AMBA была представлена ​​ARM в 1996 году. Первыми шинами AMBA были Advanced System Bus (ASB) и Advanced Peripheral Bus (APB). Во второй версии AMBA 2 в 1999 году ARM добавила высокопроизводительную шину AMBA (AHB), которая представляет собой протокол с одним фронтом тактовой частоты. В 2003 году ARM представила третье поколение AMBA 3, включая Advanced eXtensible Interface (AXI) для достижения еще более высокой производительности межсоединений и Advanced Trace Bus (ATB) как часть встроенного решения CoreSight для отладки и трассировки. В 2010 году были представлены спецификации AMBA 4, начиная с AMBA 4 AXI4, а затем в 2011 году [2], расширяющие общесистемную согласованность с помощью AMBA 4 AXI Coherency Extensions (ACE). В 2013 году [3] была представлена ​​спецификация AMBA 5 Coherent Hub Interface (CHI) с переработанным высокоскоростным транспортным уровнем и функциями, предназначенными для уменьшения перегрузки.

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

СОДЕРЖАНИЕ

  • 1 Принципы проектирования
  • 2 спецификации протокола AMBA
    • 2.1 Расширения когерентности AXI (ACE и ACE-Lite)
    • 2.2 Расширенный расширяемый интерфейс (AXI)
    • 2.3 Расширенная высокопроизводительная шина (AHB)
    • 2.4 Расширенная периферийная шина (APB)
  • 3 продукта AMBA
  • 4 Конкуренты
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки

Принципы дизайна [ править ]

Важным аспектом SoC является не только то, какие компоненты или блоки в нем находятся, но и то, как они соединяются между собой. AMBA — это решение для взаимодействия блоков друг с другом.

Целью спецификации AMBA является:

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

Спецификации протокола AMBA [ править ]

Спецификация AMBA определяет внутрикристальный коммуникационный стандарт для разработки высокопроизводительных встроенных микроконтроллеров. Он поддерживается ARM Limited с широким участием представителей разных отраслей.

Спецификация AMBA 5 определяет следующие шины / интерфейсы:

  • Спецификация протоколов AXI5, AXI5-Lite и ACE5
  • Усовершенствованная высокопроизводительная шина (AHB5, AHB-Lite)
  • Когерентный интерфейс концентратора (CHI) [3]
  • Распределенный интерфейс перевода (DTI)
  • Универсальная шина флэш-памяти (GFB)

Спецификация AMBA 4 определяет следующие шины / интерфейсы:

  • Расширения когерентности AXI (ACE) — широко используются в новейших процессорах ARM Cortex-A, включая Cortex-A7 и Cortex-A15
  • Расширения AXI Coherency Extensions Lite (ACE-Lite)
  • Расширенный расширяемый интерфейс 4 (AXI4)
  • Расширенный расширяемый интерфейс 4 Lite (AXI4-Lite)
  • Расширенный расширяемый интерфейс 4 потока (AXI4-Stream v1.0)
  • Расширенная шина трассировки (ATB v1.1)
  • Расширенная периферийная шина (APB4 v2.0)
  • Интерфейсы с низким энергопотреблением AMBA (Q-канал и P-канал)
Читайте также  Как образуется роса

Спецификация AMBA 3 определяет четыре шины / интерфейса:

  • Расширенный расширяемый интерфейс (AXI3 или AXI v1.0) — широко используется на процессорах ARM Cortex-A, включая Cortex-A9
  • Расширенная высокопроизводительная шина Lite (AHB-Lite v1.0)
  • Расширенная периферийная шина (APB3 v1.0)
  • Расширенная шина трассировки (ATB v1.0)

Спецификация AMBA 2 определяет три шины / интерфейса:

  • Расширенная высокопроизводительная шина (AHB) — широко используется в проектах на базе ARM7, ARM9 и ARM Cortex-M
  • Расширенная системная шина (ASB)
  • Расширенная периферийная шина (APB2 или APB)

Спецификация AMBA (первая версия) определяет две шины / интерфейса:

  • Расширенная системная шина (ASB)
  • Расширенная периферийная шина (APB)

Аспекты синхронизации и уровни напряжения на шине не определяются спецификациями.

Расширения когерентности AXI (ACE и ACE-Lite) [ править ]

ACE , определенный как часть спецификации AMBA 4, расширяет AXI дополнительной сигнализацией, вводя общесистемную согласованность. [4] Эта системная согласованность позволяет нескольким процессорам совместно использовать память и использовать такие технологии, как обработка big.LITTLE в ARM . Протокол ACE-Lite обеспечивает одностороннюю согласованность операций ввода-вывода, например, сетевой интерфейс, который может считывать данные из кэшей полностью согласованного процессора ACE.

Расширенный расширяемый интерфейс (AXI) [ править ]

AXI , третье поколение интерфейса AMBA, определенное в спецификации AMBA 3, ориентировано на высокопроизводительные конструкции систем с высокой тактовой частотой и включает функции, которые делают его подходящим для высокоскоростных субмикрометрических соединений:

  • отдельные этапы адреса / управления и данных
  • поддержка передачи невыровненных данных с использованием байтовых стробов
  • пакетные транзакции с выданным только начальным адресом
  • выдача нескольких невыполненных адресов с неупорядоченными ответами
  • простое добавление этапов реестра для обеспечения закрытия по времени.

Усовершенствованная высокопроизводительная шина (AHB) [ править ]

AHB это протокол шины введен в Advanced Микроконтроллер Bus Architecture версии 2 , опубликованной ARM Ltd компании.

В дополнение к предыдущему выпуску он имеет следующие функции:

  • большая ширина шины (64/128/256/512/1024 бит).

Простая транзакция на AHB состоит из фазы адресации и последующей фазы данных (без состояний ожидания: только два цикла шины). Доступ к целевому устройству контролируется через MUX (без трех состояний), тем самым разрешая доступ к шине только одному мастеру шины за раз.

AHB-Lite — это подмножество AHB, официально определенное в стандарте AMBA 3. Это подмножество упрощает конструкцию шины с одним ведущим устройством.

Расширенная периферийная шина (APB) [ править ]

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

Продукты AMBA [ править ]

Семейство синтезируемых ядер интеллектуальной собственности ( IP ) AMBA Products лицензируется ARM Limited, которые реализуют цифровую шину в SoC для эффективного перемещения и хранения данных с использованием спецификаций протокола AMBA. Семейство AMBA включает в себя сетевое соединение AMBA (CoreLink NIC-400), Cache Coherent Interconnect (CoreLink CCI-500), контроллеры памяти SDRAM (CoreLink DMC-400), контроллеры DMA (CoreLink DMA-230, DMA-330), кэш 2-го уровня. контроллеры (L2C-310) и др.

Ряд производителей используют автобусы AMBA для конструкций, не относящихся к ARM. В качестве примера Infineon использует шину AMBA для SoC ADM5120 на основе архитектуры MIPS .

Современные внутренние шины – смена приоритетов!

Среди наиболее динамично развивающихся областей компьютерной техники стоит отметить сферу технологий передачи данных: в отличие от сферы вычислений, где наблюдается продолжительное и устойчивое развитие параллельных архитектур, в «шинной» 1 сфере, как среди внутренних, так и среди периферийных шин, наблюдается тенденция перехода от синхронных параллельных шин к высокочастотным последовательным. (Заметьте, «последовательные» – не обязательно значит «однобитные», здесь возможны и 2, и 8, и 32 бит ширины при сохранении присущей последовательным шинам пакетной передачи данных, то есть в пакете импульсов данные, адрес, CRC и другая служебная информация разделены на логическом уровне 2 ).

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

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

2 Основным отличием параллельных шин от последовательных является сам способ передачи данных. В параллельных шинах понятие «ширина шины» соответствует её разрядности – количеству сигнальных линий, или, другими словами, количеству одновременно передаваемых («выставляемых на шину») битов информации. Сигналом для старта и завершения цикла приёма/передачи данных служит внешний синхросигнал. В последовательных же каналах передачи используется одна сигнальная линия (возможно использование двух отдельных каналов для разделения потоков приёма-передачи). Соответственно, информационные биты здесь передаются последовательно. Данные для передачи через последовательную шину облекаются в пакеты (пакет – единица информации, передаваемая как целое между двумя устройствами), в которые, помимо собственно полезных данных, включается некоторое количество служебной информации: старт-биты, заголовки пакетов, синхросигналы, биты чётности или контрольные суммы, стоп-биты и т. п. Но в свете последних достижений в «железной» сфере компьютерной индустрии малое количество сигнальных линий и логически более сложный механизм передачи данных последовательных шин оборачиваются для них существенным преимуществом – возможностью практически безболезненного наращивания рабочих частот в таких пределах, каких никогда не достичь громоздким параллельным шинам с их высокочастотными проблемами ожидания доставки каждого бита к месту назначения. Проблема в том, что каждая линия такой шины имеет свою длину, свою паразитную ёмкость и индуктивность и, соответственно, своё время прохождения сигнала от источника к приёмнику, который вынужден выжидать дополнительное время для гарантии получения данных по всем линиям. Так, к примеру, каждый байт, передаваемый через линк шины PCIExpress, для увеличения помехозащищённости «раздувается» до 10 бит, что, однако, не мешает шине передавать до 0,25 ГБ за секунду по одной паре проводов. Да, ширина последовательной шины на самом деле является количеством одновременно задействованных отдельных последовательных каналов передачи.

Все эти нововведения и смена приоритетов преследуют в конечном итоге одну цель – повышение суммарного быстродействия системы, ибо не все существующие архитектурные решения способны эффективно масштабироваться. Несоответствие пропускной способности шин потребностям обслуживаемых ими устройств приводит к эффекту «бутылочного горлышка» и препятствует росту быстродействия даже при дальнейшем увеличении производительности вычислительных компонентов – процессора, оперативной памяти, видеосистемы и так далее.

Процессорная шина

Любой процессор архитектуры x86CPU обязательно оснащён процессорной шиной. Эта шина служит каналом связи между процессором и всеми остальными устройствами в компьютере: памятью, видеокартой, жёстким диском и так далее. Так, классическая схема организации внешнего интерфейса процессора (используемая, к примеру, компанией Intel в своих процессорах архитектуры х86) предполагает, что параллельная мультиплексированная процессорная шина, которую принято называть FSB (Front Side Bus), соединяет процессор (иногда два процессора или даже больше) и контроллер, обеспечивающий доступ к оперативной памяти и внешним устройствам. Этот контроллер обычно называют северным мостом , он входит в состав набора системной логики ( чипсета ).

Читайте также  Влияние урбанизации на биосферу. Охрана биосферы

Используемая Intel в настоящее время эволюция FSB – QPB , или Quad-Pumped Bus, способна передавать четыре блока данных за такт и два адреса за такт! То есть за каждый такт синхронизации шины по ней может быть передана команда либо четыре порции данных (напомним, что шина FSB–QPB имеет ширину 64 бит, то есть за такт может быть передано до 4х64=256 бит, или 32 байт данных). Итого, скажем, для частоты FSB, равной 200 МГц, эффективная частота передачи адреса для выборки данных будет эквивалентна 400 МГц (2х200 МГц), а самих данных – 800 МГц (4х200 МГц) 3 .

3 Кстати, именно результирующей «учетверённой» частотой передачи данных (как и в случае с «удвоенной» передачей DDR-шины, где данные передаются дважды за такт) хвастаются производители и продавцы, умалчивая тот факт, что для многочисленных мелких запросов, где данные в большинстве своём умещаются в одну 64-байтную порцию (и, соответственно, не используются возможности DDR или QDR/QPB), на чтение/запись важнее именно частота тактирования.

В архитектуре же AMD64 (и её микроархитектуре K8), используемой компанией AMD в своих процессорах линеек Athlon 64/Sempron/Opteron, применён революционно новый подход к организации интерфейса центрального процессора – здесь имеет место наличие в самом процессоре нескольких отдельных шин. Одна (или две – в случае двухканального контроллера памяти) шина служит для непосредственной связи процессора с памятью, а вместо процессорной шины FSB и для сообщения с другими процессорами используются высокоскоростные шины HyperTransport. Преимуществом данной схемы является уменьшение задержек (латентности) при обращении процессора к оперативной памяти, ведь из пути следования данных по маршруту «процессор – ОЗУ» (и обратно) исключаются такие весьма загруженные элементы, как интерфейсная шина и контроллер северного моста.

Различия реализации классической архитектуры и АМD-K8

Различия реализации классической архитектуры и АМD-K8

Ещё одним довольно заметным отличием архитектуры К8 является отказ от асинхронности, то есть обеспечение синхронной работы процессорного ядра, ОЗУ и шины HyperTransport, частоты которых привязаны к «шине» тактового генератора (НТТ), которая в этом случае является опорной. Таким образом, для процессора архитектуры К8 частоты ядра и шины HyperTransport задаются множителями по отношению к НТТ, а частота шины памяти выставляется делителем от частоты ядра процессора 4

4 Пример: для системы на базе процессора Athlon 64-3000+ (1,8 ГГц) с установленной памятью DDR-333 стандартная частота ядра (1,8 ГГц) достигается умножением на 9 частоты НТТ, равной 200 МГц, стандартная частота шины HyperTransport (1 ГГц) – умножением НТТ на 5, а частота шины памяти (166 МГц) – делением частоты ядра на 11.

В классической же схеме с шиной FSB и контроллером памяти, вынесенным в северный мост, возможна (и используется) асинхронность шин FSB и ОЗУ, а опорной частотой для процессора выступает частота тактирования 5 (а не передачи данных) шины FSB, частота же тактирования шины памяти может задаваться отдельно. Из наиболее свежих чипсетов возможностью раздельного задания частот FSB и памяти обладает NVIDIA nForce 680i SLI, что делает его отличным выбором для тонкой настройки системы (разгона).

Обозначения и сокращения на блок-схеме

AHB ( AMBA High-Speed Bus ) — Высокоскоростная шина AMBA

AMBA ( Advanced Microcontroller Bus Architecture ) — Расширенная архитектура шины микроконтроллера

APB ( Advanced Peripheral Bus ) — Расширенная периферийная шина

AXI ( Advanced Extensible Interface ) — продвинутый расширяемый интерфейс

Audio Codec ( Audio Codec ) — аудио-кодек

Audio HUB ( Audio Hub ) — аудио-концентратор

BIST-MST ( Built-in self test — Memory built-in self test ) — встроенное самотестирование — самотестирование памяти

BROM ( ПЗУ начального загрузчика ) —

CCU ( Clock Control Unit ) — контроллер синхрогенератора

CE ( Crypto Engine ) — криптосистема

CIR_RX ( CIR Receiver ) — инфракрасный приемник

CPUS_CFG ( Управление системными ресурсами ЦП (GIC ) — 400,JTAG)

CPUX ( Central Processing Unit ) — центральный процессор

CPUX_GLC ( ? ) —

CPU_DBG ( CPU Debugger ) — отладчик ЦП

DCU ( ? ) —

DI ( Deinterlacer ) — деинтерлейсер

DISPLAY_TOP ( ? ) —

DMA ( Direct Memory Access ) — Прямой доступ к памяти

DMIC ( Digital MIC controller ) — контроллер микрофона

DRAM_CTRL ( DRAM ) — controller

DS_HTOP ( ? ) —

EMAC0 ( Ethernet Port 0 ) — Гигабитный порт Ethernet с интерфейсами RGMII и RMII, для подключения внешнего Ethernet PHY

EMAC1 ( Ethernet Port 1 ) — Порт Ethernet 100 Мбит/с с интерфейсом RMII, со встроенным EPHY (приемопередатчиком физического уровня)

G2D ( Graphic 2D Engine ) — аппаратный ускоритель для 2D-графики

GPIO ( General Purpose Input Output ) — Порты ввода-вывода общего назначения

HDMI0 ( HDMI Interface ) — интерфейс HDMI

HSTIMER ( High Speed Timer ) — таймер высокой скорости

IOMMU ( Input/Output Memory Management Unit ) — модуль управления памятью ввода

KEY_SRAM ( ? ) —

LRADC ( Low Rate ADC ) — низкоскоростной АЦП

MBUS ( Memory Bus ) — шина памяти

MSI ( Message Signaled Interrupts ) — прерывания, инициируемые сообщениями

MUX ( Multiplex ) — Мультиплексор

NAND0 ( Nand Flash Controller ) — контроллер Nand Flash

OWA ( One Wire Audio ) — контроллер последовательной аудио-шины

PRCM ( Power Reset Clock Management ) — модуль управления питанием, сбросом и синхронизацией

PSI ( Peripheral System Interconnect ) — подключение периферийных систем

PSI_TOP ( ? ) —

PWM ( Pulse Width Modulation ) — контроллер ШИМ

RSB ( ? ) —

RTC ( Real Time Clock ) — часы реального времени

SID ( Security ID ) — идентификатор безопасности (eFuse)

SMC ( Secure Memory Control ) — безопасное управление памятью

SMHC ( SD/MMC Host Controller ) — хост-контроллер SD/MMC

SPC ( Secure Peripherals Control ) — безопасное управление периферийными устройствами

SPI ( Serial Peripheral Interface ) — cинхронный последовательный интерфейс

SRAM ( Static Random Access Memory ) — Статическая оперативная память произвольного доступа

SS_MBUS ( ? ) —

SYS_CTRL ( System Controller (?) ) — системный контроллер

THS ( Thermal Sensor Controller ) — контроллер термодатчика

TIMER ( Timer ) — таймер

TLB ( Translation Lookaside Buffer ) — буфер ассоциативной трансляции (таблица преобразования адресов)

TS ( Transport Stream Controller ) — контроллер транспортного потока

TV0/1 ( ) — видеовыход

TVE0 ( TV Encoder ) — ТВ

TWD ( Two-Wire Interface Data (?) ) — данные двухпроводного интерфейса

TWI ( Two Wire Interface ) — Двухпроводной интерфейс

UART ( Universal Asynchronous Receiver Transmitter ) — универсальный асинхронный приемо

USB0(USB_OTG) ( On the Go Controller ) — контроллер USB 2.0 с функциями устройства и хоста

USB1(USB_HOST) ( USB2.0 Host Controller ) — хост

VE ( Video Encoding ) — видеокодер

VE SRAM ( Память видеокодера ) —

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: