SlideShare une entreprise Scribd logo
1  sur  37
Microprocessoren
Vincent Claes
2006
Inleiding
 Wat is een microprocessor
 CPLD / FPGA
 Types Microprocessoren
 Voordelen/nadelen
Inleiding
 Wat is een microprocessor
 CPLD / FPGA
 Types Microprocessoren
 Voordelen/nadelen
Microprocessor (µP)
 Één enkele IC waar verschillende
nuttige functies in zitten
 De mogelijkheid om een opgeslagen set
instructies uit te voeren om zo taken die
de gebruiker aanmaakt uit te voeren
 De mogelijkheid om extern geheugen
IC’s aan te spreken om zo data te lezen
van en te schrijven naar deze geheugen
IC’s
Microcomputer
 Een computersysteem bestaat uit:
 Een computer
 Één of meer invoereenheden
 Één of meer uitvoereenheden
Invoereenheden - Uitvoereenheden
 Principiële opbouw van een computersysteem
Invoer
eenheid
Geheugen
ALU
Besturings-
eenheid
Uitvoer
eenheid
O
/
P
O
O
R
T
E
N
I
/
P
O
O
R
T
E
N
Input Computer Output
Toetsenbord
Temp. Opnemer
Scherm
Printer
Motor
Computer
 De computer zelf bestaat uit:
 CVE (centrale verwerkingseenheid)
 Rekenkundige en logische eenheid (ALU)
 Besturingseenheid (Control Unit)
 Geheugen
 I/O-poorten
 Microcomputer = computer waarvan
de CVE nog slechts één chip is.
Busstructuur bij een microcomputer
CVE
(MPU)
Geheugen
RAM & ROM
I/O
Poorten
Controlebus
Databus
D0 – D7
Adresbus 16 bit (A0 – A15)
P0 – P7
De Microprocessor
ALU
A
Adres Buffer
PC 16bit
S 8bit
IR
Controle
Databuffer
Besturing V
N
Z
C
Conditiecode of
status register
8bit databus
D0 – D7
Controle bus
Adresbus 16 bit
A0 – A15 Interne databus 8bit
De Microcontroller (µC)
CPU Memory I/O
BUS
Overzicht
 Wat is een microprocessor
 CPLD / FPGA
 Types Microprocessoren
 Voordelen/nadelen
Soorten programmeerbare logica
Belangrijkste:
PLDs
CPLDs
FPGAs
Programmable Logic Devices (PLDs)
 IC waarvan logische functie
geprogrammeerd wordt na fabricage
 Meestal zelfs herprogrammeerbaar
 PLD (PLA of PAL): two-level structuur
van AND en OR gates met user-
programmable connections
 CPLDs (Complex PLDs) en FPGAs
(Field Programmable Gate Arrays)
werden ontworpen om grotere
systemen mee op te zetten
PROM:
Programmable Read Only Memory
AND Array (vast)
OR Array (programmeerbaar)
PLDs – PAL:
Programmable Array Logic
AND Array (programmeerbaar)
OR Array (vast)
PLDs – FPLA:
Field Programmable Logic Array
AND Array (programmeerbaar)
OR Array (programmeerbaar)
PLDs
 Kleine chips
 Werking moet je kennen voor verder
te kunnen
 PLDs worden meestal
geprogrammeerd in
programmeertalen zoals ABEL of
PALASM (hardware equivalent van
assembler) ofwel door gebruik te
maken van een schematic capture
tool
CPLDs
 Complex Programmable Logic Devices
 Kan gezien worden als meerdere
PLDs (en een surplus aan
“programmable interconnect”) in 1
chip
 Meer logische vergelijkingen of een
gecompliceerder design
 Vele 7400-serie ICs vervangen door
1 CPLD!!!
CPLD – interne structuur
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Switch
Matrix
CPLDs
 Architectuur
 Iedere logische blok is eigenlijk een PLD
 In een CPLD bevinden zich 4 of meer
logische blokken
 Deze logische blokken bestaan zelf uit
macrocellen en “interconnect wiring”
zoals een gewone PLD
FPGAs
 Field Programmable Gate Arrays
 Voor het implementeren van bijna
ieder hardware ontwerp
 Prototyping van ontwerpen voor
ASICs
FPGAs – interne structuur
Logic
Block
I/O
Block
Interconnection
resources
FPGAs
 Interne structuur
 CLB: Configurable Logic Block
 Programmable Interconnect
 I/O blocks
FPGAs
 Kleine en simpele macrocells zoals in
een PLD (fine-grained architecture)
 Grotere en meer complexe macrocells
(coarse-grained)
Programmatie CPLD / FPGA
 Programmeerbare logica
 IC’s waarvan de functie na de fysieke
productie door de klant kan worden
geconfigureerd
 VHDL of Verilog (LabVIEW FPGA ?)
Overzicht
 Wat is een microprocessor
 CPLD / FPGA
 Types Microprocessoren
 Voordelen/nadelen
Types Microprocessoren
 Discrete processoren
 Hard processor cores
 Soft Processor cores
Discrete Processor
 “Traditionele” manier van werken
 Meerdere fabrikanten (Atmel,
Microchip, ARM, Freescale…)
 Geïmplementeerd als een ASIC met
een specifieke “peripheral set” samen
met de processor core
 Juiste processor zoeken kost veel tijd
 Applicatie kost
 Functionele vereisten
 Custom Logic of “peripheral
functionality” nodig?
Discrete Processor - voorbeeld
 6502 (8-bit microprocessor)
 6809 (8-bit microprocessor)
 Z8000 (Zilog 16-bit microprocessor)
 8086 (Intel 16-bit microprocessor)
 68000 (Motorola 16-bit
microprocessor)
Hard processor cores
 Hard processor core in een FPGA of CPLD
 Zogenaamd “dedicated silicon” in deze
chip.
 Voordeel:
 de peripherals kunnen op maat gemaakt
worden voor de toepassing
 Nadeel:
 de core kan niet aangepast worden
 Men moet een specifieke FPGA kiezen met een
hard processor core in.
 De keuze van fabrikant en FPGA is gelimiteerd
Hard processor core - voorbeeld
 Altera EXCALIBUR (32-bit hardcore
CPU)
 Xilinx Virtex-II PRO (PowerPC 405D5
processor core – 32-bit hardcore
CPU)
Soft processor cores
 Is volledig geïmplementeerd in de logica van de FPGA
of CPLD (via VHDL / Verilog code)
 Ingezet bij een simpel systeem waar enkel de GPIO
(General Purpose Input/Output) moet gemanipuleerd
worden
 Past ook in een zeer complex systeem waar een
Operating System nodig en enkele interfaces nodig
zijn (Ethernet, PCI – Peripheral Component
Interconnect), custom IP (Intellectual Property),…)
 Nadeel:
 Heeft minder goede prestaties dan zijn hard processor core
tegenhanger of de discrete processor.
 Voordeel:
 Is veel flexibeler; alles is aanpasbaar
 Meerdere processoren langs elkaar in 1 chip
Soft processor core - voorbeeld
 Leon2 (32-bit softcore CPU - Gratis)
 Xilinx MicroBlaze (32-bit softcore
CPU)
 Xilinx PicoBlaze (8-bit softcore CPU)
 Altera NIOS (32-bit softcore CPU)
 OpenRISC 1200 (32-bit softcore CPU
- Gratis)
Overzicht
 Wat is een microprocessor
 CPLD / FPGA
 Types Microprocessoren
 Voordelen/nadelen
Samenvatting
Discrete
Processor
Soft
processor
core
Hard
processor
core
Oude manier van
werken
High-tech High-tech
Glue logic nodig Geen glue logic
nodig
Geen glue logic
nodig
Afhankelijk van
processor IC
Volledig digitaal
systeem kan
ontworpen en
aangepast worden in
1 IC ???
Afhankelijk van hard
processor core
Meerdere
microprocessoren in
1 chip
Snelheid Snelheid
Meer informatie
 http://www.opencores.org
 http://www.xilinx.com/products/desig
n_resources/proc_central/index.htm
 http://www.altera.com/products/ip/pr
ocessors/ipm-index.jsp
 http://www.actel.com/products/armin
fusion/
 The Design Warrior’s guide to FPGA
 ISBN: 0-7506-7604-3 (Elsevier)
--- Vragen ??? ---

Contenu connexe

Plus de Vincent Claes

Percepio Tracealyzer for FreeRTOS on MiniZED
Percepio Tracealyzer for FreeRTOS on MiniZEDPercepio Tracealyzer for FreeRTOS on MiniZED
Percepio Tracealyzer for FreeRTOS on MiniZEDVincent Claes
 
Xilinx Vitis FreeRTOS Hello World
Xilinx Vitis FreeRTOS Hello WorldXilinx Vitis FreeRTOS Hello World
Xilinx Vitis FreeRTOS Hello WorldVincent Claes
 
Programming STM32L432 Nucleo with Keil MDK
Programming STM32L432 Nucleo with Keil MDKProgramming STM32L432 Nucleo with Keil MDK
Programming STM32L432 Nucleo with Keil MDKVincent Claes
 
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP BlockDebugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP BlockVincent Claes
 
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA's
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA'sUsing Virtual IO (VIO) on Xilinx ZYNQ FPGA's
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA'sVincent Claes
 
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)Vincent Claes
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot PythonVincent Claes
 
Installation Anaconda Navigator for Python Workshop
Installation Anaconda Navigator for Python WorkshopInstallation Anaconda Navigator for Python Workshop
Installation Anaconda Navigator for Python WorkshopVincent Claes
 
ZYNQ BRAM Implementation
ZYNQ BRAM ImplementationZYNQ BRAM Implementation
ZYNQ BRAM ImplementationVincent Claes
 
Implementing a Database and API for your Cloud Service
Implementing a Database and API for your Cloud ServiceImplementing a Database and API for your Cloud Service
Implementing a Database and API for your Cloud ServiceVincent Claes
 
Launching Python Cloud Services for AI/IoT Projects
Launching Python Cloud Services for AI/IoT ProjectsLaunching Python Cloud Services for AI/IoT Projects
Launching Python Cloud Services for AI/IoT ProjectsVincent Claes
 
Real Time Filtering on Embedded ARM
Real Time Filtering on Embedded ARMReal Time Filtering on Embedded ARM
Real Time Filtering on Embedded ARMVincent Claes
 
R Markdown, Rpubs & github publishing and Shiny by Example
R Markdown, Rpubs & github publishing and Shiny by ExampleR Markdown, Rpubs & github publishing and Shiny by Example
R Markdown, Rpubs & github publishing and Shiny by ExampleVincent Claes
 
Using Texas Instruments Code Composer Studio for The CC3200XL Launchpad
Using Texas Instruments Code Composer Studio for The CC3200XL LaunchpadUsing Texas Instruments Code Composer Studio for The CC3200XL Launchpad
Using Texas Instruments Code Composer Studio for The CC3200XL LaunchpadVincent Claes
 
Hogeschool PXL Smart Mirror
Hogeschool PXL Smart MirrorHogeschool PXL Smart Mirror
Hogeschool PXL Smart MirrorVincent Claes
 
Implementing an interface in r to communicate with programmable fabric in a x...
Implementing an interface in r to communicate with programmable fabric in a x...Implementing an interface in r to communicate with programmable fabric in a x...
Implementing an interface in r to communicate with programmable fabric in a x...Vincent Claes
 
Debugging IoT Sensor Interfaces (SPI) with Digilent Analog Discovery 2
Debugging IoT Sensor Interfaces (SPI) with Digilent Analog Discovery 2Debugging IoT Sensor Interfaces (SPI) with Digilent Analog Discovery 2
Debugging IoT Sensor Interfaces (SPI) with Digilent Analog Discovery 2Vincent Claes
 

Plus de Vincent Claes (20)

Percepio Tracealyzer for FreeRTOS on MiniZED
Percepio Tracealyzer for FreeRTOS on MiniZEDPercepio Tracealyzer for FreeRTOS on MiniZED
Percepio Tracealyzer for FreeRTOS on MiniZED
 
Xilinx Vitis FreeRTOS Hello World
Xilinx Vitis FreeRTOS Hello WorldXilinx Vitis FreeRTOS Hello World
Xilinx Vitis FreeRTOS Hello World
 
Programming STM32L432 Nucleo with Keil MDK
Programming STM32L432 Nucleo with Keil MDKProgramming STM32L432 Nucleo with Keil MDK
Programming STM32L432 Nucleo with Keil MDK
 
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP BlockDebugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
 
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA's
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA'sUsing Virtual IO (VIO) on Xilinx ZYNQ FPGA's
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA's
 
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot Python
 
Installation Anaconda Navigator for Python Workshop
Installation Anaconda Navigator for Python WorkshopInstallation Anaconda Navigator for Python Workshop
Installation Anaconda Navigator for Python Workshop
 
ZYNQ BRAM Implementation
ZYNQ BRAM ImplementationZYNQ BRAM Implementation
ZYNQ BRAM Implementation
 
Implementing a Database and API for your Cloud Service
Implementing a Database and API for your Cloud ServiceImplementing a Database and API for your Cloud Service
Implementing a Database and API for your Cloud Service
 
Launching Python Cloud Services for AI/IoT Projects
Launching Python Cloud Services for AI/IoT ProjectsLaunching Python Cloud Services for AI/IoT Projects
Launching Python Cloud Services for AI/IoT Projects
 
Real Time Filtering on Embedded ARM
Real Time Filtering on Embedded ARMReal Time Filtering on Embedded ARM
Real Time Filtering on Embedded ARM
 
R Markdown, Rpubs & github publishing and Shiny by Example
R Markdown, Rpubs & github publishing and Shiny by ExampleR Markdown, Rpubs & github publishing and Shiny by Example
R Markdown, Rpubs & github publishing and Shiny by Example
 
Using Texas Instruments Code Composer Studio for The CC3200XL Launchpad
Using Texas Instruments Code Composer Studio for The CC3200XL LaunchpadUsing Texas Instruments Code Composer Studio for The CC3200XL Launchpad
Using Texas Instruments Code Composer Studio for The CC3200XL Launchpad
 
Hogeschool PXL Smart Mirror
Hogeschool PXL Smart MirrorHogeschool PXL Smart Mirror
Hogeschool PXL Smart Mirror
 
MySQL / PHP Server
MySQL / PHP ServerMySQL / PHP Server
MySQL / PHP Server
 
Implementing an interface in r to communicate with programmable fabric in a x...
Implementing an interface in r to communicate with programmable fabric in a x...Implementing an interface in r to communicate with programmable fabric in a x...
Implementing an interface in r to communicate with programmable fabric in a x...
 
fTales workshop
fTales workshopfTales workshop
fTales workshop
 
Maker Revolution
Maker RevolutionMaker Revolution
Maker Revolution
 
Debugging IoT Sensor Interfaces (SPI) with Digilent Analog Discovery 2
Debugging IoT Sensor Interfaces (SPI) with Digilent Analog Discovery 2Debugging IoT Sensor Interfaces (SPI) with Digilent Analog Discovery 2
Debugging IoT Sensor Interfaces (SPI) with Digilent Analog Discovery 2
 

Softcore vs Hardcore processor

  • 2. Inleiding  Wat is een microprocessor  CPLD / FPGA  Types Microprocessoren  Voordelen/nadelen
  • 3. Inleiding  Wat is een microprocessor  CPLD / FPGA  Types Microprocessoren  Voordelen/nadelen
  • 4. Microprocessor (µP)  Één enkele IC waar verschillende nuttige functies in zitten  De mogelijkheid om een opgeslagen set instructies uit te voeren om zo taken die de gebruiker aanmaakt uit te voeren  De mogelijkheid om extern geheugen IC’s aan te spreken om zo data te lezen van en te schrijven naar deze geheugen IC’s
  • 5. Microcomputer  Een computersysteem bestaat uit:  Een computer  Één of meer invoereenheden  Één of meer uitvoereenheden
  • 6. Invoereenheden - Uitvoereenheden  Principiële opbouw van een computersysteem Invoer eenheid Geheugen ALU Besturings- eenheid Uitvoer eenheid O / P O O R T E N I / P O O R T E N Input Computer Output Toetsenbord Temp. Opnemer Scherm Printer Motor
  • 7. Computer  De computer zelf bestaat uit:  CVE (centrale verwerkingseenheid)  Rekenkundige en logische eenheid (ALU)  Besturingseenheid (Control Unit)  Geheugen  I/O-poorten  Microcomputer = computer waarvan de CVE nog slechts één chip is.
  • 8. Busstructuur bij een microcomputer CVE (MPU) Geheugen RAM & ROM I/O Poorten Controlebus Databus D0 – D7 Adresbus 16 bit (A0 – A15) P0 – P7
  • 9. De Microprocessor ALU A Adres Buffer PC 16bit S 8bit IR Controle Databuffer Besturing V N Z C Conditiecode of status register 8bit databus D0 – D7 Controle bus Adresbus 16 bit A0 – A15 Interne databus 8bit
  • 11. Overzicht  Wat is een microprocessor  CPLD / FPGA  Types Microprocessoren  Voordelen/nadelen
  • 13. Programmable Logic Devices (PLDs)  IC waarvan logische functie geprogrammeerd wordt na fabricage  Meestal zelfs herprogrammeerbaar  PLD (PLA of PAL): two-level structuur van AND en OR gates met user- programmable connections  CPLDs (Complex PLDs) en FPGAs (Field Programmable Gate Arrays) werden ontworpen om grotere systemen mee op te zetten
  • 14. PROM: Programmable Read Only Memory AND Array (vast) OR Array (programmeerbaar)
  • 15. PLDs – PAL: Programmable Array Logic AND Array (programmeerbaar) OR Array (vast)
  • 16. PLDs – FPLA: Field Programmable Logic Array AND Array (programmeerbaar) OR Array (programmeerbaar)
  • 17. PLDs  Kleine chips  Werking moet je kennen voor verder te kunnen  PLDs worden meestal geprogrammeerd in programmeertalen zoals ABEL of PALASM (hardware equivalent van assembler) ofwel door gebruik te maken van een schematic capture tool
  • 18. CPLDs  Complex Programmable Logic Devices  Kan gezien worden als meerdere PLDs (en een surplus aan “programmable interconnect”) in 1 chip  Meer logische vergelijkingen of een gecompliceerder design  Vele 7400-serie ICs vervangen door 1 CPLD!!!
  • 19. CPLD – interne structuur Logic Block Logic Block Logic Block Logic Block Switch Matrix
  • 20. CPLDs  Architectuur  Iedere logische blok is eigenlijk een PLD  In een CPLD bevinden zich 4 of meer logische blokken  Deze logische blokken bestaan zelf uit macrocellen en “interconnect wiring” zoals een gewone PLD
  • 21. FPGAs  Field Programmable Gate Arrays  Voor het implementeren van bijna ieder hardware ontwerp  Prototyping van ontwerpen voor ASICs
  • 22. FPGAs – interne structuur Logic Block I/O Block Interconnection resources
  • 23. FPGAs  Interne structuur  CLB: Configurable Logic Block  Programmable Interconnect  I/O blocks
  • 24. FPGAs  Kleine en simpele macrocells zoals in een PLD (fine-grained architecture)  Grotere en meer complexe macrocells (coarse-grained)
  • 25. Programmatie CPLD / FPGA  Programmeerbare logica  IC’s waarvan de functie na de fysieke productie door de klant kan worden geconfigureerd  VHDL of Verilog (LabVIEW FPGA ?)
  • 26. Overzicht  Wat is een microprocessor  CPLD / FPGA  Types Microprocessoren  Voordelen/nadelen
  • 27. Types Microprocessoren  Discrete processoren  Hard processor cores  Soft Processor cores
  • 28. Discrete Processor  “Traditionele” manier van werken  Meerdere fabrikanten (Atmel, Microchip, ARM, Freescale…)  Geïmplementeerd als een ASIC met een specifieke “peripheral set” samen met de processor core  Juiste processor zoeken kost veel tijd  Applicatie kost  Functionele vereisten  Custom Logic of “peripheral functionality” nodig?
  • 29. Discrete Processor - voorbeeld  6502 (8-bit microprocessor)  6809 (8-bit microprocessor)  Z8000 (Zilog 16-bit microprocessor)  8086 (Intel 16-bit microprocessor)  68000 (Motorola 16-bit microprocessor)
  • 30. Hard processor cores  Hard processor core in een FPGA of CPLD  Zogenaamd “dedicated silicon” in deze chip.  Voordeel:  de peripherals kunnen op maat gemaakt worden voor de toepassing  Nadeel:  de core kan niet aangepast worden  Men moet een specifieke FPGA kiezen met een hard processor core in.  De keuze van fabrikant en FPGA is gelimiteerd
  • 31. Hard processor core - voorbeeld  Altera EXCALIBUR (32-bit hardcore CPU)  Xilinx Virtex-II PRO (PowerPC 405D5 processor core – 32-bit hardcore CPU)
  • 32. Soft processor cores  Is volledig geïmplementeerd in de logica van de FPGA of CPLD (via VHDL / Verilog code)  Ingezet bij een simpel systeem waar enkel de GPIO (General Purpose Input/Output) moet gemanipuleerd worden  Past ook in een zeer complex systeem waar een Operating System nodig en enkele interfaces nodig zijn (Ethernet, PCI – Peripheral Component Interconnect), custom IP (Intellectual Property),…)  Nadeel:  Heeft minder goede prestaties dan zijn hard processor core tegenhanger of de discrete processor.  Voordeel:  Is veel flexibeler; alles is aanpasbaar  Meerdere processoren langs elkaar in 1 chip
  • 33. Soft processor core - voorbeeld  Leon2 (32-bit softcore CPU - Gratis)  Xilinx MicroBlaze (32-bit softcore CPU)  Xilinx PicoBlaze (8-bit softcore CPU)  Altera NIOS (32-bit softcore CPU)  OpenRISC 1200 (32-bit softcore CPU - Gratis)
  • 34. Overzicht  Wat is een microprocessor  CPLD / FPGA  Types Microprocessoren  Voordelen/nadelen
  • 35. Samenvatting Discrete Processor Soft processor core Hard processor core Oude manier van werken High-tech High-tech Glue logic nodig Geen glue logic nodig Geen glue logic nodig Afhankelijk van processor IC Volledig digitaal systeem kan ontworpen en aangepast worden in 1 IC ??? Afhankelijk van hard processor core Meerdere microprocessoren in 1 chip Snelheid Snelheid
  • 36. Meer informatie  http://www.opencores.org  http://www.xilinx.com/products/desig n_resources/proc_central/index.htm  http://www.altera.com/products/ip/pr ocessors/ipm-index.jsp  http://www.actel.com/products/armin fusion/  The Design Warrior’s guide to FPGA  ISBN: 0-7506-7604-3 (Elsevier)