Programmable Interrupt Controller
Een Programmable Interrupt Controller (afgekort PIC) werkt als een soort manager voor een op interrupts gebaseerd computersysteem. Het ontvangt vragen van I/O-apparaten, in de vorm van interrupts en beslist aan de hand van prioriteiten welke aanvraag eerst wordt behandeld. PIC levert dan een interrupt aan de processor. Nu moet PIC informatie aan de CPU leveren. Die informatie zal naar de juiste service wijzen. Deze verwijzing (pointer) wordt bijgehouden in een vectortabel. Om software en real time overhead te minimaliseren, worden interrupts hardwarematig afgehandeld.
Advanced PIC is de nieuwe opvolger van PIC. Deze kan meer interrupts behandelen, en kan werken met flexibele prioriteiten.
Werking
PIC bestaat uit 3 registers: Interrupt Mask Register (IMR), Interrupt Request Register (IRR) en In Service Register (ISR). De meeste PIC’s kunnen tot 8 interruptlijnen ontvangen. IMR controleert of de binnengekomen interrupts gemaskeerd zijn of niet. De niet gemaskeerde interrupts worden door gestuurd. De gemaskeerde interrupts worden genegeerd.
Het volgende register, IRR, houdt alle interrupts bij die het van IMR ontvangen heeft tot ze behandeld worden. De prioriteiten van de interrupts worden allemaal bijgehouden door de ISR. Deze worden bijgewerkt bij het ontvangen van een ‘einde van interrupt’ commando. Nu dat PIC weet welke interrupts als eerste moet behandelen worden berichten gestuurd naar de processor. Er wordt een interrupt naar de processor gestuurd. Nadat deze klaar is met zijn huidige bewerking, stuurt het een bevestiging terug naar PIC. Bij het ontvangen van de bevestiging toont de IRR welk service eerst behandeld moet worden. Deze wordt dan uitgevoerd door de processor.
Voorbeelden PIC
Externe link
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.