Взаимодействие процессора с портами

Порты SHARC-процессоров. Реализуемые виды интерфейсов. Способы взаимодействия между процессорным ядром и портами при вводе/выводе данных

Работа с линк-портами SHARC-процессоров

SHARC-процессоры семейства ADSP-2106x и старше (кроме ADSP-21061) имеют дополнительные возможности организации обмена данными через шесть 4-битовых линк-портов (звеньевых портов). Каждый линк-порт может тактироваться частотой до двух раз превышающей внутреннюю частоту процессора, что позволяет передавать до 8 битов за один такт. Линк-порты широко используются для организации взаимодействия процессоров в многопроцессорных системах различной структуры.

Линк-порты характеризуются следующими возможностями:

— могут функционировать одновременно и независимо друг от друга;

— позволяют передавать/принимать 32- и 48-разрядные слова;

— доступны как для DMA-контроллера (DMA-пересылок), так и для ядра процессора;

— доступны для внешнего хост-процессора при использовании режимов прямого чтения и записи (Direct Reads and Direct Writes);

— имеют двухуровневые FIFO-буферы для передачи и приема данных;

— поддерживают обмен данными с использованием сигналов тактовой синхронизации и подтверждения.

Работа с последовательными портами SHARC-процессоров семейства ADSP‑2106x

В ADSP-21060 имеются два независимых последовательных порта (serial port) SPORT0 и SPORT1, обеспечивающих интерфейс процессора с различными периферийными устройствами ввода/вывода. Последовательные порты обеспечивают побитовый обмен данными с максимальной скоростью до n Мбит/с, где n — тактовая частота процессора, и характеризуются следующими возможностями:

— независимый прием и передача данных каждым портом;

— буферизация данных при передаче и двойная буферизация при приеме данных;

— аппаратное компандирование по А- и m-законам при передаче и приеме[11];

— передача и прием слов данных размером от 3 до 32 битов, начиная со старших (Most Significant Bit, MSB) или с младших (Least Significant Bit, LSB) битов;

— использование независимых тактирующих сигналов для передачи и приема каждого бита (clock sync) и каждого слова (frame sync), причем синхронизация может быть либо внутренней (тактовые импульсы генерируются самим процессором), либо внешней (передача или прием с частотой тактовых импульсов, генерируемых внешним устройством);

— пересылка данных как по одному слову под управлением процессорного ядра, так и блоками данных с использованием DMA-контроллера;

— многоканальный режим приема и передачи данных с временным разделением битового потока.

Источник

Команды ввода и вывода

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

Взаимодействие процессора 8080 с портами внешних устройств отличается от взаимодействия процессора с ячейками памяти. Адреса портов не 16-разрядные, а 8-разрядные. Адресное пространство портов, не является составной частью общего адресного пространства микро-ЭВМ. Вместо этого, в микро-ЭВМ с процессором 8080 имеется два адресных пространства:

· для адресации памяти на основе 16-разрядных адресов в объёме 216=65536 возможных адресов;

· для адресации портов интерфейсов внешних устройств на основе 8-разрядных адресов в объёме 28=256 возможных адресов.

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

Команда IN port обеспечивает выполнение операции ввода в аккумулятор процессора байта из порта port прямо адресованного вторым байтом команды. В процессе выполнения этой двухбайтной по формату команды в рамках машинного цикла ввода происходит следующее. Сначала второй байт команды устанавливается на адресные линии в качестве адреса, причём, этот байт дублируется как в старших так и в младших восьми разрядах адресных линий: ABport. Этот адрес дешифрируется логикой микро-ЭВМ. Затем соответствующий выбранный порт устанавливает байт своего содержимого на линии данных, а процессор этот байт принимает в свой аккумулятор:(A)DB.

Читайте также:  Изменить частоту процессора gigabyte

Пример1.51

Требуется ввести в аккумулятор содержимое порта, имеющего адрес F1h.

Адрес Число Мнемокод Комментарий

0800 DB F1 IN F1 ;

Команда OUT port обеспечивает выполнение операции вывода байта из аккумулятора процессора в порт port прямо адресованный вторым байтом команды. В процессе выполнения этой двухбайтной по формату команды в рамках машинного цикла вывода происходит следующее. Сначала второй байт команды устанавливается на адресные линии в качестве адреса, причём, этот байт дублируется как в старших так и в младших восьми разрядах адресных линий: ABport. Вместе с ним на линии данных устанавливается байт из аккумулятора процессора: DB(A). Адрес дешифрируется логикой микро-ЭВМ. Затем соответствующий выбранный порт принимает байт с линий данных в свой регистр.

Пример1.52

Требуется вывести число 13h в порт, имеющий адрес F3h.

Адрес Число Мнемокод Комментарий

0800 3E 13 MVI A,13 ; подготовка числа в аккумуляторе

0802 D3 F3 OUT F3 ; вывод из аккумулятора в порт F3

Источник

Связь процессора с другими устройствами

Дата добавления: 2014-10-07 ; просмотров: 11636 ; Нарушение авторских прав

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

Взаимодействие между компьютером и другими устройствами обычно проходит через промежуточное устройство, которое называется контроллером (controller). Если говорить о персональном компьютере, то контроллер представляет собой монтажную плату, которая вставляется в гнездо главной монтажной платы компьютера (motherboard — материнской платы). Контроллер с помощью кабелей соединен с периферийными устройствами, находящимися внутри компьютера, или с соединительными разъемами, к которым подключаются внешние устройства. Часто контроллер сам является небольшим компьютером, обладающим своей собственной запоминающей схемой и центральным процессором, который выполняет программу, управляющую действиями контроллера.

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

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

Рисунок 2 – Контроллеры, подключенные к шине

В частности, центральный процессор способен взаимодействовать с контроллерами, подключенными к шине, так же как он взаимодействует с оперативной памятью. Для того чтобы послать цепочку битов контроллеру, прежде всего ее нужно поместить в один из регистров общего назначения, после чего выполнить команду, подобную команде сохранения, чтобы «сохранить» код в контроллере. Точно так же, для того чтобы получить цепочку битов от контроллера, исполняется команда, похожая на команду загрузки. В некоторых компьютерах предусмотрены дополнительные коды операции для этих действий. Команды с такими кодами называются командами ввода-вывода. Команды ввода-вывода находят контроллер с помощью системы адресации, подобной системе адресации оперативной памяти. А именно каждому контроллеру соответствует уникальный набор адресов (адреса ввода-вывода), которые используются в командах ввода-вывода для указания контроллера-адресата. Набор адресов, соответствующих контроллеру, называется портом (port), так как они представляют собой «место» через которое информация входит в компьютер и выходит из него. Поскольку адреса ввода-вывода могут иметь такой же вид, как адреса ячеек оперативной памяти, шины компьютеров снабжены сигналом, который показывает, передается сообщение в оперативную память или в контроллер. Следовательно, на команду ввода-вывода отослать содержимое регистра определенному контроллеру центральный процессор будет реагировать так же, как на команду отослать цепочку битов в определенную ячейку памяти, только при этом он выставит сигнал, который сообщит устройствам, подключенным к шине, что цепочка битов предназначена для такого-то контроллера, а не для оперативной памяти.

Читайте также:  Fcbga1023 ppga988 список процессоров intel

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

Альтернативой включению в машинный язык специальных кодов операций для команд ввода-вывода является использование команд загрузки и сохранения, которые уже существуют в языке для коммуникации с оперативной памятью. В этом случае контроллер отвечает только на определенный уникальный набор адресов (который также называется портом), а оперативная память игнорирует эти ячейки. Таким образом, когда центральный процессор посылает сообщение шине о том, что нужно сохранить цепочку битов по адресу, приписанному к контроллеру, ее и получает контроллер, а не оперативная память. Точно также, если центральный процессор пытается прочитать данные из такого адреса, указанного в команде загрузки, то он получит последовательность битов из контроллера, а не из памяти. Такая система связи называется вводом-выводом, отображенным на память (memory-mapped I/O), потому что устройства ввода-вывода компьютера представляются как различные ячейки памяти (рис. 3).

Поскольку контроллер подключен к шине компьютера, он может сам связываться с оперативной памятью в течение тех наносекунд, когда центральный процессор не использует шину. Этот доступ контроллера к оперативной памяти называется DMA (direct memory access — прямой доступ к памяти) и является очень важным для работы компьютера.

Рисунок 3 – Ввод-вывод, отображенный на память

Например, для того чтобы извлечь данные с определенного сектора диска, центральный процессор может послать запрос, закодированный как последовательность битов, контроллеру, подключенному к диску, чтобы тот считал данные сектора и поместил их в определенные ячейки памяти. Центральный процессор затем может продолжать выполнение других задач, так как контроллер выполнит операцию считывания и разместит данные в оперативной памяти с помощью прямого доступа. Таким образом, два процесса будут выполняться параллельно. Центральный процессор будет выполнять программу, а контроллер — управлять передачей данных между диском и оперативной памятью. При этом вычислительные ресурсы центрального процессора не растрачиваются попусту во время передачи данных.

Использование прямого доступа к памяти также имеет и отрицательные последствия: возрастает количество информации, которая обрабатывается шиной компьютера. Последовательности битов должны перемещаться между центральным процессором и оперативной памятью, процессором и каждым контроллером, контроллером и оперативной памятью. Координация всех этих действий лежит на шине, и это является главной проблемой при ее разработке. Даже безупречно построенная центральная шина может вызвать затруднения в работе, когда процессор и контроллеры пытаются получить доступ к ней одновременно. Это затруднение называется узким местом фон Неймана, потому что оно является следствием архитектуры фон Неймана, согласно которой центральный процессор извлекает команды из оперативной памяти через шину.

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

Такой диалог часто содержит слово состояния (status word) — цепочку битов, которая порождается периферийным устройством и посылается контроллеру. Биты слова состояния отражают условия работы устройства. Например, если говорить о принтере, значение младшего бита слова состояния определяет, есть ли в принтере бумага, следующий бит — готов ли принтер принять дополнительные данные. В зависимости от системы контроллер может сам ответить на информацию о состоянии устройства или передать ее процессору. В обоих случаях или программа контроллера, или программа, выполняемая процессором, может использовать ее для того, чтобы приостановить отсылку данных принтеру до тех пор, пока не будет получена соответствующая информация о статусе устройства.

Читайте также:  Huawei matebook 16d видеокарта

Скорость передачи данных от одного элемента компьютера к другому измеряется в битах в секунду (бит/с) (bits per second = bps). Обычно используются Кбит/с (килобит в секунду, равный 1000 бит/с), Мбит/с (мегабит в секунду, равный миллиону бит/с) и Гбит/с (гигабит в секунду, равный миллиарду бит/с). Максимальная скорость передачи данных зависит от типа линии связи и способа передачи. Максимальная скорость часто ошибочно отождествляется с шириной полосы пропускания линии связи. То есть полагается, что линия связи, имеющая большую ширину полосы пропускания, может осуществлять передачу битов на большей скорости. К сожалению, в данном случае имеет место неточное употребление термина, поскольку «высокая скорость передачи» может означать разные скорости в разных установках.

Существует два основных способа передачи данных: параллельный и последовательный. Этими терминами обозначают способ передачи битов относительно друг друга. В случае параллельной связи (parallel communication) несколько битов передаются одновременно, каждый по отдельному проводнику (линии). Такая техника позволяет быстро передавать данные, но требует достаточно сложной линии связи. В качестве примера можно привести внутреннюю шину компьютера и большинство каналов связи между компьютером и периферийными устройствами, такими как запоминающие устройства и принтеры. В этих случаях скорость передачи данных измеряется в Мбит/с и выше.

Напротив, при последовательной связи (serial communication) за один раз передается только один бит. Такая техника передачи данных медленнее, но для нее требуется более простой канал связи, поскольку все биты передаются по одной линии, один за другим. Последовательная связь обычно используется для передачи информации между компьютерами, где более простой канал связи является более экономным.

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

В действительности, представление цепочек битов тонами разных частот (называемое частотной модуляцией) используется только для низкоскоростной связи не более 1200 бит/с. Для достижения скорости в 2400 бит/с, 9600 бит/с и выше модем сочетает изменения по частоте тонов, амплитуде (громкости) и фазе (углу задержки круговой циклограммы передачи тона). Для получения еще более высоких скоростей передачи данных применяют методы сжатия данных, при этом скорость передачи достигает 57,6 Кбит/с.

Эти скорости передачи данных, по-видимому, являются пределом для современных телефонных линий с частотным диапазоном 3 Гц. Однако они не удовлетворяют современным запросам. Передача графических изображений со скоростью 57,6 Кбит/с может стать невыносимо долгой, а передавать видеоизображение с такой скоростью вообще неразумно. Поэтому развиваются новые технологии, которые могли бы дать пользователям, использующим телефонные линии, более высокие скорости передачи данных. Одна из таких технологий называется DSL (digital subscriber line — цифровая абонентская линия). Она использует тот факт, что существующие телефонные линии способны пропускать более широкий диапазон частот, чем тот, что применяется для передачи речевых сигналов. Скорость передачи в таких системах обычно составляет около 1,5 Мбит/с, но может достигать 6 Мбит/с в одном направлении, если в это время передача данных в противоположном направлении ограничена. Значение скорости зависит от используемой версии DSL и длины линии до операционного центра телефонной компании, которая обычно не превышает трех миль. В других технологиях, составляющих конкуренцию DLS, применяется кабель, который используется в системах кабельного телевидения, при этом скорость передачи данных достигает 40 Мбит/с. Также применяется оптическое стекловолокно, скорость передачи которого может составлять несколько гигабит в секунду.

Источник

Adblock
detector