to get the file
Transkrypt
to get the file
Architektura Systemów Komputerowych Tematy projektowe mgr inż. Leszek Ciopiński Część wspólna wszystkich projektów W ramach projektu należy zaprojektować mikroprogramowalny układ sterowania realizujący rozkazy opisane w tematach projektów. Projekt składa się z trzech części: • Zaproponowana struktura układu • Mikroprogram napisany w postaci listy • Zakodowana wersja mikroprogramu Projekty realizowane są w grupach czteroosobowych. W przypadku, gdy liczba osób nieprzydzielonych do żadnej grupy wyniesie: • 1 lub 2 – osoby te zostaną przyłączone do innych grup, a grupy te dostaną dodatkowe zadania do zrealizowania (kolejne rozkazy) • 3 – osoby te utworzą grupę, która otrzyma zadanie pomniejszone o pewną ilość rozkazów Oznaczenia przyjęte w opisie listy rozkazów procesora: REG - rejestr 16-bitowy A, B, C, D, E, F, ADH, ADL, RA - rejestr 32-bitowy AD lub SP, [RA] - adres argumentu w rejestrze (adresowanie rejestrowe pośrednie, st16[RA] – adresowanie bazowe, adr - adres 32-bitowy (adresowanie bezpośrednie), [adr] - adresowanie pośrednie, st8 - stałą 8-bitowa, st16 - stała 16-bitowa, st32 - stała 32-bitowa. Zakładamy, że pierwszy bajt każdego rozkazu ma następującą budowę: B7..B3 - numer grupy rozkazów B2..B0 – numer rozkazu w grupie Tematy projektów teoretycznych Pracę należy wykonać w formie sprawozdania. Ocena uzależniona jest od jakości zaproponowanego rozwiązania, ilości zrealizowanych rozkazów, zastosowanych technik optymalizacji lub obniżenia kosztów procesora oraz od wyników obrony projektu. Architektura Systemów Komputerowych 2 Projekt strona 1 z 4 Grupa 1: 1. 2. 3. 4. 5. 6. STO RA, adr XOR [RA], REG ABS adr SHL [RA],n LOOP st16 ADD RA, st16 zapis podwójnego słowa z rejestru adresowego do pamięci suma wyłączna słowa z pamięci z rejestrem roboczym wartość bezwzględna słowa w pamięci przesuniecie w lewo słowa pamięci skok względny gdy rejestr C≠0, C ← C-1 dodanie stałej 16-bitowej do rejestru adresowego Grupa 2: 1. 2. 3. 4. 5. 6. SUB REG, REG odjęcie rejestru od rejestru roboczego JNV st16 skoki warunkowe, adresowanie względne NEG REG zmiana znaku zawartości rejestru ADD RA, REG dodanie słowa z rejestru REG do rejestru adresowego SUB REG, REG, st16[RA] odjęcie 2 rejestrów i umieszczenie wyniku w pamięci VINC n nkrementacja wektora w pamięci (inkrementacja każdego elementu) Grupa 3: 1. 2. 3. 4. 5. 6. STO st16, [RA] DEC REG CMP REG, REG XCHG REG, adr SET REG JMP st16[RA] zapis stałej 16-bitowej do pamięci dekrementacja z nasyceniem (U2) zawartości rejestru, porównanie zawartości rejestrów roboczych wymiana danych rejestr-pamięć wypełnienie rejestru wartością 1 skok bezwarunkowy Grupa 4: 1. 2. 3. 4. 5. 6. ADC REG, REG dodanie rejestru do rejestru roboczego z przeniesieniem JNV st16 skoki warunkowe, adresowanie względne NEG REG zmiana znaku zawartości rejestru AND REG, REG iloczyn logiczny rejestrów roboczych ADD REG, REG, st16[RA] dodanie 2 rejestrów i umieszczenie wyniku w pamięci XLAT RA, [adr] translacja wartości z pamięci o adresie w RA wg tabeli o adresie początkowym w [adr] (adresowanie pośrednie), RA++ Grupa 5: 1. 2. 3. 4. 5. 6. STO RA, adr XOR [RA], REG XOR REG, sta16 NOT [REG] VDEC n ADD RA, st16 zapis podwójnego słowa z rejestru adresowego do pamięci suma wyłączna słowa z pamięci z rejestrem roboczym suma wyłączna rejestru roboczego i stałej negacja logiczna słowa w pamięci dekrementacja wektora w pamięci dodanie stałej 16-bitowej do rejestru adresowego Grupa 6: 1. STO st16, [RA] 2. JNV st16 3. CMP REG, [adr] zapis stałej 16-bitowej do pamięci skoki warunkowe, adresowanie względne porównanie słowa z pamięci z rejestrem roboczym Architektura Systemów Komputerowych 2 Projekt strona 2 z 4 4. SHL [RA],n przesuniecie w lewo słowa pamięci 5. SBC REG,REG odjęcie rejestru od rejestru roboczego z pożyczką 6. XCHG REG, st16[RA] wymiana danych rejestr-pamięć Grupa 7: 1. 2. 3. 4. 5. 6. SUB REG, REG DEC REG CMP REG, REG DEC adr CALL adr XLAT RA, [adr] odjęcie rejestru od rejestru roboczego dekrementacja z nasyceniem (U2) zawartości rejestru, porównanie zawartości rejestrów roboczych dekrementacja słowa w pamięci wywołanie procedury translacja wartości z pamięci o adresie w RA wg tabeli o adresie początkowym w [adr] (adresowanie pośrednie), RA++ Grupa 8: 1. 2. 3. 4. 5. 6. STO st16, [RA] zapis stałej 16-bitowej do pamięci XOR [RA], REG suma wyłączna słowa z pamięci z rejestrem roboczym CMP REG, [adr] porównanie słowa z pamięci z rejestrem roboczym SUB REG, REG, [RA] odjęcie 2 rejestrów i umieszczenie wyniku w pamięci LOOP st16 skok względny gdy rejestr C≠0, C ← C-1 ADD RA, st16 dodanie stałej 16-bitowej do rejestru adresowego Grupa 9: 1. 2. 3. 4. 5. 6. ADC REG, REG dodanie rejestru do rejestru roboczego z przeniesieniem SHR [adr],n przesunięcie w prawo słowa w pamięci XOR REG, sta16 suma wyłączna rejestru roboczego i stałej ADD RA, REG dodanie słowa z rejestru REG do rejestru adresowego ADD REG, REG, st16[RA] dodanie 2 rejestrów i umieszczenie wyniku w pamięci CMPGE REG, REG, st16 porównanie 2 rejestrów i skok gdy większe lub równe, Grupa 10: 1. 2. 3. 4. 5. STO RA, adr DEC REG CMP REG, REG JB st16 SUB REG, adr 6. CLR [RA] zapis podwójnego słowa z rejestru adresowego do pamięci dekrementacja z nasyceniem (U2) zawartości rejestru, porównanie zawartości rejestrów roboczych skok gdy mniejsze (NKB) odjęcie z nasyceniem (U2) słowa z pamięci od rejestru roboczego zerowanie słowa w pamięci adresowanie rejestrowe pośrednie Grupa 11: 1. 2. 3. 4. 5. 6. STO st16, [RA] zapis stałej 16-bitowej do pamięci SHR [adr],n przesunięcie w prawo słowa w pamięci NEG REG zmiana znaku zawartości rejestru SUB REG, REG, [RA] odjęcie 2 rejestrów i umieszczenie wyniku w pamięci VDEC n dekrementacja wektora w pamięci VINC n inkrementacja wektora w pamięci (inkrementacja każdego elementu) Architektura Systemów Komputerowych 2 Projekt strona 3 z 4 Tematy projektów praktycznych Wynikiem projektu powinien być układ realizujący podane dla danej grupy rozkazy zrealizowany w środowisku Altera Quartus II. Jako sprawozdanie projektu należy wykonać dokumentację (możliwie jak najkrótszą) informującą o dokonanych zmianach w architekturze i prezentującą wyniki eksperymentów (z odpowiednim komentarzem) potwierdzających prawidłowość implementacji projektu (np. zrzut ekranu z wynikami ModelSim Altera Starter Edition). W ramach projektu można używać komponentów dostarczonych przez prowadzącego (np.: plik rejestrów), środowisko Altera Quartus II (włączając w to pakiety dodatkowe) lub innych, pod warunkiem posiadania odpowiedniej licencji i zgody prowadzącego na ich użycie. Ocena końcowa z projektu uzależniona jest od jakości wykonanego projektu, sprawozdania i wyniku obrony. Grupa A: 1. LOAD REG, [RA] 2. JNV st16 3. NEG REG odczyt słowa z pamięci do rejestru roboczego skoki warunkowe, adresowanie względne zmiana znaku zawartości rejestru Grupa B: 1. LOAD REG, [adr] 2. AND REG, REG 3. XCHG REG, st16[RA] odczyt słowa z pamięci do rejestru roboczego iloczyn logiczny rejestrów roboczych wymiana danych rejestr-pamięć Grupa C: 1. STO REG, [RA] 2. STO st32, adr 3. ADD RA, REG zapis słowa z rejestru roboczego do pamięci zapis stałej 32-bitowej do pamięci dodanie słowa z rejestru REG do rejestru adresowego Grupa D: 1. STO REG, [adr] 2. CMP REG, [RA] 3. SBC REG,REG zapis słowa z rejestru roboczego do pamięci porównanie słowa z pamięci z rejestrem roboczym odjęcie rejestru od rejestru roboczego z pożyczką Grupa E: 1. MOV REG, REG 2. SUB REG, REG, [RA] 3. JMP st16[RA] Architektura Systemów Komputerowych 2 przesłanie słowa z rejestru do rejestru odjęcie 2 rejestrów i umieszczenie wyniku w pamięci skok bezwarunkowy Projekt strona 4 z 4