Architektura systemów komputerowych. Lista instrukcji procesora

Podobne dokumenty
Architektura komputerów

Architektura komputerów

Organizacja typowego mikroprocesora

Architektura komputerów. Asembler procesorów rodziny x86

2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24

Projektowanie. Projektowanie mikroprocesorów

Budowa i zasada działania komputera. dr Artur Bartoszewski

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

Struktura i działanie jednostki centralnej

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

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Architektura typu Single-Cycle

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Architektura mikroprocesorów TEO 2009/2010

Język programowania: Lista instrukcji (IL Instruction List)

Architektura systemów komputerowych

Architektura systemów komputerowych. Przetwarzanie potokowe I

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

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

Architektura systemów komputerowych. Konstrukcja i zasada działania mikroprocesora

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

002 Opcode Strony projektu:

organizacja procesora 8086

Procesory rodziny x86. Dariusz Chaberski

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura komputerów

Sprzęt i architektura komputerów

Programowanie Niskopoziomowe

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

ARCHITEKTURA PROCESORA,

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

Budowa komputera Komputer computer computare

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

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

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Programowanie Niskopoziomowe

Programowanie niskopoziomowe

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Sprzęt i architektura komputerów

Wprowadzenie do architektury komputerów. Model programowy procesora i jego struktura Procesory CISC i RISC

Lista Rozkazów: Język komputera

UKŁADY MIKROPROGRAMOWALNE

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

PROGRAMOWANIE NISKOPOZIOMOWE

Architektura Systemów Komputerowych

Architektura komputerów

Architektura systemów komputerowych. Moduł kontrolera

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Przykładowe pytania DSP 1

Architektura Systemów Komputerowych

Programowanie w asemblerze Środowiska 64-bitowe

Podstawy Techniki Mikroprocesorowej

Budowa Mikrokomputera

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

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

Lista instrukcji mikroprocesora Programowanie w assemblerze

Programowanie Niskopoziomowe

Jerzy Nawrocki, Wprowadzenie do informatyki

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

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

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

end start ; ustawienie punktu startu programu i koniec instrukcji w assemblerze.

PROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

Rozszerzalne kody operacji (przykład)

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

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

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

Podstawy Informatyki Układ sterujący

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA

Programowanie komputera

LEKCJA TEMAT: Współczesne procesory.

MIKROKONTROLERY I MIKROPROCESORY

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

BUDOWA I DZIAŁANIE MIKROPROCESORA

Programowanie w asemblerze Środowiska 64-bitowe

architektura komputerów w. 4 Realizacja sterowania

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

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

Pytania. W obecnie wykorzystywanych komputerach osobistych jest stosowana architektura: jednoszynowa. pamięciowo-centryczna.

Architektura potokowa RISC

Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski

PRZEWODNIK PO PRZEDMIOCIE

Architektura mikroprocesorów z rdzeniem ColdFire

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

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

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

Załącznik do ćwiczenia w środowisku MASM32 wersji 10 Sterowanie przebiegiem wykonania programu

Ćwiczenie nr 6. Programowanie mieszane

Podstawy Informatyki Systemy sterowane przepływem argumentów

LEKCJA TEMAT: Zasada działania komputera.

Technologie Informacyjne Wykład 3

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

Ćwiczenie 3. Konwersja liczb binarnych

Transkrypt:

Architektura systemów komputerowych

Plan wykładu 1. Rozkaz, lista rozkazów procesora. 2. Mikroprogramowanie. 3. Język maszynowy. 4. Projekt P: koncepcja, model rozkazu. Cele Architektura procesorów: von Neumana i harwardzka. Wiedza na temat interakcji mikroprocesora, pamięci i urządzeń we/wy. Znajomość technik projektowania procesora.

Rozkaz, lista rozkazów procesora

Rozkaz, lista rozkazów pojęcie rozkazu i listy instrukcji procesora model IA-32 zbiór rozkazów Architektura systemu komputerowego często jest zdeterminowana modelem rozpoznawanych poleceń w takim przypadku mówi się o specyfikacji ISA (ang. Instruction Set Architecture). Definicje: rozkaz modele ISA typy rozkazów

Rozkaz, lista rozkazów pojęcie rozkazu i listy instrukcji procesora model IA-32 zbiór rozkazów Architektura systemu komputerowego często jest zdeterminowana modelem rozpoznawanych poleceń w takim przypadku mówi się o specyfikacji ISA (ang. Instruction Set Architecture). Definicje: rozkaz modele ISA typy rozkazów W odniesieniu do CPU rozkaz jest kodem operacji, wykonywanej przez procesor. Postać rozkazu jest następująca: kod rozkazu argumenty bit 27 18 0 Zarówno pole kodu rozkazu, jak i pole argumentów są umowne w zależności od typu rozkazu poszczególne bity mogą mieć różne znaczenia. Z tego powodu wyróżnia się dwa rodzaje rozkazów: bezadresowe w których operandy są domyślne, adresowe dla których należy podać adresy argumentów. Jedynym stałym polem rozkazu jest jego kod. Pozostałe elementy mogą być stałe lub zmienne. Z tego względu rozkazy można podzielić na: instrukcje o stałej długości domena RISC, instrukcje o zmiennej długości często związane z modelem CISC.

Rozkaz, lista rozkazów pojęcie rozkazu i listy instrukcji procesora model IA-32 zbiór rozkazów Architektura systemu komputerowego często jest zdeterminowana modelem rozpoznawanych poleceń w takim przypadku mówi się o specyfikacji ISA (ang. Instruction Set Architecture). Definicje: rozkaz modele ISA typy rozkazów W odniesieniu do CPU rozkaz jest kodem operacji, wykonywanej przez procesor. Postać rozkazu jest następująca: kod rozkazu Wyróżnia się dwa modele ISA: CISC ang. Complex Instruction Set Computer: - duża liczba różnorodnych rozkazów, - wykonanie instrukcji może zająć wiele cykli zegara. RISC ang. Reduced Instruction Set Computer: - mała liczba rozkazów (typowo do 32), - zazwyczaj każda instrukcja wykonuje się w jednym cyklu zegara, - łatwa implementacja potoku. argumenty bit 27 18 0 Zarówno pole kodu rozkazu, jak i pole argumentów są umowne w zależności od typu rozkazu poszczególne bity mogą mieć różne znaczenia. Z tego powodu wyróżnia się dwa rodzaje rozkazów: bezadresowe w których operandy są domyślne, adresowe dla których należy podać adresy argumentów. Jedynym stałym polem rozkazu jest jego kod. Pozostałe elementy mogą być stałe lub zmienne. Z tego względu rozkazy można podzielić na: instrukcje o stałej długości domena RISC, instrukcje o zmiennej długości często związane z modelem CISC.

Rozkaz, lista rozkazów pojęcie rozkazu i listy instrukcji procesora model IA-32 zbiór rozkazów Architektura systemu komputerowego często jest zdeterminowana modelem rozpoznawanych poleceń w takim przypadku mówi się o specyfikacji ISA (ang. Instruction Set Architecture). Definicje: rozkaz modele ISA typy rozkazów Instrukcje można podzielić na grupy: rozkazy przetwarzania danych i operacji na pamięci, operacje arytmetyczne i logiczne, instrukcje modyfikujące przepływ sterowania. Powyższe grupy rozkazów są związane z konkretnymi blokami mikroarchitektury CPU. Wyróżnia się dwa modele ISA: CISC ang. Complex Instruction Set Computer: - duża liczba różnorodnych rozkazów, - wykonanie instrukcji może zająć wiele cykli zegara. RISC ang. Reduced Instruction Set Computer: - mała liczba rozkazów (typowo do 32), - zazwyczaj każda instrukcja wykonuje się w jednym cyklu zegara, - łatwa implementacja potoku. W odniesieniu do CPU rozkaz jest kodem operacji, wykonywanej przez procesor. Postać rozkazu jest następująca: kod rozkazu argumenty bit 27 18 0 Zarówno pole kodu rozkazu, jak i pole argumentów są umowne w zależności od typu rozkazu poszczególne bity mogą mieć różne znaczenia. Z tego powodu wyróżnia się dwa rodzaje rozkazów: bezadresowe w których operandy są domyślne, adresowe dla których należy podać adresy argumentów. Jedynym stałym polem rozkazu jest jego kod. Pozostałe elementy mogą być stałe lub zmienne. Z tego względu rozkazy można podzielić na: instrukcje o stałej długości domena RISC, instrukcje o zmiennej długości często związane z modelem CISC.

Rozkaz, lista rozkazów pojęcie rozkazu i listy instrukcji procesora Forma rozkazów jest charakterystyczna dla rodziny procesora i jest związana z modelem funkcjonalnym architektury. model IA-32 Rozkazy IA-32 (x86) mogą składać się od 1 do 17 bajtów. Rozkaz może zawierać wartość adresu w pamięci lub liczbę, jaką procesor zapisze do rejestru. zbiór rozkazów Format rozkazu: instruction prefix prefix REX opcode 1-4 bajtów 1 bajt (opcjonalne) (opcjonalny) 7 displacement immediate 1-3 bajtów 1, 2, 4, 8 bajtów 1, 2,4, 8 bajtów (obowiązkowe) (jeśli potrzebne) (jeśli potrzebne) 6 5 mod mod R/M 3 2 reg2/ opcode 0 reg1/ mem SIB 7 6 5 scale 3 2 index 1 bajt 1 bajt (jeśli potrzebny) (jeśli potrzebny) 0 base

Rozkaz, lista rozkazów pojęcie rozkazu i listy instrukcji procesora model IA-32 zbiór rozkazów Forma rozkazów jest charakterystyczna dla rodziny procesora i jest związana z modelem funkcjonalnym architektury. Rozkazy IA-32 (x86) mogą składać się od 1 do 17 bajtów. Rozkaz może zawierać wartość adresu w pamięci lub liczbę, jaką procesor zapisze do rejestru. Znaczenie pól rozkazu: instruction prefix Instrukcja może mieć jeden prefiks z każdej z grup: - grupa 1: lock, repe/repz, rep, repne/repnz - grupa 2: CS, DS, ES, FS, GS, SS, znacznik skoku - grupa 3: zmiana rozmiaru operandów - grupa 4: zmiana rozmiaru adresu Dostępny tylko w trybie 64-bitowym. Włącza dostęp do dodatkowych rejestrów: RAX, RBX, RIP, RSP, RFLAGS,, ośmiu rejestrów całkowitoliczbowych R8...R15, ośmiu dodatkowych rejestrów SSE, kontrolnych CR8 do CR15 i debuggera DR8 do DR15. Bity określają rodzaj operandów, gdzie reg1 jest źródłem, a reg2 miejscem przeznaczenia. Operandami może być: jeden rejestr, dwa rejestry, rejestr adres lub pamięć adres, kombinacja rejestrów, np. BX + SI, BP + DI, rejestr + [rejestr] + przemieszczenie 0, 1, 2 bajty. Jest prefiksem sposobu adresowania, w którym do obliczenia adresu procesor stosuje wzór: (rejestr indeksowy 2skala) + rejestr bazowy Mechanizm adresowania uwzględnia pole mod R/M, dzięki czemu adres może mieć postać w której dostępne jest również przemieszczenie, np.: [EBX 8 + ESI + 200h] mod R/M prefix REX SIB

Rozkaz, lista rozkazów pojęcie rozkazu i listy instrukcji procesora model IA-32 zbiór rozkazów Format rozkazu zależy od wielu czynników. Należy wziąć pod uwagę: rodzaje wykonywanych operacji, długość słowa maszynowego, dostępne moduły, itp. Definicje: model programowania implementacja liczba operandów

Rozkaz, lista rozkazów pojęcie rozkazu i listy instrukcji procesora model IA-32 zbiór rozkazów Format rozkazu zależy od wielu czynników. Należy wziąć pod uwagę: rodzaje wykonywanych operacji, długość słowa maszynowego, dostępne moduły, itp. Definicje: model programowania implementacja liczba operandów Format instrukcji jest zależny od środowiska, dla którego jest przeznaczony CPU. Należy tu wziąć pod uwagę: rodzaj danych, model komunikacji między CPU z pamięcią, zasoby wbudowane w CPU, dostępne zasoby komputera.

Rozkaz, lista rozkazów pojęcie rozkazu i listy instrukcji procesora model IA-32 zbiór rozkazów Format rozkazu zależy od wielu czynników. Należy wziąć pod uwagę: rodzaje wykonywanych operacji, długość słowa maszynowego, dostępne moduły, itp. Definicje: model programowania implementacja liczba operandów Format instrukcji jest zależny od środowiska, dla którego jest przeznaczony CPU. Należy tu wziąć pod uwagę: rodzaj danych, model komunikacji między CPU z pamięcią, zasoby wbudowane w CPU, dostępne zasoby komputera. Implementacja modelu rozkazów może zostać zrealizowana w dwojaki sposób: poprzez wykonanie układów kontrolera i dekodera układy FSM dedykowanych dla konkretnych rozkazów i dostosowanych do wykonywania ich w całości, projektując mikroarchitekturę wtedy CPU składa się z bloków (zazwyczaj projektowanych osobno), a rozkaz jest dzielony na elementarne operacje, często wspólne dla wielu rozkazów. Mikroarchitekturę CPU projektuje się stosując model RTL (ang. Register Transfer Level).

Rozkaz, lista rozkazów pojęcie rozkazu i listy instrukcji procesora model IA-32 zbiór rozkazów Format rozkazu zależy od wielu czynników. Należy wziąć pod uwagę: rodzaje wykonywanych operacji, długość słowa maszynowego, dostępne moduły, itp. Definicje: model programowania implementacja liczba operandów Zazwyczaj rozkazy realizują operacje obliczeniowe lub kontrolne, związane z operandami (parametrami). Dla architektury typu SISD wyróżnia się następujące typy rozkazów: 0-operandów rozkazy bezadresowe np. operacje wykonują obliczenia wykorzystując stos (koprocesor arytmetyczny), 1-operand np. rozkazy adresowane domyślnie typowo drugim argumentem (jeśli taki występuje) jest akumulator, 2-operandy model stosowany powszechnie w CPU typu CISC i RISC zazwyczaj jeden z operandów rozkazu jest jednocześnie argumentem i miejscem na wynik, 3-operandy w zasadzie stosowane tylko w CISC. W architekturach SIMD liczba argumentów rozkazów zazwyczaj przekracza 3 tego typu instrukcje realizują przetwarzanie danych wektorowych. W modelu VLIW (będący implementacją architektury MIMD) rozkazy mogą mieć cechy architektur SISD i SIMD. Format instrukcji jest zależny od środowiska, dla którego jest przeznaczony CPU. Należy tu wziąć pod uwagę: rodzaj danych, model komunikacji między CPU z pamięcią, zasoby wbudowane w CPU, dostępne zasoby komputera. Implementacja modelu rozkazów może zostać zrealizowana w dwojaki sposób: poprzez wykonanie układów kontrolera i dekodera układy FSM dedykowanych dla konkretnych rozkazów i dostosowanych do wykonywania ich w całości, projektując mikroarchitekturę wtedy CPU składa się z bloków (zazwyczaj projektowanych osobno), a rozkaz jest dzielony na elementarne operacje, często wspólne dla wielu rozkazów. Mikroarchitekturę CPU projektuje się stosując model RTL (ang. Register Transfer Level).

Mikroprogramowanie

Mikroprogramowanie zagadnienia związane z mikroprogramowaniem mikrooperacje CISC i RISC W ogólności sterowanie w układach cyfrowych polega na wygenerowaniu sygnałów sterujących, będących funkcją stanu układu. Owa funkcja jest postaci: C = F(S, t) gdzie: C = {c0, c1, cn} jest wektorem sterującym (funkcją sterującą) S = {s0, s1, sm} jest wektorem stanu maszyny, t oznacza czas (sygnał zegara).

Mikroprogramowanie zagadnienia związane z mikroprogramowaniem mikrooperacje CISC i RISC W ogólności sterowanie w układach cyfrowych polega na wygenerowaniu sygnałów sterujących, będących funkcją stanu układu. Owa funkcja jest postaci: C = F(S, t) gdzie: C = {c0, c1, cn} jest wektorem sterującym (funkcją sterującą) S = {s0, s1, sm} jest wektorem stanu maszyny, t oznacza czas (sygnał zegara). Definicje: mikrooperacja mikroprogram

Mikroprogramowanie zagadnienia związane z mikroprogramowaniem mikrooperacje CISC i RISC W ogólności sterowanie w układach cyfrowych polega na wygenerowaniu sygnałów sterujących, będących funkcją stanu układu. Owa funkcja jest postaci: C = F(S, t) gdzie: C = {c0, c1, cn} jest wektorem sterującym (funkcją sterującą) S = {s0, s1, sm} jest wektorem stanu maszyny, t oznacza czas (sygnał zegara). Definicje: mikrooperacja mikroprogram Uporządkowany zbiór sygnałów sterujących C, w czasie t, nazywa się mikrooperacją. Maksymalna liczba mikrooperacji w systemie wynosi 2n, gdzie n jest liczbą sygnałów sterujących. Na etapie projektowania układu cyfrowego sygnały sterujące można przypisać do: modułów układu, wejść układu. Zazwyczaj interakcje między modułami maszyny cyfrowej opisuje się za pomocą grafu skierowanego, którego węzły odpowiadają modułom. Krawędzie w grafie oznaczają możliwość przesyłu danych między modułami, które łączą. Wagi na krawędziach odpowiada sygnałom sterującym.

Mikroprogramowanie zagadnienia związane z mikroprogramowaniem mikrooperacje CISC i RISC W ogólności sterowanie w układach cyfrowych polega na wygenerowaniu sygnałów sterujących, będących funkcją stanu układu. Owa funkcja jest postaci: C = F(S, t) gdzie: C = {c0, c1, cn} jest wektorem sterującym (funkcją sterującą) S = {s0, s1, sm} jest wektorem stanu maszyny, t oznacza czas (sygnał zegara). Definicje: mikrooperacja mikroprogram Jest to uporządkowany ciąg mikrooperacji, których wykonanie powoduje także wykonanie rozkazu. Mikroprogram powstaje na podstawie diagramów instrukcji, tworzonych przez uporządkowanie względem czasu sygnałów sterujących odpowiadających rozkazom. Mikroprogram musi uwzględniać fazy cyklu rozkazu. Zależnie od modelu mikrooperacji w mikroprogramie mogą być dostępne rozgałęzienia, tak, jak w zwykłym programie co pozwala wykonywać złożone operacje. W CPU mikroprogram znajduje się pamięci wbudowanej w układ procesora. Uporządkowany zbiór sygnałów sterujących C, w czasie t, nazywa się mikrooperacją. Maksymalna liczba mikrooperacji w systemie wynosi 2n, gdzie n jest liczbą sygnałów sterujących. Na etapie projektowania układu cyfrowego sygnały sterujące można przypisać do: modułów układu, wejść układu. Zazwyczaj interakcje między modułami maszyny cyfrowej opisuje się za pomocą grafu skierowanego, którego węzły odpowiadają modułom. Krawędzie w grafie oznaczają możliwość przesyłu danych między modułami, które łączą. Wagi na krawędziach odpowiada sygnałom sterującym.

Mikroprogramowanie zagadnienia związane z mikroprogramowaniem mikrooperacje CISC i RISC Mikrooperacje mogą mieć mniej lub bardziej złożoną postać. Minimalna postać wymaga obecności kodu operacji oraz pola sygnałów sterujących, Bardziej złożone formy pozwalają na tworzenie złożonych programów. Format mikrooperacji: sygnały sterujące czas ctrl adres adr mod

Mikroprogramowanie zagadnienia związane z mikroprogramowaniem Mikrooperacje mogą mieć mniej lub bardziej złożoną postać. Minimalna postać wymaga obecności kodu operacji oraz pola sygnałów sterujących, Bardziej złożone formy pozwalają na tworzenie złożonych programów. mikrooperacje Format mikrooperacji: CISC i RISC sygnały sterujące Diagram rozkazu wyznacza się na podstawie układu, który ma wykonać instrukcję. wy we A m0 LA m1 S C LC B LB rozkaz A=A+B B = we m0 m1 LA 1 1 1 0 - LB - LC - czas ctrl adres adr mod

Mikroprogramowanie zagadnienia związane z mikroprogramowaniem Mikrooperacje mogą mieć mniej lub bardziej złożoną postać. Minimalna postać wymaga obecności kodu operacji oraz pola sygnałów sterujących, Bardziej złożone formy pozwalają na tworzenie złożonych programów. mikrooperacje Format mikrooperacji: CISC i RISC sygnały sterujące Diagram rozkazu wyznacza się na podstawie układu, który ma wykonać instrukcję. wy we A m0 LA m1 S C LC B LB rozkaz A=A+B B = we m0 m1 LA 1 1 1 0 - LB - LC - czas ctrl adres adr mod

Mikroprogramowanie zagadnienia związane z mikroprogramowaniem Mikrooperacje mogą mieć mniej lub bardziej złożoną postać. Minimalna postać wymaga obecności kodu operacji oraz pola sygnałów sterujących, Bardziej złożone formy pozwalają na tworzenie złożonych programów. mikrooperacje Format mikrooperacji: CISC i RISC sygnały sterujące Diagram rozkazu wyznacza się na podstawie układu, który ma wykonać instrukcję. wy we A m0 LA m1 S C LC B LB rozkaz A=A+B B = we m0 m1 LA 1 1 1 0 - LB - LC - czas ctrl adres adr mod

Mikroprogramowanie zagadnienia związane z mikroprogramowaniem Mikrooperacje mogą mieć mniej lub bardziej złożoną postać. Minimalna postać wymaga obecności kodu operacji oraz pola sygnałów sterujących, Bardziej złożone formy pozwalają na tworzenie złożonych programów. mikrooperacje Format mikrooperacji: CISC i RISC sygnały sterujące Diagram rozkazu wyznacza się na podstawie układu, który ma wykonać instrukcję. wy we A m0 LA m1 S C LC B LB rozkaz A=A+B B = we m0 m1 LA 1 1 1 0 - LB - LC - czas ctrl adres adr mod

Mikroprogramowanie zagadnienia związane z mikroprogramowaniem Mikrooperacje mogą mieć mniej lub bardziej złożoną postać. Minimalna postać wymaga obecności kodu operacji oraz pola sygnałów sterujących, Bardziej złożone formy pozwalają na tworzenie złożonych programów. mikrooperacje Format mikrooperacji: CISC i RISC sygnały sterujące Diagram rozkazu wyznacza się na podstawie układu, który ma wykonać instrukcję. wy we A m0 LA m1 S C LC B LB rozkaz A=A+B B = we m0 m1 LA 1 1 1 0 - LB - LC - czas ctrl adres adr mod Pole modyfikacji adresu umożliwia realizację rozgałęzień w mikrokodzie, pozwalając na realizację rozkazów z wariantami. Pole zawiera adres następnej mikrooperacji, jaką należy wykonać po bieżącej. Pole zawiera bity kontrolne zazwyczaj wykonuje się sprawdzanie parzystości. Pole określa jak dużo cykli zegara zajmie wykonanie danej mikrooperacji.

Mikroprogramowanie zagadnienia związane z mikroprogramowaniem mikrooperacje CISC i RISC Każdy rodzaj CPU ma swoje zalety i wady. Zazwyczaj docelowy model architektury jest uzależniany od przeznaczenia procesora. Porównanie: zalety RISC zalety CISC

Mikroprogramowanie zagadnienia związane z mikroprogramowaniem mikrooperacje CISC i RISC Każdy rodzaj CPU ma swoje zalety i wady. Zazwyczaj docelowy model architektury jest uzależniany od przeznaczenia procesora. Porównanie: zalety RISC zalety CISC Zalety RISC w stosunku do mikrokodu CISC: ze względu na model programowania wysokopoziomowego, stosowanie złożonych instrukcji jest mniej opłacalne zwiększa się rola kompilatorów, wydajność CPU może być większa w przypadku prostszych instrukcji udział % złożonych instrukcji w kodzie wynikowym może być niewielki, proste instrukcje można wykonywać bezpośrednio przez dedykowane komponenty, jeśli udział złożonych instrukcji w kodzie programu jest niewielki, to zasoby sprzętowe CPU nie są w pełni wykorzystywane, złożone instrukcje mogą wymagać wielu cykli zegara oraz zazwyczaj ta liczba nie jest stała, co utrudnia realizację przetwarzania potokowego. Obecnie procesory z architekturą opartą na mikrokodzie posiadają wbudowane różne układy zwiększające wydajność. Jednocześnie pewna liczba rozkazów jest implementowana zgodnie ze specyfikacją RISC często procesor potrafi wykonać wiele prostych instrukcji w jednym cyklu zegara.

Mikroprogramowanie zagadnienia związane z mikroprogramowaniem mikrooperacje CISC i RISC Każdy rodzaj CPU ma swoje zalety i wady. Zazwyczaj docelowy model architektury jest uzależniany od przeznaczenia procesora. Porównanie: zalety RISC zalety CISC Zalety CISC w stosunku do architektury RISC: w CPU opartym w całości na mikrokodzie moduły procesora mogą wykonywać czynności, do których nie są dedykowane np. ALU może służyć również do obliczania adresu efektywnego, kompilatory chętnie wykorzystują instrukcje, których operandy odwołują się do pamięci takie rozkazy ułatwiają generowanie kodu wynikowego, ponadto nie utrudniają zbytnio organizacji potoku, złożone rozkazy wykonują więcej operacji/obliczeń, co zmniejsza długość kodu wynikowego, nowoczesne procesory CISC/RISC np. konstrukcje x86 dekodują instrukcje korzystając z buforowania mikro-operacji, dzięki czemu można jednocześnie wykonywać różne, niewykluczające się czynności. proste instrukcje CISC procesory również wykonują w trakcie jednego cyklu zegara. Zalety RISC w stosunku do mikrokodu CISC: ze względu na model programowania wysokopoziomowego, stosowanie złożonych instrukcji jest mniej opłacalne zwiększa się rola kompilatorów, wydajność CPU może być większa w przypadku prostszych instrukcji udział % złożonych instrukcji w kodzie wynikowym może być niewielki, proste instrukcje można wykonywać bezpośrednio przez dedykowane komponenty, jeśli udział złożonych instrukcji w kodzie programu jest niewielki, to zasoby sprzętowe CPU nie są w pełni wykorzystywane, złożone instrukcje mogą wymagać wielu cykli zegara oraz zazwyczaj ta liczba nie jest stała, co utrudnia realizację przetwarzania potokowego. Obecnie procesory z architekturą opartą na mikrokodzie posiadają wbudowane różne układy zwiększające wydajność. Jednocześnie pewna liczba rozkazów jest implementowana zgodnie ze specyfikacją RISC często procesor potrafi wykonać wiele prostych instrukcji w jednym cyklu zegara.

Język maszynowy

Język maszynowy rodzaje rozkazów a architektura procesora asembler przykłady Program dla procesora można wygenerować w wyniku kompilacji języka wysokiego poziomu lub przez zapis kodu maszynowego Program: język asemblera proces kompilacji

Język maszynowy rodzaje rozkazów a architektura procesora asembler przykłady Program dla procesora można wygenerować w wyniku kompilacji języka wysokiego poziomu lub przez zapis kodu maszynowego Program: język asemblera proces kompilacji Kod maszynowy składa się liczb, będących fragmentami rozkazów procesora. W celu ułatwienia programowania instrukcje i ich operandy mają przypisane nazwy symboliczne. instrukcja a, b add a, b adc a, b sub a, b sbb a, b and a, b or a, b xor a, b not a call x jmp x działanie operandy a=b reg, mem, nat a=a+b reg, mem, nat a = a + b* reg, mem, nat a=a b reg, mem, nat a = a b* reg, mem, nat a=a&b reg, mem, nat a=a b reg, mem, nat a=a^b reg, mem, nat a = ~a reg, mem przekazanie sterowania pod x i umieszczenie adresu powrotu na stosie przekazanie sterowania pod x * - z przeniesieniem/pożyczką.

Język maszynowy rodzaje rozkazów a architektura procesora asembler przykłady Program dla procesora można wygenerować w wyniku kompilacji języka wysokiego poziomu lub przez zapis kodu maszynowego Program: język asemblera proces kompilacji Program zapisany w języku symbolicznym wymaga przedstawienia w formie strumienia bajtów, będących fragmentami instrukcji. Generowanie kodu maszynowego nazywa się procesem kompilacji. symbole instrukcji symbole operandów kodowanie rozkazów Model adresowania w programie zależy od możliwości procesora w tym zakresie. W przypadku x86 zazwyczaj stosuje się podział pamięci programu oraz danych na rozdzielne segmenty. obliczanie adresów kod maszynowy wykonanie programu Kod maszynowy składa się liczb, będących fragmentami rozkazów procesora. W celu ułatwienia programowania instrukcje i ich operandy mają przypisane nazwy symboliczne. instrukcja a, b add a, b adc a, b sub a, b sbb a, b and a, b or a, b xor a, b not a call x jmp x działanie operandy a=b reg, mem, nat a=a+b reg, mem, nat a = a + b* reg, mem, nat a=a b reg, mem, nat a = a b* reg, mem, nat a=a&b reg, mem, nat a=a b reg, mem, nat a=a^b reg, mem, nat a = ~a reg, mem przekazanie sterowania pod x i umieszczenie adresu powrotu na stosie przekazanie sterowania pod x * - z przeniesieniem/pożyczką.

Język maszynowy rodzaje rozkazów a architektura procesora asembler przykłady Stosując język asemblera można zaprogramować dowolne funkcjonalność lub algorytm, jednocześnie mając ogromny wpływ na jakość kodu. Asembler x86: obliczenia odwołania do pamięci stos i podprogramy Wykonać dodawanie i odejmowanie dwóch liczb 32-bitowych ze znakiem. Wykonać mnożenie dwóch liczb 32-bitowych bez znaku. add... imul eax, 100 ebx, -100 eax, ebx edx, 200... sub add eax, edx adx, esi edi, edx Wykonać dodawanie i odejmowanie dwóch liczb 64-bitowych ze znakiem. add adc eax, 1122h ebx, 2244h ecx, 1010h edx, 2233h eax, ecx ebx, edx } liczba A } liczba B eax, 100100110100111b ebx, 123 ebx Wynik zostanie zapisany w edx i eax Wykonać dzielenie liczby 64-bitowej ze znakiem przez liczbę 32-bitową. div eax, 2h edx, 7765h ecx, 1000 ecx Wynik zostanie zapisany w eax, reszta z dzielenia w edx

Język maszynowy rodzaje rozkazów a architektura procesora asembler przykłady Stosując język asemblera można zaprogramować dowolne funkcjonalność lub algorytm, jednocześnie mając ogromny wpływ na jakość kodu. Asembler x86: obliczenia odwołania do pamięci stos i podprogramy Zapisać wynik dodawania do pamięci, następnie odczytać starszą część wyniku. Wykonać przesłania danych 8-bitowych z pamięci do rejestru akumulatora. add add... eax, 1100 ebx, 1100h eax, ebx ebx, 100h [ebx], eax dx, [ebx] ax, [ebx + 2] dx, [100h] ax, [102h] di, 100h dx, [di] di, 2 ax, [di] Przesłanie 2 bajtów, młodszej części. Przesłanie 2 bajtów, starszej części. esi, 2 ebx, 3000h al, [ebx + esi + 1] al, [ebx + esi] al, [ebx] 3000 3001... 7A 3C 12 11 DE...

Język maszynowy rodzaje rozkazów a architektura procesora asembler Stosując język asemblera można zaprogramować dowolne funkcjonalność lub algorytm, jednocześnie mając ogromny wpływ na jakość kodu. przykłady Asembler x86: obliczenia odwołania do pamięci stos i podprogramy Zapisać program wykonujący obliczenia, które zostały zawarte w podprogramie. Zapisać program, który przekazuje przez stos parametry do podporgramu. start: call xor... mnożenie: mul ret... start: push push call mnożenie: push mul ret... ax, 100 bx, 200 mnożenie ax, ax Wywołanie podprogramu. bx bx, dx Powrót z podprogramu, adres powrotu został umieszczony na stosie. W programie wykorzystano etykiety, które w trakcie kompilacji zostaną zamienione na właściwe adresy w pamięci. stos ax, 100 ax ax, 200 ax mnożenie cx, ax SS:SP +2 +4 bp bp, sp ax, [bp + 4] word ptr [bp + 2] 04h adr 200 100...

Projekt mp koncepcja, model rozkazu

Projekt m P projekt mikroprocesora zadanie realizowane na wykładzie założenia schemat blokowy projekt rozkazu Projektowanie CPU należy rozpocząć od określenia jego przeznaczenia, funkcji jakie ma realizować oraz dostępnych zasobów konstrukcyjnych. Założenia: typy danych, rozkazy obsługa pamięci urządzenia we/wy

Projekt m P projekt mikroprocesora zadanie realizowane na wykładzie założenia schemat blokowy projekt rozkazu Projektowanie CPU należy rozpocząć od określenia jego przeznaczenia, funkcji jakie ma realizować oraz dostępnych zasobów konstrukcyjnych. Założenia: typy danych, rozkazy obsługa pamięci urządzenia we/wy W zakresie typów danych procesor będzie posiadał następujące cechy: długość słowa maszynowego: 8 bitów, dostępne będą dane o długości 1 bajta, dostępne będą dane o długości 2 bajtów (tylko w pewnych operacjach), obsługiwane będą liczby bez znaku oraz liczby ze znakiem zapisane w kodzie U2. Procesor będzie posiadał następujące grupy rozkazów: arytmetyczne: +, -,, logiczne: not, and, or, xor, obsługa pętli, realizujące rozgałęzienia programu z rozróżnieniem typu wyniku (ze znakiem / bez znaku), zapis słowa do urządzenia wyjściowego, obsługa stosu, wywołanie podprogramu, powrót z podprogramu, skok międzysegmentowy.

Projekt m P projekt mikroprocesora zadanie realizowane na wykładzie założenia schemat blokowy projekt rozkazu Projektowanie CPU należy rozpocząć od określenia jego przeznaczenia, funkcji jakie ma realizować oraz dostępnych zasobów konstrukcyjnych. Założenia: typy danych, rozkazy obsługa pamięci urządzenia we/wy Procesor będzie posiadał mechanizm segmentacji, przy czym długość słowa adresowego będzie wynosiła 20 bitów. Ponadto dostępne będą tryby adresowania pamięci operacyjnej: bezpośredni w postaci selektor:[offset], pośredni rejestrowy (opcjonalnie), pośredni rejestrowy z przemieszczeniem. Przewiduje się również obsługę stosu programowego, w postaci kolejki LIFO, umożliwiającego obsługę zmiennych lokalnych podprogramów. W zakresie typów danych procesor będzie posiadał następujące cechy: długość słowa maszynowego: 8 bitów, dostępne będą dane o długości 1 bajta, dostępne będą dane o długości 2 bajtów (tylko w pewnych operacjach), obsługiwane będą liczby bez znaku oraz liczby ze znakiem zapisane w kodzie U2. Procesor będzie posiadał następujące grupy rozkazów: arytmetyczne: +, -,, logiczne: not, and, or, xor, obsługa pętli, realizujące rozgałęzienia programu z rozróżnieniem typu wyniku (ze znakiem / bez znaku), zapis słowa do urządzenia wyjściowego, obsługa stosu, wywołanie podprogramu, powrót z podprogramu, skok międzysegmentowy.

Projekt m P projekt mikroprocesora zadanie realizowane na wykładzie założenia schemat blokowy projekt rozkazu Projektowanie CPU należy rozpocząć od określenia jego przeznaczenia, funkcji jakie ma realizować oraz dostępnych zasobów konstrukcyjnych. Założenia: typy danych, rozkazy obsługa pamięci urządzenia we/wy Współpraca z urządzeniami we/wy będzie obejmowała obsługę jednego przerwania sprzętowego oraz możliwość zapisu/odczytu bajtu lub słowa do/z urządzenia. Adres urządzenia będzie wystawiany na magistrali adresowej procesora. Procesor będzie posiadał mechanizm segmentacji, przy czym długość słowa adresowego będzie wynosiła 20 bitów. Ponadto dostępne będą tryby adresowania pamięci operacyjnej: bezpośredni w postaci selektor:[offset], pośredni rejestrowy (opcjonalnie), pośredni rejestrowy z przemieszczeniem. Przewiduje się również obsługę stosu programowego, w postaci kolejki LIFO, umożliwiającego obsługę zmiennych lokalnych podprogramów. W zakresie typów danych procesor będzie posiadał następujące cechy: długość słowa maszynowego: 8 bitów, dostępne będą dane o długości 1 bajta, dostępne będą dane o długości 2 bajtów (tylko w pewnych operacjach), obsługiwane będą liczby bez znaku oraz liczby ze znakiem zapisane w kodzie U2. Procesor będzie posiadał następujące grupy rozkazów: arytmetyczne: +, -,, logiczne: not, and, or, xor, obsługa pętli, realizujące rozgałęzienia programu z rozróżnieniem typu wyniku (ze znakiem / bez znaku), zapis słowa do urządzenia wyjściowego, obsługa stosu, wywołanie podprogramu, powrót z podprogramu, skok międzysegmentowy.

Projekt m P projekt mikroprocesora zadanie realizowane na wykładzie założenia schemat blokowy projekt rozkazu Schemat blokowy przedstawia prawdopodobny podział projektowanego CPU na moduły, które będą wymagane do implementacji procesora. W trakcie wykładu model procesora będzie ewaluował, aż do osiągnięcia końcowej, przedprodukcyjnej formy. Schemat procesora: A0, A1, A19 D0, D1, D7 CS, RD, WR kontroler pamięci dekoder instrukcji rejestry uniwersalne ALU IRQ kontroler urządzeń we/wy układ pobrania rozkazu układ sterujący

Projekt m P projekt mikroprocesora zadanie realizowane na wykładzie założenia schemat blokowy projekt rozkazu Podczas projektowania rozkazu należy wziąć pod uwagę rodzaje rozkazów, typy argumentów i tryby pracy procesora. Etapy: operacje model rozkazu

Projekt m P projekt mikroprocesora zadanie realizowane na wykładzie założenia schemat blokowy projekt rozkazu Podczas projektowania rozkazu należy wziąć pod uwagę rodzaje rozkazów, typy argumentów i tryby pracy procesora. Etapy: operacje model rozkazu Operacje wykonywane przez procesor: jednoargumentowe: - push reg - pop reg - reg not reg dwuargumentowe: - reg opr - opr reg - reg reg + opr - reg reg opr - reg reg + cf + opr - reg reg cf opr - reg reg * opr - reg reg and opr - reg reg or opr - reg reg xor opr pozostałe: - call nat - ret - jmp nat - jmp far sel:nat - j?? nat - cmp reg, opr - out nat, R0 - in R0, nat - rep nat gdzie: opr może być rejestrem innym niż reg lub adresem w pamięci typu: sel:[nat] lub sel:[reg + nat],?? = o/no, s/ns, e/ne, b(c)/nb(nc), l, le, g, ge.

Projekt m P projekt mikroprocesora zadanie realizowane na wykładzie założenia schemat blokowy projekt rozkazu Podczas projektowania rozkazu należy wziąć pod uwagę rodzaje rozkazów, typy argumentów i tryby pracy procesora. Etapy: operacje model rozkazu dla operacji jednoargumentowych: 000 MCC RR [nat8] [nat8] - dla M = 0 - RR kod rejestru, CC kod operacji dla push, pop, not i reg nat, - dla M = 1 - CC i RR tworzą kod 4 bitowy dla operacji ret, call, jmp far, in, out oraz rep. dla operacji dwuargumentowych: 001 xcccc RRSLRRxx - SL=11, opr = reg, 001 xcccc RRSL x x xx - SL 11, opr = sel, 010 0CCCC RRSL x x xx nat8 - opr = sel:[nat], 011 0 CCCC RRSLRRxx nat8 - opr = sel:[reg + nat], - CCCC kod rozkazu dla: reg opr, +, +c,, c, *, or, and, xor i cmp, - RR rejestr (R0 = 00, R1 = 01, R2 = 10, R3/SP = 11) dla operacji przesłania do pamięci: 10 SL RR RR nat8 - dla SL = 11 - reg:[nat] reg, - dla SL 11 - sel:[reg + nat] reg. Operacje wykonywane przez procesor: jednoargumentowe: - push reg - pop reg - reg not reg... zapis rejestrów segmentowych: 010 1 S LRR - sel reg, 011 1 S L x x nat8 nat8 - sel nat8, nat8, - SL selektor (CS = 00!, DS = 01, SS = 10). dla operacji skoków warunkowych: 11 x x CCCC nat8 gdzie CCCC kod rodzaju warunku: 0000 overflow, 0001 not overflow, 0010 sign, 0011 not sign, 0100 equal (zero), 0101 not equal, 0110 below (carry), 0111 not below, 1000 below or equal, 1001 above, 1010 less, 1011 less or equal, 1100 greater or equal, 1101 greater.

Przerwania, pamięć, magistrale i urządzenia Koniec wykładu