понедельник, 11 апреля 2011 г.

12.5. SBus


SBus


Хотя большинство компьютеров в настоящее время оснащаются PCI или интерфейсной шиной ISA, большинство старых рабочих станций на базе SPARC используют для подключения своей периферии SBus.

SBus является вполне современной разработкой, хотя она была в ходу в течение долгого времени. Она предназначена для процессорно-независимых (хотя её используют только компьютеры SPARC) и оптимизирована для периферийных плат ввода/вывода. Другими словами, вы не можете подключить дополнительную оперативную память в слоты SBus (платы расширения памяти уже давно забыты даже в мире ISA, а PCI не поддерживает их совсем). Такая оптимизация предназначена для упрощения разработки и аппаратных средств и системного программного обеспечения за счёт некоторого дополнительного усложнения в материнской плате.

Такое смещение в сторону ввода/вывода приводит к использованию в периферии виртуальных адресов для передачи данных, минуя, таким образом, необходимость выделять непрерывный буфер DMA. Материнская плата отвечает за декодирование виртуальных адресов и связи их с физическими адресами. Это требует подключения к шине MMU (memory management unit, блок управления памяти); набор микросхем, отвечающих за эту задачу, называется IOMMU. Хотя это что-то более сложное, чем использование на интерфейсной шине физических адресов, эта конструкция существенно упрощается тем фактом, что процессоры SPARC всегда разрабатывались с поддержкой отдельного от основного ядра процессора ядра MMU (физически или, по крайней мере, концептуально). Собственно, этот конструкторский выбор является общим для других разработок мощных процессоров и выгодно полный. Ещё одной особенностью этой шины является то, что платы устройств используют обширную географическую адресацию, так что нет необходимости реализации дешифратора адреса в каждой периферии или решения конфликтов адресации.

Периферия SBus использует язык Форт в их ПЗУ для самостоятельной инициализации. Форт был выбран потому, что интерпретатор является простым и, следовательно, может быть легко реализован в прошивке любой компьютерной системы. Кроме того, спецификация SBus описывает процесс загрузки, так что совместимые устройства ввода/вывода легко устанавливаются в систему и распознаются во время загрузки системы. Это было большим шагом для поддержки мультиплатформенных устройств; это совершенно другой от ПК мир, где мы привыкли использовать ISA. Однако она не стала успешной по ряду коммерческих причин.

Хотя текущие версии ядра предлагают совершенно полнофункциональную поддержку устройств SBus, эта шина используется в наши дни так мало, что не стоит подробного описания здесь. Заинтересованные читатели могут взглянуть на исходные файлы в arch/sparc/kernel и arch/sparc/mm.

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.