BI-PI.21-8
  • Adresní prostory v PC
    • Způsoby mapování pamětí a registrů periferií do adresních prostorů
  • Vstupně výstupní operace
  • Detekce a konfigurace zařízení v konfiguračním prostoru sběrnice PCI Express
  • Přímý přístup do paměti
  • Přerušení v PC.

Adresní prostory v PC

  • Fyzický adresní prostor
    • Skutečně mapované paměťové moduly
    • Čast fyzické paměti na disku
  • Virtuální paměťový prostor
    • Adresují aplikace
    • Každá aplikace má svůj
    • Práce s virtuálním prostorem podléhá překladu adres
      • Stará se OS, pomocí překladových tabulek
      • Mapuje se do fyzické paměti
      • Přístup do neobsazené části hlídá OS
    • Segmentace
      • Části paměťového prostoru
      • Segment je určený počáteční adresou a délkou
      • Zápis v tabulce deskriptorů
      • Procesor má registry, které drží deskriptory různých segmentů, jako SP, code segment, data segment,...
      • Bez stránkování jsou to adresy ve fyzickém prostoru
      • OS to obchází nastavením velikosti segmentu na celý adresní prostor
    • Stránkování
      • Fyzický adresní prostor je rozdělený na stejné bloky jako virtuální
      • Stránky se celé přenáší z virtuálního prostoru do fyzického
      • využívá tabulky stránek
        • Mapuje stránky
        • Umístění ve fyzické paměti
        • Řídí OS
      • HW překladová jednotka (MMU)
        • Jedné MOV předchází několik čtení v tabulkách stránek, pro urychlení se používá TLB, který si pamatuje poslední překlady adres
  • I/O paměťový prostor
    • Mapují se sem registry periferií
    • Přístup má pouze kernel
    • OS může mapovat části tohoto prostoru do virtuálu aplikacím
    • 64KiB
  • Pasted image 20260612161753.png

Vstupně výstupní operace

  • Čtení a zápis v I/O prostoru
  • Pasted image 20260612162731.png
  • Používá instrukce in/out
  • Vyžaduje zarovnání
  • Adresy
    • Pevné - historicky čítače, DMA, registry v chipsetu
    • Pevné - geograficky adresovatelné (porty na adrese) přístup do konfiguračních bloků PCI
    • Konfigurovatelné - adresy vybere systém, mapování dělá periferie
  • Mapování registrů do I/O prostoru
    • Zařízení mají konfigurační registr
    • PCI probíhá přes 0xCF8 a 0xCFC porty
    • Mapovat lze:
      • Výběrem banky (výběr do která banka s registry se zpřístupní)
      • Adresní přístup - do registru napíšeme adresu a v jiném registru budou data
    • I/O zařízení je hodně, přiřazení konkrétních adres se řeší za běhu

Detekce a konfigurace zařízení v konfiguračním prostoru sběrnice PCI Express

  • Speciální cykly
    • Přenos speciálních informací mezi zařízeními na jedné sběrnici
    • Broadcast
    • datové přenosy reprezentují jednotlivé zprávy
  • Konfigurační cykly
    • Umožňují konfiguraci karet
    • Adresace PCI karet je vázána na fyzické sloty
    • PCI karta může mít víc než jednu sadu konfiguračních registrů
      • Multifunkční karty
  • Adresová část konfiguračního cyklu
    • adresa pro konfigurační prostor se zapisuje do registru na adrese CF8 ve V/V prostoru, těsně před vygenerováním konfiguračního cyklu zápisem/čtením z adresy CFCh
    • typ 0
      • adresace zařízení v rámci jedné sběrnice
      • 32 bitů
        • 31-11 nepoužito
        • 10-8 funkce
        • 7-2 registr
        • 1-0 typ 0
    • typ 1
      • Adresace za PCI Bridge
      • 32 bitů
        • 31-24 nepoužito
        • 23-16 sběrnice
        • 15-11 zařízení
        • 10-8 funkce
        • 7-2 registr
        • 1-0 typ 01
  • PCI Express
    • Sériová verze PCI, nahrazuje ji
    • Není to úplně sběrnice, spíš dvoubodový spoj
    • 1x = 500 MB/s – 16x = 8 GB/s
    • Transakce
      • Paměťové
        • Buď klasicky přes procesor, nebo i přímý přístup (bus mastering)
        • ReadRequest (WriteRequest)/Completion, 32/64 bit
      • V/V
        • ReadRequest (WriteRequest)/Completion, 32 bit
      • Konfigurační
        • ReadRequest (WriteRequest)/Completion, 32 bit
      • Výměna zpráv

Přímý přístup do paměti (DMA)

  • Zajišťuje přímý přenos dat od periferie do paměti s minimální zátěží CPU
  • Obsluhuje ho DMA řadič
  • CPU řekne od koho, kolik a kam a předá řízení sběrnice a RAM DMA
  • Pasted image 20260612165836.png

Přerušení v PC. (IRQ)

  • Zajišťují vyvolání obsluhy přerušení, je to mechanismus na upozornění CPU že něco nastalo
    • Vnější zdroj - periferie
    • Vnitřní zdroj - chyba ALU, výpadek stránky
    • Softwarové INT
  • až 256 zdrojů přerušení
    • Vstupní body do kernelu
    • Rozlišení a priority řeší IRQ řadič
  • CPU pří přerušení přerušuje právě prováděný kód, ukládá kontext a vykoná kód dle vektoru příslušícímu danému přerušení, po obsluze se vrátí k původní práci
    • Vektory jsou uloženy v IDT tabulce
    • Volba dle čísla přerušení
  • Některá přerušení jsou maskovatelná
    • Lze je zakázat
    • STI,CLI
    • využití v kritických sekcích
    • Ne všechny, hlavně ty indikující HW chybu jsou nemaskovatelné
  • PIC (8259)
    • Původní řadič přerušení
    • Konfigurovatelný přes I/O registry
    • Nutné clear flag
  • APIC
    • Zaveden pro podporu více procesorových systémů
    • Každý procesor má vlastní Local APIC
      • Vnitřní čítač generující hodiny
      • Propojen s ICC sběrnicí
    • IO APIC
      • Jeden nebo víc pro procesory
      • Programovatelný
      • komunikuje přes ICC
      • Sdružuje zdroje přerušení
      • Rozděluje přerušení mezi procesory
      • Posílá požadavky na přerušení
      • Dynamicky lze měnit, které jádro je prioritizováno pro obsluhu
  • Mezi procesorová přerušení
    • Jeden procesor chce přerušit práci druhého
    • Pomocí APIC a ICC sběrnice
    • Informuje cílový Local APIC