Programování v asembleru - historie

Slides:



Advertisements
Podobné prezentace
CIT Paměti Díl X.
Advertisements

Základy ukládání dat v počítači
™. ™ Zprovoznění zařízení a zahájení jejich řízení během několika minut.
13AMT Procesory I. Lecture 2 Ing. Martin Molhanec, CSc.
Mikroprocesory Procesory. Procesor je synchronní zařízení provádí operace s daty je programovatelný pomocí mikroinstrukcí je více rodin procesorů (jednočipy.
Komunikace periférii.
Zásobník (LiFo) Fronta (FiFo)
Otázky k absolutoriu HW 1 - 5
Procesory Filip Skulník.
Programování v asembleru - prostředí
Principy překladačů Architektury procesorů Jakub Yaghob.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Základy mikroprocesorové techniky
Program Programátorský model procesoru Instrukční soubor
TEP Instrukční soubor č.9.
Instrukční soubor PIC16Fxxx osnova: Charakteristika instrukčního souboru Rozdělení instrukcí Časové průběhy (zpracování instrukcí)
Výukový program: Mechanik - elektrotechnik Název programu: Číslicová technika - mikroprocesory III. ročník Mikrořadiče Vypracoval : Vlastimil Vlček Projekt.
Lecture 3 Ing. Martin Molhanec, CSc.
Technické prostředky informačních systémů 4. Týden – Sběrnice.
Architektura a vývoj PC 3. Ing. Vladislav Bezouška, Ph.D.
Sběrnice I. Sběrnice v počítačích. Sběrnice I. Sběrnice v počítačích.
Výrok „Počítače by jednou mohly vážit méně než 1.5 tuny.“ (časopis Popular Mechanics, 1949)
PROCESOR Procesor je často charakterizován jako „mozek počítače“. Bez procesoru není počítač schopen vykonávat žádné operace. Počítá prakticky vše, co.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_02A13 Autor Ing. Jiří Kalousek Období vytvoření duben 2014.
Architektura a vývoj PC 2.
PicoBlaze, MicroBlaze, PowerPC
Základy mikroprocesorové techniky
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Procesory.
Paměťové obvody a vývoj mikroprocesoru
David Klíma- 1 - Opáčko Celkové schéma základní desky Co je to čipová sada IRQ DMA Slot, patice Domácí úkol: zákl. deska pro P4.
Tato prezentace byla vytvořena
Výrok „Počítač je pouze tak inteligentní jako jeho uživatel.“ (Radek Lochman, dnes)
= monolitický integrovaný obvod obsahující kompletní mikropočítač
Procesory.
Informatika / …o počítači (základní pojmy, jednoduché představy) 2006.
Přehled a vývoj mikroprocesorů
Popis mikroprocesoru David Rozlílek ME4B.
Začátky mikroprocesorů
Procesor.
1 Procesory „Počítače by jednou mohly vážit méně než 1.5 tuny.“ časopis Popular Mechanics, 1949.
Procesor Renesas H8S/2633F.
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Mikroprocesor.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
9 Family Pavel Mezera. ARM processors family jsou založené 32b RISC architektuře s ortogonálními instrukcemi dnes představují 75% trhu procesorů pro vestavěné.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Instrukce procesoru.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Číslo projektu CZ.1.07/1.5.00/ Název školy Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64 Název materiálu VY_32_INOVACE_IVT_1_KOT_04_PROCESOR.
Technika počítačů 3. Mikroprocesory © Milan Keršlágerhttp:// Obsah: ●
Překladače Optimalizace © Milan Keršláger
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Rozdělení počítačů. Počítače rozdělujeme podle mnoha kritérií z nichž některé dále probereme. Nejčastější rozdělení je na počítače typu :  CISC (Complex.
Vývoj architektur mikroprocesorů Od 4 bitů k superskalárnímu RISC Vývoj architektur mikroprocesorů Od 4 bitů k superskalárnímu RISC Pavel Píša
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Operační systémy Mikroprocesory
Počítačové systémy 3. Mikroprocesory
Výukový materiál zpracován v rámci projektu
Jednočipové počítače – instrukční sada
Výukový materiál zpracován v rámci projektu
Hardware číslicové techniky
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Segmentace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Intel Pentium (1) 32-bitová vnitřní architektura s 64-bitovou datovou sběrnicí Superskalární procesor: obsahuje více než jednu (dvě) frontu pro zřetěze-né.
Informatika / …o počítači
Transkript prezentace:

Programování v asembleru - historie Jakub Yaghob

Rané procesory Intel Intel 4004 Intel 4040 Intel 8008 1971 4-bitový procesor 8-bitové instrukce Harvardská architektura – oddělený kód a data 4-úrovňový interní zásobník (CALL, RET) 16 4-bitových registrů spojitelných do 8-bitových 46 instrukcí 740 kHz (měl být 1 MHz) Bez podpory přerušení Intel 4040 +14 instrukcí 8-úrovňový zásobník Přerušovací systém (shadowing prvních 8 registrů) Intel 8008 1972 Podobný 4040, ale 8-bitový 14-bitová adresace

Intel 8080 a 8085 Intel 8080(A) 1974 Jeden z prvních 8-bitových procesorů 8-bitová data, 16-bitová adresa Little endian 78 instrukcí HW podpora zásobníku v hlavní paměti Oddělení adresového prostoru pro I/O Jednoduchý systém přerušení Intel 8085 1976 HW vylepšení Jednotné napájení Žádné podpůrné obvody (generátor hodin) Zjednodušený sériový port na čipu

Motorola & spol. Motorola 6800 MOS Techologies 6502 1974 Big endian Pouze 2 střadače Silně rozšířený repertoár adresačních módů Zjednodušený systém přerušení MOS Techologies 6502 Odpadlíci z Motoroly 1975 Velmi oblíbený Atari, Apple, Commodore

6502 Způsoby adresace Absolutní Zkrácená absolutní (zero-page) CMP &1900 Zkrácená absolutní (zero-page) CPY &80 Nepřímá obsahem paměti JMP (&1900) Indexovaná LDA &1900,X Zkrácená indexovaná ADD &80,Y Zkrácená předindexovaná nepřímá LDA (&80,X) Zkrácená postindexovaná nepřímá LDA (&80),Y A X Y N V . B D I Z C PC SP C Carry Z Zero I Interrupts disable D Decimal (BCD aritm.) B BRK instr. Flag V Overflow N Negative

Zilog Z80 Zilog Z80 RST38h Paměťové rozhraní s refresh cyklem Odpadlíci od Intelu 1976 Binárně kompatibilní s 8080 Nové registry a módy adresace Indexované adresování Dvě sady registrů pro zrychlení obsluhy přerušení +80 instrukcí Skoky s krátkou autorelativní adresou Stringové operace s opakováním Bitové instrukce „Tajné“ instrukce Paměťové rozhraní s refresh cyklem Velmi pokročilý systém přerušení Kompatibilní s 8080 RST38h Relokovatelný vektorový Úspěch = kompatibilita s 8080 + paměťový IF + CP/M ZX Spektrum Dodnes vyráběny klony

Z80 Systém přerušení Adresace Relokovatelný vektorový Zařízení dodá při přerušení 8-bitovou hodnotu Ta se použije jako index do relokovatelné tabulky adres obsluh přerušení Shadowing registrů Adresace Indexace pomocí IX, IY LD A,(IX+10) A F B C D E H L S Z 0 H 0 P N CY IFF1 IFF2 A’ F’ B’ C’ D’ E’ H’ L’ I R IX IY PC SP

Intel MCS 51 MCS 51 8-bitový procesor pro řídící aplikace 64K adresový prostor pro kód 64K adresový prostor pro data 4K zabudované PROM 128B zabudované RAM 32 obousměrných a jednotlivě adresovatelných bitových linek Dva 16-bitové čítače/časovače Plně obousměrný UART 6-zdrojová/5-vektorová architektura přerušení Zabudovaný generátor hodin Rozšířené možnosti práce v jednobitové logice Kmitočet 12-24 MHz

Intel MCS 51 – blokové schéma

Intel MCS 51 – rozdělení paměti

Intel MCS 51 – organizace paměti Výřez kódové paměti Interní datová paměť

Intel MCS 51 – interní datová paměť

Intel MCS 51 – adresovací módy Přímé adresování 8-bitová adresa v instrukci, pouze na interní datovou paměť a SFR Nepřímé adresování Registr v instrukci specifikuje adresu 8-bitová adresace pomocí R0, R1 nebo SP 16-bitová adresace pomocí DPTR Registrová adresace 3-bitový kód registru v instrukci Registrově specifické instrukce Implicitně kódované registry - neortogonalita Přímý operand Konstanta Indexové adresování V kódové paměti na čtení: DPTR+ACC Nepřímý indexovaný skok: DPTR+ACC

Intel 8086 a spol. 8086 1978 Jeden z prvních 16-bitových CPU Značně neortogonální instrukční soubor 16-bitová data, 20-bitová adresa Little endian Oddělení adresového prostoru paměti a I/O Vektorový systém přerušení 8088 – verze s 8-bitovým HW rozhraním IBM PC 80186 1980 Drobná vylepšení Několik nových instrukcí Technologie 80286 1982 První MMU v procesorech Intel 24-bitová adresa Chráněný režim IBM PC-AT

Motorola 68000 Motorola 68000 Motorola 68010 1979 Interně 32-bitový Vnější rozhraní: 16-bitová data, 24-bitová adresa Téměř ortogonální instrukční soubor Big endian 8 univerzálních 32-bitových datových registrů Dx, využitelných i po menších častech (8 a 16 bitů) 8 téměř univerzálních 32-bitových adresových registrů Ax A7 je USP Další systémové a řídící registry (PC, příznaky, A7‘ SSP, SR) Vektorový systém přerušení User/supervisor mode Apple Macintosh Motorola 68010 1982 Podpora pro virtualizaci paměti Restart instrukce Relokovatelnost tabulky přerušení

Způsoby adresace Motorola 680x0 Implicitní SR, PC, USP/SSP BSR label Přímý operand ADD #10,D0 Registr MOVE D0,A0 Nepřímá adresa MOVE (A4),D0 Absolutní adresa MOVE 10,D0 Nepřímá adresa s postinkrementací MOVE (A4)+,D0 Nepřímá adresa s predekrementací MOVE -(A4),D0 Nepřímá adresa s posunutím MOVE 10(A4),D0 Nepřímá adresa s indexem MOVE 10(A4,D1.w),D0

IBM 360/370/390 32-bitový pravěk 1964 Tzv. všeúčelový systém (360°) První implementace nebyly mikroprocesorové, až 370 Velmi vlivný systém – po dlouhou dobu de facto standard Některé dnešní „standardy“ pochází právě odtud 8-bitový byte Paměť adresovaná po bytech ... Dlouhou dobu pracoval na naší fakultě Dodnes vyráběny firmou IBM, pouze v mnohem menší formě, stále binárně kompatibilní S390

IBM 360/370/390 – paměť a základní jednotka Adresování 24-bitové Později u 390 32-bitové Stránkování s klíčem Jedna stránkovací tabulka pro všechny procesy Bezpečnost v jednom adresovém prostoru Každý proces má jednoznačný identifikátor (klíč) V každé položce stránkovací tabulky také klíč Přístup pouze při shodě klíčů Data musí být v paměti zarovnána Základní jednotka 16 univerzálních 32-bitových registrů 0-15 (střadače, báze, indexy) 4 64-bitové registry reálné aritmetiky 0,2,4,6 (střadače) Stavový registr PSW PC Kód výsledku Klíč ochrany paměti A mnoho dalších věcí

IBM 360/370/390 – instrukční soubor Instrukce v pevném formátu První 2 bity OP určují formát Některé instrukce nastavují kód výsledku Běžný instrukční repertoár

IBM 360/370/390 – adresace a přerušení (Báze+Index+Posunutí)24b Registr 0 má v adresových výrazech hodnotu 0 Přerušení 5 pevných typů Vnější přerušení Programové přerušení Přerušení I/O Přerušení vyvoláním supervisoru Přerušení chybou stroje PSW se uloží do smluvené oblasti (pro daný typ přerušení) a z jiné smluvené oblasti se naplní

32-bitové CPU Motorola a Intel 68020 – 1984 I vnější HW rozhraní plně 32-bitové Jednoduchá 3-stupňová pipeline On-chip cache 68030 – 1987 On-chip MMU (dvojúrovňové stránkování) 68040 – 1991 6-stupňová pipeline On-chip FPU 68060 – 1994 10-stupňová pipeline Dekódování instrukcí do RISC-like formy Superskalarita 2+1 Skokové optimalizace (dynamická predikce skoků) Intel 80386 – 1985 Plně 32-bitový On-chip MMU (stránkování a segmentace) Další módy činnosti i486 – 1989 Integrovaná FPU On-chip cache 8K Pipeline Pentium – 1993 Superskalarita 2+1 Oddělené cache pro kód a data SMM Rozšíření systémové i uživatelské architektury (MMX) Pentium Pro – 1995 14-stupňová pipeline Dekódování instrukcí do RISC-like formy Out-of-order execution Supeskalarita 2+1+2adr+1mem

SPARC v8 Scalable Processor ARChitecture Obecná charakteristika 1985 Architektura instrukční sady (ISA) – RISC Load-Execute-Store Cílem je architektura pro Optimalizující překladače Snadná implementace s pipelinou Registrová okna Ponechává volnost v podarchitekturách pro I/O MMU Cache Definuje referenční Paměťové modely Nepředpokládá v implementacích identický supervisor mód Není přímá HW podpora pro zásobník

SPARC v8 – vlastnosti Vlastnosti 32-bitový adresový prostor Pevný a malý instrukční formát Všechny instrukce mají 32 bitů a jsou zarovnány na 4B Existují pouze 3 základní formáty instrukcí Málo adresových módů Paměť adresována pouze reg+reg nebo reg+imm Triadická adresace registrů Většina operací res = r1 op r2 Velké množství registrů „v okně“ Oddělené registry pro plouvoucí řádovou čárku 32 4-bytových, nebo 16 8-bytových nebo 8 16-bytových nebo mix Zpoždění skoku Vždy vykonána instrukce za skokem Rychlá obsluha přerušení Tagované instrukce Instrukce pro podporu multiprocesorů Koprocesor

SPARC v8 – registrová okna

32-bitové CPU Zilog Z8000 1979 Přechod 16-32 (primárně 16-bitová architektura s 32-bitovými možnostmi) 16 16-bitových registrů kombinovatelných do 8 32-bitových nebo 4 64-bitových Prvních 8 registrů adresovatelných po bytech Ortogonální CISC Jeden z prvních CPU se supervisor módem Speciální obvody pro refresh paměti Z80000 1986 Plně 32-bitová architektura Rozšíření 16-bitových registrů na 32-bitů On-chip MMU Podpora multiprocesorů Velmi pomalý Z380 1994 Pohrobek Z80 3 módy činnosti 8-bitový plně kompatibilní se Z80 16-bitový mód s 32-bitovou adresací Plně 32-bitový mód Přerušení kompatibilní se Z80 a navíc 16-bitově vektorové

Alpha – obecně Compaq-DEC Alpha Jedna z prvních 64-bitových architektur – 1998 Architektura navrhovaná v souladu se strategií firmy Digital – na 25 let Kompletně nová architektura Od základů 64-bitová Bez vazby na minulé architektury Čistý RISC Jednoduché instrukce Instrukce v pevném formátu (32 bitů) Load-Execute-Store architektura Bez příznaků Podmíněné instrukce přímo porovnávají obsahy registrů Bez HW podpory zásobníku Nulaúrovňové stránkování Plně asociativní DTB a ITB se 128 položkami 8KB stránky, skupiny po 8, 64 a 512 stránkách 8-bitový ASN (address space number)

Alpha – registry a instrukční soubor 32 obecných 64-bitových celočíselných registrů R0-R31 Speciální význam R31 – pro čtení vždy 0 32 64-bitových registrů v řádové čárce F0-F31 Speciální význam F31 – pro čtení vždy 0.0 PC Vždy zarovnán na 4 PCC 32-bitový čítač cyklů Instrukční soubor Ortogonální 3-operandový Silně 64-bitový Omezená podpora pro jiné šířky operandů Pevný formát limituje přímé operandy Posuny v paměťových výrazech Skoky Běžný repertoár instrukcí Není dělení Podpora pro více procesorů

Alpha – instrukční formát

SPARC v9 Nová verze odvozená ze SPARC v8 Obecná charakteristika Binární kompatibilita s předchozí verzí Obecná charakteristika 64-bitový adresový prostor a data Zvýšení výkonu Instrukce pro násobení a dělení Hinty u skoků Podmíněný přesun Skoky podle hodnoty registru Podpora pro vysoce optimalizující překladače Podpora pro pokročile superskalární implementace Podpora pokročilých OS Fault-tolerance Rychlá obsluha přerušení a změna kontextu Práce s big i little endian

IA-64 Obecná charakteristika: Spolupráce Intel & HP Binárně kompatibilní s HP PA-RISC Velmi složitá architektura Zachován mód kompatibility s IA-32 Množství „okoukaných“ triků Registrová okna (SPARC) Velké pole registrů (RISC) Explicitní paralelismus na úrovni kódování instrukcí Predikce instrukcí (Acorn ARM) Silné adresové módy (postinkrementace – Motorola) Spekulativní provádění kódu na explicitní úrovni Predikce skoků SW pipelining, rotace registrů Hinty u instrukcí „Konec programátorů v asembleru“

IA-64 – aplikační prostředí

IA-64 – instrukční soubor Jako RISC Jednoduché krátké instrukce v pevném formátu Load-Execute-Store architektura Bez podpory HW zásobníku Bez celočíselného dělení Kódování instrukcí umožňuje explicitní paralelismus Skupiny instrukcí s přísnějšími vnitřními požadavky na závislosti (např. registrové RAW, WAW zakázány) Poměrně volný paměťový model Jediným omezením je dodržení RAW, WAW a WAR závislostí při přístupu na jednu adresu Explicitní synchronizace paměťových přístupů

IA-64 – predikce Predikční registry Architektura nepoužívá specializované, automaticky nastavované aritmeticko-logické příznaky Sada predikátových registrů PR0-PR63 PR0 je vždy TRUE, zápis se ignoruje Nastavovány speciálními porovnávacími instrukcemi Obvykle nastavovány dva PR zároveň v různých módech Některé módy umožňují porušit WAW závislosti uvnitř skupiny instrukcí Téměř každá instrukce je podmíněna predikátovým registrem

IA-64 – spekulace Spekulace Umožňuje předsunout load operace z paměti Kódová spekulace Předsunutí čtení v podmínce Občas se udělá „navíc“ při nesplněné podmínce Datová spekulace Předsunutí čtení před zápis přes ukazatel Kontrolováno pomocí ALAT Pokud spekulace „nevyjde“, provede se skutečně na kontrolní instrukci Kódová nevyjde při výjimkách Datová nevyjde při zápisu do dané paměti mezi čtením a kontrolou a při výjimkách

IA-64 – systémová architektura Definována poměrně volně pro snažší implementaci Obsluha výjimek a přerušení Správa paměti Inverzní stránkování Nulaúrovňové stránkování – přímo nastavitelné x automatické TLB 8 regionů podle nejvyšších 3 bitů VA Klíče ochrany paměti (podobně jako IBM 360), ale více Chování v prostředí s více CPU Chování RSE