Współpraca procesora ColdFire z pamięcią 1
Współpraca procesora z pamięcią zewnętrzną (1) ROM Magistrala adresowa Pamięć programu Magistrala danych Sygnały sterujące CS, OE Mikroprocesor FLASH, SRAM, DRAM RAM Pamięć danych CS, OE WR FLASH, SRAM, DRAM 2
Współpraca procesora z pamięcią zewnętrzną (2) ColdFire magistrala wewnętrzna sterownik DRAM SDRAM / DDR sterownik magistrali zewnętrznej SRAM moduł chip select FLASH / EEPROM 3
Wewnętrzna pamięć statyczna Procesory z rodziny ColdFire posiadają do 128 kb wewnętrznej pamięci statycznej obsługiwanej w ciągu jednego cyklu zegarowego dołączonej do szybkiej magistrali wewnętrznej (pamięć dwuportowa). 4
Rejestr konfigurujący RAMBAR Przykład: RAMBAR = 0xF000.0121 Adres bazowy = F000.0000, rozmiar = 64 kb (2^16) wyłączone DMA, R/W 5
Moduł obsługujący urządzenia dołączone do zewnętrznej magistrali (1) \CS \BS \TS Dane ColdFire Adres A0-A23 Moduł Chip Select Dane Adres \W/R \WR \TA \OE Pamięć \TA Transfer Acknowledge, potwierdzenie transmisji \TS Transfer Strobe, ważne dane oraz adresy na magistralach \TIP Transfer In Progres, utrzymywany w stanie niskim do zakończenia transmisji \TEA Transfer Error, wejście sygnalizacji błędu zewnętrznego 6
Moduł obsługujący urządzenia dołączone do zewnętrznej magistrali (1) 7
Moduł obsługujący urządzenia dołączone do zewnętrznej magistrali (2) 8
Cykl odczytu Narastające zbocze zegara 9
Podstawowy cykl zapisu 10
Cykl odczytu z szybką zakończeniem Tryb z szybkim zakończeniem nie może zostać użyty podczas wewnętrznej terminacji. 11
Cykl zapisu burst (3-2-2-2) Cykle zapisu i odczytu wykorzystywane podczas transmisji DMA oraz operacji na pamięci podręcznej. 12
Rejestry konfiguracyjne Chip Select Address Registers (CSAR0 CSAR6) Chip Select Mask Registers (CSMR0 CSMR6) 13
Chip Select Control Registers (CSCR0 CSCR6) 14
Hierarchia pamięci Processor Control Size: ~1 ns ~100 B On-Chip Cache Speed: Registers Datapath Second Level Cache (SRAM) ~10 ns-100 ns ~kb-mb Main Memory (DRAM) ~100 ns ~MB peta 10^15 => PB exa 10^18 => EB Secondary Storage (Disk) Tertiary Storage (Tape) ~10 ms ~10 sec ~GB ~TB 15
Pamięć podręczna (Cache) (1) Pamięć podręczna procesorów ColdFire jest przeznaczona do przechowywania kopii niewielkiego obszaru pamięci programu i /lub danych (16 kb rozmiar linii danych), Pamięć dołączona do szybkiej magistrali wewnętrznej procesora, Odczyt/zapis w ciągu jednego cyklu zegarowego, Procesor MCF5282 wyposażony jest w 2 kb pamięci (512 x 32), MCF547x/8x z rodziny V4e = 32 kb (Pentium III cache L1 = 32 kb). Dane Rdzeń procesora ColdFire Adres Syg. sterujące Dane Pamięć podręczna Adres Syg. sterujące Pamięć zewnętrzna 16
Pamięć podręczna (Cache) (2) 7 bit = 2^7 = 128 Linijka pamięci podręcznej 17
Rejestry konfiguracyjne Maska adresu Adres bazowy Write protect Tryb pracy S/U Pamięć aktywna 18
Rejestr konfiguracyjny CACR 19
Sterownik pamięci dynamicznej Obsługa dwóch pamięci dynamicznych SDRAM MCF528x (MCF520x/MCF527x pamięci DDR) Programowalne linie SRAS, SCAS oraz czas odświeżania Obsługa pamięci 8, 16, 32 bitowych 20
Transmisja zapisu do pamięci SDRAM Transfer typu burst 21
Rejestry konfiguracyjne 22
64 Mbit pamięć firmy Micron 23
Konfiguracja pamięci SDRAM 24
Zarządzanie zasobami pamięci System operacyjny wykonuje programy umieszczone w pamięci operacyjnej. W pamięci operacyjnej przechowywany jest obecnie wykonywany program (proces) oraz niezbędne dane. Jeżeli system operacyjny obsługuje kilka procesów w pamięci muszą znajdować się poszczególne programy wraz z danymi (przynajmniej częściowo) procesy współdzielą dostępną pamięć. Po zakończeniu obsługi danego procesu (kończy się czas przeznaczony na obsługę zadania), następuje przełączenie kontekstu. Jeżeli nowy program znajduję się całkowicie w pamięci procesor wznawia pracę, jeżeli nie to program ładowany jest z pamięci pomocniczej (FLASH, HDD). Można wyróżnić cztery podstawowe sposoby zarządzania pamięcią: 1. Płaska przestrzeń adresowa, 2. Przydział ciągły, 3. Stronicowanie pamięci, 4. Segmentacja pamięci. Wymiana dwu procesów (swapping) 25
Płaska przestrzeń adresowa Adresy, dane Obliczenia odczyt Procesor zapis Adres logiczny = Adres fizyczny 26
MMU (Memory Management Unit) (1) MMU jest układem realizujących dostęp do pamięci fizycznej żądanej przez CPU. Zadania realizowane przez moduł zarządzający pamięcią: Translacja adresów logicznych na adresy pamięci fizycznej, Ochrona pamięci, kontrola uprawnień, Obsługa pamięci podręcznej, Zarządzanie szynami danych, przełączanie banków pamięci (mikrokontrolery 8-bitowe), Ułatwienie przełączania kontekstu (pamięć wykorzystywana przez proces, stos, itd...), Procesor ma bezpośredni dostęp do szybkiej pamięci statycznej, rejestrów oraz urządzeń mapowanych na pamięć, Dostęp do głównej pamięci może zająć więcej niż jeden cykl maszynowy (pamięci FLASH, HDD), Każdy proces pracuje w oddzielnej przestrzeni pamięci. 27
MMU (Memory Management Unit) (2) Translacja adresów logicznych na fizyczne Adres fizyczny Adres logiczny Procesor Logiczna przestrzeń adresowa MMU Adres logiczny = Adres fizyczny Fizyczna przestrzeń adresowa Adres logiczny, wirtualny (logical, virtual address) adres wygenerowany przez procesor Adres fizyczny (physical address) adres przetworzony przez jednostkę MMU, odzwierciedlający faktyczny adres w pamięci fizycznej. 28
Przydział ciągły Rejestr przemieszczenia Rejestr bazowy Adres fizyczny Adres logiczny CPU Tak < + Pamięć Nie Wyjątek przekroczenie dozwolonego obszaru pamięci umożliwia ochronę systemu operacyjnego, programów oraz danych. 29
Przydzielanie pamięci i planowanie długoterminowe 0 400 System operacyjny 0 400 P1 1000 System operacyjny 0 400 P1 1000 P2 2300 System operacyjny Obszar wolny P5 Obszar wolny P4 P4 Obszar wolny Obszar wolny Obszar wolny 2300 Obszar wolny 3060 1000 1000 2000 P3 400 P1 Obszar wolny 2000 System operacyjny 0 P3 2300 Obszar wolny 3060 2000 2000 P3 2300 Obszar wolny Obszar wolny 3060 P3 3060 30
Stronicowanie pamięci Numer strony Odległość na stronie P D m n 32-bit n szyna adresowa: 24-bit przestrzeń adresowa: 32-bit rozmiar strony=512 B, n = 2^9 P = 2^23 rozmiar tablicy stron 2^23 Adres logiczny = P * rozmiar_strony + D Procesor Adres fizyczny Adres logiczny Pamięć MMU Tablica stron 31 0 Logiczna przestrzeń adresowa 2 m strony Rozmiar strony 2 n 31 0 Fizyczna przestrzeń adresowa - ramki Pamięć fizyczna podzielona jest na obszary o stałej długości m, tzw. ramki (frames), Pamięć logiczna podzielona jest na obszary o takiej samej długości jak ramki, tzw. strony (pages), długość obszarów jest potęgą liczby dwa w przedziale od 512 B do kilkunastu Mb. Proces zajmuje n stron pamięci (ostatnia strona nie jest wypełniona fragmentacja wewnętrzna) Jednostka MMU tłumaczy adresy logiczne na adresy fizyczne. 31
Obliczenie adresy fizycznego Rozmiar strony = 512 B Adres logiczny = 7 x 512 + 100 = 3684 P = 7, D = 100 F=3 Adres fizyczny = 3 x 512 + 100 = 1636 512 Frame 1 1024 Przesunięcie Frame 2 1536 CPU P D 0 1 2 3 4 5 6 7 8 9 10 F D Frame 3 2084 Frame 4 2560 Frame 5 3076 Frame 3 Frame 6 3584 32
Model stronicowania pamięci fizycznej i logicznej 512 Strona 0 Strona 1 Strona 2 Strona 3 Lista wolnych ramek: 0-7 0 1 2 3 1 4 3 7 Lista wolnych ramek: 0, 2, 5, 6 1024 Frame 0 Frame 1 (strona 0) Frame 2 1536 Frame 3 (strona 2) 2084 Tablica stron Frame 4 (strona 1) 2560 Frame 5 3076 Frame 6 3584 Frame 7 (strona 3) 33
Tablica stron 32-bit Rozmiar strony Tablica stron 4 MB = 2^22 1 kb = 2^10 Trójstopniowa tablica stron Rozmiar strony 4 1 kb = 2^10 1 kb = 2^10 1 kb = 2^10 Tablica stron 0 1 2 3 1 4 3 7 R/W R/W R/W R/W Czas dostępu do rejestrów asocjacyjnych: Czas dostępu do pamięci: U/S U/S U/S U/S X X X X Valid Valid Valid Valid 20 ns 100 ns Wsp. trafień (hit ratio) = 80 % Efektywny czas dostępu = 0,8 x 120 + 0,2 x 220 = 140 ns Wsp. trafień (hit ratio) = 98 % Efektywny czas dostępu = 0,98 x 120 + 0,02 x 220 = 122 ns 34
Zastosowanie rejestrów asocjacyjnych TLB translation look-aside buffers Przesunięcie 512 CPU P D F 32-bit D Frame 1 1024 Frame 2 32-bit 1536 Frame 3 2084 Frame 4 Bufory TLB 0 1 2 3 4 5 2560 Frame 5 3076 Frame 3 Chybienie w TLB odwołanie do Tablicy stron Frame 6 3584 35
Segmentacja 0 Obszar wolny 1400 Stos Segment 0 Podprogram Obszar wolny Segment 3 Program główny Segment 1 Segment 3 4300 4700 Segment 0 Funkcja SQRT 3200 Tablica symboli Segment 2 Segment 2 Segment 4 Segment 4 Obszar wolny 6300 Segment 1 Obszar wolny 36
Obliczenie adresu fizycznego Numer segmentu Odległość S D Numer segmentu Adres logiczny = S + D 0 1 2 Granica Baza 3 4 5 Tablica segmentów Adres fizyczny = Baza segmentu + D 37
Segmentacja obliczanie adresu fizycznego 0 Obszar wolny 1400 Segment 0 Granica Baza Obszar wolny Tablica segmentów 3200 Segment 3 4300 4700 CPU S D Tak < Segment 2 Segment 4 + Obszar wolny Adres logiczny Nie Adres fizyczny 6300 Segment 1 Wyjątek błąd adresowania Obszar wolny 38
Segmentacja 0 Obszar wolny 1400 Stos Segment 0 Podprogram Obszar wolny Segment 3 Program główny Segment 1 Segment 3 4300 4700 Segment 0 Funkcja SQRT 3200 Tablica symboli Segment 2 Segment 2 Segment 4 Segment 4 Obszar wolny 6300 Segment 1 Obszar wolny 39
Rdzeń procesora ColdFire V4e z jednostką MMU 40
ColdFire V4e Procesor z rdzeniem V4e: MCF547x, MCF548x lub V5, 64 rejestry asocjacyjne TLB (32 dla pamięci programu i 32 dla pamięci danych), Obsługa wyjątków w przypadku niepowodzenia odczytu z pamięci (TLB miss), Rozmiar obsługiwanych stron: 1, 4, 8 kb i 1 MB, Jednostka MMU umożliwia uzyskanie poziomu trafności na poziomie 97% w odniesieniu, do procesora rodziny V4 (bez MMC), Obsługa uprawnień (użytkownik/superużytkownik, zapis/odczyt, pamięć wykonywalna), Dostęp do rejestrów TLB przez rejestry modułu MMC, Dostęp do urządzeń specjalnych mapowanych na pamięć (przerwania, urządzenia I/O) lub praca w trybie emulatora odbywa się przy wykorzystaniu adresów fizycznych. 41
Ramka stosu sytuacji wyjątkowych 42
Rejestr statusowy MMUSR 43
Rejestr konfiguracyjny MMUDR 44
Współpraca pamięci podręcznej z MMU CPU Virtual Address TLB Cached? Yes No Translate (MMU) e v t Sa sul Re Physical Address Physical Memory Data Read or Write (untranslated) 45