LINUX.ORG.RU

Ответ на: комментарий от B084

port-io, тот, который дёргает M/nIO pin.

Почему они отказались от использования обыкновенного MMIO? Какие преимущества?

suzuki
() автор топика
Ответ на: комментарий от suzuki

>Почему они отказались от использования обыкновенного MMIO? Какие преимущества?

В 8-битные времена схемотехнически проще было. Адресная дешифрация проще, девайсы подключать по таймингам проще... Я для PDP разрабатывал IO-девайсы, отображаемые на память - там всё сложно и хитро было. После 8080 - исплеваться можно было :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Исторически сложилось :)

Ну просто так даже кошки не тр@хаются, были же у них какие-то причины?

suzuki
() автор топика

Если проключить много устройств, то адресное пространство быстро закончится.

ef37 ★★
()

видимо в старые времена адресное пространство было ограничено

dimon555 ★★★★★
()
Ответ на: комментарий от suzuki

Вроде исторически это были физически разные шины, одна адресная для работы с памятью, фиксированный тайминг различные команды, а другая шина для подключения внешних устройств и это было задолго до [8086]. Основаная причина, ИМХО, так проще с точки зрения кол-ва транзисторов.

mky ★★★★★
()
Ответ на: комментарий от mky

> Вроде исторически это были физически разные шины, одна адресная для работы с памятью,

Шины были одни, была только ещё одна линия, сигнализирующая тип транзакции - память/ио.

Основаная причина, ИМХО, так проще с точки зрения кол-ва транзисторов.

Не-не, совсем-совсем не факт. Куда более простой 6502 - и регистры, и всё остальное находится в одном адресном пространстве.

suzuki
() автор топика
Ответ на: комментарий от suzuki

6502 это 1975 год? PDP-11 появилась в 1970 (описание в 1969), считается что в ней впервые реализовали отображение устройств в память (UNIBUS). А я говорю про более ранние системы. Правда, там вроде обычно было что-то наподобие канального процессора как в IBM 360.

А ещё, если отдавать адреса памяти под устройства, то памяти станет меньше, а при 16 или 20 битной адресации её и так мало. Если я правильно помню, то у Intel 8080 был отдельная нога на корпусе, сообщающая что сейчас идёт операция на стеке, то есть в теории на 8080 можно было собрать систему с 64 кбайт под код и 64 кбайт под стек.

mky ★★★★★
()
Ответ на: комментарий от mky

> А ещё, если отдавать адреса памяти под устройства, то памяти станет меньше, а при 16 или 20 битной адресации её и так мало.

1) мы задействуем ещё один вывод для индикации I/O, по-идее можно увеличить на 1 бит разрядность шины адреса

2) для увеличения разрядности шины адреса нам нужны дополнительные гейты, которые, чисто теортически (на уровне много/мало, ±пол-тапка) можно взять, если выкинуть инструкции для работы с I/O и всё связанное.

К примеру, можно было заюзать самый старший байт для индикации I/O, и повесить всё устройства ввода/вывода туда. В общем вариантов куча

В общем можно взять опенсурсное ядро 8086 и посмотреть, как будет меньше гейтов. Надо будет попробовать, как-нибудь

suzuki
() автор топика
Ответ на: комментарий от mky

> Если я правильно помню, то у Intel 8080 был отдельная нога на корпусе, сообщающая что сейчас идёт операция на стеке

В pin description в wikipedia написанно, что нога, сообщающая статус на ШД, а на ШД уже можно смотреть на стек/не стек

suzuki
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.