Programowalne układy logiczne

Podobne dokumenty
Architektura typu Single-Cycle

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

Architektura komputerów. Asembler procesorów rodziny x86

Struktura i działanie jednostki centralnej

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

Architektura Systemów Komputerowych

Organizacja typowego mikroprocesora

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Przetwarzanie potokowe pipelining

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Architektura komputerów

Programowalne układy logiczne

Architektura potokowa RISC

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

LEKCJA TEMAT: Współczesne procesory.

Programowalne układy logiczne

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A

Lista Rozkazów: Język komputera

Architektura typu multi cycle

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Technika mikroprocesorowa I Wykład 2

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Architektura mikroprocesorów z rdzeniem ColdFire

Architektura systemów komputerowych

Materiały do wykładu. 4. Mikroprocesor. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

Programowalne układy logiczne

Programowanie Niskopoziomowe

Budowa komputera Komputer computer computare

Architektura Systemów Komputerowych

Mikroprocesory i Mikrosterowniki

Projekt prostego procesora

Mikroprocesory i mikrosterowniki

Podstawy techniki mikroprocesorowej. Dr inż. Grzegorz Kosobudzki p.311a A-5. Tel

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

MIKROKONTROLERY I MIKROPROCESORY

Podstawy Techniki Mikroprocesorowej

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Logiczny model komputera i działanie procesora. Część 1.

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Architektura systemów komputerowych. dr Artur Bartoszewski

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Elementy oprogramowania sterowników. Instrukcje podstawowe, funkcje logiczne, układy czasowe i liczenia, znaczniki

Sterowniki programowalne

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/ / 27

Architektura komputerów Wykład 2

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Mikroprocesory i Mikrosterowniki

Układy mikroprogramowane

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.02 Rok akad. 2011/ / 35

1. Operacje logiczne A B A OR B

Projektowanie Urządzeń Cyfrowych

Architektura komputerów, Informatyka, sem.iii. Rozwiązywanie konfliktów danych i sterowania w architekturze potokowej

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

Specyfika projektowania Mariusz Rawski

Architektura systemów komputerowych. Przetwarzanie potokowe I

UKŁADY MIKROPROGRAMOWANE

Tranzystor JFET i MOSFET zas. działania

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Podstawy programowania w języku C i C++

Programowalne układy logiczne

Ćwiczenie 31 Temat: Analogowe układy multiplekserów i demultiplekserów. Układ jednostki arytmetyczno-logicznej (ALU).

Mikrokontroler ATmega32. Język symboliczny

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Budowa i zasada działania komputera. dr Artur Bartoszewski

Sprzęt i architektura komputerów

Witold Komorowski: RISC. Witold Komorowski, dr inż.

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Architektura komputerów

Budowa Mikrokomputera

Cyfrowe układy scalone c.d. funkcje

Architektura systemów komputerowych. Moduł kontrolera

Projektowanie automatów z użyciem VHDL

Magistrala systemowa (System Bus)

Architektura komputerów

Architektura Systemów Komputerowych

Architektura systemów komputerowych. Arytmetyka maszyn cyfrowych

drklaus 1 Model funkcjonalny komputera struktura, funkcje, komputer dr inż. Rafał KLAUS STRUKTURA I DZIAŁANIE KOMPUTERA

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Jerzy Nawrocki, Wprowadzenie do informatyki

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

Sterowniki Programowalne (SP) Wykład #4

A Machine Architecture that is Really Intuitive and Easy. Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne

Sposoby projektowania systemów w cyfrowych

Mikrooperacje. Mikrooperacje arytmetyczne

organizacja procesora 8086

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Systemy Czasu Rzeczywistego FPGA

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Podział sumatorów. Równoległe: Szeregowe (układy sekwencyjne) Z przeniesieniem szeregowym Z przeniesieniem równoległym. Zwykłe Akumulujące

Adam Korzeniewski p Katedra Systemów Multimedialnych

Architektura komputerów

Transkrypt:

Programowalne układy logiczne Mikroprocesor Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 6 grudnia 2014

Zbudujmy własny mikroprocesor Bardzo prosty: 16-bitowy, 16 rejestrów ogólnego przeznaczenia, 16-bitowe adresy, 16-bitowe kody instrukcji, 2 16 słów 16-bitowych pamięci programu (ROM), jeden 16-bitowy rejestr wejściowy, jeden 16-bitowy rejestr wyjściowy. Mimo to bardzo nowoczesny: RISC, tylko 26 instrukcji, przetwarzanie potokowe.

Założenia upraszczające Nie będziemy implementować: interfejsu do pamięci operacyjnej (RAM), pamięci podręcznej, systemu przerwań i jeszcze kilku innych, zbędnych wodotrysków... W naszej konstrukcji zignorujemy też wiele istotnych problemów: dystrybucja sygnału zegarowego, minimalizacja poboru mocy.

Dobrze jest zacząć od zaprojektowania listy instrukcji Dwuargumentowe instrukcje arytmetyczno-logiczne 0 op dst src1 src2 op instrukcja 000 add dst, src1, src2 001 sub dst, src1, src2 010 and dst, src1, src2 011 or dst, src1, src2 100 xor dst, src1, src2 101 cps dst, src1, src2 110 cpu dst, src1, src2 Argumenty dst, src1, src2 to 4-bitowe numery rejestrów. Instrukcje cps i cpu porównują odpowiednio liczby ze znakiem i bez znaku. Gdy src1 < src2 rejestr dst przyjmuje wartość 1, a w p.p. wartość 0.

Lista instrukcji, cd. Jednoargumentowe instrukcje arytmetyczno-logiczne 1000 dst src 0 op op instrukcja 000 shr dst, src 001 sar dst, src 010 rol dst, src 011 ror dst, src 100 neg dst, src 101 not dst, src 110 inc dst, src 111 dec dst, src Argumenty dst i src to 4-bitowe numery rejestrów. Instrukcja shr to logiczne przesunięcie o jeden bit w prawo. Instrukcja sar to arytmetyczne przesunięcie o jeden bit w prawo.

Lista instrukcji, cd. Zauważmy, że nie potrzebujemy instrukcji shl dst, src zamiast niej można użyć instrukcji add dst, src, src Przy okazji zauważmy też, że nie potrzebujemy instrukcji mov dst, src można użyć instrukcji or dst, src, src Instrukcje rol i ror to rotacje o jeden bit odpowiednio w lewo i prawo. Instrukcje neg i not to odpowiednio negacja arytmetyczna i logiczna. Instrukcje inc i dec to odpowiednio zwiększenie i zmniejszenie o jeden.

Lista instrukcji, cd. Skok (ang. branch) bezwarunkowy lub powrót z podprogramu do instrukcji o adresie, który znajduje się w rejestrze dst b dst 1000 dst 0000 1000 Skok do podprogramu 1000 dst lr 1001 bl dst, lr Semantyka tej instrukcji w VHDL lr <= pc + 1; pc <= dst;

Lista instrukcji, cd. Po co nam taka dziwna instrukcja? 1000 dst src 1010 lda dst, src+pc+1 Semantyka tej instrukcji w VHDL dst <= src + pc + 1; Zamiana bajtów (ang. byte swap) 1000 dst src 1011 bsw dst, src Semantyka tej instrukcji w VHDL dst <= src(7 downto 0) & src(15 downto 8);

Lista instrukcji, cd. Mikroprocesor musi komunikować się ze światem zewnętrznym. Wejście-wyjście 1000 dst src 1110 in dst, [src] 1000 dst src 1111 out [dst], src Dla uproszczenia ignorujemy argument [...], czyli adres portu wejścia-wyjścia aktualna wersja mikroprocesora ma tylko po jednym porcie wejściowym i wyjściowym.

Lista instrukcji, cd. Argument natychmiastowy 1001 dst imm ld dst, imm Skoki warunkowe 1010 reg imm bz reg, imm Semantyka tej instrukcji w VHDL pc <= pc + imm + 1 when reg = 0 else pc + 1; 1011 reg imm bnz reg, imm Semantyka tej instrukcji w VHDL pc <= pc + imm + 1 when reg /= 0 else pc + 1; Stała imm jest 8-bitową liczbą ze znakiem.

Lista instrukcji, koniec Przesunięcie starszego bajtu, ładowanie stałej 1100 dst imm ldhl dst, imm Semantyka tej instrukcji w VHDL dst(7 downto 0) <= dst(15 downto 8); dst(15 downto 8) <= imm; Przyjęta architektura wyklucza istnienie instrukcji, która ładowałaby 16-bitową stałą do rejestru. Aby załadować 16-bitową stałą, trzeba dwukrotnie użyć instrukcji ldhl. Dwudziesta szósta instrukcja halt Jaki jest jej kod maszynowy?

Potok instrukcji Potok będzie dwuetapowy: IF (ang. instruction fetch) pobranie i zdekodowanie instrukcji, EX (ang. execution) wykonanie instrukcji. Architektura naszego mikroprocesora została tak zaprojektowana, aby nie było zależności danych. Pojawia się tylko zależność sterowania. IF EX IF EX IF IF skok EX Po wykonaniu skoku trzeba opróżnić potok i ponownie pobrać instrukcję.

Pora zaprojektować hardłer branch/branch addr address ROM if out ex in IF IF/EX data EX in out

Blok IF branch next pc branch addr PC +1 if out next instr addr rom address rom data instruction decoder if out alu op, alu arg1,...

Blok EX, GPRs src1 addr src2 addr dst addr reg write op GPRs src1 src2 dst

Blok EX, ALU src1 imm data alu in1 alu arg1 alu out src2 next instr addr alu in2 alu arg2 alu op

Blok EX, zapis wyniku (ang. write back), wejście-wyjście alu out dst in read op in data IN in port src1 OUT out port out write op

Blok EX, obsługa skoków src2 alu out branch addr src1 branch op branch logic branch addr sel branch

Uwagi końcowe Do każdego bloku synchronicznego trzeba doprowadzić sygnał clock i reset. Natomiast bloki kombinacyjne nie wymagają taktowania i zerowania. Musimy dodać układ opróżniania potoku po skoku. Dodajemy blokowanie rejestru IF/EX za pomocą sygnału branch, aby kolejna już pobrana i zdekodowana instrukacja nie została przekazana do wykonania. Generujemy dodatkowy sygnał dead instruction, który blokuje ponowne wykonanie właśnie wykonanej i nadal przebywającej w EX instrukcji. Szczegóły w tekście źródłowym, który jest pod adresem http://www.mimuw.edu.pl/~marpe/pul/hdl/ w8_microprocessor.

Czego jeszcze potrzebuje nasz mikroprocesor? RAM na poprzednim lub następnym wykładzie Układ mnożący na poprzednim lub następnym wykładzie Interfejs do komunikacji ze światem zewnętrznym trzecie zadanie A może ktoś ma inny, ciekawy pomysł na rozszerzenie jego funkcjonalności czwarte zadanie

Propozycje zadania 4 Rozbudować przedstawiony mikroprocesor o układ mnożący, RAM, więcej etapów potoku Zaprojektować i skonstruować własny mikroprocesor o niestandardowej architekturze (maszyna stosowa, funkcyjny,... ) Procesor z samomodyfikacją kodu wojny rdzeniowe Stworzyć szałową grę korzystającą z VGA i myszki jednoosobową: squash, pong, wąż, wyścig, gwiezdne wojny,... dwuosobową: tenis, strzelanka,... Kilkukanałowy analizator stanów logicznych (coś w rodzaju oscyloskopu)... Temat należy uzgodnić z prowadzącym. Bardziej skomplikowane projekty można realizować w parach. Czas na oddanie rozwiązania do końca semestru.