Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel Inleiding De...

112
Program- meerbare processore n KATHOLIEKE UNIVERSITEIT 6-1 06– 07 H01L1 Inhoudstafel Inleiding De basis van digitaal ontwerp Combinatorische schakelingen Sequentiële schakelingen Niet-programmeerbare processoren Programmeerbare processoren Hardware-beschrijvingstalen

Transcript of Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel Inleiding De...

Page 1: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-1 06–07

H01L1

Inhoudstafel

Inleiding

De basis van digitaal ontwerp

Combinatorische schakelingen

Sequentiële schakelingen

Niet-programmeerbare processoren

Programmeerbare processoren

Hardware-beschrijvingstalen

Page 2: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-2 06–07

H01L1

Programmeerbare processor

= FSMD met een programmeerbare controllervaste controller (FSMD)

andere FSM voorelk algoritme

generische controller:leest acties uitprogrammageheugen ander programma

voor elk algoritme vaste FSM

Datapad

Controller

Controle-signalen

Status-signalen

Data-ingangen

Data-uitgangen

Controle-ingangen

Controle-uitgangen

Programma-geheugen

Instructie Adres (PC)

Page 3: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-3 06–07

H01L1

Ontwerp programmeerbare processoren

Het programma InstructiesAdresseermodi

ProcessorontwerpCISC-processorenRISC-processoren

Het programma

• Instructies

• Adresseermodi

Processorontwerp

• CISC

• RISC

Page 4: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-4 06–07

H01L1

Instructies

Programma= opeenvolging van instructies bevat dezelfde informatie als een FSM

Instructie komt overeen met een FSM-toestand= aanduiding

wat volgende instructie is aansturing datapad (registers, FU’s, MUX’s, …) data-uitwisseling (laden/stockeren)

met (extern) geheugen typische notaties:

mnemonisch (zoals in assembleertaal):Add A, B, C ( a=b+c)

acties (zoals bij talen voor hardware-specificatie):Mem[A] Mem[B] + Mem[C]

Het programma

Instructies

• Adresseermodi

Processorontwerp

• CISC

• RISC

Page 5: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-5 06–07

H01L1

Instructieformaat

Instructies onderverdeeld in velden= groep bits waaraan een betekenis/subtaak kan

toegekend worden Veel voorkomende instructievelden:

instructietype: klasse van instructie (registerbewerkingen, sprong, geheugenoperatie, …)

opcode (‘operation code’): welke bewerking (optelling, …)

adres: locatie operanden & resultaten kan zowel in register(bank) als geheugen zijn

bijv. “Load R2, A” (RF[2] Mem[A]) adresseermode: hoe effectief adres berekenen

uitgaand van adresveld(en) constante: bijv. “Add R2, R3, 1”

Zowel het aantal als de grootte van de velden kunnen variabel zijn

Sommige soorten velden kunnen meerdere keren voorkomen (bijv. adres)

Het programma

Instructies

• Adresseermodi

Processorontwerp

• CISC

• RISC

Page 6: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-6 06–07

H01L1

Generische instructiecyclus

Lees instructieLees instructieLees instructie uit het geheugenin het Instructieregister (IR);verhoog Programmateller (PC)

Herhaal dit eindeloos

Bereken operand- en resultaatadressen

Bereken operand- en resultaatadressen

Gebruik adresseermodi en adresvelden om operand- en resultaatadressen te berekenen

Lees operand(en)Lees operand(en)Lees operanden uit het geheugen(tijdelijk) in registers

Voer bewerking uitVoer bewerking uitVoer bewerking uit en stockeer resultaat (tijdelijk) in een register

Stockeer resultaatStockeer resultaat Stockeer resultaat in het geheugen

Het programma

Instructies

• Adresseermodi

Processorontwerp

• CISC

• RISC

Page 7: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-7 06–07

H01L1

Uitvoeringssnelheid

Uitvoeringssnelheid instructie hangt af van snelheid datapad te verhogen door extra hardware aantal toegangen tot extern geheugen korte

instructies

Lengte instructie hoofdzakelijk bepaald door het aantal adresvelden/instructie Weinig: korte (snelle) instructies veel instructies/taak Veel: lange (trage) instructies minder instructies/taak

Voorbeeld: bereken c = (a + b) × (a − b) Stel

we gebruiken 32-bit data en eveneens 32-bit adressen

een instructie bestaat uit– 1 woord met alle velden behalve geheugenadressen– 1 woord per geheugenadresveld

Het aantal geheugentoegangen is dan n+1 (halen instructie met n geheugenadresvelden) +1 per lees/schrijfoperatie data geheugen

Het programma

Instructies

• Adresseermodi

Processorontwerp

• CISC

• RISC

Page 8: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-8 06–07

H01L1

c=(a+b)×(a−b): impact # adresvelden

Instructies met 3 adressen Add X,A,B Mem[X] Mem[A] + Mem[B]

Sub C,A,B Mem[C] Mem[A] − Mem[B]Mul C,X,C Mem[C] Mem[X] × Mem[C]

(4 + 3) geheugentoegangen/instructie programma heeft 21 toegangen nodig

Instructies met 2 adressen= resultaat overschrijft eerste operand bij dyadische

operaties verplaatsinstructies (‘move’) nodig

Move X,A Mem[X] Mem[A]Add X,B Mem[X] Mem[X] + Mem[B]Move C,A Mem[C] Mem[A]Sub C,B Mem[C] Mem[C] − Mem[B]Mul C,X Mem[C] Mem[C] × Mem[X]

(3 + (2 of 3)) geheugentoegangen/instructie programma heeft 28 toegangen nodig

1,67 meer instructies maar instructies zijn sneller(5,6 geheugentoegangen/instructie)

Het programma

Instructies

• Adresseermodi

Processorontwerp

• CISC

• RISC

Page 9: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-9 06–07

H01L1

c=(a+b)×(a−b): impact # adresvelden

Instructies met 1 adres= gebruik speciaal register (ACC of Accumulator),

waarin de eerste operand en het resultaat geplaatst worden

Load A ACC Mem[A]Add B ACC ACC + Mem[B]Store X Mem[X] ACCLoad A ACC Mem[A]Sub B ACC ACC − Mem[B]Mul X ACC ACC × Mem[X]Store C Mem[C] ACC

(2 + 1) geheugentoegangen/instructie programma heeft 21 toegangen nodig

Het programma

Instructies

• Adresseermodi

Processorontwerp

• CISC

• RISC

Page 10: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-10 06–07

H01L1

c=(a+b)×(a−b): impact # adresvelden

Instructies zonder adres= gebruik een LIFO-stapel voor data

Beide operanden staan bovenaan stapel Bewerking vervangt ze door het resultaat Verplaatsinstructies gebruiken relatieve adressering

Load OffsetA Push Mem[base+OffsetA]Load OffsetB Push Mem[base+OffsetB]Add Push Pop + PopLoad OffsetA Push Mem[base+OffsetA] Load OffsetB Push Mem[base+OffsetB] Sub Push Pop − PopMul Push Pop × PopStore OffsetC Mem[base+OffsetC] Pop

(1 + (0 of 1)) geheugentoegangen/instructie programma heeft 13 toegangen nodig

Het programma

Instructies

• Adresseermodi

Processorontwerp

• CISC

• RISC

Page 11: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-11 06–07

H01L1

c=(a+b)×(a−b): impact # adresvelden

Instructies met 3 adressen, waarvan 2 van een registerbank de paar adresbits van een registerbank passen

meestal nog in het opcode-woord zodat geen extra adreswoord nodig is

Load R1,A RF[1] Mem[A]Add R2,R1,B RF[2] RF[1] + Mem[B]Sub R1,R1,B RF[1] RF[1] − Mem[B] Mul C,R1,R2 Mem[C] RF[1] × RF[2]

(2 + 1) geheugentoegangen/instructie programma heeft 12 toegangen nodig

Er zijn verschillende combinaties van register- en geheugenadresseringen mogelijk, o.a. …

Het programma

Instructies

• Adresseermodi

Processorontwerp

• CISC

• RISC

Page 12: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-12 06–07

H01L1

c=(a+b)×(a−b): impact # adresvelden

Instructies met 3 registeradressen of met 2 adressen, waarvan 1 van een registerbank= bewerkingen : 3 registeradressen

laden/stockeren: 1 registeradres & 1 geheugenadres

Load R1,A RF[1] Mem[A]Load R2,B RF[2] Mem[B]Add R3,R1,R2 RF[3] RF[1] + RF[2]Sub R4,R1,R2 RF[4] RF[1] − RF[2]Mul R5,R3,R4 RF[5] RF[3] × RF[4]Store R5,C Mem[C] RF[5]

(2 + 1) of (1 + 0) geheugentoegangen/instructie programma heeft 12 toegangen nodig

Tijdswinst als de meeste data of tussenresultaten verschillende malen gebruikt wordt, omdat registertoegangen veel sneller zijn dan geheugentoegangen

Gebruikt in alle moderne processoren

Het programma

Instructies

• Adresseermodi

Processorontwerp

• CISC

• RISC

Page 13: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-13 06–07

H01L1

Ontwerp programmeerbare processoren

Het programma Instructies Adresseermodi

reduceert dikwijls grootte adresveld analoog aan hogere

programmeertalen (cfr. matrices)

Processorontwerp

Het programma

• Instructies

Adresseermodi

Processorontwerp

• CISC

• RISC

Page 14: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-14 06–07

H01L1

Impliciete adressering

= het adres zit impliciet in de opcode

Bijv. “ADD” betekent bij een 0-adres machine

“Vervang de twee waarden bovenaan de stapel door hun som”

“CLRA” betekent bij een 1-adres machine “Reset de accumulator”

OpcodeOpcode

Het programma

• Instructies

Adresseermodi

Processorontwerp

• CISC

• RISC

Page 15: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-15 06–07

H01L1

Onmiddellijke adressering

= het adresveld bevat niet het adres maar de waarde zelf van de operand

Wordt gebruikt voor constanten

OpcodeOpcode OperandOperand

Het programma

• Instructies

Adresseermodi

Processorontwerp

• CISC

• RISC

Page 16: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-16 06–07

H01L1

Directe adressering

= het adresveld bevat het adres van de operand adres van geheugen (MEM) is dikwijls 32 bit adres van een registerbank (RF) is typisch 3 tot 8 bit

operand = MEM[adres] of RF[adres]

OpcodeOpcode AdresAdres

Operand

Geheugen

OpcodeOpcode AdresAdres

Operand

Registerbank

Het programma

• Instructies

Adresseermodi

Processorontwerp

• CISC

• RISC

Page 17: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-17 06–07

H01L1

Indirecte adressering

= het adresveld verwijst naar de plaats waar het eigenlijke adres van de operand zich bevindt indirect: eigenlijke adres in geheugen

operand = MEM[MEM[adres]] register-indirect: in registerbank

operand = MEM[RF[adres]]

OpcodeOpcode AdresAdres

Adres

Geheugen

Operand

OpcodeOpcode AdresAdres

Adres

Registerbank Geheugen

Operand

Het programma

• Instructies

Adresseermodi

Processorontwerp

• CISC

• RISC

Page 18: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-18 06–07

H01L1

Relatieve adressering

= effectieve adres = basisadres + (kleine) offset operand = MEM[basis + offset] relatief: basisadres in impliciet register

adresveld = offset bijv. voor sprongadres (basis = PC)

register-relatief: in expliciet register (basis = RF[adres]) adresveld = (registeradres; offset) bijv. voor opzoektabel (‘Look-Up Table’)

Geheugen

OpcodeOpcode OffsetOffset

Operand+

BasisBasis

Register

Het programma

• Instructies

Adresseermodi

Processorontwerp

• CISC

• RISC

Geheugen

Operand+

OpcodeOpcode

Basis

Registerbank

AdresAdres OffsetOffset

Page 19: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-19 06–07

H01L1

Geïndexeerde adressering

= effectieve adres = basisadres + (kleine) offset basis = beginadres matrix, stapel, wachtrij, … geïndexeerd: offset in impliciet register

adresveld = basis register-geïndexeerd:

offset in expliciet register (offset = RF[adres]) adresveld = (registeradres; basis)

Geheugen

OpcodeOpcode BasisBasis

Operand+

OffsetOffset

Register

Het programma

• Instructies

Adresseermodi

Processorontwerp

• CISC

• RISC

Geheugen

Operand+

OpcodeOpcode

Offset

Registerbank

AdresAdres BasisBasis

Page 20: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-20 06–07

H01L1 Geïndexeerde adressering met

autoincrement/autodecrement= geïndexeerde adressering waarbij de offset automatisch verhoogd

(of verlaagd) wordtmeestal ±1 maar soms ook ±2, ±4, …

Geheugen

OpcodeOpcode BasisBasis

Operand+

OffsetOffset

+

−1

1

Het programma

• Instructies

Adresseermodi

Processorontwerp

• CISC

• RISC

Page 21: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-21 06–07

H01L1

Ontwerp programmeerbare processoren

Het programma

ProcessorontwerpComplex Instruction Set ComputerReduced Instruction Set Computer

Het programma

• Instructies

• Adresseermodi

Processorontwerp

• CISC

• RISC

Page 22: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-22 06–07

H01L1 Ontwerp van eenprogrammeerbare processor

Ontwerp instructiesetOntwerp instructieset

Datapad hangt af

van instructieseten vice versa

Instructieset-stroomschemaInstructieset-stroomschemaBeschrijf alle operatiesper instructie

Allocatie datapadcomponentenAllocatie datapadcomponentenBeslis welke componentennodig zijn in het datapad

Bepaal ASM-schemaBepaal ASM-schemaVerdeel instructiein cycli en bepaalregistertransfers/cyclus

Ontwerp datapadOntwerp datapad

Ontwerp controllerOntwerp controller

Het programma

• Instructies

• Adresseermodi

Processorontwerp

• CISC

• RISC

Page 23: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-23 06–07

H01L1 Basiskeuze ontwerp instructieset

CISC: Complex Instruction Set Computer= vele complexe (trage) instructies meerdere operaties, instructietypes,

adresseermodi en adresvelden complex datapad met veel FU’s, veel registers en

complexe verbindingen lage klokfrequentie kort programma,

maar elke instructie verbruikt veel klokcycli

RISC: Reduced Instruction Set Computer= enkele snelle (eenvoudige) instructies weinig operaties en instructietypes;

0 of 1 adresvelden; weinig adresmodi eenvoudig datapad hoge klokfrequentie lang programma,

maar elke instructie verbruikt maar een paar klokcycli

Het programma

• Instructies

• Adresseermodi

Processorontwerp

• CISC

• RISC

Page 24: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-24 06–07

H01L1

Ontwerp programmeerbare processoren

Het programma

Processorontwerp Complex Instruction Set Computer

Ontwerp instructieset Instructieset-stroomschema Allocatie datapadcomponenten ASM-schema Ontwerp controller Ontwerp datapad

Reduced Instruction Set Computer

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 25: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-25 06–07

H01L1

Ontwerp CISC-instructieset

Specificaties 16-bit woordlengte 16-bit adresbereik Maximale grootte instructie: twee 16-bit woorden

Bijkomende keuzes Voor de hand liggend uit specificaties

1 adresveld van 16 bit veld alle andere velden ook 16 bit

We kiezen laden/stockeren registers: 1 16-bit adresveld de rest enkel registeroperaties

16-bit adres/constante

Alle andere velden

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 26: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-26 06–07

H01L1

Ontwerp CISC-instructieset

Bijkomende keuzes We hebben 4 types (2 bits) instructies:

registerinstructies verplaatsinstructies spronginstructies andere instructies, zoals NOP

Hoewel niet alle instructies evenveel registeradressen nodig hebben, voorzien we er 3 voor allemaal We kiezen 3 registeradresvelden van 3 bits Nog 5 bits beschikbaar voor bewerking en

adresseermodes (“Operatie/mode”)

16-bit adres/constante

Alle andere velden

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Type Operatie/mode Src2Src1Dest

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 27: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-27 06–07

H01L1

Registerinstructies (type 00)

OP Dest,Src1,Src2RF[Dest] RF[Src1] OP

RF[Src2] OP Dest,Src1 RF[Dest] RF[Src1] OP

Bewerking OPAritmetische, logische en schuifoperaties

Keuze bewerkingen hangt af van frequentie gebruik in typische toepassingen

Op 1 of 2 operanden

Bewerking00

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Src2Src1Dest

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 28: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-28 06–07

H01L1

Registerinstructies (type 00)

We kiezen voor ons toepassingsdomein

Bewerking00

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Src2Src1Dest

bit13 bit12 bit11 bit10 bit9 Bewerking

0 Schuiven (aritmetisch)

0 Naar rechts

n2 n1 n0RF[Dest] RF[Src1] >> n

1 Naar links

n2 n1 n0RF[Dest] RF[Src1] << n

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 29: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-29 06–07

H01L1

Registerinstructies (type 00)

bit13 bit12 bit11 bit10 bit9 Bewerking

1 0 Aritmetische bewerking

0 Optelling/aftrekking

0 Dyadisch

0Add: RF[Dest] RF[Src1] + RF[Src2]

1Sub: RF[Dest] RF[Src1] − RF[Src2]

1 Monadisch

0 Inc: RF[Dest] RF[Src1] + 1

1 Dec: RF[Dest] RF[Src1] − 1

1 Vermenigvuldiging/deling

0 Dyadisch

0Mul: RF[Dest] RF[Src1] × RF[Src2]

1Div: RF[Dest] RF[Src1] / RF[Src2]

1 Monadisch

0Sqr: RF[Dest] RF[Src1] × RF[Src1]

1 Root: RF[Dest] SQRT(RF[Src1])

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 30: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-30 06–07

H01L1

Registerinstructies (type 00)

bit1

3

bit1

2

bit1

1

bit1

0

bit9

Bewerking

1 1 Logische bewerking

0 0 0And: RF[Dest] RF[Src1] AND RF[Src2]

0 0 1Nand: RF[Dest] RF[Src1] NAND RF[Src2]

0 1 0Or: RF[Dest] RF[Src1] OR RF[Src2]

0 1 1Nor: RF[Dest] RF[Src1] NOR RF[Src2]

1 0 0Xor: RF[Dest] RF[Src1] XOR RF[Src2]

1 0 1Xnor: RF[Dest] RF[Src1] XNOR RF[Src2]

1 1 0Mask: RF[Dest] RF[Src1] AND 0x0001

1 1 1 Inv: RF[Dest] INV(RF[Src1])

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 31: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-31 06–07

H01L1

Verplaatsinstructies (type 01)

= uitwisseling tussen geheugen en registerbank

Slechts 2 operaties mogelijk Op is 1 bit Load (Op = 0) : geheugen register Store (Op = 1) : register geheugen

Overblijvende 4 bits worden gebruikt voor de adresseermode van het geheugen Keuze adresseermode hangt af van frequentie

gebruik in typische toepassingen Src2 kan eventueel gebruikt worden als offset Adresseermode zal ook bepalen of tweede woord

(adres/constante) al dan niet gebruikt wordt

16-bit adres/constante

01

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Src2Src1DestOp Mode

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 32: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-32 06–07

H01L1

Load (type 01, op = 0)

Onmiddellijk adres (2 woorden):RF[Dest] Constante

Direct adres (2 woorden):RF[Dest] Mem[Adres]

Indirect adres (2 woorden):RF[Dest] Mem[Mem[Adres]]

Register-indirect adres (1 woord):RF[Dest] Mem[RF[Src1]]

Register-relatief adres (1 woord):RF[Dest] Mem[RF[Src1] + Src2] =RF[Dest] Mem[Basis + Offset]

Register-geïndexeerd adres (2 woorden):RF[Dest] Mem[Adres + RF[Src1]] =RF[Dest] Mem[Basis + Offset]

Kopieer register (1 woord):RF[Dest] RF[Src1]

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 33: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-33 06–07

H01L1

Store (type 01, op = 1)

Onmiddellijk adres: zinloos! Direct adres (2 woorden):

Mem[Adres] RF[Src1] Indirect adres (2 woorden):

Mem[Mem[Adres]] RF[Src1] Register-indirect adres (1 woord):

Mem[RF[Dest]] RF[Src1] Register-relatief adres (1 woord):

Mem[RF[Dest] + Src2] RF[Src1] =Mem[Basis + Offset] RF[Src1]

Register-geïndexeerd adres (2 woorden):Mem[Adres + RF[Dest]] RF[Src1] =Mem[Basis + Offset] RF[Src1]

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 34: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-34 06–07

H01L1

Verplaatsinstructies (type 01)

Toewijzing bits: Bit 13:

0 = Load1 = Store

Bit 12:0 = twee woorden (adres/constante

gebruikt)1 = één woord

Bits 11,10,9:000 = onmiddellijk adres (enkel bij Load) 001 = direct adres010 = indirect adres011 = relatief adres100 = geïndexeerd adres101 = kopieer register (dan ook bit 13 =

0)

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 35: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-35 06–07

H01L1

Spronginstructies (type 10)

4 instructies (Op gebruikt enkel bits 13 en 12): JMP (Op = 00): onconditionele sprong (2 woorden)

PC Adres CJMP (Op = 01): conditionele sprong (2 woorden)

IF Status=0 THEN (PC PC + 1) ELSE (PC Adres) JSR (Op = 10): spring naar subroutine (2 woorden)

Mem[RF[Src1]] PC + 1 terugkeeradres op LIFO metRF[Src1] het LIFO-

schrijfadresen (RF[Src1] − 1) het

leesadresRF[Src1] RF[Src1] + 1 verhoog LIFO-schrijfadresPC Adres spring naar subroutine

RTS (Op = 11): keer terug uit subroutine (1 woord)RF[Src1] RF[Src1] − 1 verminder LIFO-schrijfadres;

RF[Src1] bevat nu ook hetLIFO-adres van het

terugkeeradresPC Mem[RF[Src1]] lees terugkeeradres uit LIFO

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 36: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-36 06–07

H01L1

Andere (1-woord) instructies (type 11)

Status = 1-bit register met resultaat vergelijking

bit13 bit12 bit11 bit10 bit9 Bewerking

0 0 X X X NOP (doe niets)

0 1 Zet op 0

0 X X CLR: RF[Dest] 0

1 X X ClrS: Status 0

1 0Vergelijk RF[Src1] en RF[Src2]IF … THEN Status 1 ELSE Status 0

0 0 0 GT: RF[Src1] > RF[Src2]

0 0 1 GE: RF[Src1] ≥ RF[Src2]

0 1 0 LT: RF[Src1] < RF[Src2]

0 1 1 LE: RF[Src1] ≤ RF[Src2]

1 0 0 EQ: RF[Src1] = RF[Src2]

1 0 1 NE: RF[Src1] ≠ RF[Src2]

1 1 XNiet gebruikt ongeldige instructie

1 1 X X X SetS: Status 1

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 37: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-37 06–07

H01L1

Voorstelling instructie

Machinetaal = het binair patroon van een instructie

Meestal hexadecimaal voorgesteld om schrijffouten te vermijden;bijv. 0010000111110000 = 0x21F0

Hardware “interpreteert” de binaire instructie 0010000111110000 : registerbewerking 0010000111110000 : aritmetisch 0010000111110000 : optelling 0010000111110000 : resultaat in RF[7] 0010000111110000 : operand 1 = RF[6] 0010000111110000 : operand 2 = RF[0] Interpretatie = broncode wordt rechtstreeks

uitgevoerd De controller is dus een ‘interpreter’ in hardware

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 38: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-38 06–07

H01L1

Voorstelling instructie

Assembleertaal = mnemonische voorstelling 1-naar-1 relatie met machinetaal

bijv. 0x21F0 ADD 7,6,0 Assembleren = compilatie naar machinecode

Vertaling van instructies via een eenvoudige opzoektabel

Bijkomend gebruiksgemak: geef variabelen een betekenisvolle naam Assembler kent er zelf een geheugenadres aan

toe (relatief t.o.v. begin datageheugen) Bijkomend gebruiksgemak: geef een betekenisvolle

symbolische naam (label) aan adressen waar naartoe gesprongen wordt Assembler berekent zelf het springadres

(relatief t.o.v. begin programmageheugen)

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 39: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-39 06–07

H01L1 Assembleertaal voor onze CISC

18 registerinstructiesAssembleertaal

Opcode D S1 S2 A Actie

ASR n 0000n2n1n0 X — RF[D] RF[S1] >> nASL n 0001n2n1n0 X — RF[D] RF[S1] << nADD D,S1,S2 0010000 — RF[D] RF[S1] + RF[S2]SUB D,S1,S2 0010001 — RF[D] RF[S1] − RF[S2]INC D,S1 0010010 X — RF[D] RF[S1] + 1DEC D,S1 0010011 X — RF[D] RF[S1] − 1MUL D,S1,S2 0010100 — RF[D] RF[S1] × RF[S2]DIV D,S1,S2 0010101 — RF[D] RF[S1] / RF[S2]SQR D,S1 0010110 X — RF[D] RF[S1] × RF[S1]ROOT D,S1 0010111 X — RF[D] Root(RF[S1])AND D,S1,S2 0011000 — RF[D] RF[S1] AND RF[S2]NAND D,S1,S2 0011001 — RF[D] RF[S1] NAND RF[S2]OR D,S1,S2 0011010 — RF[D] RF[S1] OR RF[S2]NOR D,S1,S2 0011011 — RF[D] RF[S1] NOR RF[S2]XOR D,S1,S2 0011100 — RF[D] RF[S1] XOR RF[S2]XNOR D,S1,S2 0011101 — RF[D] RF[S1] XNOR RF[S2]MASK D,S1 0011110 X — RF[D] RF[S1] AND 0x0001INV D,S1 0011111 X — RF[D] INV RF[S1]

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 40: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-40 06–07

H01L1 Assembleertaal voor onze CISC

12 verplaatsinstructiesAssembleertaal Opcode D S1 S2 A Actie

LOAD D,#waarde0100000

X X RF[D] waarde

LOAD D,adres0100001

X X RF[D] Mem[adres]

LOAD D,(adres)0100010

X X RF[D] Mem[Mem[adres]]

LOAD D,(S1)0101010

X — RF[D] Mem[RF[S1]]

LOAD D,(S1)+S20101011

— RF[D] Mem[RF[S1]+S2]

LOAD D,adres+(S1)

0101100

X RF[D] Mem[adres+RF[S1]]

STOR adres,S10110001

X X Mem[adres] RF[S1]

STOR (adres),S10110010

X X Mem[Mem[adres]] RF[S1]

STOR (D),S10111010

X — Mem[RF[D]] RF[S1]

STOR (D)+S2,S10111011

— Mem[RF[D]+S2] RF[S1]

STOR adres+(D),S1

0111100

X Mem[adres+RF[D]] RF[S1]

COPY D,S101XX101

X — RF[D] RF[S1]

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 41: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-41 06–07

H01L1 Assembleertaal voor onze CISC

4 spronginstructies

Assembleertaal Opcode D S1 S2 A Actie

JMP adres 1000XXX X X X PC adres

CJMP adres 1001XXX X X X IF (Status=0) THEN (PC PC+1) ELSE (PC adres)

JSR adres,(S1) 1010XXX X X Mem[RF[S1]] PC+1;RF[S1] RF[S1]+1;PC adres

RTS (S1) 1011XXX X X —RF[S1] RF[S1]−1;PC Mem[RF[S1]]

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 42: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-42 06–07

H01L1 Assembleertaal voor onze CISC

10 andere instructies

44 instructies in totaal

Assembleertaal

Opcode

D S1 S2 A Action

NOP1100XXX

X X X — —

CLR D11010XX

X X — RF[D] 0

ClrS11011XX

X X X — Status 0

SetS1111XXX

X X X — Status 1

GT S1,S21110000

X —IF (RF[S1] > RF[S2]) THEN (Status 1) ELSE (Status

0)

GE S1,S21110001

X —IF (RF[S1] >= RF[S2]) THEN (Status 1) ELSE (Status

0)

LT S1,S21110010

X —IF (RF[S1] < RF[S2]) THEN (Status 1) ELSE (Status

0)

LE S1,S21110011

X —IF (RF[S1] <= RF[S2]) THEN (Status 1) ELSE (Status

0)

EQ S1,S21110100

X —IF (RF[S1] = RF[S2]) THEN (Status 1) ELSE (Status 0)

NE S1,S21110101

X —IF (RF[S1] <> RF[S2]) THEN (Status 1) ELSE (Status

0)

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 43: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-43 06–07

H01L1

Programmavoorbeeld

Bepaal de som, het minimum enhet maximum van 1024 getallen Programma in een hoog-niveau

taal: Min = MAXINTMax = 0Sum = 0FOR Count: 0..1023

Sum = Sum + A[i]IF A[i] > Max THEN Max = A[i]IF A[i] < Min THEN Min = A[i]

END FOR

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 44: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-44 06–07

H01L1

Programmavoorbeeld: assembleertaal

ORG DATA

Hierna volgen declaraties van variabelen waarvoor geheugenruimte moet

voorbehouden worden in het datageheugen (vanaf 0x0000)

Dit geeft het begin van het programma aan.

Dit startadres (0x0403) verandert elke keer wanneer een bijkomende variabele

gedeclareerd wordt, waardoor alle sprongadressen gewijzigd moeten worden!

Min Word -- op adres 0x0000 Max Word -- op adres 0x0001 Sum Word -- op adres 0x0002 A Array[1024] -- op adressen 0x0003 tot 0x0402ORG PROGRAM

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 45: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-45 06–07

H01L1

Programmavoorbeeld: assembleertaal

ORG PROGRAM

Initialisatie van de lus

Initialisatie van de variabelen

LOAD 0,#0xffff -- RF[0] 0xFFFF Min = MAXINT

CLR 1 -- RF[1] 0 Max = 0 CLR 2 -- RF[2] 0 Sum = 0 CLR 3 -- RF[3] 0 Count = 0 LOAD 4,#0x03ff -- RF[4] 1023D MaxCount

LOAD 5,#0x0003 -- RF[5] 3D adres A[i]

Adres van het huidig vectorelement (initieel eerste)

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 46: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-46 06–07

H01L1

Programmavoorbeeld: assembleertaal

ORG PROGRAM LOAD 0,#0xffff -- RF[0] 0xFFFF Min = MAXINT CLR 1 -- RF[1] 0 Max = 0 CLR 2 -- RF[2] 0 Sum = 0 CLR 3 -- RF[3] 0 Count = 0 LOAD 4,#0x03ff -- RF[4] 1023D MaxCount LOAD 5,#0x0003 -- RF[5] 3D adres A[i]

BODY: LOAD 6,(5) -- RF[6] Mem[RF[5]] A[i] ADD 2,2,6 -- RF[2] RF[2] + RF[6] LE 6,1 -- Status 1 if RF[6] RF[1] CJMP NEXT -- PC NEXT if Status = 1 COPY 1,6 -- RF[1] RF[6]NEXT:NEXT: GE 6,0 -- Status 1 if RF[6] RF[0] CJMP CTU -- PC CTU if Status = 1 COPY 0,6 -- RF[0] RF[6]CTU:

IF A[i] < Min THEN Min=A[i]

IF A[i] > Max THEN Max=A[i]

Begin van de lus (startadres lus = “BODY”)Sum=Sum+A[i]

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 47: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-47 06–07

H01L1

Programmavoorbeeld: assembleertaal

ORG PROGRAM LOAD 0,#0xffff -- RF[0] 0xFFFF Min = MAXINT CLR 1 -- RF[1] 0 Max = 0 CLR 2 -- RF[2] 0 Sum = 0 CLR 3 -- RF[3] 0 Count = 0 LOAD 4,#0x03ff -- RF[4] 1023D MaxCount LOAD 5,#0x0003 -- RF[5] 3D adres A[i]BODY: LOAD 6,(5) -- RF[6] Mem[RF[5]] A[i] ADD 2,2,6 -- RF[2] RF[2] + RF[6] LE 6,1 -- Status 1 if RF[6] RF[1] CJMP NEXT -- PC NEXT if Status = 1 COPY 1,6 -- RF[1] RF[6]NEXT: GE 6,0 -- Status 1 if RF[6] RF[0] CJMP CTU -- PC CTU if Status = 1 COPY 0,6 -- RF[0] RF[6]CTU:CTU: INC 3,3 -- RF[3] RF[3] + 1 INC 5,5 -- RF[5] RF[5] + 1 LE 3,4 -- Status 1 if RF[3] RF[4] CJMP BODY -- PC BODY if Status = 1

Test of lus opnieuw moet uitgevoerd wordenVerhoog lusteller en adres A[i]:

Count = Count+1; (adres A[i]) = (adres A[i])+1

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 48: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-48 06–07

H01L1

Programmavoorbeeld: assembleertaal

ORG PROGRAM LOAD 0,#0xffff -- RF[0] 0xFFFF Min =

MAXINT CLR 1 -- RF[1] 0 Max = 0 CLR 2 -- RF[2] 0 Sum = 0 CLR 3 -- RF[3] 0 Count = 0 LOAD 4,#0x03ff -- RF[4] 1023D MaxCount LOAD 5,#0x0003 -- RF[5] 3D adres A[i]BODY: LOAD 6,(5) -- RF[6] Mem[RF[5]] A[i] ADD 2,2,6 -- RF[2] RF[2] + RF[6] LE 6,1 -- Status 1 if RF[6] RF[1] CJMP NEXT -- PC NEXT if Status = 1 COPY 1,6 -- RF[1] RF[6]NEXT: GE 6,0 -- Status 1 if RF[6] RF[0] CJMP CTU -- PC CTU if Status = 1 COPY 0,6 -- RF[0] RF[6]CTU: INC 3,3 -- RF[3] RF[3] + 1 INC 5,5 -- RF[5] RF[5] + 1 LE 3,4 -- Status 1 if RF[3] RF[4] CJMP BODY -- PC BODY if Status = 1 STOR Min,0 -- Mem[Min] RF[0] STOR Max,1 -- Mem[Max] RF[1] STOR Sum,2 -- Mem[Sum] RF[2]

Stockeer de

resultaten

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 49: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-49 06–07

H01L1

Programmavoorbeeld: assembleertaal

ORG PROGRAM LOAD 0,#0xffff -- RF[0] 0xFFFF Min =

MAXINT CLR 1 -- RF[1] 0 Max = 0 CLR 2 -- RF[2] 0 Sum = 0 CLR 3 -- RF[3] 0 Count = 0 LOAD 4,#0x03ff -- RF[4] 1023D MaxCount LOAD 5,#0x0003 -- RF[5] 3D adres A[i]BODY: LOAD 6,(5) -- RF[6] Mem[RF[5]] A[i] ADD 2,2,6 -- RF[2] RF[2] + RF[6] LE 6,1 -- Status 1 if RF[6] RF[1] CJMP NEXT -- PC NEXT if Status = 1 COPY 1,6 -- RF[1] RF[6]NEXT: GE 6,0 -- Status 1 if RF[6] RF[0] CJMP CTU -- PC CTU if Status = 1 COPY 0,6 -- RF[0] RF[6]...

A[i] wordt 1 maal geladen in RF[6] en wordt 5 maal gebruikt:dit bespaart vermogen en verhoogt de snelheid

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 50: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-50 06–07

H01L1

Programmavoorbeeld: machinetaal

4005 11010XX001XXXXXX -- CLR 14006 11010XX010XXXXXX -- CLR 24007 11010XX011XXXXXX -- CLR 34008 0100000100XXXXXX -- LOAD 4,#0x03FF4009 0000001111111111400A 0100000101XXXXXX -- LOAD 5,#0x0003400B 0000000000000011400C 0101010110101XXX -- LOAD 6,(5) BODY400D 0010000010010110 -- ADD 2,2,6400E 1110011XXX110001 -- LE 6,1400F 1001XXXXXXXXXXXX -- CJMP NEXT4010 01000000000100104011 01XX101001110XXX -- COPY 1,64012 1110001110000XXX -- GE 6,0 NEXT4013 1001XXXXXXXXXXXX -- CJMP CTU4014 01000000000101104015 01XX101000110XXX -- COPY 0,64016 0010010011011XXX -- INC 3,3 CTU4017 0010010101101XXX -- INC 5,54018 1110011XXX011100 -- LE 3,44019 1001XXXXXXXXXXXX -- CJMP BODY401A 0100000000001100

4004 11111111111111114003 0100000000XXXXXX -- LOAD 0,#0xFFFF

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 51: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-51 06–07

H01L1

Ontwerp programmeerbare processoren

Het programma

Processorontwerp Complex Instruction Set Computer

Ontwerp instructieset Instructieset-stroomschema

(‘Instruction Set Flowchart’) Allocatie datapadcomponenten ASM-schema Ontwerp controller Ontwerp datapad

Reduced Instruction Set Computer

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 52: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-52 06–07

H01L1

Instructieset-stroomschema

= visuele voorstelling van alle instructies i.p.v. in tabelvorm Duidelijker als op een groot stuk papier Handig om de instructiedecoder te ontwerpen

De enige architecturale beslissing tot hiertoe is de veronderstelling dat we beschikken over een geheugen (Mem) registerbank (RF) programmateller (PC) instructieregister (IR) statusvlag (Status)

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 53: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-53 06–07

H01L1 Aritmetisch schuiven naar rechts

IR Mem[PC]PC PC+1

Type3 2 1 0

Op11 10 01 00

Registerinstructies

RF[Dest] RF[Src1] >> n

Schuiven naar rechts

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 54: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-54 06–07

H01L1 Aritmetisch schuiven naar links

IR Mem[PC]PC PC+1

Type3 2 1 0

Op11 10 01 00

Registerinstructies

RF[Dest] RF[Src1] << n

Schuiven naar links

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 55: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-55 06–07

H01L1

Dyadische optelling

IR Mem[PC]PC PC+1

Type3 2 1 0

Registerinstructies

RF[Dest] RF[Src1] + RF[Src2]Op11 10 01 00

Dyadische optelling/aftrekking

B11,1011 10 01 00

Aritmetische bewerkingen

0

1

Dyadische optelling

B9

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 56: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-56 06–07

H01L1

Laad constante

IR Mem[PC]PC PC+1

Type3 2 1 0

RF[Dest] Mem[PC]PC PC+1

L*/S1 0

2-woordinstructie

Load

000001010011100101

Onmiddellijk

Load/store

Reg1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 57: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-57 06–07

H01L1

Laad direct uit geheugen

RF[Dest] Mem[Mem[PC]]PC PC+1

Direct

IR Mem[PC]PC PC+1

Type3 2 1 0

L*/S1 0

2-woordinstructie

Load

000001010011100101

Load/store

Reg1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 58: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-58 06–07

H01L1

Laad indirect

RF[Dest] Mem[Mem[Mem[PC]]]PC PC+1

Indirect

IR Mem[PC]PC PC+1

Type3 2 1 0

L*/S1 0

2-woordinstructie

Load

000001010011100101

Load/store

Reg1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 59: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-59 06–07

H01L1

Laad register-indirect

RF[Dest] Mem[RF[Src1]]

1-woordinstructie

Indirect

IR Mem[PC]PC PC+1

Type3 2 1 0

L*/S1 0

Load

000001010011100101

Load/store

Reg1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 60: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-60 06–07

H01L1

Laad register-relatief

RF[Dest] Mem[RF[Src1]+Src2]

Relatief1-woordinstructie

IR Mem[PC]PC PC+1

Type3 2 1 0

L*/S1 0

Load

000001010011100101

Load/store

Reg1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 61: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-61 06–07

H01L1

Laad geïndexeerd

RF[Dest] Mem[Mem[PC]+RF[Src1]]PC PC+1

Geïndexeerd

IR Mem[PC]PC PC+1

Type3 2 1 0

L*/S1 0

2-woordinstructie

Load

000001010011100101

Load/store

Reg1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 62: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-62 06–07

H01L1

Kopieer register

RF[Dest] RF[Src1]

Kopieer

Analoog voor Store

1-woordinstructie

IR Mem[PC]PC PC+1

Type3 2 1 0

L*/S1 0

Load

000001010011100101

Load/store

Reg1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 63: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-63 06–07

H01L1

Onconditionele sprong

PC Mem[PC]Op

3 2 1 0

Onconditionele sprong

Sprong

IR Mem[PC]PC PC+1

Type3 2 1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 64: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-64 06–07

H01L1

Conditionele sprong

PC PC+1

Conditionele sprong

Status1 0

Geen sprong

Op3 2 1 0

Sprong

IR Mem[PC]PC PC+1

Type3 2 1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 65: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-65 06–07

H01L1

Conditionele sprong

PC Mem[PC]

Sprong

Conditionele sprong

Status1 0

Op3 2 1 0

Sprong

IR Mem[PC]PC PC+1

Type3 2 1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 66: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-66 06–07

H01L1

Sprong naar subroutine

JSR

Mem[RF[Src1]] PC+1RF[Src1] RF[Src1]+1

PC Mem[PC]Op

3 2 1 0

Sprong

IR Mem[PC]PC PC+1

Type3 2 1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 67: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-67 06–07

H01L1

Terugkeer uit subroutine

RF[Src1] RF[Src1]−1PC Mem[RF[Src1]]

RTS

Op3 2 1 0

Sprong

IR Mem[PC]PC PC+1

Type3 2 1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 68: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-68 06–07

H01L1

NOP & Clear

Op3 2 1 0

NOP

Andere

IR Mem[PC]PC PC+1

Type3 2 1 0

Clearb111 0

RF[Dest] 0

Clear register

Status 0

Clear Status

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 69: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-69 06–07

H01L1

Zet status, incl. vergelijkingen

Zet Status

Status 1Op

3 2 1 0

Andere

IR Mem[PC]PC PC+1

Type3 2 1 0

000001010011100101

Vergelijk

GT

IF (RF[Src1] > RF[Src2])THEN Status 1ELSE Status 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 70: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-70 06–07

H01L1

Ontwerp programmeerbare processoren

Het programma

Processorontwerp Complex Instruction Set Computer

Ontwerp instructieset Instructieset-stroomschemaAllocatie datapadcomponenten ASM-schema Ontwerp controller Ontwerp datapad

Reduced Instruction Set Computer

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 71: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-71 06–07

H01L1 Allocatie datapadcomponenten

Datapad tot nu toe nodig voor instructies: Registers:

Extern geheugen (1 lees/schrijfpoort; 64K×16) Registerbank (2 lees- & 1 schrijfpoort; 8×16) Statusvlag (1 bit)

FU’s: ALU Comparator 16-bit links/rechts schuifoperatie

Om voor sommige toepassingen een hogere snelheid te halen kunnen bijkomende registers en/of FU’s toegevoegd worden.

Maar de instructieset moet herzien worden bij elke wijziging van het datapad!

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 72: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-72 06–07

H01L1 Allocatie datapadcomponenten

We beslissen hier om 1 toevoeging te voorzien omwille van de snelheid: Traagste instructie: Laad indirect

RF[Dest] Mem[Mem[adres]] & adres Mem[PC]

Deze instructie leest 3 × uit extern geheugen en duurt bijv. 150 ns (als 50 ns/toegang) maximum klokfrequentie = 6,7 MHz registerinstructies zullen dan ook 150 ns

duren, zelfs als hun combinatorische vertraging maar10 ns is

Als we elke externe geheugentoegang in een aparte klokcyclus uitvoeren, kunnen we klokcycli van 50 ns gebruiken (pipelining) maximum klokfrequentie = 20 MHz traagste instructie duurt 3 klokcycli van 50 ns registerinstructie duurt slechts 50 ns

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 73: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-73 06–07

H01L1 Allocatie datapadcomponenten

Daarom wordt een bijkomend Adresregister AR toegevoegd om een adres, dat uit geheugen gelezen wordt, te bewaren voor gebruik in de volgende klokcyclus

RF8×16

AR Status

Comp ALU Shift

Geheugen64K×16

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 74: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-74 06–07

H01L1

Ontwerp programmeerbare processoren

Het programma

Processorontwerp Complex Instruction Set Computer

Ontwerp instructieset Instructieset-stroomschema Allocatie datapadcomponentenASM-schema Ontwerp controller Ontwerp datapad

Reduced Instruction Set Computer

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 75: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-75 06–07

H01L1

Afleiden van het ASM-schema

Het IS-stroomschema geeft aan welke registertransfers er in een instructie gebeuren

Het ASM-stroomschema geeft aan welke registertransfers er in een klokcyclus gebeuren

Bepaal uit het IS-stroomschema welke registertransfers tegelijkertijd gebeuren

Splits de instructie op in (zo weinig mogelijk) verschillende klokcycli zodat er geen hardware conflicten tussen operaties/datatransfers optreden in eenzelfde klokcyclus

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 76: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-76 06–07

H01L1 Aritmetisch schuiven naar rechts

IR Mem[PC]PC PC+1

Type3 2 1 0

Op11 10 01 00

Registerinstructies

RF[Dest] RF[Src1] >> n

Schuiven naar rechts

2 klokcycliHet programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 77: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-77 06–07

H01L1

Laad constante

IR Mem[PC]PC PC+1

Type3 2 1 0

RF[Dest] Mem[PC]PC PC+1

L*/S1 0

2-woordinstructie

Load

000001010011100101

Onmiddellijk

Load/store

Reg1 0

2 klokcycliHet programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 78: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-78 06–07

H01L1

Laad direct uit geheugen

RF[Dest] Mem[Mem[PC]]PC PC+1

Direct

IR Mem[PC]PC PC+1

Type3 2 1 0

L*/S1 0

2-woordinstructie

Load

000001010011100101

Load/store

Reg1 0

AR Mem[PC]PC PC+1

RF[Dest] Mem[AR]

3 klokcycliHet programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 79: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-79 06–07

H01L1

Laad indirect

RF[Dest] Mem[Mem[Mem[PC]]]PC PC+1

Indirect

IR Mem[PC]PC PC+1

Type3 2 1 0

L*/S1 0

2-woordinstructie

Load

000001010011100101

Load/store

Reg1 0

AR Mem[PC]PC PC+1

AR Mem[AR]

RF[Dest] Mem[AR]

4 klokcycliHet programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 80: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-80 06–07

H01L1

Sprong naar subroutine

JSR

Mem[RF[Src1]] PC+1RF[Src1] RF[Src1]+1

PC Mem[PC]Op

3 2 1 0

Sprong

IR Mem[PC]PC PC+1

Type3 2 1 0

Gesplitst in 2 klokcycli: 2 geheugentoegangen (1 × lezen & 1 × schrijven) 2 optellingen

3 klokcycli

AR Mem[PC]PC PC+1

Mem[RF[Src1]] PCRF[Src1] RF[Src1]+1

PC AR

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 81: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-81 06–07

H01L1

Ontwerp programmeerbare processoren

Het programma

Processorontwerp Complex Instruction Set Computer

Ontwerp instructieset Instructieset-stroomschema Allocatie datapadcomponenten ASM-schemaOntwerp controller Ontwerp datapad

Reduced Instruction Set Computer

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 82: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-82 06–07

H01L1

Ontwerp CISC-controller

Vertrek van de algemene FSMD-controller

Nextstatelogic

Out-put

logic

CI

CI

SS

SS

MUX

LIFO

SReg

INC CS

CO

Dit is de programmateller

Push/

Pop*

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 83: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-83 06–07

H01L1

Ontwerp CISC-controller

Nextstatelogic

Out-put

logic

CI

CI

SS

SS

MUX

LIFO

PC

INC CS

CO

Algoritme niet vast relatie (PCnext state & output) niet vast

bijkomende vertaalstap via Programmageheugen en IRHet programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 84: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-84 06–07

H01L1

Ontwerp CISC-controller

Nextstatelogic

Out-put

logic

CI

CI

SS

SS

MUX

LIFO

INC CS

CO

PC Mem IR

1 instructie = sequentie van een paar kleine (micro-)instructies,

1 per klokcyclus: Next state & output zijn FSM i.p.v. combinatorisch

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 85: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-85 06–07

H01L1

Ontwerp CISC-controller

Nextstate

&out-putFSM

CI SS

MUX

LIFO

INC CS

CO

PC Mem IR

Kan een complete FSM-controller zijn met zijn eigen μPC, μIR en μprogramma-

ROM

Sprongadressen komen niet uit next state FSM

maaruit programmageheugen

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 86: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-86 06–07

H01L1

Ontwerp CISC-controller

Nextstate

&out-putFSM

CI SS

MUX

LIFO

INC CS

CO

PC Mem IR

gewoonlijk zelfde (extern) geheugen voor programma &

data

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 87: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-87 06–07

H01L1

Ontwerp CISC-controller

Nextstate

&out-putFSM

CI SS

MUX

LIFO

PC

INC

CS

CO

IR

AD

meestal bevindt de LIFO zich ook in extern

geheugen

Mem(prog. & data)

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 88: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-88 06–07

H01L1

Ontwerp CISC-controller

Nextstate

&out-putFSM

CI SS

MUX PC

INC

CS

CO

IR

AD

Mem(prog. & data)

inclusief LIFO

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 89: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-89 06–07

H01L1

Ontwerp programmeerbare processoren

Het programma

Processorontwerp Complex Instruction Set Computer

Ontwerp instructieset Instructieset-stroomschema Allocatie datapadcomponenten ASM-schema Ontwerp controllerOntwerp datapad

Reduced Instruction Set Computer

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 90: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-90 06–07

H01L1

Ontwerp CISC-datapad

De componenten (= registers & FU’s) zijn reeds vroeger vastgelegd bij allocatie datapadcomponenten

Nu enkel nog de verbindingen tussen de componenten (inclusief 3-state buffers)Af te leiden uit ASM-schema

Als er conflicten tussen het ASM-schema en de componenten/verbindingen zijnExtra componenten herbegin vanaf de

allocatie van de componentenExtra klokcycli herbegin vanaf de bepaling

van het ASM-schema

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 91: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-91 06–07

H01L1

RF8×16

AR Status

Shift ALU Comp

Mem (prog. & data)

AD

Ontwerp CISC-datapad

Dit hebben we na de allocatievan de datapadcomponenten

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 92: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-92 06–07

H01L1 ASM-schema: schuiven naar rechts

IR Mem[PC]PC PC+1

Type3 2 1 0

Op11 10 01 00

RF[Dest] RF[Src1] >> n

Actie controller

Actie datapad

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 93: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-93 06–07

H01L1

RF8×16

AR Status

Shift ALU Comp

Mem (prog. & data)

AD

Ontwerp CISC-datapad

O1

R

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 94: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-94 06–07

H01L1 ASM-schema: dyadische optelling

IR Mem[PC]PC PC+1

Type3 2 1 0

RF[Dest] RF[Src1] + RF[Src2]Op11 10 01 00

B11,1011 10 01 00

0

1

Dyadische optelling

B9

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 95: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-95 06–07

H01L1

RF8×16

AR Status

Shift ALU Comp

Mem (prog. & data)

AD

Ontwerp CISC-datapad

O1

R

O2

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 96: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-96 06–07

H01L1

ASM-schema: laad constante

IR Mem[PC]PC PC+1

Type3 2 1 0

RF[Dest] Mem[PC]PC PC+1

L’/S1 0

000001010011100101

OnmiddellijkReg1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 97: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-97 06–07

H01L1

RF8×16

AR Status

Shift ALU Comp

Mem (prog. & data)

AD

Ontwerp CISC-datapad

O1

R

O2

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 98: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-98 06–07

H01L1

AR Mem[PC]PC PC+1

RF[Dest] Mem[AR]

ASM-schema: laad direct uit geheugen

Direct

IR Mem[PC]PC PC+1

Type3 2 1 0

L’/S1 0

000001010011100101

Reg1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 99: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-99 06–07

H01L1

RF8×16

AR Status

Shift ALU Comp

Mem (prog. & data)

AD

Ontwerp CISC-datapad

O1

R

O2

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 100: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-100 06–07

H01L1 ASM-schema: laad geïndexeerd

Geïndexeerd

IR Mem[PC]PC PC+1

Type3 2 1 0

L’/S1 0

000001010011100101

Reg1 0

AR Mem[PC] + RF[Src1]PC PC+1

RF[Dest] Mem[AR]

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 101: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-101 06–07

H01L1

RF8×16

AR Status

Shift ALU Comp

Mem (prog. & data)

AD

Ontwerp CISC-datapad

O1

R

O2

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 102: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-102 06–07

H01L1

ASM-schema: kopieer register

RF[Dest] RF[Src1]

Kopieer

IR Mem[PC]PC PC+1

Type3 2 1 0

L’/S1 0

000001010011100101

Reg1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 103: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-103 06–07

H01L1

RF8×16

AR Status

Shift ALU Comp

Mem (prog. & data)

AD

Ontwerp CISC-datapad

O1

R

O2

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 104: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-104 06–07

H01L1

AR Mem[PC]PC PC+1

Mem[AR] RF[Src1]

ASM-schema: stockeer direct

Direct

IR Mem[PC]PC PC+1

Type3 2 1 0

L’/S1 0

000001010011100101

Reg1 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 105: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-105 06–07

H01L1

RF8×16

AR Status

Shift ALU Comp

Mem (prog. & data)

AD

Ontwerp CISC-datapad

O1

R

O2

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 106: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-106 06–07

H01L1

ASM-schema: sprong naar subroutine

JSR

Op3 2 1 0

IR Mem[PC]PC PC+1

Type3 2 1 0

AR Mem[PC]PC PC+1

Mem[RF[Src1]] PCRF[Src1] RF[Src1]+1

PC AR

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 107: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-107 06–07

H01L1

Aanpassing CISC-controller

Nextstate

&out-putFSM

CI SS

MUX PC

INC

CS

CO

IR

AD

Mem(prog. & data)

Mem[RF[Src1]] PC PC moet op databus kunnen controller aanpassen

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 108: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-108 06–07

H01L1

RF8×16

AR Status

Shift ALU Comp

Mem (prog. & data)

AD

Ontwerp CISC-datapad

O1

R

O2

Mem[RF[Src1]] PCRF[Src1] RF[Src1]+1

PC AR

Onmogelijk:extra verbinding

ofextra klokcyclus

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 109: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-109 06–07

H01L1

ASM-schema: vergelijk

Op3 2 1 0

IR Mem[PC]PC PC+1

Type3 2 1 0

000001010011100101

GT

IF (RF[Src1] > RF[Src2])THEN Status 1ELSE Status 0

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 110: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-110 06–07

H01L1

RF8×16

AR

Shift ALU

Mem (prog. & data)

AD

Ontwerp CISC-datapad

O1

R

O2Comp

Status

Etc., etc., etc. …

Het programma

• Instructies

• Adresseermodi

Processorontwerp

CISC

IS-ontwerp

IS-schema

Datapad-componenten

ASM-schema

Controller

Datapad

• RISC

Page 111: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-111 06–07

H01L1

Ontwerp programmeerbare processoren

Het programma

ProcessorontwerpComplex Instruction Set Computer Reduced Instruction Set Computer

Het programma

• Instructies

• Adresseermodi

Processorontwerp

• CISC

RISC

Page 112: Program- meerbare processoren KATHOLIEKE UNIVERSITEIT 6-16-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Program-meerbare

processoren

KATHOLIEKE UNIVERSITEIT

6-112 06–07

H01L1

Ontwerp RISC

Ongeveer zoals CISC maar hoge klokfrequentie zeer belangrijk zo veel mogelijk pipeliningPipelining van uitvoering instructies

beperkingen op instructieset eenvoudige instructies instructies ± even lang

Pipelining van controller en datapad laat het stoppen van de pipeline toe

bijv. sprong: nieuwe PC moet eerst berekend worden

Lees instructieLees instructie

Lees operand(en) of

adressen

Lees operand(en) of

adressen

Bewerk of bereken adres

Bewerk of bereken adres

Stockeer resultaatStockeer resultaat

I1 I2 I3 I4 I5 I1 I2 I3 I4 I1 I2 I3 I1 I2

Het programma

• Instructies

• Adresseermodi

Processorontwerp

• CISC

RISC