2012-05-18 2 views
1

Просматривает ли порт процессора (через инструкции in/out) какие-либо побочные эффекты?Есть ли у чтения порт ввода-вывода какие-либо побочные эффекты? Как насчет запрограммированного ввода-вывода?

Например:

  1. ли это «сказать» устройство, что порт был считан?

  2. Может ли прочтение произвольного порта небрежно причинить какой-либо вред?

Я предполагаю, что это не надо, а потом что-то не имеет смысла для меня:

Если нет побочного эффекта, то как АТА диск, при выполнении запрограммированный I/O, «знаете», когда слово было прочитано, поэтому оно может предоставить следующее слово данных?

+1

Возможно, я неправильно понимаю, но не читаю I/O само определение побочного эффекта? –

+0

@KilianFoth: Это входной порт ... если он просто считывает напряжение, по определению он не должен изменять значение, верно? Или, может быть, нет, поэтому я прошу ... в любом случае, мне что-то не имеет смысла ... – Mehrdad

+0

Это не должно *, но процессоры сложны и имеют всевозможные запатентованные странности. Лучше всего попробовать его и посмотреть, что произойдет. – Polynomial

ответ

4

Да, чтение порта может иметь побочные эффекты, но независимо от того, что он делает (и если да, то что они есть), изменяется между устройствами.

Я никогда не слышал о устройстве, которое может быть повреждено при чтении порта. A несколько (но в основном старые) могут быть повреждены/нанести ущерб, написав неправильное значение, но я не знаю, что такое чтение может нанести ущерб. В большинстве случаев побочные эффекты чтения довольно мягкие.

Акт чтения может сообщить устройству, что он читается. Для чтения с устройства вы поместите команду и адрес на шине. Если команда «прочитана» и адрес соответствует устройству, значит, устройство считывается.

+0

+1 хорошо спасибо. Какой-либо ответ на вопрос ATA? (Мое чтение порта «говорит», что диск читается, или он узнает какой-то другой способ?) – Mehrdad

+0

@Mehrdad: Я добавил немного больше ответа. –

+0

'Для чтения с устройства вы размещаете команду и адрес на шине.' -> Удивительно, что, кажется, отвечает на все мои вопросы, спасибо! – Mehrdad