2012-05-18 6 views
1

CPU 포트 (in/out 지침을 통해)를 읽는 것이 부작용이 있습니까? 예를 들어I/O 포트 읽기에 부작용이 있습니까? Programmed I/O는 어떤가?

:

  1. 는 포트가 읽은 장치를 "말"합니까?

  2. 임의의 포트를 부주의하게 읽는 것이 해를 입힐 수 있습니까?

나는 그것이 안 있으리라 믿고있어,하지만 무언가가 나에게 이해가되지 않습니다 :

아무런 부작용이없는 경우, 어떻게 ATA 드라이브 할 때 프로그램 수행 않습니다 I/O는 단어가 읽혀질 때 "알"수 있으므로 다음 데이터 단어를 제공 할 수 있습니까?

+1

아마 내가 잘못 이해하고 있지만 부작용에 대한 정의를 I/O로 읽고 있지 않습니까? –

+0

@KilianFoth : 입력 포트입니다 ... 단순히 전압을 읽는다면 정의에 따라 값을 변경하면 안됩니다. 맞습니까? 아니면, 그게 내가 묻는 이유는 ... 어느 쪽이든, 뭔가 나에게 이해가되지 않습니다 ... – Mehrdad

+0

*해야하지 *,하지만 CPU가 복잡하고 독점적 인 이상한 모든 종류의 있습니다. 최선의 방법은 그것을 시도하고 어떤 일이 일어나는가를 보는 것입니다. – Polynomial

답변

4

예, 포트를 읽는 것은 부작용이있을 수 있지만 실제로 사용되는지 여부 (해당하는 경우)는 장치마다 다릅니다.

포트를 읽음으로써 손상 될 수있는 장치에 대해 들어 본 적이 없습니다. A 약간의 (대부분 오래된 것)은 잘못된 값을 써서 손상되거나 손상 될 수 있지만, 그 판독 값이 손상 될 수 있음을 알지 못합니다. 대부분의 경우, 독서의 부작용은 상당히 경미합니다.

읽기 동작은 읽은 장치에이를 알릴 수 있습니다. 장치에서 읽으려면 명령과 주소를 버스에 놓습니다. 명령이 "읽기"이고 주소가 장치에 해당하면 장치를 읽는 중입니다.

+0

+1 감사합니다. ATA에 관한 어떤 대답이라도? (포트에 대한 나의 독서는 포트가 읽혔다는 것을 드라이브에 알리는가? 아니면 다른 방법으로 찾아 낼 수 있는가?) – Mehrdad

+0

@Mehrdad : 나는 대답에 조금 더 추가했다. –

+0

'장치에서 읽으려면 버스에 명령과 주소를 넣으십시오. '-> 굉장합니다, 내 질문에 모두 답하는 것 같습니다, 감사합니다! – Mehrdad