Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd...

42

Transcript of Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd...

Page 1: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9
Page 2: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Dynamiczna lista rozkazów procesora implementowanego

w układzie FPGA

prof. dr hab. inż. Kazimierz Wiatr

Katedra Elektroniki

Wydział

Elektrotechniki, Automatyki, Informatyki i Elektroniki

email: [email protected]

Page 3: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

ZAGADNIENIA

Cel

Rekonfigurowalne układy PLD

Koprocesor reprogramowalny

Opracowany procesor

Interface użytkownika

Wnioski

Page 4: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Rekonfiguracja częściowa układu programowalnego

Licznik -

synchronizacja

Korekcja błędów

Układ transmisyjny

WeryfikacjaCRC

Filtr A

Przed rekonfiguracją Po rekonfiguracji

Licznik -

synchronizacja

Korekcja błędów

Układ transmisyjny

WeryfikacjaCRC

Filtr B

Page 5: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Struktura cztero-kontekstowego modelu FPGA

Pamięć

konfiguracyjnaLogika sprzętowa

1

Aktywna konfiguracja

2

3

4

Page 6: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Idea rekonfiguracji częściowej

Logika

Nowa częściowa konfiguracja

Pamięć

konfiguracyjna przed rekonfiguracją

Pamięć

konfiguracyjna po rekonfiguracji

Logika

Page 7: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Struktura pamięci konfiguracyjnej w multikontekstowym

modelu FPGA

Biblioteka konfiguracji sprzętowych

I/O

Poziomypamięci konfiguracyjnej (konteksty)

Page 8: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Architektura komórki logicznej typu Context Switching

END Q

FFCLK

ROM(LUT)

RAM(LUT)

Końcowy układ

M

Page 9: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

System z wielokrotnym wykorzystaniem do obliczeń

jednego układu FPGA

Linia transmisyjna

Kamera

FPGA

A→C

Przyjęcie danych

KompresjaWstępne przetworzenie

Modulacja

Pamięć

konfiguracyjna

FPGA

C→A

1

2

3

4

010110... 010110...

Page 10: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Struktura różnych architektur układów obliczeniowych

a) Układ rekonfigurowalny

(FCCM)

b) Procesor ogólnego przeznaczenia GPP

c) Układy ASIC

Rekonfigurowalny

FPGA

Pamięć

konfiguracyjna

a)

Pamięć

programuDane

ASIC

Dane

Dane

ASIC

ASIC

ProcesorDane

Dane

b) c)

Page 11: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Mikroprocesor z rekonfigurowalnym

koprocesorem

Główny procesor (RISC)

Cache instrukcji

Cache danych

Interfejs jednostki

Koprocesor

rekonfigurowalny

Globalna jednostka kontrolna

Rejestry danych

Matryca

rekonfigurowalna

Page 12: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Realizacja obliczeń w systemie tradycyjnym

Koprocesor standardowy

÷

sin()

exp()Procesor

Page 13: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Realizacja obliczeń w systemie

rekonfigurowalnym

Koprocesor

rekonfigurowalny

÷ sin()exp()Procesor

Page 14: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Wzrost liczby tranzystorów w układach różnego typu

1994

1995

1996

1997

1998

1999

2000AMD

PowerPC

Intel

FPGA

0

50

100

150

200

Lata

Page 15: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Układy programowalne PLD

RODZAJ FIRMA BRAMKI CLB I/O REJESTRY KONFIG.Max5000 Altera 3.800 192 64 192 EPROMMax7000 Altera 5.000 256 160 256 EEPROMFlex8000 Altera 24.000 1296 204 1500 SRAMACT2 Actel 20.000 140 998 OTPMach400 AMD 10.000 256 146 384 ISP(EEPROM)

ATV5100 Atmel 5.000 60 128 EPROMATV6010 Atmel 10.000 6400 204 6400 EEPROMXC4000 Xilinx 250.000 8464 448 18400 SRAMXC8100 Xilinx 45.000 6144 320 3072 OTPXC7300 Xilinx 144 156 276 EPROMXC9500 Xilinx 12.800 576 232 576 ISP(EEPROM)

VIRTEX Xilinx 1.124.022 6144 512 24576 SRAM (2,5V)

VIRTEX II Xilinx 10.000.000 15360 1108 61440 SRAM (2,5V)

Page 16: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Układy FPGA serii XC4000

Page 17: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Połączenia w układach FPGA3 12 85

4

Page 18: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Struktura bloku CLB w układach XC4000

Page 19: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Procesor logiczny w XC4004-5PG120

1

2

G R _G R _ G R I G R I G R I G R I G R I G R _ G R I G R _ D O 7 U 1 5 F 1 3 G R _ G R _ G R _ U 1 1 G R _ G R _ G R _ G R _ G R I G R _ G R _ U 1 2

1

3

U 1 2

1

2

9G R I D / U

3 1 6 _ O

C L B _ R 1

2 C 2

C L B _ R 1

2 C 3

S 1 / U 3 2

5 _ O

S 1 / B 1 _

P R I M

M S _ - R A

S

L O / O B R

_ Q 2

P R / O R _

P

P R / U 4 8

4 / T 1

A D R 5 A D R 1 C L B _ R 1

2 C 1 2

1

1

1

3

7

5

1

0- T R / - O

E _ P

C L B _ R 1

1 C 2

- S T O P P R / N _ A

D R _ P

F S / U 4 4

4 _ O

L O / S T R F S / U 2 4

9 _ O

L O / U 2 6

0 / N Z 8

A D R 3 A D R 7 A D R 8 L O / O B R

_ D 1

1

2

9

1

1

9C L B _ R 1

0 C 1

C L B _ R 1

0 C 2

P R / Q 0 _

P

S 1 / D E L

A Y

- C A S _ P O D / C L K

/ 3 2

L O / O B R

_ Q 3

F S / U 2 5

5 _ O

M S _ - C A

S

- M E / - W

E _ P

A D R 6 C L B _ R 1

0 C 1 2

1

0

1

1

1

0

8C L B _ R 9

C 1

C L B _ R 9

C 2

P R / U 3 0

5 _ P

O D E / U 3

4 9 _ Q

C L B _ R 9

C 5

O D / U 2 7

7 / T 1

O D / U 2 7

7 / Q 3

L O / U 2 6

0 / N Z 2 4

P R / S 4 _

P

C L B _ R 9

C 1 0

- C A S _ O O D / Q 0 _

O

9

1

0

8

9C L B _ R 8

C 1

O D E / U 3

4 3 _ G

C L B _ R 8

C 3

O D E / U 4

9 3 _ Q

O D E / U 3

4 5 _ Q

O D / U 2 7

7 / Q 1

C L B _ R 8

C 7

O D / R D _

O

O D / C E _

O

C L B _ R 8

C 1 0

C L B _ R 8

C 1 1

C L B _ R 8

C 1 2

8

9

8

7C L B _ R 7

C 1

C L B _ R 7

C 2

C L B _ R 7

C 3

C L B _ R 7

C 4

O D E / U 3

4 1 _ Q

P D _ O U T

7

F S / U 3 5

9 _ O

C L B _ R 7

C 8

S 1 / W P I

S _ A D R 3

C L B _ R 7

C 1 0

C L B _ R 7

C 1 1

G R I D / U

3 1 8 _ O

8

8

6

6C L B _ R 6

C 1

C L B _ R 6

C 2

O D E / H M

2 _ Q < 7 >

C L B 1 O D E / H M

1 _ Q < 7 >

P D _ O U T

5

C L B _ R 6

C 7

A D R E S 3 A D R E S 4 C L B _ R 6

C 1 0

C L B _ R 6

C 1 1

C L B _ R 6

C 1 2

7

6

5

6C L B _ R 5

C 1

F S / U 4 4

7 _ O

O D E / H M

2 _ Q < 5 >

O D E / H M

3 _ S < 0 >

O D E / H M

1 _ Q < 5 >

P D _ O U T

3

F S / U 4 4

8 _ O

A D R E S 1 A D R E S 2 C L B _ R 5

C 1 0

C L B _ R 5

C 1 1

C L B _ R 5

C 1 2

5

6

4

5C L B _ R 4

C 1

C L B _ R 4

C 2

O D E / H M

2 _ Q < 3 >

O D E / H M

3 _ S < 2 >

O D E / H M

1 _ Q < 3 >

P D _ O U T

0

C L B _ R 4

C 7

C L B _ R 4

C 8

C L B _ R 4

C 9

C L B _ R 4

C 1 0

C L B _ R 4

C 1 1

G R I D / U

3 1 7 _ O

6

4

4

5C L B _ R 3

C 1

C L B _ R 3

C 2

O D E / H M

2 _ Q < 0 >

O D E / H M

3 _ S < 4 >

O D E / H M

1 _ Q < 0 >

O D E / H M

6 / R S 8 P

H _ C E

C L B _ R 3

C 7

C L B _ R 3

C 8

C L B _ R 3

C 9

C L B _ R 3

C 1 0

C L B _ R 3

C 1 1

C L B _ R 3

C 1 2

5

3

2

1C L B _ R 2

C 1

C L B _ R 2

C 2

O D E / H M

2 / R S 8 P

H _ C E

O D E / H M

3 _ S < 6 >

O D E / H M

1 / R S 8 P

H _ C E

C L B _ R 2

C 6

C L B _ R 2

C 7

C L B _ R 2

C 8

C L B _ R 2

C 9

C L B _ R 2

C 1 0

C L B _ R 2

C 1 1

C L B _ R 2

C 1 2

4

5

3

2C L B _ R 1

C 1

C L B _ R 1

C 2

C L B _ R 1

C 3

O D E / H M

3 / O F L

C L B _ R 1

C 5

C L B _ R 1

C 6

C L B _ R 1

C 7

C L B _ R 1

C 8

C L B _ R 1

C 9

C L B _ R 1

C 1 0

C L B _ R 1

C 1 1

C L B _ R 1

C 1 2

2

32

U 1 1U 1 1 C 2 G R I G R I G R I G R I U 1 4 D O 1 U 4 _ D O 5 G R I G 1 G R I H 2 J 1 H 3 G R I G R I G R I G R I J 3 G R I G R I G R IG R I

3

Page 20: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Raport z implementacji procesora LUT

XMAKE:

begin command

'sdt2xnf -x -p4005PC84-5 'SDT2XNF

Ver. 4.20(c)

Copyright

1987-1992

Xilinx Inc.

All rights reservedppr

[1.30] --

Xilinx Automatic

CAE

Tools+ Parameters

design

= xi.xnf parttype

= 4005PC84-5justflatten

= FALSEestimate

= FALSElogfile

=

ppr.log + Additional Specified or Non-Default Parameters

seed

= 848495022Speedfile version

9,

revision

8.+

Converting

XNF to MXN @ 13:03:45 [00:00:13]Preliminary evaluation of your selected part, 4005PC84:

89% utilization of io pins. ( 85

of

95) 40% utilization of function generators. (116

of

288) 37% utilization of clb flip-flops. (106

of

288) 25% utilization of bus resources. ( 12

of

48)This includes

50

function generators and

50

flip-flops inside hard macros,

which cannot be used

for

other purposes.This includes

4 CLB

flip-flops that must be left unoccupied,

because

4

netssource an odd number of

DFF C

pins.The preliminary checks say the design

will

fit. PPR will

proceed

to

the next stage.You selected what appears

to

be the best available part.

Resource_usage:

Pips

1442,

Feeds

38,

Locals

502,

Doubles

213, Longs

115,

Globals

9,

Dec_lines

2 # of unrouted connections: 0. + Generating

.LCA

File

@ 13:05:45 [00:02:13]

Begin work

on a 19.8ns

path with

1

pins. (slack

13.5ns).

Timing analysis summaryDeadline Actual(*)

label: [qualifier]pad to pad <auto> 56.2ns <default>

Selector

net:

Default clock

to

setup

<auto> 40.5ns (rising edges)clock

to

setup

<auto> 8.5ns (falling edges)clock

to

setup

<auto> 7.9ns (rising

to

falling edge) pad to

setup

<auto> 42.0ns

clock

to pad <auto> 64.8nsSelector

net: ODE/CLK_OUT clock

to pad 33.3ns 19.8ns TS1: DO* Selector

net: PR/N_ADR_P clock

to

setup

33.3ns 19.1ns TS2:clock

to

setup

33.3ns 9.1ns TS2: (from other)clock

to pad <auto> 19.0ns

+ Making Report File

@ 13:07:52 [00:04:20]-

ppr

@ 1996/11/20 13:07:56 [00:04:24]= ----

@ 1996/11/20 00:04:14 [00:04:14]XMAKE:

begin command 'makebits

-r2 -s0 xi.lca'Xilinx

LCA MAKEBITS

Ver. 4.31

ended normally

Page 21: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Opis opracowanego procesora•

architektura umożliwiająca definiowanie przez użytkownika własnych rozkazów;•

16-to bitowa magistrala danych;•

20-to bitowa magistrala adresowa;•

16-to bitowy port we/wy;•

możliwość

bezpośredniego adresowania 1 MB pamięci;•

możliwość

wykonywania operacji na bitach;•

108 rozkazów, które można podzielić

na grupy:•

przesłań•

arytmetyczne•

logiczne•

bitowe•

skoków•

sterujące•

wejścia-wyjścia•

użytkownika•

cztery sposoby adresowania pamięci:•

natychmiastowe•

bezpośrednie•

rejestrowe•

rejestrowe pośrednie•

dwie linie przerwań;•

osiem 16-to bitowych rejestrów danych oraz akumulator;•

cztery 20-to bitowe rejestry adresowe;16-to bitowy rejestr statusowy w którym bity od 9 do 15 są wolne, tzn. mogą byćużyte przez użytkownika

Page 22: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Procesor funkcjonalnie składa się

z trzech głównych bloków:

B1 -

blok sterujący magistralą

adresową, danych oraz sygnałami zapisu/odczytu; B2 -

blok testujący zewnętrzne linie sterujące; B3 -

blok dekodujący i wykonujący rozkazy.

Page 23: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Znaczenie Nazwa Kierunek

magistrala danych D0-D15 wejście-wyjściemagistrala adresowa A0-A19 wejścieport danych P0-P15 wejście-wyjścieżądanie dostępu do pamięci ! MREQ wyjścieodczyt / zapis pamięci R/!W wyjściezatrzymanie procesora !HALT wyjściewydłużanie cyklu procesora READY wejścieprzerwanie maskowalne !INT wejścieprzerwanie niemaskowalne !NMI wejścieakceptacja przerwania NMI !NMIA wyjścieakceptacja przerwania INT !INTA wyjściezerowanie procesora !RESET wejścieżądanie magistrali !BUSREQ wejściepotwierdzenie zwolnienia magistrali !BUSACK wyjściezegar CLK wejście

Magistrale i rejestry

Page 24: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Rejestry procesora

Nazwa Mnemonik Liczba bitów

akumulator A 16rejestry danych D0 - D7 16rejestry adresowe A0 - A3 20licznik programu PC 20wskaźnik stosu SP 20rejestr statusowy SR 16rejestr kierunku portu PD 16

Page 25: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Przykładowa implementacja

W procesorze tym zaimplementowano następujące rozkazy:

LD A,nn LD A,(ss) LD (ss),A LD r,A

LD r,r LD ra,ss LD ra,A PUSH A

POP A PUSH SR ADC nn ADC (ss)

SBC nn SBC r ROR A SLA A

SRA A AND nn XOR nn NOT A

BIT b,A SET b,A NEG b,A SET C

NEG C SET b,SR NEG b,SR JP ss

JP_C ss JP_NC ss JR_Z,e CALL ss

RET RETI RETN NOP

HALT EI DI LD A,P.

LD P,A LD PD,A

Page 26: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Raport MapXilinx Mapping Report File for Design "procesor"

Copyright (c) 1995-1998 Xilinx, Inc. All rights reserved.

Design InformationCommand Line : map -p xc4020xl-09-ht144 -o map.ncd procesor.ngd procesor.pcfTarget Device : x4020xlTarget Package : ht144Target Speed : -09Mapper Version : xc4000xl -- M1.5.25Mapped Date : Fri Apr 02 04:01:37 1999

Design SummaryNumber of errors: 0Number of warnings: 0Number of CLBs: 784 out of 784 100%

CLB Flip Flops: 111CLB Latches: 1404 input LUTs: 1355 (3 used as route-throughs)3 input LUTs: 276 (30 used as route-throughs)

Number of bonded IOBs: 64 out of 113 56%IOB Flops: 38IOB Latches: 1

Number of clock IOB pads: 1 out of 12 8%Number of BUFGLSs: 8 out of 8 100%6 unrelated functions packed into 6 CLBs.(Less than 1% of the CLBs used are affected.)

Total equivalent gate count for design: 10817Additional JTAG gate count for IOBs: 3072

Page 27: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Raport TimingXilinx TRACE, Version M1.5.25Copyright (c) 1995-1998 Xilinx, Inc. All rights reserved.Design file: procesor.ncdPhysical constraint file: procesor.pcfDevice,speed: xc4020xl,-09 (x1_0.45 1.24 PRELIMINARY)Report level: error report, limited to 3 items per constraint---------------------------------------------------------------------------WARNING:bastw:170 - No timing constraints found, doing default enumeration.===========================================================================Timing constraint: Default period analysis373364 items analyzed, 0 timing errors detected.Minimum period is 44.681ns.===========================================================================Timing constraint: Default net enumeration1556 items analyzed, 0 timing errors detected.Maximum net delay is 21.216ns.---------------------------------------------------------------------------All constraints were met.Timing summary:

Timing errors: 0 Score: 0Constraints cover 373364 paths, 1556 nets, and 5614 connections (100.0%coverage)Design statistics:

Minimum period: 44.681ns (Maximum frequency: 22.380MHz)Maximum net delay: 21.216ns

Analysis completed Fri Apr 02 04:06:23 1999

Page 28: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Interface użytkownika

Page 29: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Dodawanie rozkazu

Page 30: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Opis rozkazu w kodzie języka VHDL

Page 31: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Poprawianie rozkazu

Page 32: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Usuwanie rozkazu

Page 33: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Tworzenie pliku wynikowego

Page 34: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Symulacja funkcjonalna

Page 35: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Symulacja po implementacji w XC4020XL

Page 36: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9
Page 37: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Wymogi obliczeniowe systemów obliczeniowych nieustannie rosną

szybkość akwizycji 1000 do 5000 obrazów na sekundęrozdzielczość 128x128 i 256x256

napływ pikseli do 327,68 MHz (3,1 ns)standardowo 14,75 MHz (67,8 ns)

Page 38: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Wzrastają

bardzo szybko pojemności i szybkość

układów FPGA

Page 39: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Moce obliczeniowe układów FPGA wielokrotnie przekraczają

moce procesorów ogólnego przeznaczenia

Miliardy operacji MAC/s

8 MACs Proc. Virtex-E Virtex-II

2 GMAC32 GMAC

600 GMAC

Page 40: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Struktura

układu

One Chip

Pamięć

danych PFU

(dzielona)

Pamięćkonfigura-

cyjna

PFU

Rdzeń

CPU

Logika stała

Logika

rekonfigurowalna

Page 41: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9
Page 42: Dynamiczna lista rozkazów procesora · 2011. 6. 12. · act2 actel 20.000 140 998 otp mach400 amd 10.000 ... fs/ u2 5 5_o ms _ - c a s-me/ -w e_ p ad r6 0c12 0 1 1 0 8 cl b _ r 9

Dziękuję za uwagę