2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta...

24
2. Luento: Laitteistorajapinta 2. Luento: Laitteistorajapinta 2. Luento: Laitteistorajapinta 2. Luento: Laitteistorajapinta Juha Juha-Matti Vanhatupa Matti Vanhatupa Alkuperäinen kalvosetti: Arto Salminen Alkuperäinen kalvosetti: Arto Salminen

Transcript of 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta...

Page 1: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

2. Luento: Laitteistorajapinta2. Luento: Laitteistorajapinta2. Luento: Laitteistorajapinta2. Luento: Laitteistorajapinta

JuhaJuha--Matti VanhatupaMatti Vanhatupa

Alkuperäinen kalvosetti: Arto SalminenAlkuperäinen kalvosetti: Arto Salminen

Page 2: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Agenda• Arkkitehtuuri• Keskeytysjärjestelmä• Oheislaiteliitynnät• Oheislaitepiirejä

Page 3: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Arkkitehtuuri• Rekisterirakenteet ja

keskeytysjärjestelmä• 8-64 bittisiä suorittimia• RISC

– ARM, MIPS• CISC

– x86

Page 4: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

von Neumann• John von Neumann, First Draft of a

Report on the EDVAC, 1945. In W. Aspray and A. Burks, editors, Papers of John von Neumann on Computing and Computer Theory, vol 12 in the Charles Babbage Institute Reprint Series for the History of Computing. MIT Press, 1987.

Page 5: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Yksinkertainen kone• Suoritin

– Kontrolliyksikkö– ALU– Rekisterit

• Muisti

Page 6: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Load-Store arkkitehtuuri

Page 7: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Akku

Page 8: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Tilajärjestelmä• Suoritusoikeudet• Rekisterisarjat

• ARM– User, FIQ, IRQ, Supervisor, System,

Undefined

Page 9: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Keskeytysjärjestelmä• Ohjelmavirhekeskeytys• Ohjelmoitu keskeytys• Ulkoinen keskeytys• Käynnistys

Page 10: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Toiminta keskeytyksen tullessa

• 1. Tallennetaan tila• 2. Selvitetään keskeytyksen syy• 3. Palvellaan keskeytys• 4. Palautetaan tila ja jatketaan

suoritusta

Page 11: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Keskeytyksen havaitseminen

1

0

Page 12: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Keskeytyksen palveleminen

• Keskeytysvektori

Page 13: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Ohjelmisto tunnistaa keskeyttäjän

• Oheislaitteilla yhteinen IRQ-linja• Ohjelmisto käy lukemassa

oheislaitteiden tilarekisterit

Page 14: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Esimerkki keskeytyspalvelusta

/****************************************************************************** uart.c: UART API file for NXP LPC23xx/24xx Family Microprocessors******************************************************************************/

void UART0Handler (void) __irq {

BYTE IIRValue, LSRValue;volatile BYTE Dummy = Dummy;

IIRValue = U0IIR;

IIRValue >>= 1; /* skip pending bit in IIR */IIRValue &= 0x07; /* check bit 1~3, interrupt identification */if ( IIRValue == IIR_RLS ) /* Receive Line Status */{

/* Handle received data here */Dummy = U0RBR; /* Dummy read on RX to clear

interrupt, then bail out */IDISABLE;VICVectAddr = 0; /* Acknowledge Interrupt */return;

}if ( LSRValue & LSR_RDR ) /* Receive Data Ready */{

/* Another situation */

Page 15: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Laitteisto tunnistaa keskeyttäjän

• IACK-linja

• Keskeytysväylä (priorisoitu keskeytys)

Page 16: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Suorittimen alustus• RESET-linja

Page 17: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Reset keskeytys

Page 18: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Oheislaiteliitynnät• Oheislaitteen käyttöliittymänä

rekisterit:– Ohjaus– Tila– Data

Page 19: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Suora muistisiirto, DMA-ohjaimen toiminta

• Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle

• DMA request -signaali ohjaimelle laitteelta• Pyydetään väylän käyttöoikeus• Saadaan käyttöoikeus• Kerrotaan oheislaitteelle, että osoite on väylällä• Kirjoittaminen/lukeminen• Luovutetaan väylä

Page 20: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Esimerkki DMA-ohjaimesta

• ATMEL Xmega A4– http://www.atmel.com/dyn/resources/p

rod_documents/doc8069.pdf• Luku 8

– http://www.atmel.com/dyn/resources/prod_documents/doc8077.pdf• Luku 5

Page 21: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Oheislaitepiirejä• PIO• SIO• Timer• AD/DA• Väyläohjauspiirejä: CAN, SPI, 3-wire,

TWI, jne.

Page 22: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Esimerkkejä• AT91SAM7X

– http://www.atmel.com/dyn/resources/prod_documents/doc6120.pdf

– PIO luku 27 (UI 27.6.)– USART luku 30 (UI 30.7)– TC luku 32 (UI 32.6)– ADC luku 35 (UI 35.6)

Page 23: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Laitteistorajapinta abstraktiona

• Käyttöjärjestelmän ydin jaettu kahteen osaan- 1. Käyttöjärjestelmän ominaisuudet- 2. Liittymä laitteistoon

• HAL (hardware abstraction layer)Laitteistoliittymän rajapinta

Page 24: 2. Luento: LaitteistorajapintaSulo/Kalvot/Sulo-kalvot-2.pdfSuora muistisiirto, DMA-ohjaimen toiminta • Ennen siirtoa kerrotaan lohkon koko/osoite ohjaimelle • DMA request -signaali

Yhteenveto• Sulautettu arkkitehtuuri• Keskeytykset• Oheislaitteet