Некоторое время назад начал изучать KmdTut и сталкнулся с такой проблемой, мне сложно представить компьютер "в железе", так сказать... Постараюсь пояснить, Four-F, использует порты ввода-вывода, таймеры, динамик, и прочие "физические" устройства, которых я просто не могу в полной мере себе представить. ну например пространство ввода-вывода - как у процессора может быть 65 ТЫСЯЧ!!! ПОРТОВ!? - это же сколько у него дожно быть ножек! В общем, хотелось бы увидеть вменяемую структурную, (или электрическую) схему компьютера. Я конечно понимаю что разводка материнксой платы немного мне даст, хотя кто мне ее даст? - простите за каламбур, но раз Four-F использует стандартные адреса устройств, то должны существовать какие то схемы основных периферийных устройств, что бы можно было "вживую" увидеть эти устройства. Приведу пример: на любой микроконтроллер есть PDF-ка, в которой подробно описано, архитектура данного устройства, распиновка, габариты, в общем все... - Так вот нет ли чего то подобного на персональный компьютер ( не в плане - вот системный блок, вот клавиатура, вот монитор, а в плане - вот процессор, вот микросхема таймера, вот микросхема BIOSа)? Простите за многословность, заранее благодарю.
На любой современный проц тоже есть куча PDF-ок. И кстати на мосты всякие тоже. Вообще для железячника желающего разобратся с how-it-work, рекомендую поставить себе хотя бы демо версию программы Proteus от Labcenter.
а кто сказал, что по одной ножке на порт? читай разные книжки про программно-аппаратную организацию компьютера. например, П.Нортона
Порт ввода вывода представляет лишь логический адрес, посредством декодирования обращения к которому процессор, а затем чипсет, обеспечивают передачу данных в/из периферии. Многие девайсы поддерживают как PIO, так и MMIO управление, то есть можно и без портов обращаться (древние CMD-шные RAID и ATA контроллеры с PCI интерфейсом очень наглядное тому подтверждение).
Возьми схему от Спектрума, она совершенно не секретна. Там тоже портов было немеряно. Намного больше, чем всех когда-либо существовавших внешних устройств к нему вместе взятых.
Гук у меня есть, если советуете то попробую еще раз, Proteusом давно пользуюсь, а вот о PDF-ках как то не подумал. И все же среди всего множества всяческой литературы, статей самоучителей неужели нет чего нибудь где много схем и картинок?
картинки говоришь..? "Судет ты опять там на задней парте плейбой читаешь?" (с) проф. тут вот похожая тема была
Шутки шутками, а картинок действительно мало - сплошная абстракция, ну неужели у меня такой ненормальный вопрос? "Похожую тему" видел раньше, описанная литература имеется, присмотрюсь...
Алексей Сейчас этим никто не занимается. А вот во времена Z80 да там все описано было. Хотя заглени на intel там есть вся дакументация. И картинок тоже много.
а ты хочешь найти точную принципиальную схему чипсетов? oO по поводу портов могу тебе рассказать в двух словах: представь себе, что от проца идет 16 контактов, на каждом из которых может быть нулевой или единичный уровень. Сколько всего существует комбинаций из двух уровней на 16 линиях? Верно, 2 в степени 16 = 65536. Эти провода называются адресными линиями (шина адреса). Еще 32 контакта - это данные, на каждый выводится уровень, определяющий соответствующий разряд передаваемых данных. Еще от проца идут две ноги - признак записи/чтения (IOR/W) и разрешение обмена (CE). Так вот, к адресным линиям подключены другие микросхемы, реализующие контроллеры перефирийных устройств. Также эти микросхемы подключены к линиям IOR/W и CE. Также микросхемы подключены к линиям данных, но эти контакты находятся у них в высокоомном состоянии (через закрытые транзисторы), чтобы не потреблять ток на линии. Теперь проц выполняет инструкцию out 3F8h, 1 при этом на шине адреса выставляются уровни, соответствующие числу 3F8h, а на шине данных - 1. На IOR/W выставляется уровень, указывающий на выполнение операции записи, а на CE на определенное время устанавливается уровень разрешения обмена. Когда микросхемы обнаруживают этот уровень на своих входах, они проверяют комбинацию уровней на шине адреса. Каждая микросхема срабатывает на свою комбинацию (соответствующую номеру ее порта). Итак, все микросхемы, кроме одной, игнорируют сигнал CE, потому что, комбинация уровней им не соответствует. И только одна микросхема, та, для которой эта передача предназначалась (допустим, это контроллер RS-232), проверит уровень IOR/W и, выяснив, что идет запись, откроет транзисторы на входах шины данных, после чего считает с этой шины передаваемое число. В зависимости от числа контроллер может предпринять некоторые действия, или еще там что-нибудь.. неважно. Затем проц выполняет инстркцию in 3F8h при этом все повторяется, только наоборот. На шине адреса ставится то же число, но линии шины данных уже не замыкаются через процессор на высокие и низкие уровни, а подключаются в процессоре к входным усилителям, имеющим большее сопротивление. На линию CE по прежднему подается импульс, разрешающий обмен, но на IOR/W перед этим подается другой уровень, который на этот раз указывает, что выполняется операция чтения. Поэтому все тот же контроллер RS, отреагировав на комбинацию CE и уровней на шине адреса, теперь не пропускает сигналы с шины данных через усилители, чтобы проанализировать его в дальнейшем, а замыкает через низкое сопротивление на нужные логические уровни, формируя на шине передаваемое число, которое будет считано процессором. Естественно, вся эта схема сильно упрощена и показывает только принцип. Особенностей реализации может быть сколько угодно. Например, на 8086 шины адреса и данных были объединены в 8 линий, пол которым передавались по очереди сначала в двух тактах синхронизирующего генератора адрес (младший и старший байты), а затем также и данные (а заодно и еще что-то). Отсчеты генератора, по которым могли передаваться адреса и данне, если не ошибаюсь, были четко определены, и если обмена не присходило, выполнялись холостые циклы (что определялось по сочетаниям уровней на дополнительных линиях). Для начала передачи следовало дождаться начала следующего цикла. Это называлось циклами шины. Все задержки были четко рассчитаны, и контроллеры должны были укладываться в заданные промежутки времени при выполнении обмена. А может,я что-то путаю )) Кроме того эта шина также служила шиной для обмена с памятью, а кому реагировать на адрес - микросхемам памяти или контроллерам ввода/вывода, определялось опять же дополнительным сигналом. Кроме того, для поддержки DMA (прямой доступ к памяти), существовали еще дополнительные сигналы для захвата шины (поскольку циклами управлял процессор, а при выполнении обмена DMA это должен был делать контроллер) итд итп... Как все это сделано в современных компах с их частотами, асинхронной работой устройств, необходимостью сокращать число линий и различными наворотами, даже не хочется себе представлять..
Nouzui Зашибись объяснил! Не поленился такой трактат накатать! Большое пасибо! Всем спасибо, считаю тему закрытой. Пойду на intel схожу...